[
  {
    "path": ".gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n\npackages/examples"
  },
  {
    "path": ".npmrc",
    "content": "# 解决pnpm add时优先在本地查找依赖\nlink-workspace-packages=true"
  },
  {
    "path": ".prettierrc.js",
    "content": "/** @type {import(\"prettier\").Config} */\nmodule.exports = {\n\t// 一行最多160字符\n\tprintWidth: 160,\n\t// 指定一个制表符等于的空格数\n\ttabWidth: 4,\n\t// 使用制表符，而不使用空格\n\tuseTabs: true,\n\t// 行尾需要有分号\n\tsemi: true,\n\t// 使用单引号代替双引号\n\tsingleQuote: false,\n\t// 默认值。因为使用了一些折行敏感型的渲染器（如GitHub comment）而按照markdown文本样式进行折行\n\tproseWrap: \"preserve\",\n\t// 对象的key仅在必要时用引号括起来\n\tquoteProps: \"as-needed\",\n\t// 尾逗号根据ES5规则使用\n\ttrailingComma: \"es5\",\n\t// 在对象，数组括号与文字之间加空格 \"{ foo: bar }\"\n\tbracketSpacing: true,\n\t//  (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid：省略括号\n\tarrowParens: \"avoid\",\n\t// 指定 HTML 文件的空白字符敏感度\n\thtmlWhitespaceSensitivity: \"ignore\",\n\t// 缩进 Vue SFC 文件中的 <script> 和 <style> 标签\n\tvueIndentScriptAndStyle: true,\n\t// 结尾是 \\n \\r \\n\\r auto\n\tendOfLine: \"auto\",\n\t// 在jsx中使用单引号代替双引号\n\tjsxSingleQuote: false,\n\t// 在jsx中是否把'>' 单独放一行\n\tbracketSameLine: false,\n\t// === 不同文件的定制 ===\n\toverrides: [\n\t\t{\n\t\t\tfiles: \"*.md\",\n\t\t\toptions: {\n\t\t\t\tprintWidth: 120,\n\t\t\t\tproseWrap: \"preserve\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfiles: \"*.json\",\n\t\t\toptions: {\n\t\t\t\tprintWidth: 120,\n\t\t\t},\n\t\t},\n\t],\n};\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# 贡献指南\n\n欢迎来到 Astral 3D 社区！以下是参与贡献的指南：\n\n## 🛠️ 开发流程\n\n### 环境要求\n- Node.js 23.11+\n- PNPM\n\n### 代码规范\n1. Git 提交信息格式：\n   ```\n    <type>(<scope>): <subject>\n   - type: feat|fix|docs|style|refactor|test|chore\n   - scope: Editor|Preview|Home|SDK 等模块范围\n   - subject: 50字内简明描述\n   ```\n\n2. 前端规范：\n   - Vue 组件使用 Composition API\n   - TypeScript 严格模式\n   - CSS 使用 UnoCSS 原子化方案\n\n## 🐛 问题报告\n使用 [GitHub Issues](https://github.com/mlt131220/Astral3D/issues) 时请包含：\n1. 环境信息（OS/浏览器/Node版本）\n2. 重现步骤\n3. 预期与实际行为\n4. 相关截图/日志\n\n## ✨ 功能建议\n1. 在 Discussions 发起提案讨论\n2. 提供使用场景描述\n3. 如有原型设计请附示意图\n\n## 🌐 国际化\n添加新语言请按以下步骤：\n1. 在 `src/language` 创建语言文件\n2. 会以文件名作为语言标识符 注册新语言\n3. 在 `src/components/setting/common/Locale.vue` 中添加新语言选项\n4. 提交 Pull Request 并 @ 维护者\n\n## 🔄 代码提交\n1. Fork 仓库并创建特性分支\n2. 编写单元测试（重要功能必须包含）\n3. 执行代码检查：\n   ```bash\n   pnpm lint\n   ```\n4. 发起 Pull Request 至 dev 分支\n\n## 🏅 贡献者公约\n请遵守 [贡献者公约](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)，我们承诺：\n- 友好包容的交流环境\n- 尊重不同的开发经验\n- 建设性的技术讨论\n\n## 💼 代码所有权\n所有贡献代码默认遵循项目 Apache-2.0 协议，作者保留对代码库的最终管理权限。"
  },
  {
    "path": "LEGAL.md",
    "content": "# 法律声明\n\n## 📜 许可协议\n本项目采用 [Apache-2.0 许可证](LICENSE)，核心条款包括：\n\n### 您必须遵守：\n1. **保留声明**  \n   所有副本必须包含：\n    - 原始版权声明（见本文件底部）\n    - NOTICE 文件（如有）\n    - 许可证副本\n\n2. **修改标识**  \n   修改后的版本必须：\n    - 在文件头添加显著修改声明\n    - 保留所有现有版权声明\n\n3. **附加商业条款：**\n   - 直接使用本源码产生的商业行为需获得作者书面授权\n   - 基于本项目的二次开发产品需在显著位置声明原始项目信息\n\n## ⚠️ 免责声明\n1. 作者不对使用本项目产生的任何直接/间接损失负责\n2. 禁止将本项目用于任何违法用途，包括但不限于：\n   - 侵犯他人知识产权\n   - 传播恶意软件\n   - 进行网络攻击\n   - 其他违反当地法律法规的行为\n\n## ®️ 商标条款\n1. \"Astral\"名称及标识为项目作者注册商标\n2. 未经授权不得：\n   - 使用项目名称进行商业宣传\n   - 修改或隐藏原始项目标识\n   - 在衍生品中使用Astral商标\n   - 暗示与官方项目的关联性\n\n## ©️ 版权声明\n2019-2025 © ErSan<mlt131220@163.com>. All rights reserved.\n\n\n\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 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 2024 ErSan\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.en.md",
    "content": "# <img src=\"https://editor.astraljs.com/static/images/logo/logo.png\" width=\"30\" height=\"30\"> Astral 3D Editor\n\n🌍 [简体中文](README.md) | English\n\n\nLink：    \n[![Online Demo](https://img.shields.io/badge/Github-mlt131220/Astral3D-8732D7?style=for-the-badge&logo=github&logoColor=white)](https://github.com/mlt131220/Astral3D)\n[![Online Demo](https://img.shields.io/badge/Gitee码云-mlt131220/Astral3D-8732D7?style=for-the-badge&logo=gitee&logoColor=white)](https://gitee.com/mlt131220/Astral3D)\n[![Online Demo](https://img.shields.io/badge/Online_Demo-Astral_3D_Editor-8732D7?style=for-the-badge&logo=google-chrome&logoColor=white)](https://editor.astraljs.com)\n\n> Modern Web 3D editor based on Vue3 + Three.js\n\n<div align=\"center\">\n  <img src=\"http://editor-doc.astraljs.com/images/home/thumbnailDark.png?t=20250518\" width=\"800\" alt=\"Editor City Preview\">\n  <img src=\"http://editor-doc.astraljs.com/images/home/industryDark.png?t=20250318\" width=\"800\" alt=\"Editor Preview\">\n</div>\n\n## 💬 Join the community\n\nGet the latest news and technical support in the following ways:\n\n| ![QQ Group](https://img.shields.io/badge/QQ_Group-1040320579-07C160?logo=wechat&logoColor=white) | ![Contact Author](https://img.shields.io/badge/Contact_Author-WeChat(Business)-07C160?logo=wechat&logoColor=white) |\n|---------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| <img src=\"https://fs.mhbdng.cn/temp/4851677b-661d-4e60-884d-414316290425.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=6TE7OKPZN15R380TGT1V%2F20260111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260111T135452Z&X-Amz-Expires=3600&X-Amz-Security-Token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJwYXJlbnQiOiJtbHQxMzEyMjAiLCJleHAiOjE3NjgxODExNTV9.RAvlAnLKtG-9rNIZMrO5lrSJc_N1VqHf3yF3-slD59b-miNqdorqsI9Zmaz6_imBe_uw1u5KMt_OGE7No-vxfA&X-Amz-Signature=4868484133727ab3881d0f7eb65a52db07ee91bc154b4bf4b88d19a91446188e&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject\" width=\"200\">                                                                            | <img src=\"https://fs.mhbdng.cn/temp/c1c7ecef-d655-4bb3-97e8-54402e3a48ef.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=6TE7OKPZN15R380TGT1V%2F20260111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260111T135514Z&X-Amz-Expires=3600&X-Amz-Security-Token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJwYXJlbnQiOiJtbHQxMzEyMjAiLCJleHAiOjE3NjgxODExNTV9.RAvlAnLKtG-9rNIZMrO5lrSJc_N1VqHf3yF3-slD59b-miNqdorqsI9Zmaz6_imBe_uw1u5KMt_OGE7No-vxfA&X-Amz-Signature=7005038e2ded3dbad425f6a23341002bf79c3ffe9f2166af18348dcaeb61dca0&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject\" width=\"200\">                                                                                         |\n\n\n\n## 🚀 Core competence\n\n### Core function\n- ✅ Multi-format support: 30+ model format (GLTF/OBJ/FBX/GLB/RVT/IFC, etc.)\n- ✅ BIM Model Lightweight Demonstration (RVT/IFC)\n- ✅ CAD drawing analysis (DWG/DXF)\n- ✅ Scenario subcontract storage and loading\n- ✅ Animation editor\n\n### Expansion capability\n- 🧩 plug-in system\n- 📜 When the script is running\n- 💫 Particle system\n- ❄️ Weather system\n- ☁️ Cloud Storage Integration (USS again)\n- 🎠 Resource center\n\n### Coming soon\n- 🚧 Physical engine support\n- 🚧 WebGPU support\n- 🚧 Data components (API/WebSocket)\n- 🚧 low code data large screen\n- 🚧 WebSocket Multi-party collaboration\n\n## 🛠️ Technology stack\n\n![Vue3](https://img.shields.io/badge/Vue-3.5.22-4FC08D?logo=vuedotjs)\n![Three.js](https://img.shields.io/badge/Three.js-r176-000000?logo=threedotjs)\n![NaiveUI](https://img.shields.io/badge/Naive_UI-2.43.1-66C060?logo=vue.js)\n![UnoCSS](https://img.shields.io/badge/UnoCSS-0.46.5-333333?logo=unocss)\n\n## ⚡ Quick start\n\n### pre-demand\n- Node.js ≥ 23.11.x\n- Yarn\n\n### Local run\n```bash\n    git clone https://github.com/mlt131220/Astral3D.git\n\n    cd Astral3D\n    pnpm install\n    pnpm run sdk:build\n    pnpm run editor:dev\n```\n\n### Production construction\n```bash\n    pnpm run editor:build\n```\n\n## 📚 Ecological correlation\n\n### Back-end implementation\n[![Java Backend](https://img.shields.io/badge/Back_end_implementation-AstralService-00ADD8)](https://github.com/yx8663/astral-service)\n\n### Document center\n[![Documentation](https://img.shields.io/badge/Document_center-Astral_Docs-8732D7?logo=gitbook)](http://editor-doc.astraljs.com/)\n\n## ☕ Support project\n\nIf this project is helpful to you, please feel free to:\n\n1. In case wall [user] (https://github.com/mlt131220/Astral3D/issues/2) leave your usage scenario\n2. Scan code support developers:\n\n| AliPay                                                                    | WeChat                                                                       |\n|---------------------------------------------------------------------------|------------------------------------------------------------------------------|\n| <img src=\"https://editor-doc.astraljs.com/images/AliPay.png\" width=\"200\"> | <img src=\"https://editor-doc.astraljs.com/images/WeChatPay.png\" width=\"200\"> |\n\n## ⚖️ License agreement\n\nThis project adopts the [![Apache License] (https://img.shields.io/badge/License-Apache_2.0-blue.svg)] (License) open source licenses, please comply with the terms of the agreement and the following supplementary conditions:\n\n- ✅ allows: individual learning/secondary development\n- ⚠️ A copyright notice is required\n- ⚠️ commercial use requires authorization\n- ❌ Prohibited: using this project for business or illegal purposes that are competitive with **hangzhou xingluan digital technology**\n\n**[Full legal notice](LEGAL.md)** | **[Contribution guide](CONTRIBUTING.md)**\n\n## 🌟 Star trend\n\n[![Star History Chart](https://api.star-history.com/svg?repos=mlt131220/Astral3D&type=Date)](https://star-history.com/#mlt131220/Astral3D&Date)"
  },
  {
    "path": "README.md",
    "content": "# <img src=\"https://editor.astraljs.com/static/images/logo/logo.png\" width=\"30\" height=\"30\"> Astral 3D Editor\n\n🌍 简体中文 | [English](README.en.md)\n\n直达：    \n[![Online Demo](https://img.shields.io/badge/Github-mlt131220/Astral3D-8732D7?style=for-the-badge&logo=github&logoColor=white)](https://github.com/mlt131220/Astral3D)\n[![Online Demo](https://img.shields.io/badge/Gitee码云-mlt131220/Astral3D-8732D7?style=for-the-badge&logo=gitee&logoColor=white)](https://gitee.com/mlt131220/Astral3D)\n[![Online Demo](https://img.shields.io/badge/Online_Demo-Astral_3D_Editor-8732D7?style=for-the-badge&logo=google-chrome&logoColor=white)](https://editor.astraljs.com)\n\n> 基于 Vue3 + Three.js 的现代 Web 3D 编辑器\n\n<div align=\"center\">\n  <img src=\"http://editor-doc.astraljs.com/images/home/thumbnailDark.png?t=20250518\" width=\"800\" alt=\"Editor City Preview\">\n  <img src=\"http://editor-doc.astraljs.com/images/home/industryDark.png?t=20250318\" width=\"800\" alt=\"Editor Preview\">\n</div>\n\n## 💬 加入社区\n\n通过以下方式获取最新动态和技术支持：\n\n| ![QQ Group](https://img.shields.io/badge/QQ交流群-1040320579-07C160?logo=wechat&logoColor=white) | ![Contact Author](https://img.shields.io/badge/联系作者-个人微信(仅商务)-07C160?logo=wechat&logoColor=white)                                                                                                                             \n|---------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| <img src=\"https://fs.mhbdng.cn/temp/4851677b-661d-4e60-884d-414316290425.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=6TE7OKPZN15R380TGT1V%2F20260111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260111T135452Z&X-Amz-Expires=3600&X-Amz-Security-Token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJwYXJlbnQiOiJtbHQxMzEyMjAiLCJleHAiOjE3NjgxODExNTV9.RAvlAnLKtG-9rNIZMrO5lrSJc_N1VqHf3yF3-slD59b-miNqdorqsI9Zmaz6_imBe_uw1u5KMt_OGE7No-vxfA&X-Amz-Signature=4868484133727ab3881d0f7eb65a52db07ee91bc154b4bf4b88d19a91446188e&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject\" width=\"200\">                                                                            | <img src=\"https://fs.mhbdng.cn/temp/c1c7ecef-d655-4bb3-97e8-54402e3a48ef.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=6TE7OKPZN15R380TGT1V%2F20260111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260111T135514Z&X-Amz-Expires=3600&X-Amz-Security-Token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJwYXJlbnQiOiJtbHQxMzEyMjAiLCJleHAiOjE3NjgxODExNTV9.RAvlAnLKtG-9rNIZMrO5lrSJc_N1VqHf3yF3-slD59b-miNqdorqsI9Zmaz6_imBe_uw1u5KMt_OGE7No-vxfA&X-Amz-Signature=7005038e2ded3dbad425f6a23341002bf79c3ffe9f2166af18348dcaeb61dca0&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject\" width=\"200\">  \n\n\n\n\n## 🚀 核心能力\n\n### 核心功能\n- ✅ 多格式支持：[30+ 模型格式（GLTF/OBJ/FBX/GLB/RVT/IFC等）](http://editor-doc.astraljs.com/guide/f7smai4w/#%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C%E5%8C%BA)\n- ✅ BIM模型轻量化展示（RVT/IFC）\n- ✅ CAD图纸解析（DWG/DXF）\n- ✅ 场景分包存储与加载\n- ✅ 动画编辑器\n\n### 扩展能力\n- 🧩 插件系统\n- 📜 脚本运行时\n- 💫 粒子系统\n- ❄️ 天气系统\n- ☁️ 云存储集成\n- 🎠 资源中心\n\n### 即将到来\n- 🚧 物理引擎支持\n- 🚧 WebGPU 支持\n- 🚧 数据组件（API/WebSocket）\n- 🚧 低代码数据大屏\n- 🚧 WebSocket 多人协作\n\n## 🛠️ 技术栈\n\n![Vue3](https://img.shields.io/badge/Vue-3.5.22-4FC08D?logo=vuedotjs)\n![Three.js](https://img.shields.io/badge/Three.js-r176-000000?logo=threedotjs)\n![NaiveUI](https://img.shields.io/badge/Naive_UI-2.43.1-66C060?logo=vue.js)\n![UnoCSS](https://img.shields.io/badge/UnoCSS-0.46.5-333333?logo=unocss)\n\n## ⚡ 快速开始\n\n### 前置需求\n- Node.js ≥ 23.11.x\n- PNPM\n\n### 本地运行\n```bash\n    git clone https://github.com/mlt131220/Astral3D.git\n\n    cd Astral3D\n    pnpm install\n    pnpm run sdk:build\n    pnpm run editor:dev\n```\n\n### 生产构建\n```bash\n    pnpm run editor:build\n```\n\n## 📚 生态相关\n\n### 后端实现\n[![Java Backend](https://img.shields.io/badge/后端实现-AstralService-00ADD8)](https://github.com/yx8663/astral-service)\n\n### 文档中心\n[![Documentation](https://img.shields.io/badge/文档中心-Astral_Docs-8732D7?logo=gitbook)](http://editor-doc.astraljs.com/)\n\n## ☕ 支持项目\n\n如果本项目对您有帮助，欢迎：\n\n1. 在 [用户案例墙](https://github.com/mlt131220/Astral3D/issues/2) 留下您的使用场景\n2. 扫码支持开发者：\n\n| 支付宝                                                                       | 微信                                                                           |\n|---------------------------------------------------------------------------|------------------------------------------------------------------------------|\n| <img src=\"https://editor-doc.astraljs.com/images/AliPay.png\" width=\"200\"> | <img src=\"https://editor-doc.astraljs.com/images/WeChatPay.png\" width=\"200\"> |\n\n## ⚖️ 许可协议\n\n本项目采用 [![Apache License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) 开源协议，使用时请遵守协议条款及以下补充条款：\n\n- ✅ 允许：个人学习/二次开发    \n- ⚠️ 需要版权声明    \n- ⚠️ 商业用途需要授权    \n- ❌ 禁止：将本项目用于与**杭州星孪数字科技**有竞争性的业务或非法用途    \n\n**[完整法律声明](LEGAL.md)** | **[贡献指南](CONTRIBUTING.md)**\n\n## 🌟 Star 趋势\n\n[![Star History Chart](https://api.star-history.com/svg?repos=mlt131220/Astral3D&type=Date)](https://star-history.com/#mlt131220/Astral3D&Date)"
  },
  {
    "path": "common/build/package.json",
    "content": "{\n  \"name\": \"@astral3d/build-vite-plugins\",\n  \"author\": \"ErSan<mlt131220@163.com>\",\n  \"private\": true,\n  \"version\": \"1.0.0\",\n  \"type\": \"module\",\n  \"main\": \"./src/index.ts\",\n  \"dependencies\": {\n  },\n  \"devDependencies\": {\n    \"@types/fs-extra\": \"^11.0.3\",\n    \"dotenv\": \"16.3.1\",\n    \"fs-extra\": \"^11.1.1\",\n    \"rollup-plugin-visualizer\": \"catalog:\",\n    \"typescript\": \"catalog:\",\n    \"unplugin-config\": \"^0.1.5\",\n    \"vite\": \"catalog:\",\n    \"vite-plugin-compression\": \"^0.5.1\",\n    \"vite-plugin-enhance-log\": \"^0.6.2\",\n    \"vite-plugin-top-level-await\": \"^1.3.1\"\n  }\n}\n"
  },
  {
    "path": "common/build/src/index.ts",
    "content": "export * from './utils.ts';\nexport * from './plugins/index.ts';"
  },
  {
    "path": "common/build/src/plugins/appConfig.ts",
    "content": "// @ts-ignore\nimport ConfigPlugin from 'unplugin-config/vite';\nimport type { PluginOption } from 'vite';\nimport {getEnvConfig,strToHex} from \"../utils.ts\";\n\nexport async function createConfigPluginConfig(\n    shouldGenerateConfig: boolean,\n): Promise<PluginOption> {\n    const config:Record<string, any> = await getEnvConfig();\n    const APP_NAME = strToHex(config?.VITE_GLOB_APP_TITLE ?? '__APP');\n    // https://github.com/kirklin/unplugin-config\n    return ConfigPlugin({\n        appName: APP_NAME,\n        baseDir:\"./\",\n        envVariables: {\n            prefix: 'VITE_GLOB_',\n            files: [\".env.production\", \".env\"],\n        },\n        configFile: {\n            generate: shouldGenerateConfig,\n            fileName: '_astral3d.config.js',\n            outputDir: 'dist',\n        },\n        htmlInjection: {\n            decodeEntities: true,\n        },\n    });\n}"
  },
  {
    "path": "common/build/src/plugins/compress.ts",
    "content": "/**\n * 用于打包和输出gzip;\n * 注意，这在Vite中不能正常工作，具体原因还在调查中\n * https://github.com/anncwb/vite-plugin-compression\n */\nimport type { PluginOption } from 'vite';\nimport compressPlugin from 'vite-plugin-compression';\n\nexport function configCompressPlugin({compress,deleteOriginFile = false}: {\n    compress: \"gzip\" | \"brotli\" | \"none\";\n    deleteOriginFile?: boolean;\n}): PluginOption[] {\n    const compressList = compress.split(',');\n\n    const plugins: PluginOption[] = [];\n\n    if (compressList.includes('gzip')) {\n        plugins.push(\n            compressPlugin({\n                ext: '.gz',\n                deleteOriginFile,\n            }),\n        );\n    }\n\n    if (compressList.includes('brotli')) {\n        plugins.push(\n            compressPlugin({\n                ext: '.br',\n                algorithm: 'brotliCompress',\n                deleteOriginFile,\n            }),\n        );\n    }\n    return plugins;\n}"
  },
  {
    "path": "common/build/src/plugins/index.ts",
    "content": "import type {PluginOption} from 'vite';\nimport topLevelAwait from \"vite-plugin-top-level-await\";\nimport EnhanceLog from 'vite-plugin-enhance-log';\n\nimport {createConfigPluginConfig} from \"./appConfig.ts\";\nimport {configCompressPlugin} from \"./compress.ts\";\nimport {configVisualizerConfig} from \"./visualizer.ts\";\n\ninterface Options {\n    isBuild: boolean;\n    root: string;\n    compress: {\n        compress: \"gzip\" | \"brotli\" | \"none\";\n        deleteOriginFile: boolean;\n    };\n    enableAnalyze?: boolean;\n    enableConfig?: boolean;\n}\n\nexport async function createPlugins({isBuild,compress,enableAnalyze,enableConfig}: Options) {\n    const vitePlugins: (PluginOption | PluginOption[])[] = [\n        topLevelAwait({\n            // 每个块模块的顶级await promise的导出名称\n            promiseExportName: \"__tla\",\n            // 用于在每个块模块中生成顶级await承诺的导入名称的函数\n            promiseImportName: i => `__tla_${i}`\n        }),\n        EnhanceLog({\n            /** 高亮文件名（firefox不支持） */\n            colorFileName: true,\n            splitBy: '\\n',\n            preTip: '🚀🚀🚀🚀🚀🚀',\n            enableFileName: { enableDir: false}\n        }),\n    ];\n\n    if(enableConfig){\n        const appConfigPlugin = await createConfigPluginConfig(isBuild);\n        vitePlugins.push(appConfigPlugin);\n    }\n\n    // 以下插件只在生产环境中工作\n    if (isBuild) {\n        // rollup-plugin-gzip\n        vitePlugins.push(configCompressPlugin(compress));\n\n        // 打包视图分析 rollup-plugin-visualizer\n        if (enableAnalyze) {\n            vitePlugins.push(configVisualizerConfig());\n        }\n    }\n\n    return vitePlugins;\n}"
  },
  {
    "path": "common/build/src/plugins/visualizer.ts",
    "content": "/**\n * package.json包文件容量分析\n */\n// @ts-ignore\nimport {visualizer} from 'rollup-plugin-visualizer';\nimport { type PluginOption } from 'vite';\n\nexport function configVisualizerConfig() {\n    return visualizer({\n        filename: 'node_modules/.cache/visualizer/stats.html',\n        open: true,\n        gzipSize: true,\n        brotliSize: true,\n    }) as PluginOption;\n}"
  },
  {
    "path": "common/build/src/utils.ts",
    "content": "import { join } from 'node:path';\nimport pkg from 'fs-extra';\nimport {parse} from \"dotenv\";\n\n/**\n * 读取所有环境变量配置文件以处理.env\n */\nexport function wrapperEnv(envConf) {\n    const ret:any = {};\n\n    for (const envName of Object.keys(envConf)) {\n        let realName = envConf[envName].replace(/\\\\n/g, '\\n');\n        realName = realName === 'true' ? true : realName === 'false' ? false : realName;\n\n        if (envName === 'VITE_PORT') {\n            realName = Number(realName);\n        }\n        \n        ret[envName] = realName;\n        if (typeof realName === 'string') {\n            process.env[envName] = realName;\n        } else if (typeof realName === 'object') {\n            process.env[envName] = JSON.stringify(realName);\n        }\n    }\n    return ret;\n}\n\n/**\n * 获取当前环境下生效的配置文件名\n */\nfunction getConfFiles() {\n    const script = process.env.npm_lifecycle_script;\n    const reg = new RegExp('--mode ([a-z_\\\\d]+)');\n    const result = reg.exec(script as string) as any;\n    if (result) {\n        const mode = result[1] as string;\n        return ['.env', `.env.${mode}`];\n    }\n    return ['.env', '.env.production'];\n}\n\n/**\n * 获取以指定前缀开头的环境变量\n * @param match prefix\n * @param confFiles ext\n */\nexport async function getEnvConfig(match = 'VITE_GLOB_', confFiles = getConfFiles()) {\n    let envConfig = {};\n    for (const confFile of confFiles) {\n        try {\n            const envPath = await pkg.readFile(join(process.cwd(), confFile), { encoding: 'utf8' });\n            const env = parse(envPath);\n            envConfig = { ...envConfig, ...env };\n        } catch (e) {\n            console.error(`Error in parsing ${confFile}`, e);\n        }\n    }\n    const reg = new RegExp(`^(${match})`);\n    Object.keys(envConfig).forEach((key) => {\n        if (!reg.test(key)) {\n            Reflect.deleteProperty(envConfig, key);\n        }\n    });\n    return envConfig;\n}\n\nexport function strToHex(str: string) {\n    const result: string[] = [];\n    for (let i = 0; i < str.length; ++i) {\n        const hex = str.charCodeAt(i).toString(16);\n        result.push(('000' + hex).slice(-4));\n    }\n    return result.join('').toUpperCase();\n}\n"
  },
  {
    "path": "common/build/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"esnext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n    \"noImplicitAny\": false,\n\n    /* Bundler mode */\n    \"moduleResolution\": \"Bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n\n    /* Linting */\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true,\n\n    \"baseUrl\": \".\",\n    \"types\": [],\n    \"typeRoots\": [\"./node_modules/@types/\"]\n  },\n  \"include\": [\"src\"],\n  \"exclude\": []\n}"
  },
  {
    "path": "package.json",
    "content": "{\n    \"name\": \"astral3d\",\n    \"version\": \"1.0.0\",\n    \"description\": \"Astral3D Engine\",\n    \"author\": \"ErSan <mlt131220@163.com>\",\n    \"scripts\": {\n        \"docs:dev\": \"pnpm run -C packages/docs docs:dev\",\n        \"docs:dev-clean\": \"pnpm run -C packages/docs docs:dev-clean\",\n        \"docs:build\": \"pnpm run -C packages/docs docs:build\",\n        \"docs:preview\": \"pnpm run -C packages/docs docs:preview\",\n        \"editor:dev\": \"pnpm run -C packages/editor dev\",\n        \"editor:build\": \"pnpm run sdk:build && pnpm run -C packages/editor build\",\n        \"editor:tsc\": \"pnpm run -C packages/editor tsc\",\n        \"editor:preview\": \"pnpm run -C packages/editor preview\",\n        \"sdk:dev\": \"pnpm run -C packages/sdk dev\",\n        \"sdk:build\": \"pnpm run -C packages/sdk build\",\n        \"examples:dev\": \"pnpm run -C packages/examples dev\",\n        \"examples:build\": \"pnpm run -C packages/examples build\"\n    },\n    \"engines\": {\n        \"node\": \">=23.0.0\"\n    },\n    \"keywords\": [],\n    \"devDependencies\": {\n        \"prettier\": \"^3.7.4\"\n    },\n    \"packageManager\": \"pnpm@10.8.1\"\n}"
  },
  {
    "path": "packages/docs/.gitignore",
    "content": "node_modules\nsrc/.vuepress/.cache\nsrc/.vuepress/dist\nsrc/.vuepress/.temp\n"
  },
  {
    "path": "packages/docs/.npmrc",
    "content": "shamefully-hoist=true\nshell-emulator=true\nauto-install-peers=true"
  },
  {
    "path": "packages/docs/package.json",
    "content": "{\n  \"name\": \"@astral3d/docs\",\n  \"type\": \"module\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Astral3D 文档\",\n  \"packageManager\": \"pnpm@10.8.1\",\n  \"author\": \"ErSan <mlt131220@163.com>\",\n  \"scripts\": {\n    \"docs:dev\": \"vuepress dev src\",\n    \"docs:dev-clean\": \"vuepress dev src --clean-cache --clean-temp\",\n    \"docs:build\": \"vuepress build src --clean-cache --clean-temp\",\n    \"docs:preview\": \"http-server src/.vuepress/dist\",\n    \"vp-update\": \"pnpm dlx vp-update\"\n  },\n  \"devDependencies\": {\n    \"@vuepress/bundler-vite\": \"^2.0.0-rc.24\",\n    \"http-server\": \"^14.1.1\",\n    \"sass-embedded\": \"^1.85.0\",\n    \"typescript\": \"catalog:\",\n    \"vue\": \"catalog:\",\n    \"vuepress\": \"^2.0.0-rc.24\",\n    \"vuepress-theme-plume\": \"^1.0.0-rc.164\"\n  }\n}\n"
  },
  {
    "path": "packages/docs/src/.vuepress/_bulletin.md",
    "content": "---\ntitle: _bulletin\ncreateTime: 2025/10/02 00:22:16\npermalink: /astral/ib77r5fd/\n---\n::: center\n\n**QQ 交流群：** [1040320579](https://qm.qq.com/cgi-bin/qm/qr?k=Ewp9bODHFFaY6yphwEzmSe4lv889WbjR&jump_from=webapi&authKey=5gUSKPjhnXjhIy3pudNN/9igLNGxEwnN8yiXEDnEalE9loBQ4lEtVISG8OyXWmx8)\n\n![QQ qr_code](/images/qq_qrcode.jpg){width=\"618\" height=\"616\" style=\"width: 200px\"}\n\n您在使用过程中遇到任何问题，欢迎通过 [issue](https://github.com/mlt131220/Astral3D/issues/new) 反馈。也欢迎加入我们的 QQ 交流群一起讨论。\n\n> :fire: 4核8G 200兆服务器，仅需49元/月，[点击这里购买](https://www.rainyun.com/Astral3D_)  \n> 专属优惠码：Astral3D\n:::"
  },
  {
    "path": "packages/docs/src/.vuepress/client.ts",
    "content": "import { defineClientConfig } from 'vuepress/client'\n// import RepoCard from 'vuepress-theme-plume/features/RepoCard.vue'\n// import NpmBadge from 'vuepress-theme-plume/features/NpmBadge.vue'\n// import NpmBadgeGroup from 'vuepress-theme-plume/features/NpmBadgeGroup.vue'\n// import Swiper from 'vuepress-theme-plume/features/Swiper.vue'\n\n// import CustomComponent from './theme/components/Custom.vue'\n\n// import './theme/styles/custom.css'\n\nexport default defineClientConfig({\n  enhance({ app }) {\n    // built-in components\n    // app.component('RepoCard', RepoCard)\n    // app.component('NpmBadge', NpmBadge)\n    // app.component('NpmBadgeGroup', NpmBadgeGroup)\n    // app.component('Swiper', Swiper) // you should install `swiper`\n\n    // your custom components\n    // app.component('CustomComponent', CustomComponent)\n  },\n})\n"
  },
  {
    "path": "packages/docs/src/.vuepress/config.ts",
    "content": "import { viteBundler } from '@vuepress/bundler-vite'\nimport { defineUserConfig } from 'vuepress'\nimport { plumeTheme } from 'vuepress-theme-plume'\nimport path from 'node:path'\n\nexport default defineUserConfig({\n    port: 8089,\n\n    base: '/',\n    lang: 'zh-CN',\n    title: 'Astral3D',\n    description: 'Astral3D 文档',\n\n    head: [\n        // 配置站点图标\n        ['link', { rel: 'icon', type: 'image/png', href: '/logo64x64.png' }],\n    ],\n\n    bundler: viteBundler(),\n    shouldPrefetch: false, // 站点较大，页面数量较多时，不建议启用\n\n    theme: plumeTheme({\n        /* 添加您的部署域名, 有助于 SEO, 生成 sitemap */\n        hostname: 'https://docs.astraljs.com',\n\n        // 公告板\n        bulletin: {\n            lifetime:\"session\", // 在会话周期内关闭公告后不再显示\n            contentType:\"markdown\",\n            contentFile: path.join(__dirname, '_bulletin.md'),\n        },\n\n        /* 文档仓库配置，用于 editLink */\n        // docsRepo: '',\n        // docsDir: 'docs',\n        // docsBranch: '',\n\n        /* 页内信息 */\n        // editLink: true,\n        // lastUpdated: true,\n        // contributors: true,\n        // changelog: false,\n\n        /**\n         * 博客\n         * @see https://theme-plume.vuejs.press/config/basic/#blog\n         */\n        // blog: false, // 禁用博客\n        // blog: {\n        //   postList: true, // 是否启用文章列表页\n        //   tags: true, // 是否启用标签页\n        //   archives: true, // 是否启用归档页\n        //   categories: true, // 是否启用分类页\n        //   postCover: 'right', // 文章封面位置\n        //   pagination: 15, // 每页显示文章数量\n        // },\n\n        /* 博客文章页面链接前缀 */\n        article: '/astral/',\n\n        /**\n         * 编译缓存，加快编译速度\n         * @see https://theme-plume.vuejs.press/config/basic/#cache\n         */\n        cache: 'filesystem',\n\n        /**\n         * 为 markdown 文件自动添加 frontmatter 配置\n         * @see https://theme-plume.vuejs.press/config/basic/#autofrontmatter\n         */\n        // autoFrontmatter: {\n        //   permalink: true,  // 是否生成永久链接\n        //   createTime: true, // 是否生成创建时间\n        //   title: true,      // 是否生成标题\n        // },\n\n        // 文章贡献者\n        contributors: {\n            mode: 'block',\n        },\n\n        plugins: {\n            git: true,\n\n            /**\n             * Shiki 代码高亮\n             * @see https://theme-plume.vuejs.press/config/plugins/code-highlight/\n             */\n            // shiki: {\n            //   // 强烈建议预设代码块高亮语言，插件默认加载所有语言会产生不必要的时间开销\n            //   languages: ['shell', 'bash', 'typescript', 'javascript'],\n            //   twoslash: true, // 启用 twoslash\n            //   whitespace: true, // 启用 空格/Tab 高亮\n            //   lineNumbers: true, // 启用行号\n            // },\n\n            /* 本地搜索, 默认启用 */\n            // search: true,\n\n            /**\n             * Algolia DocSearch\n             * 启用此搜索需要将 本地搜索 search 设置为 false\n             * @see https://theme-plume.vuejs.press/config/plugins/search/#algolia-docsearch\n             */\n            // docsearch: {\n            //   appId: '',\n            //   apiKey: '',\n            //   indexName: '',\n            // },\n\n            /* 文章字数统计、阅读时间，设置为 false 则禁用 */\n            // readingTime: true,\n\n            /**\n             * markdown enhance\n             * @see https://theme-plume.vuejs.press/config/plugins/markdown-enhance/\n             */\n            // markdownEnhance: {\n            //   chartjs: true,\n            //   echarts: true,\n            //   mermaid: true,\n            //   flowchart: true,\n            // },\n\n            /**\n             *  markdown power\n             * @see https://theme-plume.vuejs.press/config/plugin/markdown-power/\n             */\n            // markdownPower: {\n            //   pdf: true,          // 启用 PDF 嵌入 @[pdf](/xxx.pdf)\n            //   caniuse: true,      // 启用 caniuse 语法  @[caniuse](feature_name)\n            //   plot: true,         // 启用隐秘文本语法 !!xxxx!!\n            //   bilibili: true,     // 启用嵌入 bilibili视频 语法 @[bilibili](bid)\n            //   youtube: true,      // 启用嵌入 youtube视频 语法 @[youtube](video_id)\n            //   artPlayer: true,    // 启用嵌入 artPlayer 本地视频 语法 @[artPlayer](url)\n            //   audioReader: true,  // 启用嵌入音频朗读功能 语法 @[audioReader](url)\n            //   icons: true,        // 启用内置图标语法  :[icon-name]:\n            //   codepen: true,      // 启用嵌入 codepen 语法 @[codepen](user/slash)\n            //   replit: true,       // 启用嵌入 replit 语法 @[replit](user/repl-name)\n            //   codeSandbox: true,  // 启用嵌入 codeSandbox 语法 @[codeSandbox](id)\n            //   jsfiddle: true,     // 启用嵌入 jsfiddle 语法 @[jsfiddle](user/id)\n            //   npmTo: true,        // 启用 npm-to 容器  ::: npm-to\n            //   demo: true,         // 启用 demo 容器  ::: demo\n            //   repl: {             // 启用 代码演示容器\n            //     go: true,         // ::: go-repl\n            //     rust: true,       // ::: rust-repl\n            //     kotlin: true,     // ::: kotlin-repl\n            //   },\n            //   imageSize: 'local', // 启用 自动填充 图片宽高属性，避免页面抖动\n            // },\n\n            /**\n             * 在 Markdown 文件中导入其他 markdown 文件内容。\n             * @see https://theme-plume.vuejs.press/guide/markdown/include/\n             */\n            // markdownInclude: true,\n\n            /**\n             * Markdown 数学公式\n             * @see https://theme-plume.vuejs.press/config/plugins/markdown-math/\n             */\n            // markdownMath: {\n            //   type: 'katex',\n            // },\n\n            /**\n             * 水印\n             * @see https://theme-plume.vuejs.press/guide/features/watermark/\n             */\n            // watermark: true,\n\n            /**\n             * 评论 comments\n             * @see https://theme-plume.vuejs.press/guide/features/comments/\n             */\n            comment: {\n                provider: 'Giscus', // \"Artalk\" | \"Giscus\" | \"Twikoo\" | \"Waline\"\n                comment: true,\n                repo: 'mlt131220/Astral3D-Docs',\n                repoId: 'R_kgDOLuBMGg',\n                category: 'Announcements',\n                categoryId: 'DIC_kwDOLuBMGs4Cero3',\n                mapping: 'pathname',\n                reactionsEnabled: true,\n                inputPosition: 'top',\n            },\n        },\n\n        markdown: {\n            annotation: true,\n        },\n\n        /**\n         * 加密功能\n         * @see https://theme-plume.vuejs.press/guide/features/encryption/\n         */\n        // encrypt: {},\n    }),\n})\n"
  },
  {
    "path": "packages/docs/src/.vuepress/navbar.ts",
    "content": "import { defineNavbarConfig } from 'vuepress-theme-plume';\nimport { version } from '../../package.json';\n\nexport const navbar = defineNavbarConfig([\n    {\n        text: '指南',\n        icon: 'icon-park-outline:guide-board',\n        link: '/notes/guide/quick-start/介绍.md',\n    },\n    { text: 'SDK', link: '/notes/sdk/README.md', icon: 'carbon:api' },\n    { text: '示例', link: 'https://examples.astraljs.com/', icon: 'carbon:carbon-for-ibm-dotcom' },\n    { text: '推广中心', link: '/notes/promotion/README.md', icon: 'mdi:star-shooting-outline' },\n    { text: '商务合作', link: '/notes/cooperation/README.md', icon: 'carbon:partnership' },\n    {\n        text: '更多',\n        icon: 'icon-park-outline:more-three',\n        items: [\n            { text: '常见问题', link: '/notes/more/questions.md', icon: 'wpf:faq' },\n        ],\n    },\n    {\n        text: `${version}`,\n        icon: 'codicon:versions',\n        items: [\n            { \n                text: '更新日志', \n                link: '/notes/update/logs/',\n            }\n        ],\n    },\n])\n"
  },
  {
    "path": "packages/docs/src/.vuepress/notes.ts",
    "content": "import { defineNoteConfig, defineNotesConfig } from 'vuepress-theme-plume'\n\nconst updateNote = defineNoteConfig({\n    dir: 'update/logs',\n    link: '/update',\n    sidebar: [\n        {\n            text: '2025年',\n            collapsed: false,\n            icon: 'carbon:calendar',\n            items: [\n                '_2025_01',\n                '_2025_02',\n                '_2025_03',\n                '_2025_04',\n                '_2025_05',\n                '_2025_06',\n            ]\n        },\n        {\n            text: '2024年',\n            collapsed: false,\n            icon: 'carbon:calendar',\n            items: [\n                '_2024_03',\n                '_2024_04',\n                '_2024_05',\n                '_2024_06',\n                '_2024_07',\n                '_2024_08',\n                '_2024_09',\n                '_2024_10',\n                '_2024_11',\n                '_2024_12',\n            ]\n        },\n        {\n            text: '2023年',\n            collapsed: false,\n            icon: 'carbon:calendar',\n            items: [\n                '_2023_02',\n                '_2023_03',\n                '_2023_04',\n                '_2023_05',\n                '_2023_07',\n                '_2023_08',\n            ]\n        }\n    ]\n})\n\nconst planNote = defineNoteConfig({\n    dir: 'update/plan',\n    link: '/update/plan',\n    sidebar: 'auto'\n})\n\nconst guideNote = defineNoteConfig({\n    dir: 'guide',\n    link: '/guide',\n    sidebar: [\n        {\n            text: '快速入门',\n            collapsed: false,\n            prefix: 'quick-start',\n            icon: 'carbon:lightning',\n            items: [\n                '介绍',\n                '安装',\n                '项目结构',\n                '部署'\n            ]\n        },\n        {\n            text: '编辑器使用手册',\n            collapsed: false,\n            prefix: 'manual',\n            icon: 'carbon:apps',\n            items: [\n                {\n                    text: '首页',\n                    collapsed: false,\n                    prefix: 'home',\n                    items: [\n                        '项目',\n                        '数据中心',\n                        '资源中心',\n                        '设置中心',\n                    ]\n                },\n                {\n                    text: '编辑器',\n                    collapsed: false,\n                    prefix: 'editor',\n                    items: [\n                        '界面',\n                        \"顶栏\",\n                        {\n                            text: '左侧边栏',\n                            collapsed: false,\n                            prefix: 'leftSidebar',\n                            items: [\n                                '场景树',\n                                'CAD解析预览',\n                                'BIM轻量化',\n                            ]\n                        },\n                        {\n                            text: '视口',\n                            collapsed: false,\n                            prefix: 'viewport',\n                            items: [\n                                '2D图纸',\n                                '3D场景'\n                            ]\n                        },\n                        {\n                            text: '扩展栏',\n                            collapsed: false,\n                            prefix: 'extras',\n                            items: [\n                                '资源中心',\n                                '动画编辑器',\n                                '日志'\n                            ]\n                        },\n                        {\n                            text: '右侧边栏',\n                            collapsed: false,\n                            prefix: 'rightSidebar',\n                            items: [\n                                '场景配置',\n                                '渲染器配置',\n                                '后期处理',\n                                '天气',\n                                '历史记录',\n                                '场景图纸',\n                                '对象',\n                                '几何',\n                                '材质',\n                                '动画',\n                                '脚本',\n                                '粒子',\n                                '广告牌',\n                                'Html面板',\n                            ]\n                        },\n                    ]\n                },\n                {\n                    text: '预览页',\n                    collapsed: false,\n                    prefix: 'preview',\n                    items: [\n                        '界面',\n                    ]\n                },\n            ]\n        },\n        {\n            text: '插件系统',\n            collapsed: false,\n            prefix: 'plugins',\n            icon: 'carbon:lightning',\n            items: [\n                '入门',\n                '插件开发',\n                {\n                    text: '内置插件',\n                    collapsed: false,\n                    prefix: 'builtin',\n                    icon: 'carbon:plug',\n                    items: [\n                        'glTFHandler'\n                    ]\n                }\n            ]\n        },\n    ]\n})\n\nexport const notes = defineNotesConfig({\n    dir: 'notes',\n    link: '/',\n    notes: [updateNote, planNote, guideNote],\n})\n"
  },
  {
    "path": "packages/docs/src/.vuepress/plume.config.ts",
    "content": "import { defineThemeConfig } from 'vuepress-theme-plume'\nimport { navbar } from './navbar'\nimport { notes } from './notes'\n\n/**\n * @see https://theme-plume.vuejs.press/config/basic/\n */\nexport default defineThemeConfig({\n    logo: '/logo64x64.png',\n\n    appearance: true,  // 配置 深色模式\n\n    social: [\n        { icon: 'github', link: 'https://github.com/mlt131220/Astral3D' },\n    ],\n    // navbarSocialInclude: ['github'], // 允许显示在导航栏的 social 社交链接\n    // aside: true, // 页内侧边栏， 默认显示在右侧\n    // outline: [2, 3], // 页内大纲， 默认显示 h2, h3\n\n    /**\n     * 文章版权信息\n     * @see https://theme-plume.vuejs.press/guide/features/copyright/\n     */\n    copyright: true,\n\n    prevPage: true,   // 是否启用上一页链接\n    nextPage: true,   // 是否启用下一页链接\n    createTime: true, // 是否显示文章创建时间\n\n    /* 站点页脚 */\n    footer: {\n        message: '',\n        copyright: 'Copyright © 2023-present <a target=\"_blank\" href=\"https://github.com/mlt131220\">ErSan <mlt131220@163.com></a>',\n    },\n\n    /**\n     * @see https://theme-plume.vuejs.press/config/basic/#profile\n     */\n    profile: {\n        avatar: '/logo64x64.png',\n        name: 'Astral3D',\n        description: 'Astral3D 文档',\n        // circle: true,\n        // location: '',\n        // organization: '',\n    },\n\n    // 导航栏配置\n    navbar,\n\n    notes,\n\n    /* 过渡动画 @see https://theme-plume.vuejs.press/config/basic/#transition */\n    // transition: {\n    //   page: true,        // 启用 页面间跳转过渡动画\n    //   postList: true,    // 启用 博客文章列表过渡动画\n    //   appearance: 'fade',  // 启用 深色模式切换过渡动画, 或配置过渡动画类型\n    // },\n\n})\n"
  },
  {
    "path": "packages/docs/src/.vuepress/theme/components/Custom.vue",
    "content": "<script setup lang=\"ts\">\nimport { ref } from 'vue'\n\nconst message = ref('Hello World!')\n</script>\n\n<template>\n  <div class=\"my-custom-content\">\n    {{ message }}\n  </div>\n</template>\n"
  },
  {
    "path": "packages/docs/src/.vuepress/theme/shim.d.ts",
    "content": "declare module '*.vue' {\n  import type { ComponentOptions } from 'vue'\n\n  const comp: ComponentOptions\n  export default comp\n}\n"
  },
  {
    "path": "packages/docs/src/.vuepress/theme/styles/custom.css",
    "content": ":root {\n  /** 主题颜色 */\n\n  /*\n  --vp-c-brand-1: #5086a1;\n  --vp-c-brand-2: #6aa1b7;\n  --vp-c-brand-3: #8cccd5;\n  --vp-c-brand-soft: rgba(131, 208, 218, 0.314);\n  */\n\n  /** 背景颜色 */\n\n  /*\n  --vp-c-bg: #fff;\n  --vp-c-bg-alt: #f6f6f7;\n  --vp-c-bg-elv: #fff;\n  --vp-c-bg-soft: #f6f6f7;\n  */\n\n  /** 文本颜色 */\n\n  /*\n  --vp-c-text-1: rgba(60, 60, 67);\n  --vp-c-text-2: rgba(60, 60, 67, 0.78);\n  --vp-c-text-3: rgba(60, 60, 67, 0.56);\n  */\n}\n\n/** 深色模式 */\n[data-theme=\"dark\"] {\n  /*\n  --vp-c-brand-1: #8cccd5;\n  --vp-c-brand-2: #6aa1b7;\n  --vp-c-brand-3: #5086a1;\n  --vp-c-brand-soft: rgba(131, 208, 218, 0.314);\n  */\n\n  /*\n  --vp-c-bg: #1b1b1f;\n  --vp-c-bg-alt: #161618;\n  --vp-c-bg-elv: #202127;\n  --vp-c-bg-soft: #202127;\n  */\n\n  /*\n  --vp-c-text-1: rgba(255, 255, 245, 0.86);\n  --vp-c-text-2: rgba(235, 235, 245, 0.6);\n  --vp-c-text-3: rgba(235, 235, 245, 0.38);\n  */\n}\n"
  },
  {
    "path": "packages/docs/src/README.md",
    "content": "---\npageLayout: home\nexternalLinkIcon: false\nconfig:\n  -\n    type: hero\n    full: true\n    background: tint-plate\n    hero:\n      name: Astral 3D Engine\n      tagline: Astral 3D Editor\n      text: 工业孪生3D引擎\n      actions:\n        -\n          theme: brand\n          text: 快速入门 -->\n          link: /guide/6xkx4dnv/\n        -\n          theme: alt\n          text: Demo\n          link: https://editor.astraljs.com/#/\n        -\n          theme: alt\n          text: Github\n          link: https://github.com/mlt131220/Astral3D\n  -\n    type: features\n    features:\n      -\n        title: 最新技术栈\n        icon: 🍡\n        details: 基于Vue3、Vite、TypeScript、Naive UI等最新技术栈开发\n      -\n        title: 基于ThreeJS\n        icon: 🌷\n        details: Three.js 是基于webGL的封装的一个易于使用且轻量级的3D库，是前端开发者研发3D绘图的主要工具\n      -\n        title: 简洁易用\n        icon: 🔅\n        details: 高效进行场景处理，并且提供网络压缩存储功能，在项目中快速读取加载\n      -\n        title: CAD 在线解析\n        icon: 🌈\n        details: 支持CAD图纸在线解析预览\n      -\n        title: 插件系统\n        icon: 🏝️\n        details: 编辑器提供了开放的插件系统，内置丰富的插件库，如：glTF处理器、地形生成器、模型转换器等等。\n      -\n        title: 粒子系统\n        icon: 💊\n        details: 内置多种粒子效果，如：烟花、火焰、烟雾、萤火虫等，丰富的配置项可以满足用户各种需求。\n      -\n        title: 动画系统\n        icon: 🎡\n        details: 支持在线编辑动画关键帧，完善的动画编辑器将支撑你的创作。\n      -\n        title: 天气系统\n        icon: 🌤️\n        details: 支持多种天气效果，如：晴天、雾天、雨天、雪天等。\n      -\n        title: 资源中心\n        icon: 🎁\n        details: 模型、材质、粒子、广告牌(Billboard)、HtmlPanel....\n      -\n        title: WebGPU (开发阶段)\n        icon: 🚩\n        details: 更快的计算...\n  -\n    type: image-text\n    title: 工业范\n    description: CAD? BIM? 亦或更多？\n    image: /images/home/industryDark.png\n    width: 600\n    list:\n      -\n        title: CAD\n        description: 支持 <code>.dwg,.dxf</code> 图纸解析预览\n      -\n        title: Future\n        description: PDMS、VTU\n  -\n    type: custom\n---\n\n<script setup>\nimport RepoCard from 'vuepress-theme-plume/features/RepoCard.vue'\n</script>\n\n<CardGrid>\n    <RepoCard repo=\"mlt131220/Astral3D\" />\n    <RepoCard repo=\"mlt131220/Astral3D\" provider=\"gitee\" />\n</CardGrid>\n\n\n### :zap: 快速开始\n\n:::code-tabs\n@tab bash\n\n```bash\n    git clone https://github.com/mlt131220/Astral3D.git\n\n    cd Astral3D\n    pnpm install\n    pnpm run sdk:build\n    pnpm run editor:dev\n```\n\n:::"
  },
  {
    "path": "packages/docs/src/notes/cooperation/README.md",
    "content": "---\ntitle: 商务合作\ncreateTime: 2025/10/06 21:04:41\npermalink: /astral/nf8y5syx/\n---\n\n# 寻求合作，共创价值\n\n> 您好！我们是 ==Astral 3D== 开源项目的核心开发团队。    \n> ==Astral 3D Editor== 是一个功能强大的、完全开源的 Web3D 编辑器，致力于为开发者和设计师提供高效、便捷的 3D 场景创作工具。    \n> 我们拥有深厚的 `WebGL、WebGPU、Three.js、Babylon.js、Vue/React` 等全栈开发经验，除了维护核心的开源项目外，我们也承接相关的商业项目，旨在将专业的技术实力转化为您的商业价值。\n\n## 我们的合作模式\n\n我们专注于提供高质量的 ==Web 前后端== 技术开发服务，主要合作模式包括：\n\n* **Web3D 项目外包:**\n    * **产品3D展示:** 将您的产品以交互式3D模型的形式呈现在网页上。\n    * **数据可视化:** 构建复杂的 3D 数据可视化大屏，让数据生动直观。\n    * **虚拟展厅/数字孪生:** 为您的业务打造沉浸式的在线虚拟空间。\n    * **3D场景与游戏开发:** 基于 Web 技术开发轻量级的 3D 互动场景或小游戏。\n\n* **Web 开发外包:**\n    * **复杂前端页面开发:** 擅长使用 `Vue/React` 等现代框架构建高性能、高交互性的 Web 应用。\n    * **全栈项目开发:** 提供从前端到后端的整套解决方案。\n\n* **定制化开发与技术咨询:**\n    * 基于我们的开源编辑器进行二次开发，为您量身定制专属功能。\n    * 提供 `Web3D` 相关的技术咨询、方案设计和性能优化服务。\n\n* **更多的合作可能性？**\n    * 专业团队，为您提供所需。\n\n## 为什么选择我们？\n\n* **核心团队，技术保障:** 您将直接与开源项目的核心开发者沟通，我们对 ==Web3D 技术/ Web前后端== 有深入的理解和丰富的实战经验。\n* **开源基础，降本增效:** 基于我们成熟的开源编辑器/其他产品，可以为您快速搭建项目原型，显著缩短开发周期，降低开发成本。\n* **代码质量，值得信赖:** 开源意味着我们的代码经过了社区的广泛检验，我们始终坚持高标准的编码规范和交付质量。\n* **专注高效，沟通直接:** 我们是纯粹的技术团队，沟通直接高效，致力于用最合适的技术方案解决您的实际问题。\n\n## 联系方式\n\n如果您有项目需求或合作意向，欢迎添加我的微信进行深入沟通。请在好友申请中备注“**商务合作**”或“**您的公司/项目名**”，以便我能快速通过并了解您的需求。\n\n<div style=\"display:flex;justify-content: center;align-items: center;flex-direction: column\">\n\n|                              商务微信                              |\n|:--------------------------------------------------------------:|\n| ![WeChat](/images/wechat-qrcode.jpg){width=\"300\" height=\"300\"} |\n\n微信号：**mahaibing130802**\n  \n</div>\n\n我们期待通过精湛的技术，助力您的业务在==数字化浪潮==中脱颖而出。"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/extras/动画编辑器.md",
    "content": "---\ntitle: 动画编辑器\ncreateTime: 2025/03/31 19:50:56\npermalink: /guide/5s7acuj0/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/extras/日志.md",
    "content": "---\ntitle: 日志\ncreateTime: 2025/03/31 20:03:00\npermalink: /guide/0q1bxrub/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/extras/资源中心.md",
    "content": "---\ntitle: 资源中心\ncreateTime: 2025/03/31 19:51:33\npermalink: /guide/dju4ekca/\n---\n\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/extras/resource.png\"\n  title=\"资源中心\"\n  author=\"ErSan\"\n  date=\"2025/04/17\"\n/>\n:::\n\n## 简要说明\n在扩展栏左上角下拉菜单中可将扩展面板切换到资源中心模块。<br />\n资源共分为==模型、材质、粒子、广告牌、Html面板、灯光、相机==。<br />\n编辑器已内置大多通用资源，也可在扩展栏右上角切换资源来源：==内置资源/公共资源==。\n\n**主要亮点：**\n- **资源分类清晰**：支持多种资源类型，方便用户快速查找和使用。\n- **资源来源灵活**：可切换内置资源和公共资源，满足不同场景需求。\n- **高效管理**：支持资源的快速预览、搜索和分类管理。\n- **扩展性强**：用户可自定义资源并上传到公共资源库。\n\n## 功能说明\n- **资源搜索**：按名称模糊搜索已选择分类下的资源。\n- **模型**：内置多种类型的模型，用户可快速预览模型并拖拽到场景中使用。\n- **材质**：提供丰富的材质库，用户可实时预览材质效果并应用至模型。\n- **粒子**：内置多种粒子效果模板，支持参数调整和自定义粒子效果创建。\n- **广告牌**：支持图片和文字广告牌的快速创建，适用于场景标注和装饰。\n- **Html面板**：允许嵌入自定义HTML内容，支持动态交互和样式调整。\n- **灯光**：提供多种灯光类型（如点光源、聚光灯等），支持实时调整光照参数。\n- **相机**：内置透视相机与正交相机，满足不同场景需求。\n\n### 资源搜索\n搜索框位于扩展栏顶部中间。\n输入搜索内容，将根据当前所选取资源类型进行模糊查询。\n\n### 模型\n如本页首图，内置了多种类型的模型，用户可通过==拖拽/双击==方式将模型添加到场景中。\n- ==拖拽==：模型将放置在鼠标放开的屏幕位置\n- ==双击==：模型将放置在场景中心\n\n### 材质\n内置了多类型的PBR材质、Shader材质，用户可通过==拖拽/双击==方式将材质应用到模型上; <br />\n成功应用的材质可在 右侧边栏-[材质](/guide/l1df4723/) 进行参数配置及修改。\n- ==右键==：预览材质\n- ==拖拽==：材质将应用至鼠标放开位置选取到的模型上\n- ==双击==：材质将应用至所选取的模型上\n\n**注意**：材质只能应用至Mesh节点，不能应用于Group、广告牌、粒子、Html面板等节点。即材质只能应用于本身就包含材质属性的模型节点。\n\n\n### 粒子\n内置火焰、烟雾、萤火虫等常见粒子效果模板，用户可通过==拖拽/双击==方式将粒子添加到场景中; <br />\n成功添加的粒子可在 右侧边栏-[粒子](/guide/siz46vj0/) 调整粒子发射器参数及粒子行为。\n- ==拖拽==：粒子将放置在鼠标放开的屏幕位置\n- ==双击==：粒子将放置在场景中心\n\n\n### 广告牌\n内置图标、文本广告牌，用户可通过==拖拽/双击==方式将广告牌添加到场景中; <br />\n成功添加的广告牌可在 右侧边栏-[广告牌](/guide/18al65zg/) 进行参数配置及修改。\n- ==拖拽==：广告牌将放置在鼠标放开的屏幕位置\n- ==双击==：广告牌将放置在场景中心\n\n### Html面板\n内置多个Html面板模板，用户可通过==拖拽/双击==方式将Html面板添加到场景中; <br />\n该功能允许用户在场景中嵌入HTML内容，如视频播放器、交互式表单、数据图表等，支持动态更新; <br />\n成功添加的Html面板可在 右侧边栏-[Html面板](/guide/kk5cv2ij/) 进行参数配置及内容修改。\n- ==拖拽==：Html面板将放置在鼠标放开的屏幕位置\n- ==双击==：Html面板将放置在场景中心\n\n\n### 灯光\n内置==环境光、平行光、半球光、点光源、聚光灯==五种灯光类型，用户可通过==拖拽/双击==方式将灯光添加到场景中; <br />\n成功添加的灯光（选中后）可在 右侧边栏-[对象](/guide/2xlh6nrf/) 进行参数配置及修改。\n- ==拖拽==：灯光将放置在鼠标放开的屏幕位置\n- ==双击==：灯光将放置在场景中心\n\n### 相机\n内置==透视相机、正交相机==，用户可通过==拖拽/双击==方式将相机添加到场景中; <br />\n相机添加后可在[3D视口](/guide/jkg3yahd/)左上角进行主相机切换；<br />\n成功添加的相机（选中后）可在 右侧边栏-[对象](/guide/2xlh6nrf/) 进行参数配置及修改。\n- ==拖拽==：相机将放置在鼠标放开的屏幕位置\n- ==双击==：相机将放置在场景中心"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/leftSidebar/BIM轻量化.md",
    "content": "---\ntitle: BIM轻量化\ncreateTime: 2025/03/31 19:48:15\npermalink: /guide/rf1xgf4z/\n---\n\n<div style=\"display:flex;justify-content:center;\">\n<ImageCard\n  image=\"/images/manual/editor/leftSidebar/bim.png\"\n  title=\"BIM\"\n  description=\"通过将BIM工程文件（.rvt）转换为glTF文件，在保留BIM构件属性的同时压缩优化模型，以达到web端解析BIM并且轻量化的目的。\"\n  width=\"300\"\n  author=\"ErSan\"\n  date=\"2025/04/15\"\n/>\n</div>\n\n## 简要说明\n通过编辑器的BIM轻量化功能，您可以将复杂的BIM工程文件（如`.rvt`）转换为轻量化的`.glTF`文件。  \n转换过程中保留了BIM构件的属性信息，同时对模型进行了压缩优化，方便在Web端进行高效解析与展示。\n\n**主要亮点：**\n- 支持BIM文件的轻量化转换，优化模型大小。\n- 保留构件属性，便于后续操作与分析。\n- 界面设计与[CAD解析预览](/guide/u1631nwk/)类似，操作直观易用。\n\n## 功能说明\n- **模型列表**：展示用户上传转换的所有BIM模型。\n- **上传模型**：点击顶部==历史记录==右侧的==上传按钮==，会打开模型上传界面。\n- **历史记录**：点击顶部==历史记录==按钮，会弹出历史上传记录列表。\n\n### 模型列表\n- **功能描述**：展示用户上传并转换成功的所有BIM模型。\n- **操作方式**：  \n  如本页面首图，列表以网格形式展示；  \n  从列表中直接==拖动==相应模型到中间的三维视口 或 ==双击==该模型，都可加载并渲染对应模型。\n\n### 上传模型\n<div style=\"display:flex;justify-content:center;\">\n<ImageCard\n  image=\"/images/manual/editor/leftSidebar/bimUpload.png\"\n  title=\"上传模型\"\n  width=\"400\"\n  author=\"ErSan\"\n  date=\"2025/04/15\"\n/>\n</div>\n\n- **支持格式**：`.rvt、.rfa`  \n- **转换方式**：  \n  - 文件会在上传后通过WebSocket发起轻量化转换请求。  \n  - 转换结果通过WebSocket消息返回，并加载渲染展示。  \n- **转换配置**：\n  - 极致轻量化：模型会在转换过程中执行==网格优化、材质贴图压缩并转换格式为WebP、网格实例化、网格合并==等模型优化操作，以确保输出的BIM轻量化模型是最小体积及最小渲染损耗的glTF模型。过程中可能执行的具体优化项可参考[glTF处理器](/guide/plugin/builtin/jo87cfk0/)章节；\n  - 导出属性：生成的glTF模型中是否包含构件属性；\n  - 转换视图：一个BIM文件中可能会包含多个3D视图，如果用户有确切的转换视图目标，可选择`按名称`并输入视图名称以转换；否则将自动以`默认3D视图`为目标转换；\n  -视觉样式：此设置影响最终输出的模型材质。`着色`模式基本不包含任何材质贴图，以纯色材质方式输出；`真实`模式会包含用户建模时的材质贴图，输出材质更真实；\n  - 坐标参考：一般情况下，一个BIM工程模型会由多工程师完成，便会存在多个单体BIM文件。此设置会决定最终输出模型与笛卡尔坐标系原点的相对位置信息。关于==原点、项目基点、测量点==的详细说明，可以参考这篇文章：[详解Revit坐标系](https://zhuanlan.zhihu.com/p/220113797)\n\n### 历史记录\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/leftSidebar/bimHistory.png\"\n  title=\"历史记录\"\n  author=\"ErSan\"\n  date=\"2025/04/15\"\n/>\n:::\n\n- **功能描述**：展示用户之前上传的所有BIM模型记录，方便快速查找和重新加载。\n- **操作方式**：点击顶部==历史记录==按钮，弹出历史上传记录列表。\n\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/leftSidebar/CAD解析预览.md",
    "content": "---\ntitle: CAD解析预览\ncreateTime: 2025/03/31 19:49:44\npermalink: /guide/u1631nwk/\n---\n\n<div style=\"display:flex;justify-content:center;\">\n<ImageCard\n  image=\"/images/manual/editor/leftSidebar/cad.png\"\n  title=\"CAD\"\n  description=\"编辑器支持用户上传CAD图纸(.dwg、.dxf)进行解析预览\"\n  width=\"300\"\n  author=\"ErSan\"\n  date=\"2025/04/15\"\n/>\n</div>\n\n## 简要说明\n通过编辑器的CAD解析预览功能，您可以轻松上传并查看多种格式的CAD图纸。<br />\n无论是`.dwg`还是`.dxf`，都能快速解析并在三维视口中直观展示。<br />\n这一功能不仅提升了图纸管理的效率，还为三维设计和协作提供了极大的便利。<br />\n\n**主要亮点：**\n- 支持多种图纸格式，满足不同需求。\n- 即时解析与预览，操作简单高效。\n- 历史记录功能，方便快速查找和重新加载。\n\n让您的设计流程更加流畅，体验前所未有的便捷与高效！\n\n## 功能说明\n- **图纸列表**：展示用户上传并解析成功的所有图纸。\n- **上传图纸**：点击顶部==历史记录==右侧的==上传按钮==，会打开图纸上传界面。\n- **历史记录**：点击顶部==历史记录==按钮，会弹出历史上传记录列表。\n\n### 图纸列表\n- **功能描述**：展示用户上传并解析成功的所有图纸。\n- **操作方式**：  \n  如本页面首图，列表以网格形式展示；  \n  从列表中直接==拖动==相应图纸到中间的三维视口 或 ==双击==该图纸，都可加载并渲染对应图纸。\n\n### 上传图纸\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/leftSidebar/cadUpload.png\"\n  title=\"上传图纸\"\n  author=\"ErSan\"\n  date=\"2025/04/15\"\n/>\n:::\n\n- **支持格式**：`.dwg、.dxf、.png、.jpg(jpeg)`  \n- **解析方式**：  \n  - `.dwg`格式图纸由于无法在前端直接解析，会在上传后通过WebSocket发起图纸解析请求。  \n  - 解析结果通过WebSocket消息返回，并加载渲染展示。  \n  - 如果`.dwg`图纸中包含缩略图，会自动解析为封面图，在`图纸列表`中展示。\n\n### 历史记录\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/leftSidebar/cadHistory.png\"\n  title=\"历史记录\"\n  author=\"ErSan\"\n  date=\"2025/04/15\"\n/>\n:::\n\n- **功能描述**：展示用户之前上传的所有图纸记录，方便快速查找和重新加载。\n- **操作方式**：点击顶部==历史记录==按钮，弹出历史上传记录列表。"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/leftSidebar/场景树.md",
    "content": "---\ntitle: 场景树\ncreateTime: 2025/03/31 19:58:06\npermalink: /guide/rzqb0h0l/\n---\n\n<CardGrid>\n  <ImageCard\n  image=\"/images/manual/editor/leftSidebar/sceneTree.png\"\n  title=\"场景树\"\n  description=\"场景树是 Astral3D 编辑器中用于管理场景中所有对象的工具。它以树状结构展示场景中的层级关系，便于用户快速定位和操作对象\"\n  author=\"ErSan\"\n  date=\"2025/04/14\"\n/>\n  <ImageCard\n    image=\"/images/manual/editor/leftSidebar/sceneTreeContextMenu.png\"\n    title=\"场景节点右键菜单\"\n    description=\"聚焦、删除、拷贝\"\n    author=\"ErSan\"\n    date=\"2025/04/14\"\n  />\n</CardGrid>\n\n\n## 简要说明\n场景树是 Astral3D 编辑器中用于管理场景中所有对象的工具。它以树状结构展示场景中的层级关系，便于用户快速定位和操作对象。\n\n## 功能说明\n- **节点搜索**：顶部搜索栏用于快速查找节点，模糊查询到的节点父级会自动展开，并在改节点下添加下划线。\n- **层级管理**：通过拖拽操作，可以调整对象的父子关系。\n- **对象选择**：点击场景树中的对象名称，可以在场景中选中对应的对象（不会自动聚焦）。\n- **聚焦对象**：右键菜单中提供聚焦选项，用以在视口中定位模型（更推荐使用快捷键，默认是`F`）。\n- **删除对象**：右键菜单中提供删除选项，方便移除不需要的对象（更推荐使用快捷键，默认是`Del`）。\n- **拷贝对象**：右键菜单中提供拷贝选项，方便快速复制对象（同[顶栏](/guide/f7smai4w/)基础操作区中的拷贝）。\n<!-- - **对象隐藏/显示**：通过点击对象名称旁的图标，可以快速隐藏或显示对象。\n- **重命名**：双击对象名称可以对其进行重命名。 -->\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/Html面板.md",
    "content": "---\ntitle: Html面板\ncreateTime: 2025/04/17 17:03:07\npermalink: /guide/kk5cv2ij/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/几何.md",
    "content": "---\ntitle: 几何\ncreateTime: 2025/03/31 20:06:40\npermalink: /guide/nct00cif/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/动画.md",
    "content": "---\ntitle: 动画\ncreateTime: 2025/03/31 20:07:33\npermalink: /guide/g3kxptm0/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/历史记录.md",
    "content": "---\ntitle: 历史记录\ncreateTime: 2025/03/31 20:05:25\npermalink: /guide/ae7ufigr/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/后期处理.md",
    "content": "---\ntitle: 后期处理\ncreateTime: 2025/03/31 20:04:44\npermalink: /guide/l8hd921o/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/场景图纸.md",
    "content": "---\ntitle: 场景图纸\ncreateTime: 2025/03/31 20:05:40\npermalink: /guide/ta6draim/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/场景配置.md",
    "content": "---\ntitle: 场景配置\ncreateTime: 2025/03/31 20:04:17\npermalink: /guide/pnmbue0k/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/天气.md",
    "content": "---\ntitle: 天气\ncreateTime: 2025/03/31 20:05:08\npermalink: /guide/fn9xwbkf/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/对象.md",
    "content": "---\ntitle: 对象\ncreateTime: 2025/03/31 20:06:07\npermalink: /guide/2xlh6nrf/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/广告牌.md",
    "content": "---\ntitle: 广告牌\ncreateTime: 2025/04/17 17:11:18\npermalink: /guide/18al65zg/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/材质.md",
    "content": "---\ntitle: 材质\ncreateTime: 2025/03/31 20:07:10\npermalink: /guide/l1df4723/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/渲染器配置.md",
    "content": "---\ntitle: 渲染器配置\ncreateTime: 2025/03/31 20:04:34\npermalink: /guide/crvssx6j/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/粒子.md",
    "content": "---\ntitle: 粒子\ncreateTime: 2025/03/31 19:50:23\npermalink: /guide/siz46vj0/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/rightSidebar/脚本.md",
    "content": "---\nlang: zh-CN\ntitle: 脚本\ncreateTime: 2025/02/20 15:13:36\npermalink: /guide/component/h4v1bkyh/\n---\n\n> 主要面相于开发人员，主要功能有：\n>\n>1. 编写脚本逻辑，并将其挂载于实体模型上；\n>2. 脚本组件使用`JavaScript`编程语言；\n>3. 脚本组件由事件驱动，在对应生命周期内执行；\n>4. 脚本组件可以访问实体模型的属性和方法；\n>5. 运行时执行脚本逻辑，并获取脚本执行结果；\n\n### 内置变量\n在脚本中已经内置了以下变量：\n\n| 变量       | 描述         | 类型                                                           |\n|----------|------------|--------------------------------------------------------------|\n| this     | 当前实体模型的引用  | `THREE.Object3D`                                             |\n| THREE    | THREE对象    | `THREE`                                                      |\n| helper   | 辅助类函数集合    | [Helper](#helper)                                            |\n| renderer | 当前渲染器的引用   | `THREE.WebGLRenderer`                                        |\n| scene    | 当前场景的引用    | `THREE.Scene`                                                |\n| camera   | 当前场景相机的引用  | `THREE.PerspectiveCamera`                                    |\n| controls | 当前场景控制器的引用 | [CameraControls](https://github.com/yomotsu/camera-controls) |\n| timer    | 场景运行时间跟踪   | `three/addons/misc/Timer.js`                                 |\n\n### 内置方法\n在脚本中已经内置了以下方法：\n\n| 方法     | 描述        | 传入参数              |\n|--------|-----------|-------------------|\n| render | 驱动场景渲染一帧。 | `{delta?:number}` |\n\n### 内置生命周期\n支持以下几个基本生命周期：\n\n| 生命周期            | 描述                            | 参数                                                             |\n|-----------------|-------------------------------|----------------------------------------------------------------|\n| loaded          | 场景加载完成时执行，仅执行一次          | -                                                              |\n| beforeAnimation | 场景当前动画帧循环开始之前触发，每一帧执行一次       | `{\"delta\":number}`                                             |\n| afterAnimation  | 场景当前动画帧循环完成之后立即触发，每一帧执行一次     | `{\"delta\":number,\"toBeRender\":(_needRender: boolean) => void}` |\n| beforeRender    | 场景当前动画帧循环完成之后渲染之前触发，每一次渲染执行一次 | `{\"delta\":number}`                                             |\n| afterRender     | 场景当前帧渲染完成之后触发，每一次渲染执行一次       | `{\"delta\":number}`                                             |\n| beforeDestroy   | 场景销毁前调用，仅执行一次                 | -                                                              |\n| afterDestroy    | 场景销毁后调用，仅执行一次                 | -                                                              |\n\n> Tips:\n>> `toBeRender`:由于本系统默认为事件驱动渲染，而非持续渲染，故提供此方法以便在脚本中实现自定义的逻辑。推荐用法：\n>> ```javascript\n>> afterAnimation(delta,toBeRender){\n>>    // 传入true则下一帧一定渲染\n>>    toBeRender(true);\n>> }\n>> ```\n\n### 内置事件\n支持以下几个基本事件：\n\n| 事件            | 描述         | 参数                             |\n|---------------|------------|--------------------------------|\n| onPick        | 模型单击事件     | `intersect:THREE.Intersection` |\n| onDoubleClick | 模型双击事件     | `intersect:THREE.Intersection` |\n| onKeydown     | 键盘按下事件(全局) | `event:KeyboardEvent`          |\n| onKeyup       | 键盘抬起事件(全局) | `event:KeyboardEvent`          |\n| onPointerDown | 指针按下事件(全局) | `event:PointerEvent`           |\n| onPointerUp   | 指针抬起事件(全局) | `event:PointerEvent`           |\n| onPointerMove | 指针移动事件(全局) | `event:PointerEvent`           |\n| onTouchStart  | 触屏按下事件(全局) | `event:TouchEvent`             |\n| onTouchEnd    | 触屏释放事件(全局) | `event:TouchEvent`             |\n\n<br/>\n\n***\n\n### 辅助类(<a id=\"helper\">Helper</a>)\n| 成员        | 描述                   | 类型                             |\n|-----------|----------------------|--------------------------------|\n| scene     | 当前场景的引用，内置变量scene的引用 | `THREE.Scene`                  |\n| Animation | 未实例化的动画类             | [Animation](#helper-animation) |\n\n| 方法           | 描述                     | 参数                                                               | 返回值              |\n|--------------|------------------------|------------------------------------------------------------------|------------------|\n| objectByUuid | 通过uuid获取场景中的Object3D对象 | `uuid:string`                                                    | `THREE.Object3D` |\n| moveObject   | 移动3D对象到指定位置            | `object: Object3D`<br/>`parent: Object3D`<br/>`before: Object3D` | -                |\n| removeObject | 从场景中移除3D对象             | `object: THREE.Object3D`                                         | -                |\n\n### 动画类(<a id=\"helper-animation\">Animation</a>)\n#### 基础用法\n```javascript\n    const animation = new helper.Animation(this);\n```\n\n#### API\n```typescript\n    new helper.Animation(object:THREE.Object3D)\n```\n\n| 成员                  | 描述                                                                                                                                                              | 类型                                    |\n|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|\n| object              | 构造函数形参值，动画绑定的对象。<br/> 如果实例化时传入参数this(如上)，则指向内置变量this                                                                                                            | `THREE.Object3D`                      |\n| actions             | 动画动作集合                                                                                                                                                          | `THREE.AnimationAction[]`             |\n| actionsMap          | 动画动作映射表，key为动作名称，value为THREE.AnimationAction对象                                                                                                                  | `Map<string,  THREE.AnimationAction>` |\n| lastPlayAction    | 正在播放的动作名称                                                                                                                                                       | `THREE.AnimationAction \\| undefined`  |\n| repetitions         | 动画重复次数                                                                                                                                                          | `number`                              |\n| ActionLoop (static) | 动画循环模式枚举：<br/> LoopOnce - 只执行一次 <br/> LoopRepeat - 重复次数为repetitions的值, 且每次循环结束时候将回到起始动作开始下一次循环。 <br/> LoopPingPong - 重复次数为repetitions的值, 且像乒乓球一样在起始点与结束点之间来回循环。 | `Enum`                                |\n\n| 方法        | 描述                                                                                                                   | 参数                                                                                                                         | 返回值                                  |\n|-----------|----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|--------------------------------------|\n| getAction | 获取指定名称的动画动作,用于用户直接调用[THREE.AnimationAction的方法](https://threejs.org/docs/index.html#api/zh/animation/AnimationAction) | `name:string`                                                                                                              | `THREE.AnimationAction \\| undefined` |\n| play      | 播放指定名称的动画动作,支持链式调用                                                                                                   | `name:string` <br/> `loop:AnimationActionLoopStyles = helper.Animation.ActionLoop.LoopRepeat` <br/> `timeScale:number = 1` | `this(helper.Animation)`             |\n| pause     | 暂停动画,支持链式调用                                                                                                          | `name:string \\| undefined`                                                                                                 | `this(helper.Animation)`             |\n| stop      | 停止动画,支持链式调用                                                                                                          | `name:string \\| undefined`                                                                                                 | `this(helper.Animation)`             |\n\n### 基础用法\n完整结构：\n\n```javascript\n/**\n * 场景加载完成时执行，仅执行一次\n */\nfunction loaded() {\n    console.group('loaded');\n    console.log(this);\n    console.log(renderer);\n    console.log(scene);\n    console.log(camera);\n    console.log(controls);\n    console.log(timer);\n    console.groupEnd()\n}\n\n/**\n * 场景当前动画帧循环开始之前触发，每一帧执行一次\n * @param {number} delta\n */\nfunction beforeAnimation(delta) {}\n\n/**\n * 场景当前动画帧循环完成之后立即触发，每一帧执行一次\n * @param {number} delta\n * @param {(_needRender: boolean) => void} toBeRender 设置下一帧是否将渲染\n */\nfunction afterAnimation(delta,toBeRender) {}\n\n/**\n * 场景当前动画帧循环完成之后渲染之前触发，每一次渲染执行一次\n * @param {number} delta\n */\nfunction beforeRender(delta) {}\n\n/**\n * 场景当前帧渲染完成之后触发，每一次渲染执行一次\n * @param {number} delta\n */\nfunction afterRender(delta) {}\n\n/**\n * 场景销毁前调用，仅执行一次\n */\nfunction beforeDestroy() {}\n\n/**\n * 场景销毁后调用，仅执行一次\n */\nfunction afterDestroy() {}\n\n/**\n * 模型单击事件\n * @param {THREE.Intersection} intersect\n */\nfunction onPick(intersect) {}\n\n/**\n * 模型双击事件\n * @param {THREE.Intersection} intersect\n */\nfunction onDoubleClick(intersect) {}\n\n/**\n * 键盘按下事件(全局)\n * @param {KeyboardEvent} event\n */\nfunction onKeyDown(event) {}\n\n/**\n * 键盘抬起事件(全局)\n * @param {KeyboardEvent} event\n */\nfunction onKeyUp(event) {}\n\n/**\n * 指针按下事件(全局)\n * @param {PointerEvent} event\n */\nfunction onPointerDown(event) {}\n\n/**\n * 指针抬起事件(全局)\n * @param {PointerEvent} event\n */\nfunction onPointerUp(event) {}\n\n/**\n * 指针移动事件(全局)\n * @param {PointerEvent} event\n */\nfunction onPointerMove(event) {}\n\n/**\n * 触屏按下事件(全局)\n * @param {TouchEvent} event\n */\nfunction onTouchStart(event) {}\n\n/**\n * 触屏释放事件(全局)\n * @param {TouchEvent} event\n */\nfunction onTouchEnd(event) {}\n```\n\n*** \n\n### 示例代码\n#### 1. 动态天空盒/模型动画/键盘事件\n::: tabs#animate\n\n@tab Scene#scene\n\n```javascript\nfunction afterAnimation(delta,toBeRender){\n    toBeRender(true)\n}\n\nconst DEG2RAD = Math.PI / 180;\nfunction beforeRender(delta) {\n    const t = delta * DEG2RAD;\n    scene.backgroundRotation.y = t;\n}\n```\n\n@tab:active Wolf#wolf\n\n```javascript\nconst anime = new helper.Animation(this);\n\nfunction loaded() {\n    anime.play(\"01_Run_Armature_0\");\n}\n\nfunction onKeyDown(event) {\n    // 按下1则执行 \"01_Run_Armature_0\" 动画,按下2则执行 \"02_walk_Armature_0\" 动画，按下3则执行 \"\"05_site_Armature_0\"\" 动画,\n    switch (event.key) {\n        case \"1\":\n            anime.stop();\n            anime.play(\"02_walk_Armature_0\");\n            break;\n\n        case \"2\":\n            anime.stop();\n            anime.play(\"05_site_Armature_0\");\n            break;\n\n        case \"3\":\n            anime.stop();\n            anime.play(\"01_Run_Armature_0\");\n            break;\n    }\n}\n\nfunction beforeDestroy() {\n    anime.stop();\n}\n```\n\n:::\n\n<iframe height=500 width=100% src=\"https://editor.astraljs.com/#/preview/a18eb710-c1f8-4cff-b8ab-c3a2056ccf57\" frameborder=0 allowfullscreen></iframe>"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/viewport/2D图纸.md",
    "content": "---\ntitle: 2D图纸\ncreateTime: 2025/03/31 20:00:46\npermalink: /guide/7eo51kfy/\n---\n\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/viewport/drawing.png\"\n  title=\"2D图纸\"\n  description=\"拖入(双击)添加至场景中的图纸会自动占据中心视口一半的位置，其与3D视图中间的垂直分割线可以左右拖动以改变占据视口的大小\"\n  author=\"ErSan\"\n  date=\"2025/04/16\"\n/>\n:::\n\n## 简要说明\n==拖入(双击)== 添加至场景中的图纸会自动占据中心视口一半的位置，其与3D视图中间的 ==垂直分割线== 可以左右拖动以改变占据视口的大小。<br />\n图纸可以与3D视图联动，提供更直观的设计体验。<br />\n这一功能不仅提升了图纸的可视化效果，还为设计和协作提供了极大的便利。<br />\n\n**主要亮点：**\n- 使用OffscreenCanvas技术在Worker线程中对图纸内容进行渲染，不会阻塞主线程3D场景的渲染。\n- 图纸与3D视图联动，操作简单高效。\n- 灵活调整视口分割线，优化工作空间。\n\n## 功能说明\n- **图纸加载**：支持将图纸拖入或双击添加至场景。\n- **视口分割**：通过拖动分割线调整2D图纸与3D视图的占比。\n- **图纸复位**：将图纸的显示区域恢复为初始状态。\n- **图层显隐**：查看图纸的图层列表，并显示/隐藏任意图层。\n- **新增标记**：在3D视图中选中模型后，便可以在图纸中新增对应的标记框。\n- **删除标记**：删除当前选中的标记。\n\n### 图纸加载\n- **功能描述**：将图纸拖入或双击添加至场景后，图纸会自动占据中心视口的一半位置。\n- **操作方式**：  \n  - 在左侧CAD图纸列表中双击目标图纸，快速加载到场景中。\n\n### 视口分割\n- **功能描述**：调整2D图纸与3D视图的占比，优化工作空间。\n- **操作方式**：  \n  - 拖动2D图纸与3D视图中间的垂直分割线，调整两者的占比。  \n  <!-- - 分割线位置会自动保存，方便下次使用。 -->\n\n### 图纸复位\n- **功能描述**：将图纸的显示区域恢复为初始状态。\n- **操作方式**：  \n  - 点击图纸菜单栏中的复位按钮（第一个）。\n\n### 图层显隐\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/viewport/drawingLayer.png\"\n  title=\"CAD图层\"\n  author=\"ErSan\"\n  date=\"2025/04/16\"\n/>\n:::\n\n- **功能描述**：查看图纸的图层列表，并显示/隐藏任意图层。\n- **操作方式**：  \n  - 点击图纸菜单栏中的图层按钮（第二个）。\n  - 弹出的图层列表中，点击任一个图层前面的小眼睛图标即可隐藏对应图层，反正显示对应图层。\n  - 图层列表顶部的==全部图层==节点可以同时显示/隐藏所有图层。\n\n### 新增标记\n- **功能描述**：在图纸中新增3D场景中所选中模型的对应的标记框。\n- **操作方式**：  \n  - 在右侧3D场景中选中需要标注的模型。\n  - 点击图纸菜单栏中的新增标记按钮（第三个）。\n  - 在图纸需要标记的位置按住鼠标左键拖动，即可绘制出长方形标记框。\n  - 只会只要在图纸中点击该标记，右侧3D场景便会自动聚焦并选中相应模型。\n\n### 删除标记\n- **功能描述**：删除当前选中的标记。\n- **操作方式**：  \n  - 在图纸上选中需要删除的标记。\n  - 点击图纸菜单栏中的删除按钮（第四个）。\n  - 标记及其与模型的关联关系将被移除。"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/viewport/3D场景.md",
    "content": "---\ntitle: 3D场景\ncreateTime: 2025/03/31 20:00:56\npermalink: /guide/jkg3yahd/\n---\n\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/viewport/viewer.png\"\n  title=\"3D场景\"\n  description=\"编辑器的核心视口，展示用户所编辑的场景内容。\"\n  author=\"ErSan\"\n  date=\"2025/04/16\"\n/>\n:::\n\n## 简要说明\n编辑器的核心视口，展示用户所编辑的场景内容。\n\n**主要亮点：**\n- 提供六视角切换/主相机切换功能，方便用户观察3D场景。\n- 自适应视口。\n- 支持多种渲染模式，满足不同场景需求。\n- 提供丰富的变换控制工具，便于编辑和调整模型。\n\n## 功能说明\n- **主相机切换**：支持在默认的透视相机和其他添加进场景的相机之间切换，满足不同场景的观察需求。\n- **六视图**：快速切换到==前、后、左、右、上、下==六个标准视角，便于精确调整模型。\n- **渲染模式**：提供==真实、原色、法线、线框==四种渲染模式，适应不同的设计需求。\n- **变换控制**：支持平移、旋转、缩放三种变换操作，用户可以通过鼠标或快捷键快速调整模型。\n- **坐标参考**：可以切换==世界坐标、本地坐标==，以查看不同坐标系下的轴情况，帮助用户明确模型的方向和位置。\n- **场景统计信息**：实时显示场景中的模型数量、顶点数、三角面数、帧时等信息，便于性能优化。\n- **视角辅助**：提供视角导航工具，帮助用户快速调整观察方向。\n- **操作快捷键**：内置聚焦、删除等快捷键操作，便于快速设计。\n\n### 主相机切换/六视图\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/viewport/viewerCamera.png\"\n  title=\"场景相机/六视图\"\n  author=\"ErSan\"\n  date=\"2025/04/16\"\n/>\n:::\n\n### 渲染模式\n<div style=\"display:flex;justify-content:center;\">\n<ImageCard\n  image=\"/images/manual/editor/viewport/viewerRenderMode.png\"\n  title=\"渲染模式\"\n  width=\"400\"\n  author=\"ErSan\"\n  date=\"2025/04/16\"\n/>\n</div>\n\n提供以下渲染模式：\n- **真实模式**：显示模型的材质效果，并进行实时采样，以产生类似光线追踪的效果。\n- **原色模式**：显示模型的材质效果，便于检查纹理和光影。\n- **法线模式**：\n- **线框模式**：仅显示模型的边框线条，便于查看内部结构。\n\n### 变换控制\n<div style=\"display:flex;justify-content:center;\">\n<ImageCard\n  image=\"/images/manual/editor/viewport/viewerTransform.png\"\n  title=\"变换控制\"\n  width=\"400\"\n  author=\"ErSan\"\n  date=\"2025/04/16\"\n/>\n</div>\n支持以下变换操作：\n- **平移**：拖动模型在平面内移动。\n- **旋转**：绕指定轴旋转模型。\n- **缩放**：调整模型的大小比例。\n\n### 坐标参考\n变换控制右边的按钮，点击后会在==世界坐标/本地坐标==之间切换。<br />\n用于表明场景中显示的坐标轴（X、Y、Z）所使用的参考坐标系。<br />\n比如：A模型在世界坐标下Y轴向上，但是本地坐标下却是Z轴向上。确定轴向可以辅助用户快速定位一些矩阵变换错误的原因。<br />\n\n### 场景统计信息\n在界面左下角显示场景的实时统计信息，包括：\n- 模型数量\n- 顶点数\n- 三角面数\n- 帧时（帧率 = 1000/帧时）\n\n### 视角辅助\n在界面右下角提供了视角辅助器，方便用户快速切换视角，共支持22个视角。\n其颜色会跟随编辑器主题变换（深色/浅色）。\n\n### 操作快捷键\n支持以下快捷键操作：\n- **W**：切换到平移模式。\n- **E**：切换到旋转模式。\n- **R**：切换到缩放模式。\n- **F**：聚焦选中模型。\n- **Del**：删除选中模型。\n- **Ctrl + Z**：撤销上一步操作。\n- **Ctrl + Shift +Z**：重做被撤销的操作。\n\n如果在设置中修改了对应快捷键，则请使用对应快捷键操作。\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/界面.md",
    "content": "---\ntitle: 界面\ncreateTime: 2025/03/31 19:45:41\npermalink: /guide/swepocsg/\n---\n\n::: demo-wrapper img no-padding\n<ImageCard\n  image=\"/images/manual/editor/page.png\"\n  title=\"编辑器\"\n  description=\"整个编辑界面分为 `顶栏`,`左侧边栏`,`场景视口`,`扩展栏`,`右侧边栏` 五个区域\"\n  author=\"ErSan\"\n  date=\"2025/04/14\"\n/>\n:::\n\n::: tip 说明\n整个编辑界面分为 `顶栏`,`左侧边栏`,`场景视口`,`扩展栏`,`右侧边栏` 五个区域\n:::"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/editor/顶栏.md",
    "content": "---\ntitle: 顶栏\ncreateTime: 2025/03/31 20:09:24\npermalink: /guide/f7smai4w/\n---\n\n::: demo-wrapper img no-padding\n![顶栏](/images/manual/editor/header.png)\n:::\n\n::: tip 说明\n`顶栏`部分为左中右布局，左侧为`基础操作区`，中间仅展示`场景名称`，右侧为`多功能区域`\n:::\n\n## 基础操作区\n> 图标/按钮 从左到右依次是 ==Logo、撤回、重做、删除、清空、拷贝、全屏、导出、导入==\n\n::: tabs\n@tab Logo\n方寸藏寰宇，虚实映乾坤\n\n@tab 撤回\n撤销上一步操作。\n\n@tab 重做\n恢复被撤销的操作。\n\n@tab 删除\n删除当前选中的对象。\n\n@tab 清空\n清空场景中的所有内容并重置所有模块。\n\n@tab 拷贝\n复制当前选中的对象。\n\n@tab 全屏\n切换编辑器的全屏模式，全屏后会变为退出全屏图标，点击可退出全屏。\n\n@tab 导出\n<CardGrid>\n  <ImageCard\n    image=\"/images/manual/editor/header/exportObject.png\"\n    title=\"导出选中对象\"\n    author=\"ErSan\"\n    date=\"2025/04/14\"\n  />\n  <ImageCard\n    image=\"/images/manual/editor/header/exportScene.png\"\n    title=\"导出场景\"\n    author=\"ErSan\"\n    date=\"2025/04/14\"\n  />\n</CardGrid>\n\n导出功能分为两类，一是导出选中的物体，二是导出整个场景。<br />\n两者所支持的导出格式一致，分别是==JSON、GLB、GLTF、OBJ、PLY、PLY(二进制)、STL、STL(二进制)、USDZ==\n\n@tab 导入\n从文件系统导入模型/场景文件，允许多选，支持在此处导入的文件格式如下：\n- [x] glb\n- [x] gltf\n- [x] fbx\n- [x] json (Three JSON / Astral3D JSON)\n- [x] zip [+zip] \n- [x] obj\n- [x] mtl\n- [x] ifc\n- [x] 3dm\n- [x] 3ds\n- [x] 3mf\n- [x] amf\n- [x] dae\n- [x] drc\n- [x] kmz\n- [x] ldr\n- [x] mpd\n- [x] md2\n- [x] pcd\n- [x] ply\n- [x] stl\n- [x] svg\n- [x] usdz\n- [x] vox\n- [x] vtk\n- [x] vtp\n- [ ] vtu\n- [x] wrl\n- [x] xyz\n- [x] js\n\n[+zip]:\n  导入zip包时，系统会自动解析处理，分为下面几种情况：\n  * 同时包含`model.obj`和`materials.mtl`，会按照`.obj`解析\n  * 遍历解析zip包中的`fbx`、`glb`、`gltf`\n:::\n\n\n## 多功能区域\n> 图标/按钮 从左到右依次是 ==保存、预览、国际化、主题、主色调、设置==\n\n::: tabs\n@tab 保存\n打包当前场景，并保存至服务器。\n\n@tab 预览\n打开新的[预览页](/guide/chhmeza7/)窗口进行场景预览。\n\n@tab 国际化\n切换编辑器的语言，默认支持语言如下：\n- [x] 简体中文\n- [x] English\n\n@tab 主题\n切换编辑器的主题风格。<br />\n切换顺序为`深色`-->`跟随系统`-->`浅色`-->`深色` <br />\n系统默认为`深色`风格\n\n@tab 主色调\n<ImageCard\n  image=\"/images/manual/editor/header/mainColor.png\"\n  title=\"主色调\"\n  description=\"调整编辑器的主色,系统会自动生成相应的浅色、深色色阶，用于鼠标经过以及选中等效果\"\n  author=\"ErSan\"\n  date=\"2025/04/14\"\n/>\n\n调整编辑器的主色,系统会自动生成相应的浅色、深色色阶，用于鼠标经过以及选中等效果。\n\n\n@tab 设置\n<ImageCard\n  image=\"/images/manual/editor/header/setting.png\"\n  title=\"系统设置\"\n  author=\"ErSan\"\n  date=\"2025/04/14\"\n/>\n\n打开编辑器的设置面板。\n\n:::"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/home/数据中心.md",
    "content": "---\ntitle: 数据中心\ncreateTime: 2025/08/01 15:14:30\npermalink: /guide/v0m2jmb5/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/home/设置中心.md",
    "content": "---\ntitle: 设置中心\ncreateTime: 2025/08/01 15:14:51\npermalink: /guide/sekzh2c0/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/home/资源中心.md",
    "content": "---\ntitle: 资源中心\ncreateTime: 2025/08/01 15:14:39\npermalink: /guide/4tirtbsc/\n---\n\n::: demo-wrapper img no-padding\n<ImageCard\nimage=\"/images/manual/home/assets/assets-page.jpg\"\ntitle=\"资源中心\"\ndescription=\"多级分类，精细控制\"\nauthor=\"ErSan\"\ndate=\"2025/08/01\"\n/>\n:::\n\n## 上传资源\n::: demo-wrapper img no-padding\n<ImageCard\nimage=\"/images/manual/home/assets/asset-upload.png\"\ntitle=\"上传资源\"\ndescription=\"多级分类，精细控制\"\nauthor=\"ErSan\"\ndate=\"2025/08/01\"\n/>\n:::\n\n- **类型**：可上传资源类型默认为：==模型、材质、纹理、广告牌、HDR==;\n- **分类**：从树节点中选择资源所属的详细类别;\n- **标签**：为资源添加特定的标签，比如 ==“有动画、有骨骼”== 之类的，便于在资源列表顶部勾选标签快速搜索；\n- **缩略图**：可以从本地选择，或者在选择资源文件后，点击 ==通过预览截图== 生成。\n::: tabs\n@tab 通过预览截图\n> 假设在`模型`类型下我先选择了一个飞机模型，然后点击按钮`通过预览截图`\n\n<ImageCard\nimage=\"/images/manual/home/assets/asset-preview-screenshot.png\"\ntitle=\"通过预览截图\"\ndescription=\"点击截图按钮，将自动截取当前画布填充至表单缩略图字段，并关闭此预览弹窗\"\nauthor=\"ErSan\"\ndate=\"2025/08/01\"\n/>\n:::\n- **文件**：不同类型的资源具有不同的文件格式支持。\n::: tabs\n\n@tab 模型\n- [x] glb\n- [x] gltf\n- [x] fbx\n- [x] obj\n\n@tab 材质\n- [x] zip\n> 默认解析为==PBR材质==。  \n> 上传的ZIP包内文件应依照特定规则（以下两种之一）：  \n>  * <Badge type=\"tip\" text=\"推荐\" /> 一. zip包中包含一个`material.json`的文件，其中指明各类贴图使用的纹理文件及材质属性，示例如下：\n>  ```json:no-line-numbers title=\"material.json\"\n>  {\n>       textures: {\n>           baseColor: xxx.[png/jpg/webp/tga/hdr/exr],\n>           normal: xxx.[png/jpg/webp/tga/hdr/exr],\n>           bump: xxx.[png/jpg/webp/tga/hdr/exr],\n>           displacement: xxx.[png/jpg/webp/tga/hdr/exr],\n>           roughness: xxx.[png/jpg/webp/tga/hdr/exr],\n>           metalness: xxx.[png/jpg/webp/tga/hdr/exr],\n>           ao: xxx.[png/jpg/webp/tga/hdr/exr],\n>           emissive: xxx.[png/jpg/webp/tga/hdr/exr],\n>           alpha: xxx.[png/jpg/webp/tga/hdr/exr],\n>           env: xxx.[png/jpg/webp/tga/hdr/exr],\n>           light: xxx.[png/jpg/webp/tga/hdr/exr],\n>       },\n>       properties: {\n>           metalness: 1,\n>           roughness: 0.5,\n>           ...\n>       }\n>  }\n>  ```\n>  * 二. zip包中不包含`material.json`文件，此时包中的各纹理文件应语义化命名，如下(文件名均为按照关键字模糊匹配)： \n> \n>  ::: file-tree\n>  - *.zip\n>    - %baseColor%.[png/jpg/webp/tga/hdr/exr]  // 基础颜色贴图(高光反射/光泽度工作流:diffuse, 金属/粗糙度工作流:baseColor)\n>    - %normal%.[png/jpg/webp/tga/hdr/exr]  // 法线贴图\n>    - %bump%.[png/jpg/webp/tga/hdr/exr]  // 凹凸贴图,如果定义了法线贴图，则将忽略该贴图\n>    - %displacement%.[png/jpg/webp/tga/hdr/exr]  // 置换贴图(位移贴图)\n>    - %roughness%.[png/jpg/webp/tga/hdr/exr]  // 粗糙度贴图(使用该纹理的绿色通道)\n>    - %metalness%.[png/jpg/webp/tga/hdr/exr]  // 金属度贴图(使用该纹理的蓝色通道)\n>    - %ao%.[png/jpg/webp/tga/hdr/exr]  // 环境遮挡贴图(该纹理的红色通道)\n>    - %emissive%.[png/jpg/webp/tga/hdr/exr]  // 自发光贴图(放射贴图)\n>    - %alpha%.[png/jpg/webp/tga/hdr/exr]  // 透明贴图(一张灰度纹理，用于控制整个表面的不透明度：黑色：完全透明；白色：完全不透明)\n>    - %env%.[png/jpg/webp/tga/hdr/exr]  // 环境贴图(一般不会设置，因为会使用scene.environment)\n>    - %light%.[png/jpg/webp/tga/hdr/exr]  // 光照贴图(需要第二组UV)\n>  :::\n\n@tab 纹理\n- [x] png\n- [x] jpg/jpeg\n- [x] webp\n\n@tab 广告牌\n- [x] png\n- [x] jpg/jpeg\n- [x] webp\n- [x] svg\n\n@tab HDR\n- [x] hdr\n- [x] exr\n\n:::\n- **名称**：默认会在上传资源文件后自动获取文件名填充；\n- **大小**：会在上传资源文件后自动计算，无需填写。\n\n## 预览资源\n::: demo-wrapper img no-padding\n<ImageCard\nimage=\"/images/manual/home/assets/asset-preview.png\"\ntitle=\"预览资源\"\ndescription=\"点击资源卡片/资源卡片操作栏的预览按钮进行资源预览。 预览弹窗左侧为可操作画布，右侧为资源详情及操作。\"\nauthor=\"ErSan\"\ndate=\"2025/08/01\"\n/>\n:::\n\n## 编辑资源\n::: demo-wrapper img no-padding\n<ImageCard\nimage=\"/images/manual/home/assets/asset-edit.png\"\ntitle=\"编辑资源\"\ndescription=\"点击资源卡片操作栏的编辑选项进行资源编辑。 编辑时无法修改资源类型和资源文件。\"\nauthor=\"ErSan\"\ndate=\"2025/08/01\"\n/>\n:::\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/home/项目.md",
    "content": "---\ntitle: 项目\ncreateTime: 2025/08/01 15:13:58\npermalink: /guide/dbd366ps/\n---\n\n::: demo-wrapper img no-padding\n<ImageCard\nimage=\"/images/manual/home/project/project-page.png\"\ntitle=\"项目\"\ndescription=\"\"\nauthor=\"ErSan\"\ndate=\"2025/08/01\"\n/>\n:::\n\n## 新建项目\n\n> 可以选择新建一个空项目或者依据内置模板创建。\n\n::: demo-wrapper img no-padding\n<ImageCard\nimage=\"/images/manual/home/project/new-project.png\"\ntitle=\"新建项目\"\ndescription=\"可以选择新建一个空项目或者依据内置模板创建\"\nauthor=\"ErSan\"\ndate=\"2025/08/01\"\n/>\n:::\n"
  },
  {
    "path": "packages/docs/src/notes/guide/manual/preview/界面.md",
    "content": "---\ntitle: 界面\ncreateTime: 2025/04/14 00:49:50\npermalink: /guide/chhmeza7/\n---\n"
  },
  {
    "path": "packages/docs/src/notes/guide/plugins/builtin/glTFHandler.md",
    "content": "---\nlang: zh-CN\ntitle: glTF 处理器\ncreateTime: 2025/02/20 15:13:36\npermalink: /guide/plugin/builtin/jo87cfk0/\n---\n\n> 此插件提供了在 Web 端处理 glTF 文件的能力，主要能力如下：\n>\n> -   优化 glTF 文件：\n>     -   a. 压缩模型数据(包括贴图材质与几何数据)，减少文件大小;\n>     -   b. 网格顶点优化，减少顶点数量，提升渲染性能;\n>     -   c. 实例化网格，减少渲染 DrawCall，提升渲染性能;\n>     -   d. 压缩裁剪纹理贴图，减少内存占用，提升渲染性能;\n\n<!-- > - 查看glTF文件构成：\n>   - a. 显示glTF文件的结构，包括文件头、场景、节点、动画、材质、几何体等;\n>   - b. 显示glTF文件中的贴图、几何体、动画等资源的属性信息; -->\n\n## 面板\n\n![glTF处理器](/images/plugin/glTFHandler/plane.jpg)\n\n## 使用方法\n\n#### 1. 点击面板顶部上传区域，选择 glTF 文件（相关文件不会上传至服务器，仅用于本地处理）；\n\n#### 2. 修改配置选项或直接使用默认配置；\n\n#### 3. 点击“优化”按钮，开始处理 glTF 文件，优化日志会实时显示在面板顶部（原上传文件区域）；\n\n## 配置说明\n\n| 配置项           | 描述                                                                                                                                                         | 值                                                     |\n| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ |\n| 压缩方式         | 网格浮点压缩方法<br/>Draco 压缩 geometry;<br/>Meshopt & Quantization 压缩 geometry 和 animation;                                                             | `Draco`&#124;`Meshopt`&#124;`Quantization`&#124;`None` |\n| Meshopt 压缩级别 | 压缩方式选择`Meshopt`时需要选择压缩级别                                                                                                                      | `low`&#124;`medium`&#124;`high`                        |\n| 实例化网格       | 使用 GPU 实例化技术共享网格引用，即生成`THREE.InstancedMesh`对象，减少 DrawCall                                                                              | `true`&#124;`false`                                    |\n| 实例化网格界限   | 实例化网格所需的实例数,实例数低于该值的网格将不会实例化                                                                                                      | `min:2,max:Infinity`                                   |\n| 展平场景树       | 将场景内子模型对象全部展平到场景根节点。<br/>开启合并网格时此项无法关闭                                                                                      | `true`&#124;`false`                                    |\n| 合并网格         | 合并网格以减少渲染调用，合并后的网格无法单独选中。<br/>前置条件：开启展平场景树                                                                              | `true`&#124;`false`                                    |\n| 合并纹理         | 创建调色板纹理并合并材质                                                                                                                                     | `true`&#124;`false`                                    |\n| 合并纹理界限     | 合并纹理所需的纹理数,纹理数低于该值将不会合并                                                                                                                | `min:2,max:Infinity`                                   |\n| 修剪             | 从文件中删除未被场景引用的属性                                                                                                                               | `true`&#124;`false`                                    |\n| 修剪顶点         | 是否修剪未使用的顶点属性                                                                                                                                     | `true`&#124;`false`                                    |\n| 修剪子节点       | 是否修剪空的叶子节点                                                                                                                                         | `true`&#124;`false`                                    |\n| 修剪纹理         | 是否修剪实体(单色)纹理，将其转换为材质元素                                                                                                                   | `true`&#124;`false`                                    |\n| 合并同位顶点     | 合并按位相同的顶点。合并和索引后，顶点之间的数据共享效率更高。文件大小可以减小，GPU 可以更高效地使用顶点缓存。<br/>开启简化网格时此项无法关闭                | `true`&#124;`false`                                    |\n| 简化网格         | 基于`meshoptimizer`的简化算法，生成具有较少三角形和顶点的网格。简化是有损的，但该算法旨在针对给定的参数尽可能地保持视觉质量。<br/>前置条件：开启合并同位顶点 | `true`&#124;`false`                                    |\n| 简化误差界限     | 简化网格误差容忍度，以网格尺寸的百分比表示                                                                                                                   | `min:0.01,max:100`                                     |\n| 简化锁定边界     | 是否锁定网格的拓扑边界，拓扑结构（尤其是分割顶点）会限制简化器                                                                                               | `true`&#124;`false`                                    |\n| 简化比率         | 要保留的顶点的比率（0-1）                                                                                                                                    | `min:0,max:1`                                          |\n| 纹理压缩         | `AVIF`和`WebP`优化传输大小;<br/>`Auto`按原始格式进行压缩;                                                                                                    | `WebP`&#124;`AVIF`&#124;`Auto`&#124;`None`             |\n| 纹理最大尺寸     | 超过该尺寸的纹理将被压缩,值一般为 2 的 N 次方                                                                                                                | `min:2,max:Infinity`                                   |\n\n## 结果\n\n![glTF优化结果](/images/plugin/glTFHandler/result.jpg)\n\n![glTF优化文件对比](/images/plugin/glTFHandler/compare.jpg)\n\n![glTF优化文件对比](/images/plugin/glTFHandler/compare2.jpg)\n"
  },
  {
    "path": "packages/docs/src/notes/guide/plugins/入门.md",
    "content": "---\nlang: zh-CN\ntitle: 入门\ncreateTime: 2025/02/20 15:13:36\npermalink: /guide/plugin/31eucyqc/\n---\n\n> Astral 3D 内置了插件系统，为其提供了巨大的灵活性和可扩展性。\n\n## 使用方法\n1. 打开插件中心：\n\n![插件中心入口](/images/plugin/entrance.jpg)\n\n2. 单击需要使用的插件运行（以<kbd>glTF处理器</kbd>为例）：\n\n![插件中心](/images/plugin/plane.jpg)\n\n![glTF处理器](/images/plugin/glTFHandler/plane.jpg)\n\n## 内置插件\nAstral 3D Editor 内置了以下插件：\n- glTF处理器：在Web端处理glTF文件的能力。用于对 glTF 格式的模型文件进行压缩、优化等操作；\n\n\n\n\n\n"
  },
  {
    "path": "packages/docs/src/notes/guide/plugins/插件开发.md",
    "content": "---\nlang: zh-CN\ntitle: 插件开发\ncreateTime: 2025/02/20 15:13:36\npermalink: /guide/plugin/7ro8hsc0/\n---\n\n> 开发插件时，插件入口类需要实现以下接口，并以esm方式导出，Astral3D Engine会加载默认导出模块。\n\n## 插件入口类接口\n```typescript\nexport interface Plugin {\n    // 插件名称，插件的唯一标识\n    name: string; \n    // 插件版本号\n    version:number; \n    // 插件图标\n    icon:string;\n    // 插件安装函数，在插件安装时调用\n    install(config?: any): void; \n    // 插件卸载函数，在插件卸载时调用\n    uninstall(): void;\n    // 从插件盒子面板点击插件时的运行方法\n    run(): void; \n}\n```\n\n## 示例插件\n```typescript\n// 暂未发布到npm，请自行将代码拷贝到项目中\n// import { Plugin } from 'msy3d';\n\nclass ExamplePlugin implements Plugin {\n    name = 'example-plugin';\n    version = 1.0;\n    icon = 'https://example.com/icon.png';\n\n    install(config?: any): void {\n        console.log('ExamplePlugin installed');\n    }\n\n    uninstall(): void {\n        console.log('ExamplePlugin uninstalled');\n    }\n\n    run(): void {\n        console.log('ExamplePlugin run');\n    }\n}\n\nexport default ExamplePlugin;\n```\n "
  },
  {
    "path": "packages/docs/src/notes/guide/quick-start/介绍.md",
    "content": "---\nlang: zh-CN\ntitle: 介绍\ncreateTime: 2025/02/20 15:13:36\npermalink: /guide/6xkx4dnv/\n---\n\n> `Astral 3D Engine` 是一个基于 `ThreeJS` 的三维快速开发引擎。 <br />\n> `Astral 3D Editor` 是一个以 `Astral 3D` 作为底层的三维可视化编辑器。 <br />\n> 从诞生之初，其定位便是快捷、轻量、可扩展的3D低代码创作工具，意在解决Web3D产品开发难，迭代速度慢，并且视觉效果不达标的行业痛点，推动Web3D的发展。 <br />\n\n## 重点功能\n- [x] 场景数据无损压缩;\n- [x] 网络分包渐进存取；\n- [x] 支持20+模型格式；\n- [ ] `BIM`模型在线轻量化;\n- [x] `CAD`图纸解析预览；\n- [x] 碰撞检测\n- [x] 粒子系统\n- [ ] 插件系统\n- [x] 动画编辑器\n- [x] Billboard、HtmlPanel(在线解析html、Vue/React打包工程)\n- [x] 资源中心\n- [ ] 3DTiles支持\n- [ ] 数据组件 (API接口、前端SQL、WebSocket、静态JSON)\n- [ ] Cesium场景融合（GIS支持）\n- [ ] WebGPU 支持 \n- [ ] 低代码数据大屏(:tada:开发阶段)\n\n## 需要掌握的技能\n\n本项目二开及与服务器交互需要一定前端基础知识，建议在开发前先学习一下以下内容，会对项目理解非常有帮助:\n- [Vue3](https://vuejs.org/)\n- [ThreeJS](https://threejs.org/)\n- [Naive UI](https://www.naiveui.com/zh-CN/os-theme)\n- [TypeScript](https://www.typescriptlang.org/)\n- [Vite](https://vitejs.dev/)\n- [UnoCSS](https://uno.antfu.me/)\n\n\n"
  },
  {
    "path": "packages/docs/src/notes/guide/quick-start/安装.md",
    "content": "---\ntitle: 安装/使用\ncreateTime: 2025/10/06 21:35:36\npermalink: /guide/p8awar6v/\n---\n\n[+node-versions]: **>= 23.0.0：** `23.0.0` 及以上的版本\n[+pnpm-versions]: **>= 10.0.0：** `10.0.0` 及以上的版本\n[+corepack]: 从 **v16.13** 开始，`Node.js` 附带 `Corepack` 用于管理包管理器\n\n\n## 依赖环境\n\n- [Node.js](https://nodejs.org/) : **>= 23.0.0** [+node-versions]\n- [pnpm](https://pnpm.io/zh/) : **>= 10.0.0** [+pnpm-versions]\n\n:::: details 怎么安装依赖环境？\n::: steps\n\n1. **请前往 [Node.js 官网](https://nodejs.org/zh-cn) 下载最新稳定版本**\n\n   请根据指引完成安装，一般而言，在安装过程中，您只需要保持其默认设置，直接选择下一步即可。\n\n2. **安装 PNPM**\n\n      \n   在您安装完成 node.js 后，请打开 终端，执行如下命令：[+corepack]\n\n   ```sh\n   corepack enable pnpm\n   \n   # [optional]\n   # 这会添加一个 packageManager 字段到你本地的 package.json，\n   # 指示 Corepack 始终在该项目上使用特定的版本。 \n   # 如果你想要可复现性，这可能很有用，因为所有使用 Corepack 的开发人员都将使用与你相同的版本\n   corepack use pnpm@latest-10 \n   ```\n\n3. **完成**\n\n:::\n::::\n\n## 安装\n\n:::: steps\n\n- ### Git拉取项目\n  ``` sh\n  git clone https://github.com/mlt131220/Astral3D.git\n  ```\n\n- ### 进入目录\n  ``` sh\n  cd Astral3D\n  ```\n\n- ### 安装相关依赖\n  ::: code-tabs\n  @tab pnpm\n  ``` sh\n  pnpm install\n  ```\n  :::\n\n- ### 构建SDK\n  ::: code-tabs\n  @tab pnpm\n  ``` sh\n  pnpm run sdk:build\n  ```\n  :::\n\n- ### 运行编辑器\n  ::: code-tabs\n  @tab pnpm\n  ``` sh\n  pnpm run editor:dev\n  ```\n  :::\n\n- ### 完成\n\n::::"
  },
  {
    "path": "packages/docs/src/notes/guide/quick-start/部署.md",
    "content": "---\ntitle: 部署\ncreateTime: 2025/03/29 23:50:17\npermalink: /guide/n6o11owv/\n---\n\n> 本文档适用于部署 Astral3D 编辑器到服务器上。 <br />\n> 以[Java版本](https://github.com/yx8663/astral-service)后端为例，其他语言版本后端部署方式请参考官方文档。\n\n## 本地打包\n\n### 前端打包\n```bash\n# 确认 Node.js 版本（≥ 23.11.x）\nnode -v\n\n# 拉取代码\ngit clone https://github.com/mlt131220/Astral3D.git\n\n# 进入项目\ncd Astral3D\n\n# 安装依赖\npnpm install\n\n# 打包 Astral 3D Engine SDK\npnpm run sdk:build\n\n# 打包Astral 3D Editor\npnpm run editor:build\n```\n\n### 后端打包\n```bash\n# 确认java环境\njava -version\n\n# 确认maven环境\nmvn -v\n\n# 拉取代码\ngit clone https://github.com/yx8663/astral-service\n\n# 安装依赖\nmvn clean install\n\n# 修改数据库等配置（修改 astral-web/src/main/resources/application-dev.yml，详见 https://github.com/yx8663/astral-service/blob/develop/README.md#%E9%85%8D%E7%BD%AE）\nvim astral-web/src/main/resources/application-dev.yml\n\n# 编译打包（通过maven打包即可跨平台）\n# 生产环境推荐用clean package跳过测试\nmvn clean package -DskipTests\n\n# jar包： astral-web/target/astral-web.jar\nls -l astral-web/target/*.jar\n```\n\n## 服务器部署(Windows)\n\n### 基础环境\n- [Nginx](https://nginx.org/en/download.html)/[caddy](https://caddyserver.com/)\n- [MySQL](https://www.mysql.com/cn/downloads/)\n\n或者直接使用集成环境，如[PHPStudy](https://old.xp.cn/download.html)。\n\n### 前端部署\n将Astral 3D Editor打包后的文件放到方便读取的目录下，如 `C:\\www\\Astral3dEditor`;\n\n### 后端部署\n1. 将后端部署所需文件/文件夹放到方便读取的目录下，如 `C:\\www\\Astral3DEditorBack`,所需文件/文件夹如下：\n   * `static` 文件夹；\n   * `astral-web/target/astral-web.jar`；\n   * `astral-web/src/main/resources/application.yml`\n   * `astral-web/src/main/resources/application-dev.yml`\n2. 此时`C:\\www\\Astral3DEditorBack`内容如下：  \n\n   ``` shell\n    - static/\n    - application.yml\n    - application-dev.yml\n    - astral-web.jar\n   ```\n\n3. 打开 MySQL 数据库，创建配置在 `application-dev.yml` 的数据库，并导入 `static/sql/astral_3d.sql` 文件；\n4. 启动 MySQL 服务，并确保 MySQL 服务正常运行；\n5. 在 `C:\\www\\Astral3DEditorBack` 下运行命令 `java -jar astral-web.jar` 启动后端服务，默认监听 `8080` 端口；\n\n### Nginx 配置\n1. 打开 Nginx 配置文件，假设nginx安装目录为`C:\\nginx`,则配置文件路径为`C:\\nginx\\conf\\nginx.conf`;\n2. 在 `http` 块中添加以下配置：\n    ```\n    http {\n        # ... 忽略原有其他配置不变更\n        \n        # 开启gzip\n        gzip on;\n        \n        # 导入所有的server配置\n        include vhosts/*.conf;\n    }\n    ```\n3. 在 `C:\\nginx\\conf` 目录下创建 `vhosts` 目录(与上方http中增加的配置路径同名，并非一定要为`vhost`,可以自定义);\n4. 在 `C:\\nginx\\conf\\vhosts` 目录下创建 `astral3d.conf` 文件，内容如下：\n    ```\n   server {\n        # 监听端口,即前端部署的端口，一般设置为80\n        listen        80;\n        # 域名/ip/localhost\n        server_name  127.0.0.1;\n\n        # 访问 server_name:listen 后，请求就会被转发到这个location块中\n        location / {\n            # 前端部署的目录，即前端打包后的文件所在目录\n            root   \"C:\\www\\Astral3dEditor\";\n            # 文件url重写规则，将请求转发到index.html（单页面应用）\n            try_files $uri $uri/ index.html;\n            # 项目入口文件\n            index  index.html;\n   \n            # 协商缓存配置，30天\n            add_header Cache-Control \"public, max-age=2592000\";\n            expires 30d;\n            etag on;\n        }\n\n        # 后端api接口代理，接口请求匹配 /api 的会走此处转发，下面都同理\n        location /api {\n            # 后端接口访问地址，上面部署在了本机的8080端口\n            proxy_pass http://127.0.0.1:8080/api;\n        }\n\n        # 前端websocket代理\n        location /socket {\n            proxy_pass http://127.0.0.1:8080/api/sys/ws; \n\n            proxy_http_version 1.1;\n            proxy_set_header Upgrade $http_upgrade;\n            proxy_set_header Connection \"Upgrade\";\n            proxy_connect_timeout  10s;\n            proxy_read_timeout  300s;\n            proxy_send_timeout  300s;\n        }\n\n        location /file/static {\n            log_not_found off;\n            # 关闭日志\n            access_log off;\n            # 强缓存设置，缓存时间设置为0.5年\n            add_header Cache-Control \"public, max-age=15768000\";\n            \n            proxy_pass http://localhost:8080/api/common/static;\n        }\n    }\n   ```\n\n### 启动服务\n```bash\nnginx -s start\n\n# 重启 nginx（如果修改了配置文件）\nnginx -s reload\n```\n此时访问 `http://127.0.0.1` 即可访问到 Astral 3D Editor。\n\n\n## 服务器部署(Linux)\n\n\n## Docker 部署\n\n"
  },
  {
    "path": "packages/docs/src/notes/guide/quick-start/项目结构.md",
    "content": "---\ntitle: 项目结构(更新中)\ncreateTime: 2025/10/06 22:08:28\npermalink: /guide/zdiy72f2/\n---\n\n本指南将向您说明 `Astral 3D` 项目的文件结构。\n\n`Astral 3D`代码是以`Monorepo`的方式管理的，它的文件结构是这样的：\n\n::: file-tree\n\n- .git/\n- .idea/\n- common \\# 通用代码包\n    - build/  \\# vite构建相关\n- packages \\# 主项目包\n    - docs/  \\# Astral 3D 文档\n    - **editor/**  \\# Astral 3D 编辑器\n    - **sdk/**  \\# Astral 3D 引擎\n- .gitignore\n- .npmrc\n- CONTRIBUTING.md\n- LEGAL.md\n- LICENSE\n- package.json\n- pnpm-lock.yaml\n- pnpm-workspace.yaml\n- README.en.md\n- README.md\n  :::"
  },
  {
    "path": "packages/docs/src/notes/more/questions.md",
    "content": "---\ntitle: 常见问题\ncreateTime: 2025/02/20 16:19:54\npermalink: /questions/\n---\n\n本文主要包含了Astral3D过程中可能会遇到的常见问题与解决方法。\n\n如果您遇到任何问题，您可以先在以下内容中寻找是否有相关的问题和解决方法。\n\n如果没有找到，您可以先通过  Github [Discussions](https://github.com/mlt131220/Astral3D/discussions/new?category=q-a) 与我们讨论。\n\n如果您确定某处确实存在问题，请在 Github [Open an issue](https://github.com/mlt131220/Astral3D/issues/new),\n在 Issue 中说明该问题的具体细节，我们会尽快解决。\n\n## XXXXXX？\n\nXXXXXXXXXXXXXXXXXXX"
  },
  {
    "path": "packages/docs/src/notes/promotion/README.md",
    "content": "---\ntitle: 推广中心\ncreateTime: 2025/10/04 19:34:07\npermalink: /promotion/\n---\n\n:::important 作者的话\n`Astral 3D` 是一款基于 `Three.js` 的完全开源且免费的三维引擎。\n\n如果使用起来觉得还不错，欢迎通过 [Star](https://github.com/mlt131220/Astral3D) 支持。\n\n它源于个人的兴趣与曾经的工作需求，我将会长期维护它。\n\n如果它对你产生了帮助，那我也深感荣幸。\n\n如果你想，可以捐助我。\n\n一切都是自由的，愿大家，平安喜乐。\n\n==岁岁平，岁岁安，岁岁平安。==\n:::\n\n<div class=\"sponsor-table\">\n\n|                           支付宝                           |                             微信                             |\n|:-------------------------------------------------------:|:----------------------------------------------------------:|\n| ![Alipay](/images/AliPay.png){width=\"300\" height=\"300\"} | ![WeChat](/images/WeChatPay.png){width=\"300\" height=\"300\"} |\n\n</div>\n\n> 本页面为各种大网站的推广链接，在此处购买您将会受到一定的优惠，而我收到一部分提成\n\n\n<LinkCard title=\"雨云\" href=\"https://www.rainyun.com/Astral3D_\">\n\n:fire: 4核8G 200兆服务器，仅需49元/月，[点击这里购买](https://www.rainyun.com/Astral3D_)    \n:fire: 专属优惠码：Astral3D\n\n</LinkCard>\n\n<LinkCard title=\"阿里云\" href=\"https://www.aliyun.com/minisite/goods?userCode=y6ecbjpi\">\n\n2核2G 轻量应用服务器 ￥38.00/年    \n从此链接购买享 **==9折优惠==**！！\n\n</LinkCard>\n\n<LinkCard title=\"腾讯云\" href=\"https://curl.qcloud.com/i2zqxlkP\">\n\n云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中\n\n</LinkCard>\n\n<style>\n.vp-doc .sponsor-table {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.vp-doc .sponsor-table img {\n  width: 150px;\n}\n\n@media (min-width: 768px) {\n  .vp-doc .sponsor-table img {\n    width: 180px;\n  }\n}\n</style>"
  },
  {
    "path": "packages/docs/src/notes/sdk/README.md",
    "content": "---\nlang: zh-CN\n---\n\n# :watermelon: 暂未编写"
  },
  {
    "path": "packages/editor/.gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n\npublic/*.zip\ndev-dist\n"
  },
  {
    "path": "packages/editor/.npmrc",
    "content": "auto-install-peers=true\n"
  },
  {
    "path": "packages/editor/components.d.ts",
    "content": "/* eslint-disable */\n// @ts-nocheck\n// Generated by unplugin-vue-components\n// Read more: https://github.com/vuejs/core/pull/3399\nexport {}\n\n/* prettier-ignore */\ndeclare module 'vue' {\n  export interface GlobalComponents {\n    AssetPreview: typeof import('./src/components/preview/AssetPreview.vue')['default']\n    CAD: typeof import('./src/components/drawing/toolbar/CAD.vue')['default']\n    CadLayers: typeof import('./src/components/drawing/toolbar/CadLayers.vue')['default']\n    Clear: typeof import('./src/components/header/navigation/Clear.vue')['default']\n    CodeEditor: typeof import('./src/components/code/CodeEditor.vue')['default']\n    Color: typeof import('./src/components/setting/common/Color.vue')['default']\n    CommonPreview: typeof import('./src/components/preview/CommonPreview.vue')['default']\n    CommonPreview_backup: typeof import('./src/components/preview/CommonPreview_backup.vue')['default']\n    Copy: typeof import('./src/components/header/navigation/Copy.vue')['default']\n    Delete: typeof import('./src/components/header/navigation/Delete.vue')['default']\n    Do: typeof import('./src/components/header/navigation/Do.vue')['default']\n    Drawing: typeof import('./src/components/drawing/Drawing.vue')['default']\n    EarthGenerator: typeof import('./src/components/es/plugin/builtin/EarthGenerator.vue')['default']\n    EsContextmenu: typeof import('./src/components/es/EsContextmenu.vue')['default']\n    EsCubeLoading: typeof import('./src/components/es/EsCubeLoading.vue')['default']\n    EsDocument: typeof import('./src/components/es/EsDocument.vue')['default']\n    EsFormItemHelpLabel: typeof import('./src/components/es/EsFormItemHelpLabel.vue')['default']\n    EsInput: typeof import('./src/components/es/EsInput.vue')['default']\n    EsInputNumber: typeof import('./src/components/es/EsInputNumber.vue')['default']\n    EsKeyFrame: typeof import('./src/components/es/EsKeyFrame.vue')['default']\n    EsParticleEasing: typeof import('./src/components/es/EsParticleEasing.vue')['default']\n    EsPlugin: typeof import('./src/components/es/EsPlugin.vue')['default']\n    EsPluginDialog: typeof import('./src/components/es/plugin/EsPluginDialog.vue')['default']\n    EsPluginList: typeof import('./src/components/es/plugin/EsPluginList.vue')['default']\n    EsPopTreeSelect: typeof import('./src/components/es/EsPopTreeSelect.vue')['default']\n    EsTexture: typeof import('./src/components/es/EsTexture.vue')['default']\n    EsTip: typeof import('./src/components/es/EsTip.vue')['default']\n    Fullscreen: typeof import('./src/components/header/navigation/Fullscreen.vue')['default']\n    GLTFHandler: typeof import('./src/components/es/plugin/builtin/GLTFHandler.vue')['default']\n    GLTFHandlerForm: typeof import('./src/components/es/plugin/builtin/glTFHandler/GLTFHandlerForm.vue')['default']\n    HtmlPanelCode: typeof import('./src/components/code/HtmlPanelCode.vue')['default']\n    Image: typeof import('./src/components/drawing/toolbar/Image.vue')['default']\n    ImportExport: typeof import('./src/components/header/navigation/ImportExport.vue')['default']\n    JSONEditor: typeof import('./src/components/code/JSONEditor.vue')['default']\n    Locale: typeof import('./src/components/setting/common/Locale.vue')['default']\n    Logo: typeof import('./src/components/header/Logo.vue')['default']\n    NavigationOperation: typeof import('./src/components/header/NavigationOperation.vue')['default']\n    NButton: typeof import('naive-ui')['NButton']\n    NCard: typeof import('naive-ui')['NCard']\n    NCarousel: typeof import('naive-ui')['NCarousel']\n    NCheckbox: typeof import('naive-ui')['NCheckbox']\n    NCheckboxGroup: typeof import('naive-ui')['NCheckboxGroup']\n    NConfigProvider: typeof import('naive-ui')['NConfigProvider']\n    NDescriptions: typeof import('naive-ui')['NDescriptions']\n    NDescriptionsItem: typeof import('naive-ui')['NDescriptionsItem']\n    NDialogProvider: typeof import('naive-ui')['NDialogProvider']\n    NDivider: typeof import('naive-ui')['NDivider']\n    NDropdown: typeof import('naive-ui')['NDropdown']\n    NForm: typeof import('naive-ui')['NForm']\n    NFormItem: typeof import('naive-ui')['NFormItem']\n    NGradientText: typeof import('naive-ui')['NGradientText']\n    NIcon: typeof import('naive-ui')['NIcon']\n    NImage: typeof import('naive-ui')['NImage']\n    NInfiniteScroll: typeof import('naive-ui')['NInfiniteScroll']\n    NInput: typeof import('naive-ui')['NInput']\n    NInputNumber: typeof import('naive-ui')['NInputNumber']\n    NLayout: typeof import('naive-ui')['NLayout']\n    NLayoutContent: typeof import('naive-ui')['NLayoutContent']\n    NLayoutHeader: typeof import('naive-ui')['NLayoutHeader']\n    NLayoutSider: typeof import('naive-ui')['NLayoutSider']\n    NLoadingBarProvider: typeof import('naive-ui')['NLoadingBarProvider']\n    NMenu: typeof import('naive-ui')['NMenu']\n    NMessageProvider: typeof import('naive-ui')['NMessageProvider']\n    NModal: typeof import('naive-ui')['NModal']\n    NModalProvider: typeof import('naive-ui')['NModalProvider']\n    NNotificationProvider: typeof import('naive-ui')['NNotificationProvider']\n    NPopover: typeof import('naive-ui')['NPopover']\n    NPopselect: typeof import('naive-ui')['NPopselect']\n    NProgress: typeof import('naive-ui')['NProgress']\n    NRadio: typeof import('naive-ui')['NRadio']\n    NRadioGroup: typeof import('naive-ui')['NRadioGroup']\n    NResult: typeof import('naive-ui')['NResult']\n    NSelect: typeof import('naive-ui')['NSelect']\n    NSkeleton: typeof import('naive-ui')['NSkeleton']\n    NSpace: typeof import('naive-ui')['NSpace']\n    NSpin: typeof import('naive-ui')['NSpin']\n    NTabPane: typeof import('naive-ui')['NTabPane']\n    NTabs: typeof import('naive-ui')['NTabs']\n    NTag: typeof import('naive-ui')['NTag']\n    NText: typeof import('naive-ui')['NText']\n    NTooltip: typeof import('naive-ui')['NTooltip']\n    NTree: typeof import('naive-ui')['NTree']\n    NTreeSelect: typeof import('naive-ui')['NTreeSelect']\n    NUpload: typeof import('naive-ui')['NUpload']\n    NUploadDragger: typeof import('naive-ui')['NUploadDragger']\n    PointCloudReconstructor: typeof import('./src/components/es/plugin/builtin/PointCloudReconstructor.vue')['default']\n    PreviewSetting: typeof import('./src/components/setting/components/PreviewSetting.vue')['default']\n    ProjectInfoForm: typeof import('./src/components/project/ProjectInfoForm.vue')['default']\n    ReconstructorForm: typeof import('./src/components/es/plugin/builtin/pointCloudReconstructor/ReconstructorForm.vue')['default']\n    RightOperation: typeof import('./src/components/header/RightOperation.vue')['default']\n    RouterLink: typeof import('vue-router')['RouterLink']\n    RouterView: typeof import('vue-router')['RouterView']\n    SaveToService: typeof import('./src/components/header/right/SaveToService.vue')['default']\n    SceneTree: typeof import('./src/components/tree/SceneTree.vue')['default']\n    Script: typeof import('./src/components/code/Script.vue')['default']\n    Setting: typeof import('./src/components/setting/Setting.vue')['default']\n    SettingCenter: typeof import('./src/components/setting/common/SettingCenter.vue')['default']\n    SettingTabs: typeof import('./src/components/setting/components/SettingTabs.vue')['default']\n    Shortcuts: typeof import('./src/components/setting/components/Shortcuts.vue')['default']\n    SQLEditor: typeof import('./src/components/code/SQLEditor.vue')['default']\n    SystemSetting: typeof import('./src/components/setting/components/SystemSetting.vue')['default']\n    Theme: typeof import('./src/components/setting/common/Theme.vue')['default']\n    UserData: typeof import('./src/components/code/UserData.vue')['default']\n    XR: typeof import('./src/components/header/right/XR.vue')['default']\n  }\n}\n"
  },
  {
    "path": "packages/editor/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n\n<head>\n    <meta charset=\"UTF-8\"/>\n    <link rel=\"icon\" sizes=\"any\" type=\"image/svg+xml\" href=\"/static/images/logo/logo.svg\"/>\n    <link rel=\"mask-icon\" href=\"/static/images/logo/logo.svg\" color=\"#63E2B7\" />\n    <link rel=\"apple-touch-icon\" href=\"/static/images/logo/pwa/pwa-180x180.png\" sizes=\"180x180\" />\n    <meta name=\"theme-color\" content=\"#63E2B7\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n    <meta name=\"author\" content=\"ErSan,mlt131220@163.com\">\n    <meta name=\"copyright\" content=\"ErSan,mlt131220@163.com\">\n    <meta name=\"keywords\" content=\"threejs,editor,threeeditor,三维,三维可视化,3D,3D编辑器,编辑器,模型,网页设计工具,低代码,lowcode, WebGL,WebGPU,BIM,rvt,ifc,CAD,dwg,dxf\">\n    <meta name=\"description\" content=\"一款基于THREE.JS开发的专业的面相浏览器端(webgl/webgpu)的三维可视化编辑器,包含BIM轻量化,CAD解析预览等特色功能\">\n    <!--  百度seo  -->\n    <meta name=\"baidu-site-verification\" content=\"codeva-AVKCbnEhHf\" />\n    <!--  bing seo  -->\n    <meta name=\"msvalidate.01\" content=\"51C05441E591099C88B3C1975F9B9D73\" />\n    <!--  google seo  -->\n    <meta name=\"google-site-verification\" content=\"_hU0qCzBII0F3mupE17AaGpLznXbpQ89WGNaxrhVqfE\" />\n    <title>Astral 3D Editor - 高效的三维可视化编辑工具</title>\n</head>\n\n<body>\n<div id=\"app\"></div>\n\n<script type=\"module\" src=\"/src/main.ts\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "packages/editor/package.json",
    "content": "{\n  \"name\": \"@astral3d/editor\",\n  \"author\": \"ErSan<mlt131220@163.com>\",\n  \"version\": \"1.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build\": \"vite build\",\n    \"tsc\": \"tsc\",\n    \"preview\": \"vite preview\"\n  },\n  \"engines\": {\n    \"node\": \">=23.11.0\"\n  },\n  \"dependencies\": {\n    \"@ant-design/colors\": \"^7.0.2\",\n    \"@astral3d/engine\": \"workspace:^\",\n    \"@gltf-transform/core\": \"^4.2.1\",\n    \"@gltf-transform/extensions\": \"^4.2.1\",\n    \"@gltf-transform/functions\": \"^4.2.1\",\n    \"@vicons/carbon\": \"^0.12.0\",\n    \"@vicons/ionicons5\": \"^0.12.0\",\n    \"@vueuse/core\": \"^13.2.0\",\n    \"animate.css\": \"^4.1.1\",\n    \"axios\": \"^1.8.2\",\n    \"disable-devtool\": \"^0.3.8\",\n    \"keyframe-resample\": \"^0.1.0\",\n    \"meshoptimizer\": \"^0.23.0\",\n    \"monaco-editor\": \"^0.52.2\",\n    \"naive-ui\": \"catalog:\",\n    \"pinia\": \"^2.1.4\",\n    \"three\": \"catalog:\",\n    \"vite-plugin-static-copy\": \"catalog:\",\n    \"vue\": \"catalog:\",\n    \"vue-i18n\": \"^11.1.2\",\n    \"vue-router\": \"^4.3.2\"\n  },\n  \"devDependencies\": {\n    \"@astral3d/build-vite-plugins\": \"workspace:^\",\n    \"@types/three\": \"catalog:\",\n    \"@vitejs/plugin-vue\":\"catalog:\",\n    \"dotenv\": \"^16.3.1\",\n    \"less\": \"^4.3.0\",\n    \"typescript\": \"catalog:\",\n    \"unocss\": \"^66.1.0-beta.12\",\n    \"unplugin-vue-components\": \"^0.27.3\",\n    \"vite\": \"catalog:\",\n    \"vite-plugin-mkcert\": \"^1.16.0\"\n  }\n}\n"
  },
  {
    "path": "packages/editor/public/libs/draco/draco_decoder.js",
    "content": "\nvar DracoDecoderModule = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DracoDecoderModule = {})  {\n\nvar Module=typeof DracoDecoderModule!=\"undefined\"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module[\"onRuntimeInitialized\"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};Module[\"onModuleParsed\"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!==\"string\")return false;const version=versionString.split(\".\");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module[\"isVersionSupported\"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts[\"initial\"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(\n// EMSCRIPTEN_START_ASM\nfunction instantiate(na){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]==\"=\")-(o[j-1]==\"=\");for(;a<j;a+=4){g=f[o.charCodeAt(a+1)];h=f[o.charCodeAt(a+2)];m[i++]=f[o.charCodeAt(a)]<<2|g>>4;if(i<k)m[i++]=g<<4|h>>2;if(i<k)m[i++]=h<<6|f[o.charCodeAt(a+3)]}}function p(q){l(e,1028,\"YAQAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAE41ZHJhY28yOEF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1FAAAYOwAAOAQAALAHAAAtKyAgIDBYMHgAX19uZXh0X3ByaW1lIG92ZXJmbG93AHZlY3RvcgBzdGQ6OmV4Y2VwdGlvbgBza2lwX2F0dHJpYnV0ZV90cmFuc2Zvcm0AYmFkX2FycmF5X25ld19sZW5ndGgAYmFzaWNfc3RyaW5nAHN0ZDo6YmFkX2FsbG9jAERSQUNPAFVzaW5nIGluY29tcGF0aWJsZSBkZWNvZGVyIGZvciB0aGUgaW5wdXQgZ2VvbWV0cnkuAEZhaWxlZCB0byBkZWNvZGUgcG9pbnQgYXR0cmlidXRlcy4ARmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIGRlY29kZXIuAFVua25vd24gbWlub3IgdmVyc2lvbi4AVW5rbm93biBtYWpvciB2ZXJzaW9uLgBJbnB1dCBpcyBub3QgYSBtZXNoLgBVbnN1cHBvcnRlZCBnZW9tZXRyeSB0eXBlLgBOb3QgYSBEcmFjbyBmaWxlLgBJbnB1dCBpcyBub3QgYSBwb2ludCBjbG91ZC4AVW5zdXBwb3J0ZWQgZW5jb2RpbmcgbWV0aG9kLgBGYWlsZWQgdG8gZGVjb2RlIG1ldGFkYXRhLgBGYWlsZWQgdG8gZGVjb2RlIGdlb21ldHJ5IGRhdGEuAChudWxsKQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBLZFRyZWVBdHRyaWJ1dGVzRGVjb2RlcjogY29tcHJlc3Npb24gbGV2ZWwgJWkgbm90IHN1cHBvcnRlZC4KAEZsb2F0UG9pbnRzVHJlZURlY29kZXI6IGNvbXByZXNzaW9uIGxldmVsICVpIG5vdCBzdXBwb3J0ZWQuCgBWZXJzaW9uIG5vdCBzdXBwb3J0ZWQuIAoATWV0aG9kIG5vdCBzdXBwb3J0ZWQuIAoAAAAAAACEBwAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAACwAAABgAAAAZAAAATjVkcmFjbzMwQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtRQAAAAAYOwAAWAcAALAHAABONWRyYWNvMThBdHRyaWJ1dGVUcmFuc2Zvcm1FAAAAAPA6AACQBwAAAAAAADwIAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAABONWRyYWNvMTdBdHRyaWJ1dGVzRGVjb2RlckUATjVkcmFjbzI2QXR0cmlidXRlc0RlY29kZXJJbnRlcmZhY2VFAAAAAPA6AAAMCAAAGDsAAPAHAAA0CAAAAAAAAKQIAAAmAAAAJwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAoAAAAKQAAACoAAABONWRyYWNvMjNLZFRyZWVBdHRyaWJ1dGVzRGVjb2RlckUAAAAYOwAAgAgAADwIAAAAAAAABAkAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAAE41ZHJhY28yNlNlcXVlbnRpYWxBdHRyaWJ1dGVEZWNvZGVyRQAAAADwOgAA3AgAAP////8AAAAAfAkAADQAAAA1AAAAHAAAADYAAAA3AAAAHwAAACAAAAAhAAAAOAAAADkAAAA6AAAAOwAAADwAAABONWRyYWNvMzdTZXF1ZW50aWFsQXR0cmlidXRlRGVjb2RlcnNDb250cm9sbGVyRQAYOwAATAkAADwIAAAAAAAA8AkAAD0AAAA+AAAAPwAAAC4AAAAvAAAAMAAAAEAAAAAyAAAAQQAAAEIAAABDAAAARAAAAEUAAABONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZURlY29kZXJFABg7AADECQAABAkAAAAAAAB8DAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAABRAAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAE41ZHJhY28zN1ByZWRpY3Rpb25TY2hlbWVUeXBlZERlY29kZXJJbnRlcmZhY2VJaWlFRQBONWRyYWNvMzJQcmVkaWN0aW9uU2NoZW1lRGVjb2RlckludGVyZmFjZUUATjVkcmFjbzI1UHJlZGljdGlvblNjaGVtZUludGVyZmFjZUUA8DoAACAMAAAYOwAA9QsAAEQMAAAYOwAAwQsAAEwMAAAYOwAAbQsAAFgMAAAYOwAA1woAAGQMAAAYOwAANAoAAHAMAAAAAAAAcAwAAEYAAABSAAAAIwAAAEkAAAAjAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAIwAAAAAAAABkDAAARgAAAFMAAAAjAAAASQAAACMAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAAAjAAAAAAAAANgNAABGAAAAVAAAAFUAAABJAAAAVgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFcAAABONWRyYWNvNDVNZXNoUHJlZGljdGlvblNjaGVtZU11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAYOwAAMA0AAHAMAAAAAAAA0A4AAFgAAABZAAAAWgAAAEkAAABbAAAASwAAAEwAAABNAAAATgAAAE8AAABcAAAAXQAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1EZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAABg7AAAcDgAAcAwAAAAAAAC0DwAAXgAAAF8AAABgAAAASQAAAGEAAABiAAAAYwAAAGQAAABOAAAATwAAAGUAAABmAAAATjVkcmFjbzM2TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAABg7AAAUDwAAcAwAAAAAAACgEAAAZwAAAGgAAABpAAAASQAAAGoAAABrAAAAbAAAAG0AAABOAAAATwAAAG4AAABvAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAGDsAAPgPAABwDAAAAAAAAIwRAABwAAAAcQAAAHIAAABJAAAAcwAAAHQAAAB1AAAAdgAAAE4AAABPAAAAdwAAAHgAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAAAAYOwAA5BAAAHAMAAAAAAAAFBMAAHkAAAB6AAAAewAAAHwAAAB9AAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAADwOgAAXxIAABg7AAC0EQAADBMAAAAAAAAMEwAAeQAAAH4AAAAjAAAAfAAAACMAAAAAAAAAoBQAAEYAAAB/AAAAgAAAAEkAAACBAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAggAAAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAABg7AAAKFAAAZAwAABg7AAB0EwAAlBQAAAAAAACUFAAARgAAAIMAAAAjAAAASQAAACMAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAAAjAAAAAAAAALgVAABGAAAAhAAAAIUAAABJAAAAhgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAIcAAABONWRyYWNvNDVNZXNoUHJlZGljdGlvblNjaGVtZU11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAYOwAAHBUAAJQUAAAAAAAApBYAAIgAAACJAAAAigAAAEkAAACLAAAASwAAAEwAAABNAAAATgAAAE8AAACMAAAAjQAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1EZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAABg7AAD8FQAAlBQAAAAAAAB8FwAAjgAAAI8AAACQAAAASQAAAJEAAACSAAAAkwAAAJQAAABOAAAATwAAAJUAAACWAAAATjVkcmFjbzM2TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAABg7AADoFgAAlBQAAAAAAABcGAAAlwAAAJgAAACZAAAASQAAAJoAAACbAAAAnAAAAJ0AAABOAAAATwAAAJ4AAACfAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAAGDsAAMAXAACUFAAAAAAAADgZAACgAAAAoQAAAKIAAABJAAAAowAAAKQAAAClAAAApgAAAE4AAABPAAAApwAAAKgAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFABg7AACgGAAAlBQAAAAAAACkGgAAqQAAAKoAAACrAAAArAAAAK0AAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA8DoAAP4ZAAAYOwAAYBkAAJwaAAAAAAAAnBoAAKkAAACuAAAAIwAAAKwAAAAjAAAAAAAAAGAbAABGAAAArwAAALAAAABJAAAAsQAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAALIAAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAAAAABg7AAAEGwAAZAwAAAAAAADUGwAAswAAALQAAAC1AAAALgAAAC8AAAC2AAAAQAAAADIAAABBAAAAtwAAALgAAAC5AAAAugAAAE41ZHJhY28zMlNlcXVlbnRpYWxOb3JtYWxBdHRyaWJ1dGVEZWNvZGVyRQAAGDsAAKgbAADwCQAAAAAAAOAdAAC7AAAAvAAAAL0AAAC+AAAAvwAAAMAAAADBAAAAwgAAAMMAAADEAAAAxQAAAMYAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVFRQAYOwAAaR0AAFgMAAAYOwAAyBwAAMgdAAAYOwAAGBwAANQdAAAAAAAAfB8AAMcAAADIAAAAyQAAAMoAAADLAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAPA6AAC+HgAAGDsAAAgeAAB0HwAAAAAAAAQhAADMAAAAzQAAAM4AAAC+AAAAzwAAANAAAADRAAAA0gAAAMMAAADEAAAA0wAAANQAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAYOwAAYyAAAMgdAAAYOwAAwB8AAPggAAAAAAAAiCIAANUAAADWAAAA1wAAANgAAADZAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAPA6AADVIQAAGDsAACwhAACAIgAAAAAAADAjAADaAAAA2wAAANwAAAC+AAAA3QAAAN4AAADfAAAA4AAAAMMAAADEAAAA4QAAAOIAAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFEZWNvZGVySWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUAGDsAAMwiAADIHQAAAAAAAGQlAADjAAAA5AAAAOUAAADmAAAA5wAAAOgAAADpAAAA6gAAAOsAAADsAAAA7QAAAO4AAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjNQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVFRQAAGDsAAN8kAABYDAAAGDsAADEkAABMJQAAGDsAAHQjAABYJQAAAAAAABwnAADvAAAA8AAAAPEAAADyAAAA8wAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAA8DoAAE8mAAAYOwAAjCUAABQnAAAAAAAAwCgAAPQAAAD1AAAA9gAAAOYAAAD3AAAA+AAAAPkAAAD6AAAA6wAAAOwAAAD7AAAA/AAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAAAYOwAAECgAAEwlAAAYOwAAYCcAALQoAAAAAAAAXCoAAP0AAAD+AAAA/wAAAAABAAABAQAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAPA6AACeKQAAGDsAAOgoAABUKgAAAAAAABQrAADaAAAAAgEAAAMBAADmAAAABAEAAAUBAAAGAQAABwEAAOsAAADsAAAACAEAAAkBAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRUVFAAAAABg7AACgKgAATCUAAAAAAACYKwAACgEAAAsBAAAMAQAALgAAAC8AAAANAQAAQAAAADIAAABBAAAADgEAAEMAAABEAAAADwEAABABAAARAQAATjVkcmFjbzM4U2VxdWVudGlhbFF1YW50aXphdGlvbkF0dHJpYnV0ZURlY29kZXJFAAAAABg7AABkKwAA8AkAAAAAAAD4KwAAEgEAABMBAAAUAQAAFQEAACMAAAAWAQAAFwEAABgBAAAZAQAAGgEAABsBAAAcAQAAIwAAAE41ZHJhY28xMU1lc2hEZWNvZGVyRQAAABg7AADgKwAATDQAAAAAAABkLAAAHQEAAB4BAAAUAQAAHwEAACABAAAWAQAAFwEAABgBAAAhAQAAIgEAACMBAAAkAQAAJQEAAE41ZHJhY28yMk1lc2hFZGdlYnJlYWtlckRlY29kZXJFAAAAABg7AABALAAA+CsAAAAAAACILQAAJgEAACcBAAAoAQAAKQEAACoBAAArAQAALAEAAC0BAAAuAQAALwEAAP////8AAAAA7C0AADABAAAxAQAAMgEAADMBAAA0AQAANQEAADYBAAA3AQAAOAEAADkBAAAAAAAATC4AADoBAAA7AQAAPAEAAD0BAAA+AQAAPwEAAEABAABBAQAAQgEAAEMBAABONWRyYWNvMjZNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbElOU18zMU1lc2hFZGdlYnJlYWtlclRyYXZlcnNhbERlY29kZXJFRUUATjVkcmFjbzM1TWVzaEVkZ2VicmVha2VyRGVjb2RlckltcGxJbnRlcmZhY2VFAAAA8DoAAFAtAAAYOwAABC0AAIAtAABONWRyYWNvMjZNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbElOU180MU1lc2hFZGdlYnJlYWtlclRyYXZlcnNhbFByZWRpY3RpdmVEZWNvZGVyRUVFAAAAGDsAAJQtAACALQAATjVkcmFjbzI2TWVzaEVkZ2VicmVha2VyRGVjb2RlckltcGxJTlNfMzhNZXNoRWRnZWJyZWFrZXJUcmF2ZXJzYWxWYWxlbmNlRGVjb2RlckVFRQAAGDsAAPgtAACALQAAAAAAAEgvAABEAQAARQEAAEYBAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUATjVkcmFjbzEzVHJhdmVyc2VyQmFzZUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMV9FRUVFAPA6AADZLgAAGDsAAGwuAABALwAAAAAAAEAvAABHAQAASAEAAEYB\");l(e,12148,\"AQAAAAMAAAAFAAAABwAAAAAAAABIMAAASQEAAEoBAABLAQAATAEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAE41ZHJhY28xNVBvaW50c1NlcXVlbmNlckUAAAAA8DoAACMwAAAYOwAAnC8AAEAwAAD/////AAAAADgxAABNAQAATgEAAE8BAABONWRyYWNvMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAA8DoAANUwAAAYOwAAbDAAADAxAAAAAAAAMDEAAFABAABRAQAATwEAAAAAAADwMQAAUgEAAFMBAABUAQAAVQEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAAAAGDsAAHAxAABAMAAAAAAAAHAyAABWAQAAVwEAAE8BAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAYOwAAEDIAADAxAAAAAAAAIDMAAFgBAABZAQAAWgEAAFsBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMl9FRUVFRUUAABg7AACUMgAAQDA=\");l(e,13108,\"jDMAABIBAABcAQAAFAEAABUBAABdAQAAFgEAABcBAAAYAQAAGQEAABoBAAAbAQAAHAEAAF4BAABONWRyYWNvMjFNZXNoU2VxdWVudGlhbERlY29kZXJFABg7AABsMwAA+CsAAAAAAADMMwAAXwEAAGABAABhAQAAYgEAAE41ZHJhY28xNUxpbmVhclNlcXVlbmNlckUAAAAYOwAAsDMAAEAwAAAAAAAATDQAABIBAABjAQAAZAEAABUBAAAjAAAAZQEAABcBAAAYAQAAGQE=\");l(e,13328,\"RmFpbGVkIHRvIHBhcnNlIERyYWNvIGhlYWRlci4ATjVkcmFjbzE3UG9pbnRDbG91ZERlY29kZXJFAAAA8DoAAC40AAAAAAAApDQAABIBAABmAQAAZAEAABUBAABnAQAAaAEAABcBAAAYAQAAGQEAAE41ZHJhY28yM1BvaW50Q2xvdWRLZFRyZWVEZWNvZGVyRQAAABg7AACANAAATDQAAAAAAAAENQAAEgEAAGkBAABkAQAAFQEAAGoBAABrAQAAFwEAABgBAAAZAQAATjVkcmFjbzI3UG9pbnRDbG91ZFNlcXVlbnRpYWxEZWNvZGVyRQAAABg7AADcNAAATDQAAAEAAAABAAAAAgAAAAIAAAAEAAAABAAAAAgAAAAIAAAABAAAAAgAAAAB\");l(e,13635,\"wAAAAMAAAADAAAAAwP//////////AAAAAIA1AABsAQAAbQEAAG4BAABvAQAATjVkcmFjbzRNZXNoRQAAABg7AABwNQAAxDUAAP////8AAAAAAAAAAMQ1AABwAQAAcQEAAHIBAABzAQAATjVkcmFjbzEwUG9pbnRDbG91ZEUAAAAA8DoAAKw1AAC4PAAAGQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk=\");l(e,13857,\"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO\");l(e,13915,\"DA==\");l(e,13927,\"EwAAAAATAAAAAAkMAAAAAAAMAAAM\");l(e,13973,\"EA==\");l(e,13985,\"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ\");l(e,14031,\"Eg==\");l(e,14043,\"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa\");l(e,14098,\"GgAAABoaGgAAAAAAAAk=\");l(e,14147,\"FA==\");l(e,14159,\"FwAAAAAXAAAAAAkUAAAAAAAUAAAU\");l(e,14205,\"Fg==\");l(e,14217,\"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAAAAAAIAAAADAAAABQAAAAcAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAH8AAACDAAAAiQAAAIsAAACVAAAAlwAAAJ0AAACjAAAApwAAAK0AAACzAAAAtQAAAL8AAADBAAAAxQAAAMcAAADTAAAAAQAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAeQAAAH8AAACDAAAAiQAAAIsAAACPAAAAlQAAAJcAAACdAAAAowAAAKcAAACpAAAArQAAALMAAAC1AAAAuwAAAL8AAADBAAAAxQAAAMcAAADRAAAAAAAAAAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFAMqaOwAAAAAAAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTlOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAYOwAAKDoAAKw8AABOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UAAAAYOwAAWDoAAEw6AABOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UAAAAYOwAAiDoAAEw6AABOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQAYOwAAuDoAAKw6AAAAAAAAfDoAAHkBAAB6AQAAewEAAHwBAAB9AQAAfgEAAH8BAACAAQAAAAAAAGA7AAB5AQAAgQEAAHsBAAB8AQAAfQEAAIIBAACDAQAAhAEAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQAAAAAYOwAAODsAAHw6AAAAAAAA0DsAAA4AAACFAQAAhgEAAAAAAAD4OwAADgAAAIcBAACIAQAAAAAAALg7AAAOAAAAiQEAAIoBAABTdDlleGNlcHRpb24AAAAA8DoAAKg7AABTdDliYWRfYWxsb2MAAAAAGDsAAMA7AAC4OwAAU3QyMGJhZF9hcnJheV9uZXdfbGVuZ3RoAAAAABg7AADcOwAA0DsAAAAAAAAoPAAAAQAAAIsBAACMAQAAU3QxMWxvZ2ljX2Vycm9yABg7AAAYPAAAuDsAAAAAAABcPAAAAQAAAI0BAACMAQAAU3QxMmxlbmd0aF9lcnJvcgAAAAAYOwAASDwAACg8AAAAAAAAkDwAAAEAAACOAQAAjAEAAFN0MTJvdXRfb2ZfcmFuZ2UAAAAAGDsAAHw8AAAoPAAAU3Q5dHlwZV9pbmZvAAAAAPA6AACcPA==\");l(e,15544,\"BQ==\");l(e,15556,\"dAE=\");l(e,15580,\"dQEAAHYBAABsPg==\");l(e,15604,\"Ag==\");l(e,15620,\"//////////8=\");l(e,15688,\"BQ==\");l(e,15700,\"dwE=\");l(e,15724,\"dQEAAHgBAAB4PgAAAAQ=\");l(e,15748,\"AQ==\");l(e,15764,\"/////wo=\");l(e,15832,\"IEUB\")}var r=new ArrayBuffer(16);var s=new Int32Array(r);var t=new Float32Array(r);var u=new Float64Array(r);function v(){throw new Error(\"abort\")}function w(x){t[2]=x}function y(z){return s[z]}function A(z,x){s[z]=x}function B(){return t[2]}function ma(q){var C=q.a;var D=C.a;var E=D.buffer;D.grow=ka;var F=new Int8Array(E);var G=new Int16Array(E);var H=new Int32Array(E);var I=new Uint8Array(E);var J=new Uint16Array(E);var K=new Uint32Array(E);var L=new Float32Array(E);var M=new Float64Array(E);var N=Math.imul;var O=Math.fround;var P=Math.abs;var Q=Math.clz32;var R=Math.min;var S=Math.max;var T=Math.floor;var U=Math.ceil;var V=Math.trunc;var W=Math.sqrt;var X=C.b;var Y=C.c;var Z=C.d;var _=C.e;var $=C.f;var aa=C.g;var ba=C.h;var ca=83232;var da=0;\n// EMSCRIPTEN_START_FUNCS\nfunction Ud(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;B=ca-672|0;ca=B;k=H[b+8>>2];s=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;a:{b:{c:{if(g>>>0>k>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break c}d=e+H[b>>2]|0;H[a>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[a>>2]>31){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+4>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+12>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;d=H[a+20>>2];x=H[a+12>>2];if((x|0)!=(d|0)?d:0){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[a+16>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(e>>>0>=7){H[B>>2]=e;Qd(1713,B);break c}H[B+664>>2]=c;d:{if(!x){break d}e:{k=H[c>>2];if(x>>>0<=(H[c+8>>2]-k|0)/12>>>0){break e}if(x>>>0<357913942){l=H[c+4>>2];d=N(x,12);e=pa(d);g=d+e|0;e=e+N((l-k|0)/12|0,12)|0;d=e;if((k|0)!=(l|0)){while(1){d=d-12|0;l=l-12|0;H[d>>2]=H[l>>2];H[d+4>>2]=H[l+4>>2];H[d+8>>2]=H[l+8>>2];if((k|0)!=(l|0)){continue}break}}H[c+8>>2]=g;H[c+4>>2]=e;H[c>>2]=d;if(!k){break e}oa(k);break e}break b}f:{switch(H[a+16>>2]){case 0:i=wb(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;g:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break g}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break g}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break g}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break g}H[i+8>>2]=0;if(!ua(i+16|0,b)){break g}if(!ua(i+36|0,b)){break g}if(!ua(i+56|0,b)){break g}if(!ua(i+76|0,b)){break g}A=H[i+4>>2];d=0;g=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;g=pa(b);H[f+8>>2]=g;d=b+g|0;H[f+16>>2]=d;ra(g,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];g=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=g;H[e+8>>2]=H[f+16>>2];g=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;h:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;w=pa(b);H[f+8>>2]=w;g=b+w|0;H[f+16>>2]=g;ra(w,0,b);H[f+12>>2]=g}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);w=H[f+8>>2];g=H[f+12>>2]}H[d+4>>2]=g;H[d>>2]=w;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;m=H[f+28>>2]+1|0;H[f+28>>2]=m;i:{if(!m){break i}y=i+96|0;while(1){n=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];k=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=0;if(t>>>0>A>>>0){break i}d=H[i+12>>2];m=(k|0)!=(d-1|0)?k+1|0:0;if(m>>>0>=d>>>0){break i}q=N(o,12);p=q+H[i+132>>2]|0;l=q+H[i+120>>2]|0;g=H[i>>2];r=m<<2;e=H[r+H[p>>2]>>2];j:{k:{if((g|0)==(e|0)){if(!t){break k}while(1){d=H[l>>2];x=H[d+8>>2];s=H[d+4>>2];n=H[d>>2];q=H[z>>2];m=H[q+4>>2];d=H[q+8>>2];l:{if(m>>>0<d>>>0){H[m+8>>2]=x;H[m+4>>2]=s;H[m>>2]=n;H[q+4>>2]=m+12;break l}r=H[q>>2];g=(m-r|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(d-r|0)/12|0;d=e<<1;k=e>>>0>=178956970?357913941:d>>>0>k>>>0?d:k;if(k){if(k>>>0>=357913942){break a}d=pa(N(k,12))}else{d=0}w=d+N(g,12)|0;H[w+8>>2]=x;H[w+4>>2]=s;H[w>>2]=n;e=w+12|0;if((m|0)!=(r|0)){while(1){w=w-12|0;m=m-12|0;H[w>>2]=H[m>>2];H[w+4>>2]=H[m+4>>2];H[w+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=d+N(k,12);H[q+4>>2]=e;H[q>>2]=w;if(!r){break l}oa(r)}H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}break k}m:{n:{o:{p:{if(t>>>0<=2){d=H[i+108>>2];H[d>>2]=m;w=1;g=H[i+12>>2];if(g>>>0>1){break p}break m}if(K[i+8>>2]>K[i+4>>2]){break i}b=H[i+120>>2];s=o+1|0;x=N(s,12);d=b+x|0;if((d|0)!=(l|0)){Aa(d,H[l>>2],H[l+4>>2]);b=H[i+120>>2]}b=r+H[b+x>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(e^-1));n=Q(t)^31;k=H[i+32>>2];e=32-k|0;q:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break o}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;w=d<<k>>>32-n|0;if((b|0)!=32){break q}H[i+32>>2]=0;H[i+28>>2]=e+4;break q}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break o}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;w=H[g+4>>2]>>>32-b|d<<k>>>32-n}d=t>>>1|0;if(w>>>0>d>>>0){break i}break n}while(1){m=(g-1|0)!=(m|0)?m+1|0:0;H[d+(w<<2)>>2]=m;g=H[i+12>>2];w=w+1|0;if(g>>>0>w>>>0){continue}break}break m}d=t>>>1|0;w=0}r:{s:{e=d-w|0;b=t-e|0;t:{if((b|0)==(e|0)){b=e;break t}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break s}k=H[n>>2];g=H[i+92>>2];d=g+1|0;H[i+92>>2]=d;g=k&-2147483648>>>g;u:{if((d|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break u}break s}if(!g){break s}}}d=b;b=e;break r}d=e}n=H[i+132>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+x|0,g,H[k+4>>2]);if(b){g=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((e|0)!=(w|0)?N(e-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+w>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=m;H[e>>2]=b;H[f+28>>2]=H[f+28>>2]+1}if(!d){break k}g=H[f+28>>2]+H[f+24>>2]|0;b=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((b|0)!=(w|0)?N(b-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}b=(g>>>0)/341|0;b=H[(b<<2)+w>>2]+N(g-N(b,341)|0,12)|0;H[b+8>>2]=s;H[b+4>>2]=m;H[b>>2]=d;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break j}if(!t){break k}while(1){if(H[i+12>>2]){o=H[i+40>>2];n=H[p>>2];w=H[i+96>>2];k=H[i+108>>2];m=0;while(1){q=k+(m<<2)|0;H[w+(H[q>>2]<<2)>>2]=0;g=H[i>>2];e=H[q>>2]<<2;d=H[e+n>>2];v:{if((g|0)==(d|0)){break v}r=e+w|0;u=g-d|0;x=H[i+52>>2];g=32-x|0;if((u|0)<=(g|0)){e=H[i+48>>2];if((e|0)==(o|0)){break i}H[r>>2]=H[e>>2]<<x>>>32-u;d=u+H[i+52>>2]|0;H[i+52>>2]=d;if((d|0)!=32){break v}H[i+52>>2]=0;H[i+48>>2]=e+4;break v}s=H[i+48>>2];d=s+4|0;if((d|0)==(o|0)){break i}e=H[s>>2];H[i+48>>2]=d;d=u-g|0;H[i+52>>2]=d;H[r>>2]=H[s+4>>2]>>>32-d|e<<x>>>32-u}e=H[q>>2]<<2;d=e+w|0;H[d>>2]=H[d>>2]|H[e+H[l>>2]>>2];m=m+1|0;if(m>>>0<K[i+12>>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;w=H[f+16>>2];m=H[f+12>>2];g=w-m|0;if(g>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;w=H[f+16>>2];g=w-m|0;if(g>>>0>8){continue}break}}b=170;w:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break w}}x:{if((m|0)==(w|0)){break x}while(1){oa(H[m>>2]);m=m+4|0;if((w|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break x}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break h}}xb(i);break d;case 1:i=wb(B+8|0,3);A=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;y:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break y}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break y}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break y}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break y}H[i+8>>2]=0;if(!ua(i+16|0,b)){break y}if(!ua(i+36|0,b)){break y}if(!ua(i+56|0,b)){break y}if(!ua(i+76|0,b)){break y}p=H[i+4>>2];d=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;t=pa(b);H[f+8>>2]=t;d=b+t|0;H[f+16>>2]=d;ra(t,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];t=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=t;H[e+8>>2]=H[f+16>>2];t=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;z:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;o=pa(b);H[f+8>>2]=o;t=b+o|0;H[f+16>>2]=t;ra(o,0,b);H[f+12>>2]=t}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);t=H[f+12>>2];o=H[f+8>>2]}H[d+4>>2]=t;H[d>>2]=o;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=p;m=H[f+28>>2]+1|0;H[f+28>>2]=m;A:{if(!m){break A}s=i+96|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];d=H[b+4>>2];l=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(l>>>0>p>>>0){break A}b=H[i+12>>2];m=(d|0)!=(b-1|0)?d+1|0:0;if(m>>>0>=b>>>0){break A}b=H[i+120>>2];r=N(q,12);u=b+r|0;e=H[i>>2];x=m<<2;n=r+H[i+132>>2]|0;d=H[x+H[n>>2]>>2];B:{C:{if((e|0)==(d|0)){x=0;if(!l){break C}while(1){b=H[u>>2];y=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];q=H[A>>2];m=H[q+4>>2];b=H[q+8>>2];D:{if(m>>>0<b>>>0){H[m+8>>2]=y;H[m+4>>2]=n;H[m>>2]=k;H[q+4>>2]=m+12;break D}r=H[q>>2];e=(m-r|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-r|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}o=b+N(e,12)|0;H[o+8>>2]=y;H[o+4>>2]=n;H[o>>2]=k;d=o+12|0;if((m|0)!=(r|0)){while(1){o=o-12|0;m=m-12|0;H[o>>2]=H[m>>2];H[o+4>>2]=H[m+4>>2];H[o+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=b+N(g,12);H[q+4>>2]=d;H[q>>2]=o;if(!r){break D}oa(r)}H[i+8>>2]=H[i+8>>2]+1;x=x+1|0;if((l|0)!=(x|0)){continue}break}break C}E:{F:{G:{H:{if(l>>>0<=2){b=H[i+108>>2];H[b>>2]=m;o=1;t=H[i+12>>2];if(t>>>0>1){break H}break E}if(K[i+8>>2]>K[i+4>>2]){break A}k=b;b=r+12|0;Aa(k+b|0,H[u>>2],H[u+4>>2]);b=x+H[b+H[i+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<e+(d^-1));n=Q(l)^31;k=H[i+32>>2];e=32-k|0;I:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break G}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;d=d<<k>>>32-n|0;if((b|0)!=32){break I}H[i+32>>2]=0;H[i+28>>2]=e+4;break I}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break G}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;d=H[g+4>>2]>>>32-b|d<<k>>>32-n}o=l>>>1|0;if(o>>>0<d>>>0){break A}break F}while(1){m=(t-1|0)!=(m|0)?m+1|0:0;H[b+(o<<2)>>2]=m;o=o+1|0;t=H[i+12>>2];if(o>>>0<t>>>0){continue}break}break E}o=l>>>1|0;d=0}y=q+1|0;J:{K:{e=o-d|0;d=l-e|0;L:{if((d|0)==(e|0)){b=e;break L}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break K}k=H[n>>2];g=H[i+92>>2];b=g+1|0;H[i+92>>2]=b;g=k&-2147483648>>>g;M:{if((b|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break M}break K}if(!g){break K}}b=d}d=e;break J}b=e}n=H[i+132>>2];k=n+r|0;g=H[k>>2];e=g+x|0;H[e>>2]=H[e>>2]+1;Aa(n+N(y,12)|0,g,H[k+4>>2]);if(d){t=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((e|0)!=(o|0)?N(e-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}e=(t>>>0)/341|0;e=H[o+(e<<2)>>2]+N(t-N(e,341)|0,12)|0;H[e+8>>2]=q;H[e+4>>2]=m;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break C}t=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((d|0)!=(o|0)?N(d-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}d=(t>>>0)/341|0;d=H[o+(d<<2)>>2]+N(t-N(d,341)|0,12)|0;H[d+8>>2]=y;H[d+4>>2]=m;H[d>>2]=b;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break B}t=0;if(!l){break C}while(1){if(H[i+12>>2]){o=H[i+40>>2];k=H[n>>2];z=H[i+96>>2];g=H[i+108>>2];m=0;while(1){q=g+(m<<2)|0;H[z+(H[q>>2]<<2)>>2]=0;e=H[i>>2];d=H[q>>2]<<2;b=H[d+k>>2];N:{if((e|0)==(b|0)){break N}r=d+z|0;w=e-b|0;x=H[i+52>>2];e=32-x|0;if((w|0)<=(e|0)){d=H[i+48>>2];if((d|0)==(o|0)){break A}H[r>>2]=H[d>>2]<<x>>>32-w;b=w+H[i+52>>2]|0;H[i+52>>2]=b;if((b|0)!=32){break N}H[i+52>>2]=0;H[i+48>>2]=d+4;break N}y=H[i+48>>2];b=y+4|0;if((b|0)==(o|0)){break A}d=H[y>>2];H[i+48>>2]=b;b=w-e|0;H[i+52>>2]=b;H[r>>2]=H[y+4>>2]>>>32-b|d<<x>>>32-w}d=H[q>>2]<<2;b=d+z|0;H[b>>2]=H[b>>2]|H[d+H[u>>2]>>2];m=m+1|0;if(m>>>0<K[i+12>>2]){continue}break}}jb(A,s);H[i+8>>2]=H[i+8>>2]+1;t=t+1|0;if((l|0)!=(t|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;o=H[f+16>>2];m=H[f+12>>2];t=o-m|0;if(t>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;o=H[f+16>>2];t=o-m|0;if(t>>>0>8){continue}break}}b=170;O:{switch((t>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break O}}P:{if((m|0)==(o|0)){break P}while(1){oa(H[m>>2]);m=m+4|0;if((o|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break P}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break z}}xb(i);break d;case 2:f=ub(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Q:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Q}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Q}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Q}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Q}H[f+8>>2]=0;if(!ta(f+16|0,b)){break Q}if(!ua(f+32|0,b)){break Q}if(!ua(f+52|0,b)){break Q}if(!ua(f+72|0,b)){break Q}z=H[f+4>>2];g=0;b=0;h=ca-32|0;ca=h;j=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}d=j<<2;g=pa(d);H[h+8>>2]=g;b=d+g|0;H[h+16>>2]=b;ra(g,0,d);H[h+12>>2]=b}e=H[f+116>>2];d=H[e>>2];if(d){H[e+4>>2]=d;oa(d);j=H[f+12>>2];g=H[h+8>>2];b=H[h+12>>2]}H[e+4>>2]=b;H[e>>2]=g;H[e+8>>2]=H[h+16>>2];g=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;R:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;u=pa(b);H[h+8>>2]=u;g=b+u|0;H[h+16>>2]=g;ra(u,0,b);H[h+12>>2]=g}d=H[f+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);u=H[h+8>>2];g=H[h+12>>2]}H[d+4>>2]=g;H[d>>2]=u;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;j=H[h+28>>2]+1|0;H[h+28>>2]=j;S:{if(!j){break S}x=f+92|0;y=f+16|0;while(1){n=H[h+12>>2];g=H[h+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;p=H[b+8>>2];k=H[b+4>>2];i=H[b>>2];H[h+28>>2]=e;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}d=0;if(i>>>0>z>>>0){break S}b=H[f+12>>2];j=(k|0)!=(b-1|0)?k+1|0:0;if(j>>>0>=b>>>0){break S}o=N(p,12);A=o+H[f+128>>2]|0;t=o+H[f+116>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];T:{if((g|0)==(e|0)){if(!i){break T}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];j=H[o+4>>2];b=H[o+8>>2];U:{if(j>>>0<b>>>0){H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;H[o+4>>2]=j+12;break U}q=H[o>>2];g=(j-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}u=b+N(g,12)|0;H[u+8>>2]=r;H[u+4>>2]=s;H[u>>2]=n;e=u+12|0;if((j|0)!=(q|0)){while(1){u=u-12|0;j=j-12|0;H[u>>2]=H[j>>2];H[u+4>>2]=H[j+4>>2];H[u+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=u;if(!q){break U}oa(q)}H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}break T}V:{W:{X:{Y:{if(i>>>0<=2){b=H[f+104>>2];H[b>>2]=j;u=1;g=H[f+12>>2];if(g>>>0>1){break Y}break V}if(K[f+8>>2]>K[f+4>>2]){break S}b=H[f+116>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+116>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(e^-1));H[h+4>>2]=0;pc(y,Q(i)^31,h+4|0);d=i>>>1|0;b=H[h+4>>2];if(d>>>0<b>>>0){break S}e=d-b|0;d=i-e|0;Z:{if((d|0)==(e|0)){b=e;break Z}n=H[f+84>>2];if((n|0)==H[f+76>>2]){break X}k=H[n>>2];g=H[f+88>>2];b=g+1|0;H[f+88>>2]=b;g=k&-2147483648>>>g;_:{if((b|0)==32){H[f+88>>2]=0;H[f+84>>2]=n+4;if(g){break _}break X}if(!g){break X}}b=d}d=e;break W}while(1){j=(g-1|0)!=(j|0)?j+1|0:0;H[b+(u<<2)>>2]=j;g=H[f+12>>2];u=u+1|0;if(g>>>0>u>>>0){continue}break}break V}b=e}n=H[f+128>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((e|0)!=(u|0)?N(e-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+u>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break T}g=H[h+28>>2]+H[h+24>>2]|0;d=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((d|0)!=(u|0)?N(d-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}d=(g>>>0)/341|0;d=H[(d<<2)+u>>2]+N(g-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;H[h+28>>2]=H[h+28>>2]+1;break T}if(!i){break T}while(1){if(H[f+12>>2]){p=H[f+36>>2];n=H[A>>2];u=H[f+92>>2];k=H[f+104>>2];j=0;while(1){o=k+(j<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];$:{if((g|0)==(b|0)){break $}q=e+u|0;l=g-b|0;r=H[f+48>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+44>>2];if((e|0)==(p|0)){break S}H[q>>2]=H[e>>2]<<r>>>32-l;b=l+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break $}H[f+48>>2]=0;H[f+44>>2]=e+4;break $}s=H[f+44>>2];b=s+4|0;if((b|0)==(p|0)){break S}e=H[s>>2];H[f+44>>2]=b;b=l-g|0;H[f+48>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<<r>>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];j=j+1|0;if(j>>>0<K[f+12>>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}}j=H[h+28>>2];if(j){continue}break}}H[h+28>>2]=0;u=H[h+16>>2];j=H[h+12>>2];g=u-j|0;if(g>>>0>=9){while(1){oa(H[j>>2]);j=H[h+12>>2]+4|0;H[h+12>>2]=j;u=H[h+16>>2];g=u-j|0;if(g>>>0>8){continue}break}}b=170;aa:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break aa}}ba:{if((j|0)==(u|0)){break ba}while(1){oa(H[j>>2]);j=j+4|0;if((u|0)!=(j|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break ba}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break R}}vb(f);break d;case 3:i=ub(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;ca:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break ca}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break ca}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break ca}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break ca}H[i+8>>2]=0;if(!ta(i+16|0,b)){break ca}if(!ua(i+32|0,b)){break ca}if(!ua(i+52|0,b)){break ca}if(!ua(i+72|0,b)){break ca}A=H[i+4>>2];d=0;f=ca-32|0;ca=f;j=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}b=j<<2;m=pa(b);H[f+8>>2]=m;d=b+m|0;H[f+16>>2]=d;ra(m,0,b);H[f+12>>2]=d}e=H[i+116>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);j=H[i+12>>2];m=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=m;H[e+8>>2]=H[f+16>>2];m=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;da:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;p=pa(b);H[f+8>>2]=p;m=b+p|0;H[f+16>>2]=m;ra(p,0,b);H[f+12>>2]=m}d=H[i+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);m=H[f+12>>2];p=H[f+8>>2]}H[d+4>>2]=m;H[d>>2]=p;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;j=H[f+28>>2]+1|0;H[f+28>>2]=j;ea:{if(!j){break ea}y=i+92|0;s=i+16|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];d=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(t>>>0>A>>>0){break ea}b=H[i+12>>2];j=(d|0)!=(b-1|0)?d+1|0:0;if(j>>>0>=b>>>0){break ea}b=H[i+116>>2];q=N(o,12);l=b+q|0;e=H[i>>2];r=j<<2;n=q+H[i+128>>2]|0;d=H[r+H[n>>2]>>2];fa:{if((e|0)==(d|0)){r=0;if(!t){break fa}while(1){b=H[l>>2];x=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];o=H[z>>2];j=H[o+4>>2];b=H[o+8>>2];ga:{if(j>>>0<b>>>0){H[j+8>>2]=x;H[j+4>>2]=n;H[j>>2]=k;H[o+4>>2]=j+12;break ga}q=H[o>>2];e=(j-q|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-q|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}p=b+N(e,12)|0;H[p+8>>2]=x;H[p+4>>2]=n;H[p>>2]=k;d=p+12|0;if((j|0)!=(q|0)){while(1){p=p-12|0;j=j-12|0;H[p>>2]=H[j>>2];H[p+4>>2]=H[j+4>>2];H[p+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(g,12);H[o+4>>2]=d;H[o>>2]=p;if(!q){break ga}oa(q)}H[i+8>>2]=H[i+8>>2]+1;r=r+1|0;if((t|0)!=(r|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(t>>>0<=2){b=H[i+104>>2];H[b>>2]=j;p=1;m=H[i+12>>2];if(m>>>0>1){break ka}break ha}if(K[i+8>>2]>K[i+4>>2]){break ea}k=b;b=q+12|0;Aa(k+b|0,H[l>>2],H[l+4>>2]);b=r+H[b+H[i+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<e+(d^-1));H[f+4>>2]=0;pc(s,Q(t)^31,f+4|0);d=t>>>1|0;b=H[f+4>>2];if(d>>>0<b>>>0){break ea}x=o+1|0;e=d-b|0;d=t-e|0;la:{if((d|0)==(e|0)){b=e;break la}n=H[i+84>>2];if((n|0)==H[i+76>>2]){break ja}k=H[n>>2];g=H[i+88>>2];b=g+1|0;H[i+88>>2]=b;g=k&-2147483648>>>g;ma:{if((b|0)==32){H[i+88>>2]=0;H[i+84>>2]=n+4;if(g){break ma}break ja}if(!g){break ja}}b=d}d=e;break ia}while(1){j=(m-1|0)!=(j|0)?j+1|0:0;H[b+(p<<2)>>2]=j;m=H[i+12>>2];p=p+1|0;if(m>>>0>p>>>0){continue}break}break ha}b=e}n=H[i+128>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(x,12)|0,g,H[k+4>>2]);if(d){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((e|0)!=(p|0)?N(e-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}e=(m>>>0)/341|0;e=H[p+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=j;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break fa}m=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((d|0)!=(p|0)?N(d-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}d=(m>>>0)/341|0;d=H[p+(d<<2)>>2]+N(m-N(d,341)|0,12)|0;H[d+8>>2]=x;H[d+4>>2]=j;H[d>>2]=b;H[f+28>>2]=H[f+28>>2]+1;break fa}m=0;if(!t){break fa}while(1){if(H[i+12>>2]){p=H[i+36>>2];k=H[n>>2];w=H[i+92>>2];g=H[i+104>>2];j=0;while(1){o=g+(j<<2)|0;H[w+(H[o>>2]<<2)>>2]=0;e=H[i>>2];d=H[o>>2]<<2;b=H[d+k>>2];na:{if((e|0)==(b|0)){break na}q=d+w|0;u=e-b|0;r=H[i+48>>2];e=32-r|0;if((u|0)<=(e|0)){d=H[i+44>>2];if((d|0)==(p|0)){break ea}H[q>>2]=H[d>>2]<<r>>>32-u;b=u+H[i+48>>2]|0;H[i+48>>2]=b;if((b|0)!=32){break na}H[i+48>>2]=0;H[i+44>>2]=d+4;break na}x=H[i+44>>2];b=x+4|0;if((b|0)==(p|0)){break ea}d=H[x>>2];H[i+44>>2]=b;b=u-e|0;H[i+48>>2]=b;H[q>>2]=H[x+4>>2]>>>32-b|d<<r>>>32-u}d=H[o>>2]<<2;b=d+w|0;H[b>>2]=H[b>>2]|H[d+H[l>>2]>>2];j=j+1|0;if(j>>>0<K[i+12>>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;m=m+1|0;if((t|0)!=(m|0)){continue}break}}j=H[f+28>>2];if(j){continue}break}}H[f+28>>2]=0;p=H[f+16>>2];j=H[f+12>>2];m=p-j|0;if(m>>>0>=9){while(1){oa(H[j>>2]);j=H[f+12>>2]+4|0;H[f+12>>2]=j;p=H[f+16>>2];m=p-j|0;if(m>>>0>8){continue}break}}b=170;oa:{switch((m>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break oa}}pa:{if((j|0)==(p|0)){break pa}while(1){oa(H[j>>2]);j=j+4|0;if((p|0)!=(j|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break pa}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break da}}vb(i);break d;case 4:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;qa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break qa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break qa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break qa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break qa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break qa}if(!ua(f+544|0,b)){break qa}if(!ua(f+564|0,b)){break qa}if(!ua(f+584|0,b)){break qa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;ra:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;sa:{if(!d){break sa}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break sa}b=H[f+12>>2];j=(e|0)!=(b-1|0)?e+1|0:0;if(j>>>0>=b>>>0){break sa}o=N(p,12);A=o+H[f+640>>2]|0;t=o+H[f+628>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];ta:{ua:{if((g|0)==(e|0)){o=0;if(!i){break ua}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];va:{if(d>>>0<b>>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break va}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break va}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break ua}wa:{xa:{ya:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break ya}break wa}if(K[f+8>>2]>K[f+4>>2]){break sa}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(e^-1));l=0;d=0;b=Q(i)^31;if(!b){d=i>>>1|0;break xa}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break xa}break sa}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0<l>>>0){continue}break}break wa}za:{Aa:{e=d-l|0;d=i-e|0;Ba:{if((d|0)==(e|0)){b=e;break Ba}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Aa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Ca:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Ca}break Aa}if(!g){break Aa}}b=d}d=e;break za}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break ua}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break ta}j=0;if(!i){break ua}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];Da:{if((g|0)==(b|0)){break Da}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break sa}H[q>>2]=H[e>>2]<<r>>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Da}H[f+560>>2]=0;H[f+556>>2]=e+4;break Da}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break sa}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<<r>>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0<K[f+12>>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;Ea:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ea}}Fa:{if((d|0)==(j|0)){break Fa}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Fa}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break ra}}ab(f);break d;case 5:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Ga:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Ga}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Ga}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Ga}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Ga}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Ga}if(!ua(f+544|0,b)){break Ga}if(!ua(f+564|0,b)){break Ga}if(!ua(f+584|0,b)){break Ga}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Ha:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;p=pa(b);H[h+8>>2]=p;l=b+p|0;H[h+16>>2]=l;ra(p,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);l=H[h+12>>2];p=H[h+8>>2]}H[d+4>>2]=l;H[d>>2]=p;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ia:{if(!d){break Ia}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;o=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ia}m=0;b=H[f+12>>2];p=(e|0)!=(b-1|0)?e+1|0:0;if(p>>>0>=b>>>0){break Ia}b=H[f+628>>2];q=N(o,12);t=b+q|0;e=H[f>>2];r=p<<2;s=q+H[f+640>>2]|0;d=H[r+H[s>>2]>>2];Ja:{Ka:{if((e|0)==(d|0)){if(!i){break Ka}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];d=H[o+4>>2];b=H[o+8>>2];La:{if(d>>>0<b>>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[o+4>>2]=d+12;break La}q=H[o>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}p=b+N(g,12)|0;H[p+8>>2]=r;H[p+4>>2]=s;H[p>>2]=n;e=p+12|0;if((d|0)!=(q|0)){while(1){p=p-12|0;d=d-12|0;H[p>>2]=H[d>>2];H[p+4>>2]=H[d+4>>2];H[p+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=p;if(!q){break La}oa(q)}H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=p;d=1;l=H[f+12>>2];if(l>>>0>1){break Oa}break Ma}if(K[f+8>>2]>K[f+4>>2]){break Ia}k=b;b=q+12|0;Aa(k+b|0,H[t>>2],H[t+4>>2]);b=r+H[b+H[f+628>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<e+(d^-1));l=0;d=0;b=Q(i)^31;if(!b){d=i>>>1|0;break Na}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break Na}break Ia}while(1){p=(l-1|0)!=(p|0)?p+1|0:0;H[b+(d<<2)>>2]=p;d=d+1|0;l=H[f+12>>2];if(d>>>0<l>>>0){continue}break}break Ma}s=o+1|0;Pa:{Qa:{e=d-l|0;d=i-e|0;Ra:{if((d|0)==(e|0)){b=e;break Ra}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Qa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Sa:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Sa}break Qa}if(!g){break Qa}}b=d}d=e;break Pa}b=e}n=H[f+640>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(s,12)|0,g,H[k+4>>2]);if(d){m=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((m|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);m=H[h+24>>2]+H[h+28>>2]|0;l=H[h+12>>2]}e=(m>>>0)/341|0;e=H[l+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=p;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break Ka}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=p;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Ja}if(!i){break Ka}while(1){if(H[f+12>>2]){A=H[f+548>>2];n=H[s>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){p=k+(d<<2)|0;H[u+(H[p>>2]<<2)>>2]=0;g=H[f>>2];e=H[p>>2]<<2;b=H[e+n>>2];Ta:{if((g|0)==(b|0)){break Ta}o=e+u|0;l=g-b|0;q=H[f+560>>2];g=32-q|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(A|0)){break Ia}H[o>>2]=H[e>>2]<<q>>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Ta}H[f+560>>2]=0;H[f+556>>2]=e+4;break Ta}r=H[f+556>>2];b=r+4|0;if((b|0)==(A|0)){break Ia}e=H[r>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[o>>2]=H[r+4>>2]>>>32-b|e<<q>>>32-l}e=H[p>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0<K[f+12>>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;p=H[h+16>>2];d=H[h+12>>2];l=p-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;p=H[h+16>>2];l=p-d|0;if(l>>>0>8){continue}break}}b=170;Ua:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ua}}Va:{if((d|0)==(p|0)){break Va}while(1){oa(H[d>>2]);d=d+4|0;if((p|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Va}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Ha}}ab(f);break d;case 6:break f;default:break c}}f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Wa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Wa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Wa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Wa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Wa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Wa}if(!ua(f+544|0,b)){break Wa}if(!ua(f+564|0,b)){break Wa}if(!ua(f+584|0,b)){break Wa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Xa:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ya:{if(!d){break Ya}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ya}b=H[f+628>>2];o=N(p,12);A=o+H[f+640>>2]|0;j=Vd(f,i,A);if(j>>>0>=K[f+12>>2]){break Ya}t=b+o|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];Za:{_a:{if((g|0)==(e|0)){o=0;if(!i){break _a}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];$a:{if(d>>>0<b>>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break $a}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break $a}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break _a}ab:{bb:{cb:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break cb}break ab}if(K[f+8>>2]>K[f+4>>2]){break Ya}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(e^-1));l=0;d=0;b=Q(i)^31;if(!b){d=i>>>1|0;break bb}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break bb}break Ya}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0<l>>>0){continue}break}break ab}db:{eb:{e=d-l|0;d=i-e|0;fb:{if((d|0)==(e|0)){b=e;break fb}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break eb}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;gb:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break gb}break eb}if(!g){break eb}}b=d}d=e;break db}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break _a}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Za}j=0;if(!i){break _a}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];hb:{if((g|0)==(b|0)){break hb}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break Ya}H[q>>2]=H[e>>2]<<r>>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break hb}H[f+560>>2]=0;H[f+556>>2]=e+4;break hb}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break Ya}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<<r>>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0<K[f+12>>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;ib:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break ib}}jb:{if((d|0)==(j|0)){break jb}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break jb}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Xa}}ab(f)}n=H[a+12>>2]==((H[c+4>>2]-H[c>>2]|0)/12|0)}ca=B+672|0;return n}sa();v()}wa();v()}function kd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!a){return 1}e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];a:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break a}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;b:{switch(g|0){case 0:e=a;f=b;i=d;a=0;d=0;m=ca+-64|0;ca=m;H[m+56>>2]=0;H[m+48>>2]=0;H[m+52>>2]=0;H[m+40>>2]=0;H[m+44>>2]=0;H[m+32>>2]=0;H[m+36>>2]=0;H[m+24>>2]=0;H[m+28>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;H[m+8>>2]=0;H[m+12>>2]=0;c:{if(!Ne(m+8|0,c)){break c}if(!Me(m+8|0,c)|(H[m+20>>2]?0:e)){break c}Db(c,0,0);if(e){s=f<<2;t=H[m+36>>2];w=H[m+48>>2];x=H[m+24>>2];l=H[m+56>>2];j=H[m+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((j|0)<=0){break d}j=j-1|0;H[m+52>>2]=j;l=I[j+w|0]|l<<8;H[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=H[(a<<2)+x>>2];b=(r<<3)+t|0;l=(N(H[b>>2],l>>>12|0)+a|0)-H[b+4>>2]|0;H[m+56>>2]=l;if((f|0)>0){a=0;if(!I[c+36|0]|r>>>0>32){break c}g=d+f|0;e:{if(!r){ra(i+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=H[c+32>>2];h=H[c+28>>2];n=H[c+24>>2];while(1){k=0;a=b;o=0;q=0;if((r|0)!=1){while(1){p=n+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=I[p|0];b=a+1|0;H[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<<k|o;o=0;u=n+(a>>>3|0)|0;if(u>>>0<h>>>0){o=I[u|0];b=a+1|0;H[c+32>>2]=b;o=o>>>(a&7)&1;a=b}u=k|1;k=k+2|0;o=p|o<<u;q=q+2|0;if((y|0)!=(q|0)){continue}break}}q=i+(d<<2)|0;if(z){p=n+(a>>>3|0)|0;if(p>>>0<h>>>0){p=I[p|0];b=a+1|0;H[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}o=a<<k|o}H[q>>2]=o;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=g}v=f+v|0;if(e>>>0>v>>>0){continue}break}}F[c+36|0]=0;b=H[c+20>>2];e=0;d=H[c+32>>2]+7|0;e=d>>>0<7?1:e;d=(e&7)<<29|d>>>3;a=d+H[c+16>>2]|0;e=(e>>>3|0)+b|0;H[c+16>>2]=a;H[c+20>>2]=a>>>0<d>>>0?e+1|0:e;a=1}b=H[m+36>>2];if(b){H[m+40>>2]=b;oa(b)}b=H[m+24>>2];if(b){H[m+28>>2]=b;oa(b)}b=H[m+8>>2];if(b){H[m+12>>2]=b;oa(b)}ca=m- -64|0;return a;case 1:break b;default:break a}}b=0;e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];g:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break g}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;h:{switch(g-1|0){case 8:g=a;r=d;i=ca+-64|0;ca=i;H[i+56>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;j=i+8|0;a=J[c+38>>1];i:{j:{if(!a){break j}k:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0<f>>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break j}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break k}if(!hb(1,j+12|0,c)){break j}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break j}b=H[j>>2];a=H[j+4>>2]-b>>2;l:{if(a>>>0<h>>>0){ya(j,h-a|0);h=H[j+12>>2];break l}if(a>>>0<=h>>>0){break l}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break i}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];m=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=m>>>0|(e|0)>(n|0)){break i}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;m:{n:{o:{p:{t=p&3;switch(t|0){case 0:break n;case 3:break p;default:break o}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break i}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break m}while(1){if((f|0)==(m|0)&(e|0)==(n|0)){break j}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0<h>>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;q:{if(b>>>0<=32767){ya(a,8192-(b>>>2|0)|0);break q}if((b|0)==32768){break q}H[j+20>>2]=d+32768}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;r:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break r}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break j}}m=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>8192){break j}s:{if(a>>>0>=d>>>0){break s}l=0;j=e&7;if(j){while(1){H[m+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break s}while(1){e=m+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==8192}d=k}t:{if(!d|(H[i+20>>2]?0:g)){break t}d=0;m=ca-16|0;ca=m;u:{v:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0<f>>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break u}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break v}if(!gb(1,m+8|0,c)){break u}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[m+8>>2];k=H[m+12>>2]}j=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0<k>>>0){break u}e=e+k|0;b=a+f|0;e=b>>>0<a>>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break u}b=H[c>>2]+f|0;H[i+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];w:{if(e>>>0<=63){H[i+52>>2]=c;a=I[f|0]&63;break w}x:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break u}a=a-2|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break w;case 1:if(a>>>0<3){break u}a=a-3|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break w;default:break x}}a=a-4|0;H[i+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[i+56>>2]=a+32768;d=a>>>0<8355840}ca=m+16|0;if(!d){break t}if(!g){o=1;break t}b=H[i+52>>2];a=H[i+56>>2];c=H[i+36>>2];d=H[i+48>>2];f=H[i+24>>2];while(1){y:{if(a>>>0>32767){break y}while(1){if((b|0)<=0){break y}b=b-1|0;H[i+52>>2]=b;a=I[b+d|0]|a<<8;H[i+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>13|0)+e|0)-H[k+4>>2]|0;H[i+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((g|0)!=(q|0)){continue}break}}a=H[i+36>>2];if(a){H[i+40>>2]=a;oa(a)}a=H[i+24>>2];if(a){H[i+28>>2]=a;oa(a)}a=H[i+8>>2];if(a){H[i+12>>2]=a;oa(a)}ca=i- -64|0;b=o;break g;case 9:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];z:{A:{if(!a){break A}B:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0<f>>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break A}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break B}if(!hb(1,j+12|0,c)){break A}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break A}b=H[j>>2];a=H[j+4>>2]-b>>2;C:{if(a>>>0<h>>>0){ya(j,h-a|0);h=H[j+12>>2];break C}if(a>>>0<=h>>>0){break C}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break z}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break z}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;D:{E:{F:{G:{t=p&3;switch(t|0){case 0:break E;case 3:break G;default:break F}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break z}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break D}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break A}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0<h>>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;H:{if(b>>>0<=131071){ya(a,32768-(b>>>2|0)|0);break H}if((b|0)==131072){break H}H[j+20>>2]=d+131072}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;I:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break I}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break A}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>32768){break A}J:{if(a>>>0>=d>>>0){break J}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break J}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==32768}d=k}K:{if(!d|(H[g+20>>2]?0:m)){break K}d=0;j=ca-16|0;ca=j;L:{M:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0<f>>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break L}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break M}if(!gb(1,j+8|0,c)){break L}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0<k>>>0){break L}i=e+k|0;b=a+f|0;i=b>>>0<a>>>0?i+1|0:i;H[c+16>>2]=b;H[c+20>>2]=i;if((a|0)<=0){break L}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];N:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break N}O:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break L}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break N;case 1:if(a>>>0<3){break L}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break N;default:break O}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+131072;d=a>>>0<33423360}ca=j+16|0;if(!d){break K}if(!m){o=1;break K}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){P:{if(a>>>0>131071){break P}while(1){if((b|0)<=0){break P}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>15|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 10:m=a;j=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;n=g+8|0;a=J[c+38>>1];Q:{R:{if(!a){break R}S:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0<f>>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break R}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[n+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break S}if(!hb(1,n+12|0,c)){break R}f=H[c+16>>2];e=H[c+20>>2];h=H[n+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break R}b=H[n>>2];a=H[n+4>>2]-b>>2;T:{if(a>>>0<h>>>0){ya(n,h-a|0);h=H[n+12>>2];break T}if(a>>>0<=h>>>0){break T}H[n+4>>2]=b+(h<<2)}d=1;if(!h){break Q}f=H[c+16>>2];e=H[c+20>>2];t=H[n>>2];r=H[c+8>>2];p=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(p|0)&f>>>0>=r>>>0|(e|0)>(p|0)){break Q}d=H[c>>2];s=I[d+f|0];f=f+1|0;i=f?e:e+1|0;H[c+16>>2]=f;e=i;H[c+20>>2]=e;a=s>>>2|0;l=0;U:{V:{W:{X:{i=s&3;switch(i|0){case 0:break V;case 3:break X;default:break W}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break Q}ra(t+(b<<2)|0,0,(s&252)+4|0);b=a;break U}while(1){if((f|0)==(r|0)&(e|0)==(p|0)){break R}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((i|0)!=(l|0)){continue}break}}H[t+(b<<2)>>2]=a}b=b+1|0;h=H[n+12>>2];if(b>>>0<h>>>0){continue}break}a=n+16|0;r=H[n>>2];d=H[n+16>>2];b=H[n+20>>2]-d|0;Y:{if(b>>>0<=262143){ya(a,65536-(b>>>2|0)|0);break Y}if((b|0)==262144){break Y}H[n+20>>2]=d+262144}d=n+28|0;b=H[d>>2];f=H[n+32>>2]-b>>3;Z:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break Z}if(f>>>0>h>>>0){H[n+32>>2]=(h<<3)+b}if(!h){break R}}i=H[a>>2];f=0;d=0;while(1){e=r+(f<<2)|0;l=H[e>>2];n=(f<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=l;e=H[e>>2];d=e+a|0;if(d>>>0>65536){break R}_:{if(a>>>0>=d>>>0){break _}l=0;n=e&7;if(n){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((n|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break _}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==65536}d=k}$:{if(!d|(H[g+20>>2]?0:m)){break $}d=0;i=ca-16|0;ca=i;aa:{ba:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0<f>>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break aa}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break ba}if(!gb(1,i+8|0,c)){break aa}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}r=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>r>>>0|b>>>0<k>>>0){break aa}e=e+k|0;b=a+f|0;e=b>>>0<a>>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break aa}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ca:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ca}da:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break aa}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ca;case 1:if(a>>>0<3){break aa}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ca;default:break da}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+262144;d=a>>>0<66846720}ca=i+16|0;if(!d){break $}if(!m){o=1;break $}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){ea:{if(a>>>0>262143){break ea}while(1){if((b|0)<=0){break ea}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>16|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[j+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 11:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];fa:{ga:{if(!a){break ga}ha:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0<f>>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break ga}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;i=H[c+20>>2];f=H[c+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[c+16>>2]=f;e=i;H[c+20>>2]=e;break ha}if(!hb(1,j+12|0,c)){break ga}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break ga}b=H[j>>2];a=H[j+4>>2]-b>>2;ia:{if(a>>>0<h>>>0){ya(j,h-a|0);h=H[j+12>>2];break ia}if(a>>>0<=h>>>0){break ia}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break fa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break fa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;ja:{ka:{la:{ma:{t=p&3;switch(t|0){case 0:break ka;case 3:break ma;default:break la}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break fa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ja}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break ga}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0<h>>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;na:{if(b>>>0<=1048575){ya(a,262144-(b>>>2|0)|0);break na}if((b|0)==1048576){break na}H[j+20>>2]=d- -1048576}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;oa:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break oa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break ga}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>262144){break ga}pa:{if(a>>>0>=d>>>0){break pa}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break pa}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==262144}d=k}qa:{if(!d|(H[g+20>>2]?0:m)){break qa}d=0;j=ca-16|0;ca=j;ra:{sa:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;i=H[c+20>>2];k=H[c+16>>2];f=k+8|0;i=f>>>0<8?i+1|0:i;e=i;if(b>>>0<f>>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break ra}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break sa}if(!gb(1,j+8|0,c)){break ra}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0<k>>>0){break ra}e=e+k|0;b=a+f|0;e=b>>>0<a>>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break ra}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ta:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ta}ua:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break ra}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ta;case 1:if(a>>>0<3){break ra}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ta;default:break ua}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a- -1048576;d=a>>>0<267386880}ca=j+16|0;if(!d){break qa}if(!m){o=1;break qa}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){va:{if(a>>>0>1048575){break va}while(1){if((b|0)<=0){break va}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>18|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 12:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];wa:{xa:{if(!a){break xa}ya:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];i=H[c+20>>2];a=H[c+16>>2];f=a+4|0;i=f>>>0<4?i+1|0:i;if(d>>>0<f>>>0&(b|0)<=(i|0)|(b|0)<(i|0)){break xa}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break ya}if(!hb(1,j+12|0,c)){break xa}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break xa}b=H[j>>2];a=H[j+4>>2]-b>>2;za:{if(a>>>0<h>>>0){ya(j,h-a|0);h=H[j+12>>2];break za}if(a>>>0<=h>>>0){break za}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break wa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break wa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;Aa:{Ba:{Ca:{Da:{t=p&3;switch(t|0){case 0:break Ba;case 3:break Da;default:break Ca}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break wa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break Aa}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break xa}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0<h>>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;Ea:{if(b>>>0<=2097151){ya(a,524288-(b>>>2|0)|0);break Ea}if((b|0)==2097152){break Ea}H[j+20>>2]=d+2097152}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;Fa:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break Fa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break xa}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>524288){break xa}Ga:{if(a>>>0>=d>>>0){break Ga}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break Ga}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==524288}d=k}Ha:{if(!d|(H[g+20>>2]?0:m)){break Ha}d=0;i=ca-16|0;ca=i;Ia:{Ja:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0<f>>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ia}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break Ja}if(!gb(1,i+8|0,c)){break Ia}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}j=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0<k>>>0){break Ia}e=e+k|0;b=a+f|0;e=b>>>0<a>>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break Ia}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];Ka:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break Ka}La:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break Ia}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break Ka;case 1:if(a>>>0<3){break Ia}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break Ka;default:break La}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+2097152;d=a>>>0<534773760}ca=i+16|0;if(!d){break Ha}if(!m){o=1;break Ha}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){Ma:{if(a>>>0>2097151){break Ma}while(1){if((b|0)<=0){break Ma}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>19|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 17:b=Le(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=ca+-64|0;ca=b;H[b+56>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;Na:{if(!Ne(b+8|0,c)|(H[b+20>>2]?0:a)){break Na}if(!Me(b+8|0,c)){break Na}if(!a){f=1;break Na}e=H[b+52>>2];c=H[b+56>>2];k=H[b+36>>2];i=H[b+48>>2];g=H[b+24>>2];while(1){Oa:{if(c>>>0>16383){break Oa}while(1){if((e|0)<=0){break Oa}e=e-1|0;H[b+52>>2]=e;c=I[e+i|0]|c<<8;H[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;m=H[g+(f<<2)>>2];r=k+(m<<3)|0;c=(N(H[r>>2],c>>>12|0)+f|0)-H[r+4>>2]|0;H[b+56>>2]=c;H[(o<<2)+d>>2]=m;f=1;o=o+1|0;if((o|0)!=(a|0)){continue}break}}a=H[b+36>>2];if(a){H[b+40>>2]=a;oa(a)}a=H[b+24>>2];if(a){H[b+28>>2]=a;oa(a)}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}ca=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Le(a,c,d)}f=b}return f}function gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0;s=ca+-64|0;ca=s;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){d=H[c>>2];oa(c);c=d;if(c){continue}break}}c=0;H[a+144>>2]=0;d=H[a+140>>2];a:{if(!d){break a}if(d>>>0>=4){g=d&-4;while(1){e=c<<2;H[e+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(e|4)>>2]=0;H[H[a+136>>2]+(e|8)>>2]=0;H[H[a+136>>2]+(e|12)>>2]=0;c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}b=d&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;u=u+1|0;if((b|0)!=(u|0)){continue}break}}H[a+148>>2]=0}b:{c:{d:{c=H[a+4>>2];u=I[c+36|0];b=u<<8|I[c+37|0];if(b>>>0<=513){i=H[c+32>>2];e:{if(b>>>0<=511){d=H[i+20>>2];e=H[i+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;g=b;f=K[i+8>>2]<b>>>0;b=H[i+12>>2];if(f&(b|0)<=(d|0)|(b|0)<(d|0)){break d}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=g;H[i+20>>2]=d;break e}if(!Ea(1,s,i)){break d}c=H[a+4>>2];u=I[c+36|0];b=H[s>>2]}H[a+132>>2]=b}g=H[c+32>>2];f:{g:{h:{if((u&255)>>>0<=1){u=0;d=H[g+20>>2];e=H[g+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;i=H[g+12>>2];if(K[g+8>>2]<b>>>0&(i|0)<=(d|0)|(d|0)>(i|0)){break c}e=e+H[g>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[s+60>>2]=e;H[g+16>>2]=b;H[g+20>>2]=d;H[a+156>>2]=e;n=a+156|0;break h}u=0;if(!Ea(1,s+60|0,g)){break c}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[s+60>>2];n=a+156|0;if(b>>>0>1){break g}}e=H[c+32>>2];i=H[e+8>>2];g=H[e+12>>2];d=H[e+20>>2];b=H[e+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;if(c>>>0>i>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break c}b=b+H[e>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[s+56>>2]=b;H[e+16>>2]=c;H[e+20>>2]=d;break f}if(!Ea(1,s+56|0,H[c+32>>2])){break c}b=H[s+56>>2]}if(b>>>0>1431655765){break c}c=H[n>>2];d=N(b,3);if(c>>>0>d>>>0){break c}e=d>>>1|0;d=c>>31;g=Rj(c-1|0,d-!c|0,c,d);c=da;d=c>>>1|0;c=(c&1)<<31|g>>>1;if(!d&c>>>0<e>>>0){break c}f=H[a+4>>2];g=H[f+32>>2];c=g;e=H[c+8>>2];i=H[c+16>>2];j=H[c+12>>2];d=H[c+20>>2];c=d;if((j|0)<=(c|0)&e>>>0<=i>>>0|(c|0)>(j|0)){break c}n=H[g>>2];o=I[n+i|0];h=i+1|0;c=h?c:c+1|0;H[g+16>>2]=h;H[g+20>>2]=c;i:{if(I[f+36|0]<=1){f=e;c=j;e=i+5|0;d=e>>>0<5?d+1|0:d;if((c|0)<=(d|0)&e>>>0>f>>>0|(c|0)<(d|0)){break c}c=h+n|0;n=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[s+52>>2]=n;H[g+16>>2]=e;H[g+20>>2]=d;break i}if(!Ea(1,s+52|0,g)){break c}n=H[s+52>>2]}if(b>>>0<n>>>0|((n>>>0)/3|0)+n>>>0<b>>>0){break c}c=H[a+4>>2];i=H[c+32>>2];j:{if(I[c+36|0]<=1){c=H[i+20>>2];e=H[i+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;g=d;f=K[i+8>>2]<d>>>0;d=H[i+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=e+H[i>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[s+48>>2]=d;H[i+16>>2]=g;H[i+20>>2]=c;break j}if(!Ea(1,s+48|0,i)){break c}d=H[s+48>>2]}if(d>>>0>n>>>0){break c}H[a+28>>2]=H[a+24>>2];e=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=e;if(c){cb(c);if(!H[a+8>>2]){break c}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,b);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,b);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];B=a+216|0;ed(B);dd(B,o);if(!Lc(H[a+8>>2],b,H[a+156>>2]+d|0)){break c}c=H[a+156>>2];F[s|0]=1;Oa(a+120|0,c+d|0,s);c=H[a+4>>2];b=J[c+36>>1];b=(b<<8|b>>>8)&65535;k:{if(b>>>0<=513){i=H[c+32>>2];l:{if(b>>>0<=511){c=H[i+20>>2];e=H[i+16>>2];b=e+4|0;c=b>>>0<4?c+1|0:c;g=b;f=K[i+8>>2]<b>>>0;b=H[i+12>>2];if(f&(b|0)<=(c|0)|(c|0)>(b|0)){break c}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=g;H[i+20>>2]=c;break l}if(!Ea(1,s+44|0,i)){break c}b=H[s+44>>2]}if(!b){break c}c=H[H[a+4>>2]+32>>2];e=H[c+8>>2];g=H[c+16>>2];i=e-g|0;c=H[c+12>>2]-(H[c+20>>2]+(e>>>0<g>>>0)|0)|0;if((c|0)<=0&b>>>0>i>>>0|(c|0)<0){break c}c=Ha(s);e=H[H[a+4>>2]+32>>2];g=H[e+16>>2];i=(g+H[e>>2]|0)+b|0;g=H[e+8>>2]-g|0;G[c+38>>1]=J[e+38>>1];H[c>>2]=i;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=g-b;H[c+12>>2]=0;C=Ib(a,c);if((C|0)==-1){break c}M=C>>31;break k}C=-1;M=-1;if((Ib(a,H[c+32>>2])|0)==-1){break c}}e=a+232|0;Ee(e,a);H[a+372>>2]=o;H[a+384>>2]=H[a+156>>2]+d;O=Ha(s);g=O;b=0;j=ca-16|0;ca=j;m:{n:{c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+4>>2];H[e+40>>2]=H[e>>2];H[e+44>>2]=c;c=H[e+36>>2];H[e+72>>2]=H[e+32>>2];H[e+76>>2]=c;d=H[e+28>>2];c=e- -64|0;H[c>>2]=H[e+24>>2];H[c+4>>2]=d;c=H[e+20>>2];H[e+56>>2]=H[e+16>>2];H[e+60>>2]=c;c=H[e+12>>2];H[e+48>>2]=H[e+8>>2];H[e+52>>2]=c;if(!Db(e+40|0,1,j+8|0)){break n}c=H[e+44>>2];H[e>>2]=H[e+40>>2];H[e+4>>2]=c;c=H[e+76>>2];H[e+32>>2]=H[e+72>>2];H[e+36>>2]=c;c=H[e+68>>2];H[e+24>>2]=H[e+64>>2];H[e+28>>2]=c;c=H[e+60>>2];h=c;d=H[e+56>>2];H[e+16>>2]=d;H[e+20>>2]=c;i=H[e+52>>2];f=i;c=H[e+48>>2];H[e+8>>2]=c;H[e+12>>2]=f;o=c-d|0;k=H[j+12>>2];c=f-((c>>>0<d>>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(c|0)&o>>>0<i>>>0|c>>>0<k>>>0){break n}c=h+k|0;f=d;d=d+i|0;c=f>>>0>d>>>0?c+1|0:c;H[e+16>>2]=d;H[e+20>>2]=c}o:{if(J[e+38>>1]<=513){c=H[e+4>>2];H[e+96>>2]=H[e>>2];H[e+100>>2]=c;c=H[e+36>>2];H[e+128>>2]=H[e+32>>2];H[e+132>>2]=c;c=H[e+28>>2];H[e+120>>2]=H[e+24>>2];H[e+124>>2]=c;c=H[e+20>>2];H[e+112>>2]=H[e+16>>2];H[e+116>>2]=c;c=H[e+12>>2];H[e+104>>2]=H[e+8>>2];H[e+108>>2]=c;if(!Db(e+96|0,1,j+8|0)){break n}c=H[e+100>>2];H[e>>2]=H[e+96>>2];H[e+4>>2]=c;c=H[e+132>>2];H[e+32>>2]=H[e+128>>2];H[e+36>>2]=c;c=H[e+124>>2];H[e+24>>2]=H[e+120>>2];H[e+28>>2]=c;d=H[e+116>>2];h=d;c=H[e+112>>2];H[e+16>>2]=c;H[e+20>>2]=d;i=H[e+108>>2];f=i;d=H[e+104>>2];H[e+8>>2]=d;H[e+12>>2]=f;o=d-c|0;k=H[j+12>>2];d=f-((c>>>0>d>>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(d|0)&o>>>0<i>>>0|d>>>0<k>>>0){break n}d=h+k|0;f=c;c=c+i|0;d=f>>>0>c>>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;break o}if(!ta(e+80|0,e)){break m}}if(!Fe(e)){break m}c=H[e+4>>2];H[g>>2]=H[e>>2];H[g+4>>2]=c;c=H[e+36>>2];H[g+32>>2]=H[e+32>>2];H[g+36>>2]=c;c=H[e+28>>2];H[g+24>>2]=H[e+24>>2];H[g+28>>2]=c;c=H[e+20>>2];H[g+16>>2]=H[e+16>>2];H[g+20>>2]=c;c=H[e+12>>2];H[g+8>>2]=H[e+8>>2];H[g+12>>2]=c;c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];p:{if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+144>>2];q:{if(I[(ea[H[H[c>>2]+32>>2]](c)|0)+36|0]<=1){c=H[g+20>>2];i=H[g+16>>2];d=i+4|0;c=d>>>0<4?c+1|0:c;h=d;f=K[g+8>>2]<d>>>0;d=H[g+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break m}d=i+H[g>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+16>>2]=h;H[g+20>>2]=c;break q}if(!Ea(1,j+8|0,g)){break m}d=H[j+8>>2]}c=H[e+152>>2];if(d>>>0>=c>>>0){break m}d=H[g+20>>2];h=H[g+12>>2];i=H[g+16>>2];if((d|0)>=(h|0)&i>>>0>=K[g+8>>2]|(d|0)>(h|0)){break m}h=I[i+H[g>>2]|0];i=i+1|0;d=i?d:d+1|0;H[g+16>>2]=i;H[g+20>>2]=d;if(h){break m}H[e+176>>2]=2;H[e+180>>2]=7;break p}H[e+176>>2]=2;H[e+180>>2]=7;c=H[e+152>>2]}if((c|0)<0){break m}H[j+8>>2]=0;b=2;h=H[e+156>>2];i=H[e+160>>2]-h>>2;r:{if(i>>>0<c>>>0){Pa(e+156|0,c-i|0,j+8|0);b=H[e+176>>2];d=H[e+180>>2];break r}d=7;if(c>>>0>=i>>>0){break r}H[e+160>>2]=h+(c<<2)}i=e+184|0;b=(d-b|0)+1|0;c=H[e+188>>2];h=H[e+184>>2];d=(c-h|0)/12|0;s:{if(b>>>0>d>>>0){o=0;d=b-d|0;f=H[i+8>>2];c=H[i+4>>2];t:{if(d>>>0<=(f-c|0)/12>>>0){if(d){b=c;c=N(d,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;c=ra(b,0,c)+c|0}H[i+4>>2]=c;break t}u:{v:{w:{h=H[i>>2];k=(c-h|0)/12|0;b=k+d|0;if(b>>>0<357913942){f=(f-h|0)/12|0;l=f<<1;f=f>>>0>=178956970?357913941:b>>>0<l>>>0?l:b;if(f){if(f>>>0>=357913942){break w}o=pa(N(f,12))}b=N(k,12)+o|0;d=N(d,12)-12|0;k=(d-((d>>>0)%12|0)|0)+12|0;d=ra(b,0,k);k=d+k|0;f=N(f,12)+o|0;if((c|0)==(h|0)){break v}while(1){b=b-12|0;c=c-12|0;H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if((c|0)!=(h|0)){continue}break}H[i+8>>2]=f;d=H[i+4>>2];H[i+4>>2]=k;c=H[i>>2];H[i>>2]=b;if((c|0)==(d|0)){break u}while(1){b=d-12|0;h=H[b>>2];if(h){H[d-8>>2]=h;oa(h)}d=b;if((b|0)!=(c|0)){continue}break}break u}break b}wa();v()}H[i+8>>2]=f;H[i+4>>2]=k;H[i>>2]=d}if(c){oa(c)}}d=H[e+188>>2];break s}if(b>>>0>=d>>>0){d=c;break s}d=h+N(b,12)|0;if((d|0)!=(c|0)){while(1){b=c-12|0;h=H[b>>2];if(h){H[c-8>>2]=h;oa(h)}c=b;if((d|0)!=(b|0)){continue}break}}H[e+188>>2]=d}f=e+196|0;b=H[e+184>>2];c=(d-b|0)/12|0;o=H[e+196>>2];h=H[e+200>>2]-o>>2;x:{if(c>>>0>h>>>0){ya(f,c-h|0);b=H[e+184>>2];d=H[e+188>>2];break x}if(c>>>0>=h>>>0){break x}H[e+200>>2]=o+(c<<2)}if((b|0)==(d|0)){b=1;break m}c=0;while(1){if(!Ea(1,j+8|0,g)){break n}b=H[e+148>>2];d=(H[b+4>>2]-H[b>>2]>>2>>>0)/3|0;b=H[j+8>>2];if(d>>>0<b>>>0){break n}if(b){k=N(c,12);h=k+H[i>>2]|0;d=H[h>>2];o=H[h+4>>2]-d>>2;y:{if(o>>>0<b>>>0){ya(h,b-o|0);d=H[k+H[i>>2]>>2];break y}if(b>>>0>=o>>>0){break y}H[h+4>>2]=(b<<2)+d}kd(b,1,g,d);H[H[f>>2]+(c<<2)>>2]=b}b=1;c=c+1|0;if(c>>>0<(H[e+188>>2]-H[e+184>>2]|0)/12>>>0){continue}break}break m}b=0}ca=j+16|0;z:{if(!b){break z}d=0;c=0;g=0;i=0;o=0;l=ca-96|0;ca=l;H[l+72>>2]=0;H[l+64>>2]=0;H[l+68>>2]=0;H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+56>>2]=1065353216;H[l+32>>2]=0;H[l+24>>2]=0;H[l+28>>2]=0;j=a;L=H[a+124>>2];A:{B:{C:{D:{E:{if((n|0)<=0){break E}r=j+232|0;P=H[j+216>>2]!=H[j+220>>2];D=1;while(1){h=i;i=i+1|0;a=H[r+172>>2];F:{G:{if((a|0)!=-1){b=H[r+196>>2]+(a<<2)|0;f=H[b>>2];a=f-1|0;H[b>>2]=a;b=9;if((f|0)<=0){break F}a=H[H[H[r+184>>2]+N(H[r+172>>2],12)>>2]+(a<<2)>>2];if(a>>>0>4){break F}b=H[(a<<2)+12144>>2];break G}b=7;a=H[r+144>>2];a=J[(ea[H[H[a>>2]+32>>2]](a)|0)+36>>1];if(((a<<8|a>>>8)&65535)>>>0>513|!I[r+76|0]){break G}b=0;m=H[r- -64>>2];k=H[r+72>>2];a=m+(k>>>3|0)|0;p=H[r+68>>2];if(a>>>0>=p>>>0){break G}f=I[a|0];a=k+1|0;H[r+72>>2]=a;f=f>>>(k&7)&1;if(!f){break G}q=a>>>3|0;b=m+q|0;H:{if(b>>>0>=p>>>0){b=a;a=0;break H}t=I[b|0];b=k+2|0;H[r+72>>2]=b;q=b>>>3|0;a=t>>>(a&7)&1}k=m+q|0;if(k>>>0<p>>>0){k=I[k|0];H[r+72>>2]=b+1;b=k>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|f}H[r+168>>2]=b}a=b;I:{J:{if(!a){if((c|0)==(g|0)){b=-1;break D}d=-1;m=H[j+8>>2];t=H[m+24>>2];D=c-4|0;f=H[D>>2];a=-1;K:{if((f|0)==-1){break K}k=f+1|0;k=(k>>>0)%3|0?k:f-2|0;a=-1;if((k|0)==-1){break K}a=H[H[m>>2]+(k<<2)>>2]}b=H[t+(a<<2)>>2];if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}if((d|0)==(f|0)){b=-1;break D}if((f|0)!=-1){b=-1;if(H[H[m+12>>2]+(f<<2)>>2]!=-1){break D}}k=H[m+12>>2];if((d|0)!=-1){b=-1;if(H[k+(d<<2)>>2]!=-1){break D}}p=N(h,3);b=p+1|0;H[k+(f<<2)>>2]=b;w=b<<2;H[w+k>>2]=f;q=p+2|0;H[k+(d<<2)>>2]=q;y=q<<2;H[y+k>>2]=d;k=-1;h=-1;L:{if((f|0)==-1){break L}M:{if((f>>>0)%3|0){b=f-1|0;break M}b=f+2|0;h=-1;if((b|0)==-1){break L}}h=H[H[m>>2]+(b<<2)>>2]}N:{if((d|0)==-1){break N}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)==-1){break N}k=H[H[m>>2]+(b<<2)>>2]}b=-1;if((a|0)==(h|0)|(a|0)==(k|0)){break D}b=H[m>>2];H[b+(p<<2)>>2]=a;H[b+w>>2]=k;H[b+y>>2]=h;if((h|0)!=-1){H[t+(h<<2)>>2]=q}b=H[j+120>>2]+(a>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(a)&d,H[Q>>2]=R;H[D>>2]=p;k=H[c-4>>2];break J}b=-1;O:{P:{Q:{R:{S:{T:{U:{V:{W:{switch(a-1|0){case 2:case 4:if((c|0)==(g|0)){break D}t=c-4|0;d=H[t>>2];f=H[j+8>>2];m=H[f+12>>2];if((d|0)!=-1&H[m+(d<<2)>>2]!=-1){break D}k=N(h,3);p=(a|0)==5;q=k+(p?2:1)|0;w=q<<2;H[w+m>>2]=d;H[m+(d<<2)>>2]=q;Ka(f+24|0,11424);a=H[j+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(L|0)){break D}a=H[a>>2];y=a+w|0;b=H[f+28>>2];f=H[f+24>>2];w=(b-f>>2)-1|0;H[y>>2]=w;if((b|0)!=(f|0)){H[m+(w<<2)>>2]=q}b=p?k:k+2|0;q=a+(k+p<<2)|0;X:{if((d|0)==-1){H[a+(b<<2)>>2]=-1;b=-1;break X}Y:{Z:{_:{if((d>>>0)%3|0){f=d-1|0;break _}f=d+2|0;if((f|0)==-1){break Z}}f=H[a+(f<<2)>>2];H[a+(b<<2)>>2]=f;if((f|0)==-1){break Y}H[m+(f<<2)>>2]=b;break Y}H[a+(b<<2)>>2]=-1}f=d+1|0;d=(f>>>0)%3|0?f:d-2|0;b=-1;if((d|0)==-1){break X}b=H[a+(d<<2)>>2]}H[q>>2]=b;H[t>>2]=k;break V;case 0:if((c|0)==(d|0)){break D}a=c-4|0;m=H[a>>2];H[l+68>>2]=a;p=H[l+44>>2];$:{if(!p){c=a;break $}f=H[l+40>>2];q=Uj(p)>>>0>1;b=h&p+2147483647;aa:{if(!q){break aa}b=h;if(b>>>0<p>>>0){break aa}b=(h>>>0)%(p>>>0)|0}k=b;b=H[f+(k<<2)>>2];if(!b){c=a;break $}b=H[b>>2];if(!b){c=a;break $}ba:{if(!q){f=p-1|0;while(1){p=H[b+4>>2];ca:{if((p|0)!=(h|0)){if((k|0)==(f&p)){break ca}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}while(1){f=H[b+4>>2];da:{if((f|0)!=(h|0)){if(f>>>0>=p>>>0){f=(f>>>0)%(p>>>0)|0}if((f|0)==(k|0)){break da}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}if((a|0)!=(x|0)){H[a>>2]=H[b+12>>2];H[l+68>>2]=c;break $}a=x-d|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=a>>>1|0;f=a>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break B}a=pa(f<<2)}else{a=0}g=a+(g<<2)|0;H[g>>2]=H[b+12>>2];c=g+4|0;if((d|0)!=(x|0)){while(1){g=g-4|0;x=x-4|0;H[g>>2]=H[x>>2];if((d|0)!=(x|0)){continue}break}}x=a+(f<<2)|0;H[l+72>>2]=x;H[l+68>>2]=c;H[l+64>>2]=g;if(d){oa(d)}}if((c|0)==(g|0)){break P}w=c-4|0;a=H[w>>2];if((a|0)==(m|0)){break P}b=(a|0)==-1;p=H[j+8>>2];if(!b&H[H[p+12>>2]+(a<<2)>>2]!=-1){break P}q=H[p+12>>2];if((m|0)!=-1&H[q+(m<<2)>>2]!=-1){break P}k=N(h,3);t=k+2|0;H[q+(a<<2)>>2]=t;h=t<<2;H[h+q>>2]=a;d=k+1|0;H[q+(m<<2)>>2]=d;y=d<<2;H[y+q>>2]=m;if(b){break T}if((a>>>0)%3|0){f=a-1|0;break S}f=a+2|0;if((f|0)!=-1){break S}d=H[p>>2];f=-1;break R;case 6:break W;default:break D}}k=H[j+8>>2];Ka(k+24|0,11424);f=H[j+8>>2];a=N(h,3);m=H[k+28>>2];p=H[k+24>>2];q=m-p|0;k=q>>2;t=k-1|0;H[H[f>>2]+(a<<2)>>2]=t;Ka(f+24|0,11424);w=a+1|0;H[H[f>>2]+(w<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;f=H[j+8>>2];Ka(f+24|0,11424);y=a+2|0;H[H[f>>2]+(y<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;E=H[j+8>>2];f=H[E+24>>2];if(H[E+28>>2]-f>>2>(L|0)){break D}ea:{fa:{if((m|0)!=(p|0)){H[f+(t<<2)>>2]=a;b=0;if((q|0)==-4){break fa}}H[f+(k<<2)>>2]=w;b=k+1|0;if((b|0)==-1){break ea}}H[f+(b<<2)>>2]=y}if((c|0)!=(x|0)){H[c>>2]=a;c=c+4|0;H[l+68>>2]=c;break U}b=c-d|0;k=b>>2;g=k+1|0;if(g>>>0>=1073741824){break b}f=b>>>1|0;b=b>>>0>=2147483644?1073741823:g>>>0<f>>>0?f:g;if(b){if(b>>>0>=1073741824){break B}f=pa(b<<2)}else{f=0}g=f+(k<<2)|0;H[g>>2]=a;x=f+(b<<2)|0;a=g+4|0;if((c|0)!=(d|0)){while(1){g=g-4|0;c=c-4|0;H[g>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[l+72>>2]=x;H[l+68>>2]=a;H[l+64>>2]=g;if(d){oa(d)}c=a}d=g}Ce(r,H[c-4>>2]);a=H[j+40>>2];if((a|0)==H[j+36>>2]){break I}b=a-12|0;f=H[b+4>>2];h=(h^-1)+n|0;if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}k=I[a-4|0];f=H[b>>2];H[j+40>>2]=b;if((f|0)<0){break P}m=c-4|0;a=H[m>>2];H[l+20>>2]=(f^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);f=H[l>>2];ga:{if(k&1){b=-1;if((a|0)==-1){break ga}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ga}b=-1;if((a|0)==-1){break ga}b=a-1|0;if((a>>>0)%3|0){break ga}b=a+2|0}H[f+12>>2]=b;b=H[j+40>>2];if((b|0)==H[j+36>>2]){break I}while(1){a=b-12|0;f=H[a+4>>2];if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}f=I[b-4|0];b=H[a>>2];H[j+40>>2]=a;if((b|0)<0){break P}a=H[m>>2];H[l+20>>2]=(b^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);k=H[l>>2];ha:{if(f&1){b=-1;if((a|0)==-1){break ha}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ha}b=-1;if((a|0)==-1){break ha}b=a-1|0;if((a>>>0)%3|0){break ha}b=a+2|0}H[k+12>>2]=b;b=H[j+40>>2];if((b|0)!=H[j+36>>2]){continue}break}break I}f=-1;d=H[p>>2];H[d+(k<<2)>>2]=-1;b=-1;break Q}d=H[p>>2];f=H[d+(f<<2)>>2]}H[(k<<2)+d>>2]=f;E=a+1|0;a=(E>>>0)%3|0?E:a-2|0;b=-1;if((a|0)==-1){break Q}b=H[(a<<2)+d>>2]}H[d+y>>2]=b;ia:{if((m|0)==-1){H[d+h>>2]=-1;t=-1;a=-1;break ia}ja:{ka:{la:{if((m>>>0)%3|0){b=m-1|0;break la}b=m+2|0;if((b|0)==-1){break ka}}a=H[(b<<2)+d>>2];H[d+h>>2]=a;if((a|0)==-1){break ja}H[H[p+24>>2]+(a<<2)>>2]=t;break ja}H[d+h>>2]=-1}t=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ia}t=H[(b<<2)+d>>2];a=b}b=H[j+388>>2];h=f<<2;m=b+h|0;y=b;b=t<<2;H[m>>2]=H[m>>2]+H[y+b>>2];m=b;b=H[p+24>>2];m=m+b|0;if((f|0)!=-1){H[b+h>>2]=H[m>>2]}b=a;while(1){if((b|0)==-1){break O}H[(b<<2)+d>>2]=f;p=b+1|0;b=(p>>>0)%3|0?p:b-2|0;h=-1;ma:{if((b|0)==-1){break ma}b=H[q+(b<<2)>>2];h=-1;if((b|0)==-1){break ma}h=b+1|0;h=(h>>>0)%3|0?h:b-2|0}b=h;if((a|0)!=(b|0)){continue}break}}b=-1;if(!D){break E}break D}H[m>>2]=-1;na:{if(P){break na}if((z|0)!=(A|0)){H[A>>2]=t;A=A+4|0;H[l+28>>2]=A;break na}a=z-o|0;h=a>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=a>>>1|0;d=a>>>0>=2147483644?1073741823:b>>>0<d>>>0?d:b;if(d){if(d>>>0>=1073741824){break B}a=pa(d<<2)}else{a=0}b=a+(h<<2)|0;H[b>>2]=t;A=b+4|0;if((o|0)!=(z|0)){while(1){b=b-4|0;z=z-4|0;H[b>>2]=H[z>>2];if((o|0)!=(z|0)){continue}break}}z=a+(d<<2)|0;H[l+32>>2]=z;H[l+28>>2]=A;H[l+24>>2]=b;if(o){oa(o)}o=b}H[w>>2]=k}Ce(r,k);d=g}D=(i|0)<(n|0);if((i|0)!=(n|0)){continue}break}i=n}b=-1;d=H[j+8>>2];if(H[d+28>>2]-H[d+24>>2]>>2>(L|0)){break D}if((c|0)!=(g|0)){x=j+72|0;h=j+60|0;p=j+312|0;while(1){c=c-4|0;o=H[c>>2];H[l+68>>2]=c;oa:{pa:{qa:{if(J[j+270>>1]<=513){if(!I[j+364|0]){break pa}a=H[j+360>>2];b=H[j+352>>2]+(a>>>3|0)|0;if(b>>>0>=K[j+356>>2]){break qa}b=I[b|0];H[j+360>>2]=a+1;if(!(b>>>(a&7)&1)){break qa}break pa}if(Ba(p)){break pa}}b=H[j+64>>2];a=H[j+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break b}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}pb(h,a);b=H[j+64>>2]}H[j+64>>2]=b+1;a=H[j+60>>2]+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;b=H[j+76>>2];if((b|0)!=H[j+80>>2]){H[b>>2]=o;H[j+76>>2]=b+4;break oa}d=H[x>>2];a=b-d|0;k=a>>2;f=k+1|0;if(f>>>0<1073741824){n=a>>>1|0;n=a>>>0>=2147483644?1073741823:f>>>0<n>>>0?n:f;if(n){if(n>>>0>=1073741824){break B}a=pa(n<<2)}else{a=0}f=a+(k<<2)|0;H[f>>2]=o;o=f+4|0;if((b|0)!=(d|0)){while(1){f=f-4|0;b=b-4|0;H[f>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[j+80>>2]=a+(n<<2);H[j+76>>2]=o;H[j+72>>2]=f;if(!d){break oa}oa(d);break oa}break b}m=H[j+8>>2];r=H[m>>2];if(((H[m+4>>2]-r>>2>>>0)/3|0)<=(i|0)){b=-1;break D}d=-1;q=H[m+24>>2];n=-1;ra:{if((o|0)==-1){break ra}g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;n=-1;if((g|0)==-1){break ra}n=H[r+(g<<2)>>2]}a=H[q+(n<<2)>>2];sa:{if((a|0)==-1){k=1;f=-1;break sa}k=1;f=-1;b=a+1|0;a=(b>>>0)%3|0?b:a-2|0;if((a|0)==-1){break sa}k=0;d=a;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){f=H[r+(b<<2)>>2]}}b=-1;g=-1;a=H[q+(f<<2)>>2];if((a|0)!=-1){g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}if((d|0)==(o|0)|(g|0)==(o|0)|((o|0)!=-1&H[H[m+12>>2]+(o<<2)>>2]!=-1|(d|0)==(g|0))){break D}if(!k&H[H[m+12>>2]+(d<<2)>>2]!=-1){break D}k=-1;a=H[m+12>>2];m=-1;ta:{if((g|0)==-1){break ta}if(H[a+(g<<2)>>2]!=-1){break D}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;m=-1;if((b|0)==-1){break ta}m=H[r+(b<<2)>>2]}b=N(i,3);H[l>>2]=b;H[a+(b<<2)>>2]=o;H[a+(o<<2)>>2]=b;b=H[l>>2]+1|0;H[a+(b<<2)>>2]=d;H[a+(d<<2)>>2]=b;b=H[l>>2]+2|0;H[a+(b<<2)>>2]=g;H[a+(g<<2)>>2]=b;a=H[l>>2];H[r+(a<<2)>>2]=f;b=a+1|0;d=r+(b<<2)|0;H[d>>2]=m;g=a+2|0;o=r+(g<<2)|0;H[o>>2]=n;a=H[j+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;r=H[n>>2];Q=n,R=Vj(f)&r,H[Q>>2]=R;k=(b|0)!=-1?H[d>>2]:k;b=a+(k>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(k)&d,H[Q>>2]=R;b=-1;b=(g|0)!=-1?H[o>>2]:b;a=a+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;F[l+88|0]=1;_c(h,l+88|0);Ka(x,l);i=i+1|0;g=H[l+64>>2]}if((c|0)!=(g|0)){continue}break}d=H[j+8>>2]}b=-1;if(((H[d+4>>2]-H[d>>2]>>2>>>0)/3|0)!=(i|0)){break D}b=H[d+28>>2]-H[d+24>>2]>>2;i=H[l+24>>2];f=H[l+28>>2];if((i|0)==(f|0)){break C}while(1){a=H[i>>2];h=H[d+24>>2];c=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){while(1){c=b-2|0;b=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){continue}break}}if(a>>>0<=c>>>0){H[l>>2]=d;g=H[g>>2];F[l+12|0]=1;H[l+8>>2]=g;H[l+4>>2]=g;if((g|0)!=-1){while(1){d=H[H[j+8>>2]>>2]+(g<<2)|0;if(H[d>>2]!=(c|0)){b=-1;break D}H[d>>2]=a;uc(l);g=H[l+8>>2];if((g|0)!=-1){continue}break}d=H[j+8>>2]}h=H[d+24>>2];g=h+(c<<2)|0;if((a|0)!=-1){H[h+(a<<2)>>2]=H[g>>2]}H[g>>2]=-1;g=1<<a;h=H[j+120>>2];a=h+(a>>>3&536870908)|0;h=h+(c>>>3&536870908)|0;c=1<<c;if(H[h>>2]&c){g=g|H[a>>2]}else{g=H[a>>2]&(g^-1)}H[a>>2]=g;H[h>>2]=H[h>>2]&(c^-1);b=b-1|0}i=i+4|0;if((f|0)!=(i|0)){continue}break}}i=H[l+24>>2]}if(i){oa(i)}a=H[l+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[l+40>>2];H[l+40>>2]=0;if(a){oa(a)}a=H[l+64>>2];if(a){H[l+68>>2]=a;oa(a)}ca=l+96|0;break A}wa();v()}if((b|0)==-1){break z}a=O;c=H[a+16>>2];d=c+H[a>>2]|0;c=H[a+8>>2]-c|0;a=H[H[j+4>>2]+32>>2];G[a+38>>1]=J[a+38>>1];H[a>>2]=d;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=c;H[a+12>>2]=0;a=H[j+4>>2];c=J[a+36>>1];g=c<<8|c>>>8;if((g&65535)>>>0<=513){a=H[a+32>>2];c=H[a+16>>2];d=M+H[a+20>>2]|0;c=c+C|0;d=c>>>0<C>>>0?d+1|0:d;H[a+16>>2]=c;H[a+20>>2]=d}ua:{if(H[j+216>>2]==H[j+220>>2]){break ua}c=H[j+8>>2];a=H[c>>2];c=H[c+4>>2];va:{if((g&65535)>>>0>=513){if((a|0)==(c|0)){break ua}c=0;break va}if((a|0)==(c|0)){break ua}c=0;while(1){if(cd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}while(1){if(bd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}ad(e);c=H[j+216>>2];if((c|0)!=H[j+220>>2]){n=0;while(1){d=N(n,144);Jc((d+c|0)+4|0,H[j+8>>2]);a=H[B>>2];e=a+d|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((d+H[B>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[B>>2]}if(!Ic((a+d|0)+4|0)){break z}n=n+1|0;c=H[j+216>>2];if(n>>>0<(H[j+220>>2]-c|0)/144>>>0){continue}break}}a=H[j+8>>2];Hb(j+184|0,H[a+28>>2]-H[a+24>>2]>>2);u=H[j+216>>2];if((u|0)!=H[j+220>>2]){c=0;while(1){a=N(c,144)+u|0;d=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[j+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(d|0)?d:a);c=c+1|0;u=H[j+216>>2];if(c>>>0<(H[j+220>>2]-u|0)/144>>>0){continue}break}}u=$c(j,b)}break c}u=0}ca=s- -64|0;return u|0}sa();v()}function ii(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0;u=ca+-64|0;ca=u;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}c=0;H[a+144>>2]=0;k=H[a+140>>2];a:{if(!k){break a}if(k>>>0>=4){b=k&-4;while(1){f=c<<2;H[f+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(f|4)>>2]=0;H[H[a+136>>2]+(f|8)>>2]=0;H[H[a+136>>2]+(f|12)>>2]=0;c=c+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=k&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;w=w+1|0;if((b|0)!=(w|0)){continue}break}}H[a+148>>2]=0}b:{c:{c=H[a+4>>2];w=I[c+36|0];b=w<<8|I[c+37|0];if(b>>>0<=513){d=H[c+32>>2];d:{if(b>>>0<=511){b=H[d+20>>2];e=H[d+16>>2];f=e+4|0;b=f>>>0<4?b+1|0:b;k=H[d+12>>2];if(K[d+8>>2]<f>>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break c}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=b;break d}if(!Ea(1,u,d)){break c}c=H[a+4>>2];w=I[c+36|0];e=H[u>>2]}H[a+132>>2]=e}d=H[c+32>>2];e:{f:{g:{if((w&255)>>>0<=1){w=0;b=H[d+20>>2];f=H[d+16>>2];e=f+4|0;b=e>>>0<4?b+1|0:b;k=H[d+12>>2];if(K[d+8>>2]<e>>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break b}f=f+H[d>>2]|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+60>>2]=f;H[d+16>>2]=e;H[d+20>>2]=b;H[a+156>>2]=f;t=a+156|0;break g}w=0;if(!Ea(1,u+60|0,d)){break b}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[u+60>>2];t=a+156|0;if(b>>>0>1){break f}}d=H[c+32>>2];f=H[d+8>>2];k=H[d+12>>2];c=H[d+20>>2];e=H[d+16>>2];b=e+4|0;c=b>>>0<4?c+1|0:c;if(b>>>0>f>>>0&(c|0)>=(k|0)|(c|0)>(k|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[u+56>>2]=e;H[d+16>>2]=b;H[d+20>>2]=c;break e}if(!Ea(1,u+56|0,H[c+32>>2])){break b}e=H[u+56>>2]}if(e>>>0>1431655765){break b}b=H[t>>2];c=N(e,3);if(b>>>0>c>>>0){break b}f=c>>>1|0;c=b>>31;c=Rj(b-1|0,c-!b|0,b,c);k=da;b=k>>>1|0;c=(k&1)<<31|c>>>1;if(!b&c>>>0<f>>>0){break b}E=H[a+4>>2];x=H[E+32>>2];c=H[x+8>>2];d=H[x+12>>2];b=H[x+20>>2];g=H[x+16>>2];if((d|0)<=(b|0)&g>>>0>=c>>>0|(b|0)>(d|0)){break b}j=H[x>>2];l=I[j+g|0];f=x;k=g+1|0;h=k?b:b+1|0;H[f+16>>2]=k;H[f+20>>2]=h;h:{if(I[E+36|0]<=1){f=c;c=b;b=g+5|0;c=b>>>0<5?c+1|0:c;if(b>>>0>f>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}f=k+j|0;t=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+52>>2]=t;H[x+16>>2]=b;H[x+20>>2]=c;break h}if(!Ea(1,u+52|0,x)){break b}t=H[u+52>>2]}if(e>>>0<t>>>0|((t>>>0)/3|0)+t>>>0<e>>>0){break b}c=H[a+4>>2];d=H[c+32>>2];i:{if(I[c+36|0]<=1){c=H[d+20>>2];b=H[d+16>>2];f=b+4|0;c=f>>>0<4?c+1|0:c;k=H[d+12>>2];if(K[d+8>>2]<f>>>0&(k|0)<=(c|0)|(c|0)>(k|0)){break b}b=b+H[d>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[u+48>>2]=b;H[d+16>>2]=f;H[d+20>>2]=c;break i}if(!Ea(1,u+48|0,d)){break b}b=H[u+48>>2]}if(b>>>0>t>>>0){break b}H[a+28>>2]=H[a+24>>2];c=$b(pa(88));f=H[a+8>>2];H[a+8>>2]=c;if(f){cb(f);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];M=a+216|0;ed(M);dd(M,l);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}c=H[a+156>>2];F[u|0]=1;Oa(a+120|0,b+c|0,u);e=H[a+4>>2];c=J[e+36>>1];c=(c<<8|c>>>8)&65535;j:{if(c>>>0<=513){d=H[e+32>>2];k:{if(c>>>0<=511){c=H[d+20>>2];e=H[d+16>>2];f=e+4|0;c=f>>>0<4?c+1|0:c;k=H[d+12>>2];if(K[d+8>>2]<f>>>0&(k|0)<=(c|0)|(c|0)>(k|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=c;break k}if(!Ea(1,u+44|0,d)){break b}e=H[u+44>>2]}if(!e){break b}d=H[H[a+4>>2]+32>>2];k=H[d+8>>2];c=H[d+16>>2];f=k-c|0;c=H[d+12>>2]-(H[d+20>>2]+(c>>>0>k>>>0)|0)|0;if((c|0)<=0&e>>>0>f>>>0|(c|0)<0){break b}h=Ha(u);d=H[H[a+4>>2]+32>>2];c=d;k=H[c+16>>2];f=(k+H[c>>2]|0)+e|0;c=H[c+8>>2]-k|0;G[h+38>>1]=J[d+38>>1];H[h>>2]=f;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=c-e;H[h+12>>2]=0;c=Ib(a,h);if((c|0)==-1){break b}E=c;P=c>>31;break j}E=-1;P=-1;if((Ib(a,H[e+32>>2])|0)==-1){break b}}B=a+232|0;Ee(B,a);H[a+372>>2]=l;H[a+384>>2]=H[a+156>>2]+b;x=Ha(u);h=x;d=0;k=ca-16|0;ca=k;l:{if(!Ge(B,h)){break l}b=H[h+20>>2];e=H[h+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;f=H[h+12>>2];if(K[h+8>>2]<c>>>0&(f|0)<=(b|0)|(b|0)>(f|0)){break l}e=e+H[h>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[h+16>>2]=c;H[h+20>>2]=b;if((e|0)<0){break l}c=e;e=H[B+152>>2];if((c|0)>=(e|0)){break l}H[k+12>>2]=0;c=H[B+156>>2];b=H[B+160>>2]-c>>2;m:{if(b>>>0<e>>>0){Pa(B+156|0,e-b|0,k+12|0);break m}if(b>>>0<=e>>>0){break m}H[B+160>>2]=c+(e<<2)}d=ta(B+168|0,h)}ca=k+16|0;n:{if(!d){break n}d=0;c=0;e=0;k=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;O=H[a+124>>2];o:{p:{q:{r:{s:{t:{if((t|0)<=0){break t}z=h+400|0;Q=h+232|0;C=H[h+216>>2]!=H[h+220>>2];y=1;while(1){f=k;k=f+1|0;u:{v:{w:{x:{y:{if(H[h+420>>2]!=-1){if(Ba(z)){break y}}if(!I[h+308|0]){break x}z:{o=H[h+296>>2];r=H[h+304>>2];a=o+(r>>>3|0)|0;l=H[h+300>>2];if(a>>>0>=l>>>0){break z}b=I[a|0];a=r+1|0;H[h+304>>2]=a;g=b>>>(r&7)&1;if(!g){break z}n=a>>>3|0;b=o+n|0;A:{if(b>>>0>=l>>>0){b=a;a=0;break A}j=I[b|0];b=r+2|0;H[h+304>>2]=b;n=b>>>3|0;a=j>>>(a&7)&1}j=n+o|0;if(j>>>0<l>>>0){j=I[j|0];H[h+304>>2]=b+1;b=j>>>(b&7)<<1&2}else{b=0}p=(a|b)<<1|g;H[h+416>>2]=p;break w}H[h+416>>2]=0;break x}p=H[h+420>>2];H[h+416>>2]=p;if(p){break w}}if((c|0)==(e|0)){b=-1;break s}p=-1;n=H[h+8>>2];o=H[n+24>>2];j=c-4|0;m=H[j>>2];d=-1;B:{if((m|0)==-1){break B}b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;d=-1;if((b|0)==-1){break B}d=H[H[n>>2]+(b<<2)>>2]}b=H[o+(d<<2)>>2];if((b|0)!=-1){a=b+1|0;p=(a>>>0)%3|0?a:b-2|0}if((m|0)==(p|0)){b=-1;break s}if((m|0)!=-1){b=-1;if(H[H[n+12>>2]+(m<<2)>>2]!=-1){break s}}l=H[n+12>>2];if((p|0)!=-1){b=-1;if(H[l+(p<<2)>>2]!=-1){break s}}q=N(f,3);a=q+1|0;H[l+(m<<2)>>2]=a;g=a<<2;H[g+l>>2]=m;r=q+2|0;H[l+(p<<2)>>2]=r;f=r<<2;H[f+l>>2]=p;l=-1;a=-1;C:{if((m|0)==-1){break C}D:{if((m>>>0)%3|0){b=m-1|0;break D}b=m+2|0;a=-1;if((b|0)==-1){break C}}a=H[H[n>>2]+(b<<2)>>2]}E:{if((p|0)==-1){break E}b=p+1|0;b=(b>>>0)%3|0?b:p-2|0;if((b|0)==-1){break E}l=H[H[n>>2]+(b<<2)>>2]}b=-1;if((a|0)==(d|0)|(d|0)==(l|0)){break s}b=H[n>>2];H[b+(q<<2)>>2]=d;H[b+g>>2]=l;H[b+f>>2]=a;if((a|0)!=-1){H[o+(a<<2)>>2]=r}b=H[h+120>>2]+(d>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(d)&a,H[R>>2]=S;H[j>>2]=q;p=H[c-4>>2];break v}b=-1;F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{P:{switch(p-1|0){case 2:case 4:if((c|0)==(e|0)){break s}g=c-4|0;m=H[g>>2];r=H[h+8>>2];d=H[r+12>>2];if((m|0)!=-1&H[d+(m<<2)>>2]!=-1){break s}q=N(f,3);l=(p|0)==5;j=q+(l?2:1)|0;a=j<<2;H[a+d>>2]=m;H[d+(m<<2)>>2]=j;Ka(r+24|0,11424);d=H[h+8>>2];o=H[d+24>>2];if(H[d+28>>2]-o>>2>(O|0)){break s}n=H[d>>2];p=n+a|0;d=H[r+28>>2];b=H[r+24>>2];a=(d-b>>2)-1|0;H[p>>2]=a;if((b|0)!=(d|0)){H[o+(a<<2)>>2]=j}d=l?q:q+2|0;j=n+(l+q<<2)|0;Q:{if((m|0)==-1){H[n+(d<<2)>>2]=-1;b=-1;break Q}R:{S:{T:{if((m>>>0)%3|0){a=m-1|0;break T}a=m+2|0;if((a|0)==-1){break S}}a=H[n+(a<<2)>>2];H[n+(d<<2)>>2]=a;if((a|0)==-1){break R}H[o+(a<<2)>>2]=d;break R}H[n+(d<<2)>>2]=-1}a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;b=-1;if((a|0)==-1){break Q}b=H[n+(a<<2)>>2]}H[j>>2]=b;H[g>>2]=q;break O;case 0:if((c|0)==(d|0)){break s}a=c-4|0;m=H[a>>2];H[i+68>>2]=a;l=H[i+44>>2];U:{if(!l){c=a;break U}o=H[i+40>>2];g=Uj(l)>>>0>1;b=f&l+2147483647;V:{if(!g){break V}b=f;if(b>>>0<l>>>0){break V}b=(f>>>0)%(l>>>0)|0}j=b;b=H[o+(j<<2)>>2];if(!b){c=a;break U}b=H[b>>2];if(!b){c=a;break U}W:{if(!g){l=l-1|0;while(1){g=H[b+4>>2];X:{if((g|0)!=(f|0)){if((j|0)==(g&l)){break X}c=a;break U}if((f|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}while(1){g=H[b+4>>2];Y:{if((g|0)!=(f|0)){if(g>>>0>=l>>>0){g=(g>>>0)%(l>>>0)|0}if((g|0)==(j|0)){break Y}c=a;break U}if((f|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}if((a|0)!=(A|0)){H[a>>2]=H[b+12>>2];H[i+68>>2]=c;break U}g=A-d|0;c=g>>2;e=c+1|0;if(e>>>0>=1073741824){break M}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}e=a+(c<<2)|0;H[e>>2]=H[b+12>>2];c=e+4|0;if((d|0)!=(A|0)){while(1){e=e-4|0;A=A-4|0;H[e>>2]=H[A>>2];if((d|0)!=(A|0)){continue}break}}A=a+(g<<2)|0;H[i+72>>2]=A;H[i+68>>2]=c;H[i+64>>2]=e;if(d){oa(d)}}if((c|0)==(e|0)){break G}j=c-4|0;n=H[j>>2];if((n|0)==(m|0)){break G}d=(n|0)==-1;q=H[h+8>>2];if(!d&H[H[q+12>>2]+(n<<2)>>2]!=-1){break G}r=H[q+12>>2];if((m|0)!=-1&H[r+(m<<2)>>2]!=-1){break G}p=N(f,3);f=p+2|0;H[r+(n<<2)>>2]=f;o=f<<2;H[o+r>>2]=n;a=p+1|0;H[r+(m<<2)>>2]=a;b=a<<2;H[b+r>>2]=m;if(d){break L}if((n>>>0)%3|0){l=n-1|0;break J}l=n+2|0;if((l|0)!=-1){break J}d=H[q>>2];a=-1;break I;case 6:break P;default:break s}}a=H[h+8>>2];Ka(a+24|0,11424);g=H[h+8>>2];p=N(f,3);q=H[a+28>>2];r=H[a+24>>2];o=q-r|0;n=o>>2;l=n-1|0;H[H[g>>2]+(p<<2)>>2]=l;Ka(g+24|0,11424);j=p+1|0;H[H[g>>2]+(j<<2)>>2]=(H[g+28>>2]-H[g+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);g=p+2|0;H[H[a>>2]+(g<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(O|0)){break s}Z:{_:{if((q|0)!=(r|0)){H[m+(l<<2)>>2]=p;b=0;if((o|0)==-4){break _}}H[m+(n<<2)>>2]=j;b=n+1|0;if((b|0)==-1){break Z}}H[m+(b<<2)>>2]=g}if((c|0)!=(A|0)){H[c>>2]=p;c=c+4|0;H[i+68>>2]=c;break N}g=c-d|0;b=g>>2;e=b+1|0;if(e>>>0>=1073741824){break K}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}e=a+(b<<2)|0;H[e>>2]=p;A=a+(g<<2)|0;a=e+4|0;if((c|0)!=(d|0)){while(1){e=e-4|0;c=c-4|0;H[e>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[i+72>>2]=A;H[i+68>>2]=a;H[i+64>>2]=e;if(d){oa(d)}c=a}d=e}De(Q,H[c-4>>2]);g=H[h+40>>2];if((g|0)==H[h+36>>2]){break u}b=g-12|0;a=H[b+4>>2];l=(f^-1)+t|0;if(a>>>0>l>>>0){break G}if((a|0)!=(l|0)){break u}f=I[g-4|0];a=H[b>>2];H[h+40>>2]=b;if((a|0)<0){break G}g=c-4|0;j=H[g>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];$:{if(f&1){a=-1;if((j|0)==-1){break $}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break $}a=-1;if((j|0)==-1){break $}a=j-1|0;if((j>>>0)%3|0){break $}a=j+2|0}H[b+12>>2]=a;b=H[h+40>>2];if((b|0)==H[h+36>>2]){break u}while(1){j=b-12|0;a=H[j+4>>2];if(a>>>0>l>>>0){break G}if((a|0)!=(l|0)){break u}f=I[b-4|0];a=H[j>>2];H[h+40>>2]=j;if((a|0)<0){break G}j=H[g>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];aa:{if(f&1){a=-1;if((j|0)==-1){break aa}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break aa}a=-1;if((j|0)==-1){break aa}a=j-1|0;if((j>>>0)%3|0){break aa}a=j+2|0}H[b+12>>2]=a;b=H[h+40>>2];if((b|0)!=H[h+36>>2]){continue}break}break u}sa();v()}l=-1;d=H[q>>2];H[d+(p<<2)>>2]=-1;g=-1;break H}sa();v()}d=H[q>>2];a=H[d+(l<<2)>>2]}l=a;H[(p<<2)+d>>2]=a;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;g=-1;if((a|0)==-1){break H}g=H[(a<<2)+d>>2]}H[b+d>>2]=g;ba:{if((m|0)==-1){H[d+o>>2]=-1;n=-1;a=-1;break ba}ca:{da:{ea:{if((m>>>0)%3|0){b=m-1|0;break ea}b=m+2|0;if((b|0)==-1){break da}}a=H[(b<<2)+d>>2];H[d+o>>2]=a;if((a|0)==-1){break ca}H[H[q+24>>2]+(a<<2)>>2]=f;break ca}H[d+o>>2]=-1}n=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ba}n=H[(b<<2)+d>>2];a=b}g=H[h+388>>2];f=l<<2;b=g+f|0;o=b;m=H[b>>2];b=n<<2;H[o>>2]=m+H[b+g>>2];g=b;b=H[q+24>>2];o=g+b|0;if((l|0)!=-1){H[b+f>>2]=H[o>>2]}b=a;while(1){if((b|0)==-1){break F}H[(b<<2)+d>>2]=l;g=b+1|0;b=(g>>>0)%3|0?g:b-2|0;f=-1;fa:{if((b|0)==-1){break fa}g=H[r+(b<<2)>>2];f=-1;if((g|0)==-1){break fa}b=g+1|0;f=(b>>>0)%3|0?b:g-2|0}b=f;if((a|0)!=(b|0)){continue}break}}b=-1;if(!(y&1)){break t}break s}H[o>>2]=-1;ga:{if(C){break ga}if((D|0)!=(L|0)){H[L>>2]=n;L=L+4|0;H[i+28>>2]=L;break ga}d=D-s|0;b=d>>2;f=b+1|0;if(f>>>0>=1073741824){break q}a=d>>>1|0;f=d>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break p}a=pa(f<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;L=b+4|0;if((s|0)!=(D|0)){while(1){b=b-4|0;D=D-4|0;H[b>>2]=H[D>>2];if((s|0)!=(D|0)){continue}break}}D=a+(f<<2)|0;H[i+32>>2]=D;H[i+28>>2]=L;H[i+24>>2]=b;if(s){oa(s)}s=b}H[j>>2]=p}De(Q,p);d=e}y=(k|0)<(t|0);if((k|0)!=(t|0)){continue}break}k=t}b=-1;y=H[h+8>>2];if(H[y+28>>2]-H[y+24>>2]>>2>(O|0)){break s}if((c|0)!=(e|0)){r=h+72|0;j=h+60|0;t=h+312|0;while(1){c=c-4|0;z=H[c>>2];H[i+68>>2]=c;ha:{ia:{ja:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ia}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break ja}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break ja}break ia}if(Ba(t)){break ia}}ka:{la:{b=H[h+64>>2];f=H[h+68>>2];if((b|0)==f<<5){if((b+1|0)<0){break la}if(b>>>0<=1073741822){f=f<<6;b=(b&-32)+32|0;a=b>>>0<f>>>0?f:b}else{a=2147483647}pb(j,a);b=H[h+64>>2]}H[h+64>>2]=b+1;f=H[h+60>>2]+(b>>>3&536870908)|0;a=H[f>>2];R=f,S=Vj(b)&a,H[R>>2]=S;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=z;H[h+76>>2]=b+4;break ha}s=H[r>>2];g=b-s|0;f=g>>2;d=f+1|0;if(d>>>0>=1073741824){break ka}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}d=a+(f<<2)|0;H[d>>2]=z;f=d+4|0;if((b|0)!=(s|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(s|0)){continue}break}}H[h+80>>2]=a+(g<<2);H[h+76>>2]=f;H[h+72>>2]=d;if(!s){break ha}oa(s);break ha}sa();v()}sa();v()}q=H[h+8>>2];C=H[q>>2];if(((H[q+4>>2]-C>>2>>>0)/3|0)<=(k|0)){b=-1;break s}e=-1;b=-1;d=-1;s=H[q+24>>2];f=-1;ma:{if((z|0)==-1){break ma}a=z+1|0;a=(a>>>0)%3|0?a:z-2|0;f=-1;if((a|0)==-1){break ma}f=H[C+(a<<2)>>2]}o=H[s+(f<<2)>>2];na:{if((o|0)==-1){l=1;a=-1;break na}l=1;g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;a=-1;if((g|0)==-1){break na}l=0;a=g+1|0;e=g;a=(a>>>0)%3|0?a:e-2|0;if((a|0)!=-1){a=H[C+(a<<2)>>2]}else{a=-1}}g=H[(a<<2)+s>>2];if((g|0)!=-1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((e|0)==(z|0)|(d|0)==(z|0)|((z|0)!=-1&H[H[q+12>>2]+(z<<2)>>2]!=-1|(d|0)==(e|0))){break s}if(!l&H[H[q+12>>2]+(e<<2)>>2]!=-1){break s}l=-1;s=H[q+12>>2];g=-1;oa:{if((d|0)==-1){break oa}if(H[s+(d<<2)>>2]!=-1){break s}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;g=-1;if((b|0)==-1){break oa}g=H[C+(b<<2)>>2]}b=N(k,3);H[i>>2]=b;H[s+(b<<2)>>2]=z;H[s+(z<<2)>>2]=b;b=H[i>>2]+1|0;H[s+(b<<2)>>2]=e;H[s+(e<<2)>>2]=b;b=H[i>>2]+2|0;H[s+(b<<2)>>2]=d;H[s+(d<<2)>>2]=b;b=H[i>>2];H[C+(b<<2)>>2]=a;o=b+1|0;s=C+(o<<2)|0;H[s>>2]=g;g=b+2|0;d=C+(g<<2)|0;H[d>>2]=f;f=H[h+120>>2];e=o?a:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(e)&a,H[R>>2]=S;l=(o|0)!=-1?H[s>>2]:l;b=f+(l>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(l)&a,H[R>>2]=S;b=-1;b=(g|0)!=-1?H[d>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];R=e,S=Vj(b)&a,H[R>>2]=S;F[i+88|0]=1;_c(j,i+88|0);Ka(r,i);k=k+1|0;e=H[i+64>>2]}if((c|0)!=(e|0)){continue}break}y=H[h+8>>2]}b=-1;if(((H[y+4>>2]-H[y>>2]>>2>>>0)/3|0)!=(k|0)){break s}b=H[y+28>>2]-H[y+24>>2]>>2;k=H[i+24>>2];f=H[i+28>>2];if((k|0)==(f|0)){break r}while(1){j=H[k>>2];a=H[y+24>>2];c=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){while(1){c=b-2|0;b=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){continue}break}}if(c>>>0>=j>>>0){H[i>>2]=y;d=H[d>>2];F[i+12|0]=1;H[i+8>>2]=d;H[i+4>>2]=d;if((d|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(d<<2)|0;if(H[a>>2]!=(c|0)){b=-1;break s}H[a>>2]=j;uc(i);d=H[i+8>>2];if((d|0)!=-1){continue}break}y=H[h+8>>2]}a=H[y+24>>2];e=a+(c<<2)|0;if((j|0)!=-1){H[a+(j<<2)>>2]=H[e>>2]}H[e>>2]=-1;g=1<<j;a=H[h+120>>2];e=a+(j>>>3&536870908)|0;d=a+(c>>>3&536870908)|0;a=1<<c;if(H[d>>2]&a){c=g|H[e>>2]}else{c=H[e>>2]&(g^-1)}H[e>>2]=c;H[d>>2]=H[d>>2]&(a^-1);b=b-1|0}k=k+4|0;if((f|0)!=(k|0)){continue}break}}k=H[i+24>>2]}if(k){oa(k)}a=H[i+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;break o}sa();v()}wa();v()}if((b|0)==-1){break n}e=H[x+16>>2];c=e+H[x>>2]|0;a=H[x+8>>2]-e|0;e=H[H[h+4>>2]+32>>2];G[e+38>>1]=J[e+38>>1];H[e>>2]=c;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=a;H[e+12>>2]=0;c=H[h+4>>2];a=J[c+36>>1];e=a<<8|a>>>8;if((e&65535)>>>0<=513){c=H[c+32>>2];f=c;a=H[c+16>>2];c=P+H[c+20>>2]|0;a=a+E|0;c=a>>>0<E>>>0?c+1|0:c;H[f+16>>2]=a;H[f+20>>2]=c}pa:{if(H[h+216>>2]==H[h+220>>2]){break pa}a=H[h+8>>2];c=H[a>>2];a=H[a+4>>2];qa:{if((e&65535)>>>0>=513){if((a|0)==(c|0)){break pa}c=0;break qa}if((a|0)==(c|0)){break pa}c=0;while(1){if(cd(h,c)){c=c+3|0;a=H[h+8>>2];if(c>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}while(1){if(bd(h,c)){c=c+3|0;a=H[h+8>>2];if(c>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}ad(B);c=H[h+216>>2];if((c|0)!=H[h+220>>2]){t=0;while(1){f=N(t,144);Jc((f+c|0)+4|0,H[h+8>>2]);a=H[M>>2];e=a+f|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((f+H[M>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[M>>2]}if(!Ic((a+f|0)+4|0)){break n}t=t+1|0;c=H[h+216>>2];if(t>>>0<(H[h+220>>2]-c|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);w=H[h+216>>2];if((w|0)!=H[h+220>>2]){c=0;while(1){a=N(c,144)+w|0;e=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(e|0)?e:a);c=c+1|0;w=H[h+216>>2];if(c>>>0<(H[h+220>>2]-w|0)/144>>>0){continue}break}}w=$c(h,b)}break b}w=0}ca=u- -64|0;return w|0}function ki(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0;t=ca+-64|0;ca=t;H[a+132>>2]=0;if(H[a+148>>2]){d=H[a+144>>2];if(d){while(1){b=H[d>>2];oa(d);d=b;if(b){continue}break}}d=0;H[a+144>>2]=0;j=H[a+140>>2];a:{if(!j){break a}if(j>>>0>=4){b=j&-4;while(1){c=d<<2;H[c+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(c|4)>>2]=0;H[H[a+136>>2]+(c|8)>>2]=0;H[H[a+136>>2]+(c|12)>>2]=0;d=d+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=j&3;if(!b){break a}while(1){H[H[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;x=x+1|0;if((b|0)!=(x|0)){continue}break}}H[a+148>>2]=0}b:{c:{d=H[a+4>>2];x=I[d+36|0];b=x<<8|I[d+37|0];if(b>>>0<=513){f=H[d+32>>2];d:{if(b>>>0<=511){b=H[f+20>>2];e=H[f+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;j=H[f+12>>2];if(K[f+8>>2]<c>>>0&(j|0)<=(b|0)|(b|0)>(j|0)){break c}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[f+16>>2]=c;H[f+20>>2]=b;break d}if(!Ea(1,t,f)){break c}d=H[a+4>>2];x=I[d+36|0];e=H[t>>2]}H[a+132>>2]=e}f=H[d+32>>2];e:{f:{g:{if((x&255)>>>0<=1){x=0;b=H[f+20>>2];c=H[f+16>>2];e=c+4|0;b=e>>>0<4?b+1|0:b;j=H[f+12>>2];if(K[f+8>>2]<e>>>0&(j|0)<=(b|0)|(b|0)>(j|0)){break b}c=c+H[f>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+60>>2]=c;H[f+16>>2]=e;H[f+20>>2]=b;H[a+156>>2]=c;l=a+156|0;break g}x=0;if(!Ea(1,t+60|0,f)){break b}d=H[a+4>>2];b=I[d+36|0];H[a+156>>2]=H[t+60>>2];l=a+156|0;if(b>>>0>1){break f}}f=H[d+32>>2];c=H[f+8>>2];j=H[f+12>>2];d=H[f+20>>2];e=H[f+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){break b}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[t+56>>2]=e;H[f+16>>2]=b;H[f+20>>2]=d;break e}if(!Ea(1,t+56|0,H[d+32>>2])){break b}e=H[t+56>>2]}if(e>>>0>1431655765){break b}b=H[l>>2];d=N(e,3);if(b>>>0>d>>>0){break b}c=d>>>1|0;d=b>>31;d=Rj(b-1|0,d-!b|0,b,d);j=da;b=j>>>1|0;d=(j&1)<<31|d>>>1;if(!b&d>>>0<c>>>0){break b}k=H[a+4>>2];y=H[k+32>>2];d=H[y+8>>2];f=H[y+12>>2];b=H[y+20>>2];m=H[y+16>>2];if((f|0)<=(b|0)&m>>>0>=d>>>0|(b|0)>(f|0)){break b}l=H[y>>2];g=I[l+m|0];c=y;j=m+1|0;C=j?b:b+1|0;H[c+16>>2]=j;H[c+20>>2]=C;h:{if(I[k+36|0]<=1){c=d;d=b;b=m+5|0;d=b>>>0<5?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break b}c=j+l|0;l=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+52>>2]=l;H[y+16>>2]=b;H[y+20>>2]=d;break h}if(!Ea(1,t+52|0,y)){break b}l=H[t+52>>2]}if(e>>>0<l>>>0|((l>>>0)/3|0)+l>>>0<e>>>0){break b}d=H[a+4>>2];f=H[d+32>>2];i:{if(I[d+36|0]<=1){d=H[f+20>>2];b=H[f+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;j=H[f+12>>2];if(K[f+8>>2]<c>>>0&(j|0)<=(d|0)|(d|0)>(j|0)){break b}b=b+H[f>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[t+48>>2]=b;H[f+16>>2]=c;H[f+20>>2]=d;break i}if(!Ea(1,t+48|0,f)){break b}b=H[t+48>>2]}if(b>>>0>l>>>0){break b}H[a+28>>2]=H[a+24>>2];d=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=d;if(c){cb(c);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];E=a+216|0;ed(E);dd(E,g);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}d=H[a+156>>2];F[t|0]=1;Oa(a+120|0,b+d|0,t);b=H[a+4>>2];d=J[b+36>>1];d=(d<<8|d>>>8)&65535;j:{if(d>>>0<=513){j=H[b+32>>2];k:{if(d>>>0<=511){d=H[j+20>>2];e=H[j+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;c=H[j+12>>2];if(K[j+8>>2]<b>>>0&(c|0)<=(d|0)|(d|0)>(c|0)){break b}e=e+H[j>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[j+16>>2]=b;H[j+20>>2]=d;break k}if(!Ea(1,t+44|0,j)){break b}e=H[t+44>>2]}if(!e){break b}j=H[H[a+4>>2]+32>>2];c=H[j+8>>2];d=H[j+16>>2];b=c-d|0;d=H[j+12>>2]-(H[j+20>>2]+(d>>>0>c>>>0)|0)|0;if(b>>>0<e>>>0&(d|0)<=0|(d|0)<0){break b}f=Ha(t);j=H[H[a+4>>2]+32>>2];c=H[j+16>>2];b=(c+H[j>>2]|0)+e|0;d=H[j+8>>2]-c|0;G[f+38>>1]=J[j+38>>1];H[f>>2]=b;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=d-e;H[f+12>>2]=0;d=Ib(a,f);if((d|0)==-1){break b}y=d;M=d>>31;break j}y=-1;M=-1;if((Ib(a,H[b+32>>2])|0)==-1){break b}}O=a+232|0;e=O;H[e+144>>2]=a;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];b=H[d>>2]+H[d+16>>2]|0;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;P=e,Q=J[H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],G[P+38>>1]=Q;H[e>>2]=b;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=d;H[e+12>>2]=0;H[a+372>>2]=g;C=Ha(t);l:{if(!Ge(e,C)){break l}b=0;d=0;e=0;j=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;L=H[a+124>>2];m:{n:{o:{p:{q:{r:{if((l|0)<=0){break r}A=H[h+216>>2]!=H[h+220>>2];s=1;while(1){f=j;j=f+1|0;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{if(!I[h+308|0]){break G}u=H[h+296>>2];g=H[h+304>>2];a=u+(g>>>3|0)|0;p=H[h+300>>2];if(a>>>0>=p>>>0){break G}c=I[a|0];a=g+1|0;H[h+304>>2]=a;m=c>>>(g&7)&1;if(!m){break G}n=0;k=a>>>3|0;c=u+k|0;H:{if(c>>>0>=p>>>0){g=a;a=0;break H}c=I[c|0];g=g+2|0;H[h+304>>2]=g;k=g>>>3|0;a=c>>>(a&7)&1}c=k+u|0;if(c>>>0<p>>>0){c=I[c|0];H[h+304>>2]=g+1;n=c>>>(g&7)<<1&2}k=-1;a=m|(a|n)<<1;switch(a-1|0){case 6:break D;case 0:break E;case 2:case 4:break F;default:break q}}if((d|0)==(e|0)){k=-1;break q}g=-1;q=H[h+8>>2];u=H[q+24>>2];p=d-4|0;s=H[p>>2];c=-1;I:{if((s|0)==-1){break I}b=s+1|0;b=(b>>>0)%3|0?b:s-2|0;c=-1;if((b|0)==-1){break I}c=H[H[q>>2]+(b<<2)>>2]}b=H[u+(c<<2)>>2];if((b|0)!=-1){a=b+1|0;g=(a>>>0)%3|0?a:b-2|0}if((g|0)==(s|0)){k=-1;break q}if((s|0)!=-1){k=-1;if(H[H[q+12>>2]+(s<<2)>>2]!=-1){break q}}b=H[q+12>>2];if((g|0)!=-1){k=-1;if(H[b+(g<<2)>>2]!=-1){break q}}n=N(f,3);a=n+1|0;H[b+(s<<2)>>2]=a;m=a<<2;H[m+b>>2]=s;r=n+2|0;H[b+(g<<2)>>2]=r;f=r<<2;H[f+b>>2]=g;o=-1;a=-1;J:{if((s|0)==-1){break J}K:{if((s>>>0)%3|0){b=s-1|0;break K}b=s+2|0;a=-1;if((b|0)==-1){break J}}a=H[H[q>>2]+(b<<2)>>2]}L:{if((g|0)==-1){break L}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1){break L}o=H[H[q>>2]+(b<<2)>>2]}k=-1;if((a|0)==(c|0)|(c|0)==(o|0)){break q}b=H[q>>2];H[b+(n<<2)>>2]=c;H[b+m>>2]=o;H[b+f>>2]=a;if((a|0)!=-1){H[u+(a<<2)>>2]=r}b=H[h+120>>2]+(c>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(c)&a,H[P>>2]=Q;H[p>>2]=n;b=e;break s}if((d|0)==(e|0)){break q}m=d-4|0;n=H[m>>2];r=H[h+8>>2];b=H[r+12>>2];if((n|0)!=-1&H[b+(n<<2)>>2]!=-1){break q}o=N(f,3);p=(a|0)==5;g=o+(p?2:1)|0;a=g<<2;H[a+b>>2]=n;H[b+(n<<2)>>2]=g;Ka(r+24|0,11424);b=H[h+8>>2];u=H[b+24>>2];if(H[b+28>>2]-u>>2>(L|0)){break q}k=H[b>>2];q=k+a|0;c=H[r+28>>2];b=H[r+24>>2];a=(c-b>>2)-1|0;H[q>>2]=a;if((b|0)!=(c|0)){H[u+(a<<2)>>2]=g}c=p?o:o+2|0;g=k+(o+p<<2)|0;M:{if((n|0)==-1){H[k+(c<<2)>>2]=-1;b=-1;break M}N:{O:{P:{if((n>>>0)%3|0){a=n-1|0;break P}a=n+2|0;if((a|0)==-1){break O}}a=H[k+(a<<2)>>2];H[k+(c<<2)>>2]=a;if((a|0)==-1){break N}H[u+(a<<2)>>2]=c;break N}H[k+(c<<2)>>2]=-1}a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;b=-1;if((a|0)==-1){break M}b=H[k+(a<<2)>>2]}H[g>>2]=b;H[m>>2]=o;b=e;break y}if((b|0)==(d|0)){break q}a=d-4|0;q=H[a>>2];H[i+68>>2]=a;p=H[i+44>>2];Q:{if(!p){d=a;break Q}g=H[i+40>>2];k=Uj(p)>>>0>1;c=f&p+2147483647;R:{if(!k){break R}c=f;if(c>>>0<p>>>0){break R}c=(f>>>0)%(p>>>0)|0}m=c;c=H[g+(m<<2)>>2];if(!c){d=a;break Q}g=H[c>>2];if(!g){d=a;break Q}S:{if(!k){k=p-1|0;while(1){c=H[g+4>>2];T:{if((c|0)!=(f|0)){if((m|0)==(c&k)){break T}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}while(1){c=H[g+4>>2];U:{if((c|0)!=(f|0)){if(c>>>0>=p>>>0){c=(c>>>0)%(p>>>0)|0}if((c|0)==(m|0)){break U}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}if((a|0)!=(z|0)){H[a>>2]=H[g+12>>2];H[i+68>>2]=d;break Q}c=z-b|0;d=c>>2;e=d+1|0;if(e>>>0>=1073741824){break C}a=c>>>1|0;c=c>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(d<<2)|0;H[e>>2]=H[g+12>>2];d=e+4|0;if((b|0)!=(z|0)){while(1){e=e-4|0;z=z-4|0;H[e>>2]=H[z>>2];if((b|0)!=(z|0)){continue}break}}z=a+(c<<2)|0;H[i+72>>2]=z;H[i+68>>2]=d;H[i+64>>2]=e;if(b){oa(b)}}if((d|0)==(e|0)){break u}g=d-4|0;n=H[g>>2];if((n|0)==(q|0)){break u}b=(n|0)==-1;o=H[h+8>>2];if(!b&H[H[o+12>>2]+(n<<2)>>2]!=-1){break u}r=H[o+12>>2];if((q|0)!=-1&H[r+(q<<2)>>2]!=-1){break u}u=N(f,3);f=u+2|0;H[r+(n<<2)>>2]=f;p=f<<2;H[p+r>>2]=n;a=u+1|0;H[r+(q<<2)>>2]=a;c=a<<2;H[c+r>>2]=q;if(b){break B}if((n>>>0)%3|0){m=n-1|0;break x}m=n+2|0;if((m|0)!=-1){break x}a=H[o>>2];b=-1;break w}a=H[h+8>>2];Ka(a+24|0,11424);c=H[h+8>>2];q=N(f,3);r=H[a+28>>2];u=H[a+24>>2];p=r-u|0;o=p>>2;g=o-1|0;H[H[c>>2]+(q<<2)>>2]=g;Ka(c+24|0,11424);m=q+1|0;H[H[c>>2]+(m<<2)>>2]=(H[c+28>>2]-H[c+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);c=q+2|0;H[H[a>>2]+(c<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];n=H[a+24>>2];if(H[a+28>>2]-n>>2>(L|0)){break q}V:{W:{if((r|0)!=(u|0)){H[n+(g<<2)>>2]=q;k=0;if((p|0)==-4){break W}}H[n+(o<<2)>>2]=m;k=o+1|0;if((k|0)==-1){break V}}H[n+(k<<2)>>2]=c}if((d|0)!=(z|0)){H[d>>2]=q;d=d+4|0;H[i+68>>2]=d;break y}m=d-b|0;e=m>>2;c=e+1|0;if(c>>>0>=1073741824){break A}a=m>>>1|0;c=m>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(e<<2)|0;H[e>>2]=q;z=a+(c<<2)|0;a=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;H[e>>2]=H[d>>2];if((b|0)!=(d|0)){continue}break}}H[i+72>>2]=z;H[i+68>>2]=a;H[i+64>>2]=e;if(!b){break z}oa(b);break z}sa();v()}m=-1;a=H[o>>2];H[a+(u<<2)>>2]=-1;k=-1;break v}sa();v()}d=a;b=e}m=H[h+40>>2];if((m|0)==H[h+36>>2]){break s}c=m-12|0;a=H[c+4>>2];k=(f^-1)+l|0;if(a>>>0>k>>>0){break u}if((a|0)!=(k|0)){break s}f=I[m-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}m=d-4|0;g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];X:{if(f&1){a=-1;if((g|0)==-1){break X}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break X}a=-1;if((g|0)==-1){break X}a=g-1|0;if((g>>>0)%3|0){break X}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)==H[h+36>>2]){break s}while(1){c=g-12|0;a=H[c+4>>2];if(a>>>0>k>>>0){break u}if((a|0)!=(k|0)){break s}f=I[g-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];Y:{if(f&1){a=-1;if((g|0)==-1){break Y}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break Y}a=-1;if((g|0)==-1){break Y}a=g-1|0;if((g>>>0)%3|0){break Y}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)!=H[h+36>>2]){continue}break}break s}a=H[o>>2];b=H[a+(m<<2)>>2]}m=b;H[(u<<2)+a>>2]=b;b=n+1|0;b=(b>>>0)%3|0?b:n-2|0;k=-1;if((b|0)==-1){break v}k=H[(b<<2)+a>>2]}H[a+c>>2]=k;Z:{if((q|0)==-1){H[a+p>>2]=-1;n=-1;c=-1;break Z}_:{$:{aa:{if((q>>>0)%3|0){b=q-1|0;break aa}b=q+2|0;if((b|0)==-1){break $}}b=H[(b<<2)+a>>2];H[a+p>>2]=b;if((b|0)==-1){break _}H[H[o+24>>2]+(b<<2)>>2]=f;break _}H[a+p>>2]=-1}n=-1;b=q+1|0;b=(b>>>0)%3|0?b:q-2|0;c=-1;if((b|0)==-1){break Z}n=H[(b<<2)+a>>2];c=b}b=H[o+24>>2];p=b+(n<<2)|0;if((m|0)!=-1){H[b+(m<<2)>>2]=H[p>>2]}b=c;while(1){if((b|0)==-1){break t}H[(b<<2)+a>>2]=m;k=b+1|0;b=(k>>>0)%3|0?k:b-2|0;f=-1;ba:{if((b|0)==-1){break ba}k=H[r+(b<<2)>>2];f=-1;if((k|0)==-1){break ba}b=k+1|0;f=(b>>>0)%3|0?b:k-2|0}b=f;if((c|0)!=(b|0)){continue}break}}k=-1;if(!(s&1)){break r}break q}H[p>>2]=-1;ca:{if(A){break ca}if((B|0)!=(D|0)){H[D>>2]=n;D=D+4|0;H[i+28>>2]=D;break ca}f=B-w|0;b=f>>2;c=b+1|0;if(c>>>0>=1073741824){break o}a=f>>>1|0;c=f>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;D=b+4|0;if((w|0)!=(B|0)){while(1){b=b-4|0;B=B-4|0;H[b>>2]=H[B>>2];if((w|0)!=(B|0)){continue}break}}B=a+(c<<2)|0;H[i+32>>2]=B;H[i+28>>2]=D;H[i+24>>2]=b;if(w){oa(w)}w=b}H[g>>2]=u;b=e}s=(j|0)<(l|0);if((j|0)!=(l|0)){continue}break}j=l}k=-1;a=H[h+8>>2];if(H[a+28>>2]-H[a+24>>2]>>2>(L|0)){break q}if((d|0)!=(e|0)){u=h+72|0;m=h+60|0;p=h+312|0;while(1){d=d-4|0;o=H[d>>2];H[i+68>>2]=d;da:{ea:{fa:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ea}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break fa}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break fa}break ea}if(Ba(p)){break ea}}ga:{ha:{b=H[h+64>>2];c=H[h+68>>2];if((b|0)==c<<5){if((b+1|0)<0){break ha}if(b>>>0<=1073741822){c=c<<6;b=(b&-32)+32|0;a=b>>>0<c>>>0?c:b}else{a=2147483647}pb(m,a);b=H[h+64>>2]}H[h+64>>2]=b+1;c=H[h+60>>2]+(b>>>3&536870908)|0;a=H[c>>2];P=c,Q=Vj(b)&a,H[P>>2]=Q;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=o;H[h+76>>2]=b+4;break da}l=H[u>>2];w=b-l|0;c=w>>2;f=c+1|0;if(f>>>0>=1073741824){break ga}a=w>>>1|0;f=w>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break n}a=pa(f<<2)}else{a=0}g=a+(c<<2)|0;H[g>>2]=o;c=g+4|0;if((b|0)!=(l|0)){while(1){g=g-4|0;b=b-4|0;H[g>>2]=H[b>>2];if((b|0)!=(l|0)){continue}break}}H[h+80>>2]=a+(f<<2);H[h+76>>2]=c;H[h+72>>2]=g;if(!l){break da}oa(l);break da}sa();v()}sa();v()}r=H[h+8>>2];A=H[r>>2];if(((H[r+4>>2]-A>>2>>>0)/3|0)<=(j|0)){k=-1;break q}a=-1;k=-1;b=-1;w=H[r+24>>2];f=-1;ia:{if((o|0)==-1){break ia}e=o+1|0;e=(e>>>0)%3|0?e:o-2|0;f=-1;if((e|0)==-1){break ia}f=H[A+(e<<2)>>2]}l=H[w+(f<<2)>>2];ja:{if((l|0)==-1){g=1;e=-1;break ja}g=1;c=l+1|0;c=(c>>>0)%3|0?c:l-2|0;e=-1;if((c|0)==-1){break ja}g=0;a=c;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)!=-1){e=H[A+(e<<2)>>2]}else{e=-1}}c=H[(e<<2)+w>>2];if((c|0)!=-1){b=c+1|0;b=(b>>>0)%3|0?b:c-2|0}if((a|0)==(o|0)|(b|0)==(o|0)|((o|0)!=-1&H[H[r+12>>2]+(o<<2)>>2]!=-1|(a|0)==(b|0))){break q}if(!g&H[H[r+12>>2]+(a<<2)>>2]!=-1){break q}g=-1;l=H[r+12>>2];w=-1;ka:{if((b|0)==-1){break ka}if(H[l+(b<<2)>>2]!=-1){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;w=-1;if((c|0)==-1){break ka}w=H[A+(c<<2)>>2]}c=N(j,3);H[i>>2]=c;H[l+(c<<2)>>2]=o;H[l+(o<<2)>>2]=c;c=H[i>>2]+1|0;H[l+(c<<2)>>2]=a;H[l+(a<<2)>>2]=c;a=H[i>>2]+2|0;H[l+(a<<2)>>2]=b;H[l+(b<<2)>>2]=a;a=H[i>>2];H[A+(a<<2)>>2]=e;k=a+1|0;l=A+(k<<2)|0;H[l>>2]=w;w=a+2|0;c=A+(w<<2)|0;H[c>>2]=f;f=H[h+120>>2];e=k?e:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(e)&a,H[P>>2]=Q;g=(k|0)!=-1?H[l>>2]:g;b=f+(g>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(g)&a,H[P>>2]=Q;b=-1;b=(w|0)!=-1?H[c>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];P=e,Q=Vj(b)&a,H[P>>2]=Q;F[i+88|0]=1;_c(m,i+88|0);Ka(u,i);j=j+1|0;e=H[i+64>>2]}if((d|0)!=(e|0)){continue}break}a=H[h+8>>2]}k=-1;if(((H[a+4>>2]-H[a>>2]>>2>>>0)/3|0)!=(j|0)){break q}k=H[a+28>>2]-H[a+24>>2]>>2;s=H[i+24>>2];c=H[i+28>>2];if((s|0)==(c|0)){break p}while(1){j=H[s>>2];d=H[a+24>>2];b=k-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){while(1){b=k-2|0;k=k-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){continue}break}}if(b>>>0>=j>>>0){H[i>>2]=a;g=H[g>>2];F[i+12|0]=1;H[i+8>>2]=g;H[i+4>>2]=g;if((g|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(g<<2)|0;if(H[a>>2]!=(b|0)){k=-1;break q}H[a>>2]=j;uc(i);g=H[i+8>>2];if((g|0)!=-1){continue}break}a=H[h+8>>2]}d=H[a+24>>2];e=d+(b<<2)|0;if((j|0)!=-1){H[d+(j<<2)>>2]=H[e>>2]}H[e>>2]=-1;f=1<<j;d=H[h+120>>2];e=d+(j>>>3&536870908)|0;j=d+(b>>>3&536870908)|0;d=1<<b;if(H[j>>2]&d){b=f|H[e>>2]}else{b=H[e>>2]&(f^-1)}H[e>>2]=b;H[j>>2]=H[j>>2]&(d^-1);k=k-1|0}s=s+4|0;if((c|0)!=(s|0)){continue}break}}s=H[i+24>>2]}if(s){oa(s)}a=H[i+48>>2];if(a){while(1){d=H[a>>2];oa(a);a=d;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;a=k;break m}sa();v()}wa();v()}b=a;if((a|0)==-1){break l}e=H[C+16>>2];d=e+H[C>>2]|0;a=H[C+8>>2]-e|0;e=H[H[h+4>>2]+32>>2];G[e+38>>1]=J[e+38>>1];H[e>>2]=d;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=a;H[e+12>>2]=0;d=H[h+4>>2];a=J[d+36>>1];e=a<<8|a>>>8;if((e&65535)>>>0<=513){d=H[d+32>>2];c=d;a=H[c+16>>2];d=M+H[c+20>>2]|0;a=a+y|0;d=a>>>0<y>>>0?d+1|0:d;H[c+16>>2]=a;H[c+20>>2]=d}la:{if(H[h+216>>2]==H[h+220>>2]){break la}a=H[h+8>>2];d=H[a>>2];a=H[a+4>>2];ma:{if((e&65535)>>>0>=513){if((a|0)==(d|0)){break la}d=0;break ma}if((a|0)==(d|0)){break la}d=0;while(1){if(cd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}while(1){if(bd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}ad(O);d=H[h+216>>2];if((d|0)!=H[h+220>>2]){l=0;while(1){c=N(l,144);Jc((c+d|0)+4|0,H[h+8>>2]);a=H[E>>2];e=a+c|0;d=H[e+132>>2];e=H[e+136>>2];if((d|0)!=(e|0)){while(1){Hc((c+H[E>>2]|0)+4|0,H[d>>2]);d=d+4|0;if((e|0)!=(d|0)){continue}break}a=H[E>>2]}if(!Ic((a+c|0)+4|0)){break l}l=l+1|0;d=H[h+216>>2];if(l>>>0<(H[h+220>>2]-d|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);x=H[h+216>>2];if((x|0)!=H[h+220>>2]){d=0;while(1){a=N(d,144)+x|0;e=H[a+60>>2]-H[a+56>>2]>>2;c=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(c,(a|0)<(e|0)?e:a);d=d+1|0;x=H[h+216>>2];if(d>>>0<(H[h+220>>2]-x|0)/144>>>0){continue}break}}x=$c(h,b)}break b}x=0}ca=t- -64|0;return x|0}function Bg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0;B=c;c=0;m=ca-96|0;ca=m;l=m+16|0;ra(l,0,76);H[m+92>>2]=-1;H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;r=ca-16|0;ca=r;H[l+68>>2]=0;H[l+72>>2]=0;H[l>>2]=b;s=ca-16|0;ca=s;u=b;a=H[b+20>>2];a:{if((H[b+24>>2]-a|0)<=0){break a}a=H[a>>2];if((a|0)==-1){break a}c=H[H[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=H[u+100>>2];e=H[u+96>>2];H[s+8>>2]=0;H[s>>2]=0;H[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=pa(f);H[s>>2]=d;H[s+8>>2]=d+N(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ra(n,0,d);H[s+4>>2]=d+f;if(I[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=N(a,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;d=N(a|1,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=N(a,12);a=b+e|0;c=H[a+4>>2];e=H[a>>2];b=b+f|0;H[b+8>>2]=H[a+8>>2];H[b>>2]=e;H[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=H[c+68>>2];c=0;while(1){d=N(c,12);b=d+e|0;g=H[a+(H[b>>2]<<2)>>2];i=H[a+(H[b+4>>2]<<2)>>2];d=d+f|0;H[d+8>>2]=H[a+(H[b+8>>2]<<2)>>2];H[d+4>>2]=i;H[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;E=ca-16|0;ca=E;h=pa(88);$b(h);C=ca-16|0;ca=C;H[h+80>>2]=0;H[h+84>>2]=0;a=H[h+76>>2];H[h+76>>2]=0;if(a){oa(a)}H[h+68>>2]=0;H[h+72>>2]=0;b=h- -64|0;a=H[b>>2];H[b>>2]=0;if(a){oa(a)}g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;a=N(c,3);f=H[h>>2];e=H[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){ue(h,a-e|0);g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}H[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=H[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=N(d,12);j=e+a|0;f=b+e|0;H[j>>2]=H[f>>2];H[a+(e|4)>>2]=H[f+4>>2];H[j+8>>2]=H[f+8>>2];f=N(d|1,12);e=f+a|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=N(d,12);a=c+a|0;b=b+c|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}H[C+12>>2]=-1;a=0;e=0;g=0;f=ca-32|0;ca=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;n=H[h+12>>2];b=H[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){qb(h+12|0,i-b|0,13652);c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}H[h+16>>2]=n+(i<<2)}H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=pa(d);H[f+20>>2]=e;H[f+16>>2]=e;H[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=H[(a<<2)+j>>2];b=H[f+20>>2]-e>>2;q:{if(i>>>0<b>>>0){break q}H[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Pa(f+16|0,d-b|0,f);j=H[h>>2];c=H[h+4>>2];e=H[f+16>>2];break q}if(b>>>0<=d>>>0){break q}H[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;H[b>>2]=H[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0<i>>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=pa(d<<1);ra(d,255,i<<3)}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=H[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=pa(a);H[f>>2]=q;H[f+8>>2]=(t<<2)+q;b=ra(q,0,a);H[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;H[c+b>>2]=a;x=c|4;a=H[c+e>>2]+a|0;H[x+b>>2]=a;y=c|8;a=a+H[e+x>>2]|0;H[y+b>>2]=a;c=c|12;a=a+H[e+y>>2]|0;H[c+b>>2]=a;a=a+H[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;H[c+b>>2]=a;g=g+1|0;a=H[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=H[h+40>>2];y=H[h+12>>2];n=0;while(1){G=n<<2;a=G+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=H[(b<<2)+j>>2]}b=H[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=H[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;H[h+40>>2]=x;c=n+3|0;break t}p=H[a-4>>2]}a=p<<2;A=H[a+e>>2];v:{w:{if((A|0)<=0){break w}a=H[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=H[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=H[o+4>>2];if((o|0)!=-1){z=H[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=H[J>>2];K=(b<<3)+d|0;H[K+4>>2]=H[J+4>>2];H[K>>2]=z;if((z|0)!=-1){continue}}break}H[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}H[y+G>>2]=o;H[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=H[a+e>>2];if((k|0)<=0){break v}a=H[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(H[b>>2]==-1){H[b>>2]=p;H[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0<i>>>0){continue}break}break l}break i}sa();v()}H[w>>2]=t;if(q){oa(q)}if(d){oa(d)}a=H[f+16>>2];if(!a){break j}H[f+20>>2]=a;oa(a)}ca=f+32|0;x=(w|0)!=0;if(x){k=ca-32|0;ca=k;a=H[h>>2];g=H[h+4>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[k+24>>2]=b;H[k+20>>2]=0;H[k+16>>2]=c;Mc(k+16|0,a);g=H[h>>2];c=H[h+4>>2]}H[k+8>>2]=0;H[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=H[k+16>>2];A:{if(H[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=H[k>>2];H[k+4>>2]=c;e=H[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=H[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(H[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=H[k+16>>2]+(j>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<<j;a=j+1|0;f=(a>>>0)%3|0?a:j-2|0;g=H[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=H[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=H[(f<<2)+g>>2];q=H[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=H[a>>2]){break G}p=H[a+4>>2];t=H[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==H[a>>2]){t=-1;e=-1;p=H[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=H[(b<<2)+g>>2];H:{if(H[k+8>>2]!=(c|0)){H[c>>2]=b;H[c+4>>2]=f;c=c+8|0;H[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0<g>>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=pa(g<<3)}else{e=0}a=e+(p<<3)|0;H[a>>2]=b;H[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=H[c+4>>2];a=a-8|0;H[a>>2]=H[c>>2];H[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=H[k>>2]}H[k+8>>2]=e+(g<<3);H[k+4>>2]=b;H[k>>2]=a;if(c){oa(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=H[H[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=H[h>>2];break A}wa();v()}c=H[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){H[q+(t<<2)>>2]=-1}if((c|0)!=-1){H[q+(c<<2)>>2]=-1}H[q+(b<<2)>>2]=-1;H[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=H[h+4>>2];if(i>>>0<c-g>>2>>>0){continue}break}if(o){continue}}break}a=H[k>>2];if(a){oa(a)}a=H[k+16>>2];if(a){oa(a)}ca=k+32|0;n=0;g=ca-32|0;ca=g;e=H[C+12>>2];H[h+36>>2]=e;p=h+24|0;b=H[h+24>>2];a=H[h+28>>2]-b>>2;K:{L:{if(a>>>0<e>>>0){qb(p,e-a|0,13652);H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;break L}if(a>>>0>e>>>0){H[h+28>>2]=b+(e<<2)}H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=pa(a<<2);H[g+24>>2]=a;H[g+20>>2]=0;H[g+16>>2]=b;Mc(g+16|0,e)}a=H[h>>2];b=H[h+4>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[g+8>>2]=b;H[g+4>>2]=0;H[g>>2]=c;Mc(g,a);b=H[h>>2];a=H[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=N(n,3);d=(q<<2)+b|0;f=H[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=H[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=H[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=H[g>>2];while(1){f=k+q|0;if(!(H[(f>>>3&536870908)+i>>2]>>>f&1)){a=H[(f<<2)+b>>2];c=1<<a;d=H[g+16>>2];b=a>>>5|0;i=H[d+(b<<2)>>2];t=c&i;if(t){c=H[h+28>>2];P:{if((c|0)!=H[h+32>>2]){H[c>>2]=-1;H[h+28>>2]=c+4;break P}i=H[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+32>>2]=b+(j<<2);H[h+28>>2]=o;H[h+24>>2]=d;if(!i){break P}oa(i)}c=H[h+52>>2];Q:{if((c|0)!=H[h+56>>2]){H[c>>2]=a;H[h+52>>2]=c+4;break Q}i=H[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+56>>2]=b+(j<<2);H[h+52>>2]=a;H[h+48>>2]=d;if(!i){break Q}oa(i)}c=H[g+20>>2];a=H[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}pb(b,a);c=H[g+20>>2]}H[g+20>>2]=c+1;d=H[g+16>>2];a=d+(c>>>3&536870908)|0;b=H[a>>2];M=a,O=Vj(c)&b,H[M>>2]=O;c=1<<e;b=e>>>5|0;i=H[(b<<2)+d>>2];a=e;e=a+1|0}H[(b<<2)+d>>2]=c|i;o=H[h+24>>2]+(a<<2)|0;j=H[h+12>>2];b=H[h>>2];i=H[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<<c;H[o>>2]=c;if(t){H[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=H[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=H[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=H[h+12>>2];b=H[h>>2];while(1){d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<<c;if(t){H[(c<<2)+b>>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=H[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=H[h>>2];a=H[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}wa();v()}c=0;H[h+44>>2]=0;a=H[g+16>>2];b=H[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(H[d>>2]>>>c&1)){i=i+1|0;H[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=H[g>>2];if(b){oa(b);a=H[g+16>>2]}if(a){oa(a)}ca=g+32|0}ca=C+16|0;if(!x){H[E+8>>2]=0;cb(h);h=0}ca=E+16|0;a=h;break h}sa();v()}b=H[s>>2];if(!b){break d}H[s+4>>2]=b;oa(b)}ca=s+16|0;break b}sa();v()}c=H[l+4>>2];b=a;H[l+4>>2]=a;if(c){cb(c);b=H[l+4>>2]}X:{if(!b){break X}a=H[u+100>>2];c=H[u+96>>2];F[r+12|0]=0;Oa(l+56|0,(a-c|0)/12|0,r+12|0);a=H[u+100>>2];c=H[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(H[H[l+56>>2]+(D>>>3&536870908)>>2]>>>D&1)){a=N(D,3);Gc(l,0,a);c=H[l+8>>2];e=H[l+12>>2];Gc(l,1,a+1|0);f=H[l+20>>2];d=H[l+24>>2];Gc(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=H[l+36>>2]-H[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(H[l+68>>2]<=0){break Y}H[r+12>>2]=H[l+76>>2];H[r+8>>2]=m;bb(r+8|0,r+12|0);a=H[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=H[(H[H[l>>2]+96>>2]+N(e,12)|0)+(a-N(e,3)<<2)>>2]}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);e=H[l+72>>2];H[l+72>>2]=e+2;if(!(e&1)){break Y}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);H[l+72>>2]=H[l+72>>2]+1}d=0;e=ca-16|0;ca=e;H[l+68>>2]=H[l+68>>2]+1;a=N(c,12)+l|0;a=H[a+12>>2]-H[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=H[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=H[l+56>>2]+(g>>>3&536870908)|0;H[i>>2]=H[i>>2]|1<<g;H[l+72>>2]=H[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){H[e+12>>2]=H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[e+8>>2]=m;bb(e+8|0,e+12|0);break ca}H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=H[(H[H[l>>2]+96>>2]+N(g,12)|0)+(f-N(g,3)<<2)>>2]}else{f=-1}H[e+12>>2]=f;H[e+8>>2]=m;bb(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=H[(H[H[l>>2]+96>>2]+N(c,12)|0)+(f-N(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((N(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0)}H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=H[H[H[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}ca=e+16|0;c=H[u+96>>2];a=H[u+100>>2]}D=D+1|0;if(D>>>0<(a-c|0)/12>>>0){continue}break}}ca=r+16|0;da:{if(b){a=H[B>>2];if(a){H[B+4>>2]=a;oa(a)}H[B>>2]=H[m>>2];H[B+4>>2]=H[m+4>>2];H[B+8>>2]=H[m+8>>2];L=H[m+84>>2];break da}a=H[m>>2];if(!a){break da}H[m+4>>2]=a;oa(a)}a=H[m+72>>2];if(a){oa(a)}a=H[m+48>>2];if(a){H[m+52>>2]=a;oa(a)}a=H[m+36>>2];if(a){H[m+40>>2]=a;oa(a)}a=H[m+24>>2];if(a){H[m+28>>2]=a;oa(a)}a=H[m+20>>2];H[m+20>>2]=0;if(a){cb(a)}ca=m+96|0;return L|0}function qg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=H[i+80>>2];h=I[c+24|0];c:{if((N(j,h)|0)!=(e|0)){break c}d=H[c+28>>2]!=1;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break c}if(h){a=pa(h);ra(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break d}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!ic(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break d}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}oa(a)}break a;case 2:n=I[c+24|0];l=n<<1;j=H[i+80>>2];e:{if((N(l,j)|0)!=(e|0)){break e}i=H[c+28>>2]!=3;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=pa(l);ra(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}oa(e)}b=a;break a;case 4:l=I[c+24|0];o=l<<2;j=H[i+80>>2];h:{if((N(o,j)|0)!=(e|0)){break h}i=H[c+28>>2]!=5;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=pa(o);ra(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}oa(e)}break a;case 1:j=H[i+80>>2];h=I[c+24|0];k:{if((N(j,h)|0)!=(e|0)){break k}d=H[c+28>>2]!=2;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break k}if(h){a=pa(h);ra(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break l}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!hc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break l}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}oa(a)}break a;case 3:n=I[c+24|0];l=n<<1;j=H[i+80>>2];m:{if((N(l,j)|0)!=(e|0)){break m}i=H[c+28>>2]!=4;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=pa(l);ra(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}oa(e)}b=a;break a;case 5:l=I[c+24|0];o=l<<2;j=H[i+80>>2];p:{if((N(o,j)|0)!=(e|0)){break p}i=H[c+28>>2]!=6;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=pa(o);ra(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}oa(e)}break a;case 8:p=I[c+24|0];q=p<<2;k=H[i+80>>2];s:{if((N(q,k)|0)!=(e|0)){break s}i=H[c+28>>2];t:{if(!p){break t}a=pa(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){H[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){H[d+24>>2]=-1073741824;H[d+28>>2]=-1073741824;H[d+16>>2]=-1073741824;H[d+20>>2]=-1073741824;H[d+8>>2]=-1073741824;H[d+12>>2]=-1073741824;H[d>>2]=-1073741824;H[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=H[c+68>>2];l=H[c>>2];i=H[c+48>>2];s=I[c+84|0];m=H[c+44>>2];c=H[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=H[l>>2];b=Rj(c,m,s?d:H[r+(d<<2)>>2],0)+i|0;qa(h,qa(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=H[l>>2];g=d<<2;j=Rj(c,m,H[g+r>>2],0)+i|0;h=qa(a,h+j|0,o);j=H[l>>2];g=Rj(c,m,H[r+(g|4)>>2],0)+i|0;qa(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=H[l>>2];c=Rj(c,m,H[r+(d<<2)>>2],0)+i|0;qa(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=H[l>>2];e=Rj(g,h,c,m)+i|0;d=qa(a,d+e|0,o);e=H[l>>2];p=Rj(c,m,g|1,h)+i|0;qa(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=H[l>>2];c=Rj(g,h,c,m)+i|0;qa(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}qa((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}oa(a)}a=b;break;default:break b}}b=a}return b|0}function ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ca-48|0;ca=i;a:{b:{if((c|0)!=1){break b}c=H[a+4>>2];g=H[a+12>>2];H[i+40>>2]=0;a=i;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;e=a+8|0;c:{if((b|0)==-2){break c}l=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){a=J[c+36>>1];j=(a<<8|a>>>8)&65535;a=0;h=ca-32|0;ca=h;d=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];d:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break d}k=ea[H[H[c>>2]+36>>2]](c)|0;f=ea[H[H[c>>2]+44>>2]](c,g)|0;if(!k|!f){break d}a=ea[H[H[c>>2]+40>>2]](c,g)|0;if(a){c=H[c+44>>2];H[h+12>>2]=a;H[h+8>>2]=c;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=2564;break e;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=3328;break e;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3564;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break e;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3812;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break e;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=4040;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break e;case 5:break f;default:break e}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;g:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=3216;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=4904;H[a>>2]=4276;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=4512;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break g}}break d}a=H[c+44>>2];H[h+12>>2]=k;H[h+8>>2]=a;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=4932;break h;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=5356;break h;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5580;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break h;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5816;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break h;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=6032;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break h;case 5:break i;default:break h}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;j:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=5300;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=6840;H[a>>2]=6256;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=6476;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break j}}}ca=h+32|0;d=a;if(a){break c}}d=pa(44);H[d+4>>2]=l;H[d>>2]=3272;a=H[e+4>>2];H[d+8>>2]=H[e>>2];H[d+12>>2]=a;a=H[e+12>>2];H[d+16>>2]=H[e+8>>2];H[d+20>>2]=a;a=H[e+20>>2];H[d+24>>2]=H[e+16>>2];H[d+28>>2]=a;H[d+40>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;c=H[e+24>>2];a=H[e+28>>2];if((c|0)!=(a|0)){b=a-c|0;if((b|0)<0){break a}e=pa(b);H[d+32>>2]=e;H[d+40>>2]=(b&-4)+e;while(1){H[e>>2]=H[c>>2];e=e+4|0;c=c+4|0;if((a|0)!=(c|0)){continue}break}H[d+36>>2]=e}H[d>>2]=6868;break c}e=d;a=H[i+32>>2];if(!a){break b}H[i+36>>2]=a;oa(a)}ca=i+48|0;return e|0}sa();v()}function Ec(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ca-16|0;ca=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=H[4298];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17232|0;d=H[a+17240>>2];a=H[d+8>>2];j:{if((b|0)==(a|0)){m=17192,n=Vj(c)&g,H[m>>2]=n;break j}H[a+12>>2]=b;H[b+8>>2]=a}a=d+8|0;b=c<<3;H[d+4>>2]=b|3;b=b+d|0;H[b+4>>2]=H[b+4>>2]|1;break a}k=H[4300];if(k>>>0>=h>>>0){break i}if(b){a=2<<c;a=(0-a|a)&b<<c;d=Qj(0-a&a);a=d<<3;b=a+17232|0;e=H[a+17240>>2];a=H[e+8>>2];k:{if((b|0)==(a|0)){g=Vj(d)&g;H[4298]=g;break k}H[a+12>>2]=b;H[b+8>>2]=a}H[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;H[c+4>>2]=d|1;H[a+e>>2]=d;if(k){b=(k&-8)+17232|0;f=H[4303];a=1<<(k>>>3);l:{if(!(a&g)){H[4298]=a|g;a=b;break l}a=H[b+8>>2]}H[b+8>>2]=f;H[a+12>>2]=f;H[f+12>>2]=b;H[f+8>>2]=a}a=e+8|0;H[4303]=c;H[4300]=d;break a}j=H[4299];if(!j){break i}c=H[(Qj(0-j&j)<<2)+17496>>2];f=(H[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=H[b+16>>2];if(!a){a=H[b+20>>2];if(!a){break m}}b=(H[a+4>>2]&-8)-h|0;d=b>>>0<f>>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=H[c+24>>2];d=H[c+12>>2];if((d|0)!=(c|0)){a=H[c+8>>2];H[a+12>>2]=d;H[d+8>>2]=a;break b}b=c+20|0;a=H[b>>2];if(!a){a=H[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=H[b>>2];if(a){continue}b=d+16|0;a=H[d+16>>2];if(a){continue}break}H[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=H[4299];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=Q(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=H[(g<<2)+17496>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(H[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=H[b+20>>2];b=H[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<<g;a=(0-a|a)&j;if(!a){break i}a=H[(Qj(a&0-a)<<2)+17496>>2]}if(!a){break o}}while(1){b=(H[a+4>>2]&-8)-h|0;c=b>>>0<f>>>0;f=c?b:f;d=c?a:d;b=H[a+16>>2];if(b){a=b}else{a=H[a+20>>2]}if(a){continue}break}}if(!d|H[4300]-h>>>0<=f>>>0){break i}g=H[d+24>>2];c=H[d+12>>2];if((d|0)!=(c|0)){a=H[d+8>>2];H[a+12>>2]=c;H[c+8>>2]=a;break c}b=d+20|0;a=H[b>>2];if(!a){a=H[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=H[b>>2];if(a){continue}b=c+16|0;a=H[c+16>>2];if(a){continue}break}H[e>>2]=0;break c}a=H[4300];if(a>>>0>=h>>>0){d=H[4303];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;H[c+4>>2]=b|1;H[a+d>>2]=b;H[d+4>>2]=h|3;break s}H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;c=0;b=0}H[4300]=b;H[4303]=c;a=d+8|0;break a}i=H[4301];if(i>>>0>h>>>0){b=i-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(H[4416]){c=H[4418]}else{H[4419]=-1;H[4420]=-1;H[4417]=4096;H[4418]=4096;H[4416]=l+12&-16^1431655768;H[4421]=0;H[4409]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=H[4408];if(d){c=H[4406];g=c+b|0;if(d>>>0<g>>>0|c>>>0>=g>>>0){break a}}t:{if(!(I[17636]&4)){u:{v:{w:{x:{d=H[4304];if(d){a=17640;while(1){c=H[a>>2];if(c>>>0<=d>>>0&d>>>0<c+H[a+4>>2]>>>0){break x}a=H[a+8>>2];if(a){continue}break}}c=zb(0);if((c|0)==-1){break u}g=b;d=H[4417];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=H[4408];if(d){a=H[4406];f=a+g|0;if(d>>>0<f>>>0|a>>>0>=f>>>0){break u}}a=zb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=zb(g);if((c|0)==(H[a>>2]+H[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=H[4418];c=c+(j-g|0)&0-c;if((zb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}H[4409]=H[4409]|4}c=zb(b);a=zb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=H[4406]+g|0;H[4406]=a;if(a>>>0>K[4407]){H[4407]=a}y:{e=H[4304];if(e){a=17640;while(1){d=H[a>>2];b=H[a+4>>2];if((d+b|0)==(c|0)){break y}a=H[a+8>>2];if(a){continue}break}break f}a=H[4302];if(!(a>>>0<=c>>>0?a:0)){H[4302]=c}a=0;H[4411]=g;H[4410]=c;H[4306]=-1;H[4307]=H[4416];H[4413]=0;while(1){d=a<<3;b=d+17232|0;H[d+17240>>2]=b;H[d+17244>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];break e}if(I[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}H[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;H[4304]=c;b=H[4301]+g|0;a=b-a|0;H[4301]=a;H[c+4>>2]=a|1;H[(b+e|0)+4>>2]=40;H[4305]=H[4420];break e}d=0;break b}c=0;break c}if(K[4302]>c>>>0){H[4302]=c}b=c+g|0;a=17640;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=H[a>>2]){a=H[a+8>>2];if(a){continue}break E}break}if(!(I[a+12|0]&8)){break D}}a=17640;while(1){b=H[a>>2];if(b>>>0<=e>>>0){f=b+H[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=H[a+8>>2];continue}}H[a>>2]=c;H[a+4>>2]=H[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;H[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){H[4304]=i;a=H[4301]+a|0;H[4301]=a;H[i+4>>2]=a|1;break A}if(H[4303]==(g|0)){H[4303]=i;a=H[4300]+a|0;H[4300]=a;H[i+4>>2]=a|1;H[a+i>>2]=a;break A}f=H[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=H[g+8>>2];b=f>>>3|0;c=H[g+12>>2];if((c|0)==(d|0)){m=17192,n=H[4298]&Vj(b),H[m>>2]=n;break F}H[d+12>>2]=c;H[c+8>>2]=d;break F}h=H[g+24>>2];c=H[g+12>>2];G:{if((g|0)!=(c|0)){b=H[g+8>>2];H[b+12>>2]=c;H[c+8>>2]=b;break G}H:{f=g+20|0;b=H[f>>2];if(b){break H}f=g+16|0;b=H[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=H[f>>2];if(b){continue}f=c+16|0;b=H[c+16>>2];if(b){continue}break}H[d>>2]=0}if(!h){break F}d=H[g+28>>2];b=(d<<2)+17496|0;I:{if(H[b>>2]==(g|0)){H[b>>2]=c;if(c){break I}m=17196,n=H[4299]&Vj(d),H[m>>2]=n;break F}H[h+(H[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}H[c+24>>2]=h;b=H[g+16>>2];if(b){H[c+16>>2]=b;H[b+24>>2]=c}b=H[g+20>>2];if(!b){break F}H[c+20>>2]=b;H[b+24>>2]=c}g=e+g|0;f=H[g+4>>2];a=a+e|0}H[g+4>>2]=f&-2;H[i+4>>2]=a|1;H[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);J:{if(!(c&a)){H[4298]=a|c;a=b;break J}a=H[b+8>>2]}H[b+8>>2]=i;H[a+12>>2]=i;H[i+12>>2]=b;H[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=Q(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}H[i+28>>2]=f;H[i+16>>2]=0;H[i+20>>2]=0;b=(f<<2)+17496|0;d=H[4299];c=1<<f;K:{if(!(d&c)){H[4299]=c|d;H[b>>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=H[b>>2];while(1){b=c;if((H[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=H[d+16>>2];if(c){continue}break}H[d+16>>2]=i}H[i+24>>2]=b;H[i+12>>2]=i;H[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0<e+16>>>0?e:a;H[d+4>>2]=27;a=H[4413];H[d+16>>2]=H[4412];H[d+20>>2]=a;a=H[4411];H[d+8>>2]=H[4410];H[d+12>>2]=a;H[4412]=d+8;H[4411]=g;H[4410]=c;H[4413]=0;a=d+24|0;while(1){H[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0<f>>>0){continue}break}if((d|0)==(e|0)){break e}H[d+4>>2]=H[d+4>>2]&-2;f=d-e|0;H[e+4>>2]=f|1;H[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);L:{if(!(c&a)){H[4298]=a|c;a=b;break L}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;d=H[4299];c=1<<a;M:{if(!(d&c)){H[4299]=c|d;H[b>>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=H[b>>2];while(1){b=d;if((f|0)==(H[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=H[c+16>>2];if(d){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break e}a=H[b+8>>2];H[a+12>>2]=i;H[b+8>>2]=i;H[i+24>>2]=0;H[i+12>>2]=b;H[i+8>>2]=a}a=j+8|0;break a}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=H[4301];if(a>>>0<=h>>>0){break d}b=a-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}H[3992]=48;a=0;break a}N:{if(!g){break N}b=H[d+28>>2];a=(b<<2)+17496|0;O:{if(H[a>>2]==(d|0)){H[a>>2]=c;if(c){break O}j=Vj(b)&j;H[4299]=j;break N}H[g+(H[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}H[c+24>>2]=g;a=H[d+16>>2];if(a){H[c+16>>2]=a;H[a+24>>2]=c}a=H[d+20>>2];if(!a){break N}H[c+20>>2]=a;H[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;break P}H[d+4>>2]=h|3;e=d+h|0;H[e+4>>2]=f|1;H[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);Q:{if(!(c&a)){H[4298]=a|c;a=b;break Q}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;R:{c=1<<a;S:{if(!(c&j)){H[4299]=c|j;H[b>>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=H[b>>2];while(1){b=h;if((H[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=H[c+16>>2];if(h){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break P}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=H[c+28>>2];a=(b<<2)+17496|0;U:{if(H[a>>2]==(c|0)){H[a>>2]=d;if(d){break U}m=17196,n=Vj(b)&j,H[m>>2]=n;break T}H[i+(H[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}H[d+24>>2]=i;a=H[c+16>>2];if(a){H[d+16>>2]=a;H[a+24>>2]=d}a=H[c+20>>2];if(!a){break T}H[d+20>>2]=a;H[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;H[c+4>>2]=a|3;a=a+c|0;H[a+4>>2]=H[a+4>>2]|1;break V}H[c+4>>2]=h|3;d=c+h|0;H[d+4>>2]=f|1;H[d+f>>2]=f;if(k){b=(k&-8)+17232|0;e=H[4303];a=1<<(k>>>3);W:{if(!(a&g)){H[4298]=a|g;a=b;break W}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a}H[4303]=d;H[4300]=f}a=c+8|0}ca=l+16|0;return a|0}function ce(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-32|0;ca=m;o=pa(12);H[o+8>>2]=0;H[o+4>>2]=b;H[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=H[b+8>>2];j=H[b+4>>2];t=H[b>>2];if(t){if((w|0)>1e3){break a}H[m+24>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;d=1;c=H[a>>2];e=H[c+8>>2];h=H[c+12>>2];g=H[c+20>>2];f=H[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=I[f+H[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;H[h+16>>2]=f;H[h+20>>2]=c;Cc(m+16|0,e);if(e){c=H[a>>2];n=Dc(m+16|0);p=H[c+8>>2];g=H[c+12>>2];h=H[c+20>>2];f=H[c+16>>2];k=f+e|0;h=k>>>0<e>>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}qa(n,f+H[c>>2]|0,e);d=H[c+20>>2];f=e;e=e+H[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d}j=pa(24);c=j;H[c+4>>2]=0;H[c+8>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[j>>2]=j+4;H[j+12>>2]=c;e=ca-32|0;ca=e;h=t+12|0;c=m+16|0;u=nb(h,c);i=t+16|0;e:{if((u|0)==(i|0)){H[e+16>>2]=c;f:{g:{d=H[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=I[c+11|0];g=f<<24>>24<0;n=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=d;d=I[c+27|0];f=d<<24>>24<0;d=f?H[c+20>>2]:d;p=d>>>0<g>>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?H[c+16>>2]:c+16|0;q=Fa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=H[c>>2];if(d){continue}break h}d=Fa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=H[c+4>>2];if(d){continue}break}f=c+4|0}d=pa(32);n=d+16|0;g=H[e+16>>2];n:{if(F[g+11|0]>=0){p=H[g+4>>2];H[n>>2]=H[g>>2];H[n+4>>2]=p;H[n+8>>2]=H[g+8>>2];break n}za(n,H[g>>2],H[g+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+28>>2]=0;H[f>>2]=d;c=d;g=H[H[h>>2]>>2];if(g){H[h>>2]=g;c=H[f>>2]}Sb(H[h+4>>2],c);H[h+8>>2]=H[h+8>>2]+1;c=1;break f}d=c;c=0}F[e+28|0]=c;H[e+24>>2]=d;d=H[e+24>>2];c=H[d+28>>2];H[d+28>>2]=j;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c);break e}if(!j){break e}Ra(j+12|0,H[j+16>>2]);Qa(j,H[j+4>>2]);oa(j)}ca=e+32|0;d=(i|0)!=(u|0)}if(F[m+27|0]<0){oa(H[m+16>>2])}if(d){break a}}if(!j){break a}H[m+16>>2]=0;if(!Bb(1,m+16|0,H[a>>2])){break a}q=0;x=H[m+16>>2];if(x){while(1){d=0;i=ca-32|0;ca=i;H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;c=H[a>>2];f=H[c+8>>2];o:{p:{h=H[c+12>>2];g=H[c+20>>2];e=H[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=I[e+H[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;H[h+16>>2]=e;H[h+20>>2]=c;Cc(i+16|0,f);if(f){e=H[a>>2];n=Dc(i+16|0);p=H[e+8>>2];g=H[e+12>>2];c=H[e+20>>2];h=H[e+16>>2];k=h+f|0;c=k>>>0<f>>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}qa(n,h+H[e>>2]|0,f);c=H[e+20>>2];g=f;f=f+H[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;H[e+16>>2]=f;H[e+20>>2]=c}H[i+12>>2]=0;if(!Bb(1,i+12|0,H[a>>2])){break q}f=H[i+12>>2];if(!f){break q}e=H[a>>2];c=H[e+8>>2];h=H[e+16>>2];g=c-h|0;c=H[e+12>>2]-(H[e+20>>2]+(c>>>0<h>>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;if((f|0)<0){break p}d=pa(f);H[i>>2]=d;c=d+f|0;H[i+8>>2]=c;l=ra(d,0,f);H[i+4>>2]=c;h=H[e+12>>2];y=h;p=H[e+8>>2];c=H[e+20>>2];k=H[e+16>>2];g=f+k|0;c=g>>>0<f>>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){qa(l,H[e>>2]+k|0,f);d=H[e+20>>2];c=f+H[e+16>>2]|0;d=c>>>0<f>>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;h=ca-48|0;ca=h;e=nb(j,i+16|0);if((e|0)!=(j+4|0)){c=H[e+4>>2];s:{if(!c){c=e;while(1){d=H[c+8>>2];f=H[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=H[c>>2];if(c){continue}break}}if((e|0)==H[j>>2]){H[j>>2]=d}H[j+8>>2]=H[j+8>>2]-1;f=H[j+4>>2];t:{u:{g=e;d=e;e=H[d>>2];if(e){c=H[g+4>>2];if(!c){break u}while(1){d=c;c=H[c>>2];if(c){continue}break}}e=H[d+4>>2];if(e){break u}e=0;k=1;break t}H[e+8>>2]=H[d+8>>2];k=0}l=H[d+8>>2];c=H[l>>2];v:{if((d|0)==(c|0)){H[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=H[l+4>>2];break v}H[l+4>>2]=e}r=!I[d+12|0];if((d|0)!=(g|0)){l=H[g+8>>2];H[d+8>>2]=l;H[l+(((g|0)!=H[H[g+8>>2]>>2])<<2)>>2]=d;l=H[g>>2];H[d>>2]=l;H[l+8>>2]=d;l=H[g+4>>2];H[d+4>>2]=l;if(l){H[l+8>>2]=d}F[d+12|0]=I[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=I[c+12|0];x:{d=H[c+8>>2];if(H[d>>2]!=(c|0)){if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[d+4>>2];k=H[e>>2];H[d+4>>2]=k;if(k){H[k+8>>2]=d}H[e+8>>2]=H[d+8>>2];k=H[d+8>>2];H[(((d|0)!=H[k>>2])<<2)+k>>2]=e;H[e>>2]=d;H[d+8>>2]=e;d=c;c=H[c>>2];f=(c|0)==(f|0)?d:f;c=H[c+4>>2]}y:{z:{d=H[c>>2];A:{if(!(I[d+12|0]?0:d)){e=H[c+4>>2];if(I[e+12|0]?0:e){break A}F[c+12|0]=0;c=H[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(I[c+12|0]){break x}}F[c+12|0]=1;break w}e=H[c+4>>2];if(!e){break z}}if(I[e+12|0]){break z}d=c;break y}F[d+12|0]=1;F[c+12|0]=0;e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c+4>>2];e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;break w}if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[c+4>>2];H[d>>2]=e;if(e){H[e+8>>2]=d}H[c+8>>2]=H[d+8>>2];e=H[d+8>>2];H[(((d|0)!=H[e>>2])<<2)+e>>2]=c;H[c+4>>2]=d;H[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=H[d>>2]}e=H[c>>2];C:{if(!(!e|I[e+12|0])){d=c;break C}d=H[c+4>>2];if(!(I[d+12|0]?0:d)){F[c+12|0]=0;c=H[c+8>>2];if((c|0)!=(f|0)?I[c+12|0]:0){break x}F[c+12|0]=1;break w}if(e){if(!I[e+12|0]){d=c;break C}d=H[c+4>>2]}F[d+12|0]=1;F[c+12|0]=0;e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c>>2];e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;break w}d=c;c=H[c+8>>2];c=H[(((d|0)==H[c>>2])<<2)+c>>2];continue}}F[e+12|0]=1}c=H[g+28>>2];if(c){H[g+32>>2]=c;oa(c)}if(F[g+27|0]<0){oa(H[g+16>>2])}oa(g)}H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;c=H[i+4>>2];d=H[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=pa(f);c=ra(e,0,f);g=c+f|0;H[h+8>>2]=g;H[h+4>>2]=g;H[h>>2]=c;c=d}qa(e,c,f);F:{if(F[i+27|0]>=0){H[h+24>>2]=H[i+24>>2];c=H[i+20>>2];H[h+16>>2]=H[i+16>>2];H[h+20>>2]=c;break F}za(h+16|0,H[i+16>>2],H[i+20>>2])}ae(h+28|0,h);f=h+16|0;c=f;G:{H:{d=H[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=I[c+11|0];g=e<<24>>24<0;k=g?H[c>>2]:c;g=g?H[c+4>>2]:e;while(1){c=d;d=I[c+27|0];e=d<<24>>24<0;d=e?H[c+20>>2]:d;l=d>>>0<g>>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?H[c+16>>2]:c+16|0;z=Fa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=H[c>>2];if(d){continue}break I}d=Fa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=H[c+4>>2];if(d){continue}break}e=c+4|0}d=pa(40);H[d+24>>2]=H[f+8>>2];g=H[f+4>>2];H[d+16>>2]=H[f>>2];H[d+20>>2]=g;H[f>>2]=0;H[f+4>>2]=0;H[f+8>>2]=0;ae(d+28|0,f+12|0);H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[e>>2]=d;c=d;f=H[H[j>>2]>>2];if(f){H[j>>2]=f;c=H[e>>2]}Sb(H[j+4>>2],c);H[j+8>>2]=H[j+8>>2]+1;c=1;break G}d=c;c=0}F[h+44|0]=c;H[h+40>>2]=d;c=H[h+28>>2];if(c){H[h+32>>2]=c;oa(c)}if(F[h+27|0]<0){oa(H[h+16>>2])}c=H[h>>2];if(c){H[h+4>>2]=c;oa(c)}ca=h+48|0;break D}sa();v()}d=H[i>>2];if(!d){break r}}H[i+4>>2]=d;oa(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(F[i+27|0]<0){oa(H[i+16>>2])}ca=i+32|0;break o}sa();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}H[m+12>>2]=0;if(!Bb(1,m+12|0,H[a>>2])){break a}c=H[a>>2];e=H[c+8>>2];f=H[c+16>>2];h=e-f|0;d=H[m+12>>2];c=H[c+12>>2]-(H[c+20>>2]+(e>>>0<f>>>0)|0)|0;if(h>>>0<d>>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0<s>>>0){H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;b=b+12|0;d=H[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0<f>>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=pa(N(e,12))}else{f=0}b=f+N(g,12)|0;H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;c=va(b+N((c|0)/-12|0,12)|0,o,c);s=f+N(e,12)|0;b=b+12|0;if(o){oa(o)}o=c}q=q+1|0;if(q>>>0<d>>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}sa();v()}wa();v()}if(o){oa(o)}ca=m+32|0;return A}function Af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0;e=ca-720|0;ca=e;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(J[b+38>>1]>=515){H[e+680>>2]=0;H[e+672>>2]=0;H[e+676>>2]=0;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=ea[H[H[a>>2]+20>>2]](a,n)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(H[d+28>>2]==9){f=H[e+672>>2];c=H[e+676>>2]-f>>2;k=I[d+24|0];j:{if(c>>>0<k>>>0){ya(e+672|0,k-c|0);break j}if(c>>>0<=k>>>0){break j}H[e+676>>2]=f+(k<<2)}j=0;i=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];d=k<<2;f=H[b+16>>2];l=f+d|0;c=d>>>0>l>>>0?c+1|0:c;if(i>>>0<l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break b}qa(H[e+672>>2],f+H[b>>2]|0,d);c=H[b+20>>2];f=d;d=d+H[b+16>>2]|0;c=f>>>0>d>>>0?c+1|0:c;i=d;H[b+16>>2]=d;H[b+20>>2]=c;l=H[b+12>>2];g=H[b+8>>2];h=d+4|0;f=h>>>0<4?c+1|0:c;d=f;if(g>>>0<h>>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}o=H[b>>2];f=o+i|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=d;if(g>>>0<=h>>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}d=I[h+o|0];h=i+5|0;c=h>>>0<5?c+1|0:c;H[b+16>>2]=h;H[b+20>>2]=c;if(d>>>0>31){break b}p=(A(2,f),B());H[e+20>>2]=-1;H[e+16>>2]=1832;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;c=H[e+672>>2];o=d-1|0;if(o>>>0<=29){H[e+20>>2]=d;k:{h=c+(k<<2)|0;l=h-c|0;f=l>>2;i=H[e+32>>2];d=H[e+24>>2];if(f>>>0<=i-d>>2>>>0){i=H[e+28>>2]-d|0;l=i>>2;i=f>>>0>l>>>0?c+i|0:h;g=i-c|0;if((c|0)!=(i|0)){va(d,c,g)}if(f>>>0>l>>>0){c=h-i|0;d=H[e+28>>2];if((h|0)!=(i|0)){va(d,i,c)}H[e+28>>2]=c+d;break k}H[e+28>>2]=d+g;break k}if(d){H[e+28>>2]=d;oa(d);H[e+32>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;i=0}l:{if((l|0)<0){break l}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break l}i=d<<2;d=pa(i);H[e+28>>2]=d;H[e+24>>2]=d;H[e+32>>2]=d+i;if((c|0)!=(h|0)){qa(d,c,l)}H[e+28>>2]=d+(f<<2);break k}sa();v()}L[e+36>>2]=p}m:{if(o>>>0>=30){break m}if(!Xc(e+16|0,H[H[a+60>>2]+((H[a+40>>2]-H[a+36>>2]|0)/24<<2)>>2])){break m}c=H[a+40>>2];n:{if((c|0)!=H[a+44>>2]){H[c>>2]=1832;d=H[e+20>>2];H[c+16>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+4>>2]=d;d=H[e+28>>2];f=H[e+24>>2];if((d|0)!=(f|0)){d=d-f|0;if((d|0)<0){break i}g=pa(d);H[c+12>>2]=g;H[c+8>>2]=g;H[c+16>>2]=(d&-4)+g;k=H[e+24>>2];d=H[e+28>>2];if((k|0)!=(d|0)){while(1){L[g>>2]=L[k>>2];g=g+4|0;k=k+4|0;if((d|0)!=(k|0)){continue}break}}H[c+12>>2]=g}L[c+20>>2]=L[e+36>>2];H[a+40>>2]=c+24;break n}d=0;o:{p:{q:{r:{j=H[a+40>>2];f=H[a+36>>2];i=(j-f|0)/24|0;c=i+1|0;if(c>>>0<178956971){h=(H[a+44>>2]-f|0)/24|0;l=h<<1;h=h>>>0>=89478485?178956970:c>>>0<l>>>0?l:c;if(h){if(h>>>0>=178956971){break r}d=pa(N(h,24))}g=N(i,24)+d|0;H[g>>2]=1832;c=H[e+20>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+4>>2]=c;c=H[e+24>>2];i=H[e+28>>2];if((c|0)!=(i|0)){l=i-c|0;if((l|0)<0){break q}k=pa(l);H[g+8>>2]=k;H[g+16>>2]=(l&-4)+k;while(1){L[k>>2]=L[c>>2];k=k+4|0;c=c+4|0;if((i|0)!=(c|0)){continue}break}H[g+12>>2]=k}c=N(h,24)+d|0;L[g+20>>2]=L[e+36>>2];d=g+24|0;if((f|0)==(j|0)){break p}while(1){g=g-24|0;H[g>>2]=1832;j=j-24|0;H[g+4>>2]=H[j+4>>2];H[g+8>>2]=H[j+8>>2];H[g+12>>2]=H[j+12>>2];H[g+16>>2]=H[j+16>>2];H[j+16>>2]=0;H[j+8>>2]=0;H[j+12>>2]=0;L[g+20>>2]=L[j+20>>2];if((f|0)!=(j|0)){continue}break}H[a+44>>2]=c;k=H[a+40>>2];H[a+40>>2]=d;j=H[a+36>>2];H[a+36>>2]=g;if((j|0)==(k|0)){break o}while(1){k=k-24|0;ea[H[H[k>>2]>>2]](k)|0;if((j|0)!=(k|0)){continue}break}break o}sa();v()}wa();v()}sa();v()}H[a+44>>2]=c;H[a+40>>2]=d;H[a+36>>2]=g}if(j){oa(j)}}j=1}H[e+16>>2]=1832;c=H[e+24>>2];if(c){H[e+28>>2]=c;oa(c)}if(!j){break c}}n=n+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(n|0)){continue}break}break d}k=ea[H[H[a>>2]+24>>2]](a)|0;H[e+712>>2]=0;H[e+704>>2]=0;H[e+708>>2]=0;if(k){if(k>>>0>=214748365){break h}c=N(k,20);d=pa(c);H[e+704>>2]=d;H[e+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=e,r=ra(d,0,c)+c|0,H[q+708>>2]=r;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];f=H[d+28>>2];c=f-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}h=(c|0)>0?c:0;if(h>>>0>4){break f}c=H[e+704>>2]+N(m,20)|0;i=I[d+24|0];H[c+16>>2]=i;H[c+12>>2]=h;H[c+8>>2]=f;H[c+4>>2]=g;H[c>>2]=d;g=g+i|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}c=ea[H[H[a>>2]+20>>2]](a,0)|0;m=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];F[m+84|0]=1;H[m+72>>2]=H[m+68>>2];h=H[b+12>>2];c=h;d=H[b+20>>2];f=H[b+8>>2];i=H[b+16>>2];if((c|0)<=(d|0)&f>>>0<=i>>>0|(c|0)<(d|0)){break f}n=H[b>>2];o=I[n+i|0];c=d;l=i+1|0;c=l?c:c+1|0;H[b+16>>2]=l;H[b+20>>2]=c;s:{switch(o|0){case 0:a=H[e+704>>2];if((H[e+708>>2]-a|0)!=20){break e}if(H[a+16>>2]!=3){break f}t:{if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}c=d;a=i+2|0;c=a>>>0<2?c+1|0:c;l=a;H[b+16>>2]=a;H[b+20>>2]=c;c=d;a=i+6|0;c=a>>>0<6?c+1|0:c;if(a>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}d=l+n|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;mb(m,d);j=e+672|0;H[j+20>>2]=0;H[j+12>>2]=0;H[j+16>>2]=0;H[j>>2]=0;H[j+4>>2]=0;H[j+20>>2]=d;d=Ac(e+16|0,e+704|0);k=0;g=ca-32|0;ca=g;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;f=H[b+12>>2];m=f;i=H[b+8>>2];c=H[b+20>>2];l=c;h=H[b+16>>2];a=h+4|0;c=a>>>0<4?c+1|0:c;u:{if(a>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break u}n=H[b>>2];f=n+h|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;v:{w:{switch(f-2|0){case 1:if((c|0)>=(m|0)&a>>>0>=i>>>0|(c|0)>(m|0)){break u}a=I[a+n|0];c=l;f=h+5|0;c=f>>>0<5?c+1|0:c;H[b+16>>2]=f;H[b+20>>2]=c;F[j+8|0]=a;if((a|0)==1){if(Ud(j,b,g+16|0)){break v}break u}Rd(1799,23,H[3443]);break u;default:Rd(1774,24,H[3443]);break u;case 0:break w}}if(!Ud(j,b,g+16|0)){break u}}H[g+8>>2]=H[g+16>>2];H[g>>2]=H[g+20>>2];c=ca-32|0;ca=c;a=H[j>>2];p=L[j+4>>2];H[c+24>>2]=1065353216;h=-1<<a^-1;a=h;if((a|0)>0){L[c+24>>2]=p/O(a|0)}m=H[g+8>>2];n=H[g>>2];if((m|0)!=(n|0)){a=H[d+28>>2];while(1){b=H[m>>2];f=H[m+4>>2];p=L[c+24>>2];L[c+16>>2]=p*O(H[m+8>>2]-h|0);L[c+12>>2]=p*O(f-h|0);L[c+8>>2]=p*O(b-h|0);b=a;i=H[d+16>>2];f=H[i>>2];if(!I[f+84|0]){b=H[H[f+68>>2]+(a<<2)>>2]}if(K[f+80>>2]>b>>>0){a=H[f+40>>2];qa(H[H[f>>2]>>2]+N(a,b)|0,(c+8|0)+(H[i+4>>2]<<2)|0,a);n=H[g>>2];a=H[d+28>>2]}a=a+1|0;H[d+28>>2]=a;m=m+12|0;if((n|0)!=(m|0)){continue}break}}ca=c+32|0;k=1}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g+32|0;yc(d);j=1;if(k){break f}}j=0;break f;case 1:break s;default:break f}}if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}o=I[l+n|0];c=d;l=i+2|0;c=l>>>0<2?c+1|0:c;H[b+16>>2]=l;H[b+20>>2]=c;if(o>>>0>=7){H[e>>2]=o;Qd(1651,e);break f}c=d;d=i+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}f=l+n|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;if(k){m=0;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,f);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];m=m+1|0;if((k|0)!=(m|0)){continue}break}}a=Ac(e+672|0,e+704|0);x:{y:{switch(o|0){case 1:c=wb(e+16|0,g);b=zd(c,b,a,-1);xb(c);if(!b){break g}break x;case 2:c=ub(e+16|0,g);b=yd(c,b,a,-1);vb(c);if(!b){break g}break x;case 3:c=ub(e+16|0,g);b=xd(c,b,a,-1);vb(c);if(!b){break g}break x;case 4:c=$a(e+16|0,g);b=wd(c,b,a,-1);ab(c);if(!b){break g}break x;case 5:c=$a(e+16|0,g);b=vd(c,b,a,-1);ab(c);if(!b){break g}break x;case 6:c=$a(e+16|0,g);b=ud(c,b,a,-1);ab(c);if(b){break x}break g;case 0:break y;default:break g}}c=wb(e+16|0,g);b=Bd(c,b,a,-1);xb(c);if(!b){break g}}yc(a);j=1;break f}sa();v()}sa();v()}yc(a)}a=H[e+704>>2]}if(!a){break a}H[e+708>>2]=a;oa(a);break a}j=1;if(H[a+52>>2]==H[a+48>>2]){break b}while(1){if(!td(1,e+16|0,b)){break c}c=H[a+48>>2];d=H[e+16>>2];H[c+(m<<2)>>2]=d>>>1^0-(d&1);m=m+1|0;if(m>>>0<H[a+52>>2]-c>>2>>>0){continue}break}break b}j=0}a=H[e+672>>2];if(!a){break a}H[e+676>>2]=a;oa(a)}ca=e+720|0;return j|0}function te(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ca-32|0;ca=h;H[b+32>>2]=d;H[b+40>>2]=c;H[b+4>>2]=e;nc(a,d,h+16|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}d=I[h+23|0];if((ea[H[H[b>>2]+8>>2]](b)|0)!=(d|0)){b=pa(64);F[b+50|0]=0;c=I[1314]|I[1315]<<8;F[b+48|0]=c;F[b+49|0]=c>>>8;c=I[1310]|I[1311]<<8|(I[1312]<<16|I[1313]<<24);d=I[1306]|I[1307]<<8|(I[1308]<<16|I[1309]<<24);F[b+40|0]=d;F[b+41|0]=d>>>8;F[b+42|0]=d>>>16;F[b+43|0]=d>>>24;F[b+44|0]=c;F[b+45|0]=c>>>8;F[b+46|0]=c>>>16;F[b+47|0]=c>>>24;c=I[1302]|I[1303]<<8|(I[1304]<<16|I[1305]<<24);d=I[1298]|I[1299]<<8|(I[1300]<<16|I[1301]<<24);F[b+32|0]=d;F[b+33|0]=d>>>8;F[b+34|0]=d>>>16;F[b+35|0]=d>>>24;F[b+36|0]=c;F[b+37|0]=c>>>8;F[b+38|0]=c>>>16;F[b+39|0]=c>>>24;c=I[1294]|I[1295]<<8|(I[1296]<<16|I[1297]<<24);d=I[1290]|I[1291]<<8|(I[1292]<<16|I[1293]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1286]|I[1287]<<8|(I[1288]<<16|I[1289]<<24);d=I[1282]|I[1283]<<8|(I[1284]<<16|I[1285]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);d=I[1274]|I[1275]<<8|(I[1276]<<16|I[1277]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1270]|I[1271]<<8|(I[1272]<<16|I[1273]<<24);d=I[1266]|I[1267]<<8|(I[1268]<<16|I[1269]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,50);oa(b);break a}c=I[h+21|0];F[b+36|0]=c;e=I[h+22|0];F[b+37|0]=e;if((c-3&255)>>>0<=253){b=pa(32);F[b+22|0]=0;c=I[1427]|I[1428]<<8|(I[1429]<<16|I[1430]<<24);d=I[1423]|I[1424]<<8|(I[1425]<<16|I[1426]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1421]|I[1422]<<8|(I[1423]<<16|I[1424]<<24);d=I[1417]|I[1418]<<8|(I[1419]<<16|I[1420]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1413]|I[1414]<<8|(I[1415]<<16|I[1416]<<24);d=I[1409]|I[1410]<<8|(I[1411]<<16|I[1412]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=pa(32);F[b+22|0]=0;c=I[1404]|I[1405]<<8|(I[1406]<<16|I[1407]<<24);d=I[1400]|I[1401]<<8|(I[1402]<<16|I[1403]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1398]|I[1399]<<8|(I[1400]<<16|I[1401]<<24);d=I[1394]|I[1395]<<8|(I[1396]<<16|I[1397]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1390]|I[1391]<<8|(I[1392]<<16|I[1393]<<24);d=I[1386]|I[1387]<<8|(I[1388]<<16|I[1389]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}c=e|c<<8;G[H[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|G[h+26>>1]>=0){break b}i=ca-16|0;ca=i;e=pa(36);c=e;H[c+4>>2]=0;H[c+8>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[e>>2]=e+4;H[e+32>>2]=0;H[e+12>>2]=c;H[i>>2]=0;d=H[b+32>>2];j=ca-16|0;ca=j;c=0;c:{if(!e){break c}H[i>>2]=d;H[j+12>>2]=0;c=0;if(!Bb(1,j+12|0,d)){break c}m=H[j+12>>2];if(m){while(1){d:{if(Bb(1,j+8|0,H[i>>2])){c=pa(28);H[c+4>>2]=0;H[c+8>>2]=0;d=c+16|0;H[d>>2]=0;H[d+4>>2]=0;H[c>>2]=c+4;H[c+12>>2]=d;H[c+24>>2]=H[j+8>>2];if(ce(i,c)){break d}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}c=0;break c}f=ca-16|0;ca=f;H[f+8>>2]=c;e:{if(!c){break e}d=H[e+28>>2];f:{if(d>>>0<K[e+32>>2]){H[f+8>>2]=0;H[d>>2]=c;H[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=H[e+24>>2];l=H[e+28>>2]-g>>2;c=l+1|0;if(c>>>0<1073741824){g=H[e+32>>2]-g|0;k=g>>>1|0;g=g>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(g){if(g>>>0>=1073741824){break i}d=pa(g<<2)}k=H[f+8>>2];H[f+8>>2]=0;c=(l<<2)+d|0;H[c>>2]=k;g=(g<<2)+d|0;l=c+4|0;d=H[e+28>>2];k=H[e+24>>2];if((d|0)==(k|0)){break h}while(1){d=d-4|0;o=H[d>>2];H[d>>2]=0;c=c-4|0;H[c>>2]=o;if((d|0)!=(k|0)){continue}break}H[e+32>>2]=g;g=H[e+28>>2];H[e+28>>2]=l;d=H[e+24>>2];H[e+24>>2]=c;if((d|0)==(g|0)){break g}while(1){g=g-4|0;c=H[g>>2];H[g>>2]=0;if(c){Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}if((d|0)!=(g|0)){continue}break}break g}sa();v()}wa();v()}H[e+32>>2]=g;H[e+28>>2]=l;H[e+24>>2]=c}if(d){oa(d)}}c=H[f+8>>2];H[f+8>>2]=0;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}ca=f+16|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}}c=ce(i,e)}ca=j+16|0;j:{if(c){d=H[b+4>>2];c=H[d+4>>2];H[d+4>>2]=e;if(c){Uc(c)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break j}c=pa(32);F[c+26|0]=0;d=I[1579]|I[1580]<<8;F[c+24|0]=d;F[c+25|0]=d>>>8;d=I[1575]|I[1576]<<8|(I[1577]<<16|I[1578]<<24);f=I[1571]|I[1572]<<8|(I[1573]<<16|I[1574]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1567]|I[1568]<<8|(I[1569]<<16|I[1570]<<24);f=I[1563]|I[1564]<<8|(I[1565]<<16|I[1566]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1559]|I[1560]<<8|(I[1561]<<16|I[1562]<<24);f=I[1555]|I[1556]<<8|(I[1557]<<16|I[1558]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;H[a>>2]=-1;za(a+4|0,c,26);oa(c);H[i+8>>2]=0;Uc(e)}ca=i+16|0;if(H[a>>2]){break a}if(F[a+15|0]>=0){break b}oa(H[a+4>>2])}if(!(ea[H[H[b>>2]+12>>2]](b)|0)){b=pa(48);F[b+33|0]=0;F[b+32|0]=I[1384];c=I[1380]|I[1381]<<8|(I[1382]<<16|I[1383]<<24);d=I[1376]|I[1377]<<8|(I[1378]<<16|I[1379]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1372]|I[1373]<<8|(I[1374]<<16|I[1375]<<24);d=I[1368]|I[1369]<<8|(I[1370]<<16|I[1371]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1364]|I[1365]<<8|(I[1366]<<16|I[1367]<<24);d=I[1360]|I[1361]<<8|(I[1362]<<16|I[1363]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1356]|I[1357]<<8|(I[1358]<<16|I[1359]<<24);d=I[1352]|I[1353]<<8|(I[1354]<<16|I[1355]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,33);oa(b);break a}if(!(ea[H[H[b>>2]+20>>2]](b)|0)){b=mc(h,1582);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}if(!(ea[H[H[b>>2]+24>>2]](b)|0)){b=mc(h,1317);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ca=h+32|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-16|0;ca=m;H[m+12>>2]=b;b=pa(32);H[m>>2]=b;H[m+4>>2]=24;H[m+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;l=ca-48|0;ca=l;f=H[m+12>>2];d=a;a=a+16|0;b=H[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>H[b+16>>2];c=e?c:b;b=H[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=H[c+16>>2]){break a}}H[l+28>>2]=0;H[l+32>>2]=0;y=l+24|0;H[l+24>>2]=y|4;a=l+16|0;H[a>>2]=0;H[a+4>>2]=0;H[l+8>>2]=f;H[l+12>>2]=a;t=l+8|0;a=t;x=ca-16|0;ca=x;u=d+12|0;c=H[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=H[a>>2];while(1){d=c;b=H[c+16>>2];if((b|0)>(a|0)){o=d;c=H[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=H[d+4>>2];if(c){continue}break}o=d+4|0}g=pa(32);b=H[t>>2];q=g+24|0;a=q;H[a>>2]=0;H[a+4>>2]=0;H[g+16>>2]=b;r=g+20|0;H[r>>2]=a;c=H[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=ca-16|0;ca=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=I[f+27|0];h=b<<24>>24<0;i=I[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?H[k+4>>2]:i;b=h?H[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?H[k>>2]:k;h=h?H[f+16>>2]:f+16|0;A=Fa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=H[f>>2];m:{a=f;n:{if((a|0)==H[r>>2]){break n}o:{if(!h){b=f;while(1){a=H[b+8>>2];i=H[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=H[b+4>>2];if(b){continue}break}}i=I[k+11|0];s=i<<24>>24;b=(s|0)<0;j=I[a+27|0];n=j<<24>>24<0;p:{i=b?H[k+4>>2]:i;j=n?H[a+20>>2]:j;w=i>>>0<j>>>0?i:j;if(w){b=Fa(n?H[a+16>>2]:a+16|0,b?H[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){H[p+12>>2]=f;a=f;break e}H[p+12>>2]=a;a=a+4|0;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(s|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0<i>>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}break g}b=Fa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=H[f+4>>2];v:{if(!h){b=f;while(1){a=H[b+8>>2];j=H[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=H[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=I[a+27|0];b=j<<24>>24<0;y:{j=b?H[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=Fa((n|0)<0?H[k>>2]:k,b?H[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0<j>>>0){break x}break w}if((b|0)>=0){break w}}if(!h){H[p+12>>2]=f;a=f+4|0;break e}H[p+12>>2]=a;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(n|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0<i>>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}}H[p+12>>2]=a;a=f;break e}H[p+12>>2]=f;H[a>>2]=f}f=a;a=H[a>>2];if(a){b=0}else{a=pa(40);b=a+16|0;E:{if(F[c+27|0]>=0){e=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+24>>2];break E}za(b,H[c+16>>2],H[c+20>>2])}b=a+28|0;F:{if(F[c+39|0]>=0){e=H[c+32>>2];H[b>>2]=H[c+28>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+36>>2];break F}za(b,H[c+28>>2],H[c+32>>2])}H[a+8>>2]=H[p+12>>2];H[a>>2]=0;H[a+4>>2]=0;H[f>>2]=a;b=a;e=H[H[r>>2]>>2];if(e){H[r>>2]=e;b=H[f>>2]}Sb(H[r+4>>2],b);H[r+8>>2]=H[r+8>>2]+1;b=1}F[x+12|0]=b;H[x+8>>2]=a;ca=p+16|0;b=H[c+4>>2];G:{if(b){while(1){c=b;b=H[b>>2];if(b){continue}break G}}while(1){a=c;c=H[c+8>>2];if((a|0)!=H[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}H[g+8>>2]=d;H[g>>2]=0;H[g+4>>2]=0;H[o>>2]=g;c=g;a=H[H[u>>2]>>2];if(a){H[u>>2]=a;c=H[o>>2]}Sb(H[u+4>>2],c);H[u+8>>2]=H[u+8>>2]+1;a=1}F[l+44|0]=a;H[l+40>>2]=g;ca=x+16|0;c=H[l+40>>2];Kb(t|4,H[l+16>>2]);Kb(y,H[l+28>>2])}f=ca-48|0;ca=f;d=f+8|0;g=ca-32|0;ca=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(K[3660]<=1|0)){break I}}F[a|0]=49;b=a+1|0;h=0}H[g+12>>2]=h;H[g+8>>2]=b;h=ca-16|0;ca=h;e=ca-16|0;ca=e;J:{q=H[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){F[d+11|0]=g|I[d+11|0]&128;F[d+11|0]=I[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}Zb(t,b+1|0);b=H[e+8>>2];H[d>>2]=b;H[d+8>>2]=H[d+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[d+8>>2]=H[d+8>>2]|-2147483648;H[d+4>>2]=g}while(1){if((a|0)!=(q|0)){F[b|0]=I[a|0];b=b+1|0;a=a+1|0;continue}break}F[e+7|0]=0;F[b|0]=I[e+7|0];ca=e+16|0;break J}Na();v()}ca=h+16|0;ca=o;H[f+32>>2]=m;L:{M:{a=c+20|0;d=H[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=I[m+11|0];c=b<<24>>24<0;e=c?H[m>>2]:m;b=c?H[m+4>>2]:b;while(1){c=d;d=I[c+27|0];g=d<<24>>24<0;d=g?H[c+20>>2]:d;o=d>>>0<b>>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?H[c+16>>2]:c+16|0;q=Fa(e,g,h);if(!q){if(b>>>0<d>>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=H[c>>2];if(d){continue}break N}d=Fa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=H[c+4>>2];if(d){continue}break}g=c+4|0}d=pa(40);e=d+16|0;b=H[f+32>>2];T:{if(F[b+11|0]>=0){o=H[b+4>>2];H[e>>2]=H[b>>2];H[e+4>>2]=o;H[e+8>>2]=H[b+8>>2];break T}za(e,H[b>>2],H[b+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+36>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[g>>2]=d;c=d;b=H[H[a>>2]>>2];if(b){H[a>>2]=b;c=H[g>>2]}Sb(H[a+4>>2],c);H[a+8>>2]=H[a+8>>2]+1;a=1;break L}d=c;a=0}F[f+44|0]=a;H[f+40>>2]=d;a=H[f+40>>2];if(F[a+39|0]<0){oa(H[a+28>>2])}b=H[f+12>>2];H[a+28>>2]=H[f+8>>2];H[a+32>>2]=b;H[a+36>>2]=H[f+16>>2];ca=f+48|0;ca=l+48|0;if(F[m+11|0]<0){oa(H[m>>2])}ca=m+16|0}function Bd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];k=h+4|0;g=k>>>0<4?g+1|0:g;a:{if(j>>>0<k>>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>l>>>0&(h|0)>=(k|0)|(h|0)>(k|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0<g>>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}s=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+120>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+132>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=s;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){b=H[e+12>>2];f=H[e+24>>2];k=a-1|0;c=f+k|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=k;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>s>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+132>>2]|0;k=f+H[d+120>>2]|0;i=H[d>>2];l=a<<2;m=H[l+H[o>>2]>>2];f:{g:{if((i|0)==(m|0)){if(!j){break g}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break g}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;h:{if(c){break h}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break h}m=H[k>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;i:{if(g>>>0>3){break i}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break i}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[c+16>>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break g}j:{k:{l:{m:{if(j>>>0<=2){c=H[d+108>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break m}break j}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+120>>2];n=g+1|0;o=N(n,12);p=b+o|0;if((p|0)!=(k|0)){Aa(p,H[k>>2],H[k+4>>2]);b=H[d+120>>2]}b=l+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<<i+(m^-1));b=Q(j)^31;i=H[d+32>>2];m=32-i|0;n:{if((b|0)<=(m|0)){k=H[d+28>>2];if((k|0)==H[d+20>>2]){break l}m=H[k>>2];p=b+i|0;H[d+32>>2]=p;b=m<<i>>>32-b|0;if((p|0)!=32){break n}H[d+32>>2]=0;H[d+28>>2]=k+4;break n}k=H[d+28>>2];p=k+4|0;if((p|0)==H[d+20>>2]){break l}r=H[k>>2];H[d+28>>2]=p;m=b-m|0;H[d+32>>2]=m;b=H[k+4>>2]>>>32-m|r<<i>>>32-b}i=j>>>1|0;if(i>>>0<b>>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break j}i=j>>>1|0;b=0}o:{p:{b=i-b|0;c=j-b|0;q:{if((c|0)==(b|0)){c=b;break q}i=H[d+88>>2];if((i|0)==H[d+80>>2]){break p}j=H[i>>2];k=H[d+92>>2];m=k+1|0;H[d+92>>2]=m;j=j&-2147483648>>>k;r:{if((m|0)==32){H[d+92>>2]=0;H[d+88>>2]=i+4;if(j){break r}break p}if(!j){break p}}}i=c;c=b;break o}i=b}b=H[d+132>>2];j=b+f|0;f=H[j>>2];k=f+l|0;H[k>>2]=H[k>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=i;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}m=0;if(!j){break g}while(1){if(H[d+12>>2]){i=H[d+40>>2];p=H[o>>2];c=H[d+96>>2];r=H[d+108>>2];a=0;while(1){g=r+(a<<2)|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;l=H[f+p>>2];s:{if((b|0)==(l|0)){break s}f=c+f|0;b=b-l|0;l=H[d+52>>2];q=32-l|0;if((b|0)<=(q|0)){n=H[d+48>>2];if((n|0)==(i|0)){c=0;break e}H[f>>2]=H[n>>2]<<l>>>32-b;b=b+H[d+52>>2]|0;H[d+52>>2]=b;if((b|0)!=32){break s}H[d+52>>2]=0;H[d+48>>2]=n+4;break s}n=H[d+48>>2];t=n+4|0;if((i|0)==(t|0)){c=0;break e}u=H[n>>2];H[d+48>>2]=t;q=b-q|0;H[d+52>>2]=q;H[f>>2]=H[n+4>>2]>>>32-q|u<<l>>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[k>>2]>>2];a=a+1|0;if(a>>>0<K[d+12>>2]){continue}break}}i=0;a=H[h+16>>2];t:{if((a|0)==H[h+20>>2]){break t}while(1){f=H[h+28>>2];c=N(i,20)+a|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break t}n=H[d+96>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;u:{if(g>>>0>3){break u}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break u}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[c+16>>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;v:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break v}}w:{if((a|0)==(f|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break w}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function zd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];l=H[b+12>>2];k=H[b+20>>2];i=H[b+16>>2];f=i+4|0;k=f>>>0<4?k+1|0:k;a:{if(f>>>0>j>>>0&(k|0)>=(l|0)|(k|0)>(l|0)){break a}i=i+H[b>>2]|0;H[a>>2]=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);i=H[b+20>>2];j=i;f=H[b+16>>2];i=f+4|0;l=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=l;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];f=f+8|0;j=f>>>0<8?j+1|0:j;if((k|0)<=(j|0)&f>>>0>l>>>0|(k|0)<(j|0)){break a}i=H[b>>2]+i|0;f=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[a+4>>2]=f;j=H[b+20>>2];i=H[b+16>>2]+4|0;j=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=j;if(!f){return 1}if(d>>>0<f>>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}t=H[a+4>>2];i=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}g=H[f+120>>2];d=H[g>>2];if(d){H[g+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[g+4>>2]=c;H[g>>2]=b;H[g+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=pa(a);H[e+8>>2]=h;b=a+h|0;H[e+16>>2]=b;ra(h,0,a);H[e+12>>2]=b}c=H[f+132>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);h=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=h;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=t;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){j=H[e+12>>2];g=H[e+24>>2];d=a-1|0;c=g+d|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;n=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+g|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>t>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+120>>2];o=N(n,12);q=b+o|0;g=H[f>>2];h=a<<2;l=o+H[f+132>>2]|0;c=H[h+H[l>>2]>>2];f:{g:{if((g|0)==(c|0)){if(!m){break g}h=0;b=H[i+20>>2];c=H[i+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[i+28>>2]=m+H[i+28>>2];H[f+8>>2]=a+m;break g}while(1){d=(b|0)==(c|0);a=b;g=0;b=c;h:{if(d){break h}while(1){d=H[i+28>>2];b=a;k=N(g,20)+c|0;l=H[k>>2];if(!I[l+84|0]){d=H[H[l+68>>2]+(d<<2)>>2]}if(K[l+80>>2]<=d>>>0){break h}j=H[q>>2]+(H[k+4>>2]<<2)|0;c=H[k+12>>2];b=j;i:{if(c>>>0>3){break i}a=0;b=H[i+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,j+(a<<2)|0,c);c=H[k+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[k+16>>2]){continue}break}b=H[i+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+20>>2];b=a;c=H[i+16>>2];if(g>>>0<(b-c|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;h=h+1|0;if((m|0)!=(h|0)){continue}break}break g}j:{k:{l:{m:{if(m>>>0<=2){c=H[f+108>>2];H[c>>2]=a;h=1;b=H[f+12>>2];if(b>>>0>1){break m}break j}if(K[f+8>>2]>K[f+4>>2]){break e}j=b;b=o+12|0;Aa(j+b|0,H[q>>2],H[q+4>>2]);b=h+H[b+H[f+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(c^-1));k=Q(m)^31;l=H[f+32>>2];g=32-l|0;n:{if((k|0)<=(g|0)){g=H[f+28>>2];if((g|0)==H[f+20>>2]){break l}c=H[g>>2];b=k+l|0;H[f+32>>2]=b;c=c<<l>>>32-k|0;if((b|0)!=32){break n}H[f+32>>2]=0;H[f+28>>2]=g+4;break n}j=H[f+28>>2];b=j+4|0;if((b|0)==H[f+20>>2]){break l}c=H[j>>2];H[f+28>>2]=b;b=k-g|0;H[f+32>>2]=b;c=H[j+4>>2]>>>32-b|c<<l>>>32-k}g=m>>>1|0;if(g>>>0<c>>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(h<<2)>>2]=a;b=H[f+12>>2];h=h+1|0;if(b>>>0>h>>>0){continue}break}break j}g=m>>>1|0;c=0}k=n+1|0;o:{p:{b=g-c|0;c=m-b|0;q:{if((c|0)==(b|0)){c=b;break q}l=H[f+88>>2];if((l|0)==H[f+80>>2]){break p}j=H[l>>2];g=H[f+92>>2];d=g+1|0;H[f+92>>2]=d;g=j&-2147483648>>>g;r:{if((d|0)==32){H[f+92>>2]=0;H[f+88>>2]=l+4;if(g){break r}break p}if(!g){break p}}}g=c;c=b;break o}g=b}l=H[f+132>>2];j=l+o|0;d=H[j>>2];b=d+h|0;H[b>>2]=H[b>>2]+1;Aa(l+N(k,12)|0,d,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((d|0)!=(h|0)?N(d-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+h>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!g){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((c|0)!=(h|0)?N(c-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+h>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=a;H[b>>2]=g;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}r=0;if(!m){break g}while(1){if(H[f+12>>2]){u=H[f+40>>2];j=H[l>>2];s=H[f+96>>2];g=H[f+108>>2];a=0;while(1){n=(a<<2)+g|0;H[s+(H[n>>2]<<2)>>2]=0;d=H[f>>2];c=H[n>>2]<<2;b=H[c+j>>2];s:{if((d|0)==(b|0)){break s}o=c+s|0;p=d-b|0;h=H[f+52>>2];d=32-h|0;if((p|0)<=(d|0)){c=H[f+48>>2];if((c|0)==(u|0)){d=0;break e}H[o>>2]=H[c>>2]<<h>>>32-p;b=p+H[f+52>>2]|0;H[f+52>>2]=b;if((b|0)!=32){break s}H[f+52>>2]=0;H[f+48>>2]=c+4;break s}k=H[f+48>>2];b=k+4|0;if((u|0)==(b|0)){d=0;break e}c=H[k>>2];H[f+48>>2]=b;b=p-d|0;H[f+52>>2]=b;H[o>>2]=H[k+4>>2]>>>32-b|c<<h>>>32-p}c=H[n>>2]<<2;b=c+s|0;H[b>>2]=H[b>>2]|H[c+H[q>>2]>>2];a=a+1|0;if(a>>>0<K[f+12>>2]){continue}break}}g=0;a=H[i+16>>2];t:{if((a|0)==H[i+20>>2]){break t}while(1){d=H[i+28>>2];h=N(g,20)+a|0;k=H[h>>2];if(!I[k+84|0]){d=H[H[k+68>>2]+(d<<2)>>2]}if(K[k+80>>2]<=d>>>0){break t}j=H[f+96>>2]+(H[h+4>>2]<<2)|0;c=H[h+12>>2];b=j;u:{if(c>>>0>3){break u}a=0;b=H[i+12>>2];if(!H[h+16>>2]){break u}while(1){b=qa(b,j+(a<<2)|0,c);c=H[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[h+16>>2]){continue}break}b=H[i+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+16>>2];if(g>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;r=r+1|0;if((m|0)!=(r|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;h=H[e+16>>2];a=H[e+12>>2];b=h-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;h=H[e+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}c=170;v:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break v}}w:{if((a|0)==(h|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break w}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;g=d;break b}sa();v()}sa();v()}}return g}function wd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];j=H[b+12>>2];n=H[b+20>>2];e=H[b+16>>2];h=e+4|0;n=h>>>0<4?n+1|0:n;a:{if(i>>>0<h>>>0&(j|0)<=(n|0)|(j|0)<(n|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;j=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=j;if(K[a>>2]>32){break a}j=H[b+8>>2];n=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>j>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0<h>>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;k=pa(a);H[f+8>>2]=k;b=a+k|0;H[f+16>>2]=b;ra(k,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);k=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=k;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}n=g+16|0;while(1){j=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];o=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(o>>>0>u>>>0){break e}a=H[g+12>>2];k=(i|0)!=(a-1|0)?i+1|0:0;if(k>>>0>=a>>>0){break e}p=N(q,12);w=p+H[g+640>>2]|0;r=p+H[g+628>>2]|0;h=H[g>>2];l=k<<2;e=H[l+H[w>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!o){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;j=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(j,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[i+16>>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;j=j+1|0;c=H[d+16>>2];if(j>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((o|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(o>>>0<=2){c=H[g+616>>2];H[c>>2]=k;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];j=q+1|0;m=N(j,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<<h+(e^-1));b=0;a=0;c=Q(o)^31;if(!c){a=o>>>1|0;break k}while(1){b=Ba((a<<4)+n|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=o>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){k=(b-1|0)!=(k|0)?k+1|0:0;H[c+(a<<2)>>2]=k;a=a+1|0;b=H[g+12>>2];if(a>>>0<b>>>0){continue}break}break j}m:{n:{b=a-b|0;a=o-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=k;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=j;H[a+4>>2]=k;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}k=0;if(!o){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[w>>2];t=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[t+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+t|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<<m>>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}j=H[g+556>>2];b=j+4|0;if((q|0)==(b|0)){c=0;break e}c=H[j>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[j+4>>2]>>>32-b|c<<m>>>32-s}c=H[p>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0<K[g+12>>2]){continue}break}}j=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(j,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[i+16>>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);j=j+1|0;a=H[d+16>>2];if(j>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;k=k+1|0;if((o|0)!=(k|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;k=H[f+16>>2];a=H[f+12>>2];b=k-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;k=H[f+16>>2];b=k-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(k|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((k|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function ud(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];o=H[b+20>>2];e=H[b+16>>2];h=e+4|0;o=h>>>0<4?o+1|0:o;a:{if(i>>>0<h>>>0&(k|0)<=(o|0)|(k|0)<(o|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;k=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];o=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(o|0)|(i|0)>(o|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0<h>>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}w=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[f+8>>2]=j;b=a+j|0;H[f+16>>2]=b;ra(j,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);j=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=j;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=w;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}o=g+16|0;while(1){i=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];n=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(n>>>0>w>>>0){break e}a=H[g+628>>2];p=N(q,12);t=p+H[g+640>>2]|0;j=Vd(g,n,t);if(j>>>0>=K[g+12>>2]){break e}r=a+p|0;h=H[g>>2];l=j<<2;e=H[l+H[t>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!n){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;k=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(k,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[i+16>>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;k=k+1|0;c=H[d+16>>2];if(k>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((n|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){c=H[g+616>>2];H[c>>2]=j;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];k=q+1|0;m=N(k,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<<h+(e^-1));b=0;a=0;c=Q(n)^31;if(!c){a=n>>>1|0;break k}while(1){b=Ba((a<<4)+o|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[c+(a<<2)>>2]=j;a=a+1|0;b=H[g+12>>2];if(a>>>0<b>>>0){continue}break}break j}m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}j=0;if(!n){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[t>>2];u=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[u+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+u|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<<m>>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}k=H[g+556>>2];b=k+4|0;if((q|0)==(b|0)){c=0;break e}c=H[k>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[k+4>>2]>>>32-b|c<<m>>>32-s}c=H[p>>2]<<2;b=c+u|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0<K[g+12>>2]){continue}break}}k=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(k,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[i+16>>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);k=k+1|0;a=H[d+16>>2];if(k>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;j=j+1|0;if((n|0)!=(j|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;j=H[f+16>>2];a=H[f+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;j=H[f+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function vd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];m=H[b+20>>2];f=H[b+16>>2];h=f+4|0;m=h>>>0<4?m+1|0:m;a:{if(i>>>0<h>>>0&(k|0)<=(m|0)|(k|0)<(m|0)){break a}f=f+H[b>>2]|0;H[a>>2]=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);f=H[b+20>>2];i=f;h=H[b+16>>2];f=h+4|0;k=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];m=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(m|0)|(i|0)>(m|0)){break a}f=f+H[b>>2]|0;h=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];f=H[b+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=i;if(!h){return 1}if(d>>>0<h>>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];b=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;g=b+d|0;H[e+16>>2]=g;ra(b,0,d);H[e+12>>2]=g}h=H[f+628>>2];d=H[h>>2];if(d){H[h+4>>2]=d;oa(d);g=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[h+4>>2]=g;H[h>>2]=b;H[h+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[e+8>>2]=j;b=a+j|0;H[e+16>>2]=b;ra(j,0,a);H[e+12>>2]=b}d=H[f+640>>2];a=H[d>>2];if(a){H[d+4>>2]=a;oa(a);j=H[e+8>>2];b=H[e+12>>2]}H[d+4>>2]=b;H[d>>2]=j;H[d+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}m=f+16|0;while(1){k=H[e+12>>2];h=H[e+24>>2];g=a-1|0;d=h+g|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];n=H[b>>2];H[e+28>>2]=g;b=H[e+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(n>>>0>u>>>0){d=0;break e}d=0;a=H[f+12>>2];j=(i|0)!=(a-1|0)?i+1|0:0;if(j>>>0>=a>>>0){break e}a=H[f+628>>2];o=N(q,12);s=a+o|0;g=H[f>>2];l=j<<2;k=o+H[f+640>>2]|0;b=H[l+H[k>>2]>>2];f:{g:{if((g|0)==(b|0)){if(!n){break g}g=H[c+16>>2];b=H[c+20>>2];p=0;while(1){d=(b|0)==(g|0);a=b;j=0;b=g;h:{if(d){break h}while(1){d=H[c+28>>2];b=a;k=N(j,20)+g|0;i=H[k>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break h}h=H[s>>2]+(H[k+4>>2]<<2)|0;g=H[k+12>>2];b=h;i:{if(g>>>0>3){break i}a=0;b=H[c+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,h+(a<<2)|0,g);g=H[k+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[k+16>>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);a=H[c+20>>2];b=a;j=j+1|0;g=H[c+16>>2];if(j>>>0<(a-g|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){d=H[f+616>>2];H[d>>2]=j;a=1;b=H[f+12>>2];if(b>>>0>1){break l}break j}if(K[f+8>>2]>K[f+4>>2]){break e}d=a;a=o+12|0;Aa(d+a|0,H[s>>2],H[s+4>>2]);a=l+H[a+H[f+628>>2]>>2]|0;H[a>>2]=H[a>>2]+(1<<g+(b^-1));b=0;a=0;d=Q(n)^31;if(!d){a=n>>>1|0;break k}while(1){b=Ba((a<<4)+m|0)|b<<1;a=a+1|0;if((d|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}d=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[d+(a<<2)>>2]=j;a=a+1|0;b=H[f+12>>2];if(a>>>0<b>>>0){continue}break}break j}k=q+1|0;m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[f+596>>2];if((i|0)==H[f+588>>2]){break n}h=H[i>>2];g=H[f+600>>2];d=g+1|0;H[f+600>>2]=d;g=h&-2147483648>>>g;p:{if((d|0)==32){H[f+600>>2]=0;H[f+596>>2]=i+4;if(g){break p}break n}if(!g){break n}}}d=a;a=b;break m}d=b}i=H[f+640>>2];h=i+o|0;g=H[h>>2];b=g+l|0;H[b>>2]=H[b>>2]+1;Aa(i+N(k,12)|0,g,H[h+4>>2]);if(a){h=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];b=H[e+12>>2];if((h|0)==(((b|0)!=(g|0)?N(g-b>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=b}b=(h>>>0)/341|0;b=H[g+(b<<2)>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[e+28>>2]=H[e+28>>2]+1}if(!d){break g}b=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];a=H[e+12>>2];if((b|0)==(((a|0)!=(g|0)?N(g-a>>2,341)-1|0:0)|0)){xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=a}a=(b>>>0)/341|0;a=H[g+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=d;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}p=0;if(!n){break g}while(1){if(H[f+12>>2]){w=H[f+548>>2];i=H[k>>2];t=H[f+604>>2];h=H[f+616>>2];a=0;while(1){j=h+(a<<2)|0;H[(H[j>>2]<<2)+t>>2]=0;g=H[f>>2];d=H[j>>2]<<2;b=H[d+i>>2];q:{if((g|0)==(b|0)){break q}q=d+t|0;r=g-b|0;o=H[f+560>>2];g=32-o|0;if((r|0)<=(g|0)){d=H[f+556>>2];if((d|0)==(w|0)){d=0;break e}H[q>>2]=H[d>>2]<<o>>>32-r;b=H[f+560>>2]+r|0;H[f+560>>2]=b;if((b|0)!=32){break q}H[f+560>>2]=0;H[f+556>>2]=d+4;break q}l=H[f+556>>2];b=l+4|0;if((b|0)==(w|0)){d=0;break e}d=H[l>>2];H[f+556>>2]=b;b=r-g|0;H[f+560>>2]=b;H[q>>2]=H[l+4>>2]>>>32-b|d<<o>>>32-r}d=H[j>>2]<<2;b=d+t|0;H[b>>2]=H[b>>2]|H[d+H[s>>2]>>2];a=a+1|0;if(a>>>0<K[f+12>>2]){continue}break}}j=0;a=H[c+16>>2];r:{if((a|0)==H[c+20>>2]){break r}while(1){d=H[c+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break r}h=H[f+604>>2]+(H[l+4>>2]<<2)|0;g=H[l+12>>2];b=h;s:{if(g>>>0>3){break s}a=0;b=H[c+12>>2];if(!H[l+16>>2]){break s}while(1){b=qa(b,h+(a<<2)|0,g);g=H[l+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[l+16>>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);j=j+1|0;a=H[c+16>>2];if(j>>>0<(H[c+20>>2]-a|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;j=H[e+16>>2];a=H[e+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;j=H[e+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}g=170;t:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break u}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}g=d}return g}function yd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];l=h+4|0;g=l>>>0<4?g+1|0:g;a:{if(j>>>0<l>>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}k=H[b+8>>2];l=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>k>>>0&(h|0)>=(l|0)|(h|0)>(l|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0<g>>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}r=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+116>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=r;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}t=d+16|0;while(1){b=H[e+12>>2];f=H[e+24>>2];l=a-1|0;c=f+l|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=l;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>r>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+128>>2]|0;l=f+H[d+116>>2]|0;i=H[d>>2];k=a<<2;n=H[k+H[o>>2]>>2];f:{if((i|0)==(n|0)){if(!j){break f}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break f}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;g:{if(c){break g}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break g}n=H[l>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;h:{if(g>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break h}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[c+16>>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=H[d+104>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break l}break i}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+116>>2];m=g+1|0;o=N(m,12);q=b+o|0;if((q|0)!=(l|0)){Aa(q,H[l>>2],H[l+4>>2]);b=H[d+116>>2]}b=k+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<<i+(n^-1));H[e+4>>2]=0;pc(t,Q(j)^31,e+4|0);b=j>>>1|0;i=H[e+4>>2];if(b>>>0<i>>>0){break e}b=b-i|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}i=H[d+84>>2];if((i|0)==H[d+76>>2]){break k}j=H[i>>2];l=H[d+88>>2];n=l+1|0;H[d+88>>2]=n;j=j&-2147483648>>>l;n:{if((n|0)==32){H[d+88>>2]=0;H[d+84>>2]=i+4;if(j){break n}break k}if(!j){break k}}}i=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}i=b}b=H[d+128>>2];j=b+f|0;f=H[j>>2];l=f+k|0;H[l>>2]=H[l>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=m;H[b+4>>2]=a;H[b>>2]=i;H[e+28>>2]=H[e+28>>2]+1;break f}n=0;if(!j){break f}while(1){if(H[d+12>>2]){i=H[d+36>>2];q=H[o>>2];c=H[d+92>>2];u=H[d+104>>2];a=0;while(1){g=(a<<2)+u|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;k=H[f+q>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=H[d+48>>2];p=32-k|0;if((b|0)<=(p|0)){m=H[d+44>>2];if((m|0)==(i|0)){c=0;break e}H[f>>2]=H[m>>2]<<k>>>32-b;b=b+H[d+48>>2]|0;H[d+48>>2]=b;if((b|0)!=32){break o}H[d+48>>2]=0;H[d+44>>2]=m+4;break o}m=H[d+44>>2];s=m+4|0;if((i|0)==(s|0)){c=0;break e}w=H[m>>2];H[d+44>>2]=s;p=b-p|0;H[d+48>>2]=p;H[f>>2]=H[m+4>>2]>>>32-p|w<<k>>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[l>>2]>>2];a=a+1|0;if(a>>>0<K[d+12>>2]){continue}break}}i=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){f=H[h+28>>2];c=N(i,20)+a|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break p}m=H[d+92>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;q:{if(g>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break q}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[c+16>>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;n=n+1|0;if((j|0)!=(n|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;r:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break s}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function xd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];n=H[b+20>>2];h=H[b+16>>2];f=h+4|0;n=f>>>0<4?n+1|0:n;a:{if((k|0)<=(n|0)&f>>>0>i>>>0|(k|0)<(n|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];i=h;f=H[b+16>>2];h=f+4|0;k=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];n=H[b+12>>2];f=f+8|0;i=f>>>0<8?i+1|0:i;if(f>>>0>k>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}h=H[b>>2]+h|0;f=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=f;i=H[b+20>>2];h=H[b+16>>2]+4|0;i=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=i;if(!f){return 1}if(d>>>0<f>>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}u=H[a+4>>2];h=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}j=H[f+116>>2];d=H[j>>2];if(d){H[j+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[j+4>>2]=c;H[j>>2]=b;H[j+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=pa(a);H[e+8>>2]=g;b=a+g|0;H[e+16>>2]=b;ra(g,0,a);H[e+12>>2]=b}c=H[f+128>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);g=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=g;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}n=f+16|0;while(1){i=H[e+12>>2];j=H[e+24>>2];d=a-1|0;c=j+d|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;o=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>u>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+116>>2];p=N(o,12);r=b+p|0;j=H[f>>2];g=a<<2;k=p+H[f+128>>2]|0;c=H[g+H[k>>2]>>2];f:{if((j|0)==(c|0)){if(!m){break f}b=H[h+20>>2];c=H[h+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[h+28>>2]=m+H[h+28>>2];H[f+8>>2]=a+m;break f}while(1){i=(b|0)==(c|0);a=b;j=0;b=c;g:{if(i){break g}while(1){g=H[h+28>>2];b=a;l=N(j,20)+c|0;k=H[l>>2];if(!I[k+84|0]){g=H[H[k+68>>2]+(g<<2)>>2]}if(K[k+80>>2]<=g>>>0){break g}i=H[r>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=i;h:{if(c>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break h}while(1){b=qa(b,i+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[l+16>>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+20>>2];b=a;c=H[h+16>>2];if(j>>>0<(b-c|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((m|0)!=(d|0)){continue}break}break f}i:{j:{k:{l:{if(m>>>0<=2){c=H[f+104>>2];H[c>>2]=a;g=1;b=H[f+12>>2];if(b>>>0>1){break l}break i}if(K[f+8>>2]>K[f+4>>2]){break e}i=b;b=p+12|0;Aa(i+b|0,H[r>>2],H[r+4>>2]);b=g+H[b+H[f+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<j+(c^-1));H[e+4>>2]=0;pc(n,Q(m)^31,e+4|0);c=m>>>1|0;b=H[e+4>>2];if(c>>>0<b>>>0){break e}l=o+1|0;b=c-b|0;c=m-b|0;m:{if((c|0)==(b|0)){c=b;break m}k=H[f+84>>2];if((k|0)==H[f+76>>2]){break k}i=H[k>>2];j=H[f+88>>2];d=j+1|0;H[f+88>>2]=d;j=i&-2147483648>>>j;n:{if((d|0)==32){H[f+88>>2]=0;H[f+84>>2]=k+4;if(j){break n}break k}if(!j){break k}}}j=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(g<<2)>>2]=a;b=H[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break i}j=b}k=H[f+128>>2];i=k+p|0;d=H[i>>2];b=d+g|0;H[b>>2]=H[b>>2]+1;Aa(k+N(l,12)|0,d,H[i+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((d|0)!=(g|0)?N(d-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+g>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=o;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!j){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((c|0)!=(g|0)?N(c-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+g>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=a;H[b>>2]=j;H[e+28>>2]=H[e+28>>2]+1;break f}s=0;if(!m){break f}while(1){if(H[f+12>>2]){w=H[f+36>>2];i=H[k>>2];t=H[f+92>>2];j=H[f+104>>2];a=0;while(1){o=(a<<2)+j|0;H[t+(H[o>>2]<<2)>>2]=0;d=H[f>>2];c=H[o>>2]<<2;b=H[c+i>>2];o:{if((d|0)==(b|0)){break o}p=c+t|0;q=d-b|0;g=H[f+48>>2];d=32-g|0;if((q|0)<=(d|0)){c=H[f+44>>2];if((c|0)==(w|0)){d=0;break e}H[p>>2]=H[c>>2]<<g>>>32-q;b=q+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break o}H[f+48>>2]=0;H[f+44>>2]=c+4;break o}l=H[f+44>>2];b=l+4|0;if((w|0)==(b|0)){d=0;break e}c=H[l>>2];H[f+44>>2]=b;b=q-d|0;H[f+48>>2]=b;H[p>>2]=H[l+4>>2]>>>32-b|c<<g>>>32-q}c=H[o>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0<K[f+12>>2]){continue}break}}j=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){g=H[h+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){g=H[H[i+68>>2]+(g<<2)>>2]}if(K[i+80>>2]<=g>>>0){break p}d=H[f+92>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=d;q:{if(c>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break q}while(1){b=qa(b,d+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[l+16>>2]){continue}break}b=H[h+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+16>>2];if(j>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;s=s+1|0;if((m|0)!=(s|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}d=1}H[e+28>>2]=0;g=H[e+16>>2];a=H[e+12>>2];b=g-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;g=H[e+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}c=170;r:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break r}}s:{if((a|0)==(g|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break s}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;j=d;break b}sa();v()}sa();v()}}return j}function $c(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=ca-32|0;ca=h;g=H[H[a+4>>2]+44>>2];c=H[a+8>>2];d=H[c>>2];c=H[c+4>>2];H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=H[g+96>>2];f=(H[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=H[g+104>>2];c=H[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=N(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=l;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=N(e,12)+c|0;if(f>>>0<36){break b}while(1){f=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=f;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];f=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=f;H[d+32>>2]=H[h+24>>2];f=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=f;f=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=f;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}H[g+100>>2]=c;break a}c:{f=H[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0<i>>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=pa(N(i,12))}f=N(n,12)+l|0;d=f;e=N(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=r;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=j;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];j=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=j;H[d+32>>2]=H[h+24>>2];j=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=j;j=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=j;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=H[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=H[c+4>>2];f=f-12|0;d=f;H[d>>2]=H[c>>2];H[d+4>>2]=n;H[d+8>>2]=H[c+8>>2];if((c|0)!=(j|0)){continue}break}c=H[g+96>>2]}H[g+104>>2]=N(i,12)+l;H[g+100>>2]=e;H[g+96>>2]=f;if(c){oa(c)}break a}sa();v()}wa();v()}if(d>>>0>=f>>>0){break a}H[g+100>>2]=c+N(d,12)}d:{if(H[a+216>>2]==H[a+220>>2]){j=H[a+4>>2];c=H[j+44>>2];d=H[c+100>>2];f=H[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=H[a+8>>2];i=f+N(c,12)|0;g=N(c,3);e:{f:{if((g|0)==-1){e=H[(H[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=H[H[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=H[H[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=H[H[d>>2]+(g<<2)>>2]}H[i+8>>2]=m;H[i+4>>2]=e;H[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}H[H[j+4>>2]+80>>2]=b;c=1;break d}d=0;H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;l=H[a+8>>2];c=H[l>>2];g=H[l+4>>2];H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=pa(c);H[h>>2]=b;H[h+8>>2]=(c&-4)+b;u=h,w=ra(b,0,c)+c|0,H[u+4>>2]=w}c=H[l+24>>2];if((H[l+28>>2]-c|0)<4){break h}f=0;while(1){g=H[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(H[H[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=H[a+216>>2];c=H[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=N(j,144)+n|0;c=H[s+H[H[i+68>>2]>>2]>>2];o:{if(!(H[H[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=H[H[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=H[i+32>>2];i=H[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=H[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=H[H[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;H[(g<<2)+b>>2]=e;s:{if(k>>>0<o>>>0){H[k>>2]=g;k=k+4|0;H[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=pa(c<<2)}else{d=0}e=d+(e<<2)|0;H[e>>2]=g;m=c<<2;c=va(d,f,i);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(f){oa(f);l=H[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=H[a+220>>2];j=H[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=H[(j+N(c,144)|0)+32>>2];r=i<<2;if(H[q+r>>2]==H[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;H[b+r>>2]=e;if(k>>>0<o>>>0){H[k>>2]=i;k=k+4|0;H[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=pa(c<<2)}else{f=0}e=f+(e<<2)|0;H[e>>2]=i;m=c<<2;c=va(f,d,j);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(!d){d=c;break u}oa(d);l=H[a+8>>2];d=c;break u}H[(i<<2)+b>>2]=H[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=H[l+24>>2];if((p|0)<H[l+28>>2]-c>>2){continue}break}break h}sa();v()}sa();v()}wa();v()}sa();v()}i=H[a+4>>2];a=H[i+44>>2];c=H[a+100>>2];a=H[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=N(c,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;e=N(c|1,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=N(c,12);c=g+b|0;f=H[c>>2];e=H[c+4>>2];a=a+g|0;H[a+8>>2]=H[c+8>>2];H[a>>2]=f;H[a+4>>2]=e}H[H[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){oa(b)}if(!d){break d}H[h+20>>2]=d;oa(d)}ca=h+32|0;return c}function Fj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0;g=ca+-64|0;ca=g;H[a+8>>2]=e;y=a+32|0;f=H[y>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){ya(y,e-d|0);H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;d=0;if(!e){break a}}Pa(g+16|0,e,g);h=H[g+28>>2];d=H[g+32>>2]}H[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[g+32>>2]=(e<<2)+h;break c}Pa(g+16|12,e-d|0,g)}H[g>>2]=0;f=H[g+40>>2];d=H[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[g+44>>2]=f+(e<<2);break d}Pa(g+40|0,e-d|0,g)}H[g>>2]=0;f=H[g+52>>2];d=H[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[g+56>>2]=f+(e<<2);break e}Pa(g+52|0,e-d|0,g)}f:{if(H[a+8>>2]<=0){break f}i=H[g+16>>2];j=H[a+32>>2];h=0;while(1){d=h<<2;f=H[d+i>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}h=h+1|0;d=H[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=H[b+i>>2]+H[j+i>>2]|0;H[f>>2]=i;h:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break h}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}G=H[a+52>>2];t=H[a+48>>2];z=pa(16);d=z;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=pa(d);H[g>>2]=r;H[g+8>>2]=d+r;ra(r,0,d)}A=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<<x;n=H[t>>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(H[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=H[H[H[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=H[G>>2];h=H[t+28>>2];p=H[l+(H[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=H[l+(H[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=H[l+(H[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=H[(g+16|0)+N(i,12)>>2];l=N(e,h);q=N(e,q);p=N(e,p);h=0;o=0;if(F){while(1){H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2];u=h|1;H[j+(u<<2)>>2]=(H[(l+u<<2)+c>>2]+H[(q+u<<2)+c>>2]|0)-H[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|H[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=H[H[H[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(H[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=H[H[H[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&H[O>>2]){break v}d=H[H[H[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ra(r,0,L)}d=j-1|0;q=(d<<2)+z|0;d=N(d,12)+a|0;u=d;x=H[d- -64>>2];k=0;d=H[g>>2];f=0;while(1){i=H[q>>2];H[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(H[H[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=H[(g+16|0)+N(k,12)>>2];i=0;h=0;p=0;if(!M){while(1){l=h<<2;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];o=l|4;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];o=l|8;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];l=l|12;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;H[p>>2]=H[l+n>>2]+H[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=N(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(F){break n}break m}i=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+k>>2];n=H[a+16>>2];x:{if((f|0)>(n|0)){H[d+j>>2]=n;break x}d=d+j|0;n=H[a+12>>2];if((n|0)>(f|0)){H[d>>2]=n;break x}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;y:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break y}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}break k}Ca();v()}while(1){j=h<<2;k=j+r|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+r|0;H[j>>2]=H[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+r>>2];k=H[a+16>>2];z:{if((f|0)>(k|0)){H[d+j>>2]=k;break z}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break z}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;A:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break A}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[g>>2];if(a){oa(a)}oa(z);a=H[g+52>>2];if(a){H[g+56>>2]=a;oa(a)}a=H[g+40>>2];if(a){H[g+44>>2]=a;oa(a)}a=H[g+28>>2];if(a){H[g+32>>2]=a;oa(a)}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g- -64|0;return A|0}sa();v()}function oj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0;h=ca+-64|0;ca=h;H[a+8>>2]=e;x=a+32|0;f=H[x>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){ya(x,e-d|0);H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;d=0;if(!e){break a}}Pa(h+16|0,e,h);i=H[h+28>>2];d=H[h+32>>2]}H[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[h+32>>2]=(e<<2)+i;break c}Pa(h+16|12,e-d|0,h)}H[h>>2]=0;f=H[h+40>>2];d=H[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[h+44>>2]=f+(e<<2);break d}Pa(h+40|0,e-d|0,h)}H[h>>2]=0;f=H[h+52>>2];d=H[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[h+56>>2]=f+(e<<2);break e}Pa(h+52|0,e-d|0,h)}f:{if(H[a+8>>2]<=0){break f}g=H[h+16>>2];j=H[a+32>>2];i=0;while(1){d=i<<2;f=H[d+g>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}i=i+1|0;d=H[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=H[b+g>>2]+H[g+j>>2]|0;H[f>>2]=g;h:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break h}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}G=H[a+52>>2];A=H[a+48>>2];y=pa(16);d=y;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=pa(d);H[h>>2]=t;H[h+8>>2]=d+t;ra(t,0,d)}z=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}n=H[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=H[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=H[G>>2];r=H[A>>2];i=p+(H[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=H[r+(o<<2)>>2]}o=H[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=H[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=H[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=H[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=H[(h+16|0)+N(j,12)>>2];u:{if(!e){break u}l=N(e,l);r=N(e,i);p=N(e,o);i=0;s=0;if(F){while(1){H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2];o=i|1;H[g+(o<<2)>>2]=(H[(l+o<<2)+c>>2]+H[(o+r<<2)+c>>2]|0)-H[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=H[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=H[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=H[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ra(t,0,L)}d=g-1|0;r=(d<<2)+y|0;d=N(d,12)+a|0;o=d;s=H[d- -64>>2];k=0;d=H[h>>2];f=0;while(1){j=H[r>>2];H[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(H[H[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=H[(h+16|0)+N(k,12)>>2];l=0;i=0;p=0;if(!M){while(1){n=i<<2;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];q=n|4;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];q=n|8;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];n=n|12;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;H[p>>2]=H[j+n>>2]+H[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=N(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(F){break n}break m}g=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+k>>2];l=H[a+16>>2];z:{if((f|0)>(l|0)){H[d+j>>2]=l;break z}d=d+j|0;l=H[a+12>>2];if((l|0)>(f|0)){H[d>>2]=l;break z}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;A:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break A}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}break k}Ca();v()}while(1){j=i<<2;k=j+t|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+t|0;H[j>>2]=H[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+t>>2];k=H[a+16>>2];B:{if((f|0)>(k|0)){H[d+j>>2]=k;break B}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break B}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;C:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break C}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[h>>2];if(a){oa(a)}oa(y);a=H[h+52>>2];if(a){H[h+56>>2]=a;oa(a)}a=H[h+40>>2];if(a){H[h+44>>2]=a;oa(a)}a=H[h+28>>2];if(a){H[h+32>>2]=a;oa(a)}a=H[h+16>>2];if(a){H[h+20>>2]=a;oa(a)}ca=h- -64|0;return z|0}sa();v()}function Od(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;i=ca-80|0;ca=i;H[i+76>>2]=b;y=i+55|0;r=i+56|0;a:{b:{c:{d:{e:while(1){h=b;if((o^2147483647)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=h;g=I[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(I[g+1|0]!=37){b=g;break j}f=f+1|0;j=I[g+2|0];b=g+2|0;g=b;if((j|0)==37){continue}break}}f=f-h|0;x=o^2147483647;if((f|0)>(x|0)){break d}if(a){Ab(a,h,f)}if(f){continue e}H[i+76>>2]=b;f=b+1|0;p=-1;if(!(I[b+2|0]!=36|F[b+1|0]-48>>>0>=10)){p=F[b+1|0]-48|0;s=1;f=b+3|0}H[i+76>>2]=f;n=0;g=F[f|0];b=g-32|0;k:{if(b>>>0>31){k=f;break k}k=f;b=1<<b;if(!(b&75913)){break k}while(1){k=f+1|0;H[i+76>>2]=k;n=b|n;g=F[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=k;b=1<<b;if(b&75913){continue}break}}l:{if((g|0)==42){m:{if(!(I[k+2|0]!=36|F[k+1|0]-48>>>0>=10)){H[((F[k+1|0]<<2)+e|0)-192>>2]=10;g=k+3|0;s=1;b=H[((F[k+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=k+1|0;if(!a){H[i+76>>2]=g;s=0;q=0;break l}b=H[c>>2];H[c>>2]=b+4;s=0;b=H[b>>2]}H[i+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;n=n|8192;break l}q=Nd(i+76|0);if((q|0)<0){break d}g=H[i+76>>2]}f=0;m=-1;n:{if(I[g|0]!=46){b=g;u=0;break n}if(I[g+1|0]==42){o:{if(!(I[g+3|0]!=36|F[g+2|0]-48>>>0>=10)){H[((F[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;m=H[((F[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;m=0;if(!a){break o}j=H[c>>2];H[c>>2]=j+4;m=H[j>>2]}H[i+76>>2]=b;u=(m^-1)>>>31|0;break n}H[i+76>>2]=g+1;m=Nd(i+76|0);b=H[i+76>>2];u=1}while(1){g=f;k=28;l=b;f=F[b|0];if(f-123>>>0<4294967238){break c}b=l+1|0;f=I[(f+N(g,58)|0)+13711|0];if(f-1>>>0<8){continue}break}H[i+76>>2]=b;p:{q:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){H[(p<<2)+e>>2]=f;j=(p<<3)+d|0;f=H[j+4>>2];H[i+64>>2]=H[j>>2];H[i+68>>2]=f;break q}if(!a){break f}Md(i- -64|0,f,c);break p}if((p|0)>=0){break c}}f=0;if(!a){continue e}}j=n&-65537;n=n&8192?j:n;p=0;t=1132;k=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{f=F[l|0];f=g?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(f-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((f|0)==83){break w}break g}l=H[i+64>>2];j=H[i+68>>2];t=1132;break z}f=0;I:{switch(g&255){case 0:H[H[i+64>>2]>>2]=o;continue e;case 1:H[H[i+64>>2]>>2]=o;continue e;case 2:h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e;case 3:G[H[i+64>>2]>>1]=o;continue e;case 4:F[H[i+64>>2]]=o;continue e;case 6:H[H[i+64>>2]>>2]=o;continue e;case 7:break I;default:continue e}}h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e}m=m>>>0<=8?8:m;n=n|8;f=120}h=r;l=H[i+64>>2];j=H[i+68>>2];if(l|j){z=f&32;while(1){h=h-1|0;F[h|0]=z|I[(l&15)+14240|0];w=!j&l>>>0>15|(j|0)!=0;g=j;j=g>>>4|0;l=(g&15)<<28|l>>>4;if(w){continue}break}}if(!(H[i+64>>2]|H[i+68>>2])|!(n&8)){break y}t=(f>>>4|0)+1132|0;p=2;break y}f=r;h=H[i+68>>2];j=h;l=H[i+64>>2];if(h|l){while(1){f=f-1|0;F[f|0]=l&7|48;g=!j&l>>>0>7|(j|0)!=0;h=j;j=h>>>3|0;l=(h&7)<<29|l>>>3;if(g){continue}break}}h=f;if(!(n&8)){break y}f=r-h|0;m=(f|0)<(m|0)?m:f+1|0;break y}l=H[i+64>>2];h=H[i+68>>2];j=h;if((h|0)<0){f=0-(((l|0)!=0)+j|0)|0;j=f;l=0-l|0;H[i+64>>2]=l;H[i+68>>2]=f;p=1;t=1132;break z}if(n&2048){p=1;t=1133;break z}p=n&1;t=p?1134:1132}g=r;if(j){while(1){g=g-1|0;f=j;w=Tj(l,f,10,0);h=da;A=g,B=l-Rj(w,h,10,0)|48,F[A|0]=B;l=w;j=h;if(f>>>0>9){continue}break}}h=l;if(h){while(1){g=g-1|0;f=(h>>>0)/10|0;F[g|0]=h-N(f,10)|48;j=h>>>0>9;h=f;if(j){continue}break}}h=g}if((m|0)<0?u:0){break d}n=u?n&-65537:n;f=H[i+64>>2];j=H[i+68>>2];if(!(m|(f|j)!=0)){h=r;m=0;break g}f=!(f|j)+(r-h|0)|0;m=(f|0)<(m|0)?m:f;break g}g=m>>>0>=2147483647?2147483647:m;k=g;n=(g|0)!=0;h=H[i+64>>2];h=h?h:1614;f=h;J:{K:{L:{M:{if(!(f&3)|!g){break M}while(1){if(!I[f|0]){break L}k=k-1|0;n=(k|0)!=0;f=f+1|0;if(!(f&3)){break M}if(k){continue}break}}if(!n){break K}if(!(!I[f|0]|k>>>0<4)){while(1){l=H[f>>2];if((l^-1)&l-16843009&-2139062144){break L}f=f+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break K}}while(1){if(!I[f|0]){break J}f=f+1|0;k=k-1|0;if(k){continue}break}}f=0}f=f?f-h|0:g;k=f+h|0;if((m|0)>=0){n=j;m=f;break g}n=j;m=f;if(I[k|0]){break d}break g}if(m){g=H[i+64>>2];break u}f=0;ib(a,32,q,0,n);break t}H[i+12>>2]=0;H[i+8>>2]=H[i+64>>2];g=i+8|0;H[i+64>>2]=g;m=-1}f=0;N:{while(1){h=H[g>>2];if(!h){break N}j=Ld(i+4|0,h);h=(j|0)<0;if(!(h|j>>>0>m-f>>>0)){g=g+4|0;f=f+j|0;if(m>>>0>f>>>0){continue}break N}break}if(h){break b}}k=61;if((f|0)<0){break c}ib(a,32,q,f,n);if(!f){f=0;break t}k=0;g=H[i+64>>2];while(1){h=H[g>>2];if(!h){break t}h=Ld(i+4|0,h);k=h+k|0;if(k>>>0>f>>>0){break t}Ab(a,i+4|0,h);g=g+4|0;if(f>>>0>k>>>0){continue}break}}ib(a,32,q,f,n^8192);f=(f|0)<(q|0)?q:f;continue e}if((m|0)<0?u:0){break d}v()}F[i+55|0]=H[i+64>>2];m=1;h=y;n=j;break g}g=I[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=H[(f<<2)+e>>2];if(a){Md((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(H[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}k=28;break c}l=k-h|0;j=(m|0)>(l|0)?m:l;if((j|0)>(p^2147483647)){break d}k=61;g=j+p|0;f=(g|0)<(q|0)?q:g;if((x|0)<(f|0)){break c}ib(a,32,f,g,n);Ab(a,t,p);ib(a,48,f,g,n^65536);ib(a,48,j,l,0);Ab(a,h,l);ib(a,32,f,g,n^8192);continue}break}o=0;break a}k=61}H[3992]=k}o=-1}ca=i+80|0;return o}function hj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;N=a+32|0;e=H[N>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}j=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;Z=d>>>0<=1?1:d;_=a+68|0;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}l=ca-80|0;ca=l;f=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=H[H[j>>2]+(g<<2)>>2]}n=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){n=H[H[j>>2]+(e<<2)>>2]}j=H[o+36>>2];e=H[j>>2];j=H[j+4>>2]-e>>2;if(j>>>0<=f>>>0|j>>>0<=n>>>0){break e}f:{g:{h:{i:{j:{k:{i=H[e+(n<<2)>>2];f=H[e+(f<<2)>>2];if((i|0)>=(d|0)|(f|0)>=(d|0)){break k}j=(i<<3)+c|0;u=H[j+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];A=H[j>>2];j=H[g>>2];if(!((A|0)!=(j|0)|(e|0)!=(u|0))){H[o+8>>2]=j;H[o+12>>2]=e;break j}n=H[H[o+4>>2]+(d<<2)>>2];H[l+72>>2]=0;H[l+76>>2]=0;g=l- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[l+56>>2]=0;H[l+60>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+56|0);n=H[H[o+4>>2]+(f<<2)>>2];H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+32|0);n=H[H[o+4>>2]+(i<<2)>>2];H[l+24>>2]=0;H[l+28>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+8|0);g=H[l+16>>2];w=H[l+40>>2];B=g-w|0;O=H[l+44>>2];g=H[l+20>>2]-(O+(g>>>0<w>>>0)|0)|0;J=g;i=Rj(B,g,B,g);m=da;g=H[l+8>>2];C=H[l+32>>2];D=g-C|0;P=H[l+36>>2];g=H[l+12>>2]-(P+(g>>>0<C>>>0)|0)|0;K=g;k=i;i=Rj(D,g,D,g);g=k+i|0;k=da+m|0;k=g>>>0<i>>>0?k+1|0:k;i=H[l+24>>2];E=H[l+48>>2];G=i-E|0;Q=H[l+52>>2];i=H[l+28>>2]-(Q+(i>>>0<E>>>0)|0)|0;L=i;h=g;g=Rj(G,i,G,i);q=h+g|0;h=da+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}n=0;x=Tj(-1,2147483647,q,r);f=j>>31;S=f;h=f>>31;R=j;g=h;m=j^g;j=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0<j>>>0|e>>>0<g>>>0;j=f?j:h;i=da;e=f?g:e;if((i|0)==(e|0)&j>>>0>x>>>0|e>>>0>i>>>0){break f}j=H[l+64>>2];U=H[l+68>>2];e=Rj(j-w|0,U-((j>>>0<w>>>0)+O|0)|0,B,J);f=da;g=H[l+56>>2];V=H[l+60>>2];i=Rj(g-C|0,V-((g>>>0<C>>>0)+P|0)|0,D,K);e=i+e|0;h=da+f|0;m=H[l+72>>2];W=H[l+76>>2];f=Rj(m-E|0,W-((m>>>0<E>>>0)+Q|0)|0,G,L);y=f+e|0;e=da+(e>>>0<i>>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;i=e;h=e^y;e=h-e|0;i=(f^i)-((h>>>0<i>>>0)+i|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0<R>>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0<z>>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0<M>>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0<p>>>0;f=Tj(-1,2147483647,h?k:Y,h?p:f);h=da;if((h|0)==(i|0)&e>>>0>f>>>0|h>>>0<i>>>0){break f}f=e;e=i;h=K>>31;p=h^D;i=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=p?i:t;h=p?h:k;k=L>>31;p=i;s=k^G;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;i=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=Tj(-1,2147483647,i?p:t,i?h:k);h=da;if((h|0)==(e|0)&f>>>0>i>>>0|e>>>0>h>>>0){break f}i=1;f=0;k=Sj(Rj(y,x,B,J),da,q,r);h=k+w|0;e=da+O|0;e=h>>>0<k>>>0?e+1|0:e;k=j-h|0;e=U-((h>>>0>j>>>0)+e|0)|0;k=Rj(k,e,k,e);w=da;h=Sj(Rj(y,x,D,K),da,q,r);j=h+C|0;e=da+P|0;e=h>>>0>j>>>0?e+1|0:e;h=g-j|0;e=V-((g>>>0<j>>>0)+e|0)|0;j=Rj(h,e,h,e);e=j+k|0;h=da+w|0;h=e>>>0<j>>>0?h+1|0:h;k=e;g=Sj(Rj(y,x,G,L),da,q,r);j=g+E|0;e=da+Q|0;e=g>>>0>j>>>0?e+1|0:e;g=m-j|0;e=W-((j>>>0>m>>>0)+e|0)|0;g=Rj(g,e,g,e);j=g+k|0;e=da+h|0;j=Rj(j,g>>>0>j>>>0?e+1|0:e,q,r);e=da;m=e;if(!e&j>>>0<=1){break i}h=j;g=m;while(1){e=f<<1|i>>>31;i=i<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break h}g=o;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[o+8>>2]=0;H[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[g+8>>2]=H[e>>2];H[o+12>>2]=H[e+4>>2]}n=1;break f}f=m;i=j;if(j-1|0){break g}}while(1){e=Tj(j,m,i,f);h=f+da|0;e=e+i|0;h=e>>>0<i>>>0?h+1|0:h;i=(h&1)<<31|e>>>1;f=h>>>1|0;e=Rj(i,f,i,f);g=da;if((m|0)==(g|0)&e>>>0>j>>>0|g>>>0>m>>>0){continue}break}}e=H[o+20>>2];if(!e){break f}j=e-1|0;m=H[H[o+16>>2]+(j>>>3&536870908)>>2];H[o+20>>2]=j;n=1;e=Rj(y,x,z,u);h=da;g=e;e=Rj(q,r,M,T);g=g+e|0;h=da+h|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(i,f,A,X);j=m>>>j&1;m=j?0-e|0:e;g=m+g|0;k=h;h=da;k=k+(j?0-(h+((e|0)!=0)|0)|0:h)|0;$=o,aa=Sj(g,g>>>0<m>>>0?k+1|0:k,q,r),H[$+12>>2]=aa;e=Rj(y,x,A,X);m=da;g=e;e=Rj(q,r,R,S);g=g+e|0;h=da+m|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(i,f,z,u);f=0-e|0;i=da;k=(j?i:0-(((e|0)!=0)+i|0)|0)+h|0;i=g;g=j?e:f;f=i+g|0;$=o,aa=Sj(f,f>>>0<g>>>0?k+1|0:k,q,r),H[$+8>>2]=aa}ca=l+80|0;e=n;break d}Ca();v()}j=e;if(!e){return 0}l:{if(H[a+8>>2]<=0){break l}i=H[N>>2];e=0;while(1){f=e<<2;g=H[f+_>>2];m=H[a+16>>2];m:{if((g|0)>(m|0)){H[f+i>>2]=m;break m}f=f+i|0;m=H[a+12>>2];if((m|0)>(g|0)){H[f>>2]=m;break m}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;m=e+c|0;n=b+e|0;while(1){g=f<<2;e=g+m|0;g=H[g+n>>2]+H[g+i>>2]|0;H[e>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)<H[a+8>>2]){continue}break}}d=d+1|0;if((Z|0)!=(d|0)){continue}break}}return j|0}Ca();v()}function xj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;N=a+32|0;e=H[N>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}o=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}n=a+60|0;d=d>>>2|0;Z=d>>>0<=1?1:d;_=a+68|0;d=0;while(1){e=H[a+56>>2];i=H[e>>2];if(H[e+4>>2]-i>>2>>>0<=d>>>0){break a}l=ca-80|0;ca=l;f=-1;i=H[i+(d<<2)>>2];e=-1;d:{if((i|0)==-1){break d}e=i+1|0;f=(e>>>0)%3|0?e:i-2|0;e=i-1|0;if((i>>>0)%3|0){break d}e=i+2|0}g=H[n+36>>2];i=H[g>>2];e:{f:{g:{h:{i:{g=H[g+4>>2]-i>>2;k=f<<2;f=H[H[n+32>>2]+28>>2];j=H[k+f>>2];if(g>>>0<=j>>>0){break i}e=H[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}f=H[i+(j<<2)>>2];j:{k:{j=H[i+(e<<2)>>2];if((d|0)<=(f|0)|(j|0)>=(d|0)){break k}i=(j<<3)+c|0;u=H[i+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];A=H[i>>2];i=H[g>>2];if(!((A|0)!=(i|0)|(e|0)!=(u|0))){H[n+8>>2]=i;H[n+12>>2]=e;break j}o=H[H[n+4>>2]+(d<<2)>>2];H[l+72>>2]=0;H[l+76>>2]=0;g=l- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[l+56>>2]=0;H[l+60>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+56|0);o=H[H[n+4>>2]+(f<<2)>>2];H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+32|0);o=H[H[n+4>>2]+(j<<2)>>2];H[l+24>>2]=0;H[l+28>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+8|0);g=H[l+16>>2];w=H[l+40>>2];B=g-w|0;O=H[l+44>>2];g=H[l+20>>2]-(O+(g>>>0<w>>>0)|0)|0;J=g;j=Rj(B,g,B,g);m=da;g=H[l+8>>2];C=H[l+32>>2];D=g-C|0;P=H[l+36>>2];g=H[l+12>>2]-(P+(g>>>0<C>>>0)|0)|0;K=g;k=j;j=Rj(D,g,D,g);g=k+j|0;k=da+m|0;k=g>>>0<j>>>0?k+1|0:k;j=H[l+24>>2];E=H[l+48>>2];G=j-E|0;Q=H[l+52>>2];j=H[l+28>>2]-(Q+(j>>>0<E>>>0)|0)|0;L=j;h=g;g=Rj(G,j,G,j);q=h+g|0;h=da+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}o=0;x=Tj(-1,2147483647,q,r);f=i>>31;S=f;h=f>>31;R=i;g=h;m=i^g;i=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0<i>>>0|e>>>0<g>>>0;i=f?i:h;j=da;e=f?g:e;if((j|0)==(e|0)&i>>>0>x>>>0|e>>>0>j>>>0){break e}i=H[l+64>>2];U=H[l+68>>2];e=Rj(i-w|0,U-((i>>>0<w>>>0)+O|0)|0,B,J);f=da;g=H[l+56>>2];V=H[l+60>>2];j=Rj(g-C|0,V-((g>>>0<C>>>0)+P|0)|0,D,K);e=j+e|0;h=da+f|0;m=H[l+72>>2];W=H[l+76>>2];f=Rj(m-E|0,W-((m>>>0<E>>>0)+Q|0)|0,G,L);y=f+e|0;e=da+(e>>>0<j>>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;j=e;h=e^y;e=h-e|0;j=(f^j)-((h>>>0<j>>>0)+j|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0<R>>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0<z>>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0<M>>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0<p>>>0;f=Tj(-1,2147483647,h?k:Y,h?p:f);h=da;if((h|0)==(j|0)&e>>>0>f>>>0|h>>>0<j>>>0){break e}f=e;e=j;h=K>>31;p=h^D;j=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=p?j:t;h=p?h:k;k=L>>31;p=j;s=k^G;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;j=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=Tj(-1,2147483647,j?p:t,j?h:k);h=da;if((h|0)==(e|0)&f>>>0>j>>>0|e>>>0>h>>>0){break e}j=1;f=0;k=Sj(Rj(y,x,B,J),da,q,r);h=k+w|0;e=da+O|0;e=h>>>0<k>>>0?e+1|0:e;k=i-h|0;e=U-((h>>>0>i>>>0)+e|0)|0;k=Rj(k,e,k,e);w=da;h=Sj(Rj(y,x,D,K),da,q,r);i=h+C|0;e=da+P|0;e=h>>>0>i>>>0?e+1|0:e;h=g-i|0;e=V-((g>>>0<i>>>0)+e|0)|0;i=Rj(h,e,h,e);e=i+k|0;h=da+w|0;h=e>>>0<i>>>0?h+1|0:h;k=e;g=Sj(Rj(y,x,G,L),da,q,r);i=g+E|0;e=da+Q|0;e=g>>>0>i>>>0?e+1|0:e;g=m-i|0;e=W-((i>>>0>m>>>0)+e|0)|0;g=Rj(g,e,g,e);i=g+k|0;e=da+h|0;i=Rj(i,g>>>0>i>>>0?e+1|0:e,q,r);e=da;m=e;if(!e&i>>>0<=1){break h}h=i;g=m;while(1){e=f<<1|j>>>31;j=j<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break g}g=n;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[n+8>>2]=0;H[n+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[g+8>>2]=H[e>>2];H[n+12>>2]=H[e+4>>2]}o=1;break e}Ca();v()}f=m;j=i;if(i-1|0){break f}}while(1){e=Tj(i,m,j,f);h=f+da|0;e=e+j|0;h=e>>>0<j>>>0?h+1|0:h;j=(h&1)<<31|e>>>1;f=h>>>1|0;e=Rj(j,f,j,f);g=da;if((m|0)==(g|0)&e>>>0>i>>>0|g>>>0>m>>>0){continue}break}}e=H[n+20>>2];if(!e){break e}i=e-1|0;m=H[H[n+16>>2]+(i>>>3&536870908)>>2];H[n+20>>2]=i;o=1;e=Rj(y,x,z,u);h=da;g=e;e=Rj(q,r,M,T);g=g+e|0;h=da+h|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(j,f,A,X);i=m>>>i&1;m=i?0-e|0:e;g=m+g|0;k=h;h=da;k=k+(i?0-(h+((e|0)!=0)|0)|0:h)|0;$=n,aa=Sj(g,g>>>0<m>>>0?k+1|0:k,q,r),H[$+12>>2]=aa;e=Rj(y,x,A,X);m=da;g=e;e=Rj(q,r,R,S);g=g+e|0;h=da+m|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(j,f,z,u);f=0-e|0;j=da;k=(i?j:0-(((e|0)!=0)+j|0)|0)+h|0;j=g;g=i?e:f;f=j+g|0;$=n,aa=Sj(f,f>>>0<g>>>0?k+1|0:k,q,r),H[$+8>>2]=aa}ca=l+80|0;if(!o){return 0}l:{if(H[a+8>>2]<=0){break l}g=H[N>>2];e=0;while(1){f=e<<2;i=H[f+_>>2];j=H[a+16>>2];m:{if((i|0)>(j|0)){H[f+g>>2]=j;break m}f=f+g|0;j=H[a+12>>2];if((j|0)>(i|0)){H[f>>2]=j;break m}H[f>>2]=i}e=e+1|0;i=H[a+8>>2];if((e|0)<(i|0)){continue}break}f=0;if((i|0)<=0){break l}e=d<<3;j=e+c|0;m=b+e|0;while(1){i=f<<2;e=i+j|0;i=H[i+m>>2]+H[g+i>>2]|0;H[e>>2]=i;n:{if((i|0)>H[a+16>>2]){k=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break n}k=i+H[a+20>>2]|0}H[e>>2]=k}f=f+1|0;if((f|0)<H[a+8>>2]){continue}break}}d=d+1|0;if((Z|0)!=(d|0)){continue}break}}return o|0}Ca();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=a+16|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;c=d+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+32|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+48|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d- -64|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+80|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+96|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+112|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+128|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+144|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+160|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+176|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+192|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+208|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+224|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+240|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+256|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+272|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+288|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+304|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+320|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+336|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+352|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+368|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+384|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+416|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+432|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+448|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+464|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+480|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;d=d+496|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;H[a+528>>2]=0;H[a+532>>2]=0;F[a+533|0]=0;F[a+534|0]=0;F[a+535|0]=0;F[a+536|0]=0;F[a+537|0]=0;F[a+538|0]=0;F[a+539|0]=0;F[a+540|0]=0;H[a+544>>2]=0;H[a+548>>2]=0;H[a+560>>2]=0;H[a+552>>2]=0;H[a+556>>2]=0;H[a+564>>2]=0;H[a+568>>2]=0;H[a+580>>2]=0;H[a+572>>2]=0;H[a+576>>2]=0;H[a+584>>2]=0;H[a+588>>2]=0;H[a+600>>2]=0;H[a+592>>2]=0;H[a+596>>2]=0;H[a+612>>2]=0;H[a+604>>2]=0;H[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+616>>2]=0;H[a+620>>2]=0;H[a+624>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;d=1;break a}d=b<<2;c=pa(d);H[a+604>>2]=c;f=c+d|0;H[a+612>>2]=f;ra(c,0,d);H[a+624>>2]=0;H[a+616>>2]=0;H[a+620>>2]=0;H[a+608>>2]=f;c=pa(d);H[a+616>>2]=c;f=c+d|0;H[a+624>>2]=f;ra(c,0,d);H[a+620>>2]=f;c=pa(d);H[e>>2]=c;f=c+d|0;H[e+8>>2]=f;ra(c,0,d);H[e+4>>2]=f;d=b<<5|1}tb(g,d,e);c=H[e>>2];if(c){H[e+4>>2]=c;oa(c)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;c=pa(b);H[e>>2]=c;f=b+c|0;H[e+8>>2]=f;ra(c,0,b);H[e+4>>2]=f}tb(a+640|0,d,e);b=H[e>>2];if(b){H[e+4>>2]=b;oa(b)}ca=e+16|0;return a}function gc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e+32768>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>32767){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>32767|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|m<O(-32768)|m!=m){break d}n=O(P(m));if(n==O(Infinity)){break d}e=(b<<1)+d|0;if(n<O(2147483648)){i=~~m}else{i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|m<O(-32768)|(O(P(m))==O(Infinity)|m!=m)){break d}if(m<O(0)|m>O(1)){break d}e=(b<<1)+d|0;l=T(+m*32767+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=T(l*32767+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return j}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function ec(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=H[b>>2];if((e|0)<0){break b}H[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>2147483647|k){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|m<O(-2147483648)|m!=m){break d}n=O(P(m));if(n==O(Infinity)){break d}e=(b<<2)+d|0;if(n<O(2147483648)){i=~~m}else{i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|m<O(-2147483648)|(O(P(m))==O(Infinity)|m!=m)){break d}if(m<O(0)|m>O(1)){break d}e=(b<<2)+d|0;l=T(+m*2147483647+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=T(l*2147483647+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return j}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b|0];if((e|0)<0){break b}G[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|m<O(0)|(O(P(m))==O(Infinity)|m!=m)){break d}e=(b<<1)+d|0;if(m<O(4294967296)&m>=O(0)){i=~~m>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|m<O(0)|(O(P(m))==O(Infinity)|m!=m)){break d}if(m>O(1)){break d}e=(b<<1)+d|0;j=T(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=T(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return l}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0,m=0,n=O(0),o=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b|0];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=G[b>>1];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=J[b>>1];H[e+4>>2]=0;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b>>2];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=0;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=H[b+4>>2];e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=H[b>>2];i=H[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;H[j>>2]=e;H[j+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=I[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break d}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=L[g>>2];if(k>=O(0x8000000000000000)|k<O(-0x8000000000000000)|k!=k){break a}n=O(P(k));if(n==O(Infinity)){break a}e=(b<<3)+d|0;e:{if(n<O(0x8000000000000000)){j=O(P(k))>=O(1)?~~(k>O(0)?O(R(O(T(O(k*O(2.3283064365386963e-10)))),O(4294967296))):O(U(O(O(k-O(~~k>>>0>>>0))*O(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=I[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break f}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=M[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=P(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=P(l)>=1?~~(l>0?R(T(l*2.3283064365386963e-10),4294967295):U((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ra(d,0,a<<3)}}function Oj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=H[a+8>>2];switch(H[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i)}oa(c);c=1}return c|0}function dc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|m<O(0)|(O(P(m))==O(Infinity)|m!=m)){break d}e=(b<<2)+d|0;if(m<O(4294967296)&m>=O(0)){i=~~m>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|m<O(0)|(O(P(m))==O(Infinity)|m!=m)){break d}if(m>O(1)){break d}e=(b<<2)+d|0;j=T(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=T(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return k}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(H[a+92>>2]==H[a+88>>2]){break e}c=H[a+52>>2];f:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break f}h=H[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0<e>>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}f=e+(d<<2)|0;H[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;H[f>>2]=H[c>>2];if((c|0)!=(h|0)){continue}break}}H[a+56>>2]=e+(g<<2);H[a+52>>2]=d;H[a+48>>2]=f;if(!h){break f}oa(h)}H[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=H[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=H[H[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=H[H[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=H[a+36>>2];h=d+(c>>>3&536870908)|0;g=H[h>>2];f=1<<c;if(!(g&f)){H[h>>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ua(f,c,d);d=H[a+36>>2]}f=d+i|0;d=H[f>>2];c=1<<e;if(!(d&c)){H[f>>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ua(d,e,c)}c=-1;c=(b|0)!=-1?H[H[H[a+4>>2]>>2]+(b<<2)>>2]:c;f=H[a+36>>2]+(c>>>3&536870908)|0;d=H[f>>2];e=1<<c;if(!(d&e)){H[f>>2]=d|e;Ua(a+8|0,c,b)}d=H[a+84>>2];if((d|0)>2){break e}while(1){e=N(d,12)+a|0;b=H[e+52>>2];if((b|0)==H[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=H[b>>2];H[e+52>>2]=b;H[a+84>>2]=d;if((c|0)==-1){break e}f=H[a+24>>2];b=(c>>>0)/3|0;j:{if(H[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;H[b>>2]=H[b>>2]|1<<k;d=-1;l:{m:{n:{o:{p:{q:{r:{s:{d=(c|0)!=-1?H[H[H[a+4>>2]>>2]+(c<<2)>>2]:d;f=H[a+36>>2]+(d>>>3&536870908)|0;e=H[f>>2];b=1<<d;if(!(e&b)){H[f>>2]=b|e;i=H[(H[H[a+16>>2]+96>>2]+N(k,12)|0)+((c>>>0)%3<<2)>>2];l=H[H[a+20>>2]+4>>2];f=H[l+4>>2];t:{if((f|0)!=H[l+8>>2]){H[f>>2]=i;H[l+4>>2]=f+4;break t}j=H[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(j|0)){continue}break}}H[l+8>>2]=e+(h<<2);H[l+4>>2]=g;H[l>>2]=b;if(!j){break t}oa(j)}j=H[a+12>>2];f=H[j+4>>2];u:{if((f|0)!=H[j+8>>2]){H[f>>2]=c;H[j+4>>2]=f+4;break u}i=H[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(i|0)){continue}break}}H[j+8>>2]=e+(h<<2);H[j+4>>2]=g;H[j>>2]=b;if(!i){break u}oa(i)}b=H[a+12>>2];H[H[b+12>>2]+(d<<2)>>2]=H[b+24>>2];H[b+24>>2]=H[b+24>>2]+1}if((c|0)==-1){break k}g=H[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=H[H[g+12>>2]+(b<<2)>>2]}v:{w:{if((N(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=H[H[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=H[H[a+24>>2]+(b>>>3&268435452)>>2]&1<<b;if(d){break q}l=(b|0)!=0;break p}l=1;if(!d){break p}break k}sa();v()}sa();v()}if(!b){break o}break k}b=d?-1:e;x:{if(H[H[a+24>>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=H[H[g>>2]+(c<<2)>>2];if(!(H[H[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=H[a+88>>2]+(b<<2)|0;e=H[b>>2];H[b>>2]=e+1;k=(e|0)<=0?2:1}if(H[a+84>>2]>=(k|0)&l){break m}j=N(k,12)+a|0;b=H[j+52>>2];y:{if((b|0)!=H[j+56>>2]){H[b>>2]=c;H[j+52>>2]=b+4;break y}i=H[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(i|0)){continue}break}}H[j+48>>2]=d;H[j+52>>2]=c;H[j+56>>2]=e+(g<<2);if(!i){break y}oa(i)}if(H[a+84>>2]<=(k|0)){break x}H[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=H[H[H[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(H[H[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=H[a+88>>2]+(c<<2)|0;c=H[b>>2];H[b>>2]=c+1;b=(c|0)<=0?2:1}if(H[a+84>>2]<(b|0)){break l}c=f}f=H[a+24>>2];continue}break}k=N(b,12)+a|0;c=H[k+52>>2];z:{if((c|0)!=H[k+56>>2]){H[c>>2]=f;H[k+52>>2]=c+4;break z}i=H[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[k+48>>2]=d;H[k+52>>2]=f;H[k+56>>2]=e+(g<<2);if(!i){break z}oa(i)}d=H[a+84>>2];if((d|0)<=(b|0)){break j}H[a+84>>2]=b;d=b;break j}d=H[a+84>>2]}if((d|0)<3){continue}break}}return 1}wa();v()}sa();v()}sa();v()}sa();v()}function gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=ca-96|0;ca=n;o=H[a+4>>2];d=H[o+32>>2];i=H[d+8>>2];j=H[d+12>>2];e=j;c=H[d+20>>2];f=H[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=i>>>0|(c|0)>(e|0)){break a}p=H[d>>2];g=I[p+f|0];h=f+1|0;e=h?c:c+1|0;H[d+16>>2]=h;H[d+20>>2]=e;if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}m=I[h+p|0];h=f+2|0;e=h>>>0<2?c+1|0:c;H[d+16>>2]=h;H[d+20>>2]=e;l=g<<24>>24;b:{if((l|0)>=0){k=H[a+216>>2];if(g>>>0>=(H[a+220>>2]-k|0)/144>>>0){break a}k=k+N(g,144)|0;if(H[k>>2]<0){break b}break a}if(H[a+212>>2]>=0){break a}k=a+212|0}H[k>>2]=b;c:{d:{e:{f:{g:{h:{k=J[o+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}e=I[h+p|0];f=f+3|0;c=f>>>0<3?c+1|0:c;H[d+16>>2]=f;H[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!m){break i}if(!d){break h}break a}if(m){break g}d=0}if((l|0)<0){e=a+184|0}else{c=H[a+216>>2]+N(g,144)|0;F[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=ca-112|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(120);H[d>>2]=12172;H[d+4>>2]=0;H[d+116>>2]=0;H[d+112>>2]=e;H[d+108>>2]=h;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[d+8>>2]=12384;f=d- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[d+72>>2]=0;H[d+76>>2]=0;H[d+80>>2]=0;H[d+84>>2]=0;H[d+88>>2]=0;H[d+104>>2]=0;H[d+96>>2]=0;H[d+100>>2]=0;f=H[a+8>>2];H[c+48>>2]=0;H[c+52>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;i=c+32|0;H[i>>2]=0;H[i+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;g=c- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[c+72>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+104>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+8>>2]=12384;H[c+96>>2]=0;H[c+100>>2]=0;H[c+12>>2]=f;g=H[f>>2];j=H[f+4>>2];F[c+111|0]=0;m=i;i=c+111|0;Oa(m,(j-g>>2>>>0)/3|0,i);g=H[c+12>>2];j=H[g+28>>2];g=H[g+24>>2];F[c+111|0]=0;Oa(c+44|0,j-g>>2,i);H[c+28>>2]=d;H[c+24>>2]=h;H[c+20>>2]=e;H[c+16>>2]=f;f=d+8|0;e=c+8|0;fd(f,e);j:{if((e|0)==(f|0)){H[d+92>>2]=H[e+84>>2];break j}Cb(d+56|0,H[e+48>>2],H[e+52>>2]);Cb(d+68|0,H[e+60>>2],H[e- -64>>2]);Cb(d+80|0,H[e+72>>2],H[e+76>>2]);H[d+92>>2]=H[e+84>>2];Aa(d+96|0,H[e+88>>2],H[e+92>>2])}H[c+8>>2]=12384;e=H[c+96>>2];if(e){H[c+100>>2]=e;oa(e)}e=H[c+80>>2];if(e){H[c+84>>2]=e;oa(e)}e=H[c+68>>2];if(e){H[c+72>>2]=e;oa(e)}e=H[c+56>>2];if(e){H[c+60>>2]=e;oa(e)}H[c+8>>2]=12620;e=H[c+44>>2];if(e){oa(e)}e=H[c+32>>2];if(e){oa(e)}ca=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=H[a+216>>2];c=H[o+44>>2];d=pa(80);H[d>>2]=12932;H[d+4>>2]=0;H[d+76>>2]=0;H[d+68>>2]=c;H[d+8>>2]=11872;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;e=e+N(g,144)|0;f=e+104|0;H[d+72>>2]=f;H[d- -64>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[n+24>>2]=c;c=n;H[c+68>>2]=0;H[c+72>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+28>>2]=d;h=H[c+28>>2];H[c+8>>2]=H[c+24>>2];H[c+12>>2]=h;H[c+20>>2]=f;f=e+4|0;H[c+16>>2]=f;H[c+36>>2]=0;H[c+40>>2]=0;H[c+32>>2]=11872;e=H[c+20>>2];H[c>>2]=H[c+16>>2];H[c+4>>2]=e;e=c+32|0;Ie(e,f,c);c=d+8|0;fd(c,e);if((c|0)!=(e|0)){Cb(d+56|0,H[e+48>>2],H[e+52>>2])}He(e);break c}c=ca+-64|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(80);H[d>>2]=12640;H[d+4>>2]=0;H[d+76>>2]=0;H[d+72>>2]=e;H[d+68>>2]=h;H[d+8>>2]=12804;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d- -64>>2]=0;i=d+56|0;f=i;H[f>>2]=0;H[f+4>>2]=0;f=H[a+8>>2];H[c+40>>2]=0;H[c+44>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;g=c+24|0;H[g>>2]=0;H[g+4>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c>>2]=12804;H[c+4>>2]=f;j=H[f>>2];l=H[f+4>>2];F[c+63|0]=0;m=g;g=c+63|0;Oa(m,(l-j>>2>>>0)/3|0,g);j=H[c+4>>2];l=H[j+28>>2];j=H[j+24>>2];F[c+63|0]=0;Oa(c+36|0,l-j>>2,g);H[c+20>>2]=d;H[c+16>>2]=h;H[c+12>>2]=e;H[c+8>>2]=f;fd(d+8|0,c);Cb(i,H[c+48>>2],H[c+52>>2]);H[c>>2]=12804;e=H[c+48>>2];if(e){H[c+52>>2]=e;oa(e)}H[c>>2]=12620;e=H[c+36>>2];if(e){oa(e)}e=H[c+24>>2];if(e){oa(e)}ca=c- -64|0}if(!d){break a}}d=od(pa(64),d);c=H[a+4>>2];a=d;d=b;k:{l:{if((d|0)>=0){h=c+8|0;b=H[c+12>>2];i=H[c+8>>2];e=b-i>>2;m:{if((e|0)>(d|0)){break m}f=d+1|0;if(d>>>0>=e>>>0){Vb(h,f-e|0);break m}if(e>>>0<=f>>>0){break m}f=i+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=H[b>>2];H[b>>2]=0;if(e){ea[H[H[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}H[c+12>>2]=f}c=H[h>>2]+(d<<2)|0;b=H[c>>2];H[c>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}ea[H[H[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}ca=n+96|0;return q|0}function Kd(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[e+12>>2]=a;a:{if(a>>>0<=211){d=H[Jd(14256,14448,e+12|0)>>2];break a}if(a>>>0>=4294967292){X();v()}f=(a>>>0)/210|0;d=N(f,210);H[e+8>>2]=a-d;g=Jd(14448,14640,e+8|0)-14448>>2;while(1){d=H[(g<<2)+14448>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0<a>>>0){break a}if((N(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((N(b,c)|0)!=(d|0)){continue}break}break b}b=H[(a<<2)+14256>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((N(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=N(f,210);continue}}ca=e+16|0;return d}function Ib(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ca-16|0;ca=j;a:{b:{c:{d:{if(I[H[a+4>>2]+36|0]<=1){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break c}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;H[b+16>>2]=e;H[b+20>>2]=c;break d}k=-1;if(!Ea(1,j+12|0,b)){break c}l=H[j+12>>2]}e:{f:{g:{h:{i:{if(!l){break i}c=H[a+8>>2];if((H[c+4>>2]-H[c>>2]>>2>>>0)/3>>>0<l>>>0){break c}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Ea(1,j+8|0,b)){break c}c=H[j+8>>2];if(!Ea(1,j+8|0,b)){break c}f=c+f|0;c=H[j+8>>2];if(f>>>0<c>>>0){break c}g=f-c|0;c=H[a+40>>2];k:{if((c|0)!=H[a+44>>2]){H[c+4>>2]=f;H[c>>2]=g;H[a+40>>2]=c+12;l=H[j+12>>2];break k}m=H[a+36>>2];d=c-m|0;o=(d|0)/12|0;e=o+1|0;if(e>>>0>=357913942){break j}c=o<<1;h=o>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(h){if(h>>>0>=357913942){break b}i=pa(N(h,12))}else{i=0}e=i+N(o,12)|0;H[e+4>>2]=f;H[e>>2]=g;c=va(e+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=i+N(h,12);H[a+40>>2]=e+12;H[a+36>>2]=c;if(!m){break k}oa(m)}p=p+1|0;if(l>>>0>p>>>0){continue}break}k=0;Db(b,0,0);if(l){while(1){e=I[b+36|0];c=J[H[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}p=0;c=H[b+32>>2];n=c>>>3|0;g=H[b+24>>2];e=n+g|0;d=H[b+28>>2];n:{if(e>>>0>=d>>>0){f=c;break n}e=I[e|0];f=c+1|0;H[b+32>>2]=f;n=f>>>3|0;p=e>>>(c&7)&1}if(d>>>0>g+n>>>0){break m}break l}if(!e){break l}p=0;f=H[b+32>>2];c=H[b+24>>2]+(f>>>3|0)|0;if(c>>>0>=K[b+28>>2]){break l}p=I[c|0]>>>(f&7)&1}H[b+32>>2]=f+1}c=H[a+36>>2]+N(k,12)|0;F[c+8|0]=I[c+8|0]&254|p&1;k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[b+36|0]=0;f=H[b+20>>2];e=0;d=H[b+32>>2]+7|0;e=d>>>0<7?1:e;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+H[b+16>>2]|0;c=c+f|0;H[b+16>>2]=d;H[b+20>>2]=d>>>0<e>>>0?c+1|0:c;break i}sa();v()}while(1){d=H[b+8>>2];c=H[b+12>>2];g=c;c=H[b+20>>2];e=c;h=H[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;i=f;if(f>>>0>d>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}m=H[b>>2];f=m+h|0;o=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=c;c=e;f=h+8|0;c=f>>>0<8?c+1|0:c;if(d>>>0<f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}i=i+m|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if(d>>>0<=f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=I[f+m|0];c=h+9|0;e=c>>>0<9?e+1|0:e;H[b+16>>2]=c;H[b+20>>2]=e;f=d&1;c=H[a+40>>2];o:{if((c|0)!=H[a+44>>2]){F[c+8|0]=f;H[c+4>>2]=i;H[c>>2]=o;H[a+40>>2]=c+12;l=H[j+12>>2];break o}m=H[a+36>>2];d=c-m|0;h=(d|0)/12|0;e=h+1|0;if(e>>>0>=357913942){break h}c=h<<1;g=h>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(g){if(g>>>0>=357913942){break b}e=pa(N(g,12))}else{e=0}h=e+N(h,12)|0;F[h+8|0]=f;H[h+4>>2]=i;H[h>>2]=o;c=va(h+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=e+N(g,12);H[a+40>>2]=h+12;H[a+36>>2]=c;if(!m){break o}oa(m)}n=n+1|0;if(l>>>0>n>>>0){continue}break}}H[j+8>>2]=0;c=J[H[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;f=H[b+12>>2];if(K[b+8>>2]<e>>>0&(f|0)<=(c|0)|(c|0)>(f|0)){break c}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break p}if((c|0)!=512){break e}k=-1;if(!Ea(1,j+8|0,b)){break c}f=H[j+8>>2]}if(!f){break e}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}n=0;l=0;while(1){if(!Ea(1,j+4|0,b)){break c}l=H[j+4>>2]+l|0;c=H[a+52>>2];q:{if((c|0)!=H[a+56>>2]){H[c>>2]=l;H[a+52>>2]=c+4;break q}i=H[a+48>>2];g=c-i|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break g}c=g>>>1|0;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=l;c=va(c,i,g);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!i){break q}oa(i)}n=n+1|0;if((n|0)!=(f|0)){continue}break}break e}sa();v()}sa();v()}k=0;while(1){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){k=-1;break c}d=d+H[b>>2]|0;g=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=H[a+52>>2];r:{if((c|0)!=H[a+56>>2]){H[c>>2]=g;H[a+52>>2]=c+4;break r}h=H[a+48>>2];i=c-h|0;e=i>>2;d=e+1|0;if(d>>>0>=1073741824){break a}c=i>>>1|0;d=i>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=g;c=va(c,h,i);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!h){break r}oa(h)}k=k+1|0;if((k|0)!=(f|0)){continue}break}}k=H[b+16>>2]}ca=j+16|0;return k}wa();v()}sa();v()}function Va(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(F[b|0]);L[(h<<2)+d>>2]=i?O(j/O(127)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(I[b|0]);L[(h<<2)+d>>2]=i?O(j/O(255)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(G[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(32767)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(J[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(65535)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(H[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(K[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +H[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +K[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=L[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=M[b>>3];b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=I[b|0]?O(1):O(0);b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ra(d,0,a<<2)}return l}function Hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=ca-32|0;ca=e;k=H[a+32>>2];b=J[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){b=H[k+8>>2];d=H[k+12>>2];c=b;b=H[k+20>>2];f=b;g=H[k+16>>2];h=g+4|0;b=h>>>0<4?b+1|0:b;if(c>>>0<h>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}l=H[k>>2];i=l+g|0;n=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[k+16>>2]=h;H[k+20>>2]=b;i=c;c=d;b=f;d=g+8|0;b=d>>>0<8?b+1|0:b;if(d>>>0>i>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}c=h+l|0;H[e+24>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[k+16>>2]=d;H[k+20>>2]=b;break b}if(!Fb(1,e+28|0,k)){break a}if(!Fb(1,e+24|0,H[a+32>>2])){break a}n=H[e+28>>2]}if(n>>>0>1431655765){break a}d=H[a+32>>2];b=d;g=H[b+8>>2];c=H[b+16>>2];h=H[b+12>>2];b=H[b+20>>2];f=Sj(g-c|0,h-(b+(c>>>0>g>>>0)|0)|0,3,0);if(!da&f>>>0<n>>>0|((b|0)>=(h|0)&c>>>0>=g>>>0|(b|0)>(h|0))){break a}g=I[c+H[d>>2]|0];c=c+1|0;b=c?b:b+1|0;H[d+16>>2]=c;H[d+20>>2]=b;c:{d:{if(!g){k=0;c=ca-32|0;ca=c;H[c+24>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;e:{f:{b=N(n,3);if(b){if(b>>>0>=1073741824){break f}d=N(n,12);k=pa(d);ra(k,0,d)}b=kd(b,1,H[a+32>>2],k);g:{h:{if(!(!n|!b)){d=0;while(1){i:{g=H[(d<<2)+k>>2];b=g>>>1|0;j:{if(g&1){if((b|0)>(j|0)){break i}b=0-b|0;break j}if((j^2147483647)>>>0<b>>>0){break i}}g=b+j|0;H[c>>2]=g;h=H[(d+1<<2)+k>>2];b=h>>>1|0;k:{if(h&1){if((b|0)>(g|0)){break i}b=0-b|0;break k}if((g^2147483647)>>>0<b>>>0){break i}}g=b+g|0;H[c+4>>2]=g;h=H[(d+2<<2)+k>>2];b=h>>>1|0;l:{if(h&1){if((b|0)>(g|0)){break i}b=0-b|0;break l}if((g^2147483647)>>>0<b>>>0){break i}}d=d+3|0;j=b+g|0;H[c+8>>2]=j;Rb(H[a+44>>2]+96|0,c);b=1;o=o+1|0;if((o|0)!=(n|0)){continue}break h}break}b=0;break h}if(!k){break g}}oa(k)}ca=c+32|0;break e}sa();v()}if(!b){break a}k=H[e+24>>2];break d}k=H[e+24>>2];if(k>>>0<=255){if(!n){break d}while(1){m:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d=H[a+32>>2];b=d;g=H[b+16>>2];f=H[b+8>>2];c=H[b+20>>2];i=H[b+12>>2];b=i;if(f>>>0<=g>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break m}j=H[d>>2];l=I[j+g|0];b=c;h=g+1|0;b=h?b:b+1|0;H[d+16>>2]=h;H[d+20>>2]=b;H[e+8>>2]=l;l=f>>>0<g>>>0&(c|0)>=(i|0)|(c|0)>(i|0);f=l?g:f;i=l?c:i;if((f|0)==(h|0)&(i|0)==(b|0)){break m}l=I[h+j|0];b=c;h=g+2|0;b=h>>>0<2?b+1|0:b;H[d+16>>2]=h;H[d+20>>2]=b;H[e+12>>2]=l;if((f|0)==(h|0)&(b|0)==(i|0)){break m}h=I[h+j|0];b=c;c=g+3|0;b=c>>>0<3?b+1|0:b;H[d+16>>2]=c;H[d+20>>2]=b;H[e+16>>2]=h;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}if(k>>>0<=65535){if(!n){break d}while(1){n:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;j=H[a+32>>2];b=j;c=H[b+8>>2];d=H[b+12>>2];h=H[b+16>>2];b=H[b+20>>2];g=b;f=h+2|0;b=f>>>0<2?b+1|0:b;if(c>>>0<f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}l=H[j>>2];i=l+h|0;i=I[i|0]|I[i+1|0]<<8;H[j+16>>2]=f;H[j+20>>2]=b;H[e+8>>2]=i;b=g;i=h+4|0;b=i>>>0<4?b+1|0:b;if(c>>>0<i>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}f=f+l|0;f=I[f|0]|I[f+1|0]<<8;H[j+16>>2]=i;H[j+20>>2]=b;H[e+12>>2]=f;f=c;b=g;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}d=i+l|0;d=I[d|0]|I[d+1|0]<<8;H[j+16>>2]=c;H[j+20>>2]=b;H[e+16>>2]=d;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}o:{if(k>>>0>2097151){break o}b=J[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break o}if(!n){break d}while(1){p:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+8>>2]=H[e+4>>2];if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+12>>2]=H[e+4>>2];if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+16>>2]=H[e+4>>2];Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}if(!n){break d}while(1){H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;j=H[a+32>>2];b=j;c=H[b+8>>2];d=H[b+12>>2];h=H[b+16>>2];b=H[b+20>>2];g=b;f=h+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0<f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}l=H[j>>2];i=l+h|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[j+16>>2]=f;H[j+20>>2]=b;H[e+8>>2]=i;b=g;i=h+8|0;b=i>>>0<8?b+1|0:b;if(c>>>0<i>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}f=f+l|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[j+16>>2]=i;H[j+20>>2]=b;H[e+12>>2]=f;f=c;b=g;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+16>>2]=c;H[j+20>>2]=b;H[e+16>>2]=d;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break}}H[H[a+4>>2]+80>>2]=k;m=1;break a}m=0}ca=e+32|0;return m|0}function ic(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if((e+128&65535)>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>127){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e+128>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>127){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>127|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(127)|l<O(-128)|l!=l){break d}m=O(P(l));if(m==O(Infinity)){break d}e=d+g|0;e:{f:{if(I[a+32|0]){if(l<O(0)|l>O(1)){break d}j=T(+l*127+.5);if(!(P(j)<2147483648)){break f}h=~~j;break e}if(!(m<O(2147483648))){break f}h=~~l;break e}h=-2147483648}F[e|0]=h;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=127|j<-128|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j<0|j>1){break b}j=T(j*127+.5)}g:{if(P(j)<2147483648){h=~~j;break g}h=-2147483648}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function hc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(255)|l<O(0)|(O(P(l))==O(Infinity)|l!=l)){break d}e=d+g|0;e:{f:{if(I[a+32|0]){if(l>O(1)){break d}j=T(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l<O(4294967296)&l>=O(0))){break f}h=~~l>>>0;break e}h=0}F[e|0]=h;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=255|j<0|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j>1){break b}j=T(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=O(0),w=0;p=ca-16|0;ca=p;a:{if(!(H[a+60>>2]!=H[a- -64>>2]|H[a+48>>2]!=H[a+52>>2])){j=1;break a}j=1;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break a}while(1){b:{b=ea[H[H[a>>2]+20>>2]](a,w)|0;c:{d:{e:{f=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(b<<2)>>2];switch(H[f+28>>2]-1|0){case 8:break d;case 0:case 2:case 4:break e;default:break c}}b=I[f+24|0];f:{if(!b){n=0;j=0;break f}j=0;b=b<<2;n=pa(b);ra(n,0,b);b=I[f+24|0];if(!b){break f}b=b<<2;j=pa(b);ra(j,0,b)}g:{h:{i:{switch(H[f+28>>2]-1|0){case 4:i=0;h=0;d=0;b=0;k=0;e=I[f+24|0];j:{if(!e){g=0;break j}e=e<<2;h=pa(e);ra(h,0,e);g=pa(e);ra(g,0,e)}k:{if(H[f+80>>2]){while(1){o=H[f>>2];c=H[o>>2];m=H[f+48>>2];e=H[f+40>>2];l=Rj(e,H[f+44>>2],d,b);m=m+l|0;s=c+m|0;c=e;m=qa(h,s,c);l=I[f+24|0];if(l){t=H[a+48>>2];e=0;while(1){r=e<<2;s=H[r+m>>2];if((s|0)<0){break k}H[g+r>>2]=s+H[t+(e+u<<2)>>2];e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[o>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}k=1}if(g){oa(g)}if(h){oa(h)}if(k){break h}break g;case 2:g=0;e=0;d=0;b=0;c=I[f+24|0];if(c){c=c<<1;e=pa(c);ra(e,0,c);g=pa(c);ra(g,0,c)}if(H[f+80>>2]){while(1){l=H[f>>2];h=H[l>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,h+i|0,c);o=I[f+24|0];l:{if(!o){break l}m=H[a+48>>2];h=0;if((o|0)!=1){t=o&254;i=0;while(1){r=h<<1;G[r+g>>1]=J[k+r>>1]+J[m+(h+u<<2)>>1];r=h|1;s=r<<1;G[s+g>>1]=J[k+s>>1]+J[m+(r+u<<2)>>1];h=h+2|0;i=i+2|0;if((t|0)!=(i|0)){continue}break}}if(!(o&1)){break l}i=h<<1;G[i+g>>1]=J[i+k>>1]+J[m+(h+u<<2)>>1]}qa(H[l>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(g){oa(g)}if(e){oa(e)}break h;case 0:break i;default:break h}}h=0;e=0;d=0;b=0;c=I[f+24|0];if(c){e=pa(c);ra(e,0,c);h=pa(c);ra(h,0,c)}if(H[f+80>>2]){while(1){t=H[f>>2];g=H[t>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,g+i|0,c);o=I[f+24|0];m:{if(!o){break m}m=H[a+48>>2];g=0;if((o|0)!=1){r=o&254;i=0;while(1){F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0];l=g|1;F[l+h|0]=I[k+l|0]+I[m+(l+u<<2)|0];g=g+2|0;i=i+2|0;if((r|0)!=(i|0)){continue}break}}if(!(o&1)){break m}F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0]}qa(H[t>>2]+N(d,c)|0,h,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(h){oa(h)}if(e){oa(e)}}u=I[f+24|0]+u|0;i=1}if(j){oa(j)}if(n){oa(n)}if(i){break c}j=0;break a}e=H[H[a+60>>2]+(q<<2)>>2];h=H[a+36>>2];g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[p+12>>2]=H[f+56>>2];b=pa(32);H[p>>2]=b;H[p+4>>2]=24;H[p+8>>2]=-2147483616;d=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);c=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;F[b+20|0]=d;F[b+21|0]=d>>>8;F[b+22|0]=d>>>16;F[b+23|0]=d>>>24;d=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);c=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);c=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;F[b+24|0]=0;d=sd(g,p+12|0,p);if(F[p+11|0]<0){oa(H[p>>2])}b=q+1|0;n:{if(d){oe(f,e);break n}g=h+N(q,24)|0;q=H[g+4>>2];c=I[f+24|0];h=c<<2;d=pa(h);H[p>>2]=1065353216;v=L[g+20>>2];q=-1<<q^-1;if((q|0)>0){L[p>>2]=v/O(q|0)}if((q|0)<=0){break b}o:{if(!H[e+80>>2]){break o}if(!c){n=0;j=0;while(1){qa(H[H[f+64>>2]>>2]+j|0,d,h);j=h+j|0;n=n+1|0;if(n>>>0<K[e+80>>2]){continue}break}break o}o=H[H[e>>2]>>2]+H[e+48>>2]|0;t=c&254;r=c&1;i=0;k=0;j=0;while(1){q=H[g+8>>2];v=L[p>>2];n=0;m=0;if((c|0)!=1){while(1){l=n<<2;s=o+(j<<2)|0;L[l+d>>2]=O(v*O(H[s>>2]))+L[l+q>>2];l=l|4;L[l+d>>2]=O(v*O(H[s+4>>2]))+L[l+q>>2];n=n+2|0;j=j+2|0;m=m+2|0;if((t|0)!=(m|0)){continue}break}}if(r){n=n<<2;L[n+d>>2]=O(v*O(H[o+(j<<2)>>2]))+L[n+q>>2];j=j+1|0}qa(H[H[f+64>>2]>>2]+k|0,d,h);k=h+k|0;i=i+1|0;if(i>>>0<K[e+80>>2]){continue}break}}oa(d)}q=b}j=1;w=w+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(w|0)){continue}break a}break}oa(d);j=0}ca=p+16|0;return j|0}function Le(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;d=J[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){h=H[b+8>>2];f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;if(h>>>0<i>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;break c}if(!hb(1,j+12|0,b)){break b}d=H[b+16>>2];e=H[b+20>>2];l=H[j+12>>2]}f=H[b+8>>2];i=f-d|0;d=H[b+12>>2]-((d>>>0>f>>>0)+e|0)|0;if(i>>>0<l>>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=H[j>>2];d=H[j+4>>2]-e>>2;d:{if(d>>>0<l>>>0){ya(j,l-d|0);l=H[j+12>>2];break d}if(d>>>0<=l>>>0){break d}H[j+4>>2]=e+(l<<2)}i=1;if(!l){break a}d=H[b+16>>2];e=H[b+20>>2];r=H[j>>2];k=H[b+8>>2];o=H[b+12>>2];h=0;while(1){i=0;if((e|0)>=(o|0)&d>>>0>=k>>>0|(e|0)>(o|0)){break a}i=H[b>>2];p=I[i+d|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=p>>>2|0;m=0;e:{f:{g:{h:{s=p&3;switch(s|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;i=0;if(f>>>0>=l>>>0){break a}ra(r+(h<<2)|0,0,(p&252)+4|0);h=f;break e}while(1){if((d|0)==(k|0)&(e|0)==(o|0)){break b}l=I[d+i|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=l<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}H[r+(h<<2)>>2]=f}l=H[j+12>>2];h=h+1|0;if(l>>>0>h>>>0){continue}break}d=j+16|0;o=H[j>>2];f=H[j+16>>2];e=H[j+20>>2]-f|0;i:{if(e>>>0<=4194303){ya(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}H[j+20>>2]=f+4194304}e=j+28|0;h=H[e>>2];f=H[j+32>>2]-h>>3;j:{if(f>>>0<l>>>0){ob(e,l-f|0);h=H[e>>2];break j}if(f>>>0>l>>>0){H[j+32>>2]=(l<<3)+h}if(!l){break b}}k=H[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;j=H[e>>2];m=(d<<3)+h|0;f=i;H[m+4>>2]=f;H[m>>2]=j;e=H[e>>2];i=e+f|0;if(i>>>0>1048576){break b}k:{if(f>>>0>=i>>>0){break k}m=0;j=e&7;if(j){while(1){H[k+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((j|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=k+(f<<2)|0;H[e>>2]=d;H[e+28>>2]=d;H[e+24>>2]=d;H[e+20>>2]=d;H[e+16>>2]=d;H[e+12>>2]=d;H[e+8>>2]=d;H[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((l|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}l:{if(!i|(H[g+20>>2]?0:a)){break l}i=0;n=ca-16|0;ca=n;m:{n:{if(J[b+38>>1]<=511){h=H[b+8>>2];f=H[b+12>>2];j=f;e=H[b+20>>2];k=H[b+16>>2];d=k+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>h>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break m}k=k+H[b>>2]|0;f=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[b+16>>2]=d;H[b+20>>2]=e;break n}if(!gb(1,n+8|0,b)){break m}d=H[b+16>>2];e=H[b+20>>2];h=H[b+8>>2];j=H[b+12>>2];f=H[n+8>>2];k=H[n+12>>2]}l=h-d|0;h=j-((d>>>0>h>>>0)+e|0)|0;if((h|0)==(k|0)&f>>>0>l>>>0|h>>>0<k>>>0){break m}e=e+k|0;h=d+f|0;e=h>>>0<f>>>0?e+1|0:e;H[b+16>>2]=h;H[b+20>>2]=e;if((f|0)<=0){break m}b=H[b>>2]+d|0;H[g+48>>2]=b;d=f-1|0;e=d+b|0;h=I[e|0];o:{if(h>>>0<=63){H[g+52>>2]=d;b=I[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}d=f-2|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8&16128|I[b|0];break o;case 1:if(f>>>0<3){break m}d=f-3|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break o;default:break p}}d=f-4|0;H[g+52>>2]=d;b=b+d|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[g+56>>2]=b+4194304;i=b>>>0<1069547520}ca=n+16|0;if(!i){break l}if(!a){t=1;break l}b=H[g+52>>2];f=H[g+56>>2];d=H[g+36>>2];e=H[g+48>>2];h=H[g+24>>2];while(1){q:{if(f>>>0>4194303){break q}while(1){if((b|0)<=0){break q}b=b-1|0;H[g+52>>2]=b;f=I[b+e|0]|f<<8;H[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;k=H[h+(i<<2)>>2];n=d+(k<<3)|0;f=(N(H[n>>2],f>>>20|0)+i|0)-H[n+4>>2]|0;H[g+56>>2]=f;H[(q<<2)+c>>2]=k;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;return t}function nc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-48|0;ca=e;f=J[6677]|J[6678]<<16;d=J[6675]|J[6676]<<16;G[e+38>>1]=d;G[e+40>>1]=d>>>16;G[e+42>>1]=f;G[e+44>>1]=f>>>16;d=H[3337];H[e+32>>2]=H[3336];H[e+36>>2]=d;d=H[3335];H[e+24>>2]=H[3334];H[e+28>>2]=d;d=H[3333];H[e+16>>2]=H[3332];H[e+20>>2]=d;g=H[b+8>>2];i=H[b+12>>2];h=H[b+20>>2];d=H[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0<f>>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break d}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}f=d+H[b>>2]|0;d=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=I[f+4|0];d=H[b+20>>2];f=H[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;H[b+16>>2]=f;H[b+20>>2]=d;if(Fa(c,1260,5)){d=pa(32);F[d+17|0]=0;F[d+16|0]=I[1496];c=I[1492]|I[1493]<<8|(I[1494]<<16|I[1495]<<24);b=I[1488]|I[1489]<<8|(I[1490]<<16|I[1491]<<24);F[d+8|0]=b;F[d+9|0]=b>>>8;F[d+10|0]=b>>>16;F[d+11|0]=b>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1484]|I[1485]<<8|(I[1486]<<16|I[1487]<<24);b=I[1480]|I[1481]<<8|(I[1482]<<16|I[1483]<<24);F[d|0]=b;F[d+1|0]=b>>>8;F[d+2|0]=b>>>16;F[d+3|0]=b>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,d,17);oa(d);break b}g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break f}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+5|0]=I[f+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break h}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+6|0]=I[d+H[b>>2]|0];h=H[b+20>>2];d=H[b+16>>2]+1|0;h=d?h:h+1|0;H[b+16>>2]=d;H[b+20>>2]=h;f=H[b+12>>2];if((f|0)<=(h|0)&K[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break j}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+7|0]=I[d+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}F[c+8|0]=I[d+H[b>>2]|0];d=H[b+20>>2];g=H[b+16>>2];f=g+1|0;i=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=i;i=H[b+8>>2];h=H[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}d=c;c=H[b>>2]+f|0;G[d+10>>1]=I[c|0]|I[c+1|0]<<8;g=H[b+20>>2];c=H[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;H[b+16>>2]=c;H[b+20>>2]=g;H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}ca=e+48|0;return}Na();v()}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=ca-96|0;ca=e;f=H[a+16>>2];F[e+92|0]=1;H[e+88>>2]=b;H[e+84>>2]=b;H[e+80>>2]=f;j=H[a+20>>2];d=H[j>>2];a:{b:{f=H[H[f+28>>2]+(b<<2)>>2];if(f>>>0<H[j+4>>2]-d>>2>>>0){d=H[H[a+8>>2]+(H[d+(f<<2)>>2]<<2)>>2];f=H[a+4>>2];if(!I[f+84|0]){d=H[H[f+68>>2]+(d<<2)>>2]}H[e+72>>2]=0;H[e+76>>2]=0;j=e- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[e+56>>2]=0;H[e+60>>2]=0;Sa(f,d,F[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!H[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=H[a+20>>2];b=H[n>>2];d=H[H[H[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=H[n+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;Sa(b,d,F[b+24|0],e+32|0);d=H[a+20>>2];b=H[d>>2];f=H[H[H[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=H[d+4>>2]-b>>2>>>0){break a}d=H[H[a+8>>2]+(H[b+(f<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;Sa(b,d,F[b+24|0],e+8|0);g=H[e+8>>2];b=H[e+56>>2];d=g-b|0;p=H[e+60>>2];t=H[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=H[e+40>>2];f=H[e+64>>2];n=h-f|0;u=H[e+68>>2];y=H[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Rj(d,t,n,y);w=o-g|0;x=i-(da+(g>>>0>o>>>0)|0)|0;i=w;h=H[e+16>>2];g=h-f|0;u=H[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=H[e+32>>2];h=k-b|0;w=H[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,h,w);o=i+b|0;i=da+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=H[e+48>>2];f=H[e+72>>2];d=k-f|0;t=H[e+76>>2];x=H[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0<l>>>0?b+1|0:b;l=H[e+24>>2];p=l-f|0;f=H[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Rj(p,f,h,w);l=k-q|0;q=b-(da+(k>>>0<q>>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,f,n,y);r=s+d|0;b=da+b|0;s=r>>>0<s>>>0?b+1|0:b;b=H[e+88>>2];f=H[e+80>>2];d:{if(I[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}H[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[e+88>>2]=b;if((b|0)!=-1){break e}}b=H[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}F[e+92|0]=0;H[e+88>>2]=d;break d}if((b|0)!=H[e+84>>2]){break d}H[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}H[e+88>>2]=d}b=H[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0<f>>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0<a>>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Sj(o,n,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=e+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Jj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;g=H[r>>2];f=H[a+36>>2]-g>>2;a:{if(f>>>0<e>>>0){ya(r,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=g+(e<<2);d=e}w=e<<2;f=e>>>0>1073741823?-1:w;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];c:{if((f|0)>(g|0)){H[d+i>>2]=g;break c}d=d+i|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break c}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=H[b+g>>2]+H[g+i>>2]|0;H[d>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];x=H[f>>2];f=H[f+4>>2]-x|0;if((f|0)>=5){D=H[a+52>>2];s=H[a+48>>2];u=f>>>2|0;E=u>>>0<=2?2:u;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=H[(n<<2)+x>>2];t=(e|0)<=0;if(!t){ra(m,0,w)}if((g|0)==-1){i=N(e,n);break f}C=H[s>>2];l=0;f=g;while(1){i:{if(H[(f>>>3&536870908)+C>>2]>>>f&1){break i}i=H[H[H[s+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=H[D>>2];h=H[s+28>>2];o=H[j+(H[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=H[j+(H[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=H[j+(H[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=N(e,i);j=N(e,k);o=N(e,o);h=0;q=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2];k=h|1;H[(k<<2)+p>>2]=(H[(i+k<<2)+c>>2]+H[(j+k<<2)+c>>2]|0)-H[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((y|0)!=(q|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(e>>>0>3){while(1){j=h<<2;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];k=j|4;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];k=j|8;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];j=j|12;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];h=h+4|0;i=i+4|0;if((F|0)!=(i|0)){continue}break}}if(!A){break j}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[i+p>>2]+H[j>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(H[(h>>>3&536870908)+C>>2]>>>h&1){break k}f=H[H[H[s+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=N(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!B){break h}while(1){g=h<<2;j=g+m|0;H[j>>2]=H[j>>2]/(l|0);g=(g|4)+m|0;H[g>>2]=H[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(l|0)}if((d|0)<=0){break e}l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];m:{if((f|0)>(g|0)){H[d+l>>2]=g;break m}d=d+l|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break m}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(N(n-1|0,e)<<2)+c|0;l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+g>>2];j=H[a+16>>2];o:{if((f|0)>(j|0)){H[d+l>>2]=j;break o}d=d+l|0;j=H[a+12>>2];if((j|0)>(f|0)){H[d>>2]=j;break o}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function sj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;f=H[r>>2];j=H[a+36>>2]-f>>2;a:{if(j>>>0<e>>>0){ya(r,e-j|0);d=H[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}H[a+36>>2]=f+(e<<2);d=e}u=e<<2;f=e>>>0>1073741823?-1:u;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];c:{if((j|0)>(d|0)){H[f+i>>2]=d;break c}f=f+i|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break c}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=H[b+j>>2]+H[j+i>>2]|0;H[d>>2]=j;d:{if((j|0)>H[a+16>>2]){j=j-H[a+20>>2]|0}else{if((j|0)>=H[a+12>>2]){break d}j=j+H[a+20>>2]|0}H[d>>2]=j}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];w=H[f>>2];f=H[f+4>>2]-w|0;if((f|0)>=5){D=H[a+52>>2];x=H[a+48>>2];t=f>>>2|0;E=t>>>0<=2?2:t;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=H[(n<<2)+w>>2];s=(e|0)<=0;if(!s){ra(m,0,u)}if((j|0)==-1){g=N(e,n);break f}C=H[x+12>>2];q=0;f=j;while(1){h=H[(f<<2)+C>>2];i:{if((h|0)==-1){break i}o=H[D>>2];l=H[x>>2];k=H[o+(H[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=H[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=H[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=H[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=H[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=N(e,i);o=N(e,g);k=N(e,k);h=0;i=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2];g=h|1;H[(g<<2)+p>>2]=(H[(g+l<<2)+c>>2]+H[(g+o<<2)+c>>2]|0)-H[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((y|0)!=(i|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(e>>>0>3){while(1){l=h<<2;i=l+m|0;H[i>>2]=H[l+p>>2]+H[i>>2];g=l|4;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|8;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|12;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+4|0;k=k+4|0;if((F|0)!=(k|0)){continue}break}}if(!A){break l}while(1){g=h<<2;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=H[(h<<2)+C>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=N(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!B){break h}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[j>>2]/(q|0);j=(i|4)+m|0;H[j>>2]=H[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(q|0)}if((d|0)<=0){break e}k=H[r>>2];h=0;while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];o:{if((j|0)>(d|0)){H[f+k>>2]=d;break o}f=f+k|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break o}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(N(n-1|0,e)<<2)+c|0;k=H[r>>2];h=0;while(1){j=h<<2;i=H[j+f>>2];d=H[a+16>>2];q:{if((i|0)>(d|0)){H[j+k>>2]=d;break q}j=j+k|0;d=H[a+12>>2];if((d|0)>(i|0)){H[j>>2]=d;break q}H[j>>2]=i}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;r:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break r}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function xa(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ca-32|0;ca=f;a:{b=H[a+16>>2];b:{if(b>>>0>=341){H[a+16>>2]=b-341;b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];c:{if((b|0)!=H[a+12>>2]){d=b;break c}k=H[a>>2];if(k>>>0<c>>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break c}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}c=H[a+8>>2];b=H[a+4>>2];l=c-b|0;h=l>>2;g=H[a+12>>2];d=H[a>>2];e=g-d|0;if(h>>>0<e>>2>>>0){if((c|0)!=(g|0)){n=f,o=pa(4092),H[n+8>>2]=o;d=a;f:{g:{b=H[a+8>>2];h:{if((b|0)!=H[a+12>>2]){e=b;break h}c=H[d+4>>2];h=H[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=va(g+c|0,c,a)+a|0;H[d+8>>2]=e;H[d+4>>2]=g+H[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=pa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=l;H[d+8>>2]=e;H[d+4>>2]=a;H[d>>2]=j;if(!h){break h}oa(h);e=H[d+8>>2]}H[e>>2]=H[f+8>>2];H[d+8>>2]=H[d+8>>2]+4;break f}wa();v()}break b}n=f,o=pa(4092),H[n+8>>2]=o;qd(a,f+8|0);b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];k:{if((b|0)!=H[a+12>>2]){d=b;break k}k=H[a>>2];if(k>>>0<c>>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break k}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}H[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=pa(e);H[f+8>>2]=g;j=e+g|0;H[f+20>>2]=j;d=(h<<2)+g|0;H[f+12>>2]=d;i=pa(4092);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;H[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=pa(b);H[f+8>>2]=e;j=b+e|0;H[f+20>>2]=j;d=e+(d&-4)|0;H[f+12>>2]=d;oa(g);b=H[a+4>>2];c=H[a+8>>2];g=e}H[d>>2]=i;i=d+4|0;H[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qd(f+8|0,c);if(H[a+4>>2]!=(c|0)){continue}break}j=H[f+20>>2];i=H[f+16>>2];d=H[f+12>>2];g=H[f+8>>2];e=c;b=H[a+8>>2]}c=H[a>>2];H[a>>2]=g;H[f+8>>2]=c;H[a+4>>2]=d;H[f+12>>2]=e;H[a+8>>2]=i;H[f+16>>2]=b;d=H[a+12>>2];H[a+12>>2]=j;H[f+20>>2]=d;if((b|0)!=(e|0)){H[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}oa(c)}ca=f+32|0;return}wa();v()}function Aj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=0,m=O(0),n=O(0),o=O(0),p=O(0),q=O(0),r=0,s=O(0),t=O(0),u=O(0),w=O(0),x=0,y=O(0),z=O(0),A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;x=a+32|0;e=H[x>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(x,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){e=H[a+56>>2];h=H[e>>2];if(H[e+4>>2]-h>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;e=-1;h=H[h+(d<<2)>>2];f=-1;d:{if((h|0)==-1){break d}e=h+1|0;e=(e>>>0)%3|0?e:h-2|0;f=h-1|0;if((h>>>0)%3|0){break d}f=h+2|0}j=H[a+52>>2];h=H[j>>2];e:{f:{j=H[j+4>>2]-h>>2;l=e<<2;e=H[H[a+48>>2]+28>>2];r=H[l+e>>2];if(j>>>0<=r>>>0){break f}e=H[e+(f<<2)>>2];if(e>>>0>=j>>>0){break f}j=H[h+(e<<2)>>2];f=H[h+(r<<2)>>2];g:{if(!((j|0)>=(d|0)|(f|0)>=(d|0))){e=H[a+72>>2];h=(N(e,j)<<2)+c|0;m=O(H[h+4>>2]);e=(N(e,f)<<2)+c|0;p=O(H[e+4>>2]);y=O(H[e>>2]);n=O(H[h>>2]);if(!(y!=n|m!=p)){h=+m>2147483647;e=H[a+68>>2];if(O(P(m))<O(2147483648)){f=~~m}else{f=-2147483648}H[e+4>>2]=m<O(-2147483648)?-2147483648:h?-2147483648:f;h=+n>2147483647;if(O(P(n))<O(2147483648)){f=~~n}else{f=-2147483648}H[e>>2]=n<O(-2147483648)?-2147483648:h?-2147483648:f;f=1;break g}e=H[H[a+64>>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){e=H[H[h+68>>2]+(e<<2)>>2]}Va(h,e,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(f<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);f=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g);o=L[g+24>>2];s=O(L[g+8>>2]-o);t=L[g+20>>2];u=O(L[g+4>>2]-t);A=L[g+16>>2];w=O(L[g>>2]-A);z=O(O(s*s)+O(O(u*u)+O(O(w*w)+O(0))));h:{if(H[a+88>>2]>=258){i=O(0);if(!(z>O(0))){break h}}i=O(L[g+40>>2]-o);o=O(L[g+36>>2]-t);t=O(L[g+32>>2]-A);q=O(O(O(s*i)+O(O(u*o)+O(O(w*t)+O(0))))/z);i=O(i-O(s*q));s=O(i*i);i=O(o-O(u*q));o=O(i*i);i=O(t-O(w*q));i=O(W(O(O(s+O(o+O(O(i*i)+O(0))))/z)))}f=H[a+80>>2];if(f){e=f-1|0;h=H[H[a+76>>2]+(e>>>3&536870908)>>2];H[a+80>>2]=e;m=O(m-p);o=O(O(m*q)+p);n=O(n-y);p=O(n*i);e=h>>>e&1;p=O(o+(e?p:O(-p)));i=O(i*m);k=T(+O(O(O(n*q)+y)+(e?O(-i):i))+.5);i:{if(k<-2147483648|k!=k|k>2147483647){e=H[a+68>>2];H[e>>2]=-2147483648;break i}e=H[a+68>>2];if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e>>2]=h}k=T(+p+.5);j=k>2147483647;if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:h}f=(f|0)!=0;break g}j:{if((d|0)>(f|0)){e=H[a+72>>2];h=N(f,e);break j}if((d|0)<=0){f=1;if(H[a+72>>2]<=0){break g}h=H[a+68>>2];e=0;while(1){H[h+(e<<2)>>2]=0;e=e+1|0;if((e|0)<H[a+72>>2]){continue}break}break g}e=H[a+72>>2];h=N(e,d-1|0)}f=1;if((e|0)<=0){break g}j=H[a+68>>2];e=0;while(1){H[j+(e<<2)>>2]=H[(e+h<<2)+c>>2];e=e+1|0;if((e|0)<H[a+72>>2]){continue}break}}ca=g+48|0;break e}Ca();v()}h=f;if(!h){return 0}k:{if(H[a+8>>2]<=0){break k}r=H[a+68>>2];j=H[x>>2];e=0;while(1){f=e<<2;g=H[f+r>>2];l=H[a+16>>2];l:{if((g|0)>(l|0)){H[f+j>>2]=l;break l}f=f+j|0;l=H[a+12>>2];if((l|0)>(g|0)){H[f>>2]=l;break l}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break k}e=d<<3;r=e+c|0;l=b+e|0;while(1){g=f<<2;e=g+r|0;g=H[g+l>>2]+H[g+j>>2]|0;H[e>>2]=g;m:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)<H[a+8>>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function kj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=O(0),m=O(0),n=O(0),o=O(0),p=0,q=O(0),r=O(0),s=O(0),t=O(0),u=O(0),w=0,x=O(0),y=O(0),z=0,A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;w=a+32|0;e=H[w>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(w,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;h=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[a+48>>2];f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=H[H[j>>2]+(f<<2)>>2]}f=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){f=H[H[j>>2]+(e<<2)>>2]}e=H[a+52>>2];j=H[e>>2];e=H[e+4>>2]-j>>2;if(e>>>0<=h>>>0|e>>>0<=f>>>0){break e}e=H[j+(h<<2)>>2];j=H[j+(f<<2)>>2];f:{if(!((d|0)<=(e|0)|(j|0)>=(d|0))){f=H[a+72>>2];h=(N(f,j)<<2)+c|0;l=O(H[h+4>>2]);f=(N(e,f)<<2)+c|0;o=O(H[f+4>>2]);x=O(H[f>>2]);m=O(H[h>>2]);if(!(x!=m|l!=o)){h=+l>2147483647;e=H[a+68>>2];if(O(P(l))<O(2147483648)){f=~~l}else{f=-2147483648}H[e+4>>2]=l<O(-2147483648)?-2147483648:h?-2147483648:f;h=+m>2147483647;if(O(P(m))<O(2147483648)){f=~~m}else{f=-2147483648}H[e>>2]=m<O(-2147483648)?-2147483648:h?-2147483648:f;h=1;break f}f=H[H[a+64>>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){f=H[H[h+68>>2]+(f<<2)>>2]}Va(h,f,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(e<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);h=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){h=H[H[e+68>>2]+(h<<2)>>2]}Va(e,h,F[e+24|0],g);n=L[g+24>>2];r=O(L[g+8>>2]-n);s=L[g+20>>2];t=O(L[g+4>>2]-s);A=L[g+16>>2];u=O(L[g>>2]-A);y=O(O(r*r)+O(O(t*t)+O(O(u*u)+O(0))));g:{if(H[a+88>>2]>=258){i=O(0);if(!(y>O(0))){break g}}i=O(L[g+40>>2]-n);n=O(L[g+36>>2]-s);s=O(L[g+32>>2]-A);q=O(O(O(r*i)+O(O(t*n)+O(O(u*s)+O(0))))/y);i=O(i-O(r*q));r=O(i*i);i=O(n-O(t*q));n=O(i*i);i=O(s-O(u*q));i=O(W(O(O(r+O(n+O(O(i*i)+O(0))))/y)))}e=H[a+80>>2];if(e){f=e-1|0;h=H[H[a+76>>2]+(f>>>3&536870908)>>2];H[a+80>>2]=f;l=O(l-o);n=O(O(l*q)+o);m=O(m-x);o=O(m*i);f=h>>>f&1;o=O(n+(f?o:O(-o)));i=O(i*l);k=T(+O(O(O(m*q)+x)+(f?O(-i):i))+.5);h:{if(k<-2147483648|k!=k|k>2147483647){h=H[a+68>>2];H[h>>2]=-2147483648;break h}h=H[a+68>>2];if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h>>2]=f}k=T(+o+.5);j=k>2147483647;if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:f}h=(e|0)!=0;break f}i:{if((d|0)>(e|0)){f=H[a+72>>2];e=N(e,f);break i}if((d|0)<=0){h=1;if(H[a+72>>2]<=0){break f}e=H[a+68>>2];f=0;while(1){H[e+(f<<2)>>2]=0;f=f+1|0;if((f|0)<H[a+72>>2]){continue}break}break f}f=H[a+72>>2];e=N(f,d-1|0)}h=1;if((f|0)<=0){break f}j=H[a+68>>2];f=0;while(1){H[j+(f<<2)>>2]=H[(e+f<<2)+c>>2];f=f+1|0;if((f|0)<H[a+72>>2]){continue}break}}ca=g+48|0;break d}Ca();v()}if(!h){return 0}j:{if(H[a+8>>2]<=0){break j}z=H[a+68>>2];j=H[w>>2];e=0;while(1){f=e<<2;g=H[f+z>>2];p=H[a+16>>2];k:{if((g|0)>(p|0)){H[f+j>>2]=p;break k}f=f+j|0;p=H[a+12>>2];if((p|0)>(g|0)){H[f>>2]=p;break k}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break j}e=d<<3;z=e+c|0;p=b+e|0;while(1){g=f<<2;e=g+z|0;g=H[g+p>>2]+H[g+j>>2]|0;H[e>>2]=g;l:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break l}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)<H[a+8>>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=ca-704|0;ca=f;n=1;a:{b:{c:{d:{if(J[b+38>>1]<515){break d}n=0;c=H[b+20>>2];d=H[b+12>>2];g=H[b+16>>2];if((c|0)>=(d|0)&g>>>0>=K[b+8>>2]|(c|0)>(d|0)){break d}p=I[H[b>>2]+g|0];g=g+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;g=H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=ea[H[H[a>>2]+24>>2]](a)|0;H[f+40>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;if(c){if(c>>>0>=214748365){break c}c=N(c,20);d=pa(c);H[f+32>>2]=d;H[f+40>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=ra(d,0,c)+c|0,H[q+36>>2]=r}e:{if((ea[H[H[a>>2]+24>>2]](a)|0)>0){while(1){c=ea[H[H[a>>2]+20>>2]](a,l)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,g);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];d=H[c+28>>2];if(d>>>0>9){break e}f:{g:{h:{e=1<<d;if(!(e&42)){if(e&84){break f}if((d|0)!=9){break e}d=I[c+24|0];e=Eb(f+48|0);i=N(d,H[3401]);lc(e,H[c+56>>2],d,6,0,i,i>>31);c=jc(pa(96),e);H[f>>2]=c;F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];mb(c,g);c=H[a+64>>2];if(c>>>0>=K[a+68>>2]){break h}d=H[f>>2];H[f>>2]=0;H[c>>2]=d;c=c+4|0;H[a+64>>2]=c;break g}j=0;if(!I[c+24|0]){break f}while(1){d=H[a+52>>2];i=H[a+56>>2];i:{if(d>>>0<i>>>0){H[d>>2]=0;H[a+52>>2]=d+4;break i}e=d;d=H[a+48>>2];m=e-d|0;k=m>>2;e=k+1|0;if(e>>>0>=1073741824){break b}o=k<<2;i=i-d|0;k=i>>>1|0;e=i>>>0>=2147483644?1073741823:e>>>0<k>>>0?k:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}else{i=0}k=o+i|0;H[k>>2]=0;o=e<<2;e=va(i,d,m);H[a+56>>2]=o+e;H[a+52>>2]=k+4;H[a+48>>2]=e;if(!d){break i}oa(d)}j=j+1|0;if(j>>>0<I[c+24|0]){continue}break}break f}c=0;j:{k:{l:{e=H[a+60>>2];i=H[a+64>>2]-e>>2;d=i+1|0;if(d>>>0<1073741824){e=H[a+68>>2]-e|0;j=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(e){if(e>>>0>=1073741824){break l}c=pa(e<<2)}j=H[f>>2];H[f>>2]=0;d=(i<<2)+c|0;H[d>>2]=j;e=(e<<2)+c|0;i=d+4|0;c=H[a+64>>2];j=H[a+60>>2];if((c|0)==(j|0)){break k}while(1){c=c-4|0;m=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=m;if((c|0)!=(j|0)){continue}break}H[a+68>>2]=e;e=H[a+64>>2];H[a+64>>2]=i;c=H[a+60>>2];H[a+60>>2]=d;if((c|0)==(e|0)){break j}while(1){e=e-4|0;d=H[e>>2];H[e>>2]=0;if(d){Ga(d)}if((c|0)!=(e|0)){continue}break}break j}sa();v()}wa();v()}H[a+68>>2]=e;H[a+64>>2]=i;H[a+60>>2]=d}if(c){oa(c)}c=H[a+64>>2]}c=H[c-4>>2];d=H[f>>2];H[f>>2]=0;if(!d){break f}Ga(d)}i=H[c+28>>2];d=i-1|0;if(d>>>0<=10){e=H[(d<<2)+13584>>2]}else{e=-1}d=H[f+32>>2]+N(l,20)|0;j=I[c+24|0];H[d+16>>2]=j;H[d+12>>2]=(e|0)>0?e:0;H[d+8>>2]=i;H[d+4>>2]=h;H[d>>2]=c;h=h+j|0;l=l+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}}a=Ac(f,f+32|0);m:{n:{o:{switch(p|0){case 0:c=wb(f+48|0,h);b=Bd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 1:c=wb(f+48|0,h);b=zd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 2:c=ub(f+48|0,h);b=yd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 3:c=ub(f+48|0,h);b=xd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 4:c=$a(f+48|0,h);b=wd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 5:c=$a(f+48|0,h);b=vd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 6:break o;default:break m}}c=$a(f+48|0,h);b=ud(c,b,a,g);h=H[c+8>>2];ab(c);if(!b|(h|0)!=(g|0)){break m}}n=1}b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(!b){break e}H[a+4>>2]=b;oa(b)}a=H[f+32>>2];if(!a){break d}H[f+36>>2]=a;oa(a)}ca=f+704|0;return n|0}sa();v()}sa();v()}wa();v()}function Zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-32|0;ca=e;a:{b:{switch(c-2|0){case 0:c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=ea[H[H[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=7144;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=7668;a=d+96|0;break d}if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=8080;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=8472;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=8860;break a;case 1:break b;default:break a}}c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=ea[H[H[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=9028;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=9592;a=d+96|0;break f}if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=10032;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=10452;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=10864}ca=e+32|0;return d|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(H[c>>2]==H[c+4>>2]){m=H[d+80>>2];u=ca-16|0;ca=u;g=H[a+4>>2];k=I[b+24|0];h=H[d+48>>2];n=H[H[d>>2]>>2];c=u+8|0;H[c>>2]=1065353216;d=c;L[c>>2]=O(-1<<g^-1)/L[a+20>>2];c=pa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=L[d>>2];n=H[a+8>>2];v=H[b>>2];d=H[b+48>>2];g=H[b+40>>2];w=H[b+44>>2];if(!I[b+84|0]){f=H[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=H[v>>2];l=Rj(g,w,H[f+(i<<2)>>2],0)+d|0;h=qa(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));b:{if(O(P(e))<O(2147483648)){r=~~e;break b}r=-2147483648}H[l>>2]=r;j=j|4;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));c:{if(O(P(e))<O(2147483648)){j=~~e;break c}j=-2147483648}H[l+4>>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+h>>2]-L[b+n>>2]))+O(.5))));d:{if(O(P(e))<O(2147483648)){b=~~e;break d}b=-2147483648}H[l>>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=H[v>>2];h=Rj(g,w,i,l)+d|0;j=qa(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));e:{if(O(P(e))<O(2147483648)){r=~~e;break e}r=-2147483648}H[h>>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));f:{if(O(P(e))<O(2147483648)){f=~~e;break f}f=-2147483648}H[h+4>>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+j>>2]-L[b+n>>2]))+O(.5))));g:{if(O(P(e))<O(2147483648)){b=~~e;break g}b=-2147483648}H[h>>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}oa(c);ca=u+16|0;return 1}j=ca-16|0;ca=j;m=H[a+4>>2];i=I[b+24|0];g=H[d+48>>2];h=H[H[d>>2]>>2];d=j+8|0;H[d>>2]=1065353216;l=d;L[d>>2]=O(-1<<m^-1)/L[a+20>>2];d=pa(i<<2);m=H[c+4>>2];q=H[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=L[l>>2];h=H[a+8>>2];v=H[b>>2];l=H[b+48>>2];m=H[b+40>>2];w=H[b+44>>2];if(I[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[q+(c<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));i:{if(O(P(e))<O(2147483648)){r=~~e;break i}r=-2147483648}H[g>>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));j:{if(O(P(e))<O(2147483648)){f=~~e;break j}f=-2147483648}H[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));k:{if(O(P(e))<O(2147483648)){b=~~e;break k}b=-2147483648}H[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=H[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[s+(H[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));l:{if(O(P(e))<O(2147483648)){r=~~e;break l}r=-2147483648}H[g>>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));m:{if(O(P(e))<O(2147483648)){f=~~e;break m}f=-2147483648}H[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));n:{if(O(P(e))<O(2147483648)){b=~~e;break n}b=-2147483648}H[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}oa(d);ca=j+16|0;return 1}function dd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+4>>2];e=H[a>>2];f=(c-e|0)/144|0;if(f>>>0<b>>>0){e=a;b=b-f|0;h=H[a+8>>2];c=H[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){Ia(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=N(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}H[e+4>>2]=c;break a}c:{d:{e:{a=c;c=H[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0<f>>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=pa(N(f,144))}c=N(i,144)+g|0;a=c;h=b&7;if(h){while(1){Ia(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=N(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=N(f,144)+g|0;d=H[e+4>>2];f=H[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;H[c>>2]=H[a>>2];H[c+4>>2]=H[a+4>>2];H[c+8>>2]=H[a+8>>2];H[c+12>>2]=H[a+12>>2];H[a+12>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[c+16>>2]=H[a+16>>2];H[c+20>>2]=H[a+20>>2];H[c+24>>2]=H[a+24>>2];H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;g=I[a+28|0];H[c+40>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;F[c+28|0]=g;H[c+32>>2]=H[a+32>>2];H[c+36>>2]=H[a+36>>2];H[c+40>>2]=H[a+40>>2];H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[c+52>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+44>>2]=H[a+44>>2];H[c+48>>2]=H[a+48>>2];H[c+52>>2]=H[a+52>>2];H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;g=c- -64|0;H[g>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+56>>2]=H[a+56>>2];H[c+60>>2]=H[a+60>>2];i=g;g=a- -64|0;H[i>>2]=H[g>>2];H[g>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[c+68>>2]=H[a+68>>2];g=H[a+72>>2];H[c+84>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+72>>2]=g;H[c+76>>2]=H[a+76>>2];H[c+80>>2]=H[a+80>>2];H[c+84>>2]=H[a+84>>2];H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[c+96>>2]=0;H[c+88>>2]=0;H[c+92>>2]=0;H[c+88>>2]=H[a+88>>2];H[c+92>>2]=H[a+92>>2];H[c+96>>2]=H[a+96>>2];H[a+96>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;g=I[a+100|0];H[c+112>>2]=0;H[c+104>>2]=0;H[c+108>>2]=0;F[c+100|0]=g;H[c+104>>2]=H[a+104>>2];H[c+108>>2]=H[a+108>>2];H[c+112>>2]=H[a+112>>2];H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[c+124>>2]=0;H[c+116>>2]=0;H[c+120>>2]=0;H[c+116>>2]=H[a+116>>2];H[c+120>>2]=H[a+120>>2];H[c+124>>2]=H[a+124>>2];H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;g=H[a+128>>2];H[c+140>>2]=0;H[c+132>>2]=0;H[c+136>>2]=0;H[c+128>>2]=g;H[c+132>>2]=H[a+132>>2];H[c+136>>2]=H[a+136>>2];H[c+140>>2]=H[a+140>>2];H[a+140>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}H[e+8>>2]=b;a=H[e+4>>2];H[e+4>>2]=h;d=H[e>>2];H[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=H[b+132>>2];if(c){H[a-8>>2]=c;oa(c)}c=H[a-28>>2];if(c){H[a-24>>2]=c;oa(c)}c=H[a-40>>2];if(c){H[a-36>>2]=c;oa(c)}oc(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}sa();v()}wa();v()}H[e+8>>2]=b;H[e+4>>2]=h;H[e>>2]=c}if(d){oa(d)}}return}if(b>>>0<f>>>0){e=e+N(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=H[b+132>>2];if(d){H[c-8>>2]=d;oa(d)}d=H[c-28>>2];if(d){H[c-24>>2]=d;oa(d)}d=H[c-40>>2];if(d){H[c-36>>2]=d;oa(d)}oc(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}H[a+4>>2]=e}}function Pe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]){b=pa(32);F[b+27|0]=0;c=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[b+23|0]=c;F[b+24|0]=c>>>8;F[b+25|0]=c>>>16;F[b+26|0]=c>>>24;c=I[1518]|I[1519]<<8|(I[1520]<<16|I[1521]<<24);d=I[1514]|I[1515]<<8|(I[1516]<<16|I[1517]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1510]|I[1511]<<8|(I[1512]<<16|I[1513]<<24);d=I[1506]|I[1507]<<8|(I[1508]<<16|I[1509]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1502]|I[1503]<<8|(I[1504]<<16|I[1505]<<24);d=I[1498]|I[1499]<<8|(I[1500]<<16|I[1501]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,27);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(F[f+32|0]){case 0:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13496;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13404;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Ic(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;H[a+56>>2]=H[a+52>>2];H[a+44>>2]=H[a+40>>2];b=H[a+64>>2];c=H[b+24>>2];if((c|0)==H[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=H[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=H[a+56>>2];e:{if((b|0)!=H[a+60>>2]){H[b>>2]=g;H[a+56>>2]=b+4;break e}d=H[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=pa(f<<2)}else{e=0}c=e+(h<<2)|0;H[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=e+(f<<2);H[a+56>>2]=h;H[a+52>>2]=c;if(!d){break e}oa(d)}f:{g:{if(!(H[H[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|H[H[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=H[H[H[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=H[a+64>>2];f=H[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|H[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=H[H[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}H[H[a+28>>2]+(e<<2)>>2]=g;b=H[a+44>>2];i:{if((b|0)!=H[a+48>>2]){H[b>>2]=e;H[a+44>>2]=b+4;break i}d=H[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=pa(f<<2)}else{i=0}c=i+(h<<2)|0;H[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+48>>2]=i+(f<<2);H[a+44>>2]=h;H[a+40>>2]=c;if(!d){break i}oa(d)}i=g+1|0;b=H[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(H[H[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=H[a+56>>2];k:{if((b|0)!=H[a+60>>2]){H[b>>2]=i;H[a+56>>2]=b+4;break k}d=H[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=pa(h<<2)}else{g=0}c=g+(j<<2)|0;H[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=g+(h<<2);H[a+56>>2]=j;H[a+52>>2]=c;if(!d){break k}oa(d)}d=i+1|0;b=H[a+44>>2];l:{if((b|0)!=H[a+48>>2]){H[b>>2]=f;H[a+44>>2]=b+4;break l}h=H[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0<j>>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=pa(j<<2)}else{g=0}c=g+(l<<2)|0;H[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(h|0)){continue}break}}H[a+48>>2]=g+(j<<2);H[a+44>>2]=l;H[a+40>>2]=c;if(!h){break l}oa(h)}g=i;i=d}H[H[a+28>>2]+(f<<2)>>2]=g;b=H[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=H[b+24>>2];if(k>>>0<H[b+28>>2]-c>>2>>>0){continue}break}return 1}sa();v()}wa();v()}sa();v()}function ti(a){a=a|0;var b=0,c=0,d=0,e=0;c=H[a+32>>2];d=H[c+16>>2];e=H[c+12>>2];b=H[c+20>>2];if(K[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=I[H[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;H[c+16>>2]=d;H[c+20>>2]=b;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=pa(384);H[b>>2]=11384;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+376>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;break c;case 1:b=pa(424);H[b>>2]=11436;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;c=b+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[b+416>>2]=-1;H[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=pa(440);H[b>>2]=11484;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;H[b+416>>2]=0;H[b+420>>2]=0;H[b+408>>2]=2;H[b+412>>2]=7;H[b+400>>2]=-1;H[b+404>>2]=-1;H[b+424>>2]=0;H[b+428>>2]=0;H[b+432>>2]=0;H[b+436>>2]=0}c=H[a+48>>2];H[a+48>>2]=b;if(!c){break a}ea[H[H[c>>2]+4>>2]](c)}b=H[a+48>>2];if(b){break a}return 0}a=ea[H[H[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function Lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=ca-96|0;ca=f;e=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=e;a:{if((b|0)==-1){break a}j=H[a+20>>2];d=H[j>>2];e=H[H[e>>2]+(b<<2)>>2];if(e>>>0>=H[j+4>>2]-d>>2>>>0){break a}e=H[H[a+8>>2]+(H[d+(e<<2)>>2]<<2)>>2];d=H[a+4>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;j=f- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;Sa(d,e,F[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!H[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=H[a+20>>2];b=H[m>>2];d=H[H[H[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=H[m+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[(d<<2)+b>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;Sa(b,d,F[b+24|0],f+32|0);if((e|0)==-1){break c}d=H[a+20>>2];b=H[d>>2];e=H[H[H[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=H[d+4>>2]-b>>2>>>0){break c}d=H[H[a+8>>2]+(H[b+(e<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;Sa(b,d,F[b+24|0],f+8|0);g=H[f+8>>2];b=H[f+56>>2];d=g-b|0;p=H[f+60>>2];t=H[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=H[f+40>>2];e=H[f+64>>2];m=i-e|0;u=H[f+68>>2];y=H[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=Rj(d,t,m,y);w=o-g|0;x=h-(da+(g>>>0>o>>>0)|0)|0;h=w;i=H[f+16>>2];g=i-e|0;u=H[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=H[f+32>>2];i=k-b|0;w=H[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,i,w);o=h+b|0;h=da+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=H[f+48>>2];e=H[f+72>>2];d=k-e|0;t=H[f+76>>2];x=H[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0<l>>>0?b+1|0:b;l=H[f+24>>2];p=l-e|0;e=H[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=Rj(p,e,i,w);l=k-q|0;q=b-(da+(k>>>0<q>>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,e,m,y);r=s+d|0;b=da+b|0;s=r>>>0<s>>>0?b+1|0:b;uc(f+80|0);b=H[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0<g>>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0<e>>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0<a>>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=Sj(o,m,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=f+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=H[a+12>>2];d=H[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=H[d>>2];i=H[e+60>>2];f=H[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=H[e>>2];H[e>>2]=0;g=H[d>>2];H[d>>2]=h;if(g){Ga(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=H[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=H[c>>2];H[c>>2]=0;if(e){Ga(e)}if((c|0)!=(d|0)){continue}break}}H[a+12>>2]=d;g=H[a+4>>2];b:{if(!g|(i|0)<0){break b}c=H[g+24>>2];d=H[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==H[H[c>>2]+24>>2]){d=c+4|0;i=H[g+28>>2];if((d|0)!=(i|0)){while(1){h=H[d>>2];H[d>>2]=0;e=H[c>>2];H[c>>2]=h;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=H[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=H[d>>2];H[d>>2]=0;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}if((c|0)!=(d|0)){continue}break}}H[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=N(f,12)+a|0;c=H[e+20>>2];d=H[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(H[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;va(f,c,d-c|0);H[e+24>>2]=d-4}c=H[a+24>>2];d=H[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break e}H[c>>2]=d-1}c=H[a+36>>2];d=H[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break f}H[c>>2]=d-1}c=H[a+48>>2];d=H[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break g}H[c>>2]=d-1}c=H[a+60>>2];d=H[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break h}H[c>>2]=d-1}c=H[a+72>>2];a=H[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}i=a+(i|4)|0;f=H[i>>2];if((f|0)>(b|0)){H[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=H[a>>2];if((f|0)>=(b|0)){break a}H[a>>2]=b-1}}function oa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=H[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=H[d>>2];d=d-b|0;if(d>>>0<K[4302]){break a}a=a+b|0;if(H[4303]!=(d|0)){if(b>>>0<=255){e=H[d+8>>2];b=b>>>3|0;c=H[d+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break b}H[e+12>>2]=c;H[c+8>>2]=e;break b}h=H[d+24>>2];b=H[d+12>>2];c:{if((d|0)!=(b|0)){c=H[d+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break c}d:{e=d+20|0;c=H[e>>2];if(c){break d}e=d+16|0;c=H[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break b}e=H[d+28>>2];c=(e<<2)+17496|0;e:{if(H[c>>2]==(d|0)){H[c>>2]=b;if(b){break e}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break b}H[h+(H[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}H[b+24>>2]=h;c=H[d+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[d+20>>2];if(!c){break b}H[b+20>>2]=c;H[c+24>>2]=b;break b}b=H[f+4>>2];if((b&3)!=3){break b}H[4300]=a;H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=H[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(H[4304]==(f|0)){H[4304]=d;a=H[4301]+a|0;H[4301]=a;H[d+4>>2]=a|1;if(H[4303]!=(d|0)){break a}H[4300]=0;H[4303]=0;return}if(H[4303]==(f|0)){H[4303]=d;a=H[4300]+a|0;H[4300]=a;H[d+4>>2]=a|1;H[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=H[f+8>>2];b=b>>>3|0;c=H[f+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break g}H[e+12>>2]=c;H[c+8>>2]=e;break g}h=H[f+24>>2];b=H[f+12>>2];h:{if((f|0)!=(b|0)){c=H[f+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break h}i:{e=f+20|0;c=H[e>>2];if(c){break i}e=f+16|0;c=H[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break g}e=H[f+28>>2];c=(e<<2)+17496|0;j:{if(H[c>>2]==(f|0)){H[c>>2]=b;if(b){break j}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break g}H[h+(H[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}H[b+24>>2]=h;c=H[f+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[f+20>>2];if(!c){break g}H[b+20>>2]=c;H[c+24>>2]=b}H[d+4>>2]=a|1;H[a+d>>2]=a;if(H[4303]!=(d|0)){break f}H[4300]=a;return}H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);k:{if(!(c&a)){H[4298]=a|c;a=b;break k}a=H[b+8>>2]}H[b+8>>2]=d;H[a+12>>2]=d;H[d+12>>2]=b;H[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=Q(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}H[d+28>>2]=e;H[d+16>>2]=0;H[d+20>>2]=0;g=(e<<2)+17496|0;l:{m:{c=H[4299];b=1<<e;n:{if(!(c&b)){H[4299]=b|c;H[g>>2]=d;H[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=H[g>>2];while(1){c=b;if((H[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=H[g+16>>2];if(b){continue}break}H[g+16>>2]=d;H[d+24>>2]=c}H[d+12>>2]=d;H[d+8>>2]=d;break l}a=H[c+8>>2];H[a+12>>2]=d;H[c+8>>2]=d;H[d+24>>2]=0;H[d+12>>2]=c;H[d+8>>2]=a}a=H[4306]-1|0;H[4306]=a?a:-1}}function tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;n=a+32|0;h=H[n>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){ya(n,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];p=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+m>>2];j=H[a+16>>2];c:{if((h|0)>(j|0)){H[d+g>>2]=j;break c}d=d+g|0;j=H[a+12>>2];if((j|0)>(h|0)){H[d>>2]=j;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){i=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}i=h+H[a+20>>2]|0}H[d>>2]=i}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1){break f}f=H[H[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=H[s>>2];g=H[p>>2];k=H[j+(H[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=H[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=H[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=H[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=H[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=N(e,g);j=N(e,f);k=N(e,k);f=0;l=0;if((e|0)!=1){while(1){H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];i=f|1;H[(i<<2)+m>>2]=(H[(g+i<<2)+c>>2]+H[(j+i<<2)+c>>2]|0)-H[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+m>>2];k=H[a+16>>2];j:{if((g|0)>(k|0)){H[d+j>>2]=k;break j}d=d+j|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];i=H[a+16>>2];l:{if((g|0)>(i|0)){H[d+j>>2]=i;break l}d=d+j|0;i=H[a+12>>2];if((i|0)>(g|0)){H[d>>2]=i;break l}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;m:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(m);return 1}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=H[a+48>>2];H[a+52>>2]=e;a:{if((e|0)!=H[a+56>>2]){H[e>>2]=b;H[a+52>>2]=e+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!e){break a}oa(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=H[H[a+4>>2]+28>>2];k=H[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-N(g,3)|0?-1:2)+b|0;j=H[c+(e<<2)>>2];if((j|0)==-1){return 0}b=H[a+36>>2];g=b+(k>>>3&536870908)|0;d=H[g>>2];c=1<<k;if(!(d&c)){H[g>>2]=c|d;Ua(a+8|0,k,i);b=H[a+36>>2]}d=(j>>>3&536870908)+b|0;c=H[d>>2];b=1<<j;if(!(c&b)){H[d>>2]=b|c;Ua(a+8|0,j,e)}f=H[a+52>>2];if((f|0)==H[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=H[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=H[a+24>>2]+(c>>>3&268435452)|0;d=H[g>>2];c=1<<c;if(d&c){break c}H[g>>2]=c|d;h=H[a+4>>2];c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=H[a+36>>2]+(c>>>3&536870908)|0;i=H[j>>2];e=1<<c;if(i&e){break e}f:{g=H[H[h+40>>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];break e}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|H[H[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=H[H[H[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;f=H[a+24>>2];e=c>>>5|0;j=H[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(H[H[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=H[H[H[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=H[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=H[f+(e<<2)>>2];d=1<<d;if(!(j&d)){break i}}if(g){break j}d=1<<i;f=H[a+24>>2];e=i>>>5|0;j=H[f+(e<<2)>>2];if(!(d&j)){break d}}f=H[a+52>>2]-4|0;H[a+52>>2]=f;break b}if(g){b=c;break d}if(H[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=H[a+52>>2];H[h-4>>2]=b;if(H[a+56>>2]!=(h|0)){H[h>>2]=c;f=h+4|0;break c}m:{i=H[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=pa(e<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;H[b>>2]=H[h>>2];if((h|0)!=(i|0)){continue}break}}H[a+56>>2]=d+(e<<2);H[a+52>>2]=f;H[a+48>>2]=b;if(!i){break b}oa(i);f=H[a+52>>2];break b}sa();v()}wa();v()}H[(e<<2)+f>>2]=d|j;c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}H[a+52>>2]=f}if(H[a+48>>2]!=(f|0)){continue}break}}return 1}function Lj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){ya(m,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];n=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+l>>2];i=H[a+16>>2];c:{if((h|0)>(i|0)){H[d+g>>2]=i;break c}d=d+g|0;i=H[a+12>>2];if((i|0)>(h|0)){H[d>>2]=i;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}h=h+H[a+20>>2]|0}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1|H[H[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=H[H[H[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=H[s>>2];g=H[n+28>>2];k=H[i+(H[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=H[i+(H[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=H[i+(H[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=N(e,f);i=N(e,j);k=N(e,k);f=0;p=0;if((e|0)!=1){while(1){H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];j=f|1;H[(j<<2)+l>>2]=(H[(g+j<<2)+c>>2]+H[(i+j<<2)+c>>2]|0)-H[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+l>>2];k=H[a+16>>2];h:{if((g|0)>(k|0)){H[d+i>>2]=k;break h}d=d+i|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break h}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;i:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break i}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];j=H[a+16>>2];j:{if((g|0)>(j|0)){H[d+i>>2]=j;break j}d=d+i|0;j=H[a+12>>2];if((j|0)>(g|0)){H[d>>2]=j;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(l);return 1}function Gb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0,m=O(0);i=H[c>>2];a:{b:{f=H[b+4>>2];if(!f){break b}g=Uj(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=pa(16);d=H[H[d>>2]>>2];H[c+12>>2]=0;H[c+8>>2]=d;H[c+4>>2]=i;H[c>>2]=0;m=O(H[b+12>>2]+1>>>0);j=L[b+16>>2];d:{if(m>O(j*O(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=O(U(O(m/j)));e:{if(j<O(4294967296)&j>=O(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Kd(d);f=H[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=O(U(O(O(K[b+12>>2])/L[b+16>>2])));h:{if(j<O(4294967296)&j>=O(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(Uj(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-Q(d-1|0);break i}d=Kd(d)}e=d>>>0<e>>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=pa(h<<2);e=H[b>>2];H[b>>2]=d;if(e){oa(e)}H[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;H[k+H[b>>2]>>2]=0;H[H[b>>2]+(k|4)>>2]=0;H[H[b>>2]+(k|8)>>2]=0;H[H[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){H[H[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=H[b+8>>2];if(!e){break k}d=b+8|0;f=H[e+4>>2];g=Uj(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=H[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+H[b>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=d;f=g;break o}H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break k}d=H[b>>2];H[b>>2]=0;if(d){oa(d)}H[b+4>>2]=0;break k}wa();v()}f=h-1&f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&H[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+H[b>>2]|0;if(H[h>>2]){H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d;break p}H[h>>2]=e;e=d;f=g}d=H[e>>2];if(d){continue}break}}}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=H[b>>2]+(e<<2)|0;d=H[e>>2];q:{r:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[e>>2]=d;d=H[c>>2];if(!d){break q}d=H[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0<f>>>0){break s}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break r}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Oe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]!=1){b=pa(32);F[b+20|0]=0;c=I[1448]|I[1449]<<8|(I[1450]<<16|I[1451]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;c=I[1444]|I[1445]<<8|(I[1446]<<16|I[1447]<<24);d=I[1440]|I[1441]<<8|(I[1442]<<16|I[1443]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1436]|I[1437]<<8|(I[1438]<<16|I[1439]<<24);d=I[1432]|I[1433]<<8|(I[1434]<<16|I[1435]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,20);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(I[f+32|0]){case 0:e=Ke(pa(48));H[e>>2]=13112;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=Ke(pa(52));H[e+48>>2]=0;H[e>>2]=11276;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;H[e+44>>2]=d;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Gc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=N(b,12)+a|0;H[j+12>>2]=H[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((de(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=H[a+56>>2]+(m>>>3&536870908)|0;h=H[d>>2];e=1<<m;if(h&e){break e}f=0;while(1){H[d>>2]=e|h;d=H[j+12>>2];f:{if((d|0)!=H[j+16>>2]){H[d>>2]=m;H[j+12>>2]=d+4;break f}n=H[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0<g>>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=pa(i<<2)}else{g=0}h=g+(e<<2)|0;H[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;H[h>>2]=H[d>>2];if((d|0)!=(n|0)){continue}break}}H[j+8>>2]=h;H[j+12>>2]=e;H[j+16>>2]=g+(i<<2);if(!n){break f}oa(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=H[H[H[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=H[(H[H[a>>2]+96>>2]+N(e,12)|0)+(i-N(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(f-N(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=H[a+56>>2]+(m>>>3&268435452)|0;h=H[d>>2];e=1<<m;if(!(h&e)){continue}}break}if(l|!(g&1)){break e}l=H[j+12>>2]-4|0;g=H[l>>2];d=H[a+56>>2]+(g>>>3&536870908)|0;c=H[d>>2];o=d,p=Vj(g)&c,H[o>>2]=p;H[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;de(a,-1);break a}sa();v()}wa();v()}H[((b<<2)+a|0)+44>>2]=k;b=H[j+12>>2];i=H[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=H[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=H[l+i>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;g=H[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=H[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(c)&a,H[o>>2]=p}}function Gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function pj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function xe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=H[a+48>>2];H[a+52>>2]=f;a:{if((f|0)!=H[a+56>>2]){H[f>>2]=b;H[a+52>>2]=f+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!f){break a}oa(f)}e=-1;d=H[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=H[H[d>>2]+(i<<2)>>2]}b:{h=b-N(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=H[H[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=H[a+36>>2];f=c+(e>>>3&536870908)|0;g=H[f>>2];d=1<<e;if(!(g&d)){H[f>>2]=d|g;Ua(a+8|0,e,i);c=H[a+36>>2]}g=(j>>>3&536870908)+c|0;d=H[g>>2];c=1<<j;if(!(d&c)){H[g>>2]=c|d;Ua(a+8|0,j,(h?-1:2)+b|0)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=H[a+24>>2]+(d>>>3&268435452)|0;g=H[f>>2];d=1<<d;if(g&d){break d}H[f>>2]=d|g;while(1){i=H[a+4>>2];e=H[H[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=H[a+36>>2]+(e>>>3&536870908)|0;f=H[h>>2];g=1<<e;if(f&g){break f}g:{d=H[H[i+24>>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=H[H[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}H[h>>2]=f|g;Ua(j,e,b);break f}H[h>>2]=f|g;Ua(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;e=H[a+24>>2];f=c>>>5|0;i=H[e+(f<<2)>>2];break e}c=-1;g=H[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=H[H[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=H[H[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=H[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=H[e+(f<<2)>>2];d=1<<d;if(!(i&d)){break k}}if(!g){d=1<<h;e=H[a+24>>2];f=h>>>5|0;i=H[e+(f<<2)>>2];if(!(d&i)){break e}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break c}if(g){b=c;break e}if(H[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=H[a+52>>2];H[e-4>>2]=b;if(H[a+56>>2]!=(e|0)){H[e>>2]=c;c=e+4|0;break d}l:{h=H[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=pa(f<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;H[b>>2]=H[e>>2];if((e|0)!=(h|0)){continue}break}}H[a+56>>2]=d+(f<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!h){break c}oa(h);c=H[a+52>>2];break c}sa();v()}wa();v()}H[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function uj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function dj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=ca-80|0;ca=h;a:{b:{if(I[H[a+28>>2]+36|0]<=1){d=H[b+20>>2];f=H[b+16>>2];c=f+4|0;d=c>>>0<4?d+1|0:d;g=H[b+12>>2];if(K[b+8>>2]<c>>>0&(g|0)<=(d|0)|(d|0)>(g|0)){break a}f=f+H[b>>2]|0;j=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!Pc(1,h+76|0,b)){break a}j=H[h+76>>2]}if(!j){break a}d=H[b+8>>2];c=H[b+16>>2];d=Rj(d-c|0,H[b+12>>2]-(H[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=da;if(d>>>0<j>>>0&(c|0)<=0|(c|0)<0){break a}c=H[a+4>>2];d=H[a+8>>2]-c>>2;c:{if(d>>>0<j>>>0){ya(a+4|0,j-d|0);break c}if(d>>>0<=j>>>0){break c}H[a+8>>2]=c+(j<<2)}p=a+16|0;l=H[a+32>>2];while(1){i=H[b+12>>2];c=i;d=H[b+20>>2];e=H[b+8>>2];f=H[b+16>>2];if((c|0)<=(d|0)&e>>>0<=f>>>0|(c|0)<(d|0)){e=0;break a}n=H[b>>2];q=I[n+f|0];c=d;g=f+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;if(e>>>0<=g>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}g=I[g+n|0];c=d;k=f+2|0;c=k>>>0<2?c+1|0:c;H[b+16>>2]=k;H[b+20>>2]=c;if(e>>>0<=k>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}k=I[k+n|0];c=d;m=f+3|0;c=m>>>0<3?c+1|0:c;H[b+16>>2]=m;H[b+20>>2]=c;if(e>>>0<=m>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}e=I[m+n|0];c=d;d=f+4|0;c=d>>>0<4?c+1|0:c;H[b+16>>2]=d;H[b+20>>2]=c;if(q>>>0>4){e=0;break a}if((g-12&255)>>>0<245){e=0;break a}if(!k){e=0;break a}m=Eb(h+8|0);i=(e|0)!=0;d=g-1|0;if(d>>>0<=10){c=H[(d<<2)+13584>>2]}else{c=-1}d=N(c,k);lc(m,q,k,g,i,d,d>>31);d:{d=J[H[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=H[b+20>>2];f=H[b+16>>2];d=f+2|0;c=d>>>0<2?c+1|0:c;e=H[b+12>>2];if(K[b+8>>2]<d>>>0&(e|0)<=(c|0)|(c|0)>(e|0)){break d}f=f+H[b>>2]|0;e=I[f|0]|I[f+1|0]<<8;H[b+16>>2]=d;H[b+20>>2]=c;break e}if(!Pc(1,h+4|0,b)){break d}e=H[h+4>>2]}H[h+68>>2]=e;d=jc(pa(96),m);ea[H[H[l>>2]+8>>2]](l,H[l+12>>2]-H[l+8>>2]>>2,d);d=(H[l+12>>2]-H[l+8>>2]>>2)-1|0;f=d<<2;H[H[f+H[l+8>>2]>>2]+60>>2]=e;H[H[a+4>>2]+(o<<2)>>2]=d;e=H[a+16>>2];c=H[a+20>>2]-e>>2;f:{if((c|0)>(d|0)){break f}H[h>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){Pa(p,d-c|0,h);e=H[p>>2];break f}if(c>>>0<=d>>>0){break f}H[a+20>>2]=(d<<2)+e}H[e+f>>2]=o;e=1;o=o+1|0;if((o|0)!=(j|0)){continue}break a}break}e=0}ca=h+80|0;return e|0}function nd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=ea[H[H[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=H[b+4>>2]-H[b>>2]>>2;e=ca+-64|0;ca=e;f=Eb(e);d=N(H[3400],n);lc(f,H[H[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=jc(pa(96),f);F[f+84|0]=1;H[f+72>>2]=H[f+68>>2];mb(f,i);H[f+60>>2]=H[H[a+8>>2]+60>>2];d=H[a+16>>2];H[a+16>>2]=f;if(d){Ga(d)}ca=e- -64|0;h=H[a+16>>2];if(!H[h+80>>2]){break a}j=H[H[h>>2]>>2];if(!j){break a}m=H[c+12>>2];e=m;d=H[c+20>>2];g=H[c+8>>2];k=H[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=N(i,n);i=j+H[h+48>>2]|0;h=H[c>>2];j=I[h+k|0];e=k+1|0;f=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=f;b:{c:{if(j){if(kd(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=I[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;d=H[H[a+16>>2]+64>>2];d=H[d+4>>2]-H[d>>2]|0;if((g|0)==H[3400]){e=l<<2;if(e>>>0>d>>>0){break a}g=H[c+8>>2];k=H[c+12>>2];j=H[c+20>>2];d=H[c+16>>2];f=e+d|0;j=f>>>0<e>>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}qa(i,d+H[c>>2]|0,e);f=H[c+20>>2];d=e+H[c+16>>2]|0;f=d>>>0<e>>>0?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;break c}if(d>>>0<N(g,l)>>>0){break a}d=H[c+8>>2];f=H[c+16>>2];e=d-f|0;m=d>>>0<f>>>0;d=H[c+20>>2];k=H[c+12>>2]-(m+d|0)|0;m=Rj(g,0,l,0)>>>0>e>>>0;e=da;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=H[c+8>>2];j=H[c+12>>2];e=f+g|0;d=e>>>0<g>>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}qa(i+(h<<2)|0,H[c>>2]+f|0,g);d=H[c+20>>2];f=g+H[c+16>>2]|0;d=f>>>0<g>>>0?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=H[a+20>>2];if(d){e=0;if(ea[H[H[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=H[e+i>>2];H[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=H[d+i>>2];H[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=H[d+i>>2];H[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=H[a+20>>2];e:{if(!f){break e}if(!(ea[H[H[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=H[a+20>>2];if(!(ea[H[H[a>>2]+44>>2]](a,i,i,l,n,H[b>>2])|0)){break a}}o=1}return o|0}function pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{b:{if(H[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=pa(b<<2);H[h+24>>2]=b;H[h+20>>2]=0;H[h+16>>2]=c;b=H[a>>2];H[h+12>>2]=0;H[h+8>>2]=b;c=H[a+4>>2];H[h+4>>2]=c&31;H[h>>2]=b+(c>>>3&536870908);e=ca-32|0;ca=e;i=H[h+4>>2];g=H[h+12>>2];j=H[h>>2];d=H[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=H[h+20>>2];c=b+f|0;H[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){H[H[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=H[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<<g&-1>>>i-f;H[c>>2]=H[c>>2]&(i^-1)|i&H[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){va(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;H[g>>2]=H[g>>2]&(b^-1)|b&H[c+d>>2];break c}H[e+28>>2]=g;H[e+24>>2]=d;H[e+20>>2]=i;H[e+16>>2]=j;H[e+12>>2]=f;H[e+8>>2]=c;b=H[e+28>>2];c=H[e+24>>2];g=(H[e+20>>2]-b|0)+(H[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=H[e+12>>2];d=H[e+8>>2];break d}e:{if(!b){b=H[e+12>>2];break e}d=H[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=H[e+8>>2];m=H[l>>2]&(-1<<d&-1>>>j-i^-1);j=H[c>>2]&(-1<<b&-1>>>k-f);H[l>>2]=m|(b>>>0<d>>>0?j<<d-b:j>>>b-d|0);c=d+i|0;b=c&31;H[e+12>>2]=b;d=l+(c>>>3&536870908)|0;H[e+8>>2]=d;c=f-i|0;if((c|0)>0){H[d>>2]=H[d>>2]&(-1>>>32-c^-1)|j>>>i+H[e+28>>2];H[e+12>>2]=c;b=c}g=g-f|0;c=H[e+24>>2]+4|0;H[e+24>>2]=c}i=-1<<b;f=32-b|0;if((g|0)>=32){j=i^-1;while(1){d=H[e+8>>2];c=H[c>>2];H[d>>2]=j&H[d>>2]|c<<b;H[e+8>>2]=d+4;H[d+4>>2]=i&H[d+4>>2]|c>>>f;c=H[e+24>>2]+4|0;H[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=H[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=H[d>>2]&(i&-1>>>j-f^-1);i=H[c>>2]&-1>>>32-g;H[d>>2]=j|i<<b;b=b+f|0;c=b&31;H[e+12>>2]=c;d=(b>>>3&536870908)+d|0;H[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}H[d>>2]=H[d>>2]&(-1>>>32-b^-1)|i>>>f;H[e+12>>2]=b}H[e+4>>2]=b;H[e>>2]=d}ca=e+32|0;b=H[a>>2];H[a>>2]=H[h+16>>2];H[h+16>>2]=b;c=H[a+4>>2];H[a+4>>2]=H[h+20>>2];H[h+20>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[h+24>>2];H[h+24>>2]=c;if(!b){break b}oa(b)}ca=h+32|0;return}sa();v()}function Ne(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){g=H[b+8>>2];e=H[b+12>>2];d=H[b+20>>2];c=H[b+16>>2];i=c+4|0;d=i>>>0<4?d+1|0:d;if(g>>>0<i>>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=c+H[b>>2]|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[a+12>>2]=f;d=H[b+20>>2];c=H[b+16>>2]+4|0;d=c>>>0<4?d+1|0:d;H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!hb(1,a+12|0,b)){break a}c=H[b+16>>2];d=H[b+20>>2];f=H[a+12>>2]}e=H[b+8>>2];i=e-c|0;c=H[b+12>>2]-(d+(c>>>0>e>>>0)|0)|0;if(i>>>0<f>>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=H[a>>2];c=H[a+4>>2]-d>>2;c:{if(c>>>0<f>>>0){ya(a,f-c|0);f=H[a+12>>2];break c}if(c>>>0<=f>>>0){break c}H[a+4>>2]=d+(f<<2)}if(!f){return 1}c=H[b+16>>2];d=H[b+20>>2];l=H[a>>2];i=H[b+8>>2];j=H[b+12>>2];g=0;while(1){if((d|0)>=(j|0)&c>>>0>=i>>>0|(d|0)>(j|0)){return 0}m=H[b>>2];k=I[m+c|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=k>>>2|0;h=0;d:{e:{f:{g:{n=k&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ra(l+(g<<2)|0,0,(k&252)+4|0);g=e;break d}while(1){if((c|0)==(i|0)&(d|0)==(j|0)){break a}f=I[c+m|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}H[l+(g<<2)>>2]=e}f=H[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;i=H[a>>2];d=H[a+16>>2];c=H[a+20>>2]-d|0;h:{if(c>>>0<=16383){ya(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}H[a+20>>2]=d+16384}c=a+28|0;g=H[c>>2];d=H[a+32>>2]-g>>3;i:{if(d>>>0<f>>>0){ob(c,f-d|0);g=H[c>>2];break i}if(d>>>0>f>>>0){H[a+32>>2]=(f<<3)+g}if(!f){break a}}d=H[b>>2];b=0;a=0;while(1){c=i+(b<<2)|0;h=H[c>>2];e=a;j=(b<<3)+g|0;H[j+4>>2]=a;H[j>>2]=h;c=H[c>>2];a=c+a|0;if(a>>>0>4096){break a}j:{if(a>>>0<=e>>>0){break j}h=0;j=c&7;if(j){while(1){H[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((j|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=d+(e<<2)|0;H[c>>2]=b;H[c+28>>2]=b;H[c+24>>2]=b;H[c+20>>2]=b;H[c+16>>2]=b;H[c+12>>2]=b;H[c+8>>2]=b;H[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function Ni(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<<d;d=-2-e|0;H[a+84>>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ii(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<<d;d=-2-e|0;H[a+84>>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Wi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<<d;d=-2-e|0;H[a+84>>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ri(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<<d;d=-2-e|0;H[a+84>>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ge(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ca-16|0;ca=f;c=H[a+4>>2];H[a+40>>2]=H[a>>2];H[a+44>>2]=c;c=H[a+36>>2];H[a+72>>2]=H[a+32>>2];H[a+76>>2]=c;d=H[a+28>>2];c=a- -64|0;H[c>>2]=H[a+24>>2];H[c+4>>2]=d;c=H[a+20>>2];H[a+56>>2]=H[a+16>>2];H[a+60>>2]=c;c=H[a+12>>2];H[a+48>>2]=H[a+8>>2];H[a+52>>2]=c;a:{b:{if(Db(a+40|0,1,f+8|0)){c=H[a+44>>2];H[a>>2]=H[a+40>>2];H[a+4>>2]=c;c=H[a+76>>2];H[a+32>>2]=H[a+72>>2];H[a+36>>2]=c;c=H[a+68>>2];H[a+24>>2]=H[a+64>>2];H[a+28>>2]=c;d=H[a+60>>2];h=d;c=H[a+56>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+52>>2];d=H[a+48>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0<d>>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;c:{if(J[a+38>>1]<=513){c=H[a+4>>2];H[a+96>>2]=H[a>>2];H[a+100>>2]=c;c=H[a+36>>2];H[a+128>>2]=H[a+32>>2];H[a+132>>2]=c;c=H[a+28>>2];H[a+120>>2]=H[a+24>>2];H[a+124>>2]=c;c=H[a+20>>2];H[a+112>>2]=H[a+16>>2];H[a+116>>2]=c;c=H[a+12>>2];H[a+104>>2]=H[a+8>>2];H[a+108>>2]=c;d:{if(Db(a+96|0,1,f+8|0)){c=H[a+100>>2];H[a>>2]=H[a+96>>2];H[a+4>>2]=c;c=H[a+132>>2];H[a+32>>2]=H[a+128>>2];H[a+36>>2]=c;c=H[a+124>>2];H[a+24>>2]=H[a+120>>2];H[a+28>>2]=c;d=H[a+116>>2];h=d;c=H[a+112>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+108>>2];d=H[a+104>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0<d>>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;break c}c=0;if(!ta(a+80|0,a)){break a}}c=0;if(!Fe(a)){break a}c=H[a+4>>2];H[b>>2]=H[a>>2];H[b+4>>2]=c;c=H[a+36>>2];H[b+32>>2]=H[a+32>>2];H[b+36>>2]=c;c=H[a+28>>2];H[b+24>>2]=H[a+24>>2];H[b+28>>2]=c;c=H[a+20>>2];H[b+16>>2]=H[a+16>>2];H[b+20>>2]=c;c=H[a+12>>2];H[b+8>>2]=H[a+8>>2];H[b+12>>2]=c;c=1}ca=f+16|0;return c}function oe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!H[a+64>>2]){c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(d){c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d);c=H[a+64>>2]}H[a>>2]=c;d=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=d;d=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+16>>2]=d;H[a+20>>2]=c}a:{F[a+24|0]=I[b+24|0];H[a+28>>2]=H[b+28>>2];F[a+32|0]=I[b+32|0];c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;H[a+56>>2]=H[b+56>>2];c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;H[a+60>>2]=H[b+60>>2];c=H[b>>2];b:{if(!c){H[a>>2]=0;d=1;break b}g=H[a>>2];d=0;if(!g){break b}d=H[c>>2];c=H[c+4>>2]-d|0;se(g,d,c,0);d=1}c:{if(!d){break c}F[a+84|0]=I[b+84|0];H[a+80>>2]=H[b+80>>2];if((a|0)!=(b|0)){Cb(a+68|0,H[b+68>>2],H[b+72>>2])}f=H[b+88>>2];d:{if(f){e=pa(40);b=H[f>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e>>2]=b;c=H[f+12>>2];b=H[f+8>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=pa(c);H[e+12>>2]=b;H[e+8>>2]=b;H[e+16>>2]=b+c;c=H[f+8>>2];h=H[f+12>>2];e:{if((c|0)==(h|0)){break e}g=(c^-1)+h|0;d=h-c&7;if(d){while(1){F[b|0]=I[c|0];b=b+1|0;c=c+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}if(g>>>0<7){break e}while(1){F[b|0]=I[c|0];F[b+1|0]=I[c+1|0];F[b+2|0]=I[c+2|0];F[b+3|0]=I[c+3|0];F[b+4|0]=I[c+4|0];F[b+5|0]=I[c+5|0];F[b+6|0]=I[c+6|0];F[b+7|0]=I[c+7|0];b=b+8|0;c=c+8|0;if((h|0)!=(c|0)){continue}break}}H[e+12>>2]=b}b=H[f+36>>2];H[e+32>>2]=H[f+32>>2];H[e+36>>2]=b;b=H[f+28>>2];H[e+24>>2]=H[f+24>>2];H[e+28>>2]=b;b=H[a+88>>2];H[a+88>>2]=e;if(b){break d}break c}b=H[a+88>>2];H[a+88>>2]=0;if(!b){break c}}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}oa(b)}return}sa();v()}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=ca-32|0;ca=f;e=f+8|0;c=ca-80|0;ca=c;a=H[b+36>>2];H[c+72>>2]=H[b+32>>2];H[c+76>>2]=a;d=H[b+28>>2];a=c- -64|0;H[a>>2]=H[b+24>>2];H[a+4>>2]=d;a=H[b+20>>2];H[c+56>>2]=H[b+16>>2];H[c+60>>2]=a;a=H[b+12>>2];H[c+48>>2]=H[b+8>>2];H[c+52>>2]=a;a=H[b+4>>2];H[c+40>>2]=H[b>>2];H[c+44>>2]=a;nc(c+8|0,c+40|0,c+24|0);a=H[c+8>>2];a:{if(a){H[e>>2]=a;a=e+4|0;if(F[c+23|0]>=0){b=c+8|4;e=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=e;H[a+8>>2]=H[b+8>>2];break a}za(a,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]>=0){break a}oa(H[c+12>>2]);break a}if(F[c+23|0]<0){oa(H[c+12>>2])}a=I[c+31|0];if(a>>>0>=2){b=pa(32);F[b+26|0]=0;a=I[1477]|I[1478]<<8;F[b+24|0]=a;F[b+25|0]=a>>>8;a=I[1473]|I[1474]<<8|(I[1475]<<16|I[1476]<<24);d=I[1469]|I[1470]<<8|(I[1471]<<16|I[1472]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=a;F[b+21|0]=a>>>8;F[b+22|0]=a>>>16;F[b+23|0]=a>>>24;a=I[1465]|I[1466]<<8|(I[1467]<<16|I[1468]<<24);d=I[1461]|I[1462]<<8|(I[1463]<<16|I[1464]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=a;F[b+13|0]=a>>>8;F[b+14|0]=a>>>16;F[b+15|0]=a>>>24;a=I[1457]|I[1458]<<8|(I[1459]<<16|I[1460]<<24);d=I[1453]|I[1454]<<8|(I[1455]<<16|I[1456]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=a;F[b+5|0]=a>>>8;F[b+6|0]=a>>>16;F[b+7|0]=a>>>24;H[c+8>>2]=-1;a=c+8|4;za(a,b,26);d=F[c+23|0];H[e>>2]=H[c+8>>2];e=e+4|0;if((d|0)>=0){d=H[a+4>>2];H[e>>2]=H[a>>2];H[e+4>>2]=d;H[e+8>>2]=H[a+8>>2];oa(b);break a}za(e,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]<0){oa(H[c+12>>2])}oa(b);break a}H[e>>2]=0;H[e+4>>2]=0;H[e+16>>2]=a;H[e+8>>2]=0;H[e+12>>2]=0}ca=c+80|0;a=H[f+24>>2];if(F[f+23|0]<0){oa(H[f+12>>2])}ca=f+32|0;return a|0}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;H[k+8>>2]=c;h=H[a+12>>2];d=H[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=H[a+16>>2];d=H[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ra(e,0,d)+d|0}H[a+12>>2]=d;break a}b:{c:{d:{m=H[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ra(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=H[d>>2];H[d>>2]=0;h=h-4|0;H[h>>2]=f;if((d|0)!=(m|0)){continue}break}H[a+16>>2]=e;e=H[a+12>>2];H[a+12>>2]=g;d=H[a+8>>2];H[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=H[e>>2];H[e>>2]=0;if(f){Ga(f)}if((d|0)!=(e|0)){continue}break}break b}sa();v()}wa();v()}H[a+16>>2]=e;H[a+12>>2]=g;H[a+8>>2]=i}if(d){oa(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=H[h>>2];H[h>>2]=0;if(c){Ga(c)}if((d|0)!=(h|0)){continue}break}c=H[k+8>>2]}H[a+12>>2]=d}e:{f:{d=H[c+56>>2];g:{if((d|0)>4){break g}j=N(d,12)+a|0;d=H[j+24>>2];if((d|0)!=H[j+28>>2]){H[d>>2]=b;H[j+24>>2]=d+4;break g}i=H[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=pa(e<<2)}else{d=0}f=d+(f<<2)|0;H[f>>2]=b;d=va(d,i,g);H[j+20>>2]=d;H[j+24>>2]=f+4;H[j+28>>2]=d+(e<<2);if(!i){break g}oa(i)}H[c+60>>2]=b;a=H[a+8>>2];H[k+8>>2]=0;a=a+(b<<2)|0;b=H[a>>2];H[a>>2]=c;if(b){Ga(b)}a=H[k+8>>2];H[k+8>>2]=0;if(a){Ga(a)}ca=k+16|0;return}sa();v()}wa();v()}function Og(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(H[a+12>>2]==(b|0)){break a}a=b;b=H[d+4>>2];e=H[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(F[b-1|0]<0){oa(H[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=a;H[d+4>>2]=e;c=H[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=H[d+4>>2];b:{if((a|0)!=H[d+8>>2]){c:{if(F[c+27|0]>=0){b=H[c+20>>2];H[a>>2]=H[c+16>>2];H[a+4>>2]=b;H[a+8>>2]=H[c+24>>2];break c}za(a,H[c+16>>2],H[c+20>>2])}H[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=H[d+4>>2];e=H[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(H[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0<k>>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=pa(N(b,12))}h=N(b,12);b=N(f,12)+g|0;g:{if(F[c+27|0]>=0){f=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=f;H[b+8>>2]=H[c+24>>2];break g}za(b,H[c+16>>2],H[c+20>>2]);e=H[d>>2];a=H[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=H[a+4>>2];b=b-12|0;H[b>>2]=H[a>>2];H[b+4>>2]=h;H[b+8>>2]=H[a+8>>2];H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}H[d+8>>2]=g;a=H[d+4>>2];H[d+4>>2]=f;e=H[d>>2];H[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(F[a-1|0]<0){oa(H[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}sa();v()}wa();v()}H[d+8>>2]=g;H[d+4>>2]=f;H[d>>2]=b}if(e){oa(e)}}b=H[c+4>>2];h:{if(b){while(1){a=b;b=H[b>>2];if(b){continue}break h}}while(1){a=H[c+8>>2];b=H[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=H[d>>2];if((H[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+N(i,12)|0;a=F[a+11|0]<0?H[a>>2]:a}return a|0}function bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=ca-16|0;ca=i;H[i>>2]=b;f=-1;a:{if((b|0)==-1){H[i+4>>2]=-1;break a}f=b+1|0;H[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}H[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=H[(l<<2)+i>>2];if((j|0)!=-1){f=H[H[H[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=H[a+216>>2];if((g|0)==H[a+220>>2]){break e}while(1){g=N(f,144)+g|0;d=H[g+136>>2];c=H[g+140>>2];g:{if(d>>>0<c>>>0){H[d>>2]=j;H[g+136>>2]=d+4;break g}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break g}oa(d)}f=f+1|0;g=H[a+216>>2];if(f>>>0<(H[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0<n>>>0){break e}f=0;if(H[a+220>>2]==H[a+216>>2]){break e}while(1){h:{if(!Ba(H[a+368>>2]+(f<<4)|0)){break h}g=H[a+216>>2]+N(f,144)|0;d=H[g+136>>2];c=H[g+140>>2];if(d>>>0<c>>>0){H[d>>2]=j;H[g+136>>2]=d+4;break h}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break h}oa(d)}f=f+1|0;if(f>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}ca=i+16|0;return 1}sa();v()}wa();v()}sa();v()}function cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=ca-16|0;ca=h;H[h>>2]=b;c=-1;a:{if((b|0)==-1){H[h+4>>2]=-1;break a}c=b+1|0;H[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}H[h+8>>2]=c;b:{c:{while(1){i=H[(k<<2)+h>>2];d:{if(!((i|0)==-1|H[H[H[a+8>>2]+12>>2]+(i<<2)>>2]==-1)){b=0;if(H[a+220>>2]==H[a+216>>2]){break d}while(1){e:{f:{if(!Ba(H[a+368>>2]+(b<<4)|0)){break f}c=H[a+216>>2]+N(b,144)|0;e=H[c+136>>2];d=H[c+140>>2];if(e>>>0<d>>>0){H[e>>2]=i;H[c+136>>2]=e+4;break f}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break e}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0<f>>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break f}oa(e)}b=b+1|0;if(b>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break d}break}sa();v()}b=0;c=H[a+216>>2];if((c|0)==H[a+220>>2]){break d}while(1){c=N(b,144)+c|0;e=H[c+136>>2];d=H[c+140>>2];g:{if(e>>>0<d>>>0){H[e>>2]=i;H[c+136>>2]=e+4;break g}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break c}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0<f>>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break g}oa(e)}b=b+1|0;c=H[a+216>>2];if(b>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}ca=h+16|0;return 1}sa();v()}wa();v()}function vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!ic(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function ug(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!hc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function qc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;f=h;H[c+4>>2]=f;l=H[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=N(j,l);f=(e<<1)-n|0;i=(N(g,j)|0)>=0;e=N(g,l);f=((i?0-f|0:f)+e|0)/2|0;H[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;H[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}H[c>>2]=f;H[c+4>>2]=g;j=0}e=H[d>>2]+f|0;h=H[b+16>>2];k:{if((e|0)>(h|0)){e=e-H[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=H[b+4>>2]+e|0}c=H[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-H[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=H[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=N(f,h);d=d-e|0;f=(N(c,f)|0)>=0;g=f?0-d|0:d;d=N(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;H[b>>2]=e+k;H[b+4>>2]=c+k}function Cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]<e>>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[H[a+48>>2]+64>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0<f>>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<<i;e=Ba(c);g=H[a+76>>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0<k>>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]<e>>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[a+48>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0<f>>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<<i;e=Ba(c);g=H[a+76>>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0<k>>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function cj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];g=H[a+36>>2]-h>>2;a:{if(g>>>0<e>>>0){ya(m,e-g|0);f=H[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}H[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ra(pa(g),0,g);b:{if((f|0)<=0){break b}h=H[a+32>>2];while(1){f=i<<2;g=H[f+n>>2];j=H[a+16>>2];c:{if((g|0)>(j|0)){H[f+h>>2]=j;break c}f=f+h|0;j=H[a+12>>2];if((j|0)>(g|0)){H[f>>2]=j;break c}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=H[b+g>>2]+H[g+h>>2]|0;H[f>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=H[m>>2];i=0;while(1){f=i<<2;h=H[f+q>>2];k=H[a+16>>2];f:{if((h|0)>(k|0)){H[f+j>>2]=k;break f}f=f+j|0;k=H[a+12>>2];if((k|0)>(h|0)){H[f>>2]=k;break f}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=H[h+l>>2]+H[h+j>>2]|0;H[f>>2]=h;g:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break g}h=h+H[a+20>>2]|0}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}oa(n);return 1}function De(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=H[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=H[a+148>>2];c=-1;e=1;d=((d|0)!=-1?H[H[g>>2]+(d<<2)>>2]:c)<<2;c=H[a+156>>2];d=d+c|0;H[d>>2]=H[d>>2]+1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+1;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+2;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0}H[c>>2]=H[c>>2]+e;e=H[a+184>>2]}h:{switch(e|0){case 0:case 5:f=H[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=H[H[H[a+148>>2]>>2]+(b<<2)>>2]}if(H[f+(c<<2)>>2]<=5){H[a+188>>2]=5;return}H[a+188>>2]=0;return;default:break h}}H[a+188>>2]=-1}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[b+80>>2];b=I[c+24|0];g=N(j,b);a:{if(!b){break a}h=b<<2;f=pa(h);a=f;k=b&7;if(k){while(1){H[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){H[a+24>>2]=-1073741824;H[a+28>>2]=-1073741824;H[a+16>>2]=-1073741824;H[a+20>>2]=-1073741824;H[a+8>>2]=-1073741824;H[a+12>>2]=-1073741824;H[a>>2]=-1073741824;H[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=H[d>>2];a=H[d+4>>2]-e>>2;b:{if(a>>>0<g>>>0){ya(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}H[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!Va(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!Va(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break e}m=H[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;L[g>>2]=L[h+f>>2];L[g+4>>2]=L[(h|4)+f>>2];L[g+8>>2]=L[(h|8)+f>>2];L[g+12>>2]=L[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){L[(e<<2)+m>>2]=L[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}oa(f)}return i|0}function mf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ca-16|0;ca=e;h=1;i=ea[H[H[a>>2]+24>>2]](a)|0;a:{if((i|0)<=0){break a}l=a+48|0;h=0;while(1){b:{c:{if(!H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=H[j+H[a+36>>2]>>2];b=H[g+8>>2];k=rb(g);if(!k){break c}g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[e+12>>2]=H[b+56>>2];b=pa(32);H[e>>2]=b;H[e+4>>2]=24;H[e+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;b=sd(g,e+12|0,e);if(F[e+11|0]<0){oa(H[e>>2])}if(!b){break c}oe(H[H[H[a+36>>2]+j>>2]+8>>2],k);break b}b=H[H[a+36>>2]+(f<<2)>>2];if(!(ea[H[H[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;h=(i|0)<=(f|0);if((f|0)!=(i|0)){continue}break}}ca=e+16|0;return h|0}function Ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];a:{if(K[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+H[b>>2]|0;h=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((h|0)<0){break a}Wa(a+76|0,h);c=k;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;b:{if(!ta(c,b)){break b}if(h){g=1;while(1){d=1<<i;e=Ba(c);f=H[a+76>>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=H[f>>2]&(d^-1)}else{d=d|H[f>>2]}g=e^1;H[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=H[b+8>>2];e=H[b+12>>2];f=e;e=H[b+20>>2];g=e;l=H[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=H[b>>2];d=m+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(j|0)){break b}H[a+16>>2]=d;H[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0<j>>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break b}H[a+24>>2]=b-1}}ca=k+16|0;return i|0}function rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!dc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!dc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!ec(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!ec(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!gc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!gc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!fc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!fc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function Ce(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(H[a+168>>2]){case 0:case 1:e=H[a+148>>2];c=1;b=H[a+156>>2];g=b+(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)|0;H[g>>2]=H[g>>2]+1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+1;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+2;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0}H[b>>2]=H[b>>2]+c}c=a;b=H[H[a+156>>2]+(((f|0)==-1?-1:H[H[H[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=H[a+180>>2];a=H[a+176>>2];H[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Ac(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;f=H[b+4>>2];g=H[b>>2];e=f-g|0;c=(e|0)/20|0;a:{if((f|0)==(g|0)){break a}b:{if(c>>>0<214748365){f=pa(e);H[a+20>>2]=f;H[a+16>>2]=f;H[a+24>>2]=f+N(c,20);c=H[b>>2];g=H[b+4>>2];if((c|0)==(g|0)){break a}b=f;while(1){e=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=e;H[b+16>>2]=H[c+16>>2];e=H[c+12>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=e;b=b+20|0;c=c+20|0;if((g|0)!=(c|0)){continue}break}g=0;H[a+28>>2]=0;H[a+20>>2]=b;if((b|0)!=(f|0)){b=(b-f|0)/20|0;e=b>>>0<=1?1:b;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+N(b,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|1,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|2,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|3,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+N(b,20)|0;e=N(H[e+16>>2],H[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){H[a+12>>2]=0;return a}if((c|0)<0){break b}g=pa(c);b=ra(g,0,c);f=b+c|0;H[a+8>>2]=f;H[a+4>>2]=f;H[a>>2]=b}H[a+12>>2]=g;return a}sa();v()}sa();v()}H[a+28>>2]=0;H[a+12>>2]=0;return a}function Dh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=H[a+32>>2];f=H[b+8>>2];h=H[b+12>>2];g=H[b+20>>2];c=H[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=I[H[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;H[e+16>>2]=c;H[e+20>>2]=b;c:{if(!f){break c}while(1){if(ea[H[H[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=H[a+8>>2];b=H[a+12>>2];if((d|0)!=(b|0)){while(1){c=H[d>>2];if(!(ea[H[H[c>>2]+8>>2]](c,a,H[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=H[H[a+8>>2]+(d<<2)>>2];if(!(ea[H[H[b>>2]+12>>2]](b,H[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=H[j+H[a+8>>2]>>2];k=ea[H[H[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=H[H[a+8>>2]+j>>2];c=ea[H[H[c>>2]+20>>2]](c,d)|0;e=H[a+20>>2];g=H[a+24>>2]-e>>2;e:{if(c>>>0<g>>>0){break e}h=c+1|0;if(h>>>0>g>>>0){ya(i,h-g|0);e=H[i>>2];break e}if(g>>>0<=h>>>0){break e}H[a+24>>2]=(h<<2)+e}H[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!(ea[H[H[a>>2]+28>>2]](a)|0)){break b}e=ea[H[H[a>>2]+32>>2]](a)|0}return e|0}return 0}function ta(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ca-16|0;ca=i;f=H[b+20>>2];d=H[b+12>>2];c=H[b+16>>2];a:{if((f|0)>=(d|0)&c>>>0>=K[b+8>>2]|(d|0)<(f|0)){break a}F[a+12|0]=I[c+H[b>>2]|0];c=H[b+20>>2];g=c;f=H[b+16>>2];e=f+1|0;c=e?c:c+1|0;H[b+16>>2]=e;H[b+20>>2]=c;b:{if(J[b+38>>1]<=513){d=H[b+8>>2];c=H[b+12>>2];h=c;c=g;f=f+5|0;c=f>>>0<5?c+1|0:c;if(d>>>0<f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}e=e+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;break b}if(!Qe(1,i+12|0,b)){break a}f=H[b+16>>2];c=H[b+20>>2];d=H[b+8>>2];h=H[b+12>>2];e=H[i+12>>2]}g=d-f|0;d=h-(c+(d>>>0<f>>>0)|0)|0;if((d|0)<=0&e>>>0>g>>>0|(d|0)<0|(e|0)<=0){break a}j=H[b>>2]+f|0;H[a>>2]=j;c:{d:{h=e-1|0;g=h+j|0;d=I[g|0];e:{if(d>>>0<=63){H[a+4>>2]=h;g=I[g|0]&63;break e}f:{switch((d>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(e>>>0<2){break a}d=e-2|0;H[a+4>>2]=d;d=d+j|0;g=I[d+1|0]<<8&16128|I[d|0]}H[a+8>>2]=g+4096;break c}if(e>>>0<3){break a}d=e-3|0;H[a+4>>2]=d;g=a;a=d+j|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];H[g+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=e+f|0;c=a>>>0<e>>>0?c+1|0:c;H[b+16>>2]=a;H[b+20>>2]=c;k=1}ca=i+16|0;return k}function Wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Xd(a,b,c);c=H[a+84>>2];d=H[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=H[a+92>>2];c=H[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}H[a+88>>2]=c;break b}d:{b=c;c=H[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0<h>>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=va(j,c,i);H[a+88>>2]=f;H[a+84>>2]=b;H[a+92>>2]=b+(e<<2);if(c){oa(c)}break b}sa();v()}wa();v()}return}if(b>>>0>=d>>>0){break a}H[a+88>>2]=c+(b<<2)}}function qb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){H[d>>2]=H[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=pa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){H[d>>2]=H[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;H[f>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[a+8>>2]=(h<<2)+k;H[a+4>>2]=g;H[a>>2]=f;if(i){oa(i)}return}sa();v()}wa();v()}function Kc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a>>2];if(d-e>>2>>>0>=b>>>0){f=H[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){H[d>>2]=H[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){H[f>>2]=H[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}H[a+4>>2]=b;return}H[a+4>>2]=e+(b<<2);return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=pa(d);H[a>>2]=e;H[a+8>>2]=d+e;c=H[c>>2];d=e;g=b&7;if(g){while(1){H[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d+28>>2]=c;H[d+24>>2]=c;H[d+20>>2]=c;H[d+16>>2]=c;H[d+12>>2]=c;H[d+8>>2]=c;H[d+4>>2]=c;H[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}sa();v()}function Me(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=ca-16|0;ca=h;a:{b:{if(J[b+38>>1]<=511){e=H[b+8>>2];c=H[b+12>>2];i=c;f=H[b+20>>2];d=H[b+16>>2];g=d+8|0;f=g>>>0<8?f+1|0:f;if(e>>>0<g>>>0&(c|0)<=(f|0)|(c|0)<(f|0)){break a}d=d+H[b>>2]|0;c=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);H[b+16>>2]=g;H[b+20>>2]=f;break b}if(!gb(1,h+8|0,b)){break a}g=H[b+16>>2];f=H[b+20>>2];e=H[b+8>>2];i=H[b+12>>2];c=H[h+8>>2];d=H[h+12>>2]}j=e-g|0;e=i-(f+(e>>>0<g>>>0)|0)|0;if((e|0)==(d|0)&c>>>0>j>>>0|d>>>0>e>>>0){break a}e=d+f|0;f=c+g|0;e=f>>>0<g>>>0?e+1|0:e;H[b+16>>2]=f;H[b+20>>2]=e;if((c|0)<=0){break a}b=H[b>>2]+g|0;H[a+40>>2]=b;g=c-1|0;e=b+g|0;f=I[e|0];c:{if(f>>>0<=63){H[a+44>>2]=g;b=I[e|0]&63;break c}d:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8&16128|I[b|0];break c;case 1:if(c>>>0<3){break a}c=c-3|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break c;default:break d}}c=c-4|0;H[a+44>>2]=c;b=b+c|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[a+48>>2]=b+16384;k=b>>>0<4177920}ca=h+16|0;return k}function Ua(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=H[(H[H[a+8>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2];a:{h=H[H[a+12>>2]+4>>2];e=H[h+4>>2];if((e|0)!=H[h+8>>2]){H[e>>2]=j;H[h+4>>2]=e+4;break a}b:{i=H[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=pa(g<<2)}else{f=0}d=k+f|0;H[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=j;H[h>>2]=d;if(i){oa(i)}break a}sa();v()}wa();v()}c:{d:{h=H[a+4>>2];e=H[h+4>>2];e:{if((e|0)!=H[h+8>>2]){H[e>>2]=c;H[h+4>>2]=e+4;break e}i=H[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=pa(g<<2)}else{f=0}d=f+(j<<2)|0;H[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=c;H[h>>2]=d;if(!i){break e}oa(i)}a=H[a+4>>2];H[H[a+12>>2]+(b<<2)>>2]=H[a+24>>2];H[a+24>>2]=H[a+24>>2]+1;return}sa();v()}wa();v()}function Wb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=H[a+8>>2];i=H[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){F[f|0]=I[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=f;if((j|0)>0){break a}return}k=H[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=pa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=qa(g,c,h)+h|0}d=va(e,k,j);c=i-b|0;b=va(g,b,c);H[a+8>>2]=e+f;H[a+4>>2]=b+c;H[a>>2]=d;if(k){oa(k)}return}sa();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){F[e|0]=I[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}H[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;va(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){F[e|0]=I[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){F[e|0]=I[c|0];F[e+1|0]=I[c+1|0];F[e+2|0]=I[c+2|0];F[e+3|0]=I[c+3|0];F[e+4|0]=I[c+4|0];F[e+5|0]=I[c+5|0];F[e+6|0]=I[c+6|0];F[e+7|0]=I[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function qa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ba(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0<e>>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0<c>>>0){break c}while(1){H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[c+28>>2]=H[b+28>>2];H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){H[c>>2]=H[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0<a>>>0){c=a;break a}c=a;while(1){F[c|0]=I[b|0];F[c+1|0]=I[b+1|0];F[c+2|0]=I[b+2|0];F[c+3|0]=I[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0<e>>>0){while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function ub(a,b){var c=0,d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;c=a+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+48>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+68>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+88>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+104>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;c=1;break a}c=b<<2;e=pa(c);H[a+92>>2]=e;f=c+e|0;H[a+100>>2]=f;ra(e,0,c);H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+96>>2]=f;e=pa(c);H[a+104>>2]=e;f=c+e|0;H[a+112>>2]=f;ra(e,0,c);H[a+108>>2]=f;e=pa(c);H[d>>2]=e;f=c+e|0;H[d+8>>2]=f;ra(e,0,c);H[d+4>>2]=f;c=b<<5|1}tb(g,c,d);e=H[d>>2];if(e){H[d+4>>2]=e;oa(e)}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if(b){b=b<<2;e=pa(b);H[d>>2]=e;f=b+e|0;H[d+8>>2]=f;ra(e,0,b);H[d+4>>2]=f}tb(a+128|0,c,d);b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}ca=d+16|0;return a}function ze(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;H[a>>2]=11484;d=a+232|0;b=H[d+196>>2];if(b){H[d+200>>2]=b;oa(b)}c=H[d+184>>2];if(c){b=c;e=H[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=H[b>>2];if(f){H[e-8>>2]=f;oa(f)}e=b;if((b|0)!=(c|0)){continue}break}b=H[d+184>>2]}H[d+188>>2]=c;oa(b)}b=H[d+156>>2];if(b){H[d+160>>2]=b;oa(b)}c=H[d+136>>2];H[d+136>>2]=0;if(c){e=c-4|0;b=H[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}b=H[a+144>>2];if(b){while(1){c=H[b>>2];oa(b);b=c;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Pa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=pa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=va(k,i,j);H[a+4>>2]=e;H[a>>2]=b;H[a+8>>2]=b+(g<<2);if(i){oa(i)}return}sa();v()}wa();v()}function Cc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}if(d>>>0<b>>>0){h=ca-16|0;ca=h;b=b-d|0;if(b){g=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}i=d+b|0;if(g-d>>>0<b>>>0){a:{e=ca-16|0;ca=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(I[a+11|0]>>>7|0){f=H[a>>2]}else{f=a}if(g>>>0<1073741799){H[e+12>>2]=g<<1;H[e>>2]=c+g;c=ca-16|0;ca=c;ca=c+16|0;c=e+12|0;c=H[(K[e>>2]<K[c>>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(e,c);c=H[e>>2];if(d){yb(c,f,d)}if((g|0)!=10){oa(f)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;ca=e+16|0;break a}Na();v()}}f=d;if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=f+d|0;e=ca-16|0;ca=e;F[e+15|0]=0;while(1){if(b){F[f|0]=I[e+15|0];b=b-1|0;f=f+1|0;continue}break}ca=e+16|0;Id(a,i);F[h+15|0]=0;F[d+i|0]=I[h+15|0]}ca=h+16|0;return}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=ca-16|0;ca=f;Id(a,b);F[f+15|0]=0;F[b+d|0]=I[f+15|0];ca=f+16|0}function Jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;a:{b:{if(b){H[a+88>>2]=0;H[a+92>>2]=0;d=H[a+84>>2];H[a+84>>2]=0;if(d){oa(d)}H[a+76>>2]=0;H[a+80>>2]=0;d=H[a+72>>2];H[a+72>>2]=0;if(d){oa(d)}d=H[b>>2];c=H[b+4>>2];F[g+15|0]=0;Oa(a,c-d>>2,g+15|0);d=H[b+28>>2];c=H[b+24>>2];F[g+14|0]=0;Oa(a+12|0,d-c>>2,g+14|0);Kc(a+28|0,H[b+4>>2]-H[b>>2]>>2,13708);c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+52>>2];c:{if(f>>>0<=H[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=H[a+56>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+60>>2]=f;H[a+56>>2]=h;H[a+52>>2]=c;if(!e){break c}oa(e)}c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+40>>2];d:{if(f>>>0<=H[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=H[a+44>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+48>>2]=f;H[a+44>>2]=h;H[a+40>>2]=c;if(!e){break d}oa(e)}F[a+24|0]=1;H[a+64>>2]=b}ca=g+16|0;return}sa();v()}sa();v()}function wb(a,b){var c=0,d=0,e=0,f=0,g=0;c=ca-16|0;ca=c;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+72>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+92>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+104>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+108>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;e=1;break a}e=b<<2;d=pa(e);H[a+96>>2]=d;f=d+e|0;H[a+104>>2]=f;ra(d,0,e);H[a+116>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[a+100>>2]=f;d=pa(e);H[a+108>>2]=d;f=d+e|0;H[a+116>>2]=f;ra(d,0,e);H[a+112>>2]=f;d=pa(e);H[c>>2]=d;f=d+e|0;H[c+8>>2]=f;ra(d,0,e);H[c+4>>2]=f;e=b<<5|1}tb(g,e,c);d=H[c>>2];if(d){H[c+4>>2]=d;oa(d)}H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if(b){b=b<<2;d=pa(b);H[c>>2]=d;f=b+d|0;H[c+8>>2]=f;ra(d,0,b);H[c+4>>2]=f}tb(a+132|0,e,c);b=H[c>>2];if(b){H[c+4>>2]=b;oa(b)}ca=c+16|0;return a}function Sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);F[b+12|0]=c;a:{if(c){break a}while(1){d=H[b+8>>2];if(I[d+12|0]){break a}b:{c=H[d+8>>2];e=H[c>>2];if((e|0)==(d|0)){e=H[c+4>>2];if(!(!e|I[e+12|0])){break b}c:{if(H[d>>2]==(b|0)){b=d;break c}b=H[d+4>>2];a=H[b>>2];H[d+4>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b>>2]=d;H[d+8>>2]=b;c=H[b+8>>2];d=H[c>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;return}if(!(I[e+12|0]|!e)){break b}d:{if(H[d>>2]!=(b|0)){b=d;break d}a=H[b+4>>2];H[d>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b+4>>2]=d;H[d+8>>2]=b;c=H[b+8>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[c+4>>2];b=H[a>>2];H[c+4>>2]=b;if(b){H[b+8>>2]=c}H[a+8>>2]=H[c+8>>2];b=H[c+8>>2];H[((H[b>>2]!=(c|0))<<2)+b>>2]=a;H[a>>2]=c;H[c+8>>2]=a;break a}F[d+12|0]=1;F[c+12|0]=(a|0)==(c|0);F[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Tj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=Q(d)-Q(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}da=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Qj(d)|0;da=0;break a}if(!(c-1&c)){break f}h=(Q(c)+33|0)-Q(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}da=0;a=(b>>>0)/(d>>>0)|0;break a}e=Q(d)-Q(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Qj(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<<c)-1&b)<<32-c|a>>>c}da=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<<f)-1&b)<<32-f|a>>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<<f;a=0}else{b=(1<<f)-1&a>>>32-f|b<<f;a=a<<f}if(h){f=d-1|0;g=c-1|0;m=(g|0)!=-1?f+1|0:f;while(1){j=e<<1|i>>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0<k>>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}da=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}da=b}return a}function rc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;H[c+4>>2]=h;g=H[b+16>>2];f=h>>31;i=(f^h)-f|0;f=e>>31;l=g>>>0>=i+((f^e)-f|0)>>>0;a:{if(l){f=h;break a}b:{c:{if((e|0)>=0){f=1;i=1;if((h|0)>=0){break b}j=1;f=-1;i=-1;if(e){break c}break b}j=-1;f=-1;i=-1;if((h|0)<=0){break b}}f=(h|0)<=0?-1:1;i=j}j=N(g,i);e=(e<<1)-j|0;i=(N(f,i)|0)>=0;g=N(f,g);f=((i?0-e|0:e)+g|0)/2|0;H[c+4>>2]=f;m=c;c=(h<<1)-g|0;e=(j+(i?0-c|0:c)|0)/2|0;H[m>>2]=e;g=H[b+16>>2]}c=H[d+4>>2]+f|0;e=H[d>>2]+e|0;d:{if((g|0)<(e|0)){e=e-H[b+4>>2]|0;break d}if((0-g|0)<=(e|0)){break d}e=H[b+4>>2]+e|0}e:{if((c|0)>(g|0)){c=c-H[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=H[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((e|0)>=0){b=1;f=1;if((c|0)>=0){break g}d=1;b=-1;f=-1;if(e){break h}break g}d=-1;b=-1;f=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;f=d}d=N(f,g);h=(e<<1)-d|0;f=(N(b,f)|0)>=0;b=N(b,g);g=((f?0-h|0:h)+b|0)/2|0;b=(c<<1)-b|0;e=(d+(f?0-b|0:b)|0)/2|0}c=a;H[c>>2]=e+k;H[c+4>>2]=g+k}function Wh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=h;H[e>>2]=c;if(!d){break b}oa(d)}b=H[a+12>>2];c=H[b+28>>2];b=H[b+24>>2];H[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=H[d>>2];c=H[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Pa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}H[a+100>>2]=e+(b<<2)}e=a+8|0;b=H[a+116>>2];d:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){c=1;break d}b=0;while(1){c=ye(e,H[(b<<2)+d>>2]);if(!c){break d}f=H[a+116>>2];d=H[f>>2];b=b+1|0;if(b>>>0<H[f+4>>2]-d>>2>>>0){continue}break}break d}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=ye(e,N(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ca=g+16|0;return c|0}sa();v()}function gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=H[b+88>>2];if(!(!c|H[c>>2]!=1)){e=H[c+8>>2];H[a+4>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);f=a+8|0;d=I[b+24|0];h=H[a+8>>2];g=H[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){ya(f,d-g|0);d=I[b+24|0];e=H[c+8>>2];break a}if(d>>>0>=g>>>0){break a}H[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=H[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;H[g+f>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+(g|4)>>2]=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);H[f+(g|8)>>2]=I[c+8|0]|I[c+9|0]<<8|(I[c+10|0]<<16|I[c+11|0]<<24);H[f+(g|12)>>2]=I[c+12|0]|I[c+13|0]<<8|(I[c+14|0]<<16|I[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;H[f+(d<<2)>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;H[d+20>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);d=1}return d|0}function se(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=H[a+4>>2];b=H[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=H[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ra(f,0,g)+g|0,H[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0<e>>>0?e:c;e=pa(f);ra(e+d|0,0,g);d=va(e,b,d);H[a+8>>2]=d+f;H[a+4>>2]=c+d;H[a>>2]=d;if(!b){break c}oa(b);break c}if(c>>>0>=d>>>0){break c}H[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=H[a+4>>2];f=H[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=H[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ra(e,0,d)+d|0,H[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=pa(e);ra(h+g|0,0,d);d=va(h,f,g);H[a+8>>2]=d+e;H[a+4>>2]=c+d;H[a>>2]=d;if(!f){break d}oa(f);break d}if(c>>>0>=g>>>0){break d}H[a+4>>2]=c+f}if(!c){break c}va(H[a>>2],b,c)}b=H[a+28>>2];c=H[a+24>>2]+1|0;b=c?b:b+1|0;H[a+24>>2]=c;H[a+28>>2]=b;g=1;break a}sa();v()}return g}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;n=b+68|0;i=H[b+68>>2];e=H[b+72>>2]-i>>2;a:{if(e>>>0<d>>>0){qb(n,d-e|0,12372);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=e>>>0){break a}H[b+72>>2]=i+(d<<2)}b=H[c+100>>2];e=H[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=H[k+28>>2];f=H[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=H[c>>2];if(g>>>0>=d>>>0){break b}j=H[H[a+72>>2]+12>>2];h=H[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=H[n>>2];H[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=H[g+4>>2];if((h|0)==-1){break b}l=H[c+4>>2];if(l>>>0>=d>>>0){break b}h=H[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}H[f+(l<<2)>>2]=h;g=H[g+8>>2];if((g|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}j=H[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}H[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+N(b,12)|0;l=N(b,3);f=H[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function Gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=H[d+80>>2];e=ca-48|0;ca=e;a=H[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=H[H[d>>2]>>2]+H[d+48>>2]|0;H[e+16>>2]=a;a=-1<<a;H[e+20>>2]=a^-1;a=-2-a|0;H[e+24>>2]=a;H[e+32>>2]=(a|0)/2;L[e+28>>2]=O(2)/O(a|0);f=H[c>>2];if((f|0)!=H[c+4>>2]){a=0;d=0;while(1){g=H[(d<<2)+f>>2];h=e+36|0;k=H[H[b>>2]>>2];l=H[b+48>>2];f=H[b+40>>2];i=H[b+44>>2];if(!I[b+84|0]){g=H[H[b+68>>2]+(g<<2)>>2]}g=Rj(f,i,g,0);i=g;g=g+l|0;qa(h,g+k|0,f);he(e+16|0,h,e+12|0,e+8|0);f=a<<2;H[f+j>>2]=H[e+12>>2];H[(f|4)+j>>2]=H[e+8>>2];a=a+2|0;d=d+1|0;f=H[c>>2];if(d>>>0<H[c+4>>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=H[H[b>>2]>>2];i=H[b+48>>2];c=H[b+40>>2];f=Rj(c,H[b+44>>2],I[b+84|0]?a:H[H[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;qa(k,f+l|0,c);he(e+16|0,k,e+12|0,e+8|0);c=d<<2;H[c+j>>2]=H[e+12>>2];H[(c|4)+j>>2]=H[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ca=e+48|0;return m>>>0<29|0}function Re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ca-16|0;ca=k;if(H[c+28>>2]==9){d=H[a+4>>2];h=I[c+24|0];e=h<<2;f=pa(e);l=k+8|0;H[l>>2]=1065353216;i=L[a+20>>2];d=-1<<d^-1;if((d|0)>0){L[l>>2]=i/O(d|0)}o=(d|0)>0;a:{if(!o){break a}j=H[c+80>>2];if(!j){break a}if(h){p=H[H[b>>2]>>2]+H[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=H[a+8>>2];i=L[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;L[g+f>>2]=O(i*O(H[q>>2]))+L[g+m>>2];g=g|4;L[g+f>>2]=O(i*O(H[q+4>>2]))+L[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;L[d+f>>2]=O(i*O(H[(b<<2)+p>>2]))+L[d+m>>2];b=b+1|0}qa(H[H[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){qa(H[H[c+64>>2]>>2]+b|0,f,e);b=b+e|0;qa(b+H[H[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}qa(H[H[c+64>>2]>>2]+b|0,f,e)}oa(f)}ca=k+16|0;return o|0}function Xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+108>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){qb(m,e-f|0,12372);d=H[a+108>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+112>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Ph(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+68>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){qb(m,e-f|0,12372);d=H[a+68>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+72>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ca-16|0;ca=d;a:{f=H[a+4>>2];b:{if(f>>>0<b>>>0){e=b-f|0;c=H[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){H[a+4>>2]=b;h=f&31;b=H[a>>2]+(f>>>3&536870908)|0;break c}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0<c>>>0?c:b}else{b=2147483647}pb(d,b);f=H[a+4>>2];H[d+4>>2]=f+e;i=H[a>>2];b=H[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){va(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;H[b>>2]=H[b>>2]&(c^-1)|H[i+g>>2]&c}i=H[a>>2]}H[a>>2]=H[d>>2];H[d>>2]=i;c=H[a+4>>2];H[a+4>>2]=H[d+4>>2];H[d+4>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[d+8>>2];H[d+8>>2]=c;if(!i){break c}oa(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0<e>>>0?c:e;H[b>>2]=H[b>>2]&(-1<<h&-1>>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ra(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;H[a>>2]=H[a>>2]&(-1>>>32-(e&31)^-1);break b}H[a+4>>2]=b}ca=d+16|0;return}sa();v()}function Je(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=H[a+12>>2];i=H[a+8>>2];d=e-i>>2;b=I[b+24|0];a:{if(d>>>0<b>>>0){ya(a+8|0,b-d|0);i=H[a+8>>2];e=H[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;H[a+12>>2]=e}b=0;f=H[c+8>>2];h=H[c+12>>2];j=H[c+20>>2];e=e-i|0;d=H[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0<g>>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}qa(i,d+H[c>>2]|0,e);d=H[c+20>>2];g=e;e=e+H[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;f=H[c+8>>2];h=H[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0<g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+H[c>>2]|0;H[a+20>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[c+20>>2];g=d;f=d;e=H[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;h=H[c+12>>2];if((f|0)>=(h|0)&d>>>0>=K[c+8>>2]|(f|0)>(h|0)){break b}f=I[d+H[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;if(f-1>>>0>29){break b}H[a+4>>2]=f;b=1}return b|0}function qd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=H[a+4>>2];b:{if((f|0)!=H[a>>2]){c=f;break b}g=H[a+8>>2];c=H[a+12>>2];if(g>>>0<c>>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;va(c,f,d);f=H[a+8>>2]}H[a+4>>2]=c;H[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=pa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){H[e>>2]=H[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[e+12>>2]=H[d+12>>2];H[e+16>>2]=H[d+16>>2];H[e+20>>2]=H[d+20>>2];H[e+24>>2]=H[d+24>>2];H[e+28>>2]=H[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=h;H[a+4>>2]=c;H[a>>2]=i;if(!f){break b}oa(f);c=H[a+4>>2]}H[c-4>>2]=H[b>>2];H[a+4>>2]=H[a+4>>2]-4;return}wa();v()}function sb(a,b){var c=0;a:{if(!ta(a,b)){break a}if(!ta(a+16|0,b)){break a}if(!ta(a+32|0,b)){break a}if(!ta(a+48|0,b)){break a}if(!ta(a- -64|0,b)){break a}if(!ta(a+80|0,b)){break a}if(!ta(a+96|0,b)){break a}if(!ta(a+112|0,b)){break a}if(!ta(a+128|0,b)){break a}if(!ta(a+144|0,b)){break a}if(!ta(a+160|0,b)){break a}if(!ta(a+176|0,b)){break a}if(!ta(a+192|0,b)){break a}if(!ta(a+208|0,b)){break a}if(!ta(a+224|0,b)){break a}if(!ta(a+240|0,b)){break a}if(!ta(a+256|0,b)){break a}if(!ta(a+272|0,b)){break a}if(!ta(a+288|0,b)){break a}if(!ta(a+304|0,b)){break a}if(!ta(a+320|0,b)){break a}if(!ta(a+336|0,b)){break a}if(!ta(a+352|0,b)){break a}if(!ta(a+368|0,b)){break a}if(!ta(a+384|0,b)){break a}if(!ta(a+400|0,b)){break a}if(!ta(a+416|0,b)){break a}if(!ta(a+432|0,b)){break a}if(!ta(a+448|0,b)){break a}if(!ta(a+464|0,b)){break a}if(!ta(a+480|0,b)){break a}if(!ta(a+496|0,b)){break a}c=ta(a+512|0,b)}return c}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!ke(a,b)){break a}h=a+36|0;g=ea[H[H[a>>2]+24>>2]](a)|0;e=H[a+40>>2];d=H[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Vb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=H[e>>2];H[e>>2]=0;if(c){ea[H[H[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}H[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break c}f=I[H[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;d=ea[H[H[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+H[a+36>>2]|0;c=H[i>>2];H[i>>2]=d;if(c){ea[H[H[c>>2]+4>>2]](c)}c=H[H[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=ea[H[H[a>>2]+28>>2]](a)|0,m=ea[H[H[a>>2]+20>>2]](a,e)|0,j=H[H[c>>2]+8>>2],ea[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function he(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+L[b>>2];k=+L[b+4>>2];l=+L[b+8>>2];g=P(j)+P(k)+P(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=H[a+16>>2];l=+(h|0);g=T(j*l+.5);b:{if(P(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=T(k*l+.5);c:{if(P(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=H[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=H[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}H[c>>2]=a;H[d>>2]=b}function Ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;k=H[b+16>>2];d=k+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}l=H[b>>2];f=k+l|0;e=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;c=i;f=k+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}d=d+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((e|0)>(j|0)){break a}H[a+16>>2]=j;H[a+12>>2]=e;d=j-e|0;e=(j>>31)-((e>>31)+(e>>>0>j>>>0)|0)|0;if(!e&d>>>0>2147483646|e){break a}d=d+1|0;H[a+20>>2]=d;e=d>>>1|0;H[a+24>>2]=e;H[a+28>>2]=0-e;if(!(d&1)){H[a+24>>2]=e-1}if(J[b+38>>1]<=513){if((c|0)>=(h|0)&f>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[f+l|0];c=i;i=k+9|0;c=i>>>0<9?c+1|0:c;H[b+16>>2]=i;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+88>>2]=g}m=ta(a+112|0,b)}return m|0}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=H[a>>2];c=g+(b>>>3&536870908)|0;H[c>>2]=H[c>>2]|1<<b;f=H[a+64>>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=H[H[f>>2]+(c<<2)>>2]}c=H[a+12>>2];h=(d>>>3&536870908)+c|0;H[h>>2]=H[h>>2]|1<<d;b:{c:{if(!e){d:{e:{if((b>>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=H[H[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;H[e>>2]=H[e>>2]|1<<d;d=-1;b=H[H[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break b}F[a+24|0]=0;a=(b>>>3&536870908)+g|0;H[a>>2]=H[a>>2]|1<<b;a=b+1|0;a=(a>>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=H[H[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<<d;f:{g:{if((b>>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=H[H[f>>2]+(b<<2)>>2]}b=1<<a;a=c+(a>>>3&536870908)|0;c=H[a>>2];break c}a=c+536870908|0;b=H[c+536870908>>2];c=-2147483648}H[a>>2]=b|c}}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=O(0),f=O(0),g=O(0),h=O(0),i=O(0),j=0,k=O(0),l=O(0),m=O(0),n=O(0),o=0;a:{if(H[c+28>>2]!=9|I[c+24|0]!=3){break a}a=H[a+4>>2];if(a-2>>>0>28){break a}o=1;j=H[c+80>>2];if(!j){break a}k=O(O(2)/O((1<<a)-2|0));c=H[H[c>>2]>>2]+H[c+48>>2]|0;a=H[H[b>>2]>>2]+H[b+48>>2]|0;b=0;while(1){g=O(0);l=O(0);m=O(0);e=O(O(O(H[a>>2])*k)+O(-1));f=O(O(O(H[a+4>>2])*k)+O(-1));i=O(O(O(1)-O(P(e)))-O(P(f)));h=O(S(O(-i),O(0)));n=O(-h);f=O(f+(f<O(0)?h:n));e=O(e+(e<O(0)?h:n));h=O(O(f*f)+O(O(i*i)+O(e*e)));if(!(+h<1e-6)){g=O(O(1)/O(W(h)));m=O(f*g);l=O(e*g);g=O(i*g)}a=a+8|0;d=(w(m),y(2));F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;d=(w(l),y(2));F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;d=(w(g),y(2));F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=H[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=H[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;b=K[d+(b<<2)>>2]>K[d+(i<<2)>>2]?i:b;b=K[d+(b<<2)>>2]>K[d+(h<<2)>>2]?h:b;b=K[d+(b<<2)>>2]>K[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=H[a+580>>2];d=32-b|0;if((d|0)>=4){c=H[a+576>>2];if((c|0)==H[a+568>>2]){return 0}d=H[c>>2];e=b+4|0;H[a+580>>2]=e;b=d<<b>>>28|0;if((e|0)!=32){break a}H[a+580>>2]=0;H[a+576>>2]=c+4;return b}c=H[a+576>>2];e=c+4|0;if((e|0)==H[a+568>>2]){return 0}f=H[c>>2];H[a+576>>2]=e;H[a+580>>2]=b-28;a=60-b|0;b=H[c+4>>2]>>>a|f<<b>>>a-d}return b}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11436;b=H[a+388>>2];if(b){H[a+392>>2]=b;oa(b)}d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=ca-32|0;ca=a;e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[a+24>>2]=g|-2147483648;H[a+16>>2]=f;H[a+20>>2]=e;g=e+f|0;break c}F[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}qa(f,c,e)}F[g|0]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d:{c=nb(b,a+16|0);if((c|0)==(b+4|0)){break d}b=H[c+28>>2];e=H[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=H[a+4>>2];b=H[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){ya(a,e-g|0);b=H[a>>2];f=H[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;H[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=H[c+28>>2];qa(e,b,H[c+32>>2]-b|0);break d}Ca();v()}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=H[a>>2];H[d+4>>2]=H[a+4>>2];H[d+8>>2]=H[a+8>>2];if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}}function Be(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11384;d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Ug(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;c=I[d+11|0];e=c<<24>>24;b=H[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?H[d+4>>2]:a;f=c?H[d>>2]:d;while(1){c=I[b+27|0];g=c<<24>>24<0;c=g?H[b+20>>2]:c;i=c>>>0<a>>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?H[b+16>>2]:b+16|0;j=Fa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=Fa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=H[b>>2];if(b){continue}break}a=0}if((e|0)<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function fd(a,b){var c=0,d=0;c=H[b+8>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=c;H[a+20>>2]=H[b+20>>2];c=H[b+16>>2];H[a+12>>2]=H[b+12>>2];H[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=H[b+28>>2];if(c){d=H[a+24>>2];if(H[a+32>>2]<<5>>>0<c>>>0){if(d){oa(d);H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;c=H[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+32>>2]=c;H[a+28>>2]=0;H[a+24>>2]=d;c=H[b+28>>2]}va(d,H[b+24>>2],(c-1>>>3&536870908)+4|0);c=H[b+28>>2]}else{c=0}H[a+28>>2]=c;c=H[b+40>>2];if(c){d=H[a+36>>2];if(H[a+44>>2]<<5>>>0<c>>>0){if(d){oa(d);H[a+44>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;c=H[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+44>>2]=c;H[a+40>>2]=0;H[a+36>>2]=d;c=H[b+40>>2]}va(d,H[b+36>>2],(c-1>>>3&536870908)+4|0);b=H[b+40>>2]}else{b=0}H[a+40>>2]=b}return}sa();v()}sa();v()}function uc(a){var b=0,c=0,d=0;b=H[a+8>>2];d=H[a>>2];a:{if(I[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=H[H[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}H[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;H[a+8>>2]=b;if((b|0)!=-1){break b}}c=H[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=H[H[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}F[a+12|0]=0;H[a+8>>2]=b;return}if((b|0)!=H[a+4>>2]){break a}H[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=H[H[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}H[a+8>>2]=c}}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ca-32|0;ca=f;d=H[a+28>>2];H[f+16>>2]=d;g=H[a+20>>2];H[f+28>>2]=c;H[f+24>>2]=b;b=g-d|0;H[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=Z(H[a+60>>2],b|0,2,f+12|0)|0;if(d){H[3992]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=H[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=H[b+4>>2];j=h>>>0<e>>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;H[d>>2]=h+H[d>>2];b=(j?12:4)+b|0;H[b>>2]=H[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=Z(H[a+60>>2],b|0,i|0,f+12|0)|0;if(e){H[3992]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];a=c;break a}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=H[a>>2]|32;a=0;if((i|0)==2){break a}a=c-H[d+4>>2]|0}ca=f+32|0;return a|0}function Ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+56>>2]-H[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=we(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0<H[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=H[H[a+12>>2]+64>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=we(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=H[c+12>>2];f=h;e=H[c+20>>2];j=H[c+8>>2];g=H[c+16>>2];a:{if((f|0)<=(e|0)&j>>>0<=g>>>0|(e|0)>(f|0)){break a}k=H[c>>2];i=F[k+g|0];d=e;f=g+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;if((i-7&255)>>>0<247){break a}b:{if((i|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=j>>>0|(d|0)>(h|0)){break a}d=F[f+k|0];g=g+2|0;e=g>>>0<2?e+1|0:e;H[c+16>>2]=g;H[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ea[H[H[a>>2]+40>>2]](a,i,d)|0;d=H[a+20>>2];H[a+20>>2]=e;if(!d){break b}ea[H[H[d>>2]+4>>2]](d)}d=H[a+20>>2];if(d){if(!(ea[H[H[a>>2]+28>>2]](a,d)|0)){break a}}if(!(ea[H[H[a>>2]+36>>2]](a,b,c)|0)){break a}c=H[a+4>>2];if(!(!c|I[c+36|0]>1)){if(!(ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0)){break a}}l=1}return l|0}function Oh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=xe(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0<H[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=xe(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function Te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;e=H[b+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}j=H[b>>2];f=e+j|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;k=J[b+38>>1];if(k>>>0<=513){c=i;d=e+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(f&1)){break a}e=Q(f)^31;if(e-1>>>0>28){break a}H[a+8>>2]=e+1;i=-2<<e;e=i^-2;H[a+16>>2]=e;H[a+12>>2]=i^-1;H[a+24>>2]=e>>1;L[a+20>>2]=O(2)/O(e|0);if(k>>>0<=513){if((c|0)>=(h|0)&d>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[d+j|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+72>>2]=g}l=ta(a+96|0,b)}return l|0}function Se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[b+8>>2];g=H[b+12>>2];c=H[b+20>>2];h=c;i=H[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;a:{if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}j=H[b>>2];d=i+j|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=h;e=i+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=e;H[b+20>>2]=c;if(!(d&1)){break a}d=Q(d)^31;if(d-1>>>0>28){break a}H[a+8>>2]=d+1;k=-2<<d;d=k^-2;H[a+16>>2]=d;H[a+12>>2]=k^-1;H[a+24>>2]=d>>1;L[a+20>>2]=O(2)/O(d|0);if(J[b+38>>1]<=513){if((c|0)>=(g|0)&e>>>0>=f>>>0|(c|0)>(g|0)){break a}c=I[e+j|0];f=i+9|0;h=f>>>0<9?h+1|0:h;H[b+16>>2]=f;H[b+20>>2]=h;if(c>>>0>1){break a}H[a+72>>2]=c}l=ta(a+96|0,b)}return l|0}\nfunction va(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return qa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0<b>>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}F[d|0]=I[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;F[d|0]=I[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;H[c+a>>2]=H[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;F[c+a|0]=I[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){H[d>>2]=H[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Vb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=H[a+8>>2];c=H[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{b:{c:{g=H[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=pa(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ra(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=b;if((c|0)!=(g|0)){continue}break}H[a+8>>2]=e;b=H[a+4>>2];H[a+4>>2]=f;c=H[a>>2];H[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=H[b>>2];H[b>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}sa();v()}wa();v()}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b}if(c){oa(c)}}function Md(a,b,c){a:{switch(b-9|0){case 0:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];return;case 6:b=H[c>>2];H[c>>2]=b+4;b=G[b>>1];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 7:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=J[b>>1];H[a+4>>2]=0;return;case 8:b=H[c>>2];H[c>>2]=b+4;b=F[b|0];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 9:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=I[b|0];H[a+4>>2]=0;return;case 16:b=H[c>>2]+7&-8;H[c>>2]=b+8;M[a>>3]=M[b>>3];return;case 17:v();default:return;case 1:case 4:case 14:b=H[c>>2];H[c>>2]=b+4;b=H[b>>2];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];H[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=H[c>>2]+7&-8;H[c>>2]=b+8;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c}function Ed(a,b){var c=0,d=0,e=0;c=ca+-64|0;ca=c;d=H[a>>2];e=H[d-4>>2];d=H[d-8>>2];H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;F[c+55|0]=0;F[c+56|0]=0;F[c+57|0]=0;F[c+58|0]=0;F[c+59|0]=0;F[c+60|0]=0;F[c+61|0]=0;F[c+62|0]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+20>>2]=0;H[c+16>>2]=14924;H[c+12>>2]=a;H[c+8>>2]=b;a=a+d|0;d=0;a:{if(Ya(e,b,0)){H[c+56>>2]=1;ea[H[H[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=H[c+32>>2]==1?a:0;break a}ea[H[H[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(H[c+44>>2]){case 0:d=H[c+48>>2]==1?H[c+36>>2]==1?H[c+40>>2]==1?H[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(H[c+32>>2]!=1){if(H[c+48>>2]|H[c+36>>2]!=1|H[c+40>>2]!=1){break a}}d=H[c+24>>2]}ca=c- -64|0;return d}function ua(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;e=H[a>>2];H[a+4>>2]=e;H[a+12>>2]=e;e=H[b+8>>2];c=H[b+12>>2];h=c;d=H[b+20>>2];f=H[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(e>>>0<g>>>0&(d|0)>=(c|0)|(d|0)>(c|0)){break a}c=f+H[b>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=d;if(!c|c&3){break a}f=h-(d+(e>>>0<g>>>0)|0)|0;if(e-g>>>0<c>>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){ya(a,c>>>2|0);h=H[b+12>>2];g=H[b+16>>2];d=H[b+20>>2];e=H[b+8>>2]}f=c+g|0;d=f>>>0<c>>>0?d+1|0:d;if(e>>>0<f>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}qa(H[a>>2],H[b>>2]+g|0,c);d=H[b+20>>2];e=c+H[b+16>>2]|0;d=e>>>0<c>>>0?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;H[a+16>>2]=0;H[a+12>>2]=H[a>>2];i=1}return i}function de(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=H[H[H[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(b-N(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=H[H[a>>2]+96>>2];a=(b>>>0)/3|0;f=H[(c+N(a,12)|0)+(b-N(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=pa(72);H[c+4>>2]=0;H[c+8>>2]=0;H[c>>2]=1984;H[c+12>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c>>2]=2128;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=H[a+12>>2];e=H[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){Vb(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[g>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=h;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}F[a|0]=b;d=a+c|0;F[d-1|0]=b;if(c>>>0<3){break a}F[a+2|0]=b;F[a+1|0]=b;F[d-3|0]=b;F[d-2|0]=b;if(c>>>0<7){break a}F[a+3|0]=b;F[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=N(b&255,16843009);H[e>>2]=b;d=c-d&-4;c=d+e|0;H[c-4>>2]=b;if(d>>>0<9){break a}H[e+8>>2]=b;H[e+4>>2]=b;H[c-8>>2]=b;H[c-12>>2]=b;if(d>>>0<25){break a}H[e+24>>2]=b;H[e+20>>2]=b;H[e+16>>2]=b;H[e+12>>2]=b;H[c-16>>2]=b;H[c-20>>2]=b;H[c-24>>2]=b;H[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Rj(b,0,1,1);f=da;b=e+g|0;while(1){H[b+24>>2]=d;H[b+28>>2]=f;H[b+16>>2]=d;H[b+20>>2]=f;H[b+8>>2]=d;H[b+12>>2]=f;H[b>>2]=d;H[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];k=e;h=H[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=H[b>>2];c=j+h|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0<e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;if((c|0)<(f|0)){break a}H[a+16>>2]=c;H[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0<f>>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;H[a+20>>2]=d;b=d>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(d&1){break a}H[a+24>>2]=b-1}return l|0}function sd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=H[e>>2];a:{if(!d){break a}f=H[b>>2];b=e;while(1){g=(f|0)>H[d+16>>2];b=g?b:d;d=H[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)<H[b+16>>2]){break a}d=H[b+24>>2];if(!d){break a}f=b+20|0;b=I[c+11|0];e=b<<24>>24<0;g=e?H[c>>2]:c;b=e?H[c+4>>2]:b;while(1){e=I[d+27|0];h=e<<24>>24<0;e=h?H[d+20>>2]:e;j=e>>>0<b>>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?H[d+16>>2]:d+16|0;k=Fa(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Fa(h,g,i);if(e){break d}}if(j){break c}return Tc(f,c)}if((e|0)<0){break c}return Tc(f,c)}d=d+4|0}d=H[d>>2];if(d){continue}break}}return Tc(a,c)}function be(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ca-16|0;ca=d;f=H[a+24>>2];k=H[a+28>>2];a:{if((f|0)!=(k|0)){while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;a=$d(H[f>>2],b,d);g=I[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=I[c+11|0];e=a<<24>>24;j=(h|0)<0?H[d+4>>2]:g;if((j|0)!=(((e|0)<0?H[c+4>>2]:a)|0)){break d}a=(e|0)<0?H[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(I[e|0]!=I[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(Fa(e?H[d>>2]:d,a,j)){break c}}l=H[f>>2];i=1}if((h|0)>=0){break b}}oa(H[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}ca=d+16|0;return l}function Cb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=H[a+8>>2];e=H[a>>2];if(h>>>0<=d-e>>2>>>0){d=H[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0<h>>>0?f:c;if((g|0)!=(b|0)){while(1){H[e>>2]=H[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){H[d>>2]=H[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}H[a+4>>2]=d;return}H[a+4>>2]=e;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Oa(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;H[a+4>>2]=0;a:{b:{if(!b){break b}f=H[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){H[a+4>>2]=b;break c}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0<f>>>0?f:d}else{d=2147483647}pb(e,d);f=H[a>>2];H[a>>2]=H[e>>2];H[e>>2]=f;d=H[a+4>>2];H[a+4>>2]=b;H[e+4>>2]=d;d=H[a+8>>2];H[a+8>>2]=H[e+8>>2];H[e+8>>2]=d;if(!f){break c}oa(f)}d=b>>>5|0;a=H[a>>2];if(I[c|0]){if(b>>>0>=32){ra(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ra(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}ca=e+16|0;return}sa();v()}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca-32|0;ca=e;a:{b:{f=Ma(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=pa(a);H[e+24>>2]=a|-2147483648;H[e+16>>2]=g;H[e+20>>2]=f;a=f+g|0;break d}F[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}qa(g,c,f)}F[a|0]=0;c=Ma(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=pa(f);H[e+8>>2]=f|-2147483648;H[e>>2]=a;H[e+4>>2]=c;g=a+c|0;break f}F[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}qa(a,d,c)}F[g|0]=0;c=H[b+4>>2];a=-1;g:{if(!c){break g}c=be(c,e+16|0,e);a=-1;if(!c){break g}a=Yd(b,H[c+24>>2])}if(F[e+11|0]<0){oa(H[e>>2])}if(F[e+27|0]<0){oa(H[e+16>>2])}ca=e+32|0;break a}Na();v()}Na();v()}return a|0}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=H[b>>2];h=H[b+8>>2];i=H[b+4>>2];j=H[b>>2];d=H[a>>2];b=H[d+4>>2];a=H[d+8>>2];if(b>>>0<a>>>0){H[b+8>>2]=h;H[b+4>>2]=i;H[b>>2]=j;H[d+4>>2]=b+12;return}a:{e=H[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0>=178956970?357913941:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=357913942){break a}f=pa(N(c,12))}else{f=0}a=f+N(g,12)|0;H[a+8>>2]=h;H[a+4>>2]=i;H[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2];if((b|0)!=(e|0)){continue}break}}H[d+8>>2]=f+N(c,12);H[d+4>>2]=g;H[d>>2]=a;if(e){oa(e)}return}sa();v()}wa();v()}function lf(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=pa(20);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;return a|0;case 1:a=pa(24);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;return a|0;case 2:a=pa(48);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1832;H[a>>2]=11048;H[a+32>>2]=0;H[a+36>>2]=0;H[a+28>>2]=-1;H[a+40>>2]=0;H[a+44>>2]=0;return a|0;case 3:a=pa(32);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1032;H[a>>2]=7028;H[a+28>>2]=-1;break;default:break a}}return a|0}function tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=H[b>>2];b=H[b+4>>2];d=H[H[a+8>>2]+40>>2];j=d;m=pa((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=H[c+16>>2];k=d;f=g+d|0;d=0+H[c+20>>2]|0;d=f>>>0<k>>>0?d+1|0:d;h=H[c+12>>2];e=0;if(K[c+8>>2]<f>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=qa(m,H[c>>2]+g|0,j);H[c+16>>2]=f;H[c+20>>2]=d;qa(H[H[H[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+H[c+20>>2]|0;g=H[c+16>>2];f=k+g|0;d=f>>>0<k>>>0?d+1|0:d;h=H[c+12>>2];if((d|0)<=(h|0)&K[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}oa(m);return e|0}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;H[b>>2]=1;f=b+8|0;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(f,d+4|0);c=H[f>>2]}c=c+d|0;d=H[a+4>>2];F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+8>>2];if((c|0)!=H[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=H[b+8>>2];e=H[b+12>>2]-c|0;if(e>>>0<=4294967291){kc(f,e+4|0);c=H[f>>2]}c=c+e|0;e=H[g>>2];F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;d=d+1|0;c=H[a+8>>2];if(d>>>0<H[a+12>>2]-c>>2>>>0){continue}break}}c=H[b+12>>2];b=H[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){kc(f,c+4|0);b=H[f>>2]}b=b+c|0;a=H[a+20>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function Aa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){f=H[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0<g>>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){va(e,b,i)}if(g>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=e+i;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=H[a+4>>2];if((c|0)!=H[a+8>>2]){e=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=e;H[c+8>>2]=H[b+8>>2];H[a+4>>2]=c+12;return}a:{g=H[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0<f>>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=pa(N(f,12))}else{e=0}d=e+N(d,12)|0;h=H[b+4>>2];H[d>>2]=H[b>>2];H[d+4>>2]=h;H[d+8>>2]=H[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=H[c+4>>2];d=d-12|0;H[d>>2]=H[c>>2];H[d+4>>2]=h;H[d+8>>2]=H[c+8>>2];if((c|0)!=(g|0)){continue}break}c=H[a>>2]}H[a+8>>2]=e+N(f,12);H[a+4>>2]=b;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Qi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;g=e>>>0>1073741823?-1:e<<2;l=ra(pa(g),0,g);g=l;i=H[g>>2];g=H[g+4>>2];k=H[b+4>>2];H[f+24>>2]=H[b>>2];H[f+28>>2]=k;H[f+8>>2]=i;H[f+12>>2]=g;i=a+8|0;rc(f+16|0,i,f+8|0,f+24|0);H[c>>2]=H[f+16>>2];H[c+4>>2]=H[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=H[j>>2];j=H[j+4>>2];h=b+h|0;n=H[h+4>>2];H[f+24>>2]=H[h>>2];H[f+28>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;rc(f+16|0,i,f+8|0,f+24|0);H[g>>2]=H[f+16>>2];H[g+4>>2]=H[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(l);ca=f+32|0;return 1}function Hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;h=e>>>0>1073741823?-1:e<<2;h=ra(pa(h),0,h);g=H[b>>2];i=H[b+4>>2];k=H[h+4>>2];H[f+16>>2]=H[h>>2];H[f+20>>2]=k;H[f+8>>2]=g;H[f+12>>2]=i;i=a+8|0;qc(f+24|0,i,f+16|0,f+8|0);H[c>>2]=H[f+24>>2];H[c+4>>2]=H[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=H[j>>2];j=H[j+4>>2];g=c+g|0;l=g+k|0;n=H[l+4>>2];H[f+16>>2]=H[l>>2];H[f+20>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;qc(f+24|0,i,f+16|0,f+8|0);H[g>>2]=H[f+24>>2];H[g+4>>2]=H[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(h);ca=f+32|0;return 1}function Ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[b+80>>2]>65535){break a}a=H[b+100>>2];b=H[b+96>>2];e=(a-b|0)/12|0;f=N(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=N(a,6);h=f+d|0;e=b+N(a,12)|0;G[h>>1]=H[e>>2];G[(f|2)+d>>1]=H[e+4>>2];G[h+4>>1]=H[e+8>>2];f=a|1;e=N(f,6)+d|0;f=b+N(f,12)|0;G[e>>1]=H[f>>2];G[e+2>>1]=H[f+4>>2];G[e+4>>1]=H[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=N(a,6)+d|0;a=b+N(a,12)|0;G[c>>1]=H[a>>2];G[c+2>>1]=H[a+4>>2];G[c+4>>1]=H[a+8>>2]}return g|0}function Gd(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=ca-16|0;ca=h;if((b^-1)+2147483631>>>0>=c>>>0){if(I[a+11|0]>>>7|0){i=H[a>>2]}else{i=a}if(b>>>0<1073741799){H[h+12>>2]=b<<1;H[h>>2]=b+c;c=ca-16|0;ca=c;ca=c+16|0;c=h+12|0;c=H[(K[h>>2]<K[c>>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(h,c);c=H[h>>2];if(f){yb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){yb(c+f|0,e+i|0,g)}if((b|0)!=10){oa(i)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[h+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;b=a;a=f+g|0;H[b+4>>2]=a;F[h+12|0]=0;F[a+c|0]=I[h+12|0];ca=h+16|0;return}Na();v()}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=ca-32|0;ca=a;H[a+24>>2]=0;H[a+28>>2]=0;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+16>>2]=e|-2147483648;H[a+8>>2]=f;H[a+12>>2]=d;e=d+f|0;break c}F[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;c=b+4|0;b=nb(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=H[b+32>>2];b=H[b+28>>2];if((c-b|0)!=8){break d}c=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[a+24>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[a+28>>2]=c}g=M[a+24>>3];if(F[a+19|0]<0){oa(H[a+8>>2])}ca=a+32|0;break a}Na();v()}return+g}function uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((ea[H[H[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Zd(H[H[a+4>>2]+4>>2],ea[H[H[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=H[a+4>>2];b:{if(I[e+36|0]<=1){if(ea[H[H[b>>2]+28>>2]](b,H[H[H[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=H[e+4>>2];if(H[h+12>>2]-H[h+8>>2]>>2<=(c|0)){break c}d=H[H[e+8>>2]+(H[H[e+20>>2]+(c<<2)>>2]<<2)>>2];d=ea[H[H[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(ea[H[H[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((ea[H[H[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function tb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=N(b,12);d=pa(b);H[a+4>>2]=d;H[a>>2]=d;e=b+d|0;H[a+8>>2]=e;f=H[c+4>>2];g=H[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;ra(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;b=pa(h);H[d>>2]=b;H[d+8>>2]=b+i;c=g;while(1){H[b>>2]=H[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}H[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e}return}sa();v()}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;sa();v()}function Vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0<f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;if(J[b+38>>1]<=513){f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<<b;c=b^-2;H[a+16>>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function Lc(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=N(b,3);Kc(a,b,13648);Kc(a+12|0,b,13652);d=H[a+24>>2];c:{if(H[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=H[a+28>>2];e=c<<2;c=pa(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+32>>2]=e;H[a+28>>2]=g;H[a+24>>2]=c;if(!d){break c}oa(d)}H[a+80>>2]=0;H[a+84>>2]=0;b=H[a+76>>2];H[a+76>>2]=0;if(b){oa(b)}H[a+68>>2]=0;H[a+72>>2]=0;b=a- -64|0;a=H[b>>2];H[b>>2]=0;if(!a){break b}oa(a)}return f}sa();v()}function Fe(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=H[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=pa(c>>>0>268435455?-1:b|4);H[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){H[b>>2]=0;H[b+4>>2]=0;F[b+5|0]=0;F[b+6|0]=0;F[b+7|0]=0;F[b+8|0]=0;F[b+9|0]=0;F[b+10|0]=0;F[b+11|0]=0;F[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=H[a+136>>2];H[a+136>>2]=d;if(e){c=e-4|0;d=H[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}oa(c)}b=0;if(H[a+140>>2]<=0){break a}while(1){f=ta(H[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)<H[a+140>>2]){continue}break}}return f}function mb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(H[a+64>>2]){break a}c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(!d){break a}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d)}d=H[a+64>>2];c=H[a+28>>2]-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}c=N(c,I[a+24|0]);f=c>>31;g=se(d,0,Rj(c,f,b,0),da);if(g){d=H[a+64>>2];H[a>>2]=d;e=H[d+20>>2];H[a+8>>2]=H[d+16>>2];H[a+12>>2]=e;e=H[d+24>>2];d=H[d+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=c;H[a+44>>2]=f;H[a+16>>2]=e;H[a+20>>2]=d;H[a+80>>2]=b}return g}function jc(a,b){var c=0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;c=H[b+60>>2];H[a+56>>2]=H[b+56>>2];H[a+60>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+36>>2];H[a+32>>2]=H[b+32>>2];H[a+36>>2]=c;c=H[b+28>>2];H[a+24>>2]=H[b+24>>2];H[a+28>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;H[a+88>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=H[b+100>>2];b=H[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=N(a,12);i=e+d|0;f=b+e|0;H[i>>2]=H[f>>2];H[(e|4)+d>>2]=H[f+4>>2];H[i+8>>2]=H[f+8>>2];f=N(a|1,12);e=f+d|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=N(a,12);a=e+d|0;b=b+d|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}return(c|0)==(h|0)|0}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0<f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c;if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<<b;c=b^-2;H[a+16>>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function nb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=H[a+4>>2];a:{b:{if(!a){break b}d=I[b+11|0];c=d<<24>>24<0;g=c?H[b>>2]:b;d=c?H[b+4>>2]:d;b=f;while(1){e=I[a+27|0];c=e<<24>>24<0;e=c?H[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Fa(c?H[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=H[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=I[b+27|0];a=c<<24>>24<0;d:{c=a?H[b+20>>2]:c;e=c>>>0<d>>>0?c:d;if(e){a=Fa(g,a?H[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(Ya(a,H[b>>2],e)){if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+32>>2]=d;b:{if(H[b+44>>2]==4){break b}G[b+52>>1]=0;a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,c,1,e);if(I[b+53|0]){H[b+44>>2]=3;if(!I[b+52|0]){break b}break a}H[b+44>>2]=4}H[b+20>>2]=c;H[b+40>>2]=H[b+40>>2]+1;if(H[b+36>>2]!=1|H[b+24>>2]!=2){break a}F[b+54|0]=1;return}a=H[a+8>>2];ea[H[H[a>>2]+24>>2]](a,b,c,d,e)}}function Db(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(J[a+38>>1]<=513){f=H[a+12>>2];d=H[a+20>>2];b=H[a+16>>2];g=b+8|0;d=g>>>0<8?d+1|0:d;e=0;if(K[a+8>>2]<g>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}b=b+H[a>>2]|0;d=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[c>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[c+4>>2]=d;b=H[a+20>>2];c=H[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;H[a+16>>2]=c;H[a+20>>2]=b;break b}e=0;if(!re(1,c,a)){break a}}F[a+36|0]=1;H[a+32>>2]=0;b=H[a+16>>2];c=b+H[a>>2]|0;H[a+24>>2]=c;H[a+28>>2]=(H[a+8>>2]-b|0)+c;e=1}return e}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=pa(64);c=pa(12);H[c+8>>2]=H[H[a+4>>2]+80>>2];H[c>>2]=13216;H[c+4>>2]=0;f=od(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=H[a+12>>2];e=H[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Vb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[h>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=f;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Qd(a,b){var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=b;c=ca-208|0;ca=c;H[c+204>>2]=b;b=c+160|0;ra(b,0,40);H[c+200>>2]=H[c+204>>2];a:{if((Od(0,a,c+200|0,c+80|0,b)|0)<0){break a}f=H[3941]>=0;b=H[3922];if(H[3940]<=0){H[3922]=b&-33}b:{c:{d:{if(!H[3934]){H[3934]=80;H[3929]=0;H[3926]=0;H[3927]=0;e=H[3933];H[3933]=c;break d}if(H[3926]){break c}}if(Sd(15688)){break b}}Od(15688,a,c+200|0,c+80|0,c+160|0)}if(e){ea[H[3931]](15688,0,0)|0;H[3934]=0;H[3933]=e;H[3929]=0;H[3926]=0;H[3927]=0}H[3922]=H[3922]|b&32;if(!f){break a}}ca=c+208|0;ca=d+16|0}function pf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=H[a+60>>2];a:{if(!c){break a}H[c+4>>2]=a+48;if(!(ea[H[H[c>>2]+12>>2]](c)|0)){break a}b:{c=ea[H[H[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2];g=ea[H[H[a>>2]+20>>2]](a,d)|0;e=H[a+60>>2];if(!(ea[H[H[e>>2]+8>>2]](e,H[H[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}d=ea[H[H[a>>2]+44>>2]](a)|0}return d|0}function id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=H[a+216>>2]+N(e,144)|0;return(I[a+100|0]?a+4|0:0)|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function xb(a){var b=0,c=0,d=0,e=0;c=H[a+132>>2];if(c){d=c;b=H[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+132>>2]}H[a+136>>2]=c;oa(d)}c=H[a+120>>2];if(c){d=c;b=H[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+120>>2]}H[a+124>>2]=c;oa(d)}b=H[a+108>>2];if(b){H[a+112>>2]=b;oa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}Za(a+76|0);Za(a+56|0);Za(a+36|0);Za(a+16|0)}function rd(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2128;d=H[a+60>>2];if(d){b=d;c=H[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ga(b)}if((c|0)!=(d|0)){continue}break}b=H[a+60>>2]}H[a+64>>2]=d;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){b=d;c=H[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ea[H[H[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function ue(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+8>>2];d=H[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ra(d,0,b)+b|0}H[a+4>>2]=d;return}a:{f=H[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ra(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(f|0)){continue}break}}H[a+8>>2]=(e<<2)+i;H[a+4>>2]=b;H[a>>2]=c;if(f){oa(f)}return}sa();v()}wa();v()}function rb(a){var b=0,c=0,d=0,e=0,f=0;d=H[a+8>>2];a:{if(I[d+84|0]){break a}b=H[a+16>>2];if(!b|!I[b+84|0]){break a}c=H[d+72>>2];e=H[d+68>>2];F[b+84|0]=0;c=c-e>>2;f=H[b+68>>2];e=H[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){qb(b+68|0,c-e|0,2316);d=H[a+8>>2];break b}if(c>>>0>=e>>>0){break b}H[b+72>>2]=f+(c<<2)}if(I[d+84|0]){break a}c=H[d+68>>2];if((c|0)==H[d+72>>2]){break a}e=H[H[a+16>>2]+68>>2];b=0;while(1){f=b<<2;H[f+e>>2]=H[c+f>>2];b=b+1|0;c=H[d+68>>2];if(b>>>0<H[d+72>>2]-c>>2>>>0){continue}break}}return H[a+16>>2]}function Lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Pe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Oe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=ca-32|0;ca=a;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+24>>2]=e|-2147483648;H[a+16>>2]=f;H[a+20>>2]=d;e=d+f|0;break c}F[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;F[a+4|0]=0;H[a>>2]=1701667182;F[a+11|0]=4;d=H[b+4>>2];c=-1;d:{if(!d){break d}d=be(d,a,a+16|0);c=-1;if(!d){break d}c=Yd(b,H[d+24>>2])}b=c;if(F[a+11|0]<0){oa(H[a>>2])}if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}return b|0}function hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(H[a+216>>2]+N(e,144)|0)+104|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function ab(a){var b=0,c=0,d=0,e=0;c=H[a+640>>2];if(c){d=c;b=H[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+640>>2]}H[a+644>>2]=c;oa(d)}c=H[a+628>>2];if(c){d=c;b=H[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+628>>2]}H[a+632>>2]=c;oa(d)}b=H[a+616>>2];if(b){H[a+620>>2]=b;oa(b)}b=H[a+604>>2];if(b){H[a+608>>2]=b;oa(b)}Za(a+584|0);Za(a+564|0);Za(a+544|0)}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=0;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;a=nb(b,d);d:{if((a|0)==(b+4|0)){break d}b=H[a+32>>2];a=H[a+28>>2];if((b-a|0)!=4){break d}H[d+12>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24)}a=H[d+12>>2];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function vb(a){var b=0,c=0,d=0,e=0;c=H[a+128>>2];if(c){d=c;b=H[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+128>>2]}H[a+132>>2]=c;oa(d)}c=H[a+116>>2];if(c){d=c;b=H[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+116>>2]}H[a+120>>2]=c;oa(d)}b=H[a+104>>2];if(b){H[a+108>>2]=b;oa(b)}b=H[a+92>>2];if(b){H[a+96>>2]=b;oa(b)}Za(a+72|0);Za(a+52|0);Za(a+32|0)}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];e=H[a>>2];d=c-e|0;b:{if(d>>>0<b>>>0){g=b-d|0;f=H[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ra(c,0,g)+g|0,H[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<f>>>0?f:b;f=pa(c);ra(f+d|0,0,g);d=va(f,e,d);H[a+8>>2]=d+c;H[a+4>>2]=b+d;H[a>>2]=d;if(!e){break b}oa(e);break b}if(b>>>0>=d>>>0){break b}H[a+4>>2]=b+e}b=H[a+28>>2];c=b;d=b+1|0;b=H[a+24>>2]+1|0;e=b?c:d;H[a+24>>2]=b;H[a+28>>2]=e;return}sa();v()}function Ka(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+4>>2];if((e|0)!=H[a+8>>2]){H[e>>2]=H[b>>2];H[a+4>>2]=e+4;return}a:{g=H[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=pa(c<<2)}else{f=0}d=h+f|0;H[d>>2]=H[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(g|0)){continue}break}}H[a+8>>2]=f+(c<<2);H[a+4>>2]=b;H[a>>2]=d;if(g){oa(g)}return}sa();v()}wa();v()}function Ia(a){H[a>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;F[a+28|0]=1;H[a+20>>2]=0;H[a+24>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+72>>2]=a+4;H[a+104>>2]=0;H[a+108>>2]=0;F[a+100|0]=1;H[a+112>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0}function Ld(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!H[H[4292]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){F[a+1|0]=b&63|128;F[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){F[a+2|0]=b&63|128;F[a|0]=b>>>12|224;F[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){F[a+3|0]=b&63|128;F[a|0]=b>>>18|240;F[a+2|0]=b>>>6&63|128;F[a+1|0]=b>>>12&63|128;a=4;break a}}H[3992]=25;a=-1}else{a=1}break a}F[a|0]=b;a=1}return a}function Hb(a,b){var c=0,d=0,e=0,f=0;d=H[a+12>>2];c=H[a+16>>2]-d>>2;a:{if(c>>>0<b>>>0){ya(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}H[a+16>>2]=d+(b<<2)}b:{c=H[a>>2];c:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=H[a+4>>2];e=b<<2;b=pa(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;H[b>>2]=H[d>>2];if((c|0)!=(d|0)){continue}break}}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b;if(!c){break c}oa(c)}return}sa();v()}function _b(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13724;b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}b=H[a+44>>2];if(b){H[a+48>>2]=b;oa(b)}b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}b=H[a+8>>2];if(b){d=b;c=H[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Ga(d)}if((b|0)!=(c|0)){continue}break}d=H[a+8>>2]}H[a+12>>2]=b;oa(d)}b=H[a+4>>2];H[a+4>>2]=0;if(b){Uc(b)}return a|0}function yb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ca-16|0;ca=f;d=ca-32|0;ca=d;e=ca-16|0;ca=e;H[e+12>>2]=b;H[e+8>>2]=b+c;H[d+24>>2]=H[e+12>>2];H[d+28>>2]=H[e+8>>2];ca=e+16|0;c=ca-16|0;ca=c;h=H[d+28>>2];e=H[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){va(a,e,g)}H[c+12>>2]=e+g;H[c+8>>2]=a+g;H[d+16>>2]=H[c+12>>2];H[d+20>>2]=H[c+8>>2];ca=c+16|0;H[d+12>>2]=(H[d+16>>2]-b|0)+b;H[d+8>>2]=(H[d+20>>2]-a|0)+a;H[f+8>>2]=H[d+12>>2];H[f+12>>2]=H[d+8>>2];ca=d+32|0;ca=f+16|0}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=pa(d<<2)}b=b<<2;e=ra((h<<2)+i|0,0,b);f=d<<2;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Tc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=nb(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=F[a+39|0]<0?H[b>>2]:b;while(1){a=b;b=a+1|0;c=F[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=F[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=F[b|0];a=b}if(c-48>>>0<10){while(1){d=(N(d,10)-F[a|0]|0)+48|0;b=F[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function bb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=H[a>>2];c=H[a+4>>2];e=H[a+8>>2];if(c>>>0<e>>>0){H[c>>2]=H[b>>2];H[a+4>>2]=c+4;return}a:{d=c;c=H[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0<d>>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=pa(f<<2)}else{e=0}d=h+e|0;H[d>>2]=H[b>>2];b=va(e,c,g);H[a+8>>2]=b+(f<<2);H[a+4>>2]=d+4;H[a>>2]=b;if(c){oa(c)}return}sa();v()}wa();v()}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=pa(d<<3)}b=b<<3;e=ra((h<<3)+i|0,0,b);f=d<<3;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function kf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function jf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}oa(a)}function xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;e=H[a+4>>2];a:{if((e|0)==-1){break a}c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],H[a+8>>2],H[a+12>>2]);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],a+20|0,a+24|0);c=H[b+20>>2];f=H[b+16>>2];F[d+15|0]=H[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],d+15|0,d+16|0)}ca=d+16|0;return(e|0)!=-1|0}function Eh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=H[a+8>>2];b:{if((b|0)<0){break b}c=H[a+4>>2];e=H[c>>2];d=H[c+4>>2]-e>>2;c:{if(d>>>0<b>>>0){ue(c,b-d|0);f=H[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}H[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=H[a+4>>2];c=H[a>>2];e=H[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}H[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Ca();v()}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0<e>>>0?e:d;if(d){if((d|0)<0){break a}h=pa(d<<1)}b=b<<1;e=ra((f<<1)+h|0,0,b);f=d<<1;d=va(h,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Pe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Oe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function za(a,b,c){var d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;a:{b:{if(c>>>0<11){d=a;F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Zb(g,d+1|0);d=H[e+8>>2];H[a>>2]=d;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;H[a+4>>2]=c}yb(d,b,c+1|0);ca=e+16|0;return}Na();v()}function Qg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[d+8>>2]=g|-2147483648;H[d>>2]=f;H[d+4>>2]=e;g=e+f|0;break c}F[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}qa(f,c,e)}F[g|0]=0;f=a+16|0;c=$d(b,d,f);b=H[a+16>>2];a=F[a+27|0];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;a=c?(a|0)<0?b:f:0;break a}Na();v()}return a|0}function Mc(a,b){var c=0,d=0,e=0;c=H[a+4>>2];d=c+b|0;H[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){H[H[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=H[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;H[a>>2]=H[a>>2]&(-1<<c&-1>>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ra(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}}function Fc(a,b,c){var d=0,e=0,f=0;d=H[c+16>>2];a:{if(!d){if(Sd(c)){break a}d=H[c+16>>2]}f=H[c+20>>2];if(d-f>>>0<b>>>0){return ea[H[c+36>>2]](c,a,b)|0}b:{if(H[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(I[e+a|0]!=10){continue}break}e=ea[H[c+36>>2]](c,a,d)|0;if(e>>>0<d>>>0){break a}a=a+d|0;b=b-d|0;f=H[c+20>>2]}qa(f,a,b);H[c+20>>2]=H[c+20>>2]+b;e=b+d|0}return e}function ad(a){var b=0,c=0,d=0,e=0;if(I[a+76|0]){F[a+76|0]=0;e=H[a+60>>2];c=H[a+72>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+56>>2]|0;b=(b>>>3|0)+e|0;H[a+56>>2]=c;H[a+60>>2]=c>>>0<d>>>0?b+1|0:b}if(J[a+38>>1]<=513){F[a+132|0]=0;e=H[a+116>>2];b=0;c=H[a+128>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+112>>2]|0;b=(b>>>3|0)+e|0;H[a+112>>2]=c;H[a+116>>2]=c>>>0<d>>>0?b+1|0:b}}function re(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!re(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function gb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!gb(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function Nh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca+-64|0;ca=e;d=ea[H[H[a>>2]+44>>2]](a,b)|0;a=ea[H[H[a>>2]+40>>2]](a,b)|0;f=Eb(e);g=H[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=H[(a<<2)+13584>>2]}else{a=-1}d=N(a,d);lc(f,g,h,i,0,d,d>>31);a=jc(pa(96),f);mb(a,c);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2];H[a+60>>2]=H[b+60>>2];ca=e- -64|0;return a|0}function If(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(!Ya(a,H[b>>2],e)){break a}if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+20>>2]=c;H[b+32>>2]=d;H[b+40>>2]=H[b+40>>2]+1;if(!(H[b+36>>2]!=1|H[b+24>>2]!=2)){F[b+54|0]=1}H[b+44>>2]=4}}function Bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+32>>2];b=e;h=H[b+8>>2];g=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=c+4|0;b=f>>>0<4?b+1|0:b;d=0;a:{if(f>>>0>h>>>0&(b|0)>=(g|0)|(b|0)>(g|0)){break a}c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=f;H[e+20>>2]=b;d=0;if((c|0)<0){break a}H[H[a+4>>2]+80>>2]=c;d=1}return d|0}function qi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function Ee(a,b){var c=0,d=0,e=0,f=0;H[a+144>>2]=b;c=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];c=H[c>>2]+H[c+16>>2]|0;d=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;e=a,f=J[H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],G[e+38>>1]=f;H[a>>2]=c;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=d;H[a+12>>2]=0;e=a,f=ea[H[H[b>>2]+36>>2]](b)|0,H[e+148>>2]=f}function Cd(a,b,c,d){F[a+53|0]=1;a:{if(H[a+4>>2]!=(c|0)){break a}F[a+52|0]=1;c=H[a+16>>2];b:{if(!c){H[a+36>>2]=1;H[a+24>>2]=d;H[a+16>>2]=b;if((d|0)!=1){break a}if(H[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=H[a+24>>2];if((c|0)==2){H[a+24>>2]=d;c=d}if(H[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}H[a+36>>2]=H[a+36>>2]+1}F[a+54|0]=1}}function pi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+32>>2];b=e;g=H[b+8>>2];d=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=d;d=c+4|0;b=d>>>0<4?b+1|0:b;if((f|0)>=(b|0)&d>>>0<=g>>>0|(b|0)<(f|0)){c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=d;H[e+20>>2]=b;H[H[a+4>>2]+80>>2]=c}return(b|0)<=(f|0)&d>>>0<=g>>>0|(b|0)<(f|0)}function Mf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ca+-64|0;ca=e;d=1;a:{if(Ya(a,b,0)){break a}d=0;if(!b){break a}b=Ed(b,14972);d=0;if(!b){break a}d=e+8|0;ra(d|4,0,52);H[e+56>>2]=1;H[e+20>>2]=-1;H[e+16>>2]=a;H[e+8>>2]=b;ea[H[H[b>>2]+28>>2]](b,d,H[c>>2],1);a=H[e+32>>2];if((a|0)==1){H[c>>2]=H[e+24>>2]}d=(a|0)==1}ca=e- -64|0;return d|0}function Ie(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;b=H[b+64>>2];e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+56>>2];b=H[b+52>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function pc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!b){H[c>>2]=0;return}h=0-I[a+12|0]&255;e=H[a+4>>2];d=H[a+8>>2];i=H[a>>2];while(1){j=f<<1;if(!((e|0)<=0|d>>>0>4095)){e=e-1|0;H[a+4>>2]=e;d=I[e+i|0]|d<<8}g=d&255;f=g>>>0<h>>>0;k=g;g=N(d>>>8|0,h);d=f?k+g|0:d-(h+g|0)|0;H[a+8>>2]=d;f=f|j;b=b-1|0;if(b){continue}break}H[c>>2]=f}function yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=ca-16|0;ca=a;f=F[b+24|0];e=H[3411];H[a+8>>2]=H[3410];H[a+12>>2]=e;e=H[3409];H[a>>2]=H[3408];H[a+4>>2]=e;e=Va(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=pa(c);g=qa(b,a,c)+c|0}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=b}ca=a+16|0;return e|0}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function _c(a,b){var c=0,d=0;a:{c=H[a+4>>2];d=H[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}pb(a,c);c=H[a+4>>2]}H[a+4>>2]=c+1;d=1<<c;a=H[a>>2]+(c>>>3&536870908)|0;if(I[b|0]){H[a>>2]=d|H[a>>2];return}H[a>>2]=H[a>>2]&(d^-1);return}sa();v()}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+28>>2];b=H[b+24>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function $b(a){var b=0;H[a>>2]=0;H[a+4>>2]=0;H[a+56>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+60>>2]=a;return a}function td(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!td(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}\nfunction hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Xa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Xa(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Qe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qe(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Pc(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Pc(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Fb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Ea(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ea(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Bb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Bb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(H[a>>2]!=H[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=I[a|0];e=I[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Yc(a){var b=0,c=0,d=0,e=0;d=H[a>>2];if(d){e=d;c=H[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=H[a>>2]}H[a+4>>2]=d;oa(e)}}function Dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+4>>2];a:{if(!d){break a}b=H[H[H[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=H[d+24>>2];c=H[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=H[a>>2];if((b|0)==H[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function Zh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Uc(a){var b=0,c=0,d=0;if(a){d=H[a+24>>2];if(d){b=d;c=H[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ra(b+12|0,H[b+16>>2]);Qa(b,H[b+4>>2]);oa(b)}if((c|0)!=(d|0)){continue}break}b=H[a+24>>2]}H[a+28>>2]=d;oa(b)}Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Yh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function vi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=H[c+8>>2];e=H[c+16>>2];g=H[c+12>>2];f=g;d=H[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=I[H[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;H[c+16>>2]=i;H[c+20>>2]=f;H[a+4>>2]=b}return e>>>0<h>>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Wc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function Ya(a,b,c){var d=0;if(!c){return H[a+4>>2]==H[b+4>>2]}if((a|0)==(b|0)){return 1}d=H[a+4>>2];a=I[d|0];c=H[b+4>>2];b=I[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=I[c+1|0];a=I[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function _h(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+12>>2];b=H[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=H[b+(a<<2)>>2];if(H[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ae(a,b){var c=0,d=0,e=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{c=H[b+4>>2];d=H[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=pa(c);c=ra(e,0,c);d=d+c|0;H[a+8>>2]=d;H[a+4>>2]=d;H[a>>2]=c;c=H[b>>2];a=H[b+4>>2]}qa(e,c,a-c|0);return}sa();v()}function ed(a){var b=0,c=0,d=0,e=0;c=H[a+4>>2];d=H[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=d}function Vh(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function cb(a){var b=0;if(a){b=H[a+76>>2];if(b){H[a+80>>2]=b;oa(b)}b=H[a- -64>>2];if(b){H[a+68>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Jd(a,b,c){var d=0,e=0,f=0,g=0;f=ca-16|0;ca=f;d=ca-16|0;ca=d;b=b-a>>2;while(1){if(b){H[d+12>>2]=a;e=b>>>1|0;H[d+12>>2]=H[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=K[H[d+12>>2]>>2]<K[c>>2];b=e?g:b;a=e?H[d+12>>2]+4|0:a;continue}break}ca=d+16|0;ca=f+16|0;return a}function oc(a){var b=0;b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;oa(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;oa(b)}b=H[a+28>>2];if(b){H[a+32>>2]=b;oa(b)}b=H[a+12>>2];if(b){oa(b)}a=H[a>>2];if(a){oa(a)}}function Xc(a,b){var c=0,d=0;d=pa(40);H[d>>2]=-1;c=d+8|0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;ea[H[H[a>>2]+16>>2]](a,d);a=H[b+88>>2];H[b+88>>2]=d;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}return 1}function Ma(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!I[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=H[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(I[b|0]){continue}break}}return b-a|0}function Ba(a){var b=0,c=0,d=0,e=0,f=0;d=I[a+12|0];c=H[a+8>>2];a:{if(c>>>0>4095){break a}b=H[a+4>>2];if((b|0)<=0){break a}b=b-1|0;H[a+4>>2]=b;c=I[b+H[a>>2]|0]|c<<8}d=0-d&255;b=N(d,c>>>8|0);e=c&255;f=e>>>0<d>>>0;H[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function od(a,b){H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=1984;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a>>2]=2328;H[a+60>>2]=b;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;return a}function mc(a,b){var c=0,d=0,e=0;c=Ma(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=pa(d);H[a+8>>2]=d|-2147483648;H[a>>2]=e;H[a+4>>2]=c;d=c+e|0;break b}F[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}va(e,b,c)}F[d|0]=0;return a}Na();v()}function Ng(a){a=a|0;var b=0,c=0,d=0;if(a){if(F[a+27|0]<0){oa(H[a+16>>2])}b=H[a>>2];if(b){c=b;d=H[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(F[d-1|0]<0){oa(H[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=H[a>>2]}H[a+4>>2]=b;oa(c)}oa(a)}}function Jb(a,b){var c=0,d=0,e=0;a:{c=H[a>>2];b:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=H[a+4>>2]-c|0;e=b<<2;b=va(pa(e),c,d);H[a+8>>2]=b+e;H[a+4>>2]=b+d;H[a>>2]=b;if(!c){break b}oa(c)}return}sa();v()}function Ga(a){a=a|0;var b=0,c=0;if(a){b=H[a+88>>2];H[a+88>>2]=0;if(b){c=H[b+8>>2];if(c){H[b+12>>2]=c;oa(c)}oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+64>>2];H[a+64>>2]=0;if(b){c=H[b>>2];if(c){H[b+4>>2]=c;oa(c)}oa(b)}oa(a)}}function Nd(a){var b=0,c=0,d=0;if(F[H[a>>2]]-48>>>0>=10){return 0}while(1){d=H[a>>2];c=-1;if(b>>>0<=214748364){c=F[d|0]-48|0;b=N(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}H[a>>2]=d+1;b=c;if(F[d+1|0]-48>>>0<10){continue}break}return b}function Cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=H[b+96>>2];a=pa(12);b=b+N(c,12)|0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=a;a=a+12|0;H[d+8>>2]=a;H[d+4>>2]=a;return 1}function Ai(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Sj(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0<e>>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Tj(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;da=(g^da)-((a>>>0<f>>>0)+g|0)|0;return b}function yi(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function Yb(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;d=H[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=H[a>>2];H[a+4>>2]=c;yb(d,b,c);F[e+15|0]=0;F[c+d|0]=I[e+15|0];break a}f=a;a=H[a+4>>2];Gd(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}ca=e+16|0}function Bf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ca-16|0;ca=c;a=H[a+4>>2];a:{if((a|0)==-1){break a}F[c+15|0]=a;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Wb(b,H[b+4>>2],c+15|0,c+16|0)}ca=c+16|0;return(a|0)!=-1|0}function Xb(a,b,c){var d=0,e=0;d=ca-16|0;ca=d;a:{if(c>>>0<=10){F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;yb(a,b,c);F[d+15|0]=0;F[a+c|0]=I[d+15|0];break a}e=a;a=I[a+11|0]&127;Gd(e,10,c-10|0,a,a,c,b)}ca=d+16|0}function Rj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=N(e,f);g=c&65535;h=a&65535;i=N(g,h);f=(i>>>16|0)+N(f,g)|0;e=(f&65535)+N(e,h)|0;da=(N(b,c)+j|0)+N(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dd(a,b,c){var d=0;d=H[a+16>>2];if(!d){H[a+36>>2]=1;H[a+24>>2]=c;H[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(H[a+24>>2]!=2){break a}H[a+24>>2]=c;return}F[a+54|0]=1;H[a+24>>2]=2;H[a+36>>2]=H[a+36>>2]+1}}function th(){var a=0;a=Eb(pa(96));H[a+64>>2]=0;H[a+68>>2]=0;H[a+88>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a|0}function zi(a,b){a=a|0;b=b|0;var c=0,d=0;H[b>>2]=2;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(b+8|0,d+4|0);c=H[b+8>>2]}b=c+d|0;a=H[a+4>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function rj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function ib(a,b,c,d,e){var f=0;f=ca-256|0;ca=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;ra(f,b&255,c?d:256);if(!c){while(1){Ab(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Ab(a,f,d)}ca=f+256|0}function Ij(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ch(a){a=a|0;var b=0,c=0,d=0;b=H[a+8>>2];d=H[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=H[b>>2];c=ea[H[H[c>>2]+16>>2]](c,H[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Yd(a,b){var c=0,d=0;c=H[a+8>>2];a=H[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(H[H[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function qj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Hj(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function $d(a,b,c){var d=0,e=0;d=a+4|0;a=nb(a,b);a:{if((d|0)==(a|0)){break a}b=H[a+32>>2];d=H[a+28>>2];if((b|0)==(d|0)){break a}Cc(c,b-d|0);c=Dc(c);b=H[a+28>>2];qa(c,b,H[a+32>>2]-b|0);e=1}return e}function Qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ca-16|0;ca=e;a=_(H[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){H[3992]=a;a=-1}else{a=0}ca=e+16|0;da=a?-1:H[e+12>>2];return(a?-1:H[e+8>>2])|0}function Sd(a){var b=0;b=H[a+72>>2];H[a+72>>2]=b-1|b;b=H[a>>2];if(b&8){H[a>>2]=b|32;return-1}H[a+4>>2]=0;H[a+8>>2]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];return 0}function Eb(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+28>>2]=9;F[a+24|0]=1;H[a+56>>2]=-1;H[a+60>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;return a}function hf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=rb(H[H[a+36>>2]+(b<<2)>>2])}return c|0}function Mg(){var a=0,b=0;a=pa(40);H[a+4>>2]=0;H[a+8>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;H[a+32>>2]=0;H[a+36>>2]=0;return a|0}function Vf(a,b){a=a|0;b=b|0;var c=0,d=0;Wd(a,b);a:{if((b|0)<0){break a}d=H[a+88>>2];c=H[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;va(c,b,d-b|0);H[a+88>>2]=d-4}}function Rh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Lh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function zb(a){var b=0,c=0;b=H[3958];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>fa()<<16>>>0){if(!($(a|0)|0)){break a}}H[3958]=a;return b}H[3992]=48;return-1}function bj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;a=H[a+8>>2];if(I[a+24|0]==3){d=H[a+28>>2]==9}return d|0}function wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[a+8>>2];a:{if(!I[d+24|0]){break a}if(!mb(d,H[b+4>>2]-H[b>>2]>>2)){break a}e=ea[H[H[a>>2]+32>>2]](a,b,c)|0}return e|0}function Qh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function Kh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function nj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ra(a,b){if(b){Ra(a,H[b>>2]);Ra(a,H[b+4>>2]);a=H[b+28>>2];H[b+28>>2]=0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Gi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;d=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=d;return H[H[H[H[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ej(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Vc(a){H[a+40>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=13280;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;G[a+36>>1]=0;return a}function Hd(a,b){var c=0,d=0,e=0,f=0;H[a>>2]=15260;H[a>>2]=15372;c=Ma(b);d=pa(c+13|0);H[d+8>>2]=0;H[d+4>>2]=c;H[d>>2]=c;e=a,f=qa(d+12|0,b,c+1|0),H[e+4>>2]=f;return a}function jg(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}c=ea[H[H[a>>2]+44>>2]](a)|0}return c|0}function mj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Dj(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Xe(a){a=a|0;var b=0;a:{if(!H[a- -64>>2]|!H[a+68>>2]|(!H[a+44>>2]|!H[a+48>>2])){break a}if(!H[a+52>>2]|!H[a+56>>2]){break a}b=H[a+92>>2]!=-1}return b|0}function cf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Pj(a,b){a=a|0;b=b|0;var c=0;b=H[b+88>>2];if(!(!b|H[b>>2]!=2)){c=a;a=H[b+8>>2];H[c+4>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);c=1}return c|0}function tc(a){a=a|0;var b=0;a:{if(!H[a+48>>2]|!H[a+52>>2]|(!H[a+28>>2]|!H[a+32>>2])){break a}if(!H[a+36>>2]|!H[a+40>>2]){break a}b=H[a+76>>2]!=-1}return b|0}function Sh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function He(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function bf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function wh(){var a=0,b=0;b=pa(40);H[b>>2]=-1;a=b+8|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;return b|0}function gf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+4>>2];a:{if(d){c=1;if(I[d+36|0]<2){break a}}c=ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0}return c|0}function ci(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Mh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Ha(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;G[a+38>>1]=0;F[a+36|0]=0;return a}function Hf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e);return}a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,d,e,f)}function Ei(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}d=nd(a,b,c)}return d|0}function gh(){var a=0;a=_d(pa(108));H[a+84>>2]=0;H[a+88>>2]=0;H[a>>2]=13664;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;return a|0}function Zd(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=N(b,12)+a|0;a=H[b+20>>2];if((H[b+24>>2]-a|0)<=0){break a}c=H[a>>2]}return c}function lc(a,b,c,d,e,f,g){H[a>>2]=0;H[a+56>>2]=b;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=f;H[a+44>>2]=g;F[a+32|0]=e;H[a+28>>2]=d;F[a+24|0]=c}function aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!xc(a+24|0,H[a+8>>2],c)){break a}}d=nd(a,b,c)}return d|0}function $i(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!xc(a+24|0,rb(a),c)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Yf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}return _b(a)|0}function Dc(a){var b=0;if(I[a+11|0]>>>7|0){b=H[a+4>>2]}else{b=I[a+11|0]&127}if(!b){af(1232);v()}if(I[a+11|0]>>>7|0){a=H[a>>2]}return a}function Xf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}oa(_b(a))}function zj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function jj(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Qa(a,b){if(b){Qa(a,H[b>>2]);Qa(a,H[b+4>>2]);a=H[b+28>>2];if(a){H[b+32>>2]=a;oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Vg(){var a=0;a=pa(28);H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;return a|0}function wg(a){a=a|0;var b=0;H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function eh(){var a=0,b=0;a=pa(24);H[a+4>>2]=0;H[a+8>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;return a|0}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d);return}a=H[a+8>>2];ea[H[H[a>>2]+28>>2]](a,b,c,d)}function yj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ij(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function pa(a){var b=0;a=a?a:1;a:{while(1){b=Ec(a);if(b){break a}b=H[4422];if(b){ea[b|0]();continue}break}X();v()}return b}function Kb(a,b){if(b){Kb(a,H[b>>2]);Kb(a,H[b+4>>2]);if(F[b+39|0]<0){oa(H[b+28>>2])}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Ad(a){a=a|0;var b=0,c=0;H[a>>2]=15372;b=H[a+4>>2]-12|0;c=H[b+8>>2]-1|0;H[b+8>>2]=c;if((c|0)<0){oa(b)}return a|0}function lh(){var a=0;a=pa(24);H[a+8>>2]=0;H[a+12>>2]=0;H[a+4>>2]=-1;H[a>>2]=1832;H[a+16>>2]=0;H[a+20>>2]=0;return a|0}function pd(a,b,c){a=a|0;b=b|0;c=c|0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;return 1}function wc(a){a=a|0;var b=0;if(!(!H[a+60>>2]|!H[a+44>>2]|(!H[a+48>>2]|!H[a+52>>2]))){b=H[a+56>>2]!=0}return b|0}function Id(a,b){if(I[a+11|0]>>>7|0){H[a+4>>2]=b;return}F[a+11|0]=I[a+11|0]&128|b;F[a+11|0]=I[a+11|0]&127}function wj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function fj(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function bi(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Uh(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function lg(a){a=a|0;if(a){if(F[a+39|0]<0){oa(H[a+28>>2])}Oc(a+12|0,H[a+16>>2]);Kb(a,H[a+4>>2]);oa(a)}}function Pb(a){a=a|0;var b=0;if(!(!H[a+52>>2]|(!H[a+44>>2]|!H[a+48>>2]))){b=H[a+56>>2]!=0}return b|0}function vj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function vc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|!b|I[b+24|0]!=3)){H[a+60>>2]=b;c=1}return c|0}function ej(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ai(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Th(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function xh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=b;H[a+8>>2]=c;H[a+12>>2]=0}function We(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a- -64>>2]=b;c=1}return c|0}function yc(a){var b=0;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}}function sc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+48>>2]=b;c=1}return c|0}function Gf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e)}}function wa(){var a=0;a=Bc(4);H[a>>2]=15260;H[a>>2]=15220;H[a>>2]=15240;Y(a|0,15352,14);v()}function sf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Kj(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function mi(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}return a|0}function Ci(a){a=a|0;var b=0;b=rb(a);return Je(a+24|0,b?b:H[a+8>>2],H[H[a+4>>2]+32>>2])|0}function rf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function ji(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}\nfunction Ub(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Za(a){var b=0;H[a+16>>2]=0;b=H[a>>2];H[a+4>>2]=b;H[a+12>>2]=b;if(b){oa(b)}}function Oc(a,b){if(b){Oc(a,H[b>>2]);Oc(a,H[b+4>>2]);Kb(b+20|0,H[b+24>>2]);oa(b)}}function wi(a){a=a|0;if(!H[a+44>>2]){return 0}return ea[H[H[a>>2]+48>>2]](a)|0}function vh(a){a=a|0;var b=0;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}}function Uj(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d)}}function ui(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+20>>2]](a,b)|0}function ni(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+12>>2]](a,b)|0}function li(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+16>>2]](a,b)|0}function lb(){var a=0;a=pa(12);H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;return a|0}function kb(a){a=a|0;var b=0;if(a){b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Vj(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<<b|(-1<<a&-2)>>>a}\nfunction dh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+32>>2]=c;H[a+28>>2]=b;return 1}function ch(a){a=a|0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Rd(a,b,c){a:{if(H[c+76>>2]<0){a=Fc(a,b,c);break a}a=Fc(a,b,c)}}function Mb(a,b){a=a|0;b=b|0;if(b>>>0<=1){H[a+28>>2]=b}return b>>>0<2|0}function Fh(a,b){a=a|0;b=b|0;F[b+84|0]=1;H[b+72>>2]=H[b+68>>2];return 1}function si(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+24>>2]](a)|0}function ri(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+28>>2]](a)|0}function oi(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+36>>2]](a)|0}function ih(){var a=0;a=pa(8);H[a+4>>2]=-1;H[a>>2]=1032;return a|0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;return H[H[b+8>>2]+(c<<2)>>2]}function _i(a,b){a=a|0;b=b|0;return Fd(a+24|0,rb(a),H[a+8>>2])|0}function Bi(a,b){a=a|0;b=b|0;return Re(a+24|0,rb(a),H[a+8>>2])|0}function xf(a,b){a=a|0;b=b|0;H[a+12>>2]=-1;H[a+8>>2]=b;return 1}function ne(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+12>>2]](a,b)|0}function Ff(a){a=a|0;if(!a){return 0}return(Ed(a,15068)|0)!=0|0}function Di(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+56>>2]](a,b)|0}function $g(a){a=a|0;if(a){if(F[a+15|0]<0){oa(H[a+4>>2])}oa(a)}}function kh(a,b){a=a|0;b=b|0;return O(L[H[a+8>>2]+(b<<2)>>2])}function af(a){a=Hd(Bc(8),a);H[a>>2]=15472;Y(a|0,15504,1);v()}function Ue(a){a=Hd(Bc(8),a);H[a>>2]=15420;Y(a|0,15452,1);v()}function _g(a,b){a=a|0;b=b|0;return O(L[H[a>>2]+(b<<2)>>2])}function fh(a){a=a|0;return(H[a+100>>2]-H[a+96>>2]|0)/12|0}function ah(a){a=a|0;return(F[a+15|0]<0?H[a+4>>2]:a+4|0)|0}function _f(a,b){a=a|0;b=b|0;return H[H[a+4>>2]+(b<<2)>>2]}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;da=0;return 0}function Ke(a){a=Vc(a);H[a+44>>2]=0;H[a>>2]=11180;return a}function ie(a,b){a=a|0;b=b|0;return H[H[a>>2]+(b<<2)>>2]}function Xg(a,b){a=a|0;b=b|0;return G[H[a>>2]+(b<<1)>>1]}function Wg(a,b){a=a|0;b=b|0;return J[H[a>>2]+(b<<1)>>1]}function Zb(a,b){var c=0;c=pa(b);H[a+4>>2]=b;H[a>>2]=c}function Jg(a,b,c){a=a|0;b=b|0;c=c|0;return Zd(b,c)|0}function _d(a){H[a>>2]=13724;ra(a+4|0,0,80);return a}function me(a){a=a|0;return H[a+12>>2]-H[a+8>>2]>>2}function Qj(a){if(a){return 31-Q(a-1^a)|0}return 32}function cc(a){a=a|0;if(a){ea[H[H[a>>2]+4>>2]](a)}}function Zg(a,b){a=a|0;b=b|0;return F[H[a>>2]+b|0]}function Yg(a,b){a=a|0;b=b|0;return I[H[a>>2]+b|0]}function Uf(a){a=a|0;return H[a+8>>2]-H[a+4>>2]>>2}function jd(a,b){a=a|0;b=b|0;H[a+4>>2]=b;return 1}function je(a){a=a|0;return H[a+4>>2]-H[a>>2]>>1}function Qc(a){a=a|0;return H[a+4>>2]-H[a>>2]>>2}function le(a){a=a|0;return H[a+4>>2]-H[a>>2]|0}function Ab(a,b,c){if(!(I[a|0]&32)){Fc(b,c,a)}}function vf(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function hi(a,b){a=a|0;b=b|0;return I[b+24|0]}function Pg(a,b){a=a|0;b=b|0;return H[b+8>>2]}function Nj(a){a=a|0;return I[H[a+8>>2]+24|0]}function Li(a){a=a|0;H[a>>2]=10032;return a|0}function Eg(a,b){a=a|0;b=b|0;return H[b+4>>2]}function Yi(a){a=a|0;H[a>>2]=7144;return a|0}function Ui(a){a=a|0;H[a>>2]=8080;return a|0}function Sf(a){a=a|0;return aa(H[a+60>>2])|0}function Pi(a){a=a|0;H[a>>2]=9028;return a|0}function jh(a){a=a|0;return O(L[a+20>>2])}function Ji(a){a=a|0;H[a>>2]=10032;oa(a)}function Xi(a){a=a|0;H[a>>2]=7144;oa(a)}function Si(a){a=a|0;H[a>>2]=8080;oa(a)}function Oi(a){a=a|0;H[a>>2]=9028;oa(a)}function sh(a){a=a|0;return H[a+88>>2]}function rh(a){a=a|0;return H[a+56>>2]}function oh(a){a=a|0;return H[a+40>>2]}function nh(a){a=a|0;return H[a+48>>2]}function mh(a){a=a|0;return H[a+60>>2]}function eb(a){a=a|0;return H[a+28>>2]}function df(){H[4292]=17048;H[4274]=42}function Rc(a){a=a|0;return H[a+80>>2]}function qh(a){a=a|0;return F[a+24|0]}function ph(a){a=a|0;return I[a+32|0]}function md(a,b){a=a|0;b=b|0;return-1}function db(a){a=a|0;return H[a+4>>2]}function bh(a){a=a|0;return!H[a>>2]|0}function _e(a,b){a=a|0;b=b|0;return 6}function Zc(a){a=a|0;return H[a+8>>2]}function Pd(a,b){a=a|0;b=b|0;return 1}function Ja(a,b){a=a|0;b=b|0;return 0}function Bj(a,b){a=a|0;b=b|0;return 2}function Bc(a){return Ec(a+80|0)+80|0}function pe(a){a=a|0;return H[a>>2]}function yh(){return Ha(pa(40))|0}function uh(){return Eb(pa(64))|0}function hh(){return _d(pa(84))|0}function Sc(a){a=a|0;if(a){oa(a)}}function zc(a){a=a|0;Ad(a);oa(a)}function Ef(a){a=a|0;return 1171}function Df(a){a=a|0;return 1245}function Cf(a){a=a|0;return 1211}function Ta(a){a=a|0;return a|0}function yf(a){a=a|0;oa(rd(a))}function fi(a){a=a|0;oa(Be(a))}function ei(a){a=a|0;oa(Ae(a))}function di(a){a=a|0;oa(ze(a))}function Tf(a){a=a|0;oa(_b(a))}function ld(a){a=a|0;return 3}function _a(a){a=a|0;return 0}function Ze(a){a=a|0;return 5}function Tb(a){a=a|0;return 2}function Ob(a){a=a|0;return 6}function Da(a){a=a|0;return 1}function $e(a){a=a|0;return 4}function sa(){Ue(1164);v()}function Na(){Ue(1232);v()}function La(a){a=a|0;oa(a)}function Ca(){af(1164);v()}function fb(a){a=a|0;v()}function eg(){return 10}function dg(){return 11}function cg(){return 12}function kg(){return 5}function ig(){return 6}function hg(){return 7}function gg(){return 8}function fg(){return 9}function fe(){return 3}function ee(){return 4}function bg(){return-2}function bc(){return-1}function ag(){return-3}function ac(){return 1}function Zf(){return-5}function Qb(){return 0}function Nc(){return 2}function $f(){return-4}function Nf(){X();v()}function Td(a){a=a|0}\n// EMSCRIPTEN_END_FUNCS\ne=I;p(q);var ea=c([null,Ad,Ta,La,Tb,Pj,zi,Gh,Fd,Bf,xc,Nh,_e,Bj,Ta,mi,ji,Da,gj,Ti,Ki,Re,xi,Je,_e,hi,wg,fb,dh,ke,jg,_f,Uf,eb,Ja,Nf,Pd,Da,rd,yf,Of,Af,zf,sf,rf,pd,xf,wf,vf,Pd,uf,tf,kf,jf,qf,pf,hf,of,nf,mf,lf,cf,bf,pd,gf,ff,nd,ef,Nj,Oj,Kj,Ub,Da,db,Pb,_a,md,Ja,_a,Da,Mj,Lj,fb,fb,Ub,Tb,Pb,Jj,Ij,Hj,$e,Pb,Gj,Fj,Ej,Dj,ld,wc,Da,Ja,vc,Cj,Aj,zj,yj,Ze,wc,Da,Ja,vc,Ye,xj,wj,vj,Ob,Xe,Da,Ja,We,Ve,uj,Ta,La,Mb,eb,Nb,fb,Ub,Da,Pb,tj,fb,Ub,Tb,Pb,sj,rj,qj,$e,Pb,pj,oj,nj,mj,ld,wc,Da,Ja,vc,lj,kj,jj,ij,Ze,wc,Da,Ja,vc,Ye,hj,fj,ej,Ob,Xe,Da,Ja,We,Ve,dj,Ta,La,Mb,eb,Lb,fb,Ub,_a,Da,cj,cf,bf,bj,$i,aj,Zi,Tb,_i,Yi,Xi,Ob,db,tc,Da,Ja,sc,Da,Tb,Te,Wi,Ta,La,Mb,eb,Nb,Ui,Si,Ob,tc,Da,Ja,sc,Te,Ri,Ta,La,Mb,eb,Lb,Ta,La,_a,Da,_a,md,Ja,Vi,Qi,Pi,Oi,Ob,db,tc,Da,Ja,sc,Da,ld,Se,Ni,Ta,La,Mb,eb,Nb,Li,Ji,Ob,tc,Da,Ja,sc,Se,Ii,Ta,La,Mb,eb,Lb,La,_a,Da,_a,md,Ja,Mi,Hi,Ai,yi,Gi,Ei,Fi,Di,Ci,Bi,vi,fb,Da,Da,wi,Dh,Ch,Da,_a,Ja,Ja,qi,pi,ti,ui,ri,oi,ni,li,si,Be,fi,jd,id,hd,gd,ki,Da,db,Zc,Ae,ei,jd,id,hd,gd,ii,Da,db,Zc,ze,di,jd,id,hd,gd,gi,Da,db,Zc,He,ci,Ie,bi,ai,Zh,Yh,Xh,Wh,_h,Vh,$h,Uh,Th,Rh,Qh,Ph,Oh,Sh,Mh,Lh,Kh,Jh,Ih,Wc,ve,Hh,Ta,La,Fh,Eh,fb,_a,Da,Wc,Ah,Bh,Wc,ve,zh,Yf,Xf,Wf,Vf,_b,Tf,Xd,Wd,Sf,Rf,Qf,_a,Pf,Ta,La,Td,Td,Mf,Gf,If,Lf,La,Hf,Jf,Kf,La,Df,La,Cf,La,Ef,zc,db,zc,zc]);function fa(){return E.byteLength/65536|0}function ka(la){la=la|0;var ga=fa()|0;var ha=ga+la|0;if(ga<ha&&ha<65536){var ia=new ArrayBuffer(N(ha,65536));var ja=new Int8Array(ia);ja.set(F);F=new Int8Array(ia);G=new Int16Array(ia);H=new Int32Array(ia);I=new Uint8Array(ia);J=new Uint16Array(ia);K=new Uint32Array(ia);L=new Float32Array(ia);M=new Float64Array(ia);E=ia;D.buffer=E;e=I}return ga}return{\"i\":df,\"j\":ea,\"k\":Sc,\"l\":yh,\"m\":xh,\"n\":Sc,\"o\":wh,\"p\":pe,\"q\":vh,\"r\":uh,\"s\":Sc,\"t\":th,\"u\":Rc,\"v\":sh,\"w\":rh,\"x\":eb,\"y\":qh,\"z\":ph,\"A\":oh,\"B\":nh,\"C\":mh,\"D\":Ga,\"E\":lh,\"F\":ne,\"G\":db,\"H\":kh,\"I\":jh,\"J\":cc,\"K\":ih,\"L\":ne,\"M\":db,\"N\":cc,\"O\":hh,\"P\":me,\"Q\":Rc,\"R\":cc,\"S\":gh,\"T\":fh,\"U\":me,\"V\":Rc,\"W\":cc,\"X\":eh,\"Y\":ch,\"Z\":pe,\"_\":bh,\"$\":ah,\"aa\":$g,\"ba\":lb,\"ca\":_g,\"da\":Qc,\"ea\":kb,\"fa\":lb,\"ga\":Zg,\"ha\":le,\"ia\":kb,\"ja\":lb,\"ka\":Yg,\"la\":le,\"ma\":kb,\"na\":lb,\"oa\":Xg,\"pa\":je,\"qa\":kb,\"ra\":lb,\"sa\":Wg,\"ta\":je,\"ua\":kb,\"va\":lb,\"wa\":ie,\"xa\":Qc,\"ya\":kb,\"za\":lb,\"Aa\":ie,\"Ba\":Qc,\"Ca\":kb,\"Da\":Vg,\"Ea\":Ug,\"Fa\":Tg,\"Ga\":Sg,\"Ha\":Rg,\"Ia\":Qg,\"Ja\":Pg,\"Ka\":Og,\"La\":Ng,\"Ma\":Mg,\"Na\":Lg,\"Oa\":Kg,\"Pa\":Jg,\"Qa\":Ig,\"Ra\":Hg,\"Sa\":Gg,\"Ta\":Fg,\"Ua\":Eg,\"Va\":Dg,\"Wa\":Cg,\"Xa\":Bg,\"Ya\":Ag,\"Za\":zg,\"_a\":yg,\"$a\":xg,\"ab\":ge,\"bb\":vg,\"cb\":ug,\"db\":tg,\"eb\":sg,\"fb\":ge,\"gb\":rg,\"hb\":qg,\"ib\":pg,\"jb\":og,\"kb\":ng,\"lb\":mg,\"mb\":lg,\"nb\":bc,\"ob\":Qb,\"pb\":ac,\"qb\":Nc,\"rb\":bc,\"sb\":Qb,\"tb\":ac,\"ub\":Nc,\"vb\":fe,\"wb\":ee,\"xb\":bc,\"yb\":Qb,\"zb\":ac,\"Ab\":Qb,\"Bb\":ac,\"Cb\":Nc,\"Db\":fe,\"Eb\":ee,\"Fb\":kg,\"Gb\":ig,\"Hb\":hg,\"Ib\":gg,\"Jb\":fg,\"Kb\":eg,\"Lb\":dg,\"Mb\":cg,\"Nb\":Qb,\"Ob\":bc,\"Pb\":bg,\"Qb\":ag,\"Rb\":$f,\"Sb\":Zf,\"Tb\":Ec,\"Ub\":oa,\"Vb\":Ff}}return ma(na)}\n// EMSCRIPTEN_END_ASM\n\n\n)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({\"instance\":new WebAssembly.Instance(module,info)})}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;assert(INITIAL_MEMORY>=65536,\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+INITIAL_MEMORY+\"! (STACK_SIZE=\"+65536+\")\");if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"draco_decoder.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"j\"];addOnInit(Module[\"asm\"][\"i\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j])}num+=len}HEAPU32[pnum>>2]=num;return 0}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob==\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==\"boolean\"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,\"base64\");return new Uint8Array(buf[\"buffer\"],buf[\"byteOffset\"],buf[\"byteLength\"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmImports={\"c\":___cxa_throw,\"b\":_abort,\"h\":_emscripten_memcpy_big,\"f\":_emscripten_resize_heap,\"g\":_fd_close,\"e\":_fd_seek,\"d\":_fd_write,\"a\":wasmMemory};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=function(){return(_emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=function(){return(_emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=function(){return(_emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=Module[\"asm\"][\"m\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=function(){return(_emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=function(){return(_emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=function(){return(_emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=function(){return(_emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=function(){return(_emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=function(){return(_emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=function(){return(_emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=function(){return(_emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=function(){return(_emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=function(){return(_emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=function(){return(_emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=function(){return(_emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=function(){return(_emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=function(){return(_emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=function(){return(_emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=function(){return(_emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=function(){return(_emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=function(){return(_emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=function(){return(_emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=function(){return(_emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=function(){return(_emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=function(){return(_emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=function(){return(_emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=function(){return(_emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=function(){return(_emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=function(){return(_emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=function(){return(_emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=function(){return(_emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=function(){return(_emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=function(){return(_emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=function(){return(_emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=function(){return(_emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=function(){return(_emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=function(){return(_emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=function(){return(_emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=function(){return(_emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=function(){return(_emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=function(){return(_emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=function(){return(_emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=function(){return(_emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=function(){return(_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=function(){return(_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=function(){return(_emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=function(){return(_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=function(){return(_emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=function(){return(_emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=Module[\"asm\"][\"Db\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=Module[\"asm\"][\"Eb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=Module[\"asm\"][\"Fb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=Module[\"asm\"][\"Gb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=Module[\"asm\"][\"Hb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=Module[\"asm\"][\"Ib\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=Module[\"asm\"][\"Jb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=Module[\"asm\"][\"Kb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=function(){return(_emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=Module[\"asm\"][\"Lb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=function(){return(_emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=Module[\"asm\"][\"Mb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=function(){return(_emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=Module[\"asm\"][\"Nb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=Module[\"asm\"][\"Ob\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=Module[\"asm\"][\"Pb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=function(){return(_emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=Module[\"asm\"][\"Qb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=Module[\"asm\"][\"Rb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=Module[\"asm\"][\"Sb\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Tb\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ub\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Vb\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=15856;var ___stop_em_js=Module[\"___stop_em_js\"]=15954;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module[\"WrapperObject\"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module[\"getCache\"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module[\"wrapPointer\"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module[\"castObject\"]=castObject;Module[\"NULL\"]=wrapPointer(0);function destroy(obj){if(!obj[\"__destroy__\"])throw\"Error: Cannot destroy object. (Did you create it yourself?)\";obj[\"__destroy__\"]();delete getCache(obj.__class__)[obj.ptr]}Module[\"destroy\"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module[\"compare\"]=compare;function getPointer(obj){return obj.ptr}Module[\"getPointer\"]=getPointer;function getClass(obj){return obj.__class__}Module[\"getClass\"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module[\"_free\"](ensureCache.temps[i])}ensureCache.temps.length=0;Module[\"_free\"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module[\"_malloc\"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0},alloc:function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module[\"_malloc\"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i<array.length;i++){view[offset+i]=array[i]}}};function ensureString(value){if(typeof value===\"string\"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function VoidPtr(){throw\"cannot construct a VoidPtr, no constructor in IDL\"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module[\"VoidPtr\"]=VoidPtr;VoidPtr.prototype[\"__destroy__\"]=VoidPtr.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)};function DecoderBuffer(){this.ptr=_emscripten_bind_DecoderBuffer_DecoderBuffer_0();getCache(DecoderBuffer)[this.ptr]=this}DecoderBuffer.prototype=Object.create(WrapperObject.prototype);DecoderBuffer.prototype.constructor=DecoderBuffer;DecoderBuffer.prototype.__class__=DecoderBuffer;DecoderBuffer.__cache__={};Module[\"DecoderBuffer\"]=DecoderBuffer;DecoderBuffer.prototype[\"Init\"]=DecoderBuffer.prototype.Init=function(data,data_size){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;_emscripten_bind_DecoderBuffer_Init_2(self,data,data_size)};DecoderBuffer.prototype[\"__destroy__\"]=DecoderBuffer.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DecoderBuffer___destroy___0(self)};function AttributeTransformData(){this.ptr=_emscripten_bind_AttributeTransformData_AttributeTransformData_0();getCache(AttributeTransformData)[this.ptr]=this}AttributeTransformData.prototype=Object.create(WrapperObject.prototype);AttributeTransformData.prototype.constructor=AttributeTransformData;AttributeTransformData.prototype.__class__=AttributeTransformData;AttributeTransformData.__cache__={};Module[\"AttributeTransformData\"]=AttributeTransformData;AttributeTransformData.prototype[\"transform_type\"]=AttributeTransformData.prototype.transform_type=function(){var self=this.ptr;return _emscripten_bind_AttributeTransformData_transform_type_0(self)};AttributeTransformData.prototype[\"__destroy__\"]=AttributeTransformData.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeTransformData___destroy___0(self)};function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module[\"GeometryAttribute\"]=GeometryAttribute;GeometryAttribute.prototype[\"__destroy__\"]=GeometryAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)};function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module[\"PointAttribute\"]=PointAttribute;PointAttribute.prototype[\"size\"]=PointAttribute.prototype.size=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)};PointAttribute.prototype[\"GetAttributeTransformData\"]=PointAttribute.prototype.GetAttributeTransformData=function(){var self=this.ptr;return wrapPointer(_emscripten_bind_PointAttribute_GetAttributeTransformData_0(self),AttributeTransformData)};PointAttribute.prototype[\"attribute_type\"]=PointAttribute.prototype.attribute_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)};PointAttribute.prototype[\"data_type\"]=PointAttribute.prototype.data_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)};PointAttribute.prototype[\"num_components\"]=PointAttribute.prototype.num_components=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)};PointAttribute.prototype[\"normalized\"]=PointAttribute.prototype.normalized=function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)};PointAttribute.prototype[\"byte_stride\"]=PointAttribute.prototype.byte_stride=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)};PointAttribute.prototype[\"byte_offset\"]=PointAttribute.prototype.byte_offset=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)};PointAttribute.prototype[\"unique_id\"]=PointAttribute.prototype.unique_id=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)};PointAttribute.prototype[\"__destroy__\"]=PointAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)};function AttributeQuantizationTransform(){this.ptr=_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0();getCache(AttributeQuantizationTransform)[this.ptr]=this}AttributeQuantizationTransform.prototype=Object.create(WrapperObject.prototype);AttributeQuantizationTransform.prototype.constructor=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype.__class__=AttributeQuantizationTransform;AttributeQuantizationTransform.__cache__={};Module[\"AttributeQuantizationTransform\"]=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype[\"InitFromAttribute\"]=AttributeQuantizationTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1(self,att)};AttributeQuantizationTransform.prototype[\"quantization_bits\"]=AttributeQuantizationTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0(self)};AttributeQuantizationTransform.prototype[\"min_value\"]=AttributeQuantizationTransform.prototype.min_value=function(axis){var self=this.ptr;if(axis&&typeof axis===\"object\")axis=axis.ptr;return _emscripten_bind_AttributeQuantizationTransform_min_value_1(self,axis)};AttributeQuantizationTransform.prototype[\"range\"]=AttributeQuantizationTransform.prototype.range=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_range_0(self)};AttributeQuantizationTransform.prototype[\"__destroy__\"]=AttributeQuantizationTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeQuantizationTransform___destroy___0(self)};function AttributeOctahedronTransform(){this.ptr=_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0();getCache(AttributeOctahedronTransform)[this.ptr]=this}AttributeOctahedronTransform.prototype=Object.create(WrapperObject.prototype);AttributeOctahedronTransform.prototype.constructor=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype.__class__=AttributeOctahedronTransform;AttributeOctahedronTransform.__cache__={};Module[\"AttributeOctahedronTransform\"]=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype[\"InitFromAttribute\"]=AttributeOctahedronTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1(self,att)};AttributeOctahedronTransform.prototype[\"quantization_bits\"]=AttributeOctahedronTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0(self)};AttributeOctahedronTransform.prototype[\"__destroy__\"]=AttributeOctahedronTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeOctahedronTransform___destroy___0(self)};function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module[\"PointCloud\"]=PointCloud;PointCloud.prototype[\"num_attributes\"]=PointCloud.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)};PointCloud.prototype[\"num_points\"]=PointCloud.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)};PointCloud.prototype[\"__destroy__\"]=PointCloud.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)};function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module[\"Mesh\"]=Mesh;Mesh.prototype[\"num_faces\"]=Mesh.prototype.num_faces=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)};Mesh.prototype[\"num_attributes\"]=Mesh.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)};Mesh.prototype[\"num_points\"]=Mesh.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)};Mesh.prototype[\"__destroy__\"]=Mesh.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)};function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module[\"Metadata\"]=Metadata;Metadata.prototype[\"__destroy__\"]=Metadata.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)};function Status(){throw\"cannot construct a Status, no constructor in IDL\"}Status.prototype=Object.create(WrapperObject.prototype);Status.prototype.constructor=Status;Status.prototype.__class__=Status;Status.__cache__={};Module[\"Status\"]=Status;Status.prototype[\"code\"]=Status.prototype.code=function(){var self=this.ptr;return _emscripten_bind_Status_code_0(self)};Status.prototype[\"ok\"]=Status.prototype.ok=function(){var self=this.ptr;return!!_emscripten_bind_Status_ok_0(self)};Status.prototype[\"error_msg\"]=Status.prototype.error_msg=function(){var self=this.ptr;return UTF8ToString(_emscripten_bind_Status_error_msg_0(self))};Status.prototype[\"__destroy__\"]=Status.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Status___destroy___0(self)};function DracoFloat32Array(){this.ptr=_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0();getCache(DracoFloat32Array)[this.ptr]=this}DracoFloat32Array.prototype=Object.create(WrapperObject.prototype);DracoFloat32Array.prototype.constructor=DracoFloat32Array;DracoFloat32Array.prototype.__class__=DracoFloat32Array;DracoFloat32Array.__cache__={};Module[\"DracoFloat32Array\"]=DracoFloat32Array;DracoFloat32Array.prototype[\"GetValue\"]=DracoFloat32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoFloat32Array_GetValue_1(self,index)};DracoFloat32Array.prototype[\"size\"]=DracoFloat32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoFloat32Array_size_0(self)};DracoFloat32Array.prototype[\"__destroy__\"]=DracoFloat32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoFloat32Array___destroy___0(self)};function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module[\"DracoInt8Array\"]=DracoInt8Array;DracoInt8Array.prototype[\"GetValue\"]=DracoInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,index)};DracoInt8Array.prototype[\"size\"]=DracoInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)};DracoInt8Array.prototype[\"__destroy__\"]=DracoInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)};function DracoUInt8Array(){this.ptr=_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0();getCache(DracoUInt8Array)[this.ptr]=this}DracoUInt8Array.prototype=Object.create(WrapperObject.prototype);DracoUInt8Array.prototype.constructor=DracoUInt8Array;DracoUInt8Array.prototype.__class__=DracoUInt8Array;DracoUInt8Array.__cache__={};Module[\"DracoUInt8Array\"]=DracoUInt8Array;DracoUInt8Array.prototype[\"GetValue\"]=DracoUInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt8Array_GetValue_1(self,index)};DracoUInt8Array.prototype[\"size\"]=DracoUInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt8Array_size_0(self)};DracoUInt8Array.prototype[\"__destroy__\"]=DracoUInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt8Array___destroy___0(self)};function DracoInt16Array(){this.ptr=_emscripten_bind_DracoInt16Array_DracoInt16Array_0();getCache(DracoInt16Array)[this.ptr]=this}DracoInt16Array.prototype=Object.create(WrapperObject.prototype);DracoInt16Array.prototype.constructor=DracoInt16Array;DracoInt16Array.prototype.__class__=DracoInt16Array;DracoInt16Array.__cache__={};Module[\"DracoInt16Array\"]=DracoInt16Array;DracoInt16Array.prototype[\"GetValue\"]=DracoInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt16Array_GetValue_1(self,index)};DracoInt16Array.prototype[\"size\"]=DracoInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt16Array_size_0(self)};DracoInt16Array.prototype[\"__destroy__\"]=DracoInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt16Array___destroy___0(self)};function DracoUInt16Array(){this.ptr=_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0();getCache(DracoUInt16Array)[this.ptr]=this}DracoUInt16Array.prototype=Object.create(WrapperObject.prototype);DracoUInt16Array.prototype.constructor=DracoUInt16Array;DracoUInt16Array.prototype.__class__=DracoUInt16Array;DracoUInt16Array.__cache__={};Module[\"DracoUInt16Array\"]=DracoUInt16Array;DracoUInt16Array.prototype[\"GetValue\"]=DracoUInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt16Array_GetValue_1(self,index)};DracoUInt16Array.prototype[\"size\"]=DracoUInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt16Array_size_0(self)};DracoUInt16Array.prototype[\"__destroy__\"]=DracoUInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt16Array___destroy___0(self)};function DracoInt32Array(){this.ptr=_emscripten_bind_DracoInt32Array_DracoInt32Array_0();getCache(DracoInt32Array)[this.ptr]=this}DracoInt32Array.prototype=Object.create(WrapperObject.prototype);DracoInt32Array.prototype.constructor=DracoInt32Array;DracoInt32Array.prototype.__class__=DracoInt32Array;DracoInt32Array.__cache__={};Module[\"DracoInt32Array\"]=DracoInt32Array;DracoInt32Array.prototype[\"GetValue\"]=DracoInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt32Array_GetValue_1(self,index)};DracoInt32Array.prototype[\"size\"]=DracoInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt32Array_size_0(self)};DracoInt32Array.prototype[\"__destroy__\"]=DracoInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt32Array___destroy___0(self)};function DracoUInt32Array(){this.ptr=_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0();getCache(DracoUInt32Array)[this.ptr]=this}DracoUInt32Array.prototype=Object.create(WrapperObject.prototype);DracoUInt32Array.prototype.constructor=DracoUInt32Array;DracoUInt32Array.prototype.__class__=DracoUInt32Array;DracoUInt32Array.__cache__={};Module[\"DracoUInt32Array\"]=DracoUInt32Array;DracoUInt32Array.prototype[\"GetValue\"]=DracoUInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt32Array_GetValue_1(self,index)};DracoUInt32Array.prototype[\"size\"]=DracoUInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt32Array_size_0(self)};DracoUInt32Array.prototype[\"__destroy__\"]=DracoUInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt32Array___destroy___0(self)};function MetadataQuerier(){this.ptr=_emscripten_bind_MetadataQuerier_MetadataQuerier_0();getCache(MetadataQuerier)[this.ptr]=this}MetadataQuerier.prototype=Object.create(WrapperObject.prototype);MetadataQuerier.prototype.constructor=MetadataQuerier;MetadataQuerier.prototype.__class__=MetadataQuerier;MetadataQuerier.__cache__={};Module[\"MetadataQuerier\"]=MetadataQuerier;MetadataQuerier.prototype[\"HasEntry\"]=MetadataQuerier.prototype.HasEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return!!_emscripten_bind_MetadataQuerier_HasEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntry\"]=MetadataQuerier.prototype.GetIntEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetIntEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntryArray\"]=MetadataQuerier.prototype.GetIntEntryArray=function(metadata,entry_name,out_values){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;_emscripten_bind_MetadataQuerier_GetIntEntryArray_3(self,metadata,entry_name,out_values)};MetadataQuerier.prototype[\"GetDoubleEntry\"]=MetadataQuerier.prototype.GetDoubleEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetDoubleEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetStringEntry\"]=MetadataQuerier.prototype.GetStringEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return UTF8ToString(_emscripten_bind_MetadataQuerier_GetStringEntry_2(self,metadata,entry_name))};MetadataQuerier.prototype[\"NumEntries\"]=MetadataQuerier.prototype.NumEntries=function(metadata){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return _emscripten_bind_MetadataQuerier_NumEntries_1(self,metadata)};MetadataQuerier.prototype[\"GetEntryName\"]=MetadataQuerier.prototype.GetEntryName=function(metadata,entry_id){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_id&&typeof entry_id===\"object\")entry_id=entry_id.ptr;return UTF8ToString(_emscripten_bind_MetadataQuerier_GetEntryName_2(self,metadata,entry_id))};MetadataQuerier.prototype[\"__destroy__\"]=MetadataQuerier.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MetadataQuerier___destroy___0(self)};function Decoder(){this.ptr=_emscripten_bind_Decoder_Decoder_0();getCache(Decoder)[this.ptr]=this}Decoder.prototype=Object.create(WrapperObject.prototype);Decoder.prototype.constructor=Decoder;Decoder.prototype.__class__=Decoder;Decoder.__cache__={};Module[\"Decoder\"]=Decoder;Decoder.prototype[\"DecodeArrayToPointCloud\"]=Decoder.prototype.DecodeArrayToPointCloud=function(data,data_size,out_point_cloud){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3(self,data,data_size,out_point_cloud),Status)};Decoder.prototype[\"DecodeArrayToMesh\"]=Decoder.prototype.DecodeArrayToMesh=function(data,data_size,out_mesh){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToMesh_3(self,data,data_size,out_mesh),Status)};Decoder.prototype[\"GetAttributeId\"]=Decoder.prototype.GetAttributeId=function(pc,type){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;return _emscripten_bind_Decoder_GetAttributeId_2(self,pc,type)};Decoder.prototype[\"GetAttributeIdByName\"]=Decoder.prototype.GetAttributeIdByName=function(pc,name){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);return _emscripten_bind_Decoder_GetAttributeIdByName_2(self,pc,name)};Decoder.prototype[\"GetAttributeIdByMetadataEntry\"]=Decoder.prototype.GetAttributeIdByMetadataEntry=function(pc,name,value){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);if(value&&typeof value===\"object\")value=value.ptr;else value=ensureString(value);return _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3(self,pc,name,value)};Decoder.prototype[\"GetAttribute\"]=Decoder.prototype.GetAttribute=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttribute_2(self,pc,att_id),PointAttribute)};Decoder.prototype[\"GetAttributeByUniqueId\"]=Decoder.prototype.GetAttributeByUniqueId=function(pc,unique_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(unique_id&&typeof unique_id===\"object\")unique_id=unique_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeByUniqueId_2(self,pc,unique_id),PointAttribute)};Decoder.prototype[\"GetMetadata\"]=Decoder.prototype.GetMetadata=function(pc){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;return wrapPointer(_emscripten_bind_Decoder_GetMetadata_1(self,pc),Metadata)};Decoder.prototype[\"GetAttributeMetadata\"]=Decoder.prototype.GetAttributeMetadata=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeMetadata_2(self,pc,att_id),Metadata)};Decoder.prototype[\"GetFaceFromMesh\"]=Decoder.prototype.GetFaceFromMesh=function(m,face_id,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(face_id&&typeof face_id===\"object\")face_id=face_id.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetFaceFromMesh_3(self,m,face_id,out_values)};Decoder.prototype[\"GetTriangleStripsFromMesh\"]=Decoder.prototype.GetTriangleStripsFromMesh=function(m,strip_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(strip_values&&typeof strip_values===\"object\")strip_values=strip_values.ptr;return _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2(self,m,strip_values)};Decoder.prototype[\"GetTrianglesUInt16Array\"]=Decoder.prototype.GetTrianglesUInt16Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt16Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetTrianglesUInt32Array\"]=Decoder.prototype.GetTrianglesUInt32Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt32Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetAttributeFloat\"]=Decoder.prototype.GetAttributeFloat=function(pa,att_index,out_values){var self=this.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(att_index&&typeof att_index===\"object\")att_index=att_index.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloat_3(self,pa,att_index,out_values)};Decoder.prototype[\"GetAttributeFloatForAllPoints\"]=Decoder.prototype.GetAttributeFloatForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeIntForAllPoints\"]=Decoder.prototype.GetAttributeIntForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt8ForAllPoints\"]=Decoder.prototype.GetAttributeInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt8ForAllPoints\"]=Decoder.prototype.GetAttributeUInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt16ForAllPoints\"]=Decoder.prototype.GetAttributeInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt16ForAllPoints\"]=Decoder.prototype.GetAttributeUInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt32ForAllPoints\"]=Decoder.prototype.GetAttributeInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt32ForAllPoints\"]=Decoder.prototype.GetAttributeUInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeDataArrayForAllPoints\"]=Decoder.prototype.GetAttributeDataArrayForAllPoints=function(pc,pa,data_type,out_size,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(data_type&&typeof data_type===\"object\")data_type=data_type.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5(self,pc,pa,data_type,out_size,out_values)};Decoder.prototype[\"SkipAttributeTransform\"]=Decoder.prototype.SkipAttributeTransform=function(att_type){var self=this.ptr;if(att_type&&typeof att_type===\"object\")att_type=att_type.ptr;_emscripten_bind_Decoder_SkipAttributeTransform_1(self,att_type)};Decoder.prototype[\"GetEncodedGeometryType_Deprecated\"]=Decoder.prototype.GetEncodedGeometryType_Deprecated=function(in_buffer){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;return _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1(self,in_buffer)};Decoder.prototype[\"DecodeBufferToPointCloud\"]=Decoder.prototype.DecodeBufferToPointCloud=function(in_buffer,out_point_cloud){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2(self,in_buffer,out_point_cloud),Status)};Decoder.prototype[\"DecodeBufferToMesh\"]=Decoder.prototype.DecodeBufferToMesh=function(in_buffer,out_mesh){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToMesh_2(self,in_buffer,out_mesh),Status)};Decoder.prototype[\"__destroy__\"]=Decoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Decoder___destroy___0(self)};(function(){function setupEnums(){Module[\"ATTRIBUTE_INVALID_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM();Module[\"ATTRIBUTE_NO_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM();Module[\"ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM();Module[\"ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM();Module[\"INVALID\"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module[\"POSITION\"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module[\"NORMAL\"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module[\"COLOR\"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module[\"TEX_COORD\"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module[\"GENERIC\"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC();Module[\"INVALID_GEOMETRY_TYPE\"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module[\"POINT_CLOUD\"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module[\"TRIANGULAR_MESH\"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module[\"DT_INVALID\"]=_emscripten_enum_draco_DataType_DT_INVALID();Module[\"DT_INT8\"]=_emscripten_enum_draco_DataType_DT_INT8();Module[\"DT_UINT8\"]=_emscripten_enum_draco_DataType_DT_UINT8();Module[\"DT_INT16\"]=_emscripten_enum_draco_DataType_DT_INT16();Module[\"DT_UINT16\"]=_emscripten_enum_draco_DataType_DT_UINT16();Module[\"DT_INT32\"]=_emscripten_enum_draco_DataType_DT_INT32();Module[\"DT_UINT32\"]=_emscripten_enum_draco_DataType_DT_UINT32();Module[\"DT_INT64\"]=_emscripten_enum_draco_DataType_DT_INT64();Module[\"DT_UINT64\"]=_emscripten_enum_draco_DataType_DT_UINT64();Module[\"DT_FLOAT32\"]=_emscripten_enum_draco_DataType_DT_FLOAT32();Module[\"DT_FLOAT64\"]=_emscripten_enum_draco_DataType_DT_FLOAT64();Module[\"DT_BOOL\"]=_emscripten_enum_draco_DataType_DT_BOOL();Module[\"DT_TYPES_COUNT\"]=_emscripten_enum_draco_DataType_DT_TYPES_COUNT();Module[\"OK\"]=_emscripten_enum_draco_StatusCode_OK();Module[\"DRACO_ERROR\"]=_emscripten_enum_draco_StatusCode_DRACO_ERROR();Module[\"IO_ERROR\"]=_emscripten_enum_draco_StatusCode_IO_ERROR();Module[\"INVALID_PARAMETER\"]=_emscripten_enum_draco_StatusCode_INVALID_PARAMETER();Module[\"UNSUPPORTED_VERSION\"]=_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION();Module[\"UNKNOWN_VERSION\"]=_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION()}if(runtimeInitialized)setupEnums();else addOnInit(setupEnums)})();if(typeof Module[\"onModuleParsed\"]===\"function\"){Module[\"onModuleParsed\"]()}Module[\"Decoder\"].prototype.GetEncodedGeometryType=function(array){if(array.__class__&&array.__class__===Module.DecoderBuffer){return Module.Decoder.prototype.GetEncodedGeometryType_Deprecated(array)}if(array.byteLength<8)return Module.INVALID_GEOMETRY_TYPE;switch(array[7]){case 0:return Module.POINT_CLOUD;case 1:return Module.TRIANGULAR_MESH;default:return Module.INVALID_GEOMETRY_TYPE}};\n\n\n  return DracoDecoderModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DracoDecoderModule;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DracoDecoderModule; });\nelse if (typeof exports === 'object')\n  exports[\"DracoDecoderModule\"] = DracoDecoderModule;\n"
  },
  {
    "path": "packages/editor/public/libs/draco/draco_decoder_gltf.js",
    "content": "\nvar DracoDecoderModule = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DracoDecoderModule = {})  {\n\nvar Module=typeof DracoDecoderModule!=\"undefined\"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module[\"onRuntimeInitialized\"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};Module[\"onModuleParsed\"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!==\"string\")return false;const version=versionString.split(\".\");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module[\"isVersionSupported\"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts[\"initial\"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(\n// EMSCRIPTEN_START_ASM\nfunction instantiate(ia){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]==\"=\")-(o[j-1]==\"=\");for(;a<j;a+=4){g=f[o.charCodeAt(a+1)];h=f[o.charCodeAt(a+2)];m[i++]=f[o.charCodeAt(a)]<<2|g>>4;if(i<k)m[i++]=g<<4|h>>2;if(i<k)m[i++]=h<<6|f[o.charCodeAt(a+3)]}}function p(q){l(e,1028,\"YAQAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAE41ZHJhY28yOEF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1FAADYKwAAOAQAAOAGAABfX25leHRfcHJpbWUgb3ZlcmZsb3cAdmVjdG9yAHN0ZDo6ZXhjZXB0aW9uAHNraXBfYXR0cmlidXRlX3RyYW5zZm9ybQBiYWRfYXJyYXlfbmV3X2xlbmd0aABiYXNpY19zdHJpbmcAc3RkOjpiYWRfYWxsb2MARFJBQ08AVXNpbmcgaW5jb21wYXRpYmxlIGRlY29kZXIgZm9yIHRoZSBpbnB1dCBnZW9tZXRyeS4ARmFpbGVkIHRvIGRlY29kZSBwb2ludCBhdHRyaWJ1dGVzLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZGVjb2Rlci4AVW5zdXBwb3J0ZWQgbWlub3IgdmVyc2lvbi4AVW5zdXBwb3J0ZWQgbWFqb3IgdmVyc2lvbi4ASW5wdXQgaXMgbm90IGEgbWVzaC4AVW5zdXBwb3J0ZWQgZ2VvbWV0cnkgdHlwZS4ATm90IGEgRHJhY28gZmlsZS4AVW5zdXBwb3J0ZWQgZW5jb2RpbmcgbWV0aG9kLgBGYWlsZWQgdG8gZGVjb2RlIG1ldGFkYXRhLgBGYWlsZWQgdG8gZGVjb2RlIGdlb21ldHJ5IGRhdGEuAFB1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxsZWQhAAAAAAAAALQGAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAALAAAAGAAAABkAAABONWRyYWNvMzBBdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1FAAAAANgrAACIBgAA4AYAAE41ZHJhY28xOEF0dHJpYnV0ZVRyYW5zZm9ybUUAAAAAsCsAAMAGAAAAAAAAbAcAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAAE41ZHJhY28xN0F0dHJpYnV0ZXNEZWNvZGVyRQBONWRyYWNvMjZBdHRyaWJ1dGVzRGVjb2RlckludGVyZmFjZUUAAAAAsCsAADwHAADYKwAAIAcAAGQHAAAAAAAAzAcAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAE41ZHJhY28yNlNlcXVlbnRpYWxBdHRyaWJ1dGVEZWNvZGVyRQAAAACwKwAApAcAAP////8AAAAARAgAAC8AAAAwAAAAHAAAADEAAAAyAAAAHwAAACAAAAAhAAAAMwAAADQAAAA1AAAANgAAADcAAABONWRyYWNvMzdTZXF1ZW50aWFsQXR0cmlidXRlRGVjb2RlcnNDb250cm9sbGVyRQDYKwAAFAgAAGwHAAAAAAAAuAgAADgAAAA5AAAAOgAAACkAAAAqAAAAKwAAADsAAAAtAAAAPAAAAD0AAAA+AAAAPwAAAEAAAABONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZURlY29kZXJFANgrAACMCAAAzAcAAAAAAABECwAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAE41ZHJhY28zN1ByZWRpY3Rpb25TY2hlbWVUeXBlZERlY29kZXJJbnRlcmZhY2VJaWlFRQBONWRyYWNvMzJQcmVkaWN0aW9uU2NoZW1lRGVjb2RlckludGVyZmFjZUUATjVkcmFjbzI1UHJlZGljdGlvblNjaGVtZUludGVyZmFjZUUAsCsAAOgKAADYKwAAvQoAAAwLAADYKwAAiQoAABQLAADYKwAANQoAACALAADYKwAAnwkAACwLAADYKwAA/AgAADgLAAAAAAAAOAsAAEEAAABNAAAAIwAAAEQAAAAjAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAIwAAAAAAAAAsCwAAQQAAAE4AAAAjAAAARAAAACMAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAAAjAAAAAAAAAKwMAABPAAAAUAAAAFEAAABEAAAAUgAAAEYAAABHAAAASAAAAEkAAABKAAAAUwAAAFQAAABONWRyYWNvNTZNZXNoUHJlZGljdGlvblNjaGVtZUNvbnN0cmFpbmVkTXVsdGlQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAADYKwAA+AsAADgLAAAAAAAAmA0AAFUAAABWAAAAVwAAAEQAAABYAAAAWQAAAFoAAABbAAAASQAAAEoAAABcAAAAXQAAAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAANgrAADwDAAAOAsAAAAAAACEDgAAXgAAAF8AAABgAAAARAAAAGEAAABiAAAAYwAAAGQAAABJAAAASgAAAGUAAABmAAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAAAA2CsAANwNAAA4CwAAAAAAAAwQAABnAAAAaAAAAGkAAABqAAAAawAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAAsCsAAFcPAADYKwAArA4AAAQQAAAAAAAABBAAAGcAAABsAAAAIwAAAGoAAAAjAAAAAAAAAJgRAABBAAAAbQAAAG4AAABEAAAAbwAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAHAAAABONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1EZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAADYKwAAAhEAACwLAADYKwAAbBAAAIwRAAAAAAAAjBEAAEEAAABxAAAAIwAAAEQAAAAjAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAIwAAAAAAAAC8EgAAcgAAAHMAAAB0AAAARAAAAHUAAABGAAAARwAAAEgAAABJAAAASgAAAHYAAAB3AAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAA2CsAABQSAACMEQAAAAAAAJwTAAB4AAAAeQAAAHoAAABEAAAAewAAAHwAAAB9AAAAfgAAAEkAAABKAAAAfwAAAIAAAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAAADYKwAAABMAAIwRAAAAAAAAeBQAAIEAAACCAAAAgwAAAEQAAACEAAAAhQAAAIYAAACHAAAASQAAAEoAAACIAAAAiQAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA2CsAAOATAACMEQAAAAAAAOQVAACKAAAAiwAAAIwAAACNAAAAjgAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQCwKwAAPhUAANgrAACgFAAA3BUAAAAAAADcFQAAigAAAI8AAAAjAAAAjQAAACMAAAAAAAAAoBYAAEEAAACQAAAAkQAAAEQAAACSAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAkwAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFRUUAAAAA2CsAAEQWAAAsCwAAAAAAABQXAACUAAAAlQAAAJYAAAApAAAAKgAAAJcAAAA7AAAALQAAADwAAACYAAAAmQAAAJoAAACbAAAATjVkcmFjbzMyU2VxdWVudGlhbE5vcm1hbEF0dHJpYnV0ZURlY29kZXJFAADYKwAA6BYAALgIAAAAAAAASBkAAJwAAACdAAAAngAAAJ8AAACgAAAAoQAAAKIAAACjAAAApAAAAKUAAACmAAAApwAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRUVFAADYKwAAwxgAACALAADYKwAAFRgAADAZAADYKwAAWBcAADwZAAAAAAAAABsAAKgAAACpAAAAqgAAAKsAAACsAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAACwKwAAMxoAANgrAABwGQAA+BoAAAAAAACkHAAArQAAAK4AAACvAAAAnwAAALAAAACxAAAAsgAAALMAAACkAAAApQAAALQAAAC1AAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAAANgrAAD0GwAAMBkAANgrAABEGwAAmBwAAAAAAABAHgAAtgAAALcAAAC4AAAAuQAAALoAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAsCsAAIIdAADYKwAAzBwAADgeAAAAAAAA+B4AALsAAAC8AAAAvQAAAJ8AAAC+AAAAvwAAAMAAAADBAAAApAAAAKUAAADCAAAAwwAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUAAAAA2CsAAIQeAAAwGQAAAAAAAHwfAADEAAAAxQAAAMYAAAApAAAAKgAAAMcAAAA7AAAALQAAADwAAADIAAAAPgAAAD8AAADJAAAAygAAAMsAAABONWRyYWNvMzhTZXF1ZW50aWFsUXVhbnRpemF0aW9uQXR0cmlidXRlRGVjb2RlckUAAAAA2CsAAEgfAAC4CAAAAAAAANwfAADMAAAAzQAAAM4AAADPAAAAIwAAANAAAADRAAAA0gAAANMAAADUAAAA1QAAANYAAAAjAAAATjVkcmFjbzExTWVzaERlY29kZXJFAAAA2CsAAMQfAACcJwAAAAAAAEggAADXAAAA2AAAAM4AAADZAAAA2gAAANAAAADRAAAA0gAAANsAAADcAAAA3QAAAN4AAADfAAAATjVkcmFjbzIyTWVzaEVkZ2VicmVha2VyRGVjb2RlckUAAAAA2CsAACQgAADcHwAAAAAAADwhAADgAAAA4QAAAOIAAADjAAAA5AAAAOUAAADmAAAA5wAAAOgAAADpAAAA/////wAAAACcIQAA6gAAAOsAAADsAAAA7QAAAO4AAADvAAAA8AAAAPEAAADyAAAA8wAAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckRlY29kZXJJbXBsSU5TXzMxTWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsRGVjb2RlckVFRQBONWRyYWNvMzVNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbEludGVyZmFjZUUAAACwKwAABCEAANgrAAC4IAAANCEAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckRlY29kZXJJbXBsSU5TXzM4TWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsVmFsZW5jZURlY29kZXJFRUUAANgrAABIIQAANCEAAAAAAACYIgAA9AAAAPUAAAD2AAAATjVkcmFjbzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMV9FRUVFAE41ZHJhY28xM1RyYXZlcnNlckJhc2VJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQCwKwAAKSIAANgrAAC8IQAAkCIAAAAAAACQIgAA9wAAAPgAAAD2\");l(e,8900,\"AQAAAAMAAAAFAAAABwAAAAAAAACYIwAA+QAAAPoAAAD7AAAA/AAAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAE41ZHJhY28xNVBvaW50c1NlcXVlbmNlckUAAAAAsCsAAHMjAADYKwAA7CIAAJAjAAD/////AAAAAIgkAAD9AAAA/gAAAP8AAABONWRyYWNvMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAAsCsAACUkAADYKwAAvCMAAIAkAAAAAAAAgCQAAAABAAABAQAA/wAAAAAAAABAJQAAAgEAAAMBAAAEAQAABQEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAAAA2CsAAMAkAACQIwAAAAAAAMAlAAAGAQAABwEAAP8AAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQDYKwAAYCUAAIAkAAAAAAAAcCYAAAgBAAAJAQAACgEAAAsBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMl9FRUVFRUUAANgrAADkJQAAkCM=\");l(e,9860,\"3CYAAMwAAAAMAQAAzgAAAM8AAAANAQAA0AAAANEAAADSAAAA0wAAANQAAADVAAAA1gAAAA4BAABONWRyYWNvMjFNZXNoU2VxdWVudGlhbERlY29kZXJFANgrAAC8JgAA3B8AAAAAAAAcJwAADwEAABABAAARAQAAEgEAAE41ZHJhY28xNUxpbmVhclNlcXVlbmNlckUAAADYKwAAACcAAJAjAAAAAAAAnCcAAMwAAAATAQAAFAEAAM8AAAAjAAAAFQEAANEAAADSAAAA0w==\");l(e,10080,\"RmFpbGVkIHRvIHBhcnNlIERyYWNvIGhlYWRlci4ATjVkcmFjbzE3UG9pbnRDbG91ZERlY29kZXJFAAAAsCsAAH4nAAABAAAAAQAAAAIAAAACAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAAAQ==\");l(e,10211,\"wAAAAMAAAADAAAAAwP//////////AAAAACAoAAAWAQAAFwEAABgBAAAZAQAATjVkcmFjbzRNZXNoRQAAANgrAAAQKAAAZCgAAP////8AAAAAAAAAAGQoAAAaAQAAGwEAABwBAAAdAQAATjVkcmFjbzEwUG9pbnRDbG91ZEUAAAAAsCsAAEwo\");l(e,10356,\"AgAAAAMAAAAFAAAABwAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAfwAAAIMAAACJAAAAiwAAAJUAAACXAAAAnQAAAKMAAACnAAAArQAAALMAAAC1AAAAvwAAAMEAAADFAAAAxwAAANMAAAABAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB5AAAAfwAAAIMAAACJAAAAiwAAAI8AAACVAAAAlwAAAJ0AAACjAAAApwAAAKkAAACtAAAAswAAALUAAAC7AAAAvwAAAMEAAADFAAAAxwAAANEAAAAAAAAACgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUAypo7AAAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OU4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAANgrAADoKgAAbC0AAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAANgrAAAYKwAADCsAAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAANgrAABIKwAADCsAAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FANgrAAB4KwAAbCsAAAAAAAA8KwAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAAAAAAAICwAAB4BAAAmAQAAIAEAACEBAAAiAQAAJwEAACgBAAApAQAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAANgrAAD4KwAAPCsAAAAAAACQLAAADgAAACoBAAArAQAAAAAAALgsAAAOAAAALAEAAC0BAAAAAAAAeCwAAA4AAAAuAQAALwEAAFN0OWV4Y2VwdGlvbgAAAACwKwAAaCwAAFN0OWJhZF9hbGxvYwAAAADYKwAAgCwAAHgsAABTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAA2CsAAJwsAACQLAAAAAAAAOgsAAABAAAAMAEAADEBAABTdDExbG9naWNfZXJyb3IA2CsAANgsAAB4LAAAAAAAABwtAAABAAAAMgEAADEBAABTdDEybGVuZ3RoX2Vycm9yAAAAANgrAAAILQAA6CwAAAAAAABQLQAAAQAAADMBAAAxAQAAU3QxMm91dF9vZl9yYW5nZQAAAADYKwAAPC0AAOgsAABTdDl0eXBlX2luZm8AAAAAsCsAAFwt\");l(e,11636,\"8C8B\")}var r=new ArrayBuffer(16);var s=new Int32Array(r);var t=new Float32Array(r);var u=new Float64Array(r);function v(){throw new Error(\"abort\")}function w(x){t[2]=x}function y(z){return s[z]}function ha(q){var A=q.a;var B=A.a;var C=B.buffer;B.grow=fa;var D=new Int8Array(C);var E=new Int16Array(C);var F=new Int32Array(C);var G=new Uint8Array(C);var H=new Uint16Array(C);var I=new Uint32Array(C);var J=new Float32Array(C);var K=new Float64Array(C);var L=Math.imul;var M=Math.fround;var N=Math.abs;var O=Math.clz32;var P=Math.min;var Q=Math.max;var R=Math.floor;var S=Math.ceil;var T=Math.trunc;var U=Math.sqrt;var V=A.b;var W=A.c;var X=A.d;var Y=A.e;var Z=77808;var _=0;\n// EMSCRIPTEN_START_FUNCS\nfunction mc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!a){return 1}e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];a:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break a}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;b:{switch(o|0){case 0:e=a;f=b;g=d;a=0;d=0;j=Z+-64|0;Z=j;F[j+56>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+32>>2]=0;F[j+36>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;F[j+8>>2]=0;F[j+12>>2]=0;c:{if(!Nd(j+8|0,c)){break c}if(!Md(j+8|0,c)|(F[j+20>>2]?0:e)){break c}hc(c,0,0);if(e){s=f<<2;t=F[j+36>>2];u=F[j+48>>2];x=F[j+24>>2];l=F[j+56>>2];i=F[j+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((i|0)<=0){break d}i=i-1|0;F[j+52>>2]=i;l=G[i+u|0]|l<<8;F[j+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=F[(a<<2)+x>>2];b=(r<<3)+t|0;l=(L(F[b>>2],l>>>12|0)+a|0)-F[b+4>>2]|0;F[j+56>>2]=l;if((f|0)>0){a=0;if(!G[c+36|0]|r>>>0>32){break c}o=d+f|0;e:{if(!r){ma(g+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=F[c+32>>2];h=F[c+28>>2];q=F[c+24>>2];while(1){k=0;a=b;m=0;n=0;if((r|0)!=1){while(1){p=q+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=G[p|0];b=a+1|0;F[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<<k|m;m=0;v=q+(a>>>3|0)|0;if(v>>>0<h>>>0){m=G[v|0];b=a+1|0;F[c+32>>2]=b;m=m>>>(a&7)&1;a=b}v=k|1;k=k+2|0;m=p|m<<v;n=n+2|0;if((y|0)!=(n|0)){continue}break}}n=g+(d<<2)|0;if(z){p=q+(a>>>3|0)|0;if(p>>>0<h>>>0){p=G[p|0];b=a+1|0;F[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}m=a<<k|m}F[n>>2]=m;d=d+1|0;if((o|0)!=(d|0)){continue}break}}d=o}w=f+w|0;if(e>>>0>w>>>0){continue}break}}D[c+36|0]=0;f=F[c+20>>2];a=0;m=F[c+32>>2]+7|0;a=m>>>0<7?1:a;m=a<<29|m>>>3;b=m+F[c+16>>2]|0;a=(a>>>3|0)+f|0;F[c+16>>2]=b;F[c+20>>2]=b>>>0<m>>>0?a+1|0:a;a=1}b=F[j+36>>2];if(b){F[j+40>>2]=b;ja(b)}b=F[j+24>>2];if(b){F[j+28>>2]=b;ja(b)}b=F[j+8>>2];if(b){F[j+12>>2]=b;ja(b)}Z=j- -64|0;return a;case 1:break b;default:break a}}b=0;e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];g:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break g}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;h:{switch(o-1|0){case 8:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;i:{j:{if(!H[c+38>>1]){break j}if(!Ta(1,h+12|0,c)){break j}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break j}b=F[h>>2];a=F[h+4>>2]-b>>2;k:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break k}if(a>>>0<=i>>>0){break k}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break i}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break i}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;l:{m:{n:{o:{t=p&3;switch(t|0){case 0:break m;case 3:break o;default:break n}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break i}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break l}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break j}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;p:{if(b>>>0<=32767){qa(a,8192-(b>>>2|0)|0);break p}if((b|0)==32768){break p}F[h+20>>2]=d+32768}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;q:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break q}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break j}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>8192){break j}r:{if(a>>>0>=d>>>0){break r}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break r}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==8192}g=k}s:{if(!g|(F[e+20>>2]?0:o)){break s}d=0;k=Z-16|0;Z=k;t:{if(!Sa(1,k+8|0,c)){break t}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0<b>>>0|a>>>0<j>>>0){break t}a=i+j|0;g=b+f|0;a=g>>>0<f>>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break t}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];u:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break u}v:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break t}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break u;case 1:if(b>>>0<3){break t}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break u;default:break v}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+32768;d=a>>>0<8355840}Z=k+16|0;if(!d){break s}if(!o){m=1;break s}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){w:{if(a>>>0>32767){break w}while(1){if((b|0)<=0){break w}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<32768){continue}break}}m=a&8191;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>13|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 9:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;x:{y:{if(!H[c+38>>1]){break y}if(!Ta(1,h+12|0,c)){break y}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break y}b=F[h>>2];a=F[h+4>>2]-b>>2;z:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break z}if(a>>>0<=i>>>0){break z}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break x}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break x}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;A:{B:{C:{D:{e=p&3;switch(e|0){case 0:break B;case 3:break D;default:break C}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break x}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break A}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break y}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;E:{if(b>>>0<=131071){qa(a,32768-(b>>>2|0)|0);break E}if((b|0)==131072){break E}F[h+20>>2]=d+131072}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;F:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break F}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break y}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>32768){break y}G:{if(a>>>0>=d>>>0){break G}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break G}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==32768}e=k}H:{if(!e|(F[g+20>>2]?0:o)){break H}d=0;f=Z-16|0;Z=f;I:{if(!Sa(1,f+8|0,c)){break I}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0<a>>>0|e>>>0<j>>>0){break I}e=i+j|0;k=a+b|0;e=k>>>0<b>>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break I}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];J:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break J}K:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break I}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break J;case 1:if(a>>>0<3){break I}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break J;default:break K}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+131072;d=a>>>0<33423360}Z=f+16|0;if(!d){break H}if(!o){m=1;break H}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){L:{if(a>>>0>131071){break L}while(1){if((b|0)<=0){break L}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<131072){continue}break}}m=a&32767;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>15|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 10:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;M:{N:{if(!H[c+38>>1]){break N}if(!Ta(1,h+12|0,c)){break N}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break N}b=F[h>>2];a=F[h+4>>2]-b>>2;O:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break O}if(a>>>0<=i>>>0){break O}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break M}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break M}t=F[c>>2];p=G[t+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;P:{Q:{R:{S:{u=p&3;switch(u|0){case 0:break Q;case 3:break S;default:break R}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break M}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break P}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break N}i=G[f+t|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=i<<(l<<3|6)|a;l=l+1|0;if((u|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;T:{if(b>>>0<=262143){qa(a,65536-(b>>>2|0)|0);break T}if((b|0)==262144){break T}F[h+20>>2]=d+262144}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;U:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break U}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break N}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>65536){break N}V:{if(a>>>0>=d>>>0){break V}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break V}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==65536}e=k}W:{if(!e|(F[g+20>>2]?0:o)){break W}d=0;e=Z-16|0;Z=e;X:{if(!Sa(1,e+8|0,c)){break X}a=F[c+8>>2];f=F[c+16>>2];k=a-f|0;j=F[e+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[e+8>>2];if((j|0)==(a|0)&k>>>0<b>>>0|a>>>0<j>>>0){break X}a=i+j|0;k=b+f|0;a=k>>>0<f>>>0?a+1|0:a;F[c+16>>2]=k;F[c+20>>2]=a;if((b|0)<=0){break X}a=f+F[c>>2]|0;F[g+48>>2]=a;c=b-1|0;f=c+a|0;k=G[f|0];Y:{if(k>>>0<=63){F[g+52>>2]=c;a=G[f|0]&63;break Y}Z:{switch((k>>>6|0)-1|0){case 0:if(b>>>0<2){break X}b=b-2|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Y;case 1:if(b>>>0<3){break X}b=b-3|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Y;default:break Z}}b=b-4|0;F[g+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+262144;d=a>>>0<66846720}Z=e+16|0;if(!d){break W}if(!o){m=1;break W}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){_:{if(a>>>0>262143){break _}while(1){if((b|0)<=0){break _}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<262144){continue}break}}m=a&65535;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>16|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 11:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;$:{aa:{if(!H[c+38>>1]){break aa}if(!Ta(1,h+12|0,c)){break aa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break aa}b=F[h>>2];a=F[h+4>>2]-b>>2;ba:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break ba}if(a>>>0<=i>>>0){break ba}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break $}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break $}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;ca:{da:{ea:{fa:{e=p&3;switch(e|0){case 0:break da;case 3:break fa;default:break ea}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break $}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ca}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break aa}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;ga:{if(b>>>0<=1048575){qa(a,262144-(b>>>2|0)|0);break ga}if((b|0)==1048576){break ga}F[h+20>>2]=d- -1048576}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;ha:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break ha}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break aa}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>262144){break aa}ia:{if(a>>>0>=d>>>0){break ia}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break ia}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==262144}e=k}ja:{if(!e|(F[g+20>>2]?0:o)){break ja}d=0;f=Z-16|0;Z=f;ka:{if(!Sa(1,f+8|0,c)){break ka}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0<a>>>0|e>>>0<j>>>0){break ka}e=i+j|0;k=a+b|0;e=k>>>0<b>>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break ka}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];la:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break la}ma:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break ka}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break la;case 1:if(a>>>0<3){break ka}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break la;default:break ma}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a- -1048576;d=a>>>0<267386880}Z=f+16|0;if(!d){break ja}if(!o){m=1;break ja}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){na:{if(a>>>0>1048575){break na}while(1){if((b|0)<=0){break na}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<1048576){continue}break}}m=a&262143;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>18|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 12:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;oa:{pa:{if(!H[c+38>>1]){break pa}if(!Ta(1,h+12|0,c)){break pa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break pa}b=F[h>>2];a=F[h+4>>2]-b>>2;qa:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break qa}if(a>>>0<=i>>>0){break qa}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break oa}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break oa}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;ra:{sa:{ta:{ua:{t=p&3;switch(t|0){case 0:break sa;case 3:break ua;default:break ta}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break oa}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ra}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break pa}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;va:{if(b>>>0<=2097151){qa(a,524288-(b>>>2|0)|0);break va}if((b|0)==2097152){break va}F[h+20>>2]=d+2097152}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;wa:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break wa}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break pa}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>524288){break pa}xa:{if(a>>>0>=d>>>0){break xa}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break xa}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==524288}g=k}ya:{if(!g|(F[e+20>>2]?0:o)){break ya}d=0;k=Z-16|0;Z=k;za:{if(!Sa(1,k+8|0,c)){break za}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0<b>>>0|a>>>0<j>>>0){break za}a=i+j|0;g=b+f|0;a=g>>>0<f>>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break za}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];Aa:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break Aa}Ba:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break za}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Aa;case 1:if(b>>>0<3){break za}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Aa;default:break Ba}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+2097152;d=a>>>0<534773760}Z=k+16|0;if(!d){break ya}if(!o){m=1;break ya}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){Ca:{if(a>>>0>2097151){break Ca}while(1){if((b|0)<=0){break Ca}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<2097152){continue}break}}m=a&524287;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>19|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 17:b=Ld(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=Z+-64|0;Z=b;F[b+56>>2]=0;F[b+48>>2]=0;F[b+52>>2]=0;F[b+40>>2]=0;F[b+44>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b+12>>2]=0;Da:{if(!Nd(b+8|0,c)|(F[b+20>>2]?0:a)){break Da}if(!Md(b+8|0,c)){break Da}if(!a){f=1;break Da}m=F[b+52>>2];c=F[b+56>>2];e=F[b+36>>2];g=F[b+48>>2];o=F[b+24>>2];while(1){Ea:{if(c>>>0>16383){break Ea}while(1){if((m|0)<=0){break Ea}m=m-1|0;F[b+52>>2]=m;c=G[g+m|0]|c<<8;F[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;j=F[o+(f<<2)>>2];r=e+(j<<3)|0;c=(L(F[r>>2],c>>>12|0)+f|0)-F[r+4>>2]|0;F[b+56>>2]=c;F[(k<<2)+d>>2]=j;f=1;k=k+1|0;if((k|0)!=(a|0)){continue}break}}a=F[b+36>>2];if(a){F[b+40>>2]=a;ja(a)}a=F[b+24>>2];if(a){F[b+28>>2]=a;ja(a)}a=F[b+8>>2];if(a){F[b+12>>2]=a;ja(a)}Z=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Ld(a,c,d)}f=b}return f}function ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,I=0,J=0,K=0,M=0,N=0,O=0;u=Z+-64|0;Z=u;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){f=F[b>>2];ja(b);b=f;if(b){continue}break}}b=0;F[a+144>>2]=0;f=F[a+140>>2];a:{if(!f){break a}if(f>>>0>=4){c=f&-4;while(1){e=b<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;b=b+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}f=f&3;if(!f){break a}d=0;while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}F[a+148>>2]=0}b:{c:{if(!Da(1,u+60|0,F[F[a+4>>2]+32>>2])){break c}F[a+156>>2]=F[u+60>>2];if(!Da(1,u+56|0,F[F[a+4>>2]+32>>2])){break c}e=F[u+56>>2];if(e>>>0>1431655765){break c}b=F[a+156>>2];d=L(e,3);if(b>>>0>d>>>0){break c}f=b>>31;f=ki(b-1|0,f-!b|0,b,f);b=_;c=b>>>1|0;b=(b&1)<<31|f>>>1;if(!c&b>>>0<d>>>1>>>0){break c}b=F[F[a+4>>2]+32>>2];c=F[b+8>>2];k=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];if((k|0)<=(d|0)&f>>>0>=c>>>0|(d|0)>(k|0)){break c}k=G[f+F[b>>2]|0];f=f+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;if(!Da(1,u+52|0,b)){break c}q=F[u+52>>2];if(q>>>0>e>>>0|e>>>0>q+((q>>>0)/3|0)>>>0){break c}if(!Da(1,u+48|0,F[F[a+4>>2]+32>>2])){break c}d=F[u+48>>2];if(d>>>0>q>>>0){break c}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;Dd(A);Cd(A,k);if(!_c(F[a+8>>2],e,d+F[a+156>>2]|0)){break c}b=F[a+156>>2];D[u+8|0]=1;Ea(a+120|0,b+d|0,u+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break c}c=a+232|0;b=c;F[b+144>>2]=a;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f>>2]+F[f+16>>2]|0;e=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];e=F[e+8>>2]-F[e+16>>2]|0;N=b,O=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[N+38>>1]=O;F[b>>2]=f;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=e;F[b+12>>2]=0;N=b,O=$[F[F[a>>2]+36>>2]](a)|0,F[N+148>>2]=O;F[a+372>>2]=k;F[a+384>>2]=d+F[a+156>>2];J=Ja(u+8|0);k=J;f=0;j=Z-16|0;Z=j;d:{if(!Aa(b+80|0,b)){break d}if(!yd(c)){break d}b=F[c+4>>2];F[k>>2]=F[c>>2];F[k+4>>2]=b;b=F[c+36>>2];F[k+32>>2]=F[c+32>>2];F[k+36>>2]=b;b=F[c+28>>2];F[k+24>>2]=F[c+24>>2];F[k+28>>2]=b;b=F[c+20>>2];F[k+16>>2]=F[c+16>>2];F[k+20>>2]=b;b=F[c+12>>2];F[k+8>>2]=F[c+8>>2];F[k+12>>2]=b;F[c+176>>2]=2;F[c+180>>2]=7;b=F[c+152>>2];if((b|0)<0){break d}F[j+12>>2]=0;f=2;h=F[c+156>>2];e=F[c+160>>2]-h>>2;e:{if(e>>>0<b>>>0){Fa(c+156|0,b-e|0,j+12|0);f=F[c+176>>2];d=F[c+180>>2];break e}d=7;if(b>>>0>=e>>>0){break e}F[c+160>>2]=h+(b<<2)}e=c+184|0;d=(d-f|0)+1|0;b=F[c+188>>2];f=F[c+184>>2];s=(b-f|0)/12|0;f:{if(d>>>0>s>>>0){h=0;b=d-s|0;o=F[e+8>>2];f=F[e+4>>2];g:{if(b>>>0<=(o-f|0)/12>>>0){if(b){b=L(b,12)-12|0;b=(b-((b>>>0)%12|0)|0)+12|0;f=ma(f,0,b)+b|0}F[e+4>>2]=f;break g}h:{i:{j:{s=F[e>>2];g=(f-s|0)/12|0;d=g+b|0;if(d>>>0<357913942){o=(o-s|0)/12|0;i=o<<1;o=o>>>0>=178956970?357913941:d>>>0<i>>>0?i:d;if(o){if(o>>>0>=357913942){break j}h=ka(L(o,12))}d=L(g,12)+h|0;b=L(b,12)-12|0;g=(b-((b>>>0)%12|0)|0)+12|0;b=ma(d,0,g);g=b+g|0;h=L(o,12)+h|0;if((f|0)==(s|0)){break i}while(1){d=d-12|0;f=f-12|0;F[d>>2]=F[f>>2];F[d+4>>2]=F[f+4>>2];F[d+8>>2]=F[f+8>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((f|0)!=(s|0)){continue}break}F[e+8>>2]=h;b=F[e+4>>2];F[e+4>>2]=g;f=F[e>>2];F[e>>2]=d;if((b|0)==(f|0)){break h}while(1){d=b-12|0;h=F[d>>2];if(h){F[b-8>>2]=h;ja(h)}b=d;if((f|0)!=(b|0)){continue}break}break h}break b}oa();v()}F[e+8>>2]=h;F[e+4>>2]=g;F[e>>2]=b}if(f){ja(f)}}d=F[c+188>>2];break f}if(d>>>0>=s>>>0){d=b;break f}d=f+L(d,12)|0;if((d|0)!=(b|0)){while(1){f=b-12|0;h=F[f>>2];if(h){F[b-8>>2]=h;ja(h)}b=f;if((d|0)!=(b|0)){continue}break}}F[c+188>>2]=d}s=c+196|0;f=F[c+184>>2];b=(d-f|0)/12|0;o=F[c+196>>2];h=F[c+200>>2]-o>>2;k:{if(b>>>0>h>>>0){qa(s,b-h|0);f=F[c+184>>2];d=F[c+188>>2];break k}if(b>>>0>=h>>>0){break k}F[c+200>>2]=o+(b<<2)}if((d|0)==(f|0)){f=1;break d}b=0;while(1){l:{if(!Da(1,j+8|0,k)){break l}f=F[j+8>>2];d=F[c+148>>2];if(f>>>0>(F[d+4>>2]-F[d>>2]>>2>>>0)/3>>>0){break l}if(f){g=L(b,12);h=g+F[e>>2]|0;d=F[h>>2];o=F[h+4>>2]-d>>2;m:{if(o>>>0<f>>>0){qa(h,f-o|0);d=F[g+F[e>>2]>>2];break m}if(f>>>0>=o>>>0){break m}F[h+4>>2]=(f<<2)+d}mc(f,1,k,d);F[F[s>>2]+(b<<2)>>2]=f}f=1;b=b+1|0;if(b>>>0<(F[c+188>>2]-F[c+184>>2]|0)/12>>>0){continue}break d}break}f=0}Z=j+16|0;n:{if(!f){break n}e=0;c=0;d=0;b=0;k=0;f=0;s=0;o=0;l=Z-96|0;Z=l;F[l+72>>2]=0;F[l+64>>2]=0;F[l+68>>2]=0;F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+56>>2]=1065353216;F[l+32>>2]=0;F[l+24>>2]=0;F[l+28>>2]=0;j=a;C=F[a+124>>2];o:{p:{q:{r:{s:{if((q|0)<=0){break s}I=j+232|0;K=F[j+216>>2]!=F[j+220>>2];B=1;t:{while(1){h=s;s=h+1|0;u:{v:{w:{g=F[j+404>>2];if((g|0)==-1){F[j+400>>2]=7;break w}a=-1;i=F[j+428>>2]+(g<<2)|0;m=F[i>>2];g=m-1|0;F[i>>2]=g;if((m|0)<=0){break r}g=F[F[F[j+416>>2]+L(F[j+404>>2],12)>>2]+(g<<2)>>2];if(g>>>0>4){break r}i=F[(g<<2)+8896>>2];F[j+400>>2]=i;if(!g){if((b|0)==(c|0)){break r}i=-1;m=F[j+8>>2];B=F[m+24>>2];t=c-4|0;e=F[t>>2];g=-1;x:{if((e|0)==-1){break x}p=e+1|0;p=(p>>>0)%3|0?p:e-2|0;g=-1;if((p|0)==-1){break x}g=F[F[m>>2]+(p<<2)>>2]}n=F[B+(g<<2)>>2];if((n|0)!=-1){i=n+1|0;i=(i>>>0)%3|0?i:n-2|0}if((e|0)!=-1&F[F[m+12>>2]+(e<<2)>>2]!=-1|(e|0)==(i|0)){break r}n=F[m+12>>2];if((i|0)!=-1&F[n+(i<<2)>>2]!=-1){break r}p=L(h,3);h=p+1|0;F[n+(e<<2)>>2]=h;x=h<<2;F[x+n>>2]=e;r=p+2|0;F[n+(i<<2)>>2]=r;w=r<<2;F[w+n>>2]=i;n=-1;h=-1;y:{if((e|0)==-1){break y}z:{if((e>>>0)%3|0){e=e-1|0;break z}e=e+2|0;h=-1;if((e|0)==-1){break y}}h=F[F[m>>2]+(e<<2)>>2]}e=h;A:{if((i|0)==-1){break A}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break A}n=F[F[m>>2]+(h<<2)>>2]}if((e|0)==(g|0)|(g|0)==(n|0)){break r}a=F[m>>2];F[a+(p<<2)>>2]=g;F[a+x>>2]=n;F[a+w>>2]=e;if((e|0)!=-1){F[B+(e<<2)>>2]=r}a=F[j+120>>2]+(g>>>3&536870908)|0;e=F[a>>2];N=a,O=oi(g)&e,F[N>>2]=O;F[t>>2]=p;e=b;kc(I,p);break u}B:{switch(i-1|0){case 2:case 4:if((b|0)==(c|0)){break r}r=c-4|0;e=F[r>>2];i=F[j+8>>2];m=F[i+12>>2];if((e|0)!=-1&F[m+(e<<2)>>2]!=-1){break r}c=L(h,3);n=(g|0)==3;g=c+(n?2:1)|0;t=g<<2;F[t+m>>2]=e;F[m+(e<<2)>>2]=g;Ma(i+24|0,8324);p=F[j+8>>2];m=F[p+24>>2];if(F[p+28>>2]-m>>2>(C|0)){break r}a=F[p>>2];w=a+t|0;p=F[i+28>>2];i=F[i+24>>2];t=(p-i>>2)-1|0;F[w>>2]=t;if((i|0)!=(p|0)){F[m+(t<<2)>>2]=g}g=n?c:c+2|0;w=a+(c+n<<2)|0;C:{if((e|0)==-1){F[a+(g<<2)>>2]=-1;i=-1;break C}D:{E:{F:{if((e>>>0)%3|0){i=e-1|0;break F}i=e+2|0;if((i|0)==-1){break E}}i=F[a+(i<<2)>>2];F[a+(g<<2)>>2]=i;if((i|0)==-1){break D}F[m+(i<<2)>>2]=g;break D}F[a+(g<<2)>>2]=-1}i=e+1|0;e=(i>>>0)%3|0?i:e-2|0;i=-1;if((e|0)==-1){break C}i=F[a+(e<<2)>>2]}F[w>>2]=i;F[r>>2]=c;e=b;break v;case 6:break w;case 0:break B;default:break r}}if((e|0)==(c|0)){break r}f=c-4|0;m=F[f>>2];F[l+68>>2]=f;n=F[l+44>>2];G:{if(!n){break G}g=F[l+40>>2];p=ni(n)>>>0>1;a=h&n+2147483647;H:{if(!p){break H}a=h;if(a>>>0<n>>>0){break H}a=(h>>>0)%(n>>>0)|0}i=a;a=F[g+(i<<2)>>2];if(!a){break G}a=F[a>>2];if(!a){break G}I:{if(!p){g=n-1|0;while(1){n=F[a+4>>2];J:{if((n|0)!=(h|0)){if((i|0)==(g&n)){break J}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}while(1){g=F[a+4>>2];K:{if((g|0)!=(h|0)){if(g>>>0>=n>>>0){g=(g>>>0)%(n>>>0)|0}if((g|0)==(i|0)){break K}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}if((f|0)!=(k|0)){F[f>>2]=F[a+12>>2];F[l+68>>2]=c;f=c;break G}b=k-e|0;c=b>>2;d=c+1|0;if(d>>>0>=1073741824){break b}f=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break p}f=ka(d<<2)}else{f=0}b=f+(c<<2)|0;F[b>>2]=F[a+12>>2];d=f+(d<<2)|0;f=b+4|0;if((e|0)!=(k|0)){while(1){b=b-4|0;k=k-4|0;F[b>>2]=F[k>>2];if((e|0)!=(k|0)){continue}break}}F[l+72>>2]=d;F[l+68>>2]=f;F[l+64>>2]=b;if(e){ja(e)}e=b;k=d}if((e|0)==(f|0)){break t}x=f-4|0;a=F[x>>2];if((a|0)==(m|0)){break t}i=(a|0)==-1;g=F[j+8>>2];if(!i&F[F[g+12>>2]+(a<<2)>>2]!=-1){break t}n=F[g+12>>2];if((m|0)!=-1&F[n+(m<<2)>>2]!=-1){break t}p=L(h,3);t=p+2|0;F[n+(a<<2)>>2]=t;c=t<<2;F[c+n>>2]=a;h=p+1|0;F[n+(m<<2)>>2]=h;w=h<<2;F[w+n>>2]=m;L:{M:{N:{if(!i){if((a>>>0)%3|0){h=a-1|0;break N}h=a+2|0;if((h|0)!=-1){break N}i=F[g>>2];h=-1;break M}h=-1;i=F[g>>2];F[i+(p<<2)>>2]=-1;r=-1;break L}i=F[g>>2];h=F[i+(h<<2)>>2]}F[(p<<2)+i>>2]=h;r=a+1|0;a=(r>>>0)%3|0?r:a-2|0;r=-1;if((a|0)==-1){break L}r=F[(a<<2)+i>>2]}F[i+w>>2]=r;O:{if((m|0)==-1){F[c+i>>2]=-1;r=-1;c=-1;break O}P:{Q:{R:{if((m>>>0)%3|0){a=m-1|0;break R}a=m+2|0;if((a|0)==-1){break Q}}a=F[(a<<2)+i>>2];F[c+i>>2]=a;if((a|0)==-1){break P}F[F[g+24>>2]+(a<<2)>>2]=t;break P}F[c+i>>2]=-1}r=-1;a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;c=-1;if((a|0)==-1){break O}r=F[(a<<2)+i>>2];c=a}a=F[j+388>>2];t=h<<2;m=a+t|0;w=a;a=r<<2;F[m>>2]=F[m>>2]+F[w+a>>2];w=a;a=F[g+24>>2];m=w+a|0;if((h|0)!=-1){F[a+t>>2]=F[m>>2]}a=c;while(1){if((a|0)!=-1){F[(a<<2)+i>>2]=h;t=a+1|0;a=(t>>>0)%3|0?t:a-2|0;g=-1;S:{if((a|0)==-1){break S}a=F[n+(a<<2)>>2];g=-1;if((a|0)==-1){break S}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((c|0)!=(a|0)){continue}break t}break}F[m>>2]=-1;T:{U:{if(K){break U}if((y|0)!=(z|0)){F[z>>2]=r;z=z+4|0;F[l+28>>2]=z;break U}a=y-o|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break T}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=1073741824){break p}c=ka(h<<2)}else{c=0}a=c+(g<<2)|0;F[a>>2]=r;z=a+4|0;if((o|0)!=(y|0)){while(1){a=a-4|0;y=y-4|0;F[a>>2]=F[y>>2];if((o|0)!=(y|0)){continue}break}}y=c+(h<<2)|0;F[l+32>>2]=y;F[l+28>>2]=z;F[l+24>>2]=a;if(o){ja(o)}o=a}F[x>>2]=p;c=f;kc(I,p);break u}break b}g=F[j+8>>2];Ma(g+24|0,8324);a=-1;k=F[j+8>>2];f=L(h,3);i=F[g+28>>2];m=F[g+24>>2];n=i-m|0;g=n>>2;p=g-1|0;F[F[k>>2]+(f<<2)>>2]=p;Ma(k+24|0,8324);r=f+1|0;F[F[k>>2]+(r<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;k=F[j+8>>2];Ma(k+24|0,8324);t=f+2|0;F[F[k>>2]+(t<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;x=F[j+8>>2];k=F[x+24>>2];if(F[x+28>>2]-k>>2>(C|0)){break r}V:{W:{if((i|0)!=(m|0)){F[k+(p<<2)>>2]=f;a=0;if((n|0)==-4){break W}}F[k+(g<<2)>>2]=r;a=g+1|0;if((a|0)==-1){break V}}F[k+(a<<2)>>2]=t}if((d|0)!=(c|0)){F[c>>2]=f;f=c+4|0;F[l+68>>2]=f;k=d;break v}a=d-b|0;k=a>>2;e=k+1|0;if(e>>>0>=1073741824){break b}c=a>>>1|0;a=a>>>0>=2147483644?1073741823:e>>>0<c>>>0?c:e;if(a){if(a>>>0>=1073741824){break p}c=ka(a<<2)}else{c=0}e=c+(k<<2)|0;F[e>>2]=f;k=c+(a<<2)|0;f=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((b|0)!=(d|0)){continue}break}}F[l+72>>2]=k;F[l+68>>2]=f;F[l+64>>2]=e;if(b){ja(b)}d=k;b=e}kc(I,F[f-4>>2]);a=F[j+40>>2];X:{if((a|0)==F[j+36>>2]){break X}c=a-12|0;g=F[c+4>>2];h=q+(h^-1)|0;if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}m=f-4|0;a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Y:{if(i&1){c=-1;if((a|0)==-1){break Y}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Y}c=-1;if((a|0)==-1){break Y}c=a-1|0;if((a>>>0)%3|0){break Y}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)==F[j+36>>2]){break X}while(1){c=a-12|0;g=F[c+4>>2];if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Z:{if(i&1){c=-1;if((a|0)==-1){break Z}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Z}c=-1;if((a|0)==-1){break Z}c=a-1|0;if((a>>>0)%3|0){break Z}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)!=F[j+36>>2]){continue}break}}c=f}B=(q|0)>(s|0);if((q|0)!=(s|0)){continue}break}s=q;break s}a=-1;if(B){break r}}a=-1;c=F[j+8>>2];if(F[c+28>>2]-F[c+24>>2]>>2>(C|0)){break r}if((b|0)!=(f|0)){m=j+72|0;k=j+60|0;n=j+312|0;while(1){f=f-4|0;q=F[f>>2];F[l+68>>2]=f;_:{if(wa(n)){g=F[j+8>>2];o=F[g>>2];if(((F[g+4>>2]-o>>2>>>0)/3|0)<=(s|0)){a=-1;break r}b=-1;i=F[g+24>>2];a=-1;$:{if((q|0)==-1){break $}e=q+1|0;e=(e>>>0)%3|0?e:q-2|0;a=-1;if((e|0)==-1){break $}a=F[o+(e<<2)>>2]}e=a;a=F[i+(e<<2)>>2];aa:{if((a|0)==-1){h=1;c=-1;break aa}h=1;c=-1;d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break aa}h=0;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){c=F[o+(b<<2)>>2]}b=a}a=-1;d=-1;i=F[i+(c<<2)>>2];if((i|0)!=-1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0}if((b|0)==(q|0)|(d|0)==(q|0)|((q|0)!=-1&F[F[g+12>>2]+(q<<2)>>2]!=-1|(b|0)==(d|0))){break r}if(!h&F[F[g+12>>2]+(b<<2)>>2]!=-1){break r}h=-1;g=F[g+12>>2];i=-1;ba:{if((d|0)==-1){break ba}if(F[g+(d<<2)>>2]!=-1){break r}a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;i=-1;if((a|0)==-1){break ba}i=F[o+(a<<2)>>2]}a=L(s,3);F[l>>2]=a;F[g+(a<<2)>>2]=q;F[g+(q<<2)>>2]=a;a=F[l>>2]+1|0;F[g+(a<<2)>>2]=b;F[g+(b<<2)>>2]=a;a=F[l>>2]+2|0;F[g+(a<<2)>>2]=d;F[g+(d<<2)>>2]=a;a=F[l>>2];F[o+(a<<2)>>2]=c;b=a+1|0;d=o+(b<<2)|0;F[d>>2]=i;q=a+2|0;o=o+(q<<2)|0;F[o>>2]=e;a=F[j+120>>2];e=b?c:-1;c=a+(e>>>3&536870908)|0;g=F[c>>2];N=c,O=oi(e)&g,F[N>>2]=O;h=(b|0)!=-1?F[d>>2]:h;b=a+(h>>>3&536870908)|0;d=F[b>>2];N=b,O=oi(h)&d,F[N>>2]=O;d=-1;d=(q|0)!=-1?F[o>>2]:d;a=a+(d>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(d)&b,F[N>>2]=O;D[l+88|0]=1;wd(k,l+88|0);Ma(m,l);s=s+1|0;b=F[l+64>>2];break _}d=F[j+64>>2];a=F[j+68>>2];if((d|0)==a<<5){if((d+1|0)<0){break b}if(d>>>0<=1073741822){a=a<<6;d=(d&-32)+32|0;a=a>>>0>d>>>0?a:d}else{a=2147483647}$a(k,a);d=F[j+64>>2]}F[j+64>>2]=d+1;a=F[j+60>>2]+(d>>>3&536870908)|0;e=F[a>>2];N=a,O=oi(d)&e,F[N>>2]=O;d=F[j+76>>2];if((d|0)!=F[j+80>>2]){F[d>>2]=q;F[j+76>>2]=d+4;break _}c=F[m>>2];a=d-c|0;o=a>>2;e=o+1|0;if(e>>>0>=1073741824){break b}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(h){if(h>>>0>=1073741824){break p}a=ka(h<<2)}else{a=0}e=a+(o<<2)|0;F[e>>2]=q;q=e+4|0;if((d|0)!=(c|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((d|0)!=(c|0)){continue}break}}F[j+80>>2]=a+(h<<2);F[j+76>>2]=q;F[j+72>>2]=e;if(!c){break _}ja(c)}if((b|0)!=(f|0)){continue}break}c=F[j+8>>2]}a=-1;if(((F[c+4>>2]-F[c>>2]>>2>>>0)/3|0)!=(s|0)){break r}a=F[c+28>>2]-F[c+24>>2]>>2;f=F[l+24>>2];h=F[l+28>>2];if((f|0)==(h|0)){break q}while(1){b=F[f>>2];k=F[c+24>>2];d=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){while(1){d=a-2|0;a=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){continue}break}}if(b>>>0<=d>>>0){F[l>>2]=c;e=F[e>>2];D[l+12|0]=1;F[l+8>>2]=e;F[l+4>>2]=e;if((e|0)!=-1){while(1){e=F[F[j+8>>2]>>2]+(e<<2)|0;if(F[e>>2]!=(d|0)){a=-1;break r}F[e>>2]=b;nc(l);e=F[l+8>>2];if((e|0)!=-1){continue}break}c=F[j+8>>2]}k=F[c+24>>2];e=k+(d<<2)|0;if((b|0)!=-1){F[k+(b<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<<b;k=F[j+120>>2];b=k+(b>>>3&536870908)|0;k=k+(d>>>3&536870908)|0;d=1<<d;if(F[k>>2]&d){e=e|F[b>>2]}else{e=F[b>>2]&(e^-1)}F[b>>2]=e;F[k>>2]=F[k>>2]&(d^-1);a=a-1|0}f=f+4|0;if((h|0)!=(f|0)){continue}break}}f=F[l+24>>2]}if(f){ja(f)}b=F[l+48>>2];if(b){while(1){d=F[b>>2];ja(b);b=d;if(b){continue}break}}b=F[l+40>>2];F[l+40>>2]=0;if(b){ja(b)}b=F[l+64>>2];if(b){F[l+68>>2]=b;ja(b)}Z=l+96|0;break o}oa();v()}f=a;if((a|0)==-1){break n}a=J;b=F[a+16>>2];d=b+F[a>>2]|0;b=F[a+8>>2]-b|0;a=F[F[j+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=d;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=b;F[a+12>>2]=0;ca:{if(F[j+216>>2]==F[j+220>>2]){break ca}a=F[j+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}b=0;while(1){if(Ad(j,b)){b=b+3|0;a=F[j+8>>2];if(b>>>0<F[a+4>>2]-F[a>>2]>>2>>>0){continue}break ca}break}break n}if(G[j+308|0]){D[j+308|0]=0;d=F[j+292>>2];a=0;e=F[j+304>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;b=e+F[j+288>>2]|0;a=(a>>>3|0)+d|0;F[j+288>>2]=b;F[j+292>>2]=b>>>0<e>>>0?a+1|0:a}b=F[j+216>>2];if((b|0)!=F[j+220>>2]){a=0;while(1){e=L(a,144);Zc((e+b|0)+4|0,F[j+8>>2]);d=F[A>>2];c=d+e|0;b=F[c+132>>2];c=F[c+136>>2];if((b|0)!=(c|0)){while(1){Xc((e+F[A>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((c|0)!=(b|0)){continue}break}d=F[A>>2]}if(!Yc((d+e|0)+4|0)){break n}a=a+1|0;b=F[j+216>>2];if(a>>>0<(F[j+220>>2]-b|0)/144>>>0){continue}break}}a=F[j+8>>2];Hb(j+184|0,F[a+28>>2]-F[a+24>>2]>>2);d=F[j+216>>2];if((d|0)!=F[j+220>>2]){b=0;while(1){a=L(b,144)+d|0;d=F[a+60>>2]-F[a+56>>2]>>2;c=a+104|0;a=F[j+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(c,(a|0)<(d|0)?d:a);b=b+1|0;d=F[j+216>>2];if(b>>>0<(F[j+220>>2]-d|0)/144>>>0){continue}break}}M=zd(j,f)}}Z=u- -64|0;return M|0}na();v()}function lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,I=0,J=0,K=0,M=0;t=Z+-64|0;Z=t;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}c=0;F[a+144>>2]=0;b=F[a+140>>2];a:{if(!b){break a}if(b>>>0>=4){h=b&-4;while(1){e=c<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;c=c+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}b=b&3;if(!b){break a}f=0;while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((b|0)!=(f|0)){continue}break}}F[a+148>>2]=0}b:{if(!Da(1,t+60|0,F[F[a+4>>2]+32>>2])){break b}F[a+156>>2]=F[t+60>>2];if(!Da(1,t+56|0,F[F[a+4>>2]+32>>2])){break b}e=F[t+56>>2];if(e>>>0>1431655765){break b}c=F[a+156>>2];b=L(e,3);if(c>>>0>b>>>0){break b}f=b>>>1|0;b=c>>31;h=ki(c-1|0,b-!c|0,c,b);b=_;c=b>>>1|0;b=(b&1)<<31|h>>>1;if(!c&b>>>0<f>>>0){break b}c=F[F[a+4>>2]+32>>2];h=F[c+8>>2];m=F[c+12>>2];b=F[c+20>>2];f=F[c+16>>2];if((m|0)<=(b|0)&f>>>0>=h>>>0|(b|0)>(m|0)){break b}h=G[f+F[c>>2]|0];f=f+1|0;b=f?b:b+1|0;F[c+16>>2]=f;F[c+20>>2]=b;if(!Da(1,t+52|0,c)){break b}n=F[t+52>>2];if(n>>>0>e>>>0|e>>>0>n+((n>>>0)/3|0)>>>0){break b}if(!Da(1,t+48|0,F[F[a+4>>2]+32>>2])){break b}c=F[t+48>>2];if(c>>>0>n>>>0){break b}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];y=a+216|0;Dd(y);Cd(y,h);if(!_c(F[a+8>>2],e,c+F[a+156>>2]|0)){break b}b=F[a+156>>2];D[t+8|0]=1;Ea(a+120|0,b+c|0,t+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break b}c=a+232|0;F[c+144>>2]=a;b=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];b=F[b>>2]+F[b+16>>2]|0;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f+8>>2]-F[f+16>>2]|0;K=c,M=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[K+38>>1]=M;F[c>>2]=b;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=f;F[c+12>>2]=0;F[a+372>>2]=h;C=Ja(t+8|0);h=C;m=0;d=Z-16|0;Z=d;b=F[c+4>>2];F[c+40>>2]=F[c>>2];F[c+44>>2]=b;b=F[c+36>>2];F[c+72>>2]=F[c+32>>2];F[c+76>>2]=b;f=F[c+28>>2];b=c- -64|0;F[b>>2]=F[c+24>>2];F[b+4>>2]=f;b=F[c+20>>2];F[c+56>>2]=F[c+16>>2];F[c+60>>2]=b;b=F[c+12>>2];F[c+48>>2]=F[c+8>>2];F[c+52>>2]=b;c:{d:{if(hc(c+40|0,1,d+8|0)){b=F[c+44>>2];F[c>>2]=F[c+40>>2];F[c+4>>2]=b;b=F[c+76>>2];F[c+32>>2]=F[c+72>>2];F[c+36>>2]=b;b=F[c+68>>2];F[c+24>>2]=F[c+64>>2];F[c+28>>2]=b;f=F[c+60>>2];g=f;b=F[c+56>>2];F[c+16>>2]=b;F[c+20>>2]=f;e=F[c+52>>2];f=F[c+48>>2];F[c+8>>2]=f;F[c+12>>2]=e;k=F[d+12>>2];i=e-((b>>>0>f>>>0)+g|0)|0;e=f-b|0;f=F[d+8>>2];if((k|0)==(i|0)&e>>>0>=f>>>0|i>>>0>k>>>0){break d}}break c}e=g+k|0;b=b+f|0;e=b>>>0<f>>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if(!Aa(c+80|0,c)){break c}if(!yd(c)){break c}b=F[c+4>>2];F[h>>2]=F[c>>2];F[h+4>>2]=b;b=F[c+36>>2];F[h+32>>2]=F[c+32>>2];F[h+36>>2]=b;b=F[c+28>>2];F[h+24>>2]=F[c+24>>2];F[h+28>>2]=b;b=F[c+20>>2];F[h+16>>2]=F[c+16>>2];F[h+20>>2]=b;b=F[c+12>>2];F[h+8>>2]=F[c+8>>2];F[h+12>>2]=b;m=1}Z=d+16|0;e:{if(!m){break e}b=0;c=0;f=0;m=0;j=Z-96|0;Z=j;F[j+72>>2]=0;F[j+64>>2]=0;F[j+68>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+56>>2]=1065353216;F[j+32>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;h=a;B=F[a+124>>2];f:{g:{h:{i:{j:{k:{l:{m:{if((n|0)<=0){break m}I=F[h+216>>2]!=F[h+220>>2];z=1;while(1){e=m;m=e+1|0;n:{o:{p:{q:{r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{if(!G[h+308|0]){break B}k=F[h+296>>2];d=F[h+304>>2];a=k+(d>>>3|0)|0;l=F[h+300>>2];if(a>>>0>=l>>>0){break B}g=G[a|0];a=d+1|0;F[h+304>>2]=a;p=g>>>(d&7)&1;if(!p){break B}i=0;g=a>>>3|0;r=k+g|0;C:{if(r>>>0>=l>>>0){d=a;a=0;break C}r=G[r|0];d=d+2|0;F[h+304>>2]=d;g=d>>>3|0;a=r>>>(a&7)&1}g=g+k|0;if(g>>>0<l>>>0){g=G[g|0];F[h+304>>2]=d+1;i=g>>>(d&7)<<1&2}g=-1;i=p|(a|i)<<1;switch(i-1|0){case 6:break y;case 0:break z;case 2:case 4:break A;default:break l}}if((c|0)==(f|0)){g=-1;break l}d=-1;i=F[h+8>>2];z=F[i+24>>2];r=c-4|0;b=F[r>>2];a=-1;D:{if((b|0)==-1){break D}k=b+1|0;k=(k>>>0)%3|0?k:b-2|0;a=-1;if((k|0)==-1){break D}a=F[F[i>>2]+(k<<2)>>2]}g=F[z+(a<<2)>>2];if((g|0)!=-1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((b|0)==(d|0)){g=-1;break l}if((b|0)!=-1){g=-1;if(F[F[i+12>>2]+(b<<2)>>2]!=-1){break l}}k=F[i+12>>2];if((d|0)!=-1){g=-1;if(F[k+(d<<2)>>2]!=-1){break l}}l=L(e,3);e=l+1|0;F[k+(b<<2)>>2]=e;s=e<<2;F[s+k>>2]=b;p=l+2|0;F[k+(d<<2)>>2]=p;u=p<<2;F[u+k>>2]=d;k=-1;e=-1;E:{if((b|0)==-1){break E}F:{if((b>>>0)%3|0){b=b-1|0;break F}b=b+2|0;e=-1;if((b|0)==-1){break E}}e=F[F[i>>2]+(b<<2)>>2]}b=e;G:{if((d|0)==-1){break G}e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)==-1){break G}k=F[F[i>>2]+(e<<2)>>2]}g=-1;if((a|0)==(b|0)|(a|0)==(k|0)){break l}e=F[i>>2];F[e+(l<<2)>>2]=a;F[e+s>>2]=k;F[e+u>>2]=b;if((b|0)!=-1){F[z+(b<<2)>>2]=p}b=F[h+120>>2]+(a>>>3&536870908)|0;e=F[b>>2];K=b,M=oi(a)&e,F[K>>2]=M;F[r>>2]=l;b=f;break n}if((c|0)==(f|0)){break l}r=c-4|0;b=F[r>>2];a=F[h+8>>2];d=F[a+12>>2];if((b|0)!=-1&F[d+(b<<2)>>2]!=-1){break l}l=(i|0)==5;i=L(e,3);p=(l?2:1)+i|0;s=p<<2;F[s+d>>2]=b;F[d+(b<<2)>>2]=p;Ma(a+24|0,8324);d=F[h+8>>2];k=F[d+24>>2];if(F[d+28>>2]-k>>2>(B|0)){break l}d=F[d>>2];u=d+s|0;g=F[a+28>>2];a=F[a+24>>2];s=(g-a>>2)-1|0;F[u>>2]=s;if((a|0)!=(g|0)){F[k+(s<<2)>>2]=p}g=l?i:i+2|0;l=d+(i+l<<2)|0;H:{if((b|0)==-1){F[d+(g<<2)>>2]=-1;a=-1;break H}I:{J:{K:{if((b>>>0)%3|0){a=b-1|0;break K}a=b+2|0;if((a|0)==-1){break J}}a=F[d+(a<<2)>>2];F[d+(g<<2)>>2]=a;if((a|0)==-1){break I}F[k+(a<<2)>>2]=g;break I}F[d+(g<<2)>>2]=-1}g=b+1|0;b=(g>>>0)%3|0?g:b-2|0;a=-1;if((b|0)==-1){break H}a=F[d+(b<<2)>>2]}F[l>>2]=a;F[r>>2]=i;b=f;break t}if((b|0)==(c|0)){break l}a=c-4|0;k=F[a>>2];F[j+68>>2]=a;l=F[j+44>>2];L:{if(!l){c=a;break L}g=F[j+40>>2];p=ni(l)>>>0>1;d=e&l+2147483647;M:{if(!p){break M}d=e;if(d>>>0<l>>>0){break M}d=(e>>>0)%(l>>>0)|0}i=d;d=F[g+(i<<2)>>2];if(!d){c=a;break L}d=F[d>>2];if(!d){c=a;break L}N:{if(!p){g=l-1|0;while(1){l=F[d+4>>2];O:{if((l|0)!=(e|0)){if((i|0)==(g&l)){break O}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}while(1){g=F[d+4>>2];P:{if((g|0)!=(e|0)){if(g>>>0>=l>>>0){g=(g>>>0)%(l>>>0)|0}if((g|0)==(i|0)){break P}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}if((a|0)!=(q|0)){F[a>>2]=F[d+12>>2];F[j+68>>2]=c;break L}a=q-b|0;f=a>>2;c=f+1|0;if(c>>>0>=1073741824){break x}g=a>>>1|0;g=a>>>0>=2147483644?1073741823:c>>>0<g>>>0?g:c;if(g){if(g>>>0>=1073741824){break j}a=ka(g<<2)}else{a=0}f=a+(f<<2)|0;F[f>>2]=F[d+12>>2];c=f+4|0;if((b|0)!=(q|0)){while(1){f=f-4|0;q=q-4|0;F[f>>2]=F[q>>2];if((b|0)!=(q|0)){continue}break}}q=a+(g<<2)|0;F[j+72>>2]=q;F[j+68>>2]=c;F[j+64>>2]=f;if(b){ja(b)}}if((c|0)==(f|0)){break p}s=c-4|0;b=F[s>>2];if((b|0)==(k|0)){break p}a=(b|0)==-1;g=F[h+8>>2];if(!a&F[F[g+12>>2]+(b<<2)>>2]!=-1){break p}l=F[g+12>>2];if((k|0)!=-1&F[l+(k<<2)>>2]!=-1){break p}p=L(e,3);r=p+2|0;F[l+(b<<2)>>2]=r;e=r<<2;F[e+l>>2]=b;d=p+1|0;F[l+(k<<2)>>2]=d;u=d<<2;F[u+l>>2]=k;if(a){break w}if((b>>>0)%3|0){d=b-1|0;break s}d=b+2|0;if((d|0)!=-1){break s}a=F[g>>2];d=-1;break r}i=F[h+8>>2];Ma(i+24|0,8324);d=F[h+8>>2];a=L(e,3);k=F[i+28>>2];l=F[i+24>>2];p=k-l|0;i=p>>2;r=i-1|0;F[F[d>>2]+(a<<2)>>2]=r;Ma(d+24|0,8324);s=a+1|0;F[F[d>>2]+(s<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;d=F[h+8>>2];Ma(d+24|0,8324);u=a+2|0;F[F[d>>2]+(u<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;A=F[h+8>>2];d=F[A+24>>2];if(F[A+28>>2]-d>>2>(B|0)){break l}Q:{R:{if((k|0)!=(l|0)){F[d+(r<<2)>>2]=a;g=0;if((p|0)==-4){break R}}F[d+(i<<2)>>2]=s;g=i+1|0;if((g|0)==-1){break Q}}F[d+(g<<2)>>2]=u}if((c|0)!=(q|0)){F[c>>2]=a;c=c+4|0;F[j+68>>2]=c;break t}f=c-b|0;i=f>>2;d=i+1|0;if(d>>>0>=1073741824){break v}g=f>>>1|0;d=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(d){if(d>>>0>=1073741824){break j}g=ka(d<<2)}else{g=0}f=g+(i<<2)|0;F[f>>2]=a;q=g+(d<<2)|0;a=f+4|0;if((b|0)!=(c|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((b|0)!=(c|0)){continue}break}}F[j+72>>2]=q;F[j+68>>2]=a;F[j+64>>2]=f;if(!b){break u}ja(b);break u}na();v()}d=-1;a=F[g>>2];F[a+(p<<2)>>2]=-1;i=-1;break q}na();v()}c=a;b=f}a=F[h+40>>2];if((a|0)==F[h+36>>2]){break n}d=a-12|0;i=F[d+4>>2];g=n+(e^-1)|0;if(i>>>0>g>>>0){break p}if((g|0)!=(i|0)){break n}i=G[a-4|0];e=F[d>>2];F[h+40>>2]=d;if((e|0)<0){break p}k=c-4|0;a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);d=F[j>>2];S:{if(i&1){e=-1;if((a|0)==-1){break S}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break S}e=-1;if((a|0)==-1){break S}e=a-1|0;if((a>>>0)%3|0){break S}e=a+2|0}F[d+12>>2]=e;d=F[h+40>>2];if((d|0)==F[h+36>>2]){break n}while(1){a=d-12|0;e=F[a+4>>2];if(e>>>0>g>>>0){break p}if((g|0)!=(e|0)){break n}d=G[d-4|0];e=F[a>>2];F[h+40>>2]=a;if((e|0)<0){break p}a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);i=F[j>>2];T:{if(d&1){e=-1;if((a|0)==-1){break T}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break T}e=-1;if((a|0)==-1){break T}e=a-1|0;if((a>>>0)%3|0){break T}e=a+2|0}F[i+12>>2]=e;d=F[h+40>>2];if((d|0)!=F[h+36>>2]){continue}break}break n}a=F[g>>2];d=F[a+(d<<2)>>2]}F[(p<<2)+a>>2]=d;A=b+1|0;b=(A>>>0)%3|0?A:b-2|0;i=-1;if((b|0)==-1){break q}i=F[(b<<2)+a>>2]}F[a+u>>2]=i;U:{if((k|0)==-1){F[a+e>>2]=-1;i=-1;e=-1;break U}V:{W:{X:{if((k>>>0)%3|0){b=k-1|0;break X}b=k+2|0;if((b|0)==-1){break W}}b=F[(b<<2)+a>>2];F[a+e>>2]=b;if((b|0)==-1){break V}F[F[g+24>>2]+(b<<2)>>2]=r;break V}F[a+e>>2]=-1}i=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;e=-1;if((b|0)==-1){break U}i=F[(b<<2)+a>>2];e=b}b=F[g+24>>2];k=b+(i<<2)|0;if((d|0)!=-1){F[b+(d<<2)>>2]=F[k>>2]}b=e;while(1){if((b|0)==-1){break o}F[(b<<2)+a>>2]=d;r=b+1|0;b=(r>>>0)%3|0?r:b-2|0;g=-1;Y:{if((b|0)==-1){break Y}b=F[l+(b<<2)>>2];g=-1;if((b|0)==-1){break Y}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0}b=g;if((e|0)!=(b|0)){continue}break}}g=-1;if(!z){break m}break l}F[k>>2]=-1;Z:{if(I){break Z}if((w|0)!=(x|0)){F[x>>2]=i;x=x+4|0;F[j+28>>2]=x;break Z}a=w-o|0;d=a>>2;b=d+1|0;if(b>>>0>=1073741824){break i}e=a>>>1|0;e=a>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(e){if(e>>>0>=1073741824){break j}a=ka(e<<2)}else{a=0}b=a+(d<<2)|0;F[b>>2]=i;x=b+4|0;if((o|0)!=(w|0)){while(1){b=b-4|0;w=w-4|0;F[b>>2]=F[w>>2];if((o|0)!=(w|0)){continue}break}}w=a+(e<<2)|0;F[j+32>>2]=w;F[j+28>>2]=x;F[j+24>>2]=b;if(o){ja(o)}o=b}F[s>>2]=p;b=f}z=(m|0)<(n|0);if((m|0)!=(n|0)){continue}break}m=n}g=-1;a=F[h+8>>2];if(F[a+28>>2]-F[a+24>>2]>>2>(B|0)){break l}if((c|0)!=(f|0)){l=h+72|0;e=h+60|0;w=h+312|0;while(1){c=c-4|0;i=F[c>>2];F[j+68>>2]=c;_:{if(wa(w)){q=F[h+8>>2];k=F[q>>2];if(((F[q+4>>2]-k>>2>>>0)/3|0)<=(m|0)){g=-1;break l}a=-1;g=-1;b=-1;x=F[q+24>>2];f=-1;$:{if((i|0)==-1){break $}n=i+1|0;n=(n>>>0)%3|0?n:i-2|0;f=-1;if((n|0)==-1){break $}f=F[k+(n<<2)>>2]}n=f;o=F[x+(n<<2)>>2];aa:{if((o|0)==-1){d=1;f=-1;break aa}d=1;p=o+1|0;o=(p>>>0)%3|0?p:o-2|0;f=-1;if((o|0)==-1){break aa}d=0;a=o;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)!=-1){f=F[k+(f<<2)>>2]}else{f=-1}}o=F[(f<<2)+x>>2];if((o|0)!=-1){b=o+1|0;b=(b>>>0)%3|0?b:o-2|0}if((a|0)==(i|0)|(b|0)==(i|0)|((i|0)!=-1&F[F[q+12>>2]+(i<<2)>>2]!=-1|(a|0)==(b|0))){break l}if(!d&F[F[q+12>>2]+(a<<2)>>2]!=-1){break l}d=-1;o=F[q+12>>2];q=-1;ba:{if((b|0)==-1){break ba}if(F[o+(b<<2)>>2]!=-1){break l}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0;q=-1;if((g|0)==-1){break ba}q=F[k+(g<<2)>>2]}g=L(m,3);F[j>>2]=g;F[o+(g<<2)>>2]=i;F[o+(i<<2)>>2]=g;g=F[j>>2]+1|0;F[o+(g<<2)>>2]=a;F[o+(a<<2)>>2]=g;a=F[j>>2]+2|0;F[o+(a<<2)>>2]=b;F[o+(b<<2)>>2]=a;a=F[j>>2];F[k+(a<<2)>>2]=f;b=a+1|0;g=k+(b<<2)|0;F[g>>2]=q;o=a+2|0;i=k+(o<<2)|0;F[i>>2]=n;a=F[h+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;k=F[n>>2];K=n,M=oi(f)&k,F[K>>2]=M;d=(b|0)!=-1?F[g>>2]:d;b=a+(d>>>3&536870908)|0;f=F[b>>2];K=b,M=oi(d)&f,F[K>>2]=M;b=-1;b=(o|0)!=-1?F[i>>2]:b;a=a+(b>>>3&536870908)|0;f=F[a>>2];K=a,M=oi(b)&f,F[K>>2]=M;D[j+88|0]=1;wd(e,j+88|0);Ma(l,j);m=m+1|0;f=F[j+64>>2];break _}b=F[h+64>>2];a=F[h+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break h}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}$a(e,a);b=F[h+64>>2]}F[h+64>>2]=b+1;a=F[h+60>>2]+(b>>>3&536870908)|0;d=F[a>>2];K=a,M=oi(b)&d,F[K>>2]=M;b=F[h+76>>2];if((b|0)!=F[h+80>>2]){F[b>>2]=i;F[h+76>>2]=b+4;break _}g=F[l>>2];a=b-g|0;o=a>>2;d=o+1|0;if(d>>>0>=1073741824){break g}n=a>>>1|0;n=a>>>0>=2147483644?1073741823:d>>>0<n>>>0?n:d;if(n){if(n>>>0>=1073741824){break j}a=ka(n<<2)}else{a=0}d=a+(o<<2)|0;F[d>>2]=i;o=d+4|0;if((b|0)!=(g|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(g|0)){continue}break}}F[h+80>>2]=a+(n<<2);F[h+76>>2]=o;F[h+72>>2]=d;if(!g){break _}ja(g)}if((c|0)!=(f|0)){continue}break}a=F[h+8>>2]}g=-1;if(((F[a+4>>2]-F[a>>2]>>2>>>0)/3|0)!=(m|0)){break l}g=F[a+28>>2]-F[a+24>>2]>>2;c=F[j+24>>2];n=F[j+28>>2];if((c|0)==(n|0)){break k}while(1){f=F[c>>2];e=F[a+24>>2];b=g-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){while(1){b=g-2|0;g=g-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){continue}break}}if(b>>>0>=f>>>0){F[j>>2]=a;d=F[d>>2];D[j+12|0]=1;F[j+8>>2]=d;F[j+4>>2]=d;if((d|0)!=-1){while(1){a=F[F[h+8>>2]>>2]+(d<<2)|0;if(F[a>>2]!=(b|0)){g=-1;break l}F[a>>2]=f;nc(j);d=F[j+8>>2];if((d|0)!=-1){continue}break}a=F[h+8>>2]}m=F[a+24>>2];e=m+(b<<2)|0;if((f|0)!=-1){F[m+(f<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<<f;m=F[h+120>>2];f=m+(f>>>3&536870908)|0;d=1<<b;m=m+(b>>>3&536870908)|0;if(d&F[m>>2]){b=e|F[f>>2]}else{b=F[f>>2]&(e^-1)}F[f>>2]=b;F[m>>2]=F[m>>2]&(d^-1);g=g-1|0}c=c+4|0;if((n|0)!=(c|0)){continue}break}}c=F[j+24>>2]}if(c){ja(c)}a=F[j+48>>2];if(a){while(1){c=F[a>>2];ja(a);a=c;if(a){continue}break}}a=F[j+40>>2];F[j+40>>2]=0;if(a){ja(a)}a=F[j+64>>2];if(a){F[j+68>>2]=a;ja(a)}Z=j+96|0;a=g;break f}oa();v()}na();v()}na();v()}na();v()}b=a;if((a|0)==-1){break e}a=C;c=F[a+16>>2];f=c+F[a>>2]|0;c=F[a+8>>2]-c|0;a=F[F[h+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=f;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;ca:{if(F[h+216>>2]==F[h+220>>2]){break ca}a=F[h+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}c=0;while(1){if(Ad(h,c)){c=c+3|0;a=F[h+8>>2];if(c>>>0<F[a+4>>2]-F[a>>2]>>2>>>0){continue}break ca}break}break e}if(G[h+308|0]){D[h+308|0]=0;f=F[h+292>>2];a=0;e=F[h+304>>2]+7|0;a=e>>>0<7?1:a;c=a>>>3|0;m=a<<29|e>>>3;a=m+F[h+288>>2]|0;e=c+f|0;F[h+288>>2]=a;F[h+292>>2]=a>>>0<m>>>0?e+1|0:e}c=F[h+216>>2];if((c|0)!=F[h+220>>2]){a=0;while(1){e=L(a,144);Zc((e+c|0)+4|0,F[h+8>>2]);f=F[y>>2];m=f+e|0;c=F[m+132>>2];m=F[m+136>>2];if((c|0)!=(m|0)){while(1){Xc((e+F[y>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((m|0)!=(c|0)){continue}break}f=F[y>>2]}if(!Yc((f+e|0)+4|0)){break e}a=a+1|0;c=F[h+216>>2];if(a>>>0<(F[h+220>>2]-c|0)/144>>>0){continue}break}}a=F[h+8>>2];Hb(h+184|0,F[a+28>>2]-F[a+24>>2]>>2);f=F[h+216>>2];if((f|0)!=F[h+220>>2]){c=0;while(1){a=L(c,144)+f|0;f=F[a+60>>2]-F[a+56>>2]>>2;e=a+104|0;a=F[h+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(e,(a|0)<(f|0)?f:a);c=c+1|0;f=F[h+216>>2];if(c>>>0<(F[h+220>>2]-f|0)/144>>>0){continue}break}}J=zd(h,b)}}Z=t- -64|0;return J|0}function Cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0;B=c;c=0;m=Z-96|0;Z=m;l=m+16|0;ma(l,0,76);F[m+92>>2]=-1;F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;r=Z-16|0;Z=r;F[l+68>>2]=0;F[l+72>>2]=0;F[l>>2]=b;s=Z-16|0;Z=s;u=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[u+100>>2];e=F[u+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=ka(f);F[s>>2]=d;F[s+8>>2]=d+L(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ma(n,0,d);F[s+4>>2]=d+f;if(G[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=L(a,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;d=L(a|1,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=L(a,12);a=b+e|0;c=F[a+4>>2];e=F[a>>2];b=b+f|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=e;F[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=F[c+68>>2];c=0;while(1){d=L(c,12);b=d+e|0;g=F[a+(F[b>>2]<<2)>>2];i=F[a+(F[b+4>>2]<<2)>>2];d=d+f|0;F[d+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[d+4>>2]=i;F[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;H=Z-16|0;Z=H;h=ka(88);Zb(h);C=Z-16|0;Z=C;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){ja(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){ja(a)}g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;a=L(c,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){nd(h,a-e|0);g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=F[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=L(d,12);j=e+a|0;f=b+e|0;F[j>>2]=F[f>>2];F[a+(e|4)>>2]=F[f+4>>2];F[j+8>>2]=F[f+8>>2];f=L(d|1,12);e=f+a|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=L(d,12);a=c+a|0;b=b+c|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[C+12>>2]=-1;a=0;e=0;g=0;f=Z-32|0;Z=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;n=F[h+12>>2];b=F[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){ab(h+12|0,i-b|0,10228);c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}F[h+16>>2]=n+(i<<2)}F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=ka(d);F[f+20>>2]=e;F[f+16>>2]=e;F[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=F[(a<<2)+j>>2];b=F[f+20>>2]-e>>2;q:{if(i>>>0<b>>>0){break q}F[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Fa(f+16|0,d-b|0,f);j=F[h>>2];c=F[h+4>>2];e=F[f+16>>2];break q}if(b>>>0<=d>>>0){break q}F[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;F[b>>2]=F[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0<i>>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=ka(d<<1);ma(d,255,i<<3)}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=F[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=ka(a);F[f>>2]=q;F[f+8>>2]=(t<<2)+q;b=ma(q,0,a);F[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;F[c+b>>2]=a;x=c|4;a=F[c+e>>2]+a|0;F[x+b>>2]=a;y=c|8;a=a+F[e+x>>2]|0;F[y+b>>2]=a;c=c|12;a=a+F[e+y>>2]|0;F[c+b>>2]=a;a=a+F[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;F[c+b>>2]=a;g=g+1|0;a=F[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=F[h+40>>2];y=F[h+12>>2];n=0;while(1){I=n<<2;a=I+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=F[(b<<2)+j>>2]}b=F[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=F[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;F[h+40>>2]=x;c=n+3|0;break t}p=F[a-4>>2]}a=p<<2;A=F[a+e>>2];v:{w:{if((A|0)<=0){break w}a=F[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=F[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=F[o+4>>2];if((o|0)!=-1){z=F[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=F[J>>2];K=(b<<3)+d|0;F[K+4>>2]=F[J+4>>2];F[K>>2]=z;if((z|0)!=-1){continue}}break}F[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}F[y+I>>2]=o;F[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=F[a+e>>2];if((k|0)<=0){break v}a=F[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0<i>>>0){continue}break}break l}break i}na();v()}F[w>>2]=t;if(q){ja(q)}if(d){ja(d)}a=F[f+16>>2];if(!a){break j}F[f+20>>2]=a;ja(a)}Z=f+32|0;x=(w|0)!=0;if(x){k=Z-32|0;Z=k;a=F[h>>2];g=F[h+4>>2];F[k+24>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[k+24>>2]=b;F[k+20>>2]=0;F[k+16>>2]=c;Yb(k+16|0,a);g=F[h>>2];c=F[h+4>>2]}F[k+8>>2]=0;F[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=F[k+16>>2];A:{if(F[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=F[k>>2];F[k+4>>2]=c;e=F[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=F[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=F[k+16>>2]+(j>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<<j;a=j+1|0;f=(a>>>0)%3|0?a:j-2|0;g=F[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=F[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=F[(f<<2)+g>>2];q=F[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=F[a>>2]){break G}p=F[a+4>>2];t=F[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==F[a>>2]){t=-1;e=-1;p=F[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=F[(b<<2)+g>>2];H:{if(F[k+8>>2]!=(c|0)){F[c>>2]=b;F[c+4>>2]=f;c=c+8|0;F[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0<g>>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=ka(g<<3)}else{e=0}a=e+(p<<3)|0;F[a>>2]=b;F[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=F[c+4>>2];a=a-8|0;F[a>>2]=F[c>>2];F[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=F[k>>2]}F[k+8>>2]=e+(g<<3);F[k+4>>2]=b;F[k>>2]=a;if(c){ja(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=F[h>>2];break A}oa();v()}c=F[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){F[q+(t<<2)>>2]=-1}if((c|0)!=-1){F[q+(c<<2)>>2]=-1}F[q+(b<<2)>>2]=-1;F[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=F[h+4>>2];if(i>>>0<c-g>>2>>>0){continue}break}if(o){continue}}break}a=F[k>>2];if(a){ja(a)}a=F[k+16>>2];if(a){ja(a)}Z=k+32|0;n=0;g=Z-32|0;Z=g;e=F[C+12>>2];F[h+36>>2]=e;p=h+24|0;b=F[h+24>>2];a=F[h+28>>2]-b>>2;K:{L:{if(a>>>0<e>>>0){ab(p,e-a|0,10228);F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;break L}if(a>>>0>e>>>0){F[h+28>>2]=b+(e<<2)}F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=ka(a<<2);F[g+24>>2]=a;F[g+20>>2]=0;F[g+16>>2]=b;Yb(g+16|0,e)}a=F[h>>2];b=F[h+4>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[g+8>>2]=b;F[g+4>>2]=0;F[g>>2]=c;Yb(g,a);b=F[h>>2];a=F[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=L(n,3);d=(q<<2)+b|0;f=F[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=F[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=F[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=F[g>>2];while(1){f=k+q|0;if(!(F[(f>>>3&536870908)+i>>2]>>>f&1)){a=F[(f<<2)+b>>2];c=1<<a;d=F[g+16>>2];b=a>>>5|0;i=F[d+(b<<2)>>2];t=c&i;if(t){c=F[h+28>>2];P:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break P}i=F[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+32>>2]=b+(j<<2);F[h+28>>2]=o;F[h+24>>2]=d;if(!i){break P}ja(i)}c=F[h+52>>2];Q:{if((c|0)!=F[h+56>>2]){F[c>>2]=a;F[h+52>>2]=c+4;break Q}i=F[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+56>>2]=b+(j<<2);F[h+52>>2]=a;F[h+48>>2]=d;if(!i){break Q}ja(i)}c=F[g+20>>2];a=F[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}$a(b,a);c=F[g+20>>2]}F[g+20>>2]=c+1;d=F[g+16>>2];a=d+(c>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(c)&b,F[N>>2]=O;c=1<<e;b=e>>>5|0;i=F[(b<<2)+d>>2];a=e;e=a+1|0}F[(b<<2)+d>>2]=c|i;o=F[h+24>>2]+(a<<2)|0;j=F[h+12>>2];b=F[h>>2];i=F[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<<c;F[o>>2]=c;if(t){F[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=F[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=F[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=F[h+12>>2];b=F[h>>2];while(1){d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<<c;if(t){F[(c<<2)+b>>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=F[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=F[h>>2];a=F[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}oa();v()}c=0;F[h+44>>2]=0;a=F[g+16>>2];b=F[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(F[d>>2]>>>c&1)){i=i+1|0;F[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=F[g>>2];if(b){ja(b);a=F[g+16>>2]}if(a){ja(a)}Z=g+32|0}Z=C+16|0;if(!x){F[H+8>>2]=0;Za(h);h=0}Z=H+16|0;a=h;break h}na();v()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;ja(b)}Z=s+16|0;break b}na();v()}c=F[l+4>>2];b=a;F[l+4>>2]=a;if(c){Za(c);b=F[l+4>>2]}X:{if(!b){break X}a=F[u+100>>2];c=F[u+96>>2];D[r+12|0]=0;Ea(l+56|0,(a-c|0)/12|0,r+12|0);a=F[u+100>>2];c=F[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(F[F[l+56>>2]+(E>>>3&536870908)>>2]>>>E&1)){a=L(E,3);Vb(l,0,a);c=F[l+8>>2];e=F[l+12>>2];Vb(l,1,a+1|0);f=F[l+20>>2];d=F[l+24>>2];Vb(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=F[l+36>>2]-F[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(F[l+68>>2]<=0){break Y}F[r+12>>2]=F[l+76>>2];F[r+8>>2]=m;Qa(r+8|0,r+12|0);a=F[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=F[(F[F[l>>2]+96>>2]+L(e,12)|0)+(a-L(e,3)<<2)>>2]}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);e=F[l+72>>2];F[l+72>>2]=e+2;if(!(e&1)){break Y}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);F[l+72>>2]=F[l+72>>2]+1}d=0;e=Z-16|0;Z=e;F[l+68>>2]=F[l+68>>2]+1;a=L(c,12)+l|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=F[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=F[l+56>>2]+(g>>>3&536870908)|0;F[i>>2]=F[i>>2]|1<<g;F[l+72>>2]=F[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){F[e+12>>2]=F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[e+8>>2]=m;Qa(e+8|0,e+12|0);break ca}F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=F[(F[F[l>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}else{f=-1}F[e+12>>2]=f;F[e+8>>2]=m;Qa(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=F[(F[F[l>>2]+96>>2]+L(c,12)|0)+(f-L(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((L(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=F[F[F[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}Z=e+16|0;c=F[u+96>>2];a=F[u+100>>2]}E=E+1|0;if(E>>>0<(a-c|0)/12>>>0){continue}break}}Z=r+16|0;da:{if(b){a=F[B>>2];if(a){F[B+4>>2]=a;ja(a)}F[B>>2]=F[m>>2];F[B+4>>2]=F[m+4>>2];F[B+8>>2]=F[m+8>>2];M=F[m+84>>2];break da}a=F[m>>2];if(!a){break da}F[m+4>>2]=a;ja(a)}a=F[m+72>>2];if(a){ja(a)}a=F[m+48>>2];if(a){F[m+52>>2]=a;ja(a)}a=F[m+36>>2];if(a){F[m+40>>2]=a;ja(a)}a=F[m+24>>2];if(a){F[m+28>>2]=a;ja(a)}a=F[m+20>>2];F[m+20>>2]=0;if(a){Za(a)}Z=m+96|0;return M|0}function sf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=F[i+80>>2];h=G[c+24|0];c:{if((L(j,h)|0)!=(e|0)){break c}d=F[c+28>>2]!=1;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break c}if(h){a=ka(h);ma(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break d}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!Cb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break d}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}ja(a)}break a;case 2:n=G[c+24|0];l=n<<1;j=F[i+80>>2];e:{if((L(l,j)|0)!=(e|0)){break e}i=F[c+28>>2]!=3;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=ka(l);ma(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}ja(e)}b=a;break a;case 4:l=G[c+24|0];o=l<<2;j=F[i+80>>2];h:{if((L(o,j)|0)!=(e|0)){break h}i=F[c+28>>2]!=5;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=ka(o);ma(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}ja(e)}break a;case 1:j=F[i+80>>2];h=G[c+24|0];k:{if((L(j,h)|0)!=(e|0)){break k}d=F[c+28>>2]!=2;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break k}if(h){a=ka(h);ma(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break l}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!Bb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break l}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}ja(a)}break a;case 3:n=G[c+24|0];l=n<<1;j=F[i+80>>2];m:{if((L(l,j)|0)!=(e|0)){break m}i=F[c+28>>2]!=4;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=ka(l);ma(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}ja(e)}b=a;break a;case 5:l=G[c+24|0];o=l<<2;j=F[i+80>>2];p:{if((L(o,j)|0)!=(e|0)){break p}i=F[c+28>>2]!=6;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=ka(o);ma(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}ja(e)}break a;case 8:p=G[c+24|0];q=p<<2;k=F[i+80>>2];s:{if((L(q,k)|0)!=(e|0)){break s}i=F[c+28>>2];t:{if(!p){break t}a=ka(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){F[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){F[d+24>>2]=-1073741824;F[d+28>>2]=-1073741824;F[d+16>>2]=-1073741824;F[d+20>>2]=-1073741824;F[d+8>>2]=-1073741824;F[d+12>>2]=-1073741824;F[d>>2]=-1073741824;F[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=F[c+68>>2];l=F[c>>2];i=F[c+48>>2];s=G[c+84|0];m=F[c+44>>2];c=F[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=F[l>>2];b=ki(c,m,s?d:F[r+(d<<2)>>2],0)+i|0;la(h,la(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=F[l>>2];g=d<<2;j=ki(c,m,F[g+r>>2],0)+i|0;h=la(a,h+j|0,o);j=F[l>>2];g=ki(c,m,F[r+(g|4)>>2],0)+i|0;la(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=F[l>>2];c=ki(c,m,F[r+(d<<2)>>2],0)+i|0;la(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=F[l>>2];e=ki(g,h,c,m)+i|0;d=la(a,d+e|0,o);e=F[l>>2];p=ki(c,m,g|1,h)+i|0;la(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=F[l>>2];c=ki(g,h,c,m)+i|0;la(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}la((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}ja(a)}a=b;break;default:break b}}b=a}return b|0}function Pd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=Z-80|0;Z=h;e=F[c+36>>2];F[h+72>>2]=F[c+32>>2];F[h+76>>2]=e;f=F[c+28>>2];e=h- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=f;e=F[c+20>>2];F[h+56>>2]=F[c+16>>2];F[h+60>>2]=e;e=F[c+12>>2];F[h+48>>2]=F[c+8>>2];F[h+52>>2]=e;e=F[c+4>>2];F[h+40>>2]=F[c>>2];F[h+44>>2]=e;jc(a,h+40|0,h+24|0);a:{if(F[a>>2]){break a}if(D[a+15|0]<0){ja(F[a+4>>2])}if(G[h+31|0]!=1){b=ka(32);D[b+20|0]=0;c=G[1446]|G[1447]<<8|(G[1448]<<16|G[1449]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1442]|G[1443]<<8|(G[1444]<<16|G[1445]<<24);d=G[1438]|G[1439]<<8|(G[1440]<<16|G[1441]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1434]|G[1435]<<8|(G[1436]<<16|G[1437]<<24);d=G[1430]|G[1431]<<8|(G[1432]<<16|G[1433]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,20);ja(b);break a}j=Z-16|0;Z=j;b:{c:{switch(G[h+32|0]){case 0:e=Kd(ka(48));F[e>>2]=9864;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;case 1:e=Kd(ka(52));F[e+48>>2]=0;F[e>>2]=8176;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;default:break c}}f=ka(32);D[f+28|0]=0;e=G[1520]|G[1521]<<8|(G[1522]<<16|G[1523]<<24);D[f+24|0]=e;D[f+25|0]=e>>>8;D[f+26|0]=e>>>16;D[f+27|0]=e>>>24;e=G[1516]|G[1517]<<8|(G[1518]<<16|G[1519]<<24);g=G[1512]|G[1513]<<8|(G[1514]<<16|G[1515]<<24);D[f+16|0]=g;D[f+17|0]=g>>>8;D[f+18|0]=g>>>16;D[f+19|0]=g>>>24;D[f+20|0]=e;D[f+21|0]=e>>>8;D[f+22|0]=e>>>16;D[f+23|0]=e>>>24;e=G[1508]|G[1509]<<8|(G[1510]<<16|G[1511]<<24);g=G[1504]|G[1505]<<8|(G[1506]<<16|G[1507]<<24);D[f+8|0]=g;D[f+9|0]=g>>>8;D[f+10|0]=g>>>16;D[f+11|0]=g>>>24;D[f+12|0]=e;D[f+13|0]=e>>>8;D[f+14|0]=e>>>16;D[f+15|0]=e>>>24;e=G[1500]|G[1501]<<8|(G[1502]<<16|G[1503]<<24);g=G[1496]|G[1497]<<8|(G[1498]<<16|G[1499]<<24);D[f|0]=g;D[f+1|0]=g>>>8;D[f+2|0]=g>>>16;D[f+3|0]=g>>>24;D[f+4|0]=e;D[f+5|0]=e>>>8;D[f+6|0]=e>>>16;D[f+7|0]=e>>>24;F[j>>2]=-1;e=j|4;ra(e,f,28);k=D[j+15|0];F[h>>2]=F[j>>2];g=h+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[g>>2]=F[e>>2];F[g+4>>2]=k;F[g+8>>2]=F[e+8>>2];F[h+16>>2]=0;break d}ra(g,F[j+4>>2],F[j+8>>2]);e=D[j+15|0];F[h+16>>2]=0;if((e|0)>=0){break d}ja(F[j+4>>2])}ja(f)}Z=j+16|0;e=F[h>>2];e:{if(e){F[a>>2]=e;a=a+4|0;if(D[h+15|0]>=0){b=h|4;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break e}ra(a,F[h+4>>2],F[h+8>>2]);break e}e=F[h+16>>2];F[h+16>>2]=0;F[e+44>>2]=d;f=Z-32|0;Z=f;F[e+32>>2]=c;F[e+40>>2]=b;F[e+4>>2]=d;jc(a,c,f+16|0);f:{if(F[a>>2]){break f}if(D[a+15|0]<0){ja(F[a+4>>2])}b=G[f+23|0];if(($[F[F[e>>2]+8>>2]](e)|0)!=(b|0)){b=ka(64);D[b+50|0]=0;c=G[1304]|G[1305]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1300]|G[1301]<<8|(G[1302]<<16|G[1303]<<24);d=G[1296]|G[1297]<<8|(G[1298]<<16|G[1299]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1292]|G[1293]<<8|(G[1294]<<16|G[1295]<<24);d=G[1288]|G[1289]<<8|(G[1290]<<16|G[1291]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1284]|G[1285]<<8|(G[1286]<<16|G[1287]<<24);d=G[1280]|G[1281]<<8|(G[1282]<<16|G[1283]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1276]|G[1277]<<8|(G[1278]<<16|G[1279]<<24);d=G[1272]|G[1273]<<8|(G[1274]<<16|G[1275]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1268]|G[1269]<<8|(G[1270]<<16|G[1271]<<24);d=G[1264]|G[1265]<<8|(G[1266]<<16|G[1267]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1260]|G[1261]<<8|(G[1262]<<16|G[1263]<<24);d=G[1256]|G[1257]<<8|(G[1258]<<16|G[1259]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,50);ja(b);break f}c=G[f+21|0];D[e+36|0]=c;d=G[f+22|0];D[e+37|0]=d;if((c|0)!=2){b=ka(32);D[b+26|0]=0;c=G[1427]|G[1428]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);d=G[1419]|G[1420]<<8|(G[1421]<<16|G[1422]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1415]|G[1416]<<8|(G[1417]<<16|G[1418]<<24);d=G[1411]|G[1412]<<8|(G[1413]<<16|G[1414]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1407]|G[1408]<<8|(G[1409]<<16|G[1410]<<24);d=G[1403]|G[1404]<<8|(G[1405]<<16|G[1406]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}b=b?2:3;if((b|0)!=(d|0)){b=ka(32);D[b+26|0]=0;c=G[1400]|G[1401]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1396]|G[1397]<<8|(G[1398]<<16|G[1399]<<24);d=G[1392]|G[1393]<<8|(G[1394]<<16|G[1395]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1388]|G[1389]<<8|(G[1390]<<16|G[1391]<<24);d=G[1384]|G[1385]<<8|(G[1386]<<16|G[1387]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}E[F[e+32>>2]+38>>1]=b|512;g:{if(E[f+26>>1]>=0){break g}j=Z-16|0;Z=j;d=ka(36);b=d;F[b+4>>2]=0;F[b+8>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;b=b+16|0;F[b>>2]=0;F[b+4>>2]=0;F[d>>2]=d+4;F[d+32>>2]=0;F[d+12>>2]=b;F[j>>2]=0;c=F[e+32>>2];k=Z-16|0;Z=k;b=0;h:{if(!d){break h}F[j>>2]=c;F[k+12>>2]=0;b=0;if(!fb(1,k+12|0,c)){break h}n=F[k+12>>2];if(n){while(1){i:{if(fb(1,k+8|0,F[j>>2])){b=ka(28);F[b+4>>2]=0;F[b+8>>2]=0;c=b+16|0;F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=b+4;F[b+12>>2]=c;F[b+24>>2]=F[k+8>>2];if(Vc(j,b)){break i}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}b=0;break h}g=Z-16|0;Z=g;F[g+8>>2]=b;j:{if(!b){break j}c=F[d+28>>2];k:{if(c>>>0<I[d+32>>2]){F[g+8>>2]=0;F[c>>2]=b;F[d+28>>2]=c+4;break k}c=0;l:{m:{n:{i=F[d+24>>2];m=F[d+28>>2]-i>>2;b=m+1|0;if(b>>>0<1073741824){i=F[d+32>>2]-i|0;l=i>>>1|0;i=i>>>0>=2147483644?1073741823:b>>>0<l>>>0?l:b;if(i){if(i>>>0>=1073741824){break n}c=ka(i<<2)}l=F[g+8>>2];F[g+8>>2]=0;b=(m<<2)+c|0;F[b>>2]=l;i=(i<<2)+c|0;m=b+4|0;c=F[d+28>>2];l=F[d+24>>2];if((c|0)==(l|0)){break m}while(1){c=c-4|0;p=F[c>>2];F[c>>2]=0;b=b-4|0;F[b>>2]=p;if((c|0)!=(l|0)){continue}break}F[d+32>>2]=i;i=F[d+28>>2];F[d+28>>2]=m;c=F[d+24>>2];F[d+24>>2]=b;if((c|0)==(i|0)){break l}while(1){i=i-4|0;b=F[i>>2];F[i>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(i|0)){continue}break}break l}na();v()}oa();v()}F[d+32>>2]=i;F[d+28>>2]=m;F[d+24>>2]=b}if(c){ja(c)}}b=F[g+8>>2];F[g+8>>2]=0;if(!b){break j}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}Z=g+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}b=Vc(j,d)}Z=k+16|0;o:{if(b){c=F[e+4>>2];b=F[c+4>>2];F[c+4>>2]=d;if(b){ic(b)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break o}b=ka(32);D[b+26|0]=0;c=G[1549]|G[1550]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1545]|G[1546]<<8|(G[1547]<<16|G[1548]<<24);g=G[1541]|G[1542]<<8|(G[1543]<<16|G[1544]<<24);D[b+16|0]=g;D[b+17|0]=g>>>8;D[b+18|0]=g>>>16;D[b+19|0]=g>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1537]|G[1538]<<8|(G[1539]<<16|G[1540]<<24);g=G[1533]|G[1534]<<8|(G[1535]<<16|G[1536]<<24);D[b+8|0]=g;D[b+9|0]=g>>>8;D[b+10|0]=g>>>16;D[b+11|0]=g>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1529]|G[1530]<<8|(G[1531]<<16|G[1532]<<24);g=G[1525]|G[1526]<<8|(G[1527]<<16|G[1528]<<24);D[b|0]=g;D[b+1|0]=g>>>8;D[b+2|0]=g>>>16;D[b+3|0]=g>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b);F[j+8>>2]=0;ic(d)}Z=j+16|0;if(F[a>>2]){break f}if(D[a+15|0]>=0){break g}ja(F[a+4>>2])}if(!($[F[F[e>>2]+12>>2]](e)|0)){b=ka(48);D[b+33|0]=0;D[b+32|0]=G[1374];c=G[1370]|G[1371]<<8|(G[1372]<<16|G[1373]<<24);d=G[1366]|G[1367]<<8|(G[1368]<<16|G[1369]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1362]|G[1363]<<8|(G[1364]<<16|G[1365]<<24);d=G[1358]|G[1359]<<8|(G[1360]<<16|G[1361]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1354]|G[1355]<<8|(G[1356]<<16|G[1357]<<24);d=G[1350]|G[1351]<<8|(G[1352]<<16|G[1353]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1346]|G[1347]<<8|(G[1348]<<16|G[1349]<<24);d=G[1342]|G[1343]<<8|(G[1344]<<16|G[1345]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,33);ja(b);break f}if(!($[F[F[e>>2]+20>>2]](e)|0)){b=Eb(f,1552);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}if(!($[F[F[e>>2]+24>>2]](e)|0)){b=Eb(f,1307);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}Z=f+32|0;if(!F[a>>2]){if(D[a+15|0]<0){ja(F[a+4>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}$[F[F[e>>2]+4>>2]](e)}a=F[h+16>>2];F[h+16>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if(D[h+15|0]>=0){break a}ja(F[h+4>>2])}Z=h+80|0}function Ub(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Z-16|0;Z=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=F[2941];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+11804|0;d=F[a+11812>>2];a=F[d+8>>2];j:{if((b|0)==(a|0)){m=11764,n=oi(c)&g,F[m>>2]=n;break j}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[2943];if(k>>>0>=h>>>0){break i}if(b){a=2<<c;a=(0-a|a)&b<<c;d=ji(0-a&a);a=d<<3;b=a+11804|0;e=F[a+11812>>2];a=F[e+8>>2];k:{if((b|0)==(a|0)){g=oi(d)&g;F[2941]=g;break k}F[a+12>>2]=b;F[b+8>>2]=a}F[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+e>>2]=d;if(k){b=(k&-8)+11804|0;f=F[2946];a=1<<(k>>>3);l:{if(!(a&g)){F[2941]=a|g;a=b;break l}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=e+8|0;F[2946]=c;F[2943]=d;break a}j=F[2942];if(!j){break i}c=F[(ji(0-j&j)<<2)+12068>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break m}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0<f>>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=F[2942];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=O(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=F[(g<<2)+12068>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(F[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<<g;a=(0-a|a)&j;if(!a){break i}a=F[(ji(a&0-a)<<2)+12068>>2]}if(!a){break o}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0<f>>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[2943]-h>>>0<=f>>>0){break i}g=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[e>>2]=0;break c}a=F[2943];if(a>>>0>=h>>>0){d=F[2946];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;F[c+4>>2]=b|1;F[a+d>>2]=b;F[d+4>>2]=h|3;break s}F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;c=0;b=0}F[2943]=b;F[2946]=c;a=d+8|0;break a}i=F[2944];if(i>>>0>h>>>0){b=i-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[3059]){c=F[3061]}else{F[3062]=-1;F[3063]=-1;F[3060]=4096;F[3061]=4096;F[3059]=l+12&-16^1431655768;F[3064]=0;F[3052]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=F[3051];if(d){c=F[3049];g=c+b|0;if(d>>>0<g>>>0|c>>>0>=g>>>0){break a}}t:{if(!(G[12208]&4)){u:{v:{w:{x:{d=F[2947];if(d){a=12212;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0<c+F[a+4>>2]>>>0){break x}a=F[a+8>>2];if(a){continue}break}}c=eb(0);if((c|0)==-1){break u}g=b;d=F[3060];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=F[3051];if(d){a=F[3049];f=a+g|0;if(d>>>0<f>>>0|a>>>0>=f>>>0){break u}}a=eb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=eb(g);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=F[3061];c=c+(j-g|0)&0-c;if((eb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}F[3052]=F[3052]|4}c=eb(b);a=eb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=F[3049]+g|0;F[3049]=a;if(a>>>0>I[3050]){F[3050]=a}y:{e=F[2947];if(e){a=12212;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break y}a=F[a+8>>2];if(a){continue}break}break f}a=F[2945];if(!(a>>>0<=c>>>0?a:0)){F[2945]=c}a=0;F[3054]=g;F[3053]=c;F[2949]=-1;F[2950]=F[3059];F[3056]=0;while(1){d=a<<3;b=d+11804|0;F[d+11812>>2]=b;F[d+11816>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];break e}if(G[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}F[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;F[2947]=c;b=F[2944]+g|0;a=b-a|0;F[2944]=a;F[c+4>>2]=a|1;F[(b+e|0)+4>>2]=40;F[2948]=F[3063];break e}d=0;break b}c=0;break c}if(I[2945]>c>>>0){F[2945]=c}b=c+g|0;a=12212;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break E}break}if(!(G[a+12|0]&8)){break D}}a=12212;while(1){b=F[a>>2];if(b>>>0<=e>>>0){f=b+F[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){F[2947]=i;a=F[2944]+a|0;F[2944]=a;F[i+4>>2]=a|1;break A}if(F[2946]==(g|0)){F[2946]=i;a=F[2943]+a|0;F[2943]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break A}f=F[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=F[g+8>>2];b=f>>>3|0;c=F[g+12>>2];if((c|0)==(d|0)){m=11764,n=F[2941]&oi(b),F[m>>2]=n;break F}F[d+12>>2]=c;F[c+8>>2]=d;break F}h=F[g+24>>2];c=F[g+12>>2];G:{if((g|0)!=(c|0)){b=F[g+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break G}H:{f=g+20|0;b=F[f>>2];if(b){break H}f=g+16|0;b=F[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break F}d=F[g+28>>2];b=(d<<2)+12068|0;I:{if(F[b>>2]==(g|0)){F[b>>2]=c;if(c){break I}m=11768,n=F[2942]&oi(d),F[m>>2]=n;break F}F[h+(F[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}F[c+24>>2]=h;b=F[g+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[g+20>>2];if(!b){break F}F[c+20>>2]=b;F[b+24>>2]=c}g=e+g|0;f=F[g+4>>2];a=a+e|0}F[g+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);J:{if(!(c&a)){F[2941]=a|c;a=b;break J}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=O(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+12068|0;d=F[2942];c=1<<f;K:{if(!(d&c)){F[2942]=c|d;F[b>>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=F[b>>2];while(1){b=c;if((F[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0<e+16>>>0?e:a;F[d+4>>2]=27;a=F[3056];F[d+16>>2]=F[3055];F[d+20>>2]=a;a=F[3054];F[d+8>>2]=F[3053];F[d+12>>2]=a;F[3055]=d+8;F[3054]=g;F[3053]=c;F[3056]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0<f>>>0){continue}break}if((d|0)==(e|0)){break e}F[d+4>>2]=F[d+4>>2]&-2;f=d-e|0;F[e+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);L:{if(!(c&a)){F[2941]=a|c;a=b;break L}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;d=F[2942];c=1<<a;M:{if(!(d&c)){F[2942]=c|d;F[b>>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break e}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=F[2944];if(a>>>0<=h>>>0){break d}b=a-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[2940]=48;a=0;break a}N:{if(!g){break N}b=F[d+28>>2];a=(b<<2)+12068|0;O:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break O}j=oi(b)&j;F[2942]=j;break N}F[g+(F[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}F[c+24>>2]=g;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break N}F[c+20>>2]=a;F[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break P}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);Q:{if(!(c&a)){F[2941]=a|c;a=b;break Q}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;R:{c=1<<a;S:{if(!(c&j)){F[2942]=c|j;F[b>>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break P}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=F[c+28>>2];a=(b<<2)+12068|0;U:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break U}m=11768,n=oi(b)&j,F[m>>2]=n;break T}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break T}F[d+20>>2]=a;F[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break V}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+11804|0;e=F[2946];a=1<<(k>>>3);W:{if(!(a&g)){F[2941]=a|g;a=b;break W}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a}F[2946]=d;F[2943]=f}a=c+8|0}Z=l+16|0;return a|0}function Vc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-32|0;Z=m;o=ka(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];t=F[b>>2];if(t){if((w|0)>1e3){break a}F[m+24>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;d=1;c=F[a>>2];e=F[c+8>>2];h=F[c+12>>2];g=F[c+20>>2];f=F[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=G[f+F[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;F[h+16>>2]=f;F[h+20>>2]=c;Sb(m+16|0,e);if(e){c=F[a>>2];n=Tb(m+16|0);p=F[c+8>>2];g=F[c+12>>2];h=F[c+20>>2];f=F[c+16>>2];k=f+e|0;h=k>>>0<e>>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}la(n,f+F[c>>2]|0,e);d=F[c+20>>2];f=e;e=e+F[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d}j=ka(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=Z-32|0;Z=e;h=t+12|0;c=m+16|0;u=Ya(h,c);i=t+16|0;e:{if((u|0)==(i|0)){F[e+16>>2]=c;f:{g:{d=F[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=G[c+11|0];g=f<<24>>24<0;n=g?F[c>>2]:c;g=g?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;p=d>>>0<g>>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?F[c+16>>2]:c+16|0;q=sa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=F[c>>2];if(d){continue}break h}d=sa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=ka(32);n=d+16|0;g=F[e+16>>2];n:{if(D[g+11|0]>=0){p=F[g+4>>2];F[n>>2]=F[g>>2];F[n+4>>2]=p;F[n+8>>2]=F[g+8>>2];break n}ra(n,F[g>>2],F[g+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;g=F[F[h>>2]>>2];if(g){F[h>>2]=g;c=F[f>>2]}nb(F[h+4>>2],c);F[h+8>>2]=F[h+8>>2]+1;c=1;break f}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break e}Ca(c+12|0,F[c+16>>2]);Ba(c,F[c+4>>2]);ja(c);break e}if(!j){break e}Ca(j+12|0,F[j+16>>2]);Ba(j,F[j+4>>2]);ja(j)}Z=e+32|0;d=(i|0)!=(u|0)}if(D[m+27|0]<0){ja(F[m+16>>2])}if(d){break a}}if(!j){break a}F[m+16>>2]=0;if(!fb(1,m+16|0,F[a>>2])){break a}q=0;x=F[m+16>>2];if(x){while(1){d=0;i=Z-32|0;Z=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;c=F[a>>2];f=F[c+8>>2];o:{p:{h=F[c+12>>2];g=F[c+20>>2];e=F[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=G[e+F[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;F[h+16>>2]=e;F[h+20>>2]=c;Sb(i+16|0,f);if(f){e=F[a>>2];n=Tb(i+16|0);p=F[e+8>>2];g=F[e+12>>2];c=F[e+20>>2];h=F[e+16>>2];k=h+f|0;c=k>>>0<f>>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}la(n,h+F[e>>2]|0,f);c=F[e+20>>2];g=f;f=f+F[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;F[e+16>>2]=f;F[e+20>>2]=c}F[i+12>>2]=0;if(!fb(1,i+12|0,F[a>>2])){break q}f=F[i+12>>2];if(!f){break q}e=F[a>>2];c=F[e+8>>2];h=F[e+16>>2];g=c-h|0;c=F[e+12>>2]-(F[e+20>>2]+(c>>>0<h>>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((f|0)<0){break p}d=ka(f);F[i>>2]=d;c=d+f|0;F[i+8>>2]=c;l=ma(d,0,f);F[i+4>>2]=c;h=F[e+12>>2];y=h;p=F[e+8>>2];c=F[e+20>>2];k=F[e+16>>2];g=f+k|0;c=g>>>0<f>>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){la(l,F[e>>2]+k|0,f);d=F[e+20>>2];c=f+F[e+16>>2]|0;d=c>>>0<f>>>0?d+1|0:d;F[e+16>>2]=c;F[e+20>>2]=d;h=Z-48|0;Z=h;e=Ya(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];s:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];t:{u:{g=e;d=e;e=F[d>>2];if(e){c=F[g+4>>2];if(!c){break u}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break u}e=0;k=1;break t}F[e+8>>2]=F[d+8>>2];k=0}l=F[d+8>>2];c=F[l>>2];v:{if((d|0)==(c|0)){F[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=F[l+4>>2];break v}F[l+4>>2]=e}r=!G[d+12|0];if((d|0)!=(g|0)){l=F[g+8>>2];F[d+8>>2]=l;F[l+(((g|0)!=F[F[g+8>>2]>>2])<<2)>>2]=d;l=F[g>>2];F[d>>2]=l;F[l+8>>2]=d;l=F[g+4>>2];F[d+4>>2]=l;if(l){F[l+8>>2]=d}D[d+12|0]=G[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=G[c+12|0];x:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];k=F[e>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}F[e+8>>2]=F[d+8>>2];k=F[d+8>>2];F[(((d|0)!=F[k>>2])<<2)+k>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}y:{z:{d=F[c>>2];A:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break A}D[c+12|0]=0;c=F[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(G[c+12|0]){break x}}D[c+12|0]=1;break w}e=F[c+4>>2];if(!e){break z}}if(G[e+12|0]){break z}d=c;break y}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break w}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];C:{if(!(!e|G[e+12|0])){d=c;break C}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break x}D[c+12|0]=1;break w}if(e){if(!G[e+12|0]){d=c;break C}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break w}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[g+28>>2];if(c){F[g+32>>2]=c;ja(c)}if(D[g+27|0]<0){ja(F[g+16>>2])}ja(g)}F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=ka(f);c=ma(e,0,f);g=c+f|0;F[h+8>>2]=g;F[h+4>>2]=g;F[h>>2]=c;c=d}la(e,c,f);F:{if(D[i+27|0]>=0){F[h+24>>2]=F[i+24>>2];c=F[i+20>>2];F[h+16>>2]=F[i+16>>2];F[h+20>>2]=c;break F}ra(h+16|0,F[i+16>>2],F[i+20>>2])}Tc(h+28|0,h);f=h+16|0;c=f;G:{H:{d=F[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=G[c+11|0];g=e<<24>>24<0;k=g?F[c>>2]:c;g=g?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;l=d>>>0<g>>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?F[c+16>>2]:c+16|0;z=sa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=F[c>>2];if(d){continue}break I}d=sa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=ka(40);F[d+24>>2]=F[f+8>>2];g=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=g;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;Tc(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}nb(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break G}d=c;c=0}D[h+44|0]=c;F[h+40>>2]=d;c=F[h+28>>2];if(c){F[h+32>>2]=c;ja(c)}if(D[h+27|0]<0){ja(F[h+16>>2])}c=F[h>>2];if(c){F[h+4>>2]=c;ja(c)}Z=h+48|0;break D}na();v()}d=F[i>>2];if(!d){break r}}F[i+4>>2]=d;ja(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(D[i+27|0]<0){ja(F[i+16>>2])}Z=i+32|0;break o}na();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}F[m+12>>2]=0;if(!fb(1,m+12|0,F[a>>2])){break a}c=F[a>>2];e=F[c+8>>2];f=F[c+16>>2];h=e-f|0;d=F[m+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(e>>>0<f>>>0)|0)|0;if(h>>>0<d>>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0<s>>>0){F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;d=F[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0<f>>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=ka(L(e,12))}else{f=0}b=f+L(g,12)|0;F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;c=pa(b+L((c|0)/-12|0,12)|0,o,c);s=f+L(e,12)|0;b=b+12|0;if(o){ja(o)}o=c}q=q+1|0;if(q>>>0<d>>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}na();v()}oa();v()}if(o){ja(o)}Z=m+32|0;return A}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Z-48|0;Z=h;a:{if((c|0)!=1){break a}i=F[a+4>>2];c=F[a+12>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;d=h+8|0;b:{if((b|0)==-2){break b}k=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];if(($[F[F[i>>2]+8>>2]](i)|0)==1){j=Z-32|0;Z=j;l=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];c:{d:{e:{if(($[F[F[i>>2]+8>>2]](i)|0)!=1|b-1>>>0>5){break e}g=$[F[F[i>>2]+36>>2]](i)|0;f=$[F[F[i>>2]+44>>2]](i,c)|0;if(!g|!f){break e}c=$[F[F[i>>2]+40>>2]](i,c)|0;if(c){a=F[i+44>>2];F[j+12>>2]=c;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;f:{g:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=2252;a=b;break f;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3016;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break f;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3264;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break f;case 5:break g;default:break f}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;h:{i:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break i}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=2904;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4128;F[a>>2]=3500;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=3736;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break h}na();v()}break f}e=a;break e}a=F[i+44>>2];F[j+12>>2]=g;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;j:{k:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=4156;a=b;break j;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4580;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break j;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4816;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break j;case 5:break k;default:break j}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;l:{m:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break m}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=4524;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=5624;F[a>>2]=5040;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=5260;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break l}na();v()}break j}e=a}Z=j+32|0;break c}na();v()}if(e){break b}}e=ka(44);F[e+4>>2]=k;F[e>>2]=2960;a=F[d+4>>2];F[e+8>>2]=F[d>>2];F[e+12>>2]=a;a=F[d+12>>2];F[e+16>>2]=F[d+8>>2];F[e+20>>2]=a;a=F[d+20>>2];F[e+24>>2]=F[d+16>>2];F[e+28>>2]=a;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;n:{c=F[d+24>>2];b=F[d+28>>2];if((c|0)!=(b|0)){a=b-c|0;if((a|0)<0){break n}k=ka(a);F[e+32>>2]=k;F[e+40>>2]=(a&-4)+k;while(1){F[k>>2]=F[c>>2];k=k+4|0;c=c+4|0;if((b|0)!=(c|0)){continue}break}F[e+36>>2]=k}F[e>>2]=5652;break b}na();v()}k=e;a=F[h+32>>2];if(!a){break a}F[h+36>>2]=a;ja(a)}Z=h+48|0;return k|0}function rf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-16|0;Z=m;F[m+12>>2]=b;b=ka(32);F[m>>2]=b;F[m+4>>2]=24;F[m+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);d=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);d=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);d=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+24|0]=0;l=Z-48|0;Z=l;f=F[m+12>>2];d=a;a=a+16|0;b=F[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>F[b+16>>2];c=e?c:b;b=F[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=F[c+16>>2]){break a}}F[l+28>>2]=0;F[l+32>>2]=0;y=l+24|0;F[l+24>>2]=y|4;a=l+16|0;F[a>>2]=0;F[a+4>>2]=0;F[l+8>>2]=f;F[l+12>>2]=a;t=l+8|0;a=t;x=Z-16|0;Z=x;u=d+12|0;c=F[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=F[a>>2];while(1){d=c;b=F[c+16>>2];if((b|0)>(a|0)){o=d;c=F[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=F[d+4>>2];if(c){continue}break}o=d+4|0}g=ka(32);b=F[t>>2];q=g+24|0;a=q;F[a>>2]=0;F[a+4>>2]=0;F[g+16>>2]=b;r=g+20|0;F[r>>2]=a;c=F[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=Z-16|0;Z=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=G[f+27|0];h=b<<24>>24<0;i=G[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?F[k+4>>2]:i;b=h?F[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?F[k>>2]:k;h=h?F[f+16>>2]:f+16|0;A=sa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=F[f>>2];m:{a=f;n:{if((a|0)==F[r>>2]){break n}o:{if(!h){b=f;while(1){a=F[b+8>>2];i=F[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=F[b+4>>2];if(b){continue}break}}i=G[k+11|0];s=i<<24>>24;b=(s|0)<0;j=G[a+27|0];n=j<<24>>24<0;p:{i=b?F[k+4>>2]:i;j=n?F[a+20>>2]:j;w=i>>>0<j>>>0?i:j;if(w){b=sa(n?F[a+16>>2]:a+16|0,b?F[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){F[p+12>>2]=f;a=f;break e}F[p+12>>2]=a;a=a+4|0;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(s|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0<i>>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}break g}b=sa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=F[f+4>>2];v:{if(!h){b=f;while(1){a=F[b+8>>2];j=F[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=F[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=G[a+27|0];b=j<<24>>24<0;y:{j=b?F[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=sa((n|0)<0?F[k>>2]:k,b?F[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0<j>>>0){break x}break w}if((b|0)>=0){break w}}if(!h){F[p+12>>2]=f;a=f+4|0;break e}F[p+12>>2]=a;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(n|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0<i>>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}}F[p+12>>2]=a;a=f;break e}F[p+12>>2]=f;F[a>>2]=f}f=a;a=F[a>>2];if(a){b=0}else{a=ka(40);b=a+16|0;E:{if(D[c+27|0]>=0){e=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+24>>2];break E}ra(b,F[c+16>>2],F[c+20>>2])}b=a+28|0;F:{if(D[c+39|0]>=0){e=F[c+32>>2];F[b>>2]=F[c+28>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+36>>2];break F}ra(b,F[c+28>>2],F[c+32>>2])}F[a+8>>2]=F[p+12>>2];F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;b=a;e=F[F[r>>2]>>2];if(e){F[r>>2]=e;b=F[f>>2]}nb(F[r+4>>2],b);F[r+8>>2]=F[r+8>>2]+1;b=1}D[x+12|0]=b;F[x+8>>2]=a;Z=p+16|0;b=F[c+4>>2];G:{if(b){while(1){c=b;b=F[b>>2];if(b){continue}break G}}while(1){a=c;c=F[c+8>>2];if((a|0)!=F[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}F[g+8>>2]=d;F[g>>2]=0;F[g+4>>2]=0;F[o>>2]=g;c=g;a=F[F[u>>2]>>2];if(a){F[u>>2]=a;c=F[o>>2]}nb(F[u+4>>2],c);F[u+8>>2]=F[u+8>>2]+1;a=1}D[l+44|0]=a;F[l+40>>2]=g;Z=x+16|0;c=F[l+40>>2];ib(t|4,F[l+16>>2]);ib(y,F[l+28>>2])}f=Z-48|0;Z=f;d=f+8|0;g=Z-32|0;Z=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(I[2684]<=1|0)){break I}}D[a|0]=49;b=a+1|0;h=0}F[g+12>>2]=h;F[g+8>>2]=b;h=Z-16|0;Z=h;e=Z-16|0;Z=e;J:{q=F[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){D[d+11|0]=g|G[d+11|0]&128;D[d+11|0]=G[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}sb(t,b+1|0);b=F[e+8>>2];F[d>>2]=b;F[d+8>>2]=F[d+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[d+8>>2]=F[d+8>>2]|-2147483648;F[d+4>>2]=g}while(1){if((a|0)!=(q|0)){D[b|0]=G[a|0];b=b+1|0;a=a+1|0;continue}break}D[e+7|0]=0;D[b|0]=G[e+7|0];Z=e+16|0;break J}za();v()}Z=h+16|0;Z=o;F[f+32>>2]=m;L:{M:{a=c+20|0;d=F[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=G[m+11|0];c=b<<24>>24<0;e=c?F[m>>2]:m;b=c?F[m+4>>2]:b;while(1){c=d;d=G[c+27|0];g=d<<24>>24<0;d=g?F[c+20>>2]:d;o=d>>>0<b>>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?F[c+16>>2]:c+16|0;q=sa(e,g,h);if(!q){if(b>>>0<d>>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=F[c>>2];if(d){continue}break N}d=sa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=F[c+4>>2];if(d){continue}break}g=c+4|0}d=ka(40);e=d+16|0;b=F[f+32>>2];T:{if(D[b+11|0]>=0){o=F[b+4>>2];F[e>>2]=F[b>>2];F[e+4>>2]=o;F[e+8>>2]=F[b+8>>2];break T}ra(e,F[b>>2],F[b+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+36>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[g>>2]=d;c=d;b=F[F[a>>2]>>2];if(b){F[a>>2]=b;c=F[g>>2]}nb(F[a+4>>2],c);F[a+8>>2]=F[a+8>>2]+1;a=1;break L}d=c;a=0}D[f+44|0]=a;F[f+40>>2]=d;a=F[f+40>>2];if(D[a+39|0]<0){ja(F[a+28>>2])}b=F[f+12>>2];F[a+28>>2]=F[f+8>>2];F[a+32>>2]=b;F[a+36>>2]=F[f+16>>2];Z=f+48|0;Z=l+48|0;if(D[m+11|0]<0){ja(F[m>>2])}Z=m+16|0}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=Z-32|0;Z=h;g=F[F[a+4>>2]+44>>2];c=F[a+8>>2];d=F[c>>2];c=F[c+4>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=F[g+96>>2];f=(F[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=F[g+104>>2];c=F[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=L(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=l;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=L(e,12)+c|0;if(f>>>0<36){break b}while(1){f=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=f;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];f=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=f;F[d+32>>2]=F[h+24>>2];f=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=f;f=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=f;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}F[g+100>>2]=c;break a}c:{f=F[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0<i>>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=ka(L(i,12))}f=L(n,12)+l|0;d=f;e=L(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=r;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=j;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];j=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=j;F[d+32>>2]=F[h+24>>2];j=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=j;j=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=j;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=F[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=F[c+4>>2];f=f-12|0;d=f;F[d>>2]=F[c>>2];F[d+4>>2]=n;F[d+8>>2]=F[c+8>>2];if((c|0)!=(j|0)){continue}break}c=F[g+96>>2]}F[g+104>>2]=L(i,12)+l;F[g+100>>2]=e;F[g+96>>2]=f;if(c){ja(c)}break a}na();v()}oa();v()}if(d>>>0>=f>>>0){break a}F[g+100>>2]=c+L(d,12)}d:{if(F[a+216>>2]==F[a+220>>2]){j=F[a+4>>2];c=F[j+44>>2];d=F[c+100>>2];f=F[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=F[a+8>>2];i=f+L(c,12)|0;g=L(c,3);e:{f:{if((g|0)==-1){e=F[(F[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=F[F[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=F[F[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=F[F[d>>2]+(g<<2)>>2]}F[i+8>>2]=m;F[i+4>>2]=e;F[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}F[F[j+4>>2]+80>>2]=b;c=1;break d}d=0;F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;l=F[a+8>>2];c=F[l>>2];g=F[l+4>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=ka(c);F[h>>2]=b;F[h+8>>2]=(c&-4)+b;u=h,w=ma(b,0,c)+c|0,F[u+4>>2]=w}c=F[l+24>>2];if((F[l+28>>2]-c|0)<4){break h}f=0;while(1){g=F[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(F[F[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=F[a+216>>2];c=F[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=L(j,144)+n|0;c=F[s+F[F[i+68>>2]>>2]>>2];o:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=F[F[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=F[i+32>>2];i=F[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=F[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=F[F[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;F[(g<<2)+b>>2]=e;s:{if(k>>>0<o>>>0){F[k>>2]=g;k=k+4|0;F[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=ka(c<<2)}else{d=0}e=d+(e<<2)|0;F[e>>2]=g;m=c<<2;c=pa(d,f,i);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(f){ja(f);l=F[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=F[a+220>>2];j=F[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=F[(j+L(c,144)|0)+32>>2];r=i<<2;if(F[q+r>>2]==F[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;F[b+r>>2]=e;if(k>>>0<o>>>0){F[k>>2]=i;k=k+4|0;F[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=ka(c<<2)}else{f=0}e=f+(e<<2)|0;F[e>>2]=i;m=c<<2;c=pa(f,d,j);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(!d){d=c;break u}ja(d);l=F[a+8>>2];d=c;break u}F[(i<<2)+b>>2]=F[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=F[l+24>>2];if((p|0)<F[l+28>>2]-c>>2){continue}break}break h}na();v()}na();v()}oa();v()}na();v()}i=F[a+4>>2];a=F[i+44>>2];c=F[a+100>>2];a=F[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=L(c,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;e=L(c|1,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=L(c,12);c=g+b|0;f=F[c>>2];e=F[c+4>>2];a=a+g|0;F[a+8>>2]=F[c+8>>2];F[a>>2]=f;F[a+4>>2]=e}F[F[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){ja(b)}if(!d){break d}F[h+20>>2]=d;ja(d)}Z=h+32|0;return c}function de(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0;g=Z+-64|0;Z=g;F[a+8>>2]=e;y=a+32|0;f=F[y>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){qa(y,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}Fa(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}Fa(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}Fa(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}Fa(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}H=F[a+52>>2];t=F[a+48>>2];z=ka(16);d=z;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=ka(d);F[g>>2]=r;F[g+8>>2]=d+r;ma(r,0,d)}A=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<<x;n=F[t>>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(F[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=F[F[F[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=F[H>>2];h=F[t+28>>2];p=F[l+(F[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=F[l+(F[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=F[l+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];l=L(e,h);q=L(e,q);p=L(e,p);h=0;o=0;if(G){while(1){F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2];u=h|1;F[j+(u<<2)>>2]=(F[(l+u<<2)+c>>2]+F[(q+u<<2)+c>>2]|0)-F[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&F[O>>2]){break v}d=F[F[F[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ma(r,0,M)}d=j-1|0;q=(d<<2)+z|0;d=L(d,12)+a|0;u=d;x=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[q>>2];F[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(F[F[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(!N){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];o=l|4;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];o=l|8;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];l=l|12;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[l+n>>2]+F[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(G){break n}break m}i=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];n=F[a+16>>2];x:{if((f|0)>(n|0)){F[d+j>>2]=n;break x}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}break k}ta();v()}while(1){j=h<<2;k=j+r|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+r|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+r>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[g>>2];if(a){ja(a)}ja(z);a=F[g+52>>2];if(a){F[g+56>>2]=a;ja(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;ja(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;ja(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;ja(a)}Z=g- -64|0;return A|0}na();v()}function $h(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;h=Z+-64|0;Z=h;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){qa(x,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}Fa(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}Fa(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}Fa(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}Fa(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}H=F[a+52>>2];A=F[a+48>>2];y=ka(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=ka(d);F[h>>2]=t;F[h+8>>2]=d+t;ma(t,0,d)}z=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}n=F[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[H>>2];r=F[A>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(G){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ma(t,0,M)}d=g-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(!N){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];q=n|4;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];q=n|8;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];n=n|12;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[j+n>>2]+F[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(G){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}break k}ta();v()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[h>>2];if(a){ja(a)}ja(y);a=F[h+52>>2];if(a){F[h+56>>2]=a;ja(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;ja(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;ja(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;ja(a)}Z=h- -64|0;return z|0}na();v()}function Yh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0,ba=0,ca=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;N=a+32|0;e=F[N>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}j=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;$=d>>>0<=1?1:d;aa=a+68|0;d=0;while(1){f=F[a+56>>2];e=F[f>>2];if(F[f+4>>2]-e>>2>>>0<=d>>>0){break a}l=Z-80|0;Z=l;f=-1;d:{e:{e=F[e+(d<<2)>>2];if((e|0)==-1){break e}j=F[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=F[F[j>>2]+(g<<2)>>2]}n=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){n=F[F[j>>2]+(e<<2)>>2]}j=F[o+36>>2];e=F[j>>2];j=F[j+4>>2]-e>>2;if(j>>>0<=f>>>0|j>>>0<=n>>>0){break e}f:{g:{h:{i:{j:{k:{i=F[e+(n<<2)>>2];f=F[e+(f<<2)>>2];if((i|0)>=(d|0)|(f|0)>=(d|0)){break k}j=(i<<3)+c|0;u=F[j+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];A=F[j>>2];j=F[g>>2];if(!((A|0)!=(j|0)|(e|0)!=(u|0))){F[o+8>>2]=j;F[o+12>>2]=e;break j}n=F[F[o+4>>2]+(d<<2)>>2];F[l+72>>2]=0;F[l+76>>2]=0;g=l- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[l+56>>2]=0;F[l+60>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+56|0);n=F[F[o+4>>2]+(f<<2)>>2];F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+32>>2]=0;F[l+36>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+32|0);n=F[F[o+4>>2]+(i<<2)>>2];F[l+24>>2]=0;F[l+28>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;F[l+8>>2]=0;F[l+12>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+8|0);g=F[l+16>>2];w=F[l+40>>2];B=g-w|0;O=F[l+44>>2];g=F[l+20>>2]-(O+(g>>>0<w>>>0)|0)|0;J=g;i=ki(B,g,B,g);m=_;g=F[l+8>>2];C=F[l+32>>2];E=g-C|0;P=F[l+36>>2];g=F[l+12>>2]-(P+(g>>>0<C>>>0)|0)|0;K=g;k=i;i=ki(E,g,E,g);g=k+i|0;k=_+m|0;k=g>>>0<i>>>0?k+1|0:k;i=F[l+24>>2];H=F[l+48>>2];I=i-H|0;Q=F[l+52>>2];i=F[l+28>>2]-(Q+(i>>>0<H>>>0)|0)|0;L=i;h=g;g=ki(I,i,I,i);q=h+g|0;h=_+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}n=0;x=mi(-1,2147483647,q,r);f=j>>31;S=f;h=f>>31;R=j;g=h;m=j^g;j=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0<j>>>0|e>>>0<g>>>0;j=f?j:h;i=_;e=f?g:e;if((i|0)==(e|0)&j>>>0>x>>>0|e>>>0>i>>>0){break f}j=F[l+64>>2];U=F[l+68>>2];e=ki(j-w|0,U-((j>>>0<w>>>0)+O|0)|0,B,J);f=_;g=F[l+56>>2];V=F[l+60>>2];i=ki(g-C|0,V-((g>>>0<C>>>0)+P|0)|0,E,K);e=i+e|0;h=_+f|0;m=F[l+72>>2];W=F[l+76>>2];f=ki(m-H|0,W-((m>>>0<H>>>0)+Q|0)|0,I,L);y=f+e|0;e=_+(e>>>0<i>>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;i=e;h=e^y;e=h-e|0;i=(f^i)-((h>>>0<i>>>0)+i|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0<R>>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0<z>>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0<M>>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0<p>>>0;f=mi(-1,2147483647,h?k:Y,h?p:f);h=_;if((h|0)==(i|0)&e>>>0>f>>>0|h>>>0<i>>>0){break f}f=e;e=i;h=K>>31;p=h^E;i=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=p?i:t;h=p?h:k;k=L>>31;p=i;s=k^I;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;i=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=mi(-1,2147483647,i?p:t,i?h:k);h=_;if((h|0)==(e|0)&f>>>0>i>>>0|e>>>0>h>>>0){break f}i=1;f=0;k=li(ki(y,x,B,J),_,q,r);h=k+w|0;e=_+O|0;e=h>>>0<k>>>0?e+1|0:e;k=j-h|0;e=U-((h>>>0>j>>>0)+e|0)|0;k=ki(k,e,k,e);w=_;h=li(ki(y,x,E,K),_,q,r);j=h+C|0;e=_+P|0;e=h>>>0>j>>>0?e+1|0:e;h=g-j|0;e=V-((g>>>0<j>>>0)+e|0)|0;j=ki(h,e,h,e);e=j+k|0;h=_+w|0;h=e>>>0<j>>>0?h+1|0:h;k=e;g=li(ki(y,x,I,L),_,q,r);j=g+H|0;e=_+Q|0;e=g>>>0>j>>>0?e+1|0:e;g=m-j|0;e=W-((j>>>0>m>>>0)+e|0)|0;g=ki(g,e,g,e);j=g+k|0;e=_+h|0;j=ki(j,g>>>0>j>>>0?e+1|0:e,q,r);e=_;m=e;if(!e&j>>>0<=1){break i}h=j;g=m;while(1){e=f<<1|i>>>31;i=i<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break h}g=o;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[g+8>>2]=F[e>>2];F[o+12>>2]=F[e+4>>2]}n=1;break f}f=m;i=j;if(j-1|0){break g}}while(1){e=mi(j,m,i,f);h=f+_|0;e=e+i|0;h=e>>>0<i>>>0?h+1|0:h;i=(h&1)<<31|e>>>1;f=h>>>1|0;e=ki(i,f,i,f);g=_;if((m|0)==(g|0)&e>>>0>j>>>0|g>>>0>m>>>0){continue}break}}e=F[o+20>>2];if(!e){break f}j=e-1|0;m=F[F[o+16>>2]+(j>>>3&536870908)>>2];F[o+20>>2]=j;n=1;e=ki(y,x,z,u);h=_;g=e;e=ki(q,r,M,T);g=g+e|0;h=_+h|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(i,f,A,X);j=m>>>j&1;m=j?0-e|0:e;g=m+g|0;k=h;h=_;k=k+(j?0-(h+((e|0)!=0)|0)|0:h)|0;ba=o,ca=li(g,g>>>0<m>>>0?k+1|0:k,q,r),F[ba+12>>2]=ca;e=ki(y,x,A,X);m=_;g=e;e=ki(q,r,R,S);g=g+e|0;h=_+m|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(i,f,z,u);f=0-e|0;i=_;k=(j?i:0-(((e|0)!=0)+i|0)|0)+h|0;i=g;g=j?e:f;f=i+g|0;ba=o,ca=li(f,f>>>0<g>>>0?k+1|0:k,q,r),F[ba+8>>2]=ca}Z=l+80|0;e=n;break d}ta();v()}j=e;if(!e){return 0}l:{if(F[a+8>>2]<=0){break l}i=F[N>>2];e=0;while(1){f=e<<2;g=F[f+aa>>2];m=F[a+16>>2];m:{if((g|0)>(m|0)){F[f+i>>2]=m;break m}f=f+i|0;m=F[a+12>>2];if((m|0)>(g|0)){F[f>>2]=m;break m}F[f>>2]=g}e=e+1|0;g=F[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;m=e+c|0;n=b+e|0;while(1){g=f<<2;e=g+m|0;g=F[g+n>>2]+F[g+i>>2]|0;F[e>>2]=g;n:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break n}g=g+F[a+20>>2]|0}F[e>>2]=g}f=f+1|0;if((f|0)<F[a+8>>2]){continue}break}}d=d+1|0;if(($|0)!=(d|0)){continue}break}}return j|0}ta();v()}function hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0,ba=0,ca=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;N=a+32|0;e=F[N>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}o=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}n=a+60|0;d=d>>>2|0;$=d>>>0<=1?1:d;aa=a+68|0;d=0;while(1){e=F[a+56>>2];i=F[e>>2];if(F[e+4>>2]-i>>2>>>0<=d>>>0){break a}l=Z-80|0;Z=l;f=-1;i=F[i+(d<<2)>>2];e=-1;d:{if((i|0)==-1){break d}e=i+1|0;f=(e>>>0)%3|0?e:i-2|0;e=i-1|0;if((i>>>0)%3|0){break d}e=i+2|0}g=F[n+36>>2];i=F[g>>2];e:{f:{g:{h:{i:{g=F[g+4>>2]-i>>2;k=f<<2;f=F[F[n+32>>2]+28>>2];j=F[k+f>>2];if(g>>>0<=j>>>0){break i}e=F[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}f=F[i+(j<<2)>>2];j:{k:{j=F[i+(e<<2)>>2];if((d|0)<=(f|0)|(j|0)>=(d|0)){break k}i=(j<<3)+c|0;u=F[i+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];A=F[i>>2];i=F[g>>2];if(!((A|0)!=(i|0)|(e|0)!=(u|0))){F[n+8>>2]=i;F[n+12>>2]=e;break j}o=F[F[n+4>>2]+(d<<2)>>2];F[l+72>>2]=0;F[l+76>>2]=0;g=l- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[l+56>>2]=0;F[l+60>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+56|0);o=F[F[n+4>>2]+(f<<2)>>2];F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+32>>2]=0;F[l+36>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+32|0);o=F[F[n+4>>2]+(j<<2)>>2];F[l+24>>2]=0;F[l+28>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;F[l+8>>2]=0;F[l+12>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+8|0);g=F[l+16>>2];w=F[l+40>>2];B=g-w|0;O=F[l+44>>2];g=F[l+20>>2]-(O+(g>>>0<w>>>0)|0)|0;J=g;j=ki(B,g,B,g);m=_;g=F[l+8>>2];C=F[l+32>>2];E=g-C|0;P=F[l+36>>2];g=F[l+12>>2]-(P+(g>>>0<C>>>0)|0)|0;K=g;k=j;j=ki(E,g,E,g);g=k+j|0;k=_+m|0;k=g>>>0<j>>>0?k+1|0:k;j=F[l+24>>2];H=F[l+48>>2];I=j-H|0;Q=F[l+52>>2];j=F[l+28>>2]-(Q+(j>>>0<H>>>0)|0)|0;L=j;h=g;g=ki(I,j,I,j);q=h+g|0;h=_+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}o=0;x=mi(-1,2147483647,q,r);f=i>>31;S=f;h=f>>31;R=i;g=h;m=i^g;i=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0<i>>>0|e>>>0<g>>>0;i=f?i:h;j=_;e=f?g:e;if((j|0)==(e|0)&i>>>0>x>>>0|e>>>0>j>>>0){break e}i=F[l+64>>2];U=F[l+68>>2];e=ki(i-w|0,U-((i>>>0<w>>>0)+O|0)|0,B,J);f=_;g=F[l+56>>2];V=F[l+60>>2];j=ki(g-C|0,V-((g>>>0<C>>>0)+P|0)|0,E,K);e=j+e|0;h=_+f|0;m=F[l+72>>2];W=F[l+76>>2];f=ki(m-H|0,W-((m>>>0<H>>>0)+Q|0)|0,I,L);y=f+e|0;e=_+(e>>>0<j>>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;j=e;h=e^y;e=h-e|0;j=(f^j)-((h>>>0<j>>>0)+j|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0<R>>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0<z>>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0<M>>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0<p>>>0;f=mi(-1,2147483647,h?k:Y,h?p:f);h=_;if((h|0)==(j|0)&e>>>0>f>>>0|h>>>0<j>>>0){break e}f=e;e=j;h=K>>31;p=h^E;j=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=p?j:t;h=p?h:k;k=L>>31;p=j;s=k^I;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;j=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=mi(-1,2147483647,j?p:t,j?h:k);h=_;if((h|0)==(e|0)&f>>>0>j>>>0|e>>>0>h>>>0){break e}j=1;f=0;k=li(ki(y,x,B,J),_,q,r);h=k+w|0;e=_+O|0;e=h>>>0<k>>>0?e+1|0:e;k=i-h|0;e=U-((h>>>0>i>>>0)+e|0)|0;k=ki(k,e,k,e);w=_;h=li(ki(y,x,E,K),_,q,r);i=h+C|0;e=_+P|0;e=h>>>0>i>>>0?e+1|0:e;h=g-i|0;e=V-((g>>>0<i>>>0)+e|0)|0;i=ki(h,e,h,e);e=i+k|0;h=_+w|0;h=e>>>0<i>>>0?h+1|0:h;k=e;g=li(ki(y,x,I,L),_,q,r);i=g+H|0;e=_+Q|0;e=g>>>0>i>>>0?e+1|0:e;g=m-i|0;e=W-((i>>>0>m>>>0)+e|0)|0;g=ki(g,e,g,e);i=g+k|0;e=_+h|0;i=ki(i,g>>>0>i>>>0?e+1|0:e,q,r);e=_;m=e;if(!e&i>>>0<=1){break h}h=i;g=m;while(1){e=f<<1|j>>>31;j=j<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break g}g=n;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[n+8>>2]=0;F[n+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[g+8>>2]=F[e>>2];F[n+12>>2]=F[e+4>>2]}o=1;break e}ta();v()}f=m;j=i;if(i-1|0){break f}}while(1){e=mi(i,m,j,f);h=f+_|0;e=e+j|0;h=e>>>0<j>>>0?h+1|0:h;j=(h&1)<<31|e>>>1;f=h>>>1|0;e=ki(j,f,j,f);g=_;if((m|0)==(g|0)&e>>>0>i>>>0|g>>>0>m>>>0){continue}break}}e=F[n+20>>2];if(!e){break e}i=e-1|0;m=F[F[n+16>>2]+(i>>>3&536870908)>>2];F[n+20>>2]=i;o=1;e=ki(y,x,z,u);h=_;g=e;e=ki(q,r,M,T);g=g+e|0;h=_+h|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(j,f,A,X);i=m>>>i&1;m=i?0-e|0:e;g=m+g|0;k=h;h=_;k=k+(i?0-(h+((e|0)!=0)|0)|0:h)|0;ba=n,ca=li(g,g>>>0<m>>>0?k+1|0:k,q,r),F[ba+12>>2]=ca;e=ki(y,x,A,X);m=_;g=e;e=ki(q,r,R,S);g=g+e|0;h=_+m|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(j,f,z,u);f=0-e|0;j=_;k=(i?j:0-(((e|0)!=0)+j|0)|0)+h|0;j=g;g=i?e:f;f=j+g|0;ba=n,ca=li(f,f>>>0<g>>>0?k+1|0:k,q,r),F[ba+8>>2]=ca}Z=l+80|0;if(!o){return 0}l:{if(F[a+8>>2]<=0){break l}g=F[N>>2];e=0;while(1){f=e<<2;i=F[f+aa>>2];j=F[a+16>>2];m:{if((i|0)>(j|0)){F[f+g>>2]=j;break m}f=f+g|0;j=F[a+12>>2];if((j|0)>(i|0)){F[f>>2]=j;break m}F[f>>2]=i}e=e+1|0;i=F[a+8>>2];if((e|0)<(i|0)){continue}break}f=0;if((i|0)<=0){break l}e=d<<3;j=e+c|0;m=b+e|0;while(1){i=f<<2;e=i+j|0;i=F[i+m>>2]+F[g+i>>2]|0;F[e>>2]=i;n:{if((i|0)>F[a+16>>2]){k=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break n}k=i+F[a+20>>2]|0}F[e>>2]=k}f=f+1|0;if((f|0)<F[a+8>>2]){continue}break}}d=d+1|0;if(($|0)!=(d|0)){continue}break}}return o|0}ta();v()}function Gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=Z-96|0;Z=n;m=F[a+4>>2];d=F[m+32>>2];j=F[d+8>>2];i=F[d+12>>2];e=i;c=F[d+20>>2];f=F[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=j>>>0|(c|0)>(e|0)){break a}o=F[d>>2];h=G[o+f|0];g=f+1|0;e=g?c:c+1|0;F[d+16>>2]=g;F[d+20>>2]=e;if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}p=G[g+o|0];g=f+2|0;e=g>>>0<2?c+1|0:c;F[d+16>>2]=g;F[d+20>>2]=e;l=h<<24>>24;b:{if((l|0)>=0){k=F[a+216>>2];if(h>>>0>=(F[a+220>>2]-k|0)/144>>>0){break a}k=k+L(h,144)|0;if(F[k>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}k=a+212|0}F[k>>2]=b;c:{d:{e:{f:{g:{h:{k=H[m+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}e=G[g+o|0];f=f+3|0;c=f>>>0<3?c+1|0:c;F[d+16>>2]=f;F[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!p){break i}if(!d){break h}break a}if(p){break g}d=0}if((l|0)<0){e=a+184|0}else{c=F[a+216>>2]+L(h,144)|0;D[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=Z-112|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(120);F[d>>2]=8924;F[d+4>>2]=0;F[d+116>>2]=0;F[d+112>>2]=e;F[d+108>>2]=g;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[d+8>>2]=9136;f=d- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[d+72>>2]=0;F[d+76>>2]=0;F[d+80>>2]=0;F[d+84>>2]=0;F[d+88>>2]=0;F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=F[a+8>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;j=c+32|0;F[j>>2]=0;F[j+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;h=c- -64|0;F[h>>2]=0;F[h+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=9136;F[c+96>>2]=0;F[c+100>>2]=0;F[c+12>>2]=f;h=F[f>>2];i=F[f+4>>2];D[c+111|0]=0;k=j;j=c+111|0;Ea(k,(i-h>>2>>>0)/3|0,j);h=F[c+12>>2];i=F[h+28>>2];h=F[h+24>>2];D[c+111|0]=0;Ea(c+44|0,i-h>>2,j);F[c+28>>2]=d;F[c+24>>2]=g;F[c+20>>2]=e;F[c+16>>2]=f;f=d+8|0;e=c+8|0;lc(f,e);j:{if((e|0)==(f|0)){F[d+92>>2]=F[e+84>>2];break j}gb(d+56|0,F[e+48>>2],F[e+52>>2]);gb(d+68|0,F[e+60>>2],F[e- -64>>2]);gb(d+80|0,F[e+72>>2],F[e+76>>2]);F[d+92>>2]=F[e+84>>2];k:{h=F[e+92>>2];j=F[e+88>>2];i=h-j|0;e=i>>2;f=F[d+104>>2];g=F[d+96>>2];if(e>>>0<=f-g>>2>>>0){i=F[d+100>>2]-g|0;f=i+j|0;m=i>>2;i=e>>>0>m>>>0?f:h;l=i-j|0;if((i|0)!=(j|0)){pa(g,j,l)}if(e>>>0>m>>>0){e=F[d+100>>2];if((h|0)!=(i|0)){while(1){F[e>>2]=F[f>>2];e=e+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}F[d+100>>2]=e;break k}F[d+100>>2]=g+l;break k}if(g){F[d+100>>2]=g;ja(g);F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=0}l:{if((i|0)<0){break l}g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0<g>>>0?g:e;if(e>>>0>=1073741824){break l}f=e<<2;e=ka(f);F[d+96>>2]=e;F[d+104>>2]=e+f;if((h|0)!=(j|0)){f=e;e=(i-4&-4)+4|0;e=la(f,j,e)+e|0}F[d+100>>2]=e;break k}na();v()}}F[c+8>>2]=9136;e=F[c+96>>2];if(e){F[c+100>>2]=e;ja(e)}e=F[c+80>>2];if(e){F[c+84>>2]=e;ja(e)}e=F[c+68>>2];if(e){F[c+72>>2]=e;ja(e)}e=F[c+56>>2];if(e){F[c+60>>2]=e;ja(e)}F[c+8>>2]=9372;e=F[c+44>>2];if(e){ja(e)}e=F[c+32>>2];if(e){ja(e)}Z=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=F[a+216>>2];c=F[m+44>>2];d=ka(80);F[d>>2]=9684;F[d+4>>2]=0;F[d+76>>2]=0;F[d+68>>2]=c;F[d+8>>2]=8624;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;e=e+L(h,144)|0;f=e+104|0;F[d+72>>2]=f;F[d- -64>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[n+24>>2]=c;c=n;F[c+68>>2]=0;F[c+72>>2]=0;F[c+60>>2]=0;F[c+64>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+28>>2]=d;g=F[c+28>>2];F[c+8>>2]=F[c+24>>2];F[c+12>>2]=g;F[c+20>>2]=f;f=e+4|0;F[c+16>>2]=f;F[c+36>>2]=0;F[c+40>>2]=0;F[c+32>>2]=8624;e=F[c+20>>2];F[c>>2]=F[c+16>>2];F[c+4>>2]=e;e=c+32|0;Fd(e,f,c);c=d+8|0;lc(c,e);if((c|0)!=(e|0)){gb(d+56|0,F[e+48>>2],F[e+52>>2])}Ed(e);break c}c=Z+-64|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(80);F[d>>2]=9392;F[d+4>>2]=0;F[d+76>>2]=0;F[d+72>>2]=e;F[d+68>>2]=g;F[d+8>>2]=9556;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d- -64>>2]=0;j=d+56|0;f=j;F[f>>2]=0;F[f+4>>2]=0;f=F[a+8>>2];F[c+40>>2]=0;F[c+44>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;h=c+24|0;F[h>>2]=0;F[h+4>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+8>>2]=0;F[c+12>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c>>2]=9556;F[c+4>>2]=f;i=F[f>>2];l=F[f+4>>2];D[c+63|0]=0;k=h;h=c+63|0;Ea(k,(l-i>>2>>>0)/3|0,h);i=F[c+4>>2];l=F[i+28>>2];i=F[i+24>>2];D[c+63|0]=0;Ea(c+36|0,l-i>>2,h);F[c+20>>2]=d;F[c+16>>2]=g;F[c+12>>2]=e;F[c+8>>2]=f;lc(d+8|0,c);gb(j,F[c+48>>2],F[c+52>>2]);F[c>>2]=9556;e=F[c+48>>2];if(e){F[c+52>>2]=e;ja(e)}F[c>>2]=9372;e=F[c+36>>2];if(e){ja(e)}e=F[c+24>>2];if(e){ja(e)}Z=c- -64|0}if(!d){break a}}d=yc(ka(64),d);c=F[a+4>>2];a=d;d=b;m:{n:{if((d|0)>=0){g=c+8|0;b=F[c+12>>2];j=F[c+8>>2];e=b-j>>2;o:{if((e|0)>(d|0)){break o}f=d+1|0;if(d>>>0>=e>>>0){Pb(g,f-e|0);break o}if(e>>>0<=f>>>0){break o}f=j+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=F[b>>2];F[b>>2]=0;if(e){$[F[F[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}F[c+12>>2]=f}c=F[g>>2]+(d<<2)|0;b=F[c>>2];F[c>>2]=a;if(b){break n}break m}b=a;if(!a){break m}}$[F[F[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}Z=n+96|0;return q|0}function Ab(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e+32768>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>32767){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>32767|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m<M(-32768)|m!=m){break d}n=M(N(m));if(n==M(Infinity)){break d}e=(b<<1)+d|0;if(n<M(2147483648)){i=~~m}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m<M(-32768)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m<M(0)|m>M(1)){break d}e=(b<<1)+d|0;l=R(+m*32767+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=R(l*32767+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return j}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b>>2];if((e|0)<0){break b}F[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>2147483647|k){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m<M(-2147483648)|m!=m){break d}n=M(N(m));if(n==M(Infinity)){break d}e=(b<<2)+d|0;if(n<M(2147483648)){i=~~m}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m<M(-2147483648)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m<M(0)|m>M(1)){break d}e=(b<<2)+d|0;l=R(+m*2147483647+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=R(l*2147483647+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return j}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=D[b|0];if((e|0)<0){break b}E[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}e=(b<<1)+d|0;if(m<M(4294967296)&m>=M(0)){i=~~m>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m>M(1)){break d}e=(b<<1)+d|0;j=R(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=R(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return l}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Ga(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0),o=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=D[b|0];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=E[b>>1];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b>>2];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=F[b+4>>2];e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];i=F[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;F[j>>2]=e;F[j+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=G[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break d}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=J[g>>2];if(k>=M(0x8000000000000000)|k<M(-0x8000000000000000)|k!=k){break a}n=M(N(k));if(n==M(Infinity)){break a}e=(b<<3)+d|0;e:{if(n<M(0x8000000000000000)){j=M(N(k))>=M(1)?~~(k>M(0)?M(P(M(R(M(k*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(k-M(~~k>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=G[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break f}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=K[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=N(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=N(l)>=1?~~(l>0?P(R(l*2.3283064365386963e-10),4294967295):S((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ma(d,0,a<<3)}}function le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i)}ja(c);c=1}return c|0}function xb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}e=(b<<2)+d|0;if(m<M(4294967296)&m>=M(0)){i=~~m>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m>M(1)){break d}e=(b<<2)+d|0;j=R(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=R(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return k}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function rd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}h=F[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0<e>>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}f=e+(d<<2)|0;F[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((c|0)!=(h|0)){continue}break}}F[a+56>>2]=e+(g<<2);F[a+52>>2]=d;F[a+48>>2]=f;if(!h){break f}ja(h)}F[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=F[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=F[F[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=F[F[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=F[a+36>>2];h=d+(c>>>3&536870908)|0;g=F[h>>2];f=1<<c;if(!(g&f)){F[h>>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ka(f,c,d);d=F[a+36>>2]}f=d+i|0;d=F[f>>2];c=1<<e;if(!(d&c)){F[f>>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ka(d,e,c)}c=-1;c=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:c;f=F[a+36>>2]+(c>>>3&536870908)|0;d=F[f>>2];e=1<<c;if(!(d&e)){F[f>>2]=d|e;Ka(a+8|0,c,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){e=L(d,12)+a|0;b=F[e+52>>2];if((b|0)==F[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=F[b>>2];F[e+52>>2]=b;F[a+84>>2]=d;if((c|0)==-1){break e}f=F[a+24>>2];b=(c>>>0)/3|0;j:{if(F[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;F[b>>2]=F[b>>2]|1<<k;d=-1;l:{m:{n:{o:{p:{q:{r:{s:{d=(c|0)!=-1?F[F[F[a+4>>2]>>2]+(c<<2)>>2]:d;f=F[a+36>>2]+(d>>>3&536870908)|0;e=F[f>>2];b=1<<d;if(!(e&b)){F[f>>2]=b|e;i=F[(F[F[a+16>>2]+96>>2]+L(k,12)|0)+((c>>>0)%3<<2)>>2];l=F[F[a+20>>2]+4>>2];f=F[l+4>>2];t:{if((f|0)!=F[l+8>>2]){F[f>>2]=i;F[l+4>>2]=f+4;break t}j=F[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(j|0)){continue}break}}F[l+8>>2]=e+(h<<2);F[l+4>>2]=g;F[l>>2]=b;if(!j){break t}ja(j)}j=F[a+12>>2];f=F[j+4>>2];u:{if((f|0)!=F[j+8>>2]){F[f>>2]=c;F[j+4>>2]=f+4;break u}i=F[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(i|0)){continue}break}}F[j+8>>2]=e+(h<<2);F[j+4>>2]=g;F[j>>2]=b;if(!i){break u}ja(i)}b=F[a+12>>2];F[F[b+12>>2]+(d<<2)>>2]=F[b+24>>2];F[b+24>>2]=F[b+24>>2]+1}if((c|0)==-1){break k}g=F[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=F[F[g+12>>2]+(b<<2)>>2]}v:{w:{if((L(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=F[F[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=F[F[a+24>>2]+(b>>>3&268435452)>>2]&1<<b;if(d){break q}l=(b|0)!=0;break p}l=1;if(!d){break p}break k}na();v()}na();v()}if(!b){break o}break k}b=d?-1:e;x:{if(F[F[a+24>>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=F[F[g>>2]+(c<<2)>>2];if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;e=F[b>>2];F[b>>2]=e+1;k=(e|0)<=0?2:1}if(F[a+84>>2]>=(k|0)&l){break m}j=L(k,12)+a|0;b=F[j+52>>2];y:{if((b|0)!=F[j+56>>2]){F[b>>2]=c;F[j+52>>2]=b+4;break y}i=F[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(i|0)){continue}break}}F[j+48>>2]=d;F[j+52>>2]=c;F[j+56>>2]=e+(g<<2);if(!i){break y}ja(i)}if(F[a+84>>2]<=(k|0)){break x}F[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=F[a+88>>2]+(c<<2)|0;c=F[b>>2];F[b>>2]=c+1;b=(c|0)<=0?2:1}if(F[a+84>>2]<(b|0)){break l}c=f}f=F[a+24>>2];continue}break}k=L(b,12)+a|0;c=F[k+52>>2];z:{if((c|0)!=F[k+56>>2]){F[c>>2]=f;F[k+52>>2]=c+4;break z}i=F[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[k+48>>2]=d;F[k+52>>2]=f;F[k+56>>2]=e+(g<<2);if(!i){break z}ja(i)}d=F[a+84>>2];if((d|0)<=(b|0)){break j}F[a+84>>2]=b;d=b;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}oa();v()}na();v()}na();v()}na();v()}function Mc(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[Lc(10352,10544,e+12|0)>>2];break a}if(a>>>0>=4294967292){V();v()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=Lc(10544,10736,e+8|0)-10544>>2;while(1){d=F[(g<<2)+10544>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0<a>>>0){break a}if((L(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break b}b=F[(a<<2)+10352>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}}Z=e+16|0;return d}function lb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(D[b|0]);J[(h<<2)+d>>2]=i?M(j/M(127)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(G[b|0]);J[(h<<2)+d>>2]=i?M(j/M(255)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(E[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(32767)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(H[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(65535)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(F[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(I[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +F[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +I[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=K[b>>3];b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ma(d,0,a<<2)}return l}function Cb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e+128&65535)>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e+128>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>127|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(127)|l<M(-128)|l!=l){break d}m=M(N(l));if(m==M(Infinity)){break d}e=d+g|0;e:{f:{if(G[a+32|0]){if(l<M(0)|l>M(1)){break d}j=R(+l*127+.5);if(!(N(j)<2147483648)){break f}h=~~j;break e}if(!(m<M(2147483648))){break f}h=~~l;break e}h=-2147483648}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=127|j<-128|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j<0|j>1){break b}j=R(j*127+.5)}g:{if(N(j)<2147483648){h=~~j;break g}h=-2147483648}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function Bb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(255)|l<M(0)|(M(N(l))==M(Infinity)|l!=l)){break d}e=d+g|0;e:{f:{if(G[a+32|0]){if(l>M(1)){break d}j=R(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l<M(4294967296)&l>=M(0))){break f}h=~~l>>>0;break e}h=0}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=255|j<0|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j>1){break b}j=R(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-48|0;Z=e;f=H[5053]|H[5054]<<16;d=H[5051]|H[5052]<<16;E[e+38>>1]=d;E[e+40>>1]=d>>>16;E[e+42>>1]=f;E[e+44>>1]=f>>>16;d=F[2525];F[e+32>>2]=F[2524];F[e+36>>2]=d;d=F[2523];F[e+24>>2]=F[2522];F[e+28>>2]=d;d=F[2521];F[e+16>>2]=F[2520];F[e+20>>2]=d;g=F[b+8>>2];i=F[b+12>>2];h=F[b+20>>2];d=F[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0<f>>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break d}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}f=d+F[b>>2]|0;d=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;D[c+4|0]=G[f+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(sa(c,1250,5)){d=ka(32);D[d+17|0]=0;D[d+16|0]=G[1494];c=G[1490]|G[1491]<<8|(G[1492]<<16|G[1493]<<24);b=G[1486]|G[1487]<<8|(G[1488]<<16|G[1489]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1482]|G[1483]<<8|(G[1484]<<16|G[1485]<<24);b=G[1478]|G[1479]<<8|(G[1480]<<16|G[1481]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,d,17);ja(d);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break f}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+5|0]=G[f+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break h}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+6|0]=G[d+F[b>>2]|0];h=F[b+20>>2];d=F[b+16>>2]+1|0;h=d?h:h+1|0;F[b+16>>2]=d;F[b+20>>2]=h;f=F[b+12>>2];if((f|0)<=(h|0)&I[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break j}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+7|0]=G[d+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}D[c+8|0]=G[d+F[b>>2]|0];d=F[b+20>>2];g=F[b+16>>2];f=g+1|0;i=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=i;i=F[b+8>>2];h=F[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}d=c;c=F[b>>2]+f|0;E[d+10>>1]=G[c|0]|G[c+1|0]<<8;g=F[b+20>>2];c=F[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;F[b+16>>2]=c;F[b+20>>2]=g;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}Z=e+48|0;return}za();v()}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=Z-96|0;Z=e;f=F[a+16>>2];D[e+92|0]=1;F[e+88>>2]=b;F[e+84>>2]=b;F[e+80>>2]=f;j=F[a+20>>2];d=F[j>>2];a:{b:{f=F[F[f+28>>2]+(b<<2)>>2];if(f>>>0<F[j+4>>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(f<<2)>>2]<<2)>>2];f=F[a+4>>2];if(!G[f+84|0]){d=F[F[f+68>>2]+(d<<2)>>2]}F[e+72>>2]=0;F[e+76>>2]=0;j=e- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[e+56>>2]=0;F[e+60>>2]=0;Ga(f,d,D[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!F[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=F[a+20>>2];b=F[n>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[n+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;Ga(b,d,D[b+24|0],e+32|0);d=F[a+20>>2];b=F[d>>2];f=F[F[F[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(f<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ga(b,d,D[b+24|0],e+8|0);g=F[e+8>>2];b=F[e+56>>2];d=g-b|0;p=F[e+60>>2];t=F[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=F[e+40>>2];f=F[e+64>>2];n=h-f|0;u=F[e+68>>2];y=F[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=ki(d,t,n,y);w=o-g|0;x=i-(_+(g>>>0>o>>>0)|0)|0;i=w;h=F[e+16>>2];g=h-f|0;u=F[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=F[e+32>>2];h=k-b|0;w=F[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,h,w);o=i+b|0;i=_+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=F[e+48>>2];f=F[e+72>>2];d=k-f|0;t=F[e+76>>2];x=F[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0<l>>>0?b+1|0:b;l=F[e+24>>2];p=l-f|0;f=F[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=ki(p,f,h,w);l=k-q|0;q=b-(_+(k>>>0<q>>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,f,n,y);r=s+d|0;b=_+b|0;s=r>>>0<s>>>0?b+1|0:b;b=F[e+88>>2];f=F[e+80>>2];d:{if(G[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[e+88>>2]=b;if((b|0)!=-1){break e}}b=F[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[e+92|0]=0;F[e+88>>2]=d;break d}if((b|0)!=F[e+84>>2]){break d}F[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[e+88>>2]=d}b=F[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0<f>>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0<a>>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=li(o,n,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=e+96|0;return}ta();v()}ta();v()}ta();v()}function Jg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=Z-32|0;Z=e;a:{if(!hb(1,e+28|0,F[a+32>>2])){break a}if(!hb(1,e+24|0,F[a+32>>2])){break a}l=F[e+28>>2];if(l>>>0>1431655765){break a}d=F[a+32>>2];c=d;g=F[c+8>>2];b=F[c+16>>2];f=F[c+12>>2];c=F[c+20>>2];i=li(g-b|0,f-(c+(b>>>0>g>>>0)|0)|0,3,0);if(!_&i>>>0<l>>>0|((c|0)>=(f|0)&b>>>0>=g>>>0|(c|0)>(f|0))){break a}g=G[b+F[d>>2]|0];b=b+1|0;c=b?c:c+1|0;F[d+16>>2]=b;F[d+20>>2]=c;b:{c:{if(!g){c=Z-32|0;Z=c;F[c+24>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;d:{e:{b=L(l,3);if(b){if(b>>>0>=1073741824){break e}d=L(l,12);n=ka(d);ma(n,0,d)}b=mc(b,1,F[a+32>>2],n);f:{g:{if(!(!l|!b)){d=0;while(1){h:{g=F[(d<<2)+n>>2];b=g>>>1|0;i:{if(g&1){if((b|0)>(h|0)){break h}b=0-b|0;break i}if((h^2147483647)>>>0<b>>>0){break h}}g=b+h|0;F[c>>2]=g;h=F[(d+1<<2)+n>>2];b=h>>>1|0;j:{if(h&1){if((b|0)>(g|0)){break h}b=0-b|0;break j}if((g^2147483647)>>>0<b>>>0){break h}}g=b+g|0;F[c+4>>2]=g;h=F[(d+2<<2)+n>>2];b=h>>>1|0;k:{if(h&1){if((b|0)>(g|0)){break h}b=0-b|0;break k}if((g^2147483647)>>>0<b>>>0){break h}}d=d+3|0;h=b+g|0;F[c+8>>2]=h;mb(F[a+44>>2]+96|0,c);b=1;j=j+1|0;if((j|0)!=(l|0)){continue}break g}break}b=0;break g}if(!n){break f}}ja(n)}Z=c+32|0;break d}na();v()}if(!b){break a}n=F[e+24>>2];break c}n=F[e+24>>2];if(n>>>0<=255){if(!l){break c}while(1){l:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d=F[a+32>>2];b=d;g=F[b+16>>2];f=F[b+8>>2];c=F[b+20>>2];i=F[b+12>>2];b=i;if(f>>>0<=g>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break l}j=F[d>>2];m=G[j+g|0];b=c;h=g+1|0;b=h?b:b+1|0;F[d+16>>2]=h;F[d+20>>2]=b;F[e+8>>2]=m;m=f>>>0<g>>>0&(c|0)>=(i|0)|(c|0)>(i|0);f=m?g:f;i=m?c:i;if((f|0)==(h|0)&(i|0)==(b|0)){break l}m=G[h+j|0];b=c;h=g+2|0;b=h>>>0<2?b+1|0:b;F[d+16>>2]=h;F[d+20>>2]=b;F[e+12>>2]=m;if((f|0)==(h|0)&(b|0)==(i|0)){break l}h=G[h+j|0];b=c;c=g+3|0;b=c>>>0<3?b+1|0:b;F[d+16>>2]=c;F[d+20>>2]=b;F[e+16>>2]=h;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}if(n>>>0<=65535){if(!l){break c}while(1){m:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];g=b;f=h+2|0;b=f>>>0<2?b+1|0:b;if(c>>>0<f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}m=F[j>>2];i=m+h|0;i=G[i|0]|G[i+1|0]<<8;F[j+16>>2]=f;F[j+20>>2]=b;F[e+8>>2]=i;b=g;i=h+4|0;b=i>>>0<4?b+1|0:b;if(c>>>0<i>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}f=f+m|0;f=G[f|0]|G[f+1|0]<<8;F[j+16>>2]=i;F[j+20>>2]=b;F[e+12>>2]=f;f=c;b=g;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}d=i+m|0;d=G[d|0]|G[d+1|0]<<8;F[j+16>>2]=c;F[j+20>>2]=b;F[e+16>>2]=d;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}n:{if(n>>>0>2097151){break n}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break n}if(!l){break c}while(1){o:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+8>>2]=F[e+4>>2];if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+12>>2]=F[e+4>>2];if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+16>>2]=F[e+4>>2];mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}if(!l){break c}while(1){F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];g=b;f=h+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0<f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}m=F[j>>2];i=m+h|0;i=G[i|0]|G[i+1|0]<<8|(G[i+2|0]<<16|G[i+3|0]<<24);F[j+16>>2]=f;F[j+20>>2]=b;F[e+8>>2]=i;b=g;i=h+8|0;b=i>>>0<8?b+1|0:b;if(c>>>0<i>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}f=f+m|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[j+16>>2]=i;F[j+20>>2]=b;F[e+12>>2]=f;f=c;b=g;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}d=i+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+16>>2]=c;F[j+20>>2]=b;F[e+16>>2]=d;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;k=1;break a}k=0}Z=e+32|0;return k|0}function te(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=Z-16|0;Z=g;f=1;m=$[F[F[a>>2]+24>>2]](a)|0;a:{if((m|0)<=0){break a}r=a+48|0;f=0;while(1){b:{c:{if(!F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}o=l<<2;d=F[o+F[a+36>>2]>>2];c=F[d+8>>2];e=bb(d);if(!e){break c}h=F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[g+12>>2]=F[c+56>>2];d=ka(32);F[g>>2]=d;F[g+4>>2]=24;F[g+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);b=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[d+16|0]=b;D[d+17|0]=b>>>8;D[d+18|0]=b>>>16;D[d+19|0]=b>>>24;D[d+20|0]=c;D[d+21|0]=c>>>8;D[d+22|0]=c>>>16;D[d+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);b=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);b=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;D[d+24|0]=0;c=h+16|0;b=F[c>>2];d:{e:{if(!b){break e}i=F[g+12>>2];d=c;while(1){k=(i|0)>F[b+16>>2];d=k?d:b;b=F[(k?b+4|0:b)>>2];if(b){continue}break}if((c|0)==(d|0)|(i|0)<F[d+16>>2]){break e}b=F[d+24>>2];if(!b){break e}i=d+20|0;d=G[g+11|0];c=d<<24>>24<0;k=c?F[g>>2]:g;d=c?F[g+4>>2]:d;while(1){c=G[b+27|0];j=c<<24>>24<0;c=j?F[b+20>>2]:c;p=c>>>0<d>>>0;f:{g:{h:{i:{j:{k:{n=p?c:d;if(n){j=j?F[b+16>>2]:b+16|0;q=sa(k,j,n);if(q){break k}if(c>>>0<=d>>>0){break j}break f}if(c>>>0<=d>>>0){break i}break f}if((q|0)<0){break f}}c=sa(j,k,n);if(c){break h}}if(p){break g}d=gc(i,g);break d}if((c|0)<0){break g}d=gc(i,g);break d}b=b+4|0}b=F[b>>2];if(b){continue}break}}d=gc(h,g)}if(D[g+11|0]<0){ja(F[g>>2])}if(!d){break c}d=0;c=F[F[o+F[a+36>>2]>>2]+8>>2];if(!F[c+64>>2]){b=ka(32);F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;f=F[c+64>>2];F[c+64>>2]=b;if(f){b=F[f>>2];if(b){F[f+4>>2]=b;ja(b)}ja(f);b=F[c+64>>2]}F[c>>2]=b;f=F[b+20>>2];F[c+8>>2]=F[b+16>>2];F[c+12>>2]=f;f=F[b+24>>2];b=F[b+28>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+16>>2]=f;F[c+20>>2]=b}l:{D[c+24|0]=G[e+24|0];F[c+28>>2]=F[e+28>>2];D[c+32|0]=G[e+32|0];b=F[e+44>>2];F[c+40>>2]=F[e+40>>2];F[c+44>>2]=b;b=F[e+52>>2];F[c+48>>2]=F[e+48>>2];F[c+52>>2]=b;F[c+56>>2]=F[e+56>>2];b=F[e+12>>2];F[c+8>>2]=F[e+8>>2];F[c+12>>2]=b;b=F[e+20>>2];F[c+16>>2]=F[e+16>>2];F[c+20>>2]=b;F[c+60>>2]=F[e+60>>2];f=F[e>>2];m:{if(!f){F[c>>2]=0;b=1;break m}h=F[c>>2];b=0;if(!h){break m}b=F[f>>2];f=F[f+4>>2]-b|0;md(h,b,f,0);b=1}if(!b){break l}D[c+84|0]=G[e+84|0];F[c+80>>2]=F[e+80>>2];if((c|0)!=(e|0)){gb(c+68|0,F[e+68>>2],F[e+72>>2])}n:{h=F[e+88>>2];o:{if(h){f=ka(40);e=F[h>>2];F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=e;e=F[h+12>>2];b=F[h+8>>2];if((e|0)!=(b|0)){b=e-b|0;if((b|0)<0){break n}e=ka(b);F[f+12>>2]=e;F[f+8>>2]=e;F[f+16>>2]=b+e;b=F[h+8>>2];i=F[h+12>>2];p:{if((b|0)==(i|0)){break p}k=i+(b^-1)|0;j=i-b&7;if(j){while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}}if(k>>>0<7){break p}while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((i|0)!=(b|0)){continue}break}}F[f+12>>2]=e}d=F[h+36>>2];F[f+32>>2]=F[h+32>>2];F[f+36>>2]=d;d=F[h+28>>2];F[f+24>>2]=F[h+24>>2];F[f+28>>2]=d;e=F[c+88>>2];F[c+88>>2]=f;if(e){break o}break l}e=F[c+88>>2];F[c+88>>2]=0;if(!e){break l}}d=F[e+8>>2];if(d){F[e+12>>2]=d;ja(d)}ja(e);break l}na();v()}break b}d=F[F[a+36>>2]+(l<<2)>>2];if(!($[F[F[d>>2]+24>>2]](d,r)|0)){break a}}l=l+1|0;f=(m|0)<=(l|0);if((l|0)!=(m|0)){continue}break}}Z=g+16|0;return f|0}function Ld(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a:{b:{if(!H[b+38>>1]){break b}if(!Ta(1,h+12|0,b)){break b}e=F[b+8>>2];f=F[b+16>>2];j=e-f|0;k=F[h+12>>2];e=F[b+12>>2]-(F[b+20>>2]+(e>>>0<f>>>0)|0)|0;if(j>>>0<k>>>6>>>0&(e|0)<=0|(e|0)<0){break b}e=F[h>>2];d=F[h+4>>2]-e>>2;c:{if(d>>>0<k>>>0){qa(h,k-d|0);k=F[h+12>>2];break c}if(d>>>0<=k>>>0){break c}F[h+4>>2]=e+(k<<2)}i=1;if(!k){break a}e=F[b+16>>2];d=F[b+20>>2];r=F[h>>2];l=F[b+8>>2];o=F[b+12>>2];j=0;while(1){i=0;if((d|0)>=(o|0)&e>>>0>=l>>>0|(d|0)>(o|0)){break a}i=F[b>>2];p=G[i+e|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=p>>>2|0;m=0;d:{e:{f:{g:{s=p&3;switch(s|0){case 3:break g;case 0:break e;default:break f}}f=f+j|0;i=0;if(f>>>0>=k>>>0){break a}ma(r+(j<<2)|0,0,(p&252)+4|0);j=f;break d}while(1){if((e|0)==(l|0)&(d|0)==(o|0)){break b}k=G[e+i|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=k<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}F[r+(j<<2)>>2]=f}j=j+1|0;k=F[h+12>>2];if(j>>>0<k>>>0){continue}break}d=h+16|0;o=F[h>>2];f=F[h+16>>2];e=F[h+20>>2]-f|0;h:{if(e>>>0<=4194303){qa(d,1048576-(e>>>2|0)|0);break h}if((e|0)==4194304){break h}F[h+20>>2]=f+4194304}e=h+28|0;j=F[e>>2];f=F[h+32>>2]-j>>3;i:{if(f>>>0<k>>>0){_a(e,k-f|0);j=F[e>>2];break i}if(f>>>0>k>>>0){F[h+32>>2]=(k<<3)+j}if(!k){break b}}l=F[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;h=F[e>>2];m=(d<<3)+j|0;f=i;F[m+4>>2]=f;F[m>>2]=h;e=F[e>>2];i=e+f|0;if(i>>>0>1048576){break b}j:{if(f>>>0>=i>>>0){break j}m=0;h=e&7;if(h){while(1){F[l+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((h|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break j}while(1){e=l+(f<<2)|0;F[e>>2]=d;F[e+28>>2]=d;F[e+24>>2]=d;F[e+20>>2]=d;F[e+16>>2]=d;F[e+12>>2]=d;F[e+8>>2]=d;F[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((k|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}k:{if(!i|(F[g+20>>2]?0:a)){break k}i=0;j=Z-16|0;Z=j;l:{if(!Sa(1,j+8|0,b)){break l}d=F[b+8>>2];f=F[b+16>>2];l=d-f|0;n=F[j+12>>2];h=F[b+20>>2];d=F[b+12>>2]-(h+(d>>>0<f>>>0)|0)|0;e=F[j+8>>2];if((n|0)==(d|0)&e>>>0>l>>>0|d>>>0<n>>>0){break l}d=h+n|0;l=e+f|0;d=l>>>0<f>>>0?d+1|0:d;F[b+16>>2]=l;F[b+20>>2]=d;if((e|0)<=0){break l}b=f+F[b>>2]|0;F[g+48>>2]=b;d=e-1|0;f=d+b|0;l=G[f|0];m:{if(l>>>0<=63){F[g+52>>2]=d;b=G[f|0]&63;break m}n:{switch((l>>>6|0)-1|0){case 0:if(e>>>0<2){break l}d=e-2|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8&16128|G[b|0];break m;case 1:if(e>>>0<3){break l}d=e-3|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break m;default:break n}}d=e-4|0;F[g+52>>2]=d;b=b+d|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[g+56>>2]=b+4194304;i=b>>>0<1069547520}Z=j+16|0;if(!i){break k}if(!a){t=1;break k}b=F[g+52>>2];f=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];j=F[g+24>>2];while(1){o:{if(f>>>0>4194303){break o}while(1){if((b|0)<=0){break o}b=b-1|0;F[g+52>>2]=b;f=G[b+e|0]|f<<8;F[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;l=F[j+(i<<2)>>2];n=d+(l<<3)|0;f=(L(F[n>>2],f>>>20|0)+i|0)-F[n+4>>2]|0;F[g+56>>2]=f;F[(q<<2)+c>>2]=l;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;return t}function kh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=M(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){m=F[d+80>>2];u=Z-16|0;Z=u;g=F[a+4>>2];k=G[b+24|0];h=F[d+48>>2];n=F[F[d>>2]>>2];c=u+8|0;F[c>>2]=1065353216;d=c;J[c>>2]=M(-1<<g^-1)/J[a+20>>2];c=ka(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=J[d>>2];n=F[a+8>>2];v=F[b>>2];d=F[b+48>>2];g=F[b+40>>2];w=F[b+44>>2];if(!G[b+84|0]){f=F[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=F[v>>2];l=ki(g,w,F[f+(i<<2)>>2],0)+d|0;h=la(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));b:{if(M(N(e))<M(2147483648)){r=~~e;break b}r=-2147483648}F[l>>2]=r;j=j|4;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));c:{if(M(N(e))<M(2147483648)){j=~~e;break c}j=-2147483648}F[l+4>>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+h>>2]-J[b+n>>2]))+M(.5))));d:{if(M(N(e))<M(2147483648)){b=~~e;break d}b=-2147483648}F[l>>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=F[v>>2];h=ki(g,w,i,l)+d|0;j=la(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));e:{if(M(N(e))<M(2147483648)){r=~~e;break e}r=-2147483648}F[h>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));f:{if(M(N(e))<M(2147483648)){f=~~e;break f}f=-2147483648}F[h+4>>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+j>>2]-J[b+n>>2]))+M(.5))));g:{if(M(N(e))<M(2147483648)){b=~~e;break g}b=-2147483648}F[h>>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}ja(c);Z=u+16|0;return 1}j=Z-16|0;Z=j;m=F[a+4>>2];i=G[b+24|0];g=F[d+48>>2];h=F[F[d>>2]>>2];d=j+8|0;F[d>>2]=1065353216;l=d;J[d>>2]=M(-1<<m^-1)/J[a+20>>2];d=ka(i<<2);m=F[c+4>>2];q=F[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=J[l>>2];h=F[a+8>>2];v=F[b>>2];l=F[b+48>>2];m=F[b+40>>2];w=F[b+44>>2];if(G[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[q+(c<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));i:{if(M(N(e))<M(2147483648)){r=~~e;break i}r=-2147483648}F[g>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));j:{if(M(N(e))<M(2147483648)){f=~~e;break j}f=-2147483648}F[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));k:{if(M(N(e))<M(2147483648)){b=~~e;break k}b=-2147483648}F[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=F[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[s+(F[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));l:{if(M(N(e))<M(2147483648)){r=~~e;break l}r=-2147483648}F[g>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));m:{if(M(N(e))<M(2147483648)){f=~~e;break m}f=-2147483648}F[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));n:{if(M(N(e))<M(2147483648)){b=~~e;break n}b=-2147483648}F[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}ja(d);Z=j+16|0;return 1}\nfunction Cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+4>>2];e=F[a>>2];f=(c-e|0)/144|0;if(f>>>0<b>>>0){e=a;b=b-f|0;h=F[a+8>>2];c=F[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){va(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=L(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}F[e+4>>2]=c;break a}c:{d:{e:{a=c;c=F[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0<f>>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=ka(L(f,144))}c=L(i,144)+g|0;a=c;h=b&7;if(h){while(1){va(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=L(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=L(f,144)+g|0;d=F[e+4>>2];f=F[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;F[c>>2]=F[a>>2];F[c+4>>2]=F[a+4>>2];F[c+8>>2]=F[a+8>>2];F[c+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[c+16>>2]=F[a+16>>2];F[c+20>>2]=F[a+20>>2];F[c+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;g=G[a+28|0];F[c+40>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;D[c+28|0]=g;F[c+32>>2]=F[a+32>>2];F[c+36>>2]=F[a+36>>2];F[c+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[c+52>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+44>>2]=F[a+44>>2];F[c+48>>2]=F[a+48>>2];F[c+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;g=c- -64|0;F[g>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+56>>2]=F[a+56>>2];F[c+60>>2]=F[a+60>>2];i=g;g=a- -64|0;F[i>>2]=F[g>>2];F[g>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[c+68>>2]=F[a+68>>2];g=F[a+72>>2];F[c+84>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+72>>2]=g;F[c+76>>2]=F[a+76>>2];F[c+80>>2]=F[a+80>>2];F[c+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[c+96>>2]=0;F[c+88>>2]=0;F[c+92>>2]=0;F[c+88>>2]=F[a+88>>2];F[c+92>>2]=F[a+92>>2];F[c+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;g=G[a+100|0];F[c+112>>2]=0;F[c+104>>2]=0;F[c+108>>2]=0;D[c+100|0]=g;F[c+104>>2]=F[a+104>>2];F[c+108>>2]=F[a+108>>2];F[c+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[c+124>>2]=0;F[c+116>>2]=0;F[c+120>>2]=0;F[c+116>>2]=F[a+116>>2];F[c+120>>2]=F[a+120>>2];F[c+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;g=F[a+128>>2];F[c+140>>2]=0;F[c+132>>2]=0;F[c+136>>2]=0;F[c+128>>2]=g;F[c+132>>2]=F[a+132>>2];F[c+136>>2]=F[a+136>>2];F[c+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}F[e+8>>2]=b;a=F[e+4>>2];F[e+4>>2]=h;d=F[e>>2];F[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;ja(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;ja(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;ja(c)}Gb(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}na();v()}oa();v()}F[e+8>>2]=b;F[e+4>>2]=h;F[e>>2]=c}if(d){ja(d)}}return}if(b>>>0<f>>>0){e=e+L(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=F[b+132>>2];if(d){F[c-8>>2]=d;ja(d)}d=F[c-28>>2];if(d){F[c-24>>2]=d;ja(d)}d=F[c-40>>2];if(d){F[c-36>>2]=d;ja(d)}Gb(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}F[a+4>>2]=e}}function Yc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];b=F[a+64>>2];c=F[b+24>>2];if((c|0)==F[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=F[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=g;F[a+56>>2]=b+4;break e}d=F[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=ka(f<<2)}else{e=0}c=e+(h<<2)|0;F[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=e+(f<<2);F[a+56>>2]=h;F[a+52>>2]=c;if(!d){break e}ja(d)}f:{g:{if(!(F[F[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|F[F[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=F[F[F[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=F[a+64>>2];f=F[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|F[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=F[F[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}F[F[a+28>>2]+(e<<2)>>2]=g;b=F[a+44>>2];i:{if((b|0)!=F[a+48>>2]){F[b>>2]=e;F[a+44>>2]=b+4;break i}d=F[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=ka(f<<2)}else{i=0}c=i+(h<<2)|0;F[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+48>>2]=i+(f<<2);F[a+44>>2]=h;F[a+40>>2]=c;if(!d){break i}ja(d)}i=g+1|0;b=F[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=F[a+56>>2];k:{if((b|0)!=F[a+60>>2]){F[b>>2]=i;F[a+56>>2]=b+4;break k}d=F[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=ka(h<<2)}else{g=0}c=g+(j<<2)|0;F[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=g+(h<<2);F[a+56>>2]=j;F[a+52>>2]=c;if(!d){break k}ja(d)}d=i+1|0;b=F[a+44>>2];l:{if((b|0)!=F[a+48>>2]){F[b>>2]=f;F[a+44>>2]=b+4;break l}h=F[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0<j>>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=ka(j<<2)}else{g=0}c=g+(l<<2)|0;F[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(h|0)){continue}break}}F[a+48>>2]=g+(j<<2);F[a+44>>2]=l;F[a+40>>2]=c;if(!h){break l}ja(h)}g=i;i=d}F[F[a+28>>2]+(f<<2)>>2]=g;b=F[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=F[b+24>>2];if(k>>>0<F[b+28>>2]-c>>2>>>0){continue}break}return 1}na();v()}oa();v()}na();v()}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=Z-96|0;Z=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;a:{if((b|0)==-1){break a}j=F[a+20>>2];d=F[j>>2];e=F[F[e>>2]+(b<<2)>>2];if(e>>>0>=F[j+4>>2]-d>>2>>>0){break a}e=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];d=F[a+4>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;j=f- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Ga(d,e,D[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!F[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=F[a+20>>2];b=F[m>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[m+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[(d<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Ga(b,d,D[b+24|0],f+32|0);if((e|0)==-1){break c}d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break c}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Ga(b,d,D[b+24|0],f+8|0);g=F[f+8>>2];b=F[f+56>>2];d=g-b|0;p=F[f+60>>2];t=F[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=F[f+40>>2];e=F[f+64>>2];m=i-e|0;u=F[f+68>>2];y=F[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=ki(d,t,m,y);w=o-g|0;x=h-(_+(g>>>0>o>>>0)|0)|0;h=w;i=F[f+16>>2];g=i-e|0;u=F[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=F[f+32>>2];i=k-b|0;w=F[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,i,w);o=h+b|0;h=_+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=F[f+48>>2];e=F[f+72>>2];d=k-e|0;t=F[f+76>>2];x=F[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0<l>>>0?b+1|0:b;l=F[f+24>>2];p=l-e|0;e=F[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=ki(p,e,i,w);l=k-q|0;q=b-(_+(k>>>0<q>>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,e,m,y);r=s+d|0;b=_+b|0;s=r>>>0<s>>>0?b+1|0:b;nc(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0<g>>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0<e>>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0<a>>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=li(o,m,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=f+96|0;return}ta();v()}ta();v()}ta();v()}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=F[d>>2];i=F[e+60>>2];f=F[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=F[e>>2];F[e>>2]=0;g=F[d>>2];F[d>>2]=h;if(g){xa(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=F[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=F[c>>2];F[c>>2]=0;if(e){xa(e)}if((c|0)!=(d|0)){continue}break}}F[a+12>>2]=d;g=F[a+4>>2];b:{if(!g|(i|0)<0){break b}c=F[g+24>>2];d=F[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==F[F[c>>2]+24>>2]){d=c+4|0;i=F[g+28>>2];if((d|0)!=(i|0)){while(1){h=F[d>>2];F[d>>2]=0;e=F[c>>2];F[c>>2]=h;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=F[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=F[d>>2];F[d>>2]=0;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}if((c|0)!=(d|0)){continue}break}}F[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=L(f,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(F[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;pa(f,c,d-c|0);F[e+24>>2]=d-4}c=F[a+24>>2];d=F[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break e}F[c>>2]=d-1}c=F[a+36>>2];d=F[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break f}F[c>>2]=d-1}c=F[a+48>>2];d=F[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+60>>2];d=F[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}i=a+(i|4)|0;f=F[i>>2];if((f|0)>(b|0)){F[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=F[a>>2];if((f|0)>=(b|0)){break a}F[a>>2]=b-1}}function ja(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0<I[2945]){break a}a=a+b|0;if(F[2946]!=(d|0)){if(b>>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+12068|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[2943]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[2947]==(f|0)){F[2947]=d;a=F[2944]+a|0;F[2944]=a;F[d+4>>2]=a|1;if(F[2946]!=(d|0)){break a}F[2943]=0;F[2946]=0;return}if(F[2946]==(f|0)){F[2946]=d;a=F[2943]+a|0;F[2943]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+12068|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[2946]!=(d|0)){break f}F[2943]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);k:{if(!(c&a)){F[2941]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=O(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+12068|0;l:{m:{c=F[2942];b=1<<e;n:{if(!(c&b)){F[2942]=b|c;F[g>>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[2949]-1|0;F[2949]=a?a:-1}}function di(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){qa(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(m);return 1}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=F[a+48>>2];F[a+52>>2]=e;a:{if((e|0)!=F[a+56>>2]){F[e>>2]=b;F[a+52>>2]=e+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!e){break a}ja(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=F[F[a+4>>2]+28>>2];k=F[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-L(g,3)|0?-1:2)+b|0;j=F[c+(e<<2)>>2];if((j|0)==-1){return 0}b=F[a+36>>2];g=b+(k>>>3&536870908)|0;d=F[g>>2];c=1<<k;if(!(d&c)){F[g>>2]=c|d;Ka(a+8|0,k,i);b=F[a+36>>2]}d=(j>>>3&536870908)+b|0;c=F[d>>2];b=1<<j;if(!(c&b)){F[d>>2]=b|c;Ka(a+8|0,j,e)}f=F[a+52>>2];if((f|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=F[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=F[a+24>>2]+(c>>>3&268435452)|0;d=F[g>>2];c=1<<c;if(d&c){break c}F[g>>2]=c|d;h=F[a+4>>2];c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=F[a+36>>2]+(c>>>3&536870908)|0;i=F[j>>2];e=1<<c;if(i&e){break e}f:{g=F[F[h+40>>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];break e}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|F[F[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=F[F[F[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;f=F[a+24>>2];e=c>>>5|0;j=F[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(F[F[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=F[F[F[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=F[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=F[f+(e<<2)>>2];d=1<<d;if(!(j&d)){break i}}if(g){break j}d=1<<i;f=F[a+24>>2];e=i>>>5|0;j=F[f+(e<<2)>>2];if(!(d&j)){break d}}f=F[a+52>>2]-4|0;F[a+52>>2]=f;break b}if(g){b=c;break d}if(F[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=F[a+52>>2];F[h-4>>2]=b;if(F[a+56>>2]!=(h|0)){F[h>>2]=c;f=h+4|0;break c}m:{i=F[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=ka(e<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;F[b>>2]=F[h>>2];if((h|0)!=(i|0)){continue}break}}F[a+56>>2]=d+(e<<2);F[a+52>>2]=f;F[a+48>>2]=b;if(!i){break b}ja(i);f=F[a+52>>2];break b}na();v()}oa();v()}F[(e<<2)+f>>2]=d|j;c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}F[a+52>>2]=f}if(F[a+48>>2]!=(f|0)){continue}break}}return 1}function he(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){qa(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(l);return 1}function Fb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0);i=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}g=ni(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=ka(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=i;F[c>>2]=0;m=M(F[b+12>>2]+1>>>0);j=J[b+16>>2];d:{if(m>M(j*M(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=M(S(M(m/j)));e:{if(j<M(4294967296)&j>=M(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Mc(d);f=F[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=M(S(M(M(I[b+12>>2])/J[b+16>>2])));h:{if(j<M(4294967296)&j>=M(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(ni(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-O(d-1|0);break i}d=Mc(d)}e=d>>>0<e>>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=ka(h<<2);e=F[b>>2];F[b>>2]=d;if(e){ja(e)}F[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;F[k+F[b>>2]>>2]=0;F[F[b>>2]+(k|4)>>2]=0;F[F[b>>2]+(k|8)>>2]=0;F[F[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){F[F[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=F[b+8>>2];if(!e){break k}d=b+8|0;f=F[e+4>>2];g=ni(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=F[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+F[b>>2]|0;if(!F[k>>2]){F[k>>2]=e;e=d;f=g;break o}F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d}d=F[e>>2];if(d){continue}break}break k}d=F[b>>2];F[b>>2]=0;if(d){ja(d)}F[b+4>>2]=0;break k}oa();v()}f=h-1&f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&F[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+F[b>>2]|0;if(F[h>>2]){F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d;break p}F[h>>2]=e;e=d;f=g}d=F[e>>2];if(d){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];q:{r:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break q}d=F[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0<f>>>0){break s}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break r}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function Vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=L(b,12)+a|0;F[j+12>>2]=F[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((Wc(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=F[a+56>>2]+(m>>>3&536870908)|0;h=F[d>>2];e=1<<m;if(h&e){break e}f=0;while(1){F[d>>2]=e|h;d=F[j+12>>2];f:{if((d|0)!=F[j+16>>2]){F[d>>2]=m;F[j+12>>2]=d+4;break f}n=F[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0<g>>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=ka(i<<2)}else{g=0}h=g+(e<<2)|0;F[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;F[h>>2]=F[d>>2];if((d|0)!=(n|0)){continue}break}}F[j+8>>2]=h;F[j+12>>2]=e;F[j+16>>2]=g+(i<<2);if(!n){break f}ja(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=F[(F[F[a>>2]+96>>2]+L(e,12)|0)+(i-L(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=F[a+56>>2]+(m>>>3&268435452)|0;h=F[d>>2];e=1<<m;if(!(h&e)){continue}}break}if(l|!(g&1)){break e}l=F[j+12>>2]-4|0;g=F[l>>2];d=F[a+56>>2]+(g>>>3&536870908)|0;c=F[d>>2];o=d,p=oi(g)&c,F[o>>2]=p;F[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;Wc(a,-1);break a}na();v()}oa();v()}F[((b<<2)+a|0)+44>>2]=k;b=F[j+12>>2];i=F[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=F[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=F[l+i>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;g=F[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=F[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(c)&a,F[o>>2]=p}}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=F[a+48>>2];F[a+52>>2]=f;a:{if((f|0)!=F[a+56>>2]){F[f>>2]=b;F[a+52>>2]=f+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!f){break a}ja(f)}e=-1;d=F[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=F[F[d>>2]+(i<<2)>>2]}b:{h=b-L(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=F[F[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;g=F[f>>2];d=1<<e;if(!(g&d)){F[f>>2]=d|g;Ka(a+8|0,e,i);c=F[a+36>>2]}g=(j>>>3&536870908)+c|0;d=F[g>>2];c=1<<j;if(!(d&c)){F[g>>2]=c|d;Ka(a+8|0,j,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=F[a+24>>2]+(d>>>3&268435452)|0;g=F[f>>2];d=1<<d;if(g&d){break d}F[f>>2]=d|g;while(1){i=F[a+4>>2];e=F[F[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=F[a+36>>2]+(e>>>3&536870908)|0;f=F[h>>2];g=1<<e;if(f&g){break f}g:{d=F[F[i+24>>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=F[F[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}F[h>>2]=f|g;Ka(j,e,b);break f}F[h>>2]=f|g;Ka(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;e=F[a+24>>2];f=c>>>5|0;i=F[e+(f<<2)>>2];break e}c=-1;g=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=F[e+(f<<2)>>2];d=1<<d;if(!(i&d)){break k}}if(!g){d=1<<h;e=F[a+24>>2];f=h>>>5|0;i=F[e+(f<<2)>>2];if(!(d&i)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(g){b=c;break e}if(F[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=F[a+52>>2];F[e-4>>2]=b;if(F[a+56>>2]!=(e|0)){F[e>>2]=c;c=e+4|0;break d}l:{h=F[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=ka(f<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;F[b>>2]=F[e>>2];if((e|0)!=(h|0)){continue}break}}F[a+56>>2]=d+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!h){break c}ja(h);c=F[a+52>>2];break c}na();v()}oa();v()}F[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function uh(a){a=a|0;var b=0,c=0,d=0,e=0;c=F[a+32>>2];d=F[c+16>>2];e=F[c+12>>2];b=F[c+20>>2];if(I[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=G[F[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;F[c+16>>2]=d;F[c+20>>2]=b;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=ka(384);F[b>>2]=8284;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 2:break d;default:break b}}b=ka(440);F[b>>2]=8336;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}$[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=$[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function ei(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function Vh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ka(b<<2);F[h+24>>2]=b;F[h+20>>2]=0;F[h+16>>2]=c;b=F[a>>2];F[h+12>>2]=0;F[h+8>>2]=b;c=F[a+4>>2];F[h+4>>2]=c&31;F[h>>2]=b+(c>>>3&536870908);e=Z-32|0;Z=e;i=F[h+4>>2];g=F[h+12>>2];j=F[h>>2];d=F[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=F[h+20>>2];c=b+f|0;F[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){F[F[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=F[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<<g&-1>>>i-f;F[c>>2]=F[c>>2]&(i^-1)|i&F[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){pa(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;F[g>>2]=F[g>>2]&(b^-1)|b&F[c+d>>2];break c}F[e+28>>2]=g;F[e+24>>2]=d;F[e+20>>2]=i;F[e+16>>2]=j;F[e+12>>2]=f;F[e+8>>2]=c;b=F[e+28>>2];c=F[e+24>>2];g=(F[e+20>>2]-b|0)+(F[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=F[e+12>>2];d=F[e+8>>2];break d}e:{if(!b){b=F[e+12>>2];break e}d=F[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=F[e+8>>2];m=F[l>>2]&(-1<<d&-1>>>j-i^-1);j=F[c>>2]&(-1<<b&-1>>>k-f);F[l>>2]=m|(b>>>0<d>>>0?j<<d-b:j>>>b-d|0);c=d+i|0;b=c&31;F[e+12>>2]=b;d=l+(c>>>3&536870908)|0;F[e+8>>2]=d;c=f-i|0;if((c|0)>0){F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|j>>>i+F[e+28>>2];F[e+12>>2]=c;b=c}g=g-f|0;c=F[e+24>>2]+4|0;F[e+24>>2]=c}i=-1<<b;f=32-b|0;if((g|0)>=32){j=i^-1;while(1){d=F[e+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<<b;F[e+8>>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>f;c=F[e+24>>2]+4|0;F[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=F[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=F[d>>2]&(i&-1>>>j-f^-1);i=F[c>>2]&-1>>>32-g;F[d>>2]=j|i<<b;b=b+f|0;c=b&31;F[e+12>>2]=c;d=(b>>>3&536870908)+d|0;F[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}F[d>>2]=F[d>>2]&(-1>>>32-b^-1)|i>>>f;F[e+12>>2]=b}F[e+4>>2]=b;F[e>>2]=d}Z=e+32|0;b=F[a>>2];F[a>>2]=F[h+16>>2];F[h+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[h+20>>2];F[h+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[h+24>>2];F[h+24>>2]=c;if(!b){break b}ja(b)}Z=h+32|0;return}na();v()}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=$[F[F[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=F[b+4>>2]-F[b>>2]>>2;e=Z+-64|0;Z=e;f=kb(e);d=L(F[2541],n);cc(f,F[F[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=bc(ka(96),f);D[f+84|0]=1;F[f+72>>2]=F[f+68>>2];ac(f,i);F[f+60>>2]=F[F[a+8>>2]+60>>2];d=F[a+16>>2];F[a+16>>2]=f;if(d){xa(d)}Z=e- -64|0;h=F[a+16>>2];if(!F[h+80>>2]){break a}j=F[F[h>>2]>>2];if(!j){break a}m=F[c+12>>2];e=m;d=F[c+20>>2];g=F[c+8>>2];k=F[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=L(i,n);i=j+F[h+48>>2]|0;h=F[c>>2];j=G[h+k|0];e=k+1|0;f=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=f;b:{c:{if(j){if(mc(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=G[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;d=F[F[a+16>>2]+64>>2];d=F[d+4>>2]-F[d>>2]|0;if((g|0)==F[2541]){e=l<<2;if(e>>>0>d>>>0){break a}g=F[c+8>>2];k=F[c+12>>2];j=F[c+20>>2];d=F[c+16>>2];f=e+d|0;j=f>>>0<e>>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}la(i,d+F[c>>2]|0,e);f=F[c+20>>2];d=e+F[c+16>>2]|0;f=d>>>0<e>>>0?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;break c}if(d>>>0<L(g,l)>>>0){break a}d=F[c+8>>2];f=F[c+16>>2];e=d-f|0;m=d>>>0<f>>>0;d=F[c+20>>2];k=F[c+12>>2]-(m+d|0)|0;m=ki(g,0,l,0)>>>0>e>>>0;e=_;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=F[c+8>>2];j=F[c+12>>2];e=f+g|0;d=e>>>0<g>>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}la(i+(h<<2)|0,F[c>>2]+f|0,g);d=F[c+20>>2];f=g+F[c+16>>2]|0;d=f>>>0<g>>>0?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=F[a+20>>2];if(d){e=0;if($[F[F[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=F[e+i>>2];F[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=F[d+i>>2];F[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=F[d+i>>2];F[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=F[a+20>>2];e:{if(!f){break e}if(!($[F[F[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=F[a+20>>2];if(!($[F[F[a>>2]+44>>2]](a,i,i,l,n,F[b>>2])|0)){break a}}o=1}return o|0}function Lh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<<d;d=-2-e|0;F[a+84>>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Hh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<<d;d=-2-e|0;F[a+84>>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:{if(!H[b+38>>1]){break a}if(!Ta(1,a+12|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];g=d-e|0;f=F[a+12>>2];d=F[b+12>>2]-(F[b+20>>2]+(d>>>0<e>>>0)|0)|0;if(g>>>0<f>>>6>>>0&(d|0)<=0|(d|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;b:{if(c>>>0<f>>>0){qa(a,f-c|0);f=F[a+12>>2];break b}if(c>>>0<=f>>>0){break b}F[a+4>>2]=d+(f<<2)}if(!f){return 1}d=F[b+16>>2];c=F[b+20>>2];l=F[a>>2];j=F[b+8>>2];i=F[b+12>>2];g=0;while(1){if((c|0)>=(i|0)&d>>>0>=j>>>0|(c|0)>(i|0)){return 0}m=F[b>>2];k=G[m+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=k>>>2|0;h=0;c:{d:{e:{f:{n=k&3;switch(n|0){case 3:break f;case 0:break d;default:break e}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ma(l+(g<<2)|0,0,(k&252)+4|0);g=e;break c}while(1){if((d|0)==(j|0)&(c|0)==(i|0)){break a}f=G[d+m|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[l+(g<<2)>>2]=e}f=F[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;g:{if(c>>>0<=16383){qa(b,4096-(c>>>2|0)|0);break g}if((c|0)==16384){break g}F[a+20>>2]=d+16384}c=a+28|0;g=F[c>>2];d=F[a+32>>2]-g>>3;h:{if(d>>>0<f>>>0){_a(c,f-d|0);g=F[c>>2];break h}if(d>>>0>f>>>0){F[a+32>>2]=(f<<3)+g}if(!f){break a}}d=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];e=a;i=(b<<3)+g|0;F[i+4>>2]=a;F[i>>2]=h;c=F[c>>2];a=c+a|0;if(a>>>0>4096){break a}i:{if(a>>>0<=e>>>0){break i}h=0;i=c&7;if(i){while(1){F[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break i}while(1){c=d+(e<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=Z-32|0;Z=f;e=f+8|0;c=Z-80|0;Z=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;jc(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}ra(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}ja(F[c+12>>2]);break a}if(D[c+23|0]<0){ja(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=ka(32);D[b+26|0]=0;a=G[1475]|G[1476]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;F[c+8>>2]=-1;a=c+8|4;ra(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];ja(b);break a}ra(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){ja(F[c+12>>2])}ja(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}Z=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){ja(F[f+12>>2])}Z=f+32|0;return a|0}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-32|0;Z=e;a:{if((c|0)!=3){break a}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if(($[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];b:{if(($[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break b}g=$[F[F[c>>2]+36>>2]](c)|0;a=$[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break b}f=$[F[F[c>>2]+40>>2]](c,f)|0;c:{if(f){if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=5928;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=6492;a=d+96|0;break c}if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=6932;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7352;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=ka(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=7764}Z=e+32|0;return d|0}function $c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=Z-80|0;Z=f;a:{if(!Wb(1,f+76|0,b)){break a}k=F[f+76>>2];if(!k){break a}c=F[b+8>>2];e=F[b+16>>2];c=ki(c-e|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0<e>>>0)|0)|0,5,0);e=_;if(c>>>0<k>>>0&(e|0)<=0|(e|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;b:{if(d>>>0<k>>>0){qa(a+4|0,k-d|0);break b}if(d>>>0<=k>>>0){break b}F[a+8>>2]=c+(k<<2)}p=a+16|0;l=F[a+32>>2];while(1){g=F[b+12>>2];c=g;d=F[b+20>>2];h=F[b+8>>2];e=F[b+16>>2];if((c|0)<=(d|0)&h>>>0<=e>>>0|(c|0)<(d|0)){d=0;break a}m=F[b>>2];q=G[m+e|0];c=d;i=e+1|0;c=i?c:c+1|0;F[b+16>>2]=i;F[b+20>>2]=c;if(h>>>0<=i>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}i=G[i+m|0];c=d;j=e+2|0;c=j>>>0<2?c+1|0:c;F[b+16>>2]=j;F[b+20>>2]=c;if(h>>>0<=j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}j=G[j+m|0];c=d;n=e+3|0;c=n>>>0<3?c+1|0:c;F[b+16>>2]=n;F[b+20>>2]=c;if(h>>>0<=n>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}h=G[m+n|0];c=d;d=e+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(q>>>0>4){d=0;break a}if((i-12&255)>>>0<245){d=0;break a}if(!j){d=0;break a}c=kb(f+8|0);g=(h|0)!=0;d=i-1|0;if(d>>>0<=10){d=F[(d<<2)+10148>>2]}else{d=-1}d=L(d,j);cc(c,q,j,i,g,d,d>>31);if(Wb(1,f+4|0,b)){e=F[f+4>>2];F[f+68>>2]=e;d=bc(ka(96),c);$[F[F[l>>2]+8>>2]](l,F[l+12>>2]-F[l+8>>2]>>2,d);d=(F[l+12>>2]-F[l+8>>2]>>2)-1|0;h=d<<2;F[F[h+F[l+8>>2]>>2]+60>>2]=e;F[F[a+4>>2]+(o<<2)>>2]=d;c=F[a+16>>2];e=F[a+20>>2]-c>>2;c:{if((e|0)>(d|0)){break c}F[f>>2]=-1;d=d+1|0;if(d>>>0>e>>>0){Fa(p,d-e|0,f);c=F[p>>2];break c}if(d>>>0>=e>>>0){break c}F[a+20>>2]=(d<<2)+c}F[c+h>>2]=o;d=1;o=o+1|0;if((o|0)!=(k|0)){continue}break a}break}d=0}Z=f+80|0;return d|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;F[k+8>>2]=c;h=F[a+12>>2];d=F[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=F[a+16>>2];d=F[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ma(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{m=F[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ma(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;h=h-4|0;F[h>>2]=f;if((d|0)!=(m|0)){continue}break}F[a+16>>2]=e;e=F[a+12>>2];F[a+12>>2]=g;d=F[a+8>>2];F[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=F[e>>2];F[e>>2]=0;if(f){xa(f)}if((d|0)!=(e|0)){continue}break}break b}na();v()}oa();v()}F[a+16>>2]=e;F[a+12>>2]=g;F[a+8>>2]=i}if(d){ja(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=F[h>>2];F[h>>2]=0;if(c){xa(c)}if((d|0)!=(h|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}j=L(d,12)+a|0;d=F[j+24>>2];if((d|0)!=F[j+28>>2]){F[d>>2]=b;F[j+24>>2]=d+4;break g}i=F[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=ka(e<<2)}else{d=0}f=d+(f<<2)|0;F[f>>2]=b;d=pa(d,i,g);F[j+20>>2]=d;F[j+24>>2]=f+4;F[j+28>>2]=d+(e<<2);if(!i){break g}ja(i)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;a=a+(b<<2)|0;b=F[a>>2];F[a>>2]=c;if(b){xa(b)}a=F[k+8>>2];F[k+8>>2]=0;if(a){xa(a)}Z=k+16|0;return}na();v()}oa();v()}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(F[a+12>>2]==(b|0)){break a}a=b;b=F[d+4>>2];e=F[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(D[b-1|0]<0){ja(F[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}F[d+12>>2]=a;F[d+4>>2]=e;c=F[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=F[d+4>>2];b:{if((a|0)!=F[d+8>>2]){c:{if(D[c+27|0]>=0){b=F[c+20>>2];F[a>>2]=F[c+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[c+24>>2];break c}ra(a,F[c+16>>2],F[c+20>>2])}F[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=F[d+4>>2];e=F[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(F[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0<k>>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=ka(L(b,12))}h=L(b,12);b=L(f,12)+g|0;g:{if(D[c+27|0]>=0){f=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=f;F[b+8>>2]=F[c+24>>2];break g}ra(b,F[c+16>>2],F[c+20>>2]);e=F[d>>2];a=F[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=F[a+4>>2];b=b-12|0;F[b>>2]=F[a>>2];F[b+4>>2]=h;F[b+8>>2]=F[a+8>>2];F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}F[d+8>>2]=g;a=F[d+4>>2];F[d+4>>2]=f;e=F[d>>2];F[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(D[a-1|0]<0){ja(F[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}na();v()}oa();v()}F[d+8>>2]=g;F[d+4>>2]=f;F[d>>2]=b}if(e){ja(e)}}b=F[c+4>>2];h:{if(b){while(1){a=b;b=F[b>>2];if(b){continue}break h}}while(1){a=F[c+8>>2];b=F[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=F[d>>2];if((F[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+L(i,12)|0;a=D[a+11|0]<0?F[a>>2]:a}return a|0}function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=Z-16|0;Z=i;F[i>>2]=b;f=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}f=b+1|0;F[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}F[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=F[(l<<2)+i>>2];if((j|0)!=-1){f=F[F[F[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=F[a+216>>2];if((g|0)==F[a+220>>2]){break e}while(1){g=L(f,144)+g|0;d=F[g+136>>2];c=F[g+140>>2];g:{if(d>>>0<c>>>0){F[d>>2]=j;F[g+136>>2]=d+4;break g}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break g}ja(d)}f=f+1|0;g=F[a+216>>2];if(f>>>0<(F[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0<n>>>0){break e}f=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!wa(F[a+368>>2]+(f<<4)|0)){break h}g=F[a+216>>2]+L(f,144)|0;d=F[g+136>>2];c=F[g+140>>2];if(d>>>0<c>>>0){F[d>>2]=j;F[g+136>>2]=d+4;break h}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break h}ja(d)}f=f+1|0;if(f>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}Z=i+16|0;return 1}na();v()}oa();v()}na();v()}function Bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-16|0;Z=h;m=-1;a:{b:{c:{if(!Da(1,h+12|0,b)){break c}j=F[h+12>>2];if(j){c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0<j>>>0){break c}while(1){if(!Da(1,h+8|0,b)){break c}c=F[h+8>>2];if(!Da(1,h+8|0,b)){break c}g=c+g|0;c=F[h+8>>2];if(g>>>0<c>>>0){break c}e=g-c|0;c=F[a+40>>2];d:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=g;F[c>>2]=e;F[a+40>>2]=c+12;j=F[h+12>>2];break d}d=c;c=F[a+36>>2];l=d-c|0;d=(l|0)/12|0;f=d+1|0;if(f>>>0>=357913942){break b}i=d<<1;f=d>>>0>=178956970?357913941:f>>>0<i>>>0?i:f;if(f){if(f>>>0>=357913942){break a}i=ka(L(f,12))}else{i=0}d=i+L(d,12)|0;F[d+4>>2]=g;F[d>>2]=e;e=pa(d+L((l|0)/-12|0,12)|0,c,l);F[a+44>>2]=i+L(f,12);F[a+40>>2]=d+12;F[a+36>>2]=e;if(!c){break d}ja(c)}k=k+1|0;if(k>>>0<j>>>0){continue}break}g=0;hc(b,0,0);if(j){while(1){c=G[b+36|0];d=H[F[a+4>>2]+36>>1];e:{f:{if(((d<<8|d>>>8)&65535)>>>0<=513){if(!c){break e}e=0;d=F[b+32>>2];k=d>>>3|0;f=F[b+24>>2];c=k+f|0;i=F[b+28>>2];g:{if(c>>>0>=i>>>0){c=d;break g}e=G[c|0];c=d+1|0;F[b+32>>2]=c;k=c>>>3|0;e=e>>>(d&7)&1}if(i>>>0>f+k>>>0){break f}break e}if(!c){break e}e=0;c=F[b+32>>2];d=F[b+24>>2]+(c>>>3|0)|0;if(d>>>0>=I[b+28>>2]){break e}e=G[d|0]>>>(c&7)&1}F[b+32>>2]=c+1}c=F[a+36>>2]+L(g,12)|0;D[c+8|0]=G[c+8|0]&254|e&1;g=g+1|0;if((j|0)!=(g|0)){continue}break}}D[b+36|0]=0;d=F[b+20>>2];a=0;e=F[b+32>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;c=e+F[b+16>>2]|0;a=(a>>>3|0)+d|0;F[b+16>>2]=c;F[b+20>>2]=c>>>0<e>>>0?a+1|0:a}m=F[b+16>>2]}Z=h+16|0;return m}na();v()}oa();v()}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Cb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Bb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function Jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=F[b+16>>2];h=F[c+4>>2]-k|0;e=F[c>>2]-k|0;F[c>>2]=e;f=h;F[c+4>>2]=f;l=F[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=L(j,l);f=(e<<1)-n|0;i=(L(g,j)|0)>=0;e=L(g,l);f=((i?0-f|0:f)+e|0)/2|0;F[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;F[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}F[c>>2]=f;F[c+4>>2]=g;j=0}e=F[d>>2]+f|0;h=F[b+16>>2];k:{if((e|0)>(h|0)){e=e-F[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=F[b+4>>2]+e|0}c=F[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-F[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=L(f,h);d=d-e|0;f=(L(c,f)|0)>=0;g=f?0-d|0:d;d=L(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;F[b>>2]=e+k;F[b+4>>2]=c+k}function Uh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0<e>>>0){qa(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ma(ka(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ja(n);return 1}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[b+80>>2];b=G[c+24|0];g=L(j,b);a:{if(!b){break a}h=b<<2;f=ka(h);a=f;k=b&7;if(k){while(1){F[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=F[d>>2];a=F[d+4>>2]-e>>2;b:{if(a>>>0<g>>>0){qa(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}F[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!lb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!lb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break e}m=F[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;J[g>>2]=J[h+f>>2];J[g+4>>2]=J[(h|4)+f>>2];J[g+8>>2]=J[(h|8)+f>>2];J[g+12>>2]=J[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){J[(e<<2)+m>>2]=J[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}ja(f)}return i|0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;c=F[b+20>>2];d=F[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=F[b+12>>2];a:{if(I[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((h|0)<0){break a}Na(a+76|0,h);c=k;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!Aa(c,b)){break b}if(h){g=1;while(1){d=1<<i;e=wa(c);f=F[a+76>>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=F[f>>2]&(d^-1)}else{d=d|F[f>>2]}g=e^1;F[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=F[b+8>>2];e=F[b+12>>2];f=e;e=F[b+20>>2];g=e;l=F[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=F[b>>2];d=m+l|0;j=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((d|0)<(j|0)){break b}F[a+16>>2]=d;F[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0<j>>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;F[a+20>>2]=c;b=c>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(c&1){break b}F[a+24>>2]=b-1}}Z=k+16|0;return i|0}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!xb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!xb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!yb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!yb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!Ab(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!Ab(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!zb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!zb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function kc(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)==-1?-1:F[F[F[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Dg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=F[a+32>>2];f=F[b+8>>2];h=F[b+12>>2];g=F[b+20>>2];c=F[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=G[F[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;F[e+16>>2]=c;F[e+20>>2]=b;c:{if(!f){break c}while(1){if($[F[F[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=F[a+8>>2];b=F[a+12>>2];if((d|0)!=(b|0)){while(1){c=F[d>>2];if(!($[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=F[F[a+8>>2]+(d<<2)>>2];if(!($[F[F[b>>2]+12>>2]](b,F[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=F[j+F[a+8>>2]>>2];k=$[F[F[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=F[F[a+8>>2]+j>>2];c=$[F[F[c>>2]+20>>2]](c,d)|0;e=F[a+20>>2];g=F[a+24>>2]-e>>2;e:{if(c>>>0<g>>>0){break e}h=c+1|0;if(h>>>0>g>>>0){qa(i,h-g|0);e=F[i>>2];break e}if(g>>>0<=h>>>0){break e}F[a+24>>2]=(h<<2)+e}F[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!($[F[F[a>>2]+28>>2]](a)|0)){break b}e=$[F[F[a>>2]+32>>2]](a)|0}return e|0}return 0}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Oc(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{b=c;c=F[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0<h>>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=pa(j,c,i);F[a+88>>2]=f;F[a+84>>2]=b;F[a+92>>2]=b+(e<<2);if(c){ja(c)}break b}na();v()}oa();v()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function ab(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=ka(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){F[d>>2]=F[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;F[f>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[a+8>>2]=(h<<2)+k;F[a+4>>2]=g;F[a>>2]=f;if(i){ja(i)}return}na();v()}oa();v()}function Xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){f=F[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){F[d>>2]=F[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){F[f>>2]=F[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=ka(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;g=b&7;if(g){while(1){F[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}na();v()}function Ka(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=F[(F[F[a+8>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2];a:{h=F[F[a+12>>2]+4>>2];e=F[h+4>>2];if((e|0)!=F[h+8>>2]){F[e>>2]=j;F[h+4>>2]=e+4;break a}b:{i=F[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=ka(g<<2)}else{f=0}d=k+f|0;F[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=j;F[h>>2]=d;if(i){ja(i)}break a}na();v()}oa();v()}c:{d:{h=F[a+4>>2];e=F[h+4>>2];e:{if((e|0)!=F[h+8>>2]){F[e>>2]=c;F[h+4>>2]=e+4;break e}i=F[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=ka(g<<2)}else{f=0}d=f+(j<<2)|0;F[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=c;F[h>>2]=d;if(!i){break e}ja(i)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}na();v()}oa();v()}function pb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=F[a+8>>2];i=F[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}k=F[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=ka(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=la(g,c,h)+h|0}d=pa(e,k,j);c=i-b|0;b=pa(g,b,c);F[a+8>>2]=e+f;F[a+4>>2]=b+c;F[a>>2]=d;if(k){ja(k)}return}na();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;pa(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function la(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){Y(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0<e>>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0<c>>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0<a>>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0<e>>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function sd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=8336;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;ja(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;ja(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;ja(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;ja(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];ja(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Fa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=ka(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=pa(k,i,j);F[a+4>>2]=e;F[a>>2]=b;F[a+8>>2]=b+(g<<2);if(i){ja(i)}return}na();v()}oa();v()}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}if(d>>>0<b>>>0){h=Z-16|0;Z=h;b=b-d|0;if(b){g=G[a+11|0]>>>7|0?(F[a+8>>2]&2147483647)-1|0:10;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}i=d+b|0;if(g-d>>>0<b>>>0){a:{e=Z-16|0;Z=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(G[a+11|0]>>>7|0){f=F[a>>2]}else{f=a}if(g>>>0<1073741799){F[e+12>>2]=g<<1;F[e>>2]=c+g;c=Z-16|0;Z=c;Z=c+16|0;c=e+12|0;c=F[(I[e>>2]<I[c>>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(e,c);c=F[e>>2];if(d){db(c,f,d)}if((g|0)!=10){ja(f)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;Z=e+16|0;break a}za();v()}}f=d;if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=f+d|0;e=Z-16|0;Z=e;D[e+15|0]=0;while(1){if(b){D[f|0]=G[e+15|0];b=b-1|0;f=f+1|0;continue}break}Z=e+16|0;Ic(a,i);D[h+15|0]=0;D[d+i|0]=G[h+15|0]}Z=h+16|0;return}if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=Z-16|0;Z=f;Ic(a,b);D[f+15|0]=0;D[b+d|0]=G[f+15|0];Z=f+16|0}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;d=F[a+84>>2];F[a+84>>2]=0;if(d){ja(d)}F[a+76>>2]=0;F[a+80>>2]=0;d=F[a+72>>2];F[a+72>>2]=0;if(d){ja(d)}d=F[b>>2];c=F[b+4>>2];D[g+15|0]=0;Ea(a,c-d>>2,g+15|0);d=F[b+28>>2];c=F[b+24>>2];D[g+14|0]=0;Ea(a+12|0,d-c>>2,g+14|0);Xb(a+28|0,F[b+4>>2]-F[b>>2]>>2,10284);c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+52>>2];c:{if(f>>>0<=F[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=F[a+56>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+60>>2]=f;F[a+56>>2]=h;F[a+52>>2]=c;if(!e){break c}ja(e)}c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+40>>2];d:{if(f>>>0<=F[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=F[a+44>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+48>>2]=f;F[a+44>>2]=h;F[a+40>>2]=c;if(!e){break d}ja(e)}D[a+24|0]=1;F[a+64>>2]=b}Z=g+16|0;return}na();v()}na();v()}function nb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function mi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=O(d)-O(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}_=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>ji(d)|0;_=0;break a}if(!(c-1&c)){break f}h=(O(c)+33|0)-O(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}_=0;a=(b>>>0)/(d>>>0)|0;break a}e=O(d)-O(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=ji(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<<c)-1&b)<<32-c|a>>>c}_=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<<f)-1&b)<<32-f|a>>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<<f;a=0}else{b=(1<<f)-1&a>>>32-f|b<<f;a=a<<f}if(h){f=d-1|0;g=c-1|0;m=(g|0)!=-1?f+1|0:f;while(1){j=e<<1|i>>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0<k>>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}_=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}_=b}return a}function yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){e=F[c+8>>2];F[a+4>>2]=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);f=a+8|0;d=G[b+24|0];h=F[a+8>>2];g=F[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){qa(f,d-g|0);d=G[b+24|0];e=F[c+8>>2];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=F[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;F[g+f>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[f+(g|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[f+(g|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[f+(g|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;F[f+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;F[d+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);d=1}return d|0}function Yg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=h;F[e>>2]=c;if(!d){break b}ja(d)}b=F[a+12>>2];c=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=F[d>>2];c=F[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Fa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){c=1;break d}b=0;while(1){c=rd(e,F[(b<<2)+d>>2]);if(!c){break d}f=F[a+116>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break d}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=rd(e,L(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}Z=g+16|0;return c|0}na();v()}function md(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=F[a+4>>2];b=F[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=F[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ma(f,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0<e>>>0?e:c;e=ka(f);ma(e+d|0,0,g);d=pa(e,b,d);F[a+8>>2]=d+f;F[a+4>>2]=c+d;F[a>>2]=d;if(!b){break c}ja(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=F[a+4>>2];f=F[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=F[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ma(e,0,d)+d|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=ka(e);ma(h+g|0,0,d);d=pa(h,f,g);F[a+8>>2]=d+e;F[a+4>>2]=c+d;F[a>>2]=d;if(!f){break d}ja(f);break d}if(c>>>0>=g>>>0){break d}F[a+4>>2]=c+f}if(!c){break c}pa(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;g=1;break a}na();v()}return g}function Lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;n=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0<d>>>0){ab(n,d-e|0,9124);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[n>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=Z-48|0;Z=e;a=F[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<<a;F[e+20>>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;k=F[F[b>>2]>>2];l=F[b+48>>2];f=F[b+40>>2];i=F[b+44>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=ki(f,i,g,0);i=g;g=g+l|0;la(h,g+k|0,f);Kc(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+j>>2]=F[e+12>>2];F[(f|4)+j>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0<F[c+4>>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=F[F[b>>2]>>2];i=F[b+48>>2];c=F[b+40>>2];f=ki(c,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;la(k,f+l|0,c);Kc(e+16|0,k,e+12|0,e+8|0);c=d<<2;F[c+j>>2]=F[e+12>>2];F[(c|4)+j>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}Z=e+48|0;return m>>>0<29|0}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+108>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){ab(m,e-f|0,9124);d=F[a+108>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+112>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=Z-16|0;Z=k;if(F[c+28>>2]==9){d=F[a+4>>2];h=G[c+24|0];e=h<<2;f=ka(e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<<d^-1;if((d|0)>0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}if(h){p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=F[a+8>>2];i=J[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;J[g+f>>2]=M(i*M(F[q>>2]))+J[g+m>>2];g=g|4;J[g+f>>2]=M(i*M(F[q+4>>2]))+J[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;J[d+f>>2]=M(i*M(F[(b<<2)+p>>2]))+J[d+m>>2];b=b+1|0}la(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){la(F[F[c+64>>2]>>2]+b|0,f,e);b=b+e|0;la(b+F[F[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}la(F[F[c+64>>2]>>2]+b|0,f,e)}ja(f)}Z=k+16|0;return o|0}function Rg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+68>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){ab(m,e-f|0,9124);d=F[a+68>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+72>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Na(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=Z-16|0;Z=d;a:{f=F[a+4>>2];b:{if(f>>>0<b>>>0){e=b-f|0;c=F[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){F[a+4>>2]=b;h=f&31;b=F[a>>2]+(f>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0<c>>>0?c:b}else{b=2147483647}$a(d,b);f=F[a+4>>2];F[d+4>>2]=f+e;i=F[a>>2];b=F[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){pa(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[i+g>>2]&c}i=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=i;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!i){break c}ja(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0<e>>>0?c:e;F[b>>2]=F[b>>2]&(-1<<h&-1>>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ma(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(e&31)^-1);break b}F[a+4>>2]=b}Z=d+16|0;return}na();v()}function Aa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=Z-16|0;Z=i;f=F[b+20>>2];h=F[b+12>>2];c=F[b+16>>2];a:{if((f|0)>=(h|0)&c>>>0>=I[b+8>>2]|(f|0)>(h|0)){break a}D[a+12|0]=G[c+F[b>>2]|0];c=F[b+20>>2];f=F[b+16>>2]+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;if(!Qd(1,i+12|0,b)){break a}h=F[b+8>>2];f=F[b+16>>2];g=h-f|0;c=F[i+12>>2];d=f>>>0>h>>>0;h=F[b+20>>2];e=F[b+12>>2]-(d+h|0)|0;if(g>>>0<c>>>0&(e|0)<=0|(e|0)<0|(c|0)<=0){break a}g=f+F[b>>2]|0;F[a>>2]=g;b:{c:{e=c-1|0;j=e+g|0;d=G[j|0];d:{if(d>>>0<=63){F[a+4>>2]=e;d=G[j|0]&63;break d}e:{switch((d>>>6|0)-1|0){case 1:break c;case 0:break e;default:break a}}if(c>>>0<2){break a}e=c-2|0;F[a+4>>2]=e;g=g+e|0;d=G[g+1|0]<<8&16128|G[g|0]}F[a+8>>2]=d+4096;break b}if(c>>>0<3){break a}e=c-3|0;F[a+4>>2]=e;d=a;a=g+e|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[d+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=h;d=c;c=c+f|0;a=d>>>0>c>>>0?a+1|0:a;F[b+16>>2]=c;F[b+20>>2]=a;k=1}Z=i+16|0;return k}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[a+12>>2];i=F[a+8>>2];d=e-i>>2;b=G[b+24|0];a:{if(d>>>0<b>>>0){qa(a+8|0,b-d|0);i=F[a+8>>2];e=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;F[a+12>>2]=e}b=0;f=F[c+8>>2];h=F[c+12>>2];j=F[c+20>>2];e=e-i|0;d=F[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0<g>>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}la(i,d+F[c>>2]|0,e);d=F[c+20>>2];g=e;e=e+F[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;f=F[c+8>>2];h=F[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0<g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=d;f=d;e=F[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;h=F[c+12>>2];if((f|0)>=(h|0)&d>>>0>=I[c+8>>2]|(f|0)>(h|0)){break b}f=G[d+F[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;if(f-1>>>0>29){break b}F[a+4>>2]=f;b=1}return b|0}function Kc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!$c(a,b)){break a}h=a+36|0;g=$[F[F[a>>2]+24>>2]](a)|0;e=F[a+40>>2];d=F[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Pb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){$[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=F[b+20>>2];f=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(f|0)&d>>>0>=I[b+8>>2]|(c|0)>(f|0)){break c}f=G[F[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;d=$[F[F[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+F[a+36>>2]|0;c=F[i>>2];F[i>>2]=d;if(c){$[F[F[c>>2]+4>>2]](c)}c=F[F[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=$[F[F[a>>2]+28>>2]](a)|0,m=$[F[F[a>>2]+20>>2]](a,e)|0,j=F[F[c>>2]+8>>2],$[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=F[a>>2];c=g+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<<b;f=F[a+64>>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=F[F[f>>2]+(c<<2)>>2]}c=F[a+12>>2];h=(d>>>3&536870908)+c|0;F[h>>2]=F[h>>2]|1<<d;b:{c:{if(!e){d:{e:{if((b>>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=F[F[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;F[e>>2]=F[e>>2]|1<<d;d=-1;b=F[F[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+g|0;F[a>>2]=F[a>>2]|1<<b;a=b+1|0;a=(a>>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=F[F[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<<d;f:{g:{if((b>>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=F[F[f>>2]+(b<<2)>>2]}b=1<<a;a=c+(a>>>3&536870908)|0;c=F[a>>2];break c}a=c+536870908|0;b=F[c+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-2>>>0>28){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<<a)-2|0));c=F[F[c>>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f<M(0)?h:n));e=M(e+(e<M(0)?h:n));h=M(M(f*f)+M(M(i*i)+M(e*e)));if(!(+h<1e-6)){g=M(M(1)/M(U(h)));m=M(f*g);l=M(e*g);g=M(i*g)}a=a+8|0;d=(w(m),y(2));D[c+8|0]=d;D[c+9|0]=d>>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(w(l),y(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(w(g),y(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=Z-16|0;Z=g;a:{if(!Sa(1,g+8|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];f=d-e|0;h=F[g+12>>2];c=d>>>0<e>>>0;d=F[b+20>>2];i=F[b+12>>2]-(c+d|0)|0;c=F[g+8>>2];if((h|0)==(i|0)&c>>>0>f>>>0|h>>>0>i>>>0){break a}d=d+h|0;f=c+e|0;d=f>>>0<e>>>0?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if((c|0)<=0){break a}b=F[b>>2]+e|0;F[a+40>>2]=b;e=c-1|0;d=b+e|0;f=G[d|0];b:{if(f>>>0<=63){F[a+44>>2]=e;b=G[d|0]&63;break b}c:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8&16128|G[b|0];break b;case 1:if(c>>>0<3){break a}c=c-3|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break b;default:break c}}c=c-4|0;F[a+44>>2]=c;b=b+c|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[a+48>>2]=b+16384;j=b>>>0<4177920}Z=g+16|0;return j}function Tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=Z-32|0;Z=a;e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;g=e+f|0;break c}D[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}la(f,c,e)}D[g|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=Ya(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];e=F[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){qa(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];la(e,b,F[c+32>>2]-b|0);break d}ta();v()}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}}function ud(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=8284;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;i=c>>>0<a>>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?F[b+16>>2]:b+16|0;j=sa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=sa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function lc(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0<c>>>0){if(d){ja(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}pa(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0<c>>>0){if(d){ja(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}pa(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}na();v()}na();v()}function nc(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Od(a){var b=0,c=0,d=0;b=ka(32);D[b+26|0]=0;c=G[1475]|G[1476]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b)}function Kg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+56>>2]-F[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=od(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=od(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function Qg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=pd(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=pd(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function pa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return la(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0<b>>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=ka(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ma(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}na();v()}oa();v()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){ja(c)}}function Yd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];k=d;h=F[b+16>>2];c=h+4|0;d=c>>>0<4?d+1|0:d;i=c;a:{if(c>>>0>e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=d;c=e;e=k;d=h+8|0;e=d>>>0<8?e+1|0:e;if(c>>>0<d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0<f>>>0)|0)|0;e=c-f|0;if(!d&e>>>0>2147483646|d){break a}d=e+1|0;F[a+20>>2]=d;e=d>>>1|0;F[a+24>>2]=e;F[a+28>>2]=0-e;if(!(d&1)){F[a+24>>2]=e-1}l=Aa(a+112|0,b)}return l|0}function Wc(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Fc(a,b){var c=0,d=0,e=0;c=Z+-64|0;Z=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=11020;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(La(e,b,0)){F[c+56>>2]=1;$[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}$[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}Z=c- -64|0;return d}function ma(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}D[a|0]=b;d=a+c|0;D[d-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[d-3|0]=b;D[d-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=L(b&255,16843009);F[e>>2]=b;d=c-d&-4;c=d+e|0;F[c-4>>2]=b;if(d>>>0<9){break a}F[e+8>>2]=b;F[e+4>>2]=b;F[c-8>>2]=b;F[c-12>>2]=b;if(d>>>0<25){break a}F[e+24>>2]=b;F[e+20>>2]=b;F[e+16>>2]=b;F[e+12>>2]=b;F[c-16>>2]=b;F[c-20>>2]=b;F[c-24>>2]=b;F[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=ki(b,0,1,1);f=_;b=e+g|0;while(1){F[b+24>>2]=d;F[b+28>>2]=f;F[b+16>>2]=d;F[b+20>>2]=f;F[b+8>>2]=d;F[b+12>>2]=f;F[b>>2]=d;F[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=F[b+8>>2];e=F[b+12>>2];g=e;e=F[b+20>>2];k=e;h=F[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0<e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0<f>>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;F[a+20>>2]=d;b=d>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(d&1){break a}F[a+24>>2]=b-1}return l|0}function Uc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Z-16|0;Z=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=Sc(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(sa(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}ja(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}Z=d+16|0;return l}function gb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=F[a+8>>2];e=F[a>>2];if(h>>>0<=d-e>>2>>>0){d=F[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0<h>>>0?f:c;if((g|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){F[d>>2]=F[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=ka(e);F[a>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=la(d,c,b)+b|0}F[a+4>>2]=d;return}na();v()}function Ea(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;F[a+4>>2]=0;a:{b:{if(!b){break b}f=F[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){F[a+4>>2]=b;break c}F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0<f>>>0?f:d}else{d=2147483647}$a(e,d);f=F[a>>2];F[a>>2]=F[e>>2];F[e>>2]=f;d=F[a+4>>2];F[a+4>>2]=b;F[e+4>>2]=d;d=F[a+8>>2];F[a+8>>2]=F[e+8>>2];F[e+8>>2]=d;if(!f){break c}ja(f)}d=b>>>5|0;a=F[a>>2];if(G[c|0]){if(b>>>0>=32){ma(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ma(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}Z=e+16|0;return}na();v()}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z-32|0;Z=e;a:{b:{f=ya(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=ka(a);F[e+24>>2]=a|-2147483648;F[e+16>>2]=g;F[e+20>>2]=f;a=f+g|0;break d}D[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}la(g,c,f)}D[a|0]=0;c=ya(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=ka(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;g=a+c|0;break f}D[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}la(a,d,c)}D[g|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=Uc(c,e+16|0,e);a=-1;if(!c){break g}a=Pc(b,F[c+24>>2])}if(D[e+11|0]<0){ja(F[e>>2])}if(D[e+27|0]<0){ja(F[e+16>>2])}Z=e+32|0;break a}za();v()}za();v()}return a|0}function ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];f=h;e=F[c+20>>2];j=F[c+8>>2];g=F[c+16>>2];a:{if((f|0)<=(e|0)&j>>>0<=g>>>0|(e|0)>(f|0)){break a}k=F[c>>2];i=D[k+g|0];d=e;f=g+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;if((i-7&255)>>>0<247){break a}b:{if((i|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=j>>>0|(d|0)>(h|0)){break a}d=D[f+k|0];g=g+2|0;e=g>>>0<2?e+1|0:e;F[c+16>>2]=g;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=$[F[F[a>>2]+40>>2]](a,i,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}$[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!($[F[F[a>>2]+28>>2]](a,d)|0)){break a}}l=$[F[F[a>>2]+36>>2]](a,b,c)|0}return l|0}function se(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=ka(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;return a|0;case 1:a=ka(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;return a|0;case 2:a=ka(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1624;F[a>>2]=7948;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=ka(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1032;F[a>>2]=5812;F[a+28>>2]=-1;break;default:break a}}return a|0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=F[b>>2];b=F[b+4>>2];d=F[F[a+8>>2]+40>>2];j=d;m=ka((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=F[c+16>>2];k=d;f=g+d|0;d=0+F[c+20>>2]|0;d=f>>>0<k>>>0?d+1|0:d;h=F[c+12>>2];e=0;if(I[c+8>>2]<f>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=la(m,F[c>>2]+g|0,j);F[c+16>>2]=f;F[c+20>>2]=d;la(F[F[F[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+F[c+20>>2]|0;g=F[c+16>>2];f=k+g|0;d=f>>>0<k>>>0?d+1|0:d;h=F[c+12>>2];if((d|0)<=(h|0)&I[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}ja(m);return e|0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){Db(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0<F[a+12>>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Db(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function mb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){e=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=e;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{g=F[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0<f>>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=ka(L(f,12))}else{e=0}d=e+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=F[c+4>>2];d=d-12|0;F[d>>2]=F[c>>2];F[d+4>>2]=h;F[d+8>>2]=F[c+8>>2];if((c|0)!=(g|0)){continue}break}c=F[a>>2]}F[a+8>>2]=e+L(f,12);F[a+4>>2]=b;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function Bf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Gh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Z-32|0;Z=f;h=e>>>0>1073741823?-1:e<<2;h=ma(ka(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;Jb(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Jb(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ja(h);Z=f+32|0;return 1}function Sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=Z-32|0;Z=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+16>>2]=e|-2147483648;F[a+8>>2]=f;F[a+12>>2]=d;e=d+f|0;break c}D[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;c=b+4|0;b=Ya(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){ja(F[a+8>>2])}Z=a+32|0;break a}za();v()}return+g}function Gc(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=Z-16|0;Z=h;if((b^-1)+2147483631>>>0>=c>>>0){if(G[a+11|0]>>>7|0){i=F[a>>2]}else{i=a}if(b>>>0<1073741799){F[h+12>>2]=b<<1;F[h>>2]=b+c;c=Z-16|0;Z=c;Z=c+16|0;c=h+12|0;c=F[(I[h>>2]<I[c>>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(h,c);c=F[h>>2];if(f){db(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){db(c+f|0,e+i|0,g)}if((b|0)!=10){ja(i)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[h+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[h+12|0]=0;D[a+c|0]=G[h+12|0];Z=h+16|0;return}za();v()}function _c(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=L(b,3);Xb(a,b,10224);Xb(a+12|0,b,10228);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=F[a+28>>2];e=c<<2;c=ka(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+32>>2]=e;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}ja(d)}F[a+80>>2]=0;F[a+84>>2]=0;b=F[a+76>>2];F[a+76>>2]=0;if(b){ja(b)}F[a+68>>2]=0;F[a+72>>2]=0;b=a- -64|0;a=F[b>>2];F[b>>2]=0;if(!a){break b}ja(a)}return f}na();v()}function yd(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=ka(c>>>0>268435455?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ja(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=Aa(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)<F[a+140>>2]){continue}break}}return f}\nfunction Sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=F[b+8>>2];c=F[b+12>>2];g=c;c=F[b+20>>2];i=c;h=F[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;a:{if(d>>>0<f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;f=d;d=i;c=h+8|0;d=c>>>0<8?d+1|0:d;if(c>>>0>f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}F[b+16>>2]=c;F[b+20>>2]=d;if(!(e&1)){break a}d=O(e)^31;if(d-1>>>0>28){break a}F[a+8>>2]=d+1;d=-2<<d;c=d^-2;F[a+16>>2]=c;F[a+12>>2]=d^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0);j=Aa(a+96|0,b)}return j|0}function bc(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function ac(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=ka(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}ja(d)}d=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){c=F[(c<<2)+10148>>2]}else{c=-1}c=L(c,G[a+24|0]);f=c>>31;g=md(d,0,ki(c,f,b,0),_);if(g){d=F[a+64>>2];F[a>>2]=d;e=F[d+20>>2];F[a+8>>2]=F[d+16>>2];F[a+12>>2]=e;e=F[d+24>>2];d=F[d+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=c;F[a+44>>2]=f;F[a+16>>2]=e;F[a+20>>2]=d;F[a+80>>2]=b}return g}function Af(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function Kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];i=d;h=F[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0<f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}F[b+16>>2]=d;F[b+20>>2]=c;if(!(e&1)){break a}b=O(e)^31;if(b-1>>>0>28){break a}j=1;F[a+8>>2]=b+1;b=-2<<b;c=b^-2;F[a+16>>2]=c;F[a+12>>2]=b^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0)}return j|0}function Ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;g=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=f;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=sa(c?F[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0<d>>>0?c:d;if(e){a=sa(g,a?F[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Oe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(La(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];$[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function Ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=ka(64);c=ka(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=9968;F[c+4>>2]=0;f=yc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Pb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){$[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}$[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function we(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!($[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=$[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[($[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=$[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!($[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=$[F[F[a>>2]+44>>2]](a)|0}return d|0}function Id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+8>>2];d=F[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ma(d,0,b)+b|0}F[a+4>>2]=d;return}a:{f=F[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=ka(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ma(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(f|0)){continue}break}}F[a+8>>2]=(e<<2)+i;F[a+4>>2]=b;F[a>>2]=c;if(f){ja(f)}return}na();v()}oa();v()}function bb(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){ab(b+68|0,c-e|0,2004);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0<F[d+72>>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z+-64|0;Z=e;f=Ja(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Pd(b,a,f,d);F[a+24>>2]=F[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=G[e+63|0];d=g<<24>>24;if(D[a+39|0]>=0){if((d|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[e+52>>2],F[e+56>>2]);break a}a=(d|0)<0;rb(b,a?F[e+52>>2]:c,a?F[e+56>>2]:g)}if(D[e+63|0]<0){ja(F[e+52>>2])}Z=e- -64|0;return f|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=Z-32|0;Z=a;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+24>>2]=e|-2147483648;F[a+16>>2]=f;F[a+20>>2]=d;e=d+f|0;break c}D[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=Uc(d,a,a+16|0);c=-1;if(!d){break d}c=Pc(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){ja(F[a>>2])}if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}return b|0}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=Z-16|0;Z=d;F[d+12>>2]=0;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;a=Ya(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;d=Z+-64|0;Z=d;e=Ja(d+8|0);F[e+16>>2]=0;F[e+20>>2]=0;F[e>>2]=b;F[e+8>>2]=c;F[e+12>>2]=0;b=d+48|0;Od(b);F[a+24>>2]=F[d+48>>2];f=a+24|0;a:{if((b|0)==(f|0)){break a}b=a+28|0;c=d+48|4;g=G[d+63|0];e=g<<24>>24;if(D[a+39|0]>=0){if((e|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+52>>2],F[d+56>>2]);break a}a=(e|0)<0;rb(b,a?F[d+52>>2]:c,a?F[d+56>>2]:g)}if(D[d+63|0]<0){ja(F[d+52>>2])}Z=d- -64|0;return f|0}function Ce(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if(($[F[F[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Qc(F[F[a+4>>2]+4>>2],$[F[F[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}g=F[a+4>>2];c=0;b:{if((d|0)<0){break b}h=F[g+4>>2];if((d|0)>=F[h+12>>2]-F[h+8>>2]>>2){break b}c=F[F[g+8>>2]+(F[F[g+20>>2]+(d<<2)>>2]<<2)>>2];c=$[F[F[c>>2]+32>>2]](c,d)|0}if(!c){break a}if(!($[F[F[b>>2]+28>>2]](b,c)|0)){break a}e=1;f=f+1|0;if(($[F[F[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];e=F[a>>2];d=c-e|0;b:{if(d>>>0<b>>>0){g=b-d|0;f=F[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ma(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<f>>>0?f:b;f=ka(c);ma(f+d|0,0,g);d=pa(f,e,d);F[a+8>>2]=d+c;F[a+4>>2]=b+d;F[a>>2]=d;if(!e){break b}ja(e);break b}if(b>>>0>=d>>>0){break b}F[a+4>>2]=b+e}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;e=b?c:d;F[a+24>>2]=b;F[a+28>>2]=e;return}na();v()}function Ma(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+4>>2];if((e|0)!=F[a+8>>2]){F[e>>2]=F[b>>2];F[a+4>>2]=e+4;return}a:{g=F[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=ka(c<<2)}else{f=0}d=h+f|0;F[d>>2]=F[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(g|0)){continue}break}}F[a+8>>2]=f+(c<<2);F[a+4>>2]=b;F[a>>2]=d;if(g){ja(g)}return}na();v()}oa();v()}function va(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Hb(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0<b>>>0){qa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=ka(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;F[b>>2]=F[d>>2];if((c|0)!=(d|0)){continue}break}}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}ja(c)}return}na();v()}function tb(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10300;b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;ja(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){xa(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;ja(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){ic(b)}return a|0}function qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=ka(d<<2)}b=b<<2;e=ma((h<<2)+i|0,0,b);f=d<<2;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function gc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=Ya(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function Qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=F[a>>2];c=F[a+4>>2];e=F[a+8>>2];if(c>>>0<e>>>0){F[c>>2]=F[b>>2];F[a+4>>2]=c+4;return}a:{d=c;c=F[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0<d>>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=ka(f<<2)}else{e=0}d=h+e|0;F[d>>2]=F[b>>2];b=pa(e,c,g);F[a+8>>2]=b+(f<<2);F[a+4>>2]=d+4;F[a>>2]=b;if(c){ja(c)}return}na();v()}oa();v()}function db(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=Z-16|0;Z=f;d=Z-32|0;Z=d;e=Z-16|0;Z=e;F[e+12>>2]=b;F[e+8>>2]=b+c;F[d+24>>2]=F[e+12>>2];F[d+28>>2]=F[e+8>>2];Z=e+16|0;c=Z-16|0;Z=c;h=F[d+28>>2];e=F[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){pa(a,e,g)}F[c+12>>2]=e+g;F[c+8>>2]=a+g;F[d+16>>2]=F[c+12>>2];F[d+20>>2]=F[c+8>>2];Z=c+16|0;F[d+12>>2]=(F[d+16>>2]-b|0)+b;F[d+8>>2]=(F[d+20>>2]-a|0)+a;F[f+8>>2]=F[d+12>>2];F[f+12>>2]=F[d+8>>2];Z=d+32|0;Z=f+16|0}function _a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=ka(d<<3)}b=b<<3;e=ma((h<<3)+i|0,0,b);f=d<<3;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function re(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function qe(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}ja(a)}function Eg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0<b>>>0){nd(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ta();v()}function fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=Z-16|0;Z=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],d+15|0,d+16|0)}Z=d+16|0;return(e|0)!=-1|0}function kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0<e>>>0?e:d;if(d){if((d|0)<0){break a}h=ka(d<<1)}b=b<<1;e=ma((f<<1)+h|0,0,b);f=d<<1;d=pa(h,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;Pd(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=G[d+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+4>>2],F[d+8>>2]);break a}a=(g|0)<0;rb(b,a?F[d+4>>2]:c,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ja(F[d+4>>2])}Z=d+16|0;return e|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;a:{b:{if(c>>>0<11){d=a;D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}sb(g,d+1|0);d=F[e+8>>2];F[a>>2]=d;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;F[a+4>>2]=c}db(d,b,c+1|0);Z=e+16|0;return}za();v()}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;b=Z-16|0;Z=b;Od(b);F[a+24>>2]=F[b>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}c=a+28|0;d=b|4;f=G[b+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[d+4>>2];F[c>>2]=F[d>>2];F[c+4>>2]=a;F[c+8>>2]=F[d+8>>2];break a}qb(c,F[b+4>>2],F[b+8>>2]);break a}a=(g|0)<0;rb(c,a?F[b+4>>2]:d,a?F[b+8>>2]:f)}if(D[b+15|0]<0){ja(F[b+4>>2])}Z=b+16|0;return e|0}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;g=e+f|0;break c}D[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}la(f,c,e)}D[g|0]=0;f=a+16|0;c=Sc(b,d,f);b=F[a+16>>2];a=D[a+27|0];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;a=c?(a|0)<0?b:f:0;break a}za();v()}return a|0}function Yb(a,b){var c=0,d=0,e=0;c=F[a+4>>2];d=c+b|0;F[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){F[F[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=F[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;F[a>>2]=F[a>>2]&(-1<<c&-1>>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ma(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}}function ld(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!ld(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Sa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!Sa(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Ne(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!La(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function jg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z+-64|0;Z=e;d=$[F[F[a>>2]+44>>2]](a,b)|0;a=$[F[F[a>>2]+40>>2]](a,b)|0;f=kb(e);g=F[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+10148>>2]}else{a=-1}d=L(a,d);cc(f,g,h,i,0,d,d>>31);a=bc(ka(96),f);ac(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];Z=e- -64|0;return a|0}function rh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function Dc(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function qh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=Z+-64|0;Z=e;d=1;a:{if(La(a,b,0)){break a}d=0;if(!b){break a}b=Fc(b,11068);d=0;if(!b){break a}d=e+8|0;ma(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;$[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}Z=e- -64|0;return d|0}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function zf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=Z-16|0;Z=a;f=D[b+24|0];e=F[2555];F[a+8>>2]=F[2554];F[a+12>>2]=e;e=F[2553];F[a>>2]=F[2552];F[a+4>>2]=e;e=lb(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=ka(c);g=la(b,a,c)+c|0}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}Z=a+16|0;return e|0}function wd(a,b){var c=0,d=0;a:{c=F[a+4>>2];d=F[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}$a(a,c);c=F[a+4>>2]}F[a+4>>2]=c+1;d=1<<c;a=F[a>>2]+(c>>>3&536870908)|0;if(G[b|0]){F[a>>2]=d|F[a>>2];return}F[a>>2]=F[a>>2]&(d^-1);return}na();v()}function Zb(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function bh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!fb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Wb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Wb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Ta(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ta(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Qd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qd(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Oa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Oa(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Da(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Da(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function sa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function td(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;ja(e)}}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function ic(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;ja(b)}Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function $g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function _g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function wh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[F[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0<h>>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function La(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Gg(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ah(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Tc(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ka(c);c=ma(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}la(e,c,a-c|0);return}na();v()}function Dd(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Xg(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Za(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;ja(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function Gb(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;ja(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;ja(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;ja(b)}b=F[a+12>>2];if(b){ja(b)}a=F[a>>2];if(a){ja(a)}}function Lc(a,b,c){var d=0,e=0,f=0,g=0;f=Z-16|0;Z=f;d=Z-16|0;Z=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=I[F[d+12>>2]>>2]<I[c>>2];b=e?g:b;a=e?F[d+12>>2]+4|0:a;continue}break}Z=d+16|0;Z=f+16|0;return a}function id(a,b){var c=0,d=0;d=ka(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;$[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}return 1}function ya(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function wa(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0<d>>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function yc(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1776;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2016;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function Eb(a,b){var c=0,d=0,e=0;c=ya(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=ka(d);F[a+8>>2]=d|-2147483648;F[a>>2]=e;F[a+4>>2]=c;d=c+e|0;break b}D[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}pa(e,b,c)}D[d|0]=0;return a}za();v()}function Of(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){ja(F[a+16>>2])}b=F[a>>2];if(b){c=b;d=F[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(D[d-1|0]<0){ja(F[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=F[a>>2]}F[a+4>>2]=b;ja(c)}ja(a)}}function xa(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;ja(c)}ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;ja(c)}ja(b)}ja(a)}}function Ib(a,b){var c=0,d=0,e=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2]-c|0;e=b<<2;b=pa(ka(e),c,d);F[a+8>>2]=b+e;F[a+4>>2]=b+d;F[a>>2]=b;if(!c){break b}ja(c)}return}na();v()}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=ka(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function Ah(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function li(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0<e>>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=mi(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;_=(g^_)-((a>>>0<f>>>0)+g|0)|0;return b}function zh(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function rb(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;db(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];Gc(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}Z=e+16|0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0;c=Z-16|0;Z=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}pb(b,F[b+4>>2],c+15|0,c+16|0)}Z=c+16|0;return(a|0)!=-1|0}function ki(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;_=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function qb(a,b,c){var d=0,e=0;d=Z-16|0;Z=d;a:{if(c>>>0<=10){D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;db(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0]&127;Gc(e,10,c-10|0,a,a,c,b)}Z=d+16|0}function Ec(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function vg(){var a=0;a=kb(ka(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function jh(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function ge(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function ci(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Cg(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=$[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Pc(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function fe(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function bi(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Sc(a,b,c){var d=0,e=0;d=a+4|0;a=Ya(a,b);a:{if((d|0)==(a|0)){break a}b=F[a+32>>2];d=F[a+28>>2];if((b|0)==(d|0)){break a}Sb(c,b-d|0);c=Tb(c);b=F[a+28>>2];la(c,b,F[a+32>>2]-b|0);e=1}return e}function Kd(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=10032;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;F[a+44>>2]=0;F[a>>2]=8080;return a}function kb(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function pe(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=bb(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function Nf(){var a=0,b=0;a=ka(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function Xe(a,b){a=a|0;b=b|0;var c=0,d=0;Nc(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;pa(c,b,d-b|0);F[a+88>>2]=d-4}}function eb(a){var b=0,c=0;b=F[2909];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>aa()<<16>>>0){if(!(X(a|0)|0)){break a}}F[2909]=a;return b}F[2940]=48;return-1}function Th(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Tg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ng(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(!G[d+24|0]){break a}if(!ac(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=$[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ca(a,b){if(b){Ca(a,F[b>>2]);Ca(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Sg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Mg(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Hc(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=11356;F[a>>2]=11468;c=ya(b);d=ka(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=la(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function hc(a,b,c){a:{if(b){b=0;if(!ld(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;F[a+28>>2]=c+(F[a+8>>2]-b|0);b=1}return b}function Ue(a,b){a=a|0;b=b|0;var c=0;a:{if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=$[F[F[a>>2]+44>>2]](a)|0}return c|0}function _d(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function ii(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function wc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Ud(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function Ug(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Ed(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function vc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function yg(){var a=0,b=0;b=ka(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function eh(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Og(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Ja(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e);return}a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!($[F[F[a>>2]+52>>2]](a)|0)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function hg(){var a=0;a=Rc(ka(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=10240;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Qc(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function cc(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function Sh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!uc(a+24|0,bb(a),c)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function _e(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}return tb(a)|0}function Tb(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]&127}if(!b){sc(1222);v()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function Ze(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}ja(tb(a))}function ce(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function _h(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ba(a,b){if(b){Ba(a,F[b>>2]);Ba(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Wf(){var a=0;a=ka(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function We(a){a=a|0;var b=0;F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function fg(){var a=0,b=0;a=ka(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d);return}a=F[a+8>>2];$[F[F[a>>2]+28>>2]](a,b,c,d)}function be(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Zh(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function ka(a){var b=0;a=a?a:1;a:{while(1){b=Ub(a);if(b){break a}b=F[3065];if(b){$[b|0]();continue}break}V();v()}return b}function ib(a,b){if(b){ib(a,F[b>>2]);ib(a,F[b+4>>2]);if(D[b+39|0]<0){ja(F[b+28>>2])}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Cc(a){a=a|0;var b=0,c=0;F[a>>2]=11468;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){ja(b)}return a|0}function ng(){var a=0;a=ka(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1624;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function pc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function Ic(a,b){if(G[a+11|0]>>>7|0){F[a+4>>2]=b;return}D[a+11|0]=G[a+11|0]&128|b;D[a+11|0]=G[a+11|0]&127}function gi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Xh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function nf(a){a=a|0;if(a){if(D[a+39|0]<0){ja(F[a+28>>2])}$b(a+12|0,F[a+16>>2]);ib(a,F[a+4>>2]);ja(a)}}function dh(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Wg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function ob(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function oc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function fi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Wh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function zg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function ch(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Zd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function Vg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Td(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Le(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e)}}function oa(){var a=0;a=Rb(4);F[a>>2]=11356;F[a>>2]=11316;F[a>>2]=11336;W(a|0,11448,14);v()}function je(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ae(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Pg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}return a|0}function Ch(a){a=a|0;var b=0;b=bb(a);return qd(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function ze(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function Ob(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Hg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}function oe(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}function $b(a,b){if(b){$b(a,F[b>>2]);$b(a,F[b+4>>2]);ib(b+20|0,F[b+24>>2]);ja(b)}}function xg(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}}function xh(a){a=a|0;if(!F[a+44>>2]){return 0}return $[F[F[a>>2]+48>>2]](a)|0}function ni(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d)}}function vh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+20>>2]](a,b)|0}function oi(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<<b|(-1<<a&-2)>>>a}\nfunction oh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+12>>2]](a,b)|0}function nh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+16>>2]](a,b)|0}function Xa(){var a=0;a=ka(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function Wa(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function mf(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function eg(a){a=a|0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function Lb(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0}function Fg(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function kg(){var a=0;a=ka(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function th(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+24>>2]](a)|0}function sh(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+28>>2]](a)|0}function ph(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+36>>2]](a)|0}function Rh(a,b){a=a|0;b=b|0;return zc(a+24|0,bb(a),F[a+8>>2])|0}function Bh(a,b){a=a|0;b=b|0;return xd(a+24|0,bb(a),F[a+8>>2])|0}function bg(a){a=a|0;if(a){if(D[a+15|0]<0){ja(F[a+4>>2])}ja(a)}}function Ke(a){a=a|0;if(!a){return 0}return(Fc(a,11164)|0)!=0|0}function Fe(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function hd(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+12>>2]](a,b)|0}function Dh(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+56>>2]](a,b)|0}function sc(a){a=Hc(Rb(8),a);F[a>>2]=11568;W(a|0,11600,1);v()}function mg(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function Rd(a){a=Hc(Rb(8),a);F[a>>2]=11516;W(a|0,11548,1);v()}function $f(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function gg(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function cg(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function Re(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function dd(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function Yf(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Xf(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;return xc(a,b,c)|0}function sb(a,b){var c=0;c=ka(b);F[a+4>>2]=b;F[a>>2]=c}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;return Qc(b,c)|0}function Rc(a){F[a>>2]=10300;ma(a+4|0,0,80);return a}function ji(a){if(a){return 31-O(a-1^a)|0}return 32}function gd(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function _f(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Zf(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function Ie(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function wb(a){a=a|0;if(a){$[F[F[a>>2]+4>>2]](a)}}function Jd(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function ed(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function dc(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function fd(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function ke(a){a=a|0;return G[F[a+8>>2]+24|0]}function Qf(a,b){a=a|0;b=b|0;return F[b+8>>2]}function Ff(a,b){a=a|0;b=b|0;return F[b+4>>2]}function De(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Bg(a,b){a=a|0;b=b|0;return G[b+24|0]}function Oh(a){a=a|0;F[a>>2]=5928;return a|0}function Jh(a){a=a|0;F[a>>2]=6932;return a|0}function lg(a){a=a|0;return M(J[a+20>>2])}function Nh(a){a=a|0;F[a>>2]=5928;ja(a)}function Ih(a){a=a|0;F[a>>2]=6932;ja(a)}function ug(a){a=a|0;return F[a+88>>2]}function tg(a){a=a|0;return F[a+56>>2]}function qg(a){a=a|0;return F[a+40>>2]}function pg(a){a=a|0;return F[a+48>>2]}function og(a){a=a|0;return F[a+60>>2]}function ec(a){a=a|0;return F[a+80>>2]}function cb(a){a=a|0;return F[a+28>>2]}function vd(a){a=a|0;return F[a+8>>2]}function tc(a,b){a=a|0;b=b|0;return-1}function sg(a){a=a|0;return D[a+24|0]}function rg(a){a=a|0;return G[a+32|0]}function dg(a){a=a|0;return!F[a>>2]|0}function Wd(a,b){a=a|0;b=b|0;return 6}function Va(a){a=a|0;return F[a+4>>2]}function Rb(a){return Ub(a+80|0)+80|0}function Qh(a,b){a=a|0;b=b|0;return 2}function Ia(a,b){a=a|0;b=b|0;return 0}function Bc(a,b){a=a|0;b=b|0;return 1}function jd(a){a=a|0;return F[a>>2]}function wg(){return kb(ka(64))|0}function ig(){return Rc(ka(84))|0}function fc(a){a=a|0;if(a){ja(a)}}function Ag(){return Ja(ka(40))|0}function Qb(a){a=a|0;Cc(a);ja(a)}function Je(a){a=a|0;return 1161}function He(a){a=a|0;return 1235}function Ge(a){a=a|0;return 1201}function Pa(a){a=a|0;return a|0}function hh(a){a=a|0;ja(ud(a))}function gh(a){a=a|0;ja(sd(a))}function Ve(a){a=a|0;ja(tb(a))}function ua(a){a=a|0;return 1}function rc(a){a=a|0;return 4}function qc(a){a=a|0;return 5}function Xd(a){a=a|0;return 2}function Ua(a){a=a|0;return 0}function Nb(a){a=a|0;return 6}function Mh(a){a=a|0;return 3}function za(){Rd(1222);v()}function ta(){sc(1154);v()}function na(){Rd(1154);v()}function Ha(a){a=a|0;ja(a)}function Ra(a){a=a|0;v()}function ff(){return 10}function ef(){return 11}function df(){return 12}function vb(){return-1}function ub(){return 1}function lf(){return 5}function kf(){return 6}function jf(){return 7}function jb(){return 0}function hf(){return 8}function gf(){return 9}function cf(){return-2}function bf(){return-3}function bd(){return 3}function af(){return-4}function ad(){return 4}function _b(){return 2}function $e(){return-5}function Te(){V();v()}function Jc(a){a=a|0}function ae(){}\n// EMSCRIPTEN_END_FUNCS\ne=G;p(q);var $=c([null,Cc,Pa,Ha,Xd,ii,jh,ag,zc,xe,uc,jg,Wd,Qh,Pa,Pg,Hg,ua,yh,mh,kh,xd,fh,qd,Wd,Bg,We,Ra,mf,$c,Ue,Re,Ie,cb,Ia,Te,Bc,ua,Ae,ze,Ac,Fe,Ee,De,Bc,Ce,Be,re,qe,ye,we,pe,ve,ue,te,se,wc,vc,Ac,oe,ne,xc,me,ke,le,je,Ob,ua,Va,ob,Ua,tc,Ia,Ua,ua,ie,he,Ra,Ra,ge,fe,rc,ob,ee,de,ce,be,qc,pc,ua,Ia,oc,$d,hi,gi,fi,Nb,_d,ua,Ia,Zd,Yd,ei,Pa,Ha,Lb,cb,Mb,Ra,Ob,ua,ob,di,Ra,ci,bi,rc,ob,ai,$h,_h,Zh,qc,pc,ua,Ia,oc,$d,Yh,Xh,Wh,Nb,_d,ua,Ia,Zd,Yd,Vh,Pa,Ha,Lb,cb,Kb,Ra,Ob,Ua,ua,Uh,wc,vc,Th,Sh,Vd,Ph,Xd,Rh,Oh,Nh,Nb,Va,Ud,ua,Ia,Td,ua,Mh,Sd,Lh,Pa,Ha,Lb,cb,Mb,Jh,Ih,Nb,Ud,ua,Ia,Td,Sd,Hh,Pa,Ha,Lb,cb,Kb,Pa,Ha,Ua,ua,Ua,tc,Ia,Kh,Gh,Ah,zh,Fh,Eh,Vd,Dh,Ch,Bh,wh,Ra,ua,ua,xh,Dg,Cg,ua,Ua,Ia,Ia,rh,qh,uh,vh,sh,ph,oh,nh,th,ud,hh,Jd,Id,Hd,Gd,lh,ua,Va,vd,sd,gh,Jd,Id,Hd,Gd,ih,ua,Va,vd,Ed,eh,Fd,dh,ch,$g,_g,Zg,Yg,ah,Xg,bh,Wg,Vg,Tg,Sg,Rg,Qg,Ug,Og,Ng,Mg,Lg,Kg,Gg,Ig,Jg,Pa,Ha,Fg,Eg,Ra,Ua,ua,_e,Ze,Ye,Xe,tb,Ve,Oc,Nc,Pa,Ha,Jc,Jc,Se,Le,Ne,Qe,Ha,Me,Oe,Pe,Ha,He,Ha,Ge,Ha,Je,Qb,Va,Qb,Qb]);function aa(){return C.byteLength/65536|0}function fa(ga){ga=ga|0;var ba=aa()|0;var ca=ba+ga|0;if(ba<ca&&ca<65536){var da=new ArrayBuffer(L(ca,65536));var ea=new Int8Array(da);ea.set(D);D=new Int8Array(da);E=new Int16Array(da);F=new Int32Array(da);G=new Uint8Array(da);H=new Uint16Array(da);I=new Uint32Array(da);J=new Float32Array(da);K=new Float64Array(da);C=da;B.buffer=C;e=G}return ba}return{\"f\":ae,\"g\":$,\"h\":fc,\"i\":Ag,\"j\":zg,\"k\":fc,\"l\":yg,\"m\":jd,\"n\":xg,\"o\":wg,\"p\":fc,\"q\":vg,\"r\":ec,\"s\":ug,\"t\":tg,\"u\":cb,\"v\":sg,\"w\":rg,\"x\":qg,\"y\":pg,\"z\":og,\"A\":xa,\"B\":ng,\"C\":hd,\"D\":Va,\"E\":mg,\"F\":lg,\"G\":wb,\"H\":kg,\"I\":hd,\"J\":Va,\"K\":wb,\"L\":ig,\"M\":gd,\"N\":ec,\"O\":wb,\"P\":hg,\"Q\":gg,\"R\":gd,\"S\":ec,\"T\":wb,\"U\":fg,\"V\":eg,\"W\":jd,\"X\":dg,\"Y\":cg,\"Z\":bg,\"_\":Xa,\"$\":$f,\"aa\":dc,\"ba\":Wa,\"ca\":Xa,\"da\":_f,\"ea\":fd,\"fa\":Wa,\"ga\":Xa,\"ha\":Zf,\"ia\":fd,\"ja\":Wa,\"ka\":Xa,\"la\":Yf,\"ma\":ed,\"na\":Wa,\"oa\":Xa,\"pa\":Xf,\"qa\":ed,\"ra\":Wa,\"sa\":Xa,\"ta\":dd,\"ua\":dc,\"va\":Wa,\"wa\":Xa,\"xa\":dd,\"ya\":dc,\"za\":Wa,\"Aa\":Wf,\"Ba\":Vf,\"Ca\":Uf,\"Da\":Tf,\"Ea\":Sf,\"Fa\":Rf,\"Ga\":Qf,\"Ha\":Pf,\"Ia\":Of,\"Ja\":Nf,\"Ka\":Mf,\"La\":Lf,\"Ma\":Kf,\"Na\":Jf,\"Oa\":If,\"Pa\":Hf,\"Qa\":Gf,\"Ra\":Ff,\"Sa\":Ef,\"Ta\":Df,\"Ua\":Cf,\"Va\":Bf,\"Wa\":Af,\"Xa\":zf,\"Ya\":yf,\"Za\":cd,\"_a\":xf,\"$a\":wf,\"ab\":vf,\"bb\":uf,\"cb\":cd,\"db\":tf,\"eb\":sf,\"fb\":rf,\"gb\":qf,\"hb\":pf,\"ib\":of,\"jb\":nf,\"kb\":vb,\"lb\":jb,\"mb\":ub,\"nb\":_b,\"ob\":vb,\"pb\":jb,\"qb\":ub,\"rb\":_b,\"sb\":bd,\"tb\":ad,\"ub\":vb,\"vb\":jb,\"wb\":ub,\"xb\":jb,\"yb\":ub,\"zb\":_b,\"Ab\":bd,\"Bb\":ad,\"Cb\":lf,\"Db\":kf,\"Eb\":jf,\"Fb\":hf,\"Gb\":gf,\"Hb\":ff,\"Ib\":ef,\"Jb\":df,\"Kb\":jb,\"Lb\":vb,\"Mb\":cf,\"Nb\":bf,\"Ob\":af,\"Pb\":$e,\"Qb\":Ub,\"Rb\":ja,\"Sb\":Ke}}return ha(ia)}\n// EMSCRIPTEN_END_ASM\n\n\n)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({\"instance\":new WebAssembly.Instance(module,info)})}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;assert(INITIAL_MEMORY>=65536,\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+INITIAL_MEMORY+\"! (STACK_SIZE=\"+65536+\")\");if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"draco_decoder_gltf.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"g\"];addOnInit(Module[\"asm\"][\"f\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob==\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==\"boolean\"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,\"base64\");return new Uint8Array(buf[\"buffer\"],buf[\"byteOffset\"],buf[\"byteLength\"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmImports={\"c\":___cxa_throw,\"b\":_abort,\"e\":_emscripten_memcpy_big,\"d\":_emscripten_resize_heap,\"a\":wasmMemory};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"f\"]).apply(null,arguments)};var _emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=function(){return(_emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=function(){return(_emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=function(){return(_emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=function(){return(_emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=function(){return(_emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=function(){return(_emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=Module[\"asm\"][\"m\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=function(){return(_emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=function(){return(_emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=function(){return(_emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=function(){return(_emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=function(){return(_emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=function(){return(_emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=function(){return(_emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=function(){return(_emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=function(){return(_emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=function(){return(_emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=function(){return(_emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=function(){return(_emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=function(){return(_emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=function(){return(_emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=function(){return(_emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=function(){return(_emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=function(){return(_emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=function(){return(_emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=function(){return(_emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=function(){return(_emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=function(){return(_emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=function(){return(_emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=function(){return(_emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=function(){return(_emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=function(){return(_emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=function(){return(_emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=function(){return(_emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=function(){return(_emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=function(){return(_emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=function(){return(_emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=function(){return(_emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=function(){return(_emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=function(){return(_emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=function(){return(_emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=function(){return(_emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=function(){return(_emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=function(){return(_emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=function(){return(_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=function(){return(_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=function(){return(_emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=function(){return(_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=function(){return(_emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=function(){return(_emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=Module[\"asm\"][\"Db\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=Module[\"asm\"][\"Eb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=Module[\"asm\"][\"Fb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=Module[\"asm\"][\"Gb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=Module[\"asm\"][\"Hb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=function(){return(_emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=Module[\"asm\"][\"Ib\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=function(){return(_emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=Module[\"asm\"][\"Jb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=function(){return(_emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=Module[\"asm\"][\"Kb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=Module[\"asm\"][\"Lb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=Module[\"asm\"][\"Mb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=function(){return(_emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=Module[\"asm\"][\"Nb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=Module[\"asm\"][\"Ob\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=Module[\"asm\"][\"Pb\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Qb\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Rb\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Sb\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=11660;var ___stop_em_js=Module[\"___stop_em_js\"]=11758;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module[\"WrapperObject\"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module[\"getCache\"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module[\"wrapPointer\"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module[\"castObject\"]=castObject;Module[\"NULL\"]=wrapPointer(0);function destroy(obj){if(!obj[\"__destroy__\"])throw\"Error: Cannot destroy object. (Did you create it yourself?)\";obj[\"__destroy__\"]();delete getCache(obj.__class__)[obj.ptr]}Module[\"destroy\"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module[\"compare\"]=compare;function getPointer(obj){return obj.ptr}Module[\"getPointer\"]=getPointer;function getClass(obj){return obj.__class__}Module[\"getClass\"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module[\"_free\"](ensureCache.temps[i])}ensureCache.temps.length=0;Module[\"_free\"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module[\"_malloc\"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0},alloc:function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module[\"_malloc\"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i<array.length;i++){view[offset+i]=array[i]}}};function ensureString(value){if(typeof value===\"string\"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function VoidPtr(){throw\"cannot construct a VoidPtr, no constructor in IDL\"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module[\"VoidPtr\"]=VoidPtr;VoidPtr.prototype[\"__destroy__\"]=VoidPtr.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)};function DecoderBuffer(){this.ptr=_emscripten_bind_DecoderBuffer_DecoderBuffer_0();getCache(DecoderBuffer)[this.ptr]=this}DecoderBuffer.prototype=Object.create(WrapperObject.prototype);DecoderBuffer.prototype.constructor=DecoderBuffer;DecoderBuffer.prototype.__class__=DecoderBuffer;DecoderBuffer.__cache__={};Module[\"DecoderBuffer\"]=DecoderBuffer;DecoderBuffer.prototype[\"Init\"]=DecoderBuffer.prototype.Init=function(data,data_size){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;_emscripten_bind_DecoderBuffer_Init_2(self,data,data_size)};DecoderBuffer.prototype[\"__destroy__\"]=DecoderBuffer.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DecoderBuffer___destroy___0(self)};function AttributeTransformData(){this.ptr=_emscripten_bind_AttributeTransformData_AttributeTransformData_0();getCache(AttributeTransformData)[this.ptr]=this}AttributeTransformData.prototype=Object.create(WrapperObject.prototype);AttributeTransformData.prototype.constructor=AttributeTransformData;AttributeTransformData.prototype.__class__=AttributeTransformData;AttributeTransformData.__cache__={};Module[\"AttributeTransformData\"]=AttributeTransformData;AttributeTransformData.prototype[\"transform_type\"]=AttributeTransformData.prototype.transform_type=function(){var self=this.ptr;return _emscripten_bind_AttributeTransformData_transform_type_0(self)};AttributeTransformData.prototype[\"__destroy__\"]=AttributeTransformData.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeTransformData___destroy___0(self)};function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module[\"GeometryAttribute\"]=GeometryAttribute;GeometryAttribute.prototype[\"__destroy__\"]=GeometryAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)};function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module[\"PointAttribute\"]=PointAttribute;PointAttribute.prototype[\"size\"]=PointAttribute.prototype.size=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)};PointAttribute.prototype[\"GetAttributeTransformData\"]=PointAttribute.prototype.GetAttributeTransformData=function(){var self=this.ptr;return wrapPointer(_emscripten_bind_PointAttribute_GetAttributeTransformData_0(self),AttributeTransformData)};PointAttribute.prototype[\"attribute_type\"]=PointAttribute.prototype.attribute_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)};PointAttribute.prototype[\"data_type\"]=PointAttribute.prototype.data_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)};PointAttribute.prototype[\"num_components\"]=PointAttribute.prototype.num_components=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)};PointAttribute.prototype[\"normalized\"]=PointAttribute.prototype.normalized=function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)};PointAttribute.prototype[\"byte_stride\"]=PointAttribute.prototype.byte_stride=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)};PointAttribute.prototype[\"byte_offset\"]=PointAttribute.prototype.byte_offset=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)};PointAttribute.prototype[\"unique_id\"]=PointAttribute.prototype.unique_id=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)};PointAttribute.prototype[\"__destroy__\"]=PointAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)};function AttributeQuantizationTransform(){this.ptr=_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0();getCache(AttributeQuantizationTransform)[this.ptr]=this}AttributeQuantizationTransform.prototype=Object.create(WrapperObject.prototype);AttributeQuantizationTransform.prototype.constructor=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype.__class__=AttributeQuantizationTransform;AttributeQuantizationTransform.__cache__={};Module[\"AttributeQuantizationTransform\"]=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype[\"InitFromAttribute\"]=AttributeQuantizationTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1(self,att)};AttributeQuantizationTransform.prototype[\"quantization_bits\"]=AttributeQuantizationTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0(self)};AttributeQuantizationTransform.prototype[\"min_value\"]=AttributeQuantizationTransform.prototype.min_value=function(axis){var self=this.ptr;if(axis&&typeof axis===\"object\")axis=axis.ptr;return _emscripten_bind_AttributeQuantizationTransform_min_value_1(self,axis)};AttributeQuantizationTransform.prototype[\"range\"]=AttributeQuantizationTransform.prototype.range=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_range_0(self)};AttributeQuantizationTransform.prototype[\"__destroy__\"]=AttributeQuantizationTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeQuantizationTransform___destroy___0(self)};function AttributeOctahedronTransform(){this.ptr=_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0();getCache(AttributeOctahedronTransform)[this.ptr]=this}AttributeOctahedronTransform.prototype=Object.create(WrapperObject.prototype);AttributeOctahedronTransform.prototype.constructor=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype.__class__=AttributeOctahedronTransform;AttributeOctahedronTransform.__cache__={};Module[\"AttributeOctahedronTransform\"]=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype[\"InitFromAttribute\"]=AttributeOctahedronTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1(self,att)};AttributeOctahedronTransform.prototype[\"quantization_bits\"]=AttributeOctahedronTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0(self)};AttributeOctahedronTransform.prototype[\"__destroy__\"]=AttributeOctahedronTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeOctahedronTransform___destroy___0(self)};function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module[\"PointCloud\"]=PointCloud;PointCloud.prototype[\"num_attributes\"]=PointCloud.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)};PointCloud.prototype[\"num_points\"]=PointCloud.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)};PointCloud.prototype[\"__destroy__\"]=PointCloud.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)};function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module[\"Mesh\"]=Mesh;Mesh.prototype[\"num_faces\"]=Mesh.prototype.num_faces=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)};Mesh.prototype[\"num_attributes\"]=Mesh.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)};Mesh.prototype[\"num_points\"]=Mesh.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)};Mesh.prototype[\"__destroy__\"]=Mesh.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)};function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module[\"Metadata\"]=Metadata;Metadata.prototype[\"__destroy__\"]=Metadata.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)};function Status(){throw\"cannot construct a Status, no constructor in IDL\"}Status.prototype=Object.create(WrapperObject.prototype);Status.prototype.constructor=Status;Status.prototype.__class__=Status;Status.__cache__={};Module[\"Status\"]=Status;Status.prototype[\"code\"]=Status.prototype.code=function(){var self=this.ptr;return _emscripten_bind_Status_code_0(self)};Status.prototype[\"ok\"]=Status.prototype.ok=function(){var self=this.ptr;return!!_emscripten_bind_Status_ok_0(self)};Status.prototype[\"error_msg\"]=Status.prototype.error_msg=function(){var self=this.ptr;return UTF8ToString(_emscripten_bind_Status_error_msg_0(self))};Status.prototype[\"__destroy__\"]=Status.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Status___destroy___0(self)};function DracoFloat32Array(){this.ptr=_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0();getCache(DracoFloat32Array)[this.ptr]=this}DracoFloat32Array.prototype=Object.create(WrapperObject.prototype);DracoFloat32Array.prototype.constructor=DracoFloat32Array;DracoFloat32Array.prototype.__class__=DracoFloat32Array;DracoFloat32Array.__cache__={};Module[\"DracoFloat32Array\"]=DracoFloat32Array;DracoFloat32Array.prototype[\"GetValue\"]=DracoFloat32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoFloat32Array_GetValue_1(self,index)};DracoFloat32Array.prototype[\"size\"]=DracoFloat32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoFloat32Array_size_0(self)};DracoFloat32Array.prototype[\"__destroy__\"]=DracoFloat32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoFloat32Array___destroy___0(self)};function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module[\"DracoInt8Array\"]=DracoInt8Array;DracoInt8Array.prototype[\"GetValue\"]=DracoInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,index)};DracoInt8Array.prototype[\"size\"]=DracoInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)};DracoInt8Array.prototype[\"__destroy__\"]=DracoInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)};function DracoUInt8Array(){this.ptr=_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0();getCache(DracoUInt8Array)[this.ptr]=this}DracoUInt8Array.prototype=Object.create(WrapperObject.prototype);DracoUInt8Array.prototype.constructor=DracoUInt8Array;DracoUInt8Array.prototype.__class__=DracoUInt8Array;DracoUInt8Array.__cache__={};Module[\"DracoUInt8Array\"]=DracoUInt8Array;DracoUInt8Array.prototype[\"GetValue\"]=DracoUInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt8Array_GetValue_1(self,index)};DracoUInt8Array.prototype[\"size\"]=DracoUInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt8Array_size_0(self)};DracoUInt8Array.prototype[\"__destroy__\"]=DracoUInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt8Array___destroy___0(self)};function DracoInt16Array(){this.ptr=_emscripten_bind_DracoInt16Array_DracoInt16Array_0();getCache(DracoInt16Array)[this.ptr]=this}DracoInt16Array.prototype=Object.create(WrapperObject.prototype);DracoInt16Array.prototype.constructor=DracoInt16Array;DracoInt16Array.prototype.__class__=DracoInt16Array;DracoInt16Array.__cache__={};Module[\"DracoInt16Array\"]=DracoInt16Array;DracoInt16Array.prototype[\"GetValue\"]=DracoInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt16Array_GetValue_1(self,index)};DracoInt16Array.prototype[\"size\"]=DracoInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt16Array_size_0(self)};DracoInt16Array.prototype[\"__destroy__\"]=DracoInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt16Array___destroy___0(self)};function DracoUInt16Array(){this.ptr=_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0();getCache(DracoUInt16Array)[this.ptr]=this}DracoUInt16Array.prototype=Object.create(WrapperObject.prototype);DracoUInt16Array.prototype.constructor=DracoUInt16Array;DracoUInt16Array.prototype.__class__=DracoUInt16Array;DracoUInt16Array.__cache__={};Module[\"DracoUInt16Array\"]=DracoUInt16Array;DracoUInt16Array.prototype[\"GetValue\"]=DracoUInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt16Array_GetValue_1(self,index)};DracoUInt16Array.prototype[\"size\"]=DracoUInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt16Array_size_0(self)};DracoUInt16Array.prototype[\"__destroy__\"]=DracoUInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt16Array___destroy___0(self)};function DracoInt32Array(){this.ptr=_emscripten_bind_DracoInt32Array_DracoInt32Array_0();getCache(DracoInt32Array)[this.ptr]=this}DracoInt32Array.prototype=Object.create(WrapperObject.prototype);DracoInt32Array.prototype.constructor=DracoInt32Array;DracoInt32Array.prototype.__class__=DracoInt32Array;DracoInt32Array.__cache__={};Module[\"DracoInt32Array\"]=DracoInt32Array;DracoInt32Array.prototype[\"GetValue\"]=DracoInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt32Array_GetValue_1(self,index)};DracoInt32Array.prototype[\"size\"]=DracoInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt32Array_size_0(self)};DracoInt32Array.prototype[\"__destroy__\"]=DracoInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt32Array___destroy___0(self)};function DracoUInt32Array(){this.ptr=_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0();getCache(DracoUInt32Array)[this.ptr]=this}DracoUInt32Array.prototype=Object.create(WrapperObject.prototype);DracoUInt32Array.prototype.constructor=DracoUInt32Array;DracoUInt32Array.prototype.__class__=DracoUInt32Array;DracoUInt32Array.__cache__={};Module[\"DracoUInt32Array\"]=DracoUInt32Array;DracoUInt32Array.prototype[\"GetValue\"]=DracoUInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt32Array_GetValue_1(self,index)};DracoUInt32Array.prototype[\"size\"]=DracoUInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt32Array_size_0(self)};DracoUInt32Array.prototype[\"__destroy__\"]=DracoUInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt32Array___destroy___0(self)};function MetadataQuerier(){this.ptr=_emscripten_bind_MetadataQuerier_MetadataQuerier_0();getCache(MetadataQuerier)[this.ptr]=this}MetadataQuerier.prototype=Object.create(WrapperObject.prototype);MetadataQuerier.prototype.constructor=MetadataQuerier;MetadataQuerier.prototype.__class__=MetadataQuerier;MetadataQuerier.__cache__={};Module[\"MetadataQuerier\"]=MetadataQuerier;MetadataQuerier.prototype[\"HasEntry\"]=MetadataQuerier.prototype.HasEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return!!_emscripten_bind_MetadataQuerier_HasEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntry\"]=MetadataQuerier.prototype.GetIntEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetIntEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntryArray\"]=MetadataQuerier.prototype.GetIntEntryArray=function(metadata,entry_name,out_values){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;_emscripten_bind_MetadataQuerier_GetIntEntryArray_3(self,metadata,entry_name,out_values)};MetadataQuerier.prototype[\"GetDoubleEntry\"]=MetadataQuerier.prototype.GetDoubleEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetDoubleEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetStringEntry\"]=MetadataQuerier.prototype.GetStringEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return UTF8ToString(_emscripten_bind_MetadataQuerier_GetStringEntry_2(self,metadata,entry_name))};MetadataQuerier.prototype[\"NumEntries\"]=MetadataQuerier.prototype.NumEntries=function(metadata){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return _emscripten_bind_MetadataQuerier_NumEntries_1(self,metadata)};MetadataQuerier.prototype[\"GetEntryName\"]=MetadataQuerier.prototype.GetEntryName=function(metadata,entry_id){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_id&&typeof entry_id===\"object\")entry_id=entry_id.ptr;return UTF8ToString(_emscripten_bind_MetadataQuerier_GetEntryName_2(self,metadata,entry_id))};MetadataQuerier.prototype[\"__destroy__\"]=MetadataQuerier.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MetadataQuerier___destroy___0(self)};function Decoder(){this.ptr=_emscripten_bind_Decoder_Decoder_0();getCache(Decoder)[this.ptr]=this}Decoder.prototype=Object.create(WrapperObject.prototype);Decoder.prototype.constructor=Decoder;Decoder.prototype.__class__=Decoder;Decoder.__cache__={};Module[\"Decoder\"]=Decoder;Decoder.prototype[\"DecodeArrayToPointCloud\"]=Decoder.prototype.DecodeArrayToPointCloud=function(data,data_size,out_point_cloud){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3(self,data,data_size,out_point_cloud),Status)};Decoder.prototype[\"DecodeArrayToMesh\"]=Decoder.prototype.DecodeArrayToMesh=function(data,data_size,out_mesh){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToMesh_3(self,data,data_size,out_mesh),Status)};Decoder.prototype[\"GetAttributeId\"]=Decoder.prototype.GetAttributeId=function(pc,type){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;return _emscripten_bind_Decoder_GetAttributeId_2(self,pc,type)};Decoder.prototype[\"GetAttributeIdByName\"]=Decoder.prototype.GetAttributeIdByName=function(pc,name){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);return _emscripten_bind_Decoder_GetAttributeIdByName_2(self,pc,name)};Decoder.prototype[\"GetAttributeIdByMetadataEntry\"]=Decoder.prototype.GetAttributeIdByMetadataEntry=function(pc,name,value){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);if(value&&typeof value===\"object\")value=value.ptr;else value=ensureString(value);return _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3(self,pc,name,value)};Decoder.prototype[\"GetAttribute\"]=Decoder.prototype.GetAttribute=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttribute_2(self,pc,att_id),PointAttribute)};Decoder.prototype[\"GetAttributeByUniqueId\"]=Decoder.prototype.GetAttributeByUniqueId=function(pc,unique_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(unique_id&&typeof unique_id===\"object\")unique_id=unique_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeByUniqueId_2(self,pc,unique_id),PointAttribute)};Decoder.prototype[\"GetMetadata\"]=Decoder.prototype.GetMetadata=function(pc){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;return wrapPointer(_emscripten_bind_Decoder_GetMetadata_1(self,pc),Metadata)};Decoder.prototype[\"GetAttributeMetadata\"]=Decoder.prototype.GetAttributeMetadata=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeMetadata_2(self,pc,att_id),Metadata)};Decoder.prototype[\"GetFaceFromMesh\"]=Decoder.prototype.GetFaceFromMesh=function(m,face_id,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(face_id&&typeof face_id===\"object\")face_id=face_id.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetFaceFromMesh_3(self,m,face_id,out_values)};Decoder.prototype[\"GetTriangleStripsFromMesh\"]=Decoder.prototype.GetTriangleStripsFromMesh=function(m,strip_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(strip_values&&typeof strip_values===\"object\")strip_values=strip_values.ptr;return _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2(self,m,strip_values)};Decoder.prototype[\"GetTrianglesUInt16Array\"]=Decoder.prototype.GetTrianglesUInt16Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt16Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetTrianglesUInt32Array\"]=Decoder.prototype.GetTrianglesUInt32Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt32Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetAttributeFloat\"]=Decoder.prototype.GetAttributeFloat=function(pa,att_index,out_values){var self=this.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(att_index&&typeof att_index===\"object\")att_index=att_index.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloat_3(self,pa,att_index,out_values)};Decoder.prototype[\"GetAttributeFloatForAllPoints\"]=Decoder.prototype.GetAttributeFloatForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeIntForAllPoints\"]=Decoder.prototype.GetAttributeIntForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt8ForAllPoints\"]=Decoder.prototype.GetAttributeInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt8ForAllPoints\"]=Decoder.prototype.GetAttributeUInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt16ForAllPoints\"]=Decoder.prototype.GetAttributeInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt16ForAllPoints\"]=Decoder.prototype.GetAttributeUInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt32ForAllPoints\"]=Decoder.prototype.GetAttributeInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt32ForAllPoints\"]=Decoder.prototype.GetAttributeUInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeDataArrayForAllPoints\"]=Decoder.prototype.GetAttributeDataArrayForAllPoints=function(pc,pa,data_type,out_size,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(data_type&&typeof data_type===\"object\")data_type=data_type.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5(self,pc,pa,data_type,out_size,out_values)};Decoder.prototype[\"SkipAttributeTransform\"]=Decoder.prototype.SkipAttributeTransform=function(att_type){var self=this.ptr;if(att_type&&typeof att_type===\"object\")att_type=att_type.ptr;_emscripten_bind_Decoder_SkipAttributeTransform_1(self,att_type)};Decoder.prototype[\"GetEncodedGeometryType_Deprecated\"]=Decoder.prototype.GetEncodedGeometryType_Deprecated=function(in_buffer){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;return _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1(self,in_buffer)};Decoder.prototype[\"DecodeBufferToPointCloud\"]=Decoder.prototype.DecodeBufferToPointCloud=function(in_buffer,out_point_cloud){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2(self,in_buffer,out_point_cloud),Status)};Decoder.prototype[\"DecodeBufferToMesh\"]=Decoder.prototype.DecodeBufferToMesh=function(in_buffer,out_mesh){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToMesh_2(self,in_buffer,out_mesh),Status)};Decoder.prototype[\"__destroy__\"]=Decoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Decoder___destroy___0(self)};(function(){function setupEnums(){Module[\"ATTRIBUTE_INVALID_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM();Module[\"ATTRIBUTE_NO_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM();Module[\"ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM();Module[\"ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM();Module[\"INVALID\"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module[\"POSITION\"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module[\"NORMAL\"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module[\"COLOR\"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module[\"TEX_COORD\"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module[\"GENERIC\"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC();Module[\"INVALID_GEOMETRY_TYPE\"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module[\"POINT_CLOUD\"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module[\"TRIANGULAR_MESH\"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module[\"DT_INVALID\"]=_emscripten_enum_draco_DataType_DT_INVALID();Module[\"DT_INT8\"]=_emscripten_enum_draco_DataType_DT_INT8();Module[\"DT_UINT8\"]=_emscripten_enum_draco_DataType_DT_UINT8();Module[\"DT_INT16\"]=_emscripten_enum_draco_DataType_DT_INT16();Module[\"DT_UINT16\"]=_emscripten_enum_draco_DataType_DT_UINT16();Module[\"DT_INT32\"]=_emscripten_enum_draco_DataType_DT_INT32();Module[\"DT_UINT32\"]=_emscripten_enum_draco_DataType_DT_UINT32();Module[\"DT_INT64\"]=_emscripten_enum_draco_DataType_DT_INT64();Module[\"DT_UINT64\"]=_emscripten_enum_draco_DataType_DT_UINT64();Module[\"DT_FLOAT32\"]=_emscripten_enum_draco_DataType_DT_FLOAT32();Module[\"DT_FLOAT64\"]=_emscripten_enum_draco_DataType_DT_FLOAT64();Module[\"DT_BOOL\"]=_emscripten_enum_draco_DataType_DT_BOOL();Module[\"DT_TYPES_COUNT\"]=_emscripten_enum_draco_DataType_DT_TYPES_COUNT();Module[\"OK\"]=_emscripten_enum_draco_StatusCode_OK();Module[\"DRACO_ERROR\"]=_emscripten_enum_draco_StatusCode_DRACO_ERROR();Module[\"IO_ERROR\"]=_emscripten_enum_draco_StatusCode_IO_ERROR();Module[\"INVALID_PARAMETER\"]=_emscripten_enum_draco_StatusCode_INVALID_PARAMETER();Module[\"UNSUPPORTED_VERSION\"]=_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION();Module[\"UNKNOWN_VERSION\"]=_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION()}if(runtimeInitialized)setupEnums();else addOnInit(setupEnums)})();if(typeof Module[\"onModuleParsed\"]===\"function\"){Module[\"onModuleParsed\"]()}Module[\"Decoder\"].prototype.GetEncodedGeometryType=function(array){if(array.__class__&&array.__class__===Module.DecoderBuffer){return Module.Decoder.prototype.GetEncodedGeometryType_Deprecated(array)}if(array.byteLength<8)return Module.INVALID_GEOMETRY_TYPE;switch(array[7]){case 0:return Module.POINT_CLOUD;case 1:return Module.TRIANGULAR_MESH;default:return Module.INVALID_GEOMETRY_TYPE}};\n\n\n  return DracoDecoderModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DracoDecoderModule;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DracoDecoderModule; });\nelse if (typeof exports === 'object')\n  exports[\"DracoDecoderModule\"] = DracoDecoderModule;\n"
  },
  {
    "path": "packages/editor/public/libs/draco/draco_encoder.js",
    "content": "\nvar DracoEncoderModule = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DracoEncoderModule = {})  {\n\nvar Module=typeof DracoEncoderModule!=\"undefined\"?DracoEncoderModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module[\"onRuntimeInitialized\"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};Module[\"onModuleParsed\"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!==\"string\")return false;const version=versionString.split(\".\");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module[\"isVersionSupported\"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts[\"initial\"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(\n// EMSCRIPTEN_START_ASM\nfunction instantiate(ma){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]==\"=\")-(o[j-1]==\"=\");for(;a<j;a+=4){g=f[o.charCodeAt(a+1)];h=f[o.charCodeAt(a+2)];m[i++]=f[o.charCodeAt(a)]<<2|g>>4;if(i<k)m[i++]=g<<4|h>>2;if(i<k)m[i++]=h<<6|f[o.charCodeAt(a+3)]}}function p(q){l(e,1028,\"YAQAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAE41ZHJhY28yOEF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1FAAD4SAAAOAQAAHgIAABjb21wcmVzc19jb25uZWN0aXZpdHkAaW5maW5pdHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABfX25leHRfcHJpbWUgb3ZlcmZsb3cAc3RvcmVfbnVtYmVyX29mX2VuY29kZWRfcG9pbnRzAHF1YW50aXphdGlvbl9iaXRzAHNwbGl0X21lc2hfb25fc2VhbXMAc3RvcmVfbnVtYmVyX29mX2VuY29kZWRfZmFjZXMAdmVjdG9yAHByZWRpY3RpdmVfZWRnZWJyZWFrZXIAc3RhbmRhcmRfZWRnZWJyZWFrZXIAc3RkOjpleGNlcHRpb24AdXNlX2J1aWx0X2luX2F0dHJpYnV0ZV9jb21wcmVzc2lvbgBxdWFudGl6YXRpb25fb3JpZ2luAG5hbgBzeW1ib2xfZW5jb2RpbmdfY29tcHJlc3Npb25fbGV2ZWwAYmFkX2FycmF5X25ld19sZW5ndGgAYmFzaWNfc3RyaW5nAGluZgAlZgBwcmVkaWN0aW9uX3NjaGVtZQBxdWFudGl6YXRpb25fcmFuZ2UAZWRnZWJyZWFrZXJfbWV0aG9kAHN5bWJvbF9lbmNvZGluZ19tZXRob2QAZW5jb2Rpbmdfc3BlZWQAZGVjb2Rpbmdfc3BlZWQAc3RkOjpiYWRfYWxsb2MARFJBQ08ATkFOAElORgBJbnZhbGlkIGlucHV0IGdlb21ldHJ5LgBGYWlsZWQgdG8gZW5jb2RlIG1lc2ggY29tcG9uZW50LgBGYWlsZWQgdG8gZW5jb2RlIHBvaW50IGF0dHJpYnV0ZXMuAEZhaWxlZCB0byBwcm9jZXNzIG1lc2ggaG9sZXMuAEZhaWxlZCB0byBpbml0aWFsaXplIGVuY29kZXIuAEFsbCB0cmlhbmdsZXMgYXJlIGRlZ2VuZXJhdGUuAEludmFsaWQgZW5jb2RpbmcgbWV0aG9kLgBGYWlsZWQgdG8gZW5jb2RlIG1ldGFkYXRhLgBGYWlsZWQgdG8gZW5jb2RlIHNwbGl0IGRhdGEuAEZhaWxlZCB0byBlbmNvZGUgaW50ZXJuYWwgZGF0YS4ARmFpbGVkIHRvIGluaXRpYWxpemUgYXR0cmlidXRlIGRhdGEuAChudWxsKQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQAgAAAAAAAAAEwIAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAALAAAAGAAAABkAAABONWRyYWNvMzBBdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1FAAAAAPhIAAAgCAAAeAgAAE41ZHJhY28xOEF0dHJpYnV0ZVRyYW5zZm9ybUUAAAAA0EgAAFgIAAD/////AAAAANwIAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAAB4AAAAlAAAATjVkcmFjbzE3QXR0cmlidXRlc0VuY29kZXJFANBIAADACAAAAAAAAEQJAAAmAAAAJwAAABwAAAAdAAAAKAAAAB8AAAAgAAAAIQAAACIAAAAjAAAAKQAAACoAAAArAAAATjVkcmFjbzIzS2RUcmVlQXR0cmlidXRlc0VuY29kZXJFAAAA+EgAACAJAADcCAAAAAAAALAJAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAABONWRyYWNvMjZTZXF1ZW50aWFsQXR0cmlidXRlRW5jb2RlckUAAAAA0EgAAIgJAAAAAAAALAoAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAE41ZHJhY28zN1NlcXVlbnRpYWxBdHRyaWJ1dGVFbmNvZGVyc0NvbnRyb2xsZXJFAPhIAAD8CQAA3AgAAAAAAACkCgAARwAAAEgAAABJAAAALwAAAEoAAAAxAAAAMgAAADMAAABLAAAANQAAADYAAABMAAAATQAAAE4AAABONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZUVuY29kZXJFAPhIAAB4CgAAsAkAAP////8AAAAANA0AAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjNQcmVkaWN0aW9uU2NoZW1lRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVFRQBONWRyYWNvMzdQcmVkaWN0aW9uU2NoZW1lVHlwZWRFbmNvZGVySW50ZXJmYWNlSWlpRUUATjVkcmFjbzMyUHJlZGljdGlvblNjaGVtZUVuY29kZXJJbnRlcmZhY2VFAE41ZHJhY28yNVByZWRpY3Rpb25TY2hlbWVJbnRlcmZhY2VFANBIAADYDAAA+EgAAK0MAAD8DAAA+EgAAHkMAAAEDQAA+EgAACUMAAAQDQAA+EgAAI8LAAAcDQAA+EgAAOwKAAAoDQAAAAAAACgNAABPAAAAWwAAAB4AAABSAAAAHgAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAB4AAAAAAAAAHA0AAE8AAABcAAAAHgAAAFIAAAAeAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAHgAAAAAAAACcDgAAXQAAAF4AAABfAAAAUgAAAGAAAABUAAAAVQAAAFYAAABXAAAAWAAAAGEAAABiAAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAA+EgAAOgNAAAoDQAAAAAAAIgPAABjAAAAZAAAAGUAAABSAAAAZgAAAGcAAABoAAAAaQAAAFcAAABYAAAAagAAAGsAAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAD4SAAA4A4AACgNAAAAAAAAdBAAAGwAAABtAAAAbgAAAFIAAABvAAAAcAAAAHEAAAByAAAAVwAAAFgAAABzAAAAdAAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAAAPhIAADMDwAAKA0AAAAAAAD8EQAAdQAAAHYAAAB3AAAAeAAAAHkAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAANBIAABHEQAA+EgAAJwQAAD0EQAAAAAAAPQRAAB1AAAAegAAAB4AAAB4AAAAHgAAAAAAAACIEwAATwAAAHsAAAB8AAAAUgAAAH0AAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAAB+AAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAA+EgAAPISAAAcDQAA+EgAAFwSAAB8EwAAAAAAAHwTAABPAAAAfwAAAB4AAABSAAAAHgAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAB4AAAAAAAAArBQAAIAAAACBAAAAggAAAFIAAACDAAAAVAAAAFUAAABWAAAAVwAAAFgAAACEAAAAhQAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAPhIAAAEFAAAfBMAAAAAAACMFQAAhgAAAIcAAACIAAAAUgAAAIkAAACKAAAAiwAAAIwAAABXAAAAWAAAAI0AAACOAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAA+EgAAPAUAAB8EwAAAAAAAGgWAACPAAAAkAAAAJEAAABSAAAAkgAAAJMAAACUAAAAlQAAAFcAAABYAAAAlgAAAJcAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbEVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAPhIAADQFQAAfBMAAAAAAADUFwAAmAAAAJkAAACaAAAAmwAAAJwAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA0EgAAC4XAAD4SAAAkBYAAMwXAAAAAAAAzBcAAJgAAACdAAAAHgAAAJsAAAAeAAAAAAAAAJAYAABPAAAAngAAAJ8AAABSAAAAoAAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAKEAAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAAAAAPhIAAA0GAAAHA0AAAAAAAAIGQAAogAAAKMAAACkAAAALwAAAEoAAAAxAAAApQAAAKYAAACnAAAANQAAADYAAABMAAAAqAAAAKkAAABONWRyYWNvMzJTZXF1ZW50aWFsTm9ybWFsQXR0cmlidXRlRW5jb2RlckUAAPhIAADcGAAApAoAAAAAAAA8GwAAqgAAAKsAAACsAAAArQAAAK4AAACvAAAAsAAAALEAAACyAAAAswAAALQAAAC1AAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRUVFAAAAAPhIAAC1GgAAEA0AAPhIAAAHGgAAJBsAAPhIAABMGQAAMBsAAAAAAABMHAAAtgAAALcAAAC4AAAArQAAALkAAACvAAAAsAAAALEAAACyAAAAswAAALoAAAC7AAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAA+EgAAIAbAAAwGwAAAAAAAFAdAAC8AAAAvQAAAL4AAACtAAAAvwAAAMAAAADBAAAAwgAAALIAAACzAAAAwwAAAMQAAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAD4SAAAkBwAADAbAAAAAAAAVB4AAMUAAADGAAAAxwAAAK0AAADIAAAAyQAAAMoAAADLAAAAsgAAALMAAADMAAAAzQAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAAAPhIAACUHQAAMBsAAAAAAAAMIAAAzgAAAM8AAADQAAAA0QAAANIAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAANBIAAA/HwAA+EgAAHweAAAEIAAAAAAAAKwhAACqAAAA0wAAANQAAACtAAAA1QAAAK8AAACwAAAAsQAAALIAAACzAAAAtAAAANYAAABONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAD4SAAA/iAAACQbAAD4SAAAUCAAAKAhAAAAAAAAsCIAANcAAADYAAAA2QAAAK0AAADaAAAArwAAALAAAACxAAAAsgAAALMAAADbAAAA3AAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAPhIAADwIQAAoCEAAAAAAACoIwAA3QAAAN4AAADfAAAArQAAAOAAAADhAAAA4gAAAOMAAACyAAAAswAAAOQAAADlAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAA+EgAAPQiAACgIQAAAAAAAJwkAADmAAAA5wAAAOgAAACtAAAA6QAAAOoAAADrAAAA7AAAALIAAACzAAAA7QAAAO4AAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbEVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAPhIAADsIwAAoCEAAAAAAAA4JgAA7wAAAPAAAADxAAAA8gAAAPMAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA0EgAAHolAAD4SAAAxCQAADAmAAAAAAAA8CYAAKoAAAD0AAAA9QAAAK0AAAD2AAAArwAAALAAAACxAAAAsgAAALMAAAC0AAAA9wAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFRUUAAAAA+EgAAHwmAAAkGwAAAAAAAHAnAAD4AAAA+QAAAPoAAAAvAAAASgAAADEAAAD7AAAA/AAAAP0AAAA1AAAANgAAAEwAAABNAAAA/gAAAE41ZHJhY28zOFNlcXVlbnRpYWxRdWFudGl6YXRpb25BdHRyaWJ1dGVFbmNvZGVyRQAAAAD4SAAAPCcAAKQKAAAAAAAA/CcAAP8AAAAAAQAAAQEAAAIBAABONWRyYWNvN0VuY29kZXJFAE41ZHJhY28xMUVuY29kZXJCYXNlSU5TXzE4RW5jb2Rlck9wdGlvbnNCYXNlSU5TXzE3R2VvbWV0cnlBdHRyaWJ1dGU0VHlwZUVFRUVFAADQSAAApScAAPhIAACUJwAA9CcAAAAAAABMKAAAAwEAAAQBAABONWRyYWNvMTFFbmNvZGVyQmFzZUlOU18xOEVuY29kZXJPcHRpb25zQmFzZUlpRUVFRQAA0EgAABgoAAAAAAAA9CcAAP8AAAAFAQ==\");l(e,10348,\"kCgAAAMBAAAGAQAATjVkcmFjbzEzRXhwZXJ0RW5jb2RlckUA+EgAAHgoAABMKAAAAAAAABApAAAHAQAACAEAAAkBAAAKAQAACwEAAAwBAAANAQAADgEAAA8BAAAQAQAAEQEAABIBAAATAQAAFAEAABUBAAAWAQAAFwEAABgBAABONWRyYWNvMjJNZXNoRWRnZWJyZWFrZXJFbmNvZGVyRQAAAAD4SAAA7CgAAOQvAAAAAAAACCoAABkBAAAaAQAAGwEAABwBAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAAAAAAGgqAAAkAQAAJQEAACYBAAAnAQAAKAEAACkBAAAqAQAAKwEAACwBAAAtAQAALgEAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckVuY29kZXJJbXBsSU5TXzMxTWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsRW5jb2RlckVFRQBONWRyYWNvMzVNZXNoRWRnZWJyZWFrZXJFbmNvZGVySW1wbEludGVyZmFjZUUAAADQSAAA0CkAAPhIAACEKQAAACoAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckVuY29kZXJJbXBsSU5TXzM4TWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsVmFsZW5jZUVuY29kZXJFRUUAAPhIAAAUKgAAACoAAAAAAABkKwAALwEAADABAAAxAQAATjVkcmFjbzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMV9FRUVFAE41ZHJhY28xM1RyYXZlcnNlckJhc2VJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQDQSAAA9SoAAPhIAACIKgAAXCsAAAAAAABcKwAAMgEAADMBAAAxAQ==\");l(e,11152,\"AQAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAQAAAAUAAAACAAAABQAAAAMAAAAFAAAABAAAAAAAAACULAAANAEAADUBAAA2AQAANwEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAE41ZHJhY28xNVBvaW50c1NlcXVlbmNlckUAAAAA0EgAAG8sAAD4SAAA6CsAAIwsAAD/////AAAAAIQtAAA4AQAAOQEAADoBAABONWRyYWNvMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAA0EgAACEtAAD4SAAAuCwAAHwtAAAAAAAAfC0AADsBAAA8AQAAOgEAAAAAAAA8LgAAPQEAAD4BAAA/AQAAQAEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAAAA+EgAALwtAACMLAAAAAAAALwuAABBAQAAQgEAADoBAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQD4SAAAXC4AAHwtAAAAAAAAbC8AAEMBAABEAQAARQEAAEYBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMl9FRUVFRUUAAPhIAADgLgAAjCw=\");l(e,12160,\"5C8AAEcBAABIAQAACQEAAB4AAABJAQAADAEAAA0BAAAOAQAADwEAAB4AAABKAQAAEgEAAB4AAABLAQAATAEAAE0BAAAeAAAAHgAAAE41ZHJhY28xMU1lc2hFbmNvZGVyRQAAAPhIAADMLwAABDEAAAAAAABgMAAARwEAAE4BAAAJAQAATwEAAEkBAAAMAQAADQEAAA4BAAAPAQAAUAEAAEoBAAASAQAAUQEAAEsBAABMAQAATQEAAFIBAABTAQAATjVkcmFjbzIxTWVzaFNlcXVlbnRpYWxFbmNvZGVyRQD4SAAAQDAAAOQvAAAAAAAAoDAAAFQBAABVAQAAVgEAAFcBAABONWRyYWNvMTVMaW5lYXJTZXF1ZW5jZXJFAAAA+EgAAIQwAACMLAAAAAAAAAQxAABHAQAAWAEAAFkBAAAeAAAASQEAAAwBAABaAQAADgEAAA8BAAAeAAAASgEAABIBAAAeAAAATjVkcmFjbzE3UG9pbnRDbG91ZEVuY29kZXJFANBIAADoMAAAAAAAAGwxAABHAQAAWwEAAFkBAABcAQAASQEAAAwBAABdAQAADgEAAA8BAABeAQAASgEAABIBAABfAQAATjVkcmFjbzIzUG9pbnRDbG91ZEtkVHJlZUVuY29kZXJFAAAA+EgAAEgxAAAEMQAAAAAAANwxAABHAQAAYAEAAFkBAABhAQAASQEAAAwBAABiAQAADgEAAA8BAABjAQAASgEAABIBAABkAQAATjVkcmFjbzI3UG9pbnRDbG91ZFNlcXVlbnRpYWxFbmNvZGVyRQAAAPhIAAC0MQAABDE=\");l(e,12804,\"AQAAAFZVVVUCAAAAAAAAAAIAAACamZmZAwAAAFZVVVUDAAAAJUmSJAMAAAAAAAAAAwAAAMhxHMcEAAAAmpmZmQQAAABGF110BAAAAFZVVVUEAAAAPLETOwQAAAAlSZIkBAAAABIREREEAAAAAAAAAAQAAADi4eHhBQAAAMhxHMcFAAAAy2sorwUAAACamZmZBQAAAIdhGIYFAAAARhdddAUAAACRhSxkBQAAAFZVVVUFAAAAexSuRwUAAAA8sRM7BQAAANtLaC8FAAAAJUmSJAUAAAASlnsaBQAAABIREREFAAAAhRBCCAUAAAAAAAAABQAAAAgffPAGAAAA4uHh4QYAAADVQR3UBgAAAMhxHMcGAAAATZHPugYAAADLayivBgAAAKVBGqQGAAAAmpmZmQYAAAD6GJyPBgAAAIdhGIYGAAAAGPQFfQYAAABGF110BgAAAG3BFmwGAAAAkYUsZAYAAAC6gphcBgAAAFZVVVUGAAAAcwpeTgYAAAB7FK5HBgAAAEJBQUEGAAAAPLETOwYAAACzzyE1BgAAANtLaC8GAAAAnxLkKQYAAAAlSZIkBgAAAN1HcB8GAAAAEpZ7GgYAAAD45bEVBgAAABIREREGAAAA/BSXDAYAAACFEEIIBgAAAAVBEAQGAAAAAAAAAAYAAAD5gR/4BwAAAAgffPAHAAAAwBoT6QcAAADi4eHhBwAAAGwH5toHAAAA1UEd1AcAAACRaIXNBwAAAMhxHMcHAAAAOXDgwAcAAABNkc+6BwAAAE8b6LQHAAAAy2sorwcAAAAH9o6pBwAAAKVBGqQHAAAAUunIngcAAACamZmZBwAAAM4Pi5QHAAAA+hicjwcAAAD3kMuKBwAAAIdhGIYHAAAAgoGBgQcAAAAY9AV9BwAAABjIpHgHAAAARhdddAcAAADBBS5wBwAAAG3BFmwHAAAAaYEWaAcAAACRhSxkBwAAAAYWWGAHAAAAuoKYXAcAAAAJI+1YBwAAAFZVVVUHAAAAr37QUQcAAABzCl5OBwAAAAZq/UoHAAAAexSuRwcAAABXhm9EBwAAAEJBQUEHAAAAz8siPgcAAAA8sRM7BwAAADmBEzgHAAAAs88hNQcAAACjND4yBwAAANtLaC8HAAAA2bSfLAcAAACfEuQpBwAAAIkLNScHAAAAJUmSJAcAAAATePshBwAAAN1HcB8HAAAA22rwHAcAAAASlnsaBwAAABmBERgHAAAA+OWxFQcAAAAUgVwTBwAAABIREREHAAAAv1bPDgcAAAD8FJcMBwAAAKcQaAoHAAAAhRBCCAcAAAAw3SQGBwAAAAVBEAQHAAAAEQgEAgcAAAAAAAAABwAAACDwB/wIAAAA+YEf+AgAAADlWUb0CAAAAAgffPAIAAAAMXvA7AgAAADAGhPpCAAAAJGsc+UIAAAA4uHh4QgAAABAbl3eCAAAAGwH5toIAAAATGV71wgAAADVQR3UCAAAAPdYy9AIAAAAkWiFzQgAAABWMEvKCAAAAMhxHMcIAAAAHfD4wwgAAAA5cODACAAAAJq40r0IAAAATZHPuggAAADew9a3CAAAAE8b6LQIAAAAB2QDsggAAADLayivCAAAAK0BV6wIAAAAB/aOqQgAAABuGtCmCAAAAKVBGqQIAAAAmD9toQgAAABS6cieCAAAAO8ULZwIAAAAmpmZmQgAAACBTw6XCAAAAM4Pi5QIAAAAnrQPkggAAAD6GJyPCAAAANQYMI0IAAAA95DLiggAAAALX26ICAAAAIdhGIYIAAAArHfJgwgAAACCgYGBCAAAANFfQH8IAAAAGPQFfQgAAACPINJ6CAAAABjIpHgIAAAARM59dggAAABGF110CAAAAPWHQnIIAAAAwQUucAgAAAC1dh9uCAAAAG3BFmwIAAAAFs0TaggAAABpgRZoCAAAAKbGHmYIAAAAkYUsZAgAAABxpz9iCAAAAAYWWGAIAAAAjrt1XggAAAC6gphcCAAAALFWwFoIAAAACSPtWAgAAADG0x5XCAAAAFZVVVUIAAAAkJSQUwgAAACvftBRCAAAAFEBFVAIAAAAcwpeTggAAABziKtMCAAAAAZq/UoIAAAAPJ5TSQgAAAB7FK5HCAAAAIC8DEYIAAAAV4ZvRAgAAABeYtZCCAAAAEJBQUEIAAAA/BOwPwgAAADPyyI+CAAAAEhamTwIAAAAPLETOwgAAADCwpE5CAAAADmBEzgIAAAAPt+YNggAAACzzyE1CAAAALZFrjMIAAAAozQ+MggAAAAUkNEwCAAAANtLaC8IAAAABVwCLggAAADZtJ8sCAAAANFKQCsIAAAAnxLkKQgAAAApAYsoCAAAAIkLNScIAAAACSfiJQgAAAAlSZIkCAAAAIpnRSMIAAAAE3j7IQgAAADHcLQgCAAAAN1HcB8IAAAAtPMuHggAAADbavAcCAAAAAWktBsIAAAAEpZ7GggAAAAJOEUZCAAAABmBERgIAAAAlWjgFggAAAD45bEVCAAAAOHwhRQIAAAAFIFcEwgAAAB2jjUSCAAAABIREREIAAAAEAHvDwgAAAC/Vs8OCAAAAIkKsg0IAAAA/BSXDAgAAADDbn4LCAAAAKcQaAoIAAAAkfNTCQgAAACFEEIICAAAAKVgMgcIAAAAMN0kBggAAAB+fxkFCAAAAAVBEAQIAAAAUhsJAwgAAAARCAQCCAAAAAIBAQEIAAAAAQAAAAEAAAACAAAAAgAAAAQAAAAEAAAACAAAAAgAAAAEAAAACAAAAAEAAAAAAAAA/////wAAAABYOgAAZQEAAGYBAABnAQAAaAEAAGkBAABqAQAAawEAAE41ZHJhY280TWVzaEUAAAD4SAAASDoAAKg6AAD/////AAAAAAAAAACoOgAAbAEAAG0BAABuAQAAbwEAAGkBAABqAQAAcAEAAE41ZHJhY28xMFBvaW50Q2xvdWRFAAAAANBIAACQOgAA/////wAAAAAAACBlRxX3PwCi7y78Bec9OYMrZUcV57++BDrcCcfeP/svcGRHFde/SEwDUGx30j+8kuoos8fOvy75F+ElYso//oIrZUcV57/3AzrcCcfePz98K2VHFde/5FvwUGx30j/lj3bdCcfOvzbnxB52Yco/m6dkvD8Vx79KG/BU0YTEPzw4LKfkicK/Zu5aKC+zwD/4rLFrKCT3PwCwze5fCeG/oczSZvfh9j8A0Ha9lITgv4rUMA49ofY/APjorkMB4L+FbNAy7GH2PwBACzbF/t6/+JgRlfoj9j8A4Lca2f3dv2wCz6Rb5/U/AJDHDK7/3L+4TyFaBaz1PwCg/RE4BNy/Hm4WD+1x9T8A4DoyZwvbvzX4C1kJOfU/ALAtWi8V2r/drWHtTwH1PwBg+Fp/Idm/0HtIjrjK9D8AkHGwTTDYv+5PM7Q5lfQ/AOCp+YlB179p1a/fy2D0PwCQGbUrVda/U7nkTmYt9D8AEJuiI2vVv6bYHREB+/M/AKBfD2WD1L82WAy3lcnzPwCg9jfpndO/Sv22ShyZ8z8AYI1TobrSv7WZ4AyOafM/AEDKQIPZ0b+y5xOC5DrzPwDgQDqF+tC/sb2FGRkN8z8AMOcynB3Qv9dxssol4PI/AGD6on2Fzr+CzRPPBLTyPwCAPWPI08y/UMt8LLCI8j8AoBRMAybLv+VNlGMiXvI/AOBPLxx8yb+xFYY9VjTyPwAAgD8C1se/OK8+40YL8j8A4AUapzPGv92jzf3u4vE/AABX6fWUxL8wOQtYSrvxPwCg4CTk+cK/ACJ/hFOU8T8AwP1aWWLBvzzX1cAGbvE/AIC9dZqcv7/C5LdHX0jxPwDA+VtXe7y/0YUArVgj8T8AgPQPxmC5vyciUw/w/vA/AAC2R+JMtr+POtB3INvwPwBAAbJ4P7O/2YBZ1ua38D8AwEIafTiwv41Ae/4+lfA/AAC1CJJvqr+DO8XKJXPwPwAAd0+VeqS/XBsN5JdR8D8AAAzFqCOdv6KOIMGRMPA/AAB4KSZqkb8hfrMlEBDwPwAA6Nj4IHe/a6fK+X7A7z8AAFCxU/6GP4Tx9tNlRO8/AIAP4cwcoT9/EISfB8zuPwCAi4z8Taw/6FqXmTpX7j8AQFceMqqzP+Y9vfDW5e0/AICL0KAYuT+zOP+BtnftPwBABNrpcr4/Q+lNcrUM7T8AYH9Q0tzBP2N1DtyypOw/AKDeA6t2xD9Ry9bojj/sPwAg4ndDB8c/TAwCTyvd6z8AQKmL3o7JP8oVYABsfes/AODSargNzD+PMy5uNiDrPwDgzq8KhM4/OVApJnDF6j8AgGe0CnnQP90xJ7wBbeo/AMABaAWs0T+L8T+80xbqPwDg/tQR29I/rf5nSdHC6T8AgMVORgbUPwKZfPTkcOk/APA6Cb4t1T/yvII5+yDpPwDQUCCQUdY/8Vn3hwHT6D8A8OrN0nHXP232uevlhug/AJB9hZyO2D+UuVi2lzzoPwBg4VUBqNk/IhDG/wX05z8A0NNuGL7aP8oVFBgirec/AOCgrvLQ2z+M/5753GfnPwBAvz2k4Nw/jgq5EgAg5j8FtkQGqwSJPKY0VwQAYOY/qfdi6pv/YTzF8iXD/5/mP7qQPMvPfoI8BFq5OADg5j8mk3NWiP+IPOOUmeD/H+c/sYJfJ0D9ijwQDlkVAGDnP0GDI7R1/XK81VtlEgCg5z92KyR85gh4PKbpWTIA4Oc/tyL2JuQIYrzSsrTt/x/oPy/JpR5GAoS8w/z6LQBg6D8fmvKi9PdtPFBrjPf/n+g//ZVJCVMEjrxmFWc5AODoP0V7x77zBIq8RRe/4v8f6T88IA5ANPp3vNGfXMz/X+k/XWmgBYD/drxnR7o7AKDpPwN+7MTE+HA8pS255//f6T8CRoxH2X+OPK/9Ltf/H+o/fq7NTVUMaryV/wTe/1/qP2uy6YypfYY8K41eyv+f6j/eE0y1yYSCvOoDrd3/3+o/PC5g6sgSWDxNPQ3x/x/rP5x4J63d+o68WhYhzv9f6z83EsYZF8tTPHTmUNn/n+s/AM6UQdn3czyvqJwTAODrP8CbXSHECnU8md9GWwAg7D/JwelTpu5rPK73uUAAYOw/1nBKJ58HfLyK/VViAKDsPx9M6HZAC3q8XQlM2f/f7D/XtZr5M/mIPM/Wdfn/H+0/vuFfZggsWLyTHFai/1/tP/OV0psoBHu8DIsinf+f7T82og80UQKHPBZ+vGUA4O0/DNikFh4BdbyRR/YCACDuP+Bi7wkvgIk82KbXVwBg7j/69wxYdQt+vAzA7ScAoO4/EZhFCYOEjLx8y/VsAODuP/R2FZUngI+8zH0reAAg7z+PU3Ry2YGPvApFDCYAYO8/3P8nJwBxQLwz1Yzo/5/vP7Co/eHcG1i8iYYP1f/f7z9ujpHLGvmHPGcjKQQAIPA/gUYyZfN/mzxo1uPj/1/wP3uVrt0I+oY8V6eFCgCg8D+R+9OA3uJXvMw/XxoA4PA/FPDFBTOCkbz1uq/4/x/xP8K6gGa7+ou8rZFN5f9f8T/v5zcXEn+dvOE2rBEAoPE///UWBQoAnDxIQsgZAODxP6Bd2uT7gpC8bl7+DwAg8j9D+5xM0P2IvJHYnyYAYPI/gtGUeSr+jDza5qYpAKDyP8WLXnFzAnC8OT4p4P/f8j/5prLaOXybPILw3Pf/H/M/VFLcbjPxfTxgi1rw/1/zP+sxzUxWA568zK4OLgCg8z93pNNL5/B1PDayOwQA4PM/M4idFMt9nDz/h9ECACD0Pyg9Lc+vCH48sXw4DQBg9D+mmWWFNwiCPImfVgQAoPQ/0rxPkFz6ibzzQzUEAOD0PylTF+0lEXi8D38CzP8f9T/cVHeE2IOYPG+zh/3/X/U/ByjQMecJh7y69x3y/5/1PwJ7cmif94c8gTT86//f9T8+6TAukICRvAAAAAAAAAAA0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAAZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQ==\");l(e,17393,\"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO\");l(e,17451,\"DA==\");l(e,17463,\"EwAAAAATAAAAAAkMAAAAAAAMAAAM\");l(e,17509,\"EA==\");l(e,17521,\"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ\");l(e,17567,\"Eg==\");l(e,17579,\"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa\");l(e,17634,\"GgAAABoaGgAAAAAAAAk=\");l(e,17683,\"FA==\");l(e,17695,\"FwAAAAAXAAAAAAkUAAAAAAAUAAAU\");l(e,17741,\"Fg==\");l(e,17753,\"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAAAAAAIAAAADAAAABQAAAAcAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAH8AAACDAAAAiQAAAIsAAACVAAAAlwAAAJ0AAACjAAAApwAAAK0AAACzAAAAtQAAAL8AAADBAAAAxQAAAMcAAADTAAAAAQAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAeQAAAH8AAACDAAAAiQAAAIsAAACPAAAAlQAAAJcAAACdAAAAowAAAKcAAACpAAAArQAAALMAAAC1AAAAuwAAAL8AAADBAAAAxQAAAMcAAADR\");l(e,18196,\"CgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUAypo7AAAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OU4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAPhIAAAISAAAjEoAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAPhIAAA4SAAALEgAAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAPhIAABoSAAALEgAAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAPhIAACYSAAAjEgAAAAAAABcSAAAdAEAAHUBAAB2AQAAdwEAAHgBAAB5AQAAegEAAHsBAAAAAAAAQEkAAHQBAAB8AQAAdgEAAHcBAAB4AQAAfQEAAH4BAAB/AQAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAPhIAAAYSQAAXEgAAAAAAACwSQAADgAAAIABAACBAQAAAAAAANhJAAAOAAAAggEAAIMBAAAAAAAAmEkAAA4AAACEAQAAhQEAAFN0OWV4Y2VwdGlvbgAAAADQSAAAiEkAAFN0OWJhZF9hbGxvYwAAAAD4SAAAoEkAAJhJAABTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAA+EgAALxJAACwSQAAAAAAAAhKAAABAAAAhgEAAIcBAABTdDExbG9naWNfZXJyb3IA+EgAAPhJAACYSQAAAAAAADxKAAABAAAAiAEAAIcBAABTdDEybGVuZ3RoX2Vycm9yAAAAAPhIAAAoSgAACEoAAAAAAABwSgAAAQAAAIkBAACHAQAAU3QxMm91dF9vZl9yYW5nZQAAAAD4SAAAXEoAAAhKAABTdDl0eXBlX2luZm8AAAAA0EgAAHxK\");l(e,19092,\"wE0B\")}var r=new ArrayBuffer(16);var s=new Int32Array(r);var t=new Float32Array(r);var u=new Float64Array(r);function v(w){return s[w]}function x(w,y){s[w]=y}function z(){return u[0]}function A(y){u[0]=y}function B(){throw new Error(\"abort\")}function C(y){t[2]=y}function D(){return t[2]}function la(q){var E=q.a;var F=E.a;var G=F.buffer;F.grow=ja;var H=new Int8Array(G);var I=new Int16Array(G);var J=new Int32Array(G);var K=new Uint8Array(G);var L=new Uint16Array(G);var M=new Uint32Array(G);var N=new Float32Array(G);var O=new Float64Array(G);var P=Math.imul;var Q=Math.fround;var R=Math.abs;var S=Math.clz32;var T=Math.min;var U=Math.max;var V=Math.floor;var W=Math.ceil;var X=Math.trunc;var Y=Math.sqrt;var Z=E.b;var _=E.c;var $=E.d;var aa=E.e;var ba=85440;var ca=0;\n// EMSCRIPTEN_START_FUNCS\nfunction ee(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0;C=ba-48|0;ba=C;a:{b:{if((b|0)<0){break b}if(!b){h=1;break b}J[C+40>>2]=0;J[C+32>>2]=0;J[C+36>>2]=0;c:{d:{if(b>>>0<1073741824){g=b<<2;n=oa(g);J[C+36>>2]=n;J[C+32>>2]=n;j=g+n|0;u=(c|0)<=1?1:c;c=u-1|0;v=c&-4;l=c&3;r=u-2>>>0>2;F=n;g=n;e:{f:{g:{while(1){h=J[(s<<2)+a>>2];h:{if(u>>>0<2){break h}m=0;c=1;if(r){while(1){q=(c+s<<2)+a|0;k=J[q>>2];h=h>>>0>k>>>0?h:k;k=J[q+4>>2];h=h>>>0>k>>>0?h:k;k=J[q+8>>2];h=h>>>0>k>>>0?h:k;q=J[q+12>>2];h=h>>>0>q>>>0?h:q;c=c+4|0;m=m+4|0;if((v|0)!=(m|0)){continue}break}}k=0;if(!l){break h}while(1){m=J[(c+s<<2)+a>>2];h=h>>>0>m>>>0?h:m;c=c+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}c=h?(S(h)^31)+1|0:1;i:{if(g>>>0<j>>>0){J[g>>2]=c;g=g+4|0;J[C+36>>2]=g;break i}m=g-F|0;q=m>>2;g=q+1|0;if(g>>>0>=1073741824){break g}j=j-F|0;k=j>>>1|0;j=j>>>0>=2147483644?1073741823:g>>>0<k>>>0?k:g;if(j){if(j>>>0>=1073741824){break f}n=oa(j<<2)}else{n=0}g=n+(q<<2)|0;J[g>>2]=c;c=ta(n,F,m);g=g+4|0;J[C+36>>2]=g;j=c+(j<<2)|0;if(F){na(F)}F=c}p=h>>>0>p>>>0?h:p;s=s+u|0;if((s|0)<(b|0)){continue}break}J[C+40>>2]=j;J[C+32>>2]=n;c=0;J[C+24>>2]=0;J[C+16>>2]=0;J[C+20>>2]=0;j:{if((g|0)==(F|0)){k=0;break j}c=g-F|0;if((c|0)<0){break e}k=oa(c);J[C+16>>2]=k;J[C+24>>2]=(c&-4)+k;c=F;h=k;while(1){J[h>>2]=J[c>>2];h=h+4|0;c=c+4|0;if((g|0)!=(c|0)){continue}break}J[C+20>>2]=h;c=h-k>>2;if((h|0)==(k|0)){break j}g=c>>>0<=1?1:c;q=g&3;s=0;k:{if(g-1>>>0<3){h=0;break k}n=g&-4;h=0;m=0;while(1){g=f;f=h<<2;l=J[f+k>>2];g=g+l|0;j=i;j=g>>>0<l>>>0?j+1|0:j;l=J[(f|4)+k>>2];i=l+g|0;g=j;g=l>>>0>i>>>0?g+1|0:g;j=J[(f|8)+k>>2];i=j+i|0;g=j>>>0>i>>>0?g+1|0:g;l=i;i=J[(f|12)+k>>2];f=l+i|0;i=f>>>0<i>>>0?g+1|0:g;h=h+4|0;m=m+4|0;if((n|0)!=(m|0)){continue}break}}if(!q){break j}while(1){j=J[(h<<2)+k>>2];f=j+f|0;g=i;i=f>>>0<j>>>0?g+1|0:g;h=h+1|0;s=s+1|0;if((q|0)!=(s|0)){continue}break}}c=Lg(k,c,32,C);v=ca;r=J[C>>2];if(k){J[C+20>>2]=k;na(k)}m=Lg(a,b,p,C);s=ca;k=J[C>>2];G=(p-k|0)/64|0;if(d){g=oa(32);H[g+22|0]=0;h=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);j=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[g+14|0]=j;H[g+15|0]=j>>>8;H[g+16|0]=j>>>16;H[g+17|0]=j>>>24;H[g+18|0]=h;H[g+19|0]=h>>>8;H[g+20|0]=h>>>16;H[g+21|0]=h>>>24;h=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);j=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[g+8|0]=j;H[g+9|0]=j>>>8;H[g+10|0]=j>>>16;H[g+11|0]=j>>>24;H[g+12|0]=h;H[g+13|0]=h>>>8;H[g+14|0]=h>>>16;H[g+15|0]=h>>>24;h=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);j=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[g|0]=j;H[g+1|0]=j>>>8;H[g+2|0]=j>>>16;H[g+3|0]=j>>>24;H[g+4|0]=h;H[g+5|0]=h>>>8;H[g+6|0]=h>>>16;H[g+7|0]=h>>>24;h=J[d+4>>2];if(h){while(1){j=K[h+27|0];q=j<<24>>24<0;j=q?J[h+20>>2]:j;n=j>>>0<22;l:{m:{n:{o:{p:{q:{l=n?j:22;if(l){q=q?J[h+16>>2]:h+16|0;t=Ba(g,q,l);if(t){break q}if(j>>>0<=22){break p}break l}if(j>>>0<=22){break o}break l}if((t|0)<0){break l}}j=Ba(q,g,l);if(j){break n}}if(n){break m}break d}if((j|0)>=0){break d}}h=h+4|0}h=J[h>>2];if(h){continue}break}}na(g)}if((S(p>>>0<=1?1:p)^30)>>>0<18){g=c;c=Hl(f,i,u,0);f=g+c|0;g=ca+v|0;g=c>>>0>f>>>0?g+1|0:g;c=r<<3;q=c>>31<<1|c>>>31;i=f;f=c<<1;c=i+f|0;j=g+q|0;j=c>>>0<f>>>0?j+1|0:j;f=c;c=k+G<<3;i=c;h=c>>31;c=m;g=k<<3;m=g;c=c+g|0;g=(g>>31)+s|0;h=(c>>>0<m>>>0?g+1|0:g)+h|0;g=c;c=c+i|0;h=g>>>0>c>>>0?h+1|0:h;c=(h|0)<=(j|0)&c>>>0<=f>>>0|(h|0)<(j|0)}else{c=0}break c}J[C+40>>2]=j;J[C+32>>2]=n;break a}J[C+32>>2]=n;xa();B()}break a}break a}na(g);c=oa(32);J[C>>2]=c;J[C+4>>2]=22;J[C+8>>2]=-2147483616;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);i=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+14|0]=i;H[c+15|0]=i>>>8;H[c+16|0]=i>>>16;H[c+17|0]=i>>>24;H[c+18|0]=f;H[c+19|0]=f>>>8;H[c+20|0]=f>>>16;H[c+21|0]=f>>>24;f=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);i=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);i=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+22|0]=0;c=Mf(d,C);if(H[C+11|0]>=0){break c}na(J[C>>2])}H[C|0]=c;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],C,C+1|0)}h=0;r:{s:{switch(c|0){case 0:p=0;k=ba-336|0;ba=k;pa(k+80|0,0,256);d=J[C+36>>2];c=J[C+32>>2];t:{if((d|0)==(c|0)){break t}d=d-c>>2;d=d>>>0<=1?1:d;i=d&3;if(d-1>>>0>=3){n=d&-4;while(1){f=k+80|0;d=p<<2;g=f+(J[d+c>>2]<<3)|0;j=g;m=J[g>>2];g=J[g+4>>2];m=m+1|0;g=m?g:g+1|0;J[j>>2]=m;J[j+4>>2]=g;g=f+(J[c+(d|4)>>2]<<3)|0;j=J[g>>2];q=J[g+4>>2];j=j+1|0;q=j?q:q+1|0;J[g>>2]=j;J[g+4>>2]=q;g=f+(J[c+(d|8)>>2]<<3)|0;j=J[g>>2];m=J[g+4>>2];j=j+1|0;m=j?m:m+1|0;J[g>>2]=j;J[g+4>>2]=m;d=f+(J[c+(d|12)>>2]<<3)|0;f=J[d>>2];g=J[d+4>>2];f=f+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;p=p+4|0;h=h+4|0;if((n|0)!=(h|0)){continue}break}}if(!i){break t}h=0;while(1){d=(k+80|0)+(J[c+(p<<2)>>2]<<3)|0;f=J[d>>2];q=J[d+4>>2];f=f+1|0;q=f?q:q+1|0;J[d>>2]=f;J[d+4>>2]=q;p=p+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}l=k+48|0;J[l>>2]=0;J[l+4>>2]=0;H[l+24|0]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+8>>2]=0;J[l+12>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;Jg(k,k+80|0,32,e);d=J[k+16>>2];f=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;q=f<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?q+1|0:q;d=c+((m&7)<<29|d>>>3)|0;g=m>>>3|0;g=c>>>0>d>>>0?g+1|0:g;c=d+8|0;Ia(e,c);c=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=16384;J[k+24>>2]=c+J[k+40>>2];Fd(l,b<<5,b>>31<<5|b>>>27,0);b=b-u|0;if((b|0)>=0){j=(u|0)<=0;c=b;while(1){p=J[k+32>>2];n=J[C+32>>2];f=J[k>>2]+(J[n+((c|0)/(u|0)<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(p>>>0>=i>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=p;p=J[k+32>>2]>>>8|0;J[k+32>>2]=p;if(i>>>0<=p>>>0){continue}break}n=J[C+32>>2]}g=J[f+4>>2];f=(p>>>0)/(d>>>0)|0;J[k+32>>2]=g+((f<<12)+(p-P(d,f)|0)|0);m=b-c|0;g=(m|0)/(u|0)|0;u:{if(j){break u}d=J[l+20>>2];i=d;f=J[l+16>>2];if(!f&(d|0)<=0|(d|0)<0){break u}g=J[(g<<2)+n>>2];n=0;while(1){if(!(!f&(i|0)<=0|(i|0)<0|(g|0)<=0)){f=J[(n+m<<2)+a>>2];d=J[l+12>>2];F=J[d+4>>2];h=0;while(1){i=F>>>3|0;q=i+J[d>>2]|0;v=K[q|0];D=q;q=F&7;I=D,L=Ll(q)&v,H[I|0]=L;i=i+J[d>>2]|0;H[i|0]=K[i|0]|(f>>>h&1)<<q;F=J[d+4>>2]+1|0;J[d+4>>2]=F;h=h+1|0;if((g|0)!=(h|0)){continue}break}}n=n+1|0;if((u|0)==(n|0)){break u}f=J[l+16>>2];i=J[l+20>>2];continue}}c=c-u|0;if((c|0)>=0){continue}break}}yb(k,e);Ed(l);a=J[e+20>>2];if(!J[e+16>>2]&(a|0)<=0|(a|0)<0){sa(e,J[e+4>>2],J[l>>2],J[l+4>>2])}a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[l+12>>2];J[l+12>>2]=0;if(a){na(a)}a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}ba=k+336|0;h=1;F=J[C+32>>2];break r;case 1:break s;default:break r}}G=ba-32|0;ba=G;n=1;v:{if((k|0)>0){c=S(k);if((c^30)>>>0>17){break v}n=32-c|0}w:{if(!d){break w}c=oa(48);H[c+33|0]=0;H[c+32|0]=K[1470];f=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);i=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=i;H[c+25|0]=i>>>8;H[c+26|0]=i>>>16;H[c+27|0]=i>>>24;H[c+28|0]=f;H[c+29|0]=f>>>8;H[c+30|0]=f>>>16;H[c+31|0]=f>>>24;f=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);i=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=i;H[c+17|0]=i>>>8;H[c+18|0]=i>>>16;H[c+19|0]=i>>>24;H[c+20|0]=f;H[c+21|0]=f>>>8;H[c+22|0]=f>>>16;H[c+23|0]=f>>>24;f=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);i=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);i=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;x:{h=J[d+4>>2];if(h){while(1){f=K[h+27|0];i=f<<24>>24<0;f=i?J[h+20>>2]:f;g=f>>>0<33;y:{z:{A:{B:{C:{D:{j=g?f:33;if(j){i=i?J[h+16>>2]:h+16|0;m=Ba(c,i,j);if(m){break D}if(f>>>0<=33){break C}break y}if(f>>>0<=33){break B}break y}if((m|0)<0){break y}}f=Ba(i,c,j);if(f){break A}}if(g){break z}break x}if((f|0)>=0){break x}}h=h+4|0}h=J[h>>2];if(h){continue}break}}na(c);break w}na(c);c=oa(48);J[G+16>>2]=c;J[G+20>>2]=33;J[G+24>>2]=-2147483600;H[c+32|0]=K[1470];f=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);i=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=i;H[c+25|0]=i>>>8;H[c+26|0]=i>>>16;H[c+27|0]=i>>>24;H[c+28|0]=f;H[c+29|0]=f>>>8;H[c+30|0]=f>>>16;H[c+31|0]=f>>>24;f=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);i=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=i;H[c+17|0]=i>>>8;H[c+18|0]=i>>>16;H[c+19|0]=i>>>24;H[c+20|0]=f;H[c+21|0]=f>>>8;H[c+22|0]=f>>>16;H[c+23|0]=f>>>24;f=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);i=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);i=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+33|0]=0;c=Mf(d,G+16|0);if(H[G+27|0]<0){na(J[G+16>>2])}if((c|0)<=3){n=n-2|0;break w}if(c>>>0<=5){n=n-1|0;break w}if(c>>>0>=10){n=n+2|0;break w}n=(c>>>0>7)+n|0}c=(n|0)<=1?1:n;c=(c|0)>=18?18:c;H[G+15|0]=c;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],G+15|0,G+16|0)}h=0;E:{switch(c-1|0){case 0:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;F:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}G:{if((b|0)<=0){break G}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];q=J[c+4>>2];d=d+1|0;q=d?q:q+1|0;J[c>>2]=d;J[c+4>>2]=q;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break G}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;H:{if((a|0)<=0){break H}A=a&3;I:{if(a>>>0<4){a=0;break I}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;g=i+D|0;f=f+x|0;q=(f>>>0<x>>>0?g+1|0:g)+m|0;g=f;f=f+p|0;g=(g>>>0>f>>>0?q+1|0:q)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break H}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0<e>>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;J:{if(a>>>0<g>>>0){Wa(l,g-a|0);break J}if(a>>>0<=g>>>0){break J}J[l+4>>2]=e+(g<<3)}k=0;K:{L:{M:{N:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;O:{if(o<4294967296&o>=0){e=~~o>>>0;break O}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break N}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;P:{if(!g){break P}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break P}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Q:{R:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break R}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}gc(s,p,t+24|0,e,0,0);break Q}gc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break M}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){S:{T:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));U:{if(R(w)<2147483648){i=~~w;break U}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break T}k=4096;break S}if((d|0)!=(e|0)){break S}a=1;break M}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break M}a=0;if(k>>>0<4097){break M}while(1)continue}if((d|0)<0){break K}break L}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break K}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break K}a=0;o=0;V:{if((d|0)<0){break V}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break V}a=a<<3;d=J[a+f>>2];if(!d){break V}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);W:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break W}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;g=d>>>0<39?g+1|0:g;d=a+((g&7)<<29|d>>>3)|0;h=g>>>3|0;j=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break F}h=1;break v;case 1:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;X:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Y:{if((b|0)<=0){break Y}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Y}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Z:{if((a|0)<=0){break Z}A=a&3;_:{if(a>>>0<4){a=0;break _}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=h;h=g;j=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?j+1|0:j)+m|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+p|0;q=(g>>>0>f>>>0?h+1|0:h)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?q+1|0:q;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Z}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;g=g+i|0;f=e+f|0;i=f>>>0<e>>>0?g+1|0:g;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;$:{if(a>>>0<g>>>0){Wa(l,g-a|0);break $}if(a>>>0<=g>>>0){break $}J[l+4>>2]=e+(g<<3)}k=0;aa:{ba:{ca:{da:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;ea:{if(o<4294967296&o>=0){e=~~o>>>0;break ea}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break da}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;fa:{if(!g){break fa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break fa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ga:{ha:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break ha}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}fc(s,p,t+24|0,e,0,0);break ga}fc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ca}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){ia:{ja:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));ka:{if(R(w)<2147483648){i=~~w;break ka}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break ja}k=4096;break ia}if((d|0)!=(e|0)){break ia}a=1;break ca}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break ca}a=0;if(k>>>0<4097){break ca}while(1)continue}if((d|0)<0){break aa}break ba}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break aa}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break aa}a=0;o=0;la:{if((d|0)<0){break la}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break la}a=a<<3;d=J[a+f>>2];if(!d){break la}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);ma:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break ma}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;h=e<<1|d>>>31;d=(d<<1)+39|0;j=h;j=d>>>0<39?j+1|0:j;d=a+((j&7)<<29|d>>>3)|0;q=j>>>3|0;m=a>>>0>d>>>0?q+1|0:q;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break X}h=1;break v;case 2:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;na:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}oa:{if((b|0)<=0){break oa}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|4)>>2]<<3)+n|0;h=J[d>>2];j=J[d+4>>2];h=h+1|0;j=h?j:j+1|0;J[d>>2]=h;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];h=J[c+4>>2];d=d+1|0;h=d?h:h+1|0;J[c>>2]=d;J[c+4>>2]=h;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break oa}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;pa:{if((a|0)<=0){break pa}x=a&3;qa:{if(a>>>0<4){a=0;break qa}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;h=m;m=i+E|0;f=f+p|0;h=(f>>>0<p>>>0?m+1|0:m)+h|0;m=f;f=g+f|0;q=(m>>>0>f>>>0?h+1|0:h)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?q+1|0:q)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break pa}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0<e>>>0?j+1|0:j;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ra:{if(a>>>0<g>>>0){Wa(l,g-a|0);break ra}if(a>>>0<=g>>>0){break ra}J[l+4>>2]=e+(g<<3)}k=0;sa:{ta:{ua:{va:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;wa:{if(o<4294967296&o>=0){e=~~o>>>0;break wa}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break va}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;xa:{if(!g){break xa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break xa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ya:{za:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break za}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}ec(s,p,t+24|0,e,0,0);break ya}ec(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ua}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Aa:{Ba:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Ca:{if(R(w)<2147483648){i=~~w;break Ca}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Ba}k=4096;break Aa}if((d|0)!=(e|0)){break Aa}a=1;break ua}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break ua}a=0;if(k>>>0<4097){break ua}while(1)continue}if((d|0)<0){break sa}break ta}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break sa}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break sa}a=0;o=0;Da:{if((d|0)<0){break Da}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Da}a=a<<3;d=J[a+f>>2];if(!d){break Da}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Ea:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Ea}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;q=e<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?q+1|0:q;d=a+((m&7)<<29|d>>>3)|0;g=m>>>3|0;g=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break na}h=1;break v;case 3:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Fa:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ga:{if((b|0)<=0){break Ga}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];q=J[c+4>>2];d=d+1|0;q=d?q:q+1|0;J[c>>2]=d;J[c+4>>2]=q;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ga}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Ha:{if((a|0)<=0){break Ha}A=a&3;Ia:{if(a>>>0<4){a=0;break Ia}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;g=i+D|0;f=f+x|0;q=(f>>>0<x>>>0?g+1|0:g)+m|0;g=f;f=f+p|0;g=(g>>>0>f>>>0?q+1|0:q)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Ha}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0<e>>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Ja:{if(a>>>0<g>>>0){Wa(l,g-a|0);break Ja}if(a>>>0<=g>>>0){break Ja}J[l+4>>2]=e+(g<<3)}k=0;Ka:{La:{Ma:{Na:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;Oa:{if(o<4294967296&o>=0){e=~~o>>>0;break Oa}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Na}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Pa:{if(!g){break Pa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Pa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Qa:{Ra:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ra}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}dc(s,p,t+24|0,e,0,0);break Qa}dc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ma}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Sa:{Ta:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Ua:{if(R(w)<2147483648){i=~~w;break Ua}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Ta}k=4096;break Sa}if((d|0)!=(e|0)){break Sa}a=1;break Ma}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Ma}a=0;if(k>>>0<4097){break Ma}while(1)continue}if((d|0)<0){break Ka}break La}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Ka}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Ka}a=0;o=0;Va:{if((d|0)<0){break Va}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Va}a=a<<3;d=J[a+f>>2];if(!d){break Va}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Wa:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Wa}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;g=d>>>0<39?g+1|0:g;d=a+((g&7)<<29|d>>>3)|0;h=g>>>3|0;j=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Fa}h=1;break v;case 4:c=0;k=0;n=0;r=0;i=ba+-64|0;ba=i;J[i+56>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;Xa:{d=p+1|0;if(d){if(d>>>0>=536870912){break a}d=d<<3;c=oa(d);J[i+48>>2]=c;k=pa(c,0,(p<<3)+8|0)+d|0}Ya:{if((b|0)<=0){break Ya}p=0;if(b>>>0>=4){h=b&-4;while(1){d=p<<2;f=(J[d+a>>2]<<3)+c|0;j=J[f>>2];g=J[f+4>>2];j=j+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|4)+a>>2]<<3)+c|0;j=J[f>>2];g=J[f+4>>2];j=j+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|8)+a>>2]<<3)+c|0;g=J[f>>2];j=J[f+4>>2];g=g+1|0;j=g?j:j+1|0;J[f>>2]=g;J[f+4>>2]=j;d=(J[(d|12)+a>>2]<<3)+c|0;f=J[d>>2];g=J[d+4>>2];f=f+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;p=p+4|0;n=n+4|0;if((h|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ya}while(1){d=(J[(p<<2)+a>>2]<<3)+c|0;h=J[d>>2];g=J[d+4>>2];h=h+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;p=p+1|0;r=r+1|0;if((f|0)!=(r|0)){continue}break}}J[i+8>>2]=0;J[i+12>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i>>2]=0;J[i+4>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;Jg(i,c,k-c>>3,e);d=J[i+16>>2];f=J[i+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[i+40>>2]=c;J[i+44>>2]=0;g=f<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=c+((j&7)<<29|d>>>3)|0;g=j>>>3|0;q=c>>>0>d>>>0?g+1|0:g;c=d+8|0;Ia(e,c);c=J[e>>2];J[i+28>>2]=0;J[i+32>>2]=16384;J[i+24>>2]=c+J[i+40>>2];if((b|0)>0){p=16384;while(1){c=b-1|0;f=J[i>>2]+(J[(c<<2)+a>>2]<<3)|0;d=J[f>>2];g=d<<10;if(g>>>0<=p>>>0){while(1){h=J[i+28>>2];J[i+28>>2]=h+1;H[h+J[i+24>>2]|0]=p;p=J[i+32>>2]>>>8|0;J[i+32>>2]=p;if(g>>>0<=p>>>0){continue}break}}g=J[f+4>>2];f=(p>>>0)/(d>>>0)|0;p=g+((f<<12)+(p-P(d,f)|0)|0)|0;J[i+32>>2]=p;d=(b|0)>1;b=c;if(d){continue}break}}yb(i,e);a=J[i>>2];if(a){J[i+4>>2]=a;na(a)}a=J[i+48>>2];if(a){na(a)}ba=i- -64|0;break Xa}h=1;break v;case 5:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Za:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}_a:{if((b|0)<=0){break _a}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break _a}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;$a:{if((a|0)<=0){break $a}A=a&3;ab:{if(a>>>0<4){a=0;break ab}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;q=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break $a}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0<e>>>0?j+1|0:j;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;bb:{if(a>>>0<g>>>0){Wa(l,g-a|0);break bb}if(a>>>0<=g>>>0){break bb}J[l+4>>2]=e+(g<<3)}k=0;cb:{db:{eb:{fb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;gb:{if(o<4294967296&o>=0){e=~~o>>>0;break gb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break fb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;hb:{if(!g){break hb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break hb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ib:{jb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break jb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}cc(s,p,t+24|0,e,0,0);break ib}cc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break eb}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){kb:{lb:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));mb:{if(R(w)<2147483648){i=~~w;break mb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break lb}k=4096;break kb}if((d|0)!=(e|0)){break kb}a=1;break eb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break eb}a=0;if(k>>>0<4097){break eb}while(1)continue}if((d|0)<0){break cb}break db}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break cb}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break cb}a=0;o=0;nb:{if((d|0)<0){break nb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break nb}a=a<<3;d=J[a+f>>2];if(!d){break nb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);ob:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break ob}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;h=q>>>3|0;m=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Za}h=1;break v;case 6:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;pb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}qb:{if((b|0)<=0){break qb}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break qb}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;rb:{if((a|0)<=0){break rb}x=a&3;sb:{if(a>>>0<4){a=0;break sb}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;h=g;g=m;m=i+E|0;f=f+p|0;g=(f>>>0<p>>>0?m+1|0:m)+g|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?h+1|0:h)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break rb}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0<e>>>0?q+1|0:q;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;tb:{if(a>>>0<g>>>0){Wa(l,g-a|0);break tb}if(a>>>0<=g>>>0){break tb}J[l+4>>2]=e+(g<<3)}k=0;ub:{vb:{wb:{xb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;yb:{if(o<4294967296&o>=0){e=~~o>>>0;break yb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break xb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;zb:{if(!g){break zb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break zb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Ab:{Bb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Bb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}bc(s,p,t+24|0,e,0,0);break Ab}bc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break wb}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Cb:{Db:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Eb:{if(R(w)<2147483648){i=~~w;break Eb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Db}k=4096;break Cb}if((d|0)!=(e|0)){break Cb}a=1;break wb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break wb}a=0;if(k>>>0<4097){break wb}while(1)continue}if((d|0)<0){break ub}break vb}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break ub}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break ub}a=0;o=0;Fb:{if((d|0)<0){break Fb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Fb}a=a<<3;d=J[a+f>>2];if(!d){break Fb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Gb:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Gb}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;h=e<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?h+1|0:h;g=m>>>3|0;d=a+((m&7)<<29|d>>>3)|0;j=d>>>0<a>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break pb}h=1;break v;case 7:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Hb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ib:{if((b|0)<=0){break Ib}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|4)>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];j=J[d+4>>2];h=h+1|0;j=h?j:j+1|0;J[d>>2]=h;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];h=J[c+4>>2];d=d+1|0;h=d?h:h+1|0;J[c>>2]=d;J[c+4>>2]=h;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ib}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Jb:{if((a|0)<=0){break Jb}A=a&3;Kb:{if(a>>>0<4){a=0;break Kb}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=h;j=i+D|0;f=f+x|0;h=(f>>>0<x>>>0?j+1|0:j)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?h+1|0:h)+q|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+v|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Jb}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0<e>>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Lb:{if(a>>>0<g>>>0){Wa(l,g-a|0);break Lb}if(a>>>0<=g>>>0){break Lb}J[l+4>>2]=e+(g<<3)}k=0;Mb:{Nb:{Ob:{Pb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;Qb:{if(o<4294967296&o>=0){e=~~o>>>0;break Qb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Pb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Rb:{if(!g){break Rb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Rb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Sb:{Tb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Tb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}ac(s,p,t+24|0,e,0,0);break Sb}ac(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ob}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Ub:{Vb:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Wb:{if(R(w)<2147483648){i=~~w;break Wb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Vb}k=4096;break Ub}if((d|0)!=(e|0)){break Ub}a=1;break Ob}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Ob}a=0;if(k>>>0<4097){break Ob}while(1)continue}if((d|0)<0){break Mb}break Nb}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Mb}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Mb}a=0;o=0;Xb:{if((d|0)<0){break Xb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Xb}a=a<<3;d=J[a+f>>2];if(!d){break Xb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Yb:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Yb}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;g=j>>>3|0;q=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Hb}h=1;break v;case 8:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Zb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}_b:{if((b|0)<=0){break _b}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break _b}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;$b:{if((a|0)<=0){break $b}A=a&3;ac:{if(a>>>0<4){a=0;break ac}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;v=g;q=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=f+v|0;g=(m>>>0>f>>>0?g+1|0:g)+u|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break $b}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;j=g+i|0;f=d+f|0;i=f>>>0<d>>>0?j+1|0:j;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;bc:{if(a>>>0<g>>>0){Wa(k,g-a|0);break bc}if(a>>>0<=g>>>0){break bc}J[k+4>>2]=d+(g<<3)}n=0;cc:{dc:{ec:{fc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*8192+.5;gc:{if(o<4294967296&o>=0){d=~~o>>>0;break gc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==8192){break fc}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;hc:{if(!g){break hc}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break hc}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;ic:{jc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break jc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}$b(s,p,t+24|0,d,0,0);break ic}$b(s,p,t+24|0,d,f,a);na(f)}if((n|0)<8192){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)- -8192;a=0;break ec}if((c|0)>0){h=J[k>>2];p=n+-8192|0;while(1){o=8192/+(n|0);d=c;while(1){kc:{lc:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));mc:{if(R(w)<2147483648){i=~~w;break mc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=8192){break lc}n=8192;break kc}if((c|0)!=(d|0)){break kc}a=1;break ec}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break ec}a=0;if(n>>>0<8193){break ec}while(1)continue}if((c|0)<0){break cc}break dc}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break cc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=8192){break cc}a=0;o=0;nc:{if((c|0)<0){break nc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.0001220703125)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.0001220703125)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break nc}a=a<<3;c=J[a+f>>2];if(!c){break nc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*.0001220703125)+o}o=W(-o);oc:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break oc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;h=q>>>3|0;m=a>>>0>c>>>0?h+1|0:h;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=32768;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=32768;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<13)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-32768|0;pc:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break pc}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+49152>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break pc}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;f=b+8355840|0;H[d+2|0]=f>>>16;H[d+1|0]=f>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break pc}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1073774592|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=f>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break pc}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break Zb}h=1;break v;case 9:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;qc:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}rc:{if((b|0)<=0){break rc}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=J[g>>2];m=J[g+4>>2];h=h+1|0;m=h?m:m+1|0;J[g>>2]=h;J[g+4>>2]=m;g=(J[l+(c|4)>>2]<<3)+r|0;m=J[g>>2];h=J[g+4>>2];m=m+1|0;h=m?h:h+1|0;J[g>>2]=m;J[g+4>>2]=h;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break rc}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;v=ba-32|0;ba=v;a=n-r>>3;sc:{if((a|0)<=0){break sc}x=a&3;tc:{if(a>>>0<4){a=0;break tc}A=a&-4;a=0;while(1){g=(a<<3)+r|0;t=J[g>>2];m=J[g+4>>2];E=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;D=(u<<3)+r|0;h=J[D>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|t?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[D+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;q=i+E|0;f=f+t|0;m=(f>>>0<t>>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+u|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+n|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((A|0)!=(d|0)){continue}break}}if(!x){break sc}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;h=g+i|0;f=d+f|0;i=f>>>0<d>>>0?h+1|0:h;p=p+1|0;if((x|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;uc:{if(a>>>0<g>>>0){Wa(k,g-a|0);break uc}if(a>>>0<=g>>>0){break uc}J[k+4>>2]=d+(g<<3)}n=0;vc:{wc:{xc:{yc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*32768+.5;zc:{if(o<4294967296&o>=0){d=~~o>>>0;break zc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==32768){break yc}}J[v+16>>2]=0;J[v+8>>2]=0;J[v+12>>2]=0;p=0;Ac:{if(!g){break Ac}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[v+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Ac}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[v+24>>2]=k;a=p-s|0;d=a>>2;Bc:{Cc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Cc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}_b(s,p,v+24|0,d,0,0);break Bc}_b(s,p,v+24|0,d,f,a);na(f)}if((n|0)<32768){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+32768;a=0;break xc}if((c|0)>0){h=J[k>>2];p=n-32768|0;while(1){o=32768/+(n|0);d=c;while(1){Dc:{Ec:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Fc:{if(R(w)<2147483648){i=~~w;break Fc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=32768){break Ec}n=32768;break Dc}if((c|0)!=(d|0)){break Dc}a=1;break xc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break xc}a=0;if(n>>>0<32769){break xc}while(1)continue}if((c|0)<0){break vc}break wc}d=J[v+8>>2];if(d){na(d)}if((c|0)<0|a){break vc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=32768){break vc}a=0;o=0;Gc:{if((c|0)<0){break Gc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*30517578125e-15)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*30517578125e-15)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Gc}a=a<<3;c=J[a+f>>2];if(!c){break Gc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*30517578125e-15)+o}o=W(-o);Hc:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Hc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=v+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;g=q>>>3|0;j=a>>>0>c>>>0?g+1|0:g;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=131072;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=131072;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<15)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-131072|0;Ic:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break Ic}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break Ic}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+8257536>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break Ic}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1073872896|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break Ic}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break qc}h=1;break v;case 10:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Jc:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}Kc:{if((b|0)<=0){break Kc}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|4)>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break Kc}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;Lc:{if((a|0)<=0){break Lc}A=a&3;Mc:{if(a>>>0<4){a=0;break Mc}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=j;v=q;q=i+D|0;f=f+x|0;j=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?j+1|0:j)+v|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+u|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break Lc}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;g=g+i|0;f=d+f|0;i=f>>>0<d>>>0?g+1|0:g;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;Nc:{if(a>>>0<g>>>0){Wa(k,g-a|0);break Nc}if(a>>>0<=g>>>0){break Nc}J[k+4>>2]=d+(g<<3)}n=0;Oc:{Pc:{Qc:{Rc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*65536+.5;Sc:{if(o<4294967296&o>=0){d=~~o>>>0;break Sc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==65536){break Rc}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Tc:{if(!g){break Tc}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Tc}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;Uc:{Vc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Vc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Zb(s,p,t+24|0,d,0,0);break Uc}Zb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<65536){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+65536;a=0;break Qc}if((c|0)>0){h=J[k>>2];p=n-65536|0;while(1){o=65536/+(n|0);d=c;while(1){Wc:{Xc:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Yc:{if(R(w)<2147483648){i=~~w;break Yc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=65536){break Xc}n=65536;break Wc}if((c|0)!=(d|0)){break Wc}a=1;break Qc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break Qc}a=0;if(n>>>0<65537){break Qc}while(1)continue}if((c|0)<0){break Oc}break Pc}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break Oc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=65536){break Oc}a=0;o=0;Zc:{if((c|0)<0){break Zc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*152587890625e-16)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*152587890625e-16)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Zc}a=a<<3;c=J[a+f>>2];if(!c){break Zc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*152587890625e-16)+o}o=W(-o);_c:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break _c}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;m=q>>>3|0;h=a>>>0>c>>>0?m+1|0:m;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=262144;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=262144;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<16)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-262144|0;$c:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break $c}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break $c}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+8126464>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break $c}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1074003968|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break $c}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break Jc}h=1;break v;case 11:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;ad:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}bd:{if((b|0)<=0){break bd}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;m=J[g>>2];h=J[g+4>>2];m=m+1|0;h=m?h:h+1|0;J[g>>2]=m;J[g+4>>2]=h;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];m=J[g+4>>2];h=h+1|0;m=h?m:m+1|0;J[g>>2]=h;J[g+4>>2]=m;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break bd}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;cd:{if((a|0)<=0){break cd}A=a&3;dd:{if(a>>>0<4){a=0;break dd}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=j;j=h;v=q;q=i+D|0;f=f+x|0;h=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?h+1|0:h)+v|0;m=f;f=f+j|0;j=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+u|0;i=g>>>0>f>>>0?j+1|0:j;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break cd}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;m=g+i|0;f=d+f|0;i=f>>>0<d>>>0?m+1|0:m;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;ed:{if(a>>>0<g>>>0){Wa(k,g-a|0);break ed}if(a>>>0<=g>>>0){break ed}J[k+4>>2]=d+(g<<3)}n=0;fd:{gd:{hd:{id:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*262144+.5;jd:{if(o<4294967296&o>=0){d=~~o>>>0;break jd}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==262144){break id}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;kd:{if(!g){break kd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break kd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;ld:{md:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break md}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Yb(s,p,t+24|0,d,0,0);break ld}Yb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<262144){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+262144;a=0;break hd}if((c|0)>0){h=J[k>>2];p=n-262144|0;while(1){o=262144/+(n|0);d=c;while(1){nd:{od:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));pd:{if(R(w)<2147483648){i=~~w;break pd}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=262144){break od}n=262144;break nd}if((c|0)!=(d|0)){break nd}a=1;break hd}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break hd}a=0;if(n>>>0<262145){break hd}while(1)continue}if((c|0)<0){break fd}break gd}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break fd}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=262144){break fd}a=0;o=0;qd:{if((c|0)<0){break qd}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*3814697265625e-18)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*3814697265625e-18)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break qd}a=a<<3;c=J[a+f>>2];if(!c){break qd}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*3814697265625e-18)+o}o=W(-o);rd:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break rd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;j=q>>>3|0;g=a>>>0>c>>>0?j+1|0:j;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=1048576;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=1048576;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<18)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b+-1048576|0;sd:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break sd}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break sd}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+7340032>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break sd}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1074790400|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break sd}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break ad}h=1;break v;case 12:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;td:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}ud:{if((b|0)<=0){break ud}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break ud}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;vd:{if((a|0)<=0){break vd}A=a&3;wd:{if(a>>>0<4){a=0;break wd}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;v=g;q=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=f+v|0;g=(m>>>0>f>>>0?g+1|0:g)+u|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break vd}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;j=g+i|0;f=d+f|0;i=f>>>0<d>>>0?j+1|0:j;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;xd:{if(a>>>0<g>>>0){Wa(k,g-a|0);break xd}if(a>>>0<=g>>>0){break xd}J[k+4>>2]=d+(g<<3)}n=0;yd:{zd:{Ad:{Bd:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*524288+.5;Cd:{if(o<4294967296&o>=0){d=~~o>>>0;break Cd}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==524288){break Bd}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Dd:{if(!g){break Dd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Dd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;Ed:{Fd:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Fd}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Xb(s,p,t+24|0,d,0,0);break Ed}Xb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<524288){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+524288;a=0;break Ad}if((c|0)>0){h=J[k>>2];p=n-524288|0;while(1){o=524288/+(n|0);d=c;while(1){Gd:{Hd:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Id:{if(R(w)<2147483648){i=~~w;break Id}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=524288){break Hd}n=524288;break Gd}if((c|0)!=(d|0)){break Gd}a=1;break Ad}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break Ad}a=0;if(n>>>0<524289){break Ad}while(1)continue}if((c|0)<0){break yd}break zd}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break yd}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=524288){break yd}a=0;o=0;Jd:{if((c|0)<0){break Jd}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*19073486328125e-19)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*19073486328125e-19)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Jd}a=a<<3;c=J[a+f>>2];if(!c){break Jd}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*19073486328125e-19)+o}o=W(-o);Kd:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Kd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;h=q>>>3|0;m=a>>>0>c>>>0?h+1|0:h;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=2097152;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=2097152;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<19)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-2097152|0;Ld:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break Ld}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break Ld}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+6291456>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break Ld}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1075838976|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break Ld}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break td}h=1;break v;case 13:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Md:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Nd:{if((b|0)<=0){break Nd}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];q=J[d+4>>2];h=h+1|0;q=h?q:q+1|0;J[d>>2]=h;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];m=J[c+4>>2];d=d+1|0;m=d?m:m+1|0;J[c>>2]=d;J[c+4>>2]=m;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Nd}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Od:{if((a|0)<=0){break Od}x=a&3;Pd:{if(a>>>0<4){a=0;break Pd}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;q=i+E|0;f=f+p|0;m=(f>>>0<p>>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+v|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break Od}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;h=g+i|0;f=e+f|0;i=f>>>0<e>>>0?h+1|0:h;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Qd:{if(a>>>0<g>>>0){Wa(l,g-a|0);break Qd}if(a>>>0<=g>>>0){break Qd}J[l+4>>2]=e+(g<<3)}k=0;Rd:{Sd:{Td:{Ud:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;Vd:{if(o<4294967296&o>=0){e=~~o>>>0;break Vd}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ud}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Wd:{if(!g){break Wd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Wd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Xd:{Yd:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Yd}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Wb(s,p,t+24|0,e,0,0);break Xd}Wb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Td}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){Zd:{_d:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));$d:{if(R(w)<2147483648){i=~~w;break $d}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break _d}k=1048576;break Zd}if((d|0)!=(e|0)){break Zd}a=1;break Td}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Td}a=0;if(k>>>0<1048577){break Td}while(1)continue}if((d|0)<0){break Rd}break Sd}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Rd}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Rd}a=0;o=0;ae:{if((d|0)<0){break ae}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break ae}a=a<<3;d=J[a+f>>2];if(!d){break ae}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);be:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break be}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;g=q>>>3|0;j=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Md}h=1;break v;case 14:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;ce:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}de:{if((b|0)<=0){break de}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break de}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;ee:{if((a|0)<=0){break ee}A=a&3;fe:{if(a>>>0<4){a=0;break fe}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=g;j=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?j+1|0:j)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+q|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break ee}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0<e>>>0?q+1|0:q;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ge:{if(a>>>0<g>>>0){Wa(l,g-a|0);break ge}if(a>>>0<=g>>>0){break ge}J[l+4>>2]=e+(g<<3)}k=0;he:{ie:{je:{ke:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;le:{if(o<4294967296&o>=0){e=~~o>>>0;break le}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break ke}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;me:{if(!g){break me}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break me}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ne:{oe:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break oe}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Vb(s,p,t+24|0,e,0,0);break ne}Vb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break je}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){pe:{qe:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));re:{if(R(w)<2147483648){i=~~w;break re}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break qe}k=1048576;break pe}if((d|0)!=(e|0)){break pe}a=1;break je}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break je}a=0;if(k>>>0<1048577){break je}while(1)continue}if((d|0)<0){break he}break ie}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break he}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break he}a=0;o=0;se:{if((d|0)<0){break se}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break se}a=a<<3;d=J[a+f>>2];if(!d){break se}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);te:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break te}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;m=j>>>3|0;h=a>>>0>d>>>0?m+1|0:m;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break ce}h=1;break v;case 15:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;ue:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}ve:{if((b|0)<=0){break ve}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];g=J[d+4>>2];h=h+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];h=J[d+4>>2];g=g+1|0;h=g?h:h+1|0;J[d>>2]=g;J[d+4>>2]=h;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((m|0)!=(r|0)){continue}break}}d=b&3;if(!d){break ve}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;we:{if((a|0)<=0){break we}A=a&3;xe:{if(a>>>0<4){a=0;break xe}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;p=g;h=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?h+1|0:h)+m|0;m=f;f=f+p|0;m=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?m+1|0:m)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break we}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0<e>>>0?j+1|0:j;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ye:{if(a>>>0<g>>>0){Wa(l,g-a|0);break ye}if(a>>>0<=g>>>0){break ye}J[l+4>>2]=e+(g<<3)}k=0;ze:{Ae:{Be:{Ce:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;De:{if(o<4294967296&o>=0){e=~~o>>>0;break De}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ce}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Ee:{if(!g){break Ee}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Ee}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Fe:{Ge:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ge}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Ub(s,p,t+24|0,e,0,0);break Fe}Ub(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Be}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){He:{Ie:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Je:{if(R(w)<2147483648){i=~~w;break Je}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break Ie}k=1048576;break He}if((d|0)!=(e|0)){break He}a=1;break Be}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Be}a=0;if(k>>>0<1048577){break Be}while(1)continue}if((d|0)<0){break ze}break Ae}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break ze}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break ze}a=0;o=0;Ke:{if((d|0)<0){break Ke}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Ke}a=a<<3;d=J[a+f>>2];if(!d){break Ke}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);Le:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Le}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;m=e<<1|d>>>31;d=(d<<1)+39|0;h=m;h=d>>>0<39?h+1|0:h;g=h>>>3|0;d=a+((h&7)<<29|d>>>3)|0;q=d>>>0<a>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break ue}h=1;break v;case 16:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Me:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ne:{if((b|0)<=0){break Ne}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];q=J[d+4>>2];h=h+1|0;q=h?q:q+1|0;J[d>>2]=h;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];m=J[c+4>>2];d=d+1|0;m=d?m:m+1|0;J[c>>2]=d;J[c+4>>2]=m;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ne}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Oe:{if((a|0)<=0){break Oe}x=a&3;Pe:{if(a>>>0<4){a=0;break Pe}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;q=i+E|0;f=f+p|0;m=(f>>>0<p>>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+v|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break Oe}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;h=g+i|0;f=e+f|0;i=f>>>0<e>>>0?h+1|0:h;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Qe:{if(a>>>0<g>>>0){Wa(l,g-a|0);break Qe}if(a>>>0<=g>>>0){break Qe}J[l+4>>2]=e+(g<<3)}k=0;Re:{Se:{Te:{Ue:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;Ve:{if(o<4294967296&o>=0){e=~~o>>>0;break Ve}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ue}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;We:{if(!g){break We}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break We}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Xe:{Ye:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ye}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Tb(s,p,t+24|0,e,0,0);break Xe}Tb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Te}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){Ze:{_e:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));$e:{if(R(w)<2147483648){i=~~w;break $e}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break _e}k=1048576;break Ze}if((d|0)!=(e|0)){break Ze}a=1;break Te}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Te}a=0;if(k>>>0<1048577){break Te}while(1)continue}if((d|0)<0){break Re}break Se}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Re}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Re}a=0;o=0;af:{if((d|0)<0){break af}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break af}a=a<<3;d=J[a+f>>2];if(!d){break af}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);bf:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break bf}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;g=q>>>3|0;j=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Me}h=1;break v;case 17:break E;default:break v}}u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;cf:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}df:{if((b|0)<=0){break df}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break df}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;ef:{if((a|0)<=0){break ef}A=a&3;ff:{if(a>>>0<4){a=0;break ff}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=g;j=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?j+1|0:j)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+q|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break ef}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0<e>>>0?q+1|0:q;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;gf:{if(a>>>0<g>>>0){Wa(l,g-a|0);break gf}if(a>>>0<=g>>>0){break gf}J[l+4>>2]=e+(g<<3)}k=0;hf:{jf:{kf:{lf:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;mf:{if(o<4294967296&o>=0){e=~~o>>>0;break mf}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break lf}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;nf:{if(!g){break nf}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break nf}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;of:{pf:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break pf}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Sb(s,p,t+24|0,e,0,0);break of}Sb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break kf}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){qf:{rf:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));sf:{if(R(w)<2147483648){i=~~w;break sf}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break rf}k=1048576;break qf}if((d|0)!=(e|0)){break qf}a=1;break kf}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break kf}a=0;if(k>>>0<1048577){break kf}while(1)continue}if((d|0)<0){break hf}break jf}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break hf}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break hf}a=0;o=0;tf:{if((d|0)<0){break tf}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break tf}a=a<<3;d=J[a+f>>2];if(!d){break tf}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);uf:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break uf}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;m=j>>>3|0;h=a>>>0>d>>>0?m+1|0:m;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break cf}h=1}ba=G+32|0}if(!F){break b}J[C+36>>2]=F;na(F)}ba=C+48|0;return h}qa();B()}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=Q(0),x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,T=0,U=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;d=ba-1680|0;ba=d;c=10-cb(J[J[a+28>>2]+48>>2])|0;c=(c|0)>=6?6:c;f=J[a+72>>2];H[d+1679|0]=(c&255)==6?(f|0)>15?5:c:c;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+1679|0,d+1680|0);f=J[a+72>>2]}y=J[J[J[a+28>>2]+4>>2]+80>>2];J[d+1668>>2]=0;J[d+1660>>2]=0;J[d+1664>>2]=0;J[d+1648>>2]=y;J[d+1652>>2]=f;J[d+1656>>2]=f<<2;a:{b:{c:{d:{g=P(f,y);if(g){if(g>>>0>=1073741824){break d}c=g<<2;h=oa(c);J[d+1660>>2]=h;k=c+h|0;J[d+1668>>2]=k;pa(h,0,c);J[d+1664>>2]=k}J[d+1672>>2]=h;k=J[a+4>>2];if((k|0)!=J[a+8>>2]){while(1){e=J[J[J[J[a+28>>2]+4>>2]+8>>2]+(J[(i<<2)+k>>2]<<2)>>2];c=J[e+28>>2];if(c-1>>>0>=6){if((c|0)!=9){break a}e=J[J[a+60>>2]+(p<<2)>>2];if(!e){break a}p=p+1|0;c=J[e+28>>2]}e:{f:{g:{switch(c-1|0){case 5:if(!y){break e}k=0;while(1){f=(J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],k)<<2)|0;h=J[J[e>>2]>>2];g=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],K[e+84|0]?k:J[J[e+68>>2]+(k<<2)>>2],0);j=c;c=c+g|0;ua(f,c+h|0,K[e+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break};break e;case 0:case 2:case 4:c=K[e+24|0];h:{if(!c){g=0;h=0;break h}h=0;c=c<<2;g=oa(c);pa(g,0,c);c=K[e+24|0];if(!c){break h}c=c<<2;h=oa(c);pa(h,0,c)}if(y){f=0;while(1){$c(e,K[e+84|0]?f:J[J[e+68>>2]+(f<<2)>>2],H[e+24|0],g);j=K[e+24|0];i:{if(!j){break i}l=J[a+48>>2];k=0;if((j|0)!=1){n=j&254;c=0;while(1){r=k<<2;J[r+h>>2]=J[g+r>>2]-J[l+(k+q<<2)>>2];r=k|1;v=r<<2;J[v+h>>2]=J[g+v>>2]-J[l+(q+r<<2)>>2];k=k+2|0;c=c+2|0;if((n|0)!=(c|0)){continue}break}}if(!(j&1)){break i}c=k<<2;J[c+h>>2]=J[c+g>>2]-J[l+(k+q<<2)>>2]}ua((J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],f)<<2)|0,h,j<<2);f=f+1|0;if((y|0)!=(f|0)){continue}break}}c=K[e+24|0];if(h){na(h)}q=c+q|0;if(g){break f}break e;default:break g}}c=K[e+24|0];j:{if(!c){g=0;break j}c=c<<2;g=oa(c);pa(g,0,c)}if(y){k=0;while(1){c=K[e+84|0]?k:J[J[e+68>>2]+(k<<2)>>2];j=K[e+24|0];l=0;k:{if(!g){break k}l:{m:{switch(J[e+28>>2]-1|0){case 0:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=H[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 1:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=K[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 2:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=I[f>>1];f=f+2|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 3:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=L[f>>1];f=f+2|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 4:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=J[f>>2];f=f+4|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 5:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=J[f>>2];f=f+4|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 6:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;n=J[h+4>>2];while(1){if(f>>>0>=n>>>0){break k}c=J[f>>2];if(J[f+4>>2]){break k}J[(l<<2)+g>>2]=c;f=f+8|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 7:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;n=J[h+4>>2];while(1){if(f>>>0>=n>>>0){break k}c=J[f>>2];if(J[f+4>>2]){break k}J[(l<<2)+g>>2]=c;f=f+8|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 8:n:{o:{h=K[e+24|0];if(!(h>>>0<j>>>0?h:j)){break o}f=J[e>>2];h=J[f>>2];l=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+l|0;l=c+h|0;n=J[f+4>>2];f=n-h|0;if(!K[e+32|0]){if((c|0)>=(f|0)){break n}f=0;while(1){w=N[l>>2];if(w>=Q(4294967296)|w<Q(0)|(Q(R(w))==Q(Infinity)|w!=w)){break n}m=(f<<2)+g|0;if(w<Q(4294967296)&w>=Q(0)){c=~~w>>>0}else{c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0<j>>>0?h:j)>>>0){break o}l=l+4|0;if(n>>>0>l>>>0){continue}break}break n}if((c|0)>=(f|0)){break n}f=0;while(1){w=N[l>>2];if(w>=Q(4294967296)|w<Q(0)|(Q(R(w))==Q(Infinity)|w!=w)){break n}if(w>Q(1)){break n}m=(f<<2)+g|0;t=V(+w*4294967295+.5);p:{if(t<4294967296&t>=0){c=~~t>>>0;break p}c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0<j>>>0?h:j)>>>0){break o}l=l+4|0;if(n>>>0>l>>>0){continue}break}break n}if(h>>>0>=j>>>0){break n}pa((h<<2)+g|0,0,j-h<<2)}break k;case 9:q:{r:{h=K[e+24|0];if(!(h>>>0<j>>>0?h:j)){break r}f=J[e>>2];h=J[f>>2];l=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+l|0;l=c+h|0;n=J[f+4>>2];f=n-h|0;if(!K[e+32|0]){if((c|0)>=(f|0)){break q}f=0;while(1){t=O[l>>3];if(t>=4294967295|t<0|(R(t)==Infinity|t!=t)){break q}m=(f<<2)+g|0;if(t<4294967296&t>=0){c=~~t>>>0}else{c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0<j>>>0?h:j)>>>0){break r}l=l+8|0;if(n>>>0>l>>>0){continue}break}break q}if((c|0)>=(f|0)){break q}f=0;while(1){t=O[l>>3];if(t>=4294967295|t<0|(R(t)==Infinity|t!=t)){break q}if(t>1){break q}m=(f<<2)+g|0;t=V(t*4294967295+.5);s:{if(t<4294967296&t>=0){c=~~t>>>0;break s}c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0<j>>>0?h:j)>>>0){break r}l=l+8|0;if(n>>>0>l>>>0){continue}break}break q}if(h>>>0>=j>>>0){break q}pa((h<<2)+g|0,0,j-h<<2)}break k;case 10:break m;default:break k}}h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=K[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}if(h>>>0>=j>>>0){break k}pa((h<<2)+g|0,0,j-h<<2);break k}if(h>>>0>=j>>>0){break k}pa((h<<2)+g|0,0,j-h<<2)}ua((J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],k)<<2)|0,g,K[e+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break}}if(!g){break e}}na(g)}o=K[e+24|0]+o|0;i=i+1|0;k=J[a+4>>2];if(i>>>0<J[a+8>>2]-k>>2>>>0){continue}break}f=J[a+72>>2];g=P(y,f);h=J[d+1672>>2]}k=0;if((g|0)<=0){break b}c=g&1;if((g|0)==1){g=0;break c}e=g&-2;g=0;a=0;while(1){j=g<<2;l=J[j+h>>2];if(l){l=S(l);k=(l^31)<(k|0)?k:32-l|0}j=J[(j|4)+h>>2];if(j){j=S(j);k=(j^31)<(k|0)?k:32-j|0}g=g+2|0;a=a+2|0;if((e|0)!=(a|0)){continue}break}break c}qa();B()}if(!c){break b}a=J[(g<<2)+h>>2];if(!a){break b}a=S(a);k=(a^31)<(k|0)?k:32-a|0}t:{u:{switch(K[d+1679|0]){case 6:p=Zc(d+456|0,f);a=J[d+1652>>2];J[d+448>>2]=a;J[d+432>>2]=a;J[d+32>>2]=a;J[d+16>>2]=a;J[d+440>>2]=0;J[d+424>>2]=J[d+1648>>2];a=d+1648|0;J[d+444>>2]=a;c=J[d+444>>2];J[d+24>>2]=J[d+440>>2];J[d+28>>2]=c;J[d+428>>2]=a;J[d+420>>2]=k;a=J[d+428>>2];J[d+8>>2]=J[d+424>>2];J[d+12>>2]=a;n=ba-32|0;ba=n;J[p>>2]=J[d+420>>2];a=J[d+8>>2]-J[d+24>>2]|0;J[p+4>>2]=a;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){a=p+4|0;sa(b,J[b+4>>2],p,a);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],a,p+8|0)}a=J[a>>2]}if(a){W=p+12|0;te(W);X=p+1068|0;a=X;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Y=p+1088|0;a=Y;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Z=p+1108|0;a=Z;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];J[n+24>>2]=J[d+32>>2];a=J[d+28>>2];J[n+16>>2]=J[d+24>>2];J[n+20>>2]=a;J[n+8>>2]=J[d+16>>2];a=J[d+12>>2];J[n>>2]=J[d+8>>2];J[n+4>>2]=a;c=0;g=0;i=ba+-64|0;ba=i;e=J[p+8>>2];J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;v:{w:{if(e){if(e>>>0>=1073741824){break w}a=e<<2;c=oa(a);J[i+40>>2]=c;g=a+c|0;J[i+48>>2]=g;pa(c,0,a);J[i+44>>2]=g}a=J[p+1164>>2];k=J[a>>2];if(k){J[a+4>>2]=k;na(k);e=J[p+8>>2];g=J[i+44>>2];c=J[i+40>>2]}J[a+4>>2]=g;J[a>>2]=c;J[a+8>>2]=J[i+48>>2];c=0;J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;a=0;x:{if(e){if(e>>>0>=1073741824){break x}k=e<<2;a=oa(k);J[i+40>>2]=a;c=a+k|0;J[i+48>>2]=c;pa(a,0,k);J[i+44>>2]=c}k=J[p+1176>>2];f=J[k>>2];if(f){J[k+4>>2]=f;na(f);c=J[i+44>>2];a=J[i+40>>2]}J[k+4>>2]=c;J[k>>2]=a;J[k+8>>2]=J[i+48>>2];h=J[n+20>>2];l=J[n+24>>2];f=J[n+4>>2];y=J[n+8>>2];c=J[n>>2];k=J[n+16>>2];J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;fb(i+40|0);a=J[i+56>>2]+J[i+60>>2]|0;e=(a>>>0)/113|0;a=J[J[i+44>>2]+(e<<2)>>2]+P(a-P(e,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=c-k;J[a+24>>2]=0;J[a+16>>2]=f;J[a+20>>2]=y;J[a+12>>2]=c;J[a+4>>2]=h;J[a+8>>2]=l;J[a>>2]=k;e=J[i+60>>2]+1|0;J[i+60>>2]=e;if(e){a=l;aa=a&-4;_=a&3;ca=p+1068|0;$=p+12|0;da=p+1108|0;ea=a>>>0<4;while(1){a=J[i+44>>2];g=J[i+56>>2];o=e-1|0;c=g+o|0;k=(c>>>0)/113|0;c=J[a+(k<<2)>>2]+P(c-P(k,113)|0,36)|0;T=J[c+32>>2];j=J[c+12>>2];k=J[c>>2];J[i+60>>2]=o;c=J[i+48>>2];if((((a|0)!=(c|0)?P(c-a>>2,113)-1|0:0)-(e+g|0)|0)+1>>>0>=226){na(J[c-4>>2]);J[i+48>>2]=J[i+48>>2]-4}J[n+16>>2]=k;J[n>>2]=j;a=J[p+1164>>2];c=J[p+1176>>2];J[i+32>>2]=J[n+24>>2];e=J[n+20>>2];J[i+24>>2]=J[n+16>>2];J[i+28>>2]=e;J[i+16>>2]=J[n+8>>2];e=J[n+4>>2];J[i+8>>2]=J[n>>2];J[i+12>>2]=e;U=P(T,12);v=a+U|0;q=v;D=c+U|0;a=D;e=0;g=J[p+8>>2];y:{z:{A:{B:{s=J[i+8>>2];o=J[i+24>>2];u=s-o|0;if(u>>>0>=64){if(!g){break z}E=J[p+1140>>2];F=J[a>>2];G=J[p+1128>>2];if((o|0)!=(s|0)){break B}g=0;while(1){a=g<<2;c=a+G|0;J[c>>2]=0;q=a+E|0;e=J[p>>2];a=J[a+F>>2];J[q>>2]=e-a;if((a|0)!=(e|0)){q=c;a=J[c>>2];c=u-a|0;J[q>>2]=a>>>0<c>>>0?c:a}c=J[p+8>>2];g=g+1|0;if(c>>>0>g>>>0){continue}break}break A}if(g>>>0<2){break y}o=g-1|0;q=o&3;c=J[a>>2];a=0;C:{if(g-2>>>0<3){g=1;break C}r=o&-4;g=1;o=0;while(1){s=g+3|0;u=g+2|0;x=g+1|0;e=M[c+(e<<2)>>2]>M[c+(g<<2)>>2]?g:e;e=M[c+(e<<2)>>2]>M[c+(x<<2)>>2]?x:e;e=M[c+(e<<2)>>2]>M[c+(u<<2)>>2]?u:e;e=M[c+(e<<2)>>2]>M[c+(s<<2)>>2]?s:e;g=g+4|0;o=o+4|0;if((r|0)!=(o|0)){continue}break}}if(!q){break y}while(1){e=M[c+(e<<2)>>2]>M[c+(g<<2)>>2]?g:e;g=g+1|0;a=a+1|0;if((q|0)!=(a|0)){continue}break}break y}z=J[i+28>>2];C=J[q>>2];fa=u&1;q=o+1|0;ga=(q|0)!=(s|0);m=J[i+32>>2];ha=P(m,o)<<2;while(1){a=e<<2;r=a+G|0;J[r>>2]=0;c=J[p>>2];g=J[a+F>>2];x=c-g|0;J[a+E>>2]=x;if((c|0)!=(g|0)){x=J[a+C>>2]+(1<<x-1)|0;A=a+J[z+24>>2]|0;c=J[r>>2];if(fa){c=(x>>>0>M[A+ha>>2])+c|0;J[r>>2]=c;a=q}else{a=o}g=a;if(ga){while(1){a=(x>>>0>M[A+(P(g,m)<<2)>>2])+c|0;J[r>>2]=a;c=a+(x>>>0>M[A+(P(m,g+1|0)<<2)>>2])|0;J[r>>2]=c;g=g+2|0;if((s|0)!=(g|0)){continue}break}}a=u-c|0;J[r>>2]=a>>>0>c>>>0?a:c}c=J[p+8>>2];e=e+1|0;if(c>>>0>e>>>0){continue}break}}if(!c){e=0;break z}u=c&1;q=J[p+1128>>2];r=J[p+1140>>2];D:{if((c|0)==1){g=0;c=0;e=0;break D}x=c&-2;g=0;c=0;e=0;o=0;while(1){a=g<<2;E:{if(!J[a+r>>2]){a=c;break E}s=J[a+q>>2];a=c>>>0>s>>>0?c:s;e=c>>>0<s>>>0?g:e}A=g|1;c=A<<2;F:{if(!J[c+r>>2]){c=a;break F}s=J[c+q>>2];c=a>>>0>s>>>0?a:s;e=a>>>0<s>>>0?A:e}g=g+2|0;o=o+2|0;if((x|0)!=(o|0)){continue}break}}if(!u){break z}a=g<<2;if(!J[a+r>>2]){break z}e=M[a+q>>2]>c>>>0?g:e}Ib(p+1088|0,4,e)}c=J[p>>2];q=e<<2;g=J[q+J[D>>2]>>2];G:{H:{if((c|0)==(g|0)){break H}I:{J:{x=j-k|0;if(x>>>0<=2){g=J[p+1152>>2];J[g>>2]=e;c=1;a=J[p+8>>2];if(a>>>0>1){break J}break I}a=J[p+1164>>2];F=T+1|0;A=P(F,12);o=a+A|0;if((o|0)!=(v|0)){bb(o,J[v>>2],J[v+4>>2]);a=J[p+1164>>2]}a=q+J[a+A>>2]|0;r=J[a>>2]+(1<<c+(g^-1))|0;J[a>>2]=r;a=k;K:{if((j|0)==(a|0)){break K}G=J[h+24>>2];D=G+q|0;a=j;c=k;if(!l){if(r>>>0>M[D>>2]){break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}if(r>>>0<=M[(q+J[f+24>>2]|0)+(P(a,y)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(a|0)){continue}break}break K}while(1){g=P(c,l)<<2;if(r>>>0>M[g+D>>2]){c=c+1|0;if((c|0)!=(a|0)){continue}break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}v=J[f+24>>2]+(P(a,y)<<2)|0;if(r>>>0<=M[v+q>>2]){continue}break}s=g+G|0;E=0;g=0;o=0;if(!ea){while(1){u=g<<2;m=u+s|0;z=J[m>>2];C=m;m=v+u|0;J[C>>2]=J[m>>2];J[m>>2]=z;m=u|4;z=m+s|0;C=J[z>>2];m=v+m|0;J[z>>2]=J[m>>2];J[m>>2]=C;m=u|8;z=m+s|0;C=J[z>>2];m=v+m|0;J[z>>2]=J[m>>2];J[m>>2]=C;u=u|12;m=u+s|0;z=J[m>>2];u=v+u|0;J[m>>2]=J[u>>2];J[u>>2]=z;g=g+4|0;o=o+4|0;if((aa|0)!=(o|0)){continue}break}}if(_){while(1){o=g<<2;u=o+s|0;m=J[u>>2];o=o+v|0;J[u>>2]=J[o>>2];J[o>>2]=m;g=g+1|0;E=E+1|0;if((_|0)!=(E|0)){continue}break}}c=c+1|0;if((c|0)!=(a|0)){continue}break}}o=a-k|0;r=j-a|0;if((o|0)!=(r|0)){xc(da,o>>>0<r>>>0)}c=S(x);v=c^31;g=x>>>1|0;L:{if(o>>>0<r>>>0){if(!v){break L}s=g-o|0;c=1<<30-c;g=0;while(1){Ca((g<<5)+$|0,(c&s)!=0);c=c>>>1|0;g=g+1|0;if((v|0)!=(g|0)){continue}break}break L}if(!v){break L}s=g-r|0;c=1<<30-c;g=0;while(1){Ca((g<<5)+$|0,(c&s)!=0);c=c>>>1|0;g=g+1|0;if((v|0)!=(g|0)){continue}break}}m=q;c=J[p+1176>>2];g=c+U|0;q=J[g>>2];v=m+q|0;J[v>>2]=J[v>>2]+1;bb(c+A|0,q,J[g+4>>2]);if((a|0)!=(k|0)){g=J[i+60>>2]+J[i+56>>2]|0;q=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(q|0)?P(q-c>>2,113)-1|0:0)|0)){fb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;q=J[i+44>>2]}else{q=c}c=(g>>>0)/113|0;c=J[q+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=T;J[c+28>>2]=o;J[c+24>>2]=e;J[c+16>>2]=h;J[c+12>>2]=a;J[c+4>>2]=h;J[c+8>>2]=l;J[c>>2]=k;J[c+20>>2]=l;J[i+60>>2]=J[i+60>>2]+1}if((a|0)==(j|0)){break H}g=J[i+60>>2]+J[i+56>>2]|0;k=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(k|0)?P(k-c>>2,113)-1|0:0)|0)){fb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;q=J[i+44>>2]}else{q=c}c=(g>>>0)/113|0;c=J[q+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=F;J[c+28>>2]=r;J[c+24>>2]=e;J[c+16>>2]=f;J[c+20>>2]=y;J[c+12>>2]=j;J[c+4>>2]=h;J[c>>2]=a;J[c+8>>2]=l;e=J[i+60>>2]+1|0;J[i+60>>2]=e;break G}while(1){e=(a-1|0)!=(e|0)?e+1|0:0;J[g+(c<<2)>>2]=e;a=J[p+8>>2];c=c+1|0;if(a>>>0>c>>>0){continue}break}}g=0;c=a;if((j|0)==(k|0)){break H}while(1){M:{if(!c){c=0;break M}j=J[h+24>>2]+(P(J[h+4>>2],g+k|0)<<2)|0;e=0;while(1){c=J[p>>2];o=J[J[p+1152>>2]+(e<<2)>>2]<<2;q=J[o+J[D>>2]>>2];if((c|0)!=(q|0)){Ib(ca,c-q|0,J[j+o>>2]);a=J[p+8>>2]}c=a;e=e+1|0;if(c>>>0>e>>>0){continue}break}}g=g+1|0;if((x|0)!=(g|0)){continue}break}}e=J[i+60>>2]}if(e){continue}break}}J[i+60>>2]=0;f=J[i+48>>2];e=J[i+44>>2];a=f-e|0;if(a>>>0>=9){while(1){na(J[e>>2]);e=J[i+44>>2]+4|0;J[i+44>>2]=e;f=J[i+48>>2];a=f-e|0;if(a>>>0>8){continue}break}}c=56;N:{switch((a>>>2|0)-1|0){case 1:c=113;case 0:J[i+56>>2]=c;break;default:break N}}O:{if((e|0)==(f|0)){break O}while(1){na(J[e>>2]);e=e+4|0;if((f|0)!=(e|0)){continue}break}a=J[i+48>>2];c=J[i+44>>2];if((a|0)==(c|0)){break O}J[i+48>>2]=a+((c-a|0)+3&-4)}a=J[i+40>>2];if(a){na(a)}ba=i- -64|0;break v}qa();B()}qa();B()}se(W,b);eb(X,b);eb(Y,b);eb(Z,b)}ba=n+32|0;_c(p);break t;case 5:c=Zc(d+456|0,f);a=J[d+1652>>2];J[d+416>>2]=a;J[d+400>>2]=a;J[d- -64>>2]=a;J[d+48>>2]=a;J[d+408>>2]=0;J[d+392>>2]=J[d+1648>>2];a=d+1648|0;J[d+412>>2]=a;f=J[d+412>>2];J[d+56>>2]=J[d+408>>2];J[d+60>>2]=f;J[d+396>>2]=a;J[d+420>>2]=k;a=J[d+396>>2];J[d+40>>2]=J[d+392>>2];J[d+44>>2]=a;a=Ae(c,d+56|0,d+40|0,d+420|0,b);_c(c);if(a){break t}break a;case 4:c=Zc(d+456|0,f);a=J[d+1652>>2];J[d+384>>2]=a;J[d+368>>2]=a;J[d+96>>2]=a;J[d+80>>2]=a;J[d+376>>2]=0;J[d+360>>2]=J[d+1648>>2];a=d+1648|0;J[d+380>>2]=a;f=J[d+380>>2];J[d+88>>2]=J[d+376>>2];J[d+92>>2]=f;J[d+364>>2]=a;J[d+420>>2]=k;a=J[d+364>>2];J[d+72>>2]=J[d+360>>2];J[d+76>>2]=a;a=Ae(c,d+88|0,d+72|0,d+420|0,b);_c(c);if(a){break t}break a;case 3:c=ze(d+456|0,f);a=J[d+1652>>2];J[d+352>>2]=a;J[d+336>>2]=a;J[d+128>>2]=a;J[d+112>>2]=a;J[d+344>>2]=0;J[d+328>>2]=J[d+1648>>2];a=d+1648|0;J[d+348>>2]=a;f=J[d+348>>2];J[d+120>>2]=J[d+344>>2];J[d+124>>2]=f;J[d+332>>2]=a;J[d+420>>2]=k;a=J[d+332>>2];J[d+104>>2]=J[d+328>>2];J[d+108>>2]=a;a=ye(c,d+120|0,d+104|0,d+420|0,b);xe(c);if(a){break t}break a;case 2:c=ze(d+456|0,f);a=J[d+1652>>2];J[d+320>>2]=a;J[d+304>>2]=a;J[d+160>>2]=a;J[d+144>>2]=a;J[d+312>>2]=0;J[d+296>>2]=J[d+1648>>2];a=d+1648|0;J[d+316>>2]=a;f=J[d+316>>2];J[d+152>>2]=J[d+312>>2];J[d+156>>2]=f;J[d+300>>2]=a;J[d+420>>2]=k;a=J[d+300>>2];J[d+136>>2]=J[d+296>>2];J[d+140>>2]=a;a=ye(c,d+152|0,d+136|0,d+420|0,b);xe(c);if(a){break t}break a;case 1:c=we(d+456|0,f);a=J[d+1652>>2];J[d+288>>2]=a;J[d+272>>2]=a;J[d+192>>2]=a;J[d+176>>2]=a;J[d+280>>2]=0;J[d+264>>2]=J[d+1648>>2];a=d+1648|0;J[d+284>>2]=a;f=J[d+284>>2];J[d+184>>2]=J[d+280>>2];J[d+188>>2]=f;J[d+268>>2]=a;J[d+420>>2]=k;a=J[d+268>>2];J[d+168>>2]=J[d+264>>2];J[d+172>>2]=a;a=ve(c,d+184|0,d+168|0,d+420|0,b);ue(c);if(a){break t}break a;case 0:break u;default:break a}}c=we(d+456|0,f);a=J[d+1652>>2];J[d+256>>2]=a;J[d+240>>2]=a;J[d+224>>2]=a;J[d+208>>2]=a;J[d+248>>2]=0;J[d+232>>2]=J[d+1648>>2];a=d+1648|0;J[d+252>>2]=a;f=J[d+252>>2];J[d+216>>2]=J[d+248>>2];J[d+220>>2]=f;J[d+236>>2]=a;J[d+420>>2]=k;a=J[d+236>>2];J[d+200>>2]=J[d+232>>2];J[d+204>>2]=a;a=ve(c,d+216|0,d+200|0,d+420|0,b);ue(c);if(!a){break a}}s=1}a=J[d+1660>>2];if(a){J[d+1664>>2]=a;na(a)}ba=d+1680|0;return s|0}function Xe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0;w=ba-160|0;ba=w;J[w+60>>2]=b;J[w+20>>2]=b;J[w+24>>2]=-1;h=w+16|0;J[h+112>>2]=0;J[h+116>>2]=0;n=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=n;J[h+124>>2]=n>>31;J[h+104>>2]=J[h+8>>2];s=ba-48|0;ba=s;if(d>>>0<=2){a:{d=d<<2;D=J[d+17292>>2];E=J[d+17280>>2];while(1){d=J[h+4>>2];b:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break b}d=La(h)}if((d|0)==32|d-9>>>0<5){continue}break}n=1;c:{d:{switch(d-43|0){case 0:case 2:break d;default:break c}}n=(d|0)==45?-1:1;d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break c}d=La(h)}e:{f:{while(1){if(H[g+1154|0]==(d|32)){g:{if(g>>>0>6){break g}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break g}d=La(h)}g=g+1|0;if((g|0)!=8){continue}break f}break}if((g|0)!=3){if((g|0)==8){break f}if(g>>>0<4){break e}if((g|0)==8){break f}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g>>>0<4){break f}d=(d|0)<0;while(1){if(!d){J[h+4>>2]=J[h+4>>2]-1}g=g-1|0;if(g>>>0>3){continue}break}}m=ba-16|0;ba=m;r=(C(Q(Q(n|0)*Q(Infinity))),v(2));d=r&2147483647;h:{if(d-8388608>>>0<=2130706431){l=(d>>>7|0)+1065353216|0;j=d<<25;break h}l=r>>>7|2147418112;j=r<<25;if(d>>>0>=2139095040){break h}l=0;j=0;if(!d){break h}g=d;d=S(d);Pa(m,g,0,0,0,d+81|0);i=J[m>>2];k=J[m+4>>2];l=J[m+12>>2]^65536|16265-d<<16;j=J[m+8>>2]}J[s>>2]=i;J[s+4>>2]=k;J[s+8>>2]=j;J[s+12>>2]=r&-2147483648|l;ba=m+16|0;i=J[s+8>>2];k=J[s+12>>2];j=J[s>>2];m=J[s+4>>2];break a}i:{j:{k:{if(g){break k}g=0;while(1){if(H[g+1434|0]!=(d|32)){break k}l:{if(g>>>0>1){break l}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break l}d=La(h)}g=g+1|0;if((g|0)!=3){continue}break}break j}m:{switch(g|0){case 0:n:{if((d|0)!=48){break n}g=J[h+4>>2];o:{if((g|0)!=J[h+104>>2]){J[h+4>>2]=g+1;g=K[g|0];break o}g=La(h)}if((g&-33)==88){f=ba-432|0;ba=f;d=J[h+4>>2];p:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break p}g=La(h)}q:{r:{while(1){if((g|0)!=48){s:{if((g|0)!=46){break q}d=J[h+4>>2];if((d|0)==J[h+104>>2]){break s}J[h+4>>2]=d+1;g=K[d|0];break r}}else{d=J[h+4>>2];if((d|0)!=J[h+104>>2]){x=1;J[h+4>>2]=d+1;g=K[d|0]}else{x=1;g=La(h)}continue}break}g=La(h)}e=1;if((g|0)!=48){break q}while(1){d=r;r=d-1|0;t=t-!d|0;d=J[h+4>>2];t:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break t}g=La(h)}if((g|0)==48){continue}break}x=1}m=1073676288;while(1){u:{d=g|32;v:{w:{F=g-48|0;if(F>>>0<10){break w}if((g|0)!=46&d-97>>>0>=6){break u}if((g|0)!=46){break w}if(e){break u}e=1;r=i;t=k;break v}d=(g|0)>57?d-87|0:F;x:{if((k|0)<=0&i>>>0<=7|(k|0)<0){p=d+(p<<4)|0;break x}if(!k&i>>>0<=28){$a(f+48|0,d);Ea(f+32|0,A,B,j,m,0,0,0,1073414144);A=J[f+32>>2];B=J[f+36>>2];j=J[f+40>>2];m=J[f+44>>2];Ea(f+16|0,J[f+48>>2],J[f+52>>2],J[f+56>>2],J[f+60>>2],A,B,j,m);_a(f,J[f+16>>2],J[f+20>>2],J[f+24>>2],J[f+28>>2],l,o,y,z);y=J[f+8>>2];z=J[f+12>>2];l=J[f>>2];o=J[f+4>>2];break x}if(G|!d){break x}Ea(f+80|0,A,B,j,m,0,0,0,1073610752);_a(f- -64|0,J[f+80>>2],J[f+84>>2],J[f+88>>2],J[f+92>>2],l,o,y,z);y=J[f+72>>2];z=J[f+76>>2];G=1;l=J[f+64>>2];o=J[f+68>>2]}i=i+1|0;k=i?k:k+1|0;x=1}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0]}else{g=La(h)}continue}break}y:{if(!x){d=J[h+116>>2];if((d|0)>0|(d|0)>=0){z:{d=J[h+4>>2];J[h+4>>2]=d-1;J[h+4>>2]=d-2;if(!e){break z}J[h+4>>2]=d-3}}qb(f+96|0,+(n|0)*0);l=J[f+96>>2];o=J[f+100>>2];i=J[f+108>>2];d=J[f+104>>2];break y}if((k|0)<=0&i>>>0<=7|(k|0)<0){j=i;m=k;while(1){p=p<<4;j=j+1|0;m=j?m:m+1|0;if((j|0)!=8|m){continue}break}}A:{B:{C:{if((g&-33)==80){j=Ye(h);d=ca;m=d;if(j|(d|0)!=-2147483648){break A}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){break C}break B}j=0;m=0;if(J[h+116>>2]<0){break A}}J[h+4>>2]=J[h+4>>2]-1}j=0;m=0}if(!p){qb(f+112|0,+(n|0)*0);l=J[f+112>>2];o=J[f+116>>2];i=J[f+124>>2];d=J[f+120>>2];break y}d=e?r:i;k=(e?t:k)<<2|d>>>30;d=j+(d<<2)|0;g=k+m|0;g=d>>>0<j>>>0?g+1|0:g;i=d-32|0;k=g-(d>>>0<32)|0;d=k;if(i>>>0>0-D>>>0&(d|0)>=0|(d|0)>0){J[4804]=68;$a(f+160|0,n);Ea(f+144|0,J[f+160>>2],J[f+164>>2],J[f+168>>2],J[f+172>>2],-1,-1,-1,2147418111);Ea(f+128|0,J[f+144>>2],J[f+148>>2],J[f+152>>2],J[f+156>>2],-1,-1,-1,2147418111);l=J[f+128>>2];o=J[f+132>>2];i=J[f+140>>2];d=J[f+136>>2];break y}d=D-226|0;j=d>>31;if((k|0)>=(j|0)&d>>>0<=i>>>0|(j|0)<(k|0)){if((p|0)>=0){while(1){_a(f+416|0,l,o,y,z,0,0,0,-1073807360);d=Oe(l,o,y,z,1073610752);j=(d|0)>=0;d=j;_a(f+400|0,l,o,y,z,d?J[f+416>>2]:l,d?J[f+420>>2]:o,d?J[f+424>>2]:y,d?J[f+428>>2]:z);d=i;i=d-1|0;k=k-!d|0;y=J[f+408>>2];z=J[f+412>>2];l=J[f+400>>2];o=J[f+404>>2];p=j|p<<1;if((p|0)>=0){continue}break}}g=k-((D>>31)+(i>>>0<D>>>0)|0)|0;d=(i-D|0)+32|0;g=d>>>0<32?g+1|0:g;j=d>>>0<E>>>0&(g|0)<=0|(g|0)<0?(d|0)>0?d:0:E;D:{if((j|0)>=113){$a(f+384|0,n);r=J[f+392>>2];t=J[f+396>>2];A=J[f+384>>2];B=J[f+388>>2];g=0;d=0;break D}qb(f+352|0,pd(144-j|0));$a(f+336|0,n);A=J[f+336>>2];B=J[f+340>>2];r=J[f+344>>2];t=J[f+348>>2];$e(f+368|0,J[f+352>>2],J[f+356>>2],J[f+360>>2],J[f+364>>2],A,B,r,t);q=J[f+376>>2];u=J[f+380>>2];g=J[f+372>>2];d=J[f+368>>2]}k=!(p&1)&((Hb(l,o,y,z,0,0,0,0)|0)!=0&(j|0)<32);Lb(f+320|0,k+p|0);Ea(f+304|0,A,B,r,t,J[f+320>>2],J[f+324>>2],J[f+328>>2],J[f+332>>2]);j=d;_a(f+272|0,J[f+304>>2],J[f+308>>2],J[f+312>>2],J[f+316>>2],d,g,q,u);d=k;Ea(f+288|0,A,B,r,t,d?0:l,d?0:o,d?0:y,d?0:z);_a(f+256|0,J[f+288>>2],J[f+292>>2],J[f+296>>2],J[f+300>>2],J[f+272>>2],J[f+276>>2],J[f+280>>2],J[f+284>>2]);od(f+240|0,J[f+256>>2],J[f+260>>2],J[f+264>>2],J[f+268>>2],j,g,q,u);d=J[f+240>>2];l=J[f+244>>2];j=J[f+248>>2];r=J[f+252>>2];if(!Hb(d,l,j,r,0,0,0,0)){J[4804]=68}_e(f+224|0,d,l,j,r,i);l=J[f+224>>2];o=J[f+228>>2];i=J[f+236>>2];d=J[f+232>>2];break y}J[4804]=68;$a(f+208|0,n);Ea(f+192|0,J[f+208>>2],J[f+212>>2],J[f+216>>2],J[f+220>>2],0,0,0,65536);Ea(f+176|0,J[f+192>>2],J[f+196>>2],J[f+200>>2],J[f+204>>2],0,0,0,65536);l=J[f+176>>2];o=J[f+180>>2];i=J[f+188>>2];d=J[f+184>>2]}J[s+16>>2]=l;J[s+20>>2]=o;J[s+24>>2]=d;J[s+28>>2]=i;ba=f+432|0;i=J[s+24>>2];k=J[s+28>>2];j=J[s+16>>2];m=J[s+20>>2];break a}if(J[h+116>>2]<0){break n}J[h+4>>2]=J[h+4>>2]-1}g=h;f=n;h=0;e=ba-8976|0;ba=e;G=0-D|0;F=G-E|0;E:{F:{while(1){if((d|0)!=48){G:{if((d|0)!=46){break E}d=J[g+4>>2];if((d|0)==J[g+104>>2]){break G}J[g+4>>2]=d+1;d=K[d|0];break F}}else{d=J[g+4>>2];if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0]}else{d=La(g)}h=1;continue}break}d=La(g)}q=1;if((d|0)!=48){break E}while(1){d=i;i=d-1|0;k=k-!d|0;d=J[g+4>>2];H:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break H}d=La(g)}if((d|0)==48){continue}break}h=1}J[e+784>>2]=0;I:{J:{n=(d|0)==46;l=d-48|0;K:{L:{if(n|l>>>0<=9){while(1){M:{if(n&1){if(!q){i=j;k=m;q=1;break M}n=!h;break L}j=j+1|0;m=j?m:m+1|0;if((p|0)<=2044){x=(d|0)==48?x:j;n=(e+784|0)+(p<<2)|0;if(u){l=(P(J[n>>2],10)+d|0)-48|0}J[n>>2]=l;h=1;l=u+1|0;d=(l|0)==9;u=d?0:l;p=d+p|0;break M}if((d|0)==48){break M}J[e+8960>>2]=J[e+8960>>2]|1;x=18396}d=J[g+4>>2];N:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break N}d=La(g)}n=(d|0)==46;l=d-48|0;if(n|l>>>0<10){continue}break}}i=q?i:j;k=q?k:m;if(!(!h|(d&-33)!=69)){l=Ye(g);d=ca;o=d;O:{if(l|(d|0)!=-2147483648){break O}l=0;o=0;if(J[g+116>>2]<0){break O}J[g+4>>2]=J[g+4>>2]-1}k=k+o|0;i=i+l|0;k=i>>>0<l>>>0?k+1|0:k;break J}n=!h;if((d|0)<0){break K}}if(J[g+116>>2]<0){break K}J[g+4>>2]=J[g+4>>2]-1}if(!n){break J}J[4804]=28;j=0;m=0;J[g+112>>2]=0;J[g+116>>2]=0;d=J[g+44>>2]-J[g+4>>2]|0;J[g+120>>2]=d;J[g+124>>2]=d>>31;J[g+104>>2]=J[g+8>>2];i=0;d=0;break I}d=J[e+784>>2];if(!d){qb(e,+(f|0)*0);j=J[e>>2];m=J[e+4>>2];i=J[e+12>>2];d=J[e+8>>2];break I}if(!(j>>>0>9&(m|0)>=0|(m|0)>0|((i|0)!=(j|0)|(k|0)!=(m|0))|(d>>>E|0?(E|0)<=30:0))){$a(e+48|0,f);Lb(e+32|0,d);Ea(e+16|0,J[e+48>>2],J[e+52>>2],J[e+56>>2],J[e+60>>2],J[e+32>>2],J[e+36>>2],J[e+40>>2],J[e+44>>2]);j=J[e+16>>2];m=J[e+20>>2];i=J[e+28>>2];d=J[e+24>>2];break I}if(i>>>0>G>>>1>>>0&(k|0)>=0|(k|0)>0){J[4804]=68;$a(e+96|0,f);Ea(e+80|0,J[e+96>>2],J[e+100>>2],J[e+104>>2],J[e+108>>2],-1,-1,-1,2147418111);Ea(e- -64|0,J[e+80>>2],J[e+84>>2],J[e+88>>2],J[e+92>>2],-1,-1,-1,2147418111);j=J[e+64>>2];m=J[e+68>>2];i=J[e+76>>2];d=J[e+72>>2];break I}d=D-226|0;g=i>>>0<d>>>0;d=d>>31;if(g&(k|0)<=(d|0)|(d|0)>(k|0)){J[4804]=68;$a(e+144|0,f);Ea(e+128|0,J[e+144>>2],J[e+148>>2],J[e+152>>2],J[e+156>>2],0,0,0,65536);Ea(e+112|0,J[e+128>>2],J[e+132>>2],J[e+136>>2],J[e+140>>2],0,0,0,65536);j=J[e+112>>2];m=J[e+116>>2];i=J[e+124>>2];d=J[e+120>>2];break I}if(u){if((u|0)<=8){d=(e+784|0)+(p<<2)|0;g=J[d>>2];while(1){g=P(g,10);u=u+1|0;if((u|0)!=9){continue}break}J[d>>2]=g}p=p+1|0}P:{q=i;if((x|0)>(i|0)|(x|0)>=9|(i|0)>17){break P}if((q|0)==9){$a(e+192|0,f);Lb(e+176|0,J[e+784>>2]);Ea(e+160|0,J[e+192>>2],J[e+196>>2],J[e+200>>2],J[e+204>>2],J[e+176>>2],J[e+180>>2],J[e+184>>2],J[e+188>>2]);j=J[e+160>>2];m=J[e+164>>2];i=J[e+172>>2];d=J[e+168>>2];break I}if((q|0)<=8){$a(e+272|0,f);Lb(e+256|0,J[e+784>>2]);Ea(e+240|0,J[e+272>>2],J[e+276>>2],J[e+280>>2],J[e+284>>2],J[e+256>>2],J[e+260>>2],J[e+264>>2],J[e+268>>2]);$a(e+224|0,J[(0-q<<2)+17280>>2]);Ne(e+208|0,J[e+240>>2],J[e+244>>2],J[e+248>>2],J[e+252>>2],J[e+224>>2],J[e+228>>2],J[e+232>>2],J[e+236>>2]);j=J[e+208>>2];m=J[e+212>>2];i=J[e+220>>2];d=J[e+216>>2];break I}d=(P(q,-3)+E|0)+27|0;i=J[e+784>>2];if(i>>>d|0?(d|0)<=30:0){break P}$a(e+352|0,f);Lb(e+336|0,i);Ea(e+320|0,J[e+352>>2],J[e+356>>2],J[e+360>>2],J[e+364>>2],J[e+336>>2],J[e+340>>2],J[e+344>>2],J[e+348>>2]);$a(e+304|0,J[(q<<2)+17208>>2]);Ea(e+288|0,J[e+320>>2],J[e+324>>2],J[e+328>>2],J[e+332>>2],J[e+304>>2],J[e+308>>2],J[e+312>>2],J[e+316>>2]);j=J[e+288>>2];m=J[e+292>>2];i=J[e+300>>2];d=J[e+296>>2];break I}while(1){d=p;p=d-1|0;if(!J[(e+784|0)+(p<<2)>>2]){continue}break}u=0;i=(q|0)%9|0;Q:{if(!i){n=0;break Q}n=0;i=(q|0)<0?i+9|0:i;R:{if(!d){d=0;break R}j=J[(0-i<<2)+17280>>2];k=1e9/(j|0)|0;l=0;g=0;while(1){m=(e+784|0)+(g<<2)|0;h=J[m>>2];p=(h>>>0)/(j>>>0)|0;l=p+l|0;J[m>>2]=l;l=!l&(g|0)==(n|0);n=l?n+1&2047:n;q=l?q-9|0:q;l=P(k,h-P(j,p)|0);g=g+1|0;if((g|0)!=(d|0)){continue}break}if(!l){break R}J[(e+784|0)+(d<<2)>>2]=l;d=d+1|0}q=(q-i|0)+9|0}while(1){x=(e+784|0)+(n<<2)|0;S:{while(1){if(((q|0)!=36|M[x>>2]>=10384593)&(q|0)>=36){break S}p=d+2047|0;l=0;h=d;while(1){d=h;o=p&2047;h=(e+784|0)+(o<<2)|0;i=J[h>>2];m=i>>>3|0;j=i<<29;i=j+l|0;g=m;k=i>>>0<j>>>0?g+1|0:g;if(!k&i>>>0<1000000001){l=0}else{l=Jl(i,k,1e9,0);i=i-Hl(l,ca,1e9,0)|0}J[h>>2]=i;h=(o|0)!=(d-1&2047)?d:(n|0)==(o|0)?d:i?d:o;p=o-1|0;if((n|0)!=(o|0)){continue}break}u=u-29|0;if(!l){continue}break}n=n-1&2047;if((n|0)==(h|0)){i=e+784|0;d=i+((h+2046&2047)<<2)|0;g=d;k=J[d>>2];d=h-1&2047;J[g>>2]=k|J[i+(d<<2)>>2]}q=q+9|0;J[(e+784|0)+(n<<2)>>2]=l;continue}break}T:{U:while(1){i=d+1&2047;l=(e+784|0)+((d-1&2047)<<2)|0;while(1){j=(q|0)>45?9:1;V:{while(1){h=n;g=0;W:{while(1){X:{k=g+h&2047;if((k|0)==(d|0)){break X}k=J[(e+784|0)+(k<<2)>>2];m=J[(g<<2)+17232>>2];if(k>>>0<m>>>0){break X}if(k>>>0>m>>>0){break W}g=g+1|0;if((g|0)!=4){continue}}break}if((q|0)!=36){break W}i=0;k=0;g=0;j=0;m=0;while(1){l=g+h&2047;if((l|0)==(d|0)){d=d+1&2047;J[(e+(d<<2)|0)+780>>2]=0}Lb(e+768|0,J[(e+784|0)+(l<<2)>>2]);Ea(e+752|0,i,k,j,m,0,0,1342177280,1075633366);_a(e+736|0,J[e+752>>2],J[e+756>>2],J[e+760>>2],J[e+764>>2],J[e+768>>2],J[e+772>>2],J[e+776>>2],J[e+780>>2]);j=J[e+744>>2];m=J[e+748>>2];i=J[e+736>>2];k=J[e+740>>2];g=g+1|0;if((g|0)!=4){continue}break}$a(e+720|0,f);Ea(e+704|0,i,k,j,m,J[e+720>>2],J[e+724>>2],J[e+728>>2],J[e+732>>2]);j=J[e+712>>2];m=J[e+716>>2];i=0;k=0;l=J[e+704>>2];o=J[e+708>>2];x=u+113|0;n=x-D|0;q=(n|0)<(E|0);g=q?(n|0)>0?n:0:E;if((g|0)<=112){break V}break T}u=j+u|0;n=d;if((d|0)==(h|0)){continue}break}m=1e9>>>j|0;p=-1<<j^-1;g=0;n=h;while(1){k=g;g=(e+784|0)+(h<<2)|0;o=J[g>>2];k=k+(o>>>j|0)|0;J[g>>2]=k;k=!k&(h|0)==(n|0);n=k?n+1&2047:n;q=k?q-9|0:q;g=P(m,o&p);h=h+1&2047;if((h|0)!=(d|0)){continue}break}if(!g){continue}if((i|0)!=(n|0)){J[(e+784|0)+(d<<2)>>2]=g;d=i;continue U}J[l>>2]=J[l>>2]|1;continue}break}break}qb(e+656|0,pd(225-g|0));$e(e+688|0,J[e+656>>2],J[e+660>>2],J[e+664>>2],J[e+668>>2],l,o,j,m);y=J[e+696>>2];z=J[e+700>>2];A=J[e+688>>2];B=J[e+692>>2];qb(e+640|0,pd(113-g|0));Ze(e+672|0,l,o,j,m,J[e+640>>2],J[e+644>>2],J[e+648>>2],J[e+652>>2]);i=J[e+672>>2];k=J[e+676>>2];r=J[e+680>>2];t=J[e+684>>2];od(e+624|0,l,o,j,m,i,k,r,t);_a(e+608|0,A,B,y,z,J[e+624>>2],J[e+628>>2],J[e+632>>2],J[e+636>>2]);j=J[e+616>>2];m=J[e+620>>2];l=J[e+608>>2];o=J[e+612>>2]}p=h+4&2047;Y:{if((p|0)==(d|0)){break Y}p=J[(e+784|0)+(p<<2)>>2];Z:{if(p>>>0<=499999999){if(!p&(h+5&2047)==(d|0)){break Z}qb(e+496|0,+(f|0)*.25);_a(e+480|0,i,k,r,t,J[e+496>>2],J[e+500>>2],J[e+504>>2],J[e+508>>2]);r=J[e+488>>2];t=J[e+492>>2];i=J[e+480>>2];k=J[e+484>>2];break Z}if((p|0)!=5e8){qb(e+592|0,+(f|0)*.75);_a(e+576|0,i,k,r,t,J[e+592>>2],J[e+596>>2],J[e+600>>2],J[e+604>>2]);r=J[e+584>>2];t=J[e+588>>2];i=J[e+576>>2];k=J[e+580>>2];break Z}I=+(f|0);if((h+5&2047)==(d|0)){qb(e+528|0,I*.5);_a(e+512|0,i,k,r,t,J[e+528>>2],J[e+532>>2],J[e+536>>2],J[e+540>>2]);r=J[e+520>>2];t=J[e+524>>2];i=J[e+512>>2];k=J[e+516>>2];break Z}qb(e+560|0,I*.75);_a(e+544|0,i,k,r,t,J[e+560>>2],J[e+564>>2],J[e+568>>2],J[e+572>>2]);r=J[e+552>>2];t=J[e+556>>2];i=J[e+544>>2];k=J[e+548>>2]}if((g|0)>111){break Y}Ze(e+464|0,i,k,r,t,0,0,0,1073676288);if(Hb(J[e+464>>2],J[e+468>>2],J[e+472>>2],J[e+476>>2],0,0,0,0)){break Y}_a(e+448|0,i,k,r,t,0,0,0,1073676288);r=J[e+456>>2];t=J[e+460>>2];i=J[e+448>>2];k=J[e+452>>2]}_a(e+432|0,l,o,j,m,i,k,r,t);od(e+416|0,J[e+432>>2],J[e+436>>2],J[e+440>>2],J[e+444>>2],A,B,y,z);j=J[e+424>>2];m=J[e+428>>2];l=J[e+416>>2];o=J[e+420>>2];_:{if((F-2|0)>=(x&2147483647)){break _}J[e+408>>2]=j;J[e+412>>2]=m&2147483647;J[e+400>>2]=l;J[e+404>>2]=o;Ea(e+384|0,l,o,j,m,0,0,0,1073610752);d=Oe(J[e+400>>2],J[e+404>>2],J[e+408>>2],J[e+412>>2],1081081856);d=(d|0)>=0;j=d?J[e+392>>2]:j;m=d?J[e+396>>2]:m;l=d?J[e+384>>2]:l;o=d?J[e+388>>2]:o;u=d+u|0;if(!((Hb(i,k,r,t,0,0,0,0)|0)!=0&(d?q&(g|0)!=(n|0):q))&(u+110|0)<=(F|0)){break _}J[4804]=68}_e(e+368|0,l,o,j,m,u);j=J[e+368>>2];m=J[e+372>>2];i=J[e+380>>2];d=J[e+376>>2]}J[s+40>>2]=d;J[s+44>>2]=i;J[s+32>>2]=j;J[s+36>>2]=m;ba=e+8976|0;i=J[s+40>>2];k=J[s+44>>2];j=J[s+32>>2];m=J[s+36>>2];break a;case 3:break j;default:break m}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}J[4804]=28;break i}$:{d=J[h+4>>2];aa:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break aa}d=La(h)}if((d|0)==40){g=1;break $}k=2147450880;if(J[h+116>>2]<0){break a}J[h+4>>2]=J[h+4>>2]-1;break a}while(1){ba:{d=J[h+4>>2];ca:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break ca}d=La(h)}if(!(d-48>>>0<10|d-65>>>0<26|(d|0)==95)){if(d-97>>>0>=26){break ba}}g=g+1|0;continue}break}k=2147450880;if((d|0)==41){break a}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(!g){break a}while(1){g=g-1|0;if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g){continue}break}break a}J[h+112>>2]=0;J[h+116>>2]=0;d=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=d;J[h+124>>2]=d>>31;J[h+104>>2]=J[h+8>>2]}}J[w>>2]=j;J[w+4>>2]=m;J[w+8>>2]=i;J[w+12>>2]=k;ba=s+48|0;d=J[w+8>>2];j=J[w+12>>2];i=J[w>>2];l=J[w+4>>2];if(c){J[c>>2]=((J[w+20>>2]+J[w+136>>2]|0)-J[w+60>>2]|0)+b}J[a+8>>2]=d;J[a+12>>2]=j;J[a>>2]=i;J[a+4>>2]=l;ba=w+160|0}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=ba-32|0;ba=l;d=J[b+8>>2];a:{b:{if(K[b+352|0]){d=jf(d);f=J[b+12>>2];J[b+12>>2]=d;if(f){break b}break a}d=kf(d);f=J[b+12>>2];J[b+12>>2]=d;if(!f){break a}}qc(f)}c:{d=J[b+12>>2];d:{if(!(J[d+40>>2]!=((J[d+4>>2]-J[d>>2]>>2>>>0)/3|0)?d:0)){b=oa(32);H[b+29|0]=0;d=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);c=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=c;H[b+22|0]=c>>>8;H[b+23|0]=c>>>16;H[b+24|0]=c>>>24;H[b+25|0]=d;H[b+26|0]=d>>>8;H[b+27|0]=d>>>16;H[b+28|0]=d>>>24;d=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);c=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;H[b+20|0]=d;H[b+21|0]=d>>>8;H[b+22|0]=d>>>16;H[b+23|0]=d>>>24;d=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);c=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=c;H[b+9|0]=c>>>8;H[b+10|0]=c>>>16;H[b+11|0]=c>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);c=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=c;H[b+1|0]=c>>>8;H[b+2|0]=c>>>16;H[b+3|0]=c>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break d}j=b+200|0;d=j;J[d+128>>2]=2;J[d+132>>2]=7;J[d+64>>2]=b;c=da[J[J[b>>2]+32>>2]](b)|0;J[d+88>>2]=c;c=J[c+28>>2]-J[c+24>>2]>>2;e=J[d+108>>2];h=J[d+104>>2];d=e-h>>2;e:{if(c>>>0>d>>>0){Fa(j+104|0,c-d|0);h=J[j+104>>2];e=J[j+108>>2];break e}if(c>>>0>=d>>>0){break e}e=(c<<2)+h|0;J[j+108>>2]=e}if((e|0)!=(h|0)){h=0;while(1){n=J[j+104>>2];q=n+(h<<2)|0;d=J[j+88>>2];f=-1;f:{if((h|0)==-1){break f}f=0;c=J[J[d+24>>2]+(h<<2)>>2];if((c|0)==-1){break f}k=J[d+12>>2];g=1;d=c;while(1){f=f+1|0;e=g;g:{if(e&255){g=0;i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;if((d|0)==-1){d=c;break g}i=J[k+(d<<2)>>2];if((i|0)==-1){d=c;break g}d=c;p=i+1|0;i=(p>>>0)%3|0?p:i-2|0;if((i|0)==-1){break g}g=e;d=i;if((c|0)!=(d|0)){break g}break f}h:{if((d>>>0)%3|0){d=d-1|0;break h}d=d+2|0;if((d|0)==-1){break f}}d=J[k+(d<<2)>>2];if((d|0)==-1){break f}d=(d>>>0)%3|0?d-1|0:d+2|0;g=0}if((d|0)!=-1){continue}break}}J[q>>2]=f;h=h+1|0;if(h>>>0<J[j+108>>2]-n>>2>>>0){continue}break}}c=j+92|0;h=J[j+88>>2];e=J[h>>2];d=J[h+4>>2]-e>>2;f=J[j+92>>2];g=J[j+96>>2]-f>>2;i:{if(d>>>0>g>>>0){Ld(c,d-g|0);h=J[j+88>>2];e=J[h>>2];break i}if(d>>>0>=g>>>0){break i}J[j+96>>2]=f+(d<<2)}d=J[h+4>>2];j:{if((d|0)==(e|0)){break j}d=d-e>>2;g=d>>>0<=1?1:d;i=g&3;d=J[c>>2];h=0;if(g-1>>>0>=3){g=g&-4;f=0;while(1){c=h<<2;J[c+d>>2]=J[c+e>>2];k=c|4;J[k+d>>2]=J[e+k>>2];k=c|8;J[k+d>>2]=J[e+k>>2];c=c|12;J[c+d>>2]=J[c+e>>2];h=h+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}if(!i){break j}while(1){c=h<<2;J[c+d>>2]=J[c+e>>2];h=h+1|0;m=m+1|0;if((i|0)!=(m|0)){continue}break}}c=(J[j+132>>2]-J[j+128>>2]|0)+1|0;e=J[j+140>>2];d=J[j+136>>2];g=(e-d|0)/12|0;k:{if(c>>>0>g>>>0){h=0;c=c-g|0;f=J[j+144>>2];d=J[j+140>>2];if(c>>>0<=(f-d|0)/12>>>0){if(c){e=d;d=P(c,12)-12|0;d=(d-((d>>>0)%12|0)|0)+12|0;d=pa(e,0,d)+d|0}J[j+140>>2]=d;break k}l:{m:{n:{e=J[j+136>>2];i=(d-e|0)/12|0;g=i+c|0;if(g>>>0<357913942){f=(f-e|0)/12|0;m=f<<1;f=f>>>0>=178956970?357913941:g>>>0<m>>>0?m:g;if(f){if(f>>>0>=357913942){break n}h=oa(P(f,12))}g=P(i,12)+h|0;c=P(c,12)-12|0;i=(c-((c>>>0)%12|0)|0)+12|0;c=pa(g,0,i);i=c+i|0;f=P(f,12)+h|0;if((d|0)==(e|0)){break m}while(1){g=g-12|0;d=d-12|0;J[g>>2]=J[d>>2];J[g+4>>2]=J[d+4>>2];J[g+8>>2]=J[d+8>>2];J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if((d|0)!=(e|0)){continue}break}J[j+144>>2]=f;e=J[j+140>>2];J[j+140>>2]=i;d=J[j+136>>2];J[j+136>>2]=g;if((d|0)==(e|0)){break l}while(1){c=e-12|0;g=J[c>>2];if(g){J[e-8>>2]=g;na(g)}e=c;if((c|0)!=(d|0)){continue}break}break l}break c}xa();B()}J[j+144>>2]=f;J[j+140>>2]=i;J[j+136>>2]=c}if(d){na(d)}break k}if(c>>>0<g>>>0){c=d+P(c,12)|0;if((c|0)!=(e|0)){while(1){d=e-12|0;g=J[d>>2];if(g){J[e-8>>2]=g;na(g)}e=d;if((d|0)!=(c|0)){continue}break}}J[j+140>>2]=c}}d=J[b+12>>2];Aa((J[d+28>>2]-J[d+24>>2]>>2)-J[d+44>>2]|0,J[J[b+4>>2]+44>>2]);d=J[b+12>>2];Aa(((J[d+4>>2]-J[d>>2]>>2>>>0)/3|0)-J[d+40>>2]|0,J[J[b+4>>2]+44>>2]);d=J[b+8>>2];c=J[d+100>>2];d=J[d+96>>2];H[l+16|0]=0;m=b+28|0;c=(c-d|0)/12|0;d=l+16|0;Na(m,c,d);c=J[b+12>>2];e=J[c+28>>2];c=J[c+24>>2];J[l+16>>2]=-1;wb(b+52|0,e-c>>2,d);d=J[b+40>>2];J[b+44>>2]=d;g=J[b+12>>2];c=J[g+4>>2]-J[g>>2]>>2;c=c-((c>>>0)%3|0)|0;o:{if(c>>>0<=J[b+48>>2]-d>>2>>>0){break o}if(c>>>0>=1073741824){break c}e=c<<2;c=oa(e);J[b+44>>2]=c;J[b+40>>2]=c;J[b+48>>2]=c+e;if(!d){break o}na(d);g=J[b+12>>2]}d=J[g+28>>2];c=J[g+24>>2];H[l+16|0]=0;Na(b+84|0,d-c>>2,l+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){g=J[b+128>>2];if(g){while(1){d=J[g>>2];na(g);g=d;if(d){continue}break}}g=0;J[b+128>>2]=0;d=J[b+124>>2];p:{if(!d){break p}if(d>>>0>=4){f=d&-4;e=0;while(1){c=g<<2;J[c+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(c|4)>>2]=0;J[J[b+120>>2]+(c|8)>>2]=0;J[J[b+120>>2]+(c|12)>>2]=0;g=g+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}d=d&3;if(!d){break p}f=0;while(1){J[J[b+120>>2]+(g<<2)>>2]=0;g=g+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;d=J[b+12>>2];c=J[d+28>>2];d=J[d+24>>2];J[l+16>>2]=-1;wb(b+152|0,c-d>>2,l+16|0);d=J[b+72>>2];J[b+76>>2]=d;q=b+72|0;c=J[b+12>>2];c=J[c+4>>2]-J[c>>2]|0;e=(c>>2>>>0)/3|0;q:{if(e>>>0<=J[b+80>>2]-d>>2>>>0){break q}if((c|0)<0){break c}e=e<<2;c=oa(e);J[b+76>>2]=c;J[b+72>>2]=c;J[b+80>>2]=c+e;if(!d){break q}na(d)}J[b- -64>>2]=0;if(!kg(b)){b=oa(32);H[b+29|0]=0;d=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);c=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=c;H[b+22|0]=c>>>8;H[b+23|0]=c>>>16;H[b+24|0]=c>>>24;H[b+25|0]=d;H[b+26|0]=d>>>8;H[b+27|0]=d>>>16;H[b+28|0]=d>>>24;d=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);c=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;H[b+20|0]=d;H[b+21|0]=d>>>8;H[b+22|0]=d>>>16;H[b+23|0]=d>>>24;d=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);c=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=c;H[b+9|0]=c>>>8;H[b+10|0]=c>>>16;H[b+11|0]=c>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);c=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=c;H[b+1|0]=c>>>8;H[b+2|0]=c>>>16;H[b+3|0]=c>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break d}g=0;c=b;r:{if(K[b+352|0]){break r}b=J[c+8>>2];e=J[b+12>>2]-J[b+8>>2]|0;f=e>>2;b=f-1|0;d=J[c+176>>2];h=J[c+172>>2];i=(d-h|0)/136|0;s:{if(b>>>0>i>>>0){cg(c+172|0,b-i|0);break s}if(b>>>0>=i>>>0){break s}i=h+P(b,136)|0;if((i|0)!=(d|0)){while(1){b=d-136|0;h=J[b+116>>2];if(h){J[d-16>>2]=h;na(h)}h=J[d-32>>2];if(h){J[d-28>>2]=h;na(h)}pc(d-132|0);d=b;if((b|0)!=(i|0)){continue}break}}J[c+176>>2]=i}if((e|0)==4|(e|0)<=0){break r}i=(f|0)<=1?1:f;d=0;t:{while(1){h=J[J[J[c+8>>2]+8>>2]+(d<<2)>>2];if(J[h+56>>2]){k=P(g,136);b=k+J[c+172>>2]|0;J[b>>2]=d;e=J[b+104>>2];J[b+108>>2]=e;f=J[c+12>>2];f=J[f+4>>2]-J[f>>2]|0;n=f>>2;u:{if(n>>>0<=J[b+112>>2]-e>>2>>>0){break u}if((f|0)<0){break t}f=oa(f);J[b+108>>2]=f;J[b+104>>2]=f;J[b+112>>2]=f+(n<<2);if(!e){break u}na(e)}b=k+J[c+172>>2]|0;J[b+128>>2]=0;lf(b+4|0,J[c+8>>2],J[c+12>>2],h);g=g+1|0}d=d+1|0;if((i|0)!=(d|0)){continue}break}break r}break c}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[l+31|0]=b;d=J[J[c+4>>2]+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){sa(d,J[d+4>>2],l+31|0,l+32|0);b=K[l+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];g=J[b>>2];b=J[b+4>>2];ig(j);e=0;J[l+24>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;d=0;v:{w:{x:{b=b-g|0;if((b|0)>0){b=b>>>2|0;p=b>>>0<=1?1:b;g=0;while(1){b=(g>>>0)/3|0;s=b>>>5<<2;t=1<<b;y:{if(J[s+J[m>>2]>>2]&t){break y}if(Fc(J[c+12>>2],b)){break y}J[l+8>>2]=0;b=hg(c,b,l+8|0);Ca(j,b);i=J[l+8>>2];if(b){h=-1;f=-1;k=-1;z:{if((i|0)==-1){break z}n=J[J[c+12>>2]>>2];b=n+(i<<2)|0;h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)!=-1){f=J[n+(h<<2)>>2]}h=J[b>>2];A:{if((i>>>0)%3|0){b=i-1|0;break A}b=i+2|0;k=-1;if((b|0)==-1){break z}}k=J[n+(b<<2)>>2]}b=J[c+84>>2];n=b+(h>>>3&536870908)|0;J[n>>2]=J[n>>2]|1<<h;h=b+(f>>>3&536870908)|0;J[h>>2]=J[h>>2]|1<<f;b=b+(k>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<k;b=J[c+100>>2];h=J[c+104>>2];B:{if(b>>>0<h>>>0){J[b>>2]=1;J[c+100>>2]=b+4;break B}k=b;b=J[c+96>>2];k=k-b|0;n=k>>2;f=n+1|0;if(f>>>0>=1073741824){break c}r=n<<2;h=h-b|0;n=h>>>1|0;f=h>>>0>=2147483644?1073741823:f>>>0<n>>>0?n:f;if(f){if(f>>>0>=1073741824){break x}h=oa(f<<2)}else{h=0}n=r+h|0;J[n>>2]=1;r=f<<2;f=ta(h,b,k);J[c+104>>2]=r+f;J[c+100>>2]=n+4;J[c+96>>2]=f;if(!b){break B}na(b)}b=s+J[m>>2]|0;J[b>>2]=t|J[b>>2];h=-1;if((i|0)!=-1){b=i+1|0;h=(b>>>0)%3|0?b:i-2|0}C:{if(e>>>0<o>>>0){J[e>>2]=h;e=e+4|0;J[l+20>>2]=e;break C}f=e-d>>2;b=f+1|0;if(b>>>0>=1073741824){break c}k=o-d|0;o=k>>>1|0;b=k>>>0>=2147483644?1073741823:b>>>0<o>>>0?o:b;if(b){if(b>>>0>=1073741824){break x}k=oa(b<<2)}else{k=0}f=k+(f<<2)|0;J[f>>2]=h;o=k+(b<<2)|0;b=f+4|0;if((d|0)!=(e|0)){while(1){f=f-4|0;e=e-4|0;J[f>>2]=J[e>>2];if((d|0)!=(e|0)){continue}break}}J[l+24>>2]=o;J[l+20>>2]=b;J[l+16>>2]=f;if(d){na(d)}d=f;e=b}if((i|0)==-1){break y}b=i+1|0;b=(b>>>0)%3|0?b:i-2|0;if((b|0)==-1){break y}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break y}f=(b>>>0)/3|0;if(J[J[m>>2]+(f>>>3&268435452)>>2]>>>f&1){break y}if(_f(c,b)){break y}break w}if((i|0)!=-1){b=i+1|0;b=(b>>>0)%3|0?b:i-2|0}else{b=-1}Hc(c,b,1);if(!_f(c,J[l+8>>2])){break w}}g=g+1|0;if((p|0)!=(g|0)){continue}break}}g=J[c+72>>2];b=J[c+76>>2];D:{if((g|0)==(b|0)){break D}f=b-4|0;if(g>>>0>=f>>>0){break D}while(1){i=J[g>>2];J[g>>2]=J[f>>2];J[f>>2]=i;f=f-4|0;g=g+4|0;if(f>>>0>g>>>0){continue}break}}fg(q,b,d,e);E:{if(J[c+172>>2]==J[c+176>>2]){break E}b=J[c+8>>2];e=J[b+100>>2];b=J[b+96>>2];H[l+8|0]=0;Na(m,(e-b|0)/12|0,l+8|0);g=J[c+72>>2];b=J[c+76>>2];if((g|0)==(b|0)){break E}while(1){eg(c,J[g>>2]);g=g+4|0;if((b|0)!=(g|0)){continue}break}}m=0;g=0;b=j+32|0;ya(j,b);if(!(!J[j+80>>2]|J[j+84>>2]<=0)){while(1){ya(J[j+80>>2]+(m<<5)|0,b);m=m+1|0;if((m|0)<J[j+84>>2]){continue}break}}m=J[j+136>>2];if((m|0)!=J[j+140>>2]){while(1){e=P(g,12);f=e+m|0;Aa(J[f+4>>2]-J[f>>2]>>2,b);m=J[j+136>>2];e=e+m|0;f=J[e+4>>2];e=J[e>>2];if((f|0)!=(e|0)){ee(e,f-e>>2,1,0,b);m=J[j+136>>2]}g=g+1|0;if(g>>>0<(J[j+140>>2]-m|0)/12>>>0){continue}break}}Aa(J[c+324>>2],J[J[c+4>>2]+44>>2]);Aa(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!dg(c)){b=oa(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);e=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=e;H[b+17|0]=e>>>8;H[b+18|0]=e>>>16;H[b+19|0]=e>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);e=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);e=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,28);na(b);break v}b=J[J[c+4>>2]+44>>2];e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){sa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break v}xa();B()}b=oa(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);e=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=e;H[b+25|0]=e>>>8;H[b+26|0]=e>>>16;H[b+27|0]=e>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);e=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=e;H[b+17|0]=e>>>8;H[b+18|0]=e>>>16;H[b+19|0]=e>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);e=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);e=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,32);na(b)}if(!d){break d}na(d)}ba=l+32|0;return}qa();B()}function el(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;i=ba-224|0;ba=i;J[a+8>>2]=e;C=a+32|0;h=J[C>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){Fa(C,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;s=f&1;d:{if((d|0)==2){d=g;break d}y=f&-2;d=g;while(1){j=(h<<2)+b|0;f=J[j+4>>2];j=J[j>>2];l=(j|0)<(d|0);d=l?j:d;t=(d|0)>(f|0);d=t?f:d;j=l?g:(g|0)<(j|0)?j:g;g=t?j:(f|0)>(j|0)?f:j;h=h+2|0;k=k+2|0;if((y|0)!=(k|0)){continue}break}}if(!s){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=g-d|0;d=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;if(!d&f>>>0>2147483646|d){break b}d=f+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];z=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=oa(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;pa(f,0,d);J[i+132>>2]=h;d=0}A=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0<e>>>0){Fa(A,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0<f>>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;s=0;if(d){break l}}d=e<<2;q=oa(d);s=pa(q,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}L=e&-2;M=e&1;_=e&-4;S=e&3;N=e-1|0;U=e<<2;O=a+112|0;y=d>>>2|0;Q=s-q|0;D=Q>>2;X=(Q-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{t=y-1|0;if(t>>>0<J[f+4>>2]-d>>2>>>0){f=0;j=0;k=J[d+(t<<2)>>2];p:{if((k|0)==-1){break p}o=1;d=k+2|0;j=(k>>>0)%3|0;u=j?k-1|0:d;E=1<<u;l=J[z>>2];G=l+(u>>>3&536870908)|0;h=0;I=(j|0)!=0|(d|0)!=-1;d=k;while(1){q:{if(J[l+(d>>>3&536870908)>>2]>>>d&1){break q}j=J[J[J[z+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break q}n=J[Z>>2];g=J[z+28>>2];m=J[n+(J[g+(j<<2)>>2]<<2)>>2];if((m|0)>=(t|0)){break q}p=j+1|0;p=J[n+(J[g+(((p>>>0)%3|0?p:j-2|0)<<2)>>2]<<2)>>2];if((p|0)>=(t|0)){break q}g=J[n+(J[g+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(t|0)){break q}r:{if(!e){break r}j=J[(i+144|0)+P(h,12)>>2];n=P(e,g);p=P(e,p);x=P(e,m);g=0;m=0;if(N){while(1){J[j+(g<<2)>>2]=(J[(g+n<<2)+b>>2]+J[(g+p<<2)+b>>2]|0)-J[(g+x<<2)+b>>2];w=g|1;J[j+(w<<2)>>2]=(J[(n+w<<2)+b>>2]+J[(p+w<<2)+b>>2]|0)-J[(x+w<<2)+b>>2];g=g+2|0;m=m+2|0;if((L|0)!=(m|0)){continue}break}}if(!M){break r}J[j+(g<<2)>>2]=(J[(g+n<<2)+b>>2]+J[(g+p<<2)+b>>2]|0)-J[(g+x<<2)+b>>2]}j=4;h=h+1|0;if((h|0)==4){break p}}s:{if(o&1){g=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:g;if((j|0)==-1|J[l+(j>>>3&536870908)>>2]>>>j&1){break s}j=J[J[J[z+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break s}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break s}t:{if((d>>>0)%3|0){g=d-1|0;break t}g=d+2|0;d=-1;if((g|0)==-1){break s}}d=-1;if(J[l+(g>>>3&536870908)>>2]>>>g&1){break s}j=J[J[J[z+64>>2]+12>>2]+(g<<2)>>2];if((j|0)==-1){break s}if((j>>>0)%3|0){d=j-1|0;break s}d=j+2|0}if((d|0)==(k|0)){j=h;break p}if((d|0)==-1&o){if(!I){j=h;break p}if(E&J[G>>2]){j=h;break p}d=J[J[J[z+64>>2]+12>>2]+(u<<2)>>2];if((d|0)==-1){j=h;break p}o=0;d=(d>>>0)%3|0?d-1|0:d+2|0}j=h;if((d|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;I=P(e,t)<<2;x=I+b|0;k=(P(y-2|0,e)<<2)+b|0;l=J[A>>2];d=0;if(e){while(1){g=f<<2;h=J[g+k>>2]-J[g+x>>2]|0;J[g+q>>2]=h;J[g+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=d;d=h>>31;d=g+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Db(f,O,l,e);l=Cb(f);h=J[f+12>>2];f=J[f+16>>2];h=(((h-f|0)+1|0)/64|0)+f<<3;n=f<<3;f=h+n|0;h=(h>>31)+(n>>31)|0;g=ca+(f>>>0<n>>>0?h+1|0:h)|0;h=f;f=f+l|0;h=h>>>0>f>>>0?g+1|0:g;E=(j|0)<=0;if(!E){o=(j<<3)-8|0;g=o+(i+48|0)|0;n=g;l=J[g>>2];g=J[g+4>>2];l=j+l|0;g=l>>>0<j>>>0?g+1|0:g;J[n>>2]=l;J[n+4>>2]=g;v=W(Eb(l,J[o+(i+80|0)>>2])*(+(l>>>0)+ +(g|0)*4294967296));u:{if(R(v)<0x8000000000000000){l=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;g=~~v>>>0;break u}l=-2147483648;g=0}f=f+g|0;h=f}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=f;J[i+12>>2]=d;tc(aa,k,k+U|0);bb($,q,s);v:{w:{x:{if(E){break x}n=(i+124|0)+j|0;l=n-1|0;Y=j<<3;d=Y-8|0;G=d+(i+48|0)|0;da=d+(i+80|0)|0;o=1;w=0;while(1){d=i+124|0;pa(d,1,j);w=w+1|0;pa(d,0,w);y:{z:while(1){if(e){pa(J[i+128>>2],0,U)}m=0;d=J[i+128>>2];u=0;while(1){if(!K[(i+124|0)+m|0]){A:{if(!e){break A}f=J[(i+144|0)+P(m,12)>>2];h=0;g=0;k=0;if(e>>>0>3){while(1){p=g<<2;r=p+d|0;J[r>>2]=J[r>>2]+J[f+p>>2];r=p|4;F=r+d|0;J[F>>2]=J[F>>2]+J[f+r>>2];r=p|8;F=r+d|0;J[F>>2]=J[F>>2]+J[f+r>>2];p=p|12;r=p+d|0;J[r>>2]=J[r>>2]+J[f+p>>2];g=g+4|0;k=k+4|0;if((_|0)!=(k|0)){continue}break}}if(!S){break A}while(1){k=g<<2;p=k+d|0;J[p>>2]=J[p>>2]+J[f+k>>2];g=g+1|0;h=h+1|0;if((S|0)!=(h|0)){continue}break}}u=1<<m|u}m=m+1|0;if((m|0)!=(j|0)){continue}break}f=J[i+128>>2];B:{C:{D:{if(e){g=0;d=0;if(N){break D}break C}k=J[A>>2];h=0;break B}while(1){h=g<<2;k=h+f|0;J[k>>2]=J[k>>2]/(o|0);h=(h|4)+f|0;J[h>>2]=J[h>>2]/(o|0);g=g+2|0;d=d+2|0;if((L|0)!=(d|0)){continue}break}}if(M){d=(g<<2)+f|0;J[d>>2]=J[d>>2]/(o|0)}k=J[A>>2];f=J[i+128>>2];d=0;h=0;if(!e){break B}while(1){m=d<<2;g=J[m+f>>2]-J[m+x>>2]|0;J[m+q>>2]=g;J[k+m>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;m=h;h=g>>31;h=m+((h^g)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=i+200|0;Db(d,O,k,e);k=Cb(d);g=J[d+12>>2];d=J[d+16>>2];g=(((g-d|0)+1|0)/64|0)+d<<3;m=d<<3;d=g+m|0;d=d+k|0;k=J[G+4>>2];g=J[G>>2];v=W(Eb(g,J[da>>2]+o|0)*(+(g>>>0)+ +(k|0)*4294967296));E:{if(R(v)<0x8000000000000000){g=~~v>>>0;break E}g=0}d=g+d|0;g=J[i+8>>2];if(!((d|0)>=(g|0)&((d|0)>(g|0)|(h|0)>=J[i+12>>2]))){J[i+20>>2]=o;H[i+16|0]=u;J[i+8>>2]=d;J[i+12>>2]=h;k=J[i+132>>2];m=k-f|0;g=m>>2;d=J[i+32>>2];h=J[i+24>>2];F:{if(g>>>0<=d-h>>2>>>0){m=J[i+28>>2]-h|0;d=m+f|0;u=m>>2;m=u>>>0<g>>>0?d:k;p=m-f|0;if((f|0)!=(m|0)){ta(h,f,p)}if(g>>>0>u>>>0){g=J[i+28>>2];if((k|0)==(m|0)){break F}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((k|0)!=(d|0)){continue}break}break F}g=h+p|0;break F}if(h){J[i+28>>2]=h;na(h);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((m|0)<0){break w}h=d>>>1|0;d=d>>>0>=2147483644?1073741823:g>>>0<h>>>0?h:g;if(d>>>0>=1073741824){break w}d=d<<2;g=oa(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((f|0)==(k|0)){break F}d=(m-4&-4)+4|0;g=ua(g,f,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];G:{if(d-f>>2>>>0>=D>>>0){h=J[i+40>>2]-f|0;d=h+q|0;k=h>>2;h=k>>>0<D>>>0?d:s;g=h-q|0;if((h|0)!=(q|0)){ta(f,q,g)}if(k>>>0<D>>>0){g=J[i+40>>2];if((h|0)==(s|0)){break G}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((s|0)!=(d|0)){continue}break}break G}g=f+g|0;break G}if(f){J[i+40>>2]=f;na(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((Q|0)<0){break v}f=d>>>1|0;d=d>>>0>=2147483644?1073741823:f>>>0>D>>>0?f:D;if(d>>>0>=1073741824){break v}d=d<<2;g=oa(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((q|0)==(s|0)){break G}g=ua(g,q,X)+X|0}J[i+40>>2]=g}if((l|0)==(i+124|0)){break y}g=K[l|0];d=-1;while(1){k=g&255;f=d-1|0;h=f+n|0;g=K[h|0];if(k>>>0>g>>>0){f=n;while(1){f=f-1|0;k=K[f|0];if(k>>>0<=g>>>0){continue}break}H[h|0]=k;H[f|0]=g;if((d|0)==-1){continue z}g=d+n|0;d=l;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue z}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=l;if(f>>>0>=d>>>0){break y}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}o=o+1|0;if((j|0)!=(w|0)){continue}break}if((j|0)<=0){break x}h=J[i+20>>2];g=h;d=i+Y|0;f=g+J[d+72>>2]|0;h=J[d+76>>2]+(g>>31)|0;J[d+72>>2]=f;J[d+76>>2]=f>>>0<g>>>0?h+1|0:h}if(!e){break n}d=J[A>>2];g=0;f=J[i+36>>2];k=0;if(!N){break o}while(1){l=g<<2;h=J[l+f>>2];J[d+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;l=l|4;h=J[l+f>>2];J[d+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=g+2|0;k=k+2|0;if((L|0)!=(k|0)){continue}break}break o}qa();B()}qa();B()}ra();B()}if(!M){break n}h=g<<2;f=J[h+f>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(i+200|0,O,J[A>>2],e);H:{if(E){break H}g=P(j,12)+a|0;d=0;while(1){I:{k=J[g+56>>2];l=k<<5;f=J[g+52>>2];J:{if(!(K[i+16|0]>>>d&1)){h=f;K:{if((f|0)!=(l|0)){break K}if((f+1|0)<0){break I}L:{if(f>>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;l=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=l>>>0){break K}if((l|0)>=0){break L}break I}l=2147483647;h=-1;if(f>>>0>=2147483647){break K}}l=(l-1>>>5|0)+1|0;h=oa(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;M:{N:{if(!f){break N}n=f>>>5|0;if(f>>>0>=32){ta(h,k,n<<2)}o=f&31;if(!o){break N}n=n<<2;m=n+h|0;o=-1>>>32-o|0;J[m>>2]=J[m>>2]&(o^-1)|o&J[k+n>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;break M}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break K}}na(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<<h;break J}h=f;O:{if((f|0)!=(l|0)){break O}if((f+1|0)<0){break I}P:{if(f>>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;l=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=l>>>0){break O}if((l|0)<0){break I}break P}l=2147483647;h=-1;if(f>>>0>=2147483647){break O}}l=(l-1>>>5|0)+1|0;h=oa(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;Q:{R:{if(!f){break R}n=f>>>5|0;if(f>>>0>=32){ta(h,k,n<<2)}o=f&31;if(!o){break R}n=n<<2;m=n+h|0;o=-1>>>32-o|0;J[m>>2]=J[m>>2]&(o^-1)|o&J[k+n>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;break Q}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break O}}na(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;k=J[f>>2];ea=f,fa=Ll(h)&k,J[ea>>2]=fa}d=d+1|0;if((j|0)!=(d|0)){continue}break H}break}qa();B()}g=J[a+8>>2];if((g|0)>0){n=c+I|0;d=J[C>>2];l=0;k=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){f=g<<2;j=J[f+k>>2];o=J[a+16>>2];S:{if((j|0)>(o|0)){J[f+h>>2]=o;break S}f=f+h|0;o=J[a+12>>2];if((o|0)>(j|0)){J[f>>2]=o;break S}J[f>>2]=j}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}j=l<<2;f=j+n|0;j=J[j+x>>2]-J[h+j>>2]|0;J[f>>2]=j;T:{if((j|0)<J[a+28>>2]){g=j+J[a+20>>2]|0}else{if((j|0)<=J[a+24>>2]){break T}g=j-J[a+20>>2]|0}J[f>>2]=g}k=h;g=J[a+8>>2];l=l+1|0;if((g|0)>(l|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;na(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;na(d)}d=(y|0)>2;y=t;if(d){continue}break}break h}qa();B()}if((e|0)>0){pa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];l=0;k=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){e=g<<2;f=J[e+k>>2];j=J[a+16>>2];U:{if((f|0)>(j|0)){J[e+h>>2]=j;break U}e=e+h|0;j=J[a+12>>2];if((j|0)>(f|0)){J[e>>2]=j;break U}J[e>>2]=f}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}f=l<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;V:{if((f|0)<J[a+28>>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break V}f=f-J[a+20>>2]|0}J[e>>2]=f}k=h;g=J[a+8>>2];l=l+1|0;if((g|0)>(l|0)){continue}break}}if(q){na(q)}a=J[i+128>>2];if(a){J[i+132>>2]=a;na(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;na(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;na(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;na(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;na(a)}ba=i+224|0;return 1}function Wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;i=ba-224|0;ba=i;J[a+8>>2]=e;z=a+32|0;h=J[z>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){Fa(z,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;w=f&1;d:{if((d|0)==2){d=g;break d}u=f&-2;d=g;while(1){j=(h<<2)+b|0;f=J[j+4>>2];j=J[j>>2];l=(j|0)<(d|0);d=l?j:d;m=(d|0)>(f|0);d=m?f:d;j=l?g:(g|0)<(j|0)?j:g;g=m?j:(f|0)>(j|0)?f:j;h=h+2|0;k=k+2|0;if((u|0)!=(k|0)){continue}break}}if(!w){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=g-d|0;d=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;if(!d&f>>>0>2147483646|d){break b}d=f+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];N=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=oa(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;pa(f,0,d);J[i+132>>2]=h;d=0}x=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0<e>>>0){Fa(x,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0<f>>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;u=0;if(d){break l}}d=e<<2;r=oa(d);u=pa(r,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}F=e&-2;G=e&1;_=e&-4;O=e&3;I=e-1|0;Q=e<<2;L=a+112|0;E=d>>>2|0;M=u-r|0;A=M>>2;S=(M-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{w=E-1|0;if(w>>>0<J[f+4>>2]-d>>2>>>0){f=0;l=0;d=J[d+(w<<2)>>2];p:{if((d|0)==-1){break p}m=J[N+12>>2];h=d+2|0;l=(d>>>0)%3|0;y=m+((l?d-1|0:h)<<2)|0;j=0;C=(l|0)!=0|(h|0)!=-1;q=1;h=d;while(1){l=J[m+(h<<2)>>2];q:{if((l|0)==-1){break q}k=-1;p=J[Z>>2];n=J[N>>2];g=p+(J[n+(l<<2)>>2]<<2)|0;o=l+1|0;o=(o>>>0)%3|0?o:l-2|0;if((o|0)!=-1){k=J[n+(o<<2)>>2]}o=J[g>>2];r:{s:{if((l>>>0)%3|0){g=l-1|0;break s}g=l+2|0;s=-1;if((g|0)==-1){break r}}s=J[n+(g<<2)>>2]}if((o|0)>=(w|0)){break q}g=J[p+(k<<2)>>2];if((g|0)>=(w|0)){break q}k=J[p+(s<<2)>>2];if((k|0)>=(w|0)){break q}l=J[(i+144|0)+P(j,12)>>2];t:{if(!e){break t}k=P(e,k);n=P(e,g);o=P(e,o);g=0;p=0;if(I){while(1){J[l+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+o<<2)+b>>2];s=g|1;J[l+(s<<2)>>2]=(J[(k+s<<2)+b>>2]+J[(n+s<<2)+b>>2]|0)-J[(o+s<<2)+b>>2];g=g+2|0;p=p+2|0;if((F|0)!=(p|0)){continue}break}}if(!G){break t}J[l+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+o<<2)+b>>2]}l=4;j=j+1|0;if((j|0)==4){break p}}u:{if(q&1){g=h+1|0;h=(g>>>0)%3|0?g:h-2|0;l=-1;if((h|0)==-1){break u}h=J[m+(h<<2)>>2];l=-1;if((h|0)==-1){break u}l=h+1|0;l=(l>>>0)%3|0?l:h-2|0;break u}v:{if((h>>>0)%3|0){g=h-1|0;break v}g=h+2|0;l=-1;if((g|0)==-1){break u}}h=J[m+(g<<2)>>2];l=-1;if((h|0)==-1){break u}l=h-1|0;if((h>>>0)%3|0){break u}l=h+2|0}h=l;if((d|0)==(h|0)){l=j;break p}if((h|0)==-1&q){if(!C){l=j;break p}h=J[y>>2];if((h|0)==-1){l=j;break p}q=0;h=(h>>>0)%3|0?h-1|0:h+2|0}l=j;if((h|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;U=P(e,w)<<2;s=U+b|0;k=(P(E-2|0,e)<<2)+b|0;g=J[x>>2];d=0;if(e){while(1){j=f<<2;h=J[j+k>>2]-J[j+s>>2]|0;J[j+r>>2]=h;J[g+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=d;d=h>>31;d=j+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Db(f,L,g,e);j=Cb(f);h=J[f+12>>2];f=J[f+16>>2];h=(((h-f|0)+1|0)/64|0)+f<<3;m=f<<3;f=h+m|0;h=(h>>31)+(m>>31)|0;g=ca+(f>>>0<m>>>0?h+1|0:h)|0;h=f;f=f+j|0;h=h>>>0>f>>>0?g+1|0:g;C=(l|0)<=0;if(!C){n=(l<<3)-8|0;j=n+(i+48|0)|0;m=j;g=J[j>>2];j=J[j+4>>2];g=g+l|0;j=g>>>0<l>>>0?j+1|0:j;J[m>>2]=g;J[m+4>>2]=j;v=W(Eb(g,J[n+(i+80|0)>>2])*(+(g>>>0)+ +(j|0)*4294967296));w:{if(R(v)<0x8000000000000000){g=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;j=~~v>>>0;break w}g=-2147483648;j=0}f=f+j|0;h=f}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=f;J[i+12>>2]=d;tc(aa,k,k+Q|0);bb($,r,u);x:{y:{z:{if(C){break z}n=(i+124|0)+l|0;m=n-1|0;X=l<<3;d=X-8|0;Y=d+(i+48|0)|0;da=d+(i+80|0)|0;q=1;y=0;while(1){d=i+124|0;pa(d,1,l);y=y+1|0;pa(d,0,y);A:{B:while(1){if(e){pa(J[i+128>>2],0,Q)}p=0;d=J[i+128>>2];j=0;while(1){if(!K[(i+124|0)+p|0]){C:{if(!e){break C}f=J[(i+144|0)+P(p,12)>>2];h=0;g=0;k=0;if(e>>>0>3){while(1){o=g<<2;t=o+d|0;J[t>>2]=J[t>>2]+J[f+o>>2];t=o|4;D=t+d|0;J[D>>2]=J[D>>2]+J[f+t>>2];t=o|8;D=t+d|0;J[D>>2]=J[D>>2]+J[f+t>>2];o=o|12;t=o+d|0;J[t>>2]=J[t>>2]+J[f+o>>2];g=g+4|0;k=k+4|0;if((_|0)!=(k|0)){continue}break}}if(!O){break C}while(1){k=g<<2;o=k+d|0;J[o>>2]=J[o>>2]+J[f+k>>2];g=g+1|0;h=h+1|0;if((O|0)!=(h|0)){continue}break}}j=1<<p|j}p=p+1|0;if((p|0)!=(l|0)){continue}break}f=J[i+128>>2];D:{E:{F:{if(e){g=0;d=0;if(I){break F}break E}k=J[x>>2];h=0;break D}while(1){h=g<<2;k=h+f|0;J[k>>2]=J[k>>2]/(q|0);h=(h|4)+f|0;J[h>>2]=J[h>>2]/(q|0);g=g+2|0;d=d+2|0;if((F|0)!=(d|0)){continue}break}}if(G){d=(g<<2)+f|0;J[d>>2]=J[d>>2]/(q|0)}k=J[x>>2];f=J[i+128>>2];d=0;h=0;if(!e){break D}while(1){p=d<<2;g=J[p+f>>2]-J[p+s>>2]|0;J[p+r>>2]=g;J[k+p>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;o=h;h=g>>31;h=o+((h^g)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=i+200|0;Db(d,L,k,e);k=Cb(d);g=J[d+12>>2];d=J[d+16>>2];g=(((g-d|0)+1|0)/64|0)+d<<3;p=d<<3;d=g+p|0;d=d+k|0;k=J[Y+4>>2];g=J[Y>>2];v=W(Eb(g,J[da>>2]+q|0)*(+(g>>>0)+ +(k|0)*4294967296));G:{if(R(v)<0x8000000000000000){g=~~v>>>0;break G}g=0}d=g+d|0;g=J[i+8>>2];if(!((d|0)>=(g|0)&((d|0)>(g|0)|(h|0)>=J[i+12>>2]))){J[i+20>>2]=q;H[i+16|0]=j;J[i+8>>2]=d;J[i+12>>2]=h;j=J[i+132>>2];k=j-f|0;g=k>>2;d=J[i+32>>2];h=J[i+24>>2];H:{if(g>>>0<=d-h>>2>>>0){k=J[i+28>>2]-h|0;d=k+f|0;o=k>>2;k=o>>>0<g>>>0?d:j;p=k-f|0;if((f|0)!=(k|0)){ta(h,f,p)}if(g>>>0>o>>>0){g=J[i+28>>2];if((j|0)==(k|0)){break H}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}break H}g=h+p|0;break H}if(h){J[i+28>>2]=h;na(h);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((k|0)<0){break y}h=d>>>1|0;d=d>>>0>=2147483644?1073741823:g>>>0<h>>>0?h:g;if(d>>>0>=1073741824){break y}d=d<<2;g=oa(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((f|0)==(j|0)){break H}d=(k-4&-4)+4|0;g=ua(g,f,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];I:{if(d-f>>2>>>0>=A>>>0){h=J[i+40>>2]-f|0;d=h+r|0;g=h>>2;h=g>>>0<A>>>0?d:u;j=h-r|0;if((h|0)!=(r|0)){ta(f,r,j)}if(g>>>0<A>>>0){g=J[i+40>>2];if((h|0)==(u|0)){break I}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((u|0)!=(d|0)){continue}break}break I}g=f+j|0;break I}if(f){J[i+40>>2]=f;na(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((M|0)<0){break x}f=d>>>1|0;d=d>>>0>=2147483644?1073741823:f>>>0>A>>>0?f:A;if(d>>>0>=1073741824){break x}d=d<<2;g=oa(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((r|0)==(u|0)){break I}g=ua(g,r,S)+S|0}J[i+40>>2]=g}if((m|0)==(i+124|0)){break A}g=K[m|0];d=-1;while(1){j=g&255;f=d-1|0;h=f+n|0;g=K[h|0];if(j>>>0>g>>>0){f=n;while(1){f=f-1|0;j=K[f|0];if(j>>>0<=g>>>0){continue}break}H[h|0]=j;H[f|0]=g;if((d|0)==-1){continue B}g=d+n|0;d=m;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue B}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=m;if(f>>>0>=d>>>0){break A}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}q=q+1|0;if((l|0)!=(y|0)){continue}break}if((l|0)<=0){break z}h=J[i+20>>2];j=h;d=i+X|0;f=h+J[d+72>>2]|0;h=J[d+76>>2]+(h>>31)|0;J[d+72>>2]=f;J[d+76>>2]=f>>>0<j>>>0?h+1|0:h}if(!e){break n}d=J[x>>2];g=0;f=J[i+36>>2];k=0;if(!I){break o}while(1){j=g<<2;h=J[j+f>>2];J[d+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=j|4;h=J[j+f>>2];J[d+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=g+2|0;k=k+2|0;if((F|0)!=(k|0)){continue}break}break o}qa();B()}qa();B()}ra();B()}if(!G){break n}h=g<<2;f=J[h+f>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(i+200|0,L,J[x>>2],e);J:{if(C){break J}g=P(l,12)+a|0;d=0;while(1){K:{j=J[g+56>>2];k=j<<5;f=J[g+52>>2];L:{if(!(K[i+16|0]>>>d&1)){h=f;M:{if((f|0)!=(k|0)){break M}if((f+1|0)<0){break K}N:{if(f>>>0<=1073741822){j=j<<6;k=(f&-32)+32|0;j=j>>>0>k>>>0?j:k;h=f;if(f>>>0>=j>>>0){break M}if((j|0)>=0){break N}break K}j=2147483647;h=-1;if(f>>>0>=2147483647){break M}}k=(j-1>>>5|0)+1|0;h=oa(k<<2);j=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;O:{P:{if(!f){break P}m=f>>>5|0;if(f>>>0>=32){ta(h,j,m<<2)}n=f&31;if(!n){break P}m=m<<2;q=m+h|0;n=-1>>>32-n|0;J[q>>2]=J[q>>2]&(n^-1)|n&J[j+m>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;break O}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;h=f;if(!j){break M}}na(j);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<<h;break L}h=f;Q:{if((f|0)!=(k|0)){break Q}if((f+1|0)<0){break K}R:{if(f>>>0<=1073741822){j=j<<6;k=(f&-32)+32|0;j=j>>>0>k>>>0?j:k;h=f;if(f>>>0>=j>>>0){break Q}if((j|0)<0){break K}break R}j=2147483647;h=-1;if(f>>>0>=2147483647){break Q}}k=(j-1>>>5|0)+1|0;h=oa(k<<2);j=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;S:{T:{if(!f){break T}m=f>>>5|0;if(f>>>0>=32){ta(h,j,m<<2)}n=f&31;if(!n){break T}m=m<<2;q=m+h|0;n=-1>>>32-n|0;J[q>>2]=J[q>>2]&(n^-1)|n&J[j+m>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;break S}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;h=f;if(!j){break Q}}na(j);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;j=J[f>>2];ea=f,fa=Ll(h)&j,J[ea>>2]=fa}d=d+1|0;if((l|0)!=(d|0)){continue}break J}break}qa();B()}g=J[a+8>>2];if((g|0)>0){m=c+U|0;d=J[z>>2];j=0;k=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[z>>2];g=0;while(1){f=g<<2;l=J[f+k>>2];n=J[a+16>>2];U:{if((l|0)>(n|0)){J[f+h>>2]=n;break U}f=f+h|0;n=J[a+12>>2];if((n|0)>(l|0)){J[f>>2]=n;break U}J[f>>2]=l}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}l=j<<2;f=l+m|0;l=J[l+s>>2]-J[h+l>>2]|0;J[f>>2]=l;V:{if((l|0)<J[a+28>>2]){g=l+J[a+20>>2]|0}else{if((l|0)<=J[a+24>>2]){break V}g=l-J[a+20>>2]|0}J[f>>2]=g}k=h;g=J[a+8>>2];j=j+1|0;if((g|0)>(j|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;na(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;na(d)}d=(E|0)>2;E=w;if(d){continue}break}break h}qa();B()}if((e|0)>0){pa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];j=0;k=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[z>>2];g=0;while(1){e=g<<2;f=J[e+k>>2];l=J[a+16>>2];W:{if((f|0)>(l|0)){J[e+h>>2]=l;break W}e=e+h|0;l=J[a+12>>2];if((l|0)>(f|0)){J[e>>2]=l;break W}J[e>>2]=f}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}f=j<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;X:{if((f|0)<J[a+28>>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break X}f=f-J[a+20>>2]|0}J[e>>2]=f}k=h;g=J[a+8>>2];j=j+1|0;if((g|0)>(j|0)){continue}break}}if(r){na(r)}a=J[i+128>>2];if(a){J[i+132>>2]=a;na(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;na(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;na(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;na(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;na(a)}ba=i+224|0;return 1}function Fk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;g=ba-240|0;ba=g;Z=J[a+36>>2];C=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);i=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-i>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+i;break a}Fa(g+144|12,e-d|0)}d=J[g+168>>2];f=J[g+172>>2]-d>>2;b:{if(f>>>0>=e>>>0){if(e>>>0>=f>>>0){break b}J[g+172>>2]=d+(e<<2);break b}Fa(g+168|0,e-f|0)}c:{d:{d=J[g+180>>2];f=J[g+184>>2]-d>>2;e:{f:{if(f>>>0>=e>>>0){if(e>>>0<f>>>0){J[g+184>>2]=d+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-f|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}j=e<<2;f=oa(j);J[g+128>>2]=f;d=f+j|0;J[g+136>>2]=d;pa(f,0,j);J[g+132>>2]=d;d=0}D=a+136|0;f=J[a+136>>2];j=J[a+140>>2]-f>>2;g:{h:{if(j>>>0<e>>>0){Fa(D,e-j|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0<j>>>0){J[a+140>>2]=f+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;f=0;if(d){break g}}d=e<<2;t=oa(d);f=pa(t,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}M=e&-2;N=e&1;_=e&-4;U=e&3;O=e-1|0;X=e<<2;$=a+8|0;Q=a+96|0;G=d>>>2|0;E=f;S=f-t|0;F=S>>2;Y=(S-4&-4)+4|0;aa=g+36|0;da=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{z=G-1|0;if(z>>>0<J[d+4>>2]-f>>2>>>0){d=0;j=0;l=J[f+(z<<2)>>2];k:{if((l|0)==-1){break k}u=1;h=l+2|0;j=(l>>>0)%3|0;A=j?l-1|0:h;r=1<<A;s=J[C>>2];q=s+(A>>>3&536870908)|0;f=0;n=(j|0)!=0|(h|0)!=-1;h=l;while(1){l:{if(J[s+(h>>>3&536870908)>>2]>>>h&1){break l}o=J[J[J[C+64>>2]+12>>2]+(h<<2)>>2];if((o|0)==-1){break l}w=J[Z>>2];x=J[C+28>>2];k=J[w+(J[x+(o<<2)>>2]<<2)>>2];if((k|0)>=(z|0)){break l}j=o+1|0;m=J[w+(J[x+(((j>>>0)%3|0?j:o-2|0)<<2)>>2]<<2)>>2];if((m|0)>=(z|0)){break l}j=J[w+(J[x+(o+((o>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((j|0)>=(z|0)){break l}m:{if(!e){break m}o=J[(g+144|0)+P(f,12)>>2];x=P(e,j);w=P(e,m);m=P(e,k);i=0;p=0;if(O){while(1){J[o+(i<<2)>>2]=(J[(i+x<<2)+b>>2]+J[(i+w<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];j=i|1;J[o+(j<<2)>>2]=(J[(j+x<<2)+b>>2]+J[(j+w<<2)+b>>2]|0)-J[(j+m<<2)+b>>2];i=i+2|0;p=p+2|0;if((M|0)!=(p|0)){continue}break}}if(!N){break m}J[o+(i<<2)>>2]=(J[(i+x<<2)+b>>2]+J[(i+w<<2)+b>>2]|0)-J[(i+m<<2)+b>>2]}j=4;f=f+1|0;if((f|0)==4){break k}}n:{if(u&1){j=h-2|0;m=h+1|0;h=-1;j=(m>>>0)%3|0?m:j;if((j|0)==-1|J[s+(j>>>3&536870908)>>2]>>>j&1){break n}m=J[J[J[C+64>>2]+12>>2]+(j<<2)>>2];if((m|0)==-1){break n}j=m+1|0;h=(j>>>0)%3|0?j:m-2|0;break n}o:{if((h>>>0)%3|0){i=h-1|0;break o}i=h+2|0;h=-1;if((i|0)==-1){break n}}h=-1;if(J[s+(i>>>3&536870908)>>2]>>>i&1){break n}j=J[J[J[C+64>>2]+12>>2]+(i<<2)>>2];if((j|0)==-1){break n}if((j>>>0)%3|0){h=j-1|0;break n}h=j+2|0}if((h|0)==(l|0)){j=f;break k}if((h|0)==-1&u){if(!n){j=f;break k}if(r&J[q>>2]){j=f;break k}j=J[J[J[C+64>>2]+12>>2]+(A<<2)>>2];if((j|0)==-1){j=f;break k}u=0;h=(j>>>0)%3|0?j-1|0:j+2|0}j=f;if((h|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;w=P(e,z)<<2;I=w+b|0;q=(P(G-2|0,e)<<2)+b|0;l=J[D>>2];h=0;if(e){while(1){f=d<<2;m=J[f+q>>2]-J[f+I>>2]|0;J[f+t>>2]=m;J[f+l>>2]=(m|0)<0?(m^-1)<<1|1:m<<1;f=m>>31;h=((f^m)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Db(d,Q,l,e);m=Cb(d);f=J[d+12>>2];d=J[d+16>>2];f=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;n=f+d|0;f=(f>>31)+(d>>31)|0;k=ca+(d>>>0>n>>>0?f+1|0:f)|0;f=m+n|0;d=f>>>0<n>>>0?k+1|0:k;A=(j|0)<=0;if(!A){k=(j<<3)-8|0;l=k+(g+48|0)|0;n=l;m=J[l>>2];l=J[l+4>>2];m=j+m|0;l=m>>>0<j>>>0?l+1|0:l;J[n>>2]=m;J[n+4>>2]=l;y=W(Eb(m,J[k+(g+80|0)>>2])*(+(m>>>0)+ +(l|0)*4294967296));p:{if(R(y)<0x8000000000000000){m=~~y>>>0;l=R(y)>=1?~~(y>0?T(V(y*2.3283064365386963e-10),4294967295):W((y-+(~~y>>>0>>>0))*2.3283064365386963e-10))>>>0:0;break p}m=0;l=-2147483648}f=f+m|0;d=f}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=f;J[g+12>>2]=h;tc(da,q,q+X|0);bb(aa,t,E);q:{r:{s:{if(A){break s}m=(g+124|0)+j|0;l=m-1|0;r=j<<3;d=r-8|0;x=d+(g+48|0)|0;q=d+(g+80|0)|0;u=1;L=0;while(1){d=g+124|0;pa(d,1,j);L=L+1|0;pa(d,0,L);t:{u:while(1){if(e){pa(J[g+128>>2],0,X)}p=0;o=J[g+128>>2];s=0;while(1){if(!K[(g+124|0)+p|0]){v:{if(!e){break v}n=J[(g+144|0)+P(p,12)>>2];f=0;i=0;v=0;if(e>>>0>3){while(1){k=i<<2;d=k+o|0;J[d>>2]=J[d>>2]+J[k+n>>2];h=k|4;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];h=k|8;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];h=k|12;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];i=i+4|0;v=v+4|0;if((_|0)!=(v|0)){continue}break}}if(!U){break v}while(1){h=i<<2;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];i=i+1|0;f=f+1|0;if((U|0)!=(f|0)){continue}break}}s=1<<p|s}p=p+1|0;if((p|0)!=(j|0)){continue}break}d=J[g+128>>2];w:{x:{y:{if(e){i=0;h=0;if(O){break y}break x}v=J[D>>2];f=0;break w}while(1){k=i<<2;f=k+d|0;J[f>>2]=J[f>>2]/(u|0);f=(k|4)+d|0;J[f>>2]=J[f>>2]/(u|0);i=i+2|0;h=h+2|0;if((M|0)!=(h|0)){continue}break}}if(N){d=(i<<2)+d|0;J[d>>2]=J[d>>2]/(u|0)}v=J[D>>2];d=J[g+128>>2];h=0;f=0;if(!e){break w}while(1){k=h<<2;n=J[k+d>>2]-J[k+I>>2]|0;J[k+t>>2]=n;J[k+v>>2]=(n|0)<0?(n^-1)<<1|1:n<<1;i=f;f=n>>31;f=i+((f^n)-f|0)|0;h=h+1|0;if((h|0)!=(e|0)){continue}break}}h=g+200|0;Db(h,Q,v,e);n=Cb(h);i=J[h+12>>2];h=J[h+16>>2];k=(((i-h|0)+1|0)/64|0)+h<<3;h=h<<3;o=k+h|0;h=n+o|0;k=J[x+4>>2];n=J[x>>2];y=W(Eb(n,J[q>>2]+u|0)*(+(n>>>0)+ +(k|0)*4294967296));z:{if(R(y)<0x8000000000000000){i=~~y>>>0;break z}i=0}k=i+h|0;h=J[g+8>>2];if(!((k|0)>=(h|0)&((h|0)<(k|0)|(f|0)>=J[g+12>>2]))){J[g+20>>2]=u;H[g+16|0]=s;J[g+8>>2]=k;J[g+12>>2]=f;s=J[g+132>>2];k=s-d|0;o=k>>2;h=J[g+32>>2];p=J[g+24>>2];A:{if(o>>>0<=h-p>>2>>>0){f=J[g+28>>2]-p|0;h=f+d|0;f=f>>2;n=f>>>0<o>>>0?h:s;k=n-d|0;if((d|0)!=(n|0)){ta(p,d,k)}if(f>>>0<o>>>0){i=J[g+28>>2];if((n|0)==(s|0)){break A}while(1){J[i>>2]=J[h>>2];i=i+4|0;h=h+4|0;if((s|0)!=(h|0)){continue}break}break A}i=k+p|0;break A}if(p){J[g+28>>2]=p;na(p);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;h=0}if((k|0)<0){break r}f=h>>>1|0;f=h>>>0>=2147483644?1073741823:f>>>0>o>>>0?f:o;if(f>>>0>=1073741824){break r}f=f<<2;i=oa(f);J[g+24>>2]=i;J[g+32>>2]=f+i;if((d|0)==(s|0)){break A}f=d;d=(k-4&-4)+4|0;i=ua(i,f,d)+d|0}J[g+28>>2]=i;h=J[g+44>>2];n=J[g+36>>2];B:{if(h-n>>2>>>0>=F>>>0){d=J[g+40>>2]-n|0;h=d+t|0;d=d>>2;k=d>>>0<F>>>0?h:E;f=k-t|0;if((k|0)!=(t|0)){ta(n,t,f)}if(d>>>0<F>>>0){i=J[g+40>>2];if((k|0)==(E|0)){break B}while(1){J[i>>2]=J[h>>2];i=i+4|0;h=h+4|0;if((E|0)!=(h|0)){continue}break}break B}i=f+n|0;break B}if(n){J[g+40>>2]=n;na(n);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;h=0}if((S|0)<0){break q}d=h>>>1|0;d=h>>>0>=2147483644?1073741823:d>>>0>F>>>0?d:F;if(d>>>0>=1073741824){break q}d=d<<2;i=oa(d);J[g+36>>2]=i;J[g+44>>2]=d+i;if((t|0)==(E|0)){break B}i=ua(i,t,Y)+Y|0}J[g+40>>2]=i}if((l|0)==(g+124|0)){break t}i=K[l|0];h=-1;while(1){f=i&255;d=h-1|0;k=d+m|0;i=K[k|0];if(f>>>0>i>>>0){d=m;while(1){d=d-1|0;f=K[d|0];if(f>>>0<=i>>>0){continue}break}H[k|0]=f;H[d|0]=i;if((h|0)==-1){continue u}i=h+m|0;h=l;while(1){d=K[i|0];H[i|0]=K[h|0];H[h|0]=d;i=i+1|0;h=h-1|0;if(i>>>0<h>>>0){continue}break}continue u}h=d;if((k|0)!=(g+124|0)){continue}break}break}d=g+124|0;i=d;h=l;if(d>>>0>=h>>>0){break t}while(1){d=K[i|0];H[i|0]=K[h|0];H[h|0]=d;i=i+1|0;h=h-1|0;if(i>>>0<h>>>0){continue}break}}u=u+1|0;if((j|0)!=(L|0)){continue}break}if((j|0)<=0){break s}d=J[g+20>>2];f=d;l=g+r|0;h=d+J[l+72>>2]|0;d=J[l+76>>2]+(d>>31)|0;J[l+72>>2]=h;J[l+76>>2]=f>>>0>h>>>0?d+1|0:d}if(!e){break i}l=J[D>>2];i=0;h=J[g+36>>2];v=0;if(!O){break j}while(1){d=i<<2;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;d=d|4;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=i+2|0;v=v+2|0;if((M|0)!=(v|0)){continue}break}break j}qa();B()}qa();B()}ra();B()}if(!N){break i}d=i<<2;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(g+200|0,Q,J[D>>2],e);C:{if(A){break C}l=P(j,12)+a|0;h=0;while(1){D:{k=J[l+40>>2];m=k<<5;d=J[l+36>>2];E:{if(!(K[g+16|0]>>>h&1)){f=d;F:{if((d|0)!=(m|0)){break F}if((d+1|0)<0){break D}G:{if(d>>>0<=1073741822){k=k<<6;m=(d&-32)+32|0;i=k>>>0>m>>>0?k:m;f=d;if(d>>>0>=i>>>0){break F}if((i|0)>=0){break G}break D}i=2147483647;f=-1;if(d>>>0>=2147483647){break F}}n=(i-1>>>5|0)+1|0;r=oa(n<<2);q=J[l+32>>2];J[r+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;H:{I:{if(!d){break I}f=d>>>5|0;if(d>>>0>=32){ta(r,q,f<<2)}k=d&31;if(!k){break I}m=f<<2;f=m+r|0;i=f;o=J[f>>2];f=-1>>>32-k|0;J[i>>2]=o&(f^-1)|f&J[m+q>>2];J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;break H}J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;f=d;if(!q){break F}}na(q);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<<f;break E}f=d;J:{if((d|0)!=(m|0)){break J}if((d+1|0)<0){break D}K:{if(d>>>0<=1073741822){k=k<<6;m=(d&-32)+32|0;i=k>>>0>m>>>0?k:m;f=d;if(d>>>0>=i>>>0){break J}if((i|0)<0){break D}break K}i=2147483647;f=-1;if(d>>>0>=2147483647){break J}}n=(i-1>>>5|0)+1|0;r=oa(n<<2);q=J[l+32>>2];J[r+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;L:{M:{if(!d){break M}f=d>>>5|0;if(d>>>0>=32){ta(r,q,f<<2)}k=d&31;if(!k){break M}m=f<<2;f=m+r|0;i=f;o=J[f>>2];f=-1>>>32-k|0;J[i>>2]=o&(f^-1)|f&J[m+q>>2];J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;break L}J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;f=d;if(!q){break J}}na(q);f=J[l+36>>2]}J[l+36>>2]=f+1;m=J[l+32>>2]+(f>>>3&536870908)|0;d=J[m>>2];ea=m,fa=Ll(f)&d,J[ea>>2]=fa}h=h+1|0;if((j|0)!=(h|0)){continue}break C}break}qa();B()}d=J[g+24>>2];j=J[d>>2];f=J[d+4>>2];d=J[I+4>>2];J[g+232>>2]=J[I>>2];J[g+236>>2]=d;J[g+224>>2]=j;J[g+228>>2]=f;Ya(g+200|0,$,g+232|0,g+224|0);d=c+w|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;na(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;na(d)}d=(G|0)>2;G=z;if(d){continue}break}break c}qa();B()}d=J[g+144>>2];if((e|0)>0){pa(d,0,e<<2)}f=J[d>>2];e=J[d+4>>2];d=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=d;J[g+232>>2]=f;J[g+236>>2]=e;Ya(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(t){na(t)}a=J[g+128>>2];if(a){J[g+132>>2]=a;na(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;na(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;na(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;na(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;na(a)}ba=g+240|0;return 1}function tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;g=ba-240|0;ba=g;Y=J[a+36>>2];M=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);h=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+h;break a}Fa(g+144|12,e-d|0)}f=J[g+168>>2];d=J[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}J[g+172>>2]=f+(e<<2);break b}Fa(g+168|0,e-d|0)}c:{d:{f=J[g+180>>2];d=J[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[g+184>>2]=f+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-d|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=oa(d);J[g+128>>2]=f;i=d+f|0;J[g+136>>2]=i;pa(f,0,d);J[g+132>>2]=i;d=0}x=a+136|0;i=J[a+136>>2];f=J[a+140>>2]-i>>2;g:{h:{if(f>>>0<e>>>0){Fa(x,e-f|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0<f>>>0){J[a+140>>2]=i+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;v=0;if(d){break g}}d=e<<2;r=oa(d);v=pa(r,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}E=e&-2;F=e&1;Z=e&-4;N=e&3;G=e-1|0;O=e<<2;_=a+8|0;I=a+96|0;D=d>>>2|0;L=v-r|0;z=L>>2;Q=(L-4&-4)+4|0;$=g+36|0;aa=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{w=D-1|0;if(w>>>0<J[d+4>>2]-f>>2>>>0){d=0;k=0;l=J[f+(w<<2)>>2];k:{if((l|0)==-1){break k}j=J[M+12>>2];i=l+2|0;k=(l>>>0)%3|0;y=j+((k?l-1|0:i)<<2)|0;f=0;A=(k|0)!=0|(i|0)!=-1;p=1;i=l;while(1){k=J[j+(i<<2)>>2];l:{if((k|0)==-1){break l}m=J[Y>>2];n=J[M>>2];s=J[m+(J[n+(k<<2)>>2]<<2)>>2];h=k+1|0;h=(h>>>0)%3|0?h:k-2|0;if((h|0)!=-1){o=J[n+(h<<2)>>2]}else{o=-1}m:{n:{if((k>>>0)%3|0){h=k-1|0;break n}h=k+2|0;q=-1;if((h|0)==-1){break m}}q=J[n+(h<<2)>>2]}if((s|0)>=(w|0)){break l}h=J[(o<<2)+m>>2];if((h|0)>=(w|0)){break l}n=J[m+(q<<2)>>2];if((n|0)>=(w|0)){break l}k=J[(g+144|0)+P(f,12)>>2];o:{if(!e){break o}n=P(e,n);o=P(e,h);s=P(e,s);h=0;m=0;if(G){while(1){J[k+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2];q=h|1;J[k+(q<<2)>>2]=(J[(n+q<<2)+b>>2]+J[(o+q<<2)+b>>2]|0)-J[(q+s<<2)+b>>2];h=h+2|0;m=m+2|0;if((E|0)!=(m|0)){continue}break}}if(!F){break o}J[k+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2]}k=4;f=f+1|0;if((f|0)==4){break k}}p:{if(p&1){h=i+1|0;i=(h>>>0)%3|0?h:i-2|0;k=-1;if((i|0)==-1){break p}i=J[j+(i<<2)>>2];k=-1;if((i|0)==-1){break p}k=i+1|0;k=(k>>>0)%3|0?k:i-2|0;break p}q:{if((i>>>0)%3|0){h=i-1|0;break q}h=i+2|0;k=-1;if((h|0)==-1){break p}}i=J[j+(h<<2)>>2];k=-1;if((i|0)==-1){break p}k=i-1|0;if((i>>>0)%3|0){break p}k=i+2|0}i=k;if((l|0)==(i|0)){k=f;break k}if((i|0)==-1&p){if(!A){k=f;break k}i=J[y>>2];if((i|0)==-1){k=f;break k}p=0;i=(i>>>0)%3|0?i-1|0:i+2|0}k=f;if((i|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;S=P(e,w)<<2;s=S+b|0;l=(P(D-2|0,e)<<2)+b|0;j=J[x>>2];h=0;if(e){while(1){i=d<<2;f=J[i+l>>2]-J[i+s>>2]|0;J[i+r>>2]=f;J[i+j>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=f;f=f>>31;h=((i^f)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Db(d,I,j,e);f=Cb(d);i=J[d+12>>2];d=J[d+16>>2];i=(((i-d|0)+1|0)/64|0)+d<<3;n=d<<3;d=i+n|0;i=(i>>31)+(n>>31)|0;j=ca+(d>>>0<n>>>0?i+1|0:i)|0;i=d;d=d+f|0;f=i>>>0>d>>>0?j+1|0:j;A=(k|0)<=0;if(!A){p=(k<<3)-8|0;i=p+(g+48|0)|0;n=i;j=J[i>>2];i=J[i+4>>2];j=j+k|0;i=j>>>0<k>>>0?i+1|0:i;J[n>>2]=j;J[n+4>>2]=i;u=W(Eb(j,J[p+(g+80|0)>>2])*(+(j>>>0)+ +(i|0)*4294967296));r:{if(R(u)<0x8000000000000000){j=R(u)>=1?~~(u>0?T(V(u*2.3283064365386963e-10),4294967295):W((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;i=~~u>>>0;break r}j=-2147483648;i=0}d=d+i|0;f=d}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=d;J[g+12>>2]=h;tc(aa,l,l+O|0);bb($,r,v);s:{t:{u:{if(A){break u}n=(g+124|0)+k|0;l=n-1|0;U=k<<3;d=U-8|0;X=d+(g+48|0)|0;da=d+(g+80|0)|0;p=1;y=0;while(1){d=g+124|0;pa(d,1,k);y=y+1|0;pa(d,0,y);v:{w:while(1){if(e){pa(J[g+128>>2],0,O)}m=0;d=J[g+128>>2];f=0;while(1){if(!K[(g+124|0)+m|0]){x:{if(!e){break x}o=J[(g+144|0)+P(m,12)>>2];i=0;h=0;j=0;if(e>>>0>3){while(1){q=h<<2;t=q+d|0;J[t>>2]=J[t>>2]+J[o+q>>2];t=q|4;C=t+d|0;J[C>>2]=J[C>>2]+J[o+t>>2];t=q|8;C=t+d|0;J[C>>2]=J[C>>2]+J[o+t>>2];q=q|12;t=q+d|0;J[t>>2]=J[t>>2]+J[o+q>>2];h=h+4|0;j=j+4|0;if((Z|0)!=(j|0)){continue}break}}if(!N){break x}while(1){j=h<<2;q=j+d|0;J[q>>2]=J[q>>2]+J[j+o>>2];h=h+1|0;i=i+1|0;if((N|0)!=(i|0)){continue}break}}f=1<<m|f}m=m+1|0;if((m|0)!=(k|0)){continue}break}d=J[g+128>>2];y:{z:{A:{if(e){h=0;i=0;if(G){break A}break z}j=J[x>>2];i=0;break y}while(1){j=h<<2;m=j+d|0;J[m>>2]=J[m>>2]/(p|0);j=(j|4)+d|0;J[j>>2]=J[j>>2]/(p|0);h=h+2|0;i=i+2|0;if((E|0)!=(i|0)){continue}break}}if(F){d=(h<<2)+d|0;J[d>>2]=J[d>>2]/(p|0)}j=J[x>>2];d=J[g+128>>2];h=0;i=0;if(!e){break y}while(1){o=h<<2;m=J[o+d>>2]-J[o+s>>2]|0;J[o+r>>2]=m;J[j+o>>2]=(m|0)<0?(m^-1)<<1|1:m<<1;o=i;i=m>>31;i=o+((i^m)-i|0)|0;h=h+1|0;if((h|0)!=(e|0)){continue}break}}h=g+200|0;Db(h,I,j,e);m=Cb(h);o=J[h+12>>2];h=J[h+16>>2];j=(((o-h|0)+1|0)/64|0)+h<<3;o=h<<3;h=j+o|0;h=h+m|0;m=J[X+4>>2];j=J[X>>2];u=W(Eb(j,J[da>>2]+p|0)*(+(j>>>0)+ +(m|0)*4294967296));B:{if(R(u)<0x8000000000000000){o=~~u>>>0;break B}o=0}h=o+h|0;j=J[g+8>>2];if(!((h|0)>=(j|0)&((h|0)>(j|0)|(i|0)>=J[g+12>>2]))){J[g+20>>2]=p;H[g+16|0]=f;J[g+8>>2]=h;J[g+12>>2]=i;j=J[g+132>>2];m=j-d|0;h=m>>2;i=J[g+32>>2];f=J[g+24>>2];C:{if(h>>>0<=i-f>>2>>>0){m=J[g+28>>2]-f|0;i=m+d|0;q=m>>2;m=q>>>0<h>>>0?i:j;o=m-d|0;if((d|0)!=(m|0)){ta(f,d,o)}if(h>>>0>q>>>0){h=J[g+28>>2];if((j|0)==(m|0)){break C}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((j|0)!=(i|0)){continue}break}break C}h=f+o|0;break C}if(f){J[g+28>>2]=f;na(f);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;i=0}if((m|0)<0){break t}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:f>>>0>h>>>0?f:h;if(f>>>0>=1073741824){break t}f=f<<2;h=oa(f);J[g+24>>2]=h;J[g+32>>2]=f+h;if((d|0)==(j|0)){break C}f=d;d=(m-4&-4)+4|0;h=ua(h,f,d)+d|0}J[g+28>>2]=h;i=J[g+44>>2];d=J[g+36>>2];D:{if(i-d>>2>>>0>=z>>>0){f=J[g+40>>2]-d|0;i=f+r|0;j=f>>2;f=j>>>0<z>>>0?i:v;h=f-r|0;if((f|0)!=(r|0)){ta(d,r,h)}if(j>>>0<z>>>0){h=J[g+40>>2];if((f|0)==(v|0)){break D}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((v|0)!=(i|0)){continue}break}break D}h=d+h|0;break D}if(d){J[g+40>>2]=d;na(d);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;i=0}if((L|0)<0){break s}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>z>>>0?d:z;if(d>>>0>=1073741824){break s}d=d<<2;h=oa(d);J[g+36>>2]=h;J[g+44>>2]=d+h;if((r|0)==(v|0)){break D}h=ua(h,r,Q)+Q|0}J[g+40>>2]=h}if((l|0)==(g+124|0)){break v}h=K[l|0];i=-1;while(1){j=h&255;d=i-1|0;f=d+n|0;h=K[f|0];if(j>>>0>h>>>0){d=n;while(1){d=d-1|0;j=K[d|0];if(j>>>0<=h>>>0){continue}break}H[f|0]=j;H[d|0]=h;if((i|0)==-1){continue w}h=i+n|0;i=l;while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0<i>>>0){continue}break}continue w}i=d;if((f|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=l;if(d>>>0>=i>>>0){break v}while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0<i>>>0){continue}break}}p=p+1|0;if((k|0)!=(y|0)){continue}break}if((k|0)<=0){break u}f=J[g+20>>2];l=f;d=g+U|0;i=f+J[d+72>>2]|0;f=J[d+76>>2]+(f>>31)|0;J[d+72>>2]=i;J[d+76>>2]=i>>>0<l>>>0?f+1|0:f}if(!e){break i}d=J[x>>2];h=0;f=J[g+36>>2];j=0;if(!G){break j}while(1){l=h<<2;i=J[l+f>>2];J[d+l>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;l=l|4;i=J[l+f>>2];J[d+l>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;j=j+2|0;if((E|0)!=(j|0)){continue}break}break j}qa();B()}qa();B()}ra();B()}if(!F){break i}i=h<<2;f=J[i+f>>2];J[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(g+200|0,I,J[x>>2],e);E:{if(A){break E}l=P(k,12)+a|0;i=0;while(1){F:{h=J[l+40>>2];j=h<<5;d=J[l+36>>2];G:{if(!(K[g+16|0]>>>i&1)){f=d;H:{if((d|0)!=(j|0)){break H}if((d+1|0)<0){break F}I:{if(d>>>0<=1073741822){h=h<<6;j=(d&-32)+32|0;h=h>>>0>j>>>0?h:j;f=d;if(d>>>0>=h>>>0){break H}if((h|0)>=0){break I}break F}h=2147483647;f=-1;if(d>>>0>=2147483647){break H}}j=(h-1>>>5|0)+1|0;f=oa(j<<2);h=J[l+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;J:{K:{if(!d){break K}n=d>>>5|0;if(d>>>0>=32){ta(f,h,n<<2)}p=d&31;if(!p){break K}n=n<<2;m=n+f|0;p=-1>>>32-p|0;J[m>>2]=J[m>>2]&(p^-1)|p&J[h+n>>2];J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;break J}J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;f=d;if(!h){break H}}na(h);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<<f;break G}f=d;L:{if((d|0)!=(j|0)){break L}if((d+1|0)<0){break F}M:{if(d>>>0<=1073741822){h=h<<6;j=(d&-32)+32|0;h=h>>>0>j>>>0?h:j;f=d;if(d>>>0>=h>>>0){break L}if((h|0)<0){break F}break M}h=2147483647;f=-1;if(d>>>0>=2147483647){break L}}j=(h-1>>>5|0)+1|0;f=oa(j<<2);h=J[l+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;N:{O:{if(!d){break O}n=d>>>5|0;if(d>>>0>=32){ta(f,h,n<<2)}p=d&31;if(!p){break O}n=n<<2;m=n+f|0;p=-1>>>32-p|0;J[m>>2]=J[m>>2]&(p^-1)|p&J[h+n>>2];J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;break N}J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;f=d;if(!h){break L}}na(h);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;h=J[d>>2];ea=d,fa=Ll(f)&h,J[ea>>2]=fa}i=i+1|0;if((k|0)!=(i|0)){continue}break E}break}qa();B()}d=J[g+24>>2];f=J[d>>2];d=J[d+4>>2];i=J[s+4>>2];J[g+232>>2]=J[s>>2];J[g+236>>2]=i;J[g+224>>2]=f;J[g+228>>2]=d;Ya(g+200|0,_,g+232|0,g+224|0);d=c+S|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;na(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;na(d)}d=(D|0)>2;D=w;if(d){continue}break}break c}qa();B()}d=J[g+144>>2];if((e|0)>0){pa(d,0,e<<2)}e=J[d>>2];d=J[d+4>>2];f=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=f;J[g+232>>2]=e;J[g+236>>2]=d;Ya(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(r){na(r)}a=J[g+128>>2];if(a){J[g+132>>2]=a;na(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;na(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;na(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;na(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;na(a)}ba=g+240|0;return 1}function Nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=ba-32|0;ba=i;c=J[b+8>>2];a:{b:{if(K[b+288|0]){c=jf(c);e=J[b+12>>2];J[b+12>>2]=c;if(e){break b}break a}c=kf(c);e=J[b+12>>2];J[b+12>>2]=c;if(!e){break a}}qc(e)}c=J[b+12>>2];c:{if(!(J[c+40>>2]!=((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)?c:0)){b=oa(32);H[b+29|0]=0;c=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);d=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);d=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);d=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);d=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break c}J[b+264>>2]=b;Aa((J[c+28>>2]-J[c+24>>2]>>2)-J[c+44>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+12>>2];Aa(((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)-J[c+40>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+8>>2];d=J[c+100>>2];c=J[c+96>>2];H[i+16|0]=0;o=b+28|0;j=(d-c|0)/12|0;c=i+16|0;Na(o,j,c);d=J[b+12>>2];e=J[d+28>>2];d=J[d+24>>2];J[i+16>>2]=-1;wb(b+52|0,e-d>>2,c);c=J[b+40>>2];J[b+44>>2]=c;d:{e:{f:{g:{h:{i:{j:{d=J[b+12>>2];e=J[d+4>>2]-J[d>>2]>>2;e=e-((e>>>0)%3|0)|0;k:{if(e>>>0<=J[b+48>>2]-c>>2>>>0){break k}if(e>>>0>=1073741824){break j}g=e<<2;e=oa(g);J[b+44>>2]=e;J[b+40>>2]=e;J[b+48>>2]=e+g;if(!c){break k}na(c);d=J[b+12>>2]}c=J[d+28>>2];d=J[d+24>>2];H[i+16|0]=0;Na(b+84|0,c-d>>2,i+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){d=J[b+128>>2];if(d){while(1){c=J[d>>2];na(d);d=c;if(c){continue}break}}d=0;J[b+128>>2]=0;c=J[b+124>>2];l:{if(!c){break l}if(c>>>0>=4){k=c&-4;g=0;while(1){e=d<<2;J[e+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(e|4)>>2]=0;J[J[b+120>>2]+(e|8)>>2]=0;J[J[b+120>>2]+(e|12)>>2]=0;d=d+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}c=c&3;if(!c){break l}e=0;while(1){J[J[b+120>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;c=J[b+12>>2];d=J[c+28>>2];c=J[c+24>>2];J[i+16>>2]=-1;wb(b+152|0,d-c>>2,i+16|0);c=J[b+72>>2];J[b+76>>2]=c;s=b+72|0;d=J[b+12>>2];d=J[d+4>>2]-J[d>>2]|0;e=(d>>2>>>0)/3|0;m:{if(e>>>0<=J[b+80>>2]-c>>2>>>0){break m}if((d|0)<0){break i}e=e<<2;d=oa(e);J[b+76>>2]=d;J[b+72>>2]=d;J[b+80>>2]=d+e;if(!c){break m}na(c)}J[b- -64>>2]=0;if(!kg(b)){b=oa(32);H[b+29|0]=0;c=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);d=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);d=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);d=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);d=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break c}c=b;n:{if(K[b+288|0]){break n}b=J[c+8>>2];e=J[b+12>>2]-J[b+8>>2]|0;g=e>>2;d=g-1|0;b=J[c+176>>2];f=J[c+172>>2];k=(b-f|0)/136|0;o:{if(d>>>0>k>>>0){cg(c+172|0,d-k|0);break o}if(d>>>0>=k>>>0){break o}k=f+P(d,136)|0;if((k|0)!=(b|0)){while(1){d=b-136|0;f=J[d+116>>2];if(f){J[b-16>>2]=f;na(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;na(f)}pc(b-132|0);b=d;if((k|0)!=(b|0)){continue}break}}J[c+176>>2]=k}if((e|0)==4|(e|0)<=0){break n}k=(g|0)<=1?1:g;b=0;p:{while(1){f=J[J[J[c+8>>2]+8>>2]+(b<<2)>>2];if(J[f+56>>2]){h=P(n,136);d=h+J[c+172>>2]|0;J[d>>2]=b;e=J[d+104>>2];J[d+108>>2]=e;g=J[c+12>>2];g=J[g+4>>2]-J[g>>2]|0;j=g>>2;q:{if(j>>>0<=J[d+112>>2]-e>>2>>>0){break q}if((g|0)<0){break p}g=oa(g);J[d+108>>2]=g;J[d+104>>2]=g;J[d+112>>2]=g+(j<<2);if(!e){break q}na(e)}d=h+J[c+172>>2]|0;J[d+128>>2]=0;lf(d+4|0,J[c+8>>2],J[c+12>>2],f);n=n+1|0}b=b+1|0;if((k|0)!=(b|0)){continue}break}break n}qa();B()}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[i+31|0]=b;d=J[J[c+4>>2]+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){sa(d,J[d+4>>2],i+31|0,i+32|0);b=K[i+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];d=J[b>>2];b=J[b+4>>2];n=c+200|0;ig(n);g=0;J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;k=0;b=b-d|0;if((b|0)>0){b=b>>>2|0;t=b>>>0<=1?1:b;d=0;while(1){b=(d>>>0)/3|0;p=b>>>5<<2;r=1<<b;r:{if(r&J[J[o>>2]+p>>2]){break r}if(Fc(J[c+12>>2],b)){break r}J[i+8>>2]=0;b=hg(c,b,i+8|0);Ca(n,b);f=J[i+8>>2];if(b){h=-1;e=-1;j=-1;s:{if((f|0)==-1){break s}l=J[J[c+12>>2]>>2];b=l+(f<<2)|0;h=f+1|0;h=(h>>>0)%3|0?h:f-2|0;if((h|0)!=-1){e=J[l+(h<<2)>>2]}h=J[b>>2];t:{if((f>>>0)%3|0){b=f-1|0;break t}b=f+2|0;j=-1;if((b|0)==-1){break s}}j=J[l+(b<<2)>>2]}b=J[c+84>>2];l=b+(h>>>3&536870908)|0;J[l>>2]=J[l>>2]|1<<h;h=b+(e>>>3&536870908)|0;J[h>>2]=J[h>>2]|1<<e;b=b+(j>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<j;b=J[c+100>>2];h=J[c+104>>2];u:{if(b>>>0<h>>>0){J[b>>2]=1;J[c+100>>2]=b+4;break u}j=b;b=J[c+96>>2];j=j-b|0;l=j>>2;e=l+1|0;if(e>>>0>=1073741824){break h}q=l<<2;h=h-b|0;l=h>>>1|0;e=h>>>0>=2147483644?1073741823:e>>>0<l>>>0?l:e;if(e){if(e>>>0>=1073741824){break g}h=oa(e<<2)}else{h=0}l=q+h|0;J[l>>2]=1;q=e<<2;e=ta(h,b,j);J[c+104>>2]=q+e;J[c+100>>2]=l+4;J[c+96>>2]=e;if(!b){break u}na(b)}b=J[o>>2]+p|0;J[b>>2]=J[b>>2]|r;h=-1;if((f|0)!=-1){b=f+1|0;h=(b>>>0)%3|0?b:f-2|0}v:{if(g>>>0<m>>>0){J[g>>2]=h;g=g+4|0;J[i+20>>2]=g;break v}e=g-k>>2;b=e+1|0;if(b>>>0>=1073741824){break f}j=m-k|0;m=j>>>1|0;b=j>>>0>=2147483644?1073741823:b>>>0<m>>>0?m:b;if(b){if(b>>>0>=1073741824){break g}j=oa(b<<2)}else{j=0}e=j+(e<<2)|0;J[e>>2]=h;m=j+(b<<2)|0;b=e+4|0;if((g|0)!=(k|0)){while(1){e=e-4|0;g=g-4|0;J[e>>2]=J[g>>2];if((g|0)!=(k|0)){continue}break}}J[i+24>>2]=m;J[i+20>>2]=b;J[i+16>>2]=e;if(k){na(k)}k=e;g=b}if((f|0)==-1){break r}b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if((b|0)==-1){break r}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break r}e=(b>>>0)/3|0;if(J[J[o>>2]+(e>>>3&268435452)>>2]>>>e&1){break r}if(gg(c,b)){break r}break e}if((f|0)!=-1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0}else{b=-1}Hc(c,b,1);if(!gg(c,J[i+8>>2])){break e}}d=d+1|0;if((t|0)!=(d|0)){continue}break}}d=J[c+72>>2];b=J[c+76>>2];w:{if((d|0)==(b|0)){break w}e=b-4|0;if(e>>>0<=d>>>0){break w}while(1){f=J[d>>2];J[d>>2]=J[e>>2];J[e>>2]=f;d=d+4|0;e=e-4|0;if(d>>>0<e>>>0){continue}break}}fg(s,b,k,g);x:{if(J[c+172>>2]==J[c+176>>2]){break x}b=J[c+8>>2];d=J[b+100>>2];b=J[b+96>>2];H[i+8|0]=0;Na(o,(d-b|0)/12|0,i+8|0);d=J[c+72>>2];b=J[c+76>>2];if((d|0)==(b|0)){break x}while(1){eg(c,J[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}}e=n;h=e+32|0;b=J[e+64>>2];b=J[(da[J[J[b>>2]+40>>2]](b)|0)+56>>2];Fd(h,P((J[b+100>>2]-J[b+96>>2]|0)/12|0,3),0,1);b=J[e+72>>2]-J[e+68>>2]|0;y:{if((b|0)<=0){break y}d=J[e+52>>2];if(!J[e+48>>2]&(d|0)<=0|(d|0)<0){break y}b=b>>>2|0;while(1){g=b;b=b-1|0;d=J[e+52>>2];z:{if(!J[e+48>>2]&(d|0)<=0|(d|0)<0){break z}o=J[J[e+68>>2]+(b<<2)>>2];if(!(171>>>o&1)){break z}j=J[(o<<2)+11152>>2];f=J[e+44>>2];d=J[f+4>>2];n=0;while(1){m=d>>>3|0;p=m+J[f>>2]|0;l=K[p|0];d=d&7;u=p,v=Ll(d)&l,H[u|0]=v;m=m+J[f>>2]|0;H[m|0]=K[m|0]|(o>>>n&1)<<d;d=J[f+4>>2]+1|0;J[f+4>>2]=d;n=n+1|0;if((j|0)!=(n|0)){continue}break}}if((g|0)>1){continue}break}}Ed(h);b=c+232|0;ya(e,b);if(!(!J[c+280>>2]|J[c+284>>2]<=0)){d=0;while(1){ya(J[c+280>>2]+(d<<5)|0,b);d=d+1|0;if((d|0)<J[c+284>>2]){continue}break}}Aa(J[c+272>>2]-J[c+268>>2]>>2,J[J[c+4>>2]+44>>2]);Aa(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!dg(c)){b=oa(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);d=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);d=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);d=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,28);na(b);break d}b=J[J[c+4>>2]+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break d}qa();B()}qa();B()}qa();B()}xa();B()}qa();B()}b=oa(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);d=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=d;H[b+25|0]=d>>>8;H[b+26|0]=d>>>16;H[b+27|0]=d>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);d=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);d=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);d=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,32);na(b)}if(!k){break c}na(k)}ba=i+32|0}function lf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ba-16|0;ba=f;a:{b:{if(c){J[a+88>>2]=0;J[a+92>>2]=0;e=J[a+84>>2];J[a+84>>2]=0;if(e){na(e)}J[a+76>>2]=0;J[a+80>>2]=0;e=J[a+72>>2];J[a+72>>2]=0;if(e){na(e)}e=J[c>>2];g=J[c+4>>2];H[f+15|0]=0;Na(a,g-e>>2,f+15|0);e=J[c+28>>2];g=J[c+24>>2];H[f+14|0]=0;Na(a+12|0,e-g>>2,f+14|0);wb(a+28|0,J[c+4>>2]-J[c>>2]>>2,14948);g=J[c+28>>2]-J[c+24>>2]|0;h=g>>2;j=J[a+52>>2];c:{if(h>>>0<=J[a+60>>2]-j>>2>>>0){break c}if((g|0)<0){break a}e=J[a+56>>2];g=oa(g);h=g+(h<<2)|0;i=g+(e-j&-4)|0;g=i;if((e|0)!=(j|0)){while(1){g=g-4|0;e=e-4|0;J[g>>2]=J[e>>2];if((e|0)!=(j|0)){continue}break}}J[a+60>>2]=h;J[a+56>>2]=i;J[a+52>>2]=g;if(!j){break c}na(j)}g=J[c+28>>2]-J[c+24>>2]|0;h=g>>2;j=J[a+40>>2];d:{if(h>>>0<=J[a+48>>2]-j>>2>>>0){break d}if((g|0)<0){break a}e=J[a+44>>2];g=oa(g);h=g+(h<<2)|0;i=g+(e-j&-4)|0;g=i;if((e|0)!=(j|0)){while(1){g=g-4|0;e=e-4|0;J[g>>2]=J[e>>2];if((e|0)!=(j|0)){continue}break}}J[a+48>>2]=h;J[a+44>>2]=i;J[a+40>>2]=g;if(!j){break d}na(j)}H[a+24|0]=1;J[a+64>>2]=c}ba=f+16|0;c=(c|0)!=0;break b}if(c){J[a+88>>2]=0;J[a+92>>2]=0;c=J[a+84>>2];J[a+84>>2]=0;if(c){na(c)}J[a+76>>2]=0;J[a+80>>2]=0;c=J[a+72>>2];J[a+72>>2]=0;if(c){na(c)}h=J[a+64>>2];if(J[h+4>>2]!=J[h>>2]){c=0;while(1){m=(c>>>0)/3|0;f=Fc(h,m);h=J[a+64>>2];e:{if(f){break e}j=J[J[h+12>>2]+(c<<2)>>2];f:{g:{if((j|0)==-1){f=J[a>>2]+(c>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<<c;e=-1;f=c+1|0;f=(f>>>0)%3|0?f:c-2|0;if((f|0)!=-1){e=J[J[h>>2]+(f<<2)>>2]}f=J[a+12>>2];g=f+(e>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<<e;if((c>>>0)%3|0){e=c-1|0;break g}g=-1;e=c+2|0;if((e|0)!=-1){break g}break f}if(c>>>0>j>>>0){break e}e=-1;k=K[d+84|0];g=-1;l=c+1|0;n=c-2|0;i=(l>>>0)%3|0?l:n;if((i|0)>=0){f=(i>>>0)/3|0;g=J[(J[b+96>>2]+P(f,12)|0)+(i-P(f,3)<<2)>>2]}f=j+((j>>>0)%3|0?-1:2)|0;if((f|0)>=0){e=(f>>>0)/3|0;e=J[(J[b+96>>2]+P(e,12)|0)+(f-P(e,3)<<2)>>2]}if(!k){o=J[d+68>>2];e=J[o+(e<<2)>>2];g=J[(g<<2)+o>>2]}if((e|0)==(g|0)){e=-1;g=-1;if((i|0)!=-1){g=i+1|0;g=(g>>>0)%3|0?g:i-2|0}h:{if((f|0)==-1){break h}if((f>>>0)%3|0){e=f-1|0;break h}e=f+2|0}f=-1;i=-1;if((g|0)>=0){i=(g>>>0)/3|0;i=J[(J[b+96>>2]+P(i,12)|0)+(g-P(i,3)<<2)>>2]}if((e|0)>=0){f=(e>>>0)/3|0;f=J[(J[b+96>>2]+P(f,12)|0)+(e-P(f,3)<<2)>>2]}if(!k){e=J[d+68>>2];f=J[e+(f<<2)>>2];i=J[e+(i<<2)>>2]}if((f|0)==(i|0)){break e}}H[a+24|0]=0;f=J[a>>2];e=f+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<<c;f=f+(j>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<<j;i=-1;f=(l>>>0)%3|0?l:n;if((f|0)!=-1){i=J[J[h>>2]+(f<<2)>>2]}f=J[a+12>>2];e=f+(i>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<<i;i:{j:{if((P(m,3)|0)!=(c|0)){e=c-1|0;break j}e=c+2|0;g=-1;if((e|0)==-1){break i}}g=J[J[h>>2]+(e<<2)>>2]}e=(g>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<<g;g=-1;e=j+1|0;e=(e>>>0)%3|0?e:j-2|0;if((e|0)!=-1){g=J[J[h>>2]+(e<<2)>>2]}e=(g>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<<g;if((j>>>0)%3|0){e=j-1|0;break g}g=-1;e=j+2|0;if((e|0)==-1){break f}}g=J[J[h>>2]+(e<<2)>>2]}f=(g>>>3&536870908)+f|0;J[f>>2]=J[f>>2]|1<<g}c=c+1|0;if(c>>>0<J[h+4>>2]-J[h>>2]>>2>>>0){continue}break}}if(!(!b|!d)){h=b;j=d;b=0;l=0;e=a;J[e+56>>2]=J[e+52>>2];J[e+44>>2]=J[e+40>>2];k:{d=J[e+64>>2];f=J[d+24>>2];if((f|0)==J[d+28>>2]){break k}l:{m:{while(1){a=b;b=J[(l<<2)+f>>2];n:{if((b|0)==-1){b=a;break n}if((b|0)<0){c=-1}else{c=(b>>>0)/3|0;c=J[(J[h+96>>2]+P(c,12)|0)+(b-P(c,3)<<2)>>2]}c=K[j+84|0]?c:J[J[j+68>>2]+(c<<2)>>2];d=J[e+56>>2];g=J[e+60>>2];o:{if(d>>>0<g>>>0){J[d>>2]=c;J[e+56>>2]=d+4;break o}i=J[e+52>>2];m=d-i>>2;f=m+1|0;if(f>>>0>=1073741824){break a}g=g-i|0;k=g>>>1|0;k=g>>>0>=2147483644?1073741823:f>>>0<k>>>0?k:f;if(k){if(k>>>0>=1073741824){break m}g=oa(k<<2)}else{g=0}f=g+(m<<2)|0;J[f>>2]=c;c=f+4|0;if((d|0)!=(i|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(i|0)){continue}break}}J[e+60>>2]=g+(k<<2);J[e+56>>2]=c;J[e+52>>2]=f;if(!i){break o}na(i)}p:{q:{if(!(J[J[e+12>>2]+(l>>>3&536870908)>>2]>>>l&1)){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break q}c=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break q}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1){break q}g=J[e+64>>2];i=J[e>>2];while(1){c=d;d=-1;f=c+1|0;f=(f>>>0)%3|0?f:c-2|0;r:{if((f|0)==-1|J[i+(f>>>3&536870908)>>2]>>>f&1){break r}f=J[J[g+12>>2]+(f<<2)>>2];if((f|0)==-1){break r}d=f+1|0;d=(d>>>0)%3|0?d:f-2|0}if((b|0)!=(d|0)){if((d|0)==-1){break p}continue}break}break k}c=b}J[J[e+28>>2]+(c<<2)>>2]=a;d=J[e+44>>2];s:{if((d|0)!=J[e+48>>2]){J[d>>2]=c;J[e+44>>2]=d+4;break s}g=J[e+40>>2];b=d-g|0;k=b>>2;f=k+1|0;if(f>>>0>=1073741824){break l}i=b>>>1|0;i=b>>>0>=2147483644?1073741823:f>>>0<i>>>0?i:f;if(i){if(i>>>0>=1073741824){break m}b=oa(i<<2)}else{b=0}f=b+(k<<2)|0;J[f>>2]=c;k=f+4|0;if((d|0)!=(g|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+48>>2]=b+(i<<2);J[e+44>>2]=k;J[e+40>>2]=f;if(!g){break s}na(g)}b=a+1|0;d=J[e+64>>2];if((c|0)==-1){break n}t:{if((c>>>0)%3|0){f=c-1|0;break t}f=c+2|0;if((f|0)==-1){break n}}f=J[J[d+12>>2]+(f<<2)>>2];if((f|0)==-1){break n}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1|(c|0)==(i|0)){break n}while(1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0;if(J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){g=(i|0)<0?-1:J[(J[h+96>>2]+P((i>>>0)/3|0,12)|0)+((i>>>0)%3<<2)>>2];g=K[j+84|0]?g:J[J[j+68>>2]+(g<<2)>>2];d=J[e+56>>2];f=J[e+60>>2];u:{if(d>>>0<f>>>0){J[d>>2]=g;J[e+56>>2]=d+4;break u}k=J[e+52>>2];n=d-k>>2;a=n+1|0;if(a>>>0>=1073741824){break a}f=f-k|0;m=f>>>1|0;m=f>>>0>=2147483644?1073741823:a>>>0<m>>>0?m:a;if(m){if(m>>>0>=1073741824){break m}a=oa(m<<2)}else{a=0}f=a+(n<<2)|0;J[f>>2]=g;g=f+4|0;if((d|0)!=(k|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(k|0)){continue}break}}J[e+60>>2]=a+(m<<2);J[e+56>>2]=g;J[e+52>>2]=f;if(!k){break u}na(k)}g=b+1|0;d=J[e+44>>2];v:{if((d|0)!=J[e+48>>2]){J[d>>2]=i;J[e+44>>2]=d+4;break v}k=J[e+40>>2];a=d-k|0;n=a>>2;f=n+1|0;if(f>>>0>=1073741824){break l}m=a>>>1|0;m=a>>>0>=2147483644?1073741823:f>>>0<m>>>0?m:f;if(m){if(m>>>0>=1073741824){break m}a=oa(m<<2)}else{a=0}f=a+(n<<2)|0;J[f>>2]=i;n=f+4|0;if((d|0)!=(k|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(k|0)){continue}break}}J[e+48>>2]=a+(m<<2);J[e+44>>2]=n;J[e+40>>2]=f;if(!k){break v}na(k)}a=b;b=g}J[J[e+28>>2]+(i<<2)>>2]=a;d=J[e+64>>2];w:{if((i>>>0)%3|0){f=i-1|0;break w}f=i+2|0;if((f|0)==-1){break n}}f=J[J[d+12>>2]+(f<<2)>>2];if((f|0)==-1){break n}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1){break n}if((c|0)!=(i|0)){continue}break}}l=l+1|0;f=J[d+24>>2];if(l>>>0<J[d+28>>2]-f>>2>>>0){continue}break}break k}xa();B()}break a}return}b=0;f=0;e=a;J[e+56>>2]=J[e+52>>2];J[e+44>>2]=J[e+40>>2];x:{d=J[e+64>>2];h=J[d+24>>2];if((h|0)==J[d+28>>2]){break x}y:{z:{while(1){a=b;b=J[(f<<2)+h>>2];A:{if((b|0)==-1){b=a;break A}d=J[e+56>>2];B:{if((d|0)!=J[e+60>>2]){J[d>>2]=a;J[e+56>>2]=d+4;break B}g=J[e+52>>2];c=d-g|0;h=c>>2;j=h+1|0;if(j>>>0>=1073741824){break a}i=c>>>1|0;j=c>>>0>=2147483644?1073741823:i>>>0>j>>>0?i:j;if(j){if(j>>>0>=1073741824){break z}c=oa(j<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=a;i=h+4|0;if((d|0)!=(g|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+60>>2]=c+(j<<2);J[e+56>>2]=i;J[e+52>>2]=h;if(!g){break B}na(g)}C:{D:{if(!(J[J[e+12>>2]+(f>>>3&536870908)>>2]>>>f&1)){break D}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break D}c=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break D}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1){break D}j=J[e+64>>2];h=J[e>>2];while(1){c=d;d=-1;g=c+1|0;g=(g>>>0)%3|0?g:c-2|0;E:{if((g|0)==-1|J[h+(g>>>3&536870908)>>2]>>>g&1){break E}g=J[J[j+12>>2]+(g<<2)>>2];if((g|0)==-1){break E}d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((b|0)!=(d|0)){if((d|0)==-1){break C}continue}break}break x}c=b}J[J[e+28>>2]+(c<<2)>>2]=a;d=J[e+44>>2];F:{if((d|0)!=J[e+48>>2]){J[d>>2]=c;J[e+44>>2]=d+4;break F}g=J[e+40>>2];b=d-g|0;h=b>>2;j=h+1|0;if(j>>>0>=1073741824){break y}i=b>>>1|0;j=b>>>0>=2147483644?1073741823:i>>>0>j>>>0?i:j;if(j){if(j>>>0>=1073741824){break z}b=oa(j<<2)}else{b=0}h=b+(h<<2)|0;J[h>>2]=c;i=h+4|0;if((d|0)!=(g|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+48>>2]=b+(j<<2);J[e+44>>2]=i;J[e+40>>2]=h;if(!g){break F}na(g)}b=a+1|0;d=J[e+64>>2];if((c|0)==-1){break A}G:{if((c>>>0)%3|0){h=c-1|0;break G}h=c+2|0;if((h|0)==-1){break A}}g=J[J[d+12>>2]+(h<<2)>>2];if((g|0)==-1){break A}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1|(c|0)==(g|0)){break A}while(1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if(J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){d=J[e+56>>2];H:{if((d|0)!=J[e+60>>2]){J[d>>2]=b;J[e+56>>2]=d+4;break H}j=J[e+52>>2];a=d-j|0;l=a>>2;h=l+1|0;if(h>>>0>=1073741824){break a}i=a>>>1|0;i=a>>>0>=2147483644?1073741823:i>>>0>h>>>0?i:h;if(i){if(i>>>0>=1073741824){break z}a=oa(i<<2)}else{a=0}h=a+(l<<2)|0;J[h>>2]=b;l=h+4|0;if((d|0)!=(j|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(j|0)){continue}break}}J[e+60>>2]=a+(i<<2);J[e+56>>2]=l;J[e+52>>2]=h;if(!j){break H}na(j)}j=b+1|0;d=J[e+44>>2];I:{if((d|0)!=J[e+48>>2]){J[d>>2]=g;J[e+44>>2]=d+4;break I}i=J[e+40>>2];a=d-i|0;k=a>>2;h=k+1|0;if(h>>>0>=1073741824){break y}l=a>>>1|0;l=a>>>0>=2147483644?1073741823:h>>>0<l>>>0?l:h;if(l){if(l>>>0>=1073741824){break z}a=oa(l<<2)}else{a=0}h=a+(k<<2)|0;J[h>>2]=g;k=h+4|0;if((d|0)!=(i|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(i|0)){continue}break}}J[e+48>>2]=a+(l<<2);J[e+44>>2]=k;J[e+40>>2]=h;if(!i){break I}na(i)}a=b;b=j}J[J[e+28>>2]+(g<<2)>>2]=a;d=J[e+64>>2];J:{if((g>>>0)%3|0){h=g-1|0;break J}h=g+2|0;if((h|0)==-1){break A}}g=J[J[d+12>>2]+(h<<2)>>2];if((g|0)==-1){break A}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1){break A}if((c|0)!=(g|0)){continue}break}}f=f+1|0;h=J[d+24>>2];if(f>>>0<J[d+28>>2]-h>>2>>>0){continue}break}break x}xa();B()}break a}}return}qa();B()}function mf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;z=ba-16|0;ba=z;b=oa(88);J[b>>2]=0;J[b+4>>2]=0;J[b+56>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;c=b- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+60>>2]=b;c=a;w=ba-16|0;ba=w;J[b+80>>2]=0;J[b+84>>2]=0;d=J[b+76>>2];a=b;J[b+76>>2]=0;if(d){na(d)}J[a+68>>2]=0;J[a+72>>2]=0;b=a- -64|0;d=J[b>>2];J[b>>2]=0;if(d){na(d)}f=J[c+4>>2];d=J[c>>2];b=(f-d|0)/12|0;l=P(b,3);i=J[a>>2];e=J[a+4>>2]-i>>2;a:{if(l>>>0>e>>>0){Ld(a,l-e|0);f=J[c+4>>2];d=J[c>>2];b=(f-d|0)/12|0;break a}if(e>>>0<=l>>>0){break a}J[a+4>>2]=i+(l<<2)}b:{if((d|0)==(f|0)){break b}f=b>>>0<=1?1:b;e=f&1;g=J[a>>2];c=0;if(b>>>0>=2){i=f&-2;b=0;while(1){j=P(c,12);f=j+g|0;l=d+j|0;J[f>>2]=J[l>>2];J[g+(j|4)>>2]=J[l+4>>2];J[f+8>>2]=J[l+8>>2];f=P(c|1,12);l=f+g|0;f=d+f|0;J[l>>2]=J[f>>2];J[l+4>>2]=J[f+4>>2];J[l+8>>2]=J[f+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!e){break b}c=P(c,12);b=c+g|0;c=c+d|0;J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2]}J[w+12>>2]=-1;c=0;f=0;g=0;o=ba-32|0;ba=o;c:{s=w+12|0;d:{if(!s){break d}b=J[a+4>>2];j=J[a>>2];e=b-j|0;m=e>>2;d=J[a+12>>2];i=J[a+16>>2]-d>>2;e:{if(m>>>0>i>>>0){Ma(a+12|0,m-i|0,14880);b=J[a+4>>2];j=J[a>>2];e=b-j|0;m=e>>2;break e}if(i>>>0<=m>>>0){break e}J[a+16>>2]=d+(m<<2)}J[o+24>>2]=0;J[o+16>>2]=0;J[o+20>>2]=0;d=(b|0)==(j|0);if(!d){if((e|0)<0){break c}f=oa(e);J[o+20>>2]=f;J[o+16>>2]=f;J[o+24>>2]=(m<<2)+f}f:{g:{h:{i:{j:{if(e){while(1){d=J[(c<<2)+j>>2];e=J[o+20>>2]-f>>2;k:{if(d>>>0<e>>>0){break k}J[o>>2]=0;i=d+1|0;if(i>>>0>e>>>0){jc(o+16|0,i-e|0,o);j=J[a>>2];b=J[a+4>>2];f=J[o+16>>2];break k}if(e>>>0<=i>>>0){break k}J[o+20>>2]=(i<<2)+f}d=(d<<2)+f|0;J[d>>2]=J[d>>2]+1;c=c+1|0;e=b-j|0;m=e>>2;if(c>>>0<m>>>0){continue}break}break j}e=0;if(!d){break i}break h}if((b|0)==(j|0)){e=0;break h}if(e>>>0>=2147483645){break g}}e=oa(e<<1);pa(e,255,m<<3)}J[o+8>>2]=0;J[o>>2]=0;J[o+4>>2]=0;c=J[o+20>>2];b=c-f|0;y=b>>2;l:{m:{if((c|0)==(f|0)){break m}if((b|0)<0){break l}v=oa(b);J[o>>2]=v;J[o+8>>2]=(y<<2)+v;q=pa(v,0,b);J[o+4>>2]=q+b;b=y>>>0<=1?1:y;l=b&3;c=0;if(b-1>>>0>=3){i=b&-4;while(1){p=g<<2;J[p+q>>2]=c;b=p|4;c=J[f+p>>2]+c|0;J[b+q>>2]=c;d=p|8;c=c+J[b+f>>2]|0;J[d+q>>2]=c;b=p|12;c=c+J[d+f>>2]|0;J[b+q>>2]=c;c=c+J[b+f>>2]|0;g=g+4|0;h=h+4|0;if((i|0)!=(h|0)){continue}break}}if(!l){break m}while(1){b=g<<2;J[b+q>>2]=c;g=g+1|0;c=J[b+f>>2]+c|0;r=r+1|0;if((l|0)!=(r|0)){continue}break}}if(!m){break f}u=J[a+40>>2];k=J[a+12>>2];l=0;while(1){q=l<<2;d=q+j|0;r=-1;b=l+1|0;c=(b>>>0)%3|0?b:l-2|0;if((c|0)!=-1){r=J[(c<<2)+j>>2]}p=J[d>>2];n:{o:{if(!((l>>>0)%3|0)){h=-1;c=l+2|0;if((c|0)!=-1){h=J[(c<<2)+j>>2]}if(!((p|0)==(r|0)|(h|0)==(p|0))&(h|0)!=(r|0)){break o}u=u+1|0;J[a+40>>2]=u;b=l+3|0;break n}h=J[d-4>>2]}c=h<<2;t=J[c+f>>2];p:{q:{if((t|0)<=0){break q}c=J[c+v>>2];g=0;while(1){i=(c<<3)+e|0;d=J[i>>2];if((d|0)==-1){break q}r:{if((d|0)!=(r|0)){break r}n=J[i+4>>2];if((n|0)!=-1){d=J[(n<<2)+j>>2]}else{d=-1}if((d|0)==(p|0)){break r}while(1){s:{d=c;g=g+1|0;if((t|0)<=(g|0)){break s}c=d+1|0;p=(c<<3)+e|0;x=J[p>>2];i=(d<<3)+e|0;J[i+4>>2]=J[p+4>>2];J[i>>2]=x;if((x|0)!=-1){continue}}break}J[(d<<3)+e>>2]=-1;if((n|0)==-1){break q}J[k+q>>2]=n;J[k+(n<<2)>>2]=l;break p}c=c+1|0;g=g+1|0;if((t|0)!=(g|0)){continue}break}}c=r<<2;d=J[c+f>>2];if((d|0)<=0){break p}c=J[c+v>>2];g=0;while(1){i=(c<<3)+e|0;if(J[i>>2]==-1){J[i>>2]=h;J[i+4>>2]=l;break p}c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}}l=b;if(l>>>0<m>>>0){continue}break}break f}break c}ke(1313);B()}J[s>>2]=y;if(v){na(v)}if(e){na(e)}c=J[o+16>>2];if(!c){break d}J[o+20>>2]=c;na(c)}ba=o+32|0;x=(s|0)!=0;if(x){n=ba-32|0;ba=n;c=J[a>>2];g=J[a+4>>2];J[n+24>>2]=0;J[n+16>>2]=0;J[n+20>>2]=0;if((c|0)==(g|0)){b=g}else{c=g-c|0;if((c|0)<0){break c}d=c>>2;b=(d-1>>>5|0)+1|0;c=oa(b<<2);J[n+24>>2]=b;J[n+20>>2]=0;J[n+16>>2]=c;mc(n+16|0,d);g=J[a>>2];b=J[a+4>>2]}J[n+8>>2]=0;J[n>>2]=0;while(1){t:{k=0;m=0;if((b|0)==(g|0)){break t}while(1){e=J[n+16>>2];u:{if(J[e+(m>>>3&536870908)>>2]>>>m&1){break u}b=J[n>>2];J[n+4>>2]=b;f=J[a+12>>2];c=m;while(1){v:{d=c+1|0;i=c;c=(d>>>0)%3|0?d:c-2|0;if((c|0)==-1){break v}d=J[f+(c<<2)>>2];if((d|0)==-1){break v}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((m|0)==(c|0)|(c|0)==-1){break v}if(!(J[e+(c>>>3&536870908)>>2]>>>c&1)){continue}}break}j=i;w:{x:{y:{while(1){c=J[n+16>>2]+(j>>>3&536870908)|0;J[c>>2]=J[c>>2]|1<<j;c=j+1|0;e=(c>>>0)%3|0?c:j-2|0;g=J[a>>2];q=(j>>>0)%3|0;d=(q?-1:2)+j|0;l=J[n>>2];p=(l|0)==(b|0);z:{if(p){break z}t=J[(e<<2)+g>>2];s=J[a+12>>2];c=l;if((d|0)!=-1){f=s+(d<<2)|0;while(1){A:{if((t|0)!=J[c>>2]){break A}u=J[f>>2];h=J[c+4>>2];if((u|0)==(h|0)){break A}f=d;b=-1;c=-1;if((h|0)==-1){break w}break x}c=c+8|0;if((b|0)!=(c|0)){continue}break}break z}while(1){if((t|0)==J[c>>2]){u=-1;f=-1;h=J[c+4>>2];if((h|0)!=-1){break x}}c=c+8|0;if((b|0)!=(c|0)){continue}break}}g=J[(d<<2)+g>>2];B:{if(J[n+8>>2]!=(b|0)){J[b>>2]=g;J[b+4>>2]=e;b=b+8|0;J[n+4>>2]=b;break B}h=b-l|0;d=h>>3;f=d+1|0;if(f>>>0>=536870912){break c}c=h>>>2|0;h=h>>>0>=2147483640?536870911:c>>>0>f>>>0?c:f;if(h){if(h>>>0>=536870912){break y}f=oa(h<<3)}else{f=0}c=f+(d<<3)|0;J[c>>2]=g;J[c+4>>2]=e;d=c+8|0;if(!p){while(1){b=b-8|0;e=J[b+4>>2];c=c-8|0;J[c>>2]=J[b>>2];J[c+4>>2]=e;if((b|0)!=(l|0)){continue}break}b=J[n>>2]}J[n+8>>2]=f+(h<<3);J[n+4>>2]=d;J[n>>2]=c;if(b){na(b)}b=d}C:{D:{if(q){c=j-1|0;break D}c=j+2|0;if((c|0)==-1){break C}}c=J[J[a+12>>2]+(c<<2)>>2];if((c|0)==-1){break C}j=c+((c>>>0)%3|0?-1:2)|0;if((i|0)==(j|0)){break C}if((j|0)!=-1){continue}}break}g=J[a>>2];break u}xa();B()}b=J[s+(h<<2)>>2];d=f;c=h}if((u|0)!=-1){J[s+(u<<2)>>2]=-1}if((b|0)!=-1){J[s+(b<<2)>>2]=-1}J[s+(d<<2)>>2]=-1;J[s+(c<<2)>>2]=-1;k=1}m=m+1|0;b=J[a+4>>2];if(m>>>0<b-g>>2>>>0){continue}break}if(k){continue}}break}c=J[n>>2];if(c){na(c)}c=J[n+16>>2];if(c){na(c)}ba=n+32|0;l=0;k=ba-32|0;ba=k;f=J[w+12>>2];J[a+36>>2]=f;t=a+24|0;c=J[a+24>>2];b=J[a+28>>2]-c>>2;E:{F:{if(b>>>0<f>>>0){Ma(t,f-b|0,14880);J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;break F}if(b>>>0>f>>>0){J[a+28>>2]=c+(f<<2)}J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;if(!f){break E}}if((f|0)<0){break c}b=(f-1>>>5|0)+1|0;c=oa(b<<2);J[k+24>>2]=b;J[k+20>>2]=0;J[k+16>>2]=c;mc(k+16|0,f)}c=J[a>>2];d=J[a+4>>2];J[k+8>>2]=0;J[k>>2]=0;J[k+4>>2]=0;G:{if((c|0)==(d|0)){c=d}else{c=d-c|0;if((c|0)<0){break c}d=c>>2;b=(d-1>>>5|0)+1|0;c=oa(b<<2);J[k+8>>2]=b;J[k+4>>2]=0;J[k>>2]=c;mc(k,d);d=J[a>>2];c=J[a+4>>2]}if(c-d>>>0<12){break G}H:{while(1){q=P(l,3);e=(q<<2)+d|0;h=J[e>>2];b=-1;i=q+1|0;if((i|0)!=-1){b=J[(i<<2)+d>>2]}I:{if((b|0)==(h|0)){break I}i=J[e+8>>2];if((i|0)==(h|0)|(b|0)==(i|0)){break I}r=0;m=J[k>>2];while(1){i=q+r|0;if(!(J[(i>>>3&536870908)+m>>2]>>>i&1)){c=J[(i<<2)+d>>2];b=1<<c;e=J[k+16>>2];d=c>>>5|0;m=J[e+(d<<2)>>2];p=b&m;if(p){b=J[a+28>>2];J:{if((b|0)!=J[a+32>>2]){J[b>>2]=-1;J[a+28>>2]=b+4;break J}g=J[t>>2];j=b-g|0;e=j>>2;h=e+1|0;if(h>>>0>=1073741824){break c}d=j>>>1|0;j=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(j){if(j>>>0>=1073741824){break H}d=oa(j<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=-1;h=e+4|0;if((b|0)!=(g|0)){while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[a+32>>2]=d+(j<<2);J[a+28>>2]=h;J[a+24>>2]=e;if(!g){break J}na(g)}b=J[a+52>>2];K:{if((b|0)!=J[a+56>>2]){J[b>>2]=c;J[a+52>>2]=b+4;break K}g=J[a+48>>2];j=b-g|0;e=j>>2;h=e+1|0;if(h>>>0>=1073741824){break c}d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break H}d=oa(h<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=c;c=e+4|0;if((b|0)!=(g|0)){while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[a+56>>2]=d+(h<<2);J[a+52>>2]=c;J[a+48>>2]=e;if(!g){break K}na(g)}b=J[k+20>>2];c=J[k+24>>2];if((b|0)==c<<5){if((b+1|0)<0){break c}e=k+16|0;if(b>>>0<=1073741822){d=c<<6;c=(b&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}wc(e,c);b=J[k+20>>2]}J[k+20>>2]=b+1;e=J[k+16>>2];d=e+(b>>>3&536870908)|0;c=J[d>>2];A=d,C=Ll(b)&c,J[A>>2]=C;b=1<<f;d=f>>>5|0;m=J[(d<<2)+e>>2];c=f;f=c+1|0}J[(d<<2)+e>>2]=b|m;j=J[a+24>>2]+(c<<2)|0;g=J[a+12>>2];d=J[a>>2];m=J[k>>2];b=i;L:{M:{N:{while(1){if((b|0)==-1){break N}e=(b>>>3&536870908)+m|0;J[e>>2]=J[e>>2]|1<<b;J[j>>2]=b;if(p){J[(b<<2)+d>>2]=c}h=b+1|0;b=(h>>>0)%3|0?h:b-2|0;e=-1;O:{if((b|0)==-1){break O}h=J[g+(b<<2)>>2];e=-1;if((h|0)==-1){break O}b=h+1|0;e=(b>>>0)%3|0?b:h-2|0}b=e;if((i|0)!=(b|0)){continue}break}if((i|0)!=-1){break L}b=1;break M}if((i>>>0)%3|0){b=i-1|0;break M}b=i+2|0;if((b|0)==-1){break L}}b=J[g+(b<<2)>>2];if((b|0)==-1){break L}P:{if((b>>>0)%3|0){b=b-1|0;break P}b=b+2|0;if((b|0)==-1){break L}}e=J[a+12>>2];d=J[a>>2];while(1){i=(b>>>3&536870908)+m|0;J[i>>2]=J[i>>2]|1<<b;if(p){J[(b<<2)+d>>2]=c}Q:{if((b>>>0)%3|0){b=b-1|0;break Q}b=b+2|0;if((b|0)==-1){break L}}b=J[e+(b<<2)>>2];if((b|0)==-1){break L}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}break}}}r=r+1|0;if((r|0)!=3){continue}break}d=J[a>>2];c=J[a+4>>2]}l=l+1|0;if(l>>>0<(c-d>>2>>>0)/3>>>0){continue}break}break G}xa();B()}b=0;J[a+44>>2]=0;c=J[k+16>>2];d=J[k+20>>2];if(d){i=d&31;f=(d>>>3&536870908)+c|0;e=c;m=0;while(1){if(!(J[e>>2]>>>b&1)){m=m+1|0;J[a+44>>2]=m}d=(b|0)==31;b=d?0:b+1|0;e=(d<<2)+e|0;if((f|0)!=(e|0)|(b|0)!=(i|0)){continue}break}}b=J[k>>2];if(b){na(b);c=J[k+16>>2]}if(c){na(c)}ba=k+32|0}ba=w+16|0;if(!x){J[z+8>>2]=0;qc(a);a=0}ba=z+16|0;return a}qa();B()}function nd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ba-16|0;ba=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=J[4849];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+19436|0;d=J[a+19444>>2];a=J[d+8>>2];j:{if((b|0)==(a|0)){m=19396,n=Ll(c)&g,J[m>>2]=n;break j}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[4851];if(k>>>0>=h>>>0){break i}if(b){a=2<<c;a=(0-a|a)&b<<c;d=Gl(0-a&a);a=d<<3;b=a+19436|0;e=J[a+19444>>2];a=J[e+8>>2];k:{if((b|0)==(a|0)){g=Ll(d)&g;J[4849]=g;break k}J[a+12>>2]=b;J[b+8>>2]=a}J[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+e>>2]=d;if(k){b=(k&-8)+19436|0;f=J[4854];a=1<<(k>>>3);l:{if(!(a&g)){J[4849]=a|g;a=b;break l}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=e+8|0;J[4854]=c;J[4851]=d;break a}j=J[4850];if(!j){break i}c=J[(Gl(0-j&j)<<2)+19700>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break m}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0<f>>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=J[4850];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=S(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=J[(g<<2)+19700>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(J[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<<g;a=(0-a|a)&j;if(!a){break i}a=J[(Gl(a&0-a)<<2)+19700>>2]}if(!a){break o}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0<f>>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[4851]-h>>>0<=f>>>0){break i}g=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[e>>2]=0;break c}a=J[4851];if(a>>>0>=h>>>0){d=J[4854];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;J[c+4>>2]=b|1;J[a+d>>2]=b;J[d+4>>2]=h|3;break s}J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;c=0;b=0}J[4851]=b;J[4854]=c;a=d+8|0;break a}i=J[4852];if(i>>>0>h>>>0){b=i-h|0;J[4852]=b;c=J[4855];a=c+h|0;J[4855]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[4967]){c=J[4969]}else{J[4970]=-1;J[4971]=-1;J[4968]=4096;J[4969]=4096;J[4967]=l+12&-16^1431655768;J[4972]=0;J[4960]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=J[4959];if(d){c=J[4957];g=c+b|0;if(d>>>0<g>>>0|c>>>0>=g>>>0){break a}}t:{if(!(K[19840]&4)){u:{v:{w:{x:{d=J[4855];if(d){a=19844;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0<c+J[a+4>>2]>>>0){break x}a=J[a+8>>2];if(a){continue}break}}c=Kb(0);if((c|0)==-1){break u}g=b;d=J[4968];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=J[4959];if(d){a=J[4957];f=a+g|0;if(d>>>0<f>>>0|a>>>0>=f>>>0){break u}}a=Kb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=Kb(g);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=J[4969];c=c+(j-g|0)&0-c;if((Kb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}J[4960]=J[4960]|4}c=Kb(b);a=Kb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=J[4957]+g|0;J[4957]=a;if(a>>>0>M[4958]){J[4958]=a}y:{e=J[4855];if(e){a=19844;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break y}a=J[a+8>>2];if(a){continue}break}break f}a=J[4853];if(!(a>>>0<=c>>>0?a:0)){J[4853]=c}a=0;J[4962]=g;J[4961]=c;J[4857]=-1;J[4858]=J[4967];J[4964]=0;while(1){d=a<<3;b=d+19436|0;J[d+19444>>2]=b;J[d+19448>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4852]=b;a=a+c|0;J[4855]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4856]=J[4971];break e}if(K[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}J[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;J[4855]=c;b=J[4852]+g|0;a=b-a|0;J[4852]=a;J[c+4>>2]=a|1;J[(b+e|0)+4>>2]=40;J[4856]=J[4971];break e}d=0;break b}c=0;break c}if(M[4853]>c>>>0){J[4853]=c}b=c+g|0;a=19844;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break E}break}if(!(K[a+12|0]&8)){break D}}a=19844;while(1){b=J[a>>2];if(b>>>0<=e>>>0){f=b+J[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){J[4855]=i;a=J[4852]+a|0;J[4852]=a;J[i+4>>2]=a|1;break A}if(J[4854]==(g|0)){J[4854]=i;a=J[4851]+a|0;J[4851]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break A}f=J[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=J[g+8>>2];b=f>>>3|0;c=J[g+12>>2];if((c|0)==(d|0)){m=19396,n=J[4849]&Ll(b),J[m>>2]=n;break F}J[d+12>>2]=c;J[c+8>>2]=d;break F}h=J[g+24>>2];c=J[g+12>>2];G:{if((g|0)!=(c|0)){b=J[g+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break G}H:{f=g+20|0;b=J[f>>2];if(b){break H}f=g+16|0;b=J[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=J[f>>2];if(b){continue}f=c+16|0;b=J[c+16>>2];if(b){continue}break}J[d>>2]=0}if(!h){break F}d=J[g+28>>2];b=(d<<2)+19700|0;I:{if(J[b>>2]==(g|0)){J[b>>2]=c;if(c){break I}m=19400,n=J[4850]&Ll(d),J[m>>2]=n;break F}J[h+(J[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}J[c+24>>2]=h;b=J[g+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[g+20>>2];if(!b){break F}J[c+20>>2]=b;J[b+24>>2]=c}g=e+g|0;f=J[g+4>>2];a=a+e|0}J[g+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+19436|0;c=J[4849];a=1<<(a>>>3);J:{if(!(c&a)){J[4849]=a|c;a=b;break J}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=S(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+19700|0;d=J[4850];c=1<<f;K:{if(!(d&c)){J[4850]=c|d;J[b>>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4852]=b;a=a+c|0;J[4855]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4856]=J[4971];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0<e+16>>>0?e:a;J[d+4>>2]=27;a=J[4964];J[d+16>>2]=J[4963];J[d+20>>2]=a;a=J[4962];J[d+8>>2]=J[4961];J[d+12>>2]=a;J[4963]=d+8;J[4962]=g;J[4961]=c;J[4964]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0<f>>>0){continue}break}if((d|0)==(e|0)){break e}J[d+4>>2]=J[d+4>>2]&-2;f=d-e|0;J[e+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+19436|0;c=J[4849];a=1<<(f>>>3);L:{if(!(c&a)){J[4849]=a|c;a=b;break L}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19700|0;d=J[4850];c=1<<a;M:{if(!(d&c)){J[4850]=c|d;J[b>>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break e}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=J[4852];if(a>>>0<=h>>>0){break d}b=a-h|0;J[4852]=b;c=J[4855];a=c+h|0;J[4855]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[4804]=48;a=0;break a}N:{if(!g){break N}b=J[d+28>>2];a=(b<<2)+19700|0;O:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break O}j=Ll(b)&j;J[4850]=j;break N}J[g+(J[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}J[c+24>>2]=g;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break N}J[c+20>>2]=a;J[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break P}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+19436|0;c=J[4849];a=1<<(f>>>3);Q:{if(!(c&a)){J[4849]=a|c;a=b;break Q}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19700|0;R:{c=1<<a;S:{if(!(c&j)){J[4850]=c|j;J[b>>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break P}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=J[c+28>>2];a=(b<<2)+19700|0;U:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break U}m=19400,n=Ll(b)&j,J[m>>2]=n;break T}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break T}J[d+20>>2]=a;J[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break V}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+19436|0;e=J[4854];a=1<<(k>>>3);W:{if(!(a&g)){J[4849]=a|g;a=b;break W}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a}J[4854]=d;J[4851]=f}a=c+8|0}ba=l+16|0;return a|0}function Kh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0);e=ba+-64|0;ba=e;c=J[a+4>>2];i=J[a+8>>2];a:{if((c|0)==(i|0)){J[a+72>>2]=0;b=1;break a}d=i-c>>2;m=d>>>0<=1?1:d;j=m&3;h=J[J[a+28>>2]+4>>2];d=J[h+8>>2];if(m-1>>>0>=3){m=m&-4;while(1){l=g;g=b<<2;g=(((l+K[J[d+(J[g+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|4)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|8)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|12)+c>>2]<<2)>>2]+24|0]|0;b=b+4|0;k=k+4|0;if((m|0)!=(k|0)){continue}break}}if(j){while(1){g=K[J[d+(J[(b<<2)+c>>2]<<2)>>2]+24|0]+g|0;b=b+1|0;f=f+1|0;if((j|0)!=(f|0)){continue}break}}o=J[h+80>>2];J[a+72>>2]=g;if((c|0)==(i|0)){b=1;break a}m=0;while(1){b=J[(m<<2)+c>>2];J[e+60>>2]=b;b:{c:{d:{e:{f:{c=J[a+28>>2];i=J[J[J[c+4>>2]+8>>2]+(b<<2)>>2];switch(J[i+28>>2]-1|0){case 0:case 2:case 4:break e;case 8:break f;default:break b}}J[e+36>>2]=-1;J[e+32>>2]=2032;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;g=J[c+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;g=jb(g,e+60|0,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}g:{if((g|0)<=0){break g}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;d=0;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;h:{if(!yc(j,e+60|0,e+16|0)){break h}f=J[J[a+28>>2]+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);d=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);d=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;d=yc(f,e+60|0,e);if(H[e+11|0]>=0){break h}na(J[e>>2])}if(H[e+27|0]<0){na(J[e+16>>2])}i:{if(d){b=K[i+24|0];j:{if(!b){d=0;break j}b=b<<2;d=oa(b);pa(d,0,b)}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;De(j,e+60|0,e+16|0,K[i+24|0],d);if(H[e+27|0]<0){na(J[e+16>>2])}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=18;J[e+24>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);f=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);f=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;p=Ce(j,e+60|0,e+16|0);if(H[e+27|0]<0){na(J[e+16>>2])}ch(e+32|0,g,d,K[i+24|0],p);if(!d){break i}na(d);break i}if(!_g(e+32|0,i,g)){break g}}d=J[a+40>>2];k:{if((d|0)!=J[a+44>>2]){J[d>>2]=2032;b=J[e+36>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[d+4>>2]=b;b=J[e+44>>2];c=J[e+40>>2];if((b|0)!=(c|0)){b=b-c|0;if((b|0)<0){break d}c=oa(b);J[d+12>>2]=c;J[d+8>>2]=c;J[d+16>>2]=(b&-4)+c;b=J[e+40>>2];g=J[e+44>>2];if((b|0)!=(g|0)){while(1){N[c>>2]=N[b>>2];c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}J[d+12>>2]=c}N[d+20>>2]=N[e+52>>2];J[a+40>>2]=d+24;break k}f=0;l:{m:{n:{o:{b=J[a+40>>2];j=J[a+36>>2];d=(b-j|0)/24|0;c=d+1|0;if(c>>>0<178956971){g=(J[a+44>>2]-j|0)/24|0;h=g<<1;h=g>>>0>=89478485?178956970:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=178956971){break o}f=oa(P(h,24))}c=P(d,24)+f|0;J[c>>2]=2032;d=J[e+36>>2];J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+4>>2]=d;g=J[e+40>>2];k=J[e+44>>2];if((g|0)!=(k|0)){l=k-g|0;if((l|0)<0){break n}d=oa(l);J[c+8>>2]=d;J[c+16>>2]=(l&-4)+d;while(1){N[d>>2]=N[g>>2];d=d+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}J[c+12>>2]=d}d=P(h,24)+f|0;N[c+20>>2]=N[e+52>>2];g=c+24|0;if((b|0)==(j|0)){break m}while(1){c=c-24|0;J[c>>2]=2032;b=b-24|0;J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;N[c+20>>2]=N[b+20>>2];if((b|0)!=(j|0)){continue}break}J[a+44>>2]=d;d=J[a+40>>2];J[a+40>>2]=g;b=J[a+36>>2];J[a+36>>2]=c;if((b|0)==(d|0)){break l}while(1){d=d-24|0;da[J[J[d>>2]>>2]](d)|0;if((b|0)!=(d|0)){continue}break}break l}qa();B()}xa();B()}qa();B()}J[a+44>>2]=d;J[a+40>>2]=g;J[a+36>>2]=c}if(b){na(b)}}b=e+32|0;c=Mc(b,i,o);J[e>>2]=c;J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;je(b,i,e+16|0,c);b=J[e+16>>2];if(b){J[e+20>>2]=b;na(b)}b=J[a+64>>2];p:{if(b>>>0<M[a+68>>2]){c=J[e>>2];J[e>>2]=0;J[b>>2]=c;J[a+64>>2]=b+4;break p}c=0;q:{r:{s:{d=J[a+60>>2];g=J[a+64>>2]-d>>2;b=g+1|0;if(b>>>0<1073741824){d=J[a+68>>2]-d|0;i=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<i>>>0?i:b;if(d){if(d>>>0>=1073741824){break s}c=oa(d<<2)}i=J[e>>2];J[e>>2]=0;b=(g<<2)+c|0;J[b>>2]=i;d=(d<<2)+c|0;g=b+4|0;c=J[a+64>>2];i=J[a+60>>2];if((c|0)==(i|0)){break r}while(1){c=c-4|0;f=J[c>>2];J[c>>2]=0;b=b-4|0;J[b>>2]=f;if((c|0)!=(i|0)){continue}break}J[a+68>>2]=d;d=J[a+64>>2];J[a+64>>2]=g;c=J[a+60>>2];J[a+60>>2]=b;if((c|0)==(d|0)){break q}while(1){d=d-4|0;b=J[d>>2];J[d>>2]=0;if(b){Ka(b)}if((c|0)!=(d|0)){continue}break}break q}qa();B()}xa();B()}J[a+68>>2]=d;J[a+64>>2]=g;J[a+60>>2]=b}if(c){na(c)}}b=J[e>>2];J[e>>2]=0;if(b){Ka(b)}J[e+32>>2]=2032;b=J[e+40>>2];if(!b){break b}J[e+44>>2]=b;na(b);break b}J[e+32>>2]=2032;a=J[e+40>>2];if(a){J[e+44>>2]=a;na(a)}b=0;break a}j=0;t:{u:{g=K[i+24|0];v:{if(!g){d=0;break v}b=0;f=g<<2;d=oa(f);c=d;h=g&7;if(h){while(1){J[c>>2]=2147483647;c=c+4|0;b=b+1|0;if((h|0)!=(b|0)){continue}break}}if((g-1&1073741823)>>>0>=7){b=d+f|0;while(1){J[c+24>>2]=2147483647;J[c+28>>2]=2147483647;J[c+16>>2]=2147483647;J[c+20>>2]=2147483647;J[c+8>>2]=2147483647;J[c+12>>2]=2147483647;J[c>>2]=2147483647;J[c+4>>2]=2147483647;c=c+32|0;if((b|0)!=(c|0)){continue}break}}b=K[i+24|0];if(b){break u}}g=0;b=0;break t}b=b<<2;g=oa(b);pa(g,0,b);b=K[i+24|0]}if(!J[i+80>>2]){break c}while(1){$c(i,j,b<<24>>24,g);b=K[i+24|0];w:{if(!b){break w}c=0;if((b|0)!=1){l=b&254;f=0;while(1){h=c<<2;k=h+d|0;n=J[g+h>>2];if((n|0)<J[k>>2]){J[k>>2]=n}h=h|4;k=h+d|0;h=J[g+h>>2];if(J[k>>2]>(h|0)){J[k>>2]=h}c=c+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!(b&1)){break w}c=c<<2;f=c+d|0;c=J[c+g>>2];if(J[f>>2]<=(c|0)){break w}J[f>>2]=c}j=j+1|0;if(j>>>0<M[i+80>>2]){continue}break}break c}qa();B()}c=0;x:{if(!b){break x}y:{while(1){z:{k=(c<<2)+d|0;b=J[a+52>>2];A:{if((b|0)!=J[a+56>>2]){J[b>>2]=J[k>>2];J[a+52>>2]=b+4;break A}h=b;b=J[a+48>>2];f=h-b|0;l=f>>2;j=l+1|0;if(j>>>0>=1073741824){break z}h=f>>>1|0;j=f>>>0>=2147483644?1073741823:j>>>0<h>>>0?h:j;if(j){if(j>>>0>=1073741824){break y}h=oa(j<<2)}else{h=0}l=h+(l<<2)|0;J[l>>2]=J[k>>2];f=ta(h,b,f);J[a+56>>2]=f+(j<<2);J[a+52>>2]=l+4;J[a+48>>2]=f;if(!b){break A}na(b)}c=c+1|0;if(c>>>0<K[i+24|0]){continue}break x}break}qa();B()}xa();B()}if(g){na(g)}if(!d){break b}na(d)}b=1;m=m+1|0;c=J[a+4>>2];if(m>>>0<J[a+8>>2]-c>>2>>>0){continue}break}}ba=e- -64|0;return b|0}function ml(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ba-48|0;ba=i;h=J[a+4>>2];e=J[a+12>>2];J[i+40>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;l=J[J[J[h+4>>2]+8>>2]+(e<<2)>>2];d=i+8|0;if((b|0)==-1){b=bh(e,h)}a:{if((b|0)==-2){break a}if((da[J[J[h>>2]+8>>2]](h)|0)==1){j=ba-32|0;ba=j;k=J[J[J[h+4>>2]+8>>2]+(e<<2)>>2];b:{c:{d:{if((da[J[J[h>>2]+8>>2]](h)|0)!=1|b-1>>>0>5){break d}f=da[J[J[h>>2]+52>>2]](h)|0;g=da[J[J[h>>2]+60>>2]](h,e)|0;if(!f|!g){break d}c=da[J[J[h>>2]+56>>2]](h,e)|0;if(c){a=J[h+56>>2];J[j+20>>2]=c;J[j+16>>2]=a;J[j+28>>2]=g;J[j+24>>2]=g+12;e=j+16|0;a=0;e:{f:{switch(b-1|0){case 0:b=oa(60);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b>>2]=2748;a=b;break e;case 3:b=oa(168);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3512;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break e;case 4:b=oa(104);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b>>2]=3760;a=J[e+4>>2];J[b+88>>2]=J[e>>2];J[b+92>>2]=a;a=J[e+12>>2];J[b+96>>2]=J[e+8>>2];J[b+100>>2]=a;a=b;break e;case 5:break f;default:break e}}a=oa(144);J[a+4>>2]=k;J[a>>2]=3456;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;g:{h:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break h}b=oa(c);J[a+36>>2]=b;J[a+32>>2]=b;J[a+40>>2]=(c&-4)+b;c=J[d+24>>2];f=J[d+28>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+36>>2]=b}J[a>>2]=3400;b=J[e+4>>2];J[a+44>>2]=J[e>>2];J[a+48>>2]=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=4624;J[a>>2]=3996;b=J[e+4>>2];J[a+72>>2]=J[e>>2];J[a+76>>2]=b;b=J[e+12>>2];J[a+80>>2]=J[e+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=4232;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break g}qa();B()}break e}c=a;break d}a=J[h+56>>2];J[j+20>>2]=f;J[j+16>>2]=a;J[j+28>>2]=g;J[j+24>>2]=g+12;e=j+16|0;a=0;i:{j:{switch(b-1|0){case 0:b=oa(60);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b>>2]=4652;a=b;break i;case 3:b=oa(168);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5076;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break i;case 4:b=oa(104);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b>>2]=5312;a=J[e+4>>2];J[b+88>>2]=J[e>>2];J[b+92>>2]=a;a=J[e+12>>2];J[b+96>>2]=J[e+8>>2];J[b+100>>2]=a;a=b;break i;case 5:break j;default:break i}}a=oa(144);J[a+4>>2]=k;J[a>>2]=3456;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;k:{l:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break l}b=oa(c);J[a+36>>2]=b;J[a+32>>2]=b;J[a+40>>2]=(c&-4)+b;c=J[d+24>>2];f=J[d+28>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+36>>2]=b}J[a>>2]=5020;b=J[e+4>>2];J[a+44>>2]=J[e>>2];J[a+48>>2]=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=6120;J[a>>2]=5536;b=J[e+4>>2];J[a+72>>2]=J[e>>2];J[a+76>>2]=b;b=J[e+12>>2];J[a+80>>2]=J[e+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=5756;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break k}qa();B()}break i}c=a}ba=j+32|0;break b}qa();B()}if(c){break a}}c=oa(44);J[c+4>>2]=l;J[c>>2]=3456;a=J[d+4>>2];J[c+8>>2]=J[d>>2];J[c+12>>2]=a;a=J[d+12>>2];J[c+16>>2]=J[d+8>>2];J[c+20>>2]=a;a=J[d+20>>2];J[c+24>>2]=J[d+16>>2];J[c+28>>2]=a;J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;m:{a=J[d+24>>2];l=J[d+28>>2];if((a|0)!=(l|0)){f=l-a|0;if((f|0)<0){break m}b=oa(f);J[c+32>>2]=b;J[c+40>>2]=(f&-4)+b;while(1){J[b>>2]=J[a>>2];b=b+4|0;a=a+4|0;if((l|0)!=(a|0)){continue}break}J[c+36>>2]=b}J[c>>2]=6148;break a}qa();B()}a=J[i+32>>2];if(a){J[i+36>>2]=a;na(a)}ba=i+48|0;return c|0}function Ne(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,P=0;k=ba-336|0;ba=k;n=h;p=i&65535;o=d;m=e&65535;u=(e^i)&-2147483648;s=i>>>16&32767;q=e>>>16&32767;a:{b:{if(s-32767>>>0>4294934529&q-32767>>>0>=4294934530){break b}j=e&2147483647;if(!(!d&(j|0)==2147418112?!(b|c):j>>>0<2147418112)){r=d;u=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){r=h;u=i|32768;b=f;c=g;break a}if(!(b|d|(j^2147418112|c))){if(!(f|h|(e^2147418112|g))){b=0;c=0;u=2147450880;break a}u=u|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){b=0;c=0;break a}if(!(b|d|(c|j))){b=!(f|h|(e|g));r=b?0:r;u=b?2147450880:u;b=0;c=0;break a}if(!(f|h|(e|g))){u=u|2147418112;b=0;c=0;break a}if((j|0)==65535|j>>>0<65535){d=!(m|o);i=d;j=d?b:o;d=d<<6;h=d;i=S(i?c:m);d=d+((i|0)==32?S(j)+32|0:i)|0;Pa(k+320|0,b,c,o,m,d-15|0);v=16-d|0;o=J[k+328>>2];m=J[k+332>>2];c=J[k+324>>2];b=J[k+320>>2]}if(e>>>0>65535){break b}d=!(n|p);h=d;i=d?f:n;d=d<<6;e=d;h=S(h?g:p);d=d+((h|0)==32?S(i)+32|0:h)|0;Pa(k+304|0,f,g,n,p,d-15|0);v=(d+v|0)-16|0;n=J[k+312>>2];p=J[k+316>>2];f=J[k+304>>2];g=J[k+308>>2]}e=p|65536;A=e;B=n;d=n;j=e<<15|d>>>17;e=d<<15|g>>>17;d=e;i=0-d|0;h=j;j=1963258675-(j+((d|0)!=0)|0)|0;Xa(k+288|0,d,h,0,0,i,j,0,0);d=J[k+296>>2];Xa(k+272|0,0-d|0,0-(J[k+300>>2]+((d|0)!=0)|0)|0,0,0,i,j,0,0);d=J[k+280>>2];i=d<<1|J[k+276>>2]>>>31;d=J[k+284>>2]<<1|d>>>31;Xa(k+256|0,i,d,0,0,e,h,0,0);j=J[k+264>>2];Xa(k+240|0,i,d,0,0,0-j|0,0-(J[k+268>>2]+((j|0)!=0)|0)|0,0,0);i=J[k+248>>2];j=i<<1|J[k+244>>2]>>>31;d=J[k+252>>2]<<1|i>>>31;Xa(k+224|0,j,d,0,0,e,h,0,0);i=J[k+232>>2];Xa(k+208|0,j,d,0,0,0-i|0,0-(J[k+236>>2]+((i|0)!=0)|0)|0,0,0);d=J[k+216>>2];i=d<<1|J[k+212>>2]>>>31;d=J[k+220>>2]<<1|d>>>31;Xa(k+192|0,i,d,0,0,e,h,0,0);j=J[k+200>>2];Xa(k+176|0,i,d,0,0,0-j|0,0-(J[k+204>>2]+((j|0)!=0)|0)|0,0,0);i=e;e=J[k+184>>2];d=h;n=e<<1|J[k+180>>2]>>>31;h=n-1|0;e=(J[k+188>>2]<<1|e>>>31)-!n|0;Xa(k+160|0,i,d,0,0,h,e,0,0);d=h;Xa(k+144|0,f<<15,g<<15|f>>>17,0,0,d,e,0,0);t=k+112|0;y=J[k+168>>2];h=J[k+172>>2];n=J[k+160>>2];i=J[k+152>>2];l=n+i|0;p=J[k+164>>2];j=p+J[k+156>>2]|0;j=i>>>0>l>>>0?j+1|0:j;i=j;j=(p|0)==(j|0)&l>>>0<n>>>0|j>>>0<p>>>0;p=j+y|0;j=j>>>0>p>>>0?h+1|0:h;n=!i&l>>>0>1|(i|0)!=0;h=n+p|0;j=n>>>0>h>>>0?j+1|0:j;Xa(t,d,e,0,0,0-h|0,0-(((h|0)!=0)+j|0)|0,0,0);Xa(k+128|0,1-l|0,0-((l>>>0>1)+i|0)|0,0,0,d,e,0,0);H=(q-s|0)+v|0;e=J[k+116>>2];t=e;d=J[k+112>>2];j=e<<1|d>>>31;n=d<<1;q=j;d=j;h=J[k+140>>2];z=h;e=J[k+136>>2];j=h<<1|e>>>31;i=e<<1|J[k+132>>2]>>>31;h=i+n|0;d=d+j|0;d=h>>>0<i>>>0?d+1|0:d;e=d;d=d-(h>>>0<13927)|0;x=d;y=d;l=0;j=m|65536;I=j;K=o;d=o;j=j<<1|d>>>31;N=d<<1;O=j;D=j;d=Hl(x,l,j,0);j=ca;E=d;w=j;v=b<<1;d=c<<1|b>>>31;s=d;j=0;p=j;i=h-13927|0;x=(e|0)==(x|0)&i>>>0<h>>>0|e>>>0>x>>>0;e=(e|0)==(q|0)&h>>>0<n>>>0|e>>>0<q>>>0;d=J[k+120>>2];h=J[k+124>>2]<<1|d>>>31;d=d<<1|t>>>31;j=h;l=z>>>31|0;d=l+d|0;j=d>>>0<l>>>0?j+1|0:j;h=d;d=d+e|0;l=h>>>0>d>>>0?j+1|0:j;e=d;d=d+x|0;l=e>>>0>d>>>0?l+1|0:l;e=d-1|0;x=l-!d|0;q=0;j=Hl(s,p,x,q);d=j+E|0;h=ca+w|0;h=d>>>0<j>>>0?h+1|0:h;t=(w|0)==(h|0)&d>>>0<E>>>0|h>>>0<w>>>0;j=0;z=e;L=c>>>31|0;C=L|o<<1;w=0;e=Hl(e,j,C,w);o=e+d|0;j=ca+h|0;l=0;j=e>>>0>o>>>0?j+1|0:j;n=j;d=(j|0)==(h|0)&d>>>0>o>>>0|h>>>0>j>>>0;e=d;d=d+t|0;l=e>>>0>d>>>0?1:l;e=Hl(D,p,x,q);d=e+d|0;j=ca+l|0;t=d;d=d>>>0<e>>>0?j+1|0:j;e=Hl(D,p,z,w);m=ca;h=e;e=Hl(C,w,x,q);l=h+e|0;j=ca+m|0;j=e>>>0>l>>>0?j+1|0:j;e=j;j=(m|0)==(j|0)&h>>>0>l>>>0|j>>>0<m>>>0;m=t+e|0;d=d+j|0;d=m>>>0<e>>>0?d+1|0:d;t=m;m=d;e=0;d=e+o|0;j=l+n|0;j=d>>>0<e>>>0?j+1|0:j;e=j;h=(j|0)==(n|0)&d>>>0<o>>>0|j>>>0<n>>>0;j=m;l=h;h=h+t|0;j=l>>>0>h>>>0?j+1|0:j;F=h;l=j;t=d;m=d;o=e;E=i;d=Hl(i,0,C,w);h=ca;e=d;i=Hl(y,r,s,r);d=d+i|0;j=ca+h|0;j=d>>>0<i>>>0?j+1|0:j;i=(h|0)==(j|0)&d>>>0<e>>>0|h>>>0>j>>>0;h=j;G=v&-2;e=Hl(z,w,G,0);n=e+d|0;j=ca+j|0;j=e>>>0>n>>>0?j+1|0:j;e=j;d=(j|0)==(h|0)&d>>>0>n>>>0|h>>>0>j>>>0;h=0;i=d+i|0;d=(i>>>0<d>>>0?1:h)+o|0;j=l;m=i+m|0;d=m>>>0<i>>>0?d+1|0:d;i=d;d=(d|0)==(o|0)&m>>>0<t>>>0|d>>>0<o>>>0;h=d;d=d+F|0;j=h>>>0>d>>>0?j+1|0:j;P=d;t=j;d=Hl(D,p,E,r);F=ca;D=d;h=Hl(x,q,G,r);d=d+h|0;j=ca+F|0;o=d;p=Hl(y,r,C,w);l=d+p|0;h=d>>>0<h>>>0?j+1|0:j;d=h+ca|0;d=l>>>0<p>>>0?d+1|0:d;q=l;j=Hl(s,r,z,w);p=l+j|0;l=ca+d|0;l=j>>>0>p>>>0?l+1|0:l;z=0;C=(d|0)==(l|0)&p>>>0<q>>>0|d>>>0>l>>>0;j=(h|0)==(F|0)&o>>>0<D>>>0|h>>>0<F>>>0;d=(d|0)==(h|0)&o>>>0>q>>>0|d>>>0<h>>>0;d=d+j|0;d=d+C|0;h=l;q=h+m|0;j=(d|z)+i|0;j=h>>>0>q>>>0?j+1|0:j;o=j;d=(i|0)==(j|0)&m>>>0>q>>>0|i>>>0>j>>>0;j=t;h=d;d=d+P|0;j=h>>>0>d>>>0?j+1|0:j;z=d;i=j;d=Hl(y,r,G,r);y=ca;m=d;h=Hl(s,r,E,r);d=d+h|0;j=ca+y|0;j=d>>>0<h>>>0?j+1|0:j;t=0;h=(j|0)==(y|0)&d>>>0<m>>>0|j>>>0<y>>>0;m=j;d=j+n|0;j=(h|t)+e|0;j=d>>>0<m>>>0?j+1|0:j;h=j;m=(e|0)==(j|0)&d>>>0<n>>>0|e>>>0>j>>>0;j=p;p=0;n=p+d|0;l=h+j|0;j=0;l=n>>>0<p>>>0?l+1|0:l;d=(h|0)==(l|0)&d>>>0>n>>>0|h>>>0>l>>>0;e=d;d=d+m|0;j=(e>>>0>d>>>0?1:j)+o|0;l=i;e=d;d=d+q|0;j=e>>>0>d>>>0?j+1|0:j;e=j;h=(o|0)==(j|0)&d>>>0<q>>>0|j>>>0<o>>>0;i=h;h=h+z|0;l=i>>>0>h>>>0?l+1|0:l;i=l;c:{if((l|0)==131071|l>>>0<131071){K=N|L;I=w|O;Xa(k+80|0,d,e,h,i,f,g,B,A);l=J[k+84>>2];p=l;j=b<<17;n=0;m=J[k+88>>2];c=n-m|0;b=J[k+80>>2];l=(l|b)!=0;o=c-l|0;m=(j-(J[k+92>>2]+(m>>>0>n>>>0)|0)|0)-(c>>>0<l>>>0)|0;n=0-b|0;p=0-(((b|0)!=0)+p|0)|0;b=H+16382|0;break c}d=(e&1)<<31|d>>>1;e=h<<31|e>>>1;h=(i&1)<<31|h>>>1;i=i>>>1|0;Xa(k+96|0,d,e,h,i,f,g,B,A);o=J[k+100>>2];s=o;v=J[k+104>>2];n=0-v|0;l=J[k+96>>2];m=(o|l)!=0;o=n-m|0;m=((b<<16)-(J[k+108>>2]+(p>>>0<v>>>0)|0)|0)-(m>>>0>n>>>0)|0;n=0-l|0;p=0-(((l|0)!=0)+s|0)|0;v=b;s=c;b=H+16383|0}if((b|0)>=32767){u=u|2147418112;b=0;c=0;break a}d:{if((b|0)>0){l=m<<1|o>>>31;o=o<<1|p>>>31;m=l;v=h;s=i&65535|b<<16;l=p<<1|n>>>31;i=n<<1;break d}if((b|0)<=-113){b=0;c=0;break a}Gb(k- -64|0,d,e,h,i,1-b|0);Pa(k+48|0,v,s,K,I,b+112|0);d=J[k+64>>2];e=J[k+68>>2];v=J[k+72>>2];s=J[k+76>>2];Xa(k+32|0,f,g,B,A,d,e,v,s);b=J[k+40>>2];c=J[k+56>>2];l=J[k+36>>2];o=b<<1|l>>>31;n=c-o|0;m=J[k+60>>2]-((J[k+44>>2]<<1|b>>>31)+(c>>>0<o>>>0)|0)|0;b=J[k+32>>2];h=l<<1|b>>>31;j=b<<1;i=J[k+52>>2];c=J[k+48>>2];b=(h|0)==(i|0)&j>>>0>c>>>0|h>>>0>i>>>0;o=n-b|0;m=m-(b>>>0>n>>>0)|0;l=i-((c>>>0<j>>>0)+h|0)|0;i=c-j|0}b=i;Xa(k+16|0,f,g,B,A,3,0,0,0);Xa(k,f,g,B,A,5,0,0,0);c=0;h=l+c|0;j=d&1;b=b+j|0;h=i>>>0>b>>>0?h+1|0:h;i=b;g=(g|0)==(h|0)&b>>>0>f>>>0|g>>>0<h>>>0;l=m;b=(c|0)==(h|0)&b>>>0<j>>>0|c>>>0>h>>>0;f=b+o|0;l=b>>>0>f>>>0?l+1|0:l;j=e;b=(l|0)==(A|0);b=b&(f|0)==(B|0)?g:b&f>>>0>B>>>0|l>>>0>A>>>0;c=b;b=b+d|0;j=c>>>0>b>>>0?j+1|0:j;c=j;d=(e|0)==(j|0)&b>>>0<d>>>0|e>>>0>j>>>0;j=s;e=d;d=d+v|0;j=e>>>0>d>>>0?j+1|0:j;g=d;e=J[k+20>>2];m=(e|0)==(h|0)&M[k+16>>2]<i>>>0|e>>>0<h>>>0;e=J[k+28>>2];d=J[k+24>>2];e=j>>>0<2147418112&((d|0)==(f|0)&(e|0)==(l|0)?m:(e|0)==(l|0)&d>>>0<f>>>0|e>>>0<l>>>0);d=c;m=e;e=b+e|0;d=m>>>0>e>>>0?d+1|0:d;b=(c|0)==(d|0)&b>>>0>e>>>0|c>>>0>d>>>0;c=b;b=b+g|0;j=c>>>0>b>>>0?j+1|0:j;g=b;c=J[k+4>>2];h=(c|0)==(h|0)&M[k>>2]<i>>>0|c>>>0<h>>>0;c=J[k+12>>2];b=J[k+8>>2];b=j>>>0<2147418112&((b|0)==(f|0)&(c|0)==(l|0)?h:(c|0)==(l|0)&b>>>0<f>>>0|c>>>0<l>>>0);c=b;b=b+e|0;l=c>>>0>b>>>0?d+1|0:d;c=l;e=(d|0)==(l|0)&b>>>0<e>>>0|d>>>0>l>>>0;d=j;f=e;e=e+g|0;d=f>>>0>e>>>0?d+1|0:d;r=e|r;u=d|u}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=r;J[a+12>>2]=u;ba=k+336|0}function ye(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;s=ba-32|0;ba=s;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;t=J[e+20>>2];if(!J[e+16>>2]&(t|0)<=0|(t|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);t=J[e+20>>2];if(!J[e+16>>2]&(t|0)<=0|(t|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){F=a+12|0;za(F);G=a+44|0;d=G;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];H=a- -64|0;d=H;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];I=a+84|0;d=I;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[s+24>>2]=J[b+8>>2];d=J[b+4>>2];J[s+16>>2]=J[b>>2];J[s+20>>2]=d;J[s+8>>2]=J[c+8>>2];b=J[c+4>>2];J[s>>2]=J[c>>2];J[s+4>>2]=b;c=0;b=0;f=ba-32|0;ba=f;o=a;i=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(i){if(i>>>0>=1073741824){break b}a=i<<2;c=oa(a);J[f+8>>2]=c;b=a+c|0;J[f+16>>2]=b;pa(c,0,a);J[f+12>>2]=b}a=J[o+140>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);i=J[o+8>>2];c=J[f+8>>2];b=J[f+12>>2]}J[a+4>>2]=b;J[a>>2]=c;J[a+8>>2]=J[f+16>>2];c=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;b=0;c:{if(i){if(i>>>0>=1073741824){break c}a=i<<2;b=oa(a);J[f+8>>2]=b;c=a+b|0;J[f+16>>2]=c;pa(b,0,a);J[f+12>>2]=c}a=J[o+152>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);c=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=c;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];t=J[s+20>>2];z=J[s+24>>2];d=J[s+4>>2];C=J[s+8>>2];b=J[s>>2];c=J[s+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;v=(a>>>0)/113|0;a=J[J[f+12>>2]+(v<<2)>>2]+P(a-P(v,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=C;J[a+12>>2]=b;J[a+4>>2]=t;J[a+8>>2]=z;J[a>>2]=c;i=J[f+28>>2]+1|0;J[f+28>>2]=i;if(i){a=z;L=a&-4;K=a&3;N=o+44|0;m=o+12|0;O=o+84|0;Q=a>>>0<4;while(1){b=J[f+12>>2];h=J[f+24>>2];g=i-1|0;a=h+g|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;E=J[a+32>>2];c=J[a+24>>2];v=J[a+12>>2];a=J[a>>2];J[f+28>>2]=g;g=J[f+16>>2];if((((b|0)!=(g|0)?P(g-b>>2,113)-1|0:0)-(h+i|0)|0)+1>>>0>=226){na(J[g-4>>2]);J[f+16>>2]=J[f+16>>2]-4}g=J[o>>2];i=(c|0)!=(J[o+8>>2]-1|0)?c+1|0:0;q=i<<2;D=P(E,12);h=D+J[o+152>>2]|0;c=J[q+J[h>>2]>>2];d:{e:{if((g|0)==(c|0)){break e}f:{g:{j=v-a|0;if(j>>>0<=2){g=J[o+128>>2];J[g>>2]=i;c=1;b=J[o+8>>2];if(b>>>0>1){break g}break f}h=J[o+140>>2];b=h+D|0;n=h;h=D+12|0;bb(n+h|0,J[b>>2],J[b+4>>2]);b=J[h+J[o+140>>2]>>2]+q|0;g=J[b>>2]+(1<<g+(c^-1))|0;J[b>>2]=g;b=a;h:{if((a|0)==(v|0)){break h}y=J[t+24>>2];n=y+q|0;b=v;c=a;if(!z){if(g>>>0>M[n>>2]){break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}if(g>>>0<=M[(J[d+24>>2]+q|0)+(P(b,C)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(b|0)){continue}break}break h}while(1){h=P(c,z)<<2;if(g>>>0>M[h+n>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}r=J[d+24>>2]+(P(b,C)<<2)|0;if(g>>>0<=M[r+q>>2]){continue}break}w=h+y|0;u=0;h=0;p=0;if(!Q){while(1){k=h<<2;l=k+w|0;x=J[l>>2];A=l;l=k+r|0;J[A>>2]=J[l>>2];J[l>>2]=x;l=k|4;x=l+w|0;A=J[x>>2];l=l+r|0;J[x>>2]=J[l>>2];J[l>>2]=A;l=k|8;x=l+w|0;A=J[x>>2];l=l+r|0;J[x>>2]=J[l>>2];J[l>>2]=A;k=k|12;l=k+w|0;x=J[l>>2];k=k+r|0;J[l>>2]=J[k>>2];J[k>>2]=x;h=h+4|0;p=p+4|0;if((L|0)!=(p|0)){continue}break}}if(K){while(1){k=h<<2;p=k+w|0;l=J[p>>2];k=k+r|0;J[p>>2]=J[k>>2];J[k>>2]=l;h=h+1|0;u=u+1|0;if((K|0)!=(u|0)){continue}break}}c=c+1|0;if((c|0)!=(b|0)){continue}break}}r=b-a|0;w=v-b|0;if((r|0)!=(w|0)){xc(O,r>>>0<w>>>0)}c=J[m>>2];n=J[c+8>>2];g=J[c+12>>2];h=(j>>>1|0)-(r>>>0<w>>>0?r:w)|0;h=h<<24|(h&65280)<<8|(h>>>8&65280|h>>>24);h=h>>>4&252645135|(h&252645135)<<4;h=h>>>2&858993459|(h&858993459)<<2;l=h>>>1&1431655765|(h&1431655765)<<1;h=S(j)^31;p=32-h|0;k=l>>>p|0;j=Kl(k);n=j+n|0;g=j>>>0>n>>>0?g+1|0:g;J[c+8>>2]=n;J[c+12>>2]=g;g=h-j|0;n=g;j=g+J[c>>2]|0;g=J[c+4>>2]+(g>>31)|0;J[c>>2]=j;J[c+4>>2]=j>>>0<n>>>0?g+1|0:g;i:{j:{k:{l:{c=J[m+28>>2];u=32-c|0;m:{if((u|0)>=(h|0)){g=c+h|0;J[m+28>>2]=g;n=J[m+24>>2]&(-1>>>p<<c^-1)|k<<c;J[m+24>>2]=n;if((g|0)!=32){break i}c=J[m+16>>2];if((c|0)!=J[m+20>>2]){J[c>>2]=n;J[m+16>>2]=c+4;h=0;c=0;break m}g=c;c=J[m+12>>2];k=g-c|0;u=k>>2;j=u+1|0;if(j>>>0>=1073741824){break l}h=0;g=0;p=k>>>1|0;j=k>>>0>=2147483644?1073741823:j>>>0<p>>>0?p:j;if(j){if(j>>>0>=1073741824){break k}g=oa(j<<2)}u=(u<<2)+g|0;J[u>>2]=n;g=ta(g,c,k);J[m+20>>2]=g+(j<<2);J[m+16>>2]=u+4;J[m+12>>2]=g;if(!c){c=0;break m}na(c);c=0;break m}p=J[m+24>>2]&(-1<<c^-1)|k<<c;J[m+24>>2]=p;c=J[m+16>>2];n:{if((c|0)!=J[m+20>>2]){J[c>>2]=p;J[m+16>>2]=c+4;break n}g=c;c=J[m+12>>2];g=g-c|0;y=g>>2;j=y+1|0;if(j>>>0>=1073741824){break j}n=g>>>1|0;j=g>>>0>=2147483644?1073741823:j>>>0<n>>>0?n:j;if(j){if(j>>>0>=1073741824){break k}n=oa(j<<2)}else{n=0}y=n+(y<<2)|0;J[y>>2]=p;g=ta(n,c,g);J[m+20>>2]=g+(j<<2);J[m+16>>2]=y+4;J[m+12>>2]=g;if(!c){break n}na(c)}c=h-u|0;h=-1>>>32-c&k>>>u}J[m+28>>2]=c;J[m+24>>2]=h;break i}qa();B()}xa();B()}qa();B()}c=J[o+152>>2];g=c+D|0;h=J[g>>2];q=h+q|0;J[q>>2]=J[q>>2]+1;q=E+1|0;bb(c+P(q,12)|0,h,J[g+4>>2]);if((a|0)!=(b|0)){h=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];g=J[f+12>>2];if((h|0)==(((c|0)!=(g|0)?P(c-g>>2,113)-1|0:0)|0)){fb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;g=J[f+12>>2]}c=(h>>>0)/113|0;c=J[g+(c<<2)>>2]+P(h-P(c,113)|0,36)|0;J[c+32>>2]=E;J[c+28>>2]=r;J[c+24>>2]=i;J[c+16>>2]=t;J[c+12>>2]=b;J[c+4>>2]=t;J[c+8>>2]=z;J[c>>2]=a;J[c+20>>2]=z;J[f+28>>2]=J[f+28>>2]+1}if((b|0)==(v|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;a=J[f+16>>2];c=J[f+12>>2];if((g|0)==(((a|0)!=(c|0)?P(a-c>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}a=(g>>>0)/113|0;a=J[c+(a<<2)>>2]+P(g-P(a,113)|0,36)|0;J[a+32>>2]=q;J[a+28>>2]=w;J[a+24>>2]=i;J[a+16>>2]=d;J[a+20>>2]=C;J[a+12>>2]=v;J[a+4>>2]=t;J[a>>2]=b;J[a+8>>2]=z;i=J[f+28>>2]+1|0;J[f+28>>2]=i;break d}while(1){i=(b-1|0)!=(i|0)?i+1|0:0;J[g+(c<<2)>>2]=i;b=J[o+8>>2];c=c+1|0;if(b>>>0>c>>>0){continue}break}}if(!b|(a|0)==(v|0)){break e}g=0;c=1;while(1){i=0;o:{if(!c){c=0;break o}v=J[t+24>>2]+(P(J[t+4>>2],a+g|0)<<2)|0;while(1){c=J[o>>2];q=J[J[o+128>>2]+(i<<2)>>2]<<2;r=J[q+J[h>>2]>>2];if((c|0)!=(r|0)){Ib(N,c-r|0,J[v+q>>2]);b=J[o+8>>2]}c=b;i=i+1|0;if(c>>>0>i>>>0){continue}break}}g=g+1|0;if((j|0)!=(g|0)){continue}break}}i=J[f+28>>2]}if(i){continue}break}}J[f+28>>2]=0;a=J[f+16>>2];i=J[f+12>>2];b=a-i|0;if(b>>>0>=9){while(1){na(J[i>>2]);i=J[f+12>>2]+4|0;J[f+12>>2]=i;a=J[f+16>>2];b=a-i|0;if(b>>>0>8){continue}break}}c=56;p:{switch((b>>>2|0)-1|0){case 1:c=113;case 0:J[f+24>>2]=c;break;default:break p}}q:{if((a|0)==(i|0)){break q}while(1){na(J[i>>2]);i=i+4|0;if((i|0)!=(a|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break q}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}ya(F,e);eb(G,e);eb(H,e);eb(I,e)}ba=s+32|0;return 1}function Re(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,B=0,C=0;m=ba-560|0;ba=m;J[m+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;y=1173;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;y=1176;break a}s=e&1;y=s?1179:1174;z=!s}b:{if((g&2146435072)==2146435072){g=s+3|0;Qa(a,32,c,g,e&-65537);Oa(a,y,s);d=f&32;Oa(a,b!=b?d?1434:1643:d?1506:1647,3);Qa(a,32,c,g,e^8192);n=(c|0)<(g|0)?g:c;break b}u=m+16|0;c:{d:{e:{b=Ve(b,m+44|0);b=b+b;if(b!=0){g=J[m+44>>2];J[m+44>>2]=g-1;w=f|32;if((w|0)!=97){break e}break c}w=f|32;if((w|0)==97){break c}k=J[m+44>>2];l=(d|0)<0?6:d;break d}k=g-29|0;J[m+44>>2]=k;b=b*268435456;l=(d|0)<0?6:d}q=(m+48|0)+((k|0)>=0?288:0)|0;h=q;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}J[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;i=q;break f}i=q;d=k;while(1){o=(d|0)>=29?29:d;g=h-4|0;g:{if(i>>>0>g>>>0){break g}d=0;while(1){j=J[g>>2];x=d;d=o&31;if((o&63)>>>0>=32){n=j<<d;d=0}else{n=(1<<d)-1&j>>>32-d;d=j<<d}x=x+d|0;j=n+p|0;d=Jl(x,d>>>0>x>>>0?j+1|0:j,1e9,0);B=g,C=x-Hl(d,ca,1e9,0)|0,J[B>>2]=C;g=g-4|0;if(i>>>0<=g>>>0){continue}break}if(!d){break g}i=i-4|0;J[i>>2]=d}while(1){g=h;if(i>>>0<g>>>0){h=g-4|0;if(!J[h>>2]){continue}}break}d=J[m+44>>2]-o|0;J[m+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((l+25>>>0)/9|0)+1|0;p=(w|0)==102;while(1){d=0-d|0;n=(d|0)>=9?9:d;h:{if(g>>>0<=i>>>0){h=J[i>>2];break h}o=1e9>>>n|0;j=-1<<n^-1;d=0;h=i;while(1){x=d;d=J[h>>2];J[h>>2]=x+(d>>>n|0);d=P(o,d&j);h=h+4|0;if(h>>>0<g>>>0){continue}break}h=J[i>>2];if(!d){break h}J[g>>2]=d;g=g+4|0}d=n+J[m+44>>2]|0;J[m+44>>2]=d;i=(!h<<2)+i|0;h=p?q:i;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=i>>>0){break i}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break i}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=(l-((w|0)!=102?d:0)|0)-((w|0)==103&(l|0)!=0)|0;if((h|0)<(P(g-q>>2,9)-9|0)){o=h+9216|0;j=(o|0)/9|0;k=((((k|0)<0?4:292)+m|0)+(j<<2)|0)-4048|0;h=10;n=o-P(j,9)|0;if((n|0)<=7){while(1){h=P(h,10);n=n+1|0;if((n|0)!=8){continue}break}}o=J[k>>2];t=(o>>>0)/(h>>>0)|0;p=o-P(h,t)|0;j=k+4|0;j:{if(!p&(j|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(H[k-4|0]&1)|((h|0)!=1e9|i>>>0>=k>>>0)){break k}}b=9007199254740994}r=(g|0)==(j|0)?1:1.5;j=h>>>1|0;r=j>>>0>p>>>0?.5:(j|0)==(p|0)?r:1.5;if(!(K[y|0]!=45|z)){r=-r;b=-b}j=o-p|0;J[k>>2]=j;if(b+r==b){break j}d=h+j|0;J[k>>2]=d;if(d>>>0>=1e9){while(1){J[k>>2]=0;k=k-4|0;if(k>>>0<i>>>0){i=i-4|0;J[i>>2]=0}d=J[k>>2]+1|0;J[k>>2]=d;if(d>>>0>999999999){continue}break}}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break j}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){j=g;o=g>>>0<=i>>>0;if(!o){g=j-4|0;if(!J[g>>2]){continue}}break}l:{if((w|0)!=103){k=e&8;break l}h=l?l:1;g=(h|0)>(d|0)&(d|0)>-5;l=(g?d^-1:-1)+h|0;f=(g?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(o){break m}k=J[j-4>>2];if(!k){break m}n=10;g=0;if((k>>>0)%10|0){break m}while(1){h=g;g=g+1|0;n=P(n,10);if(!((k>>>0)%(n>>>0)|0)){continue}break}g=h^-1}h=P(j-q>>2,9);if((f&-33)==70){k=0;g=(g+h|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g;break l}k=0;g=((d+h|0)+g|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g}n=-1;o=k|l;if(((o?2147483645:2147483646)|0)<(l|0)){break b}p=(((o|0)!=0)+l|0)+1|0;h=f&-33;n:{if((h|0)==70){if((p^2147483647)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Mb((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;H[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;H[t|0]=f;H[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(p^2147483647)){break b}}d=g+p|0;if((d|0)>(s^2147483647)){break b}p=d+s|0;Qa(a,32,c,p,e);Oa(a,y,s);Qa(a,48,c,p,e^65536);o:{p:{q:{if((h|0)==70){f=m+16|0;d=f|8;k=f|9;h=i>>>0>q>>>0?q:i;i=h;while(1){g=Mb(J[i>>2],0,k);r:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break r}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}break r}if((g|0)!=(k|0)){break r}H[m+24|0]=48;g=d}Oa(a,g,k-g|0);i=i+4|0;if(q>>>0>=i>>>0){continue}break}if(o){Oa(a,1981,1)}if((l|0)<=0|i>>>0>=j>>>0){break q}while(1){g=Mb(J[i>>2],0,k);if(g>>>0>m+16>>>0){while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}}Oa(a,g,(l|0)>=9?9:l);g=l-9|0;i=i+4|0;if(j>>>0<=i>>>0){break p}d=(l|0)>9;l=g;if(d){continue}break}break p}s:{if((l|0)<0){break s}q=i>>>0<j>>>0?j:i+4|0;f=m+16|0;d=f|8;j=f|9;h=i;while(1){g=Mb(J[h>>2],0,j);if((j|0)==(g|0)){H[m+24|0]=48;g=d}t:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break t}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}break t}Oa(a,g,1);g=g+1|0;if(!(k|l)){break t}Oa(a,1981,1)}f=j-g|0;Oa(a,g,(f|0)>(l|0)?l:f);l=l-f|0;h=h+4|0;if(q>>>0<=h>>>0){break s}if((l|0)>=0){continue}break}}Qa(a,48,l+18|0,18,0);Oa(a,t,u-t|0);break o}g=l}Qa(a,48,g+9|0,9,0)}Qa(a,32,c,p,e^8192);n=(c|0)<(p|0)?p:c;break b}k=(f<<26>>31&9)+y|0;u:{if(d>>>0>11){break u}g=12-d|0;r=16;while(1){r=r*16;g=g-1|0;if(g){continue}break}if(K[k|0]==45){b=-(r+(-b-r));break u}b=b+r-r}g=J[m+44>>2];h=g>>31;g=Mb((g^h)-h|0,0,u);if((u|0)==(g|0)){H[m+15|0]=48;g=m+15|0}q=s|2;i=f&32;h=J[m+44>>2];l=g-2|0;H[l|0]=f+15;H[g-1|0]=(h|0)<0?45:43;g=e&8;h=m+16|0;while(1){f=h;if(R(b)<2147483648){j=~~b}else{j=-2147483648}H[h|0]=i|K[j+17776|0];b=(b-+(j|0))*16;h=f+1|0;if(!(!((d|0)>0|g)&b==0|(h-(m+16|0)|0)!=1)){H[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}n=-1;g=u-l|0;f=g+q|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}i=h-(m+16|0)|0;if((i-2|0)>=(d|0)){break w}d=d+2|0;break v}i=h-(m+16|0)|0;d=i}f=d+f|0;Qa(a,32,c,f,e);Oa(a,k,q);Qa(a,48,c,f,e^65536);Oa(a,m+16|0,i);Qa(a,48,d-i|0,0,0);Oa(a,l,g);Qa(a,32,c,f,e^8192);n=(c|0)<(f|0)?f:c}ba=m+560|0;return n|0}function Ae(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;o=ba-32|0;ba=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;te(C);D=a+1068|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+1088|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+1108|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;b=0;f=ba-32|0;ba=f;l=a;h=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=oa(a);J[f+8>>2]=b;g=a+b|0;J[f+16>>2]=g;pa(b,0,a);J[f+12>>2]=g}a=J[l+1164>>2];c=J[a>>2];if(c){J[a+4>>2]=c;na(c);h=J[l+8>>2];g=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=g;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];b=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=oa(c);J[f+8>>2]=a;b=a+c|0;J[f+16>>2]=b;pa(a,0,c);J[f+12>>2]=b}c=J[l+1176>>2];d=J[c>>2];if(d){J[c+4>>2]=d;na(d);b=J[f+12>>2];a=J[f+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[f+16>>2];p=J[o+20>>2];u=J[o+24>>2];d=J[o+4>>2];x=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;r=(a>>>0)/113|0;a=J[J[f+12>>2]+(r<<2)>>2]+P(a-P(r,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=x;J[a+12>>2]=b;J[a+4>>2]=p;J[a+8>>2]=u;J[a>>2]=c;h=J[f+28>>2]+1|0;J[f+28>>2]=h;if(h){a=u;L=a&-4;G=a&3;N=l+1068|0;H=l+12|0;O=l+1108|0;Q=a>>>0<4;while(1){b=J[f+12>>2];m=J[f+24>>2];j=h-1|0;a=m+j|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];g=J[a+24>>2];r=J[a+12>>2];c=J[a>>2];J[f+28>>2]=j;a=J[f+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(h+m|0)|0)+1>>>0>=226){na(J[a-4>>2]);J[f+16>>2]=J[f+16>>2]-4}b=J[l>>2];h=(g|0)!=(J[l+8>>2]-1|0)?g+1|0:0;m=h<<2;y=P(z,12);j=y+J[l+1176>>2]|0;g=J[m+J[j>>2]>>2];d:{e:{if((b|0)==(g|0)){break e}f:{g:{t=r-c|0;if(t>>>0<=2){g=J[l+1152>>2];J[g>>2]=h;b=1;a=J[l+8>>2];if(a>>>0>1){break g}break f}j=J[l+1164>>2];a=j+y|0;i=j;j=y+12|0;bb(i+j|0,J[a>>2],J[a+4>>2]);a=m+J[j+J[l+1164>>2]>>2]|0;j=J[a>>2]+(1<<b+(g^-1))|0;J[a>>2]=j;a=c;h:{if((r|0)==(a|0)){break h}I=J[p+24>>2];K=m+I|0;a=r;b=c;if(!u){if(j>>>0>M[K>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=M[(m+J[d+24>>2]|0)+(P(a,x)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){g=P(b,u)<<2;if(j>>>0>M[g+K>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}n=J[d+24>>2]+(P(a,x)<<2)|0;if(j>>>0<=M[n+m>>2]){continue}break}q=g+I|0;A=0;g=0;v=0;if(!Q){while(1){k=g<<2;i=k+q|0;s=J[i>>2];w=i;i=k+n|0;J[w>>2]=J[i>>2];J[i>>2]=s;i=k|4;s=i+q|0;w=J[s>>2];i=i+n|0;J[s>>2]=J[i>>2];J[i>>2]=w;i=k|8;s=i+q|0;w=J[s>>2];i=i+n|0;J[s>>2]=J[i>>2];J[i>>2]=w;k=k|12;i=k+q|0;s=J[i>>2];k=k+n|0;J[i>>2]=J[k>>2];J[k>>2]=s;g=g+4|0;v=v+4|0;if((L|0)!=(v|0)){continue}break}}if(G){while(1){k=g<<2;v=k+q|0;i=J[v>>2];k=k+n|0;J[v>>2]=J[k>>2];J[k>>2]=i;g=g+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;n=r-a|0;if((j|0)!=(n|0)){xc(O,j>>>0<n>>>0)}k=z+1|0;b=S(t);q=b^31;g=t>>>1|0;i:{if(j>>>0<n>>>0){if(!q){break i}t=g-j|0;b=1<<30-b;g=0;while(1){Ca((g<<5)+H|0,(b&t)!=0);b=b>>>1|0;g=g+1|0;if((q|0)!=(g|0)){continue}break}break i}if(!q){break i}t=g-n|0;b=1<<30-b;g=0;while(1){Ca((g<<5)+H|0,(b&t)!=0);b=b>>>1|0;g=g+1|0;if((q|0)!=(g|0)){continue}break}}i=m;b=J[l+1176>>2];g=b+y|0;m=J[g>>2];q=i+m|0;J[q>>2]=J[q>>2]+1;bb(b+P(k,12)|0,m,J[g+4>>2]);if((a|0)!=(c|0)){g=J[f+28>>2]+J[f+24>>2]|0;m=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(m|0)?P(m-b>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;i=J[f+12>>2]}else{i=b}b=(g>>>0)/113|0;b=J[i+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=z;J[b+28>>2]=j;J[b+24>>2]=h;J[b+16>>2]=p;J[b+12>>2]=a;J[b+4>>2]=p;J[b+8>>2]=u;J[b>>2]=c;J[b+20>>2]=u;J[f+28>>2]=J[f+28>>2]+1}if((a|0)==(r|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}else{c=b}b=(g>>>0)/113|0;b=J[c+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=k;J[b+28>>2]=n;J[b+24>>2]=h;J[b+16>>2]=d;J[b+20>>2]=x;J[b+12>>2]=r;J[b+4>>2]=p;J[b>>2]=a;J[b+8>>2]=u;h=J[f+28>>2]+1|0;J[f+28>>2]=h;break d}while(1){h=(a-1|0)!=(h|0)?h+1|0:0;J[g+(b<<2)>>2]=h;a=J[l+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}g=0;b=a;if((c|0)==(r|0)){break e}while(1){j:{if(!b){b=0;break j}r=J[p+24>>2]+(P(J[p+4>>2],c+g|0)<<2)|0;h=0;while(1){b=J[l>>2];m=J[J[l+1152>>2]+(h<<2)>>2]<<2;n=J[m+J[j>>2]>>2];if((b|0)!=(n|0)){Ib(N,b-n|0,J[m+r>>2]);a=J[l+8>>2]}b=a;h=h+1|0;if(h>>>0<a>>>0){continue}break}}g=g+1|0;if((t|0)!=(g|0)){continue}break}}h=J[f+28>>2]}if(h){continue}break}}J[f+28>>2]=0;c=J[f+16>>2];h=J[f+12>>2];a=c-h|0;if(a>>>0>=9){while(1){na(J[h>>2]);h=J[f+12>>2]+4|0;J[f+12>>2]=h;c=J[f+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;k:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[f+24>>2]=b;break;default:break k}}l:{if((c|0)==(h|0)){break l}while(1){na(J[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break l}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}se(C,e);eb(D,e);eb(E,e);eb(F,e)}ba=o+32|0;return 1}function Ue(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;l=1510;g=ba-80|0;ba=g;J[g+76>>2]=1510;w=g+55|0;r=g+56|0;a:{b:{c:{d:{e:while(1){h=l;if((n^2147483647)<(e|0)){break d}n=e+n|0;f:{g:{h:{e=h;f=K[e|0];if(f){while(1){i:{f=f&255;j:{if(!f){l=e;break j}if((f|0)!=37){break i}f=e;while(1){if(K[f+1|0]!=37){l=f;break j}e=e+1|0;k=K[f+2|0];l=f+2|0;f=l;if((k|0)==37){continue}break}}e=e-h|0;v=n^2147483647;if((e|0)>(v|0)){break d}if(a){Oa(a,h,e)}if(e){continue e}J[g+76>>2]=l;e=l+1|0;o=-1;if(!(K[l+2|0]!=36|H[l+1|0]-48>>>0>=10)){o=H[l+1|0]-48|0;s=1;e=l+3|0}J[g+76>>2]=e;m=0;f=H[e|0];l=f-32|0;k:{if(l>>>0>31){i=e;break k}i=e;l=1<<l;if(!(l&75913)){break k}while(1){i=e+1|0;J[g+76>>2]=i;m=m|l;f=H[e+1|0];l=f-32|0;if(l>>>0>=32){break k}e=i;l=1<<l;if(l&75913){continue}break}}l:{if((f|0)==42){m:{if(!(K[i+2|0]!=36|H[i+1|0]-48>>>0>=10)){J[((H[i+1|0]<<2)+d|0)-192>>2]=10;f=i+3|0;s=1;e=J[((H[i+1|0]<<3)+c|0)-384>>2];break m}if(s){break h}f=i+1|0;if(!a){J[g+76>>2]=f;s=0;p=0;break l}e=J[b>>2];J[b>>2]=e+4;s=0;e=J[e>>2]}J[g+76>>2]=f;p=e;if((e|0)>=0){break l}p=0-p|0;m=m|8192;break l}p=Te(g+76|0);if((p|0)<0){break d}f=J[g+76>>2]}e=0;j=-1;n:{if(K[f|0]!=46){l=f;f=0;break n}if(K[f+1|0]==42){o:{if(!(K[f+3|0]!=36|H[f+2|0]-48>>>0>=10)){J[((H[f+2|0]<<2)+d|0)-192>>2]=10;l=f+4|0;j=J[((H[f+2|0]<<3)+c|0)-384>>2];break o}if(s){break h}l=f+2|0;j=0;if(!a){break o}f=J[b>>2];J[b>>2]=f+4;j=J[f>>2]}J[g+76>>2]=l;f=(j^-1)>>>31|0;break n}J[g+76>>2]=f+1;j=Te(g+76|0);l=J[g+76>>2];f=1}t=f;while(1){q=e;i=28;k=l;e=H[k|0];if(e-123>>>0<4294967238){break c}l=k+1|0;e=K[(e+P(q,58)|0)+17247|0];if(e-1>>>0<8){continue}break}J[g+76>>2]=l;p:{q:{if((e|0)!=27){if(!e){break c}if((o|0)>=0){J[(o<<2)+d>>2]=e;f=(o<<3)+c|0;e=J[f+4>>2];J[g+64>>2]=J[f>>2];J[g+68>>2]=e;break q}if(!a){break f}Se(g- -64|0,e,b);break p}if((o|0)>=0){break c}}e=0;if(!a){continue e}}f=m&-65537;m=m&8192?f:m;o=0;u=1163;i=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{e=H[k|0];e=q?(e&15)==3?e&-33:e:e;switch(e-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(e-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((e|0)==83){break w}break g}f=J[g+64>>2];k=J[g+68>>2];e=1163;break z}e=0;I:{switch(q&255){case 0:J[J[g+64>>2]>>2]=n;continue e;case 1:J[J[g+64>>2]>>2]=n;continue e;case 2:h=J[g+64>>2];J[h>>2]=n;J[h+4>>2]=n>>31;continue e;case 3:I[J[g+64>>2]>>1]=n;continue e;case 4:H[J[g+64>>2]]=n;continue e;case 6:J[J[g+64>>2]>>2]=n;continue e;case 7:break I;default:continue e}}h=J[g+64>>2];J[h>>2]=n;J[h+4>>2]=n>>31;continue e}j=j>>>0<=8?8:j;m=m|8;e=120}h=r;f=J[g+64>>2];k=J[g+68>>2];if(f|k){x=e&32;while(1){h=h-1|0;H[h|0]=x|K[(f&15)+17776|0];y=!k&f>>>0>15|(k|0)!=0;q=k;k=k>>>4|0;f=(q&15)<<28|f>>>4;if(y){continue}break}}if(!(J[g+64>>2]|J[g+68>>2])|!(m&8)){break y}u=(e>>>4|0)+1163|0;o=2;break y}e=r;h=J[g+68>>2];k=h;f=J[g+64>>2];if(h|f){while(1){e=e-1|0;H[e|0]=f&7|48;q=!k&f>>>0>7|(k|0)!=0;h=k;k=h>>>3|0;f=(h&7)<<29|f>>>3;if(q){continue}break}}h=e;if(!(m&8)){break y}e=r-h|0;j=(e|0)<(j|0)?j:e+1|0;break y}f=J[g+64>>2];e=J[g+68>>2];k=e;if((e|0)<0){h=0-(k+((f|0)!=0)|0)|0;k=h;f=0-f|0;J[g+64>>2]=f;J[g+68>>2]=h;o=1;e=1163;break z}if(m&2048){o=1;e=1164;break z}o=m&1;e=o?1165:1163}u=e;h=Mb(f,k,r)}if((j|0)<0?t:0){break d}m=t?m&-65537:m;e=J[g+64>>2];f=J[g+68>>2];if(!(j|(e|f)!=0)){h=r;j=0;break g}e=!(e|f)+(r-h|0)|0;j=(e|0)<(j|0)?j:e;break g}q=j>>>0>=2147483647?2147483647:j;i=q;m=(i|0)!=0;e=J[g+64>>2];h=e?e:1983;e=h;J:{K:{L:{M:{if(!(e&3)|!i){break M}while(1){if(!K[e|0]){break L}i=i-1|0;m=(i|0)!=0;e=e+1|0;if(!(e&3)){break M}if(i){continue}break}}if(!m){break K}if(!(!K[e|0]|i>>>0<4)){while(1){k=J[e>>2];if((k^-1)&k-16843009&-2139062144){break L}e=e+4|0;i=i-4|0;if(i>>>0>3){continue}break}}if(!i){break K}}while(1){if(!K[e|0]){break J}e=e+1|0;i=i-1|0;if(i){continue}break}}e=0}e=e?e-h|0:q;i=e+h|0;if((j|0)>=0){m=f;j=e;break g}m=f;j=e;if(K[i|0]){break d}break g}if(j){f=J[g+64>>2];break u}e=0;Qa(a,32,p,0,m);break t}J[g+12>>2]=0;J[g+8>>2]=J[g+64>>2];f=g+8|0;J[g+64>>2]=f;j=-1}e=0;N:{while(1){h=J[f>>2];if(!h){break N}k=Pe(g+4|0,h);h=(k|0)<0;if(!(h|k>>>0>j-e>>>0)){f=f+4|0;e=e+k|0;if(j>>>0>e>>>0){continue}break N}break}if(h){break b}}i=61;if((e|0)<0){break c}Qa(a,32,p,e,m);if(!e){e=0;break t}i=0;f=J[g+64>>2];while(1){h=J[f>>2];if(!h){break t}h=Pe(g+4|0,h);i=h+i|0;if(i>>>0>e>>>0){break t}Oa(a,g+4|0,h);f=f+4|0;if(e>>>0>i>>>0){continue}break}}Qa(a,32,p,e,m^8192);e=(e|0)<(p|0)?p:e;continue e}if((j|0)<0?t:0){break d}i=61;e=Re(a,O[g+64>>3],p,j,m,e);if((e|0)>=0){continue e}break c}H[g+55|0]=J[g+64>>2];j=1;h=w;m=f;break g}f=K[e+1|0];e=e+1|0;continue}}if(a){break a}if(!s){break f}e=1;while(1){a=J[(e<<2)+d>>2];if(a){Se((e<<3)+c|0,a,b);n=1;e=e+1|0;if((e|0)!=10){continue}break a}break}n=1;if(e>>>0>=10){break a}while(1){if(J[(e<<2)+d>>2]){break h}e=e+1|0;if((e|0)!=10){continue}break}break a}i=28;break c}k=i-h|0;f=(j|0)>(k|0)?j:k;if((f|0)>(o^2147483647)){break d}i=61;j=f+o|0;e=(j|0)<(p|0)?p:j;if((v|0)<(e|0)){break c}Qa(a,32,e,j,m);Oa(a,u,o);Qa(a,48,e,j,m^65536);Qa(a,48,f,k,0);Oa(a,h,k);Qa(a,32,e,j,m^8192);continue}break}n=0;break a}i=61}J[4804]=i}n=-1}ba=g+80|0;return n}function Qf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=ba-16|0;ba=g;J[b+44>>2]=d;J[b+48>>2]=c;d=J[b+12>>2];f=J[b+8>>2];if((d|0)!=(f|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){da[J[J[e>>2]+4>>2]](e)}if((d|0)!=(f|0)){continue}break}}J[b+12>>2]=f;J[b+24>>2]=J[b+20>>2];J[b+36>>2]=J[b+32>>2];a:{if(!J[b+4>>2]){b=oa(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);d=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=d;H[b+16|0]=d>>>8;H[b+17|0]=d>>>16;H[b+18|0]=d>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);d=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);d=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,23);na(b);break a}d=ba-16|0;ba=d;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],1637,1642)}e=da[J[J[b>>2]+8>>2]](b)|0;H[d+15|0]=e;H[d+14|0]=2;H[d+13|0]=e&255?2:3;e=J[b+44>>2];f=J[e+20>>2];b:{if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+14|0,d+15|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+13|0,d+14|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+15|0,d+16|0);e=J[b+44>>2]}j=d,k=da[J[J[b>>2]+12>>2]](b)|0,H[j+12|0]=k;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],d+12|0,d+13|0)}I[d+10>>1]=(J[J[b+4>>2]+4>>2]!=0)<<15;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],d+10|0,d+12|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=d+16|0;if(J[a>>2]){break a}if(H[a+15|0]<0){na(J[a+4>>2])}d=J[J[b+4>>2]+4>>2];c:{if(!d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}e=J[b+44>>2];if(d){Aa(J[d+28>>2]-J[d+24>>2]>>2,e);f=J[d+24>>2];i=J[d+28>>2];if((f|0)!=(i|0)){while(1){h=J[f>>2];if(h){Aa(J[h+24>>2],e);td(g,e,h)}f=f+4|0;if((i|0)!=(f|0)){continue}break}}td(g,e,d)}if(d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}d=oa(32);H[d+26|0]=0;e=K[1882]|K[1883]<<8;H[d+24|0]=e;H[d+25|0]=e>>>8;e=K[1878]|K[1879]<<8|(K[1880]<<16|K[1881]<<24);f=K[1874]|K[1875]<<8|(K[1876]<<16|K[1877]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1870]|K[1871]<<8|(K[1872]<<16|K[1873]<<24);f=K[1866]|K[1867]<<8|(K[1868]<<16|K[1869]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1862]|K[1863]<<8|(K[1864]<<16|K[1865]<<24);f=K[1858]|K[1859]<<8|(K[1860]<<16|K[1861]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;J[a>>2]=-1;Ga(a+4|0,d,26);na(d);if(J[a>>2]){break a}if(H[a+15|0]>=0){break c}na(J[a+4>>2])}if(!(da[J[J[b>>2]+16>>2]](b)|0)){b=oa(32);H[b+29|0]=0;c=K[1798]|K[1799]<<8|(K[1800]<<16|K[1801]<<24);d=K[1794]|K[1795]<<8|(K[1796]<<16|K[1797]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1793]|K[1794]<<8|(K[1795]<<16|K[1796]<<24);d=K[1789]|K[1790]<<8|(K[1791]<<16|K[1792]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1785]|K[1786]<<8|(K[1787]<<16|K[1788]<<24);d=K[1781]|K[1782]<<8|(K[1783]<<16|K[1784]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1777]|K[1778]<<8|(K[1779]<<16|K[1780]<<24);d=K[1773]|K[1774]<<8|(K[1775]<<16|K[1776]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break a}if(!(da[J[J[b>>2]+20>>2]](b)|0)){b=oa(32);H[b+31|0]=0;c=K[1941]|K[1942]<<8|(K[1943]<<16|K[1944]<<24);d=K[1937]|K[1938]<<8|(K[1939]<<16|K[1940]<<24);H[b+23|0]=d;H[b+24|0]=d>>>8;H[b+25|0]=d>>>16;H[b+26|0]=d>>>24;H[b+27|0]=c;H[b+28|0]=c>>>8;H[b+29|0]=c>>>16;H[b+30|0]=c>>>24;c=K[1934]|K[1935]<<8|(K[1936]<<16|K[1937]<<24);d=K[1930]|K[1931]<<8|(K[1932]<<16|K[1933]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1926]|K[1927]<<8|(K[1928]<<16|K[1929]<<24);d=K[1922]|K[1923]<<8|(K[1924]<<16|K[1925]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1918]|K[1919]<<8|(K[1920]<<16|K[1921]<<24);d=K[1914]|K[1915]<<8|(K[1916]<<16|K[1917]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,31);na(b);break a}da[J[J[b>>2]+24>>2]](a,b);if(J[a>>2]){break a}if(H[a+15|0]<0){na(J[a+4>>2])}if(!(da[J[J[b>>2]+28>>2]](b)|0)){b=Pc(g,1708);J[a>>2]=-1;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break a}Ga(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break a}na(J[b>>2]);break a}d=c;c=Pc(g,1214);d=Pb(d,c,0);if(H[c+11|0]<0){na(J[c>>2])}if(d){da[J[J[b>>2]+48>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ba=g+16|0}function ve(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;o=ba-32|0;ba=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;d=C;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];D=a+32|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+52|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+72|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;c=0;b=0;f=ba-32|0;ba=f;l=a;g=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(g){if(g>>>0>=1073741824){break b}a=g<<2;c=oa(a);J[f+8>>2]=c;b=a+c|0;J[f+16>>2]=b;pa(c,0,a);J[f+12>>2]=b}a=J[l+128>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);g=J[l+8>>2];c=J[f+8>>2];b=J[f+12>>2]}J[a+4>>2]=b;J[a>>2]=c;J[a+8>>2]=J[f+16>>2];c=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;b=0;c:{if(g){if(g>>>0>=1073741824){break c}a=g<<2;b=oa(a);J[f+8>>2]=b;c=a+b|0;J[f+16>>2]=c;pa(b,0,a);J[f+12>>2]=c}a=J[l+140>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);c=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=c;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];p=J[o+20>>2];t=J[o+24>>2];d=J[o+4>>2];w=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;q=(a>>>0)/113|0;a=J[J[f+12>>2]+(q<<2)>>2]+P(a-P(q,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=w;J[a+12>>2]=b;J[a+4>>2]=p;J[a+8>>2]=t;J[a>>2]=c;g=J[f+28>>2]+1|0;J[f+28>>2]=g;if(g){a=t;K=a&-4;G=a&3;L=l+32|0;N=l+12|0;O=l+72|0;Q=a>>>0<4;while(1){b=J[f+12>>2];i=J[f+24>>2];h=g-1|0;a=i+h|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];c=J[a+24>>2];q=J[a+12>>2];a=J[a>>2];J[f+28>>2]=h;h=J[f+16>>2];if((((b|0)!=(h|0)?P(h-b>>2,113)-1|0:0)-(g+i|0)|0)+1>>>0>=226){na(J[h-4>>2]);J[f+16>>2]=J[f+16>>2]-4}i=J[l>>2];g=(c|0)!=(J[l+8>>2]-1|0)?c+1|0:0;h=g<<2;x=P(z,12);k=x+J[l+140>>2]|0;c=J[h+J[k>>2]>>2];d:{e:{if((i|0)==(c|0)){break e}f:{g:{y=q-a|0;if(y>>>0<=2){h=J[l+116>>2];J[h>>2]=g;c=1;b=J[l+8>>2];if(b>>>0>1){break g}break f}k=J[l+128>>2];b=k+x|0;j=k;k=x+12|0;bb(j+k|0,J[b>>2],J[b+4>>2]);b=h+J[k+J[l+128>>2]>>2]|0;k=J[b>>2]+(1<<i+(c^-1))|0;J[b>>2]=k;b=a;h:{if((a|0)==(q|0)){break h}H=J[p+24>>2];I=h+H|0;b=q;c=a;if(!t){if(k>>>0>M[I>>2]){break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}if(k>>>0<=M[(h+J[d+24>>2]|0)+(P(b,w)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(b|0)){continue}break}break h}while(1){i=P(c,t)<<2;if(k>>>0>M[i+I>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}n=J[d+24>>2]+(P(b,w)<<2)|0;if(k>>>0<=M[n+h>>2]){continue}break}r=i+H|0;A=0;i=0;u=0;if(!Q){while(1){m=i<<2;j=m+r|0;s=J[j>>2];v=j;j=n+m|0;J[v>>2]=J[j>>2];J[j>>2]=s;j=m|4;s=j+r|0;v=J[s>>2];j=j+n|0;J[s>>2]=J[j>>2];J[j>>2]=v;j=m|8;s=j+r|0;v=J[s>>2];j=j+n|0;J[s>>2]=J[j>>2];J[j>>2]=v;m=m|12;j=m+r|0;s=J[j>>2];m=n+m|0;J[j>>2]=J[m>>2];J[m>>2]=s;i=i+4|0;u=u+4|0;if((K|0)!=(u|0)){continue}break}}if(G){while(1){m=i<<2;u=m+r|0;j=J[u>>2];m=n+m|0;J[u>>2]=J[m>>2];J[m>>2]=j;i=i+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}c=c+1|0;if((c|0)!=(b|0)){continue}break}}k=b-a|0;n=q-b|0;if((k|0)!=(n|0)){xc(O,k>>>0<n>>>0)}Ib(N,S(y)^31,(y>>>1|0)-(k>>>0<n>>>0?k:n)|0);j=h;c=J[l+140>>2];h=c+x|0;i=J[h>>2];r=j+i|0;J[r>>2]=J[r>>2]+1;r=z+1|0;bb(c+P(r,12)|0,i,J[h+4>>2]);if((a|0)!=(b|0)){i=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];h=J[f+12>>2];if((i|0)==(((c|0)!=(h|0)?P(c-h>>2,113)-1|0:0)|0)){fb(f+8|0);i=J[f+24>>2]+J[f+28>>2]|0;h=J[f+12>>2]}c=(i>>>0)/113|0;c=J[h+(c<<2)>>2]+P(i-P(c,113)|0,36)|0;J[c+32>>2]=z;J[c+28>>2]=k;J[c+24>>2]=g;J[c+16>>2]=p;J[c+12>>2]=b;J[c+4>>2]=p;J[c+8>>2]=t;J[c>>2]=a;J[c+20>>2]=t;J[f+28>>2]=J[f+28>>2]+1}if((b|0)==(q|0)){break e}h=J[f+28>>2]+J[f+24>>2]|0;a=J[f+16>>2];c=J[f+12>>2];if((h|0)==(((a|0)!=(c|0)?P(a-c>>2,113)-1|0:0)|0)){fb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}a=(h>>>0)/113|0;a=J[c+(a<<2)>>2]+P(h-P(a,113)|0,36)|0;J[a+32>>2]=r;J[a+28>>2]=n;J[a+24>>2]=g;J[a+16>>2]=d;J[a+20>>2]=w;J[a+12>>2]=q;J[a+4>>2]=p;J[a>>2]=b;J[a+8>>2]=t;g=J[f+28>>2]+1|0;J[f+28>>2]=g;break d}while(1){g=(b-1|0)!=(g|0)?g+1|0:0;J[h+(c<<2)>>2]=g;b=J[l+8>>2];c=c+1|0;if(b>>>0>c>>>0){continue}break}}if(!b|(a|0)==(q|0)){break e}h=0;c=1;while(1){g=0;i:{if(!c){c=0;break i}q=J[p+24>>2]+(P(J[p+4>>2],a+h|0)<<2)|0;while(1){c=J[l>>2];i=J[J[l+116>>2]+(g<<2)>>2]<<2;n=J[i+J[k>>2]>>2];if((c|0)!=(n|0)){Ib(L,c-n|0,J[i+q>>2]);b=J[l+8>>2]}c=b;g=g+1|0;if(c>>>0>g>>>0){continue}break}}h=h+1|0;if((y|0)!=(h|0)){continue}break}}g=J[f+28>>2]}if(g){continue}break}}J[f+28>>2]=0;a=J[f+16>>2];g=J[f+12>>2];b=a-g|0;if(b>>>0>=9){while(1){na(J[g>>2]);g=J[f+12>>2]+4|0;J[f+12>>2]=g;a=J[f+16>>2];b=a-g|0;if(b>>>0>8){continue}break}}c=56;j:{switch((b>>>2|0)-1|0){case 1:c=113;case 0:J[f+24>>2]=c;break;default:break j}}k:{if((a|0)==(g|0)){break k}while(1){na(J[g>>2]);g=g+4|0;if((g|0)!=(a|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break k}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}eb(C,e);eb(D,e);eb(E,e);eb(F,e)}ba=o+32|0;return 1}function gg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ba-32|0;ba=l;d=J[a+16>>2];J[a+20>>2]=d;a:{b:{c:{d:{e:{f:{g:{h:{if((d|0)!=J[a+24>>2]){J[d>>2]=b;b=d+4|0;J[a+20>>2]=b;e=d;break h}e=oa(4);J[e>>2]=b;b=e+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=e;if(d){break g}}d=J[a+8>>2];d=J[d+100>>2]-J[d+96>>2]|0;break f}na(d);b=J[a+20>>2];e=J[a+16>>2];if((b|0)==(e|0)){break e}d=J[a+8>>2];d=J[d+100>>2]-J[d+96>>2]|0}if((d|0)>0){q=a+120|0;d=(d|0)/12|0;r=(d|0)<=1?1:d;while(1){i:{j:{e=b-4|0;b=J[e>>2];if((b|0)==-1){break j}d=(b>>>0)/3|0;if(J[J[a+28>>2]+(d>>>3&268435452)>>2]>>>d&1){break j}m=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;g=(b>>>0)/3|0;f=(b|0)==-1;n=f?-1:g;b=J[a+28>>2]+(n>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<n;b=J[a+76>>2];k:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break k}i=J[a+72>>2];j=b-i|0;c=j>>2;k=c+1|0;if(k>>>0>1073741823){break d}d=j>>>1|0;k=j>>>0>=2147483644?1073741823:d>>>0>k>>>0?d:k;if(k){if(k>>>0>1073741823){break a}d=oa(k<<2)}else{d=0}h=d+(c<<2)|0;J[h>>2]=e;c=h+4|0;if((b|0)!=(i|0)){while(1){h=h-4|0;b=b-4|0;J[h>>2]=J[b>>2];if((b|0)!=(i|0)){continue}break}}J[a+80>>2]=d+(k<<2);J[a+76>>2]=c;J[a+72>>2]=h;if(!i){break k}na(i)}b=-1;h=J[a+12>>2];b=(e|0)!=-1?J[J[h>>2]+(e<<2)>>2]:b;k=b<<2;p=J[k+J[a+152>>2]>>2];l:{m:{c=J[a+84>>2]+(b>>>3&536870908)|0;d=J[c>>2];b=1<<b;if(!(d&b)){J[c>>2]=b|d;if((p|0)==-1){break m}}n:{if(f){break n}b=-1;d=e+1|0;f=(d>>>0)%3|0?d:e-2|0;if((f|0)!=-1){b=J[J[h+12>>2]+(f<<2)>>2]}i=e-P(g,3)|0;o:{p:{if(i){c=e-1|0;break p}c=e+2|0;d=-1;if((c|0)==-1){break o}}d=J[J[h+12>>2]+(c<<2)>>2]}o=(d|0)==-1;j=o?-1:(d>>>0)/3|0;q:{if((f|0)==-1){break q}g=J[h+12>>2];c=J[g+(f<<2)>>2];if((c|0)==-1){break q}f=J[a+28>>2];c=(c>>>0)/3|0;if(J[f+(c>>>3&268435452)>>2]>>>c&1){break q}r:{s:{if(i){h=e-1|0;break s}h=e+2|0;if((h|0)==-1){break r}}c=J[(h<<2)+g>>2];if((c|0)==-1){break r}c=(c>>>0)/3|0;if(J[f+(c>>>3&268435452)>>2]>>>c&1){break r}c=J[a+272>>2];t:{if((c|0)!=J[a+276>>2]){J[c>>2]=1;J[a+272>>2]=c+4;break t}i=J[a+268>>2];j=c-i|0;f=j>>2;g=f+1|0;if(g>>>0>1073741823){break c}c=j>>>1|0;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>1073741823){break a}c=oa(g<<2)}else{c=0}f=c+(f<<2)|0;J[f>>2]=1;c=ta(c,i,j);J[a+276>>2]=c+(g<<2);J[a+272>>2]=f+4;J[a+268>>2]=c;if(!i){break t}na(i)}J[a+168>>2]=J[a+168>>2]+1;u:{if((p|0)==-1){break u}c=J[J[a+152>>2]+k>>2];if(J[J[a+140>>2]+(c>>>3&536870908)>>2]>>>c&1){break u}Hc(a,e,0)}c=J[a+164>>2];J[l+4>>2]=n;e=l+4|0;J[l+16>>2]=e;bg(l+24|0,q,e,l+16|0);J[J[l+24>>2]+12>>2]=c;h=J[a+20>>2];J[h-4>>2]=d;if(J[a+24>>2]!=(h|0)){J[h>>2]=b;J[a+20>>2]=h+4;break i}g=J[a+16>>2];f=h-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break b}d=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<d>>>0?d:c;if(c){if(c>>>0>1073741823){break a}d=oa(c<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=b;b=e+4|0;if((g|0)!=(h|0)){while(1){e=e-4|0;h=h-4|0;J[e>>2]=J[h>>2];if((g|0)!=(h|0)){continue}break}}J[a+24>>2]=d+(c<<2);J[a+20>>2]=b;J[a+16>>2]=e;if(!g){break i}na(g);break i}if(!o){Qb(a,J[a+164>>2],0,j)}d=J[a+272>>2];if((d|0)!=J[a+276>>2]){J[d>>2]=3;J[a+272>>2]=d+4;break l}g=J[a+268>>2];f=d-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break c}d=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<d>>>0?d:c;if(c){if(c>>>0>1073741823){break a}d=oa(c<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=3;d=ta(d,g,f);J[a+276>>2]=d+(c<<2);J[a+272>>2]=e+4;J[a+268>>2]=d;if(!g){break l}na(g);break l}c=(b|0)==-1;if(!c){Qb(a,J[a+164>>2],1,c?-1:(b>>>0)/3|0)}v:{w:{if(i){b=e-1|0;break w}b=e+2|0;if((b|0)==-1){break v}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break v}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break v}b=J[a+272>>2];if((b|0)!=J[a+276>>2]){J[b>>2]=5;J[a+272>>2]=b+4;b=d;break l}g=J[a+268>>2];f=b-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break c}b=f>>>1|0;c=f>>>0>=2147483644?1073741823:b>>>0>c>>>0?b:c;if(c){if(c>>>0>1073741823){break a}b=oa(c<<2)}else{b=0}e=b+(e<<2)|0;J[e>>2]=5;b=ta(b,g,f);J[a+276>>2]=b+(c<<2);J[a+272>>2]=e+4;J[a+268>>2]=b;if(!g){b=d;break l}na(g);b=d;break l}if(o){break n}Qb(a,J[a+164>>2],0,j)}b=J[a+272>>2];x:{if((b|0)!=J[a+276>>2]){J[b>>2]=7;J[a+272>>2]=b+4;break x}f=J[a+268>>2];c=b-f|0;d=c>>2;e=d+1|0;if(e>>>0>1073741823){break c}b=c>>>1|0;e=c>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(e){if(e>>>0>1073741823){break a}b=oa(e<<2)}else{b=0}d=b+(d<<2)|0;J[d>>2]=7;b=ta(b,f,c);J[a+276>>2]=b+(e<<2);J[a+272>>2]=d+4;J[a+268>>2]=b;if(!f){break x}na(f)}J[a+20>>2]=J[a+20>>2]-4;break i}b=J[a+272>>2];y:{if((b|0)!=J[a+276>>2]){J[b>>2]=0;J[a+272>>2]=b+4;break y}g=J[a+268>>2];f=b-g|0;d=f>>2;c=d+1|0;if(c>>>0>1073741823){break c}b=f>>>1|0;c=f>>>0>=2147483644?1073741823:b>>>0>c>>>0?b:c;if(c){if(c>>>0>1073741823){break a}b=oa(c<<2)}else{b=0}d=b+(d<<2)|0;J[d>>2]=0;b=ta(b,g,f);J[a+276>>2]=b+(c<<2);J[a+272>>2]=d+4;J[a+268>>2]=b;if(!g){break y}na(g)}b=-1;if((e|0)==-1){break l}d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)==-1){break l}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2]}m=m+1|0;if((r|0)!=(m|0)){continue}break}break i}J[a+20>>2]=e}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break e}f=J[a+28>>2];while(1){d=b-4|0;c=J[d>>2];z:{if((c|0)!=-1){c=(c>>>0)/3|0;if(!(J[f+(c>>>3&268435452)>>2]>>>c&1)){break z}}J[a+20>>2]=d;b=d}if((b|0)!=(e|0)){continue}break}}ba=l+32|0;return 1}qa();B()}qa();B()}qa();B()}xa();B()}function $c(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=H[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=I[b>>1];b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=L[b>>1];b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=J[b>>2];b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=J[b>>2];if((e|0)<0){break b}J[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=J[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=J[b+4>>2];e=J[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}J[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=J[b+4>>2];e=J[b>>2];if(!k&e>>>0>2147483647|k){break b}J[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=J[a>>2];j=J[e>>2];g=j;f=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=J[e+4>>2];e=f-j|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=N[g>>2];if(m>=Q(2147483648)|m<Q(-2147483648)|m!=m){break d}n=Q(R(m));if(n==Q(Infinity)){break d}e=(b<<2)+d|0;if(n<Q(2147483648)){i=~~m}else{i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=N[g>>2];if(m>=Q(2147483648)|m<Q(-2147483648)|(Q(R(m))==Q(Infinity)|m!=m)){break d}if(m<Q(0)|m>Q(1)){break d}e=(b<<2)+d|0;l=V(+m*2147483647+.5);f:{if(R(l)<2147483648){i=~~l;break f}i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}pa((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=J[a>>2];j=J[e>>2];g=j;f=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=J[e+4>>2];e=f-j|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=O[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=R(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=O[g>>3];if(l>=2147483647|l<-2147483648|(R(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=V(l*2147483647+.5);i:{if(R(l)<2147483648){i=~~l;break i}i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}pa((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}pa((e<<2)+d|0,0,(c&255)-e<<2)}return j}pa((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fe(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=J[b+48>>2];if(!g){b=oa(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);e=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=e;H[b+16|0]=e>>>8;H[b+17|0]=e>>>16;H[b+18|0]=e>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);e=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);e=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,23);na(b);return}h=J[b+52>>2];if(!h){e=ba-32|0;ba=e;d=oa(16);J[e+16>>2]=d;J[e+20>>2]=15;J[e+24>>2]=-2147483632;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);h=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[d+7|0]=h;H[d+8|0]=h>>>8;H[d+9|0]=h>>>16;H[d+10|0]=h>>>24;H[d+11|0]=f;H[d+12|0]=f>>>8;H[d+13|0]=f>>>16;H[d+14|0]=f>>>24;f=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);h=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[d|0]=h;H[d+1|0]=h>>>8;H[d+2|0]=h>>>16;H[d+3|0]=h>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+15|0]=0;h=b+4|0;j=Bb(h,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}a:{b:{c:{d:{e:{switch(j+1|0){case 1:d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672;break c;case 0:break e;default:break d}}if((cb(h)|0)!=10){break d}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672;break c}J[e+12>>2]=0;f:{i=J[g+12>>2];f=J[g+8>>2];if((i-f|0)>0){d=0;while(1){k=J[J[(d<<2)+f>>2]+28>>2];if(k-1>>>0>=6){if((k|0)!=9){break f}d=oa(32);J[e+16>>2]=d;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[d+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[d+8|0]=i;H[d+9|0]=i>>>8;H[d+10|0]=i>>>16;H[d+11|0]=i>>>24;H[d+12|0]=f;H[d+13|0]=f>>>8;H[d+14|0]=f>>>16;H[d+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[d|0]=i;H[d+1|0]=i>>>8;H[d+2|0]=i>>>16;H[d+3|0]=i>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+17|0]=0;d=jb(h,e+12|0,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}if((d|0)<=0){break f}f=J[g+8>>2];i=J[g+12>>2];d=J[e+12>>2]}d=d+1|0;J[e+12>>2]=d;if(i-f>>2>(d|0)){continue}break}}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12564;break c}if((j|0)==1){break b}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672}J[d+4>>2]=g;Qf(a,d,h,c);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}c=J[d+52>>2];J[b+44>>2]=0;J[b+40>>2]=c;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}da[J[J[d>>2]+4>>2]](d);break a}b=oa(32);H[b+24|0]=0;c=K[1853]|K[1854]<<8|(K[1855]<<16|K[1856]<<24);d=K[1849]|K[1850]<<8|(K[1851]<<16|K[1852]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1845]|K[1846]<<8|(K[1847]<<16|K[1848]<<24);d=K[1841]|K[1842]<<8|(K[1843]<<16|K[1844]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1837]|K[1838]<<8|(K[1839]<<16|K[1840]<<24);d=K[1833]|K[1834]<<8|(K[1835]<<16|K[1836]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,24);na(b)}ba=e+32|0;return}d=ba-16|0;ba=d;e=oa(16);J[d>>2]=e;J[d+4>>2]=15;J[d+8>>2]=-2147483632;g=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);f=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[e+7|0]=f;H[e+8|0]=f>>>8;H[e+9|0]=f>>>16;H[e+10|0]=f>>>24;H[e+11|0]=g;H[e+12|0]=g>>>8;H[e+13|0]=g>>>16;H[e+14|0]=g>>>24;g=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);f=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[e|0]=f;H[e+1|0]=f>>>8;H[e+2|0]=f>>>16;H[e+3|0]=f>>>24;H[e+4|0]=g;H[e+5|0]=g>>>8;H[e+6|0]=g>>>16;H[e+7|0]=g>>>24;H[e+15|0]=0;g=b+4|0;e=Bb(g,d,-1);if(H[d+11|0]<0){na(J[d>>2])}g:{h:{i:{switch(e+1|0){case 0:if((cb(g)|0)==10){break h}break;case 2:break i;default:break h}}e=Tf(oa(68));J[e+64>>2]=0;J[e>>2]=10404;break g}e=Tf(oa(64));J[e>>2]=12280}J[e+56>>2]=h;J[e+4>>2]=h;Qf(a,e,g,c);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}J[b+40>>2]=J[e+52>>2];J[b+44>>2]=J[e+60>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}da[J[J[e>>2]+4>>2]](e);ba=d+16|0}function ci(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=Q(0),u=0,v=0,w=0,x=0,y=Q(0),z=0,A=0;c=ba+-64|0;ba=c;f=J[a+80>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+56>>2]=a;J[c+48>>2]=a;J[c+32>>2]=0;J[c+36>>2]=0;J[c+52>>2]=1065353216;df(c+32|0,f);f=J[a+80>>2];J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;a:{b:{c:{d:{if(!f){break d}if(f>>>0>=1073741824){break a}f=f<<2;s=oa(f);J[c+16>>2]=s;b=f+s|0;J[c+24>>2]=b;pa(s,0,f);J[c+20>>2]=b;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;z=c+40|0;f=0;while(1){e=0;b=J[c+48>>2];m=J[b+8>>2];n=J[b+12>>2]-m|0;v=(n|0)<=0;e:{if(v){break e}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;h=0;if(n>>>0>=8){g=b&1073741822;b=0;while(1){j=h<<2;d=J[j+m>>2];if(K[d+84|0]){d=f}else{d=J[J[d+68>>2]+(f<<2)>>2]}h=h+2|0;l=d<<3^e<<2;e=J[m+(j|4)>>2];if(K[e+84|0]){d=f}else{d=J[J[e+68>>2]+(f<<2)>>2]}e=l^d<<2;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!i){break e}b=J[m+(h<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}e=b<<2^e<<1}f:{g:{j=J[c+36>>2];if(!j){break g}g=J[c+32>>2];i=Kl(j)>>>0>1;b=j-1&e;h:{if(!i){break h}b=e;if(b>>>0<j>>>0){break h}b=(e>>>0)%(j>>>0)|0}d=b;b=J[g+(d<<2)>>2];if(!b){break g}k=J[b>>2];if(!k){break g}p=J[c+56>>2];i:{j:{if(!i){w=j-1|0;while(1){b=J[k+4>>2];k:{if((b|0)!=(e|0)){if((d|0)==(b&w)){break k}break g}x=J[p+8>>2];b=J[p+12>>2]-x|0;if((b|0)<4){break i}i=J[k+8>>2];o=b>>2;A=(o|0)<=1?1:o;l=0;h=0;while(1){b=f;g=J[x+(h<<2)>>2];if(K[g+84|0]){g=i}else{g=J[g+68>>2];b=J[g+(f<<2)>>2];g=J[g+(i<<2)>>2]}if((b|0)==(g|0)){h=h+1|0;l=(o|0)<=(h|0);if((h|0)!=(A|0)){continue}}break}if(l){break j}}k=J[k>>2];if(k){continue}break}break g}while(1){b=J[k+4>>2];l:{if((b|0)!=(e|0)){if(b>>>0>=j>>>0){b=(b>>>0)%(j>>>0)|0}if((b|0)==(d|0)){break l}break g}w=J[p+8>>2];b=J[p+12>>2]-w|0;if((b|0)<4){break i}i=J[k+8>>2];o=b>>2;x=(o|0)<=1?1:o;l=0;h=0;while(1){b=f;g=J[w+(h<<2)>>2];if(K[g+84|0]){g=i}else{g=J[g+68>>2];b=J[g+(f<<2)>>2];g=J[g+(i<<2)>>2]}if((b|0)==(g|0)){h=h+1|0;l=(o|0)<=(h|0);if((h|0)!=(x|0)){continue}}break}if(l){break j}}k=J[k>>2];if(k){continue}break}break g}if(!k){break g}}J[(f<<2)+s>>2]=J[k+12>>2];break f}m:{if(v){e=0;break m}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;e=0;h=0;if(n>>>0>=8){g=b&1073741822;b=0;while(1){l=h<<2;d=J[l+m>>2];if(K[d+84|0]){d=f}else{d=J[J[d+68>>2]+(f<<2)>>2]}h=h+2|0;n=d<<3^e<<2;e=J[m+(l|4)>>2];if(K[e+84|0]){d=f}else{d=J[J[e+68>>2]+(f<<2)>>2]}e=n^d<<2;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!i){break m}b=J[m+(h<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}e=b<<2^e<<1}n:{o:{if(!j){break o}m=j-1|0;if(m&j){k=e>>>0>=j>>>0?(e>>>0)%(j>>>0)|0:e;g=J[J[c+32>>2]+(k<<2)>>2];if(!g){break o}m=J[c+56>>2];while(1){g=J[g>>2];if(!g){break o}b=J[g+4>>2];if((b|0)!=(e|0)){if(b>>>0>=j>>>0){b=(b>>>0)%(j>>>0)|0}if((b|0)!=(k|0)){break o}}p=J[m+8>>2];b=J[m+12>>2]-p|0;if((b|0)<4){break n}d=J[g+8>>2];n=b>>2;o=(n|0)<=1?1:n;l=0;h=0;while(1){b=f;i=J[p+(h<<2)>>2];if(K[i+84|0]){i=d}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(d<<2)>>2]}if((b|0)==(i|0)){h=h+1|0;l=(n|0)<=(h|0);if((h|0)!=(o|0)){continue}}break}if(!l){continue}break}break n}k=e&m;g=J[J[c+32>>2]+(k<<2)>>2];if(!g){break o}n=J[c+56>>2];while(1){g=J[g>>2];if(!g){break o}b=J[g+4>>2];if((b|0)!=(e|0)&(b&m)!=(k|0)){break o}o=J[n+8>>2];b=J[n+12>>2]-o|0;if((b|0)<4){break n}d=J[g+8>>2];p=b>>2;v=(p|0)<=1?1:p;l=0;h=0;while(1){b=f;i=J[o+(h<<2)>>2];if(K[i+84|0]){i=d}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(d<<2)>>2]}if((b|0)==(i|0)){h=h+1|0;l=(p|0)<=(h|0);if((h|0)!=(v|0)){continue}}break}if(!l){continue}break}break n}d=oa(16);J[d+8>>2]=f;J[d+4>>2]=e;J[d>>2]=0;J[d+12>>2]=u;y=Q(J[c+44>>2]+1>>>0);t=N[c+52>>2];p:{if(y>Q(t*Q(j>>>0))?0:j){break p}g=c+32|0;i=(j-1&j)!=0|j>>>0<3|j<<1;t=Q(W(Q(y/t)));q:{if(t<Q(4294967296)&t>=Q(0)){b=~~t>>>0;break q}b=0}df(g,b>>>0<i>>>0?i:b);j=J[c+36>>2];b=j-1|0;if(!(b&j)){k=b&e;break p}if(e>>>0<j>>>0){k=e;break p}k=(e>>>0)%(j>>>0)|0}e=J[c+32>>2]+(k<<2)|0;b=J[e>>2];r:{s:{if(!b){J[d>>2]=J[c+40>>2];J[c+40>>2]=d;J[e>>2]=z;b=J[d>>2];if(!b){break r}b=J[b+4>>2];e=j-1|0;t:{if(!(e&j)){b=b&e;break t}if(b>>>0<j>>>0){break t}b=(b>>>0)%(j>>>0)|0}b=J[c+32>>2]+(b<<2)|0;break s}J[d>>2]=J[b>>2]}J[b>>2]=d}J[c+44>>2]=J[c+44>>2]+1;q=J[c+8>>2];r=J[c+4>>2];s=J[c+16>>2]}J[(f<<2)+s>>2]=u;u=u+1|0;if((q|0)!=(r|0)){J[r>>2]=f;r=r+4|0;J[c+4>>2]=r;break f}e=J[c>>2];b=q-e|0;i=b>>2;d=i+1|0;if(d>>>0>=1073741824){break c}g=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(d){if(d>>>0>=1073741824){break b}b=oa(d<<2)}else{b=0}h=b+(i<<2)|0;J[h>>2]=f;r=h+4|0;if((e|0)!=(q|0)){while(1){h=h-4|0;q=q-4|0;J[h>>2]=J[q>>2];if((e|0)!=(q|0)){continue}break}}q=b+(d<<2)|0;J[c+8>>2]=q;J[c+4>>2]=r;J[c>>2]=h;if(e){na(e)}}f=f+1|0;b=J[a+80>>2];if(f>>>0<b>>>0){continue}break}if((b|0)!=(u|0)){da[J[J[a>>2]+24>>2]](a,c+16|0,c);J[a+80>>2]=u}a=J[c>>2];if(!a){break d}J[c+4>>2]=a;na(a)}a=J[c+16>>2];if(a){J[c+20>>2]=a;na(a)}f=J[c+40>>2];if(f){while(1){a=J[f>>2];na(f);f=a;if(f){continue}break}}a=J[c+32>>2];J[c+32>>2]=0;if(a){na(a)}ba=c- -64|0;return}qa();B()}xa();B()}qa();B()}function hb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=0,n=Q(0),o=0;a:{if(!d){break a}b:{c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b|0];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=I[b>>1];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=L[b>>1];J[e+4>>2]=0;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=J[b>>2];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=0;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=J[b+4>>2];e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=J[b>>2];i=J[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;J[j>>2]=e;J[j+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=K[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break d}if(K[a+32|0]){break a}e=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+e|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=N[g>>2];if(k>=Q(0x8000000000000000)|k<Q(-0x8000000000000000)|k!=k){break a}n=Q(R(k));if(n==Q(Infinity)){break a}e=(b<<3)+d|0;e:{if(n<Q(0x8000000000000000)){j=Q(R(k))>=Q(1)?~~(k>Q(0)?Q(T(Q(V(Q(k*Q(2.3283064365386963e-10)))),Q(4294967296))):Q(W(Q(Q(k-Q(~~k>>>0>>>0))*Q(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=j;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=K[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break f}if(K[a+32|0]){break a}e=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+e|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=O[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=R(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=R(l)>=1?~~(l>0?T(V(l*2.3283064365386963e-10),4294967295):W((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=j;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}pa(d,0,a<<3)}}function ak(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=ba-16|0;ba=e;f=J[a+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=20;J[e+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);d=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);d=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;f=Lf(f+24|0,e);if(H[e+11|0]<0){na(J[e>>2])}g=J[a+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=22;J[e+8>>2]=-2147483616;c=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);d=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[b+14|0]=d;H[b+15|0]=d>>>8;H[b+16|0]=d>>>16;H[b+17|0]=d>>>24;H[b+18|0]=c;H[b+19|0]=c>>>8;H[b+20|0]=c>>>16;H[b+21|0]=c>>>24;c=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);d=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);d=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+22|0]=0;g=Lf(g+24|0,e);if(H[e+11|0]<0){na(J[e>>2])}b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}b=J[a+56>>2];h=J[b+100>>2];i=J[a+48>>2];j=J[b+96>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1566]|K[1567]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1562]|K[1563]<<8|(K[1564]<<16|K[1565]<<24);d=K[1558]|K[1559]<<8|(K[1560]<<16|K[1561]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1554]|K[1555]<<8|(K[1556]<<16|K[1557]<<24);d=K[1550]|K[1551]<<8|(K[1552]<<16|K[1553]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;b=Bb(i,e,-1);if(H[e+11|0]<0){na(J[e>>2])}c=(h-j|0)/12|0;a:{b:{c:{d:{e:{f:{g:{h:{switch(b+1|0){case 1:break f;case 3:break g;case 0:break h;default:break c}}if(!f){break g}if(c>>>0<1e3|(cb(J[a+48>>2])|0)>4|g^1){break e}}b=J[a+44>>2];H[e|0]=2;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],e,e+1|0)}b=oa(360);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10584;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[b+304>>2]=0;J[b+308>>2]=0;J[b+296>>2]=0;J[b+300>>2]=0;J[b+288>>2]=0;J[b+292>>2]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0;H[b+352|0]=0;J[b+344>>2]=0;J[b+336>>2]=0;J[b+340>>2]=0;J[b+328>>2]=2;J[b+332>>2]=7;J[b+320>>2]=-1;J[b+324>>2]=0;J[b+312>>2]=0;J[b+316>>2]=-1;break d}if(!f){break c}}b=J[a+44>>2];H[e|0]=0;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],e,e+1|0)}b=oa(296);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10532;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;H[b+288|0]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0}c=J[a+64>>2];J[a+64>>2]=b;if(!c){break b}da[J[J[c>>2]+4>>2]](c)}b=J[a+64>>2];if(b){break b}a=0;break a}a=da[J[J[b>>2]+8>>2]](b,a)|0}ba=e+16|0;return a|0}function qh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=ba-80|0;ba=i;f=-1;h=-1;a:{if((b|0)==-1){break a}h=b+1|0;f=(h>>>0)%3|0?h:b-2|0;h=b-1|0;if((b>>>0)%3|0){break a}h=b+2|0}e=J[a+36>>2];b=J[e>>2];b:{c:{d:{e:{f:{g:{e=J[e+4>>2]-b>>2;g=f<<2;f=J[J[a+32>>2]+28>>2];g=J[g+f>>2];if(e>>>0<=g>>>0){break g}h=J[f+(h<<2)>>2];if(h>>>0>=e>>>0){break g}h:{j=J[b+(h<<2)>>2];g=J[b+(g<<2)>>2];if((j|0)>=(d|0)|(g|0)>=(d|0)){break h}b=(j<<3)+c|0;z=J[b+4>>2];f=(g<<3)+c|0;h=J[f+4>>2];f=J[f>>2];C=J[b>>2];if(!((f|0)!=(C|0)|(h|0)!=(z|0))){J[a+8>>2]=f;J[a+12>>2]=h;break c}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;e=i- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+56|0);b=J[J[a+4>>2]+(g<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+32|0);b=J[J[a+4>>2]+(j<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+8|0);b=J[i+16>>2];p=J[i+40>>2];u=b-p|0;N=J[i+44>>2];b=J[i+20>>2]-(N+(b>>>0<p>>>0)|0)|0;I=b;e=Hl(u,b,u,b);j=ca;b=J[i+8>>2];x=J[i+32>>2];D=b-x|0;O=J[i+36>>2];b=J[i+12>>2]-(O+(b>>>0<x>>>0)|0)|0;L=b;k=e;e=Hl(D,b,D,b);b=k+e|0;k=ca+j|0;k=b>>>0<e>>>0?k+1|0:k;e=J[i+24>>2];E=J[i+48>>2];F=e-E|0;P=J[i+52>>2];e=J[i+28>>2]-(P+(e>>>0<E>>>0)|0)|0;M=e;m=b;b=Hl(F,e,F,e);o=m+b|0;e=ca+k|0;q=b>>>0>o>>>0?e+1|0:e;if(!(q|o)){break h}b=0;v=Jl(-1,2147483647,o,q);e=f;f=e>>31;G=f;r=e;e=f>>31;g=e;l=r^e;e=l-e|0;f=(f^g)-((g>>>0>l>>>0)+g|0)|0;g=f;f=h>>31;Q=f;s=h;h=f>>31;l=s^h;n=l-h|0;k=f>>31;h=(k^f)-((h>>>0>l>>>0)+k|0)|0;f=(h|0)==(g|0)&e>>>0>n>>>0|g>>>0>h>>>0;e=f?e:n;j=ca;h=f?g:h;if((j|0)==(h|0)&e>>>0>v>>>0|h>>>0>j>>>0){break b}j=J[i+64>>2];R=J[i+68>>2];h=Hl(j-p|0,R-((j>>>0<p>>>0)+N|0)|0,u,I);f=ca;l=J[i+56>>2];S=J[i+60>>2];e=Hl(l-x|0,S-((l>>>0<x>>>0)+O|0)|0,D,L);h=e+h|0;g=ca+f|0;g=e>>>0>h>>>0?g+1|0:g;f=h;n=J[i+72>>2];T=J[i+76>>2];h=Hl(n-E|0,T-((n>>>0<E>>>0)+P|0)|0,F,M);t=f+h|0;f=ca+g|0;f=h>>>0>t>>>0?f+1|0:f;v=f;e=f>>31;k=e^t;h=k-e|0;k=(e^f)-((e>>>0>k>>>0)+e|0)|0;f=C;C=f-r|0;f=(f>>31)-((f>>>0<r>>>0)+G|0)|0;U=f;A=f>>31;m=A^C;g=m-A|0;e=f>>31;f=(e^f)-((m>>>0<A>>>0)+e|0)|0;m=f;A=z-s|0;f=(z>>31)-((s>>>0>z>>>0)+Q|0)|0;z=f;e=g;W=e;w=f>>31;y=w^A;V=y-w|0;g=f>>31;f=(g^f)-((w>>>0>y>>>0)+g|0)|0;e=(m|0)==(f|0)&e>>>0>V>>>0|f>>>0<m>>>0;f=Jl(-1,2147483647,e?W:V,e?m:f);e=ca;if((e|0)==(k|0)&f>>>0<h>>>0|e>>>0<k>>>0){break b}f=h;h=k;e=L>>31;g=e;m=e^D;e=m-e|0;g=(g^L)-((g>>>0>m>>>0)+g|0)|0;k=I>>31;w=k^u;y=w-k|0;k=(k^I)-((k>>>0>w>>>0)+k|0)|0;m=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=m?e:y;g=m?g:k;k=M>>31;m=e;w=k^F;y=w-k|0;k=(k^M)-((k>>>0>w>>>0)+k|0)|0;e=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=Jl(-1,2147483647,e?m:y,e?g:k);g=ca;if((g|0)==(h|0)&e>>>0<f>>>0|g>>>0<h>>>0){break b}b=Hl(t,v,A,z);h=ca;f=Hl(o,q,s,Q);s=f+b|0;b=ca+h|0;k=f>>>0>s>>>0?b+1|0:b;b=Hl(t,v,C,U);h=ca;f=b;b=Hl(r,G,o,q);r=f+b|0;e=ca+h|0;G=b>>>0>r>>>0?e+1|0:e;h=1;b=0;g=Il(Hl(t,v,u,I),ca,o,q);e=g+p|0;f=ca+N|0;f=e>>>0<g>>>0?f+1|0:f;g=j-e|0;f=R-((e>>>0>j>>>0)+f|0)|0;j=Hl(g,f,g,f);p=ca;e=Il(Hl(t,v,D,L),ca,o,q);f=e+x|0;g=ca+O|0;g=e>>>0>f>>>0?g+1|0:g;e=l-f|0;f=S-((f>>>0>l>>>0)+g|0)|0;g=Hl(e,f,e,f);f=g+j|0;e=ca+p|0;e=f>>>0<g>>>0?e+1|0:e;l=f;j=Il(Hl(t,v,F,M),ca,o,q);g=j+E|0;f=ca+P|0;f=g>>>0<j>>>0?f+1|0:f;j=n-g|0;f=T-((g>>>0>n>>>0)+f|0)|0;j=Hl(j,f,j,f);f=j+l|0;g=ca+e|0;f=Hl(f,f>>>0<j>>>0?g+1|0:g,o,q);e=ca;j=e;if(!e&f>>>0<=1){break f}l=f;while(1){g=b<<1|h>>>31;h=h<<1;b=g;n=!e&l>>>0>7|(e|0)!=0;l=(e&3)<<30|l>>>2;e=e>>>2|0;if(n){continue}break}break e}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break c}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2];break c}ra();B()}b=j;h=f;if(f-1|0){break d}}while(1){e=Jl(f,j,h,b);b=b+ca|0;g=h;h=e+h|0;b=g>>>0>h>>>0?b+1|0:b;h=(b&1)<<31|h>>>1;b=b>>>1|0;e=Hl(h,b,h,b);g=ca;if((j|0)==(g|0)&e>>>0>f>>>0|g>>>0>j>>>0){continue}break}}t=a+16|0;j=(d<<3)+c|0;d=J[j+4>>2];g=Hl(h,b,C,U);p=ca;c=Il(s-g|0,k-(p+(g>>>0>s>>>0)|0)|0,o,q);f=d-c|0;e=d>>31;l=e-(ca+(c>>>0>d>>>0)|0)|0;n=Hl(f,l,f,l);u=ca;j=J[j>>2];f=j>>31;v=f;l=Hl(h,b,A,z);x=ca;b=G+x|0;h=l+r|0;b=h>>>0<r>>>0?b+1|0:b;m=n;h=Il(h,b,o,q);b=j-h|0;f=f-(ca+(h>>>0>j>>>0)|0)|0;n=Hl(b,f,b,f);b=m+n|0;f=ca+u|0;u=b;n=b>>>0<n>>>0?f+1|0:f;f=e;e=k+p|0;b=g+s|0;e=b>>>0<s>>>0?e+1|0:e;b=Il(b,e,o,q);e=d-b|0;d=f-(ca+(b>>>0>d>>>0)|0)|0;e=Hl(e,d,e,d);p=ca;d=Il(r-l|0,G-((l>>>0>r>>>0)+x|0)|0,o,q);f=j-d|0;g=v-(ca+(d>>>0>j>>>0)|0)|0;j=Hl(f,g,f,g);g=j+e|0;f=ca+p|0;f=g>>>0<j>>>0?f+1|0:f;i:{if((f|0)==(n|0)&g>>>0>u>>>0|f>>>0>n>>>0){H[i+7|0]=1;Wc(t,i+7|0);break i}H[i+7|0]=0;Wc(t,i+7|0);c=b;h=d}J[a+8>>2]=h;J[a+12>>2]=c}b=1}ba=i+80|0;return b}function lh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=ba-80|0;ba=i;h=-1;a:{if((b|0)==-1){break a}f=J[a+32>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){h=J[J[f>>2]+(e<<2)>>2]}e=((b>>>0)%3|0?-1:2)+b|0;b=-1;b=(e|0)!=-1?J[J[f>>2]+(e<<2)>>2]:b;e=J[a+36>>2];f=J[e>>2];e=J[e+4>>2]-f>>2;if(e>>>0<=h>>>0|b>>>0>=e>>>0){break a}b:{c:{d:{e:{f:{g:{j=J[f+(b<<2)>>2];g=J[f+(h<<2)>>2];if((j|0)>=(d|0)|(g|0)>=(d|0)){break g}b=(j<<3)+c|0;z=J[b+4>>2];f=(g<<3)+c|0;h=J[f+4>>2];f=J[f>>2];C=J[b>>2];if(!((f|0)!=(C|0)|(h|0)!=(z|0))){J[a+8>>2]=f;J[a+12>>2]=h;break c}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;e=i- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+56|0);b=J[J[a+4>>2]+(g<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+32|0);b=J[J[a+4>>2]+(j<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+8|0);b=J[i+16>>2];p=J[i+40>>2];u=b-p|0;N=J[i+44>>2];b=J[i+20>>2]-(N+(b>>>0<p>>>0)|0)|0;I=b;e=Hl(u,b,u,b);j=ca;b=J[i+8>>2];x=J[i+32>>2];D=b-x|0;O=J[i+36>>2];b=J[i+12>>2]-(O+(b>>>0<x>>>0)|0)|0;L=b;k=e;e=Hl(D,b,D,b);b=k+e|0;k=ca+j|0;k=b>>>0<e>>>0?k+1|0:k;e=J[i+24>>2];E=J[i+48>>2];F=e-E|0;P=J[i+52>>2];e=J[i+28>>2]-(P+(e>>>0<E>>>0)|0)|0;M=e;m=b;b=Hl(F,e,F,e);o=m+b|0;e=ca+k|0;q=b>>>0>o>>>0?e+1|0:e;if(!(q|o)){break g}b=0;v=Jl(-1,2147483647,o,q);e=f;f=e>>31;G=f;r=e;e=f>>31;g=e;l=r^e;e=l-e|0;f=(f^g)-((g>>>0>l>>>0)+g|0)|0;g=f;f=h>>31;Q=f;s=h;h=f>>31;l=s^h;n=l-h|0;k=f>>31;h=(k^f)-((h>>>0>l>>>0)+k|0)|0;f=(h|0)==(g|0)&e>>>0>n>>>0|g>>>0>h>>>0;e=f?e:n;j=ca;h=f?g:h;if((j|0)==(h|0)&e>>>0>v>>>0|h>>>0>j>>>0){break b}j=J[i+64>>2];R=J[i+68>>2];h=Hl(j-p|0,R-((j>>>0<p>>>0)+N|0)|0,u,I);f=ca;l=J[i+56>>2];S=J[i+60>>2];e=Hl(l-x|0,S-((l>>>0<x>>>0)+O|0)|0,D,L);h=e+h|0;g=ca+f|0;g=e>>>0>h>>>0?g+1|0:g;f=h;n=J[i+72>>2];T=J[i+76>>2];h=Hl(n-E|0,T-((n>>>0<E>>>0)+P|0)|0,F,M);t=f+h|0;f=ca+g|0;f=h>>>0>t>>>0?f+1|0:f;v=f;e=f>>31;k=e^t;h=k-e|0;k=(e^f)-((e>>>0>k>>>0)+e|0)|0;f=C;C=f-r|0;f=(f>>31)-((f>>>0<r>>>0)+G|0)|0;U=f;A=f>>31;m=A^C;g=m-A|0;e=f>>31;f=(e^f)-((m>>>0<A>>>0)+e|0)|0;m=f;A=z-s|0;f=(z>>31)-((s>>>0>z>>>0)+Q|0)|0;z=f;e=g;W=e;w=f>>31;y=w^A;V=y-w|0;g=f>>31;f=(g^f)-((w>>>0>y>>>0)+g|0)|0;e=(m|0)==(f|0)&e>>>0>V>>>0|f>>>0<m>>>0;f=Jl(-1,2147483647,e?W:V,e?m:f);e=ca;if((e|0)==(k|0)&f>>>0<h>>>0|e>>>0<k>>>0){break b}f=h;h=k;e=L>>31;g=e;m=e^D;e=m-e|0;g=(g^L)-((g>>>0>m>>>0)+g|0)|0;k=I>>31;w=k^u;y=w-k|0;k=(k^I)-((k>>>0>w>>>0)+k|0)|0;m=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=m?e:y;g=m?g:k;k=M>>31;m=e;w=k^F;y=w-k|0;k=(k^M)-((k>>>0>w>>>0)+k|0)|0;e=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=Jl(-1,2147483647,e?m:y,e?g:k);g=ca;if((g|0)==(h|0)&e>>>0<f>>>0|g>>>0<h>>>0){break b}b=Hl(t,v,A,z);h=ca;f=Hl(o,q,s,Q);s=f+b|0;b=ca+h|0;k=f>>>0>s>>>0?b+1|0:b;b=Hl(t,v,C,U);h=ca;f=b;b=Hl(r,G,o,q);r=f+b|0;e=ca+h|0;G=b>>>0>r>>>0?e+1|0:e;h=1;b=0;g=Il(Hl(t,v,u,I),ca,o,q);e=g+p|0;f=ca+N|0;f=e>>>0<g>>>0?f+1|0:f;g=j-e|0;f=R-((e>>>0>j>>>0)+f|0)|0;j=Hl(g,f,g,f);p=ca;e=Il(Hl(t,v,D,L),ca,o,q);f=e+x|0;g=ca+O|0;g=e>>>0>f>>>0?g+1|0:g;e=l-f|0;f=S-((f>>>0>l>>>0)+g|0)|0;g=Hl(e,f,e,f);f=g+j|0;e=ca+p|0;e=f>>>0<g>>>0?e+1|0:e;l=f;j=Il(Hl(t,v,F,M),ca,o,q);g=j+E|0;f=ca+P|0;f=g>>>0<j>>>0?f+1|0:f;j=n-g|0;f=T-((g>>>0>n>>>0)+f|0)|0;j=Hl(j,f,j,f);f=j+l|0;g=ca+e|0;f=Hl(f,f>>>0<j>>>0?g+1|0:g,o,q);e=ca;j=e;if(!e&f>>>0<=1){break f}l=f;while(1){g=b<<1|h>>>31;h=h<<1;b=g;n=!e&l>>>0>7|(e|0)!=0;l=(e&3)<<30|l>>>2;e=e>>>2|0;if(n){continue}break}break e}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break c}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2];break c}b=j;h=f;if(f-1|0){break d}}while(1){e=Jl(f,j,h,b);b=b+ca|0;g=h;h=e+h|0;b=g>>>0>h>>>0?b+1|0:b;h=(b&1)<<31|h>>>1;b=b>>>1|0;e=Hl(h,b,h,b);g=ca;if((j|0)==(g|0)&e>>>0>f>>>0|g>>>0>j>>>0){continue}break}}t=a+16|0;j=(d<<3)+c|0;d=J[j+4>>2];g=Hl(h,b,C,U);p=ca;c=Il(s-g|0,k-(p+(g>>>0>s>>>0)|0)|0,o,q);f=d-c|0;e=d>>31;l=e-(ca+(c>>>0>d>>>0)|0)|0;n=Hl(f,l,f,l);u=ca;j=J[j>>2];f=j>>31;v=f;l=Hl(h,b,A,z);x=ca;b=G+x|0;h=l+r|0;b=h>>>0<r>>>0?b+1|0:b;m=n;h=Il(h,b,o,q);b=j-h|0;f=f-(ca+(h>>>0>j>>>0)|0)|0;n=Hl(b,f,b,f);b=m+n|0;f=ca+u|0;u=b;n=b>>>0<n>>>0?f+1|0:f;f=e;e=k+p|0;b=g+s|0;e=b>>>0<s>>>0?e+1|0:e;b=Il(b,e,o,q);e=d-b|0;d=f-(ca+(b>>>0>d>>>0)|0)|0;e=Hl(e,d,e,d);p=ca;d=Il(r-l|0,G-((l>>>0>r>>>0)+x|0)|0,o,q);f=j-d|0;g=v-(ca+(d>>>0>j>>>0)|0)|0;j=Hl(f,g,f,g);g=j+e|0;f=ca+p|0;f=g>>>0<j>>>0?f+1|0:f;h:{if((f|0)==(n|0)&g>>>0>u>>>0|f>>>0>n>>>0){H[i+7|0]=1;Wc(t,i+7|0);break h}H[i+7|0]=0;Wc(t,i+7|0);c=b;h=d}J[a+8>>2]=h;J[a+12>>2]=c}b=1}ba=i+80|0;return b}ra();B()}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=ba-16|0;ba=e;J[a+8>>2]=b;J[a>>2]=0;d=a+12|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=d+32|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+96|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+128|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+160|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+192|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+224|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+256|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+288|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+320|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+352|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+384|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+416|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+448|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+480|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+512|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+544|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+576|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+608|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+640|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+672|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+704|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+736|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+768|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+800|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+832|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+864|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+896|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+928|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+960|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;d=d+992|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1036|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1068|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1088|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1108|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[a+1136>>2]=0;J[a+1128>>2]=0;J[a+1132>>2]=0;h=a+1164|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+1140>>2]=0;J[a+1144>>2]=0;d=a+1156|0;J[d>>2]=0;J[d+4>>2]=0;d=a+1148|0;J[d>>2]=0;J[d+4>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;d=1;break a}d=b<<2;c=oa(d);J[a+1128>>2]=c;f=c+d|0;J[a+1136>>2]=f;pa(c,0,d);g=a+1148|0;J[g>>2]=0;J[a+1140>>2]=0;J[a+1144>>2]=0;J[a+1132>>2]=f;c=oa(d);J[a+1140>>2]=c;f=c+d|0;J[g>>2]=f;pa(c,0,d);g=a+1160|0;J[g>>2]=0;J[a+1152>>2]=0;J[a+1156>>2]=0;J[a+1144>>2]=f;c=oa(d);J[a+1152>>2]=c;f=c+d|0;J[g>>2]=f;pa(c,0,d);J[a+1156>>2]=f;c=oa(d);J[e>>2]=c;f=c+d|0;J[e+8>>2]=f;pa(c,0,d);J[e+4>>2]=f;d=b<<5|1}Jb(h,d,e);c=J[e>>2];if(c){J[e+4>>2]=c;na(c)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;c=oa(b);J[e>>2]=c;f=b+c|0;J[e+8>>2]=f;pa(c,0,b);J[e+4>>2]=f}Jb(a+1176|0,d,e);b=J[e>>2];if(b){J[e+4>>2]=b;na(b)}ba=e+16|0;return a}function Xf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(J[a+92>>2]==J[a+88>>2]){break e}c=J[a+52>>2];f:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break f}h=J[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0<e>>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}f=e+(d<<2)|0;J[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;J[f>>2]=J[c>>2];if((c|0)!=(h|0)){continue}break}}J[a+56>>2]=e+(g<<2);J[a+52>>2]=d;J[a+48>>2]=f;if(!h){break f}na(h)}J[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=J[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=J[J[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=J[J[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=J[a+36>>2];h=d+(c>>>3&536870908)|0;g=J[h>>2];f=1<<c;if(!(g&f)){J[h>>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}mb(f,c,d);d=J[a+36>>2]}f=d+i|0;d=J[f>>2];c=1<<e;if(!(d&c)){J[f>>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}mb(d,e,c)}c=-1;c=(b|0)!=-1?J[J[J[a+4>>2]>>2]+(b<<2)>>2]:c;f=J[a+36>>2]+(c>>>3&536870908)|0;d=J[f>>2];e=1<<c;if(!(d&e)){J[f>>2]=d|e;mb(a+8|0,c,b)}d=J[a+84>>2];if((d|0)>2){break e}while(1){e=P(d,12)+a|0;b=J[e+52>>2];if((b|0)==J[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=J[b>>2];J[e+52>>2]=b;J[a+84>>2]=d;if((c|0)==-1){break e}f=J[a+24>>2];b=(c>>>0)/3|0;j:{if(J[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;J[b>>2]=J[b>>2]|1<<k;d=-1;l:{m:{n:{o:{p:{q:{r:{s:{d=(c|0)!=-1?J[J[J[a+4>>2]>>2]+(c<<2)>>2]:d;f=J[a+36>>2]+(d>>>3&536870908)|0;e=J[f>>2];b=1<<d;if(!(e&b)){J[f>>2]=b|e;i=J[(J[J[a+16>>2]+96>>2]+P(k,12)|0)+((c>>>0)%3<<2)>>2];l=J[J[a+20>>2]+4>>2];f=J[l+4>>2];t:{if((f|0)!=J[l+8>>2]){J[f>>2]=i;J[l+4>>2]=f+4;break t}j=J[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=oa(h<<2)}else{e=0}b=e+(g<<2)|0;J[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;J[b>>2]=J[f>>2];if((f|0)!=(j|0)){continue}break}}J[l+8>>2]=e+(h<<2);J[l+4>>2]=g;J[l>>2]=b;if(!j){break t}na(j)}j=J[a+12>>2];f=J[j+4>>2];u:{if((f|0)!=J[j+8>>2]){J[f>>2]=c;J[j+4>>2]=f+4;break u}i=J[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=oa(h<<2)}else{e=0}b=e+(g<<2)|0;J[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;J[b>>2]=J[f>>2];if((f|0)!=(i|0)){continue}break}}J[j+8>>2]=e+(h<<2);J[j+4>>2]=g;J[j>>2]=b;if(!i){break u}na(i)}b=J[a+12>>2];J[J[b+12>>2]+(d<<2)>>2]=J[b+24>>2];J[b+24>>2]=J[b+24>>2]+1}if((c|0)==-1){break k}g=J[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=J[J[g+12>>2]+(b<<2)>>2]}v:{w:{if((P(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=J[J[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=J[J[a+24>>2]+(b>>>3&268435452)>>2]&1<<b;if(d){break q}l=(b|0)!=0;break p}l=1;if(!d){break p}break k}qa();B()}qa();B()}if(!b){break o}break k}b=d?-1:e;x:{if(J[J[a+24>>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=J[J[g>>2]+(c<<2)>>2];if(!(J[J[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=J[a+88>>2]+(b<<2)|0;e=J[b>>2];J[b>>2]=e+1;k=(e|0)<=0?2:1}if(J[a+84>>2]>=(k|0)&l){break m}j=P(k,12)+a|0;b=J[j+52>>2];y:{if((b|0)!=J[j+56>>2]){J[b>>2]=c;J[j+52>>2]=b+4;break y}i=J[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}d=e+(d<<2)|0;J[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;J[d>>2]=J[b>>2];if((b|0)!=(i|0)){continue}break}}J[j+48>>2]=d;J[j+52>>2]=c;J[j+56>>2]=e+(g<<2);if(!i){break y}na(i)}if(J[a+84>>2]<=(k|0)){break x}J[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=J[J[J[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(J[J[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=J[a+88>>2]+(c<<2)|0;c=J[b>>2];J[b>>2]=c+1;b=(c|0)<=0?2:1}if(J[a+84>>2]<(b|0)){break l}c=f}f=J[a+24>>2];continue}break}k=P(b,12)+a|0;c=J[k+52>>2];z:{if((c|0)!=J[k+56>>2]){J[c>>2]=f;J[k+52>>2]=c+4;break z}i=J[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}d=e+(d<<2)|0;J[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;J[d>>2]=J[c>>2];if((c|0)!=(i|0)){continue}break}}J[k+48>>2]=d;J[k+52>>2]=f;J[k+56>>2]=e+(g<<2);if(!i){break z}na(i)}d=J[a+84>>2];if((d|0)<=(b|0)){break j}J[a+84>>2]=b;d=b;break j}d=J[a+84>>2]}if((d|0)<3){continue}break}}return 1}xa();B()}qa();B()}qa();B()}qa();B()}function Ha(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;J[e+12>>2]=a;a:{if(a>>>0<=211){d=J[Ke(17792,17984,e+12|0)>>2];break a}if(a>>>0>=4294967292){Z();B()}f=(a>>>0)/210|0;d=P(f,210);J[e+8>>2]=a-d;g=Ke(17984,18176,e+8|0)-17984>>2;while(1){d=J[(g<<2)+17984>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0<a>>>0){break a}if((P(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((P(b,c)|0)!=(d|0)){continue}break}break b}b=J[(a<<2)+17792>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((P(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=P(f,210);continue}}ba=e+16|0;return d}function Hd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);f=ba-112|0;ba=f;J[f+88>>2]=0;J[f+92>>2]=0;J[f+80>>2]=0;J[f+84>>2]=0;J[f+96>>2]=1065353216;c=J[a+80>>2];J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}h=c<<2;l=oa(h);J[f+32>>2]=l;c=h+l|0;J[f+40>>2]=c;pa(l,0,h);J[f+36>>2]=c;while(1){d=J[J[b>>2]>>2];h=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],o,0);j=c;c=c+h|0;e=c+d|0;c=K[e+12|0]|K[e+13|0]<<8|(K[e+14|0]<<16|K[e+15|0]<<24);J[f+72>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+76>>2]=c;c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[f+64>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+68>>2]=c;k=K[e+12|0]|K[e+13|0]<<8|(K[e+14|0]<<16|K[e+15|0]<<24);h=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+56>>2]=h;J[f+60>>2]=k;d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);c=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+48>>2]=c;J[f+52>>2]=d;J[f+16>>2]=h;J[f+20>>2]=k;J[f+8>>2]=c;J[f+12>>2]=d;J[f+24>>2]=q;c=0;m=f+8|0;h=J[m+12>>2]^(J[m+8>>2]^(J[m+4>>2]^(J[m>>2]^318)+239)+239)+239;b:{c:{n=f+80|0;j=J[n+4>>2];if(!j){break c}d=Kl(j);d:{if(d>>>0>=2){c=h;if(c>>>0>=j>>>0){c=(h>>>0)%(j>>>0)|0}i=J[J[n>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}k=J[m+12>>2];r=J[m+8>>2];s=J[m+4>>2];e=J[m>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(h|0)){if(d>>>0>=j>>>0){d=(d>>>0)%(j>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[i+8>>2];e:{if((d|0)!=(e|0)){d=(d|0)==(e|0);break e}d=J[i+12>>2];if((d|0)!=(s|0)){d=(d|0)==(s|0);break e}d=J[i+16>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=(k|0)==J[i+20>>2]}if(!d){continue}break}c=0;break b}c=h&j-1;i=J[J[n>>2]+(c<<2)>>2];if(!i){break c}}e=j-1|0;k=J[m+12>>2];t=J[m+8>>2];r=J[m+4>>2];s=J[m>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(h|0)&(d&e)!=(c|0)){break c}d=J[i+8>>2];f:{if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=J[i+12>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=J[i+16>>2];if((d|0)!=(t|0)){d=(d|0)==(t|0);break f}d=(k|0)==J[i+20>>2]}if(!d){continue}break}c=0;break b}i=oa(28);d=J[m+12>>2];J[i+16>>2]=J[m+8>>2];J[i+20>>2]=d;d=J[m+4>>2];J[i+8>>2]=J[m>>2];J[i+12>>2]=d;d=J[m+16>>2];J[i>>2]=0;J[i+4>>2]=h;J[i+24>>2]=d;p=Q(J[n+12>>2]+1>>>0);u=N[n+16>>2];g:{if(p>Q(u*Q(j>>>0))?0:j){break g}c=2;d=(j-1&j)!=0|j>>>0<3|j<<1;p=Q(W(Q(p/u)));h:{if(p<Q(4294967296)&p>=Q(0)){k=~~p>>>0;break h}k=0}d=d>>>0>k>>>0?d:k;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);j=J[n+4>>2]}j:{if(c>>>0<=j>>>0){if(c>>>0>=j>>>0){break j}k=j>>>0<3;p=Q(W(Q(Q(M[n+12>>2])/N[n+16>>2])));k:{if(p<Q(4294967296)&p>=Q(0)){d=~~p>>>0;break k}d=0}l:{m:{if(k){break m}if(Kl(j)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(j>>>0<=c>>>0){break j}}db(n,c)}j=J[n+4>>2];c=j-1|0;if(!(c&j)){c=c&h;break g}if(h>>>0<j>>>0){c=h;break g}c=(h>>>0)%(j>>>0)|0}h=J[n>>2]+(c<<2)|0;c=J[h>>2];n:{o:{if(!c){c=n+8|0;J[i>>2]=J[c>>2];J[n+8>>2]=i;J[h>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];h=j-1|0;p:{if(!(h&j)){c=c&h;break p}if(c>>>0<j>>>0){break p}c=(c>>>0)%(j>>>0)|0}c=J[n>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[n+12>>2]=J[n+12>>2]+1;c=1}H[f+108|0]=c;J[f+104>>2]=i;q:{if(!K[f+108|0]){J[(o<<2)+l>>2]=J[J[f+104>>2]+24>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,f- -64|0,c);l=J[f+32>>2];J[l+(o<<2)>>2]=q;q=q+1|0}o=o+1|0;g=o?g:g+1|0;e=J[a+80>>2];if(!g&o>>>0<e>>>0){continue}break}if((e|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];e=J[a+68>>2];if((b|0)==(e|0)){break r}b=b-e>>2;g=b>>>0<=1?1:b;h=g&3;c=0;b=0;if(g-1>>>0>=3){o=g&-4;k=0;while(1){d=b<<2;g=d+e|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|4)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|8)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|12)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];b=b+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}if(!h){break r}while(1){g=e+(b<<2)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];b=b+1|0;c=c+1|0;if((h|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;g=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<e>>>0){Ma(g,e-c|0,2176);e=J[a+80>>2];break s}if(c>>>0<=e>>>0){break s}J[a+72>>2]=b+(e<<2)}if(!e){break r}d=J[g>>2];c=0;b=0;if(e>>>0>=4){o=e&-4;k=0;while(1){h=b<<2;J[h+d>>2]=J[h+l>>2];g=h|4;J[g+d>>2]=J[g+l>>2];g=h|8;J[g+d>>2]=J[g+l>>2];g=h|12;J[g+d>>2]=J[g+l>>2];b=b+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}o=e&3;if(!o){break r}while(1){g=b<<2;J[g+d>>2]=J[g+l>>2];b=b+1|0;c=c+1|0;if((o|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(l)}b=J[f+88>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[f+80>>2];J[f+80>>2]=0;if(a){na(a)}ba=f+112|0;return q}qa();B()}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ba-32|0;ba=h;a:{b:{if(!J[J[a+8>>2]+80>>2]){e=1;break b}H[h+31|0]=254;d=J[a+36>>2];if(d){if(!(da[J[J[a>>2]+40>>2]](a,d)|0)){break b}d=J[a+36>>2];n=h,o=da[J[J[d>>2]+8>>2]](d)|0,H[n+31|0]=o}d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],h+31|0,h+32|0)}d=J[a+36>>2];c:{if(!d){break c}n=h,o=da[J[J[d>>2]+36>>2]](d)|0,H[n+16|0]=o;d=J[c+20>>2];if(!!J[c+16>>2]&(d|0)>=0|(d|0)>0){break c}sa(c,J[c+4>>2],h+16|0,h+17|0)}d=J[a+32>>2];e=J[d+48>>2];f=J[J[d>>2]>>2];g=J[d+80>>2];k=K[d+24|0];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;g=P(g,k);if(g){if(g>>>0>=1073741824){break a}d=g<<2;i=oa(d);pa(i,0,d)}d=e+f|0;f=J[a+36>>2];d:{e:{f:{if(!f){break f}e=0;if(!(da[J[J[f>>2]+44>>2]](f,d,i,g,k,J[b>>2])|0)){break d}e=J[a+36>>2];if(!e){break f}if(da[J[J[e>>2]+32>>2]](e)|0){break e}d=J[a+36>>2]?i:d}e=0;f=0;g:{if((g|0)<=0){break g}if((g|0)!=1){m=g&-2;while(1){l=e<<2;j=J[l+d>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=l|4;j=J[l+d>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;e=e+2|0;f=f+2|0;if((m|0)!=(f|0)){continue}break}}if(!(g&1)){break g}e=e<<2;d=J[e+d>>2];J[e+i>>2]=(d|0)<0?(d^-1)<<1|1:d<<1}}h:{i:{j:{k:{d=J[a+4>>2];if(!d){break k}j=J[d+48>>2];d=oa(48);J[h>>2]=d;J[h+4>>2]=34;J[h+8>>2]=-2147483600;e=K[1411]|K[1412]<<8;H[d+32|0]=e;H[d+33|0]=e>>>8;e=K[1407]|K[1408]<<8|(K[1409]<<16|K[1410]<<24);f=K[1403]|K[1404]<<8|(K[1405]<<16|K[1406]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=e;H[d+29|0]=e>>>8;H[d+30|0]=e>>>16;H[d+31|0]=e>>>24;e=K[1399]|K[1400]<<8|(K[1401]<<16|K[1402]<<24);f=K[1395]|K[1396]<<8|(K[1397]<<16|K[1398]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1391]|K[1392]<<8|(K[1393]<<16|K[1394]<<24);f=K[1387]|K[1388]<<8|(K[1389]<<16|K[1390]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1383]|K[1384]<<8|(K[1385]<<16|K[1386]<<24);f=K[1379]|K[1380]<<8|(K[1381]<<16|K[1382]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+34|0]=0;d=Pb(j,h,1);if(H[h+11|0]<0){na(J[h>>2])}if(d){break k}if(!g){break j}d=0;e=0;b=0;if(g>>>0>=4){j=g&-4;f=0;while(1){k=e<<2;b=J[(k|12)+i>>2]|(J[(k|8)+i>>2]|(J[(k|4)+i>>2]|(J[i+k>>2]|b)));e=e+4|0;f=f+4|0;if((j|0)!=(f|0)){continue}break}}f=g&3;if(f){while(1){b=J[(e<<2)+i>>2]|b;e=e+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(!b){break j}d=4-(S(b)>>>3|0)|0;break i}H[h|0]=1;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],h,h+1|0)}J[h>>2]=h|4;J[h+4>>2]=0;J[h+8>>2]=0;d=J[a+4>>2];if(d){j=10-cb(J[d+48>>2])|0;e=ba-16|0;ba=e;l:{if(j>>>0>10){break l}d=oa(48);J[e>>2]=d;J[e+4>>2]=33;J[e+8>>2]=-2147483600;H[d+32|0]=K[1470];g=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);f=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=g;H[d+29|0]=g>>>8;H[d+30|0]=g>>>16;H[d+31|0]=g>>>24;g=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);f=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=g;H[d+21|0]=g>>>8;H[d+22|0]=g>>>16;H[d+23|0]=g>>>24;g=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);f=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=g;H[d+13|0]=g>>>8;H[d+14|0]=g>>>16;H[d+15|0]=g>>>24;g=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);f=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+33|0]=0;vb(h,e,j);if(H[e+11|0]>=0){break l}na(J[e>>2])}ba=e+16|0}b=ee(i,P(k,J[b+4>>2]-J[b>>2]>>2),k,h,c);Da(h,J[h+4>>2]);e=0;if(b){break h}break d}d=1}H[h|0]=0;b=J[c+20>>2];m:{if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break m}e=h+1|0;sa(c,J[c+4>>2],h,e);f=J[c+16>>2];b=J[c+20>>2];H[h|0]=d;if(!!f&(b|0)>=0|(b|0)>0){break m}sa(c,J[c+4>>2],h,e)}n:{if((d|0)!=J[3712]){if(!g){break h}e=J[c+20>>2];f=e;b=J[c+16>>2];if(!!b&(e|0)>=0|(e|0)>0){break h}e=0;break n}b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break h}sa(c,J[c+4>>2],i,(g<<2)+i|0);break h}while(1){if(!b&(f|0)<=0|(f|0)<0){b=(e<<2)+i|0;sa(c,J[c+4>>2],b,b+d|0)}e=e+1|0;if((g|0)==(e|0)){break h}b=J[c+16>>2];f=J[c+20>>2];continue}}e=1;a=J[a+36>>2];if(!a){break d}da[J[J[a>>2]+40>>2]](a,c)|0}if(!i){break b}na(i)}ba=h+32|0;return e|0}qa();B()}function Ea(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=ba-96|0;ba=k;u=i&65535;o=(e^i)&-2147483648;q=e&65535;z=q;Q=i>>>16&32767;R=e>>>16&32767;a:{b:{if(Q-32767>>>0>4294934529&R-32767>>>0>=4294934530){break b}s=e&2147483647;r=s;j=d;if(!(!d&(r|0)==2147418112?!(b|c):r>>>0<2147418112)){m=d;o=e|32768;break a}s=i&2147483647;p=s;e=h;if(!(!e&(p|0)==2147418112?!(f|g):p>>>0<2147418112)){m=h;o=i|32768;b=f;c=g;break a}if(!(b|j|(r^2147418112|c))){if(!(e|f|(g|p))){o=2147450880;b=0;c=0;break a}o=o|2147418112;b=0;c=0;break a}if(!(e|f|(p^2147418112|g))){e=b|j;d=c|r;b=0;c=0;if(!(d|e)){o=2147450880;break a}o=o|2147418112;break a}if(!(b|j|(c|r))){b=0;c=0;break a}if(!(e|f|(g|p))){b=0;c=0;break a}if((r|0)==65535|r>>>0<65535){j=!(d|q);i=j?b:d;s=j<<6;e=S(i)+32|0;i=S(j?c:q);i=s+((i|0)==32?e:i)|0;Pa(k+80|0,b,c,d,q,i-15|0);t=16-i|0;d=J[k+88>>2];z=J[k+92>>2];c=J[k+84>>2];b=J[k+80>>2]}if(p>>>0>65535){break b}i=!(h|u);e=i?f:h;q=i<<6;j=S(e)+32|0;e=S(i?g:u);e=q+((e|0)==32?j:e)|0;Pa(k- -64|0,f,g,h,u,e-15|0);t=(t-e|0)+16|0;h=J[k+72>>2];u=J[k+76>>2];f=J[k+64>>2];g=J[k+68>>2]}e=f;f=g<<15|f>>>17;i=e<<15;e=0;v=i&-32768;K=c;s=Hl(v,e,c,0);e=ca;y=e;L=f;r=b;b=Hl(f,0,b,0);i=b+s|0;f=ca+e|0;c=b>>>0>i>>>0?f+1|0:f;j=0;b=Hl(r,l,v,l);p=j+b|0;f=i;e=f+ca|0;e=b>>>0>p>>>0?e+1|0:e;q=e;M=(f|0)==(e|0)&j>>>0>p>>>0|e>>>0<f>>>0;N=d;w=Hl(v,l,d,0);O=ca;b=Hl(K,l,L,l);x=b+w|0;j=ca+O|0;j=b>>>0>x>>>0?j+1|0:j;b=u<<15|h>>>17;A=h<<15|g>>>17;d=Hl(A,0,r,l);B=d+x|0;f=ca+j|0;f=d>>>0>B>>>0?f+1|0:f;C=f;d=(c|0)==(y|0)&i>>>0<s>>>0|c>>>0<y>>>0;D=c+B|0;f=d+f|0;f=c>>>0>D>>>0?f+1|0:f;u=f;g=D;c=f;E=z|65536;z=Hl(v,l,E,n);P=ca;d=Hl(N,m,L,l);F=d+z|0;e=ca+P|0;e=d>>>0>F>>>0?e+1|0:e;i=e;G=b|-2147483648;b=Hl(G,0,r,l);H=b+F|0;f=ca+e|0;f=b>>>0>H>>>0?f+1|0:f;b=Hl(A,m,K,l);y=b+H|0;I=f;f=f+ca|0;s=b>>>0>y>>>0?f+1|0:f;b=0;r=b+g|0;e=c+y|0;v=b>>>0>r>>>0?e+1|0:e;f=v;b=r+M|0;c=b>>>0<r>>>0?f+1|0:f;t=((R+Q|0)+t|0)-16383|0;d=Hl(G,m,K,l);h=ca;e=Hl(E,m,L,l);g=e+d|0;f=ca+h|0;f=e>>>0>g>>>0?f+1|0:f;n=(h|0)==(f|0)&d>>>0>g>>>0|f>>>0<h>>>0;h=f;e=Hl(A,m,N,m);d=e+g|0;f=ca+f|0;f=d>>>0<e>>>0?f+1|0:f;e=f;g=(f|0)==(h|0)&d>>>0<g>>>0|f>>>0<h>>>0;f=0;h=g;g=g+n|0;f=h>>>0>g>>>0?1:f;h=g;g=Hl(G,m,E,m);h=h+g|0;f=ca+f|0;M=h;g=g>>>0>h>>>0?f+1|0:f;h=d;l=e;e=(j|0)==(O|0)&w>>>0>x>>>0|j>>>0<O>>>0;f=0;j=(j|0)==(C|0)&x>>>0>B>>>0|j>>>0>C>>>0;n=j;j=e+j|0;e=(n>>>0>j>>>0?1:f)+l|0;f=g;d=d+j|0;e=d>>>0<j>>>0?e+1|0:e;n=e;w=d;d=(e|0)==(l|0)&d>>>0<h>>>0|e>>>0<l>>>0;e=d;d=d+M|0;f=e>>>0>d>>>0?f+1|0:f;j=d;g=f;e=Hl(A,m,E,m);l=ca;d=Hl(G,m,N,m);h=d+e|0;f=ca+l|0;f=d>>>0>h>>>0?f+1|0:f;d=f;f=(l|0)==(f|0)&e>>>0>h>>>0|f>>>0<l>>>0;x=d+j|0;e=f+g|0;e=d>>>0>x>>>0?e+1|0:e;l=x;g=e;e=0;d=e+w|0;f=h+n|0;f=d>>>0<e>>>0?f+1|0:f;e=f;h=(n|0)==(f|0)&d>>>0<w>>>0|f>>>0<n>>>0;f=g;g=h+l|0;f=g>>>0<h>>>0?f+1|0:f;w=g;g=f;h=d;j=e;e=(s|0)==(I|0)&y>>>0<H>>>0|s>>>0<I>>>0;d=(i|0)==(P|0)&z>>>0>F>>>0|i>>>0<P>>>0;i=(i|0)==(I|0)&F>>>0>H>>>0|i>>>0>I>>>0;d=d+i|0;d=d+e|0;n=s;i=n+h|0;e=d+j|0;f=g;d=i;e=d>>>0<n>>>0?e+1|0:e;h=(e|0)==(j|0)&h>>>0>d>>>0|e>>>0<j>>>0;g=h+w|0;f=h>>>0>g>>>0?f+1|0:f;j=g;g=f;h=d;f=0;i=e;n=(u|0)==(v|0)&r>>>0<D>>>0|u>>>0>v>>>0;l=n;n=n+((u|0)==(C|0)&B>>>0>D>>>0|u>>>0<C>>>0)|0;e=e+(l>>>0>n>>>0?1:f)|0;f=g;d=d+n|0;e=d>>>0<n>>>0?e+1|0:e;h=(e|0)==(i|0)&d>>>0<h>>>0|e>>>0<i>>>0;g=h;h=h+j|0;f=g>>>0>h>>>0?f+1|0:f;i=f;c:{if(f&65536){t=t+1|0;break c}j=q>>>31|0;g=0;f=i<<1|h>>>31;h=h<<1|e>>>31;i=f;f=e<<1|d>>>31;d=d<<1|c>>>31;e=f;f=q<<1|p>>>31;p=p<<1;q=f;f=c<<1|b>>>31;b=b<<1|j;c=f|g}if((t|0)>=32767){o=o|2147418112;b=0;c=0;break a}d:{if((t|0)<=0){g=1-t|0;if(g>>>0<=127){f=t+127|0;Pa(k+48|0,p,q,b,c,f);Pa(k+32|0,d,e,h,i,f);Gb(k+16|0,p,q,b,c,g);Gb(k,d,e,h,i,g);p=J[k+32>>2]|J[k+16>>2]|(J[k+48>>2]|J[k+56>>2]|(J[k+52>>2]|J[k+60>>2]))!=0;q=J[k+36>>2]|J[k+20>>2];b=J[k+40>>2]|J[k+24>>2];c=J[k+44>>2]|J[k+28>>2];d=J[k>>2];e=J[k+4>>2];g=J[k+8>>2];f=J[k+12>>2];break d}b=0;c=0;break a}g=h;f=i&65535|t<<16}m=g|m;o=f|o;if(!(!b&(c|0)==-2147483648?!(p|q):(c|0)>0|(c|0)>=0)){b=d+1|0;c=b?e:e+1|0;d=(e|0)==(c|0)&b>>>0<d>>>0|c>>>0<e>>>0;e=o;m=d+m|0;o=m>>>0<d>>>0?e+1|0:e;break a}if(b|p|(c^-2147483648|q)){b=d;c=e;break a}j=o;f=e;b=d&1;c=b;b=b+d|0;c=c>>>0>b>>>0?f+1|0:f;d=(f|0)==(c|0)&b>>>0<d>>>0|c>>>0<f>>>0;m=d+m|0;o=d>>>0>m>>>0?j+1|0:j}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=m;J[a+12>>2]=o;ba=k+96|0}function ej(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=ba-16|0;ba=o;a:{if(!(da[J[J[a>>2]+32>>2]](a)|0)){break a}e=J[a+44>>2];c=J[a+12>>2];b=J[a+8>>2];H[o+15|0]=c-b>>>2;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],o+15|0,o+16|0);c=J[a+12>>2];b=J[a+8>>2]}if((b|0)!=(c|0)){while(1){e=J[b>>2];if(!(da[J[J[e>>2]+8>>2]](e,a,J[a+4>>2])|0)){break a}b=b+4|0;if((c|0)!=(b|0)){continue}break}}f=ba-48|0;ba=f;e=a;q=a+32|0;g=J[a+12>>2];a=J[a+8>>2];d=g-a|0;c=d>>2;h=J[e+32>>2];b=J[e+36>>2]-h>>2;b:{if(c>>>0>b>>>0){Fa(q,c-b|0);g=J[e+12>>2];a=J[e+8>>2];d=g-a|0;c=d>>2;break b}if(b>>>0<=c>>>0){break b}J[e+36>>2]=h+(c<<2)}J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;b=a;c:{d:{if((a|0)!=(g|0)){if((d|0)<0){break d}a=(c-1>>>5|0)+1|0;b=oa(a<<2);J[f+40>>2]=a;J[f+36>>2]=0;J[f+32>>2]=b;mc(f+32|0,c);b=J[e+12>>2];a=J[e+8>>2]}e:{while(1){f:{c=b-a>>2;if(k>>>0<c>>>0){g=(a|0)!=(b|0);m=0;b=a;d=0;if(!g){break f}while(1){i=J[f+32>>2];n=d>>>5<<2;h=J[i+n>>2];p=1<<d;g:{if(h&p){break g}b=0;j=1;l=d<<2;g=J[l+a>>2];c=J[g+4>>2];if((c|0)!=J[g+8>>2]){while(1){a=0;c=J[(b<<2)+c>>2];h:{if((da[J[J[g>>2]+24>>2]](g,c)|0)<=0){break h}while(1){i:{g=J[l+J[e+8>>2]>>2];g=da[J[J[g>>2]+28>>2]](g,c,a)|0;if((g|0)==(d|0)){break i}g=J[J[e+20>>2]+(g<<2)>>2];if(J[J[f+32>>2]+(g>>>3&536870908)>>2]>>>g&1){break i}j=0;break h}g=J[l+J[e+8>>2]>>2];a=a+1|0;if((da[J[J[g>>2]+24>>2]](g,c)|0)>(a|0)){continue}break}}a=J[e+8>>2];g=J[l+a>>2];c=J[g+4>>2];b=b+1|0;if(b>>>0<J[g+8>>2]-c>>2>>>0){continue}break}if(!j){break g}i=J[f+32>>2];h=J[n+i>>2]}J[J[q>>2]+(k<<2)>>2]=d;J[i+n>>2]=h|p;m=1;k=k+1|0}b=J[e+12>>2];c=b-a>>2;d=d+1|0;if(c>>>0>d>>>0){continue}break}break f}m=0;J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;d=J[e+4>>2];c=J[d+12>>2];d=J[d+8>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;j:{k:{l:{if((c|0)!=(d|0)){a=c-d|0;if((a|0)<0){break l}a=a>>2;b=(a-1>>>5|0)+1|0;c=oa(b<<2);J[f+8>>2]=b;J[f+4>>2]=0;J[f>>2]=c;mc(f,a);b=J[e+12>>2];a=J[e+8>>2]}m:{if((a|0)==(b|0)){b=1;break m}while(1){g=J[J[q>>2]+(m<<2)>>2]<<2;b=J[g+a>>2];b=J[b+8>>2]-J[b+4>>2]|0;n:{if((b|0)<8){break n}c=b>>2;b=J[f+16>>2];a=J[f+20>>2]-b>>2;o:{if(c>>>0>a>>>0){Fa(f+16|0,c-a|0);break o}if(a>>>0<=c>>>0){break o}J[f+20>>2]=b+(c<<2)}i=(c|0)<=1?1:c;h=0;p:{while(1){if((c|0)<=(h|0)){break p}b=0;d=J[f>>2];j=0;while(1){p=1<<b;n=b>>>5<<2;q:{if(p&J[n+d>>2]){break q}a=0;d=J[g+J[e+8>>2]>>2];k=J[J[d+4>>2]+(b<<2)>>2];if((da[J[J[d>>2]+24>>2]](d,k)|0)>0){while(1){d=J[g+J[e+8>>2]>>2];l=da[J[J[d>>2]+28>>2]](d,k,a)|0;d=J[f>>2];if(!(J[d+(l>>>3&536870908)>>2]>>>l&1)){break q}d=J[g+J[e+8>>2]>>2];a=a+1|0;if((da[J[J[d>>2]+24>>2]](d,k)|0)>(a|0)){continue}break}}J[J[f+16>>2]+(h<<2)>>2]=b;d=J[f>>2];a=n+d|0;J[a>>2]=p|J[a>>2];j=1;h=h+1|0}b=b+1|0;if((i|0)!=(b|0)){continue}break}if((c|0)<=(h|0)|j){continue}break}b=0;break m}a=J[e+8>>2];b=J[g+a>>2];d=J[b+4>>2];J[b+8>>2]=d;J[b+20>>2]=J[b+16>>2];g=J[f+16>>2];l=J[f+20>>2];if((g|0)==(l|0)){break n}k=b+16|0;c=d;while(1){a=J[g>>2];r:{if(J[b+12>>2]!=(c|0)){J[c>>2]=a;J[b+8>>2]=c+4;break r}c=c-d|0;i=c>>2;h=i+1|0;if(h>>>0>=1073741824){break k}j=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<j>>>0?j:h;if(h){if(h>>>0>=1073741824){break j}j=oa(h<<2)}else{j=0}i=j+(i<<2)|0;J[i>>2]=a;c=ta(j,d,c);J[b+12>>2]=c+(h<<2);J[b+8>>2]=i+4;J[b+4>>2]=c;if(!d){break r}na(d)}c=J[b+16>>2];d=J[b+20>>2]-c>>2;s:{if((d|0)>(a|0)){break s}J[f+44>>2]=-1;h=a+1|0;if(h>>>0>d>>>0){jc(k,h-d|0,f+44|0);c=J[k>>2];break s}if(d>>>0<=h>>>0){break s}J[b+20>>2]=(h<<2)+c}a=(a<<2)+c|0;c=J[b+8>>2];d=J[b+4>>2];J[a>>2]=(c-d>>2)-1;g=g+4|0;if((l|0)!=(g|0)){continue}break}a=J[e+8>>2]}b=1;m=m+1|0;if(m>>>0<J[e+12>>2]-a>>2>>>0){continue}break}}a=J[f>>2];if(a){na(a)}a=J[f+16>>2];if(!a){break e}J[f+20>>2]=a;na(a);break e}qa();B()}qa();B()}xa();B()}if(m&1|c>>>0<=k>>>0){continue}break}b=0}a=J[f+32>>2];if(a){na(a)}ba=f+48|0;break c}qa();B()}if(!b){break a}b=J[e+32>>2];a=J[e+36>>2];t:{if((b|0)==(a|0)){break t}while(1){if(!(da[J[J[e>>2]+40>>2]](e,J[b>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}b=J[e+32>>2];a=J[e+36>>2];if((b|0)==(a|0)){break t}while(1){c=J[J[e+8>>2]+(J[b>>2]<<2)>>2];if(!(da[J[J[c>>2]+12>>2]](c,J[e+44>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}}r=da[J[J[e>>2]+44>>2]](e)|0}ba=o+16|0;return r|0}function Id(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);f=ba-96|0;ba=f;J[f+72>>2]=0;J[f+76>>2]=0;J[f+64>>2]=0;J[f+68>>2]=0;J[f+80>>2]=1065353216;c=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;k=oa(e);J[f+16>>2]=k;c=e+k|0;J[f+24>>2]=c;pa(k,0,e);J[f+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+e|0;e=c+d|0;J[f+56>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[f+48>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+52>>2]=c;c=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+40>>2]=c;d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+32>>2]=e;J[f+36>>2]=d;J[f+8>>2]=c;J[f>>2]=e;J[f+4>>2]=d;J[f+12>>2]=p;c=0;e=J[f+8>>2]^(J[f+4>>2]^(J[f>>2]^318)+239)+239;b:{c:{m=f- -64|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=e;if(e>>>0>=h>>>0){c=(e>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}l=J[f+8>>2];q=J[f+4>>2];j=J[f>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(e|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[i+8>>2];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=J[i+12>>2];if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=(l|0)==J[i+16>>2]}if(!d){continue}break}c=0;break b}c=e&h-1;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;l=J[f+8>>2];r=J[f+4>>2];q=J[f>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(e|0)&(d&j)!=(c|0)){break c}d=J[i+8>>2];f:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=J[i+12>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==J[i+16>>2]}if(!d){continue}break}c=0;break b}i=oa(24);J[i+16>>2]=J[f+8>>2];d=J[f+4>>2];J[i+8>>2]=J[f>>2];J[i+12>>2]=d;d=J[f+12>>2];J[i>>2]=0;J[i+4>>2]=e;J[i+20>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&e;break g}if(e>>>0<h>>>0){c=e;break g}c=(e>>>0)%(h>>>0)|0}e=J[m>>2]+(c<<2)|0;c=J[e>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[e>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];e=h-1|0;p:{if(!(e&h)){c=c&e;break p}if(c>>>0<h>>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[f+92|0]=c;J[f+88>>2]=i;q:{if(!K[f+92|0]){J[(n<<2)+k>>2]=J[J[f+88>>2]+20>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,f+48|0,c);k=J[f+16>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;g=n?g:g+1|0;j=J[a+80>>2];if(!g&n>>>0<j>>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;g=b>>>0<=1?1:b;e=g&3;c=0;b=0;if(g-1>>>0>=3){n=g&-4;l=0;while(1){d=b<<2;g=d+j|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|4)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|8)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|12)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!e){break r}while(1){g=j+(b<<2)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;g=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(g,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[g>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];g=e|4;J[g+d>>2]=J[g+k>>2];g=e|8;J[g+d>>2]=J[g+k>>2];g=e|12;J[g+d>>2]=J[g+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[f+72>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[f+64>>2];J[f+64>>2]=0;if(a){na(a)}ba=f+96|0;return p}qa();B()}function jj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ba-16|0;ba=j;c=J[b+56>>2];f=J[c+100>>2];e=J[c+96>>2];d=(f-e|0)/12|0;Aa(d,J[b+44>>2]);Aa(J[J[b+56>>2]+80>>2],J[b+44>>2]);k=J[b+48>>2];c=oa(32);J[j>>2]=c;J[j+4>>2]=21;J[j+8>>2]=-2147483616;g=K[1149]|K[1150]<<8|(K[1151]<<16|K[1152]<<24);i=K[1145]|K[1146]<<8|(K[1147]<<16|K[1148]<<24);H[c+13|0]=i;H[c+14|0]=i>>>8;H[c+15|0]=i>>>16;H[c+16|0]=i>>>24;H[c+17|0]=g;H[c+18|0]=g>>>8;H[c+19|0]=g>>>16;H[c+20|0]=g>>>24;g=K[1144]|K[1145]<<8|(K[1146]<<16|K[1147]<<24);i=K[1140]|K[1141]<<8|(K[1142]<<16|K[1143]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=g;H[c+13|0]=g>>>8;H[c+14|0]=g>>>16;H[c+15|0]=g>>>24;g=K[1136]|K[1137]<<8|(K[1138]<<16|K[1139]<<24);i=K[1132]|K[1133]<<8|(K[1134]<<16|K[1135]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=g;H[c+5|0]=g>>>8;H[c+6|0]=g>>>16;H[c+7|0]=g>>>24;H[c+21|0]=0;g=Pb(k,j,0);if(H[j+11|0]<0){na(J[j>>2])}c=J[b+44>>2];a:{if(g){H[j|0]=0;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],j,j+1|0)}e=0;c=0;g=ba-16|0;ba=g;J[g>>2]=0;J[g+4>>2]=0;d=J[b+56>>2];f=J[d+100>>2];d=J[d+96>>2];if((f|0)!=(d|0)){c=(f-d|0)/12|0;p=c>>>0<=1?1:c;c=0;d=J[g>>2];b:{c:{while(1){d:{i=J[J[b+56>>2]+96>>2]+P(n,12)|0;l=J[i>>2];f=l-m|0;k=f>>31;k=(f^k)-k<<1|f>>>31;e:{if((e|0)!=(h|0)){J[e>>2]=k;e=e+4|0;J[g+4>>2]=e;break e}f=e-c|0;m=f>>2;h=m+1|0;if(h>>>0>=1073741824){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}d=oa(h<<2)}else{d=0}e=d+(m<<2)|0;J[e>>2]=k;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}o=J[i+4>>2];f=o-l|0;k=f>>31;k=(f^k)-k<<1|f>>>31;f:{if((e|0)!=(h|0)){J[e>>2]=k;e=e+4|0;J[g+4>>2]=e;break f}f=e-c|0;l=f>>2;h=l+1|0;if(h>>>0>1073741823){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>1073741823){break c}d=oa(h<<2)}else{d=0}e=d+(l<<2)|0;J[e>>2]=k;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}m=J[i+8>>2];f=m-o|0;i=f>>31;i=(f^i)-i<<1|f>>>31;g:{if((e|0)!=(h|0)){J[e>>2]=i;e=e+4|0;J[g+4>>2]=e;break g}f=e-c|0;k=f>>2;h=k+1|0;if(h>>>0>1073741823){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>1073741823){break c}d=oa(h<<2)}else{d=0}e=d+(k<<2)|0;J[e>>2]=i;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}n=n+1|0;if((p|0)!=(n|0)){continue}break b}break}J[g+8>>2]=e;J[g>>2]=d;qa();B()}J[g>>2]=d;xa();B()}J[g>>2]=d}ee(c,e-c>>2,1,0,J[b+44>>2]);if(c){na(c)}ba=g+16|0;break a}H[j|0]=1;g=J[c+20>>2];if(!J[c+16>>2]&(g|0)<=0|(g|0)<0){sa(c,J[c+4>>2],j,j+1|0)}c=J[J[b+56>>2]+80>>2];if(c>>>0<=255){if((f|0)==(e|0)){break a}h=d>>>0<=1?1:d;f=j+1|0;c=0;while(1){d=J[b+44>>2];e=J[J[b+56>>2]+96>>2]+P(c,12)|0;H[j|0]=J[e>>2];g=J[d+20>>2];h:{if(!!J[d+16>>2]&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];H[j|0]=J[e+4>>2];if(!!i&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];H[j|0]=J[e+8>>2];if(!!i&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if(c>>>0<=65535){if((f|0)==(e|0)){break a}h=d>>>0<=1?1:d;f=j+2|0;c=0;while(1){d=J[b+44>>2];e=J[J[b+56>>2]+96>>2]+P(c,12)|0;I[j>>1]=J[e>>2];g=J[d+20>>2];i:{if(!!J[d+16>>2]&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];I[j>>1]=J[e+4>>2];if(!!i&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];I[j>>1]=J[e+8>>2];if(!!i&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if(c>>>0>=2097152){if((f|0)==(e|0)){break a}c=J[b+44>>2];f=!!J[c+16>>2];c=J[c+20>>2];if(f&(c|0)>=0|(c|0)>0){break a}f=d>>>0<=1?1:d;c=0;while(1){d=J[b+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){e=d;g=J[d+4>>2];d=J[J[b+56>>2]+96>>2]+P(c,12)|0;sa(e,g,d,d+12|0)}c=c+1|0;if((f|0)!=(c|0)){continue}break}break a}if((f|0)==(e|0)){break a}f=d>>>0<=1?1:d;c=0;while(1){d=J[J[b+56>>2]+96>>2]+P(c,12)|0;Aa(J[d>>2],J[b+44>>2]);Aa(J[d+4>>2],J[b+44>>2]);Aa(J[d+8>>2],J[b+44>>2]);c=c+1|0;if((f|0)!=(c|0)){continue}break}}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=j+16|0}function vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=0,t=0,u=0,v=Q(0);i=ba-80|0;ba=i;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+64>>2]=1065353216;c=J[a+80>>2];J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[i+24>>2]=k;c=f+k|0;J[i+32>>2]=c;pa(k,0,f);J[i+28>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);c=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[i+40>>2]=f;J[i+44>>2]=c;J[i+16>>2]=p;J[i+8>>2]=f;J[i+12>>2]=c;c=0;m=i+8|0;f=L[m+6>>1]^(L[m+4>>1]^(L[m+2>>1]^(L[m>>1]^318)+239)+239)+239;b:{c:{l=i+48|0;g=J[l+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}h=J[J[l>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<2){break d}q=L[m>>1];r=L[m+2>>1];t=L[m+4>>1];j=L[m+6>>1];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[h+8>>1];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=L[h+10>>1];if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=L[h+12>>1];if((d|0)!=(t|0)){d=(d|0)==(t|0);break e}d=(j|0)==L[h+14>>1]}if(!d){continue}break}c=0;break b}c=f&g-1;h=J[J[l>>2]+(c<<2)>>2];if(!h){break c}}t=g-1|0;u=L[m>>1];q=L[m+2>>1];r=L[m+4>>1];j=L[m+6>>1];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)&(d&t)!=(c|0)){break c}d=L[h+8>>1];f:{if((d|0)!=(u|0)){d=(d|0)==(u|0);break f}d=L[h+10>>1];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=L[h+12>>1];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(j|0)==L[h+14>>1]}if(!d){continue}break}c=0;break b}h=oa(20);d=J[m+4>>2];J[h+8>>2]=J[m>>2];J[h+12>>2]=d;d=J[m+8>>2];J[h+4>>2]=f;J[h+16>>2]=d;J[h>>2]=0;o=Q(J[l+12>>2]+1>>>0);v=N[l+16>>2];g:{if(o>Q(v*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/v)));h:{if(o<Q(4294967296)&o>=Q(0)){j=~~o>>>0;break h}j=0}d=d>>>0>j>>>0?d:j;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[l+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}j=g>>>0<3;o=Q(W(Q(Q(M[l+12>>2])/N[l+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(j){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(l,c)}g=J[l+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[l>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=l+8|0;J[h>>2]=J[c>>2];J[l+8>>2]=h;J[f>>2]=c;c=J[h>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[l>>2]+(c<<2)|0;break o}J[h>>2]=J[c>>2]}J[c>>2]=h}J[l+12>>2]=J[l+12>>2]+1;c=1}H[i+76|0]=c;J[i+72>>2]=h;q:{if(!K[i+76|0]){J[(n<<2)+k>>2]=J[J[i+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,i+40|0,c);k=J[i+24>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0<j>>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[i+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[i+48>>2];J[i+48>>2]=0;if(a){na(a)}ba=i+80|0;return p}qa();B()}function wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);e=ba-80|0;ba=e;J[e+56>>2]=0;J[e+60>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e+64>>2]=1065353216;c=J[a+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;k=oa(g);J[e+16>>2]=k;c=g+k|0;J[e+24>>2]=c;pa(k,0,g);J[e+20>>2]=c;while(1){d=J[J[b>>2]>>2];g=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+g|0;c=c+d|0;I[e+44>>1]=K[c+4|0]|K[c+5|0]<<8;J[e+40>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);g=K[c+4|0]|K[c+5|0]<<8;I[e+36>>1]=g;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+32>>2]=c;I[e+4>>1]=g;J[e>>2]=c;J[e+8>>2]=p;c=0;g=L[e+4>>1]^(L[e+2>>1]^(L[e>>1]^318)+239)+239;b:{c:{m=e+48|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=g;if(c>>>0>=h>>>0){c=(g>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}q=L[e>>1];j=L[e+2>>1];l=L[e+4>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[i+8>>1];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=L[i+10>>1];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==L[i+12>>1]}if(!d){continue}break}c=0;break b}c=g&h+262143;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;r=L[e>>1];q=L[e+2>>1];l=L[e+4>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)&(d&j)!=(c|0)){break c}d=L[i+8>>1];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=L[i+10>>1];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=(l|0)==L[i+12>>1]}if(!d){continue}break}c=0;break b}i=oa(20);I[i+12>>1]=L[e+4>>1];J[i+8>>2]=J[e>>2];d=J[e+8>>2];J[i>>2]=0;J[i+4>>2]=g;J[i+16>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&g;break g}if(g>>>0<h>>>0){c=g;break g}c=(g>>>0)%(h>>>0)|0}g=J[m>>2]+(c<<2)|0;c=J[g>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[g>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];g=h-1|0;p:{if(!(g&h)){c=c&g;break p}if(c>>>0<h>>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[e+76|0]=c;J[e+72>>2]=i;q:{if(!K[e+76|0]){J[(n<<2)+k>>2]=J[J[e+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,e+40|0,c);k=J[e+16>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;f=n?f:f+1|0;j=J[a+80>>2];if(!f&n>>>0<j>>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;f=b>>>0<=1?1:b;g=f&3;c=0;b=0;if(f-1>>>0>=3){n=f&-4;l=0;while(1){d=b<<2;f=d+j|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|4)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|8)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|12)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!g){break r}while(1){f=j+(b<<2)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;f=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(f,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[f>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];f=g|4;J[f+d>>2]=J[f+k>>2];f=g|8;J[f+d>>2]=J[f+k>>2];f=g|12;J[f+d>>2]=J[f+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[e+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[e+48>>2];J[e+48>>2]=0;if(a){na(a)}ba=e+80|0;return p}qa();B()}function If(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);i=ba+-64|0;ba=i;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;J[i+48>>2]=1065353216;c=J[a+80>>2];J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[i+16>>2]=k;c=f+k|0;J[i+24>>2]=c;pa(k,0,f);J[i+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],o,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[i+28>>2]=c;J[i+12>>2]=q;J[i+8>>2]=c;c=0;n=i+8|0;f=K[n+3|0]^(K[n+2|0]^(K[n+1|0]^(K[n|0]^318)+239)+239)+239;b:{c:{m=i+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}h=J[J[m>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<2){break d}r=K[n|0];s=K[n+1|0];j=K[n+2|0];l=K[n+3|0];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[h+8|0];e:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=K[h+9|0];if((d|0)!=(s|0)){d=(d|0)==(s|0);break e}d=K[h+10|0];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[h+11|0]}if(!d){continue}break}c=0;break b}c=f&g-1;h=J[J[m>>2]+(c<<2)>>2];if(!h){break c}}j=g-1|0;t=K[n|0];r=K[n+1|0];s=K[n+2|0];l=K[n+3|0];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=K[h+8|0];f:{if((d|0)!=(t|0)){d=(d|0)==(t|0);break f}d=K[h+9|0];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=K[h+10|0];if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=(l|0)==K[h+11|0]}if(!d){continue}break}c=0;break b}h=oa(16);J[h+8>>2]=J[n>>2];d=J[n+4>>2];J[h+4>>2]=f;J[h+12>>2]=d;J[h>>2]=0;p=Q(J[m+12>>2]+1>>>0);u=N[m+16>>2];g:{if(p>Q(u*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;p=Q(W(Q(p/u)));h:{if(p<Q(4294967296)&p>=Q(0)){l=~~p>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;p=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(p<Q(4294967296)&p>=Q(0)){d=~~p>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[h>>2]=J[c>>2];J[m+8>>2]=h;J[f>>2]=c;c=J[h>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[h>>2]=J[c>>2]}J[c>>2]=h}J[m+12>>2]=J[m+12>>2]+1;c=1}H[i+60|0]=c;J[i+56>>2]=h;q:{if(!K[i+60|0]){J[(o<<2)+k>>2]=J[J[i+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,i+28|0,c);k=J[i+16>>2];J[k+(o<<2)>>2]=q;q=q+1|0}o=o+1|0;e=o?e:e+1|0;j=J[a+80>>2];if(!e&o>>>0<j>>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){o=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((o|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){o=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((o|0)!=(l|0)){continue}break}}o=j&3;if(!o){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((o|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[i+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[i+32>>2];J[i+32>>2]=0;if(a){na(a)}ba=i- -64|0;return q}qa();B()}function Tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=ba-96|0;ba=e;f=J[a+16>>2];H[e+92|0]=1;J[e+88>>2]=b;J[e+84>>2]=b;J[e+80>>2]=f;j=J[a+20>>2];d=J[j>>2];a:{b:{f=J[J[f+28>>2]+(b<<2)>>2];if(f>>>0<J[j+4>>2]-d>>2>>>0){d=J[J[a+8>>2]+(J[d+(f<<2)>>2]<<2)>>2];f=J[a+4>>2];if(!K[f+84|0]){d=J[J[f+68>>2]+(d<<2)>>2]}J[e+72>>2]=0;J[e+76>>2]=0;j=e- -64|0;J[j>>2]=0;J[j+4>>2]=0;J[e+56>>2]=0;J[e+60>>2]=0;hb(f,d,H[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!J[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=J[a+20>>2];b=J[n>>2];d=J[J[J[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=J[n+4>>2]-b>>2>>>0){break b}d=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;hb(b,d,H[b+24|0],e+32|0);d=J[a+20>>2];b=J[d>>2];f=J[J[J[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=J[d+4>>2]-b>>2>>>0){break a}d=J[J[a+8>>2]+(J[b+(f<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;hb(b,d,H[b+24|0],e+8|0);g=J[e+8>>2];b=J[e+56>>2];d=g-b|0;p=J[e+60>>2];t=J[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=J[e+40>>2];f=J[e+64>>2];n=h-f|0;u=J[e+68>>2];x=J[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Hl(d,t,n,x);v=o-g|0;w=i-(ca+(g>>>0>o>>>0)|0)|0;i=v;h=J[e+16>>2];g=h-f|0;u=J[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=J[e+32>>2];h=k-b|0;v=J[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Hl(g,u,h,v);o=i+b|0;i=ca+w|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=J[e+48>>2];f=J[e+72>>2];d=k-f|0;t=J[e+76>>2];w=J[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Hl(l,p,d,w);k=b+l|0;b=ca+q|0;b=k>>>0<l>>>0?b+1|0:b;l=J[e+24>>2];p=l-f|0;f=J[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Hl(p,f,h,v);l=k-q|0;q=b-(ca+(k>>>0<q>>>0)|0)|0;b=Hl(g,u,d,w);d=r-b|0;b=s-(ca+(b>>>0>r>>>0)|0)|0;s=Hl(p,f,n,x);r=s+d|0;b=ca+b|0;s=r>>>0<s>>>0?b+1|0:b;b=J[e+88>>2];f=J[e+80>>2];d:{if(K[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}J[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[e+88>>2]=b;if((b|0)!=-1){break e}}b=J[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}H[e+92|0]=0;J[e+88>>2]=d;break d}if((b|0)!=J[e+84>>2]){break d}J[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}J[e+88>>2]=d}b=J[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!J[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0<f>>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0<a>>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Il(o,n,a,b);l=Il(l,q,a,b);r=Il(r,s,a,b)}J[c+8>>2]=o;J[c+4>>2]=l;J[c>>2]=r;ba=e+96|0;return}ra();B()}ra();B()}ra();B()}function Kf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);e=ba+-64|0;ba=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;c=J[a+80>>2];J[e+16>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;k=oa(g);J[e+8>>2]=k;c=g+k|0;J[e+16>>2]=c;pa(k,0,g);J[e+12>>2]=c;while(1){d=J[J[b>>2]>>2];g=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+g|0;c=c+d|0;H[e+30|0]=K[c+2|0];I[e+28>>1]=K[c|0]|K[c+1|0]<<8;g=K[c+2|0];H[e+26|0]=g;c=K[c|0]|K[c+1|0]<<8;I[e+24>>1]=c;H[e+2|0]=g;I[e>>1]=c;J[e+4>>2]=p;c=0;g=K[e+2|0]^(K[e+1|0]^(K[e|0]^318)+239)+239;b:{c:{m=e+32|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=g;if(c>>>0>=h>>>0){c=(g>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}q=K[e|0];j=K[e+1|0];l=K[e+2|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[i+8|0];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=K[i+9|0];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[i+10|0]}if(!d){continue}break}c=0;break b}c=g&h-1;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;r=K[e|0];q=K[e+1|0];l=K[e+2|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)&(d&j)!=(c|0)){break c}d=K[i+8|0];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=K[i+9|0];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=(l|0)==K[i+10|0]}if(!d){continue}break}c=0;break b}i=oa(16);H[i+10|0]=K[e+2|0];I[i+8>>1]=L[e>>1];d=J[e+4>>2];J[i>>2]=0;J[i+4>>2]=g;J[i+12>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&g;break g}if(g>>>0<h>>>0){c=g;break g}c=(g>>>0)%(h>>>0)|0}g=J[m>>2]+(c<<2)|0;c=J[g>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[g>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];g=h-1|0;p:{if(!(g&h)){c=c&g;break p}if(c>>>0<h>>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[e+60|0]=c;J[e+56>>2]=i;q:{if(!K[e+60|0]){J[(n<<2)+k>>2]=J[J[e+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,e+28|0,c);k=J[e+8>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;f=n?f:f+1|0;j=J[a+80>>2];if(!f&n>>>0<j>>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;f=b>>>0<=1?1:b;g=f&3;c=0;b=0;if(f-1>>>0>=3){n=f&-4;l=0;while(1){d=b<<2;f=d+j|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|4)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|8)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|12)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!g){break r}while(1){f=j+(b<<2)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;f=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(f,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[f>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];f=g|4;J[f+d>>2]=J[f+k>>2];f=g|8;J[f+d>>2]=J[f+k>>2];f=g|12;J[f+d>>2]=J[f+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[e+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[e+32>>2];J[e+32>>2]=0;if(a){na(a)}ba=e- -64|0;return p}qa();B()}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ba-96|0;ba=f;d=J[a+16>>2];H[f+92|0]=1;J[f+88>>2]=b;J[f+84>>2]=b;J[f+80>>2]=d;a:{if((b|0)==-1){break a}j=J[a+20>>2];e=J[j>>2];d=J[J[d>>2]+(b<<2)>>2];if(d>>>0>=J[j+4>>2]-e>>2>>>0){break a}e=J[J[a+8>>2]+(J[e+(d<<2)>>2]<<2)>>2];d=J[a+4>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}J[f+72>>2]=0;J[f+76>>2]=0;j=f- -64|0;J[j>>2]=0;J[j+4>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;hb(d,e,H[d+24|0],f+56|0);d=b+1|0;j=(d>>>0)%3|0?d:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=j;d=m;d:{if(!J[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}n=J[a+20>>2];b=J[n>>2];e=J[J[J[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=J[n+4>>2]-b>>2>>>0){break b}e=J[J[a+8>>2]+(J[b+(e<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;hb(b,e,H[b+24|0],f+32|0);if((d|0)==-1){break c}e=J[a+20>>2];b=J[e>>2];d=J[J[J[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=J[e+4>>2]-b>>2>>>0){break c}e=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;hb(b,e,H[b+24|0],f+8|0);g=J[f+8>>2];b=J[f+56>>2];e=g-b|0;p=J[f+60>>2];t=J[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=J[f+40>>2];d=J[f+64>>2];n=h-d|0;u=J[f+68>>2];x=J[f+44>>2]-(u+(d>>>0>h>>>0)|0)|0;g=Hl(e,t,n,x);v=o-g|0;w=i-(ca+(g>>>0>o>>>0)|0)|0;i=v;h=J[f+16>>2];g=h-d|0;u=J[f+20>>2]-((d>>>0>h>>>0)+u|0)|0;k=J[f+32>>2];h=k-b|0;v=J[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Hl(g,u,h,v);o=i+b|0;i=ca+w|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=e;p=t;k=J[f+48>>2];d=J[f+72>>2];e=k-d|0;t=J[f+76>>2];w=J[f+52>>2]-(t+(d>>>0>k>>>0)|0)|0;l=Hl(l,p,e,w);k=b+l|0;b=ca+q|0;b=k>>>0<l>>>0?b+1|0:b;l=J[f+24>>2];p=l-d|0;d=J[f+28>>2]-((d>>>0>l>>>0)+t|0)|0;q=Hl(p,d,h,v);l=k-q|0;q=b-(ca+(k>>>0<q>>>0)|0)|0;b=Hl(g,u,e,w);e=r-b|0;b=s-(ca+(b>>>0>r>>>0)|0)|0;s=Hl(p,d,n,x);r=s+e|0;b=ca+b|0;s=r>>>0<s>>>0?b+1|0:b;b=J[f+88>>2];e=J[f+80>>2];e:{if(K[f+92|0]){f:{g:{h:{i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break i}b=J[J[e+12>>2]+(b<<2)>>2];if((b|0)!=-1){break h}}J[f+88>>2]=-1;break g}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[f+88>>2]=b;if((b|0)!=-1){break f}}b=J[f+84>>2];d=-1;j:{if((b|0)==-1){break j}k:{if((b>>>0)%3|0){b=b-1|0;break k}b=b+2|0;d=-1;if((b|0)==-1){break j}}b=J[J[e+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break j}d=b-1|0;if((b>>>0)%3|0){break j}d=b+2|0}H[f+92|0]=0;J[f+88>>2]=d;break e}if((b|0)!=J[f+84>>2]){break e}J[f+88>>2]=-1;break e}d=-1;l:{if((b|0)==-1){break l}m:{if((b>>>0)%3|0){b=b-1|0;break m}b=b+2|0;d=-1;if((b|0)==-1){break l}}b=J[J[e+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break l}d=b-1|0;if((b>>>0)%3|0){break l}d=b+2|0}J[f+88>>2]=d}b=J[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;d=b^r;e=d-b|0;b=(b^s)-((b>>>0>d>>>0)+b|0)|0;m=-1;d=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;n:{o:{if(!J[a+28>>2]){if((b|0)==(g|0)&e>>>0>k>>>0|b>>>0>g>>>0){break n}b=b+h|0;a=e+j|0;b=a>>>0<j>>>0?b+1|0:b;d=a;g=i;a=g>>31;e=a;m=e^o;a=m-e|0;i=a;e=(e^g)-((e>>>0>m>>>0)+e|0)|0;a=a+d|0;e=e^2147483647;i=(e|0)==(b|0)&(i^-1)>>>0<d>>>0|b>>>0>e>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break n}b=0;a=a>>>29|0;break o}p:{if((b|0)==(g|0)&e>>>0>k>>>0|b>>>0>g>>>0){break p}b=b+h|0;a=e+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;e=i>>31;h=e^o;i=h-e|0;j=(e^k)-((e>>>0>h>>>0)+e|0)|0;g=j^2147483647;e=a;a=i;if((g|0)==(b|0)&e>>>0>(a^-1)>>>0|b>>>0>g>>>0){break p}b=b+j|0;m=a+e|0;b=m>>>0<a>>>0?b+1|0:b;d=b;if(!b&m>>>0<536870913){break n}}b=d>>>29|0;a=(d&536870911)<<3|m>>>29}o=Il(o,n,a,b);l=Il(l,q,a,b);r=Il(r,s,a,b)}J[c+8>>2]=o;J[c+4>>2]=l;J[c>>2]=r;ba=f+96|0;return}ra();B()}ra();B()}ra();B()}function Jd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=Q(0),o=0,p=0,q=0,r=0,s=0,t=Q(0);h=ba-80|0;ba=h;J[h+56>>2]=0;J[h+60>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;J[h+64>>2]=1065353216;c=J[a+80>>2];J[h+32>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+24>>2]=k;c=f+k|0;J[h+32>>2]=c;pa(k,0,f);J[h+28>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);g=c;c=c+f|0;c=c+d|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);c=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[h+40>>2]=f;J[h+44>>2]=c;J[h+16>>2]=p;J[h+8>>2]=f;J[h+12>>2]=c;c=0;o=h+8|0;f=J[o+4>>2]^(J[o>>2]^318)+239;b:{c:{l=h+48|0;g=J[l+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}j=J[J[l>>2]+(c<<2)>>2];if(!j){break c}if(d>>>0<2){break d}i=J[o+4>>2];r=J[o>>2];while(1){j=J[j>>2];if(!j){break c}d=J[j+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[j+8>>2];e:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=(i|0)==J[j+12>>2]}if(!d){continue}break}c=0;break b}c=f&g-1;j=J[J[l>>2]+(c<<2)>>2];if(!j){break c}}r=g-1|0;i=J[o+4>>2];s=J[o>>2];while(1){j=J[j>>2];if(!j){break c}d=J[j+4>>2];if((d|0)!=(f|0)&(d&r)!=(c|0)){break c}d=J[j+8>>2];f:{if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=(i|0)==J[j+12>>2]}if(!d){continue}break}c=0;break b}j=oa(20);d=J[o+4>>2];J[j+8>>2]=J[o>>2];J[j+12>>2]=d;d=J[o+8>>2];J[j+4>>2]=f;J[j+16>>2]=d;J[j>>2]=0;n=Q(J[l+12>>2]+1>>>0);t=N[l+16>>2];g:{if(n>Q(t*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;n=Q(W(Q(n/t)));h:{if(n<Q(4294967296)&n>=Q(0)){i=~~n>>>0;break h}i=0}d=d>>>0>i>>>0?d:i;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[l+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}i=g>>>0<3;n=Q(W(Q(Q(M[l+12>>2])/N[l+16>>2])));k:{if(n<Q(4294967296)&n>=Q(0)){d=~~n>>>0;break k}d=0}l:{m:{if(i){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(l,c)}g=J[l+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[l>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=l+8|0;J[j>>2]=J[c>>2];J[l+8>>2]=j;J[f>>2]=c;c=J[j>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[l>>2]+(c<<2)|0;break o}J[j>>2]=J[c>>2]}J[c>>2]=j}J[l+12>>2]=J[l+12>>2]+1;c=1}H[h+76|0]=c;J[h+72>>2]=j;q:{if(!K[h+76|0]){J[(m<<2)+k>>2]=J[J[h+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,h+40|0,c);k=J[h+24>>2];J[k+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;e=m?e:e+1|0;i=J[a+80>>2];if(!e&m>>>0<i>>>0){continue}break}if((i|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];i=J[a+68>>2];if((b|0)==(i|0)){break r}b=b-i>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){m=e&-4;while(1){d=b<<2;e=d+i|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;q=q+4|0;if((m|0)!=(q|0)){continue}break}}if(!f){break r}while(1){e=i+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<i>>>0){Ma(e,i-c|0,2176);i=J[a+80>>2];break s}if(c>>>0<=i>>>0){break s}J[a+72>>2]=b+(i<<2)}if(!i){break r}d=J[e>>2];c=0;b=0;if(i>>>0>=4){m=i&-4;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;q=q+4|0;if((m|0)!=(q|0)){continue}break}}m=i&3;if(!m){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((m|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[h+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+48>>2];J[h+48>>2]=0;if(a){na(a)}ba=h+80|0;return p}qa();B()}function fb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ba-32|0;ba=f;a:{b=J[a+16>>2];b:{if(b>>>0>=113){J[a+16>>2]=b-113;b=J[a+4>>2];j=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];c:{if((b|0)!=J[a+12>>2]){d=b;break c}k=J[a>>2];if(k>>>0<c>>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=ta(e+c|0,c,b)+b|0;J[a+8>>2]=d;J[a+4>>2]=e+J[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=oa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=h;if(!k){break c}na(k);d=J[a+8>>2]}J[d>>2]=j;J[a+8>>2]=J[a+8>>2]+4;break b}c=J[a+8>>2];b=J[a+4>>2];l=c-b|0;h=l>>2;g=J[a+12>>2];d=J[a>>2];e=g-d|0;if(h>>>0<e>>2>>>0){if((c|0)!=(g|0)){n=f,o=oa(4068),J[n+8>>2]=o;d=a;f:{g:{b=J[a+8>>2];h:{if((b|0)!=J[a+12>>2]){e=b;break h}c=J[d+4>>2];h=J[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=ta(g+c|0,c,a)+a|0;J[d+8>>2]=e;J[d+4>>2]=g+J[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=oa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}J[d+12>>2]=l;J[d+8>>2]=e;J[d+4>>2]=a;J[d>>2]=j;if(!h){break h}na(h);e=J[d+8>>2]}J[e>>2]=J[f+8>>2];J[d+8>>2]=J[d+8>>2]+4;break f}xa();B()}break b}n=f,o=oa(4068),J[n+8>>2]=o;qe(a,f+8|0);b=J[a+4>>2];j=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];k:{if((b|0)!=J[a+12>>2]){d=b;break k}k=J[a>>2];if(k>>>0<c>>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=ta(e+c|0,c,b)+b|0;J[a+8>>2]=d;J[a+4>>2]=e+J[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=oa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=h;if(!k){break k}na(k);d=J[a+8>>2]}J[d>>2]=j;J[a+8>>2]=J[a+8>>2]+4;break b}J[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=oa(e);J[f+8>>2]=g;j=e+g|0;J[f+20>>2]=j;d=(h<<2)+g|0;J[f+12>>2]=d;i=oa(4068);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;J[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=oa(b);J[f+8>>2]=e;j=b+e|0;J[f+20>>2]=j;d=e+(d&-4)|0;J[f+12>>2]=d;na(g);b=J[a+4>>2];c=J[a+8>>2];g=e}J[d>>2]=i;i=d+4|0;J[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qe(f+8|0,c);if(J[a+4>>2]!=(c|0)){continue}break}j=J[f+20>>2];i=J[f+16>>2];d=J[f+12>>2];g=J[f+8>>2];e=c;b=J[a+8>>2]}c=J[a>>2];J[a>>2]=g;J[f+8>>2]=c;J[a+4>>2]=d;J[f+12>>2]=e;J[a+8>>2]=i;J[f+16>>2]=b;d=J[a+12>>2];J[a+12>>2]=j;J[f+20>>2]=d;if((b|0)!=(e|0)){J[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}na(c)}ba=f+32|0;return}xa();B()}function _k(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=ba-48|0;ba=k;J[a+68>>2]=f;o=a+112|0;za(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[k+40>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Tc(p,J[d+(n<<2)>>2],k+32|0);f=J[k+36>>2];d=f>>31;g=J[k+32>>2];e=g>>31;i=(d^f)-d+((e^g)-e)|0;h=J[k+40>>2];d=h>>31;e=(d^h)-d|0;d=0;m=e;e=e+i|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+108>>2];i=j;break b}j=J[a+108>>2];i=j>>31;f=Il(Hl(j,i,f,f>>31),ca,e,d);l=f>>31;i=Il(Hl(j,i,g,g>>31),ca,e,d);d=i>>31;d=(f^l)-l+((d^i)-d)|0;h=(h|0)<0?d-j|0:j-d|0}c:{if((i|0)>=0){e=f+j|0;l=h+j|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;l=(d^f)-d|0;break c}d=f>>31;l=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|l)){break e}if(!((d|0)!=(l|0)|e)){m=l;g=l;break e}if(!((d|0)!=(e|0)|l)){m=e;g=e;break e}if(!((j|0)>=(l|0)|e)){m=(j<<1)-l|0;g=0;break e}if(!((d|0)!=(e|0)|(j|0)<=(l|0))){m=(j<<1)-l|0;g=e;break e}if(!((d|0)!=(l|0)|(e|0)>=(j|0))){m=l;g=(j<<1)-e|0;break e}if(l){m=l;g=e;break e}m=0;g=e;if((e|0)<=(j|0)){break e}g=(j<<1)-e|0}J[k+28>>2]=m;J[k+24>>2]=g;J[k+40>>2]=0-h;J[k+36>>2]=0-f;J[k+32>>2]=0-i;f:{if((i|0)<=0){i=j-h|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;i=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|i)){i=d;break g}if(!((d|0)!=(i|0)|e)){i=d;break g}f=(d|0)!=(e|0);if(!(i|f)){i=d;break g}if(!((i|0)<=(j|0)|e)){i=(j<<1)-i|0;d=0;break g}if(!((i|0)>=(j|0)|f)){i=(j<<1)-i|0;break g}if(!((d|0)!=(i|0)|(e|0)>=(j|0))){i=d;d=(j<<1)-e|0;break g}if(i){d=e;break g}i=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}J[k+20>>2]=i;J[k+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}l=(n<<3)+b|0;i=J[a+32>>2];e=0;g=k+24|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+j>>2]=h;break i}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(k+8|0)|0;g=J[f+l>>2]-J[f+j>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}i=J[a+32>>2];e=0;g=k+16|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+j>>2]=h;break k}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+k|0;g=J[g+l>>2]-J[j+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[k+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[k+8>>2]=f;h=J[k+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[k+12>>2]=h;d=J[k>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[k>>2]=d;i=J[k+4>>2];p:{if((e|0)<(i|0)){i=i-J[a+96>>2]|0;break p}if((0-e|0)<=(i|0)){break p}i=J[a+96>>2]+i|0}J[k+4>>2]=i;e=h>>31;e=(e^h)-e|0;l=f>>31;l=(l^f)-l|0;m=l>>>0>(e^2147483647)>>>0?2147483647:e+l|0;e=i>>31;e=(e^i)-e|0;l=d>>31;l=(l^d)-l|0;e=m>>>0>=(l>>>0>(e^2147483647)>>>0?2147483647:e+l|0)>>>0;Ca(o,e);g=g<<2;d=e?d:f;J[g+c>>2]=(J[a+96>>2]&d>>31)+d;d=e?i:h;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=ba-48|0;ba=k;J[a+68>>2]=f;o=a+112|0;za(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[k+40>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(p,J[d+(n<<2)>>2],k+32|0);f=J[k+36>>2];d=f>>31;g=J[k+32>>2];e=g>>31;i=(d^f)-d+((e^g)-e)|0;h=J[k+40>>2];d=h>>31;e=(d^h)-d|0;d=0;m=e;e=e+i|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+108>>2];i=j;break b}j=J[a+108>>2];i=j>>31;f=Il(Hl(j,i,f,f>>31),ca,e,d);l=f>>31;i=Il(Hl(j,i,g,g>>31),ca,e,d);d=i>>31;d=(f^l)-l+((d^i)-d)|0;h=(h|0)<0?d-j|0:j-d|0}c:{if((i|0)>=0){e=f+j|0;l=h+j|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;l=(d^f)-d|0;break c}d=f>>31;l=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|l)){break e}if(!((d|0)!=(l|0)|e)){m=l;g=l;break e}if(!((d|0)!=(e|0)|l)){m=e;g=e;break e}if(!((j|0)>=(l|0)|e)){m=(j<<1)-l|0;g=0;break e}if(!((d|0)!=(e|0)|(j|0)<=(l|0))){m=(j<<1)-l|0;g=e;break e}if(!((d|0)!=(l|0)|(e|0)>=(j|0))){m=l;g=(j<<1)-e|0;break e}if(l){m=l;g=e;break e}m=0;g=e;if((e|0)<=(j|0)){break e}g=(j<<1)-e|0}J[k+28>>2]=m;J[k+24>>2]=g;J[k+40>>2]=0-h;J[k+36>>2]=0-f;J[k+32>>2]=0-i;f:{if((i|0)<=0){i=j-h|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;i=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|i)){i=d;break g}if(!((d|0)!=(i|0)|e)){i=d;break g}f=(d|0)!=(e|0);if(!(i|f)){i=d;break g}if(!((i|0)<=(j|0)|e)){i=(j<<1)-i|0;d=0;break g}if(!((i|0)>=(j|0)|f)){i=(j<<1)-i|0;break g}if(!((d|0)!=(i|0)|(e|0)>=(j|0))){i=d;d=(j<<1)-e|0;break g}if(i){d=e;break g}i=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}J[k+20>>2]=i;J[k+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}l=(n<<3)+b|0;i=J[a+32>>2];e=0;g=k+24|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+j>>2]=h;break i}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(k+8|0)|0;g=J[f+l>>2]-J[f+j>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}i=J[a+32>>2];e=0;g=k+16|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+j>>2]=h;break k}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+k|0;g=J[g+l>>2]-J[j+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[k+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[k+8>>2]=f;h=J[k+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[k+12>>2]=h;d=J[k>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[k>>2]=d;i=J[k+4>>2];p:{if((e|0)<(i|0)){i=i-J[a+96>>2]|0;break p}if((0-e|0)<=(i|0)){break p}i=J[a+96>>2]+i|0}J[k+4>>2]=i;e=h>>31;e=(e^h)-e|0;l=f>>31;l=(l^f)-l|0;m=l>>>0>(e^2147483647)>>>0?2147483647:e+l|0;e=i>>31;e=(e^i)-e|0;l=d>>31;l=(l^d)-l|0;e=m>>>0>=(l>>>0>(e^2147483647)>>>0?2147483647:e+l|0)>>>0;Ca(o,e);g=g<<2;d=e?d:f;J[g+c>>2]=(J[a+96>>2]&d>>31)+d;d=e?i:h;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Ef(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);h=ba+-64|0;ba=h;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+48>>2]=1065353216;c=J[a+80>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+16>>2]=k;c=f+k|0;J[h+24>>2]=c;pa(k,0,f);J[h+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[h+28>>2]=c;J[h+12>>2]=q;J[h+8>>2]=c;c=0;p=h+8|0;f=L[p+2>>1]^(L[p>>1]^318)+239;b:{c:{m=h+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}j=L[p>>1];l=L[p+2>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[i+8>>1];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==L[i+10>>1]}if(!d){continue}break}c=0;break b}c=f&g+131071;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=g-1|0;r=L[p>>1];l=L[p+2>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=L[i+8>>1];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==L[i+10>>1]}if(!d){continue}break}c=0;break b}i=oa(16);J[i+8>>2]=J[p>>2];d=J[p+4>>2];J[i+4>>2]=f;J[i+12>>2]=d;J[i>>2]=0;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[f>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[h+60|0]=c;J[h+56>>2]=i;q:{if(!K[h+60|0]){J[(n<<2)+k>>2]=J[J[h+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,h+28|0,c);k=J[h+16>>2];J[k+(n<<2)>>2]=q;q=q+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0<j>>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[h+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+32>>2];J[h+32>>2]=0;if(a){na(a)}ba=h- -64|0;return q}qa();B()}function Jg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;p=ba-32|0;ba=p;a:{if((c|0)<=0){break a}t=c&3;b:{if(c>>>0<4){c=0;break b}z=c&-4;c=0;while(1){g=(c<<3)+b|0;s=J[g>>2];u=J[g+4>>2];v=c|1;g=(v<<3)+b|0;i=J[g>>2];w=c|2;h=(w<<3)+b|0;m=J[h>>2];x=c|3;j=(x<<3)+b|0;y=J[j>>2];g=J[g+4>>2];h=J[h+4>>2];j=J[j+4>>2];n=j|y?x:h|m?w:g|i?v:s|u?c:n;f=f+u|0;e=e+s|0;f=(e>>>0<s>>>0?f+1|0:f)+g|0;g=e;e=e+i|0;f=(g>>>0>e>>>0?f+1|0:f)+h|0;g=e;e=e+m|0;f=(g>>>0>e>>>0?f+1|0:f)+j|0;g=e;e=e+y|0;f=g>>>0>e>>>0?f+1|0:f;c=c+4|0;l=l+4|0;if((z|0)!=(l|0)){continue}break}}if(!t){break a}while(1){g=(c<<3)+b|0;i=J[g>>2];g=J[g+4>>2];n=i|g?c:n;c=c+1|0;f=f+g|0;e=e+i|0;f=e>>>0<i>>>0?f+1|0:f;o=o+1|0;if((t|0)!=(o|0)){continue}break}}m=n+1|0;J[a+12>>2]=m;c=J[a>>2];g=J[a+4>>2]-c>>3;c:{if(g>>>0<m>>>0){Wa(a,m-g|0);break c}if(g>>>0<=m>>>0){break c}J[a+4>>2]=c+(m<<3)}j=0;d:{e:{f:{g:{h:{if((n|0)>=0){k=+(e>>>0)+ +(f>>>0)*4294967296;i=J[a>>2];c=0;while(1){f=c<<3;e=f+b|0;h=J[e>>2];e=J[e+4>>2];g=(h|e)!=0;l=f+i|0;r=(+(h>>>0)+ +(e>>>0)*4294967296)/k*4096+.5;i:{if(r<4294967296&r>=0){e=~~r>>>0;break i}e=0}e=e?e:g?1:e;J[l>>2]=e;j=e+j|0;e=(c|0)==(n|0);c=c+1|0;if(!e){continue}break}if((j|0)==4096){break h}}J[p+16>>2]=0;J[p+8>>2]=0;J[p+12>>2]=0;i=0;j:{if(!m){break j}if(m>>>0>=1073741824){break g}g=m<<2;q=oa(g);J[p+8>>2]=q;l=0;h=pa(q,0,g);c=0;if(n>>>0>=7){f=m&-8;while(1){J[h+(c<<2)>>2]=c;e=c|1;J[h+(e<<2)>>2]=e;e=c|2;J[h+(e<<2)>>2]=e;e=c|3;J[h+(e<<2)>>2]=e;e=c|4;J[h+(e<<2)>>2]=e;e=c|5;J[h+(e<<2)>>2]=e;e=c|6;J[h+(e<<2)>>2]=e;e=c|7;J[h+(e<<2)>>2]=e;c=c+8|0;i=i+8|0;if((f|0)!=(i|0)){continue}break}}i=h+g|0;e=m&7;if(!e){break j}while(1){J[h+(c<<2)>>2]=c;c=c+1|0;l=l+1|0;if((e|0)!=(l|0)){continue}break}}J[p+24>>2]=a;c=i-q|0;e=c>>2;k:{l:{if((c|0)>=513){c=e;while(1){f=oa(c<<2);if(f){break l}f=c>>>0>1;c=c>>>1|0;if(f){continue}break}}hc(q,i,p+24|0,e,0,0);break k}hc(q,i,p+24|0,e,f,c);na(f)}if((j|0)<4096){c=J[a>>2]+(J[i-4>>2]<<3)|0;J[c>>2]=(J[c>>2]-j|0)+4096;c=0;break f}if((n|0)>0){f=J[a>>2];o=j-4096|0;while(1){r=4096/+(j|0);l=n;while(1){m:{n:{e=f+(J[(l<<2)+q>>2]<<3)|0;c=J[e>>2];if(c>>>0>=2){h=e;i=c;k=V(r*+(c>>>0));o:{if(R(k)<2147483648){g=~~k;break o}g=-2147483648}e=(c|0)==(g|0)?1:c-g|0;c=(c|0)>(e|0)?e:c-1|0;c=(c|0)<(o|0)?c:o;J[h>>2]=i-c;o=o-c|0;j=j-c|0;if((j|0)!=4096){break n}j=4096;break m}if((n|0)!=(l|0)){break m}c=1;break f}c=(l|0)>1;l=l-1|0;if(c){continue}}break}c=0;if((o|0)>0){continue}break}break f}c=0;if(j>>>0<4097){break f}while(1)continue}if((n|0)<0){break d}break e}qa();B()}e=J[p+8>>2];if(e){na(e)}if((n|0)<0|c){break d}}h=J[a>>2];j=0;o=0;c=0;if(n>>>0>=3){g=m&-4;q=0;while(1){i=o<<3;f=i+h|0;J[f+4>>2]=c;e=h+(i|8)|0;c=J[f>>2]+c|0;J[e+4>>2]=c;f=h+(i|16)|0;c=c+J[e>>2]|0;J[f+4>>2]=c;e=h+(i|24)|0;c=c+J[f>>2]|0;J[e+4>>2]=c;c=c+J[e>>2]|0;o=o+4|0;q=q+4|0;if((g|0)!=(q|0)){continue}break}}f=m&3;if(f){while(1){e=h+(o<<3)|0;J[e+4>>2]=c;o=o+1|0;c=J[e>>2]+c|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}if((c|0)!=4096){break d}c=0;k=0;p:{if((n|0)<0){break p}h=J[a>>2];if(n){i=m&-2;l=0;while(1){e=c<<3;g=J[e+h>>2];if(g){f=b+e|0;k=(+M[f>>2]+ +M[f+4>>2]*4294967296)*va(+(g>>>0)*.000244140625)+k}e=(c|1)<<3;g=J[e+h>>2];if(g){f=b+e|0;k=(+M[f>>2]+ +M[f+4>>2]*4294967296)*va(+(g>>>0)*.000244140625)+k}c=c+2|0;l=l+2|0;if((i|0)!=(l|0)){continue}break}}if(!(m&1)){break p}c=c<<3;e=J[c+h>>2];if(!e){break p}c=b+c|0;k=(+M[c>>2]+ +M[c+4>>2]*4294967296)*va(+(e>>>0)*.000244140625)+k}k=W(-k);q:{if(k<0x10000000000000000&k>=0){c=~~k>>>0;b=R(k)>=1?~~(k>0?T(V(k*2.3283064365386963e-10),4294967295):W((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;break q}c=0;b=0}J[a+16>>2]=c;J[a+20>>2]=b;Va(a,d)}ba=p+32|0}function Kk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=ba-48|0;ba=b;g=J[J[a+4>>2]+48>>2];J[b+8>>2]=J[a+12>>2];c=oa(32);J[b+24>>2]=c;J[b+28>>2]=17;J[b+32>>2]=-2147483616;H[c+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=jb(g,b+8|0,b+24|0,-1);if(H[b+35|0]<0){na(J[b+24>>2])}J[b+32>>2]=-1;J[b+36>>2]=1065353216;J[b+24>>2]=-1;J[b+28>>2]=-1;J[b+40>>2]=-1;c=-1<<c^-1;a:{if(!(c&1)){break a}c=S(c)^31;if(c-1>>>0>28){break a}J[b+24>>2]=c+1;c=-2<<c;J[b+28>>2]=c^-1;c=c^-2;J[b+32>>2]=c;J[b+40>>2]=c>>1;N[b+36>>2]=Q(2)/Q(c|0)}g=bh(J[a+12>>2],J[a+4>>2]);h=J[J[a+4>>2]+48>>2];J[b+20>>2]=J[a+12>>2];c=oa(32);J[b+8>>2]=c;J[b+12>>2]=17;J[b+16>>2]=-2147483616;H[c+16|0]=K[1529];f=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=jb(h,b+20|0,b+8|0,g);if(H[b+19|0]<0){na(J[b+8>>2])}b:{c:{d:{switch(c|0){case 6:e=J[a+4>>2];h=J[a+12>>2];a=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];if((da[J[J[e>>2]+8>>2]](e)|0)!=1){break c}c=b+24|0;f=ba-32|0;ba=f;i=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];e:{if((da[J[J[e>>2]+8>>2]](e)|0)!=1){break e}j=da[J[J[e>>2]+52>>2]](e)|0;g=da[J[J[e>>2]+60>>2]](e,h)|0;if(!j|!g){break e}d=da[J[J[e>>2]+56>>2]](e,h)|0;if(d){e=J[e+56>>2];J[f+20>>2]=d;J[f+16>>2]=e;J[f+28>>2]=g;J[f+24>>2]=g+12;d=oa(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=7524;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=7784;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;break e}d=J[e+56>>2];J[f+20>>2]=j;J[f+16>>2]=d;J[f+28>>2]=g;J[f+24>>2]=g+12;d=oa(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=9148;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=9392;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0}ba=f+32|0;if(!d){break c}break b;case 0:break d;default:break b}}c=J[a+4>>2];a=J[J[J[c+4>>2]+8>>2]+(J[a+12>>2]<<2)>>2];if((da[J[J[c>>2]+8>>2]](c)|0)!=1){break c}da[J[J[c>>2]+8>>2]](c)|0}d=oa(28);J[d+4>>2]=a;a=J[b+28>>2];J[d+8>>2]=J[b+24>>2];J[d+12>>2]=a;a=J[b+36>>2];J[d+16>>2]=J[b+32>>2];J[d+20>>2]=a;J[d+24>>2]=J[b+40>>2];J[d>>2]=9804}ba=b+48|0;return d|0}function Nf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);h=ba+-64|0;ba=h;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+48>>2]=1065353216;c=J[a+80>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+16>>2]=k;c=f+k|0;J[h+24>>2]=c;pa(k,0,f);J[h+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8;I[h+30>>1]=c;J[h+12>>2]=q;I[h+8>>1]=c;c=0;p=h+8|0;f=K[p+1|0]^(K[p|0]^318)+239;b:{c:{m=h+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}j=K[p|0];l=K[p+1|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[i+8|0];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[i+9|0]}if(!d){continue}break}c=0;break b}c=f&g+1023;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=g-1|0;r=K[p|0];l=K[p+1|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=K[i+8|0];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==K[i+9|0]}if(!d){continue}break}c=0;break b}i=oa(16);I[i+8>>1]=L[p>>1];d=J[p+4>>2];J[i+4>>2]=f;J[i+12>>2]=d;J[i>>2]=0;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[f>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[h+60|0]=c;J[h+56>>2]=i;q:{if(!K[h+60|0]){J[(n<<2)+k>>2]=J[J[h+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,h+30|0,c);k=J[h+16>>2];J[k+(n<<2)>>2]=q;q=q+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0<j>>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[h+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+32>>2];J[h+32>>2]=0;if(a){na(a)}ba=h- -64|0;return q}qa();B()}function Vg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0,l=0;h=ba-16|0;ba=h;J[h+12>>2]=b;b=oa(32);J[h>>2]=b;J[h+4>>2]=17;J[h+8>>2]=-2147483616;H[b+16|0]=K[1261];g=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=i;H[b+9|0]=i>>>8;H[b+10|0]=i>>>16;H[b+11|0]=i>>>24;H[b+12|0]=g;H[b+13|0]=g>>>8;H[b+14|0]=g>>>16;H[b+15|0]=g>>>24;g=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=i;H[b+1|0]=i>>>8;H[b+2|0]=i>>>16;H[b+3|0]=i>>>24;H[b+4|0]=g;H[b+5|0]=g>>>8;H[b+6|0]=g>>>16;H[b+7|0]=g>>>24;H[b+17|0]=0;i=a+4|0;Wg(i,h+12|0,h,c);if(H[h+11|0]<0){na(J[h>>2])}a=oa(32);J[h>>2]=a;J[h+4>>2]=19;J[h+8>>2]=-2147483616;b=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[a+15|0]=b;H[a+16|0]=b>>>8;H[a+17|0]=b>>>16;H[a+18|0]=b>>>24;b=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);c=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);c=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+19|0]=0;g=ba-48|0;ba=g;j=J[h+12>>2];a=i+16|0;c=J[a>>2];a:{b:{if(!c){break b}b=a;while(1){k=(j|0)>J[c+16>>2];b=k?b:c;c=J[(k?c+4|0:c)>>2];if(c){continue}break}if((a|0)==(b|0)){break b}if((j|0)>=J[b+16>>2]){break a}}J[g+28>>2]=0;J[g+32>>2]=0;c=g+24|0;J[g+24>>2]=c|4;a=g+16|0;J[a>>2]=0;J[a+4>>2]=0;J[g+8>>2]=j;J[g+12>>2]=a;a=g+8|0;Oc(g+40|0,i+12|0,a,a);b=J[g+40>>2];Da(a|4,J[g+16>>2]);Da(c,J[g+28>>2])}b=b+20|0;a=ba-48|0;ba=a;J[a+24>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c:{if((d|0)<=0){break c}gd(a,N[e>>2]);c=K[a+11|0];j=c<<24>>24<0;jd(a+16|0,j?J[a>>2]:a,j?J[a+4>>2]:c);if(H[a+11|0]<0){na(J[a>>2])}c=1;if((d|0)==1){break c}while(1){j=a+16|0;jd(j,2020,rb(2020));gd(a,N[(c<<2)+e>>2]);l=j;j=K[a+11|0];k=j<<24>>24<0;jd(l,k?J[a>>2]:a,k?J[a+4>>2]:j);if(H[a+11|0]<0){na(J[a>>2])}c=c+1|0;if((d|0)!=(c|0)){continue}break}}J[a+40>>2]=h;ge(a,b,h,a+40|0);d=J[a>>2];b=d+28|0;d:{if((b|0)==(a+16|0)){break d}e=K[a+27|0];c=e<<24>>24;if(H[d+39|0]>=0){if((c|0)>=0){c=J[a+20>>2];J[b>>2]=J[a+16>>2];J[b+4>>2]=c;J[b+8>>2]=J[a+24>>2];break d}hd(b,J[a+16>>2],J[a+20>>2]);break d}d=b;b=(c|0)<0;id(d,b?J[a+16>>2]:a+16|0,b?J[a+20>>2]:e)}if(H[a+27|0]<0){na(J[a+16>>2])}ba=a+48|0;ba=g+48|0;if(H[h+11|0]<0){na(J[h>>2])}a=oa(32);J[h>>2]=a;J[h+4>>2]=18;J[h+8>>2]=-2147483616;b=K[1547]|K[1548]<<8;H[a+16|0]=b;H[a+17|0]=b>>>8;b=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);c=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);c=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+18|0]=0;b=ba-48|0;ba=b;c=J[h+12>>2];a=i+16|0;e=J[a>>2];e:{f:{if(!e){break f}d=a;while(1){g=(c|0)>J[e+16>>2];d=g?d:e;e=J[(g?e+4|0:e)>>2];if(e){continue}break}if((a|0)==(d|0)){break f}if((c|0)>=J[d+16>>2]){break e}}J[b+28>>2]=0;J[b+32>>2]=0;e=b+24|0;J[b+24>>2]=e|4;a=b+16|0;J[a>>2]=0;J[a+4>>2]=0;J[b+8>>2]=c;J[b+12>>2]=a;a=b+8|0;Oc(b+40|0,i+12|0,a,a);d=J[b+40>>2];Da(a|4,J[b+16>>2]);Da(e,J[b+28>>2])}a=ba-48|0;ba=a;gd(a+8|0,f);J[a+32>>2]=h;ge(a+40|0,d+20|0,h,a+32|0);c=J[a+40>>2];if(H[c+39|0]<0){na(J[c+28>>2])}d=J[a+12>>2];J[c+28>>2]=J[a+8>>2];J[c+32>>2]=d;J[c+36>>2]=J[a+16>>2];ba=a+48|0;ba=b+48|0;if(H[h+11|0]<0){na(J[h>>2])}ba=h+16|0}function lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0);f=ba-32|0;ba=f;J[f+28>>2]=c;a:{if(!me(a,b,c)){break a}i=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];if(J[i+28>>2]!=9){break a}g=J[b+48>>2];c=oa(32);J[f+16>>2]=c;J[f+20>>2]=17;J[f+24>>2]=-2147483616;H[c+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);h=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=h;H[c+9|0]=h>>>8;H[c+10|0]=h>>>16;H[c+11|0]=h>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);h=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=h;H[c+1|0]=h>>>8;H[c+2|0]=h>>>16;H[c+3|0]=h>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+17|0]=0;h=jb(g,f+28|0,f+16|0,-1);if(H[f+27|0]<0){na(J[f+16>>2])}if((h|0)<=0){break a}j=J[b+48>>2];c=oa(32);J[f+16>>2]=c;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[c+15|0]=e;H[c+16|0]=e>>>8;H[c+17|0]=e>>>16;H[c+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+19|0]=0;b:{if(!yc(j,f+28|0,f+16|0)){break b}g=J[b+48>>2];c=oa(32);J[f>>2]=c;J[f+4>>2]=18;J[f+8>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[c+16|0]=d;H[c+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+18|0]=0;d=yc(g,f+28|0,f);if(H[f+11|0]>=0){break b}na(J[f>>2])}if(H[f+27|0]<0){na(J[f+16>>2])}c:{if(d){c=0;d=K[i+24|0];if(d){d=d<<2;c=oa(d);pa(c,0,d)}j=J[b+48>>2];d=oa(32);J[f+16>>2]=d;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[d+15|0]=e;H[d+16|0]=e>>>8;H[d+17|0]=e>>>16;H[d+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[d+8|0]=g;H[d+9|0]=g>>>8;H[d+10|0]=g>>>16;H[d+11|0]=g>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[d|0]=g;H[d+1|0]=g>>>8;H[d+2|0]=g>>>16;H[d+3|0]=g>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+19|0]=0;De(j,f+28|0,f+16|0,K[i+24|0],c);if(H[f+27|0]<0){na(J[f+16>>2])}g=J[b+48>>2];b=oa(32);J[f+16>>2]=b;J[f+20>>2]=18;J[f+24>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[b+16|0]=d;H[b+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;H[b+18|0]=0;k=Ce(g,f+28|0,f+16|0);if(H[f+27|0]<0){na(J[f+16>>2])}a=ch(a+40|0,h,c,K[i+24|0],k);if(c){na(c)}d=0;if(a){break c}break a}d=0;if(!_g(a+40|0,i,h)){break a}}d=1}ba=f+32|0;return d|0}function _f(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-32|0;ba=k;c=J[a+16>>2];J[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{if((c|0)!=J[a+24>>2]){J[c>>2]=b;b=c+4|0;J[a+20>>2]=b;d=c;break g}d=oa(4);J[d>>2]=b;b=d+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=d;if(c){break f}}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0;break e}na(c);b=J[a+20>>2];d=J[a+16>>2];if((b|0)==(d|0)){break d}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0}if((c|0)>0){r=a+120|0;m=a+200|0;c=(c|0)/12|0;s=(c|0)<=1?1:c;while(1){h:{i:{d=b-4|0;b=J[d>>2];if((b|0)==-1){break i}c=(b>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break i}n=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;h=(b>>>0)/3|0;g=(b|0)==-1;o=g?-1:h;b=J[a+28>>2]+(o>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<o;b=J[a+76>>2];j:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break j}j=J[a+72>>2];l=b-j|0;d=l>>2;i=d+1|0;if(i>>>0>1073741823){break c}c=l>>>1|0;i=l>>>0>=2147483644?1073741823:c>>>0>i>>>0?c:i;if(i){if(i>>>0>1073741823){break a}c=oa(i<<2)}else{c=0}f=c+(d<<2)|0;J[f>>2]=e;d=f+4|0;if((b|0)!=(j|0)){while(1){f=f-4|0;b=b-4|0;J[f>>2]=J[b>>2];if((b|0)!=(j|0)){continue}break}}J[a+80>>2]=c+(i<<2);J[a+76>>2]=d;J[a+72>>2]=f;if(!j){break j}na(j)}J[a+320>>2]=e;b=-1;f=J[a+12>>2];b=(e|0)!=-1?J[J[f>>2]+(e<<2)>>2]:b;i=b<<2;q=J[i+J[a+152>>2]>>2];k:{l:{d=J[a+84>>2]+(b>>>3&536870908)|0;c=J[d>>2];b=1<<b;if(!(c&b)){J[d>>2]=b|c;if((q|0)==-1){break l}}m:{if(g){break m}b=-1;c=e+1|0;g=(c>>>0)%3|0?c:e-2|0;if((g|0)!=-1){b=J[J[f+12>>2]+(g<<2)>>2]}j=e-P(h,3)|0;n:{o:{if(j){d=e-1|0;break o}d=e+2|0;c=-1;if((d|0)==-1){break n}}c=J[J[f+12>>2]+(d<<2)>>2]}p=(c|0)==-1;l=p?-1:(c>>>0)/3|0;p:{if((g|0)==-1){break p}h=J[f+12>>2];d=J[h+(g<<2)>>2];if((d|0)==-1){break p}g=J[a+28>>2];d=(d>>>0)/3|0;if(J[g+(d>>>3&268435452)>>2]>>>d&1){break p}q:{r:{if(j){f=e-1|0;break r}f=e+2|0;if((f|0)==-1){break q}}d=J[(f<<2)+h>>2];if((d|0)==-1){break q}d=(d>>>0)/3|0;if(J[g+(d>>>3&268435452)>>2]>>>d&1){break q}oc(m,1);J[a+168>>2]=J[a+168>>2]+1;s:{if((q|0)==-1){break s}d=J[J[a+152>>2]+i>>2];if(J[J[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break s}Hc(a,e,0)}e=J[a+164>>2];J[k+4>>2]=o;d=k+4|0;J[k+16>>2]=d;bg(k+24|0,r,d,k+16|0);J[J[k+24>>2]+12>>2]=e;f=J[a+20>>2];J[f-4>>2]=c;if(J[a+24>>2]!=(f|0)){J[f>>2]=b;J[a+20>>2]=f+4;break h}h=J[a+16>>2];g=f-h|0;d=g>>2;e=d+1|0;if(e>>>0>1073741823){break b}c=g>>>1|0;e=g>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>1073741823){break a}c=oa(e<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=b;b=d+4|0;if((f|0)!=(h|0)){while(1){d=d-4|0;f=f-4|0;J[d>>2]=J[f>>2];if((f|0)!=(h|0)){continue}break}}J[a+24>>2]=c+(e<<2);J[a+20>>2]=b;J[a+16>>2]=d;if(!h){break h}na(h);break h}if(!p){Qb(a,J[a+164>>2],0,l)}oc(m,3);break k}d=(b|0)==-1;if(!d){Qb(a,J[a+164>>2],1,d?-1:(b>>>0)/3|0)}t:{u:{if(j){b=e-1|0;break u}b=e+2|0;if((b|0)==-1){break t}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break t}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break t}oc(m,5);b=c;break k}if(p){break m}Qb(a,J[a+164>>2],0,l)}oc(m,7);J[a+20>>2]=J[a+20>>2]-4;break h}oc(m,0);b=-1;if((e|0)==-1){break k}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)==-1){break k}b=J[J[J[a+12>>2]+12>>2]+(c<<2)>>2]}n=n+1|0;if((s|0)!=(n|0)){continue}break}break h}J[a+20>>2]=d}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break d}g=J[a+28>>2];while(1){c=b-4|0;e=J[c>>2];v:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(J[g+(e>>>3&268435452)>>2]>>>e&1)){break v}}J[a+20>>2]=c;b=c}if((b|0)!=(d|0)){continue}break}}ba=k+32|0;return 1}qa();B()}qa();B()}xa();B()}function Ff(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=Q(0);g=ba+-64|0;ba=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;c=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;j=oa(e);J[g+16>>2]=j;c=e+j|0;J[g+24>>2]=c;pa(j,0,e);J[g+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);f=c;c=c+e|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8;I[g+30>>1]=c;J[g+12>>2]=p;I[g+8>>1]=c;c=0;q=g+8|0;n=L[q>>1];e=n^318;b:{c:{k=g+32|0;f=J[k+4>>2];if(!f){break c}d=Kl(f);d:{if(d>>>0>=2){c=e;if(f>>>0<=c>>>0){c=(e>>>0)%(f>>>0)|0}h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<=1){break d}while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(e|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break c}}if(L[h+8>>1]!=(n|0)){continue}break}c=0;break b}c=e&f-1;h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}}l=f-1|0;while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((e|0)!=(d|0)&(d&l)!=(c|0)){break c}if(L[h+8>>1]!=(n|0)){continue}break}c=0;break b}h=oa(16);I[h+8>>1]=L[q>>1];d=J[q+4>>2];J[h+4>>2]=e;J[h+12>>2]=d;J[h>>2]=0;o=Q(J[k+12>>2]+1>>>0);r=N[k+16>>2];e:{if(o>Q(r*Q(f>>>0))?0:f){break e}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(o/r)));f:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break f}l=0}d=d>>>0>l>>>0?d:l;g:{if((d|0)==1){break g}if(!(d&d-1)){c=d;break g}c=Ha(d);f=J[k+4>>2]}h:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break h}l=f>>>0<3;o=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));i:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break i}d=0}j:{k:{if(l){break k}if(Kl(f)>>>0>1){break k}d=d>>>0<2?d:1<<32-S(d-1|0);break j}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break h}}db(k,c)}f=J[k+4>>2];c=f-1|0;if(!(c&f)){c=c&e;break e}if(e>>>0<f>>>0){c=e;break e}c=(e>>>0)%(f>>>0)|0}e=J[k>>2]+(c<<2)|0;c=J[e>>2];l:{m:{if(!c){c=k+8|0;J[h>>2]=J[c>>2];J[k+8>>2]=h;J[e>>2]=c;c=J[h>>2];if(!c){break l}c=J[c+4>>2];e=f-1|0;n:{if(!(e&f)){c=c&e;break n}if(c>>>0<f>>>0){break n}c=(c>>>0)%(f>>>0)|0}c=J[k>>2]+(c<<2)|0;break m}J[h>>2]=J[c>>2]}J[c>>2]=h}J[k+12>>2]=J[k+12>>2]+1;c=1}H[g+60|0]=c;J[g+56>>2]=h;o:{if(!K[g+60|0]){J[(m<<2)+j>>2]=J[J[g+56>>2]+12>>2];break o}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,g+30|0,c);j=J[g+16>>2];J[j+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;i=m?i:i+1|0;c=J[a+80>>2];if(!i&m>>>0<c>>>0){continue}break}if((c|0)!=(p|0)){p:{if(!K[a+84|0]){b=J[a+72>>2];d=J[a+68>>2];if((b|0)==(d|0)){break p}b=b-d>>2;c=b>>>0<=1?1:b;m=c&3;n=0;b=0;if(c-1>>>0>=3){i=c&-4;l=0;while(1){e=b<<2;c=e+d|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|4)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|8)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|12)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}if(!m){break p}while(1){c=d+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}break p}H[a+84|0]=0;m=a+68|0;b=J[a+68>>2];i=J[a+72>>2]-b>>2;q:{if(i>>>0<c>>>0){Ma(m,c-i|0,2176);c=J[a+80>>2];break q}if(c>>>0>=i>>>0){break q}J[a+72>>2]=b+(c<<2)}if(!c){break p}d=J[m>>2];n=0;b=0;if(c>>>0>=4){m=c&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+j>>2];i=e|4;J[i+d>>2]=J[j+i>>2];i=e|8;J[i+d>>2]=J[j+i>>2];i=e|12;J[i+d>>2]=J[j+i>>2];b=b+4|0;l=l+4|0;if((m|0)!=(l|0)){continue}break}}i=c&3;if(!i){break p}while(1){c=b<<2;J[c+d>>2]=J[c+j>>2];b=b+1|0;n=n+1|0;if((i|0)!=(n|0)){continue}break}}J[a+80>>2]=p}na(j)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){na(a)}ba=g- -64|0;return p}qa();B()}function Yk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0<e>>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;p=J[i+4>>2];k=J[i>>2];j=(k|0)<(h|0);h=j?k:h;i=(h|0)>(p|0);h=i?p:h;g=j?g:(g|0)<(k|0)?k:g;g=i?g:(g|0)<(p|0)?p:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0<h>>>0)|0)|0;d=g-h|0;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}s=e<<2;d=e>>>0>1073741823?-1:s;h=pa(oa(d),0,d);d=J[a+56>>2];t=J[d>>2];d=J[d+4>>2]-t|0;if((d|0)>=5){w=J[a+52>>2];u=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+t>>2];if((d|0)==-1){break f}g=J[J[u+12>>2]+(d<<2)>>2];if((g|0)==-1){break f}j=J[w>>2];k=J[u>>2];i=J[j+(J[k+(g<<2)>>2]<<2)>>2];d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if((d|0)!=-1){f=J[k+(d<<2)>>2]}else{f=-1}g:{h:{if((g>>>0)%3|0){g=g-1|0;break h}g=g+2|0;d=-1;if((g|0)==-1){break g}}d=J[k+(g<<2)>>2]}if((i|0)>=(l|0)){break f}f=J[(f<<2)+j>>2];if((f|0)>=(l|0)){break f}d=J[j+(d<<2)>>2];if((d|0)>=(l|0)){break f}i:{if((e|0)<=0){break i}k=P(d,e);j=P(e,f);i=P(e,i);g=0;d=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2];f=g|1;J[h+(f<<2)>>2]=(J[(f+k<<2)+b>>2]+J[(f+j<<2)+b>>2]|0)-J[(f+i<<2)+b>>2];g=g+2|0;d=d+2|0;if((x|0)!=(d|0)){continue}break}}if(!y){break i}J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;i=J[q>>2];m=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}break e}ra();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];m=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];l:{if((r|0)>(j|0)){J[f+n>>2]=j;break l}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break l}J[n>>2]=r}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){pa(h,0,s)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];m=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];n:{if((l|0)>(i|0)){J[f+o>>2]=i;break n}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break n}J[o>>2]=l}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=m<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;o:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break o}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}na(h);return 1}function Rf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=Q(0);g=ba+-64|0;ba=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;c=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;j=oa(e);J[g+16>>2]=j;c=e+j|0;J[g+24>>2]=c;pa(j,0,e);J[g+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);f=c;c=c+e|0;c=K[c+d|0];H[g+31|0]=c;J[g+12>>2]=p;H[g+8|0]=c;c=0;q=g+8|0;n=K[q|0];e=n^318;b:{c:{k=g+32|0;f=J[k+4>>2];if(!f){break c}d=Kl(f);d:{if(d>>>0>=2){c=e;if(f>>>0<=c>>>0){c=(e>>>0)%(f>>>0)|0}h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<=1){break d}while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(e|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break c}}if(K[h+8|0]!=(n|0)){continue}break}c=0;break b}c=e&f-1;h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}}l=f-1|0;while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((e|0)!=(d|0)&(d&l)!=(c|0)){break c}if(K[h+8|0]!=(n|0)){continue}break}c=0;break b}h=oa(16);H[h+8|0]=K[q|0];d=J[q+4>>2];J[h+4>>2]=e;J[h+12>>2]=d;J[h>>2]=0;o=Q(J[k+12>>2]+1>>>0);r=N[k+16>>2];e:{if(o>Q(r*Q(f>>>0))?0:f){break e}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(o/r)));f:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break f}l=0}d=d>>>0>l>>>0?d:l;g:{if((d|0)==1){break g}if(!(d&d-1)){c=d;break g}c=Ha(d);f=J[k+4>>2]}h:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break h}l=f>>>0<3;o=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));i:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break i}d=0}j:{k:{if(l){break k}if(Kl(f)>>>0>1){break k}d=d>>>0<2?d:1<<32-S(d-1|0);break j}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break h}}db(k,c)}f=J[k+4>>2];c=f-1|0;if(!(c&f)){c=c&e;break e}if(e>>>0<f>>>0){c=e;break e}c=(e>>>0)%(f>>>0)|0}e=J[k>>2]+(c<<2)|0;c=J[e>>2];l:{m:{if(!c){c=k+8|0;J[h>>2]=J[c>>2];J[k+8>>2]=h;J[e>>2]=c;c=J[h>>2];if(!c){break l}c=J[c+4>>2];e=f-1|0;n:{if(!(e&f)){c=c&e;break n}if(c>>>0<f>>>0){break n}c=(c>>>0)%(f>>>0)|0}c=J[k>>2]+(c<<2)|0;break m}J[h>>2]=J[c>>2]}J[c>>2]=h}J[k+12>>2]=J[k+12>>2]+1;c=1}H[g+60|0]=c;J[g+56>>2]=h;o:{if(!K[g+60|0]){J[(m<<2)+j>>2]=J[J[g+56>>2]+12>>2];break o}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,g+31|0,c);j=J[g+16>>2];J[j+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;i=m?i:i+1|0;c=J[a+80>>2];if(!i&m>>>0<c>>>0){continue}break}if((c|0)!=(p|0)){p:{if(!K[a+84|0]){b=J[a+72>>2];d=J[a+68>>2];if((b|0)==(d|0)){break p}b=b-d>>2;c=b>>>0<=1?1:b;m=c&3;n=0;b=0;if(c-1>>>0>=3){i=c&-4;l=0;while(1){e=b<<2;c=e+d|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|4)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|8)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|12)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}if(!m){break p}while(1){c=d+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}break p}H[a+84|0]=0;m=a+68|0;b=J[a+68>>2];i=J[a+72>>2]-b>>2;q:{if(i>>>0<c>>>0){Ma(m,c-i|0,2176);c=J[a+80>>2];break q}if(c>>>0>=i>>>0){break q}J[a+72>>2]=b+(c<<2)}if(!c){break p}d=J[m>>2];n=0;b=0;if(c>>>0>=4){m=c&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+j>>2];i=e|4;J[i+d>>2]=J[j+i>>2];i=e|8;J[i+d>>2]=J[j+i>>2];i=e|12;J[i+d>>2]=J[j+i>>2];b=b+4|0;l=l+4|0;if((m|0)!=(l|0)){continue}break}}i=c&3;if(!i){break p}while(1){c=b<<2;J[c+d>>2]=J[c+j>>2];b=b+1|0;n=n+1|0;if((i|0)!=(n|0)){continue}break}}J[a+80>>2]=p}na(j)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){na(a)}ba=g- -64|0;return p}qa();B()}function gl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0<e>>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;m=J[i+4>>2];p=J[i>>2];j=(p|0)<(h|0);h=j?p:h;i=(h|0)>(m|0);h=i?m:h;g=j?g:(g|0)<(p|0)?p:g;g=i?g:(g|0)<(m|0)?m:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0<h>>>0)|0)|0;d=g-h|0;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}t=e<<2;d=e>>>0>1073741823?-1:t;h=pa(oa(d),0,d);d=J[a+56>>2];u=J[d>>2];d=J[d+4>>2]-u|0;if((d|0)>=5){w=J[a+52>>2];s=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+u>>2];if((d|0)==-1|J[J[s>>2]+(d>>>3&536870908)>>2]>>>d&1){break f}m=J[J[J[s+64>>2]+12>>2]+(d<<2)>>2];if((m|0)==-1){break f}i=J[w>>2];j=J[s+28>>2];g=J[i+(J[j+(m<<2)>>2]<<2)>>2];if((g|0)>=(l|0)){break f}d=m+1|0;f=J[i+(J[j+(((d>>>0)%3|0?d:m-2|0)<<2)>>2]<<2)>>2];if((f|0)>=(l|0)){break f}d=J[i+(J[j+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((d|0)>=(l|0)){break f}g:{if((e|0)<=0){break g}j=P(d,e);i=P(e,f);f=P(e,g);g=0;k=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2];d=g|1;J[h+(d<<2)>>2]=(J[(d+j<<2)+b>>2]+J[(d+i<<2)+b>>2]|0)-J[(d+f<<2)+b>>2];g=g+2|0;k=k+2|0;if((x|0)!=(k|0)){continue}break}}if(!y){break g}J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;i=J[q>>2];k=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];h:{if((r|0)>(j|0)){J[f+n>>2]=j;break h}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break h}J[n>>2]=r}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;i:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break i}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}break e}ra();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];k=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){pa(h,0,t)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];k=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];l:{if((l|0)>(i|0)){J[f+o>>2]=i;break l}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break l}J[o>>2]=l}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=k<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}na(h);return 1}function je(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(J[c>>2]==J[c+4>>2]){m=J[d+80>>2];u=ba-16|0;ba=u;g=J[a+4>>2];k=K[b+24|0];h=J[d+48>>2];n=J[J[d>>2]>>2];c=u+8|0;J[c>>2]=1065353216;d=c;N[c>>2]=Q(-1<<g^-1)/N[a+20>>2];c=oa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=N[d>>2];n=J[a+8>>2];v=J[b>>2];d=J[b+48>>2];g=J[b+40>>2];w=J[b+44>>2];if(!K[b+84|0]){f=J[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=J[v>>2];l=Hl(g,w,J[f+(i<<2)>>2],0)+d|0;h=ua(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=Q(V(Q(Q(o*Q(N[j+h>>2]-N[n+j>>2]))+Q(.5))));b:{if(Q(R(e))<Q(2147483648)){r=~~e;break b}r=-2147483648}J[l>>2]=r;j=j|4;e=Q(V(Q(Q(o*Q(N[j+h>>2]-N[n+j>>2]))+Q(.5))));c:{if(Q(R(e))<Q(2147483648)){j=~~e;break c}j=-2147483648}J[l+4>>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+h>>2]-N[b+n>>2]))+Q(.5))));d:{if(Q(R(e))<Q(2147483648)){b=~~e;break d}b=-2147483648}J[l>>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=J[v>>2];h=Hl(g,w,i,l)+d|0;j=ua(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+j>>2]-N[f+n>>2]))+Q(.5))));e:{if(Q(R(e))<Q(2147483648)){r=~~e;break e}r=-2147483648}J[h>>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+j>>2]-N[f+n>>2]))+Q(.5))));f:{if(Q(R(e))<Q(2147483648)){f=~~e;break f}f=-2147483648}J[h+4>>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+j>>2]-N[b+n>>2]))+Q(.5))));g:{if(Q(R(e))<Q(2147483648)){b=~~e;break g}b=-2147483648}J[h>>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}na(c);ba=u+16|0;return 1}j=ba-16|0;ba=j;m=J[a+4>>2];i=K[b+24|0];g=J[d+48>>2];h=J[J[d>>2]>>2];d=j+8|0;J[d>>2]=1065353216;l=d;N[d>>2]=Q(-1<<m^-1)/N[a+20>>2];d=oa(i<<2);m=J[c+4>>2];q=J[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=N[l>>2];h=J[a+8>>2];v=J[b>>2];l=J[b+48>>2];m=J[b+40>>2];w=J[b+44>>2];if(K[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=J[v>>2];g=Hl(m,w,J[q+(c<<2)>>2],0)+l|0;p=ua(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));i:{if(Q(R(e))<Q(2147483648)){r=~~e;break i}r=-2147483648}J[g>>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));j:{if(Q(R(e))<Q(2147483648)){f=~~e;break j}f=-2147483648}J[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+p>>2]-N[b+h>>2]))+Q(.5))));k:{if(Q(R(e))<Q(2147483648)){b=~~e;break k}b=-2147483648}J[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=J[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=J[v>>2];g=Hl(m,w,J[s+(J[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=ua(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));l:{if(Q(R(e))<Q(2147483648)){r=~~e;break l}r=-2147483648}J[g>>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));m:{if(Q(R(e))<Q(2147483648)){f=~~e;break m}f=-2147483648}J[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+p>>2]-N[b+h>>2]))+Q(.5))));n:{if(Q(R(e))<Q(2147483648)){b=~~e;break n}b=-2147483648}J[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}na(d);ba=j+16|0;return 1}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0);c=1;a:{if(!J[a+80>>2]){break a}f=J[a+8>>2];if((J[a+12>>2]-f|0)<4){break a}while(1){b=J[(n<<2)+f>>2];k=0;l=0;j=0;c=0;f=0;e=-1;b:{c:{d:{e:{switch(J[b+28>>2]-1|0){case 8:f:{switch(K[b+24|0]-1|0){case 0:e=ba+-64|0;ba=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;g=J[b+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;g:{h:{if(g){if(g>>>0>=1073741824){break h}d=g<<2;g=oa(d);J[e+16>>2]=g;h=d+g|0;J[e+24>>2]=h;pa(g,0,d);J[e+20>>2]=h;while(1){d=J[J[b>>2]>>2];h=J[b+48>>2];m=Hl(J[b+40>>2],J[b+44>>2],c,0);h=h+m|0;d=d+h|0;o=(x(2,K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24)),D());N[e+28>>2]=o;J[e+12>>2]=k;N[e+8>>2]=o;d=e+8|0;qf(e+56|0,e+32|0,d,d);i:{if(!K[e+60|0]){J[(c<<2)+g>>2]=J[J[e+56>>2]+12>>2];break i}g=J[b+40>>2];ua(J[J[b>>2]>>2]+P(g,k)|0,e+28|0,g);g=J[e+16>>2];J[g+(c<<2)>>2]=k;k=k+1|0}c=c+1|0;f=c?f:f+1|0;d=J[b+80>>2];if(!f&c>>>0<d>>>0){continue}break}if((d|0)!=(k|0)){j:{if(!K[b+84|0]){c=J[b+72>>2];f=J[b+68>>2];if((c|0)==(f|0)){break j}c=c-f>>2;d=c>>>0<=1?1:c;h=d&3;c=0;if(d-1>>>0>=3){m=d&-4;while(1){d=c<<2;i=d+f|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];i=f+(d|4)|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];i=f+(d|8)|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];d=f+(d|12)|0;J[d>>2]=J[(J[d>>2]<<2)+g>>2];c=c+4|0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}if(!h){break j}while(1){d=f+(c<<2)|0;J[d>>2]=J[(J[d>>2]<<2)+g>>2];c=c+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}break j}H[b+84|0]=0;c=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;k:{if(f>>>0<d>>>0){Ma(c,d-f|0,2176);d=J[b+80>>2];break k}if(d>>>0>=f>>>0){break k}J[b+72>>2]=h+(d<<2)}if(!d){break j}f=J[c>>2];c=0;if(d>>>0>=4){m=d&-4;while(1){h=c<<2;J[h+f>>2]=J[g+h>>2];i=h|4;J[i+f>>2]=J[g+i>>2];i=h|8;J[i+f>>2]=J[g+i>>2];h=h|12;J[h+f>>2]=J[g+h>>2];c=c+4|0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}d=d&3;if(!d){break j}while(1){j=c<<2;J[j+f>>2]=J[g+j>>2];c=c+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}J[b+80>>2]=k}na(g)}c=J[e+40>>2];if(c){while(1){f=J[c>>2];na(c);c=f;if(c){continue}break}}c=J[e+32>>2];J[e+32>>2]=0;if(c){na(c)}ba=e- -64|0;c=k;break g}qa();B()}break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break f;default:break c}}c=Hd(b,b);break d;case 0:l:{switch(K[b+24|0]-1|0){case 0:c=Rf(b,b);break d;case 1:c=Nf(b,b);break d;case 2:c=Kf(b,b);break d;case 3:break l;default:break c}}c=If(b,b);break d;case 1:case 10:m:{switch(K[b+24|0]-1|0){case 0:c=Rf(b,b);break d;case 1:c=Nf(b,b);break d;case 2:c=Kf(b,b);break d;case 3:break m;default:break c}}c=If(b,b);break d;case 3:n:{switch(K[b+24|0]-1|0){case 0:c=Ff(b,b);break d;case 1:c=Ef(b,b);break d;case 2:c=wf(b,b);break d;case 3:break n;default:break c}}c=vf(b,b);break d;case 2:o:{switch(K[b+24|0]-1|0){case 0:c=Ff(b,b);break d;case 1:c=Ef(b,b);break d;case 2:c=wf(b,b);break d;case 3:break o;default:break c}}c=vf(b,b);break d;case 5:p:{switch(K[b+24|0]-1|0){case 0:c=uf(b,b);break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break p;default:break c}}c=Hd(b,b);break d;case 4:break e;default:break b}}q:{switch(K[b+24|0]-1|0){case 0:c=uf(b,b);break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break q;default:break c}}c=Hd(b,b)}e=c;if(e){break b}}e=-1}c=(e|0)!=0;if(!e){break a}n=n+1|0;f=J[a+8>>2];if((n|0)<J[a+12>>2]-f>>2){continue}break}}return c|0}function ic(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ba-16|0;ba=k;a:{if(!J[a+8>>2]){break a}e=J[a>>2];J[a>>2]=a+4;J[J[a+4>>2]+8>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;f=J[e+4>>2];e=f?f:e;if(!e){Da(a,e);break a}h=J[e+8>>2];b:{if(!h){break b}f=J[h>>2];if((f|0)==(e|0)){J[h>>2]=0;d=h;f=J[d+4>>2];if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break b}J[h+4>>2]=0;d=h;if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}c:{if((b|0)==(c|0)){h=e;break c}f=b;while(1){h=d;J[k+12>>2]=e+28;J[k+8>>2]=e+16;b=f+16|0;d=J[k+8>>2];d:{if((b|0)==(d|0)){break d}i=K[b+11|0];g=i<<24>>24;if(H[d+11|0]>=0){if((g|0)>=0){g=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=g;J[d+8>>2]=J[b+8>>2];break d}hd(d,J[b>>2],J[b+4>>2]);break d}l=d;d=(g|0)<0;id(l,d?J[b>>2]:b,d?J[b+4>>2]:i)}d=J[k+12>>2];g=b+12|0;if((d|0)!=(g|0)){e:{j=K[b+23|0];i=j<<24>>24;if(H[d+11|0]>=0){if((i|0)>=0){b=J[g+4>>2];J[d>>2]=J[g>>2];J[d+4>>2]=b;J[d+8>>2]=J[g+8>>2];break e}hd(d,J[b+12>>2],J[b+16>>2]);break e}l=d;d=(i|0)<0;id(l,d?J[b+12>>2]:g,d?J[b+16>>2]:j)}}g=J[a+4>>2];f:{if(!g){b=a+4|0;d=b;break f}b=K[e+27|0];d=b<<24>>24<0;j=d?J[e+16>>2]:e+16|0;i=d?J[e+20>>2]:b;while(1){b=g;g=K[b+27|0];d=g<<24>>24<0;g:{h:{i:{g=d?J[b+20>>2]:g;l=g>>>0<i>>>0?g:i;if(l){d=Ba(j,d?J[b+16>>2]:b+16|0,l);if(d){break i}}if(g>>>0>i>>>0){break h}break g}if((d|0)>=0){break g}}d=b;g=J[b>>2];if(g){continue}break f}g=J[b+4>>2];if(g){continue}break}d=b+4|0}J[e+8>>2]=b;J[e>>2]=0;J[e+4>>2]=0;J[d>>2]=e;b=e;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;b=J[d>>2]}sb(J[a+4>>2],b);J[a+8>>2]=J[a+8>>2]+1;d=0;j:{if(!h){break j}e=J[h+8>>2];if(!e){break j}b=J[e>>2];if((h|0)==(b|0)){J[e>>2]=0;d=e;b=J[d+4>>2];if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}break j}J[e+4>>2]=0;d=e;if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}}e=J[f+4>>2];k:{if(e){while(1){b=e;e=J[b>>2];if(e){continue}break k}}while(1){b=J[f+8>>2];e=J[b>>2]!=(f|0);f=b;if(e){continue}break}}if(!h){break c}f=b;e=h;if((b|0)!=(c|0)){continue}break}}Da(a,h);if(!d){break a}while(1){e=J[d+8>>2];if(e){d=e;continue}break}Da(a,d)}if((b|0)!=(c|0)){while(1){f=oa(40);g=f+16|0;l:{if(H[b+27|0]>=0){d=J[b+20>>2];J[g>>2]=J[b+16>>2];J[g+4>>2]=d;J[g+8>>2]=J[b+24>>2];break l}Ga(g,J[b+16>>2],J[b+20>>2])}d=a+4|0;e=f+28|0;m:{if(H[b+39|0]>=0){h=J[b+32>>2];J[e>>2]=J[b+28>>2];J[e+4>>2]=h;J[e+8>>2]=J[b+36>>2];break m}Ga(e,J[b+28>>2],J[b+32>>2])}e=d;h=J[d>>2];n:{if(!h){break n}e=K[f+27|0];d=e<<24>>24<0;i=d?J[f+20>>2]:e;g=d?J[f+16>>2]:g;while(1){d=h;h=K[d+27|0];e=h<<24>>24<0;o:{p:{q:{h=e?J[d+20>>2]:h;j=h>>>0<i>>>0?h:i;if(j){e=Ba(g,e?J[d+16>>2]:d+16|0,j);if(e){break q}}if(h>>>0>i>>>0){break p}break o}if((e|0)>=0){break o}}e=d;h=J[d>>2];if(h){continue}break n}h=J[d+4>>2];if(h){continue}break}e=d+4|0}J[f+8>>2]=d;J[f>>2]=0;J[f+4>>2]=0;J[e>>2]=f;d=f;f=J[J[a>>2]>>2];if(f){J[a>>2]=f;d=J[e>>2]}sb(J[a+4>>2],d);J[a+8>>2]=J[a+8>>2]+1;f=J[b+4>>2];r:{if(f){while(1){e=f;f=J[e>>2];if(f){continue}break r}}while(1){e=J[b+8>>2];d=J[e>>2]!=(b|0);b=e;if(d){continue}break}}b=e;if((c|0)!=(b|0)){continue}break}}ba=k+16|0}function ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=J[a+12>>2];d=J[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=J[d>>2];i=J[e+60>>2];f=J[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=J[e>>2];J[e>>2]=0;g=J[d>>2];J[d>>2]=h;if(g){Ka(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=J[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=J[c>>2];J[c>>2]=0;if(e){Ka(e)}if((c|0)!=(d|0)){continue}break}}J[a+12>>2]=d;g=J[a+4>>2];b:{if(!g|(i|0)<0){break b}c=J[g+24>>2];d=J[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==J[J[c>>2]+24>>2]){d=c+4|0;i=J[g+28>>2];if((d|0)!=(i|0)){while(1){h=J[d>>2];J[d>>2]=0;e=J[c>>2];J[c>>2]=h;if(e){lb(e+12|0,J[e+16>>2]);kb(e,J[e+4>>2]);na(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=J[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){lb(e+12|0,J[e+16>>2]);kb(e,J[e+4>>2]);na(e)}if((c|0)!=(d|0)){continue}break}}J[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=P(f,12)+a|0;c=J[e+20>>2];d=J[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(J[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;ta(f,c,d-c|0);J[e+24>>2]=d-4}c=J[a+24>>2];d=J[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break e}J[c>>2]=d-1}c=J[a+36>>2];d=J[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break f}J[c>>2]=d-1}c=J[a+48>>2];d=J[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break g}J[c>>2]=d-1}c=J[a+60>>2];d=J[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break h}J[c>>2]=d-1}c=J[a+72>>2];a=J[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}i=a+(i|4)|0;f=J[i>>2];if((f|0)>(b|0)){J[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=J[a>>2];if((f|0)>=(b|0)){break a}J[a>>2]=b-1}}function _a(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ba-112|0;ba=j;k=i&2147483647;a:{b:{l=e&2147483647;m=!(b|c);if(!(d|l?l-2147418112>>>0<2147549184:m)){o=k-2147418112|0;if(!h&(o|0)==-2147418112?f|g:(o|0)==-2147418112&(h|0)!=0|o>>>0>2147549184){break b}}if(!(!d&(l|0)==2147418112?m:l>>>0<2147418112)){h=d;i=e|32768;f=b;g=c;break a}if(!(!h&(k|0)==2147418112?!(f|g):k>>>0<2147418112)){i=i|32768;break a}if(!(b|d|(l^2147418112|c))){n=d;d=!(b^f|d^h|(c^g|e^i^-2147483648));h=d?0:n;i=d?2147450880:e;f=d?0:b;g=d?0:c;break a}if(!(f|h|(k^2147418112|g))){break a}if(!(b|d|(c|l))){if(f|h|(g|k)){break a}f=b&f;g=c&g;h=d&h;i=e&i;break a}if(f|h|(g|k)){break b}f=b;g=c;h=d;i=e;break a}n=(k|0)==(l|0);r=n&(d|0)==(h|0)?(c|0)==(g|0)&b>>>0<f>>>0|c>>>0<g>>>0:n&d>>>0<h>>>0|k>>>0>l>>>0;m=r;l=m?f:b;o=m?g:c;n=m?i:e;s=n;m=m?h:d;q=n&65535;d=r?d:h;e=r?e:i;t=e;n=e>>>16&32767;p=s>>>16&32767;if(!p){e=!(m|q);i=e;k=e?l:m;e=e<<6;h=e;i=S(i?o:q);e=e+((i|0)==32?S(k)+32|0:i)|0;Pa(j+96|0,l,o,m,q,e-15|0);m=J[j+104>>2];q=J[j+108>>2];o=J[j+100>>2];p=16-e|0;l=J[j+96>>2]}f=r?b:f;g=r?c:g;h=d;i=t&65535;if(!n){b=!(h|i);e=b;k=b?f:h;b=b<<6;c=b;e=S(e?g:i);b=b+((e|0)==32?S(k)+32|0:e)|0;Pa(j+80|0,f,g,h,i,b-15|0);n=16-b|0;h=J[j+88>>2];i=J[j+92>>2];g=J[j+84>>2];f=J[j+80>>2]}c=i<<3|h>>>29;b=h<<3|g>>>29;c=c|524288;h=m<<3|o>>>29;i=q<<3|m>>>29;r=s^t;e=g<<3|f>>>29;d=f<<3;c:{if((n|0)==(p|0)){break c}f=p-n|0;if(f>>>0>127){b=0;c=0;e=0;d=1;break c}Pa(j- -64|0,d,e,b,c,128-f|0);Gb(j+48|0,d,e,b,c,f);b=J[j+56>>2];c=J[j+60>>2];e=J[j+52>>2];d=J[j+48>>2]|(J[j+64>>2]|J[j+72>>2]|(J[j+68>>2]|J[j+76>>2]))!=0}m=d;k=e;n=h;q=i|524288;e=o<<3|l>>>29;o=l<<3;l=e;d:{if((r|0)<0){f=0;g=0;h=0;i=0;if(!(m^o|b^n|(k^l|c^q))){break a}d=o-m|0;e=l-((m>>>0>o>>>0)+k|0)|0;f=n-b|0;g=(k|0)==(l|0)&m>>>0>o>>>0|k>>>0>l>>>0;h=f-g|0;b=(q-((b>>>0>n>>>0)+c|0)|0)-(f>>>0<g>>>0)|0;i=b;if(b>>>0>524287){break d}b=!(h|i);f=b;g=b?d:h;b=b<<6;c=b;f=S(f?e:i);b=b+((f|0)==32?S(g)+32|0:f)|0;b=b-12|0;Pa(j+32|0,d,e,h,i,b);p=p-b|0;h=J[j+40>>2];i=J[j+44>>2];d=J[j+32>>2];e=J[j+36>>2];break d}e=k+l|0;d=m+o|0;e=d>>>0<o>>>0?e+1|0:e;f=(k|0)==(e|0)&d>>>0<m>>>0|e>>>0<k>>>0;k=c+q|0;b=b+n|0;k=b>>>0<n>>>0?k+1|0:k;h=b+f|0;i=h>>>0<b>>>0?k+1|0:k;if(!(i&1048576)){break d}d=m&1|((e&1)<<31|d>>>1);e=h<<31|e>>>1;p=p+1|0;h=(i&1)<<31|h>>>1;i=i>>>1|0}c=0;l=s&-2147483648;if((p|0)>=32767){h=c;i=l|2147418112;f=0;g=0;break a}n=0;e:{if((p|0)>0){n=p;break e}Pa(j+16|0,d,e,h,i,p+127|0);Gb(j,d,e,h,i,1-p|0);d=J[j>>2]|(J[j+16>>2]|J[j+24>>2]|(J[j+20>>2]|J[j+28>>2]))!=0;e=J[j+4>>2];h=J[j+8>>2];i=J[j+12>>2]}o=d&7;d=(e&7)<<29|d>>>3;f=(o>>>0>4)+d|0;b=h<<29|e>>>3;g=d>>>0>f>>>0?b+1|0:b;d=(b|0)==(g|0)&d>>>0>f>>>0|b>>>0>g>>>0;b=c|((i&7)<<29|h>>>3);h=d+b|0;i=l|(i>>>3&65535|n<<16);i=b>>>0>h>>>0?i+1|0:i;f:{if((o|0)==4){b=0;k=g+b|0;d=f;c=f&1;f=f+c|0;g=d>>>0>f>>>0?k+1|0:k;b=(b|0)==(g|0)&c>>>0>f>>>0|b>>>0>g>>>0;h=b+h|0;i=b>>>0>h>>>0?i+1|0:i;break f}if(!o){break a}}}J[a>>2]=f;J[a+4>>2]=g;J[a+8>>2]=h;J[a+12>>2]=i;ba=j+112|0}function na(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0<M[4853]){break a}a=a+b|0;if(J[4854]!=(d|0)){if(b>>>0<=255){e=J[d+8>>2];b=b>>>3|0;c=J[d+12>>2];if((c|0)==(e|0)){i=19396,j=J[4849]&Ll(b),J[i>>2]=j;break b}J[e+12>>2]=c;J[c+8>>2]=e;break b}h=J[d+24>>2];b=J[d+12>>2];c:{if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}d:{e=d+20|0;c=J[e>>2];if(c){break d}e=d+16|0;c=J[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break b}e=J[d+28>>2];c=(e<<2)+19700|0;e:{if(J[c>>2]==(d|0)){J[c>>2]=b;if(b){break e}i=19400,j=J[4850]&Ll(e),J[i>>2]=j;break b}J[h+(J[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=h;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b;break b}b=J[f+4>>2];if((b&3)!=3){break b}J[4851]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(J[4855]==(f|0)){J[4855]=d;a=J[4852]+a|0;J[4852]=a;J[d+4>>2]=a|1;if(J[4854]!=(d|0)){break a}J[4851]=0;J[4854]=0;return}if(J[4854]==(f|0)){J[4854]=d;a=J[4851]+a|0;J[4851]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=J[f+8>>2];b=b>>>3|0;c=J[f+12>>2];if((c|0)==(e|0)){i=19396,j=J[4849]&Ll(b),J[i>>2]=j;break g}J[e+12>>2]=c;J[c+8>>2]=e;break g}h=J[f+24>>2];b=J[f+12>>2];h:{if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}i:{e=f+20|0;c=J[e>>2];if(c){break i}e=f+16|0;c=J[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break g}e=J[f+28>>2];c=(e<<2)+19700|0;j:{if(J[c>>2]==(f|0)){J[c>>2]=b;if(b){break j}i=19400,j=J[4850]&Ll(e),J[i>>2]=j;break g}J[h+(J[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=h;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[4854]!=(d|0)){break f}J[4851]=a;return}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+19436|0;c=J[4849];a=1<<(a>>>3);k:{if(!(c&a)){J[4849]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=S(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}J[d+28>>2]=e;J[d+16>>2]=0;J[d+20>>2]=0;g=(e<<2)+19700|0;l:{m:{c=J[4850];b=1<<e;n:{if(!(c&b)){J[4850]=b|c;J[g>>2]=d;J[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=J[g>>2];while(1){c=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=J[g+16>>2];if(b){continue}break}J[g+16>>2]=d;J[d+24>>2]=c}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[c+8>>2];J[a+12>>2]=d;J[c+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=c;J[d+8>>2]=a}a=J[4857]-1|0;J[4857]=a?a:-1}}function xk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-48|0;ba=k;d=J[a+8>>2];if(d-2>>>0<=28){J[a+76>>2]=d;e=-1<<d;d=-2-e|0;J[a+84>>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;za(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Tc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;i=J[k+8>>2];e=i>>31;g=(d^f)-d+((e^i)-e)|0;l=J[k+16>>2];d=l>>31;e=(d^l)-d|0;d=0;m=e;e=e+g|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+92>>2];g=j;break b}j=J[a+92>>2];g=j>>31;f=Il(Hl(j,g,f,f>>31),ca,e,d);h=f>>31;g=Il(Hl(j,g,i,i>>31),ca,e,d);d=g>>31;d=(f^h)-h+((d^g)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((g|0)>=0){i=f+j|0;h=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;h=(d^f)-d|0;break c}d=f>>31;h=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(h|i)){break e}if(!((d|0)!=(h|0)|i)){m=h;e=h;break e}if(!((d|0)!=(i|0)|h)){m=i;e=i;break e}if(!((h|0)<=(j|0)|i)){m=(j<<1)-h|0;e=0;break e}if(!((d|0)!=(i|0)|(h|0)>=(j|0))){m=(j<<1)-h|0;e=i;break e}if(!((d|0)!=(h|0)|(j|0)<=(i|0))){m=h;e=(j<<1)-i|0;break e}if(h){m=h;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-g;f:{if((g|0)<=0){g=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;g=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|g)){g=d;break g}if(!((d|0)!=(g|0)|e)){g=d;break g}f=(d|0)!=(e|0);if(!(g|f)){g=d;break g}if(!((g|0)<=(j|0)|e)){g=(j<<1)-g|0;d=0;break g}if(!((g|0)>=(j|0)|f)){g=(j<<1)-g|0;break g}if(!((d|0)!=(g|0)|(e|0)>=(j|0))){g=d;d=(j<<1)-e|0;break g}if(g){d=e;break g}g=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];h=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=h;i=k+40|0;h=k+32|0;m=k+24|0;Ya(i,p,h,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=g;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Ya(i,p,h,m);d=J[k+44>>2];g=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(g|0)){g=g-J[a+80>>2]|0;break j}if((0-e|0)<=(g|0)){break j}g=J[a+80>>2]+g|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;h=l>>31;h=(h^l)-h|0;m=h>>>0>(e^2147483647)>>>0?2147483647:e+h|0;e=d>>31;e=(e^d)-e|0;h=g>>31;h=(h^g)-h|0;e=m>>>0>=(h>>>0>(e^2147483647)>>>0?2147483647:e+h|0)>>>0;Ca(o,e);i=i<<2;g=e?g:l;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?d:f;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function nk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-48|0;ba=k;d=J[a+8>>2];if(d-2>>>0<=28){J[a+76>>2]=d;e=-1<<d;d=-2-e|0;J[a+84>>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;za(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;i=J[k+8>>2];e=i>>31;g=(d^f)-d+((e^i)-e)|0;l=J[k+16>>2];d=l>>31;e=(d^l)-d|0;d=0;m=e;e=e+g|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+92>>2];g=j;break b}j=J[a+92>>2];g=j>>31;f=Il(Hl(j,g,f,f>>31),ca,e,d);h=f>>31;g=Il(Hl(j,g,i,i>>31),ca,e,d);d=g>>31;d=(f^h)-h+((d^g)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((g|0)>=0){i=f+j|0;h=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;h=(d^f)-d|0;break c}d=f>>31;h=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(h|i)){break e}if(!((d|0)!=(h|0)|i)){m=h;e=h;break e}if(!((d|0)!=(i|0)|h)){m=i;e=i;break e}if(!((h|0)<=(j|0)|i)){m=(j<<1)-h|0;e=0;break e}if(!((d|0)!=(i|0)|(h|0)>=(j|0))){m=(j<<1)-h|0;e=i;break e}if(!((d|0)!=(h|0)|(j|0)<=(i|0))){m=h;e=(j<<1)-i|0;break e}if(h){m=h;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-g;f:{if((g|0)<=0){g=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;g=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|g)){g=d;break g}if(!((d|0)!=(g|0)|e)){g=d;break g}f=(d|0)!=(e|0);if(!(g|f)){g=d;break g}if(!((g|0)<=(j|0)|e)){g=(j<<1)-g|0;d=0;break g}if(!((g|0)>=(j|0)|f)){g=(j<<1)-g|0;break g}if(!((d|0)!=(g|0)|(e|0)>=(j|0))){g=d;d=(j<<1)-e|0;break g}if(g){d=e;break g}g=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];h=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=h;i=k+40|0;h=k+32|0;m=k+24|0;Ya(i,p,h,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=g;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Ya(i,p,h,m);d=J[k+44>>2];g=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(g|0)){g=g-J[a+80>>2]|0;break j}if((0-e|0)<=(g|0)){break j}g=J[a+80>>2]+g|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;h=l>>31;h=(h^l)-h|0;m=h>>>0>(e^2147483647)>>>0?2147483647:e+h|0;e=d>>31;e=(e^d)-e|0;h=g>>31;h=(h^g)-h|0;e=m>>>0>=(h>>>0>(e^2147483647)>>>0?2147483647:e+h|0)>>>0;Ca(o,e);i=i<<2;g=e?g:l;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?d:f;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=J[a+48>>2];J[a+52>>2]=e;a:{if((e|0)!=J[a+56>>2]){J[e>>2]=b;J[a+52>>2]=e+4;break a}d=oa(4);J[d>>2]=b;c=d+4|0;J[a+56>>2]=c;J[a+52>>2]=c;J[a+48>>2]=d;if(!e){break a}na(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=J[J[a+4>>2]+28>>2];k=J[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-P(g,3)|0?-1:2)+b|0;j=J[c+(e<<2)>>2];if((j|0)==-1){return 0}b=J[a+36>>2];g=b+(k>>>3&536870908)|0;d=J[g>>2];c=1<<k;if(!(d&c)){J[g>>2]=c|d;mb(a+8|0,k,i);b=J[a+36>>2]}d=(j>>>3&536870908)+b|0;c=J[d>>2];b=1<<j;if(!(c&b)){J[d>>2]=b|c;mb(a+8|0,j,e)}f=J[a+52>>2];if((f|0)==J[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=J[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=J[a+24>>2]+(c>>>3&268435452)|0;d=J[g>>2];c=1<<c;if(d&c){break c}J[g>>2]=c|d;h=J[a+4>>2];c=J[J[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=J[a+36>>2]+(c>>>3&536870908)|0;i=J[j>>2];e=1<<c;if(i&e){break e}f:{g=J[J[h+40>>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|J[J[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=J[J[J[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}J[j>>2]=e|i;mb(k,c,d);h=J[a+4>>2];break e}J[j>>2]=e|i;mb(k,c,d);h=J[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|J[J[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=J[J[J[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;f=J[a+24>>2];e=c>>>5|0;j=J[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|J[J[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=J[J[J[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(J[J[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=J[J[J[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=J[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=J[f+(e<<2)>>2];d=1<<d;if(!(j&d)){break i}}if(g){break j}d=1<<i;f=J[a+24>>2];e=i>>>5|0;j=J[f+(e<<2)>>2];if(!(d&j)){break d}}f=J[a+52>>2]-4|0;J[a+52>>2]=f;break b}if(g){b=c;break d}if(J[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=J[a+52>>2];J[h-4>>2]=b;if(J[a+56>>2]!=(h|0)){J[h>>2]=c;f=h+4|0;break c}m:{i=J[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=oa(e<<2)}else{d=0}b=d+(g<<2)|0;J[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;J[b>>2]=J[h>>2];if((h|0)!=(i|0)){continue}break}}J[a+56>>2]=d+(e<<2);J[a+52>>2]=f;J[a+48>>2]=b;if(!i){break b}na(i);f=J[a+52>>2];break b}qa();B()}xa();B()}J[(e<<2)+f>>2]=d|j;c=J[J[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}J[a+52>>2]=f}if(J[a+48>>2]!=(f|0)){continue}break}}return 1}function cg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=J[a+8>>2];d=J[a+4>>2];if((h-d|0)/136>>>0>=b>>>0){a:{if(!b){break a}c=d;f=b&7;if(f){while(1){Ra(c);c=c+136|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}d=P(b,136)+d|0;if((b-1&536870911)>>>0<7){break a}while(1){Ra(c);Ra(c+136|0);Ra(c+272|0);Ra(c+408|0);Ra(c+544|0);Ra(c+680|0);Ra(c+816|0);Ra(c+952|0);c=c+1088|0;if((c|0)!=(d|0)){continue}break}}J[a+4>>2]=d;return}b:{c:{d:{c=J[a>>2];f=(d-c|0)/136|0;g=f+b|0;if(g>>>0<31580642){d=(h-c|0)/136|0;c=d<<1;g=d>>>0>=15790320?31580641:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=31580642){break d}i=oa(P(g,136))}d=P(f,136)+i|0;c=d;f=b&7;if(f){while(1){Ra(c);c=c+136|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}h=P(b,136)+d|0;if((b-1&536870911)>>>0>=7){while(1){Ra(c);Ra(c+136|0);Ra(c+272|0);Ra(c+408|0);Ra(c+544|0);Ra(c+680|0);Ra(c+816|0);Ra(c+952|0);c=c+1088|0;if((h|0)!=(c|0)){continue}break}}f=P(g,136)+i|0;c=J[a+4>>2];e=J[a>>2];if((c|0)==(e|0)){break c}while(1){d=d-136|0;c=c-136|0;J[d>>2]=J[c>>2];J[d+4>>2]=J[c+4>>2];J[d+8>>2]=J[c+8>>2];J[d+12>>2]=J[c+12>>2];J[c+12>>2]=0;J[c+4>>2]=0;J[c+8>>2]=0;J[d+16>>2]=J[c+16>>2];J[d+20>>2]=J[c+20>>2];J[d+24>>2]=J[c+24>>2];J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;b=K[c+28|0];J[d+40>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;H[d+28|0]=b;J[d+32>>2]=J[c+32>>2];J[d+36>>2]=J[c+36>>2];J[d+40>>2]=J[c+40>>2];J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[d+52>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+44>>2]=J[c+44>>2];J[d+48>>2]=J[c+48>>2];J[d+52>>2]=J[c+52>>2];J[c+52>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;b=d- -64|0;J[b>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+56>>2]=J[c+56>>2];J[d+60>>2]=J[c+60>>2];i=b;b=c- -64|0;J[i>>2]=J[b>>2];J[b>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[d+68>>2]=J[c+68>>2];b=J[c+72>>2];J[d+84>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+72>>2]=b;J[d+76>>2]=J[c+76>>2];J[d+80>>2]=J[c+80>>2];J[d+84>>2]=J[c+84>>2];J[c+84>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[d+96>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+88>>2]=J[c+88>>2];J[d+92>>2]=J[c+92>>2];J[d+96>>2]=J[c+96>>2];J[c+96>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;b=K[c+100|0];J[d+112>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;H[d+100|0]=b;J[d+104>>2]=J[c+104>>2];J[d+108>>2]=J[c+108>>2];J[d+112>>2]=J[c+112>>2];J[c+112>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[d+124>>2]=0;J[d+116>>2]=0;J[d+120>>2]=0;J[d+116>>2]=J[c+116>>2];J[d+120>>2]=J[c+120>>2];J[d+124>>2]=J[c+124>>2];J[c+124>>2]=0;J[c+116>>2]=0;J[c+120>>2]=0;J[d+128>>2]=J[c+128>>2];J[d+132>>2]=J[c+132>>2];if((c|0)!=(e|0)){continue}break}J[a+8>>2]=f;e=J[a+4>>2];J[a+4>>2]=h;c=J[a>>2];J[a>>2]=d;if((c|0)==(e|0)){break b}while(1){a=e-136|0;b=J[a+116>>2];if(b){J[e-16>>2]=b;na(b)}b=J[e-32>>2];if(b){J[e-28>>2]=b;na(b)}pc(e-132|0);e=a;if((a|0)!=(c|0)){continue}break}break b}qa();B()}xa();B()}J[a+8>>2]=f;J[a+4>>2]=h;J[a>>2]=d}if(c){na(c)}}function Qj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ba+-64|0;ba=e;a:{b:{c:{d:{if(!K[a+288|0]){break d}c=1;h=da[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(da[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+288|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;wb(d+116|0,f-c>>2,e);c=oa(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Na(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Na(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Kc(c+8|0,e);Rb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;na(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){na(d)}d=J[e+24>>2];if(d){na(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;g=d;d=P(h,136);g=g+d|0;wb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}j:{k:{if(cb(J[(da[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(K[a+288|0]){d=J[a+8>>2];if((J[d+12>>2]-J[d+8>>2]|0)>4){break k}}d=1;c=ng(a,c);break j}d=0;c=mg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=pe(oa(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}c=b;b=J[a+184>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=h;c=ta(f,b,c);J[a+192>>2]=c+(d<<2);J[a+188>>2]=g+4;J[a+184>>2]=c;if(!b){break l}na(b)}a=da[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0<M[a+16>>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Ic(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}c=1}ba=e- -64|0;return c|0}qa();B()}xa();B()}function Lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ba+-64|0;ba=e;a:{b:{c:{d:{if(!K[a+352|0]){break d}c=1;h=da[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(da[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+352|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;wb(d+116|0,f-c>>2,e);c=oa(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Na(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Na(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Kc(c+8|0,e);Rb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;na(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){na(d)}d=J[e+24>>2];if(d){na(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;g=d;d=P(h,136);g=g+d|0;wb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}j:{k:{if(cb(J[(da[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(K[a+352|0]){d=J[a+8>>2];if((J[d+12>>2]-J[d+8>>2]|0)>4){break k}}d=1;c=ng(a,c);break j}d=0;c=mg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=pe(oa(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}c=b;b=J[a+184>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=h;c=ta(f,b,c);J[a+192>>2]=c+(d<<2);J[a+188>>2]=g+4;J[a+184>>2]=c;if(!b){break l}na(b)}a=da[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0<M[a+16>>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Ic(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}c=1}ba=e- -64|0;return c|0}qa();B()}xa();B()}function oc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=ba-16|0;ba=j;J[a+124>>2]=J[a+124>>2]+1;h=-1;d=J[a+120>>2];c=-1;a:{if((d|0)==-1){break a}c=d+1|0;h=(c>>>0)%3|0?c:d-2|0;c=d-1|0;if((d>>>0)%3|0){break a}c=d+2|0}e=J[a+104>>2];f=J[a+92>>2];g=f+(h<<2)|0;k=e+(J[g>>2]<<2)|0;i=J[k>>2];b:{c:{switch(b|0){case 0:case 1:J[k>>2]=i-1;d=(J[(c<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;if((b|0)!=1){break b}g=0;d:{if((c|0)==-1){d=0;break d}d=0;c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}while(1){e:{e=J[a+64>>2];if(da[J[J[e>>2]+36>>2]](e,(c>>>0)/3|0)|0){break e}d=d+1|0;e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break e}c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}}break}e=J[a+104>>2];f=J[a+92>>2]}J[(J[(J[a+120>>2]<<2)+f>>2]<<2)+e>>2]=d+1;f:{if((h|0)==-1){break f}c=J[J[J[a+88>>2]+12>>2]+(h<<2)>>2];if((c|0)==-1){break f}e=J[a+108>>2]-e>>2;while(1){f=J[a+64>>2];d=(c>>>0)/3|0;if(da[J[J[f>>2]+36>>2]](f,d)|0){break f}f=c+1|0;J[J[a+92>>2]+(((f>>>0)%3|0?f:c-2|0)<<2)>>2]=e;g=g+1|0;f=J[a+88>>2];g:{if((P(d,3)|0)!=(c|0)){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break f}}c=J[J[f+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}break}}J[j+12>>2]=g+1;h:{c=J[a+108>>2];f=J[a+112>>2];if(c>>>0<f>>>0){J[c>>2]=J[j+12>>2];J[a+108>>2]=c+4;break h}i:{d=c;c=J[a+104>>2];d=d-c|0;h=d>>2;e=h+1|0;if(e>>>0<1073741824){f=f-c|0;g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0<g>>>0?g:e;if(e){if(e>>>0>=1073741824){break i}f=oa(e<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=J[j+12>>2];g=e<<2;e=ta(f,c,d);J[a+112>>2]=g+e;J[a+108>>2]=h+4;J[a+104>>2]=e;if(c){na(c)}break h}qa();B()}xa();B()}break b;case 5:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2;break b;case 3:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-1;break b;case 7:break c;default:break b}}d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2}j:{k:{c=J[a+116>>2];l:{if((c|0)==-1){break l}h=J[(c<<2)+11184>>2];c=J[a+132>>2];d=(c|0)>(i|0)?i:c;c=J[a+128>>2];c=J[a+136>>2]+P((c|0)<=(i|0)?d-c|0:0,12)|0;e=J[c+4>>2];d=J[c+8>>2];if(e>>>0<d>>>0){J[e>>2]=h;J[c+4>>2]=e+4;break l}f=e;e=J[c>>2];i=f-e|0;g=i>>2;f=g+1|0;if(f>>>0>=1073741824){break k}d=d-e|0;k=d>>>1|0;f=d>>>0>=2147483644?1073741823:f>>>0<k>>>0?k:f;if(f){if(f>>>0>=1073741824){break j}d=oa(f<<2)}else{d=0}g=d+(g<<2)|0;J[g>>2]=h;d=ta(d,e,i);J[c>>2]=d;J[c+4>>2]=g+4;J[c+8>>2]=d+(f<<2);if(!e){break l}na(e)}J[a+116>>2]=b;ba=j+16|0;return}qa();B()}xa();B()}function Wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=J[a+48>>2];J[a+52>>2]=f;a:{if((f|0)!=J[a+56>>2]){J[f>>2]=b;J[a+52>>2]=f+4;break a}d=oa(4);J[d>>2]=b;c=d+4|0;J[a+56>>2]=c;J[a+52>>2]=c;J[a+48>>2]=d;if(!f){break a}na(f)}e=-1;d=J[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=J[J[d>>2]+(i<<2)>>2]}b:{h=b-P(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=J[J[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=J[a+36>>2];f=c+(e>>>3&536870908)|0;g=J[f>>2];d=1<<e;if(!(g&d)){J[f>>2]=d|g;mb(a+8|0,e,i);c=J[a+36>>2]}g=(j>>>3&536870908)+c|0;d=J[g>>2];c=1<<j;if(!(d&c)){J[g>>2]=c|d;mb(a+8|0,j,(h?-1:2)+b|0)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=J[a+24>>2]+(d>>>3&268435452)|0;g=J[f>>2];d=1<<d;if(g&d){break d}J[f>>2]=d|g;while(1){i=J[a+4>>2];e=J[J[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=J[a+36>>2]+(e>>>3&536870908)|0;f=J[h>>2];g=1<<e;if(f&g){break f}g:{d=J[J[i+24>>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=J[J[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}J[h>>2]=f|g;mb(j,e,b);break f}J[h>>2]=f|g;mb(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=J[J[J[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;e=J[a+24>>2];f=c>>>5|0;i=J[e+(f<<2)>>2];break e}c=-1;g=J[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=J[J[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=J[J[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=J[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=J[e+(f<<2)>>2];d=1<<d;if(!(i&d)){break k}}if(!g){d=1<<h;e=J[a+24>>2];f=h>>>5|0;i=J[e+(f<<2)>>2];if(!(d&i)){break e}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break c}if(g){b=c;break e}if(J[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=J[a+52>>2];J[e-4>>2]=b;if(J[a+56>>2]!=(e|0)){J[e>>2]=c;c=e+4|0;break d}l:{h=J[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=oa(f<<2)}else{d=0}b=d+(g<<2)|0;J[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];if((e|0)!=(h|0)){continue}break}}J[a+56>>2]=d+(f<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!h){break c}na(h);c=J[a+52>>2];break c}qa();B()}xa();B()}J[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function Mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+4|0;if((d|0)!=(b|0)){ic(d,J[b>>2],b+4|0);f=J[b+12>>2];k=b+16|0;d=0;h=a+16|0;a:{if(!J[h+8>>2]){break a}e=J[h>>2];j=h+4|0;J[h>>2]=j;J[J[h+4>>2]+8>>2]=0;J[h+4>>2]=0;J[h+8>>2]=0;c=J[e+4>>2];g=c?c:e;if(!g){nb(h,g);break a}e=J[g+8>>2];b:{if(!e){break b}c=J[e>>2];if((g|0)==(c|0)){J[e>>2]=0;d=e;c=J[e+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}break b}J[e+4>>2]=0;d=e;if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}}c:{if((f|0)==(k|0)){i=g;break c}c=f;while(1){i=d;J[g+16>>2]=J[c+16>>2];if((c|0)!=(g|0)){ic(g+20|0,J[c+20>>2],c+24|0)}f=j;d=f;e=J[d>>2];d:{if(!e){break d}l=J[g+16>>2];while(1){f=e;if((l|0)<J[e+16>>2]){d=f;e=J[d>>2];if(e){continue}break d}e=J[f+4>>2];if(e){continue}break}d=f+4|0}J[g+8>>2]=f;J[g>>2]=0;J[g+4>>2]=0;J[d>>2]=g;f=J[J[h>>2]>>2];if(f){J[h>>2]=f;g=J[d>>2]}sb(J[h+4>>2],g);J[h+8>>2]=J[h+8>>2]+1;d=0;e:{if(!i){break e}e=J[i+8>>2];if(!e){break e}f=J[e>>2];if((i|0)==(f|0)){J[e>>2]=0;d=e;f=J[e+4>>2];if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break e}J[e+4>>2]=0;d=e;if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}e=J[c+4>>2];f:{if(e){while(1){f=e;e=J[e>>2];if(e){continue}break f}}while(1){f=J[c+8>>2];e=J[f>>2]!=(c|0);c=f;if(e){continue}break}}if(!i){break c}g=i;c=f;if((k|0)!=(c|0)){continue}break}}nb(h,i);if(!d){break a}while(1){c=J[d+8>>2];if(c){d=c;continue}break}nb(h,d)}if((f|0)!=(k|0)){while(1){n=ba-16|0;ba=n;i=oa(32);g=f+16|0;d=J[g>>2];m=i+24|0;J[m>>2]=0;J[m+4>>2]=0;J[i+16>>2]=d;l=i+20|0;J[l>>2]=m;e=h+4|0;c=J[g+4>>2];j=g+8|0;if((c|0)!=(j|0)){while(1){d=c+16|0;Qg(n+8|0,l,m,d,d);g=J[c+4>>2];g:{if(g){while(1){d=g;g=J[d>>2];if(g){continue}break g}}while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}}c=d;if((j|0)!=(c|0)){continue}break}}c=e;d=J[c>>2];h:{if(!d){break h}g=J[i+16>>2];while(1){e=d;if((g|0)<J[e+16>>2]){c=e;d=J[c>>2];if(d){continue}break h}d=J[e+4>>2];if(d){continue}break}c=e+4|0}J[i+8>>2]=e;J[i>>2]=0;J[i+4>>2]=0;J[c>>2]=i;d=i;e=J[J[h>>2]>>2];if(e){J[h>>2]=e;d=J[c>>2]}sb(J[h+4>>2],d);J[h+8>>2]=J[h+8>>2]+1;ba=n+16|0;e=J[f+4>>2];i:{if(e){while(1){c=e;e=J[c>>2];if(e){continue}break i}}while(1){c=J[f+8>>2];d=J[c>>2]!=(f|0);f=c;if(d){continue}break}}f=c;if((c|0)!=(k|0)){continue}break}}ic(a+28|0,J[b+24>>2],b+28|0)}}function nl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=ba-16|0;ba=m;f=J[a+4>>2];a:{b:{if(f){if(da[J[J[a>>2]+52>>2]](a,b,J[J[f+4>>2]+80>>2])|0){break b}break a}if(!(da[J[J[a>>2]+52>>2]](a,b,0)|0)){break a}}n=1;if(!K[a+28|0]){break a}d=J[a+32>>2];i=J[a+8>>2];c=J[i+80>>2];f=0;J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;c:{d:{e:{if(c){if(c>>>0>=1073741824){break e}c=c<<2;f=oa(c);pa(f,0,c)}e=J[b+4>>2];c=J[b>>2];f:{if((e|0)==(c|0)){break f}b=e-c>>2;if(K[i+84|0]){e=b>>>0<=1?1:b;h=e&3;b=0;if(e-1>>>0>=3){j=e&-4;e=0;while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;k=b|1;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|2;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|3;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}if(!h){break f}while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}break f}g=b>>>0<=1?1:b;j=g&3;h=J[i+68>>2];e=0;b=0;if(g-1>>>0>=3){k=g&-4;g=0;while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;l=b|1;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|2;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|3;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;b=b+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}if(!j){break f}while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;b=b+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}b=J[a+4>>2];g:{if(!K[d+84|0]){break g}c=J[J[b+4>>2]+80>>2];H[d+84|0]=0;g=J[d+68>>2];e=J[d+72>>2]-g>>2;if(e>>>0<c>>>0){Ma(d+68|0,c-e|0,2736);b=J[a+4>>2];break g}if(c>>>0>=e>>>0){break g}J[d+72>>2]=g+(c<<2)}h=J[J[b+4>>2]+80>>2];if(!h){break d}c=J[d+68>>2];if(K[i+84|0]){a=0;b=0;if(h>>>0>=4){g=h&-4;e=0;while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];i=d|4;J[i+c>>2]=J[f+i>>2];i=d|8;J[i+c>>2]=J[f+i>>2];d=d|12;J[d+c>>2]=J[f+d>>2];b=b+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}e=h&3;if(!e){break c}while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];b=b+1|0;a=a+1|0;if((e|0)!=(a|0)){continue}break}break c}a=J[i+68>>2];e=0;b=0;if(h>>>0>=4){i=h&-4;g=0;while(1){d=b<<2;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];j=d|4;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];j=d|8;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];d=d|12;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];b=b+4|0;g=g+4|0;if((i|0)!=(g|0)){continue}break}}d=h&3;if(!d){break c}while(1){g=b<<2;J[g+c>>2]=J[(J[a+g>>2]<<2)+f>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}break c}qa();B()}if(!f){break a}}na(f)}ba=m+16|0;return n|0}function Pg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{i=a+4|0;g:{if((i|0)==(b|0)){break g}f=K[b+27|0];g=f<<24>>24<0;h=K[e+11|0];j=h<<24>>24;k=(j|0)<0;f=g?J[b+20>>2]:f;h=k?J[e+4>>2]:h;l=f>>>0<h>>>0;m=l?f:h;if(m){k=k?J[e>>2]:e;g=g?J[b+16>>2]:b+16|0;n=Ba(k,g,m);if(!n){if(f>>>0>h>>>0){break g}break f}if((n|0)>=0){break f}break g}if(f>>>0<=h>>>0){break e}}d=J[b>>2];h:{f=b;i:{if((f|0)==J[a>>2]){break i}j:{if(!d){a=b;while(1){f=J[a+8>>2];h=J[f>>2]==(a|0);a=f;if(h){continue}break}break j}a=d;while(1){f=a;a=J[f+4>>2];if(a){continue}break}}a=K[e+11|0];k=a<<24>>24;h=(k|0)<0;j=K[f+27|0];g=j<<24>>24<0;k:{a=h?J[e+4>>2]:a;j=g?J[f+20>>2]:j;l=a>>>0<j>>>0?a:j;if(l){h=Ba(g?J[f+16>>2]:f+16|0,h?J[e>>2]:e,l);if(h){break k}}if(a>>>0>j>>>0){break i}break h}if((h|0)>=0){break h}}if(!d){J[c>>2]=b;return b}J[c>>2]=f;return f+4|0}d=J[i>>2];if(!d){J[c>>2]=i;return i}e=(k|0)<0?J[e>>2]:e;b=i;while(1){f=d;d=K[f+27|0];i=d<<24>>24<0;d=i?J[f+20>>2]:d;h=d>>>0<a>>>0;l:{m:{n:{o:{g=h?d:a;p:{if(g){i=i?J[f+16>>2]:f+16|0;j=Ba(e,i,g);if(!j){if(a>>>0<d>>>0){break p}break o}if((j|0)>=0){break o}break p}if(a>>>0>=d>>>0){break n}}b=f;d=J[f>>2];if(d){continue}break b}d=Ba(i,e,g);if(d){break m}}if(h){break l}break b}if((d|0)>=0){break b}}b=f+4|0;d=J[f+4>>2];if(d){continue}break}break b}a=Ba(g,k,m);if(a){break d}}if(l){break c}break a}if((a|0)>=0){break a}}d=J[b+4>>2];q:{if(!d){a=b;while(1){f=J[a+8>>2];g=J[f>>2]!=(a|0);a=f;if(g){continue}break}break q}a=d;while(1){f=a;a=J[f>>2];if(a){continue}break}}r:{s:{if((f|0)==(i|0)){break s}g=K[f+27|0];a=g<<24>>24<0;t:{g=a?J[f+20>>2]:g;k=h>>>0>g>>>0?g:h;if(k){a=Ba((j|0)<0?J[e>>2]:e,a?J[f+16>>2]:f+16|0,k);if(a){break t}}if(h>>>0<g>>>0){break s}break r}if((a|0)>=0){break r}}if(!d){J[c>>2]=b;return b+4|0}J[c>>2]=f;return f}a=J[i>>2];if(!a){J[c>>2]=i;return i}d=(j|0)<0?J[e>>2]:e;b=i;while(1){f=a;a=K[f+27|0];e=a<<24>>24<0;a=e?J[f+20>>2]:a;i=a>>>0<h>>>0;u:{v:{w:{x:{g=i?a:h;y:{if(g){e=e?J[f+16>>2]:f+16|0;j=Ba(d,e,g);if(!j){if(a>>>0>h>>>0){break y}break x}if((j|0)>=0){break x}break y}if(a>>>0<=h>>>0){break w}}b=f;a=J[f>>2];if(a){continue}break b}a=Ba(e,d,g);if(a){break v}}if(i){break u}break b}if((a|0)>=0){break b}}b=f+4|0;a=J[f+4>>2];if(a){continue}break}}J[c>>2]=f;return b}J[c>>2]=b;J[d>>2]=b;return d}function Dc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{d=b;g=J[b>>2];if(g){c=J[b+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}break}}g=J[d+4>>2];if(g){break b}g=0;e=1;break a}J[g+8>>2]=J[d+8>>2];e=0}f=J[d+8>>2];c=J[f>>2];c:{if((d|0)==(c|0)){J[f>>2]=g;if((a|0)==(d|0)){c=0;a=g;break c}c=J[f+4>>2];break c}J[f+4>>2]=g}h=!K[d+12|0];if((b|0)!=(d|0)){f=J[b+8>>2];J[d+8>>2]=f;J[f+((J[J[b+8>>2]>>2]!=(b|0))<<2)>>2]=d;f=J[b>>2];J[d>>2]=f;J[f+8>>2]=d;f=J[b+4>>2];J[d+4>>2]=f;if(f){J[f+8>>2]=d}H[d+12|0]=K[b+12|0];a=(a|0)==(b|0)?d:a}if(!(h|!a)){if(e){while(1){b=K[c+12|0];d:{e=J[c+8>>2];if(J[e>>2]!=(c|0)){if(!b){H[c+12|0]=1;H[e+12|0]=0;d=J[e+4>>2];b=J[d>>2];J[e+4>>2]=b;if(b){J[b+8>>2]=e}J[d+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=d;J[d>>2]=e;J[e+8>>2]=d;b=J[c>>2];a=(b|0)==(a|0)?c:a;c=J[b+4>>2]}e:{f:{d=J[c>>2];g:{if(!(K[d+12|0]?0:d)){b=J[c+4>>2];if(K[b+12|0]?0:b){break g}H[c+12|0]=0;c=J[c+8>>2];h:{if((c|0)==(a|0)){c=a;break h}if(K[c+12|0]){break d}}H[c+12|0]=1;return}b=J[c+4>>2];if(!b){break f}}if(K[b+12|0]){break f}d=c;break e}H[d+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c+4>>2];a=J[b>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b>>2]=c;J[c+8>>2]=b;return}if(!b){H[c+12|0]=1;H[e+12|0]=0;b=J[c+4>>2];J[e>>2]=b;if(b){J[b+8>>2]=e}J[c+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=c;J[c+4>>2]=e;J[e+8>>2]=c;a=(a|0)==(e|0)?c:a;c=J[e>>2]}b=J[c>>2];i:{if(!(!b|K[b+12|0])){d=c;break i}d=J[c+4>>2];if(!(K[d+12|0]?0:d)){H[c+12|0]=0;c=J[c+8>>2];if((a|0)!=(c|0)?K[c+12|0]:0){break d}H[c+12|0]=1;return}if(b){if(!K[b+12|0]){d=c;break i}d=J[c+4>>2]}H[d+12|0]=1;H[c+12|0]=0;a=J[d>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c>>2];a=J[b+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b+4>>2]=c;J[c+8>>2]=b;return}b=J[c+8>>2];c=J[((J[b>>2]==(c|0))<<2)+b>>2];continue}}H[g+12|0]=1}}function wc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ba-32|0;ba=h;a:{b:{if(J[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=oa(b<<2);J[h+24>>2]=b;J[h+20>>2]=0;J[h+16>>2]=c;b=J[a>>2];J[h+12>>2]=0;J[h+8>>2]=b;c=J[a+4>>2];J[h+4>>2]=c&31;J[h>>2]=b+(c>>>3&536870908);e=ba-32|0;ba=e;i=J[h+4>>2];g=J[h+12>>2];j=J[h>>2];d=J[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=J[h+20>>2];c=b+f|0;J[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){J[J[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=J[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<<g&-1>>>i-f;J[c>>2]=J[c>>2]&(i^-1)|i&J[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){ta(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;J[g>>2]=J[g>>2]&(b^-1)|b&J[c+d>>2];break c}J[e+28>>2]=g;J[e+24>>2]=d;J[e+20>>2]=i;J[e+16>>2]=j;J[e+12>>2]=f;J[e+8>>2]=c;b=J[e+28>>2];c=J[e+24>>2];g=(J[e+20>>2]-b|0)+(J[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=J[e+12>>2];d=J[e+8>>2];break d}e:{if(!b){b=J[e+12>>2];break e}d=J[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=J[e+8>>2];m=J[l>>2]&(-1<<d&-1>>>j-i^-1);j=J[c>>2]&(-1<<b&-1>>>k-f);J[l>>2]=m|(b>>>0<d>>>0?j<<d-b:j>>>b-d|0);c=d+i|0;b=c&31;J[e+12>>2]=b;d=l+(c>>>3&536870908)|0;J[e+8>>2]=d;c=f-i|0;if((c|0)>0){J[d>>2]=J[d>>2]&(-1>>>32-c^-1)|j>>>i+J[e+28>>2];J[e+12>>2]=c;b=c}g=g-f|0;c=J[e+24>>2]+4|0;J[e+24>>2]=c}i=-1<<b;f=32-b|0;if((g|0)>=32){j=i^-1;while(1){d=J[e+8>>2];c=J[c>>2];J[d>>2]=j&J[d>>2]|c<<b;J[e+8>>2]=d+4;J[d+4>>2]=i&J[d+4>>2]|c>>>f;c=J[e+24>>2]+4|0;J[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=J[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=J[d>>2]&(i&-1>>>j-f^-1);i=J[c>>2]&-1>>>32-g;J[d>>2]=j|i<<b;b=b+f|0;c=b&31;J[e+12>>2]=c;d=(b>>>3&536870908)+d|0;J[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}J[d>>2]=J[d>>2]&(-1>>>32-b^-1)|i>>>f;J[e+12>>2]=b}J[e+4>>2]=b;J[e>>2]=d}ba=e+32|0;b=J[a>>2];J[a>>2]=J[h+16>>2];J[h+16>>2]=b;c=J[a+4>>2];J[a+4>>2]=J[h+20>>2];J[h+20>>2]=c;c=J[a+8>>2];J[a+8>>2]=J[h+24>>2];J[h+24>>2]=c;if(!b){break b}na(b)}ba=h+32|0;return}qa();B()}function Yj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=ba-16|0;ba=g;b=J[a+64>>2];a:{if(!b){break a}i=da[J[J[b>>2]+32>>2]](b)|0;if(!i){break a}n=(J[i+28>>2]-J[i+24>>2]>>2)-J[i+44>>2]|0;b=J[a+56>>2];d=J[b+8>>2];b:{if((J[b+12>>2]-d|0)<5){break b}J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;c:{d:{while(1){e:{f:{if(!J[J[(c<<2)+d>>2]+56>>2]){break f}j=da[J[J[a>>2]+56>>2]](a,c)|0;if(!j){break f}if(J[g+8>>2]!=(f|0)){J[f>>2]=j;f=f+4|0;J[g+4>>2]=f;break f}b=J[g>>2];h=f-b|0;f=h>>2;d=f+1|0;if(d>>>0>=1073741824){break e}e=h>>>1|0;d=h>>>0>=2147483644?1073741823:d>>>0<e>>>0?e:d;if(d){if(d>>>0>=1073741824){break d}e=oa(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=j;h=ta(e,b,h);J[g+8>>2]=h+(d<<2);f=f+4|0;J[g+4>>2]=f;J[g>>2]=h;if(!b){break f}na(b)}m=J[a+56>>2];d=J[m+8>>2];c=c+1|0;if((c|0)<J[m+12>>2]-d>>2){continue}break c}break}qa();B()}xa();B()}j=J[g>>2];o=J[i+24>>2];b=J[i+28>>2];if((o|0)!=(b|0)){b=b-o>>2;q=b>>>0<=1?1:b;b=f-j>>2;r=b>>>0<=1?1:b;while(1){e=J[(p<<2)+o>>2];if((e|0)!=-1){g:{if((e|0)<0){c=(e>>>0)%3|0;b=-1;break g}b=(e>>>0)/3|0;c=e-P(b,3)|0;b=J[(J[m+96>>2]+P(b,12)|0)+(c<<2)>>2]}h:{i:{if(c){c=e-1|0;break i}c=e+2|0;if((c|0)!=-1){break i}l=0;break h}l=0;c=J[J[i+12>>2]+(c<<2)>>2];if((c|0)==-1){break h}j:{if((c>>>0)%3|0){d=c-1|0;break j}d=c+2|0;if((d|0)==-1){break h}}h=e;while(1){c=(d|0)<0?-1:J[(J[m+96>>2]+P((d>>>0)/3|0,12)|0)+((d>>>0)%3<<2)>>2];k:{if((b|0)==(c|0)){c=0;if((f|0)==(j|0)){c=b;break k}l:{while(1){k=J[J[(c<<2)+j>>2]+28>>2];if(J[k+(d<<2)>>2]!=J[k+(h<<2)>>2]){break l}c=c+1|0;if((r|0)!=(c|0)){continue}break}c=b;break k}c=b}l=l+1|0}if((d|0)==(e|0)|(d|0)==-1){break h}m:{if((d>>>0)%3|0){b=d-1|0;break m}b=d+2|0;if((b|0)==-1){break h}}k=J[J[i+12>>2]+(b<<2)>>2];if((k|0)==-1){break h}b=c;h=d;c=k+((k>>>0)%3|0?-1:2)|0;d=c;if((c|0)!=-1){continue}break}}c=1;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;n:{if((b|0)==-1){break n}b=J[J[i+12>>2]+(b<<2)>>2];if((b|0)==-1){break n}c=b+1|0;c=(((c>>>0)%3|0?c:b-2|0)|0)==-1}n=(l+n|0)-((c^-1)&(l|0)!=0)|0}p=p+1|0;if((q|0)!=(p|0)){continue}break}}if(!j){break b}na(j)}J[a+52>>2]=n}ba=g+16|0}function Ze(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ba-128|0;ba=j;a:{b:{c:{if(!Hb(f,g,h,i,0,0,0,0)){break c}l=i&65535;n=i>>>16&32767;d:{e:{if((n|0)!=32767){k=4;if(n){break e}k=f|h|(g|l)?3:2;break d}k=!(f|h|(g|l))}}s=e>>>16|0;o=s&32767;if((o|0)==32767){break c}if(k){break b}}Ea(j+16|0,b,c,d,e,f,g,h,i);b=J[j+16>>2];d=J[j+20>>2];e=J[j+24>>2];c=J[j+28>>2];Ne(j,b,d,e,c,b,d,e,c);d=J[j+8>>2];e=J[j+12>>2];h=J[j>>2];i=J[j+4>>2];break a}k=d;p=e&2147483647;n=h;m=i&2147483647;if((Hb(b,c,k,p,f,g,h,m)|0)<=0){if(Hb(b,c,k,p,f,g,n,m)){h=b;i=c;break a}Ea(j+112|0,b,c,d,e,0,0,0,0);d=J[j+120>>2];e=J[j+124>>2];h=J[j+112>>2];i=J[j+116>>2];break a}q=i>>>16&32767;if(o){i=c;h=b}else{Ea(j+96|0,b,c,k,p,0,0,0,1081540608);k=J[j+104>>2];h=J[j+108>>2];p=h;o=(h>>>16|0)-120|0;i=J[j+100>>2];h=J[j+96>>2]}if(!q){Ea(j+80|0,f,g,n,m,0,0,0,1081540608);n=J[j+88>>2];f=J[j+92>>2];m=f;q=(f>>>16|0)-120|0;g=J[j+84>>2];f=J[j+80>>2]}r=n;t=m&65535|65536;p=p&65535|65536;if((o|0)>(q|0)){while(1){m=k-r|0;l=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=m-l|0;l=(p-((k>>>0<r>>>0)+t|0)|0)-(l>>>0>m>>>0)|0;f:{if((l|0)>0|(l|0)>=0){k=h;h=h-f|0;i=i-((f>>>0>k>>>0)+g|0)|0;if(!(h|n|(i|l))){Ea(j+32|0,b,c,d,e,0,0,0,0);d=J[j+40>>2];e=J[j+44>>2];h=J[j+32>>2];i=J[j+36>>2];break a}l=l<<1|n>>>31;k=n<<1|i>>>31;break f}l=p<<1|k>>>31;k=k<<1|i>>>31}p=l;l=i<<1|h>>>31;h=h<<1;i=l;o=o-1|0;if((o|0)>(q|0)){continue}break}o=q}m=k-r|0;l=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=m-l|0;l=(p-((k>>>0<r>>>0)+t|0)|0)-(l>>>0>m>>>0)|0;m=l;g:{if((l|0)<0){n=k;m=p;break g}k=h;h=h-f|0;i=i-((f>>>0>k>>>0)+g|0)|0;if(h|n|(i|m)){break g}Ea(j+48|0,b,c,d,e,0,0,0,0);d=J[j+56>>2];e=J[j+60>>2];h=J[j+48>>2];i=J[j+52>>2];break a}if((m|0)==65535|m>>>0<65535){while(1){b=i>>>31|0;o=o-1|0;p=i<<1|h>>>31;h=h<<1;i=p;c=b;b=m<<1|n>>>31;n=c|n<<1;m=b;if(b>>>0<65536){continue}break}}b=s&32768;if((o|0)<=0){Ea(j- -64|0,h,i,n,m&65535|(b|o+120)<<16,0,0,0,1065811968);d=J[j+72>>2];e=J[j+76>>2];h=J[j+64>>2];i=J[j+68>>2];break a}d=n;e=m&65535|(b|o)<<16}J[a>>2]=h;J[a+4>>2]=i;J[a+8>>2]=d;J[a+12>>2]=e;ba=j+128|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ba+-64|0;ba=f;a:{b:{c:{d:{e:{f:{if(!b){break f}e=rb(c);if(e>>>0>=2147483632){break e}g:{h:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+56>>2]=a|-2147483648;J[f+48>>2]=g;a=e+g|0;break h}H[f+59|0]=e;g=f+48|0;a=e+g|0;if(!e){break g}}ua(g,c,e)}H[a|0]=0;e=rb(d);if(e>>>0>=2147483632){break d}i:{j:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+40>>2]=a|-2147483648;J[f+32>>2]=g;a=e+g|0;break j}H[f+43|0]=e;g=f+32|0;a=e+g|0;if(!e){break i}}ua(g,d,e)}H[a|0]=0;e=rb(c);if(e>>>0>=2147483632){break c}k:{l:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+24>>2]=a|-2147483648;J[f+16>>2]=g;J[f+20>>2]=e;a=e+g|0;break l}H[f+27|0]=e;g=f+16|0;a=e+g|0;if(!e){break k}}ua(g,c,e)}H[a|0]=0;c=rb(d);if(c>>>0>=2147483632){break b}m:{n:{if(c>>>0>=11){e=(c|15)+1|0;a=oa(e);J[f+8>>2]=e|-2147483648;J[f>>2]=a;J[f+4>>2]=c;g=a+c|0;break n}H[f+11|0]=c;g=c+f|0;a=f;if(!c){break m}}ua(a,d,c)}H[g|0]=0;e=ba-48|0;ba=e;d=ob(b,f+16|0);if((d|0)!=(b+4|0)){a=J[d+4>>2];o:{if(!a){a=d;while(1){c=J[a+8>>2];g=J[c>>2]!=(a|0);a=c;if(g){continue}break}break o}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;na(a)}if(H[d+27|0]<0){na(J[d+16>>2])}na(d)}g=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=K[f+11|0];d=c<<24>>24;p:{q:{h=J[f+4>>2];a=(d|0)<0?h:c;if(a){if((a|0)<0){break q}c=a;g=oa(a);a=pa(g,0,a);c=c+a|0;J[e+8>>2]=c;J[e+4>>2]=c;J[e>>2]=a;h=J[f+4>>2];c=K[f+11|0];d=c}a=d<<24>>24<0;ua(g,a?J[f>>2]:f,a?h:c);break p}qa();B()}r:{if(H[f+27|0]>=0){J[e+24>>2]=J[f+24>>2];a=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=a;break r}Ga(e+16|0,J[f+16>>2],J[f+20>>2])}Ob(e+28|0,e);a=e+16|0;Cc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;na(a)}ba=e+48|0;if(H[f+11|0]<0){na(J[f>>2])}if(H[f+27|0]<0){na(J[f+16>>2])}if(H[f+43|0]<0){na(J[f+32>>2])}if(H[f+59|0]>=0){break f}na(J[f+48>>2])}ba=f- -64|0;a=(b|0)!=0;break a}gb();B()}gb();B()}gb();B()}gb();B()}return a|0}function nf(a,b){var c=0,d=0,e=0,f=0;f=ba-16|0;ba=f;e=oa(32);J[f>>2]=e;J[f+4>>2]=30;J[f+8>>2]=-2147483616;c=K[1240]|K[1241]<<8|(K[1242]<<16|K[1243]<<24);d=K[1236]|K[1237]<<8|(K[1238]<<16|K[1239]<<24);H[e+22|0]=d;H[e+23|0]=d>>>8;H[e+24|0]=d>>>16;H[e+25|0]=d>>>24;H[e+26|0]=c;H[e+27|0]=c>>>8;H[e+28|0]=c>>>16;H[e+29|0]=c>>>24;c=K[1234]|K[1235]<<8|(K[1236]<<16|K[1237]<<24);d=K[1230]|K[1231]<<8|(K[1232]<<16|K[1233]<<24);H[e+16|0]=d;H[e+17|0]=d>>>8;H[e+18|0]=d>>>16;H[e+19|0]=d>>>24;H[e+20|0]=c;H[e+21|0]=c>>>8;H[e+22|0]=c>>>16;H[e+23|0]=c>>>24;c=K[1226]|K[1227]<<8|(K[1228]<<16|K[1229]<<24);d=K[1222]|K[1223]<<8|(K[1224]<<16|K[1225]<<24);H[e+8|0]=d;H[e+9|0]=d>>>8;H[e+10|0]=d>>>16;H[e+11|0]=d>>>24;H[e+12|0]=c;H[e+13|0]=c>>>8;H[e+14|0]=c>>>16;H[e+15|0]=c>>>24;c=K[1218]|K[1219]<<8|(K[1220]<<16|K[1221]<<24);d=K[1214]|K[1215]<<8|(K[1216]<<16|K[1217]<<24);H[e|0]=d;H[e+1|0]=d>>>8;H[e+2|0]=d>>>16;H[e+3|0]=d>>>24;H[e+4|0]=c;H[e+5|0]=c>>>8;H[e+6|0]=c>>>16;H[e+7|0]=c>>>24;H[e+30|0]=0;e=a+4|0;vb(e,f,b);if(H[f+11|0]<0){na(J[f>>2])}a=oa(32);J[f>>2]=a;J[f+4>>2]=29;J[f+8>>2]=-2147483616;c=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);d=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[a+21|0]=d;H[a+22|0]=d>>>8;H[a+23|0]=d>>>16;H[a+24|0]=d>>>24;H[a+25|0]=c;H[a+26|0]=c>>>8;H[a+27|0]=c>>>16;H[a+28|0]=c>>>24;c=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);d=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[a+16|0]=d;H[a+17|0]=d>>>8;H[a+18|0]=d>>>16;H[a+19|0]=d>>>24;H[a+20|0]=c;H[a+21|0]=c>>>8;H[a+22|0]=c>>>16;H[a+23|0]=c>>>24;c=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);d=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=c;H[a+13|0]=c>>>8;H[a+14|0]=c>>>16;H[a+15|0]=c>>>24;c=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);d=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;H[a+29|0]=0;vb(e,f,b);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function sd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=ba-32|0;ba=j;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;J[c>>2]=0;J[c+4>>2]=0;i=a+4|0;J[a>>2]=i;J[a+12>>2]=c;f=J[b>>2];k=b+4|0;if((f|0)!=(k|0)){while(1){g=ba-16|0;ba=g;c=f+16|0;h=Pg(a,i,g+12|0,g+8|0,c);d=J[h>>2];if(d){c=0}else{d=oa(40);e=d+16|0;a:{if(H[c+11|0]>=0){l=J[c+4>>2];J[e>>2]=J[c>>2];J[e+4>>2]=l;J[e+8>>2]=J[c+8>>2];break a}Ga(e,J[c>>2],J[c+4>>2])}Ob(d+28|0,c+12|0);J[d+8>>2]=J[g+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[h>>2]=d;c=d;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;c=J[h>>2]}sb(J[a+4>>2],c);J[a+8>>2]=J[a+8>>2]+1;c=1}H[j+28|0]=c;J[j+24>>2]=d;ba=g+16|0;c=J[f+4>>2];b:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break b}}while(1){c=f;f=J[f+8>>2];if((c|0)!=J[f>>2]){continue}break}}if((f|0)!=(k|0)){continue}break}}f=J[b+12>>2];l=b+16|0;if((f|0)!=(l|0)){g=a+12|0;while(1){m=oa(24);sd(m,J[f+28>>2]);b=f+16|0;J[j+16>>2]=b;c:{d:{c=J[g+4>>2];e:{if(!c){d=g+4|0;b=d;break e}d=K[b+11|0];e=d<<24>>24<0;h=e?J[b>>2]:b;e=e?J[b+4>>2]:d;while(1){b=c;i=K[c+27|0];d=i<<24>>24<0;c=d?J[c+20>>2]:i;i=c>>>0<e>>>0;f:{g:{h:{i:{k=i?c:e;j:{if(k){d=d?J[b+16>>2]:b+16|0;n=Ba(h,d,k);if(!n){if(c>>>0>e>>>0){break j}break i}if((n|0)>=0){break i}break j}if(c>>>0<=e>>>0){break h}}d=b;c=J[b>>2];if(c){continue}break e}c=Ba(d,h,k);if(c){break g}}if(i){break f}break d}if((c|0)>=0){break d}}c=J[b+4>>2];if(c){continue}break}d=b+4|0}c=oa(32);h=c+16|0;e=J[j+16>>2];k:{if(H[e+11|0]>=0){i=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=i;J[h+8>>2]=J[e+8>>2];break k}Ga(h,J[e>>2],J[e+4>>2])}J[c+8>>2]=b;J[c>>2]=0;J[c+4>>2]=0;J[c+28>>2]=0;J[d>>2]=c;b=c;e=J[J[g>>2]>>2];if(e){J[g>>2]=e;b=J[d>>2]}sb(J[g+4>>2],b);J[g+8>>2]=J[g+8>>2]+1;b=1;break c}c=b;b=0}H[j+28|0]=b;J[j+24>>2]=c;c=J[j+24>>2];b=J[c+28>>2];J[c+28>>2]=m;if(b){lb(b+12|0,J[b+16>>2]);kb(b,J[b+4>>2]);na(b)}c=J[f+4>>2];l:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break l}}while(1){b=f;f=J[f+8>>2];if((b|0)!=J[f>>2]){continue}break}}if((f|0)!=(l|0)){continue}break}}ba=j+32|0;return a}function Pk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;J[a+8>>2]=e;m=a+32|0;g=J[m>>2];f=J[a+36>>2]-g>>2;a:{if(f>>>0<e>>>0){Fa(m,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=g+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){i=g;break c}f=1;i=d-1|0;q=i&1;d:{if((d|0)==2){i=g;break d}o=i&-2;i=g;while(1){j=(f<<2)+b|0;k=J[j+4>>2];j=J[j>>2];l=(j|0)<(i|0);i=l?j:i;p=(i|0)>(k|0);i=p?k:i;g=l?g:(g|0)<(j|0)?j:g;g=p?g:(g|0)<(k|0)?k:g;f=f+2|0;h=h+2|0;if((o|0)!=(h|0)){continue}break}}if(!q){break c}f=J[(f<<2)+b>>2];h=(f|0)<(i|0);i=h?f:i;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=i;f=g-i|0;g=(g>>31)-((i>>31)+(g>>>0<i>>>0)|0)|0;if(!g&f>>>0>2147483646|g){break b}f=f+1|0;J[a+20>>2]=f;g=f>>>1|0;J[a+24>>2]=g;J[a+28>>2]=0-g;if(f&1){break b}J[a+24>>2]=g-1}k=d-e|0;g=J[a+8>>2];if(!((k|0)<=0|(g|0)<=0)){p=0-e<<2;while(1){if((g|0)>0){d=k<<2;q=d+c|0;o=b+d|0;h=o+p|0;d=J[m>>2];i=0;while(1){f=d;if((g|0)>0){f=J[m>>2];g=0;while(1){j=g<<2;l=J[j+h>>2];n=J[a+16>>2];e:{if((l|0)>(n|0)){J[f+j>>2]=n;break e}j=f+j|0;n=J[a+12>>2];if((n|0)>(l|0)){J[j>>2]=n;break e}J[j>>2]=l}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}h=i<<2;g=h+q|0;h=J[h+o>>2]-J[f+h>>2]|0;J[g>>2]=h;f:{if((h|0)<J[a+28>>2]){h=h+J[a+20>>2]|0}else{if((h|0)<=J[a+24>>2]){break f}h=h-J[a+20>>2]|0}J[g>>2]=h}h=f;g=J[a+8>>2];i=i+1|0;if((g|0)>(i|0)){continue}break}}k=k-e|0;if((k|0)>0){continue}break}}i=0;d=e>>>0>1073741823?-1:e<<2;d=pa(oa(d),0,d);if((g|0)>0){e=J[a+32>>2];h=d;while(1){f=e;if((g|0)>0){f=J[m>>2];g=0;while(1){k=g<<2;j=J[k+h>>2];l=J[a+16>>2];g:{if((j|0)>(l|0)){J[f+k>>2]=l;break g}k=f+k|0;l=J[a+12>>2];if((l|0)>(j|0)){J[k>>2]=l;break g}J[k>>2]=j}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}h=i<<2;g=h+c|0;h=J[b+h>>2]-J[f+h>>2]|0;J[g>>2]=h;h:{if((h|0)<J[a+28>>2]){h=h+J[a+20>>2]|0}else{if((h|0)<=J[a+24>>2]){break h}h=h-J[a+20>>2]|0}J[g>>2]=h}h=f;g=J[a+8>>2];i=i+1|0;if((g|0)>(i|0)){continue}break}}na(d);return 1}function uf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ba+-64|0;ba=d;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+48>>2]=1065353216;e=J[a+80>>2];J[d+24>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;a:{if(e){if(e>>>0>=1073741824){break a}c=e<<2;e=oa(c);J[d+16>>2]=e;g=c+e|0;J[d+24>>2]=g;pa(e,0,c);J[d+20>>2]=g;while(1){c=J[J[b>>2]>>2];g=J[b+48>>2];h=Hl(J[b+40>>2],J[b+44>>2],f,0);g=g+h|0;c=c+g|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[d+28>>2]=c;J[d+12>>2]=k;J[d+8>>2]=c;c=d+8|0;qf(d+56|0,d+32|0,c,c);b:{if(!K[d+60|0]){J[(f<<2)+e>>2]=J[J[d+56>>2]+12>>2];break b}e=J[a+40>>2];ua(J[J[a>>2]>>2]+P(e,k)|0,d+28|0,e);e=J[d+16>>2];J[e+(f<<2)>>2]=k;k=k+1|0}f=f+1|0;i=f?i:i+1|0;c=J[a+80>>2];if(!i&f>>>0<c>>>0){continue}break}if((c|0)!=(k|0)){c:{if(!K[a+84|0]){b=J[a+72>>2];f=J[a+68>>2];if((b|0)==(f|0)){break c}b=b-f>>2;c=b>>>0<=1?1:b;h=c&3;i=0;b=0;if(c-1>>>0>=3){l=c&-4;g=0;while(1){c=b<<2;j=c+f|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];j=f+(c|4)|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];j=f+(c|8)|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];c=f+(c|12)|0;J[c>>2]=J[(J[c>>2]<<2)+e>>2];b=b+4|0;g=g+4|0;if((l|0)!=(g|0)){continue}break}}if(!h){break c}while(1){c=f+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+e>>2];b=b+1|0;i=i+1|0;if((h|0)!=(i|0)){continue}break}break c}H[a+84|0]=0;b=a+68|0;i=J[a+68>>2];f=J[a+72>>2]-i>>2;d:{if(f>>>0<c>>>0){Ma(b,c-f|0,2176);c=J[a+80>>2];break d}if(c>>>0>=f>>>0){break d}J[a+72>>2]=i+(c<<2)}if(!c){break c}f=J[b>>2];i=0;b=0;if(c>>>0>=4){l=c&-4;g=0;while(1){h=b<<2;J[h+f>>2]=J[e+h>>2];j=h|4;J[j+f>>2]=J[e+j>>2];j=h|8;J[j+f>>2]=J[e+j>>2];h=h|12;J[h+f>>2]=J[e+h>>2];b=b+4|0;g=g+4|0;if((l|0)!=(g|0)){continue}break}}c=c&3;if(!c){break c}while(1){g=b<<2;J[g+f>>2]=J[e+g>>2];b=b+1|0;i=i+1|0;if((c|0)!=(i|0)){continue}break}}J[a+80>>2]=k}na(e)}b=J[d+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[d+32>>2];J[d+32>>2]=0;if(a){na(a)}ba=d- -64|0;return k}qa();B()}function Rj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=oa(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ba(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ba(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}na(c);if((cb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+288|0]=1;break a}H[a+288|0]=0;break a}na(c);e=J[J[a+4>>2]+48>>2];b=oa(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Pb(e,f,0),H[j+288|0]=k;if(H[f+11|0]>=0){break a}na(J[f>>2])}ba=f+16|0;return 1}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=oa(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ba(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ba(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}na(c);if((cb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+352|0]=1;break a}H[a+352|0]=0;break a}na(c);e=J[J[a+4>>2]+48>>2];b=oa(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Pb(e,f,0),H[j+352|0]=k;if(H[f+11|0]>=0){break a}na(J[f>>2])}ba=f+16|0;return 1}function uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-32|0;ba=c;d=a- -64|0;Aa(J[d>>2],b);if(J[d>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+64>>2];if((d|0)>0){while(1){f=d-1|0;Ca(c,J[J[a+60>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+76>>2],b);if(J[a+76>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+76>>2];if((d|0)>=2){while(1){f=d-2|0;Ca(c,J[J[a+72>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ca(c,J[J[a+72>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+88>>2],b);if(J[a+88>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+88>>2];if((d|0)>=3){while(1){f=d-3|0;Ca(c,J[J[a+84>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ca(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+100>>2],b);if(J[a+100>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+100>>2];if((d|0)>=4){while(1){f=d-4|0;Ca(c,J[J[a+96>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}ya(c,b);wa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;sa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c,f)}ba=c+32|0;return 1}function jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-32|0;ba=c;Aa(J[a+48>>2],b);if(J[a+48>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+48>>2];if((d|0)>0){while(1){f=d-1|0;Ca(c,J[J[a+44>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+60>>2],b);if(J[a+60>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+60>>2];if((d|0)>=2){while(1){f=d-2|0;Ca(c,J[J[a+56>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ca(c,J[J[a+56>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+72>>2],b);if(J[a+72>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+72>>2];if((d|0)>=3){while(1){f=d-3|0;Ca(c,J[J[a+68>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ca(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+84>>2],b);if(J[a+84>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+84>>2];if((d|0)>=4){while(1){f=d-4|0;Ca(c,J[J[a+80>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}ya(c,b);wa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;sa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c,f)}ba=c+32|0;return 1}function wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ba-32|0;ba=d;o=e<<2;f=e>>>0>1073741823?-1:o;l=pa(oa(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];p=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1){break b}g=J[J[p+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[p>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];i=g+1|0;i=(i>>>0)%3|0?i:g-2|0;if((i|0)!=-1){i=J[h+(i<<2)>>2]}else{i=-1}c:{d:{if((g>>>0)%3|0){g=g-1|0;break d}g=g+2|0;n=-1;if((g|0)==-1){break c}}n=J[h+(g<<2)>>2]}if((j|0)<=(m|0)){break b}g=J[(i<<2)+k>>2];if((g|0)>=(j|0)){break b}h=J[k+(n<<2)>>2];if((h|0)>=(j|0)){break b}e:{if((e|0)<=0){break e}h=P(e,h);k=P(e,g);m=P(e,m);g=0;n=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(!s){break e}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}ra();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Ya(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){pa(l,0,o)}e=J[l>>2];f=J[l+4>>2];g=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=g;J[d+8>>2]=e;J[d+12>>2]=f;Ya(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];na(l);ba=d+32|0;return 1}function fg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=J[a>>2];n=b-k|0;h=(n&-4)+k|0;i=d-c|0;if((i|0)<=0){return}a:{l=i>>2;g=J[a+8>>2];j=J[a+4>>2];if((l|0)<=g-j>>2){f=j-h|0;g=f>>2;if((g|0)>=(l|0)){b=j;g=d;break a}b=j;g=(g<<2)+c|0;if((g|0)!=(d|0)){e=g;while(1){J[b>>2]=J[e>>2];b=b+4|0;e=e+4|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=b;if((f|0)>0){break a}return}b:{f=l+(j-k>>2)|0;if(f>>>0<1073741824){e=g-k|0;g=e>>>1|0;m=e>>>0>=2147483644?1073741823:f>>>0<g>>>0?g:f;if(m){if(m>>>0>=1073741824){break b}g=oa(m<<2)}else{g=0}e=g+(n&-4)|0;f=e;if((c|0)!=(d|0)){f=ua(e,c,i&-4)+(l<<2)|0}c:{if((b|0)==(k|0)){break c}i=n-4|0;d=(i>>>2|0)+1&3;d:{if(!d){b=h;break d}c=0;b=h;while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];c=c+1|0;if((d|0)!=(c|0)){continue}break}}if(i>>>0<12){break c}while(1){J[e-4>>2]=J[b-4>>2];J[e-8>>2]=J[b-8>>2];J[e-12>>2]=J[b-12>>2];e=e-16|0;b=b-16|0;J[e>>2]=J[b>>2];if((b|0)!=(k|0)){continue}break}}if((h|0)!=(j|0)){while(1){J[f>>2]=J[h>>2];f=f+4|0;h=h+4|0;if((j|0)!=(h|0)){continue}break}}J[a+8>>2]=(m<<2)+g;J[a+4>>2]=f;J[a>>2]=e;if(k){na(k)}return}qa();B()}xa();B()}d=l<<2;i=d+h|0;f=b;e=b-d|0;if(j>>>0>e>>>0){d=e;while(1){J[f>>2]=J[d>>2];f=f+4|0;d=d+4|0;if(j>>>0>d>>>0){continue}break}}J[a+4>>2]=f;e:{if((b|0)==(i|0)){break e}d=(b-i|0)-4|0;a=(d>>>2|0)+1&3;if(a){f=0;while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];f=f+1|0;if((a|0)!=(f|0)){continue}break}}if(d>>>0<12){break e}while(1){J[b-4>>2]=J[e-4>>2];J[b-8>>2]=J[e-8>>2];J[b-12>>2]=J[e-12>>2];b=b-16|0;e=e-16|0;J[b>>2]=J[e>>2];if((e|0)!=(h|0)){continue}break}}if((c|0)==(g|0)){return}b=h;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((g|0)!=(c|0)){continue}break}}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ba-16|0;ba=k;J[k+8>>2]=c;h=J[a+12>>2];d=J[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=J[a+16>>2];d=J[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=pa(e,0,d)+d|0}J[a+12>>2]=d;break a}b:{c:{d:{m=J[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=oa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=pa(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=J[d>>2];J[d>>2]=0;h=h-4|0;J[h>>2]=f;if((d|0)!=(m|0)){continue}break}J[a+16>>2]=e;e=J[a+12>>2];J[a+12>>2]=g;d=J[a+8>>2];J[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=J[e>>2];J[e>>2]=0;if(f){Ka(f)}if((d|0)!=(e|0)){continue}break}break b}qa();B()}xa();B()}J[a+16>>2]=e;J[a+12>>2]=g;J[a+8>>2]=i}if(d){na(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=J[h>>2];J[h>>2]=0;if(c){Ka(c)}if((d|0)!=(h|0)){continue}break}c=J[k+8>>2]}J[a+12>>2]=d}e:{f:{d=J[c+56>>2];g:{if((d|0)>4){break g}j=P(d,12)+a|0;d=J[j+24>>2];if((d|0)!=J[j+28>>2]){J[d>>2]=b;J[j+24>>2]=d+4;break g}i=J[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=oa(e<<2)}else{d=0}f=d+(f<<2)|0;J[f>>2]=b;d=ta(d,i,g);J[j+20>>2]=d;J[j+24>>2]=f+4;J[j+28>>2]=d+(e<<2);if(!i){break g}na(i)}J[c+60>>2]=b;a=J[a+8>>2];J[k+8>>2]=0;a=a+(b<<2)|0;b=J[a>>2];J[a>>2]=c;if(b){Ka(b)}a=J[k+8>>2];J[k+8>>2]=0;if(a){Ka(a)}ba=k+16|0;return}qa();B()}xa();B()}function qf(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=Q(0);j=J[c>>2];g=j^318;a:{b:{f=J[b+4>>2];if(!f){break b}h=Kl(f);c:{if(h>>>0>=2){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}if(h>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}h=J[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&g;c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=J[c>>2];if(!c){break b}k=J[c+4>>2];if((k|0)!=(g|0)&(h&k)!=(e|0)){break b}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=oa(16);J[c+8>>2]=J[d>>2];d=J[d+4>>2];J[c+4>>2]=g;J[c+12>>2]=d;J[c>>2]=0;i=Q(J[b+12>>2]+1>>>0);l=N[b+16>>2];d:{if(i>Q(l*Q(f>>>0))?0:f){break d}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=Q(W(Q(i/l)));e:{if(i<Q(4294967296)&i>=Q(0)){e=~~i>>>0;break e}e=0}e=e>>>0<h>>>0?h:e;f:{if((e|0)==1){break f}if(!(e&e-1)){d=e;break f}d=Ha(e);f=J[b+4>>2]}g:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break g}h=f>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i<Q(4294967296)&i>=Q(0)){e=~~i>>>0;break h}e=0}i:{j:{if(h){break j}if(Kl(f)>>>0>1){break j}e=e>>>0<2?e:1<<32-S(e-1|0);break i}e=Ha(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break g}}db(b,d)}f=J[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break d}if(f>>>0>g>>>0){e=g;break d}e=(g>>>0)%(f>>>0)|0}g=J[b>>2]+(e<<2)|0;d=J[g>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[g>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];g=f-1|0;m:{if(!(g&f)){d=d&g;break m}if(d>>>0<f>>>0){break m}d=(d>>>0)%(f>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function bl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0<e>>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=f-d|0;f=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=g;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>=4){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=qh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)<J[a+8>>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)<J[a+28>>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}ra();B()}function Tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0<e>>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=f-d|0;f=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=g;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>=4){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=lh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)<J[a+8>>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)<J[a+28>>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}ra();B()}function bg(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=Q(0);h=J[c>>2];a:{b:{e=J[b+4>>2];if(!e){break b}g=Kl(e);c:{if(g>>>0>=2){f=h;if(f>>>0>=e>>>0){f=(h>>>0)%(e>>>0)|0}c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}g=J[c+4>>2];if((g|0)!=(h|0)){if(e>>>0<=g>>>0){g=(g>>>0)%(e>>>0)|0}if((f|0)!=(g|0)){break b}}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}f=e-1&h;c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}}g=e-1|0;while(1){c=J[c>>2];if(!c){break b}j=J[c+4>>2];if((j|0)!=(h|0)&(g&j)!=(f|0)){break b}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}c=oa(16);d=J[J[d>>2]>>2];J[c+12>>2]=0;J[c+8>>2]=d;J[c+4>>2]=h;J[c>>2]=0;k=Q(J[b+12>>2]+1>>>0);i=N[b+16>>2];d:{if(k>Q(i*Q(e>>>0))?0:e){break d}f=2;g=(e-1&e)!=0|e>>>0<3|e<<1;i=Q(W(Q(k/i)));e:{if(i<Q(4294967296)&i>=Q(0)){d=~~i>>>0;break e}d=0}d=d>>>0<g>>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){f=d;break f}f=Ha(d);e=J[b+4>>2]}g:{if(e>>>0>=f>>>0){if(e>>>0<=f>>>0){break g}g=e>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i<Q(4294967296)&i>=Q(0)){d=~~i>>>0;break h}d=0}i:{j:{if(g){break j}if(Kl(e)>>>0>1){break j}d=d>>>0<2?d:1<<32-S(d-1|0);break i}d=Ha(d)}f=d>>>0<f>>>0?f:d;if(f>>>0>=e>>>0){break g}}db(b,f)}e=J[b+4>>2];d=e-1|0;if(!(d&e)){f=d&h;break d}if(e>>>0>h>>>0){f=h;break d}f=(h>>>0)%(e>>>0)|0}f=J[b>>2]+(f<<2)|0;d=J[f>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[f>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];f=e-1|0;m:{if(!(f&e)){d=d&f;break m}if(d>>>0<e>>>0){break m}d=(d>>>0)%(e>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function Ik(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ba-32|0;ba=d;p=e<<2;f=e>>>0>1073741823?-1:p;l=pa(oa(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];n=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1|J[J[n>>2]+(g>>>3&536870908)>>2]>>>g&1){break b}g=J[J[J[n+64>>2]+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[n+28>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];if((m|0)>=(j|0)){break b}i=g+1|0;i=J[k+(J[h+(((i>>>0)%3|0?i:g-2|0)<<2)>>2]<<2)>>2];if((i|0)>=(j|0)){break b}g=J[k+(J[h+(g+((g>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(j|0)){break b}c:{if((e|0)<=0){break c}h=P(e,g);k=P(e,i);m=P(e,m);g=0;o=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;o=o+2|0;if((r|0)!=(o|0)){continue}break}}if(!s){break c}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}ra();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Ya(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){pa(l,0,p)}e=J[l>>2];f=J[l+4>>2];g=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=g;J[d+8>>2]=e;J[d+12>>2]=f;Ya(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];na(l);ba=d+32|0;return 1}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ba-32|0;ba=g;e=J[a>>2];d=J[e>>2];c=J[e+4>>2];k=+(d>>>0)+ +(c>>>0)*4294967296;c=J[e+12>>2]+c|0;i=d;d=J[e+8>>2];e=i+d|0;c=e>>>0<d>>>0?c+1|0:c;i=e;e=!(c|e);k=k/(+((e?1:i)>>>0)+ +((e?0:c)>>>0)*4294967296)*256+.5;a:{if(k<4294967296&k>=0){c=~~k>>>0;break a}c=0}c=c>>>0>=255?255:c;l=!c+c|0;H[g+23|0]=l;j=J[a+16>>2];p=J[a+12>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;b:{c:{c=(j-p<<1)- -64|0;if(c){if((c|0)<0){break c}h=oa(c);pa(h,0,c)}c=J[a+28>>2]-1|0;if((c|0)<0){d=4096;break b}m=0-l|0;q=m&255;i=J[a+24>>2];d=4096;while(1){n=i&1<<c;e=(n?m:l)&255;if(e<<12>>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}o=(e<<3)+12784|0;Hl(J[o>>2],0,d,0);d=((n?0:q)+d|0)+P(256-e|0,ca+d>>>J[o+4>>2]|0)|0;c=c-1|0;if((c|0)>=0){continue}break}break b}qa();B()}if((j|0)!=(p|0)){m=0-l|0;q=m&255;while(1){j=j-4|0;i=J[j>>2];c=31;while(1){e=c;n=i&1<<c;c=(n?m:l)&255;if(c<<12>>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}o=(c<<3)+12784|0;Hl(J[o>>2],0,d,0);d=((n?0:q)+d|0)+P(256-c|0,ca+d>>>J[o+4>>2]|0)|0;c=e-1|0;if(e){continue}break}if((j|0)!=(p|0)){continue}break}}c=d-4096|0;d:{if(c>>>0<=63){H[f+h|0]=d;f=f+1|0;break d}if(c>>>0<=16383){c=f+h|0;H[c|0]=d;H[c+1|0]=d+12288>>>8;f=f+2|0;break d}if(c>>>0>4194303){break d}c=f+h|0;H[c|0]=d;e=d+8384512|0;H[c+2|0]=e>>>16;H[c+1|0]=e>>>8;f=f+3|0}c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],g+23|0,g+24|0)}Aa(f,b);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],h,f+h|0)}J[g+24>>2]=0;J[g+28>>2]=0;ie(a,g+24|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];if(h){na(h)}ba=g+32|0}function he(a){var b=0,c=0,d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;b=c;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;b=a+28|0;J[b>>2]=0;J[b+4>>2]=0;J[a+12>>2]=c;J[a+24>>2]=b;b=oa(32);J[d>>2]=b;J[d+4>>2]=20;J[d+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);e=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);e=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;e=a+24|0;vb(e,d,1);if(H[d+11|0]<0){na(J[d>>2])}a=oa(32);J[d>>2]=a;J[d+4>>2]=22;J[d+8>>2]=-2147483616;b=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);c=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[a+14|0]=c;H[a+15|0]=c>>>8;H[a+16|0]=c>>>16;H[a+17|0]=c>>>24;H[a+18|0]=b;H[a+19|0]=b>>>8;H[a+20|0]=b>>>16;H[a+21|0]=b>>>24;b=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);c=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);c=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+22|0]=0;vb(e,d,1);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0}function of(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=J[a+8>>2];e=J[a+4>>2];if((f-e|0)/12>>>0>=b>>>0){a:{if(!b){break a}d=e;g=P(b,12)-12|0;h=((g>>>0)/12|0)+1&3;if(h){while(1){f=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=f;J[d+8>>2]=J[c+8>>2];d=d+12|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}e=P(b,12)+e|0;if(g>>>0<36){break a}while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{d=J[a>>2];h=(e-d|0)/12|0;g=h+b|0;if(g>>>0<357913942){f=(f-d|0)/12|0;d=f<<1;k=f>>>0>=178956970?357913941:d>>>0>g>>>0?d:g;if(k){if(k>>>0>=357913942){break b}l=oa(P(k,12))}i=P(h,12)+l|0;d=i;g=P(b,12);h=g-12|0;f=((h>>>0)/12|0)+1&3;if(f){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];d=d+12|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}f=g+i|0;if(h>>>0>=36){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((f|0)!=(d|0)){continue}break}}c=J[a>>2];if((c|0)!=(e|0)){while(1){e=e-12|0;b=J[e+4>>2];i=i-12|0;d=i;J[d>>2]=J[e>>2];J[d+4>>2]=b;J[d+8>>2]=J[e+8>>2];if((c|0)!=(e|0)){continue}break}e=J[a>>2]}J[a+8>>2]=P(k,12)+l;J[a+4>>2]=f;J[a>>2]=i;if(e){na(e)}return}qa();B()}xa();B()}function ng(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=ba-112|0;ba=c;d=oa(120);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11224;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+8>>2]=11436;e=d- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+116>>2]=0;J[d+112>>2]=b;J[d+108>>2]=i;J[d+104>>2]=0;J[d+96>>2]=0;J[d+100>>2]=0;g=J[a+12>>2];J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;f=c+32|0;e=f;J[e>>2]=0;J[e+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;e=c- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+104>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+8>>2]=11436;J[c+96>>2]=0;J[c+100>>2]=0;J[c+12>>2]=g;h=J[g>>2];e=J[g+4>>2];H[c+111|0]=0;j=f;f=c+111|0;Na(j,(e-h>>2>>>0)/3|0,f);e=J[c+12>>2];h=J[e+28>>2];e=J[e+24>>2];H[c+111|0]=0;Na(c+44|0,h-e>>2,f);J[c+28>>2]=d;J[c+24>>2]=i;J[c+20>>2]=b;J[c+16>>2]=g;J[d+116>>2]=a+72;a=d+8|0;b=c+8|0;Kc(a,b);a:{if((a|0)==(b|0)){J[d+92>>2]=J[b+84>>2];break a}Rb(d+56|0,J[b+48>>2],J[b+52>>2]);Rb(d+68|0,J[b+60>>2],J[b- -64>>2]);Rb(d+80|0,J[b+72>>2],J[b+76>>2]);J[d+92>>2]=J[b+84>>2];bb(d+96|0,J[b+88>>2],J[b+92>>2])}J[c+8>>2]=11436;a=J[c+96>>2];if(a){J[c+100>>2]=a;na(a)}a=J[c+80>>2];if(a){J[c+84>>2]=a;na(a)}a=J[c+68>>2];if(a){J[c+72>>2]=a;na(a)}a=J[c+56>>2];if(a){J[c+60>>2]=a;na(a)}J[c+8>>2]=11672;a=J[c+44>>2];if(a){na(a)}a=J[c+32>>2];if(a){na(a)}ba=c+112|0;return d}function vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ba-48|0;ba=g;f=ba-32|0;ba=f;h=f+21|0;d=h;l=f+32|0;e=l;if(!((d|0)==(e|0)|(c|0)>=0)){H[d|0]=45;d=d+1|0;c=0-c|0}i=e-d|0;a:{if((i|0)<=9){j=P(32-S(c|1)|0,1233)>>12;k=61;if((i|0)<((M[(j<<2)+18192>>2]<=c>>>0)+j|0)){break a}}b:{if(c>>>0<=999999){if(c>>>0<=9999){if(c>>>0<=99){if(c>>>0<=9){H[d|0]=c+48;e=d+1|0;break b}e=Fb(d,c);break b}if(c>>>0<=999){e=(c>>>0)/100|0;H[d|0]=e+48;e=Fb(d+1|0,c-P(e,100)|0);break b}e=fd(d,c);break b}if(c>>>0<=99999){e=(c>>>0)/1e4|0;H[d|0]=e+48;e=fd(d+1|0,c-P(e,1e4)|0);break b}e=ed(d,c);break b}if(c>>>0<=99999999){if(c>>>0<=9999999){e=(c>>>0)/1e6|0;H[d|0]=e+48;e=ed(d+1|0,c-P(e,1e6)|0);break b}e=dd(d,c);break b}if(c>>>0<=999999999){e=(c>>>0)/1e8|0;H[d|0]=e+48;e=dd(d+1|0,c-P(e,1e8)|0);break b}e=d;d=(c>>>0)/1e8|0;e=dd(Fb(e,d),c-P(d,1e8)|0)}k=0}J[f+12>>2]=k;J[f+8>>2]=e;j=ba-16|0;ba=j;e=ba-16|0;ba=e;c=g+8|0;c:{i=J[f+8>>2];f=i-h|0;if(f>>>0<=2147483631){d:{if(f>>>0<11){H[c+11|0]=f|K[c+11|0]&128;H[c+11|0]=K[c+11|0]&127;d=c;break d}k=e+8|0;if(f>>>0>=11){m=f+16&-16;d=m-1|0;d=(d|0)==11?m:d}else{d=10}Ac(k,d+1|0);d=J[e+8>>2];J[c>>2]=d;J[c+8>>2]=J[c+8>>2]&-2147483648|J[e+12>>2]&2147483647;J[c+8>>2]=J[c+8>>2]|-2147483648;J[c+4>>2]=f}while(1){if((h|0)!=(i|0)){H[d|0]=K[h|0];d=d+1|0;h=h+1|0;continue}break}H[e+7|0]=0;H[d|0]=K[e+7|0];ba=e+16|0;break c}gb();B()}ba=j+16|0;ba=l;J[g+32>>2]=b;ge(g+40|0,a,b,g+32|0);a=J[g+40>>2];if(H[a+39|0]<0){na(J[a+28>>2])}b=J[g+12>>2];J[a+28>>2]=J[g+8>>2];J[a+32>>2]=b;J[a+36>>2]=J[g+16>>2];ba=g+48|0}function df(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=Q(0);a:{b:{c:{d:{d=2;e:{if((b|0)==1){break e}d=b;if(!(b-1&b)){break e}d=Ha(b)}b=J[a+4>>2];if(d>>>0<=b>>>0){if(b>>>0<=d>>>0){break a}e=b>>>0<3;i=Q(W(Q(Q(M[a+12>>2])/N[a+20>>2])));f:{if(i<Q(4294967296)&i>=Q(0)){c=~~i>>>0;break f}c=0}g:{h:{if(e){break h}if(Kl(b)>>>0>1){break h}c=c>>>0<2?c:1<<32-S(c-1|0);break g}c=Ha(c)}d=c>>>0<d>>>0?d:c;if(b>>>0<=d>>>0){break a}if(!d){break d}}if(d>>>0>=1073741824){break c}c=oa(d<<2);b=J[a>>2];J[a>>2]=c;if(b){na(b)}J[a+4>>2]=d;e=0;b=0;if(d-1>>>0>=3){g=d&-4;while(1){c=b<<2;J[c+J[a>>2]>>2]=0;J[J[a>>2]+(c|4)>>2]=0;J[J[a>>2]+(c|8)>>2]=0;J[J[a>>2]+(c|12)>>2]=0;b=b+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}c=d&3;if(c){while(1){J[J[a>>2]+(b<<2)>>2]=0;b=b+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}b=J[a+8>>2];if(!b){break a}c=a+8|0;f=J[b+4>>2];e=d-1|0;if(!(e&d)){break b}f=d>>>0<=f>>>0?(f>>>0)%(d>>>0)|0:f;J[J[a>>2]+(f<<2)>>2]=c;while(1){c=J[b>>2];if(!c){break a}e=J[c+4>>2];if(e>>>0>=d>>>0){e=(e>>>0)%(d>>>0)|0}if((e|0)==(f|0)){b=c;continue}g=e<<2;h=g+J[a>>2]|0;if(J[h>>2]){J[b>>2]=J[c>>2];J[c>>2]=J[J[g+J[a>>2]>>2]>>2];J[J[g+J[a>>2]>>2]>>2]=c}else{J[h>>2]=b;b=c;f=e}continue}}b=J[a>>2];J[a>>2]=0;if(b){na(b)}J[a+4>>2]=0;break a}xa();B()}f=e&f;J[J[a>>2]+(f<<2)>>2]=c;while(1){c=J[b>>2];if(!c){break a}d=e&J[c+4>>2];if((d|0)==(f|0)){b=c;continue}g=d<<2;h=g+J[a>>2]|0;if(J[h>>2]){J[b>>2]=J[c>>2];J[c>>2]=J[J[g+J[a>>2]>>2]>>2];J[J[g+J[a>>2]>>2]>>2]=c}else{J[h>>2]=b;b=c;f=d}continue}}}function Be(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=ba-32|0;ba=h;e=a+4|0;a=ob(a,b);a:{if((e|0)==(a|0)){break a}b:{if(H[a+39|0]>=0){J[h+24>>2]=J[a+36>>2];b=J[a+32>>2];J[h+16>>2]=J[a+28>>2];J[h+20>>2]=b;break b}Ga(h+16|0,J[a+28>>2],J[a+32>>2])}b=K[h+27|0];a=b<<24>>24;if(!(!((a|0)<0?J[h+20>>2]:b)|(c|0)<=0)){b=0;a=(a|0)<0?J[h+16>>2]:h+16|0;while(1){c:{l=ba-16|0;ba=l;Xe(l,a,h+12|0,0);j=J[l>>2];k=J[l+4>>2];i=ba-32|0;ba=i;n=J[l+12>>2];g=n&2147483647;e=g-1065418752|0;m=g-1082064896|0;f=J[l+8>>2];d:{if((e|0)==(m|0)&f>>>0<f>>>0|e>>>0<m>>>0){g=(n&33554431)<<7|f>>>25;e=0;m=e;f=f&33554431;if(!(!e&(f|0)==16777216?!(j|k):!e&f>>>0<16777216)){e=g+1073741825|0;break d}e=g+1073741824|0;if(f^16777216|j|(k|m)){break d}e=(g&1)+e|0;break d}if(!(!f&(g|0)==2147418112?!(j|k):g>>>0<2147418112)){e=((n&33554431)<<7|f>>>25)&4194303|2143289344;break d}e=2139095040;if(g>>>0>1082064895){break d}e=0;g=g>>>16|0;if(g>>>0<16145){break d}e=n&65535|65536;Pa(i+16|0,j,k,f,e,g-16129|0);Gb(i,j,k,f,e,16257-g|0);f=J[i+8>>2];e=(J[i+12>>2]&33554431)<<7|f>>>25;g=J[i>>2]|(J[i+16>>2]|J[i+24>>2]|(J[i+20>>2]|J[i+28>>2]))!=0;k=J[i+4>>2];j=0;f=f&33554431;if(!(!j&(f|0)==16777216?!(g|k):!j&f>>>0<16777216)){e=e+1|0;break d}if(f^16777216|g|(j|k)){break d}e=(e&1)+e|0}ba=i+32|0;ba=l+16|0;m=a;a=J[h+12>>2];if((m|0)==(a|0)){break c}J[(b<<2)+d>>2]=n&-2147483648|e;b=b+1|0;if((c|0)!=(b|0)){continue}}break}a=K[h+27|0]}if(a<<24>>24>=0){break a}na(J[h+16>>2])}ba=h+32|0}function bh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=J[b+48>>2];d=ba-32|0;ba=d;J[d+28>>2]=a;a=0;a:{if((cb(f)|0)>9){break a}if((da[J[J[b>>2]+8>>2]](b)|0)!=1){break a}a=oa(32);J[d+16>>2]=a;J[d+20>>2]=17;J[d+24>>2]=-2147483616;H[a+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);c=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=e;H[a+13|0]=e>>>8;H[a+14|0]=e>>>16;H[a+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);c=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+17|0]=0;a=jb(f,d+28|0,d+16|0,-1);if(H[d+27|0]<0){na(J[d+16>>2])}c=J[b+4>>2];e=J[J[c+8>>2]+(J[d+28>>2]<<2)>>2];b:{if((a|0)==-1|J[e+56>>2]!=3|K[e+24|0]!=2){break b}c=rd(c);if(!c){break b}c=J[c+28>>2];if(!(2558>>>c&c>>>0<12)){h=d,i=Nb(J[b+4>>2],0),J[h+12>>2]=i;c=Pc(d+16|0,1245);g=jb(f,d+12|0,c,-1);if(H[c+11|0]<0){na(J[c>>2])}if((a+(g<<1)|0)>63|g-1>>>0>20){break b}}a=5;if((cb(f)|0)<4){break a}}a=J[e+56>>2];e=cb(f);if((a|0)==1){c:{if((e|0)>3){break c}h=d,i=Nb(J[b+4>>2],0),J[h+12>>2]=i;a=rd(J[b+4>>2]);if(!a){break c}a=J[a+28>>2];if(2558>>>a&a>>>0<12){a=6;break a}a=Pc(d+16|0,1245);b=jb(f,d+12|0,a,-1);if(H[a+11|0]<0){na(J[a>>2])}a=6;if((b|0)>0){break a}}a=0;break a}a=0;if((e|0)>7){break a}a=1;if((cb(f)|0)>1){break a}a=M[J[b+4>>2]+80>>2]<40?1:4}ba=d+32|0;return a}function hc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ig(a,i,c,h,e);f=b;b=e+j|0;Ig(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}hc(a,i,c,h,e,f);hc(i,b,c,g,e,f);de(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function gc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Hg(a,i,c,h,e);f=b;b=e+j|0;Hg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}gc(a,i,c,h,e,f);gc(i,b,c,g,e,f);ce(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function fc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Gg(a,i,c,h,e);f=b;b=e+j|0;Gg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}fc(a,i,c,h,e,f);fc(i,b,c,g,e,f);be(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ec(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Fg(a,i,c,h,e);f=b;b=e+j|0;Fg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}ec(a,i,c,h,e,f);ec(i,b,c,g,e,f);ae(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function dc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Eg(a,i,c,h,e);f=b;b=e+j|0;Eg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}dc(a,i,c,h,e,f);dc(i,b,c,g,e,f);$d(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function cc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Dg(a,i,c,h,e);f=b;b=e+j|0;Dg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}cc(a,i,c,h,e,f);cc(i,b,c,g,e,f);_d(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function bc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Cg(a,i,c,h,e);f=b;b=e+j|0;Cg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}bc(a,i,c,h,e,f);bc(i,b,c,g,e,f);Zd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ac(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Bg(a,i,c,h,e);f=b;b=e+j|0;Bg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}ac(a,i,c,h,e,f);ac(i,b,c,g,e,f);Yd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function _b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){zg(a,i,c,h,e);f=b;b=e+j|0;zg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}_b(a,i,c,h,e,f);_b(i,b,c,g,e,f);Wd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Zb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){yg(a,i,c,h,e);f=b;b=e+j|0;yg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Zb(a,i,c,h,e,f);Zb(i,b,c,g,e,f);Vd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Yb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){wg(a,i,c,h,e);f=b;b=e+j|0;wg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Yb(a,i,c,h,e,f);Yb(i,b,c,g,e,f);Ud(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Xb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){vg(a,i,c,h,e);f=b;b=e+j|0;vg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Xb(a,i,c,h,e,f);Xb(i,b,c,g,e,f);Td(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Wb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){ug(a,i,c,h,e);f=b;b=e+j|0;ug(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Wb(a,i,c,h,e,f);Wb(i,b,c,g,e,f);Sd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Vb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){tg(a,i,c,h,e);f=b;b=e+j|0;tg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Vb(a,i,c,h,e,f);Vb(i,b,c,g,e,f);Rd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ub(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){sg(a,i,c,h,e);f=b;b=e+j|0;sg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Ub(a,i,c,h,e,f);Ub(i,b,c,g,e,f);Qd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Tb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){rg(a,i,c,h,e);f=b;b=e+j|0;rg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Tb(a,i,c,h,e,f);Tb(i,b,c,g,e,f);Pd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Sb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){qg(a,i,c,h,e);f=b;b=e+j|0;qg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Sb(a,i,c,h,e,f);Sb(i,b,c,g,e,f);Od(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function $b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ag(a,i,c,h,e);f=b;b=e+j|0;Ag(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}$b(a,i,c,h,e,f);$b(i,b,c,g,e,f);Xd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ii(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=ba-32|0;ba=a;a:{b:{c:{d:{if(!b){break d}f=rb(c);if(f>>>0>=2147483632){break c}e:{f:{if(f>>>0>=11){g=(f|15)+1|0;h=oa(g);J[a+24>>2]=g|-2147483648;J[a+16>>2]=h;J[a+20>>2]=f;g=f+h|0;break f}H[a+27|0]=f;h=a+16|0;g=f+h|0;if(!f){break e}}ua(h,c,f)}H[g|0]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;if(e){if((e|0)<0){break b}c=e<<2;e=oa(c);J[a>>2]=e;f=c+e|0;J[a+8>>2]=f;ua(e,d,c);J[a+4>>2]=f}f=ba-48|0;ba=f;e=ob(b,a+16|0);if((e|0)!=(b+4|0)){c=J[e+4>>2];g:{if(!c){c=e;while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}break g}while(1){d=c;c=J[c>>2];if(c){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=d}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],e);c=J[e+28>>2];if(c){J[e+32>>2]=c;na(c)}if(H[e+27|0]<0){na(J[e+16>>2])}na(e)}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;c=J[a+4>>2];d=J[a>>2];e=c-d|0;g=0;h:{i:{if((c|0)!=(d|0)){if((e|0)<0){break i}g=oa(e);c=pa(g,0,e);h=c+e|0;J[f+8>>2]=h;J[f+4>>2]=h;J[f>>2]=c;c=d}ua(g,c,e);j:{if(H[a+27|0]>=0){J[f+24>>2]=J[a+24>>2];c=J[a+20>>2];J[f+16>>2]=J[a+16>>2];J[f+20>>2]=c;break j}Ga(f+16|0,J[a+16>>2],J[a+20>>2])}Ob(f+28|0,f);c=f+16|0;Cc(f+40|0,b,c,c);c=J[f+28>>2];if(c){J[f+32>>2]=c;na(c)}if(H[f+27|0]<0){na(J[f+16>>2])}c=J[f>>2];if(c){J[f+4>>2]=c;na(c)}ba=f+48|0;break h}qa();B()}c=J[a>>2];if(c){J[a+4>>2]=c;na(c)}if(H[a+27|0]>=0){break d}na(J[a+16>>2])}ba=a+32|0;a=(b|0)!=0;break a}gb();B()}qa();B()}return a|0}function gd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=ba-16|0;ba=d;g=ba-16|0;ba=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;ba=g+16|0;md(d,K[d+11|0]>>>7|0?(J[d+8>>2]&2147483647)-1|0:10);i=ba-16|0;ba=i;l=+b;if(K[d+11|0]>>>7|0){g=J[d+4>>2]}else{g=K[d+11|0]&127}while(1){a:{if(K[d+11|0]>>>7|0){e=J[d>>2]}else{e=d}O[i>>3]=l;k=ba-16|0;ba=k;J[k+12>>2]=i;c=ba-160|0;ba=c;f=g+1|0;h=f?e:c+158|0;J[c+144>>2]=h;e=-1;j=f-1|0;J[c+148>>2]=f>>>0>=j>>>0?j:0;c=pa(c,0,144);J[c+76>>2]=-1;J[c+36>>2]=371;J[c+80>>2]=-1;J[c+44>>2]=c+159;J[c+84>>2]=c+144;b:{if((f|0)<0){J[4804]=61;break b}H[h|0]=0;h=0;f=ba-208|0;ba=f;J[f+204>>2]=i;e=f+160|0;pa(e,0,40);J[f+200>>2]=J[f+204>>2];c:{if((Ue(0,f+200|0,f+80|0,e)|0)<0){e=-1;break c}m=J[c+76>>2]>=0;j=J[c>>2];if(J[c+72>>2]<=0){J[c>>2]=j&-33}d:{e:{f:{if(!J[c+48>>2]){J[c+48>>2]=80;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;h=J[c+44>>2];J[c+44>>2]=f;break f}if(J[c+16>>2]){break e}}e=-1;if(We(c)){break d}}e=Ue(c,f+200|0,f+80|0,f+160|0)}if(h){da[J[c+36>>2]](c,0,0)|0;J[c+48>>2]=0;J[c+44>>2]=h;J[c+28>>2]=0;h=J[c+20>>2];J[c+16>>2]=0;J[c+20>>2]=0;e=h?e:-1}h=J[c>>2];J[c>>2]=h|j&32;e=h&32?-1:e;if(!m){break c}}ba=f+208|0}ba=c+160|0;ba=k+16|0;g:{if((e|0)>=0){if(e>>>0<=g>>>0){break a}g=e;break g}g=g<<1|1}md(d,g);continue}break}md(d,e);g=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=g;J[a+8>>2]=J[d+8>>2];J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;ba=i+16|0;if(K[d+11|0]>>>7|0){na(J[d>>2])}ba=d+16|0}function tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;b=J[J[a+4>>2]+(b<<2)>>2];J[c+12>>2]=b;a=J[a+28>>2];e=J[J[J[a+4>>2]+8>>2]+(b<<2)>>2];b=J[e+28>>2];a:{if(b-1>>>0>=6){b:{if((b|0)!=9){break b}f=J[a+48>>2];a=oa(32);J[c>>2]=a;J[c+4>>2]=17;J[c+8>>2]=-2147483616;H[a+16|0]=K[1261];b=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+17|0]=0;a=jb(f,c+12|0,c,-1);if(H[c+11|0]<0){na(J[c>>2])}if((a|0)<=0){break b}if(J[e+56>>2]==1){a=oa(48);J[a>>2]=0;J[a+4>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;a=ne(a);J[a+40>>2]=1032;J[a>>2]=6308;J[a+44>>2]=-1;break a}a=ne(oa(64));J[a+40>>2]=2032;J[a>>2]=9988;J[a+48>>2]=0;J[a+52>>2]=0;J[a+44>>2]=-1;J[a+56>>2]=0;J[a+60>>2]=0;break a}a=oa(36);J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;break a}a=ne(oa(40))}ba=c+16|0;return a|0}function ul(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+8>>2]-J[a+4>>2]>>2;b=J[a+40>>2];d=J[a+36>>2];c=b-d>>2;a:{if(e>>>0>c>>>0){g=e-c|0;d=J[a+44>>2];b=J[a+40>>2];if(g>>>0<=d-b>>2>>>0){if(g){i=b;b=g<<2;b=pa(i,0,b)+b|0}J[a+40>>2]=b;break a}b:{c:{d:{j=J[a+36>>2];e=b-j>>2;f=e+g|0;if(f>>>0<1073741824){c=d-j|0;d=c>>>1|0;c=c>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(c){if(c>>>0>=1073741824){break d}i=oa(c<<2)}h=(e<<2)+i|0;d=g<<2;f=pa(h,0,d);e=d+f|0;c=(c<<2)+i|0;if((b|0)==(j|0)){break c}while(1){b=b-4|0;d=J[b>>2];J[b>>2]=0;h=h-4|0;J[h>>2]=d;if((b|0)!=(j|0)){continue}break}J[a+44>>2]=c;c=J[a+40>>2];J[a+40>>2]=e;b=J[a+36>>2];J[a+36>>2]=h;if((b|0)==(c|0)){break b}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){da[J[J[d>>2]+4>>2]](d)}if((b|0)!=(c|0)){continue}break}break b}qa();B()}xa();B()}J[a+44>>2]=c;J[a+40>>2]=e;J[a+36>>2]=f}if(b){na(b)}break a}if(c>>>0<=e>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(b|0)){while(1){b=b-4|0;c=J[b>>2];J[b>>2]=0;if(c){da[J[J[c>>2]+4>>2]](c)}if((b|0)!=(d|0)){continue}break}}J[a+40>>2]=d}if(J[a+8>>2]==J[a+4>>2]){return 1}b=0;while(1){e=da[J[J[a>>2]+56>>2]](a,b)|0;c=b<<2;d=c+J[a+36>>2]|0;f=J[d>>2];J[d>>2]=e;if(f){da[J[J[f>>2]+4>>2]](f)}c=J[c+J[a+36>>2]>>2];d=(c|0)!=0;if(c){if(!(!(J[J[a+48>>2]+(b>>>3&536870908)>>2]>>>b&1)|M[a+52>>2]<=b>>>0)){H[c+28|0]=1}b=b+1|0;if(b>>>0<J[a+8>>2]-J[a+4>>2]>>2>>>0){continue}}break}return d|0}function Yf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;J[a>>2]=10584;c=a+200|0;d=J[c+136>>2];if(d){b=d;e=J[c+140>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=J[b>>2];if(f){J[e-8>>2]=f;na(f)}e=b;if((b|0)!=(d|0)){continue}break}b=J[c+136>>2]}J[c+140>>2]=d;na(b)}b=J[c+104>>2];if(b){J[c+108>>2]=b;na(b)}b=J[c+92>>2];if(b){J[c+96>>2]=b;na(b)}d=J[c+80>>2];J[c+80>>2]=0;if(d){e=d-4|0;b=J[e>>2];if(b){b=d+(b<<5)|0;while(1){b=wa(b-32|0);if((d|0)!=(b|0)){continue}break}}na(e)}b=J[c+68>>2];if(b){J[c+72>>2]=b;na(b)}b=J[c+44>>2];J[c+44>>2]=0;if(b){na(b)}b=J[c+32>>2];if(b){J[c+36>>2]=b;na(b)}wa(c);b=J[a+184>>2];if(b){J[a+188>>2]=b;na(b)}d=J[a+172>>2];if(d){b=J[a+176>>2];e=d;if((b|0)!=(d|0)){while(1){e=b-136|0;f=J[e+116>>2];if(f){J[b-16>>2]=f;na(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;na(f)}pc(b-132|0);b=e;if((d|0)!=(b|0)){continue}break}e=J[a+172>>2]}J[a+176>>2]=d;na(e)}b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+140>>2];if(b){na(b)}b=J[a+128>>2];if(b){while(1){e=J[b>>2];na(b);b=e;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){na(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){na(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){qc(b)}return a|0}function Xd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Xd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Xd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}\nfunction de(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}de(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}de(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function ce(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}ce(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}ce(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function be(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}be(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}be(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function ae(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}ae(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}ae(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function _d(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}_d(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}_d(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Zd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Zd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Zd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Yd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Yd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Yd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Wd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Wd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Wd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Vd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Vd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Vd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Ud(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Ud(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Ud(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Td(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Td(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Td(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Sd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Sd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Sd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Rd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Rd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Rd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Qd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Qd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Qd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Pd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Pd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Pd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Od(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Od(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Od(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function $d(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}$d(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}$d(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Kg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=ba-16|0;ba=m;f=J[b+28>>2];g=J[b+24>>2];J[a+8>>2]=g;J[a+12>>2]=f;f=J[b+20>>2];J[a>>2]=J[b+16>>2];J[a+4>>2]=f;f=J[b+36>>2];J[a+16>>2]=J[b+32>>2];J[a+20>>2]=f;J[a+8>>2]=d+g;a:{b:{if((d|0)>0){j=J[b>>2];f=J[a+12>>2];n=J[a+16>>2];o=O[a>>3];while(1){i=J[b+4>>2]-j>>2;g=J[(h<<2)+c>>2];c:{if(i>>>0>g>>>0){break c}J[m+12>>2]=0;k=g+1|0;if(k>>>0>i>>>0){jc(b,k-i|0,m+12|0);j=J[b>>2];break c}if(i>>>0<=k>>>0){break c}J[b+4>>2]=(k<<2)+j}k=(g<<2)+j|0;i=J[k>>2];d:{if((i|0)>=2){l=+(i|0);l=va(l)*l;break d}l=0;if(i){break d}n=n+1|0;J[a+16>>2]=n;if(f>>>0>=g>>>0){break d}J[a+12>>2]=g;f=g}g=i+1|0;J[k>>2]=g;p=+(g|0);o=va(p)*p-l+o;O[a>>3]=o;h=h+1|0;if((h|0)!=(d|0)){continue}break}if(e){break b}if((d|0)<=0){break a}a=J[b>>2];j=0;h=0;if(d>>>0>=4){g=d&-4;e=0;while(1){b=h<<2;f=a+(J[b+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;f=a+(J[(b|4)+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;f=a+(J[(b|8)+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;b=a+(J[(b|12)+c>>2]<<2)|0;J[b>>2]=J[b>>2]-1;h=h+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=a+(J[(h<<2)+c>>2]<<2)|0;J[d>>2]=J[d>>2]-1;h=h+1|0;j=j+1|0;if((b|0)!=(j|0)){continue}break}break a}if(!e){break a}}c=J[a+4>>2];J[b+16>>2]=J[a>>2];J[b+20>>2]=c;J[b+32>>2]=J[a+16>>2];c=J[a+12>>2];J[b+24>>2]=J[a+8>>2];J[b+28>>2]=c}ba=m+16|0}function Ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=J[b+16>>2];f=J[c+4>>2]-e|0;J[c>>2]=0|J[c>>2]-e;J[c+4>>2]=f;f=J[d+4>>2]-e|0;e=J[d>>2]-e|0;J[d>>2]=g|e;J[d+4>>2]=f;i=J[b+16>>2];g=f>>31;h=(g^f)-g|0;g=e>>31;if(i>>>0<h+((g^e)-g|0)>>>0){j=J[c+4>>2];k=J[c>>2];a:{b:{if((k|0)>=0){h=1;g=1;if((j|0)>=0){break a}e=1;h=-1;g=-1;if(k){break b}break a}e=-1;h=-1;g=-1;if((j|0)<=0){break a}}h=(j|0)<=0?-1:1;g=e}f=1;e=-1;l=k<<1;k=P(g,i);l=l-k|0;g=(P(g,h)|0)>=0;h=P(h,i);J[c+4>>2]=((g?0-l|0:l)+h|0)/2;h=(j<<1)-h|0;J[c>>2]=(k+(g?0-h|0:h)|0)/2;g=J[d+4>>2];h=J[d>>2];c:{d:{if((h|0)>=0){e=1;if((g|0)>=0){break c}if(h){break d}f=-1;e=-1;break c}f=-1;if((g|0)<=0){break c}}f=(g|0)<=0?-1:1}i=h<<1;h=J[b+16>>2];j=P(h,e);i=i-j|0;e=(P(f,e)|0)>=0;h=P(f,h);f=((e?0-i|0:i)+h|0)/2|0;J[d+4>>2]=f;g=(g<<1)-h|0;e=(j+(e?0-g|0:g)|0)/2|0;J[d>>2]=e}e:{f:{g:{h:{i:{j:{if(e){if((e|0)>=0){break j}if((f|0)>0){break h}break e}if(f){break i}f=0;e=0;break e}if((f|0)<0){break g}f=0-J[c+4>>2]|0;J[c>>2]=0-J[c>>2];J[c+4>>2]=f;e=0-J[d>>2]|0;f=0-J[d+4>>2]|0;break f}if((f|0)<=0){break g}}f=J[c>>2];J[c>>2]=0-J[c+4>>2];J[c+4>>2]=f;e=0-J[d+4>>2]|0;f=J[d>>2];break f}f=0-J[c>>2]|0;J[c>>2]=J[c+4>>2];J[c+4>>2]=f;e=J[d+4>>2];f=0-J[d>>2]|0}J[d>>2]=e;J[d+4>>2]=f}d=J[c>>2];b=J[b+4>>2];c=J[c+4>>2]-f|0;J[a+4>>2]=(b&c>>31)+c;c=a;a=d-e|0;J[c>>2]=(b&a>>31)+a}function eg(a,b){var c=0,d=0,e=0,f=0,g=0;e=-1;c=(b|0)==-1;d=-1;a:{if(c){break a}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}f=c?-1:(b>>>0)/3|0;g=J[a+28>>2]+(f>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<<f;b:{if(c){break b}c=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((c|0)==-1){break b}c=(c>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break b}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break b}f=1<<b;g=b>>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(f&J[g+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}c:{if((e|0)==-1){break c}b=J[J[J[a+12>>2]+12>>2]+(e<<2)>>2];if((b|0)==-1){break c}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break c}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break c}f=1<<e;e=e>>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(f&J[e+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}d:{if((d|0)==-1){break d}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2];if((b|0)==-1){break d}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break d}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break d}e=1<<d;d=d>>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(e&J[d+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a=0;a:{if(!d|(!b|(c|0)<0)){break a}f=J[b+8>>2];if(J[b+12>>2]-f>>2<=(c|0)){break a}if(!J[b+4>>2]){a=oa(36);J[a+4>>2]=0;J[a+8>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;e=a+16|0;J[e>>2]=0;J[e+4>>2]=0;J[a>>2]=a+4;J[a+32>>2]=0;J[a+12>>2]=e;J[b+4>>2]=a}a=J[J[f+(c<<2)>>2]+60>>2];d=sd(oa(28),d);J[d+24>>2]=a;a=J[b+4>>2];c=ba-16|0;ba=c;J[c+8>>2]=d;b:{if(!d){break b}b=J[a+28>>2];c:{if(b>>>0<M[a+32>>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+28>>2]=b+4;break c}b=0;d:{e:{f:{e=J[a+24>>2];f=J[a+28>>2]-e>>2;d=f+1|0;if(d>>>0<1073741824){e=J[a+32>>2]-e|0;g=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(e){if(e>>>0>=1073741824){break f}b=oa(e<<2)}g=J[c+8>>2];J[c+8>>2]=0;d=(f<<2)+b|0;J[d>>2]=g;e=(e<<2)+b|0;f=d+4|0;b=J[a+28>>2];g=J[a+24>>2];if((b|0)==(g|0)){break e}while(1){b=b-4|0;h=J[b>>2];J[b>>2]=0;d=d-4|0;J[d>>2]=h;if((b|0)!=(g|0)){continue}break}J[a+32>>2]=e;e=J[a+28>>2];J[a+28>>2]=f;b=J[a+24>>2];J[a+24>>2]=d;if((b|0)==(e|0)){break d}while(1){e=e-4|0;a=J[e>>2];J[e>>2]=0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}if((b|0)!=(e|0)){continue}break}break d}qa();B()}xa();B()}J[a+32>>2]=e;J[a+28>>2]=f;J[a+24>>2]=d}if(b){na(b)}}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break b}lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}ba=c+16|0;a=1}return a|0}function pl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}h=J[e+(b<<2)>>2];if((h|0)<0){break a}if(M[a+52>>2]<=h>>>0){b:{b=ba-16|0;ba=b;c:{f=J[a+52>>2];c=h+1|0;d:{if(f>>>0<c>>>0){e=c-f|0;g=J[a+56>>2];d=g<<5;e:{if(!(e>>>0>d>>>0|f>>>0>d-e>>>0)){J[a+52>>2]=c;d=f&31;c=J[a+48>>2]+(f>>>3&536870908)|0;break e}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;if((c|0)<0){break c}if(d>>>0<=1073741822){d=g<<6;c=c+31&-32;c=c>>>0<d>>>0?d:c}else{c=2147483647}wc(b,c);d=J[a+52>>2];J[b+4>>2]=d+e;f=J[a+48>>2];c=J[b>>2];f:{if((d|0)<=0){d=0;break f}g=d>>>5|0;if(d>>>0>=32){ta(c,f,g<<2)}g=g<<2;c=g+c|0;d=d&31;if(d){i=-1>>>32-d|0;J[c>>2]=J[c>>2]&(i^-1)|J[f+g>>2]&i}f=J[a+48>>2]}J[a+48>>2]=J[b>>2];J[b>>2]=f;g=J[a+52>>2];J[a+52>>2]=J[b+4>>2];J[b+4>>2]=g;g=J[a+56>>2];J[a+56>>2]=J[b+8>>2];J[b+8>>2]=g;if(!f){break e}na(f)}if(!e){break d}if(d){f=32-d|0;g=e>>>0>f>>>0?f:e;J[c>>2]=J[c>>2]&(-1<<d&-1>>>f-g^-1);e=e-g|0;c=c+4|0}d=e>>>5|0;if(e>>>0>=32){pa(c,0,d<<2)}if((e&-32)==(e|0)){break d}c=(d<<2)+c|0;J[c>>2]=J[c>>2]&(-1>>>32-(e&31)^-1);break d}J[a+52>>2]=c}ba=b+16|0;break b}qa();B()}}c=1;b=J[a+48>>2]+(h>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<h;b=J[a+40>>2];a=J[a+36>>2];if(b-a>>2>>>0<=h>>>0){break a}H[J[a+(h<<2)>>2]+28|0]=1}return c|0}function Va(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ba-16|0;ba=g;Aa(J[a+12>>2],b);a:{if(!J[a+12>>2]){break a}n=g+15|0;o=g+16|0;while(1){b:{c:{e=J[a>>2];j=J[e+(h<<3)>>2];c=j>>>0<64;if(!c){d=1;if(j>>>0<16384){break c}d=2;if(j>>>0<=4194303){break c}break a}d=0;if(j){break c}while(1){d:{if(J[(e+(d+h<<3)|0)+8>>2]){c=d;break d}c=d+1|0;if(J[(e+(h+c<<3)|0)+8>>2]){break d}c=d+2|0;if(J[(e+(h+c<<3)|0)+8>>2]){break d}c=63;d=d+3|0;if((d|0)!=63){continue}}break}H[g+15|0]=c<<2|3;d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],g+15|0,o)}h=c+h|0;break b}H[g+14|0]=j<<2|d;e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){sa(b,J[b+4>>2],g+14|0,n)}if(c){break b}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break b}p=d>>>0<=1?1:d;d=0;while(1){d=d+1|0;e:{c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break e}m=j>>>(d<<3)-2|0;f=J[b+8>>2];e=J[b+4>>2];if((f-e|0)>0){H[e|0]=m;J[b+4>>2]=e+1;break e}k=J[b>>2];c=e-k|0;i=c+1|0;if((i|0)>=0){f=f-k|0;l=f<<1;f=f>>>0>=1073741823?2147483647:i>>>0<l>>>0?l:i;if(f){i=oa(f)}else{i=0}l=i+c|0;H[l|0]=m;c=ta(i,k,c);e=ta(l+1|0,e,0);J[b+8>>2]=c+f;J[b+4>>2]=e;J[b>>2]=c;if(!k){break e}na(k);break e}qa();B()}if((d|0)!=(p|0)){continue}break}}h=h+1|0;if(h>>>0<M[a+12>>2]){continue}break}}ba=g+16|0}function Ye(a){var b=0,c=0,d=0,e=0,f=0;a:{b:{c:{d:{e:{b=J[a+4>>2];f:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break f}b=La(a)}switch(b-43|0){case 0:case 2:break e;default:break d}}f=(b|0)==45;b=J[a+4>>2];g:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break g}b=La(a)}e=b-58|0;if(e>>>0>4294967285){break c}if(J[a+116>>2]<0){break b}J[a+4>>2]=J[a+4>>2]-1;break b}e=b-58|0}if(e>>>0<4294967286){break b}e=b-48|0;if(e>>>0<10){while(1){d=(P(d,10)+b|0)-48|0;c=(d|0)<214748364;b=J[a+4>>2];h:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break h}b=La(a)}e=b-48|0;if(c&e>>>0<=9){continue}break}c=d>>31}i:{if(e>>>0>=10){break i}while(1){d=Hl(d,c,10,0);b=d+b|0;c=ca;c=b>>>0<d>>>0?c+1|0:c;d=b-48|0;c=c-(b>>>0<48)|0;b=J[a+4>>2];j:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break j}b=La(a)}e=b-48|0;if(e>>>0>9){break i}if(d>>>0<2061584302&(c|0)<=21474836|(c|0)<21474836){continue}break}}if(e>>>0<10){while(1){b=J[a+4>>2];k:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break k}b=La(a)}if(b-48>>>0<10){continue}break}}b=J[a+116>>2];if((b|0)>0|(b|0)>=0){J[a+4>>2]=J[a+4>>2]-1}a=d;d=f?0-a|0:a;c=f?0-(((a|0)!=0)+c|0)|0:c;break a}c=-2147483648;if(J[a+116>>2]<0){break a}J[a+4>>2]=J[a+4>>2]-1;ca=-2147483648;return 0}ca=c;return d}function Hi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,g=0,h=0,i=0;g=ba-16|0;ba=g;a:{b:{c:{if(!b){break c}e=rb(c);if(e>>>0>=2147483632){break b}d:{e:{if(e>>>0>=11){f=(e|15)+1|0;a=oa(f);J[g+8>>2]=f|-2147483648;J[g>>2]=a;J[g+4>>2]=e;f=a+e|0;break e}H[g+11|0]=e;f=e+g|0;a=g;if(!e){break d}}ua(a,c,e)}H[f|0]=0;h=ba-16|0;ba=h;O[h+8>>3]=d;f=ba-48|0;ba=f;e=ob(b,g);if((e|0)!=(b+4|0)){a=J[e+4>>2];f:{if(!a){a=e;while(1){c=J[a+8>>2];i=J[c>>2]!=(a|0);a=c;if(i){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],e);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}na(e)}a=oa(8);J[f>>2]=a;c=a+8|0;J[f+8>>2]=c;J[f+4>>2]=c;c=J[h+12>>2];e=J[h+8>>2];H[a|0]=e;H[a+1|0]=e>>>8;H[a+2|0]=e>>>16;H[a+3|0]=e>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;g:{if(H[g+11|0]>=0){J[f+24>>2]=J[g+8>>2];a=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=a;break g}Ga(f+16|0,J[g>>2],J[g+4>>2])}Ob(f+28|0,f);a=f+16|0;Cc(f+40|0,b,a,a);a=J[f+28>>2];if(a){J[f+32>>2]=a;na(a)}if(H[f+27|0]<0){na(J[f+16>>2])}a=J[f>>2];if(a){J[f+4>>2]=a;na(a)}ba=f+48|0;ba=h+16|0;if(H[g+11|0]>=0){break c}na(J[g>>2])}ba=g+16|0;a=(b|0)!=0;break a}gb();B()}return a|0}function ze(a,b){var c=0,d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;J[a+8>>2]=b;J[a>>2]=0;c=a+12|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+60>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;c=a- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;g=a+140|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+116>>2]=0;J[a+120>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=1;break a}c=b<<2;d=oa(c);J[a+104>>2]=d;f=c+d|0;J[a+112>>2]=f;pa(d,0,c);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;d=oa(c);J[a+116>>2]=d;f=c+d|0;J[a+124>>2]=f;pa(d,0,c);J[a+136>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=f;d=oa(c);J[a+128>>2]=d;f=c+d|0;J[a+136>>2]=f;pa(d,0,c);J[a+132>>2]=f;d=oa(c);J[e>>2]=d;f=c+d|0;J[e+8>>2]=f;pa(d,0,c);J[e+4>>2]=f;c=b<<5|1}Jb(g,c,e);d=J[e>>2];if(d){J[e+4>>2]=d;na(d)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;d=oa(b);J[e>>2]=d;f=b+d|0;J[e+8>>2]=f;pa(d,0,b);J[e+4>>2]=f}Jb(a+152|0,c,e);b=J[e>>2];if(b){J[e+4>>2]=b;na(b)}ba=e+16|0;return a}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;da[J[J[b>>2]+64>>2]](a,b);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}g=J[b+48>>2];c=oa(32);J[f>>2]=c;J[f+4>>2]=29;J[f+8>>2]=-2147483616;d=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);e=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[c+21|0]=e;H[c+22|0]=e>>>8;H[c+23|0]=e>>>16;H[c+24|0]=e>>>24;H[c+25|0]=d;H[c+26|0]=d>>>8;H[c+27|0]=d>>>16;H[c+28|0]=d>>>24;d=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);e=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);e=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);e=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+29|0]=0;c=Pb(g,f,0);if(H[f+11|0]<0){na(J[f>>2])}if(c){da[J[J[b>>2]+68>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ba=f+16|0}function db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{c:{d:{if(b){if(b>>>0>=1073741824){break d}d=oa(b<<2);c=J[a>>2];J[a>>2]=d;if(c){na(c)}J[a+4>>2]=b;c=0;if(b>>>0>=4){d=b&-4;while(1){g=c<<2;J[g+J[a>>2]>>2]=0;J[J[a>>2]+(g|4)>>2]=0;J[J[a>>2]+(g|8)>>2]=0;J[J[a>>2]+(g|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=b&3;if(d){while(1){J[J[a>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}d=J[a+8>>2];if(!d){break a}c=a+8|0;f=J[d+4>>2];e=Kl(b);if(e>>>0<2){break c}f=b>>>0<=f>>>0?(f>>>0)%(b>>>0)|0:f;J[J[a>>2]+(f<<2)>>2]=c;c=J[d>>2];if(!c){break a}if(e>>>0<=1){break b}while(1){e=J[c+4>>2];if(e>>>0>=b>>>0){e=(e>>>0)%(b>>>0)|0}e:{if((f|0)==(e|0)){d=c;break e}h=e<<2;g=h+J[a>>2]|0;if(!J[g>>2]){J[g>>2]=d;d=c;f=e;break e}J[d>>2]=J[c>>2];J[c>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c}c=J[d>>2];if(c){continue}break}break a}b=J[a>>2];J[a>>2]=0;if(b){na(b)}J[a+4>>2]=0;break a}xa();B()}f=b-1&f;J[J[a>>2]+(f<<2)>>2]=c;c=J[d>>2];if(!c){break a}}g=b-1|0;while(1){b=g&J[c+4>>2];f:{if((b|0)==(f|0)){d=c;break f}h=b<<2;e=h+J[a>>2]|0;if(J[e>>2]){J[d>>2]=J[c>>2];J[c>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c;break f}J[e>>2]=d;d=c;f=b}c=J[d>>2];if(c){continue}break}}}function cb(a){var b=0,c=0,d=0,e=0,f=0;e=ba-16|0;ba=e;b=oa(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);d=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);d=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;f=Bb(a,e,-1);if(H[e+11|0]<0){na(J[e>>2])}b=oa(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);d=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);d=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;a=Bb(a,e,-1);if(H[e+11|0]<0){na(J[e>>2])}ba=e+16|0;a=(a|0)<(f|0)?f:a;return(a|0)==-1?5:a}function ei(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;ff(a,b,c);c=J[a+84>>2];d=J[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=J[a+92>>2];c=J[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){J[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}J[a+88>>2]=c;break b}d:{b=c;c=J[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0<h>>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=oa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){J[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=ta(j,c,i);J[a+88>>2]=f;J[a+84>>2]=b;J[a+92>>2]=b+(e<<2);if(c){na(c)}break b}qa();B()}xa();B()}return}if(b>>>0>=d>>>0){break a}J[a+88>>2]=c+(b<<2)}}function ie(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=J[a+8>>2];e=J[a>>2];if(c-e>>3>>>0>=2){f=J[a+4>>2];h=f-e>>3;d=h>>>0>=2?2:h;b:{if(!d){break b}c=e;g=d;i=d&7;if(i){while(1){k=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=k;g=g-1|0;c=c+8|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(d>>>0<8){break b}while(1){d=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=d;d=J[b+4>>2];J[c+8>>2]=J[b>>2];J[c+12>>2]=d;d=J[b+4>>2];J[c+16>>2]=J[b>>2];J[c+20>>2]=d;d=J[b+4>>2];J[c+24>>2]=J[b>>2];J[c+28>>2]=d;d=J[b+4>>2];J[c+32>>2]=J[b>>2];J[c+36>>2]=d;d=J[b+4>>2];J[c+40>>2]=J[b>>2];J[c+44>>2]=d;d=J[b+4>>2];J[c+48>>2]=J[b>>2];J[c+52>>2]=d;d=J[b+4>>2];J[c+56>>2]=J[b>>2];J[c+60>>2]=d;c=c- -64|0;g=g-8|0;if(g){continue}break}}if(h>>>0<2){c=(2-h<<3)+f|0;while(1){e=J[b+4>>2];J[f>>2]=J[b>>2];J[f+4>>2]=e;f=f+8|0;if((c|0)!=(f|0)){continue}break}J[a+4>>2]=c;return}break a}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;c=0}e=c>>>2|0;e=c>>>0>=2147483640?536870911:e>>>0<=2?2:e;if(e>>>0<536870912){c=e<<3;e=oa(c);J[a>>2]=e;J[a+8>>2]=c+e;d=J[b>>2];g=J[b+4>>2];c=e;b=0;while(1){J[c>>2]=d;J[c+4>>2]=g;c=c+8|0;b=b+1|0;if((b|0)!=2){continue}break}break a}qa();B()}J[a+4>>2]=e+16}function we(a,b){var c=0,d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;J[a+8>>2]=b;J[a>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+28>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+48>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+68>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+88>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;g=a+128|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+104>>2]=0;J[a+108>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;e=1;break a}e=b<<2;c=oa(e);J[a+92>>2]=c;f=c+e|0;J[a+100>>2]=f;pa(c,0,e);J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+96>>2]=f;c=oa(e);J[a+104>>2]=c;f=c+e|0;J[a+112>>2]=f;pa(c,0,e);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;c=oa(e);J[a+116>>2]=c;f=c+e|0;J[a+124>>2]=f;pa(c,0,e);J[a+120>>2]=f;c=oa(e);J[d>>2]=c;f=c+e|0;J[d+8>>2]=f;pa(c,0,e);J[d+4>>2]=f;e=b<<5|1}Jb(g,e,d);c=J[d>>2];if(c){J[d+4>>2]=c;na(c)}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if(b){b=b<<2;c=oa(b);J[d>>2]=c;f=b+c|0;J[d+8>>2]=f;pa(c,0,b);J[d+4>>2]=f}Jb(a+140|0,e,d);b=J[d>>2];if(b){J[d+4>>2]=b;na(b)}ba=d+16|0;return a}function Ji(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ba-16|0;ba=f;a:{b:{c:{if(!b){break c}e=rb(c);if(e>>>0>=2147483632){break b}d:{e:{if(e>>>0>=11){g=(e|15)+1|0;a=oa(g);J[f+8>>2]=g|-2147483648;J[f>>2]=a;J[f+4>>2]=e;g=a+e|0;break e}H[f+11|0]=e;g=e+f|0;a=f;if(!e){break d}}ua(a,c,e)}H[g|0]=0;g=ba-16|0;ba=g;J[g+12>>2]=d;e=ba-48|0;ba=e;d=ob(b,f);if((d|0)!=(b+4|0)){a=J[d+4>>2];f:{if(!a){a=d;while(1){c=J[a+8>>2];h=J[c>>2]!=(a|0);a=c;if(h){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;na(a)}if(H[d+27|0]<0){na(J[d+16>>2])}na(d)}a=oa(4);J[e>>2]=a;c=a+4|0;J[e+8>>2]=c;J[e+4>>2]=c;c=J[g+12>>2];H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;g:{if(H[f+11|0]>=0){J[e+24>>2]=J[f+8>>2];a=J[f+4>>2];J[e+16>>2]=J[f>>2];J[e+20>>2]=a;break g}Ga(e+16|0,J[f>>2],J[f+4>>2])}Ob(e+28|0,e);a=e+16|0;Cc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;na(a)}ba=e+48|0;ba=g+16|0;if(H[f+11|0]>=0){break c}na(J[f>>2])}ba=f+16|0;a=(b|0)!=0;break a}gb();B()}return a|0}function wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a>>2];if(d-e>>2>>>0>=b>>>0){f=J[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){J[d>>2]=J[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){J[f>>2]=J[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}J[a+4>>2]=b;return}J[a+4>>2]=e+(b<<2);return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=oa(d);J[a>>2]=e;J[a+8>>2]=d+e;c=J[c>>2];d=e;g=b&7;if(g){while(1){J[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d+28>>2]=c;J[d+24>>2]=c;J[d+20>>2]=c;J[d+16>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}qa();B()}function Ma(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){J[d>>2]=J[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{i=J[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=oa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){J[d>>2]=J[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;J[f>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[a+8>>2]=(h<<2)+k;J[a+4>>2]=g;J[a>>2]=f;if(i){na(i)}return}qa();B()}xa();B()}function kg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b=J[a+12>>2];c=J[b+4>>2];b=J[b>>2];if((c|0)!=(b|0)){b=c-b>>2;j=b>>>0<=1?1:b;k=a+140|0;while(1){b:{if(Fc(J[a+12>>2],(e>>>0)/3|0)){break b}b=J[a+12>>2];if(J[J[b+12>>2]+(e<<2)>>2]!=-1){break b}f=J[a+152>>2];d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)!=-1){b=J[J[b>>2]+(d<<2)>>2]}else{b=-1}c=b<<2;if(J[f+c>>2]!=-1){break b}g=-1;h=J[a+144>>2];b=h;d=J[a+148>>2];if((b|0)==d<<5){if((h+1|0)<0){break a}if(h>>>0<=1073741822){b=d<<6;d=(h&-32)+32|0;b=b>>>0>d>>>0?b:d}else{b=2147483647}wc(k,b);f=J[a+152>>2];g=J[c+f>>2];b=J[a+144>>2]}J[a+144>>2]=b+1;d=J[a+140>>2]+(b>>>3&536870908)|0;i=J[d>>2];m=d,n=Ll(b)&i,J[m>>2]=n;if((g|0)!=-1){break b}c=c+f|0;i=J[a+12>>2];b=e;while(1){d=b;J[c>>2]=h;b=-1;g=-1;c:{if((d|0)==-1){break c}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break c}l=J[i+12>>2];while(1){d=J[(c<<2)+l>>2];if((d|0)!=-1){c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)!=-1){continue}break c}break}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){g=J[J[i>>2]+(b<<2)>>2]}b=c}c=(g<<2)+f|0;if(J[c>>2]==-1){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}}return 1}qa();B()}function mb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=J[(J[J[a+8>>2]+96>>2]+P(f,12)|0)+(c-P(f,3)<<2)>>2];a:{h=J[J[a+12>>2]+4>>2];e=J[h+4>>2];if((e|0)!=J[h+8>>2]){J[e>>2]=j;J[h+4>>2]=e+4;break a}b:{i=J[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=oa(g<<2)}else{f=0}d=k+f|0;J[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[h+8>>2]=f+(g<<2);J[h+4>>2]=j;J[h>>2]=d;if(i){na(i)}break a}qa();B()}xa();B()}c:{d:{h=J[a+4>>2];e=J[h+4>>2];e:{if((e|0)!=J[h+8>>2]){J[e>>2]=c;J[h+4>>2]=e+4;break e}i=J[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=oa(g<<2)}else{f=0}d=f+(j<<2)|0;J[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[h+8>>2]=f+(g<<2);J[h+4>>2]=c;J[h>>2]=d;if(!i){break e}na(i)}a=J[a+4>>2];J[J[a+12>>2]+(b<<2)>>2]=J[a+24>>2];J[a+24>>2]=J[a+24>>2]+1;return}qa();B()}xa();B()}function $g(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ba-16|0;ba=i;J[a+4>>2]=0;J[a+8>>2]=0;d=a+16|0;J[d>>2]=0;J[d+4>>2]=0;J[a>>2]=a+4;g=a+28|0;J[g>>2]=0;J[g+4>>2]=0;J[a+12>>2]=d;J[a+24>>2]=g;if((b+4|0)!=(a|0)){ic(a,J[b+4>>2],b+8|0)}d=a+24|0;if((d|0)!=(b+28|0)){ic(d,J[b+28>>2],b+32|0)}J[i+12>>2]=0;h=J[c+12>>2];f=J[c+8>>2];a:{if((h-f|0)<=0){break a}g=b+20|0;if(!J[g>>2]){break a}while(1){b=J[g>>2];b:{if(!b){break b}j=J[J[(e<<2)+f>>2]+56>>2];d=g;while(1){k=(j|0)>J[b+16>>2];d=k?d:b;b=J[(k?b+4|0:b)>>2];if(b){continue}break}if((d|0)==(g|0)|(j|0)<J[d+16>>2]){break b}h=d+20|0;e=ba-48|0;ba=e;j=J[i+12>>2];d=a+16|0;f=J[d>>2];c:{d:{if(!f){break d}b=d;while(1){k=(j|0)>J[f+16>>2];b=k?b:f;f=J[(k?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(d|0)){break d}if((j|0)>=J[b+16>>2]){break c}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=j;J[e+12>>2]=b;d=e+8|0;Oc(e+40|0,a+12|0,d,d);b=J[e+40>>2];Da(d|4,J[e+16>>2]);Da(f,J[e+28>>2])}b=b+20|0;if((b|0)!=(h|0)){ic(b,J[h>>2],h+4|0)}ba=e+48|0;f=J[c+8>>2];h=J[c+12>>2];e=J[i+12>>2]}e=e+1|0;J[i+12>>2]=e;if(h-f>>2>(e|0)){continue}break}}ba=i+16|0}function Yg(a,b,c){var d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;d=oa(16);J[f>>2]=d;J[f+4>>2]=14;J[f+8>>2]=-2147483632;g=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);e=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[d+6|0]=e;H[d+7|0]=e>>>8;H[d+8|0]=e>>>16;H[d+9|0]=e>>>24;H[d+10|0]=g;H[d+11|0]=g>>>8;H[d+12|0]=g>>>16;H[d+13|0]=g>>>24;g=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);e=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[d|0]=e;H[d+1|0]=e>>>8;H[d+2|0]=e>>>16;H[d+3|0]=e>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+14|0]=0;d=a+4|0;vb(d,f,b);if(H[f+11|0]<0){na(J[f>>2])}a=oa(16);J[f>>2]=a;J[f+4>>2]=14;J[f+8>>2]=-2147483632;e=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);b=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[a+6|0]=b;H[a+7|0]=b>>>8;H[a+8|0]=b>>>16;H[a+9|0]=b>>>24;H[a+10|0]=e;H[a+11|0]=e>>>8;H[a+12|0]=e>>>16;H[a+13|0]=e>>>24;e=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);b=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[a|0]=b;H[a+1|0]=b>>>8;H[a+2|0]=b>>>16;H[a+3|0]=b>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+14|0]=0;vb(d,f,c);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=J[a+8>>2];i=J[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){H[f|0]=K[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=f;if((j|0)>0){break a}return}k=J[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=oa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=ua(g,c,h)+h|0}d=ta(e,k,j);c=i-b|0;b=ta(g,b,c);J[a+8>>2]=e+f;J[a+4>>2]=b+c;J[a>>2]=d;if(k){na(k)}return}qa();B()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){H[e|0]=K[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}J[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;ta(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){H[e|0]=K[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){H[e|0]=K[c|0];H[e+1|0]=K[c+1|0];H[e+2|0]=K[c+2|0];H[e+3|0]=K[c+3|0];H[e+4|0]=K[c+4|0];H[e+5|0]=K[c+5|0];H[e+6|0]=K[c+6|0];H[e+7|0]=K[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function La(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=J[a+112>>2];e=J[a+116>>2];h=(b|e)!=0;c=b;d=J[a+4>>2];g=J[a+44>>2];b=d-g|0;i=b;f=b+J[a+120>>2]|0;b=J[a+124>>2]+(b>>31)|0;a:{b=f>>>0<i>>>0?b+1|0:b;if(!((c>>>0<=f>>>0&(b|0)>=(e|0)|(b|0)>(e|0))&h)){e=ba-16|0;ba=e;d=-1;c=J[a+72>>2];J[a+72>>2]=c-1|c;if(J[a+20>>2]!=J[a+28>>2]){da[J[a+36>>2]](a,0,0)|0}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c=J[a>>2];b:{if(c&4){J[a>>2]=c|32;c=-1;break b}g=J[a+44>>2]+J[a+48>>2]|0;J[a+8>>2]=g;J[a+4>>2]=g;c=c<<27>>31}c:{if(c){break c}if((da[J[a+32>>2]](a,e+15|0,1)|0)!=1){break c}d=K[e+15|0]}ba=e+16|0;e=d;if((d|0)>=0){break a}g=J[a+44>>2];d=J[a+4>>2]}J[a+112>>2]=-1;J[a+116>>2]=-1;J[a+104>>2]=d;e=g-d|0;d=e+f|0;b=(e>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0<e>>>0?b+1|0:b;return-1}d=f+1|0;b=d?b:b+1|0;h=J[a+4>>2];g=J[a+8>>2];c=J[a+116>>2];i=c;f=J[a+112>>2];d:{if(!(c|f)){break d}c=f-d|0;f=i-(b+(d>>>0>f>>>0)|0)|0;j=g-h|0;i=j>>31;if((f|0)>=(i|0)&c>>>0>=j>>>0|(f|0)>(i|0)){break d}g=c+h|0}J[a+104>>2]=g;f=J[a+44>>2];c=f-h|0;d=c+d|0;b=(c>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0<c>>>0?b+1|0:b;if(f>>>0>=h>>>0){H[h-1|0]=e}return e}function yc(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{b:{f=a+16|0;d=J[f>>2];if(!d){break b}g=J[b>>2];b=f;while(1){e=(g|0)>J[d+16>>2];b=e?b:d;d=J[(e?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(f|0)|(g|0)<J[b+16>>2]){break b}d=J[b+24>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0<a>>>0;c:{d:{e:{f:{g:{h:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ba(f,c,e);if(h){break h}if(a>>>0>=b>>>0){break g}break c}if(a>>>0>=b>>>0){break f}break c}if((h|0)<0){break c}}b=Ba(c,f,e);if(b){break e}}if(g){break d}return 1}if((b|0)<0){break d}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}break a}d=J[a+4>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0<a>>>0;i:{j:{k:{l:{m:{n:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ba(f,c,e);if(h){break n}if(a>>>0>=b>>>0){break m}break i}if(a>>>0>=b>>>0){break l}break i}if((h|0)<0){break i}}b=Ba(c,f,e);if(b){break k}}if(g){break j}return 1}if((b|0)<0){break j}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}}return 0}function ua(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){aa(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0<e>>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0<c>>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0<a>>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0<e>>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Zf(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=10532;c=J[a+280>>2];J[a+280>>2]=0;if(c){d=c-4|0;b=J[d>>2];if(b){b=c+(b<<5)|0;while(1){b=wa(b-32|0);if((c|0)!=(b|0)){continue}break}}na(d)}b=J[a+268>>2];if(b){J[a+272>>2]=b;na(b)}b=J[a+244>>2];J[a+244>>2]=0;if(b){na(b)}b=J[a+232>>2];if(b){J[a+236>>2]=b;na(b)}wa(a+200|0);b=J[a+184>>2];if(b){J[a+188>>2]=b;na(b)}c=J[a+172>>2];if(c){d=c;b=J[a+176>>2];if((c|0)!=(b|0)){while(1){d=b-136|0;e=J[d+116>>2];if(e){J[b-16>>2]=e;na(e)}e=J[b-32>>2];if(e){J[b-28>>2]=e;na(e)}pc(b-132|0);b=d;if((c|0)!=(b|0)){continue}break}d=J[a+172>>2]}J[a+176>>2]=c;na(d)}b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+140>>2];if(b){na(b)}b=J[a+128>>2];if(b){while(1){c=J[b>>2];na(b);b=c;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){na(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){na(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){qc(b)}return a|0}function Hc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=-1;a:{if((b|0)==-1){h=J[a+12>>2];d=1;g=-1;break a}h=J[a+12>>2];b:{c:{if((b>>>0)%3|0){e=b-1|0;break c}e=b+2|0;if((e|0)!=-1){break c}d=1;break b}g=J[h+12>>2];while(1){f=e;d=J[g+(e<<2)>>2];if((d|0)!=-1){f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){continue}}break}d=(d|0)!=-1;g=-1;if((b|0)==-1){break a}}g=J[J[h>>2]+(b<<2)>>2]}b=0;if(c){b=J[a+84>>2]+(g>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<g;b=1}c=J[J[a+152>>2]+(g<<2)>>2];e=J[a+140>>2]+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<<c;c=-1;d:{if(d){break d}e:{if((f>>>0)%3|0){e=f-1|0;break e}e=f+2|0;c=-1;if((e|0)==-1){break d}}c=J[J[h>>2]+(e<<2)>>2]}if((g|0)!=(c|0)){i=J[a+84>>2];while(1){a=f;f=(c>>>3&536870908)+i|0;J[f>>2]=J[f>>2]|1<<c;f=-1;c=-1;f:{if((a|0)==-1){break f}d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)==-1){break f}e=J[h+12>>2];while(1){a=J[e+(d<<2)>>2];if((a|0)!=-1){d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)!=-1){continue}break f}break}g:{if((d>>>0)%3|0){e=d-1|0;break g}e=d+2|0;if((e|0)!=-1){break g}f=-3;break f}c=J[J[h>>2]+(e<<2)>>2];f=d}b=b+1|0;if((c|0)!=(g|0)){continue}break}}}function Qb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{g=J[a+124>>2];c:{if(!g){break c}e=J[a+120>>2];i=Kl(g);h=g-1&d;d:{if(i>>>0<=1){break d}h=d;if(d>>>0<g>>>0){break d}h=(d>>>0)%(g>>>0)|0}e=J[e+(h<<2)>>2];if(!e){break c}f=J[e>>2];if(!f){break c}e:{if(i>>>0<=1){e=g-1|0;while(1){g=J[f+4>>2];f:{if((g|0)!=(d|0)){if((h|0)==(e&g)){break f}break c}if(J[f+8>>2]==(d|0)){break e}}f=J[f>>2];if(f){continue}break}break c}while(1){e=J[f+4>>2];g:{if((e|0)!=(d|0)){if(e>>>0>=g>>>0){e=(e>>>0)%(g>>>0)|0}if((e|0)==(h|0)){break g}break c}if(J[f+8>>2]==(d|0)){break e}}f=J[f>>2];if(f){continue}break}break c}f=J[f+12>>2];if((f|0)==-1){break c}g=c&1;c=J[a+112>>2];if((c|0)!=J[a+116>>2]){H[c+8|0]=g;J[c+4>>2]=b;J[c>>2]=f;J[a+112>>2]=c+12;return}d=J[a+108>>2];i=c-d|0;c=(i|0)/12|0;e=c+1|0;if(e>>>0>=357913942){break b}h=c<<1;e=c>>>0>=178956970?357913941:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=357913942){break a}h=oa(P(e,12))}else{h=0}c=h+P(c,12)|0;H[c+8|0]=g;J[c+4>>2]=b;J[c>>2]=f;b=ta(c+P((i|0)/-12|0,12)|0,d,i);J[a+116>>2]=h+P(e,12);J[a+112>>2]=c+12;J[a+108>>2]=b;if(!d){break c}na(d)}return}qa();B()}xa();B()}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{i=J[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=oa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=ta(k,i,j);J[a+4>>2]=e;J[a>>2]=b;J[a+8>>2]=b+(g<<2);if(i){na(i)}return}qa();B()}xa();B()}function cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=J[c>>2];m=J[c+4>>2];a:{if((f|0)==(m|0)){h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;c=0;break a}o=J[b>>2];h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;if((i|0)<=0){c=0;while(1){e=J[(J[f>>2]<<2)+o>>2];c=c>>>0>e>>>0?c:e+1|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}break a}c=i>>>2|0;c=c>>>0<=1?1:c;q=c&1073741822;r=c&1;c=0;s=i>>>0<8;while(1){e=J[f>>2];k=e<<2;l=J[o+k>>2];if(l>>>0>=c>>>0){c=0;j=0;if(!s){while(1){p=c<<2;d=J[p+b>>2];g=J[d+68>>2];d=K[d+84|0]?e:J[g+k>>2];n=g;g=l<<2;J[n+g>>2]=d;n=g;d=J[(p|4)+b>>2];g=J[d+68>>2];J[n+g>>2]=K[d+84|0]?e:J[g+k>>2];c=c+2|0;j=j+2|0;if((q|0)!=(j|0)){continue}break}}if(r){c=J[(c<<2)+b>>2];d=J[c+68>>2];j=d+(l<<2)|0;if(!K[c+84|0]){e=J[d+k>>2]}J[j>>2]=e}c=l+1|0}f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=0;if((i|0)>0){while(1){b=J[(d<<2)+b>>2];H[b+84|0]=0;f=J[b+68>>2];e=J[b+72>>2]-f>>2;b:{if(e>>>0<c>>>0){Ma(b+68|0,c-e|0,15024);h=J[a+12>>2];break b}if(c>>>0>=e>>>0){break b}J[b+72>>2]=f+(c<<2)}d=d+1|0;b=J[a+8>>2];if((d|0)<h-b>>2){continue}break}}}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+4>>2]=b;d=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=d;a:{if((da[J[J[a>>2]+32>>2]](a)|0)==1&J[J[a+8>>2]+28>>2]-1>>>0>5){break a}f=J[b+48>>2];d=ba-16|0;ba=d;J[d+12>>2]=c;b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1529];c=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=jb(f,d+12|0,d,-1);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0;c=da[J[J[a>>2]+48>>2]](a,(b|0)==-1?-1:b>>>0>6?-2:b)|0;b=J[a+36>>2];J[a+36>>2]=c;e=1;if(b){da[J[J[b>>2]+4>>2]](b);c=J[a+36>>2]}if(!c){break a}if(da[J[J[a>>2]+36>>2]](a,c)|0){break a}b=J[a+36>>2];J[a+36>>2]=0;if(!b){break a}da[J[J[b>>2]+4>>2]](b)}return e|0}function md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]&127}if(e>>>0<b>>>0){h=ba-16|0;ba=h;g=b-e|0;if(g){f=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){b=J[a+4>>2]}else{b=K[a+11|0]&127}i=b+g|0;if(f-b>>>0<g>>>0){b:{d=ba-16|0;ba=d;c=i-f|0;if(c>>>0<=2147483631-f>>>0){if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}if(f>>>0<1073741799){J[d+12>>2]=f<<1;J[d>>2]=c+f;c=ba-16|0;ba=c;ba=c+16|0;c=d+12|0;c=J[(M[d>>2]<M[c>>2]?c:d)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Ac(d,c);c=J[d>>2];if(b){Ab(c,e,b)}if((f|0)!=10){na(e)}J[a>>2]=c;J[a+8>>2]=J[a+8>>2]&-2147483648|J[d+4>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;ba=d+16|0;break b}gb();B()}}if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}b=e+b|0;d=ba-16|0;ba=d;H[d+15|0]=0;while(1){if(g){H[b|0]=K[d+15|0];g=g-1|0;b=b+1|0;continue}break}ba=d+16|0;ld(a,i);H[h+15|0]=0;H[e+i|0]=K[h+15|0]}ba=h+16|0;break a}if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}d=ba-16|0;ba=d;ld(a,b);H[d+15|0]=0;H[b+e|0]=K[d+15|0];ba=d+16|0}}function kf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;a:{d=rd(a);b:{if(!d){a=0;break b}e=J[a+100>>2];g=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=e-g|0;c=(b|0)/12|0;c:{if((e|0)==(g|0)){break c}if(c>>>0>=357913942){break a}e=oa(b);J[f>>2]=e;J[f+8>>2]=e+P(c,12);a=0;h=e;e=b-12|0;b=(e-((e>>>0)%12|0)|0)+12|0;e=pa(h,0,b);J[f+4>>2]=b+e;if(K[d+84|0]){d=c>>>0<=1?1:c;i=d&1;if(c>>>0>=2){j=d&-2;c=0;while(1){b=P(a,12);d=b+g|0;h=J[d>>2];k=J[d+4>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=h;J[b+4>>2]=k;b=P(a|1,12);d=b+g|0;h=J[d>>2];k=J[d+4>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=h;J[b+4>>2]=k;a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break c}c=P(a,12);a=c+g|0;g=J[a+4>>2];d=J[a>>2];c=c+e|0;J[c+8>>2]=J[a+8>>2];J[c>>2]=d;J[c+4>>2]=g;break c}i=c>>>0<=1?1:c;a=J[d+68>>2];c=0;while(1){b=P(c,12);d=b+g|0;j=J[a+(J[d>>2]<<2)>>2];h=J[a+(J[d+4>>2]<<2)>>2];b=b+e|0;J[b+8>>2]=J[a+(J[d+8>>2]<<2)>>2];J[b+4>>2]=h;J[b>>2]=j;c=c+1|0;if((i|0)!=(c|0)){continue}break}}a=mf(f);c=J[f>>2];if(!c){break b}J[f+4>>2]=c;na(c)}ba=f+16|0;return a}qa();B()}function Kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(J[a+64>>2]){break a}c=oa(32);J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;d=J[a+64>>2];J[a+64>>2]=c;if(!d){break a}c=J[d>>2];if(c){J[d+4>>2]=c;na(c)}na(d)}d=J[a+64>>2];c=J[a+28>>2]-1|0;if(c>>>0<=10){i=J[(c<<2)+14832>>2]}else{i=-1}c=P(i,K[a+24|0]);i=c;k=c>>31;c=Hl(c,k,b,0);b:{if((ca|0)<0){break b}c:{f=J[d+4>>2];e=J[d>>2];g=f-e|0;d:{if(c>>>0>g>>>0){j=c-g|0;h=J[d+8>>2];if(j>>>0<=h-f>>>0){l=d,m=pa(f,0,j)+j|0,J[l+4>>2]=m;break d}if((c|0)<0){break c}f=h-e|0;h=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=oa(f);pa(h+g|0,0,j);g=ta(h,e,g);J[d+8>>2]=g+f;J[d+4>>2]=c+g;J[d>>2]=g;if(!e){break d}na(e);break d}if(c>>>0>=g>>>0){break d}J[d+4>>2]=c+e}c=J[d+28>>2];e=J[d+24>>2]+1|0;c=e?c:c+1|0;J[d+24>>2]=e;J[d+28>>2]=c;e=1;break b}qa();B()}if(e){c=J[a+64>>2];J[a>>2]=c;d=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=d;d=J[c+24>>2];c=J[c+28>>2];J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=i;J[a+44>>2]=k;J[a+16>>2]=d;J[a+20>>2]=c;J[a+80>>2]=b}}function _g(a,b,c){var d=0,e=Q(0),f=0,g=Q(0),h=0,i=0,j=Q(0),k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!(J[a+4>>2]!=-1|c-1>>>0>29)){J[a+4>>2]=c;h=K[b+24|0];c=0;J[a+20>>2]=0;if(h){d=h<<2;c=oa(d);f=pa(c,0,d)+d|0}d=J[a+8>>2];if(d){J[a+12>>2]=d;na(d)}J[a+8>>2]=c;J[a+16>>2]=f;J[a+12>>2]=f;d=h<<2;k=oa(d);o=oa(d);d=J[b+40>>2];s=J[b+44>>2];p=d;l=J[b+48>>2];m=J[b>>2];ua(c,l+J[m>>2]|0,d);n=ua(k,l+J[m>>2]|0,d);b=J[b+80>>2];a:{if(!(!h|b>>>0<2)){k=b;d=1;c=0;while(1){b=J[m>>2];f=Hl(d,c,p,s)+l|0;t=ua(o,b+f|0,p);u=J[a+8>>2];f=0;b=0;while(1){i=b<<2;q=t+i|0;e=N[q>>2];if(e!=e){break a}r=i+u|0;if(N[r>>2]>e){N[r>>2]=e;e=N[q>>2]}i=i+n|0;if(N[i>>2]<e){N[i>>2]=e}b=b+1|0;if((h|0)!=(b|0)){continue}break}d=d+1|0;c=d?c:c+1|0;if((d|0)!=(k|0)|c){continue}break}}e=N[a+20>>2];if(h){c=J[a+8>>2];f=0;b=0;while(1){d=b<<2;g=N[d+c>>2];if(g!=g|Q(R(g))==Q(Infinity)){break a}j=N[d+n>>2];if(j!=j|Q(R(j))==Q(Infinity)){break a}g=Q(j-g);if(g>e){N[a+20>>2]=g;e=g}b=b+1|0;if((h|0)!=(b|0)){continue}break}}f=1;if(e!=Q(0)){break a}J[a+20>>2]=1065353216}na(o);na(n)}return f}function va(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;A(+a);d=v(1)|0;b=v(0)|0;c=d>>>16|0;f=d-1072604335|0;if((f|0)==135337|f>>>0<135337){if(!b&(d|0)==1072693248){return 0}g=O[1879];a=a+-1;A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);h=+z();i=g*h;e=a*a;j=e*(a*O[1888]+O[1887]);k=i+j;l=e*e;return k+(l*(l*(e*(a*O[1896]+O[1895])+(a*O[1894]+O[1893]))+(e*(a*O[1892]+O[1891])+(a*O[1890]+O[1889])))+((a-h)*g+a*O[1880]+(j+(i-k))))}a:{if(c-32752>>>0<=4294934559){if(!(d&2147483647|b)){b=ba-16|0;O[b+8>>3]=-1;return O[b+8>>3]/0}if(!b&(d|0)==2146435072){break a}if(!(!(c&32768)&(c&32752)!=32752)){a=a-a;return a/a}A(+(a*4503599627370496));d=v(1)|0;b=v(0)|0;d=d-54525952|0}c=d-1072037888|0;f=c;c=(c>>>14&63)<<4;g=O[c+15184>>3]+ +(f>>20);h=O[1879];a=O[c+15176>>3];x(0,b-0|0);x(1,d-((f&-1048576)+(b>>>0<m>>>0)|0)|0);a=a*(+z()-O[c+16200>>3]-O[c+16208>>3]);A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);i=+z();j=h*i;k=g+j;e=a*a;a=k+(e*(e*e*(a*O[1886]+O[1885])+(e*(a*O[1884]+O[1883])+(a*O[1882]+O[1881])))+((a-i)*h+O[1880]*a+(j+(g-k))))}return a}function Ib(a,b,c){var d=0,e=0,f=0,g=0,h=0;e=32-b|0;c=c<<e;a:{b:{d=J[a+16>>2];f=32-d|0;c:{if((f|0)>=(b|0)){b=b+d|0;J[a+16>>2]=b;f=J[a+12>>2]|c>>>d;J[a+12>>2]=f;if((b|0)!=32){break c}b=J[a+4>>2];d:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break d}c=b;b=J[a>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<e>>>0?e:d;if(d){if(d>>>0>=1073741824){break a}e=oa(d<<2)}else{e=0}g=e+(g<<2)|0;J[g>>2]=f;c=ta(e,b,c);J[a+8>>2]=c+(d<<2);J[a+4>>2]=g+4;J[a>>2]=c;if(!b){break d}na(b)}J[a+12>>2]=0;J[a+16>>2]=0;return}b=b-f|0;J[a+16>>2]=b;g=c>>>e|0;f=J[a+12>>2]|g>>>b;J[a+12>>2]=f;b=J[a+4>>2];e:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break e}c=b;b=J[a>>2];c=c-b|0;h=c>>2;d=h+1|0;if(d>>>0>=1073741824){break b}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<e>>>0?e:d;if(d){if(d>>>0>=1073741824){break a}e=oa(d<<2)}else{e=0}h=e+(h<<2)|0;J[h>>2]=f;c=ta(e,b,c);J[a+8>>2]=c+(d<<2);J[a+4>>2]=h+4;J[a>>2]=c;if(!b){break e}na(b)}J[a+12>>2]=g<<32-J[a+16>>2]}return}qa();B()}xa();B()}function sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);H[b+12|0]=c;a:{if(c){break a}while(1){d=J[b+8>>2];if(K[d+12|0]){break a}b:{c=J[d+8>>2];e=J[c>>2];if((e|0)==(d|0)){e=J[c+4>>2];if(!(!e|K[e+12|0])){break b}c:{if(J[d>>2]==(b|0)){b=d;break c}b=J[d+4>>2];a=J[b>>2];J[d+4>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b>>2]=d;J[d+8>>2]=b;c=J[b+8>>2];d=J[c>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;return}if(!(K[e+12|0]|!e)){break b}d:{if(J[d>>2]!=(b|0)){b=d;break d}a=J[b+4>>2];J[d>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b+4>>2]=d;J[d+8>>2]=b;c=J[b+8>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[c+4>>2];b=J[a>>2];J[c+4>>2]=b;if(b){J[b+8>>2]=c}J[a+8>>2]=J[c+8>>2];b=J[c+8>>2];J[((J[b>>2]!=(c|0))<<2)+b>>2]=a;J[a>>2]=c;J[c+8>>2]=a;break a}H[d+12|0]=1;H[c+12|0]=(a|0)==(c|0);H[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Jl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=S(d)-S(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}ca=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Gl(d)|0;ca=0;break a}if(!(c-1&c)){break f}h=(S(c)+33|0)-S(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}ca=0;a=(b>>>0)/(d>>>0)|0;break a}e=S(d)-S(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Gl(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<<c)-1&b)<<32-c|a>>>c}ca=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<<f)-1&b)<<32-f|a>>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<<f;a=0}else{b=(1<<f)-1&a>>>32-f|b<<f;a=a<<f}if(h){f=d-1|0;g=c-1|0;m=(g|0)!=-1?f+1|0:f;while(1){j=e<<1|i>>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0<k>>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}ca=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ca=b}return a}function Lg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=ba-16|0;ba=j;J[j+8>>2]=0;J[j>>2]=0;J[j+4>>2]=0;a:{b:{e=c+1|0;if(e){if(e>>>0>=1073741824){break b}h=oa(e<<2);pa(h,0,(c<<2)+4|0)}c:{if((b|0)<=0){break c}e=0;if(b>>>0>=4){k=b&-4;while(1){f=e<<2;i=(J[f+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|4)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|8)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;f=(J[(f|12)+a>>2]<<2)+h|0;J[f>>2]=J[f>>2]+1;e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=b&3;if(!f){break c}while(1){k=(J[(e<<2)+a>>2]<<2)+h|0;J[k>>2]=J[k>>2]+1;e=e+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}e=0;if((c|0)<0){a=0;break a}o=+(b|0);a=0;while(1){b=J[(e<<2)+h>>2];if((b|0)>0){n=+(b|0);g=n*va(n/o)+g;a=a+1|0}b=(c|0)==(e|0);e=e+1|0;if(!b){continue}break}break a}qa();B()}if(d){J[d>>2]=a}if(h){na(h)}g=-g;d:{if(R(g)<0x8000000000000000){b=R(g)>=1?~~(g>0?T(V(g*2.3283064365386963e-10),4294967295):W((g-+(~~g>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~g>>>0;break d}b=-2147483648;a=0}ba=j+16|0;ca=b;return a}function Ig(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;hc(a,h,c,g,e,g);d=d-g|0;hc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}\nfunction zg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;_b(a,h,c,g,e,g);d=d-g|0;_b(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function yg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Zb(a,h,c,g,e,g);d=d-g|0;Zb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function wg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Yb(a,h,c,g,e,g);d=d-g|0;Yb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function vg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Xb(a,h,c,g,e,g);d=d-g|0;Xb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ug(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Wb(a,h,c,g,e,g);d=d-g|0;Wb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function tg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Vb(a,h,c,g,e,g);d=d-g|0;Vb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function sg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Ub(a,h,c,g,e,g);d=d-g|0;Ub(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function rg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Tb(a,h,c,g,e,g);d=d-g|0;Tb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function qg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Sb(a,h,c,g,e,g);d=d-g|0;Sb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Hg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;gc(a,h,c,g,e,g);d=d-g|0;gc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Gg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;fc(a,h,c,g,e,g);d=d-g|0;fc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Fg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;ec(a,h,c,g,e,g);d=d-g|0;ec(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Eg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;dc(a,h,c,g,e,g);d=d-g|0;dc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Dg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;cc(a,h,c,g,e,g);d=d-g|0;cc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Cg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;bc(a,h,c,g,e,g);d=d-g|0;bc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Bg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;ac(a,h,c,g,e,g);d=d-g|0;ac(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Ag(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;$b(a,h,c,g,e,g);d=d-g|0;$b(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function zj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ba-16|0;ba=g;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+28>>2]-J[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=h;J[e>>2]=c;if(!d){break b}na(d)}b=J[a+12>>2];c=J[b+28>>2];b=J[b+24>>2];J[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=J[d>>2];c=J[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){jc(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}J[a+100>>2]=e+(b<<2)}e=a+8|0;b=J[a+116>>2];d:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){c=1;break d}b=0;while(1){c=Xf(e,J[(b<<2)+d>>2]);if(!c){break d}f=J[a+116>>2];d=J[f>>2];b=b+1|0;if(b>>>0<J[f+4>>2]-d>>2>>>0){continue}break}break d}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=Xf(e,P(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ba=g+16|0;return c|0}qa();B()}function Zk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[b+88>>2];if(!(!c|J[c>>2]!=1)){e=J[c+8>>2];J[a+4>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);f=a+8|0;d=K[b+24|0];h=J[a+8>>2];g=J[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){Fa(f,d-g|0);d=K[b+24|0];e=J[c+8>>2];break a}if(d>>>0>=g>>>0){break a}J[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=J[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;J[g+f>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[f+(g|4)>>2]=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[f+(g|8)>>2]=K[c+8|0]|K[c+9|0]<<8|(K[c+10|0]<<16|K[c+11|0]<<24);J[f+(g|12)>>2]=K[c+12|0]|K[c+13|0]<<8|(K[c+14|0]<<16|K[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;J[f+(d<<2)>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;J[d+20>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);d=1}return d|0}function Le(a,b,c,d){var e=0,f=0,g=0,h=0;g=ba-32|0;ba=g;e=d&2147483647;h=e;f=e-1006698496|0;e=e-1140785152|0;a:{if((f|0)==(e|0)&0|e>>>0>f>>>0){e=c<<4|b>>>28;c=d<<4|c>>>28;b=b&268435455;if((b|0)==134217728&(a|0)!=0|b>>>0>134217728){f=c+1073741824|0;e=e+1|0;f=e?f:f+1|0;break a}f=c+1073741824|0;if(a|(b|0)!=134217728){break a}a=e&1;e=a+e|0;f=a>>>0>e>>>0?f+1|0:f;break a}if(!(!c&(h|0)==2147418112?!(a|b):h>>>0<2147418112)){a=d<<4|c>>>28;e=c<<4|b>>>28;f=a&524287|2146959360;break a}e=0;f=2146435072;if(h>>>0>1140785151){break a}f=0;h=h>>>16|0;if(h>>>0<15249){break a}e=d&65535|65536;Pa(g+16|0,a,b,c,e,h-15233|0);Gb(g,a,b,c,e,15361-h|0);b=J[g+8>>2];e=b<<4;b=J[g+12>>2]<<4|b>>>28;c=J[g>>2];f=J[g+4>>2];h=f;e=f>>>28|e;f=b;a=h&268435455;b=c|(J[g+16>>2]|J[g+24>>2]|(J[g+20>>2]|J[g+28>>2]))!=0;if((a|0)==134217728&(b|0)!=0|a>>>0>134217728){e=e+1|0;f=e?f:f+1|0;break a}if(b|(a|0)!=134217728){break a}a=e;e=e+(e&1)|0;f=a>>>0>e>>>0?f+1|0:f}ba=g+32|0;x(0,e|0);x(1,d&-2147483648|f);return+z()}function nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;n=b+68|0;i=J[b+68>>2];e=J[b+72>>2]-i>>2;a:{if(e>>>0<d>>>0){Ma(n,d-e|0,11424);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=e>>>0){break a}J[b+72>>2]=i+(d<<2)}b=J[c+100>>2];e=J[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=J[k+28>>2];f=J[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=J[c>>2];if(g>>>0>=d>>>0){break b}j=J[J[a+72>>2]+12>>2];h=J[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=J[n>>2];J[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=J[g+4>>2];if((h|0)==-1){break b}l=J[c+4>>2];if(l>>>0>=d>>>0){break b}h=J[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}J[f+(l<<2)>>2]=h;g=J[g+8>>2];if((g|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}j=J[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}J[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+P(b,12)|0;l=P(b,3);f=J[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=J[d+80>>2];e=ba-48|0;ba=e;a=J[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=J[J[d>>2]>>2]+J[d+48>>2]|0;J[e+16>>2]=a;a=-1<<a;J[e+20>>2]=a^-1;a=-2-a|0;J[e+24>>2]=a;J[e+32>>2]=(a|0)/2;N[e+28>>2]=Q(2)/Q(a|0);f=J[c>>2];if((f|0)!=J[c+4>>2]){a=0;d=0;while(1){g=J[(d<<2)+f>>2];h=e+36|0;k=J[J[b>>2]>>2];l=J[b+48>>2];f=J[b+40>>2];i=J[b+44>>2];if(!K[b+84|0]){g=J[J[b+68>>2]+(g<<2)>>2]}g=Hl(f,i,g,0);i=g;g=g+l|0;ua(h,g+k|0,f);Uf(e+16|0,h,e+12|0,e+8|0);f=a<<2;J[f+j>>2]=J[e+12>>2];J[(f|4)+j>>2]=J[e+8>>2];a=a+2|0;d=d+1|0;f=J[c>>2];if(d>>>0<J[c+4>>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=J[J[b>>2]>>2];i=J[b+48>>2];c=J[b+40>>2];f=Hl(c,J[b+44>>2],K[b+84|0]?a:J[J[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;ua(k,f+l|0,c);Uf(e+16|0,k,e+12|0,e+8|0);c=d<<2;J[c+j>>2]=J[e+12>>2];J[(c|4)+j>>2]=J[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ba=e+48|0;return m>>>0<29|0}function yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ba-16|0;ba=k;if(J[c+28>>2]==9){d=J[a+4>>2];h=K[c+24|0];e=h<<2;f=oa(e);l=k+8|0;J[l>>2]=1065353216;i=N[a+20>>2];d=-1<<d^-1;if((d|0)>0){N[l>>2]=i/Q(d|0)}o=(d|0)>0;a:{if(!o){break a}j=J[c+80>>2];if(!j){break a}if(h){p=J[J[b>>2]>>2]+J[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=J[a+8>>2];i=N[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;N[g+f>>2]=Q(i*Q(J[q>>2]))+N[g+m>>2];g=g|4;N[g+f>>2]=Q(i*Q(J[q+4>>2]))+N[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;N[d+f>>2]=Q(i*Q(J[(b<<2)+p>>2]))+N[d+m>>2];b=b+1|0}ua(J[J[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){ua(J[J[c+64>>2]>>2]+b|0,f,e);b=b+e|0;ua(b+J[J[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}ua(J[J[c+64>>2]>>2]+b|0,f,e)}na(f)}ba=k+16|0;return o|0}function Aj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[a+12>>2];d=J[a+108>>2];e=J[d+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){Ma(m,e-f|0,11424);d=J[a+108>>2];e=J[d+80>>2];break a}if(e>>>0>=f>>>0){break a}J[b+72>>2]=h+(e<<2)}b=J[d+100>>2];f=J[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=J[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=J[c>>2];if((i|0)==-1){break b}g=J[d>>2];if(g>>>0>=e>>>0){break b}l=J[J[a+112>>2]+12>>2];j=J[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=j;g=J[c+4>>2];if((g|0)==-1){break b}j=J[d+4>>2];if(j>>>0>=e>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}J[i+(j<<2)>>2]=g;c=J[c+8>>2];if((c|0)==-1){break b}d=J[d+8>>2];if(d>>>0>=e>>>0){break b}c=J[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}J[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=P(b,3);d=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function sj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[a+12>>2];d=J[a+68>>2];e=J[d+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){Ma(m,e-f|0,11424);d=J[a+68>>2];e=J[d+80>>2];break a}if(e>>>0>=f>>>0){break a}J[b+72>>2]=h+(e<<2)}b=J[d+100>>2];f=J[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=J[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=J[c>>2];if((i|0)==-1){break b}g=J[d>>2];if(g>>>0>=e>>>0){break b}l=J[J[a+72>>2]+12>>2];j=J[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=j;g=J[c+4>>2];if((g|0)==-1){break b}j=J[d+4>>2];if(j>>>0>=e>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}J[i+(j<<2)>>2]=g;c=J[c+8>>2];if((c|0)==-1){break b}d=J[d+8>>2];if(d>>>0>=e>>>0){break b}c=J[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}J[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=P(b,3);d=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ba+-64|0;ba=c;d=oa(80);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11692;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+76>>2]=0;J[d+72>>2]=b;J[d+68>>2]=i;J[d- -64>>2]=0;j=d+56|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[d+8>>2]=11856;e=J[a+12>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;f=c+24|0;J[f>>2]=0;J[f+4>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c>>2]=11856;J[c+4>>2]=e;g=J[e>>2];h=J[e+4>>2];H[c+63|0]=0;k=f;f=c+63|0;Na(k,(h-g>>2>>>0)/3|0,f);g=J[c+4>>2];h=J[g+28>>2];g=J[g+24>>2];H[c+63|0]=0;Na(c+36|0,h-g>>2,f);J[c+20>>2]=d;J[c+16>>2]=i;J[c+12>>2]=b;J[c+8>>2]=e;J[d+76>>2]=a+72;Kc(d+8|0,c);Rb(j,J[c+48>>2],J[c+52>>2]);J[c>>2]=11856;a=J[c+48>>2];if(a){J[c+52>>2]=a;na(a)}J[c>>2]=11672;a=J[c+36>>2];if(a){na(a)}a=J[c+24>>2];if(a){na(a)}ba=c- -64|0;return d}function Sa(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;a:{b:{if((e|0)<=(f|0)){if((a|0)==(b|0)){break b}f=g;e=a;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(b|0)){continue}break}if((f|0)==(g|0)){break b}d=J[d>>2];while(1){if((b|0)==(c|0)){ta(a,g,f-g|0);return}c:{e=J[d>>2];h=J[d+4>>2]-e>>3;i=J[b>>2];if(h>>>0<=i>>>0){break c}j=h;h=J[g>>2];if(j>>>0<=h>>>0){break c}j=h;k=i;i=J[e+(i<<3)>>2];e=J[e+(h<<3)>>2];h=i>>>0>=e>>>0;J[a>>2]=h?j:k;b=((e>>>0>i>>>0)<<2)+b|0;a=a+4|0;g=(h<<2)+g|0;if((g|0)!=(f|0)){continue}break b}break}ra();B()}if((b|0)==(c|0)){break b}f=g;e=b;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}if((f|0)==(g|0)){break b}while(1){if((a|0)==(b|0)){a=f-g|0;ta(c-a|0,g,a);return}i=J[d>>2];e=J[i>>2];h=J[i+4>>2]-e>>3;k=f-4|0;i=J[k>>2];if(h>>>0<=i>>>0){break a}j=h;l=b-4|0;h=J[l>>2];if(j>>>0<=h>>>0){break a}c=c-4|0;e=M[e+(i<<3)>>2]<M[e+(h<<3)>>2];J[c>>2]=e?h:i;b=e?l:b;f=e?f:k;if((g|0)!=(f|0)){continue}break}}return}ra();B()}function _c(a){var b=0,c=0,d=0,e=0;c=J[a+1176>>2];if(c){d=c;b=J[a+1180>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1176>>2]}J[a+1180>>2]=c;na(d)}c=J[a+1164>>2];if(c){d=c;b=J[a+1168>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1164>>2]}J[a+1168>>2]=c;na(d)}b=J[a+1152>>2];if(b){J[a+1156>>2]=b;na(b)}b=J[a+1140>>2];if(b){J[a+1144>>2]=b;na(b)}b=J[a+1128>>2];if(b){J[a+1132>>2]=b;na(b)}tb(a+1108|0);tb(a+1088|0);tb(a+1068|0);wa(a+1036|0);a=a+12|0;wa(a+992|0);wa(a+960|0);wa(a+928|0);wa(a+896|0);wa(a+864|0);wa(a+832|0);wa(a+800|0);wa(a+768|0);wa(a+736|0);wa(a+704|0);wa(a+672|0);wa(a+640|0);wa(a+608|0);wa(a+576|0);wa(a+544|0);wa(a+512|0);wa(a+480|0);wa(a+448|0);wa(a+416|0);wa(a+384|0);wa(a+352|0);wa(a+320|0);wa(a+288|0);wa(a+256|0);wa(a+224|0);wa(a+192|0);wa(a+160|0);wa(a+128|0);wa(a+96|0);wa(a- -64|0);wa(a+32|0);wa(a)}function Ed(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ba-32|0;ba=d;a:{b=J[a+16>>2];c=J[a+20>>2];if(!!b&(c|0)>=0|(c|0)>0){e=J[J[a+12>>2]+4>>2]+7|0;f=e>>>0<7?1:f;c=f>>>3|0;f=f<<29|e>>>3;if(K[a+24|0]){e=J[a+4>>2];J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;xb(f,c,d);c=e-b|0;e=c-8|0;b=J[d+4>>2]-J[d>>2]|0;ta(e+b|0,c,f);ua(e,J[d>>2],b);c=8-b|0;b=J[a+20>>2];e=c;c=c+J[a+16>>2]|0;b=e>>>0>c>>>0?b+1|0:b;J[a+16>>2]=c;J[a+20>>2]=b;b=J[d+12>>2];J[d+12>>2]=0;if(b){na(b)}b=J[d>>2];if(b){J[d+4>>2]=b;na(b)}b=J[a+16>>2]}b=f-b|0;g=J[a+4>>2];f=J[a>>2];e=g-f|0;c=b+e|0;b:{if(c>>>0>e>>>0){h=J[a+8>>2];if(h-g>>>0>=b>>>0){i=a,j=pa(g,0,b)+b|0,J[i+4>>2]=j;break b}if((c|0)<0){break a}g=h-f|0;h=g<<1;g=g>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=oa(g);pa(h+e|0,0,b);b=ta(h,f,e);J[a+8>>2]=b+g;J[a+4>>2]=b+c;J[a>>2]=b;if(!f){break b}na(f);break b}if(c>>>0>=e>>>0){break b}J[a+4>>2]=c+f}J[a+16>>2]=0;J[a+20>>2]=0}ba=d+32|0;return}qa();B()}function dj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=J[a+4>>2];b=J[b+12>>2]-J[b+8>>2]|0;a:{if((b|0)>3){b=0;while(1){if(da[J[J[a>>2]+36>>2]](a,b)|0){b=b+1|0;c=J[a+4>>2];c=J[c+12>>2]-J[c+8>>2]>>2;if((b|0)<(c|0)){continue}break a}break}return 0}c=b>>2}b=a+20|0;d=J[a+20>>2];e=J[a+24>>2]-d>>2;b:{if(e>>>0<c>>>0){Fa(b,c-e|0);break b}if(c>>>0>=e>>>0){break b}J[a+24>>2]=d+(c<<2)}f=J[a+8>>2];a=J[a+12>>2];if((f|0)==(a|0)){return 1}a=a-f>>2;j=a>>>0<=1?1:a;e=J[b>>2];b=0;while(1){a=J[(b<<2)+f>>2];d=J[a+8>>2];c=J[a+4>>2];c:{if((d|0)==(c|0)){break c}a=d-c>>2;d=a>>>0<=1?1:a;i=d&3;g=0;a=0;if(d-1>>>0>=3){k=d&-4;h=0;while(1){d=a<<2;J[e+(J[d+c>>2]<<2)>>2]=b;J[e+(J[c+(d|4)>>2]<<2)>>2]=b;J[e+(J[c+(d|8)>>2]<<2)>>2]=b;J[e+(J[c+(d|12)>>2]<<2)>>2]=b;a=a+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}if(!i){break c}while(1){J[e+(J[c+(a<<2)>>2]<<2)>>2]=b;a=a+1|0;g=g+1|0;if((g|0)!=(i|0)){continue}break}}b=b+1|0;if((j|0)!=(b|0)){continue}break}return 1}function ek(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+12>>2];i=J[a+8>>2];d=e-i>>2;b=K[b+24|0];a:{if(d>>>0<b>>>0){Fa(a+8|0,b-d|0);i=J[a+8>>2];e=J[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;J[a+12>>2]=e}b=0;f=J[c+8>>2];h=J[c+12>>2];j=J[c+20>>2];e=e-i|0;d=J[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0<g>>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}ua(i,d+J[c>>2]|0,e);d=J[c+20>>2];g=e;e=e+J[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;J[c+16>>2]=e;J[c+20>>2]=d;f=J[c+8>>2];h=J[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0<g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+J[c>>2]|0;J[a+20>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);d=J[c+20>>2];g=d;f=d;e=J[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;J[c+16>>2]=d;J[c+20>>2]=f;h=J[c+12>>2];if((f|0)>=(h|0)&d>>>0>=M[c+8>>2]|(f|0)>(h|0)){break b}f=K[d+J[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;J[c+16>>2]=e;J[c+20>>2]=d;if(f-1>>>0>29){break b}J[a+4>>2]=f;b=1}return b|0}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=J[a+4>>2];b:{if((f|0)!=J[a>>2]){c=f;break b}g=J[a+8>>2];c=J[a+12>>2];if(g>>>0<c>>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;ta(c,f,d);f=J[a+8>>2]}J[a+4>>2]=c;J[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=oa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){J[e>>2]=J[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=J[d+12>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=J[d+20>>2];J[e+24>>2]=J[d+24>>2];J[e+28>>2]=J[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=h;J[a+4>>2]=c;J[a>>2]=i;if(!f){break b}na(f);c=J[a+4>>2]}J[c-4>>2]=J[b>>2];J[a+4>>2]=J[a+4>>2]-4;return}xa();B()}function vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=c-b|0;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>>0){h=J[a+4>>2]-d|0;e=h+b|0;g=f>>>0>h>>>0?e:c;a:{if((g|0)==(b|0)){break a}k=(b^-1)+g|0;i=g-b&7;if(i){while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){H[d|0]=K[b|0];H[d+1|0]=K[b+1|0];H[d+2|0]=K[b+2|0];H[d+3|0]=K[b+3|0];H[d+4|0]=K[b+4|0];H[d+5|0]=K[b+5|0];H[d+6|0]=K[b+6|0];H[d+7|0]=K[b+7|0];d=d+8|0;b=b+8|0;if((g|0)!=(b|0)){continue}break}}if(f>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(g|0)){while(1){H[b|0]=K[e|0];b=b+1|0;e=e+1|0;if((e|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=d;return}if(d){J[a+4>>2]=d;na(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}b:{if((f|0)<0){break b}d=e<<1;e=e>>>0>=1073741823?2147483647:d>>>0>f>>>0?d:f;if((e|0)<0){break b}d=oa(e);J[a+4>>2]=d;J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=ua(d,b,f)+f|0}J[a+4>>2]=d;return}qa();B()}function Uf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+N[b>>2];k=+N[b+4>>2];l=+N[b+8>>2];g=R(j)+R(k)+R(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=J[a+16>>2];l=+(h|0);g=V(j*l+.5);b:{if(R(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=V(k*l+.5);c:{if(R(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=J[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=J[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}J[c>>2]=a;J[d>>2]=b}function ge(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;i=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;h=K[e+27|0];f=h<<24>>24<0;e=f?J[e+20>>2]:h;h=e>>>0<g>>>0;d:{e:{f:{g:{j=h?e:g;h:{if(j){f=f?J[c+16>>2]:c+16|0;k=Ba(i,f,j);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ba(f,i,j);if(e){break e}}if(h){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=oa(40);g=e+16|0;d=J[d>>2];i:{if(H[d+11|0]>=0){i=J[d+4>>2];J[g>>2]=J[d>>2];J[g+4>>2]=i;J[g+8>>2]=J[d+8>>2];break i}Ga(g,J[d>>2],J[d+4>>2])}J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[e+36>>2]=0;J[e+28>>2]=0;J[e+32>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}sb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function rc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ba-32|0;ba=d;h=J[b>>2]+J[a+40>>2]|0;e=J[a+32>>2];c=e-4194304|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=e;g=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c+1|0]=e+16384>>>8;H[c|0]=e;g=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){c=J[a+24>>2]+J[a+28>>2]|0;H[c+2|0]=e+4194304>>>16;H[c+1|0]=e>>>8;H[c|0]=e;g=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){f=J[a+24>>2]+J[a+28>>2]|0;c=e-1077936128|0;H[f+3|0]=c>>>24;H[f+2|0]=c>>>16;H[f+1|0]=e>>>8;H[f|0]=e;g=J[a+28>>2]+4|0;break a}g=J[a+28>>2]}f=g;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=f>>31;xb(f,c,d);e=J[d+4>>2]-J[d>>2]|0;ta(e+h|0,h,f);ua(h,J[d>>2],e);h=J[a+40>>2];a=J[a+44>>2];f=e+f|0;c=a+(g>>>0>f>>>0?c+1|0:c)|0;a=f+h|0;Ia(b,a);a=J[d+12>>2];J[d+12>>2]=0;if(a){na(a)}a=J[d>>2];if(a){J[d+4>>2]=a;na(a)}ba=d+32|0}function yb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ba-32|0;ba=d;h=J[b>>2]+J[a+40>>2]|0;f=J[a+32>>2];c=f-16384|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=f;g=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c|0]=f;H[c+1|0]=f>>>8;g=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){e=J[a+24>>2]+J[a+28>>2]|0;c=f+8372224|0;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;g=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){e=J[a+24>>2]+J[a+28>>2]|0;c=f-1073758208|0;H[e+3|0]=c>>>24;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;g=J[a+28>>2]+4|0;break a}g=J[a+28>>2]}e=g;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=e>>31;xb(e,c,d);f=J[d+4>>2]-J[d>>2]|0;ta(f+h|0,h,e);ua(h,J[d>>2],f);h=J[a+40>>2];a=J[a+44>>2];e=e+f|0;c=a+(g>>>0>e>>>0?c+1|0:c)|0;a=e+h|0;Ia(b,a);a=J[d+12>>2];J[d+12>>2]=0;if(a){na(a)}a=J[d>>2];if(a){J[d+4>>2]=a;na(a)}ba=d+32|0}function ii(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0;a:{if(J[c+28>>2]!=9|K[c+24|0]!=3){break a}a=J[a+4>>2];if(a-2>>>0>28){break a}o=1;j=J[c+80>>2];if(!j){break a}k=Q(Q(2)/Q((1<<a)-2|0));c=J[J[c>>2]>>2]+J[c+48>>2]|0;a=J[J[b>>2]>>2]+J[b+48>>2]|0;b=0;while(1){g=Q(0);l=Q(0);m=Q(0);e=Q(Q(Q(J[a>>2])*k)+Q(-1));f=Q(Q(Q(J[a+4>>2])*k)+Q(-1));i=Q(Q(Q(1)-Q(R(e)))-Q(R(f)));h=Q(U(Q(-i),Q(0)));n=Q(-h);f=Q(f+(f<Q(0)?h:n));e=Q(e+(e<Q(0)?h:n));h=Q(Q(f*f)+Q(Q(i*i)+Q(e*e)));if(!(+h<1e-6)){g=Q(Q(1)/Q(Y(h)));m=Q(f*g);l=Q(e*g);g=Q(i*g)}a=a+8|0;d=(C(m),v(2));H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;d=(C(l),v(2));H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;d=(C(g),v(2));H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;b=J[J[a+184>>2]+(b<<2)>>2];H[c+15|0]=b;e=J[J[a+4>>2]+44>>2];d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],c+15|0,c+16|0);b=K[c+15|0]}a:{b:{c:{if(b<<24>>24<0){e=J[a+68>>2];break c}b=J[J[a+172>>2]+P(b&255,136)>>2];d=da[J[J[a>>2]+40>>2]](a)|0;f=J[a+172>>2]+P(H[c+15|0],136)|0;e=J[f+132>>2];d:{switch(J[J[J[d+56>>2]+84>>2]+(b<<2)>>2]){case 0:break c;case 1:break d;default:break b}}if(!K[f+28|0]){break b}}b=J[J[a+4>>2]+44>>2];H[c+14|0]=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+14|0,c+15|0);break a}b=J[J[a+4>>2]+44>>2];H[c+13|0]=1;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+13|0,c+14|0)}a=J[J[a+4>>2]+44>>2];H[c+12|0]=e;b=J[a+20>>2];if(!J[a+16>>2]&(b|0)<=0|(b|0)<0){sa(a,J[a+4>>2],c+12|0,c+13|0)}ba=c+16|0;return 1}function Cc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;h=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;e=K[e+27|0];f=e<<24>>24<0;e=f?J[c+20>>2]:e;j=e>>>0<g>>>0;d:{e:{f:{g:{i=j?e:g;h:{if(i){f=f?J[c+16>>2]:c+16|0;k=Ba(h,f,i);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ba(f,h,i);if(e){break e}}if(j){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=oa(40);J[e+24>>2]=J[d+8>>2];g=J[d+4>>2];h=J[d>>2];J[e+16>>2]=h;J[e+20>>2]=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;Ob(e+28|0,d+12|0);J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}sb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function El(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=1;a:{b:{c:{if((da[J[J[b>>2]+20>>2]](b)|0)<=0){break c}while(1){e=Nb(J[J[a+4>>2]+4>>2],da[J[J[b>>2]+24>>2]](b,i)|0);j=(e|0)!=-1;if((e|0)==-1){break c}c=J[a+20>>2];d:{if((c|0)!=J[a+24>>2]){J[c>>2]=e;J[a+20>>2]=c+4;break d}f=c;c=J[a+16>>2];d=f-c|0;h=d>>2;g=h+1|0;if(g>>>0>=1073741824){break b}f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0<f>>>0?f:g;if(g){if(g>>>0>=1073741824){break a}f=oa(g<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=e;d=ta(f,c,d);J[a+24>>2]=d+(g<<2);J[a+20>>2]=h+4;J[a+16>>2]=d;if(!c){break d}na(c)}c=J[a+4>>2];e:{if((e|0)<0){break e}d=J[c+4>>2];if(J[d+12>>2]-J[d+8>>2]>>2<=(e|0)){break e}c=J[J[c+8>>2]+(J[J[c+20>>2]+(e<<2)>>2]<<2)>>2];da[J[J[c>>2]+32>>2]](c,e)|0}i=i+1|0;if((da[J[J[b>>2]+20>>2]](b)|0)>(i|0)){continue}break}}return j|0}qa();B()}xa();B()}function Ta(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==(c|0)){J[a+4>>2]=d;J[a>>2]=d;return}if((c|0)==(d|0)){J[a+4>>2]=c;J[a>>2]=b;return}a:{if((b+4|0)==(c|0)){f=J[b>>2];e=b;b=d-c|0;c=ta(e,c,b)+b|0;J[c>>2]=f;break a}if((c+4|0)==(d|0)){f=d-4|0;e=J[f>>2];c=d;if((b|0)!=(f|0)){f=f-b|0;c=d-f|0;ta(c,b,f)}J[b>>2]=e;break a}g=c-b>>2;h=d-c>>2;if((g|0)==(h|0)){e=c;while(1){f=J[b>>2];J[b>>2]=J[e>>2];J[e>>2]=f;b=b+4|0;if((c|0)==(b|0)){break a}e=e+4|0;if((e|0)!=(d|0)){continue}break}break a}e=h;f=g;while(1){c=f;f=e;e=(c|0)%(e|0)|0;if(e){continue}break}if(f){e=(f<<2)+b|0;while(1){e=e-4|0;j=g<<2;c=e+j|0;k=J[e>>2];f=e;while(1){i=f;f=c;J[i>>2]=J[c>>2];i=c+j|0;c=d-c>>2;c=(c|0)>(g|0)?i:(g-c<<2)+b|0;if((e|0)!=(c|0)){continue}break}J[f>>2]=k;if((b|0)!=(e|0)){continue}break}}c=(h<<2)+b|0}J[a+4>>2]=d;J[a>>2]=c}function Kc(a,b){var c=0,d=0;c=J[b+8>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=c;J[a+20>>2]=J[b+20>>2];c=J[b+16>>2];J[a+12>>2]=J[b+12>>2];J[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=J[b+28>>2];if(c){d=J[a+24>>2];if(J[a+32>>2]<<5>>>0<c>>>0){if(d){na(d);J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;c=J[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=oa(c<<2);J[a+32>>2]=c;J[a+28>>2]=0;J[a+24>>2]=d;c=J[b+28>>2]}ta(d,J[b+24>>2],(c-1>>>3&536870908)+4|0);c=J[b+28>>2]}else{c=0}J[a+28>>2]=c;c=J[b+40>>2];if(c){d=J[a+36>>2];if(J[a+44>>2]<<5>>>0<c>>>0){if(d){na(d);J[a+44>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;c=J[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=oa(c<<2);J[a+44>>2]=c;J[a+40>>2]=0;J[a+36>>2]=d;c=J[b+40>>2]}ta(d,J[b+36>>2],(c-1>>>3&536870908)+4|0);b=J[b+40>>2]}else{b=0}J[a+40>>2]=b}return}qa();B()}qa();B()}function jf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;d=J[a+100>>2];e=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=d-e|0;g=(b|0)/12|0;a:{b:{if((d|0)==(e|0)){break b}if(g>>>0>=357913942){break a}d=oa(b);J[f>>2]=d;J[f+8>>2]=d+P(g,12);a=0;c=d;d=b-12|0;b=(d-((d>>>0)%12|0)|0)+12|0;d=pa(c,0,b);J[f+4>>2]=b+d;b=g>>>0<=1?1:g;j=b&1;if(g>>>0>=2){k=b&-2;g=0;while(1){c=P(a,12);b=c+e|0;h=J[b>>2];i=J[b+4>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=h;J[c+4>>2]=i;c=P(a|1,12);b=c+e|0;h=J[b>>2];i=J[b+4>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=h;J[c+4>>2]=i;a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break b}c=e;e=P(a,12);a=c+e|0;g=J[a+4>>2];b=J[a>>2];e=d+e|0;J[e+8>>2]=J[a+8>>2];J[e>>2]=b;J[e+4>>2]=g}e=mf(f);a=J[f>>2];if(a){J[f+4>>2]=a;na(a)}ba=f+16|0;return e}qa();B()}function dg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+112>>2];b=J[a+108>>2];c=(d-b|0)/12|0;Aa(c,J[J[a+4>>2]+44>>2]);if((b|0)!=(d|0)){f=c>>>0<=1?1:c;d=0;while(1){b=J[a+108>>2]+P(d,12)|0;Aa(J[b+4>>2]-g|0,J[J[a+4>>2]+44>>2]);Aa(J[b+4>>2]-J[b>>2]|0,J[J[a+4>>2]+44>>2]);g=J[b+4>>2];d=d+1|0;if((f|0)!=(d|0)){continue}break}d=0;Fd(J[J[a+4>>2]+44>>2],c,0,0);b=J[J[a+4>>2]+44>>2];e=!!J[b+16>>2];b=J[b+20>>2];if(e&(b|0)>=0|(b|0)>0){f=c>>>0<=1?1:c;while(1){c=J[J[a+4>>2]+44>>2];b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){g=K[(J[a+108>>2]+P(d,12)|0)+8|0];c=J[c+12>>2];e=J[c+4>>2];b=e>>>3|0;h=b+J[c>>2]|0;i=K[h|0];e=e&7;j=h,k=Ll(e)&i,H[j|0]=k;b=b+J[c>>2]|0;H[b|0]=K[b|0]|(g&1)<<e;J[c+4>>2]=J[c+4>>2]+1}d=d+1|0;if((f|0)!=(d|0)){continue}break}}Ed(J[J[a+4>>2]+44>>2])}return 1}function mj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+56>>2]-J[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=g;J[e>>2]=c;if(!d){break b}na(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Vf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0<J[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=J[J[a+12>>2]+64>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Vf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();B()}function rj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+28>>2]-J[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=g;J[e>>2]=c;if(!d){break b}na(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Wf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0<J[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Wf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();B()}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;J[d+12>>2]=c;a:{if(!me(a,b,c)|K[J[a+8>>2]+24|0]!=3){break a}f=J[b+48>>2];b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=jb(f,d+12|0,d,-1);if(H[d+11|0]<0){na(J[d>>2])}if((b|0)<=0){break a}J[a+44>>2]=b;g=1}ba=d+16|0;return g|0}function Oc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ba-16|0;ba=i;e=J[b+4>>2];a:{b:{if(!e){h=b+4|0;g=h;break b}f=J[c>>2];while(1){g=e;c=J[e+16>>2];if((c|0)>(f|0)){h=g;e=J[g>>2];if(e){continue}break b}if((c|0)>=(f|0)){f=g;b=0;break a}e=J[g+4>>2];if(e){continue}break}h=g+4|0}f=oa(32);c=J[d>>2];j=f+24|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[f+16>>2]=c;k=f+20|0;J[k>>2]=e;e=J[d+4>>2];d=d+8|0;if((e|0)!=(d|0)){while(1){c=e+16|0;Qg(i+8|0,k,j,c,c);c=J[e+4>>2];c:{if(c){while(1){e=c;c=J[e>>2];if(c){continue}break c}}while(1){c=e;e=J[e+8>>2];if((c|0)!=J[e>>2]){continue}break}}if((d|0)!=(e|0)){continue}break}}J[f+8>>2]=g;J[f>>2]=0;J[f+4>>2]=0;J[h>>2]=f;e=f;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[h>>2]}sb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=f;ba=i+16|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ba-16|0;ba=c;Aa(J[a+8>>2]-J[a+4>>2]>>2,b);e=J[a+4>>2];if((e|0)!=J[a+8>>2]){h=c+13|0;i=c+14|0;j=c+15|0;k=c+16|0;while(1){e=J[J[J[a+32>>2]+8>>2]+(J[(g<<2)+e>>2]<<2)>>2];H[c+15|0]=J[e+56>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+15|0,k);d=J[b+20>>2];f=J[b+16>>2];H[c+14|0]=J[e+28>>2];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+14|0,j);d=J[b+20>>2];f=J[b+16>>2];H[c+13|0]=K[e+24|0];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+13|0,i);d=J[b+20>>2];f=J[b+16>>2];H[c+12|0]=K[e+32|0];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,h)}Aa(J[e+60>>2],b);g=g+1|0;e=J[a+4>>2];if(g>>>0<J[a+8>>2]-e>>2>>>0){continue}break}}ba=c+16|0;return 1}function eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;g=ba-16|0;ba=g;a:{b:{c=J[a+4>>2];c:{if((c|0)!=J[a+8>>2]){J[c>>2]=J[a+12>>2];c=c+4|0;J[a+4>>2]=c;break c}e=J[a>>2];c=c-e|0;h=c>>2;d=h+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=J[a+12>>2];i=d<<2;d=ta(f,e,c);J[a+8>>2]=i+d;c=h+4|0;J[a+4>>2]=c;J[a>>2]=d;if(!e){break c}na(e);c=J[a+4>>2]}f=c;c=J[a>>2];J[g+12>>2]=f-c;e=J[b+20>>2];d:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break d}sa(b,J[b+4>>2],g+12|0,g+16|0);c=J[a>>2];e=J[b+20>>2];if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break d}sa(b,J[b+4>>2],c,J[g+12>>2]+c|0);c=J[a>>2]}J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=c;ba=g+16|0;return}qa();B()}xa();B()}function ta(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return ua(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0<b>>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}H[d|0]=K[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;H[d|0]=K[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;J[c+a>>2]=J[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;H[c+a|0]=K[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){J[d>>2]=J[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function hg(a,b,c){var d=0,e=0,f=0,g=0;a:{b=P(b,3);if((b|0)==-1){break a}b:{e=J[a+12>>2];f=J[e+12>>2];d=b<<2;c:{if(J[f+d>>2]==-1){break c}a=J[a+152>>2];e=J[e>>2];if(J[a+(J[e+d>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}g=1;a=b+1|0;b=(a>>>0)%3|0?a:b-2|0}J[c>>2]=b;return g}while(1){d:{a=b;e:{if((b>>>0)%3|0){b=a-1|0;break e}b=a+2|0;if((b|0)==-1){break d}}b=J[(b<<2)+f>>2];if((b|0)==-1){break d}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}}break}J[c>>2]=a+((a>>>0)%3|0?-1:2);return 0}J[c>>2]=-1;return 0}function Se(a,b,c){a:{switch(b-9|0){case 0:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];return;case 6:b=J[c>>2];J[c>>2]=b+4;b=I[b>>1];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 7:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=L[b>>1];J[a+4>>2]=0;return;case 8:b=J[c>>2];J[c>>2]=b+4;b=H[b|0];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 9:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=K[b|0];J[a+4>>2]=0;return;case 16:b=J[c>>2]+7&-8;J[c>>2]=b+8;O[a>>3]=O[b>>3];return;case 17:Qe(a,c);default:return;case 1:case 4:case 14:b=J[c>>2];J[c>>2]=b+4;b=J[b>>2];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];J[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=J[c>>2]+7&-8;J[c>>2]=b+8;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c}function _e(a,b,c,d,e,f){var g=0;g=ba-80|0;ba=g;a:{if((f|0)>=16384){Ea(g+32|0,b,c,d,e,0,0,0,2147352576);d=J[g+40>>2];e=J[g+44>>2];b=J[g+32>>2];c=J[g+36>>2];if(f>>>0<32767){f=f-16383|0;break a}Ea(g+16|0,b,c,d,e,0,0,0,2147352576);f=((f|0)>=49149?49149:f)-32766|0;d=J[g+24>>2];e=J[g+28>>2];b=J[g+16>>2];c=J[g+20>>2];break a}if((f|0)>-16383){break a}Ea(g- -64|0,b,c,d,e,0,0,0,7471104);d=J[g+72>>2];e=J[g+76>>2];b=J[g+64>>2];c=J[g+68>>2];if(f>>>0>4294934644){f=f+16269|0;break a}Ea(g+48|0,b,c,d,e,0,0,0,7471104);f=((f|0)<=-48920?-48920:f)+32538|0;d=J[g+56>>2];e=J[g+60>>2];b=J[g+48>>2];c=J[g+52>>2]}Ea(g,b,c,d,e,0,0,0,f+16383<<16);b=J[g+12>>2];J[a+8>>2]=J[g+8>>2];J[a+12>>2]=b;b=J[g+4>>2];J[a>>2]=J[g>>2];J[a+4>>2]=b;ba=g+80|0}function bd(a,b,c){var d=0,e=0,f=0;d=ba+-64|0;ba=d;f=J[a>>2];e=J[f-4>>2];f=J[f-8>>2];J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;H[d+55|0]=0;H[d+56|0]=0;H[d+57|0]=0;H[d+58|0]=0;H[d+59|0]=0;H[d+60|0]=0;H[d+61|0]=0;H[d+62|0]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+20>>2]=0;J[d+16>>2]=b;J[d+12>>2]=a;J[d+8>>2]=c;a=a+f|0;b=0;a:{if(pb(e,c,0)){J[d+56>>2]=1;da[J[J[e>>2]+20>>2]](e,d+8|0,a,a,1,0);b=J[d+32>>2]==1?a:0;break a}da[J[J[e>>2]+24>>2]](e,d+8|0,a,1,0);b:{switch(J[d+44>>2]){case 0:b=J[d+48>>2]==1?J[d+36>>2]==1?J[d+40>>2]==1?J[d+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[d+32>>2]!=1){if(J[d+48>>2]|J[d+36>>2]!=1|J[d+40>>2]!=1){break a}}b=J[d+24>>2]}ba=d- -64|0;return b}function Ca(a,b){var c=0,d=0,e=0,f=0;c=J[a>>2];a:{if(b){b=J[c+12>>2];d=J[c+8>>2]+1|0;b=d?b:b+1|0;J[c+8>>2]=d;J[c+12>>2]=b;b=J[a+28>>2];J[a+24>>2]=J[a+24>>2]|1<<b;break a}b=J[c+4>>2];d=J[c>>2]+1|0;b=d?b:b+1|0;J[c>>2]=d;J[c+4>>2]=b;b=J[a+28>>2]}b=b+1|0;J[a+28>>2]=b;b:{c:{if((b|0)==32){b=J[a+16>>2];d:{if((b|0)!=J[a+20>>2]){J[b>>2]=J[a+24>>2];J[a+16>>2]=b+4;break d}e=b;b=J[a+12>>2];c=e-b|0;f=c>>2;d=f+1|0;if(d>>>0>=1073741824){break c}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<e>>>0?e:d;if(d){if(d>>>0>=1073741824){break b}e=oa(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=J[a+24>>2];c=ta(e,b,c);J[a+20>>2]=c+(d<<2);J[a+16>>2]=f+4;J[a+12>>2]=c;if(!b){break d}na(b)}J[a+24>>2]=0;J[a+28>>2]=0}return}qa();B()}xa();B()}function pa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}H[a|0]=b;d=a+c|0;H[d-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[d-3|0]=b;H[d-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=P(b&255,16843009);J[e>>2]=b;d=c-d&-4;c=d+e|0;J[c-4>>2]=b;if(d>>>0<9){break a}J[e+8>>2]=b;J[e+4>>2]=b;J[c-8>>2]=b;J[c-12>>2]=b;if(d>>>0<25){break a}J[e+24>>2]=b;J[e+20>>2]=b;J[e+16>>2]=b;J[e+12>>2]=b;J[c-16>>2]=b;J[c-20>>2]=b;J[c-24>>2]=b;J[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Hl(b,0,1,1);f=ca;b=e+g|0;while(1){J[b+24>>2]=d;J[b+28>>2]=f;J[b+16>>2]=d;J[b+20>>2]=f;J[b+8>>2]=d;J[b+12>>2]=f;J[b>>2]=d;J[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function De(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{g=a+16|0;f=J[g>>2];b:{if(!f){break b}i=J[b>>2];b=g;while(1){h=(i|0)>J[f+16>>2];b=h?b:f;f=J[(h?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(g|0)|(i|0)<J[b+16>>2]){break b}f=J[b+24>>2];if(!f){break b}m=b+20|0;b=K[c+11|0];g=b<<24>>24<0;i=g?J[c>>2]:c;b=g?J[c+4>>2]:b;while(1){g=K[f+27|0];h=g<<24>>24<0;g=h?J[f+20>>2]:g;k=g>>>0<b>>>0;c:{d:{e:{f:{g:{h:{j=k?g:b;if(j){h=h?J[f+16>>2]:f+16|0;l=Ba(i,h,j);if(l){break h}if(b>>>0>=g>>>0){break g}break c}if(b>>>0>=g>>>0){break f}break c}if((l|0)<0){break c}}g=Ba(h,i,j);if(g){break e}}if(k){break d}break a}if((g|0)<0){break d}break a}f=f+4|0}f=J[f>>2];if(f){continue}break}}Be(a,c,d,e);return}Be(m,c,d,e)}function jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+16|0;e=J[f>>2];a:{if(!e){break a}g=J[b>>2];b=f;while(1){h=(g|0)>J[e+16>>2];b=h?b:e;e=J[(h?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(f|0)|(g|0)<J[b+16>>2]){break a}e=J[b+24>>2];if(!e){break a}g=b+20|0;b=K[c+11|0];f=b<<24>>24<0;h=f?J[c>>2]:c;b=f?J[c+4>>2]:b;while(1){f=K[e+27|0];i=f<<24>>24<0;f=i?J[e+20>>2]:f;k=f>>>0<b>>>0;b:{c:{d:{e:{f:{g:{j=k?f:b;if(j){i=i?J[e+16>>2]:e+16|0;l=Ba(h,i,j);if(l){break g}if(b>>>0>=f>>>0){break f}break b}if(b>>>0>=f>>>0){break e}break b}if((l|0)<0){break b}}f=Ba(i,h,j);if(f){break d}}if(k){break c}return Bb(g,c,d)}if((f|0)<0){break c}return Bb(g,c,d)}e=e+4|0}e=J[e>>2];if(e){continue}break}}return Bb(a,c,d)}function Fd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{e=J[a+20>>2];b:{if(!((!J[a+16>>2]&(e|0)<=0|(e|0)<0)&(!!b&(c|0)>=0|(c|0)>0))){break b}H[a+24|0]=d;e=b+7|0;c=e>>>0<7?c+1|0:c;e=(c&7)<<29|e>>>3;J[a+16>>2]=e;J[a+20>>2]=c>>>3;f=J[a+4>>2];h=J[a>>2];c=f-h|0;b=c+8|0;d=d?b:c;b=d+e|0;c:{if(b>>>0>c>>>0){e=b-c|0;g=J[a+8>>2];if(e>>>0<=g-f>>>0){i=a,j=pa(f,0,e)+e|0,J[i+4>>2]=j;break c}if((b|0)<0){break a}f=g-h|0;g=f<<1;f=f>>>0>=1073741823?2147483647:b>>>0<g>>>0?g:b;g=oa(f);pa(g+c|0,0,e);c=ta(g,h,c);J[a+8>>2]=c+f;J[a+4>>2]=b+c;J[a>>2]=c;if(!h){break c}na(h);break c}if(b>>>0>=c>>>0){break c}J[a+4>>2]=b+h}c=J[a>>2];b=oa(8);J[b+4>>2]=0;J[b>>2]=c+d;c=J[a+12>>2];J[a+12>>2]=b;if(!c){break b}na(c)}return}qa();B()}function Ce(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=J[e>>2];a:{if(!d){break a}f=J[b>>2];b=e;while(1){g=(f|0)>J[d+16>>2];b=g?b:d;d=J[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)<J[b+16>>2]){break a}d=J[b+24>>2];if(!d){break a}f=b+20|0;b=K[c+11|0];e=b<<24>>24<0;g=e?J[c>>2]:c;b=e?J[c+4>>2]:b;while(1){e=K[d+27|0];h=e<<24>>24<0;e=h?J[d+20>>2]:e;j=e>>>0<b>>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?J[d+16>>2]:d+16|0;k=Ba(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Ba(h,g,i);if(e){break d}}if(j){break c}return Dd(f,c)}if((e|0)<0){break c}return Dd(f,c)}d=d+4|0}d=J[d>>2];if(d){continue}break}}return Dd(a,c)}function td(a,b,c){var d=0,e=0,f=0,g=0;Aa(J[c+8>>2],b);e=J[c>>2];g=c+4|0;if((e|0)!=(g|0)){while(1){if(!hf(b,e+16|0)){return}d=J[e+32>>2]-J[e+28>>2]|0;Aa(d,b);f=J[b+20>>2];if(!J[b+16>>2]&(f|0)<=0|(f|0)<0){f=J[e+28>>2];sa(b,J[b+4>>2],f,d+f|0)}f=J[e+4>>2];a:{if(f){while(1){d=f;f=J[d>>2];if(f){continue}break a}}while(1){d=J[e+8>>2];f=J[d>>2]!=(e|0);e=d;if(f){continue}break}}e=d;if((d|0)!=(g|0)){continue}break}}Aa(J[c+20>>2],b);d=J[c+12>>2];c=c+16|0;if((d|0)==(c|0)){return}while(1){if(!hf(b,d+16|0)){return}td(a,b,J[d+28>>2]);f=d;e=J[d+4>>2];b:{if(e){while(1){d=e;e=J[d>>2];if(e){continue}break b}}while(1){d=J[f+8>>2];e=J[d>>2]!=(f|0);f=d;if(e){continue}break}}if((c|0)!=(d|0)){continue}break}}function kl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=J[b+4>>2]-J[b>>2]>>2;f=J[a+8>>2];i=K[f+24|0];d=i;g=ba+-64|0;ba=g;e=Lc(g);h=P(d,J[3712]);Nd(e,J[J[a+8>>2]+56>>2],0,d,5,h,h>>31);e=jg(oa(96),e);Kd(e,j);d=J[a+32>>2];J[a+32>>2]=e;if(d){Ka(d)}a:{if(!c){break a}d=J[a+32>>2];H[d+84|0]=0;h=J[d+68>>2];e=J[d+72>>2]-h>>2;if(e>>>0<c>>>0){Ma(d+68|0,c-e|0,2736);break a}if(c>>>0>=e>>>0){break a}J[d+72>>2]=h+(c<<2)}ba=g- -64|0;c=J[b>>2];d=J[b+4>>2];if((c|0)==(d|0)){return 1}a=J[a+32>>2];g=J[J[a>>2]>>2]+J[a+48>>2]|0;b=0;while(1){a=J[c>>2];if(!K[f+84|0]){a=J[J[f+68>>2]+(a<<2)>>2]}a=$c(f,a,H[f+24|0],g+(b<<2)|0);if(a){b=b+i|0;c=c+4|0;if((d|0)!=(c|0)){continue}}break}return a|0}function Rb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=J[a+8>>2];e=J[a>>2];if(h>>>0<=d-e>>2>>>0){d=J[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0<h>>>0?f:c;if((g|0)!=(b|0)){while(1){J[e>>2]=J[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){J[d>>2]=J[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}J[a+4>>2]=d;return}J[a+4>>2]=e;return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ua(d,c,b)+b|0}J[a+4>>2]=d;return}qa();B()}function Na(a,b,c){var d=0,e=0,f=0;e=ba-16|0;ba=e;J[a+4>>2]=0;a:{b:{if(!b){break b}f=J[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){J[a+4>>2]=b;break c}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0<f>>>0?f:d}else{d=2147483647}wc(e,d);f=J[a>>2];J[a>>2]=J[e>>2];J[e>>2]=f;d=J[a+4>>2];J[a+4>>2]=b;J[e+4>>2]=d;d=J[a+8>>2];J[a+8>>2]=J[e+8>>2];J[e+8>>2]=d;if(!f){break c}na(f)}d=b>>>5|0;a=J[a>>2];if(K[c|0]){if(b>>>0>=32){pa(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){pa(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}ba=e+16|0;return}qa();B()}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=ba-16|0;ba=h;a:{b:{c=J[a+8>>2];c:{if((c|0)!=J[a+12>>2]){J[c>>2]=b;J[a+8>>2]=c+4;break c}f=c;c=J[a+4>>2];e=f-c|0;g=e>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=b;e=ta(f,c,e);J[a+12>>2]=e+(d<<2);J[a+8>>2]=g+4;J[a+4>>2]=e;if(!c){break c}na(c)}c=J[a+16>>2];e=J[a+20>>2]-c>>2;d:{if((e|0)>(b|0)){break d}J[h+12>>2]=-1;d=b+1|0;if(d>>>0>e>>>0){jc(a+16|0,d-e|0,h+12|0);c=J[a+16>>2];break d}if(d>>>0>=e>>>0){break d}J[a+20>>2]=(d<<2)+c}J[(b<<2)+c>>2]=(J[a+8>>2]-J[a+4>>2]>>2)-1;ba=h+16|0;return}qa();B()}xa();B()}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ba-48|0;ba=d;J[d+40>>2]=J[a- -64>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+60>>2]+(e>>>3&536870908)>>2]>>>e|0;Ca(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)<J[d+40>>2]){continue}break}}ya(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;sa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+24>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}sa(b,J[b+4>>2],d+44|0,f)}wa(c);ba=d+48|0;return 1}function rh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ba-48|0;ba=d;J[d+40>>2]=J[a+80>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+76>>2]+(e>>>3&536870908)>>2]>>>e|0;Ca(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)<J[d+40>>2]){continue}break}}ya(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;sa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+16>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}sa(b,J[b+4>>2],d+44|0,f)}wa(c);ba=d+48|0;return 1}function Ic(a,b){var c=0,d=0,e=0,f=0,g=0;a:{b:{c:{e=J[a>>2];f=J[a+4>>2]-e>>2;c=f+1|0;if(c>>>0<1073741824){e=J[a+8>>2]-e|0;g=e>>>1|0;c=e>>>0>=2147483644?1073741823:c>>>0<g>>>0?g:c;if(c){if(c>>>0>=1073741824){break c}d=oa(c<<2)}e=J[b>>2];J[b>>2]=0;b=(f<<2)+d|0;J[b>>2]=e;c=(c<<2)+d|0;e=b+4|0;d=J[a+4>>2];f=J[a>>2];if((d|0)==(f|0)){break b}while(1){d=d-4|0;g=J[d>>2];J[d>>2]=0;b=b-4|0;J[b>>2]=g;if((d|0)!=(f|0)){continue}break}J[a+8>>2]=c;c=J[a+4>>2];J[a+4>>2]=e;d=J[a>>2];J[a>>2]=b;if((c|0)==(d|0)){break a}while(1){c=c-4|0;a=J[c>>2];J[c>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}if((c|0)!=(d|0)){continue}break}break a}qa();B()}xa();B()}J[a+8>>2]=c;J[a+4>>2]=e;J[a>>2]=b}if(d){na(d)}}function kd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0;i=ba-16|0;ba=i;if((b^-1)+2147483631>>>0>=c>>>0){if(K[a+11|0]>>>7|0){k=J[a>>2]}else{k=a}if(b>>>0<1073741799){J[i+12>>2]=b<<1;J[i>>2]=b+c;c=ba-16|0;ba=c;ba=c+16|0;c=i+12|0;c=J[(M[i>>2]<M[c>>2]?c:i)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Ac(i,c);c=J[i>>2];if(e){Ab(c,k,e)}if(g){Ab(c+e|0,h,g)}j=e+f|0;h=d-j|0;if((d|0)!=(j|0)){Ab((c+e|0)+g|0,(e+k|0)+f|0,h)}if((b|0)!=10){na(k)}J[a>>2]=c;J[a+8>>2]=J[a+8>>2]&-2147483648|J[i+4>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;b=a;a=h+(e+g|0)|0;J[b+4>>2]=a;H[i+12|0]=0;H[a+c|0]=K[i+12|0];ba=i+16|0;return}gb();B()}function Lk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;J[b>>2]=1;f=b+8|0;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Gc(f,d+4|0);c=J[f>>2]}c=c+d|0;d=J[a+4>>2];H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=J[a+8>>2];if((c|0)!=J[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=J[b+8>>2];e=J[b+12>>2]-c|0;if(e>>>0<=4294967291){Gc(f,e+4|0);c=J[f>>2]}c=c+e|0;e=J[g>>2];H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;d=d+1|0;c=J[a+8>>2];if(d>>>0<J[a+12>>2]-c>>2>>>0){continue}break}}c=J[b+12>>2];b=J[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Gc(f,c+4|0);b=J[f>>2]}b=b+c|0;a=J[a+20>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function bb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){f=J[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0<g>>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){ta(e,b,i)}if(g>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=e+i;return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ua(d,c,b)+b|0}J[a+4>>2]=d;return}qa();B()}function Xg(a,b,c){var d=0,e=0,f=0;d=ba-16|0;ba=d;J[d+12>>2]=b;b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);f=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=e;H[b+13|0]=e>>>8;H[b+14|0]=e>>>16;H[b+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);f=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=e;H[b+5|0]=e>>>8;H[b+6|0]=e>>>16;H[b+7|0]=e>>>24;H[b+17|0]=0;Wg(a+4|0,d+12|0,d,c);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0}function Ua(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{if((a|0)==(b|0)){break b}J[c>>2]=J[a>>2];e=a+4|0;if((e|0)==(b|0)){break b}a=J[d>>2];g=J[a>>2];i=J[a+4>>2]-g>>3;a=c;while(1){d=J[e>>2];if(d>>>0>=i>>>0){break a}f=J[a>>2];if(f>>>0>=i>>>0){break a}j=a+4|0;c:{if(M[(d<<3)+g>>2]<M[(f<<3)+g>>2]){J[a+4>>2]=f;h=c;d:{if((a|0)==(c|0)){break d}while(1){k=J[e>>2];if(k>>>0>=i>>>0){break a}f=a-4|0;d=J[f>>2];if(d>>>0>=i>>>0){break a}h=a;if(M[(k<<3)+g>>2]>=M[(d<<3)+g>>2]){break d}J[a>>2]=d;a=f;if((c|0)!=(a|0)){continue}break}h=c}J[h>>2]=J[e>>2];break c}J[j>>2]=d}a=j;e=e+4|0;if((e|0)!=(b|0)){continue}break}}return}ra();B()}function mk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=ba-32|0;ba=f;d=d-e|0;if((d|0)>0){i=a+8|0;k=0-e<<2;while(1){j=d<<2;g=j+b|0;h=g+k|0;l=J[h>>2];h=J[h+4>>2];m=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=m;J[f+8>>2]=l;J[f+12>>2]=h;Ya(f+24|0,i,f+16|0,f+8|0);g=c+j|0;J[g>>2]=J[f+24>>2];J[g+4>>2]=J[f+28>>2];d=d-e|0;if((d|0)>0){continue}break}}d=e>>>0>1073741823?-1:e<<2;d=pa(oa(d),0,d);e=J[d>>2];g=J[d+4>>2];i=J[b+4>>2];J[f+16>>2]=J[b>>2];J[f+20>>2]=i;J[f+8>>2]=e;J[f+12>>2]=g;Ya(f+24|0,a+8|0,f+16|0,f+8|0);J[c>>2]=J[f+24>>2];J[c+4>>2]=J[f+28>>2];na(d);ba=f+32|0;return 1}function qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ba-32|0;ba=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<4){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=lh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Ya(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ba=g+32|0;return i|0}ra();B()}function Ck(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ba-32|0;ba=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<4){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=qh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Ya(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ba=g+32|0;return i|0}ra();B()}function hi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;cf(a,b,c);e=J[a+96>>2];a=J[a+100>>2];a:{if((e|0)==(a|0)){break a}d=(a-e|0)/12|0;f=d>>>0<=1?1:d;g=f&1;a=J[b>>2];c=0;if(d>>>0>=2){f=f&-2;d=0;while(1){b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];b=P(c|1,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!g){break a}b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2]}}function Tg(a,b){var c=0,d=0,e=0,f=0;f=ba-16|0;ba=f;c=oa(16);J[f>>2]=c;J[f+4>>2]=15;J[f+8>>2]=-2147483632;d=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);e=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+7|0]=e;H[c+8|0]=e>>>8;H[c+9|0]=e>>>16;H[c+10|0]=e>>>24;H[c+11|0]=d;H[c+12|0]=d>>>8;H[c+13|0]=d>>>16;H[c+14|0]=d>>>24;d=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);e=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+15|0]=0;vb(a+4|0,f,b);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function Gi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=ba-16|0;ba=a;a:{if(!b){break a}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;h=b+96|0;g=J[b+96>>2];e=(J[b+100>>2]-g|0)/12|0;b:{if(e>>>0<c>>>0){of(h,c-e|0,a);break b}if(c>>>0<e>>>0){J[b+100>>2]=g+P(c,12)}if(!c){break a}}g=J[h>>2];e=0;while(1){i=P(e,12);f=i+d|0;j=J[f>>2];k=J[f+8>>2];l=J[f+4>>2];f=(J[b+100>>2]-g|0)/12|0;c:{if(f>>>0>e>>>0){e=e+1|0;break c}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=e+1|0;of(h,e-f|0,a);g=J[h>>2]}f=g+i|0;J[f+8>>2]=k;J[f+4>>2]=l;J[f>>2]=j;if((c|0)!=(e|0)){continue}break}}ba=a+16|0;return(b|0)!=0|0}function Hb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=1;j=d&2147483647;l=j;k=(j|0)==2147418112;a:{if(k&!c?a|b:k&(c|0)!=0|j>>>0>2147418112){break a}j=h&2147483647;k=(j|0)==2147418112;if(k&!g?e|f:k&(g|0)!=0|j>>>0>2147418112){break a}if(!(a|e|(c|g)|(b|f|(j|l)))){return 0}i=d&h;if((i|0)>0|(i|0)>=0){i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0<e>>>0|b>>>0<f>>>0:c>>>0<g>>>0&(d|0)<=(h|0)|(d|0)<(h|0)){break a}return(a^e|c^g|(b^f|d^h))!=0}i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>e>>>0|b>>>0>f>>>0:c>>>0>g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}i=(a^e|c^g|(b^f|d^h))!=0}return i}function Jb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=P(b,12);d=oa(b);J[a+4>>2]=d;J[a>>2]=d;e=b+d|0;J[a+8>>2]=e;f=J[c+4>>2];g=J[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;pa(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;b=oa(h);J[d>>2]=b;J[d+8>>2]=b+i;c=g;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}J[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e}return}qa();B()}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;qa();B()}function tc(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;e=J[a+8>>2];d=J[a>>2];if(g>>>0<=e-d>>2>>>0){e=J[a+4>>2]-d|0;f=e>>2;e=f>>>0<g>>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){ta(d,b,h)}if(f>>>0<g>>>0){b=c-e|0;d=J[a+4>>2];if((c|0)!=(e|0)){ta(d,e,b)}J[a+4>>2]=b+d;return}J[a+4>>2]=d+h;return}if(d){J[a+4>>2]=d;na(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}a:{if((f|0)<0){break a}d=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a+4>>2]=d;J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){ua(d,b,f)}J[a+4>>2]=d+(g<<2);return}qa();B()}function jg(a,b){var c=0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=c;c=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;J[a+88>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=J[a+4>>2];a:{b:{if(!a){break b}d=K[b+11|0];c=d<<24>>24<0;g=c?J[b>>2]:b;d=c?J[b+4>>2]:d;b=f;while(1){e=K[a+27|0];c=e<<24>>24<0;e=c?J[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Ba(c?J[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=J[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=K[b+27|0];a=c<<24>>24<0;d:{c=a?J[b+20>>2]:c;e=c>>>0<d>>>0?c:d;if(e){a=Ba(g,a?J[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function xe(a){var b=0,c=0,d=0,e=0;c=J[a+152>>2];if(c){d=c;b=J[a+156>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+152>>2]}J[a+156>>2]=c;na(d)}c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;na(d)}b=J[a+128>>2];if(b){J[a+132>>2]=b;na(b)}b=J[a+116>>2];if(b){J[a+120>>2]=b;na(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;na(b)}tb(a+84|0);tb(a- -64|0);tb(a+44|0);wa(a+12|0)}function Uh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(pb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(pb(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];da[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];da[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function xc(a,b){var c=0,d=0,e=0,f=0;c=J[a+16>>2];if(b){J[a+12>>2]=J[a+12>>2]|-2147483648>>>c}b=c+1|0;J[a+16>>2]=b;a:{b:{if((b|0)==32){b=J[a+4>>2];c:{if((b|0)!=J[a+8>>2]){J[b>>2]=J[a+12>>2];J[a+4>>2]=b+4;break c}d=b;b=J[a>>2];c=d-b|0;f=c>>2;e=f+1|0;if(e>>>0>=1073741824){break b}d=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<d>>>0?d:e;if(e){if(e>>>0>=1073741824){break a}d=oa(e<<2)}else{d=0}f=d+(f<<2)|0;J[f>>2]=J[a+12>>2];c=ta(d,b,c);J[a+8>>2]=c+(e<<2);J[a+4>>2]=f+4;J[a>>2]=c;if(!b){break c}na(b)}J[a+12>>2]=0;J[a+16>>2]=0}return}qa();B()}xa();B()}function ue(a){var b=0,c=0,d=0,e=0;c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;na(d)}c=J[a+128>>2];if(c){d=c;b=J[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+128>>2]}J[a+132>>2]=c;na(d)}b=J[a+116>>2];if(b){J[a+120>>2]=b;na(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;na(b)}b=J[a+92>>2];if(b){J[a+96>>2]=b;na(b)}tb(a+72|0);tb(a+52|0);tb(a+32|0);tb(a+12|0)}function Qg(a,b,c,d,e){var f=0,g=0,h=0;f=ba-16|0;ba=f;g=Pg(b,c,f+12|0,f+8|0,d);d=J[g>>2];if(d){b=0}else{d=oa(40);c=d+16|0;a:{if(H[e+11|0]>=0){h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break a}Ga(c,J[e>>2],J[e+4>>2])}c=d+28|0;b:{if(H[e+23|0]>=0){e=e+12|0;h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break b}Ga(c,J[e+12>>2],J[e+16>>2])}J[d+8>>2]=J[f+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[g>>2]=d;e=d;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[g>>2]}sb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=d;ba=f+16|0}function ig(a){var b=0,c=0,d=0,e=0;za(a);c=J[a+84>>2];a:{if((c|0)<=0){break a}b=c<<5;d=oa(c>>>0>134217727?-1:b|4);J[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){J[b>>2]=0;J[b+4>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;b=b+32|0;if((c|0)!=(b|0)){continue}break}e=J[a+80>>2];J[a+80>>2]=d;if(e){c=e-4|0;d=J[c>>2];if(d){b=(d<<5)+e|0;while(1){b=wa(b-32|0);if((e|0)!=(b|0)){continue}break}}na(c)}if(J[a+84>>2]<=0){break a}b=0;while(1){za(J[a+80>>2]+(b<<5)|0);b=b+1|0;if((b|0)<J[a+84>>2]){continue}break}}}function qb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ba-16|0;ba=f;A(+b);g=v(1)|0;d=v(0)|0;c=g&2147483647;e=c+-1048576|0;a:{if((e|0)==2145386495|e>>>0<2145386495){h=d<<28;e=c>>>4|0;c=(c&15)<<28|d>>>4;d=e+1006632960|0;break a}if((c|0)==2146435072|c>>>0>2146435072){h=d<<28;c=(g&15)<<28|d>>>4;d=g>>>4|2147418112;break a}if(!(c|d)){c=0;d=0;break a}e=c;c=c?S(c):S(d)+32|0;Pa(f,d,e,0,0,c+49|0);i=J[f>>2];h=J[f+4>>2];e=15372-c<<16;c=J[f+8>>2];d=e|J[f+12>>2]^65536}J[a>>2]=i;J[a+4>>2]=h;J[a+8>>2]=c;J[a+12>>2]=g&-2147483648|d;ba=f+16|0}function yi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=ba-48|0;ba=f;a:{if(!b){a=0;break a}e=f+16|0;J[e>>2]=0;J[e+4>>2]=0;H[e+24|0]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;g=0;b:{if((Nb(b,0)|0)==-1){break b}if(c){g=0;if(!(da[J[J[b>>2]+16>>2]](b)|0)){break b}da[J[J[b>>2]+20>>2]](b)}ah(f,a,b,e);a=J[f>>2];if(H[f+15|0]<0){na(J[f+4>>2])}g=0;if(a){break b}vd(d,J[e>>2],J[e+4>>2]);g=J[e+4>>2]-J[e>>2]|0}a=g;b=J[e+12>>2];J[e+12>>2]=0;if(b){na(b)}b=J[e>>2];if(!b){break a}J[e+4>>2]=b;na(b)}ba=f+48|0;return a|0}function re(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2284;d=J[a+60>>2];if(d){b=d;c=J[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){Ka(b)}if((c|0)!=(d|0)){continue}break}b=J[a+60>>2]}J[a+64>>2]=d;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}d=J[a+36>>2];if(d){b=d;c=J[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;da[J[J[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;na(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Ld(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=J[a+8>>2];d=J[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=pa(d,0,b)+b|0}J[a+4>>2]=d;return}a:{f=J[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=oa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=pa(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;J[c>>2]=J[d>>2];if((d|0)!=(f|0)){continue}break}}J[a+8>>2]=(e<<2)+i;J[a+4>>2]=b;J[a>>2]=c;if(f){na(f)}return}qa();B()}xa();B()}function zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ba-48|0;ba=e;a:{if(!b){a=0;break a}d=e+16|0;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=0;b:{if((Nb(b,0)|0)==-1){break b}f=0;if(!(da[J[J[b>>2]+16>>2]](b)|0)){break b}da[J[J[b>>2]+20>>2]](b);Zg(e,a,b,d);a=J[e>>2];if(H[e+15|0]<0){na(J[e+4>>2])}f=0;if(a){break b}vd(c,J[d>>2],J[d+4>>2]);f=J[d+4>>2]-J[d>>2]|0}a=f;b=J[d+12>>2];J[d+12>>2]=0;if(b){na(b)}b=J[d>>2];if(!b){break a}J[d+4>>2]=b;na(b)}ba=e+48|0;return a|0}function Gb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0;a:{if(f&64){c=f+-64|0;b=c&31;if((c&63)>>>0>=32){c=0;b=e>>>b|0}else{c=e>>>b|0;b=((1<<b)-1&e)<<32-b|d>>>b}d=0;e=0;break a}if(!f){break a}i=d;h=64-f|0;g=h&31;if((h&63)>>>0>=32){h=i<<g;j=0}else{h=(1<<g)-1&i>>>32-g|e<<g;j=i<<g}i=b;b=f&31;if((f&63)>>>0>=32){g=0;b=c>>>b|0}else{g=c>>>b|0;b=((1<<b)-1&c)<<32-b|i>>>b}b=j|b;c=g|h;g=d;d=f&31;if((f&63)>>>0>=32){h=0;d=e>>>d|0}else{h=e>>>d|0;d=((1<<d)-1&e)<<32-d|g>>>d}e=h}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function hf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=ba-16|0;ba=c;e=K[b+11|0];e=e<<24>>24<0?J[b+4>>2]:e;a:{if(e>>>0>255){break a}if(!e){H[c+15|0]=0;b=J[a+20>>2];if(!!J[a+16>>2]&(b|0)>=0|(b|0)>0){break a}sa(a,J[a+4>>2],c+15|0,c+16|0);break a}H[c+14|0]=e;d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(a,J[a+4>>2],c+14|0,c+15|0);d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}g=a;h=J[a+4>>2];a=K[b+11|0];d=a<<24>>24<0;f=d?J[b>>2]:b;sa(g,h,f,(d?J[b+4>>2]:a)+f|0)}ba=c+16|0;return e>>>0<256}function Gc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];e=J[a>>2];d=c-e|0;b:{if(d>>>0<b>>>0){g=b-d|0;f=J[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=pa(c,0,g)+g|0,J[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<f>>>0?f:b;f=oa(c);pa(f+d|0,0,g);d=ta(f,e,d);J[a+8>>2]=d+c;J[a+4>>2]=b+d;J[a>>2]=d;if(!e){break b}na(e);break b}if(b>>>0>=d>>>0){break b}J[a+4>>2]=b+e}b=J[a+28>>2];c=b;d=b+1|0;b=J[a+24>>2]+1|0;e=b?c:d;J[a+24>>2]=b;J[a+28>>2]=e;return}qa();B()}function pi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ba-48|0;ba=d;e=J[a+4>>2];a:{if(!e){break a}if(b){if(!(da[J[J[e>>2]+16>>2]](e)|0)){break a}b=J[a+4>>2];da[J[J[b>>2]+20>>2]](b)}b=d+16|0;J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;fe(d,J[a>>2],b);a=J[d>>2];if(H[d+15|0]<0){na(J[d+4>>2])}if(!a){vd(c,J[b>>2],J[b+4>>2]);f=J[b+4>>2]-J[b>>2]|0}a=J[b+12>>2];J[b+12>>2]=0;if(a){na(a)}a=J[b>>2];if(!a){break a}J[b+4>>2]=a;na(a)}ba=d+48|0;return f|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if((da[J[J[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Nb(J[J[a+4>>2]+4>>2],da[J[J[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}c=J[a+4>>2];g=0;b:{if((d|0)<0){break b}h=J[c+4>>2];if(J[h+12>>2]-J[h+8>>2]>>2<=(d|0)){break b}c=J[J[c+8>>2]+(J[J[c+20>>2]+(d<<2)>>2]<<2)>>2];g=da[J[J[c>>2]+36>>2]](c,d)|0}if(!(da[J[J[b>>2]+28>>2]](b,g)|0)){break a}e=1;f=f+1|0;if((da[J[J[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Pa(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(f&64){d=b;e=f+-64|0;b=e&31;if((e&63)>>>0>=32){e=d<<b;d=0}else{e=(1<<b)-1&d>>>32-b|c<<b;d=d<<b}b=0;c=0;break a}if(!f){break a}g=d;d=f&31;if((f&63)>>>0>=32){h=g<<d;i=0}else{h=(1<<d)-1&g>>>32-d|e<<d;i=g<<d}g=b;e=64-f|0;d=e&31;if((e&63)>>>0>=32){e=0;b=c>>>d|0}else{e=c>>>d|0;b=((1<<d)-1&c)<<32-d|g>>>d}d=i|b;e=e|h;b=f&31;if((f&63)>>>0>=32){h=g<<b;b=0}else{h=(1<<b)-1&g>>>32-b|c<<b;b=g<<b}c=h}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function se(a,b){ya(a,b);ya(a+32|0,b);ya(a- -64|0,b);ya(a+96|0,b);ya(a+128|0,b);ya(a+160|0,b);ya(a+192|0,b);ya(a+224|0,b);ya(a+256|0,b);ya(a+288|0,b);ya(a+320|0,b);ya(a+352|0,b);ya(a+384|0,b);ya(a+416|0,b);ya(a+448|0,b);ya(a+480|0,b);ya(a+512|0,b);ya(a+544|0,b);ya(a+576|0,b);ya(a+608|0,b);ya(a+640|0,b);ya(a+672|0,b);ya(a+704|0,b);ya(a+736|0,b);ya(a+768|0,b);ya(a+800|0,b);ya(a+832|0,b);ya(a+864|0,b);ya(a+896|0,b);ya(a+928|0,b);ya(a+960|0,b);ya(a+992|0,b);ya(a+1024|0,b)}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=J[J[a+8>>2]+40>>2];h=oa((d|0)<0?-1:d);g=J[b>>2];i=J[b+4>>2];if((g|0)!=(i|0)){k=d+h|0;while(1){e=J[(j<<2)+g>>2];f=J[a+8>>2];if(!K[f+84|0]){e=J[J[f+68>>2]+(e<<2)>>2]}l=J[J[f>>2]>>2];d=J[f+40>>2];e=J[f+48>>2]+Hl(d,J[f+44>>2],e,0)|0;e=ua(h,e+l|0,d);d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],e,k);g=J[b>>2];i=J[b+4>>2]}j=j+1|0;if(j>>>0<i-g>>2>>>0){continue}break}}na(h);return 1}function Pe(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!J[J[4843]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){H[a+1|0]=b&63|128;H[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){H[a+2|0]=b&63|128;H[a|0]=b>>>12|224;H[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){H[a+3|0]=b&63|128;H[a|0]=b>>>18|240;H[a+2|0]=b>>>6&63|128;H[a+1|0]=b>>>12&63|128;a=4;break a}}J[4804]=25;a=-1}else{a=1}break a}H[a|0]=b;a=1}return a}function Je(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ba-16|0;ba=f;d=ba-32|0;ba=d;e=ba-16|0;ba=e;J[e+12>>2]=a;J[e+8>>2]=a+b;J[d+24>>2]=J[e+12>>2];J[d+28>>2]=J[e+8>>2];ba=e+16|0;b=ba-16|0;ba=b;h=J[d+28>>2];e=J[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){ta(c,e,g)}J[b+12>>2]=e+g;J[b+8>>2]=c+g;J[d+16>>2]=J[b+12>>2];J[d+20>>2]=J[b+8>>2];ba=b+16|0;J[d+12>>2]=(J[d+16>>2]-a|0)+a;J[d+8>>2]=(J[d+20>>2]-c|0)+c;J[f+8>>2]=J[d+12>>2];J[f+12>>2]=J[d+8>>2];ba=d+32|0;ba=f+16|0;return J[f+12>>2]}function aj(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;d=J[a+8>>2];a:{if((d|0)==J[a+12>>2]){b=bf(oa(76),b);J[b+36>>2]=0;J[b+40>>2]=0;J[b>>2]=2284;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+68>>2]=0;J[b+72>>2]=0;J[c+8>>2]=b;d=J[a+12>>2];b:{if(d>>>0<M[a+16>>2]){J[c+8>>2]=0;J[d>>2]=b;J[a+12>>2]=d+4;break b}Ic(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}da[J[J[a>>2]+4>>2]](a);break a}kc(J[d>>2],b)}ba=c+16|0;return 1}function Wg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;e=ba-48|0;ba=e;h=J[b>>2];f=a+16|0;b=J[f>>2];a:{b:{if(!b){break b}g=f;while(1){i=J[b+16>>2]<(h|0);g=i?g:b;b=J[(i?b+4|0:b)>>2];if(b){continue}break}if((g|0)==(f|0)){break b}if(J[g+16>>2]<=(h|0)){break a}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=h;J[e+12>>2]=b;b=a+12|0;a=e+8|0;Oc(e+40|0,b,a,a);g=J[e+40>>2];Da(a|4,J[e+16>>2]);Da(f,J[e+28>>2])}vb(g+20|0,c,d);ba=e+48|0}function Ec(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=14964;b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}b=J[a+44>>2];if(b){J[a+48>>2]=b;na(b)}b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}b=J[a+8>>2];if(b){d=b;c=J[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Ka(d)}if((b|0)!=(c|0)){continue}break}d=J[a+8>>2]}J[a+12>>2]=b;na(d)}b=J[a+4>>2];J[a+4>>2]=0;if(b){pf(b)}return a|0}function Ah(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2496;b=J[a+72>>2];J[a+72>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){na(b)}d=J[a+36>>2];if(d){c=J[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;na(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Ra(a){J[a>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;H[a+28|0]=1;J[a+20>>2]=0;J[a+24>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+72>>2]=a+4;J[a+104>>2]=0;J[a+108>>2]=0;H[a+100|0]=1;J[a+112>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0}function Fa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=pa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=c;c=J[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=oa(d<<2)}b=b<<2;e=pa((h<<2)+i|0,0,b);f=d<<2;d=ta(i,c,g);J[a+8>>2]=f+d;J[a+4>>2]=b+e;J[a>>2]=d;if(c){na(c)}return}qa();B()}xa();B()}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=pa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=c;c=J[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=oa(d<<3)}b=b<<3;e=pa((h<<3)+i|0,0,b);f=d<<3;d=ta(i,c,g);J[a+8>>2]=f+d;J[a+4>>2]=b+e;J[a>>2]=d;if(c){na(c)}return}qa();B()}xa();B()}function Oe(a,b,c,d,e){var f=0,g=0,h=0;h=-1;g=d&2147483647;f=(g|0)==2147418112;a:{if(f&!c?a|b:f&(c|0)!=0|g>>>0>2147418112){break a}f=e&2147483647;if(((f|0)==2147418112&0|f>>>0>2147418112)&(f|0)!=2147418112){break a}if(!(a|c|(f|g|b))){return 0}f=d&e;if((f|0)>0|(f|0)>=0){if(((c|0)!=0|(d|0)!=(e|0))&(d|0)<(e|0)){break a}return(a|c|(d^e|b))!=0}if(!c&(d|0)==(e|0)?a|b:(c|0)!=0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}h=(a|c|(d^e|b))!=0}return h}function Xa(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0;i=Hl(b,c,h,i);h=ca;e=Hl(d,e,f,g);i=e+i|0;d=ca+h|0;h=e>>>0>i>>>0?d+1|0:d;j=g;e=0;k=c;d=0;c=Hl(g,e,c,d);g=c+i|0;i=ca+h|0;l=g;c=c>>>0>g>>>0?i+1|0:i;g=Hl(f,0,b,0);h=ca;i=0;d=Hl(f,i,k,d);h=h+d|0;f=ca+i|0;f=d>>>0>h>>>0?f+1|0:f;i=f+l|0;d=c;f=f>>>0>i>>>0?d+1|0:d;c=Hl(b,m,j,e)+h|0;e=ca;e=c>>>0<h>>>0?e+1|0:e;h=e+i|0;i=f;J[a+8>>2]=h;J[a+12>>2]=e>>>0>h>>>0?i+1|0:i;J[a>>2]=g;J[a+4>>2]=c}function Ia(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];f=J[a>>2];d=c-f|0;b:{if(d>>>0<b>>>0){g=b-d|0;e=J[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=pa(c,0,g)+g|0,J[h+4>>2]=i;return}if((b|0)<0){break a}c=e-f|0;e=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<e>>>0?e:b;e=oa(c);pa(e+d|0,0,g);d=ta(e,f,d);J[a+8>>2]=d+c;J[a+4>>2]=b+d;J[a>>2]=d;if(!f){break b}na(f);return}if(b>>>0>=d>>>0){break b}J[a+4>>2]=b+f}return}qa();B()}function Ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ba-16|0;ba=d;e=J[a+4>>2];a:{if((e|0)==-1){break a}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],J[a+8>>2],J[a+12>>2]);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],a+20|0,a+24|0);c=J[b+20>>2];f=J[b+16>>2];H[d+15|0]=J[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],d+15|0,d+16|0)}ba=d+16|0;return(e|0)!=-1|0}function fj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=J[a+8>>2];b:{if((b|0)<0){break b}c=J[a+4>>2];e=J[c>>2];d=J[c+4>>2]-e>>2;c:{if(d>>>0<b>>>0){Ld(c,b-d|0);f=J[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}J[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=J[a+4>>2];c=J[a>>2];e=J[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}J[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ra();B()}function te(a){za(a);za(a+32|0);za(a- -64|0);za(a+96|0);za(a+128|0);za(a+160|0);za(a+192|0);za(a+224|0);za(a+256|0);za(a+288|0);za(a+320|0);za(a+352|0);za(a+384|0);za(a+416|0);za(a+448|0);za(a+480|0);za(a+512|0);za(a+544|0);za(a+576|0);za(a+608|0);za(a+640|0);za(a+672|0);za(a+704|0);za(a+736|0);za(a+768|0);za(a+800|0);za(a+832|0);za(a+864|0);za(a+896|0);za(a+928|0);za(a+960|0);za(a+992|0);za(a+1024|0)}function Ga(a,b,c){var d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;a:{b:{if(c>>>0<11){d=a;H[a+11|0]=K[a+11|0]&128|c;H[a+11|0]=K[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Ac(g,d+1|0);d=J[e+8>>2];J[a>>2]=d;J[a+8>>2]=J[a+8>>2]&-2147483648|J[e+12>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;J[a+4>>2]=c}Ab(d,b,c+1|0);ba=e+16|0;return}gb();B()}function Zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ba-96|0;ba=e;f=Ng(e+40|0,c);$g(e,b,c);Mg(f,e);Da(e+24|0,J[e+28>>2]);nb(e+12|0,J[e+16>>2]);Da(e,J[e+4>>2]);fe(a,f,d);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}J[b+40>>2]=J[f+40>>2];J[b+44>>2]=J[f+44>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}J[f>>2]=10256;Da(f+28|0,J[f+32>>2]);nb(f+16|0,J[f+20>>2]);Da(f+4|0,J[f+8>>2]);ba=e+96|0}function mc(a,b){var c=0,d=0,e=0;c=J[a+4>>2];d=c+b|0;J[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){J[J[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=J[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;J[a>>2]=J[a>>2]&(-1<<c&-1>>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){pa(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}}function Oa(a,b,c){var d=0,e=0,f=0;if(!(K[a|0]&32)){a:{d=b;b=a;a=J[b+16>>2];b:{if(!a){if(We(b)){break b}a=J[b+16>>2]}f=J[b+20>>2];if(a-f>>>0<c>>>0){da[J[b+36>>2]](b,d,c)|0;break a}c:{if(J[b+80>>2]<0){break c}a=c;while(1){e=a;if(!a){break c}a=e-1|0;if(K[d+a|0]!=10){continue}break}if(da[J[b+36>>2]](b,d,e)>>>0<e>>>0){break b}d=d+e|0;c=c-e|0;f=J[b+20>>2]}ua(f,d,c);J[b+20>>2]=J[b+20>>2]+c}}}}function Wj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}return a|0}function zl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ba-16|0;ba=d;f=Me(a,b);a:{if(!f){break a}c=J[a+36>>2];if((c|0)==J[a+40>>2]){break a}g=d+16|0;while(1){c=J[(e<<2)+c>>2];h=d,i=da[J[J[c>>2]+32>>2]](c)|0,H[h+15|0]=i;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+15|0,g)}e=e+1|0;c=J[a+36>>2];if(e>>>0<J[a+40>>2]-c>>2>>>0){continue}break}}ba=d+16|0;return f|0}function Vj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}na(a)}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+176>>2];d=J[a+172>>2];e=(c-d|0)/136|0;a:{if((c|0)==(d|0)){break a}c=0;b:{c:{d:{if(J[d>>2]==(b|0)){b=1}else{f=e>>>0<=1?1:e;while(1){c=c+1|0;if((f|0)==(c|0)){break d}if(J[P(c,136)+d>>2]!=(b|0)){continue}break}b=c>>>0<e>>>0}if(b){break c}break a}if(c>>>0<e>>>0){break b}break a}d=(P(c,136)+d|0)+104|0}return d|0}return a+40|0}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;a:{if(!b){d=oa(76);b=oa(12);J[b+8>>2]=J[J[a+4>>2]+80>>2];J[b>>2]=12404;J[b+4>>2]=0;d=pe(d,b,0);J[c+8>>2]=d;b=J[a+12>>2];b:{if(b>>>0<M[a+16>>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+12>>2]=b+4;break b}Ic(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}da[J[J[a>>2]+4>>2]](a);break a}kc(J[J[a+8>>2]>>2],b)}ba=c+16|0;return 1}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+36>>2];if((c|0)!=J[a+40>>2]){while(1){c=P(d,24)+c|0;da[J[J[c>>2]+28>>2]](c,b)|0;d=d+1|0;c=J[a+36>>2];if(d>>>0<(J[a+40>>2]-c|0)/24>>>0){continue}break}}c=J[a+48>>2];if((c|0)!=J[a+52>>2]){d=0;while(1){c=J[(d<<2)+c>>2];Aa((c|0)<0?(c^-1)<<1|1:c<<1,b);d=d+1|0;c=J[a+48>>2];if(d>>>0<J[a+52>>2]-c>>2>>>0){continue}break}}return 1}function ud(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<2)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function rf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<1)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function sf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,P(d,h)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Th(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(pb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!pb(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function Mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ba+-64|0;ba=e;d=da[J[J[a>>2]+44>>2]](a,b)|0;a=da[J[J[a>>2]+40>>2]](a,b)|0;f=Lc(e);g=J[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=J[(a<<2)+14832>>2]}else{a=-1}d=P(a,d);Nd(f,g,0,h,i,d,d>>31);a=jg(oa(96),f);Kd(a,c);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2];J[a+60>>2]=J[b+60>>2];ba=e- -64|0;return a|0}function Md(a,b,c,d,e){var f=0,g=0,h=0;f=oa(32);J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;g=J[a+64>>2];J[a+64>>2]=f;if(g){f=J[g>>2];if(f){J[g+4>>2]=f;na(f)}na(g);f=J[a+64>>2]}h=c&255;g=d-1|0;if(g>>>0<=10){g=J[(g<<2)+14832>>2]}else{g=-1}c=P(g,c);Nd(a,b,f,h,d,c,c>>31);Kd(a,e);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2]}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;e=J[a+84>>2];f=J[e>>2];d=J[e+4>>2];h=J[a+28>>2];g=J[a+20>>2]-h|0;g=d>>>0<g>>>0?d:g;if(g){ua(f,h,g);f=g+J[e>>2]|0;J[e>>2]=f;d=J[e+4>>2]-g|0;J[e+4>>2]=d}d=c>>>0>d>>>0?d:c;if(d){ua(f,b,d);f=d+J[e>>2]|0;J[e>>2]=f;J[e+4>>2]=J[e+4>>2]-d}H[f|0]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;return c|0}function xb(a,b,c){var d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;H[d+15|0]=a&127;a:{if(!b&a>>>0>=128|b){H[d+15|0]=a|128;e=J[c+20>>2];if(!!J[c+16>>2]&(e|0)>=0|(e|0)>0){break a}sa(c,J[c+4>>2],d+15|0,d+16|0);f=xb((b&127)<<25|a>>>7,b>>>7|0,c);break a}a=J[c+20>>2];if(!!J[c+16>>2]&(a|0)>=0|(a|0)>0){break a}g=1;sa(c,J[c+4>>2],d+15|0,d+16|0)}ba=d+16|0;return g|f}function Fe(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function Fc(a,b){var c=0,d=0,e=0,f=0;d=1;a:{if((b|0)==-1){break a}b=P(b,3);if((b|0)==-1){break a}d=-1;e=J[a>>2];a=e+(b<<2)|0;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){d=J[(c<<2)+e>>2]}a=J[a>>2];f=(a|0)==(d|0);b:{c:{if((b>>>0)%3|0){b=b-1|0;break c}b=b+2|0;c=-1;if((b|0)==-1){break b}}c=J[(b<<2)+e>>2]}d=f|(c|0)==(a|0)|(d|0)==(c|0)}return d}function jd(a,b,c){var d=0,e=0,f=0;f=ba-16|0;ba=f;d=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]&127}a:{if(d-e>>>0>=c>>>0){if(!c){break a}if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}Ab(d+e|0,b,c);b=a;a=c+e|0;ld(b,a);H[f+15|0]=0;H[a+d|0]=K[f+15|0];break a}kd(a,d,(c+e|0)-d|0,e,e,0,c,b)}ba=f+16|0}function Xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba+-64|0;ba=e;d=1;a:{if(pb(a,b,0)){break a}d=0;if(!b){break a}b=bd(b,18476,18524);d=0;if(!b){break a}d=e+8|0;pa(d|4,0,52);J[e+56>>2]=1;J[e+20>>2]=-1;J[e+16>>2]=a;J[e+8>>2]=b;da[J[J[b>>2]+28>>2]](b,d,J[c>>2],1);a=J[e+32>>2];if((a|0)==1){J[c>>2]=J[e+24>>2]}d=(a|0)==1}ba=e- -64|0;return d|0}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+32>>2]=c;J[a+28>>2]=b;a:{if(!(da[J[J[a>>2]+52>>2]](a)|0)){break a}e=J[a+4>>2];if((e|0)==J[a+8>>2]){return 1}c=0;while(1){d=c<<2;f=J[d+J[a+36>>2]>>2];d=da[J[J[f>>2]+8>>2]](f,b,J[d+e>>2])|0;if(!d){break a}c=c+1|0;e=J[a+4>>2];if(c>>>0<J[a+8>>2]-e>>2>>>0){continue}break}}return d|0}function Pj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=b;b=J[b+64>>2];e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Na(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+56>>2];b=J[b+52>>2];H[d+14|0]=0;Na(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ba=d+16|0}function Aa(a,b){var c=0,d=0,e=0;c=ba-16|0;ba=c;H[c+15|0]=a&127;a:{if(a>>>0>=128){H[c+15|0]=a|128;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){a=0;break a}sa(b,J[b+4>>2],c+15|0,c+16|0);a=Aa(a>>>7|0,b);break a}a=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}e=1;sa(b,J[b+4>>2],c+15|0,c+16|0)}ba=c+16|0;return a|e}function Wc(a,b){var c=0,d=0;a:{c=J[a+4>>2];d=J[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}wc(a,c);c=J[a+4>>2]}J[a+4>>2]=c+1;d=1<<c;a=J[a>>2]+(c>>>3&536870908)|0;if(K[b|0]){J[a>>2]=d|J[a>>2];return}J[a>>2]=J[a>>2]&(d^-1);return}qa();B()}function Ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=b;e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Na(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+28>>2];b=J[b+24>>2];H[d+14|0]=0;Na(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ba=d+16|0}function Bc(a){var b=0,c=0,d=0,e=0;while(1){b=a;a=b+1|0;c=H[b|0];if((c|0)==32|c-9>>>0<5){continue}break}a:{b:{c:{c=H[b|0];switch(c-43|0){case 0:break b;case 2:break c;default:break a}}e=1}c=H[a|0];b=a}if(c-48>>>0<10){while(1){d=(P(d,10)-H[b|0]|0)+48|0;a=H[b+1|0];b=b+1|0;if(a-48>>>0<10){continue}break}}return e?d:0-d|0}function kj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}return a|0}function Gd(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}na(a)}function nh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ya(a+112|0,b);ba=c+16|0;return 1}function pd(a){var b=0;b=1;a:{if((a|0)>=1024){b=898846567431158e293;if(a>>>0<2047){a=a-1023|0;break a}b=Infinity;a=((a|0)>=3069?3069:a)-2046|0;break a}if((a|0)>-1023){break a}b=2004168360008973e-307;if(a>>>0>4294965304){a=a+969|0;break a}b=0;a=((a|0)<=-2960?-2960:a)+1938|0}x(0,0);x(1,a+1023<<20);return b*+z()}function dh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ya(a+96|0,b);ba=c+16|0;return 1}function hl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ba=c+16|0;return 1}function Jk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ba=c+16|0;return 1}function Ba(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(J[a>>2]!=J[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=K[a|0];e=K[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function $a(a,b){var c=0,d=0,e=0,f=0;d=ba-16|0;ba=d;a:{if(!b){b=0;break a}c=b>>31;e=(c^b)-c|0;c=S(e);Pa(d,e,0,0,0,c+81|0);e=0+J[d+8>>2]|0;c=(J[d+12>>2]^65536)+(16414-c<<16)|0;c=e>>>0<f>>>0?c+1|0:c;f=b&-2147483648|c;c=J[d+4>>2];b=J[d>>2]}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=e;J[a+12>>2]=f;ba=d+16|0}function Cj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function pf(a){var b=0,c=0,d=0;if(a){d=J[a+24>>2];if(d){b=d;c=J[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){lb(b+12|0,J[b+16>>2]);kb(b,J[b+4>>2]);na(b)}if((c|0)!=(d|0)){continue}break}b=J[a+24>>2]}J[a+28>>2]=d;na(b)}lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}}function vh(a){a=a|0;var b=0;J[a>>2]=3512;b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;na(b)}b=J[a+96>>2];if(b){na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){na(b)}b=J[a+60>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function mh(a){a=a|0;var b=0;J[a>>2]=5076;b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;na(b)}b=J[a+96>>2];if(b){na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){na(b)}b=J[a+60>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Bj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function Hh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=J[c+8>>2];e=J[c+16>>2];g=J[c+12>>2];f=g;d=J[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=K[J[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;J[c+16>>2]=i;J[c+20>>2]=f;J[a+4>>2]=b}return e>>>0<h>>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function pb(a,b,c){var d=0;if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}d=J[a+4>>2];a=K[d|0];c=J[b+4>>2];b=K[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=K[c+1|0];a=K[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Cb(a){var b=0,c=0;c=J[a+8>>2];if((c|0)>=2){b=+(c|0);b=W(b*va(b)-O[a>>3]);if(R(b)<0x8000000000000000){ca=R(b)>=1?~~(b>0?T(V(b*2.3283064365386963e-10),4294967295):W((b-+(~~b>>>0>>>0))*2.3283064365386963e-10))>>>0:0;return~~b>>>0}a=-2147483648}else{a=0}ca=a;return 0}function Dj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Ob(a,b){var c=0,d=0,e=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{c=J[b+4>>2];d=J[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=oa(c);c=pa(e,0,c);d=d+c|0;J[a+8>>2]=d;J[a+4>>2]=d;J[a>>2]=c;c=J[b>>2];a=J[b+4>>2]}ua(e,c,a-c|0);return}qa();B()}function yj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function vi(a){a=a|0;var b=0,c=0;b=oa(8);J[b+4>>2]=a;J[b>>2]=0;a:{b:{c:{if(!a){break c}c=bd(a,15016,14936);if(!c){break c}c=Ng(oa(56),c);a=J[b>>2];J[b>>2]=c;if(a){break b}break a}c=Og(oa(56),a);a=J[b>>2];J[b>>2]=c;if(!a){break a}}da[J[J[a>>2]+4>>2]](a)}return b|0}function ik(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function ah(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ba-96|0;ba=e;f=Og(e+40|0,c);$g(e,b,c);Mg(f,e);Da(e+24|0,J[e+28>>2]);nb(e+12|0,J[e+16>>2]);Da(e,J[e+4>>2]);fe(a,f,d);J[f>>2]=10256;Da(f+28|0,J[f+32>>2]);nb(f+16|0,J[f+20>>2]);Da(f+4|0,J[f+8>>2]);ba=e+96|0}function qc(a){var b=0;if(a){b=J[a+76>>2];if(b){J[a+80>>2]=b;na(b)}b=J[a- -64>>2];if(b){J[a+68>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;na(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}na(a)}}function Ke(a,b,c){var d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;d=ba-16|0;ba=d;b=b-a>>2;while(1){if(b){J[d+12>>2]=a;e=b>>>1|0;J[d+12>>2]=J[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=M[J[d+12>>2]>>2]<M[c>>2];b=e?g:b;a=e?J[d+12>>2]+4|0:a;continue}break}ba=d+16|0;ba=f+16|0;return a}function pc(a){var b=0;b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){J[a+32>>2]=b;na(b)}b=J[a+12>>2];if(b){na(b)}a=J[a>>2];if(a){na(a)}}function Lb(a,b){var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;a:{if(!b){b=0;break a}d=b;b=S(b);Pa(c,d,0,0,0,b+81|0);d=0+J[c+8>>2]|0;b=(J[c+12>>2]^65536)+(16414-b<<16)|0;f=e>>>0>d>>>0?b+1|0:b;e=J[c+4>>2];b=J[c>>2]}J[a>>2]=b;J[a+4>>2]=e;J[a+8>>2]=d;J[a+12>>2]=f;ba=c+16|0}function hk(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function Mb(a,b,c){var d=0,e=0,f=0,g=0;if(b){while(1){c=c-1|0;e=a;a=Jl(a,b,10,0);d=ca;f=c,g=e-Hl(a,d,10,0)|48,H[f|0]=g;e=b>>>0>9;b=d;if(e){continue}break}}if(a){while(1){c=c-1|0;b=(a>>>0)/10|0;H[c|0]=a-P(b,10)|48;d=a>>>0>9;a=b;if(d){continue}break}}return c}function yl(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+72>>2];a:{if(!c){break a}J[c+4>>2]=a+60;if(!(da[J[J[c>>2]+12>>2]](c)|0)){break a}if(!(da[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(da[J[J[a>>2]+44>>2]](a,b)|0)){break a}d=da[J[J[a>>2]+48>>2]](a,b)|0}return d|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+172>>2];a=J[a+176>>2];if((c|0)!=(a|0)){a=(a-c|0)/136|0;d=a>>>0<=1?1:a;a=0;while(1){if(J[P(a,136)+c>>2]==(b|0)){a=P(a,136)+c|0;return(K[a+100|0]?a+4|0:0)|0}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return 0}function jk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba-16|0;ba=e;d=a+40|0;c=Mc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=je(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Ka(b);break a}J[e+8>>2]=0;if(!c){break a}Ka(c)}ba=e+16|0;return d|0}function Mk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba-16|0;ba=e;d=a+40|0;c=Mc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=xg(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Ka(b);break a}J[e+8>>2]=0;if(!c){break a}Ka(c)}ba=e+16|0;return d|0}function rb(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!K[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=J[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(K[b|0]){continue}break}}return b-a|0}function Nd(a,b,c,d,e,f,g){var h=0;J[a>>2]=c;if(c){h=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=h;h=J[c+28>>2];J[a+16>>2]=J[c+24>>2];J[a+20>>2]=h}J[a+56>>2]=b;J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=f;J[a+44>>2]=g;H[a+32|0]=0;J[a+28>>2]=e;H[a+24|0]=d}function Ve(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=Ve(a*0x10000000000000000,b);c=J[b>>2]+-64|0}J[b>>2]=c;return a}J[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function wl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}f=a+60|0;while(1){c=J[(d<<2)+c>>2];e=da[J[J[c>>2]+20>>2]](c,f,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0<J[a+40>>2]-c>>2>>>0){continue}}break}return e|0}function Pc(a,b){var c=0,d=0,e=0;c=rb(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=oa(d);J[a+8>>2]=d|-2147483648;J[a>>2]=e;J[a+4>>2]=c;d=c+e|0;break b}H[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}ta(e,b,c)}H[d|0]=0;return a}gb();B()}function ne(a){J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;J[a+36>>2]=0;J[a>>2]=2624;return a}function xl(a){a=a|0;var b=0,c=0,d=0,e=0;b=J[a+36>>2];if((b|0)==J[a+40>>2]){return 1}e=a+60|0;while(1){b=J[(c<<2)+b>>2];d=da[J[J[b>>2]+16>>2]](b,e)|0;if(d){c=c+1|0;b=J[a+36>>2];if(c>>>0<J[a+40>>2]-b>>2>>>0){continue}}break}return d|0}function vk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}return a|0}function Pf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;J[c+12>>2]=J[J[b+4>>2]+80>>2];b=J[b+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],c+12|0,c+16|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=c+16|0}function Hk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}return a|0}function Ka(a){a=a|0;var b=0,c=0;if(a){b=J[a+88>>2];J[a+88>>2]=0;if(b){c=J[b+8>>2];if(c){J[b+12>>2]=c;na(c)}na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+64>>2];J[a+64>>2]=0;if(b){c=J[b>>2];if(c){J[b+4>>2]=c;na(c)}na(b)}na(a)}}function Te(a){var b=0,c=0,d=0;if(H[J[a>>2]]-48>>>0>=10){return 0}while(1){d=J[a>>2];c=-1;if(b>>>0<=214748364){c=H[d|0]-48|0;b=P(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}J[a>>2]=d+1;b=c;if(H[d+1|0]-48>>>0<10){continue}break}return b}function vl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}while(1){c=J[(d<<2)+c>>2];e=da[J[J[c>>2]+24>>2]](c,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0<J[a+40>>2]-c>>2>>>0){continue}}break}return e|0}function uk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}na(a)}function Gk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}na(a)}function cj(a){a=a|0;var b=0,c=0,d=0;b=J[a+32>>2];d=J[a+36>>2];if((b|0)==(d|0)){return 1}while(1){c=J[J[a+8>>2]+(J[b>>2]<<2)>>2];c=da[J[J[c>>2]+20>>2]](c,J[a+44>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Il(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0<e>>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Jl(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ca=(g^ca)-((a>>>0<f>>>0)+g|0)|0;return b}function id(a,b,c){var d=0,e=0,f=0;e=ba-16|0;ba=e;d=J[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=J[a>>2];J[a+4>>2]=c;Ab(d,b,c);H[e+15|0]=0;H[c+d|0]=K[e+15|0];break a}f=a;a=J[a+4>>2];kd(f,d-1|0,(c-d|0)+1|0,a,0,a,c,b)}ba=e+16|0}function Ge(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;a=J[a+4>>2];a:{if((a|0)==-1){break a}H[c+15|0]=a;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+15|0,c+16|0)}ba=c+16|0;return(a|0)!=-1|0}\nfunction hd(a,b,c){var d=0,e=0;d=ba-16|0;ba=d;a:{if(c>>>0<=10){H[a+11|0]=K[a+11|0]&128|c;H[a+11|0]=K[a+11|0]&127;Ab(a,b,c);H[d+15|0]=0;H[a+c|0]=K[d+15|0];break a}e=a;a=K[a+11|0]&127;kd(e,10,c-10|0,a,0,a,c,b)}ba=d+16|0}function Hl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;ca=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function He(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function zk(a,b){a=a|0;b=b|0;var c=0,d=0;J[b>>2]=2;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Gc(b+8|0,d+4|0);c=J[b+8>>2]}b=c+d|0;a=J[a+4>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function Qa(a,b,c,d,e){var f=0;f=ba-256|0;ba=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;pa(f,b&255,c?d:256);if(!c){while(1){Oa(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Oa(a,f,d)}ba=f+256|0}function Dd(a,b){var c=0,d=Q(0),e=0;b=ob(a,b);if((b|0)!=(a+4|0)){a=ba-16|0;ba=a;c=b+28|0;Xe(a,H[b+39|0]<0?J[c>>2]:c,0,1);e=Le(J[a>>2],J[a+4>>2],J[a+8>>2],J[a+12>>2]);ba=a+16|0;d=Q(e)}else{d=Q(1)}return d}function ol(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];b=J[a+32>>2];c=b?b:J[a+8>>2]}return c|0}function rl(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];c=J[a+20>>2]-J[a+16>>2]>>2}return c|0}function ql(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=-1;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}b=J[(b<<2)+e>>2];if((b|0)<0){break a}d=J[J[J[J[a+36>>2]+(b<<2)>>2]+16>>2]+(c<<2)>>2]}return d|0}function yh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function wa(a){var b=0,c=0;c=ba-16|0;ba=c;J[c+8>>2]=0;J[c+12>>2]=0;ie(a,c+8|0);J[a+24>>2]=0;J[a+28>>2]=0;b=J[a+12>>2];J[a+16>>2]=b;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=c+16|0;return a}function Jc(a){a=Lc(a);J[a+64>>2]=0;J[a+68>>2]=0;J[a+88>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function xh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function nc(a){J[a+52>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=12468;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;return a}function We(a){var b=0;b=J[a+72>>2];J[a+72>>2]=b-1|b;b=J[a>>2];if(b&8){J[a>>2]=b|32;return-1}J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];return 0}function Lc(a){J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+28>>2]=9;H[a+24|0]=1;J[a+56>>2]=-1;J[a+60>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;return a}function od(a,b,c,d,e,f,g,h,i){var j=0;j=ba-16|0;ba=j;_a(j,b,c,d,e,f,g,h,i^-2147483648);d=J[j>>2];c=J[j+4>>2];b=J[j+12>>2];J[a+8>>2]=J[j+8>>2];J[a+12>>2]=b;J[a>>2]=d;J[a+4>>2]=c;ba=j+16|0}function yd(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(J[b+4>>2]|!b){break a}a=sd(oa(36),c);J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;c=J[b+4>>2];J[b+4>>2]=a;a=1;if(!c){break a}pf(c)}return a|0}function pe(a,b,c){a=bf(a,c);J[a+36>>2]=0;J[a+40>>2]=0;J[a>>2]=2496;J[a+72>>2]=b;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;return a}function di(a,b){a=a|0;b=b|0;var c=0,d=0;ef(a,b);a:{if((b|0)<0){break a}d=J[a+88>>2];c=J[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;ta(c,b,d-b|0);J[a+88>>2]=d-4}}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=0;a:{if(!b|(c|0)<0){break a}e=J[b+12>>2];b=J[b+8>>2];if(e-b>>2<=(c|0)){break a}H[J[b+(c<<2)>>2]+32|0]=d;a=1}return a|0}function uj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function pj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function Kb(a){var b=0,c=0;b=J[4773];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ea()<<16>>>0){if(!($(a|0)|0)){break a}}J[4773]=a;return b}J[4804]=48;return-1}function tj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function oj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function lb(a,b){if(b){lb(a,J[b>>2]);lb(a,J[b+4>>2]);a=J[b+28>>2];J[b+28>>2]=0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function Ie(a,b){var c=0,d=0,e=0,f=0;J[a>>2]=18812;J[a>>2]=18924;c=rb(b);d=oa(c+13|0);J[d+8>>2]=0;J[d+4>>2]=c;J[d>>2]=c;e=a,f=ua(d+12|0,b,c+1|0),J[e+4>>2]=f;return a}function Nh(a,b){a=a|0;b=b|0;var c=0;a:{if(!(da[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(da[J[J[a>>2]+44>>2]](a,b)|0)){break a}c=da[J[J[a>>2]+48>>2]](a,b)|0}return c|0}function Xj(a){a=a|0;var b=0;a:{b=J[a+64>>2];if(!b){break a}b=da[J[J[b>>2]+32>>2]](b)|0;if(!b){break a}J[a+60>>2]=((J[b+4>>2]-J[b>>2]>>2>>>0)/3|0)-J[b+40>>2]}}function Fl(a,b){a=a|0;b=b|0;var c=0;b=J[b+88>>2];if(!(!b|J[b>>2]!=2)){c=a;a=J[b+8>>2];J[c+4>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);c=1}return c|0}function vj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Oj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Lf(a,b){var c=0;a:{c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){break a}b=a+28|0;a=Bc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}return(a|0)!=0}return 0}function Pb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);a:{if((d|0)==(a|0)){break a}b=a+28|0;a=Bc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}c=(a|0)!=0}return c}function qj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function Hj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function bf(a,b){J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2188;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;kc(a,b);return a}function Sh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(pb(a,J[b+8>>2],f)){Fe(b,c,d,e);return}a=J[a+8>>2];da[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function ph(a){a=a|0;var b=0;a:{if(!J[a- -64>>2]|!J[a+68>>2]|(!J[a+44>>2]|!J[a+48>>2])){break a}if(!J[a+52>>2]){break a}b=J[a+56>>2]!=0}return b|0}function fh(a){a=a|0;var b=0;a:{if(!J[a+48>>2]|!J[a+52>>2]|(!J[a+28>>2]|!J[a+32>>2])){break a}if(!J[a+36>>2]){break a}b=J[a+40>>2]!=0}return b|0}function rd(a){var b=0,c=0;b=J[a+20>>2];a:{if((J[a+24>>2]-b|0)<=0){break a}b=J[b>>2];if((b|0)==-1){break a}c=J[J[a+8>>2]+(b<<2)>>2]}return c}function Ti(){var a=0;a=gf(oa(108));J[a+84>>2]=0;J[a+88>>2]=0;J[a>>2]=14892;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;return a|0}function Nb(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=P(b,12)+a|0;a=J[b+20>>2];if((J[b+24>>2]-a|0)<=0){break a}c=J[a>>2]}return c}function Qe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=b;b=J[b>>2]+7&-8;J[c>>2]=b+16;d=a,e=Le(J[b>>2],J[b+4>>2],J[b+8>>2],J[b+12>>2]),O[d>>3]=e}function gi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}return Ec(a)|0}function za(a){var b=0;b=ba-16|0;ba=b;J[b+8>>2]=0;J[b+12>>2]=0;ie(a,b+8|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];ba=b+16|0}function fi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}na(Ec(a))}function kb(a,b){if(b){kb(a,J[b>>2]);kb(a,J[b+4>>2]);a=J[b+28>>2];if(a){J[b+32>>2]=a;na(a)}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function dl(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Vk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Cl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function Zh(a){a=a|0;var b=0;J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Vh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(pb(a,J[b+8>>2],0)){He(b,c,d);return}a=J[a+8>>2];da[J[J[a>>2]+28>>2]](a,b,c,d)}function Qi(){var a=0,b=0;a=oa(24);J[a+4>>2]=0;J[a+8>>2]=0;b=a+16|0;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;J[a+12>>2]=b;return a|0}function cl(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Uk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Bl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function oa(a){var b=0;a=a?a:1;a:{while(1){b=nd(a);if(b){break a}b=J[4973];if(b){da[b|0]();continue}break}Z();B()}return b}function Da(a,b){if(b){Da(a,J[b>>2]);Da(a,J[b+4>>2]);if(H[b+39|0]<0){na(J[b+28>>2])}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function Ee(a){a=a|0;var b=0,c=0;J[a>>2]=18924;b=J[a+4>>2]-12|0;c=J[b+8>>2]-1|0;J[b+8>>2]=c;if((c|0)<0){na(b)}return a|0}function ch(a,b,c,d,e){var f=0;f=b-1|0;if(f>>>0<=29){J[a+4>>2]=b;tc(a+8|0,c,(d<<2)+c|0);N[a+20>>2]=e}return f>>>0<30}function al(a){a=a|0;var b=0;J[a>>2]=3996;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Sk(a){a=a|0;var b=0;J[a>>2]=5536;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Og(a,b){J[a>>2]=10256;he(a+4|0);J[a+52>>2]=0;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Ng(a,b){J[a>>2]=10256;he(a+4|0);J[a+52>>2]=b;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;J[a+4>>2]=b;b=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=b;return 1}function $e(a,b,c,d,e,f,g,h,i){J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e&65535|(i>>>16&32768|e>>>16&32767)<<16}function th(a){a=a|0;var b=0;if(!(!J[a+60>>2]|!J[a+44>>2]|(!J[a+48>>2]|!J[a+52>>2]))){b=J[a+56>>2]!=0}return b|0}function ih(a){a=a|0;var b=0;if(!(!J[a+44>>2]|!J[a+28>>2]|(!J[a+32>>2]|!J[a+36>>2]))){b=J[a+40>>2]!=0}return b|0}function wi(a){a=a|0;if(a){J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}}function Rk(a){a=a|0;var b=0;J[a>>2]=5536;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Mf(a,b){var c=0;c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){return-1}b=a+28|0;return Bc(H[a+39|0]<0?J[b>>2]:b)}function Eb(a,b){var c=0,d=0;if(!(!a|!b|(a|0)==(b|0))){c=+(b>>>0)/+(a>>>0);d=1-c;c=-(c*va(c)+d*va(d))}return c}function $k(a){a=a|0;var b=0;J[a>>2]=3996;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function gk(a){a=a|0;J[a>>2]=10256;Da(a+28|0,J[a+32>>2]);nb(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);return a|0}function fk(a){a=a|0;J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);return a|0}function Bb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);if((d|0)!=(a|0)){b=a+28|0;c=Bc(H[a+39|0]<0?J[b>>2]:b)}return c}function ld(a,b){if(K[a+11|0]>>>7|0){J[a+4>>2]=b;return}H[a+11|0]=K[a+11|0]&128|b;H[a+11|0]=K[a+11|0]&127}function Fi(){var a=0;a=oa(48);J[a>>2]=10332;he(a+4|0);J[a>>2]=10116;J[a+40>>2]=0;J[a+44>>2]=0;return a|0}function Sg(a){a=a|0;J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}function Rg(a){a=a|0;J[a>>2]=10256;Da(a+28|0,J[a+32>>2]);nb(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}function xj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Gj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function qd(a,b){da[J[J[a>>2]+8>>2]](a,J[a+12>>2]-J[a+8>>2]>>2,b);return(J[a+12>>2]-J[a+8>>2]>>2)-1|0}function Yc(a){a=a|0;var b=0;if(!(!J[a+52>>2]|(!J[a+44>>2]|!J[a+48>>2]))){b=J[a+56>>2]!=0}return b|0}function Qc(a){a=a|0;var b=0;if(!(!J[a+36>>2]|(!J[a+28>>2]|!J[a+32>>2]))){b=J[a+40>>2]!=0}return b|0}function wj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function Fj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function oh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a- -64>>2]=b;c=1}return c|0}function sh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+60>>2]=b;c=1}return c|0}function hh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+44>>2]=b;c=1}return c|0}function eh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+48>>2]=b;c=1}return c|0}function Rh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(pb(a,J[b+8>>2],f)){Fe(b,c,d,e)}}function xa(){var a=0;a=cd(4);J[a>>2]=18812;J[a>>2]=18772;J[a>>2]=18792;_(a|0,18904,14);B()}function mi(a){a=a|0;var b=0;if(a){b=J[a>>2];J[a>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}na(a)}}function il(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function dk(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;na(b)}return a|0}function tb(a){var b=0;J[a+12>>2]=0;J[a+16>>2]=0;b=a;a=J[a>>2];J[b+4>>2]=a;if(a){na(a)}}function hj(a){a=a|0;var b=0;b=a;a=J[a+56>>2];J[b+60>>2]=(J[a+100>>2]-J[a+96>>2]|0)/12}function zf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,6)|0}function zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,5)|0}function le(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Df(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sf(b,c,d,e,f,1)|0}function Cf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sf(b,c,d,e,f,2)|0}function Bf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rf(b,c,d,e,f,3)|0}function Af(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rf(b,c,d,e,f,4)|0}function Ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,9)|0}function ck(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;na(b)}na(a)}function si(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Vg(J[a>>2],b,c,d,e,f)}function sc(a,b){if(b){sc(a,J[b>>2]);sc(a,J[b+4>>2]);Da(b+20|0,J[b+24>>2]);na(b)}}function nb(a,b){if(b){nb(a,J[b>>2]);nb(a,J[b+4>>2]);Da(b+20|0,J[b+24>>2]);na(b)}}function Zj(a,b){a=a|0;b=b|0;var c=0;c=a;a=J[b+64>>2];da[J[J[a>>2]+28>>2]](c,a)}function Ek(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){na(b)}return a|0}\nfunction sk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){na(b)}return a|0}function Wh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(pb(a,J[b+8>>2],0)){He(b,c,d)}}function Kl(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Ci(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Vg(a,b,c,d,e,f)}function fd(a,b){var c=0;c=a;a=(b>>>0)/100|0;return Fb(Fb(c,a),b-P(a,100)|0)}function ed(a,b){var c=0;c=a;a=(b>>>0)/1e4|0;return fd(Fb(c,a),b-P(a,1e4)|0)}function dd(a,b){var c=0;c=a;a=(b>>>0)/1e6|0;return ed(Fb(c,a),b-P(a,1e6)|0)}function _j(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+24>>2]](a,b)|0}function Tj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+12>>2]](a,b)|0}function Sj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+16>>2]](a,b)|0}function $j(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+20>>2]](a,b)|0}function $f(a,b){a=a|0;b=b|0;return J[J[a+28>>2]+(b>>>3&536870908)>>2]>>>b&1}function bj(a,b){a=a|0;b=b|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}function Oi(){var a=0;a=oa(12);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;return a|0}function Ll(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<<b|(-1<<a&-2)>>>a}\nfunction Li(a){a=a|0;var b=0;if(a){b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}na(a)}}function Dh(a,b,c){a=a|0;b=b|0;c=c|0;return da[J[J[a>>2]+44>>2]](a,b,c)|0}function rk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){na(b)}na(a)}function Dk(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){na(b)}na(a)}function ra(){var a=0;a=Ie(cd(8),1313);J[a>>2]=19024;_(a|0,19056,1);B()}function gj(a,b){a=a|0;b=b|0;H[b+84|0]=1;J[b+72>>2]=J[b+68>>2];return 1}function Tf(a){a=nc(a);J[a+56>>2]=0;J[a+60>>2]=0;J[a>>2]=12164;return a}function Sc(a,b){a=a|0;b=b|0;if(b>>>0<=1){J[a+28>>2]=b}return b>>>0<2|0}function Pi(a){a=a|0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}}function $h(a,b,c){a=a|0;b=b|0;c=c|0;J[a+32>>2]=c;J[a+28>>2]=b;return 1}function Qh(a){a=a|0;if(!a){return 0}return(bd(a,18476,18620)|0)!=0|0}function Uj(a){a=a|0;a=J[a+64>>2];return da[J[J[a>>2]+32>>2]](a)|0}function Eh(a,b){a=a|0;b=b|0;J[a+12>>2]=-1;J[a+8>>2]=b;return 1}function ke(a){a=Ie(cd(8),a);J[a>>2]=18972;_(a|0,19004,1);B()}function Si(a){a=a|0;return(J[a+100>>2]-J[a+96>>2]|0)/12|0}function pk(a){a=a|0;J[a>>2]=9148;wa(a+96|0);return a|0}function Bk(a){a=a|0;J[a>>2]=7524;wa(a+96|0);return a|0}function Ac(a,b){var c=0;c=oa(b);J[a+4>>2]=b;J[a>>2]=c}function ti(a,b,c){a=a|0;b=b|0;c=c|0;Xg(J[a>>2],b,c)}function ri(a,b,c){a=a|0;b=b|0;c=c|0;Yg(J[a>>2],b,c)}function gf(a){J[a>>2]=14964;pa(a+4|0,0,80);return a}function ij(a){a=a|0;J[a+52>>2]=J[J[a+56>>2]+80>>2]}function Hf(a){a=a|0;return J[a+12>>2]-J[a+8>>2]>>2}function Gl(a){if(a){return 31-S(a-1^a)|0}return 32}function ok(a){a=a|0;J[a>>2]=9148;wa(a+96|0);na(a)}function kk(a,b){a=a|0;b=b|0;return Ug(a+40|0,b)|0}function Of(a){a=a|0;J[a+52>>2]=J[J[a+4>>2]+80>>2]}function Nk(a,b){a=a|0;b=b|0;return Ge(a+40|0,b)|0}function Ni(a,b){a=a|0;b=b|0;return H[J[a>>2]+b|0]}function Gf(a){a=a|0;if(a){da[J[J[a>>2]+4>>2]](a)}}function Ak(a){a=a|0;J[a>>2]=7524;wa(a+96|0);na(a)}function Mi(a){a=a|0;return J[a+4>>2]-J[a>>2]|0}function Fb(a,b){return Je((b<<1)+18240|0,2,a)}function Di(a,b,c){a=a|0;b=b|0;c=c|0;Xg(a,b,c)}function Bi(a,b,c){a=a|0;b=b|0;c=c|0;Yg(a,b,c)}function bk(a,b){a=a|0;b=b|0;return K[b+24|0]}function Lh(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function oi(a){a=a|0;return J[J[a>>2]+40>>2]}function ni(a){a=a|0;return J[J[a>>2]+44>>2]}function ui(a,b){a=a|0;b=b|0;Tg(J[a>>2],b)}function qi(a,b){a=a|0;b=b|0;nf(J[a>>2],b)}function Ri(a,b){a=a|0;b=b|0;J[a+80>>2]=b}function xi(a){a=a|0;return J[a+44>>2]}function uc(a){a=a|0;return J[a+28>>2]}function ag(a){a=a|0;return J[a+12>>2]}function Zi(a){a=a|0;return J[a+56>>2]}function Wi(a){a=a|0;return J[a+48>>2]}function Vi(a){a=a|0;return J[a+60>>2]}function Jf(a){a=a|0;return J[a+40>>2]}function Cd(a){a=a|0;return J[a+80>>2]}function Bh(){J[4843]=19252;J[4825]=42}function zh(a,b){a=a|0;b=b|0;return 6}function zc(a,b){a=a|0;b=b|0;return 1}function wh(a,b){a=a|0;b=b|0;return-1}function vc(a){a=a|0;return J[a+4>>2]}function jl(a,b){a=a|0;b=b|0;return 2}function cd(a){return nd(a+80|0)+80|0}function Za(a,b){a=a|0;b=b|0;return 0}function Yi(a){a=a|0;return H[a+24|0]}function Xi(a){a=a|0;return K[a+32|0]}function Ei(a,b){a=a|0;b=b|0;Tg(a,b)}function Ai(a,b){a=a|0;b=b|0;nf(a,b)}function Nc(a,b,c,d){Kg(a,b,c,d,1)}function Db(a,b,c,d){Kg(a,b,c,d,0)}function lc(a){a=a|0;if(a){na(a)}}function _i(){return Jc(oa(96))|0}function Ui(){return gf(oa(84))|0}function $i(){return Lc(oa(64))|0}function ad(a){a=a|0;Ee(a);na(a)}function Ph(a){a=a|0;return 1364}function Oh(a){a=a|0;return 1622}function Mh(a){a=a|0;return 1472}function ub(a){a=a|0;return a|0}function sl(a){a=a|0;na(Ah(a))}function fl(a){a=a|0;na(vh(a))}function ai(a){a=a|0;na(Ec(a))}function Xk(a){a=a|0;na(mh(a))}function Jj(a){a=a|0;na(Zf(a))}function Ij(a){a=a|0;na(Yf(a))}function Gh(a){a=a|0;na(re(a))}function oe(a){a=a|0;return 2}function kh(a){a=a|0;return 3}function ib(a){a=a|0;return 0}function Xc(a){a=a|0;return 4}function Vc(a){a=a|0;return 5}function Uc(a){a=a|0;return 6}function Ja(a){a=a|0;return 1}function Bd(){return oa(1)|0}function Ab(a,b,c){Je(b,c,a)}function qa(){ke(1313);B()}function gb(){ke(1493);B()}function ab(a){a=a|0;na(a)}function zb(a){a=a|0;B()}function xd(){return 0}function wd(){return 1}function tf(){return-1}function li(){return 2}function ki(){return 3}function ji(){return 4}function Yh(){Z();B()}function af(a){a=a|0}\n// EMSCRIPTEN_END_FUNCS\ne=K;p(q);var da=c([null,Ee,ub,ab,oe,Fl,zk,xg,ii,Ge,Hh,Mc,zh,jl,ub,dk,ck,Ja,Zk,Lk,je,yk,Ug,ek,zh,bk,Zh,zb,$h,Me,Yh,Nh,Za,Lh,Za,Za,Ja,zc,re,Gh,oe,Kh,Ih,Jh,Cl,Bl,Fh,Eh,zc,Dh,zc,ib,ib,El,Dl,Ch,Ah,sl,Al,zl,ib,yl,rl,ql,pl,ol,xl,wl,vl,ul,tl,yh,xh,me,nl,Ja,ll,ml,kl,il,le,Ja,vc,Yc,ib,wh,Za,ib,Ja,hl,gl,zb,zb,vh,fl,Xc,Yc,uh,el,dl,cl,Vc,th,Ja,Za,sh,rh,bl,al,$k,Uc,ph,Ja,Za,oh,nh,_k,ub,ab,Sc,uc,Tc,zb,le,Ja,Yc,Yk,zb,mh,Xk,Xc,Yc,uh,Wk,Vk,Uk,Vc,th,Ja,Za,sh,rh,Tk,Sk,Rk,Uc,ph,Ja,Za,oh,nh,Qk,ub,ab,Sc,uc,Rc,zb,le,ib,Ja,Pk,yh,xh,Ok,Nk,Ja,kh,Kk,Mk,ub,ab,Ja,vc,Qc,ib,wh,Za,Ja,kh,Jk,Ik,Hk,Gk,Xc,Qc,jh,Fk,Ek,Dk,Vc,ih,Ja,Za,hh,gh,Ck,Bk,Ak,Uc,fh,Ja,Za,eh,dh,xk,ub,ab,Sc,uc,Tc,ab,Ja,Qc,wk,vk,uk,Xc,Qc,jh,tk,sk,rk,Vc,ih,Ja,Za,hh,gh,qk,pk,ok,Uc,fh,Ja,Za,eh,dh,nk,ub,ab,Sc,uc,Rc,ab,ib,Ja,mk,ik,hk,lk,kk,Ja,oe,jk,fk,Sg,ah,Zg,gk,Rg,Sg,Rg,Wj,Vj,Ja,Ja,ak,Ja,lj,ej,dj,$j,_j,cj,Yj,Uj,Tj,Sj,Zj,Xj,Zf,Jj,Rj,pg,og,Qj,lg,Nj,ag,$f,vc,Yf,Ij,Mj,pg,og,Lj,lg,Kj,ag,$f,vc,Oj,Hj,Pj,Gj,Fj,Cj,Bj,Aj,zj,Dj,yj,Ej,xj,wj,uj,tj,sj,rj,vj,qj,pj,oj,nj,mj,kj,zb,Ja,zc,ib,Za,Za,Gd,ib,Sf,ij,jj,hj,ub,ab,gj,fj,zb,ib,bj,Gd,Ja,Pf,aj,Of,Gd,ib,Pf,Sf,Of,gi,fi,ei,di,bi,ci,hi,Ec,ai,ff,ef,cf,Re,Qe,_h,ub,ab,af,af,Xh,Rh,Th,Wh,ab,Sh,Uh,Vh,ab,Oh,ab,Mh,ab,Ph,ad,vc,ad,ad]);function ea(){return G.byteLength/65536|0}function ja(ka){ka=ka|0;var fa=ea()|0;var ga=fa+ka|0;if(fa<ga&&ga<65536){var ha=new ArrayBuffer(P(ga,65536));var ia=new Int8Array(ha);ia.set(H);H=new Int8Array(ha);I=new Int16Array(ha);J=new Int32Array(ha);K=new Uint8Array(ha);L=new Uint16Array(ha);M=new Uint32Array(ha);N=new Float32Array(ha);O=new Float64Array(ha);G=ha;F.buffer=G;e=K}return fa}return{\"f\":Bh,\"g\":da,\"h\":lc,\"i\":$i,\"j\":lc,\"k\":_i,\"l\":Cd,\"m\":Zi,\"n\":uc,\"o\":Yi,\"p\":Xi,\"q\":Jf,\"r\":Wi,\"s\":Vi,\"t\":Ka,\"u\":Ui,\"v\":Hf,\"w\":Cd,\"x\":Gf,\"y\":Ti,\"z\":Si,\"A\":Hf,\"B\":Cd,\"C\":Ri,\"D\":Gf,\"E\":Qi,\"F\":Pi,\"G\":Oi,\"H\":Ni,\"I\":Mi,\"J\":Li,\"K\":Bd,\"L\":Ki,\"M\":Ji,\"N\":Ii,\"O\":Hi,\"P\":lc,\"Q\":Bd,\"R\":Ad,\"S\":Df,\"T\":Cf,\"U\":Bf,\"V\":Af,\"W\":zd,\"X\":zf,\"Y\":yd,\"Z\":yf,\"_\":xf,\"$\":lc,\"aa\":Bd,\"ba\":Gi,\"ca\":Ad,\"da\":zd,\"ea\":yd,\"fa\":Ad,\"ga\":Df,\"ha\":Cf,\"ia\":Bf,\"ja\":Af,\"ka\":zd,\"la\":zf,\"ma\":yd,\"na\":yf,\"oa\":xf,\"pa\":lc,\"qa\":Fi,\"ra\":Ei,\"sa\":Di,\"ta\":Ci,\"ua\":Bi,\"va\":Ai,\"wa\":zi,\"xa\":yi,\"ya\":Jf,\"za\":xi,\"Aa\":wi,\"Ba\":vi,\"Ca\":ui,\"Da\":ti,\"Ea\":si,\"Fa\":ri,\"Ga\":qi,\"Ha\":pi,\"Ia\":oi,\"Ja\":ni,\"Ka\":mi,\"La\":tf,\"Ma\":xd,\"Na\":wd,\"Oa\":li,\"Pa\":ki,\"Qa\":ji,\"Ra\":tf,\"Sa\":xd,\"Ta\":wd,\"Ua\":xd,\"Va\":wd,\"Wa\":nd,\"Xa\":na,\"Ya\":Qh}}return la(ma)}\n// EMSCRIPTEN_END_ASM\n\n\n)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({\"instance\":new WebAssembly.Instance(module,info)})}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;assert(INITIAL_MEMORY>=65536,\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+INITIAL_MEMORY+\"! (STACK_SIZE=\"+65536+\")\");if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"draco_encoder.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"g\"];addOnInit(Module[\"asm\"][\"f\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob==\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==\"boolean\"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,\"base64\");return new Uint8Array(buf[\"buffer\"],buf[\"byteOffset\"],buf[\"byteLength\"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmImports={\"c\":___cxa_throw,\"b\":_abort,\"e\":_emscripten_memcpy_big,\"d\":_emscripten_resize_heap,\"a\":wasmMemory};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"f\"]).apply(null,arguments)};var _emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=function(){return(_emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=function(){return(_emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=function(){return(_emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=function(){return(_emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=function(){return(_emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=function(){return(_emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=Module[\"asm\"][\"m\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=function(){return(_emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=function(){return(_emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=function(){return(_emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=function(){return(_emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=function(){return(_emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=function(){return(_emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=function(){return(_emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=function(){return(_emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=function(){return(_emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=function(){return(_emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=function(){return(_emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=function(){return(_emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=function(){return(_emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _emscripten_bind_Mesh_set_num_points_1=Module[\"_emscripten_bind_Mesh_set_num_points_1\"]=function(){return(_emscripten_bind_Mesh_set_num_points_1=Module[\"_emscripten_bind_Mesh_set_num_points_1\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=function(){return(_emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=function(){return(_emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=function(){return(_emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=function(){return(_emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_MetadataBuilder_0=Module[\"_emscripten_bind_MetadataBuilder_MetadataBuilder_0\"]=function(){return(_emscripten_bind_MetadataBuilder_MetadataBuilder_0=Module[\"_emscripten_bind_MetadataBuilder_MetadataBuilder_0\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_AddStringEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddStringEntry_3\"]=function(){return(_emscripten_bind_MetadataBuilder_AddStringEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddStringEntry_3\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_AddIntEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntry_3\"]=function(){return(_emscripten_bind_MetadataBuilder_AddIntEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntry_3\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_AddIntEntryArray_4=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4\"]=function(){return(_emscripten_bind_MetadataBuilder_AddIntEntryArray_4=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_AddDoubleEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3\"]=function(){return(_emscripten_bind_MetadataBuilder_AddDoubleEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder___destroy___0=Module[\"_emscripten_bind_MetadataBuilder___destroy___0\"]=function(){return(_emscripten_bind_MetadataBuilder___destroy___0=Module[\"_emscripten_bind_MetadataBuilder___destroy___0\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=Module[\"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0\"]=function(){return(_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=Module[\"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddMetadata_2=Module[\"_emscripten_bind_PointCloudBuilder_AddMetadata_2\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddMetadata_2=Module[\"_emscripten_bind_PointCloudBuilder_AddMetadata_2\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3\"]=function(){return(_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3\"]=function(){return(_emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder___destroy___0=Module[\"_emscripten_bind_PointCloudBuilder___destroy___0\"]=function(){return(_emscripten_bind_PointCloudBuilder___destroy___0=Module[\"_emscripten_bind_PointCloudBuilder___destroy___0\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_MeshBuilder_0=Module[\"_emscripten_bind_MeshBuilder_MeshBuilder_0\"]=function(){return(_emscripten_bind_MeshBuilder_MeshBuilder_0=Module[\"_emscripten_bind_MeshBuilder_MeshBuilder_0\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddFacesToMesh_3=Module[\"_emscripten_bind_MeshBuilder_AddFacesToMesh_3\"]=function(){return(_emscripten_bind_MeshBuilder_AddFacesToMesh_3=Module[\"_emscripten_bind_MeshBuilder_AddFacesToMesh_3\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddMetadataToMesh_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2\"]=function(){return(_emscripten_bind_MeshBuilder_AddMetadataToMesh_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttribute_5\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt8Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt8Attribute_5\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt16Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt16Attribute_5\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32Attribute_5\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddMetadata_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadata_2\"]=function(){return(_emscripten_bind_MeshBuilder_AddMetadata_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadata_2\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3\"]=function(){return(_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3\"]=function(){return(_emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder___destroy___0=Module[\"_emscripten_bind_MeshBuilder___destroy___0\"]=function(){return(_emscripten_bind_MeshBuilder___destroy___0=Module[\"_emscripten_bind_MeshBuilder___destroy___0\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_Encoder_0=Module[\"_emscripten_bind_Encoder_Encoder_0\"]=function(){return(_emscripten_bind_Encoder_Encoder_0=Module[\"_emscripten_bind_Encoder_Encoder_0\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetEncodingMethod_1=Module[\"_emscripten_bind_Encoder_SetEncodingMethod_1\"]=function(){return(_emscripten_bind_Encoder_SetEncodingMethod_1=Module[\"_emscripten_bind_Encoder_SetEncodingMethod_1\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_Encoder_SetAttributeQuantization_2\"]=function(){return(_emscripten_bind_Encoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_Encoder_SetAttributeQuantization_2\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5\"]=function(){return(_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetSpeedOptions_2=Module[\"_emscripten_bind_Encoder_SetSpeedOptions_2\"]=function(){return(_emscripten_bind_Encoder_SetSpeedOptions_2=Module[\"_emscripten_bind_Encoder_SetSpeedOptions_2\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetTrackEncodedProperties_1=Module[\"_emscripten_bind_Encoder_SetTrackEncodedProperties_1\"]=function(){return(_emscripten_bind_Encoder_SetTrackEncodedProperties_1=Module[\"_emscripten_bind_Encoder_SetTrackEncodedProperties_1\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=Module[\"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2\"]=function(){return(_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=Module[\"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=Module[\"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3\"]=function(){return(_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=Module[\"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=Module[\"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0\"]=function(){return(_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=Module[\"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=Module[\"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0\"]=function(){return(_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=Module[\"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _emscripten_bind_Encoder___destroy___0=Module[\"_emscripten_bind_Encoder___destroy___0\"]=function(){return(_emscripten_bind_Encoder___destroy___0=Module[\"_emscripten_bind_Encoder___destroy___0\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_ExpertEncoder_1=Module[\"_emscripten_bind_ExpertEncoder_ExpertEncoder_1\"]=function(){return(_emscripten_bind_ExpertEncoder_ExpertEncoder_1=Module[\"_emscripten_bind_ExpertEncoder_ExpertEncoder_1\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetEncodingMethod_1=Module[\"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1\"]=function(){return(_emscripten_bind_ExpertEncoder_SetEncodingMethod_1=Module[\"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2\"]=function(){return(_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5\"]=function(){return(_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetSpeedOptions_2=Module[\"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2\"]=function(){return(_emscripten_bind_ExpertEncoder_SetSpeedOptions_2=Module[\"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=Module[\"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1\"]=function(){return(_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=Module[\"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=Module[\"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2\"]=function(){return(_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=Module[\"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=Module[\"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0\"]=function(){return(_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=Module[\"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=Module[\"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0\"]=function(){return(_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=Module[\"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder___destroy___0=Module[\"_emscripten_bind_ExpertEncoder___destroy___0\"]=function(){return(_emscripten_bind_ExpertEncoder___destroy___0=Module[\"_emscripten_bind_ExpertEncoder___destroy___0\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING\"]=function(){return(_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING\"]=function(){return(_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=19116;var ___stop_em_js=Module[\"___stop_em_js\"]=19214;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module[\"WrapperObject\"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module[\"getCache\"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module[\"wrapPointer\"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module[\"castObject\"]=castObject;Module[\"NULL\"]=wrapPointer(0);function destroy(obj){if(!obj[\"__destroy__\"])throw\"Error: Cannot destroy object. (Did you create it yourself?)\";obj[\"__destroy__\"]();delete getCache(obj.__class__)[obj.ptr]}Module[\"destroy\"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module[\"compare\"]=compare;function getPointer(obj){return obj.ptr}Module[\"getPointer\"]=getPointer;function getClass(obj){return obj.__class__}Module[\"getClass\"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module[\"_free\"](ensureCache.temps[i])}ensureCache.temps.length=0;Module[\"_free\"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module[\"_malloc\"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0},alloc:function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module[\"_malloc\"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i<array.length;i++){view[offset+i]=array[i]}}};function ensureString(value){if(typeof value===\"string\"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function ensureInt16(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP16);ensureCache.copy(value,HEAP16,offset);return offset}return value}function ensureInt32(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP32);ensureCache.copy(value,HEAP32,offset);return offset}return value}function ensureFloat32(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAPF32);ensureCache.copy(value,HEAPF32,offset);return offset}return value}function VoidPtr(){throw\"cannot construct a VoidPtr, no constructor in IDL\"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module[\"VoidPtr\"]=VoidPtr;VoidPtr.prototype[\"__destroy__\"]=VoidPtr.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)};function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module[\"GeometryAttribute\"]=GeometryAttribute;GeometryAttribute.prototype[\"__destroy__\"]=GeometryAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)};function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module[\"PointAttribute\"]=PointAttribute;PointAttribute.prototype[\"size\"]=PointAttribute.prototype.size=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)};PointAttribute.prototype[\"attribute_type\"]=PointAttribute.prototype.attribute_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)};PointAttribute.prototype[\"data_type\"]=PointAttribute.prototype.data_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)};PointAttribute.prototype[\"num_components\"]=PointAttribute.prototype.num_components=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)};PointAttribute.prototype[\"normalized\"]=PointAttribute.prototype.normalized=function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)};PointAttribute.prototype[\"byte_stride\"]=PointAttribute.prototype.byte_stride=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)};PointAttribute.prototype[\"byte_offset\"]=PointAttribute.prototype.byte_offset=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)};PointAttribute.prototype[\"unique_id\"]=PointAttribute.prototype.unique_id=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)};PointAttribute.prototype[\"__destroy__\"]=PointAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)};function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module[\"PointCloud\"]=PointCloud;PointCloud.prototype[\"num_attributes\"]=PointCloud.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)};PointCloud.prototype[\"num_points\"]=PointCloud.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)};PointCloud.prototype[\"__destroy__\"]=PointCloud.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)};function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module[\"Mesh\"]=Mesh;Mesh.prototype[\"num_faces\"]=Mesh.prototype.num_faces=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)};Mesh.prototype[\"num_attributes\"]=Mesh.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)};Mesh.prototype[\"num_points\"]=Mesh.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)};Mesh.prototype[\"set_num_points\"]=Mesh.prototype.set_num_points=function(num_points){var self=this.ptr;if(num_points&&typeof num_points===\"object\")num_points=num_points.ptr;_emscripten_bind_Mesh_set_num_points_1(self,num_points)};Mesh.prototype[\"__destroy__\"]=Mesh.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)};function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module[\"Metadata\"]=Metadata;Metadata.prototype[\"__destroy__\"]=Metadata.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)};function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module[\"DracoInt8Array\"]=DracoInt8Array;DracoInt8Array.prototype[\"GetValue\"]=DracoInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,index)};DracoInt8Array.prototype[\"size\"]=DracoInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)};DracoInt8Array.prototype[\"__destroy__\"]=DracoInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)};function MetadataBuilder(){this.ptr=_emscripten_bind_MetadataBuilder_MetadataBuilder_0();getCache(MetadataBuilder)[this.ptr]=this}MetadataBuilder.prototype=Object.create(WrapperObject.prototype);MetadataBuilder.prototype.constructor=MetadataBuilder;MetadataBuilder.prototype.__class__=MetadataBuilder;MetadataBuilder.__cache__={};Module[\"MetadataBuilder\"]=MetadataBuilder;MetadataBuilder.prototype[\"AddStringEntry\"]=MetadataBuilder.prototype.AddStringEntry=function(metadata,entry_name,entry_value){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(entry_value&&typeof entry_value===\"object\")entry_value=entry_value.ptr;else entry_value=ensureString(entry_value);return!!_emscripten_bind_MetadataBuilder_AddStringEntry_3(self,metadata,entry_name,entry_value)};MetadataBuilder.prototype[\"AddIntEntry\"]=MetadataBuilder.prototype.AddIntEntry=function(metadata,entry_name,entry_value){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(entry_value&&typeof entry_value===\"object\")entry_value=entry_value.ptr;return!!_emscripten_bind_MetadataBuilder_AddIntEntry_3(self,metadata,entry_name,entry_value)};MetadataBuilder.prototype[\"AddIntEntryArray\"]=MetadataBuilder.prototype.AddIntEntryArray=function(metadata,entry_name,att_values,num_values){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}if(num_values&&typeof num_values===\"object\")num_values=num_values.ptr;return!!_emscripten_bind_MetadataBuilder_AddIntEntryArray_4(self,metadata,entry_name,att_values,num_values)};MetadataBuilder.prototype[\"AddDoubleEntry\"]=MetadataBuilder.prototype.AddDoubleEntry=function(metadata,entry_name,entry_value){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(entry_value&&typeof entry_value===\"object\")entry_value=entry_value.ptr;return!!_emscripten_bind_MetadataBuilder_AddDoubleEntry_3(self,metadata,entry_name,entry_value)};MetadataBuilder.prototype[\"__destroy__\"]=MetadataBuilder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MetadataBuilder___destroy___0(self)};function PointCloudBuilder(){this.ptr=_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0();getCache(PointCloudBuilder)[this.ptr]=this}PointCloudBuilder.prototype=Object.create(WrapperObject.prototype);PointCloudBuilder.prototype.constructor=PointCloudBuilder;PointCloudBuilder.prototype.__class__=PointCloudBuilder;PointCloudBuilder.__cache__={};Module[\"PointCloudBuilder\"]=PointCloudBuilder;PointCloudBuilder.prototype[\"AddFloatAttribute\"]=PointCloudBuilder.prototype.AddFloatAttribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureFloat32(att_values)}return _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddInt8Attribute\"]=PointCloudBuilder.prototype.AddInt8Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt8(att_values)}return _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddUInt8Attribute\"]=PointCloudBuilder.prototype.AddUInt8Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt8(att_values)}return _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddInt16Attribute\"]=PointCloudBuilder.prototype.AddInt16Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt16(att_values)}return _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddUInt16Attribute\"]=PointCloudBuilder.prototype.AddUInt16Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt16(att_values)}return _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddInt32Attribute\"]=PointCloudBuilder.prototype.AddInt32Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddUInt32Attribute\"]=PointCloudBuilder.prototype.AddUInt32Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddMetadata\"]=PointCloudBuilder.prototype.AddMetadata=function(pc,metadata){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_PointCloudBuilder_AddMetadata_2(self,pc,metadata)};PointCloudBuilder.prototype[\"SetMetadataForAttribute\"]=PointCloudBuilder.prototype.SetMetadataForAttribute=function(pc,attribute_id,metadata){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(attribute_id&&typeof attribute_id===\"object\")attribute_id=attribute_id.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3(self,pc,attribute_id,metadata)};PointCloudBuilder.prototype[\"SetNormalizedFlagForAttribute\"]=PointCloudBuilder.prototype.SetNormalizedFlagForAttribute=function(pc,attribute_id,normalized){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(attribute_id&&typeof attribute_id===\"object\")attribute_id=attribute_id.ptr;if(normalized&&typeof normalized===\"object\")normalized=normalized.ptr;return!!_emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3(self,pc,attribute_id,normalized)};PointCloudBuilder.prototype[\"__destroy__\"]=PointCloudBuilder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloudBuilder___destroy___0(self)};function MeshBuilder(){this.ptr=_emscripten_bind_MeshBuilder_MeshBuilder_0();getCache(MeshBuilder)[this.ptr]=this}MeshBuilder.prototype=Object.create(WrapperObject.prototype);MeshBuilder.prototype.constructor=MeshBuilder;MeshBuilder.prototype.__class__=MeshBuilder;MeshBuilder.__cache__={};Module[\"MeshBuilder\"]=MeshBuilder;MeshBuilder.prototype[\"AddFacesToMesh\"]=MeshBuilder.prototype.AddFacesToMesh=function(mesh,num_faces,faces){var self=this.ptr;ensureCache.prepare();if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(num_faces&&typeof num_faces===\"object\")num_faces=num_faces.ptr;if(typeof faces==\"object\"){faces=ensureInt32(faces)}return!!_emscripten_bind_MeshBuilder_AddFacesToMesh_3(self,mesh,num_faces,faces)};MeshBuilder.prototype[\"AddFloatAttributeToMesh\"]=MeshBuilder.prototype.AddFloatAttributeToMesh=function(mesh,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureFloat32(att_values)}return _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5(self,mesh,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddInt32AttributeToMesh\"]=MeshBuilder.prototype.AddInt32AttributeToMesh=function(mesh,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5(self,mesh,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddMetadataToMesh\"]=MeshBuilder.prototype.AddMetadataToMesh=function(mesh,metadata){var self=this.ptr;if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_MeshBuilder_AddMetadataToMesh_2(self,mesh,metadata)};MeshBuilder.prototype[\"AddFloatAttribute\"]=MeshBuilder.prototype.AddFloatAttribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureFloat32(att_values)}return _emscripten_bind_MeshBuilder_AddFloatAttribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddInt8Attribute\"]=MeshBuilder.prototype.AddInt8Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt8(att_values)}return _emscripten_bind_MeshBuilder_AddInt8Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddUInt8Attribute\"]=MeshBuilder.prototype.AddUInt8Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt8(att_values)}return _emscripten_bind_MeshBuilder_AddUInt8Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddInt16Attribute\"]=MeshBuilder.prototype.AddInt16Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt16(att_values)}return _emscripten_bind_MeshBuilder_AddInt16Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddUInt16Attribute\"]=MeshBuilder.prototype.AddUInt16Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt16(att_values)}return _emscripten_bind_MeshBuilder_AddUInt16Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddInt32Attribute\"]=MeshBuilder.prototype.AddInt32Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_MeshBuilder_AddInt32Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddUInt32Attribute\"]=MeshBuilder.prototype.AddUInt32Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_MeshBuilder_AddUInt32Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddMetadata\"]=MeshBuilder.prototype.AddMetadata=function(pc,metadata){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_MeshBuilder_AddMetadata_2(self,pc,metadata)};MeshBuilder.prototype[\"SetMetadataForAttribute\"]=MeshBuilder.prototype.SetMetadataForAttribute=function(pc,attribute_id,metadata){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(attribute_id&&typeof attribute_id===\"object\")attribute_id=attribute_id.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3(self,pc,attribute_id,metadata)};MeshBuilder.prototype[\"SetNormalizedFlagForAttribute\"]=MeshBuilder.prototype.SetNormalizedFlagForAttribute=function(pc,attribute_id,normalized){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(attribute_id&&typeof attribute_id===\"object\")attribute_id=attribute_id.ptr;if(normalized&&typeof normalized===\"object\")normalized=normalized.ptr;return!!_emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3(self,pc,attribute_id,normalized)};MeshBuilder.prototype[\"__destroy__\"]=MeshBuilder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MeshBuilder___destroy___0(self)};function Encoder(){this.ptr=_emscripten_bind_Encoder_Encoder_0();getCache(Encoder)[this.ptr]=this}Encoder.prototype=Object.create(WrapperObject.prototype);Encoder.prototype.constructor=Encoder;Encoder.prototype.__class__=Encoder;Encoder.__cache__={};Module[\"Encoder\"]=Encoder;Encoder.prototype[\"SetEncodingMethod\"]=Encoder.prototype.SetEncodingMethod=function(method){var self=this.ptr;if(method&&typeof method===\"object\")method=method.ptr;_emscripten_bind_Encoder_SetEncodingMethod_1(self,method)};Encoder.prototype[\"SetAttributeQuantization\"]=Encoder.prototype.SetAttributeQuantization=function(type,quantization_bits){var self=this.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(quantization_bits&&typeof quantization_bits===\"object\")quantization_bits=quantization_bits.ptr;_emscripten_bind_Encoder_SetAttributeQuantization_2(self,type,quantization_bits)};Encoder.prototype[\"SetAttributeExplicitQuantization\"]=Encoder.prototype.SetAttributeExplicitQuantization=function(type,quantization_bits,num_components,origin,range){var self=this.ptr;ensureCache.prepare();if(type&&typeof type===\"object\")type=type.ptr;if(quantization_bits&&typeof quantization_bits===\"object\")quantization_bits=quantization_bits.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof origin==\"object\"){origin=ensureFloat32(origin)}if(range&&typeof range===\"object\")range=range.ptr;_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5(self,type,quantization_bits,num_components,origin,range)};Encoder.prototype[\"SetSpeedOptions\"]=Encoder.prototype.SetSpeedOptions=function(encoding_speed,decoding_speed){var self=this.ptr;if(encoding_speed&&typeof encoding_speed===\"object\")encoding_speed=encoding_speed.ptr;if(decoding_speed&&typeof decoding_speed===\"object\")decoding_speed=decoding_speed.ptr;_emscripten_bind_Encoder_SetSpeedOptions_2(self,encoding_speed,decoding_speed)};Encoder.prototype[\"SetTrackEncodedProperties\"]=Encoder.prototype.SetTrackEncodedProperties=function(flag){var self=this.ptr;if(flag&&typeof flag===\"object\")flag=flag.ptr;_emscripten_bind_Encoder_SetTrackEncodedProperties_1(self,flag)};Encoder.prototype[\"EncodeMeshToDracoBuffer\"]=Encoder.prototype.EncodeMeshToDracoBuffer=function(mesh,encoded_data){var self=this.ptr;if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(encoded_data&&typeof encoded_data===\"object\")encoded_data=encoded_data.ptr;return _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2(self,mesh,encoded_data)};Encoder.prototype[\"EncodePointCloudToDracoBuffer\"]=Encoder.prototype.EncodePointCloudToDracoBuffer=function(pc,deduplicate_values,encoded_data){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(deduplicate_values&&typeof deduplicate_values===\"object\")deduplicate_values=deduplicate_values.ptr;if(encoded_data&&typeof encoded_data===\"object\")encoded_data=encoded_data.ptr;return _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3(self,pc,deduplicate_values,encoded_data)};Encoder.prototype[\"GetNumberOfEncodedPoints\"]=Encoder.prototype.GetNumberOfEncodedPoints=function(){var self=this.ptr;return _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0(self)};Encoder.prototype[\"GetNumberOfEncodedFaces\"]=Encoder.prototype.GetNumberOfEncodedFaces=function(){var self=this.ptr;return _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0(self)};Encoder.prototype[\"__destroy__\"]=Encoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Encoder___destroy___0(self)};function ExpertEncoder(pc){if(pc&&typeof pc===\"object\")pc=pc.ptr;this.ptr=_emscripten_bind_ExpertEncoder_ExpertEncoder_1(pc);getCache(ExpertEncoder)[this.ptr]=this}ExpertEncoder.prototype=Object.create(WrapperObject.prototype);ExpertEncoder.prototype.constructor=ExpertEncoder;ExpertEncoder.prototype.__class__=ExpertEncoder;ExpertEncoder.__cache__={};Module[\"ExpertEncoder\"]=ExpertEncoder;ExpertEncoder.prototype[\"SetEncodingMethod\"]=ExpertEncoder.prototype.SetEncodingMethod=function(method){var self=this.ptr;if(method&&typeof method===\"object\")method=method.ptr;_emscripten_bind_ExpertEncoder_SetEncodingMethod_1(self,method)};ExpertEncoder.prototype[\"SetAttributeQuantization\"]=ExpertEncoder.prototype.SetAttributeQuantization=function(att_id,quantization_bits){var self=this.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;if(quantization_bits&&typeof quantization_bits===\"object\")quantization_bits=quantization_bits.ptr;_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2(self,att_id,quantization_bits)};ExpertEncoder.prototype[\"SetAttributeExplicitQuantization\"]=ExpertEncoder.prototype.SetAttributeExplicitQuantization=function(att_id,quantization_bits,num_components,origin,range){var self=this.ptr;ensureCache.prepare();if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;if(quantization_bits&&typeof quantization_bits===\"object\")quantization_bits=quantization_bits.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof origin==\"object\"){origin=ensureFloat32(origin)}if(range&&typeof range===\"object\")range=range.ptr;_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5(self,att_id,quantization_bits,num_components,origin,range)};ExpertEncoder.prototype[\"SetSpeedOptions\"]=ExpertEncoder.prototype.SetSpeedOptions=function(encoding_speed,decoding_speed){var self=this.ptr;if(encoding_speed&&typeof encoding_speed===\"object\")encoding_speed=encoding_speed.ptr;if(decoding_speed&&typeof decoding_speed===\"object\")decoding_speed=decoding_speed.ptr;_emscripten_bind_ExpertEncoder_SetSpeedOptions_2(self,encoding_speed,decoding_speed)};ExpertEncoder.prototype[\"SetTrackEncodedProperties\"]=ExpertEncoder.prototype.SetTrackEncodedProperties=function(flag){var self=this.ptr;if(flag&&typeof flag===\"object\")flag=flag.ptr;_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1(self,flag)};ExpertEncoder.prototype[\"EncodeToDracoBuffer\"]=ExpertEncoder.prototype.EncodeToDracoBuffer=function(deduplicate_values,encoded_data){var self=this.ptr;if(deduplicate_values&&typeof deduplicate_values===\"object\")deduplicate_values=deduplicate_values.ptr;if(encoded_data&&typeof encoded_data===\"object\")encoded_data=encoded_data.ptr;return _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2(self,deduplicate_values,encoded_data)};ExpertEncoder.prototype[\"GetNumberOfEncodedPoints\"]=ExpertEncoder.prototype.GetNumberOfEncodedPoints=function(){var self=this.ptr;return _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0(self)};ExpertEncoder.prototype[\"GetNumberOfEncodedFaces\"]=ExpertEncoder.prototype.GetNumberOfEncodedFaces=function(){var self=this.ptr;return _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0(self)};ExpertEncoder.prototype[\"__destroy__\"]=ExpertEncoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_ExpertEncoder___destroy___0(self)};(function(){function setupEnums(){Module[\"INVALID\"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module[\"POSITION\"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module[\"NORMAL\"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module[\"COLOR\"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module[\"TEX_COORD\"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module[\"GENERIC\"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC();Module[\"INVALID_GEOMETRY_TYPE\"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module[\"POINT_CLOUD\"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module[\"TRIANGULAR_MESH\"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module[\"MESH_SEQUENTIAL_ENCODING\"]=_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING();Module[\"MESH_EDGEBREAKER_ENCODING\"]=_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING()}if(runtimeInitialized)setupEnums();else addOnInit(setupEnums)})();if(typeof Module[\"onModuleParsed\"]===\"function\"){Module[\"onModuleParsed\"]()}\n\n\n  return DracoEncoderModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DracoEncoderModule;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DracoEncoderModule; });\nelse if (typeof exports === 'object')\n  exports[\"DracoEncoderModule\"] = DracoEncoderModule;\n"
  },
  {
    "path": "packages/editor/public/libs/draco/draco_encoder_wrapper.js",
    "content": "var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(l){var p=0;return function(){return p<l.length?{done:!1,value:l[p++]}:{done:!0}}};$jscomp.arrayIterator=function(l){return{next:$jscomp.arrayIteratorImpl(l)}};$jscomp.makeIterator=function(l){var p=\"undefined\"!=typeof Symbol&&Symbol.iterator&&l[Symbol.iterator];return p?p.call(l):$jscomp.arrayIterator(l)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(l){l=[\"object\"==typeof globalThis&&globalThis,l,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var p=0;p<l.length;++p){var m=l[p];if(m&&m.Math==Math)return m}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(l,p,m){if(l==Array.prototype||l==Object.prototype)return l;l[p]=m.value;return l};$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";\nvar $jscomp$lookupPolyfilledValue=function(l,p){var m=$jscomp.propertyToPolyfillSymbol[p];if(null==m)return l[p];m=l[m];return void 0!==m?m:l[p]};$jscomp.polyfill=function(l,p,m,r){p&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(l,p,m,r):$jscomp.polyfillUnisolated(l,p,m,r))};\n$jscomp.polyfillUnisolated=function(l,p,m,r){m=$jscomp.global;l=l.split(\".\");for(r=0;r<l.length-1;r++){var k=l[r];if(!(k in m))return;m=m[k]}l=l[l.length-1];r=m[l];p=p(r);p!=r&&null!=p&&$jscomp.defineProperty(m,l,{configurable:!0,writable:!0,value:p})};\n$jscomp.polyfillIsolated=function(l,p,m,r){var k=l.split(\".\");l=1===k.length;r=k[0];r=!l&&r in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var C=0;C<k.length-1;C++){var h=k[C];if(!(h in r))return;r=r[h]}k=k[k.length-1];m=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===m?r[k]:null;p=p(m);null!=p&&(l?$jscomp.defineProperty($jscomp.polyfills,k,{configurable:!0,writable:!0,value:p}):p!==m&&(void 0===$jscomp.propertyToPolyfillSymbol[k]&&(m=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE?\n$jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+\"$\"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))};\n$jscomp.polyfill(\"Promise\",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,w){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&\"undefined\"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf(\"[native code]\")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)};\nvar r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q<h.length;++q){var w=h[q];h[q]=null;try{w()}catch(B){this.asyncThrow_(B)}}}this.batch_=null};p.prototype.asyncThrow_=function(h){this.asyncExecuteFunction(function(){throw h;})};var k=function(h){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();\ntry{h(q.resolve,q.reject)}catch(w){q.reject(w)}};k.prototype.createResolveAndReject_=function(){function h(B){return function(v){w||(w=!0,B.call(q,v))}}var q=this,w=!1;return{resolve:h(this.resolveTo_),reject:h(this.reject_)}};k.prototype.resolveTo_=function(h){if(h===this)this.reject_(new TypeError(\"A Promise cannot resolve to itself\"));else if(h instanceof k)this.settleSameAsPromise_(h);else{a:switch(typeof h){case \"object\":var q=null!=h;break a;case \"function\":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(h):\nthis.fulfill_(h)}};k.prototype.resolveToNonPromiseObj_=function(h){var q=void 0;try{q=h.then}catch(w){this.reject_(w);return}\"function\"==typeof q?this.settleSameAsThenable_(q,h):this.fulfill_(h)};k.prototype.reject_=function(h){this.settle_(2,h)};k.prototype.fulfill_=function(h){this.settle_(1,h)};k.prototype.settle_=function(h,q){if(0!=this.state_)throw Error(\"Cannot settle(\"+h+\", \"+q+\"): Promise already settled in state\"+this.state_);this.state_=h;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();\nthis.executeOnSettledCallbacks_()};k.prototype.scheduleUnhandledRejectionCheck_=function(){var h=this;r(function(){if(h.notifyUnhandledRejection_()){var q=$jscomp.global.console;\"undefined\"!==typeof q&&q.error(h.result_)}},1)};k.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var h=$jscomp.global.CustomEvent,q=$jscomp.global.Event,w=$jscomp.global.dispatchEvent;if(\"undefined\"===typeof w)return!0;\"function\"===typeof h?h=new h(\"unhandledrejection\",{cancelable:!0}):\n\"function\"===typeof q?h=new q(\"unhandledrejection\",{cancelable:!0}):(h=$jscomp.global.document.createEvent(\"CustomEvent\"),h.initCustomEvent(\"unhandledrejection\",!1,!0,h));h.promise=this;h.reason=this.result_;return w(h)};k.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var h=0;h<this.onSettledCallbacks_.length;++h)C.asyncExecute(this.onSettledCallbacks_[h]);this.onSettledCallbacks_=null}};var C=new p;k.prototype.settleSameAsPromise_=function(h){var q=this.createResolveAndReject_();\nh.callWhenSettled_(q.resolve,q.reject)};k.prototype.settleSameAsThenable_=function(h,q){var w=this.createResolveAndReject_();try{h.call(q,w.resolve,w.reject)}catch(B){w.reject(B)}};k.prototype.then=function(h,q){function w(I,J){return\"function\"==typeof I?function(Q){try{B(I(Q))}catch(R){v(R)}}:J}var B,v,D=new k(function(I,J){B=I;v=J});this.callWhenSettled_(w(h,B),w(q,v));return D};k.prototype.catch=function(h){return this.then(void 0,h)};k.prototype.callWhenSettled_=function(h,q){function w(){switch(B.state_){case 1:h(B.result_);\nbreak;case 2:q(B.result_);break;default:throw Error(\"Unexpected state: \"+B.state_);}}var B=this;null==this.onSettledCallbacks_?C.asyncExecute(w):this.onSettledCallbacks_.push(w);this.isRejectionHandled_=!0};k.resolve=m;k.reject=function(h){return new k(function(q,w){w(h)})};k.race=function(h){return new k(function(q,w){for(var B=$jscomp.makeIterator(h),v=B.next();!v.done;v=B.next())m(v.value).callWhenSettled_(q,w)})};k.all=function(h){var q=$jscomp.makeIterator(h),w=q.next();return w.done?m([]):new k(function(B,\nv){function D(Q){return function(R){I[Q]=R;J--;0==J&&B(I)}}var I=[],J=0;do I.push(void 0),J++,m(w.value).callWhenSettled_(D(I.length-1),v),w=q.next();while(!w.done)})};return k},\"es6\",\"es3\");$jscomp.owns=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&\"function\"==typeof Object.assign?Object.assign:function(l,p){for(var m=1;m<arguments.length;m++){var r=arguments[m];if(r)for(var k in r)$jscomp.owns(r,k)&&(l[k]=r[k])}return l};\n$jscomp.polyfill(\"Object.assign\",function(l){return l||$jscomp.assign},\"es6\",\"es3\");$jscomp.checkStringArgs=function(l,p,m){if(null==l)throw new TypeError(\"The 'this' value for String.prototype.\"+m+\" must not be null or undefined\");if(p instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+m+\" must not be a regular expression\");return l+\"\"};\n$jscomp.polyfill(\"String.prototype.startsWith\",function(l){return l?l:function(p,m){var r=$jscomp.checkStringArgs(this,p,\"startsWith\");p+=\"\";var k=r.length,C=p.length;m=Math.max(0,Math.min(m|0,r.length));for(var h=0;h<C&&m<k;)if(r[m++]!=p[h++])return!1;return h>=C}},\"es6\",\"es3\");\n$jscomp.polyfill(\"Array.prototype.copyWithin\",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(m<r)for(;r<k;)r in this?this[m++]=this[r++]:(delete this[m++],r++);else for(k=Math.min(k,C+r-m),m+=k-r;k>r;)--k in this?this[--m]=this[k]:delete this[--m];return this}},\"es6\",\"es3\");\n$jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill(\"Int8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8ClampedArray.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\n$jscomp.polyfill(\"Uint16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float64Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\nvar DracoEncoderModule=function(){var l=\"undefined\"!==typeof document&&document.currentScript?document.currentScript.src:void 0;\"undefined\"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(){var f=ba.buffer;a.HEAP8=O=new Int8Array(f);a.HEAP16=ea=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=fa=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ha=new Float32Array(f);a.HEAPF64=\nnew Float64Array(f)}function k(f){if(a.onAbort)a.onAbort(f);f=\"Aborted(\"+f+\")\";W(f);na=!0;f=new WebAssembly.RuntimeError(f+\". Build with -sASSERTIONS for more info.\");ca(f);throw f;}function C(f){try{if(f==K&&X)return new Uint8Array(X);if(ia)return ia(f);throw\"both async and sync fetching of the wasm failed\";}catch(b){k(b)}}function h(){if(!X&&(oa||Y)){if(\"function\"==typeof fetch&&!K.startsWith(\"file://\"))return fetch(K,{credentials:\"same-origin\"}).then(function(f){if(!f.ok)throw\"failed to load wasm binary file at '\"+\nK+\"'\";return f.arrayBuffer()}).catch(function(){return C(K)});if(ja)return new Promise(function(f,b){ja(K,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(K)})}function q(f){for(;0<f.length;)f.shift()(a)}function w(f){this.excPtr=f;this.ptr=f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=\nfunction(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>\n2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(){function f(){if(!da&&(da=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift());\nq(sa)}}if(!(0<U)){if(a.preRun)for(\"function\"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ta.unshift(a.preRun.shift());q(ta);0<U||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){a.setStatus(\"\")},1);f()},1)):f())}}function v(){}function D(f){return(f||v).__cache__}function I(f,b){var c=D(b),d=c[f];if(d)return d;d=Object.create((b||v).prototype);d.ptr=f;return c[f]=d}function J(f){if(\"string\"===typeof f){for(var b=0,c=0;c<f.length;++c){var d=f.charCodeAt(c);\n127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var e=0;e<f.length;++e){var g=f.charCodeAt(e);if(55296<=g&&57343>=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f}\nfunction Q(f){if(\"object\"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if(\"object\"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if(\"object\"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if(\"object\"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw\"cannot construct a VoidPtr, no constructor in IDL\";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va();\nD(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&\"object\"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=void 0===p?{}:p;var a=\n\"undefined\"!=typeof p?p:{},ra,ca;a.ready=new Promise(function(f,b){ra=f;ca=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if(\"string\"!==typeof f)return!1;f=f.split(\".\");return 2>f.length||3<f.length?!1:1==f[0]&&0<=f[1]&&5>=f[1]?!0:0!=f[0]||10<f[1]?!1:!0};var Ha=Object.assign({},a),oa=\"object\"==\ntypeof window,Y=\"function\"==typeof importScripts,Ia=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,L=\"\";if(Ia){var Ja=require(\"fs\"),la=require(\"path\");L=Y?la.dirname(L)+\"/\":__dirname+\"/\";var Ka=function(f,b){f=f.startsWith(\"file://\")?new URL(f):la.normalize(f);return Ja.readFileSync(f,b?void 0:\"utf8\")};var ia=function(f){f=Ka(f,!0);f.buffer||(f=new Uint8Array(f));return f};var ja=function(f,b,c){f=f.startsWith(\"file://\")?new URL(f):la.normalize(f);\nJa.readFile(f,function(d,e){d?c(d):b(e.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\/g,\"/\");process.argv.slice(2);a.inspect=function(){return\"[Emscripten Module object]\"}}else if(oa||Y)Y?L=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(L=document.currentScript.src),l&&(L=l),L=0!==L.indexOf(\"blob:\")?L.substr(0,L.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",Ka=function(f){var b=new XMLHttpRequest;b.open(\"GET\",f,!1);b.send(null);return b.responseText},Y&&(ia=\nfunction(f){var b=new XMLHttpRequest;b.open(\"GET\",f,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)}),ja=function(f,b,c){var d=new XMLHttpRequest;d.open(\"GET\",f,!0);d.responseType=\"arraybuffer\";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var W=a.printErr||console.warn.bind(console);Object.assign(a,Ha);Ha=null;var X;a.wasmBinary&&(X=a.wasmBinary);\"object\"!=typeof WebAssembly&&\nk(\"no native wasm support detected\");var ba,na=!1,O,fa,ea,S,T,ha,ta=[],ka=[],sa=[],qa=!1,U=0,ma=null,aa=null;var K=\"draco_encoder.wasm\";K.startsWith(\"data:application/octet-stream;base64,\")||(K=m(K));var pc=0,qc={b:function(f,b,c){(new w(f)).init(b,c);pc++;throw f;},a:function(){k(\"\")},d:function(f,b,c){fa.copyWithin(f,b,b+c)},c:function(f){var b=fa.length;f>>>=0;if(2147483648<f)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,\nd+(65536-d%65536)%65536);a:{d=ba.buffer;try{ba.grow(e-d.byteLength+65535>>>16);r();var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;ba=a.asm.e;r();ka.unshift(a.asm.f);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==ma&&(clearInterval(ma),ma=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W(\"failed to asynchronously prepare wasm: \"+\ng);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W(\"Module.instantiateWasm callback failed with error: \"+e),ca(e)}(function(){return X||\"function\"!=typeof WebAssembly.instantiateStreaming||K.startsWith(\"data:application/octet-stream;base64,\")||K.startsWith(\"file://\")||Ia||\"function\"!=typeof fetch?c(b):fetch(K,{credentials:\"same-origin\"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,\nfunction(g){W(\"wasm streaming compile failed: \"+g);W(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ca);return{}})();var La=a._emscripten_bind_VoidPtr___destroy___0=function(){return(La=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.i).apply(null,arguments)},Ma=a._emscripten_bind_GeometryAttribute___destroy___0=\nfunction(){return(Ma=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.j).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.k).apply(null,arguments)},Na=a._emscripten_bind_PointAttribute_size_0=function(){return(Na=a._emscripten_bind_PointAttribute_size_0=a.asm.l).apply(null,arguments)},Oa=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Oa=a._emscripten_bind_PointAttribute_attribute_type_0=\na.asm.m).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Pa=a._emscripten_bind_PointAttribute_data_type_0=a.asm.n).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Qa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.o).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ra=a._emscripten_bind_PointAttribute_normalized_0=a.asm.p).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_byte_stride_0=\nfunction(){return(Sa=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.q).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Ta=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.r).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Ua=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.s).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute___destroy___0=function(){return(Va=a._emscripten_bind_PointAttribute___destroy___0=\na.asm.t).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.u).apply(null,arguments)},Wa=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Wa=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.v).apply(null,arguments)},Xa=a._emscripten_bind_PointCloud_num_points_0=function(){return(Xa=a._emscripten_bind_PointCloud_num_points_0=a.asm.w).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud___destroy___0=\nfunction(){return(Ya=a._emscripten_bind_PointCloud___destroy___0=a.asm.x).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.y).apply(null,arguments)},Za=a._emscripten_bind_Mesh_num_faces_0=function(){return(Za=a._emscripten_bind_Mesh_num_faces_0=a.asm.z).apply(null,arguments)},$a=a._emscripten_bind_Mesh_num_attributes_0=function(){return($a=a._emscripten_bind_Mesh_num_attributes_0=a.asm.A).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_points_0=\nfunction(){return(ab=a._emscripten_bind_Mesh_num_points_0=a.asm.B).apply(null,arguments)},bb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(bb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.C).apply(null,arguments)},cb=a._emscripten_bind_Mesh___destroy___0=function(){return(cb=a._emscripten_bind_Mesh___destroy___0=a.asm.D).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0=a.asm.E).apply(null,arguments)},db=a._emscripten_bind_Metadata___destroy___0=\nfunction(){return(db=a._emscripten_bind_Metadata___destroy___0=a.asm.F).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.G).apply(null,arguments)},eb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(eb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.H).apply(null,arguments)},fb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(fb=a._emscripten_bind_DracoInt8Array_size_0=\na.asm.I).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(gb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.J).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.K).apply(null,arguments)},hb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(hb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.L).apply(null,arguments)},\nib=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ib=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.M).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.N).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.O).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder___destroy___0=\nfunction(){return(lb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.P).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.Q).apply(null,arguments)},mb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(mb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.R).apply(null,arguments)},nb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=\nfunction(){return(nb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.S).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.T).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.U).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=\nfunction(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.V).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.W).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.X).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=\nfunction(){return(tb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Y).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(ub=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm.Z).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=function(){return(vb=a._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=a.asm._).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder___destroy___0=\nfunction(){return(wb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},xb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(xb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=\na.asm.ca).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,\narguments)},Cb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=\nfunction(){return(Fb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddMetadata_2=\na.asm.ma).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Jb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=a.asm.oa).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0=\na.asm.pa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.qa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.ra).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.sa).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=\nfunction(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.ta).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ua).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.va).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb=\na._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.wa).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.xa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.ya).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub=\na._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.za).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.Aa).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Ba).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=\na.asm.Ca).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Da).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Ea).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=\na.asm.Fa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Ga).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ha).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=\na.asm.Ia).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ja).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ka).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.La).apply(null,\narguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.Ma).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Na).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Oa).apply(null,\narguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Pa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Qa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=\na.asm.Ra).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Sa).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ta).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=\na.asm.Ua).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Va).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Wa).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Xa).apply(null,arguments)};var pa=function(){return(pa=a.asm.Ya).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var da;aa=function b(){da||B();\nda||(aa=b)};if(a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();B();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=v;a.getCache=D;a.wrapPointer=I;a.castObject=function(b,c){return I(b.ptr,c)};a.NULL=I(0);a.destroy=function(b){if(!b.__destroy__)throw\"Error: Cannot destroy object. (Did you create it yourself?)\";b.__destroy__();delete D(b.__class__)[b.ptr]};a.compare=function(b,\nc){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var b=0;b<n.temps.length;b++)a._free(n.temps[b]);n.temps.length=0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),n.buffer||k(void 0));n.pos=0},alloc:function(b,c){n.buffer||k(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;n.pos+b>=n.size?(0<b||k(void 0),\nn.needed+=b,c=a._malloc(b),n.temps.push(c)):(c=n.buffer+n.pos,n.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e<b.length;e++)c[d+e]=b[e]}};P.prototype=Object.create(v.prototype);P.prototype.constructor=P;P.prototype.__class__=P;P.__cache__={};a.VoidPtr=P;P.prototype.__destroy__=P.prototype.__destroy__=function(){La(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=\nM;M.__cache__={};a.GeometryAttribute=M;M.prototype.__destroy__=M.prototype.__destroy__=function(){Ma(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.PointAttribute=z;z.prototype.size=z.prototype.size=function(){return Na(this.ptr)};z.prototype.attribute_type=z.prototype.attribute_type=function(){return Oa(this.ptr)};z.prototype.data_type=z.prototype.data_type=function(){return Pa(this.ptr)};z.prototype.num_components=z.prototype.num_components=\nfunction(){return Qa(this.ptr)};z.prototype.normalized=z.prototype.normalized=function(){return!!Ra(this.ptr)};z.prototype.byte_stride=z.prototype.byte_stride=function(){return Sa(this.ptr)};z.prototype.byte_offset=z.prototype.byte_offset=function(){return Ta(this.ptr)};z.prototype.unique_id=z.prototype.unique_id=function(){return Ua(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){Va(this.ptr)};G.prototype=Object.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=\nG;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Wa(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Xa(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Ya(this.ptr)};E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Za(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=\nfunction(){return $a(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return ab(this.ptr)};E.prototype.set_num_points=E.prototype.set_num_points=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);bb(c,b)};E.prototype.__destroy__=E.prototype.__destroy__=function(){cb(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.Metadata=N;N.prototype.__destroy__=N.prototype.__destroy__=function(){db(this.ptr)};H.prototype=\nObject.create(v.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoInt8Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return eb(c,b)};H.prototype.size=H.prototype.size=function(){return fb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){gb(this.ptr)};F.prototype=Object.create(v.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.MetadataBuilder=F;F.prototype.AddStringEntry=\nF.prototype.AddStringEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:J(c);d=d&&\"object\"===typeof d?d.ptr:J(d);return!!hb(e,b,c,d)};F.prototype.AddIntEntry=F.prototype.AddIntEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:J(c);d&&\"object\"===typeof d&&(d=d.ptr);return!!ib(e,b,c,d)};F.prototype.AddIntEntryArray=F.prototype.AddIntEntryArray=function(b,c,d,e){var g=this.ptr;\nn.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:J(c);\"object\"==typeof d&&(d=V(d));e&&\"object\"===typeof e&&(e=e.ptr);return!!jb(g,b,c,d,e)};F.prototype.AddDoubleEntry=F.prototype.AddDoubleEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:J(c);d&&\"object\"===typeof d&&(d=d.ptr);return!!kb(e,b,c,d)};F.prototype.__destroy__=F.prototype.__destroy__=function(){lb(this.ptr)};x.prototype=Object.create(v.prototype);\nx.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.PointCloudBuilder=x;x.prototype.AddFloatAttribute=x.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Z(g));return mb(t,b,c,d,e,g)};x.prototype.AddInt8Attribute=x.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===\ntypeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Q(g));return nb(t,b,c,d,e,g)};x.prototype.AddUInt8Attribute=x.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Q(g));return ob(t,b,c,d,e,g)};x.prototype.AddInt16Attribute=\nx.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=R(g));return pb(t,b,c,d,e,g)};x.prototype.AddUInt16Attribute=x.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&\n(e=e.ptr);\"object\"==typeof g&&(g=R(g));return qb(t,b,c,d,e,g)};x.prototype.AddInt32Attribute=x.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return rb(t,b,c,d,e,g)};x.prototype.AddUInt32Attribute=x.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);\nc&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return sb(t,b,c,d,e,g)};x.prototype.AddMetadata=x.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return!!tb(d,b,c)};x.prototype.SetMetadataForAttribute=x.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===\ntypeof d&&(d=d.ptr);return!!ub(e,b,c,d)};x.prototype.SetNormalizedFlagForAttribute=x.prototype.SetNormalizedFlagForAttribute=function(b,c,d){var e=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!vb(e,b,c,d)};x.prototype.__destroy__=x.prototype.__destroy__=function(){wb(this.ptr)};u.prototype=Object.create(v.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.MeshBuilder=u;u.prototype.AddFacesToMesh=u.prototype.AddFacesToMesh=\nfunction(b,c,d){var e=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);\"object\"==typeof d&&(d=V(d));return!!xb(e,b,c,d)};u.prototype.AddFloatAttributeToMesh=u.prototype.AddFloatAttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Z(g));return yb(t,b,c,d,e,g)};u.prototype.AddInt32AttributeToMesh=\nu.prototype.AddInt32AttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return zb(t,b,c,d,e,g)};u.prototype.AddMetadataToMesh=u.prototype.AddMetadataToMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return!!Ab(d,b,c)};u.prototype.AddFloatAttribute=u.prototype.AddFloatAttribute=\nfunction(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Z(g));return Bb(t,b,c,d,e,g)};u.prototype.AddInt8Attribute=u.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Q(g));\nreturn Cb(t,b,c,d,e,g)};u.prototype.AddUInt8Attribute=u.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Q(g));return Db(t,b,c,d,e,g)};u.prototype.AddInt16Attribute=u.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===\ntypeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=R(g));return Eb(t,b,c,d,e,g)};u.prototype.AddUInt16Attribute=u.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=R(g));return Fb(t,b,c,d,e,g)};u.prototype.AddInt32Attribute=u.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return Gb(t,b,c,d,e,g)};u.prototype.AddUInt32Attribute=u.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return Hb(t,b,c,d,e,g)};u.prototype.AddMetadata=\nu.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return!!Ib(d,b,c)};u.prototype.SetMetadataForAttribute=u.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Jb(e,b,c,d)};u.prototype.SetNormalizedFlagForAttribute=u.prototype.SetNormalizedFlagForAttribute=function(b,c,d){var e=this.ptr;b&&\"object\"===typeof b&&\n(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Kb(e,b,c,d)};u.prototype.__destroy__=u.prototype.__destroy__=function(){Lb(this.ptr)};y.prototype=Object.create(v.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.Encoder=y;y.prototype.SetEncodingMethod=y.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Mb(c,b)};y.prototype.SetAttributeQuantization=y.prototype.SetAttributeQuantization=function(b,\nc){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);Nb(d,b,c)};y.prototype.SetAttributeExplicitQuantization=y.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);\"object\"==typeof e&&(e=Z(e));g&&\"object\"===typeof g&&(g=g.ptr);Ob(t,b,c,d,e,g)};y.prototype.SetSpeedOptions=y.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);Pb(d,b,c)};y.prototype.SetTrackEncodedProperties=y.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Qb(c,b)};y.prototype.EncodeMeshToDracoBuffer=y.prototype.EncodeMeshToDracoBuffer=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return Rb(d,b,c)};y.prototype.EncodePointCloudToDracoBuffer=y.prototype.EncodePointCloudToDracoBuffer=function(b,\nc,d){var e=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return Sb(e,b,c,d)};y.prototype.GetNumberOfEncodedPoints=y.prototype.GetNumberOfEncodedPoints=function(){return Tb(this.ptr)};y.prototype.GetNumberOfEncodedFaces=y.prototype.GetNumberOfEncodedFaces=function(){return Ub(this.ptr)};y.prototype.__destroy__=y.prototype.__destroy__=function(){Vb(this.ptr)};A.prototype=Object.create(v.prototype);A.prototype.constructor=A;A.prototype.__class__=\nA;A.__cache__={};a.ExpertEncoder=A;A.prototype.SetEncodingMethod=A.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Wb(c,b)};A.prototype.SetAttributeQuantization=A.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);Xb(d,b,c)};A.prototype.SetAttributeExplicitQuantization=A.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&\n(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);\"object\"==typeof e&&(e=Z(e));g&&\"object\"===typeof g&&(g=g.ptr);Yb(t,b,c,d,e,g)};A.prototype.SetSpeedOptions=A.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);Zb(d,b,c)};A.prototype.SetTrackEncodedProperties=A.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);$b(c,b)};A.prototype.EncodeToDracoBuffer=A.prototype.EncodeToDracoBuffer=\nfunction(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return ac(d,b,c)};A.prototype.GetNumberOfEncodedPoints=A.prototype.GetNumberOfEncodedPoints=function(){return bc(this.ptr)};A.prototype.GetNumberOfEncodedFaces=A.prototype.GetNumberOfEncodedFaces=function(){return cc(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=function(){dc(this.ptr)};(function(){function b(){a.INVALID=ec();a.POSITION=fc();a.NORMAL=gc();a.COLOR=hc();a.TEX_COORD=ic();a.GENERIC=\njc();a.INVALID_GEOMETRY_TYPE=kc();a.POINT_CLOUD=lc();a.TRIANGULAR_MESH=mc();a.MESH_SEQUENTIAL_ENCODING=nc();a.MESH_EDGEBREAKER_ENCODING=oc()}qa?b():ka.unshift(b)})();if(\"function\"===typeof a.onModuleParsed)a.onModuleParsed();return p.ready}}();\"object\"===typeof exports&&\"object\"===typeof module?module.exports=DracoEncoderModule:\"function\"===typeof define&&define.amd?define([],function(){return DracoEncoderModule}):\"object\"===typeof exports&&(exports.DracoEncoderModule=DracoEncoderModule);\n"
  },
  {
    "path": "packages/editor/public/libs/draco/draco_wasm_wrapper.js",
    "content": "var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(k){var n=0;return function(){return n<k.length?{done:!1,value:k[n++]}:{done:!0}}};$jscomp.arrayIterator=function(k){return{next:$jscomp.arrayIteratorImpl(k)}};$jscomp.makeIterator=function(k){var n=\"undefined\"!=typeof Symbol&&Symbol.iterator&&k[Symbol.iterator];return n?n.call(k):$jscomp.arrayIterator(k)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(k){k=[\"object\"==typeof globalThis&&globalThis,k,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var n=0;n<k.length;++n){var l=k[n];if(l&&l.Math==Math)return l}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(k,n,l){if(k==Array.prototype||k==Object.prototype)return k;k[n]=l.value;return k};$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";\nvar $jscomp$lookupPolyfilledValue=function(k,n){var l=$jscomp.propertyToPolyfillSymbol[n];if(null==l)return k[n];l=k[l];return void 0!==l?l:k[n]};$jscomp.polyfill=function(k,n,l,p){n&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,n,l,p):$jscomp.polyfillUnisolated(k,n,l,p))};\n$jscomp.polyfillUnisolated=function(k,n,l,p){l=$jscomp.global;k=k.split(\".\");for(p=0;p<k.length-1;p++){var h=k[p];if(!(h in l))return;l=l[h]}k=k[k.length-1];p=l[k];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(l,k,{configurable:!0,writable:!0,value:n})};\n$jscomp.polyfillIsolated=function(k,n,l,p){var h=k.split(\".\");k=1===h.length;p=h[0];p=!k&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var A=0;A<h.length-1;A++){var f=h[A];if(!(f in p))return;p=p[f]}h=h[h.length-1];l=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===l?p[h]:null;n=n(l);null!=n&&(k?$jscomp.defineProperty($jscomp.polyfills,h,{configurable:!0,writable:!0,value:n}):n!==l&&(void 0===$jscomp.propertyToPolyfillSymbol[h]&&(l=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[h]=$jscomp.IS_SYMBOL_NATIVE?\n$jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+\"$\"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))};\n$jscomp.polyfill(\"Promise\",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&\"undefined\"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf(\"[native code]\")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};\nvar p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var v=f[q];f[q]=null;try{v()}catch(z){this.asyncThrow_(z)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var h=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();\ntry{f(q.resolve,q.reject)}catch(v){q.reject(v)}};h.prototype.createResolveAndReject_=function(){function f(z){return function(O){v||(v=!0,z.call(q,O))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};h.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError(\"A Promise cannot resolve to itself\"));else if(f instanceof h)this.settleSameAsPromise_(f);else{a:switch(typeof f){case \"object\":var q=null!=f;break a;case \"function\":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):\nthis.fulfill_(f)}};h.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(v){this.reject_(v);return}\"function\"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};h.prototype.reject_=function(f){this.settle_(2,f)};h.prototype.fulfill_=function(f){this.settle_(1,f)};h.prototype.settle_=function(f,q){if(0!=this.state_)throw Error(\"Cannot settle(\"+f+\", \"+q+\"): Promise already settled in state\"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();\nthis.executeOnSettledCallbacks_()};h.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;\"undefined\"!==typeof q&&q.error(f.result_)}},1)};h.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if(\"undefined\"===typeof v)return!0;\"function\"===typeof f?f=new f(\"unhandledrejection\",{cancelable:!0}):\n\"function\"===typeof q?f=new q(\"unhandledrejection\",{cancelable:!0}):(f=$jscomp.global.document.createEvent(\"CustomEvent\"),f.initCustomEvent(\"unhandledrejection\",!1,!0,f));f.promise=this;f.reason=this.result_;return v(f)};h.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)A.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var A=new n;h.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();\nf.callWhenSettled_(q.resolve,q.reject)};h.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(z){v.reject(z)}};h.prototype.then=function(f,q){function v(t,x){return\"function\"==typeof t?function(D){try{z(t(D))}catch(R){O(R)}}:x}var z,O,ba=new h(function(t,x){z=t;O=x});this.callWhenSettled_(v(f,z),v(q,O));return ba};h.prototype.catch=function(f){return this.then(void 0,f)};h.prototype.callWhenSettled_=function(f,q){function v(){switch(z.state_){case 1:f(z.result_);\nbreak;case 2:q(z.result_);break;default:throw Error(\"Unexpected state: \"+z.state_);}}var z=this;null==this.onSettledCallbacks_?A.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};h.resolve=l;h.reject=function(f){return new h(function(q,v){v(f)})};h.race=function(f){return new h(function(q,v){for(var z=$jscomp.makeIterator(f),O=z.next();!O.done;O=z.next())l(O.value).callWhenSettled_(q,v)})};h.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?l([]):new h(function(z,\nO){function ba(D){return function(R){t[D]=R;x--;0==x&&z(t)}}var t=[],x=0;do t.push(void 0),x++,l(v.value).callWhenSettled_(ba(t.length-1),O),v=q.next();while(!v.done)})};return h},\"es6\",\"es3\");$jscomp.owns=function(k,n){return Object.prototype.hasOwnProperty.call(k,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&\"function\"==typeof Object.assign?Object.assign:function(k,n){for(var l=1;l<arguments.length;l++){var p=arguments[l];if(p)for(var h in p)$jscomp.owns(p,h)&&(k[h]=p[h])}return k};\n$jscomp.polyfill(\"Object.assign\",function(k){return k||$jscomp.assign},\"es6\",\"es3\");$jscomp.checkStringArgs=function(k,n,l){if(null==k)throw new TypeError(\"The 'this' value for String.prototype.\"+l+\" must not be null or undefined\");if(n instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+l+\" must not be a regular expression\");return k+\"\"};\n$jscomp.polyfill(\"String.prototype.startsWith\",function(k){return k?k:function(n,l){var p=$jscomp.checkStringArgs(this,n,\"startsWith\");n+=\"\";var h=p.length,A=n.length;l=Math.max(0,Math.min(l|0,p.length));for(var f=0;f<A&&l<h;)if(p[l++]!=n[f++])return!1;return f>=A}},\"es6\",\"es3\");\n$jscomp.polyfill(\"Array.prototype.copyWithin\",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(l<p)for(;p<h;)p in this?this[l++]=this[p++]:(delete this[l++],p++);else for(h=Math.min(h,A+p-l),l+=h-p;h>p;)--h in this?this[--l]=this[h]:delete this[--l];return this}},\"es6\",\"es3\");\n$jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill(\"Int8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8ClampedArray.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\n$jscomp.polyfill(\"Uint16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float64Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\nvar DracoDecoderModule=function(){var k=\"undefined\"!==typeof document&&document.currentScript?document.currentScript.src:void 0;\"undefined\"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16<c-b&&e.buffer&&va)return va.decode(e.subarray(b,c));for(d=\"\";b<c;){var g=e[b++];if(g&128){var u=e[b++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|u);else{var X=e[b++]&63;g=224==\n(g&240)?(g&15)<<12|u<<6|X:(g&7)<<18|u<<12|X<<6|e[b++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):\"\"}function A(){var e=ja.buffer;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e);\ne=\"Aborted(\"+e+\")\";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+\". Build with -sASSERTIONS for more info.\");ka(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw\"both async and sync fetching of the wasm failed\";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if(\"function\"==typeof fetch&&!P.startsWith(\"file://\"))return fetch(P,{credentials:\"same-origin\"}).then(function(e){if(!e.ok)throw\"failed to load wasm binary file at '\"+P+\"'\";return e.arrayBuffer()}).catch(function(){return q(P)});\nif(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0<e.length;)e.shift()(a)}function O(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+\n12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+\n16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(){function e(){if(!la&&(la=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0<aa)){if(a.preRun)for(\"function\"==\ntypeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Ca.unshift(a.preRun.shift());z(Ca);0<aa||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){a.setStatus(\"\")},1);e()},1)):e())}}function t(){}function x(e){return(e||t).__cache__}function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||t).prototype);d.ptr=e;return c[e]=d}function R(e){if(\"string\"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=\nd?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var u=e.charCodeAt(g);if(55296<=u&&57343>=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if(\"object\"===typeof e){var b=\nr.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw\"cannot construct a VoidPtr, no constructor in IDL\";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr=\nLa();x(T)[this.ptr]=this}function B(){throw\"cannot construct a Status, no constructor in IDL\";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]=\nthis}n=void 0===n?{}:n;var a=\"undefined\"!=typeof n?n:{},Aa,ka;a.ready=new Promise(function(e,b){Aa=e;ka=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if(\"string\"!==typeof e)return!1;e=e.split(\".\");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var Xa=\nObject.assign({},a),xa=\"object\"==typeof window,ha=\"function\"==typeof importScripts,Ya=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,U=\"\";if(Ya){var Za=require(\"fs\"),qa=require(\"path\");U=ha?qa.dirname(U)+\"/\":__dirname+\"/\";var $a=function(e,b){e=e.startsWith(\"file://\")?new URL(e):qa.normalize(e);return Za.readFileSync(e,b?void 0:\"utf8\")};var ma=function(e){e=$a(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,b,c){e=e.startsWith(\"file://\")?\nnew URL(e):qa.normalize(e);Za.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\/g,\"/\");process.argv.slice(2);a.inspect=function(){return\"[Emscripten Module object]\"}}else if(xa||ha)ha?U=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(U=document.currentScript.src),k&&(U=k),U=0!==U.indexOf(\"blob:\")?U.substr(0,U.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",$a=function(e){var b=new XMLHttpRequest;b.open(\"GET\",e,!1);b.send(null);\nreturn b.responseText},ha&&(ma=function(e){var b=new XMLHttpRequest;b.open(\"GET\",e,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open(\"GET\",e,!0);d.responseType=\"arraybuffer\";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var ud=a.print||console.log.bind(console),da=a.printErr||console.warn.bind(console);Object.assign(a,Xa);Xa=null;var fa;a.wasmBinary&&(fa=a.wasmBinary);\n\"object\"!=typeof WebAssembly&&f(\"no native wasm support detected\");var ja,wa=!1,va=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0,Y,ea,ca,V,Ca=[],oa=[],Ba=[],za=!1,aa=0,ra=null,ia=null;var P=\"draco_decoder.wasm\";P.startsWith(\"data:application/octet-stream;base64,\")||(P=l(P));var vd=0,wd=[null,[],[]],xd={b:function(e,b,c){(new O(e)).init(b,c);vd++;throw e;},a:function(){f(\"\")},g:function(e,b,c){ea.copyWithin(e,b,b+c)},e:function(e){var b=ea.length;e>>>=0;if(2147483648<e)return!1;for(var c=\n1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);A();var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},f:function(e){return 52},d:function(e,b,c,d,g){return 70},c:function(e,b,c,d){for(var g=0,u=0;u<c;u++){var X=V[b>>2],ab=V[b+4>>2];b+=8;for(var sa=0;sa<ab;sa++){var ta=ea[X+sa],ua=wd[e];0===ta||10===ta?((1===e?ud:da)(p(ua,0)),ua.length=0):ua.push(ta)}g+=\nab}V[d>>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;ja=a.asm.h;A();oa.unshift(a.asm.i);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==ra&&(clearInterval(ra),ra=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da(\"failed to asynchronously prepare wasm: \"+u);f(u)})}var d={a:xd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa);\nif(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da(\"Module.instantiateWasm callback failed with error: \"+g),ka(g)}(function(){return fa||\"function\"!=typeof WebAssembly.instantiateStreaming||P.startsWith(\"data:application/octet-stream;base64,\")||P.startsWith(\"file://\")||Ya||\"function\"!=typeof fetch?c(b):fetch(P,{credentials:\"same-origin\"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da(\"wasm streaming compile failed: \"+u);da(\"falling back to ArrayBuffer instantiation\");\nreturn c(b)})})})().catch(ka);return{}})();var bb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(bb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.k).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.l).apply(null,arguments)},cb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(cb=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.m).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer___destroy___0=\nfunction(){return(db=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.n).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.o).apply(null,arguments)},eb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(eb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.p).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData___destroy___0=\nfunction(){return(fb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.q).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.r).apply(null,arguments)},gb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(gb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.s).apply(null,arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga=\na._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.t).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_size_0=function(){return(hb=a._emscripten_bind_PointAttribute_size_0=a.asm.u).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.v).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(jb=a._emscripten_bind_PointAttribute_attribute_type_0=\na.asm.w).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(kb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.x).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(lb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.y).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(mb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.z).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_byte_stride_0=\nfunction(){return(nb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.A).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.B).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(pb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.C).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(qb=a._emscripten_bind_PointAttribute___destroy___0=\na.asm.D).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.E).apply(null,arguments)},rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.F).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=\nfunction(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.G).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.H).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.I).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=\nfunction(){return(vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.J).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.K).apply(null,arguments)},wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.L).apply(null,\narguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.M).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.N).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.O).apply(null,\narguments)},zb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(zb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.P).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_points_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_points_0=a.asm.Q).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloud___destroy___0=a.asm.R).apply(null,arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka=\na._emscripten_bind_Mesh_Mesh_0=a.asm.S).apply(null,arguments)},Cb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Cb=a._emscripten_bind_Mesh_num_faces_0=a.asm.T).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Db=a._emscripten_bind_Mesh_num_attributes_0=a.asm.U).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_points_0=function(){return(Eb=a._emscripten_bind_Mesh_num_points_0=a.asm.V).apply(null,arguments)},Fb=a._emscripten_bind_Mesh___destroy___0=function(){return(Fb=\na._emscripten_bind_Mesh___destroy___0=a.asm.W).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.X).apply(null,arguments)},Gb=a._emscripten_bind_Metadata___destroy___0=function(){return(Gb=a._emscripten_bind_Metadata___destroy___0=a.asm.Y).apply(null,arguments)},Hb=a._emscripten_bind_Status_code_0=function(){return(Hb=a._emscripten_bind_Status_code_0=a.asm.Z).apply(null,arguments)},Ib=a._emscripten_bind_Status_ok_0=function(){return(Ib=\na._emscripten_bind_Status_ok_0=a.asm._).apply(null,arguments)},Jb=a._emscripten_bind_Status_error_msg_0=function(){return(Jb=a._emscripten_bind_Status_error_msg_0=a.asm.$).apply(null,arguments)},Kb=a._emscripten_bind_Status___destroy___0=function(){return(Kb=a._emscripten_bind_Status___destroy___0=a.asm.aa).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ba).apply(null,arguments)},\nLb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.ca).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.da).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ea).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=\nfunction(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.fa).apply(null,arguments)},Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ga).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ha).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoInt8Array___destroy___0=\na.asm.ia).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ja).apply(null,arguments)},Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ka).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.la).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=\nfunction(){return(Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ma).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.na).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.oa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt16Array_size_0=\na.asm.pa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.qa).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.ra).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.sa).apply(null,arguments)},\nYb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ta).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ua).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.va).apply(null,arguments)},$b=a._emscripten_bind_DracoInt32Array_GetValue_1=\nfunction(){return($b=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.wa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt32Array_size_0=a.asm.xa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.ya).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=\na.asm.za).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Aa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ba).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(ec=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Ca).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=\nfunction(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Da).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ea).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Fa).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=\na.asm.Ga).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ha).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ia).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ja).apply(null,arguments)},\nlc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ka).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(mc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.La).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ma).apply(null,arguments)},nc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(nc=\na._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Na).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Oa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Pa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=\na.asm.Qa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Ra).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Sa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ta).apply(null,arguments)},\nuc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(uc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ua).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Va).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Wa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=\nfunction(){return(xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Xa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Ya).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Za).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ac=\na._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm._a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.$a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.ab).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Dc=\na._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.bb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.db).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=\nfunction(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.fb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=\nfunction(){return(Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.hb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.ib).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.jb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=\nfunction(){return(Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.kb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.lb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder___destroy___0=function(){return(Oc=a._emscripten_bind_Decoder___destroy___0=a.asm.mb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=\na.asm.nb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.ob).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.pb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=\nfunction(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.qb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.rb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.sb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=\nfunction(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.tb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.ub).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.vb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=\nfunction(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.wb).apply(null,arguments)},Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.xb).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.yb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=\nfunction(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.zb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Ab).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Bb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_UINT8=\na.asm.Cb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Db).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Eb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Fb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT32=\nfunction(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Gb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Hb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Ib).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Jb).apply(null,\narguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Kb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(md=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Lb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Mb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_OK=function(){return(od=\na._emscripten_enum_draco_StatusCode_OK=a.asm.Nb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Ob).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Pb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=\na.asm.Qb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Rb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Sb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Tb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Ub).apply(null,arguments)};\nvar ya=function(){return(ya=a.asm.Vb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var la;ia=function b(){la||ba();la||(ia=b)};if(a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();ba();t.prototype=Object.create(t.prototype);t.prototype.constructor=t;t.prototype.__class__=t;t.__cache__={};a.WrapperObject=t;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw\"Error: Cannot destroy object. (Did you create it yourself?)\";\nb.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||f(void 0));r.pos=0},alloc:function(b,c){r.buffer||f(void 0);b=\nb.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||f(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};Z.prototype=Object.create(t.prototype);Z.prototype.constructor=Z;Z.prototype.__class__=Z;Z.__cache__={};a.VoidPtr=Z;Z.prototype.__destroy__=Z.prototype.__destroy__=function(){bb(this.ptr)};S.prototype=\nObject.create(t.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();\"object\"==typeof b&&(b=pa(b));c&&\"object\"===typeof c&&(c=c.ptr);cb(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){db(this.ptr)};Q.prototype=Object.create(t.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=\nfunction(){return eb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){fb(this.ptr)};W.prototype=Object.create(t.prototype);W.prototype.constructor=W;W.prototype.__class__=W;W.__cache__={};a.GeometryAttribute=W;W.prototype.__destroy__=W.prototype.__destroy__=function(){gb(this.ptr)};w.prototype=Object.create(t.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return hb(this.ptr)};w.prototype.GetAttributeTransformData=\nw.prototype.GetAttributeTransformData=function(){return D(ib(this.ptr),Q)};w.prototype.attribute_type=w.prototype.attribute_type=function(){return jb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return kb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return lb(this.ptr)};w.prototype.normalized=w.prototype.normalized=function(){return!!mb(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return nb(this.ptr)};w.prototype.byte_offset=\nw.prototype.byte_offset=function(){return ob(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=function(){return pb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){qb(this.ptr)};C.prototype=Object.create(t.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!rb(c,b)};C.prototype.quantization_bits=\nC.prototype.quantization_bits=function(){return sb(this.ptr)};C.prototype.min_value=C.prototype.min_value=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return tb(c,b)};C.prototype.range=C.prototype.range=function(){return ub(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){vb(this.ptr)};F.prototype=Object.create(t.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.AttributeOctahedronTransform=F;F.prototype.InitFromAttribute=F.prototype.InitFromAttribute=\nfunction(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!wb(c,b)};F.prototype.quantization_bits=F.prototype.quantization_bits=function(){return xb(this.ptr)};F.prototype.__destroy__=F.prototype.__destroy__=function(){yb(this.ptr)};G.prototype=Object.create(t.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return zb(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Ab(this.ptr)};\nG.prototype.__destroy__=G.prototype.__destroy__=function(){Bb(this.ptr)};E.prototype=Object.create(t.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Cb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Db(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Eb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Fb(this.ptr)};T.prototype=\nObject.create(t.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Gb(this.ptr)};B.prototype=Object.create(t.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Hb(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!Ib(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return h(Jb(this.ptr))};\nB.prototype.__destroy__=B.prototype.__destroy__=function(){Kb(this.ptr)};H.prototype=Object.create(t.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoFloat32Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Lb(c,b)};H.prototype.size=H.prototype.size=function(){return Mb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){Nb(this.ptr)};I.prototype=Object.create(t.prototype);I.prototype.constructor=\nI;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Ob(c,b)};I.prototype.size=I.prototype.size=function(){return Pb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Qb(this.ptr)};J.prototype=Object.create(t.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoUInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=\nthis.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Rb(c,b)};J.prototype.size=J.prototype.size=function(){return Sb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Tb(this.ptr)};K.prototype=Object.create(t.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoInt16Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Ub(c,b)};K.prototype.size=K.prototype.size=function(){return Vb(this.ptr)};\nK.prototype.__destroy__=K.prototype.__destroy__=function(){Wb(this.ptr)};L.prototype=Object.create(t.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoUInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Xb(c,b)};L.prototype.size=L.prototype.size=function(){return Yb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Zb(this.ptr)};M.prototype=Object.create(t.prototype);M.prototype.constructor=\nM;M.prototype.__class__=M;M.__cache__={};a.DracoInt32Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return $b(c,b)};M.prototype.size=M.prototype.size=function(){return ac(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){bc(this.ptr)};N.prototype=Object.create(t.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoUInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=\nthis.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return cc(c,b)};N.prototype.size=N.prototype.size=function(){return dc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){ec(this.ptr)};y.prototype=Object.create(t.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.MetadataQuerier=y;y.prototype.HasEntry=y.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return!!fc(d,b,c)};y.prototype.GetIntEntry=\ny.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return gc(d,b,c)};y.prototype.GetIntEntryArray=y.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);d&&\"object\"===typeof d&&(d=d.ptr);hc(g,b,c,d)};y.prototype.GetDoubleEntry=y.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=\nc&&\"object\"===typeof c?c.ptr:R(c);return ic(d,b,c)};y.prototype.GetStringEntry=y.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return h(jc(d,b,c))};y.prototype.NumEntries=y.prototype.NumEntries=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return kc(c,b)};y.prototype.GetEntryName=y.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=\nc.ptr);return h(lc(d,b,c))};y.prototype.__destroy__=y.prototype.__destroy__=function(){mc(this.ptr)};m.prototype=Object.create(t.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();\"object\"==typeof b&&(b=pa(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return D(nc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=\nfunction(b,c,d){var g=this.ptr;r.prepare();\"object\"==typeof b&&(b=pa(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return D(oc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return pc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?\nc.ptr:R(c);return qc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);d=d&&\"object\"===typeof d?d.ptr:R(d);return rc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(sc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=\nfunction(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(tc(d,b,c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return D(uc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(vc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,\nc,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!wc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return xc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);\nd&&\"object\"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=\nm.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=\nfunction(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&\n(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,u){var X=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\n\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);g&&\"object\"===typeof g&&(g=g.ptr);u&&\"object\"===typeof u&&(u=u.ptr);return!!Jc(X,b,c,d,g,u)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Kc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Lc(c,b)};m.prototype.DecodeBufferToPointCloud=\nm.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(Mc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(Nc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Oc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Pc();a.ATTRIBUTE_NO_TRANSFORM=Qc();\na.ATTRIBUTE_QUANTIZATION_TRANSFORM=Rc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Sc();a.INVALID=Tc();a.POSITION=Uc();a.NORMAL=Vc();a.COLOR=Wc();a.TEX_COORD=Xc();a.GENERIC=Yc();a.INVALID_GEOMETRY_TYPE=Zc();a.POINT_CLOUD=$c();a.TRIANGULAR_MESH=ad();a.DT_INVALID=bd();a.DT_INT8=cd();a.DT_UINT8=dd();a.DT_INT16=ed();a.DT_UINT16=fd();a.DT_INT32=gd();a.DT_UINT32=hd();a.DT_INT64=id();a.DT_UINT64=jd();a.DT_FLOAT32=kd();a.DT_FLOAT64=ld();a.DT_BOOL=md();a.DT_TYPES_COUNT=nd();a.OK=od();a.DRACO_ERROR=pd();a.IO_ERROR=qd();\na.INVALID_PARAMETER=rd();a.UNSUPPORTED_VERSION=sd();a.UNKNOWN_VERSION=td()}za?b():oa.unshift(b)})();if(\"function\"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();\n\"object\"===typeof exports&&\"object\"===typeof module?module.exports=DracoDecoderModule:\"function\"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):\"object\"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);\n"
  },
  {
    "path": "packages/editor/public/libs/draco/draco_wasm_wrapper_gltf.js",
    "content": "var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(h){var n=0;return function(){return n<h.length?{done:!1,value:h[n++]}:{done:!0}}};$jscomp.arrayIterator=function(h){return{next:$jscomp.arrayIteratorImpl(h)}};$jscomp.makeIterator=function(h){var n=\"undefined\"!=typeof Symbol&&Symbol.iterator&&h[Symbol.iterator];return n?n.call(h):$jscomp.arrayIterator(h)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(h){h=[\"object\"==typeof globalThis&&globalThis,h,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var n=0;n<h.length;++n){var k=h[n];if(k&&k.Math==Math)return k}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(h,n,k){if(h==Array.prototype||h==Object.prototype)return h;h[n]=k.value;return h};$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";\nvar $jscomp$lookupPolyfilledValue=function(h,n){var k=$jscomp.propertyToPolyfillSymbol[n];if(null==k)return h[n];k=h[k];return void 0!==k?k:h[n]};$jscomp.polyfill=function(h,n,k,p){n&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(h,n,k,p):$jscomp.polyfillUnisolated(h,n,k,p))};\n$jscomp.polyfillUnisolated=function(h,n,k,p){k=$jscomp.global;h=h.split(\".\");for(p=0;p<h.length-1;p++){var l=h[p];if(!(l in k))return;k=k[l]}h=h[h.length-1];p=k[h];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(k,h,{configurable:!0,writable:!0,value:n})};\n$jscomp.polyfillIsolated=function(h,n,k,p){var l=h.split(\".\");h=1===l.length;p=l[0];p=!h&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var y=0;y<l.length-1;y++){var f=l[y];if(!(f in p))return;p=p[f]}l=l[l.length-1];k=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===k?p[l]:null;n=n(k);null!=n&&(h?$jscomp.defineProperty($jscomp.polyfills,l,{configurable:!0,writable:!0,value:n}):n!==k&&(void 0===$jscomp.propertyToPolyfillSymbol[l]&&(k=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE?\n$jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+\"$\"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))};\n$jscomp.polyfill(\"Promise\",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&\"undefined\"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf(\"[native code]\")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};\nvar p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var u=f[q];f[q]=null;try{u()}catch(A){this.asyncThrow_(A)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var l=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();\ntry{f(q.resolve,q.reject)}catch(u){q.reject(u)}};l.prototype.createResolveAndReject_=function(){function f(A){return function(F){u||(u=!0,A.call(q,F))}}var q=this,u=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};l.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError(\"A Promise cannot resolve to itself\"));else if(f instanceof l)this.settleSameAsPromise_(f);else{a:switch(typeof f){case \"object\":var q=null!=f;break a;case \"function\":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):\nthis.fulfill_(f)}};l.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(u){this.reject_(u);return}\"function\"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};l.prototype.reject_=function(f){this.settle_(2,f)};l.prototype.fulfill_=function(f){this.settle_(1,f)};l.prototype.settle_=function(f,q){if(0!=this.state_)throw Error(\"Cannot settle(\"+f+\", \"+q+\"): Promise already settled in state\"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();\nthis.executeOnSettledCallbacks_()};l.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;\"undefined\"!==typeof q&&q.error(f.result_)}},1)};l.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,u=$jscomp.global.dispatchEvent;if(\"undefined\"===typeof u)return!0;\"function\"===typeof f?f=new f(\"unhandledrejection\",{cancelable:!0}):\n\"function\"===typeof q?f=new q(\"unhandledrejection\",{cancelable:!0}):(f=$jscomp.global.document.createEvent(\"CustomEvent\"),f.initCustomEvent(\"unhandledrejection\",!1,!0,f));f.promise=this;f.reason=this.result_;return u(f)};l.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)y.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var y=new n;l.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();\nf.callWhenSettled_(q.resolve,q.reject)};l.prototype.settleSameAsThenable_=function(f,q){var u=this.createResolveAndReject_();try{f.call(q,u.resolve,u.reject)}catch(A){u.reject(A)}};l.prototype.then=function(f,q){function u(w,B){return\"function\"==typeof w?function(R){try{A(w(R))}catch(Z){F(Z)}}:B}var A,F,v=new l(function(w,B){A=w;F=B});this.callWhenSettled_(u(f,A),u(q,F));return v};l.prototype.catch=function(f){return this.then(void 0,f)};l.prototype.callWhenSettled_=function(f,q){function u(){switch(A.state_){case 1:f(A.result_);\nbreak;case 2:q(A.result_);break;default:throw Error(\"Unexpected state: \"+A.state_);}}var A=this;null==this.onSettledCallbacks_?y.asyncExecute(u):this.onSettledCallbacks_.push(u);this.isRejectionHandled_=!0};l.resolve=k;l.reject=function(f){return new l(function(q,u){u(f)})};l.race=function(f){return new l(function(q,u){for(var A=$jscomp.makeIterator(f),F=A.next();!F.done;F=A.next())k(F.value).callWhenSettled_(q,u)})};l.all=function(f){var q=$jscomp.makeIterator(f),u=q.next();return u.done?k([]):new l(function(A,\nF){function v(R){return function(Z){w[R]=Z;B--;0==B&&A(w)}}var w=[],B=0;do w.push(void 0),B++,k(u.value).callWhenSettled_(v(w.length-1),F),u=q.next();while(!u.done)})};return l},\"es6\",\"es3\");$jscomp.owns=function(h,n){return Object.prototype.hasOwnProperty.call(h,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&\"function\"==typeof Object.assign?Object.assign:function(h,n){for(var k=1;k<arguments.length;k++){var p=arguments[k];if(p)for(var l in p)$jscomp.owns(p,l)&&(h[l]=p[l])}return h};\n$jscomp.polyfill(\"Object.assign\",function(h){return h||$jscomp.assign},\"es6\",\"es3\");$jscomp.checkStringArgs=function(h,n,k){if(null==h)throw new TypeError(\"The 'this' value for String.prototype.\"+k+\" must not be null or undefined\");if(n instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+k+\" must not be a regular expression\");return h+\"\"};\n$jscomp.polyfill(\"String.prototype.startsWith\",function(h){return h?h:function(n,k){var p=$jscomp.checkStringArgs(this,n,\"startsWith\");n+=\"\";var l=p.length,y=n.length;k=Math.max(0,Math.min(k|0,p.length));for(var f=0;f<y&&k<l;)if(p[k++]!=n[f++])return!1;return f>=y}},\"es6\",\"es3\");\n$jscomp.polyfill(\"Array.prototype.copyWithin\",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(k<p)for(;p<l;)p in this?this[k++]=this[p++]:(delete this[k++],p++);else for(l=Math.min(l,y+p-k),k+=l-p;l>p;)--l in this?this[--k]=this[l]:delete this[--k];return this}},\"es6\",\"es3\");\n$jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill(\"Int8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8ClampedArray.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\n$jscomp.polyfill(\"Uint16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float64Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\nvar DracoDecoderModule=function(){var h=\"undefined\"!==typeof document&&document.currentScript?document.currentScript.src:void 0;\"undefined\"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16<b-e&&c.buffer&&ra)c=ra.decode(c.subarray(e,b));else{for(d=\"\";e<b;){var g=c[e++];if(g&128){var t=c[e++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|t);else{var aa=c[e++]&\n63;g=224==(g&240)?(g&15)<<12|t<<6|aa:(g&7)<<18|t<<12|aa<<6|c[e++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c=\"\";return c}function l(){var e=ja.buffer;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e);\ne=\"Aborted(\"+e+\")\";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+\". Build with -sASSERTIONS for more info.\");ka(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw\"both async and sync fetching of the wasm failed\";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if(\"function\"==typeof fetch&&!P.startsWith(\"file://\"))return fetch(P,{credentials:\"same-origin\"}).then(function(e){if(!e.ok)throw\"failed to load wasm binary file at '\"+P+\"'\";return e.arrayBuffer()}).catch(function(){return f(P)});\nif(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0<e.length;)e.shift()(a)}function A(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+\n12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+\n16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(){function e(){if(!la&&(la=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0<ba)){if(a.preRun)for(\"function\"==\ntypeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ya.unshift(a.preRun.shift());u(ya);0<ba||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){a.setStatus(\"\")},1);e()},1)):e())}}function v(){}function w(e){return(e||v).__cache__}function B(e,b){var c=w(b),d=c[e];if(d)return d;d=Object.create((b||v).prototype);d.ptr=e;return c[e]=d}function R(e){if(\"string\"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=\nd?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var t=e.charCodeAt(g);if(55296<=t&&57343>=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if(\"object\"===\ntypeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw\"cannot construct a VoidPtr, no constructor in IDL\";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]=\nthis}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw\"cannot construct a Status, no constructor in IDL\";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr=\nQa();w(m)[this.ptr]=this}n=void 0===n?{}:n;var a=\"undefined\"!=typeof n?n:{},wa,ka;a.ready=new Promise(function(e,b){wa=e;ka=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if(\"string\"!==typeof e)return!1;e=e.split(\".\");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<\ne[1]?!1:!0};var Ta=Object.assign({},a),ta=\"object\"==typeof window,fa=\"function\"==typeof importScripts,Ua=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,U=\"\";if(Ua){var Va=require(\"fs\"),pa=require(\"path\");U=fa?pa.dirname(U)+\"/\":__dirname+\"/\";var Wa=function(e,b){e=e.startsWith(\"file://\")?new URL(e):pa.normalize(e);return Va.readFileSync(e,b?void 0:\"utf8\")};var ma=function(e){e=Wa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,\nb,c){e=e.startsWith(\"file://\")?new URL(e):pa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\/g,\"/\");process.argv.slice(2);a.inspect=function(){return\"[Emscripten Module object]\"}}else if(ta||fa)fa?U=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(U=document.currentScript.src),h&&(U=h),U=0!==U.indexOf(\"blob:\")?U.substr(0,U.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",Wa=function(e){var b=new XMLHttpRequest;b.open(\"GET\",\ne,!1);b.send(null);return b.responseText},fa&&(ma=function(e){var b=new XMLHttpRequest;b.open(\"GET\",e,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open(\"GET\",e,!0);d.responseType=\"arraybuffer\";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var da=a.printErr||console.warn.bind(console);Object.assign(a,Ta);Ta=null;var ea;a.wasmBinary&&\n(ea=a.wasmBinary);\"object\"!=typeof WebAssembly&&y(\"no native wasm support detected\");var ja,sa=!1,ra=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0,W,ia,ca,Y,ya=[],oa=[],xa=[],va=!1,ba=0,qa=null,ha=null;var P=\"draco_decoder_gltf.wasm\";P.startsWith(\"data:application/octet-stream;base64,\")||(P=k(P));var pd=0,qd={b:function(e,b,c){(new A(e)).init(b,c);pd++;throw e;},a:function(){y(\"\")},d:function(e,b,c){ia.copyWithin(e,b,b+c)},c:function(e){var b=ia.length;e>>>=0;if(2147483648<e)return!1;\nfor(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);l();var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;ja=a.asm.e;l();oa.unshift(a.asm.f);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==qa&&(clearInterval(qa),qa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}\nfunction c(g){return q().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da(\"failed to asynchronously prepare wasm: \"+t);y(t)})}var d={a:qd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da(\"Module.instantiateWasm callback failed with error: \"+g),ka(g)}(function(){return ea||\"function\"!=typeof WebAssembly.instantiateStreaming||P.startsWith(\"data:application/octet-stream;base64,\")||\nP.startsWith(\"file://\")||Ua||\"function\"!=typeof fetch?c(b):fetch(P,{credentials:\"same-origin\"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da(\"wasm streaming compile failed: \"+t);da(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ka);return{}})();var Xa=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Xa=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=\nfunction(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.i).apply(null,arguments)},Ya=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(Ya=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.j).apply(null,arguments)},Za=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Za=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.k).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=\na.asm.l).apply(null,arguments)},$a=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return($a=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.m).apply(null,arguments)},ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(ab=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.n).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=\na.asm.o).apply(null,arguments)},bb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(bb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.p).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.q).apply(null,arguments)},cb=a._emscripten_bind_PointAttribute_size_0=function(){return(cb=a._emscripten_bind_PointAttribute_size_0=a.asm.r).apply(null,arguments)},db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=\nfunction(){return(db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.s).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(eb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.t).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(fb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.u).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(gb=a._emscripten_bind_PointAttribute_num_components_0=\na.asm.v).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(hb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.w).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ib=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.x).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(jb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.y).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_unique_id_0=\nfunction(){return(kb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.z).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(lb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.A).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.B).apply(null,arguments)},mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=\nfunction(){return(mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.C).apply(null,arguments)},nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.D).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.E).apply(null,arguments)},pb=\na._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.F).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=\na.asm.H).apply(null,arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.I).apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.J).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(tb=\na._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.L).apply(null,arguments)},ub=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(ub=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.M).apply(null,arguments)},vb=a._emscripten_bind_PointCloud_num_points_0=function(){return(vb=a._emscripten_bind_PointCloud_num_points_0=a.asm.N).apply(null,\narguments)},wb=a._emscripten_bind_PointCloud___destroy___0=function(){return(wb=a._emscripten_bind_PointCloud___destroy___0=a.asm.O).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.P).apply(null,arguments)},xb=a._emscripten_bind_Mesh_num_faces_0=function(){return(xb=a._emscripten_bind_Mesh_num_faces_0=a.asm.Q).apply(null,arguments)},yb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(yb=a._emscripten_bind_Mesh_num_attributes_0=\na.asm.R).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_points_0=function(){return(zb=a._emscripten_bind_Mesh_num_points_0=a.asm.S).apply(null,arguments)},Ab=a._emscripten_bind_Mesh___destroy___0=function(){return(Ab=a._emscripten_bind_Mesh___destroy___0=a.asm.T).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.U).apply(null,arguments)},Bb=a._emscripten_bind_Metadata___destroy___0=function(){return(Bb=a._emscripten_bind_Metadata___destroy___0=\na.asm.V).apply(null,arguments)},Cb=a._emscripten_bind_Status_code_0=function(){return(Cb=a._emscripten_bind_Status_code_0=a.asm.W).apply(null,arguments)},Db=a._emscripten_bind_Status_ok_0=function(){return(Db=a._emscripten_bind_Status_ok_0=a.asm.X).apply(null,arguments)},Eb=a._emscripten_bind_Status_error_msg_0=function(){return(Eb=a._emscripten_bind_Status_error_msg_0=a.asm.Y).apply(null,arguments)},Fb=a._emscripten_bind_Status___destroy___0=function(){return(Fb=a._emscripten_bind_Status___destroy___0=\na.asm.Z).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm._).apply(null,arguments)},Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.$).apply(null,arguments)},Hb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Hb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.aa).apply(null,arguments)},Ib=\na._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ib=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ba).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ca).apply(null,arguments)},Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.da).apply(null,arguments)},Kb=a._emscripten_bind_DracoInt8Array_size_0=\nfunction(){return(Kb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ea).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Lb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.fa).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ga).apply(null,arguments)},Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=\na.asm.ha).apply(null,arguments)},Nb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Nb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ia).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.ka).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=\nfunction(){return(Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.la).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.ma).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.na).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=\na.asm.oa).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.qa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=\nfunction(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.sa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ta).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ua).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt32Array___destroy___0=\na.asm.va).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.wa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.ya).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array___destroy___0=\nfunction(){return($b=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Aa).apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ba).apply(null,arguments)},bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=\na.asm.Ca).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Da).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ea).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Fa).apply(null,\narguments)},fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ga).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ha).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(hc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ia).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0=\nfunction(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.La).apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(kc=a._emscripten_bind_Decoder_GetAttributeId_2=\na.asm.Ma).apply(null,arguments)},lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Na).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Pa).apply(null,arguments)},\noc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(pc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=\nfunction(){return(rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ua).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Va).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(uc=\na._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Wa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Xa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Ya).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=\na.asm.Za).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm._a).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=\na.asm.ab).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.cb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=\na.asm.db).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.eb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.fb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=\na.asm.gb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.hb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.ib).apply(null,arguments)},Jc=a._emscripten_bind_Decoder___destroy___0=function(){return(Jc=a._emscripten_bind_Decoder___destroy___0=a.asm.jb).apply(null,arguments)},Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=\nfunction(){return(Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.kb).apply(null,arguments)},Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.lb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=\na.asm.mb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.nb).apply(null,arguments)},Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.ob).apply(null,arguments)},Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=\na.asm.pb).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.qb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.rb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=\na.asm.sb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.tb).apply(null,arguments)},Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.ub).apply(null,arguments)},Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=\na.asm.vb).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.wb).apply(null,arguments)},Xc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Xc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.xb).apply(null,arguments)},Yc=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(Yc=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.yb).apply(null,arguments)},Zc=\na._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.zb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT16=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Ab).apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Bb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT32=\na.asm.Cb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Db).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Eb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Fb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=\nfunction(){return(fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Gb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Hb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(hd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Ib).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=\na.asm.Jb).apply(null,arguments)},jd=a._emscripten_enum_draco_StatusCode_OK=function(){return(jd=a._emscripten_enum_draco_StatusCode_OK=a.asm.Kb).apply(null,arguments)},kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Lb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Mb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=\nfunction(){return(md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Nb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Ob).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Pb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Qb).apply(null,arguments)};\na._free=function(){return(a._free=a.asm.Rb).apply(null,arguments)};var ua=function(){return(ua=a.asm.Sb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var la;ha=function b(){la||F();la||(ha=b)};if(a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();F();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=v;a.getCache=w;a.wrapPointer=B;a.castObject=function(b,\nc){return B(b.ptr,c)};a.NULL=B(0);a.destroy=function(b){if(!b.__destroy__)throw\"Error: Cannot destroy object. (Did you create it yourself?)\";b.__destroy__();delete w(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=\nr.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||y(void 0));r.pos=0},alloc:function(b,c){r.buffer||y(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||y(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};X.prototype=Object.create(v.prototype);X.prototype.constructor=\nX;X.prototype.__class__=X;X.__cache__={};a.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){Xa(this.ptr)};S.prototype=Object.create(v.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);Ya(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){Za(this.ptr)};Q.prototype=Object.create(v.prototype);\nQ.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=function(){return $a(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){ab(this.ptr)};V.prototype=Object.create(v.prototype);V.prototype.constructor=V;V.prototype.__class__=V;V.__cache__={};a.GeometryAttribute=V;V.prototype.__destroy__=V.prototype.__destroy__=function(){bb(this.ptr)};x.prototype=Object.create(v.prototype);x.prototype.constructor=\nx;x.prototype.__class__=x;x.__cache__={};a.PointAttribute=x;x.prototype.size=x.prototype.size=function(){return cb(this.ptr)};x.prototype.GetAttributeTransformData=x.prototype.GetAttributeTransformData=function(){return B(db(this.ptr),Q)};x.prototype.attribute_type=x.prototype.attribute_type=function(){return eb(this.ptr)};x.prototype.data_type=x.prototype.data_type=function(){return fb(this.ptr)};x.prototype.num_components=x.prototype.num_components=function(){return gb(this.ptr)};x.prototype.normalized=\nx.prototype.normalized=function(){return!!hb(this.ptr)};x.prototype.byte_stride=x.prototype.byte_stride=function(){return ib(this.ptr)};x.prototype.byte_offset=x.prototype.byte_offset=function(){return jb(this.ptr)};x.prototype.unique_id=x.prototype.unique_id=function(){return kb(this.ptr)};x.prototype.__destroy__=x.prototype.__destroy__=function(){lb(this.ptr)};D.prototype=Object.create(v.prototype);D.prototype.constructor=D;D.prototype.__class__=D;D.__cache__={};a.AttributeQuantizationTransform=\nD;D.prototype.InitFromAttribute=D.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!mb(c,b)};D.prototype.quantization_bits=D.prototype.quantization_bits=function(){return nb(this.ptr)};D.prototype.min_value=D.prototype.min_value=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return ob(c,b)};D.prototype.range=D.prototype.range=function(){return pb(this.ptr)};D.prototype.__destroy__=D.prototype.__destroy__=function(){qb(this.ptr)};G.prototype=\nObject.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.AttributeOctahedronTransform=G;G.prototype.InitFromAttribute=G.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!rb(c,b)};G.prototype.quantization_bits=G.prototype.quantization_bits=function(){return sb(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){tb(this.ptr)};H.prototype=Object.create(v.prototype);H.prototype.constructor=H;H.prototype.__class__=\nH;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return ub(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return vb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){wb(this.ptr)};E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return xb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=\nfunction(){return yb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return zb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Ab(this.ptr)};T.prototype=Object.create(v.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Bb(this.ptr)};C.prototype=Object.create(v.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.Status=C;C.prototype.code=\nC.prototype.code=function(){return Cb(this.ptr)};C.prototype.ok=C.prototype.ok=function(){return!!Db(this.ptr)};C.prototype.error_msg=C.prototype.error_msg=function(){return p(Eb(this.ptr))};C.prototype.__destroy__=C.prototype.__destroy__=function(){Fb(this.ptr)};I.prototype=Object.create(v.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoFloat32Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Gb(c,\nb)};I.prototype.size=I.prototype.size=function(){return Hb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Ib(this.ptr)};J.prototype=Object.create(v.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Jb(c,b)};J.prototype.size=J.prototype.size=function(){return Kb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Lb(this.ptr)};\nK.prototype=Object.create(v.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoUInt8Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Mb(c,b)};K.prototype.size=K.prototype.size=function(){return Nb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Ob(this.ptr)};L.prototype=Object.create(v.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoInt16Array=\nL;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Pb(c,b)};L.prototype.size=L.prototype.size=function(){return Qb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Rb(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoUInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Sb(c,b)};\nM.prototype.size=M.prototype.size=function(){return Tb(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){Ub(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Vb(c,b)};N.prototype.size=N.prototype.size=function(){return Wb(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){Xb(this.ptr)};\nO.prototype=Object.create(v.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoUInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Yb(c,b)};O.prototype.size=O.prototype.size=function(){return Zb(this.ptr)};O.prototype.__destroy__=O.prototype.__destroy__=function(){$b(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.MetadataQuerier=\nz;z.prototype.HasEntry=z.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return!!ac(d,b,c)};z.prototype.GetIntEntry=z.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return bc(d,b,c)};z.prototype.GetIntEntryArray=z.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===\ntypeof c?c.ptr:R(c);d&&\"object\"===typeof d&&(d=d.ptr);cc(g,b,c,d)};z.prototype.GetDoubleEntry=z.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return dc(d,b,c)};z.prototype.GetStringEntry=z.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return p(ec(d,b,c))};z.prototype.NumEntries=z.prototype.NumEntries=function(b){var c=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);return fc(c,b)};z.prototype.GetEntryName=z.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return p(gc(d,b,c))};z.prototype.__destroy__=z.prototype.__destroy__=function(){hc(this.ptr)};m.prototype=Object.create(v.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=\nthis.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return B(ic(g,b,c,d),C)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return B(jc(g,b,c,d),C)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&\n(c=c.ptr);return kc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return lc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);d=d&&\"object\"===typeof d?d.ptr:R(d);return mc(g,b,c,d)};m.prototype.GetAttribute=\nm.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(nc(d,b,c),x)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(oc(d,b,c),x)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return B(pc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=\nfunction(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(qc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!rc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);\nreturn sc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!tc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!uc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=\nfunction(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!vc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!wc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!xc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=\nb.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&\n(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===\ntypeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,t){var aa=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);g&&\"object\"===typeof g&&(g=g.ptr);t&&\"object\"===typeof t&&(t=t.ptr);return!!Ec(aa,b,c,d,g,t)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Fc(c,\nb)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Gc(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(Hc(d,b,c),C)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===\ntypeof c&&(c=c.ptr);return B(Ic(d,b,c),C)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Jc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Kc();a.ATTRIBUTE_NO_TRANSFORM=Lc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Mc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Nc();a.INVALID=Oc();a.POSITION=Pc();a.NORMAL=Qc();a.COLOR=Rc();a.TEX_COORD=Sc();a.GENERIC=Tc();a.INVALID_GEOMETRY_TYPE=Uc();a.POINT_CLOUD=Vc();a.TRIANGULAR_MESH=Wc();a.DT_INVALID=Xc();a.DT_INT8=Yc();a.DT_UINT8=Zc();a.DT_INT16=\n$c();a.DT_UINT16=ad();a.DT_INT32=bd();a.DT_UINT32=cd();a.DT_INT64=dd();a.DT_UINT64=ed();a.DT_FLOAT32=fd();a.DT_FLOAT64=gd();a.DT_BOOL=hd();a.DT_TYPES_COUNT=id();a.OK=jd();a.DRACO_ERROR=kd();a.IO_ERROR=ld();a.INVALID_PARAMETER=md();a.UNSUPPORTED_VERSION=nd();a.UNKNOWN_VERSION=od()}va?b():oa.unshift(b)})();if(\"function\"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);\nif(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();\"object\"===typeof exports&&\"object\"===typeof module?module.exports=DracoDecoderModule:\"function\"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):\"object\"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);\n"
  },
  {
    "path": "packages/editor/public/robots.txt",
    "content": "User-agent: *\nAllow: /"
  },
  {
    "path": "packages/editor/public/static/resource/htmlPanel/technology/factoryEquipment.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>工厂设备</title>\n</head>\n<body>\n<div style=\"position:relative;bottom:182px;width:400px;height:365px;color: #fff;\">\n    <img src=\"/static/resource/billboard/text/infoBg.png\" alt=\"\" style=\"width:100%;position: absolute;left: 0;top: 0;\">\n    <div style=\"position:absolute;left:48px;top:36px;font-size:16px;\">\n        <div style=\"font-size:20px;font-weight: 400;\">\n            <span>设备A</span>\n        </div>\n        <div style=\"margin-top: 30px;\">\n            <span style=\"font-weight: 400;margin-left: 80px;font-size: 40px;color: #00ffff;\">3333 L</span>\n        </div>\n        <div style=\"margin-top: 20px;\">\n            <span style=\"color: #ccc;font-weight: 300;\">管理</span><span\n                style=\"font-weight: 400;margin-left: 30px;\">二三</span>\n        </div>\n        <div style=\"margin-top: 10px;\">\n            <span style=\"color: #ccc;font-weight: 300;\">工号</span><span\n                style=\"font-weight: 400;margin-left: 30px;\">23</span>\n        </div>\n    </div>\n    <div style=\"position:absolute;left:285px;top:35px;\">\n        <span style=\"color: #ffff00;\">异常</span>\n    </div>\n</div>\n</body>\n</html>"
  },
  {
    "path": "packages/editor/src/App.vue",
    "content": "<script lang=\"ts\" setup>\nimport {computed} from 'vue';\nimport {GlobalThemeOverrides,zhCN, dateZhCN,enUS,dateEnUS} from \"naive-ui\";\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\nimport Index from \"@/views/index.vue\";\n\n// 全局配置相关\nconst globalConfigStore = useGlobalConfigStore();\n\nconst NaiveUILocale = computed(() => {\n  switch(globalConfigStore.locale){\n    case 'zh-CN':\n      return {\n        locale:zhCN,\n        dateLocale:dateZhCN\n      }\n    case 'en-US':\n      return {\n        locale:enUS,\n        dateLocale:dateEnUS\n      }\n  }\n});\nconst themeOverrides = computed<GlobalThemeOverrides>(() => {\n  const mainColor = globalConfigStore.mainColor as IConfig.Color;\n\n  return {\n    common: {\n      primaryColor: mainColor.hex,\n      primaryColorHover: mainColor.hexHover,\n      primaryColorPressed: mainColor.hexPressed,\n      primaryColorSuppl: mainColor.hexSuppl,\n      successColor: mainColor.hex,\n      successColorHover: mainColor.hexHover,\n      successColorPressed: mainColor.hexPressed,\n      successColorSuppl: mainColor.hexSuppl,\n      fontWeightStrong: '600'\n    }\n  }\n})\n</script>\n\n<template>\n  <!-- 调整 naive-ui 的字重配置 -->\n  <n-config-provider :locale=\"NaiveUILocale.locale\" :date-locale=\"NaiveUILocale.dateLocale\" :theme=\"globalConfigStore.getProviderTheme()\" :theme-overrides=\"themeOverrides\">\n    <n-loading-bar-provider>\n      <n-dialog-provider>\n        <n-modal-provider>\n          <n-notification-provider placement=\"bottom\">\n            <n-message-provider>\n              <Index/>\n            </n-message-provider>\n          </n-notification-provider>\n        </n-modal-provider>\n      </n-dialog-provider>\n    </n-loading-bar-provider>\n  </n-config-provider>\n</template>\n\n<style scoped>\n.n-config-provider {\n  width: 100%;\n  height: 100%;\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/assets/color/ChineseColors.json",
    "content": "[\n  {\n    \"CMYK\": [\n      4,\n      5,\n      18,\n      0\n    ],\n    \"RGB\": [\n      249,\n      244,\n      220\n    ],\n    \"hex\": \"#f9f4dc\",\n    \"name\": \"\\u4e73\\u767d\",\n    \"pinyin\": \"rubai\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      8,\n      30,\n      0\n    ],\n    \"RGB\": [\n      249,\n      236,\n      195\n    ],\n    \"hex\": \"#f7e8aa\",\n    \"name\": \"\\u674f\\u4ec1\\u9ec4\",\n    \"pinyin\": \"xingrenhuang\"\n  },\n  {\n    \"CMYK\": [\n      4,\n      13,\n      67,\n      0\n    ],\n    \"RGB\": [\n      248,\n      223,\n      114\n    ],\n    \"hex\": \"#f8df72\",\n    \"name\": \"\\u8309\\u8389\\u9ec4\",\n    \"pinyin\": \"molihuang\"\n  },\n  {\n    \"CMYK\": [\n      5,\n      14,\n      68,\n      1\n    ],\n    \"RGB\": [\n      248,\n      223,\n      112\n    ],\n    \"hex\": \"#f8df70\",\n    \"name\": \"\\u9ea6\\u79c6\\u9ec4\",\n    \"pinyin\": \"maiganhuang\"\n  },\n  {\n    \"CMYK\": [\n      2,\n      16,\n      84,\n      0\n    ],\n    \"RGB\": [\n      251,\n      218,\n      65\n    ],\n    \"hex\": \"#fbda41\",\n    \"name\": \"\\u6cb9\\u83dc\\u82b1\\u9ec4\",\n    \"pinyin\": \"youcaihuahuang\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      18,\n      94,\n      0\n    ],\n    \"RGB\": [\n      254,\n      215,\n      26\n    ],\n    \"hex\": \"#fed71a\",\n    \"name\": \"\\u4f5b\\u624b\\u9ec4\",\n    \"pinyin\": \"foshouhuang\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      16,\n      50,\n      0\n    ],\n    \"RGB\": [\n      247,\n      222,\n      152\n    ],\n    \"hex\": \"#f7de98\",\n    \"name\": \"\\u7bfe\\u9ec4\",\n    \"pinyin\": \"miehuang\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      17,\n      69,\n      0\n    ],\n    \"RGB\": [\n      248,\n      216,\n      106\n    ],\n    \"hex\": \"#f8d86a\",\n    \"name\": \"\\u8475\\u6247\\u9ec4\",\n    \"pinyin\": \"kuishanhuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      20,\n      87,\n      0\n    ],\n    \"RGB\": [\n      252,\n      211,\n      55\n    ],\n    \"hex\": \"#fcd337\",\n    \"name\": \"\\u67e0\\u6aac\\u9ec4\",\n    \"pinyin\": \"ningmenghuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      20,\n      95,\n      0\n    ],\n    \"RGB\": [\n      252,\n      210,\n      23\n    ],\n    \"hex\": \"#fcd217\",\n    \"name\": \"\\u91d1\\u74dc\\u9ec4\",\n    \"pinyin\": \"jinguahuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      21,\n      94,\n      0\n    ],\n    \"RGB\": [\n      254,\n      209,\n      16\n    ],\n    \"hex\": \"#ffd111\",\n    \"name\": \"\\u85e4\\u9ec4\",\n    \"pinyin\": \"tenghuang\"\n  },\n  {\n    \"CMYK\": [\n      2,\n      16,\n      39,\n      0\n    ],\n    \"RGB\": [\n      246,\n      222,\n      173\n    ],\n    \"hex\": \"#f6dead\",\n    \"name\": \"\\u916a\\u9ec4\",\n    \"pinyin\": \"laohuang\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      17,\n      50,\n      0\n    ],\n    \"RGB\": [\n      247,\n      218,\n      148\n    ],\n    \"hex\": \"#f7da94\",\n    \"name\": \"\\u9999\\u6c34\\u73ab\\u7470\\u9ec4\",\n    \"pinyin\": \"xiangshuimeiguihuang\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      21,\n      70,\n      0\n    ],\n    \"RGB\": [\n      249,\n      211,\n      103\n    ],\n    \"hex\": \"#f9d367\",\n    \"name\": \"\\u6de1\\u5bc6\\u9ec4\",\n    \"pinyin\": \"danmihuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      23,\n      88,\n      0\n    ],\n    \"RGB\": [\n      251,\n      205,\n      49\n    ],\n    \"hex\": \"#fbcd31\",\n    \"name\": \"\\u5927\\u8c46\\u9ec4\",\n    \"pinyin\": \"dadouhuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      24,\n      94,\n      0\n    ],\n    \"RGB\": [\n      252,\n      203,\n      22\n    ],\n    \"hex\": \"#fccb16\",\n    \"name\": \"\\u7d20\\u99a8\\u9ec4\",\n    \"pinyin\": \"suxinhuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      24,\n      94,\n      0\n    ],\n    \"RGB\": [\n      254,\n      204,\n      17\n    ],\n    \"hex\": \"#fecc11\",\n    \"name\": \"\\u5411\\u65e5\\u8475\\u9ec4\",\n    \"pinyin\": \"xiangrikuihuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      27,\n      88,\n      0\n    ],\n    \"RGB\": [\n      251,\n      200,\n      47\n    ],\n    \"hex\": \"#fbc82f\",\n    \"name\": \"\\u96c5\\u68a8\\u9ec4\",\n    \"pinyin\": \"yalihuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      28,\n      94,\n      0\n    ],\n    \"RGB\": [\n      252,\n      197,\n      21\n    ],\n    \"hex\": \"#fcc515\",\n    \"name\": \"\\u9ec4\\u8fde\\u9ec4\",\n    \"pinyin\": \"huanglianhuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      29,\n      95,\n      0\n    ],\n    \"RGB\": [\n      252,\n      195,\n      7\n    ],\n    \"hex\": \"#fcc307\",\n    \"name\": \"\\u91d1\\u76cf\\u9ec4\",\n    \"pinyin\": \"jinzhanhuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      32,\n      52,\n      0\n    ],\n    \"RGB\": [\n      248,\n      195,\n      135\n    ],\n    \"hex\": \"#f8c387\",\n    \"name\": \"\\u86cb\\u58f3\\u9ec4\",\n    \"pinyin\": \"dankehuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      32,\n      52,\n      0\n    ],\n    \"RGB\": [\n      247,\n      193,\n      115\n    ],\n    \"hex\": \"#f7c173\",\n    \"name\": \"\\u8089\\u8272\",\n    \"pinyin\": \"rouse\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      35,\n      89,\n      0\n    ],\n    \"RGB\": [\n      251,\n      185,\n      41\n    ],\n    \"hex\": \"#fbb929\",\n    \"name\": \"\\u9e45\\u638c\\u9ec4\",\n    \"pinyin\": \"ezhanghuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      36,\n      93,\n      0\n    ],\n    \"RGB\": [\n      251,\n      182,\n      18\n    ],\n    \"hex\": \"#fbb612\",\n    \"name\": \"\\u9e21\\u86cb\\u9ec4\",\n    \"pinyin\": \"jidanhuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      35,\n      94,\n      0\n    ],\n    \"RGB\": [\n      252,\n      183,\n      10\n    ],\n    \"hex\": \"#fcb70a\",\n    \"name\": \"\\u9f2c\\u9ec4\",\n    \"pinyin\": \"youhuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      44,\n      84,\n      0\n    ],\n    \"RGB\": [\n      249,\n      166,\n      51\n    ],\n    \"hex\": \"#f9a633\",\n    \"name\": \"\\u69b4\\u843c\\u9ec4\",\n    \"pinyin\": \"liuehuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      45,\n      92,\n      0\n    ],\n    \"RGB\": [\n      251,\n      164,\n      20\n    ],\n    \"hex\": \"#fba414\",\n    \"name\": \"\\u6de1\\u6a58\\u6a59\",\n    \"pinyin\": \"danjucheng\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      47,\n      92,\n      0\n    ],\n    \"RGB\": [\n      252,\n      161,\n      6\n    ],\n    \"hex\": \"#fca106\",\n    \"name\": \"\\u6787\\u6777\\u9ec4\",\n    \"pinyin\": \"pipahuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      47,\n      92,\n      0\n    ],\n    \"RGB\": [\n      252,\n      161,\n      4\n    ],\n    \"hex\": \"#fca104\",\n    \"name\": \"\\u6a59\\u76ae\\u9ec4\",\n    \"pinyin\": \"chengpihuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      56,\n      87,\n      0\n    ],\n    \"RGB\": [\n      252,\n      140,\n      35\n    ],\n    \"hex\": \"#fc8c23\",\n    \"name\": \"\\u5317\\u74dc\\u9ec4\",\n    \"pinyin\": \"beiguahuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      54,\n      92,\n      0\n    ],\n    \"RGB\": [\n      250,\n      142,\n      22\n    ],\n    \"hex\": \"#f28e16\",\n    \"name\": \"\\u674f\\u9ec4\",\n    \"pinyin\": \"xinghuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      51,\n      91,\n      0\n    ],\n    \"RGB\": [\n      255,\n      153,\n      0\n    ],\n    \"hex\": \"#ff9900\",\n    \"name\": \"\\u96c4\\u9ec4\",\n    \"pinyin\": \"xionghuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      56,\n      91,\n      0\n    ],\n    \"RGB\": [\n      251,\n      139,\n      5\n    ],\n    \"hex\": \"#fb8b05\",\n    \"name\": \"\\u4e07\\u5bff\\u83ca\\u9ec4\",\n    \"pinyin\": \"wanshoujuhuang\"\n  },\n  {\n    \"CMYK\": [\n      10,\n      13,\n      35,\n      1\n    ],\n    \"RGB\": [\n      233,\n      221,\n      182\n    ],\n    \"hex\": \"#e9ddb6\",\n    \"name\": \"\\u83ca\\u857e\\u767d\",\n    \"pinyin\": \"juleibai\"\n  },\n  {\n    \"CMYK\": [\n      8,\n      19,\n      84,\n      1\n    ],\n    \"RGB\": [\n      238,\n      208,\n      69\n    ],\n    \"hex\": \"#eed045\",\n    \"name\": \"\\u79cb\\u8475\\u9ec4\",\n    \"pinyin\": \"qiukuihuang\"\n  },\n  {\n    \"CMYK\": [\n      6,\n      20,\n      92,\n      1\n    ],\n    \"RGB\": [\n      242,\n      206,\n      43\n    ],\n    \"hex\": \"#f2ce2b\",\n    \"name\": \"\\u786b\\u534e\\u9ec4\",\n    \"pinyin\": \"liuhuahuang\"\n  },\n  {\n    \"CMYK\": [\n      6,\n      22,\n      92,\n      0\n    ],\n    \"RGB\": [\n      241,\n      202,\n      23\n    ],\n    \"hex\": \"#f1ca17\",\n    \"name\": \"\\u67da\\u9ec4\",\n    \"pinyin\": \"youhuang\"\n  },\n  {\n    \"CMYK\": [\n      15,\n      20,\n      66,\n      2\n    ],\n    \"RGB\": [\n      221,\n      200,\n      113\n    ],\n    \"hex\": \"#ddc871\",\n    \"name\": \"\\u8292\\u679c\\u9ec4\",\n    \"pinyin\": \"mangguohuang\"\n  },\n  {\n    \"CMYK\": [\n      14,\n      22,\n      85,\n      2\n    ],\n    \"RGB\": [\n      223,\n      194,\n      67\n    ],\n    \"hex\": \"#dfc243\",\n    \"name\": \"\\u84bf\\u9ec4\",\n    \"pinyin\": \"haohuang\"\n  },\n  {\n    \"CMYK\": [\n      12,\n      24,\n      95,\n      2\n    ],\n    \"RGB\": [\n      226,\n      192,\n      39\n    ],\n    \"hex\": \"#e2c027\",\n    \"name\": \"\\u59dc\\u9ec4\",\n    \"pinyin\": \"jianghuang\"\n  },\n  {\n    \"CMYK\": [\n      11,\n      25,\n      99,\n      1\n    ],\n    \"RGB\": [\n      228,\n      191,\n      17\n    ],\n    \"hex\": \"#e4bf11\",\n    \"name\": \"\\u9999\\u8549\\u9ec4\",\n    \"pinyin\": \"xiangjiaohuang\"\n  },\n  {\n    \"CMYK\": [\n      17,\n      27,\n      94,\n      4\n    ],\n    \"RGB\": [\n      210,\n      180,\n      44\n    ],\n    \"hex\": \"#d2b42c\",\n    \"name\": \"\\u8349\\u9ec4\",\n    \"pinyin\": \"caohuang\"\n  },\n  {\n    \"CMYK\": [\n      17,\n      29,\n      100,\n      4\n    ],\n    \"RGB\": [\n      210,\n      177,\n      22\n    ],\n    \"hex\": \"#d2b116\",\n    \"name\": \"\\u65b0\\u79be\\u7eff\",\n    \"pinyin\": \"xinhelv\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      26,\n      45,\n      7\n    ],\n    \"RGB\": [\n      183,\n      174,\n      143\n    ],\n    \"hex\": \"#b7ae8f\",\n    \"name\": \"\\u6708\\u7070\",\n    \"pinyin\": \"yuehui\"\n  },\n  {\n    \"CMYK\": [\n      30,\n      30,\n      70,\n      12\n    ],\n    \"RGB\": [\n      173,\n      158,\n      85\n    ],\n    \"hex\": \"#ad9e5f\",\n    \"name\": \"\\u6de1\\u7070\\u7eff\",\n    \"pinyin\": \"danhuilv\"\n  },\n  {\n    \"CMYK\": [\n      38,\n      38,\n      76,\n      24\n    ],\n    \"RGB\": [\n      142,\n      128,\n      75\n    ],\n    \"hex\": \"#8e804b\",\n    \"name\": \"\\u8349\\u7070\\u7eff\",\n    \"pinyin\": \"caohuilv\"\n  },\n  {\n    \"CMYK\": [\n      36,\n      42,\n      100,\n      29\n    ],\n    \"RGB\": [\n      136,\n      115,\n      34\n    ],\n    \"hex\": \"#887322\",\n    \"name\": \"\\u82d4\\u7eff\",\n    \"pinyin\": \"tailv\"\n  },\n  {\n    \"CMYK\": [\n      36,\n      42,\n      100,\n      30\n    ],\n    \"RGB\": [\n      134,\n      112,\n      24\n    ],\n    \"hex\": \"#867018\",\n    \"name\": \"\\u78a7\\u87ba\\u6625\\u7eff\",\n    \"pinyin\": \"biluochunlv\"\n  },\n  {\n    \"CMYK\": [\n      47,\n      47,\n      65,\n      42\n    ],\n    \"RGB\": [\n      104,\n      94,\n      72\n    ],\n    \"hex\": \"#685e48\",\n    \"name\": \"\\u71d5\\u7fbd\\u7070\",\n    \"pinyin\": \"yanyuhui\"\n  },\n  {\n    \"CMYK\": [\n      46,\n      47,\n      69,\n      42\n    ],\n    \"RGB\": [\n      105,\n      94,\n      69\n    ],\n    \"hex\": \"#695e45\",\n    \"name\": \"\\u87f9\\u58f3\\u7070\",\n    \"pinyin\": \"xiekehui\"\n  },\n  {\n    \"CMYK\": [\n      48,\n      48,\n      100,\n      45\n    ],\n    \"RGB\": [\n      100,\n      88,\n      34\n    ],\n    \"hex\": \"#645822\",\n    \"name\": \"\\u6f6d\\u6c34\\u7eff\",\n    \"pinyin\": \"tanshuilv\"\n  },\n  {\n    \"CMYK\": [\n      50,\n      50,\n      10,\n      48\n    ],\n    \"RGB\": [\n      94,\n      83,\n      20\n    ],\n    \"hex\": \"#5e5314\",\n    \"name\": \"\\u6a44\\u6984\\u7eff\",\n    \"pinyin\": \"ganlanlv\"\n  },\n  {\n    \"CMYK\": [\n      2,\n      6,\n      18,\n      0\n    ],\n    \"RGB\": [\n      249,\n      241,\n      219\n    ],\n    \"hex\": \"#f9f1db\",\n    \"name\": \"\\u868c\\u8089\\u767d\",\n    \"pinyin\": \"bangroubai\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      10,\n      31,\n      0\n    ],\n    \"RGB\": [\n      248,\n      232,\n      193\n    ],\n    \"hex\": \"#f8e8c1\",\n    \"name\": \"\\u8c46\\u6c41\\u9ec4\",\n    \"pinyin\": \"douzhihuang\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      19,\n      66,\n      0\n    ],\n    \"RGB\": [\n      249,\n      215,\n      112\n    ],\n    \"hex\": \"#f9d770\",\n    \"name\": \"\\u6de1\\u8327\\u9ec4\",\n    \"pinyin\": \"danjianhuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      26,\n      94,\n      0\n    ],\n    \"RGB\": [\n      255,\n      201,\n      12\n    ],\n    \"hex\": \"#ffc90c\",\n    \"name\": \"\\u4e73\\u9e2d\\u9ec4\",\n    \"pinyin\": \"ruyahuang\"\n  },\n  {\n    \"CMYK\": [\n      5,\n      11,\n      22,\n      0\n    ],\n    \"RGB\": [\n      242,\n      230,\n      206\n    ],\n    \"hex\": \"#f2e6ce\",\n    \"name\": \"\\u8354\\u8089\\u767d\",\n    \"pinyin\": \"liroubai\"\n  },\n  {\n    \"CMYK\": [\n      5,\n      19,\n      50,\n      0\n    ],\n    \"RGB\": [\n      240,\n      214,\n      149\n    ],\n    \"hex\": \"#f0d695\",\n    \"name\": \"\\u8c61\\u7259\\u9ec4\",\n    \"pinyin\": \"xiangyahuang\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      23,\n      69,\n      0\n    ],\n    \"RGB\": [\n      244,\n      206,\n      105\n    ],\n    \"hex\": \"#f4ce69\",\n    \"name\": \"\\u7092\\u7c73\\u9ec4\",\n    \"pinyin\": \"chaomihuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      30,\n      95,\n      0\n    ],\n    \"RGB\": [\n      249,\n      193,\n      22\n    ],\n    \"hex\": \"#f9c116\",\n    \"name\": \"\\u6728\\u74dc\\u9ec4\",\n    \"pinyin\": \"muguahuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      32,\n      95,\n      0\n    ],\n    \"RGB\": [\n      249,\n      189,\n      16\n    ],\n    \"hex\": \"#f9bd10\",\n    \"name\": \"\\u6d45\\u70d9\\u9ec4\",\n    \"pinyin\": \"qianlaohuang\"\n  },\n  {\n    \"CMYK\": [\n      11,\n      18,\n      39,\n      1\n    ],\n    \"RGB\": [\n      229,\n      211,\n      170\n    ],\n    \"hex\": \"#e5d3aa\",\n    \"name\": \"\\u83b2\\u5b50\\u767d\",\n    \"pinyin\": \"lianzibai\"\n  },\n  {\n    \"CMYK\": [\n      5,\n      35,\n      99,\n      0\n    ],\n    \"RGB\": [\n      232,\n      176,\n      4\n    ],\n    \"hex\": \"#e8b004\",\n    \"name\": \"\\u8c37\\u9ec4\",\n    \"pinyin\": \"guhuang\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      36,\n      99,\n      0\n    ],\n    \"RGB\": [\n      235,\n      177,\n      13\n    ],\n    \"hex\": \"#ebb10d\",\n    \"name\": \"\\u6800\\u5b50\\u9ec4\",\n    \"pinyin\": \"zhizihuang\"\n  },\n  {\n    \"CMYK\": [\n      11,\n      39,\n      100,\n      2\n    ],\n    \"RGB\": [\n      217,\n      164,\n      14\n    ],\n    \"hex\": \"#d9a40e\",\n    \"name\": \"\\u82a5\\u9ec4\",\n    \"pinyin\": \"jiehuang\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      27,\n      43,\n      8\n    ],\n    \"RGB\": [\n      181,\n      170,\n      144\n    ],\n    \"hex\": \"#b5aa90\",\n    \"name\": \"\\u94f6\\u9f20\\u7070\",\n    \"pinyin\": \"yinshuhui\"\n  },\n  {\n    \"CMYK\": [\n      26,\n      31,\n      57,\n      10\n    ],\n    \"RGB\": [\n      182,\n      164,\n      118\n    ],\n    \"hex\": \"#b6a476\",\n    \"name\": \"\\u5c18\\u7070\",\n    \"pinyin\": \"chenhui\"\n  },\n  {\n    \"CMYK\": [\n      21,\n      43,\n      100,\n      11\n    ],\n    \"RGB\": [\n      183,\n      141,\n      18\n    ],\n    \"hex\": \"#b78d12\",\n    \"name\": \"\\u67af\\u7eff\",\n    \"pinyin\": \"kulv\"\n  },\n  {\n    \"CMYK\": [\n      35,\n      44,\n      80,\n      30\n    ],\n    \"RGB\": [\n      135,\n      114,\n      62\n    ],\n    \"hex\": \"#87723e\",\n    \"name\": \"\\u9c9b\\u9752\",\n    \"pinyin\": \"jiaoqing\"\n  },\n  {\n    \"CMYK\": [\n      32,\n      50,\n      100,\n      31\n    ],\n    \"RGB\": [\n      135,\n      104,\n      24\n    ],\n    \"hex\": \"#876818\",\n    \"name\": \"\\u7cbd\\u53f6\\u7eff\",\n    \"pinyin\": \"zongyelv\"\n  },\n  {\n    \"CMYK\": [\n      31,\n      51,\n      100,\n      30\n    ],\n    \"RGB\": [\n      138,\n      105,\n      19\n    ],\n    \"hex\": \"#8a6913\",\n    \"name\": \"\\u7070\\u7eff\",\n    \"pinyin\": \"huilv\"\n  },\n  {\n    \"CMYK\": [\n      52,\n      56,\n      64,\n      62\n    ],\n    \"RGB\": [\n      74,\n      64,\n      53\n    ],\n    \"hex\": \"#4a4035\",\n    \"name\": \"\\u9e64\\u7070\",\n    \"pinyin\": \"hehui\"\n  },\n  {\n    \"CMYK\": [\n      48,\n      58,\n      70,\n      62\n    ],\n    \"RGB\": [\n      77,\n      64,\n      48\n    ],\n    \"hex\": \"#4d4030\",\n    \"name\": \"\\u6de1\\u677e\\u70df\",\n    \"pinyin\": \"dansongyan\"\n  },\n  {\n    \"CMYK\": [\n      45,\n      56,\n      100,\n      56\n    ],\n    \"RGB\": [\n      88,\n      71,\n      23\n    ],\n    \"hex\": \"#584717\",\n    \"name\": \"\\u6697\\u6d77\\u6c34\\u7eff\",\n    \"pinyin\": \"anhaishuilv\"\n  },\n  {\n    \"CMYK\": [\n      45,\n      55,\n      100,\n      54\n    ],\n    \"RGB\": [\n      91,\n      73,\n      19\n    ],\n    \"hex\": \"#5b4913\",\n    \"name\": \"\\u68d5\\u6988\\u7eff\",\n    \"pinyin\": \"zonglvlv\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      11,\n      24,\n      0\n    ],\n    \"RGB\": [\n      249,\n      223,\n      205\n    ],\n    \"hex\": \"#f9e9cd\",\n    \"name\": \"\\u7c73\\u8272\",\n    \"pinyin\": \"mise\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      15,\n      38,\n      0\n    ],\n    \"RGB\": [\n      248,\n      224,\n      176\n    ],\n    \"hex\": \"#f8e0b0\",\n    \"name\": \"\\u6de1\\u8089\\u8272\",\n    \"pinyin\": \"danrouse\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      23,\n      59,\n      0\n    ],\n    \"RGB\": [\n      249,\n      210,\n      125\n    ],\n    \"hex\": \"#f9d27d\",\n    \"name\": \"\\u9ea6\\u82bd\\u7cd6\\u9ec4\",\n    \"pinyin\": \"maiyatanghuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      34,\n      93,\n      0\n    ],\n    \"RGB\": [\n      254,\n      186,\n      7\n    ],\n    \"hex\": \"#feba07\",\n    \"name\": \"\\u7425\\u73c0\\u9ec4\",\n    \"pinyin\": \"hupohuang\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      31,\n      79,\n      0\n    ],\n    \"RGB\": [\n      243,\n      191,\n      76\n    ],\n    \"hex\": \"#f3bf4c\",\n    \"name\": \"\\u7518\\u8349\\u9ec4\",\n    \"pinyin\": \"gancaohuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      33,\n      83,\n      0\n    ],\n    \"RGB\": [\n      248,\n      188,\n      49\n    ],\n    \"hex\": \"#f8bc31\",\n    \"name\": \"\\u521d\\u719f\\u674f\\u9ec4\",\n    \"pinyin\": \"chushuxinghuang\"\n  },\n  {\n    \"CMYK\": [\n      10,\n      27,\n      59,\n      1\n    ],\n    \"RGB\": [\n      226,\n      193,\n      124\n    ],\n    \"hex\": \"#e2c17c\",\n    \"name\": \"\\u6d45\\u9a7c\\u8272\",\n    \"pinyin\": \"qiantuose\"\n  },\n  {\n    \"CMYK\": [\n      7,\n      32,\n      78,\n      1\n    ],\n    \"RGB\": [\n      229,\n      183,\n      81\n    ],\n    \"hex\": \"#e5b751\",\n    \"name\": \"\\u6c99\\u77f3\\u9ec4\",\n    \"pinyin\": \"shashihuang\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      38,\n      97,\n      0\n    ],\n    \"RGB\": [\n      234,\n      173,\n      26\n    ],\n    \"hex\": \"#eaad1a\",\n    \"name\": \"\\u864e\\u76ae\\u9ec4\",\n    \"pinyin\": \"hupihuang\"\n  },\n  {\n    \"CMYK\": [\n      12,\n      41,\n      98,\n      2\n    ],\n    \"RGB\": [\n      214,\n      160,\n      29\n    ],\n    \"hex\": \"#d6a01d\",\n    \"name\": \"\\u571f\\u9ec4\",\n    \"pinyin\": \"tuhuang\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      28,\n      41,\n      9\n    ],\n    \"RGB\": [\n      180,\n      169,\n      146\n    ],\n    \"hex\": \"#b4a992\",\n    \"name\": \"\\u767e\\u7075\\u9e1f\\u7070\",\n    \"pinyin\": \"bailingniaohui\"\n  },\n  {\n    \"CMYK\": [\n      21,\n      44,\n      97,\n      11\n    ],\n    \"RGB\": [\n      183,\n      139,\n      38\n    ],\n    \"hex\": \"#b78b26\",\n    \"name\": \"\\u5c71\\u9e21\\u9ec4\",\n    \"pinyin\": \"shanjihuang\"\n  },\n  {\n    \"CMYK\": [\n      35,\n      47,\n      71,\n      33\n    ],\n    \"RGB\": [\n      130,\n      107,\n      72\n    ],\n    \"hex\": \"#826b48\",\n    \"name\": \"\\u9f9f\\u80cc\\u9ec4\",\n    \"pinyin\": \"guibeihuang\"\n  },\n  {\n    \"CMYK\": [\n      34,\n      52,\n      85,\n      35\n    ],\n    \"RGB\": [\n      128,\n      99,\n      50\n    ],\n    \"hex\": \"#806332\",\n    \"name\": \"\\u82cd\\u9ec4\",\n    \"pinyin\": \"canghuang\"\n  },\n  {\n    \"CMYK\": [\n      32,\n      56,\n      96,\n      34\n    ],\n    \"RGB\": [\n      129,\n      95,\n      37\n    ],\n    \"hex\": \"#815f25\",\n    \"name\": \"\\u83b1\\u9633\\u68a8\\u9ec4\",\n    \"pinyin\": \"laiyanglihuang\"\n  },\n  {\n    \"CMYK\": [\n      31,\n      57,\n      100,\n      33\n    ],\n    \"RGB\": [\n      131,\n      94,\n      29\n    ],\n    \"hex\": \"#835e1d\",\n    \"name\": \"\\u8734\\u870a\\u7eff\",\n    \"pinyin\": \"yililv\"\n  },\n  {\n    \"CMYK\": [\n      46,\n      59,\n      68,\n      61\n    ],\n    \"RGB\": [\n      79,\n      64,\n      50\n    ],\n    \"hex\": \"#4f4032\",\n    \"name\": \"\\u677e\\u9f20\\u7070\",\n    \"pinyin\": \"songshuhui\"\n  },\n  {\n    \"CMYK\": [\n      44,\n      61,\n      76,\n      62\n    ],\n    \"RGB\": [\n      80,\n      62,\n      42\n    ],\n    \"hex\": \"#503e2a\",\n    \"name\": \"\\u6a44\\u6984\\u7070\",\n    \"pinyin\": \"ganlanhui\"\n  },\n  {\n    \"CMYK\": [\n      43,\n      63,\n      88,\n      61\n    ],\n    \"RGB\": [\n      81,\n      60,\n      32\n    ],\n    \"hex\": \"#513c20\",\n    \"name\": \"\\u87f9\\u58f3\\u7eff\",\n    \"pinyin\": \"xiekelv\"\n  },\n  {\n    \"CMYK\": [\n      42,\n      64,\n      94,\n      60\n    ],\n    \"RGB\": [\n      83,\n      60,\n      27\n    ],\n    \"hex\": \"#533c1b\",\n    \"name\": \"\\u53e4\\u94dc\\u7eff\",\n    \"pinyin\": \"gutonglv\"\n  },\n  {\n    \"CMYK\": [\n      41,\n      66,\n      94,\n      60\n    ],\n    \"RGB\": [\n      85,\n      59,\n      24\n    ],\n    \"hex\": \"#553b18\",\n    \"name\": \"\\u7126\\u8336\\u7eff\",\n    \"pinyin\": \"jiaochalv\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      7,\n      13,\n      0\n    ],\n    \"RGB\": [\n      251,\n      242,\n      227\n    ],\n    \"hex\": \"#fbf2e3\",\n    \"name\": \"\\u7c89\\u767d\",\n    \"pinyin\": \"fenbai\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      12,\n      22,\n      0\n    ],\n    \"RGB\": [\n      249,\n      232,\n      208\n    ],\n    \"hex\": \"#f9e8d0\",\n    \"name\": \"\\u843d\\u82f1\\u6de1\\u7c89\",\n    \"pinyin\": \"luoyingdanfen\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      27,\n      51,\n      0\n    ],\n    \"RGB\": [\n      249,\n      203,\n      139\n    ],\n    \"hex\": \"#f9cb8b\",\n    \"name\": \"\\u74dc\\u74e4\\u7c89\",\n    \"pinyin\": \"guarangfen\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      36,\n      72,\n      0\n    ],\n    \"RGB\": [\n      251,\n      185,\n      87\n    ],\n    \"hex\": \"#fbb957\",\n    \"name\": \"\\u871c\\u9ec4\",\n    \"pinyin\": \"mihuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      44,\n      91,\n      0\n    ],\n    \"RGB\": [\n      255,\n      166,\n      15\n    ],\n    \"hex\": \"#ffa60f\",\n    \"name\": \"\\u91d1\\u53f6\\u9ec4\",\n    \"pinyin\": \"jinyehuang\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      43,\n      82,\n      0\n    ],\n    \"RGB\": [\n      244,\n      168,\n      58\n    ],\n    \"hex\": \"#f4a83a\",\n    \"name\": \"\\u91d1\\u83ba\\u9ec4\",\n    \"pinyin\": \"jinyinghuang\"\n  },\n  {\n    \"CMYK\": [\n      8,\n      31,\n      50,\n      1\n    ],\n    \"RGB\": [\n      227,\n      189,\n      141\n    ],\n    \"hex\": \"#e3bd8d\",\n    \"name\": \"\\u9e7f\\u89d2\\u68d5\",\n    \"pinyin\": \"lujiaozong\"\n  },\n  {\n    \"CMYK\": [\n      2,\n      44,\n      83,\n      0\n    ],\n    \"RGB\": [\n      231,\n      162,\n      63\n    ],\n    \"hex\": \"#e7a23f\",\n    \"name\": \"\\u51cb\\u53f6\\u68d5\",\n    \"pinyin\": \"diaoyezong\"\n  },\n  {\n    \"CMYK\": [\n      10,\n      41,\n      72,\n      1\n    ],\n    \"RGB\": [\n      218,\n      164,\n      90\n    ],\n    \"hex\": \"#daa45a\",\n    \"name\": \"\\u73b3\\u7441\\u9ec4\",\n    \"pinyin\": \"daimaohuang\"\n  },\n  {\n    \"CMYK\": [\n      7,\n      45,\n      82,\n      1\n    ],\n    \"RGB\": [\n      222,\n      158,\n      68\n    ],\n    \"hex\": \"#de9e44\",\n    \"name\": \"\\u8f6f\\u6728\\u9ec4\",\n    \"pinyin\": \"ruanmuhuang\"\n  },\n  {\n    \"CMYK\": [\n      6,\n      51,\n      95,\n      1\n    ],\n    \"RGB\": [\n      220,\n      145,\n      35\n    ],\n    \"hex\": \"#dc9123\",\n    \"name\": \"\\u98ce\\u5e06\\u9ec4\",\n    \"pinyin\": \"fengfanhuang\"\n  },\n  {\n    \"CMYK\": [\n      19,\n      44,\n      75,\n      7\n    ],\n    \"RGB\": [\n      192,\n      147,\n      81\n    ],\n    \"hex\": \"#c09351\",\n    \"name\": \"\\u6842\\u76ae\\u6de1\\u68d5\",\n    \"pinyin\": \"guipidanzong\"\n  },\n  {\n    \"CMYK\": [\n      32,\n      40,\n      53,\n      22\n    ],\n    \"RGB\": [\n      151,\n      132,\n      108\n    ],\n    \"hex\": \"#97846c\",\n    \"name\": \"\\u7334\\u6bdb\\u7070\",\n    \"pinyin\": \"houmaohui\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      60,\n      97,\n      21\n    ],\n    \"RGB\": [\n      152,\n      101,\n      36\n    ],\n    \"hex\": \"#986524\",\n    \"name\": \"\\u5c71\\u9e21\\u8910\",\n    \"pinyin\": \"shanjihe\"\n  },\n  {\n    \"CMYK\": [\n      37,\n      65,\n      84,\n      49\n    ],\n    \"RGB\": [\n      102,\n      70,\n      42\n    ],\n    \"hex\": \"#66462a\",\n    \"name\": \"\\u9a7c\\u8272\",\n    \"pinyin\": \"tuose\"\n  },\n  {\n    \"CMYK\": [\n      38,\n      69,\n      90,\n      54\n    ],\n    \"RGB\": [\n      93,\n      61,\n      33\n    ],\n    \"hex\": \"#5d3d21\",\n    \"name\": \"\\u8336\\u8910\",\n    \"pinyin\": \"chahe\"\n  },\n  {\n    \"CMYK\": [\n      37,\n      74,\n      96,\n      55\n    ],\n    \"RGB\": [\n      92,\n      55,\n      25\n    ],\n    \"hex\": \"#5c3719\",\n    \"name\": \"\\u53e4\\u94dc\\u8910\",\n    \"pinyin\": \"gutonghe\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      10,\n      14,\n      0\n    ],\n    \"RGB\": [\n      251,\n      236,\n      222\n    ],\n    \"hex\": \"#fbecde\",\n    \"name\": \"\\u8377\\u82b1\\u767d\",\n    \"pinyin\": \"hehuabai\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      40,\n      52,\n      0\n    ],\n    \"RGB\": [\n      248,\n      179,\n      127\n    ],\n    \"hex\": \"#f8b37f\",\n    \"name\": \"\\u73ab\\u7470\\u7c89\",\n    \"pinyin\": \"meiguifen\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      62,\n      88,\n      0\n    ],\n    \"RGB\": [\n      249,\n      125,\n      28\n    ],\n    \"hex\": \"#f97d1c\",\n    \"name\": \"\\u6a58\\u6a59\",\n    \"pinyin\": \"jucheng\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      62,\n      85,\n      0\n    ],\n    \"RGB\": [\n      250,\n      126,\n      35\n    ],\n    \"hex\": \"#fa7e23\",\n    \"name\": \"\\u7f8e\\u4eba\\u7126\\u6a59\",\n    \"pinyin\": \"meirenjiaocheng\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      28,\n      25,\n      0\n    ],\n    \"RGB\": [\n      247,\n      205,\n      188\n    ],\n    \"hex\": \"#f7cdbc\",\n    \"name\": \"\\u6da6\\u7ea2\",\n    \"pinyin\": \"runhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      28,\n      22,\n      0\n    ],\n    \"RGB\": [\n      246,\n      206,\n      193\n    ],\n    \"hex\": \"#f6cec1\",\n    \"name\": \"\\u6de1\\u6843\\u7ea2\",\n    \"pinyin\": \"dantaohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      53,\n      65,\n      0\n    ],\n    \"RGB\": [\n      240,\n      148,\n      93\n    ],\n    \"hex\": \"#f0945d\",\n    \"name\": \"\\u6d77\\u87ba\\u6a59\",\n    \"pinyin\": \"hailuocheng\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      44,\n      32,\n      0\n    ],\n    \"RGB\": [\n      240,\n      173,\n      160\n    ],\n    \"hex\": \"#f0ada0\",\n    \"name\": \"\\u6843\\u7ea2\",\n    \"pinyin\": \"taohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      45,\n      34,\n      0\n    ],\n    \"RGB\": [\n      238,\n      170,\n      156\n    ],\n    \"hex\": \"#eeaa9c\",\n    \"name\": \"\\u988a\\u7ea2\",\n    \"pinyin\": \"jiahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      49,\n      41,\n      0\n    ],\n    \"RGB\": [\n      238,\n      160,\n      140\n    ],\n    \"hex\": \"#eea08c\",\n    \"name\": \"\\u6de1\\u7f42\\u7c9f\\u7ea2\",\n    \"pinyin\": \"danyingsuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      58,\n      67,\n      0\n    ],\n    \"RGB\": [\n      234,\n      137,\n      88\n    ],\n    \"hex\": \"#ea8958\",\n    \"name\": \"\\u6668\\u66e6\\u7ea2\",\n    \"pinyin\": \"chenxihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      65,\n      80,\n      0\n    ],\n    \"RGB\": [\n      242,\n      118,\n      53\n    ],\n    \"hex\": \"#f27635\",\n    \"name\": \"\\u87f9\\u58f3\\u7ea2\",\n    \"pinyin\": \"xiekehong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      69,\n      86,\n      0\n    ],\n    \"RGB\": [\n      248,\n      107,\n      29\n    ],\n    \"hex\": \"#f86b1d\",\n    \"name\": \"\\u91d1\\u83b2\\u82b1\\u6a59\",\n    \"pinyin\": \"jinlianhuacheng\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      69,\n      70,\n      0\n    ],\n    \"RGB\": [\n      239,\n      111,\n      72\n    ],\n    \"hex\": \"#ef6f48\",\n    \"name\": \"\\u8349\\u8393\\u7ea2\",\n    \"pinyin\": \"caomeihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      72,\n      82,\n      0\n    ],\n    \"RGB\": [\n      239,\n      99,\n      43\n    ],\n    \"hex\": \"#ef632b\",\n    \"name\": \"\\u9f99\\u775b\\u9c7c\\u7ea2\",\n    \"pinyin\": \"longjingyuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      81,\n      84,\n      0\n    ],\n    \"RGB\": [\n      241,\n      68,\n      29\n    ],\n    \"hex\": \"#f1441d\",\n    \"name\": \"\\u873b\\u8713\\u7ea2\",\n    \"pinyin\": \"qingtinghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      80,\n      83,\n      0\n    ],\n    \"RGB\": [\n      240,\n      75,\n      34\n    ],\n    \"hex\": \"#f04b22\",\n    \"name\": \"\\u5927\\u7ea2\",\n    \"pinyin\": \"dahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      80,\n      85,\n      0\n    ],\n    \"RGB\": [\n      242,\n      72,\n      27\n    ],\n    \"hex\": \"#f2481b\",\n    \"name\": \"\\u67ff\\u7ea2\",\n    \"pinyin\": \"shihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      80,\n      85,\n      0\n    ],\n    \"RGB\": [\n      243,\n      71,\n      24\n    ],\n    \"hex\": \"#f34718\",\n    \"name\": \"\\u69b4\\u82b1\\u7ea2\",\n    \"pinyin\": \"liuhuahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      83,\n      87,\n      0\n    ],\n    \"RGB\": [\n      244,\n      62,\n      6\n    ],\n    \"hex\": \"#f43e06\",\n    \"name\": \"\\u94f6\\u6731\",\n    \"pinyin\": \"yinzhu\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      78,\n      83,\n      0\n    ],\n    \"RGB\": [\n      237,\n      81,\n      38\n    ],\n    \"hex\": \"#ed5126\",\n    \"name\": \"\\u6731\\u7ea2\",\n    \"pinyin\": \"zhuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      50,\n      68,\n      0\n    ],\n    \"RGB\": [\n      240,\n      156,\n      90\n    ],\n    \"hex\": \"#f09c5a\",\n    \"name\": \"\\u9c91\\u9c7c\\u7ea2\",\n    \"pinyin\": \"guiyuhong\"\n  },\n  {\n    \"CMYK\": [\n      5,\n      69,\n      87,\n      0\n    ],\n    \"RGB\": [\n      242,\n      123,\n      31\n    ],\n    \"hex\": \"#f26b1f\",\n    \"name\": \"\\u91d1\\u9ec4\",\n    \"pinyin\": \"jinhuang\"\n  },\n  {\n    \"CMYK\": [\n      7,\n      52,\n      71,\n      1\n    ],\n    \"RGB\": [\n      217,\n      145,\n      86\n    ],\n    \"hex\": \"#d99156\",\n    \"name\": \"\\u9e7f\\u76ae\\u8910\",\n    \"pinyin\": \"lupihe\"\n  },\n  {\n    \"CMYK\": [\n      4,\n      57,\n      82,\n      1\n    ],\n    \"RGB\": [\n      219,\n      133,\n      64\n    ],\n    \"hex\": \"#db8540\",\n    \"name\": \"\\u9189\\u74dc\\u8089\",\n    \"pinyin\": \"zuiguarou\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      64,\n      93,\n      0\n    ],\n    \"RGB\": [\n      222,\n      118,\n      34\n    ],\n    \"hex\": \"#de7622\",\n    \"name\": \"\\u9e82\\u68d5\",\n    \"pinyin\": \"jizong\"\n  },\n  {\n    \"CMYK\": [\n      22,\n      28,\n      34,\n      6\n    ],\n    \"RGB\": [\n      193,\n      178,\n      163\n    ],\n    \"hex\": \"#c1b2a3\",\n    \"name\": \"\\u6de1\\u94f6\\u7070\",\n    \"pinyin\": \"danyinhui\"\n  },\n  {\n    \"CMYK\": [\n      18,\n      57,\n      76,\n      6\n    ],\n    \"RGB\": [\n      190,\n      126,\n      74\n    ],\n    \"hex\": \"#be7e4a\",\n    \"name\": \"\\u6de1\\u8d6d\",\n    \"pinyin\": \"danzhe\"\n  },\n  {\n    \"CMYK\": [\n      14,\n      69,\n      100,\n      4\n    ],\n    \"RGB\": [\n      193,\n      101,\n      26\n    ],\n    \"hex\": \"#c1651a\",\n    \"name\": \"\\u69df\\u6994\\u7efc\",\n    \"pinyin\": \"binglangzong\"\n  },\n  {\n    \"CMYK\": [\n      34,\n      42,\n      46,\n      23\n    ],\n    \"RGB\": [\n      145,\n      128,\n      114\n    ],\n    \"hex\": \"#918072\",\n    \"name\": \"\\u94f6\\u7070\",\n    \"pinyin\": \"yinhui\"\n  },\n  {\n    \"CMYK\": [\n      42,\n      40,\n      46,\n      20\n    ],\n    \"RGB\": [\n      154,\n      136,\n      120\n    ],\n    \"hex\": \"#9a8878\",\n    \"name\": \"\\u6d77\\u9e25\\u7070\",\n    \"pinyin\": \"haiouhui\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      69,\n      85,\n      22\n    ],\n    \"RGB\": [\n      148,\n      88,\n      51\n    ],\n    \"hex\": \"#945833\",\n    \"name\": \"\\u6de1\\u5496\\u5561\",\n    \"pinyin\": \"dankafei\"\n  },\n  {\n    \"CMYK\": [\n      26,\n      76,\n      97,\n      20\n    ],\n    \"RGB\": [\n      150,\n      77,\n      34\n    ],\n    \"hex\": \"#964d22\",\n    \"name\": \"\\u5ca9\\u77f3\\u68d5\",\n    \"pinyin\": \"yanshizong\"\n  },\n  {\n    \"CMYK\": [\n      25,\n      80,\n      100,\n      20\n    ],\n    \"RGB\": [\n      149,\n      68,\n      22\n    ],\n    \"hex\": \"#954416\",\n    \"name\": \"\\u8292\\u679c\\u68d5\",\n    \"pinyin\": \"mangguozong\"\n  },\n  {\n    \"CMYK\": [\n      39,\n      60,\n      58,\n      51\n    ],\n    \"RGB\": [\n      98,\n      73,\n      65\n    ],\n    \"hex\": \"#624941\",\n    \"name\": \"\\u77f3\\u677f\\u7070\",\n    \"pinyin\": \"shibanhui\"\n  },\n  {\n    \"CMYK\": [\n      38,\n      63,\n      63,\n      50\n    ],\n    \"RGB\": [\n      100,\n      72,\n      61\n    ],\n    \"hex\": \"#64483d\",\n    \"name\": \"\\u73e0\\u6bcd\\u7070\",\n    \"pinyin\": \"zhumuhui\"\n  },\n  {\n    \"CMYK\": [\n      32,\n      83,\n      96,\n      41\n    ],\n    \"RGB\": [\n      113,\n      54,\n      29\n    ],\n    \"hex\": \"#71361d\",\n    \"name\": \"\\u4e01\\u9999\\u68d5\",\n    \"pinyin\": \"dingxiangzong\"\n  },\n  {\n    \"CMYK\": [\n      30,\n      87,\n      100,\n      38\n    ],\n    \"RGB\": [\n      117,\n      49,\n      23\n    ],\n    \"hex\": \"#753117\",\n    \"name\": \"\\u5496\\u5561\",\n    \"pinyin\": \"kafei\"\n  },\n  {\n    \"CMYK\": [\n      30,\n      89,\n      100,\n      39\n    ],\n    \"RGB\": [\n      115,\n      46,\n      18\n    ],\n    \"hex\": \"#732e12\",\n    \"name\": \"\\u7b4d\\u76ae\\u68d5\",\n    \"pinyin\": \"sunpizong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      72,\n      86,\n      0\n    ],\n    \"RGB\": [\n      252,\n      99,\n      21\n    ],\n    \"hex\": \"#fc6315\",\n    \"name\": \"\\u71d5\\u9894\\u7ea2\",\n    \"pinyin\": \"yanhanhong\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      38,\n      39,\n      0\n    ],\n    \"RGB\": [\n      232,\n      180,\n      154\n    ],\n    \"hex\": \"#e8b49a\",\n    \"name\": \"\\u7389\\u7c89\\u7ea2\",\n    \"pinyin\": \"yufenhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      70,\n      87,\n      0\n    ],\n    \"RGB\": [\n      228,\n      104,\n      40\n    ],\n    \"hex\": \"#e46828\",\n    \"name\": \"\\u91d1\\u9a7c\",\n    \"pinyin\": \"jintuo\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      76,\n      97,\n      0\n    ],\n    \"RGB\": [\n      216,\n      89,\n      22\n    ],\n    \"hex\": \"#d85916\",\n    \"name\": \"\\u94c1\\u68d5\",\n    \"pinyin\": \"tiezong\"\n  },\n  {\n    \"CMYK\": [\n      23,\n      35,\n      38,\n      10\n    ],\n    \"RGB\": [\n      183,\n      160,\n      145\n    ],\n    \"hex\": \"#b7a091\",\n    \"name\": \"\\u86db\\u7f51\\u7070\",\n    \"pinyin\": \"zhuwanghui\"\n  },\n  {\n    \"CMYK\": [\n      16,\n      77,\n      100,\n      6\n    ],\n    \"RGB\": [\n      183,\n      81,\n      29\n    ],\n    \"hex\": \"#b7511d\",\n    \"name\": \"\\u6de1\\u53ef\\u53ef\\u68d5\",\n    \"pinyin\": \"dankekezong\"\n  },\n  {\n    \"CMYK\": [\n      31,\n      63,\n      66,\n      31\n    ],\n    \"RGB\": [\n      139,\n      97,\n      77\n    ],\n    \"hex\": \"#8b614d\",\n    \"name\": \"\\u4e2d\\u7ea2\\u7070\",\n    \"pinyin\": \"zhonghonghui\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      76,\n      82,\n      26\n    ],\n    \"RGB\": [\n      140,\n      75,\n      49\n    ],\n    \"hex\": \"#8c4b31\",\n    \"name\": \"\\u6de1\\u571f\\u9ec4\",\n    \"pinyin\": \"dantuhuang\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      83,\n      92,\n      28\n    ],\n    \"RGB\": [\n      135,\n      61,\n      36\n    ],\n    \"hex\": \"#873d24\",\n    \"name\": \"\\u6de1\\u8c46\\u6c99\",\n    \"pinyin\": \"dandousha\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      85,\n      98,\n      27\n    ],\n    \"RGB\": [\n      136,\n      58,\n      30\n    ],\n    \"hex\": \"#883a1e\",\n    \"name\": \"\\u6930\\u58f3\\u68d5\",\n    \"pinyin\": \"yekezong\"\n  },\n  {\n    \"CMYK\": [\n      40,\n      64,\n      61,\n      56\n    ],\n    \"RGB\": [\n      91,\n      66,\n      58\n    ],\n    \"hex\": \"#5b423a\",\n    \"name\": \"\\u6de1\\u94c1\\u7070\",\n    \"pinyin\": \"dantiehui\"\n  },\n  {\n    \"CMYK\": [\n      37,\n      72,\n      72,\n      52\n    ],\n    \"RGB\": [\n      96,\n      61,\n      48\n    ],\n    \"hex\": \"#603d30\",\n    \"name\": \"\\u4e2d\\u7070\\u9a7c\",\n    \"pinyin\": \"zhonghuituo\"\n  },\n  {\n    \"CMYK\": [\n      34,\n      82,\n      85,\n      47\n    ],\n    \"RGB\": [\n      103,\n      52,\n      36\n    ],\n    \"hex\": \"#673424\",\n    \"name\": \"\\u6de1\\u6817\\u68d5\",\n    \"pinyin\": \"danlizong\"\n  },\n  {\n    \"CMYK\": [\n      33,\n      89,\n      92,\n      48\n    ],\n    \"RGB\": [\n      101,\n      43,\n      28\n    ],\n    \"hex\": \"#652b1c\",\n    \"name\": \"\\u53ef\\u53ef\\u68d5\",\n    \"pinyin\": \"kekezong\"\n  },\n  {\n    \"CMYK\": [\n      32,\n      90,\n      95,\n      45\n    ],\n    \"RGB\": [\n      105,\n      42,\n      27\n    ],\n    \"hex\": \"#692a1b\",\n    \"name\": \"\\u67de\\u53f6\\u68d5\",\n    \"pinyin\": \"zhayezong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      53,\n      59,\n      0\n    ],\n    \"RGB\": [\n      251,\n      153,\n      104\n    ],\n    \"hex\": \"#fb9968\",\n    \"name\": \"\\u91ce\\u8537\\u8587\\u7ea2\",\n    \"pinyin\": \"yeqiangweihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      65,\n      79,\n      0\n    ],\n    \"RGB\": [\n      252,\n      121,\n      48\n    ],\n    \"hex\": \"#fc7930\",\n    \"name\": \"\\u83e0\\u841d\\u7ea2\",\n    \"pinyin\": \"boluohong\"\n  },\n  {\n    \"CMYK\": [\n      2,\n      31,\n      31,\n      0\n    ],\n    \"RGB\": [\n      237,\n      195,\n      174\n    ],\n    \"hex\": \"#edc3ae\",\n    \"name\": \"\\u85d5\\u8377\",\n    \"pinyin\": \"ouhe\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      70,\n      91,\n      0\n    ],\n    \"RGB\": [\n      225,\n      103,\n      35\n    ],\n    \"hex\": \"#e16723\",\n    \"name\": \"\\u9676\\u74f7\\u7ea2\",\n    \"pinyin\": \"taocihong\"\n  },\n  {\n    \"CMYK\": [\n      16,\n      23,\n      27,\n      2\n    ],\n    \"RGB\": [\n      212,\n      196,\n      183\n    ],\n    \"hex\": \"#d4c4b7\",\n    \"name\": \"\\u6653\\u7070\",\n    \"pinyin\": \"xiaohui\"\n  },\n  {\n    \"CMYK\": [\n      9,\n      64,\n      78,\n      1\n    ],\n    \"RGB\": [\n      207,\n      117,\n      67\n    ],\n    \"hex\": \"#cf7543\",\n    \"name\": \"\\u4f59\\u70ec\\u7ea2\",\n    \"pinyin\": \"yujinhong\"\n  },\n  {\n    \"CMYK\": [\n      8,\n      72,\n      93,\n      1\n    ],\n    \"RGB\": [\n      205,\n      98,\n      39\n    ],\n    \"hex\": \"#cd6227\",\n    \"name\": \"\\u706b\\u7816\\u7ea2\",\n    \"pinyin\": \"huozhuanhong\"\n  },\n  {\n    \"CMYK\": [\n      22,\n      64,\n      71,\n      12\n    ],\n    \"RGB\": [\n      170,\n      106,\n      76\n    ],\n    \"hex\": \"#aa6a4c\",\n    \"name\": \"\\u706b\\u6ce5\\u68d5\",\n    \"pinyin\": \"huonizong\"\n  },\n  {\n    \"CMYK\": [\n      20,\n      76,\n      92,\n      9\n    ],\n    \"RGB\": [\n      166,\n      82,\n      44\n    ],\n    \"hex\": \"#a6522c\",\n    \"name\": \"\\u7ec0\\u7ea2\",\n    \"pinyin\": \"ganhong\"\n  },\n  {\n    \"CMYK\": [\n      31,\n      79,\n      77,\n      37\n    ],\n    \"RGB\": [\n      119,\n      61,\n      49\n    ],\n    \"hex\": \"#773d31\",\n    \"name\": \"\\u6a61\\u6811\\u68d5\",\n    \"pinyin\": \"xiangshuzong\"\n  },\n  {\n    \"CMYK\": [\n      45,\n      68,\n      57,\n      66\n    ],\n    \"RGB\": [\n      72,\n      51,\n      50\n    ],\n    \"hex\": \"#483332\",\n    \"name\": \"\\u6d77\\u62a5\\u7070\",\n    \"pinyin\": \"haibaohui\"\n  },\n  {\n    \"CMYK\": [\n      41,\n      76,\n      64,\n      65\n    ],\n    \"RGB\": [\n      175,\n      46,\n      43\n    ],\n    \"hex\": \"#4b2e2b\",\n    \"name\": \"\\u73ab\\u7470\\u7070\",\n    \"pinyin\": \"meiguihui\"\n  },\n  {\n    \"CMYK\": [\n      41,\n      84,\n      71,\n      67\n    ],\n    \"RGB\": [\n      72,\n      37,\n      34\n    ],\n    \"hex\": \"#482522\",\n    \"name\": \"\\u706b\\u5c71\\u68d5\",\n    \"pinyin\": \"huoshanzong\"\n  },\n  {\n    \"CMYK\": [\n      40,\n      92,\n      78,\n      66\n    ],\n    \"RGB\": [\n      72,\n      30,\n      28\n    ],\n    \"hex\": \"#481e1c\",\n    \"name\": \"\\u8c46\\u6c99\",\n    \"pinyin\": \"dousha\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      9,\n      12,\n      0\n    ],\n    \"RGB\": [\n      251,\n      238,\n      226\n    ],\n    \"hex\": \"#fbeee2\",\n    \"name\": \"\\u6de1\\u7c73\\u7c89\",\n    \"pinyin\": \"danmifen\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      19,\n      19,\n      0\n    ],\n    \"RGB\": [\n      246,\n      220,\n      206\n    ],\n    \"hex\": \"#f6dcce\",\n    \"name\": \"\\u521d\\u6843\\u7c89\\u7ea2\",\n    \"pinyin\": \"chutaofenhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      27,\n      27,\n      0\n    ],\n    \"RGB\": [\n      247,\n      207,\n      186\n    ],\n    \"hex\": \"#f7cfba\",\n    \"name\": \"\\u4ecb\\u58f3\\u6de1\\u7c89\\u7ea2\",\n    \"pinyin\": \"jieqiaodanfenhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      43,\n      43,\n      0\n    ],\n    \"RGB\": [\n      246,\n      173,\n      143\n    ],\n    \"hex\": \"#f6ad8f\",\n    \"name\": \"\\u6de1\\u85cf\\u82b1\\u7ea2\",\n    \"pinyin\": \"dancanghuahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      58,\n      61,\n      0\n    ],\n    \"RGB\": [\n      246,\n      140,\n      96\n    ],\n    \"hex\": \"#f68c60\",\n    \"name\": \"\\u74dc\\u74e4\\u7ea2\",\n    \"pinyin\": \"guaranghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      67,\n      74,\n      0\n    ],\n    \"RGB\": [\n      249,\n      114,\n      61\n    ],\n    \"hex\": \"#f9723d\",\n    \"name\": \"\\u8299\\u84c9\\u7ea2\",\n    \"pinyin\": \"furonghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      74,\n      85,\n      0\n    ],\n    \"RGB\": [\n      250,\n      93,\n      25\n    ],\n    \"hex\": \"#fa5d19\",\n    \"name\": \"\\u8393\\u9171\\u7ea2\",\n    \"pinyin\": \"meijianghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      62,\n      66,\n      0\n    ],\n    \"RGB\": [\n      238,\n      128,\n      85\n    ],\n    \"hex\": \"#ee8055\",\n    \"name\": \"\\u6cd5\\u87ba\\u7ea2\",\n    \"pinyin\": \"faluohong\"\n  },\n  {\n    \"CMYK\": [\n      4,\n      82,\n      99,\n      0\n    ],\n    \"RGB\": [\n      207,\n      72,\n      19\n    ],\n    \"hex\": \"#cf4813\",\n    \"name\": \"\\u843d\\u971e\\u7ea2\",\n    \"pinyin\": \"luoxiahong\"\n  },\n  {\n    \"CMYK\": [\n      21,\n      43,\n      43,\n      9\n    ],\n    \"RGB\": [\n      184,\n      148,\n      133\n    ],\n    \"hex\": \"#b89485\",\n    \"name\": \"\\u6de1\\u73ab\\u7470\\u7070\",\n    \"pinyin\": \"danmeiguihui\"\n  },\n  {\n    \"CMYK\": [\n      18,\n      80,\n      92,\n      7\n    ],\n    \"RGB\": [\n      177,\n      75,\n      40\n    ],\n    \"hex\": \"#b14b28\",\n    \"name\": \"\\u87f9\\u8765\\u7ea2\",\n    \"pinyin\": \"xiemaohong\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      91,\n      95,\n      28\n    ],\n    \"RGB\": [\n      134,\n      48,\n      32\n    ],\n    \"hex\": \"#863020\",\n    \"name\": \"\\u706b\\u5ca9\\u68d5\",\n    \"pinyin\": \"huoyanzong\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      96,\n      100,\n      27\n    ],\n    \"RGB\": [\n      134,\n      38,\n      23\n    ],\n    \"hex\": \"#862617\",\n    \"name\": \"\\u8d6d\\u77f3\",\n    \"pinyin\": \"zheshi\"\n  },\n  {\n    \"CMYK\": [\n      36,\n      90,\n      82,\n      56\n    ],\n    \"RGB\": [\n      89,\n      38,\n      32\n    ],\n    \"hex\": \"#592620\",\n    \"name\": \"\\u6697\\u9a7c\\u68d5\",\n    \"pinyin\": \"antuozong\"\n  },\n  {\n    \"CMYK\": [\n      35,\n      96,\n      88,\n      55\n    ],\n    \"RGB\": [\n      90,\n      31,\n      27\n    ],\n    \"hex\": \"#5a1f1b\",\n    \"name\": \"\\u9171\\u68d5\",\n    \"pinyin\": \"jiangzong\"\n  },\n  {\n    \"CMYK\": [\n      34,\n      98,\n      91,\n      53\n    ],\n    \"RGB\": [\n      92,\n      30,\n      25\n    ],\n    \"hex\": \"#5c1e19\",\n    \"name\": \"\\u6817\\u68d5\",\n    \"pinyin\": \"lizong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      31,\n      24,\n      0\n    ],\n    \"RGB\": [\n      244,\n      199,\n      186\n    ],\n    \"hex\": \"#f4c7ba\",\n    \"name\": \"\\u6d0b\\u6c34\\u4ed9\\u7ea2\",\n    \"pinyin\": \"yangshuixianhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      67,\n      55,\n      0\n    ],\n    \"RGB\": [\n      241,\n      118,\n      102\n    ],\n    \"hex\": \"#f17666\",\n    \"name\": \"\\u8c37\\u9798\\u7ea2\",\n    \"pinyin\": \"guqiaohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      77,\n      69,\n      0\n    ],\n    \"RGB\": [\n      241,\n      86,\n      66\n    ],\n    \"hex\": \"#f15642\",\n    \"name\": \"\\u82f9\\u679c\\u7ea2\",\n    \"pinyin\": \"pingguohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      84,\n      82,\n      0\n    ],\n    \"RGB\": [\n      245,\n      57,\n      28\n    ],\n    \"hex\": \"#f5391c\",\n    \"name\": \"\\u94c1\\u6c34\\u7ea2\",\n    \"pinyin\": \"tieshuihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      76,\n      67,\n      0\n    ],\n    \"RGB\": [\n      242,\n      90,\n      71\n    ],\n    \"hex\": \"#f25a47\",\n    \"name\": \"\\u6842\\u7ea2\",\n    \"pinyin\": \"guihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      38,\n      25,\n      0\n    ],\n    \"RGB\": [\n      242,\n      185,\n      178\n    ],\n    \"hex\": \"#f2b9b2\",\n    \"name\": \"\\u7c89\\u7ea2\",\n    \"pinyin\": \"fenhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      53,\n      36,\n      0\n    ],\n    \"RGB\": [\n      241,\n      151,\n      144\n    ],\n    \"hex\": \"#f19790\",\n    \"name\": \"\\u820c\\u7ea2\",\n    \"pinyin\": \"shehong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      76,\n      68,\n      0\n    ],\n    \"RGB\": [\n      240,\n      90,\n      70\n    ],\n    \"hex\": \"#f05a46\",\n    \"name\": \"\\u66f2\\u7ea2\",\n    \"pinyin\": \"quhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      83,\n      81,\n      0\n    ],\n    \"RGB\": [\n      242,\n      62,\n      35\n    ],\n    \"hex\": \"#f23e23\",\n    \"name\": \"\\u7ea2\\u6c5e\\u7ea2\",\n    \"pinyin\": \"honggonghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      29,\n      16,\n      0\n    ],\n    \"RGB\": [\n      242,\n      202,\n      201\n    ],\n    \"hex\": \"#f2cac9\",\n    \"name\": \"\\u6de1\\u7eef\",\n    \"pinyin\": \"danfei\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      43,\n      24,\n      0\n    ],\n    \"RGB\": [\n      239,\n      175,\n      173\n    ],\n    \"hex\": \"#efafad\",\n    \"name\": \"\\u65e0\\u82b1\\u679c\\u7ea2\",\n    \"pinyin\": \"wuhuaguohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      57,\n      36,\n      0\n    ],\n    \"RGB\": [\n      241,\n      144,\n      140\n    ],\n    \"hex\": \"#f1908c\",\n    \"name\": \"\\u69b4\\u5b50\\u7ea2\",\n    \"pinyin\": \"liuzihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      83,\n      81,\n      0\n    ],\n    \"RGB\": [\n      240,\n      63,\n      36\n    ],\n    \"hex\": \"#f03f24\",\n    \"name\": \"\\u80ed\\u8102\\u7ea2\",\n    \"pinyin\": \"yanzhihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      50,\n      23,\n      0\n    ],\n    \"RGB\": [\n      240,\n      161,\n      168\n    ],\n    \"hex\": \"#f0a1a8\",\n    \"name\": \"\\u5408\\u6b22\\u7ea2\",\n    \"pinyin\": \"hehuanhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      56,\n      27,\n      0\n    ],\n    \"RGB\": [\n      241,\n      147,\n      156\n    ],\n    \"hex\": \"#f1939c\",\n    \"name\": \"\\u6625\\u6885\\u7ea2\",\n    \"pinyin\": \"chunmeihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      65,\n      38,\n      0\n    ],\n    \"RGB\": [\n      240,\n      124,\n      130\n    ],\n    \"hex\": \"#f07c82\",\n    \"name\": \"\\u9999\\u53f6\\u7ea2\",\n    \"pinyin\": \"xiangyehong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      80,\n      72,\n      0\n    ],\n    \"RGB\": [\n      240,\n      74,\n      58\n    ],\n    \"hex\": \"#f04a3a\",\n    \"name\": \"\\u73ca\\u745a\\u7ea2\",\n    \"pinyin\": \"shanhuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      84,\n      82,\n      0\n    ],\n    \"RGB\": [\n      241,\n      60,\n      34\n    ],\n    \"hex\": \"#f13c22\",\n    \"name\": \"\\u841d\\u535c\\u7ea2\",\n    \"pinyin\": \"luobohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      65,\n      29,\n      0\n    ],\n    \"RGB\": [\n      231,\n      124,\n      142\n    ],\n    \"hex\": \"#e77c8e\",\n    \"name\": \"\\u6de1\\u831c\\u7ea2\",\n    \"pinyin\": \"danqianhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      77,\n      49,\n      0\n    ],\n    \"RGB\": [\n      237,\n      90,\n      101\n    ],\n    \"hex\": \"#ed5a65\",\n    \"name\": \"\\u8273\\u7ea2\",\n    \"pinyin\": \"yanhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      81,\n      66,\n      0\n    ],\n    \"RGB\": [\n      237,\n      72,\n      69\n    ],\n    \"hex\": \"#ed4845\",\n    \"name\": \"\\u6de1\\u83fd\\u7ea2\",\n    \"pinyin\": \"danshuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      84,\n      76,\n      0\n    ],\n    \"RGB\": [\n      237,\n      59,\n      47\n    ],\n    \"hex\": \"#ed3b2f\",\n    \"name\": \"\\u9c7c\\u9cc3\\u7ea2\",\n    \"pinyin\": \"yusaihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      86,\n      82,\n      0\n    ],\n    \"RGB\": [\n      237,\n      51,\n      33\n    ],\n    \"hex\": \"#ed3321\",\n    \"name\": \"\\u6a31\\u6843\\u7ea2\",\n    \"pinyin\": \"yingtaohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      82,\n      44,\n      0\n    ],\n    \"RGB\": [\n      238,\n      72,\n      102\n    ],\n    \"hex\": \"#ee4866\",\n    \"name\": \"\\u6de1\\u854a\\u9999\\u7ea2\",\n    \"pinyin\": \"danruixianghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      82,\n      46,\n      0\n    ],\n    \"RGB\": [\n      238,\n      72,\n      99\n    ],\n    \"hex\": \"#ee4863\",\n    \"name\": \"\\u77f3\\u7af9\\u7ea2\",\n    \"pinyin\": \"shizhuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      82,\n      50,\n      0\n    ],\n    \"RGB\": [\n      239,\n      71,\n      93\n    ],\n    \"hex\": \"#ef475d\",\n    \"name\": \"\\u8349\\u8309\\u8389\\u7ea2\",\n    \"pinyin\": \"caomolihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      84,\n      60,\n      0\n    ],\n    \"RGB\": [\n      238,\n      63,\n      77\n    ],\n    \"hex\": \"#ee3f4d\",\n    \"name\": \"\\u8336\\u82b1\\u7ea2\",\n    \"pinyin\": \"chahuahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      86,\n      74,\n      0\n    ],\n    \"RGB\": [\n      237,\n      51,\n      51\n    ],\n    \"hex\": \"#ed3333\",\n    \"name\": \"\\u67b8\\u67a2\\u7ea2\",\n    \"pinyin\": \"goushuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      88,\n      81,\n      0\n    ],\n    \"RGB\": [\n      236,\n      43,\n      36\n    ],\n    \"hex\": \"#ec2b24\",\n    \"name\": \"\\u79cb\\u6d77\\u68e0\\u7ea2\",\n    \"pinyin\": \"qiuhaitanghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      89,\n      84,\n      0\n    ],\n    \"RGB\": [\n      235,\n      38,\n      26\n    ],\n    \"hex\": \"#eb261a\",\n    \"name\": \"\\u4e3d\\u6625\\u7ea2\",\n    \"pinyin\": \"lichunhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      90,\n      90,\n      0\n    ],\n    \"RGB\": [\n      222,\n      42,\n      24\n    ],\n    \"hex\": \"#de2a18\",\n    \"name\": \"\\u5915\\u9633\\u7ea2\",\n    \"pinyin\": \"xiyanghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      92,\n      95,\n      0\n    ],\n    \"RGB\": [\n      212,\n      37,\n      23\n    ],\n    \"hex\": \"#d42517\",\n    \"name\": \"\\u9e64\\u9876\\u7ea2\",\n    \"pinyin\": \"hedinghong\"\n  },\n  {\n    \"CMYK\": [\n      19,\n      89,\n      85,\n      9\n    ],\n    \"RGB\": [\n      171,\n      55,\n      47\n    ],\n    \"hex\": \"#ab372f\",\n    \"name\": \"\\u9e45\\u8840\\u77f3\\u7ea2\",\n    \"pinyin\": \"exueshihong\"\n  },\n  {\n    \"CMYK\": [\n      17,\n      98,\n      100,\n      8\n    ],\n    \"RGB\": [\n      172,\n      31,\n      24\n    ],\n    \"hex\": \"#ac1f18\",\n    \"name\": \"\\u8986\\u76c6\\u5b50\\u7ea2\",\n    \"pinyin\": \"fupenzihong\"\n  },\n  {\n    \"CMYK\": [\n      36,\n      81,\n      64,\n      54\n    ],\n    \"RGB\": [\n      93,\n      49,\n      49\n    ],\n    \"hex\": \"#5d3131\",\n    \"name\": \"\\u8c82\\u7d2b\",\n    \"pinyin\": \"diaozi\"\n  },\n  {\n    \"CMYK\": [\n      35,\n      94,\n      77,\n      53\n    ],\n    \"RGB\": [\n      92,\n      34,\n      35\n    ],\n    \"hex\": \"#5c2223\",\n    \"name\": \"\\u6697\\u7389\\u7d2b\",\n    \"pinyin\": \"anyuzi\"\n  },\n  {\n    \"CMYK\": [\n      35,\n      100,\n      85,\n      54\n    ],\n    \"RGB\": [\n      90,\n      25,\n      27\n    ],\n    \"hex\": \"#5a191b\",\n    \"name\": \"\\u6817\\u7d2b\",\n    \"pinyin\": \"lizi\"\n  },\n  {\n    \"CMYK\": [\n      35,\n      100,\n      80,\n      54\n    ],\n    \"RGB\": [\n      90,\n      18,\n      22\n    ],\n    \"hex\": \"#5a1216\",\n    \"name\": \"\\u8461\\u8404\\u9171\\u7d2b\",\n    \"pinyin\": \"putaojiangzi\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      49,\n      27,\n      0\n    ],\n    \"RGB\": [\n      238,\n      162,\n      164\n    ],\n    \"hex\": \"#eea2a4\",\n    \"name\": \"\\u7261\\u4e39\\u7c89\\u7ea2\",\n    \"pinyin\": \"mudanfenhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      78,\n      44,\n      0\n    ],\n    \"RGB\": [\n      237,\n      85,\n      106\n    ],\n    \"hex\": \"#ed556a\",\n    \"name\": \"\\u5c71\\u8336\\u7ea2\",\n    \"pinyin\": \"shanchahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      86,\n      55,\n      0\n    ],\n    \"RGB\": [\n      240,\n      55,\n      82\n    ],\n    \"hex\": \"#f03752\",\n    \"name\": \"\\u6d77\\u68e0\\u7ea2\",\n    \"pinyin\": \"haitanghong\"\n  },\n  {\n    \"CMYK\": [\n      13,\n      83,\n      62,\n      3\n    ],\n    \"RGB\": [\n      192,\n      72,\n      81\n    ],\n    \"hex\": \"#c04851\",\n    \"name\": \"\\u7389\\u7ea2\",\n    \"pinyin\": \"yuhong\"\n  },\n  {\n    \"CMYK\": [\n      11,\n      93,\n      77,\n      2\n    ],\n    \"RGB\": [\n      192,\n      44,\n      56\n    ],\n    \"hex\": \"#c02c38\",\n    \"name\": \"\\u9ad8\\u7cb1\\u7ea2\",\n    \"pinyin\": \"gaolianghong\"\n  },\n  {\n    \"CMYK\": [\n      22,\n      76,\n      54,\n      12\n    ],\n    \"RGB\": [\n      167,\n      83,\n      90\n    ],\n    \"hex\": \"#a7535a\",\n    \"name\": \"\\u6ee1\\u6c5f\\u7ea2\",\n    \"pinyin\": \"manjianghong\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      100,\n      86,\n      33\n    ],\n    \"RGB\": [\n      124,\n      24,\n      35\n    ],\n    \"hex\": \"#7c1823\",\n    \"name\": \"\\u67a3\\u7ea2\",\n    \"pinyin\": \"zaohong\"\n  },\n  {\n    \"CMYK\": [\n      39,\n      92,\n      67,\n      64\n    ],\n    \"RGB\": [\n      76,\n      31,\n      36\n    ],\n    \"hex\": \"#4c1f24\",\n    \"name\": \"\\u8461\\u8404\\u7d2b\",\n    \"pinyin\": \"putaozi\"\n  },\n  {\n    \"CMYK\": [\n      39,\n      100,\n      79,\n      63\n    ],\n    \"RGB\": [\n      77,\n      16,\n      24\n    ],\n    \"hex\": \"#4d1018\",\n    \"name\": \"\\u9171\\u7d2b\",\n    \"pinyin\": \"jiangzi\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      89,\n      62,\n      0\n    ],\n    \"RGB\": [\n      238,\n      39,\n      70\n    ],\n    \"hex\": \"#ee2746\",\n    \"name\": \"\\u6de1\\u66d9\\u7ea2\",\n    \"pinyin\": \"danshuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      93,\n      76,\n      0\n    ],\n    \"RGB\": [\n      222,\n      28,\n      49\n    ],\n    \"hex\": \"#de1c31\",\n    \"name\": \"\\u5510\\u83d6\\u84b2\\u7ea2\",\n    \"pinyin\": \"tangchangpuhong\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      95,\n      82,\n      0\n    ],\n    \"RGB\": [\n      209,\n      26,\n      45\n    ],\n    \"hex\": \"#d11a2d\",\n    \"name\": \"\\u9e45\\u51a0\\u7ea2\",\n    \"pinyin\": \"eguanhong\"\n  },\n  {\n    \"CMYK\": [\n      13,\n      76,\n      50,\n      2\n    ],\n    \"RGB\": [\n      196,\n      90,\n      101\n    ],\n    \"hex\": \"#c45a65\",\n    \"name\": \"\\u8393\\u7ea2\",\n    \"pinyin\": \"meihong\"\n  },\n  {\n    \"CMYK\": [\n      10,\n      96,\n      82,\n      2\n    ],\n    \"RGB\": [\n      194,\n      31,\n      48\n    ],\n    \"hex\": \"#c21f30\",\n    \"name\": \"\\u67ab\\u53f6\\u7ea2\",\n    \"pinyin\": \"fengyehong\"\n  },\n  {\n    \"CMYK\": [\n      19,\n      99,\n      86,\n      11\n    ],\n    \"RGB\": [\n      166,\n      27,\n      41\n    ],\n    \"hex\": \"#a61b29\",\n    \"name\": \"\\u82cb\\u83dc\\u7ea2\",\n    \"pinyin\": \"xiancaihong\"\n  },\n  {\n    \"CMYK\": [\n      29,\n      73,\n      51,\n      28\n    ],\n    \"RGB\": [\n      137,\n      78,\n      84\n    ],\n    \"hex\": \"#894e54\",\n    \"name\": \"\\u70df\\u7ea2\",\n    \"pinyin\": \"yanhong\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      98,\n      79,\n      30\n    ],\n    \"RGB\": [\n      130,\n      32,\n      43\n    ],\n    \"hex\": \"#82202b\",\n    \"name\": \"\\u6697\\u7d2b\\u82d1\\u7ea2\",\n    \"pinyin\": \"anziyuanhong\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      100,\n      90,\n      29\n    ],\n    \"RGB\": [\n      130,\n      17,\n      31\n    ],\n    \"hex\": \"#82111f\",\n    \"name\": \"\\u6bb7\\u7ea2\",\n    \"pinyin\": \"yanhong\"\n  },\n  {\n    \"CMYK\": [\n      36,\n      95,\n      71,\n      59\n    ],\n    \"RGB\": [\n      84,\n      30,\n      36\n    ],\n    \"hex\": \"#541e24\",\n    \"name\": \"\\u732a\\u809d\\u7d2b\",\n    \"pinyin\": \"zhuganzi\"\n  },\n  {\n    \"CMYK\": [\n      38,\n      100,\n      81,\n      61\n    ],\n    \"RGB\": [\n      80,\n      10,\n      22\n    ],\n    \"hex\": \"#500a16\",\n    \"name\": \"\\u91d1\\u9c7c\\u7d2b\",\n    \"pinyin\": \"jinyuzi\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      11,\n      9,\n      0\n    ],\n    \"RGB\": [\n      248,\n      235,\n      230\n    ],\n    \"hex\": \"#f8ebe6\",\n    \"name\": \"\\u8349\\u73e0\\u7ea2\",\n    \"pinyin\": \"caozhuhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      68,\n      21,\n      0\n    ],\n    \"RGB\": [\n      236,\n      118,\n      150\n    ],\n    \"hex\": \"#ec7696\",\n    \"name\": \"\\u6de1\\u7edb\\u7ea2\",\n    \"pinyin\": \"danjianghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      86,\n      30,\n      0\n    ],\n    \"RGB\": [\n      239,\n      52,\n      115\n    ],\n    \"hex\": \"#ef3473\",\n    \"name\": \"\\u54c1\\u7ea2\",\n    \"pinyin\": \"pinhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      69,\n      22,\n      0\n    ],\n    \"RGB\": [\n      234,\n      114,\n      147\n    ],\n    \"hex\": \"#ea7293\",\n    \"name\": \"\\u51e4\\u4ed9\\u82b1\\u7ea2\",\n    \"pinyin\": \"fengxianhuahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      52,\n      18,\n      0\n    ],\n    \"RGB\": [\n      236,\n      155,\n      173\n    ],\n    \"hex\": \"#ec9bad\",\n    \"name\": \"\\u7c89\\u56e2\\u82b1\\u7ea2\",\n    \"pinyin\": \"fentuanhuahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      80,\n      28,\n      0\n    ],\n    \"RGB\": [\n      235,\n      80,\n      126\n    ],\n    \"hex\": \"#eb507e\",\n    \"name\": \"\\u5939\\u7af9\\u6843\\u7ea2\",\n    \"pinyin\": \"jiazhutaohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      88,\n      36,\n      0\n    ],\n    \"RGB\": [\n      237,\n      47,\n      106\n    ],\n    \"hex\": \"#ed2f6a\",\n    \"name\": \"\\u69b2\\u6872\\u7ea2\",\n    \"pinyin\": \"wenpohong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      39,\n      14,\n      0\n    ],\n    \"RGB\": [\n      238,\n      184,\n      195\n    ],\n    \"hex\": \"#eeb8c3\",\n    \"name\": \"\\u59dc\\u7ea2\",\n    \"pinyin\": \"jianghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      80,\n      27,\n      0\n    ],\n    \"RGB\": [\n      234,\n      81,\n      127\n    ],\n    \"hex\": \"#ea517f\",\n    \"name\": \"\\u83b2\\u74e3\\u7ea2\",\n    \"pinyin\": \"lianbanhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      33,\n      11,\n      0\n    ],\n    \"RGB\": [\n      241,\n      196,\n      205\n    ],\n    \"hex\": \"#f1c4cd\",\n    \"name\": \"\\u6c34\\u7ea2\",\n    \"pinyin\": \"shuihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      60,\n      18,\n      0\n    ],\n    \"RGB\": [\n      236,\n      138,\n      164\n    ],\n    \"hex\": \"#ec8aa4\",\n    \"name\": \"\\u62a5\\u6625\\u7ea2\",\n    \"pinyin\": \"baochunhong\"\n  },\n  {\n    \"CMYK\": [\n      8,\n      78,\n      35,\n      1\n    ],\n    \"RGB\": [\n      206,\n      87,\n      109\n    ],\n    \"hex\": \"#ce5777\",\n    \"name\": \"\\u6708\\u5b63\\u7ea2\",\n    \"pinyin\": \"yuejihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      52,\n      15,\n      0\n    ],\n    \"RGB\": [\n      237,\n      157,\n      178\n    ],\n    \"hex\": \"#ed9db2\",\n    \"name\": \"\\u8c47\\u8c46\\u7ea2\",\n    \"pinyin\": \"jiangdouhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      63,\n      18,\n      0\n    ],\n    \"RGB\": [\n      239,\n      130,\n      160\n    ],\n    \"hex\": \"#ef82a0\",\n    \"name\": \"\\u971e\\u5149\\u7ea2\",\n    \"pinyin\": \"xiaguanghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      85,\n      33,\n      0\n    ],\n    \"RGB\": [\n      235,\n      60,\n      112\n    ],\n    \"hex\": \"#eb3c70\",\n    \"name\": \"\\u677e\\u53f6\\u7261\\u4e39\\u7ea2\",\n    \"pinyin\": \"songyemudanhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      88,\n      40,\n      0\n    ],\n    \"RGB\": [\n      236,\n      44,\n      100\n    ],\n    \"hex\": \"#ec2c64\",\n    \"name\": \"\\u559c\\u86cb\\u7ea2\",\n    \"pinyin\": \"xidanhong\"\n  },\n  {\n    \"CMYK\": [\n      5,\n      38,\n      20,\n      0\n    ],\n    \"RGB\": [\n      227,\n      180,\n      184\n    ],\n    \"hex\": \"#e3b4b8\",\n    \"name\": \"\\u9f20\\u9f3b\\u7ea2\",\n    \"pinyin\": \"shubihong\"\n  },\n  {\n    \"CMYK\": [\n      5,\n      96,\n      73,\n      1\n    ],\n    \"RGB\": [\n      204,\n      22,\n      58\n    ],\n    \"hex\": \"#cc163a\",\n    \"name\": \"\\u5c16\\u6676\\u7389\\u7ea2\",\n    \"pinyin\": \"jianjingyuhong\"\n  },\n  {\n    \"CMYK\": [\n      16,\n      61,\n      34,\n      4\n    ],\n    \"RGB\": [\n      194,\n      124,\n      136\n    ],\n    \"hex\": \"#c27c88\",\n    \"name\": \"\\u5c71\\u9ece\\u8c46\\u7ea2\",\n    \"pinyin\": \"shanlidouhong\"\n  },\n  {\n    \"CMYK\": [\n      13,\n      90,\n      56,\n      3\n    ],\n    \"RGB\": [\n      191,\n      53,\n      83\n    ],\n    \"hex\": \"#bf3553\",\n    \"name\": \"\\u9526\\u8475\\u7ea2\",\n    \"pinyin\": \"jinkuihong\"\n  },\n  {\n    \"CMYK\": [\n      41,\n      64,\n      44,\n      36\n    ],\n    \"RGB\": [\n      115,\n      87,\n      92\n    ],\n    \"hex\": \"#73575c\",\n    \"name\": \"\\u9f20\\u80cc\\u7070\",\n    \"pinyin\": \"shubeihui\"\n  },\n  {\n    \"CMYK\": [\n      33,\n      100,\n      75,\n      49\n    ],\n    \"RGB\": [\n      98,\n      22,\n      36\n    ],\n    \"hex\": \"#621624\",\n    \"name\": \"\\u7518\\u8517\\u7d2b\",\n    \"pinyin\": \"ganzhezi\"\n  },\n  {\n    \"CMYK\": [\n      32,\n      100,\n      84,\n      49\n    ],\n    \"RGB\": [\n      99,\n      7,\n      28\n    ],\n    \"hex\": \"#63071c\",\n    \"name\": \"\\u77f3\\u7af9\\u7d2b\",\n    \"pinyin\": \"shizhuzi\"\n  },\n  {\n    \"CMYK\": [\n      57,\n      72,\n      54,\n      74\n    ],\n    \"RGB\": [\n      54,\n      40,\n      43\n    ],\n    \"hex\": \"#36282b\",\n    \"name\": \"\\u82cd\\u8747\\u7070\",\n    \"pinyin\": \"cangyinghui\"\n  },\n  {\n    \"CMYK\": [\n      52,\n      88,\n      58,\n      81\n    ],\n    \"RGB\": [\n      48,\n      22,\n      28\n    ],\n    \"hex\": \"#30161c\",\n    \"name\": \"\\u5375\\u77f3\\u7d2b\",\n    \"pinyin\": \"luanshizi\"\n  },\n  {\n    \"CMYK\": [\n      56,\n      88,\n      62,\n      84\n    ],\n    \"RGB\": [\n      43,\n      18,\n      22\n    ],\n    \"hex\": \"#2b1216\",\n    \"name\": \"\\u674e\\u7d2b\",\n    \"pinyin\": \"lizi\"\n  },\n  {\n    \"CMYK\": [\n      58,\n      90,\n      63,\n      83\n    ],\n    \"RGB\": [\n      45,\n      12,\n      19\n    ],\n    \"hex\": \"#2d0c13\",\n    \"name\": \"\\u8304\\u76ae\\u7d2b\",\n    \"pinyin\": \"qiepizi\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      76,\n      16,\n      0\n    ],\n    \"RGB\": [\n      206,\n      94,\n      138\n    ],\n    \"hex\": \"#ce5e8a\",\n    \"name\": \"\\u540a\\u949f\\u82b1\\u7ea2\",\n    \"pinyin\": \"diaozhonghuahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      81,\n      18,\n      0\n    ],\n    \"RGB\": [\n      236,\n      78,\n      138\n    ],\n    \"hex\": \"#ec4e8a\",\n    \"name\": \"\\u5154\\u773c\\u7ea2\",\n    \"pinyin\": \"tuyanhong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      87,\n      24,\n      0\n    ],\n    \"RGB\": [\n      238,\n      44,\n      121\n    ],\n    \"hex\": \"#ee2c79\",\n    \"name\": \"\\u7d2b\\u8346\\u7ea2\",\n    \"pinyin\": \"zijinghong\"\n  },\n  {\n    \"CMYK\": [\n      24,\n      99,\n      52,\n      19\n    ],\n    \"RGB\": [\n      149,\n      28,\n      72\n    ],\n    \"hex\": \"#951c48\",\n    \"name\": \"\\u83dc\\u5934\\u7d2b\",\n    \"pinyin\": \"caitouzi\"\n  },\n  {\n    \"CMYK\": [\n      34,\n      97,\n      54,\n      50\n    ],\n    \"RGB\": [\n      98,\n      29,\n      52\n    ],\n    \"hex\": \"#621d34\",\n    \"name\": \"\\u9e5e\\u51a0\\u7d2b\",\n    \"pinyin\": \"yaoguanzi\"\n  },\n  {\n    \"CMYK\": [\n      33,\n      100,\n      58,\n      60\n    ],\n    \"RGB\": [\n      98,\n      16,\n      46\n    ],\n    \"hex\": \"#62102e\",\n    \"name\": \"\\u8461\\u8404\\u9152\\u7ea2\",\n    \"pinyin\": \"putaojiuhong\"\n  },\n  {\n    \"CMYK\": [\n      53,\n      81,\n      50,\n      74\n    ],\n    \"RGB\": [\n      56,\n      33,\n      41\n    ],\n    \"hex\": \"#382129\",\n    \"name\": \"\\u78e8\\u77f3\\u7d2b\",\n    \"pinyin\": \"moshizi\"\n  },\n  {\n    \"CMYK\": [\n      48,\n      90,\n      50,\n      76\n    ],\n    \"RGB\": [\n      56,\n      25,\n      36\n    ],\n    \"hex\": \"#381924\",\n    \"name\": \"\\u6a80\\u7d2b\",\n    \"pinyin\": \"tanzi\"\n  },\n  {\n    \"CMYK\": [\n      50,\n      91,\n      54,\n      79\n    ],\n    \"RGB\": [\n      51,\n      20,\n      30\n    ],\n    \"hex\": \"#33141e\",\n    \"name\": \"\\u706b\\u9e45\\u7d2b\",\n    \"pinyin\": \"huoezi\"\n  },\n  {\n    \"CMYK\": [\n      53,\n      92,\n      55,\n      81\n    ],\n    \"RGB\": [\n      49,\n      15,\n      27\n    ],\n    \"hex\": \"#310f1b\",\n    \"name\": \"\\u58a8\\u7d2b\",\n    \"pinyin\": \"mozi\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      48,\n      15,\n      0\n    ],\n    \"RGB\": [\n      238,\n      166,\n      183\n    ],\n    \"hex\": \"#eea6b7\",\n    \"name\": \"\\u6676\\u7ea2\",\n    \"pinyin\": \"jinghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      82,\n      16,\n      0\n    ],\n    \"RGB\": [\n      239,\n      73,\n      139\n    ],\n    \"hex\": \"#ef498b\",\n    \"name\": \"\\u6241\\u8c46\\u82b1\\u7ea2\",\n    \"pinyin\": \"biandouhuahong\"\n  },\n  {\n    \"CMYK\": [\n      2,\n      66,\n      22,\n      0\n    ],\n    \"RGB\": [\n      222,\n      120,\n      151\n    ],\n    \"hex\": \"#de7897\",\n    \"name\": \"\\u767d\\u82a8\\u7ea2\",\n    \"pinyin\": \"baijihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      85,\n      24,\n      0\n    ],\n    \"RGB\": [\n      222,\n      63,\n      124\n    ],\n    \"hex\": \"#de3f7c\",\n    \"name\": \"\\u5ae9\\u83f1\\u7ea2\",\n    \"pinyin\": \"nenlinghong\"\n  },\n  {\n    \"CMYK\": [\n      5,\n      87,\n      30,\n      1\n    ],\n    \"RGB\": [\n      209,\n      60,\n      116\n    ],\n    \"hex\": \"#d13c74\",\n    \"name\": \"\\u83e0\\u6839\\u7ea2\",\n    \"pinyin\": \"bogenhong\"\n  },\n  {\n    \"CMYK\": [\n      15,\n      68,\n      28,\n      2\n    ],\n    \"RGB\": [\n      197,\n      112,\n      139\n    ],\n    \"hex\": \"#c5708b\",\n    \"name\": \"\\u9162\\u9171\\u8349\\u7ea2\",\n    \"pinyin\": \"cujiangcaohong\"\n  },\n  {\n    \"CMYK\": [\n      22,\n      83,\n      34,\n      11\n    ],\n    \"RGB\": [\n      168,\n      69,\n      107\n    ],\n    \"hex\": \"#a8456b\",\n    \"name\": \"\\u6d0b\\u8471\\u7d2b\",\n    \"pinyin\": \"yangcongzi\"\n  },\n  {\n    \"CMYK\": [\n      40,\n      92,\n      47,\n      64\n    ],\n    \"RGB\": [\n      75,\n      30,\n      47\n    ],\n    \"hex\": \"#4b1e2f\",\n    \"name\": \"\\u6d77\\u8c61\\u7d2b\",\n    \"pinyin\": \"haixiangzi\"\n  },\n  {\n    \"CMYK\": [\n      41,\n      97,\n      49,\n      68\n    ],\n    \"RGB\": [\n      70,\n      22,\n      41\n    ],\n    \"hex\": \"#461629\",\n    \"name\": \"\\u7ec0\\u7d2b\",\n    \"pinyin\": \"ganzi\"\n  },\n  {\n    \"CMYK\": [\n      42,\n      99,\n      51,\n      69\n    ],\n    \"RGB\": [\n      68,\n      14,\n      37\n    ],\n    \"hex\": \"#440e25\",\n    \"name\": \"\\u53e4\\u94dc\\u7d2b\",\n    \"pinyin\": \"gutongzi\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      30,\n      12,\n      0\n    ],\n    \"RGB\": [\n      240,\n      201,\n      207\n    ],\n    \"hex\": \"#f0c9cf\",\n    \"name\": \"\\u77f3\\u854a\\u7ea2\",\n    \"pinyin\": \"shiruihong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      50,\n      16,\n      0\n    ],\n    \"RGB\": [\n      235,\n      160,\n      179\n    ],\n    \"hex\": \"#eba0b3\",\n    \"name\": \"\\u828d\\u836f\\u8015\\u7ea2\",\n    \"pinyin\": \"shaoyaogenghong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      88,\n      23,\n      0\n    ],\n    \"RGB\": [\n      236,\n      45,\n      122\n    ],\n    \"hex\": \"#ec2d7a\",\n    \"name\": \"\\u85cf\\u82b1\\u7ea2\",\n    \"pinyin\": \"canghuahong\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      71,\n      18,\n      0\n    ],\n    \"RGB\": [\n      225,\n      108,\n      150\n    ],\n    \"hex\": \"#e16c96\",\n    \"name\": \"\\u521d\\u8377\\u7ea2\",\n    \"pinyin\": \"chuhehong\"\n  },\n  {\n    \"CMYK\": [\n      6,\n      13,\n      7,\n      0\n    ],\n    \"RGB\": [\n      237,\n      227,\n      231\n    ],\n    \"hex\": \"#ede3e7\",\n    \"name\": \"\\u9a6c\\u97ad\\u8349\\u7d2b\",\n    \"pinyin\": \"mabiancaozi\"\n  },\n  {\n    \"CMYK\": [\n      7,\n      20,\n      8,\n      0\n    ],\n    \"RGB\": [\n      233,\n      215,\n      223\n    ],\n    \"hex\": \"#e9d7df\",\n    \"name\": \"\\u4e01\\u9999\\u6de1\\u7d2b\",\n    \"pinyin\": \"dingxiangdanzi\"\n  },\n  {\n    \"CMYK\": [\n      7,\n      79,\n      18,\n      0\n    ],\n    \"RGB\": [\n      210,\n      86,\n      140\n    ],\n    \"hex\": \"#d2568c\",\n    \"name\": \"\\u4e39\\u7d2b\\u7ea2\",\n    \"pinyin\": \"danzihong\"\n  },\n  {\n    \"CMYK\": [\n      4,\n      89,\n      21,\n      0\n    ],\n    \"RGB\": [\n      210,\n      53,\n      125\n    ],\n    \"hex\": \"#d2357d\",\n    \"name\": \"\\u73ab\\u7470\\u7ea2\",\n    \"pinyin\": \"meiguihong\"\n  },\n  {\n    \"CMYK\": [\n      19,\n      27,\n      9,\n      0\n    ],\n    \"RGB\": [\n      209,\n      194,\n      211\n    ],\n    \"hex\": \"#d1c2d3\",\n    \"name\": \"\\u6de1\\u7275\\u725b\\u7d2b\",\n    \"pinyin\": \"danqianniuzi\"\n  },\n  {\n    \"CMYK\": [\n      21,\n      37,\n      12,\n      0\n    ],\n    \"RGB\": [\n      200,\n      173,\n      196\n    ],\n    \"hex\": \"#c8adc4\",\n    \"name\": \"\\u51e4\\u4fe1\\u7d2b\",\n    \"pinyin\": \"fengxinzi\"\n  },\n  {\n    \"CMYK\": [\n      23,\n      53,\n      14,\n      1\n    ],\n    \"RGB\": [\n      192,\n      142,\n      175\n    ],\n    \"hex\": \"#c08eaf\",\n    \"name\": \"\\u841d\\u5170\\u7d2b\",\n    \"pinyin\": \"luolanzi\"\n  },\n  {\n    \"CMYK\": [\n      18,\n      91,\n      18,\n      2\n    ],\n    \"RGB\": [\n      186,\n      47,\n      123\n    ],\n    \"hex\": \"#ba2f7b\",\n    \"name\": \"\\u73ab\\u7470\\u7d2b\",\n    \"pinyin\": \"meiguizi\"\n  },\n  {\n    \"CMYK\": [\n      58,\n      56,\n      17,\n      2\n    ],\n    \"RGB\": [\n      128,\n      118,\n      163\n    ],\n    \"hex\": \"#8076a3\",\n    \"name\": \"\\u85e4\\u841d\\u7d2b\",\n    \"pinyin\": \"tengluozi\"\n  },\n  {\n    \"CMYK\": [\n      57,\n      62,\n      16,\n      2\n    ],\n    \"RGB\": [\n      128,\n      109,\n      158\n    ],\n    \"hex\": \"#806d9e\",\n    \"name\": \"\\u69ff\\u7d2b\",\n    \"pinyin\": \"jinzi\"\n  },\n  {\n    \"CMYK\": [\n      56,\n      72,\n      15,\n      1\n    ],\n    \"RGB\": [\n      129,\n      92,\n      148\n    ],\n    \"hex\": \"#815c94\",\n    \"name\": \"\\u8548\\u7d2b\",\n    \"pinyin\": \"xunzi\"\n  },\n  {\n    \"CMYK\": [\n      54,\n      89,\n      12,\n      1\n    ],\n    \"RGB\": [\n      129,\n      60,\n      133\n    ],\n    \"hex\": \"#813c85\",\n    \"name\": \"\\u6854\\u6897\\u7d2b\",\n    \"pinyin\": \"jiegengzi\"\n  },\n  {\n    \"CMYK\": [\n      52,\n      100,\n      17,\n      7\n    ],\n    \"RGB\": [\n      126,\n      22,\n      113\n    ],\n    \"hex\": \"#7e1671\",\n    \"name\": \"\\u9b4f\\u7d2b\",\n    \"pinyin\": \"weizi\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      26,\n      10,\n      0\n    ],\n    \"RGB\": [\n      233,\n      204,\n      211\n    ],\n    \"hex\": \"#e9ccd3\",\n    \"name\": \"\\u829d\\u5170\\u7d2b\",\n    \"pinyin\": \"zhilanzi\"\n  },\n  {\n    \"CMYK\": [\n      10,\n      67,\n      12,\n      0\n    ],\n    \"RGB\": [\n      210,\n      118,\n      163\n    ],\n    \"hex\": \"#d276a3\",\n    \"name\": \"\\u83f1\\u9530\\u7ea2\",\n    \"pinyin\": \"lingmenghong\"\n  },\n  {\n    \"CMYK\": [\n      11,\n      97,\n      10,\n      0\n    ],\n    \"RGB\": [\n      204,\n      85,\n      149\n    ],\n    \"hex\": \"#cc5595\",\n    \"name\": \"\\u9f99\\u987b\\u7ea2\",\n    \"pinyin\": \"longxuhong\"\n  },\n  {\n    \"CMYK\": [\n      8,\n      22,\n      12,\n      0\n    ],\n    \"RGB\": [\n      230,\n      210,\n      213\n    ],\n    \"hex\": \"#e6d2d5\",\n    \"name\": \"\\u84df\\u7c89\\u7ea2\",\n    \"pinyin\": \"jifenhong\"\n  },\n  {\n    \"CMYK\": [\n      16,\n      79,\n      14,\n      1\n    ],\n    \"RGB\": [\n      195,\n      86,\n      145\n    ],\n    \"hex\": \"#c35691\",\n    \"name\": \"\\u7535\\u6c14\\u77f3\\u7ea2\",\n    \"pinyin\": \"dianqishihong\"\n  },\n  {\n    \"CMYK\": [\n      19,\n      68,\n      18,\n      1\n    ],\n    \"RGB\": [\n      192,\n      111,\n      152\n    ],\n    \"hex\": \"#c06f98\",\n    \"name\": \"\\u6a31\\u8349\\u7d2b\",\n    \"pinyin\": \"yingcaozi\"\n  },\n  {\n    \"CMYK\": [\n      25,\n      31,\n      26,\n      5\n    ],\n    \"RGB\": [\n      189,\n      174,\n      173\n    ],\n    \"hex\": \"#bdaead\",\n    \"name\": \"\\u82a6\\u7a57\\u7070\",\n    \"pinyin\": \"lusuihui\"\n  },\n  {\n    \"CMYK\": [\n      26,\n      43,\n      26,\n      6\n    ],\n    \"RGB\": [\n      181,\n      152,\n      161\n    ],\n    \"hex\": \"#b598a1\",\n    \"name\": \"\\u9690\\u7ea2\\u7070\",\n    \"pinyin\": \"yinhonghui\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      97,\n      27,\n      14\n    ],\n    \"RGB\": [\n      155,\n      30,\n      100\n    ],\n    \"hex\": \"#9b1e64\",\n    \"name\": \"\\u82cb\\u83dc\\u7d2b\",\n    \"pinyin\": \"xiancaizi\"\n  },\n  {\n    \"CMYK\": [\n      39,\n      53,\n      38,\n      25\n    ],\n    \"RGB\": [\n      133,\n      109,\n      114\n    ],\n    \"hex\": \"#856d72\",\n    \"name\": \"\\u82a6\\u7070\",\n    \"pinyin\": \"luhui\"\n  },\n  {\n    \"CMYK\": [\n      49,\n      71,\n      49,\n      58\n    ],\n    \"RGB\": [\n      79,\n      56,\n      62\n    ],\n    \"hex\": \"#4f383e\",\n    \"name\": \"\\u66ae\\u4e91\\u7070\",\n    \"pinyin\": \"muyunhui\"\n  },\n  {\n    \"CMYK\": [\n      49,\n      82,\n      46,\n      63\n    ],\n    \"RGB\": [\n      72,\n      41,\n      54\n    ],\n    \"hex\": \"#482936\",\n    \"name\": \"\\u6591\\u9e20\\u7070\",\n    \"pinyin\": \"banjiuhui\"\n  },\n  {\n    \"CMYK\": [\n      4,\n      11,\n      9,\n      0\n    ],\n    \"RGB\": [\n      242,\n      231,\n      229\n    ],\n    \"hex\": \"#f2e7e5\",\n    \"name\": \"\\u6de1\\u85e4\\u841d\\u7d2b\",\n    \"pinyin\": \"dantengluozi\"\n  },\n  {\n    \"CMYK\": [\n      10,\n      27,\n      11,\n      0\n    ],\n    \"RGB\": [\n      224,\n      200,\n      209\n    ],\n    \"hex\": \"#e0c8d1\",\n    \"name\": \"\\u6de1\\u9752\\u7d2b\",\n    \"pinyin\": \"danqingzi\"\n  },\n  {\n    \"CMYK\": [\n      24,\n      58,\n      15,\n      1\n    ],\n    \"RGB\": [\n      188,\n      132,\n      168\n    ],\n    \"hex\": \"#bc84a8\",\n    \"name\": \"\\u9752\\u86e4\\u58f3\\u7d2b\",\n    \"pinyin\": \"qinghakezi\"\n  },\n  {\n    \"CMYK\": [\n      31,\n      71,\n      15,\n      1\n    ],\n    \"RGB\": [\n      173,\n      101,\n      152\n    ],\n    \"hex\": \"#ad6598\",\n    \"name\": \"\\u8c46\\u853b\\u7d2b\",\n    \"pinyin\": \"doukouzi\"\n  },\n  {\n    \"CMYK\": [\n      35,\n      75,\n      18,\n      2\n    ],\n    \"RGB\": [\n      163,\n      92,\n      143\n    ],\n    \"hex\": \"#a35c8f\",\n    \"name\": \"\\u6241\\u8c46\\u7d2b\",\n    \"pinyin\": \"biandouzi\"\n  },\n  {\n    \"CMYK\": [\n      39,\n      91,\n      15,\n      3\n    ],\n    \"RGB\": [\n      152,\n      54,\n      128\n    ],\n    \"hex\": \"#983680\",\n    \"name\": \"\\u82a5\\u82b1\\u7d2b\",\n    \"pinyin\": \"jiehuazi\"\n  },\n  {\n    \"CMYK\": [\n      43,\n      97,\n      19,\n      8\n    ],\n    \"RGB\": [\n      139,\n      38,\n      113\n    ],\n    \"hex\": \"#8b2671\",\n    \"name\": \"\\u9752\\u83b2\",\n    \"pinyin\": \"qinglian\"\n  },\n  {\n    \"CMYK\": [\n      44,\n      85,\n      24,\n      10\n    ],\n    \"RGB\": [\n      137,\n      66,\n      118\n    ],\n    \"hex\": \"#894276\",\n    \"name\": \"\\u8293\\u7d2b\",\n    \"pinyin\": \"zizi\"\n  },\n  {\n    \"CMYK\": [\n      45,\n      99,\n      24,\n      16\n    ],\n    \"RGB\": [\n      126,\n      32,\n      101\n    ],\n    \"hex\": \"#7e2065\",\n    \"name\": \"\\u845b\\u5dfe\\u7d2b\",\n    \"pinyin\": \"gejinzi\"\n  },\n  {\n    \"CMYK\": [\n      49,\n      100,\n      29,\n      32\n    ],\n    \"RGB\": [\n      104,\n      23,\n      82\n    ],\n    \"hex\": \"#681752\",\n    \"name\": \"\\u7275\\u725b\\u7d2b\",\n    \"pinyin\": \"qianniuzi\"\n  },\n  {\n    \"CMYK\": [\n      53,\n      75,\n      41,\n      41\n    ],\n    \"RGB\": [\n      93,\n      63,\n      81\n    ],\n    \"hex\": \"#5d3f51\",\n    \"name\": \"\\u7d2b\\u7070\",\n    \"pinyin\": \"zihui\"\n  },\n  {\n    \"CMYK\": [\n      55,\n      87,\n      41,\n      52\n    ],\n    \"RGB\": [\n      78,\n      42,\n      64\n    ],\n    \"hex\": \"#4e2a40\",\n    \"name\": \"\\u9f99\\u775b\\u9c7c\\u7d2b\",\n    \"pinyin\": \"longjingyuzi\"\n  },\n  {\n    \"CMYK\": [\n      58,\n      96,\n      40,\n      61\n    ],\n    \"RGB\": [\n      65,\n      28,\n      53\n    ],\n    \"hex\": \"#411c35\",\n    \"name\": \"\\u8378\\u8360\\u7d2b\",\n    \"pinyin\": \"biqizi\"\n  },\n  {\n    \"CMYK\": [\n      63,\n      74,\n      52,\n      70\n    ],\n    \"RGB\": [\n      54,\n      41,\n      47\n    ],\n    \"hex\": \"#36292f\",\n    \"name\": \"\\u53e4\\u9f0e\\u7070\",\n    \"pinyin\": \"gudinghui\"\n  },\n  {\n    \"CMYK\": [\n      81,\n      87,\n      54,\n      84\n    ],\n    \"RGB\": [\n      30,\n      19,\n      29\n    ],\n    \"hex\": \"#1e131d\",\n    \"name\": \"\\u4e4c\\u6885\\u7d2b\",\n    \"pinyin\": \"wumeizi\"\n  },\n  {\n    \"CMYK\": [\n      83,\n      87,\n      55,\n      86\n    ],\n    \"RGB\": [\n      28,\n      13,\n      26\n    ],\n    \"hex\": \"#1c0d1a\",\n    \"name\": \"\\u6df1\\u7275\\u725b\\u7d2b\",\n    \"pinyin\": \"shenqianniuzi\"\n  },\n  {\n    \"CMYK\": [\n      7,\n      5,\n      7,\n      0\n    ],\n    \"RGB\": [\n      241,\n      240,\n      237\n    ],\n    \"hex\": \"#f1f0ed\",\n    \"name\": \"\\u94f6\\u767d\",\n    \"pinyin\": \"yinbai\"\n  },\n  {\n    \"CMYK\": [\n      13,\n      10,\n      9,\n      0\n    ],\n    \"RGB\": [\n      226,\n      225,\n      228\n    ],\n    \"hex\": \"#e2e1e4\",\n    \"name\": \"\\u82a1\\u98df\\u767d\",\n    \"pinyin\": \"qianshibai\"\n  },\n  {\n    \"CMYK\": [\n      23,\n      18,\n      12,\n      1\n    ],\n    \"RGB\": [\n      204,\n      204,\n      214\n    ],\n    \"hex\": \"#ccccd6\",\n    \"name\": \"\\u8fdc\\u5c71\\u7d2b\",\n    \"pinyin\": \"yuanshanzi\"\n  },\n  {\n    \"CMYK\": [\n      39,\n      31,\n      17,\n      2\n    ],\n    \"RGB\": [\n      167,\n      168,\n      189\n    ],\n    \"hex\": \"#a7a8bd\",\n    \"name\": \"\\u6de1\\u84dd\\u7d2b\",\n    \"pinyin\": \"danlanzi\"\n  },\n  {\n    \"CMYK\": [\n      74,\n      64,\n      14,\n      1\n    ],\n    \"RGB\": [\n      97,\n      100,\n      159\n    ],\n    \"hex\": \"#61649f\",\n    \"name\": \"\\u5c71\\u6897\\u7d2b\",\n    \"pinyin\": \"shangengzi\"\n  },\n  {\n    \"CMYK\": [\n      63,\n      53,\n      22,\n      5\n    ],\n    \"RGB\": [\n      116,\n      117,\n      155\n    ],\n    \"hex\": \"#74759b\",\n    \"name\": \"\\u87ba\\u7538\\u7d2b\",\n    \"pinyin\": \"luodianzi\"\n  },\n  {\n    \"CMYK\": [\n      21,\n      17,\n      19,\n      1\n    ],\n    \"RGB\": [\n      207,\n      204,\n      201\n    ],\n    \"hex\": \"#cfccc9\",\n    \"name\": \"\\u739b\\u7459\\u7070\",\n    \"pinyin\": \"manaohui\"\n  },\n  {\n    \"CMYK\": [\n      80,\n      73,\n      21,\n      6\n    ],\n    \"RGB\": [\n      82,\n      82,\n      136\n    ],\n    \"hex\": \"#525288\",\n    \"name\": \"\\u91ce\\u83ca\\u7d2b\",\n    \"pinyin\": \"yejuzi\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      93,\n      21,\n      5\n    ],\n    \"RGB\": [\n      46,\n      49,\n      124\n    ],\n    \"hex\": \"#2e317c\",\n    \"name\": \"\\u6ee1\\u5929\\u661f\\u7d2b\",\n    \"pinyin\": \"mantianxingzi\"\n  },\n  {\n    \"CMYK\": [\n      48,\n      45,\n      40,\n      26\n    ],\n    \"RGB\": [\n      122,\n      115,\n      116\n    ],\n    \"hex\": \"#7a7374\",\n    \"name\": \"\\u950c\\u7070\",\n    \"pinyin\": \"xinhui\"\n  },\n  {\n    \"CMYK\": [\n      91,\n      84,\n      40,\n      43\n    ],\n    \"RGB\": [\n      48,\n      47,\n      75\n    ],\n    \"hex\": \"#302f4b\",\n    \"name\": \"\\u91ce\\u8461\\u8404\\u7d2b\",\n    \"pinyin\": \"yeputaozi\"\n  },\n  {\n    \"CMYK\": [\n      70,\n      69,\n      49,\n      56\n    ],\n    \"RGB\": [\n      62,\n      56,\n      65\n    ],\n    \"hex\": \"#3e3841\",\n    \"name\": \"\\u5251\\u950b\\u7d2b\",\n    \"pinyin\": \"jianfengzi\"\n  },\n  {\n    \"CMYK\": [\n      79,\n      74,\n      49,\n      60\n    ],\n    \"RGB\": [\n      50,\n      47,\n      59\n    ],\n    \"hex\": \"#322f3b\",\n    \"name\": \"\\u9f99\\u8475\\u7d2b\",\n    \"pinyin\": \"longkuizi\"\n  },\n  {\n    \"CMYK\": [\n      90,\n      84,\n      50,\n      69\n    ],\n    \"RGB\": [\n      34,\n      32,\n      46\n    ],\n    \"hex\": \"#22202e\",\n    \"name\": \"\\u6697\\u9f99\\u80c6\\u7d2b\",\n    \"pinyin\": \"anlongdanzi\"\n  },\n  {\n    \"CMYK\": [\n      98,\n      93,\n      48,\n      73\n    ],\n    \"RGB\": [\n      31,\n      32,\n      64\n    ],\n    \"hex\": \"#1f2040\",\n    \"name\": \"\\u6676\\u77f3\\u7d2b\",\n    \"pinyin\": \"jingshizi\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      94,\n      52,\n      77\n    ],\n    \"RGB\": [\n      19,\n      17,\n      36\n    ],\n    \"hex\": \"#131124\",\n    \"name\": \"\\u6697\\u84dd\\u7d2b\",\n    \"pinyin\": \"anlanzi\"\n  },\n  {\n    \"CMYK\": [\n      95,\n      46,\n      10,\n      1\n    ],\n    \"RGB\": [\n      39,\n      117,\n      182\n    ],\n    \"hex\": \"#2775b6\",\n    \"name\": \"\\u666f\\u6cf0\\u84dd\",\n    \"pinyin\": \"jingtailan\"\n  },\n  {\n    \"CMYK\": [\n      96,\n      47,\n      11,\n      1\n    ],\n    \"RGB\": [\n      36,\n      116,\n      181\n    ],\n    \"hex\": \"#2474b5\",\n    \"name\": \"\\u5c3c\\u7f57\\u84dd\",\n    \"pinyin\": \"niluolan\"\n  },\n  {\n    \"CMYK\": [\n      25,\n      6,\n      10,\n      0\n    ],\n    \"RGB\": [\n      208,\n      223,\n      230\n    ],\n    \"hex\": \"#d0dfe6\",\n    \"name\": \"\\u8fdc\\u5929\\u84dd\",\n    \"pinyin\": \"yuantianlan\"\n  },\n  {\n    \"CMYK\": [\n      53,\n      19,\n      15,\n      1\n    ],\n    \"RGB\": [\n      147,\n      181,\n      207\n    ],\n    \"hex\": \"#93b5cf\",\n    \"name\": \"\\u661f\\u84dd\",\n    \"pinyin\": \"xinglan\"\n  },\n  {\n    \"CMYK\": [\n      74,\n      27,\n      16,\n      2\n    ],\n    \"RGB\": [\n      97,\n      154,\n      195\n    ],\n    \"hex\": \"#619ac3\",\n    \"name\": \"\\u7fbd\\u6247\\u8c46\\u84dd\",\n    \"pinyin\": \"yushandoulan\"\n  },\n  {\n    \"CMYK\": [\n      95,\n      45,\n      10,\n      1\n    ],\n    \"RGB\": [\n      35,\n      118,\n      183\n    ],\n    \"hex\": \"#2376b7\",\n    \"name\": \"\\u82b1\\u9752\",\n    \"pinyin\": \"huaqing\"\n  },\n  {\n    \"CMYK\": [\n      78,\n      27,\n      17,\n      2\n    ],\n    \"RGB\": [\n      86,\n      152,\n      195\n    ],\n    \"hex\": \"#5698c3\",\n    \"name\": \"\\u775b\\u84dd\",\n    \"pinyin\": \"jinglan\"\n  },\n  {\n    \"CMYK\": [\n      99,\n      44,\n      10,\n      1\n    ],\n    \"RGB\": [\n      33,\n      119,\n      184\n    ],\n    \"hex\": \"#2177b8\",\n    \"name\": \"\\u8679\\u84dd\",\n    \"pinyin\": \"honglan\"\n  },\n  {\n    \"CMYK\": [\n      43,\n      4,\n      16,\n      0\n    ],\n    \"RGB\": [\n      176,\n      213,\n      223\n    ],\n    \"hex\": \"#b0d5df\",\n    \"name\": \"\\u6e56\\u6c34\\u84dd\",\n    \"pinyin\": \"hushuilan\"\n  },\n  {\n    \"CMYK\": [\n      59,\n      12,\n      19,\n      0\n    ],\n    \"RGB\": [\n      138,\n      188,\n      209\n    ],\n    \"hex\": \"#8abcd1\",\n    \"name\": \"\\u79cb\\u6ce2\\u84dd\",\n    \"pinyin\": \"qiubolan\"\n  },\n  {\n    \"CMYK\": [\n      73,\n      17,\n      20,\n      1\n    ],\n    \"RGB\": [\n      102,\n      169,\n      201\n    ],\n    \"hex\": \"#66a9c9\",\n    \"name\": \"\\u6da7\\u77f3\\u84dd\",\n    \"pinyin\": \"jianshilan\"\n  },\n  {\n    \"CMYK\": [\n      93,\n      36,\n      15,\n      2\n    ],\n    \"RGB\": [\n      41,\n      131,\n      187\n    ],\n    \"hex\": \"#2983bb\",\n    \"name\": \"\\u6f6e\\u84dd\",\n    \"pinyin\": \"chaolan\"\n  },\n  {\n    \"CMYK\": [\n      99,\n      48,\n      11,\n      1\n    ],\n    \"RGB\": [\n      23,\n      114,\n      180\n    ],\n    \"hex\": \"#1772b4\",\n    \"name\": \"\\u7fa4\\u9752\",\n    \"pinyin\": \"qunqing\"\n  },\n  {\n    \"CMYK\": [\n      74,\n      2,\n      24,\n      0\n    ],\n    \"RGB\": [\n      99,\n      187,\n      208\n    ],\n    \"hex\": \"#63bbd0\",\n    \"name\": \"\\u9701\\u9752\",\n    \"pinyin\": \"jiqing\"\n  },\n  {\n    \"CMYK\": [\n      77,\n      7,\n      24,\n      0\n    ],\n    \"RGB\": [\n      92,\n      179,\n      204\n    ],\n    \"hex\": \"#5cb3cc\",\n    \"name\": \"\\u78a7\\u9752\",\n    \"pinyin\": \"biqing\"\n  },\n  {\n    \"CMYK\": [\n      94,\n      32,\n      17,\n      3\n    ],\n    \"RGB\": [\n      36,\n      134,\n      185\n    ],\n    \"hex\": \"#2486b9\",\n    \"name\": \"\\u5b9d\\u77f3\\u84dd\",\n    \"pinyin\": \"baoshilan\"\n  },\n  {\n    \"CMYK\": [\n      98,\n      43,\n      14,\n      2\n    ],\n    \"RGB\": [\n      22,\n      119,\n      179\n    ],\n    \"hex\": \"#1677b3\",\n    \"name\": \"\\u5929\\u84dd\",\n    \"pinyin\": \"tianlan\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      52,\n      11,\n      1\n    ],\n    \"RGB\": [\n      18,\n      107,\n      174\n    ],\n    \"hex\": \"#126bae\",\n    \"name\": \"\\u67cf\\u6797\\u84dd\",\n    \"pinyin\": \"bolinlan\"\n  },\n  {\n    \"CMYK\": [\n      92,\n      10,\n      25,\n      1\n    ],\n    \"RGB\": [\n      34,\n      162,\n      195\n    ],\n    \"hex\": \"#22a2c3\",\n    \"name\": \"\\u6d77\\u9752\",\n    \"pinyin\": \"haiqing\"\n  },\n  {\n    \"CMYK\": [\n      94,\n      16,\n      23,\n      3\n    ],\n    \"RGB\": [\n      26,\n      148,\n      188\n    ],\n    \"hex\": \"#1a94bc\",\n    \"name\": \"\\u94b4\\u84dd\",\n    \"pinyin\": \"gulan\"\n  },\n  {\n    \"CMYK\": [\n      98,\n      42,\n      16,\n      3\n    ],\n    \"RGB\": [\n      17,\n      119,\n      176\n    ],\n    \"hex\": \"#1177b0\",\n    \"name\": \"\\u7275\\u725b\\u82b1\\u84dd\",\n    \"pinyin\": \"qianniuhualan\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      65,\n      11,\n      1\n    ],\n    \"RGB\": [\n      15,\n      89,\n      164\n    ],\n    \"hex\": \"#0f59a4\",\n    \"name\": \"\\u98de\\u71d5\\u8349\\u84dd\",\n    \"pinyin\": \"feiyancaolan\"\n  },\n  {\n    \"CMYK\": [\n      95,\n      47,\n      14,\n      2\n    ],\n    \"RGB\": [\n      43,\n      115,\n      175\n    ],\n    \"hex\": \"#2b73af\",\n    \"name\": \"\\u54c1\\u84dd\",\n    \"pinyin\": \"pinlan\"\n  },\n  {\n    \"CMYK\": [\n      24,\n      14,\n      16,\n      1\n    ],\n    \"RGB\": [\n      205,\n      209,\n      211\n    ],\n    \"hex\": \"#cdd1d3\",\n    \"name\": \"\\u94f6\\u9c7c\\u767d\",\n    \"pinyin\": \"yinyubai\"\n  },\n  {\n    \"CMYK\": [\n      93,\n      49,\n      17,\n      3\n    ],\n    \"RGB\": [\n      49,\n      112,\n      167\n    ],\n    \"hex\": \"#3170a7\",\n    \"name\": \"\\u5b89\\u5b89\\u84dd\",\n    \"pinyin\": \"ananlan\"\n  },\n  {\n    \"CMYK\": [\n      64,\n      52,\n      39,\n      28\n    ],\n    \"RGB\": [\n      94,\n      97,\n      109\n    ],\n    \"hex\": \"#5e616d\",\n    \"name\": \"\\u9c7c\\u5c3e\\u7070\",\n    \"pinyin\": \"yuweihui\"\n  },\n  {\n    \"CMYK\": [\n      78,\n      60,\n      40,\n      31\n    ],\n    \"RGB\": [\n      71,\n      81,\n      100\n    ],\n    \"hex\": \"#475164\",\n    \"name\": \"\\u9cb8\\u9c7c\\u7070\",\n    \"pinyin\": \"jingyuhui\"\n  },\n  {\n    \"CMYK\": [\n      69,\n      64,\n      52,\n      59\n    ],\n    \"RGB\": [\n      255,\n      254,\n      250\n    ],\n    \"hex\": \"#fffefa\",\n    \"name\": \"\\u6d77\\u53c2\\u7070\",\n    \"pinyin\": \"haishenhui\"\n  },\n  {\n    \"CMYK\": [\n      76,\n      70,\n      51,\n      60\n    ],\n    \"RGB\": [\n      53,\n      51,\n      60\n    ],\n    \"hex\": \"#35333c\",\n    \"name\": \"\\u6c99\\u9c7c\\u7070\",\n    \"pinyin\": \"shayuhui\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      89,\n      54,\n      79\n    ],\n    \"RGB\": [\n      15,\n      20,\n      35\n    ],\n    \"hex\": \"#0f1423\",\n    \"name\": \"\\u94a2\\u84dd\",\n    \"pinyin\": \"ganglan\"\n  },\n  {\n    \"CMYK\": [\n      35,\n      13,\n      13,\n      0\n    ],\n    \"RGB\": [\n      186,\n      204,\n      217\n    ],\n    \"hex\": \"#baccd9\",\n    \"name\": \"\\u4e91\\u6c34\\u84dd\",\n    \"pinyin\": \"yunshuilan\"\n  },\n  {\n    \"CMYK\": [\n      55,\n      20,\n      18,\n      1\n    ],\n    \"RGB\": [\n      143,\n      178,\n      201\n    ],\n    \"hex\": \"#8fb2c9\",\n    \"name\": \"\\u6674\\u5c71\\u84dd\",\n    \"pinyin\": \"qingshanlan\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      60,\n      8,\n      1\n    ],\n    \"RGB\": [\n      22,\n      97,\n      171\n    ],\n    \"hex\": \"#1661ab\",\n    \"name\": \"\\u975b\\u9752\",\n    \"pinyin\": \"dianqing\"\n  },\n  {\n    \"CMYK\": [\n      29,\n      16,\n      17,\n      1\n    ],\n    \"RGB\": [\n      196,\n      203,\n      207\n    ],\n    \"hex\": \"#c4cbcf\",\n    \"name\": \"\\u5927\\u7406\\u77f3\\u7070\",\n    \"pinyin\": \"dalishihui\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      67,\n      16,\n      3\n    ],\n    \"RGB\": [\n      21,\n      85,\n      154\n    ],\n    \"hex\": \"#15559a\",\n    \"name\": \"\\u6d77\\u6d9b\\u84dd\",\n    \"pinyin\": \"haitaolan\"\n  },\n  {\n    \"CMYK\": [\n      81,\n      41,\n      24,\n      8\n    ],\n    \"RGB\": [\n      78,\n      124,\n      161\n    ],\n    \"hex\": \"#4e7ca1\",\n    \"name\": \"\\u8776\\u7fc5\\u84dd\",\n    \"pinyin\": \"diechilan\"\n  },\n  {\n    \"CMYK\": [\n      93,\n      50,\n      21,\n      6\n    ],\n    \"RGB\": [\n      52,\n      108,\n      156\n    ],\n    \"hex\": \"#346c9c\",\n    \"name\": \"\\u6d77\\u519b\\u84dd\",\n    \"pinyin\": \"haijunlan\"\n  },\n  {\n    \"CMYK\": [\n      77,\n      68,\n      54,\n      66\n    ],\n    \"RGB\": [\n      47,\n      47,\n      53\n    ],\n    \"hex\": \"#2f2f35\",\n    \"name\": \"\\u6c34\\u725b\\u7070\",\n    \"pinyin\": \"shuiniuhui\"\n  },\n  {\n    \"CMYK\": [\n      80,\n      70,\n      53,\n      65\n    ],\n    \"RGB\": [\n      45,\n      46,\n      54\n    ],\n    \"hex\": \"#2d2e36\",\n    \"name\": \"\\u725b\\u89d2\\u7070\",\n    \"pinyin\": \"niujiaohui\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      86,\n      54,\n      78\n    ],\n    \"RGB\": [\n      19,\n      24,\n      36\n    ],\n    \"hex\": \"#131824\",\n    \"name\": \"\\u71d5\\u9894\\u84dd\",\n    \"pinyin\": \"yanhanlan\"\n  },\n  {\n    \"CMYK\": [\n      21,\n      6,\n      10,\n      0\n    ],\n    \"RGB\": [\n      216,\n      227,\n      231\n    ],\n    \"hex\": \"#d8e3e7\",\n    \"name\": \"\\u4e91\\u5cf0\\u767d\",\n    \"pinyin\": \"yunfengbai\"\n  },\n  {\n    \"CMYK\": [\n      32,\n      8,\n      13,\n      0\n    ],\n    \"RGB\": [\n      195,\n      215,\n      223\n    ],\n    \"hex\": \"#c3d7df\",\n    \"name\": \"\\u4e95\\u5929\\u84dd\",\n    \"pinyin\": \"jingtianlan\"\n  },\n  {\n    \"CMYK\": [\n      91,\n      24,\n      22,\n      4\n    ],\n    \"RGB\": [\n      47,\n      144,\n      185\n    ],\n    \"hex\": \"#2f90b9\",\n    \"name\": \"\\u4e91\\u5c71\\u84dd\",\n    \"pinyin\": \"yunshanlan\"\n  },\n  {\n    \"CMYK\": [\n      96,\n      34,\n      18,\n      4\n    ],\n    \"RGB\": [\n      23,\n      129,\n      181\n    ],\n    \"hex\": \"#1781b5\",\n    \"name\": \"\\u91c9\\u84dd\",\n    \"pinyin\": \"youlan\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      12,\n      17,\n      0\n    ],\n    \"RGB\": [\n      199,\n      210,\n      212\n    ],\n    \"hex\": \"#c7d2d4\",\n    \"name\": \"\\u9e25\\u84dd\",\n    \"pinyin\": \"oulan\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      53,\n      21,\n      6\n    ],\n    \"RGB\": [\n      17,\n      101,\n      154\n    ],\n    \"hex\": \"#11659a\",\n    \"name\": \"\\u642a\\u78c1\\u84dd\",\n    \"pinyin\": \"tangcilan\"\n  },\n  {\n    \"CMYK\": [\n      29,\n      18,\n      21,\n      2\n    ],\n    \"RGB\": [\n      192,\n      196,\n      195\n    ],\n    \"hex\": \"#c0c4c3\",\n    \"name\": \"\\u6708\\u5f71\\u767d\",\n    \"pinyin\": \"yueyingbai\"\n  },\n  {\n    \"CMYK\": [\n      36,\n      20,\n      23,\n      2\n    ],\n    \"RGB\": [\n      178,\n      187,\n      190\n    ],\n    \"hex\": \"#b2bbbe\",\n    \"name\": \"\\u661f\\u7070\",\n    \"pinyin\": \"xinghui\"\n  },\n  {\n    \"CMYK\": [\n      70,\n      38,\n      36,\n      18\n    ],\n    \"RGB\": [\n      94,\n      121,\n      135\n    ],\n    \"hex\": \"#5e7987\",\n    \"name\": \"\\u6de1\\u84dd\\u7070\",\n    \"pinyin\": \"danlanhui\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      68,\n      32,\n      20\n    ],\n    \"RGB\": [\n      20,\n      74,\n      116\n    ],\n    \"hex\": \"#144a74\",\n    \"name\": \"\\u9dc3\\u84dd\",\n    \"pinyin\": \"yanlan\"\n  },\n  {\n    \"CMYK\": [\n      55,\n      40,\n      40,\n      23\n    ],\n    \"RGB\": [\n      116,\n      120,\n      122\n    ],\n    \"hex\": \"#74787a\",\n    \"name\": \"\\u5ae9\\u7070\",\n    \"pinyin\": \"nenhui\"\n  },\n  {\n    \"CMYK\": [\n      77,\n      50,\n      41,\n      31\n    ],\n    \"RGB\": [\n      73,\n      92,\n      105\n    ],\n    \"hex\": \"#495c69\",\n    \"name\": \"\\u6218\\u8230\\u7070\",\n    \"pinyin\": \"zhanjianhui\"\n  },\n  {\n    \"CMYK\": [\n      67,\n      57,\n      49,\n      49\n    ],\n    \"RGB\": [\n      71,\n      72,\n      76\n    ],\n    \"hex\": \"#47484c\",\n    \"name\": \"\\u74e6\\u7f50\\u7070\",\n    \"pinyin\": \"waguanhui\"\n  },\n  {\n    \"CMYK\": [\n      87,\n      69,\n      51,\n      58\n    ],\n    \"RGB\": [\n      43,\n      51,\n      62\n    ],\n    \"hex\": \"#2b333e\",\n    \"name\": \"\\u9752\\u7070\",\n    \"pinyin\": \"qinghui\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      77,\n      50,\n      62\n    ],\n    \"RGB\": [\n      28,\n      41,\n      56\n    ],\n    \"hex\": \"#1c2938\",\n    \"name\": \"\\u9e3d\\u84dd\",\n    \"pinyin\": \"gelan\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      82,\n      51,\n      64\n    ],\n    \"RGB\": [\n      20,\n      35,\n      52\n    ],\n    \"hex\": \"#142334\",\n    \"name\": \"\\u94a2\\u9752\",\n    \"pinyin\": \"gangqing\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      84,\n      51,\n      68\n    ],\n    \"RGB\": [\n      16,\n      31,\n      48\n    ],\n    \"hex\": \"#101f30\",\n    \"name\": \"\\u6697\\u84dd\",\n    \"pinyin\": \"anlan\"\n  },\n  {\n    \"CMYK\": [\n      11,\n      0,\n      8,\n      0\n    ],\n    \"RGB\": [\n      238,\n      247,\n      242\n    ],\n    \"hex\": \"#eef7f2\",\n    \"name\": \"\\u6708\\u767d\",\n    \"pinyin\": \"yuebai\"\n  },\n  {\n    \"CMYK\": [\n      33,\n      0,\n      14,\n      0\n    ],\n    \"RGB\": [\n      198,\n      230,\n      232\n    ],\n    \"hex\": \"#c6e6e8\",\n    \"name\": \"\\u6d77\\u5929\\u84dd\",\n    \"pinyin\": \"haitianlan\"\n  },\n  {\n    \"CMYK\": [\n      57,\n      0,\n      22,\n      0\n    ],\n    \"RGB\": [\n      147,\n      213,\n      220\n    ],\n    \"hex\": \"#93d5dc\",\n    \"name\": \"\\u6e05\\u6c34\\u84dd\",\n    \"pinyin\": \"qingshuilan\"\n  },\n  {\n    \"CMYK\": [\n      79,\n      0,\n      27,\n      0\n    ],\n    \"RGB\": [\n      81,\n      196,\n      211\n    ],\n    \"hex\": \"#51c4d3\",\n    \"name\": \"\\u7011\\u5e03\\u84dd\",\n    \"pinyin\": \"pubulan\"\n  },\n  {\n    \"CMYK\": [\n      89,\n      0,\n      29,\n      0\n    ],\n    \"RGB\": [\n      41,\n      183,\n      203\n    ],\n    \"hex\": \"#29b7cb\",\n    \"name\": \"\\u851a\\u84dd\",\n    \"pinyin\": \"weilan\"\n  },\n  {\n    \"CMYK\": [\n      92,\n      0,\n      28,\n      0\n    ],\n    \"RGB\": [\n      14,\n      176,\n      201\n    ],\n    \"hex\": \"#0eb0c9\",\n    \"name\": \"\\u5b54\\u96c0\\u84dd\",\n    \"pinyin\": \"kongquelan\"\n  },\n  {\n    \"CMYK\": [\n      93,\n      0,\n      31,\n      0\n    ],\n    \"RGB\": [\n      16,\n      174,\n      194\n    ],\n    \"hex\": \"#10aec2\",\n    \"name\": \"\\u7538\\u5b50\\u84dd\",\n    \"pinyin\": \"dianzilan\"\n  },\n  {\n    \"CMYK\": [\n      78,\n      36,\n      0,\n      0\n    ],\n    \"RGB\": [\n      87,\n      195,\n      194\n    ],\n    \"hex\": \"#57c3c2\",\n    \"name\": \"\\u77f3\\u7eff\",\n    \"pinyin\": \"shilv\"\n  },\n  {\n    \"CMYK\": [\n      40,\n      0,\n      30,\n      0\n    ],\n    \"RGB\": [\n      185,\n      222,\n      201\n    ],\n    \"hex\": \"#b9dec9\",\n    \"name\": \"\\u7af9\\u7bc1\\u7eff\",\n    \"pinyin\": \"zhuhuanglv\"\n  },\n  {\n    \"CMYK\": [\n      64,\n      0,\n      46,\n      0\n    ],\n    \"RGB\": [\n      131,\n      203,\n      172\n    ],\n    \"hex\": \"#83cbac\",\n    \"name\": \"\\u7c89\\u7eff\",\n    \"pinyin\": \"fenlv\"\n  },\n  {\n    \"CMYK\": [\n      95,\n      0,\n      52,\n      0\n    ],\n    \"RGB\": [\n      18,\n      170,\n      156\n    ],\n    \"hex\": \"#12aa9c\",\n    \"name\": \"\\u7f8e\\u8776\\u7eff\",\n    \"pinyin\": \"meidielv\"\n  },\n  {\n    \"CMYK\": [\n      75,\n      0,\n      61,\n      0\n    ],\n    \"RGB\": [\n      102,\n      193,\n      140\n    ],\n    \"hex\": \"#66c18c\",\n    \"name\": \"\\u6bdb\\u7eff\",\n    \"pinyin\": \"maolv\"\n  },\n  {\n    \"CMYK\": [\n      78,\n      0,\n      62,\n      0\n    ],\n    \"RGB\": [\n      93,\n      190,\n      138\n    ],\n    \"hex\": \"#5dbe8a\",\n    \"name\": \"\\u853b\\u68a2\\u7eff\",\n    \"pinyin\": \"koushaolv\"\n  },\n  {\n    \"CMYK\": [\n      81,\n      0,\n      62,\n      0\n    ],\n    \"RGB\": [\n      85,\n      187,\n      138\n    ],\n    \"hex\": \"#55bb8a\",\n    \"name\": \"\\u9ea6\\u82d7\\u7eff\",\n    \"pinyin\": \"maimiaolv\"\n  },\n  {\n    \"CMYK\": [\n      86,\n      0,\n      63,\n      0\n    ],\n    \"RGB\": [\n      69,\n      183,\n      135\n    ],\n    \"hex\": \"#45b787\",\n    \"name\": \"\\u86d9\\u7eff\",\n    \"pinyin\": \"walv\"\n  },\n  {\n    \"CMYK\": [\n      92,\n      0,\n      64,\n      0\n    ],\n    \"RGB\": [\n      43,\n      174,\n      133\n    ],\n    \"hex\": \"#2bae85\",\n    \"name\": \"\\u94dc\\u7eff\",\n    \"pinyin\": \"tonglv\"\n  },\n  {\n    \"CMYK\": [\n      96,\n      0,\n      64,\n      0\n    ],\n    \"RGB\": [\n      27,\n      167,\n      132\n    ],\n    \"hex\": \"#1ba784\",\n    \"name\": \"\\u7af9\\u7eff\",\n    \"pinyin\": \"zhulv\"\n  },\n  {\n    \"CMYK\": [\n      98,\n      2,\n      64,\n      0\n    ],\n    \"RGB\": [\n      18,\n      161,\n      130\n    ],\n    \"hex\": \"#12a182\",\n    \"name\": \"\\u84dd\\u7eff\",\n    \"pinyin\": \"lanlv\"\n  },\n  {\n    \"CMYK\": [\n      32,\n      7,\n      18,\n      0\n    ],\n    \"RGB\": [\n      196,\n      215,\n      214\n    ],\n    \"hex\": \"#c4d7d6\",\n    \"name\": \"\\u7a79\\u7070\",\n    \"pinyin\": \"qionghui\"\n  },\n  {\n    \"CMYK\": [\n      94,\n      11,\n      33,\n      1\n    ],\n    \"RGB\": [\n      30,\n      158,\n      179\n    ],\n    \"hex\": \"#1e9eb3\",\n    \"name\": \"\\u7fe0\\u84dd\",\n    \"pinyin\": \"cuilan\"\n  },\n  {\n    \"CMYK\": [\n      96,\n      16,\n      31,\n      3\n    ],\n    \"RGB\": [\n      15,\n      149,\n      176\n    ],\n    \"hex\": \"#0f95b0\",\n    \"name\": \"\\u80c6\\u77fe\\u84dd\",\n    \"pinyin\": \"danfanlan\"\n  },\n  {\n    \"CMYK\": [\n      96,\n      18,\n      34,\n      4\n    ],\n    \"RGB\": [\n      20,\n      145,\n      168\n    ],\n    \"hex\": \"#1491a8\",\n    \"name\": \"\\u6a2b\\u9e1f\\u84dd\",\n    \"pinyin\": \"jianniaolan\"\n  },\n  {\n    \"CMYK\": [\n      64,\n      18,\n      32,\n      2\n    ],\n    \"RGB\": [\n      124,\n      171,\n      177\n    ],\n    \"hex\": \"#7cabb1\",\n    \"name\": \"\\u95ea\\u84dd\",\n    \"pinyin\": \"shanlan\"\n  },\n  {\n    \"CMYK\": [\n      40,\n      24,\n      32,\n      6\n    ],\n    \"RGB\": [\n      164,\n      172,\n      167\n    ],\n    \"hex\": \"#a4aca7\",\n    \"name\": \"\\u51b0\\u5c71\\u84dd\",\n    \"pinyin\": \"bingshanlan\"\n  },\n  {\n    \"CMYK\": [\n      56,\n      26,\n      36,\n      7\n    ],\n    \"RGB\": [\n      134,\n      157,\n      157\n    ],\n    \"hex\": \"#869d9d\",\n    \"name\": \"\\u867e\\u58f3\\u9752\",\n    \"pinyin\": \"xiakeqing\"\n  },\n  {\n    \"CMYK\": [\n      71,\n      28,\n      39,\n      10\n    ],\n    \"RGB\": [\n      100,\n      142,\n      147\n    ],\n    \"hex\": \"#648e93\",\n    \"name\": \"\\u665a\\u6ce2\\u84dd\",\n    \"pinyin\": \"wanbolan\"\n  },\n  {\n    \"CMYK\": [\n      89,\n      27,\n      41,\n      13\n    ],\n    \"RGB\": [\n      59,\n      129,\n      140\n    ],\n    \"hex\": \"#3b818c\",\n    \"name\": \"\\u873b\\u8713\\u84dd\",\n    \"pinyin\": \"qingtinglan\"\n  },\n  {\n    \"CMYK\": [\n      99,\n      33,\n      38,\n      21\n    ],\n    \"RGB\": [\n      18,\n      110,\n      130\n    ],\n    \"hex\": \"#126e82\",\n    \"name\": \"\\u7389\\u922b\\u84dd\",\n    \"pinyin\": \"yuqinlan\"\n  },\n  {\n    \"CMYK\": [\n      57,\n      37,\n      42,\n      21\n    ],\n    \"RGB\": [\n      115,\n      124,\n      123\n    ],\n    \"hex\": \"#737c7b\",\n    \"name\": \"\\u57a9\\u7070\",\n    \"pinyin\": \"ehui\"\n  },\n  {\n    \"CMYK\": [\n      65,\n      40,\n      44,\n      26\n    ],\n    \"RGB\": [\n      97,\n      113,\n      114\n    ],\n    \"hex\": \"#617172\",\n    \"name\": \"\\u590f\\u4e91\\u7070\",\n    \"pinyin\": \"xiayunhui\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      52,\n      46,\n      43\n    ],\n    \"RGB\": [\n      19,\n      72,\n      87\n    ],\n    \"hex\": \"#134857\",\n    \"name\": \"\\u82cd\\u84dd\",\n    \"pinyin\": \"canglan\"\n  },\n  {\n    \"CMYK\": [\n      67,\n      53,\n      51,\n      50\n    ],\n    \"RGB\": [\n      71,\n      75,\n      76\n    ],\n    \"hex\": \"#474b4c\",\n    \"name\": \"\\u9ec4\\u660f\\u7070\",\n    \"pinyin\": \"huanghunhui\"\n  },\n  {\n    \"CMYK\": [\n      94,\n      58,\n      54,\n      60\n    ],\n    \"RGB\": [\n      33,\n      55,\n      61\n    ],\n    \"hex\": \"#21373d\",\n    \"name\": \"\\u7070\\u84dd\",\n    \"pinyin\": \"huilan\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      64,\n      56,\n      68\n    ],\n    \"RGB\": [\n      19,\n      44,\n      51\n    ],\n    \"hex\": \"#132c33\",\n    \"name\": \"\\u6df1\\u7070\\u84dd\",\n    \"pinyin\": \"shenhuilan\"\n  },\n  {\n    \"CMYK\": [\n      49,\n      5,\n      37,\n      0\n    ],\n    \"RGB\": [\n      164,\n      202,\n      182\n    ],\n    \"hex\": \"#a4cab6\",\n    \"name\": \"\\u7389\\u7c2a\\u7eff\",\n    \"pinyin\": \"yuzanlv\"\n  },\n  {\n    \"CMYK\": [\n      96,\n      12,\n      66,\n      2\n    ],\n    \"RGB\": [\n      44,\n      150,\n      120\n    ],\n    \"hex\": \"#2c9678\",\n    \"name\": \"\\u9752\\u77fe\\u7eff\",\n    \"pinyin\": \"qingfanlv\"\n  },\n  {\n    \"CMYK\": [\n      52,\n      11,\n      37,\n      0\n    ],\n    \"RGB\": [\n      154,\n      190,\n      175\n    ],\n    \"hex\": \"#9abeaf\",\n    \"name\": \"\\u8349\\u539f\\u8fdc\\u7eff\",\n    \"pinyin\": \"caoyuanyuanlv\"\n  },\n  {\n    \"CMYK\": [\n      74,\n      14,\n      51,\n      1\n    ],\n    \"RGB\": [\n      105,\n      167,\n      148\n    ],\n    \"hex\": \"#69a794\",\n    \"name\": \"\\u68a7\\u679d\\u7eff\",\n    \"pinyin\": \"wuzhilv\"\n  },\n  {\n    \"CMYK\": [\n      55,\n      16,\n      40,\n      1\n    ],\n    \"RGB\": [\n      146,\n      179,\n      165\n    ],\n    \"hex\": \"#92b3a5\",\n    \"name\": \"\\u6d6a\\u82b1\\u7eff\",\n    \"pinyin\": \"langhualv\"\n  },\n  {\n    \"CMYK\": [\n      99,\n      23,\n      70,\n      10\n    ],\n    \"RGB\": [\n      36,\n      128,\n      103\n    ],\n    \"hex\": \"#248067\",\n    \"name\": \"\\u6d77\\u738b\\u7eff\",\n    \"pinyin\": \"haiwanglv\"\n  },\n  {\n    \"CMYK\": [\n      88,\n      24,\n      61,\n      9\n    ],\n    \"RGB\": [\n      66,\n      134,\n      117\n    ],\n    \"hex\": \"#428675\",\n    \"name\": \"\\u4e9a\\u4e01\\u7eff\",\n    \"pinyin\": \"yadinglv\"\n  },\n  {\n    \"CMYK\": [\n      40,\n      27,\n      36,\n      8\n    ],\n    \"RGB\": [\n      159,\n      163,\n      154\n    ],\n    \"hex\": \"#9fa39a\",\n    \"name\": \"\\u954d\\u7070\",\n    \"pinyin\": \"niehui\"\n  },\n  {\n    \"CMYK\": [\n      52,\n      28,\n      42,\n      10\n    ],\n    \"RGB\": [\n      138,\n      152,\n      142\n    ],\n    \"hex\": \"#8a988e\",\n    \"name\": \"\\u660e\\u7070\",\n    \"pinyin\": \"minghui\"\n  },\n  {\n    \"CMYK\": [\n      63,\n      31,\n      50,\n      14\n    ],\n    \"RGB\": [\n      112,\n      136,\n      125\n    ],\n    \"hex\": \"#70887d\",\n    \"name\": \"\\u6de1\\u7eff\\u7070\",\n    \"pinyin\": \"danlvhui\"\n  },\n  {\n    \"CMYK\": [\n      82,\n      32,\n      60,\n      20\n    ],\n    \"RGB\": [\n      73,\n      117,\n      104\n    ],\n    \"hex\": \"#497568\",\n    \"name\": \"\\u98de\\u6cc9\\u7eff\",\n    \"pinyin\": \"feiquanlv\"\n  },\n  {\n    \"CMYK\": [\n      62,\n      43,\n      52,\n      34\n    ],\n    \"RGB\": [\n      93,\n      101,\n      95\n    ],\n    \"hex\": \"#5d655f\",\n    \"name\": \"\\u72fc\\u70df\\u7070\",\n    \"pinyin\": \"langyanhui\"\n  },\n  {\n    \"CMYK\": [\n      85,\n      44,\n      64,\n      52\n    ],\n    \"RGB\": [\n      49,\n      74,\n      67\n    ],\n    \"hex\": \"#314a43\",\n    \"name\": \"\\u7eff\\u7070\",\n    \"pinyin\": \"lvhui\"\n  },\n  {\n    \"CMYK\": [\n      93,\n      46,\n      70,\n      61\n    ],\n    \"RGB\": [\n      34,\n      62,\n      54\n    ],\n    \"hex\": \"#223e36\",\n    \"name\": \"\\u82cd\\u7eff\",\n    \"pinyin\": \"canglv\"\n  },\n  {\n    \"CMYK\": [\n      98,\n      46,\n      73,\n      63\n    ],\n    \"RGB\": [\n      26,\n      59,\n      50\n    ],\n    \"hex\": \"#1a3b32\",\n    \"name\": \"\\u6df1\\u6d77\\u7eff\",\n    \"pinyin\": \"shenhailv\"\n  },\n  {\n    \"CMYK\": [\n      67,\n      60,\n      57,\n      68\n    ],\n    \"RGB\": [\n      54,\n      52,\n      51\n    ],\n    \"hex\": \"#363433\",\n    \"name\": \"\\u957f\\u77f3\\u7070\",\n    \"pinyin\": \"changshihui\"\n  },\n  {\n    \"CMYK\": [\n      82,\n      60,\n      65,\n      80\n    ],\n    \"RGB\": [\n      31,\n      38,\n      35\n    ],\n    \"hex\": \"#1f2623\",\n    \"name\": \"\\u82f7\\u84dd\\u7eff\",\n    \"pinyin\": \"ganlanlv\"\n  },\n  {\n    \"CMYK\": [\n      90,\n      62,\n      67,\n      86\n    ],\n    \"RGB\": [\n      20,\n      30,\n      27\n    ],\n    \"hex\": \"#141e1b\",\n    \"name\": \"\\u83bd\\u4e1b\\u7eff\",\n    \"pinyin\": \"mangconglv\"\n  },\n  {\n    \"CMYK\": [\n      33,\n      1,\n      29,\n      0\n    ],\n    \"RGB\": [\n      198,\n      223,\n      200\n    ],\n    \"hex\": \"#c6dfc8\",\n    \"name\": \"\\u6de1\\u7fe0\\u7eff\",\n    \"pinyin\": \"dancuilv\"\n  },\n  {\n    \"CMYK\": [\n      53,\n      1,\n      44,\n      0\n    ],\n    \"RGB\": [\n      158,\n      204,\n      171\n    ],\n    \"hex\": \"#9eccab\",\n    \"name\": \"\\u660e\\u7eff\",\n    \"pinyin\": \"minglv\"\n  },\n  {\n    \"CMYK\": [\n      75,\n      0,\n      59,\n      0\n    ],\n    \"RGB\": [\n      104,\n      184,\n      142\n    ],\n    \"hex\": \"#68b88e\",\n    \"name\": \"\\u7530\\u56ed\\u7eff\",\n    \"pinyin\": \"tianyuanlv\"\n  },\n  {\n    \"CMYK\": [\n      98,\n      0,\n      82,\n      0\n    ],\n    \"RGB\": [\n      32,\n      161,\n      98\n    ],\n    \"hex\": \"#20a162\",\n    \"name\": \"\\u7fe0\\u7eff\",\n    \"pinyin\": \"cuilv\"\n  },\n  {\n    \"CMYK\": [\n      78,\n      6,\n      62,\n      0\n    ],\n    \"RGB\": [\n      97,\n      172,\n      133\n    ],\n    \"hex\": \"#61ac85\",\n    \"name\": \"\\u6de1\\u7eff\",\n    \"pinyin\": \"danlv\"\n  },\n  {\n    \"CMYK\": [\n      90,\n      7,\n      73,\n      0\n    ],\n    \"RGB\": [\n      64,\n      160,\n      112\n    ],\n    \"hex\": \"#40a070\",\n    \"name\": \"\\u8471\\u7eff\",\n    \"pinyin\": \"conglv\"\n  },\n  {\n    \"CMYK\": [\n      99,\n      10,\n      91,\n      2\n    ],\n    \"RGB\": [\n      34,\n      148,\n      83\n    ],\n    \"hex\": \"#229453\",\n    \"name\": \"\\u5b54\\u96c0\\u7eff\",\n    \"pinyin\": \"kongquelv\"\n  },\n  {\n    \"CMYK\": [\n      27,\n      11,\n      27,\n      1\n    ],\n    \"RGB\": [\n      202,\n      211,\n      195\n    ],\n    \"hex\": \"#cad3c3\",\n    \"name\": \"\\u827e\\u7eff\",\n    \"pinyin\": \"ailv\"\n  },\n  {\n    \"CMYK\": [\n      92,\n      14,\n      76,\n      2\n    ],\n    \"RGB\": [\n      60,\n      149,\n      102\n    ],\n    \"hex\": \"#3c9566\",\n    \"name\": \"\\u87fe\\u7eff\",\n    \"pinyin\": \"chanlv\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      17,\n      92,\n      5\n    ],\n    \"RGB\": [\n      32,\n      137,\n      77\n    ],\n    \"hex\": \"#20894d\",\n    \"name\": \"\\u5bab\\u6bbf\\u7eff\",\n    \"pinyin\": \"gongdianlv\"\n  },\n  {\n    \"CMYK\": [\n      61,\n      19,\n      52,\n      3\n    ],\n    \"RGB\": [\n      131,\n      167,\n      141\n    ],\n    \"hex\": \"#83a78d\",\n    \"name\": \"\\u677e\\u971c\\u7eff\",\n    \"pinyin\": \"songshuanglv\"\n  },\n  {\n    \"CMYK\": [\n      81,\n      19,\n      67,\n      4\n    ],\n    \"RGB\": [\n      87,\n      149,\n      114\n    ],\n    \"hex\": \"#579572\",\n    \"name\": \"\\u86cb\\u767d\\u77f3\\u7eff\",\n    \"pinyin\": \"danbaishilv\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      22,\n      90,\n      10\n    ],\n    \"RGB\": [\n      32,\n      127,\n      76\n    ],\n    \"hex\": \"#207f4c\",\n    \"name\": \"\\u8584\\u8377\\u7eff\",\n    \"pinyin\": \"bohelv\"\n  },\n  {\n    \"CMYK\": [\n      66,\n      29,\n      58,\n      12\n    ],\n    \"RGB\": [\n      110,\n      139,\n      116\n    ],\n    \"hex\": \"#6e8b74\",\n    \"name\": \"\\u74e6\\u677e\\u7eff\",\n    \"pinyin\": \"wasonglv\"\n  },\n  {\n    \"CMYK\": [\n      100,\n      31,\n      91,\n      25\n    ],\n    \"RGB\": [\n      26,\n      104,\n      64\n    ],\n    \"hex\": \"#1a6840\",\n    \"name\": \"\\u8377\\u53f6\\u7eff\",\n    \"pinyin\": \"heyelv\"\n  },\n  {\n    \"CMYK\": [\n      62,\n      42,\n      56,\n      34\n    ],\n    \"RGB\": [\n      94,\n      102,\n      91\n    ],\n    \"hex\": \"#5e665b\",\n    \"name\": \"\\u7530\\u87ba\\u7eff\",\n    \"pinyin\": \"tianluolv\"\n  },\n  {\n    \"CMYK\": [\n      74,\n      42,\n      65,\n      40\n    ],\n    \"RGB\": [\n      72,\n      91,\n      77\n    ],\n    \"hex\": \"#485b4d\",\n    \"name\": \"\\u767d\\u5c48\\u83dc\\u7eff\",\n    \"pinyin\": \"baiqucailv\"\n  },\n  {\n    \"CMYK\": [\n      64,\n      57,\n      60,\n      67\n    ],\n    \"RGB\": [\n      57,\n      55,\n      51\n    ],\n    \"hex\": \"#393733\",\n    \"name\": \"\\u6cb3\\u8c5a\\u7070\",\n    \"pinyin\": \"hetunhui\"\n  },\n  {\n    \"CMYK\": [\n      68,\n      56,\n      60,\n      66\n    ],\n    \"RGB\": [\n      55,\n      56,\n      52\n    ],\n    \"hex\": \"#373834\",\n    \"name\": \"\\u84bd\\u6cb9\\u7eff\",\n    \"pinyin\": \"enyoulv\"\n  },\n  {\n    \"CMYK\": [\n      76,\n      56,\n      75,\n      72\n    ],\n    \"RGB\": [\n      43,\n      49,\n      44\n    ],\n    \"hex\": \"#2b312c\",\n    \"name\": \"\\u69f2\\u5bc4\\u751f\\u7eff\",\n    \"pinyin\": \"hujishenglv\"\n  },\n  {\n    \"CMYK\": [\n      91,\n      60,\n      76,\n      83\n    ],\n    \"RGB\": [\n      21,\n      35,\n      27\n    ],\n    \"hex\": \"#15231b\",\n    \"name\": \"\\u4e91\\u6749\\u7eff\",\n    \"pinyin\": \"yunshanlv\"\n  },\n  {\n    \"CMYK\": [\n      9,\n      1,\n      14,\n      0\n    ],\n    \"RGB\": [\n      240,\n      245,\n      229\n    ],\n    \"hex\": \"#f0f5e5\",\n    \"name\": \"\\u5ae9\\u83ca\\u7eff\",\n    \"pinyin\": \"nenjulv\"\n  },\n  {\n    \"CMYK\": [\n      20,\n      1,\n      23,\n      0\n    ],\n    \"RGB\": [\n      223,\n      236,\n      213\n    ],\n    \"hex\": \"#dfecd5\",\n    \"name\": \"\\u827e\\u80cc\\u7eff\",\n    \"pinyin\": \"aibeilv\"\n  },\n  {\n    \"CMYK\": [\n      47,\n      0,\n      49,\n      0\n    ],\n    \"RGB\": [\n      173,\n      213,\n      162\n    ],\n    \"hex\": \"#add5a2\",\n    \"name\": \"\\u5609\\u9675\\u6c34\\u7eff\",\n    \"pinyin\": \"jialingshuilv\"\n  },\n  {\n    \"CMYK\": [\n      89,\n      0,\n      96,\n      0\n    ],\n    \"RGB\": [\n      65,\n      179,\n      73\n    ],\n    \"hex\": \"#41b349\",\n    \"name\": \"\\u7389\\u9ad3\\u7eff\",\n    \"pinyin\": \"yusuilv\"\n  },\n  {\n    \"CMYK\": [\n      88,\n      0,\n      99,\n      0\n    ],\n    \"RGB\": [\n      67,\n      178,\n      68\n    ],\n    \"hex\": \"#43b244\",\n    \"name\": \"\\u9c9c\\u7eff\",\n    \"pinyin\": \"xianlv\"\n  },\n  {\n    \"CMYK\": [\n      90,\n      0,\n      100,\n      0\n    ],\n    \"RGB\": [\n      65,\n      174,\n      60\n    ],\n    \"hex\": \"#41ae3c\",\n    \"name\": \"\\u5b9d\\u77f3\\u7eff\",\n    \"pinyin\": \"baoshilv\"\n  },\n  {\n    \"CMYK\": [\n      18,\n      4,\n      33,\n      0\n    ],\n    \"RGB\": [\n      226,\n      231,\n      191\n    ],\n    \"hex\": \"#e2e7bf\",\n    \"name\": \"\\u6d77\\u6cac\\u7eff\",\n    \"pinyin\": \"haimeilv\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      4,\n      44,\n      0\n    ],\n    \"RGB\": [\n      208,\n      222,\n      170\n    ],\n    \"hex\": \"#d0deaa\",\n    \"name\": \"\\u59da\\u9ec4\",\n    \"pinyin\": \"yaohuang\"\n  },\n  {\n    \"CMYK\": [\n      44,\n      3,\n      61,\n      0\n    ],\n    \"RGB\": [\n      178,\n      207,\n      135\n    ],\n    \"hex\": \"#b2cf87\",\n    \"name\": \"\\u6a44\\u6984\\u77f3\\u7eff\",\n    \"pinyin\": \"ganlanshilv\"\n  },\n  {\n    \"CMYK\": [\n      62,\n      0,\n      76,\n      0\n    ],\n    \"RGB\": [\n      140,\n      194,\n      105\n    ],\n    \"hex\": \"#8cc269\",\n    \"name\": \"\\u6c34\\u7eff\",\n    \"pinyin\": \"shuilv\"\n  },\n  {\n    \"CMYK\": [\n      42,\n      3,\n      67,\n      0\n    ],\n    \"RGB\": [\n      183,\n      208,\n      122\n    ],\n    \"hex\": \"#b7d07a\",\n    \"name\": \"\\u82a6\\u82c7\\u7eff\",\n    \"pinyin\": \"luweilv\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      6,\n      66,\n      0\n    ],\n    \"RGB\": [\n      210,\n      217,\n      122\n    ],\n    \"hex\": \"#d2d97a\",\n    \"name\": \"\\u69d0\\u82b1\\u9ec4\\u7eff\",\n    \"pinyin\": \"huaihuahuanglv\"\n  },\n  {\n    \"CMYK\": [\n      41,\n      4,\n      76,\n      0\n    ],\n    \"RGB\": [\n      186,\n      207,\n      101\n    ],\n    \"hex\": \"#bacf65\",\n    \"name\": \"\\u82f9\\u679c\\u7eff\",\n    \"pinyin\": \"pingguolv\"\n  },\n  {\n    \"CMYK\": [\n      58,\n      1,\n      88,\n      0\n    ],\n    \"RGB\": [\n      150,\n      194,\n      78\n    ],\n    \"hex\": \"#96c24e\",\n    \"name\": \"\\u82bd\\u7eff\",\n    \"pinyin\": \"yalv\"\n  },\n  {\n    \"CMYK\": [\n      19,\n      9,\n      84,\n      1\n    ],\n    \"RGB\": [\n      226,\n      216,\n      73\n    ],\n    \"hex\": \"#e2d849\",\n    \"name\": \"\\u8776\\u9ec4\",\n    \"pinyin\": \"diehuang\"\n  },\n  {\n    \"CMYK\": [\n      38,\n      8,\n      94,\n      1\n    ],\n    \"RGB\": [\n      190,\n      201,\n      54\n    ],\n    \"hex\": \"#bec936\",\n    \"name\": \"\\u6a44\\u6984\\u9ec4\\u7eff\",\n    \"pinyin\": \"ganlanhuanglv\"\n  },\n  {\n    \"CMYK\": [\n      81,\n      0,\n      100,\n      0\n    ],\n    \"RGB\": [\n      91,\n      174,\n      35\n    ],\n    \"hex\": \"#5bae23\",\n    \"name\": \"\\u9e66\\u9e49\\u7eff\",\n    \"pinyin\": \"yingwulv\"\n  },\n  {\n    \"CMYK\": [\n      84,\n      64,\n      94,\n      45\n    ],\n    \"RGB\": [\n      37,\n      61,\n      36\n    ],\n    \"hex\": \"#253d24\",\n    \"name\": \"\\u6cb9\\u7eff\",\n    \"pinyin\": \"youlv\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      1,\n      4,\n      0\n    ],\n    \"RGB\": [\n      255,\n      254,\n      248\n    ],\n    \"hex\": \"#fffef8\",\n    \"name\": \"\\u8c61\\u7259\\u767d\",\n    \"pinyin\": \"xiangyabai\"\n  },\n  {\n    \"CMYK\": [\n      3,\n      5,\n      8,\n      0\n    ],\n    \"RGB\": [\n      248,\n      244,\n      237\n    ],\n    \"hex\": \"#f8f4ed\",\n    \"name\": \"\\u6c49\\u767d\\u7389\",\n    \"pinyin\": \"hanbaiyu\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      1,\n      3,\n      0\n    ],\n    \"RGB\": [\n      255,\n      254,\n      249\n    ],\n    \"hex\": \"#fffef9\",\n    \"name\": \"\\u96ea\\u767d\",\n    \"pinyin\": \"xuebai\"\n  },\n  {\n    \"CMYK\": [\n      4,\n      4,\n      8,\n      0\n    ],\n    \"RGB\": [\n      247,\n      244,\n      237\n    ],\n    \"hex\": \"#f7f4ed\",\n    \"name\": \"\\u9c7c\\u809a\\u767d\",\n    \"pinyin\": \"yudubai\"\n  },\n  {\n    \"CMYK\": [\n      12,\n      12,\n      16,\n      0\n    ],\n    \"RGB\": [\n      228,\n      223,\n      215\n    ],\n    \"hex\": \"#e4dfd7\",\n    \"name\": \"\\u73cd\\u73e0\\u7070\",\n    \"pinyin\": \"zhenzhuhui\"\n  },\n  {\n    \"CMYK\": [\n      16,\n      15,\n      20,\n      1\n    ],\n    \"RGB\": [\n      218,\n      212,\n      203\n    ],\n    \"hex\": \"#dad4cb\",\n    \"name\": \"\\u6d45\\u7070\",\n    \"pinyin\": \"qianhui\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      5,\n      30,\n      5\n    ],\n    \"RGB\": [\n      187,\n      181,\n      172\n    ],\n    \"hex\": \"#bbb5ac\",\n    \"name\": \"\\u94c5\\u7070\",\n    \"pinyin\": \"qianhui\"\n  },\n  {\n    \"CMYK\": [\n      28,\n      25,\n      30,\n      5\n    ],\n    \"RGB\": [\n      187,\n      181,\n      172\n    ],\n    \"hex\": \"#bbb5ac\",\n    \"name\": \"\\u4e2d\\u7070\",\n    \"pinyin\": \"zhonghui\"\n  },\n  {\n    \"CMYK\": [\n      42,\n      40,\n      43,\n      23\n    ],\n    \"RGB\": [\n      134,\n      126,\n      118\n    ],\n    \"hex\": \"#867e76\",\n    \"name\": \"\\u74e6\\u7070\",\n    \"pinyin\": \"wahui\"\n  },\n  {\n    \"CMYK\": [\n      43,\n      40,\n      44,\n      42\n    ],\n    \"RGB\": [\n      132,\n      124,\n      116\n    ],\n    \"hex\": \"#847c74\",\n    \"name\": \"\\u591c\\u7070\",\n    \"pinyin\": \"yehui\"\n  },\n  {\n    \"CMYK\": [\n      42,\n      42,\n      45,\n      27\n    ],\n    \"RGB\": [\n      128,\n      118,\n      110\n    ],\n    \"hex\": \"#80766e\",\n    \"name\": \"\\u96c1\\u7070\",\n    \"pinyin\": \"yanhui\"\n  },\n  {\n    \"CMYK\": [\n      42,\n      42,\n      46,\n      27\n    ],\n    \"RGB\": [\n      129,\n      119,\n      110\n    ],\n    \"hex\": \"#81776e\",\n    \"name\": \"\\u6df1\\u7070\",\n    \"pinyin\": \"shenhui\"\n  }\n]\n"
  },
  {
    "path": "packages/editor/src/assets/color/all_in_one.json",
    "content": "{\n    \"red\": [\n      {\n        \"id\": \"255179167\",\n        \"name\": \"粉红\",\n        \"tra_name\": \"粉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fěn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          179,\n          167\n        ],\n        \"hex\": \"#FFB3A7\",\n        \"cmyk\": [\n          0,\n          30,\n          35,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2378754\",\n        \"name\": \"妃色\",\n        \"tra_name\": \"妃色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fēi sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          87,\n          54\n        ],\n        \"hex\": \"#ED5736\",\n        \"cmyk\": [\n          0,\n          63,\n          77,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240086\",\n        \"name\": \"品红\",\n        \"tra_name\": \"品紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"pǐn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          0,\n          86\n        ],\n        \"hex\": \"#F00056\",\n        \"cmyk\": [\n          0,\n          100,\n          64,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"244121131\",\n        \"name\": \"桃红\",\n        \"tra_name\": \"桃紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"táo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          244,\n          121,\n          131\n        ],\n        \"hex\": \"#F47983\",\n        \"cmyk\": [\n          0,\n          50,\n          46,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21990107\",\n        \"name\": \"海棠红\",\n        \"tra_name\": \"海棠紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hǎi táng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          219,\n          90,\n          107\n        ],\n        \"hex\": \"#DB5A6B\",\n        \"cmyk\": [\n          0,\n          59,\n          51,\n          14\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"242120\",\n        \"name\": \"石榴红\",\n        \"tra_name\": \"石榴紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shí liú hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          12,\n          0\n        ],\n        \"hex\": \"#F20C00\",\n        \"cmyk\": [\n          0,\n          95,\n          100,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2015586\",\n        \"name\": \"樱桃色\",\n        \"tra_name\": \"櫻桃色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yīng táo sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          201,\n          55,\n          86\n        ],\n        \"hex\": \"#C93756\",\n        \"cmyk\": [\n          0,\n          73,\n          57,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2408684\",\n        \"name\": \"银红\",\n        \"tra_name\": \"銀紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yín hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          86,\n          84\n        ],\n        \"hex\": \"#F05654\",\n        \"cmyk\": [\n          0,\n          64,\n          65,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2553333\",\n        \"name\": \"大红\",\n        \"tra_name\": \"大紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dà hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          33,\n          33\n        ],\n        \"hex\": \"#FF2121\",\n        \"cmyk\": [\n          0,\n          87,\n          87,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2006035\",\n        \"name\": \"绯红\",\n        \"tra_name\": \"緋紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fēi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          200,\n          60,\n          35\n        ],\n        \"hex\": \"#C83C23\",\n        \"cmyk\": [\n          0,\n          70,\n          82,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1574151\",\n        \"name\": \"胭脂\",\n        \"tra_name\": \"胭脂\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān zhī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          157,\n          41,\n          51\n        ],\n        \"hex\": \"#9D2933\",\n        \"cmyk\": [\n          0,\n          74,\n          68,\n          38\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"255760\",\n        \"name\": \"朱红\",\n        \"tra_name\": \"朱紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhū hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          76,\n          0\n        ],\n        \"hex\": \"#FF4C00\",\n        \"cmyk\": [\n          0,\n          70,\n          100,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2557832\",\n        \"name\": \"丹\",\n        \"tra_name\": \"丹\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dān\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          78,\n          32\n        ],\n        \"hex\": \"#FF4E20\",\n        \"cmyk\": [\n          0,\n          69,\n          87,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2438354\",\n        \"name\": \"彤\",\n        \"tra_name\": \"彤\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          243,\n          83,\n          54\n        ],\n        \"hex\": \"#F35336\",\n        \"cmyk\": [\n          0,\n          66,\n          78,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2035886\",\n        \"name\": \"茜色\",\n        \"tra_name\": \"茜色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"qiàn sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          203,\n          58,\n          86\n        ],\n        \"hex\": \"#CB3A56\",\n        \"cmyk\": [\n          0,\n          71,\n          58,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2554581\",\n        \"name\": \"火红\",\n        \"tra_name\": \"火紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"huǒ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          45,\n          81\n        ],\n        \"hex\": \"#FF2D51\",\n        \"cmyk\": [\n          0,\n          82,\n          68,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2013155\",\n        \"name\": \"赫赤\",\n        \"tra_name\": \"赫赤\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hè chì\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          201,\n          31,\n          55\n        ],\n        \"hex\": \"#C91F37\",\n        \"cmyk\": [\n          0,\n          85,\n          73,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"239122130\",\n        \"name\": \"嫣红\",\n        \"tra_name\": \"嫣紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          122,\n          130\n        ],\n        \"hex\": \"#EF7A82\",\n        \"cmyk\": [\n          0,\n          49,\n          46,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2550151\",\n        \"name\": \"洋红\",\n        \"tra_name\": \"洋紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yáng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          0,\n          151\n        ],\n        \"hex\": \"#FF0097\",\n        \"cmyk\": [\n          0,\n          100,\n          41,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"255510\",\n        \"name\": \"炎\",\n        \"tra_name\": \"炎\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          51,\n          0\n        ],\n        \"hex\": \"#FF3300\",\n        \"cmyk\": [\n          0,\n          80,\n          100,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1953943\",\n        \"name\": \"赤\",\n        \"tra_name\": \"赤\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chì\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          195,\n          39,\n          43\n        ],\n        \"hex\": \"#C3272B\",\n        \"cmyk\": [\n          0,\n          80,\n          78,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"169129117\",\n        \"name\": \"绾\",\n        \"tra_name\": \"綰\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"wǎn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          169,\n          129,\n          117\n        ],\n        \"hex\": \"#A98175\",\n        \"cmyk\": [\n          0,\n          24,\n          31,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1953354\",\n        \"name\": \"枣红\",\n        \"tra_name\": \"棗紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zǎo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          195,\n          33,\n          54\n        ],\n        \"hex\": \"#C32136\",\n        \"cmyk\": [\n          0,\n          83,\n          72,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"17910997\",\n        \"name\": \"檀\",\n        \"tra_name\": \"檀\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          179,\n          109,\n          97\n        ],\n        \"hex\": \"#B36D61\",\n        \"cmyk\": [\n          0,\n          39,\n          46,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"190047\",\n        \"name\": \"殷红\",\n        \"tra_name\": \"殷紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          190,\n          0,\n          47\n        ],\n        \"hex\": \"#BE002F\",\n        \"cmyk\": [\n          0,\n          100,\n          75,\n          25\n        ],\n        \"desc\": \"发黑的红色。\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2204835\",\n        \"name\": \"酡红\",\n        \"tra_name\": \"酡紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tuó hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          220,\n          48,\n          35\n        ],\n        \"hex\": \"#DC3023\",\n        \"cmyk\": [\n          0,\n          78,\n          84,\n          14\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"249144111\",\n        \"name\": \"酡颜\",\n        \"tra_name\": \"酡顏\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tuó yán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          144,\n          111\n        ],\n        \"hex\": \"#F9906F\",\n        \"cmyk\": [\n          0,\n          42,\n          55,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25514049\",\n        \"name\": \"杏红\",\n        \"tra_name\": \"杏紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xìng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          140,\n          49\n        ],\n        \"hex\": \"#FF8C31\",\n        \"cmyk\": [\n          0,\n          45,\n          81,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2551170\",\n        \"name\": \"橘红\",\n        \"tra_name\": \"橘紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jú hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          117,\n          0\n        ],\n        \"hex\": \"#FF7500\",\n        \"cmyk\": [\n          0,\n          54,\n          100,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25014053\",\n        \"name\": \"橙色\",\n        \"tra_name\": \"橙色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chéng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          250,\n          140,\n          53\n        ],\n        \"hex\": \"#FA8C35\",\n        \"cmyk\": [\n          0,\n          44,\n          79,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1799268\",\n        \"name\": \"茶色\",\n        \"tra_name\": \"茶色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chá sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          179,\n          92,\n          68\n        ],\n        \"hex\": \"#B35C44\",\n        \"cmyk\": [\n          0,\n          49,\n          62,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16813298\",\n        \"name\": \"驼色\",\n        \"tra_name\": \"駝色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tuó sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          168,\n          132,\n          98\n        ],\n        \"hex\": \"#A88462\",\n        \"cmyk\": [\n          0,\n          21,\n          42,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"964030\",\n        \"name\": \"栗色\",\n        \"tra_name\": \"慄色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"lì sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          96,\n          40,\n          30\n        ],\n        \"hex\": \"#60281E\",\n        \"cmyk\": [\n          0,\n          58,\n          69,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1789337\",\n        \"name\": \"棕色\",\n        \"tra_name\": \"棕色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zōng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          178,\n          93,\n          37\n        ],\n        \"hex\": \"#B25D25\",\n        \"cmyk\": [\n          0,\n          48,\n          79,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"155680\",\n        \"name\": \"棕红\",\n        \"tra_name\": \"棕紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zōng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          155,\n          68,\n          0\n        ],\n        \"hex\": \"#9B4400\",\n        \"cmyk\": [\n          0,\n          56,\n          100,\n          39\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1568351\",\n        \"name\": \"赭\",\n        \"tra_name\": \"赭\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhě\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          156,\n          83,\n          51\n        ],\n        \"hex\": \"#9C5333\",\n        \"cmyk\": [\n          0,\n          47,\n          67,\n          39\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1498557\",\n        \"name\": \"赭色\",\n        \"tra_name\": \"赭色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhě sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          149,\n          85,\n          57\n        ],\n        \"hex\": \"#955539\",\n        \"cmyk\": [\n          0,\n          43,\n          62,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20210536\",\n        \"name\": \"琥珀\",\n        \"tra_name\": \"琥珀\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hǔ pò\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          202,\n          105,\n          36\n        ],\n        \"hex\": \"#CA6924\",\n        \"cmyk\": [\n          0,\n          48,\n          82,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"237209216\",\n        \"name\": \"藕色\",\n        \"tra_name\": \"藕色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"ǒu sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          209,\n          216\n        ],\n        \"hex\": \"#EDD1D8\",\n        \"cmyk\": [\n          0,\n          12,\n          9,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"228198208\",\n        \"name\": \"藕合色\",\n        \"tra_name\": \"藕合色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"ǒu hé sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          228,\n          198,\n          208\n        ],\n        \"hex\": \"#E4C6D0\",\n        \"cmyk\": [\n          0,\n          13,\n          9,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"984229\",\n        \"name\": \"玄色\",\n        \"tra_name\": \"玄色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xuán sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          98,\n          42,\n          29\n        ],\n        \"hex\": \"#622A1D\",\n        \"cmyk\": [\n          0,\n          57,\n          70,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"734949\",\n        \"name\": \"缁色\",\n        \"tra_name\": \"緇色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zī sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          73,\n          49,\n          49\n        ],\n        \"hex\": \"#493131\",\n        \"cmyk\": [\n          0,\n          33,\n          33,\n          71\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"493732\",\n        \"name\": \"煤黑\",\n        \"tra_name\": \"煤黑\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"méi hēi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          49,\n          37,\n          32\n        ],\n        \"hex\": \"#312520\",\n        \"cmyk\": [\n          0,\n          24,\n          35,\n          81\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1028787\",\n        \"name\": \"黝黑\",\n        \"tra_name\": \"黝黑\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yǒu hēi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          102,\n          87,\n          87\n        ],\n        \"hex\": \"#665757\",\n        \"cmyk\": [\n          0,\n          15,\n          15,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"243211231\",\n        \"name\": \"水红\",\n        \"tra_name\": \"水紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shuǐ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          243,\n          211,\n          231\n        ],\n        \"hex\": \"#F3D3E7\",\n        \"cmyk\": [\n          0,\n          13,\n          5,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"hehua2.png?width=18rem\"\n      },\n      {\n        \"id\": \"1027042\",\n        \"name\": \"驼色\",\n        \"tra_name\": \"駝色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tuó sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          102,\n          70,\n          42\n        ],\n        \"hex\": \"#66462A\",\n        \"cmyk\": [\n          37,\n          65,\n          84,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"936133\",\n        \"name\": \"茶褐\",\n        \"tra_name\": \"茶褐\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chá hè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          93,\n          61,\n          33\n        ],\n        \"hex\": \"#5D3D21\",\n        \"cmyk\": [\n          38,\n          69,\n          90,\n          54\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"925525\",\n        \"name\": \"古铜褐\",\n        \"tra_name\": \"古銅褐\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"gǔ tóng hè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          92,\n          55,\n          25\n        ],\n        \"hex\": \"#5C3719\",\n        \"cmyk\": [\n          37,\n          74,\n          96,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"248179127\",\n        \"name\": \"玫瑰粉\",\n        \"tra_name\": \"玫瑰粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"méi guī fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          179,\n          127\n        ],\n        \"hex\": \"#F8B37F\",\n        \"cmyk\": [\n          0,\n          40,\n          52,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24912528\",\n        \"name\": \"橘橙\",\n        \"tra_name\": \"橘橙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jú chéng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          125,\n          28\n        ],\n        \"hex\": \"#F97D1C\",\n        \"cmyk\": [\n          0,\n          62,\n          88,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25012635\",\n        \"name\": \"美人焦橙\",\n        \"tra_name\": \"美人焦橙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"měi rén jiāo chéng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          250,\n          126,\n          35\n        ],\n        \"hex\": \"#FA7E23\",\n        \"cmyk\": [\n          0,\n          62,\n          85,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"247205188\",\n        \"name\": \"润红\",\n        \"tra_name\": \"潤紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"rùn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          247,\n          205,\n          188\n        ],\n        \"hex\": \"#F7CDBC\",\n        \"cmyk\": [\n          0,\n          28,\n          25,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"246206193\",\n        \"name\": \"淡桃红\",\n        \"tra_name\": \"淡桃紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn táo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          246,\n          206,\n          193\n        ],\n        \"hex\": \"#F6CEC1\",\n        \"cmyk\": [\n          0,\n          28,\n          22,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24014893\",\n        \"name\": \"海螺橙\",\n        \"tra_name\": \"海螺橙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hǎi luó chéng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          148,\n          93\n        ],\n        \"hex\": \"#F0945D\",\n        \"cmyk\": [\n          0,\n          53,\n          65,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240173160\",\n        \"name\": \"桃红\",\n        \"tra_name\": \"桃紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"táo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          173,\n          160\n        ],\n        \"hex\": \"#F0ADA0\",\n        \"cmyk\": [\n          0,\n          44,\n          32,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"238170156\",\n        \"name\": \"颊红\",\n        \"tra_name\": \"頰紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiá hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          170,\n          156\n        ],\n        \"hex\": \"#EEAA9C\",\n        \"cmyk\": [\n          0,\n          45,\n          34,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"238160140\",\n        \"name\": \"淡罂粟红\",\n        \"tra_name\": \"淡罌粟紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn yīng sù hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          160,\n          140\n        ],\n        \"hex\": \"#EEA08C\",\n        \"cmyk\": [\n          0,\n          49,\n          41,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23413788\",\n        \"name\": \"晨曦红\",\n        \"tra_name\": \"晨曦紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chén xī hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          137,\n          88\n        ],\n        \"hex\": \"#EA8958\",\n        \"cmyk\": [\n          0,\n          58,\n          67,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24211853\",\n        \"name\": \"蟹壳红\",\n        \"tra_name\": \"蟹殼紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xiè ké hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          118,\n          53\n        ],\n        \"hex\": \"#F27635\",\n        \"cmyk\": [\n          0,\n          65,\n          80,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24810729\",\n        \"name\": \"金莲花橙\",\n        \"tra_name\": \"金蓮花橙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jīn lián huā chéng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          107,\n          29\n        ],\n        \"hex\": \"#F86B1D\",\n        \"cmyk\": [\n          0,\n          69,\n          86,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23911172\",\n        \"name\": \"草莓红\",\n        \"tra_name\": \"草莓紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"cǎo méi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          111,\n          72\n        ],\n        \"hex\": \"#EF6F48\",\n        \"cmyk\": [\n          0,\n          69,\n          70,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2399943\",\n        \"name\": \"龙睛鱼红\",\n        \"tra_name\": \"龍睛魚紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"lóng jīng yú hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          99,\n          43\n        ],\n        \"hex\": \"#EF632B\",\n        \"cmyk\": [\n          0,\n          72,\n          82,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2416829\",\n        \"name\": \"蜻蜓红\",\n        \"tra_name\": \"蜻蜓紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"qīng tíng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          68,\n          29\n        ],\n        \"hex\": \"#F1441D\",\n        \"cmyk\": [\n          0,\n          81,\n          84,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2407534\",\n        \"name\": \"大红\",\n        \"tra_name\": \"大紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dà hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          75,\n          34\n        ],\n        \"hex\": \"#F04B22\",\n        \"cmyk\": [\n          0,\n          80,\n          83,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2427227\",\n        \"name\": \"柿红\",\n        \"tra_name\": \"柿紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shì hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          72,\n          27\n        ],\n        \"hex\": \"#F2481B\",\n        \"cmyk\": [\n          0,\n          80,\n          85,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2437124\",\n        \"name\": \"榴花红\",\n        \"tra_name\": \"榴花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"liú huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          243,\n          71,\n          24\n        ],\n        \"hex\": \"#F34718\",\n        \"cmyk\": [\n          0,\n          80,\n          85,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"244626\",\n        \"name\": \"银朱\",\n        \"tra_name\": \"銀硃\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yín zhū\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          244,\n          62,\n          6\n        ],\n        \"hex\": \"#F43E06\",\n        \"cmyk\": [\n          0,\n          83,\n          87,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2378138\",\n        \"name\": \"朱红\",\n        \"tra_name\": \"朱紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhū hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          81,\n          38\n        ],\n        \"hex\": \"#ED5126\",\n        \"cmyk\": [\n          0,\n          78,\n          83,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24015690\",\n        \"name\": \"鲑鱼红\",\n        \"tra_name\": \"鮭魚紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"guī yú hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          156,\n          90\n        ],\n        \"hex\": \"#F09C5A\",\n        \"cmyk\": [\n          0,\n          50,\n          68,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21714586\",\n        \"name\": \"鹿皮褐\",\n        \"tra_name\": \"鹿皮褐\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"lù pí hè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          217,\n          145,\n          86\n        ],\n        \"hex\": \"#D99156\",\n        \"cmyk\": [\n          7,\n          52,\n          71,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21913364\",\n        \"name\": \"醉瓜肉\",\n        \"tra_name\": \"醉瓜肉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zuì guā ròu\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          219,\n          133,\n          64\n        ],\n        \"hex\": \"#DB8540\",\n        \"cmyk\": [\n          4,\n          57,\n          82,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22211834\",\n        \"name\": \"麂棕\",\n        \"tra_name\": \"麂棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jǐ zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          222,\n          118,\n          34\n        ],\n        \"hex\": \"#DE7622\",\n        \"cmyk\": [\n          0,\n          64,\n          93,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19012674\",\n        \"name\": \"淡赭\",\n        \"tra_name\": \"淡赭\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn zhě\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          190,\n          126,\n          74\n        ],\n        \"hex\": \"#BE7E4A\",\n        \"cmyk\": [\n          18,\n          57,\n          76,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19310126\",\n        \"name\": \"槟榔综\",\n        \"tra_name\": \"檳榔綜\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"bīng láng zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          193,\n          101,\n          26\n        ],\n        \"hex\": \"#C1651A\",\n        \"cmyk\": [\n          14,\n          69,\n          100,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1488851\",\n        \"name\": \"淡咖啡\",\n        \"tra_name\": \"淡咖啡\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn kā fēi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          148,\n          88,\n          51\n        ],\n        \"hex\": \"#945833\",\n        \"cmyk\": [\n          27,\n          69,\n          85,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1507734\",\n        \"name\": \"岩石棕\",\n        \"tra_name\": \"岩石棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yán shí zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          150,\n          77,\n          34\n        ],\n        \"hex\": \"#964D22\",\n        \"cmyk\": [\n          26,\n          76,\n          97,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1496822\",\n        \"name\": \"芒果棕\",\n        \"tra_name\": \"芒果棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"máng guǒ zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          149,\n          68,\n          22\n        ],\n        \"hex\": \"#954416\",\n        \"cmyk\": [\n          25,\n          80,\n          100,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1135429\",\n        \"name\": \"丁香棕\",\n        \"tra_name\": \"丁香棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dīng xiāng zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          113,\n          54,\n          29\n        ],\n        \"hex\": \"#71361D\",\n        \"cmyk\": [\n          32,\n          83,\n          96,\n          41\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1174923\",\n        \"name\": \"咖啡\",\n        \"tra_name\": \"咖啡\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"kā fēi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          117,\n          49,\n          23\n        ],\n        \"hex\": \"#753117\",\n        \"cmyk\": [\n          30,\n          87,\n          100,\n          38\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1154618\",\n        \"name\": \"筍皮棕\",\n        \"tra_name\": \"筍皮棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"sǔn pí zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          115,\n          46,\n          18\n        ],\n        \"hex\": \"#732E12\",\n        \"cmyk\": [\n          30,\n          89,\n          100,\n          39\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2529921\",\n        \"name\": \"燕颔红\",\n        \"tra_name\": \"燕頷紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yàn hàn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          99,\n          21\n        ],\n        \"hex\": \"#FC6315\",\n        \"cmyk\": [\n          0,\n          72,\n          86,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"232180154\",\n        \"name\": \"玉粉红\",\n        \"tra_name\": \"玉粉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yù fěn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          232,\n          180,\n          154\n        ],\n        \"hex\": \"#E8B49A\",\n        \"cmyk\": [\n          3,\n          38,\n          39,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22810440\",\n        \"name\": \"金驼\",\n        \"tra_name\": \"金駝\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jīn tuó\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          228,\n          104,\n          40\n        ],\n        \"hex\": \"#E46828\",\n        \"cmyk\": [\n          0,\n          70,\n          87,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2168922\",\n        \"name\": \"铁棕\",\n        \"tra_name\": \"鐵棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tiě zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          216,\n          89,\n          22\n        ],\n        \"hex\": \"#D85916\",\n        \"cmyk\": [\n          0,\n          76,\n          97,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1838129\",\n        \"name\": \"淡可可棕\",\n        \"tra_name\": \"淡可可棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn kě kě zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          183,\n          81,\n          29\n        ],\n        \"hex\": \"#B7511D\",\n        \"cmyk\": [\n          16,\n          77,\n          100,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1356136\",\n        \"name\": \"淡豆沙\",\n        \"tra_name\": \"淡豆沙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn dòu shā\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          135,\n          61,\n          36\n        ],\n        \"hex\": \"#873D24\",\n        \"cmyk\": [\n          28,\n          83,\n          92,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1365830\",\n        \"name\": \"椰壳棕\",\n        \"tra_name\": \"椰殼棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yē ké zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          136,\n          58,\n          30\n        ],\n        \"hex\": \"#883A1E\",\n        \"cmyk\": [\n          27,\n          85,\n          98,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1035236\",\n        \"name\": \"淡栗棕\",\n        \"tra_name\": \"淡慄棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn lì zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          103,\n          52,\n          36\n        ],\n        \"hex\": \"#673424\",\n        \"cmyk\": [\n          34,\n          82,\n          85,\n          47\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1014328\",\n        \"name\": \"可可棕\",\n        \"tra_name\": \"可可棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"kě kě zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          101,\n          43,\n          28\n        ],\n        \"hex\": \"#652B1C\",\n        \"cmyk\": [\n          33,\n          89,\n          92,\n          48\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1054227\",\n        \"name\": \"柞叶棕\",\n        \"tra_name\": \"柞葉棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhà yè zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          105,\n          42,\n          27\n        ],\n        \"hex\": \"#692A1B\",\n        \"cmyk\": [\n          32,\n          90,\n          95,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"251153104\",\n        \"name\": \"野蔷薇红\",\n        \"tra_name\": \"野薔薇紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yě qiáng wēi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          153,\n          104\n        ],\n        \"hex\": \"#FB9968\",\n        \"cmyk\": [\n          0,\n          53,\n          59,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25212148\",\n        \"name\": \"菠萝红\",\n        \"tra_name\": \"菠蘿紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"bō luó hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          121,\n          48\n        ],\n        \"hex\": \"#FC7930\",\n        \"cmyk\": [\n          0,\n          65,\n          79,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"237195174\",\n        \"name\": \"藕荷\",\n        \"tra_name\": \"藕荷\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"ǒu hé\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          195,\n          174\n        ],\n        \"hex\": \"#EDC3AE\",\n        \"cmyk\": [\n          2,\n          31,\n          31,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22510335\",\n        \"name\": \"陶瓷红\",\n        \"tra_name\": \"陶瓷紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"táo cí hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          225,\n          103,\n          35\n        ],\n        \"hex\": \"#E16723\",\n        \"cmyk\": [\n          0,\n          70,\n          91,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20711767\",\n        \"name\": \"余烬红\",\n        \"tra_name\": \"餘燼紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yú jìn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          207,\n          117,\n          67\n        ],\n        \"hex\": \"#CF7543\",\n        \"cmyk\": [\n          9,\n          64,\n          78,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2059839\",\n        \"name\": \"火砖红\",\n        \"tra_name\": \"火磚紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"huǒ zhuān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          205,\n          98,\n          39\n        ],\n        \"hex\": \"#CD6227\",\n        \"cmyk\": [\n          8,\n          72,\n          93,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"17010676\",\n        \"name\": \"绀红\",\n        \"tra_name\": \"紺紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"gàn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          170,\n          106,\n          76\n        ],\n        \"hex\": \"#AA6A4C\",\n        \"cmyk\": [\n          20,\n          76,\n          92,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1196149\",\n        \"name\": \"橡树棕\",\n        \"tra_name\": \"橡樹棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xiàng shù zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          119,\n          61,\n          49\n        ],\n        \"hex\": \"#773D31\",\n        \"cmyk\": [\n          31,\n          79,\n          77,\n          37\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"723734\",\n        \"name\": \"火山棕\",\n        \"tra_name\": \"火山棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"huǒ shān zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          72,\n          37,\n          34\n        ],\n        \"hex\": \"#482522\",\n        \"cmyk\": [\n          41,\n          84,\n          71,\n          67\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"723028\",\n        \"name\": \"豆沙\",\n        \"tra_name\": \"豆沙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dòu shā\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          72,\n          30,\n          28\n        ],\n        \"hex\": \"#481E1C\",\n        \"cmyk\": [\n          40,\n          92,\n          78,\n          66\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"246220206\",\n        \"name\": \"初桃粉红\",\n        \"tra_name\": \"初桃粉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chū táo fěn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          246,\n          220,\n          206\n        ],\n        \"hex\": \"#F6DCCE\",\n        \"cmyk\": [\n          0,\n          19,\n          19,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"247207186\",\n        \"name\": \"介壳淡粉红\",\n        \"tra_name\": \"介殼淡粉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiè ké dàn fěn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          247,\n          207,\n          186\n        ],\n        \"hex\": \"#F7CFBA\",\n        \"cmyk\": [\n          0,\n          27,\n          27,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"246173143\",\n        \"name\": \"淡藏花红\",\n        \"tra_name\": \"淡藏花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn cáng huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          246,\n          173,\n          143\n        ],\n        \"hex\": \"#F6AD8F\",\n        \"cmyk\": [\n          0,\n          43,\n          43,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24614096\",\n        \"name\": \"瓜瓤红\",\n        \"tra_name\": \"瓜瓤紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"guā ráng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          246,\n          140,\n          96\n        ],\n        \"hex\": \"#F68C60\",\n        \"cmyk\": [\n          0,\n          58,\n          61,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24911461\",\n        \"name\": \"芙蓉红\",\n        \"tra_name\": \"芙蓉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fú róng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          114,\n          61\n        ],\n        \"hex\": \"#F9723D\",\n        \"cmyk\": [\n          0,\n          67,\n          74,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2509325\",\n        \"name\": \"莓酱红\",\n        \"tra_name\": \"莓醬紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"méi jiàng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          250,\n          93,\n          25\n        ],\n        \"hex\": \"#FA5D19\",\n        \"cmyk\": [\n          0,\n          74,\n          85,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23812885\",\n        \"name\": \"法螺红\",\n        \"tra_name\": \"法螺紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fǎ luó hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          128,\n          85\n        ],\n        \"hex\": \"#EE8055\",\n        \"cmyk\": [\n          0,\n          62,\n          66,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2077219\",\n        \"name\": \"落霞红\",\n        \"tra_name\": \"落霞紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"luò xiá hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          207,\n          72,\n          19\n        ],\n        \"hex\": \"#CF4813\",\n        \"cmyk\": [\n          4,\n          82,\n          99,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1777540\",\n        \"name\": \"蟹蝥红\",\n        \"tra_name\": \"蟹蝥紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xiè máo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          177,\n          75,\n          40\n        ],\n        \"hex\": \"#B14B28\",\n        \"cmyk\": [\n          18,\n          80,\n          92,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1344832\",\n        \"name\": \"火岩棕\",\n        \"tra_name\": \"火岩棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"huǒ yán zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          134,\n          48,\n          32\n        ],\n        \"hex\": \"#863020\",\n        \"cmyk\": [\n          27,\n          91,\n          95,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1343823\",\n        \"name\": \"赭石\",\n        \"tra_name\": \"赭石\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhě shí\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          134,\n          38,\n          23\n        ],\n        \"hex\": \"#862617\",\n        \"cmyk\": [\n          27,\n          96,\n          100,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"893832\",\n        \"name\": \"暗驼棕\",\n        \"tra_name\": \"暗駝棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"àn tuó zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          89,\n          38,\n          32\n        ],\n        \"hex\": \"#592620\",\n        \"cmyk\": [\n          36,\n          90,\n          82,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"903127\",\n        \"name\": \"酱棕\",\n        \"tra_name\": \"醬棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiàng zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          90,\n          31,\n          27\n        ],\n        \"hex\": \"#5A1F1B\",\n        \"cmyk\": [\n          35,\n          96,\n          88,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"923025\",\n        \"name\": \"栗棕\",\n        \"tra_name\": \"慄棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"lì zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          92,\n          30,\n          25\n        ],\n        \"hex\": \"#5C1E19\",\n        \"cmyk\": [\n          34,\n          98,\n          91,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"241118102\",\n        \"name\": \"谷鞘红\",\n        \"tra_name\": \"谷鞘紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"gǔ qiào hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          118,\n          102\n        ],\n        \"hex\": \"#F17666\",\n        \"cmyk\": [\n          0,\n          67,\n          55,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2418666\",\n        \"name\": \"苹果红\",\n        \"tra_name\": \"蘋果紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"píng guǒ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          86,\n          66\n        ],\n        \"hex\": \"#F15642\",\n        \"cmyk\": [\n          0,\n          77,\n          69,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2455728\",\n        \"name\": \"铁水红\",\n        \"tra_name\": \"鐵水紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tiě shuǐ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          245,\n          57,\n          28\n        ],\n        \"hex\": \"#F5391C\",\n        \"cmyk\": [\n          0,\n          84,\n          82,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2429071\",\n        \"name\": \"桂红\",\n        \"tra_name\": \"桂紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"guì hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          90,\n          71\n        ],\n        \"hex\": \"#F25A47\",\n        \"cmyk\": [\n          0,\n          76,\n          67,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2435931\",\n        \"name\": \"极光红\",\n        \"tra_name\": \"極光紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jí guāng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          243,\n          59,\n          31\n        ],\n        \"hex\": \"#F33B1F\",\n        \"cmyk\": [\n          0,\n          84,\n          82,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"241151144\",\n        \"name\": \"舌红\",\n        \"tra_name\": \"舌紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shé hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          151,\n          144\n        ],\n        \"hex\": \"#F19790\",\n        \"cmyk\": [\n          0,\n          53,\n          36,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2409070\",\n        \"name\": \"曲红\",\n        \"tra_name\": \"曲紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"qū hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          90,\n          70\n        ],\n        \"hex\": \"#F05A46\",\n        \"cmyk\": [\n          0,\n          76,\n          68,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2426235\",\n        \"name\": \"红汞红\",\n        \"tra_name\": \"紅汞紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hóng gǒng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          62,\n          35\n        ],\n        \"hex\": \"#F23E23\",\n        \"cmyk\": [\n          0,\n          83,\n          81,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"242202201\",\n        \"name\": \"淡绯\",\n        \"tra_name\": \"淡緋\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn fēi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          202,\n          201\n        ],\n        \"hex\": \"#F2CAC9\",\n        \"cmyk\": [\n          0,\n          29,\n          16,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"239175173\",\n        \"name\": \"无花果红\",\n        \"tra_name\": \"無花果紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"wú huā guǒ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          175,\n          173\n        ],\n        \"hex\": \"#EFAFAD\",\n        \"cmyk\": [\n          0,\n          43,\n          24,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"241144140\",\n        \"name\": \"榴子红\",\n        \"tra_name\": \"榴子紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"liú zi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          144,\n          140\n        ],\n        \"hex\": \"#F1908C\",\n        \"cmyk\": [\n          0,\n          57,\n          36,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2406336\",\n        \"name\": \"胭脂红\",\n        \"tra_name\": \"胭脂紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān zhī hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          63,\n          36\n        ],\n        \"hex\": \"#F03F24\",\n        \"cmyk\": [\n          0,\n          83,\n          81,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240161168\",\n        \"name\": \"合欢红\",\n        \"tra_name\": \"合歡紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hé huān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          161,\n          168\n        ],\n        \"hex\": \"#F0A1A8\",\n        \"cmyk\": [\n          0,\n          50,\n          23,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"241147156\",\n        \"name\": \"春梅红\",\n        \"tra_name\": \"春梅紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chūn méi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          147,\n          156\n        ],\n        \"hex\": \"#F1939C\",\n        \"cmyk\": [\n          0,\n          56,\n          27,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240124130\",\n        \"name\": \"香叶红\",\n        \"tra_name\": \"香葉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xiāng yè hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          124,\n          130\n        ],\n        \"hex\": \"#F07C82\",\n        \"cmyk\": [\n          0,\n          65,\n          38,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2407458\",\n        \"name\": \"珊瑚红\",\n        \"tra_name\": \"珊瑚紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shān hú hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          74,\n          58\n        ],\n        \"hex\": \"#F04A3A\",\n        \"cmyk\": [\n          0,\n          80,\n          72,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2416034\",\n        \"name\": \"萝卜红\",\n        \"tra_name\": \"蘿蔔紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"luó bo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          60,\n          34\n        ],\n        \"hex\": \"#F13C22\",\n        \"cmyk\": [\n          0,\n          84,\n          82,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"231124142\",\n        \"name\": \"淡茜红\",\n        \"tra_name\": \"淡茜紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn qiàn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          231,\n          124,\n          142\n        ],\n        \"hex\": \"#E77C8E\",\n        \"cmyk\": [\n          0,\n          65,\n          29,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23790101\",\n        \"name\": \"艳红\",\n        \"tra_name\": \"艷紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yàn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          90,\n          101\n        ],\n        \"hex\": \"#ED5A65\",\n        \"cmyk\": [\n          0,\n          77,\n          49,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2377269\",\n        \"name\": \"淡菽红\",\n        \"tra_name\": \"淡菽紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn shū hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          72,\n          69\n        ],\n        \"hex\": \"#ED4845\",\n        \"cmyk\": [\n          0,\n          81,\n          66,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2375947\",\n        \"name\": \"鱼鳃红\",\n        \"tra_name\": \"魚鰓紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yú sāi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          59,\n          47\n        ],\n        \"hex\": \"#ED3B2F\",\n        \"cmyk\": [\n          0,\n          84,\n          76,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2375133\",\n        \"name\": \"樱桃红\",\n        \"tra_name\": \"櫻桃紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yīng táo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          51,\n          33\n        ],\n        \"hex\": \"#ED3321\",\n        \"cmyk\": [\n          0,\n          86,\n          82,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23872102\",\n        \"name\": \"淡蕊香红\",\n        \"tra_name\": \"淡蕊香紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn ruǐ xiāng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          72,\n          102\n        ],\n        \"hex\": \"#EE4866\",\n        \"cmyk\": [\n          0,\n          82,\n          44,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2387299\",\n        \"name\": \"石竹红\",\n        \"tra_name\": \"石竹紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shí zhú hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          72,\n          99\n        ],\n        \"hex\": \"#EE4863\",\n        \"cmyk\": [\n          0,\n          82,\n          46,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2397193\",\n        \"name\": \"草茉莉红\",\n        \"tra_name\": \"草茉莉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"cǎo mò lì hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          71,\n          93\n        ],\n        \"hex\": \"#EF475D\",\n        \"cmyk\": [\n          0,\n          82,\n          50,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2386377\",\n        \"name\": \"茶花红\",\n        \"tra_name\": \"茶花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chá huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          63,\n          77\n        ],\n        \"hex\": \"#EE3F4D\",\n        \"cmyk\": [\n          0,\n          84,\n          60,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2375151\",\n        \"name\": \"枸枢红\",\n        \"tra_name\": \"枸樞紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"gǒu shū hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          51,\n          51\n        ],\n        \"hex\": \"#ED3333\",\n        \"cmyk\": [\n          0,\n          86,\n          74,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2364336\",\n        \"name\": \"秋海棠红\",\n        \"tra_name\": \"秋海棠紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"qiū hǎi táng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          236,\n          43,\n          36\n        ],\n        \"hex\": \"#EC2B24\",\n        \"cmyk\": [\n          0,\n          88,\n          81,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2353826\",\n        \"name\": \"丽春红\",\n        \"tra_name\": \"麗春紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"lì chūn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          38,\n          26\n        ],\n        \"hex\": \"#EB261A\",\n        \"cmyk\": [\n          0,\n          89,\n          84,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2224224\",\n        \"name\": \"夕阳红\",\n        \"tra_name\": \"夕陽紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xī yáng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          222,\n          42,\n          24\n        ],\n        \"hex\": \"#DE2A18\",\n        \"cmyk\": [\n          0,\n          90,\n          90,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2123723\",\n        \"name\": \"鹤顶红\",\n        \"tra_name\": \"鶴頂紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hè dǐng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          212,\n          37,\n          23\n        ],\n        \"hex\": \"#D42517\",\n        \"cmyk\": [\n          0,\n          92,\n          95,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1715547\",\n        \"name\": \"鹅血石红\",\n        \"tra_name\": \"鵝血石紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"é xuè shí hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          171,\n          55,\n          47\n        ],\n        \"hex\": \"#AB372F\",\n        \"cmyk\": [\n          19,\n          89,\n          85,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1723124\",\n        \"name\": \"覆盆子红\",\n        \"tra_name\": \"覆盆子紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fù pén zi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          172,\n          31,\n          24\n        ],\n        \"hex\": \"#AC1F18\",\n        \"cmyk\": [\n          17,\n          98,\n          100,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"238162164\",\n        \"name\": \"牡丹粉红\",\n        \"tra_name\": \"牡丹粉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"mǔ dān fěn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          162,\n          164\n        ],\n        \"hex\": \"#EEA2A4\",\n        \"cmyk\": [\n          0,\n          49,\n          27,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23785106\",\n        \"name\": \"山茶红\",\n        \"tra_name\": \"山茶紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shān chá hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          85,\n          106\n        ],\n        \"hex\": \"#ED556A\",\n        \"cmyk\": [\n          0,\n          78,\n          44,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2405582\",\n        \"name\": \"海棠红\",\n        \"tra_name\": \"海棠紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hǎi táng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          55,\n          82\n        ],\n        \"hex\": \"#F03752\",\n        \"cmyk\": [\n          0,\n          86,\n          55,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1927281\",\n        \"name\": \"玉红\",\n        \"tra_name\": \"玉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yù hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          192,\n          72,\n          81\n        ],\n        \"hex\": \"#C04851\",\n        \"cmyk\": [\n          13,\n          83,\n          62,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1924456\",\n        \"name\": \"高粱红\",\n        \"tra_name\": \"高粱紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"gāo liáng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          192,\n          44,\n          56\n        ],\n        \"hex\": \"#C02C38\",\n        \"cmyk\": [\n          11,\n          93,\n          77,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1678390\",\n        \"name\": \"满江红\",\n        \"tra_name\": \"滿江紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"mǎn jiāng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          167,\n          83,\n          90\n        ],\n        \"hex\": \"#A7535A\",\n        \"cmyk\": [\n          22,\n          76,\n          54,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1242435\",\n        \"name\": \"枣红\",\n        \"tra_name\": \"棗紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zǎo hóng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          124,\n          24,\n          35\n        ],\n        \"hex\": \"#7C1823\",\n        \"cmyk\": [\n          28,\n          100,\n          86,\n          33\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2383970\",\n        \"name\": \"淡曙红\",\n        \"tra_name\": \"淡曙紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn shǔ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          39,\n          70\n        ],\n        \"hex\": \"#EE2746\",\n        \"cmyk\": [\n          0,\n          89,\n          62,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2222849\",\n        \"name\": \"唐菖蒲红\",\n        \"tra_name\": \"唐菖蒲紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"táng chāng pú hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          222,\n          28,\n          49\n        ],\n        \"hex\": \"#DE1C31\",\n        \"cmyk\": [\n          0,\n          93,\n          76,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2092645\",\n        \"name\": \"鹅冠红\",\n        \"tra_name\": \"鵝冠紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"é guān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          209,\n          26,\n          45\n        ],\n        \"hex\": \"#D11A2D\",\n        \"cmyk\": [\n          1,\n          95,\n          82,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19690101\",\n        \"name\": \"莓红\",\n        \"tra_name\": \"莓紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"méi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          196,\n          90,\n          101\n        ],\n        \"hex\": \"#C45A65\",\n        \"cmyk\": [\n          13,\n          76,\n          50,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1943148\",\n        \"name\": \"枫叶红\",\n        \"tra_name\": \"楓葉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fēng yè hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          194,\n          31,\n          48\n        ],\n        \"hex\": \"#C21F30\",\n        \"cmyk\": [\n          10,\n          96,\n          82,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1662741\",\n        \"name\": \"苋菜红\",\n        \"tra_name\": \"莧菜紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xiàn cài hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          166,\n          27,\n          41\n        ],\n        \"hex\": \"#A61B29\",\n        \"cmyk\": [\n          19,\n          99,\n          86,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1377884\",\n        \"name\": \"烟红\",\n        \"tra_name\": \"煙紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          137,\n          78,\n          84\n        ],\n        \"hex\": \"#894E54\",\n        \"cmyk\": [\n          29,\n          73,\n          51,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1303243\",\n        \"name\": \"暗紫苑红\",\n        \"tra_name\": \"暗紫苑紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"àn zǐ yuàn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          130,\n          32,\n          43\n        ],\n        \"hex\": \"#82202B\",\n        \"cmyk\": [\n          27,\n          98,\n          79,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1301731\",\n        \"name\": \"殷红\",\n        \"tra_name\": \"殷紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          130,\n          17,\n          31\n        ],\n        \"hex\": \"#82111F\",\n        \"cmyk\": [\n          27,\n          100,\n          90,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"236118150\",\n        \"name\": \"淡绛红\",\n        \"tra_name\": \"淡絳紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn jiàng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          236,\n          118,\n          150\n        ],\n        \"hex\": \"#EC7696\",\n        \"cmyk\": [\n          0,\n          68,\n          21,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23952115\",\n        \"name\": \"品红\",\n        \"tra_name\": \"品紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"pǐn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          52,\n          115\n        ],\n        \"hex\": \"#EF3473\",\n        \"cmyk\": [\n          0,\n          86,\n          30,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"234114147\",\n        \"name\": \"凤仙花红\",\n        \"tra_name\": \"鳳仙花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fèng xiān huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          114,\n          147\n        ],\n        \"hex\": \"#EA7293\",\n        \"cmyk\": [\n          0,\n          69,\n          22,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"236155173\",\n        \"name\": \"粉团花红\",\n        \"tra_name\": \"粉團花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fěn tuán huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          236,\n          155,\n          173\n        ],\n        \"hex\": \"#EC9BAD\",\n        \"cmyk\": [\n          0,\n          52,\n          18,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23580126\",\n        \"name\": \"夹竹桃红\",\n        \"tra_name\": \"夾竹桃紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiā zhú táo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          80,\n          126\n        ],\n        \"hex\": \"#EB507E\",\n        \"cmyk\": [\n          0,\n          80,\n          28,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23747106\",\n        \"name\": \"榲桲舡\",\n        \"tra_name\": \"榲桲舡\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"wēn po chuán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          47,\n          106\n        ],\n        \"hex\": \"#ED2F6A\",\n        \"cmyk\": [\n          0,\n          88,\n          36,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"238184195\",\n        \"name\": \"姜红\",\n        \"tra_name\": \"薑紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiāng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          184,\n          195\n        ],\n        \"hex\": \"#EEB8C3\",\n        \"cmyk\": [\n          0,\n          39,\n          14,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23481127\",\n        \"name\": \"莲瓣红\",\n        \"tra_name\": \"蓮瓣紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"lián bàn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          81,\n          127\n        ],\n        \"hex\": \"#EA517F\",\n        \"cmyk\": [\n          0,\n          80,\n          27,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"241196205\",\n        \"name\": \"水红\",\n        \"tra_name\": \"水紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shuǐ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          196,\n          205\n        ],\n        \"hex\": \"#F1C4CD\",\n        \"cmyk\": [\n          0,\n          33,\n          11,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"236138164\",\n        \"name\": \"报春红\",\n        \"tra_name\": \"報春紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"bào chūn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          236,\n          138,\n          164\n        ],\n        \"hex\": \"#EC8AA4\",\n        \"cmyk\": [\n          0,\n          60,\n          18,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20687119\",\n        \"name\": \"月季红\",\n        \"tra_name\": \"月季紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yuè jì hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          206,\n          87,\n          109\n        ],\n        \"hex\": \"#CE5777\",\n        \"cmyk\": [\n          8,\n          78,\n          35,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"237157178\",\n        \"name\": \"豇豆红\",\n        \"tra_name\": \"豇豆紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiāng dòu hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          157,\n          178\n        ],\n        \"hex\": \"#ED9DB2\",\n        \"cmyk\": [\n          0,\n          52,\n          15,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"239130160\",\n        \"name\": \"霞光红\",\n        \"tra_name\": \"霞光紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xiá guāng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          130,\n          160\n        ],\n        \"hex\": \"#EF82A0\",\n        \"cmyk\": [\n          0,\n          63,\n          18,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23560112\",\n        \"name\": \"松叶牡丹红\",\n        \"tra_name\": \"松葉牡丹紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"sōng yè mǔ dān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          60,\n          112\n        ],\n        \"hex\": \"#EB3C70\",\n        \"cmyk\": [\n          0,\n          85,\n          33,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23644100\",\n        \"name\": \"喜蛋红\",\n        \"tra_name\": \"喜蛋紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xǐ dàn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          236,\n          44,\n          100\n        ],\n        \"hex\": \"#EC2C64\",\n        \"cmyk\": [\n          0,\n          88,\n          40,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"227180184\",\n        \"name\": \"鼠鼻红\",\n        \"tra_name\": \"鼠鼻紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shǔ bí hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          227,\n          180,\n          184\n        ],\n        \"hex\": \"#E3B4B8\",\n        \"cmyk\": [\n          5,\n          38,\n          20,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2042258\",\n        \"name\": \"尖晶玉红\",\n        \"tra_name\": \"尖晶玉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiān jīng yù hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          204,\n          22,\n          58\n        ],\n        \"hex\": \"#CC163A\",\n        \"cmyk\": [\n          5,\n          96,\n          73,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"194124136\",\n        \"name\": \"山黎豆红\",\n        \"tra_name\": \"山黎豆紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shān lí dòu hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          194,\n          124,\n          136\n        ],\n        \"hex\": \"#C27C88\",\n        \"cmyk\": [\n          16,\n          61,\n          34,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1915383\",\n        \"name\": \"锦葵红\",\n        \"tra_name\": \"錦葵紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jǐn kuí hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          191,\n          53,\n          83\n        ],\n        \"hex\": \"#BF3553\",\n        \"cmyk\": [\n          13,\n          90,\n          56,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"451219\",\n        \"name\": \"吊钟花红\",\n        \"tra_name\": \"吊鐘花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"diào zhōng huā hóng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          45,\n          12,\n          19\n        ],\n        \"hex\": \"#2D0C13\",\n        \"cmyk\": [\n          0,\n          76,\n          16,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23678138\",\n        \"name\": \"兔眼红\",\n        \"tra_name\": \"兔眼紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tù yǎn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          236,\n          78,\n          138\n        ],\n        \"hex\": \"#EC4E8A\",\n        \"cmyk\": [\n          0,\n          81,\n          18,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23844121\",\n        \"name\": \"紫荆红\",\n        \"tra_name\": \"紫荊紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zǐ jīng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          44,\n          121\n        ],\n        \"hex\": \"#EE2C79\",\n        \"cmyk\": [\n          0,\n          87,\n          24,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"981646\",\n        \"name\": \"葡萄酒红\",\n        \"tra_name\": \"葡萄酒紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"pú táo jiǔ hóng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          98,\n          16,\n          46\n        ],\n        \"hex\": \"#62102E\",\n        \"cmyk\": [\n          33,\n          100,\n          58,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"238166183\",\n        \"name\": \"晶红\",\n        \"tra_name\": \"晶紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jīng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          166,\n          183\n        ],\n        \"hex\": \"#EEA6B7\",\n        \"cmyk\": [\n          0,\n          48,\n          15,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23973139\",\n        \"name\": \"扁豆花红\",\n        \"tra_name\": \"扁豆花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"biǎn dòu huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          73,\n          139\n        ],\n        \"hex\": \"#EF498B\",\n        \"cmyk\": [\n          0,\n          82,\n          16,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"222120151\",\n        \"name\": \"白芨红\",\n        \"tra_name\": \"白芨紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"bái jī hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          222,\n          120,\n          151\n        ],\n        \"hex\": \"#DE7897\",\n        \"cmyk\": [\n          2,\n          66,\n          22,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22263124\",\n        \"name\": \"嫩菱红\",\n        \"tra_name\": \"嫩菱紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"nèn líng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          222,\n          63,\n          124\n        ],\n        \"hex\": \"#DE3F7C\",\n        \"cmyk\": [\n          0,\n          85,\n          24,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20960116\",\n        \"name\": \"菠根红\",\n        \"tra_name\": \"菠根紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"bō gēn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          209,\n          60,\n          116\n        ],\n        \"hex\": \"#D13C74\",\n        \"cmyk\": [\n          5,\n          87,\n          30,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"197112139\",\n        \"name\": \"酢酱草红\",\n        \"tra_name\": \"酢醬草紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"cù jiàng cǎo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          197,\n          112,\n          139\n        ],\n        \"hex\": \"#C5708B\",\n        \"cmyk\": [\n          15,\n          68,\n          28,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"235160179\",\n        \"name\": \"芍药耕红\",\n        \"tra_name\": \"芍藥耕紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"sháo yào gēng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          160,\n          179\n        ],\n        \"hex\": \"#EBA0B3\",\n        \"cmyk\": [\n          0,\n          50,\n          16,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23645122\",\n        \"name\": \"藏花红\",\n        \"tra_name\": \"藏花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"cáng huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          236,\n          45,\n          122\n        ],\n        \"hex\": \"#EC2D7A\",\n        \"cmyk\": [\n          0,\n          88,\n          23,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"225108150\",\n        \"name\": \"初荷红\",\n        \"tra_name\": \"初荷紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chū hé hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          225,\n          108,\n          150\n        ],\n        \"hex\": \"#E16C96\",\n        \"cmyk\": [\n          0,\n          71,\n          18,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21086140\",\n        \"name\": \"丹紫红\",\n        \"tra_name\": \"丹紫紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dān zǐ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          86,\n          140\n        ],\n        \"hex\": \"#D2568C\",\n        \"cmyk\": [\n          7,\n          79,\n          18,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21053125\",\n        \"name\": \"玫瑰红\",\n        \"tra_name\": \"玫瑰紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"méi guī hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          53,\n          125\n        ],\n        \"hex\": \"#D2357D\",\n        \"cmyk\": [\n          4,\n          89,\n          21,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"210118163\",\n        \"name\": \"菱锰红\",\n        \"tra_name\": \"菱錳紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"líng měng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          118,\n          163\n        ],\n        \"hex\": \"#D276A3\",\n        \"cmyk\": [\n          10,\n          67,\n          12,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20485149\",\n        \"name\": \"龙须红\",\n        \"tra_name\": \"龍鬚紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"lóng xū hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          204,\n          85,\n          149\n        ],\n        \"hex\": \"#CC5595\",\n        \"cmyk\": [\n          11,\n          97,\n          10,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19586145\",\n        \"name\": \"电气石红\",\n        \"tra_name\": \"電氣石紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"diàn qì shí hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          195,\n          86,\n          145\n        ],\n        \"hex\": \"#C35691\",\n        \"cmyk\": [\n          16,\n          79,\n          14,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"234192206\",\n        \"name\": \"粉凤仙\",\n        \"tra_name\": \"粉鳳仙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fěn fèng xiān\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          192,\n          206\n        ],\n        \"hex\": \"#EAC0CE\",\n        \"cmyk\": [\n          0,\n          18,\n          12,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"229184195\",\n        \"name\": \"浅粉\",\n        \"tra_name\": \"浅粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"qiǎn fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          229,\n          184,\n          195\n        ],\n        \"hex\": \"#E5B8C3\",\n        \"cmyk\": [\n          0,\n          20,\n          15,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"232175197\",\n        \"name\": \"淡粉\",\n        \"tra_name\": \"淡粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dàn fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          232,\n          175,\n          197\n        ],\n        \"hex\": \"#E8AFC5\",\n        \"cmyk\": [\n          0,\n          25,\n          15,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"225141172\",\n        \"name\": \"暗粉\",\n        \"tra_name\": \"暗粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"àn fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          225,\n          141,\n          172\n        ],\n        \"hex\": \"#E18DAC\",\n        \"cmyk\": [\n          0,\n          37,\n          24,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"235127175\",\n        \"name\": \"荷花红\",\n        \"tra_name\": \"荷花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hé huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          127,\n          175\n        ],\n        \"hex\": \"#EB7FAF\",\n        \"cmyk\": [\n          0,\n          46,\n          26,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21184126\",\n        \"name\": \"艶粉\",\n        \"tra_name\": \"艶粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yàn fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          211,\n          84,\n          126\n        ],\n        \"hex\": \"#D3547E\",\n        \"cmyk\": [\n          0,\n          60,\n          40,\n          17\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16538100\",\n        \"name\": \"鶏冠花红\",\n        \"tra_name\": \"鶏冠花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jī guān huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          165,\n          38,\n          100\n        ],\n        \"hex\": \"#A52664\",\n        \"cmyk\": [\n          0,\n          77,\n          39,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16719104\",\n        \"name\": \"品红\",\n        \"tra_name\": \"品紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"pǐn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          167,\n          19,\n          104\n        ],\n        \"hex\": \"#A71368\",\n        \"cmyk\": [\n          0,\n          89,\n          38,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"17480107\",\n        \"name\": \"苏木色\",\n        \"tra_name\": \"蘇木色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"sū mù sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          174,\n          80,\n          107\n        ],\n        \"hex\": \"#AE506B\",\n        \"cmyk\": [\n          0,\n          54,\n          39,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1515268\",\n        \"name\": \"玫瑰红\",\n        \"tra_name\": \"玫瑰紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"méi gūi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          151,\n          52,\n          68\n        ],\n        \"hex\": \"#973444\",\n        \"cmyk\": [\n          0,\n          66,\n          55,\n          41\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1494658\",\n        \"name\": \"臙脂\",\n        \"tra_name\": \"臙脂\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān zhī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          149,\n          46,\n          58\n        ],\n        \"hex\": \"#952E3A\",\n        \"cmyk\": [\n          0,\n          69,\n          61,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1759483\",\n        \"name\": \"辰沙\",\n        \"tra_name\": \"辰沙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chén shā\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          175,\n          94,\n          83\n        ],\n        \"hex\": \"#AF5E53\",\n        \"cmyk\": [\n          0,\n          46,\n          53,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1707761\",\n        \"name\": \"砖红\",\n        \"tra_name\": \"磚紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhuān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          170,\n          77,\n          61\n        ],\n        \"hex\": \"#AA4D3D\",\n        \"cmyk\": [\n          0,\n          55,\n          64,\n          33\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1646579\",\n        \"name\": \"殷红\",\n        \"tra_name\": \"殷紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yīn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          164,\n          65,\n          79\n        ],\n        \"hex\": \"#A4414F\",\n        \"cmyk\": [\n          0,\n          60,\n          52,\n          36\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"197105120\",\n        \"name\": \"银红\",\n        \"tra_name\": \"銀紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yín hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          197,\n          105,\n          120\n        ],\n        \"hex\": \"#C56978\",\n        \"cmyk\": [\n          0,\n          47,\n          39,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"193120134\",\n        \"name\": \"肉红\",\n        \"tra_name\": \"肉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"ròu hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          193,\n          120,\n          134\n        ],\n        \"hex\": \"#C17886\",\n        \"cmyk\": [\n          0,\n          38,\n          31,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1958685\",\n        \"name\": \"妃红\",\n        \"tra_name\": \"妃紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fēi hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          195,\n          86,\n          85\n        ],\n        \"hex\": \"#C35655\",\n        \"cmyk\": [\n          0,\n          56,\n          56,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1965557\",\n        \"name\": \"猩红\",\n        \"tra_name\": \"猩紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xīng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          196,\n          55,\n          57\n        ],\n        \"hex\": \"#C43739\",\n        \"cmyk\": [\n          0,\n          72,\n          71,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1606240\",\n        \"name\": \"血红\",\n        \"tra_name\": \"血紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xiě hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          160,\n          62,\n          40\n        ],\n        \"hex\": \"#A03E28\",\n        \"cmyk\": [\n          0,\n          61,\n          75,\n          37\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1872851\",\n        \"name\": \"月季红\",\n        \"tra_name\": \"月季紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yuè jì hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          187,\n          28,\n          51\n        ],\n        \"hex\": \"#BB1C33\",\n        \"cmyk\": [\n          0,\n          85,\n          73,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1793169\",\n        \"name\": \"茉莉花红\",\n        \"tra_name\": \"茉莉花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"mò lì huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          179,\n          31,\n          69\n        ],\n        \"hex\": \"#B31F45\",\n        \"cmyk\": [\n          0,\n          83,\n          61,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1974061\",\n        \"name\": \"乌罗松红\",\n        \"tra_name\": \"烏羅松紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"wū luó sōng hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          197,\n          40,\n          61\n        ],\n        \"hex\": \"#C5283D\",\n        \"cmyk\": [\n          0,\n          80,\n          69,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2095389\",\n        \"name\": \"银星海棠\",\n        \"tra_name\": \"銀星海棠\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yín xīng hǎi táng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          209,\n          53,\n          89\n        ],\n        \"hex\": \"#D13559\",\n        \"cmyk\": [\n          0,\n          75,\n          57,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1885260\",\n        \"name\": \"象牙红\",\n        \"tra_name\": \"象牙紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xiàng yá hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          188,\n          52,\n          60\n        ],\n        \"hex\": \"#BC343C\",\n        \"cmyk\": [\n          0,\n          72,\n          68,\n          26\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1478488\",\n        \"name\": \"曙红\",\n        \"tra_name\": \"曙紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shù hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          147,\n          84,\n          88\n        ],\n        \"hex\": \"#935458\",\n        \"cmyk\": [\n          0,\n          43,\n          40,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"184251\",\n        \"name\": \"牡丹红\",\n        \"tra_name\": \"牡丹紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"mǔ dān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          184,\n          2,\n          51\n        ],\n        \"hex\": \"#B80233\",\n        \"cmyk\": [\n          0,\n          99,\n          72,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2045354\",\n        \"name\": \"艶红\",\n        \"tra_name\": \"艶紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yàn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          204,\n          53,\n          54\n        ],\n        \"hex\": \"#CC3536\",\n        \"cmyk\": [\n          0,\n          74,\n          74,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2074147\",\n        \"name\": \"蕉红色\",\n        \"tra_name\": \"蕉紅色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiāo hóng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          207,\n          41,\n          47\n        ],\n        \"hex\": \"#CF292F\",\n        \"cmyk\": [\n          0,\n          80,\n          77,\n          19\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2099394\",\n        \"name\": \"银朱\",\n        \"tra_name\": \"銀朱\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yín zhū\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          209,\n          93,\n          94\n        ],\n        \"hex\": \"#D15D5E\",\n        \"cmyk\": [\n          0,\n          56,\n          55,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1847572\",\n        \"name\": \"朱砂\",\n        \"tra_name\": \"硃砂\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhū shā\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          184,\n          75,\n          72\n        ],\n        \"hex\": \"#B84B48\",\n        \"cmyk\": [\n          0,\n          59,\n          61,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1988775\",\n        \"name\": \"二朱\",\n        \"tra_name\": \"二硃\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"èr zhū\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          198,\n          87,\n          75\n        ],\n        \"hex\": \"#C6574B\",\n        \"cmyk\": [\n          0,\n          56,\n          62,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2279262\",\n        \"name\": \"朱膘\",\n        \"tra_name\": \"硃膘\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhū piǎo\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          227,\n          92,\n          62\n        ],\n        \"hex\": \"#E35C3E\",\n        \"cmyk\": [\n          0,\n          59,\n          73,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23510145\",\n        \"name\": \"章丹\",\n        \"tra_name\": \"章丹\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhāng dān\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          101,\n          45\n        ],\n        \"hex\": \"#EB652D\",\n        \"cmyk\": [\n          0,\n          57,\n          81,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1967161\",\n        \"name\": \"蕃茄红\",\n        \"tra_name\": \"蕃茄紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fán qié hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          196,\n          71,\n          61\n        ],\n        \"hex\": \"#C4473D\",\n        \"cmyk\": [\n          0,\n          64,\n          69,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2137568\",\n        \"name\": \"榴花红\",\n        \"tra_name\": \"榴花紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"líu huā hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          213,\n          75,\n          68\n        ],\n        \"hex\": \"#D54B44\",\n        \"cmyk\": [\n          0,\n          65,\n          68,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23712261\",\n        \"name\": \"柿子色\",\n        \"tra_name\": \"柿子色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shì zǐ sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          122,\n          61\n        ],\n        \"hex\": \"#ED7A3D\",\n        \"cmyk\": [\n          0,\n          49,\n          74,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23110563\",\n        \"name\": \"桔红\",\n        \"tra_name\": \"桔紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jié hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          231,\n          105,\n          63\n        ],\n        \"hex\": \"#E7693F\",\n        \"cmyk\": [\n          0,\n          55,\n          73,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23311690\",\n        \"name\": \"红扇贝色\",\n        \"tra_name\": \"紅扇貝色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hóng shàn bèi sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          233,\n          116,\n          90\n        ],\n        \"hex\": \"#E9745A\",\n        \"cmyk\": [\n          0,\n          50,\n          61,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24814585\",\n        \"name\": \"粉橙色\",\n        \"tra_name\": \"粉橙色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fěn chéng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          145,\n          85\n        ],\n        \"hex\": \"#F89155\",\n        \"cmyk\": [\n          0,\n          42,\n          66,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24011768\",\n        \"name\": \"金红\",\n        \"tra_name\": \"金紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jīn hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          117,\n          68\n        ],\n        \"hex\": \"#F07544\",\n        \"cmyk\": [\n          0,\n          51,\n          72,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22811766\",\n        \"name\": \"雄精\",\n        \"tra_name\": \"雄精\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xióng jīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          228,\n          117,\n          66\n        ],\n        \"hex\": \"#E47542\",\n        \"cmyk\": [\n          0,\n          49,\n          71,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"252177170\",\n        \"name\": \"十様锦\",\n        \"tra_name\": \"十様錦\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shí yàng jǐn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          177,\n          170\n        ],\n        \"hex\": \"#FCB1AA\",\n        \"cmyk\": [\n          0,\n          30,\n          33,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"244169170\",\n        \"name\": \"凤仙粉\",\n        \"tra_name\": \"鳳仙粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fèng xiān fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          244,\n          169,\n          170\n        ],\n        \"hex\": \"#F4A9AA\",\n        \"cmyk\": [\n          0,\n          31,\n          30,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"241199190\",\n        \"name\": \"肉粉\",\n        \"tra_name\": \"肉粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"ròu fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          199,\n          190\n        ],\n        \"hex\": \"#F1C7BE\",\n        \"cmyk\": [\n          0,\n          17,\n          21,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1829170\",\n        \"name\": \"釉红\",\n        \"tra_name\": \"釉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yòu hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          182,\n          91,\n          70\n        ],\n        \"hex\": \"#B65B46\",\n        \"cmyk\": [\n          0,\n          50,\n          62,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"218149131\",\n        \"name\": \"蛤蜊粉\",\n        \"tra_name\": \"蛤蜊粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"há lí fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          218,\n          149,\n          131\n        ],\n        \"hex\": \"#DA9583\",\n        \"cmyk\": [\n          0,\n          32,\n          40,\n          15\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"772525\",\n        \"name\": \"锈红\",\n        \"tra_name\": \"銹紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"xìu hóng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          77,\n          25,\n          25\n        ],\n        \"hex\": \"#4D1919\",\n        \"cmyk\": [\n          0,\n          68,\n          68,\n          70\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1698382\",\n        \"name\": \"土红\",\n        \"tra_name\": \"土紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tǔ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          169,\n          83,\n          82\n        ],\n        \"hex\": \"#A95352\",\n        \"cmyk\": [\n          0,\n          51,\n          51,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19210773\",\n        \"name\": \"玛瑙色\",\n        \"tra_name\": \"瑪瑙色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"mǎ nǎo sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          192,\n          107,\n          73\n        ],\n        \"hex\": \"#C06B49\",\n        \"cmyk\": [\n          0,\n          44,\n          62,\n          25\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19512695\",\n        \"name\": \"赭石色\",\n        \"tra_name\": \"赭石色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhě shí sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          195,\n          126,\n          95\n        ],\n        \"hex\": \"#C37E5F\",\n        \"cmyk\": [\n          0,\n          35,\n          51,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18111188\",\n        \"name\": \"赭红\",\n        \"tra_name\": \"赭紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhě hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          181,\n          111,\n          88\n        ],\n        \"hex\": \"#B56F58\",\n        \"cmyk\": [\n          0,\n          39,\n          51,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19313283\",\n        \"name\": \"红狐色\",\n        \"tra_name\": \"紅狐色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hóng hú sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          193,\n          132,\n          83\n        ],\n        \"hex\": \"#C18453\",\n        \"cmyk\": [\n          0,\n          32,\n          57,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"15512698\",\n        \"name\": \"中驼\",\n        \"tra_name\": \"中駝\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhōng tuó\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          155,\n          126,\n          98\n        ],\n        \"hex\": \"#9B7E62\",\n        \"cmyk\": [\n          0,\n          19,\n          37,\n          39\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"17911573\",\n        \"name\": \"树皮色\",\n        \"tra_name\": \"樹皮色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shù pí sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          179,\n          115,\n          73\n        ],\n        \"hex\": \"#B37349\",\n        \"cmyk\": [\n          0,\n          36,\n          59,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18713393\",\n        \"name\": \"桂皮色\",\n        \"tra_name\": \"桂皮色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"gùi pí sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          187,\n          133,\n          93\n        ],\n        \"hex\": \"#BB855D\",\n        \"cmyk\": [\n          0,\n          29,\n          50,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"227181135\",\n        \"name\": \"土布色\",\n        \"tra_name\": \"土布色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"tǔ bù sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          227,\n          181,\n          135\n        ],\n        \"hex\": \"#E3B587\",\n        \"cmyk\": [\n          0,\n          20,\n          41,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"225189162\",\n        \"name\": \"米红\",\n        \"tra_name\": \"米紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"mǐ hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          225,\n          189,\n          162\n        ],\n        \"hex\": \"#E1BDA2\",\n        \"cmyk\": [\n          0,\n          16,\n          28,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"215155117\",\n        \"name\": \"玛瑙粉\",\n        \"tra_name\": \"瑪瑙粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"mǎ nǎo fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          215,\n          155,\n          117\n        ],\n        \"hex\": \"#D79B75\",\n        \"cmyk\": [\n          0,\n          28,\n          46,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"216173133\",\n        \"name\": \"骆驼色\",\n        \"tra_name\": \"駱駝色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"luò tuó sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          216,\n          173,\n          133\n        ],\n        \"hex\": \"#D8AD85\",\n        \"cmyk\": [\n          0,\n          20,\n          38,\n          15\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"234205209\",\n        \"name\": \"浅血牙\",\n        \"tra_name\": \"浅血牙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"qiǎn xiě yá\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          205,\n          209\n        ],\n        \"hex\": \"#EACDD1\",\n        \"cmyk\": [\n          0,\n          12,\n          11,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"218197179\",\n        \"name\": \"粉棕\",\n        \"tra_name\": \"粉棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"fěn zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          218,\n          197,\n          179\n        ],\n        \"hex\": \"#DAC5B3\",\n        \"cmyk\": [\n          0,\n          10,\n          18,\n          15\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"210174140\",\n        \"name\": \"肉棕\",\n        \"tra_name\": \"肉棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"ròu zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          174,\n          140\n        ],\n        \"hex\": \"#D2AE8C\",\n        \"cmyk\": [\n          0,\n          17,\n          33,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13710880\",\n        \"name\": \"珈琲棕\",\n        \"tra_name\": \"珈琲棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiā bèi zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          137,\n          108,\n          80\n        ],\n        \"hex\": \"#896C50\",\n        \"cmyk\": [\n          0,\n          21,\n          42,\n          46\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1107764\",\n        \"name\": \"烟色\",\n        \"tra_name\": \"煙色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          110,\n          77,\n          64\n        ],\n        \"hex\": \"#6E4D40\",\n        \"cmyk\": [\n          0,\n          30,\n          42,\n          57\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1329878\",\n        \"name\": \"朱古力色\",\n        \"tra_name\": \"朱古力色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhū gǔ lì sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          132,\n          98,\n          78\n        ],\n        \"hex\": \"#84624E\",\n        \"cmyk\": [\n          0,\n          26,\n          41,\n          48\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1374863\",\n        \"name\": \"枣红\",\n        \"tra_name\": \"棗紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zǎo hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          137,\n          48,\n          63\n        ],\n        \"hex\": \"#89303F\",\n        \"cmyk\": [\n          0,\n          65,\n          54,\n          46\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1247564\",\n        \"name\": \"棕红\",\n        \"tra_name\": \"棕紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zōng hóng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          124,\n          75,\n          64\n        ],\n        \"hex\": \"#7C4B40\",\n        \"cmyk\": [\n          0,\n          40,\n          48,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1196156\",\n        \"name\": \"深釉红\",\n        \"tra_name\": \"深釉紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shēn yòu hóng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          119,\n          61,\n          56\n        ],\n        \"hex\": \"#773D38\",\n        \"cmyk\": [\n          0,\n          49,\n          53,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1005265\",\n        \"name\": \"深烟红\",\n        \"tra_name\": \"深煙紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shēn yān hóng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          100,\n          52,\n          65\n        ],\n        \"hex\": \"#643441\",\n        \"cmyk\": [\n          0,\n          48,\n          35,\n          61\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1238680\",\n        \"name\": \"珈琲色\",\n        \"tra_name\": \"珈琲色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiā bèi sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          123,\n          86,\n          80\n        ],\n        \"hex\": \"#7B5650\",\n        \"cmyk\": [\n          0,\n          30,\n          35,\n          52\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1218283\",\n        \"name\": \"豆棕\",\n        \"tra_name\": \"豆棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dòu zōng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          121,\n          82,\n          83\n        ],\n        \"hex\": \"#795253\",\n        \"cmyk\": [\n          0,\n          32,\n          31,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1238663\",\n        \"name\": \"罗汉果色\",\n        \"tra_name\": \"羅漢果色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"luó hàn guǒ sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          123,\n          86,\n          63\n        ],\n        \"hex\": \"#7B563F\",\n        \"cmyk\": [\n          0,\n          30,\n          49,\n          52\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1118780\",\n        \"name\": \"深栗色\",\n        \"tra_name\": \"深栗色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shēn lì sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          111,\n          87,\n          80\n        ],\n        \"hex\": \"#6F5750\",\n        \"cmyk\": [\n          0,\n          22,\n          28,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1148356\",\n        \"name\": \"醤色\",\n        \"tra_name\": \"醤色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"jiàng sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          114,\n          83,\n          56\n        ],\n        \"hex\": \"#725338\",\n        \"cmyk\": [\n          0,\n          27,\n          51,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"857159\",\n        \"name\": \"深褐色\",\n        \"tra_name\": \"深褐色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shēn hé sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          85,\n          71,\n          59\n        ],\n        \"hex\": \"#55473B\",\n        \"cmyk\": [\n          0,\n          16,\n          31,\n          67\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"907676\",\n        \"name\": \"深烟\",\n        \"tra_name\": \"深煙\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"shēn yān\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          90,\n          76,\n          76\n        ],\n        \"hex\": \"#5A4C4C\",\n        \"cmyk\": [\n          0,\n          16,\n          16,\n          65\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"847271\",\n        \"name\": \"烟栗色\",\n        \"tra_name\": \"煙栗色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān lì sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          84,\n          72,\n          71\n        ],\n        \"hex\": \"#544847\",\n        \"cmyk\": [\n          0,\n          14,\n          15,\n          67\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"798385\",\n        \"name\": \"红皀\",\n        \"tra_name\": \"紅皀\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"hóng bī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          79,\n          83,\n          85\n        ],\n        \"hex\": \"#4F5355\",\n        \"cmyk\": [\n          7,\n          2,\n          0,\n          67\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23012242\",\n        \"name\": \"橙色\",\n        \"tra_name\": \"橙色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"chéng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          230,\n          122,\n          42\n        ],\n        \"hex\": \"#E67A2A\",\n        \"cmyk\": [\n          0,\n          47,\n          82,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"245193155\",\n        \"name\": \"蝶粉\",\n        \"tra_name\": \"蝶粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"dié fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          245,\n          193,\n          155\n        ],\n        \"hex\": \"#F5C19B\",\n        \"cmyk\": [\n          0,\n          21,\n          37,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"245206190\",\n        \"name\": \"果肉色\",\n        \"tra_name\": \"果肉色\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"guǒ ròu sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          245,\n          206,\n          190\n        ],\n        \"hex\": \"#F5CEBE\",\n        \"cmyk\": [\n          0,\n          16,\n          22,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"188165144\",\n        \"name\": \"纸棕\",\n        \"tra_name\": \"紙棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhǐ zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          188,\n          165,\n          144\n        ],\n        \"hex\": \"#BCA590\",\n        \"cmyk\": [\n          0,\n          12,\n          23,\n          26\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"193162153\",\n        \"name\": \"奶棕\",\n        \"tra_name\": \"奶棕\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"nǎi zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          193,\n          162,\n          153\n        ],\n        \"hex\": \"#C1A299\",\n        \"cmyk\": [\n          0,\n          16,\n          21,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1329051\",\n        \"name\": \"赭石\",\n        \"tra_name\": \"赭石\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhě shí\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          132,\n          90,\n          51\n        ],\n        \"hex\": \"#845A33\",\n        \"cmyk\": [\n          0,\n          32,\n          61,\n          48\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2557031\",\n        \"name\": \"朱砂\",\n        \"tra_name\": \"硃砂\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhū shā\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          70,\n          31\n        ],\n        \"hex\": \"#FF461F\",\n        \"cmyk\": [\n          0,\n          73,\n          88,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24310456\",\n        \"name\": \"朱磦\",\n        \"tra_name\": \"朱磦\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"zhū biāo\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          243,\n          104,\n          56\n        ],\n        \"hex\": \"#F36838\",\n        \"cmyk\": [\n          0,\n          57,\n          77,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25571119\",\n        \"name\": \"洋粉\",\n        \"tra_name\": \"洋粉\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yáng fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          71,\n          119\n        ],\n        \"hex\": \"#FF4777\",\n        \"cmyk\": [\n          0,\n          72,\n          53,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"190039\",\n        \"name\": \"殷红\",\n        \"tra_name\": \"殷紅\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yān hóng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          190,\n          0,\n          39\n        ],\n        \"hex\": \"#BE0027\",\n        \"cmyk\": [\n          0,\n          100,\n          79,\n          25\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1913642\",\n        \"name\": \"银朱\",\n        \"tra_name\": \"銀硃\",\n        \"color_series\": \"red\",\n        \"pinyin\": \"yín zhū\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          191,\n          36,\n          42\n        ],\n        \"hex\": \"#BF242A\",\n        \"cmyk\": [\n          0,\n          81,\n          78,\n          25\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ],\n    \"purple\": [\n      {\n        \"id\": \"1406786\",\n        \"name\": \"绛紫\",\n        \"tra_name\": \"絳紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jiàng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          140,\n          67,\n          86\n        ],\n        \"hex\": \"#8C4356\",\n        \"cmyk\": [\n          0,\n          52,\n          39,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"8766102\",\n        \"name\": \"黛紫\",\n        \"tra_name\": \"黛紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"dài zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          87,\n          66,\n          102\n        ],\n        \"hex\": \"#574266\",\n        \"cmyk\": [\n          15,\n          35,\n          0,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"14175187\",\n        \"name\": \"紫色\",\n        \"tra_name\": \"紫色\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          141,\n          75,\n          187\n        ],\n        \"hex\": \"#8D4BBB\",\n        \"cmyk\": [\n          25,\n          60,\n          0,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1298499\",\n        \"name\": \"紫酱\",\n        \"tra_name\": \"紫醬\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ jiàng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          129,\n          84,\n          99\n        ],\n        \"hex\": \"#815463\",\n        \"cmyk\": [\n          0,\n          35,\n          23,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"12984118\",\n        \"name\": \"酱紫\",\n        \"tra_name\": \"醬紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jiàng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          129,\n          84,\n          118\n        ],\n        \"hex\": \"#815476\",\n        \"cmyk\": [\n          0,\n          35,\n          9,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"763427\",\n        \"name\": \"紫檀\",\n        \"tra_name\": \"紫檀\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ tán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          76,\n          34,\n          27\n        ],\n        \"hex\": \"#4C221B\",\n        \"cmyk\": [\n          0,\n          55,\n          64,\n          70\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"86079\",\n        \"name\": \"紫棠\",\n        \"tra_name\": \"紫棠\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ táng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          86,\n          0,\n          79\n        ],\n        \"hex\": \"#56004F\",\n        \"cmyk\": [\n          0,\n          100,\n          8,\n          66\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"204164227\",\n        \"name\": \"丁香色\",\n        \"tra_name\": \"丁香色\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"dīng xiāng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          204,\n          164,\n          227\n        ],\n        \"hex\": \"#CCA4E3\",\n        \"cmyk\": [\n          10,\n          28,\n          0,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"11494130\",\n        \"name\": \"乌色\",\n        \"tra_name\": \"烏色\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"wū sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          114,\n          94,\n          130\n        ],\n        \"hex\": \"#725E82\",\n        \"cmyk\": [\n          12,\n          28,\n          0,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"574765\",\n        \"name\": \"乌黑\",\n        \"tra_name\": \"烏黑\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"wū hēi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          57,\n          47,\n          65\n        ],\n        \"hex\": \"#392F41\",\n        \"cmyk\": [\n          12,\n          28,\n          0,\n          75\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"934949\",\n        \"name\": \"貂紫\",\n        \"tra_name\": \"貂紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"diāo zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          93,\n          49,\n          49\n        ],\n        \"hex\": \"#5D3131\",\n        \"cmyk\": [\n          36,\n          81,\n          64,\n          54\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"923435\",\n        \"name\": \"暗玉紫\",\n        \"tra_name\": \"暗玉紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"àn yù zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          92,\n          34,\n          35\n        ],\n        \"hex\": \"#5C2223\",\n        \"cmyk\": [\n          35,\n          94,\n          77,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"902527\",\n        \"name\": \"栗紫\",\n        \"tra_name\": \"慄紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"lì zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          90,\n          25,\n          27\n        ],\n        \"hex\": \"#5A191B\",\n        \"cmyk\": [\n          35,\n          100,\n          85,\n          54\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"901822\",\n        \"name\": \"葡萄酱紫\",\n        \"tra_name\": \"葡萄醬紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"pú táo jiàng zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          90,\n          18,\n          22\n        ],\n        \"hex\": \"#5A1216\",\n        \"cmyk\": [\n          35,\n          100,\n          80,\n          54\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"763136\",\n        \"name\": \"葡萄紫\",\n        \"tra_name\": \"葡萄紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"pú táo zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          76,\n          31,\n          36\n        ],\n        \"hex\": \"#4C1F24\",\n        \"cmyk\": [\n          39,\n          92,\n          67,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"771624\",\n        \"name\": \"酱紫\",\n        \"tra_name\": \"醬紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jiàng zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          77,\n          16,\n          24\n        ],\n        \"hex\": \"#4D1018\",\n        \"cmyk\": [\n          39,\n          100,\n          79,\n          63\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"843036\",\n        \"name\": \"猪肝紫\",\n        \"tra_name\": \"豬肝紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zhū gān zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          84,\n          30,\n          36\n        ],\n        \"hex\": \"#541E24\",\n        \"cmyk\": [\n          36,\n          95,\n          71,\n          59\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"801022\",\n        \"name\": \"金鱼紫\",\n        \"tra_name\": \"金魚紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jīn yú zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          80,\n          10,\n          22\n        ],\n        \"hex\": \"#500A16\",\n        \"cmyk\": [\n          38,\n          100,\n          81,\n          61\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"982236\",\n        \"name\": \"甘蔗紫\",\n        \"tra_name\": \"甘蔗紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"gān zhè zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          98,\n          22,\n          36\n        ],\n        \"hex\": \"#621624\",\n        \"cmyk\": [\n          33,\n          100,\n          75,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"99728\",\n        \"name\": \"石竹紫\",\n        \"tra_name\": \"石竹紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"shí zhú zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          99,\n          7,\n          28\n        ],\n        \"hex\": \"#63071C\",\n        \"cmyk\": [\n          32,\n          100,\n          84,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"482228\",\n        \"name\": \"卵石紫\",\n        \"tra_name\": \"卵石紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"luǎn shí zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          48,\n          22,\n          28\n        ],\n        \"hex\": \"#30161C\",\n        \"cmyk\": [\n          52,\n          88,\n          58,\n          81\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"431822\",\n        \"name\": \"李紫\",\n        \"tra_name\": \"李紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"lǐ zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          43,\n          18,\n          22\n        ],\n        \"hex\": \"#2B1216\",\n        \"cmyk\": [\n          56,\n          88,\n          62,\n          84\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1492872\",\n        \"name\": \"菜头紫\",\n        \"tra_name\": \"菜頭紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"cài tóu zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          149,\n          28,\n          72\n        ],\n        \"hex\": \"#951C48\",\n        \"cmyk\": [\n          24,\n          99,\n          52,\n          19\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"982952\",\n        \"name\": \"鹞冠紫\",\n        \"tra_name\": \"鷂冠紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"yào guān zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          98,\n          29,\n          52\n        ],\n        \"hex\": \"#621D34\",\n        \"cmyk\": [\n          34,\n          97,\n          54,\n          50\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"563341\",\n        \"name\": \"磨石紫\",\n        \"tra_name\": \"磨石紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"mó shí zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          56,\n          33,\n          41\n        ],\n        \"hex\": \"#382129\",\n        \"cmyk\": [\n          53,\n          81,\n          50,\n          74\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"562536\",\n        \"name\": \"檀紫\",\n        \"tra_name\": \"檀紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"tán zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          56,\n          25,\n          36\n        ],\n        \"hex\": \"#381924\",\n        \"cmyk\": [\n          48,\n          90,\n          50,\n          76\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"512030\",\n        \"name\": \"火鹅紫\",\n        \"tra_name\": \"火鵝紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"huǒ é zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          51,\n          20,\n          30\n        ],\n        \"hex\": \"#33141E\",\n        \"cmyk\": [\n          50,\n          91,\n          54,\n          79\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"491527\",\n        \"name\": \"墨紫\",\n        \"tra_name\": \"墨紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"mò zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          49,\n          15,\n          27\n        ],\n        \"hex\": \"#310F1B\",\n        \"cmyk\": [\n          53,\n          92,\n          55,\n          81\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16869107\",\n        \"name\": \"洋葱紫\",\n        \"tra_name\": \"洋蔥紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"yáng cōng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          168,\n          69,\n          107\n        ],\n        \"hex\": \"#A8456B\",\n        \"cmyk\": [\n          22,\n          83,\n          34,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"753047\",\n        \"name\": \"海象紫\",\n        \"tra_name\": \"海象紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"hǎi xiàng zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          75,\n          30,\n          47\n        ],\n        \"hex\": \"#4B1E2F\",\n        \"cmyk\": [\n          40,\n          92,\n          47,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"702241\",\n        \"name\": \"绀紫\",\n        \"tra_name\": \"紺紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"gàn zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          70,\n          22,\n          41\n        ],\n        \"hex\": \"#461629\",\n        \"cmyk\": [\n          41,\n          97,\n          49,\n          68\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"681437\",\n        \"name\": \"古铜紫\",\n        \"tra_name\": \"古銅紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"gǔ tóng zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          68,\n          14,\n          37\n        ],\n        \"hex\": \"#440E25\",\n        \"cmyk\": [\n          42,\n          99,\n          51,\n          69\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"233215223\",\n        \"name\": \"丁香淡紫\",\n        \"tra_name\": \"丁香淡紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"dīng xiāng dàn zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          233,\n          215,\n          223\n        ],\n        \"hex\": \"#E9D7DF\",\n        \"cmyk\": [\n          7,\n          20,\n          8,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"209194211\",\n        \"name\": \"淡牵牛紫\",\n        \"tra_name\": \"淡牽牛紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"dàn qiān niú zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          209,\n          194,\n          211\n        ],\n        \"hex\": \"#D1C2D3\",\n        \"cmyk\": [\n          19,\n          27,\n          9,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"200173196\",\n        \"name\": \"凤信紫\",\n        \"tra_name\": \"鳳信紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"fèng xìn zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          200,\n          173,\n          196\n        ],\n        \"hex\": \"#C8ADC4\",\n        \"cmyk\": [\n          21,\n          37,\n          12,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"192142175\",\n        \"name\": \"萝兰紫\",\n        \"tra_name\": \"蘿蘭紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"luó lán zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          192,\n          142,\n          175\n        ],\n        \"hex\": \"#C08EAF\",\n        \"cmyk\": [\n          23,\n          53,\n          14,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18647123\",\n        \"name\": \"玫瑰紫\",\n        \"tra_name\": \"玫瑰紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"méi guī zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          186,\n          47,\n          123\n        ],\n        \"hex\": \"#BA2F7B\",\n        \"cmyk\": [\n          18,\n          91,\n          18,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"128118163\",\n        \"name\": \"藤萝紫\",\n        \"tra_name\": \"藤蘿紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"téng luó zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          128,\n          118,\n          163\n        ],\n        \"hex\": \"#8076A3\",\n        \"cmyk\": [\n          58,\n          56,\n          17,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"128109158\",\n        \"name\": \"槿紫\",\n        \"tra_name\": \"槿紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jǐn zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          128,\n          109,\n          158\n        ],\n        \"hex\": \"#806D9E\",\n        \"cmyk\": [\n          57,\n          62,\n          16,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"12992148\",\n        \"name\": \"蕈紫\",\n        \"tra_name\": \"蕈紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"xùn zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          129,\n          92,\n          148\n        ],\n        \"hex\": \"#815C94\",\n        \"cmyk\": [\n          56,\n          72,\n          15,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"12960133\",\n        \"name\": \"桔梗紫\",\n        \"tra_name\": \"桔梗紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jié gěng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          129,\n          60,\n          133\n        ],\n        \"hex\": \"#813C85\",\n        \"cmyk\": [\n          54,\n          89,\n          12,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"12622113\",\n        \"name\": \"芝兰紫\",\n        \"tra_name\": \"芝蘭紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zhī lán zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          126,\n          22,\n          113\n        ],\n        \"hex\": \"#7E1671\",\n        \"cmyk\": [\n          3,\n          26,\n          10,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"192111152\",\n        \"name\": \"樱草紫\",\n        \"tra_name\": \"櫻草紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"yīng cǎo zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          192,\n          111,\n          152\n        ],\n        \"hex\": \"#C06F98\",\n        \"cmyk\": [\n          19,\n          68,\n          18,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"15530100\",\n        \"name\": \"苋菜紫\",\n        \"tra_name\": \"莧菜紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"xiàn cài zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          155,\n          30,\n          100\n        ],\n        \"hex\": \"#9B1E64\",\n        \"cmyk\": [\n          27,\n          97,\n          27,\n          14\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"224200209\",\n        \"name\": \"淡青紫\",\n        \"tra_name\": \"淡青紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"dàn qīng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          224,\n          200,\n          209\n        ],\n        \"hex\": \"#E0C8D1\",\n        \"cmyk\": [\n          10,\n          27,\n          11,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"188132168\",\n        \"name\": \"青蛤壳紫\",\n        \"tra_name\": \"青蛤殼紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"qīng há ké zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          188,\n          132,\n          168\n        ],\n        \"hex\": \"#BC84A8\",\n        \"cmyk\": [\n          24,\n          58,\n          15,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"173101152\",\n        \"name\": \"豆蔻紫\",\n        \"tra_name\": \"豆蔻紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"dòu kòu zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          173,\n          101,\n          152\n        ],\n        \"hex\": \"#AD6598\",\n        \"cmyk\": [\n          31,\n          71,\n          15,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16392143\",\n        \"name\": \"扁豆紫\",\n        \"tra_name\": \"扁豆紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"biǎn dòu zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          163,\n          92,\n          143\n        ],\n        \"hex\": \"#A35C8F\",\n        \"cmyk\": [\n          35,\n          75,\n          18,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"15254128\",\n        \"name\": \"芥花紫\",\n        \"tra_name\": \"芥花紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jiè huā zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          152,\n          54,\n          128\n        ],\n        \"hex\": \"#983680\",\n        \"cmyk\": [\n          39,\n          91,\n          15,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13766118\",\n        \"name\": \"芓紫\",\n        \"tra_name\": \"芓紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zì zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          137,\n          66,\n          118\n        ],\n        \"hex\": \"#894276\",\n        \"cmyk\": [\n          44,\n          85,\n          24,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"12632101\",\n        \"name\": \"葛巾紫\",\n        \"tra_name\": \"葛巾紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"gé jīn zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          126,\n          32,\n          101\n        ],\n        \"hex\": \"#7E2065\",\n        \"cmyk\": [\n          45,\n          99,\n          24,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1042382\",\n        \"name\": \"牵牛紫\",\n        \"tra_name\": \"牽牛紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"qiān niú zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          104,\n          23,\n          82\n        ],\n        \"hex\": \"#681752\",\n        \"cmyk\": [\n          49,\n          100,\n          29,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"784264\",\n        \"name\": \"龙睛鱼紫\",\n        \"tra_name\": \"龍睛魚紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"lóng jīng yú zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          78,\n          42,\n          64\n        ],\n        \"hex\": \"#4E2A40\",\n        \"cmyk\": [\n          55,\n          87,\n          41,\n          52\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"652853\",\n        \"name\": \"荸荠紫\",\n        \"tra_name\": \"荸薺紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"bí qí zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          65,\n          28,\n          53\n        ],\n        \"hex\": \"#411C35\",\n        \"cmyk\": [\n          58,\n          96,\n          40,\n          61\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"301929\",\n        \"name\": \"鸟梅紫\",\n        \"tra_name\": \"鳥梅紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"niǎo méi zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          30,\n          19,\n          29\n        ],\n        \"hex\": \"#1E131D\",\n        \"cmyk\": [\n          81,\n          87,\n          54,\n          84\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"281326\",\n        \"name\": \"深牵牛紫\",\n        \"tra_name\": \"深牽牛紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"shēn qiān niú zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          28,\n          13,\n          26\n        ],\n        \"hex\": \"#1C0D1A\",\n        \"cmyk\": [\n          83,\n          87,\n          55,\n          86\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"204204214\",\n        \"name\": \"远山紫\",\n        \"tra_name\": \"遠山紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"yuǎn shān zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          204,\n          204,\n          214\n        ],\n        \"hex\": \"#CCCCD6\",\n        \"cmyk\": [\n          23,\n          18,\n          12,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"167168189\",\n        \"name\": \"淡蓝紫\",\n        \"tra_name\": \"淡藍紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"dàn lán zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          167,\n          168,\n          189\n        ],\n        \"hex\": \"#A7A8BD\",\n        \"cmyk\": [\n          39,\n          31,\n          17,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"97100159\",\n        \"name\": \"山梗紫\",\n        \"tra_name\": \"山梗紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"shān gěng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          97,\n          100,\n          159\n        ],\n        \"hex\": \"#61649F\",\n        \"cmyk\": [\n          74,\n          64,\n          14,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"116117155\",\n        \"name\": \"螺甸紫\",\n        \"tra_name\": \"螺甸紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"luó diān zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          116,\n          117,\n          155\n        ],\n        \"hex\": \"#74759B\",\n        \"cmyk\": [\n          63,\n          53,\n          22,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"8282136\",\n        \"name\": \"野菊紫\",\n        \"tra_name\": \"野菊紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"yě jú zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          82,\n          82,\n          136\n        ],\n        \"hex\": \"#525288\",\n        \"cmyk\": [\n          80,\n          73,\n          21,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"4649124\",\n        \"name\": \"满天星紫\",\n        \"tra_name\": \"滿天星紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"mǎn tiān xīng zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          46,\n          49,\n          124\n        ],\n        \"hex\": \"#2E317C\",\n        \"cmyk\": [\n          100,\n          93,\n          21,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"484775\",\n        \"name\": \"野葡萄紫\",\n        \"tra_name\": \"野葡萄紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"yě pú táo zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          48,\n          47,\n          75\n        ],\n        \"hex\": \"#302F4B\",\n        \"cmyk\": [\n          91,\n          84,\n          40,\n          43\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"625665\",\n        \"name\": \"剑锋紫\",\n        \"tra_name\": \"劍鋒紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jiàn fēng zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          62,\n          56,\n          65\n        ],\n        \"hex\": \"#3E3841\",\n        \"cmyk\": [\n          70,\n          69,\n          49,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"504759\",\n        \"name\": \"龙葵紫\",\n        \"tra_name\": \"龍葵紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"lóng kuí zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          50,\n          47,\n          59\n        ],\n        \"hex\": \"#322F3B\",\n        \"cmyk\": [\n          79,\n          74,\n          49,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"343246\",\n        \"name\": \"暗龙胆紫\",\n        \"tra_name\": \"暗龍膽紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"àn lóng dǎn zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          34,\n          32,\n          46\n        ],\n        \"hex\": \"#22202E\",\n        \"cmyk\": [\n          90,\n          84,\n          50,\n          69\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"313264\",\n        \"name\": \"晶石紫\",\n        \"tra_name\": \"晶石紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jīng shí zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          31,\n          32,\n          64\n        ],\n        \"hex\": \"#1F2040\",\n        \"cmyk\": [\n          98,\n          93,\n          48,\n          73\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"191736\",\n        \"name\": \"暗蓝紫\",\n        \"tra_name\": \"暗藍紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"àn lán zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          19,\n          17,\n          36\n        ],\n        \"hex\": \"#131124\",\n        \"cmyk\": [\n          100,\n          94,\n          52,\n          77\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"238165209\",\n        \"name\": \"紫薇花\",\n        \"tra_name\": \"紫薇花\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ wéi huā\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          165,\n          209\n        ],\n        \"hex\": \"#EEA5D1\",\n        \"cmyk\": [\n          0,\n          31,\n          12,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"195166203\",\n        \"name\": \"紫水晶\",\n        \"tra_name\": \"紫水晶\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ shǔi jīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          195,\n          166,\n          203\n        ],\n        \"hex\": \"#C3A6CB\",\n        \"cmyk\": [\n          4,\n          18,\n          0,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"171150197\",\n        \"name\": \"浅石英紫\",\n        \"tra_name\": \"浅石英紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"qiǎn shí yīng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          171,\n          150,\n          197\n        ],\n        \"hex\": \"#AB96C5\",\n        \"cmyk\": [\n          13,\n          24,\n          0,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"210148211\",\n        \"name\": \"浅凤仙紫\",\n        \"tra_name\": \"浅鳳仙紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"qiǎn fèng xiān zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          148,\n          211\n        ],\n        \"hex\": \"#D294D3\",\n        \"cmyk\": [\n          0,\n          30,\n          0,\n          17\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"163129186\",\n        \"name\": \"木槿紫\",\n        \"tra_name\": \"木槿紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"mù jǐn zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          163,\n          129,\n          186\n        ],\n        \"hex\": \"#A381BA\",\n        \"cmyk\": [\n          12,\n          31,\n          0,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"222122177\",\n        \"name\": \"长春花色\",\n        \"tra_name\": \"長春花色\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"cháng chūn huā sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          222,\n          122,\n          177\n        ],\n        \"hex\": \"#DE7AB1\",\n        \"cmyk\": [\n          0,\n          45,\n          20,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"156102128\",\n        \"name\": \"洋葱紫\",\n        \"tra_name\": \"洋葱紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"yáng cōng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          156,\n          102,\n          128\n        ],\n        \"hex\": \"#9C6680\",\n        \"cmyk\": [\n          0,\n          35,\n          18,\n          39\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6649113\",\n        \"name\": \"龙胆紫\",\n        \"tra_name\": \"龍胆紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"lóng dǎn zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          66,\n          49,\n          113\n        ],\n        \"hex\": \"#423171\",\n        \"cmyk\": [\n          42,\n          57,\n          0,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1217290\",\n        \"name\": \"雪紫\",\n        \"tra_name\": \"雪紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"xuě zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          121,\n          72,\n          90\n        ],\n        \"hex\": \"#79485A\",\n        \"cmyk\": [\n          0,\n          40,\n          26,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1656788\",\n        \"name\": \"紫粉\",\n        \"tra_name\": \"紫粉\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          165,\n          67,\n          88\n        ],\n        \"hex\": \"#A54358\",\n        \"cmyk\": [\n          0,\n          59,\n          47,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"14980159\",\n        \"name\": \"青莲紫\",\n        \"tra_name\": \"青蓮紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"qīng lián zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          149,\n          80,\n          159\n        ],\n        \"hex\": \"#95509F\",\n        \"cmyk\": [\n          6,\n          50,\n          0,\n          38\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16232118\",\n        \"name\": \"牵牛紫\",\n        \"tra_name\": \"牽牛紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"qiān níu zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          162,\n          32,\n          118\n        ],\n        \"hex\": \"#A22076\",\n        \"cmyk\": [\n          0,\n          80,\n          27,\n          36\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1144665\",\n        \"name\": \"紫绛色\",\n        \"tra_name\": \"紫絳色\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ jiàng sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          114,\n          46,\n          65\n        ],\n        \"hex\": \"#722E41\",\n        \"cmyk\": [\n          0,\n          60,\n          43,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1146169\",\n        \"name\": \"紫铜色\",\n        \"tra_name\": \"紫銅色\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ tóng sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          114,\n          61,\n          69\n        ],\n        \"hex\": \"#723D45\",\n        \"cmyk\": [\n          0,\n          46,\n          39,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1054043\",\n        \"name\": \"枣紫\",\n        \"tra_name\": \"棗紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǎo zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          105,\n          40,\n          43\n        ],\n        \"hex\": \"#69282B\",\n        \"cmyk\": [\n          0,\n          62,\n          59,\n          59\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"803843\",\n        \"name\": \"黒紫\",\n        \"tra_name\": \"黒紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"hēi zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          80,\n          38,\n          43\n        ],\n        \"hex\": \"#50262B\",\n        \"cmyk\": [\n          0,\n          52,\n          46,\n          69\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13590114\",\n        \"name\": \"紫扇贝色\",\n        \"tra_name\": \"紫扇貝色\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"zǐ shàn bèi sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          135,\n          90,\n          114\n        ],\n        \"hex\": \"#875A72\",\n        \"cmyk\": [\n          0,\n          33,\n          16,\n          47\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1127778\",\n        \"name\": \"绛紫\",\n        \"tra_name\": \"絳紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"jiàng zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          112,\n          77,\n          78\n        ],\n        \"hex\": \"#704D4E\",\n        \"cmyk\": [\n          0,\n          31,\n          30,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1037380\",\n        \"name\": \"茄皮紫\",\n        \"tra_name\": \"茄皮紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"qié pí zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          103,\n          73,\n          80\n        ],\n        \"hex\": \"#674950\",\n        \"cmyk\": [\n          0,\n          29,\n          22,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"196195203\",\n        \"name\": \"浅藤紫\",\n        \"tra_name\": \"浅藤紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"qiǎn téng zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          196,\n          195,\n          203\n        ],\n        \"hex\": \"#C4C3CB\",\n        \"cmyk\": [\n          3,\n          4,\n          0,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"139101139\",\n        \"name\": \"凤仙紫\",\n        \"tra_name\": \"鳳仙紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"fèng xiān zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          139,\n          101,\n          139\n        ],\n        \"hex\": \"#8B658B\",\n        \"cmyk\": [\n          0,\n          27,\n          0,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"10587118\",\n        \"name\": \"丁香紫\",\n        \"tra_name\": \"丁香紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"dīng xiāng zǐ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          105,\n          87,\n          118\n        ],\n        \"hex\": \"#695776\",\n        \"cmyk\": [\n          11,\n          26,\n          0,\n          54\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"140144185\",\n        \"name\": \"闪蝶紫\",\n        \"tra_name\": \"閃蝶紫\",\n        \"color_series\": \"purple\",\n        \"pinyin\": \"shǎn dié zǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          140,\n          144,\n          185\n        ],\n        \"hex\": \"#8C90B9\",\n        \"cmyk\": [\n          24,\n          22,\n          0,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ],\n    \"yellow\": [\n      {\n        \"id\": \"25524167\",\n        \"name\": \"鹅黄\",\n        \"tra_name\": \"鵝黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"é huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          241,\n          67\n        ],\n        \"hex\": \"#FFF143\",\n        \"cmyk\": [\n          0,\n          5,\n          74,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"250255114\",\n        \"name\": \"鸭黄\",\n        \"tra_name\": \"鴨黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          250,\n          255,\n          114\n        ],\n        \"hex\": \"#FAFF72\",\n        \"cmyk\": [\n          2,\n          0,\n          55,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23425586\",\n        \"name\": \"樱草色\",\n        \"tra_name\": \"櫻草色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yīng cǎo sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          255,\n          86\n        ],\n        \"hex\": \"#EAFF56\",\n        \"cmyk\": [\n          8,\n          0,\n          66,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25516649\",\n        \"name\": \"杏黄\",\n        \"tra_name\": \"杏黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xìng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          166,\n          49\n        ],\n        \"hex\": \"#FFA631\",\n        \"cmyk\": [\n          0,\n          35,\n          81,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25513754\",\n        \"name\": \"橘黄\",\n        \"tra_name\": \"橘黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jú huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          137,\n          54\n        ],\n        \"hex\": \"#FF8936\",\n        \"cmyk\": [\n          0,\n          46,\n          79,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2551640\",\n        \"name\": \"橙黄\",\n        \"tra_name\": \"橙黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"chéng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          164,\n          0\n        ],\n        \"hex\": \"#FFA400\",\n        \"cmyk\": [\n          0,\n          36,\n          100,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"255199115\",\n        \"name\": \"姜黄\",\n        \"tra_name\": \"薑黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jiāng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          199,\n          115\n        ],\n        \"hex\": \"#FFC773\",\n        \"cmyk\": [\n          0,\n          22,\n          55,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24019457\",\n        \"name\": \"缃色\",\n        \"tra_name\": \"緗色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xiāng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          194,\n          57\n        ],\n        \"hex\": \"#F0C239\",\n        \"cmyk\": [\n          0,\n          19,\n          76,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20015564\",\n        \"name\": \"昏黄\",\n        \"tra_name\": \"昏黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"hūn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          200,\n          155,\n          64\n        ],\n        \"hex\": \"#C89B40\",\n        \"cmyk\": [\n          0,\n          23,\n          68,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"124750\",\n        \"name\": \"棕黑\",\n        \"tra_name\": \"棕黑\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"zōng hēi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          124,\n          75,\n          0\n        ],\n        \"hex\": \"#7C4B00\",\n        \"cmyk\": [\n          0,\n          40,\n          100,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1741120\",\n        \"name\": \"棕黄\",\n        \"tra_name\": \"棕黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"zōng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          174,\n          112,\n          0\n        ],\n        \"hex\": \"#AE7000\",\n        \"cmyk\": [\n          0,\n          36,\n          100,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1108130\",\n        \"name\": \"褐色\",\n        \"tra_name\": \"褐色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"hè sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          110,\n          81,\n          30\n        ],\n        \"hex\": \"#6E511E\",\n        \"cmyk\": [\n          0,\n          26,\n          73,\n          57\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"211177125\",\n        \"name\": \"枯黄\",\n        \"tra_name\": \"枯黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"kū huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          211,\n          177,\n          125\n        ],\n        \"hex\": \"#D3B17D\",\n        \"cmyk\": [\n          0,\n          16,\n          41,\n          17\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22615669\",\n        \"name\": \"黄栌\",\n        \"tra_name\": \"黃櫨\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"huáng lú\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          226,\n          156,\n          69\n        ],\n        \"hex\": \"#E29C45\",\n        \"cmyk\": [\n          0,\n          31,\n          69,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13710857\",\n        \"name\": \"秋色\",\n        \"tra_name\": \"秋色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiū sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          137,\n          108,\n          57\n        ],\n        \"hex\": \"#896C39\",\n        \"cmyk\": [\n          0,\n          21,\n          58,\n          46\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21718217\",\n        \"name\": \"秋香色\",\n        \"tra_name\": \"秋香色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiū xiāng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          217,\n          182,\n          17\n        ],\n        \"hex\": \"#D9B611\",\n        \"cmyk\": [\n          0,\n          16,\n          92,\n          15\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20122134\",\n        \"name\": \"柳黄\",\n        \"tra_name\": \"柳黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"liǔ huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          201,\n          221,\n          34\n        ],\n        \"hex\": \"#C9DD22\",\n        \"cmyk\": [\n          9,\n          0,\n          85,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1632170\",\n        \"name\": \"葱黄\",\n        \"tra_name\": \"蔥黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"cōng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          163,\n          217,\n          0\n        ],\n        \"hex\": \"#A3D900\",\n        \"cmyk\": [\n          25,\n          0,\n          100,\n          15\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"188230114\",\n        \"name\": \"松花色\",\n        \"tra_name\": \"松花色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"sōng huā sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          188,\n          230,\n          114\n        ],\n        \"hex\": \"#BCE672\",\n        \"cmyk\": [\n          18,\n          0,\n          50,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"938160\",\n        \"name\": \"黧\",\n        \"tra_name\": \"黧\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"lí\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          93,\n          81,\n          60\n        ],\n        \"hex\": \"#5D513C\",\n        \"cmyk\": [\n          0,\n          13,\n          35,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"11710277\",\n        \"name\": \"黎\",\n        \"tra_name\": \"黎\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"lí\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          117,\n          102,\n          77\n        ],\n        \"hex\": \"#75664D\",\n        \"cmyk\": [\n          0,\n          13,\n          34,\n          54\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"162155124\",\n        \"name\": \"苍黄\",\n        \"tra_name\": \"蒼黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"cāng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          162,\n          155,\n          124\n        ],\n        \"hex\": \"#A29B7C\",\n        \"cmyk\": [\n          0,\n          4,\n          23,\n          36\n        ],\n        \"desc\": \"\",\n        \"figure\": \"guilinshanshui.png\"\n      },\n      {\n        \"id\": \"238222176\",\n        \"name\": \"牙色\",\n        \"tra_name\": \"牙色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yá sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          222,\n          176\n        ],\n        \"hex\": \"#EEDEB0\",\n        \"cmyk\": [\n          0,\n          7,\n          26,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24219069\",\n        \"name\": \"赤金\",\n        \"tra_name\": \"赤金\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"chì jīn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          190,\n          69\n        ],\n        \"hex\": \"#F2BE45\",\n        \"cmyk\": [\n          0,\n          21,\n          71,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"234205118\",\n        \"name\": \"金色\",\n        \"tra_name\": \"金色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jīn sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          205,\n          118\n        ],\n        \"hex\": \"#EACD76\",\n        \"cmyk\": [\n          0,\n          12,\n          50,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16714268\",\n        \"name\": \"乌金\",\n        \"tra_name\": \"烏金\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"wū jīn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          167,\n          142,\n          68\n        ],\n        \"hex\": \"#A78E44\",\n        \"cmyk\": [\n          0,\n          15,\n          59,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"247232170\",\n        \"name\": \"杏仁黄\",\n        \"tra_name\": \"杏仁黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xìng rén huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          236,\n          195\n        ],\n        \"hex\": \"#F7E8AA\",\n        \"cmyk\": [\n          3,\n          8,\n          30,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"248223112\",\n        \"name\": \"麦秆黄\",\n        \"tra_name\": \"麥稈黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"mài gǎn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          223,\n          112\n        ],\n        \"hex\": \"#F8DF70\",\n        \"cmyk\": [\n          5,\n          14,\n          68,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25121865\",\n        \"name\": \"油菜花黄\",\n        \"tra_name\": \"油菜花黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yóu cài huā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          218,\n          65\n        ],\n        \"hex\": \"#FBDA41\",\n        \"cmyk\": [\n          2,\n          16,\n          84,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25421526\",\n        \"name\": \"佛手黄\",\n        \"tra_name\": \"佛手黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"fó shǒu huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          254,\n          215,\n          26\n        ],\n        \"hex\": \"#FED71A\",\n        \"cmyk\": [\n          1,\n          18,\n          94,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"248216106\",\n        \"name\": \"葵扇黄\",\n        \"tra_name\": \"葵扇黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"kuí shàn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          216,\n          106\n        ],\n        \"hex\": \"#F8D86A\",\n        \"cmyk\": [\n          3,\n          17,\n          69,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25221155\",\n        \"name\": \"柠檬黄\",\n        \"tra_name\": \"檸檬黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"níng méng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          211,\n          55\n        ],\n        \"hex\": \"#FCD337\",\n        \"cmyk\": [\n          0,\n          20,\n          87,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25221023\",\n        \"name\": \"金瓜黄\",\n        \"tra_name\": \"金瓜黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jīn guā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          210,\n          23\n        ],\n        \"hex\": \"#FCD217\",\n        \"cmyk\": [\n          0,\n          20,\n          95,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25520917\",\n        \"name\": \"藤黄\",\n        \"tra_name\": \"藤黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"téng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          254,\n          209,\n          16\n        ],\n        \"hex\": \"#FFD111\",\n        \"cmyk\": [\n          0,\n          21,\n          94,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"247218148\",\n        \"name\": \"香水玫瑰黄\",\n        \"tra_name\": \"香水玫瑰黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xiāng shuǐ méi guī huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          247,\n          218,\n          148\n        ],\n        \"hex\": \"#F7DA94\",\n        \"cmyk\": [\n          1,\n          17,\n          50,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25120549\",\n        \"name\": \"大豆黄\",\n        \"tra_name\": \"大豆黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dà dòu huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          205,\n          49\n        ],\n        \"hex\": \"#FBCD31\",\n        \"cmyk\": [\n          0,\n          23,\n          88,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25220322\",\n        \"name\": \"素馨黄\",\n        \"tra_name\": \"素馨黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"sù xīn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          203,\n          22\n        ],\n        \"hex\": \"#FCCB16\",\n        \"cmyk\": [\n          0,\n          24,\n          94,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25420417\",\n        \"name\": \"向日葵黄\",\n        \"tra_name\": \"嚮日葵黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xiàng rì kuí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          254,\n          204,\n          17\n        ],\n        \"hex\": \"#FECC11\",\n        \"cmyk\": [\n          0,\n          24,\n          94,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25120047\",\n        \"name\": \"雅梨黄\",\n        \"tra_name\": \"雅梨黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yǎ lí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          200,\n          47\n        ],\n        \"hex\": \"#FBC82F\",\n        \"cmyk\": [\n          0,\n          27,\n          88,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25219721\",\n        \"name\": \"黄连黄\",\n        \"tra_name\": \"黃連黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"huáng lián huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          197,\n          21\n        ],\n        \"hex\": \"#FCC515\",\n        \"cmyk\": [\n          0,\n          28,\n          94,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2521957\",\n        \"name\": \"金盏黄\",\n        \"tra_name\": \"金盞黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jīn zhǎn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          195,\n          7\n        ],\n        \"hex\": \"#FCC307\",\n        \"cmyk\": [\n          0,\n          29,\n          95,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"248195135\",\n        \"name\": \"蛋壳黄\",\n        \"tra_name\": \"蛋殼黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dàn ké huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          195,\n          135\n        ],\n        \"hex\": \"#F8C387\",\n        \"cmyk\": [\n          0,\n          32,\n          52,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"247193115\",\n        \"name\": \"肉色\",\n        \"tra_name\": \"肉色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"ròu sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          247,\n          193,\n          115\n        ],\n        \"hex\": \"#F7C173\",\n        \"cmyk\": [\n          0,\n          32,\n          52,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25118541\",\n        \"name\": \"鹅掌黄\",\n        \"tra_name\": \"鵝掌黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"é zhǎng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          185,\n          41\n        ],\n        \"hex\": \"#FBB929\",\n        \"cmyk\": [\n          0,\n          35,\n          89,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25118218\",\n        \"name\": \"鸡蛋黄\",\n        \"tra_name\": \"雞蛋黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jī dàn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          182,\n          18\n        ],\n        \"hex\": \"#FBB612\",\n        \"cmyk\": [\n          0,\n          36,\n          93,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25218310\",\n        \"name\": \"鼬黄\",\n        \"tra_name\": \"鼬黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yòu huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          183,\n          10\n        ],\n        \"hex\": \"#FCB70A\",\n        \"cmyk\": [\n          0,\n          35,\n          94,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24916651\",\n        \"name\": \"榴萼黄\",\n        \"tra_name\": \"榴萼黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"liú è huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          166,\n          51\n        ],\n        \"hex\": \"#F9A633\",\n        \"cmyk\": [\n          0,\n          44,\n          84,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25116420\",\n        \"name\": \"淡橘橙\",\n        \"tra_name\": \"淡橘橙\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dàn jú chéng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          164,\n          20\n        ],\n        \"hex\": \"#FBA414\",\n        \"cmyk\": [\n          0,\n          45,\n          92,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2521616\",\n        \"name\": \"枇杷黄\",\n        \"tra_name\": \"枇杷黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"pí pá huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          161,\n          6\n        ],\n        \"hex\": \"#FCA106\",\n        \"cmyk\": [\n          0,\n          47,\n          92,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2521614\",\n        \"name\": \"橙皮黄\",\n        \"tra_name\": \"橙皮黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"chéng pí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          161,\n          4\n        ],\n        \"hex\": \"#FCA104\",\n        \"cmyk\": [\n          0,\n          47,\n          92,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25214035\",\n        \"name\": \"北瓜黄\",\n        \"tra_name\": \"北瓜黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"běi guā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          140,\n          35\n        ],\n        \"hex\": \"#FC8C23\",\n        \"cmyk\": [\n          0,\n          56,\n          87,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24214222\",\n        \"name\": \"杏黄\",\n        \"tra_name\": \"杏黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xìng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          250,\n          142,\n          22\n        ],\n        \"hex\": \"#F28E16\",\n        \"cmyk\": [\n          0,\n          54,\n          92,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2551530\",\n        \"name\": \"雄黄\",\n        \"tra_name\": \"雄黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xióng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          153,\n          0\n        ],\n        \"hex\": \"#FF9900\",\n        \"cmyk\": [\n          0,\n          51,\n          91,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2511395\",\n        \"name\": \"万寿菊黄\",\n        \"tra_name\": \"萬壽菊黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"wàn shòu jú huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          139,\n          5\n        ],\n        \"hex\": \"#FB8B05\",\n        \"cmyk\": [\n          0,\n          56,\n          91,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23820869\",\n        \"name\": \"秋葵黄\",\n        \"tra_name\": \"秋葵黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiū kuí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          208,\n          69\n        ],\n        \"hex\": \"#EED045\",\n        \"cmyk\": [\n          8,\n          19,\n          84,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24220643\",\n        \"name\": \"硫华黄\",\n        \"tra_name\": \"硫華黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"liú huá huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          206,\n          43\n        ],\n        \"hex\": \"#F2CE2B\",\n        \"cmyk\": [\n          6,\n          20,\n          92,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24120223\",\n        \"name\": \"柚黄\",\n        \"tra_name\": \"柚黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yòu huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          202,\n          23\n        ],\n        \"hex\": \"#F1CA17\",\n        \"cmyk\": [\n          6,\n          22,\n          92,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"221200113\",\n        \"name\": \"芒果黄\",\n        \"tra_name\": \"芒果黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"máng guǒ huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          221,\n          200,\n          113\n        ],\n        \"hex\": \"#DDC871\",\n        \"cmyk\": [\n          15,\n          20,\n          66,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22319467\",\n        \"name\": \"蒿黄\",\n        \"tra_name\": \"蒿黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"hāo huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          223,\n          194,\n          67\n        ],\n        \"hex\": \"#DFC243\",\n        \"cmyk\": [\n          14,\n          22,\n          85,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22619239\",\n        \"name\": \"姜黄\",\n        \"tra_name\": \"薑黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jiāng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          226,\n          192,\n          39\n        ],\n        \"hex\": \"#E2C027\",\n        \"cmyk\": [\n          12,\n          24,\n          95,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22819117\",\n        \"name\": \"香蕉黄\",\n        \"tra_name\": \"香蕉黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xiāng jiāo huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          228,\n          191,\n          17\n        ],\n        \"hex\": \"#E4BF11\",\n        \"cmyk\": [\n          11,\n          25,\n          99,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21018044\",\n        \"name\": \"草黄\",\n        \"tra_name\": \"草黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"cǎo huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          180,\n          44\n        ],\n        \"hex\": \"#D2B42C\",\n        \"cmyk\": [\n          17,\n          27,\n          94,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"248232193\",\n        \"name\": \"豆汁黄\",\n        \"tra_name\": \"豆汁黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dòu zhī huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          232,\n          193\n        ],\n        \"hex\": \"#F8E8C1\",\n        \"cmyk\": [\n          3,\n          10,\n          31,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25520112\",\n        \"name\": \"乳鸭黄\",\n        \"tra_name\": \"乳鴨黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"rǔ yā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          201,\n          12\n        ],\n        \"hex\": \"#FFC90C\",\n        \"cmyk\": [\n          0,\n          26,\n          94,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240214149\",\n        \"name\": \"象牙黄\",\n        \"tra_name\": \"象牙黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xiàng yá huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          214,\n          149\n        ],\n        \"hex\": \"#F0D695\",\n        \"cmyk\": [\n          5,\n          19,\n          50,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"244206105\",\n        \"name\": \"炒米黄\",\n        \"tra_name\": \"炒米黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"chǎo mǐ huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          244,\n          206,\n          105\n        ],\n        \"hex\": \"#F4CE69\",\n        \"cmyk\": [\n          3,\n          23,\n          69,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24619648\",\n        \"name\": \"鹦鹉冠黄\",\n        \"tra_name\": \"鸚鵡冠黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yīng wǔ guān huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          246,\n          196,\n          48\n        ],\n        \"hex\": \"#F6C430\",\n        \"cmyk\": [\n          1,\n          28,\n          89,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24919322\",\n        \"name\": \"木瓜黄\",\n        \"tra_name\": \"木瓜黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"mù guā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          193,\n          22\n        ],\n        \"hex\": \"#F9C116\",\n        \"cmyk\": [\n          0,\n          30,\n          95,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24918916\",\n        \"name\": \"浅烙黄\",\n        \"tra_name\": \"淺烙黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiǎn lào huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          189,\n          16\n        ],\n        \"hex\": \"#F9BD10\",\n        \"cmyk\": [\n          0,\n          32,\n          95,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"229211170\",\n        \"name\": \"莲子白\",\n        \"tra_name\": \"蓮子白\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"lián zi bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          229,\n          211,\n          170\n        ],\n        \"hex\": \"#E5D3AA\",\n        \"cmyk\": [\n          11,\n          18,\n          39,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2321764\",\n        \"name\": \"谷黄\",\n        \"tra_name\": \"谷黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"gǔ huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          232,\n          176,\n          4\n        ],\n        \"hex\": \"#E8B004\",\n        \"cmyk\": [\n          5,\n          35,\n          99,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23517713\",\n        \"name\": \"栀子黄\",\n        \"tra_name\": \"梔子黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"zhī zi huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          177,\n          13\n        ],\n        \"hex\": \"#EBB10D\",\n        \"cmyk\": [\n          3,\n          36,\n          99,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21716414\",\n        \"name\": \"芥黄\",\n        \"tra_name\": \"芥黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jiè huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          217,\n          164,\n          14\n        ],\n        \"hex\": \"#D9A40E\",\n        \"cmyk\": [\n          11,\n          39,\n          100,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"776448\",\n        \"name\": \"淡松烟\",\n        \"tra_name\": \"淡松煙\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dàn sōng yān\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          77,\n          64,\n          48\n        ],\n        \"hex\": \"#4D4030\",\n        \"cmyk\": [\n          48,\n          58,\n          70,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"248224176\",\n        \"name\": \"淡肉色\",\n        \"tra_name\": \"淡肉色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dàn ròu sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          224,\n          176\n        ],\n        \"hex\": \"#F8E0B0\",\n        \"cmyk\": [\n          1,\n          15,\n          38,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"249210125\",\n        \"name\": \"麦芽糖黄\",\n        \"tra_name\": \"麥芽糖黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"mài yá táng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          210,\n          125\n        ],\n        \"hex\": \"#F9D27D\",\n        \"cmyk\": [\n          0,\n          23,\n          59,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2541867\",\n        \"name\": \"琥珀黄\",\n        \"tra_name\": \"琥珀黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"hǔ pò huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          254,\n          186,\n          7\n        ],\n        \"hex\": \"#FEBA07\",\n        \"cmyk\": [\n          0,\n          34,\n          93,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24319176\",\n        \"name\": \"甘草黄\",\n        \"tra_name\": \"甘草黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"gān cǎo huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          243,\n          191,\n          76\n        ],\n        \"hex\": \"#F3BF4C\",\n        \"cmyk\": [\n          1,\n          31,\n          79,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24818849\",\n        \"name\": \"初熟杏黄\",\n        \"tra_name\": \"初熟杏黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"chū shú xìng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          248,\n          188,\n          49\n        ],\n        \"hex\": \"#F8BC31\",\n        \"cmyk\": [\n          0,\n          33,\n          83,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"226193124\",\n        \"name\": \"浅驼色\",\n        \"tra_name\": \"淺駝色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiǎn tuó sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          226,\n          193,\n          124\n        ],\n        \"hex\": \"#E2C17C\",\n        \"cmyk\": [\n          10,\n          27,\n          59,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22918381\",\n        \"name\": \"沙石黄\",\n        \"tra_name\": \"沙石黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"shā shí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          229,\n          183,\n          81\n        ],\n        \"hex\": \"#E5B751\",\n        \"cmyk\": [\n          7,\n          32,\n          78,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23417326\",\n        \"name\": \"虎皮黄\",\n        \"tra_name\": \"虎皮黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"hǔ pí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          173,\n          26\n        ],\n        \"hex\": \"#EAAD1A\",\n        \"cmyk\": [\n          3,\n          38,\n          97,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21416029\",\n        \"name\": \"土黄\",\n        \"tra_name\": \"土黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"tǔ huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          214,\n          160,\n          29\n        ],\n        \"hex\": \"#D6A01D\",\n        \"cmyk\": [\n          12,\n          41,\n          98,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18313938\",\n        \"name\": \"山鸡黄\",\n        \"tra_name\": \"山雞黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"shān jī huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          183,\n          139,\n          38\n        ],\n        \"hex\": \"#B78B26\",\n        \"cmyk\": [\n          21,\n          44,\n          97,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13010772\",\n        \"name\": \"龟背黄\",\n        \"tra_name\": \"龜背黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"guī bèi huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          130,\n          107,\n          72\n        ],\n        \"hex\": \"#826B48\",\n        \"cmyk\": [\n          35,\n          47,\n          71,\n          33\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1289950\",\n        \"name\": \"苍黄\",\n        \"tra_name\": \"蒼黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"cāng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          128,\n          99,\n          50\n        ],\n        \"hex\": \"#806332\",\n        \"cmyk\": [\n          34,\n          52,\n          85,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1299537\",\n        \"name\": \"莱阳梨黄\",\n        \"tra_name\": \"萊陽梨黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"lái yáng lí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          129,\n          95,\n          37\n        ],\n        \"hex\": \"#815F25\",\n        \"cmyk\": [\n          32,\n          56,\n          96,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"249232208\",\n        \"name\": \"落英淡粉\",\n        \"tra_name\": \"落英淡粉\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"luò yīng dàn fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          232,\n          208\n        ],\n        \"hex\": \"#F9E8D0\",\n        \"cmyk\": [\n          1,\n          12,\n          22,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"249203139\",\n        \"name\": \"瓜瓤粉\",\n        \"tra_name\": \"瓜瓤粉\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"guā ráng fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          249,\n          203,\n          139\n        ],\n        \"hex\": \"#F9CB8B\",\n        \"cmyk\": [\n          0,\n          27,\n          51,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25118587\",\n        \"name\": \"蜜黄\",\n        \"tra_name\": \"蜜黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"mì huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          251,\n          185,\n          87\n        ],\n        \"hex\": \"#FBB957\",\n        \"cmyk\": [\n          0,\n          36,\n          72,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25516615\",\n        \"name\": \"金叶黄\",\n        \"tra_name\": \"金葉黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jīn yè huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          166,\n          15\n        ],\n        \"hex\": \"#FFA60F\",\n        \"cmyk\": [\n          0,\n          44,\n          91,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24416858\",\n        \"name\": \"金莺黄\",\n        \"tra_name\": \"金鶯黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jīn yīng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          244,\n          168,\n          58\n        ],\n        \"hex\": \"#F4A83A\",\n        \"cmyk\": [\n          0,\n          43,\n          82,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"227189141\",\n        \"name\": \"鹿角棕\",\n        \"tra_name\": \"鹿角棕\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"lù jiǎo zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          227,\n          189,\n          141\n        ],\n        \"hex\": \"#E3BD8D\",\n        \"cmyk\": [\n          8,\n          31,\n          50,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23116263\",\n        \"name\": \"凋叶棕\",\n        \"tra_name\": \"凋葉棕\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"diāo yè zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          231,\n          162,\n          63\n        ],\n        \"hex\": \"#E7A23F\",\n        \"cmyk\": [\n          2,\n          44,\n          83,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21816490\",\n        \"name\": \"玳瑁黄\",\n        \"tra_name\": \"玳瑁黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dài mào huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          218,\n          164,\n          90\n        ],\n        \"hex\": \"#DAA45A\",\n        \"cmyk\": [\n          10,\n          41,\n          72,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22215868\",\n        \"name\": \"软木黄\",\n        \"tra_name\": \"軟木黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"ruǎn mù huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          222,\n          158,\n          68\n        ],\n        \"hex\": \"#DE9E44\",\n        \"cmyk\": [\n          7,\n          45,\n          82,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22014535\",\n        \"name\": \"风帆黄\",\n        \"tra_name\": \"風帆黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"fēng fān huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          220,\n          145,\n          35\n        ],\n        \"hex\": \"#DC9123\",\n        \"cmyk\": [\n          6,\n          51,\n          95,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19214781\",\n        \"name\": \"桂皮淡棕\",\n        \"tra_name\": \"桂皮淡棕\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"guì pí dàn zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          192,\n          147,\n          81\n        ],\n        \"hex\": \"#C09351\",\n        \"cmyk\": [\n          19,\n          44,\n          75,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"15210136\",\n        \"name\": \"山鸡褐\",\n        \"tra_name\": \"山雞褐\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"shān jī hè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          152,\n          101,\n          36\n        ],\n        \"hex\": \"#986524\",\n        \"cmyk\": [\n          27,\n          60,\n          97,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24210731\",\n        \"name\": \"金黄\",\n        \"tra_name\": \"金黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jīn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          123,\n          31\n        ],\n        \"hex\": \"#F26B1F\",\n        \"cmyk\": [\n          5,\n          69,\n          87,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1407549\",\n        \"name\": \"淡土黄\",\n        \"tra_name\": \"淡土黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dàn tǔ huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          140,\n          75,\n          49\n        ],\n        \"hex\": \"#8C4B31\",\n        \"cmyk\": [\n          28,\n          76,\n          82,\n          26\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"208222170\",\n        \"name\": \"姚黄\",\n        \"tra_name\": \"姚黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yáo huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          208,\n          222,\n          170\n        ],\n        \"hex\": \"#D0DEAA\",\n        \"cmyk\": [\n          28,\n          4,\n          44,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22621673\",\n        \"name\": \"蝶黄\",\n        \"tra_name\": \"蝶黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dié huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          226,\n          216,\n          73\n        ],\n        \"hex\": \"#E2D849\",\n        \"cmyk\": [\n          19,\n          9,\n          84,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23213359\",\n        \"name\": \"桔黄\",\n        \"tra_name\": \"桔黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jié huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          232,\n          133,\n          59\n        ],\n        \"hex\": \"#E8853B\",\n        \"cmyk\": [\n          0,\n          43,\n          75,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19912258\",\n        \"name\": \"金黄\",\n        \"tra_name\": \"金黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jīn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          199,\n          122,\n          58\n        ],\n        \"hex\": \"#C77A3A\",\n        \"cmyk\": [\n          0,\n          39,\n          71,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20813361\",\n        \"name\": \"雄黄\",\n        \"tra_name\": \"雄黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xióng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          208,\n          133,\n          61\n        ],\n        \"hex\": \"#D0853D\",\n        \"cmyk\": [\n          0,\n          36,\n          71,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22516177\",\n        \"name\": \"虾黄\",\n        \"tra_name\": \"蝦黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xiā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          225,\n          161,\n          77\n        ],\n        \"hex\": \"#E1A14D\",\n        \"cmyk\": [\n          0,\n          28,\n          66,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2251615\",\n        \"name\": \"艶黄\",\n        \"tra_name\": \"艶黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yàn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          225,\n          161,\n          5\n        ],\n        \"hex\": \"#E1A105\",\n        \"cmyk\": [\n          0,\n          28,\n          98,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24516331\",\n        \"name\": \"鹅黄\",\n        \"tra_name\": \"鵝黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"é huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          245,\n          163,\n          31\n        ],\n        \"hex\": \"#F5A31F\",\n        \"cmyk\": [\n          0,\n          33,\n          87,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240182157\",\n        \"name\": \"肉黄\",\n        \"tra_name\": \"肉黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"ròu huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          182,\n          157\n        ],\n        \"hex\": \"#F0B69D\",\n        \"cmyk\": [\n          0,\n          24,\n          35,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16513394\",\n        \"name\": \"黄棕色\",\n        \"tra_name\": \"黄棕色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"huáng zōng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          165,\n          133,\n          94\n        ],\n        \"hex\": \"#A5855E\",\n        \"cmyk\": [\n          0,\n          19,\n          43,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18413279\",\n        \"name\": \"棕茶\",\n        \"tra_name\": \"棕茶\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"zōng chá\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          184,\n          132,\n          79\n        ],\n        \"hex\": \"#B8844F\",\n        \"cmyk\": [\n          0,\n          28,\n          57,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20614753\",\n        \"name\": \"土黄\",\n        \"tra_name\": \"土黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"tǔ huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          206,\n          147,\n          53\n        ],\n        \"hex\": \"#CE9335\",\n        \"cmyk\": [\n          0,\n          29,\n          74,\n          19\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22617569\",\n        \"name\": \"黄琉璃\",\n        \"tra_name\": \"黄琉璃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"huáng líu lí\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          226,\n          175,\n          69\n        ],\n        \"hex\": \"#E2AF45\",\n        \"cmyk\": [\n          0,\n          23,\n          69,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19614157\",\n        \"name\": \"琉璃色\",\n        \"tra_name\": \"琉璃色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"líu lí sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          196,\n          141,\n          57\n        ],\n        \"hex\": \"#C48D39\",\n        \"cmyk\": [\n          0,\n          28,\n          71,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22014859\",\n        \"name\": \"檀香色\",\n        \"tra_name\": \"檀香色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"tán xiāng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          220,\n          148,\n          59\n        ],\n        \"hex\": \"#DC943B\",\n        \"cmyk\": [\n          0,\n          33,\n          73,\n          14\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"198836\",\n        \"name\": \"苍黄\",\n        \"tra_name\": \"蒼黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"cāng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          198,\n          83,\n          6\n        ],\n        \"hex\": \"#C65306\",\n        \"cmyk\": [\n          0,\n          58,\n          97,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"244185116\",\n        \"name\": \"向日黄\",\n        \"tra_name\": \"向日黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xiàng rì huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          244,\n          185,\n          116\n        ],\n        \"hex\": \"#F4B974\",\n        \"cmyk\": [\n          0,\n          24,\n          52,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"222168122\",\n        \"name\": \"浅黄棕\",\n        \"tra_name\": \"浅黄棕\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiǎn huáng zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          222,\n          168,\n          122\n        ],\n        \"hex\": \"#DEA87A\",\n        \"cmyk\": [\n          0,\n          24,\n          45,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"241182127\",\n        \"name\": \"南瓜黄\",\n        \"tra_name\": \"南瓜黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"nán guā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          241,\n          182,\n          127\n        ],\n        \"hex\": \"#F1B67F\",\n        \"cmyk\": [\n          0,\n          24,\n          47,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"226194164\",\n        \"name\": \"芦黄\",\n        \"tra_name\": \"芦黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"lú huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          226,\n          194,\n          164\n        ],\n        \"hex\": \"#E2C2A4\",\n        \"cmyk\": [\n          0,\n          14,\n          27,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21814988\",\n        \"name\": \"浅桔黄\",\n        \"tra_name\": \"浅桔黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiǎn jié huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          218,\n          149,\n          88\n        ],\n        \"hex\": \"#DA9558\",\n        \"cmyk\": [\n          0,\n          32,\n          60,\n          15\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"231187124\",\n        \"name\": \"鹿皮色\",\n        \"tra_name\": \"鹿皮色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"lù pí sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          231,\n          187,\n          124\n        ],\n        \"hex\": \"#E7BB7C\",\n        \"cmyk\": [\n          0,\n          19,\n          46,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18715185\",\n        \"name\": \"鹿皮棕\",\n        \"tra_name\": \"鹿皮棕\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"lù pí zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          187,\n          151,\n          85\n        ],\n        \"hex\": \"#BB9755\",\n        \"cmyk\": [\n          0,\n          19,\n          55,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"244215180\",\n        \"name\": \"真丝绸色\",\n        \"tra_name\": \"真絲綢色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"zhēn sī chóu sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          244,\n          215,\n          180\n        ],\n        \"hex\": \"#F4D7B4\",\n        \"cmyk\": [\n          0,\n          12,\n          26,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240214172\",\n        \"name\": \"富春纺色\",\n        \"tra_name\": \"富春紡色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"fù chūn fǎng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          214,\n          172\n        ],\n        \"hex\": \"#F0D6AC\",\n        \"cmyk\": [\n          0,\n          11,\n          28,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"238225202\",\n        \"name\": \"乳白色\",\n        \"tra_name\": \"乳白色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"rǔ bái sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          225,\n          202\n        ],\n        \"hex\": \"#EEE1CA\",\n        \"cmyk\": [\n          0,\n          5,\n          15,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"239224185\",\n        \"name\": \"乳黄色\",\n        \"tra_name\": \"乳黄色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"rǔ huáng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          224,\n          185\n        ],\n        \"hex\": \"#EFE0B9\",\n        \"cmyk\": [\n          0,\n          6,\n          23,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"238222204\",\n        \"name\": \"浅肉粉\",\n        \"tra_name\": \"浅肉粉\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiǎn ròu fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          238,\n          222,\n          204\n        ],\n        \"hex\": \"#EEDECC\",\n        \"cmyk\": [\n          0,\n          7,\n          14,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"201174140\",\n        \"name\": \"浅驼色\",\n        \"tra_name\": \"浅駝色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiǎn tuó sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          201,\n          174,\n          140\n        ],\n        \"hex\": \"#C9AE8C\",\n        \"cmyk\": [\n          0,\n          13,\n          30,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"176160133\",\n        \"name\": \"浅棕茶\",\n        \"tra_name\": \"浅棕茶\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiǎn zōng chá\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          176,\n          160,\n          133\n        ],\n        \"hex\": \"#B0A085\",\n        \"cmyk\": [\n          0,\n          9,\n          24,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1559663\",\n        \"name\": \"黄鸭色\",\n        \"tra_name\": \"黄鴨色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"huáng yā sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          155,\n          96,\n          63\n        ],\n        \"hex\": \"#9B603F\",\n        \"cmyk\": [\n          0,\n          38,\n          59,\n          39\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"36290\",\n        \"name\": \"将校呢\",\n        \"tra_name\": \"将校呢\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jiāng xiào ní\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          36,\n          29,\n          0\n        ],\n        \"hex\": \"#241D00\",\n        \"cmyk\": [\n          0,\n          19,\n          100,\n          86\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1099774\",\n        \"name\": \"将校呢\",\n        \"tra_name\": \"将校呢\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jiāng xiào ní\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          109,\n          97,\n          74\n        ],\n        \"hex\": \"#6D614A\",\n        \"cmyk\": [\n          0,\n          11,\n          32,\n          57\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18014854\",\n        \"name\": \"姜黄\",\n        \"tra_name\": \"姜黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jiāng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          180,\n          148,\n          54\n        ],\n        \"hex\": \"#B49436\",\n        \"cmyk\": [\n          0,\n          18,\n          70,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18016797\",\n        \"name\": \"新芽色\",\n        \"tra_name\": \"新芽色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xīn yá sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          180,\n          167,\n          97\n        ],\n        \"hex\": \"#B4A761\",\n        \"cmyk\": [\n          0,\n          7,\n          46,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"213184132\",\n        \"name\": \"卡其黄\",\n        \"tra_name\": \"卡其黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"qiǎ qí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          213,\n          184,\n          132\n        ],\n        \"hex\": \"#D5B884\",\n        \"cmyk\": [\n          0,\n          14,\n          38,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24219277\",\n        \"name\": \"石黄\",\n        \"tra_name\": \"石黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"shí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          192,\n          77\n        ],\n        \"hex\": \"#F2C04D\",\n        \"cmyk\": [\n          0,\n          21,\n          68,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"201180129\",\n        \"name\": \"乳棕\",\n        \"tra_name\": \"乳棕\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"rǔ zōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          201,\n          180,\n          129\n        ],\n        \"hex\": \"#C9B481\",\n        \"cmyk\": [\n          0,\n          10,\n          36,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"235225189\",\n        \"name\": \"蝋黄\",\n        \"tra_name\": \"蝋黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"là huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          225,\n          189\n        ],\n        \"hex\": \"#EBE1BD\",\n        \"cmyk\": [\n          0,\n          4,\n          20,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"235225178\",\n        \"name\": \"牙黄\",\n        \"tra_name\": \"牙黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yá huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          225,\n          178\n        ],\n        \"hex\": \"#EBE1B2\",\n        \"cmyk\": [\n          0,\n          4,\n          24,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"219199166\",\n        \"name\": \"枝黄\",\n        \"tra_name\": \"枝黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"zhī huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          219,\n          199,\n          166\n        ],\n        \"hex\": \"#DBC7A6\",\n        \"cmyk\": [\n          0,\n          9,\n          24,\n          14\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"215193107\",\n        \"name\": \"丹东石\",\n        \"tra_name\": \"丹東石\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dān dōng shí\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          215,\n          193,\n          107\n        ],\n        \"hex\": \"#D7C16B\",\n        \"cmyk\": [\n          0,\n          10,\n          50,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"204204102\",\n        \"name\": \"黄金色\",\n        \"tra_name\": \"黄金色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"huáng jīn sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          204,\n          204,\n          102\n        ],\n        \"hex\": \"#CCCC66\",\n        \"cmyk\": [\n          0,\n          0,\n          50,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"242222118\",\n        \"name\": \"藤黄\",\n        \"tra_name\": \"藤黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"téng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          222,\n          118\n        ],\n        \"hex\": \"#F2DE76\",\n        \"cmyk\": [\n          0,\n          8,\n          51,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23118191\",\n        \"name\": \"蛋黄\",\n        \"tra_name\": \"蛋黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dàn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          231,\n          181,\n          91\n        ],\n        \"hex\": \"#E7B55B\",\n        \"cmyk\": [\n          0,\n          22,\n          61,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23922882\",\n        \"name\": \"槐黄\",\n        \"tra_name\": \"槐黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"huái huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          239,\n          228,\n          82\n        ],\n        \"hex\": \"#EFE452\",\n        \"cmyk\": [\n          0,\n          5,\n          66,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24019873\",\n        \"name\": \"明黄\",\n        \"tra_name\": \"明黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"míng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          198,\n          73\n        ],\n        \"hex\": \"#F0C649\",\n        \"cmyk\": [\n          0,\n          17,\n          70,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"24721380\",\n        \"name\": \"丝瓜花黄\",\n        \"tra_name\": \"絲瓜花黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"sī guā huā huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          247,\n          213,\n          80\n        ],\n        \"hex\": \"#F7D550\",\n        \"cmyk\": [\n          0,\n          14,\n          68,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22618959\",\n        \"name\": \"嫩姜黄\",\n        \"tra_name\": \"嫩姜黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"nèn jiāng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          226,\n          189,\n          59\n        ],\n        \"hex\": \"#E2BD3B\",\n        \"cmyk\": [\n          0,\n          16,\n          74,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"228207142\",\n        \"name\": \"甘草黄\",\n        \"tra_name\": \"甘草黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"gān cǎo huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          228,\n          207,\n          142\n        ],\n        \"hex\": \"#E4CF8E\",\n        \"cmyk\": [\n          0,\n          9,\n          38,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"227210137\",\n        \"name\": \"小鶏黄\",\n        \"tra_name\": \"小鶏黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xiǎo jī huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          227,\n          210,\n          137\n        ],\n        \"hex\": \"#E3D289\",\n        \"cmyk\": [\n          0,\n          7,\n          40,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23321957\",\n        \"name\": \"柠檬黄\",\n        \"tra_name\": \"檸檬黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"níng méng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          233,\n          219,\n          57\n        ],\n        \"hex\": \"#E9DB39\",\n        \"cmyk\": [\n          0,\n          6,\n          76,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"212213112\",\n        \"name\": \"杨桃色\",\n        \"tra_name\": \"楊桃色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"yáng táo sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          212,\n          213,\n          112\n        ],\n        \"hex\": \"#D4D570\",\n        \"cmyk\": [\n          0,\n          0,\n          47,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"234227179\",\n        \"name\": \"淡黄\",\n        \"tra_name\": \"淡黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dàn huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          227,\n          179\n        ],\n        \"hex\": \"#EAE3B3\",\n        \"cmyk\": [\n          0,\n          3,\n          24,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"233230197\",\n        \"name\": \"淡米色\",\n        \"tra_name\": \"淡米色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dàn mǐ sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          233,\n          230,\n          197\n        ],\n        \"hex\": \"#E9E6C5\",\n        \"cmyk\": [\n          0,\n          1,\n          15,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21920684\",\n        \"name\": \"草黄\",\n        \"tra_name\": \"草黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"cǎo huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          219,\n          206,\n          84\n        ],\n        \"hex\": \"#DBCE54\",\n        \"cmyk\": [\n          0,\n          6,\n          62,\n          14\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"190210182\",\n        \"name\": \"水黄\",\n        \"tra_name\": \"水黄\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"shǔi huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          190,\n          210,\n          182\n        ],\n        \"hex\": \"#BED2B6\",\n        \"cmyk\": [\n          10,\n          0,\n          13,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"145148129\",\n        \"name\": \"法国梧桐皮色\",\n        \"tra_name\": \"法国梧桐皮色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"fǎ guó wú tóng pí sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          145,\n          148,\n          129\n        ],\n        \"hex\": \"#919481\",\n        \"cmyk\": [\n          2,\n          0,\n          13,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"929070\",\n        \"name\": \"焦茶色\",\n        \"tra_name\": \"焦茶色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"jiāo chá sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          92,\n          90,\n          70\n        ],\n        \"hex\": \"#5C5A46\",\n        \"cmyk\": [\n          0,\n          2,\n          24,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"10911588\",\n        \"name\": \"大赤金\",\n        \"tra_name\": \"大赤金\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"dà chì jīn\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          109,\n          115,\n          88\n        ],\n        \"hex\": \"#6D7358\",\n        \"cmyk\": [\n          5,\n          0,\n          23,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13312179\",\n        \"name\": \"库金\",\n        \"tra_name\": \"庫金\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"kù jīn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          133,\n          121,\n          79\n        ],\n        \"hex\": \"#85794F\",\n        \"cmyk\": [\n          0,\n          9,\n          41,\n          48\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"12111184\",\n        \"name\": \"选金\",\n        \"tra_name\": \"選金\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xuǎn jīn\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          121,\n          111,\n          84\n        ],\n        \"hex\": \"#796F54\",\n        \"cmyk\": [\n          0,\n          8,\n          31,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"185152109\",\n        \"name\": \"獣皮色\",\n        \"tra_name\": \"獣皮色\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"獣 pí sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          185,\n          152,\n          109\n        ],\n        \"hex\": \"#B9986D\",\n        \"cmyk\": [\n          0,\n          18,\n          41,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25518230\",\n        \"name\": \"藤黄\",\n        \"tra_name\": \"藤黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"téng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          182,\n          30\n        ],\n        \"hex\": \"#FFB61E\",\n        \"cmyk\": [\n          0,\n          29,\n          88,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"25519875\",\n        \"name\": \"雌黄\",\n        \"tra_name\": \"雌黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"cí huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          198,\n          75\n        ],\n        \"hex\": \"#FFC64B\",\n        \"cmyk\": [\n          0,\n          22,\n          71,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23318729\",\n        \"name\": \"雄黄\",\n        \"tra_name\": \"雄黃\",\n        \"color_series\": \"yellow\",\n        \"pinyin\": \"xióng huáng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          233,\n          187,\n          29\n        ],\n        \"hex\": \"#E9BB1D\",\n        \"cmyk\": [\n          0,\n          20,\n          88,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ],\n    \"green\": [\n      {\n        \"id\": \"1301130\",\n        \"name\": \"棕绿\",\n        \"tra_name\": \"棕綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"zōng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          130,\n          113,\n          0\n        ],\n        \"hex\": \"#827100\",\n        \"cmyk\": [\n          0,\n          13,\n          100,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18922134\",\n        \"name\": \"嫩绿\",\n        \"tra_name\": \"嫩綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"nèn lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          189,\n          221,\n          34\n        ],\n        \"hex\": \"#BDDD22\",\n        \"cmyk\": [\n          14,\n          0,\n          85,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"17522134\",\n        \"name\": \"柳绿\",\n        \"tra_name\": \"柳綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"liǔ lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          175,\n          221,\n          34\n        ],\n        \"hex\": \"#AFDD22\",\n        \"cmyk\": [\n          21,\n          0,\n          85,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1582170\",\n        \"name\": \"葱绿\",\n        \"tra_name\": \"蔥綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cōng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          158,\n          217,\n          0\n        ],\n        \"hex\": \"#9ED900\",\n        \"cmyk\": [\n          27,\n          0,\n          100,\n          15\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1418464\",\n        \"name\": \"葱倩\",\n        \"tra_name\": \"蔥倩\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cōng qiàn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          14,\n          184,\n          64\n        ],\n        \"hex\": \"#0EB840\",\n        \"cmyk\": [\n          92,\n          0,\n          65,\n          28\n        ],\n        \"desc\": \"青绿色\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"018818\",\n        \"name\": \"油绿\",\n        \"tra_name\": \"油綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yóu lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          188,\n          18\n        ],\n        \"hex\": \"#00BC12\",\n        \"cmyk\": [\n          100,\n          0,\n          90,\n          26\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1213724\",\n        \"name\": \"绿沈\",\n        \"tra_name\": \"綠沈\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"lǜ shěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          12,\n          137,\n          24\n        ],\n        \"hex\": \"#0C8918\",\n        \"cmyk\": [\n          91,\n          0,\n          82,\n          46\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"42221156\",\n        \"name\": \"碧绿\",\n        \"tra_name\": \"碧綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"bì lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          42,\n          221,\n          156\n        ],\n        \"hex\": \"#2ADD9C\",\n        \"cmyk\": [\n          81,\n          0,\n          29,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"61225173\",\n        \"name\": \"翡翠绿\",\n        \"tra_name\": \"翡翠綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"fěi cuì lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          61,\n          225,\n          173\n        ],\n        \"hex\": \"#3DE1AD\",\n        \"cmyk\": [\n          73,\n          0,\n          23,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6422290\",\n        \"name\": \"草绿\",\n        \"tra_name\": \"草綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cǎo lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          64,\n          222,\n          90\n        ],\n        \"hex\": \"#40DE5A\",\n        \"cmyk\": [\n          71,\n          0,\n          59,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"02290\",\n        \"name\": \"绿色\",\n        \"tra_name\": \"綠色\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"lǜ sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          229,\n          0\n        ],\n        \"hex\": \"#00E500\",\n        \"cmyk\": [\n          100,\n          0,\n          100,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"15820872\",\n        \"name\": \"豆绿\",\n        \"tra_name\": \"豆綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dòu lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          158,\n          208,\n          72\n        ],\n        \"hex\": \"#9ED048\",\n        \"cmyk\": [\n          24,\n          0,\n          65,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"123207166\",\n        \"name\": \"石绿\",\n        \"tra_name\": \"石綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shí lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          123,\n          207,\n          166\n        ],\n        \"hex\": \"#7BCFA6\",\n        \"cmyk\": [\n          41,\n          0,\n          20,\n          19\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"127236173\",\n        \"name\": \"缥\",\n        \"tra_name\": \"縹\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"piāo\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          127,\n          236,\n          173\n        ],\n        \"hex\": \"#7FECAD\",\n        \"cmyk\": [\n          46,\n          0,\n          27,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"164226198\",\n        \"name\": \"艾绿\",\n        \"tra_name\": \"艾綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"ài lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          164,\n          226,\n          198\n        ],\n        \"hex\": \"#A4E2C6\",\n        \"cmyk\": [\n          27,\n          0,\n          12,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"33166117\",\n        \"name\": \"松柏绿\",\n        \"tra_name\": \"松柏綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"sōng bǎi lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          33,\n          166,\n          117\n        ],\n        \"hex\": \"#21A675\",\n        \"cmyk\": [\n          80,\n          0,\n          30,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"511972\",\n        \"name\": \"松花绿\",\n        \"tra_name\": \"松花綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"sōng huā lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          5,\n          119,\n          72\n        ],\n        \"hex\": \"#057748\",\n        \"cmyk\": [\n          96,\n          0,\n          39,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"66102102\",\n        \"name\": \"黛绿\",\n        \"tra_name\": \"黛綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dài lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          66,\n          102,\n          102\n        ],\n        \"hex\": \"#426666\",\n        \"cmyk\": [\n          35,\n          0,\n          0,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"81154115\",\n        \"name\": \"苍翠\",\n        \"tra_name\": \"蒼翠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cāng cuì\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          81,\n          154,\n          115\n        ],\n        \"hex\": \"#519A73\",\n        \"cmyk\": [\n          47,\n          0,\n          25,\n          40\n        ],\n        \"desc\": \"\",\n        \"figure\": \"lvzhu.png?width=18rem\"\n      },\n      {\n        \"id\": \"212242231\",\n        \"name\": \"水绿\",\n        \"tra_name\": \"水綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shuǐ lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          212,\n          242,\n          231\n        ],\n        \"hex\": \"#D4F2E7\",\n        \"cmyk\": [\n          12,\n          0,\n          5,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"yu.png?width=17rem\"\n      },\n      {\n        \"id\": \"37248203\",\n        \"name\": \"湖绿\",\n        \"tra_name\": \"湖綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"hú lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          37,\n          248,\n          203\n        ],\n        \"hex\": \"#25F8CB\",\n        \"cmyk\": [\n          85,\n          0,\n          18,\n          3\n        ],\n        \"desc\": \"皆是浅色。深色淡色，颜色深的或浅的，不再一一列出。\",\n        \"figure\": \"hehua.caise.png\"\n      },\n      {\n        \"id\": \"84150136\",\n        \"name\": \"铜绿\",\n        \"tra_name\": \"銅綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"tóng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          84,\n          150,\n          136\n        ],\n        \"hex\": \"#549688\",\n        \"cmyk\": [\n          44,\n          0,\n          9,\n          41\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21017722\",\n        \"name\": \"新禾绿\",\n        \"tra_name\": \"新禾綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"xīn hé lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          177,\n          22\n        ],\n        \"hex\": \"#D2B116\",\n        \"cmyk\": [\n          17,\n          29,\n          100,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"17315895\",\n        \"name\": \"淡灰绿\",\n        \"tra_name\": \"淡灰綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dàn huī lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          173,\n          158,\n          85\n        ],\n        \"hex\": \"#AD9E5F\",\n        \"cmyk\": [\n          30,\n          30,\n          70,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"14212875\",\n        \"name\": \"草灰绿\",\n        \"tra_name\": \"草灰綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cǎo huī lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          142,\n          128,\n          75\n        ],\n        \"hex\": \"#8E804B\",\n        \"cmyk\": [\n          38,\n          38,\n          76,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13611534\",\n        \"name\": \"苔绿\",\n        \"tra_name\": \"苔綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"tái lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          136,\n          115,\n          34\n        ],\n        \"hex\": \"#887322\",\n        \"cmyk\": [\n          36,\n          42,\n          100,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13411224\",\n        \"name\": \"碧螺春绿\",\n        \"tra_name\": \"碧螺春綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"bì luó chūn lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          134,\n          112,\n          24\n        ],\n        \"hex\": \"#867018\",\n        \"cmyk\": [\n          36,\n          42,\n          100,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1008834\",\n        \"name\": \"潭水绿\",\n        \"tra_name\": \"潭水綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"tán shuǐ lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          100,\n          88,\n          34\n        ],\n        \"hex\": \"#645822\",\n        \"cmyk\": [\n          48,\n          48,\n          100,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"948320\",\n        \"name\": \"橄榄绿\",\n        \"tra_name\": \"橄欖綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"gǎn lǎn lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          94,\n          83,\n          20\n        ],\n        \"hex\": \"#5E5314\",\n        \"cmyk\": [\n          50,\n          50,\n          10,\n          48\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18314118\",\n        \"name\": \"枯绿\",\n        \"tra_name\": \"枯綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"kū lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          183,\n          141,\n          18\n        ],\n        \"hex\": \"#B78D12\",\n        \"cmyk\": [\n          21,\n          43,\n          100,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13510424\",\n        \"name\": \"粽叶绿\",\n        \"tra_name\": \"粽葉綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"zòng yè lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          135,\n          104,\n          24\n        ],\n        \"hex\": \"#876818\",\n        \"cmyk\": [\n          32,\n          50,\n          100,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13810519\",\n        \"name\": \"灰绿\",\n        \"tra_name\": \"灰綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"huī lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          138,\n          105,\n          19\n        ],\n        \"hex\": \"#8A6913\",\n        \"cmyk\": [\n          31,\n          51,\n          100,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"887123\",\n        \"name\": \"暗海水绿\",\n        \"tra_name\": \"暗海水綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"àn hǎi shuǐ lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          88,\n          71,\n          23\n        ],\n        \"hex\": \"#584717\",\n        \"cmyk\": [\n          45,\n          56,\n          100,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"917319\",\n        \"name\": \"棕榈绿\",\n        \"tra_name\": \"棕櫚綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"zōng lǘ lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          91,\n          73,\n          19\n        ],\n        \"hex\": \"#5B4913\",\n        \"cmyk\": [\n          45,\n          55,\n          100,\n          54\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1319429\",\n        \"name\": \"蜴蜊绿\",\n        \"tra_name\": \"蜴蜊綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yì lí lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          131,\n          94,\n          29\n        ],\n        \"hex\": \"#835E1D\",\n        \"cmyk\": [\n          31,\n          57,\n          100,\n          33\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"816032\",\n        \"name\": \"蟹壳绿\",\n        \"tra_name\": \"蟹殼綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"xiè ké lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          81,\n          60,\n          32\n        ],\n        \"hex\": \"#513C20\",\n        \"cmyk\": [\n          43,\n          63,\n          88,\n          61\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"836027\",\n        \"name\": \"古铜绿\",\n        \"tra_name\": \"古銅綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"gǔ tóng lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          83,\n          60,\n          27\n        ],\n        \"hex\": \"#533C1B\",\n        \"cmyk\": [\n          42,\n          64,\n          94,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"855924\",\n        \"name\": \"焦茶绿\",\n        \"tra_name\": \"焦茶綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"jiāo chá lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          85,\n          59,\n          24\n        ],\n        \"hex\": \"#553B18\",\n        \"cmyk\": [\n          41,\n          66,\n          94,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"87195194\",\n        \"name\": \"石绿\",\n        \"tra_name\": \"石綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shí lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          87,\n          195,\n          194\n        ],\n        \"hex\": \"#57C3C2\",\n        \"cmyk\": [\n          78,\n          36,\n          0,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"185222201\",\n        \"name\": \"竹篁绿\",\n        \"tra_name\": \"竹篁綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"zhú huáng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          185,\n          222,\n          201\n        ],\n        \"hex\": \"#B9DEC9\",\n        \"cmyk\": [\n          40,\n          0,\n          30,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"131203172\",\n        \"name\": \"粉绿\",\n        \"tra_name\": \"粉綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"fěn lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          131,\n          203,\n          172\n        ],\n        \"hex\": \"#83CBAC\",\n        \"cmyk\": [\n          64,\n          0,\n          46,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18170156\",\n        \"name\": \"美蝶绿\",\n        \"tra_name\": \"美蝶綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"měi dié lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          18,\n          170,\n          156\n        ],\n        \"hex\": \"#12AA9C\",\n        \"cmyk\": [\n          95,\n          0,\n          52,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"102193140\",\n        \"name\": \"毛绿\",\n        \"tra_name\": \"毛綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"máo lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          102,\n          193,\n          140\n        ],\n        \"hex\": \"#66C18C\",\n        \"cmyk\": [\n          75,\n          0,\n          61,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"93190138\",\n        \"name\": \"蔻梢绿\",\n        \"tra_name\": \"蔻梢綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"kòu shāo lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          93,\n          190,\n          138\n        ],\n        \"hex\": \"#5DBE8A\",\n        \"cmyk\": [\n          78,\n          0,\n          62,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"85187138\",\n        \"name\": \"麦苗绿\",\n        \"tra_name\": \"麥苗綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"mài miáo lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          85,\n          187,\n          138\n        ],\n        \"hex\": \"#55BB8A\",\n        \"cmyk\": [\n          81,\n          0,\n          62,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"69183135\",\n        \"name\": \"蛙绿\",\n        \"tra_name\": \"蛙綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"wā lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          69,\n          183,\n          135\n        ],\n        \"hex\": \"#45B787\",\n        \"cmyk\": [\n          86,\n          0,\n          63,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"43174133\",\n        \"name\": \"铜绿\",\n        \"tra_name\": \"銅綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"tóng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          43,\n          174,\n          133\n        ],\n        \"hex\": \"#2BAE85\",\n        \"cmyk\": [\n          92,\n          0,\n          64,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"27167132\",\n        \"name\": \"竹绿\",\n        \"tra_name\": \"竹綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"zhú lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          27,\n          167,\n          132\n        ],\n        \"hex\": \"#1BA784\",\n        \"cmyk\": [\n          96,\n          0,\n          64,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18161130\",\n        \"name\": \"蓝绿\",\n        \"tra_name\": \"藍綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"lán lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          18,\n          161,\n          130\n        ],\n        \"hex\": \"#12A182\",\n        \"cmyk\": [\n          98,\n          2,\n          64,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"164202182\",\n        \"name\": \"玉簪绿\",\n        \"tra_name\": \"玉簪綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yù zān lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          164,\n          202,\n          182\n        ],\n        \"hex\": \"#A4CAB6\",\n        \"cmyk\": [\n          49,\n          5,\n          37,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"44150120\",\n        \"name\": \"青矾绿\",\n        \"tra_name\": \"青礬綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"qīng fán lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          44,\n          150,\n          120\n        ],\n        \"hex\": \"#2C9678\",\n        \"cmyk\": [\n          96,\n          12,\n          66,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"154190175\",\n        \"name\": \"草原远绿\",\n        \"tra_name\": \"草原遠綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cǎo yuán yuǎn lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          154,\n          190,\n          175\n        ],\n        \"hex\": \"#9ABEAF\",\n        \"cmyk\": [\n          52,\n          11,\n          37,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"105167148\",\n        \"name\": \"梧枝绿\",\n        \"tra_name\": \"梧枝綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"wú zhī lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          105,\n          167,\n          148\n        ],\n        \"hex\": \"#69A794\",\n        \"cmyk\": [\n          74,\n          14,\n          51,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"146179165\",\n        \"name\": \"浪花绿\",\n        \"tra_name\": \"浪花綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"làng huā lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          146,\n          179,\n          165\n        ],\n        \"hex\": \"#92B3A5\",\n        \"cmyk\": [\n          55,\n          16,\n          40,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"36128103\",\n        \"name\": \"海王绿\",\n        \"tra_name\": \"海王綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"hǎi wáng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          36,\n          128,\n          103\n        ],\n        \"hex\": \"#248067\",\n        \"cmyk\": [\n          99,\n          23,\n          70,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"66134117\",\n        \"name\": \"亚丁绿\",\n        \"tra_name\": \"亞丁綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yà dīng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          66,\n          134,\n          117\n        ],\n        \"hex\": \"#428675\",\n        \"cmyk\": [\n          88,\n          24,\n          61,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"73117104\",\n        \"name\": \"飞泉绿\",\n        \"tra_name\": \"飛泉綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"fēi quán lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          73,\n          117,\n          104\n        ],\n        \"hex\": \"#497568\",\n        \"cmyk\": [\n          82,\n          32,\n          60,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"346254\",\n        \"name\": \"苍绿\",\n        \"tra_name\": \"蒼綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cāng lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          34,\n          62,\n          54\n        ],\n        \"hex\": \"#223E36\",\n        \"cmyk\": [\n          93,\n          46,\n          70,\n          61\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"265950\",\n        \"name\": \"深海绿\",\n        \"tra_name\": \"深海綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shēn hǎi lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          26,\n          59,\n          50\n        ],\n        \"hex\": \"#1A3B32\",\n        \"cmyk\": [\n          98,\n          46,\n          73,\n          63\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"313835\",\n        \"name\": \"苷蓝绿\",\n        \"tra_name\": \"苷藍綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"gān lán lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          31,\n          38,\n          35\n        ],\n        \"hex\": \"#1F2623\",\n        \"cmyk\": [\n          82,\n          60,\n          65,\n          80\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"203027\",\n        \"name\": \"莽丛绿\",\n        \"tra_name\": \"莽叢綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"mǎng cóng lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          20,\n          30,\n          27\n        ],\n        \"hex\": \"#141E1B\",\n        \"cmyk\": [\n          90,\n          62,\n          67,\n          86\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"158204171\",\n        \"name\": \"明绿\",\n        \"tra_name\": \"明綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"míng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          158,\n          204,\n          171\n        ],\n        \"hex\": \"#9ECCAB\",\n        \"cmyk\": [\n          53,\n          1,\n          44,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"104184142\",\n        \"name\": \"田园绿\",\n        \"tra_name\": \"田園綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"tián yuán lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          104,\n          184,\n          142\n        ],\n        \"hex\": \"#68B88E\",\n        \"cmyk\": [\n          75,\n          0,\n          59,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"3216198\",\n        \"name\": \"翠绿\",\n        \"tra_name\": \"翠綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cuì lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          32,\n          161,\n          98\n        ],\n        \"hex\": \"#20A162\",\n        \"cmyk\": [\n          98,\n          0,\n          82,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"97172133\",\n        \"name\": \"淡绿\",\n        \"tra_name\": \"淡綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dàn lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          97,\n          172,\n          133\n        ],\n        \"hex\": \"#61AC85\",\n        \"cmyk\": [\n          78,\n          6,\n          62,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"64160112\",\n        \"name\": \"葱绿\",\n        \"tra_name\": \"蔥綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cōng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          64,\n          160,\n          112\n        ],\n        \"hex\": \"#40A070\",\n        \"cmyk\": [\n          90,\n          7,\n          73,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"3414883\",\n        \"name\": \"孔雀绿\",\n        \"tra_name\": \"孔雀綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"kǒng què lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          34,\n          148,\n          83\n        ],\n        \"hex\": \"#229453\",\n        \"cmyk\": [\n          99,\n          10,\n          91,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"60149102\",\n        \"name\": \"蟾绿\",\n        \"tra_name\": \"蟾綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"chán lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          60,\n          149,\n          102\n        ],\n        \"hex\": \"#3C9566\",\n        \"cmyk\": [\n          92,\n          14,\n          76,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"3213777\",\n        \"name\": \"宫殿绿\",\n        \"tra_name\": \"宮殿綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"gōng diàn lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          32,\n          137,\n          77\n        ],\n        \"hex\": \"#20894D\",\n        \"cmyk\": [\n          100,\n          17,\n          92,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"131167141\",\n        \"name\": \"松霜绿\",\n        \"tra_name\": \"松霜綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"sōng shuāng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          131,\n          167,\n          141\n        ],\n        \"hex\": \"#83A78D\",\n        \"cmyk\": [\n          61,\n          19,\n          52,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"87149114\",\n        \"name\": \"蛋白石绿\",\n        \"tra_name\": \"蛋白石綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dàn bái shí lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          87,\n          149,\n          114\n        ],\n        \"hex\": \"#579572\",\n        \"cmyk\": [\n          81,\n          19,\n          67,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"3212776\",\n        \"name\": \"薄荷绿\",\n        \"tra_name\": \"薄荷綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"bò he lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          32,\n          127,\n          76\n        ],\n        \"hex\": \"#207F4C\",\n        \"cmyk\": [\n          100,\n          22,\n          90,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"110139116\",\n        \"name\": \"瓦松绿\",\n        \"tra_name\": \"瓦松綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"wǎ sōng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          110,\n          139,\n          116\n        ],\n        \"hex\": \"#6E8B74\",\n        \"cmyk\": [\n          66,\n          29,\n          58,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2610464\",\n        \"name\": \"荷叶绿\",\n        \"tra_name\": \"荷葉綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"hé yè lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          26,\n          104,\n          64\n        ],\n        \"hex\": \"#1A6840\",\n        \"cmyk\": [\n          100,\n          31,\n          91,\n          25\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"9410291\",\n        \"name\": \"田螺绿\",\n        \"tra_name\": \"田螺綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"tián luó lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          94,\n          102,\n          91\n        ],\n        \"hex\": \"#5E665B\",\n        \"cmyk\": [\n          62,\n          42,\n          56,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"729177\",\n        \"name\": \"白屈菜绿\",\n        \"tra_name\": \"白屈菜綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"bái qū cài lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          72,\n          91,\n          77\n        ],\n        \"hex\": \"#485B4D\",\n        \"cmyk\": [\n          74,\n          42,\n          65,\n          40\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"555652\",\n        \"name\": \"蒽油绿\",\n        \"tra_name\": \"蒽油綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"ēn yóu lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          55,\n          56,\n          52\n        ],\n        \"hex\": \"#373834\",\n        \"cmyk\": [\n          68,\n          56,\n          60,\n          66\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"434944\",\n        \"name\": \"槲寄生绿\",\n        \"tra_name\": \"槲寄生綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"hú jì shēng lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          43,\n          49,\n          44\n        ],\n        \"hex\": \"#2B312C\",\n        \"cmyk\": [\n          76,\n          56,\n          75,\n          72\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"213527\",\n        \"name\": \"云杉绿\",\n        \"tra_name\": \"雲杉綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yún shān lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          21,\n          35,\n          27\n        ],\n        \"hex\": \"#15231B\",\n        \"cmyk\": [\n          91,\n          60,\n          76,\n          83\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"223236213\",\n        \"name\": \"艾背绿\",\n        \"tra_name\": \"艾背綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"ài bèi lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          223,\n          236,\n          213\n        ],\n        \"hex\": \"#DFECD5\",\n        \"cmyk\": [\n          20,\n          1,\n          23,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"173213162\",\n        \"name\": \"嘉陵水绿\",\n        \"tra_name\": \"嘉陵水綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"jiā líng shuǐ lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          173,\n          213,\n          162\n        ],\n        \"hex\": \"#ADD5A2\",\n        \"cmyk\": [\n          47,\n          0,\n          49,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6517973\",\n        \"name\": \"玉髓绿\",\n        \"tra_name\": \"玉髓綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yù suǐ lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          65,\n          179,\n          73\n        ],\n        \"hex\": \"#41B349\",\n        \"cmyk\": [\n          89,\n          0,\n          96,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6717868\",\n        \"name\": \"鲜绿\",\n        \"tra_name\": \"鮮綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"xiān lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          67,\n          178,\n          68\n        ],\n        \"hex\": \"#43B244\",\n        \"cmyk\": [\n          88,\n          0,\n          99,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6517460\",\n        \"name\": \"宝石绿\",\n        \"tra_name\": \"寶石綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"bǎo shí lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          65,\n          174,\n          60\n        ],\n        \"hex\": \"#41AE3C\",\n        \"cmyk\": [\n          90,\n          0,\n          100,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"178207135\",\n        \"name\": \"橄榄石绿\",\n        \"tra_name\": \"橄欖石綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"gǎn lǎn shí lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          178,\n          207,\n          135\n        ],\n        \"hex\": \"#B2CF87\",\n        \"cmyk\": [\n          44,\n          3,\n          61,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"140194105\",\n        \"name\": \"水绿\",\n        \"tra_name\": \"水綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shuǐ lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          140,\n          194,\n          105\n        ],\n        \"hex\": \"#8CC269\",\n        \"cmyk\": [\n          62,\n          0,\n          76,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"183208122\",\n        \"name\": \"芦苇绿\",\n        \"tra_name\": \"蘆葦綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"lú wěi lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          183,\n          208,\n          122\n        ],\n        \"hex\": \"#B7D07A\",\n        \"cmyk\": [\n          42,\n          3,\n          67,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"210217122\",\n        \"name\": \"槐花黄绿\",\n        \"tra_name\": \"槐花黃綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"huái huā huáng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          217,\n          122\n        ],\n        \"hex\": \"#D2D97A\",\n        \"cmyk\": [\n          28,\n          6,\n          66,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"186207101\",\n        \"name\": \"苹果绿\",\n        \"tra_name\": \"蘋果綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"píng guǒ lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          186,\n          207,\n          101\n        ],\n        \"hex\": \"#BACF65\",\n        \"cmyk\": [\n          41,\n          4,\n          76,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"15019478\",\n        \"name\": \"芽绿\",\n        \"tra_name\": \"芽綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yá lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          150,\n          194,\n          78\n        ],\n        \"hex\": \"#96C24E\",\n        \"cmyk\": [\n          58,\n          1,\n          88,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19020154\",\n        \"name\": \"橄榄黄绿\",\n        \"tra_name\": \"橄欖黃綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"gǎn lǎn huáng lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          190,\n          201,\n          54\n        ],\n        \"hex\": \"#BEC936\",\n        \"cmyk\": [\n          38,\n          8,\n          94,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"9117435\",\n        \"name\": \"鹦鹉绿\",\n        \"tra_name\": \"鸚鵡綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yīng wǔ lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          91,\n          174,\n          35\n        ],\n        \"hex\": \"#5BAE23\",\n        \"cmyk\": [\n          81,\n          0,\n          100,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"376136\",\n        \"name\": \"油绿\",\n        \"tra_name\": \"油綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yóu lǜ\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          37,\n          61,\n          36\n        ],\n        \"hex\": \"#253D24\",\n        \"cmyk\": [\n          84,\n          64,\n          94,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"217227150\",\n        \"name\": \"牙绿\",\n        \"tra_name\": \"牙緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yá lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          217,\n          227,\n          150\n        ],\n        \"hex\": \"#D9E396\",\n        \"cmyk\": [\n          4,\n          0,\n          34,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"205219143\",\n        \"name\": \"苦瓜绿\",\n        \"tra_name\": \"苦瓜緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"kǔ guā lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          205,\n          219,\n          143\n        ],\n        \"hex\": \"#CDDB8F\",\n        \"cmyk\": [\n          6,\n          0,\n          35,\n          14\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"183178120\",\n        \"name\": \"枯绿\",\n        \"tra_name\": \"枯緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"kū lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          183,\n          178,\n          120\n        ],\n        \"hex\": \"#B7B278\",\n        \"cmyk\": [\n          0,\n          3,\n          34,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"126161116\",\n        \"name\": \"嫩草绿\",\n        \"tra_name\": \"嫩草緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"nèn cǎo lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          126,\n          161,\n          116\n        ],\n        \"hex\": \"#7EA174\",\n        \"cmyk\": [\n          22,\n          0,\n          28,\n          37\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"171204137\",\n        \"name\": \"浅草绿\",\n        \"tra_name\": \"浅草緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"qiǎn cǎo lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          171,\n          204,\n          137\n        ],\n        \"hex\": \"#ABCC89\",\n        \"cmyk\": [\n          16,\n          0,\n          33,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"165183149\",\n        \"name\": \"铜绿色\",\n        \"tra_name\": \"銅緑色\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"tóng lv̀ sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          165,\n          183,\n          149\n        ],\n        \"hex\": \"#A5B795\",\n        \"cmyk\": [\n          10,\n          0,\n          19,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"14816687\",\n        \"name\": \"黄绿\",\n        \"tra_name\": \"黄緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"huáng lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          148,\n          166,\n          87\n        ],\n        \"hex\": \"#94A657\",\n        \"cmyk\": [\n          11,\n          0,\n          48,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"14015054\",\n        \"name\": \"深芽绿\",\n        \"tra_name\": \"深芽緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shēn yá lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          140,\n          150,\n          54\n        ],\n        \"hex\": \"#8C9636\",\n        \"cmyk\": [\n          7,\n          0,\n          64,\n          41\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"148198107\",\n        \"name\": \"葱绿\",\n        \"tra_name\": \"葱緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cōng lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          148,\n          198,\n          107\n        ],\n        \"hex\": \"#94C66B\",\n        \"cmyk\": [\n          25,\n          0,\n          46,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"9011395\",\n        \"name\": \"夜绿色\",\n        \"tra_name\": \"夜緑色\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yè lv̀ sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          90,\n          113,\n          95\n        ],\n        \"hex\": \"#5A715F\",\n        \"cmyk\": [\n          20,\n          0,\n          16,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"202212186\",\n        \"name\": \"军绿\",\n        \"tra_name\": \"軍緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"jūn lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          202,\n          212,\n          186\n        ],\n        \"hex\": \"#CAD4BA\",\n        \"cmyk\": [\n          5,\n          0,\n          12,\n          17\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"789569\",\n        \"name\": \"苍绿\",\n        \"tra_name\": \"蒼緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cāng lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          78,\n          95,\n          69\n        ],\n        \"hex\": \"#4E5F45\",\n        \"cmyk\": [\n          18,\n          0,\n          27,\n          63\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"10610452\",\n        \"name\": \"橄榄绿\",\n        \"tra_name\": \"橄欖緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"gǎn lǎn lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          106,\n          104,\n          52\n        ],\n        \"hex\": \"#6A6834\",\n        \"cmyk\": [\n          0,\n          2,\n          51,\n          58\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"81150112\",\n        \"name\": \"冬瓜绿\",\n        \"tra_name\": \"冬瓜緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dōng guā lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          81,\n          150,\n          112\n        ],\n        \"hex\": \"#519670\",\n        \"cmyk\": [\n          46,\n          0,\n          25,\n          41\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"150187143\",\n        \"name\": \"荷茎绿\",\n        \"tra_name\": \"荷茎緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"hé jīng lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          150,\n          187,\n          143\n        ],\n        \"hex\": \"#96BB8F\",\n        \"cmyk\": [\n          20,\n          0,\n          24,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"7912687\",\n        \"name\": \"绿琉璃色\",\n        \"tra_name\": \"緑琉璃色\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"lv̀ líu lí sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          79,\n          126,\n          87\n        ],\n        \"hex\": \"#4F7E57\",\n        \"cmyk\": [\n          37,\n          0,\n          31,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"147180105\",\n        \"name\": \"嫩葱绿\",\n        \"tra_name\": \"嫩葱緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"nèn cōng lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          147,\n          180,\n          105\n        ],\n        \"hex\": \"#93B469\",\n        \"cmyk\": [\n          18,\n          0,\n          42,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"014289\",\n        \"name\": \"鹦鹉绿\",\n        \"tra_name\": \"鸚鵡緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yīng wǔ lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          142,\n          89\n        ],\n        \"hex\": \"#008E59\",\n        \"cmyk\": [\n          100,\n          0,\n          37,\n          44\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"011095\",\n        \"name\": \"翠绿\",\n        \"tra_name\": \"翠緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cùi lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          0,\n          110,\n          95\n        ],\n        \"hex\": \"#006E5F\",\n        \"cmyk\": [\n          100,\n          0,\n          14,\n          57\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"70129126\",\n        \"name\": \"湖绿\",\n        \"tra_name\": \"湖緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"hú lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          70,\n          129,\n          126\n        ],\n        \"hex\": \"#46817E\",\n        \"cmyk\": [\n          46,\n          0,\n          2,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22133112\",\n        \"name\": \"粗孔雀绿\",\n        \"tra_name\": \"粗孔雀緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"cū kǒng què lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          22,\n          133,\n          112\n        ],\n        \"hex\": \"#168570\",\n        \"cmyk\": [\n          83,\n          0,\n          16,\n          48\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"47143109\",\n        \"name\": \"深绿宝石\",\n        \"tra_name\": \"深緑宝石\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shēn lv̀ bǎo shí\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          47,\n          143,\n          109\n        ],\n        \"hex\": \"#2F8F6D\",\n        \"cmyk\": [\n          67,\n          0,\n          24,\n          44\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"92137135\",\n        \"name\": \"灰绿\",\n        \"tra_name\": \"灰緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"hūi lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          92,\n          137,\n          135\n        ],\n        \"hex\": \"#5C8987\",\n        \"cmyk\": [\n          33,\n          0,\n          1,\n          46\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"104146125\",\n        \"name\": \"冬绿\",\n        \"tra_name\": \"冬緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dōng lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          104,\n          146,\n          125\n        ],\n        \"hex\": \"#68927D\",\n        \"cmyk\": [\n          29,\n          0,\n          14,\n          43\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"0180131\",\n        \"name\": \"巴黎绿\",\n        \"tra_name\": \"巴黎緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"bā lí lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          180,\n          131\n        ],\n        \"hex\": \"#00B483\",\n        \"cmyk\": [\n          100,\n          0,\n          27,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"138194142\",\n        \"name\": \"果绿\",\n        \"tra_name\": \"果緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"guǒ lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          138,\n          194,\n          142\n        ],\n        \"hex\": \"#8AC28E\",\n        \"cmyk\": [\n          29,\n          0,\n          27,\n          24\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"136213185\",\n        \"name\": \"玉绿\",\n        \"tra_name\": \"玉緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yù lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          136,\n          213,\n          185\n        ],\n        \"hex\": \"#88D5B9\",\n        \"cmyk\": [\n          36,\n          0,\n          13,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"132192190\",\n        \"name\": \"浅松绿\",\n        \"tra_name\": \"浅松緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"qiǎn sōng lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          132,\n          192,\n          190\n        ],\n        \"hex\": \"#84C0BE\",\n        \"cmyk\": [\n          31,\n          0,\n          1,\n          25\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"103180176\",\n        \"name\": \"深松绿\",\n        \"tra_name\": \"深松緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shēn sōng lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          103,\n          180,\n          176\n        ],\n        \"hex\": \"#67B4B0\",\n        \"cmyk\": [\n          43,\n          0,\n          2,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"169225211\",\n        \"name\": \"浅鲜绿\",\n        \"tra_name\": \"浅鮮緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"qiǎn xiān lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          169,\n          225,\n          211\n        ],\n        \"hex\": \"#A9E1D3\",\n        \"cmyk\": [\n          25,\n          0,\n          6,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"144202175\",\n        \"name\": \"三绿\",\n        \"tra_name\": \"三緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"sān lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          144,\n          202,\n          175\n        ],\n        \"hex\": \"#90CAAF\",\n        \"cmyk\": [\n          29,\n          0,\n          13,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"186222209\",\n        \"name\": \"枝绿\",\n        \"tra_name\": \"枝緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"zhī lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          186,\n          222,\n          209\n        ],\n        \"hex\": \"#BADED1\",\n        \"cmyk\": [\n          16,\n          0,\n          6,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"174196183\",\n        \"name\": \"淡灰绿\",\n        \"tra_name\": \"淡灰緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dàn hūi lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          174,\n          196,\n          183\n        ],\n        \"hex\": \"#AEC4B7\",\n        \"cmyk\": [\n          11,\n          0,\n          7,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"184214194\",\n        \"name\": \"淡绿\",\n        \"tra_name\": \"淡緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"dàn lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          184,\n          214,\n          194\n        ],\n        \"hex\": \"#B8D6C2\",\n        \"cmyk\": [\n          14,\n          0,\n          9,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"187226214\",\n        \"name\": \"浅水绿\",\n        \"tra_name\": \"浅水緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"qiǎn shǔi lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          187,\n          226,\n          214\n        ],\n        \"hex\": \"#BBE2D6\",\n        \"cmyk\": [\n          17,\n          0,\n          5,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"227239209\",\n        \"name\": \"春绿\",\n        \"tra_name\": \"春緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"chūn lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          227,\n          239,\n          209\n        ],\n        \"hex\": \"#E3EFD1\",\n        \"cmyk\": [\n          5,\n          0,\n          13,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"184200183\",\n        \"name\": \"锈绿\",\n        \"tra_name\": \"銹緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"xìu lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          184,\n          200,\n          183\n        ],\n        \"hex\": \"#B8C8B7\",\n        \"cmyk\": [\n          8,\n          0,\n          8,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"127135122\",\n        \"name\": \"中条虾绿\",\n        \"tra_name\": \"中条蝦緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"zhōng tiáo xiā lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          127,\n          135,\n          122\n        ],\n        \"hex\": \"#7F877A\",\n        \"cmyk\": [\n          6,\n          0,\n          10,\n          47\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"190197181\",\n        \"name\": \"松绿色\",\n        \"tra_name\": \"松緑色\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"sōng lv̀ sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          190,\n          197,\n          181\n        ],\n        \"hex\": \"#BEC5B5\",\n        \"cmyk\": [\n          4,\n          0,\n          8,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"100115112\",\n        \"name\": \"卡其绿\",\n        \"tra_name\": \"卡其緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"qiǎ qí lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          100,\n          115,\n          112\n        ],\n        \"hex\": \"#647370\",\n        \"cmyk\": [\n          13,\n          0,\n          3,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6111083\",\n        \"name\": \"老绿\",\n        \"tra_name\": \"老緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"lǎo lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          61,\n          110,\n          83\n        ],\n        \"hex\": \"#3D6E53\",\n        \"cmyk\": [\n          45,\n          0,\n          25,\n          57\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"639180\",\n        \"name\": \"墨绿\",\n        \"tra_name\": \"墨緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"mò lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          63,\n          91,\n          80\n        ],\n        \"hex\": \"#3F5B50\",\n        \"cmyk\": [\n          31,\n          0,\n          12,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"929779\",\n        \"name\": \"茶绿\",\n        \"tra_name\": \"茶緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"chá lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          92,\n          97,\n          79\n        ],\n        \"hex\": \"#5C614F\",\n        \"cmyk\": [\n          5,\n          0,\n          19,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"949666\",\n        \"name\": \"鉄绿\",\n        \"tra_name\": \"鉄緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"tiě lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          94,\n          96,\n          66\n        ],\n        \"hex\": \"#5E6042\",\n        \"cmyk\": [\n          2,\n          0,\n          31,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"698574\",\n        \"name\": \"油绿\",\n        \"tra_name\": \"油緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"yóu lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          69,\n          85,\n          74\n        ],\n        \"hex\": \"#45554A\",\n        \"cmyk\": [\n          19,\n          0,\n          13,\n          67\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"7411193\",\n        \"name\": \"暗苔绿\",\n        \"tra_name\": \"暗苔緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"àn tái lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          74,\n          111,\n          93\n        ],\n        \"hex\": \"#4A6F5D\",\n        \"cmyk\": [\n          33,\n          0,\n          16,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"218497\",\n        \"name\": \"毛绿\",\n        \"tra_name\": \"毛緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"máo lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          21,\n          84,\n          97\n        ],\n        \"hex\": \"#155461\",\n        \"cmyk\": [\n          78,\n          13,\n          0,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"0130139\",\n        \"name\": \"品绿\",\n        \"tra_name\": \"品緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"pǐn lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          130,\n          139\n        ],\n        \"hex\": \"#00828B\",\n        \"cmyk\": [\n          100,\n          6,\n          0,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"09190\",\n        \"name\": \"沙绿\",\n        \"tra_name\": \"沙緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shā lv̀\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          0,\n          91,\n          90\n        ],\n        \"hex\": \"#005B5A\",\n        \"cmyk\": [\n          100,\n          0,\n          1,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"175200186\",\n        \"name\": \"奶绿\",\n        \"tra_name\": \"奶緑\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"nǎi lv̀\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          175,\n          200,\n          186\n        ],\n        \"hex\": \"#AFC8BA\",\n        \"cmyk\": [\n          12,\n          0,\n          7,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2216981\",\n        \"name\": \"石绿\",\n        \"tra_name\": \"石綠\",\n        \"color_series\": \"green\",\n        \"pinyin\": \"shí lǜ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          22,\n          169,\n          81\n        ],\n        \"hex\": \"#16A951\",\n        \"cmyk\": [\n          87,\n          0,\n          52,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ],\n    \"cyan\": [\n      {\n        \"id\": \"12014698\",\n        \"name\": \"竹青\",\n        \"tra_name\": \"竹青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"zhú qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          120,\n          146,\n          98\n        ],\n        \"hex\": \"#789262\",\n        \"cmyk\": [\n          18,\n          0,\n          33,\n          43\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1418458\",\n        \"name\": \"葱青\",\n        \"tra_name\": \"蔥青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"cōng qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          14,\n          184,\n          58\n        ],\n        \"hex\": \"#0EB83A\",\n        \"cmyk\": [\n          92,\n          0,\n          68,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1016368\",\n        \"name\": \"青葱\",\n        \"tra_name\": \"青蔥\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng cōng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          10,\n          163,\n          68\n        ],\n        \"hex\": \"#0AA344\",\n        \"cmyk\": [\n          94,\n          0,\n          58,\n          36\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"27209165\",\n        \"name\": \"碧色\",\n        \"tra_name\": \"碧色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"bì sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          27,\n          209,\n          165\n        ],\n        \"hex\": \"#1BD1A5\",\n        \"cmyk\": [\n          87,\n          0,\n          21,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"72192163\",\n        \"name\": \"青碧\",\n        \"tra_name\": \"青碧\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng bì\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          72,\n          192,\n          163\n        ],\n        \"hex\": \"#48C0A3\",\n        \"cmyk\": [\n          62,\n          0,\n          15,\n          25\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"0224158\",\n        \"name\": \"青色\",\n        \"tra_name\": \"青色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          224,\n          158\n        ],\n        \"hex\": \"#00E09E\",\n        \"cmyk\": [\n          100,\n          0,\n          29,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"0224121\",\n        \"name\": \"青翠\",\n        \"tra_name\": \"青翠\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng cuì\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          224,\n          121\n        ],\n        \"hex\": \"#00E079\",\n        \"cmyk\": [\n          100,\n          0,\n          46,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"192235215\",\n        \"name\": \"青白\",\n        \"tra_name\": \"青白\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          192,\n          235,\n          215\n        ],\n        \"hex\": \"#C0EBD7\",\n        \"cmyk\": [\n          18,\n          0,\n          9,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"224238232\",\n        \"name\": \"鸭卵青\",\n        \"tra_name\": \"鴨卵青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"yā luǎn qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          224,\n          238,\n          232\n        ],\n        \"hex\": \"#E0EEE8\",\n        \"cmyk\": [\n          6,\n          0,\n          3,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"187205197\",\n        \"name\": \"蟹壳青\",\n        \"tra_name\": \"蟹殼青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"xiè ké qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          187,\n          205,\n          197\n        ],\n        \"hex\": \"#BBCDC5\",\n        \"cmyk\": [\n          9,\n          0,\n          4,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"667680\",\n        \"name\": \"鸦青\",\n        \"tra_name\": \"鴉青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"yā qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          66,\n          76,\n          80\n        ],\n        \"hex\": \"#424C50\",\n        \"cmyk\": [\n          18,\n          5,\n          0,\n          69\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"15020684\",\n        \"name\": \"豆青\",\n        \"tra_name\": \"豆青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"dòu qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          150,\n          206,\n          84\n        ],\n        \"hex\": \"#96CE54\",\n        \"cmyk\": [\n          27,\n          0,\n          59,\n          19\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"46223163\",\n        \"name\": \"玉色\",\n        \"tra_name\": \"玉色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"yù sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          46,\n          223,\n          163\n        ],\n        \"hex\": \"#2EDFA3\",\n        \"cmyk\": [\n          79,\n          0,\n          27,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23124176\",\n        \"name\": \"靛青\",\n        \"tra_name\": \"靛青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"diàn qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          23,\n          124,\n          176\n        ],\n        \"hex\": \"#177CB0\",\n        \"cmyk\": [\n          87,\n          30,\n          0,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"4678126\",\n        \"name\": \"藏青\",\n        \"tra_name\": \"藏青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"zàng qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          46,\n          78,\n          126\n        ],\n        \"hex\": \"#2E4E7E\",\n        \"cmyk\": [\n          63,\n          38,\n          0,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"051113\",\n        \"name\": \"绀青\",\n        \"tra_name\": \"紺青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"gàn qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          0,\n          51,\n          113\n        ],\n        \"hex\": \"#003371\",\n        \"cmyk\": [\n          100,\n          55,\n          0,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"12829174\",\n        \"name\": \"青莲\",\n        \"tra_name\": \"青蓮\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng lián\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          128,\n          29,\n          174\n        ],\n        \"hex\": \"#801DAE\",\n        \"cmyk\": [\n          26,\n          83,\n          0,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"76141174\",\n        \"name\": \"群青\",\n        \"tra_name\": \"群青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qún qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          76,\n          141,\n          174\n        ],\n        \"hex\": \"#4C8DAE\",\n        \"cmyk\": [\n          56,\n          19,\n          0,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"176164227\",\n        \"name\": \"雪青\",\n        \"tra_name\": \"雪青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"xuě qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          176,\n          164,\n          227\n        ],\n        \"hex\": \"#B0A4E3\",\n        \"cmyk\": [\n          22,\n          28,\n          0,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"615979\",\n        \"name\": \"玄青\",\n        \"tra_name\": \"玄青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"xuán qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          61,\n          59,\n          79\n        ],\n        \"hex\": \"#3D3B4F\",\n        \"cmyk\": [\n          23,\n          25,\n          0,\n          69\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"8097109\",\n        \"name\": \"墨色\",\n        \"tra_name\": \"墨色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"mò sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          80,\n          97,\n          109\n        ],\n        \"hex\": \"#50616D\",\n        \"cmyk\": [\n          27,\n          11,\n          0,\n          57\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"658593\",\n        \"name\": \"黯\",\n        \"tra_name\": \"黯\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"àn\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          65,\n          85,\n          93\n        ],\n        \"hex\": \"#41555D\",\n        \"cmyk\": [\n          30,\n          9,\n          0,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"117135138\",\n        \"name\": \"苍色\",\n        \"tra_name\": \"蒼色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"cāng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          117,\n          135,\n          138\n        ],\n        \"hex\": \"#75878A\",\n        \"cmyk\": [\n          15,\n          2,\n          0,\n          46\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"115151171\",\n        \"name\": \"苍青\",\n        \"tra_name\": \"蒼青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"cāng qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          115,\n          151,\n          171\n        ],\n        \"hex\": \"#7397AB\",\n        \"cmyk\": [\n          33,\n          12,\n          0,\n          33\n        ],\n        \"desc\": \"\",\n        \"figure\": \"liangduohua.png?width=12rem\"\n      },\n      {\n        \"id\": \"578296\",\n        \"name\": \"苍黑\",\n        \"tra_name\": \"蒼黑\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"cāng hēi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          57,\n          82,\n          96\n        ],\n        \"hex\": \"#395260\",\n        \"cmyk\": [\n          41,\n          15,\n          0,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"sundown.png\"\n      },\n      {\n        \"id\": \"136173166\",\n        \"name\": \"水色\",\n        \"tra_name\": \"水色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"shuǐ sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          136,\n          173,\n          166\n        ],\n        \"hex\": \"#88ADA6\",\n        \"cmyk\": [\n          21,\n          0,\n          4,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"211224243\",\n        \"name\": \"淡青\",\n        \"tra_name\": \"淡青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"dàn qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          211,\n          224,\n          243\n        ],\n        \"hex\": \"#D3E0F3\",\n        \"cmyk\": [\n          13,\n          8,\n          0,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"huaping.png?width=18rem\"\n      },\n      {\n        \"id\": \"214236240\",\n        \"name\": \"月白\",\n        \"tra_name\": \"月白\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"yuè bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          214,\n          236,\n          240\n        ],\n        \"hex\": \"#D6ECF0\",\n        \"cmyk\": [\n          11,\n          2,\n          0,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"227249253\",\n        \"name\": \"莹白\",\n        \"tra_name\": \"瑩白\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"yíng bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          227,\n          249,\n          253\n        ],\n        \"hex\": \"#E3F9FD\",\n        \"cmyk\": [\n          10,\n          2,\n          0,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13511462\",\n        \"name\": \"鲛青\",\n        \"tra_name\": \"鮫青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"jiāo qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          135,\n          114,\n          62\n        ],\n        \"hex\": \"#87723E\",\n        \"cmyk\": [\n          35,\n          44,\n          80,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"13938113\",\n        \"name\": \"青莲\",\n        \"tra_name\": \"青蓮\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng lián\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          139,\n          38,\n          113\n        ],\n        \"hex\": \"#8B2671\",\n        \"cmyk\": [\n          43,\n          97,\n          19,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"35118183\",\n        \"name\": \"花青\",\n        \"tra_name\": \"花青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"huā qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          35,\n          118,\n          183\n        ],\n        \"hex\": \"#2376B7\",\n        \"cmyk\": [\n          95,\n          45,\n          10,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23114180\",\n        \"name\": \"群青\",\n        \"tra_name\": \"群青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qún qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          23,\n          114,\n          180\n        ],\n        \"hex\": \"#1772B4\",\n        \"cmyk\": [\n          99,\n          48,\n          11,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"99187208\",\n        \"name\": \"霁青\",\n        \"tra_name\": \"霽青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"jì qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          99,\n          187,\n          208\n        ],\n        \"hex\": \"#63BBD0\",\n        \"cmyk\": [\n          74,\n          2,\n          24,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"92179204\",\n        \"name\": \"碧青\",\n        \"tra_name\": \"碧青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"bì qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          92,\n          179,\n          204\n        ],\n        \"hex\": \"#5CB3CC\",\n        \"cmyk\": [\n          77,\n          7,\n          24,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"34162195\",\n        \"name\": \"海青\",\n        \"tra_name\": \"海青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"hǎi qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          34,\n          162,\n          195\n        ],\n        \"hex\": \"#22A2C3\",\n        \"cmyk\": [\n          92,\n          10,\n          25,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2297171\",\n        \"name\": \"靛青\",\n        \"tra_name\": \"靛青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"diàn qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          22,\n          97,\n          171\n        ],\n        \"hex\": \"#1661AB\",\n        \"cmyk\": [\n          100,\n          60,\n          8,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"203552\",\n        \"name\": \"钢青\",\n        \"tra_name\": \"鋼青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"gāng qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          20,\n          35,\n          52\n        ],\n        \"hex\": \"#142334\",\n        \"cmyk\": [\n          100,\n          82,\n          51,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"134157157\",\n        \"name\": \"虾壳青\",\n        \"tra_name\": \"蝦殼青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"xiā ké qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          134,\n          157,\n          157\n        ],\n        \"hex\": \"#869D9D\",\n        \"cmyk\": [\n          56,\n          26,\n          36,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"155174134\",\n        \"name\": \"青豆色\",\n        \"tra_name\": \"青豆色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng dòu sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          155,\n          174,\n          134\n        ],\n        \"hex\": \"#9BAE86\",\n        \"cmyk\": [\n          11,\n          0,\n          23,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"86149151\",\n        \"name\": \"碧玉石\",\n        \"tra_name\": \"碧玉石\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"bì yù shí\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          86,\n          149,\n          151\n        ],\n        \"hex\": \"#569597\",\n        \"cmyk\": [\n          43,\n          1,\n          0,\n          41\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"209227219\",\n        \"name\": \"鸭蛋青\",\n        \"tra_name\": \"鴨蛋青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"yā dàn qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          209,\n          227,\n          219\n        ],\n        \"hex\": \"#D1E3DB\",\n        \"cmyk\": [\n          8,\n          0,\n          4,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"202221213\",\n        \"name\": \"浅青瓷釉色\",\n        \"tra_name\": \"浅青瓷釉色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qiǎn qīng cí yòu sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          202,\n          221,\n          213\n        ],\n        \"hex\": \"#CADDD5\",\n        \"cmyk\": [\n          9,\n          0,\n          4,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"177197180\",\n        \"name\": \"龙泉青瓷釉色\",\n        \"tra_name\": \"龍泉青瓷釉色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"lóng quán qīng cí yòu sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          177,\n          197,\n          180\n        ],\n        \"hex\": \"#B1C5B4\",\n        \"cmyk\": [\n          10,\n          0,\n          9,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"122152142\",\n        \"name\": \"蟹青\",\n        \"tra_name\": \"蟹青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"xiè qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          122,\n          152,\n          142\n        ],\n        \"hex\": \"#7A988E\",\n        \"cmyk\": [\n          20,\n          0,\n          7,\n          40\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"122152139\",\n        \"name\": \"青虾色\",\n        \"tra_name\": \"青蝦色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng xiā sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          122,\n          152,\n          139\n        ],\n        \"hex\": \"#7A988B\",\n        \"cmyk\": [\n          20,\n          0,\n          9,\n          40\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"94144184\",\n        \"name\": \"竹月色\",\n        \"tra_name\": \"竹月色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"zhú yuè sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          94,\n          144,\n          184\n        ],\n        \"hex\": \"#5E90B8\",\n        \"cmyk\": [\n          49,\n          22,\n          0,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"37120181\",\n        \"name\": \"深竹月\",\n        \"tra_name\": \"深竹月\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"shēn zhú yuè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          37,\n          120,\n          181\n        ],\n        \"hex\": \"#2578B5\",\n        \"cmyk\": [\n          80,\n          34,\n          0,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"58137176\",\n        \"name\": \"毛月色\",\n        \"tra_name\": \"毛月色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"máo yuè sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          58,\n          137,\n          176\n        ],\n        \"hex\": \"#3A89B0\",\n        \"cmyk\": [\n          67,\n          22,\n          0,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"4395142\",\n        \"name\": \"深毛月色\",\n        \"tra_name\": \"深毛月色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"shēn máo yuè sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          43,\n          95,\n          142\n        ],\n        \"hex\": \"#2B5F8E\",\n        \"cmyk\": [\n          70,\n          33,\n          0,\n          44\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"868149\",\n        \"name\": \"群青\",\n        \"tra_name\": \"群青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qún qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          8,\n          68,\n          149\n        ],\n        \"hex\": \"#084495\",\n        \"cmyk\": [\n          95,\n          54,\n          0,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6372108\",\n        \"name\": \"绀青\",\n        \"tra_name\": \"紺青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"gàn qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          63,\n          72,\n          108\n        ],\n        \"hex\": \"#3F486C\",\n        \"cmyk\": [\n          42,\n          33,\n          0,\n          58\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"626061\",\n        \"name\": \"元青\",\n        \"tra_name\": \"元青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"yuán qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          62,\n          60,\n          61\n        ],\n        \"hex\": \"#3E3C3D\",\n        \"cmyk\": [\n          0,\n          3,\n          2,\n          76\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"647487\",\n        \"name\": \"鉄青\",\n        \"tra_name\": \"鉄青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"tiě qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          64,\n          74,\n          87\n        ],\n        \"hex\": \"#404A57\",\n        \"cmyk\": [\n          26,\n          15,\n          0,\n          66\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"104127165\",\n        \"name\": \"青金色\",\n        \"tra_name\": \"青金色\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"qīng jīn sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          104,\n          127,\n          165\n        ],\n        \"hex\": \"#687FA5\",\n        \"cmyk\": [\n          37,\n          23,\n          0,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"84107131\",\n        \"name\": \"花青\",\n        \"tra_name\": \"花青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"huā qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          84,\n          107,\n          131\n        ],\n        \"hex\": \"#546B83\",\n        \"cmyk\": [\n          36,\n          18,\n          0,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"4394125\",\n        \"name\": \"沙青\",\n        \"tra_name\": \"沙青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"shā qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          43,\n          94,\n          125\n        ],\n        \"hex\": \"#2B5E7D\",\n        \"cmyk\": [\n          66,\n          25,\n          0,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22133169\",\n        \"name\": \"石青\",\n        \"tra_name\": \"石青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"shí qīng\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          22,\n          133,\n          169\n        ],\n        \"hex\": \"#1685A9\",\n        \"cmyk\": [\n          87,\n          21,\n          0,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"052114\",\n        \"name\": \"花青\",\n        \"tra_name\": \"花青\",\n        \"color_series\": \"cyan\",\n        \"pinyin\": \"huā qīng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          0,\n          52,\n          114\n        ],\n        \"hex\": \"#003472\",\n        \"cmyk\": [\n          100,\n          54,\n          0,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ],\n    \"blue\": [\n      {\n        \"id\": \"68206246\",\n        \"name\": \"蓝\",\n        \"tra_name\": \"藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          68,\n          206,\n          246\n        ],\n        \"hex\": \"#44CEF6\",\n        \"cmyk\": [\n          72,\n          16,\n          0,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"682121\",\n        \"name\": \"靛蓝\",\n        \"tra_name\": \"靛藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"diàn lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          6,\n          82,\n          121\n        ],\n        \"hex\": \"#065279\",\n        \"cmyk\": [\n          95,\n          32,\n          0,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"62237231\",\n        \"name\": \"碧蓝\",\n        \"tra_name\": \"碧藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"bì lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          62,\n          237,\n          231\n        ],\n        \"hex\": \"#3EEDE7\",\n        \"cmyk\": [\n          74,\n          0,\n          3,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"112243255\",\n        \"name\": \"蔚蓝\",\n        \"tra_name\": \"蔚藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"wèi lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          112,\n          243,\n          255\n        ],\n        \"hex\": \"#70F3FF\",\n        \"cmyk\": [\n          56,\n          5,\n          0,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"7592196\",\n        \"name\": \"宝蓝\",\n        \"tra_name\": \"寶藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"bǎo lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          75,\n          92,\n          196\n        ],\n        \"hex\": \"#4B5CC4\",\n        \"cmyk\": [\n          62,\n          53,\n          0,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"5946126\",\n        \"name\": \"藏蓝\",\n        \"tra_name\": \"藏藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"zàng lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          59,\n          46,\n          126\n        ],\n        \"hex\": \"#3B2E7E\",\n        \"cmyk\": [\n          53,\n          63,\n          0,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"7466102\",\n        \"name\": \"黛\",\n        \"tra_name\": \"黛\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"dài\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          74,\n          66,\n          102\n        ],\n        \"hex\": \"#4A4266\",\n        \"cmyk\": [\n          27,\n          35,\n          0,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6680102\",\n        \"name\": \"黛蓝\",\n        \"tra_name\": \"黛藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"dài lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          66,\n          80,\n          102\n        ],\n        \"hex\": \"#425066\",\n        \"cmyk\": [\n          35,\n          22,\n          0,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"222435\",\n        \"name\": \"漆黑\",\n        \"tra_name\": \"漆黑\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"qī hēi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          22,\n          24,\n          35\n        ],\n        \"hex\": \"#161823\",\n        \"cmyk\": [\n          37,\n          31,\n          0,\n          86\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"107104130\",\n        \"name\": \"黝\",\n        \"tra_name\": \"黝\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yǒu\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          107,\n          104,\n          130\n        ],\n        \"hex\": \"#6B6882\",\n        \"cmyk\": [\n          18,\n          20,\n          0,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"210240244\",\n        \"name\": \"水蓝\",\n        \"tra_name\": \"水藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"shuǐ lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          210,\n          240,\n          244\n        ],\n        \"hex\": \"#D2F0F4\",\n        \"cmyk\": [\n          14,\n          2,\n          0,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"moon.png?width=18rem\"\n      },\n      {\n        \"id\": \"48223243\",\n        \"name\": \"湖蓝\",\n        \"tra_name\": \"湖藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"hú lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          48,\n          223,\n          243\n        ],\n        \"hex\": \"#30DFF3\",\n        \"cmyk\": [\n          80,\n          8,\n          0,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"shuanghe.png\"\n      },\n      {\n        \"id\": \"39117182\",\n        \"name\": \"景泰蓝\",\n        \"tra_name\": \"景泰藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"jǐng tài lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          39,\n          117,\n          182\n        ],\n        \"hex\": \"#2775B6\",\n        \"cmyk\": [\n          95,\n          46,\n          10,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"36116181\",\n        \"name\": \"尼罗蓝\",\n        \"tra_name\": \"尼羅藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"ní luó lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          36,\n          116,\n          181\n        ],\n        \"hex\": \"#2474B5\",\n        \"cmyk\": [\n          96,\n          47,\n          11,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"147181207\",\n        \"name\": \"星蓝\",\n        \"tra_name\": \"星藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"xīng lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          147,\n          181,\n          207\n        ],\n        \"hex\": \"#93B5CF\",\n        \"cmyk\": [\n          53,\n          19,\n          15,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"97154195\",\n        \"name\": \"羽扇豆蓝\",\n        \"tra_name\": \"羽扇豆藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yǔ shàn dòu lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          97,\n          154,\n          195\n        ],\n        \"hex\": \"#619AC3\",\n        \"cmyk\": [\n          74,\n          27,\n          16,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"86152195\",\n        \"name\": \"睛蓝\",\n        \"tra_name\": \"睛藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"jīng lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          86,\n          152,\n          195\n        ],\n        \"hex\": \"#5698C3\",\n        \"cmyk\": [\n          78,\n          27,\n          17,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"33119184\",\n        \"name\": \"虹蓝\",\n        \"tra_name\": \"虹藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"hóng lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          33,\n          119,\n          184\n        ],\n        \"hex\": \"#2177B8\",\n        \"cmyk\": [\n          99,\n          44,\n          10,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"176213223\",\n        \"name\": \"湖水蓝\",\n        \"tra_name\": \"湖水藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"hú shuǐ lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          176,\n          213,\n          223\n        ],\n        \"hex\": \"#B0D5DF\",\n        \"cmyk\": [\n          43,\n          4,\n          16,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"138188209\",\n        \"name\": \"秋波蓝\",\n        \"tra_name\": \"秋波藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"qiū bō lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          138,\n          188,\n          209\n        ],\n        \"hex\": \"#8ABCD1\",\n        \"cmyk\": [\n          59,\n          12,\n          19,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"102169201\",\n        \"name\": \"涧石蓝\",\n        \"tra_name\": \"澗石藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"jiàn shí lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          102,\n          169,\n          201\n        ],\n        \"hex\": \"#66A9C9\",\n        \"cmyk\": [\n          73,\n          17,\n          20,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"41131187\",\n        \"name\": \"潮蓝\",\n        \"tra_name\": \"潮藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"cháo lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          41,\n          131,\n          187\n        ],\n        \"hex\": \"#2983BB\",\n        \"cmyk\": [\n          93,\n          36,\n          15,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"36134185\",\n        \"name\": \"宝石蓝\",\n        \"tra_name\": \"寶石藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"bǎo shí lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          36,\n          134,\n          185\n        ],\n        \"hex\": \"#2486B9\",\n        \"cmyk\": [\n          94,\n          32,\n          17,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"22119179\",\n        \"name\": \"天蓝\",\n        \"tra_name\": \"天藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"tiān lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          22,\n          119,\n          179\n        ],\n        \"hex\": \"#1677B3\",\n        \"cmyk\": [\n          98,\n          43,\n          14,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18107174\",\n        \"name\": \"柏林蓝\",\n        \"tra_name\": \"柏林藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"bó lín lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          18,\n          107,\n          174\n        ],\n        \"hex\": \"#126BAE\",\n        \"cmyk\": [\n          100,\n          52,\n          11,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"26148188\",\n        \"name\": \"钴蓝\",\n        \"tra_name\": \"鈷藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"gǔ lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          26,\n          148,\n          188\n        ],\n        \"hex\": \"#1A94BC\",\n        \"cmyk\": [\n          94,\n          16,\n          23,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"21139184\",\n        \"name\": \"鸢尾蓝\",\n        \"tra_name\": \"鳶尾藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yuān wěi lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          21,\n          139,\n          184\n        ],\n        \"hex\": \"#158BB8\",\n        \"cmyk\": [\n          95,\n          25,\n          20,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"17119176\",\n        \"name\": \"牵牛花蓝\",\n        \"tra_name\": \"牽牛花藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"qiān niú huā lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          17,\n          119,\n          176\n        ],\n        \"hex\": \"#1177B0\",\n        \"cmyk\": [\n          98,\n          42,\n          16,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1589164\",\n        \"name\": \"飞燕草蓝\",\n        \"tra_name\": \"飛燕草藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"fēi yàn cǎo lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          15,\n          89,\n          164\n        ],\n        \"hex\": \"#0F59A4\",\n        \"cmyk\": [\n          100,\n          65,\n          11,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"43115175\",\n        \"name\": \"品蓝\",\n        \"tra_name\": \"品藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"pǐn lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          43,\n          115,\n          175\n        ],\n        \"hex\": \"#2B73AF\",\n        \"cmyk\": [\n          95,\n          47,\n          14,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"49112167\",\n        \"name\": \"安安蓝\",\n        \"tra_name\": \"安安藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"ān ān lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          49,\n          112,\n          167\n        ],\n        \"hex\": \"#3170A7\",\n        \"cmyk\": [\n          93,\n          49,\n          17,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"152035\",\n        \"name\": \"钢蓝\",\n        \"tra_name\": \"鋼藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"gāng lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          15,\n          20,\n          35\n        ],\n        \"hex\": \"#0F1423\",\n        \"cmyk\": [\n          100,\n          89,\n          54,\n          79\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"186204217\",\n        \"name\": \"云水蓝\",\n        \"tra_name\": \"雲水藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yún shuǐ lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          186,\n          204,\n          217\n        ],\n        \"hex\": \"#BACCD9\",\n        \"cmyk\": [\n          35,\n          13,\n          13,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"143178201\",\n        \"name\": \"晴山蓝\",\n        \"tra_name\": \"晴山藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"qíng shān lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          143,\n          178,\n          201\n        ],\n        \"hex\": \"#8FB2C9\",\n        \"cmyk\": [\n          55,\n          20,\n          18,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2185154\",\n        \"name\": \"海涛蓝\",\n        \"tra_name\": \"海濤藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"hǎi tāo lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          21,\n          85,\n          154\n        ],\n        \"hex\": \"#15559A\",\n        \"cmyk\": [\n          100,\n          67,\n          16,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"78124161\",\n        \"name\": \"蝶翅蓝\",\n        \"tra_name\": \"蝶翅藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"dié chì lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          78,\n          124,\n          161\n        ],\n        \"hex\": \"#4E7CA1\",\n        \"cmyk\": [\n          81,\n          41,\n          24,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"52108156\",\n        \"name\": \"海军蓝\",\n        \"tra_name\": \"海軍藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"hǎi jūn lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          52,\n          108,\n          156\n        ],\n        \"hex\": \"#346C9C\",\n        \"cmyk\": [\n          93,\n          50,\n          21,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"192436\",\n        \"name\": \"燕颔蓝\",\n        \"tra_name\": \"燕頷藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yàn hàn lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          19,\n          24,\n          36\n        ],\n        \"hex\": \"#131824\",\n        \"cmyk\": [\n          100,\n          86,\n          54,\n          78\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"195215223\",\n        \"name\": \"井天蓝\",\n        \"tra_name\": \"井天藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"jǐng tiān lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          195,\n          215,\n          223\n        ],\n        \"hex\": \"#C3D7DF\",\n        \"cmyk\": [\n          32,\n          8,\n          13,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"47144185\",\n        \"name\": \"云山蓝\",\n        \"tra_name\": \"雲山藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yún shān lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          47,\n          144,\n          185\n        ],\n        \"hex\": \"#2F90B9\",\n        \"cmyk\": [\n          91,\n          24,\n          22,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"23129181\",\n        \"name\": \"釉蓝\",\n        \"tra_name\": \"釉藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yòu lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          23,\n          129,\n          181\n        ],\n        \"hex\": \"#1781B5\",\n        \"cmyk\": [\n          96,\n          34,\n          18,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"17101154\",\n        \"name\": \"搪磁蓝\",\n        \"tra_name\": \"搪磁藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"táng cí lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          17,\n          101,\n          154\n        ],\n        \"hex\": \"#11659A\",\n        \"cmyk\": [\n          100,\n          53,\n          21,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2074116\",\n        \"name\": \"鷃蓝\",\n        \"tra_name\": \"鷃藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yàn lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          20,\n          74,\n          116\n        ],\n        \"hex\": \"#144A74\",\n        \"cmyk\": [\n          100,\n          68,\n          32,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"284156\",\n        \"name\": \"鸽蓝\",\n        \"tra_name\": \"鴿藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"gē lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          28,\n          41,\n          56\n        ],\n        \"hex\": \"#1C2938\",\n        \"cmyk\": [\n          100,\n          77,\n          50,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"163148\",\n        \"name\": \"暗蓝\",\n        \"tra_name\": \"暗藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"àn lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          16,\n          31,\n          48\n        ],\n        \"hex\": \"#101F30\",\n        \"cmyk\": [\n          100,\n          84,\n          51,\n          68\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"198230232\",\n        \"name\": \"海天蓝\",\n        \"tra_name\": \"海天藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"hǎi tiān lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          198,\n          230,\n          232\n        ],\n        \"hex\": \"#C6E6E8\",\n        \"cmyk\": [\n          33,\n          0,\n          14,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"147213220\",\n        \"name\": \"清水蓝\",\n        \"tra_name\": \"清水藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"qīng shuǐ lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          147,\n          213,\n          220\n        ],\n        \"hex\": \"#93D5DC\",\n        \"cmyk\": [\n          57,\n          0,\n          22,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"81196211\",\n        \"name\": \"瀑布蓝\",\n        \"tra_name\": \"瀑布藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"pù bù lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          81,\n          196,\n          211\n        ],\n        \"hex\": \"#51C4D3\",\n        \"cmyk\": [\n          79,\n          0,\n          27,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"41183203\",\n        \"name\": \"蔚蓝\",\n        \"tra_name\": \"蔚藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"wèi lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          41,\n          183,\n          203\n        ],\n        \"hex\": \"#29B7CB\",\n        \"cmyk\": [\n          89,\n          0,\n          29,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"14176201\",\n        \"name\": \"孔雀蓝\",\n        \"tra_name\": \"孔雀藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"kǒng què lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          14,\n          176,\n          201\n        ],\n        \"hex\": \"#0EB0C9\",\n        \"cmyk\": [\n          92,\n          0,\n          28,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"16174194\",\n        \"name\": \"甸子蓝\",\n        \"tra_name\": \"甸子藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"diàn zǐ lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          16,\n          174,\n          194\n        ],\n        \"hex\": \"#10AEC2\",\n        \"cmyk\": [\n          93,\n          0,\n          31,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"30158179\",\n        \"name\": \"翠蓝\",\n        \"tra_name\": \"翠藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"cuì lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          30,\n          158,\n          179\n        ],\n        \"hex\": \"#1E9EB3\",\n        \"cmyk\": [\n          94,\n          11,\n          33,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"15149176\",\n        \"name\": \"胆矾蓝\",\n        \"tra_name\": \"膽礬藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"dǎn fán lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          15,\n          149,\n          176\n        ],\n        \"hex\": \"#0F95B0\",\n        \"cmyk\": [\n          96,\n          16,\n          31,\n          3\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"20145168\",\n        \"name\": \"樫鸟蓝\",\n        \"tra_name\": \"樫鳥藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"jiān niǎo lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          20,\n          145,\n          168\n        ],\n        \"hex\": \"#1491A8\",\n        \"cmyk\": [\n          96,\n          18,\n          34,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"124171177\",\n        \"name\": \"闪蓝\",\n        \"tra_name\": \"閃藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"shǎn lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          124,\n          171,\n          177\n        ],\n        \"hex\": \"#7CABB1\",\n        \"cmyk\": [\n          64,\n          18,\n          32,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"164172167\",\n        \"name\": \"冰山蓝\",\n        \"tra_name\": \"冰山藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"bīng shān lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          164,\n          172,\n          167\n        ],\n        \"hex\": \"#A4ACA7\",\n        \"cmyk\": [\n          40,\n          24,\n          32,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"100142147\",\n        \"name\": \"晚波蓝\",\n        \"tra_name\": \"晚波藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"wǎn bō lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          100,\n          142,\n          147\n        ],\n        \"hex\": \"#648E93\",\n        \"cmyk\": [\n          71,\n          28,\n          39,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"59129140\",\n        \"name\": \"蜻蜓蓝\",\n        \"tra_name\": \"蜻蜓藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"qīng tíng lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          59,\n          129,\n          140\n        ],\n        \"hex\": \"#3B818C\",\n        \"cmyk\": [\n          89,\n          27,\n          41,\n          13\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"18110130\",\n        \"name\": \"玉鈫蓝\",\n        \"tra_name\": \"玉鈫藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yù qín lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          18,\n          110,\n          130\n        ],\n        \"hex\": \"#126E82\",\n        \"cmyk\": [\n          99,\n          33,\n          38,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"197287\",\n        \"name\": \"苍蓝\",\n        \"tra_name\": \"蒼藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"cāng lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          19,\n          72,\n          87\n        ],\n        \"hex\": \"#134857\",\n        \"cmyk\": [\n          100,\n          52,\n          46,\n          43\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"335561\",\n        \"name\": \"灰蓝\",\n        \"tra_name\": \"灰藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"huī lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          33,\n          55,\n          61\n        ],\n        \"hex\": \"#21373D\",\n        \"cmyk\": [\n          94,\n          58,\n          54,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"194451\",\n        \"name\": \"深灰蓝\",\n        \"tra_name\": \"深灰藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"shēn huī lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          19,\n          44,\n          51\n        ],\n        \"hex\": \"#132C33\",\n        \"cmyk\": [\n          100,\n          64,\n          56,\n          68\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"11546126\",\n        \"name\": \"紫罗蓝\",\n        \"tra_name\": \"紫羅藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"zǐ luó lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          115,\n          46,\n          126\n        ],\n        \"hex\": \"#732E7E\",\n        \"cmyk\": [\n          9,\n          63,\n          0,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"80120131\",\n        \"name\": \"玉石蓝\",\n        \"tra_name\": \"玉石藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yù shí lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          80,\n          120,\n          131\n        ],\n        \"hex\": \"#507883\",\n        \"cmyk\": [\n          39,\n          8,\n          0,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"101138152\",\n        \"name\": \"蟹蓝\",\n        \"tra_name\": \"蟹藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"xiè lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          101,\n          138,\n          152\n        ],\n        \"hex\": \"#658A98\",\n        \"cmyk\": [\n          34,\n          9,\n          0,\n          40\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"123161168\",\n        \"name\": \"春蓝\",\n        \"tra_name\": \"春藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"chūn lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          123,\n          161,\n          168\n        ],\n        \"hex\": \"#7BA1A8\",\n        \"cmyk\": [\n          27,\n          4,\n          0,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"93130138\",\n        \"name\": \"灰蓝\",\n        \"tra_name\": \"灰藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"hūi lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          93,\n          130,\n          138\n        ],\n        \"hex\": \"#5D828A\",\n        \"cmyk\": [\n          33,\n          6,\n          0,\n          46\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"100147175\",\n        \"name\": \"钴蓝\",\n        \"tra_name\": \"鈷藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"gǔ lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          100,\n          147,\n          175\n        ],\n        \"hex\": \"#6493AF\",\n        \"cmyk\": [\n          43,\n          16,\n          0,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2699138\",\n        \"name\": \"琉璃蓝\",\n        \"tra_name\": \"琉璃藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"líu lí lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          26,\n          99,\n          138\n        ],\n        \"hex\": \"#1A638A\",\n        \"cmyk\": [\n          81,\n          28,\n          0,\n          46\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"7824146\",\n        \"name\": \"柏坊灰蓝\",\n        \"tra_name\": \"柏坊灰藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"bǎi fāng hūi lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          78,\n          24,\n          146\n        ],\n        \"hex\": \"#4E1892\",\n        \"cmyk\": [\n          47,\n          84,\n          0,\n          43\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"3185116\",\n        \"name\": \"浅土蓝\",\n        \"tra_name\": \"浅土藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"qiǎn tǔ lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          31,\n          85,\n          116\n        ],\n        \"hex\": \"#1F5574\",\n        \"cmyk\": [\n          73,\n          27,\n          0,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"39104147\",\n        \"name\": \"北京毛蓝\",\n        \"tra_name\": \"北京毛藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"běi jīng máo lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          39,\n          104,\n          147\n        ],\n        \"hex\": \"#276893\",\n        \"cmyk\": [\n          73,\n          29,\n          0,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"49103141\",\n        \"name\": \"绒蓝\",\n        \"tra_name\": \"絨藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"róng lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          49,\n          103,\n          141\n        ],\n        \"hex\": \"#31678D\",\n        \"cmyk\": [\n          65,\n          27,\n          0,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6094145\",\n        \"name\": \"浅海昌蓝\",\n        \"tra_name\": \"浅海昌藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"qiǎn hǎi chāng lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          60,\n          94,\n          145\n        ],\n        \"hex\": \"#3C5E91\",\n        \"cmyk\": [\n          59,\n          35,\n          0,\n          43\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"2380125\",\n        \"name\": \"海蓝\",\n        \"tra_name\": \"海藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"hǎi lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          23,\n          80,\n          125\n        ],\n        \"hex\": \"#17507D\",\n        \"cmyk\": [\n          82,\n          36,\n          0,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"366898\",\n        \"name\": \"深毛蓝\",\n        \"tra_name\": \"深毛藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"shēn máo lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          36,\n          68,\n          98\n        ],\n        \"hex\": \"#244462\",\n        \"cmyk\": [\n          63,\n          31,\n          0,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"336198\",\n        \"name\": \"深蓝\",\n        \"tra_name\": \"深藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"shēn lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          33,\n          61,\n          98\n        ],\n        \"hex\": \"#213D62\",\n        \"cmyk\": [\n          66,\n          38,\n          0,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"414980\",\n        \"name\": \"靛蓝\",\n        \"tra_name\": \"靛藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"diàn lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          41,\n          49,\n          80\n        ],\n        \"hex\": \"#293150\",\n        \"cmyk\": [\n          49,\n          39,\n          0,\n          69\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"3768107\",\n        \"name\": \"労働布色\",\n        \"tra_name\": \"労働布色\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"láo dòng bù sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          37,\n          68,\n          107\n        ],\n        \"hex\": \"#25446B\",\n        \"cmyk\": [\n          65,\n          36,\n          0,\n          58\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"487188\",\n        \"name\": \"黛蓝\",\n        \"tra_name\": \"黛藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"dài lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          48,\n          71,\n          88\n        ],\n        \"hex\": \"#304758\",\n        \"cmyk\": [\n          45,\n          19,\n          0,\n          65\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"3756107\",\n        \"name\": \"蔵蓝\",\n        \"tra_name\": \"蔵藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"zāng lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          37,\n          56,\n          107\n        ],\n        \"hex\": \"#25386B\",\n        \"cmyk\": [\n          65,\n          48,\n          0,\n          58\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"077181\",\n        \"name\": \"鲜蓝\",\n        \"tra_name\": \"鮮藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"xiān lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          77,\n          181\n        ],\n        \"hex\": \"#004DB5\",\n        \"cmyk\": [\n          100,\n          57,\n          0,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"065165\",\n        \"name\": \"孔雀蓝\",\n        \"tra_name\": \"孔雀藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"kǒng què lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          0,\n          65,\n          165\n        ],\n        \"hex\": \"#0041A5\",\n        \"cmyk\": [\n          100,\n          61,\n          0,\n          35\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"3154150\",\n        \"name\": \"宝石蓝\",\n        \"tra_name\": \"宝石藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"bǎo shí lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          31,\n          54,\n          150\n        ],\n        \"hex\": \"#1F3696\",\n        \"cmyk\": [\n          79,\n          64,\n          0,\n          41\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"404685\",\n        \"name\": \"钛鉄\",\n        \"tra_name\": \"鈦鉄\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"tài tiě\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          40,\n          46,\n          85\n        ],\n        \"hex\": \"#282E55\",\n        \"cmyk\": [\n          53,\n          46,\n          0,\n          67\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"555276\",\n        \"name\": \"蔵黒蓝\",\n        \"tra_name\": \"蔵黒藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"zāng hēi lán\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          55,\n          52,\n          76\n        ],\n        \"hex\": \"#37344C\",\n        \"cmyk\": [\n          28,\n          32,\n          0,\n          70\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"181193207\",\n        \"name\": \"银蓝\",\n        \"tra_name\": \"銀藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"yín lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          181,\n          193,\n          207\n        ],\n        \"hex\": \"#B5C1CF\",\n        \"cmyk\": [\n          13,\n          7,\n          0,\n          19\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"121145209\",\n        \"name\": \"雪蓝\",\n        \"tra_name\": \"雪藍\",\n        \"color_series\": \"blue\",\n        \"pinyin\": \"xuě lán\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          121,\n          145,\n          209\n        ],\n        \"hex\": \"#7991D1\",\n        \"cmyk\": [\n          42,\n          31,\n          0,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ],\n    \"gray\": [\n      {\n        \"id\": \"161175201\",\n        \"name\": \"蓝灰色\",\n        \"tra_name\": \"藍灰色\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"lán huī sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          161,\n          175,\n          201\n        ],\n        \"hex\": \"#A1AFC9\",\n        \"cmyk\": [\n          20,\n          13,\n          0,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"117138153\",\n        \"name\": \"墨灰\",\n        \"tra_name\": \"墨灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"mò huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          117,\n          138,\n          153\n        ],\n        \"hex\": \"#758A99\",\n        \"cmyk\": [\n          24,\n          10,\n          0,\n          40\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"128128128\",\n        \"name\": \"灰色\",\n        \"tra_name\": \"灰色\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"huī sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          128,\n          128,\n          128\n        ],\n        \"hex\": \"#808080\",\n        \"cmyk\": [\n          0,\n          0,\n          0,\n          50\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"183174143\",\n        \"name\": \"月灰\",\n        \"tra_name\": \"月灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yuè huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          183,\n          174,\n          143\n        ],\n        \"hex\": \"#B7AE8F\",\n        \"cmyk\": [\n          28,\n          26,\n          45,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1049472\",\n        \"name\": \"燕羽灰\",\n        \"tra_name\": \"燕羽灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yàn yǔ huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          104,\n          94,\n          72\n        ],\n        \"hex\": \"#685E48\",\n        \"cmyk\": [\n          47,\n          47,\n          65,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1059469\",\n        \"name\": \"蟹壳灰\",\n        \"tra_name\": \"蟹殼灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"xiè ké huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          105,\n          94,\n          69\n        ],\n        \"hex\": \"#695E45\",\n        \"cmyk\": [\n          46,\n          47,\n          69,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"181170144\",\n        \"name\": \"银鼠灰\",\n        \"tra_name\": \"銀鼠灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yín shǔ huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          181,\n          170,\n          144\n        ],\n        \"hex\": \"#B5AA90\",\n        \"cmyk\": [\n          28,\n          27,\n          43,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"182164118\",\n        \"name\": \"尘灰\",\n        \"tra_name\": \"塵灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"chén huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          182,\n          164,\n          118\n        ],\n        \"hex\": \"#B6A476\",\n        \"cmyk\": [\n          26,\n          31,\n          57,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"746453\",\n        \"name\": \"鹤灰\",\n        \"tra_name\": \"鶴灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hè huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          74,\n          64,\n          53\n        ],\n        \"hex\": \"#4A4035\",\n        \"cmyk\": [\n          52,\n          56,\n          64,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"180169146\",\n        \"name\": \"百灵鸟灰\",\n        \"tra_name\": \"百靈鳥灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"bǎi líng niǎo huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          180,\n          169,\n          146\n        ],\n        \"hex\": \"#B4A992\",\n        \"cmyk\": [\n          28,\n          28,\n          41,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"796450\",\n        \"name\": \"松鼠灰\",\n        \"tra_name\": \"松鼠灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"sōng shǔ huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          79,\n          64,\n          50\n        ],\n        \"hex\": \"#4F4032\",\n        \"cmyk\": [\n          46,\n          59,\n          68,\n          61\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"806242\",\n        \"name\": \"橄榄灰\",\n        \"tra_name\": \"橄欖灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"gǎn lǎn huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          80,\n          62,\n          42\n        ],\n        \"hex\": \"#503E2A\",\n        \"cmyk\": [\n          44,\n          61,\n          76,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"151132108\",\n        \"name\": \"猴毛灰\",\n        \"tra_name\": \"猴毛灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hóu máo huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          151,\n          132,\n          108\n        ],\n        \"hex\": \"#97846C\",\n        \"cmyk\": [\n          32,\n          40,\n          53,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"193178163\",\n        \"name\": \"淡银灰\",\n        \"tra_name\": \"淡銀灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"dàn yín huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          193,\n          178,\n          163\n        ],\n        \"hex\": \"#C1B2A3\",\n        \"cmyk\": [\n          22,\n          28,\n          34,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"145128114\",\n        \"name\": \"银灰\",\n        \"tra_name\": \"銀灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yín huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          145,\n          128,\n          114\n        ],\n        \"hex\": \"#918072\",\n        \"cmyk\": [\n          34,\n          42,\n          46,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"154136120\",\n        \"name\": \"海鸥灰\",\n        \"tra_name\": \"海鷗灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hǎi ōu huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          154,\n          136,\n          120\n        ],\n        \"hex\": \"#9A8878\",\n        \"cmyk\": [\n          42,\n          40,\n          46,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"987365\",\n        \"name\": \"石板灰\",\n        \"tra_name\": \"石板灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shí bǎn huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          98,\n          73,\n          65\n        ],\n        \"hex\": \"#624941\",\n        \"cmyk\": [\n          39,\n          60,\n          58,\n          51\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1007261\",\n        \"name\": \"珠母灰\",\n        \"tra_name\": \"珠母灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhū mǔ huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          100,\n          72,\n          61\n        ],\n        \"hex\": \"#64483D\",\n        \"cmyk\": [\n          38,\n          63,\n          63,\n          50\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"183160145\",\n        \"name\": \"蛛网灰\",\n        \"tra_name\": \"蛛網灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhū wǎng huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          183,\n          160,\n          145\n        ],\n        \"hex\": \"#B7A091\",\n        \"cmyk\": [\n          23,\n          35,\n          38,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1399777\",\n        \"name\": \"中红灰\",\n        \"tra_name\": \"中紅灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhōng hóng huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          139,\n          97,\n          77\n        ],\n        \"hex\": \"#8B614D\",\n        \"cmyk\": [\n          31,\n          63,\n          66,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"916658\",\n        \"name\": \"淡铁灰\",\n        \"tra_name\": \"淡鐵灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"dàn tiě huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          91,\n          66,\n          58\n        ],\n        \"hex\": \"#5B423A\",\n        \"cmyk\": [\n          40,\n          64,\n          61,\n          56\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"966148\",\n        \"name\": \"中灰驼\",\n        \"tra_name\": \"中灰駝\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhōng huī tuó\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          96,\n          61,\n          48\n        ],\n        \"hex\": \"#603D30\",\n        \"cmyk\": [\n          37,\n          72,\n          72,\n          52\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"725150\",\n        \"name\": \"海报灰\",\n        \"tra_name\": \"海報灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hǎi bào huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          72,\n          51,\n          50\n        ],\n        \"hex\": \"#483332\",\n        \"cmyk\": [\n          45,\n          68,\n          57,\n          66\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"754643\",\n        \"name\": \"玫瑰灰\",\n        \"tra_name\": \"玫瑰灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"méi guī huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          175,\n          46,\n          43\n        ],\n        \"hex\": \"#4B2E2B\",\n        \"cmyk\": [\n          41,\n          76,\n          64,\n          65\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"184148133\",\n        \"name\": \"淡玫瑰灰\",\n        \"tra_name\": \"淡玫瑰灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"dàn méi guī huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          184,\n          148,\n          133\n        ],\n        \"hex\": \"#B89485\",\n        \"cmyk\": [\n          21,\n          43,\n          43,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1158792\",\n        \"name\": \"鼠背灰\",\n        \"tra_name\": \"鼠背灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shǔ bèi huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          115,\n          87,\n          92\n        ],\n        \"hex\": \"#73575C\",\n        \"cmyk\": [\n          41,\n          64,\n          44,\n          36\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"544043\",\n        \"name\": \"苍蝇灰\",\n        \"tra_name\": \"蒼蠅灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"cāng yíng huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          54,\n          40,\n          43\n        ],\n        \"hex\": \"#36282B\",\n        \"cmyk\": [\n          57,\n          72,\n          54,\n          74\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"189174173\",\n        \"name\": \"芦穗灰\",\n        \"tra_name\": \"蘆穗灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"lú suì huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          189,\n          174,\n          173\n        ],\n        \"hex\": \"#BDAEAD\",\n        \"cmyk\": [\n          25,\n          31,\n          26,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"181152161\",\n        \"name\": \"隐红灰\",\n        \"tra_name\": \"隱紅灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yǐn hóng huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          181,\n          152,\n          161\n        ],\n        \"hex\": \"#B598A1\",\n        \"cmyk\": [\n          26,\n          43,\n          26,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"133109114\",\n        \"name\": \"芦灰\",\n        \"tra_name\": \"蘆灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"lú huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          133,\n          109,\n          114\n        ],\n        \"hex\": \"#856D72\",\n        \"cmyk\": [\n          39,\n          53,\n          38,\n          25\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"795662\",\n        \"name\": \"暮云灰\",\n        \"tra_name\": \"暮雲灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"mù yún huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          79,\n          56,\n          62\n        ],\n        \"hex\": \"#4F383E\",\n        \"cmyk\": [\n          49,\n          71,\n          49,\n          58\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"724154\",\n        \"name\": \"斑鸠灰\",\n        \"tra_name\": \"斑鳩灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"bān jiū huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          72,\n          41,\n          54\n        ],\n        \"hex\": \"#482936\",\n        \"cmyk\": [\n          49,\n          82,\n          46,\n          63\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"936381\",\n        \"name\": \"紫灰\",\n        \"tra_name\": \"紫灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zǐ huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          93,\n          63,\n          81\n        ],\n        \"hex\": \"#5D3F51\",\n        \"cmyk\": [\n          53,\n          75,\n          41,\n          41\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"544147\",\n        \"name\": \"古鼎灰\",\n        \"tra_name\": \"古鼎灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"gǔ dǐng huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          54,\n          41,\n          47\n        ],\n        \"hex\": \"#36292F\",\n        \"cmyk\": [\n          63,\n          74,\n          52,\n          70\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"122115116\",\n        \"name\": \"锌灰\",\n        \"tra_name\": \"鋅灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"xīn huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          122,\n          115,\n          116\n        ],\n        \"hex\": \"#7A7374\",\n        \"cmyk\": [\n          48,\n          45,\n          40,\n          26\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"9497109\",\n        \"name\": \"鱼尾灰\",\n        \"tra_name\": \"魚尾灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yú wěi huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          94,\n          97,\n          109\n        ],\n        \"hex\": \"#5E616D\",\n        \"cmyk\": [\n          64,\n          52,\n          39,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"7181100\",\n        \"name\": \"鲸鱼灰\",\n        \"tra_name\": \"鯨魚灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"jīng yú huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          71,\n          81,\n          100\n        ],\n        \"hex\": \"#475164\",\n        \"cmyk\": [\n          78,\n          60,\n          40,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"535160\",\n        \"name\": \"沙鱼灰\",\n        \"tra_name\": \"沙魚灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shā yú huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          53,\n          51,\n          60\n        ],\n        \"hex\": \"#35333C\",\n        \"cmyk\": [\n          76,\n          70,\n          51,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"196203207\",\n        \"name\": \"大理石灰\",\n        \"tra_name\": \"大理石灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"dà lǐ shí huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          196,\n          203,\n          207\n        ],\n        \"hex\": \"#C4CBCF\",\n        \"cmyk\": [\n          29,\n          16,\n          17,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"474753\",\n        \"name\": \"水牛灰\",\n        \"tra_name\": \"水牛灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shuǐ niú huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          47,\n          47,\n          53\n        ],\n        \"hex\": \"#2F2F35\",\n        \"cmyk\": [\n          77,\n          68,\n          54,\n          66\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"454654\",\n        \"name\": \"牛角灰\",\n        \"tra_name\": \"牛角灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"niú jiǎo huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          45,\n          46,\n          54\n        ],\n        \"hex\": \"#2D2E36\",\n        \"cmyk\": [\n          80,\n          70,\n          53,\n          65\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"178187190\",\n        \"name\": \"星灰\",\n        \"tra_name\": \"星灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"xīng huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          178,\n          187,\n          190\n        ],\n        \"hex\": \"#B2BBBE\",\n        \"cmyk\": [\n          36,\n          20,\n          23,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"94121135\",\n        \"name\": \"淡蓝灰\",\n        \"tra_name\": \"淡藍灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"dàn lán huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          94,\n          121,\n          135\n        ],\n        \"hex\": \"#5E7987\",\n        \"cmyk\": [\n          70,\n          38,\n          36,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"116120122\",\n        \"name\": \"嫩灰\",\n        \"tra_name\": \"嫩灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"nèn huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          116,\n          120,\n          122\n        ],\n        \"hex\": \"#74787A\",\n        \"cmyk\": [\n          55,\n          40,\n          40,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"7392105\",\n        \"name\": \"战舰灰\",\n        \"tra_name\": \"戰艦灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhàn jiàn huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          73,\n          92,\n          105\n        ],\n        \"hex\": \"#495C69\",\n        \"cmyk\": [\n          77,\n          50,\n          41,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"717276\",\n        \"name\": \"瓦罐灰\",\n        \"tra_name\": \"瓦罐灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"wǎ guàn huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          71,\n          72,\n          76\n        ],\n        \"hex\": \"#47484C\",\n        \"cmyk\": [\n          67,\n          57,\n          49,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"435162\",\n        \"name\": \"青灰\",\n        \"tra_name\": \"青灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"qīng huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          43,\n          51,\n          62\n        ],\n        \"hex\": \"#2B333E\",\n        \"cmyk\": [\n          87,\n          69,\n          51,\n          58\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"115124123\",\n        \"name\": \"垩灰\",\n        \"tra_name\": \"堊灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"è huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          115,\n          124,\n          123\n        ],\n        \"hex\": \"#737C7B\",\n        \"cmyk\": [\n          57,\n          37,\n          42,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"97113114\",\n        \"name\": \"夏云灰\",\n        \"tra_name\": \"夏雲灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"xià yún huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          97,\n          113,\n          114\n        ],\n        \"hex\": \"#617172\",\n        \"cmyk\": [\n          65,\n          40,\n          44,\n          26\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"717576\",\n        \"name\": \"黄昏灰\",\n        \"tra_name\": \"黃昏灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"huáng hūn huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          71,\n          75,\n          76\n        ],\n        \"hex\": \"#474B4C\",\n        \"cmyk\": [\n          67,\n          53,\n          51,\n          50\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"159163154\",\n        \"name\": \"镍灰\",\n        \"tra_name\": \"鎳灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"niè huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          159,\n          163,\n          154\n        ],\n        \"hex\": \"#9FA39A\",\n        \"cmyk\": [\n          40,\n          27,\n          36,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"138152142\",\n        \"name\": \"明灰\",\n        \"tra_name\": \"明灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"míng huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          138,\n          152,\n          142\n        ],\n        \"hex\": \"#8A988E\",\n        \"cmyk\": [\n          52,\n          28,\n          42,\n          10\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"112136125\",\n        \"name\": \"淡绿灰\",\n        \"tra_name\": \"淡綠灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"dàn lǜ huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          112,\n          136,\n          125\n        ],\n        \"hex\": \"#70887D\",\n        \"cmyk\": [\n          63,\n          31,\n          50,\n          14\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"9310195\",\n        \"name\": \"狼烟灰\",\n        \"tra_name\": \"狼煙灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"láng yān huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          93,\n          101,\n          95\n        ],\n        \"hex\": \"#5D655F\",\n        \"cmyk\": [\n          62,\n          43,\n          52,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"497467\",\n        \"name\": \"绿灰\",\n        \"tra_name\": \"綠灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"lǜ huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          49,\n          74,\n          67\n        ],\n        \"hex\": \"#314A43\",\n        \"cmyk\": [\n          85,\n          44,\n          64,\n          52\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"545251\",\n        \"name\": \"长石灰\",\n        \"tra_name\": \"長石灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"cháng shí huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          54,\n          52,\n          51\n        ],\n        \"hex\": \"#363433\",\n        \"cmyk\": [\n          67,\n          60,\n          57,\n          68\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"575551\",\n        \"name\": \"河豚灰\",\n        \"tra_name\": \"河豚灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hé tún huī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          57,\n          55,\n          51\n        ],\n        \"hex\": \"#393733\",\n        \"cmyk\": [\n          64,\n          57,\n          60,\n          67\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"218212203\",\n        \"name\": \"浅灰\",\n        \"tra_name\": \"淺灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"qiǎn huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          218,\n          212,\n          203\n        ],\n        \"hex\": \"#DAD4CB\",\n        \"cmyk\": [\n          16,\n          15,\n          20,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"187181172\",\n        \"name\": \"中灰\",\n        \"tra_name\": \"中灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhōng huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          187,\n          181,\n          172\n        ],\n        \"hex\": \"#BBB5AC\",\n        \"cmyk\": [\n          28,\n          25,\n          30,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"134126118\",\n        \"name\": \"瓦灰\",\n        \"tra_name\": \"瓦灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"wǎ huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          134,\n          126,\n          118\n        ],\n        \"hex\": \"#867E76\",\n        \"cmyk\": [\n          42,\n          40,\n          43,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"132124116\",\n        \"name\": \"夜灰\",\n        \"tra_name\": \"夜灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yè huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          132,\n          124,\n          116\n        ],\n        \"hex\": \"#847C74\",\n        \"cmyk\": [\n          43,\n          40,\n          44,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"128118110\",\n        \"name\": \"雁灰\",\n        \"tra_name\": \"雁灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yàn huī\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          128,\n          118,\n          110\n        ],\n        \"hex\": \"#80766E\",\n        \"cmyk\": [\n          42,\n          42,\n          45,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"19996121\",\n        \"name\": \"红莲灰\",\n        \"tra_name\": \"紅蓮灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hóng lián hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          199,\n          96,\n          121\n        ],\n        \"hex\": \"#C76079\",\n        \"cmyk\": [\n          0,\n          52,\n          39,\n          22\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1216186\",\n        \"name\": \"玫瑰灰\",\n        \"tra_name\": \"玫瑰灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"méi gūi hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          121,\n          61,\n          86\n        ],\n        \"hex\": \"#793D56\",\n        \"cmyk\": [\n          0,\n          50,\n          29,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"187132140\",\n        \"name\": \"红灰莲\",\n        \"tra_name\": \"紅灰蓮\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hóng hūi lián\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          187,\n          132,\n          140\n        ],\n        \"hex\": \"#BB848C\",\n        \"cmyk\": [\n          0,\n          29,\n          25,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"225219205\",\n        \"name\": \"浅棕灰\",\n        \"tra_name\": \"浅棕灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"qiǎn zōng hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          225,\n          219,\n          205\n        ],\n        \"hex\": \"#E1DBCD\",\n        \"cmyk\": [\n          0,\n          3,\n          9,\n          12\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"184154131\",\n        \"name\": \"肉棕灰\",\n        \"tra_name\": \"肉棕灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"ròu zōng hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          184,\n          154,\n          131\n        ],\n        \"hex\": \"#B89A83\",\n        \"cmyk\": [\n          0,\n          16,\n          29,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1097786\",\n        \"name\": \"葡萄灰\",\n        \"tra_name\": \"葡萄灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"pú táo hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          109,\n          77,\n          86\n        ],\n        \"hex\": \"#6D4D56\",\n        \"cmyk\": [\n          0,\n          29,\n          21,\n          57\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"169152124\",\n        \"name\": \"中棕灰\",\n        \"tra_name\": \"中棕灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhōng zōng hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          169,\n          152,\n          124\n        ],\n        \"hex\": \"#A9987C\",\n        \"cmyk\": [\n          0,\n          10,\n          27,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"197187163\",\n        \"name\": \"乳灰\",\n        \"tra_name\": \"乳灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"rǔ hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          197,\n          187,\n          163\n        ],\n        \"hex\": \"#C5BBA3\",\n        \"cmyk\": [\n          0,\n          5,\n          17,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"178174155\",\n        \"name\": \"深银灰\",\n        \"tra_name\": \"深銀灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shēn yín hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          178,\n          174,\n          155\n        ],\n        \"hex\": \"#B2AE9B\",\n        \"cmyk\": [\n          0,\n          2,\n          13,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"197191173\",\n        \"name\": \"米灰\",\n        \"tra_name\": \"米灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"mǐ hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          197,\n          191,\n          173\n        ],\n        \"hex\": \"#C5BFAD\",\n        \"cmyk\": [\n          0,\n          3,\n          12,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"204195170\",\n        \"name\": \"芽灰\",\n        \"tra_name\": \"芽灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yá hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          204,\n          195,\n          170\n        ],\n        \"hex\": \"#CCC3AA\",\n        \"cmyk\": [\n          0,\n          4,\n          17,\n          20\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"136174163\",\n        \"name\": \"果灰\",\n        \"tra_name\": \"果灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"guǒ hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          136,\n          174,\n          163\n        ],\n        \"hex\": \"#88AEA3\",\n        \"cmyk\": [\n          22,\n          0,\n          6,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"169176143\",\n        \"name\": \"芦灰\",\n        \"tra_name\": \"芦灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"lú hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          169,\n          176,\n          143\n        ],\n        \"hex\": \"#A9B08F\",\n        \"cmyk\": [\n          4,\n          0,\n          19,\n          31\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"183185156\",\n        \"name\": \"虾灰\",\n        \"tra_name\": \"蝦灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"xiā hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          183,\n          185,\n          156\n        ],\n        \"hex\": \"#B7B99C\",\n        \"cmyk\": [\n          1,\n          0,\n          16,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"182177150\",\n        \"name\": \"灰米\",\n        \"tra_name\": \"灰米\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hūi mǐ\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          182,\n          177,\n          150\n        ],\n        \"hex\": \"#B6B196\",\n        \"cmyk\": [\n          0,\n          3,\n          18,\n          29\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"100115114\",\n        \"name\": \"暗灰\",\n        \"tra_name\": \"暗灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"àn hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          100,\n          115,\n          114\n        ],\n        \"hex\": \"#647372\",\n        \"cmyk\": [\n          13,\n          0,\n          1,\n          55\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"124146131\",\n        \"name\": \"橄榄灰\",\n        \"tra_name\": \"橄欖灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"gǎn lǎn hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          124,\n          146,\n          131\n        ],\n        \"hex\": \"#7C9283\",\n        \"cmyk\": [\n          15,\n          0,\n          10,\n          43\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"1039170\",\n        \"name\": \"草灰色\",\n        \"tra_name\": \"草灰色\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"cǎo hūi sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          103,\n          91,\n          70\n        ],\n        \"hex\": \"#675B46\",\n        \"cmyk\": [\n          0,\n          12,\n          32,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"87103104\",\n        \"name\": \"深灰\",\n        \"tra_name\": \"深灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shēn hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          87,\n          103,\n          104\n        ],\n        \"hex\": \"#576768\",\n        \"cmyk\": [\n          16,\n          1,\n          0,\n          59\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"6986103\",\n        \"name\": \"鹊灰\",\n        \"tra_name\": \"鵲灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"què hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          69,\n          86,\n          103\n        ],\n        \"hex\": \"#455667\",\n        \"cmyk\": [\n          33,\n          17,\n          0,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"99113121\",\n        \"name\": \"深瓦灰\",\n        \"tra_name\": \"深瓦灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shēn wǎ hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          99,\n          113,\n          121\n        ],\n        \"hex\": \"#637179\",\n        \"cmyk\": [\n          18,\n          7,\n          0,\n          53\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"8810294\",\n        \"name\": \"苔灰\",\n        \"tra_name\": \"苔灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"tái hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          88,\n          102,\n          94\n        ],\n        \"hex\": \"#58665E\",\n        \"cmyk\": [\n          14,\n          0,\n          8,\n          60\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"109129125\",\n        \"name\": \"冬灰色\",\n        \"tra_name\": \"冬灰色\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"dōng hūi sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          109,\n          129,\n          125\n        ],\n        \"hex\": \"#6D817D\",\n        \"cmyk\": [\n          16,\n          0,\n          3,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"170194196\",\n        \"name\": \"云灰\",\n        \"tra_name\": \"雲灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yún hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          170,\n          194,\n          196\n        ],\n        \"hex\": \"#AAC2C4\",\n        \"cmyk\": [\n          13,\n          1,\n          0,\n          23\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"149177186\",\n        \"name\": \"鸽灰\",\n        \"tra_name\": \"鴿灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"gē hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          149,\n          177,\n          186\n        ],\n        \"hex\": \"#95B1BA\",\n        \"cmyk\": [\n          20,\n          5,\n          0,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"138164168\",\n        \"name\": \"蓝灰色\",\n        \"tra_name\": \"藍灰色\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"lán hūi sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          138,\n          164,\n          168\n        ],\n        \"hex\": \"#8AA4A8\",\n        \"cmyk\": [\n          18,\n          2,\n          0,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"148156151\",\n        \"name\": \"水貂灰\",\n        \"tra_name\": \"水貂灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shǔi diāo hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          148,\n          156,\n          151\n        ],\n        \"hex\": \"#949C97\",\n        \"cmyk\": [\n          5,\n          0,\n          3,\n          39\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"89128142\",\n        \"name\": \"湖蓝灰\",\n        \"tra_name\": \"湖藍灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hú lán hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          89,\n          128,\n          142\n        ],\n        \"hex\": \"#59808E\",\n        \"cmyk\": [\n          37,\n          10,\n          0,\n          44\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"545350\",\n        \"name\": \"灯草灰\",\n        \"tra_name\": \"灯草灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"dēng cǎo hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          54,\n          53,\n          50\n        ],\n        \"hex\": \"#363532\",\n        \"cmyk\": [\n          0,\n          2,\n          7,\n          79\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"556875\",\n        \"name\": \"鉄灰\",\n        \"tra_name\": \"鉄灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"tiě hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          55,\n          68,\n          75\n        ],\n        \"hex\": \"#37444B\",\n        \"cmyk\": [\n          27,\n          9,\n          0,\n          71\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"202208211\",\n        \"name\": \"雪灰\",\n        \"tra_name\": \"雪灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"xuě hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          202,\n          208,\n          211\n        ],\n        \"hex\": \"#CAD0D3\",\n        \"cmyk\": [\n          4,\n          1,\n          0,\n          17\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"168166185\",\n        \"name\": \"莲灰\",\n        \"tra_name\": \"蓮灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"lián hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          168,\n          166,\n          185\n        ],\n        \"hex\": \"#A8A6B9\",\n        \"cmyk\": [\n          9,\n          10,\n          0,\n          27\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"145152174\",\n        \"name\": \"雪青灰\",\n        \"tra_name\": \"雪青灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"xuě qīng hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          145,\n          152,\n          174\n        ],\n        \"hex\": \"#9198AE\",\n        \"cmyk\": [\n          17,\n          13,\n          0,\n          32\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"133126149\",\n        \"name\": \"紫藤灰\",\n        \"tra_name\": \"紫藤灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zǐ téng hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          133,\n          126,\n          149\n        ],\n        \"hex\": \"#857E95\",\n        \"cmyk\": [\n          11,\n          15,\n          0,\n          42\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"879093\",\n        \"name\": \"青灰色\",\n        \"tra_name\": \"青灰色\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"qīng hūi sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          87,\n          90,\n          93\n        ],\n        \"hex\": \"#575A5D\",\n        \"cmyk\": [\n          6,\n          3,\n          0,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"909291\",\n        \"name\": \"承徳皀\",\n        \"tra_name\": \"承徳皀\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"chéng dé bī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          90,\n          92,\n          91\n        ],\n        \"hex\": \"#5A5C5B\",\n        \"cmyk\": [\n          2,\n          0,\n          1,\n          64\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"117117112\",\n        \"name\": \"承徳灰\",\n        \"tra_name\": \"承徳灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"chéng dé hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          117,\n          117,\n          112\n        ],\n        \"hex\": \"#757570\",\n        \"cmyk\": [\n          0,\n          0,\n          4,\n          54\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"129124110\",\n        \"name\": \"庭院瓦灰色\",\n        \"tra_name\": \"庭院瓦灰色\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"tíng yuàn wǎ hūi sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          129,\n          124,\n          110\n        ],\n        \"hex\": \"#817C6E\",\n        \"cmyk\": [\n          0,\n          4,\n          15,\n          49\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"989282\",\n        \"name\": \"相思灰\",\n        \"tra_name\": \"相思灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"xiāng sī hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          98,\n          92,\n          82\n        ],\n        \"hex\": \"#625C52\",\n        \"cmyk\": [\n          0,\n          6,\n          16,\n          62\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"113114122\",\n        \"name\": \"银鼠灰\",\n        \"tra_name\": \"銀鼠灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yín shǔ hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          113,\n          114,\n          122\n        ],\n        \"hex\": \"#71727A\",\n        \"cmyk\": [\n          7,\n          7,\n          0,\n          52\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"147162169\",\n        \"name\": \"正灰\",\n        \"tra_name\": \"正灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhèng hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          147,\n          162,\n          169\n        ],\n        \"hex\": \"#93A2A9\",\n        \"cmyk\": [\n          13,\n          4,\n          0,\n          34\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"116138141\",\n        \"name\": \"织绵灰\",\n        \"tra_name\": \"織綿灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"zhī mián hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          116,\n          138,\n          141\n        ],\n        \"hex\": \"#748A8D\",\n        \"cmyk\": [\n          18,\n          2,\n          0,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"107124135\",\n        \"name\": \"石板灰\",\n        \"tra_name\": \"石板灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"shí bǎn hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          107,\n          124,\n          135\n        ],\n        \"hex\": \"#6B7C87\",\n        \"cmyk\": [\n          21,\n          8,\n          0,\n          47\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"7980109\",\n        \"name\": \"罗蓝灰\",\n        \"tra_name\": \"羅藍灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"luó lán hūi\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          79,\n          80,\n          109\n        ],\n        \"hex\": \"#4F506D\",\n        \"cmyk\": [\n          28,\n          27,\n          0,\n          57\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"889087\",\n        \"name\": \"银箔\",\n        \"tra_name\": \"銀箔\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"yín bó\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          88,\n          90,\n          87\n        ],\n        \"hex\": \"#585A57\",\n        \"cmyk\": [\n          2,\n          0,\n          3,\n          65\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"130135140\",\n        \"name\": \"红灰\",\n        \"tra_name\": \"紅灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"hóng hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          130,\n          135,\n          140\n        ],\n        \"hex\": \"#82878C\",\n        \"cmyk\": [\n          7,\n          4,\n          0,\n          45\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"176183172\",\n        \"name\": \"黄灰\",\n        \"tra_name\": \"黄灰\",\n        \"color_series\": \"gray\",\n        \"pinyin\": \"huáng hūi\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          176,\n          183,\n          172\n        ],\n        \"hex\": \"#B0B7AC\",\n        \"cmyk\": [\n          4,\n          0,\n          6,\n          28\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ],\n    \"black\": [\n      {\n        \"id\": \"000\",\n        \"name\": \"黑色\",\n        \"tra_name\": \"黑色\",\n        \"color_series\": \"black\",\n        \"pinyin\": \"hēi sè\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          0,\n          0,\n          0\n        ],\n        \"hex\": \"#000000\",\n        \"cmyk\": [\n          0,\n          0,\n          0,\n          100\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"676974\",\n        \"name\": \"粗晶皀\",\n        \"tra_name\": \"粗晶皀\",\n        \"color_series\": \"black\",\n        \"pinyin\": \"cū jīng bī\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          67,\n          69,\n          74\n        ],\n        \"hex\": \"#43454A\",\n        \"cmyk\": [\n          9,\n          7,\n          0,\n          71\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"484848\",\n        \"name\": \"百草霜\",\n        \"tra_name\": \"百草霜\",\n        \"color_series\": \"black\",\n        \"pinyin\": \"bǎi cǎo shuāng\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          48,\n          48,\n          48\n        ],\n        \"hex\": \"#303030\",\n        \"cmyk\": [\n          0,\n          0,\n          0,\n          81\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"636360\",\n        \"name\": \"油烟墨\",\n        \"tra_name\": \"油煙墨\",\n        \"color_series\": \"black\",\n        \"pinyin\": \"yóu yān mò\",\n        \"font_color\": \"bright\",\n        \"is_bright\": false,\n        \"rgb\": [\n          63,\n          63,\n          60\n        ],\n        \"hex\": \"#3F3F3C\",\n        \"cmyk\": [\n          0,\n          0,\n          5,\n          75\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ],\n    \"white\": [\n      {\n        \"id\": \"209217224\",\n        \"name\": \"苍白\",\n        \"tra_name\": \"蒼白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"cāng bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          209,\n          217,\n          224\n        ],\n        \"hex\": \"#D1D9E0\",\n        \"cmyk\": [\n          7,\n          3,\n          0,\n          12\n        ],\n        \"desc\": \"准确的说是掺入不同灰度级别的灰色\",\n        \"figure\": \"fanchuan.png\"\n      },\n      {\n        \"id\": \"255255255\",\n        \"name\": \"精白\",\n        \"tra_name\": \"精白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"jīng bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          255,\n          255\n        ],\n        \"hex\": \"#FFFFFF\",\n        \"cmyk\": [\n          0,\n          0,\n          0,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"255251240\",\n        \"name\": \"象牙白\",\n        \"tra_name\": \"象牙白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"xiàng yá bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          251,\n          240\n        ],\n        \"hex\": \"#FFFBF0\",\n        \"cmyk\": [\n          0,\n          2,\n          6,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"242253255\",\n        \"name\": \"雪白\",\n        \"tra_name\": \"雪白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"xuě bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          253,\n          255\n        ],\n        \"hex\": \"#F2FDFF\",\n        \"cmyk\": [\n          5,\n          1,\n          0,\n          0\n        ],\n        \"desc\": \"如雪般洁白\",\n        \"figure\": \"meihua.pink.png\"\n      },\n      {\n        \"id\": \"242236222\",\n        \"name\": \"缟\",\n        \"tra_name\": \"縞\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"gǎo\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          242,\n          236,\n          222\n        ],\n        \"hex\": \"#F2ECDE\",\n        \"cmyk\": [\n          0,\n          2,\n          8,\n          5\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"224240233\",\n        \"name\": \"素\",\n        \"tra_name\": \"素\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"sù\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          224,\n          240,\n          233\n        ],\n        \"hex\": \"#E0F0E9\",\n        \"cmyk\": [\n          7,\n          0,\n          3,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"243249241\",\n        \"name\": \"茶白\",\n        \"tra_name\": \"茶白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"chá bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          243,\n          249,\n          241\n        ],\n        \"hex\": \"#F3F9F1\",\n        \"cmyk\": [\n          2,\n          0,\n          3,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"233241246\",\n        \"name\": \"霜色\",\n        \"tra_name\": \"霜色\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"shuāng sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          233,\n          241,\n          246\n        ],\n        \"hex\": \"#E9F1F6\",\n        \"cmyk\": [\n          5,\n          2,\n          0,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"194204208\",\n        \"name\": \"花白\",\n        \"tra_name\": \"花白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"huā bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          194,\n          204,\n          208\n        ],\n        \"hex\": \"#C2CCD0\",\n        \"cmyk\": [\n          7,\n          2,\n          0,\n          18\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"252239232\",\n        \"name\": \"鱼肚白\",\n        \"tra_name\": \"魚肚白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"yú dǔ bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          252,\n          239,\n          232\n        ],\n        \"hex\": \"#FCEFE8\",\n        \"cmyk\": [\n          0,\n          5,\n          8,\n          1\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240240244\",\n        \"name\": \"铅白\",\n        \"tra_name\": \"鉛白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"qiān bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          240,\n          244\n        ],\n        \"hex\": \"#F0F0F4\",\n        \"cmyk\": [\n          2,\n          2,\n          0,\n          4\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"233231239\",\n        \"name\": \"银白\",\n        \"tra_name\": \"銀白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"yín bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          233,\n          231,\n          239\n        ],\n        \"hex\": \"#E9E7EF\",\n        \"cmyk\": [\n          3,\n          3,\n          0,\n          6\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"186202198\",\n        \"name\": \"老银\",\n        \"tra_name\": \"老銀\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"lǎo yín\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          186,\n          202,\n          198\n        ],\n        \"hex\": \"#BACAC6\",\n        \"cmyk\": [\n          8,\n          0,\n          2,\n          21\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"226225228\",\n        \"name\": \"芡食白\",\n        \"tra_name\": \"芡食白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"qiàn shí bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          226,\n          225,\n          228\n        ],\n        \"hex\": \"#E2E1E4\",\n        \"cmyk\": [\n          13,\n          10,\n          9,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"192196195\",\n        \"name\": \"月影白\",\n        \"tra_name\": \"月影白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"yuè yǐng bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          192,\n          196,\n          195\n        ],\n        \"hex\": \"#C0C4C3\",\n        \"cmyk\": [\n          29,\n          18,\n          21,\n          2\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"234220214\",\n        \"name\": \"甘石粉\",\n        \"tra_name\": \"甘石粉\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"gān shí fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          234,\n          220,\n          214\n        ],\n        \"hex\": \"#EADCD6\",\n        \"cmyk\": [\n          0,\n          6,\n          9,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"235232219\",\n        \"name\": \"胡粉\",\n        \"tra_name\": \"胡粉\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"hú fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          232,\n          219\n        ],\n        \"hex\": \"#EBE8DB\",\n        \"cmyk\": [\n          0,\n          1,\n          7,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"237234220\",\n        \"name\": \"蛤粉\",\n        \"tra_name\": \"蛤粉\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"há fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          234,\n          220\n        ],\n        \"hex\": \"#EDEADC\",\n        \"cmyk\": [\n          0,\n          1,\n          7,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"237235224\",\n        \"name\": \"立徳粉\",\n        \"tra_name\": \"立徳粉\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"lì dé fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          237,\n          235,\n          224\n        ],\n        \"hex\": \"#EDEBE0\",\n        \"cmyk\": [\n          0,\n          1,\n          5,\n          7\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"209226222\",\n        \"name\": \"月白色\",\n        \"tra_name\": \"月白色\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"yuè bái sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          209,\n          226,\n          222\n        ],\n        \"hex\": \"#D1E2DE\",\n        \"cmyk\": [\n          8,\n          0,\n          2,\n          11\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"231229208\",\n        \"name\": \"蝋白\",\n        \"tra_name\": \"蝋白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"là bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          231,\n          229,\n          208\n        ],\n        \"hex\": \"#E7E5D0\",\n        \"cmyk\": [\n          0,\n          1,\n          10,\n          9\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"162178169\",\n        \"name\": \"大理石色\",\n        \"tra_name\": \"大理石色\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"dà lǐ shí sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          162,\n          178,\n          169\n        ],\n        \"hex\": \"#A2B2A9\",\n        \"cmyk\": [\n          9,\n          0,\n          5,\n          30\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"213204211\",\n        \"name\": \"淡藕合\",\n        \"tra_name\": \"淡藕合\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"dàn ǒu hé\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          213,\n          204,\n          211\n        ],\n        \"hex\": \"#D5CCD3\",\n        \"cmyk\": [\n          0,\n          4,\n          1,\n          16\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"235229213\",\n        \"name\": \"银白色\",\n        \"tra_name\": \"銀白色\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"yín bái sè\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          235,\n          229,\n          213\n        ],\n        \"hex\": \"#EBE5D5\",\n        \"cmyk\": [\n          0,\n          3,\n          9,\n          8\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"240252255\",\n        \"name\": \"雪白\",\n        \"tra_name\": \"雪白\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"xuě bái\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          240,\n          252,\n          255\n        ],\n        \"hex\": \"#F0FCFF\",\n        \"cmyk\": [\n          6,\n          1,\n          0,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      },\n      {\n        \"id\": \"255242253\",\n        \"name\": \"白粉\",\n        \"tra_name\": \"白粉\",\n        \"color_series\": \"white\",\n        \"pinyin\": \"bái fěn\",\n        \"font_color\": \"dark\",\n        \"is_bright\": true,\n        \"rgb\": [\n          255,\n          242,\n          253\n        ],\n        \"hex\": \"#FFF2FD\",\n        \"cmyk\": [\n          0,\n          5,\n          1,\n          0\n        ],\n        \"desc\": \"\",\n        \"figure\": \"\"\n      }\n    ]\n  }\n"
  },
  {
    "path": "packages/editor/src/assets/color/recommend.json",
    "content": "[\n  {\n    \"CMYK\": [56, 0, 19, 11],\n    \"RGB\": [99, 226, 183],\n    \"hex\": \"#63E2B7\",\n    \"hexHover\": \"#63E2B7\",\n    \"hexPressed\": \"#63E2B7\",\n    \"hexSuppl\": \"#63E2B7\",\n    \"name\": \"\\u9e23\\u7fe0\\u67f3\",\n    \"pinyin\": \"mingcuiliu\"\n  },\n  {\n    \"CMYK\": [\n      95,\n      25,\n      20,\n      4\n    ],\n    \"RGB\": [\n      21,\n      139,\n      184\n    ],\n    \"hex\": \"#158bb8\",\n    \"name\": \"\\u9e22\\u5c3e\\u84dd\",\n    \"pinyin\": \"yuanweilan\"\n  },\n  {\n    \"CMYK\": [\n      0,\n      84,\n      82,\n      0\n    ],\n    \"RGB\": [\n      243,\n      59,\n      31\n    ],\n    \"hex\": \"#f33b1f\",\n    \"name\": \"\\u6781\\u5149\\u7ea2\",\n    \"pinyin\": \"jiguanghong\"\n  },\n  {\n    \"CMYK\": [\n      1,\n      28,\n      89,\n      0\n    ],\n    \"RGB\": [\n      246,\n      196,\n      48\n    ],\n    \"hex\": \"#f6c430\",\n    \"name\": \"\\u9e66\\u9e49\\u51a0\\u9ec4\",\n    \"pinyin\": \"yingwuguanhuang\"\n  }\n]"
  },
  {
    "path": "packages/editor/src/assets/less/common.less",
    "content": ".sidebar-config-item{\n  display: flex;\n  align-items: center;\n  padding: 0 1rem 0.5rem 1rem;\n  width: calc(100% - 2rem);\n\n  & > :first-child{\n    width: 30%;\n  }\n\n  & > :last-child{\n    width: 70%;\n  }\n}\n\n.es-upload-card {\n  .n-upload-file-list {\n    &--grid {\n      grid-template-columns:repeat(1, 100%);\n      width: 100%;\n      min-height: 120px;\n    }\n\n    .n-upload-trigger {\n      &--image-card {\n        width: 100%;\n        height: 100%;\n        border-radius: 0.25rem;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        cursor: pointer;\n        transition: all 0.3s ease-in-out;\n\n        .n-icon {\n          margin-bottom: 12px;\n          margin-left: 1rem;\n        }\n\n        .n-text {\n          font-size: 0.7rem;\n          margin-right: 1rem;\n        }\n      }\n    }\n\n    .n-upload-file {\n      width: 100%;\n      height: 100%;\n    }\n  }\n\n  &-dragger {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n  }\n}"
  },
  {
    "path": "packages/editor/src/assets/less/index.less",
    "content": "@import './reset.less';\n@import './common.less';\n@import './viewport.cube.less';"
  },
  {
    "path": "packages/editor/src/assets/less/reset.less",
    "content": ":root {\n    --header-height: 50px;\n    --footer-height: 40px;\n    // scene下方扩展面板顶部高度\n    --scene-extend-header-height: 38px;\n    --animate-duration: .25s;\n}\n\n* {\n    padding: 0;\n    margin: 0;\n}\n\nhtml,\nbody:first-child,\n#app {\n    width: 100vw;\n    height: 100vh;\n    overflow: hidden;\n}\n\n/*去除a标签所有默认样式*/\na,a:link,a:visited,a:hover,a:active{\n    text-decoration: none;\n    color:inherit;\n}\n\n/*顶部菜单弹出框样式*/\n.n-dropdown-menu {\n    /* max-height: 25rem;\n    overflow-y: auto; */\n}\n\n/* 减小form表单item上下间距 */\n.n-form-item-feedback-wrapper {\n    min-height: 0.6rem !important;\n}\n\n::-webkit-scrollbar {\n    width: .25rem;\n    height: .25rem;\n}\n\n/*定义滚动条轨道 内阴影+圆角*/\n::-webkit-scrollbar-track {\n    border-radius: .5rem;\n    background-color: rgba(58, 51, 51, 0.075);\n}\n\n/*定义滑块 内阴影+圆角*/\n::-webkit-scrollbar-thumb {\n    border-radius: 10px;\n    box-shadow: inset 0 0 .3rem rgba(0, 0, 0, .2);\n    background-color: rgba(0, 0, 0, 0.2);\n}"
  },
  {
    "path": "packages/editor/src/assets/less/viewport.cube.less",
    "content": "#es-view-cube-container {\n  width: 120px;\n  height: 120px;\n  margin: 10px;\n  perspective: 600px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  z-index: 1000;\n  display: block;\n\n  .es-view-cube {\n    width: 100px;\n    height: 100px;\n    position: relative;\n    transform-style: preserve-3d;\n    transform: translateZ(-300px);\n    text-transform: uppercase;\n\n    .es-view-cube-face {\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      position: absolute;\n      width: 120px;\n      height: 120px;\n      border: 1px dashed #808080;\n      line-height: 100px;\n      font-size: 25px;\n      font-weight: bold;\n      color: #7d7d7d;\n      text-align: center;\n      background: #fff;\n      transition: all 0.1s;\n      cursor: pointer;\n      user-select: none;\n\n      &:hover {\n        background: #adadad;\n        color: #fff;\n      }\n    }\n\n    .es-view-cube-face--top {\n      transform: rotateY(0deg) rotateX(90deg) translateZ(-60px);\n    }\n    .es-view-cube-face--bottom {\n      transform: rotateX(270deg) translateZ(-60px);\n    }\n    .es-view-cube-face--left {\n      transform: rotateY(-90deg) rotateX(180deg) rotateZ(0deg) translateZ(-60px);\n    }\n    .es-view-cube-face--right {\n      transform: rotateY(90deg) rotateX(180deg) rotateZ(0deg) translateZ(-60px);\n    }\n    .es-view-cube-face--front {\n      transform: rotateX(180deg) translateZ(-60px);\n    }\n    .es-view-cube-face--back {\n      transform: rotateZ(180deg) translateZ(-60px);\n    }\n  }\n}\n\n\n\n\n\n"
  },
  {
    "path": "packages/editor/src/components/code/CodeEditor.vue",
    "content": "<template>\n  <div ref=\"monacoEditorRef\" class=\"h-full\"></div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, onBeforeUnmount, nextTick } from 'vue';\nimport * as monaco from 'monaco-editor';\nimport EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';\nimport JsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';\nimport CssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';\nimport HtmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';\nimport TsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';\n\nconst props = withDefaults(defineProps<{\n  source: string,\n  mode: string,\n  config?: {\n    [key: string]: any\n  }\n}>(), {\n  source: \"\",\n  mode: \"javascript\",\n  config: () => ({})\n})\nconst emits = defineEmits([\"update:source\"]);\n\nconst monacoEditorRef = ref();\n// 编辑器实列\nlet editor: monaco.editor.IStandaloneCodeEditor | null = null;\n// 导入的sqlLanguage\nlet sqlLanguage:any = null;\n// sql语法提示示例\nlet sqlProvider:monaco.IDisposable | null = null;\n// 语法错误信息\nlet errorMarkers: monaco.editor.IMarker[] = [];\n\nonMounted(async () => {\n  await nextTick();\n\n  window.MonacoEnvironment = {\n    getWorker(_, label) {\n      if (label === 'json') {\n        return new JsonWorker();\n      }\n      if (label === 'css' || label === 'scss' || label === 'less') {\n        return new CssWorker();\n      }\n      if (label === 'html' || label === 'handlebars' || label === 'razor') {\n        return new HtmlWorker();\n      }\n      if (label === 'typescript' || label === 'javascript') {\n        return new TsWorker();\n      }\n\n      return new EditorWorker();\n    },\n  };\n\n  await initMonaco();\n})\nonBeforeUnmount(() => {\n  if(sqlLanguage){\n    sqlLanguage = null;\n  }\n\n  if(sqlProvider){\n    sqlProvider.dispose();\n    sqlProvider = null;\n  }\n\n  if (editor) {\n    editor.dispose();\n    editor = null;\n  }\n});\n\nasync function initMonaco() {\n  monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n    noSemanticValidation: false,\n    noSyntaxValidation: false,\n  });\n  // 如果使用 Webpack 或其他打包工具，可以使用 importScripts\n  monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n    target: monaco.languages.typescript.ScriptTarget.ES2016,\n    noImplicitAny: false, // 允许隐式 any 类型\n    strict: false, // 禁用所有严格类型检查。\n    allowJs: true,\n    checkJs: false, // 禁用对 .js 文件的类型检查（仅解析语法）\n    allowNonTsExtensions: true, // 允许非 .ts 文件的语法检查\n  });\n\n  // 添加 THREE 的全局声明，以便在 Monaco Editor 中使用而不报错\n  // const response = await fetch('/libs/@types/three/index.d.ts');\n  // const content = await response.text();\n  // monaco.languages.typescript.javascriptDefaults.addExtraLib(\n  //     content,\n  //     'three.d.ts'\n  // );\n\n  if (props.mode === \"sql\") {\n    if(!sqlLanguage){\n      const { language } = await import(\"monaco-editor/esm/vs/basic-languages/sql/sql.js\");\n      sqlLanguage = language;\n    }\n\n    sqlProvider = monaco.languages.registerCompletionItemProvider('sql', {\n      provideCompletionItems: (model, position) => {\n        let suggestions:any = []\n        const { lineNumber, column } = position\n        const textBeforePointer = model.getValueInRange({\n          startLineNumber: lineNumber,\n          startColumn: 0,\n          endLineNumber: lineNumber,\n          endColumn: column,\n        })\n        const contents = textBeforePointer.trim().split(/\\s+/)\n        const lastContents = contents[contents?.length - 1];\n        if (lastContents) {\n          const sqlConfigKey = ['builtinFunctions', 'keywords', 'operators'];\n          sqlConfigKey.forEach(key => {\n            sqlLanguage[key].forEach(sql => {\n              suggestions.push(\n                {\n                  label: sql, // 显示的提示内容;\n                  insertText: sql, // 应插入到文档中的内容\n                  kind: monaco.languages.CompletionItemKind.Keyword\n                }\n              )\n            })\n\n          })\n        }\n        return {\n          suggestions,\n        }\n      }\n    })\n  }\n\n  editor = monaco.editor.create(monacoEditorRef.value, {\n    value: props.source,\n    language: props.mode,\n    ...Object.assign({\n      theme: 'vs-dark', //官方自带三种主题vs, hc-black, or vs-dark\n      readOnly: false, // 是否只读内容不可编辑\n      readOnlyMessage: { value: \"不可以修改哦\", supportThemeIcons: true, supportHtml: true }, // 为只读时编辑内日提示词\n      codeLens: true, // 代码透镜\n      folding: true, // 代码折叠\n      snippetSuggestions: 'inline' as 'inline', // 代码提示\n      tabCompletion: 'on' as 'on', // 代码提示按tab完成\n      foldingStrategy: 'auto' as 'auto', // 折叠策略\n      smoothScrolling: true, // 滚动动画\n      // acceptSuggestionOnCommitCharacter: true, // 接受关于提交字符的建议\n      // acceptSuggestionOnEnter: 'on', // 接受输入建议 \"on\" | \"off\" | \"smart\"\n      // accessibilityPageSize: 10, // 辅助功能页面大小 Number 说明：控制编辑器中可由屏幕阅读器读出的行数。警告：这对大于默认值的数字具有性能含义。\n      // accessibilitySupport: 'on', // 辅助功能支持 控制编辑器是否应在为屏幕阅读器优化的模式下运行。\n      // autoClosingBrackets: 'always', // 是否自动添加结束括号(包括中括号) \"always\" | \"languageDefined\" | \"beforeWhitespace\" | \"never\"\n      // autoClosingDelete: 'always', // 是否自动删除结束括号(包括中括号) \"always\" | \"never\" | \"auto\"\n      // autoClosingOvertype: 'always', // 是否关闭改写 即使用insert模式时是覆盖后面的文字还是不覆盖后面的文字 \"always\" | \"never\" | \"auto\"\n      // autoClosingQuotes: 'always', // 是否自动添加结束的单引号 双引号 \"always\" | \"languageDefined\" | \"beforeWhitespace\" | \"never\"\n      // automaticLayout: true, // 自动布局\n      // codeLensFontFamily: '', // codeLens的字体样式\n      // codeLensFontSize: 13, // codeLens的字体大小\n      // colorDecorators: true, // 呈现内联色彩装饰器和颜色选择器\n      // comments: {\n      //     ignoreEmptyLines: true, // 插入行注释时忽略空行。默认为真。\n      //     insertSpace: true, // 在行注释标记之后和块注释标记内插入一个空格。默认为真。\n      // }, // 注释配置\n      contextmenu: true, // 启用上下文菜单\n      // columnSelection: true, // 启用列编辑 按下shift键位然后按↑↓键位可以实现列选择 然后实现列编辑\n      // autoSurround: 'never', // 是否应自动环绕选择\n      // copyWithSyntaxHighlighting: true, // 是否应将语法突出显示复制到剪贴板中 即 当你复制到word中是否保持文字高亮颜色\n      // cursorBlinking: 'smooth', // 光标动画样式\n      // cursorSmoothCaretAnimation: 'on', // 是否启用光标平滑插入动画  当你在快速输入文字的时候 光标是直接平滑的移动还是直接\"闪现\"到当前文字所处位置\n      // cursorStyle: 'line', // \"Block\"|\"BlockOutline\"|\"Line\"|\"LineThin\"|\"Underline\"|\"UnderlineThin\" 光标样式\n      // cursorSurroundingLines: 0, // 光标环绕行数 当文字输入超过屏幕时 可以看见右侧滚动条中光标所处位置是在滚动条中间还是顶部还是底部 即光标环绕行数 环绕行数越大 光标在滚动条中位置越居中\n      // cursorSurroundingLinesStyle: 'all', // \"default\" | \"all\" 光标环绕样式\n      // cursorWidth: 2, // <=25 光标宽度\n      minimap: {\n        enabled: props.mode !== 'sql', // 是否启用预览图\n      },\n      // scrollbar: {\n      //     verticalScrollbarSize: 5,\n      //     horizontalScrollbarSize: 5,\n      //     arrowSize: 10,\n      //     alwaysConsumeMouseWheel: false,\n      // },\n      // links: true, // 是否点击链接\n      // overviewRulerBorder: true, // 是否应围绕概览标尺绘制边框\n      // renderLineHighlight: 'gutter', // 当前行突出显示方式\n      // scrollBeyondLastLine: false, // 设置编辑器是否可以滚动到最后一行之后\n      // lineNumbers: 'on',\n      // lineNumbersMinChars: 0,\n\n      // fontSize: 13,\n      // roundedSelection: false, // 右侧不显示编辑器预览框\n      // autoIndent: 'full',\n      // formatOnType: true,\n      // formatOnPaste: true\n    }, props.config)\n  })\n\n  editor.onDidChangeModelContent(() => {\n    editor && emits('update:source', editor.getValue())\n  })\n\n  monaco.editor.onDidChangeMarkers(([uri]) => {\n    errorMarkers = monaco.editor.getModelMarkers({ resource: uri });\n  })\n}\n\nfunction getErrors() {\n  const markers: string[] = [];\n  const ignoreError = [\"All destructured elements are unused\", \"is declared but its value is never read\"];\n  errorMarkers.forEach(marker => {\n    const { message, startLineNumber, startColumn, endLineNumber, endColumn } = marker;\n\n    const isIgnore = ignoreError.some(ignore => message.indexOf(ignore) >= 0);\n\n    if (isIgnore) return;\n\n    markers.push(`${message} [${startLineNumber}行${startColumn}列 - ${endLineNumber}行${endColumn}列]`);\n  });\n\n  return markers;\n}\n\ndefineExpose({\n  getErrors\n})\n</script>"
  },
  {
    "path": "packages/editor/src/components/code/HtmlPanelCode.vue",
    "content": "<template>\n  <n-modal :show=\"show\" @update:show=\"(s) => emits('update:show',s)\" class=\"!w-80vw\" preset=\"dialog\"\n           :title=\"title\" :showIcon=\"false\">\n    <CodeEditor ref=\"htmlPanelCodeRef\" v-model:source=\"source\" :mode=\"mode\" class=\"!h-80vh\" />\n\n    <n-alert title=\"Error\" type=\"error\" v-if=\"errors.length\" closable @close=\"errors = []\" class=\"absolute bottom-0 w-full z-9999\">\n      <n-text depth=\"1\" v-for=\"(error,index) in errors\" :keys=\"index\" class=\"block\">{{error}}</n-text>\n    </n-alert>\n    <div class=\"float-right mt-10px\">\n      <n-button size=\"small\" @click=\"emits('update:show',false)\">{{t('other.Cancel')}}</n-button>\n      <n-button class=\"ml-5px\" type=\"primary\" size=\"small\" @click=\"submitCallback\">{{t('other.Ok')}}</n-button>\n    </div>\n  </n-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref, watch} from \"vue\";\nimport {t} from \"@/language\";\nimport CodeEditor from \"@/components/code/CodeEditor.vue\";\n\nconst props = withDefaults(defineProps<{\n  show: boolean,\n  value: string,\n  title: string,\n  mode: string,\n}>(), {\n  show: false,\n  value: \"{}\",\n  title: \"\",\n  mode: 'html'\n})\nconst emits = defineEmits([\"update:show\", \"update:value\"]);\n\nconst htmlPanelCodeRef = ref();\nconst source = ref<string>(props.value);\nconst errors = ref([]);\n\nwatch(() => props.show,(nv) => {\n  if(nv){\n    source.value = props.value;\n  }\n})\n\nfunction submitCallback(e: Event) {\n  e.stopPropagation();\n\n  errors.value = htmlPanelCodeRef.value.getErrors();\n  if(errors.value.length > 0) return;\n\n  emits(\"update:value\", source.value);\n  emits(\"update:show\", false);\n  source.value = \"\";\n}\n</script>\n\n<style scoped lang=\"less\">\n</style>"
  },
  {
    "path": "packages/editor/src/components/code/JSONEditor.vue",
    "content": "<template>\n  <div class=\"w-full h-auto relative\">\n    <CodeEditor ref=\"editorRef\" v-model:source=\"source\" mode=\"json\" class=\"!h-300px\" />\n\n    <n-alert title=\"Error\" type=\"error\" v-if=\"errors.length\" closable @close=\"errors = []\" class=\"absolute bottom-0 w-full z-9999\">\n      <n-text depth=\"1\" v-for=\"(error,index) in errors\" :keys=\"index\" class=\"block\">{{error}}</n-text>\n    </n-alert>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref,useTemplateRef,watch} from \"vue\";\nimport {Utils} from \"@astral3d/engine\";\nimport CodeEditor from \"@/components/code/CodeEditor.vue\";\n\nconst props = withDefaults(defineProps<{\n  value: string\n}>(), {\n  value: \"\"\n})\nconst emits = defineEmits([ \"update:value\"]);\n\nconst editorRef = useTemplateRef(\"editorRef\");\nconst source = ref<string>(props.value);\nconst errors = ref<string[]>([]);\n\nconst handleSourceChange = Utils.debounce(() => {\n  if(!editorRef.value) return;\n\n  errors.value = editorRef.value?.getErrors();\n  if(errors.value.length > 0) return;\n\n  emits(\"update:value\", source.value);\n},150)\nwatch(source,handleSourceChange);\n\nfunction reset() {\n  source.value = \"\";\n  errors.value = [];\n}\n\ndefineExpose({\n  errors,\n  reset\n})\n</script>\n\n<style scoped lang=\"less\">\n</style>"
  },
  {
    "path": "packages/editor/src/components/code/SQLEditor.vue",
    "content": "<template>\n  <div class=\"w-full h-auto\">\n    <CodeEditor ref=\"editorRef\" v-model:source=\"source\" mode=\"sql\" class=\"!h-300px\" />\n\n    <n-alert title=\"Error\" type=\"error\" v-if=\"errors.length\" closable @close=\"errors = []\" class=\"absolute bottom-0 w-full z-9999\">\n      <n-text depth=\"1\" v-for=\"(error,index) in errors\" :keys=\"index\" class=\"block\">{{error}}</n-text>\n    </n-alert>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref,useTemplateRef,watch} from \"vue\";\nimport {Utils} from \"@astral3d/engine\";\nimport CodeEditor from \"@/components/code/CodeEditor.vue\";\n\nconst props = withDefaults(defineProps<{\n  value: string\n}>(), {\n  value: \"\"\n})\nconst emits = defineEmits([ \"update:value\"]);\n\nconst editorRef = useTemplateRef(\"editorRef\");\nconst source = ref<string>(props.value);\nconst errors = ref<string[]>([]);\n\nconst handleSourceChange = Utils.debounce(() => {\n  if(!editorRef.value) return;\n\n  errors.value = editorRef.value?.getErrors();\n  if(errors.value.length > 0) return;\n\n  emits(\"update:value\", source.value);\n},150)\nwatch(source,handleSourceChange);\n\nfunction reset() {\n  source.value = \"\";\n  errors.value = [];\n}\n\ndefineExpose({\n  errors,\n  reset\n})\n</script>\n\n<style scoped lang=\"less\">\n</style>"
  },
  {
    "path": "packages/editor/src/components/code/Script.vue",
    "content": "<template>\n  <n-modal v-model:show=\"show\" class=\"!w-90vw\" preset=\"dialog\" :title=\"title\" :showIcon=\"false\">\n    <CodeEditor ref=\"scriptCodeRef\" v-model:source=\"script.source\" :mode=\"mode\" class=\"!h-80vh\"/>\n\n    <n-alert title=\"Error\" type=\"error\" v-if=\"errors.length\" closable @close=\"errors = []\"\n             class=\"absolute bottom-0 w-full z-9999\">\n      <n-text depth=\"1\" v-for=\"(error,index) in errors\" :keys=\"index\" class=\"block\">{{ error }}</n-text>\n    </n-alert>\n    <div class=\"float-right mt-10px\">\n      <n-button size=\"small\" @click=\"show = false\">{{ t('other.Cancel') }}</n-button>\n      <n-button class=\"ml-5px\" type=\"primary\" size=\"small\" @click=\"submit\">{{ t('other.Ok') }}</n-button>\n    </div>\n  </n-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport {onBeforeUnmount, onMounted, reactive, ref} from \"vue\";\nimport * as THREE from 'three';\nimport {App, Hooks, SetScriptValueCommand, SetMaterialValueCommand} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport CodeEditor from \"@/components/code/CodeEditor.vue\";\n\nconst scriptCodeRef = ref();\nconst title = ref(\"\");\nconst show = ref(false);\nconst script = reactive({\n  name: '',\n  source: ''\n});\nconst errors = ref([]);\nconst mode = ref('javascript');\n\nlet currentScript: IScript.IStruct | string | null = null;\nlet currentObject: THREE.Mesh | null = null;\n\nonMounted(async () => {\n  Hooks.useAddSignal(\"sceneCleared\", sceneCleared);\n  Hooks.useAddSignal(\"scriptRemoved\", scriptRemoved);\n  Hooks.useAddSignal(\"editScript\", editScript);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"sceneCleared\", sceneCleared);\n  Hooks.useRemoveSignal(\"scriptRemoved\", scriptRemoved);\n  Hooks.useRemoveSignal(\"editScript\", editScript);\n})\n\nfunction sceneCleared() {\n  show.value = false;\n  script.name = \"\";\n  script.source = \"\";\n  errors.value = [];\n}\n\nfunction scriptRemoved(_: THREE.Object3D, sc: IScript.IStruct) {\n  if (script.name === sc.name) {\n    sceneCleared();\n  }\n}\n\nfunction editScript(object: THREE.Object3D, sc: IScript.IStruct | string) {\n  if (typeof (sc) === 'object') {\n    mode.value = 'javascript';\n    script.name = sc.name;\n    script.source = sc.source;\n    title.value = object.name + ' / ' + script.name;\n  } else {\n    switch (sc) {\n      case 'vertexShader':\n        mode.value = 'glsl';\n        script.name = 'Vertex Shader';\n        // @ts-ignore\n        script.source = object.material.vertexShader || '';\n        break;\n\n      case 'fragmentShader':\n        mode.value = 'glsl';\n        script.name = 'Fragment Shader';\n        // @ts-ignore\n        script.source = object.material.fragmentShader || '';\n        break;\n\n      case 'programInfo':\n        mode.value = 'json';\n        script.name = 'Program Properties';\n        const json = {\n          // @ts-ignore\n          defines: object.material.defines,\n          // @ts-ignore\n          uniforms: object.material.uniforms,\n          // @ts-ignore\n          attributes: object.material.attributes\n        };\n        script.source = JSON.stringify(json, null, '\\t');\n    }\n\n    // @ts-ignore\n    title.value = object.material.name + ' / ' + script.name;\n  }\n\n  currentScript = sc;\n  currentObject = object as THREE.Mesh;\n\n  show.value = true;\n}\n\nfunction submit(e: Event) {\n  e.stopPropagation();\n\n  errors.value = scriptCodeRef.value.getErrors();\n  if (errors.value.length > 0) return;\n\n  if (!currentObject) return;\n\n  const value = script.source;\n\n  if (typeof (currentScript) === 'object') {\n    if (value !== currentScript?.source) {\n      App.execute(new SetScriptValueCommand(currentObject as THREE.Object3D, currentScript as IScript.IStruct, 'source', value));\n    }\n\n    show.value = false;\n    return;\n  }\n\n  if (mode.value === 'glsl' && currentObject.material) {\n    currentObject.material[currentScript] = value;\n    (currentObject.material as THREE.Material).needsUpdate = true;\n    Hooks.useDispatchSignal('materialChanged', currentObject, 0);\n\n    show.value = false;\n    return;\n  }\n\n  if (currentScript !== 'programInfo') {\n    show.value = false;\n    return;\n  }\n\n  if (!currentObject.material) return\n\n  const json = JSON.parse(value);\n\n  if (JSON.stringify((currentObject.material as THREE.Material).defines) !== JSON.stringify(json.defines)) {\n    const cmd = new SetMaterialValueCommand(currentObject, 'defines', json.defines);\n    cmd.updatable = false;\n    App.execute(cmd);\n  }\n\n  // @ts-ignore\n  if (JSON.stringify(currentObject.material.uniforms) !== JSON.stringify(json.uniforms)) {\n    const cmd = new SetMaterialValueCommand(currentObject, 'uniforms', json.uniforms);\n    cmd.updatable = false;\n    App.execute(cmd);\n  }\n\n  // @ts-ignore\n  if (JSON.stringify(currentObject.material.attributes) !== JSON.stringify(json.attributes)) {\n    const cmd = new SetMaterialValueCommand(currentObject, 'attributes', json.attributes);\n    cmd.updatable = false;\n    App.execute(cmd);\n  }\n\n  show.value = false;\n}\n</script>"
  },
  {
    "path": "packages/editor/src/components/code/UserData.vue",
    "content": "<template>\n  <n-modal :show=\"show\" @update:show=\"(s) => emits('update:show',s)\" class=\"!w-60vw\" preset=\"dialog\"\n           :title=\"t('layout.sider.object.userdata')\" :showIcon=\"false\">\n    <CodeEditor ref=\"userdataRef\" v-model:source=\"source\" mode=\"json\" class=\"!h-600px\" />\n\n    <n-alert title=\"Error\" type=\"error\" v-if=\"errors.length\" closable @close=\"errors = []\" class=\"absolute bottom-0 w-full z-9999\">\n      <n-text depth=\"1\" v-for=\"(error,index) in errors\" :keys=\"index\" class=\"block\">{{error}}</n-text>\n    </n-alert>\n    <div class=\"float-right mt-10px\">\n      <n-button size=\"small\" @click=\"emits('update:show',false)\">{{t('other.Cancel')}}</n-button>\n      <n-button class=\"ml-5px\" type=\"primary\" size=\"small\" @click=\"submitCallback\">{{t('other.Ok')}}</n-button>\n    </div>\n  </n-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref, watch} from \"vue\";\nimport {t} from \"@/language\";\nimport CodeEditor from \"@/components/code/CodeEditor.vue\";\n\nconst props = withDefaults(defineProps<{\n  show: boolean,\n  value: string\n}>(), {\n  show: false,\n  value: \"{}\"\n})\nconst emits = defineEmits([\"update:show\", \"update:value\"]);\n\nconst userdataRef = ref();\nconst source = ref<string>(props.value);\nconst errors = ref([]);\n\nwatch(() => props.show,(nv) => {\n  if(nv){\n    source.value = props.value;\n  }\n})\n\nfunction submitCallback(e: Event) {\n  e.stopPropagation();\n\n  errors.value = userdataRef.value.getErrors();\n  if(errors.value.length > 0) return;\n\n  emits(\"update:value\", source.value);\n  emits(\"update:show\", false);\n  source.value = \"\";\n}\n</script>\n\n<style scoped lang=\"less\">\n</style>"
  },
  {
    "path": "packages/editor/src/components/drawing/Drawing.vue",
    "content": "<template>\n  <div id=\"drawing\" class=\"!w-full !h-full\" @contextmenu=\"handleContextMenu\">\n    <n-spin :show=\"loading\">\n      <template #description>加载中...</template>\n      <div class=\"drawing-container\" ref=\"containerRef\">\n        <canvas ref=\"canvasRef\"></canvas>\n      </div>\n    </n-spin>\n\n    <ImageToolbar v-if=\"!drawingInfo?.isCad\" />\n    <CADToolbar v-else />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {onMounted, ref, nextTick, computed, onBeforeUnmount, watch, inject, Ref} from \"vue\";\nimport {useThemeVars} from 'naive-ui';\nimport {Hooks,DxfViewer,DxfParser} from \"@astral3d/engine\";\nimport {DrawRect} from \"@/utils/drawing/drawRect\";\nimport ImageToolbar from \"./toolbar/Image.vue\";\nimport CADToolbar from \"./toolbar/CAD.vue\";\nimport Config from \"@/utils/storage/config\";\n\nconst themeVars = useThemeVars();\nconst baseColor = computed(() => themeVars.value.baseColor);\nconst borderColor = computed(() => themeVars.value.borderColor);\n\nconst drawingInfo = inject(\"drawingInfo\") as Ref<IDrawing>;\n\nconst containerRef = ref();\nconst canvasRef = ref();\nconst loading = ref(true);\n\nfunction handleContextMenu(e: MouseEvent) {\n  e.preventDefault();\n\n  return false\n}\n\nfunction loadCadFile(canvas:HTMLCanvasElement,parentElement:HTMLDivElement){\n  let dxf;\n\n  // 实例化Dxf.Viewer\n  function loadDxf() {\n    const DXFViewer = new DxfViewer(dxf, canvas, parentElement.offsetWidth, parentElement.offsetHeight, () => {\n      loading.value = false;\n      window.DrawViewer = DXFViewer;\n    });\n\n    if (dxf.tables?.layer?.layers) {\n      const bgColor = Config.getKey('cad')?.bgColor;\n\n      if (bgColor) {\n        const color = Number(bgColor);\n        const contrastColor = color === 0x000000 ? 0xffffff : 0x000000;\n\n        const l = dxf.tables.layer.layers;\n        Object.keys(l).forEach(k => {\n          if (l[k].color === color) {\n            l[k].color = contrastColor;\n          }\n        })\n      }\n      drawingInfo.value.layers = dxf.tables.layer.layers;\n    }\n  }\n\n  let notice = window.$notification.info({\n    title: window.$t(\"drawing['Get the drawing data']\") + \"...\",\n    content: window.$t(\"other.Loading\") + \"...\",\n    closable: false,\n  })\n\n  // dxf 加载图纸\n  const parser = new DxfParser();\n  fetch(drawingInfo.value.imgSrc).then(res => res.text()).then(text => {\n    notice.content = window.$t(\"scene['Parsing to editor']\");\n    dxf = parser.parse(text);\n    loadDxf();\n\n    setTimeout(() => {\n      notice.destroy();\n    }, 800)\n  })\n}\n\nasync function initCanvas() {\n  if(!drawingInfo.value.imgSrc) return;\n\n  let canvas = canvasRef.value as HTMLCanvasElement;\n  const parentElement = containerRef.value as HTMLDivElement;\n\n  if(drawingInfo.value.isCad){\n    // dxf 加载图纸\n    loadCadFile(canvas, parentElement);\n  }else{\n    // canvas 加载图片\n    let bigImg = new Image();\n    bigImg.src = drawingInfo.value.imgSrc;\n    bigImg.onload = () => {\n      const containerHeight = (containerRef.value as HTMLDivElement).offsetHeight;\n      canvas.height = containerHeight;\n      canvas.width = bigImg.width * (containerHeight / bigImg.height);\n\n      canvas.style.backgroundImage = `url(${drawingInfo.value.imgSrc})`;\n      canvas.style.backgroundRepeat = \"no-repeat\";\n      canvas.style.backgroundPosition = \"top left\";\n      canvas.style.backgroundSize = \"100% 100%\";\n\n      drawingInfo.value.imgInfo = {\n        width: canvas.width,\n        height: canvas.height\n      }\n\n      window.DrawViewer = new DrawRect(canvas,parentElement);\n\n      loading.value = false;\n    }\n  }\n}\n\n// 模型选中时反选图纸上的rect\nfunction objectSelected(object){\n  if(!object ||!window.DrawViewer) return;\n  // if(!drawingInfo.isCad){\n  //   window.DrawViewer?.selectRect(object.uuid);\n  // }else{\n  //   // 检查该模型是否已有绑定标记\n  //   for (const rect of drawingInfo.markList) {\n  //     if (rect.modelUuid === object.uuid) {\n  //       window.DrawViewer?.selectRect(object.uuid);\n  //       return;\n  //     }\n  //   }\n  //\n  //   window.DrawViewer?.selectRect(undefined);\n  // }\n\n  window.DrawViewer?.selectRect(object.uuid);\n}\n\nwatch(() => drawingInfo.value.imgSrc, async () => {\n  if(!canvasRef.value) return;\n  const newCanvas = document.createElement(\"canvas\");\n\n  window.DrawViewer?.dispose();\n  canvasRef.value.remove();\n  canvasRef.value = null;\n\n  containerRef.value.append(newCanvas);\n  canvasRef.value = newCanvas;\n\n  await initCanvas();\n})\n\nonMounted(async () => {\n  await nextTick();\n  await initCanvas();\n\n  Hooks.useAddSignal(\"objectSelected\", objectSelected);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", objectSelected);\n\n  window.DrawViewer?.dispose();\n  window.DrawViewer = undefined;\n})\n</script>\n\n<style lang=\"less\" scoped>\n#drawing {\n  overflow: hidden;\n  display: flex;\n  justify-content: center;\n\n  :deep(.n-spin-container){\n    width: 100%;\n    height: 100%;\n\n    .n-spin-content{\n      width: 100%;\n      height: 100%;\n    }\n  }\n\n  .drawing-container {\n    position: relative;\n    margin: 0 auto;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n\n    canvas {\n      position: relative;\n      transition: all 16ms;\n      z-index: 10;\n      width: auto;\n      height: auto;\n    }\n  }\n\n  .drawing-tool-bar {\n    position: absolute;\n    bottom: 3%;\n    padding: 0.2rem 0.5rem;\n    background: v-bind(baseColor);\n    z-index: 999;\n    border: 1px solid v-bind(borderColor);\n    border-radius: 0.3rem;\n    display: flex;\n\n    :deep(.n-color-picker) {\n      position: absolute;\n      width: 0;\n      overflow: hidden;\n\n      &-trigger {\n        border: 0;\n        width: 0;\n      }\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/drawing/toolbar/CAD.vue",
    "content": "<template>\n  <div class=\"drawing-tool-bar\">\n    <n-tooltip trigger=\"hover\" placement=\"bottom\" v-for=\"m in toolbar\" :key=\"m.name\">\n      <template #trigger>\n        <n-button quaternary :type=\"m.active ? 'primary' : 'default'\" :disabled=\"m.disabled\"\n                  size=\"small\" @click=\"clickMenu(m)\" :id=\"'drawing-tool-bar-' + m.key\">\n          <template #icon>\n            <n-icon>\n              <component :is=\"m.icon\"/>\n            </n-icon>\n          </template>\n        </n-button>\n      </template>\n      {{ m.name }}\n    </n-tooltip>\n\n    <n-color-picker placement=\"top-start\" size=\"small\" v-model:show=\"colorPickerShow\" v-model:value=\"rectColor\"\n                    :show-alpha=\"false\" :modes=\"['hex']\" @update:value=\"changeRectColor\"/>\n\n    <!--  图层  -->\n    <CadLayers v-model:show=\"layersVisible\" @close=\"closeLayers\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, inject, onBeforeUnmount, onMounted, Ref, ref} from \"vue\";\nimport {LayersSharp, LocateSharp, LocationSharp, TrashSharp} from \"@vicons/ionicons5\";\nimport {App,Hooks} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport CadLayers from \"@/components/drawing/toolbar/CadLayers.vue\";\n\ninterface IToolbarItem {\n  key: string;\n  name: string;\n  icon: any;\n  active: boolean;\n  disabled: boolean;\n}\n\nconst drawingInfo = inject(\"drawingInfo\") as Ref<IDrawing>;\nconst toolbar = computed(() => [\n  {key:\"reset\",name: t(\"drawing.toolbar.Reset\"), icon: LocateSharp, active: false, disabled: false},\n  {key:\"layers\",name:t(\"drawing.toolbar.Layer\"),icon:LayersSharp, active: false, disabled: false},\n  {key:\"mark\",name: t(\"drawing.toolbar['Add mark']\"), icon: LocationSharp, active: false, disabled: false},\n  //{key:\"colorPicker\",name: t(\"drawing.toolbar['Mark color']\"), icon: ColorPaletteSharp,active: false,  disabled: drawingStore.getSelectedRectIndex === -1},\n  {key:\"delete\",name: t(\"drawing.toolbar.Delete\"), icon: TrashSharp, active: false, disabled:true /*window.DrawViewer?.selectRectIndex === -1*/},\n  //{key:\"setting\",name: t(\"drawing.toolbar.Setting\"),icon: SettingsSharp,active: false, disabled: false},\n]);\nconst layersVisible = ref(false);\nconst rectColor = ref(window.DrawViewer?.rectColor || \"#15FF00\");\nconst colorPickerShow = ref(false);\n\nonMounted(() => {\n  Hooks.useAddSignal(\"drawingMarkDone\", drawingMarkDone);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"drawingMarkDone\", drawingMarkDone);\n})\n\nfunction clickMenu( m: IToolbarItem) {\n  if (m.disabled) return;\n\n  switch (m.key) {\n    case \"reset\":\n      window.DrawViewer?.callMethod(\"resetCamera\");\n      break;\n    case \"layers\":\n      layersVisible.value = !m.active;\n      m.active = !m.active;\n      break;\n    case \"mark\":\n      m.active = !m.active;\n\n      if (m.active) {\n        addMarkCheck(m);\n      }else{\n        // 退出绘制流程\n        window.DrawViewer?.exitRect();\n      }\n      break;\n    case \"colorPicker\":\n      if (colorPickerShow.value) return;\n\n      if (window.DrawViewer?.selectRectIndex === -1) {\n        window.$message?.warning(t(\"drawing['Select the mark whose color you want to change!']\"));\n      } else {\n        rectColor.value = window.DrawViewer?.selectRectColor as string;\n        colorPickerShow.value = true;\n      }\n      break;\n    case \"delete\":\n      // 删除标记\n      window.DrawViewer?.deleteRect();\n      break;\n  }\n}\n\nfunction closeLayers(){\n  layersVisible.value = false;\n\n  const l = toolbar.value.find(item => item.key === \"layers\");\n  if(l){\n    l.active = false;\n  }\n}\n\nfunction addMarkCheck(m: IToolbarItem) {\n  const object = App.selected;\n  // 检查是否有选中模型\n  if (!object) {\n    window.$message?.warning(t(\"drawing['Please select the model you want to tag']\"));\n    m.active = false;\n    return;\n  }\n\n  // 检查该模型是否已有绑定标记\n  console.log(drawingInfo.value.markList)\n  for (const rect of drawingInfo.value.markList) {\n    if (rect.modelUuid === object.uuid) {\n      window.$message?.warning(t(\"drawing['The current model has been tagged']\"));\n      m.active = false;\n      window.DrawViewer?.selectRect(object.uuid);\n      return;\n    }\n  }\n\n  // 新增标记\n  window.DrawViewer?.callMethod(\"callModuleMethod\", {\n    moduleName: \"drawRect\", methodName: \"addRect\",modelUuid: object.uuid,\n  });\n  window.$message?.info(t(\"drawing['Left-drag to add a mark']\"));\n}\n\nfunction drawingMarkDone(type:\"add\" | \"update\",_:IDrawingMark){\n  switch (type) {\n    case \"add\":\n      const mark = toolbar.value.find(m => m.key === \"mark\");\n      if(mark) mark.active = false;\n      break;\n    case \"update\":\n      break;\n  }\n}\n\nfunction changeRectColor(color: string) {\n  window.DrawViewer?.setRectColor(color);\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/drawing/toolbar/CadLayers.vue",
    "content": "<template>\n  <n-popover trigger=\"manual\" :show=\"show\">\n    <template #trigger>\n      <span class=\"absolute\" ref=\"triggerRef\"></span>\n    </template>\n\n    <div class=\"overflow-y-auto h-500px\" ref=\"popoverRef\">\n      <div className=\"flex items-center mb-15px\">\n        <n-icon size=\"16\" color=\"#CACACA\" v-if=\"viewAll\">\n          <EyeSharp className=\"cursor-pointer\" @click=\"handleLayersAllView(false)\"/>\n        </n-icon>\n        <n-icon size=\"16\" color=\"#CACACA\" v-else>\n          <EyeOffSharp className=\"cursor-pointer\" @click=\"handleLayersAllView(true)\"/>\n        </n-icon>\n        <span className=\"ml-5px\">全部图层</span>\n      </div>\n\n      <div v-for=\"key in Object.keys(drawingInfo.layers)\" :key=\"key\" className=\"flex items-center mt-10px\">\n        <n-icon size=\"16\" color=\"#CACACA\" v-if=\"drawingInfo.layers[key].visible\">\n          <EyeSharp className=\"cursor-pointer\" @click=\"handleSetLayerVisible(key,false)\"/>\n        </n-icon>\n        <n-icon size=\"16\" color=\"#CACACA\" v-else>\n          <EyeOffSharp className=\"cursor-pointer\" @click=\"handleSetLayerVisible(key,true)\"/>\n        </n-icon>\n        <div className=\"w-15px h-15px mx-5px\"\n             :style=\"{backgroundColor: decToRgb(drawingInfo.layers[key].color)}\"></div>\n        <span className=\"ml-5px\">{{ drawingInfo.layers[key].name }}</span>\n      </div>\n    </div>\n  </n-popover>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref,useTemplateRef, onMounted, nextTick, inject, Ref} from 'vue';\nimport { onClickOutside } from '@vueuse/core';\nimport {EyeSharp, EyeOffSharp} from '@vicons/ionicons5';\nimport {decToRgb} from \"@/utils/common/color\";\nimport {App} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  show: boolean\n}>(), {\n  show: false\n})\n\nconst emits = defineEmits(['update:show','close'])\n\nconst drawingInfo = inject(\"drawingInfo\") as Ref<IDrawing>;\nconst triggerRef = useTemplateRef<HTMLSpanElement>('triggerRef');\nconst popoverRef = useTemplateRef<HTMLSpanElement>('popoverRef');\nconst viewAll = ref(true);\n\nonMounted(() => {\n  // 在图层按钮位置弹出\n  const layerBtn = document.getElementById(\"drawing-tool-bar-layers\");\n  nextTick().then(() => {\n    if (layerBtn && triggerRef.value) {\n      triggerRef.value.style.left = `${layerBtn.offsetLeft + layerBtn.clientWidth /2 }px`;\n    }\n  })\n});\nonClickOutside(popoverRef, () => {\n  if(!props.show) return;\n\n  emits('close');\n})\n\n// 全部图层显示/隐藏\nfunction handleLayersAllView(bool: boolean) {\n  viewAll.value = bool;\n\n  Object.keys(drawingInfo.value.layers).forEach((key) => {\n    handleSetLayerVisible(key, bool);\n  });\n}\n\nfunction handleSetLayerVisible(layerName: string, bool: boolean) {\n  drawingInfo.value.layers[layerName].visible = bool;\n  window.DrawViewer?.callMethod(\"setLayerVisible\", {layerName, visible: bool});\n  App.project.setDrawingLayerVisible(layerName, bool);\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/drawing/toolbar/Image.vue",
    "content": "<template>\n  <div class=\"drawing-tool-bar\">\n    <n-tooltip trigger=\"hover\" placement=\"bottom\" v-for=\"m in toolbar\" :key=\"m.name\">\n      <template #trigger>\n        <n-button quaternary :type=\"m.active ? 'primary' : 'default'\" :disabled=\"m.disabled\"\n                  size=\"small\" @click=\"clickMenu(m)\">\n          <template #icon>\n            <n-icon>\n              <component :is=\"m.icon\"/>\n            </n-icon>\n          </template>\n        </n-button>\n      </template>\n      {{ m.name }}\n    </n-tooltip>\n\n    <n-color-picker placement=\"top-start\" size=\"small\" v-model:show=\"colorPickerShow\" v-model:value=\"rectColor\"\n                    :show-alpha=\"false\" :modes=\"['hex']\" @update:value=\"changeRectColor\"/>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, onBeforeUnmount, onMounted, ref, inject, Ref} from \"vue\";\nimport {ColorPaletteSharp, LocateSharp, LocationSharp, TrashSharp} from \"@vicons/ionicons5\";\nimport {App,Hooks} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\n\ninterface IToolbarItem {\n  key: string;\n  name: string;\n  icon: any;\n  active: boolean;\n  disabled: boolean;\n}\n\nconst drawingInfo = inject(\"drawingInfo\") as Ref<IDrawing>;\nconst toolbar = computed(() => [\n  {key:\"reset\",name: t(\"drawing.toolbar.Reset\"), icon: LocateSharp, active: false, disabled: false},\n  {key:\"mark\",name: t(\"drawing.toolbar['Add mark']\"), icon: LocationSharp, active: false, disabled: false},\n  {key:\"colorPicker\",name: t(\"drawing.toolbar['Mark color']\"), icon: ColorPaletteSharp,active: false,  disabled: drawingInfo.value.selectedRectIndex === -1},\n  {key:\"delete\",name: t(\"drawing.toolbar.Delete\"), icon: TrashSharp, active: false, disabled: drawingInfo.value.selectedRectIndex === -1},\n])\nconst rectColor = ref(window.DrawViewer?.rectColor || \"#15FF00\");\nconst colorPickerShow = ref(false);\n\nonMounted(() => {\n  Hooks.useAddSignal(\"drawingMarkDone\", drawingMarkDone);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"drawingMarkDone\", drawingMarkDone);\n})\n\nfunction clickMenu(m: IToolbarItem) {\n  if (m.disabled) return;\n\n  switch (m.key) {\n    case \"reset\":\n      window.DrawViewer?.canvasReset();\n      break;\n    case \"mark\":\n      m.active = !m.active;\n\n      if (m.active) {\n        addMarkCheck(m);\n      }else{\n        // 退出绘制流程\n        window.DrawViewer?.exitRect();\n      }\n      break;\n    case \"colorPicker\":\n      if (colorPickerShow.value) return;\n\n      if (window.DrawViewer?.selectRectIndex === -1) {\n        window.$message?.warning(t(\"drawing['Select the mark whose color you want to change!']\"));\n      } else {\n        rectColor.value = window.DrawViewer?.selectRectColor as string;\n        colorPickerShow.value = true;\n      }\n      break;\n    case \"delete\":\n      // 删除标记\n      window.DrawViewer?.deleteRect();\n      break;\n  }\n}\n\nfunction addMarkCheck(m: IToolbarItem) {\n  const object = App.selected;\n  // 检查是否有选中模型\n  if (!object) {\n    window.$message?.warning(t(\"drawing['Please select the model you want to tag']\"));\n    m.active = false;\n    return;\n  }\n\n  // 检查该模型是否已有绑定标记\n  for (const rect of drawingInfo.value.markList) {\n    if (rect.modelUuid === object.uuid) {\n      window.$message?.warning(t(\"drawing['The current model has been tagged']\"));\n      m.active = false;\n      window.DrawViewer?.selectRect(object.uuid);\n      return;\n    }\n  }\n\n  // 新增标记\n  window.DrawViewer?.addRect();\n  window.$message?.info(t(\"drawing['Left-drag to add a mark']\"));\n}\n\nfunction drawingMarkDone(type:\"add\" | \"update\",_:IDrawingMark){\n  switch (type) {\n    case \"add\":\n      const mark = toolbar.value.find(m => m.key === \"mark\");\n      if(mark) mark.active = false;\n      break;\n    case \"update\":\n      break;\n  }\n}\n\nfunction changeRectColor(color: string) {\n  window.DrawViewer?.setRectColor(color);\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsContextmenu.vue",
    "content": "<template>\n    <n-dropdown v-bind=\"attrs\" :x=\"x\" :y=\"y\" :options=\"options\" :show=\"visible\" :on-clickoutside=\"onClickoutside\" @select=\"handleSelect\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { useAttrs,ref } from \"vue\";\n\nwithDefaults(defineProps<{\n    options: any[];\n}>(), {\n    options:[] as any,\n})\nconst emits = defineEmits(['select']);\n\nconst attrs = useAttrs();\nconst visible = ref(false);\nconst x = ref(0);\nconst y = ref(0);\n\nfunction onClickoutside(){\n    visible.value = false;\n}\n\nfunction handleSelect(key:string){\n    emits('select',key)\n    visible.value = false;\n}\n\nfunction show(_x,_y){\n    x.value = _x;\n    y.value = _y;\n\n    visible.value = true;\n}\n\ndefineExpose({\n    show\n})\n</script>\n\n<style scoped lang=\"less\">\n\n</style>\n\n"
  },
  {
    "path": "packages/editor/src/components/es/EsCubeLoading.vue",
    "content": "<script setup lang=\"ts\">\nwithDefaults(defineProps<{\n  visible:boolean\n}>(),{\n  visible:false\n})\n</script>\n\n<template>\n  <div class=\"w-full h-full flex flex-col justify-center items-center bg-#1D82B8 relative z-9999\" v-if=\"visible\">\n    <div class=\"es-folding-cube bg-#fff\">\n      <div class=\"es-cube1 es-cube\"></div>\n      <div class=\"es-cube2 es-cube\"></div>\n      <div class=\"es-cube4 es-cube\"></div>\n      <div class=\"es-cube3 es-cube\"></div>\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n.es-folding-cube {\n  margin: 20px auto;\n  width: 40px;\n  height: 40px;\n  position: relative;\n  -webkit-transform: rotateZ(45deg);\n  transform: rotateZ(45deg);\n}\n\n.es-folding-cube .es-cube {\n  float: left;\n  width: 50%;\n  height: 50%;\n  position: relative;\n  -webkit-transform: scale(1.1);\n  -ms-transform: scale(1.1);\n  transform: scale(1.1);\n}\n.es-folding-cube .es-cube:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background-color: #1D82B8;\n  -webkit-animation: es-foldCubeAngle 2.4s infinite linear both;\n  animation: es-foldCubeAngle 2.4s infinite linear both;\n  -webkit-transform-origin: 100% 100%;\n  -ms-transform-origin: 100% 100%;\n  transform-origin: 100% 100%;\n}\n.es-folding-cube .es-cube2 {\n  -webkit-transform: scale(1.1) rotateZ(90deg);\n  transform: scale(1.1) rotateZ(90deg);\n}\n.es-folding-cube .es-cube3 {\n  -webkit-transform: scale(1.1) rotateZ(180deg);\n  transform: scale(1.1) rotateZ(180deg);\n}\n.es-folding-cube .es-cube4 {\n  -webkit-transform: scale(1.1) rotateZ(270deg);\n  transform: scale(1.1) rotateZ(270deg);\n}\n.es-folding-cube .es-cube2:before {\n  -webkit-animation-delay: 0.3s;\n  animation-delay: 0.3s;\n}\n.es-folding-cube .es-cube3:before {\n  -webkit-animation-delay: 0.6s;\n  animation-delay: 0.6s;\n}\n.es-folding-cube .es-cube4:before {\n  -webkit-animation-delay: 0.9s;\n  animation-delay: 0.9s;\n}\n@-webkit-keyframes es-foldCubeAngle {\n  0%, 10% {\n    -webkit-transform: perspective(140px) rotateX(-180deg);\n    transform: perspective(140px) rotateX(-180deg);\n    opacity: 0;\n  } 25%, 75% {\n      -webkit-transform: perspective(140px) rotateX(0deg);\n      transform: perspective(140px) rotateX(0deg);\n      opacity: 1;\n    } 90%, 100% {\n        -webkit-transform: perspective(140px) rotateY(180deg);\n        transform: perspective(140px) rotateY(180deg);\n        opacity: 0;\n      }\n}\n\n@keyframes es-foldCubeAngle {\n  0%, 10% {\n    -webkit-transform: perspective(140px) rotateX(-180deg);\n    transform: perspective(140px) rotateX(-180deg);\n    opacity: 0;\n  } 25%, 75% {\n      -webkit-transform: perspective(140px) rotateX(0deg);\n      transform: perspective(140px) rotateX(0deg);\n      opacity: 1;\n    } 90%, 100% {\n        -webkit-transform: perspective(140px) rotateY(180deg);\n        transform: perspective(140px) rotateY(180deg);\n        opacity: 0;\n      }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsDocument.vue",
    "content": "<template>\n  <n-alert type=\"success\" :show-icon=\"false\" closable class=\"mb-2\">\n    <div class=\"flex items-center\">\n      <n-icon :size=\"20\">\n        <Link />\n      </n-icon>\n      <a :href=\"url\" target=\"_blank\" class=\"ml-2\">{{ t(\"other.Related document\") }}</a>\n    </div>\n  </n-alert>\n</template>\n\n<script setup lang=\"ts\">\nimport {t} from \"@/language\";\nimport {Link} from \"@vicons/carbon\";\n\nwithDefaults(defineProps<{\n  url: string\n}>(), {\n  url: \"\",\n})\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsFormItemHelpLabel.vue",
    "content": "<script setup lang=\"ts\">\nimport {Help} from '@vicons/carbon';\n\nwithDefaults(defineProps<{\n  label:string\n}>(),{\n  label:\"\"\n})\n</script>\n\n<template>\n  <div class=\"flex items-center justify-end\">\n    <span>{{ label }}</span>\n\n    <n-tooltip trigger=\"hover\">\n      <template #trigger>\n        <n-icon :size=\"16\" :depth=\"3\" class=\"ml-5px mb-1px cursor-pointer\">\n          <Help />\n        </n-icon>\n      </template>\n\n      <slot></slot>\n    </n-tooltip>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsInput.vue",
    "content": "<template>\n  <div class=\"es-input flex items-center w-full\">\n    <label v-if=\"label\">{{ label }}</label>\n    <div v-if=\"defaultNoBorder && noFocus\" @click=\"handleClickText\" class=\"w-full\">{{value}}</div>\n    <n-input v-else ref=\"inRef\" :value=\"value\" @input=\"handleInput\" @change=\"handleChange\" @blur=\"noFocus = true\" type=\"text\" v-bind=\"attrs\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {useAttrs,ref,nextTick} from \"vue\";\n\nwithDefaults(defineProps<{\n  value: string,\n  label: string,\n  defaultNoBorder: boolean,\n}>(), {\n  value: '',\n  label: '',\n  defaultNoBorder: false\n})\nconst emits = defineEmits([\"update:value\",\"change\"])\n\nconst attrs = useAttrs();\nconst inRef = ref();\nconst noFocus = ref(true);\n\nasync function handleClickText(){\n  noFocus.value = false;\n  await nextTick();\n  inRef.value.focus();\n}\n\nfunction handleInput(value: string) {\n  emits(\"update:value\", value);\n}\n\nfunction handleChange(value: string) {\n  emits(\"change\", value);\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsInputNumber.vue",
    "content": "<template>\n  <n-input-number ref=\"inRef\" v-model:value=\"esNumber\" :step=\"step\" :min=\"min\" :max=\"max\" v-bind=\"attrs\"\n    @update:value=\"handlerChange\" @mousedown.stop=\"onMouseDown\">\n    <template #prefix v-if=\"label\">\n      <n-text>\n        &nbsp;{{ label }} :\n      </n-text>\n    </template>\n\n    <template #suffix v-if=\"unit !== null\">\n      <n-text type=\"success\">\n        {{ unit }}\n      </n-text>\n    </template>\n  </n-input-number>\n</template>\n\n<script lang=\"ts\" setup>\nimport {ref, useAttrs, onMounted, watch,computed} from \"vue\";\nimport {NInputNumber} from 'naive-ui';\nimport {Utils} from \"@astral3d/engine\";\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\n\nconst globalConfigStore = useGlobalConfigStore();\nconst primaryColor = computed(() => (globalConfigStore.mainColor as IConfig.Color).hex);\n\nconst attrs = useAttrs();\nlet props = withDefaults(defineProps<{\n  value: number,\n  label?: string | null,\n  unit?: string | null,\n  min?: number,\n  max?: number,\n  step?:number,\n  //保留小数位\n  decimal?: number\n}>(), {\n  value: 0,\n  min: -Infinity,\n  max: Infinity,\n  decimal: 0\n})\nconst emits = defineEmits([\"update:value\", \"change\"])\n\nconst inRef = ref();\nconst step = ref(props.step);\nconst esNumber = ref(0);\n\nfunction handlerChange(value: number) {\n  if (value === null) {\n    esNumber.value = props.value;\n    return;\n  }\n  value = parseFloat(value.toFixed(props.decimal));\n\n  emits(\"update:value\", value);\n  emits(\"change\", value)\n}\n\nonMounted(() => {\n  esNumber.value = props.value;\n\n  if (props.decimal !== 0 && Utils.isNil(step.value)) {\n    step.value = Number(`${Number(0).toFixed(props.decimal - 1)}1`);\n  }\n})\n\nwatch(() => props.value, (newVal) => {\n  esNumber.value = newVal;\n})\n\nlet distance = 0;\nlet onMouseDownValue = 0;\nconst pointer = {x: 0, y: 0};\nconst prevPointer = {x: 0, y: 0};\n\nfunction onMouseDown(event) {\n  event.preventDefault();\n\n  if(!Number.isFinite(esNumber.value) || esNumber.value === undefined || esNumber.value === null) return;\n\n  distance = 0;\n  onMouseDownValue = esNumber.value;\n  prevPointer.x = event.clientX;\n  prevPointer.y = event.clientY;\n\n  document.addEventListener('mousemove', onMouseMove);\n  document.addEventListener('mouseup', onMouseUp);\n}\n\nfunction onMouseMove(event) {\n  event.stopPropagation();\n\n  pointer.x = event.clientX;\n  pointer.y = event.clientY;\n\n  distance += (pointer.x - prevPointer.x) - (pointer.y - prevPointer.y);\n\n  let value = onMouseDownValue + (distance / (event.shiftKey ? 5 : 50)) * (step.value || 1);\n  value = Math.min(props.max, Math.max(props.min, value));\n\n  if (onMouseDownValue !== value && value !== null) {\n    value = parseFloat(value.toFixed(props.decimal));\n\n    esNumber.value = value;\n    handlerChange(value);\n  }\n\n  prevPointer.x = pointer.x;\n  prevPointer.y = pointer.y;\n}\n\nfunction onMouseUp(event) {\n  event.stopPropagation();\n\n  document.removeEventListener('mousemove', onMouseMove);\n  document.removeEventListener('mouseup', onMouseUp);\n}\n</script>\n\n<style lang=\"less\" scoped>\n.n-input-number {\n  :deep(.n-input) {\n    cursor: ns-resize;\n    background-color: transparent;\n    border-radius: 0;\n\n    .n-input-wrapper {\n      padding: 0;\n      text-align: center;\n    }\n\n    .n-input__suffix{\n      margin-left: 1px;\n    }\n\n    .n-input__border{\n      display: none;\n    }\n    .n-input__state-border{\n      border-top: none;\n      border-right: none;\n      border-left: none;\n      border-bottom-style: dashed;\n    }\n  }\n\n  :deep(.n-input__input-el){\n    color: v-bind(primaryColor) !important;\n    cursor: ns-resize;\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/components/es/EsKeyFrame.vue",
    "content": "<script setup lang=\"ts\">\nimport {ConditionPoint} from '@vicons/carbon';\nimport {t} from \"@/language\";\nimport {useAnimationStore} from \"@/store/modules/animation\";\n\nwithDefaults(defineProps<{\n  label: string,\n  attr: string\n}>(), {\n  label: \"\",\n  attr: \"\"\n})\n\nconst {addKeyframe} = useAnimationStore();\n</script>\n\n<template>\n  <span class=\"flex items-center\">\n    <n-tooltip trigger=\"hover\">\n      <template #trigger>\n        <n-button text @click=\"addKeyframe(attr)\">\n          <template #icon>\n            <n-icon size=\"12\">\n              <ConditionPoint/>\n            </n-icon>\n          </template>\n        </n-button>\n      </template>\n      {{ t(\"extra.Add keyframe\") }}\n    </n-tooltip>\n    <label>{{ label }}</label>\n  </span>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsParticleEasing.vue",
    "content": "<template>\n  <n-select size=\"small\" v-bind=\"attrs\" v-model:value=\"selected\" @update:value=\"update\" :options=\"options\"/>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref,useAttrs} from \"vue\";\nimport {t} from \"@/language\";\n\nconst props =withDefaults(defineProps<{\n  value: string\n}>(), {\n  value: ''\n})\nconst emits = defineEmits([\"update:value\"])\n\nconst attrs = useAttrs();\nconst selected = ref(props.value);\nconst options = [\n  { label: t('layout.sider.particle.Ease linear'), value: 'easeLinear' },\n  { label: t('layout.sider.particle.Ease in quad'), value: 'easeInQuad' },\n  { label: t('layout.sider.particle.Ease out quad'), value: 'easeOutQuad' },\n  { label: t('layout.sider.particle.Ease in out quad'), value: 'easeInOutQuad' },\n  { label: t('layout.sider.particle.Ease in cubic'), value: 'easeInCubic' },\n  { label: t('layout.sider.particle.Ease out cubic'), value: 'easeOutCubic' },\n  { label: t('layout.sider.particle.Ease in out cubic'), value: 'easeInOutCubic' },\n  { label: t('layout.sider.particle.Ease in quart'), value: 'easeInQuart' },\n  { label: t('layout.sider.particle.Ease out quart'), value: 'easeOutQuart' },\n  { label: t('layout.sider.particle.Ease in out quart'), value: 'easeInOutQuart' },\n  { label: t('layout.sider.particle.Ease in sine'), value: 'easeInSine' },\n  { label: t('layout.sider.particle.Ease out sine'), value: 'easeOutSine' },\n  { label: t('layout.sider.particle.Ease in out sine'), value: 'easeInOutSine' },\n  { label: t('layout.sider.particle.Ease in expo'), value: 'easeInExpo' },\n  { label: t('layout.sider.particle.Ease out expo'), value: 'easeOutExpo' },\n  { label: t('layout.sider.particle.Ease in out expo'), value: 'easeInOutExpo' },\n  { label: t('layout.sider.particle.Ease in circ'), value: 'easeInCirc' },\n  { label: t('layout.sider.particle.Ease out circ'), value: 'easeOutCirc' },\n  { label: t('layout.sider.particle.Ease in out circ'), value: 'easeInOutCirc' },\n  { label: t('layout.sider.particle.Ease in back'), value: 'easeInBack' },\n  { label: t('layout.sider.particle.Ease out back'), value: 'easeOutBack' },\n  { label: t('layout.sider.particle.Ease in out back'), value: 'easeInOutBack' }\n];\n\nfunction update(value: string) {\n  emits(\"update:value\", value);\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsPlugin.vue",
    "content": "<script setup lang=\"ts\">\nimport {ref, computed, onMounted} from 'vue';\nimport {useThemeVars} from 'naive-ui'\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\nimport {App} from \"@astral3d/engine\";\nimport Logo from \"@/components/header/Logo.vue\";\nimport EsPluginDialog from \"@/components/es/plugin/EsPluginDialog.vue\";\n\nconst globalConfigStore = useGlobalConfigStore();\nconst primaryColor = computed(() => (globalConfigStore.mainColor as IConfig.Color).hex);\n\nconst themeVars = useThemeVars();\nconst baseColor = computed(() => themeVars.value.baseColor);\n\nconst toolsDialogVisible = ref(false);\nconst pluginRef = ref();\nconst x = ref(315);\nconst y = ref(document.body.clientHeight - 80);\nconst cursor = ref(\"pointer\");\n\n// 是否正在拖动的标志\nconst isDragging = ref(false);\n\nfunction startDrag(downEvent: MouseEvent) {\n  const clientHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 25;\n  const clientWidth = (document.documentElement.clientWidth || document.body.clientWidth) - 25;\n\n  const lastClientX = downEvent.clientX;\n  const lastClientY = downEvent.clientY;\n  const dragging = (moveEvent: MouseEvent) => {\n    if (Math.abs(lastClientX - moveEvent.clientX) > 1 || Math.abs(lastClientY - moveEvent.clientY) > 1) {\n      isDragging.value = true;\n      cursor.value = \"grab\";\n\n      let boxLeft = moveEvent.clientX;\n      let boxTop = moveEvent.clientY;\n\n      if (boxLeft < 25) {\n        boxLeft = 25;\n      } else if (boxLeft > clientWidth) {\n        boxLeft = clientWidth;\n      }\n\n      if (boxTop < 25) {\n        boxTop = 25;\n      } else if (boxTop > clientHeight) {\n        boxTop = clientHeight;\n      }\n\n      x.value = boxLeft - 25;\n      y.value = boxTop - 25;\n    }\n  }\n\n  const stopDrag = () => {\n    if (!isDragging.value) {\n      handleClick()\n    }\n\n    App.storage.setOtherItem(\"es-plugins-position\", {\n      x: x.value,\n      y: y.value\n    })\n\n    isDragging.value = false;\n    cursor.value = \"pointer\";\n\n    document.removeEventListener('pointermove', dragging);\n    document.removeEventListener('pointerup', stopDrag);\n  }\n\n  // 添加鼠标移动和释放时的事件监听器\n  document.addEventListener('pointermove', dragging);\n  document.addEventListener('pointerup', stopDrag);\n}\n\nfunction handleClick() {\n  toolsDialogVisible.value = !toolsDialogVisible.value;\n}\n\nonMounted(async () => {\n  const xy = await App.storage.getOtherItem(\"es-plugins-position\") as {x:number,y:number};\n  if (xy) {\n    x.value = xy.x > document.body.clientWidth ? 315 : xy.x;\n    y.value = xy.y > document.body.clientHeight ? document.body.clientHeight - 120 : xy.y;\n  }\n})\n</script>\n\n<template>\n  <div ref=\"pluginRef\" class=\"es-tools w-40px h-40px fixed z-9000 flex justify-center items-center\"\n       :style=\"{ left: `${x}px`, top: `${y}px`,cursor:`${cursor}` }\"\n       @pointerdown=\"startDrag\">\n    <Logo class=\"w-26px h-26px\"/>\n  </div>\n\n  <EsPluginDialog v-model:visible=\"toolsDialogVisible\"/>\n</template>\n\n<style scoped lang=\"less\">\n.es-tools {\n  border: 4px solid transparent;\n  border-radius: 50%;\n  background-clip: padding-box, border-box;\n  background-origin: padding-box, border-box;\n  background-image: linear-gradient(to right, v-bind(baseColor), v-bind(baseColor)), linear-gradient(120deg, v-bind(primaryColor), #578AEF);\n  transition: background-image .5s;\n\n  & > svg {\n    transition: transform .5s;\n  }\n\n  &:hover {\n    transform: rotate(45deg);\n\n    & > svg {\n      transform: rotate(45deg) scale(1.1);\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsPopTreeSelect.vue",
    "content": "<script setup lang=\"ts\">\nimport {ref, onMounted, nextTick} from 'vue';\nimport type {TreeOption} from 'naive-ui';\nimport {CaretRight, CaretDown} from '@vicons/carbon';\nimport {findTreeNode, markLeafNodes} from \"@/utils/common/utils\";\n\nconst props = withDefaults(defineProps<{\n  trigger?: 'hover' | 'click' | 'focus' | 'manual',\n  options: TreeOption[],\n  value: string | number\n}>(), {\n  trigger: \"hover\",\n  options: () => [],\n  value: \"\"\n})\n\nconst emits = defineEmits(['update:value', \"select\", \"show\",\"click\"]);\n\nconst selectKey = ref(props.value);\nconst selectOption = ref<TreeOption | null>(null);\nconst treeShow = ref(false);\nconst treeNodeProps = ({ option }: { option: TreeOption }) => {\n  return {\n    onClick() {\n      emits(\"click\", option);\n    }\n  }\n}\n\nonMounted(async () => {\n  await nextTick();\n\n  markLeafNodes(props.options);\n\n  selectOption.value = findTreeNode(props.options, selectKey.value);\n})\n\nfunction handleTreeShowChange(show: boolean) {\n  treeShow.value = show;\n\n  emits(\"show\", show);\n}\n\nfunction handleTreeSelect(keys: Array<string | number>) {\n  emits(\"update:value\", keys[0]);\n\n  selectKey.value = keys[0];\n  selectOption.value = findTreeNode(props.options, selectKey.value);\n\n  emits(\"select\", selectOption.value, props.options);\n}\n</script>\n\n<template>\n  <n-button v-bind=\"$attrs\" @click=\"emits('click',selectOption)\">\n    <template #icon>\n      <n-popover placement=\"bottom\" :trigger=\"trigger\" @update:show=\"handleTreeShowChange\">\n        <template #trigger>\n          <n-icon>\n            <CaretRight v-if=\"!treeShow\"/>\n            <CaretDown v-else/>\n          </n-icon>\n        </template>\n\n        <n-tree :data=\"options\" block-line @update:selected-keys=\"handleTreeSelect\"\n                default-expand-all :default-selected-keys=\"[value]\" :cancelable=\"false\"\n                :indent=\"18\" :node-props=\"treeNodeProps\"/>\n      </n-popover>\n\n    </template>\n\n    {{ selectOption?.label || \"\" }}\n  </n-button>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsTexture.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, onMounted, watch,nextTick} from \"vue\";\nimport type {UploadFileInfo} from 'naive-ui';\nimport * as THREE from 'three';\nimport { TGALoader } from 'three/examples/jsm/loaders/TGALoader.js';\nimport { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js';\nimport { Loader } from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  texture: THREE.Color | THREE.Texture | THREE.CubeTexture | null,\n  mapping?: THREE.Mapping,\n  width?: string,\n  height?: string,\n  disabled?: boolean\n}>(),{\n  texture: null,\n  mapping:THREE.Texture.DEFAULT_MAPPING,\n  width: \"2rem\",\n  height: \"2rem\",\n  disabled:false\n})\n\nconst emits = defineEmits([\"update:texture\", \"change\"]);\n\nwatch(() => props.texture, () => {\n  if(!props.texture) return;\n\n  setValue(props.texture)\n})\n\nconst cache = new Map();\n\nconst file = ref<UploadFileInfo[]>([]);\nconst uploadRef = ref();\nconst canvasRef = ref();\n\nonMounted(async () => {\n  await nextTick();\n\n  if(props.texture){\n    setValue(props.texture)\n  }\n\n  canvasRef.value.addEventListener('drop', function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n    loadFile(event.dataTransfer.files[0]);\n  });\n})\n\nfunction updateFileList(fList: UploadFileInfo[]) {\n  //永远取最新值\n  file.value = [fList[fList.length - 1]];\n\n  file.value[0].file !== null && loadFile(file.value[0].file as File);\n}\n\nfunction canvasClick() {\n  if(props.disabled) return;\n\n  //uploadRef.value.clear();\n  uploadRef.value.openOpenFileDialog();\n}\n\nfunction setValue(newTexture) {\n  const context = canvasRef.value.getContext('2d');\n\n  // 如果画布不可见，则上下文似乎可以为空\n  if (context) {\n    // 始终在设置新纹理之前清除上下文，因为新纹理可能具有透明度\n    context.clearRect(0, 0, canvasRef.value.width, canvasRef.value.height);\n  }\n\n  if (newTexture !== null) {\n    const image = newTexture.image;\n    if (image && image.width > 0) {\n      const scale = canvasRef.value.width / image.width;\n\n      if ( newTexture.isDataTexture || newTexture.isCompressedTexture ) {\n        const canvas2 = renderToCanvas(newTexture);\n        context.drawImage( canvas2, 0, 0, image.width * scale, image.height * scale );\n      } else {\n        context.drawImage( image, 0, 0, image.width * scale, image.height * scale );\n      }\n    } else {\n      canvasRef.value.title = newTexture.sourceFile + ' (error)';\n    }\n\n    if (file.value.length === 0) {\n      file.value = [newTexture];\n    }\n\n    emits(\"update:texture\", newTexture);\n  } else {\n    canvasRef.value.title = 'empty';\n    uploadRef.value.clear();\n    file.value = [];\n  }\n}\n\nfunction loadFile(file) {\n  //文件后缀\n  const extension = file.name.split('.').pop().toLowerCase();\n  const reader = new FileReader();\n\n  const hash = `${file.lastModified}_${file.size}_${file.name}`;\n\n  if (cache.has(hash)) {\n    const texture = cache.get(hash);\n\n    setValue(texture);\n    emits(\"change\", texture);\n  } else if (extension === 'hdr' || extension === 'pic') {\n    reader.addEventListener('load', function (event) {\n      // 假设RGBE/Radiance HDR图像格式\n      const loader = new RGBELoader();\n      loader.load(event.target?.result as string, function (hdrTexture) {\n        // @ts-ignore\n        hdrTexture.sourceFile = file.name;\n\n        cache.set(hash, hdrTexture);\n\n        setValue(hdrTexture);\n        emits(\"change\", hdrTexture);\n      });\n    });\n\n    reader.readAsDataURL(file);\n  } else if (extension === 'tga') {\n    reader.addEventListener('load', function (event) {\n      const loader = new TGALoader();\n      loader.load(event.target?.result as string, ( texture ) => {\n        texture.colorSpace = THREE.SRGBColorSpace;\n        // @ts-ignore\n        texture.sourceFile = file.name;\n\n        cache.set(hash, texture);\n\n        setValue(texture);\n        emits(\"change\", texture);\n      });\n    }, false);\n\n    reader.readAsArrayBuffer(file);\n  } else if (extension === 'ktx2') {\n    reader.addEventListener( 'load', function ( event ) {\n      const arrayBuffer = event.target?.result as ArrayBuffer;\n      const blobURL = URL.createObjectURL( new Blob([arrayBuffer]) );\n      const ktx2Loader =  Loader.ktx2Loader;\n\n      ktx2Loader.load(blobURL, function ( texture ) {\n        texture.colorSpace = THREE.SRGBColorSpace;\n        // @ts-ignore\n        texture.sourceFile = file.name;\n        texture.needsUpdate = true;\n\n        cache.set(hash, texture);\n\n        setValue( texture );\n        emits(\"change\", texture);\n        ktx2Loader.dispose();\n      });\n    });\n\n    reader.readAsArrayBuffer(file);\n  }else if (file.type.match('image.*')) {\n    reader.addEventListener('load', function (event) {\n      const image = document.createElement('img');\n      image.addEventListener('load', function () {\n        const texture = new THREE.Texture(this, props.mapping);\n        // @ts-ignore\n        texture.sourceFile = file.name;\n        texture.needsUpdate = true;\n\n        cache.set(hash, texture);\n\n        setValue(texture);\n        emits(\"change\", texture);\n      }, false);\n\n      image.src = event.target?.result as string;\n    }, false);\n    reader.readAsDataURL(file);\n  }else if(extension === 'exr'){\n    reader.addEventListener( 'load', ( event ) => {\n      const arrayBuffer = event.target?.result as ArrayBuffer;\n      const blobURL = URL.createObjectURL(new Blob([arrayBuffer]));\n\n      Loader.exrLoader.load(blobURL, (texture) => {\n        texture.colorSpace = THREE.SRGBColorSpace;\n        // @ts-ignore\n        texture.sourceFile = file.name;\n\n        cache.set(hash, texture);\n\n        setValue(texture);\n        emits(\"change\", texture);\n      });\n    });\n\n    reader.readAsArrayBuffer(file);\n\n  }\n}\n\nfunction setColorSpace(colorSpace: string) {\n  if (props.texture && !(props.texture instanceof THREE.Color)) {\n    props.texture.colorSpace = colorSpace;\n  }\n}\n\nlet renderer;\n\nfunction renderToCanvas(texture) {\n  if (renderer === undefined) {\n    renderer = new THREE.WebGLRenderer();\n  }\n\n  const image = texture.image;\n  renderer.setSize(image.width, image.height, false);\n  const scene = new THREE.Scene();\n  const camera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1);\n  const material = new THREE.MeshBasicMaterial({map: texture});\n  const quad = new THREE.PlaneGeometry(2, 2);\n  const mesh = new THREE.Mesh(quad, material);\n  scene.add(mesh);\n  renderer.render(scene, camera);\n  return renderer.domElement;\n}\n\ndefineExpose({\n  setColorSpace, setValue\n})\n</script>\n\n<template>\n  <div class=\"es-texture\">\n    <n-upload list-type=\"image-card\" ref=\"uploadRef\" v-show=\"file.length === 0\" @update:file-list=\"updateFileList\" :disabled=\"disabled\" />\n    <canvas class=\"es-texture-canvas\" ref=\"canvasRef\" v-show=\"file.length === 1\" @click=\"canvasClick()\" title=\"Texture\"></canvas>\n  </div>\n</template>\n\n<style lang=\"less\" scoped>\n:deep(.n-upload) {\n  .n-upload-trigger.n-upload-trigger--image-card,\n  .n-upload-file--image-card-type {\n    width: v-bind(width);\n    height: v-bind(height);\n  }\n}\n\n.es-texture {\n  width: v-bind(width);\n  height: v-bind(height);\n\n  &-canvas {\n    width: v-bind(width);\n    height: v-bind(height);\n    cursor: pointer;\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/EsTip.vue",
    "content": "<script setup lang=\"ts\">\nimport {AlertCircleOutline} from '@vicons/ionicons5';\n\nwithDefaults(defineProps<{\n  size?: string,\n  content?: string,\n  trigger?: 'click' | 'hover' | 'focus' | 'manual',\n  placement?: 'top-start' | 'top' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end'\n}>(), {\n  size: '18',\n  content: '',\n  trigger: \"hover\",\n  placement: 'top'\n})\n</script>\n\n<template>\n    <span class=\"flex items-center justify-center cursor-pointer\">\n        <span v-if=\"content\" class=\"mr-2px\">{{ content }}</span>\n        <n-tooltip :trigger=\"trigger\" :placement=\"placement\">\n            <template #trigger>\n                <n-icon :size=\"size\">\n                    <AlertCircleOutline/>\n                </n-icon>\n            </template>\n            <slot></slot>\n        </n-tooltip>\n    </span>\n</template>"
  },
  {
    "path": "packages/editor/src/components/es/plugin/EsPluginDialog.vue",
    "content": "<script setup lang=\"ts\">\nimport {ref} from \"vue\";\nimport {t} from \"@/language\";\nimport Logo from \"@/components/header/Logo.vue\";\nimport EsPluginList from \"@/components/es/plugin/EsPluginList.vue\";\n\nwithDefaults(defineProps<{\n  visible:boolean\n}>(),{\n  visible:false\n})\n\nconst emits = defineEmits([\"update:visible\"]);\n\nconst searchText = ref(\"\");\n\nfunction handleClose(){\n  emits(\"update:visible\",false);\n}\n</script>\n\n<template>\n  <n-modal :show=\"visible\" @maskClick=\"handleClose\" @esc=\"handleClose\">\n    <n-card class=\"es-tools-dialog fixed top-20vh w-90% max-w-800px\" :bordered=\"false\" role=\"dialog\" aria-modal=\"true\">\n      <template #header>\n        <n-input v-model:value=\"searchText\" type=\"text\" size=\"large\" autofocus clearable class=\"font-500\"\n          placeholder=\"Hi, Astral3D Editor\">\n          <template #prefix>\n            <Logo class=\"w-30px h-30px\" />\n          </template>\n        </n-input>\n      </template>\n\n      <n-text depth=\"3\" class=\"relative bottom-10px left-5px\"> {{ t(\"plugin['Optional plug-in']\") }} </n-text>\n\n      <EsPluginList @close=\"handleClose\" :search=\"searchText\" />\n    </n-card>\n  </n-modal>\n</template>\n\n<style lang=\"less\">\n@media screen and (max-width: 800px) {\n  .es-tools-dialog{\n    left:5%;\n  }\n}\n@media screen and (min-width: 800px) {\n  .es-tools-dialog{\n    left:calc(50% - 400px);\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/plugin/EsPluginList.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed} from \"vue\";\nimport {usePluginStore} from \"@/store/modules/plugin\";\nimport Logo from \"@/components/header/Logo.vue\";\n\nconst props = withDefaults(defineProps<{\n  search:string\n}>(),{\n  search:\"\"\n})\n\nconst emits = defineEmits(['close']);\n\nconst pluginStore = usePluginStore();\nconst list = computed(() => pluginStore.getPluginsList().value.filter(l => l.name.toLowerCase().indexOf(props.search.toLowerCase()) !== -1))\n\nfunction handleRunPlugin(plugin:IPlugin.Item){\n  emits(\"close\");\n\n  window.viewer.modules.plugin.run(plugin.name);\n}\n\n</script>\n\n<template>\n  <div class=\"grid grid-cols-5 gap-4\">\n    <n-card hoverable :bordered=\"false\" v-for=\"plugin in list\" :key=\"plugin.name\" size=\"small\"\n            @click.stop=\"handleRunPlugin(plugin)\"\n            content-class=\"flex flex-col justify-center items-center cursor-pointer\">\n      <n-image v-if=\"plugin.icon\" :src=\"plugin.icon\" object-fit=\"cover\" width=\"60\"\n               preview-disabled />\n      <Logo v-else class=\"w-60px\" />\n      <span class=\"mt-8px text-center\">{{ plugin.name }}</span>\n    </n-card>\n  </div>\n\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/plugin/builtin/EarthGenerator.vue",
    "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/plugin/builtin/GLTFHandler.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, ref,watchEffect,nextTick} from \"vue\";\nimport { useThemeVars } from 'naive-ui';\nimport {Upload, Delete, Link} from '@vicons/carbon';\nimport {Loader} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport GLTFHandlerForm from \"./glTFHandler/GLTFHandlerForm.vue\";\n\nconst props = defineProps({\n  onOptimize: {\n    type: Function,\n    required: true\n  },\n  onFinish: {\n    type: Function,\n    required: true\n  }\n});\n// 优化结果文件\nlet outputFiles:File[] = [];\n\nconst themeVars = useThemeVars();\nconst borderColor = computed(() => themeVars.value.borderColor);\nconst primaryColor = computed(() => themeVars.value.primaryColor);\nconst hoverColor = computed(() => themeVars.value.hoverColor);\nconst textColor3 = computed(() => themeVars.value.textColor3);\n\nconst formRef = ref();\nconst loading = ref(false);\nconst loadingText = ref<string>(t(\"plugin.gltfHandler['The model is being optimized...']\"));\nconst uploadInputRef = ref();\nconst fileList = ref<File[]>([]);\nconst optimizeDone = ref(false);\n\nconst logInstRef = ref();\nconst log = ref(\"\");\n\nwatchEffect(() => {\n  if (log.value) {\n    nextTick(() => {\n      logInstRef.value?.scrollTo({ position: 'bottom', silent: true })\n    })\n  }\n})\n\nfunction setLoading(boolean:boolean){\n  loading.value = boolean;\n}\n\nfunction addLog(_log:string){\n  log.value += `${_log}\\n`;\n\n  loadingText.value = _log;\n}\n\n// 拖拽文件进入\nfunction handleFilesDrop(event:DragEvent){\n  if (fileList.value.length > 10) {\n    window.$message?.warning(t(\"plugin.gltfHandler['You can upload a maximum of 10 files']\"));\n    return;\n  }\n\n  const originFiles = event.dataTransfer?.files;\n\n  if(!originFiles || !originFiles.length) return;\n\n  const files:File[] = [];\n  for (let i = 0; i < originFiles.length; i++) {\n    const s = originFiles[i].name.split(\".\");\n    if([\"glb\",\"gltf\"].includes(s[s.length - 1].toLowerCase())){\n      files.push(originFiles[i]);\n    }\n  }\n\n  // 处理拖拽进来的文件\n  for (let i = 0; i < files.length; i++) {\n    if (!fileList.value.find(item => item.lastModified === files[i].lastModified && item.name === files[i].name)) {\n      if (fileList.value.length >= 10) {\n        fileList.value.length = 10;\n        break;\n      }\n\n      fileList.value.push(files[i]);\n    }\n  }\n}\n\nfunction handleUploadChange(event){\n  const files = event.target.files;\n\n  if (files) {\n    for (let i = 0; i < files.length; i++) {\n      if (!fileList.value.find(item => item.lastModified === files[i].lastModified && item.name === files[i].name)) {\n        if (fileList.value.length >= 10) {\n          fileList.value.length = 10;\n          break;\n        }\n\n        fileList.value.push(files[i]);\n      }\n    }\n  }\n\n  // TODO:暂时只支持单文件处理\n  // const file = event.target.files[0];\n  // if(file){\n  //   fileList.value = [file];\n  // }\n}\n\nfunction handleSelectFile() {\n  if(optimizeDone.value){\n    window.$dialog.warning({\n      title: window.$t('other.warning'),\n      content: window.$t(\"plugin.gltfHandler['Re-selecting the file will clear the previous optimization result. Do you want to continue?']\"),\n      positiveText: window.$t('other.Ok'),\n      negativeText: window.$t('other.Cancel'),\n      onPositiveClick: async () => {\n        outputFiles = [];\n        optimizeDone.value = false;\n        log.value = \"\";\n\n        uploadInputRef.value.click();\n      },\n    });\n  }else{\n    if (fileList.value.length > 10) {\n      window.$message?.warning(t(\"plugin.gltfHandler['You can upload a maximum of 10 files']\"));\n      return;\n    }\n\n    uploadInputRef.value.click();\n  }\n}\n\nfunction handleDeleteFile(file:File) {\n  if(optimizeDone.value){\n    window.$dialog.warning({\n      title: window.$t('other.warning'),\n      content: window.$t(\"plugin.gltfHandler['This operation will clear the relevant optimization results. Do you want to continue?']\"),\n      positiveText: window.$t('other.Ok'),\n      negativeText: window.$t('other.Cancel'),\n      onPositiveClick: async () => {\n        fileList.value = fileList.value.filter(item => !(item.lastModified === file.lastModified && item.name === file.name));\n        outputFiles = outputFiles.filter(item => !(item.name.replace(\"_astral3d.optimize\",\"\") === file.name));\n\n        if(!fileList.value.length){\n          optimizeDone.value = false;\n          log.value = \"\";\n        }\n      },\n    });\n  }else{\n    fileList.value = fileList.value.filter(item => !(item.lastModified === file.lastModified && item.name === file.name));\n  }\n}\n\n// 提交优化\nfunction handleSubmit(){\n  if(fileList.value.length === 0) return;\n\n  setLoading(true);\n\n  handleOptimize(formRef.value.model)\n}\n\n// 处理优化\nasync function handleOptimize(model:IPlugin.GLTFHandlerOptimizeModel) {\n  for(let file of fileList.value){\n    outputFiles.push(await props.onOptimize(model, file))\n  }\n\n  optimizeDone.value = true;\n  setLoading(false);\n}\n\n// 下载优化结果\nfunction handleDownload(){\n  if(outputFiles.length === 0) return;\n\n  outputFiles.forEach(outputFile => {\n    const url = URL.createObjectURL(outputFile);\n    const a = window.document.createElement('a');\n    a.href = url;\n    a.download = outputFile.name;\n    window.document.body.appendChild(a);\n    a.click();\n    window.document.body.removeChild(a);\n    URL.revokeObjectURL(url);\n  })\n}\n\n// 优化结果导入场景\nfunction handleImportScene(){\n  if(outputFiles.length === 0) return;\n\n  Loader.loadFiles(outputFiles, undefined).then(() => {\n    window.$message?.success(t(\"plugin.gltfHandler['Import success!']\"));\n    // outputFiles = [];\n    // optimizeDone.value = false;\n  });\n\n  // 关闭插件弹窗\n  // props.onFinish();\n  // log.value = \"\";\n}\n\ndefineExpose({\n  setLoading,\n  addLog\n})\n</script>\n\n<template>\n  <n-spin :show=\"loading\" >\n    <template #description>\n      {{ loadingText }}\n    </template>\n\n    <div class=\"optimize-upload h-150px grid gap-2\"\n         :style=\"{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}\">\n      <div class=\"optimize-upload-card\" v-if=\"fileList.length === 0\" @click=\"handleSelectFile\" @dragover.stop.prevent @drop.stop.prevent=\"handleFilesDrop\">\n        <input v-show=\"false\" type=\"file\" ref=\"uploadInputRef\" multiple=\"multiple\" accept=\".glb,.gltf\" @change=\"handleUploadChange\"  />\n\n        <n-icon size=\"48\" :depth=\"3\" class=\"mb-12px\">\n          <Upload/>\n        </n-icon>\n        <n-text class=\"mb-6px text-16px\"> {{ t(\"plugin.gltfHandler['Select the.glb/.gltf file']\") }} </n-text>\n        <n-text depth=\"3\"> {{ t(\"plugin.gltfHandler['Batch processing is supported (up to 10)']\") }} </n-text>\n      </div>\n\n      <template v-else>\n        <div class=\"optimize-upload-list\">\n          <div v-for=\"(file,index) in fileList\" :key=\"index\" class=\"optimize-upload-list-item\">\n            <n-icon size=\"16\">\n              <Link/>\n            </n-icon>\n            <span class=\"optimize-upload-list-item-name\" :title=\"file.name\">{{ file.name }}</span>\n            <n-icon size=\"16\" class=\"optimize-upload-list-item-del\" @click.stop=\"handleDeleteFile(file)\">\n              <Delete/>\n            </n-icon>\n          </div>\n        </div>\n\n        <n-log ref=\"logInstRef\" :log=\"log\" trim class=\"!h-150px\" />\n      </template>\n    </div>\n\n    <GLTFHandlerForm ref=\"formRef\" />\n\n    <div class=\"w-full flex justify-center mt-10px\">\n      <n-button v-if=\"!optimizeDone\" type=\"primary\" @click=\"handleSubmit\">\n        {{ t(\"plugin.gltfHandler.Optimize\") }}\n      </n-button>\n\n      <template v-else>\n        <n-button type=\"primary\" @click=\"handleDownload\">\n          {{ t(\"plugin.gltfHandler.Download\") }}\n        </n-button>\n        <n-button type=\"primary\" @click=\"handleImportScene\" class=\"ml-4\">\n          {{ t(\"plugin.gltfHandler.Import scene\") }}\n        </n-button>\n      </template>\n    </div>\n  </n-spin>\n</template>\n\n<style scoped lang=\"less\">\n.optimize-upload {\n  &-card {\n    position: relative;\n    text-align: center;\n    width: 100%;\n    height: 100%;\n    background: rgba(0, 0, 0, 0.02);\n    border: 1px dashed v-bind(borderColor);\n    border-radius: 8px;\n    cursor: pointer;\n    outline: 0;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    transition: border-color 0.3s, width 0.3s;\n\n    &:hover {\n      border-color: v-bind(primaryColor);\n    }\n  }\n\n  &-list {\n    width: 100%;\n    height: 100%;\n    overflow-y: auto;\n    transition: opacity 0.3s, height 0.3s;\n\n    &::before {\n      display: table;\n      width: 0;\n      height: 0;\n      content: \"\";\n    }\n\n    &-item {\n      color: v-bind(primaryColor);\n      position: relative;\n      height: 22px;\n      margin-top: 8px;\n      font-size: 14px;\n      display: flex;\n      align-items: center;\n      transition: background-color .3s;\n      cursor: pointer;\n      padding: 0 8px;\n\n      &:hover {\n        background-color: v-bind(hoverColor);\n\n        .optimize-upload-list-item-del{\n          opacity: 1;\n        }\n      }\n\n      &-name {\n        overflow: hidden;\n        white-space: nowrap;\n        text-overflow: ellipsis;\n        padding: 0 6px;\n        line-height: 1.57;\n        flex: auto;\n        max-width: 85%;\n        transition: all .3s;\n      }\n\n      &-del {\n        position: absolute;\n        right: 8px;\n        color: v-bind(textColor3);\n        cursor: pointer;\n        opacity: 0;\n        transition: all .3s;\n\n        &:hover {\n          transform: scale(1.2);\n        }\n\n        &:active {\n          transform: scale(0.9);\n        }\n      }\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/plugin/builtin/PointCloudReconstructor.vue",
    "content": "<script setup lang=\"ts\">\nimport { computed, ref, onMounted, nextTick, useTemplateRef, reactive } from \"vue\";\nimport { useThemeVars } from 'naive-ui';\nimport { Upload, Delete, Link } from '@vicons/carbon';\nimport * as THREE from 'three';\nimport { App,Loader, PointCloudReconstructor,AddObjectCommand } from \"@astral3d/engine\";\nimport { t } from \"@/language\";\nimport { createBasicScene } from \"@/utils/common/scenes\";\nimport ReconstructorForm from \"./pointCloudReconstructor/ReconstructorForm.vue\";\n\nconst themeVars = useThemeVars();\nconst borderColor = computed(() => themeVars.value.borderColor);\nconst primaryColor = computed(() => themeVars.value.primaryColor);\nconst hoverColor = computed(() => themeVars.value.hoverColor);\nconst textColor3 = computed(() => themeVars.value.textColor3);\n\nconst formRef = useTemplateRef(\"formRef\");\nconst viewerRef = useTemplateRef(\"viewerRef\");\nconst uploadInputRef = useTemplateRef(\"uploadInputRef\");\n\nconst loading = ref(false);\nconst loadingText = ref<string>(t(\"plugin.pointCloudReconstructor['The point cloud is being reconstructed...']\"));\n\nconst fileList = ref<File[]>([]);\nconst stats = reactive({\n    reconstructorDone: false,\n    percentage:0,\n    message:\"\",\n    // 下面是统计信息\n    totalPoints: \"0\",\n    reconstructedObjects: 0,\n    processingTime: \"0s\"\n})\n\nlet tmpScene, tmpDispose;\nlet reconstructor, startTime;\n// 点云模型对象，重建好的对象\nlet pointCloud,reconstructedGroup;\nonMounted(async () => {\n    await nextTick();\n\n    const p = createBasicScene(viewerRef.value as HTMLDivElement);\n    tmpScene = p.scene;\n    tmpDispose = p.dispose;\n})\n\n// 拖拽文件进入\nfunction handleFilesDrop(event: DragEvent) {\n    const originFiles = event.dataTransfer?.files;\n\n    if (!originFiles || !originFiles.length) return;\n\n    const files: File[] = [];\n    for (let i = 0; i < originFiles.length; i++) {\n        const s = originFiles[i].name.split(\".\");\n        if ([\"glb\", \"gltf\", \"ply\", \"pcd\"].includes(s[s.length - 1].toLowerCase())) {\n            files.push(originFiles[i]);\n        }\n    }\n\n    if (files.length > 0) {\n        // 暂时只支持单个模型处理\n        fileList.value = [files[0]];\n        handleFileLoad();\n    }\n}\n\n// 手动选择文件\nfunction handleSelectFile() {\n    if (stats.reconstructorDone) {\n        window.$dialog.warning({\n            title: window.$t('other.warning'),\n            content: window.$t(\"plugin.pointCloudReconstructor['Re-selecting the file will empty the previous reconstruction. Do you want to continue?']\"),\n            positiveText: window.$t('other.Ok'),\n            negativeText: window.$t('other.Cancel'),\n            onPositiveClick: async () => {\n                fileList.value = [];\n\n                stats.reconstructorDone = false;\n\n                uploadInputRef.value?.click();\n            },\n        });\n    } else {\n        fileList.value = [];\n\n        uploadInputRef.value?.click();\n    }\n}\n\n// 文件变更\nfunction handleUploadChange(event) {\n    const files = event.target.files;\n\n    if (files) {\n        fileList.value = [files[0]];\n\n        handleFileLoad();\n    }\n}\n\n// 文件模型加载\nasync function handleFileLoad() {\n    clearScene();\n\n    const verifyExec = (object3D:THREE.Points) => {\n        pointCloud = object3D;\n\n        stats.totalPoints = object3D.geometry.attributes.position.count.toLocaleString();\n\n        tmpScene.add(pointCloud);\n    }\n\n    const object3D = await Loader.loadFile(fileList.value[0], new THREE.LoadingManager(), null, false) as THREE.Points;\n    if (object3D.type === \"Points\") {\n        verifyExec(object3D);\n    } else if (object3D.children.length === 1 && object3D.children[0].type === \"Points\") {\n        verifyExec(object3D.children[0] as THREE.Points);\n    } else {\n        window.$message?.error(t(\"plugin.pointCloudReconstructor['The model is not a point cloud']\"));\n\n        fileList.value = [];\n    }\n}\n\n// 删除已选择文件\nfunction handleDeleteFile() {\n    if (stats.reconstructorDone) {\n        window.$dialog.warning({\n            title: window.$t('other.warning'),\n            content: window.$t(\"plugin.pointCloudReconstructor['This operation will empty the associated reconstructions. Do you want to continue?']\"),\n            positiveText: window.$t('other.Ok'),\n            negativeText: window.$t('other.Cancel'),\n            onPositiveClick: async () => {\n                fileList.value = [];\n\n                stats.reconstructorDone = false;\n\n                clearScene();\n            },\n        });\n    } else {\n        fileList.value = [];\n\n        clearScene();\n    }\n}\n\n// 提交重建\nfunction handleSubmit() {\n    if (fileList.value.length === 0 || !pointCloud) return;\n\n    const model = formRef.value?.model;\n    if (!model) return;\n\n    loading.value = true;\n\n    // 防止二次重建\n    if(stats.reconstructorDone && reconstructedGroup){\n        // 移除原来的重建结果\n        tmpScene.remove(reconstructedGroup);\n        reconstructedGroup = null;\n\n        // 显示点云\n        pointCloud.visible = true;\n\n        stats.reconstructedObjects = 0;\n        stats.processingTime = \"0s\";\n    }\n\n    if (!reconstructor) {\n        reconstructor = new PointCloudReconstructor();\n    }\n\n    reconstructor.colorTolerance = model.colorTolerance;\n    reconstructor.distanceThreshold = model.distanceThreshold;\n    reconstructor.minClusterSize = model.minClusterSize;\n    reconstructor.downsampleResolution = model.downsampleResolution;\n\n    // 处理几何数据\n    reconstructor.processGeometry(pointCloud.geometry);\n\n    startTime = performance.now();\n\n    // 开始重建\n    reconstructor.reconstruct(\n        (progress, status) => {\n            stats.percentage = Math.round(progress);\n\n            stats.message = status;\n        },\n        (objectGroup, totalObjects) => {\n            reconstructedGroup = objectGroup;\n\n            tmpScene.add(reconstructedGroup);\n                            \n            // 更新统计\n            stats.reconstructedObjects = totalObjects;\n                            \n            // 计算处理时间\n            const endTime = performance.now();\n            const duration = ((endTime - startTime) / 1000).toFixed(1);\n            stats.processingTime = `${duration}s`;\n                            \n            // 隐藏点云\n            pointCloud.visible = false;\n\n            stats.reconstructorDone = true;\n            loading.value = false;\n                            \n            // 更新状态\n            stats.message = `重建完成: ${totalObjects}个对象 (${duration}秒)`;\n        }\n    )\n}\n\n// 重建结果导入场景\nfunction handleImportScene() {\n    if(!tmpScene || !reconstructedGroup) return;\n\n    App.execute(new AddObjectCommand(reconstructedGroup.clone()));\n}\n\n// 关闭插件\nfunction handleClose(){\n    clearScene();\n\n    tmpDispose && tmpDispose();\n\n    reconstructor && reconstructor.dispose();\n}\n\n// 清除场景在此添加的内容\nfunction clearScene(){\n    pointCloud && tmpScene.remove(pointCloud);\n    reconstructedGroup && tmpScene.remove(reconstructedGroup);\n}\n\ndefineExpose({\n    handleClose\n})\n</script>\n\n<template>\n    <n-spin :show=\"loading\">\n        <template #description>\n            {{ loadingText }}\n        </template>\n\n        <n-progress type=\"line\" :percentage=\"stats.percentage\" indicator-placement=\"inside\" :processing=\"loading\" class=\"mb-3\" />\n\n        <div class=\"reconstructor-upload grid gap-2\"\n            :style=\"{ gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))' }\">\n            <div class=\"reconstructor-upload-card !h-150px\" v-if=\"fileList.length === 0\" @click=\"handleSelectFile\"\n                @dragover.stop.prevent @drop.stop.prevent=\"handleFilesDrop\">\n                <input v-show=\"false\" type=\"file\" ref=\"uploadInputRef\" accept=\".glb,.gltf,.ply,.pcd\"\n                    @change=\"handleUploadChange\" />\n\n                <n-icon size=\"48\" :depth=\"3\" class=\"mb-12px\">\n                    <Upload />\n                </n-icon>\n                <n-text class=\"mb-6px text-16px\">\n                    {{ t(\"plugin.pointCloudReconstructor['Select the Point Cloud model file']\") + \":.glb,.gltf,.ply,.pcd\" }}\n                </n-text>\n                <n-text depth=\"3\">\n                    {{ t(\"plugin.pointCloudReconstructor['Please semantically segment the point cloud first']\") }}\n                </n-text>\n            </div>\n\n            <template v-else>\n                <div class=\"reconstructor-upload-list\">\n                    <div v-for=\"(file, index) in fileList\" :key=\"index\" class=\"reconstructor-upload-list-item\">\n                        <n-icon size=\"16\">\n                            <Link />\n                        </n-icon>\n                        <span class=\"reconstructor-upload-list-item-name\" :title=\"file.name\">{{ file.name }}</span>\n                        <n-icon size=\"16\" class=\"reconstructor-upload-list-item-del\" @click.stop=\"handleDeleteFile()\">\n                            <Delete />\n                        </n-icon>\n                    </div>\n                </div>\n            </template>\n        </div>\n\n        <div ref=\"viewerRef\" class=\"w-full h-400px mb-2 relative\">\n            <span class=\"absolute bottom-2 left-4\">{{ stats.message }}</span>\n        </div>\n\n        <n-grid :x-gap=\"50\" :cols=\"3\">\n            <n-gi>\n                <n-card size=\"small\" embedded hoverable content-class=\"flex flex-col justify-center items-center\">\n                    <div>总点数</div>\n                    <div class=\"stats-text text-1.2rem mt-2\">{{ stats.totalPoints }}</div>\n                </n-card>\n            </n-gi>\n\n            <n-gi>\n                <n-card size=\"small\" embedded hoverable content-class=\"flex flex-col justify-center items-center\">\n                    <div>重建对象</div>\n                    <div class=\"stats-text text-1.2rem mt-2\">{{ stats.reconstructedObjects }}</div>\n                </n-card>\n            </n-gi>\n\n            <n-gi>\n                <n-card size=\"small\" embedded hoverable content-class=\"flex flex-col justify-center items-center\">\n                    <div>处理时间</div>\n                    <div class=\"stats-text text-1.2rem mt-2\">{{ stats.processingTime }}</div>\n                </n-card>\n            </n-gi>\n        </n-grid>\n\n        <ReconstructorForm ref=\"formRef\" />\n\n        <div class=\"w-full flex justify-center mt-10px\">\n            <n-button  type=\"primary\" :loading=\"loading\" @click=\"handleSubmit\">\n                {{ t(\"plugin.pointCloudReconstructor.Reconstruction\") }}\n            </n-button>\n\n            <template v-if=\"stats.reconstructorDone\">\n                <n-button type=\"primary\" @click=\"handleImportScene\" class=\"ml-4\">\n                    {{ t(\"plugin.gltfHandler.Import scene\") }}\n                </n-button>\n            </template>\n        </div>\n    </n-spin>\n</template>\n\n<style scoped lang=\"less\">\n.reconstructor-upload {\n    margin-bottom: 15px;\n\n    &-card {\n        position: relative;\n        text-align: center;\n        width: 100%;\n        height: 100%;\n        background: rgba(0, 0, 0, 0.02);\n        border: 1px dashed v-bind(borderColor);\n        border-radius: 8px;\n        cursor: pointer;\n        outline: 0;\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n        align-items: center;\n        transition: border-color 0.3s, width 0.3s;\n\n        &:hover {\n            border-color: v-bind(primaryColor);\n        }\n    }\n\n    &-list {\n        width: 100%;\n        height: 100%;\n        overflow-y: auto;\n        transition: opacity 0.3s, height 0.3s;\n\n        &::before {\n            display: table;\n            width: 0;\n            height: 0;\n            content: \"\";\n        }\n\n        &-item {\n            color: v-bind(primaryColor);\n            position: relative;\n            height: 22px;\n            font-size: 14px;\n            display: flex;\n            align-items: center;\n            transition: background-color .3s;\n            cursor: pointer;\n            padding: 0.4rem 1rem;\n\n            &:hover {\n                background-color: v-bind(hoverColor);\n\n                .reconstructor-upload-list-item-del {\n                    opacity: 1;\n                }\n            }\n\n            &-name {\n                overflow: hidden;\n                white-space: nowrap;\n                text-overflow: ellipsis;\n                padding: 0 6px;\n                line-height: 1.57;\n                flex: auto;\n                max-width: 85%;\n                transition: all .3s;\n            }\n\n            &-del {\n                position: absolute;\n                right: 8px;\n                color: v-bind(textColor3);\n                cursor: pointer;\n                opacity: 0;\n                transition: all .3s;\n\n                &:hover {\n                    transform: scale(1.2);\n                }\n\n                &:active {\n                    transform: scale(0.9);\n                }\n            }\n        }\n    }\n}\n\n.stats-text {\n    color: v-bind(primaryColor);\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/plugin/builtin/glTFHandler/GLTFHandlerForm.vue",
    "content": "<script setup lang=\"ts\">\nimport {ref} from \"vue\";\nimport {t} from \"@/language\";\nimport EsFormItemHelpLabel from \"@/components/es/EsFormItemHelpLabel.vue\";\n\nconst model = ref<IPlugin.GLTFHandlerOptimizeModel>({\n  'compress': \"draco\",\n  'meshoptLevel': \"high\",\n  'instance': true,\n  'instanceMin': 5,\n  'flatten': true,\n  'join': true,\n  'palette': true,\n  'paletteMin': 5,\n  'prune': true,\n  'pruneAttributes': true,\n  'pruneLeaves': true,\n  'pruneSolidTextures': true,\n  'weld': true,\n  'simplify': true,\n  'simplifyError': 0.01,\n  'simplifyLockBorder': false,\n  'simplifyRatio': 0,\n  'textureCompress': \"webp\",\n  'textureSize': 512,\n})\n\nfunction handleKeyword(keyword: string, p: string) {\n  const strs = p.split(keyword);\n\n  return `${strs[0]}<span class=\"color-red\">${keyword}</span>${strs[1]}`;\n}\n\n// 合并网格(开启合并网格必开启展平场景树)\nfunction handleJoinChange(checked: boolean) {\n  if (checked) {\n    model.value.flatten = true;\n  }\n}\n\n// 简化网格(开启简化网格必开启合并同位顶点)\nfunction handleSimplifyChange(checked: boolean) {\n  if (checked) {\n    model.value.weld = true;\n  }\n}\n\ndefineExpose({\n  model\n})\n</script>\n\n<template>\n  <n-form ref=\"formRef\" :model=\"model\" label-placement=\"left\" label-width=\"auto\" class=\"optimize-form\">\n    <n-grid :cols=\"24\" :x-gap=\"24\">\n      <!--  压缩方式  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Compress')\">\n            <div>\n              {{ t(\"plugin.gltfHandler['Floating point compression method.']\") }}<br/>\n              <span class=\"color-red\">Draco</span>：{{ t('plugin.gltfHandler.compresses') }} geometry <br/>\n              <span class=\"color-red\">Meshopt & Quantization</span>：{{ t('plugin.gltfHandler.compresses') }} geometry &\n              animation\n            </div>\n          </EsFormItemHelpLabel>\n        </template>\n        <n-select v-model:value=\"model.compress\" class=\"!w-full\" :options=\"[\n            {label:'Draco',value:'draco'},\n            {label:'Meshopt',value:'meshopt'},\n            {label:'Quantization',value:'quantize'},\n            {label:'None',value:'false'}\n        ]\"/>\n      </n-form-item-gi>\n\n      <!--  Meshopt压缩级别  -->\n      <n-form-item-gi v-if=\"model.compress === 'meshopt'\" :span=\"12\" :label=\"t('plugin.gltfHandler.Meshopt compression level')\">\n        <n-select v-model:value=\"model.meshoptLevel\" class=\"!w-full\" :options=\"[\n            {label:'medium',value:'medium'},\n            {label:'high',value:'high'}\n        ]\"/>\n      </n-form-item-gi>\n\n      <!--  实例化网格  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Instance')\">\n            {{ t(\"plugin.gltfHandler['Use GPU instancing with shared mesh references.']\") }}\n          </EsFormItemHelpLabel>\n        </template>\n        <n-switch v-model:value=\"model.instance\"/>\n      </n-form-item-gi>\n\n      <!--  实例化网格界限  -->\n      <n-form-item-gi v-if=\"model.instance\" :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Instance min')\">\n            {{ t(\"plugin.gltfHandler['Number of instances required for instancing.']\") }}\n          </EsFormItemHelpLabel>\n        </template>\n        <n-input-number v-model:value=\"model.instanceMin\" :min=\"2\" :max=\"Infinity\" class=\"!w-full\"/>\n      </n-form-item-gi>\n\n      <!--  展平场景树  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Flatten')\">\n            <div>\n              {{ t(\"plugin.gltfHandler['Flatten scene graph.']\") }}<br/>\n              <div\n                  v-html=\"handleKeyword(t('plugin.gltfHandler.Join'),t('plugin.gltfHandler.This item cannot be closed when opening Join'))\"></div>\n            </div>\n          </EsFormItemHelpLabel>\n        </template>\n        <n-switch v-model:value=\"model.flatten\" :disabled=\"model.join\"/>\n      </n-form-item-gi>\n\n      <!--  合并网格  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Join')\">\n            <div>\n              {{ t(\"plugin.gltfHandler['Join meshes and reduce draw calls.']\") }}<br/>\n              <div\n                  v-html=\"handleKeyword(t('plugin.gltfHandler.Flatten'),t('plugin.gltfHandler[\\'Prerequisites: Flatten is enabled\\']'))\"></div>\n            </div>\n          </EsFormItemHelpLabel>\n        </template>\n        <n-switch v-model:value=\"model.join\" @update:value=\"handleJoinChange\"/>\n      </n-form-item-gi>\n\n      <!--  合并纹理  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Palette')\">\n            {{ t(\"plugin.gltfHandler['Creates palette textures and merges materials.']\") }}<br/>\n          </EsFormItemHelpLabel>\n        </template>\n        <n-switch v-model:value=\"model.palette\"/>\n      </n-form-item-gi>\n\n      <!--  合并纹理界限  -->\n      <n-form-item-gi v-if=\"model.palette\" :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Palette min')\">\n            {{\n              t(\"plugin.gltfHandler['Minimum number of blocks in the palette texture. If fewer unique material values are found, no palettes will be generated.']\")\n            }}\n          </EsFormItemHelpLabel>\n        </template>\n        <n-input-number v-model:value=\"model.paletteMin\" :min=\"2\" :max=\"Infinity\" class=\"!w-full\"/>\n      </n-form-item-gi>\n\n      <!--  修剪  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Prune')\">\n            {{\n              t(\"plugin.gltfHandler['Removes properties from the file if they are not referenced by a Scene.']\")\n            }}<br/>\n          </EsFormItemHelpLabel>\n        </template>\n        <n-switch v-model:value=\"model.prune\"/>\n      </n-form-item-gi>\n\n      <template v-if=\"model.prune\">\n        <!--  修剪顶点  -->\n        <n-form-item-gi :span=\"12\">\n          <template #label>\n            <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Prune attributes')\">\n              {{ t(\"plugin.gltfHandler['Whether to prune unused vertex attributes.']\") }}<br/>\n            </EsFormItemHelpLabel>\n          </template>\n          <n-switch v-model:value=\"model.pruneAttributes\"/>\n        </n-form-item-gi>\n\n        <!--  修剪子节点  -->\n        <n-form-item-gi :span=\"12\">\n          <template #label>\n            <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Prune leaves')\">\n              {{ t(\"plugin.gltfHandler['Whether to prune empty leaf nodes.']\") }}<br/>\n            </EsFormItemHelpLabel>\n          </template>\n          <n-switch v-model:value=\"model.pruneLeaves\"/>\n        </n-form-item-gi>\n\n        <!--  修剪纹理  -->\n        <n-form-item-gi :span=\"12\">\n          <template #label>\n            <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Prune solid textures')\">\n              {{\n                t(\"plugin.gltfHandler['Whether to prune solid (single-color) textures,converting them to material factors.']\")\n              }}<br/>\n            </EsFormItemHelpLabel>\n          </template>\n          <n-switch v-model:value=\"model.pruneSolidTextures\"/>\n        </n-form-item-gi>\n      </template>\n\n      <!--  合并同位顶点  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Weld')\">\n            <div>\n              {{ t(\"plugin.gltfHandler['Merge equivalent vertices.']\") }}<br/>\n              <div\n                  v-html=\"handleKeyword(t('plugin.gltfHandler.Simplify'),t('plugin.gltfHandler.This item cannot be closed when opening Simplify'))\"></div>\n            </div>\n          </EsFormItemHelpLabel>\n        </template>\n        <n-switch v-model:value=\"model.weld\" :disabled=\"model.simplify\"/>\n      </n-form-item-gi>\n\n      <!--  简化网格  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Simplify')\">\n            <div>\n              {{ t(\"plugin.gltfHandler['Simplify mesh geometry with meshoptimizer.']\") }}<br/>\n              <div\n                  v-html=\"handleKeyword(t('plugin.gltfHandler.Weld'),t('plugin.gltfHandler[\\'Prerequisites: Weld is enabled\\']'))\"></div>\n            </div>\n          </EsFormItemHelpLabel>\n        </template>\n        <n-switch v-model:value=\"model.simplify\" @update:value=\"handleSimplifyChange\"/>\n      </n-form-item-gi>\n\n      <template v-if=\"model.simplify\">\n        <!--  简化误差界限  -->\n        <n-form-item-gi :span=\"12\">\n          <template #label>\n            <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Simplify error')\">\n              {{ t(\"plugin.gltfHandler['Simplification error tolerance, as a fraction of mesh extent.']\") }}\n            </EsFormItemHelpLabel>\n          </template>\n          <n-input-number v-model:value=\"model.simplifyError\" :min=\"0.01\" :max=\"100\" :step=\"0.01\" :precision=\"2\"\n                          class=\"!w-full\">\n            <template #suffix> %</template>\n          </n-input-number>\n        </n-form-item-gi>\n\n        <!--  简化锁定边界  -->\n        <n-form-item-gi :span=\"12\">\n          <template #label>\n            <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Simplify lock border')\">\n              {{ t(\"plugin.gltfHandler['Whether to lock topological borders of the mesh.']\") }}\n            </EsFormItemHelpLabel>\n          </template>\n          <n-switch v-model:value=\"model.simplifyLockBorder\"/>\n        </n-form-item-gi>\n\n        <!--  简化比率  -->\n        <n-form-item-gi :span=\"12\">\n          <template #label>\n            <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Simplify ratio')\">\n              {{ t(\"plugin.gltfHandler['Target ratio (0-1) of vertices to keep.']\") }}\n            </EsFormItemHelpLabel>\n          </template>\n\n          <n-slider v-model:value=\"model.simplifyRatio\" :min=\"0\" :max=\"1\" :step=\"0.01\"/>\n        </n-form-item-gi>\n      </template>\n\n      <!--  纹理压缩  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Texture compress')\">\n            <div>\n              {{ t(\"plugin.gltfHandler['AVIF and WebP optimize transfer size;']\") }}<br/>\n              {{ t(\"plugin.gltfHandler['Auto Compresses in the original format;']\") }}<br/>\n              {{ t(\"plugin.gltfHandler['none Does not compress.']\") }}\n            </div>\n          </EsFormItemHelpLabel>\n        </template>\n        <n-select v-model:value=\"model.textureCompress\" class=\"!w-full\" :options=\"[\n            {label:'WebP',value:'webp'},\n            {label:'AVIF',value:'avif'},\n            {label:'Auto',value:'auto'},\n            {label:'None',value:'none'}\n        ]\"/>\n      </n-form-item-gi>\n\n      <!--  纹理最大尺寸  -->\n      <n-form-item-gi :span=\"12\">\n        <template #label>\n          <EsFormItemHelpLabel :label=\"t('plugin.gltfHandler.Texture size')\">\n            {{ t(\"plugin.gltfHandler['Maximum texture dimensions, in pixels.']\") }}\n          </EsFormItemHelpLabel>\n        </template>\n        <n-input-number v-model:value=\"model.textureSize\" :min=\"2\" :step=\"2\" :max=\"Infinity\" class=\"!w-full\">\n          <template #suffix> px</template>\n        </n-input-number>\n      </n-form-item-gi>\n    </n-grid>\n  </n-form>\n</template>\n\n<style scoped lang=\"less\">\n.optimize-form {\n  margin-top: 20px;\n  overflow-y: auto;\n  overflow-x: auto;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/es/plugin/builtin/pointCloudReconstructor/ReconstructorForm.vue",
    "content": "<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { t } from \"@/language\";\nimport EsFormItemHelpLabel from \"@/components/es/EsFormItemHelpLabel.vue\";\n\nconst model = ref<IPlugin.PointCloudReconstructorModel>({\n    'colorTolerance': 5,\n    'distanceThreshold': 0.3,\n    'minClusterSize': 10,\n    'downsampleResolution': 0.05,\n})\n\ndefineExpose({\n    model\n})\n</script>\n\n<template>\n    <n-form ref=\"formRef\" :model=\"model\" label-placement=\"left\" label-width=\"auto\" class=\"overflow-auto mt-2\">\n        <n-grid :cols=\"24\" :x-gap=\"24\">\n            <!--  颜色容差  -->\n            <n-form-item-gi :span=\"12\">\n                <template #label>\n                    <EsFormItemHelpLabel :label=\"t('plugin.pointCloudReconstructor.Color tolerance')\">\n                        {{ t(\"plugin.pointCloudReconstructor['Color similarity processing, the larger the value, the wider the range of cluster color values.']\") }}\n                    </EsFormItemHelpLabel>\n                </template>\n\n                <n-slider v-model:value=\"model.colorTolerance\" :min=\"1\" :max=\"20\" :step=\"1\" />\n            </n-form-item-gi>\n\n            <!--  距离阈值  -->\n            <n-form-item-gi :span=\"12\">\n                <template #label>\n                    <EsFormItemHelpLabel :label=\"t('plugin.pointCloudReconstructor.Distance threshold')\">\n                        {{ t(\"plugin.pointCloudReconstructor['Control the sensitivity of object separation, that is, spatial clustering distance threshold.']\") }}\n                    </EsFormItemHelpLabel>\n                </template>\n\n                <n-slider v-model:value=\"model.distanceThreshold\" :min=\"0.05\" :max=\"0.5\" :step=\"0.05\" />\n            </n-form-item-gi>\n\n            <!--  最小簇大小  -->\n            <n-form-item-gi :span=\"12\">\n                <template #label>\n                    <EsFormItemHelpLabel :label=\"t('plugin.pointCloudReconstructor.Min cluster size')\">\n                        {{ t(\"plugin.pointCloudReconstructor['Minimum number of cluster points, filtering noise points and small clusters.']\") }}\n                    </EsFormItemHelpLabel>\n                </template>\n\n                <n-slider v-model:value=\"model.minClusterSize\" :min=\"5\" :max=\"100\" :step=\"5\" />\n            </n-form-item-gi>\n\n            <!--  点云抽稀  -->\n            <n-form-item-gi :span=\"12\">\n                <template #label>\n                    <EsFormItemHelpLabel :label=\"t('plugin.pointCloudReconstructor.Downsample resolution')\">\n                        {{ t(\"plugin.pointCloudReconstructor['The grid space division method is used to reduce the number of points, so as to reduce the amount of calculation in the subsequent processing.']\") }}\n                    </EsFormItemHelpLabel>\n                </template>\n\n                <n-slider v-model:value=\"model.downsampleResolution\" :min=\"0.01\" :max=\"0.2\" :step=\"0.01\" />\n            </n-form-item-gi>\n        </n-grid>\n    </n-form>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/header/Logo.vue",
    "content": "<template>\n  <svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"m27.19815,87.08654l-20.82,-11.88l0,-50.24l20.82,12.33l0,49.79z\" :fill=\"primaryColor.hex\"/>\n    <path d=\"m25.32815,13.95654l-18.95,11.01l20.82,12.33l18.95,-10.83l-20.82,-12.51z\" :fill=\"primaryColor.hexHover\"/>\n    <path d=\"m92.90815,50.47654l-0.11,24.39l-43.39,25.06l0.14,-24.56l43.36,-24.89z\" :fill=\"primaryColor.hexHover\"/>\n    <path d=\"m30.47815,88.79654l18.93,11.13l0.14,-24.56l-19.02,-10.58l-0.05,24.01z\" :fill=\"primaryColor.hex\"/>\n    <path d=\"m28.78815,12.09654l20.65,-12.17l43.28,25.04l-20.42,12.16l-43.51,-25.03z\" :fill=\"primaryColor.hexHover\"/>\n    <path d=\"m92.74815,46.90654l-0.03,-21.94l-20.42,12.16l0.02,21.81l20.43,-12.03z\" :fill=\"primaryColor.hexHover\"/>\n    <path d=\"m67.16815,60.04654l-17.52,10.11l-17.52,-10.11l0,-20.24l17.52,-10.11l17.52,10.11l0,20.24z\" :fill=\"primaryColor.hexHover\"/>\n    <path d=\"m32.14875,39.8347l17.43802,-10.33057l17.43801,10.24793l-18.26446,10.49587\" :fill=\"primaryColor.hex\"/>\n  </svg>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from \"vue\";\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\n\nconst globalConfigStore = useGlobalConfigStore();\nconst primaryColor = computed(() => globalConfigStore.mainColor as IConfig.Color);\n</script>"
  },
  {
    "path": "packages/editor/src/components/header/NavigationOperation.vue",
    "content": "<template>\n  <div id=\"navigationOperation\" class=\"flex items-center\">\n    <!--  撤回/重做  -->\n    <Do />\n\n    <!--  删除  -->\n    <Delete />\n\n    <!--  清空  -->\n    <Clear />\n\n    <!--  复制  -->\n    <Copy />\n\n    <!-- 全屏 -->\n    <Fullscreen />\n\n    <!--  导入/导出  -->\n    <ImportExport />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport Fullscreen from \"@/components/header/navigation/Fullscreen.vue\";\nimport Do from \"@/components/header/navigation/Do.vue\";\nimport Copy from \"@/components/header/navigation/Copy.vue\";\nimport Delete from \"@/components/header/navigation/Delete.vue\";\nimport Clear from \"@/components/header/navigation/Clear.vue\";\nimport ImportExport from \"@/components/header/navigation/ImportExport.vue\";\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/header/RightOperation.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref,onMounted} from 'vue';\nimport XR from '@/components/header/right/XR.vue';\nimport {App,Hooks} from \"@astral3d/engine\";\nimport Setting from \"@/components/setting/Setting.vue\";\nimport SaveToService from \"@/components/header/right/SaveToService.vue\";\nimport {t} from \"@/language\";\nimport {Airplay} from \"@vicons/carbon\";\n\nconst supportXr = ref(false);\n\nonMounted(() => {\n  // 判断是否支持XR\n  if (navigator.xr) {\n    if ('offerSession' in navigator.xr) {\n      Hooks.useDispatchSignal(\"offerXR\",'immersive-ar');\n    }else{\n      supportXr.value = true;\n    }\n  }else{\n    supportXr.value = false;\n  }\n});\n\nfunction handlePreview(){\n  // 新窗口打开\n  window.open(window.location.origin + \"/#/preview/\" + App.project.getKey(\"sceneInfo.id\"), \"_blank\");\n}\n</script>\n\n<template>\n  <div id=\"rightOperation\">\n    <!--  保存至服务器  -->\n    <SaveToService class=\"mr-2\" />\n\n    <!-- 预览 -->\n    <n-button @click=\"handlePreview\">\n      <template #icon>\n        <n-icon>\n          <Airplay />\n        </n-icon>\n      </template>\n      {{ t(\"home.Preview\") }}\n    </n-button>\n\n    <!-- XR -->\n    <XR v-if=\"supportXr\" />\n\n    <!--  通用配置项  -->\n    <Setting show-setting />\n  </div>\n</template>\n\n<style lang=\"less\" scoped>\n#rightOperation {\n  display: flex;\n  align-items: center;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/header/navigation/Clear.vue",
    "content": "<template>\n\t<n-tooltip trigger=\"hover\">\n\t\t<template #trigger>\n\t\t\t<n-button text class=\"mr-5\" :disabled=\"disabled\" @click=\"handleClear\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<n-icon size=\"22\" class=\"cursor-pointer\">\n\t\t\t\t\t\t<PaintBrush />\n\t\t\t\t\t</n-icon>\n\t\t\t\t</template>\n\t\t\t</n-button>\n\t\t</template>\n\t\t{{ t(\"layout.header.Clear Out\") }}\n\t</n-tooltip>\n</template>\n\n<script setup lang=\"ts\">\n\timport { ref, onMounted } from \"vue\";\n\timport { PaintBrush } from \"@vicons/carbon\";\n\timport { NIcon, NTooltip } from \"naive-ui\";\n\timport { t } from \"@/language\";\n\timport { App } from \"@astral3d/engine\";\n\n\tconst disabled = ref(false);\n\n\tonMounted(() => {});\n\n\tfunction handleClear() {\n\t\twindow.$dialog.warning({\n\t\t\ttitle: window.$t(\"other.warning\"),\n\t\t\tcontent: window.$t(\"core['Any unsaved data will be lost. Are you sure?']\"),\n\t\t\tpositiveText: window.$t(\"other.Ok\"),\n\t\t\tnegativeText: window.$t(\"other.Cancel\"),\n\t\t\tonPositiveClick: () => {\n\t\t\t\tApp.clear();\n\t\t\t},\n\t\t});\n\t}\n</script>\n\n<style scoped lang=\"less\"></style>"
  },
  {
    "path": "packages/editor/src/components/header/navigation/Copy.vue",
    "content": "<template>\n  <n-tooltip trigger=\"hover\">\n    <template #trigger>\n      <n-button text class=\"mr-2\" :disabled=\"disabled\" @click=\"handleClone()\">\n        <template #icon>\n          <n-icon size=\"22\" class=\"cursor-pointer\">\n            <Copy />\n          </n-icon>\n        </template>\n      </n-button>\n    </template>\n    {{ t(\"layout.header.Clone\") }}\n  </n-tooltip>\n</template>\n\n<script setup lang=\"ts\">\nimport {onMounted, ref} from \"vue\";\nimport {Copy} from \"@vicons/carbon\";\nimport {NIcon, NTooltip} from \"naive-ui\";\nimport {t} from \"@/language\";\nimport {App,Hooks,AddObjectCommand} from \"@astral3d/engine\";\n\nconst disabled = ref(true);\n\nfunction objectSelected(object){\n  disabled.value = object === null;\n}\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\",objectSelected)\n})\n\nfunction handleClone() {\n  let object = App.selected;\n\n  //避免复制相机或场景\n  if (object === null || object.parent === null) return;\n\n  object = object.clone();\n\n  App.execute(new AddObjectCommand(object));\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/header/navigation/Delete.vue",
    "content": "<template>\n  <n-tooltip trigger=\"hover\">\n    <template #trigger>\n      <n-button text class=\"mr-2\" :disabled=\"disabled\" @click=\"handleDelete()\">\n        <template #icon>\n          <n-icon size=\"22\" class=\"cursor-pointer\">\n            <Delete />\n          </n-icon>\n        </template>\n      </n-button>\n    </template>\n    {{ t(\"layout.header.Delete(Del)\") }}\n  </n-tooltip>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref,onMounted} from \"vue\";\nimport {Delete} from \"@vicons/carbon\";\nimport {NIcon, NTooltip} from \"naive-ui\";\nimport {t} from \"@/language\";\nimport {App,Hooks,RemoveObjectCommand} from \"@astral3d/engine\";\n\nconst disabled = ref(true);\n\nfunction objectSelected(object){\n    disabled.value = object === null;\n}\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\",objectSelected)\n})\n\nfunction handleDelete() {\n  const object = App.selected;\n\n  if (object !== null && object.parent !== null) {\n    App.execute(new RemoveObjectCommand(object));\n  }\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/header/navigation/Do.vue",
    "content": "<template>\n  <n-tooltip trigger=\"hover\">\n    <template #trigger>\n      <n-button text class=\"mr-2\" :disabled=\"undoDisabled\" @click=\"handleUndo()\">\n        <template #icon>\n          <n-icon size=\"22\" class=\"cursor-pointer\">\n            <Undo />\n          </n-icon>\n        </template>\n      </n-button>\n    </template>\n    {{ t(\"setting.shortcuts.Undo\") + `(${Utils.IS_MAC ? 'Meta' : 'Ctrl'} + ${getUndoKey()})` }}\n  </n-tooltip>\n\n  <n-tooltip trigger=\"hover\">\n    <template #trigger>\n      <n-button text class=\"mr-5\" :disabled=\"redoDisabled\" @click=\"handleRedo()\">\n        <template #icon>\n          <n-icon size=\"22\" class=\"cursor-pointer\">\n            <Redo />\n          </n-icon>\n        </template>\n      </n-button>\n    </template>\n    {{ t(\"setting.shortcuts.Redo\") + `(${Utils.IS_MAC ? 'Meta' : 'Ctrl'} + Shift +${getUndoKey()})` }}\n  </n-tooltip>\n</template>\n\n<script setup lang=\"ts\">\nimport {onMounted, ref} from \"vue\";\nimport {NIcon, NTooltip} from \"naive-ui\";\nimport {Undo,Redo} from \"@vicons/carbon\";\nimport {t} from \"@/language\";\nimport {App,Hooks,Utils} from \"@astral3d/engine\";\n\nconst undoDisabled = ref(true);\nconst redoDisabled = ref(true);\n\nfunction historyChanged() {\n  undoDisabled.value = App.history.undos.length === 0;\n  redoDisabled.value = App.history.redos.length === 0;\n}\n\nonMounted(() => {\n  Hooks.useAddSignal(\"historyChanged\", historyChanged);\n\n  historyChanged();\n})\n\n// 获取配置的撤销按键\nfunction getUndoKey() {\n  return (App.config.getShortcutItem('undo') || 'Z').toUpperCase();\n}\n\n//撤销\nfunction handleUndo() {\n  App.undo();\n}\n\n//重做\nfunction handleRedo() {\n  App.redo();\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/header/navigation/Fullscreen.vue",
    "content": "<template>\n  <div class=\"flex items-center mr-5\">\n    <n-tooltip trigger=\"hover\" v-if=\"!isFullscreen\">\n      <template #trigger>\n        <n-button text>\n          <template #icon>\n            <n-icon size=\"20\" class=\"cursor-pointer\" @click=\"fullscreen\">\n              <ExpandOutline/>\n            </n-icon>\n          </template>\n        </n-button>\n      </template>\n      {{ t(\"layout.header.Fullscreen\") }}\n    </n-tooltip>\n\n    <n-tooltip trigger=\"hover\" v-if=\"isFullscreen\">\n      <template #trigger>\n        <n-button text>\n          <template #icon>\n            <n-icon size=\"20\" class=\"cursor-pointer\" @click=\"fullscreen\">\n              <ContractOutline/>\n            </n-icon>\n          </template>\n        </n-button>\n      </template>\n      {{ t(\"layout.header['Exit fullscreen']\") }}\n    </n-tooltip>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref} from \"vue\";\nimport {NIcon, NTooltip} from \"naive-ui\";\nimport {ContractOutline, ExpandOutline} from \"@vicons/ionicons5\";\nimport {t} from \"@/language\";\n\nconst isFullscreen = ref(false);\n\n//全屏 / 退出全屏\nfunction fullscreen() {\n  if (document.fullscreenElement === null) {\n    document.documentElement.requestFullscreen();\n    isFullscreen.value = true;\n  } else if (document.exitFullscreen) {\n    document.exitFullscreen();\n    isFullscreen.value = false;\n  }\n\n  // Safari\n  //@ts-ignore\n  if (document.webkitFullscreenElement === null) {\n    //@ts-ignore\n    document.documentElement.webkitRequestFullscreen();\n    isFullscreen.value = true;\n    //@ts-ignore\n  } else if (document.webkitExitFullscreen) {\n    //@ts-ignore\n    document.webkitExitFullscreen();\n    isFullscreen.value = false;\n  }\n}\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/header/navigation/ImportExport.vue",
    "content": "<template>\n  <n-dropdown :options=\"exportOptions\" placement=\"bottom-start\" trigger=\"click\" @select=\"handleExportSelect\">\n    <n-button class=\"mr-2\">\n      <template #icon>\n        <n-icon size=\"22\">\n          <DocumentExport/>\n        </n-icon>\n      </template>\n      {{ t(\"layout.header.Export\") }}\n    </n-button>\n  </n-dropdown>\n\n  <n-button type=\"primary\" @click=\"handleImport\">\n    <template #icon>\n      <n-icon>\n        <DocumentImport/>\n      </n-icon>\n    </template>\n    {{ t(\"layout.header.Import\") }}\n  </n-button>\n</template>\n\n<script setup lang=\"ts\">\nimport {onMounted} from \"vue\";\nimport {DocumentImport, DocumentExport} from \"@vicons/carbon\";\nimport {t} from \"@/language\";\nimport {App, Export, Loader} from \"@astral3d/engine\";\n\nconst exportClass = new Export();\n\nconst exportOptions = [\n  {\n    label: t(\"layout.header['Export Object']\"),\n    key: \"exportObject\",\n    children: [\n      {\n        label: \"JSON\",\n        key: \"exportObjectToJSON\"\n      },\n      {\n        label: \"GLB\",\n        key: \"exportObjectToGlb\"\n      },\n      {\n        label: \"GLTF\",\n        key: \"exportObjectToGltf\"\n      },\n      {\n        label: \"OBJ\",\n        key: \"exportObjectToObj\"\n      },\n      {\n        label: \"PLY\",\n        key: \"exportObjectToPly\"\n      },\n      {\n        label: t(\"layout.header['PLY (Binary)']\"),\n        key: \"exportObjectToPlyBinary\"\n      },\n      {\n        label: \"STL\",\n        key: \"exportObjectToStl\"\n      },\n      {\n        label: t(\"layout.header['STL (Binary)']\"),\n        key: \"exportObjectToStlBinary\"\n      },\n      {\n        label: \"USDZ\",\n        key: \"exportObjectToUSDZ\"\n      }\n    ]\n  },\n  {\n    label: t(\"layout.header['Export Scene']\"),\n    key: \"exportScene\",\n    children: [\n      {\n        label: \"JSON\",\n        key: \"exportSceneToJSON\"\n      },\n      {\n        label: \"GLB\",\n        key: \"exportSceneToGlb\"\n      },\n      {\n        label: \"GLTF\",\n        key: \"exportSceneToGltf\"\n      },\n      {\n        label: \"OBJ\",\n        key: \"exportSceneToObj\"\n      },\n      {\n        label: \"PLY\",\n        key: \"exportSceneToPly\"\n      },\n      {\n        label: t(\"layout.header['PLY (Binary)']\"),\n        key: \"exportSceneToPlyBinary\"\n      },\n      {\n        label: \"STL\",\n        key: \"exportSceneToStl\"\n      },\n      {\n        label: t(\"layout.header['STL (Binary)']\"),\n        key: \"exportSceneToStlBinary\"\n      },\n      {\n        label: \"USDZ\",\n        key: \"exportSceneToUSDZ\"\n      }\n    ]\n  }\n]\n\nfunction handleImport() {\n  const form = document.createElement('form');\n  form.style.display = 'none';\n  document.body.appendChild(form);\n\n  const fileInput = document.createElement('input');\n  fileInput.multiple = true;\n  fileInput.type = 'file';\n  fileInput.addEventListener('change', function () {\n    Loader.loadFiles(fileInput.files, undefined)\n        .catch((err) => {\n          window.$message?.error(err);\n        })\n        .finally(() => {\n          form.reset();\n        });\n  });\n  form.appendChild(fileInput);\n\n  fileInput.click();\n}\n\nfunction handleExportSelect(key: string) {\n  if (key.startsWith(\"exportObject\")) {\n    if (App.selected === null) {\n      window.$message?.error(window.$t(\"prompt['No object selected.']\"));\n      return;\n    }\n  }\n\n  exportClass[key]();\n}\n\nonMounted(() => {\n})\n</script>\n\n<style scoped lang=\"less\"></style>"
  },
  {
    "path": "packages/editor/src/components/header/right/SaveToService.vue",
    "content": "<script lang=\"ts\" setup>\n\timport { nextTick } from \"vue\";\n\timport { Save } from \"@vicons/carbon\";\n\timport { t } from \"@/language\";\n\timport { App } from \"@astral3d/engine\";\n\timport { useGlobalConfigStore } from \"@/store/modules/globalConfig\";\n\timport { fetchUpload } from \"@/http/api/sys\";\n\timport { filterSize } from \"@/utils/common/file\";\n\timport { fetchUpdateScene } from \"@/http/api/scenes\";\n\timport { Service } from \"~/network\";\n\timport { DefaultScreenshot } from \"@/utils/common/constant\";\n\n\tconst globalConfigStore = useGlobalConfigStore();\n\n\tfunction save() {\n\t\tconst sceneInfo = App.project.getKey(\"sceneInfo\");\n\n\t\t// 检查对应sceneId的工程是否存在\n\t\tif (!sceneInfo.id) {\n\t\t\twindow.$message?.error(window.$t(\"scene['The project does not exist!']\"));\n\t\t\treturn;\n\t\t}\n\n\t\twindow.$dialog.warning({\n\t\t\ttitle: window.$t(\"other.warning\"),\n\t\t\tcontent: window.$t(\"prompt['Are you sure to update the scene?']\"),\n\t\t\tpositiveText: window.$t(\"other.Ok\"),\n\t\t\tnegativeText: window.$t(\"other.Cancel\"),\n\t\t\tonPositiveClick: async () => {\n\t\t\t\tglobalConfigStore.loadingText = window.$t(\"scene['Generate scene data, please wait']\");\n\t\t\t\tglobalConfigStore.loading = true;\n\n\t\t\t\t// 版本自动 +1\n\t\t\t\tApp.project.setKey(\"sceneInfo.sceneVersion\", sceneInfo.sceneVersion + 1);\n\n\t\t\t\tconst biz = `${sceneInfo.id}-V${sceneInfo.sceneVersion}`;\n\n\t\t\t\t// 如果没有封面，则先自动生成封面\n\t\t\t\tif (!sceneInfo.coverPicture || sceneInfo.coverPicture === DefaultScreenshot) {\n\t\t\t\t\tconst image = (await window.viewer.getViewportImage()) as HTMLImageElement;\n\t\t\t\t\tsceneInfo.coverPicture = image.src;\n\t\t\t\t\tApp.project.setKey(`sceneInfo.coverPicture`, image.src);\n\t\t\t\t}\n\n\t\t\t\t// 上传封面\n\t\t\t\tconst f = await fetch(sceneInfo.coverPicture.startsWith(\"blob\") ? sceneInfo.coverPicture : `file/static/${sceneInfo.coverPicture}`);\n\t\t\t\tconst blob = await f.blob();\n\t\t\t\tconst res = await fetchUpload({\n\t\t\t\t\tfile: new File([blob], `${sceneInfo.sceneName}-${Date.now()}.png`, { type: blob.type }),\n\t\t\t\t\tbiz: `upload/3DEditor/screenshot/${biz}`,\n\t\t\t\t});\n\t\t\t\tif (res.error === null) {\n\t\t\t\t\tApp.project.setKey(\"sceneInfo.coverPicture\", res.data);\n\t\t\t\t} else {\n\t\t\t\t\twindow.$message?.error(window.$t(\"prompt['Failed to save the cover image']\"));\n\t\t\t\t}\n\n\t\t\t\tawait nextTick();\n\n\t\t\t\tglobalConfigStore.loadingText = window.$t(\"scene['Scene is being compressed...']\");\n\n\t\t\t\twindow.viewer.package.pack({\n\t\t\t\t\t// 首包名称\n\t\t\t\t\tname: `${sceneInfo.sceneName}`,\n\t\t\t\t\t// 拆分的最深层级 0:拆分至最深层\n\t\t\t\t\tlayer: 2,\n\t\t\t\t\t// 压缩包上传接口函数，多压缩包\n\t\t\t\t\tzipUploadFun: async (zipFile: File) => {\n\t\t\t\t\t\tconst res = await fetchUpload({\n\t\t\t\t\t\t\tfile: zipFile,\n\t\t\t\t\t\t\tbiz: `upload/3DEditor/scene/${biz}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (res.error !== null) {\n\t\t\t\t\t\t\twindow.$message?.error(window.$t(\"scene['Failed to save project!']\"));\n\t\t\t\t\t\t\treturn \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn res.data;\n\t\t\t\t\t},\n\t\t\t\t\t// 打包进度回调\n\t\t\t\t\tonProgress: (progress: number) => {\n\t\t\t\t\t\tglobalConfigStore.loadingText = progress + \"%\";\n\t\t\t\t\t},\n\t\t\t\t\t// 打包完成回调\n\t\t\t\t\tonComplete: (data: { firstUploadResult: any; totalSize: number; totalZipNumber: number }) => {\n\t\t\t\t\t\tconst params = Object.assign(sceneInfo, {\n\t\t\t\t\t\t\tzip: data.firstUploadResult,\n\t\t\t\t\t\t\tzipSize: filterSize(data.totalSize),\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfetchUpdateScene(sceneInfo.id, params).then((res: Service.SuccessResult<ISceneFetchData>) => {\n\t\t\t\t\t\t\tglobalConfigStore.loadingText = window.$t(\"prompt.Saved successfully!\");\n\n\t\t\t\t\t\t\tif (res.data) {\n\t\t\t\t\t\t\t\tApp.project.setKey(\"sceneInfo\", res.data);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tglobalConfigStore.loading = false;\n\t\t\t\t\t\t\t}, 500);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n</script>\n\n<template>\n\t<n-button type=\"primary\" @click=\"save\">\n\t\t<template #icon>\n\t\t\t<n-icon>\n\t\t\t\t<Save />\n\t\t\t</n-icon>\n\t\t</template>\n\t\t{{ t(\"layout.header.Save\") }}\n\t</n-button>\n</template>\n\n<style lang=\"less\" scoped></style>\n"
  },
  {
    "path": "packages/editor/src/components/header/right/XR.vue",
    "content": "<template>\n  <div class=\"flex items-center mr-2\">\n    <n-tooltip trigger=\"hover\" v-if=\"supportVR\">\n      <template #trigger>\n        <n-icon size=\"20\" class=\"cursor-pointer\" @click=\"enterVR\">\n          <Carbon3DMprToggle />\n        </n-icon>\n      </template>\n      VR\n    </n-tooltip>\n\n    <n-tooltip trigger=\"hover\" v-if=\"supportAR\">\n      <template #trigger>\n        <n-icon size=\"20\" class=\"cursor-pointer\" @click=\"enterAR\">\n          <JoinOuter />\n        </n-icon>\n      </template>\n      AR\n    </n-tooltip>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {onMounted,ref} from \"vue\";\nimport {Carbon3DMprToggle, JoinOuter} from \"@vicons/carbon\";\nimport {NIcon, NTooltip} from \"naive-ui\";\nimport {Hooks} from \"@astral3d/engine\";\n\nconst supportAR = ref(false);\nconst supportVR = ref(false);\n\nonMounted(() => {\n  navigator.xr?.isSessionSupported( 'immersive-ar' ).then((supported) => {\n    supportAR.value = supported;\n  });\n\n  navigator.xr?.isSessionSupported( 'immersive-vr' ).then((supported) => {\n    supportVR.value = supported;\n  });\n})\n\nfunction enterVR(){\n  Hooks.useDispatchSignal(\"enterXR\",'immersive-ar');\n}\n\nfunction enterAR(){\n  Hooks.useDispatchSignal(\"enterXR\",'immersive-vr');\n}\n</script>"
  },
  {
    "path": "packages/editor/src/components/preview/AssetPreview.vue",
    "content": "<template>\n\t<n-modal\n\t\t:show=\"visible\"\n\t\t@update:show=\"emits('update:visible', $event)\"\n\t\tdisplay-directive=\"show\"\n\t\tclass=\"w-66vw h-66vh min-w-1000px\"\n\t\t@close=\"emits('update:visible', false)\"\n\t>\n\t\t<n-card\n\t\t\t:title=\"asset.name\"\n\t\t\tembedded\n\t\t\tsize=\"small\"\n\t\t\tcontent-class=\"!p-0 flex gap-x-15px\"\n\t\t\tcontent-style=\"height: calc(100% - 48px);\"\n\t\t\tclosable\n\t\t\t@close=\"handleClose\"\n\t\t>\n\t\t\t<div ref=\"assetPreviewRef\" id=\"assetPreview\"></div>\n\n\t\t\t<div class=\"w-345px mr-15px h-full\">\n\t\t\t\t<n-descriptions label-placement=\"left\" label-class=\"w-100px\" bordered :column=\"1\">\n\t\t\t\t\t<n-descriptions-item :label=\"t('home.assets.Name')\">\n\t\t\t\t\t\t{{ asset.name }}\n\t\t\t\t\t</n-descriptions-item>\n\t\t\t\t\t<n-descriptions-item :label=\"t('home.assets.Type')\">\n\t\t\t\t\t\t{{ t(`home.assets.${asset.type}`) }}\n\t\t\t\t\t</n-descriptions-item>\n\t\t\t\t\t<n-descriptions-item :label=\"t('home.assets.Category')\">\n\t\t\t\t\t\t{{ asset.categoryName || asset.category }}\n\t\t\t\t\t</n-descriptions-item>\n\t\t\t\t\t<n-descriptions-item :label=\"t('bim.Thumbnail')\">\n\t\t\t\t\t\t<n-image width=\"120\" :src=\"getServiceStaticFile(asset.thumbnail)\" />\n\t\t\t\t\t\t{{}}\n\t\t\t\t\t</n-descriptions-item>\n\t\t\t\t\t<n-descriptions-item :label=\"t('home.assets.Size')\">\n\t\t\t\t\t\t{{ filterSize(asset.size) }}\n\t\t\t\t\t</n-descriptions-item>\n\t\t\t\t\t<n-descriptions-item :label=\"t('home.assets.Tags')\">\n\t\t\t\t\t\t<n-tag type=\"success\" :bordered=\"false\" class=\"ml-5px\" v-for=\"tag in asset.tags ? asset.tags.split(',') : []\" :key=\"tag\">\n\t\t\t\t\t\t\t{{ tag }}\n\t\t\t\t\t\t</n-tag>\n\t\t\t\t\t</n-descriptions-item>\n\t\t\t\t\t<n-descriptions-item :label=\"t('scene.Create time')\">\n\t\t\t\t\t\t{{ asset.createTime }}\n\t\t\t\t\t</n-descriptions-item>\n\t\t\t\t\t<n-descriptions-item :label=\"t('scene.Update time')\">\n\t\t\t\t\t\t{{ asset.updateTime }}\n\t\t\t\t\t</n-descriptions-item>\n\t\t\t\t</n-descriptions>\n\n\t\t\t\t<n-button type=\"primary\" class=\"w-full\" :loading=\"downloadLoading\" @click=\"handleDownload\">\n\t\t\t\t\t{{ t(\"plugin.gltfHandler.Download\") }}\n\t\t\t\t</n-button>\n\t\t\t</div>\n\t\t</n-card>\n\t</n-modal>\n</template>\n\n<script setup lang=\"ts\">\n\timport { ref, nextTick, watch, useTemplateRef, onBeforeUnmount } from \"vue\";\n\timport { Preview } from \"@astral3d/engine\";\n\timport { t } from \"@/language\";\n\timport { downloadWithFetch, filterSize, getServiceStaticFile } from \"@/utils/common/file\";\n\n\tconst props = withDefaults(\n\t\tdefineProps<{\n\t\t\tvisible: boolean;\n\t\t\tasset: IAssets.Item;\n\t\t}>(),\n\t\t{\n\t\t\tvisible: false,\n\t\t\tasset: () => ({\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"Model\",\n\t\t\t\tcategory: \"\",\n\t\t\t\tthumbnail: \"\",\n\t\t\t\tsize: 0,\n\t\t\t\tfile: \"\",\n\t\t\t\tcreateTime: \"\",\n\t\t\t\tupdateTime: \"\",\n\t\t\t}),\n\t\t}\n\t);\n\tconst emits = defineEmits([\"update:visible\"]);\n\n\tlet previewer: Preview | null = null;\n\n\tconst assetPreviewRef = useTemplateRef(\"assetPreviewRef\");\n\n\twatch(\n\t\t() => props.visible,\n\t\tasync newVal => {\n\t\t\tif (newVal) {\n\t\t\t\tif (!previewer) {\n\t\t\t\t\tawait nextTick();\n\n\t\t\t\t\tpreviewer = new Preview({\n\t\t\t\t\t\tcontainer: assetPreviewRef.value,\n\t\t\t\t\t\thdr: \"/static/resource/hdr/cloudy.hdr\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\tbaseUrl: \"/file/static/\",\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (props.asset.file) {\n\t\t\t\t\tpreviewer.load(getServiceStaticFile(props.asset.file), props.asset.type);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdisposePreviewer();\n\t\t\t}\n\t\t}\n\t);\n\n\tonBeforeUnmount(() => {\n\t\tdisposePreviewer();\n\t});\n\n\tfunction disposePreviewer() {\n\t\tif (previewer) {\n\t\t\tpreviewer.dispose();\n\t\t\tpreviewer = null;\n\t\t}\n\t}\n\n\tfunction handleClose() {\n\t\temits(\"update:visible\", false);\n\t}\n\n\tconst downloadLoading = ref(false);\n\n\tfunction handleDownload() {\n\t\tdownloadLoading.value = true;\n\n\t\tdownloadWithFetch(getServiceStaticFile(props.asset.file)).finally(() => {\n\t\t\tdownloadLoading.value = false;\n\t\t});\n\t}\n</script>\n\n<style scoped lang=\"less\">\n\t#assetPreview {\n\t\twidth: calc(100% - 360px);\n\t\theight: 100%;\n\t}\n\n\t.n-descriptions {\n\t\theight: calc(100% - 65px);\n\t\tmargin-bottom: 15px;\n\t\toverflow-y: auto;\n\t}\n</style>\n"
  },
  {
    "path": "packages/editor/src/components/preview/CommonPreview.vue",
    "content": "<template>\n  <n-modal :show=\"visible\" @update:show=\"emits('update:visible',$event)\" display-directive=\"show\" class=\"w-66vh h-66vh min-w-740px\" @close=\"emits('update:visible',false)\">\n    <n-card :title=\"name\" embedded size=\"small\" content-class=\"!p-0 w-full h-full\" closable @close=\"handleClose\">\n      <div ref=\"commonPreviewRef\" class=\"w-full h-full relative\">\n        <n-button v-if=\"screenshotShow\" class=\"w-20% absolute bottom-2 left-40%\" @click=\"handleScreenshot\">{{ t(\"scene.Screenshot\") }}</n-button>\n      </div>\n    </n-card>\n  </n-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport {nextTick, watch, useTemplateRef, onBeforeUnmount} from \"vue\";\nimport {Preview} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport {getServiceStaticFile} from \"@/utils/common/file\";\n\nconst props = withDefaults(defineProps<{\n  visible: boolean,\n  screenshotShow?:boolean,\n  name: string,\n  fileOrUrl: File | string |null,\n  type?: string,\n  // 是否是编辑器内置\n  isBuiltin?: boolean,\n}>(),{\n  visible: false,\n  screenshotShow:false,\n  name: t(\"home.Preview\"),\n  fileOrUrl: null,\n  type: 'Model',\n  isBuiltin:false\n})\nconst emits = defineEmits(['update:visible','screenshot'])\n\nlet previewer:Preview | null = null;\n\nconst assetPreviewRef = useTemplateRef(\"commonPreviewRef\");\n\nwatch(() => props.visible, async (newVal) => {\n  if(newVal){\n    if(!previewer){\n      await nextTick();\n\n      previewer = new Preview({\n        container: assetPreviewRef.value,\n        hdr: \"/static/resource/hdr/cloudy.hdr\",\n        request: {\n          baseUrl:\"/file/static/\"\n        }\n      });\n    }\n\n    if(props.fileOrUrl){\n      let fu = props.fileOrUrl;\n      if(!(fu instanceof File) && !props.isBuiltin){\n        fu = getServiceStaticFile(fu);\n      }\n\n      previewer.load(fu,props.type);\n    }\n  }else{\n    disposePreviewer();\n  }\n})\n\nonBeforeUnmount(() => {\n  disposePreviewer();\n})\n\nfunction disposePreviewer(){\n  if(previewer){\n    previewer.dispose();\n    previewer = null;\n  }\n}\n\nfunction handleClose(){\n  emits('update:visible',false);\n}\n\nfunction handleScreenshot(){\n  if(!previewer) return;\n\n  previewer.getViewportImage().then((image:HTMLImageElement) => {\n    emits('screenshot',image);\n  }).catch(() => {\n    window.$message?.error(t(\"prompt.Screenshots fail\"));\n  })\n}\n\ndefineExpose({\n  getPreviewer: async () => {\n    await nextTick();\n\n    return previewer;\n  },\n})\n</script>"
  },
  {
    "path": "packages/editor/src/components/preview/CommonPreview_backup.vue",
    "content": "<template>\n  <n-modal :show=\"visible\" @update:show=\"emits('update:visible',$event)\" display-directive=\"show\" class=\"w-66vh h-66vh min-w-740px\" @close=\"emits('update:visible',false)\">\n    <n-card :title=\"name\" embedded size=\"small\" content-class=\"!p-0 w-full h-full\" closable @close=\"handleClose\">\n      <div ref=\"commonPreviewRef\" class=\"w-full h-full relative\">\n        <n-button v-if=\"screenshotShow\" class=\"w-20% absolute bottom-2 left-40%\" @click=\"handleScreenshot\">{{ t(\"scene.Screenshot\") }}</n-button>\n      </div>\n    </n-card>\n  </n-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport {nextTick, watch, useTemplateRef, onBeforeUnmount} from \"vue\";\nimport {Preview} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport {getServiceStaticFile} from \"@/utils/common/file\";\n\nconst props = withDefaults(defineProps<{\n  visible: boolean,\n  screenshotShow:boolean,\n  name: string,\n  fileOrUrl: File | string |null,\n  type?: IAssets.SupportType\n}>(),{\n  visible: false,\n  screenshotShow:false,\n  name: t(\"home.Preview\"),\n  fileOrUrl: null,\n  type: 'Model',\n})\nconst emits = defineEmits(['update:visible','screenshot'])\n\nlet previewer:Preview | null = null;\n\nconst assetPreviewRef = useTemplateRef(\"commonPreviewRef\");\n\nwatch(() => props.visible, async (newVal) => {\n  if(newVal){\n    if(!previewer){\n      await nextTick();\n\n      previewer = new Preview({\n        container: assetPreviewRef.value,\n        hdr: \"/static/resource/hdr/cloudy.hdr\",\n        request: {\n          baseUrl:\"/file/static/\"\n        }\n      });\n    }\n\n    if(props.fileOrUrl){\n      let fu = props.fileOrUrl;\n      if(!(fu instanceof File)){\n        fu = getServiceStaticFile(fu);\n      }\n\n      previewer.load(fu,props.type);\n    }\n  }else{\n    if(previewer){\n      previewer.dispose();\n      previewer = null;\n    }\n  }\n})\n\nonBeforeUnmount(() => {\n  if(previewer){\n    previewer.dispose();\n    previewer = null;\n  }\n})\n\nfunction handleClose(){\n  emits('update:visible',false);\n}\n\nfunction handleScreenshot(){\n  if(!previewer) return;\n\n  previewer.getViewportImage().then((image:HTMLImageElement) => {\n    emits('screenshot',image);\n  }).catch(() => {\n    window.$message?.error(t(\"prompt.Screenshots fail\"));\n  })\n}\n</script>"
  },
  {
    "path": "packages/editor/src/components/project/ProjectInfoForm.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, watch} from \"vue\";\nimport {t} from \"@/language\";\nimport {defaultProjectInfo} from \"@astral3d/engine\";\nimport {SCENE_TYPE} from \"@/utils/common/constant\";\n\nconst props = withDefaults(defineProps<{\n  value:ISceneFetchData | null\n}>(),{\n  value:null\n})\n\nconst DefaultSceneData = defaultProjectInfo().sceneInfo;\n\nconst formRef = ref();\nconst form = ref<ISceneFetchData>({...DefaultSceneData,hasDrawing: DefaultSceneData.hasDrawing ? 1 : 0});\nconst rules = {\n  sceneName: {required: true, message: t(\"layout.sider.project.please enter the scene name\"), trigger: ['input', 'blur']}\n}\n\nwatch(() => props.value,(newVal) => {\n  if(newVal === null){\n    Object.keys(DefaultSceneData).forEach(key => {\n      form.value[key] = DefaultSceneData[key];\n    })\n  }else{\n    Object.keys(newVal).forEach(key => {\n      // createTime & updateTime no replace\n      if([\"createTime\",\"updateTime\"].includes(key)) return;\n\n      form.value[key] = newVal[key];\n    })\n  }\n})\n\nfunction getData():ISceneFetchData{\n  return {...form.value};\n}\n\nfunction validate(){\n  return new Promise((resolve,reject) => {\n    formRef.value?.validate((errors) => {\n      if (!errors) {\n        resolve('')\n      }\n      else {\n        reject(errors)\n      }\n    })\n  })\n\n}\n\ndefineExpose({\n  getData,validate\n})\n</script>\n\n<template>\n  <n-form ref=\"formRef\" :model=\"form\" :rules=\"rules\" size=\"small\" class=\"max-w-100%\"\n      label-placement=\"left\" label-width=\"100\">\n    <!-- 场景名称 -->\n    <n-form-item :label=\"t('scene.Name')\" path=\"sceneName\">\n      <n-input v-model:value=\"form.sceneName\"\n               :placeholder=\"t('layout.sider.project.please enter the scene name')\" />\n    </n-form-item>\n\n    <!-- 场景分类 -->\n    <n-form-item :label=\"t('scene.Classification')\">\n      <n-select v-model:value=\"form.sceneType\" filterable tag :options=\"SCENE_TYPE\" />\n    </n-form-item>\n\n    <!-- 场景描述 -->\n    <n-form-item :label=\"t('scene.Introduction')\">\n      <n-input v-model:value=\"form.sceneIntroduction\" type=\"textarea\"\n               :placeholder=\"t('layout.sider.project[\\'please enter the scene introduction\\']')\" />\n    </n-form-item>\n\n    <!-- 场景版本 -->\n    <n-form-item :label=\"t('other.Version')\">\n      <n-input-number v-model:value=\"form.sceneVersion\" button-placement=\"both\" class=\"text-center\" />\n    </n-form-item>\n  </n-form>\n</template>\n\n<style scoped lang=\"less\">\n</style>\n"
  },
  {
    "path": "packages/editor/src/components/setting/Setting.vue",
    "content": "<script setup lang=\"ts\">\nimport Theme from \"./common/Theme.vue\";\nimport Locale from \"./common/Locale.vue\";\nimport Color from \"./common/Color.vue\";\nimport SettingCenter from \"./common/SettingCenter.vue\";\n\nwithDefaults(defineProps<{\n    showSetting: boolean\n}>(),{\n    showSetting: true\n})\n</script>\n\n<template>\n  <!--  国际化  -->\n  <Locale />\n\n  <!--  主题  -->\n  <Theme />\n\n  <!--  主色调  -->\n  <Color />\n\n  <!--  设置中心  -->\n  <SettingCenter v-if=\"showSetting\" />\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/setting/common/Color.vue",
    "content": "<template>\n  <n-tooltip trigger=\"hover\">\n    <template #trigger>\n      <n-button quaternary @click=\"show = true\">\n        <template #icon>\n          <n-icon>\n            <ColorPalette />\n          </n-icon>\n        </template>\n      </n-button>\n    </template>\n    {{ t(\"layout.header.Main color\") }}\n  </n-tooltip>\n\n  <n-modal v-model:show=\"show\" :title=\"t('layout.header.Main color')\" preset=\"card\"\n      class=\"w-300 main-colors\" :segmented=\"{ content: 'soft'}\" bordered>\n    <div class=\"flex h-80vh overflow-y-auto\">\n      <div class=\"grid grid-cols-4 gap-4 w-70%\">\n        <n-card v-for=\"color in recommendColors\" :key=\"color.hex\" :bordered=\"false\" embedded\n                hoverable class=\"w-full cursor-pointer\" @click=\"globalConfigStore.setPrimaryColor(color)\">\n          <div class=\"w-6px h-full b-rd-3px mr-5px\" :style=\"{backgroundColor: color.hex}\"></div>\n\n          <div class=\"flex flex-col justify-between h-full\">\n            <div class=\"flex items-end  mb-1\">\n              <h4 class=\"text-14px\">{{color.name}}</h4>\n              <span class=\"text-10px text-gray-400 ml-5px\">{{ color.pinyin.toUpperCase() }}</span>\n            </div>\n\n            <div class=\"text-13px\">\n              {{color.hex}} <n-divider vertical />   {{`RGB(${color.RGB[0]},${color.RGB[1]},${color.RGB[2]})`}}\n            </div>\n          </div>\n        </n-card>\n\n        <n-divider class=\"grid-col-start-1 grid-col-end-5\" />\n\n        <n-card v-for=\"color in colors\" :key=\"color.hex\" :bordered=\"false\" embedded\n                hoverable class=\"w-full cursor-pointer\" @click=\"globalConfigStore.setPrimaryColor(color)\">\n          <div class=\"w-6px h-full b-rd-3px mr-5px\" :style=\"{backgroundColor: color.hex}\"></div>\n\n          <div class=\"flex flex-col justify-between h-full\">\n            <div class=\"flex items-end  mb-1\">\n              <h4 class=\"text-14px\">{{color.name}}</h4>\n              <span class=\"text-10px text-gray-400 ml-5px\">{{ color.pinyin.toUpperCase() }}</span>\n            </div>\n\n            <div class=\"text-13px\">\n              {{color.hex}} <n-divider vertical />   {{`RGB(${color.RGB[0]},${color.RGB[1]},${color.RGB[2]})`}}\n            </div>\n          </div>\n        </n-card>\n      </div>\n\n      <div class=\"w-30% h-full flex justify-center items-center absolute top-0 right-0\">\n        <n-card class=\"w-60% h-60%\" content-class=\"w-full h-full flex justify-around overflow-y-auto color-show\" :content-style=\"{backgroundColor: primaryColor.hex}\">\n          <div class=\"c-#FFF h-full flex flex-col justify-center items-center\">\n            <h1 class=\"text-60px mb-5px w-60px \">{{primaryColor.name}}</h1>\n            <p>{{primaryColor.pinyin.toUpperCase()}}</p>\n          </div>\n\n          <div class=\"flex flex-col text-12px c-#fff\">\n            <n-divider />\n            <span>C</span>\n            <n-progress type=\"circle\" :stroke-width=\"5\" class=\"!w-50px\" unit=\"\"\n                        :percentage=\"primaryColor.CMYK[0]\" color=\"#0093D3\" indicator-text-color=\"#0093D3\"/>\n            <n-divider />\n            <span>M</span>\n            <n-progress type=\"circle\" :stroke-width=\"5\" class=\"!w-50px\" unit=\"\"\n                        :percentage=\"primaryColor.CMYK[1]\" color=\"#CC006B\" indicator-text-color=\"#CC006B\"/>\n            <n-divider />\n            <span>Y</span>\n            <n-progress type=\"circle\" :stroke-width=\"5\" class=\"!w-50px\" unit=\"\"\n                        :percentage=\"primaryColor.CMYK[2]\" color=\"#FFF10C\" indicator-text-color=\"#FFF10C\"/>\n            <n-divider />\n            <span>K</span>\n            <n-progress type=\"circle\" :stroke-width=\"5\" class=\"!w-50px\" unit=\"\"\n                        :percentage=\"primaryColor.CMYK[3]\" color=\"#333\" indicator-text-color=\"#333\"/>\n            <n-divider />\n            <span>R</span>\n            <div class=\"text-16px text-end\">{{primaryColor.RGB[0]}}</div>\n            <n-divider />\n            <span>G</span>\n            <div class=\"text-16px text-end\">{{primaryColor.RGB[1]}}</div>\n            <n-divider />\n            <span>B</span>\n            <div class=\"text-16px text-end\">{{primaryColor.RGB[2]}}</div>\n            <n-divider />\n          </div>\n        </n-card>\n      </div>\n    </div>\n  </n-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport {onMounted,ref,computed} from \"vue\";\nimport {ColorPalette} from \"@vicons/carbon\";\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\nimport {t} from \"@/language\";\nimport ChineseColors from \"@/assets/color/ChineseColors.json\";\nimport Recommend from \"@/assets/color/recommend.json\";\n\nconst globalConfigStore = useGlobalConfigStore();\n\nconst show = ref(false);\nconst recommendColors = ref<IConfig.Color[]>(Recommend);\nconst colors = ref<IConfig.Color[]>(ChineseColors);\nconst primaryColor = computed(() => globalConfigStore.mainColor as IConfig.Color);\n\nonMounted(() => {\n  getColors();\n})\n\nfunction getColors() {\n}\n</script>\n\n<style scoped lang=\"less\">\n.n-card{\n  :deep(&__content){\n    flex: unset;\n    display: flex;\n    padding: 10px;\n\n    &:first-child{\n      padding-top:10px;\n    }\n  }\n}\n\n.n-divider:not(.n-divider--vertical){\n  margin-top: 10px;\n  margin-bottom: 10px;\n\n  :deep(.n-divider__line){\n    background-color: #F3F3F3;\n  }\n}\n</style>\n\n<style lang=\"less\">\n.main-colors{\n  background-color:var(--n-color) !important;\n\n  .n-card-header{\n    .n-base-close{\n      z-index: 9999;\n    }\n  }\n}\n\n.color-show{\n  background-image: url(/static/images/color-texture.png);\n  background-color: #ddd;\n  transition: background-color 1s ease-in-out;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/setting/common/Locale.vue",
    "content": "<template>\n  <n-popselect v-model:value=\"value\" :options=\"options\" @update:value=\"setLocale\">\n    <n-button quaternary class=\"mr-1\">\n      <template #icon>\n        <n-icon>\n          <Language />\n        </n-icon>\n      </template>\n    </n-button>\n  </n-popselect>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref} from \"vue\";\nimport {Language} from \"@vicons/carbon\";\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\nimport {setLocale} from \"@/language\";\n\nconst globalConfigStore = useGlobalConfigStore();\nconst value = ref(<string>globalConfigStore.locale);\nconst options = [\n  { label: '中文', value: 'zh-CN' },\n  { label: 'English', value: 'en-US' }\n];\n</script>"
  },
  {
    "path": "packages/editor/src/components/setting/common/SettingCenter.vue",
    "content": "<template>\n  <n-tooltip trigger=\"hover\">\n    <template #trigger>\n      <n-button quaternary @click=\"show = true\">\n        <template #icon>\n          <n-icon>\n            <Settings />\n          </n-icon>\n        </template>\n      </n-button>\n    </template>\n    {{ t(\"setting.Setting\") }}\n  </n-tooltip>\n\n  <n-modal v-model:show=\"show\" display-directive=\"show\" :z-index=\"zIndex\" class=\"w-100 h-40vh\">\n    <n-card size=\"small\">\n      <SettingTabs />\n    </n-card>\n  </n-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref,onMounted} from \"vue\";\nimport {Settings} from \"@vicons/carbon\";\nimport {t} from \"@/language\";\n\nconst show = ref(true);\nconst zIndex = ref<number | undefined>(-1);\nonMounted(() => {\n  show.value = false;\n  zIndex.value = undefined;\n});\n</script>\n\n<style scoped lang=\"less\">\n.n-tab-pane{\n  width: 100%;\n\n  height: 100%;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/setting/common/Theme.vue",
    "content": "<template>\n  <n-tooltip trigger=\"hover\">\n    <template #trigger>\n      <n-button quaternary @click=\"globalConfigStore.setTheme()\" class=\"mr-1\">\n        <template #icon>\n          <n-icon>\n            <component :is=\"component\"/>\n          </n-icon>\n        </template>\n      </n-button>\n    </template>\n    {{ tooltip }}\n  </n-tooltip>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed,ref} from \"vue\";\nimport {Contrast, LightFilled, AsleepFilled} from \"@vicons/carbon\";\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\nimport {t} from \"@/language\";\n\nconst globalConfigStore = useGlobalConfigStore();\nconst tooltip = ref(t(\"layout.header['Use system theme']\"));\n\nconst component = computed(() => {\n  switch (globalConfigStore.theme) {\n    case \"osTheme\":\n      tooltip.value = t(\"layout.header['Use system theme']\");\n      return Contrast;\n    case \"lightTheme\":\n      tooltip.value = t('layout.header.Undertint');\n      return LightFilled;\n    case \"darkTheme\":\n      tooltip.value = t('layout.header.Dark');\n      return AsleepFilled;\n  }\n})\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/setting/components/PreviewSetting.vue",
    "content": "<template>\n  <n-form :model=\"form\" label-placement=\"left\" :label-width=\"120\" class=\"mt-2\" :style=\"{ minWidth: '300px' }\">\n    <n-form-item :label=\"t('setting.preview.Roaming character')\">\n      <n-radio-group v-model:value=\"form.roamingCharacter\" name=\"roaming_character\" @update:value=\"handleRoamingCharacterChange\">\n        <n-space>\n          <n-radio v-for=\"character in characters\" :key=\"character.value\" :value=\"character.value\">\n            <img :src=\"character.image\" alt=\"\" class=\"w-100px b-rd-6px\" />\n          </n-radio>\n        </n-space>\n      </n-radio-group>\n    </n-form-item>\n  </n-form>\n</template>\n\n<script setup lang=\"ts\">\nimport {onMounted,reactive} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,ROAMING_CHARACTERS} from \"@astral3d/engine\";\nimport {MenuOperation} from \"@/utils/preview/menuOperation\";\n\nconst form = reactive({\n  roamingCharacter: App.config.getKey(\"roamingCharacter\"),\n})\nconst characters = [\n  {\n    image: \"/static/images/roaming/Jackie.jpg\",\n    value: ROAMING_CHARACTERS.JACKIE,\n  },\n  {\n    image: \"/static/images/roaming/Workman.jpg\",\n    value: ROAMING_CHARACTERS.WORK_MAN,\n  },\n  {\n    image: \"/static/images/roaming/X_Bot.jpg\",\n    value: ROAMING_CHARACTERS.X_BOT,\n  },\n  {\n    image: \"/static/images/roaming/Y_Bot.jpg\",\n    value: ROAMING_CHARACTERS.Y_BOT,\n  }\n];\n\n// 漫游角色变更\nfunction handleRoamingCharacterChange(){\n  App.config.setKey(\"roamingCharacter\",form.roamingCharacter);\n\n  if(MenuOperation._roaming && MenuOperation._roaming.isRoaming){\n    MenuOperation.Roaming.reloadPerson();\n  }\n}\n\nonMounted(() => {\n  form.roamingCharacter = App.config.getKey(\"roamingCharacter\");\n})\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/setting/components/SettingTabs.vue",
    "content": "<script setup lang=\"ts\">\nimport {t} from \"@/language\";\n</script>\n\n<template>\n  <n-tabs type=\"line\" animated default-value=\"shortcuts\">\n    <n-tab-pane name=\"system\" :tab=\"t('setting.System Setting')\" display-directive=\"show\">\n      <SystemSetting />\n    </n-tab-pane>\n    <n-tab-pane name=\"preview\" :tab=\"t('setting.Preview Setting')\" display-directive=\"show\">\n      <PreviewSetting />\n    </n-tab-pane>\n    <n-tab-pane name=\"shortcuts\" :tab=\"t('setting.Shortcuts')\" display-directive=\"show\">\n      <Shortcuts />\n    </n-tab-pane>\n  </n-tabs>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/setting/components/Shortcuts.vue",
    "content": "<template>\n  <n-form :model=\"form\" label-placement=\"left\" :label-width=\"120\" class=\"mt-2\"\n          :style=\"{ minWidth: '300px' }\">\n    <n-form-item :label=\"t('setting.shortcuts.Translate')\">\n      <n-input v-model:value=\"form.translate\" readonly maxlength=\"1\"\n               :placeholder=\"t('setting.shortcuts.Please press a key')\"\n               @keyup=\"shortcutsKeyup($event, 'translate')\"/>\n    </n-form-item>\n    <n-form-item :label=\"t('setting.shortcuts.Rotate')\">\n      <n-input v-model:value=\"form.rotate\" readonly maxlength=\"1\"\n               :placeholder=\"t('setting.shortcuts.Please press a key')\"\n               @keyup=\"shortcutsKeyup($event, 'rotate')\"/>\n    </n-form-item>\n    <n-form-item :label=\"t('setting.shortcuts.Scale')\">\n      <n-input v-model:value=\"form.scale\" readonly maxlength=\"1\"\n               :placeholder=\"t('setting.shortcuts.Please press a key')\"\n               @keyup=\"shortcutsKeyup($event, 'scale')\"/>\n    </n-form-item>\n    <n-form-item :label=\"t('setting.shortcuts.Undo')\">\n      <n-input v-model:value=\"form.undo\" readonly maxlength=\"1\"\n               :placeholder=\"t('setting.shortcuts.Please press a key')\" @keyup=\"shortcutsKeyup($event, 'undo')\"/>\n      <EsTip class=\"ml-1\">\n        {{\n          `${!Utils.IS_MAC ? 'Ctrl' : 'Meta'} + ${form.undo.toUpperCase()} ${t('other.undo')},${!Utils.IS_MAC ? 'Ctrl' : 'Meta'} + Shift + ${form.undo.toUpperCase()} ${t('other.redo')}`\n        }}\n      </EsTip>\n    </n-form-item>\n    <n-form-item :label=\"t('setting.shortcuts.Focus')\">\n      <n-input v-model:value=\"form.focus\" readonly maxlength=\"1\"\n               :placeholder=\"t('setting.shortcuts.Please press a key')\"\n               @keyup=\"shortcutsKeyup($event, 'focus')\"/>\n    </n-form-item>\n  </n-form>\n</template>\n\n<script setup lang=\"ts\">\nimport {reactive,onMounted} from \"vue\";\nimport {t} from \"@/language\";\nimport EsTip from \"@/components/es/EsTip.vue\";\nimport {App,RemoveObjectCommand,Hooks,Utils} from \"@astral3d/engine\";\n\n// 由于撤消/重做，目前不能使用z\nconst form = reactive({\n  // shortcuts\n  translate: App.config.getShortcutItem('translate'),\n  rotate: App.config.getShortcutItem('rotate'),\n  scale: App.config.getShortcutItem('scale'),\n  undo: App.config.getShortcutItem('undo'),\n  focus: App.config.getShortcutItem('focus'),\n})\n\n// 快捷键输入框keyup\nconst isValidKeyBinding = (key) => key.match(/^[A-Za-z0-9]$/i);\nfunction shortcutsKeyup(event:KeyboardEvent, varName:string) {\n  //判断按下的是否是有效的键\n  if (!isValidKeyBinding(event.key)) return;\n  form[varName] = event.key;\n  App.config.setShortcutItem(varName, event.key.toLowerCase());\n}\n\nonMounted(() => {\n  document.addEventListener(\"keydown\", (event) => {\n    // 如果事件目标是输入框（INPUT 或 TEXTAREA），则直接返回\n    if (event.target && ['INPUT', 'TEXTAREA'].includes((<HTMLElement>event.target).tagName.toUpperCase())) {\n      return;\n    }\n\n    switch (event.key.toLowerCase()) {\n      case 'delete':\n        const object = App.selected;\n        if (object === null) return;\n\n        const parent = object.parent;\n        if (parent !== null) App.execute(new RemoveObjectCommand(object));\n        break;\n      case App.config.getShortcutItem('translate'):\n        Hooks.useDispatchSignal('transformModeChanged', 'translate');\n        break;\n      case App.config.getShortcutItem('rotate'):\n        Hooks.useDispatchSignal('transformModeChanged', 'rotate');\n        break;\n      case App.config.getShortcutItem('scale'):\n        Hooks.useDispatchSignal('transformModeChanged', 'scale');\n        break;\n      case App.config.getShortcutItem('undo'):\n        // windows下：ctrl + App.config.getShortcutItem('shortcuts/undo') 撤销，同时按下shift重做\n        // mac下：meta + App.config.getShortcutItem('shortcuts/undo') 撤销，同时按下shift重做\n        if (Utils.IS_MAC ? event.metaKey : event.ctrlKey) {\n          //阻止特定于浏览器的热键\n          event.preventDefault();\n          if (event.shiftKey) {\n            App.redo();\n          } else {\n            App.undo();\n          }\n        }\n        break;\n      case App.config.getShortcutItem('focus'):\n        if (App.selected !== null) {\n          App.focus(App.selected);\n        }\n        break;\n    }\n  })\n})\n</script>\n\n<style scoped lang=\"less\">\n.n-input{\n  width: 6rem !important;\n  text-align: center;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/components/setting/components/SystemSetting.vue",
    "content": "<template>\n  <n-result status=\"418\" class=\"my-20\" title=\"Empty\" :description=\"t('setting.system.No system Settings are available')\" />\n</template>\n\n<script setup lang=\"ts\">\nimport {t} from \"@/language\";\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/components/tree/SceneTree.vue",
    "content": "<script lang=\"ts\" setup>\nimport {h, ref, onMounted, nextTick, onBeforeUnmount} from \"vue\";\nimport {TreeOption, TreeDropInfo, NIcon, NBadge, NEllipsis} from \"naive-ui\";\nimport {\n  Camera,\n  Schematics,\n  Cube,\n  ModelAlt,\n  HeatMap,\n  Folder,\n  Light,\n  Soccer,\n  Draw,\n  FloatingIp,\n  Network1,\n  Image,\n  LocationHeart,\n  LocationCompany\n} from '@vicons/carbon';\nimport {t} from \"@/language\";\nimport {App,Hooks, MoveObjectCommand, RemoveObjectCommand, AddObjectCommand} from \"@astral3d/engine\";\nimport {escapeHTML, findSiblingsAndIndex} from \"@/utils/common/utils\";\nimport {getMaterialName} from \"@/utils/common/scenes\";\nimport EsContextmenu from \"@/components/es/EsContextmenu.vue\";\n\nconst sceneTreeRef = ref();\nconst pattern = ref(\"\");\nconst sceneTreeData = ref<TreeOption[]>([\n  {\n    label: window.$cpt(\"core.editor['Default Camera']\"),\n    key: 0,\n    isLeaf: true,\n    disabled: false,\n    prefix: getPrefixIcon(\"PerspectiveCamera\"),\n  },\n  {\n    label: window.$cpt(\"core.editor['Default Scene']\"),\n    key: 1,\n    isLeaf: true,\n    disabled: false,\n    prefix: getPrefixIcon(\"Scene\"),\n  }\n]);\nconst sceneTreeSelected = ref<Array<string | number>>([]);\nconst sceneTreeExpandedKeys = ref<number[]>([]);\n\nfunction objectSelected(object) {\n  if (object !== null && object.parent !== null) {\n    sceneTreeSelected.value = [object.id];\n    // 将此id父级递归展开\n    sceneTreeExpandedKeys.value = [App.scene.id];\n\n    function getParentId(obj) {\n      if (obj.parent.id !== App.scene.id) {\n        sceneTreeExpandedKeys.value.push(obj.parent.id);\n        getParentId(obj.parent);\n      }\n    }\n\n    getParentId(object)\n\n    //在虚拟滚动模式下滚动到某个节点\n    sceneTreeRef.value?.scrollTo({key: object.id})\n  } else {\n    sceneTreeSelected.value = [];\n  }\n}\n\n// 更新树\nfunction refreshUI() {\n  const camera = App.camera;\n  const scene = App.scene;\n\n  const _sceneTreeData: any = [];\n  _sceneTreeData.push({\n    label: window.$cpt(\"core.editor['Default Camera']\"),\n    key: camera.id,\n    isLeaf: true,\n    disabled: (App.locked && App.locked.uuid !== camera.uuid),\n    prefix: getPrefixIcon(camera.type),\n  });\n\n  const sceneDisabled = (App.locked && App.locked.uuid !== scene.uuid) as boolean;\n  _sceneTreeData.push({\n    label: window.$cpt(\"core.editor['Default Scene']\"),\n    key: scene.id,\n    isLeaf: false,\n    disabled: sceneDisabled,\n    prefix: getPrefixIcon(scene.type),\n    // children: App.locked ? (function (){\n    //   if([scene.uuid,camera.uuid].includes(App.locked.uuid)){\n    //     return [];\n    //   }else {\n    //     return [getTreeData(App.locked)];\n    //   }\n    // })() : addObjects(scene)\n    children: addObjects(scene, sceneDisabled)\n  });\n\n  if (sceneTreeExpandedKeys.value.length === 0) {\n    sceneTreeExpandedKeys.value = [scene.id];\n  }\n\n  function getTreeData(object3D, disabled = true) {\n    const data: TreeOption = {\n      label: escapeHTML(object3D.name),\n      key: object3D.id,\n      isLeaf: object3D.children.length === 0,\n      disabled: App.locked ? disabled : false,\n      prefix: getPrefixIcon(object3D.type),\n    }\n    if (!data.isLeaf) {\n      data.children = addObjects(object3D, disabled);\n    }\n\n    if (object3D.isMesh) {\n      const geometry = object3D.geometry;\n      const material = object3D.material;\n\n      data.suffix = () => {\n        return h('div', {class: \"ml-4 text-12px\"}, [\n          h(\n              NBadge,\n              {dot: true, type: 'success'},\n              {},\n          ),\n          h(NEllipsis, {class: \"!max-w-100px\"}, {\n            default: () => h(\"span\", {class: 'ml-1 mr-2'}, {default: () => escapeHTML(geometry.name)})\n          }),\n          h(\n              NBadge,\n              {dot: true, type: 'warning'},\n              {},\n          ),\n          h(NEllipsis, {class: \"!max-w-100px\"}, {\n            default: () => h(\"span\", {class: 'ml-1 mr-2'}, {default: () => escapeHTML(getMaterialName(material))})\n          }),\n\n        ])\n      }\n    }\n\n    return data;\n  }\n\n  function addObjects(object3D, disabled = true) {\n    const childArr: TreeOption[] = [];\n\n    if (object3D.ignore) return childArr;\n\n    //for循环 为大场景提升遍历效率\n    for (let i = 0, l = object3D.children.length; i < l; i++) {\n      let _disabled = disabled;\n\n      const child = object3D.children[i];\n\n      if (child.ignore) continue;\n\n      if (_disabled) {\n        _disabled = (App.locked && App.locked.uuid !== child.uuid) as boolean;\n      }\n\n      childArr.push(getTreeData(child, _disabled));\n    }\n\n    return childArr;\n  }\n\n  if (App.selected !== null) {\n    sceneTreeSelected.value = [App.selected.id];\n  }\n\n  sceneTreeData.value = _sceneTreeData;\n}\n\n// 获取节点前缀图标\nfunction getPrefixIcon(type: string) {\n  const getIconRender = (icon: any) => {\n    return h(\n        NIcon,\n        {size: 16},\n        {default: () => h(icon)}\n    )\n  }\n\n  switch (type) {\n    case \"PerspectiveCamera\":\n    case \"OrthographicCamera\":\n      return () => getIconRender(Camera);\n    case \"Light\":\n    case \"AmbientLight\":\n    case \"DirectionalLight\":\n    case \"HemisphereLight\":\n    case \"PointLight\":\n    case \"SpotLight\":\n    case \"RectAreaLight\":\n      return () => getIconRender(Light);\n    case \"Scene\":\n      return () => getIconRender(Schematics);\n    case \"Group\":\n      return () => getIconRender(Folder);\n    case \"Mesh\":\n    case \"SkinnedMesh\":\n      return () => getIconRender(Cube);\n    case \"BatchedMesh\":\n    case \"InstancedMesh\":\n      return () => getIconRender(ModelAlt);\n    case \"Line\":\n    case \"LineLoop\":\n    case \"LineSegments\":\n      return () => getIconRender(Draw);\n    case \"Points\":\n      return () => getIconRender(Network1);\n    case \"Bone\":\n      return () => getIconRender(FloatingIp);\n    case \"Skeleton\":\n      return () => getIconRender(Soccer);\n    case 'Sprite':\n      return () => getIconRender(Image);\n    case \"Particle\":\n      return () => getIconRender(HeatMap);\n    case \"Billboard\":\n      return () => getIconRender(LocationHeart);\n    case \"HtmlPanel\":\n    case \"HtmlSprite\":\n      return () => getIconRender(LocationCompany);\n    default:\n      return () => getIconRender(Cube);\n  }\n}\n\n//移动模型\nfunction moveObject(object, newParent, nextObject) {\n  if (nextObject === null) nextObject = undefined;\n\n  let newParentIsChild = false;\n\n  object.traverse(function (child) {\n    if (child === newParent) newParentIsChild = true;\n  });\n\n  if (newParentIsChild) return;\n\n  App.execute(new MoveObjectCommand(object, newParent, nextObject));\n}\n\n/**\n * 处理树节点拖动\n * @param node 拖动到的目标位置节点\n * @param dragNode 被拖动的节点\n * @param dropPosition 拖动到的相对于目标节点的位置\n */\nfunction handleSceneTreeDrop({node, dragNode, dropPosition}: TreeDropInfo) {\n  //无法移动到默认场景之外\n  if (node.label === window.$t(\"core.editor['Default Camera']\") || node.label === window.$t(\"core.editor['Default Scene']\")) return;\n  // 要拖动到的目标模型\n  const targetParentObject3D = App.scene.getObjectById(Number(node.key));\n  if(!targetParentObject3D) return;\n  // 被拖动的模型\n  const dragObject3D = App.scene.getObjectById(Number(dragNode.key));\n\n  const [dragNodeSiblings, dragNodeIndex] = findSiblingsAndIndex(dragNode, sceneTreeData.value);\n  if (dragNodeSiblings === null || dragNodeIndex === null) return;\n  //在被拖动节点的父级中删除该节点\n  dragNodeSiblings.splice(dragNodeIndex, 1);\n\n  switch (dropPosition) {\n    case \"inside\":\n      if (node.children) {\n        node.children.unshift(dragNode)\n      } else {\n        node.children = [dragNode];\n        node.isLeaf = false;\n      }\n      // 移动模型\n      moveObject(dragObject3D, targetParentObject3D, null);\n      break;\n    case \"before\":\n      // 寻找目标位置节点的父级及该节点的索引\n      const [_nodeSiblings, _nodeIndex] = findSiblingsAndIndex(node, sceneTreeData.value);\n      if (_nodeSiblings === null || _nodeIndex === null) return;\n      _nodeSiblings.splice(_nodeIndex, 0, dragNode);\n      // 移动模型\n      moveObject(dragObject3D, targetParentObject3D.parent, targetParentObject3D);\n      break;\n    case \"after\":\n      const [nodeSiblings, nodeIndex] = findSiblingsAndIndex(node, sceneTreeData.value);\n      if (nodeSiblings === null || nodeIndex === null) return\n      nodeSiblings.splice(nodeIndex + 1, 0, dragNode);\n      // 移动模型\n      moveObject(dragObject3D, targetParentObject3D.parent, targetParentObject3D.parent?.children[targetParentObject3D.parent?.children.indexOf(targetParentObject3D) + 1]);\n      break;\n  }\n\n  sceneTreeData.value = Array.from(sceneTreeData.value);\n}\n\n// 判断树节点是否可拖动到对应选择位置（拖动到内部时只能是Group / Scene）\nfunction allowDrop({dropPosition, node}) {\n  if (dropPosition === \"inside\") {\n    // 要拖动到的目标模型\n    const targetParentObject3D = App.scene.getObjectById(Number(node.key));\n\n    if (targetParentObject3D?.type !== \"Group\" && targetParentObject3D?.type !== \"Scene\") {\n      return false\n    }\n  }\n\n  return true;\n}\n\n//场景树节点选中/取消选中事件\nfunction handlerTreeSelectChange(keys: Array<number>, _: Array<TreeOption>, meta: {\n  node: TreeOption,\n  action: 'select' | 'unselect'\n}) {\n  sceneTreeSelected.value = keys;\n  if (meta.action === \"select\") {\n    App.selectById(keys[0]);\n  } else {\n    App.deselect();\n  }\n}\n\n// 场景树节点点击事件，主要用于配合右键菜单\nfunction nodeProps({option}: { option: TreeOption }) {\n  return {\n    onContextmenu(e: MouseEvent): void {\n      e.preventDefault();\n      if ([App.camera.id, App.scene.id].includes(option.key as number)) return;\n\n      contextmenuRef.value?.show(e.clientX, e.clientY);\n\n      contextmenuTreeOption.value = option;\n    }\n  }\n}\n\n/* 右键菜单 */\nconst contextmenuRef = ref();\nconst contextmenuOptions = [\n  {\n    label: t(\"other.Focus\"),\n    key: 'focus'\n  }\n];\nconst contextmenuTreeOption = ref<TreeOption | null>(null);\n\nfunction handleContextmenuSelect(key: string) {\n  if (!contextmenuTreeOption) return;\n\n  const object = App.scene.getObjectById(contextmenuTreeOption.value?.key as number);\n\n  if(!object) return;\n\n  switch (key) {\n    case \"focus\":\n      App.focus(object);\n      break;\n    case \"delete\":\n      const parent = object.parent;\n      if (parent !== null) App.execute(new RemoveObjectCommand(object));\n      break;\n    case \"clone\":\n      const _object = object.clone();\n\n      App.execute(new AddObjectCommand(_object));\n      break;\n  }\n}\n\nonMounted(async () => {\n  // 此signal必须在nextTick方法前注册，否则会造成viewer中已分发此处却尚未监听\n  Hooks.useAddOnceSignal(\"viewerInitCompleted\",(viewer) => {\n    if(viewer.edit?.enabled){\n      contextmenuOptions.push({\n        label: t(\"home.Delete\"),\n        key: 'delete'\n      },{\n        label: t(\"layout.header.Clone\"),\n        key: 'clone'\n      })\n    }\n  });\n\n  await nextTick();\n  refreshUI();\n\n  Hooks.useAddSignal(\"sceneCleared\", refreshUI);\n  Hooks.useAddSignal(\"sceneTreeChange\", refreshUI);\n  Hooks.useAddSignal(\"objectAdded\", refreshUI);\n  Hooks.useAddSignal(\"objectRemoved\", refreshUI);\n  Hooks.useAddSignal(\"objectSelected\", objectSelected);\n  Hooks.useAddSignal(\"objectLocked\", refreshUI);\n  Hooks.useAddSignal(\"objectUnlocked\", refreshUI);\n})\n\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"sceneCleared\", refreshUI);\n  Hooks.useRemoveSignal(\"sceneTreeChange\", refreshUI);\n  Hooks.useRemoveSignal(\"objectAdded\", refreshUI);\n  Hooks.useRemoveSignal(\"objectRemoved\", refreshUI);\n  Hooks.useRemoveSignal(\"objectSelected\", objectSelected);\n  Hooks.useRemoveSignal(\"objectLocked\", refreshUI);\n  Hooks.useRemoveSignal(\"objectUnlocked\", refreshUI);\n})\n</script>\n\n<template>\n  <n-input v-model:value=\"pattern\" :placeholder=\"t('layout.sider.scene.Search')\"/>\n  <n-tree ref=\"sceneTreeRef\" virtual-scroll :pattern=\"pattern\" :data=\"sceneTreeData\" v-model:selected-keys=\"sceneTreeSelected\"\n          :show-irrelevant-nodes=\"false\" v-model:expanded-keys=\"sceneTreeExpandedKeys\" draggable :allow-drop=\"allowDrop\"\n          :node-props=\"nodeProps\" @drop=\"handleSceneTreeDrop\" @update:selected-keys=\"handlerTreeSelectChange\" block-line\n  />\n\n  <EsContextmenu ref=\"contextmenuRef\" placement=\"right-start\" trigger=\"manual\" size=\"small\"\n                 :options=\"contextmenuOptions\" @select=\"handleContextmenuSelect\"/>\n</template>\n\n<style lang=\"less\" scoped>\n.n-input {\n  margin-bottom: 10px;\n  height: 34px;\n}\n\n.n-tree {\n  height: calc(100% - 44px);\n  width: 100%;\n  overflow-x: auto;\n\n  :deep(.n-tree-node-wrapper) {\n    white-space: nowrap;\n  }\n\n  :deep(.n-tree-node-content__text) {\n    flex-grow: unset;\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/config/service.ts",
    "content": "/** 错误信息的显示时间 */\nexport const ERROR_MSG_DURATION = 3 * 1000;\n\n/** 默认的请求错误code */\nexport const DEFAULT_REQUEST_ERROR_CODE = 'DEFAULT';\n\n/** 默认的请求错误文本 */\nexport const DEFAULT_REQUEST_ERROR_MSG = '请求错误~';\n\n/** 请求超时的错误code(为固定值：ECONNABORTED) */\nexport const REQUEST_TIMEOUT_CODE = 'ECONNABORTED';\n\n/** 请求超时的错误文本 */\nexport const REQUEST_TIMEOUT_MSG = '请求超时~';\n\n/** 网络不可用的code */\nexport const NETWORK_ERROR_CODE = 'NETWORK_ERROR';\n\n/** 网络不可用的错误文本 */\nexport const NETWORK_ERROR_MSG = '网络不可用~';\n\n/** 请求不成功各种状态的错误 */\nexport const ERROR_STATUS = {\n  400: '400: 请求出现语法错误~',\n  401: '401: 用户未授权~',\n  403: '403: 服务器拒绝访问~',\n  404: '404: 请求的资源不存在~',\n  405: '405: 请求方法未允许~',\n  408: '408: 网络请求超时~',\n  500: '500: 服务器内部错误~',\n  501: '501: 服务器未实现请求功能~',\n  502: '502: 错误网关~',\n  503: '503: 服务不可用~',\n  504: '504: 网关超时~',\n  505: '505: http版本不支持该请求~',\n  [DEFAULT_REQUEST_ERROR_CODE]: DEFAULT_REQUEST_ERROR_MSG\n};\n\n/** 不弹出错误信息的code */\nexport const NO_ERROR_MSG_CODE: (string | number)[] = [];\n\n/** token失效需要刷新token的code */\nexport const REFRESH_TOKEN_CODE: (string | number)[] = [978, 998, 999];\n"
  },
  {
    "path": "packages/editor/src/core/AssetPreview.ts",
    "content": "import {Preview,Utils} from \"@astral3d/engine\";\n\nexport class AssetPreview {\n    static #instance:AssetPreview;    // 静态私有属性存储唯一实例\n    previewer: Preview;\n    private container: HTMLElement;\n\n    static getInstance(container?:HTMLElement) {\n        if (!AssetPreview.#instance) {\n            AssetPreview.#instance = new AssetPreview(container);\n        }else if(container && container !== AssetPreview.#instance.container){\n            AssetPreview.#instance.updateContainer(container);\n        }\n\n        return AssetPreview.#instance;\n    }\n\n    constructor(container?:HTMLElement) {\n        if (AssetPreview.#instance) {\n            throw new Error(\"Use AssetPreview.getInstance() instead\");\n        }\n\n        this.container = container || Utils.createDivContainer();\n\n        this.previewer = new Preview({\n            container: this.container,\n            hdr: \"/static/resource/hdr/cloudy.hdr\",\n            request: {\n                baseUrl:\"/file/static/\"\n            }\n        });\n    }\n\n    updateContainer(container:HTMLElement){\n        if(container === this.previewer.container) return;\n\n        this.container = container;\n        this.previewer.container = container;\n    }\n\n    /**\n     * 加载预览项\n     */\n    load(fileOrUrl:string | File,type:string = \"Model\"){\n        return this.previewer.load(fileOrUrl,type);\n    }\n\n    clear(){\n        this.previewer.clear();\n    }\n\n    dispose(){\n        this.previewer.dispose();\n        //@ts-ignore\n        this.previewer = null;\n        //@ts-ignore\n        AssetPreview.#instance = null;\n    }\n}"
  },
  {
    "path": "packages/editor/src/hooks/index.ts",
    "content": "import useBoolean from './useBoolean';\nimport useLoading from './useLoading';\n\nexport { useBoolean, useLoading };\n"
  },
  {
    "path": "packages/editor/src/hooks/useBoolean.ts",
    "content": "import { ref } from 'vue';\n\n/**\n * boolean组合式函数\n * @param initValue 初始值\n */\nexport default function useBoolean(initValue = false) {\n  const bool = ref(initValue);\n\n  function setBool(value: boolean) {\n    bool.value = value;\n  }\n  function setTrue() {\n    setBool(true);\n  }\n  function setFalse() {\n    setBool(false);\n  }\n  function toggle() {\n    setBool(!bool.value);\n  }\n\n  return {\n    bool,\n    setBool,\n    setTrue,\n    setFalse,\n    toggle\n  };\n}\n"
  },
  {
    "path": "packages/editor/src/hooks/useLoading.ts",
    "content": "import useBoolean from './useBoolean';\n\nexport default function useLoading(initValue = false) {\n  const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initValue);\n\n  return {\n    loading,\n    startLoading,\n    endLoading\n  };\n}\n"
  },
  {
    "path": "packages/editor/src/hooks/useWebSocket.ts",
    "content": "/**\n * @author MaHaiBing\n * @email  mlt131220@163.com\n * @date   2023/11/29 10:10\n * @description websocket hook;使用store管理websocket保证全局唯一性\n */\nimport {unref} from 'vue';\nimport { useWebSocket as $useWebSocket } from '@vueuse/core'\nimport {App} from '@astral3d/engine';\nimport {useWebsocketStoreWithOut} from \"@/store/modules/websocket\";\nimport {MathUtils} from 'three';\n\nconst websocketStore = useWebsocketStoreWithOut();\nconst listeners = new Map();\n\n/**\n * 开启 WebSocket 链接，全局只需执行一次\n * @param url\n */\nexport function connectWebSocket(url) {\n    if(url.substring(0,3).indexOf('ws') === -1){\n        if(url.indexOf('http') !== -1){\n            url = url.replace(\"http\", \"ws\")\n        }else{\n            url = location.origin.replace(\"http\", \"ws\") + url;\n        }\n    }\n\n    if (!websocketStore.getIsOpen()) {\n        // 设置订阅者标识\n        let wsUname;\n        if(!websocketStore.uname){\n            wsUname = MathUtils.generateUUID();\n            websocketStore.setUname(wsUname);\n        }else{\n            wsUname = websocketStore.uname;\n        }\n\n        const ws = $useWebSocket(`${url}?uname=${wsUname}`, {\n            // 在错误时自动重连\n            autoReconnect:{\n                // 最大重试次数。\n                retries: 3,\n                // 重新连接的延迟，以毫秒为单位\n                delay:2000,\n                // 已达到最大重试次数。\n                onFailed(){\n                    App.log.error(\"[WebSocket] 连接重试次数超限，连接失败！\");\n                }\n            },\n            // 定时发送 ping 消息\n            heartbeat: {\n                // @ts-ignore\n                message: new Uint8Array([0x9]),\n                interval: 10 * 1000,\n                pongTimeout: 10 * 1000,\n            },\n            onConnected: () => {\n                App.log.info('[WebSocket] 连接成功');\n            },\n            onDisconnected: () => {\n                App.log.info('[WebSocket] 连接关闭');\n            },\n            onMessage: (_,event) => {\n                onMessage(event);\n            },\n            onError: () => {\n                App.log.error('[WebSocket] 连接错误');\n            }\n        });\n        websocketStore.setWebsocket(ws);\n    }\n}\n\nfunction onMessage(e: MessageEvent) {\n    if (e.data === 'ping' || e.data === 'heartbeat' || e.data === 'pong' || e.data instanceof Blob) {\n        return;\n    }\n\n    App.log.debug(`[WebSocket] 收到消息： ${e.data}`);\n\n    try {\n        const data = JSON.parse(e.data);\n        for (const callback of listeners.keys()) {\n            try {\n                callback(data);\n            } catch (err) {\n                console.error(err);\n            }\n        }\n    } catch (err) {\n        App.log.error(`[WebSocket] data解析失败： ${err}`);\n    }\n}\n\n/**\n * 添加 WebSocket 消息监听\n * @param callback\n */\nexport function onWebSocket(callback: (data: object) => any) {\n    if (!listeners.has(callback)) {\n        if (typeof callback === 'function') {\n            listeners.set(callback, null);\n        } else {\n            console.debug('[WebSocket] 添加 WebSocket 消息监听失败：传入的参数不是一个方法');\n        }\n    }\n}\n\n/**\n * 解除 WebSocket 消息监听\n *\n * @param callback\n */\nexport function offWebSocket(callback: (data: object) => any) {\n    listeners.delete(callback);\n}\n\nexport function useWebSocket() {\n    return unref(websocketStore.ws);\n}\n\nexport function send(message: string | ArrayBuffer | Blob) {\n    websocketStore.send(message);\n}\n"
  },
  {
    "path": "packages/editor/src/http/api/assetsCategory.ts",
    "content": "import {request} from \"@/http/request\";\n\n/**\n * 获取资产分类树\n */\nexport function fetchAssetsCategoryTreeList(params = {type: ''}){\n    return request.get<IAssets.Category[]>(`/assets/assetsCategory/treeList`,{params});\n}"
  },
  {
    "path": "packages/editor/src/http/api/assetsInfo.ts",
    "content": "import {request} from \"@/http/request\";\n\n/**\n * 获取资产列表\n */\nexport function fetchGetAssetsList(params:Service.ListPageQueryParams){\n    return request.get<Service.ListPageResult<IAssets.Item>>(`/assets/assetsInfo/getAll`,{params});\n}\n\n/**\n * 新增资产\n */\nexport function fetchAddAsset(data:IAssets.Item){\n    return request.post<IAssets.Item>(`/assets/assetsInfo`,data);\n}\n\n/**\n * 更新资产\n */\nexport function fetchUpdateAsset(data:IAssets.Item){\n    return request.put<IAssets.Item>(`/assets/assetsInfo`,data);\n}\n\n/**\n * 移除资产\n */\nexport function fetchRemoveAsset(id:IAssets.Item['id']){\n    return request.delete(`/assets/assetsInfo/${id}`,{});\n}\n\n\n/**\n * 获取分类下的资产tags\n */\nexport function fetchGetAssetCategoryTags(type:IAssets.SupportType, category: string){\n    return request.get<string[]>(`/assets/assetsInfo/selectTags`, {\n        params:{\n            type,\n            category\n        }\n    });\n}"
  },
  {
    "path": "packages/editor/src/http/api/bim.ts",
    "content": "import {request} from \"@/http/request\";\nimport {useWebsocketStore} from \"@/store/modules/websocket\";\n\nconst websocketStore = useWebsocketStore();\n\n/**\n * 获取bim转换列表\n */\nexport function fetchGetBim2GltfList(params) {\n    return request.get<Service.ListPageResult<IBIMData>>('/editor3d/bim2gltf/getAll',{params});\n}\n\n/**\n * 上传bim文件\n */\nexport function fetchUploadRvt(data) {\n    return request.post('/editor3d//bim2gltf/uploadRvt',data,{headers:{\"Content-Type\":\"multipart/form-data\"}});\n}\n\n/**\n * 添加数据并启动revit转换（ 需传入接收结果的websocket uname）\n */\nexport function fetchAddBim2Gltf(data) {\n    return request.post('/editor3d/bim2gltf/addAndConversion',data,{params:{uname:websocketStore.uname}});\n}"
  },
  {
    "path": "packages/editor/src/http/api/cad.ts",
    "content": "import {request} from \"@/http/request\";\nimport {useWebsocketStore} from \"@/store/modules/websocket\";\n\nconst websocketStore = useWebsocketStore();\n\n/**\n * 获取cad列表\n */\nexport function fetchGetCadList(params) {\n    return request.get<Service.ListPageResult<ICad.Data>>('/editor3d/cad/getAll',{params});\n}\n\n/**\n * 添加数据并启动cad解析（ 需传入接收结果的websocket uname）\n */\nexport function fetchAddDwg2dxf(data) {\n    return request.post<ICad.Data>('/editor3d/cad/dwg2dxf',data,{params:{uname:websocketStore.uname},headers:{\"Content-Type\":\"multipart/form-data\"}});\n}"
  },
  {
    "path": "packages/editor/src/http/api/sceneExample.ts",
    "content": "/**\n * @author MaHaiBing\n * @email  mlt131220@163.com\n * @date   2024/7/28 14:54\n * @description 示例场景\n */\nimport {request} from \"@/http/request\";\nimport {Service} from \"~/network\";\n\n/**\n * 获取所有示例场景\n */\nexport function fetchSceneExampleList(params) {\n    return request.get<Service.ListPageResult<ISceneFetchData>>(\"/editor3d/sceneExample\",{params});\n}\n\n/**\n * 获取示例场景\n */\nexport function fetchSceneExample(id) {\n    return request.get(`/editor3d/sceneExample/${id}`);\n}\n\n/**\n * 新增示例场景\n */\nexport function fetchAddSceneExample(data) {\n    return request.post(`/editor3d/sceneExample`,data);\n}\n\n/**\n * 删除示例场景\n * @param {number} id\n */\nexport function fetchDeleteSceneExample(id: number) {\n    return request.delete(`/editor3d/sceneExample/${id}`,{});\n}"
  },
  {
    "path": "packages/editor/src/http/api/scenes.ts",
    "content": "import {request} from \"@/http/request\";\n\n/**\n * 获取所有工程信息\n */\nexport function fetchGetAllScenes(params:Service.ListPageQueryParams) {\n    return request.get<Service.ListPageResult<ISceneFetchData>>(\"/editor3d/scenes/getAll\",{params});\n}\n\n/**\n * 获取工程\n */\nexport function fetchGetOneScene(id:string) {\n    return request.get<ISceneFetchData>(`/editor3d/scenes/get/${id}`);\n}\n\n/**\n * 保存工程\n */\nexport function fetchAddScene(data) {\n    return request.post<ISceneFetchData>(`/editor3d/scenes/add`,data);\n}\n\n/**\n * 更新工程\n */\nexport function fetchUpdateScene(id:string,data:ISceneFetchData) {\n    return request.put<ISceneFetchData>(`/editor3d/scenes/update/${id}`,data);\n}\n\n/**\n * 删除工程\n * @param {number} id\n */\nexport function fetchDeleteScenes(id: string) {\n    return request.delete(`/editor3d/scenes/del/${id}`,{});\n}"
  },
  {
    "path": "packages/editor/src/http/api/sys.ts",
    "content": "import {request} from \"@/http/request\";\n\n/**\n * 上传\n */\nexport function fetchUpload(data:{file:File,biz:string,type?:string}) {\n    return request.post<string>(`/common/upload`,data,{headers:{\"Content-Type\":\"multipart/form-data\"}});\n}"
  },
  {
    "path": "packages/editor/src/http/request/ConcurrencyManager.ts",
    "content": "const ConcurrencyManager = (axios, MAX_CONCURRENT = 10) => {\n  if (MAX_CONCURRENT < 1)\n    throw \"并发管理器错误: 最小并发请求数为 1\";\n  let instance = {\n    queue: <any>[],\n    running: <any>[],\n    shiftInitial: () => {\n      setTimeout(() => {\n        if (instance.running.length < MAX_CONCURRENT) {\n          instance.shift();\n        }\n      }, 0);\n    },\n    push: reqHandler => {\n      instance.queue.push(reqHandler);\n      instance.shiftInitial();\n    },\n    shift: () => {\n      if (instance.queue.length) {\n        const queued = instance.queue.shift();\n        queued.resolver(queued.request);\n        instance.running.push(queued);\n      }\n    },\n    // 用作拦截器。将传出请求排队\n    requestHandler: req => {\n      return new Promise(resolve => {\n        instance.push({ request: req, resolver: resolve });\n      });\n    },\n    // 用作拦截器。在收到响应时执行排队的请求\n    responseHandler: res => {\n      instance.running.shift();\n      instance.shift();\n      return res;\n    },\n    responseErrorHandler: res => {\n      return Promise.reject(instance.responseHandler(res));\n    },\n    interceptors: {\n      request: null,\n      response: null\n    },\n    detach: () => {\n      axios.interceptors.request.eject(instance.interceptors.request);\n      axios.interceptors.response.eject(instance.interceptors.response);\n    }\n  };\n  // 对并发请求进行排队\n  instance.interceptors.request = axios.interceptors.request.use(\n    instance.requestHandler\n  );\n  instance.interceptors.response = axios.interceptors.response.use(\n    instance.responseHandler,\n    instance.responseErrorHandler,\n  );\n  return instance;\n};\n\nexport default ConcurrencyManager;\n"
  },
  {
    "path": "packages/editor/src/http/request/index.ts",
    "content": "import {createRequest} from \"./request\";\n\nexport const request = createRequest({ baseURL:\"/api\" });"
  },
  {
    "path": "packages/editor/src/http/request/instance.ts",
    "content": "import axios from 'axios';\nimport type {AxiosError, AxiosInstance, AxiosRequestConfig} from 'axios';\nimport {\n    handleAxiosError,\n    handleBackendError,\n    handleResponseError,\n    handleServiceResult,\n} from '@/utils/service';\nimport {Service} from \"../../../types/network\";\nimport ConcurrencyManager from \"./ConcurrencyManager\";\n\n/**\n * 封装axios请求类\n * @author Soybean<honghuangdc@gmail.com>\n */\nconst MAX_CONCURRENT_REQUESTS = 6;\nexport default class CustomAxiosInstance {\n    instance: AxiosInstance;\n    backendConfig: Service.BackendResultConfig;\n    manager: any;\n\n    /**\n     *\n     * @param axiosConfig - axios配置\n     * @param backendConfig - 后端返回的数据配置\n     */\n    constructor(\n        axiosConfig: AxiosRequestConfig,\n        backendConfig: Service.BackendResultConfig = {\n            codeKey: 'code',\n            dataKey: 'result',\n            msgKey: 'message',\n            successCode: 200\n        }\n    ) {\n        this.backendConfig = backendConfig;\n        this.instance = axios.create(axiosConfig);\n        this.manager = ConcurrencyManager(this.instance, MAX_CONCURRENT_REQUESTS);\n        this.setInterceptor();\n    }\n\n    /** 设置请求拦截器 */\n    setInterceptor() {\n        this.instance.interceptors.request.use(\n            async config => {\n                const handleConfig = {...config};\n                if (handleConfig.headers) {\n                }\n                return handleConfig;\n            },\n            (axiosError: AxiosError) => {\n                const error = handleAxiosError(axiosError);\n                return handleServiceResult(error, null);\n            }\n        );\n        this.instance.interceptors.response.use(\n            async response => {\n                const {status} = response;\n                if (status === 200 || status < 300 || status === 304) {\n                    const backend = response.data;\n                    // 判断返回文件流的情况\n                    if (response.headers['content-type'].includes('application/octet-stream')) {\n                        return handleServiceResult(null, backend);\n                    }\n                    const {codeKey, dataKey, successCode} = this.backendConfig;\n                    // 请求成功\n                    if (backend[codeKey] === successCode) {\n                        const keyArr = Object.values(this.backendConfig);\n                        const other = {};\n                        Object.keys(backend).forEach(item => {\n                            if (!keyArr.includes(item)) {\n                                other[item] = backend[item];\n                            }\n                        });\n                        return handleServiceResult(null, backend[dataKey], other);\n                    }\n\n                    const error = handleBackendError(backend, this.backendConfig);\n                    return handleServiceResult(error, null);\n                }\n                const error = handleResponseError(response);\n                return handleServiceResult(error, null);\n            },\n            (axiosError: AxiosError) => {\n                const error = handleAxiosError(axiosError);\n                return handleServiceResult(error, null);\n            }\n        );\n    }\n}\n"
  },
  {
    "path": "packages/editor/src/http/request/request.ts",
    "content": "import { ref } from 'vue';\nimport type { Ref } from 'vue';\nimport type { AxiosInstance, AxiosRequestConfig } from 'axios';\nimport { useBoolean, useLoading } from '@/hooks/index';\nimport CustomAxiosInstance from './instance';\nimport {Service} from \"../../../types/network\";\n\ntype RequestMethod = 'get' | 'post' | 'put' | 'delete';\n\ninterface RequestParam {\n  url: string;\n  method?: RequestMethod;\n  data?: any;\n  axiosConfig?: AxiosRequestConfig;\n}\n\n/**\n * 创建请求\n * @param axiosConfig - axios配置\n * @param backendConfig - 后端接口字段配置\n */\nexport function createRequest(axiosConfig: AxiosRequestConfig, backendConfig?: Service.BackendResultConfig) {\n  const customInstance = new CustomAxiosInstance(axiosConfig, backendConfig);\n\n  /**\n   * 异步promise请求\n   * @param param - 请求参数\n   * - url: 请求地址\n   * - method: 请求方法(默认get)\n   * - data: 请求的body的data\n   * - axiosConfig: axios配置\n   */\n  async function asyncRequest<T>(param: RequestParam): Promise<Service.RequestResult<T>> {\n    const { url } = param;\n    const method = param.method || 'get';\n    const { instance } = customInstance;\n    const res = (await getRequestResponse({\n      instance,\n      method,\n      url,\n      data: param.data,\n      config: param.axiosConfig\n    })) as Service.RequestResult<T>;\n\n    return res;\n  }\n\n  /**\n   * get请求\n   * @param url - 请求地址\n   * @param config - axios配置\n   */\n  function get<T>(url: string, config?: AxiosRequestConfig) {\n    return asyncRequest<T>({ url, method: 'get', axiosConfig: config });\n  }\n\n  /**\n   * post请求\n   * @param url - 请求地址\n   * @param data - 请求的body的data\n   * @param config - axios配置\n   */\n  function post<T>(url: string, data?: any, config?: AxiosRequestConfig) {\n    return asyncRequest<T>({ url, method: 'post', data, axiosConfig: config });\n  }\n  /**\n   * put请求\n   * @param url - 请求地址\n   * @param data - 请求的body的data\n   * @param config - axios配置\n   */\n  function put<T>(url: string, data?: any, config?: AxiosRequestConfig) {\n    return asyncRequest<T>({ url, method: 'put', data, axiosConfig: config });\n  }\n\n  /**\n   * delete请求\n   * @param url - 请求地址\n   * @param config - axios配置\n   */\n  function handleDelete<T>(url: string, config: AxiosRequestConfig) {\n    return asyncRequest<T>({ url, method: 'delete', axiosConfig: config });\n  }\n\n  return {\n    get,\n    post,\n    put,\n    delete: handleDelete\n  };\n}\n\ninterface RequestResultHook<T = any> {\n  data: Ref<T | null>;\n  error: Ref<Service.RequestError | null>;\n  loading: Ref<boolean>;\n  network: Ref<boolean>;\n}\n\n/**\n * 创建hooks请求\n * @param axiosConfig - axios配置\n * @param backendConfig - 后端接口字段配置\n */\nexport function createHookRequest(axiosConfig: AxiosRequestConfig, backendConfig?: Service.BackendResultConfig) {\n  const customInstance = new CustomAxiosInstance(axiosConfig, backendConfig);\n\n  /**\n   * hooks请求\n   * @param param - 请求参数\n   * - url: 请求地址\n   * - method: 请求方法(默认get)\n   * - data: 请求的body的data\n   * - axiosConfig: axios配置\n   */\n  function useRequest<T>(param: RequestParam): RequestResultHook<T> {\n    const { loading, startLoading, endLoading } = useLoading();\n    const { bool: network, setBool: setNetwork } = useBoolean(window.navigator.onLine);\n\n    startLoading();\n    const data = ref<T | null>(null) as Ref<T | null>;\n    const error = ref<Service.RequestError | null>(null);\n\n    function handleRequestResult(response: any) {\n      const res = response as Service.RequestResult<T>;\n      data.value = res.data;\n      error.value = res.error;\n      endLoading();\n      setNetwork(window.navigator.onLine);\n    }\n\n    const { url } = param;\n    const method = param.method || 'get';\n    const { instance } = customInstance;\n\n    getRequestResponse({ instance, method, url, data: param.data, config: param.axiosConfig }).then(\n      handleRequestResult\n    );\n\n    return {\n      data,\n      error,\n      loading,\n      network\n    };\n  }\n\n  /**\n   * get请求\n   * @param url - 请求地址\n   * @param config - axios配置\n   */\n  function get<T>(url: string, config?: AxiosRequestConfig) {\n    return useRequest<T>({ url, method: 'get', axiosConfig: config });\n  }\n\n  /**\n   * post请求\n   * @param url - 请求地址\n   * @param data - 请求的body的data\n   * @param config - axios配置\n   */\n  function post<T>(url: string, data?: any, config?: AxiosRequestConfig) {\n    return useRequest<T>({ url, method: 'post', data, axiosConfig: config });\n  }\n  /**\n   * put请求\n   * @param url - 请求地址\n   * @param data - 请求的body的data\n   * @param config - axios配置\n   */\n  function put<T>(url: string, data?: any, config?: AxiosRequestConfig) {\n    return useRequest<T>({ url, method: 'put', data, axiosConfig: config });\n  }\n\n  /**\n   * delete请求\n   * @param url - 请求地址\n   * @param config - axios配置\n   */\n  function handleDelete<T>(url: string, config: AxiosRequestConfig) {\n    return useRequest<T>({ url, method: 'delete', axiosConfig: config });\n  }\n\n  return {\n    get,\n    post,\n    put,\n    delete: handleDelete\n  };\n}\n\nasync function getRequestResponse(params: {\n  instance: AxiosInstance;\n  method: RequestMethod;\n  url: string;\n  data?: any;\n  config?: AxiosRequestConfig;\n}) {\n  const { instance, method, url, data, config } = params;\n\n  let res: any;\n  if (method === 'get' || method === 'delete') {\n    res = await instance[method](url, config);\n  } else {\n    res = await instance[method](url, data, config);\n  }\n  return res;\n}\n"
  },
  {
    "path": "packages/editor/src/language/index.ts",
    "content": "import type { App } from 'vue';\nimport { computed,ComputedRef } from 'vue';\nimport { createI18n } from 'vue-i18n';\nimport {useGlobalConfigStoreWithOut} from \"@/store/modules/globalConfig\";\n\nconst globalConfigStore = useGlobalConfigStoreWithOut();\n\n//引入同级目录下所有语言文件\nconst modules = (import.meta as any).glob('./*.ts', {eager: true});\n\ntype Message = {\n    [s: string]: {} | undefined\n}\ntype ReturnMessage = {\n    'zh-CN': {},\n    'en-US': {},\n    [s: string]: {}\n}\nconst getLangAll = (): ReturnMessage => {\n    let message: Message = {};\n    getLangFiles(modules, message);\n    return message as ReturnMessage;\n}\n\ntype LangFilesList = {\n    [s: string]: { default: { [s: string]: string } }\n}\n/**\n * 获取所有语言文件\n * @param {Object} langFilesList\n * @param {Object} msg\n */\nconst getLangFiles = (langFilesList: LangFilesList, msg: Message) => {\n    for (let path in langFilesList) {\n        if (langFilesList[path].default) {\n            //判断中英文混合文件是否存在\n            if (/zh-CN-en-US/.test(path)) {\n                type LocaleObj = {\n                    [s: string]: any\n                }\n\n                let localeObj: LocaleObj = {\n                    'zh-CN': langFilesList[path].default,\n                    'en-US': {}\n                }\n\n                let enUSLangList = JSON.parse(JSON.stringify(langFilesList[path].default));\n                recursionSetLeaf(enUSLangList);\n                localeObj['en-US'] = enUSLangList;\n\n                // 合并\n                for (let i in localeObj) {\n                    msg[i] = msg[i] ? {\n                        ...msg[i],\n                        ...localeObj[i]\n                    } : localeObj[i];\n                }\n            } else {\n                //获取文件名\n                const fileName = path.substr(path.lastIndexOf('/') + 1, 5);\n\n                msg[fileName] = msg[fileName] ? {\n                    ...langFilesList[fileName],\n                    ...langFilesList[path].default\n                } : langFilesList[path].default;\n            }\n\n        }\n    }\n}\n\ntype LangObj = {\n    [propName:string]:any\n}\n/**\n * 递归设置叶子节点的值为键名，即英文\n * @param {LangObj} obj\n *\n */\nconst recursionSetLeaf = (obj:LangObj) =>{\n    for (let i in obj) {\n        if(typeof obj[i] === 'string'){\n            obj[i] = i;\n        }else{\n            recursionSetLeaf(obj[i]);\n        }\n    }\n}\n\n//注册i8n实例并引入语言文件\nconst i18n = createI18n({\n    legacy: false,\n    locale: globalConfigStore.locale,\n    messages: getLangAll(),\n    sync: true\n})\n\n//ts/js文件中使用\nwindow.$t = i18n.global.t;\nwindow.$cpt = (key: string):ComputedRef<string> => computed(() => i18n.global.t(key));\n\nexport function setupI18n(app: App) {\n    app.use(i18n);\n}\n\nexport function t(key: string):string {\n    return i18n.global.t(key);\n}\n\nexport function cpt(key: string): ComputedRef<string> {\n    return computed(() => i18n.global.t(key));\n}\n\nexport function setLocale(locale: IConfig.Locale) {\n    i18n.global.locale.value = locale;\n    globalConfigStore.setLocale(locale);\n}\n"
  },
  {
    "path": "packages/editor/src/language/zh-CN-en-US.ts",
    "content": "export default {\n    ErSan:\"二三\",\n    home: {\n        'Project': \"项目\",\n        'Data Center': \"数据中心\",\n        'Resource Center': \"资源中心\",\n        'Setting Center': \"设置中心\",\n        'Usage Document': \"使用文档\",\n        \"Details\": \"详情\",\n        \"Rename\": \"重命名\",\n        \"Delete\": \"删除\",\n        \"Release\": \"发布\",\n        \"Preview\": '预览',\n        \"Loading\": \"加载中\",\n        'Scroll to load more': \"滚动加载更多\",\n        'No more': \"没有更多了\",\n        /* 项目 */\n        'My Project': \"我的项目\",\n        'Shared Project': \"共享项目\",\n        'New project': \"新建项目\",\n        \"Template\": \"模板\",\n        'Empty project': \"空项目\",\n        'A blank project without any scene elements': '不含任何场景元素的空白项目',\n        'Project default settings': '项目默认设置',\n        /* 数据中心 */\n        \"Data sources\":\"数据源\",\n        \"Data sets\":\"数据集\",\n        \"Add data source\":\"添加数据源\",\n        \"Add data set\":\"添加数据集\",\n        \"Data source config\":\"数据源配置\",\n        \"Data set config\":\"数据集配置\",\n        \"Data source name\":\"数据源名称\",\n        \"Data source type\":\"数据源类型\",\n        \"Connection string\":\"连接字符串\",\n        \"Username\":\"用户名\",\n        \"Password\":\"密码\",\n        \"Test the connection\":\"测试连接\",\n        \"Data set name\":\"数据集名称\",\n        \"Data set group\":\"数据集分组\",\n        \"Data set type\":\"数据集类型\",\n        \"Method\":\"请求方式\",\n        \"API interface\":\"API接口\",\n        \"Query only\":\"仅查询\",\n        \"Parameter is passed as \":\"参数传递形式：\",\n        \"For example:\":\"例如：\",\n        \"Data set group config\":\"数据集分组配置\",\n        \"Parent group\":\"父组\",\n        \"Group name\":\"组名称\",\n        /* 资源中心 */\n        'assets':{\n            // 主分类\n            \"Model\": \"模型\",\n            \"Material\": \"材质\",\n            \"Texture\": \"纹理\",\n            \"Billboard\": \"广告牌\",\n            \"HDR\": \"HDR\",\n            // 上传\n            \"Upload asset\":\"上传资源\",\n            \"Edit asset\":\"编辑资源\",\n            \"By previewing the screenshots\":\"通过预览截图\",\n            // 主体顶部\n            \"Search for assets\": \"搜索资源\",\n            // 详情\n            \"Name\": \"名称\",\n            \"Type\": \"类型\",\n            \"Category\": \"分类\",\n            \"Size\": \"大小\",\n            \"Tags\": \"标签\"\n        }\n    },\n    layout: {\n        header: {\n            File: '文件',\n            /* File 下的选项 */\n            'Clear Out': \"清空\",\n            Import: '导入',\n            Export: '导出',\n            'Export Object': '导出物体',\n            'Export Scene': '导出场景',\n            'PLY (Binary)': 'PLY(二进制)',\n            'STL (Binary)': 'STL(二进制)',\n            /* File 下的选项 End */\n            /* Edit 下的选项 */\n            Clone: '拷贝',\n            'Delete(Del)': '删除(Del)',\n            /* Edit 下的选项 End */\n            /* Add 下的选项 */\n            AmbientLight: '环境光',\n            DirectionalLight: '平行光',\n            HemisphereLight: '半球光',\n            PointLight: '点光源',\n            SpotLight: '聚光灯',\n\n            OrthographicCamera: '正交相机',\n            PerspectiveCamera: '透视相机',\n            /* 中间快捷操作 */\n            Fullscreen: '全屏',\n            'Exit fullscreen': '退出全屏',\n            /* 右侧操作 */\n            'Save': '保存',\n            'Save locally': '本地保存',\n            \"Use system theme\": \"跟随系统\",\n            Undertint: '浅色',\n            Dark: '深色',\n            'Main color': '主色调',\n        },\n        scene: {\n            toolbar: {\n                \"Six views\":\"六视图\",\n                Top: \"顶视图\",\n                Bottom: \"底视图\",\n                Left: \"左视图\",\n                Right: \"右视图\",\n                Front: \"前视图\",\n                Back: \"后视图\",\n                \"Scene camera\": \"场景相机\",\n                Realistic: \"真实\",\n                Solid: '原色',\n                Normals: '法向',\n                Wireframe: '线框',\n                local: '本地坐标',\n                world: '世界坐标',\n                \"Status monitoring\":\"状态监控\",\n            },\n            viewportInfo: {\n                Objects: '物体',\n                Vertices: '顶点',\n                Triangles: '三角面',\n                'Frame time': '帧时',\n            },\n        },\n        sider: {\n            Scene: '场景',\n            Project: '项目',\n            scene: {\n                Search: '搜索',\n                'Click Upload': '点击上传',\n                // 几何组件tab\n                Center: '居中',\n                Width: \"宽度\",\n                Height: \"高度\",\n                Depth: \"深度\",\n                \"Width segments\": \"宽度分段\",\n                \"Height segments\": \"高度分段\",\n                \"Depth segments\": \"深度分段\",\n                Radius: \"半径\",\n                Length: \"长度\",\n                \"Cap segments\": \"胶囊分段\",\n                \"Radial segments\": \"径向分段\",\n                Segments: \"分段\",\n                \"Theta start\": \"弧度起点\",\n                \"Theta length\": \"弧度长度\",\n                \"Radius top\": \"顶部半径\",\n                \"Radius bottom\": \"底部半径\",\n                \"Open ended\": \"开端\",\n                \"Facet segments\": \"面片分段\",\n                'Curve Segments': \"曲线段\",\n                Steps: \"细分点数\",\n                'Enabled bevel': \"启用斜角\",\n                'Bevel thickness': \"斜角厚度\",\n                'Bevel size': \"斜角大小\",\n                'Bevel offset': \"斜角偏移量\",\n                'Bevel segments': \"斜角分段\",\n                'Convert to Shape': \"转换图形\",\n                Path: \"路径\",\n                'Tubular segments': '管厚分段',\n                Closed: \"闭合\",\n                'Curve type': \"曲线类型\",\n                Tension: '张力',\n                'Phi start': \"经度起点\",\n                'Phi length': \"经度长度\",\n                Points: \"点\",\n                'Inner radius': \"内半径\",\n                'Outer radius': '外半径',\n                'Theta segments': '弧度分段',\n                'Phi segments': '经度分段',\n                Extrude: \"拉伸\",\n                Tube: '管厚',\n                Arc: \"弧度\",\n                P: \"管长弧度\",\n                Q: \"扭曲弧度\",\n            },\n            project: {\n                'please enter the scene name': '请输入场景名称',\n                'please enter the scene introduction': '请输入场景描述',\n                VR: '虚拟现实',\n                materials: '材质',\n                'select material': '选择材质',\n                assign: '应用',\n            },\n            // ------------- 20240325：重新布局 ----------------\n            \"Scene config\": '场景配置',\n            sceneConfig: {\n                \"Project information\": \"项目信息\",\n                Background: '背景',\n                Environment: '环境',\n                Grid: '网格',\n                Helpers: '辅助',\n            },\n            \"Renderer config\": '渲染器配置',\n            rendererConfig: {\n                Antialias: '抗锯齿',\n                'Tone mapping': '色调映射',\n                'Frame rate limit': '帧率限制',\n                'Low FPS': '低帧率',\n                'Medium FPS': '中等帧率',\n                'High FPS': '高帧率',\n                'Ultra high FPS': '超高帧率',\n                'Unlimited': '不设限',\n                shadows: '阴影',\n                Type: '类型',\n                \"Global illumination\":\"全局光影\",\n                Fade:\"淡出\",\n                \"Shadow far\":\"阴影远距\",\n                \"Frustum split mode\":\"视锥体分割\",\n                \"Shadow map\":\"阴影贴图\",\n                \"Light intensity\":\"光强度\",\n                \"Light color\":\"光颜色\",\n                \"Light direction x\":\"光方向X\",\n                \"Light direction y\":\"光方向Y\",\n                \"Light direction z\":\"光方向Z\",\n            },\n            \"Post processing\": \"后期处理\",\n            postProcessing: {\n                \"Anti-aliasing\": \"抗锯齿\",\n                \"Outline\": \"描边线\",\n                \"Edge Strength\": \"边缘强度\",\n                \"Edge Glow\": \"边缘发光\",\n                \"Edge Thickness\": \"边缘厚度\",\n                \"Pulse Period\": \"闪烁频率\",\n                \"Visible Edge\": \"可见边缘\",\n                \"Hidden Edge\": \"不可见边缘\",\n                \"Glow\": \"辉光\",\n                \"Radius\": \"半径\",\n                \"Threshold\": \"阈值\",\n                \"Strength\": \"强度\",\n                \"LUT Color filter\":\"LUT 颜色滤镜\",\n                \"Intensity\":\"强度\",\n                \"Afterimage\":\"运动残影\",\n                \"Damp\":\"衰减\",\n                \"Bokeh\": \"变焦\",\n                \"Focus\": \"焦距\",\n                \"Aperture\": \"孔径\",\n                \"MaxBlur\": \"最大模糊\",\n                \"Pixelate\": \"像素风\",\n                \"PixelSize\": \"像素大小\",\n                \"NormalEdgeStrength\": \"法向边缘强度\",\n                \"DepthEdgeStrength\": \"深度边缘强度\",\n                \"Use a solid color background to achieve the best rendering effect\":\"使用纯色背景以获取最佳渲染效果\",\n                \"Halftoning\": \"半色调\",\n                \"Shape\": \"形状\",\n                \"Dot\": \"点\",\n                \"Ellipse\": \"椭圆\",\n                \"Line\": \"线\",\n                \"Square\": \"正方形\",\n                \"RotateR\": \"R色旋转\",\n                \"RotateG\": \"G色旋转\",\n                \"RotateB\": \"B色旋转\",\n                \"Scatter\": \"散射\",\n                \"Blending\": \"混合度\",\n                \"BlendingMode\": \"混合模式\",\n                \"Linear\": \"线性\",\n                \"Multiply\": \"相乘\",\n                \"Add\": \"相加\",\n                \"Lighter\": \"明亮\",\n                \"Darker\": \"昏暗\",\n                \"Greyscale\": \"灰度\",\n            },\n            Weather: '天气',\n            weather: {\n                Fog: '雾',\n                Type: '类型',\n                Color: '颜色',\n                Far: '远点',\n                Near: '近点',\n                Density: '密度',\n                Rain: '雨',\n                Speed: '速度',\n                Size: '大小',\n                Radian: \"弧度\",\n                Alpha: '透明度',\n                Snow: '雪',\n                Accumulation: \"堆积\"\n            },\n            History: '历史记录',\n            history: {\n                persistent: '本地存储',\n                'Clear History': '清空历史记录',\n            },\n            Object: '对象',\n            object: {\n                type: '类型',\n                uuid: '识别码',\n                name: '名称',\n                position: '位置',\n                rotation: '旋转',\n                scale: '缩放',\n                fov: '视角',\n                left: '左',\n                right: '右',\n                top: '上',\n                bottom: '下',\n                near: '近点',\n                far: '远点',\n                intensity: '强度',\n                color: '颜色',\n                groundcolor: '基色',\n                distance: '距离',\n                angle: '角度',\n                penumbra: '边缘',\n                decay: '衰减',\n                shadow: '阴影',\n                shadowBias: '阴影偏移',\n                shadowNormalBias: '阴影法线偏移',\n                shadowRadius: '阴影边缘半径',\n                shadowIntensity: '阴影强度',\n                cast: '产生',\n                receive: '接受',\n                visible: '可见性',\n                frustumcull: '视锥体裁剪',\n                renderorder: '渲染次序',\n                userdata: '自定义数据',\n            },\n            Geometry: '几何',\n            geometry: {\n                'Compute Vertex Normals': '计算顶点法线',\n                'Afficher normales': '显示顶点法线',\n                bounds: '界限',\n                attributes: '属性',\n                index: '索引',\n            },\n            Material: '材质',\n            material: {\n                slot: '插槽',\n                Programme: '程序',\n                Info: '信息',\n                Vert: '顶点',\n                Frag: '片元',\n                Color: '颜色',\n                Specular: '高光',\n                Shininess: '高光大小',\n                Emissive: '自发光',\n                Reflectivity: '反射率',\n                Roughness: '粗糙度',\n                Metalness: '金属度',\n                Clearcoat: '清漆',\n                'Clearcoat Roughness': '清漆粗糙度',\n                Iridescence: '彩虹色',\n                'Thin-Film IOR': '彩虹色折射率',\n                'Thin-Film Thickness': '彩虹色厚度',\n                Sheen: 'Sheen',\n                'Sheen Roughness': 'Sheen Roughness',\n                'Sheen Color': 'Sheen Color',\n                Transmission: '透光',\n                'Attenuation Distance': '衰减距离',\n                'Attenuation Color': '衰减色',\n                Thickness: '厚度',\n                'Vertex Colors': '顶点颜色',\n                'Depth Packing': '深度包装',\n                Map: '贴图',\n                'Specular Map': '高光贴图',\n                'Emissive Map': '自发光贴图',\n                Matcap: '材质捕获',\n                'Alpha Map': '透明贴图',\n                'Bump Map': '凹凸贴图',\n                'Normal Map': '法线贴图',\n                'Clearcoat Normal Map': '清漆法线贴图',\n                'Displace Map': '置换贴图',\n                'Rough Map': '粗糙贴图',\n                'Metal Map': '金属贴图',\n                'Irid Map': '彩虹色贴图',\n                'Sheen Color Map': 'Sheen Color Map',\n                'Sheen Rough. Map': 'Sheen Rough. Map',\n                'Thin-Film Thickness Map': '彩虹色厚度贴图',\n                'Env Map': '环境贴图',\n                'Light Map': '光照贴图',\n                'AO Map': '环境遮挡贴图',\n                'Gradient Map': '渐变贴图',\n                'Transmission Map': '透光贴图',\n                'Thickness Map': '厚度贴图',\n                repeat: \"重复\",\n                \"repetitive mode\": \"重复模式\",\n                \"Repeat wrapping\": \"简单重复\",\n                \"Edge stretching\": \"边缘拉伸\",\n                \"Mirror duplication\": \"镜像重复\",\n                Side: '面',\n                Size: '大小',\n                'Size Attenuation': '大小衰减',\n                'Flat Shading': '平面着色',\n                Blending: '混合',\n                Opacity: '透明度',\n                Transparent: '透明性',\n                'Alpha Test': 'α测试',\n                'Depth Test': '深度测试',\n                'Depth Write': '深度缓冲',\n                Wireframe: '线框',\n            },\n            Animations: '动画',\n            animation: {\n                Play: '播放',\n                Pause: '暂停',\n                Continue: '继续',\n                Stop: '停止',\n                'Time scale': \"时间缩放\"\n            },\n            Script: '脚本',\n            script: {\n                Edit: '编辑',\n                Remove: '移除',\n                New: '新建',\n                'Please enter the script name': '请输入脚本名称',\n                'The script name already exists': '脚本名称已存在',\n            },\n            'Scene drawing': \"场景图纸\",\n            drawing: {\n                'Click to select or drag the drawing to this area': '点击选择或拖拽图纸到此区域',\n            },\n            Particle: \"粒子\",\n            particle: {\n                Attributes: \"属性\",\n                Initializers: \"初始设定\",\n                Behaviours: \"行为\",\n                'Total Emit Times': \"总发射次数\",\n                'Emitter Damping': \"发射阻尼\",\n                Duration: \"持续时间\",\n                'Quantitative range': \"数量范围\",\n                'The number range of emitted particles': \"发射粒子的数量范围\",\n                'Time interval': \"时间间隔\",\n                'The time interval between each particle emission': \"每次粒子发射之间的时间间隔\",\n                Mass: \"质量\",\n                Average: \"平均\",\n                'Determines whether to average the mass value': \"确定是否对质量值进行平均\",\n                Life: \"生命周期\",\n                'Determines whether to average the life value': \"确定是否对寿命值进行平均\",\n                Radius: \"半径\",\n                'Determines whether to average the radius value': \"确定是否对半径值进行平均\",\n                Rotation: \"旋转\",\n                'Follow parent': \"跟随父级\",\n                \"Determines if we should use the emitter's rotation as the starting rotation\": \"确定是否使用发射器的旋转作为起始旋转\",\n                'Generation region': \"生成区域\",\n                Type: '类型',\n                Box: '盒',\n                Line: '线',\n                Mesh: '模型',\n                Point: '点',\n                Sphere: '球',\n                'Start point': '起点',\n                'End point': '终点',\n                Velocity: '速度',\n                'Velocity radius': '速度半径',\n                Direction: '方向',\n                Radial: '径向',\n                Polar: '极坐标',\n                Theta: '俯仰角',\n                Phi: '方位角',\n                Vector: '矢量',\n                Body: '主体',\n                Picture: '图片',\n                'Mesh source': \"模型来源\",\n                'Built-in': '内置',\n                'A behaviour which mutates the color of a particle over time': \"随时间改变粒子颜色的行为\",\n                'Start color': \"起始颜色\",\n                'End color': \"结束颜色\",\n                Easing: '缓动',\n                'Ease linear': \"线性缓动\",\n                'Ease in quad': \"二次方缓入\",\n                'Ease out quad': \"二次方缓出\",\n                'Ease in out quad': \"二次方缓入缓出\",\n                'Ease in cubic': \"三次方缓入\",\n                'Ease out cubic': \"三次方缓出\",\n                'Ease in out cubic': \"三次方缓入缓出\",\n                'Ease in quart': \"四次方缓入\",\n                'Ease out quart': \"四次方缓出\",\n                'Ease in out quart': \"四次方缓入缓出\",\n                'Ease in sine': \"正弦缓入\",\n                'Ease out sine': \"正弦缓出\",\n                'Ease in out sine': \"正弦缓入缓出\",\n                'Ease in expo': \"指数缓入\",\n                'Ease out expo': \"指数缓出\",\n                'Ease in out expo': \"指数缓入缓出\",\n                'Ease in circ': \"圆形缓入\",\n                'Ease out circ': \"圆形缓出\",\n                'Ease in out circ': \"圆形缓入缓出\",\n                'Ease in back': \"回弹缓入\",\n                'Ease out back': \"回弹缓出\",\n                'Ease in out back': \"回弹缓入缓出\",\n                Scale: '缩放',\n                'Start scale': \"起始缩放\",\n                'End scale': \"结束缩放\",\n                'Behaviour that applies an alpha transition effect to particles': \"对粒子应用alpha过度效果\",\n                'Start alpha': \"起始Alpha\",\n                'End alpha': \"结束Alpha\",\n                Force: '力',\n                'Behaviour that forces particles along a specific axis': \"迫使粒子沿特定轴线运动的行为\",\n                Rotate: '旋转',\n                'Random drift': '随机漂移',\n                'Random force': '随机力',\n                Delay: '延迟',\n                'Behaviour that causes particles to drift to random coordinates in 3D space': \"使粒子在三维空间中随机坐标漂移的行为\",\n                Spring: '弹跳',\n                'Behaviour that causes particles to spring': \"使粒子弹跳的行为\",\n                Factor: '系数',\n                Friction: '摩擦',\n                Attraction: '吸引力',\n                'Behaviour that causes particles to be attracted to a target position': \"使粒子被吸引到目标位置的行为\",\n                'Target position': '目标位置',\n                Collision: '碰撞',\n                'Behaviour that causes particles to move away from other particles they collide with': \"使粒子远离与其碰撞的其他粒子的行为\",\n                'Mass related': '质量相关',\n                'Consider mass when calculating collision displacement': \"在计算碰撞位移时考虑质量\",\n            },\n            Billboard:\"广告牌\",\n            billboard: {\n                Image: \"图片\",\n                \"Set top\":\"置顶\",\n                Margin: \"间距\",\n                Position: \"位置\",\n                Left: \"左\",\n                Right: \"右\",\n                Top: \"上\",\n                Bottom: \"下\",\n                Center: \"居中\",\n                Text: \"文本\",\n                Content: \"内容\",\n                Size: \"大小\",\n                Color: \"颜色\",\n                Weight: \"粗细\",\n                Italic: \"斜体\",\n                'Line gap': \"行距\",\n                Padding: \"内边距\",\n                Align: \"水平对齐\",\n                'Vertical align': \"垂直对齐\",\n                'Stroke width': \"描边宽度\",\n                'Stroke color': \"描边颜色\",\n                Fill: \"背景填充\",\n                'Fill color': \"填充颜色\",\n            },\n            \"Html panel\":\"Html面板\",\n            htmlPanel: {\n                Content: \"内容\"\n            },\n        },\n        assets: {\n            'Drawing library': \"图纸库\",\n            'Scene library': \"场景库\",\n        }\n    },\n    setting: {\n        'Setting': '设置',\n        Shortcuts: '快捷键',\n        shortcuts: {\n            'Please press a key': '请按下一个键位',\n            Translate: '移动',\n            Rotate: '旋转',\n            Scale: '缩放',\n            Undo: '撤销',\n            Redo: '重做',\n            Focus: '聚焦',\n        },\n        'System Setting': \"系统设置\",\n        system: {\n            'No system Settings are available': \"暂无系统设置项\"\n        },\n        'Preview Setting': \"预览设置\",\n        preview:{\n            'Roaming character':\"漫游角色\"\n        }\n    },\n    core: {\n        'Any unsaved data will be lost. Are you sure?': '任何未保存的数据都将丢失。你确定吗?',\n        // 此场景任何未保存的数据都将丢失，是否继续?\n        'Any unsaved data in this scenario will be lost. Do you want to continue?': '任何未保存的数据都将丢失。你想继续吗?',\n        editor: {\n            \"Default Camera\": \"默认相机\",\n            \"Default Scene\": \"默认场景\",\n        }\n    },\n    other: {\n        warning: '警告',\n        Tips: '提示',\n        Ok: '确定',\n        Cancel: '取消',\n        undo: \"撤销\",\n        redo: \"重做\",\n        delete: \"删除\",\n        Action: \"操作\",\n        Version: \"版本\",\n        Loading: \"请稍后\",\n        Load: \"加载\",\n        Open: \"开启\",\n        Close: \"关闭\",\n        Enable: \"启用\",\n        Minimum: \"最小值\",\n        Maximum: \"最大值\",\n        Width: \"宽度\",\n        Height: \"高度\",\n        Depth: \"深度\",\n        Coordinate: '坐标',\n        Apply: \"应用\",\n        'Query failed': \"查询失败\",\n        'Related document': \"相关文档\",\n        Copy: \"复制\",\n        Focus: '聚焦',\n        Support: '支持',\n        Upload: '上传',\n        Debug:\"调试\",\n    },\n    /* 提示 */\n    prompt: {\n        'Disable this function in the demonstration environment!': '演示环境下禁用该功能！',\n        'The project is created successfully. Do you want to enter?': \"项目创建成功，是否进入？\",\n        'Failed to save the cover image': \"封面图保存失败\",\n        'Drag or double click to add to scene': '拖拽或双击添加至场景中',\n        'Right-click on the preview': '右键点击预览',\n        'No object selected.': '未选择任何对象。',\n        'No geometric data for the time being': '暂无几何数据',\n        'No material data for the time being': '暂无材质数据',\n        'No animation data for the time being': '暂无动画数据',\n        \"The selected object doesn't have geometry.\": '所选对象没有几何体。',\n        'No mesh selected': '未选择Mesh',\n        'The Undo/Redo History will be cleared. Are you sure?':\n            '撤消/重做 历史记录将被清除。你确定吗?',\n        'The history will be preserved across sessions. This can have an impact on performance when working with textures.':\n            '历史记录将在多个会话之间保留。这可能会影响处理纹理时的性能。',\n        'Import of glTF asset not possible. Only versions >= 2.0 are supported. Please try to upgrade the file to glTF 2.0 using glTF-Pipeline': \"无法导入gltf资产。仅支持大于等于2.0的版本。请尝试使用gltf-Pipeline将文件升级到gltf 2.0\",\n        'Are you sure to delete the scene?': \"您确定要删除该场景吗？\",\n        'Are you sure to update the scene?': \"确定更新该场景吗？\",\n        'Uploading': \"正在上传中\",\n        'Please try again later!': \"请稍后重试！\",\n        \"Load fail,Please try again later!\": \"加载失败，请稍后重试\",\n        'There are grammatical errors!': \"存在语法错误！\",\n        'Saved successfully!': \"保存成功！\",\n        'Parameter error!': \"参数错误！\",\n        \"Parse failed\": \"解析失败\",\n        \"Related modules are under development, unstable versions.\": \"相关模块正在开发中，非稳定版本。\",\n        \"Left click to confirm the drawing point, and right click to complete the drawing.\": \"单击左键确认绘制点,单击右键完成此次绘制\",\n        \"Your browser does not support the Clipboard API, please use another browser\": \"您的浏览器不支持 Clipboard API，请使用其他浏览器\",\n        \"Successfully copied to clipboard\": \"已成功复制到剪贴板\",\n        \"Failed to copy to clipboard\": \"复制到剪贴板失败。\",\n        \"Please enter the animation name\": \"请输入动画名称\",\n        \"The name already exists\": \"该名称已存在\",\n        \"Failed to create animation\": \"创建动画失败\",\n        \"Please select an animation\": \"请先选择一个动画\",\n        \"The animation is running, please stop the animation before performing operations\": \"当前动画正在运行中，请先停止动画再进行操作\",\n        \"Can not be applied to the current object\":\"无法应用至当前物体\",\n        'Please enter the text': '请输入文本',\n        'Click to select or drag the file to this area': '点击选择或拖拽文件到此区域',\n        'Uploading a new file will completely overwrite the original content, do you want to continue?':\"上传新文件将完全覆盖原来的内容，是否继续？\",\n        'Are you sure you want to delete this resource?': \"您确定要删除该资源吗？\",\n        'Are you sure you want to delete it?': \"您确定要删除吗？\",\n        'Please enter a data source name': \"请输入数据源名称\",\n        'Please enter a name for the dataset': \"请输入数据集名称\",\n        'Please enter a grouping name for the dataset': \"请输入数据集分组名称\",\n        'This format is not supported, please upload again! Supported formats are:':\"不支持该格式，请重新上传！支持格式为：\",\n        'The entry can not be null':\"该项不能为空\",\n        'Only Chinese characters, Chinese and English case, numbers, and underscores can be included':\"只能包含汉字、中英文大小写、数字和下划线\",\n        'Failed to upload': \"上传失败\",\n        'Success to upload': \"上传成功\",\n        'Success to update': \"更新成功\",\n        'Success to delete': \"删除成功\",\n        'Screenshots fail': \"截图失败\",\n    },\n    /* 三维场景相关 */\n    scene: {\n        'All Projects': \"全部工程\",\n        'Type': \"场景类型\",\n        'Name': \"场景名称\",\n        'Introduction': \"场景说明\",\n        'Classification': \"场景分类\",\n        'Project type': \"项目类型\",\n        'Cover Picture': \"封面\",\n        'Screenshot': \"截图\",\n        'Include drawings': \"包含图纸\",\n        'Scene data volume': \"场景数据量\",\n        'Create time': '创建时间',\n        'Update time': '更新时间',\n        'Get the scene data': \"获取场景数据中\",\n        'Failed to get scene data': \"获取场景数据失败\",\n        'Generate scene data, please wait': \"生成场景数据，请稍后\",\n        'Scene data is being regenerated, please wait': \"场景数据正在重新生成，请稍后\",\n        'Scene information is being saved': \"场景信息保存中\",\n        'Getting texture': \"正在获取贴图\",\n        'Getting geometries': '正在获取几何体数据',\n        'Getting models': '正在获取模型',\n        'Parsing to editor': \"正在解析至编辑器中\",\n        'Loading completed!': \"加载完成！\",\n        'Failed to save project!': \"保存工程失败！\",\n        'Scene is packing...': \"场景正在打包...\",\n        'Scene is unpacking...': \"场景正在解包...\",\n        'Scene is being compressed...': \"场景正在压缩...\",\n        'The project does not exist!': \"该工程不存在!\",\n    },\n    /* 图纸相关 */\n    drawing: {\n        Drawing: \"图纸\",\n        \"Get the drawing data\": \"获取图纸数据中\",\n        \"This operation will overwrite the current drawing, and any unsaved data will be lost. Do you want to continue?\": \"此操作会覆盖当前图纸，任何未保存的数据都将丢失，是否继续？\",\n        \"adds the current model tag\": \"新增当前模型标记\",\n        'Please select the model you want to tag': '请选择您想要标记的模型',\n        \"The current model has been tagged\": \"当前模型已被标记\",\n        \"Left-drag to add a mark\": \"按住左键拖动以添加标记\",\n        \"drawing reset\": \"图纸复位\",\n        \"Are you sure you want to delete the drawing?\": \"确定要删除图纸吗？\",\n        \"Select the mark whose color you want to change!\": \"请选择要修改颜色的标记！\",\n        'Please upload the drawing file': \"请上传图纸文件\",\n        \"This format is not supported, please upload again! Supported formats are:\": \"不支持该格式，请重新上传！支持格式为：\",\n        toolbar: {\n            \"Mark color\": \"标记颜色\",\n            \"Reset\": \"复位\",\n            \"Layer\": \"图层\",\n            \"Add mark\": \"新增标记\",\n            \"Delete\": \"删除\",\n            \"Setting\": \"设置\"\n        }\n    },\n    bim: {\n        \"BIM lightweight\": \"BIM轻量化\",\n        \"BIM lightweight is in progress\": \"BIM轻量化正在进行中\",\n        \"BIM lightweight completed\": \"BIM轻量化完成\",\n        \"BIM lightweight failed\": \"BIM轻量化失败\",\n        Thumbnail: \"缩略图\",\n        'BIM file': \"BIM文件\",\n        \"Click or drag the file to this area.Supported formats are:\": \"点击或者拖动文件到该区域，支持格式为：\",\n        \"File name\": \"文件名\",\n        \"Please enter the BIM file name\": \"请输入BIM文件名称\",\n        'Please upload the BIM file': \"请上传BIM文件\",\n        \"Upload and lightweight\": \"上传并轻量化\",\n        \"Failed to upload thumbnail\": \"缩略图上传失败\",\n        'Failed to upload BIM file': \"BIM文件上传失败\",\n        In: \"用时\",\n        seconds: \"秒\",\n        \"Whether to load the BIM model into the scene?\": \"是否加载该BIM模型至场景中？\",\n        \"New lightweight BIM model received, do you want to view it?\": \"接收到新的轻量化BIM模型，是否查看？\",\n        \"Conversion configuration\": \"转换配置\",\n        \"Extreme lightweight\": \"极致轻量化\",\n        \"Export Property\": \"导出属性\",\n        \"Conversion view\": \"转换视图\",\n        \"View name\": \"视图名称\",\n        \"Please enter the conversion view name\": \"请输入转换视图名称\",\n        \"Display style\": \"视觉样式\",\n        \"Colour\": \"着色\",\n        \"Realistic\": \"真实\",\n        \"View default\": \"视图默认\",\n        \"Coordinate reference\": \"坐标参考\",\n        \"Origin\": \"原点\",\n        \"Project base point\": \"项目基点\",\n        \"Measuring point\": \"测量点\"\n    },\n    cad: {\n        \"CAD parse\": \"CAD解析\",\n        \"CAD upload and parse\": \"CAD上传解析\",\n        \"CAD file\": \"CAD 文件\",\n        \"Upload and parse\": \"上传并解析\",\n        \"CAD parse is in progress\": \"CAD正在解析中\",\n        \"Failed to upload CAD file\": \"上传CAD文件失败\",\n        \"CAD parse completed\": \"CAD解析完成\",\n        \"Do you want to load the preview?\": \"是否加载预览？\",\n        \"CAD parse failed\": \"CAD解析失败\",\n    },\n    preview: {\n        \"Scene Tree\": \"场景树\",\n        // 操作栏\n        \"Main view\": \"主视角\",\n        \"Auto rotation\": \"自动旋转\",\n        'Cutting': \"剖切\",\n        'Measure': \"测量\",\n        'Distance': \"距离\",\n        'Area': \"面积\",\n        'Angle': \"角度\",\n        'Clear measuring result': \"清空测量结果\",\n        'Explode': \"爆炸\",\n        'Roaming': \"漫游\",\n        'Mini map': \"小地图\",\n        'Settings': \"设置\",\n        // 操作栏相关\n        \"Rotational speed\": \"旋转速度\",\n        'Explode scalar': \"爆炸因子\",\n        \"Please select initial position\": \"请选择初始位置\",\n    },\n    plugin: {\n        \"Optional plug-in\": \"可选插件\",\n        gltfHandler: {\n            \"The model is being optimized...\": \"模型正在优化中...\",\n            \"Select the.glb/.gltf file\": \"选择.glb/.gltf文件\",\n            \"Batch processing is supported (up to 10)\": \"支持批量处理(最多10个)\",\n            \"You can upload a maximum of 10 files\": \"最多只能上传10个文件\",\n            // form表单项\n            \"Compress\": \"压缩方式\",\n            \"Floating point compression method.\": \"浮点压缩方法。\",\n            \"compresses\": \"压缩\",\n            \"Meshopt compression level\": \"Meshopt压缩级别\",\n            \"Instance\": \"实例化网格\",\n            \"Use GPU instancing with shared mesh references.\": \"使用GPU实例化技术共享网格引用\",\n            \"Instance min\": \"实例化网格界限\",\n            \"Number of instances required for instancing.\": \"实例化网格所需的实例数,实例数低于该值的网格将不会实例化\",\n            \"Flatten\": \"展平场景树\",\n            \"Flatten scene graph.\": \"将场景内子模型对象全部展平到场景根节点。\",\n            \"This item cannot be closed when opening Join\": \"开启合并网格时此项无法关闭\",\n            \"Join\": \"合并网格\",\n            \"Join meshes and reduce draw calls.\": \"合并网格以减少渲染调用，合并后的网格无法单独选中。\",\n            \"Prerequisites: Flatten is enabled\": \"前置条件：开启展平场景树\",\n            \"Palette\": \"合并纹理\",\n            \"Creates palette textures and merges materials.\": \"创建调色板纹理并合并材质。\",\n            \"Palette min\": \"合并纹理界限\",\n            \"Minimum number of blocks in the palette texture. If fewer unique material values are found, no palettes will be generated.\": \"合并纹理所需的纹理数,纹理数低于该值将不会合并\",\n            \"Prune\": \"修剪\",\n            \"Removes properties from the file if they are not referenced by a Scene.\": \"从文件中删除未被场景引用的属性。\",\n            \"Prune attributes\": \"修剪顶点\",\n            \"Whether to prune unused vertex attributes.\": \"是否修剪未使用的顶点属性\",\n            \"Prune leaves\": \"修剪子节点\",\n            \"Whether to prune empty leaf nodes.\": \"是否修剪空的叶子节点\",\n            \"Prune solid textures\": \"修剪纹理\",\n            \"Whether to prune solid (single-color) textures,converting them to material factors.\": \"是否修剪实体(单色)纹理，将其转换为材质元素\",\n            \"Weld\": \"合并同位顶点\",\n            \"Merge equivalent vertices.\": \"合并按位相同的顶点。合并和索引后，顶点之间的数据共享效率更高。文件大小可以减小，GPU 可以更高效地使用顶点缓存。\",\n            \"This item cannot be closed when opening Simplify\": \"开启简化网格时此项无法关闭\",\n            \"Simplify\": \"简化网格\",\n            \"Simplify mesh geometry with meshoptimizer.\": \"基于 meshoptimizer 的简化算法，生成具有较少三角形和顶点的网格。简化是有损的，但该算法旨在针对给定的参数尽可能地保持视觉质量。\",\n            \"Prerequisites: Weld is enabled\": \"前置条件：开启合并同位顶点\",\n            \"Simplify error\": \"简化误差界限\",\n            \"Simplification error tolerance, as a fraction of mesh extent.\": \"简化网格误差容忍度，以网格尺寸的百分比表示\",\n            \"Simplify lock border\": \"简化锁定边界\",\n            \"Whether to lock topological borders of the mesh.\": \"是否锁定网格的拓扑边界，拓扑结构（尤其是分割顶点）会限制简化器\",\n            \"Simplify ratio\": \"简化比率\",\n            \"Target ratio (0-1) of vertices to keep.\": \"要保留的顶点的比率（0-1）\",\n            \"Texture compress\": \"纹理压缩\",\n            \"AVIF and WebP optimize transfer size;\": \"AVIF和WebP优化传输大小;\",\n            \"Auto Compresses in the original format;\": \"Auto按原始格式进行压缩;\",\n            \"none Does not compress.\": \"none表示不压缩纹理。\",\n            \"Texture size\": \"纹理最大尺寸\",\n            \"Maximum texture dimensions, in pixels.\": \"超过该尺寸的纹理将被压缩\",\n            \"Optimize\": \"优化\",\n            // 相关提示\n            \"Draco encoder load fail,Refresh the page and try again.\": \"Draco encoder加载失败，请刷新页面重试\",\n            \"Draco decoder load fail,Refresh the page and try again.\": \"Draco decoder加载失败，请刷新页面重试\",\n            \"Re-selecting the file will clear the previous optimization result. Do you want to continue?\": \"重新选择文件将会清空上一个优化结果，是否继续？\",\n            \"This operation will clear the relevant optimization results. Do you want to continue?\": \"该操作会清空相关优化结果，是否继续？\",\n            \"Import scene\": \"导入场景\",\n            \"Download\": \"下载\",\n            \"Import success!\": \"导入成功！\"\n        },\n        pointCloudReconstructor: {\n            \"The point cloud is being reconstructed...\": \"点云正在重建中...\",\n            \"Select the Point Cloud model file\": \"选择点云模型文件\",\n            \"Please semantically segment the point cloud first\": \"请先对点云进行语义化分割\",\n            \"The model is not a point cloud\": \"该模型不是点云集合\",\n            \"This operation will empty the associated reconstructions. Do you want to continue?\": \"该操作会清空相关重建结果，是否继续？\",\n            \"Re-selecting the file will empty the previous reconstruction. Do you want to continue?\": \"重新选择文件将会清空上一个重建结果，是否继续？\",\n            \"Color tolerance\":\"颜色容差\",\n            \"Color similarity processing, the larger the value, the wider the range of cluster color values.\":\"颜色相近度处理，值越大，聚类颜色值范围越广。\",\n            \"Distance threshold\":\"距离阈值\",\n            \"Control the sensitivity of object separation, that is, spatial clustering distance threshold.\":\"控制物体分离的敏感度,即空间聚类距离阈值。\",\n            \"Min cluster size\":\"最小簇大小\",\n            \"Minimum number of cluster points, filtering noise points and small clusters.\":\"最小聚类点数，过滤噪声点和小簇。\",\n            \"Downsample resolution\":\"点云抽稀\",\n            \"The grid space division method is used to reduce the number of points, so as to reduce the amount of calculation in the subsequent processing.\":\"使用网格空间划分方法减少点数,以减少后续处理的计算量。\",\n            \"Reconstruction\":\"重建\",\n        }\n    },\n    extra: {\n        \"New animation\": \"新增动画\",\n        \"Add keyframe\": \"添加关键帧\",\n        \"Locked\": \"已锁定\",\n        \"Unlocked\": \"已解锁\",\n        \"Delete selected keyframes\": \"删除选中关键帧\",\n        \"Jump to first frame\": \"跳转至第一帧\",\n        \"Jump to last frame\": \"跳转至最后一帧\",\n        resource: {\n            model: {\n                /* 模型分类 */\n                \"Shape\": \"形状\",\n                \"Building\": \"建筑\",\n                \"Person\": \"人物\",\n                \"Plant\": \"植物\",\n                \"Animal\": \"动物\",\n                \"Vehicle\": \"交通工具\",\n                \"Machine\": \"机械设备\",\n                \"Furniture\": \"室内用品\",\n                \"Outdoor\": \"室外用品\",\n                \"Other\": \"其他\",\n                /* 模型列表 */\n                // 形状\n                \"Group\": '组',\n                \"Sprite\": '精灵',\n                \"General\": '通用',\n                \"Box\": '正方体',\n                \"Circle\": '圆',\n                \"Torus\": '圆环体',\n                \"Cylinder\": '圆柱体',\n                \"Sphere\": '球体',\n                \"Plane\": '平面',\n                \"Ring\": '环',\n                \"Tetrahedron\": '四面体',\n                \"Octahedron\": '八面体',\n                \"Dodecahedron\": '十二面体',\n                \"Icosahedron\": '二十面体',\n                \"Capsule\": '胶囊',\n                'Double cone': \"双锥\",\n                \"TorusKnot\": '环面扭结体',\n                \"Tube\": '管',\n                \"Teapot\": '茶壶',\n                // 建筑\n                \"Stall\": \"货摊\",\n                // 植物\n                \"Grass\": \"草\",\n                \"Maple tree\": \"枫树\",\n                \"Dragon spruce\": \"云杉\",\n                \"Small tree\": \"小树\",\n                \"Small flower\": \"小花\",\n                \"Lemon\": \"柠檬\",\n                // 动物\n                \"Rat\": \"老鼠\",\n                // 交通工具\n                \"Covered car\": \"遮盖车\",\n                // 机械设备\n                \"Drill\": \"钻孔机\",\n                // 室内用品\n                \"Sofa\": \"沙发\",\n                \"Wooden stool\": \"木凳\",\n                // 室外用品\n                \"Wooden dining table\": \"木餐桌\",\n                // 其他\n                \"Baseball\": \"棒球\",\n            },\n            material:{\n                /* 材质分类 */\n                \"Wall brick\":\"墙砖\",\n                \"Metal\":\"金属\",\n                /* 材质列表 */\n                // 墙砖\n                \"Red brick\":\"红砖\",\n                \"Red sandstone\":\"红砂岩\",\n                \"Rustic stone wall\":\"乡村石墙\",\n                // 金属\n                \"Rusty\":\"锈蚀\",\n                \"Gold\":\"金\",\n                // Shader\n                \"Diffused color line\":\"扩散彩线\",\n                \"Dynamic checkerboard\":\"动态格子\",\n                \"Slow smoke\":\"缓动烟雾\",\n                \"Flow line\":\"流动线\",\n                \"Flicker\":\"闪烁\",\n            },\n            billboard:{\n                /* 广告牌分类 */\n                \"Icon\":\"图标\",\n                \"Text\":\"文本\",\n                /* 广告牌列表 */\n                // 图标\n                'Location':'位置',\n                'Heart':'心',\n                'Flag':'旗帜',\n                'Bookmark':'书签',\n                'Error':'错误',\n                'Correct':'正确',\n                'Warn':'警告',\n                'Notification':'通告',\n                'Notification message':'通告消息',\n                'Home':'家',\n                'Lightbulb':'灯泡',\n                'Comment':'评论',\n                'Add':'添加',\n                'Read':'阅读',\n                'Book':'书',\n                'Clock':'钟',\n                'Animal paw print':'动物脚印',\n                'Edit':'编辑',\n                'Drafts':'草稿',\n                'Refresh':'刷新',\n                'Document':'文档',\n                'Building':'建筑',\n                'Building-multiple':'多建筑',\n                'Store':'商店',\n                'Question':'问号',\n                'Download':'下载',\n                'Share':'分享',\n                'Image':'图像',\n                'Globe':'全球',\n                'Link':'链接',\n                'Chat':'聊天',\n                'Send':'发送',\n                'Send clock':'定时发送',\n                'Mail':'邮件',\n                'Cloud':'云',\n                'Database':'数据库',\n                'Diamond':'钻石',\n                'Area chart':'面积图',\n                'Bar chart':'柱状图',\n                'Line chart':'折线图',\n                'Pie chart':'饼图',\n                'Scatter chart':'散点图',\n                'Trending chart':'趋势图',\n                'Camera':'相机',\n                'Bot':'机器人',\n                'Person':'人员',\n                'People':'人群',\n                'Team':'团队',\n                'Beach':'海滩',\n                'Setting':'设置',\n                'Webcam':'网络摄像头',\n                'Speaker':'扬声器',\n                'Mic':'麦克风',\n                'Printer':'打印机',\n                'Elevator':'电梯',\n                'Room for mother and infant':'母婴室',\n                'Restroom':'卫生间',\n                'Water closet':'水厕',\n                'Parking lot':'停车场',\n                'Right arrow':'向右',\n                'Down arrow':'向下',\n                'Right arrow curving down':'向下',\n                'Right arrow curving left':'调头向左',\n                'Left arrow':'向左',\n                'Down left arrow':'左下方',\n                'Down right arrow':'右下方',\n                'Up left arrow':'左上方',\n                'Up right arrow':'右上方',\n                'Up arrow':'向上',\n                'Right arrow curving up':'向上',\n                'Bus stop':'公交站台',\n                'Bus':'公交车',\n                'Delivery truck':'货车',\n                'Taxi':'出租车',\n                'Private car':'私家车',\n                'Automobile':'小汽车',\n                'Ambulance':'救护车',\n                'Tram':'有轨电车',\n                'Train':'火车',\n                'Airplane':'飞机',\n                'ATM':'自助取款机',\n                'Factory':'工厂',\n                'Fire extinguisher':'灭火器',\n                'No smoking':'禁止吸烟',\n                'No entry':'禁止通行',\n                // 文本\n                'Background':\"信息背景\",\n                'Background2':\"信息背景2\",\n                'Background3':\"信息背景3\",\n            },\n            \"Html panel\":\"Html面板\",\n            htmlPanel:{\n                /* 分类 */\n                Technology:\"科技风\",\n                // 科技风\n                'Factory equipment':\"工厂设备\"\n            },\n            particle:{\n                // 内置粒子列表\n                Smoke: '烟雾',\n                Fire: '火焰',\n                'Fire line': \"火线\",\n                'Fire fly': '萤火虫',\n                Fireworks: '烟花',\n            },\n            \"Light\": '灯光',\n            \"Camera\": '相机',\n        }\n    }\n};"
  },
  {
    "path": "packages/editor/src/main.ts",
    "content": "import '@/utils/common/init';\n\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport { setupStore } from '@/store';\n\nimport 'virtual:uno.css';\nimport \"animate.css/animate.min.css\";\nimport '@/assets/less/index.less';\n\nimport {setupI18n} from '@/language';\nimport {setupRouter} from \"@/router\";\n\nimport DisableDevtool from 'disable-devtool';\n\nasync function main() {\n    const app = createApp(App);\n\n    setupRouter(app);\n\n    // 配置存储\n    setupStore(app);\n\n    // 多语言配置\n    setupI18n(app);\n\n    app.mount('#app');\n\n    if (import.meta.env.PROD){\n        DisableDevtool({\n            clearLog:true\n        });\n    }\n}\n\nmain();\n\n\n\n\n"
  },
  {
    "path": "packages/editor/src/plugin/glTFHandler/Listr.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/9/18 22:24\n * @description\n */\n\nexport class ListrTask {\n    // @ts-ignore\n    private title: any;\n    private taskFn: any;\n    isFailed: boolean;\n\n    constructor(title, taskFn) {\n        this.title = title;\n        this.taskFn = taskFn;\n        this.isFailed = false;\n    }\n\n    async run() {\n        try {\n            await this.taskFn(this);\n        } catch (error) {\n            this.isFailed = true;\n\n            throw error;\n        }\n    }\n}\n\nexport class Listr {\n    private tasks: ListrTask[];\n\n    constructor(tasks: { title:string,task:(task: any) => Promise<void> }[]) {\n        this.tasks = tasks.map(task => new ListrTask(task.title, task.task));\n    }\n\n    async run() {\n        for (const task of this.tasks) {\n            await task.run();\n            if (task.isFailed) {\n                break; // 如果任务失败，停止执行后续任务\n            }\n        }\n    }\n}"
  },
  {
    "path": "packages/editor/src/plugin/glTFHandler/glTFHandler.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/9/16 23:19\n * @description glTF处理器插件\n */\nimport {h, ref} from \"vue\";\nimport type {ModalReactive} from \"naive-ui\";\nimport {t} from \"@/language\";\nimport type {Plugin} from \"@astral3d/engine\";\nimport GLTFHandlerComponent from \"@/components/es/plugin/builtin/GLTFHandler.vue\";\n\nimport { MeshoptEncoder, MeshoptSimplifier } from 'meshoptimizer';\n// @ts-ignore\nimport { ready as resampleReady, resample as resampleWASM } from 'keyframe-resample';\nimport { Logger,WebIO, Transform } from '@gltf-transform/core';\nimport {\n    dedup,\n    instance,\n    prune,\n    quantize,\n    resample,\n    weld,\n    meshopt,\n    draco,\n    simplify,\n    textureCompress,\n    flatten,\n    join,\n    sparse,\n    palette,\n} from '@gltf-transform/functions';\nimport { ALL_EXTENSIONS } from '@gltf-transform/extensions';\nimport {Session} from \"./session\";\nimport {loadScript} from \"@/utils/common/utils\";\nimport { optimizePNG } from \"@/plugin/glTFHandler/optimizePng\";\n\n//使用'micromatch'，因为'contains: true'没有像预期的那样在minimatch中工作。需要确保'*'匹配的模式，如'image/png'。\nexport const MICROMATCH_OPTIONS = { nocase: true, contains: true };\n\nexport default class GLTFHandler implements Plugin{\n    icon= \"\";\n    name = \"glTF处理器\";\n    version = 1;\n\n    logger = new Logger(Logger.Verbosity.INFO);\n    io = new WebIO({credentials: 'include'}).registerExtensions(ALL_EXTENSIONS);\n\n    modalInstance:ModalReactive | undefined = undefined;\n    GLTFHandlerComponentRef = ref();\n    dracoScript = new Proxy({\n        encoder:false,\n        decoder:false,\n        failMsg:\"\"\n    },{\n        set:(target: {decoder: boolean;encoder: boolean;failMsg: string;}, p: string | symbol, newValue: any): boolean => {\n            target[p] = newValue;\n\n            if(p === \"failMsg\"){\n                window.$message?.error(newValue)\n                return true;\n            }\n\n            if(target.encoder && target.decoder){\n                this.registerDependencies()\n            }\n\n            return true;\n        }\n    })\n\n    async install() {\n        // console.log(`%c glTF处理器 %c 版本：1.0.0`, 'background: #35495e; padding: 4px; border-radius: 3px 0 0 3px; color: #fff',\n        //     'background: #41b883; padding: 4px; border-radius: 0 3px 3px 0; color: #fff');\n    }\n\n    async run() {\n        // 运行时再加载draco相关js\n        if(!this.dracoScript.encoder){\n            loadScript(\"/libs/draco/draco_encoder.js\",false).then(() => {\n                this.dracoScript.encoder = true;\n            }).catch(() => {\n                this.dracoScript.failMsg = t(\"plugin.gltfHandler['Draco encoder load fail,Refresh the page and try again.']\");\n            })\n        }\n        if(!this.dracoScript.decoder) {\n            loadScript(\"/libs/draco/draco_decoder.js\", false).then(() => {\n                this.dracoScript.decoder = true;\n            }).catch(() => {\n                this.dracoScript.failMsg = t(\"plugin.gltfHandler['Draco decoder load fail,Refresh the page and try again.']\");\n            })\n        }\n\n        this.GLTFHandlerComponentRef = ref();\n        this.modalInstance = window.$modal.create({\n            title: this.name,\n            preset:\"card\",\n            maskClosable:false,\n            style: {\n                width: '90%',\n                maxWidth: '800px'\n            },\n            onAfterLeave: () => this.finish(),\n            content: () => {\n                return h(GLTFHandlerComponent,{\n                    onOptimize: this.optimize.bind(this),\n                    onFinish: () => this.finish(),\n                    ref: this.GLTFHandlerComponentRef\n                },\"\")\n            },\n        })\n    }\n\n    // 关闭插件\n    finish(){\n        this.modalInstance && this.modalInstance.destroy();\n\n        this.GLTFHandlerComponentRef = ref();\n    }\n\n    uninstall(): void {}\n\n    setLogger(log:string){\n        if(!this.GLTFHandlerComponentRef.value) return;\n\n        this.GLTFHandlerComponentRef.value.addLog(log);\n    }\n\n    async registerDependencies(){\n        this.io.registerDependencies({\n            // @ts-ignore\n            'draco3d.encoder': await new DracoEncoderModule(),\n            // @ts-ignore\n            'draco3d.decoder': await new DracoDecoderModule(),\n        })\n    }\n\n    /* 下面是实现的自定义的处理器方法 */\n    async optimize(opts:IPlugin.GLTFHandlerOptimizeModel,inputFile:File,outputFileName = \"\"){\n        this.setLogger(`Optimize ${inputFile.name}`);\n\n        if(this.dracoScript.failMsg){\n            window.$message?.error(this.dracoScript.failMsg);\n            return;\n        }\n        if(!this.dracoScript.encoder || !this.dracoScript.decoder){\n            setTimeout(()=>this.optimize(opts,inputFile,outputFileName),1000)\n            return;\n        }\n\n        /* 文件准备就绪，开始优化 */\n\n        const transforms: Transform[] = [\n            optimizePNG(),\n            dedup()\n        ];\n\n        if (opts.instance) transforms.push(instance({ min: opts.instanceMin }));\n\n        if (opts.palette) {\n            transforms.push(\n                palette({\n                    min: opts.paletteMin,\n                    keepAttributes: !opts.prune || !opts.pruneAttributes,\n                }),\n            );\n        }\n\n        if (opts.flatten) transforms.push(flatten());\n        if (opts.join) transforms.push(join());\n        if (opts.weld) transforms.push(weld());\n\n        if (opts.simplify) {\n            transforms.push(\n                simplify({\n                    simplifier: MeshoptSimplifier,\n                    // simplifyError 用%显示时扩大了100倍，需要高精度计算减小100倍\n                    error: opts.simplifyError / 100,\n                    ratio: opts.simplifyRatio,\n                    lockBorder: opts.simplifyLockBorder,\n                }),\n            );\n        }\n\n        // 重新采样动画通道，无损地删除重复的关键帧以减小文件大小。重复的关键帧通常出现在由创作软件“烘焙”的动画中，以应用 IK 约束或其他软件特定功能。\n        transforms.push(resample({ ready: resampleReady, resample: resampleWASM }));\n\n        if (opts.prune) {\n            transforms.push(\n                prune({\n                    keepAttributes: !opts.pruneAttributes,\n                    keepIndices: false,\n                    keepLeaves: !opts.pruneLeaves,\n                    keepSolidTextures: !opts.pruneSolidTextures,\n                }),\n            );\n        }\n\n        transforms.push(sparse());\n\n        if (opts.textureCompress !== 'none') {\n            transforms.push(\n                textureCompress({\n                    resize: [opts.textureSize, opts.textureSize],\n                    targetFormat: opts.textureCompress === 'auto' ? undefined : opts.textureCompress,\n                    // limitInputPixels: options.limitInputPixels as boolean,\n                    limitInputPixels: false,\n                }),\n            );\n        }\n\n        // 最后进行网格压缩\n        if (opts.compress === 'draco') {\n            transforms.push(draco());\n        } else if (opts.compress === 'meshopt') {\n            transforms.push(meshopt({ encoder: MeshoptEncoder, level: opts.meshoptLevel }));\n        } else if (opts.compress === 'quantize') {\n            transforms.push(quantize());\n        }\n\n        // 设置输出文件名\n        if(!outputFileName){\n            const format = inputFile.name.split(\".\").pop();\n            outputFileName = inputFile.name.replace(`.${format}`,`_astral3d.optimize.${format}`)\n        }\n\n        // 生成临时 URL\n        const inputFileUrl = URL.createObjectURL(inputFile);\n\n        let outputFile:File | undefined = undefined\n        try {\n            outputFile = await Session.create(this,inputFileUrl, inputFile.name, outputFileName)\n                .setDisplay(true)\n                .transform(...transforms);\n\n            this.setLogger(`Optimize ${inputFile.name} success!`);\n        }catch (e:unknown){\n            if (e instanceof Error) {\n                window.$message?.error(e.message);\n                this.setLogger(`Optimize ${inputFile.name} error: ${e.message}`);\n            } else {\n                window.$message?.error(e as string);\n                this.setLogger(`Optimize ${inputFile.name} error: ${e}`);\n            }\n        }\n\n        return outputFile;\n    }\n}"
  },
  {
    "path": "packages/editor/src/plugin/glTFHandler/optimizePng.ts",
    "content": "import type { Transform } from '@gltf-transform/core';\nimport { encodePNG } from './util';\n\nfunction asUint8Array(data: unknown): Uint8Array {\n    if (data instanceof Uint8Array) return data;\n    if (data instanceof ArrayBuffer) return new Uint8Array(data);\n    throw new Error('Unsupported texture image type');\n}\n\nexport const optimizePNG = (): Transform => async (doc) => {\n    const textures = doc.getRoot().listTextures();\n    for (const tex of textures) {\n        // 仅处理 PNG\n        if (tex.getMimeType() !== 'image/png') continue;\n\n        const image = tex.getImage();\n        if (!image || image.byteLength === 0) continue;\n\n        // 归一化为 Uint8Array\n        const imgU8 = asUint8Array(image);\n\n        const stamped = await encodePNG(imgU8);\n        tex.setImage(stamped);\n        tex.setMimeType('image/png');\n    }\n};\n"
  },
  {
    "path": "packages/editor/src/plugin/glTFHandler/session.ts",
    "content": "import { Document, WebIO, FileUtils, Transform, Format, Logger } from '@gltf-transform/core';\nimport type { Packet, KHRXMP } from '@gltf-transform/extensions';\nimport { unpartition } from '@gltf-transform/functions';\nimport { Listr } from \"./Listr\";\nimport { formatBytes, encodeGLB, XMPContext } from './util.js';\nimport GLTFHandler from \"./glTFHandler\";\n\nexport class Session {\n    private _outputFormat: Format;\n    private _display = false;\n\n    constructor(\n        private _io: WebIO,\n        private _logger: Logger,\n        private setLogger: (log: string) => void,\n        private _input: string,\n        private _inputName: string,\n        private _output: string,\n    ) {\n        _io.setLogger(_logger);\n        this._outputFormat = FileUtils.extension(_output) === 'glb' ? Format.GLB : Format.GLTF;\n    }\n\n    public static create(handler: GLTFHandler, inputFileUrl: string, inputName: string, output: string): Session {\n        return new Session(handler.io, handler.logger, handler.setLogger.bind(handler), inputFileUrl, inputName, output);\n    }\n\n    public setDisplay(display: boolean): this {\n        this._display = display;\n        return this;\n    }\n\n    public async transform(...transforms: Transform[]): Promise<File> {\n        this.setLogger(\"Start\");\n\n        let _document = this._input\n            ? (await this._io.read(this._input)).setLogger(this._logger)\n            : new Document().setLogger(this._logger);\n\n        // 警告和消除有损压缩，以避免增加往返的损失。\n        for (const extensionName of ['KHR_draco_mesh_compression', 'EXT_meshopt_compression']) {\n            const extension = _document\n                .getRoot()\n                .listExtensionsUsed()\n                .find((extension) => extension.extensionName === extensionName);\n            if (extension) {\n                extension.dispose();\n                this._logger.warn(`Decoded ${extensionName}. Further compression will be lossy.`);\n            }\n        }\n\n        if (this._display) {\n            const tasks = [] as { title: string, task: (task: any) => Promise<void> }[];\n            for (const transform of transforms) {\n                tasks.push({\n                    title: transform.name,\n                    task: async (task) => {\n                        try {\n                            this.setLogger(task.title)\n                            let time = performance.now();\n                            _document = await _document.transform(transform);\n                            time = Math.round(performance.now() - time);\n                            this.setLogger(task.title.padEnd(20) + ` ${time}ms`)\n                        } catch (error: unknown) {\n                            // @ts-ignore\n                            this.setLogger(`${task.title} run fail: ${error?.message || error}`)\n                        }\n                    },\n                });\n            }\n\n            await new Listr(tasks).run();\n        } else {\n            await _document.transform(...transforms);\n        }\n\n        await _document.transform(updateMetadata);\n\n        if (this._outputFormat === Format.GLB) {\n            await _document.transform(unpartition());\n        }\n\n        const rawU8 = await this._io.writeBinary(_document);\n\n        let outputUint8Array = rawU8;\n        try {\n            outputUint8Array = await encodeGLB(rawU8, {});\n        } catch (e: any) {\n            this._logger.warn('EncodeGLB skipped: ' + (e?.message || e));\n        }\n\n        // Uint8Array转file\n        const mimeType = this._outputFormat === Format.GLB ? \"model/gltf-binary\" : \"model/gltf+json\";\n        const blob = new Blob([outputUint8Array], { type: mimeType });\n        const outputFile = new File([blob], this._output, { type: mimeType });\n\n        const { lastReadBytes } = this._io;\n        const lastWriteBytes = outputUint8Array.byteLength;\n\n        if (!this._input) {\n            const output = FileUtils.basename(this._output) + '.' + FileUtils.extension(this._output);\n            this._logger.info(`${output} (${formatBytes(lastWriteBytes)})`);\n        } else {\n            const input = FileUtils.basename(this._inputName) + '.' + FileUtils.extension(this._inputName);\n            const output = FileUtils.basename(this._output) + '.' + FileUtils.extension(this._output);\n            this._logger.info(\n                `${input} (${formatBytes(lastReadBytes)})` + ` → ${output} (${formatBytes(lastWriteBytes)})`,\n            );\n        }\n\n        this.setLogger(\"Done\")\n\n        return outputFile;\n    }\n}\n\nfunction updateMetadata(_document: Document): void {\n    const root = _document.getRoot();\n    const xmpExtension = root\n        .listExtensionsUsed()\n        .find((ext) => ext.extensionName === 'KHR_xmp_json_ld') as KHRXMP | null;\n\n    // 不要将KHR_xmp_json_ld添加到尚未使用它的资产中。\n    if (!xmpExtension) return;\n\n    const rootPacket = root.getExtension<Packet>('KHR_xmp_json_ld') || xmpExtension.createPacket();\n\n    // xmp:MetadataDate should be the same as, or more recent than, xmp:ModifyDate.\n    // https://github.com/adobe/xmp-docs/blob/master/XMPNamespaces/xmp.md\n    const date = new Date().toISOString().substring(0, 10);\n    rootPacket\n        .setContext({ ...rootPacket.getContext(), xmp: XMPContext.xmp })\n        .setProperty('xmp:ModifyDate', date)\n        .setProperty('xmp:MetadataDate', date);\n}\n"
  },
  {
    "path": "packages/editor/src/plugin/glTFHandler/util.ts",
    "content": "import { Utils } from \"@astral3d/engine\";\n\nexport const XMPContext: Record<string, string> = {\n    dc: 'http://purl.org/dc/elements/1.1/',\n    model3d: 'https://schema.khronos.org/model3d/xsd/1.0/',\n    rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n    xmp: 'http://ns.adobe.com/xap/1.0/',\n    xmpRights: 'http://ns.adobe.com/xap/1.0/rights/',\n};\n\nexport function formatLong(x: number): string {\n    return x.toString();\n}\n\nexport function formatBytes(bytes: number, decimals = 2): string {\n    if (bytes === 0) return '0 Bytes';\n\n    const k = 1000;\n    const dm = decimals < 0 ? 0 : decimals;\n    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n    const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\n\nexport function dim(str: string): string {\n    return `\\x1b[2m${str}\\x1b[0m`;\n}\n\n/* wasm内优化处理 */\nlet wasmReady = false;\n\nasync function ensureWasmReady() {\n    if (wasmReady) return;\n    await Utils.injectWasm({ wasmUrl: \"/wasm/Astral3DglTFHandler.wasm\" });\n    wasmReady = true;\n}\n\nexport async function encodeGLB(u8: Uint8Array, meta: Record<string, any> = {}) {\n    await ensureWasmReady();\n\n    const out = window.glTFHandlerEncodeGLB(u8, JSON.stringify(meta || {}));\n    return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);\n}\n\nexport async function encodePNG(png: Uint8Array) {\n    await ensureWasmReady();\n\n    const out = window.glTFHandlerEncodePNG(png);\n    return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);\n}\n/* wasm内优化处理 End */\n"
  },
  {
    "path": "packages/editor/src/plugin/index.ts",
    "content": "import GLTFHandler from \"./glTFHandler/glTFHandler\";\nimport PointCloudReconstructor from \"./pointCloudReconstructor/PointCloudReconstructor\";\n\n// 注册内置插件\nexport const installBuiltinPlugin = (viewer) => {\n    //glTF处理器\n    viewer.modules.plugin.use(new GLTFHandler());\n    // 语义化点云重建\n    viewer.modules.plugin.use(new PointCloudReconstructor());\n}"
  },
  {
    "path": "packages/editor/src/plugin/pointCloudReconstructor/PointCloudReconstructor.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/07/03 14:20\n * @description 语义化点云重建\n */\nimport { h, ref } from \"vue\";\nimport type { ModalReactive } from \"naive-ui\";\nimport type { Plugin } from \"@astral3d/engine\";\nimport PointCloudReconstructorComponent from \"@/components/es/plugin/builtin/PointCloudReconstructor.vue\";\n\nexport default class PointCloudReconstructor implements Plugin {\n    icon = \"\";\n    name = \"语义化点云重建\";\n    version = 0.1;\n\n    modalInstance: ModalReactive | undefined = undefined;\n    componentRef = ref();\n\n    async install() {\n        // console.log(`%c 语义化点云重建 %c 版本：0.1.0`, 'background: #35495e; padding: 4px; border-radius: 3px 0 0 3px; color: #fff',\n        //     'background: #41b883; padding: 4px; border-radius: 0 3px 3px 0; color: #fff');\n    }\n\n    async run() {\n        this.componentRef = ref();\n        this.modalInstance = window.$modal.create({\n            title: this.name,\n            preset: \"card\",\n            maskClosable: false,\n            style: {\n                width: '90%',\n                maxWidth: '800px'\n            },\n            onAfterLeave: () => {\n                this.componentRef.value.handleClose();\n                this.finish();\n            },\n            content: () => {\n                return h(PointCloudReconstructorComponent, {\n                    ref: this.componentRef\n                }, \"\")\n            },\n        })\n    }\n\n    // 关闭插件\n    finish() {\n        this.modalInstance && this.modalInstance.destroy();\n\n        this.componentRef = ref();\n    }\n\n    uninstall(): void { }\n}"
  },
  {
    "path": "packages/editor/src/router/index.ts",
    "content": "import type { App } from 'vue';\nimport {createRouter, createWebHashHistory} from 'vue-router';\nimport {routes} from \"@/router/routes\";\n\nexport const router = createRouter({\n    history: createWebHashHistory(),\n    routes,\n    // 是否应该禁止尾部斜杠。默认为假\n    strict: true,\n    scrollBehavior: () => ({left: 0, top: 0}),\n});\n\nexport function setupRouter(app: App<Element>) {\n    app.use(router);\n}"
  },
  {
    "path": "packages/editor/src/router/routes.ts",
    "content": "export const routes = [\n    {\n        path: '/',\n        name: 'Home',\n        component: () => import('@/views/home/index.vue')\n    },\n    {\n        path: '/editor/:id',\n        name: 'Editor',\n        component: () => import('@/views/editor/index.vue')\n    },\n    {\n        path: '/preview/:id',\n        name: 'Preview',\n        component: () => import('@/views/preview/index.vue')\n    }\n];"
  },
  {
    "path": "packages/editor/src/store/index.ts",
    "content": "import type { App } from 'vue';\nimport { createPinia } from 'pinia';\n\nconst store = createPinia();\n\nexport function setupStore(app: App<Element>) {\n    app.use(store);\n}\n\nexport { store };"
  },
  {
    "path": "packages/editor/src/store/modules/animation.ts",
    "content": "import {reactive, toRefs, h,computed} from \"vue\";\nimport {NIcon} from 'naive-ui';\nimport type {TreeOption} from 'naive-ui'\nimport {defineStore} from 'pinia';\nimport {ConditionPoint} from '@vicons/carbon';\nimport {store} from '@/store';\nimport {t} from \"@/language\";\nimport type {TimelineTrack,ITimelineRow} from \"@astral3d/engine\";\nimport {App} from \"@astral3d/engine\";\n\nexport interface IAnimationItem {\n    name: string,\n    uuid: string,\n    isRunning: boolean,\n    isPaused: boolean,\n}\n\ninterface IAnimationState {\n    // 选中模型的动画列表\n    list: Array<IAnimationItem>,\n    // 动画编辑器当前选中的动画\n    current: IAnimationItem | null,\n    // 当前选中动画的所有轨道\n    trackTree: TreeOption[],\n    // 全局的动画播放速率\n    mixerTimeScale: number,\n    // 当前播放的时间(毫秒)\n    currentTime: number,\n    // 当前action总时长(毫秒)\n    duration: number,\n}\n\n// 动画轨道类实例\nlet timelineInstance: TimelineTrack, waitRows: ITimelineRow[] = [];\n\n/**\n * 模型动画（动画编辑器）\n */\nexport const useAnimationStore = defineStore('model-animation', () => {\n    const state = reactive<IAnimationState>({\n        list: [],\n        current: null,\n        trackTree: [],\n        mixerTimeScale: 1.0,\n        currentTime: 0,\n        duration: 0\n    })\n\n    /**\n     * getter\n     **/\n    // 动画时间帧一步的长度，默认一步走过一个像素代表1000ms (即1px代表多少ms)\n    const getStepVal = () => {\n            if (timelineInstance) {\n                return (<number>timelineInstance.timeline._options.stepVal) * timelineInstance.timeline._currentZoom / (<number>timelineInstance.timeline._options.zoom);\n            } else {\n                return 1000;\n            }\n        };\n    // 获取格式化后的总时长 00:00:00\n    const getFormattedDuration = computed(() => {\n        const _time = state.duration / 1000;\n        const hours = Math.floor(_time / 3600);\n        const minutes = Math.floor((_time - hours * 3600) / 60);\n        const seconds = _time - hours * 3600 - minutes * 60;\n        return `${hours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")}:${seconds.toFixed(0).padStart(2, \"0\")}`;\n    });\n    // 获取格式化后的播放时间 00:00:00\n    const getFormattedCurrentTime = computed(() => {\n        const _time = state.currentTime / 1000;\n        const hours = Math.floor(_time / 3600);\n        const minutes = Math.floor((_time - hours * 3600) / 60);\n        const seconds = (_time- hours * 3600 - minutes * 60).toFixed(0);\n        return `${hours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")}:${seconds.padStart(2, \"0\")}`;\n    });\n\n    /**\n     * actions\n     **/\n    const setTimelineInstance = (instance: TimelineTrack) => {\n        timelineInstance = instance;\n\n        if (waitRows.length) {\n            timelineInstance.setRows(waitRows);\n            waitRows = [];\n\n            const action = App.animationManager.actionMap.get(state.current?.uuid as string);\n            if (!action) return;\n            timelineInstance.bindAction = action;\n        }\n    }\n    // 设置动画列表\n    const setList = (_list: Array<IAnimationItem>, _current: IAnimationItem | null = null) => {\n        state.list = _list;\n        if (_current) {\n            setCurrent(_current);\n        } else {\n            setCurrent(_list.length ? _list[0] : null);\n        }\n    }\n    // 设置当前选中的动画(会刷新树列表及动画轨道)\n    const setCurrent = (value: IAnimationItem | null) => {\n        state.current = value;\n\n        if (!value) {\n            state.trackTree = [];\n            state.currentTime = 0;\n            state.duration = 0;\n\n            if (timelineInstance) {\n                timelineInstance.setRows([]);\n                timelineInstance.bindAction = null;\n                waitRows = [];\n            }\n            return;\n        }\n\n        // 取出当前动画下的所有轨道组织rows关系\n        const action = App.animationManager.actionMap.get(value.uuid);\n        if (!action) return;\n\n        const actionClip = action.getClip();\n        const actionObject = action.getRoot();\n        state.duration = actionClip.duration * 1000;\n\n        // 取出所有轨道并按名称排序\n        const tracks = [...actionClip.tracks].sort((a, b) => a.name.localeCompare(b.name));\n\n        const _trackTree: TreeOption = {\n            key: actionObject.uuid,\n            label: actionObject.name,\n            children: [],\n            isLeaf: false\n        };\n        waitRows = [{\n            id: actionObject.uuid,\n            name: actionObject.name\n        }];\n        const pathMap = new Map(); // 用于记录已有路径\n        // 处理每个轨道\n        tracks.forEach(track => {\n            const parts = track.name.split('.');\n            let currentPath = '';\n            let parentNode: TreeOption | null = null;\n\n            parts.forEach((part, index) => {\n                const isLeaf = index === parts.length - 1;\n                const nodePath = currentPath ? `${currentPath}!!${part}` : part;\n\n                if (index === 0 && (part === actionObject.name || part === actionObject.uuid)) return;\n\n                // 如果节点已存在则直接使用\n                if (pathMap.has(nodePath)) {\n                    parentNode = pathMap.get(nodePath);\n                    currentPath = nodePath;\n                    return;\n                }\n\n                // 记录到rows\n                const _row: ITimelineRow = {\n                    id: nodePath,\n                    name: part\n                }\n\n                // 创建新节点\n                const newNode: TreeOption = {\n                    key: nodePath,\n                    label: part,\n                    children: [],\n                    ...(isLeaf && {\n                        isLeaf: true,\n                        suffix: () =>\n                            h(\n                                NIcon,\n                                {\n                                    size: 16,\n                                    onClick: () => {\n                                        // 取最后一段（如 'nodeName.property[accessor]'）\n                                        const lastSegment = parts[parts.length - 1];\n                                        // 再按 '[' 分割，取第一部分（如 'property'）\n                                        let attr = lastSegment?.split('[')[0];\n                                        // 如果parts倒数第二个元素为material,则添加至前面\n                                        if(parts.length > 1 && parts[parts.length - 2] ==='material'){\n                                            attr = `material.${attr}`;\n                                        }\n                                        addKeyframe(attr);\n                                    }\n                                },\n                                {default: () => h(ConditionPoint)}\n                            ),\n                    })\n                };\n\n                // 如果是叶子节点，则写入关键帧值\n                if (isLeaf) {\n                    _row.keyframes = [];\n                    // 每个关键帧的值的长度\n                    const dataLength = Math.floor(track.values.length / track.times.length);\n                    track.times.forEach((time, i) => {\n                        _row.keyframes?.push({\n                            val: time * 1000,\n                            // @ts-ignore\n                            data: track.values.slice(i * dataLength, (i + 1) * dataLength)\n                        })\n                    })\n                    _row.track = track;\n                }\n                waitRows.push(_row);\n\n                // 挂载到父节点或根\n                if (parentNode) {\n                    parentNode.children?.push(newNode);\n                } else {\n                    _trackTree.children?.push(newNode);\n                }\n\n                // 更新路径记录\n                pathMap.set(nodePath, newNode);\n                parentNode = newNode;\n                currentPath = nodePath;\n            });\n        });\n\n        state.trackTree = [_trackTree];\n        if (timelineInstance) {\n            timelineInstance.setRows(waitRows);\n            timelineInstance.bindAction = action;\n            waitRows = [];\n\n            state.duration = timelineInstance._maxDuration;\n        }\n    }\n    const play = () => {\n        if (!state.current) return;\n\n        if (timelineInstance) {\n            timelineInstance.play();\n        } else {\n            const action = App.animationManager.actionMap.get(state.current.uuid);\n            if (!action) return;\n\n            action.play();\n            action.paused = false;\n        }\n\n        state.current.isPaused = false;\n        state.current.isRunning = true;\n    }\n    const pause = () => {\n        if (!state.current) return;\n\n        if (timelineInstance) {\n            timelineInstance.pause();\n        } else {\n            const action = App.animationManager.actionMap.get(state.current.uuid);\n            if (!action) return;\n\n            action.paused = !state.current.isPaused;\n        }\n\n        state.current.isPaused = !state.current.isPaused;\n    }\n    const stop = () => {\n        if (!state.current) return;\n\n        if (timelineInstance) {\n            timelineInstance.stop();\n        } else {\n            const action = App.animationManager.actionMap.get(state.current.uuid);\n            if (!action) return;\n\n            action.stop();\n        }\n        state.current.isPaused = false;\n        state.current.isRunning = false;\n    }\n    // 跳转至开始\n    const jumpToStart = () => {\n        if (!timelineInstance) return;\n\n        timelineInstance.timeline.setTime(0);\n    }\n    // 跳转至最后\n    const jumpToEnd = () => {\n        if (!timelineInstance) return;\n\n        timelineInstance.timeline.setTime(state.duration);\n    }\n    // 添加关键帧\n    const addKeyframe = (attr: string) => {\n        if (!state.current) {\n            window.$message?.error(t(\"prompt.Please select an animation\"));\n            return;\n        }\n\n        if (state.current.isRunning) {\n            window.$message?.error(t(\"prompt['The animation is running, please stop the animation before performing operations']\"));\n            return;\n        }\n\n        if (timelineInstance) {\n            timelineInstance.addKeyframe(attr);\n\n            state.duration = timelineInstance._maxDuration;\n        }\n    }\n    // 设置动画播放时间(单位：ms)\n    const setPlayTime = (time: number) => {\n        if (timelineInstance) {\n            timelineInstance.timeline.setTime(time);\n        }\n    };\n\n    return {\n        ...toRefs(state),\n        getStepVal,\n        getFormattedDuration,\n        getFormattedCurrentTime,\n        setTimelineInstance,\n        setList,\n        setCurrent,\n        play,\n        pause,\n        stop,\n        jumpToStart,\n        jumpToEnd,\n        addKeyframe,\n        setPlayTime\n    }\n});\n\n// setup 之外使用\nexport function useAnimationStoreWithOut() {\n    return useAnimationStore(store);\n}"
  },
  {
    "path": "packages/editor/src/store/modules/assets.ts",
    "content": "import {reactive, toRefs,markRaw} from \"vue\";\nimport {defineStore} from 'pinia';\nimport {Hdr, ImageReference, LocationHeart, ModelAlt, Opacity} from '@vicons/carbon';\nimport {store} from '@/store';\nimport {cpt} from \"@/language\";\nimport {fetchAssetsCategoryTreeList} from \"@/http/api/assetsCategory\";\nimport {markLeafNodes} from \"@/utils/common/utils\";\n\ninterface IAssetsState {\n    // 资产分类树\n    categories: IAssets.MainCategory[],\n}\n\n/**\n * 资产管理\n */\nexport const useAssetsStore = defineStore('assets-manager', () => {\n    const state = reactive<IAssetsState>({\n        categories: [\n            { key: 'Model', label: cpt(\"home.assets.Model\"), icon: markRaw(ModelAlt), children:[] },\n            { key: 'Material', label: cpt(\"home.assets.Material\"), icon: markRaw(Opacity), children:[] },\n            { key: 'Texture', label: cpt(\"home.assets.Texture\"), icon: markRaw(ImageReference), children:[] },\n            { key: 'Billboard', label: cpt(\"home.assets.Billboard\"), icon: markRaw(LocationHeart), children:[] },\n            { key: 'HDR', label: 'HDR', icon: markRaw(Hdr), children:[] }\n        ],\n    })\n\n    /**\n     * getter\n     **/\n\n\n    /**\n     * actions\n     **/\n    // 获取顶层分类子级\n    const getCategoryChildren = (category: string) => {\n        const c = state.categories.find(c => c.key === category);\n        if(!c) return [] as IAssets.Category[];\n\n        //@ts-ignore\n        markLeafNodes(category.children);\n\n        return c.children as IAssets.Category[];\n    }\n\n    // 获取资产分类树\n    const fetchCategory = async () => {\n        const res = await fetchAssetsCategoryTreeList();\n        if(res.error){\n            window.$message?.error(res.error);\n            return;\n        }\n\n        state.categories.forEach(c => {\n            c.children = [];\n        })\n\n        res.data.forEach((item:IAssets.Category) => {\n            const category = state.categories.find(c => c.key === item.type);\n            if(!category) return;\n\n            (category.children as IAssets.Category[]).push(item);\n        })\n    }\n\n\n    return {\n        ...toRefs(state),\n        getCategoryChildren,\n        fetchCategory\n    }\n});\n\n// setup 之外使用\nexport function useAssetsStoreWithOut() {\n    return useAssetsStore(store);\n}"
  },
  {
    "path": "packages/editor/src/store/modules/drag.ts",
    "content": "import { defineStore } from 'pinia';\nimport {Vector2} from \"three\";\nimport { store } from '@/store';\n\ninterface IDragState {\n    data: any,\n    actionTarget: \"\" | \"addToScene\",\n    endArea:\"\" | \"Drawing\" | \"Scene\",\n    endPosition: Vector2\n}\n\n/**\n * 拖拽相关\n */\nexport const useDragStore = defineStore({\n    id: 'drag',\n    state: () => <IDragState>({\n        // 拖拽的数据\n        data: {},\n        // 拖拽行为目的\n        actionTarget:\"\",\n        // 鼠标释放时的区域\n        endArea:\"\",\n        // 鼠标释放时的区域屏幕坐标\n        endPosition: new Vector2()\n    }),\n    getters:{\n        getData:state=> state.data,\n        getActionTarget:state=> state.actionTarget,\n    },\n    actions: {\n        setData(data:any){\n            this.data = data;\n        },\n        setActionTarget(actionTarget){\n            this.actionTarget = actionTarget;\n        },\n        setEndArea(area){\n            this.endArea = area;\n        }\n    }\n});\n\n// setup 之外使用\nexport function useDragStoreWithOut() {\n    return useDragStore(store);\n}"
  },
  {
    "path": "packages/editor/src/store/modules/globalConfig.ts",
    "content": "import {ref} from 'vue';\nimport {defineStore} from 'pinia';\nimport {darkTheme, useOsTheme} from \"naive-ui\";\nimport type {GlobalTheme} from 'naive-ui';\nimport { useStorage } from '@vueuse/core';\nimport {store} from '@/store';\nimport {generate} from '@ant-design/colors'\nimport {App} from \"@astral3d/engine\";\n\nconst osThemeRef = useOsTheme();\n\n/**\n * 全局配置\n */\nexport const useGlobalConfigStore = defineStore('global-config', () => {\n    /* 主题 */\n    const themeLocal = useStorage<IConfig.Theme>(\"astral-theme\",  \"darkTheme\");\n    const getProviderTheme = (): GlobalTheme => <GlobalTheme>(themeLocal.value === 'osTheme' ? (osThemeRef.value === 'dark' ? darkTheme : null) : themeLocal.value === 'lightTheme' ? null : darkTheme);\n    const themeLink = {\n        'osTheme': {\n            next: 'lightTheme',\n            prev: 'darkTheme'\n        },\n        'lightTheme': {\n            next: 'darkTheme',\n            prev: 'osTheme'\n        },\n        'darkTheme': {\n            next: 'osTheme',\n            prev: 'lightTheme'\n        }\n    }\n    const setTheme = () => {\n        const current = themeLocal.value || 'darkTheme';\n        const next = <IConfig.Theme>themeLink[current].next;\n        themeLocal.value = next;\n\n        App.config.setKey(\"theme\", next.replace(\"Theme\", \"\"));\n        if (window.viewer) {\n            // 设置viewHelper外观\n            window.viewer.modules.viewHelper.setConfig();\n        }\n    }\n\n    /* i18n */\n    const localeLocal = useStorage<IConfig.Locale>(\"astral-locale\",  \"zh-CN\");\n    const setLocaleLocal = (local:IConfig.Locale) => {\n        localeLocal.value = local;\n    }\n\n    /* 主色 */\n    const mainColor = useStorage<IConfig.Color>(\"astral-main-color\",  {\n        \"CMYK\": [56, 0, 19, 11],\n        \"RGB\": [99, 226, 183],\n        \"hex\": \"#63E2B7\",\n        \"hexHover\": \"#7FE7C4\",\n        \"hexPressed\": \"#5ACEA7\",\n        \"hexSuppl\": \"#2A947D\",\n        \"name\": \"\\u9e23\\u7fe0\\u67f3\",\n        \"pinyin\": \"mingcuiliu\"\n    });\n    const setPrimaryColor = (color: IConfig.Color) => {\n        const colors = generate(color.hex);\n\n        color.hexHover = colors[4] // Hover浅一些，取第5个颜色\n        color.hexSuppl = colors[6] // 比主色深一档，取第7个颜色\n        color.hexPressed = colors[7]\n\n        mainColor.value = color;\n\n        App.config.setKey(\"mainColor\",color.hexHover);\n\n        if (window.viewer) {\n            // 设置viewer grid中心校以及边线颜色\n            window.viewer.initGrid();\n            // 设置viewHelper外观\n            window.viewer.modules.viewHelper.setConfig();\n        }\n    }\n\n    /* 全局Loading */\n    const loading = ref(false);\n    const loadingText = ref(\"\");\n\n    return {\n        theme: themeLocal,\n        locale: localeLocal,\n        mainColor,\n        loading,\n        loadingText,\n        getProviderTheme,\n        setTheme,\n        setLocale: setLocaleLocal,\n        setPrimaryColor\n    }\n});\n\n// setup 之外使用\nexport function useGlobalConfigStoreWithOut() {\n    return useGlobalConfigStore(store);\n}"
  },
  {
    "path": "packages/editor/src/store/modules/plugin.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/9/16 0:36\n * @description\n */\nimport { defineStore } from 'pinia';\nimport { store } from '@/store';\nimport {computed, reactive, toRefs} from \"vue\";\n\ninterface IPluginState {\n    // 已安装（可用）插件的列表\n    plugins:{[name:string]:IPlugin.Item}\n}\n\nexport const usePluginStore = defineStore(\"plugin\",() => {\n    const state = reactive<IPluginState>({\n        plugins:{}\n    })\n\n    const getPluginsList = () => computed(() => Object.values(state.plugins));\n    const setPlugins = (_plugins:IPlugin.Item[]) => {\n        state.plugins = {};\n\n        _plugins.forEach(plugin => {\n            state.plugins[plugin.name] = {\n                name:plugin.name,\n                icon:plugin.icon\n            }\n        })\n\n    }\n    const addPlugin = (plugin:IPlugin.Item) => {\n        state.plugins[plugin.name] = {\n            name:plugin.name,\n            icon:plugin.icon\n        }\n    }\n    const removePlugin = (pluginName:string) => {\n        delete state.plugins[pluginName];\n    }\n\n    return {\n        ...toRefs(state),\n        getPluginsList,\n        setPlugins,\n        addPlugin,\n        removePlugin\n    }\n})\n\nexport function usePluginStoreWithOut() {\n    return usePluginStore(store);\n}"
  },
  {
    "path": "packages/editor/src/store/modules/previewOperation.ts",
    "content": "import type {Component} from 'vue'\nimport {defineStore} from 'pinia';\nimport {store} from '@/store';\nimport {\n    Home,\n    Rotate,\n    CutOut,\n    RulerAlt,\n    Ruler,\n    Angle,\n    AreaCustom,\n    Pedestrian,\n    Map,\n    Settings,\n    Clean,\n    EdgeCluster\n} from '@vicons/carbon';\nimport {ContractOutline, ExpandOutline} from \"@vicons/ionicons5\";\nimport {t} from \"@/language\";\n\nexport interface IPreviewOperation {\n    name: string,\n    active?: boolean,\n    disabled?: boolean,\n    loading?: boolean,\n    show?: boolean,\n    icon: Component,\n    children?: { [key: string]: IPreviewOperation }\n}\n\ninterface IPreviewOperationState {\n    menuList: { [key: string]: IPreviewOperation },\n    autoRotateSpeed: number,\n    explodeScalar:number\n}\n\nexport const usePreviewOperationStore = defineStore('previewOperation', {\n    state: () => <IPreviewOperationState>({\n        menuList: {\n            toHome: {name: t(\"preview.Main view\"), active: false, disabled: false, show: true, icon: Home},\n            autoRotate: {name: t(\"preview.Auto rotation\"), active: false, disabled: false, show: true, icon: Rotate},\n            cutting: {name: t(\"preview.Cutting\"), active: false, disabled: false, show: true, icon: CutOut},\n            measure: {\n                name: t(\"preview.Measure\"), active: false, disabled: false, show: true, icon: RulerAlt, children: {\n                    distance: {name: t(\"preview.Distance\"), active: false, show: true, icon: Ruler},\n                    angle: {name: t(\"preview.Angle\"), active: false, show: true, icon: Angle},\n                    area: {name: t(\"preview.Area\"), active: false, show: true, icon: AreaCustom},\n                    clearMeasure: {\n                        name: t(\"preview.Clear measuring result\"),\n                        active: false,\n                        disabled: true,\n                        show: true,\n                        icon: Clean\n                    }\n                }\n            },\n            explode: {name: t(\"preview.Explode\"), active: false, disabled: false, show: true, icon: EdgeCluster},\n            roaming: {\n                name: t(\"preview.Roaming\"),\n                active: false,\n                disabled: false,\n                loading: true,\n                show: true,\n                icon: Pedestrian\n            },\n            miniMap: {name: t(\"preview.Mini map\"), active: false, disabled: false, show: true, icon: Map},\n            settings: {name: t(\"preview.Settings\"), active: false, disabled: false, show: true, icon: Settings},\n            fullscreen: {\n                name: t(\"layout.header.Fullscreen\"),\n                active: false,\n                disabled: false,\n                show: true,\n                icon: ExpandOutline\n            },\n            exitFullscreen: {\n                name: t(\"layout.header.Exit fullscreen\"),\n                active: false,\n                disabled: false,\n                show: false,\n                icon: ContractOutline\n            },\n        },\n        autoRotateSpeed: 20,\n        explodeScalar: 1.0,\n    }),\n    getters: {},\n    actions: {},\n});\n\nexport function usePreviewOperationStoreWithOut() {\n    return usePreviewOperationStore(store);\n}"
  },
  {
    "path": "packages/editor/src/store/modules/websocket.ts",
    "content": "import {reactive, toRefs} from \"vue\";\nimport { defineStore } from 'pinia';\nimport { useStorage } from '@vueuse/core'\nimport { store } from '@/store';\nimport type {UseWebSocketReturn} from \"@vueuse/core\";\n\ninterface IWebsocketState<T> {\n    ws: null | UseWebSocketReturn<T>,\n    uname:string\n}\n\n/**\n * websocket相关\n */\nexport const useWebsocketStore = defineStore('websocket',()=>{\n    const unameLocal = useStorage('WS_UNAME', \"\");\n\n    const state = reactive<IWebsocketState<string>>({\n        // websocket实例\n        ws: null,\n        // uname\n        uname:unameLocal.value as string\n    })\n\n    /**\n     * getter\n     **/\n    const getIsOpen = () =>  state.ws && state.ws.status === \"OPEN\";\n\n    /**\n     * actions\n     **/\n    const setWebsocket = (websocket) => {\n        state.ws = websocket;\n    }\n    const setUname = (uname:string) => {\n        unameLocal.value =  uname;\n        state.uname = uname;\n    }\n    // 发送websocket消息\n    const send = (message: string | ArrayBuffer | Blob) => {\n        if (getIsOpen()) {\n            state.ws?.send(message,true);\n        }\n    }\n\n    return {\n        ...toRefs(state),\n        getIsOpen,\n        setWebsocket,\n        setUname,\n        send\n    }\n});\n\n// setup 之外使用\nexport function useWebsocketStoreWithOut() {\n    return useWebsocketStore(store);\n}"
  },
  {
    "path": "packages/editor/src/utils/common/base64.ts",
    "content": "/**\n * byte数组转换成base64 数据\n * @param {Array<byte>} buffer\n * @return {string} base64 string\n */\nexport function _arrayBufferToBase64(buffer) {\n    let binary = '';\n    const bytes = new Uint8Array(buffer);\n    const len = bytes.byteLength;\n    for (let i = 0; i < len; i++) {\n        binary += String.fromCharCode( bytes[ i ] );\n    }\n    return window.btoa( binary );\n}\n\n/**\n * base64数据转换成byte数组\n * @param {string} base64\n * @return {string} buffer\n */\nexport function _base64ToArrayBuffer(base64) {\n    const binary_string = window.atob(base64);\n    const len = binary_string.length;\n    const bytes = new Uint8Array(len);\n    for (let i = 0; i < len; i++) {\n        bytes[i] = binary_string.charCodeAt(i);\n    }\n    return bytes.buffer;\n}"
  },
  {
    "path": "packages/editor/src/utils/common/color.ts",
    "content": "// 10进制转rgba\nexport function decToRgb(number:number) {\n    const blue = number & 0xff;\n    const green = number >> 8 & 0xff;\n    const red = number >> 16 & 0xff;\n    return `rgb(${red}, ${green}, ${blue})`;\n}"
  },
  {
    "path": "packages/editor/src/utils/common/constant.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/3/26 9:57\n * @description 全局常量\n */\n// 支持的模型格式\nexport const MODEL_SUPPORT_TYPE = [\n    // 普通模型格式\n    \"gltf\",\"glb\",\"fbx\",\"obj\",\"mtl\",\n    \"3dm\",\"3ds\",\n    \"3mf\",\"amf\",\n    \"dae\",\"drc\",\n    \"kmz\",\"ldr\",\n    \"mpd\",\"md2\",\n    \"pcd\",\"ply\",\n    \"stl\",\"svg\",\n    \"usdz\",\"vox\",\"vtk\",\"vtp\",\n    \"wrl\",\n    \"xyz\",\n    \"json\",\"zip\",\n    // 自解析格式\n    \"rvt\",\"rfa\",\"ifc\",\n    //\"osgb\",\n    // \"rvm\",\n    // \"dgn\",\n    /*\"jt\"*/\n    // \"shp\",\n    // \"stp\",\"step\"\n];\n\n// 资源中心支持上传的格式\nexport const ASSET_UPLOAD_SUPPORT_TYPE = {\n    'Model': ['glb','gltf','fbx','obj'],\n    'Material': ['zip'],\n    'Texture': ['png','jpg','jpeg','webp'],\n    'Billboard': ['png','jpg','jpeg','webp','svg'],\n    'HDR': ['hdr','exr'],\n}\n\n// 需要转换的BIM模型格式\nexport const NEED_CONVERT_BIM_MODEL = [\"rvt\", \"rfa\"];\n\n// 支持的图纸文件类型\nexport const DRAWING_SUPPORT_TYPE = [\"dwg\", \"dxf\", \"png\", \"jpg\", \"jpeg\"];\n\n// 需要转换的图纸格式\nexport const NEED_CONVERT_DRAWING = [\"dwg\"];\n\n// 支持的文档类型\nexport const DOC_SUPPORT_TYPE = [\"doc\",\"docx\",\"xls\",\"xlsx\",\"xlsm\",\"ppt\",'pptx',\"pdf\",\"txt\"];\n\nexport const SCENE_TYPE = [\n    {label:\"城市\",value:\"城市\"},\n    {label:\"园区\",value:\"园区\"},\n    {label:\"工厂\",value:\"工厂\"},\n    {label:\"楼宇\",value:\"楼宇\"},\n    {label:\"设备\",value:\"设备\"},\n    {label:\"其他\",value:\"其他\"},\n]\n\n// 截屏占位图\nexport const DefaultScreenshot = \"/static/images/placeholder/截屏占位图.png\";\n\n"
  },
  {
    "path": "packages/editor/src/utils/common/dateTime.ts",
    "content": "export function dateTimeFormat(fmt) {\n    let myDate = new Date();\n    let o = {\n        \"M+\": myDate.getMonth() + 1, //月份\n        \"d+\": myDate.getDate(), //日\n        \"H+\": myDate.getHours(), //小时\n        \"m+\": myDate.getMinutes(), //分\n        \"s+\": myDate.getSeconds(), //秒\n        \"q+\": Math.floor((myDate.getMonth() + 3) / 3), //季度\n        \"S\": myDate.getMilliseconds() //毫秒\n    };\n    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (myDate.getFullYear() + \"\").substr(4 - RegExp.$1.length));\n    for (let k in o)\n        if (new RegExp(\"(\" + k + \")\").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((\"00\" + o[k]).substr((\"\" + o[k]).length)));\n    return fmt;\n}"
  },
  {
    "path": "packages/editor/src/utils/common/file.ts",
    "content": "import {pow1024} from \"./utils\";\n\n/**\n * 通过Fetch API下载文件/图片（支持跨域/Blob处理）\n * @param {string} url 文件地址\n * @param {string} filename 保存的文件名\n */\nexport async function downloadWithFetch(url:string, filename:string = \"\") {\n    try {\n        const response = await fetch(url);\n        if (!response.ok) throw new Error('The network is responding abnormally');\n\n        const blob = await response.blob();\n        const blobUrl = URL.createObjectURL(blob);\n\n        if(!filename){\n            filename = url.substring(url.lastIndexOf(\"/\") + 1);\n        }\n\n        const link = document.createElement('a');\n        link.href = blobUrl;\n        link.download = filename;\n        document.body.appendChild(link);\n        link.click();\n\n        // 清理内存\n        setTimeout(() => {\n            URL.revokeObjectURL(blobUrl);\n            document.body.removeChild(link);\n        }, 100);\n    } catch (error) {\n        console.error('下载失败:', error);\n    }\n}\n\n/**\n * 文件大小 字节转换单位\n * @param {number} size\n * @returns {string|*}\n */\nexport const filterSize = (size:number): string | any => {\n    if (!size) return '0B';\n    if (size < pow1024(1)) return size + ' B';\n    if (size < pow1024(2)) return (size / pow1024(1)).toFixed(2) + ' KB';\n    if (size < pow1024(3)) return (size / pow1024(2)).toFixed(2) + ' MB';\n    if (size < pow1024(4)) return (size / pow1024(3)).toFixed(2) + ' GB';\n    return (size / pow1024(4)).toFixed(2) + ' TB'\n}\n\n\nexport const getServiceStaticFile = (url:string):string => {\n    if(!url) return \"\";\n\n    if(url.startsWith(\"blob:\") || url.startsWith(\"data:\") || url.startsWith(\"http:\") || url.startsWith(\"https:\") || url.startsWith('/file/static')) return url;\n\n    return `/file/static` + (url[0] === '/' ? '' : '/') + url;\n}\n"
  },
  {
    "path": "packages/editor/src/utils/common/init.ts",
    "content": "import \"../signals/signalRegister\";\n\nwindow.URL = window.URL || window.webkitURL;\n// @ts-ignore\nwindow.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\nNumber.prototype.format = function () {\n    return this.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n};\n\n/*添加自执行函数，为rem设置自适应的根DOM字体大小，1920px下默认1rem = 20px */\n(function () {\n    change();\n\n    function change() {\n        const w = document.documentElement.clientWidth > 1280 ? document.documentElement.clientWidth : 1280;\n        document.documentElement.style.fontSize = w * 20 / 1920 + \"px\";\n    }\n\n    /*监听窗口大小的改变*/\n    window.addEventListener(\"resize\", change, false);\n})()\n\n//屏蔽选中\ndocument.onselectstart = function (event) {\n    if (window.event) {\n        event = window.event;\n    }\n    try {\n        const the = event.srcElement;\n        // @ts-ignore\n        return (the.tagName === \"INPUT\" && the.type.toLowerCase() === \"text\") || the.tagName === \"TEXTAREA\";\n    } catch (e) {\n        return false;\n    }\n}\n\n// 禁止浏览器默认右键菜单\ndocument.addEventListener('contextmenu', (event) => {\n    event.preventDefault();\n});\n\n// 保存原始方法\nconst originalStringify = JSON.stringify;\nconst originalParse = JSON.parse;\n\n// 重写 JSON.stringify\nJSON.stringify = function (value: any, ...args: any[]) {\n    return originalStringify(value, function (key, val) {\n        // 如果有自定义的 replacer 函数，先执行它\n        if (args[0]) {\n            val = args[0](key, val);\n        }\n\n        if (val === Infinity) return \"Infinity\";\n        if (val === -Infinity) return \"-Infinity\";\n        return val;\n    }, args[1]); // args[1] 是 space 参数\n};\n\n// 重写 JSON.parse\nJSON.parse = function (text: string, reviver?: (key: any, value: any) => any) {\n    return originalParse(text, function (key, value) {\n        // 处理 Infinity\n        if (value === \"Infinity\") return Infinity;\n        if (value === \"-Infinity\") return -Infinity;\n\n        // 如果有自定义的 reviver 函数，执行它\n        return reviver ? reviver(key, value) : value;\n    });\n};"
  },
  {
    "path": "packages/editor/src/utils/common/render.ts",
    "content": "import { h } from 'vue';\nimport type { Component } from 'vue'\nimport { NIcon } from 'naive-ui';\n\n/**\n * 渲染icon\n * @param icon vicons\n * @returns \n */\nexport function renderIcon(icon: Component) {\n\treturn () => h(NIcon, null, { default: () => h(icon) });\n}\n"
  },
  {
    "path": "packages/editor/src/utils/common/scenes.ts",
    "content": "import * as THREE from 'three';\nimport { OrbitControls } from 'three/examples/jsm/Addons';\nimport { App } from \"@astral3d/engine\";\n\nexport interface IModel extends THREE.Object3D {\n\tmetadata: Object;\n}\n\nexport function getMaterialName(material) {\n\tif (Array.isArray(material)) {\n\t\tconst array: any = [];\n\n\t\tfor (let i = 0; i < material.length; i++) {\n\t\t\tarray.push(material[i].name);\n\t\t}\n\n\t\treturn array.join(',');\n\t}\n\n\treturn material.name;\n}\n\nexport function getObjectType(object) {\n\tif (object.isScene) return 'Scene';\n\tif (object.isCamera) return 'Camera';\n\tif (object.isLight) return 'Light';\n\tif (object.isMesh) return 'Mesh';\n\tif (object.isLine) return 'Line';\n\tif (object.isPoints) return 'Points';\n\n\treturn 'Object3D';\n}\n\n/**\n * 获取当前选中模型 path\n */\nexport function getSelectedModelPath() {\n\tlet pathArr: string[] = [];\n\n\tfunction getPath(obj) {\n\t\tif (obj.parent) {\n\t\t\tpathArr.unshift(obj.parent.name);\n\t\t\tgetPath(obj.parent);\n\t\t}\n\t}\n\n\tgetPath(App.selected);\n\n\treturn pathArr.join(' !! ');\n}\n\n// 屏幕坐标转世界坐标\nexport function screenToWorld(x: number, y: number) {\n\tconst vector = new THREE.Vector3();\n\tvector.set(\n\t\t(x / window.viewer.container.offsetWidth) * 2 - 1,\n\t\t-(y / window.viewer.container.offsetHeight) * 2 + 1,\n\t\t0.5\n\t);\n\tvector.unproject(App.camera);\n\n\tconst dir = vector.sub(App.camera.position).normalize();\n\tconst distance = -App.camera.position.z / dir.z;\n\treturn App.camera.position.clone().add(dir.multiplyScalar(distance));\n}\n\nexport function reBufferGeometryUv(geometry: THREE.BufferGeometry) {\n\tconst uv = geometry.attributes.uv;\n\tif (!uv) return;\n\n\t// 获取u和v的范围\n\tconst box = {\n\t\tmin: new THREE.Vector2(Infinity, Infinity),\n\t\tmax: new THREE.Vector2(-Infinity, -Infinity),\n\t};\n\tfor (let i = 0; i < uv.count; i++) {\n\t\tconst u = uv.getX(i);\n\t\tconst v = uv.getY(i);\n\n\t\tbox.min.x = Math.min(box.min.x, u);\n\t\tbox.min.y = Math.min(box.min.y, v);\n\t\tbox.max.x = Math.max(box.max.x, u);\n\t\tbox.max.y = Math.max(box.max.y, v);\n\t}\n\n\t// 计算偏移量和范围\n\tconst offset = new THREE.Vector2(0 - box.min.x, 0 - box.min.y);\n\tconst range = new THREE.Vector2(box.max.x - box.min.x, box.max.y - box.min.y);\n\n\t// 遍历顶点，修改uv\n\tfor (let i = 0; i < uv.count; i++) {\n\t\tconst u = uv.getX(i);\n\t\tconst v = uv.getY(i);\n\n\t\t// 计算新的u和v\n\t\tconst newU = (u + offset.x) / range.x;\n\t\tconst newV = (v + offset.y) / range.y;\n\n\t\t// 写入新的uv\n\t\tuv.setXY(i, newU, newV);\n\t}\n\n\t// 通知three.js更新\n\tuv.needsUpdate = true;\n}\n\nexport function setUserData(object: IModel, key: string, value: any) {\n\t// key按照.分割，设置到object的userData中\n\tconst keys = key.split('.');\n\tlet obj = object.userData;\n\tfor (let i = 0; i < keys.length - 1; i++) {\n\t\tconst k = keys[i];\n\t\tif (!obj[k]) {\n\t\t\tobj[k] = {};\n\t\t}\n\t\tobj = obj[k];\n\t}\n\tobj[keys[keys.length - 1]] = value;\n}\n\nexport function setMetaData(object: IModel, key: string, value: any) {\n\t// key按照.分割，设置到object的metaData中\n\tconst keys = key.split('.');\n\tlet metadata = object.metadata;\n\n\tif (!metadata) {\n\t\tmetadata = {};\n\t\tobject.metadata = metadata;\n\t}\n\n\tfor (let i = 0; i < keys.length - 1; i++) {\n\t\tconst k = keys[i];\n\t\tif (!metadata[k]) {\n\t\t\tmetadata[k] = {};\n\t\t}\n\t\tmetadata = metadata[k];\n\t}\n\tmetadata[keys[keys.length - 1]] = value;\n}\n\n/**\n * 创建基础场景（会用于轻量展示）\n */\nexport function createBasicScene(container: HTMLElement) {\n\tlet scene = new THREE.Scene();\n\n\tlet camera = new THREE.PerspectiveCamera(60, container.offsetWidth / container.offsetHeight, 0.1, 1000);\n\tcamera.position.set(0, 2, 8);\n\tcamera.lookAt(0, 0, 0);\n\n\tlet renderer = new THREE.WebGLRenderer({\n\t\tantialias: true,\n\t\tpowerPreference: \"high-performance\"\n\t});\n\n\trenderer.setSize(container.offsetWidth, container.offsetHeight);\n\trenderer.setClearColor(0x0c1126);\n\trenderer.setPixelRatio(window.devicePixelRatio);\n\tcontainer.appendChild(renderer.domElement);\n\n\t// 添加光源\n\tconst ambientLight = new THREE.AmbientLight(0x404040, 2);\n\tscene.add(ambientLight);\n\n\tconst directionalLight = new THREE.DirectionalLight(0xffffff, 1);\n\tdirectionalLight.position.set(5, 5, 5);\n\tscene.add(directionalLight);\n\n\tconst backLight = new THREE.DirectionalLight(0xffffff, 0.5);\n\tbackLight.position.set(-5, -5, -5);\n\tscene.add(backLight);\n\n\t// 初始化轨道控制器\n\tlet controls = new OrbitControls(camera, renderer.domElement);\n\tcontrols.enableDamping = true;\n\tcontrols.dampingFactor = 0.05;\n\tcontrols.screenSpacePanning = true;\n\n\t// @ts-ignore监听视窗变化（节流）\n\tlet timer: NodeJS.Timeout | null = null;\n\tlet resizeObserver = new ResizeObserver(() => {\n\t\tif (timer) return;\n\t\ttimer = setTimeout(function () {\n\t\t\tcamera.aspect = container.offsetWidth / container.offsetHeight;\n            camera.updateProjectionMatrix();\n            renderer.setSize(container.offsetWidth, container.offsetHeight);\n\t\t\t\t\t\n\t\t\ttimer = null;\n\t\t}, 16)\n\t});\n\tresizeObserver.observe(container);\n\n\tconst animate = () => {\n\t\tcontrols.update();\n\t\trenderer.render(scene, camera);\n\t}\n\n\trenderer.setAnimationLoop(animate);\n\n\tconst dispose = () => {\n\t\tresizeObserver.unobserve(container);\n\t\tresizeObserver.disconnect();\n\t\t// @ts-ignore\n\t\tresizeObserver = null;\n\t\t\n\t\trenderer.setAnimationLoop(null);\n\t\trenderer.dispose();\n\t\t// @ts-ignore\n\t\trenderer = null;\n\n\t\tcontrols.dispose();\n\t\t// @ts-ignore\n\t\tcontrols = null;\n\n\t\tcamera.clear();\n\t\t// @ts-ignore\n\t\tcamera = null;\n\n\t\tscene.clear();\n\t\t// @ts-ignore\n\t\tscene = null;\n\t}\n\n\treturn {\n\t\tscene,\n\t\tcamera,\n\t\trenderer,\n\t\tcontrols,\n\t\tdispose\n\t}\n}\n"
  },
  {
    "path": "packages/editor/src/utils/common/utils.ts",
    "content": "import type { TreeOption } from 'naive-ui';\nimport {BASE64_TYPES} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\n\n// 替换字符\nexport function escapeHTML(html:string) {\n    if (typeof html !== \"string\") return html;\n\n    return html\n        .replace(/&/g, '&amp;')\n        .replace(/\"/g, '&quot;')\n        .replace(/'/g, '&#39;')\n        .replace(/</g, '&lt;')\n        .replace(/>/g, '&gt;');\n}\n\n/**\n * naive UI树结构寻找对应节点位置及所处父节点\n * @param node 目标节点\n * @param nodes 树数据\n */\nexport function findSiblingsAndIndex(node: TreeOption, nodes?: TreeOption[]): [TreeOption[], number] | [null, null] {\n    if (!nodes) return [null, null];\n    for (let i = 0; i < nodes.length; ++i) {\n        const siblingNode = nodes[i];\n        if (siblingNode.key === node.key) return [nodes, i];\n\n        const [siblings, index] = findSiblingsAndIndex(node, siblingNode.children)\n        if (siblings && index !== null) return [siblings, index];\n    }\n    return [null, null];\n}\n\n// base64 转 File\nexport function base64ToFile(dataurl, filename) {\n    let arr = dataurl.split(',');\n    let mime = arr[0].match(/:(.*?);/)[1];\n    let bstr = atob(arr[1]);\n    let n = bstr.length;\n    let u8arr = new Uint8Array(n);\n    while (n--) {\n        u8arr[n] = bstr.charCodeAt(n);\n    }\n    return new File([u8arr], `${filename}.${BASE64_TYPES[arr[0]]}`, {type: mime});\n}\n\n\n/**\n * 求次幂\n */\nexport function pow1024(num) {\n    return Math.pow(1024, num)\n}\n\n/**\n * 动态添加script\n * @param src\n * @param async\n */\nexport function loadScript(src:string,async:boolean = true){\n    return new Promise((resolve,reject) => {\n        const script = document.createElement('script');\n        script.src = src;\n        script.async = async;\n\n        script.onload = () => {\n            resolve(\"\");\n        };\n\n        script.onerror = () => {\n            reject(`${src} 加载失败!`);\n        };\n\n        document.head.appendChild(script);\n    })\n}\n\n/**\n * 复制到剪切板\n * @param text\n */\nexport function copyToClipboard(text: string) {\n    return new Promise((resolve, reject) => {\n        // 检查浏览器是否支持 Clipboard API\n        if (!navigator.clipboard) {\n            reject(t(\"prompt['Your browser does not support the Clipboard API, please use another browser']\"));\n            return;\n        }\n\n        // 使用 Clipboard API 复制文本\n        navigator.clipboard.writeText(text).then(() => {\n            resolve(t(\"prompt['Successfully copied to clipboard']\"));\n        }).catch(err => {\n            resolve(`${t(\"prompt['Failed to copy to clipboard']\")}: ${err}`);\n        });\n    })\n}\n\n/**\n * 获取rem的px值\n */\nexport function remToPxNumber(rem: number): number {\n    const f = parseFloat(document.documentElement.style.fontSize);\n    return f * rem;\n}\n\n/**\n * 动态注入脚本，并监听执行完毕事件\n * @param {string} src\n */\nexport function injectJS(src) {\n    return new Promise(resolve => {\n        // Warn：script.src !== script.getAttribute('src')\n        const loaded = Array.from(document.scripts).some(it => it.getAttribute('src') === src);\n        if (loaded) {\n            resolve(src);\n            return;\n        }\n        const script = document.createElement('script');\n        script.src = src;\n        document.head.insertBefore(script, document.head.firstElementChild);\n        script.addEventListener('load', () => {\n            resolve(src);\n        });\n    })\n}\n\n/**\n * 在树形结构中查找指定 key 的节点（深度优先搜索）\n */\nexport function findTreeNode(tree:TreeOption[], targetKey:string | number):TreeOption | null {\n    // 检查树数据是否为数组\n    if (!Array.isArray(tree)) return null;\n\n    for (const node of tree) {\n        // 检查当前节点是否匹配\n        if (node.key === targetKey) {\n            return node;\n        }\n\n        // 递归搜索子节点\n        if (node.children && node.children.length > 0) {\n            const result = findTreeNode(node.children, targetKey);\n            if (result) return result;\n        }\n    }\n\n    return null;\n}\n\n/**\n * 使用深度优先遍历（DFS）递归算法，为没有子节点的节点添加 isLeaf: true 属性\n */\nexport function markLeafNodes(tree:TreeOption[]) {\n    if (!tree || !Array.isArray(tree)) return;\n\n    for (const node of tree) {\n        // 如果有children数组且不为空\n        if (node.children && node.children.length > 0) {\n            // 递归处理子节点\n            markLeafNodes(node.children);\n        }\n        // 如果children不存在，或者存在但为空数组\n        else {\n            // 设置 isLeaf 属性（不覆盖已存在的值）\n            if (!node.hasOwnProperty('isLeaf')) {\n                node.isLeaf = true;\n            }\n        }\n    }\n}"
  },
  {
    "path": "packages/editor/src/utils/common/verify.ts",
    "content": "/**\n * 用于验证的工具函数集合\n */\nimport {t} from \"@/language\";\n\nexport function formItemIsFile(_, value:File | null){\n    return new Promise<void>((resolve, reject) => {\n        // 判断value是否是File类型\n        if (!value || !(value instanceof File)) {\n            reject(Error(t(\"prompt.The entry can not be null\")))\n        } else {\n            resolve()\n        }\n    })\n}\n\nexport function formItemNotNil(_, value:any){\n    return new Promise<void>((resolve, reject) => {\n        if (value === null || value === undefined) {\n            reject(Error(t(\"prompt.The entry can not be null\")))\n        } else {\n            resolve()\n        }\n    })\n}"
  },
  {
    "path": "packages/editor/src/utils/drawing/drawRect.ts",
    "content": "import {App,Utils,Hooks} from \"@astral3d/engine\";\nimport {getSelectedModelPath} from \"@/utils/common/scenes\";\n\nlet canvasMouseWheelFn: EventListenerOrEventListenerObject;\n\n/**\n * 画布中绘制矩形\n * @param {HTMLCanvasElement}  canvas 画布对象\n * @param {Array<IDrawingMark>} list 矩形数组\n **/\nexport class DrawRect {\n    private canvas: HTMLCanvasElement;\n    private parentElement: HTMLDivElement;\n    private ctx: CanvasRenderingContext2D;\n    private readonly list: Array<IDrawingMark>;\n    // 当前选中的矩形下标\n    public selectRectIndex: number = -1;\n    // 当前鼠标经过的矩形的下标\n    private hoverRectIndex: number = -1;\n    private sX: number = 0;\n    private sY: number = 0;\n    // 鼠标按下时的clientXY\n    private downClientX: number = 0;\n    private downClientY: number = 0;\n    private zoom: number = 100;\n    // 鼠标左键是否按下\n    private leftMouseDown: boolean = false;\n    // 画布是否处于拖动状态\n    private isCanvasDrag: boolean = false;\n    // 画布拖动后的偏移量\n    private canvasOffsetX: number = 0;\n    private canvasOffsetY: number = 0;\n    // rect是否处于拖动状态\n    private isDrag: boolean = false;\n    private isDraged: boolean = false;\n\n    //杂项\n    public rectColor: string = \"#15FF00\";\n    public rectSelectColor: string = \"#ff0000\";\n\n    // 拖动的rect的初始数据\n    private dragRect: IDrawingMark = {x: 0, y: 0, w: 0, h: 0,color:this.rectColor};\n\n    constructor(canvas: HTMLCanvasElement, parentElement: HTMLDivElement) {\n        this.canvas = canvas;\n        this.parentElement = parentElement;\n\n        this.list = App.project.getKey(\"drawing.markList\");\n        this.ctx = this.canvas.getContext('2d') as CanvasRenderingContext2D;\n        this.ctx.strokeStyle = this.rectColor;\n        this.ctx.lineWidth = 1;\n\n        this.canvas.onmousemove = Utils.throttle(this.onmousemove.bind(this), 10);\n        this.canvas.onmousedown = this.onmousedown.bind(this);\n        this.canvas.onmouseup = this.onmouseup.bind(this);\n        this.canvas.onmouseleave = this.onmouseleave.bind(this);\n        canvasMouseWheelFn = this.onmousewheel.bind(this);\n        this.canvas.addEventListener(\"mousewheel\", canvasMouseWheelFn);\n\n        const drawingDiv = this.parentElement.parentElement as HTMLDivElement;\n        drawingDiv.onmousedown = this.onParentMouseDown.bind(this);\n        drawingDiv.onmousemove = Utils.throttle(this.onParentMouseMove.bind(this),16);\n        drawingDiv.onmouseup = this.onParentMouseUp.bind(this);\n        drawingDiv.onmouseleave = this.onParentMouseLeave.bind(this);\n\n        this.init();\n    }\n\n    init(){\n        // 若list长度不为0, 则显示已标记框\n        if (this.list.length !== 0) {\n            this.list.forEach((value: IDrawingMark) => {\n                this.ctx.beginPath();\n                this.ctx.strokeStyle = value.color as string;\n                // 遍历绘制所有标记框\n                this.ctx.rect(value.x, value.y, value.w, value.h);\n                this.ctx.stroke();\n            });\n        }\n    }\n\n    /**\n     * 准备开始画矩形标记框\n     * @public\n     */\n    public addRect() {\n        this.canvas.style.cursor = \"crosshair\";\n        // 进入绘制流程\n        App.project.setKey(\"drawing.isDrawingRect\",true);\n    }\n\n    /*\n     * 退出绘制矩形标记框\n     */\n    public exitRect() {\n        this.canvas.style.cursor = \"default\";\n        // 退出绘制流程\n        App.project.setKey(\"drawing.isDrawingRect\",false);\n    }\n\n    /**\n     * 删除rect\n     */\n    public deleteRect() {\n        this.list.splice(this.selectRectIndex, 1);\n        this.hoverRectIndex = -1;\n        this.selectRectIndex = -1;\n        this.reDrawCanvas();\n    }\n\n    /**\n     * 图纸复位\n     */\n    public canvasReset(){\n        this.parentElement.style.left = \"0px\";\n        this.parentElement.style.top = \"0px\";\n        this.canvasOffsetX = 0;\n        this.canvasOffsetY = 0;\n        this.canvas.style.transform = \"scale(1)\";\n\n        this.zoom = 100;\n    }\n\n    /**\n     * 修改当前绘制的颜色\n     * @param {string} color 颜色\n     */\n    public setRectColor(color: string) {\n        this.rectColor = color;\n        this.list[this.selectRectIndex].color = color;\n\n        this.reDrawCanvas(true);\n        setTimeout(()=>{\n            this.reDrawCanvas(false);\n        },800)\n    }\n\n    get selectRectColor(){\n        return this.list[this.selectRectIndex]?.color;\n    }\n\n    /**\n     * 高亮选中的模型对应的rect\n     * @param {string} uuid modelUuid\n     */\n    public selectRect(uuid: string) {\n        this.selectRectIndex = -1;\n\n        this.list.forEach((item, index) => {\n            if (item.modelUuid !== uuid) return;\n\n            this.selectRectIndex = index;\n\n            if(this.isDrag) return;\n\n            const translate = (zoom:number) => {\n                setTimeout(() => {\n                    // 移动画布，使对应标记居中放大显示(按当前缩放比)\n                    const x = item.x + item.w / 2;\n                    const y = item.y + item.h / 2;\n                    this.parentElement.style.transition = \"all .6s\";\n                    this.canvasOffsetX = (-x + this.canvas.offsetWidth / 2) * zoom;\n                    this.canvasOffsetY = (-y + this.canvas.offsetHeight / 2) * zoom;\n                    this.parentElement.style.left = this.canvasOffsetX + \"px\";\n                    this.parentElement.style.top = this.canvasOffsetY + \"px\";\n\n                    setTimeout(() => {\n                        this.parentElement.style.transition = \"none\";\n                        this.canvas.style.transition = \"transform 16ms\";\n                    }, 600)\n                }, 200)\n            }\n\n            // 对应标记框如果宽高最大值小于100px,则显示为100像素大小\n            const max = Math.max(item.w, item.h);\n            if (max < 100) {\n                const z = 100 * 100 / max;\n                this.zoom = z < 50 ? 50 : (z > 800 ? 800 : z);\n            }else{\n                this.zoom = 100;\n            }\n\n            const zoom = this.zoom / 100;\n            this.canvas.style.transition = \"transform .35s\";\n            this.canvas.style.transform = \"scale(\" + zoom + \")\";\n\n            translate(zoom);\n        })\n\n        this.reDrawCanvas();\n\n        App.project.setKey(\"drawing.selectedRectIndex\",this.selectRectIndex);\n    }\n\n    private onmousemove(em) {\n        if(em.button !== 0) return;\n\n        if (this.isCanvasDrag)return;\n\n        // 如果处于绘制流程中\n        if (App.project.getKey(\"drawing.isDrawingRect\")) {\n            this.canvas.style.cursor = \"crosshair\";\n\n            if (this.leftMouseDown) {\n                // 正在绘制矩形\n                // 如果是处于修改矩形流程中\n                if (this.selectRectIndex !== -1) {\n                    this.list.splice(this.selectRectIndex, 1, {\n                        x: this.sX,\n                        y: this.sY,\n                        w: em.offsetX - this.sX,\n                        h: em.offsetY - this.sY,\n                        color:this.list[this.selectRectIndex].color,\n                        modelUuid: this.list[this.selectRectIndex].modelUuid,\n                        modelPath: this.list[this.selectRectIndex].modelPath\n                    });\n\n                    this.reDrawCanvas();\n                } else {\n                    this.reDrawCanvas();\n                    // 设置边框为虚线\n                    this.ctx.beginPath();\n                    this.ctx.setLineDash([8, 4]);\n                    this.ctx.rect(this.sX, this.sY, em.offsetX - this.sX, em.offsetY - this.sY);\n                    this.ctx.stroke();\n                }\n            }\n            return;\n        }\n\n        /** rect 正在拖动 **/\n        if (this.isDrag) {\n            this.list.splice(this.selectRectIndex, 1, {\n                x: this.dragRect.x + (em.offsetX - this.sX),\n                y: this.dragRect.y + (em.offsetY - this.sY),\n                w: this.dragRect.w,\n                h: this.dragRect.h,\n                color:this.dragRect.color,\n                modelUuid: this.dragRect.modelUuid,\n                modelPath: this.dragRect.modelPath\n            });\n\n            this.reDrawCanvas();\n            this.isDraged = true;\n            return;\n        }\n\n        this.sX = em.offsetX;\n        this.sY = em.offsetY;\n\n        /** 界面上无矩形 **/\n        if (this.list.length === 0) return;\n\n        /** 界面上有矩形 **/\n        this.list.forEach((item, index) => {\n            let path = new Path2D();\n\n            if (this.selectRectIndex === index) {\n                path.rect(item.x - 4, item.y - 4, item.w + 8, item.h + 8);\n            } else {\n                path.rect(item.x, item.y, item.w, item.h);\n            }\n\n            if (this.ctx.isPointInPath(path, em.offsetX, em.offsetY)) {\n                // 鼠标在矩形内\n                this.hoverRectIndex = index;\n\n                this.canvas.style.cursor = \"pointer\";\n            } else {\n                // 如果鼠标不在之前所在的矩形内，清除hoverRectIndex\n                if (this.hoverRectIndex === index) {\n                    this.hoverRectIndex = -1;\n                }\n\n                this.canvas.style.cursor = \"default\";\n            }\n            this.reDrawCanvas();\n        });\n    }\n\n    /**\n     * 鼠标按下时\n     * @param ed\n     * @private\n     */\n    private onmousedown(ed) {\n        ed.stopPropagation();\n\n        if(ed.button !== 0) return;\n\n        this.isDraged = false;\n        this.leftMouseDown = true;\n        // 记录按下位置（矩形绘制起始位置）\n        this.sX = ed.offsetX;\n        this.sY = ed.offsetY;\n\n        this.downClientX = ed.clientX;\n        this.downClientY = ed.clientY;\n\n        // 如果处于绘制流程中\n        if (App.project.getKey(\"drawing.isDrawingRect\")) return;\n\n        /** 如果鼠标按下时鼠标在矩形内 **/\n        if (this.hoverRectIndex !== -1) {\n            // 还未选中过模型 或者 此时点击的不是之前选中的模型\n            if (this.selectRectIndex === -1 || this.hoverRectIndex !== this.selectRectIndex) {\n                // 选中矩形 this.hoverRectIndex\n                this.selectRectIndex = this.hoverRectIndex;\n            }\n            this.handleMouseDown(ed.offsetX, ed.offsetY);\n        } else {\n            this.selectRectIndex = -1;\n\n            // 如果鼠标按下时鼠标不在矩形内,拖动画布\n            this.isCanvasDrag = true;\n        }\n\n        App.project.setKey(\"drawing.selectedRectIndex\",this.selectRectIndex);\n        this.reDrawCanvas();\n    }\n\n    private handleMouseDown(offsetX, offsetY) {\n        const selectRect = this.list[this.selectRectIndex];\n        // 判断鼠标点击的是四个角（缩放）还是其他区域（拖动）\n        const x = offsetX - selectRect.x;\n        const y = offsetY - selectRect.y;\n        if (x < 5 && y < 5) {\n            // 左上角\n            this.sX = selectRect.x + selectRect.w;\n            this.sY = selectRect.y + selectRect.h;\n\n            App.project.setKey(\"drawing.isDrawingRect\",true);\n        } else if (x > this.list[this.selectRectIndex].w - 5 && y < 5) {\n            // 右上角\n            this.sX = selectRect.x;\n            this.sY = selectRect.y + selectRect.h;\n\n            App.project.setKey(\"drawing.isDrawingRect\",true);\n        } else if (x < 10 && y > this.list[this.selectRectIndex].h - 5) {\n            // 左下角\n            this.sX = selectRect.x + selectRect.w;\n            this.sY = selectRect.y;\n\n            App.project.setKey(\"drawing.isDrawingRect\",true);\n        } else if (x > this.list[this.selectRectIndex].w - 5 && y > this.list[this.selectRectIndex].h - 5) {\n            // 右下角\n            this.sX = selectRect.x;\n            this.sY = selectRect.y;\n\n            App.project.setKey(\"drawing.isDrawingRect\",true);\n        } else {\n            // 拖动\n            this.canvas.style.cursor = \"move\";\n            this.dragRect = selectRect;\n            this.isDrag = true;\n\n            // 三维场景定位模型\n            if(selectRect.modelUuid){\n                const model = App.getObjectByUuid(selectRect.modelUuid);\n                Hooks.useDispatchSignal(\"objectFocused\",model);\n                Hooks.useDispatchSignal(\"objectSelected\",model);\n            }\n        }\n    }\n\n    /**\n     * 鼠标抬起时\n     * @private\n     */\n    private onmouseup(eu) {\n        if(eu.button !== 0) return;\n\n        this.leftMouseDown = false;\n        this.isCanvasDrag = false;\n\n        // 如果处于绘制流程中\n        if (App.project.getKey(\"drawing.isDrawingRect\")) {\n            // 判断是新建矩形还是修改\n            if (this.selectRectIndex === -1) {\n                const w = eu.offsetX - this.sX;\n                const h = eu.offsetY - this.sY;\n                // 矩形w,h都大于5时才添加\n                if (Math.abs(w) > 5 && Math.abs(h) > 5) {\n                    // 全取左上角点x,y,使得w,h为正数\n                    const rectItem = {\n                        x: w > 0 ? this.sX : this.sX + w,\n                        y: h > 0 ? this.sY : this.sY + h,\n                        w: Math.abs(w),\n                        h: Math.abs(h),\n                        color:this.rectColor,\n                        modelUuid: App.selected?.uuid,\n                        modelPath:getSelectedModelPath(),\n                    }\n                    this.list.push(rectItem);\n\n                    Hooks.useDispatchSignal(\"drawingMarkDone\",\"add\",rectItem);\n                }\n            } else {\n                const rectItem = {\n                    // 全取左上角点x,y,使得w,h为正数\n                    x: this.list[this.selectRectIndex].w > 0 ? this.sX : this.sX + this.list[this.selectRectIndex].w,\n                    y: this.list[this.selectRectIndex].h > 0 ? this.sY : this.sY + this.list[this.selectRectIndex].h,\n                    w: Math.abs(this.list[this.selectRectIndex].w),\n                    h: Math.abs(this.list[this.selectRectIndex].h),\n                    color:this.list[this.selectRectIndex].color,\n                    modelUuid: this.list[this.selectRectIndex].modelUuid,\n                    modelPath: this.list[this.selectRectIndex].modelPath,\n                }\n                this.list.splice(this.selectRectIndex, 1, rectItem);\n\n                Hooks.useDispatchSignal(\"drawingMarkDone\",\"update\",rectItem);\n            }\n\n            this.reDrawCanvas();\n\n            //退出绘制流\n            this.exitRect();\n            return;\n        }\n\n        // 如果处于拖动流程中\n        if (this.isDrag) {\n            if(this.isDraged){\n                Hooks.useDispatchSignal(\"drawingMarkDone\",\"update\",this.list[this.selectRectIndex]);\n            }\n\n            this.isDrag = false;\n            this.canvas.style.cursor = \"default\";\n            return;\n        }\n    }\n\n    private onmouseleave(){\n        this.isDrag = false;\n    }\n\n    private onmousewheel(event){\n        /**\n         *  获取当前页面的缩放比\n         *  若未设置zoom缩放比，则为默认100%，即1，原图大小\n         */\n        /* event.wheelDelta 获取滚轮滚动值并将滚动值叠加给缩放比zoom  wheelDelta统一为±120，其中正数表示为向上滚动，负数表示向下滚动  */\n        let z = event.wheelDelta;\n        if (Math.abs(event.wheelDelta) > 120) {\n            z = event.wheelDelta > 0 ? 120 : -120;\n        }\n\n        const lastZoom = this.zoom;\n        this.zoom += z / 12;\n        /* 最小范围 和 最大范围 的图片缩放尺度 */\n        if ( this.zoom >= 50 &&  this.zoom <= 800) {\n            this.canvas.style.transform = \"scale(\" +  this.zoom / 100 + \")\";\n        }else{\n            this.zoom = lastZoom;\n        }\n        return false;\n    }\n\n    /**\n     * 重新绘制画布\n     */\n    reDrawCanvas(showSelectLineColor = false) {\n        this.ctx.setLineDash([8, 0]);\n        this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\n        this.list.forEach((value, index) => {\n            if (index === this.selectRectIndex) {\n                const r = value.w > 10 ? 4 : 2;\n                /* 绘制选中部分 */\n                /* 绘制方框 */\n                this.ctx.beginPath();\n                this.ctx.strokeStyle = showSelectLineColor ? value.color as string : this.rectSelectColor;\n                this.ctx.rect(value.x, value.y, value.w, value.h);\n                this.ctx.fillStyle = 'RGBA(102,102,102,0.2)'\n                this.ctx.fillRect(value.x, value.y, value.w, value.h);\n                this.ctx.stroke();\n                /* 绘制四个角的点 */\n                this.ctx.beginPath();\n                this.ctx.strokeStyle = this.rectSelectColor;\n                this.ctx.arc(value.x, value.y, r, 0, Math.PI * 2)\n                this.ctx.fillStyle = this.rectSelectColor;\n                this.ctx.fill();// 画起点实心圆\n                this.ctx.stroke();\n                this.ctx.beginPath();\n                this.ctx.arc(value.x, value.y + value.h, r, 0, Math.PI * 2);\n                this.ctx.fillStyle = this.rectSelectColor;\n                this.ctx.fill();// 画起点纵向实心圆\n                this.ctx.stroke();\n                this.ctx.beginPath();\n                this.ctx.arc(value.x + value.w, value.y + value.h, r, 0, Math.PI * 2);\n                this.ctx.fillStyle = this.rectSelectColor;\n                this.ctx.fill();// 画起点横向实心圆\n                this.ctx.stroke();\n                this.ctx.beginPath();\n                this.ctx.arc(value.x + value.w, value.y, r, 0, Math.PI * 2);\n                this.ctx.fillStyle = this.rectSelectColor;\n                this.ctx.fill();// 画终点实心圆\n                this.ctx.stroke();\n            } else if (this.hoverRectIndex === index) {\n                /* 绘制鼠标经过部分 */\n                this.ctx.beginPath();\n                this.ctx.strokeStyle = value.color as string;\n                this.ctx.rect(value.x, value.y, value.w, value.h);\n                this.ctx.fillStyle = 'RGBA(102,102,102,0.2)';\n                this.ctx.fillRect(value.x, value.y, value.w, value.h);\n                this.ctx.stroke();\n            } else {\n                /* 绘制未选中部分 */\n                this.ctx.beginPath();\n                this.ctx.strokeStyle = value.color as string;\n                this.ctx.rect(value.x, value.y, value.w, value.h);\n                this.ctx.stroke();\n            }\n        });\n\n        App.project.setKey(\"drawing.markList\",this.list);\n    }\n\n    /* 父级相关事件监听 */\n    private onParentMouseDown(e){\n        this.downClientX = e.clientX;\n        this.downClientY = e.clientY;\n\n        this.isCanvasDrag = true;\n    }\n\n    private onParentMouseUp(){\n        this.isCanvasDrag = false;\n\n        this.canvasOffsetX = this.parentElement.offsetLeft;\n        this.canvasOffsetY = this.parentElement.offsetTop;\n    }\n\n    private onParentMouseMove(e){\n        /** 画布正在拖动 **/\n        if (this.isCanvasDrag) {\n            this.parentElement.style.left = this.canvasOffsetX + e.clientX - this.downClientX + \"px\";\n            this.parentElement.style.top = this.canvasOffsetY + e.clientY - this.downClientY + \"px\";\n            return;\n        }\n    }\n\n    private onParentMouseLeave(){\n        this.isCanvasDrag = false;\n    }\n\n    dispose() {\n        this.canvas.onmousemove = null;\n        this.canvas.onmousedown = null;\n        this.canvas.onmouseup = null;\n        this.canvas.onmouseleave = null;\n        this.canvas.removeEventListener(\"mousewheel\", canvasMouseWheelFn);\n\n        const drawingDiv = this.parentElement.parentElement as HTMLDivElement;\n        drawingDiv.onmousedown = null;\n        drawingDiv.onmousemove = null;\n        drawingDiv.onmouseup = null;\n        drawingDiv.onmouseleave = null;\n    }\n}\n\n"
  },
  {
    "path": "packages/editor/src/utils/preview/menuOperation.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/8/22\n * @description 预览菜单操作\n */\nimport { useFullscreen } from '@vueuse/core'\nimport {\n  IPreviewOperation,\n  usePreviewOperationStoreWithOut\n} from \"@/store/modules/previewOperation\";\nimport * as THREE from 'three';\nimport { App,Hooks,ClippedEdgesBox,Measure,MeasureMode,ModelExplode,Roaming,MiniMap } from \"@astral3d/engine\";\nimport { t } from \"@/language\";\n\nconst operationStore = usePreviewOperationStoreWithOut();\n\nconst { enter:enterFullscreen,exit:exitFullscreen } = useFullscreen();\n\nlet roamPdFn, pointerlockFn;\n\nexport class MenuOperation {\n  // 初始化控制器状态\n  static InitControlsState: string = \"{}\";\n\n  // 开始漫游前的相机位置\n  static lastRoadCameraPos = new THREE.Vector3();\n\n  // 开始漫游前的相机目标位置\n  static lastRoadCameraTarget = new THREE.Vector3();\n\n  // 模型爆炸专用图层\n  static explodeLayer = 10;\n\n  // 当前爆炸的模型\n  static explodeModel:THREE.Object3D | null = null;\n\n  // 剖切盒子\n  static _clippedEdgesBox:ClippedEdgesBox | null = null;\n\n  // 测量类\n  static _measure:Measure | null = null;\n\n  // 爆炸类\n  static _explode:ModelExplode | null = null;\n\n  // 漫游类\n  static _roaming:Roaming | null = null;\n\n  // 小地图\n  static _miniMap:MiniMap | null = null;\n\n  static Init(key: string) {\n    if (MenuOperation[key]) {\n      MenuOperation[key]();\n    } else {\n      window.$message?.warning(\"相关模块正在开发中...\")\n    }\n  }\n\n  static get ClippedEdgesBox(){\n    if(!MenuOperation._clippedEdgesBox){\n      MenuOperation._clippedEdgesBox = new ClippedEdgesBox(window.viewer);\n    }\n\n    return MenuOperation._clippedEdgesBox;\n  }\n\n  static get Measure():Measure{\n    if(!MenuOperation._measure){\n      MenuOperation._measure = new Measure(window.viewer,MeasureMode.Distance);\n\n      MenuOperation._measure.addEventListener(\"complete\",() => {\n        if(!MenuOperation._measure) return;\n\n        // 激活清除测量按钮\n        if (!MenuOperation._measure.isClose && MenuOperation._measure.measureGroup.children.length > 0) {\n          (<{ [key: string]: IPreviewOperation }>operationStore.menuList.measure.children).clearMeasure.disabled = false;\n        }\n      })\n    }\n\n    return MenuOperation._measure;\n  }\n\n  static get Explode():ModelExplode{\n    if(!MenuOperation._explode){\n      MenuOperation._explode = new ModelExplode();\n    }\n\n    return MenuOperation._explode;\n  }\n\n  static get Roaming():Roaming{\n    if(!MenuOperation._roaming){\n      MenuOperation._roaming = new Roaming(window.viewer);\n    }\n\n    return MenuOperation._roaming;\n  }\n\n  static get MiniMap():MiniMap{\n    if(!MenuOperation._miniMap){\n      MenuOperation._miniMap = new MiniMap(window.viewer,{\n        mapSize: 100,\n        mapRenderSize: 350,\n        followTarget: window.viewer.camera,\n        isShow: false,\n      });\n    }\n\n    return MenuOperation._miniMap;\n  }\n\n  /**\n   * 还原视角\n   */\n  static toHome() {\n    if (MenuOperation.InitControlsState === \"{}\") {\n      window.$message?.warning(\"缺失初始视角信息\")\n      return;\n    }\n\n    window.viewer.modules.controls.fromJSON(MenuOperation.InitControlsState, true);\n  }\n\n  /**\n   * 自动旋转\n   */\n  static autoRotate() {\n    operationStore.menuList.autoRotate.active = !operationStore.menuList.autoRotate.active;\n  }\n\n  /**\n   * 剖切\n   */\n  static cutting() {\n    operationStore.menuList.cutting.active = !operationStore.menuList.cutting.active;\n\n    if (operationStore.menuList.cutting.active) {\n      MenuOperation.ClippedEdgesBox.open();\n    } else {\n      MenuOperation.ClippedEdgesBox.close();\n    }\n  }\n\n  // 测距\n  static distance() {\n    // 上一个测量也许未完成\n    if (!MenuOperation.Measure.isCompleted) {\n      MenuOperation.Measure.complete();\n    }\n\n    window.$message?.info(t(\"prompt['Left click to confirm the drawing point, and right click to complete the drawing.']\"),{\n      duration: 1500\n    })\n\n    MenuOperation.Measure.mode = MeasureMode.Distance;\n    MenuOperation.Measure.open();\n\n    operationStore.menuList.measure.active = true;\n  }\n\n  // 测角度\n  static angle() {\n    if (!MenuOperation.Measure.isCompleted) {\n      MenuOperation.Measure.complete();\n    }\n\n    window.$message?.info(t(\"prompt['Left click to confirm the drawing point, and right click to complete the drawing.']\"),{\n      duration: 1500\n    })\n\n    MenuOperation.Measure.mode = MeasureMode.Angle;\n    MenuOperation.Measure.open();\n\n    operationStore.menuList.measure.active = true;\n  }\n\n  // 测面积\n  static area() {\n    if (!MenuOperation.Measure.isCompleted) {\n      MenuOperation.Measure.complete();\n    }\n\n    window.$message?.info(t(\"prompt['Left click to confirm the drawing point, and right click to complete the drawing.']\"),{\n      duration: 1500\n    })\n\n    MenuOperation.Measure.mode = MeasureMode.Area;\n    MenuOperation.Measure.open();\n\n    operationStore.menuList.measure.active = true;\n  }\n\n  // 清除测量结果\n  static clearMeasure() {\n    (<{ [key: string]: IPreviewOperation }>operationStore.menuList.measure.children).clearMeasure.disabled = true;\n\n    MenuOperation.Measure.clear();\n\n    operationStore.menuList.measure.active = false;\n  }\n\n  // 爆炸\n  static explode(){\n    if(!App.selected && !MenuOperation.explodeModel){\n      window.$message?.warning(t(\"prompt['No object selected.']\"));\n      return;\n    }\n\n    operationStore.menuList.explode.active = !operationStore.menuList.explode.active;\n\n    if (operationStore.menuList.explode.active){\n      if(!App.selected) return;\n\n      App.selected.traverse(obj => obj.layers.set(MenuOperation.explodeLayer));\n      window.viewer.camera.layers.set(MenuOperation.explodeLayer);\n\n      MenuOperation.Explode.explodeModel(App.selected,operationStore.explodeScalar);\n      MenuOperation.explodeModel = App.selected;\n    }else{\n      if(!MenuOperation.explodeModel) return;\n\n      MenuOperation.explodeModel.traverse(obj => obj.layers.set(0));\n      window.viewer.camera.layers.set(0);\n\n      MenuOperation.Explode.restore();\n\n      MenuOperation.explodeModel = null;\n    }\n  }\n\n  // 漫游\n  static roaming() {\n    if (!MenuOperation.Roaming) return;\n\n    operationStore.menuList.roaming.active = !operationStore.menuList.roaming.active;\n\n    if (operationStore.menuList.roaming.active) {\n      MenuOperation.enterRoaming();\n    } else {\n      MenuOperation.leaveRoaming();\n    }\n  }\n\n  // 选点进入漫游\n  static enterRoaming() {\n    window.$message?.info(t(\"preview.Please select initial position\"));\n\n    const canvas = window.viewer.renderer.domElement;\n\n    const handlePointerDown = (e: MouseEvent) => {\n      const raycaster = new THREE.Raycaster();\n\n      const x = e.offsetX;\n      const y = e.offsetY;\n      const mouse = new THREE.Vector2();\n      mouse.x = (x / canvas.offsetWidth) * 2 - 1;\n      mouse.y = -(y / canvas.offsetHeight) * 2 + 1;\n\n      raycaster.setFromCamera(mouse, window.viewer.camera);\n      raycaster.firstHitOnly = true;\n\n      const intersectObjects:THREE.Object3D[] = [MenuOperation.Roaming.group];\n      let intersects = raycaster.intersectObjects(intersectObjects, true) || [];\n      if (intersects && intersects.length > 0) {\n        const intersect = intersects[0];\n\n        // 锁定鼠标指针\n        window.viewer.modules.controls.lockPointer();\n\n        canvas.removeEventListener(\"pointerdown\", roamPdFn);\n        roamPdFn = undefined;\n\n        window.viewer.modules.controls.getTarget(MenuOperation.lastRoadCameraTarget);\n        window.viewer.modules.controls.getPosition(MenuOperation.lastRoadCameraPos);\n\n        const point = new THREE.Vector3(intersect.point.x, intersect.point.y + 2, intersect.point.z);\n        MenuOperation.Roaming.playerInitPos.copy(point);\n\n        MenuOperation.Roaming.startRoaming();\n\n        // 第三人称\n        window.viewer.modules.controls.maxPolarAngle = Math.PI / 2;\n        window.viewer.modules.controls.minDistance = 0.8;\n        window.viewer.modules.controls.maxDistance = 0.8;\n        window.viewer.modules.controls.distance = 0.8;\n\n        Hooks.useDispatchSignal(\"sceneGraphChanged\");\n      }\n      return null;\n    }\n\n    pointerlockFn = () => {\n      if (document.pointerLockElement) {\n        // console.log(\"指针被锁定到：\", document.pointerLockElement);\n      } else {\n        // console.log(\"指针锁定状态现已解锁\");\n        MenuOperation.roaming();\n      }\n    }\n    // 监听鼠标锁定取消\n    document.addEventListener(\"pointerlockchange\", pointerlockFn);\n\n    // 监听选取初始位置\n    roamPdFn = handlePointerDown.bind(this);\n    canvas.addEventListener(\"pointerdown\", roamPdFn);\n  }\n\n  // 退出漫游\n  static leaveRoaming() {\n    MenuOperation.Roaming.exitRoaming(MenuOperation.lastRoadCameraPos,MenuOperation.lastRoadCameraTarget);\n\n    if (roamPdFn) {\n      window.viewer.renderer.domElement.removeEventListener(\"pointerdown\", roamPdFn);\n      roamPdFn = null;\n    }\n\n    if (pointerlockFn) {\n      document.removeEventListener(\"pointerlockchange\", pointerlockFn);\n      pointerlockFn = null;\n    }\n  }\n\n  // 小地图\n  static miniMap() {\n    if (MenuOperation.MiniMap.isShow) {\n      operationStore.menuList.miniMap.active = false;\n      MenuOperation.MiniMap.close();\n    } else {\n      operationStore.menuList.miniMap.active = true;\n      MenuOperation.MiniMap.open();\n    }\n  }\n\n  // 设置\n  static settings(){\n    operationStore.menuList.settings.active = !operationStore.menuList.settings.active;\n  }\n\n  static fullscreen() {\n    operationStore.menuList.fullscreen.show = false;\n    operationStore.menuList.exitFullscreen.show = true;\n\n    enterFullscreen();\n  }\n\n  static exitFullscreen() {\n    operationStore.menuList.fullscreen.show = true;\n    operationStore.menuList.exitFullscreen.show = false;\n\n    exitFullscreen();\n  }\n}"
  },
  {
    "path": "packages/editor/src/utils/service/error.ts",
    "content": "import type { AxiosError, AxiosResponse } from 'axios';\nimport {\n  DEFAULT_REQUEST_ERROR_CODE,\n  DEFAULT_REQUEST_ERROR_MSG,\n  ERROR_STATUS,\n  NETWORK_ERROR_CODE,\n  NETWORK_ERROR_MSG,\n  REQUEST_TIMEOUT_CODE,\n  REQUEST_TIMEOUT_MSG\n} from '@/config/service';\nimport { showErrorMsg } from './msg';\nimport {Service} from \"../../../types/network\";\n\ntype ErrorStatus = keyof typeof ERROR_STATUS;\n\n/**\n * 策略模式\n * @param actions 每一种可能执行的操作\n */\nexport function exeStrategyActions(actions: Common.StrategyAction[]) {\n    actions.some(item => {\n        const [flag, action] = item;\n        if (flag) {\n            action();\n        }\n        return flag;\n    });\n}\n\n/**\n * 处理axios请求失败的错误\n * @param axiosError - 错误\n */\nexport function handleAxiosError(axiosError: AxiosError) {\n  const error: Service.RequestError = {\n    type: 'axios',\n    code: DEFAULT_REQUEST_ERROR_CODE,\n    msg: DEFAULT_REQUEST_ERROR_MSG\n  };\n\n  const actions: Common.StrategyAction[] = [\n    [\n      // 网路错误\n      !window.navigator.onLine || axiosError.message === 'Network Error',\n      () => {\n        Object.assign(error, { code: NETWORK_ERROR_CODE, msg: NETWORK_ERROR_MSG });\n      }\n    ],\n    [\n      // 超时错误\n      axiosError.code === REQUEST_TIMEOUT_CODE && axiosError.message.includes('timeout'),\n      () => {\n        Object.assign(error, { code: REQUEST_TIMEOUT_CODE, msg: REQUEST_TIMEOUT_MSG });\n      }\n    ],\n    [\n      // 请求不成功的错误\n      Boolean(axiosError.response),\n      () => {\n        const errorCode: ErrorStatus = (axiosError.response?.status as ErrorStatus) || 'DEFAULT';\n        // @ts-ignore\n        const msg = axiosError.response?.data?.message || ERROR_STATUS[errorCode] || DEFAULT_REQUEST_ERROR_MSG;\n        Object.assign(error, { code: errorCode, msg });\n      }\n    ]\n  ];\n\n  exeStrategyActions(actions);\n\n  showErrorMsg(error);\n\n  return error;\n}\n\n/**\n * 处理请求成功后的错误\n * @param response - 请求的响应\n */\nexport function handleResponseError(response: AxiosResponse) {\n  const error: Service.RequestError = {\n    type: 'axios',\n    code: DEFAULT_REQUEST_ERROR_CODE,\n    msg: DEFAULT_REQUEST_ERROR_MSG\n  };\n\n  if (!window.navigator.onLine) {\n    // 网路错误\n    Object.assign(error, { code: NETWORK_ERROR_CODE, msg: NETWORK_ERROR_MSG });\n  } else {\n    // 请求成功的状态码非200的错误\n    const errorCode: ErrorStatus = response.status as ErrorStatus;\n    const msg = response.data.message || ERROR_STATUS[errorCode] || DEFAULT_REQUEST_ERROR_MSG;\n    Object.assign(error, { type: 'http', code: errorCode, msg });\n  }\n\n  showErrorMsg(error);\n\n  return error;\n}\n\n/**\n * 处理后端返回的错误(业务错误)\n * @param backendResult - 后端接口的响应数据\n */\nexport function handleBackendError(backendResult: Record<string, any>, config: Service.BackendResultConfig) {\n  const { codeKey, msgKey } = config;\n  const error: Service.RequestError = {\n    type: 'backend',\n    code: backendResult[codeKey],\n    msg: backendResult[msgKey]\n  };\n\n  showErrorMsg(error);\n\n  return error;\n}\n"
  },
  {
    "path": "packages/editor/src/utils/service/fetchController.ts",
    "content": "/**\n * 创建一个handlerFetch\n *\n * @param limit 并发控制 \n * @param timeout 超时设\n * @return function 返回一个函数\n */\nexport function fetchController (limit:number, timeout:number | boolean) {\n    limit = limit || 1;\n    timeout = timeout || false;\n    let count = 0, pool:any = [];\n    \n    return function (url:string, options?:any) {\n        // 通过AbortController 控制 取消fetch 请求\n        let controller = new AbortController();\n        let signal = controller.signal;\n        // 判断是否需要超时\n        let isTimeout = options && options.timeout || timeout;\n\n        // 控制请求超时\n        let timeoutPromise = () => {\n            return new Promise((reject) => {\n                setTimeout(() => {\n                    // resolve('请求超时');\n                    reject('请求超时');\n                    controller.abort();\n                }, options?.timeout || timeout)\n            })\n        }\n\n        // 返回fetch 本身\n        let taskPromise = () => new Promise((resolve, reject) => {\n            fetch(url, { signal, ...options }).then(res => {\n                resolve(res);\n            }).catch(err => {\n                reject(err)\n            })\n        });\n\n        // 通过Promise.race可以控制超时，并在访问结果中 去继续调用等待池中的请求\n        let task = () => (isTimeout ? Promise.race([timeoutPromise(), taskPromise()]) : taskPromise())\n            .then((res) => {\n                options.onSuccess && options.onSuccess(res)\n                next();\n            })\n            .catch((err) => {\n                options.onError && options.onError(err)\n                next();\n            });\n\n        // 定一个next 控制等待队列中的请求继续并发调用\n        let next = () => {\n            // 每执行一次next count - 1，然后比较当前的count 与 limit\n            // 如果小于limit 循环执行limit-count 次\n            count--;\n            if (count < limit && pool.length) {\n                let n = limit - count;\n                for (let i = 0; i < n; i++) {\n                    let curTask:any = pool.shift();\n                    curTask();\n                    ++count;\n                }\n            }\n        };\n\n        // 比较count与limit 大于等于limit的推入等待队列 小于limit的 count + 1，并执行fetch请求\n        if (count >= limit) {\n            pool.push(task);\n        } else {\n            ++count;\n            task();\n        }\n    }\n}\n"
  },
  {
    "path": "packages/editor/src/utils/service/handler.ts",
    "content": "import {Service} from \"~/network\";\n\n/** 统一失败和成功的请求结果的数据类型 */\nexport async function handleServiceResult(error: Service.RequestError | null, data: any, other?: any) {\n  if (error) {\n    const fail: Service.FailedResult = {\n      error,\n      data: null\n    };\n    return fail;\n  }\n  const success: any = {\n    error: null,\n    data,\n    other\n  };\n  return success;\n}\n\n/** 请求结果的适配器：用于接收适配器函数和请求结果 */\nexport function adapter<T extends Service.ServiceAdapter>(\n  adapterFun: T,\n  ...args: Service.MultiRequestResult<any>\n): Service.RequestResult<ReturnType<T>> {\n  let result: Service.RequestResult | undefined;\n\n  const hasError = args.some((item:any) => {\n    const flag = Boolean(item.error);\n    if (flag) {\n      result = {\n        error: item.error,\n        data: null\n      };\n    }\n    return flag;\n  });\n\n  if (!hasError) {\n    const adapterFunArgs = args.map(item => item.data);\n    result = {\n      error: null,\n      data: adapterFun(...adapterFunArgs)\n    };\n  }\n\n  return result!;\n}\n"
  },
  {
    "path": "packages/editor/src/utils/service/index.ts",
    "content": "export * from './error';\nexport * from './handler';\n"
  },
  {
    "path": "packages/editor/src/utils/service/msg.ts",
    "content": "import { ERROR_MSG_DURATION, NO_ERROR_MSG_CODE } from '@/config/service';\n\n/** 错误消息栈，防止同一错误同时出现 */\nconst errorMsgStack = new Map<string | number, string>([]);\n\nfunction addErrorMsg(error: Service.RequestError) {\n  errorMsgStack.set(error.code, error.msg);\n}\nfunction removeErrorMsg(error: Service.RequestError) {\n  errorMsgStack.delete(error.code);\n}\nfunction hasErrorMsg(error: Service.RequestError) {\n  return errorMsgStack.has(error.code);\n}\n\n/**\n * 显示错误信息\n * @param error\n */\nexport function showErrorMsg(error: Service.RequestError) {\n  if (!error.msg || NO_ERROR_MSG_CODE.includes(error.code) || hasErrorMsg(error)) return;\n\n  addErrorMsg(error);\n  window.console.warn(error.code, error.msg);\n  window.$message?.error(error.msg, { duration: ERROR_MSG_DURATION });\n  setTimeout(() => {\n    removeErrorMsg(error);\n  }, ERROR_MSG_DURATION);\n}\n"
  },
  {
    "path": "packages/editor/src/utils/signals/signalRegister.ts",
    "content": "import {Utils} from '@astral3d/engine';\n\n/**\n * 其他不便分类的\n */\nconst otherSignal = [\n    // 编辑脚本\n    \"editScript\",\n    // 场景树变化\n    \"sceneTreeChange\",\n]\n\nUtils.SignalsRegisterFn([\n    ...otherSignal\n])"
  },
  {
    "path": "packages/editor/src/utils/storage/config.ts",
    "content": "import type {Storage} from \"@astral3d/engine\";\n\nexport default class Config {\n    private static storage: Storage;\n    public static config: { [s: string]: any };\n\n    static initialize(storage: Storage) {\n        Config.storage = storage;\n        Config.config = {\n            // 场景界面与扩展面板分割大小\n            sceneSplitSize: 0.8,\n            // 图纸绘制区\n            cad:{\n                bgColor:0x000000\n            }\n\n        };\n\n        for (let key of Object.keys(Config.config)) {\n            Config.storage.getConfigItem(key).then(_value => {\n                if (_value === null) {\n                    Config.storage.setConfigItem(key, Config.config[key]);\n                } else {\n                    let newVal = _value;\n                    // 有可能会在代码开发过程中增加新的配置项\n                    if (Config.config[key] && typeof Config.config[key] === \"object\") {\n                        newVal = Object.assign({}, Config.config[key], _value);\n                    }\n                    Config.config[key] = newVal;\n\n                    if (newVal !== _value) {\n                        Config.storage.setConfigItem(key, newVal);\n                    }\n                }\n            }).catch(() => {\n                Config.storage.setConfigItem(key, Config.config[key]);\n            });\n        }\n    }\n\n    static getKey(key: string) {\n        return Config.config[key];\n    }\n\n    static setKey(...args: any[]) {\n        // key, value, key, value ...\n        for (let i = 0, l = args.length; i < l; i += 2) {\n            const key = args[i];\n            const value = args[i + 1];\n            Config.config[key] = value;\n            Config.storage.setConfigItem(key, value);\n        }\n    }\n\n    static clear() {\n        for (let key of Object.keys(Config.config)) {\n            Config.storage.removeConfigItem(key);\n        }\n    }\n}\n\n// 初始化配置\nexport const initializeConfig = (storage) => Config.initialize(storage);"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/ExtraPane.vue",
    "content": "<template>\n    <div class=\"w-full h-full relative\">\n        <div class=\"extra-pane-header w-full px-2 flex items-center justify-between\">\n            <n-popselect v-model:value=\"selected\" :options=\"options\" :render-label=\"renderLabel\" trigger=\"click\"\n                scrollable>\n                <n-button strong secondary size=\"small\" icon-placement=\"right\" class=\"w-130px z-1000\">\n                    <n-icon :size=\"14\" class=\"mr-0.1rem\">\n                        <component :is=\"options[selectedIndex].icon\" />\n                    </n-icon>\n                    {{ options[selectedIndex].label }}\n\n                    <template #icon>\n                        <n-icon :size=\"16\">\n                            <CaretDown />\n                        </n-icon>\n                    </template>\n                </n-button>\n            </n-popselect>\n        </div>\n\n        <div class=\"extra-pane-content\">\n            <component :is=\"options[selectedIndex].component\" />\n        </div>\n    </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, h } from 'vue';\nimport { NIcon, useThemeVars } from 'naive-ui';\nimport { CaretDown, VolumeFileStorage, AlignBoxTopLeft, SankeyDiagram } from '@vicons/carbon';\nimport Resource from './resource/index.vue';\nimport Log from './log/index.vue';\nimport Animation from './animation/index.vue';\n\nconst themeVars = useThemeVars();\nconst cardColor = computed(() => themeVars.value.cardColor);\nconst dividerColor = computed(() => themeVars.value.dividerColor);\n\nconst selected = ref('resource');\nconst selectedIndex = computed(() => options.findIndex(item => item.value === selected.value) || 0);\nconst options = [\n    {\n        label: '资源中心',\n        value: 'resource',\n        icon: VolumeFileStorage,\n        component: Resource\n    },\n    {\n        label: '动画编辑器',\n        value: 'animation',\n        icon: SankeyDiagram,\n        component: Animation\n    },\n    {\n        label: '日志',\n        value: 'logs',\n        icon: AlignBoxTopLeft,\n        component: Log\n    }\n];\n\nfunction renderLabel(option: any) {\n    return [\n        h(\n            NIcon,\n            {\n                style: {\n                    verticalAlign: '-0.15em',\n                    marginRight: '4px'\n                }\n            },\n            {\n                default: () => h(option.icon)\n            }\n        ),\n        option.label as string\n    ]\n}\n</script>\n\n<style scoped lang=\"less\">\n.extra-pane-header {\n    height: var(--scene-extend-header-height);\n    background-color: v-bind(cardColor);\n    border-bottom: 1px solid v-bind(dividerColor);\n}\n\n.extra-pane-content {\n    height: calc(100% - var(--scene-extend-header-height));\n\n    :deep(.extra-pane-item) {\n        height: 100%;\n        width: 100%;\n        position: absolute;\n        left: 0;\n        top: 0;\n\n        &-header {\n            height: var(--scene-extend-header-height);\n            width: calc(100% - 1rem - 130px);\n            padding-left: calc(0.5rem + 135px);\n            display: flex;\n            align-items: center;\n            justify-content: start;\n        }\n\n        &-content {\n            height: calc(100% - var(--scene-extend-header-height) - 1px);\n            margin-top: 1px;\n            width: 100%;\n            overflow-y: auto;\n        }\n    }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/animation/Animation.vue",
    "content": "<template>\n  <div class=\"w-full h-full flex\">\n    <div class=\"h-full w-20%\">\n      <div class=\"w-calc-1rem h-2rem px-2 flex items-center\">\n        <AnimationList/>\n\n        <n-tooltip trigger=\"hover\">\n          <template #trigger>\n            <n-button text class=\"ml-1\" @click=\"handleAddAnimation\">\n              <template #icon>\n                <n-icon size=\"1.5rem\">\n                  <Add />\n                </n-icon>\n              </template>\n            </n-button>\n          </template>\n          {{ t(\"extra.New animation\") }}\n        </n-tooltip>\n\n        <!-- 锁定/取消锁定父模型  -->\n        <n-tooltip trigger=\"hover\">\n          <template #trigger>\n            <n-button text class=\"ml-1\" @click=\"handleLock\">\n              <template #icon>\n                <n-icon size=\"1rem\">\n                  <Locked v-if=\"isLock\" />\n                  <Unlocked v-else />\n                </n-icon>\n              </template>\n            </n-button>\n          </template>\n          {{ isLock ? t(\"extra.Locked\") : t(\"extra.Unlocked\") }}\n        </n-tooltip>\n      </div>\n      <div class=\"h-calc-2rem overflow-y-auto\" id=\"outline-scroll-container\" @wheel=\"outlineMouseWheel\">\n        <div ref=\"outlineRef\">\n          <n-tree block-line :data=\"animationStore.trackTree\" default-expand-all expand-on-click show-lin\n                  @update:expanded-keys=\"handleChangeExpanded\"/>\n        </div>\n      </div>\n    </div>\n\n    <div ref=\"trackRef\" class=\"animation-track h-full w-80%\"></div>\n\n<!--    <EsContextmenu ref=\"treeContextMenuRef\" :options=\"options\" @select=\"handleTreeContextMenuSelect\" placement=\"right-end\" />-->\n\n    <EsContextmenu ref=\"contextMenuRef\" :options=\"options\" @select=\"handleTrackSelect\" placement=\"right-end\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref, onMounted, onBeforeUnmount, watch, nextTick,h} from 'vue';\nimport {useThemeVars,NInput} from 'naive-ui';\nimport {Add,Locked,Unlocked} from '@vicons/carbon';\nimport {t} from \"@/language\";\nimport {App,TimelineTrack} from \"@astral3d/engine\";\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\nimport {useAnimationStore} from \"@/store/modules/animation\";\nimport {remToPxNumber} from \"@/utils/common/utils\";\nimport AnimationList from './AnimationList.vue';\nimport EsContextmenu from \"@/components/es/EsContextmenu.vue\";\n\nconst themeVars = useThemeVars();\nconst globalStore = useGlobalConfigStore();\nconst animationStore = useAnimationStore();\n\nconst props = withDefaults(defineProps<{\n  isSelectObject3D: boolean\n}>(), {\n  isSelectObject3D: false\n})\n\n// 是否锁定了父模型\nconst isLock = ref(false);\n/* 主体 */\nlet timeline:TimelineTrack;\nconst trackRef = ref();\nconst outlineRef = ref();\n\n/* 右键菜单 */\nconst treeContextMenuRef = ref();\nconst contextMenuRef = ref();\nconst options = [\n  {\n    label: t(\"extra.Delete selected keyframes\"),\n    key: 'del'\n  }\n];\n\n// 实例化动画轨道\nfunction initTimeline() {\n  nextTick(() => {\n    timeline = new TimelineTrack(trackRef.value, outlineRef.value, getTimelineTrackOption());\n\n    animationStore.setTimelineInstance(timeline);\n\n    timeline.addEventListener(\"contextmenu\", (event) => {\n      const e = event.args.args as MouseEvent;\n      if(!e) return;\n      contextMenuRef.value.show(e.clientX, e.clientY);\n    })\n  })\n}\n\n// 动画轨道配置\nfunction getTimelineTrackOption() {\n  return {\n    headerHeight: remToPxNumber(2),\n    headerFillColor: themeVars.value.baseColor,\n    fillColor: themeVars.value.tagColor,\n    labelsColor: themeVars.value.textColor2,\n    tickColor: themeVars.value.textColor3,\n    selectionColor: themeVars.value.primaryColor,\n    rowsStyle: {\n      height: remToPxNumber(1.5),\n      fillColor: themeVars.value.cardColor,\n      marginBottom: 2,\n      keyframesStyle: {\n        fillColor: themeVars.value.primaryColorHover,\n      },\n      groupsStyle: {\n        text: {\n          fillColor: themeVars.value.textColorDisabled,\n        }\n      }\n    },\n    timelineStyle: {\n      fillColor: themeVars.value.primaryColor,\n      strokeColor: themeVars.value.primaryColor,\n      capStyle: {\n        fillColor: themeVars.value.primaryColorPressed,\n        width: remToPxNumber(0.4),\n        height: remToPxNumber(0.6),\n      }\n    }\n  }\n}\n\n// 当鼠标在轮廓上滚动时，设置滚动回时间轴\nfunction outlineMouseWheel(event) {\n  if (timeline) {\n    timeline.timeline._handleWheelEvent(event);\n  }\n}\n\n// @ts-ignore 树节点展开/收缩项变化\nfunction handleChangeExpanded(keys, meta, action) {\n  const ids: string[] = [];\n  const recursion = (node) => {\n    node.children.forEach(c => {\n      if (c.isLeaf) {\n        ids.push(c.key);\n      } else {\n        recursion(c);\n      }\n    })\n  }\n  recursion(action.node);\n  timeline.setRowIsVisible(ids, action.action === \"expand\");\n}\n\n// 新增动画\nfunction handleAddAnimation() {\n  const v = ref(\"\");\n  const status = ref(\"\");\n\n  window.$dialog.info({\n    title: t(\"extra.New animation\"),\n    content: () => h(\n        NInput,\n        {\n          placeholder: t(\"prompt.Please enter the animation name\"),\n          modelValue: v.value,\n          clearable: true,\n          // size: \"small\",\n          status: status.value,\n          onUpdateValue: (n: string) => {\n            v.value = n;\n            status.value = !v.value ? \"error\" : \"\";\n          },\n          onBlur: () => {\n            status.value = !v.value ? \"error\" : \"\";\n          }\n        }\n    ),\n    positiveText: t(\"other.Ok\"),\n    negativeText: t(\"other.Cancel\"),\n    onPositiveClick: () => {\n      if (!v.value) return false;\n\n      // 检查名称是否重复\n      if (animationStore.list.find((s) => s.name === v.value)) {\n        window.$message?.error(t(\"prompt.The name already exists\"));\n\n        return false;\n      }\n\n      // 创建临时空动画\n      const clipAction = App.animationManager.createEmptyAnimation(v.value);\n      if(!clipAction){\n        window.$message?.error(t(\"prompt.Failed to create animation\"));\n        return false;\n      }\n\n      const newAnimation = {\n        name: v.value,\n        uuid: clipAction.getClip().uuid,\n        isRunning: clipAction.isRunning(),\n        isPaused: clipAction.paused,\n      }\n\n      animationStore.setList([...animationStore.list, newAnimation],newAnimation);\n    },\n  })\n}\n\n// 锁定模型\nfunction handleLock() {\n  isLock.value = !isLock.value;\n  isLock.value ? App.lock() : App.unlock();\n}\n\n// 节点点击\n// function handleNodeProps({ option }: { option: TreeOption }) {\n//   return {\n//     onContextmenu(e: MouseEvent): void {\n//       treeContextMenuRef.value.show(e.clientX, e.clientY)\n//       console.log(option)\n//\n//       e.preventDefault()\n//     }\n//   }\n// }\n\n// 树右键菜单触发\n// function handleTreeContextMenuSelect(key: string | number) {\n//   switch (key) {\n//     case 'del':\n//       timeline && timeline.deleteRow();\n//       break;\n//   }\n// }\n\n// 轨道右键菜单触发\nfunction handleTrackSelect(key: string | number){\n  switch(key){\n    case 'del':\n      timeline && timeline.deleteSelectedKeyframes();\n      break;\n  }\n}\n\nonMounted(() => {\n  // Timeline的实例化必须在对应dom元素第一次显示后，否则会由于dom宽高为0而缺失刻度\n  props.isSelectObject3D && initTimeline();\n})\nonBeforeUnmount(() => {\n  timeline && timeline.dispose();\n});\n\nwatch(() => props.isSelectObject3D, () => {\n  timeline || initTimeline();\n})\n\n// 主题跟随改变\nwatch(() => globalStore.theme, () => {\n  timeline && timeline.setOptions(getTimelineTrackOption());\n})\nwatch(() => globalStore.mainColor, () => {\n  timeline && timeline.setOptions(getTimelineTrackOption());\n})\n</script>\n\n<style lang=\"less\" scoped>\n:deep(.n-tree-node-wrapper) {\n  height: 1.5rem;\n  margin-bottom: 2px;\n\n  .n-tree-node {\n    height: 100%;\n\n    .n-tree-node-switcher {\n      height: 100%;\n    }\n  }\n}\n\n.animation-track {\n  .scroll-container {\n    background: transparent !important;\n\n    &::-webkit-scrollbar-track {\n      background-color: rgba(16, 16, 17, 0.6);\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/animation/AnimationList.vue",
    "content": "<template>\n    <n-select value-field=\"uuid\" label-field=\"name\" size=\"small\" :value=\"value\" :options=\"animationStore.list\" @update:value=\"handleCurrentChange\" />\n</template>\n\n<script setup>\nimport { computed } from \"vue\";\nimport { useAnimationStore } from \"@/store/modules/animation\";\n\nconst animationStore = useAnimationStore();\n\nconst value = computed(() => animationStore.current ? animationStore.current.uuid : \"\");\n\nfunction handleCurrentChange(value){\n    const current = animationStore.list.find(a => a.uuid === value);\n    animationStore.setCurrent(current);\n}\n</script>\n\n<style lang=\"less\" scoped>\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/animation/index.vue",
    "content": "<template>\n  <div class=\"extra-pane-item\">\n    <div class=\"extra-pane-item-header\">\n      <span></span>\n      <n-button-group size=\"tiny\">\n        <!-- 跳转至开始 -->\n        <n-tooltip trigger=\"hover\">\n          <template #trigger>\n            <n-button ghost @click=\"animationStore.jumpToStart()\">\n              <template #icon>\n                <n-icon>\n                  <SkipBackFilled/>\n                </n-icon>\n              </template>\n            </n-button>\n          </template>\n          {{ t(\"extra.Jump to first frame\") }}\n        </n-tooltip>\n\n        <!-- 播放 -->\n        <n-tooltip trigger=\"hover\" v-if=\"!animationStore.current?.isRunning\">\n          <template #trigger>\n            <n-button ghost @click=\"animationStore.play\">\n              <template #icon>\n                <n-icon>\n                  <PlayFilledAlt/>\n                </n-icon>\n              </template>\n            </n-button>\n          </template>\n          {{ t(\"layout.sider.animation.Play\") }}\n        </n-tooltip>\n\n        <template v-else>\n          <!-- 暂停 -->\n          <n-tooltip trigger=\"hover\" v-if=\"!animationStore.current?.isPaused\">\n            <template #trigger>\n              <n-button ghost @click=\"animationStore.pause\">\n                <template #icon>\n                  <n-icon>\n                    <PauseFilled/>\n                  </n-icon>\n                </template>\n              </n-button>\n            </template>\n            {{ t(\"layout.sider.animation.Pause\") }}\n          </n-tooltip>\n\n          <!-- 继续 -->\n          <n-tooltip trigger=\"hover\" v-else>\n            <template #trigger>\n              <n-button ghost @click=\"animationStore.pause\">\n                <template #icon>\n                  <n-icon>\n                    <ContinueFilled/>\n                  </n-icon>\n                </template>\n              </n-button>\n            </template>\n            {{ t(\"layout.sider.animation.Continue\") }}\n          </n-tooltip>\n\n          <!-- 停止 -->\n          <n-tooltip trigger=\"hover\">\n            <template #trigger>\n              <n-button ghost @click=\"animationStore.stop\">\n                <template #icon>\n                  <n-icon>\n                    <StopFilledAlt/>\n                  </n-icon>\n                </template>\n              </n-button>\n            </template>\n            {{ t(\"layout.sider.animation.Stop\") }}\n          </n-tooltip>\n        </template>\n\n        <!-- 跳转至结束 -->\n        <n-tooltip trigger=\"hover\">\n          <template #trigger>\n            <n-button @click=\"animationStore.jumpToEnd()\">\n              <template #icon>\n                <n-icon>\n                  <SkipForwardFilled/>\n                </n-icon>\n              </template>\n            </n-button>\n          </template>\n          {{ t(\"extra.Jump to last frame\") }}\n        </n-tooltip>\n      </n-button-group>\n\n      <div class=\"flex\">\n        <n-text type=\"success\"> {{ animationStore.getFormattedCurrentTime }}</n-text>\n        <span>&nbsp;/&nbsp;</span>\n        <n-text> {{ animationStore.getFormattedDuration }}</n-text>\n      </div>\n    </div>\n\n    <div class=\"extra-pane-item-content\">\n      <Animation v-show=\"isSelectObject3D\" :isSelectObject3D=\"isSelectObject3D\"/>\n\n      <n-result v-show=\"!isSelectObject3D\" status=\"418\" title=\"Empty\" class=\"h-full flex-center flex-col\"\n                :description=\"t('prompt[\\'No object selected.\\']')\"/>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref, onMounted, onBeforeMount} from 'vue';\nimport {\n  SkipBackFilled,\n  PlayFilledAlt,\n  PauseFilled,\n  ContinueFilled,\n  StopFilledAlt,\n  SkipForwardFilled\n} from '@vicons/carbon';\nimport {t} from \"@/language\";\nimport {App,Hooks,Timeline} from '@astral3d/engine';\nimport {useAnimationStore} from \"@/store/modules/animation\";\nimport Animation from './Animation.vue';\n\nconst animationStore = useAnimationStore();\n\nconst isSelectObject3D = ref(false);\n\nfunction objectSelected(object) {\n  isSelectObject3D.value = !!object;\n}\n\n// 动画轨道时间变化(游标拖动)\nfunction timelineTimeChanged(args: Timeline.TimelineTimeChangedEvent) {\n  animationStore.currentTime = args.val;\n}\n\n//  动画轨道行变化（添加/删除）\nfunction timelineRowChanged() {\n  // 刷新树和轨道行\n  animationStore.setCurrent(animationStore.current);\n}\n\nonMounted(() => {\n  isSelectObject3D.value = !!App.selected;\n  Hooks.useAddSignal(\"objectSelected\", objectSelected);\n  Hooks.useAddSignal(\"timelineTimeChanged\", timelineTimeChanged);\n  Hooks.useAddSignal(\"timelineRowChanged\", timelineRowChanged);\n})\nonBeforeMount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", objectSelected);\n  Hooks.useRemoveSignal(\"timelineTimeChanged\", timelineTimeChanged);\n  Hooks.useRemoveSignal(\"timelineRowChanged\", timelineRowChanged);\n})\n</script>\n\n<style lang=\"less\" scoped>\n.extra-pane-item-header {\n  padding-left: 0;\n  justify-content: space-between !important;\n}\n\n.extra-pane-item-content {\n  overflow-y: hidden;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/log/index.vue",
    "content": "<template>\n  <div class=\"extra-pane-item\">\n    <div class=\"extra-pane-item-header\">\n      <n-button quaternary size=\"tiny\" :disabled=\"!logs.length\"\n                @click=\"handleClearLogs\" class=\"mr-2\">{{ t(\"layout.header.Clear Out\") }}\n      </n-button>\n    </div>\n\n    <div class=\"extra-pane-item-content\">\n      <n-list v-if=\"logs.length\" hoverable clickable>\n        <n-list-item v-for=\"log in logs\" :key=\"log.id\" @contextmenu=\"(e) => handleContextMenu(e, log)\">\n          <n-text depth=\"3\" class=\"text-12px mr-2 no-wrap h-22px flex-center\">\n            {{ log.time }}\n          </n-text>\n\n          <span class=\"inline-block min-w-55px\">\n                        <n-tag :type=\"getType(log.level)\" size=\"small\">\n                            {{ log.level }}\n                        </n-tag>\n                    </span>\n\n          <n-text :type=\"getType(log.level)\" depth=\"2\" class=\"astral-log-message inline-block inline-block\">\n            {{ log.message }}\n          </n-text>\n        </n-list-item>\n      </n-list>\n\n      <n-empty v-else description=\"Empty\" class=\"flex-center h-full\"/>\n\n      <EsContextmenu ref=\"contextmenuRef\" placement=\"right\" trigger=\"manual\" size=\"small\"\n                     :options=\"contextmenuOptions\" @select=\"handleContextmenuSelect\"/>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref, onMounted, onBeforeUnmount} from 'vue';\nimport {Hooks, Utils} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport {copyToClipboard} from \"@/utils/common/utils\";\n\nconst logs = ref<Utils.ILog[]>([]);\nlet selectedLog: Utils.ILog | null = null;\nconst contextmenuRef = ref();\nconst contextmenuOptions = [\n  {\n    label: t(\"other.Copy\"),\n    key: 'copy'\n  },\n  {\n    label: t(\"home.Delete\"),\n    key: 'delete'\n  }\n];\n\nonMounted(() => {\n  logs.value = [...Utils.logger.logs]\n  Hooks.useAddSignal(\"addLog\", addLog);\n})\n\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"addLog\", addLog);\n})\n\nfunction addLog(log: Utils.ILog, _logs: Utils.ILog[]) {\n  logs.value.unshift(log);\n}\n\nfunction getType(level: string) {\n  switch (level) {\n    case \"trace\":\n      return \"primary\";\n    case \"debug\":\n      return \"info\";\n    case \"info\":\n      return \"default\";\n    case \"warn\":\n      return \"warning\";\n    case \"error\":\n      return \"error\";\n  }\n}\n\nfunction handleContextMenu(e: MouseEvent, log: Utils.ILog) {\n  e.preventDefault();\n\n  selectedLog = log;\n\n  contextmenuRef.value.show(e.clientX, e.clientY);\n}\n\nfunction handleContextmenuSelect(key: string) {\n  switch (key) {\n    case \"copy\":\n      if (selectedLog) {\n        copyToClipboard(selectedLog?.message).then((msg: string) => {\n          window.$message?.success(msg);\n        }).catch((msg: string) => {\n          window.$message?.error(msg);\n        });\n      }\n      break;\n    case \"delete\":\n      logs.value = logs.value.filter(l => l.id !== selectedLog?.id);\n      Hooks.useDispatchSignal(\"deleteLog\", selectedLog);\n      selectedLog = null;\n      break;\n  }\n}\n\n// 清空\nfunction handleClearLogs() {\n  logs.value = [];\n  Hooks.useDispatchSignal(\"clearLogs\");\n}\n</script>\n\n<style scoped lang=\"less\">\n.extra-pane-item-header {\n  justify-content: end !important;\n}\n\n.n-list-item {\n  padding: 0.4rem 0.6rem !important;\n\n  :deep(.n-list-item__main) {\n    display: flex;\n    align-items: self-start;\n  }\n}\n\n.astral-log-message {\n  word-wrap: break-word;\n  word-break: break-all;\n  overflow: hidden;\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/Billboard.vue",
    "content": "<template>\n  <div id=\"extra-resource-billboards\" class=\"flex flex-col\">\n    <!-- 子分类标签 -->\n    <div class=\"mb-3 flex flex-wrap items-center gap-2\">\n      <n-button v-for=\"subCategory in subCategories\" :key=\"subCategory.key\" strong secondary round\n                :type=\"activeSubCategory === subCategory.key ? 'primary' : 'default'\"\n                @click=\"selectSubCategory(subCategory.key)\">\n        {{ subCategory.name }}\n      </n-button>\n    </div>\n\n    <!-- 资源网格 -->\n    <div class=\"flex-1 overflow-y-auto\">\n      <div class=\"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-3\">\n        <n-card size=\"small\" hoverable v-for=\"item in filteredList\" :key=\"item.key\"\n                @contextmenu.prevent=\"handlePreview(item)\"\n                @dblclick=\"addToScene(item)\" draggable=\"true\" @dragstart=\"dragStart(item)\" @dragend=\"dragEnd\">\n          <template #cover>\n            <img :src=\"item.image\" :alt=\"item.key\" draggable=\"false\" class=\"!w-70% h-full object-cover\"/>\n          </template>\n          <n-tooltip placement=\"bottom\" trigger=\"hover\">\n            <template #trigger> {{ item.name.value || item.name }}</template>\n            <span> {{ item.name.value || item.name }} </span>\n          </n-tooltip>\n        </n-card>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {ref, inject, computed, h, nextTick} from \"vue\";\nimport type {Ref} from \"vue\";\nimport {NInput} from \"naive-ui\";\nimport {cpt, t} from \"@/language\";\nimport {useDragStore} from \"@/store/modules/drag\";\nimport {screenToWorld} from \"@/utils/common/scenes\";\nimport {App, AddObjectCommand, POSITION, Utils, Hooks,Billboard,getDefaultBillboardOptions} from \"@astral3d/engine\";\n\nconst searchText = inject('searchText') as Ref<string>;\nconst previewInfo = inject('previewInfo') as any;\nconst previewRef = inject('previewRef') as any;\n\nconst activeSubCategory = ref('icon');\nconst subCategories = ref([\n  {key: 'icon', name: cpt('extra.resource.billboard.Icon')},\n  {key: 'text', name: cpt('extra.resource.billboard.Text')},\n]);\n\nconst allList = {\n  \"icon\": [\n    {key: \"error\", image: \"/static/resource/billboard/icon/error.png\", name: cpt(\"extra.resource.billboard.Error\")},\n    {\n      key: \"location\",\n      image: \"/static/resource/billboard/icon/location.png\",\n      name: cpt(\"extra.resource.billboard.Location\")\n    },\n    {key: \"heart\", image: \"/static/resource/billboard/icon/heart.png\", name: cpt(\"extra.resource.billboard.Heart\")},\n    {key: \"flag\", image: \"/static/resource/billboard/icon/flag.png\", name: cpt(\"extra.resource.billboard.Flag\")},\n    {\n      key: \"bookmark\",\n      image: \"/static/resource/billboard/icon/bookmark.png\",\n      name: cpt(\"extra.resource.billboard.Bookmark\")\n    },\n    {\n      key: \"notification\",\n      image: \"/static/resource/billboard/icon/notification.png\",\n      name: cpt(\"extra.resource.billboard.Notification\")\n    },\n    {\n      key: \"notification2\",\n      image: \"/static/resource/billboard/icon/notification2.svg\",\n      name: cpt(\"extra.resource.billboard.Notification message\")\n    },\n    {key: \"home\", image: \"/static/resource/billboard/icon/home.png\", name: cpt(\"extra.resource.billboard.Home\")},\n    {\n      key: \"lightbulb\",\n      image: \"/static/resource/billboard/icon/lightbulb.png\",\n      name: cpt(\"extra.resource.billboard.Lightbulb\")\n    },\n    {key: \"warn\", image: \"/static/resource/billboard/icon/warn.png\", name: cpt(\"extra.resource.billboard.Warn\")},\n    {\n      key: \"comment\",\n      image: \"/static/resource/billboard/icon/comment.png\",\n      name: cpt(\"extra.resource.billboard.Comment\")\n    },\n    {\n      key: \"animal-paw-print\",\n      image: \"/static/resource/billboard/icon/animal-paw-print.svg\",\n      name: cpt(\"extra.resource.billboard.Animal paw print\")\n    },\n    {key: \"edit\", image: \"/static/resource/billboard/icon/edit.svg\", name: cpt(\"extra.resource.billboard.Edit\")},\n    {key: \"drafts\", image: \"/static/resource/billboard/icon/drafts.svg\", name: cpt(\"extra.resource.billboard.Drafts\")},\n    {\n      key: \"refresh\",\n      image: \"/static/resource/billboard/icon/refresh.svg\",\n      name: cpt(\"extra.resource.billboard.Refresh\")\n    },\n    {\n      key: \"correct\",\n      image: \"/static/resource/billboard/icon/correct.svg\",\n      name: cpt(\"extra.resource.billboard.Correct\")\n    },\n    {key: \"add\", image: \"/static/resource/billboard/icon/add.svg\", name: cpt(\"extra.resource.billboard.Add\")},\n    {key: \"book\", image: \"/static/resource/billboard/icon/book.svg\", name: cpt(\"extra.resource.billboard.Book\")},\n    {key: \"read\", image: \"/static/resource/billboard/icon/read.svg\", name: cpt(\"extra.resource.billboard.Read\")},\n    {key: \"clock\", image: \"/static/resource/billboard/icon/clock.svg\", name: cpt(\"extra.resource.billboard.Clock\")},\n    {\n      key: \"document\",\n      image: \"/static/resource/billboard/icon/document.svg\",\n      name: cpt(\"extra.resource.billboard.Document\")\n    },\n    {\n      key: \"building\",\n      image: \"/static/resource/billboard/icon/building.png\",\n      name: cpt(\"extra.resource.billboard.Building\")\n    },\n    {\n      key: \"building-multiple\",\n      image: \"/static/resource/billboard/icon/building-multiple.png\",\n      name: cpt(\"extra.resource.billboard.Building-multiple\")\n    },\n    {key: \"store\", image: \"/static/resource/billboard/icon/store.png\", name: cpt(\"extra.resource.billboard.Store\")},\n    {\n      key: \"question\",\n      image: \"/static/resource/billboard/icon/question.png\",\n      name: cpt(\"extra.resource.billboard.Question\")\n    },\n    {\n      key: \"arrow-down\",\n      image: \"/static/resource/billboard/icon/arrow-down.svg\",\n      name: cpt(\"extra.resource.billboard.Download\")\n    },\n    {key: \"share\", image: \"/static/resource/billboard/icon/share.svg\", name: cpt(\"extra.resource.billboard.Share\")},\n    {key: \"image\", image: \"/static/resource/billboard/icon/image.svg\", name: cpt(\"extra.resource.billboard.Image\")},\n    {key: \"globe\", image: \"/static/resource/billboard/icon/globe.svg\", name: cpt(\"extra.resource.billboard.Globe\")},\n    {key: \"link\", image: \"/static/resource/billboard/icon/link.svg\", name: cpt(\"extra.resource.billboard.Link\")},\n    {key: \"chat\", image: \"/static/resource/billboard/icon/chat.svg\", name: cpt(\"extra.resource.billboard.Chat\")},\n    {key: \"send\", image: \"/static/resource/billboard/icon/send.svg\", name: cpt(\"extra.resource.billboard.Send\")},\n    {\n      key: \"send-clock\",\n      image: \"/static/resource/billboard/icon/send-clock.svg\",\n      name: cpt(\"extra.resource.billboard.Send clock\")\n    },\n    {key: \"mail\", image: \"/static/resource/billboard/icon/mail.svg\", name: cpt(\"extra.resource.billboard.Mail\")},\n    {key: \"cloud\", image: \"/static/resource/billboard/icon/cloud.svg\", name: cpt(\"extra.resource.billboard.Cloud\")},\n    {\n      key: \"database\",\n      image: \"/static/resource/billboard/icon/database.svg\",\n      name: cpt(\"extra.resource.billboard.Database\")\n    },\n    {\n      key: \"diamond\",\n      image: \"/static/resource/billboard/icon/diamond.svg\",\n      name: cpt(\"extra.resource.billboard.Diamond\")\n    },\n    {\n      key: \"bar-chart\",\n      image: \"/static/resource/billboard/icon/bar-chart.svg\",\n      name: cpt(\"extra.resource.billboard.Bar chart\")\n    },\n    {\n      key: \"line-chart\",\n      image: \"/static/resource/billboard/icon/line-chart.svg\",\n      name: cpt(\"extra.resource.billboard.Line chart\")\n    },\n    {\n      key: \"pie-chart\",\n      image: \"/static/resource/billboard/icon/pie-chart.svg\",\n      name: cpt(\"extra.resource.billboard.Pie chart\")\n    },\n    {\n      key: \"area-chart\",\n      image: \"/static/resource/billboard/icon/area-chart.svg\",\n      name: cpt(\"extra.resource.billboard.Area chart\")\n    },\n    {\n      key: \"scatter-chart\",\n      image: \"/static/resource/billboard/icon/scatter-chart.svg\",\n      name: cpt(\"extra.resource.billboard.Scatter chart\")\n    },\n    {\n      key: \"trending-chart\",\n      image: \"/static/resource/billboard/icon/trending-chart.svg\",\n      name: cpt(\"extra.resource.billboard.Trending chart\")\n    },\n    {key: \"camera\", image: \"/static/resource/billboard/icon/camera.svg\", name: cpt(\"extra.resource.billboard.Camera\")},\n    {key: \"bot\", image: \"/static/resource/billboard/icon/bot.svg\", name: cpt(\"extra.resource.billboard.Bot\")},\n    {key: \"person\", image: \"/static/resource/billboard/icon/person.svg\", name: cpt(\"extra.resource.billboard.Person\")},\n    {key: \"people\", image: \"/static/resource/billboard/icon/people.svg\", name: cpt(\"extra.resource.billboard.People\")},\n    {key: \"team\", image: \"/static/resource/billboard/icon/team.svg\", name: cpt(\"extra.resource.billboard.Team\")},\n    {key: \"beach\", image: \"/static/resource/billboard/icon/beach.svg\", name: cpt(\"extra.resource.billboard.Beach\")},\n    {key: \"mic\", image: \"/static/resource/billboard/icon/mic.svg\", name: cpt(\"extra.resource.billboard.Mic\")},\n    {\n      key: \"speaker\",\n      image: \"/static/resource/billboard/icon/speaker.svg\",\n      name: cpt(\"extra.resource.billboard.Speaker\")\n    },\n    {key: \"webcam\", image: \"/static/resource/billboard/icon/webcam.svg\", name: cpt(\"extra.resource.billboard.Webcam\")},\n    {\n      key: \"setting\",\n      image: \"/static/resource/billboard/icon/settings.svg\",\n      name: cpt(\"extra.resource.billboard.Setting\")\n    },\n    {\n      key: \"printer\",\n      image: \"/static/resource/billboard/icon/printer.svg\",\n      name: cpt(\"extra.resource.billboard.Printer\")\n    },\n    {\n      key: \"elevator\",\n      image: \"/static/resource/billboard/icon/elevator.svg\",\n      name: cpt(\"extra.resource.billboard.Elevator\")\n    },\n    {\n      key: \"room-for-mother-and-infant\",\n      image: \"/static/resource/billboard/icon/room-for-mother-and-infant.svg\",\n      name: cpt(\"extra.resource.billboard.Room for mother and infant\")\n    },\n    {\n      key: \"restroom\",\n      image: \"/static/resource/billboard/icon/restroom.svg\",\n      name: cpt(\"extra.resource.billboard.Restroom\")\n    },\n    {\n      key: \"water-closet\",\n      image: \"/static/resource/billboard/icon/water-closet.svg\",\n      name: cpt(\"extra.resource.billboard.Water closet\")\n    },\n    {\n      key: \"parking-lot\",\n      image: \"/static/resource/billboard/icon/parking-lot.svg\",\n      name: cpt(\"extra.resource.billboard.Parking lot\")\n    },\n    {\n      key: \"right-arrow\",\n      image: \"/static/resource/billboard/icon/right-arrow.svg\",\n      name: cpt(\"extra.resource.billboard.Right arrow\")\n    },\n    {\n      key: \"down-arrow\",\n      image: \"/static/resource/billboard/icon/down-arrow.svg\",\n      name: cpt(\"extra.resource.billboard.Down arrow\")\n    },\n    {\n      key: \"right-arrow-curving-down\",\n      image: \"/static/resource/billboard/icon/right-arrow-curving-down.svg\",\n      name: cpt(\"extra.resource.billboard.Right arrow curving down\")\n    },\n    {\n      key: \"right-arrow-curving-left\",\n      image: \"/static/resource/billboard/icon/right-arrow-curving-left.svg\",\n      name: cpt(\"extra.resource.billboard.Right arrow curving left\")\n    },\n    {\n      key: \"left-arrow\",\n      image: \"/static/resource/billboard/icon/left-arrow.svg\",\n      name: cpt(\"extra.resource.billboard.Left arrow\")\n    },\n    {\n      key: \"down-left-arrow\",\n      image: \"/static/resource/billboard/icon/down-left-arrow.svg\",\n      name: cpt(\"extra.resource.billboard.Down left arrow\")\n    },\n    {\n      key: \"down-right-arrow\",\n      image: \"/static/resource/billboard/icon/down-right-arrow.svg\",\n      name: cpt(\"extra.resource.billboard.Down right arrow\")\n    },\n    {\n      key: \"up-left-arrow\",\n      image: \"/static/resource/billboard/icon/up-left-arrow.svg\",\n      name: cpt(\"extra.resource.billboard.Up left arrow\")\n    },\n    {\n      key: \"up-right-arrow\",\n      image: \"/static/resource/billboard/icon/up-right-arrow.svg\",\n      name: cpt(\"extra.resource.billboard.Up right arrow\")\n    },\n    {\n      key: \"up-arrow\",\n      image: \"/static/resource/billboard/icon/up-arrow.svg\",\n      name: cpt(\"extra.resource.billboard.Up arrow\")\n    },\n    {\n      key: \"right-arrow-curving-up\",\n      image: \"/static/resource/billboard/icon/right-arrow-curving-up.svg\",\n      name: cpt(\"extra.resource.billboard.Right arrow curving up\")\n    },\n    {key: \"wireless\", image: \"/static/resource/billboard/icon/wireless.svg\", name: 'Wifi'},\n    {key: \"atm\", image: \"/static/resource/billboard/icon/atm.svg\", name: cpt(\"extra.resource.billboard.ATM\")},\n    {\n      key: \"bus-stop\",\n      image: \"/static/resource/billboard/icon/bus-stop.svg\",\n      name: cpt(\"extra.resource.billboard.Bus stop\")\n    },\n    {key: \"bus\", image: \"/static/resource/billboard/icon/bus.svg\", name: cpt(\"extra.resource.billboard.Bus\")},\n    {\n      key: \"delivery-truck\",\n      image: \"/static/resource/billboard/icon/delivery-truck.svg\",\n      name: cpt(\"extra.resource.billboard.Delivery truck\")\n    },\n    {key: \"taxi\", image: \"/static/resource/billboard/icon/taxi.svg\", name: cpt(\"extra.resource.billboard.Taxi\")},\n    {\n      key: \"private-car\",\n      image: \"/static/resource/billboard/icon/private-car.svg\",\n      name: cpt(\"extra.resource.billboard.Private car\")\n    },\n    {\n      key: \"automobile\",\n      image: \"/static/resource/billboard/icon/automobile.svg\",\n      name: cpt(\"extra.resource.billboard.Automobile\")\n    },\n    {\n      key: \"ambulance\",\n      image: \"/static/resource/billboard/icon/ambulance.svg\",\n      name: cpt(\"extra.resource.billboard.Ambulance\")\n    },\n    {key: \"tram\", image: \"/static/resource/billboard/icon/tram.svg\", name: cpt(\"extra.resource.billboard.Tram\")},\n    {key: \"train\", image: \"/static/resource/billboard/icon/train.svg\", name: cpt(\"extra.resource.billboard.Train\")},\n    {\n      key: \"airplane\",\n      image: \"/static/resource/billboard/icon/airplane.svg\",\n      name: cpt(\"extra.resource.billboard.Airplane\")\n    },\n    {\n      key: \"factory\",\n      image: \"/static/resource/billboard/icon/factory.svg\",\n      name: cpt(\"extra.resource.billboard.Factory\")\n    },\n    {\n      key: \"fire-extinguisher\",\n      image: \"/static/resource/billboard/icon/fire-extinguisher.svg\",\n      name: cpt(\"extra.resource.billboard.Fire extinguisher\")\n    },\n    {\n      key: \"no-smoking\",\n      image: \"/static/resource/billboard/icon/no-smoking.svg\",\n      name: cpt(\"extra.resource.billboard.No smoking\")\n    },\n    {\n      key: \"no-entry\",\n      image: \"/static/resource/billboard/icon/no-entry.svg\",\n      name: cpt(\"extra.resource.billboard.No entry\")\n    },\n    {key: \"clown\", image: \"/static/resource/billboard/icon/clown.svg\", name: cpt(\"ErSan\")},\n  ],\n  \"text\": [\n    {\n      key: \"infoBg\",\n      image: \"/static/resource/billboard/text/infoBg.png\",\n      name: cpt(\"extra.resource.billboard.Background\"),\n      options: {\n        text: {\n          fontSize: 4,\n          baseline: \"middle\",\n        }\n      }\n    },\n    {\n      key: \"infoBg2\",\n      image: \"/static/resource/billboard/text/infoBg2.png\",\n      name: cpt(\"extra.resource.billboard.Background2\"),\n      options: {\n        text: {\n          fontSize: 4,\n          baseline: \"middle\",\n        }\n      }\n    },\n    {\n      key: \"infoBg3\",\n      image: \"/static/resource/billboard/text/infoBg3.png\",\n      name: cpt(\"extra.resource.billboard.Background3\"),\n      options: {\n        text: {\n          fontSize: 4,\n          baseline: \"middle\",\n        }\n      }\n    },\n  ],\n}\n\nconst filteredList = computed(() => {\n  return allList[activeSubCategory.value].filter((item) => (item.name.value || item.name).toLowerCase().includes(searchText.value.toLowerCase()));\n});\n\n// 切换子分类\nfunction selectSubCategory(key: string) {\n  activeSubCategory.value = key;\n}\n\n// 预览\nasync function handlePreview(item){\n  previewInfo.name = (item.name as Ref<string>).value || item.name;\n  previewInfo.type = \"Billboard\";\n\n  const _ops = getDefaultBillboardOptions();\n  _ops.name = previewInfo.name;\n\n  const submit = async () => {\n    previewInfo.visible = true;\n\n    await nextTick();\n\n    const previewer = await previewRef.value?.getPreviewer();\n    if(!previewer) return;\n\n    const billboard = new Billboard(_ops);\n\n    previewer.scene.add(billboard);\n    Utils.focusObject(billboard,previewer.modules.controls);\n  }\n\n  switch (activeSubCategory.value) {\n    case \"icon\":\n      _ops.image.visible = true;\n      _ops.image.url = item.image;\n      _ops.image.position = POSITION.LEFT;\n\n      submit();\n      break;\n    case \"text\":\n      const v = ref(\"\");\n      const status = ref<any>(\"\");\n\n      window.$dialog.info({\n        title: t('prompt.Please enter the text'),\n        content: () => h(\n            NInput,\n            {\n              modelValue: v.value,\n              placeholder: \"\",\n              clearable: true,\n              type: \"textarea\",\n              size: \"small\",\n              status: status.value,\n              onUpdateValue: (n: string) => {\n                v.value = n;\n                status.value = !v.value ? \"error\" : \"\";\n              },\n              onBlur: () => {\n                status.value = !v.value ? \"error\" : \"\";\n              }\n            }\n        ),\n        positiveText: t('other.Ok'),\n        negativeText: t('other.Cancel'),\n        onPositiveClick: () => {\n          if (!v.value) return false;\n\n          if (item.image) {\n            _ops.image.visible = true;\n            _ops.image.url = item.image;\n            _ops.image.position = POSITION.CENTER;\n            _ops.image.margin = 0;\n          }\n\n          _ops.text.value = v.value;\n          _ops.text.visible = true;\n\n          if (item.options) {\n            Utils.deepAssign(_ops, item.options);\n          }\n\n          submit();\n        },\n      })\n      break;\n  }\n}\n\n//双击添加至场景..\nfunction addToScene(item, position?: number[]) {\n  const _ops = getDefaultBillboardOptions();\n  _ops.name = item.name.value || item.name;\n\n  const submit = () => {\n    if (position) {\n      _ops.position = position;\n    }\n\n    const billboard = new Billboard(_ops);\n\n    App.execute(new AddObjectCommand(billboard), `Add Billboard: ${_ops.name}`);\n\n    const handleImgLoaded = () => {\n      Hooks.useDispatchSignal(\"materialChanged\", billboard.material);\n      // @ts-ignore\n      billboard.removeEventListener(\"imgLoaded\", handleImgLoaded);\n    }\n    // @ts-ignore\n    billboard.addEventListener(\"imgLoaded\", handleImgLoaded);\n    // @ts-ignore TODO: 需确认是否应该在销毁时移除监听\n    billboard.addEventListener(\"redraw\", () => {\n      Hooks.useDispatchSignal(\"geometryChanged\", billboard);\n    });\n  }\n\n  switch (activeSubCategory.value) {\n    case \"icon\":\n      _ops.image.visible = true;\n      _ops.image.url = item.image;\n      _ops.image.position = POSITION.LEFT;\n\n      submit();\n      break;\n    case \"text\":\n      const v = ref(\"\");\n      const status = ref<any>(\"\");\n\n      window.$dialog.info({\n        title: t('prompt.Please enter the text'),\n        content: () => h(\n            NInput,\n            {\n              modelValue: v.value,\n              placeholder: \"\",\n              clearable: true,\n              type: \"textarea\",\n              size: \"small\",\n              status: status.value,\n              onUpdateValue: (n: string) => {\n                v.value = n;\n                status.value = !v.value ? \"error\" : \"\";\n              },\n              onBlur: () => {\n                status.value = !v.value ? \"error\" : \"\";\n              }\n            }\n        ),\n        positiveText: t('other.Ok'),\n        negativeText: t('other.Cancel'),\n        onPositiveClick: () => {\n          if (!v.value) return false;\n\n          if (item.image) {\n            _ops.image.visible = true;\n            _ops.image.url = item.image;\n            _ops.image.position = POSITION.CENTER;\n            _ops.image.margin = 0;\n          }\n\n          _ops.text.value = v.value;\n          _ops.text.visible = true;\n\n          if (item.options) {\n            Utils.deepAssign(_ops, item.options);\n          }\n\n          submit();\n        },\n      })\n      break;\n  }\n}\n\n// 开始拖拽事件\nconst dragStore = useDragStore();\n\nfunction dragStart(item) {\n  dragStore.setData(item)\n}\n\nfunction dragEnd() {\n  if (dragStore.getActionTarget !== \"addToScene\" || dragStore.endArea !== \"Scene\") return;\n\n  const position = screenToWorld(dragStore.endPosition.x, dragStore.endPosition.y);\n\n  addToScene(dragStore.getData, position.toArray());\n\n  dragStore.setActionTarget(\"\");\n}\n</script>\n\n<style scoped lang=\"less\">\n#extra-resource-billboards {\n  overflow-x: hidden;\n\n  .n-card {\n    cursor: pointer;\n\n    :deep(.n-card-cover) {\n      display: flex;\n      justify-content: center;\n      align-items: center;\n    }\n\n    :deep(.n-card__content) {\n      padding: 0.3rem 0;\n      font-size: 0.65rem;\n      text-align: center;\n\n      .n-button {\n        font-size: 0.65rem !important;\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/Cameras.vue",
    "content": "<template>\n  <div id=\"extra-resource-cameras\">\n    <div class=\"flex-1 overflow-y-auto\">\n      <div class=\"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-3\">\n        <n-card size=\"small\" hoverable v-for=\"item in filteredList\" :key=\"item.key\" @dblclick=\"addToScene(item.key)\"\n                draggable=\"true\" @dragstart=\"dragStart($event, item.key)\" @dragend=\"dragEnd\">\n          <template #cover>\n            <n-icon size=\"50\">\n              <component :is=\"item.icon\"/>\n            </n-icon>\n          </template>\n          <n-tooltip placement=\"bottom\" trigger=\"hover\">\n            <template #trigger> {{ item.name.value }}</template>\n            <span> {{ item.name.value }} </span>\n          </n-tooltip>\n        </n-card>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {inject, computed} from \"vue\";\nimport type {Ref} from \"vue\";\nimport {Carbon3DMprToggle, CenterToFit} from '@vicons/carbon';\nimport * as Astral3D from '@astral3d/engine';\nimport {cpt} from \"@/language\";\nimport {useDragStore} from \"@/store/modules/drag\";\nimport {screenToWorld} from \"@/utils/common/scenes\";\nimport {NIcon} from \"naive-ui\";\n\nconst searchText = inject('searchText') as Ref<string>;\n\nconst cameras = [\n  {key: \"OrthographicCamera\", icon: CenterToFit, name: cpt(\"layout.header.OrthographicCamera\")},\n  {key: \"PerspectiveCamera\", icon: Carbon3DMprToggle, name: cpt(\"layout.header.PerspectiveCamera\")}\n]\n\nconst filteredList = computed(() => {\n  return cameras.filter((item) => (<string>(item.name.value || item.name)).toLowerCase().includes(searchText.value.toLowerCase()));\n});\n\n//双击添加至场景\nfunction addToScene(key) {\n  const obj = Astral3D[key]();\n\n  Astral3D.App.execute(new Astral3D.AddObjectCommand(obj));\n}\n\n// 开始拖拽事件\nconst dragStore = useDragStore();\n\nfunction dragStart(_, key) {\n  dragStore.setData(key)\n}\n\nfunction dragEnd() {\n  if (dragStore.getActionTarget !== \"addToScene\" || dragStore.endArea !== \"Scene\") return;\n\n  const position = screenToWorld(dragStore.endPosition.x, dragStore.endPosition.y);\n\n  const obj = Astral3D[dragStore.getData]();\n  obj.position.copy(position);\n  Astral3D.App.execute(new Astral3D.AddObjectCommand(obj));\n\n  dragStore.setActionTarget(\"\");\n}\n</script>\n\n<style scoped lang=\"less\">\n#extra-resource-cameras {\n  overflow-x: hidden;\n\n  .n-card {\n    cursor: pointer;\n\n    :deep(.n-card-cover) {\n      height: 5rem;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n\n    :deep(.n-card__content) {\n      padding: 0.15rem 0;\n      font-size: 0.65rem;\n      text-align: center;\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/HtmlPanel.vue",
    "content": "<template>\n  <div id=\"extra-resource-html-plane\" class=\"flex flex-col\">\n    <!-- 子分类标签 -->\n    <div class=\"mb-3 flex flex-wrap items-center gap-2\">\n      <n-button v-for=\"subCategory in subCategories\" :key=\"subCategory.key\" strong secondary round\n                :type=\"activeSubCategory === subCategory.key ? 'primary' : 'default'\"\n                @click=\"selectSubCategory(subCategory.key)\">\n        {{ subCategory.name }}\n      </n-button>\n    </div>\n\n    <!-- 资源网格 -->\n    <div class=\"flex-1 overflow-y-auto\">\n      <div class=\"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-3\">\n        <n-card size=\"small\" hoverable v-for=\"item in filteredList\" :key=\"item.key\"\n                @dblclick=\"addToScene(item)\" draggable=\"true\" @dragstart=\"dragStart(item)\" @dragend=\"dragEnd\"\n                @contextmenu.prevent=\"handlePreview(item)\">\n          <template #cover>\n            <img :src=\"item.image\" :alt=\"item.key\" draggable=\"false\" class=\"w-full h-full object-cover\"/>\n          </template>\n          <n-tooltip placement=\"bottom\" trigger=\"hover\">\n            <template #trigger> {{ item.name.value || item.name }}</template>\n            <span> {{ item.name.value || item.name }} </span>\n          </n-tooltip>\n        </n-card>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {ref, inject, computed, nextTick} from \"vue\";\nimport type {Ref} from \"vue\";\nimport {Box3, Vector3} from \"three\";\nimport {App,Preview,HtmlPanelConverter,AddObjectCommand} from \"@astral3d/engine\";\nimport {cpt} from \"@/language\";\nimport {useDragStore} from \"@/store/modules/drag\";\nimport {screenToWorld} from \"@/utils/common/scenes\";\n\nconst searchText = inject('searchText') as Ref<string>;\nconst previewInfo = inject('previewInfo') as any;\nconst previewRef = inject('previewRef') as any;\n\nconst activeSubCategory = ref('technology');\nconst subCategories = ref([\n  {key: 'technology', name: cpt('extra.resource.htmlPanel.Technology')}\n]);\n\nconst allList = {\n  \"technology\": [\n    {key: \"factoryEquipment\", image: \"/static/images/resource/htmlPanel/technology/factoryEquipment.png\", name: cpt(\"extra.resource.htmlPanel.Factory equipment\"), html: \"/static/resource/htmlPanel/technology/factoryEquipment.html\"},\n  ]\n}\n\nconst filteredList = computed(() => {\n  return allList[activeSubCategory.value].filter((item) => (item.name.value || item.name).toLowerCase().includes(searchText.value.toLowerCase()));\n});\n\n// 切换子分类\nfunction selectSubCategory(key: string) {\n  activeSubCategory.value = key;\n}\n\n// 预览\nasync function handlePreview(item){\n  previewInfo.name = (item.name as Ref<string>).value || item.name;\n  previewInfo.type = \"Particle\";\n\n  previewInfo.visible = true;\n\n  await nextTick();\n\n  previewRef.value?.getPreviewer().then((previewer:Preview) => {\n    if(!previewer) return;\n\n    HtmlPanelConverter.getInstance().loadAsync({\n      url: item.html,\n      isSprite: true\n    }).then(htmlPanelObj => {\n      htmlPanelObj.scale.set(0.1, 0.1, 1);\n      htmlPanelObj.name = previewInfo.name;\n\n      previewer.scene.add(htmlPanelObj);\n\n      const box3 = new Box3();\n      box3.set(new Vector3(-30, 0, -30), new Vector3(30, 30, 30));\n\n      previewer.modules.controls.fitToBox(box3,true);\n    }).catch((e:Error) => window.$message?.error(e.message));\n  })\n}\n\n//双击添加至场景..\nfunction addToScene(item, position?: number[]) {\n  HtmlPanelConverter.getInstance().loadAsync({\n    url: item.html,\n    isSprite: true\n  }).then(htmlPanelObj => {\n    if (!position) {\n      position = [0, 0, 0];\n    }\n    htmlPanelObj.position.fromArray(position);\n    htmlPanelObj.scale.set(0.1, 0.1, 1);\n    htmlPanelObj.name = item.name.value || item.name;\n    App.execute(new AddObjectCommand(htmlPanelObj), `Add Billboard: ${htmlPanelObj.name}`);\n  }).catch((e:Error) => window.$message?.error(e.message));\n}\n\n// 开始拖拽事件\nconst dragStore = useDragStore();\n\nfunction dragStart(item) {\n  dragStore.setData(item)\n}\n\nfunction dragEnd() {\n  if (dragStore.getActionTarget !== \"addToScene\" || dragStore.endArea !== \"Scene\") return;\n\n  const position = screenToWorld(dragStore.endPosition.x, dragStore.endPosition.y);\n\n  addToScene(dragStore.getData, position.toArray());\n\n  dragStore.setActionTarget(\"\");\n}\n</script>\n\n<style scoped lang=\"less\">\n#extra-resource-html-plane {\n  overflow-x: hidden;\n\n  .n-card {\n    cursor: pointer;\n\n    :deep(.n-card__content) {\n      padding: 0.3rem 0;\n      font-size: 0.65rem;\n      text-align: center;\n\n      .n-button {\n        font-size: 0.65rem !important;\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/Lights.vue",
    "content": "<template>\n  <div id=\"extra-resource-lights\">\n    <div class=\"flex-1 overflow-y-auto\">\n      <div class=\"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-3\">\n        <n-card size=\"small\" hoverable v-for=\"item in filteredList\" :key=\"item.key\" @dblclick=\"addToScene(item.key)\"\n                draggable=\"true\" @dragstart=\"dragStart($event, item.key)\" @dragend=\"dragEnd\">\n          <template #cover>\n            <n-icon size=\"50\">\n              <component :is=\"item.icon\"/>\n            </n-icon>\n          </template>\n          <n-tooltip placement=\"bottom\" trigger=\"hover\">\n            <template #trigger> {{ item.name.value }}</template>\n            <span> {{ item.name.value }} </span>\n          </n-tooltip>\n        </n-card>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {inject, computed} from \"vue\";\nimport type {Ref} from \"vue\";\nimport {Sunny, Haze, BrightnessContrast} from \"@vicons/carbon\";\nimport {BulbOutline, FlashlightOutline} from \"@vicons/ionicons5\";\nimport * as Astral3D from \"@astral3d/engine\";\nimport {cpt} from \"@/language\";\nimport {useDragStore} from \"@/store/modules/drag\";\nimport {screenToWorld} from \"@/utils/common/scenes\";\nimport {NIcon} from \"naive-ui\";\n\nconst searchText = inject('searchText') as Ref<string>;\n\nconst lights = [\n  {\n    key: \"AmbientLight\",\n    icon: Haze,\n    name: cpt(\"layout.header.AmbientLight\")\n  },\n  {\n    key: \"DirectionalLight\",\n    icon: Sunny,\n    name: cpt(\"layout.header.DirectionalLight\")\n  },\n  {\n    key: \"HemisphereLight\",\n    icon: BrightnessContrast,\n    name: cpt(\"layout.header.HemisphereLight\")\n  },\n  {key: \"PointLight\", icon: BulbOutline, name: cpt(\"layout.header.PointLight\")},\n  {key: \"Spotlight\", icon: FlashlightOutline, name: cpt(\"layout.header.SpotLight\")}\n]\n\nconst filteredList = computed(() => {\n  return lights.filter((item) => (<string>(item.name.value || item.name)).toLowerCase().includes(searchText.value.toLowerCase()));\n});\n\n//双击添加至场景\nfunction addToScene(key) {\n  const obj = Astral3D[key]();\n\n  Astral3D.App.execute(new Astral3D.AddObjectCommand(obj));\n}\n\n// 开始拖拽事件\nconst dragStore = useDragStore();\n\nfunction dragStart(_, key) {\n  dragStore.setData(key)\n}\n\nfunction dragEnd() {\n  if (dragStore.getActionTarget !== \"addToScene\" || dragStore.endArea !== \"Scene\") return;\n\n  const position = screenToWorld(dragStore.endPosition.x, dragStore.endPosition.y);\n\n  const obj = Astral3D[dragStore.getData]();\n  obj.position.copy(position);\n  Astral3D.App.execute(new Astral3D.AddObjectCommand(obj));\n  \n  dragStore.setActionTarget(\"\");\n}\n</script>\n\n<style scoped lang=\"less\">\n#extra-resource-lights {\n  overflow-x: hidden;\n\n  .n-card {\n    cursor: pointer;\n\n    :deep(.n-card-cover) {\n      height: 5rem;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n\n    :deep(.n-card__content) {\n      padding: 0.15rem 0;\n      font-size: 0.65rem;\n      text-align: center;\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/Materials.vue",
    "content": "<template>\n  <div id=\"extra-resource-materials\" class=\"flex flex-col\">\n    <!-- 子分类标签 -->\n    <div class=\"mb-3 flex flex-wrap items-center gap-2\">\n      <n-button v-for=\"subCategory in subCategories\" :key=\"subCategory.key\" strong secondary round\n                :type=\"activeSubCategory === subCategory.key ? 'primary' : 'default'\"\n                @click=\"selectSubCategory(subCategory.key)\">\n        {{ subCategory.name }}\n      </n-button>\n    </div>\n\n    <div class=\"flex-1 overflow-y-auto\">\n      <div class=\"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-3\">\n        <n-card size=\"small\" hoverable v-for=\"item in filteredList\" :key=\"item.key\"\n                @contextmenu.prevent=\"handlePreview(item)\" @dblclick=\"apply(item)\"\n                draggable=\"true\" @dragstart=\"dragStart(item)\" @dragend=\"dragEnd\">\n          <template #cover>\n            <img :src=\"item.img\" :alt=\"item.key\" draggable=\"false\" class=\"w-full h-full object-cover\"/>\n          </template>\n          <n-tooltip placement=\"bottom\" trigger=\"hover\">\n            <template #trigger> {{ item.name.value || item.name }}</template>\n            <span> {{ item.name.value || item.name }} </span>\n          </n-tooltip>\n        </n-card>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {ref, inject, toRaw, computed, nextTick} from \"vue\";\nimport type {Ref} from \"vue\";\nimport {Vector2,SphereGeometry,PlaneGeometry,Mesh} from 'three';\nimport {App,Utils,Hooks,SetMaterialCommand,CircleGridShaderMaterial,DynamicCheckerboardShaderMaterial,SlowSmokeShaderMaterial,FlickerShaderMaterial,StreamerWallShaderMaterial} from \"@astral3d/engine\";\nimport {t, cpt} from \"@/language\";\nimport { useDragStore } from \"@/store/modules/drag\";\nimport {reBufferGeometryUv} from \"@/utils/common/scenes\";\n\nconst searchText = inject('searchText') as Ref<string>;\nconst previewInfo = inject('previewInfo') as any;\nconst previewRef = inject('previewRef') as any;\n\nconst activeSubCategory = ref('wallBrick');\nconst subCategories = ref([\n  {key: 'wallBrick', name: cpt('extra.resource.material.Wall brick')},\n  {key: 'metal', name: cpt('extra.resource.material.Metal')},\n  {key: 'shader', name: 'Shader'},\n]);\n\n// 切换子分类\nfunction selectSubCategory(key: string) {\n  activeSubCategory.value = key;\n}\n\nconst materials = {\n  'wallBrick': [\n    {\n      key: \"redBrick\",\n      name: cpt(\"extra.resource.material.Red brick\"),\n      img: \"/static/images/resource/material/wallBrick/redBrick.jpg\",\n      textures:{\n        baseColor:\"/static/resource/material/wallBrick/red_brick/red_brick_diff_1k.jpg\",\n        normal:\"/static/resource/material/wallBrick/red_brick/red_brick_nor_gl_1k.exr\",\n        //displacement:\"/static/resource/material/wallBrick/red_brick/red_brick_disp_1k.png\",\n        // arm:AO/Rough/Metal; AO使用红色通道，Rough使用绿色通道，Metal使用蓝色通道\n        metalness:\"/static/resource/material/wallBrick/red_brick/red_brick_arm_1k.jpg\",\n        roughness:\"/static/resource/material/wallBrick/red_brick/red_brick_arm_1k.jpg\",\n        ao:\"/static/resource/material/wallBrick/red_brick/red_brick_arm_1k.jpg\",\n      }\n    },\n    {\n      key: \"redSandstone\",\n      name: cpt(\"extra.resource.material.Red sandstone\"),\n      img: \"/static/images/resource/material/wallBrick/redSandstone.jpg\",\n      textures:{\n        baseColor:\"/static/resource/material/wallBrick/red_sandstone/red_sandstone_wall_diff_1k.exr\",\n        normal:\"/static/resource/material/wallBrick/red_sandstone/red_sandstone_wall_nor_gl_1k.jpg\",\n        //displacement:\"/static/resource/material/wallBrick/red_sandstone/red_sandstone_wall_disp_1k.jpg\",\n        // arm:AO/Rough/Metal; AO使用红色通道，Rough使用绿色通道，Metal使用蓝色通道\n        metalness:\"/static/resource/material/wallBrick/red_sandstone/red_sandstone_wall_arm_1k.jpg\",\n        roughness:\"/static/resource/material/wallBrick/red_sandstone/red_sandstone_wall_arm_1k.jpg\",\n        ao:\"/static/resource/material/wallBrick/red_sandstone/red_sandstone_wall_arm_1k.jpg\",\n      }\n    },\n    {\n      key: \"rusticStoneWall\",\n      name: cpt(\"extra.resource.material.Rustic stone wall\"),\n      img: \"/static/images/resource/material/wallBrick/rusticStoneWall.jpg\",\n      textures:{\n        baseColor:\"/static/resource/material/wallBrick/rustic_stone_wall/rustic_stone_wall_02_diff_1k.exr\",\n        normal:\"/static/resource/material/wallBrick/rustic_stone_wall/rustic_stone_wall_02_nor_gl_1k.jpg\",\n        //displacement:\"/static/resource/material/wallBrick/rustic_stone_wall/rustic_stone_wall_02_disp_1k.jpg\",\n        // arm:AO/Rough/Metal; AO使用红色通道，Rough使用绿色通道，Metal使用蓝色通道\n        metalness:\"/static/resource/material/wallBrick/rustic_stone_wall/rustic_stone_wall_02_arm_1k.jpg\",\n        roughness:\"/static/resource/material/wallBrick/rustic_stone_wall/rustic_stone_wall_02_arm_1k.jpg\",\n        ao:\"/static/resource/material/wallBrick/rustic_stone_wall/rustic_stone_wall_02_arm_1k.jpg\",\n      }\n    }\n  ],\n  'metal':[\n    {\n      key: \"rusty\",\n      name: cpt(\"extra.resource.material.Rusty\"),\n      img: \"/static/images/resource/material/metal/rusty.jpg\",\n      textures:{\n        baseColor:\"/static/resource/material/metal/rusty/rusty_metal_04_diff_1k.jpg\",\n        normal:\"/static/resource/material/metal/rusty/rusty_metal_04_nor_gl_1k.jpg\",\n        //displacement:\"/static/resource/metal/rusty/red_brick/rusty_metal_04_disp_1k.jpg\",\n        metalness:\"/static/resource/material/metal/rusty/rusty_metal_04_arm_1k.jpg\",\n        roughness:\"/static/resource/material/metal/rusty/rusty_metal_04_arm_1k.jpg\",\n        ao:\"/static/resource/material/metal/rusty/rusty_metal_04_arm_1k.jpg\",\n      },\n      properties:{\n        metalness: 1,\n        roughness: 0.5\n      }\n    },\n    {\n      key: \"gold\",\n      name: cpt(\"extra.resource.material.Gold\"),\n      img: \"/static/images/resource/material/metal/gold.jpg\",\n      textures:{\n        baseColor:\"/static/resource/material/metal/gold/1K-Metallic_gold_Base Color.jpg\",\n        metalness:\"/static/resource/material/metal/gold/1K-Metallic_gold_Metallic.jpg\",\n        roughness:\"/static/resource/material/metal/gold/1K-Metallic_gold_Roughness.jpg\",\n      },\n      properties:{\n        metalness: 1,\n        roughness: 0.5\n      }\n    },\n  ],\n  'shader': [\n    {\n      key: \"CircleGridShaderMaterial\",\n      name: cpt(\"extra.resource.material.Diffused color line\"),\n      img: \"/static/images/resource/material/shader/CircleGrid.jpg\",\n      class: CircleGridShaderMaterial\n    },\n    {\n      key: \"DynamicCheckerboardShaderMaterial\",\n      name: cpt(\"extra.resource.material.Dynamic checkerboard\"),\n      img: \"/static/images/resource/material//shader/DynamicCheckerboard.png\",\n      class: DynamicCheckerboardShaderMaterial\n    },\n    {\n      key: \"SlowSmokeShaderMaterial\",\n      name: cpt(\"extra.resource.material.Slow smoke\"),\n      img: \"/static/images/resource/material//shader/SlowSmoke.jpg\",\n      class: SlowSmokeShaderMaterial\n    },\n    {\n      key: \"StreamerWallShaderMaterial\",\n      name: cpt(\"extra.resource.material.Flow line\"),\n      img: \"/static/images/resource/material//shader/StreamerWall.jpg\",\n      class: StreamerWallShaderMaterial\n    },\n    {\n      key: \"FlickerShaderMaterial\",\n      name: cpt(\"extra.resource.material.Flicker\"),\n      img: \"/static/images/resource/material//shader/Flicker.png\",\n      class: FlickerShaderMaterial},\n  ]\n};\n\nconst filteredList = computed(() => {\n  return materials[activeSubCategory.value].filter((item) => (item.name.value || item.name).toLowerCase().includes(searchText.value.toLowerCase()));\n});\n\n/* 材质预览 */\nasync function handlePreview(item) {\n  previewInfo.name = (item.name as Ref<string>).value || item.name;\n  previewInfo.type = \"Material\";\n  previewInfo.visible = true;\n\n  await nextTick();\n\n  const previewer = await previewRef.value?.getPreviewer();\n  if(!previewer) return;\n\n  // shader\n  if(item.class){\n    const m = toRaw(item.class.PreviewMaterial);\n    const mesh = new Mesh(new PlaneGeometry(2, 2), m);\n    previewer.scene.add(mesh);\n    previewer.addEventListener(\"beforeRender\",() => {\n      item.class.UpdatePreview(m);\n    })\n    Utils.focusObject(mesh,previewer.modules.controls);\n  }else{\n    App.createPBRMaterial(item.textures,item.properties).then(material => {\n      const mesh = new Mesh(\n          new SphereGeometry(1, 32, 32, 0, Math.PI * 2, 0, Math.PI),\n          material\n      );\n      previewer.scene.add(mesh);\n      Utils.focusObject(mesh,previewer.modules.controls);\n    }).catch(() => {\n      window.$message?.error(t(\"prompt['Load fail,Please try again later!']\"));\n    })\n  }\n}\n\n// 应用材质\nfunction apply(item, targetObject?) {\n  const object = targetObject || App.selected;\n\n  if (!object) {\n    window.$message?.error(t(\"prompt['No object selected.']\"))\n    return;\n  }\n\n  if(!object.material){\n    window.$message?.error(t(\"prompt['Can not be applied to the current object']\"))\n    return;\n  }\n\n  const materialName = (item.name.value || item.name);\n\n  // shader\n  if (item.class) {\n    if (Array.isArray(object.material)) {\n      if (object.material.length === 0) {\n        window.$message?.error(t(\"prompt['No object selected.']\"))\n        return;\n      }\n\n      object.material.forEach(m => {\n        App.removeMaterial(m);\n      });\n      App.execute(new SetMaterialCommand(object, item.class.Material), 'Apply Material: ' + materialName);\n      App.addMaterial(object.material);\n\n      // 平铺uv\n      reBufferGeometryUv(object.geometry);\n      Hooks.useDispatchSignal(\"sceneGraphChanged\");\n\n      return;\n    }\n\n    App.removeMaterial(object.material);\n    App.execute(new SetMaterialCommand(object, item.class.Material), 'Apply Material: ' + materialName);\n    App.addMaterial(object.material);\n\n    // 平铺uv\n    reBufferGeometryUv(object.geometry);\n    Hooks.useDispatchSignal(\"sceneGraphChanged\");\n  }else if(item.textures){\n    // pbr\n    if (Array.isArray(object.material)) {\n      if (object.material.length === 0) {\n        window.$message?.error(t(\"prompt['No object selected.']\"))\n        return;\n      }\n\n      App.createPBRMaterial(item.textures,item.properties).then(newMaterial => {\n        newMaterial.name = materialName;\n\n        object.material.forEach(m => {\n          App.removeMaterial(m);\n        });\n        App.execute(new SetMaterialCommand(object, newMaterial), 'Apply Material: ' + materialName);\n        App.addMaterial(newMaterial);\n\n        Hooks.useDispatchSignal(\"sceneGraphChanged\");\n      }).catch(() => {\n        window.$message?.error(t(\"prompt['Load fail,Please try again later!']\"));\n      })\n\n      return;\n    }\n\n    App.createPBRMaterial(item.textures,item.properties).then(newMaterial => {\n      newMaterial.name = materialName;\n\n      App.removeMaterial(object.material);\n      App.execute(new SetMaterialCommand(object, newMaterial), 'Apply Material: ' + materialName);\n      App.addMaterial(newMaterial);\n\n      Hooks.useDispatchSignal(\"sceneGraphChanged\");\n    }).catch(() => {\n      window.$message?.error(t(\"prompt['Load fail,Please try again later!']\"));\n    })\n  }\n}\n\n// 开始拖拽事件\nconst dragStore = useDragStore();\n\nfunction dragStart(item){\n  dragStore.setData(item)\n}\n\nfunction dragEnd(event) {\n  if (dragStore.getActionTarget !== \"addToScene\" || dragStore.endArea !== \"Scene\") return;\n\n  const position = new Vector2();\n  const array = Utils.getMousePosition(window.viewer.container, event.clientX, event.clientY);\n  position.fromArray(array);\n  const intersects = window.viewer.getIntersects(position);\n  if(intersects.length > 0){\n    const object = intersects[0].object;\n\n    apply(dragStore.getData,object);\n  }\n\n  dragStore.setActionTarget(\"\");\n}\n</script>\n\n<style scoped lang=\"less\">\n#extra-resource-materials {\n  overflow-x: hidden;\n\n  .n-card {\n    cursor: pointer;\n\n    :deep(.n-card__content) {\n      padding: 0.3rem 0;\n      font-size: 0.65rem;\n      text-align: center;\n\n      .n-button {\n        font-size: 0.65rem !important;\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/Models.vue",
    "content": "<template>\n    <div id=\"extra-resource-models\" class=\"flex flex-col\">\n        <!-- 子分类标签 -->\n        <div class=\"mb-3 flex flex-wrap items-center gap-2\">\n            <n-button v-for=\"subCategory in subCategories\" :key=\"subCategory.key\" strong secondary round\n                :type=\"activeSubCategory === subCategory.key ? 'primary' : 'default'\"\n                @click=\"selectSubCategory(subCategory.key)\">\n                {{ subCategory.name }}\n            </n-button>\n        </div>\n\n        <!-- 资源网格 -->\n        <div class=\"flex-1 overflow-y-auto\">\n            <div class=\"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-3\">\n                <Card v-for=\"resource in filteredList\" :key=\"resource.key\" :resource=\"resource\" />\n            </div>\n        </div>\n    </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, inject, computed } from \"vue\";\nimport type { Ref } from \"vue\";\nimport { cpt } from \"@/language\";\nimport Card from \"./components/ModelCard.vue\";\n\nconst searchText = inject('searchText') as Ref<string>;\n\nconst activeSubCategory = ref('shape');\nconst subCategories = ref([\n    { key: 'shape', name: cpt('extra.resource.model.Shape') },\n    { key: 'building', name: cpt('extra.resource.model.Building') },\n    { key: 'person', name: cpt('extra.resource.model.Person') },\n    { key: 'plant', name: cpt('extra.resource.model.Plant') },\n    { key: 'animal', name: cpt('extra.resource.model.Animal') },\n    { key: 'vehicle', name: cpt('extra.resource.model.Vehicle') },\n    { key: 'mehicle', name: cpt('extra.resource.model.Machine') },\n    { key: 'furniture', name: cpt('extra.resource.model.Furniture') },\n    { key: 'outdoor', name: cpt('extra.resource.model.Outdoor') },\n    { key: 'other', name: cpt('extra.resource.model.Other') },\n]);\n\nconst allList = {\n    // 形状\n    \"shape\": [\n        { key: \"Group\", image: \"/static/images/resource/model/shape/group.jpg\", name: cpt(\"extra.resource.model.Group\") },\n        { key: \"Sprite\", image: \"/static/images/resource/model/shape/sprite.jpg\", name: cpt(\"extra.resource.model.Sprite\") },\n        { key: \"Box\", image: \"/static/images/resource/model/shape/box.jpg\", name: cpt(\"extra.resource.model.Box\") },\n        { key: \"Circle\", image: \"/static/images/resource/model/shape/circle.jpg\", name: cpt(\"extra.resource.model.Circle\") },\n        { key: \"Cylinder\", image: \"/static/images/resource/model/shape/cylinder.jpg\", name: cpt(\"extra.resource.model.Cylinder\") },\n        { key: \"Sphere\", image: \"/static/images/resource/model/shape/sphere.jpg\", name: cpt(\"extra.resource.model.Sphere\") },\n        { key: \"Torus\", image: \"/static/images/resource/model/shape/torus.jpg\", name: cpt(\"extra.resource.model.Torus\") },\n        { key: \"Plane\", image: \"/static/images/resource/model/shape/plane.jpg\", name: cpt(\"extra.resource.model.Plane\") },\n        { key: \"Ring\", image: \"/static/images/resource/model/shape/ring.jpg\", name: cpt(\"extra.resource.model.Ring\") },\n        { key: \"Tetrahedron\", image: \"/static/images/resource/model/shape/tetrahedron.jpg\", name: cpt(\"extra.resource.model.Tetrahedron\") },\n        { key: \"Octahedron\", image: \"/static/images/resource/model/shape/octahedron.jpg\", name: cpt(\"extra.resource.model.Octahedron\") },\n        { key: \"Dodecahedron\", image: \"/static/images/resource/model/shape/dodecahedron.jpg\", name: cpt(\"extra.resource.model.Dodecahedron\") },\n        { key: \"Icosahedron\", image: \"/static/images/resource/model/shape/icosahedron.jpg\", name: cpt(\"extra.resource.model.Icosahedron\") },\n        { key: \"Capsule\", image: \"/static/images/resource/model/shape/capsule.jpg\", name: cpt(\"extra.resource.model.Capsule\") },\n        { key: \"DoubleCone\", image: \"/static/images/resource/model/shape/doubleCone.jpg\", name: cpt(\"extra.resource.model['Double cone']\") },\n        { key: \"TorusKnot\", image: \"/static/images/resource/model/shape/torusKnot.jpg\", name: cpt(\"extra.resource.model.TorusKnot\") },\n        { key: \"Tube\", image: \"/static/images/resource/model/shape/tube.jpg\", name: cpt(\"extra.resource.model.Tube\") },\n        { key: \"Teapot\", image: \"/static/images/resource/model/shape/teapot.jpg\", name: cpt(\"extra.resource.model.Teapot\") },\n    ],\n    // 建筑\n    \"building\":[\n        { key: \"Stall\", name: cpt(\"extra.resource.model.Stall\"), image: \"/static/images/resource/model/building/stall.jpg\", path: \"/static/model/building/Stall_astral3d.optimize.glb\" },\n    ],\n    // 人物\n    \"person\":[\n        { key: \"Jackie\", name: \"Jackie\", image: \"/static/images/resource/model/person/jackie.jpg\", path: \"/static/model/person/Jackie.glb\" },\n    ],\n    // 植物\n    \"plant\":[\n        { key: \"Grass\", name: cpt(\"extra.resource.model.Grass\"), image: \"/static/images/resource/model/plant/grass.jpg\", path:\"/static/model/plant/Grass_astral3d.optimize.glb\" },\n        { key: \"MapleTree\", name: cpt(\"extra.resource.model.Maple tree\"), image: \"/static/images/resource/model/plant/mapleTree.jpg\", path: \"/static/model/plant/MapleTree_astral3d.optimize.glb\" },\n        { key: \"DragonSpruce\", name: cpt(\"extra.resource.model.Dragon spruce\"), image: \"/static/images/resource/model/plant/dragonSpruce.jpg\", path: \"/static/model/plant/DragonSpruce_astral3d.optimize.glb\" },\n        { key: \"SmallTree\", name: cpt(\"extra.resource.model.Small tree\"), image: \"/static/images/resource/model/plant/smallTree.jpg\", path: \"/static/model/plant/SmallTree_astral3d.optimize.glb\" },\n        { key: \"SmallFlower\", name: cpt(\"extra.resource.model.Small flower\"), image: \"/static/images/resource/model/plant/smallFlower.jpg\", path: \"/static/model/plant/SmallFlower_astral3d.optimize.glb\" },\n        { key: \"Lemon\", name: cpt(\"extra.resource.model.Lemon\"), image: \"/static/images/resource/model/plant/lemon.jpg\", path: \"/static/model/plant/Lemon_astral3d.optimize.glb\" },\n    ],\n    // 动物\n    \"animal\":[\n        { key: \"Rat\", name: cpt(\"extra.resource.model.Rat\"), image: \"/static/images/resource/model/animal/rat.jpg\", path: \"/static/model/animal/Rat_astral3d.optimize.glb\" },\n    ],\n    // 交通工具\n    \"vehicle\":[\n        { key: \"CoveredCar\", name: cpt(\"extra.resource.model.Covered car\"), image: \"/static/images/resource/model/vehicle/coveredCar.jpg\", path: \"/static/model/vehicle/CoveredCar_astral3d.optimize.glb\" },\n    ],\n    // 机械设备\n    \"mehicle\": [\n        { key: \"Drill\", name: cpt(\"extra.resource.model.Drill\"), image: \"/static/images/resource/model/mehicle/drill.jpg\", path: \"/static/model/mehicle/Drill_astral3d.optimize.glb\" },\n    ],\n    // 室内用品\n    \"furniture\":[\n        { key: \"Sofa\", name: cpt(\"extra.resource.model.Sofa\"), image: \"/static/images/resource/model/furniture/sofa.jpg\", path: \"/static/model/furniture/Sofa_astral3d.optimize.glb\" },\n        { key: \"WoodenStool\", name: cpt(\"extra.resource.model.Wooden stool\"), image: \"/static/images/resource/model/furniture/woodenStool.jpg\", path: \"/static/model/furniture/WoodenStool_astral3d.optimize.glb\" },\n    ],\n    // 室外用品\n    \"outdoor\":[\n        { key: \"WoodenDiningTable\", name: cpt(\"extra.resource.model.Wooden dining table\"), image: \"/static/images/resource/model/outdoor/woodenDiningTable.jpg\", path: \"/static/model/outdoor/WoodenDiningTable_astral3d.optimize.glb\" },\n    ],\n    // 其他\n    \"other\":[\n        { key: \"Baseball\", name: cpt(\"extra.resource.model.Baseball\"), image: \"/static/images/resource/model/other/baseball.jpg\", path: \"/static/model/other/Baseball_astral3d.optimize.glb\" },\n    ],\n}\n\nconst filteredList = computed(() => {\n    return allList[activeSubCategory.value].filter((item) => (item.name.value || item.name).toLowerCase().includes(searchText.value.toLowerCase()));\n});\n\n// 切换子分类\nfunction selectSubCategory(key: string) {\n    activeSubCategory.value = key;\n}\n</script>\n\n<style scoped lang=\"less\">\n#extra-resource-models {\n    overflow-x: hidden;\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/Particles.vue",
    "content": "<template>\n    <div id=\"extra-resource-particles\">\n        <div class=\"flex-1 overflow-y-auto\">\n            <div class=\"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-3\">\n                <n-card size=\"small\" hoverable v-for=\"item in filteredList\" :key=\"item.key\"\n                    @dblclick=\"addToScene(item.key,item.name)\" draggable=\"true\" @dragstart=\"dragStart($event, item.key)\"\n                    @dragend=\"dragEnd\" @contextmenu.prevent=\"handlePreview(item)\">\n                    <template #cover>\n                        <img :src=\"item.img\" :alt=\"item.name.value\" draggable=\"false\" class=\"w-full h-full object-cover\" />\n                    </template>\n                    <n-tooltip placement=\"bottom\" trigger=\"hover\">\n                        <template #trigger> {{ item.name }}</template>\n                        <span> {{ item.name }} </span>\n                    </n-tooltip>\n                </n-card>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {inject, computed, nextTick} from \"vue\";\nimport type { Ref } from \"vue\";\nimport {Box3, Vector3} from \"three\";\nimport { Particles,Preview } from \"@astral3d/engine\";\nimport { cpt } from \"@/language\";\nimport { useDragStore } from \"@/store/modules/drag\";\nimport { screenToWorld } from \"@/utils/common/scenes\";\n\nconst searchText = inject('searchText') as Ref<string>;\nconst previewInfo = inject('previewInfo') as any;\nconst previewRef = inject('previewRef') as any;\n\nconst particleList = [\n    { key: \"smoke\", img: \"/static/images/resource/particle/smoke.jpg\", name: cpt(\"extra.resource.particle.Smoke\") },\n    { key: \"fire\", img: \"/static/images/resource/particle/fire.jpg\", name: cpt(\"extra.resource.particle.Fire\") },\n    { key: \"fireLine\", img: \"/static/images/resource/particle/fireLine.jpg\", name: cpt(\"extra.resource.particle.Fire line\") },\n    { key: \"fireworks\", img: \"/static/images/resource/particle/fireworks.jpg\", name: cpt(\"extra.resource.particle.Fireworks\") },\n    { key: \"firefly\", img: \"/static/images/resource/particle/firefly.jpg\", name: cpt(\"extra.resource.particle.Fire fly\") },\n]\n\nconst filteredList = computed(() => {\n    return particleList.filter((item) => (<string>(item.name.value || item.name)).toLowerCase().includes(searchText.value.toLowerCase()));\n});\n\n// 预览\nasync function handlePreview(item){\n  previewInfo.name = (item.name as Ref<string>).value || item.name;\n  previewInfo.type = \"Particle\";\n\n  previewInfo.visible = true;\n\n  await nextTick();\n\n  previewRef.value?.getPreviewer().then((previewer:Preview) => {\n    if(!previewer) return;\n\n    const {emitter,body} = Particles[item.key]();\n\n    previewer.addParticle(emitter,body,previewInfo.name);\n\n    const box3 = new Box3();\n    box3.set(new Vector3(-10, 0, -10), new Vector3(10, 10, 10));\n\n    previewer.modules.controls.fitToBox(box3,true);\n  })\n}\n\n//双击添加至场景..\nfunction addToScene(key,name) {\n    const {emitter,body} = Particles[key]();\n\n    window.viewer.addParticle(emitter,body,name.value);\n}\n\n// 开始拖拽事件\nconst dragStore = useDragStore();\n\nfunction dragStart(_, key) {\n    dragStore.setData(key)\n}\n\nfunction dragEnd() {\n    if (dragStore.getActionTarget !== \"addToScene\" || dragStore.endArea !== \"Scene\") return;\n\n    const position = screenToWorld(dragStore.endPosition.x, dragStore.endPosition.y);\n\n    const key = dragStore.getData;\n    const {emitter,body} = Particles[key](position);\n    window.viewer.addParticle(emitter,body,particleList.find(item => item.key === key)?.name.value);\n\n    dragStore.setActionTarget(\"\");\n}\n</script>\n\n<style scoped lang=\"less\">\n#extra-resource-particles {\n    overflow-x: hidden;\n\n    .n-card {\n        cursor: pointer;\n\n        :deep(.n-card__content) {\n          padding: 0.15rem 0;\n          font-size: 0.65rem;\n          text-align: center;\n      }\n    }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/components/ModelCard.vue",
    "content": "<template>\n  <n-card size=\"small\" hoverable @contextmenu.prevent=\"handlePreview\" @dblclick=\"addToScene\" draggable=\"true\" @dragend=\"dragEnd\">\n    <template #cover>\n      <img :src=\"resource.image\" :alt=\"resource.name as string\" draggable=\"false\" class=\"w-full h-full object-cover\"/>\n    </template>\n    <n-tooltip placement=\"bottom\" trigger=\"hover\">\n      <template #trigger> {{ resource.name }} </template>\n\n      <span> {{ resource.name }} </span>\n    </n-tooltip>\n  </n-card>\n</template>\n\n<script setup lang=\"ts\">\nimport {Ref, inject, nextTick} from 'vue';\nimport {useDragStore} from \"@/store/modules/drag\";\nimport {screenToWorld} from \"@/utils/common/scenes\";\nimport * as Astral3D from '@astral3d/engine';\n\nconst props = withDefaults(defineProps<{\n  resource: {\n    key: string,\n    image: string\n    name: Ref<string> | string,\n    path?: string,\n  };\n}>(), {\n  resource: () => ({\n    key: '',\n    image: '',\n    name: '',\n  })\n})\nconst previewInfo = inject('previewInfo') as any;\nconst previewRef = inject('previewRef') as any;\n\n// 预览\nasync function handlePreview(){\n  previewInfo.name = (props.resource.name as Ref<string>).value || props.resource.name;\n  previewInfo.type = \"Model\";\n\n  if(props.resource.path){\n    previewInfo.fileOrUrl = props.resource.path;\n  }\n\n  previewInfo.visible = true;\n\n  await nextTick();\n\n  if(!props.resource.path){\n    previewRef.value?.getPreviewer().then((previewer:Astral3D.Preview) => {\n      if(!previewer) return;\n\n      const obj = Astral3D[props.resource.key]();\n      if(!obj) return;\n\n      previewer.scene.add(obj);\n      Astral3D.Utils.focusObject(obj,previewer.modules.controls);\n    })\n  }\n}\n\n// 加载模型\nfunction loadModel(position?: { x: number, y: number, z: number }) {\n  if (!props.resource.path) return;\n\n  fetch(props.resource.path)\n      .then(res => res.blob())\n      .then(blob => {\n        const file = new File([blob], props.resource.path?.split('/').pop() as string || props.resource.name as string);\n        Astral3D.Loader.loadFiles([file], undefined).then((models:any) => {\n          if (position) {\n            models[0].position.copy(position);\n            Astral3D.Hooks.useDispatchSignal(\"sceneGraphChanged\");\n          }\n        });\n      });\n}\n\n//双击添加至场景..\nfunction addToScene() {\n  if (!props.resource.path) {\n    const obj = Astral3D[props.resource.key]();\n\n    Astral3D.App.execute(new Astral3D.AddObjectCommand(obj));\n  } else {\n    loadModel();\n  }\n}\n\n// 开始拖拽事件\nconst dragStore = useDragStore();\n\nfunction dragEnd() {\n  if (dragStore.getActionTarget !== \"addToScene\" || dragStore.endArea !== \"Scene\") return;\n\n  const position = screenToWorld(dragStore.endPosition.x, dragStore.endPosition.y);\n  if (!props.resource.path) {\n    const obj = Astral3D[props.resource.key]();\n    obj.position.copy(position);\n    Astral3D.App.execute(new Astral3D.AddObjectCommand(obj));\n  } else {\n    loadModel(position);\n  }\n  dragStore.setActionTarget(\"\");\n}\n</script>\n\n<style lang=\"less\" scoped>\n.n-card {\n  cursor: pointer;\n\n  :deep(&-cover) {\n    height: 100%;\n  }\n\n  :deep(.n-card__content) {\n    padding: 0.15rem 0;\n    font-size: 0.65rem;\n    text-align: center;\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/builtin/index.vue",
    "content": "<template>\n  <div class=\"w-calc-1.5rem h-calc-1.5rem p-3 flex space-x-4\">\n    <!-- 左侧分类 -->\n    <n-card embedded class=\"resource-category-card w-36 h-full overflow-y-auto rounded-lg shadow-sm\">\n      <div class=\"grid grid-cols-2 gap-2\">\n        <n-button class=\"py-2 rounded-lg h-max\" :quaternary=\"category.key !== currentCategory\" v-for=\"category in categories\"\n                  :key=\"category.key\" :type=\"category.key === currentCategory ? 'primary' : 'default'\"\n                  @click=\"handleSelectCategory(category.key)\">\n          <n-icon :size=\"30\" class=\"text-xl mb-2\">\n            <component :is=\"category.icon\"></component>\n          </n-icon>\n          <div class=\"text-0.7rem\">{{ category.name }}</div>\n        </n-button>\n      </div>\n    </n-card>\n\n    <!-- 右侧内容 -->\n    <div class=\"w-calc-10rem\">\n      <component :is=\"currentComponent\" class=\"w-full h-full\" />\n\n      <!-- TODO: 添加分页/瀑布流加载 -->\n    </div>\n  </div>\n\n  <CommonPreview ref=\"previewRef\" v-model:visible=\"previewInfo.visible\" :name=\"previewInfo.name\" :file-or-url=\"previewInfo.fileOrUrl\"\n                 :type=\"previewInfo.type\" is-builtin />\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, markRaw, reactive, ref, provide, useTemplateRef} from \"vue\";\nimport {cpt} from \"@/language\";\nimport {Buoy, CameraAction, HeatMap, LocationCompany, LocationHeart,ModelAlt, Opacity} from \"@vicons/carbon\";\nimport CommonPreview from \"@/components/preview/CommonPreview.vue\";\nimport Models from \"@/views/editor/components/extraPane/resource/builtin/Models.vue\";\nimport Materials from \"@/views/editor/components/extraPane/resource/builtin/Materials.vue\";\nimport Particles from \"@/views/editor/components/extraPane/resource/builtin/Particles.vue\";\nimport Billboard from \"@/views/editor/components/extraPane/resource/builtin/Billboard.vue\";\nimport HtmlPanel from \"@/views/editor/components/extraPane/resource/builtin/HtmlPanel.vue\";\nimport Lights from \"@/views/editor/components/extraPane/resource/builtin/Lights.vue\";\nimport Cameras from \"@/views/editor/components/extraPane/resource/builtin/Cameras.vue\";\n\nconst currentCategory = ref(\"models\");\nconst categories = ref([\n  { key: 'models', name: cpt(\"home.assets.Model\"), icon: markRaw(ModelAlt), component: markRaw(Models) },\n  { key: 'materials', name: cpt(\"home.assets.Material\"), icon: markRaw(Opacity), component: markRaw(Materials) },\n  { key: 'particles', name: cpt(\"layout.sider.Particle\"), icon: markRaw(HeatMap), component: markRaw(Particles) },\n  { key: 'billboard', name: cpt(\"home.assets.Billboard\"), icon: markRaw(LocationHeart), component: markRaw(Billboard) },\n  { key: 'htmlPanel', name: cpt(\"extra.resource.Html panel\"), icon: markRaw(LocationCompany), component: markRaw(HtmlPanel) },\n  { key: 'lights', name: cpt(\"extra.resource.Light\"), icon: markRaw(Buoy), component: markRaw(Lights) },\n  { key: 'cameras', name: cpt(\"extra.resource.Camera\"), icon: markRaw(CameraAction), component: markRaw(Cameras) },\n]);\nconst currentComponent = computed(() => categories.value.find(category => category.key === currentCategory.value)?.component)\n\nfunction handleSelectCategory(key: string) {\n  currentCategory.value = key;\n}\n\nconst previewRef = useTemplateRef(\"previewRef\");\nconst previewInfo = reactive({\n  visible: false,\n  name:\"\",\n  fileOrUrl: \"\",\n  type: \"Model\"\n})\nprovide('previewInfo', previewInfo);\nprovide('previewRef', previewRef);\n</script>\n\n<style scoped lang=\"less\">\n.resource-category-card {\n  :deep(.n-card__content) {\n    padding: 0.6rem 0.7rem !important;\n  }\n\n  .n-button {\n    :deep(&__content) {\n      flex-direction: column;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/index.vue",
    "content": "<template>\n  <div class=\"extra-pane-item\">\n    <div class=\"extra-pane-item-header\">\n      <EsTip size=\"24\" class=\"ml-2\">\n        {{ t(`prompt['Drag or double click to add to scene']`) }}\n        <br />\n        {{ t(`prompt['Right-click on the preview']`) }}\n      </EsTip>\n\n      <n-input v-model:value=\"searchText\" :placeholder=\"t('layout.sider.scene.Search')\" class=\"max-w-50\"\n               size=\"small\">\n        <template #prefix>\n          <n-icon>\n            <Search/>\n          </n-icon>\n        </template>\n      </n-input>\n\n      <n-radio-group v-model:value=\"type\" name=\"type\" size=\"small\">\n        <n-radio-button value=\"builtin\" label=\"内置资源\"/>\n        <n-radio-button value=\"public\" label=\"公共资源\"/>\n      </n-radio-group>\n    </div>\n\n    <div class=\"extra-pane-item-content\">\n      <Builtin v-if=\"type === 'builtin'\"/>\n      <Public v-else/>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref, provide} from 'vue';\nimport {Search} from \"@vicons/carbon\";\nimport {t} from \"@/language\";\nimport Builtin from \"./builtin/index.vue\";\nimport Public from \"./public/index.vue\";\nimport EsTip from \"@/components/es/EsTip.vue\";\n\nconst searchText = ref(\"\");\nprovide('searchText', searchText);\n\nconst type = ref(\"builtin\");\n</script>\n\n<style lang=\"less\" scoped>\n.extra-pane-item-header {\n  padding-left: 0;\n  justify-content: space-between !important;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/public/AssetsList.vue",
    "content": "<script setup lang=\"ts\">\nimport {inject, onMounted, reactive, ref, type Ref, watch} from \"vue\";\nimport {Object3D, Mesh, Vector2, Vector3, RepeatWrapping,TextureLoader} from \"three\";\nimport { App,Loader,Hooks,Utils,SetMaterialCommand,AddObjectCommand,SetMaterialMapCommand,getDefaultBillboardOptions, POSITION, Billboard } from \"@astral3d/engine\";\nimport { getServiceStaticFile } from \"@/utils/common/file\";\nimport { t } from \"@/language\";\nimport {fetchGetAssetCategoryTags, fetchGetAssetsList} from \"@/http/api/assetsInfo\";\nimport AssetPreview from \"@/components/preview/AssetPreview.vue\";\nimport {useDragStore} from \"@/store/modules/drag\";\nimport {screenToWorld} from \"@/utils/common/scenes\";\n\nconst props = withDefaults(defineProps<{\n  type: IAssets.SupportType,\n  category: string\n}>(), {\n  type: \"Model\",\n  category: \"\"\n});\n\nconst searchText = inject('searchText') as Ref<string>;\n\n// 搜索和筛选状态\nconst tags = ref([]);\nconst filterTags = ref([]);\n// 资源数据\nconst assetsData = ref<Array<IAssets.Item>>([]);\n\n/* 操作相关 */\nconst previewVisible = ref(false);\nconst operationAsset = ref<IAssets.Item>();\n\nfunction handlePreview(asset: IAssets.Item) {\n  operationAsset.value = asset;\n  previewVisible.value = true;\n}\n\n/* 资源列表 */\nlet paginationReactive = reactive({\n  page: 0,\n  pageSize: 10,\n  pageCount: 1\n})\nconst loadMore = ref(false);\nconst noMore = ref(false);\n\nasync function handleLoad() {\n  if (noMore.value) return;\n\n  loadMore.value = true;\n  const res = await fetchGetAssetsList({\n    offset: paginationReactive.page * paginationReactive.pageSize,\n    limit: paginationReactive.pageSize,\n    sortby: \"updateTime\",\n    order: \"desc\",\n    query: `type:${props.type}${props.category ? `,category:${props.category}` : \"\"}`,\n    search: `${filterTags.value.length > 0 ? (\"tags:\" + filterTags.value.join(\",\") + ';') : ''}${searchText.value ? \"name:\" + searchText.value : \"\"}`,\n  });\n  if (res.data === null) return;\n\n  assetsData.value.push(...(res.data.items || []));\n  paginationReactive.pageCount = res.data.pages;\n  paginationReactive.page++;\n  loadMore.value = false;\n\n  if (paginationReactive.page >= paginationReactive.pageCount) noMore.value = true;\n}\n\nfunction reload(){\n  paginationReactive.page = 0;\n  paginationReactive.pageCount = 1;\n\n  assetsData.value = [];\n  noMore.value = false;\n\n  handleLoad();\n}\n\n/* 双击添加/拖拽至场景 */\nconst dragStore = useDragStore();\n\nfunction dragStart(asset: IAssets.Item){\n  dragStore.setData(asset)\n}\n\nfunction dragEnd(event:MouseEvent) {\n  if (dragStore.getActionTarget !== \"addToScene\" || dragStore.endArea !== \"Scene\") return;\n\n  if([\"Material\",\"Texture\"].includes(props.type)){\n    const position = new Vector2();\n    const array = Utils.getMousePosition(window.viewer.container, event.clientX, event.clientY);\n    position.fromArray(array);\n    const intersects = window.viewer.getIntersects(position);\n    if(intersects.length > 0){\n      const object = intersects[0].object;\n\n      addToScene(dragStore.getData,object);\n    }else{\n      window.$message?.error(t(\"prompt['No object selected.']\"))\n    }\n  }else{\n    const position = screenToWorld(dragStore.endPosition.x, dragStore.endPosition.y);\n    addToScene(dragStore.getData,position)\n  }\n\n  dragStore.setActionTarget(\"\");\n}\n\nfunction addToScene(asset: IAssets.Item,positionOrObject?: Vector3 | Object3D) {\n  let url = getServiceStaticFile(asset.file);\n\n  switch (props.type) {\n    case \"Model\":\n      fetch(url)\n          .then(res => res.blob())\n          .then(blob => {\n            // const file = new File([blob],`${asset.name}.${asset.file.split('/').pop()?.split('.')[1]}`);\n            const file = new File([blob],`${asset.name}${asset.file.substring(asset.file.lastIndexOf('.'))}`);\n            Loader.loadFiles([file], undefined).then((models:any) => {\n              if (positionOrObject) {\n                models[0].position.copy(positionOrObject);\n                Hooks.useDispatchSignal(\"sceneGraphChanged\");\n              }\n            });\n          })\n          .catch(() => {\n            window.$message?.error(t(\"prompt['Load fail,Please try again later!']\"));\n          });\n      break;\n    case \"Material\":\n      const object = positionOrObject as Mesh || App.selected;\n      if (!object) {\n        window.$message?.error(t(\"prompt['No object selected.']\"))\n        return;\n      }\n\n      if(!object.material){\n        window.$message?.error(t(\"prompt['Can not be applied to the current object']\"))\n        return;\n      }\n\n      fetch(url)\n          .then(res => res.blob())\n          .then(blob => {\n            const materialName = asset.name;\n            const file = new File([blob],materialName);\n\n            Utils.parseMaterialZip(file).then(newMaterial => {\n              newMaterial.name = materialName;\n\n              if (Array.isArray(object.material)) {\n                if (object.material.length === 0) {\n                  window.$message?.error(t(\"prompt[''Can not be applied to the current object']\"))\n                  return;\n                }\n\n                object.material.forEach(m => {\n                  App.removeMaterial(m);\n                });\n              }else{\n                App.removeMaterial(object.material);\n              }\n\n              App.execute(new SetMaterialCommand(object, newMaterial), 'Apply Material: ' + materialName);\n              App.addMaterial(newMaterial);\n\n              Hooks.useDispatchSignal(\"sceneGraphChanged\");\n            }).catch(() => {\n              window.$message?.error(t(\"prompt['Load fail,Please try again later!']\"));\n            })\n          })\n          .catch(() => {\n            window.$message?.error(t(\"prompt['Load fail,Please try again later!']\"));\n          });\n      break;\n    case \"Texture\":\n      const object2 = positionOrObject as Mesh || App.selected;\n      if (!object2) {\n        window.$message?.error(t(\"prompt['No object selected.']\"))\n        return;\n      }\n\n      if(!object2.material){\n        window.$message?.error(t(\"prompt['Can not be applied to the current object']\"))\n        return;\n      }\n\n      // 直接应用至物体时当作基础色贴图处理\n      const baseColorMap = new TextureLoader().load(url,(texture) => {\n        texture.wrapS = texture.wrapT = RepeatWrapping;\n        texture.repeat.set(1, 1);\n        texture.name = asset.name;\n\n        Hooks.useDispatchSignal(\"sceneGraphChanged\");\n      })\n\n      if (Array.isArray(object2.material)) {\n        if (object2.material.length === 0) {\n          window.$message?.error(t(\"prompt[''Can not be applied to the current object.']\"))\n          return;\n        }\n\n        // @ts-ignore\n        if(object2.material[0].map !== undefined){\n          App.execute(new SetMaterialMapCommand(object2,'map',baseColorMap,0));\n        }\n      }else{\n        // @ts-ignore\n        if(object2.material.map !== undefined){\n          console.log(\"addmap\",baseColorMap)\n          App.execute(new SetMaterialMapCommand(object2,'map',baseColorMap,undefined));\n        }\n      }\n      break;\n    case \"Billboard\":\n      const _ops = getDefaultBillboardOptions();\n      _ops.name = asset.name;\n      _ops.image.url = url;\n      _ops.image.visible = true;\n      _ops.image.position = POSITION.LEFT;\n\n      if(positionOrObject && (positionOrObject as Vector3).isVector3){\n        _ops.position = (positionOrObject as Vector3).toArray();\n      }\n\n      const billboard = new Billboard(_ops);\n\n      const handleBillboardImgLoaded = () => {\n        Hooks.useDispatchSignal(\"materialChanged\", billboard.material);\n\n        billboard.removeEventListener(\"imgLoaded\", handleBillboardImgLoaded);\n      }\n      billboard.addEventListener(\"imgLoaded\", handleBillboardImgLoaded);\n\n      App.execute(new AddObjectCommand(billboard), `Add Billboard: ${_ops.name}`);\n      break;\n    case \"HDR\":\n      window.viewer.options.hdr = url;\n      // 同时设置为背景\n      window.viewer.loadEnv(true);\n      break;\n  }\n}\n\nonMounted(() => {\n  handleLoad();\n\n  // 获取标签\n  fetchGetAssetCategoryTags(props.type,props.category).then(res => {\n    tags.value = res.data;\n  })\n})\nwatch([() => props.type, () => props.category], () => {\n  filterTags.value = [];\n\n  reload();\n\n  // 获取标签\n  fetchGetAssetCategoryTags(props.type,props.category).then(res => {\n    tags.value = res.data;\n  })\n})\nwatch(searchText,Utils.debounce(() => {\n  reload();\n},500))\n</script>\n\n<template>\n  <!-- 筛选区域 -->\n  <div class=\"h-auto flex items-center justify-start py-0.3rem\">\n    <n-checkbox-group v-model:value=\"filterTags\" @update:value=\"reload\">\n      <n-space item-style=\"display: flex;\" align=\"center\">\n        <n-checkbox v-for=\"tag in tags\" :key=\"tag\" :value=\"tag\" :label=\"tag\" />\n      </n-space>\n    </n-checkbox-group>\n  </div>\n\n  <!-- 资源网格展示 -->\n  <n-infinite-scroll id=\"public-assets-card-list\" :distance=\"10\" @load=\"handleLoad\">\n    <n-card hoverable v-for=\"asset in assetsData\" :key=\"asset.id\"\n            @contextmenu.prevent=\"handlePreview(asset)\" @dblclick=\"addToScene(asset)\"\n            draggable=\"true\" @dragstart=\"dragStart(asset)\" @dragend=\"dragEnd\">\n      <template #cover>\n        <div class=\"absolute top-10px right-10px z-10\">\n          <n-tag type=\"success\" :bordered=\"false\" class=\"ml-5px\"\n                 v-for=\"tag in (asset.tags ? asset.tags.split(',') : [])\" :key=\"tag\">\n            {{ tag }}\n          </n-tag>\n        </div>\n\n        <n-image preview-disabled object-fit=\"cover\"\n                 :src=\"getServiceStaticFile(asset.thumbnail) || '/static/images/carousel/Astral3DEditor.jpg'\"\n                 class=\"w-full h-full cursor-pointer hover:transform-scale-140 transition-all-200\" />\n\n        <div class=\"asset-name absolute bottom-0 left-0 w-full h-36px flex items-center justify-center\" style=\"background: rgba(0, 0, 0, .3)\">\n          <n-ellipsis class=\"!max-w-90% color-#dbdbdb\">\n            {{ asset.name }}\n          </n-ellipsis>\n        </div>\n      </template>\n    </n-card>\n\n    <div v-if=\"loadMore\" class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.Loading') }}...\n    </div>\n    <div v-else-if=\"!noMore\" class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.Scroll to load more') }} 😽😽😽\n    </div>\n    <div v-else class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.No more') }} 🤪\n    </div>\n  </n-infinite-scroll>\n\n  <!-- 预览 -->\n  <AssetPreview v-model:visible=\"previewVisible\" :asset=\"operationAsset as IAssets.Item\" />\n</template>\n\n<style lang=\"less\">\n#public-assets-card-list {\n  height: calc(100% - 60px);\n  width: 100%;\n\n  .n-scrollbar-content {\n    display: grid;\n    grid-gap: 0.75rem;\n    grid-template-columns: repeat(auto-fill,minmax(160px,1fr));\n    grid-auto-flow: row dense;\n  }\n\n  .n-scrollbar-rail{\n    right: -10px;\n  }\n}\n</style>\n\n<style lang=\"less\" scoped>\n.n-card {\n  :deep(.n-card-cover){\n    height: 100%;\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/components/extraPane/resource/public/index.vue",
    "content": "<template>\n  <div class=\"w-calc-1.5rem h-calc-1.5rem p-3 flex space-x-4\">\n    <!-- 左侧分类 -->\n    <n-card embedded class=\"public-assets-category-card w-36 h-full overflow-y-auto rounded-lg shadow-sm\">\n      <div class=\"grid grid-cols-2 gap-2\">\n        <n-button class=\"py-2 rounded-lg h-max\"  :quaternary=\"category.key !== currentCategory\" v-for=\"category in assetsStore.categories\"\n                  :key=\"category.key\" :type=\"category.key === currentCategory ? 'primary' : 'default'\"\n                  @click=\"handleSelectCategory(category.key)\">\n          <div class=\"flex flex-col items-center\">\n            <n-icon :size=\"30\" class=\"text-xl mb-2\">\n              <component :is=\"category.icon\"></component>\n            </n-icon>\n            <div class=\"text-0.7rem\">{{ category.label }}</div>\n          </div>\n        </n-button>\n      </div>\n    </n-card>\n\n    <!-- 右侧内容 -->\n    <div class=\"w-calc-10rem h-full flex-1 flex flex-col\">\n      <!-- 子分类标签 -->\n      <div class=\"mb-1 flex flex-wrap items-center gap-2\">\n        <template v-for=\"subCategory in subCategories\" :key=\"subCategory.key\">\n          <n-button v-if=\"!subCategory.children?.length\" strong secondary round\n                    :type=\"activeButtonKey === subCategory.key ? 'primary' : 'default'\"\n                    @click=\"handleSelectSubCategory(subCategory.key,subCategory.key)\">\n            {{ subCategory.label }}\n          </n-button>\n\n          <EsPopTreeSelect v-else :options=\"[subCategory] as unknown as TreeOption[]\" :value=\"subCategory.key\"\n                           strong secondary round :type=\"activeButtonKey === subCategory.key ? 'primary' : 'default'\"\n                           @click=\"(option) => handleSelectSubCategory(option.key,subCategory.key)\" />\n        </template>\n      </div>\n\n      <AssetsList :type=\"currentCategory\" :category=\"activeSubCategory\" />\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref, computed, onMounted} from \"vue\";\nimport type {TreeOption} from \"naive-ui\";\nimport EsPopTreeSelect from \"@/components/es/EsPopTreeSelect.vue\";\nimport AssetsList from \"./AssetsList.vue\";\nimport {useAssetsStore} from \"@/store/modules/assets\";\n\nconst assetsStore = useAssetsStore();\n\n/* 资产分类 */\n// 主分类选择\nconst currentCategory = ref<IAssets.SupportType>(assetsStore.categories[0].key);\n// 子分类\nconst subCategories = computed(() => assetsStore.getCategoryChildren(currentCategory.value));\n// 子分类选中项\nconst activeSubCategory = ref('');\n// 子分类UI选中按钮Key\nconst activeButtonKey = ref('');\n\n// 处理主分类变更\nfunction handleSelectCategory(key: IAssets.SupportType) {\n  currentCategory.value = key;\n\n  activeSubCategory.value = '';\n  activeButtonKey.value = '';\n}\n\n// 处理子分类变更\nfunction handleSelectSubCategory(key: string,buttonKey: string) {\n  if(activeSubCategory.value === key){\n    activeSubCategory.value = '';\n    activeButtonKey.value = '';\n  }else{\n    activeSubCategory.value = key;\n    activeButtonKey.value = buttonKey;\n  }\n}\n\nonMounted(() => {\n  assetsStore.fetchCategory();\n})\n</script>\n\n<style scoped lang=\"less\">\n.public-assets-category-card {\n  :deep(.n-card__content) {\n    padding: 0.6rem 0.7rem !important;\n  }\n\n  .n-button {\n    :deep(&__content) {\n      flex-direction: column;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/index.vue",
    "content": "<script lang=\"ts\" setup>\n\timport { ref, onMounted, nextTick, provide } from \"vue\";\n\timport { Hooks, App, defaultProjectInfo } from \"@astral3d/engine\";\n\timport * as Layout from \"./layouts\";\n\timport { connectWebSocket } from \"@/hooks/useWebSocket\";\n\timport { useRoute } from \"vue-router\";\n\timport { fetchGetOneScene } from \"@/http/api/scenes\";\n\timport { t } from \"@/language\";\n\timport { initializeConfig } from \"@/utils/storage/config\";\n\timport EsCubeLoading from \"@/components/es/EsCubeLoading.vue\";\n\timport EsPlugin from \"@/components/es/EsPlugin.vue\";\n\timport ObjectScript from \"@/components/code/Script.vue\";\n\n\tinitializeConfig(App.storage);\n\n\tconst initLoading = ref(true);\n\tconst siderWidth = ref(300);\n\tconst isCesiumScene = ref(false);\n\n\tconst defaultInfo = defaultProjectInfo();\n\tconst sceneInfo = ref(defaultInfo.sceneInfo);\n\tconst drawingInfo = ref(defaultInfo.drawing);\n\tprovide(\"sceneInfo\", sceneInfo);\n\tprovide(\"drawingInfo\", drawingInfo);\n\n\tonMounted(() => {\n\t\t// 启动websocket连接\n\t\tconnectWebSocket(import.meta.env.VITE_GLOB_SOCKET_URL);\n\n\t\tinit();\n\t});\n\n\tasync function init() {\n\t\t// 获取路由参数\n\t\tconst id = useRoute().params.id as string;\n\t\tif (id) {\n\t\t\tconst res = await fetchGetOneScene(id);\n\n\t\t\tif (res.error !== null) {\n\t\t\t\twindow.$message?.error(t(\"scene.Failed to get scene data\"));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (res.data.cesiumConfig) {\n\t\t\t\tif (typeof res.data.cesiumConfig === \"string\") {\n\t\t\t\t\tres.data.cesiumConfig = JSON.parse(res.data.cesiumConfig);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tres.data.cesiumConfig = undefined;\n\t\t\t}\n\n\t\t\tisCesiumScene.value = res.data.projectType === 1;\n\n\t\t\tApp.project.setKey(\"sceneInfo\", res.data);\n\t\t\tsceneInfo.value = res.data;\n\n\t\t\tinitLoading.value = false;\n\n\t\t\tawait nextTick();\n\n\t\t\tgetScene(res.data);\n\t\t} else {\n\t\t\twindow.$message?.error(t(\"prompt['Parameter error!']\"));\n\t\t}\n\t}\n\n\t//拉取场景\n\tfunction getScene(sceneInfo) {\n\t\t// 如果创建的是空场景则无场景包\n\t\tif (!sceneInfo.zip) {\n\t\t\twindow.viewer.options.hdr = \"/static/resource/hdr/cloudy.hdr\";\n\t\t\twindow.viewer.loadEnv(true);\n\n\t\t\treturn;\n\t\t}\n\n\t\twindow.viewer.options.hdr = \"\";\n\n\t\tlet notice = window.$notification.info({\n\t\t\ttitle: t(\"scene['Get the scene data']\") + \"...\",\n\t\t\tcontent: t(\"other.Loading\") + \"...\",\n\t\t\tclosable: false,\n\t\t});\n\n\t\twindow.viewer.package.unpack({\n\t\t\turl: sceneInfo.zip,\n\t\t\tonSceneLoad: () => {\n\t\t\t\tdrawingInfo.value = App.project.getKey(\"drawing\");\n\t\t\t},\n\t\t\tonComplete: () => {\n\t\t\t\twindow.$message?.success(t(\"scene['Loading completed!']\"));\n\n\t\t\t\tHooks.useDispatchSignal(\"sceneLoadComplete\");\n\n\t\t\t\tnotice.destroy();\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n</script>\n\n<template>\n\t<EsCubeLoading v-model:visible=\"initLoading\" />\n\n\t<div id=\"layout\" v-if=\"!initLoading\">\n\t\t<n-layout position=\"absolute\">\n\t\t\t<n-layout-header bordered>\n\t\t\t\t<Layout.Header />\n\t\t\t</n-layout-header>\n\n\t\t\t<n-layout class=\"n-layout-center-layout\" has-sider sider-placement=\"right\" position=\"absolute\">\n\t\t\t\t<n-layout-sider\n\t\t\t\t\tcollapse-mode=\"width\"\n\t\t\t\t\t:collapsed-width=\"0\"\n\t\t\t\t\t:width=\"siderWidth\"\n\t\t\t\t\t:native-scrollbar=\"false\"\n\t\t\t\t\tshow-trigger=\"bar\"\n\t\t\t\t\ttrigger-style=\"right:0;left:auto;transform: translateX(28px);\"\n\t\t\t\t\tcollapsed-trigger-style=\"left:0;right:auto;transform: rotate(0deg);\"\n\t\t\t\t>\n\t\t\t\t\t<Layout.Assets />\n\t\t\t\t</n-layout-sider>\n\n\t\t\t\t<n-layout-content>\n\t\t\t\t\t<Layout.Scene v-if=\"!isCesiumScene\"></Layout.Scene>\n\t\t\t\t\t<!--          <Layout.Cesium v-else></Layout.Cesium>-->\n\t\t\t\t</n-layout-content>\n\n\t\t\t\t<n-layout-sider collapse-mode=\"transform\" :collapsed-width=\"0\" :width=\"siderWidth\" :native-scrollbar=\"false\" show-trigger=\"bar\" bordered>\n\t\t\t\t\t<Layout.Sidebar />\n\t\t\t\t</n-layout-sider>\n\t\t\t</n-layout>\n\n\t\t\t<!-- <n-layout-footer bordered position=\"absolute\">\n  <Layout.Footer/>\n</n-layout-footer> -->\n\t\t</n-layout>\n\n\t\t<EsPlugin />\n\n\t\t<ObjectScript />\n\t</div>\n</template>\n\n<style lang=\"less\" scoped>\n\t#layout {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tposition: relative;\n\n\t\t.n-layout {\n\t\t\t&-header {\n\t\t\t\theight: var(--header-height);\n\t\t\t\tline-height: var(--header-height);\n\t\t\t\tpadding: 0 0.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: space-between;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t&-sider {\n\t\t\t\tz-index: 15;\n\t\t\t\theight: 100%;\n\t\t\t}\n\n\t\t\t&-center-layout {\n\t\t\t\ttop: var(--header-height);\n\t\t\t\tbottom: var(--footer-height);\n\t\t\t\twidth: 100%;\n\t\t\t\t// height: calc(100vh - var(--header-height) - var(--footer-height));\n\t\t\t\theight: calc(100vh - var(--header-height));\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t&-footer {\n\t\t\t\theight: var(--footer-height);\n\t\t\t\tpadding: 0 1rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: space-between;\n\t\t\t}\n\t\t}\n\t}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/Assets.vue",
    "content": "<template>\n    <div id=\"layout-assets\">\n        <div class=\"layout-assets-scene-tree\" style=\"height: calc(40% - 25px)\">\n            <SceneTree />\n        </div>\n\n        <n-tabs default-value=\"cad\" animated type=\"line\" justify-content=\"space-around\" class=\"!h-60%\"\n            pane-wrapper-class=\"layout-assets-tab-pane-wrapper\">\n            <n-tab-pane name=\"cad\" tab=\"CAD\" display-directive=\"show\">\n                <CadLibrary />\n            </n-tab-pane>\n        </n-tabs>\n    </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport SceneTree from \"@/components/tree/SceneTree.vue\";\nimport CadLibrary from \"./assets/CadLibrary.vue\";\n</script>\n\n<style scoped lang=\"less\">\n#layout-assets {\n    // height: calc(100vh - var(--header-height) - var(--footer-height));\n    height: calc(100vh - var(--header-height));\n    border-right: 1px solid var(--n-border-color);\n\n    .layout-assets-scene-tree {\n        padding: 10px;\n        border-bottom: 5px solid var(--n-border-color);\n    }\n\n    :deep(.layout-assets-tab-pane-wrapper) {\n        height: calc(100% - var(--n-pane-padding-top) - 42px);\n        overflow-y: auto;\n\n        .n-tab-pane {\n            height: calc(100% - 10px);\n            padding-top: 10px !important;\n            overflow-y: auto;\n\n            &:first-child {\n                overflow: unset;\n            }\n        }\n    }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/Footer.vue",
    "content": "<script lang=\"ts\" setup>\nimport SettingCenter from \"@/components/setting/common/SettingCenter.vue\";\n\nconst version = import.meta.env.VITE_GLOB_VERSION;\nconst author = import.meta.env.VITE_GLOB_AUTHOR;\nconst beian = import.meta.env.VITE_GLOB_BEIAN;\n</script>\n\n<template>\n  <div class=\"inline-block !flex items-center\">\n    Version {{ version }} · Made by {{ author }}\n    &nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;\n    <p><a href=\"https://beian.miit.gov.cn/\" target=\"_blank\">{{beian}}</a></p>\n  </div>\n\n  <SettingCenter />\n</template>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/Header.vue",
    "content": "<script lang=\"ts\" setup>\nimport {inject} from \"vue\";\nimport { useRouter } from 'vue-router';\nimport NavigationOperation from '@/components/header/NavigationOperation.vue';\nimport RightOperation from '@/components/header/RightOperation.vue';\nimport Logo from \"@/components/header/Logo.vue\";\n\nconst router = useRouter();\n\nconst sceneInfo = inject<ISceneInfo>(\"sceneInfo\");\n\nfunction handleLogoClick(){\n  // 回首页\n  router.push('/');\n}\n</script>\n\n<template>\n  <div class=\"flex items-center\">\n    <Logo class=\"w-36px h-36px mr-15px cursor-pointer\" @click=\"handleLogoClick\" />\n\n    <NavigationOperation />\n  </div>\n\n  <h3>{{sceneInfo?.sceneName}}</h3>\n\n  <RightOperation />\n</template>\n\n<style lang=\"less\" scoped>\n.n-menu.n-menu--horizontal {\n  width: auto;\n\n  :deep(.n-menu-item-content) {\n    padding: 0 0.5rem;\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/Scene.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, inject, Ref} from 'vue';\nimport {Vector2} from 'three';\nimport {Loader} from \"@astral3d/engine\";\nimport {useDragStore} from \"@/store/modules/drag\";\nimport {useGlobalConfigStore} from '@/store/modules/globalConfig';\nimport Config from \"@/utils/storage/config\";\nimport Drawing from \"@/components/drawing/Drawing.vue\";\nimport Viewport from \"./viewport/Viewport.vue\";\nimport ExtraPane from \"@/views/editor/components/extraPane/ExtraPane.vue\";\n\nconst globalConfigStore = useGlobalConfigStore();\n\nconst drawingInfo = inject(\"drawingInfo\") as Ref<IDrawing>;\nconst viewerContainerRef = ref();\nconst viewportRef = ref();\nconst drawingRef = ref();\n\n// 场景界面与扩展面板分割大小\nconst splitSize = ref(Config.getKey(\"sceneSplitSize\") || 0.8);\n\n/** 鼠标拖拽事件相关 **/\nconst dragStore = useDragStore();\n\nfunction sceneDrop(event) {\n  event.preventDefault();\n\n  // 设置鼠标释放时的区域屏幕坐标\n  dragStore.endPosition = new Vector2(event.layerX, event.layerY);\n\n  if (event.target) {\n    if (viewportRef.value?.$el?.contains(event.target)) {\n      dragStore.endArea = \"Scene\";\n    } else if (drawingRef.value?.$el?.contains(event.target)) {\n      dragStore.endArea = \"Drawing\";\n    } else {\n      dragStore.endArea = \"\";\n    }\n  }\n\n  const dt = event.dataTransfer as DataTransfer;\n\n  //拖拽大纲视图\n  if (dt.types[0] === 'text/plain') return;\n\n  if (dt.items) {\n    //支持文件夹\n    Loader.loadItemList(dt.items);\n  } else {\n    Loader.loadFiles(dt.files, undefined);\n  }\n}\n\nfunction sceneDragOver(event) {\n  event.preventDefault();\n  (event.dataTransfer as DataTransfer).dropEffect = 'copy';\n}\n\nfunction sceneDragEnter() {\n  dragStore.setActionTarget(\"addToScene\");\n}\n\nfunction sceneDragLeave(e) {\n  // 确保移出了场景区+图纸区\n  if (e.fromElement && viewerContainerRef.value.$el.contains(e.fromElement)) return;\n\n  dragStore.setActionTarget(\"\");\n}\n\n/** 鼠标拖拽事件相关 End **/\n\n/**\n * 拖拽分割大小变换\n * @param {number} value\n */\nfunction handleSplitSizeUpdate(value: number) {\n  Config.setKey(\"sceneSplitSize\", value);\n}\n</script>\n\n<template>\n  <n-spin ref=\"viewerContainerRef\" :show=\"globalConfigStore.loading\" @drop=\"sceneDrop\" @dragover=\"sceneDragOver\"\n          @dragenter=\"sceneDragEnter\" @dragleave=\"sceneDragLeave\">\n    <n-split direction=\"vertical\" :max=\"1\" :min=\"0\" :default-size=\"splitSize\" @update:size=\"handleSplitSizeUpdate\">\n      <template #1>\n        <n-split direction=\"horizontal\" :max=\"0.85\" :min=\"0.15\" :default-size=\"splitSize\"\n                 :pane1-style=\"{ display: drawingInfo?.isUploaded ? 'flex' : 'none' }\"\n                 :resize-trigger-size=\"drawingInfo?.isUploaded ? 3 : 0\">\n          <template #1 v-if=\"drawingInfo?.isUploaded\">\n            <Drawing ref=\"drawingRef\"/>\n          </template>\n          <template #2>\n            <Viewport ref=\"viewportRef\"/>\n          </template>\n        </n-split>\n      </template>\n\n      <template #2>\n        <ExtraPane/>\n      </template>\n    </n-split>\n\n    <template #description>{{ globalConfigStore.loadingText }}</template>\n  </n-spin>\n</template>\n\n<style lang=\"less\" scoped>\n.n-spin-container {\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n\n  :deep(.n-spin-content) {\n    width: 100%;\n    height: 100%;\n\n    .n-split {\n      &-pane-1, &-pane-2 {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        position: relative;\n      }\n    }\n\n    .n-descriptions {\n      &-header {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/Sidebar.vue",
    "content": "<script setup lang=\"ts\">\nimport {h, onBeforeUnmount, onMounted, ref,markRaw,nextTick} from \"vue\";\nimport type {DefineComponent} from \"vue\";\nimport { NIcon, NTooltip } from \"naive-ui\";\nimport type { TabsInst } from 'naive-ui'\nimport {\n  EarthFilled,\n  Cube,\n  GroupObjects,\n  Image,\n  ResultOld,\n  Script,\n  Draw,\n  MagicWandFilled,\n  CloudSnow,\n  HeatMap,\n  Opacity,\n  ImageReference,\n  LocationHeart,\n  LocationCompany,\n} from \"@vicons/carbon\";\n\nimport { t } from \"@/language\";\nimport {Utils,Hooks} from \"@astral3d/engine\";\nimport SidebarScene from \"./sidebar/SidebarScene.vue\";\nimport SidebarRenderer from \"./sidebar/SidebarRenderer.vue\";\nimport SidebarEffect from \"./sidebar/SidebarEffect.vue\";\nimport SidebarWeather from \"./sidebar/SidebarWeather.vue\";\nimport SidebarHistory from \"./sidebar/SidebarHistory.vue\";\nimport SidebarObject from \"./sidebar/SidebarObject.vue\";\nimport SidebarGeometry from \"./sidebar/SidebarGeometry.vue\";\nimport SidebarMaterial from \"./sidebar/SidebarMaterial.vue\";\nimport SidebarAnimations from \"./sidebar/SidebarAnimations.vue\";\nimport SidebarScript from \"./sidebar/SidebarScript.vue\";\nimport SidebarDrawing from \"./sidebar/SidebarDrawing.vue\";\nimport SidebarParticle from \"./sidebar/SidebarParticle.vue\";\nimport SidebarBillboard from \"./sidebar/SidebarBillboard.vue\";\nimport SidebarHtmlPanel from \"./sidebar/SidebarHtmlPanel.vue\";\n\nconst tabsInstRef = ref<TabsInst | null>(null);\nconst tabs = ref<Array<any>>([]);\nconst current = ref<string>('scene');\n\nfunction iconTabName(icon: { text: string,color:string,component: DefineComponent }) {\n    return h(NTooltip, {\n        placement: \"left\",\n        trigger: \"hover\"\n    }, {\n        default: () => t(`layout.sider[\"${icon.text}\"]`),\n        trigger: () => h(NIcon, { size: 14,color:icon.color }, () => h(icon.component)),\n    })\n}\n\nfunction setTabs(object){\n  const sceneTabs = [\n      { name: \"scene\", icon: { text: 'Scene config',color:\"#A9A9A9\", component: markRaw(EarthFilled) }, component: markRaw(SidebarScene) },\n      { name: \"renderer\", icon: { text: 'Renderer config',color:\"#A9A9A9\", component: markRaw(ImageReference) }, component: markRaw(SidebarRenderer) },\n      { name: \"effect\", icon: { text: 'Post processing',color:\"#A9A9A9\", component: markRaw(MagicWandFilled) }, component: markRaw(SidebarEffect) },\n      { name: \"weather\", icon: { text: 'Weather',color:\"#A9A9A9\", component: markRaw(CloudSnow) }, component: markRaw(SidebarWeather) },\n      { name: \"history\", icon: { text: 'History',color:\"#A9A9A9\", component: markRaw(ResultOld) }, component: markRaw(SidebarHistory) },\n      { name: \"drawing\", icon: { text: 'Scene drawing',color:\"#A9A9A9\", component: markRaw(Image) }, component: markRaw(SidebarDrawing) },\n  ];\n  const object3DTabs = [\n      { name: \"object\", icon: { text: 'Object', color:\"#B97D4C\", component: markRaw(Cube) }, component: markRaw(SidebarObject) },\n      { name: \"geometry\", icon: { text: 'Geometry',color:\"#6287D1\", component: markRaw(GroupObjects) }, component: markRaw(SidebarGeometry) },\n      { name: \"material\", icon: { text: 'Material',color:\"#6287D1\", component: markRaw(Opacity) }, component: markRaw(SidebarMaterial) },\n      { name: \"animations\", icon: { text: 'Animations',color:\"#06AF88\", component: markRaw(Draw) }, component: markRaw(SidebarAnimations) },\n      { name: \"script\", icon: { text: 'Script',color:\"#06AF88\", component: markRaw(Script) }, component: markRaw(SidebarScript) },\n  ]\n\n  if(object){\n    switch (object.type) {\n      case \"Particle\":\n        // 如果选中的对象是粒子，就添加粒子相关的操作侧边栏\n        object3DTabs.push({ name: 'particle', icon: { text: 'Particle',color:\"#A9575F\", component: markRaw(HeatMap) }, component: markRaw(SidebarParticle) })\n\n        current.value = 'particle';\n        break;\n      case \"Billboard\":\n        // 如果选中的对象是广告牌，就添加广告牌相关的操作侧边栏\n        object3DTabs.push({ name: 'billboard', icon: { text: 'Billboard',color:\"#A9575F\", component: markRaw(LocationHeart) }, component: markRaw(SidebarBillboard) })\n\n        current.value = 'billboard';\n        break;\n      case \"HtmlPanel\":\n      case \"HtmlSprite\":\n        // 如果选中的对象是HtmlPanel，就添HtmlPanel相关的操作侧边栏\n        object3DTabs.push({ name: 'htmlPanel', icon: { text: 'Html panel',color:\"#A9575F\", component: markRaw(LocationCompany) }, component: markRaw(SidebarHtmlPanel) })\n\n        current.value = 'htmlPanel';\n        break;\n    }\n  }\n\n  tabs.value = [...sceneTabs,...object3DTabs];\n\n  nextTick(() => tabsInstRef.value?.syncBarPosition());\n\n  // 如果当前选中的对象不是粒子，但是侧边栏是粒子，则切换到对象侧边栏\n  if (current.value === 'particle') {\n    if (!Utils.isParticleObject(object)){\n      current.value = 'object';\n    }\n  }\n\n  // 如果当前选中的对象不是广告牌，但是侧边栏是广告牌，则切换到对象侧边栏\n  if (current.value === 'billboard') {\n    if (!Utils.isBillboardObject(object)){\n      current.value = 'object';\n    }\n  }\n\n  // 如果当前选中的对象不是HtmlPanel，但是侧边栏是HtmlPanel，则切换到对象侧边栏\n  if (current.value === 'htmlPanel') {\n    if (!Utils.isHtmlPanelObject(object)){\n      current.value = 'object';\n    }\n  }\n}\n\nonMounted(()=>{\n  Hooks.useAddSignal(\"objectSelected\",setTabs);\n\n  setTabs(undefined);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\",setTabs);\n})\n</script>\n\n<template>\n    <n-tabs ref=\"tabsInstRef\" v-model:value=\"current\" type=\"line\" size=\"small\" pane-class=\"!p-10px overflow-y-auto\" id=\"sidebar-attributes\"\n        placement=\"left\">\n        <n-tab-pane v-for=\"t in tabs\" :key=\"t.name\" :name=\"t.name\" :tab=\"iconTabName(t.icon)\"\n            display-directive=\"show\" :disabled=\"t.name === 'disabled'\">\n            <component :is=\"t.component\" />\n        </n-tab-pane>\n    </n-tabs>\n</template>\n\n<style lang=\"less\" scoped>\n.n-tabs {\n    // height: calc(100vh - var(--header-height) - var(--footer-height));\n    height: calc(100vh - var(--header-height));\n\n    // 配置按功能类型（常驻/动态） 分割\n    :deep(.n-tabs-wrapper) {\n        .n-tabs-tab-wrapper:nth-child(8) {\n            margin-top: 10px;\n            border-top: 1px solid var(--n-tab-border-color);\n        }\n    }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/assets/CadLibrary.vue",
    "content": "<template>\n  <div id=\"cad-library\" class=\"h-full flex flex-col\">\n    <n-alert type=\"info\" :show-icon=\"false\" :bordered=\"false\" class=\"mb-2 mx-2\">\n      <n-button quaternary round type=\"primary\" @click=\"showHistoryModal = true\">\n        {{ t(\"layout.sider.History\") }}\n      </n-button>\n\n      <n-button quaternary circle type=\"primary\" @click=\"showCadUpload = true\">\n        <template #icon>\n          <n-icon>\n            <CloudUpload/>\n          </n-icon>\n        </template>\n      </n-button>\n    </n-alert>\n\n    <div class=\"flex-1 overflow-y-auto px-0.3rem\">\n      <div class=\"grid grid-cols-[repeat(auto-fill,minmax(80px,1fr))] gap-2\">\n        <n-card size=\"small\" hoverable v-for=\"item in objectList\" :key=\"item.id\" @dblclick=\"addToScene(item)\"\n                draggable=\"true\" @dragstart=\"dragStart($event, item)\" @dragend=\"dragEnd\">\n          <template #cover>\n            <n-spin :show=\"item.conversionStatus === 0\">\n              <template #description>\n                正在解析...\n              </template>\n              <img :src=\"item.thumbnail ? item.thumbnail : '/static/images/placeholder/占位图.png'\"\n                   :alt=\"item.fileName\" draggable=\"false\">\n              <n-tag :color=\"{ color: '#F1C3CC', textColor: '#D03050' }\" :bordered=\"false\" size=\"small\"\n                     class=\"absolute top-33px w-full\" v-if=\"item.conversionStatus === 2\">\n                解析失败\n                <template #icon>\n                  <n-icon>\n                    <CloseCircleSharp/>\n                  </n-icon>\n                </template>\n              </n-tag>\n            </n-spin>\n          </template>\n          <n-tooltip placement=\"bottom\" trigger=\"hover\">\n            <template #trigger> {{ item.fileName }}</template>\n            <span> {{ item.fileName }} </span>\n          </n-tooltip>\n        </n-card>\n      </div>\n    </div>\n    <div class=\"flex justify-center mt-0.5rem\">\n      <n-pagination v-bind=\"paginationReactive\"></n-pagination>\n    </div>\n\n    <n-modal v-model:show=\"showHistoryModal\" class=\"!w-60vw\" preset=\"dialog\" display-directive=\"show\"\n             :title=\"t('cad[\\'CAD parse\\']') + t('layout.sider.History')\">\n      <n-data-table class=\"mt-20px\" size=\"small\" :loading=\"tableLoading\" :columns=\"columns\"\n                    :data=\"objectList\"></n-data-table>\n      <div class=\"flex justify-end mt-0.5rem\">\n        <n-pagination v-bind=\"paginationReactive\"></n-pagination>\n      </div>\n    </n-modal>\n\n    <!--  CAD文件上传  -->\n    <CadUploadDialog v-model:show=\"showCadUpload\" @refreshList=\"getCadList\" ref=\"uploadDialogRef\"/>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {ref, reactive, onMounted, h, onBeforeUnmount, inject, Ref} from \"vue\";\nimport type {DataTableColumns} from 'naive-ui';\nimport {NButton, NTag, NIcon} from 'naive-ui'\nimport {CloudUpload, Reload, CheckmarkCircle, CloseOutline, CloseCircleSharp} from '@vicons/ionicons5';\nimport {t} from \"@/language\";\nimport {useDragStore} from \"@/store/modules/drag\";\nimport {fetchGetCadList} from \"@/http/api/cad\";\nimport {onWebSocket, offWebSocket} from \"@/hooks/useWebSocket\";\nimport {useWebsocketStore} from \"@/store/modules/websocket\";\nimport {App} from \"@astral3d/engine\";\nimport CadUploadDialog from \"./cadLibrary/CadUploadDialog.vue\";\n\nconst websocketStore = useWebsocketStore();\n\nconst drawingInfo = inject(\"drawingInfo\") as Ref<IDrawing>;\n\nlet objectList = ref<ICad.Data[]>([]);\nconst showHistoryModal = ref(false);\nconst tableLoading = ref(false);\nconst columns: DataTableColumns<ICad.Data> = [\n  {\n    title: '文件名',\n    key: 'fileName'\n  },\n  {\n    title: '状态',\n    key: 'conversionStatus',\n    render(row) {\n      return h(\n          NTag,\n          {\n            bordered: false,\n            type: row.conversionStatus === 0 ? \"warning\" : row.conversionStatus === 1 ? \"success\" : \"error\",\n          },\n          {\n            default: () => row.conversionStatus === 0 ? \"转换中\" : row.conversionStatus === 1 ? \"成功\" : \"失败\",\n            icon: () => h(\n                NIcon, {\n                  component: row.conversionStatus === 0 ? Reload : row.conversionStatus === 1 ? CheckmarkCircle : CloseOutline\n                }\n            )\n          }\n      )\n    }\n  },\n  {\n    title: '操作',\n    key: 'actions',\n    render(row) {\n      if (row.conversionStatus !== 1) return \"\";\n      return h(\n          NButton,\n          {\n            size: 'small',\n            onClick: () => addToScene(row)\n          },\n          {default: () => t(\"other.Load\")}\n      )\n    }\n  }\n];\nlet paginationReactive = reactive({\n  page: 1,\n  pageSize: 10,\n  pageCount: 1,\n  \"on-update:page\": (page: number) => {\n    paginationReactive.page = page;\n    getCadList();\n  }\n})\n\nconst showCadUpload = ref(false);\nconst uploadDialogRef = ref();\n\n// 获取cad列表\nasync function getCadList() {\n  const res = await fetchGetCadList({\n    offset: (paginationReactive.page - 1) * paginationReactive.pageSize,\n    limit: paginationReactive.pageSize\n  });\n\n  objectList.value = res.data?.items || [];\n  paginationReactive.pageCount = res.data?.pages || 1;\n}\n\nasync function addToScene(item: ICad.Data) {\n  showHistoryModal.value = false;\n\n  if (drawingInfo.value.isUploaded) {\n    window.$dialog.warning({\n      title: `${window.$t(\"other.Load\")} \"${item.fileName}\" ${window.$t(\"drawing.Drawing\")} ?`,\n      content: window.$t(\"drawing['This operation will overwrite the current drawing, and any unsaved data will be lost. Do you want to continue?']\"),\n      positiveText: window.$t('other.Ok'),\n      negativeText: window.$t('other.Cancel'),\n      onPositiveClick: () => {\n        // 先清空图纸\n        App.project.resetDrawing();\n\n        App.project.setDrawingSrc(`file/static/${item.converterFilePath}`);\n        App.project.setKey(\"drawing.isUploaded\", true);\n\n        drawingInfo.value = App.project.getKey(\"drawing\");\n      },\n    });\n  } else {\n    // 先清空图纸\n    App.project.resetDrawing();\n\n    App.project.setDrawingSrc(`file/static/${item.converterFilePath}`);\n    App.project.setKey(\"drawing.isUploaded\", true);\n\n    drawingInfo.value = App.project.getKey(\"drawing\");\n  }\n}\n\n// 开始拖拽事件\nconst dragStore = useDragStore();\n\nfunction dragStart(_, item) {\n  if (item.conversionStatus !== 1) return;\n  dragStore.setData(item)\n}\n\nfunction dragEnd() {\n  if (dragStore.getActionTarget !== \"addToScene\") return;\n\n  const data = dragStore.getData\n  if (data.conversionStatus !== 1) return;\n\n  addToScene(data);\n\n  dragStore.setActionTarget(\"\");\n}\n\n// websocket监听 Cad 消息\nfunction CadWsHandle(data) {\n  if (data.type !== \"cad\") return;\n\n  // 判断订阅者，以确定是自己还是别人轻量化的结果\n  if (data.subscriber !== websocketStore.uname) return;\n\n  let wsNotice = uploadDialogRef.value?.getNotice();\n  // 如果是自己的轻量化结果，使用用户登录结果作为uname，则用户可能关闭页面再打开时接收到消息，应继续显示\n  if (!wsNotice) {\n    wsNotice = window.$notification.info({\n      title: t(\"cad['CAD parse']\"),\n      content: \"\",\n      closable: false,\n    })\n  }\n\n  if (data.data.conversionStatus === \"progress\") {\n    wsNotice.content = t(\"cad['CAD parse is in progress']\") + \"...\";\n  } else if (data.data.conversionStatus === \"completed\") {\n    wsNotice.content = t(\"cad['CAD parse completed']\");\n    // getCadList();\n    setTimeout(() => {\n      wsNotice?.destroy();\n      window.$dialog.info({\n        title: t(\"cad['CAD parse']\"),\n        content: t(\"cad['Do you want to load the preview?']\"),\n        positiveText: window.$t('other.Load'),\n        negativeText: window.$t('other.Cancel'),\n        onPositiveClick: () => {\n          addToScene(data.data.item);\n        }\n      })\n    }, 800)\n    getCadList();\n  } else if (data.data.conversionStatus === \"failed\") {\n    wsNotice.content = t(\"cad['CAD parse failed']\");\n    setTimeout(() => {\n      wsNotice?.destroy();\n    }, 1500)\n    getCadList();\n  }\n}\n\nonMounted(() => {\n  getCadList();\n\n  // 注册websocket消息监听\n  onWebSocket(CadWsHandle);\n})\nonBeforeUnmount(() => {\n  offWebSocket(CadWsHandle)\n})\n</script>\n\n<style scoped lang=\"less\">\n#cad-library {\n  overflow-x: hidden;\n\n  .n-alert {\n    :deep(.n-alert-body) {\n      padding: 10px;\n\n      &__content {\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n      }\n    }\n  }\n\n  .n-card {\n    cursor: pointer;\n\n    :deep(.n-card-cover) {\n      img {\n        height: 89px;\n        object-fit: cover;\n      }\n    }\n\n    :deep(.n-card__content) {\n      padding: 3px 5px;\n      font-size: 13px;\n      text-align: center;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/assets/cadLibrary/CadUploadDialog.vue",
    "content": "<template>\n    <n-modal :show=\"show\" @update:show=\"(b) => emits('update:show', b)\" class=\"!w-500px\" preset=\"card\"\n        :title=\"t('cad[\\'CAD upload and parse\\']')\">\n        <n-form label-placement=\"left\" :model=\"CADModel\" :rules=\"CADRules\" label-width=\"100px\" label-align=\"right\"\n            ref=\"formRef\" require-mark-placement=\"right-hanging\">\n            <n-form-item :label=\"t('cad[\\'CAD file\\']')\" path=\"cadFile\">\n                <n-upload ref=\"uploadCADRef\" :default-upload=\"false\" directory-dnd :max=\"1\"\n                    :accept=\"'.' + DRAWING_SUPPORT_TYPE.join(',.')\" @change=\"cadChange\">\n                    <n-upload-dragger>\n                        <div>\n                            <n-icon size=\"48\" :depth=\"3\">\n                                <ArchiveOutline />\n                            </n-icon>\n                        </div>\n                        <n-text style=\"font-size: 14px\">\n                            {{\n                                t(\"bim['Click or drag the file to this area.Supported formats are:']\") + ` ${DRAWING_SUPPORT_TYPE.join(\"、\")}`\n                            }}\n                        </n-text>\n                    </n-upload-dragger>\n                </n-upload>\n            </n-form-item>\n        </n-form>\n\n        <div class=\"flex justify-end\">\n            <n-button round type=\"primary\" @click=\"submit\">{{ t(\"cad['Upload and parse']\") }}</n-button>\n        </div>\n    </n-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive, ref } from \"vue\";\nimport { NotificationReactive } from \"naive-ui\";\nimport { t } from \"@/language\";\nimport { ArchiveOutline } from \"@vicons/ionicons5\";\nimport { DRAWING_SUPPORT_TYPE, NEED_CONVERT_DRAWING } from \"@/utils/common/constant\";\nimport { fetchAddDwg2dxf } from \"@/http/api/cad\";\n\nwithDefaults(defineProps<{\n    show: boolean\n}>(), {\n    show: false\n})\n\nconst emits = defineEmits([\"update:show\", \"refreshList\"]);\n\nconst formRef = ref();\nconst uploadCADRef = ref();\n\n/* bim文件上传转换 */\nconst CADModel = reactive<{\n    fileName: string,\n    cadFile: File | null,\n\n}>({\n    fileName: \"\",\n    cadFile: null,\n})\nconst CADRules = {\n    cadFile: {\n        required: true,\n        trigger: 'change',\n        validator: (_, value) => {\n            return new Promise<void>((resolve, reject) => {\n                // 判断value是否是File类型\n                if (value === '' || !(value instanceof File)) {\n                    reject(Error(t(\"drawing['Please upload the drawing file']\")))\n                } else {\n                    resolve()\n                }\n            })\n        }\n    }\n}\n\n// cad文件选择变化\nfunction cadChange({ file }) {\n    if (file.status === \"removed\") {\n        CADModel.cadFile = null;\n        formRef.value?.validate();\n        return;\n    }\n\n    if (!DRAWING_SUPPORT_TYPE.includes(file.name.split(\".\").at(-1).toLowerCase())) {\n        window.$message?.error(t(\"drawing['This format is not supported, please upload again! Supported formats are:']\") + ` ${DRAWING_SUPPORT_TYPE.join(\"、\")}`);\n        uploadCADRef.value.clear();\n        return false\n    }\n\n    CADModel.cadFile = file.file as File;\n    CADModel.fileName = CADModel.cadFile.name;\n    formRef.value?.validate();\n}\n\n// ws 监听使用的notice\nlet notice: null | NotificationReactive = null;\nconst getNotice = () => notice;\n// 提交\nfunction submit(e) {\n    e.preventDefault();\n    formRef.value?.validate(async (errors) => {\n        if (!errors) {\n            emits(\"update:show\", false);\n\n            notice = window.$notification.info({\n                title: t(\"cad['CAD parse']\"),\n                content: t(\"prompt.Uploading\") + \"...\",\n                closable: false,\n            })\n\n            // 1. 上传cad文件并解析\n            if (NEED_CONVERT_DRAWING.includes((CADModel.fileName.split(\".\").at(-1) || \"not include\").toLowerCase())) {\n                notice.content = t(\"cad['CAD parse is in progress']\") + \"...\";\n            }\n            fetchAddDwg2dxf({\n                file: CADModel.cadFile,\n                fileName: CADModel.fileName,\n                conversionStatus: 0,\n            }).then((res) => {\n                if (res.data === null || res.data.conversionStatus === 2) {\n                    fail();\n                    return;\n                }\n\n                if (res.data.conversionStatus === 1 && notice) {\n                    notice.content = t(\"cad['CAD parse completed']\");\n                    setTimeout(() => {\n                        notice?.destroy();\n                    }, 1000)\n                }\n\n                emits(\"refreshList\");\n            }).catch(() => {\n                fail();\n            })\n\n            const fail = () => {\n                window.$message?.error(t(\"cad['Failed to upload CAD file']\"));\n                if (notice) {\n                    notice.content = `${t(\"cad['Failed to upload CAD file']\")},${t(\"prompt['Please try again later!']\")}`;\n                    setTimeout(() => {\n                        notice?.destroy();\n                    }, 1000)\n                }\n            }\n\n            // reset\n            CADModel.fileName = \"\";\n            CADModel.cadFile = null;\n        }\n    })\n}\n\ndefineExpose({ getNotice })\n</script>\n\n<style scoped lang=\"less\">\n.n-form-item {\n    margin-bottom: 10px;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/index.ts",
    "content": "import Header from \"./Header.vue\";\nimport Footer from \"./Footer.vue\";\nimport Scene from \"./Scene.vue\";\n// import Cesium from \"./Cesium.vue\";\nimport Sidebar from \"./Sidebar.vue\";\nimport Assets from \"./Assets.vue\";\n\nexport { Header, Footer, Scene,Sidebar,Assets };\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarAnimations.vue",
    "content": "<template>\n  <div v-if=\"animationStore.list.length\">\n    <n-card title=\"动画列表\" hoverable size=\"small\">\n      <div v-for=\"(animation, index) in animationStore.list\" :key=\"index\"\n           class=\"flex items-center justify-between w-full py-6px\">\n        <n-tooltip placement=\"bottom\" trigger=\"hover\">\n          <template #trigger>\n            <div class=\"w-160px !overflow-hidden text-ellipsis whitespace-nowrap\">{{ animation.name }}</div>\n          </template>\n          <span> {{ animation.name }} </span>\n        </n-tooltip>\n\n        <n-button size=\"tiny\" type=\"primary\" v-if=\"!animation.isRunning\"\n                  @click=\"play(animation)\">{{ t(\"layout.sider.animation.Play\") }}\n        </n-button>\n        <template v-else>\n          <n-button size=\"tiny\" type=\"info\" @click=\"pause(animation)\">\n            {{ animation.isPaused ? t(\"layout.sider.animation.Continue\") : t(\"layout.sider.animation.Pause\") }}\n          </n-button>\n          <n-button size=\"tiny\" type=\"info\" class=\"ml-1\" @click=\"stop(animation)\">{{\n              t(\"layout.sider.animation.Stop\")\n            }}\n          </n-button>\n        </template>\n\n      </div>\n    </n-card>\n\n    <div class=\"flex items-center justify-start w-full py-6px\">\n      <span>{{ t(\"layout.sider.animation['Time scale']\") }}</span>\n      <EsInputNumber v-model:value=\"animationStore.mixerTimeScale\" class=\"!w-80px ml-2\" size=\"small\" :min=\"-10\"\n                     :max=\"10\" :decimal=\"2\" :show-button=\"false\" @change=\"handleTimeScaleChange()\"/>\n    </div>\n  </div>\n  <n-result v-else status=\"418\" title=\"Empty\" :description=\"t('prompt[\\'No animation data for the time being\\']')\"/>\n</template>\n\n<script setup lang=\"ts\">\nimport {onBeforeUnmount, onMounted} from \"vue\";\nimport {AnimationMixer} from 'three';\nimport {App, Hooks} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport {useAnimationStore, IAnimationItem} from \"@/store/modules/animation\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nconst animationStore = useAnimationStore();\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", objectSelected);\n  Hooks.useAddSignal(\"objectRemoved\", objectRemoved);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", objectSelected);\n  Hooks.useRemoveSignal(\"objectRemoved\", objectRemoved);\n})\n\nlet lastObjectUuid: string | null = null;\n\nfunction objectSelected(object, lockedObject) {\n  if (lockedObject) {\n    object = lockedObject;\n  }\n\n  if (!object) return;\n\n  if (lastObjectUuid === object.uuid) return;\n  lastObjectUuid = object.uuid;\n\n  if (object && object.animations.length > 0) {\n    const animationsList: Array<IAnimationItem> = [];\n\n    for (let i = object.animations.length; i > 0; i--) {\n      const animation = object.animations[i - 1];\n      if (!animation) {\n        object.animations.splice(i - 1, 1);\n        continue;\n      }\n\n      const clip = animation.getClip();\n      animationsList.unshift({\n        name: clip.name,\n        uuid: clip.uuid,\n        isRunning: animation.isRunning(),\n        isPaused: animation.paused\n      });\n    }\n\n    animationStore.setList(animationsList);\n  } else {\n    animationStore.setList([]);\n  }\n}\n\nfunction objectRemoved(object) {\n  if (object !== null && object.animations.length > 0) {\n    const mixer = App.animationManager.mixerMap.get(object.uuid) as AnimationMixer;\n    if (!mixer) return;\n\n    mixer.uncacheRoot(object);\n    App.animationManager.mixerMap.delete(object.uuid);\n  }\n\n  // TODO：是否需要判断场景锁定模型下是否有此模型的动画轨道？然后移除\n}\n\nfunction play(animation: IAnimationItem) {\n  // 如果属于是动画编辑器正在编辑的动画，都必须从animationStore调用对应方法\n  if (animation.uuid === animationStore.current?.uuid) {\n    animationStore.play();\n    return;\n  }\n\n  const action = App.animationManager.actionMap.get(animation.uuid);\n  if (!action) return;\n\n  action.play();\n  action.paused = false;\n  animation.isPaused = false;\n  animation.isRunning = true;\n}\n\nfunction pause(animation: IAnimationItem) {\n  if (animation.uuid === animationStore.current?.uuid) {\n    animationStore.pause();\n    return;\n  }\n\n  const action = App.animationManager.actionMap.get(animation.uuid);\n  if (!action) return;\n\n  if (animation.isPaused) {\n    action.paused = false;\n    animation.isPaused = false;\n  } else {\n    action.paused = true;\n    animation.isPaused = true;\n  }\n}\n\nfunction stop(animation: IAnimationItem) {\n  if (animation.uuid === animationStore.current?.uuid) {\n    animationStore.stop();\n    return;\n  }\n\n  const action = App.animationManager.actionMap.get(animation.uuid);\n  if (!action) return;\n\n  action.stop();\n  action.paused = false;\n  animation.isPaused = false;\n  animation.isRunning = false;\n}\n\nfunction handleTimeScaleChange() {\n  if (!App.selected) return;\n\n  const mixer = App.animationManager.mixerMap.get(App.selected.uuid) as AnimationMixer;\n  if (!mixer) return;\n  mixer.timeScale = animationStore.mixerTimeScale;\n}\n</script>\n\n<style scoped lang=\"less\">\n.n-card {\n  max-height: 80vh;\n  overflow-y: auto;\n\n  :deep(&__content) {\n    padding: 10px !important;\n  }\n\n  :deep(&-header) {\n    padding-bottom: 0 !important;\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarBillboard.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted, onBeforeUnmount} from \"vue\";\nimport {CaretForwardOutline} from \"@vicons/ionicons5\";\nimport {t} from \"@/language\";\nimport Image from \"./billboard/Sidebar.Billboard.Image.vue\";\nimport Text from \"./billboard/Sidebar.Billboard.Text.vue\";\nimport {App,getDefaultBillboardOptions,Utils,Hooks} from \"@astral3d/engine\";\n\nconst billboardData = reactive<IBillboard.options>(getDefaultBillboardOptions());\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", updateUI);\n\n  updateUI();\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", updateUI);\n})\n\nfunction updateUI() {\n  const object = App.selected;\n  if(!object) return;\n\n  if (!Utils.isBillboardObject(object)) return;\n\n  Utils.deepAssign(billboardData, object.options);\n}\n\nfunction update(pkey: string,key:string){\n  const object = App.selected;\n  if(!object) return;\n\n  if (!Utils.isBillboardObject(object)) return;\n\n  object.options[pkey][key] = billboardData[pkey][key];\n\n  Hooks.useDispatchSignal(\"materialChanged\",object.material);\n}\n</script>\n\n<template>\n  <n-collapse display-directive=\"show\" :default-expanded-names=\"['image', 'text']\">\n    <template #arrow>\n      <n-icon>\n        <CaretForwardOutline />\n      </n-icon>\n    </template>\n\n    <!--  image  -->\n    <n-collapse-item :title=\"t('layout.sider.billboard.Image')\" name=\"image\">\n      <Image :data=\"billboardData.image\" @update=\"update\" />\n    </n-collapse-item>\n\n    <!--  text  -->\n    <n-collapse-item :title=\"t('layout.sider.billboard.Text')\" name=\"text\">\n      <Text :data=\"billboardData.text\" @update=\"update\" />\n    </n-collapse-item>\n  </n-collapse>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarDrawing.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, watch, inject, Ref} from \"vue\";\nimport {ArchiveOutline as ArchiveIcon} from '@vicons/ionicons5';\nimport {UploadFileInfo} from \"naive-ui\";\nimport {t} from \"@/language\";\nimport {base64ToFile} from \"@/utils/common/utils\";\nimport {App} from '@astral3d/engine';\n\nconst drawingInfo = inject(\"drawingInfo\") as Ref<IDrawing>;\n\nconst fileList = ref<UploadFileInfo[]>([])\n\nfunction updateFileList(fList: UploadFileInfo[]) {\n  if (fList.length === 0) return;\n\n  //永远取最新值\n  const file = fList[fList.length - 1];\n\n  file.file !== null && loadFile(file.file as File);\n\n  fileList.value[0].status = \"finished\";\n}\n\nfunction loadFile(file: File) {\n  let img;\n\n  // 通过FileReader.readAsDataURL(file)可以获取一段data:base64的字符串\n  const reader = new FileReader();\n  reader.readAsDataURL(file);\n  reader.onload = () => {\n    img = reader.result; // reader.result就是文件的base64\n    drawingInfo.value.isUploaded = true;\n    drawingInfo.value.imgSrc = img;\n  };\n}\n\nfunction removeDrawing() {\n  return new Promise((resolve) => {\n    window.$dialog.warning({\n      title: t(\"other.warning\"),\n      content: t(\"drawing['Are you sure you want to delete the drawing?']\"),\n      positiveText: t(\"other.Ok\"),\n      negativeText: t(\"other.Cancel\"),\n      onPositiveClick: () => {\n        resolve(true);\n        App.project.resetDrawing();\n        fileList.value = [];\n      },\n      onNegativeClick: () => {\n        resolve(false);\n      }\n    });\n  });\n}\n\nwatch(() => drawingInfo.value.imgSrc, (newVal) => {\n  if (newVal && !drawingInfo.value.isCad) {\n    const file = base64ToFile(drawingInfo.value.imgSrc, \"drawing\");\n    fileList.value = [{\n      id: \"1\",\n      name: file.name,\n      file: file,\n      type: file.type,\n      status: \"finished\",\n      url: null,\n    }]\n  }\n})\n</script>\n\n<template>\n  <div id=\"sider-scene-drawing\">\n    <!-- 上传图纸 -->\n    <n-upload :max=\"1\"\n              accept=\"image/*|.pdf\"\n              list-type=\"image-card\"\n              class=\"es-upload-card\"\n              v-model:file-list=\"fileList\"\n              @update:file-list=\"updateFileList\"\n              @remove=\"removeDrawing\"\n    >\n      <n-upload-dragger>\n        <n-icon size=\"48\" :depth=\"3\">\n          <archive-icon/>\n        </n-icon>\n        <n-text style=\"font-size: 16px\">\n          {{ t(\"layout.sider.drawing['Click to select or drag the drawing to this area']\") }}\n        </n-text>\n      </n-upload-dragger>\n    </n-upload>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n#sider-scene-drawing {\n  position: relative;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarEffect.vue",
    "content": "<script setup lang=\"ts\">\nimport {onMounted, ref} from \"vue\";\nimport {CaretForwardOutline} from \"@vicons/ionicons5\";\nimport {t} from \"@/language\";\nimport {App} from \"@astral3d/engine\";\nimport OutLine from './effect/Sidebar.Effect.Outline.vue';\nimport FXAA from './effect/Sidebar.Effect.FXAA.vue';\nimport UnrealBloom from './effect/Sidebar.Effect.UnrealBloom.vue';\nimport LUT from './effect/Sidebar.Effect.LUT.vue';\nimport Afterimage from './effect/Sidebar.Effect.Afterimage.vue';\nimport Bokeh from './effect/Sidebar.Effect.Bokeh.vue';\nimport Pixelate from './effect/Sidebar.Effect.Pixelate.vue';\nimport Halftone from './effect/Sidebar.Effect.Halftone.vue';\nimport EsTip from \"@/components/es/EsTip.vue\";\n\nconst effectEnabled = ref(App.project.getKey(\"effect.enabled\"));\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    effectEnabled.value = App.project.getKey(\"effect.enabled\");\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleEffectEnabledChange(value:boolean){\n  App.project.setKey(\"effect.enabled\",value);\n}\n</script>\n\n<template>\n  <div class=\"flex items-center justify-between\">\n    <h4>{{ t('layout.sider.Post processing') }}</h4>\n    <n-switch v-model:value=\"effectEnabled\" @update:value=\"handleEffectEnabledChange\">\n      <template #checked>\n        {{ t(\"other.Open\") }}\n      </template>\n      <template #unchecked>\n        {{ t(\"other.Close\") }}\n      </template>\n    </n-switch>\n  </div>\n\n  <n-divider class=\"!my-3\" />\n\n  <n-collapse display-directive=\"show\" :default-expanded-names=\"['Anti-aliasing','Outline','UnrealBloom']\">\n    <template #arrow>\n      <n-icon>\n        <CaretForwardOutline />\n      </n-icon>\n    </template>\n\n    <!--  抗锯齿  -->\n    <n-collapse-item :title=\"t('layout.sider.postProcessing[\\'Anti-aliasing\\']')\" name=\"Anti-aliasing\">\n      <FXAA :effect-enabled=\"effectEnabled\" />\n    </n-collapse-item>\n\n    <!--  Outline:描边线  -->\n    <n-collapse-item :title=\"t('layout.sider.postProcessing.Outline')\" name=\"Outline\">\n      <OutLine :effect-enabled=\"effectEnabled\" />\n    </n-collapse-item>\n\n    <!--  UnrealBloom:仿UE辉光  -->\n    <n-collapse-item :title=\"t('layout.sider.postProcessing.Glow')\" name=\"UnrealBloom\">\n      <UnrealBloom :effect-enabled=\"effectEnabled\" />\n    </n-collapse-item>\n\n    <!--  LUT:颜色滤镜  -->\n    <n-collapse-item :title=\"t('layout.sider.postProcessing.LUT Color filter')\" name=\"LUT\">\n      <LUT :effect-enabled=\"effectEnabled\" />\n    </n-collapse-item>\n\n    <!--  运动残影  -->\n    <n-collapse-item :title=\"t('layout.sider.postProcessing.Afterimage')\" name=\"Afterimage\">\n      <Afterimage :effect-enabled=\"effectEnabled\" />\n    </n-collapse-item>\n\n    <!--  Bokeh:变焦  -->\n    <n-collapse-item :title=\"t('layout.sider.postProcessing.Bokeh')\" name=\"Bokeh\">\n      <Bokeh :effect-enabled=\"effectEnabled\" />\n    </n-collapse-item>\n\n    <!--  Pixelate:像素风  -->\n    <n-collapse-item name=\"Pixelate\">\n      <template #header>\n        <n-text>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.postProcessing.Pixelate`)\">\n            {{ t(`layout.sider.postProcessing.Use a solid color background to achieve the best rendering effect`) }}\n          </EsTip>\n        </n-text>\n      </template>\n\n      <Pixelate :effect-enabled=\"effectEnabled\" />\n    </n-collapse-item>\n\n    <!--  Halftone:半色调  -->\n    <n-collapse-item :title=\"t('layout.sider.postProcessing.Halftoning')\" name=\"Halftoning\">\n      <Halftone :effect-enabled=\"effectEnabled\" />\n    </n-collapse-item>\n  </n-collapse>\n</template>\n\n<style lang=\"less\">\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarGeometry.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, reactive, onMounted,onBeforeUnmount, defineAsyncComponent} from \"vue\";\nimport {ReloadCircleOutline} from \"@vicons/ionicons5\";\nimport { MathUtils } from \"three\";\nimport { VertexNormalsHelper } from 'three/examples/jsm/helpers/VertexNormalsHelper.js';\nimport {App,Hooks,SetGeometryValueCommand} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport SidebarGeometryBufferGeometry from \"./geometry/Sidebar.Geometry.BufferGeometry.vue\";\nimport SidebarGeometryModifiers from \"./geometry/Sidebar.Geometry.Modifiers.vue\";\n\nconst hasGeometry = ref(false);\nconst helpersShow = ref(false);\nconst geometryData = reactive({\n  type: \"\",\n  uuid: \"\",\n  name: \"\",\n  bounds: {x: 0, y: 0, z: 0}\n})\nlet currentGeometryType: string = \"\";\nlet currentParametersComponent: any = null;\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", build);\n  Hooks.useAddSignal(\"geometryChanged\", build);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", build);\n  Hooks.useRemoveSignal(\"geometryChanged\", build);\n})\n\nasync function build(object) {\n  if (object && object.geometry) {\n    currentGeometryType = \"\";\n\n    const geometry = object.geometry;\n    hasGeometry.value = true;\n    geometryData.type = geometry.type;\n    geometryData.uuid = geometry.uuid;\n    geometryData.name = geometry.name;\n\n    if (geometry.type !== \"BufferGeometry\" && currentGeometryType !== geometry.type) {\n      currentParametersComponent = defineAsyncComponent(() => import(`@/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.${geometry.type}.vue`));\n      currentGeometryType = geometry.type;\n    }\n\n    if (geometry.boundingBox === null) geometry.computeBoundingBox();\n    const boundingBox = geometry.boundingBox;\n    geometryData.bounds.x = Math.floor((boundingBox.max.x - boundingBox.min.x) * 1000) / 1000;\n    geometryData.bounds.y = Math.floor((boundingBox.max.y - boundingBox.min.y) * 1000) / 1000;\n    geometryData.bounds.z = Math.floor((boundingBox.max.z - boundingBox.min.z) * 1000) / 1000;\n\n    helpersShow.value = geometry.hasAttribute('normal');\n  } else {\n    hasGeometry.value = false;\n  }\n}\n\nconst update = (method: string) => {\n  const object = App.selected;\n  if (object === null) return;\n\n  const call = {\n    uuid: () => {\n      geometryData.uuid = MathUtils.generateUUID();\n      App.execute(new SetGeometryValueCommand(object, 'uuid', geometryData.uuid));\n    },\n    name: () => {\n      App.execute(new SetGeometryValueCommand(object, 'name', geometryData.name));\n    },\n    vertexNormals: () => {\n      if (App.helpers[object.id] === undefined) {\n        App.addHelper(object, new VertexNormalsHelper(object));\n      } else {\n        App.removeHelper(object);\n      }\n      Hooks.useDispatchSignal(\"sceneGraphChanged\");\n    }\n  }\n\n  call[method]();\n}\n</script>\n\n<template>\n  <!--  emphasis: 禁止使用v-if，否则内部子组件频繁卸载，当上一次selected为null时重新选择模型会因为刚挂载组件无法触发signals  -->\n  <div v-show=\"hasGeometry\">\n    <!-- type -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.object.type\") }}</span>\n      <div>{{ geometryData.type }}</div>\n    </div>\n\n    <!-- uuid -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.object.uuid\") }}</span>\n      <div class=\"flex items-center\">\n        <n-tooltip trigger=\"hover\">\n          <template #trigger>\n            <span class=\"uuid\">{{ geometryData.uuid }}</span>\n          </template>\n          {{ geometryData.uuid }}\n        </n-tooltip>\n        <n-button size=\"small\" quaternary circle type=\"primary\" v-if=\"geometryData.uuid\" @click=\"update('uuid')\">\n          <template #icon>\n            <n-icon size=\"16\">\n              <ReloadCircleOutline/>\n            </n-icon>\n          </template>\n        </n-button>\n      </div>\n    </div>\n\n    <!-- name -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.object.name\") }}</span>\n      <div>\n        <n-input v-model:value=\"geometryData.name\" type=\"text\" size=\"small\" @update:value=\"update('name')\"/>\n      </div>\n    </div>\n\n    <n-divider/>\n\n    <!-- Helpers -->\n    <div class=\"sider-scene-geometry-item\" v-if=\"helpersShow\">\n      <span></span>\n      <div>\n        <n-button size=\"small\" @click=\"update('vertexNormals')\">\n          {{ t(\"layout.sider.geometry['Afficher normales']\") }}\n        </n-button>\n      </div>\n    </div>\n\n    <!-- parameters -->\n    <div>\n      <SidebarGeometryModifiers v-if=\"geometryData.type === 'BufferGeometry'\"/>\n      <Suspense v-else>\n        <template #default>\n          <currentParametersComponent></currentParametersComponent>\n        </template>\n        <template #fallback>\n          <p> Loading... </p>\n        </template>\n      </Suspense>\n    </div>\n\n    <!-- buffer geometry -->\n    <SidebarGeometryBufferGeometry />\n\n    <n-divider/>\n\n    <!-- bounds -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.geometry.bounds\") }}</span>\n      <div class=\"flex flex-col text-12px\">\n        <span>{{ geometryData.bounds.x }}</span>\n        <span>{{ geometryData.bounds.y }}</span>\n        <span>{{ geometryData.bounds.z }}</span>\n      </div>\n    </div>\n  </div>\n\n  <n-result v-show=\"!hasGeometry\" status=\"418\" title=\"Empty\" :description=\"t('prompt[\\'No geometric data for the time being\\']')\" />\n</template>\n\n<style lang=\"less\">\n.sider-scene-geometry-item {\n  display: flex;\n  justify-content: space-between;\n  margin: 10px 0;\n  align-items: center;\n\n  & > span {\n    min-width: 80px;\n  }\n\n  & > div {\n    width: 150px;\n    color: rgb(165, 164, 164);\n    overflow: hidden;\n\n    .uuid {\n      width: 100%;\n      white-space: nowrap;\n      overflow-x: auto;\n      display: inline-block;\n    }\n  }\n}\n\n:deep(.n-divider) {\n  margin: 0.3rem 0;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarHistory.vue",
    "content": "<template>\n  <div class=\"flex items-center justify-between mb-10px\">\n    <h4>{{ t(\"layout.sider.History\") }}</h4>\n    <div class=\"flex items-center\">\n      <n-switch v-model:value=\"persistent\" @update:value=\"persistentChange\">\n        <template #checked>{{ t(\"layout.sider.history.persistent\") }}</template>\n        <template #unchecked>{{ t(\"layout.sider.history.persistent\") }}</template>\n      </n-switch>\n    </div>\n  </div>\n\n  <n-card hoverable embedded content-class=\"!p-0 min-h-30vh max-h-80vh overflow-y-auto bg-red\" :content-style=\"`background-color:${themeVars.inputColorDisabled};`\">\n    <n-menu :options=\"historyList\" label-field=\"name\" key-field=\"id\" :indent=\"15\"\n            :value=\"selectedHistory.id\" @update:value=\"historyItemClick\"/>\n  </n-card>\n\n  <div class=\"w-full text-center mt-2\">\n    <n-button type=\"primary\" size=\"small\" class=\"w-24\" @click=\"clearHistory\">\n      {{ t('layout.sider.history.Clear History') }}\n    </n-button>\n  </div>\n\n</template>\n\n<script setup lang=\"ts\">\nimport {onBeforeUnmount, onMounted, ref} from \"vue\";\nimport {NButton, useThemeVars} from \"naive-ui\";\nimport {Hooks,App} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\n\ninterface IHistoryItem {\n  name: string,\n  id: string,\n  opacity?: number\n}\n\nconst themeVars = useThemeVars();\n\nlet ignoreObjectSelectedSignal = false;\nconst historyList = ref<Array<IHistoryItem>>([]);\nconst selectedHistory = ref<IHistoryItem>({name: \"\", id: ''});\n//历史记录 -> 本地存储\nconst persistent = ref<boolean>(App.config.getKey('history'));\n\nonMounted(() => {\n  refreshUI();\n\n  Hooks.useAddSignal(\"sceneCleared\", refreshUI);\n  Hooks.useAddSignal(\"historyChanged\", refreshUI);\n  Hooks.useAddSignal(\"historyChanged\", historyChanged);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"sceneCleared\", refreshUI);\n  Hooks.useRemoveSignal(\"historyChanged\", refreshUI);\n  Hooks.useRemoveSignal(\"historyChanged\", historyChanged);\n})\n\nfunction refreshUI(){\n  const options: any = [];\n\n  ((objects) => {\n    for (let i = 0, l = objects.length; i < l; i++) {\n      const object = objects[i];\n      options.push({\n        name: object.name,\n        id: object.id\n      });\n    }\n  })(App.history.undos);\n\n  ((objects) => {\n    for (let i = objects.length - 1; i >= 0; i--) {\n      const object = objects[i];\n      options.push({\n        name: object.name,\n        id: object.id,\n        opacity: 0.3\n      });\n    }\n  })(App.history.redos);\n\n  historyList.value = options;\n}\n\nfunction historyChanged(cmd:IHistoryItem | undefined){\n  if (ignoreObjectSelectedSignal) return;\n  selectedHistory.value = cmd !== undefined ? cmd : {name: \"\", id: ''};\n}\n\nfunction historyItemClick(_key: string,item:IHistoryItem) {\n  selectedHistory.value = item;\n  ignoreObjectSelectedSignal = true;\n  App.history.goToState(parseInt(selectedHistory.value.id));\n  ignoreObjectSelectedSignal = false;\n}\n\n// 历史记录 -> 本地存储 change\nfunction persistentChange(value) {\n  App.config.setKey('history', value);\n\n  if (value) {\n    const tip = t(\"prompt['The history will be preserved across sessions. This can have an impact on performance when working with textures.']\");\n    window.$message?.warning(tip);\n\n    const lastUndoCmd = App.history.undos[App.history.undos.length - 1];\n    const lastUndoId = (lastUndoCmd !== undefined) ? lastUndoCmd.id : 0;\n    App.history.enableSerialization(lastUndoId);\n  } else {\n    Hooks.useDispatchSignal(\"historyChanged\");\n  }\n}\n\n//清空历史记录\nfunction clearHistory() {\n  window.$dialog.warning({\n    title: window.$t('other.warning'),\n    content: window.$t(\"prompt['The Undo/Redo History will be cleared. Are you sure?']\"),\n    positiveText: window.$t('other.Ok'),\n    negativeText: window.$t('other.Cancel'),\n    onPositiveClick: () => {\n      App.history.clear();\n    },\n  });\n}\n</script>\n\n<style scoped lang=\"less\">\n.n-menu{\n  :deep(&-item){\n    margin-top: 5px;\n    height: 35px;\n\n    &-content{\n      padding-right: 10px;\n      font-size: 13px;\n\n      &::before{\n        left: 5px;\n        right: 5px;\n      }\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarHtmlPanel.vue",
    "content": "<script setup lang=\"ts\">\n\timport { ref, reactive, onBeforeUnmount, onMounted } from \"vue\";\n\timport { UploadFileInfo } from \"naive-ui\";\n\timport { CaretForwardOutline, ArchiveOutline as ArchiveIcon } from \"@vicons/ionicons5\";\n\timport { t } from \"@/language\";\n\timport { App, Loader, Hooks, Utils, HtmlPanelConverter } from \"@astral3d/engine\";\n\timport HtmlPanelCode from \"@/components/code/HtmlPanelCode.vue\";\n\n\tconst data = reactive<{\n\t\ttype: \"panel\" | \"sprite\";\n\t\tcodes: { name: string; content: string | ArrayBuffer }[];\n\t}>({\n\t\ttype: \"panel\",\n\t\tcodes: [],\n\t});\n\tconst codeEditorShow = ref(false);\n\tconst editorCode = reactive({\n\t\tname: \"\",\n\t\tcode: \"\",\n\t});\n\tconst editorCodeMode = ref(\"html\");\n\n\tonMounted(() => {\n\t\tHooks.useAddSignal(\"objectSelected\", updateUI);\n\n\t\tupdateUI();\n\t});\n\tonBeforeUnmount(() => {\n\t\tHooks.useRemoveSignal(\"objectSelected\", updateUI);\n\t});\n\n\tfunction updateUI() {\n\t\tconst object = App.selected;\n\t\tif (!object) return;\n\n\t\tif (!Utils.isHtmlPanelObject(object)) {\n\t\t\tdata.codes = [];\n\t\t\treturn;\n\t\t}\n\n\t\tdata.type = object.isHtmlPanel ? \"panel\" : \"sprite\";\n\t\tdata.codes = object.options.codes;\n\t}\n\n\tfunction update(method: string) {\n\t\tconst object = App.selected;\n\t\tif (!object) return;\n\n\t\tif (!Utils.isHtmlPanelObject(object)) return;\n\n\t\tconst call = {\n\t\t\ttype: () => {\n\t\t\t\tif (data.type === \"panel\" && object.isHtmlPanel) return;\n\t\t\t\tif (data.type === \"sprite\" && object.isHtmlSprite) return;\n\n\t\t\t\tconst _json = object.toJSON();\n\t\t\t\t_json.object.type = data.type === \"panel\" ? \"HtmlSprite\" : \"HtmlPanel\";\n\t\t\t\t_json.object.options.isSprite = !_json.object.options.isSprite;\n\n\t\t\t\tLoader.objectLoader.parseAsync(_json).then(newObject3D => {\n\t\t\t\t\tobject.parent?.add(newObject3D);\n\n\t\t\t\t\tobject.parent?.remove(object);\n\n\t\t\t\t\tApp.selected = newObject3D;\n\n\t\t\t\t\tHooks.useDispatchSignal(\"objectSelected\", newObject3D);\n\t\t\t\t});\n\t\t\t},\n\t\t\tcode: () => {\n\t\t\t\tconst _code = data.codes.find(c => c.name === editorCode.name);\n\t\t\t\tif (!_code) return;\n\n\t\t\t\t_code.content = editorCode.code;\n\n\t\t\t\tconst htmlPanelOption = {\n\t\t\t\t\tisSprite: object.options.isSprite,\n\t\t\t\t\tisSingleHtml: object.options.isSingleHtml,\n\t\t\t\t\tcodes: data.codes,\n\t\t\t\t};\n\n\t\t\t\tconst newObject3D = HtmlPanelConverter.getInstance().parseToCSS3D(htmlPanelOption);\n\n\t\t\t\t// 把object.element中的子节点替换为newObject3D.element中的子节点\n\t\t\t\twhile (object.element.firstChild) {\n\t\t\t\t\tobject.element.removeChild(object.element.firstChild);\n\t\t\t\t}\n\n\t\t\t\twhile (newObject3D.element.firstChild) {\n\t\t\t\t\tobject.element.appendChild(newObject3D.element.firstChild);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\n\t\tcall[method]();\n\t}\n\n\tasync function beforeUpload() {\n\t\tif (data.codes.length > 0) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\twindow.$dialog.warning({\n\t\t\t\t\ttitle: window.$t(\"other.warning\"),\n\t\t\t\t\tcontent: window.$t(\"prompt['Uploading a new file will completely overwrite the original content, do you want to continue?']\"),\n\t\t\t\t\tpositiveText: window.$t(\"other.Ok\"),\n\t\t\t\t\tnegativeText: window.$t(\"other.Cancel\"),\n\t\t\t\t\tonPositiveClick: () => {\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t},\n\t\t\t\t\tonNegativeClick: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction updateFileList(fList: UploadFileInfo[]) {\n\t\tif (fList.length === 0) return;\n\n\t\tconst object = App.selected;\n\t\tif (!object) return;\n\n\t\tif (!Utils.isHtmlPanelObject(object)) return;\n\n\t\t//永远取最新值\n\t\tconst file = fList[fList.length - 1];\n\n\t\t// File对象转临时URL\n\t\tconst tempURL = URL.createObjectURL(file.file!);\n\n\t\tHtmlPanelConverter.getInstance()\n\t\t\t.loadAsync({\n\t\t\t\turl: tempURL,\n\t\t\t\tisSprite: data.type === \"sprite\",\n\t\t\t\tfileName: file.name,\n\t\t\t})\n\t\t\t.then(htmlPlaneObj => {\n\t\t\t\tdata.codes = htmlPlaneObj.options.codes;\n\n\t\t\t\tconst _json = object.toJSON();\n\t\t\t\tLoader.objectLoader.copyAttrByData(htmlPlaneObj, _json.object);\n\n\t\t\t\tobject.parent?.add(htmlPlaneObj);\n\n\t\t\t\tobject.parent?.remove(object);\n\n\t\t\t\tApp.selected = htmlPlaneObj;\n\n\t\t\t\tHooks.useDispatchSignal(\"objectSelected\", htmlPlaneObj);\n\t\t\t\tHooks.useDispatchSignal(\"sceneTreeChange\");\n\t\t\t})\n\t\t\t.catch((e: Error) => window.$message?.error(e.message));\n\t}\n\n\tfunction getCanEdit(name: string) {\n\t\treturn HtmlPanelConverter.getInstance()._isEditable(name);\n\t}\n\n\tfunction handleEdit(code: { name: string; content: string | ArrayBuffer }) {\n\t\tif (code.content instanceof ArrayBuffer) return;\n\n\t\teditorCode.name = code.name;\n\t\teditorCode.code = code.content;\n\n\t\teditorCodeMode.value = code.name.split(\".\").pop()?.toLowerCase() || \"html\";\n\n\t\tcodeEditorShow.value = true;\n\t}\n</script>\n\n<template>\n\t<!-- 类型 -->\n\t<n-form label-placement=\"left\" :label-width=\"90\" label-align=\"left\" size=\"small\" class=\"px-2\">\n\t\t<n-form-item :label=\"t('layout.sider.particle.Type')\">\n\t\t\t<n-select\n\t\t\t\tv-model:value=\"data.type\"\n\t\t\t\tsize=\"small\"\n\t\t\t\t:options=\"[\n\t\t\t\t\t{ label: 'CSS3DObject', value: 'panel' },\n\t\t\t\t\t{ label: 'CSS3DSprite', value: 'sprite' },\n\t\t\t\t]\"\n\t\t\t\t@update:value=\"update('type')\"\n\t\t\t/>\n\t\t</n-form-item>\n\t</n-form>\n\n\t<n-divider class=\"!my-3\" />\n\n\t<n-collapse display-directive=\"show\" :default-expanded-names=\"['panel']\">\n\t\t<template #arrow>\n\t\t\t<n-icon>\n\t\t\t\t<CaretForwardOutline />\n\t\t\t</n-icon>\n\t\t</template>\n\n\t\t<!--  内容  -->\n\t\t<n-collapse-item :title=\"t('layout.sider.htmlPanel.Content')\" name=\"panel\">\n\t\t\t<!-- 上传代码 -->\n\t\t\t<n-upload :max=\"1\" accept=\".zip,.html\" :show-remove-button=\"false\" @before-upload=\"beforeUpload\" @update:file-list=\"updateFileList\">\n\t\t\t\t<n-upload-dragger>\n\t\t\t\t\t<n-icon size=\"36\" :depth=\"3\">\n\t\t\t\t\t\t<archive-icon />\n\t\t\t\t\t</n-icon>\n\t\t\t\t\t<div class=\"flex flex-col\">\n\t\t\t\t\t\t<n-text>\n\t\t\t\t\t\t\t{{ t(\"prompt.Click to select or drag the file to this area\") }}\n\t\t\t\t\t\t</n-text>\n\t\t\t\t\t\t<n-text :depth=\"3\" class=\"!text-0.6rem\">{{ t(\"other.Support\") }} .zip,.html</n-text>\n\t\t\t\t\t</div>\n\t\t\t\t</n-upload-dragger>\n\t\t\t</n-upload>\n\n\t\t\t<n-list hoverable clickable>\n\t\t\t\t<n-list-item v-for=\"(code, index) in data.codes\" :key=\"index\">\n\t\t\t\t\t<div>{{ code.name }}</div>\n\n\t\t\t\t\t<template #suffix>\n\t\t\t\t\t\t<n-button size=\"small\" @click=\"handleEdit(code)\" :disabled=\"!getCanEdit(code.name)\">\n\t\t\t\t\t\t\t{{ t(\"layout.sider.script.Edit\") }}\n\t\t\t\t\t\t</n-button>\n\t\t\t\t\t</template>\n\t\t\t\t</n-list-item>\n\t\t\t</n-list>\n\t\t</n-collapse-item>\n\t</n-collapse>\n\n\t<HtmlPanelCode\n\t\tv-model:show=\"codeEditorShow\"\n\t\tv-model:value=\"editorCode.code\"\n\t\t:title=\"editorCode.name\"\n\t\t:mode=\"editorCodeMode\"\n\t\t@update:value=\"update('code')\"\n\t/>\n</template>\n\n<style scoped lang=\"less\">\n\t.n-list-item {\n\t\t:deep(.n-list-item__main) {\n\t\t\tflex: unset !important;\n\t\t\twidth: 70% !important;\n\t\t\twhite-space: pre-wrap;\n\t\t\toverflow-wrap: break-word;\n\t\t\tword-wrap: break-word;\n\t\t}\n\n\t\t:deep(.n-list-item__suffix) {\n\t\t\tmargin-left: 10px !important;\n\t\t}\n\t}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarMaterial.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, reactive, onMounted, onBeforeUnmount} from \"vue\";\nimport {ReloadCircleOutline} from \"@vicons/ionicons5\";\nimport * as THREE from 'three';\nimport {App,Hooks,SetMaterialValueCommand,SetMaterialCommand,Utils} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport SceneAllMaterials from \"./material/SceneAllMaterials.vue\";\nimport SidebarMaterialProgram from \"./material/SidebarMaterialProgram.vue\";\nimport SidebarMaterialColorProperty from \"./material/SidebarMaterialColorProperty.vue\";\nimport SidebarMaterialNumberProperty from \"./material/SidebarMaterialNumberProperty.vue\";\nimport SidebarMaterialRangeValueProperty from \"./material/SidebarMaterialRangeValueProperty.vue\";\nimport SidebarMaterialBooleanProperty from \"./material/SidebarMaterialBooleanProperty.vue\";\nimport SidebarMaterialConstantProperty from \"./material/SidebarMaterialConstantProperty.vue\";\nimport SidebarMaterialMapProperty from \"./material/SidebarMaterialMapProperty.vue\";\nimport UserData from \"@/components/code/UserData.vue\";\n\nconst hasMaterial = ref(false);\nconst objectData = reactive({\n  slot: 0,\n  type: \"\",\n  uuid: \"\",\n  name: \"\",\n  userData: \"\"\n})\nconst slotOptions = ref<Array<{ label: string, value: number }>>([]);\nconst typeOptions = ref<Array<{ label: string, value: string }>>([]);\nconst materialClasses = {\n  'LineBasicMaterial': THREE.LineBasicMaterial,\n  'LineDashedMaterial': THREE.LineDashedMaterial,\n  'MeshBasicMaterial': THREE.MeshBasicMaterial,\n  'MeshDepthMaterial': THREE.MeshDepthMaterial,\n  'MeshNormalMaterial': THREE.MeshNormalMaterial,\n  'MeshLambertMaterial': THREE.MeshLambertMaterial,\n  'MeshMatcapMaterial': THREE.MeshMatcapMaterial,\n  'MeshPhongMaterial': THREE.MeshPhongMaterial,\n  'MeshToonMaterial': THREE.MeshToonMaterial,\n  'MeshStandardMaterial': THREE.MeshStandardMaterial,\n  'MeshPhysicalMaterial': THREE.MeshPhysicalMaterial,\n  'RawShaderMaterial': THREE.RawShaderMaterial,\n  'ShaderMaterial': THREE.ShaderMaterial,\n  'ShadowMaterial': THREE.ShadowMaterial,\n  'SpriteMaterial': THREE.SpriteMaterial,\n  'PointsMaterial': THREE.PointsMaterial\n};\nconst vertexShaderVariables = [\n  'uniform mat4 projectionMatrix;',\n  'uniform mat4 modelViewMatrix;\\n',\n  'attribute vec3 position;\\n\\n',\n].join('\\n');\nconst meshMaterialOptions = [\n  {label: \"MeshBasicMaterial\", value: \"MeshBasicMaterial\"},\n  {label: \"MeshDepthMaterial\", value: \"MeshDepthMaterial\"},\n  {label: \"MeshNormalMaterial\", value: \"MeshNormalMaterial\"},\n  {label: \"MeshLambertMaterial\", value: \"MeshLambertMaterial\"},\n  {label: \"MeshMatcapMaterial\", value: \"MeshMatcapMaterial\"},\n  {label: \"MeshPhongMaterial\", value: \"MeshPhongMaterial\"},\n  {label: \"MeshToonMaterial\", value: \"MeshToonMaterial\"},\n  {label: \"MeshStandardMaterial\", value: \"MeshStandardMaterial\"},\n  {label: \"MeshPhysicalMaterial\", value: \"MeshPhysicalMaterial\"},\n  {label: \"RawShaderMaterial\", value: \"RawShaderMaterial\"},\n  {label: \"ShaderMaterial\", value: \"ShaderMaterial\"},\n  {label: \"ShadowMaterial\", value: \"ShadowMaterial\"}\n];\nconst lineMaterialOptions = [\n  {label: \"LineBasicMaterial\", value: \"LineBasicMaterial\"},\n  {label: \"LineDashedMaterial\", value: \"LineDashedMaterial\"},\n  {label: \"RawShaderMaterial\", value: \"RawShaderMaterial\"},\n  {label: \"ShaderMaterial\", value: \"ShaderMaterial\"}\n];\nconst spriteMaterialOptions = [\n  {label: \"SpriteMaterial\", value: \"SpriteMaterial\"},\n  {label: \"RawShaderMaterial\", value: \"RawShaderMaterial\"},\n  {label: \"ShaderMaterial\", value: \"ShaderMaterial\"}\n];\nconst pointsMaterialOptions = [\n  {label: \"PointsMaterial\", value: \"PointsMaterial\"},\n  {label: \"RawShaderMaterial\", value: \"RawShaderMaterial\"},\n  {label: \"ShaderMaterial\", value: \"ShaderMaterial\"}\n];\n\nlet currentObject;\nlet currentMaterialSlot = 0;\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", objectSelected);\n  Hooks.useAddSignal(\"materialChanged\", refreshUI);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", objectSelected);\n  Hooks.useRemoveSignal(\"materialChanged\", refreshUI);\n})\n\nfunction objectSelected(object) {\n  let hasMaterialCopy = false;\n  if (object && object.material) {\n    hasMaterialCopy = true;\n    if (Array.isArray(object.material) && object.material.length === 0) {\n      hasMaterialCopy = false;\n    }\n  }\n  if (hasMaterialCopy) {\n    currentObject = object;\n    refreshUI();\n    hasMaterial.value = true;\n  } else {\n    currentObject = null;\n    hasMaterial.value = false;\n  }\n}\n\nfunction updateSlot() {\n  currentMaterialSlot = objectData.slot;\n  refreshUI();\n}\n\nconst update = () => {\n  let material = App.getObjectMaterial(currentObject, currentMaterialSlot);\n\n  if (material) {\n    if (material.uuid !== undefined && material.uuid !== objectData.uuid) {\n      App.execute(new SetMaterialValueCommand(currentObject, 'uuid', objectData.uuid, currentMaterialSlot));\n    }\n\n    if (material.type !== objectData.type) {\n      material = new materialClasses[objectData.type]();\n\n      if (material.type === 'RawShaderMaterial') {\n        material.vertexShader = vertexShaderVariables + material.vertexShader;\n      }\n\n      if (Array.isArray(currentObject.material)) {\n        // 不要移除多个材质。仅移除所选的材质\n        App.removeMaterial(currentObject.material[currentMaterialSlot]);\n      } else {\n        App.removeMaterial(currentObject.material);\n      }\n\n      App.execute(new SetMaterialCommand(currentObject, material, currentMaterialSlot), 'New Material: ' + objectData.type);\n      App.addMaterial(material);\n      // TODO 复制场景图中的其他引用\n      //保留当前名称和UUID\n      //也应该有办法创造一个独特的\n      //为当前对象显式复制\n      //将当前材料附加到其他对象。\n    }\n\n    try {\n      const userData = JSON.parse(objectData.userData);\n      if (JSON.stringify(material.userData) != JSON.stringify(userData)) {\n        App.execute(new SetMaterialValueCommand(currentObject, 'userData', userData, currentMaterialSlot));\n      }\n    } catch (exception) {\n      console.warn(exception);\n    }\n    refreshUI();\n  }\n}\n\nconst refreshUI = Utils.throttle(function() {\n  if (!currentObject) return;\n  let material = currentObject.material;\n  if (Array.isArray(material)) {\n    const options: Array<{ label: string, value: number }> = [];\n    currentMaterialSlot = Math.max(0, Math.min(material.length, currentMaterialSlot));\n\n    for (let i = 0; i < material.length; i++) {\n      options.push({\n        label: String(i + 1) + ': ' + material[i].name,\n        value: i\n      })\n    }\n\n    slotOptions.value = options;\n    objectData.slot = currentMaterialSlot;\n  }\n\n  material = App.getObjectMaterial(currentObject, currentMaterialSlot);\n\n  Hooks.useDispatchSignal('materialCurrentSlotChange', currentMaterialSlot);\n\n  if (material.uuid !== undefined) {\n    objectData.uuid = material.uuid;\n  }\n  if (material.name !== undefined) {\n    objectData.name = material.name;\n  }\n  if (currentObject.isMesh) {\n    typeOptions.value = meshMaterialOptions;\n  } else if (currentObject.isSprite) {\n    typeOptions.value = spriteMaterialOptions;\n  } else if (currentObject.isPoints) {\n    typeOptions.value = pointsMaterialOptions;\n  } else if (currentObject.isLine) {\n    typeOptions.value = lineMaterialOptions;\n  }\n  objectData.type = material.type;\n\n  setRowVisibility();\n\n  try {\n    objectData.userData = JSON.stringify(material.userData, null, '  ');\n  } catch (error) {\n    console.log(error);\n  }\n},100)\n\nconst materialSlotIsShow = ref(false);\n\nfunction setRowVisibility() {\n  const material = currentObject.material;\n\n  if (Array.isArray(material)) {\n    materialSlotIsShow.value = true;\n  } else {\n    materialSlotIsShow.value = false;\n  }\n}\n\n//更新uuid\nfunction newUUID() {\n  objectData.uuid = THREE.MathUtils.generateUUID();\n  update();\n}\n\n//更新name\nfunction updateName() {\n  App.execute(new SetMaterialValueCommand(App.selected, 'name', objectData.name, currentMaterialSlot));\n}\n\nconst userDataStatus = ref<any>(undefined)\nconst userDataEditorShow = ref(false);\nconst handleUserDataClick = () => {\n  userDataEditorShow.value = true;\n}\n</script>\n\n<template>\n  <div v-show=\"hasMaterial\">\n    <SceneAllMaterials />\n\n    <!-- Current material slot -->\n    <div class=\"sider-scene-material-item\" v-if=\"materialSlotIsShow\">\n      <span>{{ t(\"layout.sider.material.slot\") }}</span>\n      <div>\n        <n-select size=\"small\" v-model:value=\"objectData.slot\" :options=\"slotOptions\" @update:value=\"updateSlot\" />\n      </div>\n    </div>\n    <!-- type -->\n    <div class=\"sider-scene-material-item\">\n      <span>{{ t(\"layout.sider.object.type\") }}</span>\n      <div>\n        <n-select size=\"small\" v-model:value=\"objectData.type\" :options=\"typeOptions\" @update:value=\"update\" />\n      </div>\n    </div>\n    <!-- uuid -->\n    <div class=\"sider-scene-material-item\">\n      <span>{{ t(\"layout.sider.object.uuid\") }}</span>\n      <div class=\"flex items-center\">\n        <n-tooltip trigger=\"hover\">\n          <template #trigger>\n            <span class=\"uuid\">{{ objectData.uuid }}</span>\n          </template>\n          {{ objectData.uuid }}\n        </n-tooltip>\n        <n-button size=\"small\" quaternary circle type=\"primary\" v-if=\"objectData.uuid\" @click=\"newUUID\">\n          <template #icon>\n            <n-icon size=\"16\">\n              <ReloadCircleOutline />\n            </n-icon>\n          </template>\n        </n-button>\n      </div>\n    </div>\n    <!-- name -->\n    <div class=\"sider-scene-material-item\">\n      <span>{{ t(\"layout.sider.object.name\") }}</span>\n      <div>\n        <n-input v-model:value=\"objectData.name\" type=\"text\" size=\"small\" @update:value=\"updateName\" />\n      </div>\n    </div>\n\n    <!-- program -->\n    <SidebarMaterialProgram property=\"vertexShader\" />\n\n    <!-- color -->\n    <SidebarMaterialColorProperty property=\"color\" name=\"Color\" />\n\n    <!-- specular -->\n    <SidebarMaterialColorProperty property=\"specular\" name=\"Specular\" />\n\n    <!-- shininess -->\n    <SidebarMaterialNumberProperty property=\"shininess\" name=\"Shininess\" />\n\n    <!-- emissive -->\n    <SidebarMaterialColorProperty property=\"emissive\" name=\"Emissive\" />\n\n    <!-- reflectivity -->\n    <SidebarMaterialNumberProperty property=\"reflectivity\" name=\"Reflectivity\" :decimal=\"2\" />\n\n    <!-- roughness -->\n    <SidebarMaterialNumberProperty property=\"roughness\" name=\"Roughness\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- metalness -->\n    <SidebarMaterialNumberProperty property=\"metalness\" name=\"Metalness\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- clearcoat -->\n    <SidebarMaterialNumberProperty property=\"clearcoat\" name=\"Clearcoat\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- clearcoatRoughness -->\n    <SidebarMaterialNumberProperty property=\"clearcoatRoughness\" name=\"Clearcoat Roughness\" :decimal=\"2\"\n      :range=\"[0, 1]\" />\n\n    <!-- iridescence -->\n    <SidebarMaterialNumberProperty property=\"iridescence\" name=\"Iridescence\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- iridescenceIOR -->\n    <SidebarMaterialNumberProperty property=\"iridescenceIOR\" name=\"Thin-Film IOR\" :decimal=\"2\" :range=\"[1, 5]\" />\n\n    <!-- iridescenceThicknessMax -->\n    <SidebarMaterialRangeValueProperty property=\"iridescenceThicknessRange\" name=\"Thin-Film Thickness\" :isMin=\"false\"\n      :range=\"[0, Infinity]\" unit=\"nm\" :step=\"10\" />\n\n    <!-- sheen -->\n    <SidebarMaterialNumberProperty property=\"sheen\" name=\"Sheen\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- sheenRoughness -->\n    <SidebarMaterialNumberProperty property=\"sheenRoughness\" name=\"Sheen Roughness\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- specular -->\n    <SidebarMaterialColorProperty property=\"sheenColor\" name=\"Sheen Color\" />\n\n    <!-- transmission 透光 -->\n    <SidebarMaterialNumberProperty property=\"transmission\" name=\"Transmission\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- attenuation distance 衰减距离 -->\n    <SidebarMaterialNumberProperty property=\"attenuationDistance\" name=\"Attenuation Distance\" />\n\n    <!-- attenuation tint 衰减色 -->\n    <SidebarMaterialColorProperty property=\"attenuationColor\" name=\"Attenuation Color\" />\n\n    <!-- thickness 厚度 -->\n    <SidebarMaterialNumberProperty property=\"thickness\" name=\"Thickness\" />\n\n    <!-- vertex colors 顶点颜色 -->\n    <SidebarMaterialBooleanProperty property=\"vertexColors\" name=\"Vertex Colors\" />\n\n    <!-- depth packing 深度包装 -->\n    <SidebarMaterialConstantProperty property=\"depthPacking\" name=\"Depth Packing\"\n      :options=\"[{ label: 'Basic', value: [THREE.BasicDepthPacking] }, { label: 'RGBA', value: [THREE.RGBADepthPacking] }]\" />\n\n    <!-- map 贴图 -->\n    <SidebarMaterialMapProperty property=\"map\" name=\"Map\" />\n\n    <!-- specular map 高光贴图 -->\n    <SidebarMaterialMapProperty property=\"specularMap\" name=\"Specular Map\" />\n\n    <!-- emissive map 自发光贴图 -->\n    <SidebarMaterialMapProperty property=\"emissiveMap\" name=\"Emissive Map\" />\n\n    <!-- matcap map 材质捕获 -->\n    <SidebarMaterialMapProperty property=\"matcap\" name=\"Matcap\" />\n\n    <!-- alpha map 透明贴图 -->\n    <SidebarMaterialMapProperty property=\"alphaMap\" name=\"Alpha Map\" />\n\n    <!-- bump map 凹凸贴图 -->\n    <SidebarMaterialMapProperty property=\"bumpMap\" name=\"Bump Map\" />\n\n    <!-- normal map 法线贴图 -->\n    <SidebarMaterialMapProperty property=\"normalMap\" name=\"Normal Map\" />\n\n    <!-- clearcoat normal map 清漆法线贴图 -->\n    <SidebarMaterialMapProperty property=\"clearcoatNormalMap\" name=\"Clearcoat Normal Map\" />\n\n    <!-- displacement map 置换贴图 -->\n    <SidebarMaterialMapProperty property=\"displacementMap\" name=\"Displace Map\" />\n\n    <!-- roughness map 粗糙贴图 -->\n    <SidebarMaterialMapProperty property=\"roughnessMap\" name=\"Rough Map\" />\n\n    <!-- metalness map 金属贴图 -->\n    <SidebarMaterialMapProperty property=\"metalnessMap\" name=\"Metal Map\" />\n\n    <!-- iridescence map 彩虹色贴图 -->\n    <SidebarMaterialMapProperty property=\"iridescenceMap\" name=\"Irid Map\" />\n\n    <!-- sheen color map -->\n    <SidebarMaterialMapProperty property=\"sheenColorMap\" name=\"Sheen Color Map\" />\n\n    <!-- sheen roughness map -->\n    <SidebarMaterialMapProperty property=\"sheenRoughnessMap\" name=\"Sheen Rough. Map\" />\n\n    <!-- iridescence thickness map 彩虹色厚度贴图 -->\n    <SidebarMaterialMapProperty property=\"iridescenceThicknessMap\" name=\"Thin-Film Thickness Map\" />\n\n    <!-- env map 环境贴图 -->\n    <SidebarMaterialMapProperty property=\"envMap\" name=\"Env Map\" />\n\n    <!-- light map 环境贴图 -->\n    <SidebarMaterialMapProperty property=\"lightMap\" name=\"Light Map\" />\n\n    <!-- ambient occlusion map 环境光遮蔽贴图 -->\n    <SidebarMaterialMapProperty property=\"aoMap\" name=\"AO Map\" />\n\n    <!-- gradient map 渐变贴图 -->\n    <SidebarMaterialMapProperty property=\"gradientMap\" name=\"Gradient Map\" />\n\n    <!-- transmission map 透光贴图 -->\n    <SidebarMaterialMapProperty property=\"transmissionMap\" name=\"Transmission Map\" />\n\n    <!-- thickness map 厚度贴图 -->\n    <SidebarMaterialMapProperty property=\"thicknessMap\" name=\"Thickness Map\" />\n\n    <!-- side 面 -->\n    <SidebarMaterialConstantProperty property=\"side\" name=\"Side\" :options=\"[\n            { label: 'Front', value:0 },\n            { label: 'Back', value: 1 },\n            { label: 'Double', value: 2 }\n        ]\" />\n\n    <!-- size 大小 -->\n    <SidebarMaterialNumberProperty property=\"size\" name=\"Size\" :range=\"[0, Infinity]\" />\n\n    <!-- sizeAttenuation 大小衰减 -->\n    <SidebarMaterialBooleanProperty property=\"sizeAttenuation\" name=\"Size Attenuation\" />\n\n    <!-- flatShading 平面着色 -->\n    <SidebarMaterialBooleanProperty property=\"flatShading\" name=\"Flat Shading\" />\n\n    <!-- blending 混合 -->\n    <SidebarMaterialConstantProperty property=\"blending\" name=\"Blending\" :options=\"[\n            { label: 'No', value:0 },\n            { label: 'Normal', value: 1 },\n            { label: 'Additive', value: 2 },\n            { label: 'Subtractive', value: 3 },\n            { label: 'Multiply', value: 4 },\n            { label: 'Custom', value: 5 }\n        ]\" />\n\n    <!-- opacity 透明度 -->\n    <SidebarMaterialNumberProperty property=\"opacity\" name=\"Opacity\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- transparent 透明性 -->\n    <SidebarMaterialBooleanProperty property=\"transparent\" name=\"Transparent\" />\n\n    <!-- alpha test α测试 -->\n    <SidebarMaterialNumberProperty property=\"alphaTest\" name=\"Alpha Test\" :decimal=\"2\" :range=\"[0, 1]\" />\n\n    <!-- depth test 深度测试 -->\n    <SidebarMaterialBooleanProperty property=\"depthTest\" name=\"Depth Test\" />\n\n    <!-- depth write 深度缓冲 -->\n    <SidebarMaterialBooleanProperty property=\"depthWrite\" name=\"Depth Write\" />\n\n    <!-- wireframe 线框 -->\n    <SidebarMaterialBooleanProperty property=\"wireframe\" name=\"Wireframe\" />\n\n    <!-- userdata 自定义数据 -->\n    <div class=\"sider-scene-material-item\">\n      <span>{{ t(\"layout.sider.object.userdata\") }}</span>\n      <div>\n        <n-input type=\"textarea\" v-model:value=\"objectData.userData\" round :rows=\"5\" readonly :status=\"userDataStatus\"\n          @click.stop=\"handleUserDataClick\" />\n      </div>\n    </div>\n\n    <UserData v-model:show=\"userDataEditorShow\" @update:show=\"(s) => userDataEditorShow = s\"\n      v-model:value=\"objectData.userData\" @update:value=\"update\" />\n  </div>\n\n  <n-result v-show=\"!hasMaterial\" status=\"418\" title=\"Empty\"\n    :description=\"t('prompt[\\'No material data for the time being\\']')\" />\n</template>\n\n<style lang=\"less\" scoped>\n.sider-scene-material-item {\n  display: flex;\n  justify-content: space-between;\n  margin: 15px 0;\n  align-items: center;\n\n  & > span {\n    min-width: 80px;\n  }\n\n  & > div {\n    width: 150px;\n    color: rgb(165, 164, 164);\n    overflow: hidden;\n\n    .uuid {\n      width: 100%;\n      white-space: nowrap;\n      overflow-x: auto;\n      display: inline-block;\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarObject.vue",
    "content": "<script lang=\"ts\" setup>\nimport { ref, reactive, onMounted,onBeforeUnmount } from \"vue\";\nimport * as THREE from \"three\";\nimport { App,Hooks,Utils,SetUuidCommand,SetValueCommand,SetPositionCommand,SetRotationCommand,SetScaleCommand,SetColorCommand } from \"@astral3d/engine\";\nimport { ReloadCircleOutline } from \"@vicons/ionicons5\";\nimport EsInputNumber from '@/components/es/EsInputNumber.vue';\nimport { t } from \"@/language\";\nimport UserData from \"@/components/code/UserData.vue\";\nimport EsKeyFrame from \"@/components/es/EsKeyFrame.vue\";\n\nconst isSelectObject3D = ref(false);\nconst objectData = reactive({\n    type: \"\",\n    uuid: \"\",\n    name: \"\",\n    position: {\n        x: 0,\n        y: 0,\n        z: 0\n    },\n    rotation: {\n        x: 0,\n        y: 0,\n        z: 0\n    },\n    scale: {\n        x: 1,\n        y: 1,\n        z: 1\n    },\n    fov: 0,\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0,\n    near: 0,\n    far: 0,\n    intensity: 0,\n    color: \"\",\n    groundColor: \"\",\n    distance: 0,\n    angle: 0,\n    penumbra: 0,\n    decay: 0,\n    castShadow: false,\n    receiveShadow: false,\n    shadow: {\n        bias: 0,\n        normalBias: 0,\n        radius: 1,\n        intensity: 1\n    },\n    visible: true,\n    frustumCulled: true,\n    renderOrder: 0,\n    userData: \"{}\"\n})\nconst transformRowsVisible = reactive({\n    rotation: true,\n    scale: true\n})\nconst objectDataVisible = reactive({\n    fov: true,\n    left: true,\n    right: true,\n    top: true,\n    bottom: true,\n    near: true,\n    far: true,\n    intensity: true,\n    color: true,\n    groundColor: true,\n    distance: true,\n    angle: true,\n    penumbra: true,\n    decay: true,\n    castShadow: true,\n    receiveShadow: true,\n    shadow: true\n})\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\",handleSelectObject3D);\n  Hooks.useAddSignal(\"objectChanged\", handleObjectChange);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\",handleSelectObject3D);\n  Hooks.useRemoveSignal(\"objectChanged\", handleObjectChange)\n})\n\nfunction handleSelectObject3D(object){\n  if (object !== null) {\n    isSelectObject3D.value = true;\n    updateRows(object);\n    updateUI(object);\n  } else {\n    isSelectObject3D.value = false;\n  }\n}\n\nfunction handleObjectChange(object){\n  if (object !== App.selected) return;\n  updateUI(object);\n}\n\nfunction updateRows(object) {\n    for (const property in objectDataVisible) {\n        objectDataVisible[property] = object[property] !== undefined;\n    }\n\n    if (object.isLight) {\n        objectDataVisible.receiveShadow = false;\n    }\n\n    if (object.isAmbientLight || object.isHemisphereLight) {\n        objectDataVisible.castShadow = false;\n    }\n}\n\nconst updateUI = Utils.throttle(function(object) {\n    objectData.type = object.type;\n    objectData.uuid = object.uuid;\n    objectData.name = object.name;\n    objectData.position.x = Number(object.position.x.toFixed(3));\n    objectData.position.y = Number(object.position.y.toFixed(3));\n    objectData.position.z = Number(object.position.z.toFixed(3));\n    objectData.rotation.x = Number((object.rotation.x * THREE.MathUtils.RAD2DEG).toFixed(3));\n    objectData.rotation.y = Number((object.rotation.y * THREE.MathUtils.RAD2DEG).toFixed(3));\n    objectData.rotation.z = Number((object.rotation.z * THREE.MathUtils.RAD2DEG).toFixed(3));\n    objectData.scale.x = Number(object.scale.x.toFixed(3));\n    objectData.scale.y = Number(object.scale.y.toFixed(3));\n    objectData.scale.z = Number(object.scale.z.toFixed(3));\n\n    if (object.fov !== undefined) {\n        objectData.fov = object.fov;\n    }\n    if (object.left !== undefined) {\n        objectData.left = object.left;\n    }\n    if (object.right !== undefined) {\n        objectData.right = object.right;\n    }\n    if (object.top !== undefined) {\n        objectData.top = object.top;\n    }\n    if (object.bottom !== undefined) {\n        objectData.bottom = object.bottom;\n    }\n    if (object.near !== undefined) {\n        objectData.near = object.near;\n    }\n    if (object.far !== undefined) {\n        objectData.far = object.far;\n    }\n    if (object.intensity !== undefined) {\n        objectData.intensity = object.intensity;\n    }\n    if (object.color !== undefined) {\n        objectData.color = object.color.getStyle();\n    }\n    if (object.groundColor !== undefined) {\n        objectData.groundColor = object.color.getStyle();\n    }\n    if (object.distance !== undefined) {\n        objectData.distance = object.distance;\n    }\n    if (object.angle !== undefined) {\n        objectData.angle = object.angle;\n    }\n    if (object.penumbra !== undefined) {\n        objectData.penumbra = object.penumbra;\n    }\n    if (object.decay !== undefined) {\n        objectData.decay = object.decay;\n    }\n    if (object.castShadow !== undefined) {\n        objectData.castShadow = object.castShadow;\n    }\n    if (object.receiveShadow !== undefined) {\n        objectData.receiveShadow = object.receiveShadow;\n    }\n    if (object.shadow !== undefined) {\n        objectData.shadow.bias = object.shadow.bias;\n        objectData.shadow.normalBias = object.shadow.normalBias;\n        objectData.shadow.radius = object.shadow.radius;\n        objectData.shadow.intensity = object.shadow.intensity;\n    }\n\n    objectData.visible = object.visible;\n    objectData.frustumCulled = object.frustumCulled;\n    objectData.renderOrder = object.renderOrder;\n\n    try {\n        objectData.userData = JSON.stringify(object.userData, null, '  ');\n    } catch (error) {\n        console.log(error);\n    }\n\n    updateTransformRows(object);\n},100)\n\nfunction updateTransformRows(object) {\n    if (object.isLight || (object.isObject3D && object.userData.targetInverse)) {\n        transformRowsVisible.rotation = false;\n        transformRowsVisible.scale = false;\n    } else {\n        transformRowsVisible.rotation = true;\n        transformRowsVisible.scale = true;\n    }\n}\n\nconst update = (method: string) => {\n    const object = App.selected as any;\n    if (object === null) return;\n\n    const call = {\n        uuid: () => {\n            const newUUID = THREE.MathUtils.generateUUID();\n            objectData.uuid = newUUID;\n            App.execute(new SetUuidCommand(object, newUUID));\n        },\n        name: () => {\n            App.execute(new SetValueCommand(object, 'name', objectData.name));\n            Hooks.useDispatchSignal(\"sceneTreeChange\");\n        },\n        position: () => {\n            const newPosition = new THREE.Vector3(objectData.position.x, objectData.position.y, objectData.position.z);\n            if (object.position.distanceTo(newPosition) >= 0.01) {\n                App.execute(new SetPositionCommand(object, newPosition));\n            }\n        },\n        rotation: () => {\n            const newRotation = new THREE.Euler(objectData.rotation.x * THREE.MathUtils.DEG2RAD, objectData.rotation.y * THREE.MathUtils.DEG2RAD, objectData.rotation.z * THREE.MathUtils.DEG2RAD);\n            if (new THREE.Vector3().setFromEuler(object.rotation).distanceTo(new THREE.Vector3().setFromEuler(newRotation)) >= 0.01) {\n                App.execute(new SetRotationCommand(object, newRotation, undefined));\n            }\n        },\n        scale: () => {\n            const newScale = new THREE.Vector3(objectData.scale.x, objectData.scale.y, objectData.scale.z);\n            if (object.scale.distanceTo(newScale) >= 0.01) {\n                App.execute(new SetScaleCommand(object, newScale, undefined));\n            }\n        },\n        fov: () => {\n            if (object.fov !== undefined && Math.abs(object.fov - objectData.fov) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'fov', objectData.fov));\n                object.updateProjectionMatrix();\n            }\n        },\n        left: () => {\n            if (object.left !== undefined && Math.abs(object.left - objectData.left) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'left', objectData.left));\n                object.updateProjectionMatrix();\n            }\n        },\n        right: () => {\n            if (object.right !== undefined && Math.abs(object.right - objectData.right) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'right', objectData.right));\n                object.updateProjectionMatrix();\n            }\n        },\n        top: () => {\n            if (object.top !== undefined && Math.abs(object.top - objectData.top) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'top', objectData.top));\n                object.updateProjectionMatrix();\n            }\n        },\n        bottom: () => {\n            if (object.bottom !== undefined && Math.abs(object.bottom - objectData.bottom) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'bottom', objectData.bottom));\n                object.updateProjectionMatrix();\n            }\n        },\n        near: () => {\n            if (object.near !== undefined && Math.abs(object.near - objectData.near) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'near', objectData.near));\n                if (object.isOrthographicCamera) {\n                    object.updateProjectionMatrix();\n                }\n            }\n        },\n        far: () => {\n            if (object.far !== undefined && Math.abs(object.far - objectData.far) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'far', objectData.far));\n                if (object.isOrthographicCamera) {\n                    object.updateProjectionMatrix();\n                }\n            }\n        },\n        intensity: () => {\n            if (object.intensity !== undefined && Math.abs(object.intensity - objectData.intensity) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'intensity', objectData.intensity));\n            }\n        },\n        color: () => {\n            if (object.color !== undefined && object.color.getHex() !== objectData.color) {\n                App.execute(new SetColorCommand(object, 'color', objectData.color));\n            }\n        },\n        groundColor: () => {\n            if (object.groundColor !== undefined && object.groundColor.getHex() !== objectData.groundColor) {\n                App.execute(new SetColorCommand(object, 'groundColor', objectData.groundColor));\n            }\n        },\n        distance: () => {\n            if (object.distance !== undefined && Math.abs(object.distance - objectData.distance) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'distance', objectData.distance));\n            }\n        },\n        angle: () => {\n            if (object.angle !== undefined && Math.abs(object.angle - objectData.angle) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'angle', objectData.angle));\n            }\n        },\n        penumbra: () => {\n            if (object.penumbra !== undefined && Math.abs(object.penumbra - objectData.penumbra) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'penumbra', objectData.penumbra));\n            }\n        },\n        decay: () => {\n            if (object.decay !== undefined && Math.abs(object.decay - objectData.decay) >= 0.01) {\n                App.execute(new SetValueCommand(object, 'decay', objectData.decay));\n            }\n        },\n        castShadow: () => {\n            if (object.castShadow !== undefined && object.castShadow !== objectData.castShadow) {\n                App.execute(new SetValueCommand(object, 'castShadow', objectData.castShadow));\n            }\n        },\n        receiveShadow: () => {\n            if (object.receiveShadow !== objectData.receiveShadow) {\n                if (object.material !== undefined) object.material.needsUpdate = true;\n                App.execute(new SetValueCommand(object, 'receiveShadow', objectData.receiveShadow));\n            }\n        },\n        shadowBias: () => {\n            if (object.shadow !== undefined && object.shadow.bias !== objectData.shadow.bias) {\n                App.execute(new SetValueCommand(object.shadow, 'bias', objectData.shadow.bias));\n            }\n        },\n        shadowNormalBias: () => {\n            if (object.shadow !== undefined && object.shadow.normalBias !== objectData.shadow.normalBias) {\n                App.execute(new SetValueCommand(object.shadow, 'normalBias', objectData.shadow.normalBias));\n            }\n        },\n        shadowRadius: () => {\n            if (object.shadow !== undefined && object.shadow.radius !== objectData.shadow.radius) {\n                App.execute(new SetValueCommand(object.shadow, 'radius', objectData.shadow.radius));\n            }\n        },\n        shadowIntensity: () => {\n            if (object.shadow !== undefined && object.shadow.intensity !== objectData.shadow.intensity) {\n                App.execute(new SetValueCommand(object.shadow, 'intensity', objectData.shadow.intensity));\n            }\n        },\n        visible: () => {\n            if (object.visible !== objectData.visible) {\n                App.execute(new SetValueCommand(object, 'visible', objectData.visible));\n            }\n        },\n        frustumCulled: () => {\n            if (object.frustumCulled !== objectData.frustumCulled) {\n                App.execute(new SetValueCommand(object, 'frustumCulled', objectData.frustumCulled));\n            }\n        },\n        renderOrder: () => {\n            if (object.renderOrder !== objectData.renderOrder) {\n                App.execute(new SetValueCommand(object, 'renderOrder', objectData.renderOrder));\n            }\n        },\n        userData: () => {\n            try {\n                const userData = JSON.parse(objectData.userData);\n                if (JSON.stringify(object.userData) != JSON.stringify(userData)) {\n                    App.execute(new SetValueCommand(object, 'userData', userData));\n                }\n            } catch (exception) {\n                console.warn(exception);\n            }\n        }\n    }\n\n    call[method]();\n}\n\nconst userDataStatus = ref<any>(undefined);\nconst userDataEditorShow = ref(false);\nconst handleUserDataClick = () => {\n    // try {\n    //   JSON.parse(objectData.userData);\n    //   userDataStatus.value = 'success';\n    // } catch (error) {\n    //   userDataStatus.value = 'error';\n    // }\n    userDataEditorShow.value = true;\n}\n</script>\n\n<template>\n    <div id=\"sider-scene-attr\" v-if=\"isSelectObject3D\">\n        <!-- type -->\n        <div class=\"sider-scene-attr-item\">\n            <span>{{ t(\"layout.sider.object.type\") }}</span>\n            <div>{{ objectData.type }}</div>\n        </div>\n        <!-- uuid -->\n        <div class=\"sider-scene-attr-item\">\n            <span>{{ t(\"layout.sider.object.uuid\") }}</span>\n            <div class=\"flex items-center\">\n                <n-tooltip trigger=\"hover\">\n                    <template #trigger>\n                        <span class=\"uuid\">{{ objectData.uuid }}</span>\n                    </template>\n                    {{ objectData.uuid }}\n                </n-tooltip>\n                <n-button size=\"small\" quaternary circle type=\"primary\" v-if=\"objectData.uuid\" @click=\"update('uuid')\">\n                    <template #icon>\n                        <n-icon size=\"16\">\n                            <ReloadCircleOutline />\n                        </n-icon>\n                    </template>\n                </n-button>\n            </div>\n        </div>\n        <!-- name -->\n        <div class=\"sider-scene-attr-item\">\n            <span>{{ t(\"layout.sider.object.name\") }}</span>\n            <div>\n                <n-input v-model:value=\"objectData.name\" type=\"text\" size=\"small\" @update:value=\"update('name')\" />\n            </div>\n        </div>\n        <!-- position -->\n        <div class=\"sider-scene-attr-item\">\n            <EsKeyFrame :label=\"t('layout.sider.object.position')\" attr=\"position\" />\n            <div class=\"flex\">\n                <EsInputNumber v-model:value=\"objectData.position.x\" size=\"tiny\" :show-button=\"false\" :decimal=\"3\" :step=\"1\"\n                    @change=\"update('position')\" />\n                <EsInputNumber v-model:value=\"objectData.position.y\" size=\"tiny\" :show-button=\"false\" :decimal=\"3\" :step=\"1\"\n                    @change=\"update('position')\" />\n                <EsInputNumber v-model:value=\"objectData.position.z\" size=\"tiny\" :show-button=\"false\" :decimal=\"3\" :step=\"1\"\n                    @change=\"update('position')\" />\n            </div>\n        </div>\n        <!-- rotation -->\n        <div class=\"sider-scene-attr-item\" v-if=\"transformRowsVisible.rotation\">\n            <EsKeyFrame :label=\"t('layout.sider.object.rotation')\" attr=\"quaternion\" />\n            <div class=\"flex\">\n                <EsInputNumber v-model:value=\"objectData.rotation.x\" size=\"tiny\" :decimal=\"2\" :step=\"1\" :show-button=\"false\"\n                    @change=\"update('rotation')\" unit=\"°\" />\n                <EsInputNumber v-model:value=\"objectData.rotation.y\" size=\"tiny\" :decimal=\"2\" :step=\"1\" :show-button=\"false\"\n                    @change=\"update('rotation')\" unit=\"°\" />\n                <EsInputNumber v-model:value=\"objectData.rotation.z\" size=\"tiny\" :decimal=\"2\" :step=\"1\" :show-button=\"false\"\n                    @change=\"update('rotation')\" unit=\"°\" />\n            </div>\n        </div>\n        <!-- scale -->\n        <div class=\"sider-scene-attr-item\" v-if=\"transformRowsVisible.scale\">\n            <EsKeyFrame :label=\"t('layout.sider.object.scale')\" attr=\"scale\" />\n            <div class=\"flex\">\n                <EsInputNumber v-model:value=\"objectData.scale.x\" size=\"tiny\" :decimal=\"3\" :step=\"1\" :show-button=\"false\"\n                    @change=\"update('scale')\" />\n                <EsInputNumber v-model:value=\"objectData.scale.y\" size=\"tiny\" :decimal=\"3\" :step=\"1\" :show-button=\"false\"\n                    @change=\"update('scale')\" />\n                <EsInputNumber v-model:value=\"objectData.scale.z\" size=\"tiny\" :decimal=\"3\" :step=\"1\" :show-button=\"false\"\n                    @change=\"update('scale')\" />\n            </div>\n        </div>\n        <!-- fov -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.fov\">\n            <EsKeyFrame :label=\"t('layout.sider.object.fov')\" attr=\"fov\" />\n            <div>\n                <EsInputNumber v-model:value=\"objectData.fov\" size=\"tiny\" :decimal=\"2\" :show-button=\"false\"\n                    @change=\"update('fov')\" />\n            </div>\n        </div>\n        <!-- left -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.left\">\n            <span>{{ t(\"layout.sider.object.left\") }}</span>\n            <div>\n                <EsInputNumber v-model:value=\"objectData.left\" size=\"tiny\" :show-button=\"false\"\n                    @change=\"update('left')\" />\n            </div>\n        </div>\n        <!-- right -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.right\">\n            <span>{{ t(\"layout.sider.object.right\") }}</span>\n            <div>\n                <EsInputNumber v-model:value=\"objectData.right\" size=\"tiny\" :show-button=\"false\"\n                    @change=\"update('right')\" />\n            </div>\n        </div>\n        <!-- top -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.top\">\n            <span>{{ t(\"layout.sider.object.top\") }}</span>\n            <div>\n                <EsInputNumber v-model:value=\"objectData.top\" size=\"tiny\" :show-button=\"false\"\n                    @change=\"update('top')\" />\n            </div>\n        </div>\n        <!-- bottom -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.bottom\">\n            <span>{{ t(\"layout.sider.object.bottom\") }}</span>\n            <div>\n                <EsInputNumber v-model:value=\"objectData.bottom\" size=\"tiny\" :show-button=\"false\"\n                    @change=\"update('bottom')\" />\n            </div>\n        </div>\n        <!-- near -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.near\">\n            <EsKeyFrame :label=\"t('layout.sider.object.near')\" attr=\"near\" />\n            <div>\n                <EsInputNumber v-model:value=\"objectData.near\" size=\"tiny\" :decimal=\"2\" :min=\"0\" :show-button=\"false\"\n                    @change=\"update('near')\" />\n            </div>\n        </div>\n        <!-- far -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.far\">\n            <EsKeyFrame :label=\"t('layout.sider.object.far')\" attr=\"far\" />\n            <div>\n                <EsInputNumber v-model:value=\"objectData.far\" size=\"tiny\" :decimal=\"2\" :show-button=\"false\"\n                    @change=\"update('far')\" />\n            </div>\n        </div>\n        <!-- intensity -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.intensity\">\n            <EsKeyFrame :label=\"t('layout.sider.object.intensity')\" attr=\"intensity\" />\n            <div>\n                <EsInputNumber v-model:value=\"objectData.intensity\" size=\"tiny\" :min=\"0\" :show-button=\"false\"\n                    @change=\"update('intensity')\" />\n            </div>\n        </div>\n        <!-- color -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.color\">\n            <EsKeyFrame :label=\"t('layout.sider.object.color')\" attr=\"color\" />\n            <div>\n                <n-color-picker v-model:value=\"objectData.color\" :show-alpha=\"false\" size=\"small\"\n                    @update:value=\"update('color')\" />\n            </div>\n        </div>\n        <!-- groundcolor -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.groundColor\">\n            <EsKeyFrame :label=\"t('layout.sider.object.groundcolor')\" attr=\"groundcolor\" />\n            <div>\n                <n-color-picker v-model:value=\"objectData.groundColor\" :modes=\"['hex']\" :show-alpha=\"false\" size=\"small\"\n                    @update:value=\"update('groundColor')\" />\n            </div>\n        </div>\n        <!-- distance -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.distance\">\n            <EsKeyFrame :label=\"t('layout.sider.object.distance')\" attr=\"distance\" />\n            <div>\n                <EsInputNumber v-model:value=\"objectData.distance\" size=\"tiny\" :min=\"0\" :show-button=\"false\"\n                    @change=\"update('distance')\" />\n            </div>\n        </div>\n        <!-- angle -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.angle\">\n            <span>{{ t(\"layout.sider.object.angle\") }}</span>\n            <div>\n                <EsInputNumber v-model:value=\"objectData.angle\" size=\"tiny\" :min=\"0\" :max=\"Math.PI / 2\"\n                    :show-button=\"false\" :decimal=\"3\" @change=\"update('angle')\" />\n            </div>\n        </div>\n        <!-- penumbra -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.penumbra\">\n            <span>{{ t(\"layout.sider.object.penumbra\") }}</span>\n            <div>\n                <EsInputNumber v-model:value=\"objectData.penumbra\" size=\"tiny\" :min=\"0\" :max=\"1\" :show-button=\"false\"\n                    :decimal=\"2\" @change=\"update('penumbra')\" />\n            </div>\n        </div>\n        <!-- decay -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.decay\">\n            <span>{{ t(\"layout.sider.object.decay\") }}</span>\n            <div>\n                <EsInputNumber v-model:value=\"objectData.decay\" size=\"tiny\" :min=\"0\" :max=\"Infinity\"\n                    :show-button=\"false\" @change=\"update('decay')\" />\n            </div>\n        </div>\n        <!-- shadow -->\n        <div class=\"sider-scene-attr-item\" v-if=\"objectDataVisible.castShadow\">\n            <span>{{ t(\"layout.sider.object.shadow\") }}</span>\n            <div>\n                <n-checkbox v-model:checked=\"objectData.castShadow\"\n                    @update:checked=\"update('castShadow')\">{{ t(\"layout.sider.object.cast\") }}\n                </n-checkbox>\n                <n-checkbox v-model:checked=\"objectData.receiveShadow\" @update:checked=\"update('receiveShadow')\"\n                    v-if=\"objectDataVisible.receiveShadow\">\n                    {{ t(\"layout.sider.object.receive\") }}\n                </n-checkbox>\n            </div>\n        </div>\n\n        <template v-if=\"objectDataVisible.shadow\">\n            <!-- shadowIntensity -->\n            <div class=\"sider-scene-attr-item\">\n                <span>{{ t(\"layout.sider.object.shadowIntensity\") }}</span>\n                <div>\n                    <EsInputNumber v-model:value=\"objectData.shadow.intensity\" size=\"tiny\" :show-button=\"false\" :min=\"0\"\n                        :decimal=\"2\" @change=\"update('shadowIntensity')\" />\n                </div>\n            </div>\n            <!-- shadowBias -->\n            <div class=\"sider-scene-attr-item\">\n                <span>{{ t(\"layout.sider.object.shadowBias\") }}</span>\n                <div>\n                    <EsInputNumber v-model:value=\"objectData.shadow.bias\" size=\"tiny\" :show-button=\"false\" :decimal=\"4\"\n                        @change=\"update('shadowBias')\" />\n                </div>\n            </div>\n            <!-- shadowNormalBias -->\n            <div class=\"sider-scene-attr-item\">\n                <span>{{ t(\"layout.sider.object.shadowNormalBias\") }}</span>\n                <div>\n                    <EsInputNumber v-model:value=\"objectData.shadow.normalBias\" size=\"tiny\" :show-button=\"false\"\n                        @change=\"update('shadowNormalBias')\" />\n                </div>\n            </div>\n            <!-- shadowRadius -->\n            <div class=\"sider-scene-attr-item\">\n                <span>{{ t(\"layout.sider.object.shadowRadius\") }}</span>\n                <div>\n                    <EsInputNumber v-model:value=\"objectData.shadow.radius\" size=\"tiny\" :min=\"0\" :show-button=\"false\"\n                        @change=\"update('shadowRadius')\" />\n                </div>\n            </div>\n        </template>\n\n        <!-- visible -->\n        <div class=\"sider-scene-attr-item\">\n            <EsKeyFrame :label=\"t('layout.sider.object.visible')\" attr=\"visible\" />\n            <div>\n                <n-checkbox v-model:checked=\"objectData.visible\" @update:checked=\"update('visible')\" />\n            </div>\n        </div>\n        <!-- frustumcull -->\n        <div class=\"sider-scene-attr-item\">\n            <span>{{ t(\"layout.sider.object.frustumcull\") }}</span>\n            <div>\n                <n-checkbox v-model:checked=\"objectData.frustumCulled\" @update:checked=\"update('frustumCulled')\" />\n            </div>\n        </div>\n        <!-- renderorder -->\n        <div class=\"sider-scene-attr-item\">\n            <EsKeyFrame :label=\"t('layout.sider.object.renderorder')\" attr=\"renderOrder\" />\n            <div>\n                <EsInputNumber v-model:value=\"objectData.renderOrder\" size=\"tiny\" :show-button=\"false\"\n                    @change=\"update('renderOrder')\" />\n            </div>\n        </div>\n        <!-- userdata -->\n        <div class=\"sider-scene-attr-item\">\n            <span>{{ t(\"layout.sider.object.userdata\") }}</span>\n            <div>\n                <n-input type=\"textarea\" :value=\"objectData.userData\" round :rows=\"5\" readonly :status=\"userDataStatus\"\n                    @click.stop=\"handleUserDataClick\" />\n            </div>\n        </div>\n\n        <UserData v-model:show=\"userDataEditorShow\" @update:show=\"(s) => userDataEditorShow = s\"\n            v-model:value=\"objectData.userData\" @update:value=\"update('userData')\" />\n    </div>\n    <n-result v-else status=\"418\" title=\"Empty\" :description=\"t('prompt[\\'No object selected.\\']')\" />\n</template>\n\n<style lang=\"less\" scoped>\n#sider-scene-attr {\n    .sider-scene-attr-item {\n        display: flex;\n        justify-content: space-between;\n        margin: 10px 0;\n        align-items: center;\n\n        &>span {\n            min-width: 80px;\n        }\n\n        &>div {\n            width: 150px;\n            color: rgb(165, 164, 164);\n            overflow: hidden;\n\n            .uuid {\n                width: 100%;\n                white-space: nowrap;\n                overflow-x: auto;\n                display: inline-block;\n            }\n        }\n    }\n}\n\n:deep(.n-input__textarea) {\n    font-size: 12px;\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarParticle.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted, onBeforeUnmount} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Hooks,getDefaultParticleConfig,Utils,Particle} from \"@astral3d/engine\";\nimport Attributes from './particle/Sidebar.Particle.Attribute.vue';\nimport Initializer from './particle/Sidebar.Particle.Initializer.vue';\nimport Behaviour from './particle/Sidebar.Particle.Behaviour.vue';\n\nconst particleData = reactive<IParticle.Config>(getDefaultParticleConfig());\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", updateUI);\n\n  updateUI();\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", updateUI);\n})\n\nfunction updateUI() {\n  const object = App.selected;\n  if(!object) return;\n\n  if (!Utils.isParticleObject(object)) return;\n\n  const emitterJSON = object.getEmitterJSON();\n\n  Utils.deepAssign(particleData, emitterJSON);\n}\n\nfunction update(method: string) {\n  const object = App.selected;\n  if(!object) return;\n\n  if (!Utils.isParticleObject(object)) return;\n\n  const emitter = object.emitter as Particle.Emitter;\n  const call = {\n    // attribute\n    totalEmitTimes: () => {\n      if (emitter.totalEmitTimes !== undefined && emitter.totalEmitTimes !== particleData.attr.totalEmitTimes) {\n        emitter.setTotalEmitTimes(particleData.attr.totalEmitTimes);\n      }\n    },\n    damping: () => {\n      if (emitter.damping !== particleData.attr.damping) {\n        emitter.damping = particleData.attr.damping;\n      }\n    },\n    life: () => {\n      if (emitter.life !== undefined && emitter.life !== particleData.attr.life) {\n        emitter.setLife(particleData.attr.life);\n      }\n    },\n    rateNumPan: () => {\n      if (emitter.rate.numPan.a !== particleData.attr.numPan.min || emitter.rate.numPan.b !== particleData.attr.numPan.max) {\n        emitter.rate.numPan.a = particleData.attr.numPan.min;\n        emitter.rate.numPan.b = particleData.attr.numPan.max;\n      }\n    },\n    rateTimePan: () => {\n      if (emitter.rate.timePan.a !== particleData.attr.timePan.a || emitter.rate.timePan.b !== particleData.attr.timePan.b) {\n        emitter.rate.timePan.a = particleData.attr.timePan.a;\n        emitter.rate.timePan.b = particleData.attr.timePan.b;\n      }\n    },\n    // initializer\n    mass: () => {\n      const initializer = emitter.initializers.find((item) => item.type === \"Mass\");\n      if (!initializer) {\n        emitter.addInitializer(\n          new Particle.Mass(\n            particleData.init.mass.min, \n            particleData.init.mass.max, \n            particleData.init.mass.center, \n            particleData.init.mass.isEnabled\n          )\n        );\n      } else {\n        initializer.isEnabled = particleData.init.mass.isEnabled;\n        initializer.massPan.a = particleData.init.mass.min;\n        initializer.massPan.b = particleData.init.mass.max;\n        initializer.massPan._center = particleData.init.mass.center;\n      }\n\n      // 需要注意的是，如果mass的isEnabled为false，则behaviour中的collision的useMass也会自动变为false\n      if (!particleData.init.mass.isEnabled && particleData.behaviour.collision.useMass) {\n        const behaviour = emitter.behaviours.find((item) => item.type === \"Collision\");\n        if (!behaviour) return;\n\n        particleData.behaviour.collision.useMass = false;\n        update(\"collision\");\n      }\n    },\n    initializerLife: () => {\n      const initializer = emitter.initializers.find((item) => item.type === \"Life\");\n      if (!initializer) {\n        emitter.addInitializer(new Particle.Life(particleData.init.life.min, particleData.init.life.max, particleData.init.life.center, particleData.init.life.isEnabled));\n      } else {\n        initializer.isEnabled = particleData.init.life.isEnabled;\n        initializer.lifePan.a = particleData.init.life.min;\n        initializer.lifePan.b = particleData.init.life.max;\n        initializer.lifePan._center = particleData.init.life.center;\n      }\n    },\n    radius: () => {\n      const initializer = emitter.initializers.find((item) => item.type === \"Radius\");\n      if (!initializer) {\n        emitter.addInitializer(new Particle.Radius(particleData.init.radius.width, particleData.init.radius.height, particleData.init.radius.center, particleData.init.radius.isEnabled));\n      } else {\n        initializer.isEnabled = particleData.init.radius.isEnabled;\n        initializer.radius.a = particleData.init.radius.width;\n        initializer.radius.b = particleData.init.radius.height;\n        initializer.radius._center = particleData.init.radius.center;\n      }\n    },\n    rotation: () => {\n      const initializer = emitter.initializers.find((item) => item.type === \"Rotation\");\n      if (!initializer) {\n        emitter.addInitializer(\n            new Particle.Rotation(\n                particleData.init.rotation.x,\n                particleData.init.rotation.y,\n                particleData.init.rotation.z,\n                particleData.init.rotation.useEmitterRotation,\n                particleData.init.rotation.isEnabled\n            )\n        );\n      } else {\n        initializer.isEnabled = particleData.init.rotation.isEnabled;\n        initializer.rotation.x = particleData.init.rotation.x;\n        initializer.rotation.y = particleData.init.rotation.y;\n        initializer.rotation.z = particleData.init.rotation.z;\n        initializer.useEmitterRotation = particleData.init.rotation.useEmitterRotation;\n      }\n    },\n    zone: () => {\n      const initializer = emitter.initializers.find((item) => item.type === \"Position\") as Particle.Position;\n      if (!initializer || initializer.zones[0].type !== particleData.init.position.zone?.type) {\n        let position = new Particle.Position();\n        if (!initializer) {\n          emitter.addInitializer(position);\n        } else {\n          position = initializer;\n          position.reset();\n        }\n\n        let zone;\n        const zoneData = particleData.init.position.zone;\n        switch (zoneData?.type) {\n          case 'PointZone':\n            zone = new Particle.PointZone(zoneData.x, zoneData.y, zoneData.z);\n            break;\n          case 'LineZone':\n            zone = new Particle.LineZone(\n                zoneData.x1,\n                zoneData.y1,\n                zoneData.z1,\n                zoneData.x2,\n                zoneData.y2,\n                zoneData.z2,\n            );\n            break;\n          case 'BoxZone':\n            zone = new Particle.BoxZone(\n                zoneData.x,\n                zoneData.y,\n                zoneData.z,\n                zoneData.width,\n                zoneData.height,\n                zoneData.depth,\n            );\n            break;\n          case 'SphereZone':\n            zone = new Particle.SphereZone(\n                zoneData.x,\n                zoneData.y,\n                zoneData.z,\n                zoneData.radius\n            );\n            break;\n        }\n        if (!zone) return;\n\n        position.addZone(zone);\n      } else {\n        initializer.isEnabled = particleData.init.position.isEnabled;\n        if (!particleData.init.position.zone) return;\n\n        Object.keys(particleData.init.position.zone).forEach(key => {\n          if (key === 'type') return;\n          // @ts-ignore\n          initializer.zones[0][key] = particleData.init.position.zone[key];\n        })\n      }\n    },\n    velocity: () => {\n      if (!particleData.init.velocity.velocity) return;\n\n      // const initializer = emitter.initializers.find((item) => item.type === particleData.init.velocity.velocity?.type);\n      // 速度初始化器同时只能存在一个，所以先移除掉之前的不同类型的\n      let initializer = emitter.initializers.find((item) => item.type.indexOf('Velocity') !== -1);\n      if (initializer && initializer.type !== particleData.init.velocity.velocity?.type) {\n        emitter.removeInitializer(initializer);\n        initializer = null;\n      }\n\n      if (!initializer) {\n        const velocity = particleData.init.velocity.velocity;\n        switch (velocity.type) {\n          case \"RadialVelocity\":\n            emitter.addInitializer(\n                new Particle.RadialVelocity(\n                    velocity.radius,\n                    new Particle.Vector3D(velocity.x, velocity.y, velocity.z),\n                    velocity.theta,\n                    particleData.init.velocity.isEnabled\n                )\n            );\n            break;\n          case \"PolarVelocity\":\n            emitter.addInitializer(\n                new Particle.PolarVelocity(\n                    new Particle.Polar3D(velocity.radius, velocity.theta * Math.PI / 180, velocity.phi * Math.PI / 180),\n                    velocity.tha,\n                    particleData.init.velocity.isEnabled\n                )\n            );\n            break;\n          case \"VectorVelocity\":\n            emitter.addInitializer(\n                new Particle.VectorVelocity(\n                    new Particle.Vector3D(velocity.x, velocity.y, velocity.z),\n                    velocity.theta,\n                    particleData.init.velocity.isEnabled\n                )\n            );\n            break;\n        }\n      } else {\n        initializer.isEnabled = particleData.init.velocity.isEnabled;\n        const velocity = particleData.init.velocity.velocity;\n        switch (velocity.type) {\n          case \"RadialVelocity\":\n            initializer.radiusPan.a = initializer.radiusPan.b = velocity.radius;\n            initializer.dir.x = velocity.x;\n            initializer.dir.y = velocity.y;\n            initializer.dir.z = velocity.z;\n            initializer.tha = velocity.theta * Math.PI / 180;\n            break;\n          case \"PolarVelocity\":\n            const dirVec = new Particle.Polar3D(velocity.radius, velocity.theta * Math.PI / 180, velocity.phi * Math.PI / 180).toVector3D();\n\n            initializer.dirVec.x = dirVec.x;\n            initializer.dirVec.y = dirVec.y;\n            initializer.dirVec.z = dirVec.z;\n            initializer.tha = velocity.tha * Math.PI / 180;\n            break;\n          case \"VectorVelocity\":\n            initializer.dir.x = velocity.x;\n            initializer.dir.y = velocity.y;\n            initializer.dir.z = velocity.z;\n            initializer.tha = velocity.theta * Math.PI / 180;\n            break;\n        }\n      }\n    },\n    // behaviour\n    color: () => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"Color\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n            new Particle.Color(\n                particleData.behaviour.color.colorA,\n                particleData.behaviour.color.colorB,\n                particleData.behaviour.color.life,\n                Particle.ease[particleData.behaviour.color.easing],\n                particleData.behaviour.color.isEnabled\n            )\n        );\n      } else {\n        behaviour.isEnabled = particleData.behaviour.color.isEnabled;\n        behaviour.colorA.colors[0] = particleData.behaviour.color.colorA;\n        behaviour.colorB.colors[0] = particleData.behaviour.color.colorB;\n        behaviour._life = particleData.behaviour.color.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.color.easing];\n      }\n    },\n    scale: () => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"Scale\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n            new Particle.Scale(\n                particleData.behaviour.scale.scaleA,\n                particleData.behaviour.scale.scaleB,\n                particleData.behaviour.scale.life,\n                Particle.ease[particleData.behaviour.scale.easing],\n                particleData.behaviour.scale.isEnabled\n            )\n        );\n      } else {\n        behaviour.isEnabled = particleData.behaviour.scale.isEnabled;\n        behaviour.scaleA.a = behaviour.scaleA.b = particleData.behaviour.scale.scaleA;\n        behaviour.scaleB.a = behaviour.scaleB.b = particleData.behaviour.scale.scaleB;\n        behaviour._life = particleData.behaviour.scale.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.scale.easing];\n      }\n    },\n    alpha: () => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"Alpha\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n            new Particle.Alpha(\n                particleData.behaviour.alpha.alphaA,\n                particleData.behaviour.alpha.alphaB,\n                particleData.behaviour.alpha.life,\n                Particle.ease[particleData.behaviour.alpha.easing],\n                particleData.behaviour.alpha.isEnabled\n            )\n        );\n      } else {\n        behaviour.isEnabled = particleData.behaviour.alpha.isEnabled;\n        behaviour.alphaA.a = behaviour.alphaA.b = particleData.behaviour.alpha.alphaA;\n        behaviour.alphaB.a = behaviour.alphaB.b = particleData.behaviour.alpha.alphaB;\n        behaviour._life = particleData.behaviour.alpha.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.alpha.easing];\n      }\n    },\n    force: () => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"Force\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n            new Particle.Force(\n                particleData.behaviour.force.fx,\n                particleData.behaviour.force.fy,\n                particleData.behaviour.force.fz,\n                particleData.behaviour.force.life,\n                Particle.ease[particleData.behaviour.force.easing],\n                particleData.behaviour.force.isEnabled\n            )\n        );\n      } else {\n        behaviour.isEnabled = particleData.behaviour.force.isEnabled;\n        behaviour.force.x = particleData.behaviour.force.fx * 100;\n        behaviour.force.y = particleData.behaviour.force.fy * 100;\n        behaviour.force.z = particleData.behaviour.force.fz * 100;\n        behaviour._life = particleData.behaviour.force.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.force.easing];\n      }\n    },\n    rotate:() => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"Rotate\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n            new Particle.Rotate(\n              particleData.behaviour.rotate.x, \n              particleData.behaviour.rotate.y, \n              particleData.behaviour.rotate.z, \n              particleData.behaviour.rotate.life, \n              Particle.ease[particleData.behaviour.rotate.easing],\n              particleData.behaviour.rotate.isEnabled\n            )\n        );\n      }else{\n        behaviour.isEnabled = particleData.behaviour.rotate.isEnabled;\n        behaviour.x.a = behaviour.x.b = particleData.behaviour.rotate.x * Math.PI / 180;\n        behaviour.y.a = behaviour.y.b = particleData.behaviour.rotate.y * Math.PI / 180;\n        behaviour.z.a = behaviour.z.b = particleData.behaviour.rotate.z * Math.PI / 180;\n        behaviour._life = particleData.behaviour.rotate.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.rotate.easing];\n      }\n    },\n    randomDrift: () => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"RandomDrift\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n          new Particle.RandomDrift(\n            particleData.behaviour.randomDrift.driftX,\n            particleData.behaviour.randomDrift.driftY,\n            particleData.behaviour.randomDrift.driftZ,\n            particleData.behaviour.randomDrift.delay,\n            particleData.behaviour.randomDrift.life,\n            Particle.ease[particleData.behaviour.randomDrift.easing],\n            particleData.behaviour.randomDrift.isEnabled\n          )\n        );\n      }else{\n        behaviour.isEnabled = particleData.behaviour.randomDrift.isEnabled;\n        behaviour.randomForce.x = particleData.behaviour.randomDrift.driftX * 100;\n        behaviour.randomForce.y = particleData.behaviour.randomDrift.driftY * 100;\n        behaviour.randomForce.z = particleData.behaviour.randomDrift.driftZ * 100;\n        behaviour.delayPan.a = behaviour.delayPan.b = particleData.behaviour.randomDrift.delay;\n        behaviour._life = particleData.behaviour.randomDrift.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.randomDrift.easing];\n      }\n    },        \n    spring: () => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"Spring\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n          new Particle.Spring(\n            particleData.behaviour.spring.x, \n            particleData.behaviour.spring.y, \n            particleData.behaviour.spring.z, \n            particleData.behaviour.spring.spring, \n            particleData.behaviour.spring.friction, \n            particleData.behaviour.spring.life, \n            Particle.ease[particleData.behaviour.spring.easing], \n            particleData.behaviour.spring.isEnabled\n          )\n        );\n      }else{\n        behaviour.isEnabled = particleData.behaviour.spring.isEnabled;\n        behaviour.pos.x = particleData.behaviour.spring.x;\n        behaviour.pos.y = particleData.behaviour.spring.y;\n        behaviour.pos.z = particleData.behaviour.spring.z;\n        behaviour.spring = particleData.behaviour.spring.spring;\n        behaviour.friction = particleData.behaviour.spring.friction;\n        behaviour._life = particleData.behaviour.spring.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.spring.easing];\n      }\n    },\n    attraction: () => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"Attraction\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n          new Particle.Attraction(\n            new Particle.Vector3D(\n              particleData.behaviour.attraction.x, \n              particleData.behaviour.attraction.y, \n              particleData.behaviour.attraction.z\n            ),\n            particleData.behaviour.attraction.force,\n            particleData.behaviour.attraction.radius,\n            particleData.behaviour.attraction.life,\n            Particle.ease[particleData.behaviour.attraction.easing],\n            particleData.behaviour.attraction.isEnabled\n          )\n        );\n      }else{\n        behaviour.isEnabled = particleData.behaviour.attraction.isEnabled;\n        behaviour.targetPosition.x = particleData.behaviour.attraction.x;\n        behaviour.targetPosition.y = particleData.behaviour.attraction.y;\n        behaviour.targetPosition.z = particleData.behaviour.attraction.z;\n        behaviour.force = particleData.behaviour.attraction.force * 100;\n        behaviour.radius = particleData.behaviour.attraction.radius;\n        behaviour._life = particleData.behaviour.attraction.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.attraction.easing];\n      }\n    },\n    collision: () => {\n      const behaviour = emitter.behaviours.find((item) => item.type === \"Collision\");\n      if (!behaviour) {\n        emitter.addBehaviour(\n          new Particle.Collision(\n            emitter, \n            particleData.behaviour.collision.useMass,\n             () => {}, \n             particleData.behaviour.collision.life, \n             Particle.ease[particleData.behaviour.collision.easing], \n             particleData.behaviour.collision.isEnabled\n          )\n        );\n      }else{\n        behaviour.isEnabled = particleData.behaviour.collision.isEnabled;\n        behaviour.useMass = particleData.behaviour.collision.useMass;\n        behaviour._life = particleData.behaviour.collision.life;\n        behaviour.easing = Particle.ease[particleData.behaviour.collision.easing];\n      }\n    }\n  }\n\n  call[method]();\n}\n</script>\n\n<template>\n  <n-tabs type=\"segment\" animated>\n    <n-tab-pane name=\"attribute\" display-directive=\"show:lazy\" :tab=\"t('layout.sider.particle.Attributes')\">\n      <Attributes :data=\"particleData.attr\" @update=\"update\" />\n    </n-tab-pane>\n\n    <n-tab-pane name=\"initializer\" display-directive=\"show:lazy\" :tab=\"t('layout.sider.particle.Initializers')\">\n      <Initializer :data=\"particleData.init\" @update=\"update\" />\n    </n-tab-pane>\n\n    <n-tab-pane name=\"behaviour\" display-directive=\"show:lazy\" :tab=\"t('layout.sider.particle.Behaviours')\">\n      <Behaviour :data=\"particleData.behaviour\" :hasMass=\"particleData.init.mass.isEnabled\" @update=\"update\" />\n    </n-tab-pane>\n  </n-tabs>\n</template>\n\n<style scoped lang=\"less\">\n.n-tabs {\n  height: 100% !important;\n\n  :deep(.n-tabs-pane-wrapper) {\n    height: calc(100% - 30px);\n    overflow-y: auto;\n  }\n\n  .n-tab-pane {\n    padding: 0.5rem 0 !important;\n\n    :deep(.particle-config-item) {\n      display: flex;\n      align-items: center;\n      padding: 0.3rem 0.3rem;\n      width: calc(100% - 0.6rem);\n\n      & > :first-child {\n        width: 35%;\n        text-align: left;\n        margin-right: 0.5rem;\n      }\n\n      & > :last-child {\n        width: calc(65% - 0.5rem);\n      }\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarRenderer.vue",
    "content": "<template>\n  <n-form label-placement=\"left\" :label-width=\"90\" label-align=\"left\" size=\"small\" class=\"px-2\">\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Antialias')\">\n      <n-checkbox v-model:checked=\"rendererConfig.antialias\"\n                  @update:checked=\"updateAntialias\"></n-checkbox>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Tone mapping')\">\n      <n-select v-model:value=\"rendererConfig.toneMapping\" :options=\"toneMappingOptions\"\n                :render-option=\"renderToneMappingOption\" @update:value=\"updateToneMapping\"/>\n      <EsInputNumber v-if=\"rendererConfig.toneMapping !== 0\"\n                     v-model:value=\"rendererConfig.toneMappingExposure\" :min=\"0.00\" size=\"tiny\"\n                     :decimal=\"2\"\n                     :show-button=\"false\" class=\"ml-1\" @change=\"updateToneMapping\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Frame rate limit')\">\n      <n-select v-model:value=\"rendererConfig.fps\" :options=\"fpsOptions\"\n                :render-option=\"renderFpsOption\" @update:value=\"updateFpsLimit\"/>\n    </n-form-item>\n  </n-form>\n\n  <n-divider class=\"!my-3\"/>\n\n  <n-collapse display-directive=\"show\" :default-expanded-names=\"['shadow','csm']\">\n    <template #arrow>\n      <n-icon>\n        <CaretForwardOutline/>\n      </n-icon>\n    </template>\n\n    <!--  阴影配置  -->\n    <n-collapse-item :title=\"t('layout.sider.rendererConfig.shadows')\" name=\"shadow\">\n      <n-form label-placement=\"left\" :label-width=\"90\" label-align=\"left\" size=\"small\" class=\"px-2\">\n        <n-form-item :label=\"t('other.Enable')\">\n          <n-checkbox v-model:checked=\"rendererConfig.shadow.enabled\"\n                      @update:checked=\"updateShadows\"/>\n        </n-form-item>\n\n        <n-form-item :label=\"t('layout.sider.rendererConfig.Type')\">\n          <n-select v-model:value=\"rendererConfig.shadow.type\" :options=\"shadowTypeOptions\"\n                    @update:value=\"updateShadows\"/>\n        </n-form-item>\n      </n-form>\n    </n-collapse-item>\n\n    <!--  全局光影：即CSM  -->\n    <n-collapse-item :title=\"t('layout.sider.rendererConfig.Global illumination')\" name=\"csm\">\n      <SidebarRendererCSM class=\"px-2\"/>\n    </n-collapse-item>\n  </n-collapse>\n</template>\n\n<script setup lang=\"ts\">\nimport {reactive, h, VNode, onMounted} from 'vue';\nimport {SelectOption, NTooltip} from 'naive-ui';\nimport {CaretForwardOutline} from \"@vicons/ionicons5\";\nimport {App,FPS_OPTIONS,Utils} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from '@/components/es/EsInputNumber.vue';\nimport SidebarRendererCSM from \"./renderer/Sidebar.Renderer.CSM.vue\"\n\nconst rendererConfig = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"renderer\"))));\n\n/* 渲染器设置项 */\n// 阴影选项\nconst shadowTypeOptions = [\n  {label: \"Basic\", value: 0},\n  {label: \"PCF\", value: 1},\n  {label: \"PCF Soft\", value: 2},\n  {label: \"VSM\", value: 3}\n];\n// 色调映射选项\nconst toneMappingOptions = [\n  {label: \"No\", value: 0},\n  {label: \"Linear\", value: 1},\n  {label: \"Reinhard\", value: 2},\n  {label: \"Cineon\", value: 3},\n  {label: \"ACESFilmic\", value: 4},\n  {label: \"AgX\", value: 6},\n  {label: \"Neutral\", value: 7},\n];\n// 帧率限制选项\nconst fpsOptions = [\n  {label: t(\"layout.sider.rendererConfig.Low FPS\"), value: FPS_OPTIONS.LOW},\n  {label: t(\"layout.sider.rendererConfig.Medium FPS\"), value: FPS_OPTIONS.MEDIUM},\n  {label: t(\"layout.sider.rendererConfig.High FPS\"), value: FPS_OPTIONS.HIGH},\n  {label: t(\"layout.sider.rendererConfig.Ultra high FPS\"), value: FPS_OPTIONS.ULTRA_HIGH},\n  {label: t(\"layout.sider.rendererConfig.Unlimited\"), value: FPS_OPTIONS.NO_UPPER_LIMIT},\n];\nconst renderToneMappingOption = ({node, option}: { node: VNode; option: SelectOption }) => {\n  return h(NTooltip, null, {\n    trigger: () => node,\n    default: () => option.label\n  })\n}\nconst renderFpsOption = ({node, option}: { node: VNode; option: SelectOption }) => {\n  return h(NTooltip, null, {\n    trigger: () => node,\n    default: () => option.value ? `${option.value} FPS` : option.label,\n  })\n}\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(rendererConfig, App.project.getKey(\"renderer\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction updateAntialias(){\n  App.project.setKey(\"renderer.antialias\",rendererConfig.antialias);\n}\n\nfunction updateShadows() {\n  App.project.setKey(\"renderer.shadow.enabled\",rendererConfig.shadow.enabled);\n  App.project.setKey(\"renderer.shadow.type\",rendererConfig.shadow.type);\n}\n\nfunction updateToneMapping() {\n  App.project.setKey(\"renderer.toneMapping\",rendererConfig.toneMapping);\n  App.project.setKey(\"renderer.toneMappingExposure\",rendererConfig.toneMappingExposure);\n}\n\nfunction updateFpsLimit(value:number){\n  App.FPS = value;\n}\n</script>\n\n<style scoped lang=\"less\"></style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarScene.vue",
    "content": "<template>\n    <n-collapse display-directive=\"show\" :default-expanded-names=\"['information', 'scene']\">\n        <template #arrow>\n            <n-icon>\n                <CaretForwardOutline />\n            </n-icon>\n        </template>\n        <!--  工程信息  -->\n        <n-collapse-item :title=\"t('layout.sider.sceneConfig.Project information')\" name=\"information\">\n            <SidebarSceneProjectSetting class=\"px-2\" />\n        </n-collapse-item>\n        <!--  场景配置  -->\n        <n-collapse-item :title=\"t('layout.sider.Scene config')\" name=\"scene\">\n            <SidebarSceneSetting class=\"px-2\" />\n        </n-collapse-item>\n    </n-collapse>\n</template>\n\n<script setup lang=\"ts\">\nimport { NCollapse, NCollapseItem } from \"naive-ui\";\nimport { CaretForwardOutline } from \"@vicons/ionicons5\";\nimport { t } from \"@/language\";\nimport SidebarSceneProjectSetting from \"./scene/Sidebar.Scene.ProjectSetting.vue\";\nimport SidebarSceneSetting from \"./scene/Sidebar.Scene.Setting.vue\";\n</script>\n\n<style scoped lang=\"less\"></style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarScript.vue",
    "content": "<template>\n  <EsDocument url=\"http://editor-doc.astraljs.com/guide/component/h4v1bkyh/\"/>\n\n  <div v-if=\"isSelectObject3D\">\n    <n-list hoverable clickable>\n      <n-list-item v-for=\"(script, index) in scripts\" :key=\"index\">\n        <EsInput size=\"small\" defaultNoBorder v-model:value=\"script.name\"\n                 @change=\"(n) => handleNameChange(script, n)\"/>\n        <n-button size=\"small\" class=\"ml-5px\" @click=\"handleEdit(script)\">\n          {{ t('layout.sider.script.Edit') }}\n        </n-button>\n        <n-button size=\"small\" class=\"ml-5px\" @click=\"handleRemove(script)\">\n          {{ t('layout.sider.script.Remove') }}\n        </n-button>\n      </n-list-item>\n    </n-list>\n\n    <div class=\"w-full text-center mt-2\">\n      <n-button size=\"small\" type=\"primary\" @click=\"handleNew\">{{ t('layout.sider.script.New') }}</n-button>\n    </div>\n  </div>\n\n  <n-result v-else status=\"418\" title=\"Empty\" :description=\"t('prompt[\\'No object selected.\\']')\"/>\n</template>\n\n<script setup lang=\"ts\">\nimport {onBeforeUnmount, onMounted, ref, toRaw, h} from \"vue\";\nimport {NInput} from \"naive-ui\";\nimport {t} from \"@/language\";\nimport {App, Hooks, SetScriptValueCommand, RemoveScriptCommand, AddScriptCommand,Script as AstralScript} from \"@astral3d/engine\";\nimport EsInput from \"@/components/es/EsInput.vue\";\nimport EsDocument from \"@/components/es/EsDocument.vue\";\n\nconst isSelectObject3D = ref(false);\nconst scripts = ref<IScript.IStruct[]>([]);\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", objectSelected);\n  Hooks.useAddSignal(\"scriptAdded\", updateUI);\n  Hooks.useAddSignal(\"scriptRemoved\", updateUI);\n  Hooks.useAddSignal(\"scriptChanged\", updateUI);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", objectSelected);\n  Hooks.useRemoveSignal(\"scriptAdded\", updateUI);\n  Hooks.useRemoveSignal(\"scriptRemoved\", updateUI);\n  Hooks.useRemoveSignal(\"scriptChanged\", updateUI);\n})\n\nfunction objectSelected(object) {\n  if (object !== null && App.camera !== object) {\n    isSelectObject3D.value = true;\n    updateUI();\n  } else {\n    isSelectObject3D.value = false;\n  }\n}\n\nfunction updateUI() {\n  const object = App.selected;\n\n  if (object === null) return;\n\n  // 直接使用scripts.value = App.scripts[object.uuid]会导致数据更新不及时，所以这里重新获取数据\n  scripts.value = [];\n  App.scripts[object.uuid]?.forEach((sc: IScript.IStruct) => {\n    scripts.value.push(sc);\n  });\n}\n\nfunction handleNew() {\n  const v = ref(\"\");\n  const status = ref(\"\");\n\n  window.$dialog.warning({\n    title: t(\"layout.sider.script['Please enter the script name']\"),\n    content: () => h(NInput, {\n      modelValue: v.value,\n      placeholder: \"\",\n      clearable: true,\n      size: \"small\",\n      status: status.value,\n      onUpdateValue: (n: string) => {\n        v.value = n;\n        status.value = !v.value ? \"error\" : \"\";\n      },\n      onBlur: () => {\n        status.value = !v.value ? \"error\" : \"\";\n      }\n    }),\n    positiveText: t('other.Ok'),\n    negativeText: t('other.Cancel'),\n    onPositiveClick: () => {\n      if (!v.value || !App.selected) return false;\n\n      // 检查名称是否重复\n      if (App.scripts[App.selected.uuid]?.find((s) => s.name === v.value)) {\n        window.$message?.error(t(\"layout.sider.script['The script name already exists']\"));\n\n        return false;\n      }\n\n      const script = {name: v.value, source: AstralScript.Source};\n      App.execute(new AddScriptCommand(App.selected, script));\n    },\n  })\n}\n\nfunction handleNameChange(script: IScript.IStruct, name: string) {\n  if(!App.selected) return;\n\n  App.execute(new SetScriptValueCommand(App.selected, script, 'name', name));\n}\n\nfunction handleEdit(script: IScript.IStruct) {\n  Hooks.useDispatchSignal(\"editScript\", App.selected, toRaw(script));\n}\n\nfunction handleRemove(script: IScript.IStruct) {\n  window.$dialog.warning({\n    title: t(\"other.warning\"),\n    content: t(\"core['Any unsaved data will be lost. Are you sure?']\"),\n    positiveText: t('other.Ok'),\n    negativeText: t('other.Cancel'),\n    onPositiveClick: () => {\n      if(!App.selected) return;\n\n      App.execute(new RemoveScriptCommand(App.selected, toRaw(script)));\n    },\n  });\n}\n</script>\n\n<style scoped lang=\"less\">\n.n-list {\n  &-item {\n    padding: 0 !important;\n\n    :deep(&__main) {\n      display: flex;\n      align-items: center;\n      padding: 5px 0;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/SidebarWeather.vue",
    "content": "<script setup lang=\"ts\">\nimport {CaretForwardOutline} from \"@vicons/ionicons5\";\nimport {t} from \"@/language\";\nimport Fog from \"./weather/Sidebar.Weather.Fog.vue\";\nimport Rain from \"./weather/Sidebar.Weather.Rain.vue\";\nimport Snow from \"./weather/Sidebar.Weather.Snow.vue\";\n\n</script>\n\n<template>\n    <n-collapse display-directive=\"show\" :default-expanded-names=\"['fog', 'rain','snow']\">\n        <template #arrow>\n            <n-icon>\n                <CaretForwardOutline />\n            </n-icon>\n        </template>\n\n        <!--  fog  -->\n        <n-collapse-item :title=\"t('layout.sider.weather.Fog')\" name=\"fog\">\n            <Fog />\n        </n-collapse-item>\n\n        <!--  Rain  -->\n        <n-collapse-item :title=\"t('layout.sider.weather.Rain')\" name=\"rain\">\n            <Rain />\n        </n-collapse-item>\n\n        <!--  Snow  -->\n        <n-collapse-item :title=\"t('layout.sider.weather.Snow')\" name=\"snow\">\n            <Snow />\n        </n-collapse-item>\n    </n-collapse>\n</template>\n\n<style lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/billboard/Sidebar.Billboard.Image.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed} from \"vue\";\nimport {t} from \"@/language\";\nimport {getDefaultBillboardOptions} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  data: IBillboard.options['image']\n}>(), {\n  data: () => getDefaultBillboardOptions().image\n})\n\nconst emits = defineEmits(['update']);\n\nconst disabled = computed(() => !props.data.visible);\n\nfunction update(key: string){\n  emits('update', \"image\", key);\n}\n</script>\n\n<template>\n  <!-- 是否启用 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n\n    <n-checkbox size=\"small\" v-model:checked=\"data.visible\" @update:checked=\"update('visible')\" />\n  </div>\n\n  <!-- 是否置顶 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Set top`) }}</span>\n\n    <n-checkbox size=\"small\" v-model:checked=\"data.top\" :disabled=\"disabled\" @update:checked=\"update('top')\" />\n  </div>\n\n  <!-- 宽度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Width`) }}</span>\n    <EsInputNumber v-model:value=\"data.width\" :disabled=\"disabled\" size=\"small\"\n                   :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"0\" @change=\"update('width')\" />\n  </div>\n\n  <!-- 高度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Height`) }}</span>\n    <EsInputNumber v-model:value=\"data.height\" :disabled=\"disabled\" size=\"small\"\n                   :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"0\" @change=\"update('height')\" />\n  </div>\n\n  <!-- 旋转 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.particle.Rotate`) }}</span>\n    <n-slider v-model:value=\"data.rotate\" :step=\"1\" :min=\"0\" :max=\"360\" :disabled=\"disabled\" @update:value=\"update('rotate')\" />\n  </div>\n\n  <!-- 间距 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Margin`) }}</span>\n    <EsInputNumber v-model:value=\"data.margin\" :disabled=\"disabled\" size=\"small\"\n                   :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"0\" @change=\"update('margin')\" />\n  </div>\n\n  <!-- 图片位置 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Position`) }}</span>\n    <n-select v-model:value=\"data.position\" size=\"small\" :options=\"[\n        {label: t('layout.sider.billboard.Left'), value: 'left'},\n        {label: t('layout.sider.billboard.Right'), value: 'right'},\n        {label: t('layout.sider.billboard.Top'), value: 'top'},\n        {label: t('layout.sider.billboard.Bottom'), value: 'bottom'},\n        {label: t('layout.sider.billboard.Center'), value: 'center'}\n    ]\" :disabled=\"disabled\" @update:value=\"update('position')\" />\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/billboard/Sidebar.Billboard.Text.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed} from \"vue\";\nimport {t} from \"@/language\";\nimport {getDefaultBillboardOptions} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  data: IBillboard.options['text']\n}>(), {\n  data: () => getDefaultBillboardOptions().text\n})\n\nconst emits = defineEmits(['update']);\n\nconst disabled = computed(() => !props.data.visible);\nconst isItalic = computed(() => props.data.fontStyle !== \"normal\");\n\nfunction handleUpdateItalic(value: boolean){\n  props.data.fontStyle = value ? \"italic\" : \"normal\";\n  update(\"fontStyle\");\n}\n\nfunction update(key: string){\n  emits('update', \"text\", key);\n}\n</script>\n\n<template>\n  <!-- 是否启用 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n\n    <n-checkbox size=\"small\" v-model:checked=\"data.visible\" @update:checked=\"update('visible')\" />\n  </div>\n\n  <!-- 文字内容 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Content`) }}</span>\n\n    <n-input size=\"small\" type=\"textarea\" v-model:value=\"data.value\" :disabled=\"disabled\" placeholder=\"\" @update:value=\"update('value')\" />\n  </div>\n\n  <!-- 字体大小 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Size`) }}</span>\n    <EsInputNumber v-model:value=\"data.fontSize\" :disabled=\"disabled\" size=\"small\"\n                   :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"0\" @change=\"update('fontSize')\" />\n  </div>\n\n  <!-- 颜色 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Color`) }}</span>\n    <n-color-picker v-model:value=\"data.fontColor\" :disabled=\"disabled\" :show-alpha=\"false\" size=\"small\" @update:value=\"update('fontColor')\" />\n  </div>\n\n  <!-- 字体粗细 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Weight`) }}</span>\n    <n-select v-model:value=\"data.fontWeight\" size=\"small\" :options=\"[\n        {label: 100, value: 100},\n        {label: 200, value: 200},\n        {label: 300, value: 300},\n        {label: 400, value: 400},\n        {label: 500, value: 500},\n        {label: 600, value: 600},\n        {label: 700, value: 700},\n        {label: 800, value: 800},\n        {label: 900, value: 900}\n    ]\" :disabled=\"disabled\" @update:value=\"update('fontWeight')\" />\n  </div>\n\n  <!-- 字体倾斜 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Italic`) }}</span>\n\n    <n-checkbox size=\"small\" v-model:checked=\"isItalic\" :disabled=\"disabled\" @update:checked=\"handleUpdateItalic\" />\n  </div>\n\n  <!-- 行间距 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Line gap`) }}</span>\n    <EsInputNumber v-model:value=\"data.lineGap\" :disabled=\"disabled\" size=\"small\"\n                   :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"0\" @change=\"update('lineGap')\" />\n  </div>\n\n  <!-- 内边距 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Padding`) }}</span>\n    <EsInputNumber v-model:value=\"data.padding\" :disabled=\"disabled\" size=\"small\"\n                   :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"0\" @change=\"update('padding')\" />\n  </div>\n\n  <!-- 水平对齐 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Align`) }}</span>\n    <n-select v-model:value=\"data.align\" size=\"small\" :options=\"[\n        {label: t('layout.sider.billboard.Left'), value: 'left'},\n        {label: t('layout.sider.billboard.Right'), value: 'right'},\n        {label: t('layout.sider.billboard.Center'), value: 'center'}\n    ]\" :disabled=\"disabled\" @update:value=\"update('align')\" />\n  </div>\n\n  <!-- 垂直对齐 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Vertical align`) }}</span>\n    <n-select v-model:value=\"data.baseline\" size=\"small\" :options=\"[\n        {label: 'top', value: 'top'},\n        {label: 'middle', value: 'middle'},\n        {label: 'bottom', value: 'bottom'},\n        {label: 'alphabetic', value: 'alphabetic'},\n        {label: 'hanging', value: 'hanging'},\n        {label: 'ideographic', value: 'ideographic'},\n    ]\" :disabled=\"disabled\" @update:value=\"update('baseline')\" />\n  </div>\n\n  <!-- 描边宽度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Stroke width`) }}</span>\n    <EsInputNumber v-model:value=\"data.strokeWidth\" :disabled=\"disabled\" size=\"small\"\n                   :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"0\" @change=\"update('strokeWidth')\" />\n  </div>\n\n  <!-- 描边颜色 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Stroke color`) }}</span>\n    <n-color-picker v-model:value=\"data.strokeColor\" :disabled=\"disabled\" :show-alpha=\"false\" size=\"small\" @update:value=\"update('strokeColor')\" />\n  </div>\n\n  <!-- 背景填充 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Fill`) }}</span>\n    <n-checkbox size=\"small\" v-model:checked=\"data.fill\" :disabled=\"disabled\" @update:checked=\"update('fill')\" />\n  </div>\n\n  <!-- 填充颜色 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.billboard.Fill color`) }}</span>\n    <n-color-picker v-model:value=\"data.fillColor\" :disabled=\"disabled || !data.fill\" :show-alpha=\"false\" size=\"small\" @update:value=\"update('fillColor')\" />\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Afterimage.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  effectEnabled:boolean\n}>(),{\n  effectEnabled:false\n})\n\nconst afterimage = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"effect.Afterimage\"))));\nconst disabled = computed(() => !props.effectEnabled || !afterimage.enabled);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(afterimage, App.project.getKey(\"effect.Afterimage\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleAfterimageConfigChange(){\n  App.project.setKey(`effect.Afterimage`, toRaw(afterimage));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"afterimage.enabled\" :disabled=\"!effectEnabled\" @update:checked=\"handleAfterimageConfigChange\"/>\n    </div>\n  </div>\n\n  <!-- 衰减 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Damp`) }}</span>\n    <div>\n      <n-slider v-model:value=\"afterimage.damp\" :step=\"0.001\" :min=\"0.000\" :max=\"1.000\" :disabled=\"disabled\" @update:value=\"handleAfterimageConfigChange\" />\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Bokeh.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  effectEnabled:boolean\n}>(),{\n  effectEnabled:false\n})\n\nconst bokeh = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"effect.Bokeh\"))));\nconst disabled = computed(() => !props.effectEnabled || !bokeh.enabled);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(bokeh, App.project.getKey(\"effect.Bokeh\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleBokehConfigChange(){\n  App.project.setKey(`effect.Bokeh`, toRaw(bokeh));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"bokeh.enabled\" :disabled=\"!effectEnabled\" @update:checked=\"handleBokehConfigChange\"/>\n    </div>\n  </div>\n\n  <!-- 焦距 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Focus`) }}</span>\n    <div>\n      <n-slider v-model:value=\"bokeh.focus\" :step=\"10\" :min=\"10\" :max=\"3000\" :disabled=\"disabled\" @update:value=\"handleBokehConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 孔径 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Aperture`) }}</span>\n    <div>\n      <n-slider v-model:value=\"bokeh.aperture\" :step=\"0.000001\" :min=\"0\" :max=\"0.0001\" :disabled=\"disabled\"\n                @update:value=\"handleBokehConfigChange\" :format-tooltip=\"(value: number) => `${value * 10000}`\" />\n    </div>\n  </div>\n\n  <!-- 最大模糊 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.MaxBlur`) }}</span>\n    <div>\n      <n-slider v-model:value=\"bokeh.maxblur\" :step=\"0.001\" :min=\"0.0\" :max=\"0.01\" :disabled=\"disabled\" @update:value=\"handleBokehConfigChange\" />\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.FXAA.vue",
    "content": "<script setup lang=\"ts\">\nimport {onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nwithDefaults(defineProps<{\n  effectEnabled:boolean\n}>(),{\n  effectEnabled:false\n})\n\nconst faxx = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"effect.FXAA\"))));\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(faxx, App.project.getKey(\"effect.FXAA\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleFXAAConfigChange(){\n  App.project.setKey(`effect.FXAA`, toRaw(faxx));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"faxx.enabled\" :disabled=\"!effectEnabled\" @update:checked=\"handleFXAAConfigChange\"/>\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Halftone.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  effectEnabled:boolean\n}>(),{\n  effectEnabled:false\n})\n\nconst halftone = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"effect.Halftone\"))));\nconst disabled = computed(() => !props.effectEnabled || !halftone.enabled);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(halftone, App.project.getKey(\"effect.Halftone\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleHalftoneConfigChange(){\n  App.project.setKey(`effect.Halftone`, toRaw(halftone));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"halftone.enabled\" :disabled=\"!effectEnabled\" @update:checked=\"handleHalftoneConfigChange\"/>\n    </div>\n  </div>\n\n  <!-- 形状：点，椭圆，线，正方形 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Shape`) }}</span>\n    <div>\n      <n-select v-model:value=\"halftone.shape\" :options=\"[\n          {label:t(`layout.sider.postProcessing.Dot`),value: 1},\n          {label:t(`layout.sider.postProcessing.Ellipse`),value: 2},\n          {label:t(`layout.sider.postProcessing.Line`),value: 3},\n          {label:t(`layout.sider.postProcessing.Square`),value: 4},\n      ]\"  :disabled=\"disabled\" @update:value=\"handleHalftoneConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 半径 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Radius`) }}</span>\n    <div>\n      <n-slider v-model:value=\"halftone.radius\" :step=\"0.01\" :min=\"1\" :max=\"25\" :disabled=\"disabled\" @update:value=\"handleHalftoneConfigChange\" />\n    </div>\n  </div>\n\n  <!-- R色旋转 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.RotateR`) }}</span>\n    <div>\n      <n-slider v-model:value=\"halftone.rotateR\" :step=\"0.01\" :min=\"0\" :max=\"90\" :disabled=\"disabled\" @update:value=\"handleHalftoneConfigChange\" />\n    </div>\n  </div>\n\n  <!-- G色旋转 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.RotateG`) }}</span>\n    <div>\n      <n-slider v-model:value=\"halftone.rotateG\" :step=\"0.01\" :min=\"0\" :max=\"90\" :disabled=\"disabled\" @update:value=\"handleHalftoneConfigChange\" />\n    </div>\n  </div>\n\n  <!-- B色旋转 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.RotateB`) }}</span>\n    <div>\n      <n-slider v-model:value=\"halftone.rotateB\" :step=\"0.01\" :min=\"0\" :max=\"90\" :disabled=\"disabled\" @update:value=\"handleHalftoneConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 散射 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Scatter`) }}</span>\n    <div>\n      <n-slider v-model:value=\"halftone.scatter\" :step=\"0.01\" :min=\"0\" :max=\"1\" :disabled=\"disabled\" @update:value=\"handleHalftoneConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 混合度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Blending`) }}</span>\n    <div>\n      <n-slider v-model:value=\"halftone.blending\" :step=\"0.01\" :min=\"0\" :max=\"1\" :disabled=\"disabled\" @update:value=\"handleHalftoneConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 混合模式：线性，相乘，相加，明亮，昏暗 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.BlendingMode`) }}</span>\n    <div>\n      <n-select v-model:value=\"halftone.blendingMode\" :options=\"[\n          {label:t(`layout.sider.postProcessing.Linear`),value: 1},\n          {label:t(`layout.sider.postProcessing.Multiply`),value: 2},\n          {label:t(`layout.sider.postProcessing.Add`),value: 3},\n          {label:t(`layout.sider.postProcessing.Lighter`),value: 4},\n          {label:t(`layout.sider.postProcessing.Darker`),value: 5},\n      ]\"  :disabled=\"disabled\" @update:value=\"handleHalftoneConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 灰度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Greyscale`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"halftone.greyscale\" :disabled=\"disabled\" @update:checked=\"handleHalftoneConfigChange\"/>\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.LUT.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils,LUTEffectMap} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  effectEnabled:boolean\n}>(),{\n  effectEnabled:false\n})\n\nconst lut = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"effect.LUT\"))));\nconst disabled = computed(() => !props.effectEnabled || !lut.enabled);\n\nconst lutOptions = Object.keys(LUTEffectMap).map(key => ({label:key, value:key}));\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(lut, App.project.getKey(\"effect.LUT\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleLUTConfigChange(){\n  App.project.setKey(`effect.LUT`, toRaw(lut));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"lut.enabled\" :disabled=\"!effectEnabled\" @update:checked=\"handleLUTConfigChange\"/>\n    </div>\n  </div>\n\n  <!-- LUT -->\n  <div class=\"sidebar-config-item\">\n    <span>LUT</span>\n    <div>\n      <n-select v-model:value=\"lut.lut\" :options=\"lutOptions\"  :disabled=\"disabled\" @update:value=\"handleLUTConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 强度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Intensity`) }}</span>\n    <div>\n      <n-slider v-model:value=\"lut.intensity\" :step=\"0.01\" :min=\"0.00\" :max=\"1.00\" :disabled=\"disabled\" @update:value=\"handleLUTConfigChange\" />\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Outline.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  effectEnabled:boolean\n}>(),{\n  effectEnabled:false\n})\n\nconst outline = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"effect.Outline\"))));\nconst disabled = computed(() => !props.effectEnabled || !outline.enabled);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(outline, App.project.getKey(\"effect.Outline\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleOutlineConfigChange(){\n  App.project.setKey(`effect.Outline`, toRaw(outline));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"outline.enabled\" :disabled=\"!effectEnabled\" @update:checked=\"handleOutlineConfigChange\"/>\n    </div>\n  </div>\n\n  <!-- 边缘强度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Edge Strength`) }}</span>\n    <div>\n      <n-slider v-model:value=\"outline.edgeStrength\" :step=\"0.01\" :min=\"0.01\" :max=\"10\" :disabled=\"disabled\" @update:value=\"handleOutlineConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 边缘发光 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Edge Glow`) }}</span>\n    <div>\n      <n-slider v-model:value=\"outline.edgeGlow\" :step=\"0.01\" :min=\"0\" :max=\"1\" :disabled=\"disabled\" @update:value=\"handleOutlineConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 边缘厚度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Edge Thickness`) }}</span>\n    <div>\n      <n-slider v-model:value=\"outline.edgeThickness\" :step=\"0.01\" :min=\"1\" :max=\"4\" :disabled=\"disabled\" @update:value=\"handleOutlineConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 闪烁频率 -->\n  <!--      <div class=\"sidebar-config-item\">-->\n  <!--        <span>{{ t(`layout.sider.postProcessing.Pulse Period`) }}</span>-->\n  <!--        <div>-->\n  <!--          <n-slider v-model:value=\"outline.pulsePeriod\" :step=\"0.01\" :min=\"0\" :max=\"5\" :disabled=\"disabled\" @update:value=\"handleOutlineConfigChange\" />-->\n  <!--        </div>-->\n  <!--      </div>-->\n\n  <!-- 可见边缘的颜色 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Visible Edge`) }}</span>\n    <div>\n      <n-color-picker :show-alpha=\"false\" v-model:value=\"outline.visibleEdgeColor\" :disabled=\"disabled\" @update:value=\"handleOutlineConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 不可见边缘的颜色 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Hidden Edge`) }}</span>\n    <div>\n      <n-color-picker :show-alpha=\"false\" v-model:value=\"outline.hiddenEdgeColor\" :disabled=\"disabled\" @update:value=\"handleOutlineConfigChange\" />\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Pixelate.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  effectEnabled:boolean\n}>(),{\n  effectEnabled:false\n})\n\nconst pixelate = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"effect.Pixelate\"))));\nconst disabled = computed(() => !props.effectEnabled || !pixelate.enabled);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(pixelate, App.project.getKey(\"effect.Pixelate\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handlePixelateConfigChange(){\n  App.project.setKey(`effect.Pixelate`, toRaw(pixelate));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"pixelate.enabled\" :disabled=\"!effectEnabled\" @update:checked=\"handlePixelateConfigChange\"/>\n    </div>\n  </div>\n\n  <!-- 像素大小 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.PixelSize`) }}</span>\n    <div>\n      <n-slider v-model:value=\"pixelate.pixelSize\" :step=\"1\" :min=\"1\" :max=\"16\" :disabled=\"disabled\" @update:value=\"handlePixelateConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 法向边缘强度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.NormalEdgeStrength`) }}</span>\n    <div>\n      <n-slider v-model:value=\"pixelate.normalEdgeStrength\" :step=\"0.05\" :min=\"0\" :max=\"2\" :disabled=\"disabled\" @update:value=\"handlePixelateConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 深度边缘强度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.DepthEdgeStrength`) }}</span>\n    <div>\n      <n-slider v-model:value=\"pixelate.depthEdgeStrength\" :step=\"0.05\" :min=\"0\" :max=\"1\" :disabled=\"disabled\" @update:value=\"handlePixelateConfigChange\" />\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.UnrealBloom.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst props = withDefaults(defineProps<{\n  effectEnabled:boolean\n}>(),{\n  effectEnabled:false\n})\n\nconst unrealBloom = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"effect.UnrealBloom\"))));\nconst disabled = computed(() => !props.effectEnabled || !unrealBloom.enabled);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(unrealBloom, App.project.getKey(\"effect.UnrealBloom\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleUnrealBloomConfigChange(){\n  App.project.setKey(`effect.UnrealBloom`, toRaw(unrealBloom));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"unrealBloom.enabled\" :disabled=\"!effectEnabled\" @update:checked=\"handleUnrealBloomConfigChange\"/>\n    </div>\n  </div>\n\n  <!-- 光晕半径 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Radius`) }}</span>\n    <div>\n      <n-slider v-model:value=\"unrealBloom.radius\" :step=\"0.01\" :min=\"0.00\" :max=\"1.00\" :disabled=\"disabled\" @update:value=\"handleUnrealBloomConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 光晕阈值 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Threshold`) }}</span>\n    <div>\n      <n-slider v-model:value=\"unrealBloom.threshold\" :step=\"0.01\" :min=\"0.00\" :max=\"1.00\" :disabled=\"disabled\" @update:value=\"handleUnrealBloomConfigChange\" />\n    </div>\n  </div>\n\n  <!-- 光晕强度 -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.postProcessing.Strength`) }}</span>\n    <div>\n      <n-slider v-model:value=\"unrealBloom.strength\" :step=\"0.01\" :min=\"0.00\" :max=\"3.00\" :disabled=\"disabled\" @update:value=\"handleUnrealBloomConfigChange\" />\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.BoxGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {BoxGeometry} from \"three\";\nimport {App,SetGeometryCommand} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  width: 0,\n  height: 0,\n  depth: 0,\n  widthSegments: 0,\n  heightSegments: 0,\n  depthSegments: 0\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new BoxGeometry(\n      objectData.width,\n      objectData.height,\n      objectData.depth,\n      objectData.widthSegments,\n      objectData.heightSegments,\n      objectData.depthSegments\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  width  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Width\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.width\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  height  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Height\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.height\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  depth  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Depth\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.depth\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  widthSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Width segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.widthSegments\" class=\"!w-90px\" size=\"small\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  heightSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Height segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.heightSegments\" class=\"!w-90px\" size=\"small\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  depthSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Depth segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.depthSegments\" class=\"!w-90px\" size=\"small\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.BufferGeometry.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, reactive, onMounted, onBeforeUnmount} from \"vue\";\nimport {Hooks} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\n\nconst isBufferGeometry = ref(false);\nconst hasMorphTargets = ref(false);\nconst objectData = reactive<any>({\n  index: null,\n  attributes: {},\n  morphAttributes: {},\n  morphTargetsRelative: false\n})\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", updateRows)\n  Hooks.useAddSignal(\"geometryChanged\", updateRows)\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", updateRows)\n  Hooks.useRemoveSignal(\"geometryChanged\", updateRows)\n})\n\nasync function updateRows(object) {\n  if (object === null || object === undefined) return;\n\n  const geometry = object.geometry;\n  if (geometry && geometry.isBufferGeometry) {\n    isBufferGeometry.value = true;\n\n    const index = geometry.index;\n    if (index !== null) {\n      objectData.index = (index.count).format();\n    }\n\n    objectData.attributes = geometry.attributes;\n\n    // morph targets\n    objectData.morphAttributes = geometry.morphAttributes;\n    hasMorphTargets.value = Object.keys(objectData.morphAttributes).length > 0;\n\n    // morph relative\n    objectData.morphTargetsRelative = geometry.morphTargetsRelative;\n  } else {\n    isBufferGeometry.value = false;\n  }\n}\n</script>\n\n<template>\n  <div v-if=\"isBufferGeometry\">\n    <n-divider/>\n\n    <!-- attributes -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.geometry.attributes\") }}</span>\n      <div>\n        <div v-if=\"objectData.index !== null\" class=\"flex justify-between pr-6\">\n          <span>{{ t(\"layout.sider.geometry.index\") }}</span>\n          <span>{{ objectData.index }}</span>\n        </div>\n        <div v-for=\"name in Object.keys(objectData.attributes)\" :key=\"name\" class=\"flex justify-between pr-6\">\n          <span>{{ name }}</span>\n          <span>{{ `${(objectData.attributes[name].count).format()}(${objectData.attributes[name].itemSize})` }}</span>\n        </div>\n      </div>\n    </div>\n    <!-- morph attributes -->\n    <div class=\"sider-scene-geometry-item\" v-if=\"hasMorphTargets\">\n      <span>Morph Attributes</span>\n      <div>\n        <div v-for=\"name in Object.keys(objectData.morphAttributes)\" :key=\"name\">\n          <span>{{ name }}</span>\n          <span>{{ (objectData.morphAttributes[name].length).format() }}</span>\n        </div>\n      </div>\n    </div>\n    <!-- morph relative -->\n    <div class=\"sider-scene-geometry-item\" v-if=\"hasMorphTargets\">\n      <span>Morph Relative</span>\n      <div>\n        <n-checkbox v-model:checked=\"objectData.morphTargetsRelative\" disabled/>\n      </div>\n    </div>\n  </div>\n</template>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.CapsuleGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {CapsuleGeometry} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  length: 1.00,\n  capSegments:4.00,\n  radialSegments:8,\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new CapsuleGeometry(\n      objectData.radius,\n      objectData.length,\n      objectData.capSegments,\n      objectData.radialSegments\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  length  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Length\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.length\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  Cap Seg  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Cap segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.capSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  Radial Seg  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Radial segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radialSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.CircleGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {MathUtils,CircleGeometry} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  segments: 32,\n  thetaStart: 0.00,\n  thetaLength: 360.00,\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n\n  objectData.radius = parameters.radius;\n  objectData.segments = parameters.segments;\n  objectData.thetaStart = parameters.thetaStart * MathUtils.RAD2DEG;\n  objectData.thetaLength = parameters.thetaLength * MathUtils.RAD2DEG;\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new CircleGeometry(\n      objectData.radius,\n      objectData.segments,\n      objectData.thetaStart * MathUtils.DEG2RAD,\n      objectData.thetaLength * MathUtils.DEG2RAD\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  segments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Segments\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.segments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  theta start  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Theta start']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.thetaStart\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  theta length  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Theta length']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.thetaLength\" class=\"!w-90px\" size=\"small\" :decimal=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.CylinderGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {CylinderGeometry} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radiusTop: 1.00,\n  radiusBottom:1.00,\n  height:1.00,\n  radialSegments:32,\n  heightSegments:1,\n  openEnded:false\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new CylinderGeometry(\n      objectData.radiusTop,\n      objectData.radiusBottom,\n      objectData.height,\n      objectData.radialSegments,\n      objectData.heightSegments,\n      objectData.openEnded\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radiusTop  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Radius top']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radiusTop\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  radiusBottom  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Radius bottom']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radiusBottom\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  height  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Height\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.height\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  radialSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Radial segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radialSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  heightSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Height segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.heightSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  openEnded  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Open ended']\") }}</span>\n\n      <n-checkbox size=\"small\" v-model:checked=\"objectData.openEnded\" @update:checked=\"update\" />\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.DodecahedronGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {DodecahedronGeometry} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  detail: 0,\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new DodecahedronGeometry(\n      objectData.radius,\n      objectData.detail\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\" :min=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  detail  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Facet segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.detail\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.ExtrudeGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {ShapeGeometry,ExtrudeGeometry} from 'three';\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet options = reactive({\n  curveSegments: 12,\n  steps:1,\n  depth:100,\n  bevelEnabled:true,\n  bevelThickness:6,\n  bevelSize:4,\n  bevelOffset: 0,\n  bevelSegments:3\n});\nlet shapes;\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  shapes = parameters.shapes;\n  options = parameters.options;\n  options.curveSegments = options.curveSegments != undefined ? options.curveSegments : 12;\n  options.steps = options.steps != undefined ? options.steps : 1;\n  options.depth = options.depth != undefined ? options.depth : 100;\n  options.bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 6;\n  options.bevelSize = options.bevelSize !== undefined ? options.bevelSize : 4;\n  options.bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n  options.bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n})\n\nfunction toShape(){\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new ShapeGeometry(\n      shapes, options.curveSegments\n  )))\n}\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new ExtrudeGeometry(\n      shapes,\n      {\n        curveSegments: options.curveSegments,\n        steps: options.steps,\n        depth: options.depth,\n        bevelEnabled: options.bevelEnabled,\n        bevelThickness: options.bevelThickness,\n        bevelSize: options.bevelSize !== undefined ? options.bevelSize : options.bevelSize,\n        bevelOffset: options.bevelOffset !== undefined ? options.bevelOffset : options.bevelOffset,\n        bevelSegments: options.bevelSegments !== undefined ? options.bevelSegments : options.bevelSegments\n      }\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  curveSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Curve Segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"options.curveSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  steps  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Steps\") }}</span>\n\n      <EsInputNumber v-model:value=\"options.steps\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  depth  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Depth\") }}</span>\n\n      <EsInputNumber v-model:value=\"options.depth\" class=\"!w-90px\" size=\"small\" :decimal=\"2\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  enabled  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Enabled bevel']\") }}</span>\n\n      <n-checkbox size=\"small\" v-model:checked=\"options.bevelEnabled\" @update:checked=\"update\" />\n    </div>\n\n    <template v-if=\"options.bevelEnabled\">\n      <!--  thickness  -->\n      <div class=\"sider-scene-geometry-item\">\n        <span>{{ t(\"layout.sider.scene['Bevel thickness']\") }}</span>\n\n        <EsInputNumber v-model:value=\"options.bevelThickness\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                       :show-button=\"false\" @change=\"update\"/>\n      </div>\n\n      <!--  size  -->\n      <div class=\"sider-scene-geometry-item\">\n        <span>{{ t(\"layout.sider.scene['Bevel size']\") }}</span>\n\n        <EsInputNumber v-model:value=\"options.bevelSize\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                       :show-button=\"false\" @change=\"update\"/>\n      </div>\n\n      <!--  offset  -->\n      <div class=\"sider-scene-geometry-item\">\n        <span>{{ t(\"layout.sider.scene['Bevel offset']\") }}</span>\n\n        <EsInputNumber v-model:value=\"options.bevelOffset\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                       :show-button=\"false\" @change=\"update\"/>\n      </div>\n\n      <!--  segments  -->\n      <div class=\"sider-scene-geometry-item\">\n        <span>{{ t(\"layout.sider.scene['Bevel segments']\") }}</span>\n\n        <EsInputNumber v-model:value=\"options.bevelSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"2\" :min=\"0\"\n                       :show-button=\"false\" @change=\"update\"/>\n      </div>\n\n      <!--  Convert to Shape  -->\n      <div class=\"sider-scene-geometry-item text-center\">\n        <n-button @click=\"toShape\">{{ t(\"layout.sider.scene['Convert to Shape']\") }}</n-button>\n      </div>\n    </template>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.IcosahedronGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {IcosahedronGeometry} from 'three';\nimport {SetGeometryCommand,App,Hooks} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  detail: 1,\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new IcosahedronGeometry(\n      objectData.radius,\n      objectData.detail\n  )))\n\n  Hooks.useDispatchSignal(\"objectChanged\",App.selected);\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  detail  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Facet segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.detail\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.LatheGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {LatheGeometry} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  segments: 12,\n  phiStart:0,\n  phiLength:1,\n  points:[]\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n  objectData.phiStart *= 180 / Math.PI;\n  objectData.phiLength *= 180 / Math.PI;\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new LatheGeometry(\n      objectData.points,\n      objectData.segments,\n      objectData.phiStart,\n      objectData.phiLength\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  segments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Segments\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.segments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  phiStart  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Phi start']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.phiStart\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  phiLength  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Phi length']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.phiLength\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  points  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Points\") }}</span>\n\n      <!--  TODO UIPoints2 objectData.points   -->\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.Modifiers.vue",
    "content": "<script lang=\"ts\" setup>\nimport {App,Hooks} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\n\n//计算顶点法线\nfunction computeVertexNormals() {\n  if(!App.selected) return;\n\n  const geometry = App.selected.geometry;\n  geometry.computeVertexNormals();\n  Hooks.useDispatchSignal(\"geometryChanged\", App.selected);\n}\n\n//居中\nfunction centerGeometry() {\n  if(!App.selected) return;\n\n  const geometry = App.selected.geometry;\n  geometry.center();\n  Hooks.useDispatchSignal(\"geometryChanged\", App.selected);\n}\n</script>\n\n<template>\n  <!-- Compute Vertex Normals -->\n  <div class=\"sider-scene-geometry-item\">\n    <span></span>\n    <div>\n      <n-button size=\"small\" @click=\"computeVertexNormals\">{{ t(\"layout.sider.geometry['Compute Vertex Normals']\") }}\n      </n-button>\n    </div>\n  </div>\n  <!-- Center Geometry -->\n  <div class=\"sider-scene-geometry-item\">\n    <span></span>\n    <div>\n      <n-button size=\"small\" @click=\"centerGeometry\">{{ t(\"layout.sider.scene.Center\") }}</n-button>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.OctahedronGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {OctahedronGeometry} from 'three';\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  detail: 0\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new OctahedronGeometry(\n      objectData.radius,\n      objectData.detail\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  detail  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Facet segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.detail\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.PlaneGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {PlaneGeometry} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  width: 1.00,\n  height: 1.00,\n  widthSegments:1,\n  heightSegments:1,\n})\n\nonMounted(() => {\n  // @ts-ignore\n  const geometry = App.selected?.geometry;\n  if(!geometry) return;\n\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  // @ts-ignore\n  App.execute(new SetGeometryCommand(App.selected, new PlaneGeometry(\n      objectData.width,\n      objectData.height,\n      objectData.widthSegments,\n      objectData.heightSegments\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  width  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Width\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.width\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  height  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Height\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.height\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  widthSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Width segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.widthSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  heightSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Height segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.heightSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.RingGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {RingGeometry,MathUtils} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  innerRadius: 0.50,\n  outerRadius: 1.00,\n  thetaSegments:32,\n  phiSegments:1,\n  thetaStart:0,\n  thetaLength:1\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key];\n  })\n  objectData.thetaStart *= MathUtils.RAD2DEG;\n  objectData.thetaLength *= MathUtils.RAD2DEG;\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new RingGeometry(\n      objectData.innerRadius,\n      objectData.outerRadius,\n      objectData.thetaSegments,\n      objectData.phiSegments,\n      objectData.thetaStart * MathUtils.DEG2RAD,\n      objectData.thetaLength * MathUtils.DEG2RAD,\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  innerRadius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Inner radius']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.innerRadius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  outerRadius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Outer radius']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.outerRadius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  thetaSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Theta segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.thetaSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"3\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  phiSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Phi segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.phiSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"3\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  thetaStart  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Theta start']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.thetaStart\" class=\"!w-90px\" size=\"small\" :decimal=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  thetaLength  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Theta length']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.thetaLength\" class=\"!w-90px\" size=\"small\" :decimal=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.ShapeGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport { ShapeGeometry,ExtrudeGeometry } from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  curveSegments: 12,\n})\nlet parameters:any;\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  parameters = geometry.parameters;\n  objectData.curveSegments = parameters.curveSegments || 12;\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new ShapeGeometry(\n      parameters.shapes,\n      objectData.curveSegments\n  )))\n}\n\nfunction toExtrude() {\n  if(!App.selected) return;\n\n  App.execute( new SetGeometryCommand(App.selected, new ExtrudeGeometry(\n      parameters.shapes, {\n        curveSegments: objectData.curveSegments\n      }\n  )));\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  curveSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Curve Segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.curveSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  to extrude  -->\n    <div class=\"sider-scene-geometry-item text-center\">\n      <n-button @click=\"toExtrude\">{{ t(\"layout.sider.scene.Extrude\") }}</n-button>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.SphereGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {SphereGeometry,MathUtils} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  widthSegments: 32,\n  heightSegments:16,\n  phiStart:0,\n  phiLength:1,\n  thetaStart:0,\n  thetaLength:0.5,\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n  objectData.phiStart *= MathUtils.RAD2DEG;\n  objectData.phiLength *= MathUtils.RAD2DEG;\n  objectData.thetaStart *= MathUtils.RAD2DEG;\n  objectData.thetaLength *= MathUtils.RAD2DEG;\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new SphereGeometry(\n      objectData.radius,\n      objectData.widthSegments,\n      objectData.heightSegments,\n      objectData.phiStart * MathUtils.DEG2RAD,\n      objectData.phiLength * MathUtils.DEG2RAD,\n      objectData.thetaStart * MathUtils.DEG2RAD,\n      objectData.thetaLength * MathUtils.DEG2RAD,\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  widthSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Width segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.widthSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  heightSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Height segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.heightSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  phiStart  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Phi start']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.phiStart\" class=\"!w-90px\" size=\"small\" :decimal=\"1\"\n                     :show-button=\"false\"  @change=\"update()\"/>\n    </div>\n\n    <!--  phiLength  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Phi length']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.phiLength\" class=\"!w-90px\" size=\"small\" :decimal=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  thetaStart  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Theta start']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.thetaStart\" class=\"!w-90px\" size=\"small\" :decimal=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  thetaLength  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Theta length']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.thetaLength\" class=\"!w-90px\" size=\"small\" :decimal=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TeapotGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {t} from \"@/language\";\nimport {SetGeometryCommand,App,Hooks,TeapotGeometry} from '@astral3d/engine';\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  size: 2.00,\n  segments: 10,\n  bottom:true,\n  lid:true,\n  body:true,\n  fitLid:false,\n  blinn:true,\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  const geometry = App.selected.geometry;\n  geometry.dispose();\n\n  App.execute(new SetGeometryCommand(App.selected, new TeapotGeometry(\n      objectData.size,\n      objectData.segments,\n      objectData.bottom,\n      objectData.lid,\n      objectData.body,\n      objectData.fitLid,\n      objectData.blinn\n  )))\n\n  geometry?.computeBoundingSphere();\n\n  Hooks.useDispatchSignal(\"geometryChanged\",App.selected)\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  size  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Size\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.size\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  segments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Segments\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.segments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  bottom  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>Bottom</span>\n\n      <n-checkbox size=\"small\" v-model:checked=\"objectData.bottom\" @update:checked=\"update\" />\n    </div>\n\n    <!--  lid  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>Lid</span>\n\n      <n-checkbox size=\"small\" v-model:checked=\"objectData.lid\" @update:checked=\"update\" />\n    </div>\n\n    <!--  body  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>Body</span>\n\n      <n-checkbox size=\"small\" v-model:checked=\"objectData.body\" @update:checked=\"update\" />\n    </div>\n\n    <!--  fitted lid  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>Fitted Lid</span>\n\n      <n-checkbox size=\"small\" v-model:checked=\"objectData.fitLid\" @update:checked=\"update\" />\n    </div>\n\n    <!--  blinn-sized  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>Blinn-scaled</span>\n\n      <n-checkbox size=\"small\" v-model:checked=\"objectData.blinn\" @update:checked=\"update\" />\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TetrahedronGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {TetrahedronGeometry} from \"three\";\nimport {SetGeometryCommand,Hooks,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  detail: 0\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new TetrahedronGeometry(\n      objectData.radius,\n      objectData.detail\n  )))\n\n  Hooks.useDispatchSignal(\"objectChanged\",App.selected)\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  detail  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Facet segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.detail\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TorusGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {TorusGeometry,MathUtils} from \"three\";\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  tube: 0.40,\n  radialSegments:12,\n  tubularSegments:48,\n  arc:Math.PI * 2\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n  objectData.arc *= MathUtils.RAD2DEG;\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new TorusGeometry(\n      objectData.radius,\n      objectData.tube,\n      objectData.radialSegments,\n      objectData.tubularSegments,\n      objectData.arc * MathUtils.DEG2RAD,\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  tube  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Tube\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.tube\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  radialSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Radial segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radialSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!-- tubularSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Tubular segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.tubularSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!-- arc  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Arc\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.arc\" class=\"!w-90px\" size=\"small\" :decimal=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TorusKnotGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {reactive, onMounted} from \"vue\";\nimport {TorusKnotGeometry} from 'three';\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  radius: 1.00,\n  tube: 0.40,\n  radialSegments:12,\n  tubularSegments:48,\n  p:2.00,\n  q:3.00\n})\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new TorusKnotGeometry(\n      objectData.radius,\n      objectData.tube,\n      objectData.tubularSegments,\n      objectData.radialSegments,\n      objectData.p,\n      objectData.q\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  tube  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Tube\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.tube\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  radialSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Radial segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radialSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!-- tubularSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Tubular segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.tubularSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\" :min=\"1\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!-- p  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.P\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.p\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!-- q  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Q\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.q\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TubeGeometry.vue",
    "content": "<script setup lang=\"ts\">\nimport {ref,reactive, onMounted} from \"vue\";\nimport {TubeGeometry,CatmullRomCurve3,CurveType} from 'three';\nimport {SetGeometryCommand,App} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nlet objectData = reactive({\n  path:{\n    points:[],\n    curveType:\"centripetal\",\n    tension:0.50\n  },\n  radius:1.00,\n  tubularSegments:64,\n  radialSegments:8,\n  closed:false\n})\n\nconst curveTypeOptions = ref([\n  {label: \"centripetal\", value: \"centripetal\"},\n  {label: \"chordal\", value: \"chordal\"},\n  {label: \"catmullrom\", value: \"catmullrom\"}\n])\n\nonMounted(() => {\n  const geometry = App.selected?.geometry;\n  const parameters = geometry.parameters;\n  Object.keys(parameters).forEach(key => {\n    objectData[key] = parameters[key]\n  })\n})\n\nfunction update() {\n  if(!App.selected) return;\n\n  App.execute(new SetGeometryCommand(App.selected, new TubeGeometry(\n      new CatmullRomCurve3(objectData.path.points, objectData.closed, objectData.path.curveType as CurveType, objectData.path.tension),\n      objectData.tubularSegments,\n      objectData.radius,\n      objectData.radialSegments,\n      objectData.closed,\n  )))\n}\n</script>\n\n<template>\n  <div>\n    <n-divider/>\n\n    <!--  points  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Path\") }}</span>\n\n        <!--  TODO  UIPoints3 objectData.path.points   -->\n    </div>\n\n    <!--  radius  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Radius\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radius\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  tubularSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Tubular segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.tubularSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  radialSegments  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Radial segments']\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.radialSegments\" class=\"!w-90px\" size=\"small\" :decimal=\"0\"\n                     :show-button=\"false\" @change=\"update()\"/>\n    </div>\n\n    <!--  closed  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene.Closed\") }}</span>\n\n      <n-checkbox size=\"small\" v-model:checked=\"objectData.closed\" @update:checked=\"update\" />\n    </div>\n\n    <!--  curveType  -->\n    <div class=\"sider-scene-geometry-item\">\n      <span>{{ t(\"layout.sider.scene['Curve type']\") }}</span>\n\n      <n-select size=\"small\" v-model:value=\"objectData.path.curveType\" :options=\"curveTypeOptions\" @update:value=\"update\"/>\n    </div>\n\n    <!--  tension  -->\n    <div class=\"sider-scene-geometry-item\" v-if=\"objectData.path.curveType === 'catmullrom'\">\n      <span>{{ t(\"layout.sider.scene.Tension\") }}</span>\n\n      <EsInputNumber v-model:value=\"objectData.path.tension\" class=\"!w-90px\" size=\"small\" :decimal=\"2\"\n                     :show-button=\"false\" @change=\"update\"/>\n    </div>\n  </div>\n</template>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/material/SceneAllMaterials.vue",
    "content": "<script lang=\"ts\" setup>\nimport {onMounted, onBeforeUnmount, ref} from 'vue';\nimport {NButton, NCollapse, NCollapseItem, NSelect} from 'naive-ui';\nimport {CaretForwardOutline} from \"@vicons/ionicons5\";\nimport {Mesh} from \"three\";\nimport {App,Hooks, SetMaterialCommand} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\n\nconst selectMaterial = ref(\"\");\nconst materialOptions = ref<{}[]>([]);\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", objectSelected);\n  Hooks.useAddSignal(\"materialAdded\", refreshMaterialBrowserUI);\n  Hooks.useAddSignal(\"materialChanged\", refreshMaterialBrowserUI);\n  Hooks.useAddSignal(\"materialRemoved\", refreshMaterialBrowserUI);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", objectSelected);\n  Hooks.useRemoveSignal(\"materialAdded\", refreshMaterialBrowserUI);\n  Hooks.useRemoveSignal(\"materialChanged\", refreshMaterialBrowserUI);\n  Hooks.useRemoveSignal(\"materialRemoved\", refreshMaterialBrowserUI);\n})\n\nfunction objectSelected(object) {\n  if (object && object.material) {\n    // const arr = Object.values(App.materials);\n    // const index = arr.indexOf(object.material);\n    // selectMaterial.value = arr[index];\n    selectMaterial.value = object.material.uuid;\n  } else {\n    selectMaterial.value = \"\";\n  }\n}\n\nfunction refreshMaterialBrowserUI() {\n  materialOptions.value = Object.values(App.materials).map((item: any) => {\n    return {\n      label: item.name || item.uuid,\n      value: item.uuid\n    }\n  });\n}\n\n//应用材质\nfunction assignMaterial() {\n  const selectedObject = App.selected;\n  if (selectedObject === null) return;\n\n  const oldMaterial = (<Mesh>selectedObject).material;\n  //仅将材质指定给具有材质特性的对象(例如，避免将材质指定给THREE.Group)\n  if (!oldMaterial) return;\n  const material = App.getMaterialByUuid(selectMaterial.value);\n\n  if (!material) return;\n  App.removeMaterial(oldMaterial);\n  App.execute(new SetMaterialCommand(selectedObject, material));\n  App.addMaterial(material);\n}\n</script>\n\n<template>\n  <n-collapse display-directive=\"show\" :default-expanded-names=\"['material']\">\n    <template #arrow>\n      <n-icon>\n        <CaretForwardOutline/>\n      </n-icon>\n    </template>\n\n    <!--  选择材质  -->\n    <n-collapse-item :title=\"t('layout.sider.project[\\'select material\\']')\" name=\"material\">\n      <div class=\"flex justify-between\">\n        <n-select v-model:value=\"selectMaterial\" filterable size=\"small\"\n                  :placeholder=\"t('layout.sider.project[\\'select material\\']')\" :options=\"materialOptions\"/>\n\n        <n-button type=\"primary\" size=\"small\" class=\"ml-5px\" @click=\"assignMaterial\">\n          {{ t('layout.sider.project.assign') }}\n        </n-button>\n      </div>\n    </n-collapse-item>\n  </n-collapse>\n\n  <n-divider/>\n</template>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialBooleanProperty.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, onMounted, onUnmounted} from \"vue\";\nimport {Mesh,Material} from \"three\";\nimport {App,Hooks,Utils,SetMaterialValueCommand} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport EsKeyFrame from \"@/components/es/EsKeyFrame.vue\";\n\nconst props = withDefaults(defineProps<{\n  property: string,\n  name: string\n}>(), {\n  property: \"\",\n  name: \"\"\n})\n\nconst show = ref(false);\nconst value = ref(false);\nlet object: Mesh;\nlet material: Material;\nlet currentMaterialSlot = 0;\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useAddSignal(\"materialChanged\", update)\n  Hooks.useAddSignal(\"materialCurrentSlotChange\", currentSlotChange);\n})\n\nonUnmounted(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useRemoveSignal(\"materialChanged\", update);\n  Hooks.useRemoveSignal(\"materialCurrentSlotChange\", currentSlotChange)\n})\n\nfunction currentSlotChange(currentSlot) {\n  currentMaterialSlot = currentSlot;\n  update();\n}\n\nfunction handleObjectSelected(selected) {\n  object = selected;\n  update();\n}\n\nconst update = Utils.throttle(function () {\n  if (!object || !object.material) return;\n\n  material = App.getObjectMaterial(object, currentMaterialSlot);\n\n  if (props.property in material) {\n    value.value = material[props.property];\n    show.value = true;\n  } else {\n    show.value = false;\n  }\n\n  // 强制更新材质以让动画生效\n  material.needsUpdate = true;\n},50)\n\nfunction onChange() {\n  if (material[props.property] !== value.value) {\n    App.execute(new SetMaterialValueCommand(object, props.property, value.value, currentMaterialSlot));\n  }\n}\n\n</script>\n\n<template>\n    <div class=\"sider-scene-material-boolean-property\" v-if=\"show\">\n        <!-- <span>{{ t(`layout.sider.material.${name}`) }}</span> -->\n        <EsKeyFrame :label=\"t(`layout.sider.material.${name}`)\" :attr=\"`material.${property}`\" />\n        <div>\n            <n-checkbox size=\"small\" v-model:checked=\"value\" @update:checked=\"onChange\" />\n        </div>\n    </div>\n</template>\n\n<style lang=\"less\" scoped>\n.sider-scene-material-boolean-property {\n  display: flex;\n  justify-content: space-between;\n  margin: 10px 0;\n  align-items: center;\n\n  & > span {\n    min-width: 80px;\n  }\n\n  & > div {\n    width: 150px;\n    color: rgb(165, 164, 164);\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialColorProperty.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, onMounted, onUnmounted} from \"vue\";\nimport {Mesh,Material,Color} from \"three\";\nimport {App,Hooks,Utils,SetMaterialColorCommand,SetMaterialValueCommand} from \"@astral3d/engine\";\nimport EsInputNumber from '@/components/es/EsInputNumber.vue';\nimport {t} from \"@/language\";\nimport EsKeyFrame from \"@/components/es/EsKeyFrame.vue\";\n\nconst props = withDefaults(defineProps<{\n  property: string,\n  name: string\n}>(), {\n  property: \"\",\n  name: \"\"\n})\n\nconst show = ref(false);\nconst color = ref<string>(\"\");\nconst intensity = ref(0);\nlet object: Mesh;\nlet material: Material;\nlet currentMaterialSlot = 0;\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useAddSignal(\"materialChanged\", update);\n  Hooks.useAddSignal(\"materialCurrentSlotChange\", currentSlotChange);\n})\n\nonUnmounted(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useRemoveSignal(\"materialChanged\", update);\n  Hooks.useRemoveSignal(\"materialCurrentSlotChange\", currentSlotChange)\n})\n\nfunction currentSlotChange(currentSlot) {\n  currentMaterialSlot = currentSlot;\n  update();\n}\n\nfunction handleObjectSelected(selected) {\n  object = selected;\n  update();\n}\n\nconst update = Utils.throttle(function () {\n  if (!object || !object.material) return;\n\n  material = App.getObjectMaterial(object, currentMaterialSlot);\n\n  if (props.property in material) {\n    color.value = material[props.property].getStyle();\n    if (material[`${props.property}Intensity`] !== undefined) {\n      intensity.value = material[`${props.property}Intensity`];\n    }\n    show.value = true;\n  } else {\n    show.value = false;\n  }\n},100)\n\nfunction onChange() {\n  const newColor = new Color(color.value).getHex();\n  if (material[props.property].getHex() !== newColor) {\n    App.execute(new SetMaterialColorCommand(object, props.property, newColor, currentMaterialSlot));\n  }\n\n  if (intensity !== undefined) {\n    if (material[`${props.property}Intensity`] !== intensity.value) {\n      App.execute(new SetMaterialValueCommand(object, `${props.property}Intensity`, intensity.value, currentMaterialSlot));\n    }\n  }\n}\n\n</script>\n\n<template>\n    <div id=\"sider-scene-material-color-property\" v-if=\"show\">\n        <!-- <span>{{ t(`layout.sider.material.${name}`) }}</span> -->\n        <EsKeyFrame :label=\"t(`layout.sider.material.${name}`)\" :attr=\"`material.${property}`\" />\n        <div>\n            <n-color-picker v-model:value=\"color\" :show-alpha=\"false\" size=\"small\" @update:value=\"onChange()\" />\n            <EsInputNumber v-if=\"property === 'emissive'\" v-model:value=\"intensity\" size=\"tiny\" :show-button=\"false\"\n                @change=\"onChange()\" />\n        </div>\n    </div>\n</template>\n\n<style lang=\"less\" scoped>\n#sider-scene-material-color-property {\n  display: flex;\n  justify-content: space-between;\n  margin: 10px 0;\n  align-items: center;\n\n  & > span {\n    min-width: 80px;\n  }\n\n  & > div {\n    width: 150px;\n    color: rgb(165, 164, 164);\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialConstantProperty.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, onMounted, onUnmounted} from \"vue\";\nimport {Mesh,Material} from \"three\";\nimport {App,Hooks,SetMaterialValueCommand} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\n\nconst props = withDefaults(defineProps<{\n  property: string,\n  name: string,\n  options: Array<{ label: string, value: any }>\n}>(), {\n  property: \"\",\n  name: \"\",\n})\n\nconst show = ref(false);\nconst value = ref();\nlet object: Mesh;\nlet material: Material;\nlet currentMaterialSlot = 0;\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useAddSignal(\"materialChanged\", update);\n  Hooks.useAddSignal(\"materialCurrentSlotChange\", currentSlotChange);\n})\n\nonUnmounted(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useRemoveSignal(\"materialChanged\", update);\n  Hooks.useRemoveSignal(\"materialCurrentSlotChange\", currentSlotChange)\n})\n\nfunction currentSlotChange(currentSlot) {\n  currentMaterialSlot = currentSlot;\n  update();\n}\n\nfunction handleObjectSelected(selected) {\n  object = selected;\n  update();\n}\n\nfunction update() {\n  if (!object || !object.material) return;\n\n  material = App.getObjectMaterial(object, currentMaterialSlot);\n\n  if (props.property in material) {\n    value.value = material[props.property];\n    show.value = true;\n  } else {\n    show.value = false;\n  }\n}\n\nfunction onChange() {\n  if (material[props.property] !== value.value) {\n    App.execute(new SetMaterialValueCommand(object, props.property, value.value, currentMaterialSlot));\n  }\n}\n</script>\n\n<template>\n  <div class=\"sider-scene-material-constant-property\" v-if=\"show\">\n    <span>{{ t(`layout.sider.material.${name}`) }}</span>\n    <div>\n      <n-select size=\"small\" v-model:value=\"value\" :options=\"options\" @update:value=\"onChange\"/>\n    </div>\n  </div>\n</template>\n\n<style lang=\"less\" scoped>\n.sider-scene-material-constant-property {\n  display: flex;\n  justify-content: space-between;\n  margin: 10px 0;\n  align-items: center;\n\n  & > span {\n     min-width:80px;\n  }\n\n  & > div {\n    width: 150px;\n    color: rgb(165, 164, 164);\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialMapProperty.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, reactive,watch,onMounted, onUnmounted, nextTick, toRaw} from \"vue\";\nimport * as THREE from \"three\";\nimport {App,Hooks,SetMaterialMapCommand,SetMaterialValueCommand,SetMaterialVectorCommand,SetMaterialRangeCommand} from \"@astral3d/engine\";\nimport {SettingsAdjust} from \"@vicons/carbon\";\nimport EsInputNumber from '@/components/es/EsInputNumber.vue';\nimport EsTexture from '@/components/es/EsTexture.vue';\nimport {t} from \"@/language\";\n\nconst props = withDefaults(defineProps<{\n  property: string,\n  name: string\n}>(), {\n  property: \"\",\n  name: \"\"\n})\n\nconst show = ref(false);\nconst enabled = ref(false);\nconst enabledDisabled = ref(false);\nconst texture: any = ref(null);\nconst esTextureRef = ref();\nlet object: THREE.Mesh;\nlet material: THREE.Material;\nlet mapType;\nconst colorMaps = [ 'map', 'emissiveMap', 'sheenColorMap', 'specularColorMap', 'envMap' ];\nlet currentMaterialSlot = 0;\n\nconst intensity = ref();\nconst scale = ref();\nconst scaleX = ref();\nconst scaleY = ref();\nconst rangeMin = ref();\nconst rangeMax = ref();\n// 纹理重复（U、V方向重复）\nconst repeat = reactive({\n  has:false,\n  wrap:THREE.RepeatWrapping,\n  x: 1,\n  y: 1,\n});\n// 纹理重复方式\nconst wrapOptions = [\n  {label: t('layout.sider.material.Repeat wrapping'), value: THREE.RepeatWrapping },\n  {label: t('layout.sider.material.Edge stretching'), value: THREE.ClampToEdgeWrapping },\n  {label: t('layout.sider.material.Mirror duplication'), value: THREE.MirroredRepeatWrapping },\n]\n\nconst showConfig = ref(false)\nwatch(() => enabled.value, () => {\n  if(!enabled.value){\n    showConfig.value = false;\n    return;\n  }\n\n  if(repeat.has || ['aoMap','bumpMap','displacementMap','normalMap','clearcoatNormalMap','iridescenceThicknessMap'].includes(props.property)){\n    showConfig.value = true;\n  }\n})\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useAddSignal(\"materialChanged\", update);\n  Hooks.useAddSignal(\"materialCurrentSlotChange\", currentSlotChange);\n\n  mapType = props.property.replace('Map', '');\n})\n\nonUnmounted(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useRemoveSignal(\"materialChanged\", update);\n  Hooks.useRemoveSignal(\"materialCurrentSlotChange\", currentSlotChange)\n})\n\nfunction currentSlotChange(currentSlot) {\n  currentMaterialSlot = currentSlot;\n  update();\n}\n\nfunction handleObjectSelected(selected) {\n  object = selected;\n  texture.value = null;\n  esTextureRef.value?.setValue(null);\n  update();\n}\n\nasync function update() {\n  if (!object || !object.material) return;\n\n  material = App.getObjectMaterial(object, currentMaterialSlot);\n\n  if (props.property in material) {\n    if (material[props.property] !== null) {\n      texture.value = material[props.property];\n\n      // 贴图是否存在纹理重复属性\n      if(material[props.property]?.repeat){\n        repeat.has = true;\n        repeat.wrap = material[props.property].wrapS;\n        repeat.x = material[props.property].repeat.x;\n        repeat.y = material[props.property].repeat.y;\n      }\n    }\n\n    enabled.value = material[props.property] !== null;\n    enabledDisabled.value = toRaw(texture.value) === null;\n\n    if (intensity.value !== undefined) {\n      intensity.value = material[`${props.property}Intensity`];\n    }\n\n    if (scale.value !== undefined) {\n      scale.value = material[`${mapType}Scale`];\n    }\n\n    if (scaleX.value !== undefined) {\n      scaleX.value = material[`${mapType}Scale`]?.x;\n      scaleY.value = material[`${mapType}Scale`]?.y;\n    }\n\n    if (rangeMin.value !== undefined) {\n      rangeMin.value = material[`${mapType}Range`][0];\n      rangeMax.value = material[`${mapType}Range`][1];\n    }\n\n    show.value = true;\n\n    await nextTick();\n    // 添加 material[props.property] !== null，以防取消贴图时变上传按钮，原贴图缩略图消失\n    material[props.property] !== null && esTextureRef.value?.setValue(material[props.property]);\n  } else {\n    show.value = false;\n  }\n}\n\n// 复选框change\nfunction onChange() {\n  const newMap: any = enabled.value ? toRaw(texture.value) : null;\n\n  if (material[props.property] !== newMap) {\n    if (newMap !== null) {\n      if (!object.geometry.hasAttribute('uv')) console.error('Geometry 没有UV:', object.geometry);\n      if (props.property === 'envMap') newMap.mapping = THREE.EquirectangularReflectionMapping;\n    }\n\n    App.execute(new SetMaterialMapCommand(object, props.property, newMap, currentMaterialSlot));\n  }\n}\n\n// 贴图change\nfunction onMapChange(texture) {\n  if (texture !== null) {\n    // 修正色彩空间\n    if (colorMaps.includes(props.property) && !texture.isDataTexture && texture.colorSpace !== THREE.SRGBColorSpace) {\n      texture.encoding = THREE.SRGBColorSpace;\n      material.needsUpdate = true;\n    }\n  }\n\n  enabledDisabled.value = false;\n  onChange();\n}\n\n// 纹理重复change\nfunction onRepeatChange() {\n  if(!repeat.has) return;\n\n  if(material[props.property].repeat.x !== repeat.x || material[props.property].repeat.y !== repeat.y){\n      App.execute(new SetMaterialVectorCommand(object, `${props.property}.repeat`, [repeat.x, repeat.y], currentMaterialSlot));\n  }\n}\n\n// 纹理回环change\nfunction onRepeatWrapChange() {\n  if(!repeat.has) return;\n\n  if(material[props.property].wrapS !== repeat.wrap || material[props.property].wrapT !== repeat.wrap){\n    // TODO: 后面应该改用window.editor.execute命令调用，写入历史记录以回滚\n    material[props.property].wrapS = repeat.wrap;\n    material[props.property].wrapT = repeat.wrap;\n\n    material[props.property].needsUpdate = true;\n\n    Hooks.useDispatchSignal(\"materialChanged\",material)\n  }\n}\n\nfunction onIntensityChange() {\n  if (material[`${props.property}Intensity`] !== intensity.value) {\n      App.execute(new SetMaterialValueCommand(object, `${props.property}Intensity`, intensity.value, currentMaterialSlot));\n  }\n}\n\nfunction onScaleChange() {\n  if (material[`${mapType}Scale`] !== scale.value) {\n      App.execute(new SetMaterialValueCommand(object, `${mapType}Scale`, scale.value, currentMaterialSlot));\n  }\n}\n\nfunction onScaleXYChange() {\n  const value = [scaleX.value, scaleY.value];\n\n  if (material[`${mapType}Scale`].x !== value[0] || material[`${mapType}Scale`].y !== value[1]) {\n      App.execute(new SetMaterialVectorCommand(object, `${mapType}Scale`, value, currentMaterialSlot));\n  }\n}\n\nfunction onRangeChange() {\n  const value = [rangeMin.value, rangeMax.value];\n\n  if (material[`${mapType}Range`][0] !== value[0] || material[`${mapType}Range`][1] !== value[1]) {\n      App.execute(new SetMaterialRangeCommand(object, `${mapType}Range`, value[0], value[1], currentMaterialSlot));\n  }\n}\n</script>\n\n<template>\n  <div class=\"sider-scene-material-map-property\" v-if=\"show\">\n    <div class=\"sider-scene-material-map-property-item\">\n      <span>{{ t(`layout.sider.material.${name}`) }}</span>\n      <div>\n        <n-checkbox size=\"small\" v-model:checked=\"enabled\" :disabled=\"enabledDisabled\"\n                    @update:checked=\"onChange\"/>\n        <EsTexture ref=\"esTextureRef\" v-model:texture=\"texture\" @change=\"onMapChange\"/>\n\n        <n-popover v-if=\"showConfig\" trigger=\"hover\" placement=\"top-start\" :width=\"240\"\n                   content-style=\"padding: 0;\">\n          <template #trigger>\n            <n-button quaternary circle class=\"ml-15px\">\n              <template #icon>\n                <n-icon><SettingsAdjust /></n-icon>\n              </template>\n            </n-button>\n          </template>\n\n          <!-- repeat(纹理重复) -->\n          <div class=\"sider-scene-material-map-property-item\" v-if=\"repeat.has\">\n            <span>{{ t(\"layout.sider.material.repeat\") }}(U, V)</span>\n            <div>\n              <EsInputNumber v-model:value=\"repeat.x\" size=\"tiny\" :show-button=\"false\"\n                             @change=\"onRepeatChange\"/>\n              <EsInputNumber v-model:value=\"repeat.y\" size=\"tiny\" :show-button=\"false\"\n                             @change=\"onRepeatChange\"/>\n            </div>\n          </div>\n\n          <!-- 纹理回环(重复纹理的方式) -->\n          <div class=\"sider-scene-material-map-property-item\" v-if=\"repeat.has\">\n            <span>{{ t(\"layout.sider.material.repetitive mode\") }}</span>\n            <div>\n              <n-select size=\"small\" v-model:value=\"repeat.wrap\" :options=\"wrapOptions\" @update:value=\"onRepeatWrapChange\"/>\n            </div>\n          </div>\n\n          <!-- aoMap(环境遮挡贴图) -->\n          <div class=\"sider-scene-material-map-property-item\" v-if=\"property === 'aoMap'\">\n            <span>{{ t(\"layout.sider.object.intensity\") }}</span>\n            <div>\n              <EsInputNumber v-model:value=\"intensity\" size=\"tiny\" :show-button=\"false\"\n                             @change=\"onIntensityChange\"/>\n            </div>\n          </div>\n\n          <!-- displacementMap(置换贴图) | bumpMap(凹凸贴图) -->\n          <div class=\"sider-scene-material-map-property-item\"\n               v-if=\"property === 'bumpMap' || property === 'displacementMap'\">\n            <span>{{ t(\"layout.sider.object.scale\") }}</span>\n            <div>\n              <EsInputNumber v-model:value=\"scale\" size=\"tiny\" :show-button=\"false\"\n                             @change=\"onScaleChange\"/>\n            </div>\n          </div>\n\n          <!-- clearcoatNormalMap(透明法线贴图) | normalMap(法线贴图)  -->\n          <div class=\"sider-scene-material-map-property-item\"\n               v-if=\"property === 'normalMap' || property === 'clearcoatNormalMap'\">\n            <span>{{ t(\"layout.sider.object.scale\") }}(X, Y)</span>\n            <div>\n              <EsInputNumber v-model:value=\"scaleX\" size=\"tiny\" :show-button=\"false\"\n                             @change=\"onScaleXYChange\"/>\n              <EsInputNumber v-model:value=\"scaleY\" size=\"tiny\" :show-button=\"false\"\n                             @change=\"onScaleXYChange\"/>\n            </div>\n          </div>\n\n          <!-- iridescenceThicknessMap(彩虹色厚度贴图) -->\n          <template v-if=\"property === 'iridescenceThicknessMap'\">\n            <div class=\"sider-scene-material-map-property-item\">\n              <span>min:</span>\n              <div>\n                <EsInputNumber v-model:value=\"rangeMin\" size=\"tiny\" :show-button=\"false\" :min=\"0\"\n                               :max=\"Infinity\" :step=\"10\" @change=\"onRangeChange\"/>\n                <span>nm</span>\n              </div>\n            </div>\n            <div class=\"sider-scene-material-map-property-item\">\n              <span>max:</span>\n              <div>\n                <EsInputNumber v-model:value=\"rangeMax\" size=\"tiny\" :show-button=\"false\" :min=\"0\"\n                               :max=\"Infinity\" :step=\"10\" @change=\"onRangeChange\"/>\n                <span>nm</span>\n              </div>\n            </div>\n          </template>\n        </n-popover>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style lang=\"less\" scoped>\n.sider-scene-material-map-property-item {\n  display: flex;\n  justify-content: space-between;\n  margin: 10px 0;\n  align-items: center;\n\n  & > span {\n    width: 35%;\n  }\n\n  & > div {\n    width: 63%;\n    margin-left: 2%;\n    // color: rgb(165, 164, 164);\n    display: flex;\n    align-items: center;\n\n    .es-texture {\n      margin-left: 8px;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialNumberProperty.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, onMounted, onUnmounted} from \"vue\";\nimport {Mesh,Material} from \"three\";\nimport {App,Hooks,Utils,SetMaterialValueCommand} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport EsInputNumber from '@/components/es/EsInputNumber.vue';\nimport EsKeyFrame from \"@/components/es/EsKeyFrame.vue\";\n\nconst props = withDefaults(defineProps<{\n  property: string,\n  name: string,\n  range?: Array<number>,\n  decimal?: number\n}>(), {\n  property: \"\",\n  name: \"\",\n  //@ts-ignore\n  range: [-Infinity, Infinity],\n  decimal: 0\n})\n\nconst show = ref(false);\nconst numberValue = ref();\nlet object: Mesh;\nlet material: Material;\nlet currentMaterialSlot = 0;\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useAddSignal(\"materialChanged\", update);\n  Hooks.useAddSignal(\"materialCurrentSlotChange\", currentSlotChange);\n})\n\nonUnmounted(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useRemoveSignal(\"materialChanged\", update);\n  Hooks.useRemoveSignal(\"materialCurrentSlotChange\", currentSlotChange)\n})\n\nfunction currentSlotChange(currentSlot) {\n  currentMaterialSlot = currentSlot;\n  update();\n}\n\nfunction handleObjectSelected(selected) {\n  object = selected;\n  update();\n}\n\nconst update = Utils.throttle(function() {\n  if (!object || !object.material) return;\n\n  material = App.getObjectMaterial(object, currentMaterialSlot);\n\n  if (props.property in material) {\n    numberValue.value = material[props.property];\n    show.value = true;\n  } else {\n    show.value = false;\n  }\n},100)\n\nfunction onChange() {\n  if (material[props.property] !== numberValue.value) {\n    App.execute(new SetMaterialValueCommand(object, props.property, numberValue.value, currentMaterialSlot));\n  }\n}\n</script>\n\n<template>\n    <div id=\"sider-scene-material-color-property\" v-if=\"show\">\n        <!-- <span>{{ t(`layout.sider.material.${name}`) }}</span> -->\n        <EsKeyFrame :label=\"t(`layout.sider.material.${name}`)\" :attr=\"`material.${property}`\" />\n        <div>\n            <EsInputNumber v-model:value=\"numberValue\" size=\"tiny\" :show-button=\"false\" :min=\"range[0]\" :max=\"range[1]\"\n                :decimal=\"decimal\" @change=\"onChange\" />\n        </div>\n    </div>\n</template>\n\n<style lang=\"less\" scoped>\n#sider-scene-material-color-property {\n  display: flex;\n  justify-content: space-between;\n  margin: 10px 0;\n  align-items: center;\n\n  & > span {\n     min-width:80px;\n  }\n\n  & > div {\n    width: 150px;\n    color: rgb(165, 164, 164);\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialProgram.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, onMounted, onUnmounted} from \"vue\";\nimport {Mesh,Material} from 'three';\nimport {App,Hooks} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\n\nconst props = withDefaults(defineProps<{\n  property: string\n}>(), {\n  property: \"\"\n})\n\nconst show = ref(false);\nlet object: Mesh | null = null;\nlet material: Material;\nlet materialSlot = 0;\n\nonMounted(() => {\n  Hooks.useAddSignal(\"materialChanged\", update);\n  Hooks.useAddSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useAddSignal(\"materialCurrentSlotChange\", currentMaterialSlotChange);\n})\n\nonUnmounted(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useRemoveSignal(\"materialChanged\", update);\n  Hooks.useRemoveSignal(\"materialCurrentSlotChange\", currentMaterialSlotChange);\n})\n\nfunction currentMaterialSlotChange(currentMaterialSlot) {\n  materialSlot = currentMaterialSlot;\n  update();\n}\n\nfunction handleObjectSelected(selected) {\n  object = selected;\n  update();\n}\n\nfunction programClick(key) {\n  Hooks.useDispatchSignal(\"editScript\", object, key);\n}\n\nfunction update() {\n  if (!object || !object.material) return;\n\n  material = App.getObjectMaterial(object, materialSlot);\n\n  if (props.property in material) {\n    show.value = true;\n  } else {\n    show.value = false;\n  }\n}\n</script>\n\n<template>\n  <div id=\"sider-scene-material-program\" v-if=\"show\">\n    <n-divider title-placement=\"left\">{{ t(\"layout.sider.material.Programme\") }}</n-divider>\n\n    <div class=\"sider-scene-material-program-item\">\n      <!-- programInfo -->\n      <n-button size=\"small\" @click=\"programClick('programInfo')\">{{ t(\"layout.sider.material.Info\") }}</n-button>\n\n      <!-- programVertex -->\n      <n-button size=\"small\" @click=\"programClick('vertexShader')\">{{ t(\"layout.sider.material.Vert\") }}</n-button>\n\n      <!-- programFragment -->\n      <n-button size=\"small\" @click=\"programClick('fragmentShader')\">{{ t(\"layout.sider.material.Frag\") }}</n-button>\n    </div>\n\n    <n-divider/>\n  </div>\n</template>\n\n<style lang=\"less\" scoped>\n#sider-scene-material-program {\n  .sider-scene-material-program-item {\n    display: flex;\n    justify-content: space-around;\n    margin: 0 1rem;\n  }\n\n  :deep(.n-divider) {\n    margin-top: 0.7rem;\n    margin-bottom: 0.5rem;\n\n    .n-divider__title {\n      font-weight: 500;\n      font-size: 0.7rem;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialRangeValueProperty.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, onMounted, onUnmounted} from \"vue\";\nimport {Mesh,Material} from \"three\";\nimport {App,Hooks,SetMaterialRangeCommand} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport EsInputNumber from '@/components/es/EsInputNumber.vue';\n\nconst props = withDefaults(defineProps<{\n  property: string,\n  name: string,\n  isMin: boolean,\n  range: Array<number>,\n  step: number,\n  unit: string\n}>(), {\n  property: \"\",\n  name: \"\",\n  isMin: true,\n  //@ts-ignore\n  range: [-Infinity, Infinity],\n  step: 1,\n  unit: ''\n})\n\nconst show = ref(false);\nconst numberValue = ref();\nlet object: Mesh;\nlet material: Material;\nlet currentMaterialSlot = 0;\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useAddSignal(\"materialChanged\", update);\n  Hooks.useAddSignal(\"materialCurrentSlotChange\", currentSlotChange);\n})\n\nonUnmounted(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", handleObjectSelected);\n  Hooks.useRemoveSignal(\"materialChanged\", update);\n  Hooks.useRemoveSignal(\"materialCurrentSlotChange\", currentSlotChange)\n})\n\nfunction currentSlotChange(currentSlot) {\n  currentMaterialSlot = currentSlot;\n  update();\n}\n\nfunction handleObjectSelected(selected) {\n  object = selected;\n  update();\n}\n\nfunction update() {\n  if (!object || !object.material) return;\n\n  material = App.getObjectMaterial(object, currentMaterialSlot);\n\n  if (props.property in material) {\n    numberValue.value = material[props.property][props.isMin ? 0 : 1];\n    show.value = true;\n  } else {\n    show.value = false;\n  }\n}\n\nfunction onChange() {\n  if (material[props.property][props.isMin ? 0 : 1] !== numberValue.value) {\n    const minValue = props.isMin ? numberValue.value : material[props.property][0];\n    const maxValue = props.isMin ? material[props.property][1] : numberValue.value;\n\n    App.execute(new SetMaterialRangeCommand(object, props.property, minValue, maxValue, currentMaterialSlot));\n  }\n}\n\n</script>\n\n<template>\n  <div class=\"sider-scene-material-range-value-property\" v-if=\"show\">\n    <span>{{ t(`layout.sider.material.${name}`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"numberValue\" size=\"tiny\" :show-button=\"false\" :min=\"range[0]\" :max=\"range[1]\"\n                     :step=\"step\" @change=\"onChange\"/>\n      <span>{{ unit }}</span>\n    </div>\n  </div>\n</template>\n\n<style lang=\"less\" scoped>\n.sider-scene-material-range-value-property {\n  display: flex;\n  justify-content: space-between;\n  margin: 10px 0;\n  align-items: center;\n\n  & > span {\n    min-width: 80px;\n  }\n\n  & > div {\n    width: 150px;\n    color: rgb(165, 164, 164);\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/particle/Sidebar.Particle.Attribute.vue",
    "content": "<script setup lang=\"ts\">\nimport {t} from \"@/language\";\nimport EsTip from \"@/components/es/EsTip.vue\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\nimport { getDefaultParticleConfig } from \"@astral3d/engine\";\n\nwithDefaults(defineProps<{\n  data: IParticle.Config['attr']\n}>(), {\n  data: () => getDefaultParticleConfig().attr\n})\nconst emits = defineEmits(['update'])\n\nfunction update(method: string){\n  emits('update', method)\n}\n</script>\n\n<template>\n  <!-- 发射器的总发射次数 -->\n  <div class=\"particle-config-item\">\n    <span>{{ t(`layout.sider.particle.Total Emit Times`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"data.totalEmitTimes\" size=\"tiny\" :show-button=\"false\" :min=\"0\" :max=\"Infinity\"\n        @change=\"update('totalEmitTimes')\" />\n    </div>\n  </div>\n\n  <!-- 发射器的发射阻尼系数 -->\n  <div class=\"particle-config-item\">\n    <span>{{ t(`layout.sider.particle.Emitter Damping`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"data.damping\" size=\"tiny\" :show-button=\"false\" :min=\"0\" :max=\"1\" :decimal=\"3\" @change=\"update('damping')\" />\n    </div>\n  </div>\n\n  <!-- 发射器的寿命: 此项不提供给用户设置，因为寿命到期后会自动移除发射器，用户使用发射次数来控制发射器的生命周期即可 -->\n  <!--  <div class=\"particle-config-item\">-->\n  <!--    <span>{{ t(`layout.sider.particle.Duration`) }}</span>-->\n  <!--    <div>-->\n  <!--      <EsInputNumber v-model:value=\"data.life\" size=\"tiny\" :show-button=\"false\"-->\n  <!--                     :min=\"0\" :max=\"Infinity\" unit=\"ms\" @blur=\"update('life')\"/>-->\n  <!--    </div>-->\n  <!--  </div>-->\n\n  <!-- 发射粒子的数量范围 -->\n  <div class=\"particle-config-item\">\n    <span>\n      <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Quantitative range`)\">\n        {{ t(`layout.sider.particle.The number range of emitted particles`) }}\n      </EsTip>\n    </span>\n    <div class=\"flex\">\n      <EsInputNumber v-model:value=\"data.numPan.min\" size=\"tiny\" :show-button=\"false\" :min=\"0\" :max=\"Infinity\"\n        @change=\"update('rateNumPan')\" />\n      <EsInputNumber v-model:value=\"data.numPan.max\" size=\"tiny\" :show-button=\"false\" :min=\"0\" :max=\"Infinity\"\n        @change=\"update('rateNumPan')\" />\n    </div>\n  </div>\n\n  <!-- 每次粒子发射之间的时间间隔(s) -->\n  <div class=\"particle-config-item\">\n    <span>\n      <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Time interval`)\">\n        {{ t(`layout.sider.particle.The time interval between each particle emission`) }}\n      </EsTip>\n    </span>\n    <div class=\"flex\">\n      <EsInputNumber v-model:value=\"data.timePan.a\" size=\"tiny\" :show-button=\"false\" :min=\"0\" :max=\"Infinity\" unit=\"s\"\n        :decimal=\"2\" @change=\"update('rateTimePan')\" />\n      <EsInputNumber v-model:value=\"data.timePan.b\" size=\"tiny\" :show-button=\"false\" :min=\"0\" :max=\"Infinity\" unit=\"s\"\n        :decimal=\"2\" @change=\"update('rateTimePan')\" />\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/particle/Sidebar.Particle.Behaviour.vue",
    "content": "<script setup lang=\"ts\">\nimport {t} from \"@/language\";\nimport { getDefaultParticleConfig } from \"@astral3d/engine\";\nimport {CaretForwardOutline} from \"@vicons/ionicons5\";\nimport EsTip from \"@/components/es/EsTip.vue\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\nimport EsParticleEasing from \"@/components/es/EsParticleEasing.vue\";\n\nwithDefaults(defineProps<{\n  data: IParticle.Config['behaviour'],\n  hasMass: boolean\n}>(), {\n  data: () => getDefaultParticleConfig().behaviour,\n  hasMass: false\n})\nconst emits = defineEmits(['update'])\n\nfunction update(method: string){\n  emits('update', method)\n}\n</script>\n\n<template>\n  <n-collapse display-directive=\"show\" :default-expanded-names=\"['color', 'force', 'scale', 'rotate']\">\n    <template #arrow>\n      <n-icon>\n        <CaretForwardOutline />\n      </n-icon>\n    </template>\n\n    <!--  随时间改变粒子颜色  -->\n    <n-collapse-item name=\"color\">\n      <template #header>\n        <n-text>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.material.Color`)\">\n            {{ t(`layout.sider.particle.A behaviour which mutates the color of a particle over time`) }}\n          </EsTip>\n        </n-text>\n      </template>\n\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.color.isEnabled\" @update:checked=\"update('color')\" />\n        </div>\n      </div>\n\n      <!-- 起始颜色 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Start color`) }}</span>\n        <div>\n          <n-color-picker v-model:value=\"data.color.colorA\" :disabled=\"!data.color.isEnabled\" :show-alpha=\"false\"\n            :modes=\"['hex']\" size=\"small\" @update:value=\"update('color')\" :render-label=\"() => ''\" />\n        </div>\n      </div>\n\n      <!-- 结束颜色 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.End color`) }}</span>\n        <div>\n          <n-color-picker v-model:value=\"data.color.colorB\" :disabled=\"!data.color.isEnabled\" :show-alpha=\"false\"\n            :modes=\"['hex']\" size=\"small\" @update:value=\"update('color')\" :render-label=\"() => ''\" />\n        </div>\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.color.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.color.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('color')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.color.easing\" size=\"small\" :disabled=\"!data.color.isEnabled\"\n            @update:value=\"update('color')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  力，迫使粒子沿特定轴线运动  -->\n    <n-collapse-item name=\"force\">\n      <template #header>\n        <n-text>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Force`)\">\n            {{ t(`layout.sider.particle.Behaviour that forces particles along a specific axis`) }}\n          </EsTip>\n        </n-text>\n      </template>\n\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.force.isEnabled\" @update:checked=\"update('force')\" />\n        </div>\n      </div>\n\n      <!-- 方向作用力 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Direction`) }}</span>\n        <div class=\"flex\">\n          <EsInputNumber v-model:value=\"data.force.fx\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.force.isEnabled\" :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('force')\" />\n          <EsInputNumber v-model:value=\"data.force.fy\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.force.isEnabled\" :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('force')\" />\n          <EsInputNumber v-model:value=\"data.force.fz\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.force.isEnabled\" :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('force')\" />\n        </div>\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.force.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.force.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('force')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.force.easing\" size=\"small\" :disabled=\"!data.force.isEnabled\"\n            @update:value=\"update('force')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  缩放粒子  -->\n    <n-collapse-item :title=\"t(`layout.sider.particle.Scale`)\" name=\"scale\">\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.scale.isEnabled\" @update:checked=\"update('scale')\" />\n        </div>\n      </div>\n\n      <!-- 起始缩放 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Start scale`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.scale.scaleA\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.scale.isEnabled\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('scale')\" />\n        </div>\n      </div>\n\n      <!-- 结束缩放 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.End scale`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.scale.scaleB\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.scale.isEnabled\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('scale')\" />\n        </div>\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.scale.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.scale.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('scale')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.scale.easing\" size=\"small\" :disabled=\"!data.scale.isEnabled\"\n            @update:value=\"update('scale')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  旋转粒子  -->\n    <n-collapse-item :title=\"t(`layout.sider.particle.Rotate`)\" name=\"rotate\">\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.rotate.isEnabled\" @update:checked=\"update('rotate')\" />\n        </div>\n      </div>\n\n      <!-- xyz -->\n      <div class=\"particle-config-item\">\n        <span>XYZ</span>\n        <div class=\"flex\">\n          <EsInputNumber v-model:value=\"data.rotate.x\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.rotate.isEnabled\" :min=\"0\" :max=\"360\" @change=\"update('rotate')\" />\n          <EsInputNumber v-model:value=\"data.rotate.y\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.rotate.isEnabled\" :min=\"0\" :max=\"360\" @change=\"update('rotate')\" />\n          <EsInputNumber v-model:value=\"data.rotate.z\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.rotate.isEnabled\" :min=\"0\" :max=\"360\" @change=\"update('rotate')\" />\n        </div>\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.rotate.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.rotate.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('rotate')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.rotate.easing\" size=\"small\" :disabled=\"!data.rotate.isEnabled\"\n            @update:value=\"update('rotate')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  粒子随机坐标漂移行为  -->\n    <n-collapse-item name=\"randomDrift\">\n      <template #header>\n        <n-text>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Random drift`)\">\n            {{ t(`layout.sider.particle.Behaviour that causes particles to drift to random coordinates in 3D space`) }}\n          </EsTip>\n        </n-text>\n      </template>\n\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.randomDrift.isEnabled\"\n            @update:checked=\"update('randomDrift')\" />\n        </div>\n      </div>\n\n      <!-- 随机力 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Random force`) }}</span>\n        <div class=\"flex\">\n          <EsInputNumber v-model:value=\"data.randomDrift.driftX\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.randomDrift.isEnabled\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\"\n            @change=\"update('randomDrift')\" />\n          <EsInputNumber v-model:value=\"data.randomDrift.driftY\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.randomDrift.isEnabled\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\"\n            @change=\"update('randomDrift')\" />\n          <EsInputNumber v-model:value=\"data.randomDrift.driftZ\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.randomDrift.isEnabled\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\"\n            @change=\"update('randomDrift')\" />\n        </div>\n      </div>\n\n      <!-- 漂移延迟 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Delay`) }}</span>\n        <EsInputNumber v-model:value=\"data.randomDrift.delay\" size=\"tiny\" :show-button=\"false\"\n          :disabled=\"!data.randomDrift.isEnabled\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\"\n          @change=\"update('randomDrift')\" />\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.randomDrift.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.randomDrift.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('randomDrift')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.randomDrift.easing\" size=\"small\" :disabled=\"!data.randomDrift.isEnabled\"\n            @update:value=\"update('randomDrift')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  粒子弹跳  -->\n    <n-collapse-item name=\"spring\">\n      <template #header>\n        <n-text>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Spring`)\">\n            {{ t(`layout.sider.particle.Behaviour that causes particles to spring`) }}\n          </EsTip>\n        </n-text>\n      </template>\n\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.spring.isEnabled\" @update:checked=\"update('spring')\" />\n        </div>\n      </div>\n\n      <!-- XYZ 轴上的弹跳 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Direction`) }}</span>\n        <div class=\"flex\">\n          <EsInputNumber v-model:value=\"data.spring.x\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.spring.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('spring')\" />\n          <EsInputNumber v-model:value=\"data.spring.y\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.spring.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('spring')\" />\n          <EsInputNumber v-model:value=\"data.spring.z\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.spring.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('spring')\" />\n        </div>\n      </div>\n\n      <!-- 弹跳系数 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Factor`) }}</span>\n        <EsInputNumber v-model:value=\"data.spring.spring\" size=\"tiny\" :show-button=\"false\"\n          :disabled=\"!data.spring.isEnabled\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('spring')\" />\n      </div>\n\n      <!-- 摩擦 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Friction`) }}</span>\n        <EsInputNumber v-model:value=\"data.spring.friction\" size=\"tiny\" :show-button=\"false\"\n          :disabled=\"!data.spring.isEnabled\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('spring')\" />\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.spring.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.spring.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('spring')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.spring.easing\" size=\"small\" :disabled=\"!data.spring.isEnabled\"\n            @update:value=\"update('spring')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  粒子吸引  -->\n    <n-collapse-item name=\"attraction\">\n      <template #header>\n        <n-text>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Attraction`)\">\n            {{ t(`layout.sider.particle.Behaviour that causes particles to be attracted to a target position`) }}\n          </EsTip>\n        </n-text>\n      </template>\n\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.attraction.isEnabled\" @update:checked=\"update('attraction')\" />\n        </div>\n      </div>\n\n      <!-- 目标位置 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Target position`) }}</span>\n        <div class=\"flex\">\n          <EsInputNumber v-model:value=\"data.attraction.x\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.attraction.isEnabled\" :min=\"-Infinity\" :max=\"Infinity\" @change=\"update('attraction')\" />\n          <EsInputNumber v-model:value=\"data.attraction.y\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.attraction.isEnabled\" :min=\"-Infinity\" :max=\"Infinity\" @change=\"update('attraction')\" />\n          <EsInputNumber v-model:value=\"data.attraction.z\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.attraction.isEnabled\" :min=\"-Infinity\" :max=\"Infinity\" @change=\"update('attraction')\" />\n        </div>\n      </div>\n\n      <!-- 引力系数（标量） -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Force`) }}</span>\n        <EsInputNumber v-model:value=\"data.attraction.force\" size=\"tiny\" :show-button=\"false\"\n          :disabled=\"!data.attraction.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('attraction')\" />\n      </div>\n\n      <!-- 引力半径 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Radius`) }}</span>\n        <EsInputNumber v-model:value=\"data.attraction.radius\" size=\"tiny\" :show-button=\"false\"\n          :disabled=\"!data.attraction.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('attraction')\" />\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.attraction.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.attraction.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('attraction')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.attraction.easing\" size=\"small\" :disabled=\"!data.attraction.isEnabled\"\n            @update:value=\"update('attraction')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  粒子碰撞  -->\n    <n-collapse-item name=\"collision\">\n      <template #header>\n        <n-text>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Collision`)\">\n            {{ t(`layout.sider.particle.Behaviour that causes particles to move away from other particles they collide with`) }}\n          </EsTip>\n        </n-text>\n      </template>\n\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <n-checkbox size=\"small\" v-model:checked=\"data.collision.isEnabled\" @update:checked=\"update('collision')\" />\n      </div>\n\n      <!-- 质量相关 -->\n      <div class=\"particle-config-item\">\n        <span>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Mass related`)\">\n            {{ t(`layout.sider.particle.Consider mass when calculating collision displacement`) }}\n          </EsTip>\n        </span>\n        <n-checkbox size=\"small\" v-model:checked=\"data.collision.useMass\"\n          :disabled=\"!data.collision.isEnabled || !hasMass\" @update:checked=\"update('collision')\" />\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.collision.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.collision.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('collision')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.collision.easing\" size=\"small\" :disabled=\"!data.collision.isEnabled\"\n            @update:value=\"update('collision')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  对粒子应用阿尔法转换效果  -->\n    <n-collapse-item name=\"alpha\">\n      <template #header>\n        <n-text>\n          <EsTip class=\"!justify-start\" content=\"α-effect\">\n            {{ t(`layout.sider.particle.Behaviour that applies an alpha transition effect to particles`) }}\n          </EsTip>\n        </n-text>\n      </template>\n\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.alpha.isEnabled\" @update:checked=\"update('alpha')\" />\n        </div>\n      </div>\n\n      <!-- 起始alpha -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Start alpha`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.alpha.alphaA\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.alpha.isEnabled\" :min=\"0\" :max=\"1\" :decimal=\"2\" @change=\"update('alpha')\" />\n        </div>\n      </div>\n\n      <!-- 结束alpha -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.End alpha`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.alpha.alphaB\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.alpha.isEnabled\" :min=\"0\" :max=\"1\" :decimal=\"2\" @change=\"update('alpha')\" />\n        </div>\n      </div>\n\n      <!-- 粒子生命周期 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Life`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.alpha.life\" size=\"tiny\" :show-button=\"false\"\n            :disabled=\"!data.alpha.isEnabled\" :min=\"0\" :max=\"Infinity\" @change=\"update('alpha')\" />\n        </div>\n      </div>\n\n      <!-- 行为缓解趋势 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`layout.sider.particle.Easing`) }}</span>\n        <div>\n          <EsParticleEasing v-model:value=\"data.alpha.easing\" size=\"small\" :disabled=\"!data.alpha.isEnabled\"\n            @update:value=\"update('alpha')\" />\n        </div>\n      </div>\n    </n-collapse-item>\n  </n-collapse>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/particle/Sidebar.Particle.Initializer.vue",
    "content": "<script setup lang=\"ts\">\nimport {t} from \"@/language\";\nimport { getDefaultParticleConfig } from \"@astral3d/engine\";\nimport {CaretForwardOutline} from \"@vicons/ionicons5\";\nimport EsTip from \"@/components/es/EsTip.vue\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\nimport Zones from \"./initializer/Sidebar.Particle.Initializer.Zones.vue\";\nimport Velocity from \"./initializer/Sidebar.Particle.Initializer.Velocity.vue\";\nimport InitializerBody from \"./initializer/Sidebar.Particle.Initializer.Body.vue\";\n\nwithDefaults(defineProps<{\n  data: IParticle.Config['init']\n}>(), {\n  data: () => getDefaultParticleConfig().init\n})\nconst emits = defineEmits(['update'])\n\nfunction update(method: string){\n  emits('update', method)\n}\n</script>\n\n<template>\n  <n-collapse display-directive=\"show\" :default-expanded-names=\"['body','velocity','zone','mass']\">\n    <template #arrow>\n      <n-icon>\n        <CaretForwardOutline />\n      </n-icon>\n    </template>\n\n    <!--  粒子主体 -->\n    <n-collapse-item :title=\"t('layout.sider.particle.Body')\" name=\"body\">\n      <!-- 主体操作 -->\n      <InitializerBody v-model:body=\"data.body\" />\n    </n-collapse-item>\n\n    <!--  粒子生成区域  -->\n    <n-collapse-item :title=\"t('layout.sider.particle.Generation region')\" name=\"zone\">\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.position.isEnabled\" @update:checked=\"update('zone')\"/>\n        </div>\n      </div>\n\n      <!-- 区域类型 -->\n      <Zones v-model:zone=\"data.position.zone\" :disabled=\"!data.position.isEnabled\" @update=\"update('zone')\" />\n    </n-collapse-item>\n\n    <!--  速度  -->\n    <n-collapse-item :title=\"t('layout.sider.particle.Velocity')\" name=\"velocity\">\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.velocity.isEnabled\" @update:checked=\"update('velocity')\"/>\n        </div>\n      </div>\n\n      <!-- 速度类型 -->\n      <Velocity v-model:velocity=\"data.velocity.velocity\" :disabled=\"!data.velocity.isEnabled\" @update=\"update('velocity')\" />\n    </n-collapse-item>\n\n    <!--  质量  -->\n    <n-collapse-item :title=\"t('layout.sider.particle.Mass')\" name=\"mass\">\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.mass.isEnabled\" @update:checked=\"update('mass')\"/>\n        </div>\n      </div>\n\n      <!-- 是否对质量值进行平均 -->\n      <div class=\"particle-config-item\">\n        <span>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Average`)\">\n            {{ t(`layout.sider.particle.Determines whether to average the mass value`) }}\n          </EsTip>\n        </span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.mass.center\" :disabled=\"!data.mass.isEnabled\" @update:checked=\"update('mass')\"/>\n        </div>\n      </div>\n\n      <!-- 最小值 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Minimum`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.mass.min\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.mass.isEnabled\"\n            :min=\"0\" :max=\"Infinity\" @change=\"update('mass')\"/>\n        </div>\n      </div>\n\n      <!-- 最大值 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Maximum`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.mass.max\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.mass.isEnabled\"\n                         :min=\"0\" :max=\"Infinity\" @change=\"update('mass')\"/>\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  寿命  -->\n    <n-collapse-item :title=\"t('layout.sider.particle.Life')\" name=\"life\">\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.life.isEnabled\" @update:checked=\"update('initializerLife')\"/>\n        </div>\n      </div>\n\n      <!-- 确定是否对寿命值进行平均 -->\n      <div class=\"particle-config-item\">\n        <span>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Average`)\">\n            {{ t(`layout.sider.particle.Determines whether to average the life value`) }}\n          </EsTip>\n        </span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.life.center\" :disabled=\"!data.life.isEnabled\" @update:checked=\"update('initializerLife')\"/>\n        </div>\n      </div>\n\n      <!-- 最小值 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Minimum`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.life.min\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.life.isEnabled\"\n                         :min=\"0\" :max=\"Infinity\" @change=\"update('initializerLife')\"/>\n        </div>\n      </div>\n\n      <!-- 最大值 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Maximum`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.life.max\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.life.isEnabled\"\n                         :min=\"0\" :max=\"Infinity\" @change=\"update('initializerLife')\"/>\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  半径  -->\n    <n-collapse-item :title=\"t('layout.sider.particle.Radius')\" name=\"radius\">\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.radius.isEnabled\" @update:checked=\"update('radius')\"/>\n        </div>\n      </div>\n\n      <!-- 确定是否对半径值进行平均 -->\n      <div class=\"particle-config-item\">\n        <span>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Average`)\">\n            {{ t(`layout.sider.particle.Determines whether to average the radius value`) }}\n          </EsTip>\n        </span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.radius.center\" :disabled=\"!data.radius.isEnabled\" @update:checked=\"update('radius')\"/>\n        </div>\n      </div>\n\n      <!-- 宽度 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Width`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.radius.width\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.radius.isEnabled\"\n                         :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('radius')\"/>\n        </div>\n      </div>\n\n      <!-- 高度 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Height`) }}</span>\n        <div>\n          <EsInputNumber v-model:value=\"data.radius.height\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.radius.isEnabled\"\n                         :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"update('radius')\"/>\n        </div>\n      </div>\n    </n-collapse-item>\n\n    <!--  旋转  -->\n    <n-collapse-item :title=\"t('layout.sider.particle.Rotation')\" name=\"rotation\">\n      <!-- 是否启用 -->\n      <div class=\"particle-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.rotation.isEnabled\" @update:checked=\"update('rotation')\"/>\n        </div>\n      </div>\n\n      <!-- 确定是否使用发射器的旋转作为起始旋转 -->\n      <div class=\"particle-config-item\">\n        <span>\n          <EsTip class=\"!justify-start\" :content=\"t(`layout.sider.particle.Follow parent`)\">\n            {{ t(`layout.sider.particle[\"Determines if we should use the emitter's rotation as the starting rotation\"]`) }}\n          </EsTip>\n        </span>\n        <div>\n          <n-checkbox size=\"small\" v-model:checked=\"data.rotation.useEmitterRotation\" :disabled=\"!data.rotation.isEnabled\" @update:checked=\"update('rotation')\"/>\n        </div>\n      </div>\n\n      <!-- XYZ -->\n      <div class=\"particle-config-item\">\n        <span>XYZ</span>\n        <div class=\"flex\">\n          <EsInputNumber v-model:value=\"data.rotation.x\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.rotation.isEnabled\"\n                         :min=\"0\" :max=\"Infinity\" :decimal=\"2\" unit=\"°\" @change=\"update('rotation')\"/>\n          <EsInputNumber v-model:value=\"data.rotation.y\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.rotation.isEnabled\"\n                         :min=\"0\" :max=\"Infinity\" :decimal=\"2\" unit=\"°\" @change=\"update('rotation')\"/>\n          <EsInputNumber v-model:value=\"data.rotation.z\" size=\"tiny\" :show-button=\"false\" :disabled=\"!data.rotation.isEnabled\"\n                         :min=\"0\" :max=\"Infinity\" :decimal=\"2\" unit=\"°\" @change=\"update('rotation')\"/>\n        </div>\n      </div>\n    </n-collapse-item>\n  </n-collapse>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/particle/initializer/Sidebar.Particle.Initializer.Body.vue",
    "content": "<script setup lang=\"ts\">\nimport {ref, reactive, watch, onMounted, onBeforeUnmount, nextTick, toRaw} from \"vue\";\nimport {Color, CubeTexture, Texture, TextureLoader} from 'three';\nimport { Hooks,ParticleSystem } from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport EsTexture from \"@/components/es/EsTexture.vue\";\n\nconst props = withDefaults(defineProps<{\n  body: IParticle.Config['init']['body'],\n}>(), {\n  body: () => ({\n    isEnabled: false,\n    body: {\n      type: \"Sprite\",\n      uuid: \"\",\n    }\n  })\n})\nconst emits = defineEmits(['update:body'])\n\nconst initData = reactive(JSON.parse(JSON.stringify(props.body)));\nconst options = [\n  {label: t(\"layout.sider.particle.Picture\"), value: 'Sprite'},\n  {label: t(\"layout.sider.particle.Mesh\"), value: 'Mesh'},\n  {label: t(\"layout.sider.particle.Point\"), value: 'Point'},\n];\nconst spriteTexture = ref<Color | Texture | CubeTexture | null>(null)\nconst meshSource = ref('basic');\nconst builtIn = ref('box');\nconst builtInMesh = [\n  {label: t(\"extra.resource.model.Box\"), value: 'box'},\n  {label: t(\"extra.resource.model.Capsule\"), value: 'capsule'},\n  {label: t(\"extra.resource.model.Circle\"), value: 'circle'},\n  {label: t(\"extra.resource.model.Cylinder\"), value: 'cylinder'},\n  {label: t(\"extra.resource.model.Tetrahedron\"), value: 'tetrahedron'},\n  {label: t(\"extra.resource.model.Octahedron\"), value: 'octahedron'},\n  {label: t(\"extra.resource.model.Dodecahedron\"), value: 'dodecahedron'},\n  {label: t(\"extra.resource.model.Icosahedron\"), value: 'icosahedron'},\n  {label: t(\"extra.resource.model.Double cone\"), value: 'doubleCone'},\n  {label: t(\"extra.resource.model.Plane\"), value: 'plane'},\n  {label: t(\"extra.resource.model.Ring\"), value: 'ring'},\n  {label: t(\"extra.resource.model.Sphere\"), value: 'sphere'},\n  {label: t(\"extra.resource.model.Torus\"), value: 'torus'},\n  {label: t(\"extra.resource.model.TorusKnot\"), value: 'torusKnot'},\n  {label: t(\"extra.resource.model.Tube\"), value: 'tube'},\n  {label: t(\"extra.resource.model.Teapot\"), value: 'teapot'},\n]\n\nwatch(() => props.body, () => {\n  updateUI();\n})\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", updateUI);\n\n  updateUI();\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", updateUI);\n})\n\nfunction updateUI() {\n  if (!props.body?.body) {\n    initData.body.type = '';\n    return;\n  }\n\n  initData.body.type = props.body.body.type;\n  initData.body.uuid = props.body.body.uuid;\n  initData.isEnabled = props.body.isEnabled;\n\n  switch (initData.body.type) {\n    case 'Sprite':\n      const sprite = ParticleSystem.Body3DMap.get(initData.body.uuid);\n      // @ts-ignore\n      if(sprite?.material?.map){\n        // @ts-ignore\n        spriteTexture.value = sprite.material.map;\n      }else{\n        spriteTexture.value = null;\n      }\n      break;\n    case 'Mesh':\n      const mesh = ParticleSystem.Body3DMap.get(initData.body.uuid);\n      if(meshSource.value === 'basic'){\n        if(!mesh) {\n          builtIn.value = 'box';\n          return;\n        }\n        // 内置模型名称首字母是大写的，改为小写\n        builtIn.value = mesh.name.charAt(0).toLowerCase() + mesh.name.slice(1);\n      }\n      break;\n  }\n\n  // spriteTexture不能是空对象，否则从其他类型切换过来时，update方法传过去空对象，会造成渲染报错\n  if(spriteTexture.value && Object.keys(spriteTexture.value).length === 0){\n    spriteTexture.value = new TextureLoader().load(\"/static/resource/textures/dot.png\")\n  }\n}\n\nasync function update(isObjectChange = false) {\n  if (!initData.body.type) return;\n\n  await nextTick();\n\n  const getObject = () => {\n    if (initData.body.type === 'Sprite') {\n      return toRaw(spriteTexture.value)\n    } else if (initData.body.type === 'Point') {\n      return 'Point'\n    } else {\n      return builtIn.value;\n    }\n  }\n  Hooks.useDispatchSignal(\"particleBodyChanged\", JSON.parse(JSON.stringify(initData)), getObject(), isObjectChange, (_data: IParticle.Config['init']['body']) => {\n    emits('update:body', JSON.parse(JSON.stringify(_data)));\n  });\n}\n</script>\n\n<template>\n  <!-- 是否启用 -->\n  <div class=\"particle-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"initData.isEnabled\" @update:checked=\"update(false)\"/>\n    </div>\n  </div>\n\n  <div class=\"particle-config-item\">\n    <span>{{ t(`layout.sider.particle.Type`) }}</span>\n    <div>\n      <n-select v-model:value=\"initData.body.type\" :options=\"options\" :disabled=\"!initData.isEnabled\"\n                @update:value=\"update(true)\"  size=\"small\"/>\n    </div>\n  </div>\n\n  <template v-if=\"initData.body.type === 'Sprite'\">\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Picture`) }}</span>\n      <div>\n        <EsTexture v-model:texture=\"spriteTexture\" :disabled=\"!initData.isEnabled\"\n                   @change=\"update(true)\" width=\"40px\" height=\"40px\" class=\"ml-5px\"/>\n      </div>\n    </div>\n  </template>\n\n  <template v-else-if=\"initData.body.type === 'Mesh'\">\n    <!-- Mesh来源 -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Mesh source`) }}</span>\n      <div>\n        <n-radio-group v-model:value=\"meshSource\" name=\"MeshSource\">\n          <n-space>\n            <n-radio value=\"basic\">{{ t(`layout.sider.particle.Built-in`) }}</n-radio>\n            <n-radio value=\"scene\" disabled>{{ t(`layout.sider.Scene`) }}</n-radio>\n          </n-space>\n        </n-radio-group>\n      </div>\n    </div>\n\n    <!-- 内置Mesh -->\n    <div class=\"particle-config-item\" v-if=\"meshSource === 'basic'\">\n      <span>{{ t(`layout.sider.particle.Built-in`) }}</span>\n      <n-select v-model:value=\"builtIn\" :options=\"builtInMesh\" :disabled=\"!initData.isEnabled\"\n                @update:value=\"update(true)\"/>\n    </div>\n  </template>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/particle/initializer/Sidebar.Particle.Initializer.Velocity.vue",
    "content": "<script setup lang=\"ts\">\nimport { ref, reactive, watch, onMounted, onBeforeUnmount } from \"vue\";\nimport {t} from \"@/language\";\nimport { Hooks } from \"@astral3d/engine\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nconst props = withDefaults(defineProps<{\n  velocity:  IParticle.Config['init']['velocity']['velocity'],\n  disabled:boolean\n}>(), {\n  velocity: null,\n  disabled:false\n})\nconst emits = defineEmits(['update:velocity','update'])\n\nconst initData = reactive({\n  RadialVelocity:{\n    radius: 1,\n    x: 0,\n    y: 1,\n    z: 0,\n    theta: 90\n  },\n  PolarVelocity:{\n    radius: 1,\n    theta: 0,\n    phi: 0,\n    tha: 90\n  },\n  VectorVelocity:{\n    x: 0,\n    y: 1,\n    z: 0,\n    theta: 90\n  },\n})\nconst select = ref('');\nconst options = [\n  {label: t(\"layout.sider.particle.Radial\"),value:'RadialVelocity'},\n  {label: t(\"layout.sider.particle.Polar\"),value:'PolarVelocity'},\n  {label: t(\"layout.sider.particle.Vector\"),value:'VectorVelocity'},\n];\n\nwatch(() => props.velocity,() => {\n  updateUI();\n})\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", updateUI);\n\n  updateUI();\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", updateUI);\n})\n\nfunction update(){\n  if(!select.value) return;\n\n  emits('update:velocity', {\n    type: select.value,\n    ...initData[select.value]\n  });\n\n  emits('update')\n}\n\nfunction updateUI(){\n  if(!props.velocity){\n    select.value = '';\n    return;\n  }\n\n  select.value = props.velocity.type;\n  const velocity = initData[props.velocity.type];\n  Object.keys(velocity).forEach(key => {\n    // @ts-ignore\n    if(props.velocity[key] === undefined) return;\n    // @ts-ignore\n    velocity[key] = props.velocity[key];\n  })\n}\n</script>\n\n<template>\n  <div class=\"particle-config-item\">\n    <span>{{ t(`layout.sider.particle.Type`) }}</span>\n    <div>\n      <n-select v-model:value=\"select\" :options=\"options\" :disabled=\"disabled\" @update:value=\"update\"  size=\"small\"/>\n    </div>\n  </div>\n\n  <template v-if=\"select === 'RadialVelocity'\">\n    <!--  半径  -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Radius`) }}</span>\n      <EsInputNumber v-model:value=\"initData.RadialVelocity.radius\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                     :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n    </div>\n\n    <!--  theta angle   -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Theta`) }}</span>\n      <EsInputNumber v-model:value=\"initData.RadialVelocity.theta\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                     :min=\"0\" :max=\"360\" :decimal=\"2\" unit=\"°\" @change=\"update()\"/>\n    </div>\n\n    <!-- 方向  -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Direction`) }}</span>\n      <div class=\"flex\">\n        <EsInputNumber v-model:value=\"initData.RadialVelocity.x\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.RadialVelocity.y\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.RadialVelocity.z\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n      </div>\n    </div>\n  </template>\n\n  <template v-else-if=\"select === 'PolarVelocity'\">\n    <!--  半径  -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Radius`) }}</span>\n      <EsInputNumber v-model:value=\"initData.PolarVelocity.radius\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                     :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n    </div>\n\n    <!--  俯仰角   -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Theta`) }}</span>\n      <EsInputNumber v-model:value=\"initData.PolarVelocity.theta\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                     :min=\"0\" :max=\"360\" :decimal=\"2\" unit=\"°\" @change=\"update()\"/>\n    </div>\n\n    <!--  方位角   -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Phi`) }}</span>\n      <EsInputNumber v-model:value=\"initData.PolarVelocity.phi\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                     :min=\"0\" :max=\"360\" :decimal=\"2\" unit=\"°\" @change=\"update()\"/>\n    </div>\n\n    <!--  theta angle   -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`preview.Angle`) }}</span>\n      <EsInputNumber v-model:value=\"initData.PolarVelocity.tha\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                     :min=\"0\" :max=\"360\" :decimal=\"2\" unit=\"°\" @change=\"update()\"/>\n    </div>\n  </template>\n\n  <template v-else-if=\"select === 'VectorVelocity'\">\n    <!--  theta angle   -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Theta`) }}</span>\n      <EsInputNumber v-model:value=\"initData.VectorVelocity.theta\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                     :min=\"0\" :max=\"360\" :decimal=\"2\" unit=\"°\" @change=\"update()\"/>\n    </div>\n\n    <!-- 方向  -->\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Direction`) }}</span>\n      <div class=\"flex\">\n        <EsInputNumber v-model:value=\"initData.VectorVelocity.x\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.VectorVelocity.y\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.VectorVelocity.z\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n      </div>\n    </div>\n  </template>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/particle/initializer/Sidebar.Particle.Initializer.Zones.vue",
    "content": "<script setup lang=\"ts\">\nimport { ref, reactive, watch, onMounted, onBeforeUnmount } from \"vue\";\nimport {t} from \"@/language\";\nimport { Hooks } from \"@astral3d/engine\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nconst props = withDefaults(defineProps<{\n  zone:  IParticle.Config['init']['position']['zone'],\n  disabled:boolean\n}>(), {\n  zone: null,\n  disabled:false\n})\nconst emits = defineEmits(['update:zone','update'])\n\nconst initData = reactive({\n  PointZone:{\n    x:0,\n    y:0,\n    z:0\n  },\n  LineZone:{\n    x1: 0,\n    x2: 0,\n    y1: 0,\n    y2: 0,\n    z1: 0,\n    z2: 0,\n  },\n  BoxZone:{\n    depth: 1,\n    height: 1,\n    width: 1,\n    x: 0,\n    y: 0,\n    z: 0,\n  },\n  SphereZone:{\n    radius:1,\n    x: 0,\n    y: 0,\n    z: 0,\n  }\n})\nconst select = ref('');\nconst options = [\n  {label: t(\"layout.sider.particle.Point\"),value:'PointZone'},\n  {label: t(\"layout.sider.particle.Line\"),value:'LineZone'},\n  {label: t(\"layout.sider.particle.Box\"),value:'BoxZone'},\n  {label: t(\"layout.sider.particle.Sphere\"),value:'SphereZone'},\n  // {label: t(\"layout.sider.particle.Mesh\"),value:'MeshZone'},\n];\n\nwatch(() => props.zone,() => {\n  updateUI();\n})\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", updateUI);\n\n  updateUI();\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", updateUI);\n})\n\nfunction update(){\n  if(!select.value) return;\n\n  emits('update:zone', {\n    type: select.value,\n    ...initData[select.value]\n  });\n\n  emits('update')\n}\n\nfunction updateUI(){\n  if(!props.zone){\n    select.value = '';\n    return;\n  }\n\n  select.value = props.zone.type;\n  const zone = initData[props.zone.type];\n  Object.keys(zone).forEach(key => {\n    // @ts-ignore\n    if(props.zone[key] === undefined) return;\n    // @ts-ignore\n    zone[key] = props.zone[key];\n  })\n}\n</script>\n\n<template>\n  <div class=\"particle-config-item\">\n    <span>{{ t(`layout.sider.particle.Type`) }}</span>\n    <div>\n      <n-select v-model:value=\"select\" :options=\"options\" :disabled=\"disabled\" @update:value=\"update\" size=\"small\"/>\n    </div>\n  </div>\n\n  <template v-if=\"select === 'PointZone'\">\n    <div class=\"particle-config-item\">\n      <span>{{ t(`other.Coordinate`) }}</span>\n      <div class=\"flex\">\n        <EsInputNumber v-model:value=\"initData.PointZone.x\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.PointZone.y\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.PointZone.z\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n      </div>\n    </div>\n  </template>\n\n  <template v-else-if=\"select === 'LineZone'\">\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.Start point`) }}</span>\n      <div class=\"flex\">\n        <EsInputNumber v-model:value=\"initData.LineZone.x1\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.LineZone.y1\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.LineZone.z1\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n      </div>\n    </div>\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.particle.End point`) }}</span>\n      <div class=\"flex\">\n        <EsInputNumber v-model:value=\"initData.LineZone.x2\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.LineZone.y2\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.LineZone.z2\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n      </div>\n    </div>\n  </template>\n\n  <template v-else-if=\"select === 'BoxZone'\">\n    <div class=\"particle-config-item\">\n      <span>{{ t(`other.Coordinate`) }}</span>\n      <div class=\"flex\">\n        <EsInputNumber v-model:value=\"initData.BoxZone.x\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.BoxZone.y\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.BoxZone.z\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n      </div>\n    </div>\n    <div class=\"particle-config-item\">\n      <span>{{ t(`other.Width`) }}</span>\n      <div>\n        <EsInputNumber v-model:value=\"initData.BoxZone.width\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"0\" :max=\"Infinity\" @change=\"update()\"/>\n      </div>\n    </div>\n    <div class=\"particle-config-item\">\n      <span>{{ t(`other.Height`) }}</span>\n      <div>\n        <EsInputNumber v-model:value=\"initData.BoxZone.height\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"0\" :max=\"Infinity\" @change=\"update()\"/>\n      </div>\n    </div>\n    <div class=\"particle-config-item\">\n      <span>{{ t(`other.Depth`) }}</span>\n      <div>\n        <EsInputNumber v-model:value=\"initData.BoxZone.depth\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"0\" :max=\"Infinity\" @change=\"update()\"/>\n      </div>\n    </div>\n  </template>\n\n  <template v-else-if=\"select === 'SphereZone'\">\n    <div class=\"particle-config-item\">\n      <span>{{ t(`other.Coordinate`) }}</span>\n      <div class=\"flex\">\n        <EsInputNumber v-model:value=\"initData.SphereZone.x\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.SphereZone.y\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n        <EsInputNumber v-model:value=\"initData.SphereZone.z\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"-Infinity\" :max=\"Infinity\" :decimal=\"2\" @change=\"update()\"/>\n      </div>\n    </div>\n    <div class=\"particle-config-item\">\n      <span>{{ t(`layout.sider.postProcessing.Radius`) }}</span>\n      <div>\n        <EsInputNumber v-model:value=\"initData.SphereZone.radius\" size=\"tiny\" :show-button=\"false\" :disabled=\"disabled\"\n                       :min=\"0\" :max=\"Infinity\" @change=\"update()\"/>\n      </div>\n    </div>\n  </template>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/renderer/Sidebar.Renderer.CSM.vue",
    "content": "<template>\n  <n-form label-placement=\"left\" :label-width=\"90\" label-align=\"left\" size=\"small\">\n    <n-form-item :label=\"t('other.Enable')\">\n      <n-checkbox v-model:checked=\"csmConfig.enabled\" @update:checked=\"updateEnabled\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Fade')\">\n      <n-checkbox v-model:checked=\"csmConfig.fade\" :disabled=\"disabled\"\n                  @update:checked=\"(v) => updateProperty('fade',v)\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Shadow far')\">\n      <EsInputNumber v-model:value=\"csmConfig.maxFar\" size=\"tiny\" :show-button=\"false\"\n                     :min=\"0\" :max=\"Infinity\" :decimal=\"0\" :disabled=\"disabled\"\n                     @change=\"(v) => updateProperty('maxFar', v)\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Frustum split mode')\">\n      <n-select v-model:value=\"csmConfig.mode\" :options=\"csmModeOptions\"\n                :disabled=\"disabled\" @update:value=\"(v) => updateProperty('mode', v)\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Shadow map')\">\n      <n-select v-model:value=\"csmConfig.shadowMapSize\" :options=\"shadowMapSizeOptions\"\n                :disabled=\"disabled\" @update:value=\"updateShadowMapSize\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Light intensity')\">\n      <EsInputNumber v-model:value=\"csmConfig.lightIntensity\" size=\"tiny\"\n                     :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"0\" :disabled=\"disabled\"\n                     @change=\"updateLightIntensity\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Light color')\">\n      <n-color-picker v-model:value=\"csmConfig.lightColor\" :show-alpha=\"false\" size=\"small\"\n                      @update:value=\"updateLightColor\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Light direction x')\">\n      <n-slider v-model:value=\"csmConfig.lightDirectionX\" :step=\"0.001\" :min=\"-1\" :max=\"1\"\n                :disabled=\"disabled\" @update:value=\"(v) => updateLightDirection('x',v)\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Light direction y')\">\n      <n-slider v-model:value=\"csmConfig.lightDirectionY\" :step=\"0.001\" :min=\"-1\" :max=\"1\"\n                :disabled=\"disabled\" @update:value=\"(v) => updateLightDirection('y', v)\"/>\n    </n-form-item>\n\n    <n-form-item :label=\"t('layout.sider.rendererConfig.Light direction z')\">\n      <n-slider v-model:value=\"csmConfig.lightDirectionZ\" :step=\"0.001\" :min=\"-1\" :max=\"1\"\n                :disabled=\"disabled\" @update:value=\"(v) => updateLightDirection('z', v)\"/>\n    </n-form-item>\n  </n-form>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, onMounted, reactive} from \"vue\";\nimport {t} from \"@/language\";\nimport {App, Utils} from '@astral3d/engine';\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\n\nconst csmConfig = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"csm\"))));\n\nconst disabled = computed(() => !csmConfig.enabled);\n//CSM mode选项\nconst csmModeOptions = [\n  {label: \"practical\", value: \"practical\"},\n  {label: \"logarithmic\", value: \"logarithmic\"},\n  {label: \"uniform\", value: \"uniform\"}\n];\n//CSM shadowMapSize选项\nconst shadowMapSizeOptions = [\n  {label: \"256 * 256\", value: 256},\n  {label: \"512 * 512\", value: 512},\n  {label: \"1024 * 1024\", value: 1024},\n  {label: \"2048 * 2048\", value: 2048},\n  {label: \"4096 * 4096\", value: 4096},\n  {label: \"8192 * 8192\", value: 8192},\n  // { label: \"16384 * 16384\", value: 16384 }, // 16K的选项不开发给用户\n];\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(csmConfig, App.project.getKey(\"csm\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n});\n\nfunction updateEnabled(isEnabled: boolean) {\n  App.project.setKey(\"csm.enabled\",isEnabled);\n}\n\nfunction updateProperty(key, value) {\n  App.project.setKey(`csm.${key}`,value);\n}\n\nfunction updateShadowMapSize(size: 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384) {\n  App.project.setKey(\"csm.shadowMapSize\",size);\n}\n\nfunction updateLightColor(color: string) {\n  App.project.setKey(\"csm.lightColor\",color);\n}\n\nfunction updateLightIntensity(intensity: number) {\n  App.project.setKey(\"csm.lightIntensity\",intensity);\n}\n\nfunction updateLightDirection(direction: \"x\" | \"y\" | \"z\", value: number) {\n  App.project.setKey(`csm.lightDirection${direction.toUpperCase()}`,value);\n}\n</script>\n\n<style lang=\"less\" scoped>\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/scene/Sidebar.Scene.ProjectSetting.vue",
    "content": "<script lang=\"ts\" setup>\nimport {ref, onMounted} from \"vue\";\nimport {t} from \"@/language\";\nimport {SCENE_TYPE} from \"@/utils/common/constant\";\nimport {App} from \"@astral3d/engine\";\nimport {getServiceStaticFile} from \"@/utils/common/file\";\n\nconst data = ref(App.project.getKey(\"sceneInfo\"));\n\nonMounted(() => {\n  data.value = App.project.getKey(\"sceneInfo\");\n})\n\nfunction handleScreenshot() {\n  window.viewer.getViewportImage().then((image:HTMLImageElement) => {\n    data.value.coverPicture = image.src;\n    setDataFieldValue('coverPicture',image.src);\n  })\n}\n\nfunction setDataFieldValue(key:string,value:unknown){\n  App.project.setKey(`sceneInfo.${key}`,value);\n}\n</script>\n\n<template>\n  <n-form label-placement=\"left\" :label-width=\"90\" label-align=\"left\" size=\"small\">\n    <!-- 场景名称 -->\n    <n-form-item :label=\"t('scene.Name')\">\n      <n-input v-model:value=\"data.sceneName\" :placeholder=\"t('layout.sider.project.please enter the scene name')\"\n               @change=\"(val) => { setDataFieldValue('sceneName', val) }\"/>\n    </n-form-item>\n\n    <!-- 场景分类 -->\n    <n-form-item :label=\"t('scene.Classification')\">\n      <n-select v-model:value=\"data.sceneType\" filterable tag :options=\"SCENE_TYPE\"\n                @update:value=\"(val) => { setDataFieldValue('sceneType', val) }\"/>\n    </n-form-item>\n\n    <!-- 场景描述 -->\n    <n-form-item :label=\"t('scene.Introduction')\">\n      <n-input v-model:value=\"data.sceneIntroduction\" type=\"textarea\"\n               :placeholder=\"t('layout.sider.project[\\'please enter the scene introduction\\']')\"\n               :autosize=\"{ minRows: 2 }\"\n               @change=\"(val) => { setDataFieldValue('sceneIntroduction', val) }\"/>\n    </n-form-item>\n\n    <!-- 场景版本 -->\n    <n-form-item :label=\"t('other.Version')\">\n      <n-input-number v-model:value=\"data.sceneVersion\" button-placement=\"both\" class=\"text-center\"\n                      @update:value=\"(val) => { setDataFieldValue('sceneVersion', val) }\"/>\n    </n-form-item>\n\n    <!-- 项目类型 -->\n    <n-form-item :label=\"t('scene.Project type')\">\n      <n-tag type=\"success\" :bordered=\"false\">\n        {{ data.projectType === 0 ? \"Web3D\" : \"WebGIS\" }}\n      </n-tag>\n    </n-form-item>\n\n    <!--  封面图  -->\n    <n-form-item :label=\"t('scene.Cover Picture')\">\n      <div class=\"w-full flex flex-col\">\n        <n-image :src=\"getServiceStaticFile(data.coverPicture) || '/static/images/placeholder/截屏占位图.png'\" :alt=\"t('scene.Screenshot')\"/>\n        <n-button @click=\"handleScreenshot\">{{ t('scene.Screenshot') }}</n-button>\n      </div>\n    </n-form-item>\n  </n-form>\n</template>\n\n<style scoped lang=\"less\">\n.n-image {\n  :deep(img) {\n    width: 100%;\n    border-radius: 4px;\n    margin-bottom: 0.25rem;\n  }\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/scene/Sidebar.Scene.Setting.vue",
    "content": "<template>\n  <n-form label-placement=\"left\" :label-width=\"90\" label-align=\"left\" size=\"small\">\n    <!-- background -->\n    <n-form-item :label=\"t('layout.sider.sceneConfig.Background')\">\n      <template class=\"w-full flex items-center justify-between\">\n        <n-select v-model:value=\"backgroundType\" @update:value=\"onBackgroundChanged\"\n                  :options=\"[{ label: '', value: 'None' }, { label: 'Color', value: 'Color' }, { label: 'Texture', value: 'Texture' }, { label: 'Equirect', value: 'Equirectangular' }]\"/>\n\n        <n-color-picker v-if=\"backgroundType === 'Color'\" v-model:value=\"backgroundColor\" :show-alpha=\"false\" :render-label=\"() => ''\"\n                        :modes=\"['hex']\" @update:value=\"onBackgroundChanged\" size=\"small\"  class=\"ml-5px w-36px\"/>\n\n        <EsTexture v-else-if=\"backgroundType === 'Texture'\" v-model:texture=\"backgroundTexture\"\n                   @change=\"onBackgroundChanged\" width=\"26px\" height=\"26px\" class=\"ml-5px\"/>\n\n        <EsTexture v-else-if=\"backgroundType === 'Equirectangular'\" v-model:texture=\"backgroundEquirectangularTexture\"\n                   @change=\"onBackgroundChanged\" width=\"26px\" height=\"26px\" class=\"ml-5px\" />\n      </template>\n    </n-form-item>\n    <div v-if=\"backgroundType === 'Equirectangular'\" class=\"flex justify-start items-center pl-90px pb-1\">\n      <EsInputNumber v-model:value=\"backgroundBlurriness\" class=\"w-30% ml-5px\"\n                     size=\"tiny\" :show-button=\"false\" :min=\"0\" :max=\"1\" :decimal=\"2\"\n                     @change=\"onBackgroundChanged\" />\n      <EsInputNumber v-model:value=\"backgroundIntensity\" class=\"w-30% ml-5px\"\n                     size=\"tiny\" :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\"\n                     @change=\"onBackgroundChanged\" />\n      <EsInputNumber v-model:value=\"backgroundRotation\" class=\"w-30% ml-5px\"\n                     size=\"tiny\" :show-button=\"false\" :min=\"-180\" :max=\"180\" :decimal=\"1\" unit=\"°\"\n                     @change=\"onBackgroundChanged\" />\n    </div>\n\n    <!-- environment -->\n    <n-form-item :label=\"t('layout.sider.sceneConfig.Environment')\">\n      <n-select v-model:value=\"environmentSelect\" @update:value=\"onEnvironmentChanged\"\n                :options=\"[{ label: '', value: 'None' }, { label: 'Equirect', value: 'Equirectangular' }, { label: 'Modelviewer', value: 'ModelViewer' }]\"/>\n\n      <EsTexture v-if=\"environmentSelect === 'Equirectangular'\" v-model:texture=\"environmentTexture\"\n                 @change=\"onEnvironmentChanged\" width=\"26px\" height=\"26px\" class=\"ml-5px\"/>\n    </n-form-item>\n\n    <!-- 网格 -->\n    <n-form-item :label=\"t('layout.sider.sceneConfig.Grid')\">\n      <n-switch size=\"small\" v-model:value=\"grid\"\n                @update:value=\"Hooks.useDispatchSignal('showGridChanged', grid)\"/>\n    </n-form-item>\n    <!-- 辅助 -->\n    <n-form-item :label=\"t('layout.sider.sceneConfig.Helpers')\">\n      <n-switch size=\"small\" v-model:value=\"helpers\"\n                @update:value=\"handleShowHelpers\"/>\n    </n-form-item>\n  </n-form>\n</template>\n\n<script setup lang=\"ts\">\nimport {nextTick, onBeforeUnmount, onMounted, ref, toRaw} from \"vue\";\nimport {Color,Texture,CubeTexture,EquirectangularReflectionMapping} from \"three\";\nimport {App,Hooks} from \"@astral3d/engine\";\nimport {t} from \"@/language\";\nimport EsInputNumber from \"@/components/es/EsInputNumber.vue\";\nimport EsTexture from \"@/components/es/EsTexture.vue\";\n\n//背景\nconst backgroundType = ref(\"Equirectangular\");\nconst backgroundColor = ref<string | number>('#000000');\nconst backgroundTexture = ref<Color | Texture | CubeTexture | null>(null);\nconst backgroundEquirectangularTexture = ref();\nconst backgroundBlurriness = ref(0);\nconst backgroundIntensity = ref(1);\nconst backgroundRotation = ref(0);\n//环境\nconst environmentSelect = ref(\"None\");\nconst environmentTexture = ref()\n// 网格\nconst grid = ref(true);\n// 辅助\nconst helpers = ref(true);\n\nonMounted(async () => {\n  await nextTick();\n  refreshUI();\n\n  Hooks.useAddSignal(\"sceneCleared\", refreshUI);\n  Hooks.useAddSignal(\"sceneGraphChanged\", refreshUI);\n})\n\nonBeforeUnmount(()=>{\n  Hooks.useRemoveSignal(\"sceneCleared\", refreshUI);\n  Hooks.useRemoveSignal(\"sceneGraphChanged\", refreshUI);\n})\n\n// 更新树及背景/环境\nfunction refreshUI() {\n  const scene = App.scene;\n\n  //背景\n  if (scene.background) {\n    if ((<Color>scene.background).isColor) {\n      backgroundType.value = 'Color';\n      backgroundColor.value = \"#\" + (<Color>scene.background).getHexString();\n    } else if ((<Texture>scene.background).isTexture) {\n      if ((<Texture>scene.background).mapping === EquirectangularReflectionMapping) {\n        backgroundEquirectangularTexture.value = scene.background;\n        backgroundBlurriness.value = scene.backgroundBlurriness;\n        backgroundIntensity.value = scene.backgroundIntensity;\n\n        backgroundType.value = 'Equirectangular';\n      } else {\n        backgroundTexture.value = scene.background;\n\n        backgroundType.value = 'Texture';\n      }\n    }\n  } else {\n    backgroundType.value = 'None';\n  }\n\n  //环境\n  if (scene.environment) {\n    if (scene.environment.mapping === EquirectangularReflectionMapping) {\n      environmentTexture.value = scene.environment;\n      environmentSelect.value = \"Equirectangular\";\n    }else if(scene.environment.isRenderTargetTexture) {\n      environmentSelect.value = 'ModelViewer';\n    }\n  } else {\n    environmentSelect.value = \"None\";\n  }\n}\n\n//background Change Event\nfunction onBackgroundChanged() {\n  Hooks.useDispatchSignal(\n      \"sceneBackgroundChanged\",\n      toRaw(backgroundType.value),\n      toRaw(backgroundColor.value),\n      toRaw(backgroundTexture.value),\n      toRaw(backgroundEquirectangularTexture.value),\n      toRaw(backgroundBlurriness.value),\n      toRaw(backgroundIntensity.value),\n      toRaw(backgroundRotation.value),\n  );\n}\n\n//environment Change Event\nfunction onEnvironmentChanged() {\n  Hooks.useDispatchSignal(\"sceneEnvironmentChanged\", toRaw(environmentSelect.value), toRaw(environmentTexture.value));\n}\n\nfunction handleShowHelpers(){\n  window.viewer.edit = {\n    enabled: helpers.value,\n    helpers: true,\n    gizmo: true\n  }\n\n  window.viewer.render();\n}\n</script>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/weather/Sidebar.Weather.Fog.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst fogConfig = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"weather.fog\"))));\n\nconst disabled = computed(() => !fogConfig.enabled);\nconst fogType = computed(() => fogConfig.type);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(fogConfig, App.project.getKey(\"weather.fog\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleFogSettingsChanged() {\n  App.project.setKey(\"weather.fog\",toRaw(fogConfig));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"fogConfig.enabled\"\n                  @update:checked=\"handleFogSettingsChanged\"/>\n    </div>\n  </div>\n\n  <!-- Fog Type -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.weather.Type`) }}</span>\n    <div>\n      <n-radio-group v-model:value=\"fogConfig.type\" :disabled=\"disabled\" name=\"fogType\"\n                     @update:value=\"handleFogSettingsChanged\">\n        <n-radio value=\"Fog\">Linear</n-radio>\n        <n-radio value=\"FogExp2\">Exponential</n-radio>\n      </n-radio-group>\n    </div>\n  </div>\n\n  <!-- Fog Color -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.weather.Color`) }}</span>\n    <div>\n      <n-color-picker v-model:value=\"fogConfig.color\" :disabled=\"disabled\"\n                      :show-alpha=\"false\" :modes=\"['hex']\" size=\"small\" @update:value=\"handleFogSettingsChanged\"\n                      :render-label=\"() => ''\"/>\n    </div>\n  </div>\n\n  <!-- Fog Near -->\n  <div class=\"sidebar-config-item\" v-if=\"fogType === 'Fog'\">\n    <span>{{ t(`layout.sider.weather.Near`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"fogConfig.near\" :disabled=\"disabled\" size=\"tiny\"\n                     :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"handleFogSettingsChanged\"/>\n    </div>\n  </div>\n\n  <!-- Fog Far -->\n  <div class=\"sidebar-config-item\" v-if=\"fogType === 'Fog'\">\n    <span>{{ t(`layout.sider.weather.Far`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"fogConfig.far\" :disabled=\"disabled\" size=\"tiny\"\n                     :show-button=\"false\" :min=\"0\" :max=\"Infinity\" :decimal=\"2\" @change=\"handleFogSettingsChanged\"/>\n    </div>\n  </div>\n\n  <!-- Fog Density -->\n  <div class=\"sidebar-config-item\" v-if=\"fogType === 'FogExp2'\">\n    <span>{{ t(`layout.sider.weather.Density`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"fogConfig.density\" :disabled=\"disabled\" size=\"tiny\"\n                     :show-button=\"false\" :min=\"0\" :max=\"0.1\" :decimal=\"3\" @change=\"handleFogSettingsChanged\"/>\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\"></style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/weather/Sidebar.Weather.Rain.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport {t} from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst rainConfig = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"weather.rain\"))));\n\nconst disabled = computed(() => !rainConfig.enabled);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(rainConfig, App.project.getKey(\"weather.rain\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\n\nfunction handleRainSettingsChanged() {\n  App.project.setKey(\"weather.rain\",toRaw(rainConfig));\n}\n</script>\n\n<template>\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`other.Enable`) }}</span>\n    <div>\n      <n-checkbox size=\"small\" v-model:checked=\"rainConfig.enabled\"\n                  @update:checked=\"handleRainSettingsChanged\"/>\n    </div>\n  </div>\n\n  <!-- Rain Speed -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.weather.Speed`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"rainConfig.speed\" :disabled=\"disabled\" size=\"tiny\"\n                     :show-button=\"false\" :min=\"0\" :max=\"10\" :decimal=\"1\" @change=\"handleRainSettingsChanged\"/>\n    </div>\n  </div>\n\n  <!-- Rain Color -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.weather.Color`) }}</span>\n    <div>\n      <n-color-picker v-model:value=\"rainConfig.color\" :disabled=\"disabled\"\n                      :show-alpha=\"false\" :modes=\"['hex']\" size=\"small\" @update:value=\"handleRainSettingsChanged\"\n                      :render-label=\"() => ''\"/>\n    </div>\n  </div>\n\n  <!-- Rain Size -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.weather.Size`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"rainConfig.size\" :disabled=\"disabled\" size=\"tiny\"\n                     :show-button=\"false\" :min=\"0\" :max=\"1\" :decimal=\"2\" @change=\"handleRainSettingsChanged\"/>\n    </div>\n  </div>\n\n  <!-- Rain Radian -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.weather.Radian`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"rainConfig.radian\" :disabled=\"disabled\" size=\"tiny\"\n                     :show-button=\"false\" :min=\"0\" :max=\"360\" :decimal=\"0\" @change=\"handleRainSettingsChanged\"/>\n    </div>\n  </div>\n\n  <!-- Rain Alpha -->\n  <div class=\"sidebar-config-item\">\n    <span>{{ t(`layout.sider.weather.Alpha`) }}</span>\n    <div>\n      <EsInputNumber v-model:value=\"rainConfig.alpha\" :disabled=\"disabled\" size=\"tiny\"\n                     :show-button=\"false\" :min=\"0\" :max=\"1\" :decimal=\"1\" @change=\"handleRainSettingsChanged\"/>\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\"></style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/sidebar/weather/Sidebar.Weather.Snow.vue",
    "content": "<script setup lang=\"ts\">\nimport {computed, onMounted, reactive, toRaw} from \"vue\";\nimport { t } from \"@/language\";\nimport {App,Utils} from \"@astral3d/engine\";\n\nconst snowConfig = reactive(JSON.parse(JSON.stringify(App.project.getKey(\"weather.snow\"))));\n\nconst disabled = computed(() => !snowConfig.enabled);\n\nonMounted(() => {\n  const viewerLoaded = () => {\n    Utils.deepAssign(snowConfig, App.project.getKey(\"weather.snow\"));\n\n    window.viewer.removeEventListener('loaded', viewerLoaded);\n  }\n  window.viewer.addEventListener('loaded', viewerLoaded);\n})\n\nfunction handleSnowSettingsChanged() {\n  App.project.setKey(\"weather.snow\",toRaw(snowConfig));\n}\n</script>\n\n<template>\n    <div class=\"sidebar-config-item\">\n        <span>{{ t(`other.Enable`) }}</span>\n        <div>\n            <n-checkbox size=\"small\" v-model:checked=\"snowConfig.enabled\"\n                @update:checked=\"handleSnowSettingsChanged\" />\n        </div>\n    </div>\n\n    <!-- Snow Speed -->\n    <div class=\"sidebar-config-item\">\n        <span>{{ t(`layout.sider.weather.Speed`) }}</span>\n        <div>\n            <EsInputNumber v-model:value=\"snowConfig.speed\" :disabled=\"disabled\" size=\"tiny\"\n                :show-button=\"false\" :min=\"0\" :max=\"10\" :decimal=\"1\" @change=\"handleSnowSettingsChanged\" />\n        </div>\n    </div>\n\n    <!-- Snow Density -->\n    <div class=\"sidebar-config-item\">\n        <span>{{ t(`layout.sider.weather.Density`) }}</span>\n        <div>\n            <EsInputNumber v-model:value=\"snowConfig.density\" :disabled=\"disabled\" size=\"tiny\"\n                :show-button=\"false\" :min=\"0\" :max=\"10\" :decimal=\"1\" @change=\"handleSnowSettingsChanged\" />\n        </div>\n    </div>\n\n    <!-- Snow Size -->\n    <div class=\"sidebar-config-item\">\n        <span>{{ t(`layout.sider.weather.Size`) }}</span>\n        <div>\n            <EsInputNumber v-model:value=\"snowConfig.size\" :disabled=\"disabled\" size=\"tiny\"\n                :show-button=\"false\" :min=\"0\" :max=\"1\" :decimal=\"2\" @change=\"handleSnowSettingsChanged\" />\n        </div>\n    </div>\n\n    <!-- Snow Alpha -->\n    <div class=\"sidebar-config-item\">\n        <span>{{ t(`layout.sider.weather.Alpha`) }}</span>\n        <div>\n            <EsInputNumber v-model:value=\"snowConfig.alpha\" :disabled=\"disabled\" size=\"tiny\"\n                :show-button=\"false\" :min=\"0\" :max=\"1\" :decimal=\"1\" @change=\"handleSnowSettingsChanged\" />\n        </div>\n    </div>\n\n    <!-- Snow Accumulation TODO:20250519:雪堆积效果错误，待修改 -->\n<!--    <div class=\"sidebar-config-item\">-->\n<!--        <span>{{ t(`layout.sider.weather.Accumulation`) }}</span>-->\n<!--        <div>-->\n<!--            <n-checkbox size=\"small\" :disabled=\"disabled\" v-model:checked=\"snowConfig.accumulation\"-->\n<!--                @update:checked=\"handleSnowSettingsChanged\" />-->\n<!--        </div>-->\n<!--    </div>-->\n</template>\n\n<style scoped lang=\"less\"></style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/viewport/BIMProperties.vue",
    "content": "<template>\n  <n-card v-if=\"visible\" class=\"absolute top-40px right-1 max-w-300px\" content-style=\"padding: 5px 10px;\">\n    <n-collapse accordion default-expanded-names=\"bim\">\n      <template #arrow=\"{ collapsed }\">\n        <n-icon v-if=\"collapsed\">\n          <PlanetOutline/>\n        </n-icon>\n        <n-icon v-else>\n          <SunnyOutline/>\n        </n-icon>\n      </template>\n\n      <n-collapse-item title=\"&nbsp;BIM 构件信息\" name=\"bim\">\n        <div class=\"max-h-360px overflow-y-auto\">\n          <n-descriptions v-for=\"(item, index) in info.parameters\" :key=\"index\" label-placement=\"left\"\n                          bordered size=\"small\" :column=\"1\">\n            <template #header>\n              <p class=\"py-2\">{{ item.GroupName }}</p>\n            </template>\n            <n-descriptions-item v-for=\"(it, i) in item.Parameters\" :key=\"i + it.name\" :label=\"it.name\">\n              {{ it.value }}\n            </n-descriptions-item>\n          </n-descriptions>\n        </div>\n      </n-collapse-item>\n    </n-collapse>\n  </n-card>\n</template>\n\n<script setup lang=\"ts\">\nimport {PlanetOutline, SunnyOutline} from \"@vicons/ionicons5\";\nimport {ref, onBeforeUnmount, onMounted} from \"vue\";\nimport {Hooks} from \"@astral3d/engine\";\n\nconst visible = ref(false);\nconst info = ref({\n  parameters: [{GroupName: \"\", Parameters: [{name: \"\", value: \"\"}]}]\n})\n\nfunction objectSelected(object) {\n  if (!object) {\n    visible.value = false;\n    return;\n  }\n  if (!object.userData.BIM) {\n    if (!object.parent || !object.parent.userData.BIM) {\n      visible.value = false;\n    } else {\n      visible.value = true;\n      info.value = object.parent.userData.BIM;\n    }\n  } else {\n    visible.value = true;\n    info.value = object.userData.BIM;\n  }\n}\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\", objectSelected);\n})\n\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectSelected\", objectSelected);\n})\n</script>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/viewport/IFCProperties.vue",
    "content": "<template>\n  <n-card v-if=\"visible\" class=\"absolute top-1 right-1 max-w-300px\" content-style=\"padding: 5px 10px;\">\n    <n-collapse accordion default-expanded-names=\"bim\">\n      <template #arrow=\"{collapsed}\">\n        <n-icon v-if=\"collapsed\">\n          <PlanetOutline/>\n        </n-icon>\n        <n-icon v-else>\n          <SunnyOutline/>\n        </n-icon>\n      </template>\n\n      <n-collapse-item title=\"&nbsp;BIM 构件信息\" name=\"bim\">\n        <div class=\"max-h-360px overflow-y-auto\">\n          <n-descriptions v-for=\"(item, index) in Object.keys(info)\" :key=\"index\"\n                          label-placement=\"left\" bordered size=\"small\" :column=\"1\">\n            <template #header>\n              <p class=\"py-2\">{{ item }}</p>\n            </template>\n\n            <n-descriptions-item v-if=\"typeof info[item] === 'number'\" :label=\"item\">\n              {{ info[item] }}\n            </n-descriptions-item>\n\n            <n-descriptions-item v-else v-for=\"(k,i) in Object.keys(info[item])\" :key=\"i\" :label=\"k\">\n              {{ info[item][k] }}\n            </n-descriptions-item>\n          </n-descriptions>\n        </div>\n      </n-collapse-item>\n    </n-collapse>\n  </n-card>\n</template>\n\n<script setup lang=\"ts\">\nimport {PlanetOutline, SunnyOutline} from \"@vicons/ionicons5\";\nimport {ref,onBeforeUnmount, onMounted} from \"vue\";\nimport {Hooks} from \"@astral3d/engine\";\n\nconst visible = ref(false);\nconst info = ref({})\n\nfunction handleVisible(show:boolean,properties:any = {}){\n  visible.value = show;\n  info.value = properties;\n}\n\nonMounted(()=>{\n  Hooks.useAddSignal(\"IFCPropertiesVisible\",handleVisible);\n})\n\nonBeforeUnmount(()=>{\n  Hooks.useRemoveSignal(\"IFCPropertiesVisible\",handleVisible);\n})\n</script>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/viewport/Toolbar.vue",
    "content": "<template>\n  <div class=\"absolute top-0 left-0 w-full h-0 z-10 flex justify-between pt-1\">\n    <div class=\"pl-2\">\n      <ViewportCamera/>\n\n      <ViewportShading/>\n    </div>\n\n    <div class=\"pr-2\">\n      <n-button-group size=\"small\">\n        <n-button :type=\"transform === 'translate' ? 'success' : 'default'\"\n                  @click.stop=\"handlerRadioChange('translate')\" round>\n          <template #icon>\n            <n-icon :size=\"16\">\n              <Move/>\n            </n-icon>\n          </template>\n        </n-button>\n        <n-button :type=\"transform === 'rotate' ? 'success' : 'default'\" @click.stop=\"handlerRadioChange('rotate')\">\n          <template #icon>\n            <n-icon :size=\"16\">\n              <Renew/>\n            </n-icon>\n          </template>\n        </n-button>\n        <n-button :type=\"transform === 'scale' ? 'success' : 'default'\" @click.stop=\"handlerRadioChange('scale')\" round>\n          <template #icon>\n            <n-icon :size=\"16\">\n              <Minimize/>\n            </n-icon>\n          </template>\n        </n-button>\n      </n-button-group>\n\n      <n-tooltip placement=\"bottom\" trigger=\"hover\">\n        <template #trigger>\n          <n-button circle size=\"small\" class=\"ml-10px\" @click.stop=\"handlerLocalChange\">\n            <template #icon>\n              <n-icon>\n                <Chart3D v-if=\"localValue\"/>\n                <Wikis v-else/>\n              </n-icon>\n            </template>\n          </n-button>\n        </template>\n        <span> {{ localValue ? t(\"layout.scene.toolbar.local\") : t(\"layout.scene.toolbar.world\") }} </span>\n      </n-tooltip>\n\n      <n-popover :show-arrow=\"false\" placement=\"bottom-end\" :style=\"{ padding: 0 }\">\n        <template #trigger>\n          <n-button circle size=\"small\" class=\"ml-10px\">\n            <template #icon>\n              <n-icon>\n                <Tools />\n              </n-icon>\n            </template>\n          </n-button>\n        </template>\n\n        <n-space item-style=\"display: flex;\" vertical>\n          <n-checkbox class=\"px-2 py-1\" size=\"small\"\n              v-for=\"tool in toolOptions\" :key=\"tool.key\"\n              v-model:checked=\"tool.checked\" :label=\"tool.label\"\n              @update:checked=\"(checked:boolean) => handleToolCheckedChange(tool,checked)\"\n          />\n        </n-space>\n      </n-popover>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {onMounted,onBeforeUnmount,ref} from \"vue\";\nimport {Move, Renew, Minimize, Wikis, Chart3D,Tools} from '@vicons/carbon';\nimport {Hooks,Utils} from '@astral3d/engine';\nimport {t} from \"@/language\";\nimport ViewportCamera from './ViewportCamera.vue';\nimport ViewportShading from './ViewportShading.vue';\n\nconst transform = ref(\"translate\");\nfunction handlerRadioChange(value: string) {\n  if(value === transform.value) return;\n\n  transform.value = value;\n  Hooks.useDispatchSignal(\"transformModeChanged\", value);\n}\n\nconst localValue = ref(false);\nfunction handlerLocalChange() {\n  localValue.value = !localValue.value;\n  Hooks.useDispatchSignal(\"spaceChanged\", localValue.value ? 'local' : 'world');\n}\n\ninterface ITool{\n  label:string,\n  key:string,\n  checked:boolean\n}\nconst toolOptions = ref<ITool[]>([\n  {\n    label: t(\"layout.scene.toolbar.Status monitoring\"),\n    key: 'stats',\n    checked:false\n  },\n]);\n\nlet stats;\nfunction handleToolCheckedChange(tool:ITool,checked:boolean){\n  switch (tool.key) {\n    case 'stats':\n      if(!stats){\n        stats = new Utils.Stats(window.viewer);\n        stats.domElement.style.position = 'absolute';\n        stats.domElement.style.top = 'unset';\n        stats.domElement.style.bottom = '40px';\n        stats.domElement.style.left = '10px';\n        window.viewer.container.appendChild(stats.domElement);\n      }\n\n      if(stats.visible === checked) break;\n\n      stats.visible = checked;\n      break;\n  }\n}\n\nonMounted(() => {\n  Hooks.useAddSignal(\"transformModeChanged\",handlerRadioChange);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"transformModeChanged\",handlerRadioChange);\n})\n</script>\n\n<style lang=\"less\" scoped>\n.n-button-group {\n  .n-button {\n    width: 32px;\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/viewport/Viewport.vue",
    "content": "<template>\n  <div class=\"w-full h-full\">\n    <Toolbar/>\n\n    <div id=\"viewport\" ref=\"viewportRef\" class=\"absolute top-0 left-0 w-full h-full\" @pointerdown=\"handleViewportPointerdown\">\n      <ViewportInfo/>\n    </div>\n\n    <!--  RVT BIM 构件信息悬浮框  -->\n    <BIMProperties/>\n\n    <!-- IFC BIM 构件信息悬浮框   -->\n    <IFCProperties/>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {onMounted, ref, nextTick, onBeforeUnmount} from 'vue';\nimport {App,Viewer,Hooks} from \"@astral3d/engine\";\nimport Toolbar from \"./Toolbar.vue\";\nimport {useGlobalConfigStore} from \"@/store/modules/globalConfig\";\nimport {usePluginStore} from \"@/store/modules/plugin\";\nimport {installBuiltinPlugin} from \"@/plugin\";\nimport ViewportInfo from \"./ViewportInfo.vue\";\nimport BIMProperties from \"./BIMProperties.vue\";\nimport IFCProperties from \"./IFCProperties.vue\";\n\nconst globalStore = useGlobalConfigStore();\nconst pluginStore = usePluginStore();\n\nconst viewportRef = ref();\n\nonMounted(async () => {\n  App.setConfig({\n    theme: globalStore.theme.replace(\"Theme\", \"\"),\n    mainColor: globalStore.mainColor.hexHover\n  });\n\n  window.viewer = new Viewer({\n    container: viewportRef.value,\n    edit: {\n      enabled: true\n    },\n    request: {\n      baseUrl:\"/file/static/\"\n    }\n  });\n\n  await nextTick();\n\n  // 添加astral engine内置插件并监听插件注册\n  pluginStore.setPlugins(Array.from(window.viewer.modules.plugin.plugins.values()));\n  Hooks.useAddSignal(\"pluginInstall\",pluginStore.addPlugin);\n  Hooks.useAddSignal(\"pluginUninstall\",pluginStore.removePlugin);\n  \n  // 注册astral editor内置插件\n  installBuiltinPlugin(window.viewer);\n})\n\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"pluginInstall\",pluginStore.addPlugin);\n  Hooks.useRemoveSignal(\"pluginUninstall\",pluginStore.removePlugin);\n})\n\nfunction handleViewportPointerdown(){\n  const focusedElement = document.activeElement;\n  // @ts-ignore\n  if(focusedElement && focusedElement.blur) {\n    // @ts-ignore\n    focusedElement.blur();\n  }\n}\n</script>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/viewport/ViewportCamera.vue",
    "content": "<template>\n  <n-popover :show-arrow=\"false\" placement=\"bottom-start\" trigger=\"click\" :style=\"{ padding: 0 }\">\n    <template #trigger>\n      <n-button round size=\"small\">\n        <template #icon>\n          <n-icon>\n            <component :is=\"current.icon\"/>\n          </n-icon>\n        </template>\n        {{ current.label }}\n      </n-button>\n    </template>\n    <n-radio-group v-model:value=\"current.uuid\" size=\"small\">\n      <template v-for=\"song in options\" :key=\"song.uuid\">\n        <n-radio :value=\"song.uuid\" v-if=\"song.type !== 'divider'\" @click=\"handlerChange(song)\">\n          <div class=\"flex items-center\">\n            <n-icon class=\"ml-10px mr-5px\">\n              <component :is=\"song.icon\"/>\n            </n-icon>\n            <span>{{ song.label }}</span>\n          </div>\n\n          <span>{{ song.shortcuts }}</span>\n        </n-radio>\n        <n-divider title-placement=\"left\" v-else> {{ song.label }}</n-divider>\n      </template>\n      <template v-for=\"song in sceneCamera\" :key=\"song.uuid\">\n        <n-radio :value=\"song.uuid\" v-if=\"song.type !== 'divider'\" @click=\"handlerChange(song)\">\n          <div class=\"flex items-center\">\n            <n-icon class=\"ml-10px mr-5px\">\n              <component :is=\"song.icon\"/>\n            </n-icon>\n            <span>{{ song.label }}</span>\n          </div>\n\n          <span>{{ song.shortcuts }}</span>\n        </n-radio>\n        <n-divider title-placement=\"left\" v-else> {{ song.label }}</n-divider>\n      </template>\n    </n-radio-group>\n  </n-popover>\n</template>\n\n<script lang=\"ts\" setup>\nimport type {ComputedRef} from \"vue\";\nimport {ref, markRaw, onMounted, onBeforeUnmount} from \"vue\";\nimport {Camera,Object3D} from 'three';\nimport {App, Hooks} from \"@astral3d/engine\";\nimport {\n  OpenPanelFilledTop,\n  OpenPanelFilledBottom,\n  OpenPanelFilledLeft,\n  OpenPanelFilledRight,\n  RotateCounterclockwiseAlt,\n  RotateClockwiseAlt,\n  Carbon3DMprToggle, CenterToFit\n} from '@vicons/carbon';\nimport {cpt} from \"@/language\";\n\ninterface IOption {\n  label: ComputedRef<string> | string,\n  uuid: string,\n  type?: string,\n  icon?: any,\n  shortcuts?: string,\n  children?: IOption[]\n}\n\nconst defaultCamera = [\n  {\n    uuid: \"divider\",\n    type: \"divider\",\n    label: cpt(\"layout.scene.toolbar.Six views\")\n  },\n  {\n    uuid: \"Top\",\n    label: cpt(\"layout.scene.toolbar.Top\"),\n    icon: markRaw(OpenPanelFilledTop),\n    shortcuts: \"ALT+J\"\n  },\n  {\n    uuid: \"Bottom\",\n    label: cpt(\"layout.scene.toolbar.Bottom\"),\n    icon: markRaw(OpenPanelFilledBottom),\n    shortcuts: \"ALT+SHIFT+J\"\n  },\n  {\n    uuid: \"Left\",\n    label: cpt(\"layout.scene.toolbar.Left\"),\n    icon: markRaw(OpenPanelFilledLeft),\n    shortcuts: \"ALT+K\"\n  },\n  {\n    uuid: \"Right\",\n    label: cpt(\"layout.scene.toolbar.Right\"),\n    icon: markRaw(OpenPanelFilledRight),\n    shortcuts: \"ALT+SHIFT+K\"\n  },\n  {\n    uuid: \"Front\",\n    label: cpt(\"layout.scene.toolbar.Front\"),\n    icon: markRaw(RotateCounterclockwiseAlt),\n    shortcuts: \"ALT+H\"\n  },\n  {\n    uuid: \"Back\",\n    label: cpt(\"layout.scene.toolbar.Back\"),\n    icon: markRaw(RotateClockwiseAlt),\n    shortcuts: \"ALT+SHIFT+H\"\n  }\n]\n\nconst current = ref<IOption>({\n  label: \"\",\n  uuid: \"\"\n});\nconst options = ref<IOption[]>()\nconst sceneCamera = ref<IOption[]>();\n\nfunction handlerChange(value: IOption) {\n  // @ts-ignore\n  current.value = value;\n\n  const cameraManage = window.viewer.modules.cameraManage;\n  switch (value.uuid) {\n    case \"Front\":\n      cameraManage.front().then((camera: Camera) => {\n        App.setViewportCamera(camera.uuid);\n      })\n      break;\n    case \"Back\":\n      cameraManage.rear().then((camera: Camera) => {\n        App.setViewportCamera(camera.uuid);\n      })\n      break;\n    case \"Left\":\n      cameraManage.left().then((camera: Camera) => {\n        App.setViewportCamera(camera.uuid);\n      })\n      break;\n    case \"Right\":\n      cameraManage.right().then((camera: Camera) => {\n        App.setViewportCamera(camera.uuid);\n      })\n      break;\n    case \"Top\":\n      cameraManage.top().then((camera: Camera) => {\n        App.setViewportCamera(camera.uuid);\n      })\n      break;\n    case \"Bottom\":\n      cameraManage.bottom().then((camera: Camera) => {\n        App.setViewportCamera(camera.uuid);\n      })\n      break;\n    default:\n      cameraManage.setInteract({});\n      App.setViewportCamera(current.value.uuid);\n      break;\n  }\n}\n\nfunction handlerOptionsUpdate() {\n  options.value = [];\n  sceneCamera.value = [];\n\n  const cameras = App.cameras;\n  for (const key in cameras) {\n    const camera = cameras[key];\n\n    if (camera.uuid === App.camera.uuid) {\n      // 默认透视相机\n      options.value.unshift({\n        uuid: App.camera.uuid,\n        // label: cpt(\"layout.header.PerspectiveCamera\"),\n        label: cpt(\"core.editor.Default Camera\"),\n        icon: markRaw(Carbon3DMprToggle),\n        shortcuts: \"ALT+G\"\n      })\n      continue;\n    }\n\n    // 场景相机\n    sceneCamera.value.push({\n      uuid: camera.uuid,\n      label: camera.name,\n      icon: camera.type === \"PerspectiveCamera\" ? markRaw(Carbon3DMprToggle) : markRaw(CenterToFit),\n      shortcuts: \"\"\n    })\n  }\n\n  options.value.push(...defaultCamera);\n\n  if (sceneCamera.value.length > 0) {\n    sceneCamera.value.unshift({\n      uuid: \"divider2\",\n      type: \"divider\",\n      label: cpt(\"layout.scene.toolbar['Scene camera']\")\n    })\n  }\n\n  // @ts-ignore\n  !current.value.uuid && (current.value = options.value[0]);\n}\n\nfunction objectChanged(object: Object3D) {\n  if (object instanceof Camera) {\n    handlerOptionsUpdate();\n  }\n}\n\nonMounted(() => {\n  Hooks.useAddSignal(\"cameraAdded\", handlerOptionsUpdate);\n  Hooks.useAddSignal(\"cameraRemoved\", handlerOptionsUpdate);\n  Hooks.useAddSignal(\"objectChanged\", objectChanged);\n\n  handlerOptionsUpdate();\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"cameraAdded\", handlerOptionsUpdate);\n  Hooks.useRemoveSignal(\"cameraRemoved\", handlerOptionsUpdate);\n  Hooks.useRemoveSignal(\"objectChanged\", objectChanged);\n})\n</script>\n\n<style lang=\"less\" scoped>\n.n-radio-group {\n  padding: 5px 0;\n\n  .n-radio {\n    display: flex;\n    align-items: center;\n    padding: 5px 10px;\n\n    &:hover {\n      background-color: var(--n-divider-color);\n    }\n\n    :deep(.n-radio__label) {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      width: 180px;\n\n      & > span {\n        font-size: 12px;\n        color: var(--n-text-color-disabled);\n      }\n    }\n  }\n\n  .n-divider {\n    margin: 10px 0;\n\n    :deep(.n-divider__title) {\n      font-size: 12px;\n      font-weight: 400;\n      color: #999;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/viewport/ViewportInfo.vue",
    "content": "<template>\n    <div class=\"absolute left-10px bottom-10px color-white text-12px\">\n        <span class=\"ml-6px\">{{ t(\"layout.scene.viewportInfo.Objects\") }}: {{ objectsText }}</span>\n        <span class=\"ml-6px\">{{ t(\"layout.scene.viewportInfo.Vertices\") }}: {{ verticesText }}</span>\n        <span class=\"ml-6px\">{{ t(\"layout.scene.viewportInfo.Triangles\") }}: {{ trianglesText }}</span>\n        <span class=\"ml-6px\">{{ t(\"layout.scene.viewportInfo.Frame time\") }}: {{ frameTimeText }}</span>\n    </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref,onMounted, onBeforeUnmount } from \"vue\";\nimport { App,Hooks } from \"@astral3d/engine\";\nimport { t } from \"@/language\";\n\nconst objectsText = ref(\"0\");\nconst verticesText = ref(\"0\");\nconst trianglesText = ref(\"0\");\nconst frameTimeText = ref(\"0 ms\");\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectAdded\",update);\n  Hooks.useAddSignal(\"objectRemoved\",update);\n  Hooks.useAddSignal(\"geometryChanged\",update);\n  Hooks.useAddSignal(\"sceneRendered\",updateFrameTime);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"objectAdded\",update);\n  Hooks.useRemoveSignal(\"objectRemoved\",update);\n  Hooks.useRemoveSignal(\"geometryChanged\",update);\n  Hooks.useRemoveSignal(\"sceneRendered\",updateFrameTime);\n})\n\nfunction update() {\n    const scene = App.scene;\n    let objects = 0, vertices = 0, triangles = 0;\n    for (let i = 0, l = scene.children.length; i < l; i++) {\n        const object = scene.children[i];\n        object.traverseByCondition((object) => {\n            objects++;\n            if (object.isMesh || object.isPoints) {\n                const geometry = object.geometry;\n                vertices += geometry.attributes.position?.count || 0;\n                if (object.isMesh) {\n                    if (geometry.index !== null) {\n                        triangles += geometry.index.count / 3;\n                    } else {\n                        triangles += (geometry.attributes.position?.count || 0) / 3;\n                    }\n                }\n            }\n        }, (c) => {\n          return !c.ignore;\n        });\n    }\n\n    objectsText.value = objects.format();\n    verticesText.value = vertices.format();\n    trianglesText.value = triangles.format();\n}\n\nfunction updateFrameTime(frameTime: string) {\n  frameTimeText.value = Number(frameTime).toFixed(2) + ' ms';\n}\n</script>"
  },
  {
    "path": "packages/editor/src/views/editor/layouts/viewport/ViewportShading.vue",
    "content": "<template>\n  <n-popover :show-arrow=\"false\" placement=\"bottom-start\" trigger=\"click\" :style=\"{ padding: 0 }\">\n    <template #trigger>\n      <n-button round size=\"small\" class=\"ml-10px\">\n        <template #icon>\n          <n-icon>\n            <component :is=\"current.icon\"/>\n          </n-icon>\n        </template>\n        {{ current.label }}\n      </n-button>\n    </template>\n    <n-radio-group v-model:value=\"current.key\" size=\"small\">\n      <template v-for=\"song in options\" :key=\"song.key\">\n        <n-radio :value=\"song.key\" @click=\"handlerChange(song)\">\n          <div class=\"flex items-center\">\n            <n-icon class=\"ml-10px mr-5px\">\n              <component :is=\"song.icon\"/>\n            </n-icon>\n            <span>{{ song.label }}</span>\n          </div>\n\n          <span>{{ song.shortcuts }}</span>\n        </n-radio>\n      </template>\n    </n-radio-group>\n  </n-popover>\n</template>\n\n<script lang=\"ts\" setup>\nimport type {ComputedRef} from \"vue\";\nimport {ref, markRaw, onMounted, onBeforeUnmount} from \"vue\";\nimport {\n  WindowBlackSaturation, UvIndexAlt, Wikis, Contrast\n} from '@vicons/carbon';\nimport {App, Hooks} from '@astral3d/engine';\nimport {cpt} from \"@/language\";\n\ninterface IOption {\n  label: ComputedRef<string> | string,\n  key: string,\n  icon?: any,\n  shortcuts?: string\n}\n\nconst options = ref<IOption[]>([\n  {\n    key: \"realistic\",\n    label: cpt('layout.scene.toolbar.Realistic'),\n    icon: markRaw(WindowBlackSaturation),\n    shortcuts: \"ALT+1\"\n  },\n  {\n    key: \"solid\",\n    label: cpt(\"layout.scene.toolbar.Solid\"),\n    icon: markRaw(Contrast),\n    shortcuts: \"ALT+2\"\n  },\n  {\n    key: \"normals\",\n    label: cpt(\"layout.scene.toolbar.Normals\"),\n    icon: markRaw(UvIndexAlt),\n    shortcuts: \"ALT+3\"\n  },\n  {\n    key: \"wireframe\",\n    label: cpt(\"layout.scene.toolbar.Wireframe\"),\n    icon: markRaw(Wikis),\n    shortcuts: \"ALT+4\"\n  }\n])\n\nconst current = ref<IOption>(options.value[1]);\n\nfunction handlerChange(value: IOption) {\n  // @ts-ignore\n  current.value = value;\n  App.setViewportShading(current.value.key);\n}\n\nfunction sceneCleared() {\n  current.value = options.value[1];\n  App.setViewportShading(current.value.key);\n}\n\nonMounted(() => {\n  Hooks.useAddSignal(\"sceneCleared\", sceneCleared);\n})\nonBeforeUnmount(() => {\n  Hooks.useRemoveSignal(\"sceneCleared\", sceneCleared);\n})\n</script>\n\n<style lang=\"less\" scoped>\n.n-radio-group {\n  padding: 5px 0;\n\n  .n-radio {\n    display: flex;\n    align-items: center;\n    padding: 5px 10px;\n\n    &:hover {\n      background-color: var(--n-divider-color);\n    }\n\n    :deep(.n-radio__label) {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      width: 180px;\n\n      & > span {\n        font-size: 12px;\n        color: var(--n-text-color-disabled);\n      }\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/assetsCenter/AssetsList.vue",
    "content": "<script setup lang=\"ts\">\nimport {onMounted, ref, reactive, watch} from \"vue\";\nimport {Search} from \"@vicons/carbon\";\nimport {Utils} from \"@astral3d/engine\";\nimport {getServiceStaticFile} from \"@/utils/common/file\";\nimport CardAction from \"./components/CardAction.vue\";\nimport {t} from \"@/language\";\nimport {fetchGetAssetCategoryTags, fetchGetAssetsList} from \"@/http/api/assetsInfo\";\nimport UploadAsset from \"@/views/home/assetsCenter/UploadAsset.vue\";\nimport AssetDetail from \"@/views/home/assetsCenter/components/AssetDetail.vue\";\nimport AssetPreview from \"@/components/preview/AssetPreview.vue\";\n\nconst props = withDefaults(defineProps<{\n  type: IAssets.SupportType,\n  category: string\n}>(), {\n  type: \"Model\",\n  category: \"\"\n});\n\n// 搜索和筛选状态\nconst tags = ref([]);\nconst filterTags = ref([]);\nconst searchQuery = ref(\"\");\n// 资源数据\nconst assetsData = ref<Array<IAssets.Item>>([]);\n\n/* 操作相关 */\nconst previewVisible = ref(false);\nconst detailVisible = ref(false);\nconst editVisible = ref(false);\nconst operationAsset = ref<IAssets.Item>();\n\nfunction handlePreview(asset: IAssets.Item) {\n  operationAsset.value = asset;\n  previewVisible.value = true;\n}\n\nfunction handleDetail(asset: IAssets.Item) {\n  operationAsset.value = asset;\n  detailVisible.value = true;\n}\n\nfunction handleEdit(asset: IAssets.Item) {\n  operationAsset.value = asset;\n  editVisible.value = true;\n}\n\n/* 资源列表 */\nlet paginationReactive = reactive({\n  page: 0,\n  pageSize: 10,\n  pageCount: 1\n})\nconst loadMore = ref(false);\nconst noMore = ref(false);\n\nasync function handleLoad() {\n  if (noMore.value) return;\n\n  loadMore.value = true;\n  const res = await fetchGetAssetsList({\n    offset: paginationReactive.page * paginationReactive.pageSize,\n    limit: paginationReactive.pageSize,\n    sortby: \"updateTime\",\n    order: \"desc\",\n    query: `type:${props.type}${props.category ? `,category:${props.category}` : \"\"}`,\n    search: `${filterTags.value.length > 0 ? (\"tags:\" + filterTags.value.join(\",\") + ';') : ''}${searchQuery.value ? \"name:\" + searchQuery.value : \"\"}`,\n  });\n  if (res.data === null) return;\n\n  assetsData.value.push(...(res.data.items || []));\n  paginationReactive.pageCount = res.data.pages;\n  paginationReactive.page++;\n  loadMore.value = false;\n\n  if (paginationReactive.page >= paginationReactive.pageCount) noMore.value = true;\n}\n\nfunction reload() {\n  paginationReactive.page = 0;\n  paginationReactive.pageCount = 1;\n\n  assetsData.value = [];\n  noMore.value = false;\n\n  handleLoad();\n}\n\n// 新增/编辑后刷新\nfunction refresh(asset: IAssets.Item, operation: 'add' | 'remove' | 'update' = 'add') {\n  switch (operation) {\n    case 'add':\n      assetsData.value.unshift(asset);\n      break;\n    case 'remove':\n      const index = assetsData.value.findIndex(a => a.id === asset.id);\n      assetsData.value.splice(index, 1);\n      break;\n    case 'update':\n      // 是编辑提交则查找更新对应项目\n      const item = assetsData.value.find(a => a.id === asset.id);\n      if (!item) return;\n\n      Object.assign(item, asset);\n      break;\n  }\n}\n\nonMounted(() => {\n  handleLoad();\n\n  // 获取标签\n  fetchGetAssetCategoryTags(props.type,props.category).then(res => {\n    tags.value = res.data;\n  })\n})\nwatch([() => props.type, () => props.category], () => {\n  filterTags.value = [];\n\n  reload();\n\n  // 获取标签\n  fetchGetAssetCategoryTags(props.type,props.category).then(res => {\n    tags.value = res.data;\n  })\n})\nwatch(searchQuery,Utils.debounce(() => {\n  reload();\n},500))\n\ndefineExpose({\n  refresh\n})\n</script>\n\n<template>\n  <!-- 搜索和筛选区域 -->\n  <div class=\"h-60px flex items-center justify-between\">\n    <n-checkbox-group v-model:value=\"filterTags\" @update:value=\"reload\">\n      <n-space item-style=\"display: flex;\" align=\"center\">\n        <n-checkbox v-for=\"tag in tags\" :key=\"tag\" :value=\"tag\" :label=\"tag\" />\n      </n-space>\n    </n-checkbox-group>\n\n    <n-input v-model:value=\"searchQuery\" :placeholder=\"t('home.assets.Search for assets') + '...'\" clearable\n             class=\"max-w-500px\">\n      <template #prefix>\n        <n-icon :component=\"Search\"/>\n      </template>\n    </n-input>\n  </div>\n\n  <!-- 资源网格展示 -->\n  <n-infinite-scroll id=\"home-asset-cards-list\" :distance=\"10\" @load=\"handleLoad\">\n    <n-card hoverable v-for=\"asset in assetsData\" :key=\"asset.id\">\n      <template #cover>\n        <div class=\"absolute top-10px right-10px z-10\">\n          <n-tag type=\"success\" :bordered=\"false\" class=\"ml-5px\"\n                 v-for=\"tag in (asset.tags ? asset.tags.split(',') : [])\" :key=\"tag\">\n            {{ tag }}\n          </n-tag>\n        </div>\n\n        <n-image preview-disabled object-fit=\"cover\"\n                 :src=\"getServiceStaticFile(asset.thumbnail) || '/static/images/carousel/Astral3DEditor.jpg'\"\n                 class=\"w-full h-220px cursor-pointer hover:transform-scale-140 transition-all-200\"\n                 @click=\"handlePreview(asset)\"/>\n      </template>\n\n      <template #action>\n        <CardAction :asset=\"asset\" @refresh=\"refresh\" @preview=\"handlePreview\" @detail=\"handleDetail\" @edit=\"handleEdit\"/>\n      </template>\n    </n-card>\n\n    <div v-if=\"loadMore\" class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.Loading') }}...\n    </div>\n    <div v-else-if=\"!noMore\" class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.Scroll to load more') }} 😽😽😽\n    </div>\n    <div v-else class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.No more') }} 🤪\n    </div>\n  </n-infinite-scroll>\n\n  <!-- 预览 -->\n  <AssetPreview v-model:visible=\"previewVisible\" :asset=\"operationAsset as IAssets.Item\" />\n\n  <!-- 详情 -->\n  <AssetDetail v-model:visible=\"detailVisible\" :detail=\"operationAsset\"/>\n\n  <!-- 编辑 -->\n  <UploadAsset v-model:visible=\"editVisible\" :asset=\"operationAsset\" @refresh=\"refresh\"/>\n</template>\n\n<style lang=\"less\">\n#home-asset-cards-list {\n  height: calc(100% - 60px);\n  width: 100%;\n\n  .n-scrollbar-content {\n    display: grid;\n    grid-gap: 1rem;\n    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n    grid-auto-flow: row dense;\n\n    .n-card-cover {\n      height: 220px;\n    }\n  }\n\n  .n-scrollbar-rail{\n    right: -10px;\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/assetsCenter/UploadAsset.vue",
    "content": "<script setup lang=\"ts\">\nimport {watch,reactive, h, computed, ref, useTemplateRef} from 'vue';\nimport type {VNodeChild} from 'vue';\nimport {NIcon} from 'naive-ui';\nimport type {FormInst, UploadInst,UploadFileInfo } from 'naive-ui';\nimport {t} from \"@/language\";\nimport {ASSET_UPLOAD_SUPPORT_TYPE} from \"@/utils/common/constant\";\nimport {ArchiveOutline} from \"@vicons/ionicons5\";\nimport {filterSize, getServiceStaticFile} from \"@/utils/common/file\";\nimport { formItemNotNil } from \"@/utils/common/verify\";\nimport {fetchUpload} from \"@/http/api/sys\";\nimport {fetchAddAsset, fetchGetAssetCategoryTags, fetchUpdateAsset} from \"@/http/api/assetsInfo\";\nimport {useAssetsStore} from \"@/store/modules/assets\";\nimport CommonPreview from \"@/components/preview/CommonPreview.vue\";\n\nconst props = withDefaults(defineProps<{\n  visible: boolean,\n  asset?: IAssets.Item\n}>(), {\n  visible: false,\n})\nconst emits = defineEmits(['update:visible','refresh']);\n\nconst assetsStore = useAssetsStore();\n\nconst formRef = useTemplateRef<FormInst>('formRef');\nconst uploadFileRef = useTemplateRef<UploadInst>('uploadFileRef');\nconst isUpdate = ref<boolean>(false);\nconst model = reactive<{\n  name: string,\n  type: IAssets.SupportType,\n  category: string;\n  thumbnail: File | string | null,\n  file: File | string | null,\n  size: number,\n  tags: string[]\n}>({\n  name: \"\",\n  type: \"Model\",\n  category: \"\",\n  thumbnail: null,\n  file: null,\n  size: 0,\n  tags: []\n});\nconst rules = {\n  category: {\n    required: true,\n    message: t(\"prompt.The entry can not be null\"),\n    trigger: ['input', 'blur']\n  },\n  thumbnail: {\n    required: true,\n    trigger: 'change',\n    validator: formItemNotNil\n  },\n  file: {\n    required: true,\n    trigger: 'change',\n    validator: formItemNotNil\n  },\n  name: {\n    required: true,\n    message: t(\"prompt.The entry can not be null\"),\n    trigger: ['input', 'blur']\n  }\n};\nconst tagOptions = ref([]);\nconst fileSize = computed(() => filterSize(model.size));\nconst renderTypeLabel = (option: IAssets.MainCategory): VNodeChild => {\n  return [\n    h(\n        NIcon,\n        {\n          style: {\n            verticalAlign: '-0.15em',\n            marginRight: '4px'\n          }\n        },\n        {\n          default: () => h(option.icon)\n        }\n    ),\n    option.label as string\n  ]\n}\n\nconst thumbnailFileList = ref<UploadFileInfo[]>([]);\nconst fileList = ref<UploadFileInfo[]>([]);\n\n// 子分类\nconst subCategories = computed(() => {\n  !isUpdate.value && (model.category = \"\");\n\n  return assetsStore.getCategoryChildren(model.type);\n});\n\n// 资源类型变更\nfunction handleTypeChange(){\n  model.category = \"\";\n  model.tags = [];\n\n  model.thumbnail = null;\n  thumbnailFileList.value = [];\n\n  model.file = null;\n  model.name = \"\";\n  model.size = 0;\n  fileList.value = [];\n  uploadFileRef.value?.clear();\n\n  formRef.value?.validate();\n}\n\n// 标签更新（选择/新建）\nfunction handleUpdateTag() {\n  const newTag = model.tags[model.tags.length - 1];\n\n  // 正则表达式校验，只能包含汉字、中英文大小写、数字和下划线\n  const reg = /^[\\u4e00-\\u9fa5A-Za-z0-9_]+$/;\n  if (!reg.test(newTag)) {\n    model.tags.pop();\n\n    window.$message?.error(t(\"prompt['Only Chinese characters, Chinese and English case, numbers, and underscores can be included']\"));\n  }\n}\n\n// 通过预览截图\nconst previewVisible = ref(false);\nconst previewName = ref(t(\"home.Preview\"));\nfunction handlePreview(){\n  if(!model.file) return;\n\n  previewName.value = model.name;\n  previewVisible.value = true;\n}\nfunction handlePreviewScreenshot(image:HTMLImageElement){\n  const url = image.getAttribute(\"src\");\n  if(!url) return;\n\n  fetch(url)\n      .then(res=> res.blob())\n      .then(blob => {\n        const fileName = `${Date.now() + model.name}_thumbnail.png`;\n\n        thumbnailFileList.value = [\n          {\n            id:  fileName,\n            name: fileName,\n            file: new File([blob], fileName, { type: blob.type }),\n            url: null,\n            status: 'pending'\n          }\n        ]\n\n        handleThumbnailChange();\n\n        previewVisible.value = false;\n      })\n}\n\n// 预览图变化\nfunction handleThumbnailChange() {\n  if (thumbnailFileList.value.length === 0) {\n    model.thumbnail = null;\n    return;\n  }\n  model.thumbnail = thumbnailFileList.value[0].file as File;\n\n  formRef.value?.validate();\n}\n\n// 上传文件变化\nfunction handleFileChange({file}) {\n  if (file.status === \"removed\") {\n    model.file = null;\n    model.size = 0;\n    formRef.value?.validate();\n    return;\n  }\n\n  if (!ASSET_UPLOAD_SUPPORT_TYPE[model.type].includes(file.name.split(\".\").at(-1).toLowerCase())) {\n    window.$message?.error(t(\"prompt['This format is not supported, please upload again! Supported formats are:']\") + ` ${ASSET_UPLOAD_SUPPORT_TYPE[model.type].join(\"、\")}`);\n    uploadFileRef.value?.clear();\n    return false;\n  }\n\n  model.file = file.file as File;\n  let fileName = model.file.name.split(\".\");\n  fileName.pop();\n  model.name = fileName.join(\".\");\n  model.size = model.file.size;\n\n  if(model.type === \"Texture\") {\n    const fileName = `${Date.now() + model.name}_thumbnail.png`;\n\n    thumbnailFileList.value = [\n      {\n        id:  fileName,\n        name: fileName,\n        file: model.file,\n        url: null,\n        status: 'pending'\n      }\n    ]\n\n    handleThumbnailChange();\n  }\n\n  formRef.value?.validate();\n}\n\n// 提交/更新\nconst submitLoading = ref(false);\nfunction submit(e) {\n  e.preventDefault();\n\n  formRef.value?.validate(async (errors) => {\n    if (errors || !model.file || !(model.file instanceof File)) return;\n\n    submitLoading.value = true;\n\n    const saveFolder = `upload/assets/${model.type.toLowerCase()}`;\n\n    // 1. 上传缩略图\n    let thumbnailPath = \"\",filePath = \"\";\n    if (model.thumbnail && model.thumbnail instanceof File) {\n      const res = await fetchUpload({\n        file: model.thumbnail,\n        biz: `${saveFolder}/thumbnail`\n      })\n\n      if (res.data === null) {\n        window.$message?.error(t(\"bim.Failed to upload thumbnail\"));\n        submitLoading.value = false;\n        return;\n      } else {\n        thumbnailPath = res.data as string;\n      }\n    }\n\n    // 2. 上传文件\n    const res = await fetchUpload({\n      file: model.file,\n      biz: saveFolder,\n      type: model.type\n    })\n    if (res.data === null) {\n      window.$message?.error(t(\"prompt.Failed to upload\"));\n      submitLoading.value = false;\n      return;\n    } else {\n      filePath = res.data as string;\n    }\n\n    const addRes = await fetchAddAsset({\n      name: model.name,\n      type: model.type,\n      category: model.category,\n      thumbnail: thumbnailPath,\n      file: filePath,\n      size: model.size,\n      tags: model.tags.join(\",\"),\n    })\n\n    if (addRes.error === null) {\n      window.$message?.success(t(\"prompt.Success to upload\"));\n\n      emits(\"refresh\", addRes.data, 'add');\n\n      submitLoading.value = false;\n      handleShow(false);\n    }else{\n      submitLoading.value = false;\n    }\n  })\n}\n\nfunction update(e){\n  e.preventDefault();\n\n  formRef.value?.validate(async (errors) => {\n    if (errors || !props.asset) return;\n\n    submitLoading.value = true;\n\n    const saveFolder = `upload/assets/${model.type.toLowerCase()}`;\n\n    // 1. 检查缩略图是否变化，变化则上传新的\n    if(model.thumbnail !== props.asset.thumbnail) {\n      const res = await fetchUpload({\n        file: model.thumbnail as File,\n        biz: `${saveFolder}/thumbnail`\n      })\n\n      if (res.data === null) {\n        window.$message?.error(t(\"bim.Failed to upload thumbnail\"));\n        submitLoading.value = false;\n        return;\n      } else {\n        model.thumbnail = res.data as string;\n      }\n    }\n\n    // 2. 更新\n    const res = await fetchUpdateAsset({\n      id: props.asset.id,\n      name: model.name,\n      type: props.asset.type,\n      category: model.category,\n      thumbnail: model.thumbnail,\n      file: props.asset.file,\n      size: props.asset.size,\n      tags: model.tags.join(\",\"),\n    })\n\n    if (res.error === null) {\n      window.$message?.success(t(\"prompt.Success to update\"));\n\n      emits(\"refresh\", res.data, 'update');\n\n      submitLoading.value = false;\n      handleShow(false);\n    }else{\n      submitLoading.value = false;\n    }\n  })\n}\n\n// 此模态框显隐\nfunction handleShow(visible: boolean) {\n  emits('update:visible', visible);\n\n  if (!visible) {\n    model.name = \"\";\n    model.size = 0;\n    model.type = \"Model\";\n    model.category = \"\";\n    model.thumbnail = null;\n    model.file = null;\n  }\n}\n\nwatch(() => props.visible,() => {\n  if(props.visible){\n    if(props.asset){\n      isUpdate.value = true;\n\n      model.name = props.asset.name;\n      model.type = props.asset.type;\n      model.category = props.asset.category;\n      model.thumbnail = props.asset.thumbnail;\n      thumbnailFileList.value = [\n        {\n          id: 'thumbnail',\n          name: props.asset.thumbnail.split(\"/\").at(-1) || \"astral3d.png\",\n          url: getServiceStaticFile(props.asset.thumbnail),\n          status: 'pending'\n        }\n      ]\n      model.file = props.asset.file;\n      fileList.value = [\n        {\n          id: 'asset-file',\n          name: props.asset.file.split(\"/\").at(-1) || \"\",\n          url: getServiceStaticFile(props.asset.file),\n          status: 'pending'\n        }\n      ]\n      model.size = props.asset.size;\n      model.tags = props.asset.tags ? props.asset.tags.split(',') : [];\n    }\n\n    fetchGetAssetCategoryTags(model.type,model.category).then(res => {\n      tagOptions.value = res.data.map((tag) => ({\n        label: tag,\n        value: tag,\n      }));\n    })\n  }else{\n    isUpdate.value = false;\n  }\n})\n</script>\n\n<template>\n  <n-modal :show=\"visible\" @update:show=\"handleShow\" :mask-closable=\"false\" ref=\"modelRef\"\n           class=\"!w-500px\" preset=\"card\" :title=\"t(isUpdate ? 'home.assets.Edit asset' : 'home.assets.Upload asset')\">\n    <n-form label-placement=\"left\" :model=\"model\" :rules=\"rules\"\n            label-width=\"100px\" label-align=\"right\" ref=\"formRef\"\n            require-mark-placement=\"right-hanging\" :disabled=\"submitLoading\">\n      <n-form-item :label=\"t('home.assets.Type')\">\n        <n-select v-model:value=\"model.type\" :options=\"assetsStore.categories\" :render-label=\"renderTypeLabel\" value-field=\"key\"\n                  children-field=\"\" :disabled=\"isUpdate\" @update:value=\"handleTypeChange\"/>\n      </n-form-item>\n\n      <n-form-item :label=\"t('home.assets.Category')\" path=\"category\">\n        <n-tree-select v-model:value=\"model.category\" :options=\"subCategories\" value-field=\"key\"/>\n      </n-form-item>\n\n      <n-form-item :label=\"t('home.assets.Tags')\">\n        <n-select v-model:value=\"model.tags\" :options=\"tagOptions\" filterable multiple tag\n                  @update:value=\"handleUpdateTag\"/>\n      </n-form-item>\n\n      <n-form-item :label=\"t('bim.Thumbnail')\" path=\"thumbnail\">\n        <div class=\"flex flex-col w-full\">\n          <n-upload :default-upload=\"false\" list-type=\"image-card\" :max=\"1\" accept=\"image/*\"\n                    v-model:file-list=\"thumbnailFileList\" @update:file-list=\"handleThumbnailChange\"/>\n          <n-button v-if=\"!['Texture'].includes(model.type)\" type=\"primary\" class=\"w-full mt-2\" :disabled=\"!model.file\" @click=\"handlePreview\">\n            {{ t('home.assets.By previewing the screenshots') }}\n          </n-button>\n        </div>\n      </n-form-item>\n\n      <n-form-item :label=\"t('layout.header.File')\" path=\"file\">\n        <n-upload ref=\"uploadFileRef\" :default-upload=\"false\" :max=\"1\"  :disabled=\"isUpdate\" :default-file-list=\"fileList\"\n                  :accept=\"'.' + ASSET_UPLOAD_SUPPORT_TYPE[model.type].join(',.')\" @change=\"handleFileChange\">\n          <n-upload-dragger>\n            <div>\n              <n-icon size=\"48\" :depth=\"3\">\n                <ArchiveOutline/>\n              </n-icon>\n            </div>\n            <n-text style=\"font-size: 14px\">\n              {{\n                t(\"bim['Click or drag the file to this area.Supported formats are:']\") + ` ${ASSET_UPLOAD_SUPPORT_TYPE[model.type].join(\"、\")}`\n              }}\n            </n-text>\n          </n-upload-dragger>\n        </n-upload>\n      </n-form-item>\n\n      <n-form-item :label=\"t('home.assets.Name')\" path=\"name\">\n        <n-input v-model:value=\"model.name\"/>\n      </n-form-item>\n\n      <n-form-item :label=\"t('home.assets.Size')\">\n        <n-input v-model:value=\"fileSize\" disabled/>\n      </n-form-item>\n    </n-form>\n\n    <div class=\"flex justify-end space-x-2 mt-2\">\n      <n-button round :disabled=\"submitLoading\" @click=\"handleShow(false)\">{{ t(\"other.Cancel\") }}</n-button>\n      <n-button round :loading=\"submitLoading\" type=\"primary\" @click=\"submit\" v-if=\"!isUpdate\">{{ t(\"other.Upload\") }}</n-button>\n      <n-button round :loading=\"submitLoading\" type=\"primary\" @click=\"update\" v-else>{{ t(\"other.Ok\") }}</n-button>\n    </div>\n  </n-modal>\n\n  <CommonPreview v-model:visible=\"previewVisible\" :name=\"previewName\" :file-or-url=\"model.file\" :type=\"model.type\"\n                 screenshot-show @screenshot=\"handlePreviewScreenshot\" />\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/assetsCenter/components/AssetDetail.vue",
    "content": "<script setup lang=\"ts\">\nimport {t} from \"@/language\";\nimport {filterSize, getServiceStaticFile} from \"@/utils/common/file\";\n\nwithDefaults(defineProps<{\n  visible: boolean,\n  detail?: IAssets.Item\n}>(), {\n  visible: false,\n  detail: () => ({\n    name:\"\",\n    type:'Model',\n    category:\"\",\n    thumbnail: \"\",\n    size:0,\n    file: '',\n    createTime:\"\",\n    updateTime:\"\"\n  })\n})\nconst emits = defineEmits(['update:visible']);\n</script>\n\n<template>\n  <n-modal :show=\"visible\" @update:show=\"(v) => emits('update:visible',v)\">\n    <n-descriptions label-placement=\"left\" bordered :column=\"1\">\n      <n-descriptions-item :label=\"t('scene.Cover Picture')\">\n        <n-image width=\"200\" :src=\"getServiceStaticFile(detail.thumbnail) || '/static/images/carousel/Astral3DEditor.jpg'\" />\n      </n-descriptions-item>\n      <n-descriptions-item label=\"ID\">\n        {{ detail.id }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('home.assets.Name')\">\n        {{ detail.name }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('home.assets.Type')\">\n        {{ t(`home.assets.${detail.type}`) }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('home.assets.Category')\">\n        {{ detail.categoryName || detail.category }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('home.assets.Size')\">\n        {{ filterSize(detail.size) }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Create time')\">\n        {{ detail.createTime?.replace(\"T\",\" \").replace(\"+08:00\",\"\") }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Update time')\">\n        {{ detail.updateTime?.replace(\"T\",\" \").replace(\"+08:00\",\"\") }}\n      </n-descriptions-item>\n    </n-descriptions>\n  </n-modal>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/assetsCenter/components/CardAction.vue",
    "content": "<script setup lang=\"ts\">\nimport { Edit,Airplay,Information,OverflowMenuVertical,Delete } from '@vicons/carbon';\nimport { t,cpt } from \"@/language\";\nimport { renderIcon } from \"@/utils/common/render\";\nimport {fetchRemoveAsset} from \"@/http/api/assetsInfo\";\n\nconst props = withDefaults(defineProps<{\n  asset:IAssets.Item\n}>(),{\n  asset:undefined\n})\nconst emits = defineEmits([\"refresh\",\"preview\",'detail','edit']);\n\nconst options = [\n  {\n    label: () => cpt(\"home.Details\").value,\n    key: 'details',\n    icon: renderIcon(Information)\n  },\n  {\n    label: () => cpt(\"layout.sider.script.Edit\").value,\n    key: 'edit',\n    icon: renderIcon(Edit)\n  },\n  {\n    label: () => cpt(\"home.Delete\").value,\n    key: 'delete',\n    icon: renderIcon(Delete)\n  }\n];\n\n// 下拉菜单选中处理\nfunction handleOperation(key: string){\n  switch (key){\n    case \"details\":\n      emits('detail', props.asset);\n      break;\n    case 'edit':\n      emits('edit', props.asset);\n      break;\n    case \"delete\":\n      window.$dialog.warning({\n        title: window.$t('other.warning'),\n        content: window.$t(\"prompt['Are you sure you want to delete this resource?']\"),\n        positiveText: window.$t('other.Ok'),\n        negativeText: window.$t('other.Cancel'),\n        onPositiveClick: async () => {\n          const res = await fetchRemoveAsset(props.asset.id);\n          if(!res.error){\n            window.$message?.success(t(\"prompt.Success to delete\"));\n\n            emits(\"refresh\", props.asset, 'remove');\n          }\n        },\n      });\n      break;\n  }\n}\n\n//预览场景\nfunction handlePreview(){\n  emits(\"preview\", props.asset);\n}\n</script>\n\n<template>\n  <div class=\"w-full flex justify-between items-center\">\n    <n-tooltip trigger=\"hover\">\n      <template #trigger>\n        <h4> {{ asset.name }} </h4>\n      </template>\n      <span> {{ asset.name }} </span>\n    </n-tooltip>\n\n    <div class=\"w-45px flex justify-between items-center\">\n      <n-tooltip trigger=\"hover\">\n        <template #trigger>\n          <n-button text @click=\"handlePreview\">\n            <template #icon>\n              <n-icon><Airplay /></n-icon>\n            </template>\n          </n-button>\n        </template>\n        <span> {{ t('home.Preview') }} </span>\n      </n-tooltip>\n\n      <n-dropdown :options=\"options\" @select=\"handleOperation\">\n        <n-button text>\n          <template #icon>\n            <n-icon><OverflowMenuVertical /></n-icon>\n          </template>\n        </n-button>\n      </n-dropdown>\n    </div>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\nh4{\n  max-width: calc(100% - 90px);\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  -o-text-overflow: ellipsis;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/components/HeaderCarousel.vue",
    "content": "<script setup lang=\"ts\">\nimport {ArrowLeft, ArrowRight} from '@vicons/carbon';\n</script>\n\n<template>\n  <n-carousel show-arrow mousewheel autoplay class=\"w-full h-25vh\">\n    <a href=\"https://www.rainyun.com/Astral3D_\" target=\"_blank\" class=\"w-full h-25vh inline-block\">\n      <img class=\"carousel-img\" src=\"/static/images/carousel/yuyun.jpg\" />\n    </a>\n    <img class=\"carousel-img\" src=\"/static/images/carousel/Astral3DEditor.jpg\" />\n\n\n    <template #arrow=\"{ prev, next }\">\n      <div class=\"custom-arrow\">\n        <button type=\"button\" class=\"custom-arrow--left\" @click=\"prev\">\n          <n-icon>\n            <ArrowLeft />\n          </n-icon>\n        </button>\n        <button type=\"button\" class=\"custom-arrow--right\" @click=\"next\">\n          <n-icon>\n            <ArrowRight />\n          </n-icon>\n        </button>\n      </div>\n    </template>\n\n    <template #dots=\"{ total, currentIndex, to }\">\n      <ul class=\"custom-dots\">\n        <li v-for=\"index of total\" :key=\"index\" :class=\"{ ['is-active']: currentIndex === index - 1 }\"\n            @click=\"to(index - 1)\"/>\n      </ul>\n    </template>\n  </n-carousel>\n</template>\n\n<style scoped lang=\"less\">\n.carousel-img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n\n.custom-arrow {\n  display: flex;\n  position: absolute;\n  bottom: 25px;\n  right: 10px;\n}\n\n.custom-arrow button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: 28px;\n  height: 28px;\n  margin-right: 12px;\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.1);\n  border-width: 0;\n  border-radius: 8px;\n  transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  cursor: pointer;\n}\n\n.custom-arrow button:hover {\n  background-color: rgba(255, 255, 255, 0.2);\n}\n\n.custom-arrow button:active {\n  transform: scale(0.95);\n  transform-origin: center;\n}\n\n.custom-dots {\n  display: flex;\n  margin: 0;\n  padding: 0;\n  position: absolute;\n  bottom: 20px;\n  left: 20px;\n}\n\n.custom-dots li {\n  display: inline-block;\n  width: 12px;\n  height: 4px;\n  margin: 0 3px;\n  border-radius: 4px;\n  background-color: rgba(255, 255, 255, 0.4);\n  transition: width 0.3s,background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  cursor: pointer;\n}\n\n.custom-dots li.is-active {\n  width: 40px;\n  background: #fff;\n}\n\n:deep(.creative-enter-from),\n:deep(.creative-leave-to) {\n  opacity: 0;\n  transform: scale(0.8);\n}\n\n:deep(.creative-enter-active),\n:deep(.creative-leave-active) {\n  transition: all 0.3s ease;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/components/SidebarBottomInfo.vue",
    "content": "<script setup lang=\"ts\">\nimport {useThemeVars} from 'naive-ui';\n\nconst themeVars = useThemeVars();\n\nconst version = import.meta.env.VITE_GLOB_VERSION;\nconst author = import.meta.env.VITE_GLOB_AUTHOR;\nconst beian = import.meta.env.VITE_GLOB_BEIAN;\n</script>\n\n<template>\n  <div class=\"h-4rem flex flex-col justify-between items-center\" :style=\"{color:themeVars.textColorDisabled}\">\n    <p>Version {{ version }}</p>\n    <p>Made by {{ author }}</p>\n\n    <p><a href=\"https://beian.miit.gov.cn/\" target=\"_blank\">{{beian}}</a></p>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/components/SidebarTopInfo.vue",
    "content": "<script setup lang=\"ts\">\nwithDefaults(defineProps<{\n  collapsed: boolean\n}>(), {\n  collapsed: false\n})\n</script>\n\n<template>\n  <div class=\"pt-24px w-full flex justify-center items-center\">\n    <div class=\"min-w-40px\">\n      <Logo />\n    </div>\n\n    <transition enter-active-class=\"animate__animated animate__fadeInRight\" leave-active-class=\"animate__animated animate__fadeOutRight\">\n      <n-gradient-text :size=\"24\" type=\"success\" class=\"ml-5px\" v-if=\"!collapsed\">\n        Astral 3D Editor\n      </n-gradient-text>\n    </transition>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/container/AssetsCenter.vue",
    "content": "<script setup lang=\"ts\">\n\timport { ref, computed, onMounted, useTemplateRef } from \"vue\";\n\timport type { TreeOption } from \"naive-ui\";\n\timport { t } from \"@/language\";\n\timport AssetsList from \"../assetsCenter/AssetsList.vue\";\n\timport EsPopTreeSelect from \"@/components/es/EsPopTreeSelect.vue\";\n\timport UploadAsset from \"@/views/home/assetsCenter/UploadAsset.vue\";\n\timport { useAssetsStore } from \"@/store/modules/assets\";\n\n\tconst assetsStore = useAssetsStore();\n\n\tconst assetsListRef = useTemplateRef<typeof AssetsList>(\"assetsListRef\");\n\tfunction refreshList(asset: IAssets.Item) {\n\t\tassetsListRef.value?.refresh(asset, \"add\");\n\t}\n\n\t/* 资产分类 */\n\t// 主分类选择\n\tconst currentCategory = ref<IAssets.SupportType>(assetsStore.categories[0].key);\n\t// 子分类\n\tconst subCategories = computed(() => assetsStore.getCategoryChildren(currentCategory.value));\n\t// 子分类选中项\n\tconst activeSubCategory = ref(\"\");\n\t// 子分类UI选中按钮Key\n\tconst activeButtonKey = ref(\"\");\n\n\t// 处理主分类变更\n\tfunction handleSelectCategory(key: IAssets.SupportType) {\n\t\tcurrentCategory.value = key;\n\n\t\tactiveSubCategory.value = \"\";\n\t\tactiveButtonKey.value = \"\";\n\t}\n\n\t// 处理子分类变更\n\tfunction handleSelectSubCategory(key: string, buttonKey: string) {\n\t\tif (activeSubCategory.value === key) {\n\t\t\tactiveSubCategory.value = \"\";\n\t\t\tactiveButtonKey.value = \"\";\n\t\t} else {\n\t\t\tactiveSubCategory.value = key;\n\t\t\tactiveButtonKey.value = buttonKey;\n\t\t}\n\t}\n\n\t/* 资产上传 */\n\tconst uploadVisible = ref(false);\n\n\tfunction handleUploadAssetVisible() {\n\t\tuploadVisible.value = true;\n\t}\n\n\tonMounted(() => {\n\t\tassetsStore.fetchCategory();\n\t});\n</script>\n\n<template>\n\t<n-layout-content content-class=\"p-4 flex space-x-4\">\n\t\t<!-- 左侧分类 -->\n\t\t<n-card embedded class=\"assets-category-card w-40 h-full overflow-y-auto rounded-lg shadow-sm\">\n\t\t\t<div class=\"grid grid-cols-2 gap-2\">\n\t\t\t\t<n-button\n\t\t\t\t\tclass=\"py-2 rounded-lg h-max\"\n\t\t\t\t\t:quaternary=\"category.key !== currentCategory\"\n\t\t\t\t\tv-for=\"category in assetsStore.categories\"\n\t\t\t\t\t:key=\"category.key\"\n\t\t\t\t\t:type=\"category.key === currentCategory ? 'primary' : 'default'\"\n\t\t\t\t\t@click=\"handleSelectCategory(category.key)\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"flex flex-col items-center\">\n\t\t\t\t\t\t<n-icon :size=\"30\" class=\"text-xl mb-2\">\n\t\t\t\t\t\t\t<component :is=\"category.icon\"></component>\n\t\t\t\t\t\t</n-icon>\n\t\t\t\t\t\t<div class=\"text-0.7rem\">{{ category.label }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</n-button>\n\t\t\t</div>\n\n\t\t\t<n-button type=\"primary\" class=\"w-full\" @click=\"handleUploadAssetVisible\">{{ t(\"home.assets.Upload asset\") }}</n-button>\n\t\t</n-card>\n\n\t\t<!-- 右侧内容 -->\n\t\t<div class=\"w-calc-10rem h-full flex-1 flex flex-col\">\n\t\t\t<!-- 子分类标签 -->\n\t\t\t<div class=\"mb-1 flex flex-wrap items-center gap-2\">\n\t\t\t\t<template v-for=\"subCategory in subCategories\" :key=\"subCategory.key\">\n\t\t\t\t\t<n-button\n\t\t\t\t\t\tv-if=\"!subCategory.children?.length\"\n\t\t\t\t\t\tstrong\n\t\t\t\t\t\tsecondary\n\t\t\t\t\t\tround\n\t\t\t\t\t\t:type=\"activeButtonKey === subCategory.key ? 'primary' : 'default'\"\n\t\t\t\t\t\t@click=\"handleSelectSubCategory(subCategory.key, subCategory.key)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ subCategory.label }}\n\t\t\t\t\t</n-button>\n\n\t\t\t\t\t<EsPopTreeSelect\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\t:options=\"[subCategory] as unknown as TreeOption[]\"\n\t\t\t\t\t\t:value=\"subCategory.key\"\n\t\t\t\t\t\tstrong\n\t\t\t\t\t\tsecondary\n\t\t\t\t\t\tround\n\t\t\t\t\t\t:type=\"activeButtonKey === subCategory.key ? 'primary' : 'default'\"\n\t\t\t\t\t\t@click=\"option => handleSelectSubCategory(option.key, subCategory.key)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t</div>\n\n\t\t\t<AssetsList ref=\"assetsListRef\" :type=\"currentCategory\" :category=\"activeSubCategory\" />\n\t\t</div>\n\t</n-layout-content>\n\n\t<UploadAsset v-model:visible=\"uploadVisible\" @refresh=\"refreshList\" />\n</template>\n\n<style scoped lang=\"less\">\n\t.n-layout-content {\n\t\theight: calc(100vh - var(--header-height));\n\n\t\t.assets-category-card {\n\t\t\t:deep(.n-card-content) {\n\t\t\t\tpadding: 0.6rem 0.7rem !important;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: space-between;\n\t\t\t}\n\t\t}\n\t}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/home/container/DataCenter.vue",
    "content": "<template>\n  <div class=\"data-center-container\"></div>\n</template>\n\n<script lang=\"ts\" setup>\n</script>\n\n<style scoped lang=\"less\">\n.data-center-container {\n  padding: 1rem;\n  height: calc(100vh - var(--header-height) - 2rem);\n}\n\n.n-tab-pane{\n  height: calc(100% - 42px - var(--n-pane-padding-top));\n}\n</style>\n"
  },
  {
    "path": "packages/editor/src/views/home/container/Project.vue",
    "content": "<script setup lang=\"ts\">\nimport {t} from \"@/language\";\nimport HeaderCarousel from \"@/views/home/components/HeaderCarousel.vue\";\nimport MyProject from \"@/views/home/project/MyProject.vue\";\nimport SharedProject from \"@/views/home/project/SharedProject.vue\";\n\n</script>\n\n<template>\n  <n-layout-header>\n    <HeaderCarousel/>\n  </n-layout-header>\n\n  <n-layout-content content-style=\"padding: 24px;\">\n    <n-tabs type=\"line\" animated default-value=\"shared-project\" class=\"h-full\">\n      <n-tab-pane name=\"my-project\" :tab=\"t('home.My Project')\" disabled>\n        <MyProject />\n      </n-tab-pane>\n      <n-tab-pane name=\"shared-project\" :tab=\"t('home.Shared Project')\">\n        <SharedProject />\n      </n-tab-pane>\n    </n-tabs>\n  </n-layout-content>\n</template>\n\n<style scoped lang=\"less\">\n.n-layout-content{\n  height: calc(75vh - var(--header-height));\n\n  :deep(.n-tabs-pane-wrapper){\n    height: 100%;\n\n    .n-tab-pane{\n      padding-top: 0 !important;\n    }\n  }\n\n  .n-tab-pane{\n    height: 100%;\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/container/SettingCenter.vue",
    "content": "<script setup lang=\"ts\">\nimport HeaderCarousel from \"@/views/home/components/HeaderCarousel.vue\";\n</script>\n\n<template>\n  <n-layout-header>\n    <HeaderCarousel />\n  </n-layout-header>\n\n  <n-layout-content content-style=\"padding: 24px;\">\n    <SettingTabs/>\n  </n-layout-content>\n</template>\n\n<style scoped lang=\"less\">\n.n-layout-content{\n  height: calc(75vh - var(--header-height));\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/index.vue",
    "content": "<script setup lang=\"ts\">\n\timport { h, ref } from \"vue\";\n\timport type { MenuOption } from \"naive-ui\";\n\timport { Cube, Sprout, Settings, Notebook, LogoGithub, DataCenter, StarReview } from \"@vicons/carbon\";\n\timport { t } from \"@/language\";\n\timport { renderIcon } from \"@/utils/common/render\";\n\timport Setting from \"@/components/setting/Setting.vue\";\n\timport SidebarTopInfo from \"./components/SidebarTopInfo.vue\";\n\timport SidebarBottomInfo from \"./components/SidebarBottomInfo.vue\";\n\timport Project from \"./container/Project.vue\";\n\timport DataCenterComponents from \"./container/DataCenter.vue\";\n\timport AssetsCenter from \"./container/AssetsCenter.vue\";\n\timport SettingCenter from \"./container/SettingCenter.vue\";\n\n\tconst collapsed = ref(false);\n\tconst menuActiveKey = ref<string>(\"project\");\n\tconst menuOptions: MenuOption[] = [\n\t\t{\n\t\t\tlabel: () => t(\"home.Project\"),\n\t\t\tkey: \"project\",\n\t\t\ticon: renderIcon(Cube),\n\t\t\tcomponent: Project,\n\t\t},\n\t\t{\n\t\t\tlabel: () => t(\"home.Data Center\"),\n\t\t\tkey: \"data-center\",\n\t\t\ticon: renderIcon(DataCenter),\n\t\t\tcomponent: DataCenterComponents,\n\t\t},\n\t\t{\n\t\t\tlabel: () => t(\"home.Resource Center\"),\n\t\t\tkey: \"assets-center\",\n\t\t\ticon: renderIcon(Sprout),\n\t\t\tcomponent: AssetsCenter,\n\t\t},\n\t\t{\n\t\t\tlabel: () => t(\"home.Setting Center\"),\n\t\t\tkey: \"setting-center\",\n\t\t\ticon: renderIcon(Settings),\n\t\t\tcomponent: SettingCenter,\n\t\t},\n\t\t{\n\t\t\tkey: \"divider-1\",\n\t\t\ttype: \"divider\",\n\t\t\tprops: {\n\t\t\t\tstyle: {\n\t\t\t\t\tmargin: \"20px 25px\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tlabel: () =>\n\t\t\t\th(\n\t\t\t\t\t\"a\",\n\t\t\t\t\t{\n\t\t\t\t\t\thref: \"https://github.com/mlt131220/Astral3D\",\n\t\t\t\t\t\ttarget: \"_blank\",\n\t\t\t\t\t},\n\t\t\t\t\t\"GitHub\"\n\t\t\t\t),\n\t\t\tkey: \"github-link\",\n\t\t\ticon: renderIcon(LogoGithub),\n\t\t\tisLink: true,\n\t\t},\n\t\t{\n\t\t\tlabel: () =>\n\t\t\t\th(\n\t\t\t\t\t\"a\",\n\t\t\t\t\t{\n\t\t\t\t\t\thref: \"https://editor-doc.astraljs.com\",\n\t\t\t\t\t\ttarget: \"_blank\",\n\t\t\t\t\t},\n\t\t\t\t\tt(\"home.Usage Document\")\n\t\t\t\t),\n\t\t\tkey: \"usage-document\",\n\t\t\ticon: renderIcon(Notebook),\n\t\t\tisLink: true,\n\t\t},\n\t\t{\n\t\t\tlabel: () =>\n\t\t\t\th(\n\t\t\t\t\t\"a\",\n\t\t\t\t\t{\n\t\t\t\t\t\thref: \"https://editor-doc.astraljs.com/promotion/\",\n\t\t\t\t\t\ttarget: \"_blank\",\n\t\t\t\t\t},\n\t\t\t\t\t\"推广中心\"\n\t\t\t\t),\n\t\t\tkey: \"promotion-center\",\n\t\t\ticon: renderIcon(StarReview),\n\t\t\tisLink: true,\n\t\t},\n\t];\n\tconst containerComponent = ref(Project);\n\n\tfunction handleSelectMenu(key: string, item: MenuOption) {\n\t\tif (item.isLink) return;\n\n\t\tmenuActiveKey.value = key;\n\n\t\t// @ts-ignore\n\t\tcontainerComponent.value = item.component;\n\t}\n</script>\n\n<template>\n\t<n-layout has-sider class=\"w-full h-full\">\n\t\t<n-layout-sider\n\t\t\tbordered\n\t\t\tcollapse-mode=\"width\"\n\t\t\t:collapsed-width=\"64\"\n\t\t\t:width=\"260\"\n\t\t\t:collapsed=\"collapsed\"\n\t\t\tshow-trigger\n\t\t\t@collapse=\"collapsed = true\"\n\t\t\t@expand=\"collapsed = false\"\n\t\t>\n\t\t\t<SidebarTopInfo :collapsed=\"collapsed\" />\n\n\t\t\t<n-divider class=\"!my-20px mx-25px\" style=\"width: calc(100% - 50px)\" />\n\n\t\t\t<n-menu\n\t\t\t\t:value=\"menuActiveKey\"\n\t\t\t\t:options=\"menuOptions\"\n\t\t\t\t:collapsed=\"collapsed\"\n\t\t\t\t:collapsed-width=\"64\"\n\t\t\t\t:collapsed-icon-size=\"22\"\n\t\t\t\t@update:value=\"handleSelectMenu\"\n\t\t\t/>\n\n\t\t\t<transition enter-active-class=\"animate__animated animate__fadeInLeft\" leave-active-class=\"animate__animated animate__fadeOutLeft\">\n\t\t\t\t<SidebarBottomInfo class=\"absolute bottom-20px w-full\" v-if=\"!collapsed\" />\n\t\t\t</transition>\n\t\t</n-layout-sider>\n\n\t\t<n-layout class=\"h-full\">\n\t\t\t<n-layout-header>\n\t\t\t\t<Setting :show-setting=\"false\" />\n\t\t\t</n-layout-header>\n\n\t\t\t<component :is=\"containerComponent\" />\n\t\t</n-layout>\n\t</n-layout>\n</template>\n\n<style scoped lang=\"less\">\n\t.n-layout {\n\t\t&-header {\n\t\t\theight: var(--header-height);\n\t\t\tline-height: var(--header-height);\n\t\t\tpadding: 0 0.5rem;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: end;\n\t\t\talign-items: center;\n\t\t\tbox-shadow:\n\t\t\t\t0 6px 16px -9px rgba(0, 0, 0, 0.08),\n\t\t\t\t0 9px 28px 0 rgba(0, 0, 0, 0.05),\n\t\t\t\t0 12px 48px 16px rgba(0, 0, 0, 0.03);\n\t\t}\n\t}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/project/MyProject.vue",
    "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/project/SharedProject.vue",
    "content": "<script setup lang=\"ts\">\nimport {onMounted, reactive, ref} from \"vue\";\nimport {t} from \"@/language\";\nimport {fetchGetAllScenes} from \"@/http/api/scenes\";\nimport CardAction from \"@/views/home/project/components/CardAction.vue\";\nimport CreateProject from \"@/views/home/project/components/CreateProject.vue\";\nimport {getServiceStaticFile} from \"@/utils/common/file\";\n\nconst data = ref<ISceneFetchData[]>([]);\nlet paginationReactive = reactive({\n  page: 0,\n  pageSize: 10,\n  pageCount: 1\n})\nconst loadMore = ref(false);\nconst noMore = ref(false);\nconst showCreateModal =  ref(false);\nconst loadingProjectId = ref(-1);\n\nasync function handleLoad() {\n  if(noMore.value) return;\n\n  loadMore.value = true;\n  const res = await fetchGetAllScenes({\n    offset: paginationReactive.page * paginationReactive.pageSize,\n    limit: paginationReactive.pageSize,\n    sortby:\"updateTime\",\n    order:\"desc\",\n    query:``\n  });\n  if(res.data === null) return;\n\n  data.value.push(...(res.data.items || []));\n  paginationReactive.pageCount = res.data.pages;\n  paginationReactive.page++;\n  loadMore.value = false;\n\n  if(paginationReactive.page >= paginationReactive.pageCount) noMore.value = true;\n}\n\nasync function refresh(){\n  data.value = [];\n\n  loadMore.value = true;\n  const res = await fetchGetAllScenes({\n    offset: 0,\n    limit: paginationReactive.page * paginationReactive.pageSize,\n    sortby:\"updateTime\",\n    order:\"desc\",\n    query:``\n  });\n  if(res.data === null) return;\n\n  data.value.push(...(res.data.items || []));\n  paginationReactive.pageCount = res.data.pages;\n  loadMore.value = false;\n\n  if(paginationReactive.page >= paginationReactive.pageCount) noMore.value = true;\n}\n\nfunction setLoadingProjectId(id:number){\n  loadingProjectId.value = id;\n}\n\n// 编辑场景\nfunction editScene(id:string){\n  window.open(window.location.origin + \"/#/editor/\" + id, \"_blank\");\n}\n\nonMounted(() => {\n  handleLoad();\n})\n</script>\n\n<template>\n  <n-infinite-scroll class=\"project-cards-list py-2 pr-4\" :distance=\"10\" @load=\"handleLoad\">\n    <n-card embedded hoverable :bordered=\"false\" content-class=\"!p-2\" class=\"cursor-pointer\" @click=\"showCreateModal = true\">\n      <div class=\"new-container h-full min-h-200px flex flex-col justify-center items-center b-1 b-dashed b-rd-1\">\n        <span class=\"text-16 color-#fff\">🫵</span>\n        <p>{{ t('home.New project') }}</p>\n      </div>\n    </n-card>\n\n    <n-card hoverable v-for=\"project in data\" :key=\"project.id\" >\n      <template #cover>\n        <n-skeleton v-if=\"loadingProjectId === Number(project.id)\" height=\"100%\" width=\"100%\" />\n        <template v-else>\n          <div class=\"absolute top-10px right-10px z-10\">\n            <n-tag type=\"success\" :bordered=\"false\" >\n              {{ project.projectType === 0 ? \"Web3D\" : \"WebGIS\" }}\n            </n-tag>\n            <n-tag type=\"success\" :bordered=\"false\" class=\"ml-5px\">\n              {{ project.sceneType }}\n            </n-tag>\n          </div>\n\n          <n-image preview-disabled object-fit=\"cover\"\n              :src=\"getServiceStaticFile(project.coverPicture) || '/static/images/carousel/Astral3DEditor.jpg'\"\n              class=\"w-full h-220px cursor-pointer hover:transform-scale-140 transition-all-200\" @click=\"editScene(project.id)\"\n          />\n        </template>\n      </template>\n\n      <template #action>\n        <n-skeleton v-if=\"loadingProjectId === Number(project.id)\" text :repeat=\"1\" />\n        <CardAction v-show=\"loadingProjectId !== Number(project.id)\" :data=\"project\" @refresh=\"refresh\" @setLoadingProjectId=\"setLoadingProjectId\" />\n      </template>\n    </n-card>\n\n    <div v-if=\"loadMore\" class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.Loading') }}...\n    </div>\n    <div v-else-if=\"!noMore\" class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.Scroll to load more') }} 😽😽😽\n    </div>\n    <div v-else class=\"text-center\" style=\"grid-column: 1 / -1;\">\n      {{ t('home.No more') }} 🤪\n    </div>\n  </n-infinite-scroll>\n\n  <CreateProject v-model:visible=\"showCreateModal\" @refresh=\"refresh\" />\n</template>\n\n<style lang=\"less\">\n.project-cards-list {\n  height: calc(100% - var(--n-pane-padding-top));\n\n  .n-scrollbar-content{\n    display: grid;\n    grid-gap: 1rem;\n    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n    grid-auto-flow: row dense;\n\n    .new-container{\n      border-color: var(--n-border-color);\n      color:var(--n-close-icon-color)\n    }\n\n    .n-card-cover{\n      height: 220px;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/project/components/CardAction.vue",
    "content": "<script setup lang=\"ts\">\nimport {ref} from \"vue\";\nimport { RequestQuote,Edit,Airplay,Information,OverflowMenuVertical,SendAlt,Export,Delete } from '@vicons/carbon';\nimport {t,cpt} from \"@/language\";\nimport {renderIcon} from \"@/utils/common/render\";\nimport {fetchDeleteScenes} from \"@/http/api/scenes\";\nimport ProjectDetail from \"@/views/home/project/components/ProjectDetail.vue\";\n\nconst props = withDefaults(defineProps<{\n  data:ISceneFetchData\n}>(),{\n  data:undefined\n})\nconst emits = defineEmits([\"refresh\",\"setLoadingProjectId\"]);\n\nconst options = [\n  {\n    label: () => cpt(\"home.Details\").value,\n    key: 'details',\n    icon: renderIcon(Information)\n  },\n  {\n    label: () => cpt(\"home.Rename\").value,\n    key: 'rename',\n    icon: renderIcon(Edit)\n  },\n  {\n    label: () => cpt(\"home.Delete\").value,\n    key: 'delete',\n    icon: renderIcon(Delete)\n  },\n  {\n    label: () => cpt(\"home.Release\").value,\n    key: 'release',\n    icon: renderIcon(SendAlt)\n  },\n  {\n    label: () => cpt(\"layout.header.Export\").value,\n    key: 'export',\n    icon: renderIcon(Export)\n  }\n]\nconst detail = ref();\nconst detailVisible = ref(false);\n\n// 下拉菜单选中处理\nfunction handleOperation(key: string){\n  switch (key){\n    case \"details\":\n      detail.value = props.data;\n      detailVisible.value = true;\n      break;\n    case \"delete\":\n      window.$dialog.warning({\n        title: window.$t('other.warning'),\n        content: window.$t(\"prompt['Are you sure to delete the scene?']\"),\n        positiveText: window.$t('other.Ok'),\n        negativeText: window.$t('other.Cancel'),\n        onPositiveClick: async () => {\n          emits(\"setLoadingProjectId\",props.data.id);\n          const res = await fetchDeleteScenes(props.data.id);\n\n          emits(\"setLoadingProjectId\",-1);\n\n          if(res.error === null){\n            // 刷新父页面列表\n            emits('refresh');\n          }\n        },\n      });\n      break;\n  }\n}\n\n// 编辑场景\nfunction editScene(){\n  // 新窗口打开\n  window.open(window.location.origin + \"/#/editor/\" + props.data.id, \"_blank\");\n}\n\n//预览场景\nfunction previewScene(){\n  // 新窗口打开\n  window.open(window.location.origin + \"/#/preview/\" + props.data.id, \"_blank\");\n}\n</script>\n\n<template>\n  <div class=\"w-full flex justify-between items-center\">\n    <n-tooltip trigger=\"hover\">\n      <template #trigger>\n        <h4> {{data.sceneName}} </h4>\n      </template>\n      <span> {{data.sceneName}} </span>\n    </n-tooltip>\n\n    <div class=\"w-75px flex justify-between items-center\">\n      <n-tooltip trigger=\"hover\">\n        <template #trigger>\n          <n-button text @click=\"editScene\">\n            <template #icon>\n              <n-icon><RequestQuote /></n-icon>\n            </template>\n          </n-button>\n        </template>\n        <span> {{ t('layout.sider.script.Edit') }} </span>\n      </n-tooltip>\n\n      <n-tooltip trigger=\"hover\">\n        <template #trigger>\n          <n-button text @click=\"previewScene\">\n            <template #icon>\n              <n-icon><Airplay /></n-icon>\n            </template>\n          </n-button>\n        </template>\n        <span> {{ t('home.Preview') }} </span>\n      </n-tooltip>\n\n      <n-dropdown :options=\"options\" @select=\"handleOperation\">\n        <n-button text>\n          <template #icon>\n            <n-icon><OverflowMenuVertical /></n-icon>\n          </template>\n        </n-button>\n      </n-dropdown>\n    </div>\n  </div>\n\n  <!-- 详情 -->\n  <ProjectDetail :detail=\"detail\" v-model:visible=\"detailVisible\" />\n</template>\n\n<style scoped lang=\"less\">\nh4{\n  max-width: calc(100% - 90px);\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  -o-text-overflow: ellipsis;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/project/components/CreateProject.vue",
    "content": "<script setup lang=\"ts\">\n\timport { ref, onMounted } from \"vue\";\n\timport { Close } from \"@vicons/carbon\";\n\timport { t } from \"@/language\";\n\timport { fetchSceneExampleList } from \"@/http/api/sceneExample\";\n\timport ProjectInfoForm from \"@/components/project/ProjectInfoForm.vue\";\n\timport { App, defaultProjectInfo } from \"@astral3d/engine\";\n\timport { fetchAddScene } from \"@/http/api/scenes\";\n\timport { getServiceStaticFile } from \"@/utils/common/file\";\n\n\twithDefaults(\n\t\tdefineProps<{\n\t\t\tvisible: boolean;\n\t\t}>(),\n\t\t{\n\t\t\tvisible: false,\n\t\t}\n\t);\n\tconst emits = defineEmits([\"update:visible\", \"refresh\"]);\n\n\tconst projectInfoFormRef = ref();\n\n\tconst spin = ref(false);\n\n\tconst currentExample = ref<ISceneFetchData | null>(null);\n\tconst exampleList = ref<ISceneFetchData[]>([]);\n\n\tasync function getExampleScene() {\n\t\tconst res = await fetchSceneExampleList({\n\t\t\tlimit: 1000,\n\t\t});\n\t\tif (res.data === null) return;\n\n\t\texampleList.value.push(...res.data.items);\n\t}\n\n\t// 选中示例模板\n\tfunction handleSelectExample(example: ISceneFetchData | null) {\n\t\tcurrentExample.value = example;\n\n\t\tApp.project.setKey(\"sceneInfo\", example || defaultProjectInfo().sceneInfo);\n\t}\n\n\t// 确认创建项目\n\tfunction handleSubmit() {\n\t\tprojectInfoFormRef.value.validate().then(() => {\n\t\t\tconst submit = async () => {\n\t\t\t\tconst data: ISceneFetchData = projectInfoFormRef.value.getData();\n\n\t\t\t\tspin.value = true;\n\t\t\t\tconst res = await fetchAddScene({\n\t\t\t\t\t...data,\n\t\t\t\t\tid: \"\",\n\t\t\t\t\tzip: \"\",\n\t\t\t\t\tcoverPicture: \"\",\n\t\t\t\t\tsceneVersion: 1,\n\t\t\t\t\thasDrawing: data.hasDrawing ? 1 : 0,\n\t\t\t\t\texampleSceneId: data.id,\n\t\t\t\t});\n\n\t\t\t\tspin.value = false;\n\n\t\t\t\tif (res.error === null) {\n\t\t\t\t\twindow.$dialog.success({\n\t\t\t\t\t\ttitle: t(\"other.Tips\"),\n\t\t\t\t\t\tcontent: t(\"prompt['The project is created successfully. Do you want to enter?']\"),\n\t\t\t\t\t\tpositiveText: t(\"other.Ok\"),\n\t\t\t\t\t\tnegativeText: t(\"other.Cancel\"),\n\t\t\t\t\t\tonPositiveClick: () => {\n\t\t\t\t\t\t\t// 新窗口打开项目\n\t\t\t\t\t\t\twindow.open(window.location.origin + \"/#/editor/\" + res.data.id, \"_blank\");\n\n\t\t\t\t\t\t\temits(\"update:visible\", false);\n\t\t\t\t\t\t\t// 刷新父页面列表\n\t\t\t\t\t\t\temits(\"refresh\");\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonNegativeClick: () => {\n\t\t\t\t\t\t\temits(\"update:visible\", false);\n\t\t\t\t\t\t\t// 刷新父页面列表\n\t\t\t\t\t\t\temits(\"refresh\");\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tsubmit();\n\t\t});\n\t}\n\n\tonMounted(() => {\n\t\tgetExampleScene();\n\t});\n</script>\n\n<template>\n\t<n-modal :show=\"visible\" @update:show=\"v => emits('update:visible', v)\">\n\t\t<n-spin :show=\"spin\">\n\t\t\t<n-card :title=\"t('home.New project')\" :bordered=\"false\" size=\"small\" class=\"w-max\" header-style=\"background:var(--n-color);\">\n\t\t\t\t<template #header-extra>\n\t\t\t\t\t<n-icon size=\"20\" class=\"cursor-pointer\" @click=\"emits('update:visible', false)\">\n\t\t\t\t\t\t<Close />\n\t\t\t\t\t</n-icon>\n\t\t\t\t</template>\n\n\t\t\t\t<div class=\"flex flex-wrap justify-between pt-20px h-max\">\n\t\t\t\t\t<div class=\"flex flex-col mr-20px\">\n\t\t\t\t\t\t<div class=\"relative cursor-pointer\">\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\twidth=\"300\"\n\t\t\t\t\t\t\t\tsrc=\"/static/images/placeholder/Web3D.jpg\"\n\t\t\t\t\t\t\t\tclass=\"mb-15px b-rd-2 transition-all-500\"\n\t\t\t\t\t\t\t\t:style=\"{ border: '2px solid var(--n-color-target)' }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<p class=\"text-16px absolute bottom-30px left-10px\" style=\"text-shadow: 1px 1px 2px black\">Web3D</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"grid grid-cols-3 gap-10px grid-auto-rows-max w-560px max-h-full mr-10px\">\n\t\t\t\t\t\t<div style=\"grid-column: 1 / -1\">\n\t\t\t\t\t\t\t<h4>{{ t(\"home.Template\") }}</h4>\n\t\t\t\t\t\t\t<n-divider class=\"!my-10px\" />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<n-card\n\t\t\t\t\t\t\thoverable\n\t\t\t\t\t\t\t@click=\"handleSelectExample(null)\"\n\t\t\t\t\t\t\tclass=\"w-178px h-max cursor-pointer\"\n\t\t\t\t\t\t\t:style=\"{ border: currentExample === null ? '1px solid var(--n-color-target)' : '1px solid transparent' }\"\n\t\t\t\t\t\t\t:footer-style=\"`background:var(${currentExample === null ? '--n-color-target' : '--n-action-color'});padding:10px;`\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<template #cover>\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\tsrc=\"/static/images/carousel/Astral3DEditor.jpg\"\n\t\t\t\t\t\t\t\t\t:alt=\"t('home.Empty project')\"\n\t\t\t\t\t\t\t\t\tclass=\"h-110px hover:transform-scale-140 transition-all-200\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t\t<template #footer>\n\t\t\t\t\t\t\t\t<span>{{ t(\"home.Empty project\") }}</span>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</n-card>\n\n\t\t\t\t\t\t<n-card\n\t\t\t\t\t\t\thoverable\n\t\t\t\t\t\t\tv-for=\"example in exampleList\"\n\t\t\t\t\t\t\t:key=\"example.id\"\n\t\t\t\t\t\t\t@click=\"handleSelectExample(example)\"\n\t\t\t\t\t\t\tclass=\"w-178px h-max cursor-pointer\"\n\t\t\t\t\t\t\t:style=\"{ border: currentExample === example ? '1px solid var(--n-color-target)' : '1px solid transparent' }\"\n\t\t\t\t\t\t\t:footer-style=\"`background:var(${currentExample === example ? '--n-color-target' : '--n-action-color'});padding:10px;`\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<template #cover>\n\t\t\t\t\t\t\t\t<n-tag type=\"success\" :bordered=\"false\" class=\"absolute top-10px right-10px z-10\">\n\t\t\t\t\t\t\t\t\t{{ example.sceneType }}\n\t\t\t\t\t\t\t\t</n-tag>\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t:src=\"getServiceStaticFile(example.coverPicture) || '/static/images/carousel/Astral3DEditor.jpg'\"\n\t\t\t\t\t\t\t\t\t:alt=\"example.sceneName\"\n\t\t\t\t\t\t\t\t\tclass=\"h-110px hover:transform-scale-140 transition-all-200\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t\t<template #footer>\n\t\t\t\t\t\t\t\t<span>{{ example.sceneName }}</span>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</n-card>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"h-full flex\">\n\t\t\t\t\t\t<n-divider vertical class=\"!h-auto\" />\n\n\t\t\t\t\t\t<div class=\"h-full w-320px flex flex-col justify-start ml-10px\">\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t:src=\"getServiceStaticFile(currentExample?.coverPicture || '') || '/static/images/carousel/Astral3DEditor.jpg'\"\n\t\t\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<h3 class=\"mt-10px mb-8px\">{{ currentExample?.sceneName || t(\"home.Empty project\") }}</h3>\n\t\t\t\t\t\t\t<p class=\"h-100px overflow-y-auto\">\n\t\t\t\t\t\t\t\t{{ currentExample === null ? t(\"home.A blank project without any scene elements\") : currentExample.sceneIntroduction }}\n\t\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t\t<n-button tertiary size=\"small\" class=\"mt-8px w-full text-left block\">\n\t\t\t\t\t\t\t\t{{ t(\"home.Project default settings\") }}\n\t\t\t\t\t\t\t</n-button>\n\n\t\t\t\t\t\t\t<n-tabs value=\"project\" type=\"segment\" size=\"small\" class=\"project-setting-tabs mt-24px\" pane-class=\"h-220px\">\n\t\t\t\t\t\t\t\t<n-tab-pane name=\"project\" :tab=\"t('home.Project')\" display-directive=\"show\">\n\t\t\t\t\t\t\t\t\t<ProjectInfoForm :value=\"currentExample\" ref=\"projectInfoFormRef\" class=\"!p-15px\" />\n\t\t\t\t\t\t\t\t</n-tab-pane>\n\t\t\t\t\t\t\t</n-tabs>\n\n\t\t\t\t\t\t\t<div class=\"w-full text-end mt-15px\">\n\t\t\t\t\t\t\t\t<n-button type=\"primary\" size=\"small\" @click.stop=\"handleSubmit\">{{ t(\"other.Ok\") }}</n-button>\n\t\t\t\t\t\t\t\t<n-button size=\"small\" class=\"ml-10px\" @click=\"emits('update:visible', false)\">{{ t(\"other.Cancel\") }}</n-button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</n-card>\n\t\t</n-spin>\n\t</n-modal>\n</template>\n\n<style scoped lang=\"less\">\n\t.project-setting-tabs {\n\t\t:deep(.n-tabs-nav) {\n\t\t\tjustify-content: center;\n\n\t\t\t.n-tabs-rail {\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t}\n\t}\n</style>"
  },
  {
    "path": "packages/editor/src/views/home/project/components/ProjectDetail.vue",
    "content": "<script setup lang=\"ts\">\nimport {t} from \"@/language\";\nimport {getServiceStaticFile} from \"@/utils/common/file\";\n\nwithDefaults(defineProps<{\n  visible: boolean,\n  detail: ISceneFetchData\n}>(), {\n  visible: false,\n  detail: () => ({\n    id:\"\",\n    sceneType:\"\",\n    sceneName:\"\",\n    sceneIntroduction:\"\",\n    sceneVersion: 0,\n    projectType: 0,\n    coverPicture:\"\",\n    hasDrawing: false,\n    zip:\"\",\n    zipSize:\"\",\n    createTime:\"\",\n    updateTime:\"\"\n  })\n})\nconst emits = defineEmits(['update:visible']);\n</script>\n\n<template>\n  <n-modal :show=\"visible\" @update:show=\"(v) => emits('update:visible',v)\">\n    <n-descriptions label-placement=\"left\" bordered :column=\"1\">\n      <n-descriptions-item :label=\"t('scene.Cover Picture')\">\n        <n-image width=\"200\" :src=\"getServiceStaticFile(detail.coverPicture) || '/static/images/carousel/Astral3DEditor.jpg'\" />\n      </n-descriptions-item>\n      <n-descriptions-item label=\"ID\">\n        {{ detail.id }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Name')\">\n        {{ detail.sceneName }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Classification')\">\n        {{ detail.sceneType }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Introduction')\">\n        {{ detail.sceneIntroduction }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('other.Version')\">\n        {{ detail.sceneVersion }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Project type')\">\n        {{ detail.projectType === 0 ? \"Web3D\" : \"WebGIS\" }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Include drawings')\">\n        {{ detail.hasDrawing ? \"No\" : \"Yes\" }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Scene data volume')\">\n        {{ detail.zipSize }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Create time')\">\n        {{ detail.createTime?.replace(\"T\",\" \").replace(\"+08:00\",\"\") }}\n      </n-descriptions-item>\n      <n-descriptions-item :label=\"t('scene.Update time')\">\n        {{ detail.updateTime?.replace(\"T\",\" \").replace(\"+08:00\",\"\") }}\n      </n-descriptions-item>\n    </n-descriptions>\n  </n-modal>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/index.vue",
    "content": "<template>\n  <router-view></router-view>\n</template>\n\n<script setup lang=\"ts\">\nimport {useMessage, useNotification, useDialog, useModal,useLoadingBar} from \"naive-ui\";\n\n//反馈组件注册至全局\nwindow.$message = useMessage();\nwindow.$dialog = useDialog();\nwindow.$modal = useModal();\nwindow.$loadingBar = useLoadingBar();\nwindow.$notification = useNotification();\n</script>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/preview/components/OperationItem.vue",
    "content": "<script setup lang=\"ts\">\nimport { Home } from '@vicons/carbon';\nimport {IPreviewOperation} from \"@/store/modules/previewOperation\";\nimport {MenuOperation} from \"@/utils/preview/menuOperation\";\nimport {renderIcon} from \"@/utils/common/render\";\n\nconst props = withDefaults(defineProps<{\n  oKey:string,\n  operation: IPreviewOperation\n}>(), {\n  oKey:\"\",\n  operation: () => ({\n    name:\"\",\n    icon:Home,\n  })\n});\n\nfunction handleClickMenu(){\n  if(props.operation.children) return;\n\n  MenuOperation.Init(props.oKey)\n}\n\nfunction getOptions(menuListChildren:{ [key: string]: IPreviewOperation } | undefined) {\n  if(!menuListChildren) return [];\n\n  const options: Array<{key: string,label:string,icon:any,disabled:boolean}> = [];\n  Object.entries(menuListChildren).forEach(([key, value]: [string, IPreviewOperation]) => {\n    options.push({\n      key: key,\n      label: value.name,\n      icon: renderIcon(value.icon),\n      disabled: value.disabled || false\n    });\n  })\n\n  return options;\n}\n\nfunction handleSelect(key: string){\n  MenuOperation.Init(key);\n}\n</script>\n\n<template>\n  <n-dropdown v-if=\"operation.children\" trigger=\"hover\"\n              :options=\"getOptions(operation.children)\" @select=\"handleSelect\">\n    <n-button v-show=\"operation.show\" :bordered=\"false\" tag=\"div\"\n              :loading=\"operation.loading\"\n              :disabled=\"operation.disabled\"\n              :type=\"operation.active? 'primary' : 'default'\"\n              @click.stop=\"handleClickMenu\" class=\"mr-10px\">\n      <template #icon>\n        <n-icon><component :is=\"operation.icon\" /></n-icon>\n      </template>\n    </n-button>\n  </n-dropdown>\n\n  <n-tooltip v-else trigger=\"hover\">\n    <template #trigger>\n      <n-button v-show=\"operation.show\" :bordered=\"false\" tag=\"div\"\n                :loading=\"operation.loading\"\n                :disabled=\"operation.disabled\"\n                :type=\"operation.active? 'primary' : 'default'\"\n                @click.stop=\"handleClickMenu\" class=\"mr-10px\">\n        <template #icon>\n          <n-icon><component :is=\"operation.icon\" /></n-icon>\n        </template>\n      </n-button>\n    </template>\n    {{operation.name}}\n  </n-tooltip>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/preview/components/Operations.vue",
    "content": "<script setup lang=\"ts\">\nimport {onMounted, onBeforeUnmount, nextTick} from \"vue\";\nimport {MathUtils} from \"three\";\nimport {Hooks} from \"@astral3d/engine\";\nimport {usePreviewOperationStore} from \"@/store/modules/previewOperation\";\nimport OperationConfig from \"./operationConfigModal/index.vue\";\nimport OperationItem from \"@/views/preview/components/OperationItem.vue\";\nimport {MenuOperation} from \"@/utils/preview/menuOperation\";\n\nconst operationStore = usePreviewOperationStore();\n\nfunction handleClick() {}\n\nfunction handlePostAnimationLoop(e) {\n  if (operationStore.menuList.autoRotate.active) {\n    window.viewer.modules.controls.azimuthAngle += operationStore.autoRotateSpeed * e.delta * MathUtils.DEG2RAD;\n  }\n\n  if (operationStore.menuList.miniMap.active) {\n    MenuOperation.MiniMap.update();\n  }\n\n  if (operationStore.menuList.roaming.active) {\n    if (MenuOperation.Roaming.isRoaming) {\n      e.toBeRender(true);\n    }\n  }\n}\n\nfunction handlePreRender(e){\n  if (operationStore.menuList.roaming.active) {\n    if (MenuOperation.Roaming.isRoaming) {\n      const roamingDelta = e.delta / 3;\n      for (let i = 0; i < 3; i++) {\n        MenuOperation.Roaming.render(roamingDelta);\n      }\n      // MenuOperation.Roaming.render(e.delta);\n    }\n  }\n}\n\nfunction handleCameraChanged(_,controls){\n  if(!MenuOperation.Roaming.isRoaming || !MenuOperation.Roaming.person) return;\n\n  // 漫游模式下,玩家跟随旋转\n  MenuOperation.Roaming.person.rotation.y = controls.azimuthAngle + Math.PI;\n}\n\nonMounted(async () => {\n  await nextTick();\n\n  window.viewer.addEventListener(\"afterAnimation\", handlePostAnimationLoop);\n  window.viewer.addEventListener(\"beforeRender\", handlePreRender);\n\n  Hooks.useAddSignal('cameraChanged',handleCameraChanged)\n})\nonBeforeUnmount(() => {\n  window.viewer.removeEventListener(\"afterAnimation\", handlePostAnimationLoop);\n  window.viewer.removeEventListener(\"beforeRender\", handlePreRender);\n\n  Hooks.useRemoveSignal('cameraChanged',handleCameraChanged)\n})\n</script>\n\n<template>\n  <div class=\"w-full h-0 flex justify-center items-end absolute bottom-15px\">\n    <n-card size=\"small\" class=\"w-max\" content-style=\"padding: 5px 0 5px 10px; display: flex;\"\n            @click.stop=\"handleClick\">\n      <OperationItem v-for=\"o in Object.keys(operationStore.menuList)\" :key=\"o\" :oKey=\"o\"\n                      :operation=\"operationStore.menuList[o]\"/>\n    </n-card>\n  </div>\n\n  <OperationConfig/>\n</template>\n\n<style scoped lang=\"less\">\n:deep(.n-menu) {\n  &-item {\n    height: 24px;\n\n    &-content {\n      padding: 0 !important;\n    }\n  }\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/preview/components/PreviewSceneTree.vue",
    "content": "<script setup lang=\"ts\">\nimport {ref} from 'vue';\nimport {TreeView} from '@vicons/carbon';\nimport {t} from  \"@/language\";\nimport SceneTree from \"@/components/tree/SceneTree.vue\";\n\nconst isShow = ref(false);\n</script>\n\n<template>\n  <div class=\"absolute top-2 left-2\" @pointerdown.stop>\n    <transition name=\"wh-btn-fade\" :duration=\"500\">\n      <n-button v-if=\"!isShow\" strong secondary @click=\"isShow = true\" class=\"absolute w-60px h-40px z-1\">\n        <n-icon size=\"24\">\n          <TreeView/>\n        </n-icon>\n      </n-button>\n    </transition>\n\n    <transition name=\"wh-fade\" :duration=\"500\">\n      <n-card v-show=\"isShow\" size=\"small\" :title=\"t('preview.Scene Tree')\" closable @close=\"isShow = false\"\n              class=\"absolute w-300px h-600px z-2\" header-style=\"height:8%;padding: 10px 15px;\" content-style=\"height:92%;padding: 8px 10px;\">\n        <SceneTree />\n      </n-card>\n    </transition>\n  </div>\n</template>\n\n<style scoped lang=\"less\">\n.wh-fade-enter-active, .wh-fade-leave-active,.wh-btn-fade-enter-active, .wh-btn-fade-leave-active {\n  transition: width .5s,height .5s,opacity .4s;\n}\n\n.wh-btn-fade-leave-from {\n  width: 60px;\n  height: 40px;\n  opacity: 1;\n}\n\n.wh-btn-fade-leave-to {\n  width: 300px;\n  height: 600px;\n  opacity: 0;\n}\n\n.wh-btn-fade-enter-from {\n  width: 300px;\n  height: 600px;\n  opacity: 0;\n}\n\n.wh-btn-fade-enter-to {\n  width: 60px;\n  height: 40px;\n  opacity: 1;\n}\n\n.wh-fade-leave-from {\n  width: 300px;\n  height: 600px;\n  opacity: 1;\n}\n\n.wh-fade-leave-to {\n  width: 60px;\n  height: 40px;\n  opacity: 0;\n}\n\n.wh-fade-enter-from {\n  width: 60px;\n  height: 40px;\n  opacity: 0;\n}\n\n.wh-fade-enter-to {\n  width: 300px;\n  height: 600px;\n  opacity: 1;\n}\n</style>"
  },
  {
    "path": "packages/editor/src/views/preview/components/operationConfigModal/AutoRotate.vue",
    "content": "<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport {t} from \"@/language\";\nimport { usePreviewOperationStore } from \"@/store/modules/previewOperation\";\n\nconst operationStore = usePreviewOperationStore();\n\nconst showModal = ref(false);\n\nwatch(() => operationStore.menuList.autoRotate.active, (newVal:boolean) => {\n  showModal.value = newVal;\n})\n\nfunction handleClose(){\n  showModal.value = false;\n}\n</script>\n\n<template>\n  <n-card v-if=\"showModal\" :title=\"t('preview.Auto rotation')\" closable @close=\"handleClose\" size=\"small\" :segmented=\"{\n      content: true,\n      footer: 'soft'\n    }\">\n    <div class=\"flex w-full\">\n      <span class=\"w-30%\">{{ t(\"preview.Rotational speed\") }}</span>\n      <n-slider v-model:value=\"operationStore.autoRotateSpeed\" :step=\"1\" :min=\"1\" :max=\"100\"\n                class=\"w-50%\" />\n      <n-text code class=\"w-18% ml-2% text-align-center\">{{operationStore.autoRotateSpeed}}</n-text>\n    </div>\n  </n-card>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/preview/components/operationConfigModal/ModelExplode.vue",
    "content": "<script setup lang=\"ts\">\nimport { ref, watch,onMounted } from 'vue';\nimport {t} from \"@/language\";\nimport { usePreviewOperationStore } from \"@/store/modules/previewOperation\";\nimport {MenuOperation} from \"@/utils/preview/menuOperation\";\nimport { Hooks } from \"@astral3d/engine\";\n\nconst operationStore = usePreviewOperationStore();\n\nconst showModal = ref(false);\n\nwatch(() => operationStore.menuList.explode.active, (newVal:boolean) => {\n  showModal.value = newVal;\n})\n\nfunction handleChange(){\n  if(!MenuOperation.explodeModel) return;\n\n  MenuOperation.Explode.explodeModel(MenuOperation.explodeModel,operationStore.explodeScalar);\n}\n\nfunction handleClose(){\n  showModal.value = false;\n}\n\nonMounted(() => {\n  Hooks.useAddSignal(\"objectSelected\",(object) => {\n    if(!operationStore.menuList.explode.active) return;\n\n    // 点击的模型不是爆炸模型也不是爆炸模型的子级则取消爆炸\n    if(object !== MenuOperation.explodeModel && object?.isAncestor(MenuOperation.explodeModel)){\n      MenuOperation.explode();\n    }\n  })\n})\n</script>\n\n<template>\n  <n-card v-if=\"showModal\" :title=\"t('preview.Explode')\" closable @close=\"handleClose\" size=\"small\" :segmented=\"{\n      content: true,\n      footer: 'soft',\n    }\">\n    <div class=\"flex w-full\">\n      <span class=\"w-30%\">{{ t(\"preview.Explode scalar\") }}</span>\n      <n-slider v-model:value=\"operationStore.explodeScalar\" placement=\"top\" :step=\"0.1\" :min=\"0\" :max=\"10\"\n                class=\"w-50%\" @update:value=\"handleChange\" />\n      <n-text code class=\"w-18% ml-2% text-align-center\">{{operationStore.explodeScalar}}</n-text>\n    </div>\n  </n-card>\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/preview/components/operationConfigModal/index.vue",
    "content": "<script setup lang=\"ts\">\nimport AutoRotate from \"./AutoRotate.vue\";\nimport ModelExplode from \"./ModelExplode.vue\";\n</script>\n\n<template>\n  <div class=\"fixed bottom-150px right-15px z-9999 w-300px\">\n    <AutoRotate />\n    <ModelExplode />\n  </div>\n\n</template>\n\n<style scoped lang=\"less\">\n\n</style>"
  },
  {
    "path": "packages/editor/src/views/preview/index.vue",
    "content": "<script setup lang=\"ts\">\n\timport { nextTick, onMounted, provide, ref } from \"vue\";\n\timport { useRoute } from \"vue-router\";\n\timport { t } from \"@/language\";\n\timport { fetchGetOneScene } from \"@/http/api/scenes\";\n\timport { App, Viewer, Hooks, defaultProjectInfo } from \"@astral3d/engine\";\n\timport { usePreviewOperationStore } from \"@/store/modules/previewOperation\";\n\timport EsCubeLoading from \"@/components/es/EsCubeLoading.vue\";\n\timport PreviewSceneTree from \"@/views/preview/components/PreviewSceneTree.vue\";\n\timport PreviewOperations from \"@/views/preview/components/Operations.vue\";\n\timport Drawing from \"@/components/drawing/Drawing.vue\";\n\timport { useGlobalConfigStore } from \"@/store/modules/globalConfig\";\n\timport { MenuOperation } from \"@/utils/preview/menuOperation\";\n\n\tconst route = useRoute();\n\n\tconst globalStore = useGlobalConfigStore();\n\tconst operationStore = usePreviewOperationStore();\n\n\tconst defaultInfo = defaultProjectInfo();\n\tconst sceneInfo = ref(defaultInfo.sceneInfo);\n\tconst drawingInfo = ref(defaultInfo.drawing);\n\tprovide(\"sceneInfo\", sceneInfo);\n\tprovide(\"drawingInfo\", drawingInfo);\n\n\tconst viewportRef = ref();\n\tconst initLoading = ref(true);\n\n\tonMounted(async () => {\n\t\tApp.setConfig({\n\t\t\ttheme: globalStore.theme.replace(\"Theme\", \"\"),\n\t\t\tmainColor: globalStore.mainColor.hexHover,\n\t\t});\n\n\t\twindow.viewer = new Viewer({\n\t\t\tcontainer: viewportRef.value,\n\t\t\tedit: {\n\t\t\t\tenabled: false,\n\t\t\t},\n\t\t\tgrid: {\n\t\t\t\tenabled: false,\n\t\t\t},\n\t\t\trequest: {\n\t\t\t\tbaseUrl: \"/file/static/\",\n\t\t\t},\n\t\t});\n\n\t\tawait nextTick();\n\n\t\tawait init();\n\t});\n\n\tasync function init() {\n\t\t// 获取路由参数\n\t\tconst id = route.params.id as string;\n\t\tif (!id) {\n\t\t\twindow.$message?.error(t(\"prompt['Parameter error!']\"));\n\t\t\treturn;\n\t\t}\n\n\t\tconst res = await fetchGetOneScene(id);\n\t\tif (res.error !== null) {\n\t\t\twindow.$message?.error(t(\"scene.Failed to get scene data\"));\n\t\t\treturn;\n\t\t}\n\n\t\tif (res.data.cesiumConfig) {\n\t\t\tif (typeof res.data.cesiumConfig === \"string\") {\n\t\t\t\tres.data.cesiumConfig = JSON.parse(res.data.cesiumConfig);\n\t\t\t}\n\t\t} else {\n\t\t\tres.data.cesiumConfig = undefined;\n\t\t}\n\n\t\tApp.project.setKey(\"sceneInfo\", res.data);\n\t\tsceneInfo.value = res.data;\n\n\t\tinitLoading.value = false;\n\n\t\tgetScene(res.data);\n\t}\n\n\t//拉取场景\n\tfunction getScene(sceneInfo) {\n\t\t// 如果创建的是空场景则无场景包\n\t\tif (!sceneInfo.zip) {\n\t\t\twindow.viewer.options.hdr = \"/static/resource/hdr/cloudy.hdr\";\n\t\t\twindow.viewer.loadEnv(true);\n\t\t\treturn;\n\t\t}\n\n\t\twindow.viewer.options.hdr = \"\";\n\n\t\tlet notice = window.$notification.info({\n\t\t\ttitle: window.$t(\"scene['Get the scene data']\") + \"...\",\n\t\t\tcontent: window.$t(\"other.Loading\") + \"...\",\n\t\t\tclosable: false,\n\t\t});\n\n\t\twindow.viewer.package.unpack({\n\t\t\turl: sceneInfo.zip,\n\t\t\tonSceneLoad: (sceneJson: ISceneJson) => {\n\t\t\t\tif (sceneJson.controls?.state) {\n\t\t\t\t\tMenuOperation.InitControlsState = sceneJson.controls.state;\n\t\t\t\t}\n\n\t\t\t\tHooks.useDispatchSignal(\"sceneResize\");\n\t\t\t},\n\t\t\tonComplete: () => {\n\t\t\t\t// 加载完成后，生成Collider环境\n\t\t\t\tMenuOperation.Roaming.generateColliderEnvironment()\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t// 检查人物模型是否已加载\n\t\t\t\t\t\tconst checkPlayer = () => {\n\t\t\t\t\t\t\tif (MenuOperation.Roaming.person !== undefined) {\n\t\t\t\t\t\t\t\toperationStore.menuList.roaming.loading = false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\tcheckPlayer();\n\t\t\t\t\t\t\t\t}, 200);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tcheckPlayer();\n\t\t\t\t\t})\n\t\t\t\t\t.catch(error => {\n\t\t\t\t\t\twindow.$message?.error(`[Roaming]: ${error}`);\n\t\t\t\t\t});\n\n\t\t\t\twindow.$message?.success(t(\"scene['Loading completed!']\"));\n\n\t\t\t\tHooks.useDispatchSignal(\"sceneLoadComplete\");\n\n\t\t\t\tnotice.destroy();\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n</script>\n\n<template>\n\t<EsCubeLoading v-model:visible=\"initLoading\" />\n\n\t<div id=\"preview\" class=\"w-full h-full\">\n\t\t<n-split\n\t\t\tdirection=\"horizontal\"\n\t\t\t:max=\"0.85\"\n\t\t\t:min=\"0.15\"\n\t\t\t:pane1-style=\"{ display: drawingInfo.isUploaded ? 'flex' : 'none' }\"\n\t\t\t:resize-trigger-size=\"drawingInfo.isUploaded ? 3 : 0\"\n\t\t>\n\t\t\t<template #1 v-if=\"drawingInfo.isUploaded\">\n\t\t\t\t<Drawing />\n\t\t\t</template>\n\t\t\t<template #2>\n\t\t\t\t<div ref=\"viewportRef\" class=\"relative w-full h-full\"></div>\n\n\t\t\t\t<PreviewSceneTree />\n\n\t\t\t\t<PreviewOperations />\n\t\t\t</template>\n\t\t</n-split>\n\t</div>\n</template>\n\n<style scoped lang=\"less\">\n\t.n-split {\n\t\t&-pane-1,\n\t\t&-pane-2 {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tposition: relative;\n\t\t}\n\t}\n</style>"
  },
  {
    "path": "packages/editor/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"useDefineForClassFields\": true,\n    \"target\": \"esnext\",\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"strict\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"allowSyntheticDefaultImports\": true,\n    \"strictFunctionTypes\": false,\n    \"jsx\": \"preserve\",\n    \"baseUrl\": \".\",\n    \"allowJs\": true,\n    \"sourceMap\": false,\n    \"esModuleInterop\": true,\n    \"resolveJsonModule\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"experimentalDecorators\": true,\n    \"lib\": [\"dom\", \"esnext\"],\n    \"types\": [\"vite/client\"],\n    \"typeRoots\": [\"./node_modules/@types/\", \"./types\"],\n    \"noImplicitAny\": false,\n    \"skipLibCheck\": true,\n    \"paths\": {\n      \"~/*\": [\n        \"types/*\"\n      ],\n      \"@/*\": [\n        \"src/*\"\n      ]\n    },\n    \"emitDeclarationOnly\": true, // 只输出声明文件(ts 产物)\n    \"declaration\": true, // 自动生成声明文件\n    \"declarationDir\": \"types\", // 声明文件生成的目录\n  },\n  \"include\": [\n    \"src/**/*.ts\",\n    \"src/**/*.d.ts\",\n    \"src/**/*.tsx\",\n    \"src/**/*.vue\",\n    \"types/*.d.ts\",\n    \"types/**/*.d.ts\",\n    \"build/**/*.ts\",\n    \"public/sdk/**/*.d.ts\"\n  ],\n  \"exclude\": [\"node_modules\",  \"dist\"]\n}"
  },
  {
    "path": "packages/editor/types/assets.d.ts",
    "content": "declare namespace IAssets {\n    type SupportType = 'Model' | 'Material' | 'Texture' | 'Billboard' | 'HDR';\n\n    interface MainCategory {\n        key: IAssets.SupportType;\n        label:string | ComputedRef<string>;\n        icon:any;\n        children:IAssets.Category[];\n    }\n\n    interface Category {\n        id:string | number;\n        key:string;\n        label:string;\n        pkey:string | null;\n        sortNum:number;\n        type: IAssets.SupportType;\n        children:IAssets.Category[];\n    }\n\n    interface Item {\n        id?: number;\n        name: string;\n        type: IAssets.SupportType;\n        category: string;\n        categoryName?: string;\n        thumbnail: string;\n        size: number;\n        tags?: string; // 标签,英文逗号分割。比如 [\"含骨骼\", \"含动画\", \"静态\"]\n        file: string; // 文件地址\n        createTime?:string;\n        updateTime?:string;\n    }\n}"
  },
  {
    "path": "packages/editor/types/billboard.d.ts",
    "content": "declare namespace IBillboard {\n    interface options {\n        name: string;\n        position: number[],\n        image:{\n            url?:string,\n            visible:boolean,\n            width:number,\n            height:number,\n            rotate:number,\n            margin:number,\n            position:string,\n            top:boolean,\n        },\n        text:{\n            value:string,\n            visible:boolean,\n            fontSize:number,\n            fontColor:string,\n            fontFamily?:string,\n            fontWeight:string | number,\n            fontStyle:string,\n            lineGap:number,\n            padding:number,\n            align:string,\n            baseline:string,\n            strokeWidth:number,\n            strokeColor:string,\n            fill:boolean,\n            fillColor:string,\n        }\n    }\n}"
  },
  {
    "path": "packages/editor/types/bim.d.ts",
    "content": "declare interface IBIMData {\n    id:number\n    bimFilePath:string,\n    bimFileSize:number,\n    thumbnail:string,\n    conversionDuration:number,\n    conversionStatus :number\n    createTime :string,\n    fileName :string,\n    fileSourceIp :string,\n    gltfFilePath:string,\n    gltfFileSize:number,\n}"
  },
  {
    "path": "packages/editor/types/config.d.ts",
    "content": "declare namespace IConfig {\n    type Theme = 'osTheme' |'lightTheme' | 'darkTheme';\n\n    type Locale = 'zh-CN' |'en-US';\n\n    interface Color {\n        CMYK:number[];\n        RGB:number[];\n        hex:string;\n        hexHover?:string;\n        hexPressed?:string;\n        hexSuppl?:string;\n        name:string;\n        pinyin:string;\n    }\n}"
  },
  {
    "path": "packages/editor/types/data-source.d.ts",
    "content": "declare namespace IDataSource {\n    interface Item {\n        id: string;\n        name: string;\n        type: string;\n        connectionString: string;\n        username:string;\n        password:string;\n    }\n}\n\ndeclare namespace IDataSet {\n    interface Item {\n        id: string;\n        groupId: string;\n        name: string;\n        type: string;\n        method?: \"GET\" | \"POST\";\n        api?: string;\n        dataSource?: string;\n        sql?: string;\n        json?: string;\n    }\n\n    interface IGroup {\n        id: string;\n        pid?: string;\n        name: string;\n        children?: IGroup[];\n    }\n}"
  },
  {
    "path": "packages/editor/types/drawing.d.ts",
    "content": "declare interface IDrawingMark {\n    x: number,\n    y: number,\n    w: number,\n    h: number,\n    color?:string,\n    modelUuid?: string,\n    modelPath?: string\n}\n\ndeclare interface IDrawingImgInfo {\n    width: number,\n    height: number\n}\n\ndeclare interface IDrawing {\n    isUploaded: boolean;\n    imgSrc:string;\n    isCad: boolean;\n    layers: ICad.DxfLayers;\n    isDrawingRect:boolean;\n    selectedRectIndex: number;\n    markList: DrawingMark[];\n    imgInfo: DrawingImgInfo;\n}\n\ndeclare namespace ICad{\n    interface DxfLayer{\n        name: string,\n        color: number,\n        colorIndex: number,\n        frozen: boolean, // 冻结\n        visible: boolean,\n        //entities: any[]\n    }\n\n    interface DxfLayers{\n        [name:string]: DxfLayer\n    }\n\n    interface Data {\n        id:number,\n        fileName :string,\n        thumbnail:string,\n        filePath:string,\n        converterFilePath:string,\n        conversionStatus :number,\n        createTime :string,\n    }\n}"
  },
  {
    "path": "packages/editor/types/env.d.ts",
    "content": "/// <reference types=\"vite/client\" />\n\ndeclare module '*.vue' {\n  import { DefineComponent } from 'vue'\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types\n  const component: DefineComponent<{}, {}, any>\n  export default component\n}\n"
  },
  {
    "path": "packages/editor/types/ignore.d.ts",
    "content": "declare module '*.js';"
  },
  {
    "path": "packages/editor/types/naive-ui.d.ts",
    "content": "//naive ui 上传组件\ndeclare interface UploadFileInfo {\n    id: string | number,\t//文件 id，需要唯一\n    name: string,\t//文件名\n    status: string,\t//'pending' | 'uploading' | 'error' | 'finished' | 'removed'\t上传的状态\n    percentage: number,\t//文件上传进度百分比，在 uploading 状态下生效\n    file?: File | null,\t//文件对应的浏览器 File 对象\n    thumbnailUrl?: string | null,\t//缩略图 URL\n    type?: string | null,\t//MIME 类型\n    url?: string | null\n}\ndeclare interface uploadOption {\n    file: UploadFileInfo, \n    fileList: Array<UploadFileInfo>, \n    event?: Event\n}\n"
  },
  {
    "path": "packages/editor/types/network.d.ts",
    "content": "declare namespace Service {\n    /**\n     * 请求的错误类型：\n     * - axios: axios错误：网络错误, 请求超时, 默认的兜底错误\n     * - http: 请求成功，响应的http状态码非200的错误\n     * - backend: 请求成功，响应的http状态码为200，由后端定义的业务错误\n     */\n    type RequestErrorType = 'axios' | 'http' | 'backend';\n\n    /** 请求错误 */\n    interface RequestError {\n        /** 请求服务的错误类型 */\n        type: RequestErrorType;\n        /** 错误码 */\n        code: string | number;\n        /** 错误信息 */\n        msg: string;\n    }\n\n    /** 后端接口返回的数据结构配置 */\n    interface BackendResultConfig {\n        /** 表示后端请求状态码的属性字段 */\n        codeKey: string;\n        /** 表示后端请求数据的属性字段 */\n        dataKey: string;\n        /** 表示后端消息的属性字段 */\n        msgKey: string;\n        /** 后端业务上定义的成功请求的状态 */\n        successCode: number | string;\n    }\n\n    /** 自定义的请求成功结果 */\n    interface SuccessResult<T = any> {\n        /** 请求错误 */\n        error: null;\n        /** 请求数据 */\n        data: T;\n    }\n\n    /** 自定义的请求失败结果 */\n    interface FailedResult {\n        /** 请求错误 */\n        error: RequestError;\n        /** 请求数据 */\n        data: null;\n    }\n\n    /** 自定义的请求结果 */\n    type RequestResult<T = any> = SuccessResult<T> | FailedResult;\n\n    /** 多个请求数据结果 */\n    type MultiRequestResult<T extends any[]> = T extends [infer First, ...infer Rest]\n        ? [First] extends [any]\n            ? Rest extends any[]\n                ? [Service.RequestResult<First>, ...MultiRequestResult<Rest>]\n                : [Service.RequestResult<First>]\n            : Rest extends any[]\n                ? MultiRequestResult<Rest>\n                : []\n        : [];\n\n    /** 请求结果的适配器函数 */\n    type ServiceAdapter<T = any, A extends any[] = any> = (...args: A) => T;\n\n    /* 列表分页查询后端返回的数据类型 */\n    interface ListPageResult<T> {\n        current:number;\n        items:T[];\n        pageSize:number;\n        pages:number;\n        total:number;\n    }\n\n    /* 分页查询参数类型 */\n    interface ListPageQueryParams {\n        offset: number,\n        limit: number,\n        sortby: string,\n        order: \"desc\" | \"asc\",\n        query?: string,\n        search?: string,\n    }\n}\n\ndeclare interface WebSocketMessage<T>{\n    /**\n     * 消息类型\n     * bim2gltf:bim模型轻量化 | message:普通消息 | error:错误信息\n     * chatroom-join:加入聊天室 | chatroom-leave:离开聊天室 | chatroom-message:聊天室消息\n     **/\n    type:\"bim2gltf\" | \"message\" | \"error\" | \"chatroom-join\" | \"chatroom-leave\" | \"chatroom-message\",\n    // 消息订阅者（uname）\n    subscriber:string,\n    data:T\n}\n\ndeclare interface Bim2GltfWsData{\n    conversionStatus:\"progress\" | \"completed\" | \"failed\",\n    item:IBIMData\n}\n"
  },
  {
    "path": "packages/editor/types/particle.d.ts",
    "content": "declare namespace IParticle {\n  interface Config {\n    attr: {\n      position: { x: number, y: number, z: number },\n      rotation: { x: number, y: number, z: number },\n      scale: number,\n      // 总发射次数\n      totalEmitTimes: number;\n      // 发射器的阻尼系数\n      damping: number;\n      // 发射器的寿命(ms)\n      life: number;\n      // 发射粒子的数量范围\n      numPan: {\n        min: number;\n        max: number;\n      },\n      // 每次粒子发射之间的时间间隔(s)\n      timePan: {\n        a: number;\n        b: number;\n      }\n    },\n    init: {\n      // 粒子质量\n      mass: {\n        min: number;\n        max: number;\n        // 确定是否对质量值进行平均\n        center: boolean;\n        isEnabled: boolean;\n      },\n      // 粒子的生命值属性\n      life: {\n        min: number;\n        max: number;\n        center: boolean;\n        isEnabled: boolean;\n      },\n      // 粒子的半径属性\n      radius: {\n        width: number;\n        height: number;\n        center: boolean;\n        isEnabled: boolean;\n      },\n      // 粒子的旋转属性\n      rotation: {\n        x: number;\n        y: number;\n        z: number;\n        useEmitterRotation: boolean;\n        isEnabled: boolean;\n      },\n      // 粒子起始区域（从此区域中随机设置初始化粒子的起始位置属性）\n      position: {\n        isEnabled: boolean;\n        // 可生成起始粒子的区域\n        zone: BoxZone | LineZone | MeshZone | PointZone | SphereZone | null\n      },\n      // 粒子的速度属性\n      velocity: {\n        isEnabled: boolean;\n        velocity: RadialVelocity | PolarVelocity | VectorVelocity | null\n      }\n      // 粒子主体\n      body: {\n        isEnabled: boolean;\n        body: {\n          // 粒子的形状,Sprite | Mesh | Point\n          type: 'Sprite' | 'Mesh' | 'Point';\n          uuid: string;\n        } | null;\n      }\n    },\n    // 行为类（behaviours）负责管理粒子在被发射之后的行为。也就是说，粒子在被发射出来之后，它的运动轨迹、速度变化、颜色变化等行为特征是由这些行为类来控制和管理的\n    behaviour: {\n      // 随时间改变粒子颜色的行为。\n      color: {\n        colorA: number | string;\n        colorB: number | string;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 缩放粒子的行为\n      scale: {\n        scaleA: number;\n        scaleB: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 对粒子应用阿尔法转换效果的行为\n      alpha: {\n        alphaA: number;\n        alphaB: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 迫使粒子沿特定轴线运动的行为,fx，fy，fz在计算时会 * 100\n      force: {\n        fx: number;\n        fy: number;\n        fz: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 旋转粒子的行为\n      rotate: {\n        x: number;\n        y: number;\n        z: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 导致粒子在三维空间中随机坐标漂移的行为\n      randomDrift: {\n        driftX: number;\n        driftY: number;\n        driftZ: number;\n        delay: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 使粒子弹起的行为\n      spring: {\n        x: number;\n        y: number;\n        z: number;\n        // 弹跳系数\n        spring: number;\n        // 弹跳摩擦\n        friction: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 使粒子被吸引到目标位置的行为\n      attraction:{\n        x: number;\n        y: number;\n        z: number;\n        force: number;\n        radius: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 使粒子远离与其碰撞的其他粒子的行为\n      collision:{\n        useMass: boolean;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      }\n    },\n  }\n\n  interface Object3DJSON {\n    uuid: string;\n    type: string;\n    name: string;\n    // 粒子发射器JSON\n    emitter: {\n      // 粒子发射器配置\n      config: Config;\n      // 粒子发射器系统名称\n      system: string;\n      // 粒子发射器用到的初始化器类型\n      useInitializers: string[];\n      // 粒子发射器初始化器对象中用到的Sprite或Mesh JSON\n      bodyObjectJSON: import('three').Object3DJSON | null;\n      // 粒子发射器用到的行为类型\n      useBehaviours: string[];\n    };\n    children: [];\n  }\n\n  // 盒型区域\n  interface BoxZone {\n    type: 'BoxZone';\n    depth: number;\n    height: number;\n    width: number;\n    x: number;\n    y: number;\n    z: number;\n  }\n\n  // 线性区域\n  interface LineZone {\n    type: 'LineZone';\n    x1: number;\n    x2: number;\n    y1: number;\n    y2: number;\n    z1: number;\n    z2: number;\n  }\n\n  // 网格(Mesh)区域\n  interface MeshZone {\n    type: 'MeshZone';\n    mesh: any;\n    scale: number;\n  }\n\n  // 点区域\n  interface PointZone {\n    type: 'PointZone';\n    x: number;\n    y: number;\n    z: number;\n  }\n\n  // 球区域\n  interface SphereZone {\n    type: 'SphereZone';\n    radius: number;\n    x: number;\n    y: number;\n    z: number;\n  }\n\n  // 径向速度：物体在其半径矢量方向上的速度分量\n  interface RadialVelocity {\n    type: 'RadialVelocity';\n    radius: number;\n    x: number;\n    y: number;\n    z: number;\n    theta: number;\n  }\n\n  // 极坐标速度\n  interface PolarVelocity {\n    type: 'PolarVelocity';\n    radius: number;\n    theta: number;\n    phi: number;\n    tha: number;\n  }\n\n  // 矢量速度\n  interface VectorVelocity {\n    type: 'VectorVelocity';\n    x: number;\n    y: number;\n    z: number;\n    theta: number;\n  }\n}"
  },
  {
    "path": "packages/editor/types/plugin.d.ts",
    "content": "declare namespace IPlugin{\n    interface Item {\n        // 插件名称\n        name:string;\n        // 插件icon\n        icon:string;\n        // 插件ems js地址\n        src?:string;\n    }\n\n    // 内置glTF处理器优化参数\n    interface GLTFHandlerOptimizeModel {\n        instance: boolean;\n        instanceMin: number;\n        meshoptLevel: 'medium' | 'high';\n        palette: boolean;\n        paletteMin: number;\n        simplify: boolean;\n        simplifyError: number;\n        simplifyRatio: number;\n        simplifyLockBorder: boolean;\n        prune: boolean;\n        pruneAttributes: boolean;\n        pruneLeaves: boolean;\n        pruneSolidTextures: boolean;\n        compress: 'draco' | 'meshopt' | 'quantize' | \"false\";\n        textureCompress: 'webp' | 'avif' | 'auto' | \"none\"; // 暂不支持 'ktx2'\n        textureSize: number;\n        flatten: boolean;\n        join: boolean;\n        weld: boolean;\n    }\n\n    // 内置语义化点云点云重建参数\n    interface PointCloudReconstructorModel {\n        // 颜色容差\n        colorTolerance: number;\n        // 距离阈值\n        distanceThreshold: number;\n        // 最小簇大小\n        minClusterSize: number;\n        // 点云抽稀\n        downsampleResolution: number;\n    }\n}"
  },
  {
    "path": "packages/editor/types/scene.d.ts",
    "content": "declare interface ISceneInfo {\n    id: string;\n    sceneType: string;\n    sceneName: string;\n    sceneIntroduction: string;\n    sceneVersion: number;\n    projectType: number;\n    coverPicture: string;\n    hasDrawing: boolean;\n    zip: string,\n    zipSize: string,\n    cesiumConfig?: {\n        token: \"\",\n        mapType: 'satellite' | 'vector',\n        map: \"Amap\" | \"Tianditu\",\n        // 是否需要标记图\n        markMap: boolean,\n        // 底图是天地图时的天地图密匙\n        tiandituTk: string\n    };\n}\n\ndeclare interface ISceneScript {\n    \"name\": string,\n    \"source\": string\n}\n\ndeclare interface ISceneJson {\n    metadata: {},\n    camera: {\n        \"metadata\": {\n            \"version\": number,\n            \"type\": \"Object\",\n            \"generator\": \"Object3D.toJSON\"\n        },\n        \"object\": {\n            \"uuid\": string,\n            \"type\": \"PerspectiveCamera\",\n            \"name\": string,\n            \"layers\": number,\n            \"matrix\": number[],\n            \"up\": [0 | 1, 0 | 1, 0 | 1],\n            \"fov\": number,\n            \"zoom\": number,\n            \"near\": number,\n            \"far\": number,\n            \"focus\": number,\n            \"aspect\": number,\n            \"filmGauge\": number,\n            \"filmOffset\": number\n        }\n    },\n    scene: {\n        \"uuid\": string,\n        \"metadata\": {\n            \"version\": number,\n            \"type\": \"Object\",\n            \"generator\": \"Object3D.toJSON\"\n        },\n        \"textures\": Array<any>,\n        \"images\": string[],\n        \"object\": {\n            \"uuid\": string,\n            \"type\": \"Scene\",\n            \"name\": string,\n            \"layers\": number,\n            \"matrix\": number[],\n            \"up\": [0 | 1, 0 | 1, 0 | 1],\n            \"background\": string,\n            \"environment\": string,\n            \"backgroundRotation\": [number, number, number, string],\n            \"environmentRotation\": [number, number, number, string],\n            \"children\": Array<string>\n        },\n        \"geometries\"?: Array<any>\n    },\n    scripts: {\n        [uuid: string]: ISceneScript[]\n    },\n    controls: {\n        state: string\n    },\n    totalZipNumber: number,\n    sceneInfo: ISceneInfo,\n}\n\ndeclare interface ISceneFetchData extends ISceneInfo {\n    exampleSceneId?: string, // 所使用的示例场景id\n    createTime?: string,\n    updateTime?: string,\n}"
  },
  {
    "path": "packages/editor/types/script.d.ts",
    "content": "declare namespace IScript {\n    interface IStruct {\n        name: string;\n        source: string;\n    }\n}"
  },
  {
    "path": "packages/editor/types/three.d.ts",
    "content": "/**\n * 扩展three.js类型声明\n */\nimport * as THREE from 'three';\n\ndeclare module 'three' {\n    interface Object3D extends THREE.Object3D{\n        /* 强制解决three本身类型声明产生的各种问题 */\n        [key:string]:any;\n    }\n}\n"
  },
  {
    "path": "packages/editor/types/window.d.ts",
    "content": "declare interface Window {\n\t$t:(s: string)=>string;\n\t$cpt:(s: string)=>ComputedRef<string>;\n    $loadingBar?: import(\"naive-ui\").LoadingBarProviderInst;\n\t$dialog: import('naive-ui').DialogProviderInst;\n\t$modal: import('naive-ui').ModalProviderInst;\n\t$message?: import('naive-ui').MessageProviderInst;\n\t$notification: import('naive-ui').NotificationProviderInst;\n\tviewer: import('@astral3d/engine').Viewer;\n\tDrawViewer: any;\n\tVRButton: any;\n    log: import('loglevel').RootLogger;\n    // wasm\n    glTFHandlerEncodeGLB: (u: Uint8Array, jsonStr: string) => Uint8Array\n    glTFHandlerEncodePNG: (png: Uint8Array) => Uint8Array\n}\n\ndeclare interface Number{\n\tformat:()=>string\n}\n\ndeclare namespace Common {\n    /**\n     * 策略模式\n     * [状态, 为true时执行的回调函数]\n     */\n    type StrategyAction = [boolean, () => void];\n}\n"
  },
  {
    "path": "packages/editor/uno.config.ts",
    "content": "import { defineConfig, presetAttributify, presetUno, presetIcons } from 'unocss'\n\nexport default defineConfig({\n    presets: [\n        presetUno(),\n        presetAttributify(),\n        presetIcons()\n    ],\n    rules: [\n        ['no-wrap', { 'white-space': 'nowrap' }],\n        [/^h-calc-\\[?(.*?)\\]?$/, ([, size]) => ({ height: `calc(100% - ${size})` })],\n        [/^max-h-calc-\\[?(.*?)\\]?$/, ([, size]) => ({ 'max-height': `calc(100% - ${size})` })],\n        [/^w-calc-\\[?(.*?)\\]?$/, ([, size]) => ({ width: `calc(100% - ${size})` })],\n    ],\n    shortcuts: [\n        {\n            'flex-center': 'flex items-center justify-center',\n        },\n    ]\n})"
  },
  {
    "path": "packages/editor/vite.config.ts",
    "content": "import {defineConfig, loadEnv} from 'vite';\nimport path from 'path';\nimport dotenv from \"dotenv\";\nimport vue from '@vitejs/plugin-vue';\nimport Unocss from 'unocss/vite';\nimport mkcert from 'vite-plugin-mkcert';\nimport { viteStaticCopy } from 'vite-plugin-static-copy';\n// 自动按需引入Naive UI组件\nimport Components from 'unplugin-vue-components/vite';\nimport { NaiveUiResolver } from 'unplugin-vue-components/resolvers';\nimport {wrapperEnv, createPlugins} from \"@astral3d/build-vite-plugins\";\n\nexport default defineConfig(async ({mode, command}) => {\n    const root = process.cwd();\n    const env = loadEnv(mode, root);\n    //LoadEnv读取的布尔类型是一个字符串。此函数可以转换为布尔类型\n    const viteEnv = wrapperEnv(env);\n    const {\n        VITE_PORT,\n        VITE_PUBLIC_PATH,\n        VITE_BUILD_COMPRESS,\n        VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,\n        VITE_ENABLE_ANALYZE,\n        VITE_ENABLE_CONFIG_GENERATE\n    } = viteEnv;\n\n    const isBuild = command === 'build';\n    const plugins = await createPlugins({\n        isBuild,\n        root,\n        compress: {\n            compress: VITE_BUILD_COMPRESS,\n            deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,\n        },\n        enableAnalyze: VITE_ENABLE_ANALYZE,\n        enableConfig:VITE_ENABLE_CONFIG_GENERATE\n    });\n\n    // 为@monaco-editor定义define\n    const define:any = {\n        \"process.env\": process.env\n    };\n    if (mode === \"development\") {\n        dotenv.config({ path: \".env.development\" });\n        define.global = {};\n    } else if (mode === \"production\") {\n        dotenv.config({ path: \".env.production\" });\n    }\n\n    return {\n        define: define,\n        base: VITE_PUBLIC_PATH,\n        build: {\n            outDir: \"dist\",\n            terserOptions: {\n                compress: {\n                    // 生产环境移除console\n                    drop_console: false,\n                },\n            },\n            sourcemap: false,\n            // 启用 CSS 代码拆分\n            cssCodeSplit: true,\n            // 禁用 gzip 压缩大小报告。压缩大型输出文件可能会很慢，因此禁用该功能可能会提高大型项目的构建性能。\n            reportCompressedSize: false,\n            // 规定触发警告的 chunk 大小。（以 kbs 为单位）\n            chunkSizeWarningLimit: 1024 * 6,\n            // 自定义底层的 Rollup 打包配置\n            rollupOptions: {\n                output: {\n                    manualChunks: {\n                        vue: ['vue', 'vue-router', 'pinia'],\n                        i18n: ['vue-i18n'],\n                        ui: ['naive-ui'],\n                        astral3d: ['@astral3d/engine']\n                    },\n                }\n            }\n        },\n        root,\n        plugins:[\n            vue(),\n            Unocss(),\n            Components({\n                resolvers: [NaiveUiResolver()]\n            }),\n            // 本地开发https证书\n            mkcert(),\n            viteStaticCopy({\n                targets: [\n                    { src: 'node_modules/@astral3d/engine/dist/libs/*', dest: 'assets/libs' }\n                ],\n            }),\n            ...plugins\n        ],\n        resolve: {\n            alias: {\n                '~': path.resolve(__dirname, './types'),\n                '@': path.resolve(__dirname, './src'),\n            },\n            extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']\n        },\n        optimizeDeps: {\n            exclude: ['keyframe-resample','draco3dgltf'],\n        },\n        server: {\n            host: true,\n            port: VITE_PORT,\n            //设置 server.hmr.overlay 为 false 可以禁用开发服务器错误的屏蔽\n            // hmr: { overlay: false },\n            headers: {\n                'Cross-Origin-Embedder-Policy': 'require-corp',\n                'Cross-Origin-Opener-Policy': 'same-origin',\n            },\n            cors: {\n                origin: \"*\",\n                credentials: true\n            },\n            proxy: {\n                '^/api': {\n                    target: env.VITE_PROXY_URL,\n                    changeOrigin: true,\n                    rewrite: (path) => path.replace(new RegExp(`^/api`), '/api')\n                },\n                \"^/file/static\": {\n                    target: env.VITE_PROXY_URL,\n                    changeOrigin: true,\n                    rewrite: (path) => path.replace(new RegExp(`^/file/static`), '/api/common/static')\n                },\n            }\n        }\n    }\n})\n"
  },
  {
    "path": "packages/sdk/.gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n"
  },
  {
    "path": "packages/sdk/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/vite.svg\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title>Vite App</title>\n  </head>\n  <body>\n    <div id=\"app\"></div>\n    <script type=\"module\" src=\"/src/main.ts\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "packages/sdk/lib/constant/enum.ts",
    "content": "/**\n * 位置\n */\nexport const POSITION = {\n    BOTTOM_LEFT: \"bottom-left\",\n    BOTTOM: \"bottom\",\n    BOTTOM_CENTER: \"bottom\",\n    BOTTOM_RIGHT: \"bottom-right\",\n    TOP_LEFT: \"top-left\",\n    TOP: \"top\",\n    TOP_CENTER: \"top\",\n    TOP_RIGHT: \"top-right\",\n    LEFT: \"left\",\n    RIGHT: \"right\",\n    CENTER: \"center\"\n}\n\n/**\n * FPS\n */\nexport const FPS_OPTIONS = {\n    // 不设限\n    NO_UPPER_LIMIT:0,\n    // 低帧率\n    LOW: 24,\n    // 中帧率\n    MEDIUM: 30,\n    // 高帧率\n    HIGH:60,\n    // 超高帧率\n    ULTRA_HIGH: 120,\n}\n\n/**\n * 可选漫游角色\n */\nexport const ROAMING_CHARACTERS = {\n    JACKIE: \"Jackie\",\n    WORK_MAN: \"Workman\",\n    X_BOT: \"X_Bot\",\n    Y_BOT: \"Y_Bot\",\n}"
  },
  {
    "path": "packages/sdk/lib/constant/index.ts",
    "content": "export * from './type';\nexport * from './enum';"
  },
  {
    "path": "packages/sdk/lib/constant/type.ts",
    "content": "import * as THREE from 'three';\n\nexport const TYPED_ARRAYS = {\n    Int8Array: Int8Array,\n    Uint8Array: Uint8Array,\n    Uint8ClampedArray: Uint8ClampedArray,\n    Int16Array: Int16Array,\n    Uint16Array: Uint16Array,\n    Int32Array: Int32Array,\n    Uint32Array: Uint32Array,\n    Float32Array: Float32Array,\n    Float64Array: Float64Array\n};\n\n// base64对应的类型\nexport const BASE64_TYPES = {\n    \"data:image/png;base64\": \"png\",\n    \"data:image/jpeg;base64\": \"jpg\",\n    \"data:image/gif;base64\": \"gif\",\n    \"data:image/x-icon;base64\": \"ico\",\n    \"data:image/svg+xml;base64\": \"svg\",\n    \"data:image/webp;base64\": \"webp\",\n    \"data:audio/wav;base64\": \"wav\",\n    \"data:audio/mpeg;base64\": \"mp3\",\n    \"data:video/mp4;base64\": \"mp4\",\n    \"data:video/webm;base64\": \"webm\",\n    \"data:font/woff;base64\": \"woff\",\n    \"data:font/woff2;base64\": \"woff2\",\n    \"data:application/vnd.ms-fontobject;base64\": \"eot\",\n    \"data:application/x-font-ttf;base64\": \"ttf\",\n    \"data:application/octet-stream;base64\": \"ttf\",\n    \"data:application/font-woff;base64\": \"woff\",\n    \"data:application/font-woff2;base64\": \"woff2\"\n}\n\nexport const TEXTURE_MAPPING = {\n    UVMapping: THREE.UVMapping,\n    CubeReflectionMapping: THREE.CubeReflectionMapping,\n    CubeRefractionMapping: THREE.CubeRefractionMapping,\n    EquirectangularReflectionMapping: THREE.EquirectangularReflectionMapping,\n    EquirectangularRefractionMapping: THREE.EquirectangularRefractionMapping,\n    CubeUVReflectionMapping: THREE.CubeUVReflectionMapping\n};\n\nexport const TEXTURE_WRAPPING = {\n    RepeatWrapping: THREE.RepeatWrapping,\n    ClampToEdgeWrapping: THREE.ClampToEdgeWrapping,\n    MirroredRepeatWrapping: THREE.MirroredRepeatWrapping\n};\n\nexport const TEXTURE_FILTER = {\n    NearestFilter: THREE.NearestFilter,\n    NearestMipmapNearestFilter: THREE.NearestMipmapNearestFilter,\n    NearestMipmapLinearFilter: THREE.NearestMipmapLinearFilter,\n    LinearFilter: THREE.LinearFilter,\n    LinearMipmapNearestFilter: THREE.LinearMipmapNearestFilter,\n    LinearMipmapLinearFilter: THREE.LinearMipmapLinearFilter\n};"
  },
  {
    "path": "packages/sdk/lib/core/animation/AnimationManager.ts",
    "content": "import * as THREE from 'three';\nimport { useDispatchSignal } from '@/hooks';\nimport { escapeRegExp } from \"@/utils\";\nimport App from \"@/core/app/App\";\n\nlet prevActionsInUse = 0, needsUpdate = false;\nexport class AnimationManager {\n    // 场景中的动画混合器集合\n    public mixerMap: Map<string, THREE.AnimationMixer> = new Map();\n    // 场景中的动画action集合\n    public actionMap: Map<string, THREE.AnimationAction> = new Map();\n\n    constructor() {}\n\n    /**\n     * 检查动画剪辑上是否已存在当前object的相应轨道,存在则返回该轨道\n     * @param clip 动画剪辑\n     * @param prop 需要检查的属性名称\n     * @param object 需要检查的对象\n     */\n    hasExistingTrack(clip: THREE.AnimationClip, prop: string, object: THREE.Object3D | null = null) {\n        if (!object) {\n            object = App.selected;\n            if (!object) return false;\n        }\n\n        const possiblePatterns = [\n            // 基础属性匹配\n            `${escapeRegExp(object.name)}\\\\.${prop}(\\$$.*\\$$)?$`,\n            `${escapeRegExp(object.uuid)}\\\\.${prop}(\\$$.*\\$$)?$`,\n\n            // 层级结构匹配\n            `([^/]+/)*${escapeRegExp(object.name)}\\\\.${prop}(\\$$.*\\$$)?$`,\n\n            // 材质属性匹配\n            `${escapeRegExp(object.name)}\\\\.material\\\\.${prop}(\\$$.*\\$$)?$`,\n            `${escapeRegExp(object.uuid)}\\\\.material\\\\.${prop}(\\$$.*\\$$)?$`,\n\n            // 骨骼动画匹配\n            `\\\\.bone\\$$${escapeRegExp(object.name)}[^\\$$]*\\\\]\\\\.${prop}$`,\n\n            // 带命名空间的场景对象匹配\n            `scene:[^:]+:${escapeRegExp(object.name)}\\\\.${prop}$`\n        ];\n\n        const fullPattern = new RegExp(\n            `^(?:${possiblePatterns.join('|')})`,\n            'i'\n        );\n\n        return clip.tracks.find(track => fullPattern.test(track.name));\n    }\n\n    /**\n     * 创建空动画对象\n     * @param name 动画对象名称\n     * @param object 绑定动画的对象\n     */\n    createEmptyAnimation(name: string, object: THREE.Object3D | null = null) {\n        if (!object) {\n            object = App.selected;\n\n            if (!object) return;\n        }\n\n        let mixer = this.mixerMap.get(object.uuid);\n        if (!mixer) {\n            mixer = new THREE.AnimationMixer(object);\n            this.mixerMap.set(object.uuid, mixer);\n        }\n\n        const clip = new THREE.AnimationClip(name, 0, []);\n        const clipAction = mixer.clipAction(clip);\n        // @ts-ignore\n        object.animations.push(clipAction);\n        this.actionMap.set(clip.uuid, clipAction);\n\n        return clipAction;\n    }\n\n    /**\n     * 重新剪辑action\n     * @param action 动画action\n     * @param currentTime 动画停住的时间点\n     * @returns action 重剪辑后的action\n     */\n    reClipAction(action: THREE.AnimationAction, currentTime = 0) {\n        const currentClip = action.getClip();\n        const currentObject = action.getRoot();\n        const currentMixer = action.getMixer();\n        // 重剪辑前动画是否是激活的\n        const isScheduled = action.isScheduled();\n\n        const actionIndex = currentObject.animations.findIndex((a: THREE.AnimationAction | THREE.AnimationClip) => (a === action || a === currentClip));\n        const property = {\n            time: currentTime || action.time,\n            timeScale: action.timeScale,\n            clampWhenFinished: action.clampWhenFinished,\n            loop: action.loop,\n            weight: action.weight,\n            enabled: action.enabled,\n            paused: action.paused,\n            repetitions: action.repetitions,\n            zeroSlopeAtEnd: action.zeroSlopeAtEnd,\n            zeroSlopeAtStart: action.zeroSlopeAtStart,\n        };\n        action.stop();\n        currentMixer.uncacheClip(currentClip);\n\n        const newAction = currentMixer.clipAction(currentClip, currentObject);\n        // 同步属性\n        Object.assign(newAction, property);\n\n        // @ts-ignore\n        currentObject.animations.splice(actionIndex, 1, newAction);\n        action = newAction;\n\n        this.actionMap.set(currentClip.uuid, newAction);\n\n        // 如果动作没激活过则激活一次\n        if (isScheduled && !action.isScheduled()) {\n            action.play();\n            action.paused = true;\n        }\n\n        return action;\n    }\n\n    update(delta: number) {\n        needsUpdate = false;\n\n        this.mixerMap.forEach(mixer => {\n            // @ts-ignore\n            const actions = mixer.stats.actions;\n            if (actions.inUse > 0) {\n                prevActionsInUse = actions.inUse;\n\n                mixer.update(delta);\n\n                useDispatchSignal(\"animationMixerUpdate\", mixer, delta)\n\n                needsUpdate = true;\n            }\n        })\n\n        if (!needsUpdate && prevActionsInUse > 0) {\n            prevActionsInUse = 0;\n            needsUpdate = true;\n        }\n\n        return needsUpdate;\n    }\n}\n\n/**\n * 关键帧轨道创建工厂函数\n * @param name 轨道名称\n * @param times 关键帧时间点数组\n * @param values 关键帧值数组\n * @param interpolation 插值类型\n */\nexport const KeyframeTrackFactory = (name: string, times: number[], values: any[], interpolation: THREE.InterpolationModes = THREE.InterpolateLinear) => {\n    // 按 '.' 分割，取最后一段（如 'nodeName.property[accessor]'）\n    const lastSegment = name.split('.').pop();\n    // 再按 '[' 分割，取第一部分（如 'property'）\n    const attr = lastSegment?.split('[')[0];\n\n    if (!attr) {\n        return new THREE.KeyframeTrack(name, times, values, interpolation);\n    }\n\n    switch (attr) {\n        case 'position':\n        case 'rotation':\n        case 'scale':\n            return new THREE.VectorKeyframeTrack(name, times, values, interpolation);\n        case 'quaternion':\n            return new THREE.QuaternionKeyframeTrack(name, times, values, interpolation);\n        case 'visible':\n        // 启用 alpha 覆盖\n        case 'alphaToCoverage':\n        // 是否渲染材质的颜色\n        case 'colorWrite':\n        // 是否在渲染此材质时启用深度测试\n        case 'depthTest':\n        // 渲染此材质是否对深度缓冲区有任何影响\n        case 'depthWrite':\n        // 定义这个材质是否会被渲染器的toneMapping设置所影响\n        case 'toneMapped':\n        // 定义此材质是否透明\n        case 'transparent':\n        // 是否使用顶点着色\n        case 'vertexColors':\n        // 大小衰减\n        case 'sizeAttenuation':\n        // 平面着色\n        case 'flatShading':\n        // 线框模式\n        case 'wireframe':\n            return new THREE.BooleanKeyframeTrack(name, times, values);\n        case 'color':\n        // 高光\n        case 'specular':\n        // 自发光\n        case 'emissive':\n        // 光泽颜色\n        case 'sheenColor':\n        // 衰减色\n        case 'attenuationColor':\n        // 表示恒定混合颜色的 RGB 值\n        case 'blendColor':\n        // TODO: 待补充说明\n        case 'groundcolor':\n            return new THREE.ColorKeyframeTrack(name, times, values, interpolation);\n        // 在0.0 - 1.0的范围内的浮点数，表明材质的透明度。值0.0表示完全透明，1.0表示完全不透明\n        case 'opacity':\n        // 表示光源的强度\n        case 'intensity':\n        // 表示恒定混合颜色的 alpha 值\n        case 'blendAlpha':\n        // 设置运行alphaTest时要使用的alpha值\n        case 'alphaTest':\n        // 定义将要渲染哪一面 - 正面，背面或两者\n        case 'side':\n        // 摄像机视锥体垂直视野角度，从视图的底部到顶部，以角度来表示\n        case 'fov':\n        // 用于立体视觉和景深效果的物体的距离\n        case 'focus':\n        // 摄像机的远端面\n        case 'far':\n        // 摄像机的近端面\n        case 'near':\n        // 摄像机视锥体的长宽比\n        case 'aspect':\n        // 获取或者设置摄像机的缩放倍数\n        case 'zoom':\n        // TODO: 待补充说明\n        case 'distance':\n        // 渲染顺序\n        case 'renderOrder':\n        // 高光大小\n        case 'shininess':\n        // 反射率\n        case 'reflectivity':\n        // 粗糙度\n        case 'roughness':\n        // 金属度\n        case 'metalness':\n        // 清漆\n        case 'clearcoat':\n        // 清漆粗糙度\n        case 'clearcoatRoughness':\n        // 彩虹色\n        case 'iridescence':\n        // 彩虹色折射率\n        case 'iridescenceIOR':\n        // 光泽\n        case 'sheen':\n        // 光泽粗糙度\n        case 'sheenRoughness':\n        // 透光度\n        case 'transmission':\n        // 衰减距离\n        case 'attenuationDistance':\n        // 厚度\n        case 'thickness':\n        // 大小\n        case 'size':\n            return new THREE.NumberKeyframeTrack(name, times, values, interpolation);\n        // 此处仅为占位说明还有 StringKeyframeTrack\n        // case \"uuid\":\n        //     return new THREE.StringKeyframeTrack(name, times, values);\n        default:\n            return new THREE.KeyframeTrack(name, times, values, interpolation);\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/animation/TimelineTrack.ts",
    "content": "import * as THREE from \"three\";\nimport {\n    Timeline,\n    TimelineRow,\n    TimelineModel,\n    TimelineOptions,\n    TimelineKeyframe,\n    TimelineInteractionMode,\n    TimelineKeyframeChangedEvent, TimelineClickEvent\n} from \"@/core/libs/astral-timeline/animation-timeline\";\nimport {useAddSignal, useDispatchSignal} from \"@/hooks\";\nimport { getParentPath,debounce, deepAssign, getNestedProperty } from \"@/utils\";\nimport { KeyframeTrackFactory } from \"@/core/animation/AnimationManager\";\nimport App from \"@/core/app/App\";\n\nexport interface ITimelineKeyframe extends TimelineKeyframe {\n    data: number[] | boolean[]\n}\n\nexport interface ITimelineRow extends TimelineRow {\n    id: string;\n    name: string;\n    keyframes?: ITimelineKeyframe[];\n    track?: THREE.KeyframeTrack;\n}\n\nexport interface ITimelineModel extends TimelineModel {\n    rows: ITimelineRow[]\n}\n\n// 定义事件类型\ntype CustomEvents = {\n    'contextmenu': { args: TimelineClickEvent };\n    'mousedown': { args: TimelineClickEvent };\n};\n\nlet _aniamtionMixerUpdateFn;\nclass TimelineTrack extends THREE.EventDispatcher<CustomEvents> {\n    container: HTMLDivElement;\n    outlineContainer: HTMLDivElement;\n\n    timeline: Timeline;\n    model: ITimelineModel;\n    options: TimelineOptions;\n\n    /**\n     * 动画编辑轨道当前正在处理的（绑定的）动画\n     */\n    bindAction: THREE.AnimationAction | null = null;\n\n    private resizeObserver: ResizeObserver;\n\n    constructor(container: HTMLDivElement, outlineContainer: HTMLDivElement, _options: TimelineOptions) {\n        super();\n\n        this.container = container;\n        this.outlineContainer = outlineContainer;\n\n        this.model = {rows: []} as ITimelineModel;\n        this.options = {\n            id: container,\n            headerHeight: 40,\n            font: \"0.7rem sans-serif\",\n            leftMargin: 22,\n            headerFillColor: \"#00000066\",\n            fillColor: \"#333333\",\n            labelsColor: \"#FFFFFFCC\",\n            tickColor: \"#FFFFFF4C\",\n            // 选中矩形颜色\n            selectionColor: \"blue\",\n            zoom: 120,\n            zoomMin: 30,\n            zoomMax: 120,\n            // 一步的长度，默认一步一个像素代表1000ms\n            stepVal: 1000,\n            rowsStyle: {\n                height: 40,\n                fillColor: \"#252526\",\n                marginBottom: 2,\n                // 关键帧样式\n                keyframesStyle: {\n                    fillColor: \"#9A9A9A\"\n                },\n                // 组的样式。关键帧组也可以单独设置样式。\n                groupsStyle: {\n                    text: {\n                        label: \"\",\n                        isStroke: false,\n                        font: \"1.5rem sans-serif\",\n                        textAlign: \"center\",\n                        textBaseline: \"top\",\n                        direction: \"inherit\",\n                        fillColor: \"#fff\"\n                    }\n                }\n            },\n            // 时间轴指示器样式(竖线)\n            timelineStyle: {\n                marginTop: 0,\n                fillColor: \"#00ff00\",\n                strokeColor: \"#00ff00\",\n                cursor: \"e-resize\",\n                // 顶帽样式\n                capStyle: {\n                    width: 8,\n                    height: 12,\n                    fillColor: \"#00ff00\",\n                    capType: \"rect\"\n                }\n            },\n            // 关键帧组可拖动\n            groupsDraggable: true,\n            // 关键帧可拖动\n            keyframesDraggable: true,\n            // 用于确定要呈现的仪表“漂亮”数字的分母数组。\n            denominators: [1, 6]\n        } as TimelineOptions;\n        deepAssign(this.options, _options);\n\n        this.timeline = this.init();\n\n        this.updateTrackLength();\n\n        this.initEvent();\n\n        this.resizeObserver = new ResizeObserver(this.resize.bind(this));\n        this.resizeObserver.observe(container);\n    }\n\n    // 当前所有关键帧中的最大值,单位为ms\n    get _maxDuration() {\n        let max = 0;\n        this.model.rows.forEach((row) => {\n            if (!row.keyframes) return;\n\n            row.keyframes.forEach((kf) => {\n                if (kf.val > max) {\n                    max = kf.val;\n                }\n            });\n        });\n\n        return max;\n    }\n\n    init() {\n        // const dpr = window.devicePixelRatio || 1;\n        // this.container.style.width = this.container.width / scale + 'px';\n        // this.container.style.height = this.container.height / scale + 'px';\n        const tl = new Timeline(this.options, this.model);\n        // 可横向拖动\n        tl.setInteractionMode(TimelineInteractionMode.Pan);\n        //重写方法来更改显示的单位文本,显示为 00:00\n        tl._formatUnitsText = (val) => {\n            const v = Math.floor(val / 1000);\n            const minutes = Math.floor(v / 60);\n            const seconds = v - minutes * 60;\n            return `${minutes.toString().padStart(2, \"0\")}:${seconds.toString().padStart(2, \"0\")}`;\n        };\n\n        if (window.devicePixelRatio !== 1) {\n            tl._pixelRatio = window.devicePixelRatio;\n            const scale = 1 / tl._pixelRatio;\n            const translate = (1 - scale) * 100 / 2 * window.devicePixelRatio;\n            if (tl._canvas) {\n                tl._canvas.style.transform = `scale(${scale}) translate(-${translate}%, -${translate}%)`;\n            }\n        }\n\n        return tl;\n    }\n\n    initEvent() {\n        this.timeline.onScroll((args) => {\n            //滚动同步\n            if (this.outlineContainer) {\n                this.outlineContainer.style.minHeight = args.scrollHeight + \"px\";\n\n                if (this.outlineContainer.parentElement) {\n                    this.outlineContainer.parentElement.scrollTop = args.scrollTop;\n                }\n            }\n        });\n\n        // this.timeline.onScrollFinished((args) => {});\n\n        // 关键帧被改变时触发（防抖）\n        const _keyframeChanged = debounce(this.onKeyframeChanged.bind(this), 100);\n        this.timeline.onKeyframeChanged(_keyframeChanged);\n\n        // this.timeline.onSelected((args) => {});\n\n        this.timeline.onContextMenu(async (args) => {\n            // 禁用默认右键菜单\n            (args.args as MouseEvent).preventDefault();\n\n            if (args.elements.length === 0) return;\n\n            this.dispatchEvent({type: \"contextmenu\", args: args});\n        });\n\n        this.timeline.onMouseDown((args) => {\n            const e = args.args as MouseEvent;\n            e.stopPropagation();\n\n            if (e.button === 2) return;\n\n            this.dispatchEvent({type: \"mousedown\", args: args});\n        });\n\n        this.timeline.onTimeChanged((args) => {\n            useDispatchSignal(\"timelineTimeChanged\", args);\n\n            if (!this.bindAction) return;\n\n            this.bindAction.enabled = true;\n            const _second = args.val / 1000;\n            const duration = this.bindAction.getClip().duration;\n            if (_second > duration) {\n                this.bindAction.time = duration;\n            } else {\n                this.bindAction.time = _second;\n            }\n\n            // 如果动作没激活过则激活一次\n            if (!this.bindAction.isScheduled()) {\n                this.bindAction.play();\n                this.bindAction.paused = true;\n            }\n\n            this.bindAction.getMixer().update(0.016);\n            // this.bindAction.getRoot() 获取到的对象可能是editor.locked对象，需要获取正在操作的对象\n\n            if (App.selected){\n                useDispatchSignal(\"objectChanged\", App.selected);\n                useDispatchSignal(\"materialChanged\", App.selected.material);\n            }\n        });\n\n        // this.timeline.onDrag((args) => {});\n\n        _aniamtionMixerUpdateFn = this.handleMixerUpdate.bind(this);\n        useAddSignal(\"animationMixerUpdate\", _aniamtionMixerUpdateFn)\n    }\n\n    /**\n     * 改变时间轴长度,可视区域默认一分钟\n     */\n    updateTrackLength() {\n        this.options.stepVal = 60 * 1000 / (this.timeline._canvasClientWidth() - (this.options.leftMargin || 30));\n\n        this.timeline.setOptions(this.options);\n    }\n\n    /**\n     * 设置轨道行，this.model.rows 永远都只通过此方法变更\n     */\n    setRows(rows: Array<ITimelineRow>) {\n        const newRows: Array<ITimelineRow> = [];\n        rows.forEach((row) => {\n            newRows.push(row);\n        });\n\n        this.model.rows = newRows;\n        this.timeline.setModel(this.model);\n    }\n\n    /**\n     * 设置节点是否可见\n     * @param keys 节点id数组\n     * @param visible 是否可见\n     */\n    setRowIsVisible(keys: string[], visible: boolean) {\n        this.model.rows.forEach(row => {\n            if (keys.includes(row.id)) {\n                row.hidden = !visible;\n            }\n        })\n\n        this.timeline.redraw();\n    }\n\n    /**\n     * 动画混合器更新渲染\n     * @param mixer d\n     * @param delta\n     */\n    handleMixerUpdate(mixer: THREE.AnimationMixer, delta: number) {\n        if (!this.bindAction || !mixer || !delta) return;\n\n        if (!this.bindAction.isRunning()) return;\n\n        if (this.bindAction.getMixer() !== mixer) return;\n\n        const fromPx = this.timeline.scrollLeft;\n        const toPx = this.timeline.scrollLeft + this.timeline.getClientWidth();\n\n        const positionInPixels =\n            this.timeline.valToPx(this.timeline.getTime()) + this.timeline._leftMargin();\n        // 如果时间轴超出界限，则滚动至时间轴位置：\n        if (positionInPixels <= fromPx || positionInPixels >= toPx) {\n            this.timeline.scrollLeft = positionInPixels;\n        }\n\n        this.timeline.setTime(this.bindAction.time * 1000);\n    }\n\n    /**\n     * 删除轨道行\n     * @param row 轨道行\n     */\n    deleteRow(row: ITimelineRow) {\n        const track = row.track;\n        if (!this.bindAction || !track) return;\n\n        const clip = this.bindAction.getClip();\n        clip.tracks.splice(clip.tracks.indexOf(track), 1);\n        // 更新剪辑时间\n        clip.resetDuration();\n        // 重新剪辑action\n        this.bindAction = App.animationManager.reClipAction(this.bindAction,this.timeline.getTime() / 1000) as THREE.AnimationAction;\n\n        this.model.rows.splice(this.model.rows.indexOf(row), 1);\n\n        // 刷新\n        this.timeline.redraw();\n        this.bindAction.getMixer().update(0.016);\n        useDispatchSignal(\"sceneGraphChanged\");\n\n        useDispatchSignal(\"timelineRowChanged\", row, \"remove\");\n    }\n\n    /**\n     * 添加关键帧\n     * @param attr 动画属性名 ('position' | 'rotation' | 'quaternion' |'scale')\n     */\n    addKeyframe(attr: string) {\n        if (!this.bindAction || !App.selected) return;\n\n        // 当前时间轴时间（秒）\n        const currentTime = this.timeline.getTime() / 1000;\n        const currentClip = this.bindAction.getClip();\n        // this.bindAction.getRoot() 获取到的对象可能是editor.locked对象，需要获取正在操作的对象\n        let val = getNestedProperty(App.selected,attr);\n\n        const insertValue = (valueTrack: number[] | boolean[], index: number, delLength: number = 0) => {\n            let keyData: any[];\n\n            switch (attr) {\n                case \"position\":\n                case \"rotation\":\n                case \"scale\":\n                    keyData = [val.x, val.y, val.z];\n                    valueTrack.splice(index, delLength, ...keyData);\n                    break;\n                case \"quaternion\":\n                    keyData = [val.x, val.y, val.z, val.w];\n                    valueTrack.splice(index, delLength, ...keyData);\n                    break;\n                case \"visible\":\n                case \"fov\":\n                case \"near\":\n                case \"far\":\n                case \"intensity\":\n                case \"distance\":\n                case \"renderOrder\":\n                case \"material.shininess\":\n                case \"material.reflectivity\":\n                case \"material.roughness\":\n                case \"material.metalness\":\n                case \"material.clearcoat\":\n                case \"material.clearcoatRoughness\":\n                case \"material.iridescence\":\n                case \"material.iridescenceIOR\":\n                case \"material.sheen\":\n                case \"material.sheenRoughness\":\n                case \"material.transmission\":\n                case \"material.attenuationDistance\":\n                case \"material.thickness\":\n                case \"material.size\":\n                case \"material.opacity\":\n                case \"material.alphaTest\":\n                // boolean\n                case \"material.vertexColors\":\n                case \"material.sizeAttenuation\":\n                case \"material.flatShading\":\n                case \"material.transparent\":\n                case \"material.depthTest\":\n                case \"material.depthWrite\":\n                case \"material.wireframe\":\n                    keyData = [val];\n                    valueTrack.splice(index, delLength, ...keyData);\n                    break;\n                case \"color\":\n                case \"groundcolor\":\n                case \"material.color\":\n                case \"material.specular\":\n                case \"material.emissive\":\n                case \"material.sheenColor\":\n                case \"material.attenuationColor\":\n                    if(!(val instanceof THREE.Color)){\n                        val = new THREE.Color(val);\n                    }\n\n                    keyData = [val.r, val.g, val.b];\n                    valueTrack.splice(index, delLength, ...keyData);\n                    break;\n                default:\n                    keyData = [val];\n                    valueTrack.splice(index, delLength, ...keyData);\n                    break;\n            }\n\n            return keyData;\n        }\n\n        // 获取当前添加关键帧的模型的属性轨道\n        let track = App.animationManager.hasExistingTrack(currentClip, attr) as THREE.KeyframeTrack;\n        // 如果不存在当前属性轨道，则新增轨道\n        if (!track) {\n            // 先获取锁定对象到选中对象路径\n            let path = App.selected?.name;\n            if (App.locked && App.selected && App.locked !== App.selected) {\n                path = getParentPath(App.locked, App.selected);\n            }\n\n            let _times = [currentTime], _values: any[] = [];\n            const keyData = insertValue(_values, 0);\n            const _row: ITimelineRow = {\n                id: `${path}.${attr}`,\n                name: `${path}.${attr}`,\n                keyframes: [\n                    {\n                        val: this.timeline.getTime(),\n                        data: keyData,\n                        selected: true\n                    }\n                ]\n            }\n\n            // 如果新建轨道默认关键帧不在0位则补0\n            if (currentTime !== 0) {\n                _times.unshift(0);\n                _values.unshift(...keyData);\n                _row.keyframes?.unshift({\n                    val:0,\n                    data: keyData,\n                    selected: true\n                })\n            }\n\n            track = KeyframeTrackFactory(`${path}.${attr}`, _times, _values);\n            // 新增轨道\n            currentClip.tracks.push(track);\n\n            _row.track = track;\n            this.model.rows.push(_row)\n\n            useDispatchSignal(\"timelineRowChanged\", _row, \"add\");\n        } else {\n            const _times: number[] = Array.from(track.times);\n            const _values: number[] = Array.from(track.values);\n            const dataLength = Math.floor(_values.length / _times.length);\n\n            const row = this.model.rows.find(row => row.track === track) as ITimelineRow;\n\n            // 判断当前时间是否已存在关键帧\n            let index = _times.findIndex(time => time === currentTime);\n            let keyData;\n            if (index !== -1) {\n                // 更新当前时间的关键帧数据\n                keyData = insertValue(_values, index, dataLength);\n\n                // 动画轨道UI修改关键帧值\n                if (row && row.keyframes) {\n                    row.keyframes.splice(index, 1, {\n                        val: this.timeline.getTime(),\n                        data: keyData,\n                        selected: true\n                    });\n                }\n            } else {\n                // 获取关键帧数据插入位置\n                index = _times.length;\n                for (let i = 0; i < _times.length; i++) {\n                    if (_times[i] > currentTime) {\n                        index = i;\n                        break;\n                    }\n                }\n                // 插入关键帧时间\n                _times.splice(index, 0, currentTime);\n                // 插入关键帧数据\n                keyData = insertValue(_values, index * dataLength);\n\n                // 动画轨道UI添加关键帧\n                if (row && row.keyframes) {\n                    row.keyframes.splice(index, 0, {\n                        val: this.timeline.getTime(),\n                        data: keyData,\n                        selected: true\n                    });\n                }\n            }\n\n            // 创建新的关键帧轨道替换\n            const newTrack = KeyframeTrackFactory(track.name, _times, _values, track.getInterpolation());\n            currentClip.tracks.splice(currentClip.tracks.indexOf(track), 1, newTrack);\n\n            row.track = newTrack;\n        }\n\n        // 更新剪辑时间\n        currentClip.resetDuration();\n        // 重新剪辑action\n        this.bindAction = App.animationManager.reClipAction(this.bindAction,currentTime) as THREE.AnimationAction;\n\n        // 刷新\n        this.timeline.redraw();\n        this.bindAction.getMixer().update(0.016);\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    /**\n     * 关键帧被改变时触发（关键帧被拖动）\n     */\n    onKeyframeChanged(args:TimelineKeyframeChangedEvent) {\n        const row = args.target?.row as ITimelineRow;\n        const track = row.track;\n        if (!this.bindAction || !track || !row.keyframes?.length) return;\n\n        const clip = this.bindAction.getClip();\n\n        // 确保完整，直接重建轨道\n        const _times: number[] = [], _values: any = [];\n        row.keyframes.forEach((kf) => {\n            _times.push(kf.val / 1000);\n            _values.push(...kf.data);\n        })\n\n        // 创建新的关键帧轨道替换\n        const newTrack = KeyframeTrackFactory(track.name, _times, _values, track.getInterpolation());\n        clip.tracks.splice(clip.tracks.indexOf(track), 1, newTrack);\n\n        row.track = newTrack;\n\n        // 更新剪辑时间\n        clip.resetDuration();\n        // 重新剪辑action\n        this.bindAction = App.animationManager.reClipAction(this.bindAction,this.timeline.getTime() / 1000) as THREE.AnimationAction;\n\n        // 刷新\n        this.timeline.redraw();\n        this.bindAction.getMixer().update(0.016);\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    /**\n     * 删除选中的关键帧\n     */\n    deleteSelectedKeyframes() {\n        if (!this.bindAction) return;\n        const selectedRows = this.model.rows.filter(row => row.keyframes?.some(kf => kf.selected));\n\n        selectedRows.forEach(row => {\n            if(!row.keyframes) return;\n\n            // 先删除关键帧\n            row.keyframes = row.keyframes.filter(kf => !kf.selected);\n\n            // 如果关键帧为空，则删除轨道\n            if (row.keyframes.length === 0) {\n                this.deleteRow(row);\n                return;\n            }\n\n            // @ts-ignore\n            this.onKeyframeChanged({target:{row: row}});\n        });\n    }\n\n    resize() {\n        if (!this.timeline) return;\n\n        this.timeline._handleWindowResizeEvent();\n    }\n\n    /**\n     * 播放action\n     */\n    play() {\n        if (!this.bindAction) return;\n\n        // 不允许在播放过程中操纵时间轴(可选)。\n        this.timeline.setOptions({\n            timelineDraggable: false,\n            groupsDraggable: false,\n            keyframesDraggable: false,\n            zoom: this.timeline._currentZoom\n        });\n\n        this.bindAction.play();\n        this.bindAction.paused = false;\n    }\n\n    /**\n     * 暂停/继续播放action\n     */\n    pause() {\n        if (!this.bindAction) return;\n\n        if (this.bindAction.paused) {\n            this.bindAction.paused = false;\n\n            this.timeline.setOptions({\n                timelineDraggable: false,\n                groupsDraggable: false,\n                keyframesDraggable: false,\n                zoom: this.timeline._currentZoom\n            });\n        } else {\n            this.bindAction.paused = true;\n\n            this.timeline.setOptions({\n                timelineDraggable: true,\n                groupsDraggable: true,\n                keyframesDraggable: true,\n                zoom: this.timeline._currentZoom\n            });\n        }\n    }\n\n    /**\n     * 停止播放action\n     */\n    stop() {\n        if (!this.bindAction) return;\n\n        this.timeline.setOptions({\n            timelineDraggable: true,\n            groupsDraggable: true,\n            keyframesDraggable: true,\n            zoom: this.timeline._currentZoom\n        });\n\n        this.timeline.scrollLeft = 0;\n        this.timeline.setTime(0);\n\n        this.bindAction.stop();\n    }\n\n    /**\n     * 更新配置\n     */\n    setOptions(_options: TimelineOptions) {\n        deepAssign(this.options, _options);\n        this.timeline.setOptions(this.options);\n    }\n\n    dispose() {\n        this.resizeObserver.disconnect();\n\n        this.timeline?.dispose();\n    }\n}\n\nexport {TimelineTrack}"
  },
  {
    "path": "packages/sdk/lib/core/app/App.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/4/22 10:16\n * @description 静态类，全局场景管理\n */\nimport * as THREE from 'three';\n// 原生three的扩展\nimport '../expansion';\nimport Logger from \"@/utils/log/Logger\";\nimport { Config, Storage, Project, Selector, History as _History, Resource, CSM } from \"./modules\";\nimport { AnimationManager } from \"../animation/AnimationManager\";\nimport { useAddSignal, useDispatchSignal, useSetSignalActive } from '@/hooks';\nimport Loader from \"@/core/loader/Loader.ts\";\nimport { AddScriptCommand, RemoveScriptCommand } from \"@/core/commands/Commands.ts\";\nimport Viewer from \"@/core/viewer/Viewer.ts\";\n\nconst _DEFAULT_CAMERA = new THREE.PerspectiveCamera(45, 1, 0.01, 100 * 1000);\n_DEFAULT_CAMERA.name = \"默认相机\";\n_DEFAULT_CAMERA.position.set(0, 5, 10);\n_DEFAULT_CAMERA.lookAt(new THREE.Vector3());\n\nexport class App {\n    /**\n     * 默认场景\n     */\n    public scene: THREE.Scene = new THREE.Scene();\n\n    /**\n     * 辅助场景\n     */\n    public sceneHelpers: THREE.Scene = new THREE.Scene();\n\n    /**\n     * 场景默认相机\n     */\n    public camera: THREE.PerspectiveCamera = _DEFAULT_CAMERA.clone();\n\n    /**\n     * 当前视口正在使用的相机\n     */\n    public viewportCamera: THREE.Camera = this.camera;\n\n    /**\n     * 当前视口渲染模式\n     */\n    public viewportShading: string = 'default';\n\n    /**\n     * 场景中的几何数据集合\n     */\n    public geometries: { [uuid: string]: THREE.BufferGeometry } = {};\n\n    /**\n     * 场景中的材质集合\n     */\n    public materials: { [uuid: string]: THREE.Material } = {};\n\n    /**\n     * 场景中的贴图集合\n     */\n    public textures: { [uuid: string]: THREE.Texture } = {};\n\n    /**\n     * 场景中的脚本集合\n     */\n    public scripts: ISceneJson['scripts'] = {};\n\n    /**\n     * 场景中的辅助集合\n     */\n    public helpers: Record<number, THREE.Object3D> = {};\n\n    /**\n     * 场景中的相机集合\n     */\n    public cameras: { [uuid: string]: THREE.Camera } = {};\n\n    /**\n     * 场景元数据（即记录更改前的数据以等待还原）\n     */\n    public metadata: Record<string, any> = {};\n\n    /**\n     * 跟踪材质使用的频率\n     */\n    protected materialsRefCounter: Map<object, number> = new Map();\n\n    /**\n     * 场景选中的模型\n     */\n    public selected: THREE.Object3D | null = null;\n\n    /**\n     * 场景锁定的模型\n     */\n    public locked: THREE.Object3D | null = null;\n\n    /**\n     * 日志记录\n     */\n    public log: typeof Logger = Logger;\n\n    /**\n     * 本地indexDB\n     */\n    public storage: Storage = new Storage();\n\n    /**\n     * 配置项\n     */\n    public config: Config = new Config(this.storage);\n\n    /**\n     * 当前工程相关，包括当前工程配置\n     */\n    public project: Project = new Project(this);\n\n    /**\n     * 模型选择器\n     */\n    public selector: Selector = new Selector();\n\n    /**\n     * 历史记录\n     */\n    public history: _History = new _History();\n\n    /**\n     * 资源管理\n     */\n    public resource: Resource = new Resource();\n\n    /**\n     * 全局动画管理\n     */\n    public animationManager: AnimationManager = new AnimationManager();\n\n    /**\n     * 级联阴影映射\n     */\n    public csm: CSM = new CSM(this.project.getKey(\"csm\") as IAppProject.CSM);\n\n    /**\n     * 间隔多长时间渲染渲染一次,用于固定fps上限（单位秒）\n     */\n    public singleFrameTime: number = 1 / this.FPS;\n\n    /**\n     * 当前视口示例，实例化视口时赋值\n     */\n    public viewer: Viewer | null = null;\n\n    constructor() {\n        this.scene.name = \"默认场景\";\n\n        this.addCamera(this.camera);\n\n        useAddSignal(\"objectFocusByUuid\", this.focusByUuid.bind(this))\n    }\n\n    /**\n     * 获取渲染帧率上限\n     */\n    get FPS(): number {\n        return this.project.getKey(\"renderer.fps\");\n    }\n\n    /**\n     * 设置渲染帧率上限\n     * @param fps\n     */\n    set FPS(fps: number) {\n        this.project.setKey(\"renderer.fps\", fps, false);\n\n        this.singleFrameTime = fps ? (1 / fps) : 0;\n    }\n\n    /**\n     * 设置初始配置\n     */\n    setConfig(_config: Record<string, any>) {\n        this.config.setConfig(_config);\n    }\n\n    /**\n     * 生成场景\n     * @param scene\n     */\n    setScene(scene: THREE.Scene) {\n        this.scene.copy(scene, false)\n        // copy方法不会复制uuid，需要手动赋值\n        this.scene.uuid = scene.uuid;\n        if (this.scene.animations && this.scene.animations.length > 0) this.clipAction(this.scene);\n\n        // 避免对象渲染\n        useSetSignalActive('sceneGraphChanged', false);\n\n        while (scene.children.length > 0) {\n            this.addObject(scene.children[0]);\n        }\n\n        useSetSignalActive('sceneGraphChanged', true);\n        useDispatchSignal('sceneGraphChanged');\n\n        return this.scene;\n    }\n\n    /**\n     * 剪辑动画\n     * @param object\n     */\n    clipAction(object: THREE.Object3D) {\n        if (!object.animations || !object.animations.length) return;\n\n        // 每个包含动画的模型都会有自己的混合器，因为如果采用共用scene混合器方案会造成全场景动画播放进度统一的情况\n        let mixer = this.animationManager.mixerMap.get(object.uuid);\n        if (!mixer) {\n            mixer = new THREE.AnimationMixer(object);\n            this.animationManager.mixerMap.set(object.uuid, mixer);\n        }\n\n        object.animations.forEach((animation, index) => {\n            if ((animation instanceof THREE.AnimationAction) && animation.getClip()) {\n                this.animationManager.actionMap.set(animation.getClip().uuid, animation)\n\n                return;\n            }\n\n            if (!(animation instanceof THREE.AnimationClip)) return;\n\n            const action = (<THREE.AnimationMixer>mixer).clipAction(animation, object);\n            // @ts-ignore\n            object.animations[index] = action;\n\n            this.animationManager.actionMap.set(animation.uuid, action);\n        })\n    }\n\n    /**\n     * 添加模型\n     * @param object\n     * @param parent\n     * @param index\n     */\n    addObject(object: THREE.Object3D, parent?: THREE.Object3D, index?: number) {\n        // 使用自己版本threejs(比如插件)创建的物体调用此方法时需要递归修复原型链\n        const fixPrototypeChain = (obj: THREE.Object3D) => {\n            if (!obj.traverseByCondition) {\n                Object.setPrototypeOf(obj, THREE.Object3D.prototype);\n            }\n            obj.children.forEach(child => child.traverse(c => fixPrototypeChain(c)));\n        };\n\n        fixPrototypeChain(object);\n\n        object.traverseByCondition((child) => {\n            if (child.animations && child.animations.length > 0) this.clipAction(child);\n            if (child.geometry !== undefined) this.addGeometry(child.geometry);\n            if (child.material !== undefined) this.addMaterial(child.material);\n            this.addCamera(child);\n            this.addHelper(child);\n\n            // 20250325: 除灯光外默认全打开接收与投射阴影\n            if (child.isLight) return;\n\n            child.castShadow = true;\n            child.receiveShadow = true;\n        }, (child) => !child.ignore);\n\n        if (parent === undefined) {\n            this.scene.add(object);\n        } else {\n            parent.children.splice(index || 0, 0, object);\n            object.parent = parent;\n        }\n\n        useDispatchSignal('objectAdded', object);\n        useDispatchSignal('sceneGraphChanged');\n    }\n\n    /**\n     * 移动模型\n     * @param object\n     * @param parent\n     * @param before\n     */\n    moveObject(object: THREE.Object3D, parent: THREE.Object3D, before: THREE.Object3D) {\n        if (parent === undefined) {\n            parent = this.scene;\n        }\n\n        parent.add(object);\n\n        // 对子数组进行排序\n        if (before !== undefined) {\n            const index = parent.children.indexOf(before);\n            parent.children.splice(index, 0, object);\n            parent.children.pop();\n        }\n\n        useDispatchSignal('sceneGraphChanged');\n    }\n\n    /**\n     * 重命名模型\n     * @param object\n     * @param name\n     */\n    nameObject(object: THREE.Object3D, name: string) {\n        object.name = name;\n        useDispatchSignal('sceneGraphChanged');\n    }\n\n    /**\n     * 移除模型\n     * @param object\n     */\n    removeObject(object: THREE.Object3D) {\n        // 由于含有ignore属性的对象与业务关联，不受scene管控\n        // object.parent === null避免删除相机或场景\n        if (object.parent === null || object.ignore) return;\n\n        object.traverseByCondition((child: THREE.Object3D) => {\n            this.removeCamera(child);\n            this.removeHelper(child);\n            if (child.material !== undefined) this.removeMaterial(child.material);\n        }, (child: THREE.Object3D) => !child.ignore);\n\n        object.parent.remove(object);\n\n        useDispatchSignal('objectRemoved', object);\n        useDispatchSignal('sceneGraphChanged');\n    }\n\n    /**\n     * 添加几何数据\n     * @param geometry\n     */\n    addGeometry(geometry: THREE.BufferGeometry) {\n        this.geometries[geometry.uuid] = geometry;\n    }\n\n    /**\n     * 设置几何名称\n     * @param geometry\n     * @param name\n     */\n    setGeometryName(geometry: THREE.BufferGeometry, name: string) {\n        geometry.name = name;\n        useDispatchSignal('sceneGraphChanged');\n    }\n\n    /**\n     * 场景中新增材质\n     * @param material\n     */\n    addMaterial(material: THREE.Material | THREE.Material[]) {\n        if (Array.isArray(material)) {\n            for (let i = 0, l = material.length; i < l; i++) {\n                this.addMaterialToRefCounter(material[i]);\n            }\n        } else {\n            this.addMaterialToRefCounter(material);\n        }\n\n        useDispatchSignal('materialAdded');\n    }\n\n    /**\n     * 新增材质的使用计数\n     * @param material\n     */\n    addMaterialToRefCounter(material: THREE.Material) {\n        let materialsRefCounter = this.materialsRefCounter;\n        let count = materialsRefCounter.get(material);\n\n        if (count === undefined) {\n            materialsRefCounter.set(material, 1);\n            this.materials[material.uuid] = material;\n\n            // 材质添加到csm\n            this.csm.setupMaterial(material);\n            material.needsUpdate = true;\n        } else {\n            count++;\n            materialsRefCounter.set(material, count);\n        }\n    }\n\n    /**\n     * 场景中移除材质\n     * @param material\n     */\n    removeMaterial(material: THREE.Material | THREE.Material[]) {\n        if (Array.isArray(material)) {\n            for (let i = 0, l = material.length; i < l; i++) {\n                this.removeMaterialFromRefCounter(material[i]);\n            }\n        } else {\n            this.removeMaterialFromRefCounter(material);\n        }\n\n        useDispatchSignal('materialRemoved');\n    }\n\n    /**\n     * 移除材质时减少对应材质使用计数\n     * @param material\n     */\n    removeMaterialFromRefCounter(material: THREE.Material) {\n        let materialsRefCounter = this.materialsRefCounter;\n        let count = materialsRefCounter.get(material) as number;\n        count--;\n\n        if (count === 0) {\n            materialsRefCounter.delete(material);\n            delete this.materials[material.uuid];\n        } else {\n            materialsRefCounter.set(material, count);\n        }\n    }\n\n    /**\n     * 通过材质uuid获取材质\n     * @param uuid\n     */\n    getMaterialByUuid(uuid: string) {\n        return this.materials[uuid];\n    }\n\n    /**\n     * 设置材质名称\n     * @param material\n     * @param name\n     */\n    setMaterialName(material: THREE.Material, name: string) {\n        material.name = name;\n        useDispatchSignal('sceneGraphChanged');\n    }\n\n    /**\n     * 场景中新增贴图\n     * @param texture\n     */\n    addTexture(texture: THREE.Texture) {\n        this.textures[texture.uuid] = texture;\n    }\n\n    /**\n     * 场景中新增相机\n     * @param camera\n     */\n    addCamera(camera: THREE.Camera) {\n        if (camera.isCamera) {\n            this.cameras[camera.uuid] = camera;\n            useDispatchSignal('cameraAdded', camera);\n        }\n    }\n\n    /**\n     * 场景中移除相机\n     * @param camera\n     */\n    removeCamera(camera: THREE.Camera | THREE.Object3D) {\n        if (this.cameras[camera.uuid] !== undefined) {\n            delete this.cameras[camera.uuid];\n            useDispatchSignal('cameraRemoved', camera);\n        }\n    }\n\n    /**\n     * 场景中新增三维辅助工具\n     * @param object\n     * @param helper\n     */\n    addHelper(object: any, helper?: THREE.Object3D) {\n        if (helper === undefined) {\n            if (object.isCamera) {\n                helper = new THREE.CameraHelper(object);\n            } else if (object.isPointLight) {\n                helper = new THREE.PointLightHelper(object, 1);\n            } else if (object.isDirectionalLight) {\n                helper = new THREE.DirectionalLightHelper(object, 1);\n            } else if (object.isSpotLight) {\n                helper = new THREE.SpotLightHelper(object);\n            } else if (object.isHemisphereLight) {\n                helper = new THREE.HemisphereLightHelper(object, 1);\n            } else if (object.isSkinnedMesh && object.skeleton?.bones) {\n                helper = new THREE.SkeletonHelper(object.skeleton.bones[0]);\n            } else if (object.isBone && object.parent?.isBone !== true) {\n                helper = new THREE.SkeletonHelper(object);\n            } else {\n                // no helper for this object type\n                return;\n            }\n\n            let geometry = new THREE.SphereGeometry(2, 4, 2);\n            let material = new THREE.MeshBasicMaterial({ color: 0xff0000, visible: false });\n            const picker = new THREE.Mesh(geometry, material);\n            picker.name = 'picker';\n            picker.proxy = object;\n            helper.add(picker);\n        }\n\n        this.sceneHelpers.add(helper);\n        this.helpers[object.id] = helper;\n    }\n\n    /**\n     * 移除某个模型上的三维辅助工具\n     * @param object\n     */\n    removeHelper(object: THREE.Object3D) {\n        if (this.helpers[object.id] !== undefined) {\n            const helper = this.helpers[object.id];\n            helper.parent?.remove(helper);\n            delete this.helpers[object.id];\n        }\n    }\n\n    /**\n     * 新增脚本\n     * @param object\n     * @param script\n     */\n    addScript(object: THREE.Object3D, script: ISceneScript) {\n        this.execute(new AddScriptCommand(object, script));\n    }\n\n    /**\n     * 移除脚本\n     * @param object\n     * @param script\n     */\n    removeScript(object: THREE.Object3D, script: ISceneScript) {\n        this.execute(new RemoveScriptCommand(object, script));\n    }\n\n    /**\n     * 获取模型材质\n     * @param object\n     * @param slot\n     */\n    getObjectMaterial(object: THREE.Object3D, slot: number) {\n        let material = object.material;\n\n        if (Array.isArray(material) && slot !== undefined) {\n            material = material[slot];\n        }\n        return material;\n    }\n\n    /**\n     * 设置模型材质\n     * @param object\n     * @param slot\n     * @param newMaterial\n     */\n    setObjectMaterial(object: THREE.Object3D, slot: number | undefined, newMaterial: THREE.Material) {\n        if (Array.isArray(object.material) && slot !== undefined) {\n            object.material[slot] = newMaterial;\n        } else {\n            object.material = newMaterial;\n        }\n    }\n\n    /**\n     * 设置当前视图相机\n     * @param uuid\n     */\n    setViewportCamera(uuid: string) {\n        this.viewportCamera = this.cameras[uuid];\n        useDispatchSignal('viewportCameraChanged');\n    }\n\n    /**\n     * 设置当前视图渲染方式\n     * @param value\n     */\n    setViewportShading(value: string) {\n        this.viewportShading = value;\n        useDispatchSignal(\"viewportShadingChanged\");\n    }\n\n    /**\n     * 选中模型\n     * @param object\n     */\n    select(object: THREE.Object3D) {\n        this.selector.select(object);\n    }\n\n    /**\n     * 通过模型id选中模型\n     * @param id\n     */\n    selectById(id: number) {\n        if (id === this.camera.id) {\n            this.select(this.camera);\n            return;\n        }\n\n        const obj = this.scene.getObjectById(id);\n\n        obj && this.select(obj);\n    }\n\n    /**\n     * 通过模型uuid选中模型\n     * @param uuid\n     */\n    selectByUuid(uuid: string) {\n        const scope = this;\n        this.scene.traverse(function (child: THREE.Object3D) {\n            if (child.uuid === uuid) {\n                scope.select(child);\n            }\n        });\n    }\n\n    /**\n     * 取消模型选中状态\n     */\n    deselect() {\n        this.selector.deselect();\n    }\n\n    /**\n     * 锁定模型\n     * @param object\n     */\n    lock(object?: THREE.Object3D | null) {\n        if (!object) {\n            object = this.selected;\n        }\n\n        if (object) {\n            this.locked = object;\n            useDispatchSignal('objectLocked', object);\n        }\n    }\n\n    /**\n     * 取消模型锁定状态\n     */\n    unlock() {\n        this.locked = null;\n        useDispatchSignal('objectUnlocked');\n    }\n\n    /**\n     * 相机聚焦模型\n     * @param object\n     */\n    focus(object: THREE.Object3D) {\n        if (object !== undefined) {\n            useDispatchSignal('objectFocused', object);\n        }\n    }\n\n    /**\n     * 通过id聚焦模型\n     * @param id\n     */\n    focusById(id: number) {\n        const obj = this.scene.getObjectById(id);\n\n        obj && this.focus(obj);\n    }\n\n    /**\n     * 通过uuid聚焦模型\n     * @param uuid\n     */\n    focusByUuid(uuid: string) {\n        if (uuid === undefined) {\n            this.deselect();\n            return;\n        }\n\n        const obj = this.getObjectByUuid(uuid);\n        obj && this.focus(obj);\n    }\n\n    /**\n     * 通过uuid获取模型\n     * @param uuid\n     */\n    getObjectByUuid(uuid: string) {\n        return this.scene.getObjectByProperty('uuid', uuid);\n    }\n\n    /**\n     * 遍历平铺所有子级mesh\n     * @param object\n     */\n    traverseMeshToArr(object: THREE.Object3D) {\n        if (object.isMesh) return [object];\n\n        const arr: THREE.Mesh[] = [];\n        object.traverse((item: THREE.Object3D) => {\n            if (item.isMesh) {\n                arr.push(item as THREE.Mesh);\n            }\n        })\n\n        return arr;\n    }\n\n    /**\n     * 获取不包含ignore属性模型的scene\n     */\n    getSceneWithoutIgnore() {\n        const newScene = this.scene.clone(false);\n        newScene.uuid = this.scene.uuid;\n        this.scene.children.forEach((item) => {\n            if (!item.ignore) {\n                const model = item.clone();\n                model.uuid = item.uuid;\n                newScene.add(model);\n            }\n        })\n\n        return newScene;\n    }\n\n    /**\n     * 创建PBR材质\n     * @param textures\n     * @param properties\n     */\n    createPBRMaterial(textures: { [type: string]: string | THREE.Texture } = {}, properties: any = {}): Promise<THREE.MeshStandardMaterial> {\n        return new Promise((resolve, reject) => {\n            const material = new THREE.MeshStandardMaterial({\n                // 位移贴图对网格的影响程度默认设置为0\n                displacementScale: 0\n            });\n\n            properties && Object.keys(properties).forEach(key => {\n                material[key] = properties[key];\n            });\n\n            const num = new Proxy({ value: 10 }, {\n                set(target: { value: number }, p: string | symbol, newValue: any): boolean {\n                    target[p] = newValue;\n                    if (p === 'value' && newValue === 0) {\n                        resolve(material);\n                    }\n\n                    return true;\n                }\n            })\n\n            // 基础颜色贴图(高光反射/光泽度工作流:diffuse, 金属/粗糙度工作流:baseColor)\n            if (textures.baseColor) {\n                this.resource.loadURLTexture(textures.baseColor, (texture => {\n                    material.map = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 法线贴图\n            if (textures.normal) {\n                this.resource.loadURLTexture(textures.normal, (texture => {\n                    material.normalMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else if (textures.bump) {\n                // 凹凸贴图(如果定义了法线贴图，则将忽略该贴图)\n                this.resource.loadURLTexture(textures.bump, (texture => {\n                    material.bumpMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 置换贴图(位移贴图)\n            if (textures.displacement) {\n                this.resource.loadURLTexture(textures.displacement, (texture => {\n                    material.displacementMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 粗糙度贴图\n            if (textures.roughness) {\n                this.resource.loadURLTexture(textures.roughness, (texture => {\n                    material.roughnessMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 金属度贴图\n            if (textures.metalness) {\n                this.resource.loadURLTexture(textures.metalness, (texture => {\n                    material.metalnessMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 环境遮挡贴图\n            if (textures.ao) {\n                this.resource.loadURLTexture(textures.ao, (texture => {\n                    material.aoMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 自发光贴图\n            if (textures.emissive) {\n                this.resource.loadURLTexture(textures.emissive, (texture => {\n                    material.emissiveMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 透明贴图\n            if (textures.alpha) {\n                this.resource.loadURLTexture(textures.alpha, (texture => {\n                    material.alphaMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 环境贴图（一般不会设置，因为会使用scene.environment）\n            if (textures.env) {\n                this.resource.loadURLTexture(textures.env, (texture => {\n                    material.envMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n\n            // 光照贴图\n            if (textures.light) {\n                this.resource.loadURLTexture(textures.light, (texture => {\n                    material.lightMap = texture;\n\n                    num.value--;\n                }), err => {\n                    reject(err);\n                });\n            } else {\n                num.value--;\n            }\n        })\n    }\n\n    /**\n     * 清空场景\n     */\n    clear() {\n        this.history.clear();\n        this.camera.copy(_DEFAULT_CAMERA);\n        useDispatchSignal('cameraReset');\n        this.scene.name = '默认场景';\n        this.scene.position.set(0, 0, 0);\n        this.scene.rotation.set(0, 0, 0);\n        this.scene.userData = {};\n        this.scene.background = null;\n        this.scene.environment = null;\n        this.scene.fog = null;\n\n        for (let i = this.scene.children.length - 1; i >= 0; i--) {\n            this.removeObject(this.scene.children[i]);\n        }\n\n        this.geometries = {};\n        this.materials = {};\n        this.textures = {};\n        this.scripts = {};\n\n        this.materialsRefCounter.clear();\n        this.animationManager.mixerMap.forEach(mixer => mixer.stopAllAction());\n\n        this.deselect();\n\n        useDispatchSignal('sceneCleared');\n    }\n\n    /**\n     * 从json数据生成场景\n     * @param sceneJson\n     */\n    async fromJSON(sceneJson: ISceneJson) {\n        //先清空场景\n        this.clear();\n\n        // 清除图纸状态\n        this.project.resetDrawing();\n\n        this.metadata = sceneJson.metadata || {};\n        sceneJson.metadata = {};\n\n        let loader = Loader.objectLoader;\n        let camera = await loader.parseAsync(sceneJson.camera) as THREE.Camera;\n\n        this.camera.copy(camera as THREE.PerspectiveCamera);\n        useDispatchSignal('cameraReset');\n\n        if (sceneJson.scripts) {\n            this.scripts = sceneJson.scripts;\n        }\n\n        const scene = this.setScene(await loader.parseAsync(sceneJson.scene) as THREE.Scene);\n\n        // 20250718: 环境类型是ModelViewer时需要手动设置，因为scene.toJSON()不会处理renderTargetTexture\n        switch (sceneJson.scene.object.environmentType) {\n            case \"ModelViewer\":\n                useDispatchSignal(\"sceneEnvironmentChanged\", 'ModelViewer');\n                useDispatchSignal(\"sceneGraphChanged\");\n                break\n        }\n\n        return scene;\n    }\n\n    /**\n     * 场景信息转JSON\n     */\n    toJSON() {\n        // 脚本清理\n        let scene = this.scene;\n        let scripts = this.scripts;\n\n        for (let key in scripts) {\n            let script = scripts[key];\n            if (script.length === 0 || scene.getObjectByProperty('uuid', key) === undefined) {\n                delete scripts[key];\n            }\n        }\n\n        const projectRender = this.project.getKey(\"renderer\");\n        return {\n            metadata: {},\n            project: {\n                xr: this.project.getKey(\"xr\"),\n                antialias: projectRender.antialias,\n                shadows: projectRender.shadows.enabled,\n                shadowType: projectRender.shadows.type,\n                toneMapping: projectRender.shadows.toneMapping,\n                toneMappingExposure: projectRender.shadows.toneMappingExposure,\n            },\n            camera: this.camera.toJSON(),\n            scene: this.scene.toJSON(),\n            scripts: this.scripts,\n            //history: this.history.toJSON(),\n        };\n    }\n\n    /**\n     * 执行历史记录中的命令\n     * @param cmd\n     * @param optionalName\n     */\n    execute(cmd, optionalName?: string) {\n        this.history.execute(cmd, optionalName);\n    }\n\n    /**\n     * 撤销\n     */\n    undo() {\n        this.history.undo();\n    }\n\n    /**\n     * 重做\n     */\n    redo() {\n        this.history.redo();\n    }\n}\n\nconst app = new App();\nexport default app;"
  },
  {
    "path": "packages/sdk/lib/core/app/modules/CSM.ts",
    "content": "import * as THREE from 'three';\nimport { CSM as _CSM } from 'three/examples/jsm/csm/CSM.js';\nimport { useDispatchSignal } from '@/hooks';\nimport App from \"@/core/app/App\";\n\n// Cascaded Shadow Maps（级联阴影映射，CSM）\nclass CSM {\n    instance:_CSM | null = null;\n\n    constructor(options:IAppProject.CSM){\n        this.enabled = options.enabled;\n    }\n\n    get enabled(){\n        return !!this.instance;\n    }\n\n    set enabled(isEnabled:boolean){\n        if (!isEnabled){\n            if(!this.instance) return;\n\n            // 移除csm创建的对象\n            this.instance.remove();\n            // 销毁csm插入的shader\n            this.instance.dispose();\n\n            this.instance = null;\n\n            useDispatchSignal(\"sceneGraphChanged\");\n            return;\n        }\n\n        /* 以下是启用csm的逻辑 */\n        if(this.instance){\n            this.reset();\n            return;\n        }\n\n        const _config = App.project.getKey(\"csm\");\n        this.instance = new _CSM({\n            maxFar: _config.maxFar,\n            cascades: 4,\n            mode: _config.mode,\n            shadowMapSize: _config.shadowMapSize,\n            lightDirection: new THREE.Vector3(_config.lightDirectionX, _config.lightDirectionY, _config.lightDirectionZ).normalize(),\n            lightIntensity: _config.lightIntensity,\n            lightNear: 0.1,\n            lightFar: _config.maxFar * 2,\n            lightMargin: 200,\n            camera: App.viewportCamera,\n            parent: App.scene\n        });\n\n        this.instance.fade = true;\n\n        this.instance.lights.forEach(light => {\n            // 忽略对csm相关object的处理\n            light.ignore = true;\n            light.target.ignore = true;\n\n            // 设置的灯光颜色\n            light.color = new THREE.Color(_config.lightColor);\n            light.shadow.bias = -0.00001;\n        })\n\n        // 将场景中的全部材质添加到csm\n        Object.values(App.materials).forEach(material => {\n            this.setupMaterial(material);\n        })\n\n        this.instance.updateFrustums();\n\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    reset() {\n        if (!this.instance) return;\n\n        this.enabled = false;\n        this.enabled = true;\n    }\n\n    // 材质添加到csm\n    setupMaterial(material:THREE.Material){\n        if(!this.instance) return;\n\n        material.shadowSide = THREE.BackSide;\n        this.instance.setupMaterial(material);\n    }\n\n    updateProperty(key,value){\n        if (!this.instance) return;\n\n        this.instance[key] = value;\n\n        this.instance.updateFrustums();\n\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    updateLightColor(color: string){\n        if (!this.instance) return;\n\n        this.instance.lights.forEach(light => {\n            light.color = new THREE.Color(color);\n        })\n\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    updateLightIntensity(intensity: number){\n        if (!this.instance) return;\n\n        this.instance.lightIntensity = intensity;\n\n        this.instance.lights.forEach(light => {\n            light.intensity = intensity;\n        })\n\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    updateLightDirection(direction: \"x\" | \"y\" | \"z\", value: number){\n        if (!this.instance) return;\n\n        this.instance.lightDirection[direction] = value;\n\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    updateFrustums(){\n        if (!this.instance) return;\n\n        this.instance.updateFrustums();\n\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    update(){\n        if (!this.instance) return;\n\n        App.viewportCamera.updateMatrixWorld();\n        this.instance.update();\n    }\n}\n\nexport {CSM}"
  },
  {
    "path": "packages/sdk/lib/core/app/modules/Config.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/4/26 13:59\n * @description 应用的全局配置，会存储在本地缓存\n */\nimport {Storage} from \"./Storage\";\nimport {deepAssign, getNestedProperty} from \"@/utils\";\nimport {ROAMING_CHARACTERS} from \"@/constant\";\n\nclass Config {\n    protected storage: Storage;\n    public config: IAppConfig.Config;\n\n    constructor(storage: Storage) {\n        this.storage = storage;\n\n        this.config = {\n            // UI相关配置\n            theme: 'os',\n            mainColor: '#7FE7C4',\n            // 历史记录功能是否启用\n            history: false,\n            // 快捷键相关配置\n            shortcuts: {\n                translate: 'w',\n                rotate: 'e',\n                scale: 'r',\n                undo: 'z',\n                focus: 'f',\n            },\n            //漫游角色\n            roamingCharacter: ROAMING_CHARACTERS.JACKIE\n        };\n\n        this.syncStorage();\n    }\n\n    /**\n     * 设置初始配置\n     */\n    setConfig(_config:Record<string, any>){\n        deepAssign(this.config,_config);\n\n        this.syncStorage();\n    }\n\n    /**\n     * 和本地存储中的配置同步\n     */\n    syncStorage(){\n        for (let key of Object.keys(this.config)) {\n            this.storage.getConfigItem(key).then(_value => {\n                if(_value === null){\n                    this.storage.setConfigItem(key, this.config[key])\n                }else{\n                    let newVal = _value;\n                    // 有可能会在代码开发过程中增加新的配置项\n                    if(this.config[key] && typeof this.config[key] === \"object\"){\n                        newVal = Object.assign({},this.config[key],_value);\n                    }\n                    this.config[key] = newVal;\n\n                    if(newVal !== _value){\n                        this.storage.setConfigItem(key, newVal)\n                    }\n                }\n            }).catch(() => {\n                this.storage.setConfigItem(key, this.config[key])\n            })\n        }\n    }\n\n    /**\n     * 获取配置\n     * @param {string} key 可以多层级，需用.分割，如a.b.c\n     */\n    getKey(key:string): any {\n        return getNestedProperty(this.config,key);\n    }\n\n    /**\n     * 设置配置项\n     * @param {string} key 可以多层级，需用.分割，如a.b.c\n     * @param {unknown} value 配置项的值\n     */\n    setKey(key:string,value:unknown) {\n        const keys = key.split(\".\");\n\n        if(keys.length === 1){\n            this.config[key] = value;\n            this.storage.setConfigItem(key,value);\n\n            return;\n        }\n\n        let obj = this.config;\n        for (let i = 0; i < keys.length; i++){\n            if(keys.length - i === 1){\n                obj[keys[i]] = value;\n                break;\n            }\n\n            obj = obj[keys[i]];\n        }\n        this.storage.setConfigItem(keys[0],this.config[keys[0]]);\n    }\n\n    /**\n     * 获取快捷键配置\n     * @param {string} key\n     */\n    getShortcutItem(key: string) {\n        return this.config.shortcuts[key];\n    }\n\n    /**\n     * 设置快捷键\n     * @param {string} key\n     * @param {any} value\n     */\n    setShortcutItem(key: string,value:any) {\n        this.config.shortcuts[key] = value;\n        return this.storage.setConfigItem(\"shortcuts\", this.config.shortcuts)\n    }\n\n    clear() {\n        for (let key of Object.keys(this.config)) {\n            this.storage.removeConfigItem(key);\n        }\n    }\n}\n\nexport {Config};\n"
  },
  {
    "path": "packages/sdk/lib/core/app/modules/History.ts",
    "content": "import type { Object3D } from 'three';\nimport * as Commands from '@/core/commands/Commands';\nimport {useSignal} from \"@/hooks\";\nimport App from \"@/core/app/App\";\n\nconst {dispatch:useDispathSignal,setActive} = useSignal();\n\ninterface Undos{\n\tid:number,\n\tname?:string,\n\tupdatable:boolean,\n\tobject:Object3D,\n\ttype:string,\n\tscript,\n\tattributeName:string,\n\tinMemory:boolean,\n\tjson:string,\n\tupdate:(T)=>void,\n\ttoJSON:()=>string,\n\tfromJSON:(string)=>void,\n\tundo:()=>void,\n\texecute:()=>void,\n}\n\nclass History {\n\tpublic undos:Array<Undos>;\n\tpublic redos:Array<Undos>;\n\tprotected lastCmdTime:number;\n\tprotected idCounter:number;\n\n\tconstructor() {\n\t\tthis.undos = [];\n\t\tthis.redos = [];\n\t\tthis.lastCmdTime = Date.now();\n\t\tthis.idCounter = 0;\n\t}\n\n\texecute( cmd, optionalName ) {\n\t\tconst lastCmd = this.undos[this.undos.length - 1];\n\t\tconst timeDifference = Date.now() - this.lastCmdTime;\n\n\t\tconst isUpdatableCmd = lastCmd &&\n\t\t\tlastCmd.updatable &&\n\t\t\tcmd.updatable &&\n\t\t\tlastCmd.object === cmd.object &&\n\t\t\tlastCmd.type === cmd.type &&\n\t\t\tlastCmd.script === cmd.script &&\n\t\t\tlastCmd.attributeName === cmd.attributeName;\n\n\t\tif ( isUpdatableCmd && cmd.type === 'SetScriptValueCommand' ) {\n\t\t\t// 当cmd.type为“SetScriptValueCommand”时，将忽略时间差异\n\t\t\tlastCmd.update( cmd );\n\t\t\tcmd = lastCmd;\n\t\t} else if ( isUpdatableCmd && timeDifference < 500 ) {\n\t\t\tlastCmd.update( cmd );\n\t\t\tcmd = lastCmd;\n\t\t} else {\n\t\t\t// 该命令不可更新，并作为历史记录的新部分添加\n\t\t\tthis.undos.push( cmd );\n\t\t\tcmd.id = ++ this.idCounter;\n\t\t}\n\n\t\tcmd.name = ( optionalName !== undefined ) ? optionalName : cmd.name;\n\t\tcmd.execute();\n\t\tcmd.inMemory = true;\n\n\t\tif (App.config.getKey('history')) {\n\t\t\t//在执行后立即序列化cmd，并将json附加到cmd\n\t\t\tcmd.json = cmd.toJSON();\n\t\t}\n\n\t\tthis.lastCmdTime = Date.now();\n\n\t\t// 清除所有redo命令\n\t\tthis.redos = [];\n\t\tuseDispathSignal(\"historyChanged\",cmd);\n\t}\n\n\tundo() {\n\t\tlet cmd:Undos | undefined = undefined;\n\t\tif (this.undos.length > 0) {\n\t\t\tcmd = this.undos.pop() as Undos;\n\t\t\tif ( cmd.inMemory === false ) {\n\t\t\t\tcmd.fromJSON( cmd.json );\n\t\t\t}\n\t\t}\n\n\t\tif ( cmd !== undefined ) {\n\t\t\tcmd.undo();\n\t\t\tthis.redos.push( cmd );\n\t\t\tuseDispathSignal(\"historyChanged\",cmd);\n\t\t}\n\t\treturn cmd;\n\t}\n\n\tredo():Undos |undefined {\n\t\tlet cmd:Undos |undefined = undefined;\n\t\tif ( this.redos.length > 0 ) {\n\t\t\tcmd = this.redos.pop() as Undos;\n\t\t\tif ( cmd.inMemory === false ) {\n\t\t\t\tcmd.fromJSON( cmd.json );\n\t\t\t}\n\t\t}\n\n\t\tif ( cmd !== undefined ) {\n\t\t\tcmd.execute();\n\t\t\tthis.undos.push( cmd );\n\t\t\tuseDispathSignal( \"historyChanged\",cmd );\n\t\t}\n\n\t\treturn cmd;\n\t}\n\n\ttoJSON() {\n\t\tconst history:{undos?:Array<string>,redos?:Array<string>} = {};\n\t\thistory.undos = [];\n\t\thistory.redos = [];\n\t\tif (!App.config.getKey('history')) return history;\n\n\t\t//将Undos附加到历史记录\n\t\tfor ( let i = 0; i < this.undos.length; i ++ ) {\n\t\t\tif (this.undos[ i ].hasOwnProperty( 'json' )) {\n\t\t\t\thistory.undos.push(this.undos[i].json);\n\t\t\t}\n\t\t}\n\n\t\t//将Redos附加到历史记录\n\t\tfor ( let i = 0; i < this.redos.length; i ++ ) {\n\t\t\tif (this.redos[ i ].hasOwnProperty( 'json' )) {\n\t\t\t\thistory.redos.push(this.redos[ i ].json);\n\t\t\t}\n\t\t}\n\t\treturn history;\n\t}\n\n\tfromJSON( json ) {\n\t\tif ( json === undefined ) return;\n\n\t\tfor ( let i = 0; i < json.undos.length; i ++ ) {\n\t\t\tconst cmdJSON = json.undos[ i ];\n\t\t\t//创建一个类型为\"json.type\"的新对象\n\t\t\tconst cmd = new Commands[cmdJSON.type](App);\n\t\t\tcmd.json = cmdJSON;\n\t\t\tcmd.id = cmdJSON.id;\n\t\t\tcmd.name = cmdJSON.name;\n\t\t\tthis.undos.push( cmd );\n\t\t\t//设置最后使用的idCounter\n\t\t\tthis.idCounter = ( cmdJSON.id > this.idCounter ) ? cmdJSON.id : this.idCounter; \n\t\t}\n\n\t\tfor ( let i = 0; i < json.redos.length; i ++ ) {\n\t\t\tconst cmdJSON = json.redos[ i ];\n\t\t\tconst cmd = new Commands[cmdJSON.type](App);\n\t\t\tcmd.json = cmdJSON;\n\t\t\tcmd.id = cmdJSON.id;\n\t\t\tcmd.name = cmdJSON.name;\n\t\t\tthis.redos.push( cmd );\n\t\t\tthis.idCounter = ( cmdJSON.id > this.idCounter ) ? cmdJSON.id : this.idCounter;\n\t\t}\n\n\t\t// 选择最后执行的undo命令\n\t\tuseDispathSignal( \"historyChanged\",this.undos[ this.undos.length - 1 ] );\n\t}\n\n\tclear() {\n\t\tthis.undos = [];\n\t\tthis.redos = [];\n\t\tthis.idCounter = 0;\n\n\t\tuseDispathSignal(\"historyChanged\");\n\t}\n\n\tgoToState( id:number ) {\n\t\tsetActive(\"sceneGraphChanged\",false);\n\t\tsetActive(\"historyChanged\",false);\n\n\t\t//下一个弹出的CMD\n\t\tlet cmd:Undos |undefined = this.undos.length > 0 ? this.undos[ this.undos.length - 1 ] : undefined;\n\t\tif ( cmd === undefined || id > cmd.id ) {\n\t\t\tcmd = this.redo();\n\t\t\twhile ( cmd !== undefined && id > cmd.id ) {\n\t\t\t\tcmd = this.redo();\n\t\t\t}\n\t\t} else {\n\t\t\twhile ( true ) {\n\t\t\t\tcmd = this.undos[ this.undos.length - 1 ];\n\t\t\t\tif ( cmd === undefined || id === cmd.id ) break;\n\t\t\t\tthis.undo();\n\t\t\t}\n\t\t}\n\n\t\tsetActive(\"sceneGraphChanged\",true);\n\t\tsetActive(\"historyChanged\",true);\n\n\t\tuseDispathSignal(\"sceneGraphChanged\");\n\t\tuseDispathSignal(\"historyChanged\",cmd);\n\t}\n\n\tenableSerialization( id ) {\n\t\t/**\n\t\t * 因为可能有命令在 this.undos && this.redos\n\t\t * 没有被.toJSON()序列化的，我们返回\n\t\t */\n\t\tthis.goToState(-1);\n\n\t\tsetActive(\"sceneGraphChanged\",false);\n\t\tsetActive(\"historyChanged\",false);\n\n\t\tlet cmd:Undos |undefined = this.redo();\n\t\twhile ( cmd !== undefined ) {\n\t\t\tif (!cmd.hasOwnProperty('json')) {\n\t\t\t\tcmd.json = cmd.toJSON();\n\t\t\t}\n\t\t\tcmd = this.redo();\n\t\t}\n\n\t\tsetActive(\"sceneGraphChanged\",true);\n\t\tsetActive(\"historyChanged\",true);\n\n\t\tthis.goToState( id );\n\t}\n}\n\nexport { History };\n"
  },
  {
    "path": "packages/sdk/lib/core/app/modules/Project.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/4/26 13:59\n * @description 当前项目相关信息\n */\nimport * as THREE from 'three';\nimport {getNestedProperty} from \"@/utils\";\nimport type {App} from \"../App\";\nimport {useRemoveSignal, useAddSignal, useDispatchSignal} from '@/hooks';\nimport {FPS_OPTIONS} from \"@/constant\";\n\nexport const defaultProjectInfo = (): IAppProject.Info => ({\n    // 项目运行是否启用xr\n    xr: false,\n    // 渲染器相关配置\n    renderer: {\n        // 渲染帧率上限,默认60\n        fps: FPS_OPTIONS.HIGH,\n        antialias: true,\n        toneMapping: THREE.ACESFilmicToneMapping,\n        toneMappingExposure: 1,\n        shadow: {\n            enabled: true,\n            type: THREE.PCFSoftShadowMap,\n        },\n    },\n    // 级联阴影映射\n    csm: {\n        enabled: false,\n        fade: false,\n        maxFar: 1000,\n        mode: \"practical\",\n        shadowMapSize: 2048,\n        lightDirectionX: -1,\n        lightDirectionY: -1,\n        lightDirectionZ: -1,\n        lightIntensity: 1,\n        lightColor: \"#ffffff\"\n    },\n    // 后处理\n    effect: {\n        enabled: false,\n        // 描边线\n        Outline: {\n            enabled: true,\n            // 边缘的强度，值越高边框范围越大\n            edgeStrength: Number(3.0),\n            // 发光强度\n            edgeGlow: Number(0.2),\n            // 边缘浓度\n            edgeThickness: Number(1.0),\n            // 闪烁频率，值越大频率越低\n            pulsePeriod: Number(0.0),\n            // 禁用纹理以获得纯线的效果\n            usePatternTexture: false,\n            // 可见边缘的颜色\n            visibleEdgeColor: \"#ffee00\",\n            // 不可见边缘的颜色\n            hiddenEdgeColor: \"#ff6a00\"\n        },\n        // 抗锯齿\n        FXAA: {\n            enabled: true,\n        },\n        // 辉光\n        UnrealBloom: {\n            enabled: false,\n            // 光晕阈值，值越小，效果越明显\n            threshold: 0,\n            // 光晕强度\n            strength: 1,\n            // 光晕半径\n            radius: 0\n        },\n        // 背景虚化\n        Bokeh: {\n            enabled: false,\n            // 焦距，调整远近，对焦时才会清晰\n            focus: 500.0,\n            // 孔径，类似相机孔径调节\n            aperture: 0.00005,\n            // 最大模糊程度\n            maxblur: 0.01\n        },\n        // 像素风\n        Pixelate: {\n            enabled: false,\n            // 像素大小\n            pixelSize: 6,\n            // 法向边缘强度\n            normalEdgeStrength: 0.3,\n            // 深度边缘强度\n            depthEdgeStrength: 0.4,\n        },\n        // 半色调\n        Halftone: {\n            enabled: false,\n            // 形状：点，椭圆，线，正方形\n            shape: 1,\n            // 半径\n            radius: 4,\n            // R色旋转\n            rotateR: Math.PI / 12,\n            // G色旋转\n            rotateG: Math.PI / 12 * 2,\n            // B色旋转\n            rotateB: Math.PI / 12 * 3,\n            // 分散度\n            scatter: 0,\n            // 混合度\n            blending: 1,\n            // 混合模式：线性，相乘，相加，明亮，昏暗\n            blendingMode: 1,\n            // 灰度\n            greyscale: false,\n        },\n        // LUT颜色滤镜\n        LUT: {\n            enabled: false,\n            lut: 'Bourbon 64.CUBE',\n            intensity: 1\n        },\n        // 运动残影\n        Afterimage: {\n            enabled: false,\n            damp: 0.95\n        }\n    },\n    // 天气\n    weather: {\n        fog: {\n            enabled: false,\n            type: \"Fog\", // Fog, FogExp2\n            color: \"#ffffff\",\n            near: 0.10,\n            far: 50.0,\n            density: 0.05,\n        },\n        rain: {\n            enabled: false,\n            speed: 0.4,\n            color: \"#ffffff\",\n            size: 0.5,\n            radian: 95,\n            alpha: 0.4\n        },\n        snow: {\n            enabled: false,\n            size: 0.5,\n            density: 1.0,\n            speed: 1.0,\n            alpha: 0.5,\n            accumulation: false,\n        }\n    },\n    // 场景信息\n    sceneInfo: {\n        // 场景id，使用uuid\n        id: \"\",\n        // 场景名称\n        sceneName: \"\",\n        // 场景分类  城市、园区、工厂、楼宇、设备、其他...\n        sceneType: \"其他\",\n        // 场景描述\n        sceneIntroduction: \"\",\n        // 场景版本\n        sceneVersion: 1,\n        // 项目类型。0：Web3D-THREE  1：WebGIS-Cesium\n        projectType: 0,\n        // 场景封面图\n        coverPicture: \"\",\n        // 场景是否包含图纸\n        hasDrawing: false,\n        // 场景zip包地址\n        zip: \"\",\n        // 场景zip包大小\n        zipSize: \"0\",\n        // WebGIS-Cesium 类型项目的基础Cesium配置\n        cesiumConfig: undefined\n    },\n    // 图纸\n    drawing: {\n        // 是否已上传图纸\n        isUploaded: false,\n        // 图片base64 / cad文件路径\n        imgSrc: \"\",\n        // 是否cad\n        isCad: false,\n        // cad图层信息\n        layers: {},\n        // 是否正在绘制矩形标记\n        isDrawingRect: false,\n        // 选中的矩形索引\n        selectedRectIndex: -1,\n        // 标记列表\n        markList: [],\n        // 标记图纸时的图纸属性信息\n        imgInfo: {\n            width: 0,\n            height: 0\n        }\n    }\n})\n\nlet drawingMarkDoneFn: null | ((type: \"add\" | \"update\", rect: IAppProject.DrawingMark) => void) = null;\n\nclass Project {\n    public app: App\n    public info: IAppProject.Info;\n\n    constructor(app: App) {\n        this.app = app;\n\n        this.info = defaultProjectInfo();\n\n        drawingMarkDoneFn = this.drawingMarkListChange.bind(this);\n        useAddSignal(\"drawingMarkDone\", drawingMarkDoneFn);\n    }\n\n    /**\n     * 获取配置\n     * @param {string} key 可以多层级，需用.分割，如a.b.c\n     */\n    getKey(key: string): any {\n        return getNestedProperty(this.info, key);\n    }\n\n    /**\n     * 设置配置项,配置变更自动执行相应处理\n     * @param {string} key 可以多层级，需用.分割，如a.b.c\n     * @param {unknown} value 配置项的值\n     * @param {boolean} executeAction 是否自动执行相应处理\n     */\n    setKey(key: string, value: unknown,executeAction: boolean = true) {\n        const keys = key.split(\".\");\n\n        if (keys.length === 1) {\n            this.info[key] = value;\n        } else {\n            let obj = this.info;\n            for (let i = 0; i < keys.length; i++) {\n                if (keys.length - i === 1) {\n                    obj[keys[i]] = value;\n                    break;\n                }\n\n                obj = obj[keys[i]];\n            }\n        }\n\n        /* 执行相应处理 */\n        if(!executeAction || [\"xr\",\"sceneInfo\",\"drawing\"].includes(keys[0])) return;\n\n        const secondProperty = keys[1];\n        // 如果setKey传入的是第一层级的变更且不是特殊单层处理的属性，则遍历为第二层级递归以执行相应处理\n        if(!secondProperty && ![\"renderer\"].includes(key)) {\n            const propertyValue = this.info[key];\n\n            Object.keys(propertyValue).forEach(secondKey => {\n                this.setKey(`${key}.${secondKey}`, propertyValue[secondKey]);\n            })\n\n            return;\n        }\n\n        if (key.startsWith(\"renderer\")) {\n            if(!this.app.viewer) return;\n\n            if ([\"renderer.antialias\",\"renderer\"].includes(key)) {\n                this.app.viewer.createEngine();\n            } else {\n                this.app.viewer.renderer.shadowMap.enabled = this.info.renderer.shadow.enabled;\n                this.app.viewer.renderer.shadowMap.type = this.info.renderer.shadow.type;\n                this.app.viewer.renderer.toneMapping = this.info.renderer.toneMapping;\n                this.app.viewer.renderer.toneMappingExposure = this.info.renderer.toneMappingExposure;\n                this.app.FPS = this.info.renderer.fps;\n\n                useDispatchSignal(\"rendererUpdated\");\n            }\n        } else if (key.startsWith(\"csm\")) {\n            switch (key) {\n                case \"csm.enabled\":\n                    this.app.csm.enabled = this.info.csm.enabled;\n                    break;\n                case \"csm.fade\":\n                case \"csm.maxFar\":\n                case \"csm.mode\":\n                    this.app.csm.updateProperty(secondProperty, this.info.csm[secondProperty]);\n                    break;\n                case \"csm.shadowMapSize\":\n                    this.app.csm.reset();\n                    break;\n                case \"csm.lightColor\":\n                    this.app.csm.updateLightColor(this.info.csm.lightColor);\n                    break;\n                case \"csm.lightIntensity\":\n                    this.app.csm.updateLightIntensity(this.info.csm.lightIntensity);\n                    break;\n                case \"csm.lightDirectionX\":\n                    this.app.csm.updateLightDirection('x',this.info.csm.lightDirectionX);\n                    break;\n                case \"csm.lightDirectionY\":\n                    this.app.csm.updateLightDirection('y',this.info.csm.lightDirectionY);\n                    break;\n                case \"csm.lightDirectionZ\":\n                    this.app.csm.updateLightDirection('z',this.info.csm.lightDirectionZ);\n                    break;\n            }\n        }else if(key.startsWith(\"effect\")){\n            if(key === \"effect.enabled\"){\n                useDispatchSignal(\"effectEnabledChange\",this.info.effect.enabled);\n            }else{\n                useDispatchSignal(\"effectPassConfigChange\",secondProperty,this.info.effect[secondProperty]);\n            }\n        }else if(key.startsWith(\"weather\")){\n            switch (key){\n                case \"weather.fog\":\n                    useDispatchSignal(\"sceneFogSettingsChanged\");\n                    break;\n                case \"weather.rain\":\n                    useDispatchSignal(\"sceneRainSettingsChanged\");\n                    break;\n                case \"weather.snow\":\n                    useDispatchSignal(\"sceneSnowSettingsChanged\");\n                    break;\n            }\n        }\n    }\n\n    /**\n     * 设置图纸src\n     */\n    setDrawingSrc(src: string) {\n        this.info.drawing.isCad = src.split(\".\").pop() === \"dxf\";\n        this.info.drawing.imgSrc = src;\n    }\n\n    /**\n     * 设置图纸图层显示隐藏\n     * @param layerName\n     * @param visible\n     */\n    setDrawingLayerVisible(layerName: string, visible: boolean) {\n        this.info.drawing.layers[layerName].visible = visible;\n    }\n\n    /**\n     * 设置图纸所有图层显示隐藏\n     * @param visible\n     */\n    setDrawingLayerAllVisible(visible: boolean) {\n        for (let key in this.info.drawing.layers) {\n            this.info.drawing.layers[key].visible = visible;\n        }\n    }\n\n    /**\n     * 图纸标记变更\n     * @param type\n     * @param rect\n     */\n    drawingMarkListChange(type: \"add\" | \"update\", rect: IAppProject.DrawingMark) {\n        switch (type) {\n            case \"add\":\n                this.info.drawing.markList.push(rect);\n                break;\n            case \"update\":\n                const index = this.info.drawing.markList.findIndex(item => item.modelUuid === rect.modelUuid);\n                if (index !== -1) {\n                    this.info.drawing.markList[index] = rect;\n                }\n                break;\n        }\n    }\n\n    /**\n     * 重置图纸配置,一般用于清除图纸状态\n     */\n    resetDrawing() {\n        this.info.drawing = defaultProjectInfo().drawing;\n    }\n\n    // /**\n    //  * 清空所有项目配置\n    //  */\n    // clear(){\n    //     const sceneInfo = {...this.info.sceneInfo};\n    //\n    //     this.info = defaultProjectInfo();\n    //\n    //     this.info.sceneInfo = sceneInfo;\n    // }\n\n    dispose() {\n        if (drawingMarkDoneFn) {\n            useRemoveSignal(\"drawingMarkDone\", drawingMarkDoneFn);\n            drawingMarkDoneFn = null;\n        }\n    }\n}\n\nexport {Project};"
  },
  {
    "path": "packages/sdk/lib/core/app/modules/Resource.ts",
    "content": "import * as THREE from 'three';\nimport Loader from \"@/core/loader/Loader\";\n\nclass Resource{\n    constructor() { }\n\n    loadURLTexture(url: string | THREE.Texture, onload: (tex: THREE.Texture) => void = ()=>{}, onerror: (err: any) => void = ()=>{}) {\n        if(url instanceof THREE.Texture) {\n            onload(url);\n            return url;\n        }\n\n        const extension = url.split(\".\").pop()?.toLowerCase() as string;\n        return Loader.loadUrlTexture(extension, url, onload,onerror);\n    }\n}\n\nexport {Resource};"
  },
  {
    "path": "packages/sdk/lib/core/app/modules/Selector.ts",
    "content": "import {useDispatchSignal, useAddSignal} from '@/hooks';\nimport { MeshLambertMaterial } from \"three\";\nimport App from \"@/core/app/App.ts\";\nimport Loader from \"@/core/loader/Loader.ts\";\nimport * as THREE from \"three\";\n\nclass Selector {\n\tpublic lastIsIFC = false; // 上一次选中的是否是IFC模型\n\tpublic lastIFCModelID :number | null = null; // 上一次选中的IFC模型ID\n\tprivate preselectMat = new MeshLambertMaterial({\n\t\ttransparent: true,\n\t\topacity: 0.6,\n\t\tcolor: 0xff88ff,\n\t\tdepthTest: false,\n\t});\n\n\tconstructor() {\n\t\t// signals\n\t\tuseAddSignal(\"intersectionsDetected\",async (intersects) => {\n\t\t\tif(this.lastIFCModelID !== null){\n\t\t\t\t// 移除之前IFC模型的高亮部分\n\t\t\t\tLoader._ifcLoader.ifcManager.removeSubset(this.lastIFCModelID, this.preselectMat);\n\t\t\t\tthis.lastIFCModelID = null;\n\t\t\t}\n\n\t\t\tif (intersects.length > 0) {\n\t\t\t\tconst object = intersects[0].object;\n\n\t\t\t\t// ---- 2023/8/10 添加IFC模型检测判断-----\n\t\t\t\tif(object.isIFC){\n\t\t\t\t\tconst index = intersects[0].faceIndex;\n\t\t\t\t\tconst geometry = object.geometry;\n\t\t\t\t\tconst ifc = Loader._ifcLoader.ifcManager;\n\t\t\t\t\tconst id = ifc.getExpressId(geometry, index);\n\n\t\t\t\t\tthis.lastIFCModelID = object.modelID;\n\t\t\t\t\tconst props = await ifc.getItemProperties(this.lastIFCModelID as number, id,true);\n\n\t\t\t\t\tuseDispatchSignal(\"IFCPropertiesVisible\",true,props)\n\t\t\t\t\tthis.lastIsIFC = true;\n\n\t\t\t\t\t// TODO 部件选中\n\t\t\t\t\t// 创建子集\n\t\t\t\t\tLoader._ifcLoader.ifcManager.createSubset({\n\t\t\t\t\t\tmodelID: this.lastIFCModelID as number,\n\t\t\t\t\t\tids: [id],\n\t\t\t\t\t\tmaterial: this.preselectMat,\n\t\t\t\t\t\tscene: App.scene,\n\t\t\t\t\t\tremovePrevious: true,\n\t\t\t\t\t});\n\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif(this.lastIsIFC){\n\t\t\t\t\tuseDispatchSignal(\"IFCPropertiesVisible\",false)\n\t\t\t\t\tthis.lastIsIFC = false;\n\t\t\t\t}\n\n\t\t\t\tif(object.proxy){\n          \t\t\tthis.select(object.proxy);\n\t\t\t\t} else {\n\t\t\t\t\tthis.select(object);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.select( null );\n\t\t\t}\n\t\t})\n\t}\n\n\tselect(object:THREE.Object3D | null) {\n\t\tif (App.selected === object) return;\n\n\t\tApp.selected = object;\n\n\t\tuseDispatchSignal(\"objectSelected\",object, App.locked);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\tdeselect() {\n\t\tthis.select(null);\n\t}\n}\n\nexport {Selector};\n"
  },
  {
    "path": "packages/sdk/lib/core/app/modules/Storage.ts",
    "content": "import localforage from 'localforage';\n\nclass Storage {\n    public dbs: { modelsDB: LocalForage,otherDB:LocalForage,configDB:LocalForage };\n\n    constructor() {\n        this.dbs = this.initDB();\n    }\n\n    initDB(){\n        return {\n            modelsDB: localforage.createInstance({\n                name: 'modelsDB',\n            }),\n            otherDB: localforage.createInstance({\n                name: 'otherDB'\n            }),\n            configDB: localforage.createInstance({\n                name: 'configDB'\n            })\n        }\n    }\n\n    setModel(key: string, value: any){\n        this.dbs.modelsDB.setItem(key, value);\n    }\n\n    async getModel(key: string){\n        return await this.dbs.modelsDB.getItem(key);\n    }\n\n    removeModel(key: string){\n        return this.dbs.modelsDB.removeItem(key);\n    }\n\n    setOtherItem(key: string, value: any){\n        this.dbs.otherDB.setItem(key, value);\n    }\n\n    async getOtherItem(key:string){\n        return await this.dbs.otherDB.getItem(key);\n    }\n    \n    removeOtherItem(key: string){\n        return this.dbs.otherDB.removeItem(key);\n    }\n\n    setConfigItem(key: string, value: any){\n        return this.dbs.configDB.setItem(key, value);\n    }\n\n    async getConfigItem(key:string){\n        return await this.dbs.configDB.getItem(key);\n    }\n\n    removeConfigItem(key: string){\n        return this.dbs.configDB.removeItem(key);\n    }\n}\n\nexport {Storage};"
  },
  {
    "path": "packages/sdk/lib/core/app/modules/index.ts",
    "content": "export {Config} from \"./Config\";\nexport {CSM} from \"./CSM\";\nexport {History} from \"./History\";\nexport {Project,defaultProjectInfo} from \"./Project\";\nexport {Resource} from \"./Resource\";\nexport {Selector} from \"./Selector\";\nexport {Storage} from \"./Storage\";"
  },
  {
    "path": "packages/sdk/lib/core/built-in/assets/BasicObject3D.ts",
    "content": "import * as THREE from 'three';\nimport { TeapotGeometry } from '@/core/geometries/TeapotGeometry.js';\nimport App from \"@/core/app/App\";\n\n//组\nexport function Group() {\n    const group = new THREE.Group();\n    group.name = 'Group';\n\n    return group;\n}\n\n//正方体\nexport function Box() {\n    const geometry = new THREE.BoxGeometry(1, 1, 1, 1, 1, 1);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Box';\n\n    return mesh;\n}\n\n//胶囊\nexport function Capsule() {\n    const geometry = new THREE.CapsuleGeometry(1, 1, 4, 8);\n    const material = new THREE.MeshStandardMaterial();\n    const mesh = new THREE.Mesh(geometry, material);\n    mesh.name = 'Capsule';\n\n    return mesh;\n}\n\n//圆\nexport function Circle() {\n    const geometry = new THREE.CircleGeometry(1, 8, 0, Math.PI * 2);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Circle';\n\n    return mesh;\n}\n\n//圆柱体\nexport function Cylinder() {\n    const geometry = new THREE.CylinderGeometry(1, 1, 1, 8, 1, false, 0, Math.PI * 2);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Cylinder';\n\n    return mesh;\n}\n\n//十二面体\nexport function Dodecahedron() {\n    const geometry = new THREE.DodecahedronGeometry(1, 0);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Dodecahedron';\n\n    return mesh;\n}\n\n//二十面体\nexport function Icosahedron() {\n    const geometry = new THREE.IcosahedronGeometry(1, 0);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Icosahedron';\n\n    return mesh;\n}\n\n//双锥\nexport function DoubleCone() {\n    const geometry = new THREE.LatheGeometry();\n    const mesh = new THREE.Mesh(\n        geometry,\n        new THREE.MeshStandardMaterial({side: THREE.DoubleSide})\n    );\n    mesh.name = 'DoubleCone';\n\n    return mesh;\n}\n\n//八面体\nexport function Octahedron() {\n    const geometry = new THREE.OctahedronGeometry(1, 0);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Octahedron';\n\n    return mesh;\n}\n\n//平面\nexport function Plane() {\n    const geometry = new THREE.PlaneGeometry(1, 1, 1, 1);\n    const material = new THREE.MeshStandardMaterial();\n    const mesh = new THREE.Mesh(geometry, material);\n    mesh.name = 'Plane';\n\n    return mesh;\n}\n\n//环\nexport function Ring() {\n    const geometry = new THREE.RingGeometry(0.5, 1, 8, 1, 0, Math.PI * 2);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Ring';\n\n    return mesh;\n}\n\n//球体\nexport function Sphere() {\n    const geometry = new THREE.SphereGeometry(1, 32, 16, 0, Math.PI * 2, 0, Math.PI);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Sphere';\n\n    return mesh;\n}\n\n//精灵\nexport function Sprite() {\n    const sprite = new THREE.Sprite(new THREE.SpriteMaterial());\n    sprite.name = 'Sprite';\n\n    return sprite;\n}\n\n//四面体\nexport function Tetrahedron() {\n    const geometry = new THREE.TetrahedronGeometry(1, 0);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Tetrahedron';\n\n    return mesh;\n}\n\n//圆环体\nexport function Torus() {\n    const geometry = new THREE.TorusGeometry(1, 0.4, 8, 6, Math.PI * 2);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Torus';\n\n    return mesh;\n}\n\n//环面扭结体\nexport function TorusKnot() {\n    const geometry = new THREE.TorusKnotGeometry(1, 0.4, 64, 8, 2, 3);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'TorusKnot';\n\n    return mesh;\n}\n\n//管\nexport function Tube() {\n    const path = new THREE.CatmullRomCurve3([\n        new THREE.Vector3(2, 2, -2),\n        new THREE.Vector3(2, -2, -0.6666666666666667),\n        new THREE.Vector3(-2, -2, 0.6666666666666667),\n        new THREE.Vector3(-2, 2, 2),\n    ]);\n\n    const geometry = new THREE.TubeGeometry(path, 64, 1, 8, false);\n    const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial());\n    mesh.name = 'Tube';\n\n    return mesh;\n}\n\n//茶壶\nexport function Teapot() {\n    let size = 2;\n    let segments = 10;\n    let bottom = true;\n    let lid = true;\n    let body = true;\n    let fitLid = false;\n    let blinn = 1;\n\n    let material = new THREE.MeshStandardMaterial();\n\n    // @ts-ignore\n    let geometry = new TeapotGeometry(size, segments, bottom, lid, body, fitLid, blinn);\n    let mesh = new THREE.Mesh(geometry, material);\n    mesh.name = 'Teapot';\n\n    return mesh;\n}\n\n//环境光\nexport function AmbientLight() {\n    const color = 0xffffff;\n\n    const light = new THREE.AmbientLight(color);\n    light.name = 'AmbientLight';\n\n    return light;\n}\n\n//平行光\nexport function DirectionalLight() {\n    const color = 0xffffff;\n    const intensity = 1;\n\n    const light = new THREE.DirectionalLight(color, intensity);\n    light.name = 'DirectionalLight';\n    light.target.name = 'DirectionalLight Target';\n\n    light.position.set(5, 10, 7.5);\n\n    return light;\n}\n\n//半球光\nexport function HemisphereLight() {\n    const skyColor = 0x00aaff;\n    const groundColor = 0xffaa00;\n    const intensity = 1;\n\n    const light = new THREE.HemisphereLight(skyColor, groundColor, intensity);\n    light.name = 'HemisphereLight';\n\n    light.position.set(0, 10, 0);\n\n    return light;\n}\n\n//点光源\nexport function PointLight() {\n    const color = 0xffffff;\n    const intensity = 1;\n    const distance = 0;\n\n    const light = new THREE.PointLight(color, intensity, distance);\n    light.name = 'PointLight';\n\n    return light;\n}\n\n//聚光灯\nexport function Spotlight() {\n    const color = 0xffffff;\n    const intensity = 1;\n    const distance = 0;\n    const angle = Math.PI * 0.1;\n    const penumbra = 0;\n\n    const light = new THREE.SpotLight(color, intensity, distance, angle, penumbra);\n    light.name = 'SpotLight';\n    light.target.name = 'SpotLight Target';\n\n    light.position.set(5, 10, 7.5);\n\n    return light;\n}\n\n/*******************************************相机********************************************************/\n\n//正交相机\nexport function OrthographicCamera() {\n    const aspect = App.camera.aspect;\n    const camera = new THREE.OrthographicCamera(-aspect, aspect);\n    camera.name = 'OrthographicCamera';\n\n    return camera;\n}\n\n//透视相机\nexport function PerspectiveCamera() {\n    const camera = new THREE.PerspectiveCamera();\n    camera.name = 'PerspectiveCamera';\n\n    return camera;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/built-in/assets/Particles.ts",
    "content": "import * as THREE from 'three';\nimport * as _Particle from '@/core/libs/three-nebula';\n\nexport class Particles {\n  static DotImageUrl = new URL(import.meta.env.BASE_URL + 'resource/textures/dot.png', import.meta.url).href;\n  static SmokeImageUrl = new URL(import.meta.env.BASE_URL + 'resource/textures/smoke.png', import.meta.url).href;\n\n  constructor() { }\n\n  // 烟雾\n  static smoke(initPosition = { x: 0, y: 0, z: 0 }) {\n    const map = new THREE.TextureLoader().load(Particles.DotImageUrl);\n    const material = new THREE.SpriteMaterial({\n      map: map,\n      color: 0x000000,\n      // fog: true,\n    });\n    const body = new THREE.Sprite(material);\n\n    const emitter = new _Particle.Emitter();\n    emitter.damping = 0.008;\n\n    const position = new _Particle.Position();\n    position.addZone(new _Particle.PointZone(0, 0, 0));\n\n    emitter\n      .setRate(\n        new _Particle.Rate(\n          new _Particle.Span(20, 40), // 发射粒子的数量范围\n          new _Particle.Span(0.01, 0.02) //每次粒子发射之间的时间间隔\n        )\n      ) // 设置粒子发射的速率\n      .setInitializers([\n        new _Particle.Mass(30, 10, true, true),  // 设置初始化粒子的质量属性\n        new _Particle.Life(1, 3, false, true), // 设置初始化粒子的生命值属性\n        new _Particle.Body(body), // 设置初始化粒子的主体属性\n        new _Particle.Radius(1, 1, true, true),  // 设置初始化粒子的半径属性\n        new _Particle.Rotation(0, 0, 0, true, true),  // 设置初始化粒子的旋转属性\n        position,\n        new _Particle.VectorVelocity(new _Particle.Vector3D(1, 2, 1), 60, true), // 设置初始化粒子的速度属性\n      ]) //设置发射器的粒子初始化器\n      .setBehaviours([\n        new _Particle.Alpha(1, 0, Infinity, _Particle.ease.easeOutCubic, true), // 对粒子应用阿尔法转换效果的行为\n        new _Particle.Color(\"#000000\", \"#0E0E0E\", Infinity, _Particle.ease.easeOutCubic, true), // 一种随时间改变粒子颜色的行为\n        //new _Particle.Scale(1, 0.5, Infinity, _Particle.ease.easeLinear, true), // 缩放粒子的行为\n        new _Particle.Force(0, 2, 0, Infinity, _Particle.ease.easeLinear, true), // 迫使粒子沿特定轴线运动的行为\n        //new _Particle.Rotate(45, 0, 0, Infinity, _Particle.ease.easeLinear, true), // 旋转粒子的行为\n        new _Particle.RandomDrift(1, 2, 1, 0.7, Infinity, _Particle.ease.easeLinear), // 导致粒子漂移到三维空间随机坐标的行为\n        //new _Particle.Spring(1, 5, 0, 0.01, 1, Infinity, _Particle.ease.easeLinear, true) // 使粒子弹起的行为\n      ])\n      .setPosition({ ...initPosition })\n      .setRotation({\n        x: 0,\n        y: 0,\n        z: 0,\n      })\n      .emit() // 可以接收两个参数来设置发射器发射粒子的总次数以及发射器的寿命。同时初始化发射器速率。这样发射器就能发射粒子。\n      .setTotalEmitTimes(Infinity) // 设置发射器的总发射次数\n      .setLife(Infinity) // 设置发射器的寿命(毫秒)\n\n    return {emitter,body};\n  }\n\n  // 火焰\n  static fire(initPosition = { x: 0, y: 0, z: 0 }) {\n    const map = new THREE.TextureLoader().load(Particles.SmokeImageUrl);\n    const material = new THREE.SpriteMaterial({\n      map: map,\n      color: 0xffffff,\n      // fog: true,\n    });\n    const body = new THREE.Sprite(material);\n\n    const emitter = new _Particle.Emitter();\n    emitter.damping = 0.02;\n\n    const position = new _Particle.Position();\n    position.addZone(new _Particle.PointZone(0, 0, 0));\n\n    emitter\n      .setRate(\n        new _Particle.Rate(\n          new _Particle.Span(20, 30),\n          new _Particle.Span(0.01, 0.02)\n        )\n      ) // 设置粒子发射的速率\n      .setInitializers([\n        new _Particle.Mass(30, 10, true, true),\n        new _Particle.Life(1, 3, false, true),\n        new _Particle.Body(body),\n        new _Particle.Radius(1, 1, false, true),\n        new _Particle.Rotation(0, 0, 0, true, true),\n        position,\n        new _Particle.RadialVelocity(4, new _Particle.Vector3D(0, 1, 0), 45, true),\n      ]) //设置发射器的粒子初始化器\n      .setBehaviours([\n        new _Particle.Alpha(1, 0, Infinity, _Particle.ease.easeOutQuad, true),\n        new _Particle.Color(\"#FF2D08\", \"#560000\", Infinity, _Particle.ease.easeOutBack, true),\n        new _Particle.Force(0, 2, 0, Infinity, _Particle.ease.easeLinear, true),\n        new _Particle.Rotate(0, 0, 5, Infinity, _Particle.ease.easeLinear, true),\n      ])\n      .setPosition({ ...initPosition })\n      .setRotation({\n        x: 0,\n        y: 0,\n        z: 0,\n      })\n      .emit()\n      .setTotalEmitTimes(Infinity)\n      .setLife(Infinity)\n\n    return {emitter,body};\n  }\n\n  // 火线\n  static fireLine(initPosition = { x: 0, y: 0, z: 0 }) {\n    const map = new THREE.TextureLoader().load(Particles.SmokeImageUrl);\n    const material = new THREE.SpriteMaterial({\n      map: map,\n      color: 0xffffff,\n      // fog: true,\n    });\n    const body = new THREE.Sprite(material);\n\n    const emitter = new _Particle.Emitter();\n    emitter.damping = 0.02;\n\n    const position = new _Particle.Position();\n    position.addZone(\n      new _Particle.LineZone(\n        5,\n        0,\n        0,\n        -5,\n        0,\n        0,\n      )\n    );\n\n    emitter\n      .setRate(\n        new _Particle.Rate(\n          new _Particle.Span(30, 50),\n          new _Particle.Span(0.01, 0.02)\n        )\n      ) // 设置粒子发射的速率\n      .setInitializers([\n        new _Particle.Mass(60, 50, false, true),\n        new _Particle.Life(1, 3, false, true),\n        new _Particle.Body(body),\n        new _Particle.Radius(1, 1, false, true),\n        new _Particle.Rotation(0, 0, 0, true, true),\n        position,\n      ]) //设置发射器的粒子初始化器\n      .setBehaviours([\n        new _Particle.Alpha(1, 0, Infinity, _Particle.ease.easeOutQuad, true),\n        new _Particle.Color(\"#FF2D08\", \"#560000\", Infinity, _Particle.ease.easeOutBack, true),\n        new _Particle.Force(0, 2, 0, Infinity, _Particle.ease.easeLinear, true),\n      ])\n      .setPosition({ ...initPosition })\n      .setRotation({\n        x: 0,\n        y: 0,\n        z: 0,\n      })\n      .emit()\n      .setTotalEmitTimes(Infinity)\n      .setLife(Infinity)\n\n    return {emitter,body};\n  }\n\n  // 萤火虫\n  static firefly(initPosition = { x: 0, y: 0, z: 0 }) {\n    const map = new THREE.TextureLoader().load(Particles.DotImageUrl);\n    const material = new THREE.SpriteMaterial({\n      map: map,\n      color: 0x000000,\n      // fog: true,\n    });\n    const body = new THREE.Sprite(material);\n\n    const emitter = new _Particle.Emitter();\n    emitter.damping = 1;\n\n    const position = new _Particle.Position();\n    position.addZone(\n      new _Particle.BoxZone(\n        0,\n        0,\n        0,\n        100,\n        100,\n        100,\n      )\n    );\n\n    emitter\n      .setRate(\n        new _Particle.Rate(\n          new _Particle.Span(10, 20),\n          new _Particle.Span(0.01, 0.02)\n        )\n      )\n      .setInitializers([\n        new _Particle.Life(1, 3, false, true),\n        new _Particle.Body(body),\n        new _Particle.Radius(0.5, 0.5, false, true),\n        position,\n      ])\n      .setBehaviours([\n        new _Particle.Alpha(1, 0.1, Infinity, _Particle.ease.easeOutQuad, true),\n        new _Particle.Color(\"#3EF506\", \"#E6D200\", Infinity, _Particle.ease.easeLinear, true),\n        new _Particle.RandomDrift(1, 2, 1, 0.7, Infinity, _Particle.ease.easeLinear),\n      ])\n      .setPosition({ ...initPosition })\n      .setRotation({\n        x: 0,\n        y: 0,\n        z: 0,\n      })\n      .emit()\n      .setTotalEmitTimes(Infinity)\n      .setLife(Infinity)\n\n    return {emitter,body};\n  }\n\n  // 烟花\n  static fireworks(initPosition = { x: 0, y: 0, z: 0 }) {\n    const map = new THREE.TextureLoader().load(Particles.DotImageUrl);\n    const material = new THREE.SpriteMaterial({\n      map: map,\n      color: 0xff0000,\n      blending: THREE.AdditiveBlending,\n      // fog: true,\n    });\n    const body = new THREE.Sprite(material);\n\n    const emitter = new _Particle.Emitter();\n\n    const position = new _Particle.Position();\n    position.addZone(new _Particle.SphereZone(0, 0, 0, 1));\n\n    emitter\n      .setRate(\n        new _Particle.Rate(\n          new _Particle.Span(30, 50),\n          new _Particle.Span(0.05, 0.1) \n        )\n      ) \n      .setInitializers([\n        new _Particle.Mass(1,1, false, true),\n        new _Particle.Life(1, 3, false, true),\n        new _Particle.Body(body),\n        new _Particle.Radius(1, 1, false, true), \n        position,\n        new _Particle.RadialVelocity(new _Particle.Span(50, 80), new _Particle.Vector3D(0, 1, 0), 30),\n      ]) \n      .setBehaviours([\n        new _Particle.Scale(new _Particle.Span(2, 2.5), 0, Infinity, _Particle.ease.easeLinear, true), \n        new _Particle.Color('#FF0026', '#ffff11', Infinity, _Particle.ease.easeOutSine, true),\n        new _Particle.Force(0, -0.6, 0, Infinity, _Particle.ease.easeLinear, true), \n        new _Particle.RandomDrift(1, 1, 1, 0.5, Infinity, _Particle.ease.easeLinear),\n      ])\n      .setPosition({ ...initPosition })\n      .setRotation({\n        x: 0,\n        y: 0,\n        z: 0,\n      })\n      .emit()\n      .setTotalEmitTimes(Infinity) \n      .setLife(Infinity)\n\n    return {emitter,body};\n  }\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/AddObjectCommand.ts",
    "content": "import { Command } from './Command';\nimport { ObjectLoader } from '../loader/ObjectLoader';\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @constructor\n */\nclass AddObjectCommand extends Command {\n\tpublic object;\n\n\tconstructor( object ) {\n\t\tsuper();\n\n\t\tthis.type = 'AddObjectCommand';\n\t\tthis.object = object;\n\t\tif ( object !== undefined ) {\n\t\t\tthis.name = `Add object`;\n\t\t}\n\t}\n\n\texecute() {\n\t\tApp.addObject(this.object);\n\t\tApp.select(this.object);\n\t}\n\n\tundo() {\n\t\tApp.removeObject( this.object );\n\t\tApp.deselect();\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\t\toutput.object = this.object.toJSON();\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\t\tthis.object = App.getObjectByUuid( json.object.object.uuid );\n\n\t\tif ( this.object === undefined ) {\n\t\t\tconst loader = new ObjectLoader();\n\t\t\tthis.object = loader.parse( json.object );\n\t\t}\n\t}\n}\n\nexport { AddObjectCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/AddScriptCommand.ts",
    "content": "import {Object3D} from \"three\";\nimport { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param script javascript object\n * @constructor\n */\nclass AddScriptCommand extends Command {\n\tprivate object: Object3D;\n\tprivate script: any;\n\n\tconstructor(object:Object3D, script) {\n\t\tsuper();\n\n\t\tthis.type = 'AddScriptCommand';\n\t\tthis.name = 'Add script';\n\n\t\tthis.object = object;\n\t\tthis.script = script;\n\t}\n\n\texecute() {\n\t\tif (App.scripts[this.object.uuid] === undefined) {\n\t\t\tApp.scripts[this.object.uuid] = [];\n\t\t}\n\n\t\tApp.scripts[this.object.uuid].push(this.script);\n\n\t\tuseDispatchSignal(\"scriptAdded\", this.object,this.script);\n\t}\n\n\tundo() {\n\t\tif (App.scripts[ this.object.uuid ] === undefined ) return;\n\n\t\tconst index = App.scripts[ this.object.uuid ].indexOf( this.script );\n\n\t\tif (index !== -1) {\n\t\t\tApp.scripts[ this.object.uuid ].splice( index, 1 );\n\t\t}\n\n\t\tuseDispatchSignal(\"scriptRemoved\", this.object,this.script);\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.script = this.script;\n\n\t\treturn output;\n\t}\n\n\tfromJSON(json) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.script = json.script;\n\t\tthis.object = App.getObjectByUuid(json.objectUuid) as Object3D;\n\t}\n}\n\nexport { AddScriptCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/Command.ts",
    "content": "/**\n * @constructor\n */\nclass Command {\n\tprotected id:number;\n\tprotected inMemory:boolean;\n\tpublic updatable:boolean;\n\tprotected type:string;\n\tprotected name:string;\n\n\tconstructor() {\n\t\tthis.id = - 1;\n\t\tthis.inMemory = false;\n\t\tthis.updatable = false;\n\t\tthis.type = '';\n\t\tthis.name = '';\n\t}\n\n\ttoJSON() {\n\t\tconst output:any = {};\n\t\toutput.type = this.type;\n\t\toutput.id = this.id;\n\t\toutput.name = this.name;\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tthis.inMemory = true;\n\t\tthis.type = json.type;\n\t\tthis.id = json.id;\n\t\tthis.name = json.name;\n\t}\n}\n\nexport { Command };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/Commands.ts",
    "content": "export { AddObjectCommand } from './AddObjectCommand';\nexport { AddScriptCommand } from './AddScriptCommand';\nexport { MoveObjectCommand } from './MoveObjectCommand';\nexport { RemoveObjectCommand } from './RemoveObjectCommand';\nexport { RemoveScriptCommand } from './RemoveScriptCommand';\nexport { SetColorCommand } from './SetColorCommand';\nexport { SetGeometryCommand } from './SetGeometryCommand';\nexport { SetGeometryValueCommand } from './SetGeometryValueCommand';\nexport { SetMaterialColorCommand } from './SetMaterialColorCommand';\nexport { SetMaterialCommand } from './SetMaterialCommand';\nexport { SetMaterialMapCommand } from './SetMaterialMapCommand';\nexport { SetMaterialRangeCommand } from './SetMaterialRangeCommand';\nexport { SetMaterialValueCommand } from './SetMaterialValueCommand';\nexport { SetMaterialVectorCommand } from './SetMaterialVectorCommand';\nexport { SetPositionCommand } from './SetPositionCommand';\nexport { SetRotationCommand } from './SetRotationCommand';\nexport { SetScaleCommand } from './SetScaleCommand';\nexport { SetSceneCommand } from './SetSceneCommand';\nexport { SetScriptValueCommand } from './SetScriptValueCommand';\nexport { SetUuidCommand } from './SetUuidCommand';\nexport { SetValueCommand } from './SetValueCommand';\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/MoveObjectCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param newParent THREE.Object3D\n * @param newBefore THREE.Object3D\n * @constructor\n */\nclass MoveObjectCommand extends Command {\n    public object;\n    public oldParent;\n    public oldIndex;\n    public newParent;\n    public newIndex;\n    public newBefore;\n\n\tconstructor(object, newParent, newBefore ) {\n\t\tsuper();\n\n\t\tthis.type = 'MoveObjectCommand';\n\t\tthis.name = 'Move object';\n\n\t\tthis.object = object;\n\t\tthis.oldParent = ( object !== undefined ) ? object.parent : undefined;\n\t\tthis.oldIndex = ( this.oldParent !== undefined ) ? this.oldParent.children.indexOf( this.object ) : undefined;\n\t\tthis.newParent = newParent;\n\n\t\tif ( newBefore !== undefined ) {\n\t\t\tthis.newIndex = ( newParent !== undefined ) ? newParent.children.indexOf( newBefore ) : undefined;\n\t\t} else {\n\t\t\tthis.newIndex = ( newParent !== undefined ) ? newParent.children.length : undefined;\n\t\t}\n\n\t\tif ( this.oldParent === this.newParent && this.newIndex > this.oldIndex ) {\n\t\t\tthis.newIndex--;\n\t\t}\n\n\t\tthis.newBefore = newBefore;\n\t}\n\n\texecute() {\n\t\tthis.oldParent.remove(this.object);\n\n        /** 放置到新组下时不改变世界坐标 **/\n        // this.newParent.updateWorldMatrix(true, false);\n        // const _m1 = new Matrix4();\n        // _m1.copy(this.newParent.matrixWorld).invert();\n        // if (this.object.parent !== null) {\n        //     this.object.parent.updateWorldMatrix( true, false );\n        //     _m1.multiply( this.object.parent.matrixWorld );\n        // }\n        // this.object.applyMatrix4( _m1 );\n        /** 放置到新组下时不改变世界坐标 End **/\n\n        const children = this.newParent.children;\n\t\tchildren.splice( this.newIndex, 0, this.object );\n\t\tthis.object.parent = this.newParent;\n\n        /** 放置到新组下时不改变世界坐标 **/\n        // this.object.updateWorldMatrix( false, true );\n        /** 放置到新组下时不改变世界坐标 End **/\n\n\t\tthis.object.dispatchEvent({ type: 'added' });\n        useDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\tundo() {\n\t\tthis.newParent.remove(this.object);\n\n        /** 撤销时不改变世界坐标 **/\n        // this.oldParent.updateWorldMatrix(true, false);\n        // const _m1 = new Matrix4();\n        // _m1.copy(this.oldParent.matrixWorld).invert();\n        // if (this.object.parent !== null) {\n        //     this.object.parent.updateWorldMatrix(true, false);\n        //     _m1.multiply( this.object.parent.matrixWorld );\n        // }\n        // this.object.applyMatrix4(_m1);\n        /** 撤销时不改变世界坐标 End **/\n\n\t\tconst children = this.oldParent.children;\n\t\tchildren.splice( this.oldIndex, 0, this.object );\n\t\tthis.object.parent = this.oldParent;\n\n        /** 撤销时不改变世界坐标 **/\n        // this.object.updateWorldMatrix( false, true );\n        /** 撤销时不改变世界坐标 End **/\n\n\t\tthis.object.dispatchEvent( { type: 'added' } );\n        useDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.newParentUuid = this.newParent.uuid;\n\t\toutput.oldParentUuid = this.oldParent.uuid;\n\t\toutput.newIndex = this.newIndex;\n\t\toutput.oldIndex = this.oldIndex;\n\n\t\treturn output;\n\t}\n\n\tfromJSON(json) {\n\t\tsuper.fromJSON(json);\n\n\t\tthis.object = App.getObjectByUuid(json.objectUuid);\n\t\tthis.oldParent = App.getObjectByUuid(json.oldParentUuid);\n\t\tif (this.oldParent === undefined) {\n\t\t\tthis.oldParent = App.scene;\n\t\t}\n\n\t\tthis.newParent = App.getObjectByUuid(json.newParentUuid);\n\n\t\tif (this.newParent === undefined) {\n\t\t\tthis.newParent = App.scene;\n\t\t}\n\n\t\tthis.newIndex = json.newIndex;\n\t\tthis.oldIndex = json.oldIndex;\n\t}\n}\n\nexport { MoveObjectCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/RemoveObjectCommand.ts",
    "content": "import { Command } from './Command';\nimport { ObjectLoader } from '../loader/ObjectLoader';\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @constructor\n */\nclass RemoveObjectCommand extends Command {\n\tpublic object;\n\tpublic parent;\n\tpublic index;\n\n\tconstructor( object ) {\n\t\tsuper();\n\n\t\tthis.type = 'RemoveObjectCommand';\n\t\tthis.name = 'Remove object';\n\n\t\tthis.object = object;\n\t\tthis.parent = ( object !== undefined ) ? object.parent : undefined;\n\t\tif ( this.parent !== undefined ) {\n\t\t\tthis.index = this.parent.children.indexOf( this.object );\n\t\t}\n\t}\n\n\texecute() {\n\t\tApp.removeObject( this.object );\n\t\tApp.deselect();\n\t}\n\n\tundo() {\n\t\tApp.addObject( this.object, this.parent, this.index );\n\t\tApp.select( this.object );\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\t\toutput.object = this.object.toJSON();\n\t\toutput.index = this.index;\n\t\toutput.parentUuid = this.parent.uuid;\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.parent = App.getObjectByUuid( json.parentUuid );\n\t\tif ( this.parent === undefined ) {\n\t\t\tthis.parent = App.scene;\n\t\t}\n\n\t\tthis.index = json.index;\n\t\tthis.object = App.getObjectByUuid( json.object.object.uuid );\n\n\t\tif ( this.object === undefined ) {\n\t\t\tconst loader = new ObjectLoader();\n\t\t\tthis.object = loader.parse( json.object );\n\t\t}\n\t}\n}\n\nexport { RemoveObjectCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/RemoveScriptCommand.ts",
    "content": "import {Object3D} from \"three\";\nimport { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param script javascript object\n * @constructor\n */\nclass RemoveScriptCommand extends Command {\n\tprivate object: Object3D;\n\tprivate script: any;\n\tprivate index: number = -1;\n\n\tconstructor(object:Object3D, script) {\n\t\tsuper();\n\n\t\tthis.type = 'RemoveScriptCommand';\n\t\tthis.name = 'Remove script';\n\n\t\tthis.object = object;\n\t\tthis.script = script;\n\t\tif (this.object && this.script) {\n\t\t\tthis.index = App.scripts[this.object.uuid].findIndex((i) => i.name === this.script.name);\n\t\t}\n\t}\n\n\texecute() {\n\t\tif (App.scripts[ this.object.uuid ] === undefined) return;\n\n\t\tif (this.index !== -1) {\n\t\t\tApp.scripts[this.object.uuid].splice( this.index, 1 );\n\t\t}\n\n\t\tuseDispatchSignal(\"scriptRemoved\",this.object,this.script);\n\t}\n\n\tundo() {\n\t\tif (App.scripts[ this.object.uuid ] === undefined) {\n\t\t\tApp.scripts[ this.object.uuid ] = [];\n\t\t}\n\n\t\tApp.scripts[this.object.uuid].splice(this.index, 0, this.script);\n\n\t\tuseDispatchSignal(\"scriptAdded\",this.object,this.script);\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.script = this.script;\n\t\toutput.index = this.index;\n\n\t\treturn output;\n\t}\n\n\tfromJSON(json) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.script = json.script;\n\t\tthis.index = json.index;\n\t\tthis.object = App.getObjectByUuid(json.objectUuid) as Object3D;\n\t}\n}\n\nexport { RemoveScriptCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetColorCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks/useSignal\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param attributeName string\n * @param newValue integer representing a hex color value\n * @constructor\n */\nclass SetColorCommand extends Command {\n\tpublic object;\n\tpublic attributeName;\n\tpublic oldValue;\n\tpublic newValue;\n\n\tconstructor(object, attributeName, newValue ) {\n\t\tsuper();\n\t\tthis.type = 'SetColorCommand';\n\t\tthis.name = `Set ${attributeName}`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\t\tthis.attributeName = attributeName;\n\t\tthis.oldValue = (object !== undefined) ? this.object[this.attributeName].getStyle() : undefined;\n\t\tthis.newValue = newValue;\n\t}\n\n\texecute() {\n\t\tthis.object[ this.attributeName ].setStyle(this.newValue);\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t}\n\n\tundo() {\n\t\tthis.object[ this.attributeName ].setStyle(this.oldValue);\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t}\n\n\tupdate( cmd ) {\n\t\tthis.newValue = cmd.newValue;\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.attributeName = this.attributeName;\n\t\toutput.oldValue = this.oldValue;\n\t\toutput.newValue = this.newValue;\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.attributeName = json.attributeName;\n\t\tthis.oldValue = json.oldValue;\n\t\tthis.newValue = json.newValue;\n\t}\n\n}\n\nexport { SetColorCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetGeometryCommand.ts",
    "content": "import { Command } from './Command';\nimport { BufferGeometry,Mesh, InstancedBufferGeometry} from 'three';\nimport { ObjectLoader } from '../loader/ObjectLoader';\nimport {useDispatchSignal} from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param editor Editor\n * @param object THREE.Object3D\n * @param newGeometry THREE.Geometry\n * @constructor\n */\nclass SetGeometryCommand extends Command {\n\tobject:Mesh;\n\tprivate oldGeometry: BufferGeometry | InstancedBufferGeometry | undefined;\n\tprivate newGeometry: BufferGeometry | InstancedBufferGeometry\n\n\tconstructor(object:Mesh, newGeometry:BufferGeometry) {\n\t\tsuper();\n\n\t\tthis.type = 'SetGeometryCommand';\n\t\tthis.name = 'Set geometry';\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\t\tthis.oldGeometry = ( object !== undefined ) ? object.geometry : undefined;\n\t\tthis.newGeometry = newGeometry;\n\n\t}\n\n\texecute() {\n\t\tthis.object.geometry.dispose();\n\t\tthis.object.geometry = this.newGeometry;\n\t\tthis.object.geometry.computeBoundingSphere();\n\n\t\tuseDispatchSignal(\"geometryChanged\",this.object);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\tundo() {\n\t\tthis.object.geometry.dispose();\n\t\tthis.oldGeometry && (this.object.geometry = this.oldGeometry);\n\t\tthis.object.geometry.computeBoundingSphere();\n\n\t\tuseDispatchSignal(\"geometryChanged\",this.object);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\tupdate(cmd: { newGeometry: BufferGeometry | InstancedBufferGeometry; }) {\n\t\tthis.newGeometry = cmd.newGeometry;\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.oldGeometry = this.object.geometry.toJSON();\n\t\toutput.newGeometry = this.newGeometry.toJSON();\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid ) as Mesh;\n\t\tthis.oldGeometry = parseGeometry( json.oldGeometry );\n\t\tthis.newGeometry = parseGeometry( json.newGeometry );\n\n\t\tfunction parseGeometry(data) {\n\t\t\tconst loader = new ObjectLoader();\n\t\t\treturn loader.parseGeometries( [ data ] )[ data.uuid ];\n\t\t}\n\t}\n}\n\nexport { SetGeometryCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetGeometryValueCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks/useSignal\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param attributeName string\n * @param newValue number, string, boolean or object\n * @constructor\n */\nclass SetGeometryValueCommand extends Command {\n\tpublic object;\n\tpublic attributeName;\n\tpublic oldValue;\n\tpublic newValue;\n\n\tconstructor(object, attributeName, newValue ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetGeometryValueCommand';\n\t\tthis.name = `Set geometry.${attributeName}`;\n\n\t\tthis.object = object;\n\t\tthis.attributeName = attributeName;\n\t\tthis.oldValue = ( object !== undefined ) ? object.geometry[ attributeName ] : undefined;\n\t\tthis.newValue = newValue;\n\n\t}\n\n\texecute() {\n\t\tthis.object.geometry[ this.attributeName ] = this.newValue;\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"geometryChanged\",this.object);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\tundo() {\n\t\tthis.object.geometry[ this.attributeName ] = this.oldValue;\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"geometryChanged\",this.object);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.attributeName = this.attributeName;\n\t\toutput.oldValue = this.oldValue;\n\t\toutput.newValue = this.newValue;\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.attributeName = json.attributeName;\n\t\tthis.oldValue = json.oldValue;\n\t\tthis.newValue = json.newValue;\n\t}\n}\n\nexport { SetGeometryValueCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetMaterialColorCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param attributeName string\n * @param newValue integer representing a hex color value\n * @constructor\n */\nclass SetMaterialColorCommand extends Command {\n\tpublic object;\n\tpublic material;\n\tpublic oldValue;\n\tpublic newValue;\n\tpublic attributeName;\n\n\tconstructor(object, attributeName, newValue, materialSlot ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetMaterialColorCommand';\n\t\tthis.name = `Set material.${attributeName}`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\t\tthis.material = (this.object !== undefined) ? App.getObjectMaterial(object, materialSlot) : undefined;\n\n\t\tthis.oldValue = (this.material !== undefined) ? this.material[attributeName].getHex() : undefined;\n\t\tthis.newValue = newValue;\n\n\t\tthis.attributeName = attributeName;\n\t}\n\n\texecute() {\n\t\tthis.material[ this.attributeName ].setHex( this.newValue );\n\t\tuseDispatchSignal(\"materialChanged\",this.material);\n\t}\n\n\tundo() {\n\t\tthis.material[ this.attributeName ].setHex( this.oldValue );\n\t\tuseDispatchSignal(\"materialChanged\",this.material);\n\t}\n\n\tupdate( cmd ) {\n\t\tthis.newValue = cmd.newValue;\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.attributeName = this.attributeName;\n\t\toutput.oldValue = this.oldValue;\n\t\toutput.newValue = this.newValue;\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.attributeName = json.attributeName;\n\t\tthis.oldValue = json.oldValue;\n\t\tthis.newValue = json.newValue;\n\t}\n}\n\nexport { SetMaterialColorCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetMaterialCommand.ts",
    "content": "import { Command } from './Command';\nimport { ObjectLoader } from '../loader/ObjectLoader';\nimport {useDispatchSignal} from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param newMaterial THREE.Material\n * @constructor\n */\nclass SetMaterialCommand extends Command {\n\tprivate object;\n\tprivate materialSlot;\n\tprivate oldMaterial;\n\tprivate newMaterial;\n\n\tconstructor(object, newMaterial, materialSlot? ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetMaterialCommand';\n\t\tthis.name = 'Set new material';\n\n\t\tthis.object = object;\n\t\tthis.materialSlot = materialSlot;\n\n\t\tthis.oldMaterial = App.getObjectMaterial( object, materialSlot );\n\t\tthis.newMaterial = newMaterial;\n\t}\n\n\texecute() {\n\t\tApp.setObjectMaterial( this.object, this.materialSlot, this.newMaterial );\n\t\tuseDispatchSignal(\"materialChanged\",this.newMaterial);\n\t}\n\n\tundo() {\n\t\tApp.setObjectMaterial( this.object, this.materialSlot, this.oldMaterial );\n\t\tuseDispatchSignal(\"materialChanged\",this.oldMaterial);\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.oldMaterial = this.oldMaterial.toJSON();\n\t\toutput.newMaterial = this.newMaterial.toJSON();\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.oldMaterial = parseMaterial( json.oldMaterial );\n\t\tthis.newMaterial = parseMaterial( json.newMaterial );\n\n\t\tfunction parseMaterial( json ) {\n\t\t\tconst loader = new ObjectLoader();\n\t\t\t//@ts-ignore\n\t\t\tconst images = loader.parseImages( json.images );\n\t\t\tconst textures = loader.parseTextures( json.textures, images );\n\t\t\tconst materials = loader.parseMaterials( [ json ], textures );\n\t\t\treturn materials[ json.uuid ];\n\t\t}\n\t}\n}\n\nexport { SetMaterialCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetMaterialMapCommand.ts",
    "content": "import { Command } from './Command';\nimport { ObjectLoader } from '../loader/ObjectLoader';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param mapName string\n * @param newMap THREE.Texture\n * @constructor\n */\nclass SetMaterialMapCommand extends Command {\n\tpublic object;\n\tprivate material;\n\tprivate oldMap;\n\tprivate newMap;\n\tprivate mapName;\n\n\tconstructor( object, mapName, newMap, materialSlot ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetMaterialMapCommand';\n\t\tthis.name = `Set material.${mapName}`;\n\n\t\tthis.object = object;\n\t\tthis.material = App.getObjectMaterial( object, materialSlot );\n\n\t\tthis.oldMap = ( object !== undefined ) ? this.material[ mapName ] : undefined;\n\t\tthis.newMap = newMap;\n\n\t\tthis.mapName = mapName;\n\t}\n\n\texecute() {\n\t\tif ( this.oldMap !== null && this.oldMap !== undefined ) this.oldMap.dispose();\n\n\t\tthis.material[ this.mapName ] = this.newMap;\n\t\tthis.material.needsUpdate = true;\n\t\t\n\t\tuseDispatchSignal(\"materialChanged\",this.material)\n\t}\n\n\tundo() {\n\t\tthis.material[ this.mapName ] = this.oldMap;\n\t\tthis.material.needsUpdate = true;\n\n\t\tuseDispatchSignal(\"materialChanged\",this.material)\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.mapName = this.mapName;\n\t\toutput.newMap = serializeMap( this.newMap );\n\t\toutput.oldMap = serializeMap( this.oldMap );\n\n\t\treturn output;\n\n\t\t// serializes a map (THREE.Texture)\n\n\t\tfunction serializeMap( map ) {\n\n\t\t\tif ( map === null || map === undefined ) return null;\n\n\t\t\tconst meta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t\tconst json = map.toJSON( meta );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tif ( images.length > 0 ) json.images = images;\n\t\t\tjson.sourceFile = map.sourceFile;\n\n\t\t\treturn json;\n\n\t\t}\n\n\t\t// Note: The function 'extractFromCache' is copied from Object3D.toJSON()\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values:any = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\t\t}\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.mapName = json.mapName;\n\t\tthis.oldMap = parseTexture( json.oldMap );\n\t\tthis.newMap = parseTexture( json.newMap );\n\n\t\tfunction parseTexture( json ) {\n\t\t\tlet map;\n\t\t\tif ( json !== null ) {\n\t\t\t\tconst loader = new ObjectLoader();\n\t\t\t\tconst images = loader.parseImages( json.images,()=>{} );\n\t\t\t\tconst textures = loader.parseTextures( [ json ], images );\n\t\t\t\tmap = textures[ json.uuid ];\n\t\t\t\tmap.sourceFile = json.sourceFile;\n\t\t\t}\n\n\t\t\treturn map;\n\t\t}\n\t}\n}\n\nexport { SetMaterialMapCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetMaterialRangeCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param attributeName string\n * @param newMinValue number\n * @param newMaxValue number\n * @constructor\n */\nclass SetMaterialRangeCommand extends Command {\n\tpublic object;\n\tpublic material;\n\tpublic oldValue;\n\tpublic newValue;\n\tpublic attributeName;\n\n\tconstructor(object, attributeName, newMinValue, newMaxValue, materialSlot ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetMaterialRangeCommand';\n\t\tthis.name = `Set material.${attributeName}`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\t\tthis.material = App.getObjectMaterial( object, materialSlot );\n\n\t\tthis.oldValue = ( this.material !== undefined && this.material[ attributeName ] !== undefined ) ? [ ...this.material[ attributeName ] ] : undefined;\n\t\tthis.newValue = [ newMinValue, newMaxValue ];\n\n\t\tthis.attributeName = attributeName;\n\t}\n\n\texecute() {\n\t\tthis.material[ this.attributeName ] = [ ...this.newValue ];\n\t\tthis.material.needsUpdate = true;\n\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"materialChanged\",this.material);\n\t}\n\n\tundo() {\n\t\tthis.material[ this.attributeName ] = [ ...this.oldValue ];\n\t\tthis.material.needsUpdate = true;\n\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"materialChanged\",this.material);\n\t}\n\n\tupdate( cmd ) {\n\t\tthis.newValue = [ ...cmd.newValue ];\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.attributeName = this.attributeName;\n\t\toutput.oldValue = [ ...this.oldValue ];\n\t\toutput.newValue = [ ...this.newValue ];\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.attributeName = json.attributeName;\n\t\tthis.oldValue = [ ...json.oldValue ];\n\t\tthis.newValue = [ ...json.newValue ];\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t}\n}\n\nexport { SetMaterialRangeCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetMaterialValueCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param attributeName string\n * @param newValue number, string, boolean or object\n * @constructor\n */\nclass SetMaterialValueCommand extends Command {\n\tpublic object;\n\tpublic material;\n\tpublic oldValue;\n\tpublic newValue;\n\tpublic attributeName;\n\n\tconstructor(object, attributeName, newValue, materialSlot = 0 ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetMaterialValueCommand';\n\t\tthis.name = `Set material.${attributeName}`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\t\tthis.material = App.getObjectMaterial( object, materialSlot );\n\n\t\tthis.oldValue = ( this.material !== undefined ) ? this.material[ attributeName ] : undefined;\n\t\tthis.newValue = newValue;\n\n\t\tthis.attributeName = attributeName;\n\t}\n\n\texecute() {\n\t\tthis.material[ this.attributeName ] = this.newValue;\n\t\tthis.material.needsUpdate = true;\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"materialChanged\",this.material);\n\t}\n\n\tundo() {\n\t\tthis.material[ this.attributeName ] = this.oldValue;\n\t\tthis.material.needsUpdate = true;\n\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"materialChanged\",this.material);\n\t}\n\n\tupdate( cmd ) {\n\t\tthis.newValue = cmd.newValue;\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.attributeName = this.attributeName;\n\t\toutput.oldValue = this.oldValue;\n\t\toutput.newValue = this.newValue;\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.attributeName = json.attributeName;\n\t\tthis.oldValue = json.oldValue;\n\t\tthis.newValue = json.newValue;\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t}\n\n}\n\nexport { SetMaterialValueCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetMaterialVectorCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\nclass SetMaterialVectorCommand extends Command {\n\tpublic object;\n\tprivate material;\n\tprivate oldValue;\n\tprivate newValue;\n\tprivate attributeName;\n\n\tconstructor(object, attributeName, newValue, materialSlot) {\n\t\tsuper();\n\n\t\tthis.type = 'SetMaterialColorCommand';\n\t\tthis.name = `Set material.${attributeName}`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\t\tthis.material = App.getObjectMaterial( object, materialSlot );\n\n\t\tthis.attributeName = attributeName;\n\n\t\tthis.oldValue = (this.material !== undefined) ? this.attribute.toArray() : undefined;\n\t\tthis.newValue = newValue;\n\t}\n\n\tget attribute() {\n\t\treturn this.attributeName.split('.').reduce((obj, key) => obj[key], this.material);\n\t}\n\n\texecute() {\n\t\tthis.attribute.fromArray(this.newValue);\n\t\tuseDispatchSignal(\"materialChanged\",this.material)\n\t}\n\n\tundo() {\n\t\tthis.attribute.fromArray(this.oldValue);\n\t\tuseDispatchSignal(\"materialChanged\",this.material)\n\t}\n\n\tupdate( cmd ) {\n\t\tthis.newValue = cmd.newValue;\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.attributeName = this.attributeName;\n\t\toutput.oldValue = this.oldValue;\n\t\toutput.newValue = this.newValue;\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.attributeName = json.attributeName;\n\t\tthis.oldValue = json.oldValue;\n\t\tthis.newValue = json.newValue;\n\t}\n}\n\nexport { SetMaterialVectorCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetPositionCommand.ts",
    "content": "import { Vector3 } from 'three';\nimport { Command } from './Command';\nimport { useDispatchSignal } from '@/hooks';\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param newValue THREE.Vector3\n * @param optionaloldValue THREE.Vector3\n * @constructor\n */\nclass SetPositionCommand extends Command {\n\tpublic object;\n\tpublic oldValue;\n\tpublic newValue;\n\n\tconstructor(object, newValue, optionaloldValue? ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetPositionCommand';\n\t\tthis.name = `Set position`;\n\t\tthis.updatable = true;\n\t\tthis.object = object;\n\t\tif ( object !== undefined && newValue !== undefined ) {\n\t\t\tthis.oldValue = object.position.clone();\n\t\t\tthis.newValue = newValue.clone();\n\t\t}\n\n\t\tif ( optionaloldValue !== undefined ) {\n\t\t\tthis.oldValue = optionaloldValue.clone();\n\t\t}\n\t}\n\n\texecute() {\n\t\tthis.object.position.copy( this.newValue );\n\t\tthis.object.updateMatrixWorld( true );\n\t\tuseDispatchSignal(\"objectChanged\",this.object)\n\t}\n\n\tundo() {\n\t\tthis.object.position.copy( this.oldValue );\n\t\tthis.object.updateMatrixWorld( true );\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t}\n\n\tupdate( command ) {\n\t\tthis.newValue.copy( command.newValue );\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.oldValue = this.oldValue.toArray();\n\t\toutput.newValue = this.newValue.toArray();\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.oldValue = new Vector3().fromArray( json.oldValue );\n\t\tthis.newValue = new Vector3().fromArray( json.newValue );\n\t}\n}\n\nexport { SetPositionCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetRotationCommand.ts",
    "content": "import { Euler } from 'three';\nimport { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param newValue THREE.Euler\n * @param optionaloldValue THREE.Euler\n * @constructor\n */\nclass SetRotationCommand extends Command {\n\tpublic object;\n\tpublic oldValue;\n\tpublic newValue;\n\n\tconstructor(object, newValue, optionaloldValue ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetRotationCommand';\n\t\tthis.name = `Set rotation`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\n\t\tif ( object !== undefined && newValue !== undefined ) {\n\t\t\tthis.oldValue = object.rotation.clone();\n\t\t\tthis.newValue = newValue.clone();\n\t\t}\n\n\t\tif ( optionaloldValue !== undefined ) {\n\t\t\tthis.oldValue = optionaloldValue.clone();\n\t\t}\n\t}\n\n\texecute() {\n\t\tthis.object.rotation.copy( this.newValue );\n\t\tthis.object.updateMatrixWorld( true );\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t}\n\n\tundo() {\n\t\tthis.object.rotation.copy( this.oldValue );\n\t\tthis.object.updateMatrixWorld( true );\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t}\n\n\tupdate( command ) {\n\t\tthis.newValue.copy( command.newValue );\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.oldValue = this.oldValue.toArray();\n\t\toutput.newValue = this.newValue.toArray();\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.oldValue = new Euler().fromArray( json.oldValue );\n\t\tthis.newValue = new Euler().fromArray( json.newValue );\n\t}\n}\n\nexport { SetRotationCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetScaleCommand.ts",
    "content": "import { Vector3 } from 'three';\nimport { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks/useSignal\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param newValue THREE.Vector3\n * @param optionaloldValue THREE.Vector3\n * @constructor\n */\nclass SetScaleCommand extends Command {\n\tpublic object;\n\tpublic oldValue;\n\tpublic newValue;\n\n\tconstructor(object, newValue, optionaloldValue ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetScaleCommand';\n\t\tthis.name = `Set scale`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\n\t\tif ( object !== undefined && newValue !== undefined ) {\n\t\t\tthis.oldValue = object.scale.clone();\n\t\t\tthis.newValue = newValue.clone();\n\t\t}\n\n\t\tif ( optionaloldValue !== undefined ) {\n\t\t\tthis.oldValue = optionaloldValue.clone();\n\t\t}\n\t}\n\n\texecute() {\n\t\tthis.object.scale.copy( this.newValue );\n\t\tthis.object.updateMatrixWorld( true );\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t}\n\n\tundo() {\n\t\tthis.object.scale.copy( this.oldValue );\n\t\tthis.object.updateMatrixWorld( true );\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t}\n\n\tupdate( command ) {\n\t\tthis.newValue.copy( command.newValue );\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.oldValue = this.oldValue.toArray();\n\t\toutput.newValue = this.newValue.toArray();\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t\tthis.oldValue = new Vector3().fromArray( json.oldValue );\n\t\tthis.newValue = new Vector3().fromArray( json.newValue );\n\t}\n}\n\nexport { SetScaleCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetSceneCommand.ts",
    "content": "import {Scene} from \"three\";\nimport { Command } from './Command';\nimport { SetUuidCommand } from './SetUuidCommand';\nimport { SetValueCommand } from './SetValueCommand';\nimport { AddObjectCommand } from './AddObjectCommand';\nimport {useSignal} from \"@/hooks\";\nimport App from \"../app/App\";\n\nconst {setActive,dispatch} = useSignal();\n\n/**\n * @param scene containing children to import\n * @constructor\n */\nclass SetSceneCommand extends Command {\n\tprivate cmdArray: any[];\n\tconstructor(scene:Scene) {\n\t\tsuper();\n\n\t\tthis.type = 'SetSceneCommand';\n\t\tthis.name = 'Set scene';\n\n\t\tthis.cmdArray = [];\n\n\t\tif (scene !== undefined) {\n\t\t\tthis.cmdArray.push( new SetUuidCommand(App.scene, scene.uuid));\n\t\t\tthis.cmdArray.push( new SetValueCommand(App.scene, 'name', scene.name));\n\t\t\tthis.cmdArray.push( new SetValueCommand(App.scene, 'userData', JSON.parse(JSON.stringify(scene.userData))));\n\n\t\t\twhile ( scene.children.length > 0 ) {\n\t\t\t\tconst child = scene.children.pop();\n\t\t\t\tthis.cmdArray.push(new AddObjectCommand(child));\n\t\t\t}\n\t\t}\n\t}\n\n\texecute() {\n\t\tsetActive(\"sceneGraphChanged\",false);\n\n\t\tfor (let i = 0; i < this.cmdArray.length; i++) {\n\t\t\tthis.cmdArray[i].execute();\n\t\t}\n\n\t\tsetActive(\"sceneGraphChanged\",true);\n\t\tdispatch(\"sceneGraphChanged\");\n\t}\n\n\tundo() {\n\t\tsetActive(\"sceneGraphChanged\",false);\n\n\t\tfor (let i = this.cmdArray.length - 1; i >= 0; i--) {\n\t\t\tthis.cmdArray[i].undo();\n\t\t}\n\n\t\tsetActive(\"sceneGraphChanged\",true);\n\t\tdispatch(\"sceneGraphChanged\");\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\tconst cmds:string[] = [];\n\t\tfor ( let i = 0; i < this.cmdArray.length; i ++ ) {\n\t\t\tcmds.push(this.cmdArray[ i ].toJSON());\n\t\t}\n\n\t\toutput.cmds = cmds;\n\n\t\treturn output;\n\t}\n\n\tfromJSON(json) {\n\t\tsuper.fromJSON( json );\n\n\t\tconst cmds = json.cmds;\n\t\tfor ( let i = 0; i < cmds.length; i ++ ) {\n\t\t\t// @ts-ignore\n\t\t\tconst cmd = new window[cmds[i].type]();\t// 创建类型为“json.type”的新对象\n\t\t\tcmd.fromJSON(cmds[i]);\n\t\t\tthis.cmdArray.push(cmd);\n\t\t}\n\t}\n}\n\nexport { SetSceneCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetScriptValueCommand.ts",
    "content": "import { Object3D } from 'three';\nimport { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param script javascript object\n * @param attributeName string\n * @param newValue string, object\n * @constructor\n */\nclass SetScriptValueCommand extends Command {\n\tprivate object: Object3D;\n\tprivate script: IScript.IStruct;\n\tprivate attributeName: string;\n\tprivate oldValue: any;\n\tprivate newValue: string;\n\n\tconstructor(object:Object3D, script:IScript.IStruct, attributeName:string, newValue:string) {\n\t\tsuper();\n\n\t\tthis.type = 'SetScriptValueCommand';\n\t\tthis.name = `Set script.${attributeName}`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\t\tthis.script = script;\n\n\t\tthis.attributeName = attributeName;\n\t\tthis.oldValue = ( script !== undefined ) ? script[ this.attributeName ] : undefined;\n\t\tthis.newValue = newValue;\n\t}\n\n\texecute() {\n\t\tthis.script[this.attributeName] = this.newValue;\n\n\t\tuseDispatchSignal(\"scriptChanged\",this.attributeName,this.object,this.script);\n\t}\n\n\tundo() {\n\t\tthis.script[this.attributeName] = this.oldValue;\n\n\t\tuseDispatchSignal(\"scriptChanged\",this.attributeName,this.object,this.script);\n\t}\n\n\tupdate(cmd) {\n\t\tthis.newValue = cmd.newValue;\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.index = App.scripts[this.object.uuid].indexOf(this.script);\n\t\toutput.attributeName = this.attributeName;\n\t\toutput.oldValue = this.oldValue;\n\t\toutput.newValue = this.newValue;\n\n\t\treturn output;\n\t}\n\n\tfromJSON(json) {\n\t\tsuper.fromJSON(json);\n\n\t\tthis.oldValue = json.oldValue;\n\t\tthis.newValue = json.newValue;\n\t\tthis.attributeName = json.attributeName;\n\t\tthis.object = App.getObjectByUuid(json.objectUuid) as Object3D;\n\t\tthis.script = App.scripts[json.objectUuid][json.index];\n\t}\n}\n\nexport { SetScriptValueCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetUuidCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param newValue string\n * @constructor\n */\nclass SetUuidCommand extends Command {\n\tpublic object;\n\tpublic oldValue;\n\tpublic newValue;\n\n\tconstructor(object, newValue ) {\n\t\tsuper();\n\n\t\tthis.type = 'SetUuidCommand';\n\t\tthis.name = `Update uuid`;\n\n\t\tthis.object = object;\n\n\t\tthis.oldValue = ( object !== undefined ) ? object.uuid : undefined;\n\t\tthis.newValue = newValue;\n\n\t}\n\n\texecute() {\n\t\tthis.object.uuid = this.newValue;\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\tundo() {\n\t\tthis.object.uuid = this.oldValue;\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\t\toutput.oldValue = this.oldValue;\n\t\toutput.newValue = this.newValue;\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.oldValue = json.oldValue;\n\t\tthis.newValue = json.newValue;\n\t\tthis.object = App.getObjectByUuid( json.oldValue );\n\n\t\tif ( this.object === undefined ) {\n\t\t\tthis.object = App.getObjectByUuid( json.newValue );\n\t\t}\n\t}\n}\n\nexport { SetUuidCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/commands/SetValueCommand.ts",
    "content": "import { Command } from './Command';\nimport { useDispatchSignal } from \"@/hooks\";\nimport App from \"../app/App\";\n\n/**\n * @param object THREE.Object3D\n * @param attributeName string\n * @param newValue number, string, boolean or object\n * @constructor\n */\nclass SetValueCommand extends Command {\n\tpublic object;\n\tpublic attributeName;\n\tpublic oldValue;\n\tpublic newValue;\n\n\tconstructor(object, attributeName, newValue) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SetValueCommand';\n\t\tthis.name = `Set ${attributeName}`;\n\t\tthis.updatable = true;\n\n\t\tthis.object = object;\n\t\tthis.attributeName = attributeName;\n\t\tthis.oldValue = ( object !== undefined ) ? object[ attributeName ] : undefined;\n\t\tthis.newValue = newValue;\n\t}\n\n\texecute() {\n\t\tthis.object[ this.attributeName ] = this.newValue;\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\tundo() {\n\t\tthis.object[ this.attributeName ] = this.oldValue;\n\t\tuseDispatchSignal(\"objectChanged\",this.object);\n\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t}\n\n\tupdate( cmd ) {\n\t\tthis.newValue = cmd.newValue;\n\t}\n\n\ttoJSON() {\n\t\tconst output = super.toJSON();\n\n\t\toutput.objectUuid = this.object.uuid;\n\t\toutput.attributeName = this.attributeName;\n\t\toutput.oldValue = this.oldValue;\n\t\toutput.newValue = this.newValue;\n\n\t\treturn output;\n\t}\n\n\tfromJSON( json ) {\n\t\tsuper.fromJSON( json );\n\n\t\tthis.attributeName = json.attributeName;\n\t\tthis.oldValue = json.oldValue;\n\t\tthis.newValue = json.newValue;\n\t\tthis.object = App.getObjectByUuid( json.objectUuid );\n\t}\n}\n\nexport { SetValueCommand };\n"
  },
  {
    "path": "packages/sdk/lib/core/controls/DragControls.js",
    "content": "import {\n\tEventDispatcher,\n\tMatrix4,\n\tPlane,\n\tRaycaster,\n\tVector2,\n\tVector3\n} from 'three';\n\nconst _plane = new Plane();\nconst _raycaster = new Raycaster();\n\nconst _pointer = new Vector2();\nconst _offset = new Vector3();\nconst _intersection = new Vector3();\nconst _worldPosition = new Vector3();\nconst _inverseMatrix = new Matrix4();\n\nclass DragControls extends EventDispatcher {\n\tconstructor( _objects, _camera, _domElement ) {\n\t\tsuper();\n\n\t\t_domElement.style.touchAction = 'none'; // disable touch scroll\n\n\t\tlet _selected = null, _hovered = null;\n\n\t\tconst _intersections = [];\n\n\t\t//\n\n\t\tlet isMove = false;\n\n\t\tconst scope = this;\n\n\t\tfunction activate() {\n\t\t\t_domElement.addEventListener( 'pointermove', onPointerMove );\n\t\t\t_domElement.addEventListener( 'pointerdown', onPointerDown );\n\t\t\t_domElement.addEventListener( 'pointerup', onPointerCancel );\n\t\t\t_domElement.addEventListener( 'pointerleave', onPointerCancel );\n\t\t}\n\n\t\tfunction deactivate() {\n\t\t\t_domElement.removeEventListener( 'pointermove', onPointerMove );\n\t\t\t_domElement.removeEventListener( 'pointerdown', onPointerDown );\n\t\t\t_domElement.removeEventListener( 'pointerup', onPointerCancel );\n\t\t\t_domElement.removeEventListener( 'pointerleave', onPointerCancel );\n\n\t\t\t_domElement.style.cursor = '';\n\t\t}\n\n\t\tfunction dispose() {\n\t\t\tdeactivate();\n\t\t}\n\n\t\tfunction setObjects( objects ) {\n\t\t\t_objects = objects;\n\t\t}\n\n\t\tfunction getObjects() {\n\t\t\treturn _objects;\n\t\t}\n\n\t\tfunction getRaycaster() {\n\t\t\treturn _raycaster;\n\t\t}\n\n\t\tfunction onPointerMove( event ) {\n\n\t\t\tif ( !scope.enabled || !scope.enabledMove) return;\n\n\t\t\tisMove = true;\n\n\t\t\tupdatePointer( event );\n\n\t\t\t_raycaster.setFromCamera( _pointer, _camera );\n\n\t\t\tif ( _selected ) {\n\n\t\t\t\tif ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {\n\n\t\t\t\t\t_selected.position.copy( _intersection.sub( _offset ).applyMatrix4( _inverseMatrix ) );\n\n\t\t\t\t}\n\n\t\t\t\tscope.dispatchEvent( { type: 'drag', object: _selected } );\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t// hover support\n\n\t\t\tif ( event.pointerType === 'mouse' || event.pointerType === 'pen' ) {\n\n\t\t\t\t_intersections.length = 0;\n\n\t\t\t\t_raycaster.setFromCamera( _pointer, _camera );\n\t\t\t\t_raycaster.intersectObjects( _objects, true, _intersections );\n\n\t\t\t\tif ( _intersections.length > 0 ) {\n\n\t\t\t\t\tconst object = _intersections[ 0 ].object;\n\n\t\t\t\t\t_plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( object.matrixWorld ) );\n\n\t\t\t\t\tif ( _hovered !== object && _hovered !== null ) {\n\n\t\t\t\t\t\tscope.dispatchEvent( { type: 'hoveroff', object: _hovered } );\n\n\t\t\t\t\t\t_domElement.style.cursor = 'auto';\n\t\t\t\t\t\t_hovered = null;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( _hovered !== object ) {\n\n\t\t\t\t\t\tscope.dispatchEvent( { type: 'hoveron', object: object } );\n\n\t\t\t\t\t\t_domElement.style.cursor = 'pointer';\n\t\t\t\t\t\t_hovered = object;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( _hovered !== null ) {\n\n\t\t\t\t\t\tscope.dispatchEvent( { type: 'hoveroff', object: _hovered } );\n\n\t\t\t\t\t\t_domElement.style.cursor = 'auto';\n\t\t\t\t\t\t_hovered = null;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onPointerDown( event ) {\n\t\t\tif (scope.enabled === false) return;\n\n\t\t\tupdatePointer(event);\n\n\t\t\t_intersections.length = 0;\n\n\t\t\t_raycaster.setFromCamera( _pointer, _camera );\n\t\t\tlet objects = _objects;\n\t\t\tif(window.viewer.modules.transformControls){\n\t\t\t\tif(window.viewer.modules.transformControls.object && window.viewer.modules.transformControls._gizmo){\n\t\t\t\t\t// 如果有transformControls，就把transformControls的gizmo(仅箭头)也加进来\n\t\t\t\t\tobjects = objects.concat(Object.values(window.viewer.modules.transformControls._gizmo.picker));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_raycaster.intersectObjects( objects, true, _intersections );\n\n\t\t\tif (_intersections.length > 0) {\n\t\t\t\t_selected = (scope.transformGroup === true) ? _objects[ 0 ] : _intersections[0].object;\n\n\t\t\t\tif(scope.enabledMove) {\n\t\t\t\t\t_plane.setFromNormalAndCoplanarPoint(_camera.getWorldDirection(_plane.normal), _worldPosition.setFromMatrixPosition(_selected.matrixWorld));\n\t\t\t\t\tif (_raycaster.ray.intersectPlane(_plane, _intersection)) {\n\t\t\t\t\t\t_inverseMatrix.copy(_selected.parent.matrixWorld).invert();\n\t\t\t\t\t\t_offset.copy(_intersection).sub(_worldPosition.setFromMatrixPosition(_selected.matrixWorld));\n\t\t\t\t\t}\n\n\t\t\t\t\t_domElement.style.cursor = 'move';\n\t\t\t\t}\n\t\t\t\tscope.dispatchEvent( { type: 'dragstart', object: _selected,e:event } );\n\t\t\t}\n\n\t\t\tisMove = false;\n\t\t}\n\n\t\tfunction onPointerCancel(event) {\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tif ( _selected ) {\n\t\t\t\tscope.dispatchEvent( { type: 'dragend', object: _selected,e:event } );\n\t\t\t\t_selected = null;\n\t\t\t}else if(!isMove){\n\t\t\t\t// 添加点击空白处的事件\n\t\t\t\tscope.dispatchEvent( { type: 'clickblank',e:event } );\n\t\t\t}\n\n\t\t\t_domElement.style.cursor = _hovered ? 'pointer' : 'auto';\n\t\t}\n\n\t\tfunction updatePointer( event ) {\n\t\t\tconst rect = _domElement.getBoundingClientRect();\n\n\t\t\t_pointer.x = ( event.clientX - rect.left ) / rect.width * 2 - 1;\n\t\t\t_pointer.y = - ( event.clientY - rect.top ) / rect.height * 2 + 1;\n\t\t}\n\n\t\tactivate();\n\n\t\t// API\n\n\t\tthis.enabled = true;\n\t\tthis.enabledMove = true;\n\t\tthis.transformGroup = false;\n\n\t\tthis.activate = activate;\n\t\tthis.deactivate = deactivate;\n\t\tthis.dispose = dispose;\n\t\tthis.setObjects = setObjects;\n\t\tthis.getObjects = getObjects;\n\t\tthis.getRaycaster = getRaycaster;\n\t\tthis.setDomElement = (domElement) => {\n\t\t\t_domElement = domElement;\n\t\t\t_domElement.style.touchAction = 'none';\n\n\t\t\tdeactivate();\n\t\t\tactivate();\n\t\t}\n\n\t}\n\n}\n\nexport { DragControls };\n"
  },
  {
    "path": "packages/sdk/lib/core/expansion/Material.ts",
    "content": "import { Material } from \"three\";\n\n/**\n * 从另一个材质中复制相同的属性（材质类型可能不同）\n * @param source - 用于被复制属性的材质，属性为引用\n */\nMaterial.prototype.copyAttr = function (source) {\n    if (!source.isMaterial) return;\n\n    Object.keys(source).forEach(key => {\n        if (this.hasOwnProperty(key)){\n            this[key] = source[key];\n        }\n    })\n}"
  },
  {
    "path": "packages/sdk/lib/core/expansion/Object3D.ts",
    "content": "import * as THREE from \"three\";\n\n/**\n * 在对象以及后代中执行的回调函数,仅对满足条件的对象执行\n * @param callback - 以一个object3D对象作为第一个参数的函数。\n * @param condition - 需要满足该条件才继续后续回调的条件函数\n */\nTHREE.Object3D.prototype.traverseByCondition = function (callback, condition) {\n    if (!condition(this)) return;\n\n    callback(this);\n\n    const children = this.children;\n\n    // 优先使用子对象的traverseByCondition方法，如果没有则降级兜底\n    const fallbackFn = (child) => {\n        if (condition(child)) {\n            callback(child);\n        }\n        child.children.forEach(grandChild => fallbackFn(grandChild));\n    }\n\n    for (let i = 0, l = children.length; i < l; i++) {\n        // @ts-ignore\n        if (children[i].traverseByCondition) {\n            children[i].traverseByCondition(callback, condition);\n        } else {\n            // 降级兜底\n            fallbackFn(children[i]);\n        }\n    }\n}\n\n/**\n * 判断 parentObj 是否是 当前对象 的任意层级祖先（包括祖父、曾祖父等）\n * @param parentObj - 可能是祖先的对象\n */\nTHREE.Object3D.prototype.isAncestor = function (parentObj) {\n    let current: THREE.Object3D | null = this;\n    while (current) {\n        if (current === parentObj) return true;\n        current = current.parent;\n    }\n    return false;\n}\n\n/**\n * 重写toJSON方法\n */\nTHREE.Object3D.prototype.toJSON = function (meta: any) {\n    // 当从JSON.stringify调用时，meta是一个字符串\n    const isRootObject = (meta === undefined || typeof meta === 'string');\n\n    // @ts-ignore\n    const output: any = {};\n\n    // meta是一个散列，用于收集几何图形，材料。不提供它意味着这是被序列化的根对象。\n    if (isRootObject) {\n        meta = {\n            geometries: {},\n            materials: {},\n            textures: {},\n            images: {},\n            shapes: {},\n            skeletons: {},\n            animations: {},\n            nodes: {}\n        };\n        output.metadata = {\n            version: 4.6,\n            type: 'Object',\n            generator: 'Astral.Object3D.toJSON'\n        };\n    }\n\n    // 标准Object3D序列化\n    const object: any = {\n        uuid: this.uuid,\n        type: this.type\n    };\n\n    if (this.name !== '') object.name = this.name;\n    if (this.castShadow === true) object.castShadow = true;\n    if (this.receiveShadow === true) object.receiveShadow = true;\n    if (this.visible === false) object.visible = false;\n    if (this.frustumCulled === false) object.frustumCulled = false;\n    if (this.renderOrder !== 0) object.renderOrder = this.renderOrder;\n    if (Object.keys(this.userData).length > 0) object.userData = this.userData;\n\n    object.layers = this.layers.mask;\n    object.matrix = this.matrix.toArray();\n    object.up = this.up.toArray();\n\n    if (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false;\n\n    // 对象特定属性\n    if (this.isInstancedMesh) {\n        object.type = 'InstancedMesh';\n        object.count = this.count;\n        object.instanceMatrix = this.instanceMatrix?.toJSON();\n        if (this.instanceColor !== null) object.instanceColor = this.instanceColor?.toJSON();\n\n    }\n\n    if (this.isBatchedMesh) {\n        object.type = 'BatchedMesh';\n        object.perObjectFrustumCulled = this.perObjectFrustumCulled;\n        object.sortObjects = this.sortObjects;\n\n        object.drawRanges = this._drawRanges;\n        object.reservedRanges = this._reservedRanges;\n\n        object.visibility = this._visibility;\n        object.active = this._active;\n        object.bounds = this._bounds.map(bound => ({\n            boxInitialized: bound.boxInitialized,\n            boxMin: bound.box.min.toArray(),\n            boxMax: bound.box.max.toArray(),\n\n            sphereInitialized: bound.sphereInitialized,\n            sphereRadius: bound.sphere.radius,\n            sphereCenter: bound.sphere.center.toArray()\n        }));\n\n        object.maxInstanceCount = this._maxInstanceCount;\n        object.maxVertexCount = this._maxVertexCount;\n        object.maxIndexCount = this._maxIndexCount;\n\n        object.geometryInitialized = this._geometryInitialized;\n        object.geometryCount = this._geometryCount;\n\n        object.matricesTexture = this._matricesTexture?.toJSON(meta);\n\n        if (this._colorsTexture !== null) object.colorsTexture = this._colorsTexture?.toJSON(meta);\n\n        if (this.boundingSphere !== null) {\n            object.boundingSphere = {\n                center: object.boundingSphere.center.toArray(),\n                radius: object.boundingSphere.radius\n            };\n        }\n\n        if (this.boundingBox !== null) {\n            object.boundingBox = {\n                min: object.boundingBox.min.toArray(),\n                max: object.boundingBox.max.toArray()\n            };\n        }\n    }\n\n    function serialize(library, element) {\n        if (library[element.uuid] === undefined) {\n            library[element.uuid] = element.toJSON(meta);\n        }\n        return element.uuid;\n    }\n\n    if (this.isScene) {\n        if (this.background) {\n            if (this.background.isColor) {\n                object.background = this.background.toJSON();\n            } else if (this.background.isTexture) {\n                object.background = this.background.toJSON(meta).uuid;\n            }\n        }\n\n        if (this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true) {\n            object.environment = this.environment.toJSON(meta).uuid;\n        }\n    } else if (this.isMesh || this.isLine || this.isPoints) {\n        object.geometry = serialize(meta.geometries, this.geometry);\n        const parameters = this.geometry.parameters;\n\n        if (parameters !== undefined && parameters.shapes !== undefined) {\n            const shapes = parameters.shapes;\n            if (Array.isArray(shapes)) {\n                for (let i = 0, l = shapes.length; i < l; i++) {\n                    const shape = shapes[i];\n                    serialize(meta.shapes, shape);\n                }\n            } else {\n                serialize(meta.shapes, shapes);\n            }\n        }\n    }\n\n    if (this.isSkinnedMesh) {\n        object.bindMode = this.bindMode;\n        object.bindMatrix = this.bindMatrix.toArray();\n\n        if (this.skeleton !== undefined) {\n            serialize(meta.skeletons, this.skeleton);\n            object.skeleton = this.skeleton.uuid;\n        }\n    }\n\n    if (this.material !== undefined) {\n        // 判断元数据是否含有材质\n        // 创建新变量替代，不然正在使用的材质被还原回this.metaData.material会造成播放异常\n        let _material = this.material;\n        if (this.metaData?.material) {\n            if (this.metaData.material instanceof THREE.Material) {\n                _material = this.metaData.material;\n            }\n        }\n\n        if (Array.isArray(_material)) {\n            const uuids: string[] = [];\n\n            for (let i = 0, l = _material.length; i < l; i++) {\n                uuids.push(serialize(meta.materials, _material[i]));\n            }\n\n            object.material = uuids;\n        } else {\n            object.material = serialize(meta.materials, _material);\n        }\n    }\n\n    if (this.children.length > 0) {\n        object.children = [];\n\n        for (let i = 0; i < this.children.length; i++) {\n            object.children.push(this.children[i].toJSON(meta).object);\n        }\n    }\n\n    if (this.animations.length > 0) {\n        object.animations = [];\n\n        for (let i = 0; i < this.animations.length; i++) {\n            let animation = this.animations[i];\n            // 20250306 修复动画导出问题(代码中处理了object3D.animations,此属性下是AnimationAction数组)\n            if (animation instanceof THREE.AnimationAction) {\n                animation = animation.getClip();\n            }\n            if (!animation) continue;\n            object.animations.push(serialize(meta.animations, animation));\n\n        }\n    }\n\n    if (isRootObject) {\n        const geometries = extractFromCache(meta.geometries);\n        const materials = extractFromCache(meta.materials);\n        const textures = extractFromCache(meta.textures);\n        const images = extractFromCache(meta.images);\n        const shapes = extractFromCache(meta.shapes);\n        const skeletons = extractFromCache(meta.skeletons);\n        const animations = extractFromCache(meta.animations);\n        const nodes = extractFromCache(meta.nodes);\n\n        if (geometries.length > 0) output.geometries = geometries;\n        if (materials.length > 0) output.materials = materials;\n        if (textures.length > 0) output.textures = textures;\n        if (images.length > 0) output.images = images;\n        if (shapes.length > 0) output.shapes = shapes;\n        if (skeletons.length > 0) output.skeletons = skeletons;\n        if (animations.length > 0) output.animations = animations.map(animation => {\n            animation.tracks = animation.tracks.map(track => {\n                if (!track.type) {\n                    track.type = 'vector';\n                }\n                return track;\n            });\n\n            return animation;\n        });\n        if (nodes.length > 0) output.nodes = nodes;\n    }\n\n    output.object = object;\n\n    return output;\n\n    // 从缓存哈希中提取数据，删除每个项目上的元数据并作为数组返回\n    function extractFromCache(cache) {\n        const values: any = [];\n        for (const key in cache) {\n            const data = cache[key];\n            delete data.metadata;\n            values.push(data);\n        }\n\n        return values;\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/expansion/index.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/01/08\n * @description 从原型链扩充原threejs对象方法\n */\nimport './Object3D';\nimport './Material';"
  },
  {
    "path": "packages/sdk/lib/core/geometries/TeapotGeometry.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/3/11 10:18\n * @description 茶壶几何，修改于 three/examples/jsm/geometries/TeapotGeometry.js\n */\nimport {\n\tBufferAttribute,\n\tBufferGeometry,\n\tMatrix4,\n\tVector3,\n\tVector4\n} from 'three';\n\nclass TeapotGeometry extends BufferGeometry {\n\tprivate _parameters: { size: number; bottom: boolean; lid: boolean; blinn: boolean; body: boolean; fitLid: boolean; segments: number };\n\n\tget parameters(): { size: number; bottom: boolean; lid: boolean; blinn: boolean; body: boolean; fitLid: boolean; segments: number } {\n\t\treturn this._parameters;\n\t}\n\n\tconstructor( size = 50, segments = 10, bottom = true, lid = true, body = true, fitLid = true, blinn = true ) {\n\n\t\t// 32 * 4 * 4 Bezier spline patches\n\t\tconst teapotPatches = [\n\t\t\t/*rim*/\n\t\t\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t\t\t3, 16, 17, 18, 7, 19, 20, 21, 11, 22, 23, 24, 15, 25, 26, 27,\n\t\t\t18, 28, 29, 30, 21, 31, 32, 33, 24, 34, 35, 36, 27, 37, 38, 39,\n\t\t\t30, 40, 41, 0, 33, 42, 43, 4, 36, 44, 45, 8, 39, 46, 47, 12,\n\t\t\t/*body*/\n\t\t\t12, 13, 14, 15, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n\t\t\t15, 25, 26, 27, 51, 60, 61, 62, 55, 63, 64, 65, 59, 66, 67, 68,\n\t\t\t27, 37, 38, 39, 62, 69, 70, 71, 65, 72, 73, 74, 68, 75, 76, 77,\n\t\t\t39, 46, 47, 12, 71, 78, 79, 48, 74, 80, 81, 52, 77, 82, 83, 56,\n\t\t\t56, 57, 58, 59, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,\n\t\t\t59, 66, 67, 68, 87, 96, 97, 98, 91, 99, 100, 101, 95, 102, 103, 104,\n\t\t\t68, 75, 76, 77, 98, 105, 106, 107, 101, 108, 109, 110, 104, 111, 112, 113,\n\t\t\t77, 82, 83, 56, 107, 114, 115, 84, 110, 116, 117, 88, 113, 118, 119, 92,\n\t\t\t/*handle*/\n\t\t\t120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,\n\t\t\t123, 136, 137, 120, 127, 138, 139, 124, 131, 140, 141, 128, 135, 142, 143, 132,\n\t\t\t132, 133, 134, 135, 144, 145, 146, 147, 148, 149, 150, 151, 68, 152, 153, 154,\n\t\t\t135, 142, 143, 132, 147, 155, 156, 144, 151, 157, 158, 148, 154, 159, 160, 68,\n\t\t\t/*spout*/\n\t\t\t161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,\n\t\t\t164, 177, 178, 161, 168, 179, 180, 165, 172, 181, 182, 169, 176, 183, 184, 173,\n\t\t\t173, 174, 175, 176, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,\n\t\t\t176, 183, 184, 173, 188, 197, 198, 185, 192, 199, 200, 189, 196, 201, 202, 193,\n\t\t\t/*lid*/\n\t\t\t203, 203, 203, 203, 204, 205, 206, 207, 208, 208, 208, 208, 209, 210, 211, 212,\n\t\t\t203, 203, 203, 203, 207, 213, 214, 215, 208, 208, 208, 208, 212, 216, 217, 218,\n\t\t\t203, 203, 203, 203, 215, 219, 220, 221, 208, 208, 208, 208, 218, 222, 223, 224,\n\t\t\t203, 203, 203, 203, 221, 225, 226, 204, 208, 208, 208, 208, 224, 227, 228, 209,\n\t\t\t209, 210, 211, 212, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,\n\t\t\t212, 216, 217, 218, 232, 241, 242, 243, 236, 244, 245, 246, 240, 247, 248, 249,\n\t\t\t218, 222, 223, 224, 243, 250, 251, 252, 246, 253, 254, 255, 249, 256, 257, 258,\n\t\t\t224, 227, 228, 209, 252, 259, 260, 229, 255, 261, 262, 233, 258, 263, 264, 237,\n\t\t\t/*bottom*/\n\t\t\t265, 265, 265, 265, 266, 267, 268, 269, 270, 271, 272, 273, 92, 119, 118, 113,\n\t\t\t265, 265, 265, 265, 269, 274, 275, 276, 273, 277, 278, 279, 113, 112, 111, 104,\n\t\t\t265, 265, 265, 265, 276, 280, 281, 282, 279, 283, 284, 285, 104, 103, 102, 95,\n\t\t\t265, 265, 265, 265, 282, 286, 287, 266, 285, 288, 289, 270, 95, 94, 93, 92\n\t\t];\n\n\t\tconst teapotVertices = [\n\t\t\t1.4, 0, 2.4,\n\t\t\t1.4, - 0.784, 2.4,\n\t\t\t0.784, - 1.4, 2.4,\n\t\t\t0, - 1.4, 2.4,\n\t\t\t1.3375, 0, 2.53125,\n\t\t\t1.3375, - 0.749, 2.53125,\n\t\t\t0.749, - 1.3375, 2.53125,\n\t\t\t0, - 1.3375, 2.53125,\n\t\t\t1.4375, 0, 2.53125,\n\t\t\t1.4375, - 0.805, 2.53125,\n\t\t\t0.805, - 1.4375, 2.53125,\n\t\t\t0, - 1.4375, 2.53125,\n\t\t\t1.5, 0, 2.4,\n\t\t\t1.5, - 0.84, 2.4,\n\t\t\t0.84, - 1.5, 2.4,\n\t\t\t0, - 1.5, 2.4,\n\t\t\t- 0.784, - 1.4, 2.4,\n\t\t\t- 1.4, - 0.784, 2.4,\n\t\t\t- 1.4, 0, 2.4,\n\t\t\t- 0.749, - 1.3375, 2.53125,\n\t\t\t- 1.3375, - 0.749, 2.53125,\n\t\t\t- 1.3375, 0, 2.53125,\n\t\t\t- 0.805, - 1.4375, 2.53125,\n\t\t\t- 1.4375, - 0.805, 2.53125,\n\t\t\t- 1.4375, 0, 2.53125,\n\t\t\t- 0.84, - 1.5, 2.4,\n\t\t\t- 1.5, - 0.84, 2.4,\n\t\t\t- 1.5, 0, 2.4,\n\t\t\t- 1.4, 0.784, 2.4,\n\t\t\t- 0.784, 1.4, 2.4,\n\t\t\t0, 1.4, 2.4,\n\t\t\t- 1.3375, 0.749, 2.53125,\n\t\t\t- 0.749, 1.3375, 2.53125,\n\t\t\t0, 1.3375, 2.53125,\n\t\t\t- 1.4375, 0.805, 2.53125,\n\t\t\t- 0.805, 1.4375, 2.53125,\n\t\t\t0, 1.4375, 2.53125,\n\t\t\t- 1.5, 0.84, 2.4,\n\t\t\t- 0.84, 1.5, 2.4,\n\t\t\t0, 1.5, 2.4,\n\t\t\t0.784, 1.4, 2.4,\n\t\t\t1.4, 0.784, 2.4,\n\t\t\t0.749, 1.3375, 2.53125,\n\t\t\t1.3375, 0.749, 2.53125,\n\t\t\t0.805, 1.4375, 2.53125,\n\t\t\t1.4375, 0.805, 2.53125,\n\t\t\t0.84, 1.5, 2.4,\n\t\t\t1.5, 0.84, 2.4,\n\t\t\t1.75, 0, 1.875,\n\t\t\t1.75, - 0.98, 1.875,\n\t\t\t0.98, - 1.75, 1.875,\n\t\t\t0, - 1.75, 1.875,\n\t\t\t2, 0, 1.35,\n\t\t\t2, - 1.12, 1.35,\n\t\t\t1.12, - 2, 1.35,\n\t\t\t0, - 2, 1.35,\n\t\t\t2, 0, 0.9,\n\t\t\t2, - 1.12, 0.9,\n\t\t\t1.12, - 2, 0.9,\n\t\t\t0, - 2, 0.9,\n\t\t\t- 0.98, - 1.75, 1.875,\n\t\t\t- 1.75, - 0.98, 1.875,\n\t\t\t- 1.75, 0, 1.875,\n\t\t\t- 1.12, - 2, 1.35,\n\t\t\t- 2, - 1.12, 1.35,\n\t\t\t- 2, 0, 1.35,\n\t\t\t- 1.12, - 2, 0.9,\n\t\t\t- 2, - 1.12, 0.9,\n\t\t\t- 2, 0, 0.9,\n\t\t\t- 1.75, 0.98, 1.875,\n\t\t\t- 0.98, 1.75, 1.875,\n\t\t\t0, 1.75, 1.875,\n\t\t\t- 2, 1.12, 1.35,\n\t\t\t- 1.12, 2, 1.35,\n\t\t\t0, 2, 1.35,\n\t\t\t- 2, 1.12, 0.9,\n\t\t\t- 1.12, 2, 0.9,\n\t\t\t0, 2, 0.9,\n\t\t\t0.98, 1.75, 1.875,\n\t\t\t1.75, 0.98, 1.875,\n\t\t\t1.12, 2, 1.35,\n\t\t\t2, 1.12, 1.35,\n\t\t\t1.12, 2, 0.9,\n\t\t\t2, 1.12, 0.9,\n\t\t\t2, 0, 0.45,\n\t\t\t2, - 1.12, 0.45,\n\t\t\t1.12, - 2, 0.45,\n\t\t\t0, - 2, 0.45,\n\t\t\t1.5, 0, 0.225,\n\t\t\t1.5, - 0.84, 0.225,\n\t\t\t0.84, - 1.5, 0.225,\n\t\t\t0, - 1.5, 0.225,\n\t\t\t1.5, 0, 0.15,\n\t\t\t1.5, - 0.84, 0.15,\n\t\t\t0.84, - 1.5, 0.15,\n\t\t\t0, - 1.5, 0.15,\n\t\t\t- 1.12, - 2, 0.45,\n\t\t\t- 2, - 1.12, 0.45,\n\t\t\t- 2, 0, 0.45,\n\t\t\t- 0.84, - 1.5, 0.225,\n\t\t\t- 1.5, - 0.84, 0.225,\n\t\t\t- 1.5, 0, 0.225,\n\t\t\t- 0.84, - 1.5, 0.15,\n\t\t\t- 1.5, - 0.84, 0.15,\n\t\t\t- 1.5, 0, 0.15,\n\t\t\t- 2, 1.12, 0.45,\n\t\t\t- 1.12, 2, 0.45,\n\t\t\t0, 2, 0.45,\n\t\t\t- 1.5, 0.84, 0.225,\n\t\t\t- 0.84, 1.5, 0.225,\n\t\t\t0, 1.5, 0.225,\n\t\t\t- 1.5, 0.84, 0.15,\n\t\t\t- 0.84, 1.5, 0.15,\n\t\t\t0, 1.5, 0.15,\n\t\t\t1.12, 2, 0.45,\n\t\t\t2, 1.12, 0.45,\n\t\t\t0.84, 1.5, 0.225,\n\t\t\t1.5, 0.84, 0.225,\n\t\t\t0.84, 1.5, 0.15,\n\t\t\t1.5, 0.84, 0.15,\n\t\t\t- 1.6, 0, 2.025,\n\t\t\t- 1.6, - 0.3, 2.025,\n\t\t\t- 1.5, - 0.3, 2.25,\n\t\t\t- 1.5, 0, 2.25,\n\t\t\t- 2.3, 0, 2.025,\n\t\t\t- 2.3, - 0.3, 2.025,\n\t\t\t- 2.5, - 0.3, 2.25,\n\t\t\t- 2.5, 0, 2.25,\n\t\t\t- 2.7, 0, 2.025,\n\t\t\t- 2.7, - 0.3, 2.025,\n\t\t\t- 3, - 0.3, 2.25,\n\t\t\t- 3, 0, 2.25,\n\t\t\t- 2.7, 0, 1.8,\n\t\t\t- 2.7, - 0.3, 1.8,\n\t\t\t- 3, - 0.3, 1.8,\n\t\t\t- 3, 0, 1.8,\n\t\t\t- 1.5, 0.3, 2.25,\n\t\t\t- 1.6, 0.3, 2.025,\n\t\t\t- 2.5, 0.3, 2.25,\n\t\t\t- 2.3, 0.3, 2.025,\n\t\t\t- 3, 0.3, 2.25,\n\t\t\t- 2.7, 0.3, 2.025,\n\t\t\t- 3, 0.3, 1.8,\n\t\t\t- 2.7, 0.3, 1.8,\n\t\t\t- 2.7, 0, 1.575,\n\t\t\t- 2.7, - 0.3, 1.575,\n\t\t\t- 3, - 0.3, 1.35,\n\t\t\t- 3, 0, 1.35,\n\t\t\t- 2.5, 0, 1.125,\n\t\t\t- 2.5, - 0.3, 1.125,\n\t\t\t- 2.65, - 0.3, 0.9375,\n\t\t\t- 2.65, 0, 0.9375,\n\t\t\t- 2, - 0.3, 0.9,\n\t\t\t- 1.9, - 0.3, 0.6,\n\t\t\t- 1.9, 0, 0.6,\n\t\t\t- 3, 0.3, 1.35,\n\t\t\t- 2.7, 0.3, 1.575,\n\t\t\t- 2.65, 0.3, 0.9375,\n\t\t\t- 2.5, 0.3, 1.125,\n\t\t\t- 1.9, 0.3, 0.6,\n\t\t\t- 2, 0.3, 0.9,\n\t\t\t1.7, 0, 1.425,\n\t\t\t1.7, - 0.66, 1.425,\n\t\t\t1.7, - 0.66, 0.6,\n\t\t\t1.7, 0, 0.6,\n\t\t\t2.6, 0, 1.425,\n\t\t\t2.6, - 0.66, 1.425,\n\t\t\t3.1, - 0.66, 0.825,\n\t\t\t3.1, 0, 0.825,\n\t\t\t2.3, 0, 2.1,\n\t\t\t2.3, - 0.25, 2.1,\n\t\t\t2.4, - 0.25, 2.025,\n\t\t\t2.4, 0, 2.025,\n\t\t\t2.7, 0, 2.4,\n\t\t\t2.7, - 0.25, 2.4,\n\t\t\t3.3, - 0.25, 2.4,\n\t\t\t3.3, 0, 2.4,\n\t\t\t1.7, 0.66, 0.6,\n\t\t\t1.7, 0.66, 1.425,\n\t\t\t3.1, 0.66, 0.825,\n\t\t\t2.6, 0.66, 1.425,\n\t\t\t2.4, 0.25, 2.025,\n\t\t\t2.3, 0.25, 2.1,\n\t\t\t3.3, 0.25, 2.4,\n\t\t\t2.7, 0.25, 2.4,\n\t\t\t2.8, 0, 2.475,\n\t\t\t2.8, - 0.25, 2.475,\n\t\t\t3.525, - 0.25, 2.49375,\n\t\t\t3.525, 0, 2.49375,\n\t\t\t2.9, 0, 2.475,\n\t\t\t2.9, - 0.15, 2.475,\n\t\t\t3.45, - 0.15, 2.5125,\n\t\t\t3.45, 0, 2.5125,\n\t\t\t2.8, 0, 2.4,\n\t\t\t2.8, - 0.15, 2.4,\n\t\t\t3.2, - 0.15, 2.4,\n\t\t\t3.2, 0, 2.4,\n\t\t\t3.525, 0.25, 2.49375,\n\t\t\t2.8, 0.25, 2.475,\n\t\t\t3.45, 0.15, 2.5125,\n\t\t\t2.9, 0.15, 2.475,\n\t\t\t3.2, 0.15, 2.4,\n\t\t\t2.8, 0.15, 2.4,\n\t\t\t0, 0, 3.15,\n\t\t\t0.8, 0, 3.15,\n\t\t\t0.8, - 0.45, 3.15,\n\t\t\t0.45, - 0.8, 3.15,\n\t\t\t0, - 0.8, 3.15,\n\t\t\t0, 0, 2.85,\n\t\t\t0.2, 0, 2.7,\n\t\t\t0.2, - 0.112, 2.7,\n\t\t\t0.112, - 0.2, 2.7,\n\t\t\t0, - 0.2, 2.7,\n\t\t\t- 0.45, - 0.8, 3.15,\n\t\t\t- 0.8, - 0.45, 3.15,\n\t\t\t- 0.8, 0, 3.15,\n\t\t\t- 0.112, - 0.2, 2.7,\n\t\t\t- 0.2, - 0.112, 2.7,\n\t\t\t- 0.2, 0, 2.7,\n\t\t\t- 0.8, 0.45, 3.15,\n\t\t\t- 0.45, 0.8, 3.15,\n\t\t\t0, 0.8, 3.15,\n\t\t\t- 0.2, 0.112, 2.7,\n\t\t\t- 0.112, 0.2, 2.7,\n\t\t\t0, 0.2, 2.7,\n\t\t\t0.45, 0.8, 3.15,\n\t\t\t0.8, 0.45, 3.15,\n\t\t\t0.112, 0.2, 2.7,\n\t\t\t0.2, 0.112, 2.7,\n\t\t\t0.4, 0, 2.55,\n\t\t\t0.4, - 0.224, 2.55,\n\t\t\t0.224, - 0.4, 2.55,\n\t\t\t0, - 0.4, 2.55,\n\t\t\t1.3, 0, 2.55,\n\t\t\t1.3, - 0.728, 2.55,\n\t\t\t0.728, - 1.3, 2.55,\n\t\t\t0, - 1.3, 2.55,\n\t\t\t1.3, 0, 2.4,\n\t\t\t1.3, - 0.728, 2.4,\n\t\t\t0.728, - 1.3, 2.4,\n\t\t\t0, - 1.3, 2.4,\n\t\t\t- 0.224, - 0.4, 2.55,\n\t\t\t- 0.4, - 0.224, 2.55,\n\t\t\t- 0.4, 0, 2.55,\n\t\t\t- 0.728, - 1.3, 2.55,\n\t\t\t- 1.3, - 0.728, 2.55,\n\t\t\t- 1.3, 0, 2.55,\n\t\t\t- 0.728, - 1.3, 2.4,\n\t\t\t- 1.3, - 0.728, 2.4,\n\t\t\t- 1.3, 0, 2.4,\n\t\t\t- 0.4, 0.224, 2.55,\n\t\t\t- 0.224, 0.4, 2.55,\n\t\t\t0, 0.4, 2.55,\n\t\t\t- 1.3, 0.728, 2.55,\n\t\t\t- 0.728, 1.3, 2.55,\n\t\t\t0, 1.3, 2.55,\n\t\t\t- 1.3, 0.728, 2.4,\n\t\t\t- 0.728, 1.3, 2.4,\n\t\t\t0, 1.3, 2.4,\n\t\t\t0.224, 0.4, 2.55,\n\t\t\t0.4, 0.224, 2.55,\n\t\t\t0.728, 1.3, 2.55,\n\t\t\t1.3, 0.728, 2.55,\n\t\t\t0.728, 1.3, 2.4,\n\t\t\t1.3, 0.728, 2.4,\n\t\t\t0, 0, 0,\n\t\t\t1.425, 0, 0,\n\t\t\t1.425, 0.798, 0,\n\t\t\t0.798, 1.425, 0,\n\t\t\t0, 1.425, 0,\n\t\t\t1.5, 0, 0.075,\n\t\t\t1.5, 0.84, 0.075,\n\t\t\t0.84, 1.5, 0.075,\n\t\t\t0, 1.5, 0.075,\n\t\t\t- 0.798, 1.425, 0,\n\t\t\t- 1.425, 0.798, 0,\n\t\t\t- 1.425, 0, 0,\n\t\t\t- 0.84, 1.5, 0.075,\n\t\t\t- 1.5, 0.84, 0.075,\n\t\t\t- 1.5, 0, 0.075,\n\t\t\t- 1.425, - 0.798, 0,\n\t\t\t- 0.798, - 1.425, 0,\n\t\t\t0, - 1.425, 0,\n\t\t\t- 1.5, - 0.84, 0.075,\n\t\t\t- 0.84, - 1.5, 0.075,\n\t\t\t0, - 1.5, 0.075,\n\t\t\t0.798, - 1.425, 0,\n\t\t\t1.425, - 0.798, 0,\n\t\t\t0.84, - 1.5, 0.075,\n\t\t\t1.5, - 0.84, 0.075\n\t\t];\n\n\t\tsuper();\n\n\t\t// @ts-ignore\n\t\tthis.type = \"TeapotGeometry\";\n\n\t\tthis._parameters = {\n\t\t\tsize: size,\n\t\t\tsegments: segments,\n\t\t\tbottom: bottom,\n\t\t\tlid: lid,\n\t\t\tbody: body,\n\t\t\tfitLid: fitLid,\n\t\t\tblinn: blinn,\n\t\t};\n\n\t\t// number of segments per patch\n\t\tsegments = Math.max( 2, Math.floor( segments ) );\n\n\t\t// Jim Blinn scaled the teapot down in size by about 1.3 for\n\t\t// some rendering tests. He liked the new proportions that he kept\n\t\t// the data in this form. The model was distributed with these new\n\t\t// proportions and became the norm. Trivia: comparing images of the\n\t\t// real teapot and the computer model, the ratio for the bowl of the\n\t\t// real teapot is more like 1.25, but since 1.3 is the traditional\n\t\t// value given, we use it here.\n\t\tconst blinnScale = 1.3;\n\n\t\t// scale the size to be the real scaling factor\n\t\tconst maxHeight = 3.15 * ( blinn ? 1 : blinnScale );\n\n\t\tconst maxHeight2 = maxHeight / 2;\n\t\tconst trueSize = size / maxHeight2;\n\n\t\t// Number of elements depends on what is needed. Subtract degenerate\n\t\t// triangles at tip of bottom and lid out in advance.\n\t\tlet numTriangles = bottom ? ( 8 * segments - 4 ) * segments : 0;\n\t\tnumTriangles += lid ? ( 16 * segments - 4 ) * segments : 0;\n\t\tnumTriangles += body ? 40 * segments * segments : 0;\n\n\t\tconst indices = new Uint32Array( numTriangles * 3 );\n\n\t\tlet numVertices = bottom ? 4 : 0;\n\t\tnumVertices += lid ? 8 : 0;\n\t\tnumVertices += body ? 20 : 0;\n\t\tnumVertices *= ( segments + 1 ) * ( segments + 1 );\n\n\t\tconst vertices = new Float32Array( numVertices * 3 );\n\t\tconst normals = new Float32Array( numVertices * 3 );\n\t\tconst uvs = new Float32Array( numVertices * 2 );\n\n\t\t// Bezier form\n\t\tconst ms = new Matrix4();\n\t\tms.set(\n\t\t\t- 1.0, 3.0, - 3.0, 1.0,\n\t\t\t3.0, - 6.0, 3.0, 0.0,\n\t\t\t- 3.0, 3.0, 0.0, 0.0,\n\t\t\t1.0, 0.0, 0.0, 0.0 );\n\n\t\tconst g:number[] = [];\n\n\t\tconst sp:number[] = [];\n\t\tconst tp:number[] = [];\n\t\tconst dsp:number[] = [];\n\t\tconst dtp:number[] = [];\n\n\t\t// M * G * M matrix, sort of see\n\t\t// http://www.cs.helsinki.fi/group/goa/mallinnus/curves/surfaces.html\n\t\tconst mgm:Matrix4[] = [];\n\n\t\tconst vert:number[] = [];\n\t\tconst sdir:number[] = [];\n\t\tconst tdir:number[] = [];\n\n\t\tconst norm = new Vector3();\n\n\t\tlet tcoord: Vector4;\n\n\t\tlet sval:number;\n\t\tlet tval:number;\n\t\tlet p;\n\t\tlet dsval = 0;\n\t\tlet dtval = 0;\n\n\t\tconst normOut = new Vector3();\n\n\t\tconst gmx = new Matrix4();\n\t\tconst tmtx = new Matrix4();\n\n\t\tconst vsp = new Vector4();\n\t\tconst vtp = new Vector4();\n\t\tconst vdsp = new Vector4();\n\t\tconst vdtp = new Vector4();\n\n\t\tconst vsdir = new Vector3();\n\t\tconst vtdir = new Vector3();\n\n\t\tconst mst = ms.clone();\n\t\tmst.transpose();\n\n\t\t// internal function: test if triangle has any matching vertices;\n\t\t// if so, don't save triangle, since it won't display anything.\n\t\tconst notDegenerate = ( vtx1, vtx2, vtx3 ) => // if any vertex matches, return false\n\t\t\t! ( ( ( vertices[ vtx1 * 3 ] === vertices[ vtx2 * 3 ] ) &&\n\t\t\t\t\t( vertices[ vtx1 * 3 + 1 ] === vertices[ vtx2 * 3 + 1 ] ) &&\n\t\t\t\t\t( vertices[ vtx1 * 3 + 2 ] === vertices[ vtx2 * 3 + 2 ] ) ) ||\n\t\t\t\t\t( ( vertices[ vtx1 * 3 ] === vertices[ vtx3 * 3 ] ) &&\n\t\t\t\t\t( vertices[ vtx1 * 3 + 1 ] === vertices[ vtx3 * 3 + 1 ] ) &&\n\t\t\t\t\t( vertices[ vtx1 * 3 + 2 ] === vertices[ vtx3 * 3 + 2 ] ) ) || ( vertices[ vtx2 * 3 ] === vertices[ vtx3 * 3 ] ) &&\n\t\t\t\t\t( vertices[ vtx2 * 3 + 1 ] === vertices[ vtx3 * 3 + 1 ] ) &&\n\t\t\t\t\t( vertices[ vtx2 * 3 + 2 ] === vertices[ vtx3 * 3 + 2 ] ) );\n\n\n\t\tfor ( let i = 0; i < 3; i ++ ) {\n\n\t\t\tmgm[ i ] = new Matrix4();\n\n\t\t}\n\n\t\tconst minPatches = body ? 0 : 20;\n\t\tconst maxPatches = bottom ? 32 : 28;\n\n\t\tconst vertPerRow = segments + 1;\n\n\t\tlet surfCount = 0;\n\n\t\tlet vertCount = 0;\n\t\tlet normCount = 0;\n\t\tlet uvCount = 0;\n\n\t\tlet indexCount = 0;\n\n\t\tfor ( let surf = minPatches; surf < maxPatches; surf ++ ) {\n\n\t\t\t// lid is in the middle of the data, patches 20-27,\n\t\t\t// so ignore it for this part of the loop if the lid is not desired\n\t\t\tif ( lid || ( surf < 20 || surf >= 28 ) ) {\n\n\t\t\t\t// get M * G * M matrix for x,y,z\n\t\t\t\tfor ( let i = 0; i < 3; i ++ ) {\n\n\t\t\t\t\t// get control patches\n\t\t\t\t\tfor ( let r = 0; r < 4; r ++ ) {\n\n\t\t\t\t\t\tfor ( let c = 0; c < 4; c ++ ) {\n\n\t\t\t\t\t\t\t// transposed\n\t\t\t\t\t\t\tg[ c * 4 + r ] = teapotVertices[ teapotPatches[ surf * 16 + r * 4 + c ] * 3 + i ];\n\n\t\t\t\t\t\t\t// is the lid to be made larger, and is this a point on the lid\n\t\t\t\t\t\t\t// that is X or Y?\n\t\t\t\t\t\t\tif ( fitLid && ( surf >= 20 && surf < 28 ) && ( i !== 2 ) ) {\n\n\t\t\t\t\t\t\t\t// increase XY size by 7.7%, found empirically. I don't\n\t\t\t\t\t\t\t\t// increase Z so that the teapot will continue to fit in the\n\t\t\t\t\t\t\t\t// space -1 to 1 for Y (Y is up for the final model).\n\t\t\t\t\t\t\t\tg[ c * 4 + r ] *= 1.077;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Blinn \"fixed\" the teapot by dividing Z by blinnScale, and that's the\n\t\t\t\t\t\t\t// data we now use. The original teapot is taller. Fix it:\n\t\t\t\t\t\t\tif ( ! blinn && ( i === 2 ) ) {\n\n\t\t\t\t\t\t\t\tg[ c * 4 + r ] *= blinnScale;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgmx.set( g[ 0 ], g[ 1 ], g[ 2 ], g[ 3 ], g[ 4 ], g[ 5 ], g[ 6 ], g[ 7 ], g[ 8 ], g[ 9 ], g[ 10 ], g[ 11 ], g[ 12 ], g[ 13 ], g[ 14 ], g[ 15 ] );\n\n\t\t\t\t\ttmtx.multiplyMatrices( gmx, ms );\n\t\t\t\t\tmgm[ i ].multiplyMatrices( mst, tmtx );\n\n\t\t\t\t}\n\n\t\t\t\t// step along, get points, and output\n\t\t\t\tfor ( let sstep = 0; sstep <= segments; sstep ++ ) {\n\n\t\t\t\t\tconst s = sstep / segments;\n\n\t\t\t\t\tfor ( let tstep = 0; tstep <= segments; tstep ++ ) {\n\n\t\t\t\t\t\tconst t = tstep / segments;\n\n\t\t\t\t\t\t// point from basis\n\t\t\t\t\t\t// get power vectors and their derivatives\n\t\t\t\t\t\tfor ( p = 4, sval = tval = 1.0; p --; ) {\n\n\t\t\t\t\t\t\tsp[ p ] = sval;\n\t\t\t\t\t\t\ttp[ p ] = tval;\n\t\t\t\t\t\t\tsval *= s;\n\t\t\t\t\t\t\ttval *= t;\n\n\t\t\t\t\t\t\tif ( p === 3 ) {\n\n\t\t\t\t\t\t\t\tdsp[ p ] = dtp[ p ] = 0.0;\n\t\t\t\t\t\t\t\tdsval = dtval = 1.0;\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tdsp[ p ] = dsval * ( 3 - p );\n\t\t\t\t\t\t\t\tdtp[ p ] = dtval * ( 3 - p );\n\t\t\t\t\t\t\t\tdsval *= s;\n\t\t\t\t\t\t\t\tdtval *= t;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvsp.fromArray( sp );\n\t\t\t\t\t\tvtp.fromArray( tp );\n\t\t\t\t\t\tvdsp.fromArray( dsp );\n\t\t\t\t\t\tvdtp.fromArray( dtp );\n\n\t\t\t\t\t\t// do for x,y,z\n\t\t\t\t\t\tfor ( let i = 0; i < 3; i ++ ) {\n\n\t\t\t\t\t\t\t// multiply power vectors times matrix to get value\n\t\t\t\t\t\t\ttcoord = vsp.clone();\n\t\t\t\t\t\t\ttcoord.applyMatrix4( mgm[ i ] );\n\t\t\t\t\t\t\tvert[ i ] = tcoord.dot( vtp );\n\n\t\t\t\t\t\t\t// get s and t tangent vectors\n\t\t\t\t\t\t\ttcoord = vdsp.clone();\n\t\t\t\t\t\t\ttcoord.applyMatrix4( mgm[ i ] );\n\t\t\t\t\t\t\tsdir[ i ] = tcoord.dot( vtp );\n\n\t\t\t\t\t\t\ttcoord = vsp.clone();\n\t\t\t\t\t\t\ttcoord.applyMatrix4( mgm[ i ] );\n\t\t\t\t\t\t\ttdir[ i ] = tcoord.dot( vdtp );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find normal\n\t\t\t\t\t\tvsdir.fromArray( sdir );\n\t\t\t\t\t\tvtdir.fromArray( tdir );\n\t\t\t\t\t\tnorm.crossVectors( vtdir, vsdir );\n\t\t\t\t\t\tnorm.normalize();\n\n\t\t\t\t\t\t// if X and Z length is 0, at the cusp, so point the normal up or down, depending on patch number\n\t\t\t\t\t\tif ( vert[ 0 ] === 0 && vert[ 1 ] === 0 ) {\n\n\t\t\t\t\t\t\t// if above the middle of the teapot, normal points up, else down\n\t\t\t\t\t\t\tnormOut.set( 0, vert[ 2 ] > maxHeight2 ? 1 : - 1, 0 );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// standard output: rotate on X axis\n\t\t\t\t\t\t\tnormOut.set( norm.x, norm.z, - norm.y );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// store it all\n\t\t\t\t\t\tvertices[ vertCount ++ ] = trueSize * vert[ 0 ];\n\t\t\t\t\t\tvertices[ vertCount ++ ] = trueSize * ( vert[ 2 ] - maxHeight2 );\n\t\t\t\t\t\tvertices[ vertCount ++ ] = - trueSize * vert[ 1 ];\n\n\t\t\t\t\t\tnormals[ normCount ++ ] = normOut.x;\n\t\t\t\t\t\tnormals[ normCount ++ ] = normOut.y;\n\t\t\t\t\t\tnormals[ normCount ++ ] = normOut.z;\n\n\t\t\t\t\t\tuvs[ uvCount ++ ] = 1 - t;\n\t\t\t\t\t\tuvs[ uvCount ++ ] = 1 - s;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// save the faces\n\t\t\t\tfor ( let sstep = 0; sstep < segments; sstep ++ ) {\n\n\t\t\t\t\tfor ( let tstep = 0; tstep < segments; tstep ++ ) {\n\n\t\t\t\t\t\tconst v1 = surfCount * vertPerRow * vertPerRow + sstep * vertPerRow + tstep;\n\t\t\t\t\t\tconst v2 = v1 + 1;\n\t\t\t\t\t\tconst v3 = v2 + vertPerRow;\n\t\t\t\t\t\tconst v4 = v1 + vertPerRow;\n\n\t\t\t\t\t\t// Normals and UVs cannot be shared. Without clone(), you can see the consequences\n\t\t\t\t\t\t// of sharing if you call geometry.applyMatrix4( matrix ).\n\t\t\t\t\t\tif ( notDegenerate( v1, v2, v3 ) ) {\n\n\t\t\t\t\t\t\tindices[ indexCount ++ ] = v1;\n\t\t\t\t\t\t\tindices[ indexCount ++ ] = v2;\n\t\t\t\t\t\t\tindices[ indexCount ++ ] = v3;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( notDegenerate( v1, v3, v4 ) ) {\n\n\t\t\t\t\t\t\tindices[ indexCount ++ ] = v1;\n\t\t\t\t\t\t\tindices[ indexCount ++ ] = v3;\n\t\t\t\t\t\t\tindices[ indexCount ++ ] = v4;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// increment only if a surface was used\n\t\t\t\tsurfCount ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( new BufferAttribute( indices, 1 ) );\n\t\tthis.setAttribute( 'position', new BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new BufferAttribute( uvs, 2 ) );\n\n\t\tthis.computeBoundingSphere();\n\t}\n\n\tcopy( source ) {\n\t\tsuper.copy( source );\n\n\t\tthis._parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\t}\n\n\tstatic fromJSON(data) {\n\t\treturn new TeapotGeometry(data.size, data.segments, data.bottom, data.lid, data.body, data.fitLid, data.blinn);\n\t}\n}\n\nexport { TeapotGeometry };\n"
  },
  {
    "path": "packages/sdk/lib/core/geometries/index.ts",
    "content": "export {TeapotGeometry} from \"./TeapotGeometry\";"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/animation-timeline.ts",
    "content": "// bundle entry point\n\nexport * from './timeline';\nexport * from './timelineEventsEmitter';\nexport * from './settings/timelineConsts';\n// @ public timeline models.\nexport * from './models/timelineRanged';\nexport * from './models/timelineModel';\nexport * from './models/timelineRow';\nexport * from './models/timelineKeyframe';\n\n// @public styles\nexport * from './settings/timelineOptions';\nexport * from './settings/styles/timelineKeyframeStyle';\nexport * from './settings/styles/timelineRowStyle';\nexport * from './settings/styles/timelineStyle';\nexport * from './settings/styles/timelineGroupStyle';\n\nexport * from './utils/timelineStyleUtils';\nexport * from './utils/timelineUtils';\nexport * from './utils/timelineElement';\n\n// @private helper containers.\nexport * from './utils/timelineSelectable';\nexport * from './utils/timelineCutBoundsRectResults';\nexport * from './utils/timelineSelectionResults';\nexport * from './utils/timelinePoint';\nexport * from './utils/timelineMouseData';\nexport * from './utils/timelineElementDragState';\nexport * from './utils/timelineDraggableData';\n\n// @private virtual model\nexport * from './viewModels/timelineGroupViewModel';\nexport * from './viewModels/timelineKeyframeViewModel';\nexport * from './viewModels/timelineRowViewModel';\nexport * from './viewModels/timelineViewModel';\n\n// @public events\nexport * from './utils/events/timelineKeyframeChangedEvent';\nexport * from './utils/events/timelineTimeChangedEvent';\nexport * from './utils/events/timelineSelectedEvent';\nexport * from './utils/events/timelineScrollEvent';\nexport * from './utils/events/timelineClickEvent';\nexport * from './utils/events/timelineDragEvent';\n\n// @public enums\nexport * from './enums/timelineKeyframeShape';\nexport * from './enums/timelineInteractionMode';\nexport * from './enums/timelineScrollSource';\nexport * from './enums/timelineElementType';\nexport * from './enums/timelineCursorType';\nexport * from './enums/timelineCapShape';\nexport * from './enums/timelineEventSource';\nexport * from './enums/timelineSelectionMode';\nexport * from './enums/timelineEvents';\n// @private defaults are exposed:\nexport * from './settings/defaults/defaultTimelineStyle';\nexport * from './settings/defaults/defaultTimelineRowStyle';\nexport * from './settings/defaults/defaultTimelineOptions';\nexport * from './settings/defaults/defaultTimelineKeyframeStyle';\nexport * from './settings/defaults/defaultTimelineConsts';\nexport * from './settings/defaults/defaultGroupStyle';\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineCapShape.ts",
    "content": "export enum TimelineCapShape {\n  None = 'none',\n  Triangle = 'triangle',\n  Rect = 'rect',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineCursorType.ts",
    "content": "export enum TimelineCursorType {\n  Alias = 'alias',\n  AllScroll = 'all-scroll',\n  Auto = 'auto',\n  Cell = 'cell',\n  ContextMenu = 'context-menu',\n  ColResize = 'col-resize',\n  Copy = 'copy',\n  Crosshair = 'crosshair',\n  Default = 'default',\n  EResize = 'e-resize',\n  EWResize = 'ew-resize',\n  Grab = 'grab',\n  Grabbing = 'grabbing',\n  Help = 'help',\n  Move = 'move',\n  NResize = 'n-resize',\n  NEResize = 'ne-resize',\n  NESWResize = 'nesw-resize',\n  NSResize = 'ns-resize',\n  NWResize = 'nw-resize',\n  NWSEResize = 'nwse-resize',\n  NoDrop = 'no-drop',\n  None = 'none',\n  NotAllowed = 'not-allowed',\n  Pointer = 'pointer',\n  Progress = 'progress',\n  RowResize = 'row-resize',\n  SResize = 's-resize',\n  SEResize = 'se-resize',\n  SWResize = 'sw-resize',\n  Text = 'text',\n  WResize = 'w-resize',\n  Wait = 'wait',\n  ZoomIn = 'zoom-in',\n  ZoomOut = 'zoom-out',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineElementType.ts",
    "content": "/**\n * Internal element type.\n */\nexport enum TimelineElementType {\n  /**\n   * Timeline\n   */\n  Timeline = 'timeline',\n  /**\n   * Keyframes\n   */\n  Keyframe = 'keyframe',\n  /**\n   * Keyframes connected and presenting one group.\n   */\n  Group = 'group',\n  /**\n   * Timeline row.\n   */\n  Row = 'row',\n  None = 'none',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineEventSource.ts",
    "content": "export enum TimelineEventSource {\n  /**\n   * Changed by user interaction events.\n   */\n  User = 'user',\n  /**\n   * Changed programmatically.\n   */\n  Programmatically = 'programmatically',\n  /**\n   * Changed by the set time function.\n   */\n  SetTimeMethod = 'setTimeMethod',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineEvents.ts",
    "content": "/**\n * Event names of the component.\n */\nexport enum TimelineEvents {\n  Selected = 'selected',\n  TimeChanged = 'timechanged',\n  KeyframeChanged = 'keyframeChanged',\n  DragStarted = 'dragStarted',\n  Drag = 'drag',\n  DragFinished = 'dragFinished',\n  Scroll = 'scroll',\n  ScrollFinished = 'scrollFinished',\n  ContextMenu = 'onContextMenu',\n  DoubleClick = 'doubleClick',\n  MouseDown = 'mouseDown',\n  Zoom = 'zoom',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineInteractionMode.ts",
    "content": "export enum TimelineInteractionMode {\n  /**\n   * Keyframe selection tool selecting single or group of keyframes.\n   */\n  Selection = 'selection',\n  /**\n   * Pan tool with the possibility to select keyframes.\n   */\n  Pan = 'pan',\n  /**\n   * Allow only pan without any keyframes interaction.\n   * Timeline still can be moved and controlled by option 'timelineDraggable'.\n   */\n  NonInteractivePan = 'nonInteractivePan',\n  /**\n   * Zoom tool.\n   */\n  Zoom = 'zoom',\n\n  /**\n   * No iteraction, except moving a timeline.\n   * Timeline still can be moved and controlled by option 'timelineDraggable'.\n   */\n  None = 'none',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineKeyframeShape.ts",
    "content": "export enum TimelineKeyframeShape {\n  None = 'none',\n  Rhomb = 'rhomb',\n  Circle = 'circle',\n  Rect = 'rect',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineScrollSource.ts",
    "content": "export enum TimelineScrollSource {\n  DefaultMode = 'none',\n  ZoomMode = 'zoom',\n  ScrollBySelection = 'scrollBySelection',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineSelectionEventSource.ts",
    "content": "/**\n * Timeline selection event type.\n */\nexport enum TimelineSelectionEventSource {\n  /**\n   * Keyframe selection is performed.\n   */\n  Keyframes = 'keyframes',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/enums/timelineSelectionMode.ts",
    "content": "/**\n * Timeline selection mode.\n */\nexport enum TimelineSelectionMode {\n  /**\n   * Select new items. deselect changed.\n   */\n  Normal = 'normal',\n  /**\n   * Append current selection.\n   */\n  Append = 'append',\n  /**\n   * Revert selection of a specified nodes.\n   */\n  Revert = 'revert',\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/models/timelineGroup.ts",
    "content": "import { TimelineKeyframeStyle } from '../settings/styles/timelineKeyframeStyle';\nimport { TimelineGroupStyle } from '../settings/styles/timelineGroupStyle';\n/**\n * Timeline group view model.\n */\nexport interface TimelineGroup {\n  /**\n   * Group style.\n   */\n  style: TimelineGroupStyle;\n  /**\n   * Child keyframes style.\n   */\n  keyframesStyle?: TimelineKeyframeStyle;\n  /**\n   * Whether group is draggable.\n   * Considered to be false when really set as false.\n   */\n  draggable?: boolean;\n  /**\n   * Whether group keyframes are draggable.\n   */\n  keyframesDraggable?: boolean;\n  /**\n   * Whether group is hidden.\n   */\n  hidden?: boolean;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/models/timelineKeyframe.ts",
    "content": "import { TimelineKeyframeStyle } from '../settings/styles/timelineKeyframeStyle';\nimport { TimelineSelectable } from '../utils/timelineSelectable';\nimport { TimelineRanged } from './timelineRanged';\nimport { TimelineGroup } from './timelineGroup';\n\nexport interface TimelineKeyframe extends TimelineSelectable, TimelineRanged {\n  /**\n   * Keyframe value.\n   */\n  val: number;\n  /**\n   * Related keyframe group.\n   * Timeline keyframes groups are rendered as one instance.\n   */\n  group?: string | TimelineGroup;\n  /**\n   * Keyframe style.\n   */\n  style?: TimelineKeyframeStyle;\n  /**\n   * Whether keyframe is hidden.\n   */\n  hidden?: boolean;\n  /**\n   * Whether group is draggable.\n   * Considered to be false when really set as false.\n   */\n  draggable?: boolean;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/models/timelineModel.ts",
    "content": "import { TimelineRow } from './timelineRow';\nexport interface TimelineModel {\n  rows: TimelineRow[];\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/models/timelineRanged.ts",
    "content": "export interface TimelineRanged {\n  /**\n   * min\n   */\n  min?: number | null;\n  /**\n   * max.\n   */\n  max?: number | null;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/models/timelineRow.ts",
    "content": "import { TimelineKeyframe } from './timelineKeyframe';\nimport { TimelineRowStyle } from '../settings/styles/timelineRowStyle';\nimport { TimelineRanged } from './timelineRanged';\n\nexport interface TimelineRow extends TimelineRanged {\n  style?: TimelineRowStyle;\n  keyframes?: TimelineKeyframe[] | null;\n  hidden?: boolean;\n  /**\n   * Whether group keyframes are draggable.\n   */\n  keyframesDraggable?: boolean;\n  groupsDraggable?: boolean;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultGroupStyle.ts",
    "content": "import { TimelineGroupStyle } from '../styles/timelineGroupStyle';\nexport const defaultRowHeight = 24;\nconst margin = 4;\nexport const defaultGroupStyle = {\n    height: 'auto',\n    marginTop: margin,\n    /**\n     * Default group fill color.\n     */\n    fillColor: '#094771',\n    /**\n     * 组默认文本设置\n     */\n    text: {\n        label: \"\",\n        isStroke:false,\n        font: '10px sans-serif',\n        textAlign: 'center',\n        textBaseline: 'middle',\n        direction:\"inherit\",\n        fillColor: '#fff'\n    }\n} as TimelineGroupStyle;\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineConsts.ts",
    "content": "import { TimelineConsts } from '../timelineConsts';\n\nexport const defaultTimelineConsts: TimelineConsts = {\n  /**\n   * Private. Auto pan speed.\n   */\n  autoPanSpeed: 50,\n  /**\n   * Private. scroll speed when mouse drag is used (from 0 to 1)\n   */\n  scrollByDragSpeed: 0.12,\n  /**\n   * Private. Determine whether item was clicked.\n   */\n  clickDetectionMs: 120,\n  /**\n   * Private. Timeout to detect double click.\n   */\n  doubleClickTimeoutMs: 400,\n  /**\n   * Private. Time in ms used to refresh scrollbars when pan is finished.\n   */\n  scrollFinishedTimeoutMs: 500,\n  /**\n   * Private. Auto pan padding\n   */\n  autoPanByScrollPadding: 10,\n  /**\n   * Private. Click threshold\n   */\n  clickThreshold: 3,\n  /**\n   * Private. Private.Click min radius for the elements detection.\n   */\n  clickDetectionMinRadius: 2,\n  /**\n   * Private. Skip some auto pan/scroll actions if they are executed more rapid than this value.\n   */\n  autoPanSpeedLimit: 10,\n  /**\n   * Private. Default auto size for the group. It's percents.\n   */\n  defaultGroupHeight: 0.7,\n} as TimelineConsts;\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineKeyframeStyle.ts",
    "content": "import { TimelineKeyframeShape } from '../../enums/timelineKeyframeShape';\nimport { TimelineKeyframeStyle } from '../styles/timelineKeyframeStyle';\n\nexport const defaultTimelineKeyframeStyle = {\n  /**\n   * keyframe fill color.\n   */\n  fillColor: 'DarkOrange',\n  shape: TimelineKeyframeShape.Rhomb,\n  /**\n   * Selected keyframe fill color.\n   */\n  selectedFillColor: 'red',\n  strokeColor: 'black',\n  selectedStrokeColor: 'black',\n  strokeThickness: 0.2,\n  height: 'auto',\n  width: 'auto',\n} as TimelineKeyframeStyle;\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineOptions.ts",
    "content": "import { TimelineOptions } from '../timelineOptions';\nimport { defaultGroupStyle } from './defaultGroupStyle';\nimport { defaultTimelineKeyframeStyle } from './defaultTimelineKeyframeStyle';\nimport { defaultTimelineRowStyle } from './defaultTimelineRowStyle';\nimport { defaultTimelineStyle } from './defaultTimelineStyle';\n\nexport const defaultTimelineOptions = {\n  /**\n   *  Snap all selected keyframes as a bundle during the drag.\n   */\n  snapAllKeyframesOnMove: false,\n\n  /**\n   * Check whether snapping is enabled.\n   */\n  snapEnabled: true,\n\n  /**\n   * Timeline style.\n   */\n  timelineStyle: defaultTimelineStyle,\n  /**\n   * approximate step for the timeline in pixels for 1 second\n   */\n  stepPx: 120,\n  /**\n   * Number of units that should fit into one stepPx. (1 second by a default)\n   */\n  stepVal: 1000,\n  stepSmallPx: 30,\n  /**\n   * Snap step in units. from 0 to stepVal\n   */\n  snapStep: 200,\n  /**\n   * additional left margin in pixels to start the line gauge from.\n   */\n  leftMargin: 25,\n  headerFillColor: '#101011',\n  fillColor: '#101011',\n\n  labelsColor: '#D5D5D5',\n  /**\n   * Header gauge tick color.\n   */\n  tickColor: '#D5D5D5',\n  /**\n   * Selection rectangle color.\n   */\n  selectionColor: 'White',\n\n  /**\n   * Default rows style.\n   * Can be overridden by setting style individually for each row.\n   */\n  rowsStyle: defaultTimelineRowStyle,\n\n  /**\n   * Style for the all keyframes in a current row.\n   * Individual keyframe can have own style.\n   */\n  keyframesStyle: defaultTimelineKeyframeStyle,\n  /**\n   * Style of the groups.\n   */\n  groupsStyle: defaultGroupStyle,\n  /**\n   * Header height in pixels\n   */\n  headerHeight: 30,\n  font: '11px sans-serif',\n  /**\n   * Default zoom level = 1. where screen pixels are equals to the corresponding stepVal stepPx.\n   */\n  zoom: 1,\n  /**\n   * Default zoom speed.\n   */\n  zoomSpeed: 0.1,\n  /**\n   * Max zoom value.\n   */\n  zoomMin: 0.1,\n  /**\n   * Min zoom value.\n   */\n  zoomMax: 8,\n  /**\n   * Set this to true in a MAC OS environment: The Meta key will be used instead of the Ctrl key.\n   */\n  controlKeyIsMetaKey: false,\n  /**\n   * Access the scroll container via this class for e.g. scroll bar styling.\n   */\n  scrollContainerClass: 'scroll-container',\n  /**\n   * keyframes group is draggable.\n   */\n  groupsDraggable: true,\n  /**\n   * keyframes are draggable.\n   */\n  keyframesDraggable: true,\n  /**\n   * Timeline can be dragged or position can be changed by user interaction. Default: true\n   */\n  timelineDraggable: true,\n  /**\n   * Start drawing timeline from this min point.\n   * Bounds for the keyframe dragging.\n   */\n  min: 0,\n  /**\n   * Max bounds timeline can navigate to.\n   */\n  max: Number.MAX_VALUE,\n} as TimelineOptions;\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineRowStyle.ts",
    "content": "import { TimelineRowStyle } from '../styles/timelineRowStyle';\nimport { defaultGroupStyle, defaultRowHeight } from './defaultGroupStyle';\nimport { defaultTimelineKeyframeStyle } from './defaultTimelineKeyframeStyle';\n\nexport const defaultTimelineRowStyle = {\n  /**\n   * Row height in pixels.\n   */\n  height: defaultRowHeight,\n  marginBottom: 2,\n  fillColor: '#252526',\n  /**\n   * Style for the all keyframes in a current row.\n   * Individual keyframe can have own style.\n   */\n  keyframesStyle: defaultTimelineKeyframeStyle,\n  /**\n   * Style of the groups.\n   */\n  groupsStyle: defaultGroupStyle,\n} as TimelineRowStyle;\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineStyle.ts",
    "content": "import { TimelineCapShape } from '../../enums/timelineCapShape';\nimport { TimelineCursorType } from '../../enums/timelineCursorType';\nimport { TimelineStyle } from '../styles/timelineStyle';\n\nexport const defaultTimelineStyle = {\n  width: 2,\n  marginTop: 15,\n  marginBottom: 0,\n  strokeColor: 'DarkOrange',\n  fillColor: 'DarkOrange',\n  capStyle: {\n    width: 4,\n    height: 10,\n    /**\n     * Draw timeline rectangular cap.\n     */\n    capType: TimelineCapShape.Rect,\n    strokeColor: 'DarkOrange',\n    fillColor: 'DarkOrange',\n  },\n  cursor: TimelineCursorType.EWResize,\n} as TimelineStyle;\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineCapStyle.ts",
    "content": "import { TimelineCapShape } from '../../enums/timelineCapShape';\n\n/**\n * Timeline active/current value indicator style.\n */\nexport interface TimelineCapStyle {\n  /**\n   * Cap style width in pixels.\n   */\n  width?: number;\n  /**\n   * Cap style height in pixels.\n   */\n  height?: number;\n  /**\n   * Cap stroke color.\n   */\n  strokeColor?: string;\n  /**\n   * Cap fill color.\n   */\n  fillColor?: string;\n  /**\n   * Cap type\n   */\n  capType?: TimelineCapShape;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineGroupStyle.ts",
    "content": "import { TimelineCursorType } from '../../enums/timelineCursorType';\nimport { TimelineKeyframeStyle } from '../styles/timelineKeyframeStyle';\n\n/**\n * Timeline group style.\n */\nexport interface TimelineGroupStyle {\n    /**\n     * Keyframes style height in pixels.\n     * 'auto' to automatically calculate.\n     */\n    height?: number | string;\n    /**\n     * Group stroke color.\n     */\n    strokeColor?: string;\n    /**\n     * Group stroke thickness.\n     */\n    strokeThickness?: number | null;\n\n    /**\n     * Group border radius. See canvas roundRect official documentation.\n     */\n    radii?: number | DOMPointInit | Iterable<number | DOMPointInit>;\n\n    /**\n     * Group fill color.\n     */\n    fillColor?: string;\n    /**\n     * Group mouse over cursor style.\n     */\n    cursor?: TimelineCursorType;\n    /**\n     * Margin top in px or 'auto' to center element.\n     */\n    marginTop?: number | string;\n    /**\n     * Style for all the keyframes in the current group.\n     */\n    keyframesStyle?: TimelineKeyframeStyle;\n\n    /**\n     * 组默认文本设置\n     */\n    text?: {\n        label?: string,\n        isStroke?: boolean,\n        font?: string,\n        textAlign?: \"start\" | \"end\" | \"left\" | \"right\" | \"center\",\n        textBaseline?: \"top\" | \"hanging\" | \"middle\" | \"alphabetic\" | \"ideographic\" | \"bottom\",\n        direction?: \"ltr\" | \"rtl\" | \"inherit\",\n        fillColor?: string,\n    }\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineKeyframeStyle.ts",
    "content": "import { TimelineCursorType } from '../../enums/timelineCursorType';\nimport { TimelineKeyframeShape } from '../../enums/timelineKeyframeShape';\n\nexport interface TimelineKeyframeStyle {\n  /**\n   * Timeline cursor style.\n   */\n  cursor?: TimelineCursorType;\n  /**\n   * Timeline keyframe shape\n   */\n  shape?: TimelineKeyframeShape;\n  /**\n   * keyframe size, number or text 'auto'\n   */\n  height?: number | string;\n  /**\n   * keyframe size, number or text 'auto'\n   */\n  width?: number | string;\n  /**\n   * Keyframe fill color\n   */\n  fillColor?: string | null;\n  /**\n   * Keyframe selected fill color.\n   */\n  selectedFillColor?: string | null;\n  /**\n   * Keyframe stroke color.\n   */\n  strokeColor?: string | null;\n  /**\n   * Keyframe selected stroke color.\n   */\n  selectedStrokeColor?: string | null;\n  /**\n   * Keyframe stroke Thickness.\n   */\n  strokeThickness?: number | null;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineRowStyle.ts",
    "content": "import { TimelineGroupStyle } from './timelineGroupStyle';\nimport { TimelineKeyframeStyle } from './timelineKeyframeStyle';\n\n/**\n * Style of the row.\n */\nexport interface TimelineRowStyle {\n  /**\n   * Size of the row in pixels.\n   */\n  height?: number;\n  /**\n   * Track fill color.\n   */\n  fillColor?: string;\n  /**\n   * Row margin bottom in pixels between tracks/rows.\n   */\n  marginBottom?: number;\n  /**\n   * Style for the all keyframes in a current row.\n   * Individual keyframe can have own style.\n   */\n  keyframesStyle?: TimelineKeyframeStyle;\n  /**\n   * Style of the groups. Keyframe groups can be also styles separately.\n   */\n  groupsStyle?: TimelineGroupStyle;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineStyle.ts",
    "content": "import { TimelineCursorType } from '../../enums/timelineCursorType';\nimport { TimelineCapStyle } from './timelineCapStyle';\n\n/**\n * Timeline active/current value indicator style.\n */\nexport interface TimelineStyle {\n  width?: number;\n  /**\n   * Margin top in pixels.\n   */\n  marginTop?: number;\n  /**\n   * Margin bottom in pixels.\n   */\n  marginBottom?: number;\n  /**\n   * Timeline top cap style.\n   */\n  capStyle?: TimelineCapStyle;\n  /**\n   * Timeline indicator stroke color.\n   */\n  strokeColor?: string;\n  /**\n   * Timeline fill color.\n   */\n  fillColor?: string;\n  /**\n   * Timeline cursor.\n   */\n  cursor?: TimelineCursorType;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/timelineConsts.ts",
    "content": "/**\n * Internal components consts.\n * Still can be changed thru private property _consts but this is discouraged.\n */\nexport interface TimelineConsts {\n  /**\n   * Auto pan speed.\n   */\n  autoPanSpeed: number;\n  /**\n   * scroll speed when mouse drag is used (from 0 to 1)\n   */\n  scrollByDragSpeed: number;\n  /**\n   * Determine whether item was clicked.\n   */\n  clickDetectionMs: number;\n  /**\n   * Timeout to detect double click.\n   */\n  doubleClickTimeoutMs: number;\n  /**\n   * Time in ms used to refresh scrollbars when pan is finished.\n   */\n  scrollFinishedTimeoutMs: number;\n  /**\n   * Auto pan padding\n   */\n  autoPanByScrollPadding: number;\n  /**\n   * Click threshold\n   */\n  clickThreshold: number;\n\n  /**\n   * Click min radius for the elements detection.\n   */\n  clickDetectionMinRadius: number;\n  /**\n   * Default auto size for the group. It's percents.\n   */\n  autoPanSpeedLimit: number;\n  /**\n   * Default auto size for the group. It's percents.\n   */\n  defaultGroupHeight: number;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/settings/timelineOptions.ts",
    "content": "import { TimelineRowStyle } from './styles/timelineRowStyle';\nimport { TimelineStyle } from './styles/timelineStyle';\nimport { TimelineRanged } from '../models/timelineRanged';\n\nexport interface TimelineOptions extends TimelineRanged {\n  /**\n   * Id 或时间轴容器的 HTMLElement\n   */\n  id?: string | HTMLElement | null;\n  /**\n   * 检查是否启用了捕捉\n   */\n  snapEnabled?: boolean;\n  /**\n   *  拖动时将所有选定的关键帧合并为一个包.\n   */\n  snapAllKeyframesOnMove?: boolean;\n  /**\n   * 以像素为单位的时间轴的近似步长为1秒\n   */\n  stepPx?: number;\n  /**\n   * 一个步骤中应该包含的点的个数。\n   */\n  stepVal?: number;\n  stepSmallPx?: number;\n  /**\n   * 以单位表示。从0到stepVal\n   */\n  snapStep?: number;\n  /**\n   * 以像素为单位增加左页边距，从该值开始计算行距.\n   */\n  leftMargin?: number;\n  /**\n   * 组件header背景颜色.\n   */\n  headerFillColor?: string;\n  /**\n   * 组件背景颜色.\n   */\n  fillColor?: string;\n  /**\n   * 标题标签颜色.\n   */\n  labelsColor?: string;\n  /**\n   * 标题刻度条颜色.\n   */\n  tickColor?: string;\n  /**\n   * 选择矩形颜色.\n   */\n  selectionColor?: string;\n\n  /**\n   * 标题高度（以像素为单位）。\n   */\n  headerHeight?: number;\n  /**\n   * Header ticks font\n   */\n  font?: string;\n  /**\n   * Default zoom level = 1. where screen pixels are equals to the corresponding stepVal stepPx.\n   */\n  zoom?: number;\n  /**\n   * Default zoom speed.\n   */\n  zoomSpeed?: number;\n  /**\n   * Max zoom value.\n   */\n  zoomMin?: number;\n  /**\n   * Min zoom value.\n   */\n  zoomMax?: number;\n  /**\n   * Set this to true in a MAC OS environment: The Meta key will be used instead of the Ctrl key.\n   */\n  controlKeyIsMetaKey?: boolean;\n  /**\n   * Access the scroll container via this class for e.g. scroll bar styling.\n   */\n  scrollContainerClass?: string;\n  /**\n   * Default rows style.\n   * Can be overridden by setting style individually for each row.\n   */\n  rowsStyle?: TimelineRowStyle;\n  /**\n   * Timeline indicator style.\n   */\n  timelineStyle?: TimelineStyle;\n\n  /**\n   * keyframes group is draggable. Default: true\n   */\n  groupsDraggable?: boolean;\n  /**\n   * keyframes group is draggable. Default: true\n   */\n  keyframesDraggable?: boolean;\n  /**\n   * Timeline can be dragged or position can be changed by user interaction. Default: true\n   */\n  timelineDraggable?: boolean;\n\n  /**\n   * Array of the denominators used to determine 'beautiful' numbers to be rendered for the gauge.\n   * Default: [1, 2, 5, 10];\n   */\n  denominators?: number[];\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/timeline.ts",
    "content": "/* eslint-disable @typescript-eslint/no-explicit-any */\n// bundle entry point\n\nimport { TimelineEventsEmitter } from './timelineEventsEmitter';\nimport { TimelineConsts } from './settings/timelineConsts';\n\n// @public timeline models\nimport { TimelineRanged } from './models/timelineRanged';\nimport { TimelineModel } from './models/timelineModel';\nimport { TimelineRow } from './models/timelineRow';\nimport { TimelineKeyframe } from './models/timelineKeyframe';\n// @public styles\nimport { TimelineOptions } from './settings/timelineOptions';\n\nimport { TimelineStyleUtils } from './utils/timelineStyleUtils';\nimport { TimelineUtils } from './utils/timelineUtils';\nimport { TimelineElement } from './utils/timelineElement';\n\n// @private helper containers.\nimport { TimelineCutBoundsRectResults } from './utils/timelineCutBoundsRectResults';\nimport { TimelineSelectionResults } from './utils/timelineSelectionResults';\nimport { TimelineMouseData } from './utils/timelineMouseData';\nimport { TimelineElementDragState } from './utils/timelineElementDragState';\nimport { TimelineDraggableData } from './utils/timelineDraggableData';\n\n// @private virtual model\nimport { TimelineGroupViewModel } from './viewModels/timelineGroupViewModel';\nimport { TimelineKeyframeViewModel } from './viewModels/timelineKeyframeViewModel';\nimport { TimelineRowViewModel } from './viewModels/timelineRowViewModel';\nimport { TimelineViewModel } from './viewModels/timelineViewModel';\n\n// @public events\nimport { TimelineKeyframeChangedEvent } from './utils/events/timelineKeyframeChangedEvent';\nimport { TimelineTimeChangedEvent } from './utils/events/timelineTimeChangedEvent';\nimport { TimelineSelectedEvent } from './utils/events/timelineSelectedEvent';\nimport { TimelineScrollEvent } from './utils/events/timelineScrollEvent';\nimport { TimelineClickEvent } from './utils/events/timelineClickEvent';\nimport { TimelineDragEvent } from './utils/events/timelineDragEvent';\n\n// @public enums\nimport { TimelineKeyframeShape } from './enums/timelineKeyframeShape';\nimport { TimelineInteractionMode } from './enums/timelineInteractionMode';\nimport { TimelineElementType } from './enums/timelineElementType';\nimport { TimelineCursorType } from './enums/timelineCursorType';\nimport { TimelineCapShape } from './enums/timelineCapShape';\nimport { TimelineEventSource } from './enums/timelineEventSource';\nimport { TimelineSelectionMode } from './enums/timelineSelectionMode';\nimport { TimelineEvents } from './enums/timelineEvents';\n// @private defaults are exposed:\n\nimport { TimelineScrollSource } from './enums/timelineScrollSource';\nimport { defaultTimelineConsts } from './settings/defaults/defaultTimelineConsts';\nimport { defaultTimelineOptions } from './settings/defaults/defaultTimelineOptions';\nimport { remToPxNumber } from \"@/utils\";\n\nexport class Timeline extends TimelineEventsEmitter {\n    /**\n     * component container.\n     */\n    _container: HTMLElement | null = null;\n    /**\n     * Dynamically generated canvas inside of the container.\n     */\n    _canvas: HTMLCanvasElement | null = null;\n    /**\n     * Dynamically generated scroll container.\n     */\n    _scrollContainer: HTMLElement | null = null;\n    /**\n     * Dynamically generated virtual scroll content.\n     * While canvas has no real size, this element is used to create virtual scroll on the parent element.\n     */\n    _scrollContent: HTMLElement | null = null;\n    /**\n     * Rendering context\n     */\n    _ctx: CanvasRenderingContext2D | null = null;\n    /**\n     * Components settings\n     */\n    _options!: TimelineOptions;\n    /**\n     * Drag start position.\n     */\n    _startPosMouseArgs: TimelineMouseData | null = null;\n    /**\n     * Drag scroll started position.\n     */\n    _scrollStartPos: DOMPoint | null = null;\n    /**\n     * Private. Current mouse position that is used to track values between mouse up/down events.\n     * Can be null, use public methods and properties instead.\n     */\n    _currentPos: TimelineMouseData | null = null;\n\n    /**\n     * Private. Current active mouse area selection rectangle displayed during the mouse up/down drag events.\n     */\n    _selectionRect: DOMRect | null = null;\n    /**\n     * Private. Whether selection rectangle is displayed.\n     */\n    _selectionRectEnabled = false;\n    /**\n     * Private. Information in regard of current active drag state.\n     */\n    _drag: TimelineDraggableData | null = null;\n    _startedDragWithCtrl = false;\n    _startedDragWithShiftKey = false;\n    _scrollProgrammatically = false;\n    _clickTimeout: number | null = null;\n    _lastClickTime = 0;\n    _lastClickPoint: DOMPoint | null = null;\n    _consts: TimelineConsts = defaultTimelineConsts;\n    /**\n     * Private. whether click is allowed.\n     */\n    _clickAllowed = false;\n    /**\n     * Private. scroll finished timer reference.\n     */\n    _scrollFinishedTimerRef?: number | null = null;\n    /**\n     * Private.Current timeline position.\n     * Please use public get\\set methods to properly change the timeline position.\n     */\n    _val = 0;\n    _pixelRatio = 1;\n    /**\n     * Private. Current zoom level. Please use publicly available properties to set zoom levels.\n     */\n    _currentZoom = 0;\n    /**\n     * Private. Ref for the auto pan scroll interval.\n     */\n    _intervalRef?: number | null = null;\n    /**\n     * Private.\n     * When last auto pan scroll action was started.\n     */\n    _autoPanLastActionDate = 0;\n    /**\n     * Private.\n     * Is pan mouse interactions are started.\n     */\n    _isPanStarted = false;\n    /**\n     * Private.\n     * Component interaction mode. Please use publicly available methods.\n     */\n    _interactionMode = TimelineInteractionMode.Selection;\n\n    _lastUsedArgs: MouseEvent | TouchEvent | null = null;\n    /**\n     * Private.\n     * Current set timeline model.\n     */\n    _model: TimelineModel | null = null;\n    /**\n     * Private.\n     * Indication when scroll are drag or click is started.\n     */\n    _scrollAreaClickOrDragStarted = false;\n    /**\n     * Create Timeline instance\n     * @param options Timeline settings.\n     * @param model Timeline model.\n     */\n    constructor(options: TimelineOptions | null = null, model: TimelineModel | null = null) {\n        super();\n        this._options = TimelineUtils.cloneOptions(defaultTimelineOptions);\n        // Allow to create instance without an error to perform tests.\n        if (options || model) {\n            this.initialize(options, model);\n        }\n    }\n\n    /**\n     * Initialize Timeline\n     * @param options Timeline settings.\n     * @param model Timeline model.\n     */\n    public initialize = (options: TimelineOptions | null, model: TimelineModel | null): void => {\n        this._model = model;\n        if (!options || !options.id) {\n            throw new Error(`Element cannot be empty. Should be string or DOM element.`);\n        }\n\n        this._generateContainers(options.id);\n        this._options = TimelineUtils.cloneOptions(defaultTimelineOptions);\n        if (options) {\n            this._options = this._setOptions(options);\n        }\n        this._subscribeComponentEvents();\n        this.rescale();\n        this.redraw();\n    };\n\n    /**\n     * Generate component html.\n     * @param id container.\n     */\n    _generateContainers = (id: string | HTMLElement): void => {\n        if (id instanceof HTMLElement) {\n            this._container = id as HTMLElement;\n        } else {\n            this._container = document.getElementById(id);\n        }\n\n        if (!this._container) {\n            throw new Error(`Element cannot be empty. Should be string or DOM element.`);\n        }\n\n        this._scrollContainer = document.createElement('div');\n        this._scrollContent = document.createElement('div');\n        this._canvas = document.createElement('canvas');\n\n        if (!this._canvas || !this._canvas.getContext) {\n            console.log('Cannot initialize canvas context.');\n            return;\n        }\n        this._container.innerHTML = '';\n        this._container.style.position = 'relative';\n        // Generate size container:\n        this._canvas.style.cssText =\n            'image-rendering: -moz-crisp-edges;' +\n            'image-rendering: -webkit-crisp-edges;' +\n            'image-rendering: pixelated;' +\n            'image-rendering: crisp-edges;' +\n            'user-select: none;' +\n            '-webkit-user-select: none;' +\n            '-khtml-user-select: none;' +\n            '-moz-user-select: none;' +\n            '-o-user-select: none;' +\n            'user-select: none;' +\n            'touch-action: none;' +\n            'position: relative;' +\n            '-webkit-user-drag: none;' +\n            '-khtml-user-drag: none;' +\n            '-moz-user-drag: none;' +\n            '-o-user-drag: none;' +\n            'user-drag: none;' +\n            'padding: inherit';\n\n        // Those styles are hardcoded and required for the proper scrolling.\n        this._scrollContainer.style.cssText = 'overflow: scroll;' + 'position: absolute;' + 'width:  100%;' + 'height:  100%;';\n        this._scrollContent.style.width = this._scrollContent.style.height = '100%';\n\n        // add the text node to the created div\n        this._scrollContainer.appendChild(this._scrollContent);\n        this._container.appendChild(this._scrollContainer);\n        const scrollBarWidth = this._scrollContainer.offsetWidth - this._scrollContent.clientWidth;\n        // Calculate current browser scrollbar size and add offset for the canvas\n        this._canvas.style.width = this._canvas.style.height = 'calc(100% -' + (scrollBarWidth || 17) + 'px)';\n\n        this._container.appendChild(this._canvas);\n        this._ctx = this._getCtx();\n    };\n    /**\n     * Get drawing context\n     */\n    _getCtx(): CanvasRenderingContext2D | null {\n        if (!this._canvas) {\n            return null;\n        }\n        if (this._ctx) {\n            return this._ctx;\n        }\n        this._ctx = this._canvas.getContext('2d');\n        return this._ctx;\n    }\n    /**\n     * Subscribe current component on the related events.\n     * Private. Use initialize method instead.\n     */\n    _subscribeComponentEvents = (): void => {\n        // Allow to call event multiple times, revoke current subscription and subscribe again.\n        this._unsubscribeComponentEvents();\n        if (!this._container || !this._scrollContainer || !this._canvas) {\n            throw Error(`Cannot subscribe on scroll events while one of the containers is null or empty. Please call initialize method first`);\n        }\n        if (this._container) {\n            this._container.addEventListener('wheel', this._handleWheelEvent);\n        }\n        if (this._scrollContainer) {\n            this._scrollContainer.addEventListener('scroll', this._handleScrollEvent);\n            this._scrollContainer.addEventListener('touchstart', this._handleScrollMouseDownEvent);\n            this._scrollContainer.addEventListener('mousedown', this._handleScrollMouseDownEvent);\n        }\n        document.addEventListener('keyup', this._handleKeyUp, false);\n        document.addEventListener('keydown', this._handleKeyDown, false);\n        window.addEventListener('blur', this._handleBlurEvent, false);\n        window.addEventListener('resize', this._handleWindowResizeEvent, false);\n        if (this._canvas) {\n            this._canvas.addEventListener('touchstart', this._handleMouseDownEvent, false);\n            this._canvas.addEventListener('mousedown', this._handleMouseDownEvent, false);\n            this._canvas.addEventListener('contextmenu', this._handleContextMenu, false);\n        }\n        window.addEventListener('mousemove', this._handleMouseMoveEvent, false);\n        window.addEventListener('touchmove', this._handleMouseMoveEvent, false);\n        window.addEventListener('mouseup', this._handleMouseUpEvent, false);\n        window.addEventListener('touchend', this._handleMouseUpEvent, false);\n    };\n\n    /**\n     * Private. Use dispose method instead.\n     */\n    _unsubscribeComponentEvents = (): void => {\n        this._container?.removeEventListener('wheel', this._handleWheelEvent);\n\n        if (this._scrollContainer) {\n            this._scrollContainer.removeEventListener('scroll', this._handleScrollEvent);\n            this._scrollContainer.removeEventListener('touchstart', this._handleScrollMouseDownEvent);\n            this._scrollContainer.removeEventListener('mousedown', this._handleScrollMouseDownEvent);\n        } else {\n            console.warn(`Cannot unsubscribe scroll while it's already empty`);\n        }\n        window.removeEventListener('blur', this._handleBlurEvent);\n        window.removeEventListener('resize', this._handleWindowResizeEvent);\n        document.removeEventListener('keydown', this._handleKeyDown);\n        document.removeEventListener('keyup', this._handleKeyUp);\n        if (this._canvas) {\n            this._canvas.removeEventListener('touchstart', this._handleMouseDownEvent);\n            this._canvas.removeEventListener('mousedown', this._handleMouseDownEvent);\n            this._canvas.removeEventListener('contextmenu', this._handleContextMenu);\n        } else {\n            console.warn(`Cannot unsubscribe canvas while it's already empty`);\n        }\n        window.removeEventListener('mousemove', this._handleMouseMoveEvent);\n        window.removeEventListener('touchmove', this._handleMouseMoveEvent);\n        window.removeEventListener('mouseup', this._handleMouseUpEvent);\n        window.removeEventListener('touchend', this._handleMouseUpEvent);\n    };\n    /**\n     * Dispose current component: unsubscribe component and user events.\n     */\n    public dispose = (): void => {\n        // Unsubscribe all user events.\n        this.offAll();\n        // Stop times\n        this._stopAutoPan();\n        this._clearScrollFinishedTimer();\n        this._unsubscribeComponentEvents();\n        if (this._container) {\n            this._container.innerHTML = '';\n        }\n        this._container = null;\n        this._canvas = null;\n        this._scrollContainer = null;\n        this._scrollContent = null;\n        this._ctx = null;\n        this._cleanUpSelection();\n    };\n    /**\n     * On key up is received.\n     */\n    _handleKeyUp = (event: KeyboardEvent): void => {\n        if (this._interactionMode === TimelineInteractionMode.Zoom) {\n            this._setZoomCursor(event);\n        }\n    };\n    /**\n     * On key down is received.\n     */\n    _handleKeyDown = (event: KeyboardEvent): void => {\n        if (this._interactionMode === TimelineInteractionMode.Zoom) {\n            this._setZoomCursor(event);\n        }\n    };\n    _setZoomCursor = (e: MouseEvent | KeyboardEvent): void => {\n        if (this._controlKeyPressed(e)) {\n            this._setCursor(TimelineCursorType.ZoomOut);\n        } else {\n            this._setCursor(TimelineCursorType.ZoomIn);\n        }\n    };\n    _handleBlurEvent = (): void => {\n        this._cleanUpSelection(true);\n    };\n    _handleWindowResizeEvent = (): void => {\n        // Rescale and redraw\n        this.rescale();\n        this.redraw();\n    };\n\n    _clearScrollFinishedTimer = (): void => {\n        if (this._scrollFinishedTimerRef) {\n            clearTimeout(this._scrollFinishedTimerRef);\n            this._scrollFinishedTimerRef = null;\n        }\n    };\n    _handleScrollMouseDownEvent = (): void => {\n        this._scrollAreaClickOrDragStarted = true;\n    };\n    _handleScrollEvent = (args: Event): void => {\n        const scrollProgrammatically = this._scrollProgrammatically;\n        if (this._scrollProgrammatically) {\n            this._scrollProgrammatically = false;\n        }\n        // Stop previous running timeout.\n        this._clearScrollFinishedTimer();\n        // Set a timeout to run event 'scrolling end'.\n        // Auto scroll is used to repeat scroll when drag element or select items outside of the visible area.\n        this._scrollFinishedTimerRef = window.setTimeout(() => {\n            if (!this._isPanStarted) {\n                this._clearScrollFinishedTimer();\n\n                this.rescale();\n                this.redraw();\n            }\n            this._emitScrollEvent(args, scrollProgrammatically, TimelineEvents.ScrollFinished);\n        }, this._consts.scrollFinishedTimeoutMs);\n\n        this.redraw();\n        this._emitScrollEvent(args, scrollProgrammatically);\n    };\n    _controlKeyPressed = (e: MouseEvent | KeyboardEvent | TouchEvent): boolean => {\n        if (!this._options || this._options.controlKeyIsMetaKey === undefined) {\n            return e.metaKey || e.ctrlKey;\n        }\n        return this._options.controlKeyIsMetaKey || this._options.controlKeyIsMetaKey ? e.metaKey : e.ctrlKey;\n    };\n    _handleWheelEvent = (event: WheelEvent): void => {\n        if (!this._scrollContainer || !this._canvas) {\n            // Component is not initialized yet.\n            return;\n        }\n        if (this._controlKeyPressed(event)) {\n            event.preventDefault();\n            const mousePosArguments = this._getMousePos(this._canvas, event);\n            const mousePos = Math.max(0, mousePosArguments.pos.x || 0);\n            this._zoom(TimelineUtils.sign(event.deltaY), this._options.zoomSpeed || 0, mousePos);\n        } else {\n            this.scrollTop = this._scrollContainer.scrollTop + event.deltaY;\n            event.preventDefault();\n        }\n    };\n    _zoom = (direction: number, speed: number, x: number): void => {\n        if (speed && speed > 0 && speed <= 1) {\n            const deltaSpeed = TimelineUtils.getDistance(this._canvasClientWidth() / 2, x) * 0.2;\n            x = x + deltaSpeed;\n            const diff = this._canvasClientWidth() / x;\n            const val = this._fromScreen(x);\n            const zoom = direction * this._currentZoom * speed;\n            //this._options.zoom\n            this._currentZoom = this._setZoom(this._currentZoom + zoom);\n            // Get only after zoom is set\n            const zoomCenter = this.valToPx(val);\n            let newScrollLeft = Math.round(zoomCenter - this._canvasClientWidth() / diff);\n            if (newScrollLeft <= 0) {\n                newScrollLeft = 0;\n            }\n\n            this._rescaleInternal(newScrollLeft + this._canvasClientWidth(), null, TimelineScrollSource.ZoomMode);\n            this.scrollLeft = newScrollLeft;\n\n            this.emit(TimelineEvents.Zoom, {\n              zoom: this._currentZoom,\n              zoomCenter: zoomCenter\n            });\n\n            this.redraw();\n        }\n    };\n    /**\n     * Zoom in\n     * @param speed value from 0 to 1\n     */\n    public zoomIn = (speed = this._options.zoomSpeed): void => {\n        const width = this._scrollContainer?.clientWidth || 0;\n        if (speed && width) {\n            this._zoom(1, speed, width / 2);\n        }\n    };\n    /**\n     * Zoom out.\n     * @param speed value from 0 to 1\n     */\n    public zoomOut = (speed = this._options.zoomSpeed): void => {\n        const width = this._scrollContainer?.clientWidth || 0;\n        if (speed && width) {\n            this._zoom(-1, speed, width / 2);\n        }\n    };\n    /**\n     * Set direct zoom value.\n     * @param zoom zoom value to set. percent 0-1 and etc.\n     * @param min min zoom.\n     * @param max max zoom.\n     * @return normalized value.\n     */\n    _setZoom = (zoom: number, min: number | null | undefined = null, max: number | null | undefined = null): number => {\n        min = TimelineUtils.isNumber(min) ? min : this._options?.zoomMin;\n        max = TimelineUtils.isNumber(max) ? max : this._options?.zoomMax;\n        if (TimelineUtils.isNumber(zoom)) {\n            zoom = TimelineUtils.keepInBounds(zoom, min, max);\n            zoom = zoom || 1;\n            this._currentZoom = zoom;\n            return zoom;\n        }\n\n        return zoom;\n    };\n\n    /**\n     * Set direct zoom value.\n     * @public\n     * @param zoom zoom value to set. percent 0-1 and etc.\n     * @return normalized value.\n     */\n    setZoom = (zoom: number): number => {\n        const prevZoom = this.getZoom();\n        if (prevZoom !== zoom) {\n            const zoomSet = this._setZoom(zoom);\n            if (prevZoom != zoomSet) {\n                this.rescale();\n                this.redraw();\n                return zoomSet;\n            }\n        }\n        return prevZoom;\n    };\n    /**\n     * Get current zoom level.\n     */\n    getZoom = (): number => {\n        if (TimelineUtils.isNumber(this._currentZoom)) {\n            return this._currentZoom || 1;\n        }\n        return 1;\n    };\n    _getClickDetectionRadius = (point: TimelineMouseData): number => {\n        const defaultValue = this._consts.clickDetectionMinRadius || 1;\n        return Math.max(defaultValue, point?.radius || defaultValue);\n    };\n\n    _handleContextMenu = (args: MouseEvent | TouchEvent): void => {\n        // Prevent drag of the canvas if canvas is selected as text:\n        TimelineUtils.clearBrowserSelection();\n        if (!this._canvas || !this._scrollContainer) {\n            this._cleanUpSelection();\n            return;\n        }\n        const mousePosTimeline = this._trackMousePos(this._canvas, args);\n\n        const clickRadius = this._getClickDetectionRadius(mousePosTimeline);\n        const elements = this.elementFromPoint(mousePosTimeline.pos, clickRadius, []);\n\n        const target = this._findDraggableElement(elements, mousePosTimeline.val);\n        // Create click event\n        const event = new TimelineClickEvent();\n        event.point = mousePosTimeline;\n        event.args = args;\n        // all elements under the click:\n        event.elements = elements;\n        // target element.\n        event.target = target;\n\n        super.emit(TimelineEvents.ContextMenu, event);\n    };\n\n    /**\n     * @param args\n     */\n    _handleMouseDownEvent = (args: MouseEvent | TouchEvent): void => {\n        // 20250306: 右键点击不触发mousedown\n        if((<MouseEvent>args).button === 2) return;\n\n        // Prevent drag of the canvas if canvas is selected as text:\n        TimelineUtils.clearBrowserSelection();\n        if (!this._canvas || !this._scrollContainer) {\n            this._cleanUpSelection();\n            return;\n        }\n        this._startPosMouseArgs = this._trackMousePos(this._canvas, args);\n\n        if (!this._startPosMouseArgs) {\n            return;\n        }\n        let isDoubleClick = Date.now() - this._lastClickTime < this._consts.doubleClickTimeoutMs;\n        // Don't allow to perform double click if mouse was moved to far.\n        if (\n            this._lastClickPoint &&\n            this._startPosMouseArgs &&\n            TimelineUtils.getDistance(this._lastClickPoint.x, this._lastClickPoint.y, this._startPosMouseArgs.pos.x, this._startPosMouseArgs.pos.y) > this._consts.clickThreshold\n        ) {\n            isDoubleClick = false;\n        }\n\n        this._lastClickPoint = this._startPosMouseArgs.pos;\n        this._scrollStartPos = { x: this._scrollContainer.scrollLeft, y: this._scrollContainer.scrollTop } as DOMPoint;\n        this._clickAllowed = true;\n        let onlyElements: TimelineElementType[] | null = null;\n        if (this._interactionMode === TimelineInteractionMode.NonInteractivePan || this._interactionMode === TimelineInteractionMode.None) {\n            // Allow to select only timeline. Timeline position can be disabled/enabled by properties.\n            onlyElements = [TimelineElementType.Timeline];\n        }\n        const clickRadius = this._getClickDetectionRadius(this._startPosMouseArgs);\n        const elements = this.elementFromPoint(this._startPosMouseArgs.pos, clickRadius, onlyElements);\n\n        const target = this._findDraggableElement(elements, this._startPosMouseArgs.val);\n        // Create click event\n        const event = new TimelineClickEvent();\n        event.point = this._startPosMouseArgs;\n        event.args = args;\n        // all elements under the click:\n        event.elements = elements;\n        // target element.\n        event.target = target;\n\n        if (isDoubleClick) {\n            super.emit(TimelineEvents.DoubleClick, event);\n            return;\n        }\n\n        super.emit(TimelineEvents.MouseDown, event);\n\n        this._clickTimeout = Date.now();\n        this._lastClickTime = Date.now();\n        if (event.isPrevented()) {\n            // Mouse up will be also prevented\n            this._cleanUpSelection();\n            return;\n        }\n\n        this._currentPos = this._startPosMouseArgs;\n\n        // Select keyframes on mouse down\n        if (target && this._interactionMode !== TimelineInteractionMode.Zoom) {\n            this._drag = new TimelineDraggableData();\n            this._drag.val = target.val;\n            this._drag.type = target.type;\n            this._drag.target = this._setElementDragState(target, target.val);\n\n            if (target.type === TimelineElementType.Keyframe) {\n                this._startedDragWithCtrl = this._controlKeyPressed(args);\n                this._startedDragWithShiftKey = args.shiftKey;\n                // get all related selected keyframes if we are selecting one.\n                if (target?.keyframe && !target?.keyframe?.selected && !this._controlKeyPressed(args)) {\n                    this._selectInternal(target.keyframe);\n                }\n                // Allow to drag all selected keyframes on a screen\n                this._drag.elements = this.getSelectedElements().map((element) => {\n                    return this._setElementDragState(element, element.val);\n                });\n            } else if (target.type === TimelineElementType.Group) {\n                const keyframes = this._drag.target.keyframes;\n\n                if (keyframes && Array.isArray(keyframes)) {\n                    this._drag.elements = keyframes.map((keyframe) => {\n                        return this._setElementDragState(this._convertToTimelineElement(this._drag?.target.row || null, keyframe), keyframe.val);\n                    });\n                }\n            } else {\n                this._drag.elements = [this._drag.target];\n            }\n        }\n\n        this.redraw();\n    };\n    _setElementDragState = (element: TimelineElement | TimelineElementDragState, val: number): TimelineElementDragState => {\n        const state = element as TimelineElementDragState;\n        state.prevVal = state.val;\n        if (state.startedVal === undefined || state.startedVal === null) {\n            state.startedVal = val;\n        }\n        if (state.prevVal === undefined || state.prevVal === null) {\n            state.prevVal = val;\n        }\n        state.val = val;\n        return state;\n    };\n    /**\n     * Check is mouse left button is clicked.\n     */\n    isLeftButtonClicked = (args: MouseEvent | TouchEvent | any): boolean => {\n        return !!args && args.buttons == 1;\n    };\n\n    /**\n     * Browser mouse move handler.\n     */\n    _handleMouseMoveEvent = (args: MouseEvent | TouchEvent | null): void => {\n        if (!args) {\n            args = this._lastUsedArgs;\n        } else {\n            this._lastUsedArgs = args;\n        }\n        if (!args || !this._canvas) {\n            return;\n        }\n        const touchEventArgs = args as TouchEvent;\n        const isTouch = touchEventArgs.changedTouches && touchEventArgs.changedTouches.length > 0;\n        this._currentPos = this._trackMousePos(this._canvas, args);\n        if (!this._isPanStarted && this._selectionRect && this._clickTimeoutIsOver()) {\n            // TODO: implement selection by rect\n            if (this._interactionMode === TimelineInteractionMode.None || this._interactionMode === TimelineInteractionMode.Zoom || this._interactionMode === TimelineInteractionMode.NonInteractivePan) {\n                this._selectionRectEnabled = false;\n            } else {\n                this._selectionRectEnabled = true;\n            }\n        } else {\n            this._selectionRectEnabled = false;\n        }\n\n        args = args as MouseEvent;\n        const isLeftClicked = this.isLeftButtonClicked(args);\n        if (!isLeftClicked) {\n            this._scrollAreaClickOrDragStarted = false;\n        }\n        // On dragging is started.\n        if (this._startPosMouseArgs) {\n            // On left button is on hold by the user\n            if (isLeftClicked || isTouch) {\n                if (this._drag && !this._startedDragWithCtrl) {\n                    const convertedVal = this._currentPos.val;\n                    if (this._drag.type === TimelineElementType.Timeline) {\n                        this._setTimeInternal(convertedVal, TimelineEventSource.User);\n                    } else if ((this._drag.type == TimelineElementType.Keyframe || this._drag.type == TimelineElementType.Group) && this._drag.elements) {\n                        const offset = Math.floor(convertedVal - this._drag.val);\n                        const movedOffset = this._moveElements(offset, this._drag.elements, TimelineEventSource.User);\n                        if (movedOffset !== 0) {\n                            if (!this._drag.changed) {\n                                this._drag.prevVal = this._drag.val;\n                                const eventArgs = this._emitDragStartedEvent(this._drag);\n                                if (!eventArgs || eventArgs.isPrevented()) {\n                                    // Cleanup drag here, so drag finished will be ignored.\n                                    this._cleanUpSelection(true);\n                                    this._drag = null;\n                                    return;\n                                }\n                            }\n\n                            this._drag.changed = true;\n                            this._drag.val += offset;\n                            this._emitDragEvent(this._drag);\n                        }\n                    }\n                }\n\n                if ((this._interactionMode === TimelineInteractionMode.Pan || this._interactionMode === TimelineInteractionMode.NonInteractivePan) && !this._drag) {\n                    this._isPanStarted = true;\n                    this._setCursor(TimelineCursorType.Grabbing);\n                    // Track scroll by drag.\n                    this._scrollByPan(this._startPosMouseArgs.pos, this._currentPos.pos, this._scrollStartPos);\n                } else {\n                    if (this._interactionMode !== TimelineInteractionMode.None) {\n                        // Track scroll by mouse or touch out of the area.\n                        this._scrollBySelectionOutOfBounds(this._currentPos.pos);\n                    }\n                }\n\n                this.redraw();\n            } else {\n                // Fallback. Cancel mouse move when focus was lost and mouse down is still counted.\n                this._cleanUpSelection(true);\n                this.redraw();\n            }\n        } else if (!isTouch) {\n            // Set mouse over cursors\n            let onlyElements: TimelineElementType[] | null = null;\n            if (this._interactionMode === TimelineInteractionMode.NonInteractivePan || this._interactionMode === TimelineInteractionMode.None) {\n                // Allow to select only timeline. Timeline position can be disabled/enabled by properties.\n                onlyElements = [TimelineElementType.Timeline];\n            }\n            const clickRadius = this._getClickDetectionRadius(this._currentPos);\n            const elements = this.elementFromPoint(this._currentPos.pos, clickRadius, onlyElements);\n            const target = this._findDraggableElement(elements, this._currentPos.val);\n            if (this._isPanStarted || this._interactionMode === TimelineInteractionMode.Pan || this._interactionMode === TimelineInteractionMode.NonInteractivePan) {\n                if (isLeftClicked) {\n                    this._setCursor(TimelineCursorType.Grabbing);\n                } else {\n                    this._setCursor(TimelineCursorType.Grab);\n                }\n            } else {\n                if (this._interactionMode === TimelineInteractionMode.Zoom) {\n                    this._setZoomCursor(args);\n                    return;\n                } else {\n                    this._setCursor(TimelineCursorType.Default);\n                }\n            }\n\n            if (target) {\n                let cursor: TimelineCursorType | null = null;\n                if (target.type === TimelineElementType.Group) {\n                    cursor = cursor || TimelineCursorType.EWResize;\n                } else if (target.type == TimelineElementType.Keyframe) {\n                    cursor = cursor || TimelineCursorType.Pointer;\n                } else if (target.type == TimelineElementType.Timeline) {\n                    cursor = cursor || this._options?.timelineStyle?.cursor || null;\n                }\n\n                if (cursor) {\n                    this._setCursor(cursor);\n                }\n            }\n        }\n\n        if (isTouch) {\n            args.preventDefault();\n        }\n    };\n\n    /**\n     * Move elements\n     * @param offset vector to move elements along.\n     * @param elements Element to move.\n     * @returns real moved value.\n     */\n    _moveElements(offset: number, elements: TimelineElementDragState[], source: TimelineEventSource = TimelineEventSource.Programmatically): number {\n        if (!elements) {\n            return 0;\n        }\n        let isChanged = false;\n        if (Math.abs(offset) > 0) {\n            // Find drag min and max bounds:\n            let bounds = { min: Number.MIN_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER } as TimelineRanged;\n            // Set min max from the options.\n            bounds = TimelineUtils.setMinMax(bounds, this._options);\n            elements.forEach((p) => {\n                if (!p || !p.keyframe) {\n                    return;\n                }\n                // find allowed bounds for the draggable items.\n                // find for each row and keyframe separately.\n                const currentBounds = TimelineUtils.setMinMax(TimelineUtils.setMinMax({ min: bounds.min, max: bounds.max }, p.keyframe), p.row || null);\n                const expectedKeyframeValue = this._options?.snapAllKeyframesOnMove ? this.snapVal(p.keyframe.val) : p.keyframe.val;\n                const newPosition = expectedKeyframeValue + offset;\n                // Check that move offset will hit min bounds\n                if ((currentBounds.min || currentBounds.min === 0) && TimelineUtils.isNumber(currentBounds.min) && newPosition < currentBounds.min) {\n                    // Return to the bounds:\n                    offset = offset + TimelineUtils.getDistance(currentBounds.min, newPosition);\n                }\n                if ((currentBounds.max || currentBounds.max === 0) && TimelineUtils.isNumber(currentBounds.max) && newPosition > currentBounds.max) {\n                    // Return to the bounds:\n                    offset = offset - TimelineUtils.getDistance(currentBounds.max, newPosition);\n                }\n            });\n\n            if (Math.abs(offset) > 0) {\n                // don't allow to move less than zero offset.\n                elements.forEach((element) => {\n                    if (!element?.keyframe) {\n                        return;\n                    }\n                    const prevVal = element.keyframe.val;\n                    const toSet = prevVal + offset;\n                    const newValue = this._setKeyframePos(element, toSet, source);\n                    isChanged = newValue !== prevVal;\n                });\n            }\n\n            if (isChanged) {\n                return offset;\n            }\n        }\n\n        return 0;\n    }\n\n    /**\n     * Mouse up handler.\n     */\n    _handleMouseUpEvent = (args: MouseEvent | TouchEvent): void => {\n        this._scrollAreaClickOrDragStarted = false;\n        if (!this._canvas) {\n            return;\n        }\n        if (this._startPosMouseArgs) {\n            //window.releaseCapture();\n            const pos = this._trackMousePos(this._canvas, args);\n\n            // Click detection.\n            if (this._clickAllowed || !this._clickTimeoutIsOver() || (this._drag && (this._startedDragWithCtrl || this._startedDragWithShiftKey))) {\n                if (this._options && this._interactionMode === TimelineInteractionMode.Zoom) {\n                    const direction = this._controlKeyPressed(args) ? 1 : -1;\n                    const mouseArgs = this._getMousePos(this._canvas, args);\n                    const mousePos = Math.max(0, mouseArgs.pos.x || 0);\n                    this._zoom(direction, this._options.zoomSpeed || 0, mousePos);\n                } else {\n                    this._performClick(pos, this._drag);\n                }\n            } else if (!this._drag && this._selectionRect && this._selectionRectEnabled) {\n                if (this._interactionMode === TimelineInteractionMode.Zoom) {\n                    // TODO: implement zoom by screen rect.\n                } else if (this._interactionMode !== TimelineInteractionMode.None) {\n                    const keyframes = this._getKeyframesByRectangle(this._selectionRect);\n                    const selectionMode = args.shiftKey ? TimelineSelectionMode.Append : TimelineSelectionMode.Normal;\n                    this.select(keyframes, selectionMode);\n                }\n            }\n\n            this._cleanUpSelection();\n            this.redraw();\n        }\n    };\n\n    /**\n     * Canvas client height.\n     */\n    _canvasClientHeight = (): number => {\n        if (this._canvas) {\n            return this._canvas.clientHeight;\n        }\n        return 0;\n    };\n\n    /**\n     * Canvas client width.\n     */\n    _canvasClientWidth = (): number => {\n        if (this._canvas) {\n            return this._canvas.clientWidth;\n        }\n        return 0;\n    };\n\n    /**\n     * Get all keyframes under the screen rectangle.\n     * @param screenRect screen coordinates to get keyframes.\n     */\n    _getKeyframesByRectangle = (screenRect: DOMRect): TimelineKeyframe[] => {\n        const keyframesModels: Array<TimelineKeyframe> = [];\n        this._forEachKeyframe((keyframeViewModel) => {\n            const intersects =\n                keyframeViewModel.shape === TimelineKeyframeShape.Rect\n                    ? TimelineUtils.isRectIntersects(keyframeViewModel.size, screenRect)\n                    : TimelineUtils.isOverlap(keyframeViewModel.size.x, keyframeViewModel.size.y, screenRect);\n\n            if (intersects) {\n                keyframesModels.push(keyframeViewModel.model);\n            }\n        });\n        return keyframesModels;\n    };\n\n    /**\n     * Private.\n     * Perform timeline click.\n     */\n    _performClick = (pos: TimelineMouseData, drag: TimelineDraggableData | null): boolean => {\n        let isChanged = false;\n        if (drag && drag.type === TimelineElementType.Keyframe) {\n            let mode = TimelineSelectionMode.Normal;\n            if (this._startedDragWithCtrl && this._controlKeyPressed(pos.args)) {\n                if (this._controlKeyPressed(pos.args)) {\n                    mode = TimelineSelectionMode.Revert;\n                }\n            } else if (this._startedDragWithShiftKey && pos.args.shiftKey) {\n                mode = TimelineSelectionMode.Append;\n            }\n            // Reverse selected keyframe selection by a click:\n            isChanged = this._selectInternal(drag?.target?.keyframe || null, mode).selectionChanged || isChanged;\n\n            if (pos.args.shiftKey && this._options?.timelineDraggable !== false) {\n                // Set current timeline position if it's not a drag or selection rect small or fast click.\n                isChanged = this._setTimeInternal(pos.val, TimelineEventSource.User) || isChanged;\n            }\n        } else {\n            // deselect keyframes if any:\n            isChanged = this._selectInternal(null).selectionChanged || isChanged;\n\n            if (this._options?.timelineDraggable !== false) {\n                // change timeline pos:\n                // Set current timeline position if it's not a drag or selection rect small or fast click.\n                isChanged = this._setTimeInternal(pos.val, TimelineEventSource.User) || isChanged;\n            }\n        }\n\n        return isChanged;\n    };\n    /**\n     * Set keyframe value.\n     * @param keyframe\n     * @param value\n     * @return set value.\n     */\n    _setKeyframePos = (element: TimelineElementDragState, value: number, source: TimelineEventSource = TimelineEventSource.Programmatically): number => {\n        if (!element || !element.keyframe) {\n            return value;\n        }\n        value = Math.floor(value);\n        if (element.keyframe && element.keyframe.val != value) {\n            element.prevVal = element.val;\n            element.val = value;\n            element.keyframe.val = value;\n            const event = this._emitKeyframeChanged(element, source);\n            if (event.isPrevented()) {\n                element.val = event.prevVal;\n                element.keyframe.val = event.prevVal;\n            }\n\n            return value;\n        }\n\n        return value;\n    };\n\n    /**\n     * @param cursor to set.\n     */\n    _setCursor = (cursor: string): void => {\n        if (this._canvas && this._canvas.style.cursor != cursor) {\n            this._canvas.style.cursor = cursor;\n        }\n    };\n\n    /**\n     * Set component interaction mode.\n     */\n    public setInteractionMode = (mode: TimelineInteractionMode): void => {\n        if (this._interactionMode != mode) {\n            this._interactionMode = mode;\n            // Avoid any conflicts with other modes, clean current state.\n            this._cleanUpSelection(true);\n            this.redraw();\n        }\n    };\n    /**\n     * Get current interaction mode.\n     */\n    public getInteractionMode = (): TimelineInteractionMode => {\n        return this._interactionMode;\n    };\n    /**\n     * Private.\n     * Helper method. Convert model element  to timeline element.\n     */\n    _convertToTimelineElement = (rowModel: TimelineRow | null, keyframe: TimelineKeyframe): TimelineElement => {\n        const data = {\n            type: TimelineElementType.Keyframe,\n            val: keyframe.val,\n            keyframe: keyframe,\n            row: rowModel,\n        } as TimelineElement;\n        return data;\n    };\n\n    public getSelectedKeyframes = (): TimelineKeyframe[] => {\n        const selected = this.getSelectedElements();\n        return selected.map((p) => p.keyframe) as TimelineKeyframe[];\n    };\n\n    /**\n     * Get selected timeline elements.\n     */\n    public getSelectedElements = (): TimelineElement[] => {\n        const selected: TimelineElement[] = [];\n        this._forEachKeyframe((keyframe): void => {\n            if (keyframe && keyframe.model.selected) {\n                selected.push(this._convertToTimelineElement(keyframe.rowViewModel.model, keyframe.model));\n            }\n            return;\n        });\n\n        return selected;\n    };\n    /**\n     * Get all keyframe models available in the model.\n     */\n    public getAllKeyframes = (): TimelineKeyframe[] => {\n        const keyframes: TimelineKeyframe[] = [];\n        this._forEachKeyframe((keyframe): void => {\n            keyframes.push(keyframe.model);\n        });\n\n        return keyframes;\n    };\n\n    public selectAllKeyframes = (): TimelineSelectionResults => {\n        return this.select(this.getAllKeyframes(), TimelineSelectionMode.Normal);\n    };\n    public deselectAll = (): TimelineSelectionResults => {\n        return this.select(null);\n    };\n\n    private _changeNodeState = (state: TimelineSelectionResults, node: TimelineKeyframe, value: boolean): boolean => {\n        if (node.selected !== value) {\n            const selectable = typeof node.selectable === 'boolean' ? node.selectable : true;\n            if (!value || (value && selectable)) {\n                node.selected = value;\n                state.changed.push(node);\n                return true;\n            }\n        }\n\n        return false;\n    };\n\n    public select = (nodes: TimelineKeyframe[] | TimelineKeyframe | null, mode = TimelineSelectionMode.Normal): TimelineSelectionResults => {\n        const results = this._selectInternal(nodes, mode);\n        if (results.selectionChanged) {\n            this.redraw();\n        }\n        return results;\n    };\n\n    /**\n     * Select keyframes\n     * @param nodes keyframe or list of the keyframes to be selected.\n     * @param mode selection mode.\n     */\n    public _selectInternal = (nodes: TimelineKeyframe[] | TimelineKeyframe | null, mode = TimelineSelectionMode.Normal): TimelineSelectionResults => {\n        if (!nodes) {\n            nodes = [];\n        }\n        if (!Array.isArray(nodes)) {\n            nodes = [nodes];\n        }\n\n        const state = {\n            selectionChanged: false,\n            selected: this.getSelectedKeyframes(),\n            changed: [] as Array<any>,\n        } as TimelineSelectionResults;\n        const nodesArray = nodes as TimelineKeyframe[];\n        //const state = this.selectedSubject.getValue();\n        if (nodesArray && mode === TimelineSelectionMode.Append) {\n            nodes.forEach((node) => {\n                const changed = this._changeNodeState(state, node, true);\n                if (changed && node.selected) {\n                    state.selected.push(node);\n                }\n            });\n        } else if (nodesArray && mode === TimelineSelectionMode.Revert) {\n            nodes.forEach((node) => {\n                if (state.selected.indexOf(node) >= 0) {\n                    this._changeNodeState(state, node, false);\n                    TimelineUtils.deleteElement<TimelineKeyframe>(state.selected, node);\n                } else {\n                    this._changeNodeState(state, node, true);\n                    if (node.selected) {\n                        state.selected.push(node);\n                    }\n                }\n            });\n        } else if (mode === TimelineSelectionMode.Normal) {\n            const selectedItems: Array<TimelineKeyframe> = [];\n            if (nodes) {\n                nodes.forEach((node) => {\n                    this._changeNodeState(state, node, true);\n                    if (node.selected) {\n                        selectedItems.push(node);\n                    }\n                });\n            }\n\n            state.selected.forEach((node) => {\n                const exists = nodesArray.indexOf(node) >= 0;\n                // Deselect\n                if (!exists) {\n                    this._changeNodeState(state, node, false);\n                }\n            });\n\n            if (state.changed.length > 0) {\n                if (selectedItems) {\n                    state.selected = selectedItems;\n                } else {\n                    state.selected.length = 0;\n                }\n            }\n        }\n\n        if (state.changed.length > 0) {\n            state.selectionChanged = true;\n            this._emitKeyframesSelected(state);\n        }\n\n        return state;\n    };\n\n    /**\n     * foreach visible keyframe.\n     */\n    _forEachKeyframe(callback: (keyframe: TimelineKeyframeViewModel, index?: number, newRow?: boolean) => void, onRowCallback?: (rowViewModel: TimelineRowViewModel) => void): void {\n        if (!callback && !onRowCallback) {\n            return;\n        }\n        if (!this._model) {\n            return;\n        }\n\n        const calculatedModel = this._generateViewModel();\n        if (!calculatedModel) {\n            return;\n        }\n\n        calculatedModel?.rowsViewModels?.forEach((rowViewModel) => {\n            if (!rowViewModel) {\n                return;\n            }\n            onRowCallback && onRowCallback(rowViewModel);\n            let nextRow = true;\n            if (callback) {\n                rowViewModel.keyframesViewModels.forEach((keyframeViewModel, keyframeIndex) => {\n                    if (keyframeViewModel) {\n                        callback(keyframeViewModel, keyframeIndex, nextRow);\n                    }\n\n                    nextRow = false;\n                });\n            }\n        });\n    }\n\n    /**\n     * Private.\n     * Create extended mouse position and calculate size of the selection rectangle.\n     */\n    _trackMousePos(canvas: HTMLCanvasElement, mouseArgs: MouseEvent | TouchEvent): TimelineMouseData {\n        const clickArgs = this._getMousePos(canvas, mouseArgs);\n        const pos = clickArgs.pos;\n        clickArgs.originalVal = this._mousePosToVal(pos.x, false);\n        clickArgs.snapVal = this._mousePosToVal(pos.x, true);\n        clickArgs.val = clickArgs.originalVal;\n        if (this._options && this._options.snapEnabled) {\n            clickArgs.val = clickArgs.snapVal;\n        }\n\n        if (this._startPosMouseArgs) {\n            if (!this._selectionRect) {\n                this._selectionRect = {} as DOMRect;\n            }\n            const startPos = this._startPosMouseArgs.pos;\n            // get the pos with the virtualization:\n            const x = Math.floor(startPos.x + ((this._scrollStartPos?.x || 0) - this.scrollLeft));\n            const y = Math.floor(startPos.y + ((this._scrollStartPos?.y || 0) - this.scrollTop));\n            this._selectionRect.x = Math.min(x, pos.x);\n            this._selectionRect.y = Math.min(y, pos.y);\n            this._selectionRect.width = Math.max(x, pos.x) - this._selectionRect.x;\n            this._selectionRect.height = Math.max(y, pos.y) - this._selectionRect.y;\n            // Once mouse was moved outside of the bounds it's not a click anymore\n            if (this._clickAllowed) {\n                this._clickAllowed = this._selectionRect.height <= this._consts.clickThreshold && this._selectionRect.width <= this._consts.clickThreshold;\n            }\n        }\n\n        return clickArgs;\n    }\n\n    /**\n     * Get scroll container client width.\n     */\n    getClientWidth(): number {\n        return this._scrollContainer?.clientWidth || 0;\n    }\n    /**\n     * Get scroll container client height.\n     */\n    getClientHeight(): number {\n        return this._scrollContainer?.clientHeight || 0;\n    }\n    _cleanUpSelection(forcePrevent = false): void {\n        if (this._drag) {\n            this._emitDragFinishedEvent(this._drag, forcePrevent);\n        }\n        this._startPosMouseArgs = null;\n        this._drag = null;\n        this._scrollAreaClickOrDragStarted = false;\n        this._startedDragWithCtrl = false;\n        this._startedDragWithShiftKey = false;\n        this._selectionRect = null;\n        this._clickTimeout = null;\n        this._scrollStartPos = null;\n        this._isPanStarted = false;\n        this._clickAllowed = false;\n        this._stopAutoPan();\n    }\n\n    /**\n     * Check whether click timeout is over.\n     */\n    _clickTimeoutIsOver(): boolean {\n        // Duration before the selection can be tracked.\n        if (this._clickTimeout && Date.now() - this._clickTimeout > this._consts.clickDetectionMs) {\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Automatically pan. Scroll canvas when selection is made and mouse outside of the bounds.\n     */\n    _startAutoPan = (): void => {\n        if (this._consts.autoPanSpeed) {\n            if (!this._intervalRef) {\n                // Repeat move calls to\n                this._intervalRef = window.setInterval(() => {\n                    this._handleMouseMoveEvent(null);\n                }, this._consts.autoPanSpeed);\n            }\n        }\n    };\n\n    /**\n     * Stop current running auto pan\n     */\n    _stopAutoPan = (): void => {\n        if (this._intervalRef) {\n            clearInterval(this._intervalRef);\n            this._intervalRef = null;\n        }\n\n        this._autoPanLastActionDate = 0;\n    };\n\n    /**\n     * Check whether auto pan should be slowed down a bit.\n     */\n    _checkUpdateSpeedTooFast(): boolean {\n        // Slow down updated a bit.\n        if (this._autoPanLastActionDate && Date.now() - this._autoPanLastActionDate <= this._consts.autoPanSpeedLimit) {\n            return true;\n        }\n\n        this._autoPanLastActionDate = Date.now();\n        return false;\n    }\n\n    /**\n     * Scroll virtual canvas when pan mode is enabled.\n     */\n    _scrollByPan(start: DOMPoint, pos: DOMPoint, scrollStartPos: DOMPoint | null): void {\n        if (!start || !pos || !this._scrollContainer) {\n            return;\n        }\n        let x = 0;\n        let y = 0;\n        if (scrollStartPos) {\n            x = scrollStartPos.x;\n            y = scrollStartPos.y;\n        }\n        const offsetX = Math.round(start.x - pos.x);\n        const newLeft = x + offsetX;\n\n        if (offsetX > 0) {\n            this._rescaleInternal(newLeft + this._canvasClientWidth());\n        }\n\n        if (offsetX > 0 && newLeft + this._canvasClientWidth() >= this._scrollContainer.scrollWidth - 5) {\n            this.scrollLeft = this._scrollContainer.scrollWidth;\n        } else {\n            this.scrollLeft = newLeft;\n        }\n        this.scrollTop = Math.round(y + start.y - pos.y);\n    }\n\n    _scrollBySelectionOutOfBounds(pos: DOMPoint): boolean {\n        if (!this._scrollContainer) {\n            return false;\n        }\n        const x = pos.x;\n        const y = pos.y;\n        let isChanged = false;\n        let speedX = 0;\n        let speedY = 0;\n        // Small offset to start auto pan earlier.\n        const bounds = this._consts.autoPanByScrollPadding;\n        const isLeft = x <= bounds;\n        const isRight = x >= this._canvasClientWidth() - bounds;\n        const isTop = y <= bounds;\n        const isBottom = y >= this._canvasClientHeight() - bounds;\n        let newWidth:number | null = null;\n        let newHeight: number | null = null;\n        if (isLeft || isRight || isTop || isBottom) {\n            // Auto move init\n            this._startAutoPan();\n\n            if (this._checkUpdateSpeedTooFast()) {\n                return false;\n            }\n\n            const scrollSpeedMultiplier = isNaN(this._consts.scrollByDragSpeed) ? 1 : this._consts.scrollByDragSpeed;\n            if (isLeft) {\n                // Get normalized speed.\n                speedX = -TimelineUtils.getDistance(x, bounds) * scrollSpeedMultiplier;\n            } else if (isRight) {\n                // Get normalized speed:\n                speedX = TimelineUtils.getDistance(x, this._canvasClientWidth() - bounds) * scrollSpeedMultiplier;\n                newWidth = this.scrollLeft + this._canvasClientWidth() + speedX;\n            }\n\n            if (isTop) {\n                // Get normalized speed.\n                speedY = (-TimelineUtils.getDistance(x, bounds) * scrollSpeedMultiplier) / 4;\n            } else if (isBottom) {\n                // Get normalized speed:\n                speedY = (TimelineUtils.getDistance(x, this._canvasClientHeight() - bounds) * scrollSpeedMultiplier) / 4;\n                newHeight = this._scrollContainer.scrollTop + this._canvasClientHeight();\n            }\n        } else {\n            this._stopAutoPan();\n        }\n\n        if (newWidth || newHeight) {\n            this._rescaleInternal(newWidth, newHeight, TimelineScrollSource.ScrollBySelection);\n        }\n\n        if (Math.abs(speedX) > 0) {\n            this.scrollLeft = this._scrollContainer.scrollLeft + speedX;\n            isChanged = true;\n        }\n\n        if (Math.abs(speedY) > 0) {\n            this.scrollTop = this._scrollContainer.scrollTop + speedY;\n            isChanged = true;\n        }\n\n        return isChanged;\n    }\n\n    /**\n     * Convert screen pixel to value.\n     */\n    public pxToVal(px: number): number {\n        if (!this._options) {\n            return px;\n        }\n        let min = this._options.min || 0;\n        if (!TimelineUtils.isNumber(min)) {\n            min = 0;\n        }\n        const stepPx = this._options.stepPx || 0;\n        if (stepPx === 0) {\n            return px;\n        }\n        min *= this._currentZoom || 1;\n        const steps = (this._options.stepVal || 0) * this._currentZoom || 1;\n        const val = min + (px / stepPx) * steps;\n        return val;\n    }\n\n    /**\n     * Convert value to local screen component coordinates.\n     */\n    _toScreenPx = (val: number): number => {\n        return this.valToPx(val) - this.scrollLeft + this._leftMargin();\n    };\n    /**\n     * Convert screen local coordinates to a global value info.\n     */\n    _fromScreen = (px: number): number => {\n        return this.pxToVal(this.scrollLeft + px - this._leftMargin());\n    };\n    /**\n     * 将面积值转换为全局屏幕像素坐标。\n     */\n    public valToPx = (val: number): number => {\n        if (!this._options || !this._options.stepPx) {\n            return val;\n        }\n        let min = this._options.min || 0;\n        if (!TimelineUtils.isNumber(min)) {\n            min = 0;\n        }\n        min *= this._currentZoom || 1;\n        const steps = (this._options.stepVal || 0) * this._currentZoom || 1;\n        return (-min + val) * (this._options.stepPx / steps);\n    };\n\n    /**\n     * 将值捕捉到最近的网格点。\n     */\n    public snapVal(val: number): number {\n        // Snap a value if configured.\n        if (this._options && this._options.snapEnabled && this._options.snapStep) {\n            const stops = this._options.snapStep;\n            const step = val / stops;\n            const stepsFit = Math.round(step);\n            const minSteps = Math.abs(this._options.min || 0) / this._options.snapStep;\n            const minOffset = TimelineUtils.sign(this._options.min || 1) * (minSteps - Math.floor(minSteps)) * this._options.snapStep;\n            val = Math.round(minOffset) + Math.round(stepsFit * stops);\n        }\n\n        val = TimelineUtils.keepInBounds(val, this._options.min, this._options.max);\n        return val;\n    }\n\n    /**\n     * Convert mouse position to the timeline units considering all the scrolling and offsets.\n     */\n    _mousePosToVal = (x: number, snapEnabled = false): number => {\n        const mousePos = Math.min(x, this._canvasClientWidth());\n        let convertedVal = this._fromScreen(mousePos);\n        convertedVal = Math.round(convertedVal);\n        if (snapEnabled) {\n            convertedVal = this.snapVal(convertedVal);\n        }\n\n        return convertedVal;\n    };\n\n    /**\n     * Format line gauge text.\n     * Default formatting is HMS\n     * @param ms milliseconds to convert.\n     * @param isSeconds whether seconds are passed.\n     */\n    _formatUnitsText = (ms: number): string => {\n        const sign = TimelineUtils.sign(ms) < 0 ? '-' : '';\n        ms = Math.abs(ms);\n        // 1- Convert to seconds:\n        let seconds = ms / 1000;\n\n        const year = Math.floor(seconds / (365 * 86400));\n        seconds = seconds % (365 * 86400);\n\n        const days = Math.floor(seconds / 86400);\n        seconds = seconds % 86400;\n\n        // 2- Extract hours:\n        const hours = Math.floor(seconds / 3600); // 3,600 seconds in 1 hour\n        seconds = seconds % 3600; // seconds remaining after extracting hours\n        // 3- Extract minutes:\n        const minutes = Math.floor(seconds / 60); // 60 seconds in 1 minute\n        // 4- Keep only seconds not extracted to minutes:\n        seconds = seconds % 60;\n        let str = '';\n        if (year) {\n            str += year + ':';\n        }\n\n        if (days) {\n            str += days + ':';\n        }\n\n        if (hours) {\n            str += hours + ':';\n        }\n\n        if (minutes) {\n            str += hours ? TimelineUtils.timePadZero(minutes) : minutes + ':';\n        }\n\n        if (!isNaN(seconds)) {\n            str += minutes ? TimelineUtils.timePadZero(seconds) : seconds;\n        }\n\n        return sign + str;\n    };\n    /**\n     * Left padding of the timeline.\n     */\n    _leftMargin = (): number => {\n        return this._options?.leftMargin || 0;\n    };\n    /**\n     * Private.\n     * Render line gauge ticks.\n     */\n    _renderTicks = (): void => {\n        if (!this._ctx || !this._ctx.canvas || this._ctx.canvas.clientWidth <= 0 || this._ctx.canvas.clientHeight <= 0 || !this._options || !this._options.stepPx) {\n            return;\n        }\n        const screenWidth = this._canvasClientWidth() - this._leftMargin();\n        let from = this.pxToVal(this.scrollLeft);\n        let to = this.pxToVal(this.scrollLeft + screenWidth);\n        if (isNaN(from) || isNaN(to) || from === to) {\n            return;\n        }\n\n        if (to < from) {\n            const wasToVal = to;\n            to = from;\n            from = wasToVal;\n        }\n\n        const valDistance = TimelineUtils.getDistance(from, to);\n        if (valDistance <= 0) {\n            return;\n        }\n\n        // Find the nearest 'beautiful' step for a gauge.\n        // 'beautiful' step. Ex: should be dividable by 1/2/5/10!\n        const step = TimelineUtils.findGoodStep(valDistance / (screenWidth / this._options.stepPx), 0, this._options?.denominators);\n\n        // Find beautiful start point:\n        const fromVal = Math.floor(from / step) * step;\n\n        // Find a beautiful end point:\n        const toVal = Math.ceil(to / step) * step + step;\n\n        if (!TimelineUtils.isNumber(step) || step <= 0 || Math.abs(toVal - fromVal) === 0) {\n            return;\n        }\n        let smallStep = 0;\n        if (this._options.stepSmallPx) {\n            smallStep = TimelineUtils.findGoodStep(valDistance / (screenWidth / this._options.stepSmallPx), 0, this._options?.denominators);\n        }\n\n        let lastTextStart = 0;\n        this._ctx.save();\n        const headerHeight = TimelineStyleUtils.headerHeight(this._options);\n        const tickHeight = headerHeight / 2;\n        const smallTickHeight = headerHeight / 1.3;\n        for (let i = fromVal; i <= toVal; i += step) {\n            // local\n            const sharpPos = this._getSharp(this._toScreenPx(i));\n            this._ctx.save();\n            this._ctx.beginPath();\n            this._ctx.setLineDash([4]);\n            this._ctx.lineWidth = 1;\n            if (this._options.tickColor) {\n                this._ctx.strokeStyle = this._options.tickColor;\n            }\n            TimelineUtils.drawLine(this._ctx, sharpPos, tickHeight, sharpPos, headerHeight);\n            this._ctx.stroke();\n            if (this._options.labelsColor) {\n                this._ctx.fillStyle = this._options.labelsColor;\n            }\n            if (this._options.font) {\n                this._ctx.font = this._options.font;\n            }\n\n            const text = this._formatUnitsText(i);\n            const textSize = this._ctx.measureText(text);\n\n            const textX = sharpPos - textSize.width / 2;\n            // skip text render if there is no space for it.\n            if (isNaN(lastTextStart) || lastTextStart <= textX) {\n                lastTextStart = textX + textSize.width;\n                this._ctx.fillText(text, textX, remToPxNumber(1.1));\n            }\n\n            this._ctx.restore();\n            if (!TimelineUtils.isNumber(smallStep) || smallStep <= 0) {\n                continue;\n            }\n            // Draw small steps\n            for (let x = i + smallStep; x < i + step; x += smallStep) {\n                // local\n                const nextSharpPos = this._getSharp(this._toScreenPx(x));\n                this._ctx.beginPath();\n                this._ctx.lineWidth = this._pixelRatio;\n                if (this._options.tickColor) {\n                    this._ctx.strokeStyle = this._options.tickColor;\n                }\n                TimelineUtils.drawLine(this._ctx, nextSharpPos, smallTickHeight, nextSharpPos, headerHeight);\n                this._ctx.stroke();\n            }\n        }\n\n        this._ctx.restore();\n    };\n\n    /**\n     * Private.\n     * Calculate virtual view model.\n     * Determine screen positions for the model elements given.\n     */\n    _generateViewModel = (): TimelineViewModel => {\n        const toReturn = {\n            size: {\n                x: 0,\n                y: 0,\n                width: 0,\n                height: 0,\n            } as DOMRect,\n            min: null,\n            max: null,\n            rowsViewModels: [],\n            keyframesViewModels: [],\n        } as TimelineViewModel;\n\n        if (!this._model) {\n            return toReturn;\n        }\n        const rows = this._model.rows;\n        if (!rows || !Array.isArray(rows) || rows.length <= 0) {\n            return toReturn;\n        }\n        let rowAbsoluteHeight = TimelineStyleUtils.headerHeight(this._options);\n        rows.forEach((row, index) => {\n            if (!row || row.hidden) {\n                return;\n            }\n\n            // draw with scroll virtualization:\n            const rowHeight = TimelineStyleUtils.getRowHeight(row.style || null, this._options);\n            const marginBottom = TimelineStyleUtils.getRowMarginBottom(row.style || null, this._options);\n            const currentRowY = rowAbsoluteHeight - (this._scrollContainer ? this._scrollContainer.scrollTop : 0);\n            rowAbsoluteHeight += rowHeight + marginBottom;\n            if (index == 0) {\n                toReturn.size.y = currentRowY;\n            }\n\n            toReturn.size.height = Math.max(rowAbsoluteHeight + rowHeight, toReturn.size.height);\n            const rowSize = { x: 0, y: currentRowY, width: this._canvasClientWidth(), height: rowHeight } as DOMRect;\n            const rowViewModel = {\n                size: rowSize,\n                marginBottom: marginBottom,\n                model: row,\n                index: index,\n                min: null,\n                max: null,\n                groupsViewModels: [],\n                keyframesViewModels: [],\n            } as TimelineRowViewModel;\n            toReturn.rowsViewModels.push(rowViewModel);\n            if (!row.keyframes || !row.keyframes.forEach || row.keyframes.length <= 0) {\n                return;\n            }\n\n            // Get min and max ms to draw keyframe rows:\n            if (row && row.keyframes) {\n                row.keyframes.forEach((keyframe) => {\n                    if (!keyframe || !TimelineUtils.isNumber(keyframe.val)) {\n                        console.log('Unexpected null keyframe or having invalid value');\n                        return;\n                    }\n                    if (keyframe.hidden) {\n                        return;\n                    }\n                    let groupViewModel: TimelineGroupViewModel | null = rowViewModel.groupsViewModels?.find((p) => keyframe.group === p.groupModel) || null;\n                    if (!groupViewModel) {\n                        groupViewModel = {\n                            min: keyframe.val,\n                            max: keyframe.val,\n                            size: null,\n                            groupModel: keyframe.group,\n                            keyframesViewModels: [],\n                        } as TimelineGroupViewModel;\n                        // TimelineStyleUtils.groupFillColor(rowViewModel.model.style || null, this._options);\n                        rowViewModel.groupsViewModels.push(groupViewModel);\n                    }\n                    const keyframeShape = TimelineStyleUtils.keyframeShape(keyframe, keyframe.group, row.style || null, this._options);\n                    const keyframeSize = this._getKeyframePosition(keyframe, groupViewModel, rowViewModel, keyframeShape);\n                    const keyframeViewModel = {\n                        model: keyframe,\n                        rowViewModel: rowViewModel,\n                        groupViewModel: groupViewModel,\n                        size: keyframeSize,\n                        shape: keyframeShape,\n                    } as TimelineKeyframeViewModel;\n\n                    const min = groupViewModel.min === null ? keyframe.val : Math.min(keyframe.val, groupViewModel.min);\n                    const max = groupViewModel.max === null ? keyframe.val : Math.max(keyframe.val, groupViewModel.max);\n                    if (TimelineUtils.isNumber(min)) {\n                        groupViewModel.min = min;\n                    }\n                    if (TimelineUtils.isNumber(max)) {\n                        groupViewModel.max = max;\n                    }\n                    // All keyframes in the row\n                    rowViewModel.keyframesViewModels.push(keyframeViewModel);\n                    // All keyframes in the group\n                    groupViewModel.keyframesViewModels.push(keyframeViewModel);\n                    // All keyframes in the component\n                    toReturn.keyframesViewModels.push(keyframeViewModel);\n                });\n            }\n\n            rowViewModel.groupsViewModels.forEach((groupViewModel) => {\n                // Extend row min max bounds by a group bounds. It's used to notify needed visible bounds for the row.\n                TimelineUtils.setMinMax(rowViewModel, groupViewModel, true);\n                // get group screen coords\n                const groupRect = this._getKeyframesGroupSize(groupViewModel, rowViewModel);\n                groupViewModel.size = groupRect;\n            });\n\n            // Extend screen bounds by a current calculation:\n            TimelineUtils.setMinMax(toReturn, rowViewModel, true);\n        });\n        if (TimelineUtils.isNumber(toReturn.max) && (toReturn.max || toReturn.max === 0)) {\n            toReturn.size.width = this.valToPx(toReturn.max);\n        }\n        return toReturn;\n    };\n\n    /**\n     * Render timeline rows.\n     */\n    _renderRows = (): void => {\n        if (!this._ctx) {\n            return;\n        }\n        const viewModel = this._generateViewModel();\n        if (!viewModel?.rowsViewModels) {\n            return;\n        }\n        try {\n            this._ctx.save();\n\n            viewModel.rowsViewModels.forEach((rowViewModel) => {\n                if (!rowViewModel || !this._ctx) {\n                    return;\n                }\n\n                this._ctx.fillStyle = TimelineStyleUtils.getRowFillColor(rowViewModel.model.style || null, this._options);\n                //this._ctx.fillRect(data.areaRect.x, data.areaRect.y, data.areaRect.w, data.areaRect.h);\n                // Note: bounds used instead of the clip while clip is slow!\n                const bounds = this._cutBounds(rowViewModel.size);\n                if (bounds?.rect) {\n                    const rect = bounds?.rect;\n                    this._ctx.fillRect(rect.x, rect.y, rect.width, rect.height);\n                }\n\n                this._renderGroupBounds(rowViewModel);\n            });\n        } finally {\n            this._ctx.restore();\n        }\n    };\n    /**\n     * Render group for the row.\n     */\n    _renderGroupBounds = (rowViewModel: TimelineRowViewModel): void => {\n        if (!rowViewModel || !this._ctx) {\n            return;\n        }\n\n        rowViewModel?.groupsViewModels?.forEach((groupsViewModels) => {\n            if (!this._ctx) {\n                return;\n            }\n            if ((groupsViewModels?.keyframesViewModels?.length || 0) <= 1) {\n                return;\n            }\n            const groupFillColor = TimelineStyleUtils.groupFillColor(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style);\n            const strokeColor = TimelineStyleUtils.groupStrokeColor(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style);\n            let groupStrokeThickness = TimelineStyleUtils.groupStrokeThickness(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style);\n            const groupsRadii = TimelineStyleUtils.groupsRadii(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style);\n            if (!groupsViewModels.size) {\n                console.log('Size of the group cannot be calculated');\n                return;\n            }\n\n            try {\n                this._ctx.save();\n\n                // 获得画布的界限\n                const rectBounds = this._cutBounds(groupsViewModels.size);\n                if (rectBounds?.rect) {\n                    const rect = rectBounds.rect;\n                    if (!strokeColor) {\n                        groupStrokeThickness = 0;\n                    }\n                    // Manipulate it again\n                    this._ctx.strokeStyle = groupStrokeThickness > 0 ? strokeColor : '';\n                    this._ctx.fillStyle = groupFillColor;\n                    this._ctx.lineWidth = groupStrokeThickness;\n                    // Different radii for each corner, top-left clockwise to bottom-left\n                    this._ctx.beginPath();\n                    // @ts-ignore\n                    this._ctx.roundRect(rect.x + groupStrokeThickness, rect.y + groupStrokeThickness, rect.width - groupStrokeThickness, rect.height - groupStrokeThickness, groupsRadii);\n\n                    this._ctx.fill();\n                    if (groupStrokeThickness > 0) {\n                        this._ctx.stroke();\n                    }\n\n                    // 20240813 组内容添加文本\n                    const groupText = TimelineStyleUtils.groupText(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style);\n                    if (groupText && groupText.label) {\n                        this._ctx.font = groupText.font || '10px sans-serif';\n                        this._ctx.textBaseline = groupText.textBaseline || 'middle';\n                        this._ctx.textAlign = groupText.textAlign || 'center';\n                        this._ctx.direction = groupText.direction || 'inherit';\n                        this._ctx.fillStyle = groupText.fillColor || \"white\";\n                        // 预测量文本宽度\n                        //const text = this._ctx.measureText(groupText.label);\n\n                        if (groupText.isStroke) {\n                            this._ctx.strokeText(groupText.label, rect.x + rect.width / 2, rect.y + rect.height / 2, rect.width - groupStrokeThickness);\n                        } else {\n                            this._ctx.fillText(groupText.label, rect.x + rect.width / 2, rect.y + rect.height / 2, rect.width - groupStrokeThickness);\n                        }\n                    }\n                }\n            } finally {\n                this._ctx.restore();\n            }\n        });\n    };\n    /**\n     * Method is used for the canvas drawing optimization.\n     * Bounds are cut to draw only visible parts for the active canvas.\n     */\n    _cutBounds = (rect: DOMRect): TimelineCutBoundsRectResults | null => {\n        if (!rect) {\n            return null;\n        }\n        // default bounds: minX, maxX, minY, maxY\n        const testOffset = 0;\n        const minX = 0 + testOffset;\n        const maxX = this._canvasClientWidth() - testOffset;\n        const minY = TimelineStyleUtils.headerHeight(this._options) + testOffset;\n        const maxY = this._canvasClientHeight() - testOffset;\n\n        return this._cutBoundsWhenOverlap(rect, minX, maxX, minY, maxY);\n    };\n    _cutBoundsWhenOverlap = (rect: DOMRect, minX: number, maxX: number, minY: number, maxY: number): TimelineCutBoundsRectResults | null => {\n        if (!rect) {\n            return null;\n        }\n\n        if (\n            // At the moment it's a check of top and left intersection.\n            TimelineUtils.isRectIntersects(rect, {\n                x: minX,\n                y: minY,\n                width: TimelineUtils.getDistance(minX, maxX),\n                height: TimelineUtils.getDistance(minY, maxY),\n            } as DOMRect)\n        ) {\n            const y = Math.max(rect.y, minY);\n            const x = Math.max(rect.x, minX);\n            const offsetW = rect.x - x;\n            const offsetH = rect.y - y;\n\n            return {\n                rect: { height: rect.height + offsetH, width: rect.width + offsetW, x: x, y: y },\n                overlapY: Math.abs(offsetH) > 0,\n                overlapX: Math.abs(offsetW) > 0,\n            } as TimelineCutBoundsRectResults;\n        }\n        return null;\n    };\n    /**\n     * Calculate keyframe group screen rect size that is used during the rendering.\n     * @param row\n     * @param rowY row screen coords y position\n     */\n    _getKeyframesGroupSize = (groupViewModel: TimelineGroupViewModel, rowViewModel: TimelineRowViewModel): DOMRect => {\n        const rowY = rowViewModel.size.y;\n        const rowHeight = rowViewModel.size.height;\n        const groupModel = groupViewModel.groupModel || null;\n        let groupHeight = TimelineStyleUtils.groupHeight(this._options, groupModel, rowViewModel?.model?.style);\n\n        let marginTop = TimelineStyleUtils.groupMarginTop(this._options, groupModel, rowViewModel?.model?.style);\n        const isAutoHeight = groupHeight === 'auto';\n        if (!groupHeight || isAutoHeight) {\n            groupHeight = Math.floor(rowHeight);\n        }\n        groupHeight = typeof groupHeight === 'string' ? parseInt(groupHeight) : groupHeight;\n        if (groupHeight > rowHeight) {\n            groupHeight = rowHeight;\n        }\n        const isAutoMargin = marginTop === 'auto';\n        if (typeof marginTop === 'string') {\n            if (isAutoMargin) {\n                marginTop = (rowHeight - groupHeight) / 2;\n            } else {\n                marginTop = parseInt(marginTop) || 0;\n            }\n        }\n\n        if (!isAutoMargin) {\n            if (isAutoHeight) {\n                groupHeight -= marginTop * 2;\n            }\n        }\n\n        // draw keyframes rows.\n        const xMin = this._toScreenPx(groupViewModel.min); // local\n        const xMax = this._toScreenPx(groupViewModel.max); // local\n\n        return {\n            x: xMin,\n            y: rowY + marginTop,\n            height: groupHeight,\n            width: TimelineUtils.getDistance(xMin, xMax),\n        } as DOMRect;\n    };\n\n    _getKeyframePosition = (keyframe: TimelineKeyframe, groupViewModel: TimelineGroupViewModel, rowViewModel: TimelineRowViewModel, keyframeShape: TimelineKeyframeShape): DOMRect | null => {\n        if (!keyframe) {\n            console.log('keyframe should be defined.');\n            return null;\n        }\n\n        const val = keyframe.val;\n        if (!TimelineUtils.isNumber(val)) {\n            return null;\n        }\n\n        const rowSize = rowViewModel.size;\n        // get center of the lane:\n        let y = rowSize.y + rowSize.height / 2;\n        const groupModel = groupViewModel?.groupModel || null;\n        let height: number | string = TimelineStyleUtils.keyframeHeight(keyframe, groupModel, rowViewModel?.model?.style, this._options);\n        let width: number | string = TimelineStyleUtils.keyframeWidth(keyframe, groupModel, rowViewModel?.model?.style, this._options);\n\n        if (height === 'auto') {\n            height = rowSize.height / 3;\n        }\n        if (width === 'auto') {\n            width = height;\n        }\n        height = Number(height);\n        if (!Number.isNaN(height) && height && (height as number) > 0) {\n            const x = Math.floor(this._toScreenPx(val));\n            y = Math.floor(y);\n            const rect = {\n                x: x, // local\n                y: y,\n                height: height,\n                width: width,\n            } as DOMRect;\n            // Rect we are drawing in the center\n            if (keyframeShape === TimelineKeyframeShape.Rect) {\n                rect.y = rect.y - rect.height / 2;\n                rect.x = rect.x - rect.width / 2;\n            }\n            return rect;\n        }\n\n        return null;\n    };\n\n    _renderKeyframes = (): void => {\n        this._forEachKeyframe((keyframeViewModel) => {\n            if (!this._ctx) {\n                return;\n            }\n            const size = keyframeViewModel.size;\n\n            if (size) {\n                const x = this._getSharp(size.x);\n                const y = size.y;\n                const bounds = this._cutBounds({\n                    x: x - size.width / 2,\n                    y: y - size.height / 2,\n                    width: size.width,\n                    height: size.height,\n                } as DOMRect);\n                if (!bounds) {\n                    return;\n                }\n\n                this._ctx.save();\n\n                try {\n                    // Performance FIX: use clip only  when we are in the collision! Clip is slow!\n                    // Other keyframes should be hidden by bounds check.\n                    // Note: clip with just render part of the keyframe\n                    if (bounds && bounds.overlapY) {\n                        this._ctx.beginPath();\n                        this._ctx.rect(0, TimelineStyleUtils.headerHeight(this._options), this._canvasClientWidth(), this._canvasClientWidth());\n                        this._ctx.clip();\n                    }\n\n                    this._renderKeyframe(this._ctx, keyframeViewModel);\n                } finally {\n                    this._ctx.restore();\n                }\n            }\n        });\n    };\n\n    _renderKeyframe = (ctx: CanvasRenderingContext2D, keyframeViewModel: TimelineKeyframeViewModel): void => {\n        const shape = keyframeViewModel.shape;\n        if (shape === TimelineKeyframeShape.None) {\n            return;\n        }\n        const size = keyframeViewModel.size;\n        const x = this._getSharp(size.x);\n        const y = size.y;\n\n        const keyframe = keyframeViewModel.model;\n        const row = keyframeViewModel.rowViewModel.model;\n        const rowStyle = row.style || null;\n        const groupModel = keyframeViewModel?.groupViewModel?.groupModel || null;\n        const keyframeColor = keyframe.selected\n            ? TimelineStyleUtils.keyframeSelectedFillColor(keyframe, groupModel, rowStyle, this._options)\n            : TimelineStyleUtils.keyframeFillColor(keyframe, groupModel, rowStyle, this._options);\n        const border = TimelineStyleUtils.keyframeStrokeThickness(keyframe, groupModel, rowStyle, this._options);\n        let strokeColor = '';\n        if (border > 0) {\n            if (keyframe.selected) {\n                strokeColor = TimelineStyleUtils.keyframeSelectedStrokeColor(keyframe, groupModel, rowStyle, this._options);\n            } else {\n                strokeColor = TimelineStyleUtils.keyframeStrokeColor(keyframe, groupModel, rowStyle, this._options);\n            }\n        }\n\n        if (shape == TimelineKeyframeShape.Rhomb) {\n            ctx.beginPath();\n            ctx.translate(x, y);\n            ctx.rotate((45 * Math.PI) / 180);\n            if (border > 0 && strokeColor) {\n                ctx.fillStyle = strokeColor;\n                ctx.rect(-size.width / 2, -size.height / 2, size.width, size.height);\n                ctx.fill();\n            }\n\n            ctx.fillStyle = keyframeColor;\n            // draw main keyframe data with offset.\n            ctx.translate(border, border);\n            ctx.rect(-size.width / 2, -size.height / 2, size.width - border * 2, size.height - border * 2);\n            ctx.fill();\n        } else if (shape == TimelineKeyframeShape.Circle) {\n            ctx.beginPath();\n            if (border > 0 && strokeColor) {\n                ctx.fillStyle = strokeColor;\n                ctx.arc(x, y, size.height, 0, 2 * Math.PI);\n            }\n            ctx.fillStyle = keyframeColor;\n            ctx.arc(x, y, size.height - border, 0, 2 * Math.PI);\n            ctx.fill();\n        } else if (shape == TimelineKeyframeShape.Rect) {\n            ctx.beginPath();\n\n            if (border > 0 && strokeColor) {\n                ctx.fillStyle = strokeColor;\n                ctx.rect(x, y, size.width, size.height);\n                ctx.fill();\n            }\n\n            ctx.fillStyle = keyframeColor;\n            ctx.rect(x + border, y + border, size.width - border, size.height - border);\n            ctx.fill();\n        }\n    };\n\n    _renderSelectionRect = (): void => {\n        if (this._drag || !this._ctx || !this._canvas) {\n            return;\n        }\n        this._ctx.save();\n        const thickness = 1;\n        if (this._selectionRect && this._selectionRectEnabled) {\n            this._ctx.setLineDash([4]);\n            this._ctx.lineWidth = this._pixelRatio;\n            const selectionColor = this._options.selectionColor;\n            if (selectionColor) {\n                this._ctx.strokeStyle = selectionColor;\n            }\n            this._ctx.strokeRect(\n                this._getSharp(this._selectionRect.x, thickness),\n                this._getSharp(this._selectionRect.y, thickness),\n                Math.floor(this._selectionRect.width),\n                Math.floor(this._selectionRect.height),\n            );\n        }\n        this._ctx.restore();\n    };\n\n    _renderBackground = (): void => {\n        if (!this._ctx || !this._canvas) {\n            return;\n        }\n        if (this._options.fillColor) {\n            this._ctx.save();\n            this._ctx.beginPath();\n            this._ctx.rect(0, 0, this._canvasClientWidth(), this._canvasClientHeight());\n            this._ctx.fillStyle = this._options.fillColor;\n            this._ctx.fill();\n            this._ctx.restore();\n        } else {\n            // Clear if bg not set.\n            this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n        }\n    };\n\n    _renderTimeline = (): void => {\n        if (!this._ctx || !this._options || !this._options.timelineStyle) {\n            return;\n        }\n        const style = this._options.timelineStyle;\n        this._ctx.save();\n        try {\n            const thickness = style.width || 1;\n            this._ctx.lineWidth = thickness * this._pixelRatio;\n            const timeLinePos = this._getSharp(this._toScreenPx(this._val), thickness);\n            if (style.strokeColor) {\n                this._ctx.strokeStyle = style.strokeColor;\n            }\n            if (style.fillColor) {\n                this._ctx.fillStyle = style.fillColor;\n            }\n            const y = style.marginTop || 0;\n            const yBottom = style.marginBottom || 0;\n            this._ctx.beginPath();\n            const canvasHeight = this._canvasClientHeight() - yBottom;\n            TimelineUtils.drawLine(this._ctx, timeLinePos, y, timeLinePos, canvasHeight);\n            this._ctx.stroke();\n            this._renderTimelineCap(timeLinePos, y);\n        } finally {\n            this._ctx.restore();\n        }\n    };\n    /**\n     * Render timeline cap top.\n     */\n    _renderTimelineCap = (timeLinePos: number, y: number): void => {\n        const capStyle = this._options?.timelineStyle?.capStyle;\n        if (!this._ctx || !capStyle) {\n            return;\n        }\n        if (capStyle.capType === TimelineCapShape.None) {\n            return;\n        }\n        this._ctx.save();\n        try {\n            const capSize = capStyle.width || 0;\n            const capHeight = capStyle.height || 0;\n            if (capSize && capHeight) {\n                this._ctx.strokeStyle = capStyle.strokeColor || '';\n                this._ctx.fillStyle = capStyle.fillColor || 'white';\n                if (capStyle.capType === TimelineCapShape.Triangle) {\n                    this._ctx.beginPath();\n                    this._ctx.moveTo(timeLinePos - capSize / 2, y);\n                    this._ctx.lineTo(timeLinePos + capSize / 2, y);\n                    this._ctx.lineTo(timeLinePos, capHeight);\n                    this._ctx.closePath();\n                    this._ctx.stroke();\n                } else if (capStyle.capType === TimelineCapShape.Rect) {\n                    this._ctx.fillRect(timeLinePos - capSize / 2, y, capSize, capHeight);\n                    this._ctx.fill();\n                }\n            }\n        } finally {\n            this._ctx.restore();\n        }\n    };\n    _renderHeaderBackground = (): void => {\n        if (!this._ctx || !this._options) {\n            return;\n        }\n        if (TimelineStyleUtils.headerHeight(this._options)) {\n            this._ctx.save();\n            // draw ticks background\n            this._ctx.lineWidth = this._pixelRatio;\n            if (this._options.headerFillColor) {\n                // draw ticks background\n                this._ctx.lineWidth = this._pixelRatio;\n                // draw header background\n                this._ctx.fillStyle = this._options.headerFillColor;\n                this._ctx.fillRect(0, 0, this._canvasClientWidth(), TimelineStyleUtils.headerHeight(this._options));\n            } else {\n                this._ctx.clearRect(0, 0, this._canvasClientWidth(), TimelineStyleUtils.headerHeight(this._options));\n            }\n            this._ctx.restore();\n        }\n    };\n\n    redraw = (): void => {\n        if (window?.requestAnimationFrame) {\n            window.requestAnimationFrame(this._redrawInternal);\n        } else {\n            this._redrawInternal();\n        }\n    };\n\n    /**\n     * perform scroll to max right.\n     */\n    public scrollToRightBounds = (): void => {\n        if (this._scrollContainer && this._scrollContainer.scrollLeft !== this._scrollContainer.scrollWidth) {\n            this.scrollLeft = this._scrollContainer.scrollWidth;\n        }\n    };\n\n    /**\n     * Redraw parts of the component in the specific order.\n     */\n    _redrawInternal = (): void => {\n        if (!this._ctx || !this._scrollContainer) {\n            console.log('Context is not initialized');\n            return;\n        }\n        // Rescale when animation is played out of the bounds.\n        if (this.valToPx(this._val) > this._scrollContainer.scrollWidth) {\n            this.rescale();\n            if (!this._isPanStarted && this._drag && this._drag.type !== TimelineElementType.Timeline) {\n                this.scrollToRightBounds();\n            }\n        }\n\n        this._renderBackground();\n        this._renderRows();\n        // Render after rows\n        this._renderHeaderBackground();\n        this._renderTicks();\n        this._renderKeyframes();\n        this._renderSelectionRect();\n        this._renderTimeline();\n    };\n\n    /**\n     * Find sharp pixel position\n     */\n    _getSharp = (pos: number, thickness = 1): number => {\n        pos = Math.round(pos);\n        if (thickness % 2 == 0) {\n            return pos;\n        }\n\n        return pos + this._pixelRatio / 2;\n    };\n\n    /**\n     * Get current time:\n     */\n    public getTime = (): number => {\n        return this._val;\n    };\n\n    /**\n     * Set current time internal\n     * @param val value.\n     * @param source event source.\n     */\n    _setTimeInternal = (val: number, source: TimelineEventSource = TimelineEventSource.Programmatically): boolean => {\n        if (!this._options) {\n            return false;\n        }\n        val = Math.round(val);\n        val = TimelineUtils.keepInBounds(val, this._options.min);\n        if (this._val != val) {\n            const prevVal = this._val;\n            const timelineEvent = new TimelineTimeChangedEvent();\n            timelineEvent.val = val;\n            timelineEvent.prevVal = prevVal;\n            timelineEvent.source = source;\n            this._val = val;\n            this.emit(TimelineEvents.TimeChanged, timelineEvent);\n            if (timelineEvent.isPrevented()) {\n                this._val = prevVal;\n                return false;\n            }\n            return true;\n        }\n\n        return false;\n    };\n    public setTime = (val: number): boolean => {\n        // don't allow to change time during drag:\n        if (this._drag && this._drag.type === TimelineElementType.Timeline) {\n            return false;\n        }\n\n        const isChanged = this._setTimeInternal(val, TimelineEventSource.SetTimeMethod);\n        if (isChanged) {\n            this.rescale();\n            this.redraw();\n        }\n\n        return isChanged;\n    };\n\n    public getOptions = (): TimelineOptions => {\n        return this._options;\n    };\n\n    /**\n     * Current scroll left position.\n     */\n    public get scrollLeft(): number {\n        return this._scrollContainer?.scrollLeft || 0;\n    }\n    public set scrollLeft(value: number) {\n        if (this._scrollContainer && this._scrollContainer.scrollLeft !== value) {\n            this._scrollProgrammatically = true;\n            this._scrollContainer.scrollLeft = value;\n        }\n    }\n    public get scrollTop(): number {\n        return this._scrollContainer?.scrollTop || 0;\n    }\n\n    public set scrollTop(value: number) {\n        if (this._scrollContainer && this._scrollContainer.scrollTop !== value) {\n            this._scrollProgrammatically = true;\n            this._scrollContainer.scrollTop = value;\n        }\n    }\n\n    /**\n     * Set options and render the component.\n     * Note: Options will be merged\\appended with the defaults and component will be invalidated/rendered again.\n     */\n    public setOptions = (toSet: TimelineOptions): TimelineOptions => {\n        this._options = this._setOptions(toSet);\n        this.rescale();\n        this.redraw();\n        // Merged options:\n        return this._options;\n    };\n\n    /**\n     * Private. Apply html container styles from options if any is set.\n     */\n    _applyContainersStyles = (): void => {\n        if (this._scrollContainer && this._options) {\n            const classList = this._scrollContainer.classList;\n            if (this._options.scrollContainerClass && !classList.contains(this._options.scrollContainerClass)) {\n                classList.add(this._options.scrollContainerClass);\n            }\n            if (this._options.fillColor) {\n                this._scrollContainer.style.background = this._options.fillColor;\n            }\n        }\n    };\n    _setOptions = (toSet: TimelineOptions): TimelineOptions => {\n        if (!toSet) {\n            return this._options || {};\n        }\n        this._options = TimelineUtils.mergeOptions(this._options, toSet);\n        // Normalize and validate spans per value.\n        this._options.snapStep = TimelineUtils.keepInBounds(this._options.snapStep || 0, 0, this._options.stepVal || 0);\n        this._currentZoom = this._setZoom(this._options.zoom || 0, this._options.zoomMin, this._options.zoomMax);\n        this._options.min = TimelineUtils.isNumber(this._options.min) ? this._options.min : 0;\n        this._options.max = TimelineUtils.isNumber(this._options.max) ? this._options.max : Number.MAX_VALUE;\n        this._applyContainersStyles();\n        // Prevent current active dragging of the timeline, while it's set that it's not allowed anymore.\n        if (toSet.timelineDraggable === false) {\n            if (this._drag && this._drag.type === TimelineElementType.Timeline) {\n                this._cleanUpSelection();\n            }\n        }\n        return this._options;\n    };\n\n    /**\n     * Get current model.\n     */\n    public getModel = (): TimelineModel | null => {\n        return this._model;\n    };\n\n    /**\n     * Set model and redraw application.\n     * @param data\n     */\n    public setModel = (data: TimelineModel): void => {\n        this._model = data;\n        this.rescale();\n        this.redraw();\n    };\n\n    _getMousePos = (canvas: HTMLCanvasElement, e: TouchEvent | MouseEvent | any): TimelineMouseData => {\n        let radius = 1;\n        let clientX = 0;\n        let clientY = 0;\n        if (e.changedTouches && e.changedTouches.length > 0) {\n            // TODO: implement better touch support\n            const touch = e.changedTouches[0];\n            clientX = touch.clientX;\n            clientY = touch.clientY;\n            radius = Math.max(radius, touch.radiusX, touch.radiusY);\n        } else {\n            clientX = e.clientX;\n            clientY = e.clientY;\n        }\n\n        const rect = canvas.getBoundingClientRect(), // abs. size of element\n            scaleX = canvas.width / this._pixelRatio / rect.width, // relationship bitmap vs. element for X\n            scaleY = canvas.height / this._pixelRatio / rect.height; // relationship bitmap vs. element for Y\n\n        const x = (clientX - rect.left) * scaleX;\n        const y = (clientY - rect.top) * scaleY;\n        // scale mouse coordinates after they have been adjusted to be relative to element\n        return {\n            pos: { x, y } as DOMPoint,\n            radius,\n            args: e,\n        } as TimelineMouseData;\n    };\n\n    /**\n     * Apply container div size to the container on changes detected.\n     */\n    _updateCanvasScale = (): boolean => {\n        if (!this._scrollContainer || !this._container || !this._ctx) {\n            console.log('Component should be initialized first.');\n            return false;\n        }\n        let changed = false;\n        const width = this._scrollContainer.clientWidth * this._pixelRatio;\n        const height = this._scrollContainer.clientHeight * this._pixelRatio;\n        if (Math.floor(width) != Math.floor(this._ctx.canvas.width)) {\n            this._ctx.canvas.width = width;\n            changed = true;\n        }\n\n        if (Math.floor(height) != Math.floor(this._ctx.canvas.height)) {\n            this._ctx.canvas.height = height;\n            changed = true;\n        }\n\n        if (changed) {\n            this._ctx.setTransform(this._pixelRatio, 0, 0, this._pixelRatio, 0, 0);\n        }\n        return changed;\n    };\n\n    /**\n     * Rescale and update size of the container.\n     */\n    public rescale = (): boolean => {\n        return this._rescaleInternal();\n    };\n\n    /**\n     * This method is used to draw additional space when after there are no keyframes.\n     * When scrolled we should allow to indefinitely scroll right, so space should be extended to drag keyframes outside of the current size bounds.\n     */\n    _rescaleInternal = (newWidth: number | null = null, newHeight: number | null = null, scrollMode = TimelineScrollSource.DefaultMode): boolean => {\n        let changed = this._updateCanvasScale();\n        if (!this._scrollContent) {\n            return changed;\n        }\n        const data = this._generateViewModel();\n        if (data && data.size) {\n            const additionalOffset = this._options.stepPx || 0;\n            newWidth = newWidth || 0;\n            // content should be not less than current timeline position + width of the timeline\n            const timelineGlobalPos = this.valToPx(this._val) + this._leftMargin();\n            let timelinePos = 0;\n            const rightPosition = this.scrollLeft + this.getClientWidth();\n\n            if (timelineGlobalPos >= rightPosition) {\n                if (scrollMode == TimelineScrollSource.ScrollBySelection) {\n                    // When item (timeline, selection rectangle) is just dragged to the right corner.\n                    timelinePos = Math.floor(timelineGlobalPos + this._leftMargin());\n                } else {\n                    // When timeline is playing and we need to add next screen (when timeline goes out of the bounds.)\n                    timelinePos = Math.floor(timelineGlobalPos + this.getClientWidth() + this._leftMargin());\n                }\n            }\n            const keyframeW = data.size.width + this._leftMargin() + additionalOffset;\n\n            newWidth = Math.max(\n                // New expected component width.\n                newWidth,\n                // keyframes max width\n                keyframeW,\n                // not less than current scroll position\n                rightPosition,\n                timelinePos,\n            );\n\n            const minWidthPx = Math.floor(newWidth) + 'px';\n            if (minWidthPx != this._scrollContent.style.minWidth) {\n                this._scrollContent.style.minWidth = minWidthPx;\n                changed = true;\n            }\n\n            newHeight = Math.max(\n                // active size\n                Math.floor(data.size.height + this._canvasClientHeight() * 0.2),\n                (this._scrollContainer?.scrollTop || 0) + this._canvasClientHeight() - 1,\n                Math.round(newHeight || 0),\n            );\n\n            const h = Math.floor(newHeight) + 'px';\n            if (this._scrollContent.style.minHeight != h) {\n                this._scrollContent.style.minHeight = h;\n                return changed;\n            }\n        }\n        return changed;\n    };\n\n    /**\n     * Filter elements that can be dragged.\n     * Filtration is done based on the timeline styles and options.\n     */\n    _filterDraggableElements = (elements: TimelineElement[]): TimelineElement[] => {\n        // filter and sort: Timeline, individual keyframes, groups (distance).\n        const filteredElements = elements.filter((element) => {\n            if (!element) {\n                return false;\n            }\n            if (element.type === TimelineElementType.Keyframe) {\n                if (!TimelineStyleUtils.keyframeDraggable(element.keyframe || null, element.keyframe?.group || null, element?.row || null, this._options)) {\n                    return false;\n                }\n            } else if (element.type === TimelineElementType.Group) {\n                if (!TimelineStyleUtils.groupDraggable(element.group || null, element.row || null, this._options)) {\n                    return false;\n                }\n            } else if (element.type === TimelineElementType.Timeline) {\n                if (this._options?.timelineDraggable === false) {\n                    return false;\n                }\n            } else if (element.type === TimelineElementType.Row) {\n                return false;\n            }\n            return true;\n        });\n        return filteredElements;\n    };\n    /**\n     * Filter and sort draggable elements by the priority to get first draggable element closest to the passed value.\n     */\n    _findDraggableElement = (elements: TimelineElement[], val: number | null = null): TimelineElement | null => {\n        // filter and sort: Timeline, individual keyframes, groups (distance).\n        const getPriority = (type: TimelineElementType): number => {\n            if (type === TimelineElementType.Timeline) {\n                return 1;\n            } else if (type === TimelineElementType.Keyframe) {\n                return 2;\n            } else if (type === TimelineElementType.Group) {\n                return 3;\n            }\n            return -1;\n        };\n\n        const sortDraggable = (a: TimelineElement, b: TimelineElement): number => {\n            let prioA = getPriority(a.type);\n            let prioB = getPriority(b.type);\n            if (prioA === prioB) {\n                if (val === null) {\n                    return 0;\n                }\n\n                // Sort by distance\n                prioA = TimelineUtils.getDistance(a.val, val);\n                prioB = TimelineUtils.getDistance(b.val, val);\n                if (prioA === prioB) {\n                    return 0;\n                }\n                return prioA < prioB ? 1 : -1;\n            }\n\n            return prioA < prioB ? 1 : -1;\n        };\n        const sorted = this._filterDraggableElements(elements).sort(sortDraggable);\n        if (sorted.length > 0) {\n            return sorted[sorted.length - 1];\n        }\n\n        return null;\n    };\n    /**\n     * get all clickable elements by the given local screen coordinate.\n     */\n    public elementFromPoint = (pos: DOMPoint, clickRadius: number, onlyTypes?: TimelineElementType[] | null): TimelineElement[] => {\n        clickRadius = Math.max(clickRadius, 1);\n        const toReturn: TimelineElement[] = [];\n\n        if (!pos) {\n            return toReturn;\n        }\n\n        const headerHeight = TimelineStyleUtils.headerHeight(this._options);\n        // Check whether we can drag timeline.\n        const timeLinePos = this._toScreenPx(this._val);\n        let width = 0;\n        const timelineStyle = this._options?.timelineStyle;\n        if (timelineStyle) {\n            width = Math.max((timelineStyle.width || 1) * this._pixelRatio, (timelineStyle?.capStyle?.width || 0) * this._pixelRatio || 1) + clickRadius;\n        }\n        // Allow to select timeline only by half of a header to allow select by a selector top most keyframes row.\n        if (pos.y <= headerHeight * 0.5 || (pos.x >= timeLinePos - width / 2 && pos.x <= timeLinePos + width / 2)) {\n            toReturn.push({\n                val: this._val,\n                type: TimelineElementType.Timeline,\n            } as TimelineElement);\n        }\n        const snap = this._options.snapEnabled;\n        if (pos.y >= headerHeight && this._options.keyframesDraggable) {\n            this._forEachKeyframe(\n                (keyframeViewModel, _, isNextRow): void => {\n                    const rowViewModel = keyframeViewModel.rowViewModel;\n                    // Check keyframes group overlap\n                    if (isNextRow) {\n                        if (rowViewModel.groupsViewModels) {\n                            rowViewModel.groupsViewModels.forEach((groupViewModel) => {\n                                if (!groupViewModel?.size) {\n                                    return;\n                                }\n                                const keyframesGroupOverlapped = TimelineUtils.isOverlap(pos.x, pos.y, groupViewModel.size);\n                                if (keyframesGroupOverlapped) {\n                                    const keyframesModels = groupViewModel?.keyframesViewModels.map((p) => p.model) || [];\n                                    const groupElement = {\n                                        // TODO:\n                                        val: this._mousePosToVal(pos.x, snap),\n                                        type: TimelineElementType.Group,\n                                        group: groupViewModel.groupModel,\n                                        row: rowViewModel.model,\n                                        keyframes: keyframesModels,\n                                    } as TimelineElement;\n\n                                    const snapped = this.snapVal(groupViewModel.min);\n                                    // get snapped mouse pos based on a min value.\n                                    groupElement.val += groupViewModel.min - snapped;\n                                    toReturn.push(groupElement);\n                                }\n                            });\n                        }\n                    }\n\n                    const keyframePosRect = keyframeViewModel.size;\n                    if (keyframePosRect) {\n                        let isMouseOver = false;\n                        if (keyframeViewModel.shape === TimelineKeyframeShape.Rect) {\n                            const extendedMouseRect = TimelineUtils.shrinkSelf({ x: pos.x, y: pos.y, height: clickRadius, width: clickRadius } as DOMRect, clickRadius);\n                            isMouseOver = TimelineUtils.isRectIntersects(extendedMouseRect, keyframePosRect, true);\n                        } else {\n                            const dist = TimelineUtils.getDistance(keyframePosRect.x, keyframePosRect.y, pos.x, pos.y);\n                            isMouseOver = dist <= keyframePosRect.height + clickRadius;\n                        }\n                        if (isMouseOver) {\n                            toReturn.push({\n                                keyframe: keyframeViewModel.model,\n                                keyframes: [keyframeViewModel.model],\n                                val: keyframeViewModel.model.val,\n                                row: keyframeViewModel.rowViewModel.model,\n                                type: TimelineElementType.Keyframe,\n                            } as TimelineElement);\n                        }\n                    }\n                },\n                (rowViewModel) => {\n                    const rowOverlapped = TimelineUtils.isOverlap(pos.x, pos.y, rowViewModel.size);\n                    if (rowOverlapped) {\n                        const row = {\n                            val: this._mousePosToVal(pos.x, snap),\n                            keyframes: rowViewModel.model.keyframes,\n                            type: TimelineElementType.Row,\n                            row: rowViewModel.model,\n                        } as TimelineElement;\n                        toReturn.push(row);\n                    }\n                },\n            );\n        }\n\n        if (!onlyTypes || onlyTypes.length === 0) {\n            return toReturn;\n        } else {\n            return toReturn.filter((p) => onlyTypes && onlyTypes.includes(p.type));\n        }\n    };\n\n    /**\n     * Subscribe user callback on time changed.\n     */\n    public onTimeChanged = (callback: (eventArgs: TimelineTimeChangedEvent) => void): void => {\n        this.on(TimelineEvents.TimeChanged, callback);\n    };\n    /**\n     * Subscribe user callback on drag started event.\n     */\n    public onDragStarted = (callback: (eventArgs: TimelineDragEvent) => void): void => {\n        this.on(TimelineEvents.DragStarted, callback);\n    };\n    /**\n     * Subscribe user callback on drag event.\n     */\n    public onDrag = (callback: (eventArgs: TimelineDragEvent) => void): void => {\n        this.on(TimelineEvents.Drag, callback);\n    };\n    /**\n     * Subscribe user callback on drag finished event.\n     */\n    public onDragFinished = (callback: (eventArgs: TimelineDragEvent) => void): void => {\n        this.on(TimelineEvents.DragFinished, callback);\n    };\n    /**\n     * Subscribe user callback on double click.\n     */\n    public onDoubleClick = (callback: (eventArgs: TimelineClickEvent) => void): void => {\n        this.on(TimelineEvents.DoubleClick, callback);\n    };\n    /**\n     * Subscribe user callback on keyframe changed event.\n     */\n    public onKeyframeChanged = (callback: (eventArgs: TimelineKeyframeChangedEvent) => void): void => {\n        this.on(TimelineEvents.KeyframeChanged, callback);\n    };\n    /**\n     * Subscribe user callback on drag finished event.\n     */\n    public onMouseDown = (callback: (eventArgs: TimelineClickEvent) => void): void => {\n        this.on(TimelineEvents.MouseDown, callback);\n    };\n\n    /**\n     * Subscribe user callback on selected.\n     */\n    public onSelected = (callback: (eventArgs: TimelineSelectedEvent) => void): void => {\n        this.on(TimelineEvents.Selected, callback);\n    };\n    /**\n     * Subscribe user callback on scroll event\n     */\n    public onScroll = (callback: (eventArgs: TimelineScrollEvent) => void): void => {\n        this.on(TimelineEvents.Scroll, callback);\n    };\n    /**\n     * Subscribe on scroll finished event.\n     */\n    public onScrollFinished = (callback: (eventArgs: TimelineScrollEvent) => void): void => {\n        this.on(TimelineEvents.ScrollFinished, callback);\n    };\n    /**\n     * Subscribe on canvas context menu event.\n     */\n    public onContextMenu = (callback: (eventArgs: TimelineClickEvent) => void): void => {\n        this.on(TimelineEvents.ContextMenu, callback);\n    };\n\n    /**\n     * Private.\n     * Emit internally scroll eve\n     */\n    _emitScrollEvent = (args: Event | null, scrollProgrammatically: boolean, eventType = TimelineEvents.Scroll): TimelineScrollEvent => {\n        const scrollEvent = {\n            args: args,\n            scrollProgrammatically: scrollProgrammatically,\n            scrollLeft: this.scrollLeft,\n            scrollTop: this.scrollTop,\n            scrollHeight: this._scrollContainer?.scrollHeight || 0,\n            scrollWidth: this._scrollContainer?.scrollWidth || 0,\n        } as TimelineScrollEvent;\n        super.emit(eventType, scrollEvent);\n        return scrollEvent;\n    };\n    _emitKeyframeChanged = (element: TimelineElementDragState, source: TimelineEventSource = TimelineEventSource.Programmatically): TimelineKeyframeChangedEvent => {\n        const args = new TimelineKeyframeChangedEvent();\n        args.val = element.val;\n        args.prevVal = element.prevVal;\n        args.target = element;\n        args.source = source;\n        this.emit(TimelineEvents.KeyframeChanged, args);\n        return args;\n    };\n    _emitDragStartedEvent = (dragState: TimelineDraggableData): TimelineDragEvent | null => {\n        if (!dragState) {\n            return null;\n        }\n        const args = this._getDragEventArgs(dragState, this._currentPos);\n        this.emit(TimelineEvents.DragStarted, args);\n        if (args.isPrevented()) {\n            this._preventDrag(args, dragState, true);\n        }\n        return args;\n    };\n    /**\n     * Private emit timeline event that dragging element is finished.\n     * @param forcePrevent - needed when during dragging components set to the state when they cannot be dragged anymore. (used only as recovery state).\n     * @returns\n     */\n    _emitDragFinishedEvent = (dragState: TimelineDraggableData, forcePrevent = false): TimelineDragEvent | null => {\n        if (!dragState || !dragState.changed) {\n            return null;\n        }\n        const args = this._getDragEventArgs(dragState, this._currentPos);\n        if (forcePrevent) {\n            args.preventDefault();\n        }\n        this.emit(TimelineEvents.DragFinished, args);\n        if (args.isPrevented()) {\n            this._preventDrag(args, dragState, true);\n        }\n        return args;\n    };\n    _preventDrag = (dragArgs: TimelineDragEvent, data: TimelineDraggableData, toStart = false): void => {\n        if (dragArgs.elements) {\n            dragArgs.elements.forEach((element) => {\n                const toSet = toStart ? element.startedVal : element.prevVal;\n                this._setKeyframePos(element, toSet);\n            });\n        }\n        data.val = data.prevVal;\n        // Set prev active point\n        dragArgs.point = dragArgs.prevPoint;\n    };\n    _emitDragEvent = (dragState: TimelineDraggableData): TimelineDragEvent | null => {\n        if (!dragState) {\n            return null;\n        }\n        const args = this._getDragEventArgs(dragState, this._currentPos);\n        this.emit<TimelineDragEvent>(TimelineEvents.Drag, args);\n        if (args.isPrevented()) {\n            this._preventDrag(args, dragState, false);\n        }\n        return args;\n    };\n    _emitKeyframesSelected = (state: TimelineSelectionResults): TimelineSelectedEvent => {\n        const args = new TimelineSelectedEvent();\n        args.selected = state.selected;\n        args.changed = state.changed;\n        this.emit<TimelineSelectedEvent>(TimelineEvents.Selected, args);\n        return args;\n    };\n    _getDragEventArgs = (dragState: TimelineDraggableData, point: TimelineMouseData | null): TimelineDragEvent => {\n        const draggableArguments = new TimelineDragEvent();\n        draggableArguments.point = point;\n        // Get cloned list\n        draggableArguments.elements = [...(dragState.elements || [])];\n        draggableArguments.target = dragState?.target || null;\n        return draggableArguments;\n    };\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/timelineEventsEmitter.ts",
    "content": "/* eslint-disable  @typescript-eslint/no-explicit-any */\ninterface TimelineEvent {\n  topic: string;\n  callback: (args: any) => void;\n}\n\n/**\n * Timeline events emitter.\n */\nexport class TimelineEventsEmitter {\n  /**\n   * Active events subscriptions.\n   */\n  _subscriptions: TimelineEvent[] = [];\n\n  /**\n   * Subscribe event.\n   * @param topic event name.\n   * @param callback callback to be added.\n   */\n  on<T>(topic: string, callback: (args: T) => void): boolean {\n    if (!callback) {\n      return false;\n    }\n\n    this._subscriptions.push({\n      topic: topic,\n      callback: callback,\n    } as TimelineEvent);\n    return true;\n  }\n  /**\n   * Remove an event from the subscriptions list.\n   */\n  off<T>(topic: string, callback: (args: T) => void): boolean {\n    const before = this._subscriptions.length;\n    this._subscriptions = this._subscriptions.filter((event) => {\n      return event && event.callback != callback && event.topic != topic;\n    });\n    return before !== this._subscriptions.length;\n  }\n\n  /**\n   * Unsubscribe all\n   */\n  offAll(): void {\n    // Remove all callbacks from array.\n    this._subscriptions.length = 0;\n  }\n\n  /**\n   * Emit event.\n   * @param topic Event name.\n   * @param args Event arguments.\n   */\n  emit<T>(topic: string, args: T): void {\n    this._subscriptions.forEach((event) => {\n      if (event?.topic === topic && event?.callback) {\n        event.callback(args);\n      }\n    });\n  }\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineBaseEvent.ts",
    "content": "/**\n * Timeline base preventable event.\n */\nexport class TimelineBaseEvent {\n  private _prevented = false;\n  /**\n   * Prevent default click logic.\n   */\n  preventDefault(): void {\n    this._prevented = true;\n  }\n\n  isPrevented(): boolean {\n    return this._prevented;\n  }\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineClickEvent.ts",
    "content": "import { TimelineElement } from '../timelineElement';\nimport { TimelinePoint } from '../timelinePoint';\nimport { TimelineBaseEvent } from './timelineBaseEvent';\n\nexport class TimelineClickEvent extends TimelineBaseEvent {\n  args: MouseEvent | TouchEvent | null = null;\n  /**\n   * Clicked screen position.\n   */\n  get pos(): DOMPoint | null {\n    return this.point?.pos || null;\n  }\n  get val(): number {\n    if (this.point) {\n      return this.point.val;\n    }\n    return NaN;\n  }\n  /**\n   * All elements located under current mouse activity.\n   */\n  elements: TimelineElement[] = [];\n  /**\n   * Element that selected as target under the click.\n   */\n  target: TimelineElement | null = null;\n  /**\n   * Timeline current active drag position.\n   */\n  point: TimelinePoint | null = null;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineDragEvent.ts",
    "content": "import { TimelinePoint } from '../timelinePoint';\nimport { TimelineBaseEvent } from './timelineBaseEvent';\nimport { TimelineElementDragState } from '../timelineElementDragState';\n\nexport class TimelineDragEvent extends TimelineBaseEvent {\n  args: MouseEvent | TouchEvent | null = null;\n  get pos(): DOMPoint | null {\n    return this.point?.pos || null;\n  }\n  /**\n   * Elements to be dragged as a group.\n   */\n  elements: TimelineElementDragState[] | null = null;\n  /**\n   * Target element\n   */\n  target: TimelineElementDragState | null = null;\n  /**\n   * Timeline current active drag position.\n   */\n  point: TimelinePoint | null = null;\n  /**\n   * Timeline previous drag position.\n   */\n  prevPoint: TimelinePoint | null = null;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineKeyframeChangedEvent.ts",
    "content": "import { TimelineBaseEvent } from './timelineBaseEvent';\nimport { TimelineElement } from '../timelineElement';\nimport { TimelineEventSource } from '../../enums/timelineEventSource';\n\nexport class TimelineKeyframeChangedEvent extends TimelineBaseEvent {\n  /**\n   * Value to be used.\n   */\n  val!: number;\n  /**\n   * Previous value.\n   */\n  prevVal!: number;\n  /**\n   * Target element\n   */\n  target!: TimelineElement;\n  /**\n   * Event source.\n   */\n  source!: TimelineEventSource;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineScrollEvent.ts",
    "content": "export interface TimelineScrollEvent {\n  args: MouseEvent;\n  /**\n   * Whether scroll was component or user initiated.\n   */\n  scrollProgrammatically: boolean;\n  scrollLeft: number;\n  scrollTop: number;\n  scrollHeight: number;\n  scrollWidth: number;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineSelectedEvent.ts",
    "content": "import { TimelineSelectionEventSource } from '../../enums/timelineSelectionEventSource';\nimport { TimelineKeyframe } from '../../models/timelineKeyframe';\n\nexport class TimelineSelectedEvent {\n  /**\n   * Selected Keyframes list.\n   */\n  selected: TimelineKeyframe[] = [];\n  /**\n   * Changed selection.\n   */\n  changed: TimelineKeyframe[] = [];\n  /**\n   * Selection mode.\n   */\n  mode: TimelineSelectionEventSource = TimelineSelectionEventSource.Keyframes;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineTimeChangedEvent.ts",
    "content": "import { TimelineBaseEvent } from './timelineBaseEvent';\nimport { TimelineEventSource } from '../../enums/timelineEventSource';\n\nexport class TimelineTimeChangedEvent extends TimelineBaseEvent {\n  /**\n   * New value to be set if not prevented.\n   */\n  val = 0;\n  /**\n   * previous value, that actually set at the moment.\n   */\n  prevVal = 0;\n  /**\n   * Source of the change.\n   */\n  source: TimelineEventSource = TimelineEventSource.User;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineCutBoundsRectResults.ts",
    "content": "/**\n * Helper container. Cut bounds method results.\n */\nexport interface TimelineCutBoundsRectResults {\n  rect: DOMRect;\n  overlapY: boolean;\n  overlapX: boolean;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineDraggableData.ts",
    "content": "import { TimelineElementType } from '../enums/timelineElementType';\nimport { TimelineElementDragState } from './timelineElementDragState';\n\n/**\n * Information about current drag state.\n */\nexport class TimelineDraggableData {\n  /**\n   * Whether position was changed.\n   */\n  changed = false;\n  /**\n   * Drag initial click target.\n   */\n  target!: TimelineElementDragState;\n  /**\n   * Elements to be dragged.\n   * Can be multiple elements, but drag will be started with target.\n   */\n  elements!: TimelineElementDragState[];\n  /**\n   * Dragging type.\n   */\n  type: TimelineElementType = TimelineElementType.None;\n  /**\n   * Prev value.\n   */\n  val!: number;\n  /**\n   * Prev value.\n   */\n  prevVal!: number;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineElement.ts",
    "content": "import { TimelineKeyframe } from '../models/timelineKeyframe';\nimport { TimelineElementType } from '../enums/timelineElementType';\nimport { TimelineRow } from '../models/timelineRow';\nimport { TimelineGroup } from '../models/timelineGroup';\n\n/**\n * Timeline clickable element.\n */\nexport interface TimelineElement {\n  type: TimelineElementType;\n  /**\n   * Timeline value,\n   */\n  val: number;\n\n  /**\n   * Related keyframe model.\n   */\n  keyframe?: TimelineKeyframe;\n\n  /**\n   * Related row model.\n   */\n  row?: TimelineRow;\n\n  /**\n   * Current group.\n   */\n  group?: string | TimelineGroup;\n  /**\n   * List of the selected, grouped, row keyframes.\n   */\n  keyframes?: TimelineKeyframe[];\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineElementDragState.ts",
    "content": "import { TimelineElement } from './timelineElement';\n\nexport interface TimelineElementDragState extends TimelineElement {\n  /**\n   * Value that preserved before dragging is started.\n   */\n  startedVal: number;\n  /**\n   * Value before change.\n   */\n  prevVal: number;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineMouseData.ts",
    "content": "import { TimelinePoint } from './timelinePoint';\n\n/**\n * Mouse data helper container.\n */\nexport interface TimelineMouseData extends TimelinePoint {\n  /**\n   * Originated event args.\n   */\n  args: TouchEvent | MouseEvent;\n  /**\n   * Click radius.\n   */\n  radius?: number;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelinePoint.ts",
    "content": "/**\n * Timeline values interface.\n */\nexport interface TimelinePoint {\n  /**\n   * Value used for the visualization.\n   * It can be snapped or original.\n   */\n  val: number;\n  /**\n   * Snapped value if snapping is enabled. In other case corresponding to original value.\n   */\n  snapVal: number;\n  /**\n   * Unsnapped original value.\n   */\n  originalVal: number;\n  /**\n   * Screen click point.\n   */\n  pos: DOMPoint;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineSelectable.ts",
    "content": "/**\n * Timeline selectable element.\n */\nexport interface TimelineSelectable {\n  selected?: boolean;\n  selectable?: boolean;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineSelectionResults.ts",
    "content": "import { TimelineKeyframe } from '../models/timelineKeyframe';\n\nexport interface TimelineSelectionResults {\n  /**\n   * Changed nodes.\n   */\n  changed: TimelineKeyframe[];\n  /**\n   * Selected nodes.\n   */\n  selected: TimelineKeyframe[];\n  /**\n   * Whether data was changed.\n   */\n  selectionChanged: boolean;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineStyleUtils.ts",
    "content": "import { TimelineOptions } from '../settings/timelineOptions';\nimport { TimelineRowStyle } from '../settings/styles/timelineRowStyle';\nimport { TimelineKeyframeShape } from '../enums/timelineKeyframeShape';\nimport { TimelineUtils } from './timelineUtils';\nimport { TimelineGroupStyle } from '../settings/styles/timelineGroupStyle';\nimport { TimelineKeyframe } from '../models/timelineKeyframe';\n\nimport { TimelineGroup } from '../models/timelineGroup';\nimport { TimelineRow } from '../models/timelineRow';\nimport { defaultGroupStyle } from '../settings/defaults/defaultGroupStyle';\nimport { defaultTimelineKeyframeStyle } from '../settings/defaults/defaultTimelineKeyframeStyle';\nimport { defaultTimelineRowStyle } from '../settings/defaults/defaultTimelineRowStyle';\n\nconst undefinedConst = typeof undefined;\n\n// TODO: create merged style for each element instead of getting per property.\nexport class TimelineStyleUtils {\n    static getGroup(groupModel: TimelineGroup | string | null | undefined): TimelineGroup | null {\n        const style = groupModel;\n        if (style && typeof style === 'string') {\n            return null;\n        }\n        return (style || null) as TimelineGroup;\n    }\n    static getGroupStyle(groupModel: TimelineGroup | string | null | undefined): TimelineGroupStyle | null {\n        return TimelineStyleUtils.getGroup(groupModel)?.style || null;\n    }\n    static getFirstSet<T>(defaultValue: T, ...params: Array<T | undefined | null>): T {\n        return TimelineStyleUtils.getValue(defaultValue, false, ...params);\n    }\n    /**\n     * Get first value set or default.\n     * @param defaultValue default value in a case when no value is set.\n     * @param returnFalseIfAnyFalse - find first negative bool and return false.\n     * @param params collection of values to check.\n     * @returns value.\n     */\n    static getValue<T>(defaultValue: T, returnFalseIfAnyFalse = false, ...params: Array<T | undefined | null>): T {\n        const valuesFound: T[] = [];\n        let found = false;\n        params.forEach((value: T | undefined | null) => {\n            if (found) {\n                return;\n            }\n            if (typeof value === undefinedConst) {\n                return;\n            } else if (typeof value === 'number') {\n                if (!TimelineUtils.isNumber(value)) {\n                    return;\n                }\n            } else if (typeof value === 'boolean') {\n                valuesFound.push(value as T);\n                // No need to search for other values. First false is turning off current bool functionality.\n                if (returnFalseIfAnyFalse && value === false) {\n                    found = true;\n                }\n                return;\n            } else if (!value) {\n                return;\n            }\n            valuesFound.push(value as T);\n        });\n        const toReturn = valuesFound && valuesFound.length > 0 ? valuesFound[0] : defaultValue;\n        if (found) {\n            return false as T;\n        }\n        return TimelineStyleUtils.getValueOrDefault(toReturn, defaultValue) as T;\n    }\n\n    static getValueOrDefault<T>(value: T, defaultValue: T): T | undefined {\n        if (typeof value === undefinedConst) {\n            return defaultValue;\n        } else if (typeof value == 'boolean') {\n            // variable is a boolean\n            return value as T;\n        } else if (typeof value == 'number') {\n            // variable is a boolean\n            if (value || value === 0) {\n                return value as T;\n            } else {\n                return defaultValue;\n            }\n        }\n        return value || defaultValue;\n    }\n    static keyframeWidth(\n        keyframe: TimelineKeyframe | null | undefined,\n        group: TimelineGroup | string | null | undefined,\n        rowStyle: TimelineRowStyle | null | undefined,\n        options: TimelineOptions | null | undefined,\n    ): number | string {\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultTimelineKeyframeStyle.width || '',\n            keyframe?.style?.width,\n            // exact style\n            TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.width,\n            rowStyle?.keyframesStyle?.width,\n            rowStyle?.groupsStyle?.keyframesStyle?.width,\n            // global styles\n            options?.rowsStyle?.groupsStyle?.keyframesStyle?.width,\n            // default keyframe style\n            options?.rowsStyle?.keyframesStyle?.width,\n        );\n    }\n    static keyframeHeight(\n        keyframe: TimelineKeyframe | null | undefined,\n        group: TimelineGroup | string | null | undefined,\n        rowStyle: TimelineRowStyle | null | undefined,\n        options: TimelineOptions | null | undefined,\n    ): number | string {\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultTimelineKeyframeStyle.height || '',\n            keyframe?.style?.height,\n            // exact style\n            TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.height,\n            rowStyle?.keyframesStyle?.height,\n            rowStyle?.groupsStyle?.keyframesStyle?.height,\n            // global styles\n            options?.rowsStyle?.groupsStyle?.keyframesStyle?.height,\n            // default keyframe style\n            options?.rowsStyle?.keyframesStyle?.height,\n        );\n    }\n    static keyframeShape(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): TimelineKeyframeShape {\n        const defaultValue = defaultTimelineKeyframeStyle.shape || TimelineKeyframeShape.Rhomb;\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            keyframe?.style?.shape,\n            // style set by keyframe group\n            TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.shape,\n            // style from the keyframe group\n            rowStyle?.groupsStyle?.keyframesStyle?.shape,\n            // style set by keyframe style\n            rowStyle?.keyframesStyle?.shape,\n            // style set by keyframe group style, applied when group is set\n            group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.shape : undefined,\n            // Style set by global options\n            options?.rowsStyle?.keyframesStyle?.shape,\n        );\n    }\n    static keyframeFillColor(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string {\n        const defaultValue = defaultTimelineKeyframeStyle.fillColor || '';\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            keyframe?.style?.fillColor,\n            // style set by keyframe group\n            TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.fillColor,\n            // style from the keyframe group\n            rowStyle?.groupsStyle?.keyframesStyle?.fillColor,\n            // style set by keyframe style\n            rowStyle?.keyframesStyle?.fillColor,\n            // style set by keyframe group style, applied when group is set\n            group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.fillColor : undefined,\n            // Style set by global options\n            options?.rowsStyle?.keyframesStyle?.fillColor,\n        );\n    }\n    static keyframeSelectedFillColor(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string {\n        const defaultValue = defaultTimelineKeyframeStyle.selectedFillColor || '';\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            keyframe?.style?.selectedFillColor,\n            // style set by keyframe group\n            TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.selectedFillColor,\n            // style from the keyframe group\n            rowStyle?.groupsStyle?.keyframesStyle?.selectedFillColor,\n            // style set by keyframe style\n            rowStyle?.keyframesStyle?.selectedFillColor,\n            // style set by keyframe group style, applied when group is set\n            group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.selectedFillColor : undefined,\n            // Style set by global options\n            options?.rowsStyle?.keyframesStyle?.selectedFillColor,\n        );\n    }\n\n    static keyframeStrokeThickness(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): number {\n        const defaultValue = defaultTimelineKeyframeStyle.strokeThickness || 0;\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            keyframe?.style?.strokeThickness,\n            // style set by keyframe group\n            TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.strokeThickness,\n            // style from the keyframe group\n            rowStyle?.groupsStyle?.keyframesStyle?.strokeThickness,\n            // style set by keyframe style\n            rowStyle?.keyframesStyle?.strokeThickness,\n            // style set by keyframe group style, applied when group is set\n            group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.strokeThickness : undefined,\n            // Style set by global options\n            options?.rowsStyle?.keyframesStyle?.strokeThickness,\n        );\n    }\n\n    static keyframeStrokeColor(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string {\n        const defaultValue = defaultTimelineKeyframeStyle.strokeColor || '';\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            keyframe?.style?.strokeColor,\n            // style set by keyframe group\n            TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.strokeColor,\n            // style from the keyframe group\n            rowStyle?.groupsStyle?.keyframesStyle?.strokeColor,\n            // style set by keyframe style\n            rowStyle?.keyframesStyle?.strokeColor,\n            // style set by keyframe group style, applied when group is set\n            group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.strokeColor : undefined,\n            // Style set by global options\n            options?.rowsStyle?.keyframesStyle?.strokeColor,\n        );\n    }\n    static keyframeSelectedStrokeColor(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string {\n        const defaultValue = defaultTimelineKeyframeStyle.selectedStrokeColor || '';\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            keyframe?.style?.selectedStrokeColor,\n            // style set by keyframe group\n            TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.selectedStrokeColor,\n            // style from the keyframe group\n            rowStyle?.groupsStyle?.keyframesStyle?.selectedStrokeColor,\n            // style set by keyframe style\n            rowStyle?.keyframesStyle?.selectedStrokeColor,\n            // style set by keyframe group style, applied when group is set\n            group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.selectedStrokeColor : undefined,\n            // Style set by global options\n            options?.rowsStyle?.keyframesStyle?.selectedStrokeColor,\n        );\n    }\n\n    static groupHeight(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): number | string {\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultGroupStyle.height || 'auto',\n            // exact group style\n            TimelineStyleUtils.getGroupStyle(group)?.height,\n            // Row row style\n            rowStyle?.groupsStyle?.height,\n            // global styles\n            options?.rowsStyle?.groupsStyle?.height,\n        );\n    }\n\n    static groupMarginTop(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): number | string {\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultGroupStyle.marginTop || 'auto',\n            // exact style\n            TimelineStyleUtils.getGroupStyle(group)?.marginTop,\n            // Row row style\n            rowStyle?.groupsStyle?.marginTop,\n            // global styles\n            options?.rowsStyle?.groupsStyle?.marginTop,\n        );\n    }\n\n    static groupFillColor(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): string {\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultGroupStyle.fillColor || '',\n            // exact style\n            TimelineStyleUtils.getGroupStyle(group)?.fillColor,\n            // Row row style\n            rowStyle?.groupsStyle?.fillColor,\n            // global styles\n            options?.rowsStyle?.groupsStyle?.fillColor,\n        );\n    }\n    static groupStrokeColor(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): string {\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultGroupStyle.strokeColor || '',\n            // exact style\n            TimelineStyleUtils.getGroupStyle(group)?.strokeColor,\n            // Row row style\n            rowStyle?.groupsStyle?.strokeColor,\n            // global styles\n            options?.rowsStyle?.groupsStyle?.strokeColor,\n        );\n    }\n\n    static groupStrokeThickness(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): number {\n        return (\n            TimelineStyleUtils.getFirstSet(\n                // default value\n                defaultGroupStyle.strokeThickness || '',\n                // exact style\n                TimelineStyleUtils.getGroupStyle(group)?.strokeThickness,\n                // Row row style\n                rowStyle?.groupsStyle?.strokeThickness,\n                // global styles\n                options?.rowsStyle?.groupsStyle?.strokeThickness,\n            ) || 0\n        );\n    }\n\n    static groupsRadii(\n        options: TimelineOptions | null | undefined,\n        group: TimelineGroup | string | null | undefined,\n        rowStyle: TimelineRowStyle | null | undefined,\n    ): number | DOMPointInit | Iterable<number | DOMPointInit> {\n        return (\n            TimelineStyleUtils.getFirstSet(\n                // default value\n                defaultGroupStyle.radii || '',\n                // exact style\n                TimelineStyleUtils.getGroupStyle(group)?.radii,\n                // Row row style\n                rowStyle?.groupsStyle?.radii,\n                // global styles\n                options?.rowsStyle?.groupsStyle?.radii,\n            ) || 0\n        );\n    }\n\n    static groupText(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): TimelineGroupStyle[\"text\"] {\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultGroupStyle.text || {\n                label:\"\"\n            },\n            // exact style\n            TimelineStyleUtils.getGroupStyle(group)?.text,\n            // Row row style\n            rowStyle?.groupsStyle?.text,\n            // global styles\n            options?.rowsStyle?.groupsStyle?.text,\n        );\n    }\n\n    /**\n     * Get current row height from styles\n     */\n    static getRowHeight(rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): number {\n        const defaultValue = defaultTimelineRowStyle.height || 0;\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            rowStyle?.height,\n            // Style set by global options\n            options?.rowsStyle?.height,\n        );\n    }\n    static getRowMarginBottom(rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): number {\n        const defaultValue = defaultTimelineRowStyle.marginBottom || 0;\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            rowStyle?.marginBottom,\n            // Style set by global options\n            options?.rowsStyle?.marginBottom,\n        );\n    }\n\n    static getRowFillColor(rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string {\n        const defaultValue = defaultTimelineRowStyle.fillColor || '';\n        return TimelineStyleUtils.getFirstSet(\n            // default value\n            defaultValue,\n            // exact style\n            rowStyle?.fillColor,\n            // Style set by global options\n            options?.rowsStyle?.fillColor,\n        );\n    }\n\n    static headerHeight(options: TimelineOptions | null, defaultRowHeight = 30): number {\n        return options?.headerHeight || defaultRowHeight;\n    }\n    static keyframeDraggable(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null, row: TimelineRow | null, options: TimelineOptions | null, defaultValue = true): boolean {\n        const findFirstNegativeBool = true;\n        const boolResult = TimelineStyleUtils.getValue<boolean>(\n            defaultValue,\n            findFirstNegativeBool,\n            // Keyframe settings\n            keyframe?.draggable,\n            // Group settings\n            TimelineStyleUtils.getGroup(group)?.keyframesDraggable,\n            // Row settings\n            row?.keyframesDraggable,\n            // Start from global settings first.\n            options?.keyframesDraggable,\n        );\n        return boolResult;\n    }\n\n    static groupDraggable(group: TimelineGroup | string | null | undefined, row: TimelineRow | null, options: TimelineOptions): boolean {\n        const findFirstNegativeBool = true;\n        const boolResult = TimelineStyleUtils.getValue<boolean>(\n            true,\n            findFirstNegativeBool,\n            // Group settings\n            TimelineStyleUtils.getGroup(group)?.draggable,\n            // Row settings\n            row?.groupsDraggable,\n            // Start from global settings first.\n            options?.groupsDraggable,\n        );\n        return boolResult;\n    }\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/utils/timelineUtils.ts",
    "content": "import { TimelineRanged } from '../models/timelineRanged';\nimport { TimelineOptions } from '../settings/timelineOptions';\n\nconst defaultDenominators = [1, 2, 5, 10];\nexport class TimelineUtils {\n  static drawLine(ctx: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number): void {\n    ctx.moveTo(x1, y1);\n    ctx.lineTo(x2, y2);\n  }\n  /**\n   * Check is valid number.\n   */\n  static isNumber(val?: number | null): boolean {\n    if (typeof val === 'number' && (val || val === 0) && !isNaN(val) && Number.isFinite(val)) {\n      return true;\n    }\n\n    return false;\n  }\n  static deleteElement<T>(array: Array<T>, element: T): Array<T> {\n    const index: number = array.indexOf(element);\n    if (index !== -1) {\n      return array.splice(index, 1);\n    }\n    return array;\n  }\n\n  /**\n   * Check rectangle overlap x,y\n   */\n  static isOverlap(x: number, y: number, rectangle: DOMRect): boolean {\n    if (!rectangle) {\n      return false;\n    }\n\n    if (rectangle.x <= x && rectangle.x + rectangle.width >= x && rectangle.y <= y && rectangle.y + rectangle.height >= y) {\n      return true;\n    }\n\n    return false;\n  }\n  /**\n   * Find beautiful step for the header line gauge.\n   */\n  static findGoodStep(originalStep: number, divisionCheck = 0, denominators: number[] = defaultDenominators): number {\n    if (!denominators) {\n      denominators = defaultDenominators;\n    }\n    if (originalStep <= 0 || isNaN(originalStep) || !Number.isFinite(originalStep)) {\n      return originalStep;\n    }\n    let step = originalStep;\n    let lastDistance:number | null = null;\n    const pow = TimelineUtils.getPowArgument(originalStep);\n    for (let i = 0; i < denominators.length; i++) {\n      const denominator = denominators[i];\n      const calculatedStep = denominator * Math.pow(10, pow);\n      if (divisionCheck && divisionCheck % calculatedStep != 0) {\n        continue;\n      }\n      const distance = TimelineUtils.getDistance(originalStep, calculatedStep);\n\n      if (distance == 0 || (distance <= 0.1 && pow > 0)) {\n        lastDistance = distance;\n        step = calculatedStep;\n        break;\n      } else if (!lastDistance || lastDistance > distance) {\n        lastDistance = distance;\n        step = calculatedStep;\n      }\n    }\n\n    return step;\n  }\n  /**\n   * Keep value in min, max bounds.\n   */\n  static keepInBounds(value: number, min: number | null | undefined = null, max: number | null | undefined = null): number {\n    if (TimelineUtils.isNumber(value)) {\n      if (TimelineUtils.isNumber(min) && (min || min === 0)) {\n        value = Math.max(value, min);\n      }\n      if (TimelineUtils.isNumber(max) && (max || max === 0)) {\n        value = Math.min(value, max);\n      }\n    }\n\n    return value;\n  }\n  static setMinMax(to: TimelineRanged, from: TimelineRanged | null, shrink = false): TimelineRanged {\n    if (!from || !to) {\n      return to;\n    }\n    const fromMin = from ? from.min : Number.NaN;\n    const toMin = to.min;\n    const isFromMinNumber = (fromMin || fromMin === 0) && TimelineUtils.isNumber(fromMin);\n    const isToMinNumber = (toMin || toMin === 0) && TimelineUtils.isNumber(toMin);\n    // get absolute min and max bounds:\n    if (isFromMinNumber && isToMinNumber) {\n      to.min = shrink ? Math.min(fromMin, toMin) : Math.max(fromMin, toMin);\n    } else if (isFromMinNumber) {\n      to.min = fromMin;\n    }\n    const fromMax = from ? from.max : Number.NaN;\n    const toMax = to.max;\n    const isFromMaxNumber = (fromMax || fromMax === 0) && TimelineUtils.isNumber(fromMax);\n    const isToMaxNumber = (toMax || toMax === 0) && TimelineUtils.isNumber(toMax);\n    if (isFromMaxNumber && isToMaxNumber) {\n      to.max = shrink ? Math.max(fromMax, toMax) : Math.min(fromMax, toMax);\n    } else if (isFromMaxNumber) {\n      to.max = fromMax;\n    }\n\n    return to;\n  }\n  static shrinkSelf(rect: DOMRect, value: number): DOMRect {\n    if (!rect) {\n      return rect;\n    }\n    rect.x -= value;\n    rect.y -= value;\n    rect.width += value;\n    rect.height += value;\n    return rect;\n  }\n  /**\n   * Check whether rectangle intersects another rectangle\n   */\n  static isRectIntersects(rect: DOMRect, rect2: DOMRect, touch = false): boolean {\n    if (!rect || !rect2) {\n      console.log('Rectangles cannot be empty');\n      return false;\n    }\n    const right = rect2.x + rect2.width;\n    const bottom = rect2.y + rect2.height;\n    if (touch) {\n      if (\n        // Left\n        rect.x <= right &&\n        // Right\n        rect2.x <= rect.x + rect.width &&\n        // Top\n        rect.y <= bottom &&\n        // Bottom\n        rect2.y <= rect.y + rect.height\n      ) {\n        return true;\n      } else {\n        return false;\n      }\n    } else {\n      if (\n        // Left\n        rect.x < right &&\n        // Right\n        rect2.x < rect.x + rect.width &&\n        // Top\n        rect.y < bottom &&\n        // Bottom\n        rect2.y < rect.y + rect.height\n      ) {\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n\n  static getDistance(x1: number, y1: number, x2?: number, y2?: number): number {\n    if (x2 != undefined && y2 != undefined) {\n      return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n    } else {\n      return Math.abs(x1 - y1);\n    }\n  }\n\n  /**\n   * Get sign of the number. 1 or -1.\n   */\n  static sign(p: number): number {\n    return p >= 0 ? 1 : -1;\n  }\n\n  /**\n   * Clear browser text selection.\n   */\n  static clearBrowserSelection(): void {\n    if (!window) {\n      return;\n    }\n    if (window.getSelection) {\n      const selection = window.getSelection();\n      if (selection) {\n        selection.removeAllRanges();\n      }\n    } else {\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      const doc: any = window.document;\n      if (doc.selection) {\n        doc.selection.empty();\n      }\n    }\n  }\n  static getPowArgument(toCheck: number): number {\n    if (!toCheck || toCheck === 0 || !isFinite(toCheck)) {\n      return 1;\n    }\n    // some optimization for numbers:\n    if (toCheck >= 10 && toCheck < 100) {\n      return 1;\n    } else if (toCheck >= 100 && toCheck < 1000) {\n      return 2;\n    } else if (toCheck >= 1000 && toCheck < 10000) {\n      return 3;\n    }\n\n    toCheck = Math.abs(toCheck);\n    let category = 0;\n    const s = this.sign(toCheck);\n    if (toCheck > 1) {\n      while (toCheck >= 1) {\n        toCheck = Math.floor(toCheck / 10.0);\n        category++;\n      }\n\n      return s * category - 1;\n    } else if (toCheck > 0.0) {\n      // Get number of zeros before the number.\n      const zerosCount = Math.floor(Math.log(toCheck) / Math.log(10) + 1) - 1;\n      return zerosCount;\n    } else {\n      return 1;\n    }\n  }\n\n  static deepClone = <T>(previousOptions: T): T => {\n    return JSON.parse(JSON.stringify(previousOptions)) as T;\n  };\n\n  static cloneOptions = (previousOptions: TimelineOptions): TimelineOptions => {\n    const clonedValue = JSON.parse(\n      JSON.stringify(previousOptions, (key, value) => {\n        // No need to clone HTML element passed as ID.\n        return key === 'id' ? undefined : value;\n      }),\n    );\n    clonedValue.id = previousOptions.id;\n    return clonedValue;\n  };\n  /**\n   * Merge options. New keys will be added.\n   */\n  static mergeOptions(previousOptions: TimelineOptions, newOptions: TimelineOptions): TimelineOptions {\n    newOptions = newOptions || ({} as TimelineOptions);\n    // Apply incoming options to default. (override default)\n    // Deep clone default options:\n    const toArg = TimelineUtils.cloneOptions(previousOptions);\n    // Merge options with the default.\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const mergeOptionsDeep = (to: any, from: any): void => {\n      if (!to || !from) {\n        return;\n      }\n      // eslint-disable-next-line prefer-const\n      for (let key in from) {\n        if (Object.prototype.hasOwnProperty.call(from, key)) {\n          if (from[key] !== undefined) {\n            if (typeof from[key] === 'object') {\n              if (key === 'id') {\n                if (from[key] && from[key] !== to[key]) {\n                  to[key] = from[key];\n                }\n              } else {\n                if (!to[key]) {\n                  to[key] = from[key];\n                } else {\n                  mergeOptionsDeep(to[key], from[key]);\n                }\n              }\n            } else {\n              to[key] = from[key];\n            }\n          }\n        }\n      }\n    };\n\n    mergeOptionsDeep(toArg, newOptions);\n    return toArg;\n  }\n  /**\n   * Format numbers with len\n   */\n  static timePadZero(num: number, len = 2): string {\n    let str = String(num);\n    const threshold = Math.pow(10, len - 1);\n    if (num < threshold) {\n      while (String(threshold).length > str.length) {\n        str = `0${num}`;\n      }\n    }\n    return str;\n  }\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/viewModels/timelineGroupViewModel.ts",
    "content": "import { TimelineGroup } from '../models/timelineGroup';\nimport { TimelineKeyframeViewModel } from './timelineKeyframeViewModel';\n\nexport interface TimelineGroupViewModel {\n  /**\n   * Size of the element in screen coordinates.\n   */\n  size: DOMRect | null;\n  /**\n   * From value in the timeline keyframes collection.\n   */\n  min: number;\n  /**\n   * To value in the timeline keyframes collection.\n   */\n  max: number;\n\n  /**\n   * Related Group Model.\n   */\n  groupModel: string | TimelineGroup;\n\n  /**\n   * Related Grouped keyframes view models.\n   */\n  keyframesViewModels: TimelineKeyframeViewModel[];\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/viewModels/timelineKeyframeViewModel.ts",
    "content": "import { TimelineKeyframeShape } from '../enums/timelineKeyframeShape';\nimport { TimelineKeyframe } from '../models/timelineKeyframe';\nimport { TimelineGroupViewModel } from './timelineGroupViewModel';\nimport { TimelineRowViewModel } from './timelineRowViewModel';\n\n/**\n * Timeline calculated view model.\n */\nexport interface TimelineKeyframeViewModel {\n  /**\n   * Size of the keyframe.\n   */\n  size: DOMRect;\n  shape: TimelineKeyframeShape;\n  /**\n   * Related keyframe model.\n   */\n  model: TimelineKeyframe;\n  /**\n   * Related calculated parent row view model.\n   */\n  rowViewModel: TimelineRowViewModel;\n  /**\n   * Related calculated parent group view model.\n   */\n  groupViewModel: TimelineGroupViewModel;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/viewModels/timelineRowViewModel.ts",
    "content": "import { TimelineRow } from '../models/timelineRow';\nimport { TimelineGroupViewModel } from './timelineGroupViewModel';\nimport { TimelineKeyframeViewModel } from './timelineKeyframeViewModel';\n\nexport interface TimelineRowViewModel {\n  /**\n   * Screen coordinates of the element.\n   */\n  size: DOMRect;\n  /**\n   * Related row model.\n   */\n  model: TimelineRow;\n  /**\n   * Current row index.\n   */\n  index: number;\n  /**\n   * Row margin bottom\n   */\n  marginBottom: number;\n  /**\n   * Collection of the keyframes groups view models exists in the current row.\n   */\n  groupsViewModels: TimelineGroupViewModel[];\n\n  /**\n   * All keyframes in the current row.\n   */\n  keyframesViewModels: TimelineKeyframeViewModel[];\n  min: number | null;\n  max: number | null;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/astral-timeline/viewModels/timelineViewModel.ts",
    "content": "import { TimelineKeyframeViewModel } from './timelineKeyframeViewModel';\nimport { TimelineRowViewModel } from './timelineRowViewModel';\n\nexport interface TimelineViewModel {\n  /**\n   * Screen coordinates of the element.\n   */\n  size: DOMRect;\n  /**\n   * Keyframes view models.\n   */\n  keyframesViewModels: TimelineKeyframeViewModel[];\n  /**\n   * Collection of the rows sizes.\n   */\n  rowsViewModels: TimelineRowViewModel[];\n\n  min: number | null;\n  max: number | null;\n}\n"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Alpha.js",
    "content": "import { MathUtils, createSpan } from '../math';\nimport Behaviour from './Behaviour';\nimport { PARTICLE_ALPHA_THRESHOLD } from './constants';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_ALPHA as type } from './types';\n/**\n * Behaviour that applies an alpha transition effect to particles.\n *\n */\n\nexport default class Alpha extends Behaviour {\n  /**\n   * Constructs an Alpha behaviour instance.\n   *\n   * @param {number} alphaA - The starting alpha value\n   * @param {?number} alphaB - The ending alpha value\n   * @param {number} life - The life of the behaviour\n   * @param {function} easing - The easing equation to use for transforms\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(alphaA = 1, alphaB = null, life = Infinity, easing, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    /**\n     * @desc The starting alpha value\n     * @type {number|Span}\n     */\n\n    this.alphaA = alphaA;\n    /**\n     * @desc The ending alpha value\n     * @type {number|Span}\n     */\n\n    this.alphaB = alphaB;\n    this.reset(alphaA, alphaB);\n  }\n  /**\n   * Gets the _same property which determines if the alpha are the same.\n   *\n   * @return {boolean}\n   */\n\n\n  get same() {\n    return this._same;\n  }\n  /**\n   * Sets the _same property which determines if the alpha are the same.\n   *\n   * @param {boolean} same\n   * @return {boolean}\n   */\n\n\n  set same(same) {\n    /**\n     * @type {boolean}\n     */\n    this._same = same;\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {number} alphaA - the starting alpha value\n   * @param {?number} alphaB - the ending alpha value\n   * @param {number} life - the life of the behaviour\n   * @param {function} easing - the easing equation to use for transforms\n   * @return void\n   */\n\n\n  reset(alphaA = 1, alphaB = null, life, easing) {\n    this.same = alphaB === null || alphaB === undefined ? true : false;\n    this.alphaA = createSpan(alphaA);\n    this.alphaB = createSpan(alphaB);\n    life && super.reset(life, easing);\n  }\n  /**\n   * Initializes the behaviour on a particle.\n   *\n   * @param {object} particle - the particle to initialize the behaviour on\n   * @return void\n   */\n\n\n  initialize(particle) {\n    particle.useAlpha = true;\n    particle.transform.alphaA = this.alphaA.getValue();\n    particle.transform.alphaB = this.same ? particle.transform.alphaA : this.alphaB.getValue();\n  }\n  /**\n   * Mutates the target's alpha/opacity property.\n   *\n   * @param {object} particle - the particle to apply the behaviour to\n   * @param {number} time - engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n    particle.alpha = MathUtils.lerp(particle.transform.alphaA, particle.transform.alphaB, this.energy);\n\n    if (particle.alpha < PARTICLE_ALPHA_THRESHOLD) {\n      particle.alpha = 0;\n    }\n  }\n  /**\n   * Creates a Body initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @property {number} json.alphaA - The starting alpha value\n   * @property {number} json.alphaB - The ending alpha value\n   * @property {number} json.life - The life of the behaviour\n   * @property {string} json.easing - The easing equation to use for transforms\n   * @return {Body}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      alphaA,\n      alphaB,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Alpha(alphaA, alphaB, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQWxwaGEuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiY3JlYXRlU3BhbiIsIkJlaGF2aW91ciIsIlBBUlRJQ0xFX0FMUEhBX1RIUkVTSE9MRCIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX0FMUEhBIiwidHlwZSIsIkFscGhhIiwiY29uc3RydWN0b3IiLCJhbHBoYUEiLCJhbHBoYUIiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJzYW1lIiwiX3NhbWUiLCJ1bmRlZmluZWQiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJ1c2VBbHBoYSIsInRyYW5zZm9ybSIsImdldFZhbHVlIiwibXV0YXRlIiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJhbHBoYSIsImxlcnAiLCJlbmVyZ3kiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVQsRUFBb0JDLFVBQXBCLFFBQXNDLFNBQXRDO0FBRUEsT0FBT0MsU0FBUCxNQUFzQixhQUF0QjtBQUNBLFNBQVNDLHdCQUFULFFBQXlDLGFBQXpDO0FBQ0EsU0FBU0MsZUFBVCxRQUFnQyxTQUFoQztBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsS0FBTixTQUFvQkwsU0FBcEIsQ0FBOEI7QUFDM0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxNQUFNLEdBQUcsQ0FBVixFQUFhQyxNQUFNLEdBQUcsSUFBdEIsRUFBNEJDLElBQTVCLEVBQWtDQyxNQUFsQyxFQUEwQ0MsU0FBUyxHQUFHLElBQXRELEVBQTREO0FBQ3JFLFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQk4sSUFBcEIsRUFBMEJPLFNBQTFCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0osTUFBTCxHQUFjQSxNQUFkO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsTUFBTCxHQUFjQSxNQUFkO0FBRUEsU0FBS0ksS0FBTCxDQUFXTCxNQUFYLEVBQW1CQyxNQUFuQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ1UsTUFBSkssSUFBSSxHQUFHO0FBQ1QsV0FBTyxLQUFLQyxLQUFaO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNVLE1BQUpELElBQUksQ0FBQ0EsSUFBRCxFQUFPO0FBQ2I7QUFDSjtBQUNBO0FBQ0ksU0FBS0MsS0FBTCxHQUFhRCxJQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRCxFQUFBQSxLQUFLLENBQUNMLE1BQU0sR0FBRyxDQUFWLEVBQWFDLE1BQU0sR0FBRyxJQUF0QixFQUE0QkMsSUFBNUIsRUFBa0NDLE1BQWxDLEVBQTBDO0FBQzdDLFNBQUtHLElBQUwsR0FBWUwsTUFBTSxLQUFLLElBQVgsSUFBbUJBLE1BQU0sS0FBS08sU0FBOUIsR0FBMEMsSUFBMUMsR0FBaUQsS0FBN0Q7QUFDQSxTQUFLUixNQUFMLEdBQWNSLFVBQVUsQ0FBQ1EsTUFBRCxDQUF4QjtBQUNBLFNBQUtDLE1BQUwsR0FBY1QsVUFBVSxDQUFDUyxNQUFELENBQXhCO0FBRUFDLElBQUFBLElBQUksSUFBSSxNQUFNRyxLQUFOLENBQVlILElBQVosRUFBa0JDLE1BQWxCLENBQVI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VNLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLFFBQVQsR0FBb0IsSUFBcEI7QUFDQUQsSUFBQUEsUUFBUSxDQUFDRSxTQUFULENBQW1CWixNQUFuQixHQUE0QixLQUFLQSxNQUFMLENBQVlhLFFBQVosRUFBNUI7QUFFQUgsSUFBQUEsUUFBUSxDQUFDRSxTQUFULENBQW1CWCxNQUFuQixHQUE0QixLQUFLSyxJQUFMLEdBQ3hCSSxRQUFRLENBQUNFLFNBQVQsQ0FBbUJaLE1BREssR0FFeEIsS0FBS0MsTUFBTCxDQUFZWSxRQUFaLEVBRko7QUFHRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxNQUFNLENBQUNKLFFBQUQsRUFBV0ssSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjUCxRQUFkLEVBQXdCSyxJQUF4QixFQUE4QkMsS0FBOUI7QUFFQU4sSUFBQUEsUUFBUSxDQUFDUSxLQUFULEdBQWlCM0IsU0FBUyxDQUFDNEIsSUFBVixDQUNmVCxRQUFRLENBQUNFLFNBQVQsQ0FBbUJaLE1BREosRUFFZlUsUUFBUSxDQUFDRSxTQUFULENBQW1CWCxNQUZKLEVBR2YsS0FBS21CLE1BSFUsQ0FBakI7O0FBTUEsUUFBSVYsUUFBUSxDQUFDUSxLQUFULEdBQWlCeEIsd0JBQXJCLEVBQStDO0FBQzdDZ0IsTUFBQUEsUUFBUSxDQUFDUSxLQUFULEdBQWlCLENBQWpCO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkcsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFdEIsTUFBQUEsTUFBRjtBQUFVQyxNQUFBQSxNQUFWO0FBQWtCQyxNQUFBQSxJQUFsQjtBQUF3QkMsTUFBQUEsTUFBeEI7QUFBZ0NDLE1BQUFBLFNBQVMsR0FBRztBQUE1QyxRQUFxRGtCLElBQTNEO0FBRUEsV0FBTyxJQUFJeEIsS0FBSixDQUFVRSxNQUFWLEVBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NQLGVBQWUsQ0FBQ1EsTUFBRCxDQUEvQyxFQUF5REMsU0FBekQsQ0FBUDtBQUNEOztBQXZIMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRoVXRpbHMsIGNyZWF0ZVNwYW4gfSBmcm9tICcuLi9tYXRoJztcblxuaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBQQVJUSUNMRV9BTFBIQV9USFJFU0hPTEQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX0FMUEhBIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBhcHBsaWVzIGFuIGFscGhhIHRyYW5zaXRpb24gZWZmZWN0IHRvIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFscGhhIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gQWxwaGEgYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gYWxwaGFBIC0gVGhlIHN0YXJ0aW5nIGFscGhhIHZhbHVlXG4gICAqIEBwYXJhbSB7P251bWJlcn0gYWxwaGFCIC0gVGhlIGVuZGluZyBhbHBoYSB2YWx1ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhbHBoYUEgPSAxLCBhbHBoYUIgPSBudWxsLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgc3RhcnRpbmcgYWxwaGEgdmFsdWVcbiAgICAgKiBAdHlwZSB7bnVtYmVyfFNwYW59XG4gICAgICovXG4gICAgdGhpcy5hbHBoYUEgPSBhbHBoYUE7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgZW5kaW5nIGFscGhhIHZhbHVlXG4gICAgICogQHR5cGUge251bWJlcnxTcGFufVxuICAgICAqL1xuICAgIHRoaXMuYWxwaGFCID0gYWxwaGFCO1xuXG4gICAgdGhpcy5yZXNldChhbHBoYUEsIGFscGhhQik7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgX3NhbWUgcHJvcGVydHkgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgYWxwaGEgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IHNhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NhbWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgX3NhbWUgcHJvcGVydHkgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgYWxwaGEgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNhbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHNldCBzYW1lKHNhbWUpIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLl9zYW1lID0gc2FtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGJlaGF2aW91ciBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gYWxwaGFBIC0gdGhlIHN0YXJ0aW5nIGFscGhhIHZhbHVlXG4gICAqIEBwYXJhbSB7P251bWJlcn0gYWxwaGFCIC0gdGhlIGVuZGluZyBhbHBoYSB2YWx1ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIHRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gdGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldChhbHBoYUEgPSAxLCBhbHBoYUIgPSBudWxsLCBsaWZlLCBlYXNpbmcpIHtcbiAgICB0aGlzLnNhbWUgPSBhbHBoYUIgPT09IG51bGwgfHwgYWxwaGFCID09PSB1bmRlZmluZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5hbHBoYUEgPSBjcmVhdGVTcGFuKGFscGhhQSk7XG4gICAgdGhpcy5hbHBoYUIgPSBjcmVhdGVTcGFuKGFscGhhQik7XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJlaGF2aW91ciBvbiBhIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgYmVoYXZpb3VyIG9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnVzZUFscGhhID0gdHJ1ZTtcbiAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uYWxwaGFBID0gdGhpcy5hbHBoYUEuZ2V0VmFsdWUoKTtcblxuICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5hbHBoYUIgPSB0aGlzLnNhbWVcbiAgICAgID8gcGFydGljbGUudHJhbnNmb3JtLmFscGhhQVxuICAgICAgOiB0aGlzLmFscGhhQi5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE11dGF0ZXMgdGhlIHRhcmdldCdzIGFscGhhL29wYWNpdHkgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS5hbHBoYSA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgcGFydGljbGUudHJhbnNmb3JtLmFscGhhQSxcbiAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5hbHBoYUIsXG4gICAgICB0aGlzLmVuZXJneVxuICAgICk7XG5cbiAgICBpZiAocGFydGljbGUuYWxwaGEgPCBQQVJUSUNMRV9BTFBIQV9USFJFU0hPTEQpIHtcbiAgICAgIHBhcnRpY2xlLmFscGhhID0gMDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEJvZHkgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbS5cbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24uYWxwaGFBIC0gVGhlIHN0YXJ0aW5nIGFscGhhIHZhbHVlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmFscGhhQiAtIFRoZSBlbmRpbmcgYWxwaGEgdmFsdWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ubGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGpzb24uZWFzaW5nIC0gVGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHJldHVybiB7Qm9keX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBhbHBoYUEsIGFscGhhQiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBBbHBoYShhbHBoYUEsIGFscGhhQiwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Attraction.js",
    "content": "import { DEFAULT_ATTRACITON_RADIUS, DEFAULT_ATTRACTION_FORCE_SCALAR, DEFAULT_BEHAVIOUR_EASING, DEFAULT_LIFE, PARTICLE_LENGTH_SQ_THRESHOLD } from './constants';\nimport Behaviour from './Behaviour';\nimport { Vector3D } from '../math';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_ATTRACTION as type } from './types';\n/**\n * Behaviour that causes particles to be attracted to a target position.\n *\n */\n\nexport default class Attraction extends Behaviour {\n  /**\n   * Constructs an Attraction behaviour instance.\n   *\n   * @param {Vector3D} targetPosition - The position the particles will be attracted to\n   * @param {number} force - The attraction force scalar multiplier\n   * @param {number} radius - The attraction radius\n   * @param {number} [life=DEFAULT_LIFE] - The life of the particle\n   * @param {function} [easing=DEFAULT_BEHAVIOUR_EASING] - The behaviour's decaying trend\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(targetPosition = new Vector3D(), force = DEFAULT_ATTRACTION_FORCE_SCALAR, radius = DEFAULT_ATTRACITON_RADIUS, life = DEFAULT_LIFE, easing = DEFAULT_BEHAVIOUR_EASING, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    /**\n     * @desc The position the particles will be attracted to\n     * @type {Vector3D}\n     */\n\n    this.targetPosition = targetPosition;\n    /**\n     * @desc The attraction radius\n     * @type {number} - the attraction radius\n     */\n\n    this.radius = radius;\n    /**\n     * @desc The attraction force scalar multiplier\n     * @type {number}\n     */\n\n    this.force = this.normalizeValue(force);\n    /**\n     * @desc The radius of the attraction squared\n     * @type {number}\n     */\n\n    this.radiusSq = this.radius * this.radius;\n    /**\n     * @desc The attraction force in 3D space\n     * @type {Vector3D}\n     */\n\n    this.attractionForce = new Vector3D();\n    /**\n     * @desc The linear attraction force\n     * @type {number}\n     */\n\n    this.lengthSq = 0;\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {Vector3D} targetPosition - the position the particles will be attracted to\n   * @param {number} force - the attraction force multiplier\n   * @param {number} radius - the attraction radius\n   * @param {number} life - the life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @return void\n   */\n\n\n  reset(targetPosition = new Vector3D(), force = DEFAULT_ATTRACTION_FORCE_SCALAR, radius = DEFAULT_ATTRACITON_RADIUS, life, easing) {\n    this.targetPosition = targetPosition;\n    this.radius = radius;\n    this.force = this.normalizeValue(force);\n    this.radiusSq = this.radius * this.radius;\n    this.attractionForce = new Vector3D();\n    this.lengthSq = 0;\n    life && super.reset(life, easing);\n  }\n  /**\n   * Mutates particle acceleration.\n   *\n   * @param {Particle} particle - the particle to apply the behaviour to\n   * @param {number} time - particle engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n    this.attractionForce.copy(this.targetPosition);\n    this.attractionForce.sub(particle.position);\n    this.lengthSq = this.attractionForce.lengthSq();\n\n    if (this.lengthSq > PARTICLE_LENGTH_SQ_THRESHOLD && this.lengthSq < this.radiusSq) {\n      this.attractionForce.normalize();\n      this.attractionForce.scalar(1 - this.lengthSq / this.radiusSq);\n      this.attractionForce.scalar(this.force);\n      particle.acceleration.add(this.attractionForce);\n    }\n  }\n  /**\n   * Creates a Body initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @property {number} json.x - The target position x value\n   * @property {number} json.y - The target position y value\n   * @property {number} json.z - The target position z value\n   * @property {number} json.force - The attraction force scalar multiplier\n   * @property {number} json.life - The life of the particle\n   * @property {string} json.easing - The behaviour's decaying trend\n   * @return {Body}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      x,\n      y,\n      z,\n      force,\n      radius,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Attraction(new Vector3D(x, y, z), force, radius, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQXR0cmFjdGlvbi5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0FUVFJBQ0lUT05fUkFESVVTIiwiREVGQVVMVF9BVFRSQUNUSU9OX0ZPUkNFX1NDQUxBUiIsIkRFRkFVTFRfQkVIQVZJT1VSX0VBU0lORyIsIkRFRkFVTFRfTElGRSIsIlBBUlRJQ0xFX0xFTkdUSF9TUV9USFJFU0hPTEQiLCJCZWhhdmlvdXIiLCJWZWN0b3IzRCIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX0FUVFJBQ1RJT04iLCJ0eXBlIiwiQXR0cmFjdGlvbiIsImNvbnN0cnVjdG9yIiwidGFyZ2V0UG9zaXRpb24iLCJmb3JjZSIsInJhZGl1cyIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJub3JtYWxpemVWYWx1ZSIsInJhZGl1c1NxIiwiYXR0cmFjdGlvbkZvcmNlIiwibGVuZ3RoU3EiLCJyZXNldCIsIm11dGF0ZSIsInBhcnRpY2xlIiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJjb3B5Iiwic3ViIiwicG9zaXRpb24iLCJub3JtYWxpemUiLCJzY2FsYXIiLCJhY2NlbGVyYXRpb24iLCJhZGQiLCJmcm9tSlNPTiIsImpzb24iLCJ4IiwieSIsInoiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLHlCQURGLEVBRUVDLCtCQUZGLEVBR0VDLHdCQUhGLEVBSUVDLFlBSkYsRUFLRUMsNEJBTEYsUUFNTyxhQU5QO0FBUUEsT0FBT0MsU0FBUCxNQUFzQixhQUF0QjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsU0FBekI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MseUJBQXlCLElBQUlDLElBQXRDLFFBQWtELFNBQWxEO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxVQUFOLFNBQXlCTCxTQUF6QixDQUFtQztBQUNoRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VNLEVBQUFBLFdBQVcsQ0FDVEMsY0FBYyxHQUFHLElBQUlOLFFBQUosRUFEUixFQUVUTyxLQUFLLEdBQUdaLCtCQUZDLEVBR1RhLE1BQU0sR0FBR2QseUJBSEEsRUFJVGUsSUFBSSxHQUFHWixZQUpFLEVBS1RhLE1BQU0sR0FBR2Qsd0JBTEEsRUFNVGUsU0FBUyxHQUFHLElBTkgsRUFPVDtBQUNBLFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQlAsSUFBcEIsRUFBMEJRLFNBQTFCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0wsY0FBTCxHQUFzQkEsY0FBdEI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLRSxNQUFMLEdBQWNBLE1BQWQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLRCxLQUFMLEdBQWEsS0FBS0ssY0FBTCxDQUFvQkwsS0FBcEIsQ0FBYjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtNLFFBQUwsR0FBZ0IsS0FBS0wsTUFBTCxHQUFjLEtBQUtBLE1BQW5DO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS00sZUFBTCxHQUF1QixJQUFJZCxRQUFKLEVBQXZCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS2UsUUFBTCxHQUFnQixDQUFoQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxLQUFLLENBQ0hWLGNBQWMsR0FBRyxJQUFJTixRQUFKLEVBRGQsRUFFSE8sS0FBSyxHQUFHWiwrQkFGTCxFQUdIYSxNQUFNLEdBQUdkLHlCQUhOLEVBSUhlLElBSkcsRUFLSEMsTUFMRyxFQU1IO0FBQ0EsU0FBS0osY0FBTCxHQUFzQkEsY0FBdEI7QUFDQSxTQUFLRSxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLRCxLQUFMLEdBQWEsS0FBS0ssY0FBTCxDQUFvQkwsS0FBcEIsQ0FBYjtBQUNBLFNBQUtNLFFBQUwsR0FBZ0IsS0FBS0wsTUFBTCxHQUFjLEtBQUtBLE1BQW5DO0FBQ0EsU0FBS00sZUFBTCxHQUF1QixJQUFJZCxRQUFKLEVBQXZCO0FBQ0EsU0FBS2UsUUFBTCxHQUFnQixDQUFoQjtBQUVBTixJQUFBQSxJQUFJLElBQUksTUFBTU8sS0FBTixDQUFZUCxJQUFaLEVBQWtCQyxNQUFsQixDQUFSO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRU8sRUFBQUEsTUFBTSxDQUFDQyxRQUFELEVBQVdDLElBQVgsRUFBaUJDLEtBQWpCLEVBQXdCO0FBQzVCLFNBQUtDLFFBQUwsQ0FBY0gsUUFBZCxFQUF3QkMsSUFBeEIsRUFBOEJDLEtBQTlCO0FBRUEsU0FBS04sZUFBTCxDQUFxQlEsSUFBckIsQ0FBMEIsS0FBS2hCLGNBQS9CO0FBQ0EsU0FBS1EsZUFBTCxDQUFxQlMsR0FBckIsQ0FBeUJMLFFBQVEsQ0FBQ00sUUFBbEM7QUFFQSxTQUFLVCxRQUFMLEdBQWdCLEtBQUtELGVBQUwsQ0FBcUJDLFFBQXJCLEVBQWhCOztBQUVBLFFBQ0UsS0FBS0EsUUFBTCxHQUFnQmpCLDRCQUFoQixJQUNBLEtBQUtpQixRQUFMLEdBQWdCLEtBQUtGLFFBRnZCLEVBR0U7QUFDQSxXQUFLQyxlQUFMLENBQXFCVyxTQUFyQjtBQUNBLFdBQUtYLGVBQUwsQ0FBcUJZLE1BQXJCLENBQTRCLElBQUksS0FBS1gsUUFBTCxHQUFnQixLQUFLRixRQUFyRDtBQUNBLFdBQUtDLGVBQUwsQ0FBcUJZLE1BQXJCLENBQTRCLEtBQUtuQixLQUFqQztBQUVBVyxNQUFBQSxRQUFRLENBQUNTLFlBQVQsQ0FBc0JDLEdBQXRCLENBQTBCLEtBQUtkLGVBQS9CO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJlLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRUMsTUFBQUEsQ0FBRjtBQUFLQyxNQUFBQSxDQUFMO0FBQVFDLE1BQUFBLENBQVI7QUFBVzFCLE1BQUFBLEtBQVg7QUFBa0JDLE1BQUFBLE1BQWxCO0FBQTBCQyxNQUFBQSxJQUExQjtBQUFnQ0MsTUFBQUEsTUFBaEM7QUFBd0NDLE1BQUFBLFNBQVMsR0FBRztBQUFwRCxRQUE2RG1CLElBQW5FO0FBRUEsV0FBTyxJQUFJMUIsVUFBSixDQUNMLElBQUlKLFFBQUosQ0FBYStCLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CQyxDQUFuQixDQURLLEVBRUwxQixLQUZLLEVBR0xDLE1BSEssRUFJTEMsSUFKSyxFQUtMUixlQUFlLENBQUNTLE1BQUQsQ0FMVixFQU1MQyxTQU5LLENBQVA7QUFRRDs7QUF6SStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREVGQVVMVF9BVFRSQUNJVE9OX1JBRElVUyxcbiAgREVGQVVMVF9BVFRSQUNUSU9OX0ZPUkNFX1NDQUxBUixcbiAgREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HLFxuICBERUZBVUxUX0xJRkUsXG4gIFBBUlRJQ0xFX0xFTkdUSF9TUV9USFJFU0hPTEQsXG59IGZyb20gJy4vY29uc3RhbnRzJztcblxuaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBWZWN0b3IzRCB9IGZyb20gJy4uL21hdGgnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9BVFRSQUNUSU9OIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBjYXVzZXMgcGFydGljbGVzIHRvIGJlIGF0dHJhY3RlZCB0byBhIHRhcmdldCBwb3NpdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF0dHJhY3Rpb24gZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBBdHRyYWN0aW9uIGJlaGF2aW91ciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtWZWN0b3IzRH0gdGFyZ2V0UG9zaXRpb24gLSBUaGUgcG9zaXRpb24gdGhlIHBhcnRpY2xlcyB3aWxsIGJlIGF0dHJhY3RlZCB0b1xuICAgKiBAcGFyYW0ge251bWJlcn0gZm9yY2UgLSBUaGUgYXR0cmFjdGlvbiBmb3JjZSBzY2FsYXIgbXVsdGlwbGllclxuICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gVGhlIGF0dHJhY3Rpb24gcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbGlmZT1ERUZBVUxUX0xJRkVdIC0gVGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtlYXNpbmc9REVGQVVMVF9CRUhBVklPVVJfRUFTSU5HXSAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRhcmdldFBvc2l0aW9uID0gbmV3IFZlY3RvcjNEKCksXG4gICAgZm9yY2UgPSBERUZBVUxUX0FUVFJBQ1RJT05fRk9SQ0VfU0NBTEFSLFxuICAgIHJhZGl1cyA9IERFRkFVTFRfQVRUUkFDSVRPTl9SQURJVVMsXG4gICAgbGlmZSA9IERFRkFVTFRfTElGRSxcbiAgICBlYXNpbmcgPSBERUZBVUxUX0JFSEFWSU9VUl9FQVNJTkcsXG4gICAgaXNFbmFibGVkID0gdHJ1ZVxuICApIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcG9zaXRpb24gdGhlIHBhcnRpY2xlcyB3aWxsIGJlIGF0dHJhY3RlZCB0b1xuICAgICAqIEB0eXBlIHtWZWN0b3IzRH1cbiAgICAgKi9cbiAgICB0aGlzLnRhcmdldFBvc2l0aW9uID0gdGFyZ2V0UG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgYXR0cmFjdGlvbiByYWRpdXNcbiAgICAgKiBAdHlwZSB7bnVtYmVyfSAtIHRoZSBhdHRyYWN0aW9uIHJhZGl1c1xuICAgICAqL1xuICAgIHRoaXMucmFkaXVzID0gcmFkaXVzO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGF0dHJhY3Rpb24gZm9yY2Ugc2NhbGFyIG11bHRpcGxpZXJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuZm9yY2UgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlKGZvcmNlKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByYWRpdXMgb2YgdGhlIGF0dHJhY3Rpb24gc3F1YXJlZFxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5yYWRpdXNTcSA9IHRoaXMucmFkaXVzICogdGhpcy5yYWRpdXM7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgYXR0cmFjdGlvbiBmb3JjZSBpbiAzRCBzcGFjZVxuICAgICAqIEB0eXBlIHtWZWN0b3IzRH1cbiAgICAgKi9cbiAgICB0aGlzLmF0dHJhY3Rpb25Gb3JjZSA9IG5ldyBWZWN0b3IzRCgpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGxpbmVhciBhdHRyYWN0aW9uIGZvcmNlXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmxlbmd0aFNxID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGJlaGF2aW91ciBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSB0YXJnZXRQb3NpdGlvbiAtIHRoZSBwb3NpdGlvbiB0aGUgcGFydGljbGVzIHdpbGwgYmUgYXR0cmFjdGVkIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmb3JjZSAtIHRoZSBhdHRyYWN0aW9uIGZvcmNlIG11bHRpcGxpZXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJhZGl1cyAtIHRoZSBhdHRyYWN0aW9uIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIHRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldChcbiAgICB0YXJnZXRQb3NpdGlvbiA9IG5ldyBWZWN0b3IzRCgpLFxuICAgIGZvcmNlID0gREVGQVVMVF9BVFRSQUNUSU9OX0ZPUkNFX1NDQUxBUixcbiAgICByYWRpdXMgPSBERUZBVUxUX0FUVFJBQ0lUT05fUkFESVVTLFxuICAgIGxpZmUsXG4gICAgZWFzaW5nXG4gICkge1xuICAgIHRoaXMudGFyZ2V0UG9zaXRpb24gPSB0YXJnZXRQb3NpdGlvbjtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cztcbiAgICB0aGlzLmZvcmNlID0gdGhpcy5ub3JtYWxpemVWYWx1ZShmb3JjZSk7XG4gICAgdGhpcy5yYWRpdXNTcSA9IHRoaXMucmFkaXVzICogdGhpcy5yYWRpdXM7XG4gICAgdGhpcy5hdHRyYWN0aW9uRm9yY2UgPSBuZXcgVmVjdG9yM0QoKTtcbiAgICB0aGlzLmxlbmd0aFNxID0gMDtcblxuICAgIGxpZmUgJiYgc3VwZXIucmVzZXQobGlmZSwgZWFzaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXRhdGVzIHBhcnRpY2xlIGFjY2VsZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gYXBwbHkgdGhlIGJlaGF2aW91ciB0b1xuICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIHBhcnRpY2xlIGVuZ2luZSB0aW1lXG4gICAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSB0aGUgcGFydGljbGUgaW5kZXhcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBtdXRhdGUocGFydGljbGUsIHRpbWUsIGluZGV4KSB7XG4gICAgdGhpcy5lbmVyZ2l6ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpO1xuXG4gICAgdGhpcy5hdHRyYWN0aW9uRm9yY2UuY29weSh0aGlzLnRhcmdldFBvc2l0aW9uKTtcbiAgICB0aGlzLmF0dHJhY3Rpb25Gb3JjZS5zdWIocGFydGljbGUucG9zaXRpb24pO1xuXG4gICAgdGhpcy5sZW5ndGhTcSA9IHRoaXMuYXR0cmFjdGlvbkZvcmNlLmxlbmd0aFNxKCk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmxlbmd0aFNxID4gUEFSVElDTEVfTEVOR1RIX1NRX1RIUkVTSE9MRCAmJlxuICAgICAgdGhpcy5sZW5ndGhTcSA8IHRoaXMucmFkaXVzU3FcbiAgICApIHtcbiAgICAgIHRoaXMuYXR0cmFjdGlvbkZvcmNlLm5vcm1hbGl6ZSgpO1xuICAgICAgdGhpcy5hdHRyYWN0aW9uRm9yY2Uuc2NhbGFyKDEgLSB0aGlzLmxlbmd0aFNxIC8gdGhpcy5yYWRpdXNTcSk7XG4gICAgICB0aGlzLmF0dHJhY3Rpb25Gb3JjZS5zY2FsYXIodGhpcy5mb3JjZSk7XG5cbiAgICAgIHBhcnRpY2xlLmFjY2VsZXJhdGlvbi5hZGQodGhpcy5hdHRyYWN0aW9uRm9yY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQm9keSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi54IC0gVGhlIHRhcmdldCBwb3NpdGlvbiB4IHZhbHVlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnkgLSBUaGUgdGFyZ2V0IHBvc2l0aW9uIHkgdmFsdWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ueiAtIFRoZSB0YXJnZXQgcG9zaXRpb24geiB2YWx1ZVxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5mb3JjZSAtIFRoZSBhdHRyYWN0aW9uIGZvcmNlIHNjYWxhciBtdWx0aXBsaWVyXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGpzb24uZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEByZXR1cm4ge0JvZHl9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgeCwgeSwgeiwgZm9yY2UsIHJhZGl1cywgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBBdHRyYWN0aW9uKFxuICAgICAgbmV3IFZlY3RvcjNEKHgsIHksIHopLFxuICAgICAgZm9yY2UsXG4gICAgICByYWRpdXMsXG4gICAgICBsaWZlLFxuICAgICAgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksXG4gICAgICBpc0VuYWJsZWRcbiAgICApO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Behaviour.js",
    "content": "import { DEFAULT_BEHAVIOUR_EASING, DEFAULT_LIFE } from './constants';\nimport { BEHAVIOUR_TYPE_ABSTRACT } from './types';\nimport { MEASURE } from '../constants';\nimport isNumber from '../utils/isNumber.js';\nimport { uid } from '../utils';\n/**\n * The base behaviour class.\n * Behaviours manage a particle's behaviour after they have been emitted.\n *\n */\n\nexport default class Behaviour {\n  /**\n   * Constructs a Behaviour instance.\n   *\n   * @param {number} [life=Infinity] - The life of the behaviour\n   * @param {function} [easing=DEFAULT_BEHAVIOUR_EASING] - The behaviour's decaying trend\n   * @param {string} [type=BEHAVIOUR_TYPE_ABSTRACT] - The behaviour type\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(life = Infinity, easing = DEFAULT_BEHAVIOUR_EASING, type = BEHAVIOUR_TYPE_ABSTRACT, isEnabled = true) {\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n    this.type = type;\n    /**\n     * @desc Determines if the behaviour will be applied or not\n     * @type {boolean}\n     */\n\n    this.isEnabled = isEnabled;\n    /**\n     * @desc The behaviour's id\n     * @type {string} id\n     */\n\n    this.id = `behaviour-${uid()}`;\n    /**\n     * @desc The life of the behaviour\n     * @type {number}\n     */\n\n    this.life = life;\n    /**\n     * @desc The behaviour's decaying trend\n     * @type {function}\n     */\n\n    this.easing = easing;\n    /**\n     * @desc The age of the behaviour\n     * @type {number}\n     */\n\n    this.age = 0;\n    /**\n     * @desc The energy of the behaviour\n     * @type {number}\n     */\n\n    this.energy = 1;\n    /**\n     * Determines if the behaviour is dead or not\n     * @type {boolean}\n     */\n\n    this.dead = false;\n  }\n  /**\n   * Reset this behaviour's parameters\n   *\n   * @param {number} [life=DEFAULT_LIFE] - The life of the behaviour\n   * @param {function} [easing=DEFAULT_BEHAVIOUR_EASING] - The behaviour's decaying trend\n   */\n\n\n  reset(life = DEFAULT_LIFE, easing = DEFAULT_BEHAVIOUR_EASING) {\n    this.life = life;\n    this.easing = easing || DEFAULT_BEHAVIOUR_EASING;\n  }\n  /**\n   * Ensures that life is infinity if an invalid value is supplied.\n   *\n   * @return void\n   */\n\n\n  set life(life) {\n    this._life = isNumber(life) ? life : DEFAULT_LIFE;\n  }\n  /**\n   * Gets the behaviour's life.\n   *\n   * @return {Number}\n   */\n\n\n  get life() {\n    return this._life;\n  }\n  /**\n   * Normalize a force by 1:100;\n   *\n   * @param {Vector3D} force - The force to normalize.\n   * @return {Vector3D}\n   */\n\n\n  normalizeForce(force) {\n    return force.scalar(MEASURE);\n  }\n  /**\n   * Normalize a value by 1:100;\n   *\n   * @param {number} value - The value to normalize\n   * @return {number}\n   */\n\n\n  normalizeValue(value) {\n    return value * MEASURE;\n  }\n  /**\n   * Set the behaviour's initial properties on the particle.\n   *\n   * @param {Particle} particle\n   * @abstract\n   */\n\n\n  initialize(particle) {} // eslint-disable-line\n\n  /**\n   * Apply behaviour to the target as a factor of time.\n   * Internally calls the mutate method to change properties on the target\n   * Will not do so if the behaviour is disabled\n   *\n   * @abstract\n   * @param {Particle|Emitter} target - The particle or emitter to apply the behaviour to\n   * @param {Number} time - the system integration time\n   * @param {integer} index - the target index\n   * @return mixed\n   */\n\n\n  applyBehaviour(target, time, index) {\n    if (!this.isEnabled) {\n      return;\n    }\n\n    this.mutate(target, time, index);\n  }\n  /**\n   * Change the target's properties according to specific behaviour logic.\n   *\n   * @abstract\n   * @param {Particle|Emitter} target - The particle or emitter to apply the behaviour to\n   * @param {Number} time - the system integration time\n   * @return mixed\n   */\n\n\n  mutate(target, time, index) {} // eslint-disable-line\n\n  /**\n   * Compares the age of the behaviour vs integration time and determines\n   * if the behaviour should be set to dead or not.\n   * Sets the behaviour energy as a factor of particle age and life.\n   *\n   * @param {Particle} particle - The particle to apply the behaviour to\n   * @param {Number} time - the system integration time\n   * @return void\n   */\n\n\n  energize(particle, time) {\n    if (this.dead) {\n      return;\n    }\n\n    this.age += time;\n\n    if (this.age >= this.life) {\n      this.energy = 0;\n      this.dead = true;\n      return;\n    }\n\n    const scale = this.easing(particle.age / particle.life);\n    this.energy = Math.max(1 - scale, 0);\n  }\n  /**\n   * Destory this behaviour.\n   *\n   * @abstract\n   */\n\n\n  destroy() {}\n  /**\n   * Returns a new instance of the behaviour from the JSON object passed.\n   *\n   * @abstract\n   * @param {object} json - JSON object containing the required constructor properties\n   * @return {Behaviour}\n   */\n\n\n  fromJSON(json) {} // eslint-disable-line\n\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQmVoYXZpb3VyLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfQkVIQVZJT1VSX0VBU0lORyIsIkRFRkFVTFRfTElGRSIsIkJFSEFWSU9VUl9UWVBFX0FCU1RSQUNUIiwiTUVBU1VSRSIsImlzTnVtYmVyIiwidWlkIiwiQmVoYXZpb3VyIiwiY29uc3RydWN0b3IiLCJsaWZlIiwiSW5maW5pdHkiLCJlYXNpbmciLCJ0eXBlIiwiaXNFbmFibGVkIiwiaWQiLCJhZ2UiLCJlbmVyZ3kiLCJkZWFkIiwicmVzZXQiLCJfbGlmZSIsIm5vcm1hbGl6ZUZvcmNlIiwiZm9yY2UiLCJzY2FsYXIiLCJub3JtYWxpemVWYWx1ZSIsInZhbHVlIiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwiYXBwbHlCZWhhdmlvdXIiLCJ0YXJnZXQiLCJ0aW1lIiwiaW5kZXgiLCJtdXRhdGUiLCJlbmVyZ2l6ZSIsInNjYWxlIiwiTWF0aCIsIm1heCIsImRlc3Ryb3kiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHdCQUFULEVBQW1DQyxZQUFuQyxRQUF1RCxhQUF2RDtBQUVBLFNBQVNDLHVCQUFULFFBQXdDLFNBQXhDO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixjQUF4QjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsaUJBQXJCO0FBQ0EsU0FBU0MsR0FBVCxRQUFvQixVQUFwQjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxTQUFOLENBQWdCO0FBQzdCO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxXQUFXLENBQ1RDLElBQUksR0FBR0MsUUFERSxFQUVUQyxNQUFNLEdBQUdWLHdCQUZBLEVBR1RXLElBQUksR0FBR1QsdUJBSEUsRUFJVFUsU0FBUyxHQUFHLElBSkgsRUFLVDtBQUNBO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS0QsSUFBTCxHQUFZQSxJQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsU0FBTCxHQUFpQkEsU0FBakI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxFQUFMLEdBQVcsYUFBWVIsR0FBRyxFQUFHLEVBQTdCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0csSUFBTCxHQUFZQSxJQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0UsTUFBTCxHQUFjQSxNQUFkO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0ksR0FBTCxHQUFXLENBQVg7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxNQUFMLEdBQWMsQ0FBZDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLElBQUwsR0FBWSxLQUFaO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxLQUFLLENBQUNULElBQUksR0FBR1AsWUFBUixFQUFzQlMsTUFBTSxHQUFHVix3QkFBL0IsRUFBeUQ7QUFDNUQsU0FBS1EsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0UsTUFBTCxHQUFjQSxNQUFNLElBQUlWLHdCQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ1UsTUFBSlEsSUFBSSxDQUFDQSxJQUFELEVBQU87QUFDYixTQUFLVSxLQUFMLEdBQWFkLFFBQVEsQ0FBQ0ksSUFBRCxDQUFSLEdBQWlCQSxJQUFqQixHQUF3QlAsWUFBckM7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNVLE1BQUpPLElBQUksR0FBRztBQUNULFdBQU8sS0FBS1UsS0FBWjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsY0FBYyxDQUFDQyxLQUFELEVBQVE7QUFDcEIsV0FBT0EsS0FBSyxDQUFDQyxNQUFOLENBQWFsQixPQUFiLENBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VtQixFQUFBQSxjQUFjLENBQUNDLEtBQUQsRUFBUTtBQUNwQixXQUFPQSxLQUFLLEdBQUdwQixPQUFmO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFcUIsRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVcsQ0FBRSxDQXhITSxDQXdITDs7QUFFeEI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLGNBQWMsQ0FBQ0MsTUFBRCxFQUFTQyxJQUFULEVBQWVDLEtBQWYsRUFBc0I7QUFDbEMsUUFBSSxDQUFDLEtBQUtqQixTQUFWLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBRUQsU0FBS2tCLE1BQUwsQ0FBWUgsTUFBWixFQUFvQkMsSUFBcEIsRUFBMEJDLEtBQTFCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxDQUFDSCxNQUFELEVBQVNDLElBQVQsRUFBZUMsS0FBZixFQUFzQixDQUFFLENBckpELENBcUpFOztBQUUvQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRSxFQUFBQSxRQUFRLENBQUNOLFFBQUQsRUFBV0csSUFBWCxFQUFpQjtBQUN2QixRQUFJLEtBQUtaLElBQVQsRUFBZTtBQUNiO0FBQ0Q7O0FBRUQsU0FBS0YsR0FBTCxJQUFZYyxJQUFaOztBQUVBLFFBQUksS0FBS2QsR0FBTCxJQUFZLEtBQUtOLElBQXJCLEVBQTJCO0FBQ3pCLFdBQUtPLE1BQUwsR0FBYyxDQUFkO0FBQ0EsV0FBS0MsSUFBTCxHQUFZLElBQVo7QUFFQTtBQUNEOztBQUVELFVBQU1nQixLQUFLLEdBQUcsS0FBS3RCLE1BQUwsQ0FBWWUsUUFBUSxDQUFDWCxHQUFULEdBQWVXLFFBQVEsQ0FBQ2pCLElBQXBDLENBQWQ7QUFFQSxTQUFLTyxNQUFMLEdBQWNrQixJQUFJLENBQUNDLEdBQUwsQ0FBUyxJQUFJRixLQUFiLEVBQW9CLENBQXBCLENBQWQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxPQUFPLEdBQUcsQ0FBRTtBQUVaO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsUUFBUSxDQUFDQyxJQUFELEVBQU8sQ0FBRSxDQWpNWSxDQWlNWDs7O0FBak1XIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HLCBERUZBVUxUX0xJRkUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX0FCU1RSQUNUIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBNRUFTVVJFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBpc051bWJlciBmcm9tICdsb2Rhc2gvaXNOdW1iZXInO1xuaW1wb3J0IHsgdWlkIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGJlaGF2aW91ciBjbGFzcy5cbiAqIEJlaGF2aW91cnMgbWFuYWdlIGEgcGFydGljbGUncyBiZWhhdmlvdXIgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gZW1pdHRlZC5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJlaGF2aW91ciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgQmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2xpZmU9SW5maW5pdHldIC0gVGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbZWFzaW5nPURFRkFVTFRfQkVIQVZJT1VSX0VBU0lOR10gLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlPUJFSEFWSU9VUl9UWVBFX0FCU1RSQUNUXSAtIFRoZSBiZWhhdmlvdXIgdHlwZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxpZmUgPSBJbmZpbml0eSxcbiAgICBlYXNpbmcgPSBERUZBVUxUX0JFSEFWSU9VUl9FQVNJTkcsXG4gICAgdHlwZSA9IEJFSEFWSU9VUl9UWVBFX0FCU1RSQUNULFxuICAgIGlzRW5hYmxlZCA9IHRydWVcbiAgKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLmlzRW5hYmxlZCA9IGlzRW5hYmxlZDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBiZWhhdmlvdXIncyBpZFxuICAgICAqIEB0eXBlIHtzdHJpbmd9IGlkXG4gICAgICovXG4gICAgdGhpcy5pZCA9IGBiZWhhdmlvdXItJHt1aWQoKX1gO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5saWZlID0gbGlmZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgICAqIEB0eXBlIHtmdW5jdGlvbn1cbiAgICAgKi9cbiAgICB0aGlzLmVhc2luZyA9IGVhc2luZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBhZ2Ugb2YgdGhlIGJlaGF2aW91clxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5hZ2UgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGVuZXJneSBvZiB0aGUgYmVoYXZpb3VyXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmVuZXJneSA9IDE7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgaXMgZGVhZCBvciBub3RcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLmRlYWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGlzIGJlaGF2aW91cidzIHBhcmFtZXRlcnNcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtsaWZlPURFRkFVTFRfTElGRV0gLSBUaGUgbGlmZSBvZiB0aGUgYmVoYXZpb3VyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtlYXNpbmc9REVGQVVMVF9CRUhBVklPVVJfRUFTSU5HXSAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKi9cbiAgcmVzZXQobGlmZSA9IERFRkFVTFRfTElGRSwgZWFzaW5nID0gREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HKSB7XG4gICAgdGhpcy5saWZlID0gbGlmZTtcbiAgICB0aGlzLmVhc2luZyA9IGVhc2luZyB8fCBERUZBVUxUX0JFSEFWSU9VUl9FQVNJTkc7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IGxpZmUgaXMgaW5maW5pdHkgaWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBzdXBwbGllZC5cbiAgICpcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBzZXQgbGlmZShsaWZlKSB7XG4gICAgdGhpcy5fbGlmZSA9IGlzTnVtYmVyKGxpZmUpID8gbGlmZSA6IERFRkFVTFRfTElGRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiZWhhdmlvdXIncyBsaWZlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtOdW1iZXJ9XG4gICAqL1xuICBnZXQgbGlmZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGlmZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3JtYWxpemUgYSBmb3JjZSBieSAxOjEwMDtcbiAgICpcbiAgICogQHBhcmFtIHtWZWN0b3IzRH0gZm9yY2UgLSBUaGUgZm9yY2UgdG8gbm9ybWFsaXplLlxuICAgKiBAcmV0dXJuIHtWZWN0b3IzRH1cbiAgICovXG4gIG5vcm1hbGl6ZUZvcmNlKGZvcmNlKSB7XG4gICAgcmV0dXJuIGZvcmNlLnNjYWxhcihNRUFTVVJFKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3JtYWxpemUgYSB2YWx1ZSBieSAxOjEwMDtcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIG5vcm1hbGl6ZVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBub3JtYWxpemVWYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAqIE1FQVNVUkU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBiZWhhdmlvdXIncyBpbml0aWFsIHByb3BlcnRpZXMgb24gdGhlIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZVxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIGluaXRpYWxpemUocGFydGljbGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAvKipcbiAgICogQXBwbHkgYmVoYXZpb3VyIHRvIHRoZSB0YXJnZXQgYXMgYSBmYWN0b3Igb2YgdGltZS5cbiAgICogSW50ZXJuYWxseSBjYWxscyB0aGUgbXV0YXRlIG1ldGhvZCB0byBjaGFuZ2UgcHJvcGVydGllcyBvbiB0aGUgdGFyZ2V0XG4gICAqIFdpbGwgbm90IGRvIHNvIGlmIHRoZSBiZWhhdmlvdXIgaXMgZGlzYWJsZWRcbiAgICpcbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7UGFydGljbGV8RW1pdHRlcn0gdGFyZ2V0IC0gVGhlIHBhcnRpY2xlIG9yIGVtaXR0ZXIgdG8gYXBwbHkgdGhlIGJlaGF2aW91ciB0b1xuICAgKiBAcGFyYW0ge051bWJlcn0gdGltZSAtIHRoZSBzeXN0ZW0gaW50ZWdyYXRpb24gdGltZVxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gdGhlIHRhcmdldCBpbmRleFxuICAgKiBAcmV0dXJuIG1peGVkXG4gICAqL1xuICBhcHBseUJlaGF2aW91cih0YXJnZXQsIHRpbWUsIGluZGV4KSB7XG4gICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubXV0YXRlKHRhcmdldCwgdGltZSwgaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgdGFyZ2V0J3MgcHJvcGVydGllcyBhY2NvcmRpbmcgdG8gc3BlY2lmaWMgYmVoYXZpb3VyIGxvZ2ljLlxuICAgKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtQYXJ0aWNsZXxFbWl0dGVyfSB0YXJnZXQgLSBUaGUgcGFydGljbGUgb3IgZW1pdHRlciB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lIC0gdGhlIHN5c3RlbSBpbnRlZ3JhdGlvbiB0aW1lXG4gICAqIEByZXR1cm4gbWl4ZWRcbiAgICovXG4gIG11dGF0ZSh0YXJnZXQsIHRpbWUsIGluZGV4KSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLyoqXG4gICAqIENvbXBhcmVzIHRoZSBhZ2Ugb2YgdGhlIGJlaGF2aW91ciB2cyBpbnRlZ3JhdGlvbiB0aW1lIGFuZCBkZXRlcm1pbmVzXG4gICAqIGlmIHRoZSBiZWhhdmlvdXIgc2hvdWxkIGJlIHNldCB0byBkZWFkIG9yIG5vdC5cbiAgICogU2V0cyB0aGUgYmVoYXZpb3VyIGVuZXJneSBhcyBhIGZhY3RvciBvZiBwYXJ0aWNsZSBhZ2UgYW5kIGxpZmUuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIHRvIGFwcGx5IHRoZSBiZWhhdmlvdXIgdG9cbiAgICogQHBhcmFtIHtOdW1iZXJ9IHRpbWUgLSB0aGUgc3lzdGVtIGludGVncmF0aW9uIHRpbWVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBlbmVyZ2l6ZShwYXJ0aWNsZSwgdGltZSkge1xuICAgIGlmICh0aGlzLmRlYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFnZSArPSB0aW1lO1xuXG4gICAgaWYgKHRoaXMuYWdlID49IHRoaXMubGlmZSkge1xuICAgICAgdGhpcy5lbmVyZ3kgPSAwO1xuICAgICAgdGhpcy5kZWFkID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNjYWxlID0gdGhpcy5lYXNpbmcocGFydGljbGUuYWdlIC8gcGFydGljbGUubGlmZSk7XG5cbiAgICB0aGlzLmVuZXJneSA9IE1hdGgubWF4KDEgLSBzY2FsZSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdG9yeSB0aGlzIGJlaGF2aW91ci5cbiAgICpcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBkZXN0cm95KCkge31cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYmVoYXZpb3VyIGZyb20gdGhlIEpTT04gb2JqZWN0IHBhc3NlZC5cbiAgICpcbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gSlNPTiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWlyZWQgY29uc3RydWN0b3IgcHJvcGVydGllc1xuICAgKiBAcmV0dXJuIHtCZWhhdmlvdXJ9XG4gICAqL1xuICBmcm9tSlNPTihqc29uKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Collision.js",
    "content": "import Behaviour from './Behaviour';\nimport { Vector3D } from '../math';\nimport { BEHAVIOUR_TYPE_COLLISION as type } from './types';\n/**\n * Behaviour that causes particles to move away from other particles they collide with.\n */\n\nexport default class Collision extends Behaviour {\n  /**\n   * Constructs a Collision behaviour instance.\n   *\n   * @param {Emitter} emitter - The emitter containing the particles to detect collisions against\n   * @param {boolean} useMass - Determiens whether to use mass or not\n   * @param {function} onCollide - Function to call when particles collide\n   * @param {number} life - The life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(emitter, useMass, onCollide, life, easing, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    this.reset(emitter, useMass, onCollide);\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {Emitter} emitter - The emitter containing the particles to detect collisions against\n   * @param {boolean} useMass - Determiens whether to use mass or not\n   * @param {function} onCollide - Function to call when particles collide\n   * @param {number} life - The life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @return void\n   */\n\n\n  reset(emitter, useMass, onCollide, life, easing) {\n    this.emitter = emitter;\n    this.useMass = useMass;\n    this.onCollide = onCollide;\n    this.particles = [];\n    this.delta = new Vector3D();\n    life && super.reset(life, easing);\n  }\n  /**\n   * Detects collisions with other particles and calls the\n   * onCollide function on colliding particles.\n   *\n   * @param {Particle} particle - the particle to apply the behaviour to\n   * @param {number} time - particle engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    const particles = this.emitter ? this.emitter.particles.slice(index) : this.particles.slice(index);\n    let otherParticle, lengthSq, overlap, distance, averageMass1, averageMass2;\n    let i = particles.length;\n\n    while (i--) {\n      otherParticle = particles[i];\n\n      if (otherParticle == particle) {\n        continue;\n      }\n\n      this.delta.copy(otherParticle.position).sub(particle.position);\n      lengthSq = this.delta.lengthSq();\n      distance = particle.radius + otherParticle.radius;\n\n      if (lengthSq <= distance * distance) {\n        overlap = distance - Math.sqrt(lengthSq);\n        overlap += 0.5;\n        averageMass1 = this._getAverageMass(particle, otherParticle);\n        averageMass2 = this._getAverageMass(otherParticle, particle);\n        particle.position.add(this.delta.clone().normalize().scalar(overlap * -averageMass1));\n        otherParticle.position.add(this.delta.normalize().scalar(overlap * averageMass2));\n        this.onCollide && this.onCollide(particle, otherParticle);\n      }\n    }\n  }\n  /**\n   * Gets the average mass of both particles.\n   *\n   * @param {Particle} particleA - The first particle\n   * @param {Particle} particleB - The second particle\n   * @return {number}\n   */\n\n\n  _getAverageMass(particleA, particleB) {\n    return this.useMass ? particleB.mass / (particleA.mass + particleB.mass) : 0.5;\n  } // TODO\n\n\n  fromJSON(json) {} // eslint-disable-line\n\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ29sbGlzaW9uLmpzIl0sIm5hbWVzIjpbIkJlaGF2aW91ciIsIlZlY3RvcjNEIiwiQkVIQVZJT1VSX1RZUEVfQ09MTElTSU9OIiwidHlwZSIsIkNvbGxpc2lvbiIsImNvbnN0cnVjdG9yIiwiZW1pdHRlciIsInVzZU1hc3MiLCJvbkNvbGxpZGUiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJwYXJ0aWNsZXMiLCJkZWx0YSIsIm11dGF0ZSIsInBhcnRpY2xlIiwidGltZSIsImluZGV4Iiwic2xpY2UiLCJvdGhlclBhcnRpY2xlIiwibGVuZ3RoU3EiLCJvdmVybGFwIiwiZGlzdGFuY2UiLCJhdmVyYWdlTWFzczEiLCJhdmVyYWdlTWFzczIiLCJpIiwibGVuZ3RoIiwiY29weSIsInBvc2l0aW9uIiwic3ViIiwicmFkaXVzIiwiTWF0aCIsInNxcnQiLCJfZ2V0QXZlcmFnZU1hc3MiLCJhZGQiLCJjbG9uZSIsIm5vcm1hbGl6ZSIsInNjYWxhciIsInBhcnRpY2xlQSIsInBhcnRpY2xlQiIsIm1hc3MiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLFNBQXpCO0FBQ0EsU0FBU0Msd0JBQXdCLElBQUlDLElBQXJDLFFBQWlELFNBQWpEO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkosU0FBeEIsQ0FBa0M7QUFDL0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQUNDLE9BQUQsRUFBVUMsT0FBVixFQUFtQkMsU0FBbkIsRUFBOEJDLElBQTlCLEVBQW9DQyxNQUFwQyxFQUE0Q0MsU0FBUyxHQUFHLElBQXhELEVBQThEO0FBQ3ZFLFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQlAsSUFBcEIsRUFBMEJRLFNBQTFCO0FBRUEsU0FBS0MsS0FBTCxDQUFXTixPQUFYLEVBQW9CQyxPQUFwQixFQUE2QkMsU0FBN0I7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUksRUFBQUEsS0FBSyxDQUFDTixPQUFELEVBQVVDLE9BQVYsRUFBbUJDLFNBQW5CLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDL0MsU0FBS0osT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0MsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQkEsU0FBakI7QUFDQSxTQUFLSyxTQUFMLEdBQWlCLEVBQWpCO0FBQ0EsU0FBS0MsS0FBTCxHQUFhLElBQUliLFFBQUosRUFBYjtBQUVBUSxJQUFBQSxJQUFJLElBQUksTUFBTUcsS0FBTixDQUFZSCxJQUFaLEVBQWtCQyxNQUFsQixDQUFSO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFSyxFQUFBQSxNQUFNLENBQUNDLFFBQUQsRUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsVUFBTUwsU0FBUyxHQUFHLEtBQUtQLE9BQUwsR0FDZCxLQUFLQSxPQUFMLENBQWFPLFNBQWIsQ0FBdUJNLEtBQXZCLENBQTZCRCxLQUE3QixDQURjLEdBRWQsS0FBS0wsU0FBTCxDQUFlTSxLQUFmLENBQXFCRCxLQUFyQixDQUZKO0FBSUEsUUFBSUUsYUFBSixFQUFtQkMsUUFBbkIsRUFBNkJDLE9BQTdCLEVBQXNDQyxRQUF0QyxFQUFnREMsWUFBaEQsRUFBOERDLFlBQTlEO0FBRUEsUUFBSUMsQ0FBQyxHQUFHYixTQUFTLENBQUNjLE1BQWxCOztBQUVBLFdBQU9ELENBQUMsRUFBUixFQUFZO0FBQ1ZOLE1BQUFBLGFBQWEsR0FBR1AsU0FBUyxDQUFDYSxDQUFELENBQXpCOztBQUVBLFVBQUlOLGFBQWEsSUFBSUosUUFBckIsRUFBK0I7QUFDN0I7QUFDRDs7QUFFRCxXQUFLRixLQUFMLENBQVdjLElBQVgsQ0FBZ0JSLGFBQWEsQ0FBQ1MsUUFBOUIsRUFBd0NDLEdBQXhDLENBQTRDZCxRQUFRLENBQUNhLFFBQXJEO0FBRUFSLE1BQUFBLFFBQVEsR0FBRyxLQUFLUCxLQUFMLENBQVdPLFFBQVgsRUFBWDtBQUNBRSxNQUFBQSxRQUFRLEdBQUdQLFFBQVEsQ0FBQ2UsTUFBVCxHQUFrQlgsYUFBYSxDQUFDVyxNQUEzQzs7QUFFQSxVQUFJVixRQUFRLElBQUlFLFFBQVEsR0FBR0EsUUFBM0IsRUFBcUM7QUFDbkNELFFBQUFBLE9BQU8sR0FBR0MsUUFBUSxHQUFHUyxJQUFJLENBQUNDLElBQUwsQ0FBVVosUUFBVixDQUFyQjtBQUNBQyxRQUFBQSxPQUFPLElBQUksR0FBWDtBQUVBRSxRQUFBQSxZQUFZLEdBQUcsS0FBS1UsZUFBTCxDQUFxQmxCLFFBQXJCLEVBQStCSSxhQUEvQixDQUFmO0FBQ0FLLFFBQUFBLFlBQVksR0FBRyxLQUFLUyxlQUFMLENBQXFCZCxhQUFyQixFQUFvQ0osUUFBcEMsQ0FBZjtBQUVBQSxRQUFBQSxRQUFRLENBQUNhLFFBQVQsQ0FBa0JNLEdBQWxCLENBQ0UsS0FBS3JCLEtBQUwsQ0FDR3NCLEtBREgsR0FFR0MsU0FGSCxHQUdHQyxNQUhILENBR1VoQixPQUFPLEdBQUcsQ0FBQ0UsWUFIckIsQ0FERjtBQU9BSixRQUFBQSxhQUFhLENBQUNTLFFBQWQsQ0FBdUJNLEdBQXZCLENBQ0UsS0FBS3JCLEtBQUwsQ0FBV3VCLFNBQVgsR0FBdUJDLE1BQXZCLENBQThCaEIsT0FBTyxHQUFHRyxZQUF4QyxDQURGO0FBSUEsYUFBS2pCLFNBQUwsSUFBa0IsS0FBS0EsU0FBTCxDQUFlUSxRQUFmLEVBQXlCSSxhQUF6QixDQUFsQjtBQUNEO0FBQ0Y7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRWMsRUFBQUEsZUFBZSxDQUFDSyxTQUFELEVBQVlDLFNBQVosRUFBdUI7QUFDcEMsV0FBTyxLQUFLakMsT0FBTCxHQUNIaUMsU0FBUyxDQUFDQyxJQUFWLElBQWtCRixTQUFTLENBQUNFLElBQVYsR0FBaUJELFNBQVMsQ0FBQ0MsSUFBN0MsQ0FERyxHQUVILEdBRko7QUFHRCxHQXRHOEMsQ0F3Ry9DOzs7QUFDQUMsRUFBQUEsUUFBUSxDQUFDQyxJQUFELEVBQU8sQ0FBRSxDQXpHOEIsQ0F5RzdCOzs7QUF6RzZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBWZWN0b3IzRCB9IGZyb20gJy4uL21hdGgnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfQ09MTElTSU9OIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBjYXVzZXMgcGFydGljbGVzIHRvIG1vdmUgYXdheSBmcm9tIG90aGVyIHBhcnRpY2xlcyB0aGV5IGNvbGxpZGUgd2l0aC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGlzaW9uIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBDb2xsaXNpb24gYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0VtaXR0ZXJ9IGVtaXR0ZXIgLSBUaGUgZW1pdHRlciBjb250YWluaW5nIHRoZSBwYXJ0aWNsZXMgdG8gZGV0ZWN0IGNvbGxpc2lvbnMgYWdhaW5zdFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZU1hc3MgLSBEZXRlcm1pZW5zIHdoZXRoZXIgdG8gdXNlIG1hc3Mgb3Igbm90XG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uQ29sbGlkZSAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBwYXJ0aWNsZXMgY29sbGlkZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihlbWl0dGVyLCB1c2VNYXNzLCBvbkNvbGxpZGUsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKGxpZmUsIGVhc2luZywgdHlwZSwgaXNFbmFibGVkKTtcblxuICAgIHRoaXMucmVzZXQoZW1pdHRlciwgdXNlTWFzcywgb25Db2xsaWRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGJlaGF2aW91ciBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge0VtaXR0ZXJ9IGVtaXR0ZXIgLSBUaGUgZW1pdHRlciBjb250YWluaW5nIHRoZSBwYXJ0aWNsZXMgdG8gZGV0ZWN0IGNvbGxpc2lvbnMgYWdhaW5zdFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZU1hc3MgLSBEZXRlcm1pZW5zIHdoZXRoZXIgdG8gdXNlIG1hc3Mgb3Igbm90XG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uQ29sbGlkZSAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBwYXJ0aWNsZXMgY29sbGlkZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldChlbWl0dGVyLCB1c2VNYXNzLCBvbkNvbGxpZGUsIGxpZmUsIGVhc2luZykge1xuICAgIHRoaXMuZW1pdHRlciA9IGVtaXR0ZXI7XG4gICAgdGhpcy51c2VNYXNzID0gdXNlTWFzcztcbiAgICB0aGlzLm9uQ29sbGlkZSA9IG9uQ29sbGlkZTtcbiAgICB0aGlzLnBhcnRpY2xlcyA9IFtdO1xuICAgIHRoaXMuZGVsdGEgPSBuZXcgVmVjdG9yM0QoKTtcblxuICAgIGxpZmUgJiYgc3VwZXIucmVzZXQobGlmZSwgZWFzaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RzIGNvbGxpc2lvbnMgd2l0aCBvdGhlciBwYXJ0aWNsZXMgYW5kIGNhbGxzIHRoZVxuICAgKiBvbkNvbGxpZGUgZnVuY3Rpb24gb24gY29sbGlkaW5nIHBhcnRpY2xlcy5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gYXBwbHkgdGhlIGJlaGF2aW91ciB0b1xuICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIHBhcnRpY2xlIGVuZ2luZSB0aW1lXG4gICAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSB0aGUgcGFydGljbGUgaW5kZXhcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBtdXRhdGUocGFydGljbGUsIHRpbWUsIGluZGV4KSB7XG4gICAgY29uc3QgcGFydGljbGVzID0gdGhpcy5lbWl0dGVyXG4gICAgICA/IHRoaXMuZW1pdHRlci5wYXJ0aWNsZXMuc2xpY2UoaW5kZXgpXG4gICAgICA6IHRoaXMucGFydGljbGVzLnNsaWNlKGluZGV4KTtcblxuICAgIGxldCBvdGhlclBhcnRpY2xlLCBsZW5ndGhTcSwgb3ZlcmxhcCwgZGlzdGFuY2UsIGF2ZXJhZ2VNYXNzMSwgYXZlcmFnZU1hc3MyO1xuXG4gICAgbGV0IGkgPSBwYXJ0aWNsZXMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgb3RoZXJQYXJ0aWNsZSA9IHBhcnRpY2xlc1tpXTtcblxuICAgICAgaWYgKG90aGVyUGFydGljbGUgPT0gcGFydGljbGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGVsdGEuY29weShvdGhlclBhcnRpY2xlLnBvc2l0aW9uKS5zdWIocGFydGljbGUucG9zaXRpb24pO1xuXG4gICAgICBsZW5ndGhTcSA9IHRoaXMuZGVsdGEubGVuZ3RoU3EoKTtcbiAgICAgIGRpc3RhbmNlID0gcGFydGljbGUucmFkaXVzICsgb3RoZXJQYXJ0aWNsZS5yYWRpdXM7XG5cbiAgICAgIGlmIChsZW5ndGhTcSA8PSBkaXN0YW5jZSAqIGRpc3RhbmNlKSB7XG4gICAgICAgIG92ZXJsYXAgPSBkaXN0YW5jZSAtIE1hdGguc3FydChsZW5ndGhTcSk7XG4gICAgICAgIG92ZXJsYXAgKz0gMC41O1xuXG4gICAgICAgIGF2ZXJhZ2VNYXNzMSA9IHRoaXMuX2dldEF2ZXJhZ2VNYXNzKHBhcnRpY2xlLCBvdGhlclBhcnRpY2xlKTtcbiAgICAgICAgYXZlcmFnZU1hc3MyID0gdGhpcy5fZ2V0QXZlcmFnZU1hc3Mob3RoZXJQYXJ0aWNsZSwgcGFydGljbGUpO1xuXG4gICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLmFkZChcbiAgICAgICAgICB0aGlzLmRlbHRhXG4gICAgICAgICAgICAuY2xvbmUoKVxuICAgICAgICAgICAgLm5vcm1hbGl6ZSgpXG4gICAgICAgICAgICAuc2NhbGFyKG92ZXJsYXAgKiAtYXZlcmFnZU1hc3MxKVxuICAgICAgICApO1xuXG4gICAgICAgIG90aGVyUGFydGljbGUucG9zaXRpb24uYWRkKFxuICAgICAgICAgIHRoaXMuZGVsdGEubm9ybWFsaXplKCkuc2NhbGFyKG92ZXJsYXAgKiBhdmVyYWdlTWFzczIpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5vbkNvbGxpZGUgJiYgdGhpcy5vbkNvbGxpZGUocGFydGljbGUsIG90aGVyUGFydGljbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhdmVyYWdlIG1hc3Mgb2YgYm90aCBwYXJ0aWNsZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlQSAtIFRoZSBmaXJzdCBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZUIgLSBUaGUgc2Vjb25kIHBhcnRpY2xlXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIF9nZXRBdmVyYWdlTWFzcyhwYXJ0aWNsZUEsIHBhcnRpY2xlQikge1xuICAgIHJldHVybiB0aGlzLnVzZU1hc3NcbiAgICAgID8gcGFydGljbGVCLm1hc3MgLyAocGFydGljbGVBLm1hc3MgKyBwYXJ0aWNsZUIubWFzcylcbiAgICAgIDogMC41O1xuICB9XG5cbiAgLy8gVE9ET1xuICBmcm9tSlNPTihqc29uKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Color.js",
    "content": "import { MathUtils, createColorSpan } from '../math';\nimport Behaviour from './Behaviour';\nimport { ColorUtil } from '../utils';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_COLOR as type } from './types';\n/**\n * A behaviour which mutates the color of a particle over time.\n *\n */\n\nexport default class Color extends Behaviour {\n  /**\n   * Constructs a Color behaviour instance.\n   *\n   * @param {number|string} colorA - the starting color\n   * @param {number|string} colorB - the ending color\n   * @param {number} life - the life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(colorA, colorB, life=Infinity, easing, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    this.reset(colorA, colorB);\n  }\n  /**\n   * Gets the _same property which determines if the alpha are the same.\n   *\n   * @return {boolean}\n   */\n\n\n  get same() {\n    return this._same;\n  }\n  /**\n   * Sets the _same property which determines if the alpha are the same.\n   *\n   * @param {boolean} same\n   * @return {boolean}\n   */\n\n\n  set same(same) {\n    /**\n     * @type {boolean}\n     */\n    this._same = same;\n  }\n\n  reset(colorA, colorB, life, easing) {\n    this.same = colorB === null || colorB === undefined ? true : false;\n    this.colorA = createColorSpan(colorA);\n    this.colorB = createColorSpan(colorB);\n    life && super.reset(life, easing);\n  }\n\n  initialize(particle) {\n    particle.transform.colorA = ColorUtil.getRGB(this.colorA.getValue());\n    particle.useColor = true;\n    particle.transform.colorB = this.same ? particle.transform.colorA : ColorUtil.getRGB(this.colorB.getValue());\n  }\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n\n    if (!this._same) {\n      particle.color.r = MathUtils.lerp(particle.transform.colorA.r, particle.transform.colorB.r, this.energy);\n      particle.color.g = MathUtils.lerp(particle.transform.colorA.g, particle.transform.colorB.g, this.energy);\n      particle.color.b = MathUtils.lerp(particle.transform.colorA.b, particle.transform.colorB.b, this.energy);\n    } else {\n      particle.color.r = particle.transform.colorA.r;\n      particle.color.g = particle.transform.colorA.g;\n      particle.color.b = particle.transform.colorA.b;\n    }\n  }\n  /**\n   * Creates a Color initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @property {number} json.colorA - The starting color\n   * @property {number} json.colorB - The ending color\n   * @property {number} json.life - The life of the particle\n   * @property {string} json.easing - The behaviour's decaying trend\n   * @return {Color}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      colorA,\n      colorB,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Color(colorA, colorB, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ29sb3IuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiY3JlYXRlQ29sb3JTcGFuIiwiQmVoYXZpb3VyIiwiQ29sb3JVdGlsIiwiZ2V0RWFzaW5nQnlOYW1lIiwiQkVIQVZJT1VSX1RZUEVfQ09MT1IiLCJ0eXBlIiwiQ29sb3IiLCJjb25zdHJ1Y3RvciIsImNvbG9yQSIsImNvbG9yQiIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJyZXNldCIsInNhbWUiLCJfc2FtZSIsInVuZGVmaW5lZCIsImluaXRpYWxpemUiLCJwYXJ0aWNsZSIsInRyYW5zZm9ybSIsImdldFJHQiIsImdldFZhbHVlIiwidXNlQ29sb3IiLCJtdXRhdGUiLCJ0aW1lIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsImNvbG9yIiwiciIsImxlcnAiLCJlbmVyZ3kiLCJnIiwiYiIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBVCxFQUFvQkMsZUFBcEIsUUFBMkMsU0FBM0M7QUFFQSxPQUFPQyxTQUFQLE1BQXNCLGFBQXRCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixVQUExQjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsU0FBaEM7QUFDQSxTQUFTQyxvQkFBb0IsSUFBSUMsSUFBakMsUUFBNkMsU0FBN0M7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLEtBQU4sU0FBb0JMLFNBQXBCLENBQThCO0FBQzNDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VNLEVBQUFBLFdBQVcsQ0FBQ0MsTUFBRCxFQUFTQyxNQUFULEVBQWlCQyxJQUFqQixFQUF1QkMsTUFBdkIsRUFBK0JDLFNBQVMsR0FBRyxJQUEzQyxFQUFpRDtBQUMxRCxVQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JOLElBQXBCLEVBQTBCTyxTQUExQjtBQUVBLFNBQUtDLEtBQUwsQ0FBV0wsTUFBWCxFQUFtQkMsTUFBbkI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNVLE1BQUpLLElBQUksR0FBRztBQUNULFdBQU8sS0FBS0MsS0FBWjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDVSxNQUFKRCxJQUFJLENBQUNBLElBQUQsRUFBTztBQUNiO0FBQ0o7QUFDQTtBQUNJLFNBQUtDLEtBQUwsR0FBYUQsSUFBYjtBQUNEOztBQUVERCxFQUFBQSxLQUFLLENBQUNMLE1BQUQsRUFBU0MsTUFBVCxFQUFpQkMsSUFBakIsRUFBdUJDLE1BQXZCLEVBQStCO0FBQ2xDLFNBQUtHLElBQUwsR0FBWUwsTUFBTSxLQUFLLElBQVgsSUFBbUJBLE1BQU0sS0FBS08sU0FBOUIsR0FBMEMsSUFBMUMsR0FBaUQsS0FBN0Q7QUFFQSxTQUFLUixNQUFMLEdBQWNSLGVBQWUsQ0FBQ1EsTUFBRCxDQUE3QjtBQUNBLFNBQUtDLE1BQUwsR0FBY1QsZUFBZSxDQUFDUyxNQUFELENBQTdCO0FBQ0FDLElBQUFBLElBQUksSUFBSSxNQUFNRyxLQUFOLENBQVlILElBQVosRUFBa0JDLE1BQWxCLENBQVI7QUFDRDs7QUFFRE0sRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkJBLElBQUFBLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFBbkIsR0FBNEJOLFNBQVMsQ0FBQ2tCLE1BQVYsQ0FBaUIsS0FBS1osTUFBTCxDQUFZYSxRQUFaLEVBQWpCLENBQTVCO0FBRUFILElBQUFBLFFBQVEsQ0FBQ0ksUUFBVCxHQUFvQixJQUFwQjtBQUNBSixJQUFBQSxRQUFRLENBQUNDLFNBQVQsQ0FBbUJWLE1BQW5CLEdBQTRCLEtBQUtLLElBQUwsR0FDeEJJLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFESyxHQUV4Qk4sU0FBUyxDQUFDa0IsTUFBVixDQUFpQixLQUFLWCxNQUFMLENBQVlZLFFBQVosRUFBakIsQ0FGSjtBQUdEOztBQUVERSxFQUFBQSxNQUFNLENBQUNMLFFBQUQsRUFBV00sSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjUixRQUFkLEVBQXdCTSxJQUF4QixFQUE4QkMsS0FBOUI7O0FBRUEsUUFBSSxDQUFDLEtBQUtWLEtBQVYsRUFBaUI7QUFDZkcsTUFBQUEsUUFBUSxDQUFDUyxLQUFULENBQWVDLENBQWYsR0FBbUI3QixTQUFTLENBQUM4QixJQUFWLENBQ2pCWCxRQUFRLENBQUNDLFNBQVQsQ0FBbUJYLE1BQW5CLENBQTBCb0IsQ0FEVCxFQUVqQlYsUUFBUSxDQUFDQyxTQUFULENBQW1CVixNQUFuQixDQUEwQm1CLENBRlQsRUFHakIsS0FBS0UsTUFIWSxDQUFuQjtBQUtBWixNQUFBQSxRQUFRLENBQUNTLEtBQVQsQ0FBZUksQ0FBZixHQUFtQmhDLFNBQVMsQ0FBQzhCLElBQVYsQ0FDakJYLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFBbkIsQ0FBMEJ1QixDQURULEVBRWpCYixRQUFRLENBQUNDLFNBQVQsQ0FBbUJWLE1BQW5CLENBQTBCc0IsQ0FGVCxFQUdqQixLQUFLRCxNQUhZLENBQW5CO0FBS0FaLE1BQUFBLFFBQVEsQ0FBQ1MsS0FBVCxDQUFlSyxDQUFmLEdBQW1CakMsU0FBUyxDQUFDOEIsSUFBVixDQUNqQlgsUUFBUSxDQUFDQyxTQUFULENBQW1CWCxNQUFuQixDQUEwQndCLENBRFQsRUFFakJkLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlYsTUFBbkIsQ0FBMEJ1QixDQUZULEVBR2pCLEtBQUtGLE1BSFksQ0FBbkI7QUFLRCxLQWhCRCxNQWdCTztBQUNMWixNQUFBQSxRQUFRLENBQUNTLEtBQVQsQ0FBZUMsQ0FBZixHQUFtQlYsUUFBUSxDQUFDQyxTQUFULENBQW1CWCxNQUFuQixDQUEwQm9CLENBQTdDO0FBQ0FWLE1BQUFBLFFBQVEsQ0FBQ1MsS0FBVCxDQUFlSSxDQUFmLEdBQW1CYixRQUFRLENBQUNDLFNBQVQsQ0FBbUJYLE1BQW5CLENBQTBCdUIsQ0FBN0M7QUFDQWIsTUFBQUEsUUFBUSxDQUFDUyxLQUFULENBQWVLLENBQWYsR0FBbUJkLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFBbkIsQ0FBMEJ3QixDQUE3QztBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJDLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRTFCLE1BQUFBLE1BQUY7QUFBVUMsTUFBQUEsTUFBVjtBQUFrQkMsTUFBQUEsSUFBbEI7QUFBd0JDLE1BQUFBLE1BQXhCO0FBQWdDQyxNQUFBQSxTQUFTLEdBQUc7QUFBNUMsUUFBcURzQixJQUEzRDtBQUVBLFdBQU8sSUFBSTVCLEtBQUosQ0FBVUUsTUFBVixFQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDUCxlQUFlLENBQUNRLE1BQUQsQ0FBL0MsRUFBeURDLFNBQXpELENBQVA7QUFDRDs7QUFoRzBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0aFV0aWxzLCBjcmVhdGVDb2xvclNwYW4gfSBmcm9tICcuLi9tYXRoJztcblxuaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBDb2xvclV0aWwgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX0NPTE9SIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBBIGJlaGF2aW91ciB3aGljaCBtdXRhdGVzIHRoZSBjb2xvciBvZiBhIHBhcnRpY2xlIG92ZXIgdGltZS5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbG9yIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBDb2xvciBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gY29sb3JBIC0gdGhlIHN0YXJ0aW5nIGNvbG9yXG4gICAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gY29sb3JCIC0gdGhlIGVuZGluZyBjb2xvclxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIHRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb2xvckEsIGNvbG9yQiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIobGlmZSwgZWFzaW5nLCB0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgdGhpcy5yZXNldChjb2xvckEsIGNvbG9yQik7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgX3NhbWUgcHJvcGVydHkgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgYWxwaGEgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IHNhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NhbWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgX3NhbWUgcHJvcGVydHkgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgYWxwaGEgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNhbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHNldCBzYW1lKHNhbWUpIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLl9zYW1lID0gc2FtZTtcbiAgfVxuXG4gIHJlc2V0KGNvbG9yQSwgY29sb3JCLCBsaWZlLCBlYXNpbmcpIHtcbiAgICB0aGlzLnNhbWUgPSBjb2xvckIgPT09IG51bGwgfHwgY29sb3JCID09PSB1bmRlZmluZWQgPyB0cnVlIDogZmFsc2U7XG5cbiAgICB0aGlzLmNvbG9yQSA9IGNyZWF0ZUNvbG9yU3Bhbihjb2xvckEpO1xuICAgIHRoaXMuY29sb3JCID0gY3JlYXRlQ29sb3JTcGFuKGNvbG9yQik7XG4gICAgbGlmZSAmJiBzdXBlci5yZXNldChsaWZlLCBlYXNpbmcpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckEgPSBDb2xvclV0aWwuZ2V0UkdCKHRoaXMuY29sb3JBLmdldFZhbHVlKCkpO1xuXG4gICAgcGFydGljbGUudXNlQ29sb3IgPSB0cnVlO1xuICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckIgPSB0aGlzLnNhbWVcbiAgICAgID8gcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQVxuICAgICAgOiBDb2xvclV0aWwuZ2V0UkdCKHRoaXMuY29sb3JCLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgbXV0YXRlKHBhcnRpY2xlLCB0aW1lLCBpbmRleCkge1xuICAgIHRoaXMuZW5lcmdpemUocGFydGljbGUsIHRpbWUsIGluZGV4KTtcblxuICAgIGlmICghdGhpcy5fc2FtZSkge1xuICAgICAgcGFydGljbGUuY29sb3IuciA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JBLnIsXG4gICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckIucixcbiAgICAgICAgdGhpcy5lbmVyZ3lcbiAgICAgICk7XG4gICAgICBwYXJ0aWNsZS5jb2xvci5nID0gTWF0aFV0aWxzLmxlcnAoXG4gICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckEuZyxcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQi5nLFxuICAgICAgICB0aGlzLmVuZXJneVxuICAgICAgKTtcbiAgICAgIHBhcnRpY2xlLmNvbG9yLmIgPSBNYXRoVXRpbHMubGVycChcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQS5iLFxuICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JCLmIsXG4gICAgICAgIHRoaXMuZW5lcmd5XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWNsZS5jb2xvci5yID0gcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQS5yO1xuICAgICAgcGFydGljbGUuY29sb3IuZyA9IHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckEuZztcbiAgICAgIHBhcnRpY2xlLmNvbG9yLmIgPSBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JBLmI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb2xvciBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5jb2xvckEgLSBUaGUgc3RhcnRpbmcgY29sb3JcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24uY29sb3JCIC0gVGhlIGVuZGluZyBjb2xvclxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5saWZlIC0gVGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqc29uLmVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcmV0dXJuIHtDb2xvcn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBjb2xvckEsIGNvbG9yQiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBDb2xvcihjb2xvckEsIGNvbG9yQiwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/CrossZone.js",
    "content": "import * as Zone from '../zone';\nimport Behaviour from './Behaviour';\nimport { DEFAULT_CROSS_TYPE } from './constants';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_CROSS_ZONE as type } from './types';\n/**\n * Behaviour that allows for specific functions to be called on particles when\n * they interact with a zone.\n *\n */\n\nexport default class CrossZone extends Behaviour {\n  /**\n   * Constructs a CrossZone behaviour instance.\n   *\n   * @param {Zone} zone - the zone used to apply to particles with this behaviour\n   * @param {string} [crossType=DEFAULT_CROSS_TYPE] - enum of cross types, valid strings include 'dead', 'bound', 'cross'\n   * @param {number} life - The life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   */\n  constructor(zone, crossType, life, easing, isEnabled) {\n    super(life, easing, type, isEnabled);\n    this.reset(zone, crossType);\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {Zone} zone - the zone used to apply to particles with this behaviour\n   * @param {string} [crossType=DEFAULT_CROSS_TYPE] - enum of cross types, valid strings include 'dead', 'bound', 'cross'\n   * @param {number} life - The life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   */\n\n\n  reset(zone, crossType = DEFAULT_CROSS_TYPE, life, easing) {\n    /**\n     * @desc The zone used to apply to particles with this behaviour\n     * @type {Zone}\n     */\n    this.zone = zone;\n    this.zone.crossType = crossType;\n    life && super.reset(life, easing);\n  }\n  /**\n   * Applies the behaviour to the particle.\n   *\n   * @see {@link '../zone/Zone.js'} crossing\n   * @param {object} particle - the particle to apply the behaviour to\n   * @param {number} time - engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n    this.zone.crossing.call(this.zone, particle);\n  }\n  /**\n   * Creates a CrossZone initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @return {CrossZone}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      zoneType,\n      zoneParams,\n      crossType,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    const zone = new Zone[zoneType](...Object.values(zoneParams));\n    return new CrossZone(zone, crossType, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ3Jvc3Nab25lLmpzIl0sIm5hbWVzIjpbIlpvbmUiLCJCZWhhdmlvdXIiLCJERUZBVUxUX0NST1NTX1RZUEUiLCJnZXRFYXNpbmdCeU5hbWUiLCJCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FIiwidHlwZSIsIkNyb3NzWm9uZSIsImNvbnN0cnVjdG9yIiwiem9uZSIsImNyb3NzVHlwZSIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJyZXNldCIsIm11dGF0ZSIsInBhcnRpY2xlIiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJjcm9zc2luZyIsImNhbGwiLCJmcm9tSlNPTiIsImpzb24iLCJ6b25lVHlwZSIsInpvbmVQYXJhbXMiLCJPYmplY3QiLCJ2YWx1ZXMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBS0EsSUFBWixNQUFzQixTQUF0QjtBQUVBLE9BQU9DLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxhQUFuQztBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsU0FBaEM7QUFDQSxTQUFTQyx5QkFBeUIsSUFBSUMsSUFBdEMsUUFBa0QsU0FBbEQ7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkwsU0FBeEIsQ0FBa0M7QUFDL0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VNLEVBQUFBLFdBQVcsQ0FBQ0MsSUFBRCxFQUFPQyxTQUFQLEVBQWtCQyxJQUFsQixFQUF3QkMsTUFBeEIsRUFBZ0NDLFNBQWhDLEVBQTJDO0FBQ3BELFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQk4sSUFBcEIsRUFBMEJPLFNBQTFCO0FBRUEsU0FBS0MsS0FBTCxDQUFXTCxJQUFYLEVBQWlCQyxTQUFqQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLEtBQUssQ0FBQ0wsSUFBRCxFQUFPQyxTQUFTLEdBQUdQLGtCQUFuQixFQUF1Q1EsSUFBdkMsRUFBNkNDLE1BQTdDLEVBQXFEO0FBQ3hEO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS0gsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0EsSUFBTCxDQUFVQyxTQUFWLEdBQXNCQSxTQUF0QjtBQUVBQyxJQUFBQSxJQUFJLElBQUksTUFBTUcsS0FBTixDQUFZSCxJQUFaLEVBQWtCQyxNQUFsQixDQUFSO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxNQUFNLENBQUNDLFFBQUQsRUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjSCxRQUFkLEVBQXdCQyxJQUF4QixFQUE4QkMsS0FBOUI7QUFFQSxTQUFLVCxJQUFMLENBQVVXLFFBQVYsQ0FBbUJDLElBQW5CLENBQXdCLEtBQUtaLElBQTdCLEVBQW1DTyxRQUFuQztBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUk0sUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUNKQyxNQUFBQSxRQURJO0FBRUpDLE1BQUFBLFVBRkk7QUFHSmYsTUFBQUEsU0FISTtBQUlKQyxNQUFBQSxJQUpJO0FBS0pDLE1BQUFBLE1BTEk7QUFNSkMsTUFBQUEsU0FBUyxHQUFHO0FBTlIsUUFPRlUsSUFQSjtBQVNBLFVBQU1kLElBQUksR0FBRyxJQUFJUixJQUFJLENBQUN1QixRQUFELENBQVIsQ0FBbUIsR0FBR0UsTUFBTSxDQUFDQyxNQUFQLENBQWNGLFVBQWQsQ0FBdEIsQ0FBYjtBQUVBLFdBQU8sSUFBSWxCLFNBQUosQ0FDTEUsSUFESyxFQUVMQyxTQUZLLEVBR0xDLElBSEssRUFJTFAsZUFBZSxDQUFDUSxNQUFELENBSlYsRUFLTEMsU0FMSyxDQUFQO0FBT0Q7O0FBM0U4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFpvbmUgZnJvbSAnLi4vem9uZSc7XG5cbmltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgREVGQVVMVF9DUk9TU19UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBhbGxvd3MgZm9yIHNwZWNpZmljIGZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgb24gcGFydGljbGVzIHdoZW5cbiAqIHRoZXkgaW50ZXJhY3Qgd2l0aCBhIHpvbmUuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcm9zc1pvbmUgZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIENyb3NzWm9uZSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZX0gem9uZSAtIHRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjcm9zc1R5cGU9REVGQVVMVF9DUk9TU19UWVBFXSAtIGVudW0gb2YgY3Jvc3MgdHlwZXMsIHZhbGlkIHN0cmluZ3MgaW5jbHVkZSAnZGVhZCcsICdib3VuZCcsICdjcm9zcydcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGJlaGF2aW91ciB3aWxsIGJlIGFwcGxpZWQgb3Igbm90XG4gICAqL1xuICBjb25zdHJ1Y3Rvcih6b25lLCBjcm9zc1R5cGUsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkKSB7XG4gICAgc3VwZXIobGlmZSwgZWFzaW5nLCB0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgdGhpcy5yZXNldCh6b25lLCBjcm9zc1R5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZX0gem9uZSAtIHRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjcm9zc1R5cGU9REVGQVVMVF9DUk9TU19UWVBFXSAtIGVudW0gb2YgY3Jvc3MgdHlwZXMsIHZhbGlkIHN0cmluZ3MgaW5jbHVkZSAnZGVhZCcsICdib3VuZCcsICdjcm9zcydcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqL1xuICByZXNldCh6b25lLCBjcm9zc1R5cGUgPSBERUZBVUxUX0NST1NTX1RZUEUsIGxpZmUsIGVhc2luZykge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICAgKiBAdHlwZSB7Wm9uZX1cbiAgICAgKi9cbiAgICB0aGlzLnpvbmUgPSB6b25lO1xuICAgIHRoaXMuem9uZS5jcm9zc1R5cGUgPSBjcm9zc1R5cGU7XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgYmVoYXZpb3VyIHRvIHRoZSBwYXJ0aWNsZS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgJy4uL3pvbmUvWm9uZS5qcyd9IGNyb3NzaW5nXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICB0aGlzLnpvbmUuY3Jvc3NpbmcuY2FsbCh0aGlzLnpvbmUsIHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ3Jvc3Nab25lIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEByZXR1cm4ge0Nyb3NzWm9uZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3Qge1xuICAgICAgem9uZVR5cGUsXG4gICAgICB6b25lUGFyYW1zLFxuICAgICAgY3Jvc3NUeXBlLFxuICAgICAgbGlmZSxcbiAgICAgIGVhc2luZyxcbiAgICAgIGlzRW5hYmxlZCA9IHRydWUsXG4gICAgfSA9IGpzb247XG5cbiAgICBjb25zdCB6b25lID0gbmV3IFpvbmVbem9uZVR5cGVdKC4uLk9iamVjdC52YWx1ZXMoem9uZVBhcmFtcykpO1xuXG4gICAgcmV0dXJuIG5ldyBDcm9zc1pvbmUoXG4gICAgICB6b25lLFxuICAgICAgY3Jvc3NUeXBlLFxuICAgICAgbGlmZSxcbiAgICAgIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLFxuICAgICAgaXNFbmFibGVkXG4gICAgKTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Force.js",
    "content": "import Behaviour from './Behaviour';\nimport { Vector3D } from '../math';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_FORCE as type } from './types';\n/**\n * Behaviour that forces particles along a specific axis.\n *\n */\n\nexport default class Force extends Behaviour {\n  /**\n   * Constructs a Force behaviour instance.\n   *\n   * @param {number} fx - the x axis force\n   * @param {number} fy - the y axis force\n   * @param {number} fz - the z axis force\n   * @param {number} life - the life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(fx, fy, fz, life = Infinity, easing, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    this.reset(fx, fy, fz);\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {number} fx - the x axis force\n   * @param {number} fy - the y axis force\n   * @param {number} fz - the z axis force\n   */\n\n\n  reset(fx, fy, fz) {\n    /**\n     * @desc The normalized force to exert on the particle in\n     * @type {Vector3D}\n     */\n    this.force = this.normalizeForce(new Vector3D(fx, fy, fz));\n    /**\n     * @desc The id of the force vector\n     * @property {number} this.force.id\n     */\n\n    this.force.id = Math.random();\n  }\n  /**\n   * Mutates the particle.acceleration property.\n   *\n   * @param {object} particle - the particle to apply the behaviour to\n   * @param {number} time - engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n    particle.acceleration.add(this.force);\n  }\n  /**\n   * Creates a Force initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @return {Force}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      fx,\n      fy,\n      fz,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Force(fx, fy, fz, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvRm9yY2UuanMiXSwibmFtZXMiOlsiQmVoYXZpb3VyIiwiVmVjdG9yM0QiLCJnZXRFYXNpbmdCeU5hbWUiLCJCRUhBVklPVVJfVFlQRV9GT1JDRSIsInR5cGUiLCJGb3JjZSIsImNvbnN0cnVjdG9yIiwiZngiLCJmeSIsImZ6IiwibGlmZSIsImVhc2luZyIsImlzRW5hYmxlZCIsInJlc2V0IiwiZm9yY2UiLCJub3JtYWxpemVGb3JjZSIsImlkIiwiTWF0aCIsInJhbmRvbSIsIm11dGF0ZSIsInBhcnRpY2xlIiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJhY2NlbGVyYXRpb24iLCJhZGQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLFNBQXpCO0FBQ0EsU0FBU0MsZUFBVCxRQUFnQyxTQUFoQztBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsS0FBTixTQUFvQkwsU0FBcEIsQ0FBOEI7QUFDM0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFTSxFQUFBQSxXQUFXLENBQUNDLEVBQUQsRUFBS0MsRUFBTCxFQUFTQyxFQUFULEVBQWFDLElBQWIsRUFBbUJDLE1BQW5CLEVBQTJCQyxTQUFTLEdBQUcsSUFBdkMsRUFBNkM7QUFDdEQsVUFBTUYsSUFBTixFQUFZQyxNQUFaLEVBQW9CUCxJQUFwQixFQUEwQlEsU0FBMUI7QUFFQSxTQUFLQyxLQUFMLENBQVdOLEVBQVgsRUFBZUMsRUFBZixFQUFtQkMsRUFBbkI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUksRUFBQUEsS0FBSyxDQUFDTixFQUFELEVBQUtDLEVBQUwsRUFBU0MsRUFBVCxFQUFhO0FBQ2hCO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS0ssS0FBTCxHQUFhLEtBQUtDLGNBQUwsQ0FBb0IsSUFBSWQsUUFBSixDQUFhTSxFQUFiLEVBQWlCQyxFQUFqQixFQUFxQkMsRUFBckIsQ0FBcEIsQ0FBYjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtLLEtBQUwsQ0FBV0UsRUFBWCxHQUFnQkMsSUFBSSxDQUFDQyxNQUFMLEVBQWhCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxDQUFDQyxRQUFELEVBQVdDLElBQVgsRUFBaUJDLEtBQWpCLEVBQXdCO0FBQzVCLFNBQUtDLFFBQUwsQ0FBY0gsUUFBZCxFQUF3QkMsSUFBeEIsRUFBOEJDLEtBQTlCO0FBRUFGLElBQUFBLFFBQVEsQ0FBQ0ksWUFBVCxDQUFzQkMsR0FBdEIsQ0FBMEIsS0FBS1gsS0FBL0I7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJZLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRXBCLE1BQUFBLEVBQUY7QUFBTUMsTUFBQUEsRUFBTjtBQUFVQyxNQUFBQSxFQUFWO0FBQWNDLE1BQUFBLElBQWQ7QUFBb0JDLE1BQUFBLE1BQXBCO0FBQTRCQyxNQUFBQSxTQUFTLEdBQUc7QUFBeEMsUUFBaURlLElBQXZEO0FBRUEsV0FBTyxJQUFJdEIsS0FBSixDQUFVRSxFQUFWLEVBQWNDLEVBQWQsRUFBa0JDLEVBQWxCLEVBQXNCQyxJQUF0QixFQUE0QlIsZUFBZSxDQUFDUyxNQUFELENBQTNDLEVBQXFEQyxTQUFyRCxDQUFQO0FBQ0Q7O0FBL0QwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgVmVjdG9yM0QgfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IGdldEVhc2luZ0J5TmFtZSB9IGZyb20gJy4uL2Vhc2UnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfRk9SQ0UgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBmb3JjZXMgcGFydGljbGVzIGFsb25nIGEgc3BlY2lmaWMgYXhpcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcmNlIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBGb3JjZSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmeCAtIHRoZSB4IGF4aXMgZm9yY2VcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZ5IC0gdGhlIHkgYXhpcyBmb3JjZVxuICAgKiBAcGFyYW0ge251bWJlcn0gZnogLSB0aGUgeiBheGlzIGZvcmNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGZ4LCBmeSwgZnosIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKGxpZmUsIGVhc2luZywgdHlwZSwgaXNFbmFibGVkKTtcblxuICAgIHRoaXMucmVzZXQoZngsIGZ5LCBmeik7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBiZWhhdmlvdXIgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZ4IC0gdGhlIHggYXhpcyBmb3JjZVxuICAgKiBAcGFyYW0ge251bWJlcn0gZnkgLSB0aGUgeSBheGlzIGZvcmNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmeiAtIHRoZSB6IGF4aXMgZm9yY2VcbiAgICovXG4gIHJlc2V0KGZ4LCBmeSwgZnopIHtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgbm9ybWFsaXplZCBmb3JjZSB0byBleGVydCBvbiB0aGUgcGFydGljbGUgaW5cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5mb3JjZSA9IHRoaXMubm9ybWFsaXplRm9yY2UobmV3IFZlY3RvcjNEKGZ4LCBmeSwgZnopKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBpZCBvZiB0aGUgZm9yY2UgdmVjdG9yXG4gICAgICogQHByb3BlcnR5IHtudW1iZXJ9IHRoaXMuZm9yY2UuaWRcbiAgICAgKi9cbiAgICB0aGlzLmZvcmNlLmlkID0gTWF0aC5yYW5kb20oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXRhdGVzIHRoZSBwYXJ0aWNsZS5hY2NlbGVyYXRpb24gcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS5hY2NlbGVyYXRpb24uYWRkKHRoaXMuZm9yY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBGb3JjZSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcmV0dXJuIHtGb3JjZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBmeCwgZnksIGZ6LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IEZvcmNlKGZ4LCBmeSwgZnosIGxpZmUsIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLCBpc0VuYWJsZWQpO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Gravity.js",
    "content": "import Force from './Force';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_GRAVITY as type } from './types';\n/**\n * Behaviour that forces particles down the y axis.\n *\n */\n\nexport default class Gravity extends Force {\n  /**\n   * Constructs a Gravity behaviour instance.\n   *\n   * @param {number} gravity - the force to pull the particle down the y axis\n   * @param {number} life - the life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(gravity, life, easing, isEnabled = true) {\n    super(0, -gravity, 0, life, easing, isEnabled);\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n  }\n\n  static fromJSON(json) {\n    const {\n      gravity,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Gravity(gravity, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvR3Jhdml0eS5qcyJdLCJuYW1lcyI6WyJGb3JjZSIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX0dSQVZJVFkiLCJ0eXBlIiwiR3Jhdml0eSIsImNvbnN0cnVjdG9yIiwiZ3Jhdml0eSIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQVAsTUFBa0IsU0FBbEI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0Msc0JBQXNCLElBQUlDLElBQW5DLFFBQStDLFNBQS9DO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN6QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQVVDLElBQVYsRUFBZ0JDLE1BQWhCLEVBQXdCQyxTQUFTLEdBQUcsSUFBcEMsRUFBMEM7QUFDbkQsVUFBTSxDQUFOLEVBQVMsQ0FBQ0gsT0FBVixFQUFtQixDQUFuQixFQUFzQkMsSUFBdEIsRUFBNEJDLE1BQTVCLEVBQW9DQyxTQUFwQztBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtOLElBQUwsR0FBWUEsSUFBWjtBQUNEOztBQUVjLFNBQVJPLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRUwsTUFBQUEsT0FBRjtBQUFXQyxNQUFBQSxJQUFYO0FBQWlCQyxNQUFBQSxNQUFqQjtBQUF5QkMsTUFBQUEsU0FBUyxHQUFHO0FBQXJDLFFBQThDRSxJQUFwRDtBQUVBLFdBQU8sSUFBSVAsT0FBSixDQUFZRSxPQUFaLEVBQXFCQyxJQUFyQixFQUEyQk4sZUFBZSxDQUFDTyxNQUFELENBQTFDLEVBQW9EQyxTQUFwRCxDQUFQO0FBQ0Q7O0FBeEJ3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGb3JjZSBmcm9tICcuL0ZvcmNlJztcbmltcG9ydCB7IGdldEVhc2luZ0J5TmFtZSB9IGZyb20gJy4uL2Vhc2UnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfR1JBVklUWSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQmVoYXZpb3VyIHRoYXQgZm9yY2VzIHBhcnRpY2xlcyBkb3duIHRoZSB5IGF4aXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHcmF2aXR5IGV4dGVuZHMgRm9yY2Uge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIEdyYXZpdHkgYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gZ3Jhdml0eSAtIHRoZSBmb3JjZSB0byBwdWxsIHRoZSBwYXJ0aWNsZSBkb3duIHRoZSB5IGF4aXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSB0aGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGVhc2luZyAtIHRoZSBlYXNpbmcgZXF1YXRpb24gdG8gdXNlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGJlaGF2aW91ciB3aWxsIGJlIGFwcGxpZWQgb3Igbm90XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoZ3Jhdml0eSwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIoMCwgLWdyYXZpdHksIDAsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBncmF2aXR5LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IEdyYXZpdHkoZ3Jhdml0eSwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/RandomDrift.js",
    "content": "import { MathUtils, Vector3D, createSpan } from '../math';\nimport Behaviour from './Behaviour';\nimport { DEFAULT_RANDOM_DRIFT_DELAY } from './constants';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_RANDOM_DRIFT as type } from './types';\n/**\n * Behaviour that causes particles to drift to random coordinates in 3D space.\n *\n */\n\nexport default class RandomDrift extends Behaviour {\n  /**\n   * Constructs a RandomDrift behaviour instance.\n   *\n   * @param {number} driftX - x axis drift\n   * @param {number} driftY - y axis drift\n   * @param {number} driftZ - z axis drift\n   * @param {number} [delay=DEFAULT_RANDOM_DRIFT_DELAY] - drift delay\n   * @param {number} life - The life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @return void\n   */\n  constructor(driftX, driftY, driftZ, delay = DEFAULT_RANDOM_DRIFT_DELAY, life = Infinity, easing, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    this.reset(driftX, driftY, driftZ, delay);\n    /**\n     * @desc Internal time used for calculating drift vs internal delay.\n     * @type {number}\n     */\n\n    this.time = 0;\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {number} driftX - x axis drift\n   * @param {number} driftY - y axis drift\n   * @param {number} driftZ - z axis drift\n   * @param {number} [delay=DEFAULT_RANDOM_DRIFT_DELAY] - drift delay\n   * @param {number} life - The life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   */\n\n\n  reset(driftX, driftY, driftZ, delay = DEFAULT_RANDOM_DRIFT_DELAY, life, easing) {\n    /**\n     * @desc A Vector3D that stores the drift properties.\n     * @type {Vector3D}\n     */\n    this.randomForce = this.normalizeForce(new Vector3D(driftX, driftY, driftZ));\n    /**\n     * @desc A Span containing the delay supplied.\n     * @type {Span}\n     */\n\n    this.delayPan = createSpan(delay);\n    this.time = 0;\n    life && super.reset(life, easing);\n  }\n  /**\n   * Mutates the particle.acceleration property.\n   *\n   * @param {object} particle - the particle to apply the behaviour to\n   * @param {number} time - engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n    this.time += time;\n\n    if (this.time >= this.delayPan.getValue()) {\n      const ax = MathUtils.randomAToB(-this.randomForce.x, this.randomForce.x);\n      const ay = MathUtils.randomAToB(-this.randomForce.y, this.randomForce.y);\n      const az = MathUtils.randomAToB(-this.randomForce.z, this.randomForce.z);\n      particle.acceleration.addValue(ax, ay, az);\n      this.time = 0;\n    }\n  }\n\n  static fromJSON(json) {\n    const {\n      x,\n      y,\n      z,\n      delay,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new RandomDrift(x, y, z, delay, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUmFuZG9tRHJpZnQuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiVmVjdG9yM0QiLCJjcmVhdGVTcGFuIiwiQmVoYXZpb3VyIiwiREVGQVVMVF9SQU5ET01fRFJJRlRfREVMQVkiLCJnZXRFYXNpbmdCeU5hbWUiLCJCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQiLCJ0eXBlIiwiUmFuZG9tRHJpZnQiLCJjb25zdHJ1Y3RvciIsImRyaWZ0WCIsImRyaWZ0WSIsImRyaWZ0WiIsImRlbGF5IiwibGlmZSIsImVhc2luZyIsImlzRW5hYmxlZCIsInJlc2V0IiwidGltZSIsInJhbmRvbUZvcmNlIiwibm9ybWFsaXplRm9yY2UiLCJkZWxheVBhbiIsIm11dGF0ZSIsInBhcnRpY2xlIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsImdldFZhbHVlIiwiYXgiLCJyYW5kb21BVG9CIiwieCIsImF5IiwieSIsImF6IiwieiIsImFjY2VsZXJhdGlvbiIsImFkZFZhbHVlIiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFULEVBQW9CQyxRQUFwQixFQUE4QkMsVUFBOUIsUUFBZ0QsU0FBaEQ7QUFFQSxPQUFPQyxTQUFQLE1BQXNCLGFBQXRCO0FBQ0EsU0FBU0MsMEJBQVQsUUFBMkMsYUFBM0M7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MsMkJBQTJCLElBQUlDLElBQXhDLFFBQW9ELFNBQXBEO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxXQUFOLFNBQTBCTCxTQUExQixDQUFvQztBQUNqRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VNLEVBQUFBLFdBQVcsQ0FDVEMsTUFEUyxFQUVUQyxNQUZTLEVBR1RDLE1BSFMsRUFJVEMsS0FBSyxHQUFHVCwwQkFKQyxFQUtUVSxJQUxTLEVBTVRDLE1BTlMsRUFPVEMsU0FBUyxHQUFHLElBUEgsRUFRVDtBQUNBLFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQlIsSUFBcEIsRUFBMEJTLFNBQTFCO0FBRUEsU0FBS0MsS0FBTCxDQUFXUCxNQUFYLEVBQW1CQyxNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNDLEtBQW5DO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0ssSUFBTCxHQUFZLENBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUQsRUFBQUEsS0FBSyxDQUNIUCxNQURHLEVBRUhDLE1BRkcsRUFHSEMsTUFIRyxFQUlIQyxLQUFLLEdBQUdULDBCQUpMLEVBS0hVLElBTEcsRUFNSEMsTUFORyxFQU9IO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7QUFDSSxTQUFLSSxXQUFMLEdBQW1CLEtBQUtDLGNBQUwsQ0FDakIsSUFBSW5CLFFBQUosQ0FBYVMsTUFBYixFQUFxQkMsTUFBckIsRUFBNkJDLE1BQTdCLENBRGlCLENBQW5CO0FBR0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS1MsUUFBTCxHQUFnQm5CLFVBQVUsQ0FBQ1csS0FBRCxDQUExQjtBQUNBLFNBQUtLLElBQUwsR0FBWSxDQUFaO0FBRUFKLElBQUFBLElBQUksSUFBSSxNQUFNRyxLQUFOLENBQVlILElBQVosRUFBa0JDLE1BQWxCLENBQVI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTyxFQUFBQSxNQUFNLENBQUNDLFFBQUQsRUFBV0wsSUFBWCxFQUFpQk0sS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjRixRQUFkLEVBQXdCTCxJQUF4QixFQUE4Qk0sS0FBOUI7QUFFQSxTQUFLTixJQUFMLElBQWFBLElBQWI7O0FBRUEsUUFBSSxLQUFLQSxJQUFMLElBQWEsS0FBS0csUUFBTCxDQUFjSyxRQUFkLEVBQWpCLEVBQTJDO0FBQ3pDLFlBQU1DLEVBQUUsR0FBRzNCLFNBQVMsQ0FBQzRCLFVBQVYsQ0FBcUIsQ0FBQyxLQUFLVCxXQUFMLENBQWlCVSxDQUF2QyxFQUEwQyxLQUFLVixXQUFMLENBQWlCVSxDQUEzRCxDQUFYO0FBQ0EsWUFBTUMsRUFBRSxHQUFHOUIsU0FBUyxDQUFDNEIsVUFBVixDQUFxQixDQUFDLEtBQUtULFdBQUwsQ0FBaUJZLENBQXZDLEVBQTBDLEtBQUtaLFdBQUwsQ0FBaUJZLENBQTNELENBQVg7QUFDQSxZQUFNQyxFQUFFLEdBQUdoQyxTQUFTLENBQUM0QixVQUFWLENBQXFCLENBQUMsS0FBS1QsV0FBTCxDQUFpQmMsQ0FBdkMsRUFBMEMsS0FBS2QsV0FBTCxDQUFpQmMsQ0FBM0QsQ0FBWDtBQUVBVixNQUFBQSxRQUFRLENBQUNXLFlBQVQsQ0FBc0JDLFFBQXRCLENBQStCUixFQUEvQixFQUFtQ0csRUFBbkMsRUFBdUNFLEVBQXZDO0FBRUEsV0FBS2QsSUFBTCxHQUFZLENBQVo7QUFDRDtBQUNGOztBQUVjLFNBQVJrQixRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVSLE1BQUFBLENBQUY7QUFBS0UsTUFBQUEsQ0FBTDtBQUFRRSxNQUFBQSxDQUFSO0FBQVdwQixNQUFBQSxLQUFYO0FBQWtCQyxNQUFBQSxJQUFsQjtBQUF3QkMsTUFBQUEsTUFBeEI7QUFBZ0NDLE1BQUFBLFNBQVMsR0FBRztBQUE1QyxRQUFxRHFCLElBQTNEO0FBRUEsV0FBTyxJQUFJN0IsV0FBSixDQUNMcUIsQ0FESyxFQUVMRSxDQUZLLEVBR0xFLENBSEssRUFJTHBCLEtBSkssRUFLTEMsSUFMSyxFQU1MVCxlQUFlLENBQUNVLE1BQUQsQ0FOVixFQU9MQyxTQVBLLENBQVA7QUFTRDs7QUF2R2dEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0aFV0aWxzLCBWZWN0b3IzRCwgY3JlYXRlU3BhbiB9IGZyb20gJy4uL21hdGgnO1xuXG5pbXBvcnQgQmVoYXZpb3VyIGZyb20gJy4vQmVoYXZpb3VyJztcbmltcG9ydCB7IERFRkFVTFRfUkFORE9NX0RSSUZUX0RFTEFZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEJlaGF2aW91ciB0aGF0IGNhdXNlcyBwYXJ0aWNsZXMgdG8gZHJpZnQgdG8gcmFuZG9tIGNvb3JkaW5hdGVzIGluIDNEIHNwYWNlLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFuZG9tRHJpZnQgZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFJhbmRvbURyaWZ0IGJlaGF2aW91ciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGRyaWZ0WCAtIHggYXhpcyBkcmlmdFxuICAgKiBAcGFyYW0ge251bWJlcn0gZHJpZnRZIC0geSBheGlzIGRyaWZ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkcmlmdFogLSB6IGF4aXMgZHJpZnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtkZWxheT1ERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWV0gLSBkcmlmdCBkZWxheVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBkcmlmdFgsXG4gICAgZHJpZnRZLFxuICAgIGRyaWZ0WixcbiAgICBkZWxheSA9IERFRkFVTFRfUkFORE9NX0RSSUZUX0RFTEFZLFxuICAgIGxpZmUsXG4gICAgZWFzaW5nLFxuICAgIGlzRW5hYmxlZCA9IHRydWVcbiAgKSB7XG4gICAgc3VwZXIobGlmZSwgZWFzaW5nLCB0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgdGhpcy5yZXNldChkcmlmdFgsIGRyaWZ0WSwgZHJpZnRaLCBkZWxheSk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBJbnRlcm5hbCB0aW1lIHVzZWQgZm9yIGNhbGN1bGF0aW5nIGRyaWZ0IHZzIGludGVybmFsIGRlbGF5LlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy50aW1lID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGJlaGF2aW91ciBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gZHJpZnRYIC0geCBheGlzIGRyaWZ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkcmlmdFkgLSB5IGF4aXMgZHJpZnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGRyaWZ0WiAtIHogYXhpcyBkcmlmdFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2RlbGF5PURFRkFVTFRfUkFORE9NX0RSSUZUX0RFTEFZXSAtIGRyaWZ0IGRlbGF5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gVGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKi9cbiAgcmVzZXQoXG4gICAgZHJpZnRYLFxuICAgIGRyaWZ0WSxcbiAgICBkcmlmdFosXG4gICAgZGVsYXkgPSBERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWSxcbiAgICBsaWZlLFxuICAgIGVhc2luZ1xuICApIHtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBBIFZlY3RvcjNEIHRoYXQgc3RvcmVzIHRoZSBkcmlmdCBwcm9wZXJ0aWVzLlxuICAgICAqIEB0eXBlIHtWZWN0b3IzRH1cbiAgICAgKi9cbiAgICB0aGlzLnJhbmRvbUZvcmNlID0gdGhpcy5ub3JtYWxpemVGb3JjZShcbiAgICAgIG5ldyBWZWN0b3IzRChkcmlmdFgsIGRyaWZ0WSwgZHJpZnRaKVxuICAgICk7XG4gICAgLyoqXG4gICAgICogQGRlc2MgQSBTcGFuIGNvbnRhaW5pbmcgdGhlIGRlbGF5IHN1cHBsaWVkLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMuZGVsYXlQYW4gPSBjcmVhdGVTcGFuKGRlbGF5KTtcbiAgICB0aGlzLnRpbWUgPSAwO1xuXG4gICAgbGlmZSAmJiBzdXBlci5yZXNldChsaWZlLCBlYXNpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIE11dGF0ZXMgdGhlIHBhcnRpY2xlLmFjY2VsZXJhdGlvbiBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpY2xlIC0gdGhlIHBhcnRpY2xlIHRvIGFwcGx5IHRoZSBiZWhhdmlvdXIgdG9cbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBlbmdpbmUgdGltZVxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gdGhlIHBhcnRpY2xlIGluZGV4XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgbXV0YXRlKHBhcnRpY2xlLCB0aW1lLCBpbmRleCkge1xuICAgIHRoaXMuZW5lcmdpemUocGFydGljbGUsIHRpbWUsIGluZGV4KTtcblxuICAgIHRoaXMudGltZSArPSB0aW1lO1xuXG4gICAgaWYgKHRoaXMudGltZSA+PSB0aGlzLmRlbGF5UGFuLmdldFZhbHVlKCkpIHtcbiAgICAgIGNvbnN0IGF4ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLXRoaXMucmFuZG9tRm9yY2UueCwgdGhpcy5yYW5kb21Gb3JjZS54KTtcbiAgICAgIGNvbnN0IGF5ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLXRoaXMucmFuZG9tRm9yY2UueSwgdGhpcy5yYW5kb21Gb3JjZS55KTtcbiAgICAgIGNvbnN0IGF6ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLXRoaXMucmFuZG9tRm9yY2UueiwgdGhpcy5yYW5kb21Gb3JjZS56KTtcblxuICAgICAgcGFydGljbGUuYWNjZWxlcmF0aW9uLmFkZFZhbHVlKGF4LCBheSwgYXopO1xuXG4gICAgICB0aGlzLnRpbWUgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB4LCB5LCB6LCBkZWxheSwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBSYW5kb21EcmlmdChcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgeixcbiAgICAgIGRlbGF5LFxuICAgICAgbGlmZSxcbiAgICAgIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLFxuICAgICAgaXNFbmFibGVkXG4gICAgKTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Repulsion.js",
    "content": "import Attraction from './Attraction';\nimport { Vector3D } from '../math';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_REPULSION as type } from './types';\n/**\n * Behaviour that causes particles to be repelled from a target position.\n *\n */\n\nexport default class Repulsion extends Attraction {\n  /**\n   * Constructs an Repulsion behaviour instance.\n   *\n   * @param {Vector3D} targetPosition - The position the particles will be repelled from\n   * @param {number} force - The repulsion force scalar multiplier\n   * @param {number} radius - The repulsion radius\n   * @param {number} life - The life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @return void\n   */\n  constructor(targetPosition, force, radius, life, easing, isEnabled = true) {\n    super(targetPosition, force, radius, life, easing, isEnabled);\n    /**\n     * @desc Repulsion is attraction with negative force.\n     * @type {number}\n     */\n\n    this.force *= -1;\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {Vector3D} targetPosition - the position the particles will be attracted to\n   * @param {number} force - the attraction force multiplier\n   * @param {number} radius - the attraction radius\n   * @param {number} life - the life of the particle\n   * @param {function} easing - The behaviour's decaying trend\n   * @return void\n   */\n\n\n  reset(targetPosition, force, radius, life, easing) {\n    super.reset(targetPosition, force, radius, life, easing);\n    this.force *= -1;\n  }\n  /**\n   * Creates a Body initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @property {number} json.x - The target position x value\n   * @property {number} json.y - The target position y value\n   * @property {number} json.z - The target position z value\n   * @property {number} json.force - The attraction force scalar multiplier\n   * @property {number} json.life - The life of the particle\n   * @property {string} json.easing - The behaviour's decaying trend\n   * @return {Body}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      x,\n      y,\n      z,\n      force,\n      radius,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Repulsion(new Vector3D(x, y, z), force, radius, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUmVwdWxzaW9uLmpzIl0sIm5hbWVzIjpbIkF0dHJhY3Rpb24iLCJWZWN0b3IzRCIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX1JFUFVMU0lPTiIsInR5cGUiLCJSZXB1bHNpb24iLCJjb25zdHJ1Y3RvciIsInRhcmdldFBvc2l0aW9uIiwiZm9yY2UiLCJyYWRpdXMiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJmcm9tSlNPTiIsImpzb24iLCJ4IiwieSIsInoiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFVBQVAsTUFBdUIsY0FBdkI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLFNBQXpCO0FBQ0EsU0FBU0MsZUFBVCxRQUFnQyxTQUFoQztBQUNBLFNBQVNDLHdCQUF3QixJQUFJQyxJQUFyQyxRQUFpRCxTQUFqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkwsVUFBeEIsQ0FBbUM7QUFDaEQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxjQUFELEVBQWlCQyxLQUFqQixFQUF3QkMsTUFBeEIsRUFBZ0NDLElBQWhDLEVBQXNDQyxNQUF0QyxFQUE4Q0MsU0FBUyxHQUFHLElBQTFELEVBQWdFO0FBQ3pFLFVBQU1MLGNBQU4sRUFBc0JDLEtBQXRCLEVBQTZCQyxNQUE3QixFQUFxQ0MsSUFBckMsRUFBMkNDLE1BQTNDLEVBQW1EQyxTQUFuRDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtKLEtBQUwsSUFBYyxDQUFDLENBQWY7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSixJQUFMLEdBQVlBLElBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRVMsRUFBQUEsS0FBSyxDQUFDTixjQUFELEVBQWlCQyxLQUFqQixFQUF3QkMsTUFBeEIsRUFBZ0NDLElBQWhDLEVBQXNDQyxNQUF0QyxFQUE4QztBQUNqRCxVQUFNRSxLQUFOLENBQVlOLGNBQVosRUFBNEJDLEtBQTVCLEVBQW1DQyxNQUFuQyxFQUEyQ0MsSUFBM0MsRUFBaURDLE1BQWpEO0FBQ0EsU0FBS0gsS0FBTCxJQUFjLENBQUMsQ0FBZjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUk0sUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFQyxNQUFBQSxDQUFGO0FBQUtDLE1BQUFBLENBQUw7QUFBUUMsTUFBQUEsQ0FBUjtBQUFXVixNQUFBQSxLQUFYO0FBQWtCQyxNQUFBQSxNQUFsQjtBQUEwQkMsTUFBQUEsSUFBMUI7QUFBZ0NDLE1BQUFBLE1BQWhDO0FBQXdDQyxNQUFBQSxTQUFTLEdBQUc7QUFBcEQsUUFBNkRHLElBQW5FO0FBRUEsV0FBTyxJQUFJVixTQUFKLENBQ0wsSUFBSUosUUFBSixDQUFhZSxDQUFiLEVBQWdCQyxDQUFoQixFQUFtQkMsQ0FBbkIsQ0FESyxFQUVMVixLQUZLLEVBR0xDLE1BSEssRUFJTEMsSUFKSyxFQUtMUixlQUFlLENBQUNTLE1BQUQsQ0FMVixFQU1MQyxTQU5LLENBQVA7QUFRRDs7QUFqRStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF0dHJhY3Rpb24gZnJvbSAnLi9BdHRyYWN0aW9uJztcbmltcG9ydCB7IFZlY3RvcjNEIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX1JFUFVMU0lPTiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG4vKipcbiAqIEJlaGF2aW91ciB0aGF0IGNhdXNlcyBwYXJ0aWNsZXMgdG8gYmUgcmVwZWxsZWQgZnJvbSBhIHRhcmdldCBwb3NpdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlcHVsc2lvbiBleHRlbmRzIEF0dHJhY3Rpb24ge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBSZXB1bHNpb24gYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSB0YXJnZXRQb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiB0aGUgcGFydGljbGVzIHdpbGwgYmUgcmVwZWxsZWQgZnJvbVxuICAgKiBAcGFyYW0ge251bWJlcn0gZm9yY2UgLSBUaGUgcmVwdWxzaW9uIGZvcmNlIHNjYWxhciBtdWx0aXBsaWVyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByYWRpdXMgLSBUaGUgcmVwdWxzaW9uIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YXJnZXRQb3NpdGlvbiwgZm9yY2UsIHJhZGl1cywgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodGFyZ2V0UG9zaXRpb24sIGZvcmNlLCByYWRpdXMsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFJlcHVsc2lvbiBpcyBhdHRyYWN0aW9uIHdpdGggbmVnYXRpdmUgZm9yY2UuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmZvcmNlICo9IC0xO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7VmVjdG9yM0R9IHRhcmdldFBvc2l0aW9uIC0gdGhlIHBvc2l0aW9uIHRoZSBwYXJ0aWNsZXMgd2lsbCBiZSBhdHRyYWN0ZWQgdG9cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZvcmNlIC0gdGhlIGF0dHJhY3Rpb24gZm9yY2UgbXVsdGlwbGllclxuICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gdGhlIGF0dHJhY3Rpb24gcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHRhcmdldFBvc2l0aW9uLCBmb3JjZSwgcmFkaXVzLCBsaWZlLCBlYXNpbmcpIHtcbiAgICBzdXBlci5yZXNldCh0YXJnZXRQb3NpdGlvbiwgZm9yY2UsIHJhZGl1cywgbGlmZSwgZWFzaW5nKTtcbiAgICB0aGlzLmZvcmNlICo9IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBCb2R5IGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnggLSBUaGUgdGFyZ2V0IHBvc2l0aW9uIHggdmFsdWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ueSAtIFRoZSB0YXJnZXQgcG9zaXRpb24geSB2YWx1ZVxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi56IC0gVGhlIHRhcmdldCBwb3NpdGlvbiB6IHZhbHVlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmZvcmNlIC0gVGhlIGF0dHJhY3Rpb24gZm9yY2Ugc2NhbGFyIG11bHRpcGxpZXJcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ubGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ30ganNvbi5lYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB7Qm9keX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB4LCB5LCB6LCBmb3JjZSwgcmFkaXVzLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJlcHVsc2lvbihcbiAgICAgIG5ldyBWZWN0b3IzRCh4LCB5LCB6KSxcbiAgICAgIGZvcmNlLFxuICAgICAgcmFkaXVzLFxuICAgICAgbGlmZSxcbiAgICAgIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLFxuICAgICAgaXNFbmFibGVkXG4gICAgKTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Rotate.js",
    "content": "import { DR, PI } from '../constants';\nimport { MathUtils, Vector3D, createSpan } from '../math';\nimport Behaviour from './Behaviour';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_ROTATE as type } from './types';\n/**\n * Behaviour that rotates particles.\n */\n\nexport default class Rotate extends Behaviour {\n  /**\n   * Constructs a Rotate behaviour instance.\n   *\n   * @param {number} x - X axis rotation\n   * @param {number} y - Y axis rotation\n   * @param {number} z - Z axis rotation\n   * @param {number} life - The life of the behaviour\n   * @param {function} easing - The easing equation to use for transforms\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(x, y, z, life = Infinity, easing, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    this.reset(x, y, z);\n  }\n  /**\n   * Gets the rotation type.\n   *\n   * @return {string}\n   */\n\n\n  get rotationType() {\n    return this._rotationType;\n  }\n  /**\n   * Sets the rotation type.\n   *\n   * @param {string}\n   * @return void\n   */\n\n\n  set rotationType(rotationType) {\n    /**\n     * @desc The rotation type. ENUM of ['same', 'set', 'to', 'add'].\n     * @type {string}\n     */\n    this._rotationType = rotationType;\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {number} x - X axis rotation\n   * @param {number} y - Y axis rotation\n   * @param {number} z - Z axis rotation\n   * @param {number} life - the life of the behaviour\n   * @param {function} easing - the easing equation to use for transforms\n   * @return void\n   */\n\n\n  reset(x, y, z, life, easing) {\n    /**\n     * @desc X axis rotation.\n     * @type {number|Span}\n     */\n    this.x = x || 0;\n    /**\n     * @desc Y axis rotation.\n     * @type {number|Span}\n     */\n\n    this.y = y || 0;\n    /**\n     * @desc Z axis rotation.\n     * @type {number|Span}\n     */\n\n    this.z = z || 0;\n\n    if (x === undefined || x == 'same') {\n      this.rotationType = 'same';\n    } else if (y == undefined) {\n      this.rotationType = 'set';\n    } else if (z === undefined) {\n      this.rotationType = 'to';\n    } else {\n      this.rotationType = 'add';\n      this.x = createSpan(this.x * DR);\n      this.y = createSpan(this.y * DR);\n      this.z = createSpan(this.z * DR);\n    }\n\n    life && super.reset(life, easing);\n  }\n  /**\n   * Initializes the behaviour on a particle.\n   *\n   * @param {object} particle - the particle to initialize the behaviour on\n   * @return void\n   */\n\n\n  initialize(particle) {\n    switch (this.rotationType) {\n      case 'same':\n        break;\n\n      case 'set':\n        this._setRotation(particle.rotation, this.x);\n\n        break;\n\n      case 'to':\n        particle.transform.fR = particle.transform.fR || new Vector3D();\n        particle.transform.tR = particle.transform.tR || new Vector3D();\n\n        this._setRotation(particle.transform.fR, this.x);\n\n        this._setRotation(particle.transform.tR, this.y);\n\n        break;\n\n      case 'add':\n        particle.transform.addR = new Vector3D(this.x.getValue(), this.y.getValue(), this.z.getValue());\n        break;\n    }\n  }\n  /**\n   * Sets the particle's rotation prior to the behaviour being applied.\n   *\n   * NOTE It's hard to see here, but this is mutating the particle's rotation\n   * even though the particle is not being passed in directly.\n   *\n   * NOTE the else if below will never be reached because the value being passed in\n   * will never be of type Vector3D.\n   *\n   * @param {Vector3D} particleRotation - the particle's rotation vector\n   * @param {string|number} value - the value to set the rotation value to, if 'random'\n   * rotation is randomised\n   * @return void\n   */\n\n\n  _setRotation(particleRotation, value) {\n    particleRotation = particleRotation || new Vector3D();\n\n    if (value == 'random') {\n      var x = MathUtils.randomAToB(-PI, PI);\n      var y = MathUtils.randomAToB(-PI, PI);\n      var z = MathUtils.randomAToB(-PI, PI);\n      particleRotation.set(x, y, z);\n    } // we can't ever get here because value will never be a Vector3D!\n    // consider refactoring to\n    //  if (value instance of Span) { vec3.add(value.getValue()); }\n    else if (value instanceof Vector3D) {\n      particleRotation.copy(value);\n    }\n  }\n  /**\n   * Mutates the particle.rotation property.\n   *\n   * @see http://stackoverflow.com/questions/21622956/how-to-convert-direction-vector-to-euler-angles\n   * @param {object} particle - the particle to apply the behaviour to\n   * @param {number} time - engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n\n    switch (this.rotationType) {\n      // orients the particle in the direction it is moving\n      case 'same':\n        if (!particle.rotation) {\n          particle.rotation = new Vector3D();\n        }\n\n        particle.rotation.copy(particle.velocity);\n        break;\n\n      case 'set':\n        //\n        break;\n\n      case 'to':\n        particle.rotation.x = MathUtils.lerp(particle.transform.fR.x, particle.transform.tR.x, this.energy);\n        particle.rotation.y = MathUtils.lerp(particle.transform.fR.y, particle.transform.tR.y, this.energy);\n        particle.rotation.z = MathUtils.lerp(particle.transform.fR.z, particle.transform.tR.z, this.energy);\n        break;\n\n      case 'add':\n        particle.rotation.add(particle.transform.addR);\n        break;\n    }\n  }\n\n  static fromJSON(json) {\n    const {\n      x,\n      y,\n      z,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Rotate(x, y, z, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUm90YXRlLmpzIl0sIm5hbWVzIjpbIkRSIiwiUEkiLCJNYXRoVXRpbHMiLCJWZWN0b3IzRCIsImNyZWF0ZVNwYW4iLCJCZWhhdmlvdXIiLCJnZXRFYXNpbmdCeU5hbWUiLCJCRUhBVklPVVJfVFlQRV9ST1RBVEUiLCJ0eXBlIiwiUm90YXRlIiwiY29uc3RydWN0b3IiLCJ4IiwieSIsInoiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJyb3RhdGlvblR5cGUiLCJfcm90YXRpb25UeXBlIiwidW5kZWZpbmVkIiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwiX3NldFJvdGF0aW9uIiwicm90YXRpb24iLCJ0cmFuc2Zvcm0iLCJmUiIsInRSIiwiYWRkUiIsImdldFZhbHVlIiwicGFydGljbGVSb3RhdGlvbiIsInZhbHVlIiwicmFuZG9tQVRvQiIsInNldCIsImNvcHkiLCJtdXRhdGUiLCJ0aW1lIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsInZlbG9jaXR5IiwibGVycCIsImVuZXJneSIsImFkZCIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsRUFBVCxFQUFhQyxFQUFiLFFBQXVCLGNBQXZCO0FBQ0EsU0FBU0MsU0FBVCxFQUFvQkMsUUFBcEIsRUFBOEJDLFVBQTlCLFFBQWdELFNBQWhEO0FBRUEsT0FBT0MsU0FBUCxNQUFzQixhQUF0QjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsU0FBaEM7QUFDQSxTQUFTQyxxQkFBcUIsSUFBSUMsSUFBbEMsUUFBOEMsU0FBOUM7QUFFQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxNQUFOLFNBQXFCSixTQUFyQixDQUErQjtBQUM1QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VLLEVBQUFBLFdBQVcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsSUFBVixFQUFnQkMsTUFBaEIsRUFBd0JDLFNBQVMsR0FBRyxJQUFwQyxFQUEwQztBQUNuRCxVQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JQLElBQXBCLEVBQTBCUSxTQUExQjtBQUVBLFNBQUtDLEtBQUwsQ0FBV04sQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2tCLE1BQVpLLFlBQVksR0FBRztBQUNqQixXQUFPLEtBQUtDLGFBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2tCLE1BQVpELFlBQVksQ0FBQ0EsWUFBRCxFQUFlO0FBQzdCO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS0MsYUFBTCxHQUFxQkQsWUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUQsRUFBQUEsS0FBSyxDQUFDTixDQUFELEVBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxJQUFWLEVBQWdCQyxNQUFoQixFQUF3QjtBQUMzQjtBQUNKO0FBQ0E7QUFDQTtBQUNJLFNBQUtKLENBQUwsR0FBU0EsQ0FBQyxJQUFJLENBQWQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxDQUFMLEdBQVNBLENBQUMsSUFBSSxDQUFkO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsQ0FBTCxHQUFTQSxDQUFDLElBQUksQ0FBZDs7QUFFQSxRQUFJRixDQUFDLEtBQUtTLFNBQU4sSUFBbUJULENBQUMsSUFBSSxNQUE1QixFQUFvQztBQUNsQyxXQUFLTyxZQUFMLEdBQW9CLE1BQXBCO0FBQ0QsS0FGRCxNQUVPLElBQUlOLENBQUMsSUFBSVEsU0FBVCxFQUFvQjtBQUN6QixXQUFLRixZQUFMLEdBQW9CLEtBQXBCO0FBQ0QsS0FGTSxNQUVBLElBQUlMLENBQUMsS0FBS08sU0FBVixFQUFxQjtBQUMxQixXQUFLRixZQUFMLEdBQW9CLElBQXBCO0FBQ0QsS0FGTSxNQUVBO0FBQ0wsV0FBS0EsWUFBTCxHQUFvQixLQUFwQjtBQUNBLFdBQUtQLENBQUwsR0FBU1AsVUFBVSxDQUFDLEtBQUtPLENBQUwsR0FBU1gsRUFBVixDQUFuQjtBQUNBLFdBQUtZLENBQUwsR0FBU1IsVUFBVSxDQUFDLEtBQUtRLENBQUwsR0FBU1osRUFBVixDQUFuQjtBQUNBLFdBQUthLENBQUwsR0FBU1QsVUFBVSxDQUFDLEtBQUtTLENBQUwsR0FBU2IsRUFBVixDQUFuQjtBQUNEOztBQUVEYyxJQUFBQSxJQUFJLElBQUksTUFBTUcsS0FBTixDQUFZSCxJQUFaLEVBQWtCQyxNQUFsQixDQUFSO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTSxFQUFBQSxVQUFVLENBQUNDLFFBQUQsRUFBVztBQUNuQixZQUFRLEtBQUtKLFlBQWI7QUFDRSxXQUFLLE1BQUw7QUFDRTs7QUFFRixXQUFLLEtBQUw7QUFDRSxhQUFLSyxZQUFMLENBQWtCRCxRQUFRLENBQUNFLFFBQTNCLEVBQXFDLEtBQUtiLENBQTFDOztBQUNBOztBQUVGLFdBQUssSUFBTDtBQUNFVyxRQUFBQSxRQUFRLENBQUNHLFNBQVQsQ0FBbUJDLEVBQW5CLEdBQXdCSixRQUFRLENBQUNHLFNBQVQsQ0FBbUJDLEVBQW5CLElBQXlCLElBQUl2QixRQUFKLEVBQWpEO0FBQ0FtQixRQUFBQSxRQUFRLENBQUNHLFNBQVQsQ0FBbUJFLEVBQW5CLEdBQXdCTCxRQUFRLENBQUNHLFNBQVQsQ0FBbUJFLEVBQW5CLElBQXlCLElBQUl4QixRQUFKLEVBQWpEOztBQUNBLGFBQUtvQixZQUFMLENBQWtCRCxRQUFRLENBQUNHLFNBQVQsQ0FBbUJDLEVBQXJDLEVBQXlDLEtBQUtmLENBQTlDOztBQUNBLGFBQUtZLFlBQUwsQ0FBa0JELFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkUsRUFBckMsRUFBeUMsS0FBS2YsQ0FBOUM7O0FBQ0E7O0FBRUYsV0FBSyxLQUFMO0FBQ0VVLFFBQUFBLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkcsSUFBbkIsR0FBMEIsSUFBSXpCLFFBQUosQ0FDeEIsS0FBS1EsQ0FBTCxDQUFPa0IsUUFBUCxFQUR3QixFQUV4QixLQUFLakIsQ0FBTCxDQUFPaUIsUUFBUCxFQUZ3QixFQUd4QixLQUFLaEIsQ0FBTCxDQUFPZ0IsUUFBUCxFQUh3QixDQUExQjtBQUtBO0FBckJKO0FBdUJEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VOLEVBQUFBLFlBQVksQ0FBQ08sZ0JBQUQsRUFBbUJDLEtBQW5CLEVBQTBCO0FBQ3BDRCxJQUFBQSxnQkFBZ0IsR0FBR0EsZ0JBQWdCLElBQUksSUFBSTNCLFFBQUosRUFBdkM7O0FBQ0EsUUFBSTRCLEtBQUssSUFBSSxRQUFiLEVBQXVCO0FBQ3JCLFVBQUlwQixDQUFDLEdBQUdULFNBQVMsQ0FBQzhCLFVBQVYsQ0FBcUIsQ0FBQy9CLEVBQXRCLEVBQTBCQSxFQUExQixDQUFSO0FBQ0EsVUFBSVcsQ0FBQyxHQUFHVixTQUFTLENBQUM4QixVQUFWLENBQXFCLENBQUMvQixFQUF0QixFQUEwQkEsRUFBMUIsQ0FBUjtBQUNBLFVBQUlZLENBQUMsR0FBR1gsU0FBUyxDQUFDOEIsVUFBVixDQUFxQixDQUFDL0IsRUFBdEIsRUFBMEJBLEVBQTFCLENBQVI7QUFFQTZCLE1BQUFBLGdCQUFnQixDQUFDRyxHQUFqQixDQUFxQnRCLENBQXJCLEVBQXdCQyxDQUF4QixFQUEyQkMsQ0FBM0I7QUFDRCxLQU5ELENBT0E7QUFDQTtBQUNBO0FBVEEsU0FVSyxJQUFJa0IsS0FBSyxZQUFZNUIsUUFBckIsRUFBK0I7QUFDbEMyQixNQUFBQSxnQkFBZ0IsQ0FBQ0ksSUFBakIsQ0FBc0JILEtBQXRCO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLE1BQU0sQ0FBQ2IsUUFBRCxFQUFXYyxJQUFYLEVBQWlCQyxLQUFqQixFQUF3QjtBQUM1QixTQUFLQyxRQUFMLENBQWNoQixRQUFkLEVBQXdCYyxJQUF4QixFQUE4QkMsS0FBOUI7O0FBRUEsWUFBUSxLQUFLbkIsWUFBYjtBQUNFO0FBQ0EsV0FBSyxNQUFMO0FBQ0UsWUFBSSxDQUFDSSxRQUFRLENBQUNFLFFBQWQsRUFBd0I7QUFDdEJGLFVBQUFBLFFBQVEsQ0FBQ0UsUUFBVCxHQUFvQixJQUFJckIsUUFBSixFQUFwQjtBQUNEOztBQUVEbUIsUUFBQUEsUUFBUSxDQUFDRSxRQUFULENBQWtCVSxJQUFsQixDQUF1QlosUUFBUSxDQUFDaUIsUUFBaEM7QUFDQTs7QUFFRixXQUFLLEtBQUw7QUFDRTtBQUNBOztBQUVGLFdBQUssSUFBTDtBQUNFakIsUUFBQUEsUUFBUSxDQUFDRSxRQUFULENBQWtCYixDQUFsQixHQUFzQlQsU0FBUyxDQUFDc0MsSUFBVixDQUNwQmxCLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkMsRUFBbkIsQ0FBc0JmLENBREYsRUFFcEJXLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkUsRUFBbkIsQ0FBc0JoQixDQUZGLEVBR3BCLEtBQUs4QixNQUhlLENBQXRCO0FBS0FuQixRQUFBQSxRQUFRLENBQUNFLFFBQVQsQ0FBa0JaLENBQWxCLEdBQXNCVixTQUFTLENBQUNzQyxJQUFWLENBQ3BCbEIsUUFBUSxDQUFDRyxTQUFULENBQW1CQyxFQUFuQixDQUFzQmQsQ0FERixFQUVwQlUsUUFBUSxDQUFDRyxTQUFULENBQW1CRSxFQUFuQixDQUFzQmYsQ0FGRixFQUdwQixLQUFLNkIsTUFIZSxDQUF0QjtBQUtBbkIsUUFBQUEsUUFBUSxDQUFDRSxRQUFULENBQWtCWCxDQUFsQixHQUFzQlgsU0FBUyxDQUFDc0MsSUFBVixDQUNwQmxCLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkMsRUFBbkIsQ0FBc0JiLENBREYsRUFFcEJTLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkUsRUFBbkIsQ0FBc0JkLENBRkYsRUFHcEIsS0FBSzRCLE1BSGUsQ0FBdEI7QUFLQTs7QUFFRixXQUFLLEtBQUw7QUFDRW5CLFFBQUFBLFFBQVEsQ0FBQ0UsUUFBVCxDQUFrQmtCLEdBQWxCLENBQXNCcEIsUUFBUSxDQUFDRyxTQUFULENBQW1CRyxJQUF6QztBQUNBO0FBbENKO0FBb0NEOztBQUVjLFNBQVJlLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRWpDLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdDLE1BQUFBLElBQVg7QUFBaUJDLE1BQUFBLE1BQWpCO0FBQXlCQyxNQUFBQSxTQUFTLEdBQUc7QUFBckMsUUFBOEM0QixJQUFwRDtBQUVBLFdBQU8sSUFBSW5DLE1BQUosQ0FBV0UsQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQixFQUFvQkMsSUFBcEIsRUFBMEJSLGVBQWUsQ0FBQ1MsTUFBRCxDQUF6QyxFQUFtREMsU0FBbkQsQ0FBUDtBQUNEOztBQTNNMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEUiwgUEkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWF0aFV0aWxzLCBWZWN0b3IzRCwgY3JlYXRlU3BhbiB9IGZyb20gJy4uL21hdGgnO1xuXG5pbXBvcnQgQmVoYXZpb3VyIGZyb20gJy4vQmVoYXZpb3VyJztcbmltcG9ydCB7IGdldEVhc2luZ0J5TmFtZSB9IGZyb20gJy4uL2Vhc2UnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfUk9UQVRFIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCByb3RhdGVzIHBhcnRpY2xlcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm90YXRlIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBSb3RhdGUgYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFggYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFkgYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0geiAtIFogYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih4LCB5LCB6LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICB0aGlzLnJlc2V0KHgsIHksIHopO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJvdGF0aW9uIHR5cGUuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIGdldCByb3RhdGlvblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JvdGF0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByb3RhdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ31cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBzZXQgcm90YXRpb25UeXBlKHJvdGF0aW9uVHlwZSkge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByb3RhdGlvbiB0eXBlLiBFTlVNIG9mIFsnc2FtZScsICdzZXQnLCAndG8nLCAnYWRkJ10uXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLl9yb3RhdGlvblR5cGUgPSByb3RhdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBiZWhhdmlvdXIgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBYIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IHogLSBaIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSB0aGUgbGlmZSBvZiB0aGUgYmVoYXZpb3VyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIHRoZSBlYXNpbmcgZXF1YXRpb24gdG8gdXNlIGZvciB0cmFuc2Zvcm1zXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgcmVzZXQoeCwgeSwgeiwgbGlmZSwgZWFzaW5nKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgWCBheGlzIHJvdGF0aW9uLlxuICAgICAqIEB0eXBlIHtudW1iZXJ8U3Bhbn1cbiAgICAgKi9cbiAgICB0aGlzLnggPSB4IHx8IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBZIGF4aXMgcm90YXRpb24uXG4gICAgICogQHR5cGUge251bWJlcnxTcGFufVxuICAgICAqL1xuICAgIHRoaXMueSA9IHkgfHwgMDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFogYXhpcyByb3RhdGlvbi5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfFNwYW59XG4gICAgICovXG4gICAgdGhpcy56ID0geiB8fCAwO1xuXG4gICAgaWYgKHggPT09IHVuZGVmaW5lZCB8fCB4ID09ICdzYW1lJykge1xuICAgICAgdGhpcy5yb3RhdGlvblR5cGUgPSAnc2FtZSc7XG4gICAgfSBlbHNlIGlmICh5ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yb3RhdGlvblR5cGUgPSAnc2V0JztcbiAgICB9IGVsc2UgaWYgKHogPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yb3RhdGlvblR5cGUgPSAndG8nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdGF0aW9uVHlwZSA9ICdhZGQnO1xuICAgICAgdGhpcy54ID0gY3JlYXRlU3Bhbih0aGlzLnggKiBEUik7XG4gICAgICB0aGlzLnkgPSBjcmVhdGVTcGFuKHRoaXMueSAqIERSKTtcbiAgICAgIHRoaXMueiA9IGNyZWF0ZVNwYW4odGhpcy56ICogRFIpO1xuICAgIH1cblxuICAgIGxpZmUgJiYgc3VwZXIucmVzZXQobGlmZSwgZWFzaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgYmVoYXZpb3VyIG9uIGEgcGFydGljbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBiZWhhdmlvdXIgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgc3dpdGNoICh0aGlzLnJvdGF0aW9uVHlwZSkge1xuICAgICAgY2FzZSAnc2FtZSc6XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzZXQnOlxuICAgICAgICB0aGlzLl9zZXRSb3RhdGlvbihwYXJ0aWNsZS5yb3RhdGlvbiwgdGhpcy54KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3RvJzpcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmZSID0gcGFydGljbGUudHJhbnNmb3JtLmZSIHx8IG5ldyBWZWN0b3IzRCgpO1xuICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0udFIgPSBwYXJ0aWNsZS50cmFuc2Zvcm0udFIgfHwgbmV3IFZlY3RvcjNEKCk7XG4gICAgICAgIHRoaXMuX3NldFJvdGF0aW9uKHBhcnRpY2xlLnRyYW5zZm9ybS5mUiwgdGhpcy54KTtcbiAgICAgICAgdGhpcy5fc2V0Um90YXRpb24ocGFydGljbGUudHJhbnNmb3JtLnRSLCB0aGlzLnkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnYWRkJzpcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmFkZFIgPSBuZXcgVmVjdG9yM0QoXG4gICAgICAgICAgdGhpcy54LmdldFZhbHVlKCksXG4gICAgICAgICAgdGhpcy55LmdldFZhbHVlKCksXG4gICAgICAgICAgdGhpcy56LmdldFZhbHVlKClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnRpY2xlJ3Mgcm90YXRpb24gcHJpb3IgdG8gdGhlIGJlaGF2aW91ciBiZWluZyBhcHBsaWVkLlxuICAgKlxuICAgKiBOT1RFIEl0J3MgaGFyZCB0byBzZWUgaGVyZSwgYnV0IHRoaXMgaXMgbXV0YXRpbmcgdGhlIHBhcnRpY2xlJ3Mgcm90YXRpb25cbiAgICogZXZlbiB0aG91Z2ggdGhlIHBhcnRpY2xlIGlzIG5vdCBiZWluZyBwYXNzZWQgaW4gZGlyZWN0bHkuXG4gICAqXG4gICAqIE5PVEUgdGhlIGVsc2UgaWYgYmVsb3cgd2lsbCBuZXZlciBiZSByZWFjaGVkIGJlY2F1c2UgdGhlIHZhbHVlIGJlaW5nIHBhc3NlZCBpblxuICAgKiB3aWxsIG5ldmVyIGJlIG9mIHR5cGUgVmVjdG9yM0QuXG4gICAqXG4gICAqIEBwYXJhbSB7VmVjdG9yM0R9IHBhcnRpY2xlUm90YXRpb24gLSB0aGUgcGFydGljbGUncyByb3RhdGlvbiB2ZWN0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2YWx1ZSAtIHRoZSB2YWx1ZSB0byBzZXQgdGhlIHJvdGF0aW9uIHZhbHVlIHRvLCBpZiAncmFuZG9tJ1xuICAgKiByb3RhdGlvbiBpcyByYW5kb21pc2VkXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgX3NldFJvdGF0aW9uKHBhcnRpY2xlUm90YXRpb24sIHZhbHVlKSB7XG4gICAgcGFydGljbGVSb3RhdGlvbiA9IHBhcnRpY2xlUm90YXRpb24gfHwgbmV3IFZlY3RvcjNEKCk7XG4gICAgaWYgKHZhbHVlID09ICdyYW5kb20nKSB7XG4gICAgICB2YXIgeCA9IE1hdGhVdGlscy5yYW5kb21BVG9CKC1QSSwgUEkpO1xuICAgICAgdmFyIHkgPSBNYXRoVXRpbHMucmFuZG9tQVRvQigtUEksIFBJKTtcbiAgICAgIHZhciB6ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLVBJLCBQSSk7XG5cbiAgICAgIHBhcnRpY2xlUm90YXRpb24uc2V0KHgsIHksIHopO1xuICAgIH1cbiAgICAvLyB3ZSBjYW4ndCBldmVyIGdldCBoZXJlIGJlY2F1c2UgdmFsdWUgd2lsbCBuZXZlciBiZSBhIFZlY3RvcjNEIVxuICAgIC8vIGNvbnNpZGVyIHJlZmFjdG9yaW5nIHRvXG4gICAgLy8gIGlmICh2YWx1ZSBpbnN0YW5jZSBvZiBTcGFuKSB7IHZlYzMuYWRkKHZhbHVlLmdldFZhbHVlKCkpOyB9XG4gICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBWZWN0b3IzRCkge1xuICAgICAgcGFydGljbGVSb3RhdGlvbi5jb3B5KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTXV0YXRlcyB0aGUgcGFydGljbGUucm90YXRpb24gcHJvcGVydHkuXG4gICAqXG4gICAqIEBzZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMTYyMjk1Ni9ob3ctdG8tY29udmVydC1kaXJlY3Rpb24tdmVjdG9yLXRvLWV1bGVyLWFuZ2xlc1xuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gYXBwbHkgdGhlIGJlaGF2aW91ciB0b1xuICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIGVuZ2luZSB0aW1lXG4gICAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSB0aGUgcGFydGljbGUgaW5kZXhcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBtdXRhdGUocGFydGljbGUsIHRpbWUsIGluZGV4KSB7XG4gICAgdGhpcy5lbmVyZ2l6ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpO1xuXG4gICAgc3dpdGNoICh0aGlzLnJvdGF0aW9uVHlwZSkge1xuICAgICAgLy8gb3JpZW50cyB0aGUgcGFydGljbGUgaW4gdGhlIGRpcmVjdGlvbiBpdCBpcyBtb3ZpbmdcbiAgICAgIGNhc2UgJ3NhbWUnOlxuICAgICAgICBpZiAoIXBhcnRpY2xlLnJvdGF0aW9uKSB7XG4gICAgICAgICAgcGFydGljbGUucm90YXRpb24gPSBuZXcgVmVjdG9yM0QoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLmNvcHkocGFydGljbGUudmVsb2NpdHkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgLy9cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3RvJzpcbiAgICAgICAgcGFydGljbGUucm90YXRpb24ueCA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5mUi54LFxuICAgICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS50Ui54LFxuICAgICAgICAgIHRoaXMuZW5lcmd5XG4gICAgICAgICk7XG4gICAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLnkgPSBNYXRoVXRpbHMubGVycChcbiAgICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uZlIueSxcbiAgICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0udFIueSxcbiAgICAgICAgICB0aGlzLmVuZXJneVxuICAgICAgICApO1xuICAgICAgICBwYXJ0aWNsZS5yb3RhdGlvbi56ID0gTWF0aFV0aWxzLmxlcnAoXG4gICAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmZSLnosXG4gICAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLnRSLnosXG4gICAgICAgICAgdGhpcy5lbmVyZ3lcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2FkZCc6XG4gICAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLmFkZChwYXJ0aWNsZS50cmFuc2Zvcm0uYWRkUik7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB4LCB5LCB6LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJvdGF0ZSh4LCB5LCB6LCBsaWZlLCBnZXRFYXNpbmdCeU5hbWUoZWFzaW5nKSwgaXNFbmFibGVkKTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Scale.js",
    "content": "import { MathUtils, createSpan } from '../math';\nimport Behaviour from './Behaviour';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_SCALE as type } from './types';\n/**\n * Behaviour that scales particles.\n *\n */\n\nexport default class Scale extends Behaviour {\n  /**\n   * Constructs a Scale behaviour instance.\n   *\n   * @param {number | Span} scaleA - the starting scale value\n   * @param {?number} scaleB - the ending scale value\n   * @param {number} life - the life of the behaviour\n   * @param {function} easing - the easing equation to use for transforms\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(scaleA, scaleB, life=Infinity, easing, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    this.reset(scaleA, scaleB);\n  }\n  /**\n   * Gets the _same property which determines if the scale props are the same.\n   *\n   * @return {boolean}\n   */\n\n\n  get same() {\n    return this._same;\n  }\n  /**\n   * Sets the _same property which determines if the scale props are the same.\n   *\n   * @param {boolean} same\n   * @return {boolean}\n   */\n\n\n  set same(same) {\n    /**\n     * @type {boolean}\n     */\n    this._same = same;\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {number} scaleA - the starting scale value\n   * @param {?number} scaleB - the ending scale value\n   * @param {number} life - the life of the behaviour\n   * @param {function} easing - the easing equation to use for transforms\n   * @return void\n   */\n\n\n  reset(scaleA, scaleB, life, easing) {\n    this.same = scaleB === null || scaleB === undefined ? true : false;\n    /**\n     * @desc The starting scale.\n     * @type {Span}\n     */\n\n    this.scaleA = createSpan(scaleA || 1);\n    /**\n     * @desc The ending scale.\n     * @type {Span}\n     */\n\n    this.scaleB = createSpan(scaleB);\n    life && super.reset(life, easing);\n  }\n  /**\n   * Initializes the behaviour on a particle.\n   * Stores initial values for comparison and mutation in the applyBehaviour method.\n   *\n   * @param {object} particle - the particle to initialize the behaviour on\n   * @return void\n   */\n\n\n  initialize(particle) {\n    particle.transform.scaleA = this.scaleA.getValue();\n    particle.transform.oldRadius = particle.radius;\n    particle.transform.scaleB = this.same ? particle.transform.scaleA : this.scaleB.getValue();\n  }\n  /**\n   * Applies the behaviour to the particle.\n   * Mutates the particle's scale and its radius according to this scale.\n   *\n   * @param {object} particle - the particle to apply the behaviour to\n   * @param {number} time - engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n    particle.scale = MathUtils.lerp(particle.transform.scaleA, particle.transform.scaleB, this.energy);\n\n    if (particle.scale < 0.0005) {\n      particle.scale = 0;\n    }\n\n    particle.radius = particle.transform.oldRadius * particle.scale;\n  }\n  /**\n   * Returns a new instance of the behaviour from the JSON object passed.\n   *\n   * @param {object} json - JSON object containing the required constructor properties\n   * @return {Spring}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      scaleA,\n      scaleB,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Scale(scaleA, scaleB, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvU2NhbGUuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiY3JlYXRlU3BhbiIsIkJlaGF2aW91ciIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX1NDQUxFIiwidHlwZSIsIlNjYWxlIiwiY29uc3RydWN0b3IiLCJzY2FsZUEiLCJzY2FsZUIiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJzYW1lIiwiX3NhbWUiLCJ1bmRlZmluZWQiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJ0cmFuc2Zvcm0iLCJnZXRWYWx1ZSIsIm9sZFJhZGl1cyIsInJhZGl1cyIsIm11dGF0ZSIsInRpbWUiLCJpbmRleCIsImVuZXJnaXplIiwic2NhbGUiLCJsZXJwIiwiZW5lcmd5IiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFULEVBQW9CQyxVQUFwQixRQUFzQyxTQUF0QztBQUVBLE9BQU9DLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0Msb0JBQW9CLElBQUlDLElBQWpDLFFBQTZDLFNBQTdDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxLQUFOLFNBQW9CSixTQUFwQixDQUE4QjtBQUMzQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxFQUFpQkMsSUFBakIsRUFBdUJDLE1BQXZCLEVBQStCQyxTQUFTLEdBQUcsSUFBM0MsRUFBaUQ7QUFDMUQsVUFBTUYsSUFBTixFQUFZQyxNQUFaLEVBQW9CTixJQUFwQixFQUEwQk8sU0FBMUI7QUFFQSxTQUFLQyxLQUFMLENBQVdMLE1BQVgsRUFBbUJDLE1BQW5CO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDVSxNQUFKSyxJQUFJLEdBQUc7QUFDVCxXQUFPLEtBQUtDLEtBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ1UsTUFBSkQsSUFBSSxDQUFDQSxJQUFELEVBQU87QUFDYjtBQUNKO0FBQ0E7QUFDSSxTQUFLQyxLQUFMLEdBQWFELElBQWI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VELEVBQUFBLEtBQUssQ0FBQ0wsTUFBRCxFQUFTQyxNQUFULEVBQWlCQyxJQUFqQixFQUF1QkMsTUFBdkIsRUFBK0I7QUFDbEMsU0FBS0csSUFBTCxHQUFZTCxNQUFNLEtBQUssSUFBWCxJQUFtQkEsTUFBTSxLQUFLTyxTQUE5QixHQUEwQyxJQUExQyxHQUFpRCxLQUE3RDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtSLE1BQUwsR0FBY1AsVUFBVSxDQUFDTyxNQUFNLElBQUksQ0FBWCxDQUF4QjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLE1BQUwsR0FBY1IsVUFBVSxDQUFDUSxNQUFELENBQXhCO0FBRUFDLElBQUFBLElBQUksSUFBSSxNQUFNRyxLQUFOLENBQVlILElBQVosRUFBa0JDLE1BQWxCLENBQVI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRU0sRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkJBLElBQUFBLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFBbkIsR0FBNEIsS0FBS0EsTUFBTCxDQUFZWSxRQUFaLEVBQTVCO0FBQ0FGLElBQUFBLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQkUsU0FBbkIsR0FBK0JILFFBQVEsQ0FBQ0ksTUFBeEM7QUFFQUosSUFBQUEsUUFBUSxDQUFDQyxTQUFULENBQW1CVixNQUFuQixHQUE0QixLQUFLSyxJQUFMLEdBQ3hCSSxRQUFRLENBQUNDLFNBQVQsQ0FBbUJYLE1BREssR0FFeEIsS0FBS0MsTUFBTCxDQUFZVyxRQUFaLEVBRko7QUFHRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLE1BQU0sQ0FBQ0wsUUFBRCxFQUFXTSxJQUFYLEVBQWlCQyxLQUFqQixFQUF3QjtBQUM1QixTQUFLQyxRQUFMLENBQWNSLFFBQWQsRUFBd0JNLElBQXhCLEVBQThCQyxLQUE5QjtBQUVBUCxJQUFBQSxRQUFRLENBQUNTLEtBQVQsR0FBaUIzQixTQUFTLENBQUM0QixJQUFWLENBQ2ZWLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFESixFQUVmVSxRQUFRLENBQUNDLFNBQVQsQ0FBbUJWLE1BRkosRUFHZixLQUFLb0IsTUFIVSxDQUFqQjs7QUFNQSxRQUFJWCxRQUFRLENBQUNTLEtBQVQsR0FBaUIsTUFBckIsRUFBNkI7QUFDM0JULE1BQUFBLFFBQVEsQ0FBQ1MsS0FBVCxHQUFpQixDQUFqQjtBQUNEOztBQUVEVCxJQUFBQSxRQUFRLENBQUNJLE1BQVQsR0FBa0JKLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQkUsU0FBbkIsR0FBK0JILFFBQVEsQ0FBQ1MsS0FBMUQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJHLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRXZCLE1BQUFBLE1BQUY7QUFBVUMsTUFBQUEsTUFBVjtBQUFrQkMsTUFBQUEsSUFBbEI7QUFBd0JDLE1BQUFBLE1BQXhCO0FBQWdDQyxNQUFBQSxTQUFTLEdBQUc7QUFBNUMsUUFBcURtQixJQUEzRDtBQUVBLFdBQU8sSUFBSXpCLEtBQUosQ0FBVUUsTUFBVixFQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDUCxlQUFlLENBQUNRLE1BQUQsQ0FBL0MsRUFBeURDLFNBQXpELENBQVA7QUFDRDs7QUFySDBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0aFV0aWxzLCBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5cbmltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9TQ0FMRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQmVoYXZpb3VyIHRoYXQgc2NhbGVzIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYWxlIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBTY2FsZSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZUEgLSB0aGUgc3RhcnRpbmcgc2NhbGUgdmFsdWVcbiAgICogQHBhcmFtIHs/bnVtYmVyfSBzY2FsZUIgLSB0aGUgZW5kaW5nIHNjYWxlIHZhbHVlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSB0aGUgZWFzaW5nIGVxdWF0aW9uIHRvIHVzZSBmb3IgdHJhbnNmb3Jtc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjYWxlQSwgc2NhbGVCLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICB0aGlzLnJlc2V0KHNjYWxlQSwgc2NhbGVCKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBfc2FtZSBwcm9wZXJ0eSB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSBzY2FsZSBwcm9wcyBhcmUgdGhlIHNhbWUuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgc2FtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2FtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBfc2FtZSBwcm9wZXJ0eSB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSBzY2FsZSBwcm9wcyBhcmUgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2FtZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc2V0IHNhbWUoc2FtZSkge1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuX3NhbWUgPSBzYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZUEgLSB0aGUgc3RhcnRpbmcgc2NhbGUgdmFsdWVcbiAgICogQHBhcmFtIHs/bnVtYmVyfSBzY2FsZUIgLSB0aGUgZW5kaW5nIHNjYWxlIHZhbHVlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSB0aGUgZWFzaW5nIGVxdWF0aW9uIHRvIHVzZSBmb3IgdHJhbnNmb3Jtc1xuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHNjYWxlQSwgc2NhbGVCLCBsaWZlLCBlYXNpbmcpIHtcbiAgICB0aGlzLnNhbWUgPSBzY2FsZUIgPT09IG51bGwgfHwgc2NhbGVCID09PSB1bmRlZmluZWQgPyB0cnVlIDogZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgc3RhcnRpbmcgc2NhbGUuXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy5zY2FsZUEgPSBjcmVhdGVTcGFuKHNjYWxlQSB8fCAxKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBlbmRpbmcgc2NhbGUuXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy5zY2FsZUIgPSBjcmVhdGVTcGFuKHNjYWxlQik7XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJlaGF2aW91ciBvbiBhIHBhcnRpY2xlLlxuICAgKiBTdG9yZXMgaW5pdGlhbCB2YWx1ZXMgZm9yIGNvbXBhcmlzb24gYW5kIG11dGF0aW9uIGluIHRoZSBhcHBseUJlaGF2aW91ciBtZXRob2QuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBiZWhhdmlvdXIgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgcGFydGljbGUudHJhbnNmb3JtLnNjYWxlQSA9IHRoaXMuc2NhbGVBLmdldFZhbHVlKCk7XG4gICAgcGFydGljbGUudHJhbnNmb3JtLm9sZFJhZGl1cyA9IHBhcnRpY2xlLnJhZGl1cztcblxuICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5zY2FsZUIgPSB0aGlzLnNhbWVcbiAgICAgID8gcGFydGljbGUudHJhbnNmb3JtLnNjYWxlQVxuICAgICAgOiB0aGlzLnNjYWxlQi5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIGJlaGF2aW91ciB0byB0aGUgcGFydGljbGUuXG4gICAqIE11dGF0ZXMgdGhlIHBhcnRpY2xlJ3Mgc2NhbGUgYW5kIGl0cyByYWRpdXMgYWNjb3JkaW5nIHRvIHRoaXMgc2NhbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS5zY2FsZSA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgcGFydGljbGUudHJhbnNmb3JtLnNjYWxlQSxcbiAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5zY2FsZUIsXG4gICAgICB0aGlzLmVuZXJneVxuICAgICk7XG5cbiAgICBpZiAocGFydGljbGUuc2NhbGUgPCAwLjAwMDUpIHtcbiAgICAgIHBhcnRpY2xlLnNjYWxlID0gMDtcbiAgICB9XG5cbiAgICBwYXJ0aWNsZS5yYWRpdXMgPSBwYXJ0aWNsZS50cmFuc2Zvcm0ub2xkUmFkaXVzICogcGFydGljbGUuc2NhbGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYmVoYXZpb3VyIGZyb20gdGhlIEpTT04gb2JqZWN0IHBhc3NlZC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm4ge1NwcmluZ31cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBzY2FsZUEsIHNjYWxlQiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBTY2FsZShzY2FsZUEsIHNjYWxlQiwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/Spring.js",
    "content": "import Behaviour from './Behaviour';\nimport { Vector3D } from '../math';\nimport { getEasingByName } from '../ease';\nimport { BEHAVIOUR_TYPE_SPRING as type } from './types';\n/**\n * Behaviour that causes particles to spring.\n *\n */\n\nexport default class Spring extends Behaviour {\n  /**\n   * Constructs a Spring behaviour instance.\n   *\n   * @param {number} x - X axis spring\n   * @param {number} y - Y axis spring\n   * @param {number} z - Z axis spring\n   * @param {number} spring - Spring factor\n   * @param {number} friction - Spring friction\n   * @param {number} life - The life of the behaviour\n   * @param {function} easing - The easing equation to use for transforms\n   * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not\n   * @return void\n   */\n  constructor(x, y, z, spring, friction, life = Infinity, easing, isEnabled = true) {\n    super(life, easing, type, isEnabled);\n    this.reset(x, y, z, spring, friction);\n  }\n  /**\n   * Resets the behaviour properties.\n   *\n   * @param {number} x - X axis spring\n   * @param {number} y - Y axis spring\n   * @param {number} z - Z axis spring\n   * @param {number} spring - Spring factor\n   * @param {number} friction - Spring friction\n   * @return void\n   */\n\n\n  reset(x, y, z, spring, friction) {\n    if (!this.pos) {\n      this.pos = new Vector3D(x, y, z);\n    } else {\n      this.pos.set(x, y, z);\n    }\n\n    this.spring = spring || 0.1;\n    this.friction = friction || 0.98;\n  }\n  /**\n   * Applies the behaviour to the particle.\n   * Mutates the particle's velocity according to this.pos and this.spring.\n   *\n   * @param {object} particle - the particle to apply the behaviour to\n   * @param {number} time - engine time\n   * @param {integer} index - the particle index\n   * @return void\n   */\n\n\n  mutate(particle, time, index) {\n    this.energize(particle, time, index);\n    particle.velocity.x += (this.pos.x - particle.position.x) * this.spring;\n    particle.velocity.y += (this.pos.y - particle.position.y) * this.spring;\n    particle.velocity.z += (this.pos.z - particle.position.z) * this.spring;\n  }\n  /**\n   * Returns a new instance of the behaviour from the JSON object passed.\n   *\n   * @param {object} json - JSON object containing the required constructor properties\n   * @return {Spring}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      x,\n      y,\n      z,\n      spring,\n      friction,\n      life,\n      easing,\n      isEnabled = true\n    } = json;\n    return new Spring(x, y, z, spring, friction, life, getEasingByName(easing), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvU3ByaW5nLmpzIl0sIm5hbWVzIjpbIkJlaGF2aW91ciIsIlZlY3RvcjNEIiwiZ2V0RWFzaW5nQnlOYW1lIiwiQkVIQVZJT1VSX1RZUEVfU1BSSU5HIiwidHlwZSIsIlNwcmluZyIsImNvbnN0cnVjdG9yIiwieCIsInkiLCJ6Iiwic3ByaW5nIiwiZnJpY3Rpb24iLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJwb3MiLCJzZXQiLCJtdXRhdGUiLCJwYXJ0aWNsZSIsInRpbWUiLCJpbmRleCIsImVuZXJnaXplIiwidmVsb2NpdHkiLCJwb3NpdGlvbiIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsU0FBUCxNQUFzQixhQUF0QjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsU0FBekI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MscUJBQXFCLElBQUlDLElBQWxDLFFBQThDLFNBQTlDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxNQUFOLFNBQXFCTCxTQUFyQixDQUErQjtBQUM1QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFTSxFQUFBQSxXQUFXLENBQUNDLENBQUQsRUFBSUMsQ0FBSixFQUFPQyxDQUFQLEVBQVVDLE1BQVYsRUFBa0JDLFFBQWxCLEVBQTRCQyxJQUE1QixFQUFrQ0MsTUFBbEMsRUFBMENDLFNBQVMsR0FBRyxJQUF0RCxFQUE0RDtBQUNyRSxVQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JULElBQXBCLEVBQTBCVSxTQUExQjtBQUVBLFNBQUtDLEtBQUwsQ0FBV1IsQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQixFQUFvQkMsTUFBcEIsRUFBNEJDLFFBQTVCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLEtBQUssQ0FBQ1IsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsTUFBVixFQUFrQkMsUUFBbEIsRUFBNEI7QUFDL0IsUUFBSSxDQUFDLEtBQUtLLEdBQVYsRUFBZTtBQUNiLFdBQUtBLEdBQUwsR0FBVyxJQUFJZixRQUFKLENBQWFNLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CQyxDQUFuQixDQUFYO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS08sR0FBTCxDQUFTQyxHQUFULENBQWFWLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CQyxDQUFuQjtBQUNEOztBQUVELFNBQUtDLE1BQUwsR0FBY0EsTUFBTSxJQUFJLEdBQXhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQkEsUUFBUSxJQUFJLElBQTVCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTyxFQUFBQSxNQUFNLENBQUNDLFFBQUQsRUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjSCxRQUFkLEVBQXdCQyxJQUF4QixFQUE4QkMsS0FBOUI7QUFFQUYsSUFBQUEsUUFBUSxDQUFDSSxRQUFULENBQWtCaEIsQ0FBbEIsSUFBdUIsQ0FBQyxLQUFLUyxHQUFMLENBQVNULENBQVQsR0FBYVksUUFBUSxDQUFDSyxRQUFULENBQWtCakIsQ0FBaEMsSUFBcUMsS0FBS0csTUFBakU7QUFDQVMsSUFBQUEsUUFBUSxDQUFDSSxRQUFULENBQWtCZixDQUFsQixJQUF1QixDQUFDLEtBQUtRLEdBQUwsQ0FBU1IsQ0FBVCxHQUFhVyxRQUFRLENBQUNLLFFBQVQsQ0FBa0JoQixDQUFoQyxJQUFxQyxLQUFLRSxNQUFqRTtBQUNBUyxJQUFBQSxRQUFRLENBQUNJLFFBQVQsQ0FBa0JkLENBQWxCLElBQXVCLENBQUMsS0FBS08sR0FBTCxDQUFTUCxDQUFULEdBQWFVLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQmYsQ0FBaEMsSUFBcUMsS0FBS0MsTUFBakU7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJlLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRW5CLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdDLE1BQUFBLE1BQVg7QUFBbUJDLE1BQUFBLFFBQW5CO0FBQTZCQyxNQUFBQSxJQUE3QjtBQUFtQ0MsTUFBQUEsTUFBbkM7QUFBMkNDLE1BQUFBLFNBQVMsR0FBRztBQUF2RCxRQUFnRVksSUFBdEU7QUFFQSxXQUFPLElBQUlyQixNQUFKLENBQ0xFLENBREssRUFFTEMsQ0FGSyxFQUdMQyxDQUhLLEVBSUxDLE1BSkssRUFLTEMsUUFMSyxFQU1MQyxJQU5LLEVBT0xWLGVBQWUsQ0FBQ1csTUFBRCxDQVBWLEVBUUxDLFNBUkssQ0FBUDtBQVVEOztBQTdFMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmVoYXZpb3VyIGZyb20gJy4vQmVoYXZpb3VyJztcbmltcG9ydCB7IFZlY3RvcjNEIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX1NQUklORyBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQmVoYXZpb3VyIHRoYXQgY2F1c2VzIHBhcnRpY2xlcyB0byBzcHJpbmcuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTcHJpbmcgZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFNwcmluZyBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gWCBheGlzIHNwcmluZ1xuICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFkgYXhpcyBzcHJpbmdcbiAgICogQHBhcmFtIHtudW1iZXJ9IHogLSBaIGF4aXMgc3ByaW5nXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzcHJpbmcgLSBTcHJpbmcgZmFjdG9yXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmcmljdGlvbiAtIFNwcmluZyBmcmljdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih4LCB5LCB6LCBzcHJpbmcsIGZyaWN0aW9uLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICB0aGlzLnJlc2V0KHgsIHksIHosIHNwcmluZywgZnJpY3Rpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gWCBheGlzIHNwcmluZ1xuICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFkgYXhpcyBzcHJpbmdcbiAgICogQHBhcmFtIHtudW1iZXJ9IHogLSBaIGF4aXMgc3ByaW5nXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzcHJpbmcgLSBTcHJpbmcgZmFjdG9yXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmcmljdGlvbiAtIFNwcmluZyBmcmljdGlvblxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHgsIHksIHosIHNwcmluZywgZnJpY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMucG9zKSB7XG4gICAgICB0aGlzLnBvcyA9IG5ldyBWZWN0b3IzRCh4LCB5LCB6KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3Muc2V0KHgsIHksIHopO1xuICAgIH1cblxuICAgIHRoaXMuc3ByaW5nID0gc3ByaW5nIHx8IDAuMTtcbiAgICB0aGlzLmZyaWN0aW9uID0gZnJpY3Rpb24gfHwgMC45ODtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBiZWhhdmlvdXIgdG8gdGhlIHBhcnRpY2xlLlxuICAgKiBNdXRhdGVzIHRoZSBwYXJ0aWNsZSdzIHZlbG9jaXR5IGFjY29yZGluZyB0byB0aGlzLnBvcyBhbmQgdGhpcy5zcHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS54ICs9ICh0aGlzLnBvcy54IC0gcGFydGljbGUucG9zaXRpb24ueCkgKiB0aGlzLnNwcmluZztcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ICs9ICh0aGlzLnBvcy55IC0gcGFydGljbGUucG9zaXRpb24ueSkgKiB0aGlzLnNwcmluZztcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS56ICs9ICh0aGlzLnBvcy56IC0gcGFydGljbGUucG9zaXRpb24ueikgKiB0aGlzLnNwcmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBiZWhhdmlvdXIgZnJvbSB0aGUgSlNPTiBvYmplY3QgcGFzc2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVpcmVkIGNvbnN0cnVjdG9yIHByb3BlcnRpZXNcbiAgICogQHJldHVybiB7U3ByaW5nfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IHgsIHksIHosIHNwcmluZywgZnJpY3Rpb24sIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSB9ID0ganNvbjtcblxuICAgIHJldHVybiBuZXcgU3ByaW5nKFxuICAgICAgeCxcbiAgICAgIHksXG4gICAgICB6LFxuICAgICAgc3ByaW5nLFxuICAgICAgZnJpY3Rpb24sXG4gICAgICBsaWZlLFxuICAgICAgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksXG4gICAgICBpc0VuYWJsZWRcbiAgICApO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/constants.js",
    "content": "import { easeLinear } from '../ease';\nexport const DEFAULT_LIFE = Infinity;\nexport const DEFAULT_ATTRACITON_RADIUS = 1000;\nexport const DEFAULT_ATTRACTION_FORCE_SCALAR = 100;\nexport const DEFAULT_BEHAVIOUR_EASING = easeLinear;\nexport const DEFAULT_BEHAVIOUR_EASING_TYPE = 'easeLinear';\nexport const DEFAULT_RANDOM_DRIFT_DELAY = 0.03;\nexport const PARTICLE_ALPHA_THRESHOLD = 0.002;\nexport const PARTICLE_LENGTH_SQ_THRESHOLD = 0.000004;\nexport const DEFAULT_CROSS_TYPE = 'dead';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbImVhc2VMaW5lYXIiLCJERUZBVUxUX0xJRkUiLCJJbmZpbml0eSIsIkRFRkFVTFRfQVRUUkFDSVRPTl9SQURJVVMiLCJERUZBVUxUX0FUVFJBQ1RJT05fRk9SQ0VfU0NBTEFSIiwiREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HIiwiREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HX1RZUEUiLCJERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWSIsIlBBUlRJQ0xFX0FMUEhBX1RIUkVTSE9MRCIsIlBBUlRJQ0xFX0xFTkdUSF9TUV9USFJFU0hPTEQiLCJERUZBVUxUX0NST1NTX1RZUEUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVQsUUFBMkIsU0FBM0I7QUFFQSxPQUFPLE1BQU1DLFlBQVksR0FBR0MsUUFBckI7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLElBQWxDO0FBQ1AsT0FBTyxNQUFNQywrQkFBK0IsR0FBRyxHQUF4QztBQUNQLE9BQU8sTUFBTUMsd0JBQXdCLEdBQUdMLFVBQWpDO0FBQ1AsT0FBTyxNQUFNTSw2QkFBNkIsR0FBRyxZQUF0QztBQUNQLE9BQU8sTUFBTUMsMEJBQTBCLEdBQUcsSUFBbkM7QUFDUCxPQUFPLE1BQU1DLHdCQUF3QixHQUFHLEtBQWpDO0FBQ1AsT0FBTyxNQUFNQyw0QkFBNEIsR0FBRyxRQUFyQztBQUNQLE9BQU8sTUFBTUMsa0JBQWtCLEdBQUcsTUFBM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlYXNlTGluZWFyIH0gZnJvbSAnLi4vZWFzZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJRkUgPSBJbmZpbml0eTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0FUVFJBQ0lUT05fUkFESVVTID0gMTAwMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0FUVFJBQ1RJT05fRk9SQ0VfU0NBTEFSID0gMTAwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkVIQVZJT1VSX0VBU0lORyA9IGVhc2VMaW5lYXI7XG5leHBvcnQgY29uc3QgREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HX1RZUEUgPSAnZWFzZUxpbmVhcic7XG5leHBvcnQgY29uc3QgREVGQVVMVF9SQU5ET01fRFJJRlRfREVMQVkgPSAwLjAzO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX0FMUEhBX1RIUkVTSE9MRCA9IDAuMDAyO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX0xFTkdUSF9TUV9USFJFU0hPTEQgPSAwLjAwMDAwNDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NST1NTX1RZUEUgPSAnZGVhZCc7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/index.js",
    "content": "export { default as Alpha } from './Alpha';\nexport { default as Attraction } from './Attraction';\nexport { default as Collision } from './Collision';\nexport { default as Color } from './Color';\nexport { default as CrossZone } from './CrossZone';\nexport { default as Force } from './Force';\nexport { default as Gravity } from './Gravity';\nexport { default as RandomDrift } from './RandomDrift';\nexport { default as Repulsion } from './Repulsion';\nexport { default as Rotate } from './Rotate';\nexport { default as Scale } from './Scale';\nexport { default as Spring } from './Spring';\nexport { default as Behaviour } from './Behaviour';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCIsIkFscGhhIiwiQXR0cmFjdGlvbiIsIkNvbGxpc2lvbiIsIkNvbG9yIiwiQ3Jvc3Nab25lIiwiRm9yY2UiLCJHcmF2aXR5IiwiUmFuZG9tRHJpZnQiLCJSZXB1bHNpb24iLCJSb3RhdGUiLCJTY2FsZSIsIlNwcmluZyIsIkJlaGF2aW91ciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsT0FBTyxJQUFJQyxLQUFwQixRQUFpQyxTQUFqQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsVUFBcEIsUUFBc0MsY0FBdEM7QUFDQSxTQUFTRixPQUFPLElBQUlHLFNBQXBCLFFBQXFDLGFBQXJDO0FBQ0EsU0FBU0gsT0FBTyxJQUFJSSxLQUFwQixRQUFpQyxTQUFqQztBQUNBLFNBQVNKLE9BQU8sSUFBSUssU0FBcEIsUUFBcUMsYUFBckM7QUFDQSxTQUFTTCxPQUFPLElBQUlNLEtBQXBCLFFBQWlDLFNBQWpDO0FBQ0EsU0FBU04sT0FBTyxJQUFJTyxPQUFwQixRQUFtQyxXQUFuQztBQUNBLFNBQVNQLE9BQU8sSUFBSVEsV0FBcEIsUUFBdUMsZUFBdkM7QUFDQSxTQUFTUixPQUFPLElBQUlTLFNBQXBCLFFBQXFDLGFBQXJDO0FBQ0EsU0FBU1QsT0FBTyxJQUFJVSxNQUFwQixRQUFrQyxVQUFsQztBQUNBLFNBQVNWLE9BQU8sSUFBSVcsS0FBcEIsUUFBaUMsU0FBakM7QUFDQSxTQUFTWCxPQUFPLElBQUlZLE1BQXBCLFFBQWtDLFVBQWxDO0FBQ0EsU0FBU1osT0FBTyxJQUFJYSxTQUFwQixRQUFxQyxhQUFyQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgQWxwaGEgfSBmcm9tICcuL0FscGhhJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXR0cmFjdGlvbiB9IGZyb20gJy4vQXR0cmFjdGlvbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbGxpc2lvbiB9IGZyb20gJy4vQ29sbGlzaW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3IgfSBmcm9tICcuL0NvbG9yJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3Jvc3Nab25lIH0gZnJvbSAnLi9Dcm9zc1pvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JjZSB9IGZyb20gJy4vRm9yY2UnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmF2aXR5IH0gZnJvbSAnLi9HcmF2aXR5JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFuZG9tRHJpZnQgfSBmcm9tICcuL1JhbmRvbURyaWZ0JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVwdWxzaW9uIH0gZnJvbSAnLi9SZXB1bHNpb24nO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSb3RhdGUgfSBmcm9tICcuL1JvdGF0ZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjYWxlIH0gZnJvbSAnLi9TY2FsZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwcmluZyB9IGZyb20gJy4vU3ByaW5nJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmVoYXZpb3VyIH0gZnJvbSAnLi9CZWhhdmlvdXInO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/behaviour/types.js",
    "content": "export const BEHAVIOUR_TYPE_ABSTRACT = 'Behaviour';\nexport const BEHAVIOUR_TYPE_ALPHA = 'Alpha';\nexport const BEHAVIOUR_TYPE_ATTRACTION = 'Attraction';\nexport const BEHAVIOUR_TYPE_COLLISION = 'Collision';\nexport const BEHAVIOUR_TYPE_COLOR = 'Color';\nexport const BEHAVIOUR_TYPE_CROSS_ZONE = 'CrossZone';\nexport const BEHAVIOUR_TYPE_FORCE = 'Force';\nexport const BEHAVIOUR_TYPE_GRAVITY = 'Gravity';\nexport const BEHAVIOUR_TYPE_RANDOM_DRIFT = 'RandomDrift';\nexport const BEHAVIOUR_TYPE_REPULSION = 'Repulsion';\nexport const BEHAVIOUR_TYPE_ROTATE = 'Rotate';\nexport const BEHAVIOUR_TYPE_SCALE = 'Scale';\nexport const BEHAVIOUR_TYPE_SPRING = 'Spring';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvdHlwZXMuanMiXSwibmFtZXMiOlsiQkVIQVZJT1VSX1RZUEVfQUJTVFJBQ1QiLCJCRUhBVklPVVJfVFlQRV9BTFBIQSIsIkJFSEFWSU9VUl9UWVBFX0FUVFJBQ1RJT04iLCJCRUhBVklPVVJfVFlQRV9DT0xMSVNJT04iLCJCRUhBVklPVVJfVFlQRV9DT0xPUiIsIkJFSEFWSU9VUl9UWVBFX0NST1NTX1pPTkUiLCJCRUhBVklPVVJfVFlQRV9GT1JDRSIsIkJFSEFWSU9VUl9UWVBFX0dSQVZJVFkiLCJCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQiLCJCRUhBVklPVVJfVFlQRV9SRVBVTFNJT04iLCJCRUhBVklPVVJfVFlQRV9ST1RBVEUiLCJCRUhBVklPVVJfVFlQRV9TQ0FMRSIsIkJFSEFWSU9VUl9UWVBFX1NQUklORyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSx1QkFBdUIsR0FBRyxXQUFoQztBQUNQLE9BQU8sTUFBTUMsb0JBQW9CLEdBQUcsT0FBN0I7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLFlBQWxDO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxXQUFqQztBQUNQLE9BQU8sTUFBTUMsb0JBQW9CLEdBQUcsT0FBN0I7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLFdBQWxDO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxPQUE3QjtBQUNQLE9BQU8sTUFBTUMsc0JBQXNCLEdBQUcsU0FBL0I7QUFDUCxPQUFPLE1BQU1DLDJCQUEyQixHQUFHLGFBQXBDO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxXQUFqQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUcsUUFBOUI7QUFDUCxPQUFPLE1BQU1DLG9CQUFvQixHQUFHLE9BQTdCO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxRQUE5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9BQlNUUkFDVCA9ICdCZWhhdmlvdXInO1xuZXhwb3J0IGNvbnN0IEJFSEFWSU9VUl9UWVBFX0FMUEhBID0gJ0FscGhhJztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9BVFRSQUNUSU9OID0gJ0F0dHJhY3Rpb24nO1xuZXhwb3J0IGNvbnN0IEJFSEFWSU9VUl9UWVBFX0NPTExJU0lPTiA9ICdDb2xsaXNpb24nO1xuZXhwb3J0IGNvbnN0IEJFSEFWSU9VUl9UWVBFX0NPTE9SID0gJ0NvbG9yJztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FID0gJ0Nyb3NzWm9uZSc7XG5leHBvcnQgY29uc3QgQkVIQVZJT1VSX1RZUEVfRk9SQ0UgPSAnRm9yY2UnO1xuZXhwb3J0IGNvbnN0IEJFSEFWSU9VUl9UWVBFX0dSQVZJVFkgPSAnR3Jhdml0eSc7XG5leHBvcnQgY29uc3QgQkVIQVZJT1VSX1RZUEVfUkFORE9NX0RSSUZUID0gJ1JhbmRvbURyaWZ0JztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9SRVBVTFNJT04gPSAnUmVwdWxzaW9uJztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9ST1RBVEUgPSAnUm90YXRlJztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9TQ0FMRSA9ICdTY2FsZSc7XG5leHBvcnQgY29uc3QgQkVIQVZJT1VSX1RZUEVfU1BSSU5HID0gJ1NwcmluZyc7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/constants/index.js",
    "content": "// export const PI = 3.142;\nexport const PI = Math.PI;\n/**\n * The max particle number in pool.\n *\n * @const {integer}\n */\n\nexport const POOL_MAX = 500;\nexport const TIME_STEP = 60;\nexport const DR = PI / 180;\n/**\n * 1:100\n *\n * @const {integer}\n */\n\nexport const MEASURE = 100;\nexport const EULER = 'euler';\nexport const RK2 = 'runge-kutta2';\nexport const RK4 = 'runge-kutta4';\nexport const VERLET = 'verlet';\nexport const BIND_EMITTER_EVENT = false;\nexport const __DEV__ = () => {\n  if (!process) {\n    return false;\n  }\n\n  if (!process.env) {\n    return false;\n  }\n\n  if (!process.env.NODE_ENV) {\n    return false;\n  }\n\n  if (process.env.NODE_ENV !== 'development') {\n    return false;\n  }\n\n  return true;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25zdGFudHMvaW5kZXguanMiXSwibmFtZXMiOlsiUEkiLCJQT09MX01BWCIsIlRJTUVfU1RFUCIsIkRSIiwiTUVBU1VSRSIsIkVVTEVSIiwiUksyIiwiUks0IiwiVkVSTEVUIiwiQklORF9FTUlUVEVSX0VWRU5UIiwiX19ERVZfXyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxFQUFFLEdBQUcsS0FBWDtBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxRQUFRLEdBQUcsR0FBakI7QUFDUCxPQUFPLE1BQU1DLFNBQVMsR0FBRyxFQUFsQjtBQUNQLE9BQU8sTUFBTUMsRUFBRSxHQUFHSCxFQUFFLEdBQUcsR0FBaEI7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUksT0FBTyxHQUFHLEdBQWhCO0FBQ1AsT0FBTyxNQUFNQyxLQUFLLEdBQUcsT0FBZDtBQUNQLE9BQU8sTUFBTUMsR0FBRyxHQUFHLGNBQVo7QUFDUCxPQUFPLE1BQU1DLEdBQUcsR0FBRyxjQUFaO0FBQ1AsT0FBTyxNQUFNQyxNQUFNLEdBQUcsUUFBZjtBQUNQLE9BQU8sTUFBTUMsa0JBQWtCLEdBQUcsS0FBM0I7QUFFUCxPQUFPLE1BQU1DLE9BQU8sR0FBRyxNQUFNO0FBQzNCLE1BQUksQ0FBQ0MsT0FBTCxFQUFjO0FBQ1osV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSSxDQUFDQSxPQUFPLENBQUNDLEdBQWIsRUFBa0I7QUFDaEIsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSSxDQUFDRCxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBakIsRUFBMkI7QUFDekIsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSUYsT0FBTyxDQUFDQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsYUFBN0IsRUFBNEM7QUFDMUMsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBTyxJQUFQO0FBQ0QsQ0FsQk0iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUEkgPSAzLjE0MjtcblxuLyoqXG4gKiBUaGUgbWF4IHBhcnRpY2xlIG51bWJlciBpbiBwb29sLlxuICpcbiAqIEBjb25zdCB7aW50ZWdlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IFBPT0xfTUFYID0gNTAwO1xuZXhwb3J0IGNvbnN0IFRJTUVfU1RFUCA9IDYwO1xuZXhwb3J0IGNvbnN0IERSID0gUEkgLyAxODA7XG5cbi8qKlxuICogMToxMDBcbiAqXG4gKiBAY29uc3Qge2ludGVnZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBNRUFTVVJFID0gMTAwO1xuZXhwb3J0IGNvbnN0IEVVTEVSID0gJ2V1bGVyJztcbmV4cG9ydCBjb25zdCBSSzIgPSAncnVuZ2Uta3V0dGEyJztcbmV4cG9ydCBjb25zdCBSSzQgPSAncnVuZ2Uta3V0dGE0JztcbmV4cG9ydCBjb25zdCBWRVJMRVQgPSAndmVybGV0JztcbmV4cG9ydCBjb25zdCBCSU5EX0VNSVRURVJfRVZFTlQgPSBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IF9fREVWX18gPSAoKSA9PiB7XG4gIGlmICghcHJvY2Vzcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghcHJvY2Vzcy5lbnYpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIXByb2Nlc3MuZW52Lk5PREVfRU5WKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/Particle.js",
    "content": "import { DEFAULT_AGE, DEFAULT_ALPHA, DEFAULT_BODY, DEFAULT_DEAD, DEFAULT_EASING, DEFAULT_ENERGY, DEFAULT_LIFE, DEFAULT_MASS, DEFAULT_PARENT, DEFAULT_RADIUS, DEFAULT_SCALE, DEFAULT_SLEEP, DEFAULT_USE_ALPHA, DEFAULT_USE_COLOR } from './constants';\nimport { Util, uid } from '../utils';\nimport { PI } from '../constants';\nimport { Vector3D } from '../math';\nimport { CORE_TYPE_PARTICLE as type } from './types';\n/**\n * A Particle is an object that is emitted by an emitter.\n *\n */\n\nexport default class Particle {\n  /**\n   * Constructs a Particle instance.\n   *\n   * @param {object} properties - The properties to instantiate the particle with\n   * @property {number} properties.life - The particle's life\n   * @property {number} properties.age - The particle's age\n   * @property {number} properties.energy - The particle's energy loss\n   * @property {boolean} properties.dead - Determines if the particle is dead or not\n   * @property {boolean} properties.sleep - Determines if the particle is sleeping or not\n   * @property {object} properties.target - The particle's target\n   * @property {object} properties.body - The particle's body\n   * @property {number} properties.mass - The particle's mass\n   * @property {number} properties.radius - The particle's radius\n   * @property {number} properties.alpha - The particle's alpha\n   * @property {number} properties.scale - The particle's scale\n   * @property {Vector3D} properties.rotation - The particle's rotation\n   * @property {string|number} properties.color - The particle's color\n   * @property {function} properties.easing - The particle's easing\n   * @property {Vector3D} properties.position - The particle's position\n   * @property {Vector3D} properties.velocity - The particle's velocity\n   * @property {Vector3D} properties.acceleration - The particle's acceleration\n   * @property {array} properties.behaviours - The particle's behaviours array\n   * @property {object} properties.transform - The particle's transform collection\n   * @return void\n   */\n  constructor(properties) {\n    /**\n     * @desc The particle's unique id\n     * @type {number}\n     */\n    this.id = `particle-${uid()}`;\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n    /**\n     * @desc The particle's life\n     * @type {number}\n     */\n\n    this.life = DEFAULT_LIFE;\n    /**\n     * @desc The particle's age\n     * @type {number}\n     */\n\n    this.age = DEFAULT_AGE;\n    /**\n     * @desc The particle's energy loss\n     * @type {number}\n     */\n\n    this.energy = DEFAULT_ENERGY;\n    /**\n     * @desc Determines if the particle is dead or not\n     * @type {number}\n     */\n\n    this.dead = DEFAULT_DEAD;\n    /**\n     * @desc Determines if the particle is sleeping or not\n     * @type {number}\n     */\n\n    this.sleep = DEFAULT_SLEEP;\n    /**\n     * @desc The particle's body\n     * @type {object}\n     */\n\n    this.body = DEFAULT_BODY;\n    /**\n     * @desc The particle's parent\n     * @type {?Emitter}\n     */\n\n    this.parent = DEFAULT_PARENT;\n    /**\n     * @desc The particle's mass\n     * @type {number}\n     */\n\n    this.mass = DEFAULT_MASS;\n    /**\n     * @desc The particle's radius\n     * @type {number}\n     */\n\n    this.radius = DEFAULT_RADIUS;\n    /**\n     * @desc The particle's alpha\n     * @type {number}\n     */\n\n    this.alpha = DEFAULT_ALPHA;\n    /**\n     * @desc The particle's scale\n     * @type {number}\n     */\n\n    this.scale = DEFAULT_SCALE;\n    /**\n     * @desc Determines whether to use color or not\n     * @type {boolean}\n     */\n\n    this.useColor = DEFAULT_USE_COLOR;\n    /**\n     * @desc Determines whether to use alpha or not\n     * @type {boolean}\n     */\n\n    this.useAlpha = DEFAULT_USE_ALPHA;\n    /**\n     * @desc The particle's easing\n     * @type {string}\n     */\n\n    this.easing = DEFAULT_EASING;\n    /**\n     * @desc The particle's position\n     * @type {Vector3D}\n     */\n\n    this.position = new Vector3D();\n    /**\n     * @desc The particle's velocity\n     * @type {Vector3D}\n     */\n\n    this.velocity = new Vector3D();\n    /**\n     * @desc The particle's acceleration\n     * @type {Vector3D}\n     */\n\n    this.acceleration = new Vector3D();\n    /**\n     * @desc The particle's last position, velocity and acceleration\n     * @type {Vector3D}\n     */\n\n    this.old = {};\n    /**\n     * @desc The particle's old position\n     * @type {Vector3D}\n     */\n\n    this.old.position = this.position.clone();\n    /**\n     * @desc The particle's old velocity\n     * @type {Vector3D}\n     */\n\n    this.old.velocity = this.velocity.clone();\n    /**\n     * @desc The particle's old acceleration\n     * @type {Vector3D}\n     */\n\n    this.old.acceleration = this.acceleration.clone();\n    /**\n     * @desc The particle's behaviours array\n     * @type {array}\n     */\n\n    this.behaviours = [];\n    /**\n     * @desc The particle's transform collection\n     * @type {object}\n     */\n\n    this.transform = {};\n    /**\n     * @desc The particle's color store\n     * @type {object}\n     */\n\n    this.color = {\n      r: 0,\n      g: 0,\n      b: 0\n    };\n    /**\n     * @desc The particle's rotation\n     * @type {Vector3D}\n     */\n\n    this.rotation = new Vector3D();\n    /**\n     * @desc The particle's distance to the camera, only set by the GPURenderer for depth sorting purposes.\n     * @type {number}\n     */\n\n    this.distanceToCamera = 0; // override constructor props with passed properties.\n\n    Util.setPrototypeByObj(this, properties);\n  }\n  /**\n   * Gets the particle's current direction.\n   *\n   * @return {number}\n   */\n\n\n  getDirection() {\n    return Math.atan2(this.velocity.x, -this.velocity.y) * (180 / PI);\n  }\n  /**\n   * Resets the particle's default properties and clear's its particle's position,\n   * velocity, acceleration, color and rotation. Also destroy's the particle's\n   * transform collection & removes all behaviours.\n   *\n   * @return {Particle}\n   */\n\n\n  reset() {\n    this.life = DEFAULT_LIFE;\n    this.age = DEFAULT_AGE;\n    this.energy = DEFAULT_ENERGY;\n    this.dead = DEFAULT_DEAD;\n    this.sleep = DEFAULT_SLEEP;\n    this.body = DEFAULT_BODY;\n    this.parent = DEFAULT_PARENT;\n    this.mass = DEFAULT_MASS;\n    this.radius = DEFAULT_RADIUS;\n    this.alpha = DEFAULT_ALPHA;\n    this.scale = DEFAULT_SCALE;\n    this.useColor = DEFAULT_USE_COLOR;\n    this.useAlpha = DEFAULT_USE_ALPHA;\n    this.easing = DEFAULT_EASING;\n    this.position.set(0, 0, 0);\n    this.velocity.set(0, 0, 0);\n    this.acceleration.set(0, 0, 0);\n    this.old.position.set(0, 0, 0);\n    this.old.velocity.set(0, 0, 0);\n    this.old.acceleration.set(0, 0, 0);\n    this.color.r = 0;\n    this.color.g = 0;\n    this.color.b = 0;\n    this.rotation.clear();\n    Util.destroyObject(this.transform);\n    this.removeAllBehaviours();\n    return this;\n  }\n  /**\n   * Updates the particle's properties by applying each behaviour to the particle.\n   * Will also update the particle's energy, unless it's age is greater than it's life\n   * in which case it will be destroyed.\n   *\n   * @param {number} time - Integration time\n   * @param {integer} index - Particle index\n   * @return void\n   */\n\n\n  update(time, index) {\n    if (!this.sleep) {\n      this.age += time;\n      let i = this.behaviours.length;\n\n      while (i--) {\n        let behaviour = this.behaviours[i]; //behaviour && \n\n        behaviour.applyBehaviour(this, time, index);\n      }\n    }\n\n    if (this.age >= this.life) {\n      this.destroy();\n    } else {\n      const scale = this.easing(this.age / this.life);\n      this.energy = Math.max(1 - scale, 0);\n    }\n  }\n  /**\n   * Adds a behaviour to the particle.\n   *\n   * @param {Behaviour} behaviour - The behaviour to add to the particle\n   * @return void\n   */\n\n\n  addBehaviour(behaviour) {\n    this.behaviours.push(behaviour);\n    behaviour.initialize(this);\n  }\n  /**\n   * Adds multiple behaviours to the particle.\n   *\n   * @param {array<Behaviour>} behaviours - An array of behaviours to add to the particle\n   * @return void\n   */\n\n\n  addBehaviours(behaviours) {\n    let i = behaviours.length;\n\n    while (i--) {\n      this.addBehaviour(behaviours[i]);\n    }\n  }\n  /**\n   * Removes the behaviour from the particle.\n   *\n   * @param {Behaviour} behaviour - The behaviour to remove from the particle\n   * @return void\n   */\n\n\n  removeBehaviour(behaviour) {\n    const index = this.behaviours.indexOf(behaviour);\n\n    if (index > -1) {\n      this.behaviours.splice(index, 1);\n    }\n  }\n  /**\n   * Removes all behaviours from the particle.\n   *\n   * @return void\n   */\n\n\n  removeAllBehaviours() {\n    Util.destroyArray(this.behaviours);\n  }\n  /**\n   * Destroys the particle.\n   *\n   * @return void\n   */\n\n\n  destroy() {\n    this.removeAllBehaviours();\n    this.energy = 0;\n    this.dead = true;\n    this.parent = null;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL1BhcnRpY2xlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfQUdFIiwiREVGQVVMVF9BTFBIQSIsIkRFRkFVTFRfQk9EWSIsIkRFRkFVTFRfREVBRCIsIkRFRkFVTFRfRUFTSU5HIiwiREVGQVVMVF9FTkVSR1kiLCJERUZBVUxUX0xJRkUiLCJERUZBVUxUX01BU1MiLCJERUZBVUxUX1BBUkVOVCIsIkRFRkFVTFRfUkFESVVTIiwiREVGQVVMVF9TQ0FMRSIsIkRFRkFVTFRfU0xFRVAiLCJERUZBVUxUX1VTRV9BTFBIQSIsIkRFRkFVTFRfVVNFX0NPTE9SIiwiVXRpbCIsInVpZCIsIlBJIiwiVmVjdG9yM0QiLCJDT1JFX1RZUEVfUEFSVElDTEUiLCJ0eXBlIiwiUGFydGljbGUiLCJjb25zdHJ1Y3RvciIsInByb3BlcnRpZXMiLCJpZCIsImxpZmUiLCJhZ2UiLCJlbmVyZ3kiLCJkZWFkIiwic2xlZXAiLCJib2R5IiwicGFyZW50IiwibWFzcyIsInJhZGl1cyIsImFscGhhIiwic2NhbGUiLCJ1c2VDb2xvciIsInVzZUFscGhhIiwiZWFzaW5nIiwicG9zaXRpb24iLCJ2ZWxvY2l0eSIsImFjY2VsZXJhdGlvbiIsIm9sZCIsImNsb25lIiwiYmVoYXZpb3VycyIsInRyYW5zZm9ybSIsImNvbG9yIiwiciIsImciLCJiIiwicm90YXRpb24iLCJkaXN0YW5jZVRvQ2FtZXJhIiwic2V0UHJvdG90eXBlQnlPYmoiLCJnZXREaXJlY3Rpb24iLCJNYXRoIiwiYXRhbjIiLCJ4IiwieSIsInJlc2V0Iiwic2V0IiwiY2xlYXIiLCJkZXN0cm95T2JqZWN0IiwicmVtb3ZlQWxsQmVoYXZpb3VycyIsInVwZGF0ZSIsInRpbWUiLCJpbmRleCIsImkiLCJsZW5ndGgiLCJiZWhhdmlvdXIiLCJhcHBseUJlaGF2aW91ciIsImRlc3Ryb3kiLCJtYXgiLCJhZGRCZWhhdmlvdXIiLCJwdXNoIiwiaW5pdGlhbGl6ZSIsImFkZEJlaGF2aW91cnMiLCJyZW1vdmVCZWhhdmlvdXIiLCJpbmRleE9mIiwic3BsaWNlIiwiZGVzdHJveUFycmF5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxXQURGLEVBRUVDLGFBRkYsRUFHRUMsWUFIRixFQUlFQyxZQUpGLEVBS0VDLGNBTEYsRUFNRUMsY0FORixFQU9FQyxZQVBGLEVBUUVDLFlBUkYsRUFTRUMsY0FURixFQVVFQyxjQVZGLEVBV0VDLGFBWEYsRUFZRUMsYUFaRixFQWFFQyxpQkFiRixFQWNFQyxpQkFkRixRQWVPLGFBZlA7QUFnQkEsU0FBU0MsSUFBVCxFQUFlQyxHQUFmLFFBQTBCLFVBQTFCO0FBRUEsU0FBU0MsRUFBVCxRQUFtQixjQUFuQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsU0FBekI7QUFDQSxTQUFTQyxrQkFBa0IsSUFBSUMsSUFBL0IsUUFBMkMsU0FBM0M7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFFBQU4sQ0FBZTtBQUM1QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxXQUFXLENBQUNDLFVBQUQsRUFBYTtBQUN0QjtBQUNKO0FBQ0E7QUFDQTtBQUNJLFNBQUtDLEVBQUwsR0FBVyxZQUFXUixHQUFHLEVBQUcsRUFBNUI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSSxJQUFMLEdBQVlBLElBQVo7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSyxJQUFMLEdBQVlsQixZQUFaO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS21CLEdBQUwsR0FBV3pCLFdBQVg7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLMEIsTUFBTCxHQUFjckIsY0FBZDtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtzQixJQUFMLEdBQVl4QixZQUFaO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS3lCLEtBQUwsR0FBYWpCLGFBQWI7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLa0IsSUFBTCxHQUFZM0IsWUFBWjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUs0QixNQUFMLEdBQWN0QixjQUFkO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS3VCLElBQUwsR0FBWXhCLFlBQVo7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLeUIsTUFBTCxHQUFjdkIsY0FBZDtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUt3QixLQUFMLEdBQWFoQyxhQUFiO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS2lDLEtBQUwsR0FBYXhCLGFBQWI7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLeUIsUUFBTCxHQUFnQnRCLGlCQUFoQjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUt1QixRQUFMLEdBQWdCeEIsaUJBQWhCO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS3lCLE1BQUwsR0FBY2pDLGNBQWQ7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLa0MsUUFBTCxHQUFnQixJQUFJckIsUUFBSixFQUFoQjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtzQixRQUFMLEdBQWdCLElBQUl0QixRQUFKLEVBQWhCO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS3VCLFlBQUwsR0FBb0IsSUFBSXZCLFFBQUosRUFBcEI7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLd0IsR0FBTCxHQUFXLEVBQVg7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQSxHQUFMLENBQVNILFFBQVQsR0FBb0IsS0FBS0EsUUFBTCxDQUFjSSxLQUFkLEVBQXBCO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0QsR0FBTCxDQUFTRixRQUFULEdBQW9CLEtBQUtBLFFBQUwsQ0FBY0csS0FBZCxFQUFwQjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtELEdBQUwsQ0FBU0QsWUFBVCxHQUF3QixLQUFLQSxZQUFMLENBQWtCRSxLQUFsQixFQUF4QjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLFVBQUwsR0FBa0IsRUFBbEI7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxTQUFMLEdBQWlCLEVBQWpCO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsS0FBTCxHQUFhO0FBQUVDLE1BQUFBLENBQUMsRUFBRSxDQUFMO0FBQVFDLE1BQUFBLENBQUMsRUFBRSxDQUFYO0FBQWNDLE1BQUFBLENBQUMsRUFBRTtBQUFqQixLQUFiO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsUUFBTCxHQUFnQixJQUFJaEMsUUFBSixFQUFoQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtpQyxnQkFBTCxHQUF3QixDQUF4QixDQTlJc0IsQ0FnSnRCOztBQUNBcEMsSUFBQUEsSUFBSSxDQUFDcUMsaUJBQUwsQ0FBdUIsSUFBdkIsRUFBNkI3QixVQUE3QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0U4QixFQUFBQSxZQUFZLEdBQUc7QUFDYixXQUFPQyxJQUFJLENBQUNDLEtBQUwsQ0FBVyxLQUFLZixRQUFMLENBQWNnQixDQUF6QixFQUE0QixDQUFDLEtBQUtoQixRQUFMLENBQWNpQixDQUEzQyxLQUFpRCxNQUFNeEMsRUFBdkQsQ0FBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFeUMsRUFBQUEsS0FBSyxHQUFHO0FBQ04sU0FBS2pDLElBQUwsR0FBWWxCLFlBQVo7QUFDQSxTQUFLbUIsR0FBTCxHQUFXekIsV0FBWDtBQUNBLFNBQUswQixNQUFMLEdBQWNyQixjQUFkO0FBQ0EsU0FBS3NCLElBQUwsR0FBWXhCLFlBQVo7QUFDQSxTQUFLeUIsS0FBTCxHQUFhakIsYUFBYjtBQUNBLFNBQUtrQixJQUFMLEdBQVkzQixZQUFaO0FBQ0EsU0FBSzRCLE1BQUwsR0FBY3RCLGNBQWQ7QUFDQSxTQUFLdUIsSUFBTCxHQUFZeEIsWUFBWjtBQUNBLFNBQUt5QixNQUFMLEdBQWN2QixjQUFkO0FBQ0EsU0FBS3dCLEtBQUwsR0FBYWhDLGFBQWI7QUFDQSxTQUFLaUMsS0FBTCxHQUFheEIsYUFBYjtBQUNBLFNBQUt5QixRQUFMLEdBQWdCdEIsaUJBQWhCO0FBQ0EsU0FBS3VCLFFBQUwsR0FBZ0J4QixpQkFBaEI7QUFDQSxTQUFLeUIsTUFBTCxHQUFjakMsY0FBZDtBQUNBLFNBQUtrQyxRQUFMLENBQWNvQixHQUFkLENBQWtCLENBQWxCLEVBQXFCLENBQXJCLEVBQXdCLENBQXhCO0FBQ0EsU0FBS25CLFFBQUwsQ0FBY21CLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEI7QUFDQSxTQUFLbEIsWUFBTCxDQUFrQmtCLEdBQWxCLENBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsU0FBS2pCLEdBQUwsQ0FBU0gsUUFBVCxDQUFrQm9CLEdBQWxCLENBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsU0FBS2pCLEdBQUwsQ0FBU0YsUUFBVCxDQUFrQm1CLEdBQWxCLENBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsU0FBS2pCLEdBQUwsQ0FBU0QsWUFBVCxDQUFzQmtCLEdBQXRCLENBQTBCLENBQTFCLEVBQTZCLENBQTdCLEVBQWdDLENBQWhDO0FBQ0EsU0FBS2IsS0FBTCxDQUFXQyxDQUFYLEdBQWUsQ0FBZjtBQUNBLFNBQUtELEtBQUwsQ0FBV0UsQ0FBWCxHQUFlLENBQWY7QUFDQSxTQUFLRixLQUFMLENBQVdHLENBQVgsR0FBZSxDQUFmO0FBRUEsU0FBS0MsUUFBTCxDQUFjVSxLQUFkO0FBQ0E3QyxJQUFBQSxJQUFJLENBQUM4QyxhQUFMLENBQW1CLEtBQUtoQixTQUF4QjtBQUNBLFNBQUtpQixtQkFBTDtBQUVBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxDQUFDQyxJQUFELEVBQU9DLEtBQVAsRUFBYztBQUNsQixRQUFJLENBQUMsS0FBS3BDLEtBQVYsRUFBaUI7QUFDZixXQUFLSCxHQUFMLElBQVlzQyxJQUFaO0FBRUEsVUFBSUUsQ0FBQyxHQUFHLEtBQUt0QixVQUFMLENBQWdCdUIsTUFBeEI7O0FBRUEsYUFBT0QsQ0FBQyxFQUFSLEVBQVk7QUFDVixZQUFJRSxTQUFTLEdBQUcsS0FBS3hCLFVBQUwsQ0FBZ0JzQixDQUFoQixDQUFoQixDQURVLENBR1Y7O0FBQ0FFLFFBQUFBLFNBQVMsQ0FBQ0MsY0FBVixDQUF5QixJQUF6QixFQUErQkwsSUFBL0IsRUFBcUNDLEtBQXJDO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJLEtBQUt2QyxHQUFMLElBQVksS0FBS0QsSUFBckIsRUFBMkI7QUFDekIsV0FBSzZDLE9BQUw7QUFDRCxLQUZELE1BRU87QUFDTCxZQUFNbkMsS0FBSyxHQUFHLEtBQUtHLE1BQUwsQ0FBWSxLQUFLWixHQUFMLEdBQVcsS0FBS0QsSUFBNUIsQ0FBZDtBQUVBLFdBQUtFLE1BQUwsR0FBYzJCLElBQUksQ0FBQ2lCLEdBQUwsQ0FBUyxJQUFJcEMsS0FBYixFQUFvQixDQUFwQixDQUFkO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VxQyxFQUFBQSxZQUFZLENBQUNKLFNBQUQsRUFBWTtBQUN0QixTQUFLeEIsVUFBTCxDQUFnQjZCLElBQWhCLENBQXFCTCxTQUFyQjtBQUNBQSxJQUFBQSxTQUFTLENBQUNNLFVBQVYsQ0FBcUIsSUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLGFBQWEsQ0FBQy9CLFVBQUQsRUFBYTtBQUN4QixRQUFJc0IsQ0FBQyxHQUFHdEIsVUFBVSxDQUFDdUIsTUFBbkI7O0FBRUEsV0FBT0QsQ0FBQyxFQUFSLEVBQVk7QUFDVixXQUFLTSxZQUFMLENBQWtCNUIsVUFBVSxDQUFDc0IsQ0FBRCxDQUE1QjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFVSxFQUFBQSxlQUFlLENBQUNSLFNBQUQsRUFBWTtBQUN6QixVQUFNSCxLQUFLLEdBQUcsS0FBS3JCLFVBQUwsQ0FBZ0JpQyxPQUFoQixDQUF3QlQsU0FBeEIsQ0FBZDs7QUFFQSxRQUFJSCxLQUFLLEdBQUcsQ0FBQyxDQUFiLEVBQWdCO0FBQ2QsV0FBS3JCLFVBQUwsQ0FBZ0JrQyxNQUFoQixDQUF1QmIsS0FBdkIsRUFBOEIsQ0FBOUI7QUFDRDtBQUNGO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VILEVBQUFBLG1CQUFtQixHQUFHO0FBQ3BCL0MsSUFBQUEsSUFBSSxDQUFDZ0UsWUFBTCxDQUFrQixLQUFLbkMsVUFBdkI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFMEIsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsU0FBS1IsbUJBQUw7QUFDQSxTQUFLbkMsTUFBTCxHQUFjLENBQWQ7QUFDQSxTQUFLQyxJQUFMLEdBQVksSUFBWjtBQUNBLFNBQUtHLE1BQUwsR0FBYyxJQUFkO0FBQ0Q7O0FBeFQyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERFRkFVTFRfQUdFLFxuICBERUZBVUxUX0FMUEhBLFxuICBERUZBVUxUX0JPRFksXG4gIERFRkFVTFRfREVBRCxcbiAgREVGQVVMVF9FQVNJTkcsXG4gIERFRkFVTFRfRU5FUkdZLFxuICBERUZBVUxUX0xJRkUsXG4gIERFRkFVTFRfTUFTUyxcbiAgREVGQVVMVF9QQVJFTlQsXG4gIERFRkFVTFRfUkFESVVTLFxuICBERUZBVUxUX1NDQUxFLFxuICBERUZBVUxUX1NMRUVQLFxuICBERUZBVUxUX1VTRV9BTFBIQSxcbiAgREVGQVVMVF9VU0VfQ09MT1IsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFV0aWwsIHVpZCB9IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHsgUEkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVmVjdG9yM0QgfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IENPUkVfVFlQRV9QQVJUSUNMRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBQYXJ0aWNsZSBpcyBhbiBvYmplY3QgdGhhdCBpcyBlbWl0dGVkIGJ5IGFuIGVtaXR0ZXIuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJ0aWNsZSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUGFydGljbGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wZXJ0aWVzIC0gVGhlIHByb3BlcnRpZXMgdG8gaW5zdGFudGlhdGUgdGhlIHBhcnRpY2xlIHdpdGhcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHByb3BlcnRpZXMubGlmZSAtIFRoZSBwYXJ0aWNsZSdzIGxpZmVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHByb3BlcnRpZXMuYWdlIC0gVGhlIHBhcnRpY2xlJ3MgYWdlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBwcm9wZXJ0aWVzLmVuZXJneSAtIFRoZSBwYXJ0aWNsZSdzIGVuZXJneSBsb3NzXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcHJvcGVydGllcy5kZWFkIC0gRGV0ZXJtaW5lcyBpZiB0aGUgcGFydGljbGUgaXMgZGVhZCBvciBub3RcbiAgICogQHByb3BlcnR5IHtib29sZWFufSBwcm9wZXJ0aWVzLnNsZWVwIC0gRGV0ZXJtaW5lcyBpZiB0aGUgcGFydGljbGUgaXMgc2xlZXBpbmcgb3Igbm90XG4gICAqIEBwcm9wZXJ0eSB7b2JqZWN0fSBwcm9wZXJ0aWVzLnRhcmdldCAtIFRoZSBwYXJ0aWNsZSdzIHRhcmdldFxuICAgKiBAcHJvcGVydHkge29iamVjdH0gcHJvcGVydGllcy5ib2R5IC0gVGhlIHBhcnRpY2xlJ3MgYm9keVxuICAgKiBAcHJvcGVydHkge251bWJlcn0gcHJvcGVydGllcy5tYXNzIC0gVGhlIHBhcnRpY2xlJ3MgbWFzc1xuICAgKiBAcHJvcGVydHkge251bWJlcn0gcHJvcGVydGllcy5yYWRpdXMgLSBUaGUgcGFydGljbGUncyByYWRpdXNcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHByb3BlcnRpZXMuYWxwaGEgLSBUaGUgcGFydGljbGUncyBhbHBoYVxuICAgKiBAcHJvcGVydHkge251bWJlcn0gcHJvcGVydGllcy5zY2FsZSAtIFRoZSBwYXJ0aWNsZSdzIHNjYWxlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBwcm9wZXJ0aWVzLnJvdGF0aW9uIC0gVGhlIHBhcnRpY2xlJ3Mgcm90YXRpb25cbiAgICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSBwcm9wZXJ0aWVzLmNvbG9yIC0gVGhlIHBhcnRpY2xlJ3MgY29sb3JcbiAgICogQHByb3BlcnR5IHtmdW5jdGlvbn0gcHJvcGVydGllcy5lYXNpbmcgLSBUaGUgcGFydGljbGUncyBlYXNpbmdcbiAgICogQHByb3BlcnR5IHtWZWN0b3IzRH0gcHJvcGVydGllcy5wb3NpdGlvbiAtIFRoZSBwYXJ0aWNsZSdzIHBvc2l0aW9uXG4gICAqIEBwcm9wZXJ0eSB7VmVjdG9yM0R9IHByb3BlcnRpZXMudmVsb2NpdHkgLSBUaGUgcGFydGljbGUncyB2ZWxvY2l0eVxuICAgKiBAcHJvcGVydHkge1ZlY3RvcjNEfSBwcm9wZXJ0aWVzLmFjY2VsZXJhdGlvbiAtIFRoZSBwYXJ0aWNsZSdzIGFjY2VsZXJhdGlvblxuICAgKiBAcHJvcGVydHkge2FycmF5fSBwcm9wZXJ0aWVzLmJlaGF2aW91cnMgLSBUaGUgcGFydGljbGUncyBiZWhhdmlvdXJzIGFycmF5XG4gICAqIEBwcm9wZXJ0eSB7b2JqZWN0fSBwcm9wZXJ0aWVzLnRyYW5zZm9ybSAtIFRoZSBwYXJ0aWNsZSdzIHRyYW5zZm9ybSBjb2xsZWN0aW9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydGllcykge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHVuaXF1ZSBpZFxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5pZCA9IGBwYXJ0aWNsZS0ke3VpZCgpfWA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY2xhc3MgdHlwZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgbGlmZVxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5saWZlID0gREVGQVVMVF9MSUZFO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIGFnZVxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5hZ2UgPSBERUZBVUxUX0FHRTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBlbmVyZ3kgbG9zc1xuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5lbmVyZ3kgPSBERUZBVUxUX0VORVJHWTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIGlmIHRoZSBwYXJ0aWNsZSBpcyBkZWFkIG9yIG5vdFxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5kZWFkID0gREVGQVVMVF9ERUFEO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIERldGVybWluZXMgaWYgdGhlIHBhcnRpY2xlIGlzIHNsZWVwaW5nIG9yIG5vdFxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5zbGVlcCA9IERFRkFVTFRfU0xFRVA7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgYm9keVxuICAgICAqIEB0eXBlIHtvYmplY3R9XG4gICAgICovXG4gICAgdGhpcy5ib2R5ID0gREVGQVVMVF9CT0RZO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHBhcmVudFxuICAgICAqIEB0eXBlIHs/RW1pdHRlcn1cbiAgICAgKi9cbiAgICB0aGlzLnBhcmVudCA9IERFRkFVTFRfUEFSRU5UO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIG1hc3NcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMubWFzcyA9IERFRkFVTFRfTUFTUztcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyByYWRpdXNcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzID0gREVGQVVMVF9SQURJVVM7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgYWxwaGFcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuYWxwaGEgPSBERUZBVUxUX0FMUEhBO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHNjYWxlXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLnNjYWxlID0gREVGQVVMVF9TQ0FMRTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIGNvbG9yIG9yIG5vdFxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMudXNlQ29sb3IgPSBERUZBVUxUX1VTRV9DT0xPUjtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIGFscGhhIG9yIG5vdFxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMudXNlQWxwaGEgPSBERUZBVUxUX1VTRV9BTFBIQTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBlYXNpbmdcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuZWFzaW5nID0gREVGQVVMVF9FQVNJTkc7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgcG9zaXRpb25cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5wb3NpdGlvbiA9IG5ldyBWZWN0b3IzRCgpO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHZlbG9jaXR5XG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMudmVsb2NpdHkgPSBuZXcgVmVjdG9yM0QoKTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBhY2NlbGVyYXRpb25cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5hY2NlbGVyYXRpb24gPSBuZXcgVmVjdG9yM0QoKTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBsYXN0IHBvc2l0aW9uLCB2ZWxvY2l0eSBhbmQgYWNjZWxlcmF0aW9uXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMub2xkID0ge307XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3Mgb2xkIHBvc2l0aW9uXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMub2xkLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbi5jbG9uZSgpO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIG9sZCB2ZWxvY2l0eVxuICAgICAqIEB0eXBlIHtWZWN0b3IzRH1cbiAgICAgKi9cbiAgICB0aGlzLm9sZC52ZWxvY2l0eSA9IHRoaXMudmVsb2NpdHkuY2xvbmUoKTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBvbGQgYWNjZWxlcmF0aW9uXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMub2xkLmFjY2VsZXJhdGlvbiA9IHRoaXMuYWNjZWxlcmF0aW9uLmNsb25lKCk7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgYmVoYXZpb3VycyBhcnJheVxuICAgICAqIEB0eXBlIHthcnJheX1cbiAgICAgKi9cbiAgICB0aGlzLmJlaGF2aW91cnMgPSBbXTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyB0cmFuc2Zvcm0gY29sbGVjdGlvblxuICAgICAqIEB0eXBlIHtvYmplY3R9XG4gICAgICovXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7fTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBjb2xvciBzdG9yZVxuICAgICAqIEB0eXBlIHtvYmplY3R9XG4gICAgICovXG4gICAgdGhpcy5jb2xvciA9IHsgcjogMCwgZzogMCwgYjogMCB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHJvdGF0aW9uXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLnJvdGF0aW9uID0gbmV3IFZlY3RvcjNEKCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBkaXN0YW5jZSB0byB0aGUgY2FtZXJhLCBvbmx5IHNldCBieSB0aGUgR1BVUmVuZGVyZXIgZm9yIGRlcHRoIHNvcnRpbmcgcHVycG9zZXMuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmRpc3RhbmNlVG9DYW1lcmEgPSAwO1xuXG4gICAgLy8gb3ZlcnJpZGUgY29uc3RydWN0b3IgcHJvcHMgd2l0aCBwYXNzZWQgcHJvcGVydGllcy5cbiAgICBVdGlsLnNldFByb3RvdHlwZUJ5T2JqKHRoaXMsIHByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBhcnRpY2xlJ3MgY3VycmVudCBkaXJlY3Rpb24uXG4gICAqXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldERpcmVjdGlvbigpIHtcbiAgICByZXR1cm4gTWF0aC5hdGFuMih0aGlzLnZlbG9jaXR5LngsIC10aGlzLnZlbG9jaXR5LnkpICogKDE4MCAvIFBJKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIHBhcnRpY2xlJ3MgZGVmYXVsdCBwcm9wZXJ0aWVzIGFuZCBjbGVhcidzIGl0cyBwYXJ0aWNsZSdzIHBvc2l0aW9uLFxuICAgKiB2ZWxvY2l0eSwgYWNjZWxlcmF0aW9uLCBjb2xvciBhbmQgcm90YXRpb24uIEFsc28gZGVzdHJveSdzIHRoZSBwYXJ0aWNsZSdzXG4gICAqIHRyYW5zZm9ybSBjb2xsZWN0aW9uICYgcmVtb3ZlcyBhbGwgYmVoYXZpb3Vycy5cbiAgICpcbiAgICogQHJldHVybiB7UGFydGljbGV9XG4gICAqL1xuICByZXNldCgpIHtcbiAgICB0aGlzLmxpZmUgPSBERUZBVUxUX0xJRkU7XG4gICAgdGhpcy5hZ2UgPSBERUZBVUxUX0FHRTtcbiAgICB0aGlzLmVuZXJneSA9IERFRkFVTFRfRU5FUkdZO1xuICAgIHRoaXMuZGVhZCA9IERFRkFVTFRfREVBRDtcbiAgICB0aGlzLnNsZWVwID0gREVGQVVMVF9TTEVFUDtcbiAgICB0aGlzLmJvZHkgPSBERUZBVUxUX0JPRFk7XG4gICAgdGhpcy5wYXJlbnQgPSBERUZBVUxUX1BBUkVOVDtcbiAgICB0aGlzLm1hc3MgPSBERUZBVUxUX01BU1M7XG4gICAgdGhpcy5yYWRpdXMgPSBERUZBVUxUX1JBRElVUztcbiAgICB0aGlzLmFscGhhID0gREVGQVVMVF9BTFBIQTtcbiAgICB0aGlzLnNjYWxlID0gREVGQVVMVF9TQ0FMRTtcbiAgICB0aGlzLnVzZUNvbG9yID0gREVGQVVMVF9VU0VfQ09MT1I7XG4gICAgdGhpcy51c2VBbHBoYSA9IERFRkFVTFRfVVNFX0FMUEhBO1xuICAgIHRoaXMuZWFzaW5nID0gREVGQVVMVF9FQVNJTkc7XG4gICAgdGhpcy5wb3NpdGlvbi5zZXQoMCwgMCwgMCk7XG4gICAgdGhpcy52ZWxvY2l0eS5zZXQoMCwgMCwgMCk7XG4gICAgdGhpcy5hY2NlbGVyYXRpb24uc2V0KDAsIDAsIDApO1xuICAgIHRoaXMub2xkLnBvc2l0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLm9sZC52ZWxvY2l0eS5zZXQoMCwgMCwgMCk7XG4gICAgdGhpcy5vbGQuYWNjZWxlcmF0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLmNvbG9yLnIgPSAwO1xuICAgIHRoaXMuY29sb3IuZyA9IDA7XG4gICAgdGhpcy5jb2xvci5iID0gMDtcblxuICAgIHRoaXMucm90YXRpb24uY2xlYXIoKTtcbiAgICBVdGlsLmRlc3Ryb3lPYmplY3QodGhpcy50cmFuc2Zvcm0pO1xuICAgIHRoaXMucmVtb3ZlQWxsQmVoYXZpb3VycygpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGFydGljbGUncyBwcm9wZXJ0aWVzIGJ5IGFwcGx5aW5nIGVhY2ggYmVoYXZpb3VyIHRvIHRoZSBwYXJ0aWNsZS5cbiAgICogV2lsbCBhbHNvIHVwZGF0ZSB0aGUgcGFydGljbGUncyBlbmVyZ3ksIHVubGVzcyBpdCdzIGFnZSBpcyBncmVhdGVyIHRoYW4gaXQncyBsaWZlXG4gICAqIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBkZXN0cm95ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gSW50ZWdyYXRpb24gdGltZVxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gUGFydGljbGUgaW5kZXhcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICB1cGRhdGUodGltZSwgaW5kZXgpIHtcbiAgICBpZiAoIXRoaXMuc2xlZXApIHtcbiAgICAgIHRoaXMuYWdlICs9IHRpbWU7XG5cbiAgICAgIGxldCBpID0gdGhpcy5iZWhhdmlvdXJzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICBsZXQgYmVoYXZpb3VyID0gdGhpcy5iZWhhdmlvdXJzW2ldO1xuXG4gICAgICAgIC8vYmVoYXZpb3VyICYmIFxuICAgICAgICBiZWhhdmlvdXIuYXBwbHlCZWhhdmlvdXIodGhpcywgdGltZSwgaW5kZXgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFnZSA+PSB0aGlzLmxpZmUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzY2FsZSA9IHRoaXMuZWFzaW5nKHRoaXMuYWdlIC8gdGhpcy5saWZlKTtcblxuICAgICAgdGhpcy5lbmVyZ3kgPSBNYXRoLm1heCgxIC0gc2NhbGUsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgYmVoYXZpb3VyIHRvIHRoZSBwYXJ0aWNsZS5cbiAgICpcbiAgICogQHBhcmFtIHtCZWhhdmlvdXJ9IGJlaGF2aW91ciAtIFRoZSBiZWhhdmlvdXIgdG8gYWRkIHRvIHRoZSBwYXJ0aWNsZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGFkZEJlaGF2aW91cihiZWhhdmlvdXIpIHtcbiAgICB0aGlzLmJlaGF2aW91cnMucHVzaChiZWhhdmlvdXIpO1xuICAgIGJlaGF2aW91ci5pbml0aWFsaXplKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbXVsdGlwbGUgYmVoYXZpb3VycyB0byB0aGUgcGFydGljbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7YXJyYXk8QmVoYXZpb3VyPn0gYmVoYXZpb3VycyAtIEFuIGFycmF5IG9mIGJlaGF2aW91cnMgdG8gYWRkIHRvIHRoZSBwYXJ0aWNsZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGFkZEJlaGF2aW91cnMoYmVoYXZpb3Vycykge1xuICAgIGxldCBpID0gYmVoYXZpb3Vycy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB0aGlzLmFkZEJlaGF2aW91cihiZWhhdmlvdXJzW2ldKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgYmVoYXZpb3VyIGZyb20gdGhlIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcGFyYW0ge0JlaGF2aW91cn0gYmVoYXZpb3VyIC0gVGhlIGJlaGF2aW91ciB0byByZW1vdmUgZnJvbSB0aGUgcGFydGljbGVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZW1vdmVCZWhhdmlvdXIoYmVoYXZpb3VyKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmJlaGF2aW91cnMuaW5kZXhPZihiZWhhdmlvdXIpO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuYmVoYXZpb3Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFsbCBiZWhhdmlvdXJzIGZyb20gdGhlIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlbW92ZUFsbEJlaGF2aW91cnMoKSB7XG4gICAgVXRpbC5kZXN0cm95QXJyYXkodGhpcy5iZWhhdmlvdXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgcGFydGljbGUuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJlbW92ZUFsbEJlaGF2aW91cnMoKTtcbiAgICB0aGlzLmVuZXJneSA9IDA7XG4gICAgdGhpcy5kZWFkID0gdHJ1ZTtcbiAgICB0aGlzLnBhcmVudCA9IG51bGw7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/Pool.js",
    "content": "import PUID from '../utils/PUID';\nimport { CORE_TYPE_POOL as type } from './types';\n/**\n * An object pool implementation. Used for pooling objects to avoid unnecessary\n * garbage collection.\n *\n */\n\nexport default class Pool {\n  /**\n   * Constructs a Pool instance.\n   *\n   * @return void\n   */\n  constructor() {\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n    this.type = type;\n    /**\n     * @desc Incrementing id that keeps a count of the number of objects created\n     * @type {integer}\n     */\n\n    this.cID = 0;\n    /**\n     * @desc Map of pools in the format of PUID<String>: pool<Array>\n     * @type {object}\n     */\n\n    this.list = {};\n  }\n  /**\n   * Attempts to create a new object either by creating a new instance or calling its\n   * clone method.\n   *\n   * TODO COVERAGE - for the constructorArgs\n   * @param {function|object} functionOrObject - The object to instantiate or clone\n   * @return {object|undefined}\n   */\n\n\n  create(functionOrObject, ...constructorArgs) {\n    if (!this.canCreateNewObject(functionOrObject)) {\n      throw new Error('The pool is unable to create or clone the object supplied');\n    }\n\n    this.cID++;\n\n    if (this.canInstantiateObject(functionOrObject)) {\n      return new functionOrObject(...constructorArgs);\n    }\n\n    if (this.canCloneObject(functionOrObject)) {\n      return functionOrObject.clone();\n    }\n  }\n  /**\n   * Determines if the object is able to be instantiated or not.\n   *\n   * @param {object} object - The object to check\n   * @return {boolean}\n   */\n\n\n  canInstantiateObject(object) {\n    return typeof object === 'function';\n  }\n  /**\n   * Determines if the object is able to be cloned or not.\n   *\n   * @param {object} object - The object to check\n   * @return {boolean}\n   */\n\n\n  canCloneObject(object) {\n    return object.clone && typeof object.clone === 'function';\n  }\n  /**\n   * Determines if a new object is able to be created.\n   *\n   * @param {object} object - The object to check\n   * @return {boolean}\n   */\n\n\n  canCreateNewObject(object) {\n    return this.canInstantiateObject(object) || this.canCloneObject(object) ? true : false;\n  }\n  /**\n   * Gets a count of all objects in the pool.\n   *\n   * @return {integer}\n   */\n\n\n  getCount() {\n    var count = 0;\n\n    for (var id in this.list) count += this.list[id].length;\n\n    return count++;\n  }\n  /**\n   * Gets an object either by creating a new one or retrieving it from the pool.\n   *\n   * @param {function|object} obj - The function or object to get\n   * @param {array} args - The args to pass to the function on creation\n   * @return {object}\n   */\n\n\n  get(obj, ...args) {\n    var p,\n        puid = obj.__puid || PUID.id(obj);\n    if (this.list[puid] && this.list[puid].length > 0) p = this.list[puid].pop();else p = this.create(obj, ...args);\n    p.__puid = obj.__puid || puid;\n    return p;\n  }\n  /**\n   * Pushes an object into the pool.\n   *\n   * @param {object} obj - The object to expire\n   * @return {integer}\n   */\n\n\n  expire(obj) {\n    return this._getList(obj.__puid).push(obj);\n  }\n  /**\n   * Destroys all pools.\n   *\n   * @return void\n   */\n\n\n  destroy() {\n    for (var id in this.list) {\n      this.list[id].length = 0;\n      delete this.list[id];\n    }\n  }\n  /**\n   * Gets the pool mapped to the UID.\n   *\n   * @param {string} uid - The pool uid\n   * @return {array}\n   */\n\n\n  _getList(uid) {\n    uid = uid || 'default';\n    if (!this.list[uid]) this.list[uid] = [];\n    return this.list[uid];\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL1Bvb2wuanMiXSwibmFtZXMiOlsiUFVJRCIsIkNPUkVfVFlQRV9QT09MIiwidHlwZSIsIlBvb2wiLCJjb25zdHJ1Y3RvciIsImNJRCIsImxpc3QiLCJjcmVhdGUiLCJmdW5jdGlvbk9yT2JqZWN0IiwiY29uc3RydWN0b3JBcmdzIiwiY2FuQ3JlYXRlTmV3T2JqZWN0IiwiRXJyb3IiLCJjYW5JbnN0YW50aWF0ZU9iamVjdCIsImNhbkNsb25lT2JqZWN0IiwiY2xvbmUiLCJvYmplY3QiLCJnZXRDb3VudCIsImNvdW50IiwiaWQiLCJsZW5ndGgiLCJnZXQiLCJvYmoiLCJhcmdzIiwicCIsInB1aWQiLCJfX3B1aWQiLCJwb3AiLCJleHBpcmUiLCJfZ2V0TGlzdCIsInB1c2giLCJkZXN0cm95IiwidWlkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxJQUFQLE1BQWlCLGVBQWpCO0FBQ0EsU0FBU0MsY0FBYyxJQUFJQyxJQUEzQixRQUF1QyxTQUF2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxJQUFOLENBQVc7QUFDeEI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxXQUFXLEdBQUc7QUFDWjtBQUNKO0FBQ0E7QUFDQTtBQUNJLFNBQUtGLElBQUwsR0FBWUEsSUFBWjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtHLEdBQUwsR0FBVyxDQUFYO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsSUFBTCxHQUFZLEVBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxNQUFNLENBQUNDLGdCQUFELEVBQW1CLEdBQUdDLGVBQXRCLEVBQXVDO0FBQzNDLFFBQUksQ0FBQyxLQUFLQyxrQkFBTCxDQUF3QkYsZ0JBQXhCLENBQUwsRUFBZ0Q7QUFDOUMsWUFBTSxJQUFJRyxLQUFKLENBQ0osMkRBREksQ0FBTjtBQUdEOztBQUVELFNBQUtOLEdBQUw7O0FBRUEsUUFBSSxLQUFLTyxvQkFBTCxDQUEwQkosZ0JBQTFCLENBQUosRUFBaUQ7QUFDL0MsYUFBTyxJQUFJQSxnQkFBSixDQUFxQixHQUFHQyxlQUF4QixDQUFQO0FBQ0Q7O0FBRUQsUUFBSSxLQUFLSSxjQUFMLENBQW9CTCxnQkFBcEIsQ0FBSixFQUEyQztBQUN6QyxhQUFPQSxnQkFBZ0IsQ0FBQ00sS0FBakIsRUFBUDtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRixFQUFBQSxvQkFBb0IsQ0FBQ0csTUFBRCxFQUFTO0FBQzNCLFdBQU8sT0FBT0EsTUFBUCxLQUFrQixVQUF6QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUYsRUFBQUEsY0FBYyxDQUFDRSxNQUFELEVBQVM7QUFDckIsV0FBT0EsTUFBTSxDQUFDRCxLQUFQLElBQWdCLE9BQU9DLE1BQU0sQ0FBQ0QsS0FBZCxLQUF3QixVQUEvQztBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUosRUFBQUEsa0JBQWtCLENBQUNLLE1BQUQsRUFBUztBQUN6QixXQUFPLEtBQUtILG9CQUFMLENBQTBCRyxNQUExQixLQUFxQyxLQUFLRixjQUFMLENBQW9CRSxNQUFwQixDQUFyQyxHQUNILElBREcsR0FFSCxLQUZKO0FBR0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsUUFBSUMsS0FBSyxHQUFHLENBQVo7O0FBRUEsU0FBSyxJQUFJQyxFQUFULElBQWUsS0FBS1osSUFBcEIsRUFBMEJXLEtBQUssSUFBSSxLQUFLWCxJQUFMLENBQVVZLEVBQVYsRUFBY0MsTUFBdkI7O0FBRTFCLFdBQU9GLEtBQUssRUFBWjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxHQUFHLENBQUNDLEdBQUQsRUFBTSxHQUFHQyxJQUFULEVBQWU7QUFDaEIsUUFBSUMsQ0FBSjtBQUFBLFFBQ0VDLElBQUksR0FBR0gsR0FBRyxDQUFDSSxNQUFKLElBQWN6QixJQUFJLENBQUNrQixFQUFMLENBQVFHLEdBQVIsQ0FEdkI7QUFHQSxRQUFJLEtBQUtmLElBQUwsQ0FBVWtCLElBQVYsS0FBbUIsS0FBS2xCLElBQUwsQ0FBVWtCLElBQVYsRUFBZ0JMLE1BQWhCLEdBQXlCLENBQWhELEVBQ0VJLENBQUMsR0FBRyxLQUFLakIsSUFBTCxDQUFVa0IsSUFBVixFQUFnQkUsR0FBaEIsRUFBSixDQURGLEtBRUtILENBQUMsR0FBRyxLQUFLaEIsTUFBTCxDQUFZYyxHQUFaLEVBQWlCLEdBQUdDLElBQXBCLENBQUo7QUFFTEMsSUFBQUEsQ0FBQyxDQUFDRSxNQUFGLEdBQVdKLEdBQUcsQ0FBQ0ksTUFBSixJQUFjRCxJQUF6QjtBQUVBLFdBQU9ELENBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLE1BQU0sQ0FBQ04sR0FBRCxFQUFNO0FBQ1YsV0FBTyxLQUFLTyxRQUFMLENBQWNQLEdBQUcsQ0FBQ0ksTUFBbEIsRUFBMEJJLElBQTFCLENBQStCUixHQUEvQixDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRVMsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsU0FBSyxJQUFJWixFQUFULElBQWUsS0FBS1osSUFBcEIsRUFBMEI7QUFDeEIsV0FBS0EsSUFBTCxDQUFVWSxFQUFWLEVBQWNDLE1BQWQsR0FBdUIsQ0FBdkI7QUFDQSxhQUFPLEtBQUtiLElBQUwsQ0FBVVksRUFBVixDQUFQO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VVLEVBQUFBLFFBQVEsQ0FBQ0csR0FBRCxFQUFNO0FBQ1pBLElBQUFBLEdBQUcsR0FBR0EsR0FBRyxJQUFJLFNBQWI7QUFDQSxRQUFJLENBQUMsS0FBS3pCLElBQUwsQ0FBVXlCLEdBQVYsQ0FBTCxFQUFxQixLQUFLekIsSUFBTCxDQUFVeUIsR0FBVixJQUFpQixFQUFqQjtBQUVyQixXQUFPLEtBQUt6QixJQUFMLENBQVV5QixHQUFWLENBQVA7QUFDRDs7QUFySnVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBVSUQgZnJvbSAnLi4vdXRpbHMvUFVJRCc7XG5pbXBvcnQgeyBDT1JFX1RZUEVfUE9PTCBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG4vKipcbiAqIEFuIG9iamVjdCBwb29sIGltcGxlbWVudGF0aW9uLiBVc2VkIGZvciBwb29saW5nIG9iamVjdHMgdG8gYXZvaWQgdW5uZWNlc3NhcnlcbiAqIGdhcmJhZ2UgY29sbGVjdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvb2wge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFBvb2wgaW5zdGFuY2UuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIEluY3JlbWVudGluZyBpZCB0aGF0IGtlZXBzIGEgY291bnQgb2YgdGhlIG51bWJlciBvZiBvYmplY3RzIGNyZWF0ZWRcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cbiAgICAgKi9cbiAgICB0aGlzLmNJRCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBNYXAgb2YgcG9vbHMgaW4gdGhlIGZvcm1hdCBvZiBQVUlEPFN0cmluZz46IHBvb2w8QXJyYXk+XG4gICAgICogQHR5cGUge29iamVjdH1cbiAgICAgKi9cbiAgICB0aGlzLmxpc3QgPSB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IGVpdGhlciBieSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZSBvciBjYWxsaW5nIGl0c1xuICAgKiBjbG9uZSBtZXRob2QuXG4gICAqXG4gICAqIFRPRE8gQ09WRVJBR0UgLSBmb3IgdGhlIGNvbnN0cnVjdG9yQXJnc1xuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufG9iamVjdH0gZnVuY3Rpb25Pck9iamVjdCAtIFRoZSBvYmplY3QgdG8gaW5zdGFudGlhdGUgb3IgY2xvbmVcbiAgICogQHJldHVybiB7b2JqZWN0fHVuZGVmaW5lZH1cbiAgICovXG4gIGNyZWF0ZShmdW5jdGlvbk9yT2JqZWN0LCAuLi5jb25zdHJ1Y3RvckFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuY2FuQ3JlYXRlTmV3T2JqZWN0KGZ1bmN0aW9uT3JPYmplY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdUaGUgcG9vbCBpcyB1bmFibGUgdG8gY3JlYXRlIG9yIGNsb25lIHRoZSBvYmplY3Qgc3VwcGxpZWQnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY0lEKys7XG5cbiAgICBpZiAodGhpcy5jYW5JbnN0YW50aWF0ZU9iamVjdChmdW5jdGlvbk9yT2JqZWN0KSkge1xuICAgICAgcmV0dXJuIG5ldyBmdW5jdGlvbk9yT2JqZWN0KC4uLmNvbnN0cnVjdG9yQXJncyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2FuQ2xvbmVPYmplY3QoZnVuY3Rpb25Pck9iamVjdCkpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbk9yT2JqZWN0LmNsb25lKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIG9iamVjdCBpcyBhYmxlIHRvIGJlIGluc3RhbnRpYXRlZCBvciBub3QuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgLSBUaGUgb2JqZWN0IHRvIGNoZWNrXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBjYW5JbnN0YW50aWF0ZU9iamVjdChvYmplY3QpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBvYmplY3QgaXMgYWJsZSB0byBiZSBjbG9uZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byBjaGVja1xuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgY2FuQ2xvbmVPYmplY3Qob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdC5jbG9uZSAmJiB0eXBlb2Ygb2JqZWN0LmNsb25lID09PSAnZnVuY3Rpb24nO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBuZXcgb2JqZWN0IGlzIGFibGUgdG8gYmUgY3JlYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCAtIFRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGNhbkNyZWF0ZU5ld09iamVjdChvYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5jYW5JbnN0YW50aWF0ZU9iamVjdChvYmplY3QpIHx8IHRoaXMuY2FuQ2xvbmVPYmplY3Qob2JqZWN0KVxuICAgICAgPyB0cnVlXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBjb3VudCBvZiBhbGwgb2JqZWN0cyBpbiB0aGUgcG9vbC5cbiAgICpcbiAgICogQHJldHVybiB7aW50ZWdlcn1cbiAgICovXG4gIGdldENvdW50KCkge1xuICAgIHZhciBjb3VudCA9IDA7XG5cbiAgICBmb3IgKHZhciBpZCBpbiB0aGlzLmxpc3QpIGNvdW50ICs9IHRoaXMubGlzdFtpZF0ubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGNvdW50Kys7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBvYmplY3QgZWl0aGVyIGJ5IGNyZWF0aW5nIGEgbmV3IG9uZSBvciByZXRyaWV2aW5nIGl0IGZyb20gdGhlIHBvb2wuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb258b2JqZWN0fSBvYmogLSBUaGUgZnVuY3Rpb24gb3Igb2JqZWN0IHRvIGdldFxuICAgKiBAcGFyYW0ge2FycmF5fSBhcmdzIC0gVGhlIGFyZ3MgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24gb24gY3JlYXRpb25cbiAgICogQHJldHVybiB7b2JqZWN0fVxuICAgKi9cbiAgZ2V0KG9iaiwgLi4uYXJncykge1xuICAgIHZhciBwLFxuICAgICAgcHVpZCA9IG9iai5fX3B1aWQgfHwgUFVJRC5pZChvYmopO1xuXG4gICAgaWYgKHRoaXMubGlzdFtwdWlkXSAmJiB0aGlzLmxpc3RbcHVpZF0ubGVuZ3RoID4gMClcbiAgICAgIHAgPSB0aGlzLmxpc3RbcHVpZF0ucG9wKCk7XG4gICAgZWxzZSBwID0gdGhpcy5jcmVhdGUob2JqLCAuLi5hcmdzKTtcblxuICAgIHAuX19wdWlkID0gb2JqLl9fcHVpZCB8fCBwdWlkO1xuXG4gICAgcmV0dXJuIHA7XG4gIH1cblxuICAvKipcbiAgICogUHVzaGVzIGFuIG9iamVjdCBpbnRvIHRoZSBwb29sLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gb2JqIC0gVGhlIG9iamVjdCB0byBleHBpcmVcbiAgICogQHJldHVybiB7aW50ZWdlcn1cbiAgICovXG4gIGV4cGlyZShvYmopIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0TGlzdChvYmouX19wdWlkKS5wdXNoKG9iaik7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgYWxsIHBvb2xzLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgZm9yICh2YXIgaWQgaW4gdGhpcy5saXN0KSB7XG4gICAgICB0aGlzLmxpc3RbaWRdLmxlbmd0aCA9IDA7XG4gICAgICBkZWxldGUgdGhpcy5saXN0W2lkXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcG9vbCBtYXBwZWQgdG8gdGhlIFVJRC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVpZCAtIFRoZSBwb29sIHVpZFxuICAgKiBAcmV0dXJuIHthcnJheX1cbiAgICovXG4gIF9nZXRMaXN0KHVpZCkge1xuICAgIHVpZCA9IHVpZCB8fCAnZGVmYXVsdCc7XG4gICAgaWYgKCF0aGlzLmxpc3RbdWlkXSkgdGhpcy5saXN0W3VpZF0gPSBbXTtcblxuICAgIHJldHVybiB0aGlzLmxpc3RbdWlkXTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/System.js",
    "content": "import EventDispatcher, { EMITTER_ADDED, EMITTER_REMOVED, SYSTEM_UPDATE, SYSTEM_UPDATE_AFTER } from '../events';\nimport { DEFAULT_SYSTEM_DELTA } from './constants';\nimport Emitter from '../emitter/Emitter';\nimport { INTEGRATION_TYPE_EULER } from '../math/constants';\nimport { POOL_MAX } from '../constants';\nimport Pool from './Pool';\nimport fromJSON from './fromJSON';\nimport fromJSONAsync from './fromJSONAsync';\nimport { CORE_TYPE_SYSTEM as type } from './types';\n/**\n * The core of the three-system particle engine.\n * A System instance can contain multiple emitters, each with their own initializers\n * and behaviours.\n *\n */\n\nexport default class System {\n  /**\n   * Constructs a System instance.\n   *\n   * @param {object} THREE - ThreeJs\n   * @param {number} [preParticles=POOL_MAX] - The number of particles to start with\n   * @param {string} [integrationType=INTEGRATION_TYPE_EULER] - The integration type to use\n   * @return void\n   */\n  constructor(preParticles = POOL_MAX, integrationType = INTEGRATION_TYPE_EULER) {\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n    this.type = type;\n    /**\n     * @desc The system name.\n     * @type {string}\n     */\n    this.name = '';\n    /**\n     * @desc Determines if the system can update or not. Set to false when destroying\n     * to ensure that external calls to update do not throw errors.\n     * @type {boolean}\n     */\n\n    this.canUpdate = true;\n    /**\n     * @desc The number of particles to start with.\n     * @type {number}\n     */\n\n    this.preParticles = preParticles;\n    /**\n     * @desc The integration algorithm type to use.\n     * @param {string}\n     */\n\n    this.integrationType = integrationType;\n    /**\n     * @desc The emitters in the particle system.\n     * @type {array<Emitter>}\n     */\n\n    this.emitters = [];\n    /**\n     * @desc The renderers for the system.\n     * @type {array<Renderer>}\n     */\n\n    this.renderers = [];\n    /**\n     * @desc A pool used to manage the internal system cache of objects\n     * @type {Pool}\n     */\n\n    this.pool = new Pool();\n    /**\n     * @desc Internal event dispatcher\n     * @type {EventDispatcher}\n     */\n\n    this.eventDispatcher = new EventDispatcher();\n  }\n  /**\n   * Creates a System instance from a JSON object.\n   *\n   * @param {object} json - The JSON to create the System instance from\n   * @param {object} THREE - The Web GL Api to use eg., THREE\n   * @return {System}\n   *\n   * @deprecated use fromJSONAsync instead\n   */\n\n\n  static fromJSON(json, THREE) {\n    return fromJSON(json, THREE, System, Emitter);\n  }\n  /**\n   * Loads a System instance from JSON asynchronously. Ensures all textures are\n   * fully loaded before resolving with the instantiated System instance.\n   *\n   * @param {object} json - The JSON to create the System instance from\n   * @param {object} THREE - The Web GL Api to use eg., THREE\n   * @param {?object} options - Optional config options\n   * @return {Promise<System>}\n   */\n\n\n  static fromJSONAsync(json, THREE, options) {\n    return fromJSONAsync(json, THREE, System, Emitter, options);\n  }\n  /**\n   * Proxy method for the internal event dispatcher's dispatchEvent method.\n   *\n   * @param {string} event - The event to dispatch\n   * @param {object<System|Emitter|Particle>} [target=this] - The event target\n   */\n\n\n  dispatch(event, target = this) {\n    this.eventDispatcher.dispatchEvent(event, target);\n  }\n  /**\n   * Adds a renderer to the System instance and initializes it.\n   *\n   * @param {Renderer} renderer - The renderer to add\n   * @return {System}\n   */\n\n\n  addRenderer(renderer) {\n    this.renderers.push(renderer);\n    renderer.init(this);\n    return this;\n  }\n  /**\n   * Removes a renderer from the System instance.\n   *\n   * @param {Renderer} renderer\n   * @return {System}\n   */\n\n\n  removeRenderer(renderer) {\n    this.renderers.splice(this.renderers.indexOf(renderer), 1);\n    renderer.remove(this);\n    return this;\n  }\n  /**\n   * Adds an emitter to the System instance.\n   * Dispatches the EMITTER_ADDED event.\n   *\n   * @param {Emitter} emitter - The emitter to add\n   * @return {System}\n   */\n\n\n  addEmitter(emitter) {\n    const index = this.emitters.length;\n    emitter.parent = this;\n    emitter.index = index;\n    this.emitters.push(emitter);\n    this.dispatch(EMITTER_ADDED, emitter);\n    return this;\n  }\n  /**\n   * Removes an emitter from the System instance.\n   * Dispatches the EMITTER_REMOVED event.\n   *\n   * @param {Emitter} emitter - The emitter to remove\n   * @return {System}\n   */\n\n\n  removeEmitter(emitter) {\n    if (emitter.parent !== this) {\n      return this;\n    }\n\n    emitter.parent = null;\n    emitter.index = undefined;\n    this.emitters.splice(this.emitters.indexOf(emitter), 1);\n    this.dispatch(EMITTER_REMOVED, emitter);\n    return this;\n  }\n  /**\n   * Wires up life cycle methods and causes a system's emitters to emit particles.\n   * Expects emitters to have their totalEmitTimes and life set already.\n   * Inifnite systems will resolve immediately.\n   *\n   * @param {object} hooks - Functions to hook into the life cycle API\n   * @param {function} hooks.onStart - Called when the system starts to emit particles\n   * @param {function} hooks.onUpdate - Called each time the system updates\n   * @param {function} hooks.onEnd - Called when the system's emitters have all died\n   * @return {Promise}\n   */\n\n\n  emit({\n    onStart,\n    onUpdate,\n    onEnd\n  }) {\n    if (onStart) {\n      onStart();\n    }\n\n    if (onUpdate) {\n      this.eventDispatcher.addEventListener(SYSTEM_UPDATE, onUpdate);\n    }\n\n    const emitters = this.emitters.map(emitter => {\n      const {\n        life\n      } = emitter;\n\n      if (life === Infinity) {\n        if (onEnd) {\n          onEnd();\n        }\n\n        emitter.experimental_emit();\n        return Promise.resolve();\n      }\n\n      return new Promise(resolve => {\n        emitter.addOnEmitterDeadEventListener(() => {\n          if (onEnd) {\n            onEnd();\n          }\n\n          resolve();\n        });\n        emitter.experimental_emit();\n      });\n    });\n\n    try {\n      return Promise.all(emitters);\n    } catch (e) {\n      console.warn(e);\n    }\n  }\n  /**\n   * Updates the particle system based on the delta passed.\n   *\n   * @example\n   * animate = () => {\n   *   threeRenderer.render(threeScene, threeCamera);\n   *   system.update();\n   *   requestAnimationFrame(animate);\n   * }\n   * animate();\n   *\n   * @param {number} delta - Delta time\n   * @return {Promise}\n   */\n\n\n  update(delta = DEFAULT_SYSTEM_DELTA) {\n    const d = delta || DEFAULT_SYSTEM_DELTA;\n\n    if (this.canUpdate) {\n      if (d > 0) {\n        let i = this.emitters.length;\n\n        while (i--) {\n          const emitter = this.emitters[i];\n          emitter.update(d);\n          emitter.particles.length && this.dispatch(SYSTEM_UPDATE);\n        }\n      }\n\n      this.dispatch(SYSTEM_UPDATE_AFTER);\n    }\n\n    return Promise.resolve();\n  }\n  /**\n   * Gets a count of the total number of particles in the system.\n   *\n   * @return {integer}\n   */\n\n\n  getCount() {\n    const length = this.emitters.length;\n    let total = 0;\n    let i;\n\n    for (i = 0; i < length; i++) {\n      total += this.emitters[i].particles.length;\n    }\n\n    return total;\n  }\n  /**\n   * Destroys all emitters, renderers and the Nebula pool.\n   * Ensures that this.update will not perform any operations while the system\n   * is being destroyed.\n   *\n   * @return void\n   */\n\n\n  destroy() {\n    const length = this.emitters.length;\n    this.canUpdate = false;\n\n    for (let e = 0; e < length; e++) {\n      this.emitters[e] && this.emitters[e].destroy();\n      delete this.emitters[e];\n    }\n\n    for (let r = 0; r < length; r++) {\n      if (this.renderers[r] && this.renderers[r].destroy) {\n        this.renderers[r].destroy();\n        delete this.renderers[r];\n      }\n    }\n\n    this.emitters.length = 0;\n    this.pool.destroy();\n    this.canUpdate = true;\n  }\n\n}"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/constants.js",
    "content": "import { BEHAVIOUR_TYPE_ALPHA, BEHAVIOUR_TYPE_ATTRACTION, BEHAVIOUR_TYPE_COLOR, BEHAVIOUR_TYPE_CROSS_ZONE, BEHAVIOUR_TYPE_FORCE, BEHAVIOUR_TYPE_GRAVITY, BEHAVIOUR_TYPE_RANDOM_DRIFT, BEHAVIOUR_TYPE_REPULSION, BEHAVIOUR_TYPE_ROTATE, BEHAVIOUR_TYPE_SCALE, BEHAVIOUR_TYPE_SPRING } from '../behaviour/types';\nimport { INITIALIZER_TYPE_BODY, INITIALIZER_TYPE_BODY_SPRITE, INITIALIZER_TYPE_LIFE, INITIALIZER_TYPE_MASS, INITIALIZER_TYPE_POLAR_VELOCITY, INITIALIZER_TYPE_POSITION, INITIALIZER_TYPE_ROTATION, INITIALIZER_TYPE_RADIAL_VELOCITY, INITIALIZER_TYPE_RADIUS, INITIALIZER_TYPE_TEXTURE, INITIALIZER_TYPE_VECTOR_VELOCITY } from '../initializer/types';\nimport { ZONE_TYPE_BOX, ZONE_TYPE_LINE, ZONE_TYPE_MESH, ZONE_TYPE_POINT, ZONE_TYPE_SPHERE } from '../zone/types';\nimport { RENDERER_TYPE_SPRITE } from '../renderer/types';\nimport { easeLinear } from '../ease';\n/**\n * @desc Default particle life\n * @type {number}\n */\n\nexport const DEFAULT_LIFE = Infinity;\n/**\n * @desc Default particle age\n * @type {number}\n */\n\nexport const DEFAULT_AGE = 0;\n/**\n * @desc Default particle energy\n * @type {number}\n */\n\nexport const DEFAULT_ENERGY = 1;\n/**\n * @desc Default particle dead\n * @type {boolean}\n */\n\nexport const DEFAULT_DEAD = false;\n/**\n * @desc Default particle sleep\n * @type {boolean}\n */\n\nexport const DEFAULT_SLEEP = false;\n/**\n * @desc Default particle index\n * @type {number}\n */\n\nexport const DEFAULT_INDEX = 0;\n/**\n * @desc Default particle body\n * @type {?object}\n */\n\nexport const DEFAULT_BODY = null;\n/**\n * @desc Default particle parent\n * @type {?Emitter}\n */\n\nexport const DEFAULT_PARENT = null;\n/**\n * @desc Default particle mass\n * @type {number}\n */\n\nexport const DEFAULT_MASS = 1;\n/**\n * @desc Default particle radius\n * @type {number}\n */\n\nexport const DEFAULT_RADIUS = 10;\n/**\n * @desc Default particle alpha\n * @type {number}\n */\n\nexport const DEFAULT_ALPHA = 1;\n/**\n * @desc Default particle scale\n * @type {number}\n */\n\nexport const DEFAULT_SCALE = 1;\n/**\n * @desc Default particle useColor\n * @type {boolean}\n */\n\nexport const DEFAULT_USE_COLOR = false;\n/**\n * @desc Default particle useAlpha\n * @type {boolean}\n */\n\nexport const DEFAULT_USE_ALPHA = false;\n/**\n * @desc Default particle easing\n * @type {function}\n */\n\nexport const DEFAULT_EASING = easeLinear;\n/**\n * @desc The default delta provided to the System instance\n * @type {number}\n */\n\nexport const DEFAULT_SYSTEM_DELTA = 0.0167;\n/**\n * @desc The types of initializers supported by the System.fromJSON method.\n * @type {array<string>}\n */\n\nexport const SUPPORTED_JSON_INITIALIZER_TYPES = [INITIALIZER_TYPE_POSITION, INITIALIZER_TYPE_ROTATION, INITIALIZER_TYPE_LIFE, INITIALIZER_TYPE_RADIUS, INITIALIZER_TYPE_MASS, INITIALIZER_TYPE_BODY, INITIALIZER_TYPE_BODY_SPRITE, INITIALIZER_TYPE_TEXTURE, INITIALIZER_TYPE_POLAR_VELOCITY, INITIALIZER_TYPE_RADIAL_VELOCITY, INITIALIZER_TYPE_VECTOR_VELOCITY];\n/**\n * @desc The types of behaviours supported by the System.fromJSON method.\n * @type {array<string>}\n */\n\nexport const SUPPORTED_JSON_BEHAVIOUR_TYPES = [BEHAVIOUR_TYPE_ALPHA, BEHAVIOUR_TYPE_ATTRACTION, BEHAVIOUR_TYPE_COLOR, BEHAVIOUR_TYPE_CROSS_ZONE, BEHAVIOUR_TYPE_FORCE, BEHAVIOUR_TYPE_GRAVITY, BEHAVIOUR_TYPE_RANDOM_DRIFT, BEHAVIOUR_TYPE_REPULSION, BEHAVIOUR_TYPE_ROTATE, BEHAVIOUR_TYPE_SCALE, BEHAVIOUR_TYPE_SPRING];\n/**\n * @desc The types of renderers supported by the System.fromJSON method.\n * @type {array<string>}\n */\n\nexport const SUPPORTED_JSON_RENDERER_TYPES = [RENDERER_TYPE_SPRITE];\n/**\n * @desc The types of zones supported by the System.fromJSON method.\n * @type {array<string>}\n */\n\nexport const SUPPORTED_JSON_ZONE_TYPES = [ZONE_TYPE_BOX, ZONE_TYPE_LINE, ZONE_TYPE_MESH, ZONE_TYPE_POINT, ZONE_TYPE_SPHERE];\nexport { INITIALIZER_TYPES_THAT_REQUIRE_THREE } from '../initializer/types';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJCRUhBVklPVVJfVFlQRV9BTFBIQSIsIkJFSEFWSU9VUl9UWVBFX0FUVFJBQ1RJT04iLCJCRUhBVklPVVJfVFlQRV9DT0xPUiIsIkJFSEFWSU9VUl9UWVBFX0NST1NTX1pPTkUiLCJCRUhBVklPVVJfVFlQRV9GT1JDRSIsIkJFSEFWSU9VUl9UWVBFX0dSQVZJVFkiLCJCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQiLCJCRUhBVklPVVJfVFlQRV9SRVBVTFNJT04iLCJCRUhBVklPVVJfVFlQRV9ST1RBVEUiLCJCRUhBVklPVVJfVFlQRV9TQ0FMRSIsIkJFSEFWSU9VUl9UWVBFX1NQUklORyIsIklOSVRJQUxJWkVSX1RZUEVfQk9EWSIsIklOSVRJQUxJWkVSX1RZUEVfQk9EWV9TUFJJVEUiLCJJTklUSUFMSVpFUl9UWVBFX0xJRkUiLCJJTklUSUFMSVpFUl9UWVBFX01BU1MiLCJJTklUSUFMSVpFUl9UWVBFX1BPTEFSX1ZFTE9DSVRZIiwiSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTiIsIklOSVRJQUxJWkVSX1RZUEVfUk9UQVRJT04iLCJJTklUSUFMSVpFUl9UWVBFX1JBRElBTF9WRUxPQ0lUWSIsIklOSVRJQUxJWkVSX1RZUEVfUkFESVVTIiwiSU5JVElBTElaRVJfVFlQRV9URVhUVVJFIiwiSU5JVElBTElaRVJfVFlQRV9WRUNUT1JfVkVMT0NJVFkiLCJaT05FX1RZUEVfQk9YIiwiWk9ORV9UWVBFX0xJTkUiLCJaT05FX1RZUEVfTUVTSCIsIlpPTkVfVFlQRV9QT0lOVCIsIlpPTkVfVFlQRV9TUEhFUkUiLCJSRU5ERVJFUl9UWVBFX1NQUklURSIsImVhc2VMaW5lYXIiLCJERUZBVUxUX0xJRkUiLCJJbmZpbml0eSIsIkRFRkFVTFRfQUdFIiwiREVGQVVMVF9FTkVSR1kiLCJERUZBVUxUX0RFQUQiLCJERUZBVUxUX1NMRUVQIiwiREVGQVVMVF9JTkRFWCIsIkRFRkFVTFRfQk9EWSIsIkRFRkFVTFRfUEFSRU5UIiwiREVGQVVMVF9NQVNTIiwiREVGQVVMVF9SQURJVVMiLCJERUZBVUxUX0FMUEhBIiwiREVGQVVMVF9TQ0FMRSIsIkRFRkFVTFRfVVNFX0NPTE9SIiwiREVGQVVMVF9VU0VfQUxQSEEiLCJERUZBVUxUX0VBU0lORyIsIkRFRkFVTFRfU1lTVEVNX0RFTFRBIiwiU1VQUE9SVEVEX0pTT05fSU5JVElBTElaRVJfVFlQRVMiLCJTVVBQT1JURURfSlNPTl9CRUhBVklPVVJfVFlQRVMiLCJTVVBQT1JURURfSlNPTl9SRU5ERVJFUl9UWVBFUyIsIlNVUFBPUlRFRF9KU09OX1pPTkVfVFlQRVMiLCJJTklUSUFMSVpFUl9UWVBFU19USEFUX1JFUVVJUkVfVEhSRUUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLG9CQURGLEVBRUVDLHlCQUZGLEVBR0VDLG9CQUhGLEVBSUVDLHlCQUpGLEVBS0VDLG9CQUxGLEVBTUVDLHNCQU5GLEVBT0VDLDJCQVBGLEVBUUVDLHdCQVJGLEVBU0VDLHFCQVRGLEVBVUVDLG9CQVZGLEVBV0VDLHFCQVhGLFFBWU8sb0JBWlA7QUFhQSxTQUNFQyxxQkFERixFQUVFQyw0QkFGRixFQUdFQyxxQkFIRixFQUlFQyxxQkFKRixFQUtFQywrQkFMRixFQU1FQyx5QkFORixFQU9FQyx5QkFQRixFQVFFQyxnQ0FSRixFQVNFQyx1QkFURixFQVVFQyx3QkFWRixFQVdFQyxnQ0FYRixRQVlPLHNCQVpQO0FBYUEsU0FDRUMsYUFERixFQUVFQyxjQUZGLEVBR0VDLGNBSEYsRUFJRUMsZUFKRixFQUtFQyxnQkFMRixRQU1PLGVBTlA7QUFRQSxTQUFTQyxvQkFBVCxRQUFxQyxtQkFBckM7QUFDQSxTQUFTQyxVQUFULFFBQTJCLFNBQTNCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxZQUFZLEdBQUdDLFFBQXJCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxXQUFXLEdBQUcsQ0FBcEI7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGNBQWMsR0FBRyxDQUF2QjtBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLEtBQXJCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxhQUFhLEdBQUcsS0FBdEI7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGFBQWEsR0FBRyxDQUF0QjtBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLElBQXJCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxjQUFjLEdBQUcsSUFBdkI7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLFlBQVksR0FBRyxDQUFyQjtBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsY0FBYyxHQUFHLEVBQXZCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxhQUFhLEdBQUcsQ0FBdEI7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGFBQWEsR0FBRyxDQUF0QjtBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsaUJBQWlCLEdBQUcsS0FBMUI7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLEtBQTFCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxjQUFjLEdBQUdoQixVQUF2QjtBQUVQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTWlCLG9CQUFvQixHQUFHLE1BQTdCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxnQ0FBZ0MsR0FBRyxDQUM5QzlCLHlCQUQ4QyxFQUU5Q0MseUJBRjhDLEVBRzlDSixxQkFIOEMsRUFJOUNNLHVCQUo4QyxFQUs5Q0wscUJBTDhDLEVBTTlDSCxxQkFOOEMsRUFPOUNDLDRCQVA4QyxFQVE5Q1Esd0JBUjhDLEVBUzlDTCwrQkFUOEMsRUFVOUNHLGdDQVY4QyxFQVc5Q0csZ0NBWDhDLENBQXpDO0FBY1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNMEIsOEJBQThCLEdBQUcsQ0FDNUMvQyxvQkFENEMsRUFFNUNDLHlCQUY0QyxFQUc1Q0Msb0JBSDRDLEVBSTVDQyx5QkFKNEMsRUFLNUNDLG9CQUw0QyxFQU01Q0Msc0JBTjRDLEVBTzVDQywyQkFQNEMsRUFRNUNDLHdCQVI0QyxFQVM1Q0MscUJBVDRDLEVBVTVDQyxvQkFWNEMsRUFXNUNDLHFCQVg0QyxDQUF2QztBQWNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTXNDLDZCQUE2QixHQUFHLENBQUNyQixvQkFBRCxDQUF0QztBQUVQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTXNCLHlCQUF5QixHQUFHLENBQ3ZDM0IsYUFEdUMsRUFFdkNDLGNBRnVDLEVBR3ZDQyxjQUh1QyxFQUl2Q0MsZUFKdUMsRUFLdkNDLGdCQUx1QyxDQUFsQztBQVFQLFNBQVN3QixvQ0FBVCxRQUFxRCxzQkFBckQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCRUhBVklPVVJfVFlQRV9BTFBIQSxcbiAgQkVIQVZJT1VSX1RZUEVfQVRUUkFDVElPTixcbiAgQkVIQVZJT1VSX1RZUEVfQ09MT1IsXG4gIEJFSEFWSU9VUl9UWVBFX0NST1NTX1pPTkUsXG4gIEJFSEFWSU9VUl9UWVBFX0ZPUkNFLFxuICBCRUhBVklPVVJfVFlQRV9HUkFWSVRZLFxuICBCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQsXG4gIEJFSEFWSU9VUl9UWVBFX1JFUFVMU0lPTixcbiAgQkVIQVZJT1VSX1RZUEVfUk9UQVRFLFxuICBCRUhBVklPVVJfVFlQRV9TQ0FMRSxcbiAgQkVIQVZJT1VSX1RZUEVfU1BSSU5HLFxufSBmcm9tICcuLi9iZWhhdmlvdXIvdHlwZXMnO1xuaW1wb3J0IHtcbiAgSU5JVElBTElaRVJfVFlQRV9CT0RZLFxuICBJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFLFxuICBJTklUSUFMSVpFUl9UWVBFX0xJRkUsXG4gIElOSVRJQUxJWkVSX1RZUEVfTUFTUyxcbiAgSU5JVElBTElaRVJfVFlQRV9QT0xBUl9WRUxPQ0lUWSxcbiAgSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTixcbiAgSU5JVElBTElaRVJfVFlQRV9ST1RBVElPTixcbiAgSU5JVElBTElaRVJfVFlQRV9SQURJQUxfVkVMT0NJVFksXG4gIElOSVRJQUxJWkVSX1RZUEVfUkFESVVTLFxuICBJTklUSUFMSVpFUl9UWVBFX1RFWFRVUkUsXG4gIElOSVRJQUxJWkVSX1RZUEVfVkVDVE9SX1ZFTE9DSVRZLFxufSBmcm9tICcuLi9pbml0aWFsaXplci90eXBlcyc7XG5pbXBvcnQge1xuICBaT05FX1RZUEVfQk9YLFxuICBaT05FX1RZUEVfTElORSxcbiAgWk9ORV9UWVBFX01FU0gsXG4gIFpPTkVfVFlQRV9QT0lOVCxcbiAgWk9ORV9UWVBFX1NQSEVSRSxcbn0gZnJvbSAnLi4vem9uZS90eXBlcyc7XG5cbmltcG9ydCB7IFJFTkRFUkVSX1RZUEVfU1BSSVRFIH0gZnJvbSAnLi4vcmVuZGVyZXIvdHlwZXMnO1xuaW1wb3J0IHsgZWFzZUxpbmVhciB9IGZyb20gJy4uL2Vhc2UnO1xuXG4vKipcbiAqIEBkZXNjIERlZmF1bHQgcGFydGljbGUgbGlmZVxuICogQHR5cGUge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElGRSA9IEluZmluaXR5O1xuLyoqXG4gKiBAZGVzYyBEZWZhdWx0IHBhcnRpY2xlIGFnZVxuICogQHR5cGUge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUdFID0gMDtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBlbmVyZ3lcbiAqIEB0eXBlIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VORVJHWSA9IDE7XG4vKipcbiAqIEBkZXNjIERlZmF1bHQgcGFydGljbGUgZGVhZFxuICogQHR5cGUge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RFQUQgPSBmYWxzZTtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBzbGVlcFxuICogQHR5cGUge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NMRUVQID0gZmFsc2U7XG5cbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBpbmRleFxuICogQHR5cGUge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5ERVggPSAwO1xuLyoqXG4gKiBAZGVzYyBEZWZhdWx0IHBhcnRpY2xlIGJvZHlcbiAqIEB0eXBlIHs/b2JqZWN0fVxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9CT0RZID0gbnVsbDtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBwYXJlbnRcbiAqIEB0eXBlIHs/RW1pdHRlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFSRU5UID0gbnVsbDtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBtYXNzXG4gKiBAdHlwZSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVNTID0gMTtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSByYWRpdXNcbiAqIEB0eXBlIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JBRElVUyA9IDEwO1xuLyoqXG4gKiBAZGVzYyBEZWZhdWx0IHBhcnRpY2xlIGFscGhhXG4gKiBAdHlwZSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9BTFBIQSA9IDE7XG4vKipcbiAqIEBkZXNjIERlZmF1bHQgcGFydGljbGUgc2NhbGVcbiAqIEB0eXBlIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NDQUxFID0gMTtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSB1c2VDb2xvclxuICogQHR5cGUge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1VTRV9DT0xPUiA9IGZhbHNlO1xuLyoqXG4gKiBAZGVzYyBEZWZhdWx0IHBhcnRpY2xlIHVzZUFscGhhXG4gKiBAdHlwZSB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVNFX0FMUEhBID0gZmFsc2U7XG4vKipcbiAqIEBkZXNjIERlZmF1bHQgcGFydGljbGUgZWFzaW5nXG4gKiBAdHlwZSB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VBU0lORyA9IGVhc2VMaW5lYXI7XG5cbi8qKlxuICogQGRlc2MgVGhlIGRlZmF1bHQgZGVsdGEgcHJvdmlkZWQgdG8gdGhlIFN5c3RlbSBpbnN0YW5jZVxuICogQHR5cGUge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lTVEVNX0RFTFRBID0gMC4wMTY3O1xuXG4vKipcbiAqIEBkZXNjIFRoZSB0eXBlcyBvZiBpbml0aWFsaXplcnMgc3VwcG9ydGVkIGJ5IHRoZSBTeXN0ZW0uZnJvbUpTT04gbWV0aG9kLlxuICogQHR5cGUge2FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBTVVBQT1JURURfSlNPTl9JTklUSUFMSVpFUl9UWVBFUyA9IFtcbiAgSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTixcbiAgSU5JVElBTElaRVJfVFlQRV9ST1RBVElPTixcbiAgSU5JVElBTElaRVJfVFlQRV9MSUZFLFxuICBJTklUSUFMSVpFUl9UWVBFX1JBRElVUyxcbiAgSU5JVElBTElaRVJfVFlQRV9NQVNTLFxuICBJTklUSUFMSVpFUl9UWVBFX0JPRFksXG4gIElOSVRJQUxJWkVSX1RZUEVfQk9EWV9TUFJJVEUsXG4gIElOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSxcbiAgSU5JVElBTElaRVJfVFlQRV9QT0xBUl9WRUxPQ0lUWSxcbiAgSU5JVElBTElaRVJfVFlQRV9SQURJQUxfVkVMT0NJVFksXG4gIElOSVRJQUxJWkVSX1RZUEVfVkVDVE9SX1ZFTE9DSVRZLFxuXTtcblxuLyoqXG4gKiBAZGVzYyBUaGUgdHlwZXMgb2YgYmVoYXZpb3VycyBzdXBwb3J0ZWQgYnkgdGhlIFN5c3RlbS5mcm9tSlNPTiBtZXRob2QuXG4gKiBAdHlwZSB7YXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9KU09OX0JFSEFWSU9VUl9UWVBFUyA9IFtcbiAgQkVIQVZJT1VSX1RZUEVfQUxQSEEsXG4gIEJFSEFWSU9VUl9UWVBFX0FUVFJBQ1RJT04sXG4gIEJFSEFWSU9VUl9UWVBFX0NPTE9SLFxuICBCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FLFxuICBCRUhBVklPVVJfVFlQRV9GT1JDRSxcbiAgQkVIQVZJT1VSX1RZUEVfR1JBVklUWSxcbiAgQkVIQVZJT1VSX1RZUEVfUkFORE9NX0RSSUZULFxuICBCRUhBVklPVVJfVFlQRV9SRVBVTFNJT04sXG4gIEJFSEFWSU9VUl9UWVBFX1JPVEFURSxcbiAgQkVIQVZJT1VSX1RZUEVfU0NBTEUsXG4gIEJFSEFWSU9VUl9UWVBFX1NQUklORyxcbl07XG5cbi8qKlxuICogQGRlc2MgVGhlIHR5cGVzIG9mIHJlbmRlcmVycyBzdXBwb3J0ZWQgYnkgdGhlIFN5c3RlbS5mcm9tSlNPTiBtZXRob2QuXG4gKiBAdHlwZSB7YXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9KU09OX1JFTkRFUkVSX1RZUEVTID0gW1JFTkRFUkVSX1RZUEVfU1BSSVRFXTtcblxuLyoqXG4gKiBAZGVzYyBUaGUgdHlwZXMgb2Ygem9uZXMgc3VwcG9ydGVkIGJ5IHRoZSBTeXN0ZW0uZnJvbUpTT04gbWV0aG9kLlxuICogQHR5cGUge2FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBTVVBQT1JURURfSlNPTl9aT05FX1RZUEVTID0gW1xuICBaT05FX1RZUEVfQk9YLFxuICBaT05FX1RZUEVfTElORSxcbiAgWk9ORV9UWVBFX01FU0gsXG4gIFpPTkVfVFlQRV9QT0lOVCxcbiAgWk9ORV9UWVBFX1NQSEVSRSxcbl07XG5cbmV4cG9ydCB7IElOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSB9IGZyb20gJy4uL2luaXRpYWxpemVyL3R5cGVzJztcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/fromJSON.js",
    "content": "import * as Behaviour from '../behaviour';\nimport * as Initializer from '../initializer';\nimport { EULER, POOL_MAX } from '../constants';\nimport { INITIALIZER_TYPES_THAT_REQUIRE_THREE, SUPPORTED_JSON_BEHAVIOUR_TYPES, SUPPORTED_JSON_INITIALIZER_TYPES } from './constants';\nimport Rate from '../initializer/Rate';\n/**\n * Makes a rate instance.\n *\n * @param {object} json - The data required to construct a Rate instance\n * @return {Rate}\n */\n\nconst makeRate = json => Rate.fromJSON(json);\n/**\n * Makes initializers from json items.\n *\n * @param {array<object>} items - An array of objects which provide initializer constructor params\n * @param {object} THREE - The Web GL Api to use\n * @return {array<Initializer>}\n */\n\n\nconst makeInitializers = (items, THREE) => {\n  const initializers = [];\n  items.forEach(data => {\n    const {\n      type,\n      properties\n    } = data;\n\n    if (!SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) {\n      throw new Error(`The initializer type ${type} is invalid or not yet supported`);\n    }\n\n    if (INITIALIZER_TYPES_THAT_REQUIRE_THREE.includes(type)) {\n      initializers.push(Initializer[type].fromJSON(properties, THREE));\n    } else {\n      initializers.push(Initializer[type].fromJSON(properties));\n    }\n  });\n  return initializers;\n};\n/**\n * Makes behaviours from json items.\n *\n * @param {array<object>} items - An array of objects which provide behaviour constructor params\n * @return {array<Behaviour>}\n */\n\n\nconst makeBehaviours = items => {\n  const behaviours = [];\n  items.forEach(data => {\n    const {\n      type,\n      properties\n    } = data;\n\n    if (!SUPPORTED_JSON_BEHAVIOUR_TYPES.includes(type)) {\n      throw new Error(`The behaviour type ${type} is invalid or not yet supported`);\n    }\n\n    behaviours.push(Behaviour[type].fromJSON(properties));\n  });\n  return behaviours;\n};\n/**\n * Creates a System instance from a JSON object.\n *\n * @deprecated Use fromJSONAsync instead.\n *\n * @param {object} json - The JSON to create the System instance from\n * @param {object} THREE - The Web GL Api to use\n * @param {function} System - The system class\n * @param {function} Emitter - The emitter class\n * @param {number} json.preParticles - The predetermined number of particles\n * @param {string} json.integrationType - The integration algorithm to use\n * @param {array<object>} json.emitters - The emitters for the system instance\n * @return {System}\n */\n\n\nexport default ((json, THREE, System, Emitter) => {\n  const {\n    preParticles = POOL_MAX,\n    integrationType = EULER,\n    emitters = []\n  } = json;\n  const system = new System(THREE, preParticles, integrationType);\n  emitters.forEach(data => {\n    const emitter = new Emitter();\n    const {\n      rate,\n      rotation,\n      initializers,\n      behaviours,\n      emitterBehaviours = [],\n      position,\n      totalEmitTimes = Infinity,\n      life = Infinity\n    } = data;\n    emitter.setRate(makeRate(rate)).setRotation(rotation).setInitializers(makeInitializers(initializers, THREE)).setBehaviours(makeBehaviours(behaviours)).setEmitterBehaviours(makeBehaviours(emitterBehaviours)).setPosition(position).emit(totalEmitTimes, life);\n    system.addEmitter(emitter);\n  });\n  return system;\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2Zyb21KU09OLmpzIl0sIm5hbWVzIjpbIkJlaGF2aW91ciIsIkluaXRpYWxpemVyIiwiRVVMRVIiLCJQT09MX01BWCIsIklOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSIsIlNVUFBPUlRFRF9KU09OX0JFSEFWSU9VUl9UWVBFUyIsIlNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTIiwiUmF0ZSIsIm1ha2VSYXRlIiwianNvbiIsImZyb21KU09OIiwibWFrZUluaXRpYWxpemVycyIsIml0ZW1zIiwiVEhSRUUiLCJpbml0aWFsaXplcnMiLCJmb3JFYWNoIiwiZGF0YSIsInR5cGUiLCJwcm9wZXJ0aWVzIiwiaW5jbHVkZXMiLCJFcnJvciIsInB1c2giLCJtYWtlQmVoYXZpb3VycyIsImJlaGF2aW91cnMiLCJTeXN0ZW0iLCJFbWl0dGVyIiwicHJlUGFydGljbGVzIiwiaW50ZWdyYXRpb25UeXBlIiwiZW1pdHRlcnMiLCJzeXN0ZW0iLCJlbWl0dGVyIiwicmF0ZSIsInJvdGF0aW9uIiwiZW1pdHRlckJlaGF2aW91cnMiLCJwb3NpdGlvbiIsInRvdGFsRW1pdFRpbWVzIiwiSW5maW5pdHkiLCJsaWZlIiwic2V0UmF0ZSIsInNldFJvdGF0aW9uIiwic2V0SW5pdGlhbGl6ZXJzIiwic2V0QmVoYXZpb3VycyIsInNldEVtaXR0ZXJCZWhhdmlvdXJzIiwic2V0UG9zaXRpb24iLCJlbWl0IiwiYWRkRW1pdHRlciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLQSxTQUFaLE1BQTJCLGNBQTNCO0FBQ0EsT0FBTyxLQUFLQyxXQUFaLE1BQTZCLGdCQUE3QjtBQUVBLFNBQVNDLEtBQVQsRUFBZ0JDLFFBQWhCLFFBQWdDLGNBQWhDO0FBQ0EsU0FDRUMsb0NBREYsRUFFRUMsOEJBRkYsRUFHRUMsZ0NBSEYsUUFJTyxhQUpQO0FBTUEsT0FBT0MsSUFBUCxNQUFpQixxQkFBakI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUMsUUFBUSxHQUFHQyxJQUFJLElBQUlGLElBQUksQ0FBQ0csUUFBTCxDQUFjRCxJQUFkLENBQXpCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE1BQU1FLGdCQUFnQixHQUFHLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUN6QyxRQUFNQyxZQUFZLEdBQUcsRUFBckI7QUFFQUYsRUFBQUEsS0FBSyxDQUFDRyxPQUFOLENBQWNDLElBQUksSUFBSTtBQUNwQixVQUFNO0FBQUVDLE1BQUFBLElBQUY7QUFBUUMsTUFBQUE7QUFBUixRQUF1QkYsSUFBN0I7O0FBRUEsUUFBSSxDQUFDVixnQ0FBZ0MsQ0FBQ2EsUUFBakMsQ0FBMENGLElBQTFDLENBQUwsRUFBc0Q7QUFDcEQsWUFBTSxJQUFJRyxLQUFKLENBQ0gsd0JBQXVCSCxJQUFLLGtDQUR6QixDQUFOO0FBR0Q7O0FBRUQsUUFBSWIsb0NBQW9DLENBQUNlLFFBQXJDLENBQThDRixJQUE5QyxDQUFKLEVBQXlEO0FBQ3ZESCxNQUFBQSxZQUFZLENBQUNPLElBQWIsQ0FBa0JwQixXQUFXLENBQUNnQixJQUFELENBQVgsQ0FBa0JQLFFBQWxCLENBQTJCUSxVQUEzQixFQUF1Q0wsS0FBdkMsQ0FBbEI7QUFDRCxLQUZELE1BRU87QUFDTEMsTUFBQUEsWUFBWSxDQUFDTyxJQUFiLENBQWtCcEIsV0FBVyxDQUFDZ0IsSUFBRCxDQUFYLENBQWtCUCxRQUFsQixDQUEyQlEsVUFBM0IsQ0FBbEI7QUFDRDtBQUNGLEdBZEQ7QUFnQkEsU0FBT0osWUFBUDtBQUNELENBcEJEO0FBc0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTVEsY0FBYyxHQUFHVixLQUFLLElBQUk7QUFDOUIsUUFBTVcsVUFBVSxHQUFHLEVBQW5CO0FBRUFYLEVBQUFBLEtBQUssQ0FBQ0csT0FBTixDQUFjQyxJQUFJLElBQUk7QUFDcEIsVUFBTTtBQUFFQyxNQUFBQSxJQUFGO0FBQVFDLE1BQUFBO0FBQVIsUUFBdUJGLElBQTdCOztBQUVBLFFBQUksQ0FBQ1gsOEJBQThCLENBQUNjLFFBQS9CLENBQXdDRixJQUF4QyxDQUFMLEVBQW9EO0FBQ2xELFlBQU0sSUFBSUcsS0FBSixDQUNILHNCQUFxQkgsSUFBSyxrQ0FEdkIsQ0FBTjtBQUdEOztBQUVETSxJQUFBQSxVQUFVLENBQUNGLElBQVgsQ0FBZ0JyQixTQUFTLENBQUNpQixJQUFELENBQVQsQ0FBZ0JQLFFBQWhCLENBQXlCUSxVQUF6QixDQUFoQjtBQUNELEdBVkQ7QUFZQSxTQUFPSyxVQUFQO0FBQ0QsQ0FoQkQ7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsZ0JBQWUsQ0FBQ2QsSUFBRCxFQUFPSSxLQUFQLEVBQWNXLE1BQWQsRUFBc0JDLE9BQXRCLEtBQWtDO0FBQy9DLFFBQU07QUFDSkMsSUFBQUEsWUFBWSxHQUFHdkIsUUFEWDtBQUVKd0IsSUFBQUEsZUFBZSxHQUFHekIsS0FGZDtBQUdKMEIsSUFBQUEsUUFBUSxHQUFHO0FBSFAsTUFJRm5CLElBSko7QUFLQSxRQUFNb0IsTUFBTSxHQUFHLElBQUlMLE1BQUosQ0FBV1gsS0FBWCxFQUFrQmEsWUFBbEIsRUFBZ0NDLGVBQWhDLENBQWY7QUFFQUMsRUFBQUEsUUFBUSxDQUFDYixPQUFULENBQWlCQyxJQUFJLElBQUk7QUFDdkIsVUFBTWMsT0FBTyxHQUFHLElBQUlMLE9BQUosRUFBaEI7QUFDQSxVQUFNO0FBQ0pNLE1BQUFBLElBREk7QUFFSkMsTUFBQUEsUUFGSTtBQUdKbEIsTUFBQUEsWUFISTtBQUlKUyxNQUFBQSxVQUpJO0FBS0pVLE1BQUFBLGlCQUFpQixHQUFHLEVBTGhCO0FBTUpDLE1BQUFBLFFBTkk7QUFPSkMsTUFBQUEsY0FBYyxHQUFHQyxRQVBiO0FBUUpDLE1BQUFBLElBQUksR0FBR0Q7QUFSSCxRQVNGcEIsSUFUSjtBQVdBYyxJQUFBQSxPQUFPLENBQ0pRLE9BREgsQ0FDVzlCLFFBQVEsQ0FBQ3VCLElBQUQsQ0FEbkIsRUFFR1EsV0FGSCxDQUVlUCxRQUZmLEVBR0dRLGVBSEgsQ0FHbUI3QixnQkFBZ0IsQ0FBQ0csWUFBRCxFQUFlRCxLQUFmLENBSG5DLEVBSUc0QixhQUpILENBSWlCbkIsY0FBYyxDQUFDQyxVQUFELENBSi9CLEVBS0dtQixvQkFMSCxDQUt3QnBCLGNBQWMsQ0FBQ1csaUJBQUQsQ0FMdEMsRUFNR1UsV0FOSCxDQU1lVCxRQU5mLEVBT0dVLElBUEgsQ0FPUVQsY0FQUixFQU93QkUsSUFQeEI7QUFTQVIsSUFBQUEsTUFBTSxDQUFDZ0IsVUFBUCxDQUFrQmYsT0FBbEI7QUFDRCxHQXZCRDtBQXlCQSxTQUFPRCxNQUFQO0FBQ0QsQ0FsQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBCZWhhdmlvdXIgZnJvbSAnLi4vYmVoYXZpb3VyJztcbmltcG9ydCAqIGFzIEluaXRpYWxpemVyIGZyb20gJy4uL2luaXRpYWxpemVyJztcblxuaW1wb3J0IHsgRVVMRVIsIFBPT0xfTUFYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIElOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSxcbiAgU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTLFxuICBTVVBQT1JURURfSlNPTl9JTklUSUFMSVpFUl9UWVBFUyxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgUmF0ZSBmcm9tICcuLi9pbml0aWFsaXplci9SYXRlJztcblxuLyoqXG4gKiBNYWtlcyBhIHJhdGUgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgZGF0YSByZXF1aXJlZCB0byBjb25zdHJ1Y3QgYSBSYXRlIGluc3RhbmNlXG4gKiBAcmV0dXJuIHtSYXRlfVxuICovXG5jb25zdCBtYWtlUmF0ZSA9IGpzb24gPT4gUmF0ZS5mcm9tSlNPTihqc29uKTtcblxuLyoqXG4gKiBNYWtlcyBpbml0aWFsaXplcnMgZnJvbSBqc29uIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0gaXRlbXMgLSBBbiBhcnJheSBvZiBvYmplY3RzIHdoaWNoIHByb3ZpZGUgaW5pdGlhbGl6ZXIgY29uc3RydWN0b3IgcGFyYW1zXG4gKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFwaSB0byB1c2VcbiAqIEByZXR1cm4ge2FycmF5PEluaXRpYWxpemVyPn1cbiAqL1xuY29uc3QgbWFrZUluaXRpYWxpemVycyA9IChpdGVtcywgVEhSRUUpID0+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJzID0gW107XG5cbiAgaXRlbXMuZm9yRWFjaChkYXRhID0+IHtcbiAgICBjb25zdCB7IHR5cGUsIHByb3BlcnRpZXMgfSA9IGRhdGE7XG5cbiAgICBpZiAoIVNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgaW5pdGlhbGl6ZXIgdHlwZSAke3R5cGV9IGlzIGludmFsaWQgb3Igbm90IHlldCBzdXBwb3J0ZWRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChJTklUSUFMSVpFUl9UWVBFU19USEFUX1JFUVVJUkVfVEhSRUUuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgIGluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMsIFRIUkVFKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBpbml0aWFsaXplcnM7XG59O1xuXG4vKipcbiAqIE1ha2VzIGJlaGF2aW91cnMgZnJvbSBqc29uIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0gaXRlbXMgLSBBbiBhcnJheSBvZiBvYmplY3RzIHdoaWNoIHByb3ZpZGUgYmVoYXZpb3VyIGNvbnN0cnVjdG9yIHBhcmFtc1xuICogQHJldHVybiB7YXJyYXk8QmVoYXZpb3VyPn1cbiAqL1xuY29uc3QgbWFrZUJlaGF2aW91cnMgPSBpdGVtcyA9PiB7XG4gIGNvbnN0IGJlaGF2aW91cnMgPSBbXTtcblxuICBpdGVtcy5mb3JFYWNoKGRhdGEgPT4ge1xuICAgIGNvbnN0IHsgdHlwZSwgcHJvcGVydGllcyB9ID0gZGF0YTtcblxuICAgIGlmICghU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgYmVoYXZpb3VyIHR5cGUgJHt0eXBlfSBpcyBpbnZhbGlkIG9yIG5vdCB5ZXQgc3VwcG9ydGVkYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBiZWhhdmlvdXJzLnB1c2goQmVoYXZpb3VyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGJlaGF2aW91cnM7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBTeXN0ZW0gaW5zdGFuY2UgZnJvbSBhIEpTT04gb2JqZWN0LlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBmcm9tSlNPTkFzeW5jIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjcmVhdGUgdGhlIFN5c3RlbSBpbnN0YW5jZSBmcm9tXG4gKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFwaSB0byB1c2VcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IFN5c3RlbSAtIFRoZSBzeXN0ZW0gY2xhc3NcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IEVtaXR0ZXIgLSBUaGUgZW1pdHRlciBjbGFzc1xuICogQHBhcmFtIHtudW1iZXJ9IGpzb24ucHJlUGFydGljbGVzIC0gVGhlIHByZWRldGVybWluZWQgbnVtYmVyIG9mIHBhcnRpY2xlc1xuICogQHBhcmFtIHtzdHJpbmd9IGpzb24uaW50ZWdyYXRpb25UeXBlIC0gVGhlIGludGVncmF0aW9uIGFsZ29yaXRobSB0byB1c2VcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0ganNvbi5lbWl0dGVycyAtIFRoZSBlbWl0dGVycyBmb3IgdGhlIHN5c3RlbSBpbnN0YW5jZVxuICogQHJldHVybiB7U3lzdGVtfVxuICovXG5leHBvcnQgZGVmYXVsdCAoanNvbiwgVEhSRUUsIFN5c3RlbSwgRW1pdHRlcikgPT4ge1xuICBjb25zdCB7XG4gICAgcHJlUGFydGljbGVzID0gUE9PTF9NQVgsXG4gICAgaW50ZWdyYXRpb25UeXBlID0gRVVMRVIsXG4gICAgZW1pdHRlcnMgPSBbXSxcbiAgfSA9IGpzb247XG4gIGNvbnN0IHN5c3RlbSA9IG5ldyBTeXN0ZW0oVEhSRUUsIHByZVBhcnRpY2xlcywgaW50ZWdyYXRpb25UeXBlKTtcblxuICBlbWl0dGVycy5mb3JFYWNoKGRhdGEgPT4ge1xuICAgIGNvbnN0IGVtaXR0ZXIgPSBuZXcgRW1pdHRlcigpO1xuICAgIGNvbnN0IHtcbiAgICAgIHJhdGUsXG4gICAgICByb3RhdGlvbixcbiAgICAgIGluaXRpYWxpemVycyxcbiAgICAgIGJlaGF2aW91cnMsXG4gICAgICBlbWl0dGVyQmVoYXZpb3VycyA9IFtdLFxuICAgICAgcG9zaXRpb24sXG4gICAgICB0b3RhbEVtaXRUaW1lcyA9IEluZmluaXR5LFxuICAgICAgbGlmZSA9IEluZmluaXR5LFxuICAgIH0gPSBkYXRhO1xuXG4gICAgZW1pdHRlclxuICAgICAgLnNldFJhdGUobWFrZVJhdGUocmF0ZSkpXG4gICAgICAuc2V0Um90YXRpb24ocm90YXRpb24pXG4gICAgICAuc2V0SW5pdGlhbGl6ZXJzKG1ha2VJbml0aWFsaXplcnMoaW5pdGlhbGl6ZXJzLCBUSFJFRSkpXG4gICAgICAuc2V0QmVoYXZpb3VycyhtYWtlQmVoYXZpb3VycyhiZWhhdmlvdXJzKSlcbiAgICAgIC5zZXRFbWl0dGVyQmVoYXZpb3VycyhtYWtlQmVoYXZpb3VycyhlbWl0dGVyQmVoYXZpb3VycykpXG4gICAgICAuc2V0UG9zaXRpb24ocG9zaXRpb24pXG4gICAgICAuZW1pdCh0b3RhbEVtaXRUaW1lcywgbGlmZSk7XG5cbiAgICBzeXN0ZW0uYWRkRW1pdHRlcihlbWl0dGVyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHN5c3RlbTtcbn07XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/fromJSONAsync.js",
    "content": "import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as Behaviour from '../behaviour';\nimport * as Initializer from '../initializer';\nimport { EULER, POOL_MAX } from '../constants';\nimport { INITIALIZER_TYPES_THAT_REQUIRE_THREE, SUPPORTED_JSON_BEHAVIOUR_TYPES, SUPPORTED_JSON_INITIALIZER_TYPES } from './constants';\nimport Rate from '../initializer/Rate';\nimport TextureInitializer from '../initializer/Texture';\nconst DEFAULT_OPTIONS = {\n  shouldAutoEmit: true\n};\n/**\n * Makes a rate instance.\n *\n * @param {object} json - The data required to construct a Rate instance\n * @return {Rate}\n */\n\nconst makeRate = json => Rate.fromJSON(json);\n/**\n * Makes initializers from json items.\n *\n * @param {array<object>} items - An array of objects which provide initializer constructor params\n * @param {object} THREE - The Web GL Api to use\n * @return {array<Initializer>}\n */\n\n\nconst makeInitializers = (items, THREE) => new Promise((resolve, reject) => {\n  if (!items.length) {\n    return resolve([]);\n  }\n\n  const numberOfInitializers = items.length;\n  const madeInitializers = [];\n  const doNotRequireTextureLoading = items.filter(({\n    properties\n  }) => !properties.texture);\n  const doRequireTextureLoading = items.filter(({\n    properties\n  }) => properties.texture);\n  doNotRequireTextureLoading.forEach(data => {\n    const {\n      type,\n      properties\n    } = data;\n\n    if (!SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) {\n      return reject(`The initializer type ${type} is invalid or not yet supported`);\n    }\n\n    if (INITIALIZER_TYPES_THAT_REQUIRE_THREE.includes(type)) {\n      madeInitializers.push(Initializer[type].fromJSON(properties, THREE));\n    } else {\n      madeInitializers.push(Initializer[type].fromJSON(properties));\n    }\n\n    if (madeInitializers.length === numberOfInitializers) {\n      return resolve(madeInitializers);\n    }\n  });\n  doRequireTextureLoading.forEach(data => {\n    const {\n      type,\n      properties,\n      properties: {\n        texture\n      }\n    } = data;\n    const textureLoader = new THREE.TextureLoader();\n\n    if (!SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) {\n      return reject(`The initializer type ${type} is invalid or not yet supported`);\n    }\n\n    textureLoader.load(texture, loadedTexture => {\n      madeInitializers.push(TextureInitializer.fromJSON(_objectSpread(_objectSpread({}, properties), {}, {\n        loadedTexture\n      }), THREE));\n\n      if (madeInitializers.length === numberOfInitializers) {\n        return resolve(madeInitializers);\n      }\n    }, undefined, reject);\n  });\n});\n/**\n * Makes behaviours from json items.\n *\n * @param {array<object>} items - An array of objects which provide behaviour constructor params\n * @return {Promise<array>}\n */\n\n\nconst makeBehaviours = items => new Promise((resolve, reject) => {\n  if (!items.length) {\n    return resolve([]);\n  }\n\n  const numberOfBehaviours = items.length;\n  const madeBehaviours = [];\n  items.forEach(data => {\n    const {\n      type,\n      properties\n    } = data;\n\n    if (!SUPPORTED_JSON_BEHAVIOUR_TYPES.includes(type)) {\n      return reject(`The behaviour type ${type} is invalid or not yet supported`);\n    }\n\n    madeBehaviours.push(Behaviour[type].fromJSON(properties));\n\n    if (madeBehaviours.length === numberOfBehaviours) {\n      return resolve(madeBehaviours);\n    }\n  });\n});\n\nconst makeEmitters = (emitters, Emitter, THREE, shouldAutoEmit) => new Promise((resolve, reject) => {\n  if (!emitters.length) {\n    return resolve([]);\n  }\n\n  const madeEmitters = [];\n  const numberOfEmitters = emitters.length;\n\n  if (!numberOfEmitters) {\n    return resolve(madeEmitters);\n  }\n\n  emitters.forEach(data => {\n    const emitter = new Emitter();\n    const {\n      rate,\n      rotation,\n      initializers,\n      behaviours,\n      emitterBehaviours = [],\n      position,\n      totalEmitTimes = Infinity,\n      life = Infinity\n    } = data;\n    emitter.setRate(makeRate(rate)).setRotation(rotation).setPosition(position);\n    makeInitializers(initializers, THREE).then(madeInitializers => {\n      emitter.setInitializers(madeInitializers);\n      return makeBehaviours(behaviours);\n    }).then(madeBehaviours => {\n      emitter.setBehaviours(madeBehaviours);\n      return makeBehaviours(emitterBehaviours);\n    }).then(madeEmitterBehaviours => {\n      emitter.setEmitterBehaviours(madeEmitterBehaviours);\n      return Promise.resolve(emitter);\n    }).then(emitter => {\n      madeEmitters.push(shouldAutoEmit ? emitter.emit(totalEmitTimes, life) : emitter.setTotalEmitTimes(totalEmitTimes).setLife(life));\n\n      if (madeEmitters.length === numberOfEmitters) {\n        return resolve(madeEmitters);\n      }\n    }).catch(reject);\n  });\n});\n/**\n * Creates a System instance from a JSON object.\n *\n * @param {object} json - The JSON to create the System instance from\n * @param {number} json.preParticles - The predetermined number of particles\n * @param {string} json.integrationType - The integration algorithm to use\n * @param {array<object>} json.emitters - The emitters for the system instance\n * @param {object} THREE - The Web GL Api to use\n * @param {function} System - The system class\n * @param {function} Emitter - The emitter class\n * @param {object} [options={}] - Optional config options\n * @return {Promise<System>}\n */\n\n\nexport default ((json, THREE, System, Emitter, options = {}) => new Promise((resolve, reject) => {\n  const {\n    preParticles = POOL_MAX,\n    integrationType = EULER,\n    emitters = []\n  } = json;\n  const system = new System(preParticles, integrationType);\n\n  const {\n    shouldAutoEmit\n  } = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n\n  makeEmitters(emitters, Emitter, THREE, shouldAutoEmit).then(madeEmitters => {\n    const numberOfEmitters = madeEmitters.length;\n\n    if (!numberOfEmitters) {\n      return resolve(system);\n    }\n\n    madeEmitters.forEach(madeEmitter => {\n      system.addEmitter(madeEmitter);\n\n      if (system.emitters.length === numberOfEmitters) {\n        resolve(system);\n      }\n    });\n  }).catch(reject);\n}));\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2Zyb21KU09OQXN5bmMuanMiXSwibmFtZXMiOlsiQmVoYXZpb3VyIiwiSW5pdGlhbGl6ZXIiLCJFVUxFUiIsIlBPT0xfTUFYIiwiSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFIiwiU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTIiwiU1VQUE9SVEVEX0pTT05fSU5JVElBTElaRVJfVFlQRVMiLCJSYXRlIiwiVGV4dHVyZUluaXRpYWxpemVyIiwiREVGQVVMVF9PUFRJT05TIiwic2hvdWxkQXV0b0VtaXQiLCJtYWtlUmF0ZSIsImpzb24iLCJmcm9tSlNPTiIsIm1ha2VJbml0aWFsaXplcnMiLCJpdGVtcyIsIlRIUkVFIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJsZW5ndGgiLCJudW1iZXJPZkluaXRpYWxpemVycyIsIm1hZGVJbml0aWFsaXplcnMiLCJkb05vdFJlcXVpcmVUZXh0dXJlTG9hZGluZyIsImZpbHRlciIsInByb3BlcnRpZXMiLCJ0ZXh0dXJlIiwiZG9SZXF1aXJlVGV4dHVyZUxvYWRpbmciLCJmb3JFYWNoIiwiZGF0YSIsInR5cGUiLCJpbmNsdWRlcyIsInB1c2giLCJ0ZXh0dXJlTG9hZGVyIiwiVGV4dHVyZUxvYWRlciIsImxvYWQiLCJsb2FkZWRUZXh0dXJlIiwidW5kZWZpbmVkIiwibWFrZUJlaGF2aW91cnMiLCJudW1iZXJPZkJlaGF2aW91cnMiLCJtYWRlQmVoYXZpb3VycyIsIm1ha2VFbWl0dGVycyIsImVtaXR0ZXJzIiwiRW1pdHRlciIsIm1hZGVFbWl0dGVycyIsIm51bWJlck9mRW1pdHRlcnMiLCJlbWl0dGVyIiwicmF0ZSIsInJvdGF0aW9uIiwiaW5pdGlhbGl6ZXJzIiwiYmVoYXZpb3VycyIsImVtaXR0ZXJCZWhhdmlvdXJzIiwicG9zaXRpb24iLCJ0b3RhbEVtaXRUaW1lcyIsIkluZmluaXR5IiwibGlmZSIsInNldFJhdGUiLCJzZXRSb3RhdGlvbiIsInNldFBvc2l0aW9uIiwidGhlbiIsInNldEluaXRpYWxpemVycyIsInNldEJlaGF2aW91cnMiLCJtYWRlRW1pdHRlckJlaGF2aW91cnMiLCJzZXRFbWl0dGVyQmVoYXZpb3VycyIsImVtaXQiLCJzZXRUb3RhbEVtaXRUaW1lcyIsInNldExpZmUiLCJjYXRjaCIsIlN5c3RlbSIsIm9wdGlvbnMiLCJwcmVQYXJ0aWNsZXMiLCJpbnRlZ3JhdGlvblR5cGUiLCJzeXN0ZW0iLCJtYWRlRW1pdHRlciIsImFkZEVtaXR0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sS0FBS0EsU0FBWixNQUEyQixjQUEzQjtBQUNBLE9BQU8sS0FBS0MsV0FBWixNQUE2QixnQkFBN0I7QUFFQSxTQUFTQyxLQUFULEVBQWdCQyxRQUFoQixRQUFnQyxjQUFoQztBQUNBLFNBQ0VDLG9DQURGLEVBRUVDLDhCQUZGLEVBR0VDLGdDQUhGLFFBSU8sYUFKUDtBQU1BLE9BQU9DLElBQVAsTUFBaUIscUJBQWpCO0FBQ0EsT0FBT0Msa0JBQVAsTUFBK0Isd0JBQS9CO0FBRUEsTUFBTUMsZUFBZSxHQUFHO0FBQUVDLEVBQUFBLGNBQWMsRUFBRTtBQUFsQixDQUF4QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxRQUFRLEdBQUdDLElBQUksSUFBSUwsSUFBSSxDQUFDTSxRQUFMLENBQWNELElBQWQsQ0FBekI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZ0JBQWdCLEdBQUcsQ0FBQ0MsS0FBRCxFQUFRQyxLQUFSLEtBQ3ZCLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDL0IsTUFBSSxDQUFDSixLQUFLLENBQUNLLE1BQVgsRUFBbUI7QUFDakIsV0FBT0YsT0FBTyxDQUFDLEVBQUQsQ0FBZDtBQUNEOztBQUVELFFBQU1HLG9CQUFvQixHQUFHTixLQUFLLENBQUNLLE1BQW5DO0FBQ0EsUUFBTUUsZ0JBQWdCLEdBQUcsRUFBekI7QUFDQSxRQUFNQywwQkFBMEIsR0FBR1IsS0FBSyxDQUFDUyxNQUFOLENBQ2pDLENBQUM7QUFBRUMsSUFBQUE7QUFBRixHQUFELEtBQW9CLENBQUNBLFVBQVUsQ0FBQ0MsT0FEQyxDQUFuQztBQUdBLFFBQU1DLHVCQUF1QixHQUFHWixLQUFLLENBQUNTLE1BQU4sQ0FDOUIsQ0FBQztBQUFFQyxJQUFBQTtBQUFGLEdBQUQsS0FBb0JBLFVBQVUsQ0FBQ0MsT0FERCxDQUFoQztBQUlBSCxFQUFBQSwwQkFBMEIsQ0FBQ0ssT0FBM0IsQ0FBbUNDLElBQUksSUFBSTtBQUN6QyxVQUFNO0FBQUVDLE1BQUFBLElBQUY7QUFBUUwsTUFBQUE7QUFBUixRQUF1QkksSUFBN0I7O0FBRUEsUUFBSSxDQUFDdkIsZ0NBQWdDLENBQUN5QixRQUFqQyxDQUEwQ0QsSUFBMUMsQ0FBTCxFQUFzRDtBQUNwRCxhQUFPWCxNQUFNLENBQ1Ysd0JBQXVCVyxJQUFLLGtDQURsQixDQUFiO0FBR0Q7O0FBRUQsUUFBSTFCLG9DQUFvQyxDQUFDMkIsUUFBckMsQ0FBOENELElBQTlDLENBQUosRUFBeUQ7QUFDdkRSLE1BQUFBLGdCQUFnQixDQUFDVSxJQUFqQixDQUFzQi9CLFdBQVcsQ0FBQzZCLElBQUQsQ0FBWCxDQUFrQmpCLFFBQWxCLENBQTJCWSxVQUEzQixFQUF1Q1QsS0FBdkMsQ0FBdEI7QUFDRCxLQUZELE1BRU87QUFDTE0sTUFBQUEsZ0JBQWdCLENBQUNVLElBQWpCLENBQXNCL0IsV0FBVyxDQUFDNkIsSUFBRCxDQUFYLENBQWtCakIsUUFBbEIsQ0FBMkJZLFVBQTNCLENBQXRCO0FBQ0Q7O0FBRUQsUUFBSUgsZ0JBQWdCLENBQUNGLE1BQWpCLEtBQTRCQyxvQkFBaEMsRUFBc0Q7QUFDcEQsYUFBT0gsT0FBTyxDQUFDSSxnQkFBRCxDQUFkO0FBQ0Q7QUFDRixHQWxCRDtBQW9CQUssRUFBQUEsdUJBQXVCLENBQUNDLE9BQXhCLENBQWdDQyxJQUFJLElBQUk7QUFDdEMsVUFBTTtBQUNKQyxNQUFBQSxJQURJO0FBRUpMLE1BQUFBLFVBRkk7QUFHSkEsTUFBQUEsVUFBVSxFQUFFO0FBQUVDLFFBQUFBO0FBQUY7QUFIUixRQUlGRyxJQUpKO0FBS0EsVUFBTUksYUFBYSxHQUFHLElBQUlqQixLQUFLLENBQUNrQixhQUFWLEVBQXRCOztBQUVBLFFBQUksQ0FBQzVCLGdDQUFnQyxDQUFDeUIsUUFBakMsQ0FBMENELElBQTFDLENBQUwsRUFBc0Q7QUFDcEQsYUFBT1gsTUFBTSxDQUNWLHdCQUF1QlcsSUFBSyxrQ0FEbEIsQ0FBYjtBQUdEOztBQUVERyxJQUFBQSxhQUFhLENBQUNFLElBQWQsQ0FDRVQsT0FERixFQUVFVSxhQUFhLElBQUk7QUFDZmQsTUFBQUEsZ0JBQWdCLENBQUNVLElBQWpCLENBQ0V4QixrQkFBa0IsQ0FBQ0ssUUFBbkIsaUNBRU9ZLFVBRlA7QUFHSVcsUUFBQUE7QUFISixVQUtFcEIsS0FMRixDQURGOztBQVVBLFVBQUlNLGdCQUFnQixDQUFDRixNQUFqQixLQUE0QkMsb0JBQWhDLEVBQXNEO0FBQ3BELGVBQU9ILE9BQU8sQ0FBQ0ksZ0JBQUQsQ0FBZDtBQUNEO0FBQ0YsS0FoQkgsRUFpQkVlLFNBakJGLEVBa0JFbEIsTUFsQkY7QUFvQkQsR0FsQ0Q7QUFtQ0QsQ0FyRUQsQ0FERjtBQXdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE1BQU1tQixjQUFjLEdBQUd2QixLQUFLLElBQzFCLElBQUlFLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDL0IsTUFBSSxDQUFDSixLQUFLLENBQUNLLE1BQVgsRUFBbUI7QUFDakIsV0FBT0YsT0FBTyxDQUFDLEVBQUQsQ0FBZDtBQUNEOztBQUVELFFBQU1xQixrQkFBa0IsR0FBR3hCLEtBQUssQ0FBQ0ssTUFBakM7QUFDQSxRQUFNb0IsY0FBYyxHQUFHLEVBQXZCO0FBRUF6QixFQUFBQSxLQUFLLENBQUNhLE9BQU4sQ0FBY0MsSUFBSSxJQUFJO0FBQ3BCLFVBQU07QUFBRUMsTUFBQUEsSUFBRjtBQUFRTCxNQUFBQTtBQUFSLFFBQXVCSSxJQUE3Qjs7QUFFQSxRQUFJLENBQUN4Qiw4QkFBOEIsQ0FBQzBCLFFBQS9CLENBQXdDRCxJQUF4QyxDQUFMLEVBQW9EO0FBQ2xELGFBQU9YLE1BQU0sQ0FDVixzQkFBcUJXLElBQUssa0NBRGhCLENBQWI7QUFHRDs7QUFFRFUsSUFBQUEsY0FBYyxDQUFDUixJQUFmLENBQW9CaEMsU0FBUyxDQUFDOEIsSUFBRCxDQUFULENBQWdCakIsUUFBaEIsQ0FBeUJZLFVBQXpCLENBQXBCOztBQUVBLFFBQUllLGNBQWMsQ0FBQ3BCLE1BQWYsS0FBMEJtQixrQkFBOUIsRUFBa0Q7QUFDaEQsYUFBT3JCLE9BQU8sQ0FBQ3NCLGNBQUQsQ0FBZDtBQUNEO0FBQ0YsR0FkRDtBQWVELENBdkJELENBREY7O0FBMEJBLE1BQU1DLFlBQVksR0FBRyxDQUFDQyxRQUFELEVBQVdDLE9BQVgsRUFBb0IzQixLQUFwQixFQUEyQk4sY0FBM0IsS0FDbkIsSUFBSU8sT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUMvQixNQUFJLENBQUN1QixRQUFRLENBQUN0QixNQUFkLEVBQXNCO0FBQ3BCLFdBQU9GLE9BQU8sQ0FBQyxFQUFELENBQWQ7QUFDRDs7QUFFRCxRQUFNMEIsWUFBWSxHQUFHLEVBQXJCO0FBQ0EsUUFBTUMsZ0JBQWdCLEdBQUdILFFBQVEsQ0FBQ3RCLE1BQWxDOztBQUVBLE1BQUksQ0FBQ3lCLGdCQUFMLEVBQXVCO0FBQ3JCLFdBQU8zQixPQUFPLENBQUMwQixZQUFELENBQWQ7QUFDRDs7QUFFREYsRUFBQUEsUUFBUSxDQUFDZCxPQUFULENBQWlCQyxJQUFJLElBQUk7QUFDdkIsVUFBTWlCLE9BQU8sR0FBRyxJQUFJSCxPQUFKLEVBQWhCO0FBQ0EsVUFBTTtBQUNKSSxNQUFBQSxJQURJO0FBRUpDLE1BQUFBLFFBRkk7QUFHSkMsTUFBQUEsWUFISTtBQUlKQyxNQUFBQSxVQUpJO0FBS0pDLE1BQUFBLGlCQUFpQixHQUFHLEVBTGhCO0FBTUpDLE1BQUFBLFFBTkk7QUFPSkMsTUFBQUEsY0FBYyxHQUFHQyxRQVBiO0FBUUpDLE1BQUFBLElBQUksR0FBR0Q7QUFSSCxRQVNGekIsSUFUSjtBQVdBaUIsSUFBQUEsT0FBTyxDQUNKVSxPQURILENBQ1c3QyxRQUFRLENBQUNvQyxJQUFELENBRG5CLEVBRUdVLFdBRkgsQ0FFZVQsUUFGZixFQUdHVSxXQUhILENBR2VOLFFBSGY7QUFLQXRDLElBQUFBLGdCQUFnQixDQUFDbUMsWUFBRCxFQUFlakMsS0FBZixDQUFoQixDQUNHMkMsSUFESCxDQUNRckMsZ0JBQWdCLElBQUk7QUFDeEJ3QixNQUFBQSxPQUFPLENBQUNjLGVBQVIsQ0FBd0J0QyxnQkFBeEI7QUFFQSxhQUFPZ0IsY0FBYyxDQUFDWSxVQUFELENBQXJCO0FBQ0QsS0FMSCxFQU1HUyxJQU5ILENBTVFuQixjQUFjLElBQUk7QUFDdEJNLE1BQUFBLE9BQU8sQ0FBQ2UsYUFBUixDQUFzQnJCLGNBQXRCO0FBRUEsYUFBT0YsY0FBYyxDQUFDYSxpQkFBRCxDQUFyQjtBQUNELEtBVkgsRUFXR1EsSUFYSCxDQVdRRyxxQkFBcUIsSUFBSTtBQUM3QmhCLE1BQUFBLE9BQU8sQ0FBQ2lCLG9CQUFSLENBQTZCRCxxQkFBN0I7QUFFQSxhQUFPN0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCNEIsT0FBaEIsQ0FBUDtBQUNELEtBZkgsRUFnQkdhLElBaEJILENBZ0JRYixPQUFPLElBQUk7QUFDZkYsTUFBQUEsWUFBWSxDQUFDWixJQUFiLENBQ0V0QixjQUFjLEdBQ1ZvQyxPQUFPLENBQUNrQixJQUFSLENBQWFYLGNBQWIsRUFBNkJFLElBQTdCLENBRFUsR0FFVlQsT0FBTyxDQUFDbUIsaUJBQVIsQ0FBMEJaLGNBQTFCLEVBQTBDYSxPQUExQyxDQUFrRFgsSUFBbEQsQ0FITjs7QUFNQSxVQUFJWCxZQUFZLENBQUN4QixNQUFiLEtBQXdCeUIsZ0JBQTVCLEVBQThDO0FBQzVDLGVBQU8zQixPQUFPLENBQUMwQixZQUFELENBQWQ7QUFDRDtBQUNGLEtBMUJILEVBMkJHdUIsS0EzQkgsQ0EyQlNoRCxNQTNCVDtBQTRCRCxHQTlDRDtBQStDRCxDQTNERCxDQURGO0FBOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxnQkFBZSxDQUFDUCxJQUFELEVBQU9JLEtBQVAsRUFBY29ELE1BQWQsRUFBc0J6QixPQUF0QixFQUErQjBCLE9BQU8sR0FBRyxFQUF6QyxLQUNiLElBQUlwRCxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQy9CLFFBQU07QUFDSm1ELElBQUFBLFlBQVksR0FBR25FLFFBRFg7QUFFSm9FLElBQUFBLGVBQWUsR0FBR3JFLEtBRmQ7QUFHSndDLElBQUFBLFFBQVEsR0FBRztBQUhQLE1BSUY5QixJQUpKO0FBS0EsUUFBTTRELE1BQU0sR0FBRyxJQUFJSixNQUFKLENBQVdFLFlBQVgsRUFBeUJDLGVBQXpCLENBQWY7O0FBQ0EsUUFBTTtBQUFFN0QsSUFBQUE7QUFBRixzQ0FBMEJELGVBQTFCLEdBQThDNEQsT0FBOUMsQ0FBTjs7QUFFQTVCLEVBQUFBLFlBQVksQ0FBQ0MsUUFBRCxFQUFXQyxPQUFYLEVBQW9CM0IsS0FBcEIsRUFBMkJOLGNBQTNCLENBQVosQ0FDR2lELElBREgsQ0FDUWYsWUFBWSxJQUFJO0FBQ3BCLFVBQU1DLGdCQUFnQixHQUFHRCxZQUFZLENBQUN4QixNQUF0Qzs7QUFFQSxRQUFJLENBQUN5QixnQkFBTCxFQUF1QjtBQUNyQixhQUFPM0IsT0FBTyxDQUFDc0QsTUFBRCxDQUFkO0FBQ0Q7O0FBRUQ1QixJQUFBQSxZQUFZLENBQUNoQixPQUFiLENBQXFCNkMsV0FBVyxJQUFJO0FBQ2xDRCxNQUFBQSxNQUFNLENBQUNFLFVBQVAsQ0FBa0JELFdBQWxCOztBQUVBLFVBQUlELE1BQU0sQ0FBQzlCLFFBQVAsQ0FBZ0J0QixNQUFoQixLQUEyQnlCLGdCQUEvQixFQUFpRDtBQUMvQzNCLFFBQUFBLE9BQU8sQ0FBQ3NELE1BQUQsQ0FBUDtBQUNEO0FBQ0YsS0FORDtBQU9ELEdBZkgsRUFnQkdMLEtBaEJILENBZ0JTaEQsTUFoQlQ7QUFpQkQsQ0ExQkQsQ0FERiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEJlaGF2aW91ciBmcm9tICcuLi9iZWhhdmlvdXInO1xuaW1wb3J0ICogYXMgSW5pdGlhbGl6ZXIgZnJvbSAnLi4vaW5pdGlhbGl6ZXInO1xuXG5pbXBvcnQgeyBFVUxFUiwgUE9PTF9NQVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFLFxuICBTVVBQT1JURURfSlNPTl9CRUhBVklPVVJfVFlQRVMsXG4gIFNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCBSYXRlIGZyb20gJy4uL2luaXRpYWxpemVyL1JhdGUnO1xuaW1wb3J0IFRleHR1cmVJbml0aWFsaXplciBmcm9tICcuLi9pbml0aWFsaXplci9UZXh0dXJlJztcblxuY29uc3QgREVGQVVMVF9PUFRJT05TID0geyBzaG91bGRBdXRvRW1pdDogdHJ1ZSB9O1xuXG4vKipcbiAqIE1ha2VzIGEgcmF0ZSBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBkYXRhIHJlcXVpcmVkIHRvIGNvbnN0cnVjdCBhIFJhdGUgaW5zdGFuY2VcbiAqIEByZXR1cm4ge1JhdGV9XG4gKi9cbmNvbnN0IG1ha2VSYXRlID0ganNvbiA9PiBSYXRlLmZyb21KU09OKGpzb24pO1xuXG4vKipcbiAqIE1ha2VzIGluaXRpYWxpemVycyBmcm9tIGpzb24gaXRlbXMuXG4gKlxuICogQHBhcmFtIHthcnJheTxvYmplY3Q+fSBpdGVtcyAtIEFuIGFycmF5IG9mIG9iamVjdHMgd2hpY2ggcHJvdmlkZSBpbml0aWFsaXplciBjb25zdHJ1Y3RvciBwYXJhbXNcbiAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQXBpIHRvIHVzZVxuICogQHJldHVybiB7YXJyYXk8SW5pdGlhbGl6ZXI+fVxuICovXG5jb25zdCBtYWtlSW5pdGlhbGl6ZXJzID0gKGl0ZW1zLCBUSFJFRSkgPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZShbXSk7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtYmVyT2ZJbml0aWFsaXplcnMgPSBpdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgbWFkZUluaXRpYWxpemVycyA9IFtdO1xuICAgIGNvbnN0IGRvTm90UmVxdWlyZVRleHR1cmVMb2FkaW5nID0gaXRlbXMuZmlsdGVyKFxuICAgICAgKHsgcHJvcGVydGllcyB9KSA9PiAhcHJvcGVydGllcy50ZXh0dXJlXG4gICAgKTtcbiAgICBjb25zdCBkb1JlcXVpcmVUZXh0dXJlTG9hZGluZyA9IGl0ZW1zLmZpbHRlcihcbiAgICAgICh7IHByb3BlcnRpZXMgfSkgPT4gcHJvcGVydGllcy50ZXh0dXJlXG4gICAgKTtcblxuICAgIGRvTm90UmVxdWlyZVRleHR1cmVMb2FkaW5nLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICBjb25zdCB7IHR5cGUsIHByb3BlcnRpZXMgfSA9IGRhdGE7XG5cbiAgICAgIGlmICghU1VQUE9SVEVEX0pTT05fSU5JVElBTElaRVJfVFlQRVMuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChcbiAgICAgICAgICBgVGhlIGluaXRpYWxpemVyIHR5cGUgJHt0eXBlfSBpcyBpbnZhbGlkIG9yIG5vdCB5ZXQgc3VwcG9ydGVkYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICAgIG1hZGVJbml0aWFsaXplcnMucHVzaChJbml0aWFsaXplclt0eXBlXS5mcm9tSlNPTihwcm9wZXJ0aWVzLCBUSFJFRSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFkZUluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hZGVJbml0aWFsaXplcnMubGVuZ3RoID09PSBudW1iZXJPZkluaXRpYWxpemVycykge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShtYWRlSW5pdGlhbGl6ZXJzKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGRvUmVxdWlyZVRleHR1cmVMb2FkaW5nLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgIHByb3BlcnRpZXM6IHsgdGV4dHVyZSB9LFxuICAgICAgfSA9IGRhdGE7XG4gICAgICBjb25zdCB0ZXh0dXJlTG9hZGVyID0gbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKTtcblxuICAgICAgaWYgKCFTVVBQT1JURURfSlNPTl9JTklUSUFMSVpFUl9UWVBFUy5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KFxuICAgICAgICAgIGBUaGUgaW5pdGlhbGl6ZXIgdHlwZSAke3R5cGV9IGlzIGludmFsaWQgb3Igbm90IHlldCBzdXBwb3J0ZWRgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRleHR1cmVMb2FkZXIubG9hZChcbiAgICAgICAgdGV4dHVyZSxcbiAgICAgICAgbG9hZGVkVGV4dHVyZSA9PiB7XG4gICAgICAgICAgbWFkZUluaXRpYWxpemVycy5wdXNoKFxuICAgICAgICAgICAgVGV4dHVyZUluaXRpYWxpemVyLmZyb21KU09OKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICBsb2FkZWRUZXh0dXJlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBUSFJFRVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobWFkZUluaXRpYWxpemVycy5sZW5ndGggPT09IG51bWJlck9mSW5pdGlhbGl6ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShtYWRlSW5pdGlhbGl6ZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcmVqZWN0XG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuLyoqXG4gKiBNYWtlcyBiZWhhdmlvdXJzIGZyb20ganNvbiBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge2FycmF5PG9iamVjdD59IGl0ZW1zIC0gQW4gYXJyYXkgb2Ygb2JqZWN0cyB3aGljaCBwcm92aWRlIGJlaGF2aW91ciBjb25zdHJ1Y3RvciBwYXJhbXNcbiAqIEByZXR1cm4ge1Byb21pc2U8YXJyYXk+fVxuICovXG5jb25zdCBtYWtlQmVoYXZpb3VycyA9IGl0ZW1zID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IG51bWJlck9mQmVoYXZpb3VycyA9IGl0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCBtYWRlQmVoYXZpb3VycyA9IFtdO1xuXG4gICAgaXRlbXMuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgIGNvbnN0IHsgdHlwZSwgcHJvcGVydGllcyB9ID0gZGF0YTtcblxuICAgICAgaWYgKCFTVVBQT1JURURfSlNPTl9CRUhBVklPVVJfVFlQRVMuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChcbiAgICAgICAgICBgVGhlIGJlaGF2aW91ciB0eXBlICR7dHlwZX0gaXMgaW52YWxpZCBvciBub3QgeWV0IHN1cHBvcnRlZGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgbWFkZUJlaGF2aW91cnMucHVzaChCZWhhdmlvdXJbdHlwZV0uZnJvbUpTT04ocHJvcGVydGllcykpO1xuXG4gICAgICBpZiAobWFkZUJlaGF2aW91cnMubGVuZ3RoID09PSBudW1iZXJPZkJlaGF2aW91cnMpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUobWFkZUJlaGF2aW91cnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuY29uc3QgbWFrZUVtaXR0ZXJzID0gKGVtaXR0ZXJzLCBFbWl0dGVyLCBUSFJFRSwgc2hvdWxkQXV0b0VtaXQpID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoIWVtaXR0ZXJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IG1hZGVFbWl0dGVycyA9IFtdO1xuICAgIGNvbnN0IG51bWJlck9mRW1pdHRlcnMgPSBlbWl0dGVycy5sZW5ndGg7XG5cbiAgICBpZiAoIW51bWJlck9mRW1pdHRlcnMpIHtcbiAgICAgIHJldHVybiByZXNvbHZlKG1hZGVFbWl0dGVycyk7XG4gICAgfVxuXG4gICAgZW1pdHRlcnMuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgIGNvbnN0IGVtaXR0ZXIgPSBuZXcgRW1pdHRlcigpO1xuICAgICAgY29uc3Qge1xuICAgICAgICByYXRlLFxuICAgICAgICByb3RhdGlvbixcbiAgICAgICAgaW5pdGlhbGl6ZXJzLFxuICAgICAgICBiZWhhdmlvdXJzLFxuICAgICAgICBlbWl0dGVyQmVoYXZpb3VycyA9IFtdLFxuICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgdG90YWxFbWl0VGltZXMgPSBJbmZpbml0eSxcbiAgICAgICAgbGlmZSA9IEluZmluaXR5LFxuICAgICAgfSA9IGRhdGE7XG5cbiAgICAgIGVtaXR0ZXJcbiAgICAgICAgLnNldFJhdGUobWFrZVJhdGUocmF0ZSkpXG4gICAgICAgIC5zZXRSb3RhdGlvbihyb3RhdGlvbilcbiAgICAgICAgLnNldFBvc2l0aW9uKHBvc2l0aW9uKTtcblxuICAgICAgbWFrZUluaXRpYWxpemVycyhpbml0aWFsaXplcnMsIFRIUkVFKVxuICAgICAgICAudGhlbihtYWRlSW5pdGlhbGl6ZXJzID0+IHtcbiAgICAgICAgICBlbWl0dGVyLnNldEluaXRpYWxpemVycyhtYWRlSW5pdGlhbGl6ZXJzKTtcblxuICAgICAgICAgIHJldHVybiBtYWtlQmVoYXZpb3VycyhiZWhhdmlvdXJzKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4obWFkZUJlaGF2aW91cnMgPT4ge1xuICAgICAgICAgIGVtaXR0ZXIuc2V0QmVoYXZpb3VycyhtYWRlQmVoYXZpb3Vycyk7XG5cbiAgICAgICAgICByZXR1cm4gbWFrZUJlaGF2aW91cnMoZW1pdHRlckJlaGF2aW91cnMpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihtYWRlRW1pdHRlckJlaGF2aW91cnMgPT4ge1xuICAgICAgICAgIGVtaXR0ZXIuc2V0RW1pdHRlckJlaGF2aW91cnMobWFkZUVtaXR0ZXJCZWhhdmlvdXJzKTtcblxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW1pdHRlcik7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGVtaXR0ZXIgPT4ge1xuICAgICAgICAgIG1hZGVFbWl0dGVycy5wdXNoKFxuICAgICAgICAgICAgc2hvdWxkQXV0b0VtaXRcbiAgICAgICAgICAgICAgPyBlbWl0dGVyLmVtaXQodG90YWxFbWl0VGltZXMsIGxpZmUpXG4gICAgICAgICAgICAgIDogZW1pdHRlci5zZXRUb3RhbEVtaXRUaW1lcyh0b3RhbEVtaXRUaW1lcykuc2V0TGlmZShsaWZlKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobWFkZUVtaXR0ZXJzLmxlbmd0aCA9PT0gbnVtYmVyT2ZFbWl0dGVycykge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUobWFkZUVtaXR0ZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChyZWplY3QpO1xuICAgIH0pO1xuICB9KTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgU3lzdGVtIGluc3RhbmNlIGZyb20gYSBKU09OIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNyZWF0ZSB0aGUgU3lzdGVtIGluc3RhbmNlIGZyb21cbiAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnByZVBhcnRpY2xlcyAtIFRoZSBwcmVkZXRlcm1pbmVkIG51bWJlciBvZiBwYXJ0aWNsZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBqc29uLmludGVncmF0aW9uVHlwZSAtIFRoZSBpbnRlZ3JhdGlvbiBhbGdvcml0aG0gdG8gdXNlXG4gKiBAcGFyYW0ge2FycmF5PG9iamVjdD59IGpzb24uZW1pdHRlcnMgLSBUaGUgZW1pdHRlcnMgZm9yIHRoZSBzeXN0ZW0gaW5zdGFuY2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQXBpIHRvIHVzZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gU3lzdGVtIC0gVGhlIHN5c3RlbSBjbGFzc1xuICogQHBhcmFtIHtmdW5jdGlvbn0gRW1pdHRlciAtIFRoZSBlbWl0dGVyIGNsYXNzXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnM9e31dIC0gT3B0aW9uYWwgY29uZmlnIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2U8U3lzdGVtPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgKGpzb24sIFRIUkVFLCBTeXN0ZW0sIEVtaXR0ZXIsIG9wdGlvbnMgPSB7fSkgPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZVBhcnRpY2xlcyA9IFBPT0xfTUFYLFxuICAgICAgaW50ZWdyYXRpb25UeXBlID0gRVVMRVIsXG4gICAgICBlbWl0dGVycyA9IFtdLFxuICAgIH0gPSBqc29uO1xuICAgIGNvbnN0IHN5c3RlbSA9IG5ldyBTeXN0ZW0ocHJlUGFydGljbGVzLCBpbnRlZ3JhdGlvblR5cGUpO1xuICAgIGNvbnN0IHsgc2hvdWxkQXV0b0VtaXQgfSA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG5cbiAgICBtYWtlRW1pdHRlcnMoZW1pdHRlcnMsIEVtaXR0ZXIsIFRIUkVFLCBzaG91bGRBdXRvRW1pdClcbiAgICAgIC50aGVuKG1hZGVFbWl0dGVycyA9PiB7XG4gICAgICAgIGNvbnN0IG51bWJlck9mRW1pdHRlcnMgPSBtYWRlRW1pdHRlcnMubGVuZ3RoO1xuXG4gICAgICAgIGlmICghbnVtYmVyT2ZFbWl0dGVycykge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKHN5c3RlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBtYWRlRW1pdHRlcnMuZm9yRWFjaChtYWRlRW1pdHRlciA9PiB7XG4gICAgICAgICAgc3lzdGVtLmFkZEVtaXR0ZXIobWFkZUVtaXR0ZXIpO1xuXG4gICAgICAgICAgaWYgKHN5c3RlbS5lbWl0dGVycy5sZW5ndGggPT09IG51bWJlck9mRW1pdHRlcnMpIHtcbiAgICAgICAgICAgIHJlc29sdmUoc3lzdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChyZWplY3QpO1xuICB9KTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/index.js",
    "content": "export { default as Particle } from './Particle';\nexport { default as Pool } from './Pool';\nexport { default as System } from './System';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJQYXJ0aWNsZSIsIlBvb2wiLCJTeXN0ZW0iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsUUFBcEIsUUFBb0MsWUFBcEM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxNQUFwQixRQUFrQyxVQUFsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgUGFydGljbGUgfSBmcm9tICcuL1BhcnRpY2xlJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9vbCB9IGZyb20gJy4vUG9vbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN5c3RlbSB9IGZyb20gJy4vU3lzdGVtJztcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/three/Euler.js",
    "content": "import { Quaternion } from './Quaternion.js';\nimport { Vector3 } from './Vector3.js';\nimport { Matrix4 } from './Matrix4.js';\nimport { _Math } from './Math.js';\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author bhouston / http://clara.io\n */\n\nfunction Euler(x, y, z, order) {\n  this._x = x || 0;\n  this._y = y || 0;\n  this._z = z || 0;\n  this._order = order || Euler.DefaultOrder;\n}\n\nEuler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX'];\nEuler.DefaultOrder = 'XYZ';\nObject.defineProperties(Euler.prototype, {\n  x: {\n    get: function () {\n      return this._x;\n    },\n    set: function (value) {\n      this._x = value;\n\n      this._onChangeCallback();\n    }\n  },\n  y: {\n    get: function () {\n      return this._y;\n    },\n    set: function (value) {\n      this._y = value;\n\n      this._onChangeCallback();\n    }\n  },\n  z: {\n    get: function () {\n      return this._z;\n    },\n    set: function (value) {\n      this._z = value;\n\n      this._onChangeCallback();\n    }\n  },\n  order: {\n    get: function () {\n      return this._order;\n    },\n    set: function (value) {\n      this._order = value;\n\n      this._onChangeCallback();\n    }\n  }\n});\nObject.assign(Euler.prototype, {\n  isEuler: true,\n  set: function (x, y, z, order) {\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._order = order || this._order;\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  clone: function () {\n    return new this.constructor(this._x, this._y, this._z, this._order);\n  },\n  copy: function (euler) {\n    this._x = euler._x;\n    this._y = euler._y;\n    this._z = euler._z;\n    this._order = euler._order;\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  setFromRotationMatrix: function (m, order, update) {\n    var clamp = _Math.clamp; // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n    var te = m.elements;\n    var m11 = te[0],\n        m12 = te[4],\n        m13 = te[8];\n    var m21 = te[1],\n        m22 = te[5],\n        m23 = te[9];\n    var m31 = te[2],\n        m32 = te[6],\n        m33 = te[10];\n    order = order || this._order;\n\n    if (order === 'XYZ') {\n      this._y = Math.asin(clamp(m13, -1, 1));\n\n      if (Math.abs(m13) < 0.99999) {\n        this._x = Math.atan2(-m23, m33);\n        this._z = Math.atan2(-m12, m11);\n      } else {\n        this._x = Math.atan2(m32, m22);\n        this._z = 0;\n      }\n    } else if (order === 'YXZ') {\n      this._x = Math.asin(-clamp(m23, -1, 1));\n\n      if (Math.abs(m23) < 0.99999) {\n        this._y = Math.atan2(m13, m33);\n        this._z = Math.atan2(m21, m22);\n      } else {\n        this._y = Math.atan2(-m31, m11);\n        this._z = 0;\n      }\n    } else if (order === 'ZXY') {\n      this._x = Math.asin(clamp(m32, -1, 1));\n\n      if (Math.abs(m32) < 0.99999) {\n        this._y = Math.atan2(-m31, m33);\n        this._z = Math.atan2(-m12, m22);\n      } else {\n        this._y = 0;\n        this._z = Math.atan2(m21, m11);\n      }\n    } else if (order === 'ZYX') {\n      this._y = Math.asin(-clamp(m31, -1, 1));\n\n      if (Math.abs(m31) < 0.99999) {\n        this._x = Math.atan2(m32, m33);\n        this._z = Math.atan2(m21, m11);\n      } else {\n        this._x = 0;\n        this._z = Math.atan2(-m12, m22);\n      }\n    } else if (order === 'YZX') {\n      this._z = Math.asin(clamp(m21, -1, 1));\n\n      if (Math.abs(m21) < 0.99999) {\n        this._x = Math.atan2(-m23, m22);\n        this._y = Math.atan2(-m31, m11);\n      } else {\n        this._x = 0;\n        this._y = Math.atan2(m13, m33);\n      }\n    } else if (order === 'XZY') {\n      this._z = Math.asin(-clamp(m12, -1, 1));\n\n      if (Math.abs(m12) < 0.99999) {\n        this._x = Math.atan2(m32, m22);\n        this._y = Math.atan2(m13, m11);\n      } else {\n        this._x = Math.atan2(-m23, m33);\n        this._y = 0;\n      }\n    } else {\n      console.warn('THREE.Euler: .setFromRotationMatrix() given unsupported order: ' + order);\n    }\n\n    this._order = order;\n    if (update !== false) this._onChangeCallback();\n    return this;\n  },\n  setFromQuaternion: function () {\n    var matrix = new Matrix4();\n    return function setFromQuaternion(q, order, update) {\n      matrix.makeRotationFromQuaternion(q);\n      return this.setFromRotationMatrix(matrix, order, update);\n    };\n  }(),\n  setFromVector3: function (v, order) {\n    return this.set(v.x, v.y, v.z, order || this._order);\n  },\n  reorder: function () {\n    // WARNING: this discards revolution information -bhouston\n    var q = new Quaternion();\n    return function reorder(newOrder) {\n      q.setFromEuler(this);\n      return this.setFromQuaternion(q, newOrder);\n    };\n  }(),\n  equals: function (euler) {\n    return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order;\n  },\n  fromArray: function (array) {\n    this._x = array[0];\n    this._y = array[1];\n    this._z = array[2];\n    if (array[3] !== undefined) this._order = array[3];\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  toArray: function (array, offset) {\n    if (array === undefined) array = [];\n    if (offset === undefined) offset = 0;\n    array[offset] = this._x;\n    array[offset + 1] = this._y;\n    array[offset + 2] = this._z;\n    array[offset + 3] = this._order;\n    return array;\n  },\n  toVector3: function (optionalResult) {\n    if (optionalResult) {\n      return optionalResult.set(this._x, this._y, this._z);\n    } else {\n      return new Vector3(this._x, this._y, this._z);\n    }\n  },\n  _onChange: function (callback) {\n    this._onChangeCallback = callback;\n    return this;\n  },\n  _onChangeCallback: function () {}\n});\nexport { Euler };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL0V1bGVyLmpzIl0sIm5hbWVzIjpbIlF1YXRlcm5pb24iLCJWZWN0b3IzIiwiTWF0cml4NCIsIl9NYXRoIiwiRXVsZXIiLCJ4IiwieSIsInoiLCJvcmRlciIsIl94IiwiX3kiLCJfeiIsIl9vcmRlciIsIkRlZmF1bHRPcmRlciIsIlJvdGF0aW9uT3JkZXJzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllcyIsInByb3RvdHlwZSIsImdldCIsInNldCIsInZhbHVlIiwiX29uQ2hhbmdlQ2FsbGJhY2siLCJhc3NpZ24iLCJpc0V1bGVyIiwiY2xvbmUiLCJjb25zdHJ1Y3RvciIsImNvcHkiLCJldWxlciIsInNldEZyb21Sb3RhdGlvbk1hdHJpeCIsIm0iLCJ1cGRhdGUiLCJjbGFtcCIsInRlIiwiZWxlbWVudHMiLCJtMTEiLCJtMTIiLCJtMTMiLCJtMjEiLCJtMjIiLCJtMjMiLCJtMzEiLCJtMzIiLCJtMzMiLCJNYXRoIiwiYXNpbiIsImFicyIsImF0YW4yIiwiY29uc29sZSIsIndhcm4iLCJzZXRGcm9tUXVhdGVybmlvbiIsIm1hdHJpeCIsInEiLCJtYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbiIsInNldEZyb21WZWN0b3IzIiwidiIsInJlb3JkZXIiLCJuZXdPcmRlciIsInNldEZyb21FdWxlciIsImVxdWFscyIsImZyb21BcnJheSIsImFycmF5IiwidW5kZWZpbmVkIiwidG9BcnJheSIsIm9mZnNldCIsInRvVmVjdG9yMyIsIm9wdGlvbmFsUmVzdWx0IiwiX29uQ2hhbmdlIiwiY2FsbGJhY2siXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVQsUUFBMkIsaUJBQTNCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixjQUF4QjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsY0FBeEI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLFdBQXRCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQyxLQUFULENBQWdCQyxDQUFoQixFQUFtQkMsQ0FBbkIsRUFBc0JDLENBQXRCLEVBQXlCQyxLQUF6QixFQUFpQztBQUVoQyxPQUFLQyxFQUFMLEdBQVVKLENBQUMsSUFBSSxDQUFmO0FBQ0EsT0FBS0ssRUFBTCxHQUFVSixDQUFDLElBQUksQ0FBZjtBQUNBLE9BQUtLLEVBQUwsR0FBVUosQ0FBQyxJQUFJLENBQWY7QUFDQSxPQUFLSyxNQUFMLEdBQWNKLEtBQUssSUFBSUosS0FBSyxDQUFDUyxZQUE3QjtBQUVBOztBQUVEVCxLQUFLLENBQUNVLGNBQU4sR0FBdUIsQ0FBRSxLQUFGLEVBQVMsS0FBVCxFQUFnQixLQUFoQixFQUF1QixLQUF2QixFQUE4QixLQUE5QixFQUFxQyxLQUFyQyxDQUF2QjtBQUVBVixLQUFLLENBQUNTLFlBQU4sR0FBcUIsS0FBckI7QUFFQUUsTUFBTSxDQUFDQyxnQkFBUCxDQUF5QlosS0FBSyxDQUFDYSxTQUEvQixFQUEwQztBQUV6Q1osRUFBQUEsQ0FBQyxFQUFFO0FBRUZhLElBQUFBLEdBQUcsRUFBRSxZQUFZO0FBRWhCLGFBQU8sS0FBS1QsRUFBWjtBQUVBLEtBTkM7QUFRRlUsSUFBQUEsR0FBRyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFdkIsV0FBS1gsRUFBTCxHQUFVVyxLQUFWOztBQUNBLFdBQUtDLGlCQUFMO0FBRUE7QUFiQyxHQUZzQztBQW1CekNmLEVBQUFBLENBQUMsRUFBRTtBQUVGWSxJQUFBQSxHQUFHLEVBQUUsWUFBWTtBQUVoQixhQUFPLEtBQUtSLEVBQVo7QUFFQSxLQU5DO0FBUUZTLElBQUFBLEdBQUcsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRXZCLFdBQUtWLEVBQUwsR0FBVVUsS0FBVjs7QUFDQSxXQUFLQyxpQkFBTDtBQUVBO0FBYkMsR0FuQnNDO0FBb0N6Q2QsRUFBQUEsQ0FBQyxFQUFFO0FBRUZXLElBQUFBLEdBQUcsRUFBRSxZQUFZO0FBRWhCLGFBQU8sS0FBS1AsRUFBWjtBQUVBLEtBTkM7QUFRRlEsSUFBQUEsR0FBRyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFdkIsV0FBS1QsRUFBTCxHQUFVUyxLQUFWOztBQUNBLFdBQUtDLGlCQUFMO0FBRUE7QUFiQyxHQXBDc0M7QUFxRHpDYixFQUFBQSxLQUFLLEVBQUU7QUFFTlUsSUFBQUEsR0FBRyxFQUFFLFlBQVk7QUFFaEIsYUFBTyxLQUFLTixNQUFaO0FBRUEsS0FOSztBQVFOTyxJQUFBQSxHQUFHLEVBQUUsVUFBV0MsS0FBWCxFQUFtQjtBQUV2QixXQUFLUixNQUFMLEdBQWNRLEtBQWQ7O0FBQ0EsV0FBS0MsaUJBQUw7QUFFQTtBQWJLO0FBckRrQyxDQUExQztBQXdFQU4sTUFBTSxDQUFDTyxNQUFQLENBQWVsQixLQUFLLENBQUNhLFNBQXJCLEVBQWdDO0FBRS9CTSxFQUFBQSxPQUFPLEVBQUUsSUFGc0I7QUFJL0JKLEVBQUFBLEdBQUcsRUFBRSxVQUFXZCxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCLEVBQW9CQyxLQUFwQixFQUE0QjtBQUVoQyxTQUFLQyxFQUFMLEdBQVVKLENBQVY7QUFDQSxTQUFLSyxFQUFMLEdBQVVKLENBQVY7QUFDQSxTQUFLSyxFQUFMLEdBQVVKLENBQVY7QUFDQSxTQUFLSyxNQUFMLEdBQWNKLEtBQUssSUFBSSxLQUFLSSxNQUE1Qjs7QUFFQSxTQUFLUyxpQkFBTDs7QUFFQSxXQUFPLElBQVA7QUFFQSxHQWY4QjtBQWlCL0JHLEVBQUFBLEtBQUssRUFBRSxZQUFZO0FBRWxCLFdBQU8sSUFBSSxLQUFLQyxXQUFULENBQXNCLEtBQUtoQixFQUEzQixFQUErQixLQUFLQyxFQUFwQyxFQUF3QyxLQUFLQyxFQUE3QyxFQUFpRCxLQUFLQyxNQUF0RCxDQUFQO0FBRUEsR0FyQjhCO0FBdUIvQmMsRUFBQUEsSUFBSSxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFeEIsU0FBS2xCLEVBQUwsR0FBVWtCLEtBQUssQ0FBQ2xCLEVBQWhCO0FBQ0EsU0FBS0MsRUFBTCxHQUFVaUIsS0FBSyxDQUFDakIsRUFBaEI7QUFDQSxTQUFLQyxFQUFMLEdBQVVnQixLQUFLLENBQUNoQixFQUFoQjtBQUNBLFNBQUtDLE1BQUwsR0FBY2UsS0FBSyxDQUFDZixNQUFwQjs7QUFFQSxTQUFLUyxpQkFBTDs7QUFFQSxXQUFPLElBQVA7QUFFQSxHQWxDOEI7QUFvQy9CTyxFQUFBQSxxQkFBcUIsRUFBRSxVQUFXQyxDQUFYLEVBQWNyQixLQUFkLEVBQXFCc0IsTUFBckIsRUFBOEI7QUFFcEQsUUFBSUMsS0FBSyxHQUFHNUIsS0FBSyxDQUFDNEIsS0FBbEIsQ0FGb0QsQ0FJcEQ7O0FBRUEsUUFBSUMsRUFBRSxHQUFHSCxDQUFDLENBQUNJLFFBQVg7QUFDQSxRQUFJQyxHQUFHLEdBQUdGLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBQSxRQUFtQkcsR0FBRyxHQUFHSCxFQUFFLENBQUUsQ0FBRixDQUEzQjtBQUFBLFFBQWtDSSxHQUFHLEdBQUdKLEVBQUUsQ0FBRSxDQUFGLENBQTFDO0FBQ0EsUUFBSUssR0FBRyxHQUFHTCxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJNLEdBQUcsR0FBR04sRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ08sR0FBRyxHQUFHUCxFQUFFLENBQUUsQ0FBRixDQUExQztBQUNBLFFBQUlRLEdBQUcsR0FBR1IsRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFBLFFBQW1CUyxHQUFHLEdBQUdULEVBQUUsQ0FBRSxDQUFGLENBQTNCO0FBQUEsUUFBa0NVLEdBQUcsR0FBR1YsRUFBRSxDQUFFLEVBQUYsQ0FBMUM7QUFFQXhCLElBQUFBLEtBQUssR0FBR0EsS0FBSyxJQUFJLEtBQUtJLE1BQXRCOztBQUVBLFFBQUtKLEtBQUssS0FBSyxLQUFmLEVBQXVCO0FBRXRCLFdBQUtFLEVBQUwsR0FBVWlDLElBQUksQ0FBQ0MsSUFBTCxDQUFXYixLQUFLLENBQUVLLEdBQUYsRUFBTyxDQUFFLENBQVQsRUFBWSxDQUFaLENBQWhCLENBQVY7O0FBRUEsVUFBS08sSUFBSSxDQUFDRSxHQUFMLENBQVVULEdBQVYsSUFBa0IsT0FBdkIsRUFBaUM7QUFFaEMsYUFBSzNCLEVBQUwsR0FBVWtDLElBQUksQ0FBQ0csS0FBTCxDQUFZLENBQUVQLEdBQWQsRUFBbUJHLEdBQW5CLENBQVY7QUFDQSxhQUFLL0IsRUFBTCxHQUFVZ0MsSUFBSSxDQUFDRyxLQUFMLENBQVksQ0FBRVgsR0FBZCxFQUFtQkQsR0FBbkIsQ0FBVjtBQUVBLE9BTEQsTUFLTztBQUVOLGFBQUt6QixFQUFMLEdBQVVrQyxJQUFJLENBQUNHLEtBQUwsQ0FBWUwsR0FBWixFQUFpQkgsR0FBakIsQ0FBVjtBQUNBLGFBQUszQixFQUFMLEdBQVUsQ0FBVjtBQUVBO0FBRUQsS0FoQkQsTUFnQk8sSUFBS0gsS0FBSyxLQUFLLEtBQWYsRUFBdUI7QUFFN0IsV0FBS0MsRUFBTCxHQUFVa0MsSUFBSSxDQUFDQyxJQUFMLENBQVcsQ0FBRWIsS0FBSyxDQUFFUSxHQUFGLEVBQU8sQ0FBRSxDQUFULEVBQVksQ0FBWixDQUFsQixDQUFWOztBQUVBLFVBQUtJLElBQUksQ0FBQ0UsR0FBTCxDQUFVTixHQUFWLElBQWtCLE9BQXZCLEVBQWlDO0FBRWhDLGFBQUs3QixFQUFMLEdBQVVpQyxJQUFJLENBQUNHLEtBQUwsQ0FBWVYsR0FBWixFQUFpQk0sR0FBakIsQ0FBVjtBQUNBLGFBQUsvQixFQUFMLEdBQVVnQyxJQUFJLENBQUNHLEtBQUwsQ0FBWVQsR0FBWixFQUFpQkMsR0FBakIsQ0FBVjtBQUVBLE9BTEQsTUFLTztBQUVOLGFBQUs1QixFQUFMLEdBQVVpQyxJQUFJLENBQUNHLEtBQUwsQ0FBWSxDQUFFTixHQUFkLEVBQW1CTixHQUFuQixDQUFWO0FBQ0EsYUFBS3ZCLEVBQUwsR0FBVSxDQUFWO0FBRUE7QUFFRCxLQWhCTSxNQWdCQSxJQUFLSCxLQUFLLEtBQUssS0FBZixFQUF1QjtBQUU3QixXQUFLQyxFQUFMLEdBQVVrQyxJQUFJLENBQUNDLElBQUwsQ0FBV2IsS0FBSyxDQUFFVSxHQUFGLEVBQU8sQ0FBRSxDQUFULEVBQVksQ0FBWixDQUFoQixDQUFWOztBQUVBLFVBQUtFLElBQUksQ0FBQ0UsR0FBTCxDQUFVSixHQUFWLElBQWtCLE9BQXZCLEVBQWlDO0FBRWhDLGFBQUsvQixFQUFMLEdBQVVpQyxJQUFJLENBQUNHLEtBQUwsQ0FBWSxDQUFFTixHQUFkLEVBQW1CRSxHQUFuQixDQUFWO0FBQ0EsYUFBSy9CLEVBQUwsR0FBVWdDLElBQUksQ0FBQ0csS0FBTCxDQUFZLENBQUVYLEdBQWQsRUFBbUJHLEdBQW5CLENBQVY7QUFFQSxPQUxELE1BS087QUFFTixhQUFLNUIsRUFBTCxHQUFVLENBQVY7QUFDQSxhQUFLQyxFQUFMLEdBQVVnQyxJQUFJLENBQUNHLEtBQUwsQ0FBWVQsR0FBWixFQUFpQkgsR0FBakIsQ0FBVjtBQUVBO0FBRUQsS0FoQk0sTUFnQkEsSUFBSzFCLEtBQUssS0FBSyxLQUFmLEVBQXVCO0FBRTdCLFdBQUtFLEVBQUwsR0FBVWlDLElBQUksQ0FBQ0MsSUFBTCxDQUFXLENBQUViLEtBQUssQ0FBRVMsR0FBRixFQUFPLENBQUUsQ0FBVCxFQUFZLENBQVosQ0FBbEIsQ0FBVjs7QUFFQSxVQUFLRyxJQUFJLENBQUNFLEdBQUwsQ0FBVUwsR0FBVixJQUFrQixPQUF2QixFQUFpQztBQUVoQyxhQUFLL0IsRUFBTCxHQUFVa0MsSUFBSSxDQUFDRyxLQUFMLENBQVlMLEdBQVosRUFBaUJDLEdBQWpCLENBQVY7QUFDQSxhQUFLL0IsRUFBTCxHQUFVZ0MsSUFBSSxDQUFDRyxLQUFMLENBQVlULEdBQVosRUFBaUJILEdBQWpCLENBQVY7QUFFQSxPQUxELE1BS087QUFFTixhQUFLekIsRUFBTCxHQUFVLENBQVY7QUFDQSxhQUFLRSxFQUFMLEdBQVVnQyxJQUFJLENBQUNHLEtBQUwsQ0FBWSxDQUFFWCxHQUFkLEVBQW1CRyxHQUFuQixDQUFWO0FBRUE7QUFFRCxLQWhCTSxNQWdCQSxJQUFLOUIsS0FBSyxLQUFLLEtBQWYsRUFBdUI7QUFFN0IsV0FBS0csRUFBTCxHQUFVZ0MsSUFBSSxDQUFDQyxJQUFMLENBQVdiLEtBQUssQ0FBRU0sR0FBRixFQUFPLENBQUUsQ0FBVCxFQUFZLENBQVosQ0FBaEIsQ0FBVjs7QUFFQSxVQUFLTSxJQUFJLENBQUNFLEdBQUwsQ0FBVVIsR0FBVixJQUFrQixPQUF2QixFQUFpQztBQUVoQyxhQUFLNUIsRUFBTCxHQUFVa0MsSUFBSSxDQUFDRyxLQUFMLENBQVksQ0FBRVAsR0FBZCxFQUFtQkQsR0FBbkIsQ0FBVjtBQUNBLGFBQUs1QixFQUFMLEdBQVVpQyxJQUFJLENBQUNHLEtBQUwsQ0FBWSxDQUFFTixHQUFkLEVBQW1CTixHQUFuQixDQUFWO0FBRUEsT0FMRCxNQUtPO0FBRU4sYUFBS3pCLEVBQUwsR0FBVSxDQUFWO0FBQ0EsYUFBS0MsRUFBTCxHQUFVaUMsSUFBSSxDQUFDRyxLQUFMLENBQVlWLEdBQVosRUFBaUJNLEdBQWpCLENBQVY7QUFFQTtBQUVELEtBaEJNLE1BZ0JBLElBQUtsQyxLQUFLLEtBQUssS0FBZixFQUF1QjtBQUU3QixXQUFLRyxFQUFMLEdBQVVnQyxJQUFJLENBQUNDLElBQUwsQ0FBVyxDQUFFYixLQUFLLENBQUVJLEdBQUYsRUFBTyxDQUFFLENBQVQsRUFBWSxDQUFaLENBQWxCLENBQVY7O0FBRUEsVUFBS1EsSUFBSSxDQUFDRSxHQUFMLENBQVVWLEdBQVYsSUFBa0IsT0FBdkIsRUFBaUM7QUFFaEMsYUFBSzFCLEVBQUwsR0FBVWtDLElBQUksQ0FBQ0csS0FBTCxDQUFZTCxHQUFaLEVBQWlCSCxHQUFqQixDQUFWO0FBQ0EsYUFBSzVCLEVBQUwsR0FBVWlDLElBQUksQ0FBQ0csS0FBTCxDQUFZVixHQUFaLEVBQWlCRixHQUFqQixDQUFWO0FBRUEsT0FMRCxNQUtPO0FBRU4sYUFBS3pCLEVBQUwsR0FBVWtDLElBQUksQ0FBQ0csS0FBTCxDQUFZLENBQUVQLEdBQWQsRUFBbUJHLEdBQW5CLENBQVY7QUFDQSxhQUFLaEMsRUFBTCxHQUFVLENBQVY7QUFFQTtBQUVELEtBaEJNLE1BZ0JBO0FBRU5xQyxNQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYyxvRUFBb0V4QyxLQUFsRjtBQUVBOztBQUVELFNBQUtJLE1BQUwsR0FBY0osS0FBZDtBQUVBLFFBQUtzQixNQUFNLEtBQUssS0FBaEIsRUFBd0IsS0FBS1QsaUJBQUw7QUFFeEIsV0FBTyxJQUFQO0FBRUEsR0E3SjhCO0FBK0ovQjRCLEVBQUFBLGlCQUFpQixFQUFFLFlBQVk7QUFFOUIsUUFBSUMsTUFBTSxHQUFHLElBQUloRCxPQUFKLEVBQWI7QUFFQSxXQUFPLFNBQVMrQyxpQkFBVCxDQUE0QkUsQ0FBNUIsRUFBK0IzQyxLQUEvQixFQUFzQ3NCLE1BQXRDLEVBQStDO0FBRXJEb0IsTUFBQUEsTUFBTSxDQUFDRSwwQkFBUCxDQUFtQ0QsQ0FBbkM7QUFFQSxhQUFPLEtBQUt2QixxQkFBTCxDQUE0QnNCLE1BQTVCLEVBQW9DMUMsS0FBcEMsRUFBMkNzQixNQUEzQyxDQUFQO0FBRUEsS0FORDtBQVFBLEdBWmtCLEVBL0pZO0FBNksvQnVCLEVBQUFBLGNBQWMsRUFBRSxVQUFXQyxDQUFYLEVBQWM5QyxLQUFkLEVBQXNCO0FBRXJDLFdBQU8sS0FBS1csR0FBTCxDQUFVbUMsQ0FBQyxDQUFDakQsQ0FBWixFQUFlaUQsQ0FBQyxDQUFDaEQsQ0FBakIsRUFBb0JnRCxDQUFDLENBQUMvQyxDQUF0QixFQUF5QkMsS0FBSyxJQUFJLEtBQUtJLE1BQXZDLENBQVA7QUFFQSxHQWpMOEI7QUFtTC9CMkMsRUFBQUEsT0FBTyxFQUFFLFlBQVk7QUFFcEI7QUFFQSxRQUFJSixDQUFDLEdBQUcsSUFBSW5ELFVBQUosRUFBUjtBQUVBLFdBQU8sU0FBU3VELE9BQVQsQ0FBa0JDLFFBQWxCLEVBQTZCO0FBRW5DTCxNQUFBQSxDQUFDLENBQUNNLFlBQUYsQ0FBZ0IsSUFBaEI7QUFFQSxhQUFPLEtBQUtSLGlCQUFMLENBQXdCRSxDQUF4QixFQUEyQkssUUFBM0IsQ0FBUDtBQUVBLEtBTkQ7QUFRQSxHQWRRLEVBbkxzQjtBQW1NL0JFLEVBQUFBLE1BQU0sRUFBRSxVQUFXL0IsS0FBWCxFQUFtQjtBQUUxQixXQUFTQSxLQUFLLENBQUNsQixFQUFOLEtBQWEsS0FBS0EsRUFBcEIsSUFBOEJrQixLQUFLLENBQUNqQixFQUFOLEtBQWEsS0FBS0EsRUFBaEQsSUFBMERpQixLQUFLLENBQUNoQixFQUFOLEtBQWEsS0FBS0EsRUFBNUUsSUFBc0ZnQixLQUFLLENBQUNmLE1BQU4sS0FBaUIsS0FBS0EsTUFBbkg7QUFFQSxHQXZNOEI7QUF5TS9CK0MsRUFBQUEsU0FBUyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFN0IsU0FBS25ELEVBQUwsR0FBVW1ELEtBQUssQ0FBRSxDQUFGLENBQWY7QUFDQSxTQUFLbEQsRUFBTCxHQUFVa0QsS0FBSyxDQUFFLENBQUYsQ0FBZjtBQUNBLFNBQUtqRCxFQUFMLEdBQVVpRCxLQUFLLENBQUUsQ0FBRixDQUFmO0FBQ0EsUUFBS0EsS0FBSyxDQUFFLENBQUYsQ0FBTCxLQUFlQyxTQUFwQixFQUFnQyxLQUFLakQsTUFBTCxHQUFjZ0QsS0FBSyxDQUFFLENBQUYsQ0FBbkI7O0FBRWhDLFNBQUt2QyxpQkFBTDs7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXBOOEI7QUFzTi9CeUMsRUFBQUEsT0FBTyxFQUFFLFVBQVdGLEtBQVgsRUFBa0JHLE1BQWxCLEVBQTJCO0FBRW5DLFFBQUtILEtBQUssS0FBS0MsU0FBZixFQUEyQkQsS0FBSyxHQUFHLEVBQVI7QUFDM0IsUUFBS0csTUFBTSxLQUFLRixTQUFoQixFQUE0QkUsTUFBTSxHQUFHLENBQVQ7QUFFNUJILElBQUFBLEtBQUssQ0FBRUcsTUFBRixDQUFMLEdBQWtCLEtBQUt0RCxFQUF2QjtBQUNBbUQsSUFBQUEsS0FBSyxDQUFFRyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCLEtBQUtyRCxFQUEzQjtBQUNBa0QsSUFBQUEsS0FBSyxDQUFFRyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCLEtBQUtwRCxFQUEzQjtBQUNBaUQsSUFBQUEsS0FBSyxDQUFFRyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCLEtBQUtuRCxNQUEzQjtBQUVBLFdBQU9nRCxLQUFQO0FBRUEsR0FsTzhCO0FBb08vQkksRUFBQUEsU0FBUyxFQUFFLFVBQVdDLGNBQVgsRUFBNEI7QUFFdEMsUUFBS0EsY0FBTCxFQUFzQjtBQUVyQixhQUFPQSxjQUFjLENBQUM5QyxHQUFmLENBQW9CLEtBQUtWLEVBQXpCLEVBQTZCLEtBQUtDLEVBQWxDLEVBQXNDLEtBQUtDLEVBQTNDLENBQVA7QUFFQSxLQUpELE1BSU87QUFFTixhQUFPLElBQUlWLE9BQUosQ0FBYSxLQUFLUSxFQUFsQixFQUFzQixLQUFLQyxFQUEzQixFQUErQixLQUFLQyxFQUFwQyxDQUFQO0FBRUE7QUFFRCxHQWhQOEI7QUFrUC9CdUQsRUFBQUEsU0FBUyxFQUFFLFVBQVdDLFFBQVgsRUFBc0I7QUFFaEMsU0FBSzlDLGlCQUFMLEdBQXlCOEMsUUFBekI7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXhQOEI7QUEwUC9COUMsRUFBQUEsaUJBQWlCLEVBQUUsWUFBWSxDQUFFO0FBMVBGLENBQWhDO0FBK1BBLFNBQVNqQixLQUFUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVhdGVybmlvbiB9IGZyb20gJy4vUXVhdGVybmlvbi5qcyc7XG5pbXBvcnQgeyBWZWN0b3IzIH0gZnJvbSAnLi9WZWN0b3IzLmpzJztcbmltcG9ydCB7IE1hdHJpeDQgfSBmcm9tICcuL01hdHJpeDQuanMnO1xuaW1wb3J0IHsgX01hdGggfSBmcm9tICcuL01hdGguanMnO1xuXG4vKipcbiAqIEBhdXRob3IgbXJkb29iIC8gaHR0cDovL21yZG9vYi5jb20vXG4gKiBAYXV0aG9yIFdlc3RMYW5nbGV5IC8gaHR0cDovL2dpdGh1Yi5jb20vV2VzdExhbmdsZXlcbiAqIEBhdXRob3IgYmhvdXN0b24gLyBodHRwOi8vY2xhcmEuaW9cbiAqL1xuXG5mdW5jdGlvbiBFdWxlciggeCwgeSwgeiwgb3JkZXIgKSB7XG5cblx0dGhpcy5feCA9IHggfHwgMDtcblx0dGhpcy5feSA9IHkgfHwgMDtcblx0dGhpcy5feiA9IHogfHwgMDtcblx0dGhpcy5fb3JkZXIgPSBvcmRlciB8fCBFdWxlci5EZWZhdWx0T3JkZXI7XG5cbn1cblxuRXVsZXIuUm90YXRpb25PcmRlcnMgPSBbICdYWVonLCAnWVpYJywgJ1pYWScsICdYWlknLCAnWVhaJywgJ1pZWCcgXTtcblxuRXVsZXIuRGVmYXVsdE9yZGVyID0gJ1hZWic7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCBFdWxlci5wcm90b3R5cGUsIHtcblxuXHR4OiB7XG5cblx0XHRnZXQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuX3g7XG5cblx0XHR9LFxuXG5cdFx0c2V0OiBmdW5jdGlvbiAoIHZhbHVlICkge1xuXG5cdFx0XHR0aGlzLl94ID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHR9XG5cblx0fSxcblxuXHR5OiB7XG5cblx0XHRnZXQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuX3k7XG5cblx0XHR9LFxuXG5cdFx0c2V0OiBmdW5jdGlvbiAoIHZhbHVlICkge1xuXG5cdFx0XHR0aGlzLl95ID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHR9XG5cblx0fSxcblxuXHR6OiB7XG5cblx0XHRnZXQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuX3o7XG5cblx0XHR9LFxuXG5cdFx0c2V0OiBmdW5jdGlvbiAoIHZhbHVlICkge1xuXG5cdFx0XHR0aGlzLl96ID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHR9XG5cblx0fSxcblxuXHRvcmRlcjoge1xuXG5cdFx0Z2V0OiBmdW5jdGlvbiAoKSB7XG5cblx0XHRcdHJldHVybiB0aGlzLl9vcmRlcjtcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX29yZGVyID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHR9XG5cblx0fVxuXG59ICk7XG5cbk9iamVjdC5hc3NpZ24oIEV1bGVyLnByb3RvdHlwZSwge1xuXG5cdGlzRXVsZXI6IHRydWUsXG5cblx0c2V0OiBmdW5jdGlvbiAoIHgsIHksIHosIG9yZGVyICkge1xuXG5cdFx0dGhpcy5feCA9IHg7XG5cdFx0dGhpcy5feSA9IHk7XG5cdFx0dGhpcy5feiA9IHo7XG5cdFx0dGhpcy5fb3JkZXIgPSBvcmRlciB8fCB0aGlzLl9vcmRlcjtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvciggdGhpcy5feCwgdGhpcy5feSwgdGhpcy5feiwgdGhpcy5fb3JkZXIgKTtcblxuXHR9LFxuXG5cdGNvcHk6IGZ1bmN0aW9uICggZXVsZXIgKSB7XG5cblx0XHR0aGlzLl94ID0gZXVsZXIuX3g7XG5cdFx0dGhpcy5feSA9IGV1bGVyLl95O1xuXHRcdHRoaXMuX3ogPSBldWxlci5fejtcblx0XHR0aGlzLl9vcmRlciA9IGV1bGVyLl9vcmRlcjtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbVJvdGF0aW9uTWF0cml4OiBmdW5jdGlvbiAoIG0sIG9yZGVyLCB1cGRhdGUgKSB7XG5cblx0XHR2YXIgY2xhbXAgPSBfTWF0aC5jbGFtcDtcblxuXHRcdC8vIGFzc3VtZXMgdGhlIHVwcGVyIDN4MyBvZiBtIGlzIGEgcHVyZSByb3RhdGlvbiBtYXRyaXggKGkuZSwgdW5zY2FsZWQpXG5cblx0XHR2YXIgdGUgPSBtLmVsZW1lbnRzO1xuXHRcdHZhciBtMTEgPSB0ZVsgMCBdLCBtMTIgPSB0ZVsgNCBdLCBtMTMgPSB0ZVsgOCBdO1xuXHRcdHZhciBtMjEgPSB0ZVsgMSBdLCBtMjIgPSB0ZVsgNSBdLCBtMjMgPSB0ZVsgOSBdO1xuXHRcdHZhciBtMzEgPSB0ZVsgMiBdLCBtMzIgPSB0ZVsgNiBdLCBtMzMgPSB0ZVsgMTAgXTtcblxuXHRcdG9yZGVyID0gb3JkZXIgfHwgdGhpcy5fb3JkZXI7XG5cblx0XHRpZiAoIG9yZGVyID09PSAnWFlaJyApIHtcblxuXHRcdFx0dGhpcy5feSA9IE1hdGguYXNpbiggY2xhbXAoIG0xMywgLSAxLCAxICkgKTtcblxuXHRcdFx0aWYgKCBNYXRoLmFicyggbTEzICkgPCAwLjk5OTk5ICkge1xuXG5cdFx0XHRcdHRoaXMuX3ggPSBNYXRoLmF0YW4yKCAtIG0yMywgbTMzICk7XG5cdFx0XHRcdHRoaXMuX3ogPSBNYXRoLmF0YW4yKCAtIG0xMiwgbTExICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0dGhpcy5feCA9IE1hdGguYXRhbjIoIG0zMiwgbTIyICk7XG5cdFx0XHRcdHRoaXMuX3ogPSAwO1xuXG5cdFx0XHR9XG5cblx0XHR9IGVsc2UgaWYgKCBvcmRlciA9PT0gJ1lYWicgKSB7XG5cblx0XHRcdHRoaXMuX3ggPSBNYXRoLmFzaW4oIC0gY2xhbXAoIG0yMywgLSAxLCAxICkgKTtcblxuXHRcdFx0aWYgKCBNYXRoLmFicyggbTIzICkgPCAwLjk5OTk5ICkge1xuXG5cdFx0XHRcdHRoaXMuX3kgPSBNYXRoLmF0YW4yKCBtMTMsIG0zMyApO1xuXHRcdFx0XHR0aGlzLl96ID0gTWF0aC5hdGFuMiggbTIxLCBtMjIgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHR0aGlzLl95ID0gTWF0aC5hdGFuMiggLSBtMzEsIG0xMSApO1xuXHRcdFx0XHR0aGlzLl96ID0gMDtcblxuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIGlmICggb3JkZXIgPT09ICdaWFknICkge1xuXG5cdFx0XHR0aGlzLl94ID0gTWF0aC5hc2luKCBjbGFtcCggbTMyLCAtIDEsIDEgKSApO1xuXG5cdFx0XHRpZiAoIE1hdGguYWJzKCBtMzIgKSA8IDAuOTk5OTkgKSB7XG5cblx0XHRcdFx0dGhpcy5feSA9IE1hdGguYXRhbjIoIC0gbTMxLCBtMzMgKTtcblx0XHRcdFx0dGhpcy5feiA9IE1hdGguYXRhbjIoIC0gbTEyLCBtMjIgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHR0aGlzLl95ID0gMDtcblx0XHRcdFx0dGhpcy5feiA9IE1hdGguYXRhbjIoIG0yMSwgbTExICk7XG5cblx0XHRcdH1cblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWllYJyApIHtcblxuXHRcdFx0dGhpcy5feSA9IE1hdGguYXNpbiggLSBjbGFtcCggbTMxLCAtIDEsIDEgKSApO1xuXG5cdFx0XHRpZiAoIE1hdGguYWJzKCBtMzEgKSA8IDAuOTk5OTkgKSB7XG5cblx0XHRcdFx0dGhpcy5feCA9IE1hdGguYXRhbjIoIG0zMiwgbTMzICk7XG5cdFx0XHRcdHRoaXMuX3ogPSBNYXRoLmF0YW4yKCBtMjEsIG0xMSApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHRoaXMuX3ggPSAwO1xuXHRcdFx0XHR0aGlzLl96ID0gTWF0aC5hdGFuMiggLSBtMTIsIG0yMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9IGVsc2UgaWYgKCBvcmRlciA9PT0gJ1laWCcgKSB7XG5cblx0XHRcdHRoaXMuX3ogPSBNYXRoLmFzaW4oIGNsYW1wKCBtMjEsIC0gMSwgMSApICk7XG5cblx0XHRcdGlmICggTWF0aC5hYnMoIG0yMSApIDwgMC45OTk5OSApIHtcblxuXHRcdFx0XHR0aGlzLl94ID0gTWF0aC5hdGFuMiggLSBtMjMsIG0yMiApO1xuXHRcdFx0XHR0aGlzLl95ID0gTWF0aC5hdGFuMiggLSBtMzEsIG0xMSApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHRoaXMuX3ggPSAwO1xuXHRcdFx0XHR0aGlzLl95ID0gTWF0aC5hdGFuMiggbTEzLCBtMzMgKTtcblxuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIGlmICggb3JkZXIgPT09ICdYWlknICkge1xuXG5cdFx0XHR0aGlzLl96ID0gTWF0aC5hc2luKCAtIGNsYW1wKCBtMTIsIC0gMSwgMSApICk7XG5cblx0XHRcdGlmICggTWF0aC5hYnMoIG0xMiApIDwgMC45OTk5OSApIHtcblxuXHRcdFx0XHR0aGlzLl94ID0gTWF0aC5hdGFuMiggbTMyLCBtMjIgKTtcblx0XHRcdFx0dGhpcy5feSA9IE1hdGguYXRhbjIoIG0xMywgbTExICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0dGhpcy5feCA9IE1hdGguYXRhbjIoIC0gbTIzLCBtMzMgKTtcblx0XHRcdFx0dGhpcy5feSA9IDA7XG5cblx0XHRcdH1cblxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdGNvbnNvbGUud2FybiggJ1RIUkVFLkV1bGVyOiAuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgZ2l2ZW4gdW5zdXBwb3J0ZWQgb3JkZXI6ICcgKyBvcmRlciApO1xuXG5cdFx0fVxuXG5cdFx0dGhpcy5fb3JkZXIgPSBvcmRlcjtcblxuXHRcdGlmICggdXBkYXRlICE9PSBmYWxzZSApIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbVF1YXRlcm5pb246IGZ1bmN0aW9uICgpIHtcblxuXHRcdHZhciBtYXRyaXggPSBuZXcgTWF0cml4NCgpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIHNldEZyb21RdWF0ZXJuaW9uKCBxLCBvcmRlciwgdXBkYXRlICkge1xuXG5cdFx0XHRtYXRyaXgubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24oIHEgKTtcblxuXHRcdFx0cmV0dXJuIHRoaXMuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCBtYXRyaXgsIG9yZGVyLCB1cGRhdGUgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdHNldEZyb21WZWN0b3IzOiBmdW5jdGlvbiAoIHYsIG9yZGVyICkge1xuXG5cdFx0cmV0dXJuIHRoaXMuc2V0KCB2LngsIHYueSwgdi56LCBvcmRlciB8fCB0aGlzLl9vcmRlciApO1xuXG5cdH0sXG5cblx0cmVvcmRlcjogZnVuY3Rpb24gKCkge1xuXG5cdFx0Ly8gV0FSTklORzogdGhpcyBkaXNjYXJkcyByZXZvbHV0aW9uIGluZm9ybWF0aW9uIC1iaG91c3RvblxuXG5cdFx0dmFyIHEgPSBuZXcgUXVhdGVybmlvbigpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIHJlb3JkZXIoIG5ld09yZGVyICkge1xuXG5cdFx0XHRxLnNldEZyb21FdWxlciggdGhpcyApO1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5zZXRGcm9tUXVhdGVybmlvbiggcSwgbmV3T3JkZXIgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdGVxdWFsczogZnVuY3Rpb24gKCBldWxlciApIHtcblxuXHRcdHJldHVybiAoIGV1bGVyLl94ID09PSB0aGlzLl94ICkgJiYgKCBldWxlci5feSA9PT0gdGhpcy5feSApICYmICggZXVsZXIuX3ogPT09IHRoaXMuX3ogKSAmJiAoIGV1bGVyLl9vcmRlciA9PT0gdGhpcy5fb3JkZXIgKTtcblxuXHR9LFxuXG5cdGZyb21BcnJheTogZnVuY3Rpb24gKCBhcnJheSApIHtcblxuXHRcdHRoaXMuX3ggPSBhcnJheVsgMCBdO1xuXHRcdHRoaXMuX3kgPSBhcnJheVsgMSBdO1xuXHRcdHRoaXMuX3ogPSBhcnJheVsgMiBdO1xuXHRcdGlmICggYXJyYXlbIDMgXSAhPT0gdW5kZWZpbmVkICkgdGhpcy5fb3JkZXIgPSBhcnJheVsgMyBdO1xuXG5cdFx0dGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHR0b0FycmF5OiBmdW5jdGlvbiAoIGFycmF5LCBvZmZzZXQgKSB7XG5cblx0XHRpZiAoIGFycmF5ID09PSB1bmRlZmluZWQgKSBhcnJheSA9IFtdO1xuXHRcdGlmICggb2Zmc2V0ID09PSB1bmRlZmluZWQgKSBvZmZzZXQgPSAwO1xuXG5cdFx0YXJyYXlbIG9mZnNldCBdID0gdGhpcy5feDtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMSBdID0gdGhpcy5feTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMiBdID0gdGhpcy5fejtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMyBdID0gdGhpcy5fb3JkZXI7XG5cblx0XHRyZXR1cm4gYXJyYXk7XG5cblx0fSxcblxuXHR0b1ZlY3RvcjM6IGZ1bmN0aW9uICggb3B0aW9uYWxSZXN1bHQgKSB7XG5cblx0XHRpZiAoIG9wdGlvbmFsUmVzdWx0ICkge1xuXG5cdFx0XHRyZXR1cm4gb3B0aW9uYWxSZXN1bHQuc2V0KCB0aGlzLl94LCB0aGlzLl95LCB0aGlzLl96ICk7XG5cblx0XHR9IGVsc2Uge1xuXG5cdFx0XHRyZXR1cm4gbmV3IFZlY3RvcjMoIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3ogKTtcblxuXHRcdH1cblxuXHR9LFxuXG5cdF9vbkNoYW5nZTogZnVuY3Rpb24gKCBjYWxsYmFjayApIHtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sgPSBjYWxsYmFjaztcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0X29uQ2hhbmdlQ2FsbGJhY2s6IGZ1bmN0aW9uICgpIHt9XG5cbn0gKTtcblxuXG5leHBvcnQgeyBFdWxlciB9OyJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/three/Math.js",
    "content": "/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n */\nvar _Math = {\n  DEG2RAD: Math.PI / 180,\n  RAD2DEG: 180 / Math.PI,\n  generateUUID: function () {\n    // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\n    var lut = [];\n\n    for (var i = 0; i < 256; i++) {\n      lut[i] = (i < 16 ? '0' : '') + i.toString(16);\n    }\n\n    return function generateUUID() {\n      var d0 = Math.random() * 0xffffffff | 0;\n      var d1 = Math.random() * 0xffffffff | 0;\n      var d2 = Math.random() * 0xffffffff | 0;\n      var d3 = Math.random() * 0xffffffff | 0;\n      var uuid = lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff] + '-' + lut[d1 & 0xff] + lut[d1 >> 8 & 0xff] + '-' + lut[d1 >> 16 & 0x0f | 0x40] + lut[d1 >> 24 & 0xff] + '-' + lut[d2 & 0x3f | 0x80] + lut[d2 >> 8 & 0xff] + '-' + lut[d2 >> 16 & 0xff] + lut[d2 >> 24 & 0xff] + lut[d3 & 0xff] + lut[d3 >> 8 & 0xff] + lut[d3 >> 16 & 0xff] + lut[d3 >> 24 & 0xff]; // .toUpperCase() here flattens concatenated strings to save heap memory space.\n\n      return uuid.toUpperCase();\n    };\n  }(),\n  clamp: function (value, min, max) {\n    return Math.max(min, Math.min(max, value));\n  },\n  // compute euclidian modulo of m % n\n  // https://en.wikipedia.org/wiki/Modulo_operation\n  euclideanModulo: function (n, m) {\n    return (n % m + m) % m;\n  },\n  // Linear mapping from range <a1, a2> to range <b1, b2>\n  mapLinear: function (x, a1, a2, b1, b2) {\n    return b1 + (x - a1) * (b2 - b1) / (a2 - a1);\n  },\n  // https://en.wikipedia.org/wiki/Linear_interpolation\n  lerp: function (x, y, t) {\n    return (1 - t) * x + t * y;\n  },\n  // http://en.wikipedia.org/wiki/Smoothstep\n  smoothstep: function (x, min, max) {\n    if (x <= min) return 0;\n    if (x >= max) return 1;\n    x = (x - min) / (max - min);\n    return x * x * (3 - 2 * x);\n  },\n  smootherstep: function (x, min, max) {\n    if (x <= min) return 0;\n    if (x >= max) return 1;\n    x = (x - min) / (max - min);\n    return x * x * x * (x * (x * 6 - 15) + 10);\n  },\n  // Random integer from <low, high> interval\n  randInt: function (low, high) {\n    return low + Math.floor(Math.random() * (high - low + 1));\n  },\n  // Random float from <low, high> interval\n  randFloat: function (low, high) {\n    return low + Math.random() * (high - low);\n  },\n  // Random float from <-range/2, range/2> interval\n  randFloatSpread: function (range) {\n    return range * (0.5 - Math.random());\n  },\n  degToRad: function (degrees) {\n    return degrees * _Math.DEG2RAD;\n  },\n  radToDeg: function (radians) {\n    return radians * _Math.RAD2DEG;\n  },\n  isPowerOfTwo: function (value) {\n    return (value & value - 1) === 0 && value !== 0;\n  },\n  ceilPowerOfTwo: function (value) {\n    return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\n  },\n  floorPowerOfTwo: function (value) {\n    return Math.pow(2, Math.floor(Math.log(value) / Math.LN2));\n  }\n};\nexport { _Math };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL01hdGguanMiXSwibmFtZXMiOlsiX01hdGgiLCJERUcyUkFEIiwiTWF0aCIsIlBJIiwiUkFEMkRFRyIsImdlbmVyYXRlVVVJRCIsImx1dCIsImkiLCJ0b1N0cmluZyIsImQwIiwicmFuZG9tIiwiZDEiLCJkMiIsImQzIiwidXVpZCIsInRvVXBwZXJDYXNlIiwiY2xhbXAiLCJ2YWx1ZSIsIm1pbiIsIm1heCIsImV1Y2xpZGVhbk1vZHVsbyIsIm4iLCJtIiwibWFwTGluZWFyIiwieCIsImExIiwiYTIiLCJiMSIsImIyIiwibGVycCIsInkiLCJ0Iiwic21vb3Roc3RlcCIsInNtb290aGVyc3RlcCIsInJhbmRJbnQiLCJsb3ciLCJoaWdoIiwiZmxvb3IiLCJyYW5kRmxvYXQiLCJyYW5kRmxvYXRTcHJlYWQiLCJyYW5nZSIsImRlZ1RvUmFkIiwiZGVncmVlcyIsInJhZFRvRGVnIiwicmFkaWFucyIsImlzUG93ZXJPZlR3byIsImNlaWxQb3dlck9mVHdvIiwicG93IiwiY2VpbCIsImxvZyIsIkxOMiIsImZsb29yUG93ZXJPZlR3byJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxLQUFLLEdBQUc7QUFFWEMsRUFBQUEsT0FBTyxFQUFFQyxJQUFJLENBQUNDLEVBQUwsR0FBVSxHQUZSO0FBR1hDLEVBQUFBLE9BQU8sRUFBRSxNQUFNRixJQUFJLENBQUNDLEVBSFQ7QUFLWEUsRUFBQUEsWUFBWSxFQUFJLFlBQVk7QUFFM0I7QUFFQSxRQUFJQyxHQUFHLEdBQUcsRUFBVjs7QUFFQSxTQUFNLElBQUlDLENBQUMsR0FBRyxDQUFkLEVBQWlCQSxDQUFDLEdBQUcsR0FBckIsRUFBMEJBLENBQUMsRUFBM0IsRUFBaUM7QUFFaENELE1BQUFBLEdBQUcsQ0FBRUMsQ0FBRixDQUFILEdBQVcsQ0FBRUEsQ0FBQyxHQUFHLEVBQUosR0FBUyxHQUFULEdBQWUsRUFBakIsSUFBMEJBLENBQUYsQ0FBTUMsUUFBTixDQUFnQixFQUFoQixDQUFuQztBQUVBOztBQUVELFdBQU8sU0FBU0gsWUFBVCxHQUF3QjtBQUU5QixVQUFJSSxFQUFFLEdBQUdQLElBQUksQ0FBQ1EsTUFBTCxLQUFnQixVQUFoQixHQUE2QixDQUF0QztBQUNBLFVBQUlDLEVBQUUsR0FBR1QsSUFBSSxDQUFDUSxNQUFMLEtBQWdCLFVBQWhCLEdBQTZCLENBQXRDO0FBQ0EsVUFBSUUsRUFBRSxHQUFHVixJQUFJLENBQUNRLE1BQUwsS0FBZ0IsVUFBaEIsR0FBNkIsQ0FBdEM7QUFDQSxVQUFJRyxFQUFFLEdBQUdYLElBQUksQ0FBQ1EsTUFBTCxLQUFnQixVQUFoQixHQUE2QixDQUF0QztBQUNBLFVBQUlJLElBQUksR0FBR1IsR0FBRyxDQUFFRyxFQUFFLEdBQUcsSUFBUCxDQUFILEdBQW1CSCxHQUFHLENBQUVHLEVBQUUsSUFBSSxDQUFOLEdBQVUsSUFBWixDQUF0QixHQUEyQ0gsR0FBRyxDQUFFRyxFQUFFLElBQUksRUFBTixHQUFXLElBQWIsQ0FBOUMsR0FBb0VILEdBQUcsQ0FBRUcsRUFBRSxJQUFJLEVBQU4sR0FBVyxJQUFiLENBQXZFLEdBQTZGLEdBQTdGLEdBQ1ZILEdBQUcsQ0FBRUssRUFBRSxHQUFHLElBQVAsQ0FETyxHQUNTTCxHQUFHLENBQUVLLEVBQUUsSUFBSSxDQUFOLEdBQVUsSUFBWixDQURaLEdBQ2lDLEdBRGpDLEdBQ3VDTCxHQUFHLENBQUVLLEVBQUUsSUFBSSxFQUFOLEdBQVcsSUFBWCxHQUFrQixJQUFwQixDQUQxQyxHQUN1RUwsR0FBRyxDQUFFSyxFQUFFLElBQUksRUFBTixHQUFXLElBQWIsQ0FEMUUsR0FDZ0csR0FEaEcsR0FFVkwsR0FBRyxDQUFFTSxFQUFFLEdBQUcsSUFBTCxHQUFZLElBQWQsQ0FGTyxHQUVnQk4sR0FBRyxDQUFFTSxFQUFFLElBQUksQ0FBTixHQUFVLElBQVosQ0FGbkIsR0FFd0MsR0FGeEMsR0FFOENOLEdBQUcsQ0FBRU0sRUFBRSxJQUFJLEVBQU4sR0FBVyxJQUFiLENBRmpELEdBRXVFTixHQUFHLENBQUVNLEVBQUUsSUFBSSxFQUFOLEdBQVcsSUFBYixDQUYxRSxHQUdWTixHQUFHLENBQUVPLEVBQUUsR0FBRyxJQUFQLENBSE8sR0FHU1AsR0FBRyxDQUFFTyxFQUFFLElBQUksQ0FBTixHQUFVLElBQVosQ0FIWixHQUdpQ1AsR0FBRyxDQUFFTyxFQUFFLElBQUksRUFBTixHQUFXLElBQWIsQ0FIcEMsR0FHMERQLEdBQUcsQ0FBRU8sRUFBRSxJQUFJLEVBQU4sR0FBVyxJQUFiLENBSHhFLENBTjhCLENBVzlCOztBQUNBLGFBQU9DLElBQUksQ0FBQ0MsV0FBTCxFQUFQO0FBRUEsS0FkRDtBQWdCQSxHQTVCYSxFQUxIO0FBbUNYQyxFQUFBQSxLQUFLLEVBQUUsVUFBV0MsS0FBWCxFQUFrQkMsR0FBbEIsRUFBdUJDLEdBQXZCLEVBQTZCO0FBRW5DLFdBQU9qQixJQUFJLENBQUNpQixHQUFMLENBQVVELEdBQVYsRUFBZWhCLElBQUksQ0FBQ2dCLEdBQUwsQ0FBVUMsR0FBVixFQUFlRixLQUFmLENBQWYsQ0FBUDtBQUVBLEdBdkNVO0FBeUNYO0FBQ0E7QUFFQUcsRUFBQUEsZUFBZSxFQUFFLFVBQVdDLENBQVgsRUFBY0MsQ0FBZCxFQUFrQjtBQUVsQyxXQUFPLENBQUlELENBQUMsR0FBR0MsQ0FBTixHQUFZQSxDQUFkLElBQW9CQSxDQUEzQjtBQUVBLEdBaERVO0FBa0RYO0FBRUFDLEVBQUFBLFNBQVMsRUFBRSxVQUFXQyxDQUFYLEVBQWNDLEVBQWQsRUFBa0JDLEVBQWxCLEVBQXNCQyxFQUF0QixFQUEwQkMsRUFBMUIsRUFBK0I7QUFFekMsV0FBT0QsRUFBRSxHQUFHLENBQUVILENBQUMsR0FBR0MsRUFBTixLQUFlRyxFQUFFLEdBQUdELEVBQXBCLEtBQTZCRCxFQUFFLEdBQUdELEVBQWxDLENBQVo7QUFFQSxHQXhEVTtBQTBEWDtBQUVBSSxFQUFBQSxJQUFJLEVBQUUsVUFBV0wsQ0FBWCxFQUFjTSxDQUFkLEVBQWlCQyxDQUFqQixFQUFxQjtBQUUxQixXQUFPLENBQUUsSUFBSUEsQ0FBTixJQUFZUCxDQUFaLEdBQWdCTyxDQUFDLEdBQUdELENBQTNCO0FBRUEsR0FoRVU7QUFrRVg7QUFFQUUsRUFBQUEsVUFBVSxFQUFFLFVBQVdSLENBQVgsRUFBY04sR0FBZCxFQUFtQkMsR0FBbkIsRUFBeUI7QUFFcEMsUUFBS0ssQ0FBQyxJQUFJTixHQUFWLEVBQWdCLE9BQU8sQ0FBUDtBQUNoQixRQUFLTSxDQUFDLElBQUlMLEdBQVYsRUFBZ0IsT0FBTyxDQUFQO0FBRWhCSyxJQUFBQSxDQUFDLEdBQUcsQ0FBRUEsQ0FBQyxHQUFHTixHQUFOLEtBQWdCQyxHQUFHLEdBQUdELEdBQXRCLENBQUo7QUFFQSxXQUFPTSxDQUFDLEdBQUdBLENBQUosSUFBVSxJQUFJLElBQUlBLENBQWxCLENBQVA7QUFFQSxHQTdFVTtBQStFWFMsRUFBQUEsWUFBWSxFQUFFLFVBQVdULENBQVgsRUFBY04sR0FBZCxFQUFtQkMsR0FBbkIsRUFBeUI7QUFFdEMsUUFBS0ssQ0FBQyxJQUFJTixHQUFWLEVBQWdCLE9BQU8sQ0FBUDtBQUNoQixRQUFLTSxDQUFDLElBQUlMLEdBQVYsRUFBZ0IsT0FBTyxDQUFQO0FBRWhCSyxJQUFBQSxDQUFDLEdBQUcsQ0FBRUEsQ0FBQyxHQUFHTixHQUFOLEtBQWdCQyxHQUFHLEdBQUdELEdBQXRCLENBQUo7QUFFQSxXQUFPTSxDQUFDLEdBQUdBLENBQUosR0FBUUEsQ0FBUixJQUFjQSxDQUFDLElBQUtBLENBQUMsR0FBRyxDQUFKLEdBQVEsRUFBYixDQUFELEdBQXFCLEVBQW5DLENBQVA7QUFFQSxHQXhGVTtBQTBGWDtBQUVBVSxFQUFBQSxPQUFPLEVBQUUsVUFBV0MsR0FBWCxFQUFnQkMsSUFBaEIsRUFBdUI7QUFFL0IsV0FBT0QsR0FBRyxHQUFHakMsSUFBSSxDQUFDbUMsS0FBTCxDQUFZbkMsSUFBSSxDQUFDUSxNQUFMLE1BQWtCMEIsSUFBSSxHQUFHRCxHQUFQLEdBQWEsQ0FBL0IsQ0FBWixDQUFiO0FBRUEsR0FoR1U7QUFrR1g7QUFFQUcsRUFBQUEsU0FBUyxFQUFFLFVBQVdILEdBQVgsRUFBZ0JDLElBQWhCLEVBQXVCO0FBRWpDLFdBQU9ELEdBQUcsR0FBR2pDLElBQUksQ0FBQ1EsTUFBTCxNQUFrQjBCLElBQUksR0FBR0QsR0FBekIsQ0FBYjtBQUVBLEdBeEdVO0FBMEdYO0FBRUFJLEVBQUFBLGVBQWUsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRW5DLFdBQU9BLEtBQUssSUFBSyxNQUFNdEMsSUFBSSxDQUFDUSxNQUFMLEVBQVgsQ0FBWjtBQUVBLEdBaEhVO0FBa0hYK0IsRUFBQUEsUUFBUSxFQUFFLFVBQVdDLE9BQVgsRUFBcUI7QUFFOUIsV0FBT0EsT0FBTyxHQUFHMUMsS0FBSyxDQUFDQyxPQUF2QjtBQUVBLEdBdEhVO0FBd0hYMEMsRUFBQUEsUUFBUSxFQUFFLFVBQVdDLE9BQVgsRUFBcUI7QUFFOUIsV0FBT0EsT0FBTyxHQUFHNUMsS0FBSyxDQUFDSSxPQUF2QjtBQUVBLEdBNUhVO0FBOEhYeUMsRUFBQUEsWUFBWSxFQUFFLFVBQVc1QixLQUFYLEVBQW1CO0FBRWhDLFdBQU8sQ0FBRUEsS0FBSyxHQUFLQSxLQUFLLEdBQUcsQ0FBcEIsTUFBOEIsQ0FBOUIsSUFBbUNBLEtBQUssS0FBSyxDQUFwRDtBQUVBLEdBbElVO0FBb0lYNkIsRUFBQUEsY0FBYyxFQUFFLFVBQVc3QixLQUFYLEVBQW1CO0FBRWxDLFdBQU9mLElBQUksQ0FBQzZDLEdBQUwsQ0FBVSxDQUFWLEVBQWE3QyxJQUFJLENBQUM4QyxJQUFMLENBQVc5QyxJQUFJLENBQUMrQyxHQUFMLENBQVVoQyxLQUFWLElBQW9CZixJQUFJLENBQUNnRCxHQUFwQyxDQUFiLENBQVA7QUFFQSxHQXhJVTtBQTBJWEMsRUFBQUEsZUFBZSxFQUFFLFVBQVdsQyxLQUFYLEVBQW1CO0FBRW5DLFdBQU9mLElBQUksQ0FBQzZDLEdBQUwsQ0FBVSxDQUFWLEVBQWE3QyxJQUFJLENBQUNtQyxLQUFMLENBQVluQyxJQUFJLENBQUMrQyxHQUFMLENBQVVoQyxLQUFWLElBQW9CZixJQUFJLENBQUNnRCxHQUFyQyxDQUFiLENBQVA7QUFFQTtBQTlJVSxDQUFaO0FBbUpBLFNBQVNsRCxLQUFUIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAYXV0aG9yIGFsdGVyZWRxIC8gaHR0cDovL2FsdGVyZWRxdWFsaWEuY29tL1xuICogQGF1dGhvciBtcmRvb2IgLyBodHRwOi8vbXJkb29iLmNvbS9cbiAqL1xuXG52YXIgX01hdGggPSB7XG5cblx0REVHMlJBRDogTWF0aC5QSSAvIDE4MCxcblx0UkFEMkRFRzogMTgwIC8gTWF0aC5QSSxcblxuXHRnZW5lcmF0ZVVVSUQ6ICggZnVuY3Rpb24gKCkge1xuXG5cdFx0Ly8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDUwMzQvaG93LXRvLWNyZWF0ZS1hLWd1aWQtdXVpZC1pbi1qYXZhc2NyaXB0LzIxOTYzMTM2IzIxOTYzMTM2XG5cblx0XHR2YXIgbHV0ID0gW107XG5cblx0XHRmb3IgKCB2YXIgaSA9IDA7IGkgPCAyNTY7IGkgKysgKSB7XG5cblx0XHRcdGx1dFsgaSBdID0gKCBpIDwgMTYgPyAnMCcgOiAnJyApICsgKCBpICkudG9TdHJpbmcoIDE2ICk7XG5cblx0XHR9XG5cblx0XHRyZXR1cm4gZnVuY3Rpb24gZ2VuZXJhdGVVVUlEKCkge1xuXG5cdFx0XHR2YXIgZDAgPSBNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZiB8IDA7XG5cdFx0XHR2YXIgZDEgPSBNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZiB8IDA7XG5cdFx0XHR2YXIgZDIgPSBNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZiB8IDA7XG5cdFx0XHR2YXIgZDMgPSBNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZiB8IDA7XG5cdFx0XHR2YXIgdXVpZCA9IGx1dFsgZDAgJiAweGZmIF0gKyBsdXRbIGQwID4+IDggJiAweGZmIF0gKyBsdXRbIGQwID4+IDE2ICYgMHhmZiBdICsgbHV0WyBkMCA+PiAyNCAmIDB4ZmYgXSArICctJyArXG5cdFx0XHRcdGx1dFsgZDEgJiAweGZmIF0gKyBsdXRbIGQxID4+IDggJiAweGZmIF0gKyAnLScgKyBsdXRbIGQxID4+IDE2ICYgMHgwZiB8IDB4NDAgXSArIGx1dFsgZDEgPj4gMjQgJiAweGZmIF0gKyAnLScgK1xuXHRcdFx0XHRsdXRbIGQyICYgMHgzZiB8IDB4ODAgXSArIGx1dFsgZDIgPj4gOCAmIDB4ZmYgXSArICctJyArIGx1dFsgZDIgPj4gMTYgJiAweGZmIF0gKyBsdXRbIGQyID4+IDI0ICYgMHhmZiBdICtcblx0XHRcdFx0bHV0WyBkMyAmIDB4ZmYgXSArIGx1dFsgZDMgPj4gOCAmIDB4ZmYgXSArIGx1dFsgZDMgPj4gMTYgJiAweGZmIF0gKyBsdXRbIGQzID4+IDI0ICYgMHhmZiBdO1xuXG5cdFx0XHQvLyAudG9VcHBlckNhc2UoKSBoZXJlIGZsYXR0ZW5zIGNvbmNhdGVuYXRlZCBzdHJpbmdzIHRvIHNhdmUgaGVhcCBtZW1vcnkgc3BhY2UuXG5cdFx0XHRyZXR1cm4gdXVpZC50b1VwcGVyQ2FzZSgpO1xuXG5cdFx0fTtcblxuXHR9ICkoKSxcblxuXHRjbGFtcDogZnVuY3Rpb24gKCB2YWx1ZSwgbWluLCBtYXggKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5tYXgoIG1pbiwgTWF0aC5taW4oIG1heCwgdmFsdWUgKSApO1xuXG5cdH0sXG5cblx0Ly8gY29tcHV0ZSBldWNsaWRpYW4gbW9kdWxvIG9mIG0gJSBuXG5cdC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01vZHVsb19vcGVyYXRpb25cblxuXHRldWNsaWRlYW5Nb2R1bG86IGZ1bmN0aW9uICggbiwgbSApIHtcblxuXHRcdHJldHVybiAoICggbiAlIG0gKSArIG0gKSAlIG07XG5cblx0fSxcblxuXHQvLyBMaW5lYXIgbWFwcGluZyBmcm9tIHJhbmdlIDxhMSwgYTI+IHRvIHJhbmdlIDxiMSwgYjI+XG5cblx0bWFwTGluZWFyOiBmdW5jdGlvbiAoIHgsIGExLCBhMiwgYjEsIGIyICkge1xuXG5cdFx0cmV0dXJuIGIxICsgKCB4IC0gYTEgKSAqICggYjIgLSBiMSApIC8gKCBhMiAtIGExICk7XG5cblx0fSxcblxuXHQvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaW5lYXJfaW50ZXJwb2xhdGlvblxuXG5cdGxlcnA6IGZ1bmN0aW9uICggeCwgeSwgdCApIHtcblxuXHRcdHJldHVybiAoIDEgLSB0ICkgKiB4ICsgdCAqIHk7XG5cblx0fSxcblxuXHQvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Ntb290aHN0ZXBcblxuXHRzbW9vdGhzdGVwOiBmdW5jdGlvbiAoIHgsIG1pbiwgbWF4ICkge1xuXG5cdFx0aWYgKCB4IDw9IG1pbiApIHJldHVybiAwO1xuXHRcdGlmICggeCA+PSBtYXggKSByZXR1cm4gMTtcblxuXHRcdHggPSAoIHggLSBtaW4gKSAvICggbWF4IC0gbWluICk7XG5cblx0XHRyZXR1cm4geCAqIHggKiAoIDMgLSAyICogeCApO1xuXG5cdH0sXG5cblx0c21vb3RoZXJzdGVwOiBmdW5jdGlvbiAoIHgsIG1pbiwgbWF4ICkge1xuXG5cdFx0aWYgKCB4IDw9IG1pbiApIHJldHVybiAwO1xuXHRcdGlmICggeCA+PSBtYXggKSByZXR1cm4gMTtcblxuXHRcdHggPSAoIHggLSBtaW4gKSAvICggbWF4IC0gbWluICk7XG5cblx0XHRyZXR1cm4geCAqIHggKiB4ICogKCB4ICogKCB4ICogNiAtIDE1ICkgKyAxMCApO1xuXG5cdH0sXG5cblx0Ly8gUmFuZG9tIGludGVnZXIgZnJvbSA8bG93LCBoaWdoPiBpbnRlcnZhbFxuXG5cdHJhbmRJbnQ6IGZ1bmN0aW9uICggbG93LCBoaWdoICkge1xuXG5cdFx0cmV0dXJuIGxvdyArIE1hdGguZmxvb3IoIE1hdGgucmFuZG9tKCkgKiAoIGhpZ2ggLSBsb3cgKyAxICkgKTtcblxuXHR9LFxuXG5cdC8vIFJhbmRvbSBmbG9hdCBmcm9tIDxsb3csIGhpZ2g+IGludGVydmFsXG5cblx0cmFuZEZsb2F0OiBmdW5jdGlvbiAoIGxvdywgaGlnaCApIHtcblxuXHRcdHJldHVybiBsb3cgKyBNYXRoLnJhbmRvbSgpICogKCBoaWdoIC0gbG93ICk7XG5cblx0fSxcblxuXHQvLyBSYW5kb20gZmxvYXQgZnJvbSA8LXJhbmdlLzIsIHJhbmdlLzI+IGludGVydmFsXG5cblx0cmFuZEZsb2F0U3ByZWFkOiBmdW5jdGlvbiAoIHJhbmdlICkge1xuXG5cdFx0cmV0dXJuIHJhbmdlICogKCAwLjUgLSBNYXRoLnJhbmRvbSgpICk7XG5cblx0fSxcblxuXHRkZWdUb1JhZDogZnVuY3Rpb24gKCBkZWdyZWVzICkge1xuXG5cdFx0cmV0dXJuIGRlZ3JlZXMgKiBfTWF0aC5ERUcyUkFEO1xuXG5cdH0sXG5cblx0cmFkVG9EZWc6IGZ1bmN0aW9uICggcmFkaWFucyApIHtcblxuXHRcdHJldHVybiByYWRpYW5zICogX01hdGguUkFEMkRFRztcblxuXHR9LFxuXG5cdGlzUG93ZXJPZlR3bzogZnVuY3Rpb24gKCB2YWx1ZSApIHtcblxuXHRcdHJldHVybiAoIHZhbHVlICYgKCB2YWx1ZSAtIDEgKSApID09PSAwICYmIHZhbHVlICE9PSAwO1xuXG5cdH0sXG5cblx0Y2VpbFBvd2VyT2ZUd286IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5wb3coIDIsIE1hdGguY2VpbCggTWF0aC5sb2coIHZhbHVlICkgLyBNYXRoLkxOMiApICk7XG5cblx0fSxcblxuXHRmbG9vclBvd2VyT2ZUd286IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5wb3coIDIsIE1hdGguZmxvb3IoIE1hdGgubG9nKCB2YWx1ZSApIC8gTWF0aC5MTjIgKSApO1xuXG5cdH1cblxufTtcblxuXG5leHBvcnQgeyBfTWF0aCB9OyJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/three/Matrix4.js",
    "content": "import { Vector3 } from './Vector3.js';\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author supereggbert / http://www.paulbrunt.co.uk/\n * @author philogb / http://blog.thejit.org/\n * @author jordi_ros / http://plattsoft.com\n * @author D1plo1d / http://github.com/D1plo1d\n * @author alteredq / http://alteredqualia.com/\n * @author mikael emtinger / http://gomo.se/\n * @author timknip / http://www.floorplanner.com/\n * @author bhouston / http://clara.io\n * @author WestLangley / http://github.com/WestLangley\n */\n\nfunction Matrix4() {\n  this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\n  if (arguments.length > 0) {\n    console.error('THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.');\n  }\n}\n\nObject.assign(Matrix4.prototype, {\n  isMatrix4: true,\n  set: function (n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\n    var te = this.elements;\n    te[0] = n11;\n    te[4] = n12;\n    te[8] = n13;\n    te[12] = n14;\n    te[1] = n21;\n    te[5] = n22;\n    te[9] = n23;\n    te[13] = n24;\n    te[2] = n31;\n    te[6] = n32;\n    te[10] = n33;\n    te[14] = n34;\n    te[3] = n41;\n    te[7] = n42;\n    te[11] = n43;\n    te[15] = n44;\n    return this;\n  },\n  identity: function () {\n    this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    return this;\n  },\n  clone: function () {\n    return new Matrix4().fromArray(this.elements);\n  },\n  copy: function (m) {\n    var te = this.elements;\n    var me = m.elements;\n    te[0] = me[0];\n    te[1] = me[1];\n    te[2] = me[2];\n    te[3] = me[3];\n    te[4] = me[4];\n    te[5] = me[5];\n    te[6] = me[6];\n    te[7] = me[7];\n    te[8] = me[8];\n    te[9] = me[9];\n    te[10] = me[10];\n    te[11] = me[11];\n    te[12] = me[12];\n    te[13] = me[13];\n    te[14] = me[14];\n    te[15] = me[15];\n    return this;\n  },\n  copyPosition: function (m) {\n    var te = this.elements,\n        me = m.elements;\n    te[12] = me[12];\n    te[13] = me[13];\n    te[14] = me[14];\n    return this;\n  },\n  extractBasis: function (xAxis, yAxis, zAxis) {\n    xAxis.setFromMatrixColumn(this, 0);\n    yAxis.setFromMatrixColumn(this, 1);\n    zAxis.setFromMatrixColumn(this, 2);\n    return this;\n  },\n  makeBasis: function (xAxis, yAxis, zAxis) {\n    this.set(xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1);\n    return this;\n  },\n  extractRotation: function () {\n    var v1 = new Vector3();\n    return function extractRotation(m) {\n      // this method does not support reflection matrices\n      var te = this.elements;\n      var me = m.elements;\n      var scaleX = 1 / v1.setFromMatrixColumn(m, 0).length();\n      var scaleY = 1 / v1.setFromMatrixColumn(m, 1).length();\n      var scaleZ = 1 / v1.setFromMatrixColumn(m, 2).length();\n      te[0] = me[0] * scaleX;\n      te[1] = me[1] * scaleX;\n      te[2] = me[2] * scaleX;\n      te[3] = 0;\n      te[4] = me[4] * scaleY;\n      te[5] = me[5] * scaleY;\n      te[6] = me[6] * scaleY;\n      te[7] = 0;\n      te[8] = me[8] * scaleZ;\n      te[9] = me[9] * scaleZ;\n      te[10] = me[10] * scaleZ;\n      te[11] = 0;\n      te[12] = 0;\n      te[13] = 0;\n      te[14] = 0;\n      te[15] = 1;\n      return this;\n    };\n  }(),\n  makeRotationFromEuler: function (euler) {\n    if (!(euler && euler.isEuler)) {\n      console.error('THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.');\n    }\n\n    var te = this.elements;\n    var x = euler.x,\n        y = euler.y,\n        z = euler.z;\n    var a = Math.cos(x),\n        b = Math.sin(x);\n    var c = Math.cos(y),\n        d = Math.sin(y);\n    var e = Math.cos(z),\n        f = Math.sin(z);\n\n    if (euler.order === 'XYZ') {\n      var ae = a * e,\n          af = a * f,\n          be = b * e,\n          bf = b * f;\n      te[0] = c * e;\n      te[4] = -c * f;\n      te[8] = d;\n      te[1] = af + be * d;\n      te[5] = ae - bf * d;\n      te[9] = -b * c;\n      te[2] = bf - ae * d;\n      te[6] = be + af * d;\n      te[10] = a * c;\n    } else if (euler.order === 'YXZ') {\n      var ce = c * e,\n          cf = c * f,\n          de = d * e,\n          df = d * f;\n      te[0] = ce + df * b;\n      te[4] = de * b - cf;\n      te[8] = a * d;\n      te[1] = a * f;\n      te[5] = a * e;\n      te[9] = -b;\n      te[2] = cf * b - de;\n      te[6] = df + ce * b;\n      te[10] = a * c;\n    } else if (euler.order === 'ZXY') {\n      var ce = c * e,\n          cf = c * f,\n          de = d * e,\n          df = d * f;\n      te[0] = ce - df * b;\n      te[4] = -a * f;\n      te[8] = de + cf * b;\n      te[1] = cf + de * b;\n      te[5] = a * e;\n      te[9] = df - ce * b;\n      te[2] = -a * d;\n      te[6] = b;\n      te[10] = a * c;\n    } else if (euler.order === 'ZYX') {\n      var ae = a * e,\n          af = a * f,\n          be = b * e,\n          bf = b * f;\n      te[0] = c * e;\n      te[4] = be * d - af;\n      te[8] = ae * d + bf;\n      te[1] = c * f;\n      te[5] = bf * d + ae;\n      te[9] = af * d - be;\n      te[2] = -d;\n      te[6] = b * c;\n      te[10] = a * c;\n    } else if (euler.order === 'YZX') {\n      var ac = a * c,\n          ad = a * d,\n          bc = b * c,\n          bd = b * d;\n      te[0] = c * e;\n      te[4] = bd - ac * f;\n      te[8] = bc * f + ad;\n      te[1] = f;\n      te[5] = a * e;\n      te[9] = -b * e;\n      te[2] = -d * e;\n      te[6] = ad * f + bc;\n      te[10] = ac - bd * f;\n    } else if (euler.order === 'XZY') {\n      var ac = a * c,\n          ad = a * d,\n          bc = b * c,\n          bd = b * d;\n      te[0] = c * e;\n      te[4] = -f;\n      te[8] = d * e;\n      te[1] = ac * f + bd;\n      te[5] = a * e;\n      te[9] = ad * f - bc;\n      te[2] = bc * f - ad;\n      te[6] = b * e;\n      te[10] = bd * f + ac;\n    } // bottom row\n\n\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = 0; // last column\n\n    te[12] = 0;\n    te[13] = 0;\n    te[14] = 0;\n    te[15] = 1;\n    return this;\n  },\n  makeRotationFromQuaternion: function () {\n    var zero = new Vector3(0, 0, 0);\n    var one = new Vector3(1, 1, 1);\n    return function makeRotationFromQuaternion(q) {\n      return this.compose(zero, q, one);\n    };\n  }(),\n  lookAt: function () {\n    var x = new Vector3();\n    var y = new Vector3();\n    var z = new Vector3();\n    return function lookAt(eye, target, up) {\n      var te = this.elements;\n      z.subVectors(eye, target);\n\n      if (z.lengthSq() === 0) {\n        // eye and target are in the same position\n        z.z = 1;\n      }\n\n      z.normalize();\n      x.crossVectors(up, z);\n\n      if (x.lengthSq() === 0) {\n        // up and z are parallel\n        if (Math.abs(up.z) === 1) {\n          z.x += 0.0001;\n        } else {\n          z.z += 0.0001;\n        }\n\n        z.normalize();\n        x.crossVectors(up, z);\n      }\n\n      x.normalize();\n      y.crossVectors(z, x);\n      te[0] = x.x;\n      te[4] = y.x;\n      te[8] = z.x;\n      te[1] = x.y;\n      te[5] = y.y;\n      te[9] = z.y;\n      te[2] = x.z;\n      te[6] = y.z;\n      te[10] = z.z;\n      return this;\n    };\n  }(),\n  multiply: function (m, n) {\n    if (n !== undefined) {\n      console.warn('THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.');\n      return this.multiplyMatrices(m, n);\n    }\n\n    return this.multiplyMatrices(this, m);\n  },\n  premultiply: function (m) {\n    return this.multiplyMatrices(m, this);\n  },\n  multiplyMatrices: function (a, b) {\n    var ae = a.elements;\n    var be = b.elements;\n    var te = this.elements;\n    var a11 = ae[0],\n        a12 = ae[4],\n        a13 = ae[8],\n        a14 = ae[12];\n    var a21 = ae[1],\n        a22 = ae[5],\n        a23 = ae[9],\n        a24 = ae[13];\n    var a31 = ae[2],\n        a32 = ae[6],\n        a33 = ae[10],\n        a34 = ae[14];\n    var a41 = ae[3],\n        a42 = ae[7],\n        a43 = ae[11],\n        a44 = ae[15];\n    var b11 = be[0],\n        b12 = be[4],\n        b13 = be[8],\n        b14 = be[12];\n    var b21 = be[1],\n        b22 = be[5],\n        b23 = be[9],\n        b24 = be[13];\n    var b31 = be[2],\n        b32 = be[6],\n        b33 = be[10],\n        b34 = be[14];\n    var b41 = be[3],\n        b42 = be[7],\n        b43 = be[11],\n        b44 = be[15];\n    te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n    te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n    te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n    te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n    te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n    te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n    te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n    te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n    te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n    te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n    te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n    te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n    te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n    te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n    te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n    te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n    return this;\n  },\n  multiplyScalar: function (s) {\n    var te = this.elements;\n    te[0] *= s;\n    te[4] *= s;\n    te[8] *= s;\n    te[12] *= s;\n    te[1] *= s;\n    te[5] *= s;\n    te[9] *= s;\n    te[13] *= s;\n    te[2] *= s;\n    te[6] *= s;\n    te[10] *= s;\n    te[14] *= s;\n    te[3] *= s;\n    te[7] *= s;\n    te[11] *= s;\n    te[15] *= s;\n    return this;\n  },\n  applyToBufferAttribute: function () {\n    var v1 = new Vector3();\n    return function applyToBufferAttribute(attribute) {\n      for (var i = 0, l = attribute.count; i < l; i++) {\n        v1.x = attribute.getX(i);\n        v1.y = attribute.getY(i);\n        v1.z = attribute.getZ(i);\n        v1.applyMatrix4(this);\n        attribute.setXYZ(i, v1.x, v1.y, v1.z);\n      }\n\n      return attribute;\n    };\n  }(),\n  determinant: function () {\n    var te = this.elements;\n    var n11 = te[0],\n        n12 = te[4],\n        n13 = te[8],\n        n14 = te[12];\n    var n21 = te[1],\n        n22 = te[5],\n        n23 = te[9],\n        n24 = te[13];\n    var n31 = te[2],\n        n32 = te[6],\n        n33 = te[10],\n        n34 = te[14];\n    var n41 = te[3],\n        n42 = te[7],\n        n43 = te[11],\n        n44 = te[15]; //TODO: make this more efficient\n    //( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n    return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31);\n  },\n  transpose: function () {\n    var te = this.elements;\n    var tmp;\n    tmp = te[1];\n    te[1] = te[4];\n    te[4] = tmp;\n    tmp = te[2];\n    te[2] = te[8];\n    te[8] = tmp;\n    tmp = te[6];\n    te[6] = te[9];\n    te[9] = tmp;\n    tmp = te[3];\n    te[3] = te[12];\n    te[12] = tmp;\n    tmp = te[7];\n    te[7] = te[13];\n    te[13] = tmp;\n    tmp = te[11];\n    te[11] = te[14];\n    te[14] = tmp;\n    return this;\n  },\n  setPosition: function (x, y, z) {\n    var te = this.elements;\n\n    if (x.isVector3) {\n      te[12] = x.x;\n      te[13] = x.y;\n      te[14] = x.z;\n    } else {\n      te[12] = x;\n      te[13] = y;\n      te[14] = z;\n    }\n\n    return this;\n  },\n  getInverse: function (m, throwOnDegenerate) {\n    // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n    var te = this.elements,\n        me = m.elements,\n        n11 = me[0],\n        n21 = me[1],\n        n31 = me[2],\n        n41 = me[3],\n        n12 = me[4],\n        n22 = me[5],\n        n32 = me[6],\n        n42 = me[7],\n        n13 = me[8],\n        n23 = me[9],\n        n33 = me[10],\n        n43 = me[11],\n        n14 = me[12],\n        n24 = me[13],\n        n34 = me[14],\n        n44 = me[15],\n        t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n        t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n        t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n        t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n    var det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n    if (det === 0) {\n      var msg = \"THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0\";\n\n      if (throwOnDegenerate === true) {\n        throw new Error(msg);\n      } else {\n        console.warn(msg);\n      }\n\n      return this.identity();\n    }\n\n    var detInv = 1 / det;\n    te[0] = t11 * detInv;\n    te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;\n    te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;\n    te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;\n    te[4] = t12 * detInv;\n    te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;\n    te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;\n    te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;\n    te[8] = t13 * detInv;\n    te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;\n    te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;\n    te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;\n    te[12] = t14 * detInv;\n    te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;\n    te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;\n    te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;\n    return this;\n  },\n  scale: function (v) {\n    var te = this.elements;\n    var x = v.x,\n        y = v.y,\n        z = v.z;\n    te[0] *= x;\n    te[4] *= y;\n    te[8] *= z;\n    te[1] *= x;\n    te[5] *= y;\n    te[9] *= z;\n    te[2] *= x;\n    te[6] *= y;\n    te[10] *= z;\n    te[3] *= x;\n    te[7] *= y;\n    te[11] *= z;\n    return this;\n  },\n  getMaxScaleOnAxis: function () {\n    var te = this.elements;\n    var scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];\n    var scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];\n    var scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];\n    return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n  },\n  makeTranslation: function (x, y, z) {\n    this.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1);\n    return this;\n  },\n  makeRotationX: function (theta) {\n    var c = Math.cos(theta),\n        s = Math.sin(theta);\n    this.set(1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1);\n    return this;\n  },\n  makeRotationY: function (theta) {\n    var c = Math.cos(theta),\n        s = Math.sin(theta);\n    this.set(c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1);\n    return this;\n  },\n  makeRotationZ: function (theta) {\n    var c = Math.cos(theta),\n        s = Math.sin(theta);\n    this.set(c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    return this;\n  },\n  makeRotationAxis: function (axis, angle) {\n    // Based on http://www.gamedev.net/reference/articles/article1199.asp\n    var c = Math.cos(angle);\n    var s = Math.sin(angle);\n    var t = 1 - c;\n    var x = axis.x,\n        y = axis.y,\n        z = axis.z;\n    var tx = t * x,\n        ty = t * y;\n    this.set(tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1);\n    return this;\n  },\n  makeScale: function (x, y, z) {\n    this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1);\n    return this;\n  },\n  makeShear: function (x, y, z) {\n    this.set(1, y, z, 0, x, 1, z, 0, x, y, 1, 0, 0, 0, 0, 1);\n    return this;\n  },\n  compose: function (position, quaternion, scale) {\n    var te = this.elements;\n    var x = quaternion._x,\n        y = quaternion._y,\n        z = quaternion._z,\n        w = quaternion._w;\n    var x2 = x + x,\n        y2 = y + y,\n        z2 = z + z;\n    var xx = x * x2,\n        xy = x * y2,\n        xz = x * z2;\n    var yy = y * y2,\n        yz = y * z2,\n        zz = z * z2;\n    var wx = w * x2,\n        wy = w * y2,\n        wz = w * z2;\n    var sx = scale.x,\n        sy = scale.y,\n        sz = scale.z;\n    te[0] = (1 - (yy + zz)) * sx;\n    te[1] = (xy + wz) * sx;\n    te[2] = (xz - wy) * sx;\n    te[3] = 0;\n    te[4] = (xy - wz) * sy;\n    te[5] = (1 - (xx + zz)) * sy;\n    te[6] = (yz + wx) * sy;\n    te[7] = 0;\n    te[8] = (xz + wy) * sz;\n    te[9] = (yz - wx) * sz;\n    te[10] = (1 - (xx + yy)) * sz;\n    te[11] = 0;\n    te[12] = position.x;\n    te[13] = position.y;\n    te[14] = position.z;\n    te[15] = 1;\n    return this;\n  },\n  decompose: function () {\n    var vector = new Vector3();\n    var matrix = new Matrix4();\n    return function decompose(position, quaternion, scale) {\n      var te = this.elements;\n      var sx = vector.set(te[0], te[1], te[2]).length();\n      var sy = vector.set(te[4], te[5], te[6]).length();\n      var sz = vector.set(te[8], te[9], te[10]).length(); // if determine is negative, we need to invert one scale\n\n      var det = this.determinant();\n      if (det < 0) sx = -sx;\n      position.x = te[12];\n      position.y = te[13];\n      position.z = te[14]; // scale the rotation part\n\n      matrix.copy(this);\n      var invSX = 1 / sx;\n      var invSY = 1 / sy;\n      var invSZ = 1 / sz;\n      matrix.elements[0] *= invSX;\n      matrix.elements[1] *= invSX;\n      matrix.elements[2] *= invSX;\n      matrix.elements[4] *= invSY;\n      matrix.elements[5] *= invSY;\n      matrix.elements[6] *= invSY;\n      matrix.elements[8] *= invSZ;\n      matrix.elements[9] *= invSZ;\n      matrix.elements[10] *= invSZ;\n      quaternion.setFromRotationMatrix(matrix);\n      scale.x = sx;\n      scale.y = sy;\n      scale.z = sz;\n      return this;\n    };\n  }(),\n  makePerspective: function (left, right, top, bottom, near, far) {\n    if (far === undefined) {\n      console.warn('THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.');\n    }\n\n    var te = this.elements;\n    var x = 2 * near / (right - left);\n    var y = 2 * near / (top - bottom);\n    var a = (right + left) / (right - left);\n    var b = (top + bottom) / (top - bottom);\n    var c = -(far + near) / (far - near);\n    var d = -2 * far * near / (far - near);\n    te[0] = x;\n    te[4] = 0;\n    te[8] = a;\n    te[12] = 0;\n    te[1] = 0;\n    te[5] = y;\n    te[9] = b;\n    te[13] = 0;\n    te[2] = 0;\n    te[6] = 0;\n    te[10] = c;\n    te[14] = d;\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = -1;\n    te[15] = 0;\n    return this;\n  },\n  makeOrthographic: function (left, right, top, bottom, near, far) {\n    var te = this.elements;\n    var w = 1.0 / (right - left);\n    var h = 1.0 / (top - bottom);\n    var p = 1.0 / (far - near);\n    var x = (right + left) * w;\n    var y = (top + bottom) * h;\n    var z = (far + near) * p;\n    te[0] = 2 * w;\n    te[4] = 0;\n    te[8] = 0;\n    te[12] = -x;\n    te[1] = 0;\n    te[5] = 2 * h;\n    te[9] = 0;\n    te[13] = -y;\n    te[2] = 0;\n    te[6] = 0;\n    te[10] = -2 * p;\n    te[14] = -z;\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = 0;\n    te[15] = 1;\n    return this;\n  },\n  equals: function (matrix) {\n    var te = this.elements;\n    var me = matrix.elements;\n\n    for (var i = 0; i < 16; i++) {\n      if (te[i] !== me[i]) return false;\n    }\n\n    return true;\n  },\n  fromArray: function (array, offset) {\n    if (offset === undefined) offset = 0;\n\n    for (var i = 0; i < 16; i++) {\n      this.elements[i] = array[i + offset];\n    }\n\n    return this;\n  },\n  toArray: function (array, offset) {\n    if (array === undefined) array = [];\n    if (offset === undefined) offset = 0;\n    var te = this.elements;\n    array[offset] = te[0];\n    array[offset + 1] = te[1];\n    array[offset + 2] = te[2];\n    array[offset + 3] = te[3];\n    array[offset + 4] = te[4];\n    array[offset + 5] = te[5];\n    array[offset + 6] = te[6];\n    array[offset + 7] = te[7];\n    array[offset + 8] = te[8];\n    array[offset + 9] = te[9];\n    array[offset + 10] = te[10];\n    array[offset + 11] = te[11];\n    array[offset + 12] = te[12];\n    array[offset + 13] = te[13];\n    array[offset + 14] = te[14];\n    array[offset + 15] = te[15];\n    return array;\n  }\n});\nexport { Matrix4 };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL01hdHJpeDQuanMiXSwibmFtZXMiOlsiVmVjdG9yMyIsIk1hdHJpeDQiLCJlbGVtZW50cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsImNvbnNvbGUiLCJlcnJvciIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImlzTWF0cml4NCIsInNldCIsIm4xMSIsIm4xMiIsIm4xMyIsIm4xNCIsIm4yMSIsIm4yMiIsIm4yMyIsIm4yNCIsIm4zMSIsIm4zMiIsIm4zMyIsIm4zNCIsIm40MSIsIm40MiIsIm40MyIsIm40NCIsInRlIiwiaWRlbnRpdHkiLCJjbG9uZSIsImZyb21BcnJheSIsImNvcHkiLCJtIiwibWUiLCJjb3B5UG9zaXRpb24iLCJleHRyYWN0QmFzaXMiLCJ4QXhpcyIsInlBeGlzIiwiekF4aXMiLCJzZXRGcm9tTWF0cml4Q29sdW1uIiwibWFrZUJhc2lzIiwieCIsInkiLCJ6IiwiZXh0cmFjdFJvdGF0aW9uIiwidjEiLCJzY2FsZVgiLCJzY2FsZVkiLCJzY2FsZVoiLCJtYWtlUm90YXRpb25Gcm9tRXVsZXIiLCJldWxlciIsImlzRXVsZXIiLCJhIiwiTWF0aCIsImNvcyIsImIiLCJzaW4iLCJjIiwiZCIsImUiLCJmIiwib3JkZXIiLCJhZSIsImFmIiwiYmUiLCJiZiIsImNlIiwiY2YiLCJkZSIsImRmIiwiYWMiLCJhZCIsImJjIiwiYmQiLCJtYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbiIsInplcm8iLCJvbmUiLCJxIiwiY29tcG9zZSIsImxvb2tBdCIsImV5ZSIsInRhcmdldCIsInVwIiwic3ViVmVjdG9ycyIsImxlbmd0aFNxIiwibm9ybWFsaXplIiwiY3Jvc3NWZWN0b3JzIiwiYWJzIiwibXVsdGlwbHkiLCJuIiwidW5kZWZpbmVkIiwid2FybiIsIm11bHRpcGx5TWF0cmljZXMiLCJwcmVtdWx0aXBseSIsImExMSIsImExMiIsImExMyIsImExNCIsImEyMSIsImEyMiIsImEyMyIsImEyNCIsImEzMSIsImEzMiIsImEzMyIsImEzNCIsImE0MSIsImE0MiIsImE0MyIsImE0NCIsImIxMSIsImIxMiIsImIxMyIsImIxNCIsImIyMSIsImIyMiIsImIyMyIsImIyNCIsImIzMSIsImIzMiIsImIzMyIsImIzNCIsImI0MSIsImI0MiIsImI0MyIsImI0NCIsIm11bHRpcGx5U2NhbGFyIiwicyIsImFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUiLCJhdHRyaWJ1dGUiLCJpIiwibCIsImNvdW50IiwiZ2V0WCIsImdldFkiLCJnZXRaIiwiYXBwbHlNYXRyaXg0Iiwic2V0WFlaIiwiZGV0ZXJtaW5hbnQiLCJ0cmFuc3Bvc2UiLCJ0bXAiLCJzZXRQb3NpdGlvbiIsImlzVmVjdG9yMyIsImdldEludmVyc2UiLCJ0aHJvd09uRGVnZW5lcmF0ZSIsInQxMSIsInQxMiIsInQxMyIsInQxNCIsImRldCIsIm1zZyIsIkVycm9yIiwiZGV0SW52Iiwic2NhbGUiLCJ2IiwiZ2V0TWF4U2NhbGVPbkF4aXMiLCJzY2FsZVhTcSIsInNjYWxlWVNxIiwic2NhbGVaU3EiLCJzcXJ0IiwibWF4IiwibWFrZVRyYW5zbGF0aW9uIiwibWFrZVJvdGF0aW9uWCIsInRoZXRhIiwibWFrZVJvdGF0aW9uWSIsIm1ha2VSb3RhdGlvbloiLCJtYWtlUm90YXRpb25BeGlzIiwiYXhpcyIsImFuZ2xlIiwidCIsInR4IiwidHkiLCJtYWtlU2NhbGUiLCJtYWtlU2hlYXIiLCJwb3NpdGlvbiIsInF1YXRlcm5pb24iLCJfeCIsIl95IiwiX3oiLCJ3IiwiX3ciLCJ4MiIsInkyIiwiejIiLCJ4eCIsInh5IiwieHoiLCJ5eSIsInl6IiwienoiLCJ3eCIsInd5Iiwid3oiLCJzeCIsInN5Iiwic3oiLCJkZWNvbXBvc2UiLCJ2ZWN0b3IiLCJtYXRyaXgiLCJpbnZTWCIsImludlNZIiwiaW52U1oiLCJzZXRGcm9tUm90YXRpb25NYXRyaXgiLCJtYWtlUGVyc3BlY3RpdmUiLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJuZWFyIiwiZmFyIiwibWFrZU9ydGhvZ3JhcGhpYyIsImgiLCJwIiwiZXF1YWxzIiwiYXJyYXkiLCJvZmZzZXQiLCJ0b0FycmF5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFULFFBQXdCLGNBQXhCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNDLE9BQVQsR0FBbUI7QUFFbEIsT0FBS0MsUUFBTCxHQUFnQixDQUVmLENBRmUsRUFFWixDQUZZLEVBRVQsQ0FGUyxFQUVOLENBRk0sRUFHZixDQUhlLEVBR1osQ0FIWSxFQUdULENBSFMsRUFHTixDQUhNLEVBSWYsQ0FKZSxFQUlaLENBSlksRUFJVCxDQUpTLEVBSU4sQ0FKTSxFQUtmLENBTGUsRUFLWixDQUxZLEVBS1QsQ0FMUyxFQUtOLENBTE0sQ0FBaEI7O0FBU0EsTUFBS0MsU0FBUyxDQUFDQyxNQUFWLEdBQW1CLENBQXhCLEVBQTRCO0FBRTNCQyxJQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBZSwrRUFBZjtBQUVBO0FBRUQ7O0FBRURDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFlUCxPQUFPLENBQUNRLFNBQXZCLEVBQWtDO0FBRWpDQyxFQUFBQSxTQUFTLEVBQUUsSUFGc0I7QUFJakNDLEVBQUFBLEdBQUcsRUFBRSxVQUFXQyxHQUFYLEVBQWdCQyxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsR0FBcEMsRUFBeUNDLEdBQXpDLEVBQThDQyxHQUE5QyxFQUFtREMsR0FBbkQsRUFBd0RDLEdBQXhELEVBQTZEQyxHQUE3RCxFQUFrRUMsR0FBbEUsRUFBdUVDLEdBQXZFLEVBQTRFQyxHQUE1RSxFQUFpRkMsR0FBakYsRUFBc0ZDLEdBQXRGLEVBQTRGO0FBRWhHLFFBQUlDLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBMEIsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVaEIsR0FBVjtBQUFlZ0IsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZixHQUFWO0FBQWVlLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWQsR0FBVjtBQUFlYyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdiLEdBQVg7QUFDN0NhLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVVosR0FBVjtBQUFlWSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVYLEdBQVY7QUFBZVcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVVixHQUFWO0FBQWVVLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV1QsR0FBWDtBQUM3Q1MsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVUixHQUFWO0FBQWVRLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVVAsR0FBVjtBQUFlTyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdOLEdBQVg7QUFBZ0JNLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV0wsR0FBWDtBQUM5Q0ssSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVSixHQUFWO0FBQWVJLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVUgsR0FBVjtBQUFlRyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdGLEdBQVg7QUFBZ0JFLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV0QsR0FBWDtBQUU5QyxXQUFPLElBQVA7QUFFQSxHQWZnQztBQWlCakNFLEVBQUFBLFFBQVEsRUFBRSxZQUFZO0FBRXJCLFNBQUtsQixHQUFMLENBRUMsQ0FGRCxFQUVJLENBRkosRUFFTyxDQUZQLEVBRVUsQ0FGVixFQUdDLENBSEQsRUFHSSxDQUhKLEVBR08sQ0FIUCxFQUdVLENBSFYsRUFJQyxDQUpELEVBSUksQ0FKSixFQUlPLENBSlAsRUFJVSxDQUpWLEVBS0MsQ0FMRCxFQUtJLENBTEosRUFLTyxDQUxQLEVBS1UsQ0FMVjtBQVNBLFdBQU8sSUFBUDtBQUVBLEdBOUJnQztBQWdDakNtQixFQUFBQSxLQUFLLEVBQUUsWUFBWTtBQUVsQixXQUFPLElBQUk3QixPQUFKLEdBQWM4QixTQUFkLENBQXlCLEtBQUs3QixRQUE5QixDQUFQO0FBRUEsR0FwQ2dDO0FBc0NqQzhCLEVBQUFBLElBQUksRUFBRSxVQUFXQyxDQUFYLEVBQWU7QUFFcEIsUUFBSUwsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQ0EsUUFBSWdDLEVBQUUsR0FBR0QsQ0FBQyxDQUFDL0IsUUFBWDtBQUVBMEIsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQW1CTixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBbUJOLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFtQk4sSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQ3pETixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBbUJOLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFtQk4sSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQW1CTixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFDekROLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFtQk4sSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQW1CTixJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdNLEVBQUUsQ0FBRSxFQUFGLENBQWI7QUFBcUJOLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV00sRUFBRSxDQUFFLEVBQUYsQ0FBYjtBQUMzRE4sSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXTSxFQUFFLENBQUUsRUFBRixDQUFiO0FBQXFCTixJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdNLEVBQUUsQ0FBRSxFQUFGLENBQWI7QUFBcUJOLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV00sRUFBRSxDQUFFLEVBQUYsQ0FBYjtBQUFxQk4sSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXTSxFQUFFLENBQUUsRUFBRixDQUFiO0FBRS9ELFdBQU8sSUFBUDtBQUVBLEdBbERnQztBQW9EakNDLEVBQUFBLFlBQVksRUFBRSxVQUFXRixDQUFYLEVBQWU7QUFFNUIsUUFBSUwsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQUEsUUFBd0JnQyxFQUFFLEdBQUdELENBQUMsQ0FBQy9CLFFBQS9CO0FBRUEwQixJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdNLEVBQUUsQ0FBRSxFQUFGLENBQWI7QUFDQU4sSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXTSxFQUFFLENBQUUsRUFBRixDQUFiO0FBQ0FOLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV00sRUFBRSxDQUFFLEVBQUYsQ0FBYjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBOURnQztBQWdFakNFLEVBQUFBLFlBQVksRUFBRSxVQUFXQyxLQUFYLEVBQWtCQyxLQUFsQixFQUF5QkMsS0FBekIsRUFBaUM7QUFFOUNGLElBQUFBLEtBQUssQ0FBQ0csbUJBQU4sQ0FBMkIsSUFBM0IsRUFBaUMsQ0FBakM7QUFDQUYsSUFBQUEsS0FBSyxDQUFDRSxtQkFBTixDQUEyQixJQUEzQixFQUFpQyxDQUFqQztBQUNBRCxJQUFBQSxLQUFLLENBQUNDLG1CQUFOLENBQTJCLElBQTNCLEVBQWlDLENBQWpDO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0F4RWdDO0FBMEVqQ0MsRUFBQUEsU0FBUyxFQUFFLFVBQVdKLEtBQVgsRUFBa0JDLEtBQWxCLEVBQXlCQyxLQUF6QixFQUFpQztBQUUzQyxTQUFLNUIsR0FBTCxDQUNDMEIsS0FBSyxDQUFDSyxDQURQLEVBQ1VKLEtBQUssQ0FBQ0ksQ0FEaEIsRUFDbUJILEtBQUssQ0FBQ0csQ0FEekIsRUFDNEIsQ0FENUIsRUFFQ0wsS0FBSyxDQUFDTSxDQUZQLEVBRVVMLEtBQUssQ0FBQ0ssQ0FGaEIsRUFFbUJKLEtBQUssQ0FBQ0ksQ0FGekIsRUFFNEIsQ0FGNUIsRUFHQ04sS0FBSyxDQUFDTyxDQUhQLEVBR1VOLEtBQUssQ0FBQ00sQ0FIaEIsRUFHbUJMLEtBQUssQ0FBQ0ssQ0FIekIsRUFHNEIsQ0FINUIsRUFJQyxDQUpELEVBSUksQ0FKSixFQUlPLENBSlAsRUFJVSxDQUpWO0FBT0EsV0FBTyxJQUFQO0FBRUEsR0FyRmdDO0FBdUZqQ0MsRUFBQUEsZUFBZSxFQUFFLFlBQVk7QUFFNUIsUUFBSUMsRUFBRSxHQUFHLElBQUk5QyxPQUFKLEVBQVQ7QUFFQSxXQUFPLFNBQVM2QyxlQUFULENBQTBCWixDQUExQixFQUE4QjtBQUVwQztBQUVBLFVBQUlMLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUNBLFVBQUlnQyxFQUFFLEdBQUdELENBQUMsQ0FBQy9CLFFBQVg7QUFFQSxVQUFJNkMsTUFBTSxHQUFHLElBQUlELEVBQUUsQ0FBQ04sbUJBQUgsQ0FBd0JQLENBQXhCLEVBQTJCLENBQTNCLEVBQStCN0IsTUFBL0IsRUFBakI7QUFDQSxVQUFJNEMsTUFBTSxHQUFHLElBQUlGLEVBQUUsQ0FBQ04sbUJBQUgsQ0FBd0JQLENBQXhCLEVBQTJCLENBQTNCLEVBQStCN0IsTUFBL0IsRUFBakI7QUFDQSxVQUFJNkMsTUFBTSxHQUFHLElBQUlILEVBQUUsQ0FBQ04sbUJBQUgsQ0FBd0JQLENBQXhCLEVBQTJCLENBQTNCLEVBQStCN0IsTUFBL0IsRUFBakI7QUFFQXdCLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVYSxNQUFwQjtBQUNBbkIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVhLE1BQXBCO0FBQ0FuQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWEsTUFBcEI7QUFDQW5CLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBRUFBLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVYyxNQUFwQjtBQUNBcEIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVjLE1BQXBCO0FBQ0FwQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWMsTUFBcEI7QUFDQXBCLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBRUFBLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZSxNQUFwQjtBQUNBckIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVlLE1BQXBCO0FBQ0FyQixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdNLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2UsTUFBdEI7QUFDQXJCLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBRUFBLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBQ0FBLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBQ0FBLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBQ0FBLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBRUEsYUFBTyxJQUFQO0FBRUEsS0FqQ0Q7QUFtQ0EsR0F2Q2dCLEVBdkZnQjtBQWdJakNzQixFQUFBQSxxQkFBcUIsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRXpDLFFBQUssRUFBSUEsS0FBSyxJQUFJQSxLQUFLLENBQUNDLE9BQW5CLENBQUwsRUFBb0M7QUFFbkMvQyxNQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBZSx1R0FBZjtBQUVBOztBQUVELFFBQUlzQixFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQSxRQUFJd0MsQ0FBQyxHQUFHUyxLQUFLLENBQUNULENBQWQ7QUFBQSxRQUFpQkMsQ0FBQyxHQUFHUSxLQUFLLENBQUNSLENBQTNCO0FBQUEsUUFBOEJDLENBQUMsR0FBR08sS0FBSyxDQUFDUCxDQUF4QztBQUNBLFFBQUlTLENBQUMsR0FBR0MsSUFBSSxDQUFDQyxHQUFMLENBQVViLENBQVYsQ0FBUjtBQUFBLFFBQXVCYyxDQUFDLEdBQUdGLElBQUksQ0FBQ0csR0FBTCxDQUFVZixDQUFWLENBQTNCO0FBQ0EsUUFBSWdCLENBQUMsR0FBR0osSUFBSSxDQUFDQyxHQUFMLENBQVVaLENBQVYsQ0FBUjtBQUFBLFFBQXVCZ0IsQ0FBQyxHQUFHTCxJQUFJLENBQUNHLEdBQUwsQ0FBVWQsQ0FBVixDQUEzQjtBQUNBLFFBQUlpQixDQUFDLEdBQUdOLElBQUksQ0FBQ0MsR0FBTCxDQUFVWCxDQUFWLENBQVI7QUFBQSxRQUF1QmlCLENBQUMsR0FBR1AsSUFBSSxDQUFDRyxHQUFMLENBQVViLENBQVYsQ0FBM0I7O0FBRUEsUUFBS08sS0FBSyxDQUFDVyxLQUFOLEtBQWdCLEtBQXJCLEVBQTZCO0FBRTVCLFVBQUlDLEVBQUUsR0FBR1YsQ0FBQyxHQUFHTyxDQUFiO0FBQUEsVUFBZ0JJLEVBQUUsR0FBR1gsQ0FBQyxHQUFHUSxDQUF6QjtBQUFBLFVBQTRCSSxFQUFFLEdBQUdULENBQUMsR0FBR0ksQ0FBckM7QUFBQSxVQUF3Q00sRUFBRSxHQUFHVixDQUFDLEdBQUdLLENBQWpEO0FBRUFqQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVU4QixDQUFDLEdBQUdFLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFOEIsQ0FBRixHQUFNRyxDQUFoQjtBQUNBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVK0IsQ0FBVjtBQUVBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVb0MsRUFBRSxHQUFHQyxFQUFFLEdBQUdOLENBQXBCO0FBQ0EvQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVtQyxFQUFFLEdBQUdHLEVBQUUsR0FBR1AsQ0FBcEI7QUFDQS9CLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFNEIsQ0FBRixHQUFNRSxDQUFoQjtBQUVBOUIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVc0MsRUFBRSxHQUFHSCxFQUFFLEdBQUdKLENBQXBCO0FBQ0EvQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVxQyxFQUFFLEdBQUdELEVBQUUsR0FBR0wsQ0FBcEI7QUFDQS9CLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV3lCLENBQUMsR0FBR0ssQ0FBZjtBQUVBLEtBaEJELE1BZ0JPLElBQUtQLEtBQUssQ0FBQ1csS0FBTixLQUFnQixLQUFyQixFQUE2QjtBQUVuQyxVQUFJSyxFQUFFLEdBQUdULENBQUMsR0FBR0UsQ0FBYjtBQUFBLFVBQWdCUSxFQUFFLEdBQUdWLENBQUMsR0FBR0csQ0FBekI7QUFBQSxVQUE0QlEsRUFBRSxHQUFHVixDQUFDLEdBQUdDLENBQXJDO0FBQUEsVUFBd0NVLEVBQUUsR0FBR1gsQ0FBQyxHQUFHRSxDQUFqRDtBQUVBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVdUMsRUFBRSxHQUFHRyxFQUFFLEdBQUdkLENBQXBCO0FBQ0E1QixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV5QyxFQUFFLEdBQUdiLENBQUwsR0FBU1ksRUFBbkI7QUFDQXhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXlCLENBQUMsR0FBR00sQ0FBZDtBQUVBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVeUIsQ0FBQyxHQUFHUSxDQUFkO0FBQ0FqQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV5QixDQUFDLEdBQUdPLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFNEIsQ0FBWjtBQUVBNUIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVd0MsRUFBRSxHQUFHWixDQUFMLEdBQVNhLEVBQW5CO0FBQ0F6QyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUwQyxFQUFFLEdBQUdILEVBQUUsR0FBR1gsQ0FBcEI7QUFDQTVCLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV3lCLENBQUMsR0FBR0ssQ0FBZjtBQUVBLEtBaEJNLE1BZ0JBLElBQUtQLEtBQUssQ0FBQ1csS0FBTixLQUFnQixLQUFyQixFQUE2QjtBQUVuQyxVQUFJSyxFQUFFLEdBQUdULENBQUMsR0FBR0UsQ0FBYjtBQUFBLFVBQWdCUSxFQUFFLEdBQUdWLENBQUMsR0FBR0csQ0FBekI7QUFBQSxVQUE0QlEsRUFBRSxHQUFHVixDQUFDLEdBQUdDLENBQXJDO0FBQUEsVUFBd0NVLEVBQUUsR0FBR1gsQ0FBQyxHQUFHRSxDQUFqRDtBQUVBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVdUMsRUFBRSxHQUFHRyxFQUFFLEdBQUdkLENBQXBCO0FBQ0E1QixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRXlCLENBQUYsR0FBTVEsQ0FBaEI7QUFDQWpDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXlDLEVBQUUsR0FBR0QsRUFBRSxHQUFHWixDQUFwQjtBQUVBNUIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVd0MsRUFBRSxHQUFHQyxFQUFFLEdBQUdiLENBQXBCO0FBQ0E1QixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV5QixDQUFDLEdBQUdPLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVTBDLEVBQUUsR0FBR0gsRUFBRSxHQUFHWCxDQUFwQjtBQUVBNUIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUV5QixDQUFGLEdBQU1NLENBQWhCO0FBQ0EvQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVU0QixDQUFWO0FBQ0E1QixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVd5QixDQUFDLEdBQUdLLENBQWY7QUFFQSxLQWhCTSxNQWdCQSxJQUFLUCxLQUFLLENBQUNXLEtBQU4sS0FBZ0IsS0FBckIsRUFBNkI7QUFFbkMsVUFBSUMsRUFBRSxHQUFHVixDQUFDLEdBQUdPLENBQWI7QUFBQSxVQUFnQkksRUFBRSxHQUFHWCxDQUFDLEdBQUdRLENBQXpCO0FBQUEsVUFBNEJJLEVBQUUsR0FBR1QsQ0FBQyxHQUFHSSxDQUFyQztBQUFBLFVBQXdDTSxFQUFFLEdBQUdWLENBQUMsR0FBR0ssQ0FBakQ7QUFFQWpDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVThCLENBQUMsR0FBR0UsQ0FBZDtBQUNBaEMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVcUMsRUFBRSxHQUFHTixDQUFMLEdBQVNLLEVBQW5CO0FBQ0FwQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVtQyxFQUFFLEdBQUdKLENBQUwsR0FBU08sRUFBbkI7QUFFQXRDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVThCLENBQUMsR0FBR0csQ0FBZDtBQUNBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVc0MsRUFBRSxHQUFHUCxDQUFMLEdBQVNJLEVBQW5CO0FBQ0FuQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVvQyxFQUFFLEdBQUdMLENBQUwsR0FBU00sRUFBbkI7QUFFQXJDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFK0IsQ0FBWjtBQUNBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVNEIsQ0FBQyxHQUFHRSxDQUFkO0FBQ0E5QixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVd5QixDQUFDLEdBQUdLLENBQWY7QUFFQSxLQWhCTSxNQWdCQSxJQUFLUCxLQUFLLENBQUNXLEtBQU4sS0FBZ0IsS0FBckIsRUFBNkI7QUFFbkMsVUFBSVMsRUFBRSxHQUFHbEIsQ0FBQyxHQUFHSyxDQUFiO0FBQUEsVUFBZ0JjLEVBQUUsR0FBR25CLENBQUMsR0FBR00sQ0FBekI7QUFBQSxVQUE0QmMsRUFBRSxHQUFHakIsQ0FBQyxHQUFHRSxDQUFyQztBQUFBLFVBQXdDZ0IsRUFBRSxHQUFHbEIsQ0FBQyxHQUFHRyxDQUFqRDtBQUVBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVOEIsQ0FBQyxHQUFHRSxDQUFkO0FBQ0FoQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVU4QyxFQUFFLEdBQUdILEVBQUUsR0FBR1YsQ0FBcEI7QUFDQWpDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVTZDLEVBQUUsR0FBR1osQ0FBTCxHQUFTVyxFQUFuQjtBQUVBNUMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVaUMsQ0FBVjtBQUNBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVeUIsQ0FBQyxHQUFHTyxDQUFkO0FBQ0FoQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRTRCLENBQUYsR0FBTUksQ0FBaEI7QUFFQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFK0IsQ0FBRixHQUFNQyxDQUFoQjtBQUNBaEMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVNEMsRUFBRSxHQUFHWCxDQUFMLEdBQVNZLEVBQW5CO0FBQ0E3QyxNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcyQyxFQUFFLEdBQUdHLEVBQUUsR0FBR2IsQ0FBckI7QUFFQSxLQWhCTSxNQWdCQSxJQUFLVixLQUFLLENBQUNXLEtBQU4sS0FBZ0IsS0FBckIsRUFBNkI7QUFFbkMsVUFBSVMsRUFBRSxHQUFHbEIsQ0FBQyxHQUFHSyxDQUFiO0FBQUEsVUFBZ0JjLEVBQUUsR0FBR25CLENBQUMsR0FBR00sQ0FBekI7QUFBQSxVQUE0QmMsRUFBRSxHQUFHakIsQ0FBQyxHQUFHRSxDQUFyQztBQUFBLFVBQXdDZ0IsRUFBRSxHQUFHbEIsQ0FBQyxHQUFHRyxDQUFqRDtBQUVBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVOEIsQ0FBQyxHQUFHRSxDQUFkO0FBQ0FoQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRWlDLENBQVo7QUFDQWpDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVStCLENBQUMsR0FBR0MsQ0FBZDtBQUVBaEMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVMkMsRUFBRSxHQUFHVixDQUFMLEdBQVNhLEVBQW5CO0FBQ0E5QyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV5QixDQUFDLEdBQUdPLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVTRDLEVBQUUsR0FBR1gsQ0FBTCxHQUFTWSxFQUFuQjtBQUVBN0MsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVNkMsRUFBRSxHQUFHWixDQUFMLEdBQVNXLEVBQW5CO0FBQ0E1QyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVU0QixDQUFDLEdBQUdJLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVzhDLEVBQUUsR0FBR2IsQ0FBTCxHQUFTVSxFQUFwQjtBQUVBLEtBL0d3QyxDQWlIekM7OztBQUNBM0MsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVgsQ0FwSHlDLENBc0h6Qzs7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTlQZ0M7QUFnUWpDK0MsRUFBQUEsMEJBQTBCLEVBQUUsWUFBWTtBQUV2QyxRQUFJQyxJQUFJLEdBQUcsSUFBSTVFLE9BQUosQ0FBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLENBQVg7QUFDQSxRQUFJNkUsR0FBRyxHQUFHLElBQUk3RSxPQUFKLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUFWO0FBRUEsV0FBTyxTQUFTMkUsMEJBQVQsQ0FBcUNHLENBQXJDLEVBQXlDO0FBRS9DLGFBQU8sS0FBS0MsT0FBTCxDQUFjSCxJQUFkLEVBQW9CRSxDQUFwQixFQUF1QkQsR0FBdkIsQ0FBUDtBQUVBLEtBSkQ7QUFNQSxHQVgyQixFQWhRSztBQTZRakNHLEVBQUFBLE1BQU0sRUFBRSxZQUFZO0FBRW5CLFFBQUl0QyxDQUFDLEdBQUcsSUFBSTFDLE9BQUosRUFBUjtBQUNBLFFBQUkyQyxDQUFDLEdBQUcsSUFBSTNDLE9BQUosRUFBUjtBQUNBLFFBQUk0QyxDQUFDLEdBQUcsSUFBSTVDLE9BQUosRUFBUjtBQUVBLFdBQU8sU0FBU2dGLE1BQVQsQ0FBaUJDLEdBQWpCLEVBQXNCQyxNQUF0QixFQUE4QkMsRUFBOUIsRUFBbUM7QUFFekMsVUFBSXZELEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBMEMsTUFBQUEsQ0FBQyxDQUFDd0MsVUFBRixDQUFjSCxHQUFkLEVBQW1CQyxNQUFuQjs7QUFFQSxVQUFLdEMsQ0FBQyxDQUFDeUMsUUFBRixPQUFpQixDQUF0QixFQUEwQjtBQUV6QjtBQUVBekMsUUFBQUEsQ0FBQyxDQUFDQSxDQUFGLEdBQU0sQ0FBTjtBQUVBOztBQUVEQSxNQUFBQSxDQUFDLENBQUMwQyxTQUFGO0FBQ0E1QyxNQUFBQSxDQUFDLENBQUM2QyxZQUFGLENBQWdCSixFQUFoQixFQUFvQnZDLENBQXBCOztBQUVBLFVBQUtGLENBQUMsQ0FBQzJDLFFBQUYsT0FBaUIsQ0FBdEIsRUFBMEI7QUFFekI7QUFFQSxZQUFLL0IsSUFBSSxDQUFDa0MsR0FBTCxDQUFVTCxFQUFFLENBQUN2QyxDQUFiLE1BQXFCLENBQTFCLEVBQThCO0FBRTdCQSxVQUFBQSxDQUFDLENBQUNGLENBQUYsSUFBTyxNQUFQO0FBRUEsU0FKRCxNQUlPO0FBRU5FLFVBQUFBLENBQUMsQ0FBQ0EsQ0FBRixJQUFPLE1BQVA7QUFFQTs7QUFFREEsUUFBQUEsQ0FBQyxDQUFDMEMsU0FBRjtBQUNBNUMsUUFBQUEsQ0FBQyxDQUFDNkMsWUFBRixDQUFnQkosRUFBaEIsRUFBb0J2QyxDQUFwQjtBQUVBOztBQUVERixNQUFBQSxDQUFDLENBQUM0QyxTQUFGO0FBQ0EzQyxNQUFBQSxDQUFDLENBQUM0QyxZQUFGLENBQWdCM0MsQ0FBaEIsRUFBbUJGLENBQW5CO0FBRUFkLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWMsQ0FBQyxDQUFDQSxDQUFaO0FBQWVkLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWUsQ0FBQyxDQUFDRCxDQUFaO0FBQWVkLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWdCLENBQUMsQ0FBQ0YsQ0FBWjtBQUM5QmQsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVYyxDQUFDLENBQUNDLENBQVo7QUFBZWYsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZSxDQUFDLENBQUNBLENBQVo7QUFBZWYsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZ0IsQ0FBQyxDQUFDRCxDQUFaO0FBQzlCZixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVjLENBQUMsQ0FBQ0UsQ0FBWjtBQUFlaEIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZSxDQUFDLENBQUNDLENBQVo7QUFBZWhCLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2dCLENBQUMsQ0FBQ0EsQ0FBYjtBQUU5QixhQUFPLElBQVA7QUFFQSxLQTdDRDtBQStDQSxHQXJETyxFQTdReUI7QUFvVWpDNkMsRUFBQUEsUUFBUSxFQUFFLFVBQVd4RCxDQUFYLEVBQWN5RCxDQUFkLEVBQWtCO0FBRTNCLFFBQUtBLENBQUMsS0FBS0MsU0FBWCxFQUF1QjtBQUV0QnRGLE1BQUFBLE9BQU8sQ0FBQ3VGLElBQVIsQ0FBYyxrR0FBZDtBQUNBLGFBQU8sS0FBS0MsZ0JBQUwsQ0FBdUI1RCxDQUF2QixFQUEwQnlELENBQTFCLENBQVA7QUFFQTs7QUFFRCxXQUFPLEtBQUtHLGdCQUFMLENBQXVCLElBQXZCLEVBQTZCNUQsQ0FBN0IsQ0FBUDtBQUVBLEdBL1VnQztBQWlWakM2RCxFQUFBQSxXQUFXLEVBQUUsVUFBVzdELENBQVgsRUFBZTtBQUUzQixXQUFPLEtBQUs0RCxnQkFBTCxDQUF1QjVELENBQXZCLEVBQTBCLElBQTFCLENBQVA7QUFFQSxHQXJWZ0M7QUF1VmpDNEQsRUFBQUEsZ0JBQWdCLEVBQUUsVUFBV3hDLENBQVgsRUFBY0csQ0FBZCxFQUFrQjtBQUVuQyxRQUFJTyxFQUFFLEdBQUdWLENBQUMsQ0FBQ25ELFFBQVg7QUFDQSxRQUFJK0QsRUFBRSxHQUFHVCxDQUFDLENBQUN0RCxRQUFYO0FBQ0EsUUFBSTBCLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBLFFBQUk2RixHQUFHLEdBQUdoQyxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJpQyxHQUFHLEdBQUdqQyxFQUFFLENBQUUsQ0FBRixDQUEzQjtBQUFBLFFBQWtDa0MsR0FBRyxHQUFHbEMsRUFBRSxDQUFFLENBQUYsQ0FBMUM7QUFBQSxRQUFpRG1DLEdBQUcsR0FBR25DLEVBQUUsQ0FBRSxFQUFGLENBQXpEO0FBQ0EsUUFBSW9DLEdBQUcsR0FBR3BDLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBQSxRQUFtQnFDLEdBQUcsR0FBR3JDLEVBQUUsQ0FBRSxDQUFGLENBQTNCO0FBQUEsUUFBa0NzQyxHQUFHLEdBQUd0QyxFQUFFLENBQUUsQ0FBRixDQUExQztBQUFBLFFBQWlEdUMsR0FBRyxHQUFHdkMsRUFBRSxDQUFFLEVBQUYsQ0FBekQ7QUFDQSxRQUFJd0MsR0FBRyxHQUFHeEMsRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFBLFFBQW1CeUMsR0FBRyxHQUFHekMsRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQzBDLEdBQUcsR0FBRzFDLEVBQUUsQ0FBRSxFQUFGLENBQTFDO0FBQUEsUUFBa0QyQyxHQUFHLEdBQUczQyxFQUFFLENBQUUsRUFBRixDQUExRDtBQUNBLFFBQUk0QyxHQUFHLEdBQUc1QyxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUI2QyxHQUFHLEdBQUc3QyxFQUFFLENBQUUsQ0FBRixDQUEzQjtBQUFBLFFBQWtDOEMsR0FBRyxHQUFHOUMsRUFBRSxDQUFFLEVBQUYsQ0FBMUM7QUFBQSxRQUFrRCtDLEdBQUcsR0FBRy9DLEVBQUUsQ0FBRSxFQUFGLENBQTFEO0FBRUEsUUFBSWdELEdBQUcsR0FBRzlDLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBQSxRQUFtQitDLEdBQUcsR0FBRy9DLEVBQUUsQ0FBRSxDQUFGLENBQTNCO0FBQUEsUUFBa0NnRCxHQUFHLEdBQUdoRCxFQUFFLENBQUUsQ0FBRixDQUExQztBQUFBLFFBQWlEaUQsR0FBRyxHQUFHakQsRUFBRSxDQUFFLEVBQUYsQ0FBekQ7QUFDQSxRQUFJa0QsR0FBRyxHQUFHbEQsRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFBLFFBQW1CbUQsR0FBRyxHQUFHbkQsRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ29ELEdBQUcsR0FBR3BELEVBQUUsQ0FBRSxDQUFGLENBQTFDO0FBQUEsUUFBaURxRCxHQUFHLEdBQUdyRCxFQUFFLENBQUUsRUFBRixDQUF6RDtBQUNBLFFBQUlzRCxHQUFHLEdBQUd0RCxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJ1RCxHQUFHLEdBQUd2RCxFQUFFLENBQUUsQ0FBRixDQUEzQjtBQUFBLFFBQWtDd0QsR0FBRyxHQUFHeEQsRUFBRSxDQUFFLEVBQUYsQ0FBMUM7QUFBQSxRQUFrRHlELEdBQUcsR0FBR3pELEVBQUUsQ0FBRSxFQUFGLENBQTFEO0FBQ0EsUUFBSTBELEdBQUcsR0FBRzFELEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBQSxRQUFtQjJELEdBQUcsR0FBRzNELEVBQUUsQ0FBRSxDQUFGLENBQTNCO0FBQUEsUUFBa0M0RCxHQUFHLEdBQUc1RCxFQUFFLENBQUUsRUFBRixDQUExQztBQUFBLFFBQWtENkQsR0FBRyxHQUFHN0QsRUFBRSxDQUFFLEVBQUYsQ0FBMUQ7QUFFQXJDLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVW1FLEdBQUcsR0FBR2dCLEdBQU4sR0FBWWYsR0FBRyxHQUFHbUIsR0FBbEIsR0FBd0JsQixHQUFHLEdBQUdzQixHQUE5QixHQUFvQ3JCLEdBQUcsR0FBR3lCLEdBQXBEO0FBQ0EvRixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVtRSxHQUFHLEdBQUdpQixHQUFOLEdBQVloQixHQUFHLEdBQUdvQixHQUFsQixHQUF3Qm5CLEdBQUcsR0FBR3VCLEdBQTlCLEdBQW9DdEIsR0FBRyxHQUFHMEIsR0FBcEQ7QUFDQWhHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVW1FLEdBQUcsR0FBR2tCLEdBQU4sR0FBWWpCLEdBQUcsR0FBR3FCLEdBQWxCLEdBQXdCcEIsR0FBRyxHQUFHd0IsR0FBOUIsR0FBb0N2QixHQUFHLEdBQUcyQixHQUFwRDtBQUNBakcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXbUUsR0FBRyxHQUFHbUIsR0FBTixHQUFZbEIsR0FBRyxHQUFHc0IsR0FBbEIsR0FBd0JyQixHQUFHLEdBQUd5QixHQUE5QixHQUFvQ3hCLEdBQUcsR0FBRzRCLEdBQXJEO0FBRUFsRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV1RSxHQUFHLEdBQUdZLEdBQU4sR0FBWVgsR0FBRyxHQUFHZSxHQUFsQixHQUF3QmQsR0FBRyxHQUFHa0IsR0FBOUIsR0FBb0NqQixHQUFHLEdBQUdxQixHQUFwRDtBQUNBL0YsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVdUUsR0FBRyxHQUFHYSxHQUFOLEdBQVlaLEdBQUcsR0FBR2dCLEdBQWxCLEdBQXdCZixHQUFHLEdBQUdtQixHQUE5QixHQUFvQ2xCLEdBQUcsR0FBR3NCLEdBQXBEO0FBQ0FoRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV1RSxHQUFHLEdBQUdjLEdBQU4sR0FBWWIsR0FBRyxHQUFHaUIsR0FBbEIsR0FBd0JoQixHQUFHLEdBQUdvQixHQUE5QixHQUFvQ25CLEdBQUcsR0FBR3VCLEdBQXBEO0FBQ0FqRyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVd1RSxHQUFHLEdBQUdlLEdBQU4sR0FBWWQsR0FBRyxHQUFHa0IsR0FBbEIsR0FBd0JqQixHQUFHLEdBQUdxQixHQUE5QixHQUFvQ3BCLEdBQUcsR0FBR3dCLEdBQXJEO0FBRUFsRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUyRSxHQUFHLEdBQUdRLEdBQU4sR0FBWVAsR0FBRyxHQUFHVyxHQUFsQixHQUF3QlYsR0FBRyxHQUFHYyxHQUE5QixHQUFvQ2IsR0FBRyxHQUFHaUIsR0FBcEQ7QUFDQS9GLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVTJFLEdBQUcsR0FBR1MsR0FBTixHQUFZUixHQUFHLEdBQUdZLEdBQWxCLEdBQXdCWCxHQUFHLEdBQUdlLEdBQTlCLEdBQW9DZCxHQUFHLEdBQUdrQixHQUFwRDtBQUNBaEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXMkUsR0FBRyxHQUFHVSxHQUFOLEdBQVlULEdBQUcsR0FBR2EsR0FBbEIsR0FBd0JaLEdBQUcsR0FBR2dCLEdBQTlCLEdBQW9DZixHQUFHLEdBQUdtQixHQUFyRDtBQUNBakcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXMkUsR0FBRyxHQUFHVyxHQUFOLEdBQVlWLEdBQUcsR0FBR2MsR0FBbEIsR0FBd0JiLEdBQUcsR0FBR2lCLEdBQTlCLEdBQW9DaEIsR0FBRyxHQUFHb0IsR0FBckQ7QUFFQWxHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVStFLEdBQUcsR0FBR0ksR0FBTixHQUFZSCxHQUFHLEdBQUdPLEdBQWxCLEdBQXdCTixHQUFHLEdBQUdVLEdBQTlCLEdBQW9DVCxHQUFHLEdBQUdhLEdBQXBEO0FBQ0EvRixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUrRSxHQUFHLEdBQUdLLEdBQU4sR0FBWUosR0FBRyxHQUFHUSxHQUFsQixHQUF3QlAsR0FBRyxHQUFHVyxHQUE5QixHQUFvQ1YsR0FBRyxHQUFHYyxHQUFwRDtBQUNBaEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXK0UsR0FBRyxHQUFHTSxHQUFOLEdBQVlMLEdBQUcsR0FBR1MsR0FBbEIsR0FBd0JSLEdBQUcsR0FBR1ksR0FBOUIsR0FBb0NYLEdBQUcsR0FBR2UsR0FBckQ7QUFDQWpHLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVytFLEdBQUcsR0FBR08sR0FBTixHQUFZTixHQUFHLEdBQUdVLEdBQWxCLEdBQXdCVCxHQUFHLEdBQUdhLEdBQTlCLEdBQW9DWixHQUFHLEdBQUdnQixHQUFyRDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBN1hnQztBQStYakNDLEVBQUFBLGNBQWMsRUFBRSxVQUFXQyxDQUFYLEVBQWU7QUFFOUIsUUFBSXBHLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBMEIsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZb0csQ0FBWjtBQUMxQ3BHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV29HLENBQVg7QUFBY3BHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV29HLENBQVg7QUFBY3BHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV29HLENBQVg7QUFBY3BHLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsSUFBWW9HLENBQVo7QUFDMUNwRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdvRyxDQUFYO0FBQWNwRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdvRyxDQUFYO0FBQWNwRyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLElBQVlvRyxDQUFaO0FBQWVwRyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLElBQVlvRyxDQUFaO0FBQzNDcEcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZb0csQ0FBWjtBQUFlcEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZb0csQ0FBWjtBQUUzQyxXQUFPLElBQVA7QUFFQSxHQTFZZ0M7QUE0WWpDQyxFQUFBQSxzQkFBc0IsRUFBRSxZQUFZO0FBRW5DLFFBQUluRixFQUFFLEdBQUcsSUFBSTlDLE9BQUosRUFBVDtBQUVBLFdBQU8sU0FBU2lJLHNCQUFULENBQWlDQyxTQUFqQyxFQUE2QztBQUVuRCxXQUFNLElBQUlDLENBQUMsR0FBRyxDQUFSLEVBQVdDLENBQUMsR0FBR0YsU0FBUyxDQUFDRyxLQUEvQixFQUFzQ0YsQ0FBQyxHQUFHQyxDQUExQyxFQUE2Q0QsQ0FBQyxFQUE5QyxFQUFvRDtBQUVuRHJGLFFBQUFBLEVBQUUsQ0FBQ0osQ0FBSCxHQUFPd0YsU0FBUyxDQUFDSSxJQUFWLENBQWdCSCxDQUFoQixDQUFQO0FBQ0FyRixRQUFBQSxFQUFFLENBQUNILENBQUgsR0FBT3VGLFNBQVMsQ0FBQ0ssSUFBVixDQUFnQkosQ0FBaEIsQ0FBUDtBQUNBckYsUUFBQUEsRUFBRSxDQUFDRixDQUFILEdBQU9zRixTQUFTLENBQUNNLElBQVYsQ0FBZ0JMLENBQWhCLENBQVA7QUFFQXJGLFFBQUFBLEVBQUUsQ0FBQzJGLFlBQUgsQ0FBaUIsSUFBakI7QUFFQVAsUUFBQUEsU0FBUyxDQUFDUSxNQUFWLENBQWtCUCxDQUFsQixFQUFxQnJGLEVBQUUsQ0FBQ0osQ0FBeEIsRUFBMkJJLEVBQUUsQ0FBQ0gsQ0FBOUIsRUFBaUNHLEVBQUUsQ0FBQ0YsQ0FBcEM7QUFFQTs7QUFFRCxhQUFPc0YsU0FBUDtBQUVBLEtBaEJEO0FBa0JBLEdBdEJ1QixFQTVZUztBQW9hakNTLEVBQUFBLFdBQVcsRUFBRSxZQUFZO0FBRXhCLFFBQUkvRyxFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQSxRQUFJVSxHQUFHLEdBQUdnQixFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJmLEdBQUcsR0FBR2UsRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ2QsR0FBRyxHQUFHYyxFQUFFLENBQUUsQ0FBRixDQUExQztBQUFBLFFBQWlEYixHQUFHLEdBQUdhLEVBQUUsQ0FBRSxFQUFGLENBQXpEO0FBQ0EsUUFBSVosR0FBRyxHQUFHWSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJYLEdBQUcsR0FBR1csRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ1YsR0FBRyxHQUFHVSxFQUFFLENBQUUsQ0FBRixDQUExQztBQUFBLFFBQWlEVCxHQUFHLEdBQUdTLEVBQUUsQ0FBRSxFQUFGLENBQXpEO0FBQ0EsUUFBSVIsR0FBRyxHQUFHUSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJQLEdBQUcsR0FBR08sRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ04sR0FBRyxHQUFHTSxFQUFFLENBQUUsRUFBRixDQUExQztBQUFBLFFBQWtETCxHQUFHLEdBQUdLLEVBQUUsQ0FBRSxFQUFGLENBQTFEO0FBQ0EsUUFBSUosR0FBRyxHQUFHSSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJILEdBQUcsR0FBR0csRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ0YsR0FBRyxHQUFHRSxFQUFFLENBQUUsRUFBRixDQUExQztBQUFBLFFBQWtERCxHQUFHLEdBQUdDLEVBQUUsQ0FBRSxFQUFGLENBQTFELENBUHdCLENBU3hCO0FBQ0E7O0FBRUEsV0FDQ0osR0FBRyxJQUNGLENBQUVULEdBQUYsR0FBUUcsR0FBUixHQUFjRyxHQUFkLEdBQ0dQLEdBQUcsR0FBR0ssR0FBTixHQUFZRSxHQURmLEdBRUdOLEdBQUcsR0FBR0UsR0FBTixHQUFZSyxHQUZmLEdBR0dULEdBQUcsR0FBR00sR0FBTixHQUFZRyxHQUhmLEdBSUdSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUpmLEdBS0dWLEdBQUcsR0FBR0ssR0FBTixHQUFZSyxHQU5iLENBQUgsR0FRQUUsR0FBRyxJQUNGLENBQUViLEdBQUYsR0FBUU0sR0FBUixHQUFjSyxHQUFkLEdBQ0dYLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQURmLEdBRUdQLEdBQUcsR0FBR0MsR0FBTixHQUFZTSxHQUZmLEdBR0dSLEdBQUcsR0FBR0UsR0FBTixHQUFZTyxHQUhmLEdBSUdULEdBQUcsR0FBR0ssR0FBTixHQUFZQyxHQUpmLEdBS0dMLEdBQUcsR0FBR0csR0FBTixHQUFZRSxHQU5iLENBUkgsR0FnQkFNLEdBQUcsSUFDRixDQUFFZCxHQUFGLEdBQVFPLEdBQVIsR0FBY0UsR0FBZCxHQUNHVCxHQUFHLEdBQUdLLEdBQU4sR0FBWU0sR0FEZixHQUVHUixHQUFHLEdBQUdDLEdBQU4sR0FBWUssR0FGZixHQUdHUixHQUFHLEdBQUdHLEdBQU4sR0FBWU8sR0FIZixHQUlHUixHQUFHLEdBQUdFLEdBQU4sR0FBWUcsR0FKZixHQUtHUCxHQUFHLEdBQUdNLEdBQU4sR0FBWUMsR0FOYixDQWhCSCxHQXdCQU8sR0FBRyxJQUNGLENBQUViLEdBQUYsR0FBUUcsR0FBUixHQUFjRyxHQUFkLEdBQ0dSLEdBQUcsR0FBR00sR0FBTixHQUFZRyxHQURmLEdBRUdULEdBQUcsR0FBR0ssR0FBTixHQUFZSyxHQUZmLEdBR0dSLEdBQUcsR0FBR0UsR0FBTixHQUFZSyxHQUhmLEdBSUdSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUpmLEdBS0dULEdBQUcsR0FBR0ssR0FBTixHQUFZRSxHQU5iLENBekJKO0FBb0NBLEdBcGRnQztBQXNkakN3SCxFQUFBQSxTQUFTLEVBQUUsWUFBWTtBQUV0QixRQUFJaEgsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQ0EsUUFBSTJJLEdBQUo7QUFFQUEsSUFBQUEsR0FBRyxHQUFHakgsRUFBRSxDQUFFLENBQUYsQ0FBUjtBQUFlQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBbUJBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWlILEdBQVY7QUFDbENBLElBQUFBLEdBQUcsR0FBR2pILEVBQUUsQ0FBRSxDQUFGLENBQVI7QUFBZUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQW1CQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVpSCxHQUFWO0FBQ2xDQSxJQUFBQSxHQUFHLEdBQUdqSCxFQUFFLENBQUUsQ0FBRixDQUFSO0FBQWVBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVUEsRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFtQkEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVaUgsR0FBVjtBQUVsQ0EsSUFBQUEsR0FBRyxHQUFHakgsRUFBRSxDQUFFLENBQUYsQ0FBUjtBQUFlQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxFQUFGLENBQVo7QUFBb0JBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2lILEdBQVg7QUFDbkNBLElBQUFBLEdBQUcsR0FBR2pILEVBQUUsQ0FBRSxDQUFGLENBQVI7QUFBZUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsRUFBRixDQUFaO0FBQW9CQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdpSCxHQUFYO0FBQ25DQSxJQUFBQSxHQUFHLEdBQUdqSCxFQUFFLENBQUUsRUFBRixDQUFSO0FBQWdCQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdBLEVBQUUsQ0FBRSxFQUFGLENBQWI7QUFBcUJBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2lILEdBQVg7QUFFckMsV0FBTyxJQUFQO0FBRUEsR0FyZWdDO0FBdWVqQ0MsRUFBQUEsV0FBVyxFQUFFLFVBQVdwRyxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCLEVBQXFCO0FBRWpDLFFBQUloQixFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7O0FBRUEsUUFBS3dDLENBQUMsQ0FBQ3FHLFNBQVAsRUFBbUI7QUFFbEJuSCxNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdjLENBQUMsQ0FBQ0EsQ0FBYjtBQUNBZCxNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdjLENBQUMsQ0FBQ0MsQ0FBYjtBQUNBZixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdjLENBQUMsQ0FBQ0UsQ0FBYjtBQUVBLEtBTkQsTUFNTztBQUVOaEIsTUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXYyxDQUFYO0FBQ0FkLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2UsQ0FBWDtBQUNBZixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdnQixDQUFYO0FBRUE7O0FBRUQsV0FBTyxJQUFQO0FBRUEsR0EzZmdDO0FBNmZqQ29HLEVBQUFBLFVBQVUsRUFBRSxVQUFXL0csQ0FBWCxFQUFjZ0gsaUJBQWQsRUFBa0M7QUFFN0M7QUFDQSxRQUFJckgsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQUEsUUFDQ2dDLEVBQUUsR0FBR0QsQ0FBQyxDQUFDL0IsUUFEUjtBQUFBLFFBR0NVLEdBQUcsR0FBR3NCLEVBQUUsQ0FBRSxDQUFGLENBSFQ7QUFBQSxRQUdnQmxCLEdBQUcsR0FBR2tCLEVBQUUsQ0FBRSxDQUFGLENBSHhCO0FBQUEsUUFHK0JkLEdBQUcsR0FBR2MsRUFBRSxDQUFFLENBQUYsQ0FIdkM7QUFBQSxRQUc4Q1YsR0FBRyxHQUFHVSxFQUFFLENBQUUsQ0FBRixDQUh0RDtBQUFBLFFBSUNyQixHQUFHLEdBQUdxQixFQUFFLENBQUUsQ0FBRixDQUpUO0FBQUEsUUFJZ0JqQixHQUFHLEdBQUdpQixFQUFFLENBQUUsQ0FBRixDQUp4QjtBQUFBLFFBSStCYixHQUFHLEdBQUdhLEVBQUUsQ0FBRSxDQUFGLENBSnZDO0FBQUEsUUFJOENULEdBQUcsR0FBR1MsRUFBRSxDQUFFLENBQUYsQ0FKdEQ7QUFBQSxRQUtDcEIsR0FBRyxHQUFHb0IsRUFBRSxDQUFFLENBQUYsQ0FMVDtBQUFBLFFBS2dCaEIsR0FBRyxHQUFHZ0IsRUFBRSxDQUFFLENBQUYsQ0FMeEI7QUFBQSxRQUsrQlosR0FBRyxHQUFHWSxFQUFFLENBQUUsRUFBRixDQUx2QztBQUFBLFFBSytDUixHQUFHLEdBQUdRLEVBQUUsQ0FBRSxFQUFGLENBTHZEO0FBQUEsUUFNQ25CLEdBQUcsR0FBR21CLEVBQUUsQ0FBRSxFQUFGLENBTlQ7QUFBQSxRQU1pQmYsR0FBRyxHQUFHZSxFQUFFLENBQUUsRUFBRixDQU56QjtBQUFBLFFBTWlDWCxHQUFHLEdBQUdXLEVBQUUsQ0FBRSxFQUFGLENBTnpDO0FBQUEsUUFNaURQLEdBQUcsR0FBR08sRUFBRSxDQUFFLEVBQUYsQ0FOekQ7QUFBQSxRQVFDZ0gsR0FBRyxHQUFHaEksR0FBRyxHQUFHSyxHQUFOLEdBQVlFLEdBQVosR0FBa0JOLEdBQUcsR0FBR0csR0FBTixHQUFZRyxHQUE5QixHQUFvQ04sR0FBRyxHQUFHRSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEVCxHQUFHLEdBQUdNLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUFwRixHQUEwRlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBUjdHO0FBQUEsUUFTQ3dILEdBQUcsR0FBR3BJLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQUFaLEdBQWtCWCxHQUFHLEdBQUdTLEdBQU4sR0FBWUUsR0FBOUIsR0FBb0NWLEdBQUcsR0FBR00sR0FBTixHQUFZSyxHQUFoRCxHQUFzRGIsR0FBRyxHQUFHVSxHQUFOLEdBQVlHLEdBQWxFLEdBQXdFWixHQUFHLEdBQUdPLEdBQU4sR0FBWU0sR0FBcEYsR0FBMEZkLEdBQUcsR0FBR1MsR0FBTixHQUFZSyxHQVQ3RztBQUFBLFFBVUN5SCxHQUFHLEdBQUd0SSxHQUFHLEdBQUdLLEdBQU4sR0FBWU0sR0FBWixHQUFrQlYsR0FBRyxHQUFHRyxHQUFOLEdBQVlPLEdBQTlCLEdBQW9DVixHQUFHLEdBQUdFLEdBQU4sR0FBWVMsR0FBaEQsR0FBc0RiLEdBQUcsR0FBR00sR0FBTixHQUFZTyxHQUFsRSxHQUF3RVosR0FBRyxHQUFHRyxHQUFOLEdBQVlVLEdBQXBGLEdBQTBGZCxHQUFHLEdBQUdLLEdBQU4sR0FBWVMsR0FWN0c7QUFBQSxRQVdDMEgsR0FBRyxHQUFHdEksR0FBRyxHQUFHRyxHQUFOLEdBQVlHLEdBQVosR0FBa0JQLEdBQUcsR0FBR0ssR0FBTixHQUFZRSxHQUE5QixHQUFvQ04sR0FBRyxHQUFHRSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEVCxHQUFHLEdBQUdNLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUFwRixHQUEwRlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBWDdHO0FBYUEsUUFBSStILEdBQUcsR0FBRzFJLEdBQUcsR0FBR3NJLEdBQU4sR0FBWWxJLEdBQUcsR0FBR21JLEdBQWxCLEdBQXdCL0gsR0FBRyxHQUFHZ0ksR0FBOUIsR0FBb0M1SCxHQUFHLEdBQUc2SCxHQUFwRDs7QUFFQSxRQUFLQyxHQUFHLEtBQUssQ0FBYixFQUFpQjtBQUVoQixVQUFJQyxHQUFHLEdBQUcsb0VBQVY7O0FBRUEsVUFBS04saUJBQWlCLEtBQUssSUFBM0IsRUFBa0M7QUFFakMsY0FBTSxJQUFJTyxLQUFKLENBQVdELEdBQVgsQ0FBTjtBQUVBLE9BSkQsTUFJTztBQUVObEosUUFBQUEsT0FBTyxDQUFDdUYsSUFBUixDQUFjMkQsR0FBZDtBQUVBOztBQUVELGFBQU8sS0FBSzFILFFBQUwsRUFBUDtBQUVBOztBQUVELFFBQUk0SCxNQUFNLEdBQUcsSUFBSUgsR0FBakI7QUFFQTFILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXNILEdBQUcsR0FBR08sTUFBaEI7QUFDQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFVCxHQUFHLEdBQUdHLEdBQU4sR0FBWUUsR0FBWixHQUFrQk4sR0FBRyxHQUFHSyxHQUFOLEdBQVlDLEdBQTlCLEdBQW9DTCxHQUFHLEdBQUdDLEdBQU4sR0FBWU0sR0FBaEQsR0FBc0RWLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQUFsRSxHQUF3RVIsR0FBRyxHQUFHRSxHQUFOLEdBQVlPLEdBQXBGLEdBQTBGWCxHQUFHLEdBQUdNLEdBQU4sR0FBWUssR0FBeEcsSUFBZ0g4SCxNQUExSDtBQUNBN0gsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUVYLEdBQUcsR0FBR00sR0FBTixHQUFZQyxHQUFaLEdBQWtCTCxHQUFHLEdBQUdFLEdBQU4sR0FBWUcsR0FBOUIsR0FBb0NMLEdBQUcsR0FBR0MsR0FBTixHQUFZSyxHQUFoRCxHQUFzRFQsR0FBRyxHQUFHTyxHQUFOLEdBQVlFLEdBQWxFLEdBQXdFUixHQUFHLEdBQUdHLEdBQU4sR0FBWU8sR0FBcEYsR0FBMEZYLEdBQUcsR0FBR0ssR0FBTixHQUFZTSxHQUF4RyxJQUFnSDhILE1BQTFIO0FBQ0E3SCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRVYsR0FBRyxHQUFHRyxHQUFOLEdBQVlHLEdBQVosR0FBa0JQLEdBQUcsR0FBR0ssR0FBTixHQUFZRSxHQUE5QixHQUFvQ04sR0FBRyxHQUFHRSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEVCxHQUFHLEdBQUdNLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUFwRixHQUEwRlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBQXhHLElBQWdIK0gsTUFBMUg7QUFFQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXVILEdBQUcsR0FBR00sTUFBaEI7QUFDQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFZCxHQUFHLEdBQUdTLEdBQU4sR0FBWUMsR0FBWixHQUFrQlQsR0FBRyxHQUFHTyxHQUFOLEdBQVlFLEdBQTlCLEdBQW9DVCxHQUFHLEdBQUdLLEdBQU4sR0FBWU0sR0FBaEQsR0FBc0RkLEdBQUcsR0FBR1csR0FBTixHQUFZRyxHQUFsRSxHQUF3RVosR0FBRyxHQUFHTSxHQUFOLEdBQVlPLEdBQXBGLEdBQTBGZixHQUFHLEdBQUdVLEdBQU4sR0FBWUssR0FBeEcsSUFBZ0g4SCxNQUExSDtBQUNBN0gsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUViLEdBQUcsR0FBR00sR0FBTixHQUFZRyxHQUFaLEdBQWtCWCxHQUFHLEdBQUdVLEdBQU4sR0FBWUMsR0FBOUIsR0FBb0NULEdBQUcsR0FBR0ssR0FBTixHQUFZSyxHQUFoRCxHQUFzRGIsR0FBRyxHQUFHVyxHQUFOLEdBQVlFLEdBQWxFLEdBQXdFWixHQUFHLEdBQUdPLEdBQU4sR0FBWU8sR0FBcEYsR0FBMEZmLEdBQUcsR0FBR1MsR0FBTixHQUFZTSxHQUF4RyxJQUFnSDhILE1BQTFIO0FBQ0E3SCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRWYsR0FBRyxHQUFHUyxHQUFOLEdBQVlFLEdBQVosR0FBa0JWLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQUE5QixHQUFvQ1YsR0FBRyxHQUFHTSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEYixHQUFHLEdBQUdVLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VaLEdBQUcsR0FBR08sR0FBTixHQUFZTSxHQUFwRixHQUEwRmQsR0FBRyxHQUFHUyxHQUFOLEdBQVlLLEdBQXhHLElBQWdIK0gsTUFBMUg7QUFFQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXdILEdBQUcsR0FBR0ssTUFBaEI7QUFDQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFYixHQUFHLEdBQUdHLEdBQU4sR0FBWU0sR0FBWixHQUFrQlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBQTlCLEdBQW9DVCxHQUFHLEdBQUdDLEdBQU4sR0FBWVUsR0FBaEQsR0FBc0RkLEdBQUcsR0FBR08sR0FBTixHQUFZTyxHQUFsRSxHQUF3RVosR0FBRyxHQUFHRSxHQUFOLEdBQVlXLEdBQXBGLEdBQTBGZixHQUFHLEdBQUdNLEdBQU4sR0FBWVMsR0FBeEcsSUFBZ0g4SCxNQUExSDtBQUNBN0gsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQUVmLEdBQUcsR0FBR00sR0FBTixHQUFZSyxHQUFaLEdBQWtCVCxHQUFHLEdBQUdFLEdBQU4sR0FBWU8sR0FBOUIsR0FBb0NULEdBQUcsR0FBR0MsR0FBTixHQUFZUyxHQUFoRCxHQUFzRGIsR0FBRyxHQUFHTyxHQUFOLEdBQVlNLEdBQWxFLEdBQXdFWixHQUFHLEdBQUdHLEdBQU4sR0FBWVcsR0FBcEYsR0FBMEZmLEdBQUcsR0FBR0ssR0FBTixHQUFZVSxHQUF4RyxJQUFnSDhILE1BQTNIO0FBQ0E3SCxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRWQsR0FBRyxHQUFHRyxHQUFOLEdBQVlPLEdBQVosR0FBa0JYLEdBQUcsR0FBR0ssR0FBTixHQUFZTSxHQUE5QixHQUFvQ1YsR0FBRyxHQUFHRSxHQUFOLEdBQVlTLEdBQWhELEdBQXNEYixHQUFHLEdBQUdNLEdBQU4sR0FBWU8sR0FBbEUsR0FBd0VaLEdBQUcsR0FBR0csR0FBTixHQUFZVSxHQUFwRixHQUEwRmQsR0FBRyxHQUFHSyxHQUFOLEdBQVlTLEdBQXhHLElBQWdIK0gsTUFBM0g7QUFFQTdILElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV3lILEdBQUcsR0FBR0ksTUFBakI7QUFDQTdILElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFFZCxHQUFHLEdBQUdLLEdBQU4sR0FBWUMsR0FBWixHQUFrQkwsR0FBRyxHQUFHRyxHQUFOLEdBQVlFLEdBQTlCLEdBQW9DTCxHQUFHLEdBQUdDLEdBQU4sR0FBWU0sR0FBaEQsR0FBc0RWLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQUFsRSxHQUF3RVIsR0FBRyxHQUFHRSxHQUFOLEdBQVlPLEdBQXBGLEdBQTBGWCxHQUFHLEdBQUdNLEdBQU4sR0FBWUssR0FBeEcsSUFBZ0hrSSxNQUEzSDtBQUNBN0gsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQUViLEdBQUcsR0FBR0UsR0FBTixHQUFZRyxHQUFaLEdBQWtCUCxHQUFHLEdBQUdNLEdBQU4sR0FBWUMsR0FBOUIsR0FBb0NMLEdBQUcsR0FBR0MsR0FBTixHQUFZSyxHQUFoRCxHQUFzRFQsR0FBRyxHQUFHTyxHQUFOLEdBQVlFLEdBQWxFLEdBQXdFUixHQUFHLEdBQUdHLEdBQU4sR0FBWU8sR0FBcEYsR0FBMEZYLEdBQUcsR0FBR0ssR0FBTixHQUFZTSxHQUF4RyxJQUFnSGtJLE1BQTNIO0FBQ0E3SCxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRWYsR0FBRyxHQUFHSyxHQUFOLEdBQVlFLEdBQVosR0FBa0JOLEdBQUcsR0FBR0csR0FBTixHQUFZRyxHQUE5QixHQUFvQ04sR0FBRyxHQUFHRSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEVCxHQUFHLEdBQUdNLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUFwRixHQUEwRlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBQXhHLElBQWdIbUksTUFBM0g7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXpqQmdDO0FBMmpCakNDLEVBQUFBLEtBQUssRUFBRSxVQUFXQyxDQUFYLEVBQWU7QUFFckIsUUFBSS9ILEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUNBLFFBQUl3QyxDQUFDLEdBQUdpSCxDQUFDLENBQUNqSCxDQUFWO0FBQUEsUUFBYUMsQ0FBQyxHQUFHZ0gsQ0FBQyxDQUFDaEgsQ0FBbkI7QUFBQSxRQUFzQkMsQ0FBQyxHQUFHK0csQ0FBQyxDQUFDL0csQ0FBNUI7QUFFQWhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV2MsQ0FBWDtBQUFjZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdlLENBQVg7QUFBY2YsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXZ0IsQ0FBWDtBQUM1QmhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV2MsQ0FBWDtBQUFjZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdlLENBQVg7QUFBY2YsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXZ0IsQ0FBWDtBQUM1QmhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV2MsQ0FBWDtBQUFjZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdlLENBQVg7QUFBY2YsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZZ0IsQ0FBWjtBQUM1QmhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV2MsQ0FBWDtBQUFjZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdlLENBQVg7QUFBY2YsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZZ0IsQ0FBWjtBQUU1QixXQUFPLElBQVA7QUFFQSxHQXZrQmdDO0FBeWtCakNnSCxFQUFBQSxpQkFBaUIsRUFBRSxZQUFZO0FBRTlCLFFBQUloSSxFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQSxRQUFJMkosUUFBUSxHQUFHakksRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsQ0FBRixDQUFaLEdBQW9CQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxDQUFGLENBQWhDLEdBQXdDQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxDQUFGLENBQW5FO0FBQ0EsUUFBSWtJLFFBQVEsR0FBR2xJLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVUEsRUFBRSxDQUFFLENBQUYsQ0FBWixHQUFvQkEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsQ0FBRixDQUFoQyxHQUF3Q0EsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsQ0FBRixDQUFuRTtBQUNBLFFBQUltSSxRQUFRLEdBQUduSSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxDQUFGLENBQVosR0FBb0JBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVUEsRUFBRSxDQUFFLENBQUYsQ0FBaEMsR0FBd0NBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV0EsRUFBRSxDQUFFLEVBQUYsQ0FBcEU7QUFFQSxXQUFPMEIsSUFBSSxDQUFDMEcsSUFBTCxDQUFXMUcsSUFBSSxDQUFDMkcsR0FBTCxDQUFVSixRQUFWLEVBQW9CQyxRQUFwQixFQUE4QkMsUUFBOUIsQ0FBWCxDQUFQO0FBRUEsR0FubEJnQztBQXFsQmpDRyxFQUFBQSxlQUFlLEVBQUUsVUFBV3hILENBQVgsRUFBY0MsQ0FBZCxFQUFpQkMsQ0FBakIsRUFBcUI7QUFFckMsU0FBS2pDLEdBQUwsQ0FFQyxDQUZELEVBRUksQ0FGSixFQUVPLENBRlAsRUFFVStCLENBRlYsRUFHQyxDQUhELEVBR0ksQ0FISixFQUdPLENBSFAsRUFHVUMsQ0FIVixFQUlDLENBSkQsRUFJSSxDQUpKLEVBSU8sQ0FKUCxFQUlVQyxDQUpWLEVBS0MsQ0FMRCxFQUtJLENBTEosRUFLTyxDQUxQLEVBS1UsQ0FMVjtBQVNBLFdBQU8sSUFBUDtBQUVBLEdBbG1CZ0M7QUFvbUJqQ3VILEVBQUFBLGFBQWEsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRWpDLFFBQUkxRyxDQUFDLEdBQUdKLElBQUksQ0FBQ0MsR0FBTCxDQUFVNkcsS0FBVixDQUFSO0FBQUEsUUFBMkJwQyxDQUFDLEdBQUcxRSxJQUFJLENBQUNHLEdBQUwsQ0FBVTJHLEtBQVYsQ0FBL0I7QUFFQSxTQUFLekosR0FBTCxDQUVDLENBRkQsRUFFSSxDQUZKLEVBRU8sQ0FGUCxFQUVVLENBRlYsRUFHQyxDQUhELEVBR0krQyxDQUhKLEVBR08sQ0FBRXNFLENBSFQsRUFHWSxDQUhaLEVBSUMsQ0FKRCxFQUlJQSxDQUpKLEVBSU90RSxDQUpQLEVBSVUsQ0FKVixFQUtDLENBTEQsRUFLSSxDQUxKLEVBS08sQ0FMUCxFQUtVLENBTFY7QUFTQSxXQUFPLElBQVA7QUFFQSxHQW5uQmdDO0FBcW5CakMyRyxFQUFBQSxhQUFhLEVBQUUsVUFBV0QsS0FBWCxFQUFtQjtBQUVqQyxRQUFJMUcsQ0FBQyxHQUFHSixJQUFJLENBQUNDLEdBQUwsQ0FBVTZHLEtBQVYsQ0FBUjtBQUFBLFFBQTJCcEMsQ0FBQyxHQUFHMUUsSUFBSSxDQUFDRyxHQUFMLENBQVUyRyxLQUFWLENBQS9CO0FBRUEsU0FBS3pKLEdBQUwsQ0FFRStDLENBRkYsRUFFSyxDQUZMLEVBRVFzRSxDQUZSLEVBRVcsQ0FGWCxFQUdFLENBSEYsRUFHSyxDQUhMLEVBR1EsQ0FIUixFQUdXLENBSFgsRUFJQyxDQUFFQSxDQUpILEVBSU0sQ0FKTixFQUlTdEUsQ0FKVCxFQUlZLENBSlosRUFLRSxDQUxGLEVBS0ssQ0FMTCxFQUtRLENBTFIsRUFLVyxDQUxYO0FBU0EsV0FBTyxJQUFQO0FBRUEsR0Fwb0JnQztBQXNvQmpDNEcsRUFBQUEsYUFBYSxFQUFFLFVBQVdGLEtBQVgsRUFBbUI7QUFFakMsUUFBSTFHLENBQUMsR0FBR0osSUFBSSxDQUFDQyxHQUFMLENBQVU2RyxLQUFWLENBQVI7QUFBQSxRQUEyQnBDLENBQUMsR0FBRzFFLElBQUksQ0FBQ0csR0FBTCxDQUFVMkcsS0FBVixDQUEvQjtBQUVBLFNBQUt6SixHQUFMLENBRUMrQyxDQUZELEVBRUksQ0FBRXNFLENBRk4sRUFFUyxDQUZULEVBRVksQ0FGWixFQUdDQSxDQUhELEVBR0l0RSxDQUhKLEVBR08sQ0FIUCxFQUdVLENBSFYsRUFJQyxDQUpELEVBSUksQ0FKSixFQUlPLENBSlAsRUFJVSxDQUpWLEVBS0MsQ0FMRCxFQUtJLENBTEosRUFLTyxDQUxQLEVBS1UsQ0FMVjtBQVNBLFdBQU8sSUFBUDtBQUVBLEdBcnBCZ0M7QUF1cEJqQzZHLEVBQUFBLGdCQUFnQixFQUFFLFVBQVdDLElBQVgsRUFBaUJDLEtBQWpCLEVBQXlCO0FBRTFDO0FBRUEsUUFBSS9HLENBQUMsR0FBR0osSUFBSSxDQUFDQyxHQUFMLENBQVVrSCxLQUFWLENBQVI7QUFDQSxRQUFJekMsQ0FBQyxHQUFHMUUsSUFBSSxDQUFDRyxHQUFMLENBQVVnSCxLQUFWLENBQVI7QUFDQSxRQUFJQyxDQUFDLEdBQUcsSUFBSWhILENBQVo7QUFDQSxRQUFJaEIsQ0FBQyxHQUFHOEgsSUFBSSxDQUFDOUgsQ0FBYjtBQUFBLFFBQWdCQyxDQUFDLEdBQUc2SCxJQUFJLENBQUM3SCxDQUF6QjtBQUFBLFFBQTRCQyxDQUFDLEdBQUc0SCxJQUFJLENBQUM1SCxDQUFyQztBQUNBLFFBQUkrSCxFQUFFLEdBQUdELENBQUMsR0FBR2hJLENBQWI7QUFBQSxRQUFnQmtJLEVBQUUsR0FBR0YsQ0FBQyxHQUFHL0gsQ0FBekI7QUFFQSxTQUFLaEMsR0FBTCxDQUVDZ0ssRUFBRSxHQUFHakksQ0FBTCxHQUFTZ0IsQ0FGVixFQUVhaUgsRUFBRSxHQUFHaEksQ0FBTCxHQUFTcUYsQ0FBQyxHQUFHcEYsQ0FGMUIsRUFFNkIrSCxFQUFFLEdBQUcvSCxDQUFMLEdBQVNvRixDQUFDLEdBQUdyRixDQUYxQyxFQUU2QyxDQUY3QyxFQUdDZ0ksRUFBRSxHQUFHaEksQ0FBTCxHQUFTcUYsQ0FBQyxHQUFHcEYsQ0FIZCxFQUdpQmdJLEVBQUUsR0FBR2pJLENBQUwsR0FBU2UsQ0FIMUIsRUFHNkJrSCxFQUFFLEdBQUdoSSxDQUFMLEdBQVNvRixDQUFDLEdBQUd0RixDQUgxQyxFQUc2QyxDQUg3QyxFQUlDaUksRUFBRSxHQUFHL0gsQ0FBTCxHQUFTb0YsQ0FBQyxHQUFHckYsQ0FKZCxFQUlpQmlJLEVBQUUsR0FBR2hJLENBQUwsR0FBU29GLENBQUMsR0FBR3RGLENBSjlCLEVBSWlDZ0ksQ0FBQyxHQUFHOUgsQ0FBSixHQUFRQSxDQUFSLEdBQVljLENBSjdDLEVBSWdELENBSmhELEVBS0MsQ0FMRCxFQUtJLENBTEosRUFLTyxDQUxQLEVBS1UsQ0FMVjtBQVNDLFdBQU8sSUFBUDtBQUVELEdBNXFCZ0M7QUE4cUJqQ21ILEVBQUFBLFNBQVMsRUFBRSxVQUFXbkksQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQixFQUFxQjtBQUUvQixTQUFLakMsR0FBTCxDQUVDK0IsQ0FGRCxFQUVJLENBRkosRUFFTyxDQUZQLEVBRVUsQ0FGVixFQUdDLENBSEQsRUFHSUMsQ0FISixFQUdPLENBSFAsRUFHVSxDQUhWLEVBSUMsQ0FKRCxFQUlJLENBSkosRUFJT0MsQ0FKUCxFQUlVLENBSlYsRUFLQyxDQUxELEVBS0ksQ0FMSixFQUtPLENBTFAsRUFLVSxDQUxWO0FBU0EsV0FBTyxJQUFQO0FBRUEsR0EzckJnQztBQTZyQmpDa0ksRUFBQUEsU0FBUyxFQUFFLFVBQVdwSSxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCLEVBQXFCO0FBRS9CLFNBQUtqQyxHQUFMLENBRUMsQ0FGRCxFQUVJZ0MsQ0FGSixFQUVPQyxDQUZQLEVBRVUsQ0FGVixFQUdDRixDQUhELEVBR0ksQ0FISixFQUdPRSxDQUhQLEVBR1UsQ0FIVixFQUlDRixDQUpELEVBSUlDLENBSkosRUFJTyxDQUpQLEVBSVUsQ0FKVixFQUtDLENBTEQsRUFLSSxDQUxKLEVBS08sQ0FMUCxFQUtVLENBTFY7QUFTQSxXQUFPLElBQVA7QUFFQSxHQTFzQmdDO0FBNHNCakNvQyxFQUFBQSxPQUFPLEVBQUUsVUFBV2dHLFFBQVgsRUFBcUJDLFVBQXJCLEVBQWlDdEIsS0FBakMsRUFBeUM7QUFFakQsUUFBSTlILEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBLFFBQUl3QyxDQUFDLEdBQUdzSSxVQUFVLENBQUNDLEVBQW5CO0FBQUEsUUFBdUJ0SSxDQUFDLEdBQUdxSSxVQUFVLENBQUNFLEVBQXRDO0FBQUEsUUFBMEN0SSxDQUFDLEdBQUdvSSxVQUFVLENBQUNHLEVBQXpEO0FBQUEsUUFBNkRDLENBQUMsR0FBR0osVUFBVSxDQUFDSyxFQUE1RTtBQUNBLFFBQUlDLEVBQUUsR0FBRzVJLENBQUMsR0FBR0EsQ0FBYjtBQUFBLFFBQWdCNkksRUFBRSxHQUFHNUksQ0FBQyxHQUFHQSxDQUF6QjtBQUFBLFFBQTRCNkksRUFBRSxHQUFHNUksQ0FBQyxHQUFHQSxDQUFyQztBQUNBLFFBQUk2SSxFQUFFLEdBQUcvSSxDQUFDLEdBQUc0SSxFQUFiO0FBQUEsUUFBaUJJLEVBQUUsR0FBR2hKLENBQUMsR0FBRzZJLEVBQTFCO0FBQUEsUUFBOEJJLEVBQUUsR0FBR2pKLENBQUMsR0FBRzhJLEVBQXZDO0FBQ0EsUUFBSUksRUFBRSxHQUFHakosQ0FBQyxHQUFHNEksRUFBYjtBQUFBLFFBQWlCTSxFQUFFLEdBQUdsSixDQUFDLEdBQUc2SSxFQUExQjtBQUFBLFFBQThCTSxFQUFFLEdBQUdsSixDQUFDLEdBQUc0SSxFQUF2QztBQUNBLFFBQUlPLEVBQUUsR0FBR1gsQ0FBQyxHQUFHRSxFQUFiO0FBQUEsUUFBaUJVLEVBQUUsR0FBR1osQ0FBQyxHQUFHRyxFQUExQjtBQUFBLFFBQThCVSxFQUFFLEdBQUdiLENBQUMsR0FBR0ksRUFBdkM7QUFFQSxRQUFJVSxFQUFFLEdBQUd4QyxLQUFLLENBQUNoSCxDQUFmO0FBQUEsUUFBa0J5SixFQUFFLEdBQUd6QyxLQUFLLENBQUMvRyxDQUE3QjtBQUFBLFFBQWdDeUosRUFBRSxHQUFHMUMsS0FBSyxDQUFDOUcsQ0FBM0M7QUFFQWhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFLEtBQU1nSyxFQUFFLEdBQUdFLEVBQVgsQ0FBRixJQUFzQkksRUFBaEM7QUFDQXRLLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFOEosRUFBRSxHQUFHTyxFQUFQLElBQWNDLEVBQXhCO0FBQ0F0SyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRStKLEVBQUUsR0FBR0ssRUFBUCxJQUFjRSxFQUF4QjtBQUNBdEssSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFFQUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUU4SixFQUFFLEdBQUdPLEVBQVAsSUFBY0UsRUFBeEI7QUFDQXZLLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFLEtBQU02SixFQUFFLEdBQUdLLEVBQVgsQ0FBRixJQUFzQkssRUFBaEM7QUFDQXZLLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFaUssRUFBRSxHQUFHRSxFQUFQLElBQWNJLEVBQXhCO0FBQ0F2SyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUVBQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRStKLEVBQUUsR0FBR0ssRUFBUCxJQUFjSSxFQUF4QjtBQUNBeEssSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUVpSyxFQUFFLEdBQUdFLEVBQVAsSUFBY0ssRUFBeEI7QUFDQXhLLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFFLEtBQU02SixFQUFFLEdBQUdHLEVBQVgsQ0FBRixJQUFzQlEsRUFBakM7QUFDQXhLLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBRUFBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV21KLFFBQVEsQ0FBQ3JJLENBQXBCO0FBQ0FkLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV21KLFFBQVEsQ0FBQ3BJLENBQXBCO0FBQ0FmLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV21KLFFBQVEsQ0FBQ25JLENBQXBCO0FBQ0FoQixJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBWDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBOXVCZ0M7QUFndkJqQ3lLLEVBQUFBLFNBQVMsRUFBRSxZQUFZO0FBRXRCLFFBQUlDLE1BQU0sR0FBRyxJQUFJdE0sT0FBSixFQUFiO0FBQ0EsUUFBSXVNLE1BQU0sR0FBRyxJQUFJdE0sT0FBSixFQUFiO0FBRUEsV0FBTyxTQUFTb00sU0FBVCxDQUFvQnRCLFFBQXBCLEVBQThCQyxVQUE5QixFQUEwQ3RCLEtBQTFDLEVBQWtEO0FBRXhELFVBQUk5SCxFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQSxVQUFJZ00sRUFBRSxHQUFHSSxNQUFNLENBQUMzTCxHQUFQLENBQVlpQixFQUFFLENBQUUsQ0FBRixDQUFkLEVBQXFCQSxFQUFFLENBQUUsQ0FBRixDQUF2QixFQUE4QkEsRUFBRSxDQUFFLENBQUYsQ0FBaEMsRUFBd0N4QixNQUF4QyxFQUFUO0FBQ0EsVUFBSStMLEVBQUUsR0FBR0csTUFBTSxDQUFDM0wsR0FBUCxDQUFZaUIsRUFBRSxDQUFFLENBQUYsQ0FBZCxFQUFxQkEsRUFBRSxDQUFFLENBQUYsQ0FBdkIsRUFBOEJBLEVBQUUsQ0FBRSxDQUFGLENBQWhDLEVBQXdDeEIsTUFBeEMsRUFBVDtBQUNBLFVBQUlnTSxFQUFFLEdBQUdFLE1BQU0sQ0FBQzNMLEdBQVAsQ0FBWWlCLEVBQUUsQ0FBRSxDQUFGLENBQWQsRUFBcUJBLEVBQUUsQ0FBRSxDQUFGLENBQXZCLEVBQThCQSxFQUFFLENBQUUsRUFBRixDQUFoQyxFQUF5Q3hCLE1BQXpDLEVBQVQsQ0FOd0QsQ0FReEQ7O0FBQ0EsVUFBSWtKLEdBQUcsR0FBRyxLQUFLWCxXQUFMLEVBQVY7QUFDQSxVQUFLVyxHQUFHLEdBQUcsQ0FBWCxFQUFlNEMsRUFBRSxHQUFHLENBQUVBLEVBQVA7QUFFZm5CLE1BQUFBLFFBQVEsQ0FBQ3JJLENBQVQsR0FBYWQsRUFBRSxDQUFFLEVBQUYsQ0FBZjtBQUNBbUosTUFBQUEsUUFBUSxDQUFDcEksQ0FBVCxHQUFhZixFQUFFLENBQUUsRUFBRixDQUFmO0FBQ0FtSixNQUFBQSxRQUFRLENBQUNuSSxDQUFULEdBQWFoQixFQUFFLENBQUUsRUFBRixDQUFmLENBZHdELENBZ0J4RDs7QUFDQTJLLE1BQUFBLE1BQU0sQ0FBQ3ZLLElBQVAsQ0FBYSxJQUFiO0FBRUEsVUFBSXdLLEtBQUssR0FBRyxJQUFJTixFQUFoQjtBQUNBLFVBQUlPLEtBQUssR0FBRyxJQUFJTixFQUFoQjtBQUNBLFVBQUlPLEtBQUssR0FBRyxJQUFJTixFQUFoQjtBQUVBRyxNQUFBQSxNQUFNLENBQUNyTSxRQUFQLENBQWlCLENBQWpCLEtBQXdCc00sS0FBeEI7QUFDQUQsTUFBQUEsTUFBTSxDQUFDck0sUUFBUCxDQUFpQixDQUFqQixLQUF3QnNNLEtBQXhCO0FBQ0FELE1BQUFBLE1BQU0sQ0FBQ3JNLFFBQVAsQ0FBaUIsQ0FBakIsS0FBd0JzTSxLQUF4QjtBQUVBRCxNQUFBQSxNQUFNLENBQUNyTSxRQUFQLENBQWlCLENBQWpCLEtBQXdCdU0sS0FBeEI7QUFDQUYsTUFBQUEsTUFBTSxDQUFDck0sUUFBUCxDQUFpQixDQUFqQixLQUF3QnVNLEtBQXhCO0FBQ0FGLE1BQUFBLE1BQU0sQ0FBQ3JNLFFBQVAsQ0FBaUIsQ0FBakIsS0FBd0J1TSxLQUF4QjtBQUVBRixNQUFBQSxNQUFNLENBQUNyTSxRQUFQLENBQWlCLENBQWpCLEtBQXdCd00sS0FBeEI7QUFDQUgsTUFBQUEsTUFBTSxDQUFDck0sUUFBUCxDQUFpQixDQUFqQixLQUF3QndNLEtBQXhCO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ3JNLFFBQVAsQ0FBaUIsRUFBakIsS0FBeUJ3TSxLQUF6QjtBQUVBMUIsTUFBQUEsVUFBVSxDQUFDMkIscUJBQVgsQ0FBa0NKLE1BQWxDO0FBRUE3QyxNQUFBQSxLQUFLLENBQUNoSCxDQUFOLEdBQVV3SixFQUFWO0FBQ0F4QyxNQUFBQSxLQUFLLENBQUMvRyxDQUFOLEdBQVV3SixFQUFWO0FBQ0F6QyxNQUFBQSxLQUFLLENBQUM5RyxDQUFOLEdBQVV3SixFQUFWO0FBRUEsYUFBTyxJQUFQO0FBRUEsS0EzQ0Q7QUE2Q0EsR0FsRFUsRUFodkJzQjtBQW95QmpDUSxFQUFBQSxlQUFlLEVBQUUsVUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBd0JDLEdBQXhCLEVBQTZCQyxNQUE3QixFQUFxQ0MsSUFBckMsRUFBMkNDLEdBQTNDLEVBQWlEO0FBRWpFLFFBQUtBLEdBQUcsS0FBS3ZILFNBQWIsRUFBeUI7QUFFeEJ0RixNQUFBQSxPQUFPLENBQUN1RixJQUFSLENBQWMsc0dBQWQ7QUFFQTs7QUFFRCxRQUFJaEUsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQ0EsUUFBSXdDLENBQUMsR0FBRyxJQUFJdUssSUFBSixJQUFhSCxLQUFLLEdBQUdELElBQXJCLENBQVI7QUFDQSxRQUFJbEssQ0FBQyxHQUFHLElBQUlzSyxJQUFKLElBQWFGLEdBQUcsR0FBR0MsTUFBbkIsQ0FBUjtBQUVBLFFBQUkzSixDQUFDLEdBQUcsQ0FBRXlKLEtBQUssR0FBR0QsSUFBVixLQUFxQkMsS0FBSyxHQUFHRCxJQUE3QixDQUFSO0FBQ0EsUUFBSXJKLENBQUMsR0FBRyxDQUFFdUosR0FBRyxHQUFHQyxNQUFSLEtBQXFCRCxHQUFHLEdBQUdDLE1BQTNCLENBQVI7QUFDQSxRQUFJdEosQ0FBQyxHQUFHLEVBQUl3SixHQUFHLEdBQUdELElBQVYsS0FBcUJDLEdBQUcsR0FBR0QsSUFBM0IsQ0FBUjtBQUNBLFFBQUl0SixDQUFDLEdBQUcsQ0FBRSxDQUFGLEdBQU11SixHQUFOLEdBQVlELElBQVosSUFBcUJDLEdBQUcsR0FBR0QsSUFBM0IsQ0FBUjtBQUVBckwsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVYyxDQUFWO0FBQWFkLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXlCLENBQVY7QUFBYXpCLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBQ3ZDQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVlLENBQVY7QUFBYWYsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVNEIsQ0FBVjtBQUFhNUIsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFDdkNBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVzhCLENBQVg7QUFBYzlCLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVytCLENBQVg7QUFDeEMvQixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRSxDQUFiO0FBQWdCQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBWDtBQUUxQyxXQUFPLElBQVA7QUFFQSxHQTV6QmdDO0FBOHpCakN1TCxFQUFBQSxnQkFBZ0IsRUFBRSxVQUFXTixJQUFYLEVBQWlCQyxLQUFqQixFQUF3QkMsR0FBeEIsRUFBNkJDLE1BQTdCLEVBQXFDQyxJQUFyQyxFQUEyQ0MsR0FBM0MsRUFBaUQ7QUFFbEUsUUFBSXRMLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUNBLFFBQUlrTCxDQUFDLEdBQUcsT0FBUTBCLEtBQUssR0FBR0QsSUFBaEIsQ0FBUjtBQUNBLFFBQUlPLENBQUMsR0FBRyxPQUFRTCxHQUFHLEdBQUdDLE1BQWQsQ0FBUjtBQUNBLFFBQUlLLENBQUMsR0FBRyxPQUFRSCxHQUFHLEdBQUdELElBQWQsQ0FBUjtBQUVBLFFBQUl2SyxDQUFDLEdBQUcsQ0FBRW9LLEtBQUssR0FBR0QsSUFBVixJQUFtQnpCLENBQTNCO0FBQ0EsUUFBSXpJLENBQUMsR0FBRyxDQUFFb0ssR0FBRyxHQUFHQyxNQUFSLElBQW1CSSxDQUEzQjtBQUNBLFFBQUl4SyxDQUFDLEdBQUcsQ0FBRXNLLEdBQUcsR0FBR0QsSUFBUixJQUFpQkksQ0FBekI7QUFFQXpMLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxJQUFJd0osQ0FBZDtBQUFpQnhKLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFFYyxDQUFiO0FBQzNDZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsSUFBSXdMLENBQWQ7QUFBaUJ4TCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRWUsQ0FBYjtBQUMzQ2YsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFBYUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFBYUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQUUsQ0FBRixHQUFNeUwsQ0FBakI7QUFBb0J6TCxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRWdCLENBQWI7QUFDOUNoQixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBWDtBQUFjQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBWDtBQUV4QyxXQUFPLElBQVA7QUFFQSxHQWgxQmdDO0FBazFCakMwTCxFQUFBQSxNQUFNLEVBQUUsVUFBV2YsTUFBWCxFQUFvQjtBQUUzQixRQUFJM0ssRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQ0EsUUFBSWdDLEVBQUUsR0FBR3FLLE1BQU0sQ0FBQ3JNLFFBQWhCOztBQUVBLFNBQU0sSUFBSWlJLENBQUMsR0FBRyxDQUFkLEVBQWlCQSxDQUFDLEdBQUcsRUFBckIsRUFBeUJBLENBQUMsRUFBMUIsRUFBZ0M7QUFFL0IsVUFBS3ZHLEVBQUUsQ0FBRXVHLENBQUYsQ0FBRixLQUFZakcsRUFBRSxDQUFFaUcsQ0FBRixDQUFuQixFQUEyQixPQUFPLEtBQVA7QUFFM0I7O0FBRUQsV0FBTyxJQUFQO0FBRUEsR0EvMUJnQztBQWkyQmpDcEcsRUFBQUEsU0FBUyxFQUFFLFVBQVd3TCxLQUFYLEVBQWtCQyxNQUFsQixFQUEyQjtBQUVyQyxRQUFLQSxNQUFNLEtBQUs3SCxTQUFoQixFQUE0QjZILE1BQU0sR0FBRyxDQUFUOztBQUU1QixTQUFNLElBQUlyRixDQUFDLEdBQUcsQ0FBZCxFQUFpQkEsQ0FBQyxHQUFHLEVBQXJCLEVBQXlCQSxDQUFDLEVBQTFCLEVBQWdDO0FBRS9CLFdBQUtqSSxRQUFMLENBQWVpSSxDQUFmLElBQXFCb0YsS0FBSyxDQUFFcEYsQ0FBQyxHQUFHcUYsTUFBTixDQUExQjtBQUVBOztBQUVELFdBQU8sSUFBUDtBQUVBLEdBNzJCZ0M7QUErMkJqQ0MsRUFBQUEsT0FBTyxFQUFFLFVBQVdGLEtBQVgsRUFBa0JDLE1BQWxCLEVBQTJCO0FBRW5DLFFBQUtELEtBQUssS0FBSzVILFNBQWYsRUFBMkI0SCxLQUFLLEdBQUcsRUFBUjtBQUMzQixRQUFLQyxNQUFNLEtBQUs3SCxTQUFoQixFQUE0QjZILE1BQU0sR0FBRyxDQUFUO0FBRTVCLFFBQUk1TCxFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQXFOLElBQUFBLEtBQUssQ0FBRUMsTUFBRixDQUFMLEdBQWtCNUwsRUFBRSxDQUFFLENBQUYsQ0FBcEI7QUFDQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBTCxHQUFzQjVMLEVBQUUsQ0FBRSxDQUFGLENBQXhCO0FBQ0EyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0I1TCxFQUFFLENBQUUsQ0FBRixDQUF4QjtBQUNBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCNUwsRUFBRSxDQUFFLENBQUYsQ0FBeEI7QUFFQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBTCxHQUFzQjVMLEVBQUUsQ0FBRSxDQUFGLENBQXhCO0FBQ0EyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0I1TCxFQUFFLENBQUUsQ0FBRixDQUF4QjtBQUNBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCNUwsRUFBRSxDQUFFLENBQUYsQ0FBeEI7QUFDQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBTCxHQUFzQjVMLEVBQUUsQ0FBRSxDQUFGLENBQXhCO0FBRUEyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0I1TCxFQUFFLENBQUUsQ0FBRixDQUF4QjtBQUNBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCNUwsRUFBRSxDQUFFLENBQUYsQ0FBeEI7QUFDQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLEVBQVgsQ0FBTCxHQUF1QjVMLEVBQUUsQ0FBRSxFQUFGLENBQXpCO0FBQ0EyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxFQUFYLENBQUwsR0FBdUI1TCxFQUFFLENBQUUsRUFBRixDQUF6QjtBQUVBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsRUFBWCxDQUFMLEdBQXVCNUwsRUFBRSxDQUFFLEVBQUYsQ0FBekI7QUFDQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLEVBQVgsQ0FBTCxHQUF1QjVMLEVBQUUsQ0FBRSxFQUFGLENBQXpCO0FBQ0EyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxFQUFYLENBQUwsR0FBdUI1TCxFQUFFLENBQUUsRUFBRixDQUF6QjtBQUNBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsRUFBWCxDQUFMLEdBQXVCNUwsRUFBRSxDQUFFLEVBQUYsQ0FBekI7QUFFQSxXQUFPMkwsS0FBUDtBQUVBO0FBNTRCZ0MsQ0FBbEM7QUFpNUJBLFNBQVN0TixPQUFUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yMyB9IGZyb20gJy4vVmVjdG9yMy5qcyc7XG5cbi8qKlxuICogQGF1dGhvciBtcmRvb2IgLyBodHRwOi8vbXJkb29iLmNvbS9cbiAqIEBhdXRob3Igc3VwZXJlZ2diZXJ0IC8gaHR0cDovL3d3dy5wYXVsYnJ1bnQuY28udWsvXG4gKiBAYXV0aG9yIHBoaWxvZ2IgLyBodHRwOi8vYmxvZy50aGVqaXQub3JnL1xuICogQGF1dGhvciBqb3JkaV9yb3MgLyBodHRwOi8vcGxhdHRzb2Z0LmNvbVxuICogQGF1dGhvciBEMXBsbzFkIC8gaHR0cDovL2dpdGh1Yi5jb20vRDFwbG8xZFxuICogQGF1dGhvciBhbHRlcmVkcSAvIGh0dHA6Ly9hbHRlcmVkcXVhbGlhLmNvbS9cbiAqIEBhdXRob3IgbWlrYWVsIGVtdGluZ2VyIC8gaHR0cDovL2dvbW8uc2UvXG4gKiBAYXV0aG9yIHRpbWtuaXAgLyBodHRwOi8vd3d3LmZsb29ycGxhbm5lci5jb20vXG4gKiBAYXV0aG9yIGJob3VzdG9uIC8gaHR0cDovL2NsYXJhLmlvXG4gKiBAYXV0aG9yIFdlc3RMYW5nbGV5IC8gaHR0cDovL2dpdGh1Yi5jb20vV2VzdExhbmdsZXlcbiAqL1xuXG5mdW5jdGlvbiBNYXRyaXg0KCkge1xuXG5cdHRoaXMuZWxlbWVudHMgPSBbXG5cblx0XHQxLCAwLCAwLCAwLFxuXHRcdDAsIDEsIDAsIDAsXG5cdFx0MCwgMCwgMSwgMCxcblx0XHQwLCAwLCAwLCAxXG5cblx0XTtcblxuXHRpZiAoIGFyZ3VtZW50cy5sZW5ndGggPiAwICkge1xuXG5cdFx0Y29uc29sZS5lcnJvciggJ1RIUkVFLk1hdHJpeDQ6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuJyApO1xuXG5cdH1cblxufVxuXG5PYmplY3QuYXNzaWduKCBNYXRyaXg0LnByb3RvdHlwZSwge1xuXG5cdGlzTWF0cml4NDogdHJ1ZSxcblxuXHRzZXQ6IGZ1bmN0aW9uICggbjExLCBuMTIsIG4xMywgbjE0LCBuMjEsIG4yMiwgbjIzLCBuMjQsIG4zMSwgbjMyLCBuMzMsIG4zNCwgbjQxLCBuNDIsIG40MywgbjQ0ICkge1xuXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cztcblxuXHRcdHRlWyAwIF0gPSBuMTE7IHRlWyA0IF0gPSBuMTI7IHRlWyA4IF0gPSBuMTM7IHRlWyAxMiBdID0gbjE0O1xuXHRcdHRlWyAxIF0gPSBuMjE7IHRlWyA1IF0gPSBuMjI7IHRlWyA5IF0gPSBuMjM7IHRlWyAxMyBdID0gbjI0O1xuXHRcdHRlWyAyIF0gPSBuMzE7IHRlWyA2IF0gPSBuMzI7IHRlWyAxMCBdID0gbjMzOyB0ZVsgMTQgXSA9IG4zNDtcblx0XHR0ZVsgMyBdID0gbjQxOyB0ZVsgNyBdID0gbjQyOyB0ZVsgMTEgXSA9IG40MzsgdGVbIDE1IF0gPSBuNDQ7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGlkZW50aXR5OiBmdW5jdGlvbiAoKSB7XG5cblx0XHR0aGlzLnNldChcblxuXHRcdFx0MSwgMCwgMCwgMCxcblx0XHRcdDAsIDEsIDAsIDAsXG5cdFx0XHQwLCAwLCAxLCAwLFxuXHRcdFx0MCwgMCwgMCwgMVxuXG5cdFx0KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiBuZXcgTWF0cml4NCgpLmZyb21BcnJheSggdGhpcy5lbGVtZW50cyApO1xuXG5cdH0sXG5cblx0Y29weTogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cztcblx0XHR2YXIgbWUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dGVbIDAgXSA9IG1lWyAwIF07IHRlWyAxIF0gPSBtZVsgMSBdOyB0ZVsgMiBdID0gbWVbIDIgXTsgdGVbIDMgXSA9IG1lWyAzIF07XG5cdFx0dGVbIDQgXSA9IG1lWyA0IF07IHRlWyA1IF0gPSBtZVsgNSBdOyB0ZVsgNiBdID0gbWVbIDYgXTsgdGVbIDcgXSA9IG1lWyA3IF07XG5cdFx0dGVbIDggXSA9IG1lWyA4IF07IHRlWyA5IF0gPSBtZVsgOSBdOyB0ZVsgMTAgXSA9IG1lWyAxMCBdOyB0ZVsgMTEgXSA9IG1lWyAxMSBdO1xuXHRcdHRlWyAxMiBdID0gbWVbIDEyIF07IHRlWyAxMyBdID0gbWVbIDEzIF07IHRlWyAxNCBdID0gbWVbIDE0IF07IHRlWyAxNSBdID0gbWVbIDE1IF07XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGNvcHlQb3NpdGlvbjogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cywgbWUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dGVbIDEyIF0gPSBtZVsgMTIgXTtcblx0XHR0ZVsgMTMgXSA9IG1lWyAxMyBdO1xuXHRcdHRlWyAxNCBdID0gbWVbIDE0IF07XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGV4dHJhY3RCYXNpczogZnVuY3Rpb24gKCB4QXhpcywgeUF4aXMsIHpBeGlzICkge1xuXG5cdFx0eEF4aXMuc2V0RnJvbU1hdHJpeENvbHVtbiggdGhpcywgMCApO1xuXHRcdHlBeGlzLnNldEZyb21NYXRyaXhDb2x1bW4oIHRoaXMsIDEgKTtcblx0XHR6QXhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKCB0aGlzLCAyICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG1ha2VCYXNpczogZnVuY3Rpb24gKCB4QXhpcywgeUF4aXMsIHpBeGlzICkge1xuXG5cdFx0dGhpcy5zZXQoXG5cdFx0XHR4QXhpcy54LCB5QXhpcy54LCB6QXhpcy54LCAwLFxuXHRcdFx0eEF4aXMueSwgeUF4aXMueSwgekF4aXMueSwgMCxcblx0XHRcdHhBeGlzLnosIHlBeGlzLnosIHpBeGlzLnosIDAsXG5cdFx0XHQwLCAwLCAwLCAxXG5cdFx0KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZXh0cmFjdFJvdGF0aW9uOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdjEgPSBuZXcgVmVjdG9yMygpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIGV4dHJhY3RSb3RhdGlvbiggbSApIHtcblxuXHRcdFx0Ly8gdGhpcyBtZXRob2QgZG9lcyBub3Qgc3VwcG9ydCByZWZsZWN0aW9uIG1hdHJpY2VzXG5cblx0XHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cdFx0XHR2YXIgbWUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0XHR2YXIgc2NhbGVYID0gMSAvIHYxLnNldEZyb21NYXRyaXhDb2x1bW4oIG0sIDAgKS5sZW5ndGgoKTtcblx0XHRcdHZhciBzY2FsZVkgPSAxIC8gdjEuc2V0RnJvbU1hdHJpeENvbHVtbiggbSwgMSApLmxlbmd0aCgpO1xuXHRcdFx0dmFyIHNjYWxlWiA9IDEgLyB2MS5zZXRGcm9tTWF0cml4Q29sdW1uKCBtLCAyICkubGVuZ3RoKCk7XG5cblx0XHRcdHRlWyAwIF0gPSBtZVsgMCBdICogc2NhbGVYO1xuXHRcdFx0dGVbIDEgXSA9IG1lWyAxIF0gKiBzY2FsZVg7XG5cdFx0XHR0ZVsgMiBdID0gbWVbIDIgXSAqIHNjYWxlWDtcblx0XHRcdHRlWyAzIF0gPSAwO1xuXG5cdFx0XHR0ZVsgNCBdID0gbWVbIDQgXSAqIHNjYWxlWTtcblx0XHRcdHRlWyA1IF0gPSBtZVsgNSBdICogc2NhbGVZO1xuXHRcdFx0dGVbIDYgXSA9IG1lWyA2IF0gKiBzY2FsZVk7XG5cdFx0XHR0ZVsgNyBdID0gMDtcblxuXHRcdFx0dGVbIDggXSA9IG1lWyA4IF0gKiBzY2FsZVo7XG5cdFx0XHR0ZVsgOSBdID0gbWVbIDkgXSAqIHNjYWxlWjtcblx0XHRcdHRlWyAxMCBdID0gbWVbIDEwIF0gKiBzY2FsZVo7XG5cdFx0XHR0ZVsgMTEgXSA9IDA7XG5cblx0XHRcdHRlWyAxMiBdID0gMDtcblx0XHRcdHRlWyAxMyBdID0gMDtcblx0XHRcdHRlWyAxNCBdID0gMDtcblx0XHRcdHRlWyAxNSBdID0gMTtcblxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHR9O1xuXG5cdH0oKSxcblxuXHRtYWtlUm90YXRpb25Gcm9tRXVsZXI6IGZ1bmN0aW9uICggZXVsZXIgKSB7XG5cblx0XHRpZiAoICEgKCBldWxlciAmJiBldWxlci5pc0V1bGVyICkgKSB7XG5cblx0XHRcdGNvbnNvbGUuZXJyb3IoICdUSFJFRS5NYXRyaXg0OiAubWFrZVJvdGF0aW9uRnJvbUV1bGVyKCkgbm93IGV4cGVjdHMgYSBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLicgKTtcblxuXHRcdH1cblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cblx0XHR2YXIgeCA9IGV1bGVyLngsIHkgPSBldWxlci55LCB6ID0gZXVsZXIuejtcblx0XHR2YXIgYSA9IE1hdGguY29zKCB4ICksIGIgPSBNYXRoLnNpbiggeCApO1xuXHRcdHZhciBjID0gTWF0aC5jb3MoIHkgKSwgZCA9IE1hdGguc2luKCB5ICk7XG5cdFx0dmFyIGUgPSBNYXRoLmNvcyggeiApLCBmID0gTWF0aC5zaW4oIHogKTtcblxuXHRcdGlmICggZXVsZXIub3JkZXIgPT09ICdYWVonICkge1xuXG5cdFx0XHR2YXIgYWUgPSBhICogZSwgYWYgPSBhICogZiwgYmUgPSBiICogZSwgYmYgPSBiICogZjtcblxuXHRcdFx0dGVbIDAgXSA9IGMgKiBlO1xuXHRcdFx0dGVbIDQgXSA9IC0gYyAqIGY7XG5cdFx0XHR0ZVsgOCBdID0gZDtcblxuXHRcdFx0dGVbIDEgXSA9IGFmICsgYmUgKiBkO1xuXHRcdFx0dGVbIDUgXSA9IGFlIC0gYmYgKiBkO1xuXHRcdFx0dGVbIDkgXSA9IC0gYiAqIGM7XG5cblx0XHRcdHRlWyAyIF0gPSBiZiAtIGFlICogZDtcblx0XHRcdHRlWyA2IF0gPSBiZSArIGFmICogZDtcblx0XHRcdHRlWyAxMCBdID0gYSAqIGM7XG5cblx0XHR9IGVsc2UgaWYgKCBldWxlci5vcmRlciA9PT0gJ1lYWicgKSB7XG5cblx0XHRcdHZhciBjZSA9IGMgKiBlLCBjZiA9IGMgKiBmLCBkZSA9IGQgKiBlLCBkZiA9IGQgKiBmO1xuXG5cdFx0XHR0ZVsgMCBdID0gY2UgKyBkZiAqIGI7XG5cdFx0XHR0ZVsgNCBdID0gZGUgKiBiIC0gY2Y7XG5cdFx0XHR0ZVsgOCBdID0gYSAqIGQ7XG5cblx0XHRcdHRlWyAxIF0gPSBhICogZjtcblx0XHRcdHRlWyA1IF0gPSBhICogZTtcblx0XHRcdHRlWyA5IF0gPSAtIGI7XG5cblx0XHRcdHRlWyAyIF0gPSBjZiAqIGIgLSBkZTtcblx0XHRcdHRlWyA2IF0gPSBkZiArIGNlICogYjtcblx0XHRcdHRlWyAxMCBdID0gYSAqIGM7XG5cblx0XHR9IGVsc2UgaWYgKCBldWxlci5vcmRlciA9PT0gJ1pYWScgKSB7XG5cblx0XHRcdHZhciBjZSA9IGMgKiBlLCBjZiA9IGMgKiBmLCBkZSA9IGQgKiBlLCBkZiA9IGQgKiBmO1xuXG5cdFx0XHR0ZVsgMCBdID0gY2UgLSBkZiAqIGI7XG5cdFx0XHR0ZVsgNCBdID0gLSBhICogZjtcblx0XHRcdHRlWyA4IF0gPSBkZSArIGNmICogYjtcblxuXHRcdFx0dGVbIDEgXSA9IGNmICsgZGUgKiBiO1xuXHRcdFx0dGVbIDUgXSA9IGEgKiBlO1xuXHRcdFx0dGVbIDkgXSA9IGRmIC0gY2UgKiBiO1xuXG5cdFx0XHR0ZVsgMiBdID0gLSBhICogZDtcblx0XHRcdHRlWyA2IF0gPSBiO1xuXHRcdFx0dGVbIDEwIF0gPSBhICogYztcblxuXHRcdH0gZWxzZSBpZiAoIGV1bGVyLm9yZGVyID09PSAnWllYJyApIHtcblxuXHRcdFx0dmFyIGFlID0gYSAqIGUsIGFmID0gYSAqIGYsIGJlID0gYiAqIGUsIGJmID0gYiAqIGY7XG5cblx0XHRcdHRlWyAwIF0gPSBjICogZTtcblx0XHRcdHRlWyA0IF0gPSBiZSAqIGQgLSBhZjtcblx0XHRcdHRlWyA4IF0gPSBhZSAqIGQgKyBiZjtcblxuXHRcdFx0dGVbIDEgXSA9IGMgKiBmO1xuXHRcdFx0dGVbIDUgXSA9IGJmICogZCArIGFlO1xuXHRcdFx0dGVbIDkgXSA9IGFmICogZCAtIGJlO1xuXG5cdFx0XHR0ZVsgMiBdID0gLSBkO1xuXHRcdFx0dGVbIDYgXSA9IGIgKiBjO1xuXHRcdFx0dGVbIDEwIF0gPSBhICogYztcblxuXHRcdH0gZWxzZSBpZiAoIGV1bGVyLm9yZGVyID09PSAnWVpYJyApIHtcblxuXHRcdFx0dmFyIGFjID0gYSAqIGMsIGFkID0gYSAqIGQsIGJjID0gYiAqIGMsIGJkID0gYiAqIGQ7XG5cblx0XHRcdHRlWyAwIF0gPSBjICogZTtcblx0XHRcdHRlWyA0IF0gPSBiZCAtIGFjICogZjtcblx0XHRcdHRlWyA4IF0gPSBiYyAqIGYgKyBhZDtcblxuXHRcdFx0dGVbIDEgXSA9IGY7XG5cdFx0XHR0ZVsgNSBdID0gYSAqIGU7XG5cdFx0XHR0ZVsgOSBdID0gLSBiICogZTtcblxuXHRcdFx0dGVbIDIgXSA9IC0gZCAqIGU7XG5cdFx0XHR0ZVsgNiBdID0gYWQgKiBmICsgYmM7XG5cdFx0XHR0ZVsgMTAgXSA9IGFjIC0gYmQgKiBmO1xuXG5cdFx0fSBlbHNlIGlmICggZXVsZXIub3JkZXIgPT09ICdYWlknICkge1xuXG5cdFx0XHR2YXIgYWMgPSBhICogYywgYWQgPSBhICogZCwgYmMgPSBiICogYywgYmQgPSBiICogZDtcblxuXHRcdFx0dGVbIDAgXSA9IGMgKiBlO1xuXHRcdFx0dGVbIDQgXSA9IC0gZjtcblx0XHRcdHRlWyA4IF0gPSBkICogZTtcblxuXHRcdFx0dGVbIDEgXSA9IGFjICogZiArIGJkO1xuXHRcdFx0dGVbIDUgXSA9IGEgKiBlO1xuXHRcdFx0dGVbIDkgXSA9IGFkICogZiAtIGJjO1xuXG5cdFx0XHR0ZVsgMiBdID0gYmMgKiBmIC0gYWQ7XG5cdFx0XHR0ZVsgNiBdID0gYiAqIGU7XG5cdFx0XHR0ZVsgMTAgXSA9IGJkICogZiArIGFjO1xuXG5cdFx0fVxuXG5cdFx0Ly8gYm90dG9tIHJvd1xuXHRcdHRlWyAzIF0gPSAwO1xuXHRcdHRlWyA3IF0gPSAwO1xuXHRcdHRlWyAxMSBdID0gMDtcblxuXHRcdC8vIGxhc3QgY29sdW1uXG5cdFx0dGVbIDEyIF0gPSAwO1xuXHRcdHRlWyAxMyBdID0gMDtcblx0XHR0ZVsgMTQgXSA9IDA7XG5cdFx0dGVbIDE1IF0gPSAxO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbjogZnVuY3Rpb24gKCkge1xuXG5cdFx0dmFyIHplcm8gPSBuZXcgVmVjdG9yMyggMCwgMCwgMCApO1xuXHRcdHZhciBvbmUgPSBuZXcgVmVjdG9yMyggMSwgMSwgMSApO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIG1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKCBxICkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5jb21wb3NlKCB6ZXJvLCBxLCBvbmUgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdGxvb2tBdDogZnVuY3Rpb24gKCkge1xuXG5cdFx0dmFyIHggPSBuZXcgVmVjdG9yMygpO1xuXHRcdHZhciB5ID0gbmV3IFZlY3RvcjMoKTtcblx0XHR2YXIgeiA9IG5ldyBWZWN0b3IzKCk7XG5cblx0XHRyZXR1cm4gZnVuY3Rpb24gbG9va0F0KCBleWUsIHRhcmdldCwgdXAgKSB7XG5cblx0XHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cblx0XHRcdHouc3ViVmVjdG9ycyggZXllLCB0YXJnZXQgKTtcblxuXHRcdFx0aWYgKCB6Lmxlbmd0aFNxKCkgPT09IDAgKSB7XG5cblx0XHRcdFx0Ly8gZXllIGFuZCB0YXJnZXQgYXJlIGluIHRoZSBzYW1lIHBvc2l0aW9uXG5cblx0XHRcdFx0ei56ID0gMTtcblxuXHRcdFx0fVxuXG5cdFx0XHR6Lm5vcm1hbGl6ZSgpO1xuXHRcdFx0eC5jcm9zc1ZlY3RvcnMoIHVwLCB6ICk7XG5cblx0XHRcdGlmICggeC5sZW5ndGhTcSgpID09PSAwICkge1xuXG5cdFx0XHRcdC8vIHVwIGFuZCB6IGFyZSBwYXJhbGxlbFxuXG5cdFx0XHRcdGlmICggTWF0aC5hYnMoIHVwLnogKSA9PT0gMSApIHtcblxuXHRcdFx0XHRcdHoueCArPSAwLjAwMDE7XG5cblx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdHoueiArPSAwLjAwMDE7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHoubm9ybWFsaXplKCk7XG5cdFx0XHRcdHguY3Jvc3NWZWN0b3JzKCB1cCwgeiApO1xuXG5cdFx0XHR9XG5cblx0XHRcdHgubm9ybWFsaXplKCk7XG5cdFx0XHR5LmNyb3NzVmVjdG9ycyggeiwgeCApO1xuXG5cdFx0XHR0ZVsgMCBdID0geC54OyB0ZVsgNCBdID0geS54OyB0ZVsgOCBdID0gei54O1xuXHRcdFx0dGVbIDEgXSA9IHgueTsgdGVbIDUgXSA9IHkueTsgdGVbIDkgXSA9IHoueTtcblx0XHRcdHRlWyAyIF0gPSB4Lno7IHRlWyA2IF0gPSB5Lno7IHRlWyAxMCBdID0gei56O1xuXG5cdFx0XHRyZXR1cm4gdGhpcztcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdG11bHRpcGx5OiBmdW5jdGlvbiAoIG0sIG4gKSB7XG5cblx0XHRpZiAoIG4gIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Y29uc29sZS53YXJuKCAnVEhSRUUuTWF0cml4NDogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlNYXRyaWNlcyggYSwgYiApIGluc3RlYWQuJyApO1xuXHRcdFx0cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyggbSwgbiApO1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyggdGhpcywgbSApO1xuXG5cdH0sXG5cblx0cHJlbXVsdGlwbHk6IGZ1bmN0aW9uICggbSApIHtcblxuXHRcdHJldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXMoIG0sIHRoaXMgKTtcblxuXHR9LFxuXG5cdG11bHRpcGx5TWF0cmljZXM6IGZ1bmN0aW9uICggYSwgYiApIHtcblxuXHRcdHZhciBhZSA9IGEuZWxlbWVudHM7XG5cdFx0dmFyIGJlID0gYi5lbGVtZW50cztcblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXG5cdFx0dmFyIGExMSA9IGFlWyAwIF0sIGExMiA9IGFlWyA0IF0sIGExMyA9IGFlWyA4IF0sIGExNCA9IGFlWyAxMiBdO1xuXHRcdHZhciBhMjEgPSBhZVsgMSBdLCBhMjIgPSBhZVsgNSBdLCBhMjMgPSBhZVsgOSBdLCBhMjQgPSBhZVsgMTMgXTtcblx0XHR2YXIgYTMxID0gYWVbIDIgXSwgYTMyID0gYWVbIDYgXSwgYTMzID0gYWVbIDEwIF0sIGEzNCA9IGFlWyAxNCBdO1xuXHRcdHZhciBhNDEgPSBhZVsgMyBdLCBhNDIgPSBhZVsgNyBdLCBhNDMgPSBhZVsgMTEgXSwgYTQ0ID0gYWVbIDE1IF07XG5cblx0XHR2YXIgYjExID0gYmVbIDAgXSwgYjEyID0gYmVbIDQgXSwgYjEzID0gYmVbIDggXSwgYjE0ID0gYmVbIDEyIF07XG5cdFx0dmFyIGIyMSA9IGJlWyAxIF0sIGIyMiA9IGJlWyA1IF0sIGIyMyA9IGJlWyA5IF0sIGIyNCA9IGJlWyAxMyBdO1xuXHRcdHZhciBiMzEgPSBiZVsgMiBdLCBiMzIgPSBiZVsgNiBdLCBiMzMgPSBiZVsgMTAgXSwgYjM0ID0gYmVbIDE0IF07XG5cdFx0dmFyIGI0MSA9IGJlWyAzIF0sIGI0MiA9IGJlWyA3IF0sIGI0MyA9IGJlWyAxMSBdLCBiNDQgPSBiZVsgMTUgXTtcblxuXHRcdHRlWyAwIF0gPSBhMTEgKiBiMTEgKyBhMTIgKiBiMjEgKyBhMTMgKiBiMzEgKyBhMTQgKiBiNDE7XG5cdFx0dGVbIDQgXSA9IGExMSAqIGIxMiArIGExMiAqIGIyMiArIGExMyAqIGIzMiArIGExNCAqIGI0Mjtcblx0XHR0ZVsgOCBdID0gYTExICogYjEzICsgYTEyICogYjIzICsgYTEzICogYjMzICsgYTE0ICogYjQzO1xuXHRcdHRlWyAxMiBdID0gYTExICogYjE0ICsgYTEyICogYjI0ICsgYTEzICogYjM0ICsgYTE0ICogYjQ0O1xuXG5cdFx0dGVbIDEgXSA9IGEyMSAqIGIxMSArIGEyMiAqIGIyMSArIGEyMyAqIGIzMSArIGEyNCAqIGI0MTtcblx0XHR0ZVsgNSBdID0gYTIxICogYjEyICsgYTIyICogYjIyICsgYTIzICogYjMyICsgYTI0ICogYjQyO1xuXHRcdHRlWyA5IF0gPSBhMjEgKiBiMTMgKyBhMjIgKiBiMjMgKyBhMjMgKiBiMzMgKyBhMjQgKiBiNDM7XG5cdFx0dGVbIDEzIF0gPSBhMjEgKiBiMTQgKyBhMjIgKiBiMjQgKyBhMjMgKiBiMzQgKyBhMjQgKiBiNDQ7XG5cblx0XHR0ZVsgMiBdID0gYTMxICogYjExICsgYTMyICogYjIxICsgYTMzICogYjMxICsgYTM0ICogYjQxO1xuXHRcdHRlWyA2IF0gPSBhMzEgKiBiMTIgKyBhMzIgKiBiMjIgKyBhMzMgKiBiMzIgKyBhMzQgKiBiNDI7XG5cdFx0dGVbIDEwIF0gPSBhMzEgKiBiMTMgKyBhMzIgKiBiMjMgKyBhMzMgKiBiMzMgKyBhMzQgKiBiNDM7XG5cdFx0dGVbIDE0IF0gPSBhMzEgKiBiMTQgKyBhMzIgKiBiMjQgKyBhMzMgKiBiMzQgKyBhMzQgKiBiNDQ7XG5cblx0XHR0ZVsgMyBdID0gYTQxICogYjExICsgYTQyICogYjIxICsgYTQzICogYjMxICsgYTQ0ICogYjQxO1xuXHRcdHRlWyA3IF0gPSBhNDEgKiBiMTIgKyBhNDIgKiBiMjIgKyBhNDMgKiBiMzIgKyBhNDQgKiBiNDI7XG5cdFx0dGVbIDExIF0gPSBhNDEgKiBiMTMgKyBhNDIgKiBiMjMgKyBhNDMgKiBiMzMgKyBhNDQgKiBiNDM7XG5cdFx0dGVbIDE1IF0gPSBhNDEgKiBiMTQgKyBhNDIgKiBiMjQgKyBhNDMgKiBiMzQgKyBhNDQgKiBiNDQ7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG11bHRpcGx5U2NhbGFyOiBmdW5jdGlvbiAoIHMgKSB7XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXG5cdFx0dGVbIDAgXSAqPSBzOyB0ZVsgNCBdICo9IHM7IHRlWyA4IF0gKj0gczsgdGVbIDEyIF0gKj0gcztcblx0XHR0ZVsgMSBdICo9IHM7IHRlWyA1IF0gKj0gczsgdGVbIDkgXSAqPSBzOyB0ZVsgMTMgXSAqPSBzO1xuXHRcdHRlWyAyIF0gKj0gczsgdGVbIDYgXSAqPSBzOyB0ZVsgMTAgXSAqPSBzOyB0ZVsgMTQgXSAqPSBzO1xuXHRcdHRlWyAzIF0gKj0gczsgdGVbIDcgXSAqPSBzOyB0ZVsgMTEgXSAqPSBzOyB0ZVsgMTUgXSAqPSBzO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhcHBseVRvQnVmZmVyQXR0cmlidXRlOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdjEgPSBuZXcgVmVjdG9yMygpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIGFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoIGF0dHJpYnV0ZSApIHtcblxuXHRcdFx0Zm9yICggdmFyIGkgPSAwLCBsID0gYXR0cmlidXRlLmNvdW50OyBpIDwgbDsgaSArKyApIHtcblxuXHRcdFx0XHR2MS54ID0gYXR0cmlidXRlLmdldFgoIGkgKTtcblx0XHRcdFx0djEueSA9IGF0dHJpYnV0ZS5nZXRZKCBpICk7XG5cdFx0XHRcdHYxLnogPSBhdHRyaWJ1dGUuZ2V0WiggaSApO1xuXG5cdFx0XHRcdHYxLmFwcGx5TWF0cml4NCggdGhpcyApO1xuXG5cdFx0XHRcdGF0dHJpYnV0ZS5zZXRYWVooIGksIHYxLngsIHYxLnksIHYxLnogKTtcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gYXR0cmlidXRlO1xuXG5cdFx0fTtcblxuXHR9KCksXG5cblx0ZGV0ZXJtaW5hbnQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cblx0XHR2YXIgbjExID0gdGVbIDAgXSwgbjEyID0gdGVbIDQgXSwgbjEzID0gdGVbIDggXSwgbjE0ID0gdGVbIDEyIF07XG5cdFx0dmFyIG4yMSA9IHRlWyAxIF0sIG4yMiA9IHRlWyA1IF0sIG4yMyA9IHRlWyA5IF0sIG4yNCA9IHRlWyAxMyBdO1xuXHRcdHZhciBuMzEgPSB0ZVsgMiBdLCBuMzIgPSB0ZVsgNiBdLCBuMzMgPSB0ZVsgMTAgXSwgbjM0ID0gdGVbIDE0IF07XG5cdFx0dmFyIG40MSA9IHRlWyAzIF0sIG40MiA9IHRlWyA3IF0sIG40MyA9IHRlWyAxMSBdLCBuNDQgPSB0ZVsgMTUgXTtcblxuXHRcdC8vVE9ETzogbWFrZSB0aGlzIG1vcmUgZWZmaWNpZW50XG5cdFx0Ly8oIGJhc2VkIG9uIGh0dHA6Ly93d3cuZXVjbGlkZWFuc3BhY2UuY29tL21hdGhzL2FsZ2VicmEvbWF0cml4L2Z1bmN0aW9ucy9pbnZlcnNlL2ZvdXJEL2luZGV4Lmh0bSApXG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0bjQxICogKFxuXHRcdFx0XHQrIG4xNCAqIG4yMyAqIG4zMlxuXHRcdFx0XHQgLSBuMTMgKiBuMjQgKiBuMzJcblx0XHRcdFx0IC0gbjE0ICogbjIyICogbjMzXG5cdFx0XHRcdCArIG4xMiAqIG4yNCAqIG4zM1xuXHRcdFx0XHQgKyBuMTMgKiBuMjIgKiBuMzRcblx0XHRcdFx0IC0gbjEyICogbjIzICogbjM0XG5cdFx0XHQpICtcblx0XHRcdG40MiAqIChcblx0XHRcdFx0KyBuMTEgKiBuMjMgKiBuMzRcblx0XHRcdFx0IC0gbjExICogbjI0ICogbjMzXG5cdFx0XHRcdCArIG4xNCAqIG4yMSAqIG4zM1xuXHRcdFx0XHQgLSBuMTMgKiBuMjEgKiBuMzRcblx0XHRcdFx0ICsgbjEzICogbjI0ICogbjMxXG5cdFx0XHRcdCAtIG4xNCAqIG4yMyAqIG4zMVxuXHRcdFx0KSArXG5cdFx0XHRuNDMgKiAoXG5cdFx0XHRcdCsgbjExICogbjI0ICogbjMyXG5cdFx0XHRcdCAtIG4xMSAqIG4yMiAqIG4zNFxuXHRcdFx0XHQgLSBuMTQgKiBuMjEgKiBuMzJcblx0XHRcdFx0ICsgbjEyICogbjIxICogbjM0XG5cdFx0XHRcdCArIG4xNCAqIG4yMiAqIG4zMVxuXHRcdFx0XHQgLSBuMTIgKiBuMjQgKiBuMzFcblx0XHRcdCkgK1xuXHRcdFx0bjQ0ICogKFxuXHRcdFx0XHQtIG4xMyAqIG4yMiAqIG4zMVxuXHRcdFx0XHQgLSBuMTEgKiBuMjMgKiBuMzJcblx0XHRcdFx0ICsgbjExICogbjIyICogbjMzXG5cdFx0XHRcdCArIG4xMyAqIG4yMSAqIG4zMlxuXHRcdFx0XHQgLSBuMTIgKiBuMjEgKiBuMzNcblx0XHRcdFx0ICsgbjEyICogbjIzICogbjMxXG5cdFx0XHQpXG5cblx0XHQpO1xuXG5cdH0sXG5cblx0dHJhbnNwb3NlOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXHRcdHZhciB0bXA7XG5cblx0XHR0bXAgPSB0ZVsgMSBdOyB0ZVsgMSBdID0gdGVbIDQgXTsgdGVbIDQgXSA9IHRtcDtcblx0XHR0bXAgPSB0ZVsgMiBdOyB0ZVsgMiBdID0gdGVbIDggXTsgdGVbIDggXSA9IHRtcDtcblx0XHR0bXAgPSB0ZVsgNiBdOyB0ZVsgNiBdID0gdGVbIDkgXTsgdGVbIDkgXSA9IHRtcDtcblxuXHRcdHRtcCA9IHRlWyAzIF07IHRlWyAzIF0gPSB0ZVsgMTIgXTsgdGVbIDEyIF0gPSB0bXA7XG5cdFx0dG1wID0gdGVbIDcgXTsgdGVbIDcgXSA9IHRlWyAxMyBdOyB0ZVsgMTMgXSA9IHRtcDtcblx0XHR0bXAgPSB0ZVsgMTEgXTsgdGVbIDExIF0gPSB0ZVsgMTQgXTsgdGVbIDE0IF0gPSB0bXA7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldFBvc2l0aW9uOiBmdW5jdGlvbiAoIHgsIHksIHogKSB7XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXG5cdFx0aWYgKCB4LmlzVmVjdG9yMyApIHtcblxuXHRcdFx0dGVbIDEyIF0gPSB4Lng7XG5cdFx0XHR0ZVsgMTMgXSA9IHgueTtcblx0XHRcdHRlWyAxNCBdID0geC56O1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0dGVbIDEyIF0gPSB4O1xuXHRcdFx0dGVbIDEzIF0gPSB5O1xuXHRcdFx0dGVbIDE0IF0gPSB6O1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRnZXRJbnZlcnNlOiBmdW5jdGlvbiAoIG0sIHRocm93T25EZWdlbmVyYXRlICkge1xuXG5cdFx0Ly8gYmFzZWQgb24gaHR0cDovL3d3dy5ldWNsaWRlYW5zcGFjZS5jb20vbWF0aHMvYWxnZWJyYS9tYXRyaXgvZnVuY3Rpb25zL2ludmVyc2UvZm91ckQvaW5kZXguaHRtXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cyxcblx0XHRcdG1lID0gbS5lbGVtZW50cyxcblxuXHRcdFx0bjExID0gbWVbIDAgXSwgbjIxID0gbWVbIDEgXSwgbjMxID0gbWVbIDIgXSwgbjQxID0gbWVbIDMgXSxcblx0XHRcdG4xMiA9IG1lWyA0IF0sIG4yMiA9IG1lWyA1IF0sIG4zMiA9IG1lWyA2IF0sIG40MiA9IG1lWyA3IF0sXG5cdFx0XHRuMTMgPSBtZVsgOCBdLCBuMjMgPSBtZVsgOSBdLCBuMzMgPSBtZVsgMTAgXSwgbjQzID0gbWVbIDExIF0sXG5cdFx0XHRuMTQgPSBtZVsgMTIgXSwgbjI0ID0gbWVbIDEzIF0sIG4zNCA9IG1lWyAxNCBdLCBuNDQgPSBtZVsgMTUgXSxcblxuXHRcdFx0dDExID0gbjIzICogbjM0ICogbjQyIC0gbjI0ICogbjMzICogbjQyICsgbjI0ICogbjMyICogbjQzIC0gbjIyICogbjM0ICogbjQzIC0gbjIzICogbjMyICogbjQ0ICsgbjIyICogbjMzICogbjQ0LFxuXHRcdFx0dDEyID0gbjE0ICogbjMzICogbjQyIC0gbjEzICogbjM0ICogbjQyIC0gbjE0ICogbjMyICogbjQzICsgbjEyICogbjM0ICogbjQzICsgbjEzICogbjMyICogbjQ0IC0gbjEyICogbjMzICogbjQ0LFxuXHRcdFx0dDEzID0gbjEzICogbjI0ICogbjQyIC0gbjE0ICogbjIzICogbjQyICsgbjE0ICogbjIyICogbjQzIC0gbjEyICogbjI0ICogbjQzIC0gbjEzICogbjIyICogbjQ0ICsgbjEyICogbjIzICogbjQ0LFxuXHRcdFx0dDE0ID0gbjE0ICogbjIzICogbjMyIC0gbjEzICogbjI0ICogbjMyIC0gbjE0ICogbjIyICogbjMzICsgbjEyICogbjI0ICogbjMzICsgbjEzICogbjIyICogbjM0IC0gbjEyICogbjIzICogbjM0O1xuXG5cdFx0dmFyIGRldCA9IG4xMSAqIHQxMSArIG4yMSAqIHQxMiArIG4zMSAqIHQxMyArIG40MSAqIHQxNDtcblxuXHRcdGlmICggZGV0ID09PSAwICkge1xuXG5cdFx0XHR2YXIgbXNnID0gXCJUSFJFRS5NYXRyaXg0OiAuZ2V0SW52ZXJzZSgpIGNhbid0IGludmVydCBtYXRyaXgsIGRldGVybWluYW50IGlzIDBcIjtcblxuXHRcdFx0aWYgKCB0aHJvd09uRGVnZW5lcmF0ZSA9PT0gdHJ1ZSApIHtcblxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoIG1zZyApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdGNvbnNvbGUud2FybiggbXNnICk7XG5cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHRoaXMuaWRlbnRpdHkoKTtcblxuXHRcdH1cblxuXHRcdHZhciBkZXRJbnYgPSAxIC8gZGV0O1xuXG5cdFx0dGVbIDAgXSA9IHQxMSAqIGRldEludjtcblx0XHR0ZVsgMSBdID0gKCBuMjQgKiBuMzMgKiBuNDEgLSBuMjMgKiBuMzQgKiBuNDEgLSBuMjQgKiBuMzEgKiBuNDMgKyBuMjEgKiBuMzQgKiBuNDMgKyBuMjMgKiBuMzEgKiBuNDQgLSBuMjEgKiBuMzMgKiBuNDQgKSAqIGRldEludjtcblx0XHR0ZVsgMiBdID0gKCBuMjIgKiBuMzQgKiBuNDEgLSBuMjQgKiBuMzIgKiBuNDEgKyBuMjQgKiBuMzEgKiBuNDIgLSBuMjEgKiBuMzQgKiBuNDIgLSBuMjIgKiBuMzEgKiBuNDQgKyBuMjEgKiBuMzIgKiBuNDQgKSAqIGRldEludjtcblx0XHR0ZVsgMyBdID0gKCBuMjMgKiBuMzIgKiBuNDEgLSBuMjIgKiBuMzMgKiBuNDEgLSBuMjMgKiBuMzEgKiBuNDIgKyBuMjEgKiBuMzMgKiBuNDIgKyBuMjIgKiBuMzEgKiBuNDMgLSBuMjEgKiBuMzIgKiBuNDMgKSAqIGRldEludjtcblxuXHRcdHRlWyA0IF0gPSB0MTIgKiBkZXRJbnY7XG5cdFx0dGVbIDUgXSA9ICggbjEzICogbjM0ICogbjQxIC0gbjE0ICogbjMzICogbjQxICsgbjE0ICogbjMxICogbjQzIC0gbjExICogbjM0ICogbjQzIC0gbjEzICogbjMxICogbjQ0ICsgbjExICogbjMzICogbjQ0ICkgKiBkZXRJbnY7XG5cdFx0dGVbIDYgXSA9ICggbjE0ICogbjMyICogbjQxIC0gbjEyICogbjM0ICogbjQxIC0gbjE0ICogbjMxICogbjQyICsgbjExICogbjM0ICogbjQyICsgbjEyICogbjMxICogbjQ0IC0gbjExICogbjMyICogbjQ0ICkgKiBkZXRJbnY7XG5cdFx0dGVbIDcgXSA9ICggbjEyICogbjMzICogbjQxIC0gbjEzICogbjMyICogbjQxICsgbjEzICogbjMxICogbjQyIC0gbjExICogbjMzICogbjQyIC0gbjEyICogbjMxICogbjQzICsgbjExICogbjMyICogbjQzICkgKiBkZXRJbnY7XG5cblx0XHR0ZVsgOCBdID0gdDEzICogZGV0SW52O1xuXHRcdHRlWyA5IF0gPSAoIG4xNCAqIG4yMyAqIG40MSAtIG4xMyAqIG4yNCAqIG40MSAtIG4xNCAqIG4yMSAqIG40MyArIG4xMSAqIG4yNCAqIG40MyArIG4xMyAqIG4yMSAqIG40NCAtIG4xMSAqIG4yMyAqIG40NCApICogZGV0SW52O1xuXHRcdHRlWyAxMCBdID0gKCBuMTIgKiBuMjQgKiBuNDEgLSBuMTQgKiBuMjIgKiBuNDEgKyBuMTQgKiBuMjEgKiBuNDIgLSBuMTEgKiBuMjQgKiBuNDIgLSBuMTIgKiBuMjEgKiBuNDQgKyBuMTEgKiBuMjIgKiBuNDQgKSAqIGRldEludjtcblx0XHR0ZVsgMTEgXSA9ICggbjEzICogbjIyICogbjQxIC0gbjEyICogbjIzICogbjQxIC0gbjEzICogbjIxICogbjQyICsgbjExICogbjIzICogbjQyICsgbjEyICogbjIxICogbjQzIC0gbjExICogbjIyICogbjQzICkgKiBkZXRJbnY7XG5cblx0XHR0ZVsgMTIgXSA9IHQxNCAqIGRldEludjtcblx0XHR0ZVsgMTMgXSA9ICggbjEzICogbjI0ICogbjMxIC0gbjE0ICogbjIzICogbjMxICsgbjE0ICogbjIxICogbjMzIC0gbjExICogbjI0ICogbjMzIC0gbjEzICogbjIxICogbjM0ICsgbjExICogbjIzICogbjM0ICkgKiBkZXRJbnY7XG5cdFx0dGVbIDE0IF0gPSAoIG4xNCAqIG4yMiAqIG4zMSAtIG4xMiAqIG4yNCAqIG4zMSAtIG4xNCAqIG4yMSAqIG4zMiArIG4xMSAqIG4yNCAqIG4zMiArIG4xMiAqIG4yMSAqIG4zNCAtIG4xMSAqIG4yMiAqIG4zNCApICogZGV0SW52O1xuXHRcdHRlWyAxNSBdID0gKCBuMTIgKiBuMjMgKiBuMzEgLSBuMTMgKiBuMjIgKiBuMzEgKyBuMTMgKiBuMjEgKiBuMzIgLSBuMTEgKiBuMjMgKiBuMzIgLSBuMTIgKiBuMjEgKiBuMzMgKyBuMTEgKiBuMjIgKiBuMzMgKSAqIGRldEludjtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2NhbGU6IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cdFx0dmFyIHggPSB2LngsIHkgPSB2LnksIHogPSB2Lno7XG5cblx0XHR0ZVsgMCBdICo9IHg7IHRlWyA0IF0gKj0geTsgdGVbIDggXSAqPSB6O1xuXHRcdHRlWyAxIF0gKj0geDsgdGVbIDUgXSAqPSB5OyB0ZVsgOSBdICo9IHo7XG5cdFx0dGVbIDIgXSAqPSB4OyB0ZVsgNiBdICo9IHk7IHRlWyAxMCBdICo9IHo7XG5cdFx0dGVbIDMgXSAqPSB4OyB0ZVsgNyBdICo9IHk7IHRlWyAxMSBdICo9IHo7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGdldE1heFNjYWxlT25BeGlzOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXG5cdFx0dmFyIHNjYWxlWFNxID0gdGVbIDAgXSAqIHRlWyAwIF0gKyB0ZVsgMSBdICogdGVbIDEgXSArIHRlWyAyIF0gKiB0ZVsgMiBdO1xuXHRcdHZhciBzY2FsZVlTcSA9IHRlWyA0IF0gKiB0ZVsgNCBdICsgdGVbIDUgXSAqIHRlWyA1IF0gKyB0ZVsgNiBdICogdGVbIDYgXTtcblx0XHR2YXIgc2NhbGVaU3EgPSB0ZVsgOCBdICogdGVbIDggXSArIHRlWyA5IF0gKiB0ZVsgOSBdICsgdGVbIDEwIF0gKiB0ZVsgMTAgXTtcblxuXHRcdHJldHVybiBNYXRoLnNxcnQoIE1hdGgubWF4KCBzY2FsZVhTcSwgc2NhbGVZU3EsIHNjYWxlWlNxICkgKTtcblxuXHR9LFxuXG5cdG1ha2VUcmFuc2xhdGlvbjogZnVuY3Rpb24gKCB4LCB5LCB6ICkge1xuXG5cdFx0dGhpcy5zZXQoXG5cblx0XHRcdDEsIDAsIDAsIHgsXG5cdFx0XHQwLCAxLCAwLCB5LFxuXHRcdFx0MCwgMCwgMSwgeixcblx0XHRcdDAsIDAsIDAsIDFcblxuXHRcdCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG1ha2VSb3RhdGlvblg6IGZ1bmN0aW9uICggdGhldGEgKSB7XG5cblx0XHR2YXIgYyA9IE1hdGguY29zKCB0aGV0YSApLCBzID0gTWF0aC5zaW4oIHRoZXRhICk7XG5cblx0XHR0aGlzLnNldChcblxuXHRcdFx0MSwgMCwgMCwgMCxcblx0XHRcdDAsIGMsIC0gcywgMCxcblx0XHRcdDAsIHMsIGMsIDAsXG5cdFx0XHQwLCAwLCAwLCAxXG5cblx0XHQpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYWtlUm90YXRpb25ZOiBmdW5jdGlvbiAoIHRoZXRhICkge1xuXG5cdFx0dmFyIGMgPSBNYXRoLmNvcyggdGhldGEgKSwgcyA9IE1hdGguc2luKCB0aGV0YSApO1xuXG5cdFx0dGhpcy5zZXQoXG5cblx0XHRcdCBjLCAwLCBzLCAwLFxuXHRcdFx0IDAsIDEsIDAsIDAsXG5cdFx0XHQtIHMsIDAsIGMsIDAsXG5cdFx0XHQgMCwgMCwgMCwgMVxuXG5cdFx0KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0bWFrZVJvdGF0aW9uWjogZnVuY3Rpb24gKCB0aGV0YSApIHtcblxuXHRcdHZhciBjID0gTWF0aC5jb3MoIHRoZXRhICksIHMgPSBNYXRoLnNpbiggdGhldGEgKTtcblxuXHRcdHRoaXMuc2V0KFxuXG5cdFx0XHRjLCAtIHMsIDAsIDAsXG5cdFx0XHRzLCBjLCAwLCAwLFxuXHRcdFx0MCwgMCwgMSwgMCxcblx0XHRcdDAsIDAsIDAsIDFcblxuXHRcdCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG1ha2VSb3RhdGlvbkF4aXM6IGZ1bmN0aW9uICggYXhpcywgYW5nbGUgKSB7XG5cblx0XHQvLyBCYXNlZCBvbiBodHRwOi8vd3d3LmdhbWVkZXYubmV0L3JlZmVyZW5jZS9hcnRpY2xlcy9hcnRpY2xlMTE5OS5hc3BcblxuXHRcdHZhciBjID0gTWF0aC5jb3MoIGFuZ2xlICk7XG5cdFx0dmFyIHMgPSBNYXRoLnNpbiggYW5nbGUgKTtcblx0XHR2YXIgdCA9IDEgLSBjO1xuXHRcdHZhciB4ID0gYXhpcy54LCB5ID0gYXhpcy55LCB6ID0gYXhpcy56O1xuXHRcdHZhciB0eCA9IHQgKiB4LCB0eSA9IHQgKiB5O1xuXG5cdFx0dGhpcy5zZXQoXG5cblx0XHRcdHR4ICogeCArIGMsIHR4ICogeSAtIHMgKiB6LCB0eCAqIHogKyBzICogeSwgMCxcblx0XHRcdHR4ICogeSArIHMgKiB6LCB0eSAqIHkgKyBjLCB0eSAqIHogLSBzICogeCwgMCxcblx0XHRcdHR4ICogeiAtIHMgKiB5LCB0eSAqIHogKyBzICogeCwgdCAqIHogKiB6ICsgYywgMCxcblx0XHRcdDAsIDAsIDAsIDFcblxuXHRcdCk7XG5cblx0XHQgcmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYWtlU2NhbGU6IGZ1bmN0aW9uICggeCwgeSwgeiApIHtcblxuXHRcdHRoaXMuc2V0KFxuXG5cdFx0XHR4LCAwLCAwLCAwLFxuXHRcdFx0MCwgeSwgMCwgMCxcblx0XHRcdDAsIDAsIHosIDAsXG5cdFx0XHQwLCAwLCAwLCAxXG5cblx0XHQpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYWtlU2hlYXI6IGZ1bmN0aW9uICggeCwgeSwgeiApIHtcblxuXHRcdHRoaXMuc2V0KFxuXG5cdFx0XHQxLCB5LCB6LCAwLFxuXHRcdFx0eCwgMSwgeiwgMCxcblx0XHRcdHgsIHksIDEsIDAsXG5cdFx0XHQwLCAwLCAwLCAxXG5cblx0XHQpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRjb21wb3NlOiBmdW5jdGlvbiAoIHBvc2l0aW9uLCBxdWF0ZXJuaW9uLCBzY2FsZSApIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cblx0XHR2YXIgeCA9IHF1YXRlcm5pb24uX3gsIHkgPSBxdWF0ZXJuaW9uLl95LCB6ID0gcXVhdGVybmlvbi5feiwgdyA9IHF1YXRlcm5pb24uX3c7XG5cdFx0dmFyIHgyID0geCArIHgsXHR5MiA9IHkgKyB5LCB6MiA9IHogKyB6O1xuXHRcdHZhciB4eCA9IHggKiB4MiwgeHkgPSB4ICogeTIsIHh6ID0geCAqIHoyO1xuXHRcdHZhciB5eSA9IHkgKiB5MiwgeXogPSB5ICogejIsIHp6ID0geiAqIHoyO1xuXHRcdHZhciB3eCA9IHcgKiB4Miwgd3kgPSB3ICogeTIsIHd6ID0gdyAqIHoyO1xuXG5cdFx0dmFyIHN4ID0gc2NhbGUueCwgc3kgPSBzY2FsZS55LCBzeiA9IHNjYWxlLno7XG5cblx0XHR0ZVsgMCBdID0gKCAxIC0gKCB5eSArIHp6ICkgKSAqIHN4O1xuXHRcdHRlWyAxIF0gPSAoIHh5ICsgd3ogKSAqIHN4O1xuXHRcdHRlWyAyIF0gPSAoIHh6IC0gd3kgKSAqIHN4O1xuXHRcdHRlWyAzIF0gPSAwO1xuXG5cdFx0dGVbIDQgXSA9ICggeHkgLSB3eiApICogc3k7XG5cdFx0dGVbIDUgXSA9ICggMSAtICggeHggKyB6eiApICkgKiBzeTtcblx0XHR0ZVsgNiBdID0gKCB5eiArIHd4ICkgKiBzeTtcblx0XHR0ZVsgNyBdID0gMDtcblxuXHRcdHRlWyA4IF0gPSAoIHh6ICsgd3kgKSAqIHN6O1xuXHRcdHRlWyA5IF0gPSAoIHl6IC0gd3ggKSAqIHN6O1xuXHRcdHRlWyAxMCBdID0gKCAxIC0gKCB4eCArIHl5ICkgKSAqIHN6O1xuXHRcdHRlWyAxMSBdID0gMDtcblxuXHRcdHRlWyAxMiBdID0gcG9zaXRpb24ueDtcblx0XHR0ZVsgMTMgXSA9IHBvc2l0aW9uLnk7XG5cdFx0dGVbIDE0IF0gPSBwb3NpdGlvbi56O1xuXHRcdHRlWyAxNSBdID0gMTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZGVjb21wb3NlOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdmVjdG9yID0gbmV3IFZlY3RvcjMoKTtcblx0XHR2YXIgbWF0cml4ID0gbmV3IE1hdHJpeDQoKTtcblxuXHRcdHJldHVybiBmdW5jdGlvbiBkZWNvbXBvc2UoIHBvc2l0aW9uLCBxdWF0ZXJuaW9uLCBzY2FsZSApIHtcblxuXHRcdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cztcblxuXHRcdFx0dmFyIHN4ID0gdmVjdG9yLnNldCggdGVbIDAgXSwgdGVbIDEgXSwgdGVbIDIgXSApLmxlbmd0aCgpO1xuXHRcdFx0dmFyIHN5ID0gdmVjdG9yLnNldCggdGVbIDQgXSwgdGVbIDUgXSwgdGVbIDYgXSApLmxlbmd0aCgpO1xuXHRcdFx0dmFyIHN6ID0gdmVjdG9yLnNldCggdGVbIDggXSwgdGVbIDkgXSwgdGVbIDEwIF0gKS5sZW5ndGgoKTtcblxuXHRcdFx0Ly8gaWYgZGV0ZXJtaW5lIGlzIG5lZ2F0aXZlLCB3ZSBuZWVkIHRvIGludmVydCBvbmUgc2NhbGVcblx0XHRcdHZhciBkZXQgPSB0aGlzLmRldGVybWluYW50KCk7XG5cdFx0XHRpZiAoIGRldCA8IDAgKSBzeCA9IC0gc3g7XG5cblx0XHRcdHBvc2l0aW9uLnggPSB0ZVsgMTIgXTtcblx0XHRcdHBvc2l0aW9uLnkgPSB0ZVsgMTMgXTtcblx0XHRcdHBvc2l0aW9uLnogPSB0ZVsgMTQgXTtcblxuXHRcdFx0Ly8gc2NhbGUgdGhlIHJvdGF0aW9uIHBhcnRcblx0XHRcdG1hdHJpeC5jb3B5KCB0aGlzICk7XG5cblx0XHRcdHZhciBpbnZTWCA9IDEgLyBzeDtcblx0XHRcdHZhciBpbnZTWSA9IDEgLyBzeTtcblx0XHRcdHZhciBpbnZTWiA9IDEgLyBzejtcblxuXHRcdFx0bWF0cml4LmVsZW1lbnRzWyAwIF0gKj0gaW52U1g7XG5cdFx0XHRtYXRyaXguZWxlbWVudHNbIDEgXSAqPSBpbnZTWDtcblx0XHRcdG1hdHJpeC5lbGVtZW50c1sgMiBdICo9IGludlNYO1xuXG5cdFx0XHRtYXRyaXguZWxlbWVudHNbIDQgXSAqPSBpbnZTWTtcblx0XHRcdG1hdHJpeC5lbGVtZW50c1sgNSBdICo9IGludlNZO1xuXHRcdFx0bWF0cml4LmVsZW1lbnRzWyA2IF0gKj0gaW52U1k7XG5cblx0XHRcdG1hdHJpeC5lbGVtZW50c1sgOCBdICo9IGludlNaO1xuXHRcdFx0bWF0cml4LmVsZW1lbnRzWyA5IF0gKj0gaW52U1o7XG5cdFx0XHRtYXRyaXguZWxlbWVudHNbIDEwIF0gKj0gaW52U1o7XG5cblx0XHRcdHF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KCBtYXRyaXggKTtcblxuXHRcdFx0c2NhbGUueCA9IHN4O1xuXHRcdFx0c2NhbGUueSA9IHN5O1xuXHRcdFx0c2NhbGUueiA9IHN6O1xuXG5cdFx0XHRyZXR1cm4gdGhpcztcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdG1ha2VQZXJzcGVjdGl2ZTogZnVuY3Rpb24gKCBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIG5lYXIsIGZhciApIHtcblxuXHRcdGlmICggZmFyID09PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdGNvbnNvbGUud2FybiggJ1RIUkVFLk1hdHJpeDQ6IC5tYWtlUGVyc3BlY3RpdmUoKSBoYXMgYmVlbiByZWRlZmluZWQgYW5kIGhhcyBhIG5ldyBzaWduYXR1cmUuIFBsZWFzZSBjaGVjayB0aGUgZG9jcy4nICk7XG5cblx0XHR9XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXHRcdHZhciB4ID0gMiAqIG5lYXIgLyAoIHJpZ2h0IC0gbGVmdCApO1xuXHRcdHZhciB5ID0gMiAqIG5lYXIgLyAoIHRvcCAtIGJvdHRvbSApO1xuXG5cdFx0dmFyIGEgPSAoIHJpZ2h0ICsgbGVmdCApIC8gKCByaWdodCAtIGxlZnQgKTtcblx0XHR2YXIgYiA9ICggdG9wICsgYm90dG9tICkgLyAoIHRvcCAtIGJvdHRvbSApO1xuXHRcdHZhciBjID0gLSAoIGZhciArIG5lYXIgKSAvICggZmFyIC0gbmVhciApO1xuXHRcdHZhciBkID0gLSAyICogZmFyICogbmVhciAvICggZmFyIC0gbmVhciApO1xuXG5cdFx0dGVbIDAgXSA9IHg7XHR0ZVsgNCBdID0gMDtcdHRlWyA4IF0gPSBhO1x0dGVbIDEyIF0gPSAwO1xuXHRcdHRlWyAxIF0gPSAwO1x0dGVbIDUgXSA9IHk7XHR0ZVsgOSBdID0gYjtcdHRlWyAxMyBdID0gMDtcblx0XHR0ZVsgMiBdID0gMDtcdHRlWyA2IF0gPSAwO1x0dGVbIDEwIF0gPSBjO1x0dGVbIDE0IF0gPSBkO1xuXHRcdHRlWyAzIF0gPSAwO1x0dGVbIDcgXSA9IDA7XHR0ZVsgMTEgXSA9IC0gMTtcdHRlWyAxNSBdID0gMDtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0bWFrZU9ydGhvZ3JhcGhpYzogZnVuY3Rpb24gKCBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIG5lYXIsIGZhciApIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cdFx0dmFyIHcgPSAxLjAgLyAoIHJpZ2h0IC0gbGVmdCApO1xuXHRcdHZhciBoID0gMS4wIC8gKCB0b3AgLSBib3R0b20gKTtcblx0XHR2YXIgcCA9IDEuMCAvICggZmFyIC0gbmVhciApO1xuXG5cdFx0dmFyIHggPSAoIHJpZ2h0ICsgbGVmdCApICogdztcblx0XHR2YXIgeSA9ICggdG9wICsgYm90dG9tICkgKiBoO1xuXHRcdHZhciB6ID0gKCBmYXIgKyBuZWFyICkgKiBwO1xuXG5cdFx0dGVbIDAgXSA9IDIgKiB3O1x0dGVbIDQgXSA9IDA7XHR0ZVsgOCBdID0gMDtcdHRlWyAxMiBdID0gLSB4O1xuXHRcdHRlWyAxIF0gPSAwO1x0dGVbIDUgXSA9IDIgKiBoO1x0dGVbIDkgXSA9IDA7XHR0ZVsgMTMgXSA9IC0geTtcblx0XHR0ZVsgMiBdID0gMDtcdHRlWyA2IF0gPSAwO1x0dGVbIDEwIF0gPSAtIDIgKiBwO1x0dGVbIDE0IF0gPSAtIHo7XG5cdFx0dGVbIDMgXSA9IDA7XHR0ZVsgNyBdID0gMDtcdHRlWyAxMSBdID0gMDtcdHRlWyAxNSBdID0gMTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZXF1YWxzOiBmdW5jdGlvbiAoIG1hdHJpeCApIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cdFx0dmFyIG1lID0gbWF0cml4LmVsZW1lbnRzO1xuXG5cdFx0Zm9yICggdmFyIGkgPSAwOyBpIDwgMTY7IGkgKysgKSB7XG5cblx0XHRcdGlmICggdGVbIGkgXSAhPT0gbWVbIGkgXSApIHJldHVybiBmYWxzZTtcblxuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXG5cdH0sXG5cblx0ZnJvbUFycmF5OiBmdW5jdGlvbiAoIGFycmF5LCBvZmZzZXQgKSB7XG5cblx0XHRpZiAoIG9mZnNldCA9PT0gdW5kZWZpbmVkICkgb2Zmc2V0ID0gMDtcblxuXHRcdGZvciAoIHZhciBpID0gMDsgaSA8IDE2OyBpICsrICkge1xuXG5cdFx0XHR0aGlzLmVsZW1lbnRzWyBpIF0gPSBhcnJheVsgaSArIG9mZnNldCBdO1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHR0b0FycmF5OiBmdW5jdGlvbiAoIGFycmF5LCBvZmZzZXQgKSB7XG5cblx0XHRpZiAoIGFycmF5ID09PSB1bmRlZmluZWQgKSBhcnJheSA9IFtdO1xuXHRcdGlmICggb2Zmc2V0ID09PSB1bmRlZmluZWQgKSBvZmZzZXQgPSAwO1xuXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cztcblxuXHRcdGFycmF5WyBvZmZzZXQgXSA9IHRlWyAwIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDEgXSA9IHRlWyAxIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDIgXSA9IHRlWyAyIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDMgXSA9IHRlWyAzIF07XG5cblx0XHRhcnJheVsgb2Zmc2V0ICsgNCBdID0gdGVbIDQgXTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgNSBdID0gdGVbIDUgXTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgNiBdID0gdGVbIDYgXTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgNyBdID0gdGVbIDcgXTtcblxuXHRcdGFycmF5WyBvZmZzZXQgKyA4IF0gPSB0ZVsgOCBdO1xuXHRcdGFycmF5WyBvZmZzZXQgKyA5IF0gPSB0ZVsgOSBdO1xuXHRcdGFycmF5WyBvZmZzZXQgKyAxMCBdID0gdGVbIDEwIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDExIF0gPSB0ZVsgMTEgXTtcblxuXHRcdGFycmF5WyBvZmZzZXQgKyAxMiBdID0gdGVbIDEyIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDEzIF0gPSB0ZVsgMTMgXTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMTQgXSA9IHRlWyAxNCBdO1xuXHRcdGFycmF5WyBvZmZzZXQgKyAxNSBdID0gdGVbIDE1IF07XG5cblx0XHRyZXR1cm4gYXJyYXk7XG5cblx0fVxuXG59ICk7XG5cblxuZXhwb3J0IHsgTWF0cml4NCB9OyJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/three/Quaternion.js",
    "content": "/**\n * @author mikael emtinger / http://gomo.se/\n * @author alteredq / http://alteredqualia.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author bhouston / http://clara.io\n */\nimport { _Math } from './Math.js';\n\nfunction Quaternion(x, y, z, w) {\n  this._x = x || 0;\n  this._y = y || 0;\n  this._z = z || 0;\n  this._w = w !== undefined ? w : 1;\n}\n\nObject.assign(Quaternion, {\n  slerp: function (qa, qb, qm, t) {\n    return qm.copy(qa).slerp(qb, t);\n  },\n  slerpFlat: function (dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\n    // fuzz-free, array-based Quaternion SLERP operation\n    var x0 = src0[srcOffset0 + 0],\n        y0 = src0[srcOffset0 + 1],\n        z0 = src0[srcOffset0 + 2],\n        w0 = src0[srcOffset0 + 3],\n        x1 = src1[srcOffset1 + 0],\n        y1 = src1[srcOffset1 + 1],\n        z1 = src1[srcOffset1 + 2],\n        w1 = src1[srcOffset1 + 3];\n\n    if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\n      var s = 1 - t,\n          cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n          dir = cos >= 0 ? 1 : -1,\n          sqrSin = 1 - cos * cos; // Skip the Slerp for tiny steps to avoid numeric problems:\n\n      if (sqrSin > Number.EPSILON) {\n        var sin = Math.sqrt(sqrSin),\n            len = Math.atan2(sin, cos * dir);\n        s = Math.sin(s * len) / sin;\n        t = Math.sin(t * len) / sin;\n      }\n\n      var tDir = t * dir;\n      x0 = x0 * s + x1 * tDir;\n      y0 = y0 * s + y1 * tDir;\n      z0 = z0 * s + z1 * tDir;\n      w0 = w0 * s + w1 * tDir; // Normalize in case we just did a lerp:\n\n      if (s === 1 - t) {\n        var f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\n        x0 *= f;\n        y0 *= f;\n        z0 *= f;\n        w0 *= f;\n      }\n    }\n\n    dst[dstOffset] = x0;\n    dst[dstOffset + 1] = y0;\n    dst[dstOffset + 2] = z0;\n    dst[dstOffset + 3] = w0;\n  }\n});\nObject.defineProperties(Quaternion.prototype, {\n  x: {\n    get: function () {\n      return this._x;\n    },\n    set: function (value) {\n      this._x = value;\n\n      this._onChangeCallback();\n    }\n  },\n  y: {\n    get: function () {\n      return this._y;\n    },\n    set: function (value) {\n      this._y = value;\n\n      this._onChangeCallback();\n    }\n  },\n  z: {\n    get: function () {\n      return this._z;\n    },\n    set: function (value) {\n      this._z = value;\n\n      this._onChangeCallback();\n    }\n  },\n  w: {\n    get: function () {\n      return this._w;\n    },\n    set: function (value) {\n      this._w = value;\n\n      this._onChangeCallback();\n    }\n  }\n});\nObject.assign(Quaternion.prototype, {\n  isQuaternion: true,\n  set: function (x, y, z, w) {\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._w = w;\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  clone: function () {\n    return new this.constructor(this._x, this._y, this._z, this._w);\n  },\n  copy: function (quaternion) {\n    this._x = quaternion.x;\n    this._y = quaternion.y;\n    this._z = quaternion.z;\n    this._w = quaternion.w;\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  setFromEuler: function (euler, update) {\n    if (!(euler && euler.isEuler)) {\n      throw new Error('THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.');\n    }\n\n    var x = euler._x,\n        y = euler._y,\n        z = euler._z,\n        order = euler.order; // http://www.mathworks.com/matlabcentral/fileexchange/\n    // \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n    //\tcontent/SpinCalc.m\n\n    var cos = Math.cos;\n    var sin = Math.sin;\n    var c1 = cos(x / 2);\n    var c2 = cos(y / 2);\n    var c3 = cos(z / 2);\n    var s1 = sin(x / 2);\n    var s2 = sin(y / 2);\n    var s3 = sin(z / 2);\n\n    if (order === 'XYZ') {\n      this._x = s1 * c2 * c3 + c1 * s2 * s3;\n      this._y = c1 * s2 * c3 - s1 * c2 * s3;\n      this._z = c1 * c2 * s3 + s1 * s2 * c3;\n      this._w = c1 * c2 * c3 - s1 * s2 * s3;\n    } else if (order === 'YXZ') {\n      this._x = s1 * c2 * c3 + c1 * s2 * s3;\n      this._y = c1 * s2 * c3 - s1 * c2 * s3;\n      this._z = c1 * c2 * s3 - s1 * s2 * c3;\n      this._w = c1 * c2 * c3 + s1 * s2 * s3;\n    } else if (order === 'ZXY') {\n      this._x = s1 * c2 * c3 - c1 * s2 * s3;\n      this._y = c1 * s2 * c3 + s1 * c2 * s3;\n      this._z = c1 * c2 * s3 + s1 * s2 * c3;\n      this._w = c1 * c2 * c3 - s1 * s2 * s3;\n    } else if (order === 'ZYX') {\n      this._x = s1 * c2 * c3 - c1 * s2 * s3;\n      this._y = c1 * s2 * c3 + s1 * c2 * s3;\n      this._z = c1 * c2 * s3 - s1 * s2 * c3;\n      this._w = c1 * c2 * c3 + s1 * s2 * s3;\n    } else if (order === 'YZX') {\n      this._x = s1 * c2 * c3 + c1 * s2 * s3;\n      this._y = c1 * s2 * c3 + s1 * c2 * s3;\n      this._z = c1 * c2 * s3 - s1 * s2 * c3;\n      this._w = c1 * c2 * c3 - s1 * s2 * s3;\n    } else if (order === 'XZY') {\n      this._x = s1 * c2 * c3 - c1 * s2 * s3;\n      this._y = c1 * s2 * c3 - s1 * c2 * s3;\n      this._z = c1 * c2 * s3 + s1 * s2 * c3;\n      this._w = c1 * c2 * c3 + s1 * s2 * s3;\n    }\n\n    if (update !== false) this._onChangeCallback();\n    return this;\n  },\n  setFromAxisAngle: function (axis, angle) {\n    // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n    // assumes axis is normalized\n    var halfAngle = angle / 2,\n        s = Math.sin(halfAngle);\n    this._x = axis.x * s;\n    this._y = axis.y * s;\n    this._z = axis.z * s;\n    this._w = Math.cos(halfAngle);\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  setFromRotationMatrix: function (m) {\n    // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n    // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n    var te = m.elements,\n        m11 = te[0],\n        m12 = te[4],\n        m13 = te[8],\n        m21 = te[1],\n        m22 = te[5],\n        m23 = te[9],\n        m31 = te[2],\n        m32 = te[6],\n        m33 = te[10],\n        trace = m11 + m22 + m33,\n        s;\n\n    if (trace > 0) {\n      s = 0.5 / Math.sqrt(trace + 1.0);\n      this._w = 0.25 / s;\n      this._x = (m32 - m23) * s;\n      this._y = (m13 - m31) * s;\n      this._z = (m21 - m12) * s;\n    } else if (m11 > m22 && m11 > m33) {\n      s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33);\n      this._w = (m32 - m23) / s;\n      this._x = 0.25 * s;\n      this._y = (m12 + m21) / s;\n      this._z = (m13 + m31) / s;\n    } else if (m22 > m33) {\n      s = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33);\n      this._w = (m13 - m31) / s;\n      this._x = (m12 + m21) / s;\n      this._y = 0.25 * s;\n      this._z = (m23 + m32) / s;\n    } else {\n      s = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22);\n      this._w = (m21 - m12) / s;\n      this._x = (m13 + m31) / s;\n      this._y = (m23 + m32) / s;\n      this._z = 0.25 * s;\n    }\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  setFromUnitVectors: function (vFrom, vTo) {\n    // assumes direction vectors vFrom and vTo are normalized\n    var EPS = 0.000001;\n    var r = vFrom.dot(vTo) + 1;\n\n    if (r < EPS) {\n      r = 0;\n\n      if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n        this._x = -vFrom.y;\n        this._y = vFrom.x;\n        this._z = 0;\n        this._w = r;\n      } else {\n        this._x = 0;\n        this._y = -vFrom.z;\n        this._z = vFrom.y;\n        this._w = r;\n      }\n    } else {\n      // crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n      this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n      this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n      this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n      this._w = r;\n    }\n\n    return this.normalize();\n  },\n  angleTo: function (q) {\n    return 2 * Math.acos(Math.abs(_Math.clamp(this.dot(q), -1, 1)));\n  },\n  rotateTowards: function (q, step) {\n    var angle = this.angleTo(q);\n    if (angle === 0) return this;\n    var t = Math.min(1, step / angle);\n    this.slerp(q, t);\n    return this;\n  },\n  inverse: function () {\n    // quaternion is assumed to have unit length\n    return this.conjugate();\n  },\n  conjugate: function () {\n    this._x *= -1;\n    this._y *= -1;\n    this._z *= -1;\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  dot: function (v) {\n    return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n  },\n  lengthSq: function () {\n    return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n  },\n  length: function () {\n    return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n  },\n  normalize: function () {\n    var l = this.length();\n\n    if (l === 0) {\n      this._x = 0;\n      this._y = 0;\n      this._z = 0;\n      this._w = 1;\n    } else {\n      l = 1 / l;\n      this._x = this._x * l;\n      this._y = this._y * l;\n      this._z = this._z * l;\n      this._w = this._w * l;\n    }\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  multiply: function (q, p) {\n    if (p !== undefined) {\n      console.warn('THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.');\n      return this.multiplyQuaternions(q, p);\n    }\n\n    return this.multiplyQuaternions(this, q);\n  },\n  premultiply: function (q) {\n    return this.multiplyQuaternions(q, this);\n  },\n  multiplyQuaternions: function (a, b) {\n    // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n    var qax = a._x,\n        qay = a._y,\n        qaz = a._z,\n        qaw = a._w;\n    var qbx = b._x,\n        qby = b._y,\n        qbz = b._z,\n        qbw = b._w;\n    this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n    this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n    this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n    this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  slerp: function (qb, t) {\n    if (t === 0) return this;\n    if (t === 1) return this.copy(qb);\n    var x = this._x,\n        y = this._y,\n        z = this._z,\n        w = this._w; // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n    var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n    if (cosHalfTheta < 0) {\n      this._w = -qb._w;\n      this._x = -qb._x;\n      this._y = -qb._y;\n      this._z = -qb._z;\n      cosHalfTheta = -cosHalfTheta;\n    } else {\n      this.copy(qb);\n    }\n\n    if (cosHalfTheta >= 1.0) {\n      this._w = w;\n      this._x = x;\n      this._y = y;\n      this._z = z;\n      return this;\n    }\n\n    var sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n    if (sqrSinHalfTheta <= Number.EPSILON) {\n      var s = 1 - t;\n      this._w = s * w + t * this._w;\n      this._x = s * x + t * this._x;\n      this._y = s * y + t * this._y;\n      this._z = s * z + t * this._z;\n      this.normalize();\n\n      this._onChangeCallback();\n\n      return this;\n    }\n\n    var sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n    var halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n    var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta,\n        ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n    this._w = w * ratioA + this._w * ratioB;\n    this._x = x * ratioA + this._x * ratioB;\n    this._y = y * ratioA + this._y * ratioB;\n    this._z = z * ratioA + this._z * ratioB;\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  equals: function (quaternion) {\n    return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\n  },\n  fromArray: function (array, offset) {\n    if (offset === undefined) offset = 0;\n    this._x = array[offset];\n    this._y = array[offset + 1];\n    this._z = array[offset + 2];\n    this._w = array[offset + 3];\n\n    this._onChangeCallback();\n\n    return this;\n  },\n  toArray: function (array, offset) {\n    if (array === undefined) array = [];\n    if (offset === undefined) offset = 0;\n    array[offset] = this._x;\n    array[offset + 1] = this._y;\n    array[offset + 2] = this._z;\n    array[offset + 3] = this._w;\n    return array;\n  },\n  _onChange: function (callback) {\n    this._onChangeCallback = callback;\n    return this;\n  },\n  _onChangeCallback: function () {}\n});\nexport { Quaternion };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL1F1YXRlcm5pb24uanMiXSwibmFtZXMiOlsiX01hdGgiLCJRdWF0ZXJuaW9uIiwieCIsInkiLCJ6IiwidyIsIl94IiwiX3kiLCJfeiIsIl93IiwidW5kZWZpbmVkIiwiT2JqZWN0IiwiYXNzaWduIiwic2xlcnAiLCJxYSIsInFiIiwicW0iLCJ0IiwiY29weSIsInNsZXJwRmxhdCIsImRzdCIsImRzdE9mZnNldCIsInNyYzAiLCJzcmNPZmZzZXQwIiwic3JjMSIsInNyY09mZnNldDEiLCJ4MCIsInkwIiwiejAiLCJ3MCIsIngxIiwieTEiLCJ6MSIsIncxIiwicyIsImNvcyIsImRpciIsInNxclNpbiIsIk51bWJlciIsIkVQU0lMT04iLCJzaW4iLCJNYXRoIiwic3FydCIsImxlbiIsImF0YW4yIiwidERpciIsImYiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJvdG90eXBlIiwiZ2V0Iiwic2V0IiwidmFsdWUiLCJfb25DaGFuZ2VDYWxsYmFjayIsImlzUXVhdGVybmlvbiIsImNsb25lIiwiY29uc3RydWN0b3IiLCJxdWF0ZXJuaW9uIiwic2V0RnJvbUV1bGVyIiwiZXVsZXIiLCJ1cGRhdGUiLCJpc0V1bGVyIiwiRXJyb3IiLCJvcmRlciIsImMxIiwiYzIiLCJjMyIsInMxIiwiczIiLCJzMyIsInNldEZyb21BeGlzQW5nbGUiLCJheGlzIiwiYW5nbGUiLCJoYWxmQW5nbGUiLCJzZXRGcm9tUm90YXRpb25NYXRyaXgiLCJtIiwidGUiLCJlbGVtZW50cyIsIm0xMSIsIm0xMiIsIm0xMyIsIm0yMSIsIm0yMiIsIm0yMyIsIm0zMSIsIm0zMiIsIm0zMyIsInRyYWNlIiwic2V0RnJvbVVuaXRWZWN0b3JzIiwidkZyb20iLCJ2VG8iLCJFUFMiLCJyIiwiZG90IiwiYWJzIiwibm9ybWFsaXplIiwiYW5nbGVUbyIsInEiLCJhY29zIiwiY2xhbXAiLCJyb3RhdGVUb3dhcmRzIiwic3RlcCIsIm1pbiIsImludmVyc2UiLCJjb25qdWdhdGUiLCJ2IiwibGVuZ3RoU3EiLCJsZW5ndGgiLCJsIiwibXVsdGlwbHkiLCJwIiwiY29uc29sZSIsIndhcm4iLCJtdWx0aXBseVF1YXRlcm5pb25zIiwicHJlbXVsdGlwbHkiLCJhIiwiYiIsInFheCIsInFheSIsInFheiIsInFhdyIsInFieCIsInFieSIsInFieiIsInFidyIsImNvc0hhbGZUaGV0YSIsInNxclNpbkhhbGZUaGV0YSIsInNpbkhhbGZUaGV0YSIsImhhbGZUaGV0YSIsInJhdGlvQSIsInJhdGlvQiIsImVxdWFscyIsImZyb21BcnJheSIsImFycmF5Iiwib2Zmc2V0IiwidG9BcnJheSIsIl9vbkNoYW5nZSIsImNhbGxiYWNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxTQUFTQSxLQUFULFFBQXNCLFdBQXRCOztBQUVBLFNBQVNDLFVBQVQsQ0FBcUJDLENBQXJCLEVBQXdCQyxDQUF4QixFQUEyQkMsQ0FBM0IsRUFBOEJDLENBQTlCLEVBQWtDO0FBRWpDLE9BQUtDLEVBQUwsR0FBVUosQ0FBQyxJQUFJLENBQWY7QUFDQSxPQUFLSyxFQUFMLEdBQVVKLENBQUMsSUFBSSxDQUFmO0FBQ0EsT0FBS0ssRUFBTCxHQUFVSixDQUFDLElBQUksQ0FBZjtBQUNBLE9BQUtLLEVBQUwsR0FBWUosQ0FBQyxLQUFLSyxTQUFSLEdBQXNCTCxDQUF0QixHQUEwQixDQUFwQztBQUVBOztBQUVETSxNQUFNLENBQUNDLE1BQVAsQ0FBZVgsVUFBZixFQUEyQjtBQUUxQlksRUFBQUEsS0FBSyxFQUFFLFVBQVdDLEVBQVgsRUFBZUMsRUFBZixFQUFtQkMsRUFBbkIsRUFBdUJDLENBQXZCLEVBQTJCO0FBRWpDLFdBQU9ELEVBQUUsQ0FBQ0UsSUFBSCxDQUFTSixFQUFULEVBQWNELEtBQWQsQ0FBcUJFLEVBQXJCLEVBQXlCRSxDQUF6QixDQUFQO0FBRUEsR0FOeUI7QUFRMUJFLEVBQUFBLFNBQVMsRUFBRSxVQUFXQyxHQUFYLEVBQWdCQyxTQUFoQixFQUEyQkMsSUFBM0IsRUFBaUNDLFVBQWpDLEVBQTZDQyxJQUE3QyxFQUFtREMsVUFBbkQsRUFBK0RSLENBQS9ELEVBQW1FO0FBRTdFO0FBRUEsUUFBSVMsRUFBRSxHQUFHSixJQUFJLENBQUVDLFVBQVUsR0FBRyxDQUFmLENBQWI7QUFBQSxRQUNDSSxFQUFFLEdBQUdMLElBQUksQ0FBRUMsVUFBVSxHQUFHLENBQWYsQ0FEVjtBQUFBLFFBRUNLLEVBQUUsR0FBR04sSUFBSSxDQUFFQyxVQUFVLEdBQUcsQ0FBZixDQUZWO0FBQUEsUUFHQ00sRUFBRSxHQUFHUCxJQUFJLENBQUVDLFVBQVUsR0FBRyxDQUFmLENBSFY7QUFBQSxRQUtDTyxFQUFFLEdBQUdOLElBQUksQ0FBRUMsVUFBVSxHQUFHLENBQWYsQ0FMVjtBQUFBLFFBTUNNLEVBQUUsR0FBR1AsSUFBSSxDQUFFQyxVQUFVLEdBQUcsQ0FBZixDQU5WO0FBQUEsUUFPQ08sRUFBRSxHQUFHUixJQUFJLENBQUVDLFVBQVUsR0FBRyxDQUFmLENBUFY7QUFBQSxRQVFDUSxFQUFFLEdBQUdULElBQUksQ0FBRUMsVUFBVSxHQUFHLENBQWYsQ0FSVjs7QUFVQSxRQUFLSSxFQUFFLEtBQUtJLEVBQVAsSUFBYVAsRUFBRSxLQUFLSSxFQUFwQixJQUEwQkgsRUFBRSxLQUFLSSxFQUFqQyxJQUF1Q0gsRUFBRSxLQUFLSSxFQUFuRCxFQUF3RDtBQUV2RCxVQUFJRSxDQUFDLEdBQUcsSUFBSWpCLENBQVo7QUFBQSxVQUVDa0IsR0FBRyxHQUFHVCxFQUFFLEdBQUdJLEVBQUwsR0FBVUgsRUFBRSxHQUFHSSxFQUFmLEdBQW9CSCxFQUFFLEdBQUdJLEVBQXpCLEdBQThCSCxFQUFFLEdBQUdJLEVBRjFDO0FBQUEsVUFJQ0csR0FBRyxHQUFLRCxHQUFHLElBQUksQ0FBUCxHQUFXLENBQVgsR0FBZSxDQUFFLENBSjFCO0FBQUEsVUFLQ0UsTUFBTSxHQUFHLElBQUlGLEdBQUcsR0FBR0EsR0FMcEIsQ0FGdUQsQ0FTdkQ7O0FBQ0EsVUFBS0UsTUFBTSxHQUFHQyxNQUFNLENBQUNDLE9BQXJCLEVBQStCO0FBRTlCLFlBQUlDLEdBQUcsR0FBR0MsSUFBSSxDQUFDQyxJQUFMLENBQVdMLE1BQVgsQ0FBVjtBQUFBLFlBQ0NNLEdBQUcsR0FBR0YsSUFBSSxDQUFDRyxLQUFMLENBQVlKLEdBQVosRUFBaUJMLEdBQUcsR0FBR0MsR0FBdkIsQ0FEUDtBQUdBRixRQUFBQSxDQUFDLEdBQUdPLElBQUksQ0FBQ0QsR0FBTCxDQUFVTixDQUFDLEdBQUdTLEdBQWQsSUFBc0JILEdBQTFCO0FBQ0F2QixRQUFBQSxDQUFDLEdBQUd3QixJQUFJLENBQUNELEdBQUwsQ0FBVXZCLENBQUMsR0FBRzBCLEdBQWQsSUFBc0JILEdBQTFCO0FBRUE7O0FBRUQsVUFBSUssSUFBSSxHQUFHNUIsQ0FBQyxHQUFHbUIsR0FBZjtBQUVBVixNQUFBQSxFQUFFLEdBQUdBLEVBQUUsR0FBR1EsQ0FBTCxHQUFTSixFQUFFLEdBQUdlLElBQW5CO0FBQ0FsQixNQUFBQSxFQUFFLEdBQUdBLEVBQUUsR0FBR08sQ0FBTCxHQUFTSCxFQUFFLEdBQUdjLElBQW5CO0FBQ0FqQixNQUFBQSxFQUFFLEdBQUdBLEVBQUUsR0FBR00sQ0FBTCxHQUFTRixFQUFFLEdBQUdhLElBQW5CO0FBQ0FoQixNQUFBQSxFQUFFLEdBQUdBLEVBQUUsR0FBR0ssQ0FBTCxHQUFTRCxFQUFFLEdBQUdZLElBQW5CLENBekJ1RCxDQTJCdkQ7O0FBQ0EsVUFBS1gsQ0FBQyxLQUFLLElBQUlqQixDQUFmLEVBQW1CO0FBRWxCLFlBQUk2QixDQUFDLEdBQUcsSUFBSUwsSUFBSSxDQUFDQyxJQUFMLENBQVdoQixFQUFFLEdBQUdBLEVBQUwsR0FBVUMsRUFBRSxHQUFHQSxFQUFmLEdBQW9CQyxFQUFFLEdBQUdBLEVBQXpCLEdBQThCQyxFQUFFLEdBQUdBLEVBQTlDLENBQVo7QUFFQUgsUUFBQUEsRUFBRSxJQUFJb0IsQ0FBTjtBQUNBbkIsUUFBQUEsRUFBRSxJQUFJbUIsQ0FBTjtBQUNBbEIsUUFBQUEsRUFBRSxJQUFJa0IsQ0FBTjtBQUNBakIsUUFBQUEsRUFBRSxJQUFJaUIsQ0FBTjtBQUVBO0FBRUQ7O0FBRUQxQixJQUFBQSxHQUFHLENBQUVDLFNBQUYsQ0FBSCxHQUFtQkssRUFBbkI7QUFDQU4sSUFBQUEsR0FBRyxDQUFFQyxTQUFTLEdBQUcsQ0FBZCxDQUFILEdBQXVCTSxFQUF2QjtBQUNBUCxJQUFBQSxHQUFHLENBQUVDLFNBQVMsR0FBRyxDQUFkLENBQUgsR0FBdUJPLEVBQXZCO0FBQ0FSLElBQUFBLEdBQUcsQ0FBRUMsU0FBUyxHQUFHLENBQWQsQ0FBSCxHQUF1QlEsRUFBdkI7QUFFQTtBQXBFeUIsQ0FBM0I7QUF3RUFsQixNQUFNLENBQUNvQyxnQkFBUCxDQUF5QjlDLFVBQVUsQ0FBQytDLFNBQXBDLEVBQStDO0FBRTlDOUMsRUFBQUEsQ0FBQyxFQUFFO0FBRUYrQyxJQUFBQSxHQUFHLEVBQUUsWUFBWTtBQUVoQixhQUFPLEtBQUszQyxFQUFaO0FBRUEsS0FOQztBQVFGNEMsSUFBQUEsR0FBRyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFdkIsV0FBSzdDLEVBQUwsR0FBVTZDLEtBQVY7O0FBQ0EsV0FBS0MsaUJBQUw7QUFFQTtBQWJDLEdBRjJDO0FBbUI5Q2pELEVBQUFBLENBQUMsRUFBRTtBQUVGOEMsSUFBQUEsR0FBRyxFQUFFLFlBQVk7QUFFaEIsYUFBTyxLQUFLMUMsRUFBWjtBQUVBLEtBTkM7QUFRRjJDLElBQUFBLEdBQUcsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRXZCLFdBQUs1QyxFQUFMLEdBQVU0QyxLQUFWOztBQUNBLFdBQUtDLGlCQUFMO0FBRUE7QUFiQyxHQW5CMkM7QUFvQzlDaEQsRUFBQUEsQ0FBQyxFQUFFO0FBRUY2QyxJQUFBQSxHQUFHLEVBQUUsWUFBWTtBQUVoQixhQUFPLEtBQUt6QyxFQUFaO0FBRUEsS0FOQztBQVFGMEMsSUFBQUEsR0FBRyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFdkIsV0FBSzNDLEVBQUwsR0FBVTJDLEtBQVY7O0FBQ0EsV0FBS0MsaUJBQUw7QUFFQTtBQWJDLEdBcEMyQztBQXFEOUMvQyxFQUFBQSxDQUFDLEVBQUU7QUFFRjRDLElBQUFBLEdBQUcsRUFBRSxZQUFZO0FBRWhCLGFBQU8sS0FBS3hDLEVBQVo7QUFFQSxLQU5DO0FBUUZ5QyxJQUFBQSxHQUFHLEVBQUUsVUFBV0MsS0FBWCxFQUFtQjtBQUV2QixXQUFLMUMsRUFBTCxHQUFVMEMsS0FBVjs7QUFDQSxXQUFLQyxpQkFBTDtBQUVBO0FBYkM7QUFyRDJDLENBQS9DO0FBd0VBekMsTUFBTSxDQUFDQyxNQUFQLENBQWVYLFVBQVUsQ0FBQytDLFNBQTFCLEVBQXFDO0FBRXBDSyxFQUFBQSxZQUFZLEVBQUUsSUFGc0I7QUFJcENILEVBQUFBLEdBQUcsRUFBRSxVQUFXaEQsQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQixFQUFvQkMsQ0FBcEIsRUFBd0I7QUFFNUIsU0FBS0MsRUFBTCxHQUFVSixDQUFWO0FBQ0EsU0FBS0ssRUFBTCxHQUFVSixDQUFWO0FBQ0EsU0FBS0ssRUFBTCxHQUFVSixDQUFWO0FBQ0EsU0FBS0ssRUFBTCxHQUFVSixDQUFWOztBQUVBLFNBQUsrQyxpQkFBTDs7QUFFQSxXQUFPLElBQVA7QUFFQSxHQWZtQztBQWlCcENFLEVBQUFBLEtBQUssRUFBRSxZQUFZO0FBRWxCLFdBQU8sSUFBSSxLQUFLQyxXQUFULENBQXNCLEtBQUtqRCxFQUEzQixFQUErQixLQUFLQyxFQUFwQyxFQUF3QyxLQUFLQyxFQUE3QyxFQUFpRCxLQUFLQyxFQUF0RCxDQUFQO0FBRUEsR0FyQm1DO0FBdUJwQ1MsRUFBQUEsSUFBSSxFQUFFLFVBQVdzQyxVQUFYLEVBQXdCO0FBRTdCLFNBQUtsRCxFQUFMLEdBQVVrRCxVQUFVLENBQUN0RCxDQUFyQjtBQUNBLFNBQUtLLEVBQUwsR0FBVWlELFVBQVUsQ0FBQ3JELENBQXJCO0FBQ0EsU0FBS0ssRUFBTCxHQUFVZ0QsVUFBVSxDQUFDcEQsQ0FBckI7QUFDQSxTQUFLSyxFQUFMLEdBQVUrQyxVQUFVLENBQUNuRCxDQUFyQjs7QUFFQSxTQUFLK0MsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FsQ21DO0FBb0NwQ0ssRUFBQUEsWUFBWSxFQUFFLFVBQVdDLEtBQVgsRUFBa0JDLE1BQWxCLEVBQTJCO0FBRXhDLFFBQUssRUFBSUQsS0FBSyxJQUFJQSxLQUFLLENBQUNFLE9BQW5CLENBQUwsRUFBb0M7QUFFbkMsWUFBTSxJQUFJQyxLQUFKLENBQVcsa0dBQVgsQ0FBTjtBQUVBOztBQUVELFFBQUkzRCxDQUFDLEdBQUd3RCxLQUFLLENBQUNwRCxFQUFkO0FBQUEsUUFBa0JILENBQUMsR0FBR3VELEtBQUssQ0FBQ25ELEVBQTVCO0FBQUEsUUFBZ0NILENBQUMsR0FBR3NELEtBQUssQ0FBQ2xELEVBQTFDO0FBQUEsUUFBOENzRCxLQUFLLEdBQUdKLEtBQUssQ0FBQ0ksS0FBNUQsQ0FSd0MsQ0FVeEM7QUFDQTtBQUNBOztBQUVBLFFBQUkzQixHQUFHLEdBQUdNLElBQUksQ0FBQ04sR0FBZjtBQUNBLFFBQUlLLEdBQUcsR0FBR0MsSUFBSSxDQUFDRCxHQUFmO0FBRUEsUUFBSXVCLEVBQUUsR0FBRzVCLEdBQUcsQ0FBRWpDLENBQUMsR0FBRyxDQUFOLENBQVo7QUFDQSxRQUFJOEQsRUFBRSxHQUFHN0IsR0FBRyxDQUFFaEMsQ0FBQyxHQUFHLENBQU4sQ0FBWjtBQUNBLFFBQUk4RCxFQUFFLEdBQUc5QixHQUFHLENBQUUvQixDQUFDLEdBQUcsQ0FBTixDQUFaO0FBRUEsUUFBSThELEVBQUUsR0FBRzFCLEdBQUcsQ0FBRXRDLENBQUMsR0FBRyxDQUFOLENBQVo7QUFDQSxRQUFJaUUsRUFBRSxHQUFHM0IsR0FBRyxDQUFFckMsQ0FBQyxHQUFHLENBQU4sQ0FBWjtBQUNBLFFBQUlpRSxFQUFFLEdBQUc1QixHQUFHLENBQUVwQyxDQUFDLEdBQUcsQ0FBTixDQUFaOztBQUVBLFFBQUswRCxLQUFLLEtBQUssS0FBZixFQUF1QjtBQUV0QixXQUFLeEQsRUFBTCxHQUFVNEQsRUFBRSxHQUFHRixFQUFMLEdBQVVDLEVBQVYsR0FBZUYsRUFBRSxHQUFHSSxFQUFMLEdBQVVDLEVBQW5DO0FBQ0EsV0FBSzdELEVBQUwsR0FBVXdELEVBQUUsR0FBR0ksRUFBTCxHQUFVRixFQUFWLEdBQWVDLEVBQUUsR0FBR0YsRUFBTCxHQUFVSSxFQUFuQztBQUNBLFdBQUs1RCxFQUFMLEdBQVV1RCxFQUFFLEdBQUdDLEVBQUwsR0FBVUksRUFBVixHQUFlRixFQUFFLEdBQUdDLEVBQUwsR0FBVUYsRUFBbkM7QUFDQSxXQUFLeEQsRUFBTCxHQUFVc0QsRUFBRSxHQUFHQyxFQUFMLEdBQVVDLEVBQVYsR0FBZUMsRUFBRSxHQUFHQyxFQUFMLEdBQVVDLEVBQW5DO0FBRUEsS0FQRCxNQU9PLElBQUtOLEtBQUssS0FBSyxLQUFmLEVBQXVCO0FBRTdCLFdBQUt4RCxFQUFMLEdBQVU0RCxFQUFFLEdBQUdGLEVBQUwsR0FBVUMsRUFBVixHQUFlRixFQUFFLEdBQUdJLEVBQUwsR0FBVUMsRUFBbkM7QUFDQSxXQUFLN0QsRUFBTCxHQUFVd0QsRUFBRSxHQUFHSSxFQUFMLEdBQVVGLEVBQVYsR0FBZUMsRUFBRSxHQUFHRixFQUFMLEdBQVVJLEVBQW5DO0FBQ0EsV0FBSzVELEVBQUwsR0FBVXVELEVBQUUsR0FBR0MsRUFBTCxHQUFVSSxFQUFWLEdBQWVGLEVBQUUsR0FBR0MsRUFBTCxHQUFVRixFQUFuQztBQUNBLFdBQUt4RCxFQUFMLEdBQVVzRCxFQUFFLEdBQUdDLEVBQUwsR0FBVUMsRUFBVixHQUFlQyxFQUFFLEdBQUdDLEVBQUwsR0FBVUMsRUFBbkM7QUFFQSxLQVBNLE1BT0EsSUFBS04sS0FBSyxLQUFLLEtBQWYsRUFBdUI7QUFFN0IsV0FBS3hELEVBQUwsR0FBVTRELEVBQUUsR0FBR0YsRUFBTCxHQUFVQyxFQUFWLEdBQWVGLEVBQUUsR0FBR0ksRUFBTCxHQUFVQyxFQUFuQztBQUNBLFdBQUs3RCxFQUFMLEdBQVV3RCxFQUFFLEdBQUdJLEVBQUwsR0FBVUYsRUFBVixHQUFlQyxFQUFFLEdBQUdGLEVBQUwsR0FBVUksRUFBbkM7QUFDQSxXQUFLNUQsRUFBTCxHQUFVdUQsRUFBRSxHQUFHQyxFQUFMLEdBQVVJLEVBQVYsR0FBZUYsRUFBRSxHQUFHQyxFQUFMLEdBQVVGLEVBQW5DO0FBQ0EsV0FBS3hELEVBQUwsR0FBVXNELEVBQUUsR0FBR0MsRUFBTCxHQUFVQyxFQUFWLEdBQWVDLEVBQUUsR0FBR0MsRUFBTCxHQUFVQyxFQUFuQztBQUVBLEtBUE0sTUFPQSxJQUFLTixLQUFLLEtBQUssS0FBZixFQUF1QjtBQUU3QixXQUFLeEQsRUFBTCxHQUFVNEQsRUFBRSxHQUFHRixFQUFMLEdBQVVDLEVBQVYsR0FBZUYsRUFBRSxHQUFHSSxFQUFMLEdBQVVDLEVBQW5DO0FBQ0EsV0FBSzdELEVBQUwsR0FBVXdELEVBQUUsR0FBR0ksRUFBTCxHQUFVRixFQUFWLEdBQWVDLEVBQUUsR0FBR0YsRUFBTCxHQUFVSSxFQUFuQztBQUNBLFdBQUs1RCxFQUFMLEdBQVV1RCxFQUFFLEdBQUdDLEVBQUwsR0FBVUksRUFBVixHQUFlRixFQUFFLEdBQUdDLEVBQUwsR0FBVUYsRUFBbkM7QUFDQSxXQUFLeEQsRUFBTCxHQUFVc0QsRUFBRSxHQUFHQyxFQUFMLEdBQVVDLEVBQVYsR0FBZUMsRUFBRSxHQUFHQyxFQUFMLEdBQVVDLEVBQW5DO0FBRUEsS0FQTSxNQU9BLElBQUtOLEtBQUssS0FBSyxLQUFmLEVBQXVCO0FBRTdCLFdBQUt4RCxFQUFMLEdBQVU0RCxFQUFFLEdBQUdGLEVBQUwsR0FBVUMsRUFBVixHQUFlRixFQUFFLEdBQUdJLEVBQUwsR0FBVUMsRUFBbkM7QUFDQSxXQUFLN0QsRUFBTCxHQUFVd0QsRUFBRSxHQUFHSSxFQUFMLEdBQVVGLEVBQVYsR0FBZUMsRUFBRSxHQUFHRixFQUFMLEdBQVVJLEVBQW5DO0FBQ0EsV0FBSzVELEVBQUwsR0FBVXVELEVBQUUsR0FBR0MsRUFBTCxHQUFVSSxFQUFWLEdBQWVGLEVBQUUsR0FBR0MsRUFBTCxHQUFVRixFQUFuQztBQUNBLFdBQUt4RCxFQUFMLEdBQVVzRCxFQUFFLEdBQUdDLEVBQUwsR0FBVUMsRUFBVixHQUFlQyxFQUFFLEdBQUdDLEVBQUwsR0FBVUMsRUFBbkM7QUFFQSxLQVBNLE1BT0EsSUFBS04sS0FBSyxLQUFLLEtBQWYsRUFBdUI7QUFFN0IsV0FBS3hELEVBQUwsR0FBVTRELEVBQUUsR0FBR0YsRUFBTCxHQUFVQyxFQUFWLEdBQWVGLEVBQUUsR0FBR0ksRUFBTCxHQUFVQyxFQUFuQztBQUNBLFdBQUs3RCxFQUFMLEdBQVV3RCxFQUFFLEdBQUdJLEVBQUwsR0FBVUYsRUFBVixHQUFlQyxFQUFFLEdBQUdGLEVBQUwsR0FBVUksRUFBbkM7QUFDQSxXQUFLNUQsRUFBTCxHQUFVdUQsRUFBRSxHQUFHQyxFQUFMLEdBQVVJLEVBQVYsR0FBZUYsRUFBRSxHQUFHQyxFQUFMLEdBQVVGLEVBQW5DO0FBQ0EsV0FBS3hELEVBQUwsR0FBVXNELEVBQUUsR0FBR0MsRUFBTCxHQUFVQyxFQUFWLEdBQWVDLEVBQUUsR0FBR0MsRUFBTCxHQUFVQyxFQUFuQztBQUVBOztBQUVELFFBQUtULE1BQU0sS0FBSyxLQUFoQixFQUF3QixLQUFLUCxpQkFBTDtBQUV4QixXQUFPLElBQVA7QUFFQSxHQTdHbUM7QUErR3BDaUIsRUFBQUEsZ0JBQWdCLEVBQUUsVUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBeUI7QUFFMUM7QUFFQTtBQUVBLFFBQUlDLFNBQVMsR0FBR0QsS0FBSyxHQUFHLENBQXhCO0FBQUEsUUFBMkJyQyxDQUFDLEdBQUdPLElBQUksQ0FBQ0QsR0FBTCxDQUFVZ0MsU0FBVixDQUEvQjtBQUVBLFNBQUtsRSxFQUFMLEdBQVVnRSxJQUFJLENBQUNwRSxDQUFMLEdBQVNnQyxDQUFuQjtBQUNBLFNBQUszQixFQUFMLEdBQVUrRCxJQUFJLENBQUNuRSxDQUFMLEdBQVMrQixDQUFuQjtBQUNBLFNBQUsxQixFQUFMLEdBQVU4RCxJQUFJLENBQUNsRSxDQUFMLEdBQVM4QixDQUFuQjtBQUNBLFNBQUt6QixFQUFMLEdBQVVnQyxJQUFJLENBQUNOLEdBQUwsQ0FBVXFDLFNBQVYsQ0FBVjs7QUFFQSxTQUFLcEIsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FoSW1DO0FBa0lwQ3FCLEVBQUFBLHFCQUFxQixFQUFFLFVBQVdDLENBQVgsRUFBZTtBQUVyQztBQUVBO0FBRUEsUUFBSUMsRUFBRSxHQUFHRCxDQUFDLENBQUNFLFFBQVg7QUFBQSxRQUVDQyxHQUFHLEdBQUdGLEVBQUUsQ0FBRSxDQUFGLENBRlQ7QUFBQSxRQUVnQkcsR0FBRyxHQUFHSCxFQUFFLENBQUUsQ0FBRixDQUZ4QjtBQUFBLFFBRStCSSxHQUFHLEdBQUdKLEVBQUUsQ0FBRSxDQUFGLENBRnZDO0FBQUEsUUFHQ0ssR0FBRyxHQUFHTCxFQUFFLENBQUUsQ0FBRixDQUhUO0FBQUEsUUFHZ0JNLEdBQUcsR0FBR04sRUFBRSxDQUFFLENBQUYsQ0FIeEI7QUFBQSxRQUcrQk8sR0FBRyxHQUFHUCxFQUFFLENBQUUsQ0FBRixDQUh2QztBQUFBLFFBSUNRLEdBQUcsR0FBR1IsRUFBRSxDQUFFLENBQUYsQ0FKVDtBQUFBLFFBSWdCUyxHQUFHLEdBQUdULEVBQUUsQ0FBRSxDQUFGLENBSnhCO0FBQUEsUUFJK0JVLEdBQUcsR0FBR1YsRUFBRSxDQUFFLEVBQUYsQ0FKdkM7QUFBQSxRQU1DVyxLQUFLLEdBQUdULEdBQUcsR0FBR0ksR0FBTixHQUFZSSxHQU5yQjtBQUFBLFFBT0NuRCxDQVBEOztBQVNBLFFBQUtvRCxLQUFLLEdBQUcsQ0FBYixFQUFpQjtBQUVoQnBELE1BQUFBLENBQUMsR0FBRyxNQUFNTyxJQUFJLENBQUNDLElBQUwsQ0FBVzRDLEtBQUssR0FBRyxHQUFuQixDQUFWO0FBRUEsV0FBSzdFLEVBQUwsR0FBVSxPQUFPeUIsQ0FBakI7QUFDQSxXQUFLNUIsRUFBTCxHQUFVLENBQUU4RSxHQUFHLEdBQUdGLEdBQVIsSUFBZ0JoRCxDQUExQjtBQUNBLFdBQUszQixFQUFMLEdBQVUsQ0FBRXdFLEdBQUcsR0FBR0ksR0FBUixJQUFnQmpELENBQTFCO0FBQ0EsV0FBSzFCLEVBQUwsR0FBVSxDQUFFd0UsR0FBRyxHQUFHRixHQUFSLElBQWdCNUMsQ0FBMUI7QUFFQSxLQVRELE1BU08sSUFBSzJDLEdBQUcsR0FBR0ksR0FBTixJQUFhSixHQUFHLEdBQUdRLEdBQXhCLEVBQThCO0FBRXBDbkQsTUFBQUEsQ0FBQyxHQUFHLE1BQU1PLElBQUksQ0FBQ0MsSUFBTCxDQUFXLE1BQU1tQyxHQUFOLEdBQVlJLEdBQVosR0FBa0JJLEdBQTdCLENBQVY7QUFFQSxXQUFLNUUsRUFBTCxHQUFVLENBQUUyRSxHQUFHLEdBQUdGLEdBQVIsSUFBZ0JoRCxDQUExQjtBQUNBLFdBQUs1QixFQUFMLEdBQVUsT0FBTzRCLENBQWpCO0FBQ0EsV0FBSzNCLEVBQUwsR0FBVSxDQUFFdUUsR0FBRyxHQUFHRSxHQUFSLElBQWdCOUMsQ0FBMUI7QUFDQSxXQUFLMUIsRUFBTCxHQUFVLENBQUV1RSxHQUFHLEdBQUdJLEdBQVIsSUFBZ0JqRCxDQUExQjtBQUVBLEtBVE0sTUFTQSxJQUFLK0MsR0FBRyxHQUFHSSxHQUFYLEVBQWlCO0FBRXZCbkQsTUFBQUEsQ0FBQyxHQUFHLE1BQU1PLElBQUksQ0FBQ0MsSUFBTCxDQUFXLE1BQU11QyxHQUFOLEdBQVlKLEdBQVosR0FBa0JRLEdBQTdCLENBQVY7QUFFQSxXQUFLNUUsRUFBTCxHQUFVLENBQUVzRSxHQUFHLEdBQUdJLEdBQVIsSUFBZ0JqRCxDQUExQjtBQUNBLFdBQUs1QixFQUFMLEdBQVUsQ0FBRXdFLEdBQUcsR0FBR0UsR0FBUixJQUFnQjlDLENBQTFCO0FBQ0EsV0FBSzNCLEVBQUwsR0FBVSxPQUFPMkIsQ0FBakI7QUFDQSxXQUFLMUIsRUFBTCxHQUFVLENBQUUwRSxHQUFHLEdBQUdFLEdBQVIsSUFBZ0JsRCxDQUExQjtBQUVBLEtBVE0sTUFTQTtBQUVOQSxNQUFBQSxDQUFDLEdBQUcsTUFBTU8sSUFBSSxDQUFDQyxJQUFMLENBQVcsTUFBTTJDLEdBQU4sR0FBWVIsR0FBWixHQUFrQkksR0FBN0IsQ0FBVjtBQUVBLFdBQUt4RSxFQUFMLEdBQVUsQ0FBRXVFLEdBQUcsR0FBR0YsR0FBUixJQUFnQjVDLENBQTFCO0FBQ0EsV0FBSzVCLEVBQUwsR0FBVSxDQUFFeUUsR0FBRyxHQUFHSSxHQUFSLElBQWdCakQsQ0FBMUI7QUFDQSxXQUFLM0IsRUFBTCxHQUFVLENBQUUyRSxHQUFHLEdBQUdFLEdBQVIsSUFBZ0JsRCxDQUExQjtBQUNBLFdBQUsxQixFQUFMLEdBQVUsT0FBTzBCLENBQWpCO0FBRUE7O0FBRUQsU0FBS2tCLGlCQUFMOztBQUVBLFdBQU8sSUFBUDtBQUVBLEdBM0xtQztBQTZMcENtQyxFQUFBQSxrQkFBa0IsRUFBRSxVQUFXQyxLQUFYLEVBQWtCQyxHQUFsQixFQUF3QjtBQUUzQztBQUVBLFFBQUlDLEdBQUcsR0FBRyxRQUFWO0FBRUEsUUFBSUMsQ0FBQyxHQUFHSCxLQUFLLENBQUNJLEdBQU4sQ0FBV0gsR0FBWCxJQUFtQixDQUEzQjs7QUFFQSxRQUFLRSxDQUFDLEdBQUdELEdBQVQsRUFBZTtBQUVkQyxNQUFBQSxDQUFDLEdBQUcsQ0FBSjs7QUFFQSxVQUFLbEQsSUFBSSxDQUFDb0QsR0FBTCxDQUFVTCxLQUFLLENBQUN0RixDQUFoQixJQUFzQnVDLElBQUksQ0FBQ29ELEdBQUwsQ0FBVUwsS0FBSyxDQUFDcEYsQ0FBaEIsQ0FBM0IsRUFBaUQ7QUFFaEQsYUFBS0UsRUFBTCxHQUFVLENBQUVrRixLQUFLLENBQUNyRixDQUFsQjtBQUNBLGFBQUtJLEVBQUwsR0FBVWlGLEtBQUssQ0FBQ3RGLENBQWhCO0FBQ0EsYUFBS00sRUFBTCxHQUFVLENBQVY7QUFDQSxhQUFLQyxFQUFMLEdBQVVrRixDQUFWO0FBRUEsT0FQRCxNQU9PO0FBRU4sYUFBS3JGLEVBQUwsR0FBVSxDQUFWO0FBQ0EsYUFBS0MsRUFBTCxHQUFVLENBQUVpRixLQUFLLENBQUNwRixDQUFsQjtBQUNBLGFBQUtJLEVBQUwsR0FBVWdGLEtBQUssQ0FBQ3JGLENBQWhCO0FBQ0EsYUFBS00sRUFBTCxHQUFVa0YsQ0FBVjtBQUVBO0FBRUQsS0FwQkQsTUFvQk87QUFFTjtBQUVBLFdBQUtyRixFQUFMLEdBQVVrRixLQUFLLENBQUNyRixDQUFOLEdBQVVzRixHQUFHLENBQUNyRixDQUFkLEdBQWtCb0YsS0FBSyxDQUFDcEYsQ0FBTixHQUFVcUYsR0FBRyxDQUFDdEYsQ0FBMUM7QUFDQSxXQUFLSSxFQUFMLEdBQVVpRixLQUFLLENBQUNwRixDQUFOLEdBQVVxRixHQUFHLENBQUN2RixDQUFkLEdBQWtCc0YsS0FBSyxDQUFDdEYsQ0FBTixHQUFVdUYsR0FBRyxDQUFDckYsQ0FBMUM7QUFDQSxXQUFLSSxFQUFMLEdBQVVnRixLQUFLLENBQUN0RixDQUFOLEdBQVV1RixHQUFHLENBQUN0RixDQUFkLEdBQWtCcUYsS0FBSyxDQUFDckYsQ0FBTixHQUFVc0YsR0FBRyxDQUFDdkYsQ0FBMUM7QUFDQSxXQUFLTyxFQUFMLEdBQVVrRixDQUFWO0FBRUE7O0FBRUQsV0FBTyxLQUFLRyxTQUFMLEVBQVA7QUFFQSxHQXRPbUM7QUF3T3BDQyxFQUFBQSxPQUFPLEVBQUUsVUFBV0MsQ0FBWCxFQUFlO0FBRXZCLFdBQU8sSUFBSXZELElBQUksQ0FBQ3dELElBQUwsQ0FBV3hELElBQUksQ0FBQ29ELEdBQUwsQ0FBVTdGLEtBQUssQ0FBQ2tHLEtBQU4sQ0FBYSxLQUFLTixHQUFMLENBQVVJLENBQVYsQ0FBYixFQUE0QixDQUFFLENBQTlCLEVBQWlDLENBQWpDLENBQVYsQ0FBWCxDQUFYO0FBRUEsR0E1T21DO0FBOE9wQ0csRUFBQUEsYUFBYSxFQUFFLFVBQVdILENBQVgsRUFBY0ksSUFBZCxFQUFxQjtBQUVuQyxRQUFJN0IsS0FBSyxHQUFHLEtBQUt3QixPQUFMLENBQWNDLENBQWQsQ0FBWjtBQUVBLFFBQUt6QixLQUFLLEtBQUssQ0FBZixFQUFtQixPQUFPLElBQVA7QUFFbkIsUUFBSXRELENBQUMsR0FBR3dCLElBQUksQ0FBQzRELEdBQUwsQ0FBVSxDQUFWLEVBQWFELElBQUksR0FBRzdCLEtBQXBCLENBQVI7QUFFQSxTQUFLMUQsS0FBTCxDQUFZbUYsQ0FBWixFQUFlL0UsQ0FBZjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBMVBtQztBQTRQcENxRixFQUFBQSxPQUFPLEVBQUUsWUFBWTtBQUVwQjtBQUVBLFdBQU8sS0FBS0MsU0FBTCxFQUFQO0FBRUEsR0FsUW1DO0FBb1FwQ0EsRUFBQUEsU0FBUyxFQUFFLFlBQVk7QUFFdEIsU0FBS2pHLEVBQUwsSUFBVyxDQUFFLENBQWI7QUFDQSxTQUFLQyxFQUFMLElBQVcsQ0FBRSxDQUFiO0FBQ0EsU0FBS0MsRUFBTCxJQUFXLENBQUUsQ0FBYjs7QUFFQSxTQUFLNEMsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0E5UW1DO0FBZ1JwQ3dDLEVBQUFBLEdBQUcsRUFBRSxVQUFXWSxDQUFYLEVBQWU7QUFFbkIsV0FBTyxLQUFLbEcsRUFBTCxHQUFVa0csQ0FBQyxDQUFDbEcsRUFBWixHQUFpQixLQUFLQyxFQUFMLEdBQVVpRyxDQUFDLENBQUNqRyxFQUE3QixHQUFrQyxLQUFLQyxFQUFMLEdBQVVnRyxDQUFDLENBQUNoRyxFQUE5QyxHQUFtRCxLQUFLQyxFQUFMLEdBQVUrRixDQUFDLENBQUMvRixFQUF0RTtBQUVBLEdBcFJtQztBQXNScENnRyxFQUFBQSxRQUFRLEVBQUUsWUFBWTtBQUVyQixXQUFPLEtBQUtuRyxFQUFMLEdBQVUsS0FBS0EsRUFBZixHQUFvQixLQUFLQyxFQUFMLEdBQVUsS0FBS0EsRUFBbkMsR0FBd0MsS0FBS0MsRUFBTCxHQUFVLEtBQUtBLEVBQXZELEdBQTRELEtBQUtDLEVBQUwsR0FBVSxLQUFLQSxFQUFsRjtBQUVBLEdBMVJtQztBQTRScENpRyxFQUFBQSxNQUFNLEVBQUUsWUFBWTtBQUVuQixXQUFPakUsSUFBSSxDQUFDQyxJQUFMLENBQVcsS0FBS3BDLEVBQUwsR0FBVSxLQUFLQSxFQUFmLEdBQW9CLEtBQUtDLEVBQUwsR0FBVSxLQUFLQSxFQUFuQyxHQUF3QyxLQUFLQyxFQUFMLEdBQVUsS0FBS0EsRUFBdkQsR0FBNEQsS0FBS0MsRUFBTCxHQUFVLEtBQUtBLEVBQXRGLENBQVA7QUFFQSxHQWhTbUM7QUFrU3BDcUYsRUFBQUEsU0FBUyxFQUFFLFlBQVk7QUFFdEIsUUFBSWEsQ0FBQyxHQUFHLEtBQUtELE1BQUwsRUFBUjs7QUFFQSxRQUFLQyxDQUFDLEtBQUssQ0FBWCxFQUFlO0FBRWQsV0FBS3JHLEVBQUwsR0FBVSxDQUFWO0FBQ0EsV0FBS0MsRUFBTCxHQUFVLENBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVUsQ0FBVjtBQUNBLFdBQUtDLEVBQUwsR0FBVSxDQUFWO0FBRUEsS0FQRCxNQU9PO0FBRU5rRyxNQUFBQSxDQUFDLEdBQUcsSUFBSUEsQ0FBUjtBQUVBLFdBQUtyRyxFQUFMLEdBQVUsS0FBS0EsRUFBTCxHQUFVcUcsQ0FBcEI7QUFDQSxXQUFLcEcsRUFBTCxHQUFVLEtBQUtBLEVBQUwsR0FBVW9HLENBQXBCO0FBQ0EsV0FBS25HLEVBQUwsR0FBVSxLQUFLQSxFQUFMLEdBQVVtRyxDQUFwQjtBQUNBLFdBQUtsRyxFQUFMLEdBQVUsS0FBS0EsRUFBTCxHQUFVa0csQ0FBcEI7QUFFQTs7QUFFRCxTQUFLdkQsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0E1VG1DO0FBOFRwQ3dELEVBQUFBLFFBQVEsRUFBRSxVQUFXWixDQUFYLEVBQWNhLENBQWQsRUFBa0I7QUFFM0IsUUFBS0EsQ0FBQyxLQUFLbkcsU0FBWCxFQUF1QjtBQUV0Qm9HLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLHdHQUFkO0FBQ0EsYUFBTyxLQUFLQyxtQkFBTCxDQUEwQmhCLENBQTFCLEVBQTZCYSxDQUE3QixDQUFQO0FBRUE7O0FBRUQsV0FBTyxLQUFLRyxtQkFBTCxDQUEwQixJQUExQixFQUFnQ2hCLENBQWhDLENBQVA7QUFFQSxHQXpVbUM7QUEyVXBDaUIsRUFBQUEsV0FBVyxFQUFFLFVBQVdqQixDQUFYLEVBQWU7QUFFM0IsV0FBTyxLQUFLZ0IsbUJBQUwsQ0FBMEJoQixDQUExQixFQUE2QixJQUE3QixDQUFQO0FBRUEsR0EvVW1DO0FBaVZwQ2dCLEVBQUFBLG1CQUFtQixFQUFFLFVBQVdFLENBQVgsRUFBY0MsQ0FBZCxFQUFrQjtBQUV0QztBQUVBLFFBQUlDLEdBQUcsR0FBR0YsQ0FBQyxDQUFDNUcsRUFBWjtBQUFBLFFBQWdCK0csR0FBRyxHQUFHSCxDQUFDLENBQUMzRyxFQUF4QjtBQUFBLFFBQTRCK0csR0FBRyxHQUFHSixDQUFDLENBQUMxRyxFQUFwQztBQUFBLFFBQXdDK0csR0FBRyxHQUFHTCxDQUFDLENBQUN6RyxFQUFoRDtBQUNBLFFBQUkrRyxHQUFHLEdBQUdMLENBQUMsQ0FBQzdHLEVBQVo7QUFBQSxRQUFnQm1ILEdBQUcsR0FBR04sQ0FBQyxDQUFDNUcsRUFBeEI7QUFBQSxRQUE0Qm1ILEdBQUcsR0FBR1AsQ0FBQyxDQUFDM0csRUFBcEM7QUFBQSxRQUF3Q21ILEdBQUcsR0FBR1IsQ0FBQyxDQUFDMUcsRUFBaEQ7QUFFQSxTQUFLSCxFQUFMLEdBQVU4RyxHQUFHLEdBQUdPLEdBQU4sR0FBWUosR0FBRyxHQUFHQyxHQUFsQixHQUF3QkgsR0FBRyxHQUFHSyxHQUE5QixHQUFvQ0osR0FBRyxHQUFHRyxHQUFwRDtBQUNBLFNBQUtsSCxFQUFMLEdBQVU4RyxHQUFHLEdBQUdNLEdBQU4sR0FBWUosR0FBRyxHQUFHRSxHQUFsQixHQUF3QkgsR0FBRyxHQUFHRSxHQUE5QixHQUFvQ0osR0FBRyxHQUFHTSxHQUFwRDtBQUNBLFNBQUtsSCxFQUFMLEdBQVU4RyxHQUFHLEdBQUdLLEdBQU4sR0FBWUosR0FBRyxHQUFHRyxHQUFsQixHQUF3Qk4sR0FBRyxHQUFHSyxHQUE5QixHQUFvQ0osR0FBRyxHQUFHRyxHQUFwRDtBQUNBLFNBQUsvRyxFQUFMLEdBQVU4RyxHQUFHLEdBQUdJLEdBQU4sR0FBWVAsR0FBRyxHQUFHSSxHQUFsQixHQUF3QkgsR0FBRyxHQUFHSSxHQUE5QixHQUFvQ0gsR0FBRyxHQUFHSSxHQUFwRDs7QUFFQSxTQUFLdEUsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FqV21DO0FBbVdwQ3ZDLEVBQUFBLEtBQUssRUFBRSxVQUFXRSxFQUFYLEVBQWVFLENBQWYsRUFBbUI7QUFFekIsUUFBS0EsQ0FBQyxLQUFLLENBQVgsRUFBZSxPQUFPLElBQVA7QUFDZixRQUFLQSxDQUFDLEtBQUssQ0FBWCxFQUFlLE9BQU8sS0FBS0MsSUFBTCxDQUFXSCxFQUFYLENBQVA7QUFFZixRQUFJYixDQUFDLEdBQUcsS0FBS0ksRUFBYjtBQUFBLFFBQWlCSCxDQUFDLEdBQUcsS0FBS0ksRUFBMUI7QUFBQSxRQUE4QkgsQ0FBQyxHQUFHLEtBQUtJLEVBQXZDO0FBQUEsUUFBMkNILENBQUMsR0FBRyxLQUFLSSxFQUFwRCxDQUx5QixDQU96Qjs7QUFFQSxRQUFJbUgsWUFBWSxHQUFHdkgsQ0FBQyxHQUFHVSxFQUFFLENBQUNOLEVBQVAsR0FBWVAsQ0FBQyxHQUFHYSxFQUFFLENBQUNULEVBQW5CLEdBQXdCSCxDQUFDLEdBQUdZLEVBQUUsQ0FBQ1IsRUFBL0IsR0FBb0NILENBQUMsR0FBR1csRUFBRSxDQUFDUCxFQUE5RDs7QUFFQSxRQUFLb0gsWUFBWSxHQUFHLENBQXBCLEVBQXdCO0FBRXZCLFdBQUtuSCxFQUFMLEdBQVUsQ0FBRU0sRUFBRSxDQUFDTixFQUFmO0FBQ0EsV0FBS0gsRUFBTCxHQUFVLENBQUVTLEVBQUUsQ0FBQ1QsRUFBZjtBQUNBLFdBQUtDLEVBQUwsR0FBVSxDQUFFUSxFQUFFLENBQUNSLEVBQWY7QUFDQSxXQUFLQyxFQUFMLEdBQVUsQ0FBRU8sRUFBRSxDQUFDUCxFQUFmO0FBRUFvSCxNQUFBQSxZQUFZLEdBQUcsQ0FBRUEsWUFBakI7QUFFQSxLQVRELE1BU087QUFFTixXQUFLMUcsSUFBTCxDQUFXSCxFQUFYO0FBRUE7O0FBRUQsUUFBSzZHLFlBQVksSUFBSSxHQUFyQixFQUEyQjtBQUUxQixXQUFLbkgsRUFBTCxHQUFVSixDQUFWO0FBQ0EsV0FBS0MsRUFBTCxHQUFVSixDQUFWO0FBQ0EsV0FBS0ssRUFBTCxHQUFVSixDQUFWO0FBQ0EsV0FBS0ssRUFBTCxHQUFVSixDQUFWO0FBRUEsYUFBTyxJQUFQO0FBRUE7O0FBRUQsUUFBSXlILGVBQWUsR0FBRyxNQUFNRCxZQUFZLEdBQUdBLFlBQTNDOztBQUVBLFFBQUtDLGVBQWUsSUFBSXZGLE1BQU0sQ0FBQ0MsT0FBL0IsRUFBeUM7QUFFeEMsVUFBSUwsQ0FBQyxHQUFHLElBQUlqQixDQUFaO0FBQ0EsV0FBS1IsRUFBTCxHQUFVeUIsQ0FBQyxHQUFHN0IsQ0FBSixHQUFRWSxDQUFDLEdBQUcsS0FBS1IsRUFBM0I7QUFDQSxXQUFLSCxFQUFMLEdBQVU0QixDQUFDLEdBQUdoQyxDQUFKLEdBQVFlLENBQUMsR0FBRyxLQUFLWCxFQUEzQjtBQUNBLFdBQUtDLEVBQUwsR0FBVTJCLENBQUMsR0FBRy9CLENBQUosR0FBUWMsQ0FBQyxHQUFHLEtBQUtWLEVBQTNCO0FBQ0EsV0FBS0MsRUFBTCxHQUFVMEIsQ0FBQyxHQUFHOUIsQ0FBSixHQUFRYSxDQUFDLEdBQUcsS0FBS1QsRUFBM0I7QUFFQSxXQUFLc0YsU0FBTDs7QUFDQSxXQUFLMUMsaUJBQUw7O0FBRUEsYUFBTyxJQUFQO0FBRUE7O0FBRUQsUUFBSTBFLFlBQVksR0FBR3JGLElBQUksQ0FBQ0MsSUFBTCxDQUFXbUYsZUFBWCxDQUFuQjtBQUNBLFFBQUlFLFNBQVMsR0FBR3RGLElBQUksQ0FBQ0csS0FBTCxDQUFZa0YsWUFBWixFQUEwQkYsWUFBMUIsQ0FBaEI7QUFDQSxRQUFJSSxNQUFNLEdBQUd2RixJQUFJLENBQUNELEdBQUwsQ0FBVSxDQUFFLElBQUl2QixDQUFOLElBQVk4RyxTQUF0QixJQUFvQ0QsWUFBakQ7QUFBQSxRQUNDRyxNQUFNLEdBQUd4RixJQUFJLENBQUNELEdBQUwsQ0FBVXZCLENBQUMsR0FBRzhHLFNBQWQsSUFBNEJELFlBRHRDO0FBR0EsU0FBS3JILEVBQUwsR0FBWUosQ0FBQyxHQUFHMkgsTUFBSixHQUFhLEtBQUt2SCxFQUFMLEdBQVV3SCxNQUFuQztBQUNBLFNBQUszSCxFQUFMLEdBQVlKLENBQUMsR0FBRzhILE1BQUosR0FBYSxLQUFLMUgsRUFBTCxHQUFVMkgsTUFBbkM7QUFDQSxTQUFLMUgsRUFBTCxHQUFZSixDQUFDLEdBQUc2SCxNQUFKLEdBQWEsS0FBS3pILEVBQUwsR0FBVTBILE1BQW5DO0FBQ0EsU0FBS3pILEVBQUwsR0FBWUosQ0FBQyxHQUFHNEgsTUFBSixHQUFhLEtBQUt4SCxFQUFMLEdBQVV5SCxNQUFuQzs7QUFFQSxTQUFLN0UsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0F2YW1DO0FBeWFwQzhFLEVBQUFBLE1BQU0sRUFBRSxVQUFXMUUsVUFBWCxFQUF3QjtBQUUvQixXQUFTQSxVQUFVLENBQUNsRCxFQUFYLEtBQWtCLEtBQUtBLEVBQXpCLElBQW1Da0QsVUFBVSxDQUFDakQsRUFBWCxLQUFrQixLQUFLQSxFQUExRCxJQUFvRWlELFVBQVUsQ0FBQ2hELEVBQVgsS0FBa0IsS0FBS0EsRUFBM0YsSUFBcUdnRCxVQUFVLENBQUMvQyxFQUFYLEtBQWtCLEtBQUtBLEVBQW5JO0FBRUEsR0E3YW1DO0FBK2FwQzBILEVBQUFBLFNBQVMsRUFBRSxVQUFXQyxLQUFYLEVBQWtCQyxNQUFsQixFQUEyQjtBQUVyQyxRQUFLQSxNQUFNLEtBQUszSCxTQUFoQixFQUE0QjJILE1BQU0sR0FBRyxDQUFUO0FBRTVCLFNBQUsvSCxFQUFMLEdBQVU4SCxLQUFLLENBQUVDLE1BQUYsQ0FBZjtBQUNBLFNBQUs5SCxFQUFMLEdBQVU2SCxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQWY7QUFDQSxTQUFLN0gsRUFBTCxHQUFVNEgsS0FBSyxDQUFFQyxNQUFNLEdBQUcsQ0FBWCxDQUFmO0FBQ0EsU0FBSzVILEVBQUwsR0FBVTJILEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBZjs7QUFFQSxTQUFLakYsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0E1Ym1DO0FBOGJwQ2tGLEVBQUFBLE9BQU8sRUFBRSxVQUFXRixLQUFYLEVBQWtCQyxNQUFsQixFQUEyQjtBQUVuQyxRQUFLRCxLQUFLLEtBQUsxSCxTQUFmLEVBQTJCMEgsS0FBSyxHQUFHLEVBQVI7QUFDM0IsUUFBS0MsTUFBTSxLQUFLM0gsU0FBaEIsRUFBNEIySCxNQUFNLEdBQUcsQ0FBVDtBQUU1QkQsSUFBQUEsS0FBSyxDQUFFQyxNQUFGLENBQUwsR0FBa0IsS0FBSy9ILEVBQXZCO0FBQ0E4SCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzlILEVBQTNCO0FBQ0E2SCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzdILEVBQTNCO0FBQ0E0SCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzVILEVBQTNCO0FBRUEsV0FBTzJILEtBQVA7QUFFQSxHQTFjbUM7QUE0Y3BDRyxFQUFBQSxTQUFTLEVBQUUsVUFBV0MsUUFBWCxFQUFzQjtBQUVoQyxTQUFLcEYsaUJBQUwsR0FBeUJvRixRQUF6QjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBbGRtQztBQW9kcENwRixFQUFBQSxpQkFBaUIsRUFBRSxZQUFZLENBQUU7QUFwZEcsQ0FBckM7QUF5ZEEsU0FBU25ELFVBQVQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBhdXRob3IgbWlrYWVsIGVtdGluZ2VyIC8gaHR0cDovL2dvbW8uc2UvXG4gKiBAYXV0aG9yIGFsdGVyZWRxIC8gaHR0cDovL2FsdGVyZWRxdWFsaWEuY29tL1xuICogQGF1dGhvciBXZXN0TGFuZ2xleSAvIGh0dHA6Ly9naXRodWIuY29tL1dlc3RMYW5nbGV5XG4gKiBAYXV0aG9yIGJob3VzdG9uIC8gaHR0cDovL2NsYXJhLmlvXG4gKi9cblxuaW1wb3J0IHsgX01hdGggfSBmcm9tICcuL01hdGguanMnO1xuXG5mdW5jdGlvbiBRdWF0ZXJuaW9uKCB4LCB5LCB6LCB3ICkge1xuXG5cdHRoaXMuX3ggPSB4IHx8IDA7XG5cdHRoaXMuX3kgPSB5IHx8IDA7XG5cdHRoaXMuX3ogPSB6IHx8IDA7XG5cdHRoaXMuX3cgPSAoIHcgIT09IHVuZGVmaW5lZCApID8gdyA6IDE7XG5cbn1cblxuT2JqZWN0LmFzc2lnbiggUXVhdGVybmlvbiwge1xuXG5cdHNsZXJwOiBmdW5jdGlvbiAoIHFhLCBxYiwgcW0sIHQgKSB7XG5cblx0XHRyZXR1cm4gcW0uY29weSggcWEgKS5zbGVycCggcWIsIHQgKTtcblxuXHR9LFxuXG5cdHNsZXJwRmxhdDogZnVuY3Rpb24gKCBkc3QsIGRzdE9mZnNldCwgc3JjMCwgc3JjT2Zmc2V0MCwgc3JjMSwgc3JjT2Zmc2V0MSwgdCApIHtcblxuXHRcdC8vIGZ1enotZnJlZSwgYXJyYXktYmFzZWQgUXVhdGVybmlvbiBTTEVSUCBvcGVyYXRpb25cblxuXHRcdHZhciB4MCA9IHNyYzBbIHNyY09mZnNldDAgKyAwIF0sXG5cdFx0XHR5MCA9IHNyYzBbIHNyY09mZnNldDAgKyAxIF0sXG5cdFx0XHR6MCA9IHNyYzBbIHNyY09mZnNldDAgKyAyIF0sXG5cdFx0XHR3MCA9IHNyYzBbIHNyY09mZnNldDAgKyAzIF0sXG5cblx0XHRcdHgxID0gc3JjMVsgc3JjT2Zmc2V0MSArIDAgXSxcblx0XHRcdHkxID0gc3JjMVsgc3JjT2Zmc2V0MSArIDEgXSxcblx0XHRcdHoxID0gc3JjMVsgc3JjT2Zmc2V0MSArIDIgXSxcblx0XHRcdHcxID0gc3JjMVsgc3JjT2Zmc2V0MSArIDMgXTtcblxuXHRcdGlmICggdzAgIT09IHcxIHx8IHgwICE9PSB4MSB8fCB5MCAhPT0geTEgfHwgejAgIT09IHoxICkge1xuXG5cdFx0XHR2YXIgcyA9IDEgLSB0LFxuXG5cdFx0XHRcdGNvcyA9IHgwICogeDEgKyB5MCAqIHkxICsgejAgKiB6MSArIHcwICogdzEsXG5cblx0XHRcdFx0ZGlyID0gKCBjb3MgPj0gMCA/IDEgOiAtIDEgKSxcblx0XHRcdFx0c3FyU2luID0gMSAtIGNvcyAqIGNvcztcblxuXHRcdFx0Ly8gU2tpcCB0aGUgU2xlcnAgZm9yIHRpbnkgc3RlcHMgdG8gYXZvaWQgbnVtZXJpYyBwcm9ibGVtczpcblx0XHRcdGlmICggc3FyU2luID4gTnVtYmVyLkVQU0lMT04gKSB7XG5cblx0XHRcdFx0dmFyIHNpbiA9IE1hdGguc3FydCggc3FyU2luICksXG5cdFx0XHRcdFx0bGVuID0gTWF0aC5hdGFuMiggc2luLCBjb3MgKiBkaXIgKTtcblxuXHRcdFx0XHRzID0gTWF0aC5zaW4oIHMgKiBsZW4gKSAvIHNpbjtcblx0XHRcdFx0dCA9IE1hdGguc2luKCB0ICogbGVuICkgLyBzaW47XG5cblx0XHRcdH1cblxuXHRcdFx0dmFyIHREaXIgPSB0ICogZGlyO1xuXG5cdFx0XHR4MCA9IHgwICogcyArIHgxICogdERpcjtcblx0XHRcdHkwID0geTAgKiBzICsgeTEgKiB0RGlyO1xuXHRcdFx0ejAgPSB6MCAqIHMgKyB6MSAqIHREaXI7XG5cdFx0XHR3MCA9IHcwICogcyArIHcxICogdERpcjtcblxuXHRcdFx0Ly8gTm9ybWFsaXplIGluIGNhc2Ugd2UganVzdCBkaWQgYSBsZXJwOlxuXHRcdFx0aWYgKCBzID09PSAxIC0gdCApIHtcblxuXHRcdFx0XHR2YXIgZiA9IDEgLyBNYXRoLnNxcnQoIHgwICogeDAgKyB5MCAqIHkwICsgejAgKiB6MCArIHcwICogdzAgKTtcblxuXHRcdFx0XHR4MCAqPSBmO1xuXHRcdFx0XHR5MCAqPSBmO1xuXHRcdFx0XHR6MCAqPSBmO1xuXHRcdFx0XHR3MCAqPSBmO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHRkc3RbIGRzdE9mZnNldCBdID0geDA7XG5cdFx0ZHN0WyBkc3RPZmZzZXQgKyAxIF0gPSB5MDtcblx0XHRkc3RbIGRzdE9mZnNldCArIDIgXSA9IHowO1xuXHRcdGRzdFsgZHN0T2Zmc2V0ICsgMyBdID0gdzA7XG5cblx0fVxuXG59ICk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCBRdWF0ZXJuaW9uLnByb3RvdHlwZSwge1xuXG5cdHg6IHtcblxuXHRcdGdldDogZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5feDtcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX3ggPSB2YWx1ZTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdH1cblxuXHR9LFxuXG5cdHk6IHtcblxuXHRcdGdldDogZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5feTtcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX3kgPSB2YWx1ZTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdH1cblxuXHR9LFxuXG5cdHo6IHtcblxuXHRcdGdldDogZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5fejtcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX3ogPSB2YWx1ZTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdH1cblxuXHR9LFxuXG5cdHc6IHtcblxuXHRcdGdldDogZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5fdztcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX3cgPSB2YWx1ZTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdH1cblxuXHR9XG5cbn0gKTtcblxuT2JqZWN0LmFzc2lnbiggUXVhdGVybmlvbi5wcm90b3R5cGUsIHtcblxuXHRpc1F1YXRlcm5pb246IHRydWUsXG5cblx0c2V0OiBmdW5jdGlvbiAoIHgsIHksIHosIHcgKSB7XG5cblx0XHR0aGlzLl94ID0geDtcblx0XHR0aGlzLl95ID0geTtcblx0XHR0aGlzLl96ID0gejtcblx0XHR0aGlzLl93ID0gdztcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvciggdGhpcy5feCwgdGhpcy5feSwgdGhpcy5feiwgdGhpcy5fdyApO1xuXG5cdH0sXG5cblx0Y29weTogZnVuY3Rpb24gKCBxdWF0ZXJuaW9uICkge1xuXG5cdFx0dGhpcy5feCA9IHF1YXRlcm5pb24ueDtcblx0XHR0aGlzLl95ID0gcXVhdGVybmlvbi55O1xuXHRcdHRoaXMuX3ogPSBxdWF0ZXJuaW9uLno7XG5cdFx0dGhpcy5fdyA9IHF1YXRlcm5pb24udztcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbUV1bGVyOiBmdW5jdGlvbiAoIGV1bGVyLCB1cGRhdGUgKSB7XG5cblx0XHRpZiAoICEgKCBldWxlciAmJiBldWxlci5pc0V1bGVyICkgKSB7XG5cblx0XHRcdHRocm93IG5ldyBFcnJvciggJ1RIUkVFLlF1YXRlcm5pb246IC5zZXRGcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLicgKTtcblxuXHRcdH1cblxuXHRcdHZhciB4ID0gZXVsZXIuX3gsIHkgPSBldWxlci5feSwgeiA9IGV1bGVyLl96LCBvcmRlciA9IGV1bGVyLm9yZGVyO1xuXG5cdFx0Ly8gaHR0cDovL3d3dy5tYXRod29ya3MuY29tL21hdGxhYmNlbnRyYWwvZmlsZWV4Y2hhbmdlL1xuXHRcdC8vIFx0MjA2OTYtZnVuY3Rpb24tdG8tY29udmVydC1iZXR3ZWVuLWRjbS1ldWxlci1hbmdsZXMtcXVhdGVybmlvbnMtYW5kLWV1bGVyLXZlY3RvcnMvXG5cdFx0Ly9cdGNvbnRlbnQvU3BpbkNhbGMubVxuXG5cdFx0dmFyIGNvcyA9IE1hdGguY29zO1xuXHRcdHZhciBzaW4gPSBNYXRoLnNpbjtcblxuXHRcdHZhciBjMSA9IGNvcyggeCAvIDIgKTtcblx0XHR2YXIgYzIgPSBjb3MoIHkgLyAyICk7XG5cdFx0dmFyIGMzID0gY29zKCB6IC8gMiApO1xuXG5cdFx0dmFyIHMxID0gc2luKCB4IC8gMiApO1xuXHRcdHZhciBzMiA9IHNpbiggeSAvIDIgKTtcblx0XHR2YXIgczMgPSBzaW4oIHogLyAyICk7XG5cblx0XHRpZiAoIG9yZGVyID09PSAnWFlaJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyArIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgLSBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzICsgczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyAtIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWVhaJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyArIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgLSBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzIC0gczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyArIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWlhZJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyAtIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgKyBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzICsgczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyAtIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWllYJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyAtIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgKyBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzIC0gczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyArIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWVpYJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyArIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgKyBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzIC0gczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyAtIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWFpZJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyAtIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgLSBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzICsgczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyArIHMxICogczIgKiBzMztcblxuXHRcdH1cblxuXHRcdGlmICggdXBkYXRlICE9PSBmYWxzZSApIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbUF4aXNBbmdsZTogZnVuY3Rpb24gKCBheGlzLCBhbmdsZSApIHtcblxuXHRcdC8vIGh0dHA6Ly93d3cuZXVjbGlkZWFuc3BhY2UuY29tL21hdGhzL2dlb21ldHJ5L3JvdGF0aW9ucy9jb252ZXJzaW9ucy9hbmdsZVRvUXVhdGVybmlvbi9pbmRleC5odG1cblxuXHRcdC8vIGFzc3VtZXMgYXhpcyBpcyBub3JtYWxpemVkXG5cblx0XHR2YXIgaGFsZkFuZ2xlID0gYW5nbGUgLyAyLCBzID0gTWF0aC5zaW4oIGhhbGZBbmdsZSApO1xuXG5cdFx0dGhpcy5feCA9IGF4aXMueCAqIHM7XG5cdFx0dGhpcy5feSA9IGF4aXMueSAqIHM7XG5cdFx0dGhpcy5feiA9IGF4aXMueiAqIHM7XG5cdFx0dGhpcy5fdyA9IE1hdGguY29zKCBoYWxmQW5nbGUgKTtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbVJvdGF0aW9uTWF0cml4OiBmdW5jdGlvbiAoIG0gKSB7XG5cblx0XHQvLyBodHRwOi8vd3d3LmV1Y2xpZGVhbnNwYWNlLmNvbS9tYXRocy9nZW9tZXRyeS9yb3RhdGlvbnMvY29udmVyc2lvbnMvbWF0cml4VG9RdWF0ZXJuaW9uL2luZGV4Lmh0bVxuXG5cdFx0Ly8gYXNzdW1lcyB0aGUgdXBwZXIgM3gzIG9mIG0gaXMgYSBwdXJlIHJvdGF0aW9uIG1hdHJpeCAoaS5lLCB1bnNjYWxlZClcblxuXHRcdHZhciB0ZSA9IG0uZWxlbWVudHMsXG5cblx0XHRcdG0xMSA9IHRlWyAwIF0sIG0xMiA9IHRlWyA0IF0sIG0xMyA9IHRlWyA4IF0sXG5cdFx0XHRtMjEgPSB0ZVsgMSBdLCBtMjIgPSB0ZVsgNSBdLCBtMjMgPSB0ZVsgOSBdLFxuXHRcdFx0bTMxID0gdGVbIDIgXSwgbTMyID0gdGVbIDYgXSwgbTMzID0gdGVbIDEwIF0sXG5cblx0XHRcdHRyYWNlID0gbTExICsgbTIyICsgbTMzLFxuXHRcdFx0cztcblxuXHRcdGlmICggdHJhY2UgPiAwICkge1xuXG5cdFx0XHRzID0gMC41IC8gTWF0aC5zcXJ0KCB0cmFjZSArIDEuMCApO1xuXG5cdFx0XHR0aGlzLl93ID0gMC4yNSAvIHM7XG5cdFx0XHR0aGlzLl94ID0gKCBtMzIgLSBtMjMgKSAqIHM7XG5cdFx0XHR0aGlzLl95ID0gKCBtMTMgLSBtMzEgKSAqIHM7XG5cdFx0XHR0aGlzLl96ID0gKCBtMjEgLSBtMTIgKSAqIHM7XG5cblx0XHR9IGVsc2UgaWYgKCBtMTEgPiBtMjIgJiYgbTExID4gbTMzICkge1xuXG5cdFx0XHRzID0gMi4wICogTWF0aC5zcXJ0KCAxLjAgKyBtMTEgLSBtMjIgLSBtMzMgKTtcblxuXHRcdFx0dGhpcy5fdyA9ICggbTMyIC0gbTIzICkgLyBzO1xuXHRcdFx0dGhpcy5feCA9IDAuMjUgKiBzO1xuXHRcdFx0dGhpcy5feSA9ICggbTEyICsgbTIxICkgLyBzO1xuXHRcdFx0dGhpcy5feiA9ICggbTEzICsgbTMxICkgLyBzO1xuXG5cdFx0fSBlbHNlIGlmICggbTIyID4gbTMzICkge1xuXG5cdFx0XHRzID0gMi4wICogTWF0aC5zcXJ0KCAxLjAgKyBtMjIgLSBtMTEgLSBtMzMgKTtcblxuXHRcdFx0dGhpcy5fdyA9ICggbTEzIC0gbTMxICkgLyBzO1xuXHRcdFx0dGhpcy5feCA9ICggbTEyICsgbTIxICkgLyBzO1xuXHRcdFx0dGhpcy5feSA9IDAuMjUgKiBzO1xuXHRcdFx0dGhpcy5feiA9ICggbTIzICsgbTMyICkgLyBzO1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0cyA9IDIuMCAqIE1hdGguc3FydCggMS4wICsgbTMzIC0gbTExIC0gbTIyICk7XG5cblx0XHRcdHRoaXMuX3cgPSAoIG0yMSAtIG0xMiApIC8gcztcblx0XHRcdHRoaXMuX3ggPSAoIG0xMyArIG0zMSApIC8gcztcblx0XHRcdHRoaXMuX3kgPSAoIG0yMyArIG0zMiApIC8gcztcblx0XHRcdHRoaXMuX3ogPSAwLjI1ICogcztcblxuXHRcdH1cblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbVVuaXRWZWN0b3JzOiBmdW5jdGlvbiAoIHZGcm9tLCB2VG8gKSB7XG5cblx0XHQvLyBhc3N1bWVzIGRpcmVjdGlvbiB2ZWN0b3JzIHZGcm9tIGFuZCB2VG8gYXJlIG5vcm1hbGl6ZWRcblxuXHRcdHZhciBFUFMgPSAwLjAwMDAwMTtcblxuXHRcdHZhciByID0gdkZyb20uZG90KCB2VG8gKSArIDE7XG5cblx0XHRpZiAoIHIgPCBFUFMgKSB7XG5cblx0XHRcdHIgPSAwO1xuXG5cdFx0XHRpZiAoIE1hdGguYWJzKCB2RnJvbS54ICkgPiBNYXRoLmFicyggdkZyb20ueiApICkge1xuXG5cdFx0XHRcdHRoaXMuX3ggPSAtIHZGcm9tLnk7XG5cdFx0XHRcdHRoaXMuX3kgPSB2RnJvbS54O1xuXHRcdFx0XHR0aGlzLl96ID0gMDtcblx0XHRcdFx0dGhpcy5fdyA9IHI7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0dGhpcy5feCA9IDA7XG5cdFx0XHRcdHRoaXMuX3kgPSAtIHZGcm9tLno7XG5cdFx0XHRcdHRoaXMuX3ogPSB2RnJvbS55O1xuXHRcdFx0XHR0aGlzLl93ID0gcjtcblxuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0Ly8gY3Jvc3NWZWN0b3JzKCB2RnJvbSwgdlRvICk7IC8vIGlubGluZWQgdG8gYXZvaWQgY3ljbGljIGRlcGVuZGVuY3kgb24gVmVjdG9yM1xuXG5cdFx0XHR0aGlzLl94ID0gdkZyb20ueSAqIHZUby56IC0gdkZyb20ueiAqIHZUby55O1xuXHRcdFx0dGhpcy5feSA9IHZGcm9tLnogKiB2VG8ueCAtIHZGcm9tLnggKiB2VG8uejtcblx0XHRcdHRoaXMuX3ogPSB2RnJvbS54ICogdlRvLnkgLSB2RnJvbS55ICogdlRvLng7XG5cdFx0XHR0aGlzLl93ID0gcjtcblxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLm5vcm1hbGl6ZSgpO1xuXG5cdH0sXG5cblx0YW5nbGVUbzogZnVuY3Rpb24gKCBxICkge1xuXG5cdFx0cmV0dXJuIDIgKiBNYXRoLmFjb3MoIE1hdGguYWJzKCBfTWF0aC5jbGFtcCggdGhpcy5kb3QoIHEgKSwgLSAxLCAxICkgKSApO1xuXG5cdH0sXG5cblx0cm90YXRlVG93YXJkczogZnVuY3Rpb24gKCBxLCBzdGVwICkge1xuXG5cdFx0dmFyIGFuZ2xlID0gdGhpcy5hbmdsZVRvKCBxICk7XG5cblx0XHRpZiAoIGFuZ2xlID09PSAwICkgcmV0dXJuIHRoaXM7XG5cblx0XHR2YXIgdCA9IE1hdGgubWluKCAxLCBzdGVwIC8gYW5nbGUgKTtcblxuXHRcdHRoaXMuc2xlcnAoIHEsIHQgKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0aW52ZXJzZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0Ly8gcXVhdGVybmlvbiBpcyBhc3N1bWVkIHRvIGhhdmUgdW5pdCBsZW5ndGhcblxuXHRcdHJldHVybiB0aGlzLmNvbmp1Z2F0ZSgpO1xuXG5cdH0sXG5cblx0Y29uanVnYXRlOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR0aGlzLl94ICo9IC0gMTtcblx0XHR0aGlzLl95ICo9IC0gMTtcblx0XHR0aGlzLl96ICo9IC0gMTtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZG90OiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHRyZXR1cm4gdGhpcy5feCAqIHYuX3ggKyB0aGlzLl95ICogdi5feSArIHRoaXMuX3ogKiB2Ll96ICsgdGhpcy5fdyAqIHYuX3c7XG5cblx0fSxcblxuXHRsZW5ndGhTcTogZnVuY3Rpb24gKCkge1xuXG5cdFx0cmV0dXJuIHRoaXMuX3ggKiB0aGlzLl94ICsgdGhpcy5feSAqIHRoaXMuX3kgKyB0aGlzLl96ICogdGhpcy5feiArIHRoaXMuX3cgKiB0aGlzLl93O1xuXG5cdH0sXG5cblx0bGVuZ3RoOiBmdW5jdGlvbiAoKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5zcXJ0KCB0aGlzLl94ICogdGhpcy5feCArIHRoaXMuX3kgKiB0aGlzLl95ICsgdGhpcy5feiAqIHRoaXMuX3ogKyB0aGlzLl93ICogdGhpcy5fdyApO1xuXG5cdH0sXG5cblx0bm9ybWFsaXplOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgbCA9IHRoaXMubGVuZ3RoKCk7XG5cblx0XHRpZiAoIGwgPT09IDAgKSB7XG5cblx0XHRcdHRoaXMuX3ggPSAwO1xuXHRcdFx0dGhpcy5feSA9IDA7XG5cdFx0XHR0aGlzLl96ID0gMDtcblx0XHRcdHRoaXMuX3cgPSAxO1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0bCA9IDEgLyBsO1xuXG5cdFx0XHR0aGlzLl94ID0gdGhpcy5feCAqIGw7XG5cdFx0XHR0aGlzLl95ID0gdGhpcy5feSAqIGw7XG5cdFx0XHR0aGlzLl96ID0gdGhpcy5feiAqIGw7XG5cdFx0XHR0aGlzLl93ID0gdGhpcy5fdyAqIGw7XG5cblx0XHR9XG5cblx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG11bHRpcGx5OiBmdW5jdGlvbiAoIHEsIHAgKSB7XG5cblx0XHRpZiAoIHAgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Y29uc29sZS53YXJuKCAnVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlRdWF0ZXJuaW9ucyggYSwgYiApIGluc3RlYWQuJyApO1xuXHRcdFx0cmV0dXJuIHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyggcSwgcCApO1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyggdGhpcywgcSApO1xuXG5cdH0sXG5cblx0cHJlbXVsdGlwbHk6IGZ1bmN0aW9uICggcSApIHtcblxuXHRcdHJldHVybiB0aGlzLm11bHRpcGx5UXVhdGVybmlvbnMoIHEsIHRoaXMgKTtcblxuXHR9LFxuXG5cdG11bHRpcGx5UXVhdGVybmlvbnM6IGZ1bmN0aW9uICggYSwgYiApIHtcblxuXHRcdC8vIGZyb20gaHR0cDovL3d3dy5ldWNsaWRlYW5zcGFjZS5jb20vbWF0aHMvYWxnZWJyYS9yZWFsTm9ybWVkQWxnZWJyYS9xdWF0ZXJuaW9ucy9jb2RlL2luZGV4Lmh0bVxuXG5cdFx0dmFyIHFheCA9IGEuX3gsIHFheSA9IGEuX3ksIHFheiA9IGEuX3osIHFhdyA9IGEuX3c7XG5cdFx0dmFyIHFieCA9IGIuX3gsIHFieSA9IGIuX3ksIHFieiA9IGIuX3osIHFidyA9IGIuX3c7XG5cblx0XHR0aGlzLl94ID0gcWF4ICogcWJ3ICsgcWF3ICogcWJ4ICsgcWF5ICogcWJ6IC0gcWF6ICogcWJ5O1xuXHRcdHRoaXMuX3kgPSBxYXkgKiBxYncgKyBxYXcgKiBxYnkgKyBxYXogKiBxYnggLSBxYXggKiBxYno7XG5cdFx0dGhpcy5feiA9IHFheiAqIHFidyArIHFhdyAqIHFieiArIHFheCAqIHFieSAtIHFheSAqIHFieDtcblx0XHR0aGlzLl93ID0gcWF3ICogcWJ3IC0gcWF4ICogcWJ4IC0gcWF5ICogcWJ5IC0gcWF6ICogcWJ6O1xuXG5cdFx0dGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRzbGVycDogZnVuY3Rpb24gKCBxYiwgdCApIHtcblxuXHRcdGlmICggdCA9PT0gMCApIHJldHVybiB0aGlzO1xuXHRcdGlmICggdCA9PT0gMSApIHJldHVybiB0aGlzLmNvcHkoIHFiICk7XG5cblx0XHR2YXIgeCA9IHRoaXMuX3gsIHkgPSB0aGlzLl95LCB6ID0gdGhpcy5feiwgdyA9IHRoaXMuX3c7XG5cblx0XHQvLyBodHRwOi8vd3d3LmV1Y2xpZGVhbnNwYWNlLmNvbS9tYXRocy9hbGdlYnJhL3JlYWxOb3JtZWRBbGdlYnJhL3F1YXRlcm5pb25zL3NsZXJwL1xuXG5cdFx0dmFyIGNvc0hhbGZUaGV0YSA9IHcgKiBxYi5fdyArIHggKiBxYi5feCArIHkgKiBxYi5feSArIHogKiBxYi5fejtcblxuXHRcdGlmICggY29zSGFsZlRoZXRhIDwgMCApIHtcblxuXHRcdFx0dGhpcy5fdyA9IC0gcWIuX3c7XG5cdFx0XHR0aGlzLl94ID0gLSBxYi5feDtcblx0XHRcdHRoaXMuX3kgPSAtIHFiLl95O1xuXHRcdFx0dGhpcy5feiA9IC0gcWIuX3o7XG5cblx0XHRcdGNvc0hhbGZUaGV0YSA9IC0gY29zSGFsZlRoZXRhO1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0dGhpcy5jb3B5KCBxYiApO1xuXG5cdFx0fVxuXG5cdFx0aWYgKCBjb3NIYWxmVGhldGEgPj0gMS4wICkge1xuXG5cdFx0XHR0aGlzLl93ID0gdztcblx0XHRcdHRoaXMuX3ggPSB4O1xuXHRcdFx0dGhpcy5feSA9IHk7XG5cdFx0XHR0aGlzLl96ID0gejtcblxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHR9XG5cblx0XHR2YXIgc3FyU2luSGFsZlRoZXRhID0gMS4wIC0gY29zSGFsZlRoZXRhICogY29zSGFsZlRoZXRhO1xuXG5cdFx0aWYgKCBzcXJTaW5IYWxmVGhldGEgPD0gTnVtYmVyLkVQU0lMT04gKSB7XG5cblx0XHRcdHZhciBzID0gMSAtIHQ7XG5cdFx0XHR0aGlzLl93ID0gcyAqIHcgKyB0ICogdGhpcy5fdztcblx0XHRcdHRoaXMuX3ggPSBzICogeCArIHQgKiB0aGlzLl94O1xuXHRcdFx0dGhpcy5feSA9IHMgKiB5ICsgdCAqIHRoaXMuX3k7XG5cdFx0XHR0aGlzLl96ID0gcyAqIHogKyB0ICogdGhpcy5fejtcblxuXHRcdFx0dGhpcy5ub3JtYWxpemUoKTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHR9XG5cblx0XHR2YXIgc2luSGFsZlRoZXRhID0gTWF0aC5zcXJ0KCBzcXJTaW5IYWxmVGhldGEgKTtcblx0XHR2YXIgaGFsZlRoZXRhID0gTWF0aC5hdGFuMiggc2luSGFsZlRoZXRhLCBjb3NIYWxmVGhldGEgKTtcblx0XHR2YXIgcmF0aW9BID0gTWF0aC5zaW4oICggMSAtIHQgKSAqIGhhbGZUaGV0YSApIC8gc2luSGFsZlRoZXRhLFxuXHRcdFx0cmF0aW9CID0gTWF0aC5zaW4oIHQgKiBoYWxmVGhldGEgKSAvIHNpbkhhbGZUaGV0YTtcblxuXHRcdHRoaXMuX3cgPSAoIHcgKiByYXRpb0EgKyB0aGlzLl93ICogcmF0aW9CICk7XG5cdFx0dGhpcy5feCA9ICggeCAqIHJhdGlvQSArIHRoaXMuX3ggKiByYXRpb0IgKTtcblx0XHR0aGlzLl95ID0gKCB5ICogcmF0aW9BICsgdGhpcy5feSAqIHJhdGlvQiApO1xuXHRcdHRoaXMuX3ogPSAoIHogKiByYXRpb0EgKyB0aGlzLl96ICogcmF0aW9CICk7XG5cblx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGVxdWFsczogZnVuY3Rpb24gKCBxdWF0ZXJuaW9uICkge1xuXG5cdFx0cmV0dXJuICggcXVhdGVybmlvbi5feCA9PT0gdGhpcy5feCApICYmICggcXVhdGVybmlvbi5feSA9PT0gdGhpcy5feSApICYmICggcXVhdGVybmlvbi5feiA9PT0gdGhpcy5feiApICYmICggcXVhdGVybmlvbi5fdyA9PT0gdGhpcy5fdyApO1xuXG5cdH0sXG5cblx0ZnJvbUFycmF5OiBmdW5jdGlvbiAoIGFycmF5LCBvZmZzZXQgKSB7XG5cblx0XHRpZiAoIG9mZnNldCA9PT0gdW5kZWZpbmVkICkgb2Zmc2V0ID0gMDtcblxuXHRcdHRoaXMuX3ggPSBhcnJheVsgb2Zmc2V0IF07XG5cdFx0dGhpcy5feSA9IGFycmF5WyBvZmZzZXQgKyAxIF07XG5cdFx0dGhpcy5feiA9IGFycmF5WyBvZmZzZXQgKyAyIF07XG5cdFx0dGhpcy5fdyA9IGFycmF5WyBvZmZzZXQgKyAzIF07XG5cblx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHRvQXJyYXk6IGZ1bmN0aW9uICggYXJyYXksIG9mZnNldCApIHtcblxuXHRcdGlmICggYXJyYXkgPT09IHVuZGVmaW5lZCApIGFycmF5ID0gW107XG5cdFx0aWYgKCBvZmZzZXQgPT09IHVuZGVmaW5lZCApIG9mZnNldCA9IDA7XG5cblx0XHRhcnJheVsgb2Zmc2V0IF0gPSB0aGlzLl94O1xuXHRcdGFycmF5WyBvZmZzZXQgKyAxIF0gPSB0aGlzLl95O1xuXHRcdGFycmF5WyBvZmZzZXQgKyAyIF0gPSB0aGlzLl96O1xuXHRcdGFycmF5WyBvZmZzZXQgKyAzIF0gPSB0aGlzLl93O1xuXG5cdFx0cmV0dXJuIGFycmF5O1xuXG5cdH0sXG5cblx0X29uQ2hhbmdlOiBmdW5jdGlvbiAoIGNhbGxiYWNrICkge1xuXG5cdFx0dGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRfb25DaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24gKCkge31cblxufSApO1xuXG5cbmV4cG9ydCB7IFF1YXRlcm5pb24gfTsiXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/three/Vector3.js",
    "content": "import { _Math } from './Math.js';\nimport { Quaternion } from './Quaternion.js';\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author kile / http://kile.stravaganza.org/\n * @author philogb / http://blog.thejit.org/\n * @author mikael emtinger / http://gomo.se/\n * @author egraether / http://egraether.com/\n * @author WestLangley / http://github.com/WestLangley\n */\n\nfunction Vector3(x, y, z) {\n  this.x = x || 0;\n  this.y = y || 0;\n  this.z = z || 0;\n}\n\nObject.assign(Vector3.prototype, {\n  isVector3: true,\n  set: function (x, y, z) {\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    return this;\n  },\n  setScalar: function (scalar) {\n    this.x = scalar;\n    this.y = scalar;\n    this.z = scalar;\n    return this;\n  },\n  setX: function (x) {\n    this.x = x;\n    return this;\n  },\n  setY: function (y) {\n    this.y = y;\n    return this;\n  },\n  setZ: function (z) {\n    this.z = z;\n    return this;\n  },\n  setComponent: function (index, value) {\n    switch (index) {\n      case 0:\n        this.x = value;\n        break;\n\n      case 1:\n        this.y = value;\n        break;\n\n      case 2:\n        this.z = value;\n        break;\n\n      default:\n        throw new Error('index is out of range: ' + index);\n    }\n\n    return this;\n  },\n  getComponent: function (index) {\n    switch (index) {\n      case 0:\n        return this.x;\n\n      case 1:\n        return this.y;\n\n      case 2:\n        return this.z;\n\n      default:\n        throw new Error('index is out of range: ' + index);\n    }\n  },\n  clone: function () {\n    return new this.constructor(this.x, this.y, this.z);\n  },\n  copy: function (v) {\n    this.x = v.x;\n    this.y = v.y;\n    this.z = v.z;\n    return this;\n  },\n  add: function (v, w) {\n    if (w !== undefined) {\n      console.warn('THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.');\n      return this.addVectors(v, w);\n    }\n\n    this.x += v.x;\n    this.y += v.y;\n    this.z += v.z;\n    return this;\n  },\n  addScalar: function (s) {\n    this.x += s;\n    this.y += s;\n    this.z += s;\n    return this;\n  },\n  addVectors: function (a, b) {\n    this.x = a.x + b.x;\n    this.y = a.y + b.y;\n    this.z = a.z + b.z;\n    return this;\n  },\n  addScaledVector: function (v, s) {\n    this.x += v.x * s;\n    this.y += v.y * s;\n    this.z += v.z * s;\n    return this;\n  },\n  sub: function (v, w) {\n    if (w !== undefined) {\n      console.warn('THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.');\n      return this.subVectors(v, w);\n    }\n\n    this.x -= v.x;\n    this.y -= v.y;\n    this.z -= v.z;\n    return this;\n  },\n  subScalar: function (s) {\n    this.x -= s;\n    this.y -= s;\n    this.z -= s;\n    return this;\n  },\n  subVectors: function (a, b) {\n    this.x = a.x - b.x;\n    this.y = a.y - b.y;\n    this.z = a.z - b.z;\n    return this;\n  },\n  multiply: function (v, w) {\n    if (w !== undefined) {\n      console.warn('THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.');\n      return this.multiplyVectors(v, w);\n    }\n\n    this.x *= v.x;\n    this.y *= v.y;\n    this.z *= v.z;\n    return this;\n  },\n  multiplyScalar: function (scalar) {\n    this.x *= scalar;\n    this.y *= scalar;\n    this.z *= scalar;\n    return this;\n  },\n  multiplyVectors: function (a, b) {\n    this.x = a.x * b.x;\n    this.y = a.y * b.y;\n    this.z = a.z * b.z;\n    return this;\n  },\n  applyEuler: function () {\n    var quaternion = new Quaternion();\n    return function applyEuler(euler) {\n      if (!(euler && euler.isEuler)) {\n        console.error('THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.');\n      }\n\n      return this.applyQuaternion(quaternion.setFromEuler(euler));\n    };\n  }(),\n  applyAxisAngle: function () {\n    var quaternion = new Quaternion();\n    return function applyAxisAngle(axis, angle) {\n      return this.applyQuaternion(quaternion.setFromAxisAngle(axis, angle));\n    };\n  }(),\n  applyMatrix3: function (m) {\n    var x = this.x,\n        y = this.y,\n        z = this.z;\n    var e = m.elements;\n    this.x = e[0] * x + e[3] * y + e[6] * z;\n    this.y = e[1] * x + e[4] * y + e[7] * z;\n    this.z = e[2] * x + e[5] * y + e[8] * z;\n    return this;\n  },\n  applyMatrix4: function (m) {\n    var x = this.x,\n        y = this.y,\n        z = this.z;\n    var e = m.elements;\n    var w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);\n    this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;\n    this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;\n    this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;\n    return this;\n  },\n  applyQuaternion: function (q) {\n    var x = this.x,\n        y = this.y,\n        z = this.z;\n    var qx = q.x,\n        qy = q.y,\n        qz = q.z,\n        qw = q.w; // calculate quat * vector\n\n    var ix = qw * x + qy * z - qz * y;\n    var iy = qw * y + qz * x - qx * z;\n    var iz = qw * z + qx * y - qy * x;\n    var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n    this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n    this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n    this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n    return this;\n  },\n  project: function (camera) {\n    return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\n  },\n  unproject: function (camera) {\n    return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\n  },\n  transformDirection: function (m) {\n    // input: THREE.Matrix4 affine matrix\n    // vector interpreted as a direction\n    var x = this.x,\n        y = this.y,\n        z = this.z;\n    var e = m.elements;\n    this.x = e[0] * x + e[4] * y + e[8] * z;\n    this.y = e[1] * x + e[5] * y + e[9] * z;\n    this.z = e[2] * x + e[6] * y + e[10] * z;\n    return this.normalize();\n  },\n  divide: function (v) {\n    this.x /= v.x;\n    this.y /= v.y;\n    this.z /= v.z;\n    return this;\n  },\n  divideScalar: function (scalar) {\n    return this.multiplyScalar(1 / scalar);\n  },\n  min: function (v) {\n    this.x = Math.min(this.x, v.x);\n    this.y = Math.min(this.y, v.y);\n    this.z = Math.min(this.z, v.z);\n    return this;\n  },\n  max: function (v) {\n    this.x = Math.max(this.x, v.x);\n    this.y = Math.max(this.y, v.y);\n    this.z = Math.max(this.z, v.z);\n    return this;\n  },\n  clamp: function (min, max) {\n    // assumes min < max, componentwise\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\n    this.z = Math.max(min.z, Math.min(max.z, this.z));\n    return this;\n  },\n  clampScalar: function (minVal, maxVal) {\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\n    this.z = Math.max(minVal, Math.min(maxVal, this.z));\n    return this;\n  },\n  clampLength: function (min, max) {\n    var length = this.length();\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n  },\n  floor: function () {\n    this.x = Math.floor(this.x);\n    this.y = Math.floor(this.y);\n    this.z = Math.floor(this.z);\n    return this;\n  },\n  ceil: function () {\n    this.x = Math.ceil(this.x);\n    this.y = Math.ceil(this.y);\n    this.z = Math.ceil(this.z);\n    return this;\n  },\n  round: function () {\n    this.x = Math.round(this.x);\n    this.y = Math.round(this.y);\n    this.z = Math.round(this.z);\n    return this;\n  },\n  roundToZero: function () {\n    this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n    this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n    this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\n    return this;\n  },\n  negate: function () {\n    this.x = -this.x;\n    this.y = -this.y;\n    this.z = -this.z;\n    return this;\n  },\n  dot: function (v) {\n    return this.x * v.x + this.y * v.y + this.z * v.z;\n  },\n  // TODO lengthSquared?\n  lengthSq: function () {\n    return this.x * this.x + this.y * this.y + this.z * this.z;\n  },\n  length: function () {\n    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n  },\n  manhattanLength: function () {\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n  },\n  normalize: function () {\n    return this.divideScalar(this.length() || 1);\n  },\n  setLength: function (length) {\n    return this.normalize().multiplyScalar(length);\n  },\n  lerp: function (v, alpha) {\n    this.x += (v.x - this.x) * alpha;\n    this.y += (v.y - this.y) * alpha;\n    this.z += (v.z - this.z) * alpha;\n    return this;\n  },\n  lerpVectors: function (v1, v2, alpha) {\n    return this.subVectors(v2, v1).multiplyScalar(alpha).add(v1);\n  },\n  cross: function (v, w) {\n    if (w !== undefined) {\n      console.warn('THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.');\n      return this.crossVectors(v, w);\n    }\n\n    return this.crossVectors(this, v);\n  },\n  crossVectors: function (a, b) {\n    var ax = a.x,\n        ay = a.y,\n        az = a.z;\n    var bx = b.x,\n        by = b.y,\n        bz = b.z;\n    this.x = ay * bz - az * by;\n    this.y = az * bx - ax * bz;\n    this.z = ax * by - ay * bx;\n    return this;\n  },\n  projectOnVector: function (vector) {\n    var scalar = vector.dot(this) / vector.lengthSq();\n    return this.copy(vector).multiplyScalar(scalar);\n  },\n  projectOnPlane: function () {\n    var v1 = new Vector3();\n    return function projectOnPlane(planeNormal) {\n      v1.copy(this).projectOnVector(planeNormal);\n      return this.sub(v1);\n    };\n  }(),\n  reflect: function () {\n    // reflect incident vector off plane orthogonal to normal\n    // normal is assumed to have unit length\n    var v1 = new Vector3();\n    return function reflect(normal) {\n      return this.sub(v1.copy(normal).multiplyScalar(2 * this.dot(normal)));\n    };\n  }(),\n  angleTo: function (v) {\n    var theta = this.dot(v) / Math.sqrt(this.lengthSq() * v.lengthSq()); // clamp, to handle numerical problems\n\n    return Math.acos(_Math.clamp(theta, -1, 1));\n  },\n  distanceTo: function (v) {\n    return Math.sqrt(this.distanceToSquared(v));\n  },\n  distanceToSquared: function (v) {\n    var dx = this.x - v.x,\n        dy = this.y - v.y,\n        dz = this.z - v.z;\n    return dx * dx + dy * dy + dz * dz;\n  },\n  manhattanDistanceTo: function (v) {\n    return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\n  },\n  setFromSpherical: function (s) {\n    return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n  },\n  setFromSphericalCoords: function (radius, phi, theta) {\n    var sinPhiRadius = Math.sin(phi) * radius;\n    this.x = sinPhiRadius * Math.sin(theta);\n    this.y = Math.cos(phi) * radius;\n    this.z = sinPhiRadius * Math.cos(theta);\n    return this;\n  },\n  setFromCylindrical: function (c) {\n    return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n  },\n  setFromCylindricalCoords: function (radius, theta, y) {\n    this.x = radius * Math.sin(theta);\n    this.y = y;\n    this.z = radius * Math.cos(theta);\n    return this;\n  },\n  setFromMatrixPosition: function (m) {\n    var e = m.elements;\n    this.x = e[12];\n    this.y = e[13];\n    this.z = e[14];\n    return this;\n  },\n  setFromMatrixScale: function (m) {\n    var sx = this.setFromMatrixColumn(m, 0).length();\n    var sy = this.setFromMatrixColumn(m, 1).length();\n    var sz = this.setFromMatrixColumn(m, 2).length();\n    this.x = sx;\n    this.y = sy;\n    this.z = sz;\n    return this;\n  },\n  setFromMatrixColumn: function (m, index) {\n    return this.fromArray(m.elements, index * 4);\n  },\n  equals: function (v) {\n    return v.x === this.x && v.y === this.y && v.z === this.z;\n  },\n  fromArray: function (array, offset) {\n    if (offset === undefined) offset = 0;\n    this.x = array[offset];\n    this.y = array[offset + 1];\n    this.z = array[offset + 2];\n    return this;\n  },\n  toArray: function (array, offset) {\n    if (array === undefined) array = [];\n    if (offset === undefined) offset = 0;\n    array[offset] = this.x;\n    array[offset + 1] = this.y;\n    array[offset + 2] = this.z;\n    return array;\n  },\n  fromBufferAttribute: function (attribute, index, offset) {\n    if (offset !== undefined) {\n      console.warn('THREE.Vector3: offset has been removed from .fromBufferAttribute().');\n    }\n\n    this.x = attribute.getX(index);\n    this.y = attribute.getY(index);\n    this.z = attribute.getZ(index);\n    return this;\n  }\n});\nexport { Vector3 };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL1ZlY3RvcjMuanMiXSwibmFtZXMiOlsiX01hdGgiLCJRdWF0ZXJuaW9uIiwiVmVjdG9yMyIsIngiLCJ5IiwieiIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImlzVmVjdG9yMyIsInNldCIsInNldFNjYWxhciIsInNjYWxhciIsInNldFgiLCJzZXRZIiwic2V0WiIsInNldENvbXBvbmVudCIsImluZGV4IiwidmFsdWUiLCJFcnJvciIsImdldENvbXBvbmVudCIsImNsb25lIiwiY29uc3RydWN0b3IiLCJjb3B5IiwidiIsImFkZCIsInciLCJ1bmRlZmluZWQiLCJjb25zb2xlIiwid2FybiIsImFkZFZlY3RvcnMiLCJhZGRTY2FsYXIiLCJzIiwiYSIsImIiLCJhZGRTY2FsZWRWZWN0b3IiLCJzdWIiLCJzdWJWZWN0b3JzIiwic3ViU2NhbGFyIiwibXVsdGlwbHkiLCJtdWx0aXBseVZlY3RvcnMiLCJtdWx0aXBseVNjYWxhciIsImFwcGx5RXVsZXIiLCJxdWF0ZXJuaW9uIiwiZXVsZXIiLCJpc0V1bGVyIiwiZXJyb3IiLCJhcHBseVF1YXRlcm5pb24iLCJzZXRGcm9tRXVsZXIiLCJhcHBseUF4aXNBbmdsZSIsImF4aXMiLCJhbmdsZSIsInNldEZyb21BeGlzQW5nbGUiLCJhcHBseU1hdHJpeDMiLCJtIiwiZSIsImVsZW1lbnRzIiwiYXBwbHlNYXRyaXg0IiwicSIsInF4IiwicXkiLCJxeiIsInF3IiwiaXgiLCJpeSIsIml6IiwiaXciLCJwcm9qZWN0IiwiY2FtZXJhIiwibWF0cml4V29ybGRJbnZlcnNlIiwicHJvamVjdGlvbk1hdHJpeCIsInVucHJvamVjdCIsInByb2plY3Rpb25NYXRyaXhJbnZlcnNlIiwibWF0cml4V29ybGQiLCJ0cmFuc2Zvcm1EaXJlY3Rpb24iLCJub3JtYWxpemUiLCJkaXZpZGUiLCJkaXZpZGVTY2FsYXIiLCJtaW4iLCJNYXRoIiwibWF4IiwiY2xhbXAiLCJjbGFtcFNjYWxhciIsIm1pblZhbCIsIm1heFZhbCIsImNsYW1wTGVuZ3RoIiwibGVuZ3RoIiwiZmxvb3IiLCJjZWlsIiwicm91bmQiLCJyb3VuZFRvWmVybyIsIm5lZ2F0ZSIsImRvdCIsImxlbmd0aFNxIiwic3FydCIsIm1hbmhhdHRhbkxlbmd0aCIsImFicyIsInNldExlbmd0aCIsImxlcnAiLCJhbHBoYSIsImxlcnBWZWN0b3JzIiwidjEiLCJ2MiIsImNyb3NzIiwiY3Jvc3NWZWN0b3JzIiwiYXgiLCJheSIsImF6IiwiYngiLCJieSIsImJ6IiwicHJvamVjdE9uVmVjdG9yIiwidmVjdG9yIiwicHJvamVjdE9uUGxhbmUiLCJwbGFuZU5vcm1hbCIsInJlZmxlY3QiLCJub3JtYWwiLCJhbmdsZVRvIiwidGhldGEiLCJhY29zIiwiZGlzdGFuY2VUbyIsImRpc3RhbmNlVG9TcXVhcmVkIiwiZHgiLCJkeSIsImR6IiwibWFuaGF0dGFuRGlzdGFuY2VUbyIsInNldEZyb21TcGhlcmljYWwiLCJzZXRGcm9tU3BoZXJpY2FsQ29vcmRzIiwicmFkaXVzIiwicGhpIiwic2luUGhpUmFkaXVzIiwic2luIiwiY29zIiwic2V0RnJvbUN5bGluZHJpY2FsIiwiYyIsInNldEZyb21DeWxpbmRyaWNhbENvb3JkcyIsInNldEZyb21NYXRyaXhQb3NpdGlvbiIsInNldEZyb21NYXRyaXhTY2FsZSIsInN4Iiwic2V0RnJvbU1hdHJpeENvbHVtbiIsInN5Iiwic3oiLCJmcm9tQXJyYXkiLCJlcXVhbHMiLCJhcnJheSIsIm9mZnNldCIsInRvQXJyYXkiLCJmcm9tQnVmZmVyQXR0cmlidXRlIiwiYXR0cmlidXRlIiwiZ2V0WCIsImdldFkiLCJnZXRaIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxLQUFULFFBQXNCLFdBQXRCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixpQkFBM0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNDLE9BQVQsQ0FBa0JDLENBQWxCLEVBQXFCQyxDQUFyQixFQUF3QkMsQ0FBeEIsRUFBNEI7QUFFM0IsT0FBS0YsQ0FBTCxHQUFTQSxDQUFDLElBQUksQ0FBZDtBQUNBLE9BQUtDLENBQUwsR0FBU0EsQ0FBQyxJQUFJLENBQWQ7QUFDQSxPQUFLQyxDQUFMLEdBQVNBLENBQUMsSUFBSSxDQUFkO0FBRUE7O0FBRURDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFlTCxPQUFPLENBQUNNLFNBQXZCLEVBQWtDO0FBRWpDQyxFQUFBQSxTQUFTLEVBQUUsSUFGc0I7QUFJakNDLEVBQUFBLEdBQUcsRUFBRSxVQUFXUCxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCLEVBQXFCO0FBRXpCLFNBQUtGLENBQUwsR0FBU0EsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBU0EsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBU0EsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBWmdDO0FBY2pDTSxFQUFBQSxTQUFTLEVBQUUsVUFBV0MsTUFBWCxFQUFvQjtBQUU5QixTQUFLVCxDQUFMLEdBQVNTLE1BQVQ7QUFDQSxTQUFLUixDQUFMLEdBQVNRLE1BQVQ7QUFDQSxTQUFLUCxDQUFMLEdBQVNPLE1BQVQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXRCZ0M7QUF3QmpDQyxFQUFBQSxJQUFJLEVBQUUsVUFBV1YsQ0FBWCxFQUFlO0FBRXBCLFNBQUtBLENBQUwsR0FBU0EsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBOUJnQztBQWdDakNXLEVBQUFBLElBQUksRUFBRSxVQUFXVixDQUFYLEVBQWU7QUFFcEIsU0FBS0EsQ0FBTCxHQUFTQSxDQUFUO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0F0Q2dDO0FBd0NqQ1csRUFBQUEsSUFBSSxFQUFFLFVBQVdWLENBQVgsRUFBZTtBQUVwQixTQUFLQSxDQUFMLEdBQVNBLENBQVQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTlDZ0M7QUFnRGpDVyxFQUFBQSxZQUFZLEVBQUUsVUFBV0MsS0FBWCxFQUFrQkMsS0FBbEIsRUFBMEI7QUFFdkMsWUFBU0QsS0FBVDtBQUVDLFdBQUssQ0FBTDtBQUFRLGFBQUtkLENBQUwsR0FBU2UsS0FBVDtBQUFnQjs7QUFDeEIsV0FBSyxDQUFMO0FBQVEsYUFBS2QsQ0FBTCxHQUFTYyxLQUFUO0FBQWdCOztBQUN4QixXQUFLLENBQUw7QUFBUSxhQUFLYixDQUFMLEdBQVNhLEtBQVQ7QUFBZ0I7O0FBQ3hCO0FBQVMsY0FBTSxJQUFJQyxLQUFKLENBQVcsNEJBQTRCRixLQUF2QyxDQUFOO0FBTFY7O0FBU0EsV0FBTyxJQUFQO0FBRUEsR0E3RGdDO0FBK0RqQ0csRUFBQUEsWUFBWSxFQUFFLFVBQVdILEtBQVgsRUFBbUI7QUFFaEMsWUFBU0EsS0FBVDtBQUVDLFdBQUssQ0FBTDtBQUFRLGVBQU8sS0FBS2QsQ0FBWjs7QUFDUixXQUFLLENBQUw7QUFBUSxlQUFPLEtBQUtDLENBQVo7O0FBQ1IsV0FBSyxDQUFMO0FBQVEsZUFBTyxLQUFLQyxDQUFaOztBQUNSO0FBQVMsY0FBTSxJQUFJYyxLQUFKLENBQVcsNEJBQTRCRixLQUF2QyxDQUFOO0FBTFY7QUFTQSxHQTFFZ0M7QUE0RWpDSSxFQUFBQSxLQUFLLEVBQUUsWUFBWTtBQUVsQixXQUFPLElBQUksS0FBS0MsV0FBVCxDQUFzQixLQUFLbkIsQ0FBM0IsRUFBOEIsS0FBS0MsQ0FBbkMsRUFBc0MsS0FBS0MsQ0FBM0MsQ0FBUDtBQUVBLEdBaEZnQztBQWtGakNrQixFQUFBQSxJQUFJLEVBQUUsVUFBV0MsQ0FBWCxFQUFlO0FBRXBCLFNBQUtyQixDQUFMLEdBQVNxQixDQUFDLENBQUNyQixDQUFYO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTb0IsQ0FBQyxDQUFDcEIsQ0FBWDtBQUNBLFNBQUtDLENBQUwsR0FBU21CLENBQUMsQ0FBQ25CLENBQVg7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTFGZ0M7QUE0RmpDb0IsRUFBQUEsR0FBRyxFQUFFLFVBQVdELENBQVgsRUFBY0UsQ0FBZCxFQUFrQjtBQUV0QixRQUFLQSxDQUFDLEtBQUtDLFNBQVgsRUFBdUI7QUFFdEJDLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLHVGQUFkO0FBQ0EsYUFBTyxLQUFLQyxVQUFMLENBQWlCTixDQUFqQixFQUFvQkUsQ0FBcEIsQ0FBUDtBQUVBOztBQUVELFNBQUt2QixDQUFMLElBQVVxQixDQUFDLENBQUNyQixDQUFaO0FBQ0EsU0FBS0MsQ0FBTCxJQUFVb0IsQ0FBQyxDQUFDcEIsQ0FBWjtBQUNBLFNBQUtDLENBQUwsSUFBVW1CLENBQUMsQ0FBQ25CLENBQVo7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTNHZ0M7QUE2R2pDMEIsRUFBQUEsU0FBUyxFQUFFLFVBQVdDLENBQVgsRUFBZTtBQUV6QixTQUFLN0IsQ0FBTCxJQUFVNkIsQ0FBVjtBQUNBLFNBQUs1QixDQUFMLElBQVU0QixDQUFWO0FBQ0EsU0FBSzNCLENBQUwsSUFBVTJCLENBQVY7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXJIZ0M7QUF1SGpDRixFQUFBQSxVQUFVLEVBQUUsVUFBV0csQ0FBWCxFQUFjQyxDQUFkLEVBQWtCO0FBRTdCLFNBQUsvQixDQUFMLEdBQVM4QixDQUFDLENBQUM5QixDQUFGLEdBQU0rQixDQUFDLENBQUMvQixDQUFqQjtBQUNBLFNBQUtDLENBQUwsR0FBUzZCLENBQUMsQ0FBQzdCLENBQUYsR0FBTThCLENBQUMsQ0FBQzlCLENBQWpCO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTNEIsQ0FBQyxDQUFDNUIsQ0FBRixHQUFNNkIsQ0FBQyxDQUFDN0IsQ0FBakI7QUFFQSxXQUFPLElBQVA7QUFFQSxHQS9IZ0M7QUFpSWpDOEIsRUFBQUEsZUFBZSxFQUFFLFVBQVdYLENBQVgsRUFBY1EsQ0FBZCxFQUFrQjtBQUVsQyxTQUFLN0IsQ0FBTCxJQUFVcUIsQ0FBQyxDQUFDckIsQ0FBRixHQUFNNkIsQ0FBaEI7QUFDQSxTQUFLNUIsQ0FBTCxJQUFVb0IsQ0FBQyxDQUFDcEIsQ0FBRixHQUFNNEIsQ0FBaEI7QUFDQSxTQUFLM0IsQ0FBTCxJQUFVbUIsQ0FBQyxDQUFDbkIsQ0FBRixHQUFNMkIsQ0FBaEI7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXpJZ0M7QUEySWpDSSxFQUFBQSxHQUFHLEVBQUUsVUFBV1osQ0FBWCxFQUFjRSxDQUFkLEVBQWtCO0FBRXRCLFFBQUtBLENBQUMsS0FBS0MsU0FBWCxFQUF1QjtBQUV0QkMsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWMsdUZBQWQ7QUFDQSxhQUFPLEtBQUtRLFVBQUwsQ0FBaUJiLENBQWpCLEVBQW9CRSxDQUFwQixDQUFQO0FBRUE7O0FBRUQsU0FBS3ZCLENBQUwsSUFBVXFCLENBQUMsQ0FBQ3JCLENBQVo7QUFDQSxTQUFLQyxDQUFMLElBQVVvQixDQUFDLENBQUNwQixDQUFaO0FBQ0EsU0FBS0MsQ0FBTCxJQUFVbUIsQ0FBQyxDQUFDbkIsQ0FBWjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBMUpnQztBQTRKakNpQyxFQUFBQSxTQUFTLEVBQUUsVUFBV04sQ0FBWCxFQUFlO0FBRXpCLFNBQUs3QixDQUFMLElBQVU2QixDQUFWO0FBQ0EsU0FBSzVCLENBQUwsSUFBVTRCLENBQVY7QUFDQSxTQUFLM0IsQ0FBTCxJQUFVMkIsQ0FBVjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBcEtnQztBQXNLakNLLEVBQUFBLFVBQVUsRUFBRSxVQUFXSixDQUFYLEVBQWNDLENBQWQsRUFBa0I7QUFFN0IsU0FBSy9CLENBQUwsR0FBUzhCLENBQUMsQ0FBQzlCLENBQUYsR0FBTStCLENBQUMsQ0FBQy9CLENBQWpCO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTNkIsQ0FBQyxDQUFDN0IsQ0FBRixHQUFNOEIsQ0FBQyxDQUFDOUIsQ0FBakI7QUFDQSxTQUFLQyxDQUFMLEdBQVM0QixDQUFDLENBQUM1QixDQUFGLEdBQU02QixDQUFDLENBQUM3QixDQUFqQjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBOUtnQztBQWdMakNrQyxFQUFBQSxRQUFRLEVBQUUsVUFBV2YsQ0FBWCxFQUFjRSxDQUFkLEVBQWtCO0FBRTNCLFFBQUtBLENBQUMsS0FBS0MsU0FBWCxFQUF1QjtBQUV0QkMsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWMsaUdBQWQ7QUFDQSxhQUFPLEtBQUtXLGVBQUwsQ0FBc0JoQixDQUF0QixFQUF5QkUsQ0FBekIsQ0FBUDtBQUVBOztBQUVELFNBQUt2QixDQUFMLElBQVVxQixDQUFDLENBQUNyQixDQUFaO0FBQ0EsU0FBS0MsQ0FBTCxJQUFVb0IsQ0FBQyxDQUFDcEIsQ0FBWjtBQUNBLFNBQUtDLENBQUwsSUFBVW1CLENBQUMsQ0FBQ25CLENBQVo7QUFFQSxXQUFPLElBQVA7QUFFQSxHQS9MZ0M7QUFpTWpDb0MsRUFBQUEsY0FBYyxFQUFFLFVBQVc3QixNQUFYLEVBQW9CO0FBRW5DLFNBQUtULENBQUwsSUFBVVMsTUFBVjtBQUNBLFNBQUtSLENBQUwsSUFBVVEsTUFBVjtBQUNBLFNBQUtQLENBQUwsSUFBVU8sTUFBVjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBek1nQztBQTJNakM0QixFQUFBQSxlQUFlLEVBQUUsVUFBV1AsQ0FBWCxFQUFjQyxDQUFkLEVBQWtCO0FBRWxDLFNBQUsvQixDQUFMLEdBQVM4QixDQUFDLENBQUM5QixDQUFGLEdBQU0rQixDQUFDLENBQUMvQixDQUFqQjtBQUNBLFNBQUtDLENBQUwsR0FBUzZCLENBQUMsQ0FBQzdCLENBQUYsR0FBTThCLENBQUMsQ0FBQzlCLENBQWpCO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTNEIsQ0FBQyxDQUFDNUIsQ0FBRixHQUFNNkIsQ0FBQyxDQUFDN0IsQ0FBakI7QUFFQSxXQUFPLElBQVA7QUFFQSxHQW5OZ0M7QUFxTmpDcUMsRUFBQUEsVUFBVSxFQUFFLFlBQVk7QUFFdkIsUUFBSUMsVUFBVSxHQUFHLElBQUkxQyxVQUFKLEVBQWpCO0FBRUEsV0FBTyxTQUFTeUMsVUFBVCxDQUFxQkUsS0FBckIsRUFBNkI7QUFFbkMsVUFBSyxFQUFJQSxLQUFLLElBQUlBLEtBQUssQ0FBQ0MsT0FBbkIsQ0FBTCxFQUFvQztBQUVuQ2pCLFFBQUFBLE9BQU8sQ0FBQ2tCLEtBQVIsQ0FBZSw2RkFBZjtBQUVBOztBQUVELGFBQU8sS0FBS0MsZUFBTCxDQUFzQkosVUFBVSxDQUFDSyxZQUFYLENBQXlCSixLQUF6QixDQUF0QixDQUFQO0FBRUEsS0FWRDtBQVlBLEdBaEJXLEVBck5xQjtBQXVPakNLLEVBQUFBLGNBQWMsRUFBRSxZQUFZO0FBRTNCLFFBQUlOLFVBQVUsR0FBRyxJQUFJMUMsVUFBSixFQUFqQjtBQUVBLFdBQU8sU0FBU2dELGNBQVQsQ0FBeUJDLElBQXpCLEVBQStCQyxLQUEvQixFQUF1QztBQUU3QyxhQUFPLEtBQUtKLGVBQUwsQ0FBc0JKLFVBQVUsQ0FBQ1MsZ0JBQVgsQ0FBNkJGLElBQTdCLEVBQW1DQyxLQUFuQyxDQUF0QixDQUFQO0FBRUEsS0FKRDtBQU1BLEdBVmUsRUF2T2lCO0FBbVBqQ0UsRUFBQUEsWUFBWSxFQUFFLFVBQVdDLENBQVgsRUFBZTtBQUU1QixRQUFJbkQsQ0FBQyxHQUFHLEtBQUtBLENBQWI7QUFBQSxRQUFnQkMsQ0FBQyxHQUFHLEtBQUtBLENBQXpCO0FBQUEsUUFBNEJDLENBQUMsR0FBRyxLQUFLQSxDQUFyQztBQUNBLFFBQUlrRCxDQUFDLEdBQUdELENBQUMsQ0FBQ0UsUUFBVjtBQUVBLFNBQUtyRCxDQUFMLEdBQVNvRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNwRCxDQUFULEdBQWFvRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNuRCxDQUF0QixHQUEwQm1ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU2xELENBQTVDO0FBQ0EsU0FBS0QsQ0FBTCxHQUFTbUQsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTcEQsQ0FBVCxHQUFhb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbkQsQ0FBdEIsR0FBMEJtRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNsRCxDQUE1QztBQUNBLFNBQUtBLENBQUwsR0FBU2tELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU3BELENBQVQsR0FBYW9ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU25ELENBQXRCLEdBQTBCbUQsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbEQsQ0FBNUM7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTlQZ0M7QUFnUWpDb0QsRUFBQUEsWUFBWSxFQUFFLFVBQVdILENBQVgsRUFBZTtBQUU1QixRQUFJbkQsQ0FBQyxHQUFHLEtBQUtBLENBQWI7QUFBQSxRQUFnQkMsQ0FBQyxHQUFHLEtBQUtBLENBQXpCO0FBQUEsUUFBNEJDLENBQUMsR0FBRyxLQUFLQSxDQUFyQztBQUNBLFFBQUlrRCxDQUFDLEdBQUdELENBQUMsQ0FBQ0UsUUFBVjtBQUVBLFFBQUk5QixDQUFDLEdBQUcsS0FBTTZCLENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU3BELENBQVQsR0FBYW9ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU25ELENBQXRCLEdBQTBCbUQsQ0FBQyxDQUFFLEVBQUYsQ0FBRCxHQUFVbEQsQ0FBcEMsR0FBd0NrRCxDQUFDLENBQUUsRUFBRixDQUEvQyxDQUFSO0FBRUEsU0FBS3BELENBQUwsR0FBUyxDQUFFb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTcEQsQ0FBVCxHQUFhb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbkQsQ0FBdEIsR0FBMEJtRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNsRCxDQUFuQyxHQUF1Q2tELENBQUMsQ0FBRSxFQUFGLENBQTFDLElBQXFEN0IsQ0FBOUQ7QUFDQSxTQUFLdEIsQ0FBTCxHQUFTLENBQUVtRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNwRCxDQUFULEdBQWFvRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNuRCxDQUF0QixHQUEwQm1ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU2xELENBQW5DLEdBQXVDa0QsQ0FBQyxDQUFFLEVBQUYsQ0FBMUMsSUFBcUQ3QixDQUE5RDtBQUNBLFNBQUtyQixDQUFMLEdBQVMsQ0FBRWtELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU3BELENBQVQsR0FBYW9ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU25ELENBQXRCLEdBQTBCbUQsQ0FBQyxDQUFFLEVBQUYsQ0FBRCxHQUFVbEQsQ0FBcEMsR0FBd0NrRCxDQUFDLENBQUUsRUFBRixDQUEzQyxJQUFzRDdCLENBQS9EO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0E3UWdDO0FBK1FqQ3FCLEVBQUFBLGVBQWUsRUFBRSxVQUFXVyxDQUFYLEVBQWU7QUFFL0IsUUFBSXZELENBQUMsR0FBRyxLQUFLQSxDQUFiO0FBQUEsUUFBZ0JDLENBQUMsR0FBRyxLQUFLQSxDQUF6QjtBQUFBLFFBQTRCQyxDQUFDLEdBQUcsS0FBS0EsQ0FBckM7QUFDQSxRQUFJc0QsRUFBRSxHQUFHRCxDQUFDLENBQUN2RCxDQUFYO0FBQUEsUUFBY3lELEVBQUUsR0FBR0YsQ0FBQyxDQUFDdEQsQ0FBckI7QUFBQSxRQUF3QnlELEVBQUUsR0FBR0gsQ0FBQyxDQUFDckQsQ0FBL0I7QUFBQSxRQUFrQ3lELEVBQUUsR0FBR0osQ0FBQyxDQUFDaEMsQ0FBekMsQ0FIK0IsQ0FLL0I7O0FBRUEsUUFBSXFDLEVBQUUsR0FBR0QsRUFBRSxHQUFHM0QsQ0FBTCxHQUFTeUQsRUFBRSxHQUFHdkQsQ0FBZCxHQUFrQndELEVBQUUsR0FBR3pELENBQWhDO0FBQ0EsUUFBSTRELEVBQUUsR0FBR0YsRUFBRSxHQUFHMUQsQ0FBTCxHQUFTeUQsRUFBRSxHQUFHMUQsQ0FBZCxHQUFrQndELEVBQUUsR0FBR3RELENBQWhDO0FBQ0EsUUFBSTRELEVBQUUsR0FBR0gsRUFBRSxHQUFHekQsQ0FBTCxHQUFTc0QsRUFBRSxHQUFHdkQsQ0FBZCxHQUFrQndELEVBQUUsR0FBR3pELENBQWhDO0FBQ0EsUUFBSStELEVBQUUsR0FBRyxDQUFFUCxFQUFGLEdBQU94RCxDQUFQLEdBQVd5RCxFQUFFLEdBQUd4RCxDQUFoQixHQUFvQnlELEVBQUUsR0FBR3hELENBQWxDLENBVitCLENBWS9COztBQUVBLFNBQUtGLENBQUwsR0FBUzRELEVBQUUsR0FBR0QsRUFBTCxHQUFVSSxFQUFFLEdBQUcsQ0FBRVAsRUFBakIsR0FBc0JLLEVBQUUsR0FBRyxDQUFFSCxFQUE3QixHQUFrQ0ksRUFBRSxHQUFHLENBQUVMLEVBQWxEO0FBQ0EsU0FBS3hELENBQUwsR0FBUzRELEVBQUUsR0FBR0YsRUFBTCxHQUFVSSxFQUFFLEdBQUcsQ0FBRU4sRUFBakIsR0FBc0JLLEVBQUUsR0FBRyxDQUFFTixFQUE3QixHQUFrQ0ksRUFBRSxHQUFHLENBQUVGLEVBQWxEO0FBQ0EsU0FBS3hELENBQUwsR0FBUzRELEVBQUUsR0FBR0gsRUFBTCxHQUFVSSxFQUFFLEdBQUcsQ0FBRUwsRUFBakIsR0FBc0JFLEVBQUUsR0FBRyxDQUFFSCxFQUE3QixHQUFrQ0ksRUFBRSxHQUFHLENBQUVMLEVBQWxEO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FuU2dDO0FBcVNqQ1EsRUFBQUEsT0FBTyxFQUFFLFVBQVdDLE1BQVgsRUFBb0I7QUFFNUIsV0FBTyxLQUFLWCxZQUFMLENBQW1CVyxNQUFNLENBQUNDLGtCQUExQixFQUErQ1osWUFBL0MsQ0FBNkRXLE1BQU0sQ0FBQ0UsZ0JBQXBFLENBQVA7QUFFQSxHQXpTZ0M7QUEyU2pDQyxFQUFBQSxTQUFTLEVBQUUsVUFBV0gsTUFBWCxFQUFvQjtBQUU5QixXQUFPLEtBQUtYLFlBQUwsQ0FBbUJXLE1BQU0sQ0FBQ0ksdUJBQTFCLEVBQW9EZixZQUFwRCxDQUFrRVcsTUFBTSxDQUFDSyxXQUF6RSxDQUFQO0FBRUEsR0EvU2dDO0FBaVRqQ0MsRUFBQUEsa0JBQWtCLEVBQUUsVUFBV3BCLENBQVgsRUFBZTtBQUVsQztBQUNBO0FBRUEsUUFBSW5ELENBQUMsR0FBRyxLQUFLQSxDQUFiO0FBQUEsUUFBZ0JDLENBQUMsR0FBRyxLQUFLQSxDQUF6QjtBQUFBLFFBQTRCQyxDQUFDLEdBQUcsS0FBS0EsQ0FBckM7QUFDQSxRQUFJa0QsQ0FBQyxHQUFHRCxDQUFDLENBQUNFLFFBQVY7QUFFQSxTQUFLckQsQ0FBTCxHQUFTb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTcEQsQ0FBVCxHQUFhb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbkQsQ0FBdEIsR0FBMEJtRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNsRCxDQUE1QztBQUNBLFNBQUtELENBQUwsR0FBU21ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU3BELENBQVQsR0FBYW9ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU25ELENBQXRCLEdBQTBCbUQsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbEQsQ0FBNUM7QUFDQSxTQUFLQSxDQUFMLEdBQVNrRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNwRCxDQUFULEdBQWFvRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNuRCxDQUF0QixHQUEwQm1ELENBQUMsQ0FBRSxFQUFGLENBQUQsR0FBVWxELENBQTdDO0FBRUEsV0FBTyxLQUFLc0UsU0FBTCxFQUFQO0FBRUEsR0EvVGdDO0FBaVVqQ0MsRUFBQUEsTUFBTSxFQUFFLFVBQVdwRCxDQUFYLEVBQWU7QUFFdEIsU0FBS3JCLENBQUwsSUFBVXFCLENBQUMsQ0FBQ3JCLENBQVo7QUFDQSxTQUFLQyxDQUFMLElBQVVvQixDQUFDLENBQUNwQixDQUFaO0FBQ0EsU0FBS0MsQ0FBTCxJQUFVbUIsQ0FBQyxDQUFDbkIsQ0FBWjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBelVnQztBQTJVakN3RSxFQUFBQSxZQUFZLEVBQUUsVUFBV2pFLE1BQVgsRUFBb0I7QUFFakMsV0FBTyxLQUFLNkIsY0FBTCxDQUFxQixJQUFJN0IsTUFBekIsQ0FBUDtBQUVBLEdBL1VnQztBQWlWakNrRSxFQUFBQSxHQUFHLEVBQUUsVUFBV3RELENBQVgsRUFBZTtBQUVuQixTQUFLckIsQ0FBTCxHQUFTNEUsSUFBSSxDQUFDRCxHQUFMLENBQVUsS0FBSzNFLENBQWYsRUFBa0JxQixDQUFDLENBQUNyQixDQUFwQixDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTMkUsSUFBSSxDQUFDRCxHQUFMLENBQVUsS0FBSzFFLENBQWYsRUFBa0JvQixDQUFDLENBQUNwQixDQUFwQixDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTMEUsSUFBSSxDQUFDRCxHQUFMLENBQVUsS0FBS3pFLENBQWYsRUFBa0JtQixDQUFDLENBQUNuQixDQUFwQixDQUFUO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0F6VmdDO0FBMlZqQzJFLEVBQUFBLEdBQUcsRUFBRSxVQUFXeEQsQ0FBWCxFQUFlO0FBRW5CLFNBQUtyQixDQUFMLEdBQVM0RSxJQUFJLENBQUNDLEdBQUwsQ0FBVSxLQUFLN0UsQ0FBZixFQUFrQnFCLENBQUMsQ0FBQ3JCLENBQXBCLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMyRSxJQUFJLENBQUNDLEdBQUwsQ0FBVSxLQUFLNUUsQ0FBZixFQUFrQm9CLENBQUMsQ0FBQ3BCLENBQXBCLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMwRSxJQUFJLENBQUNDLEdBQUwsQ0FBVSxLQUFLM0UsQ0FBZixFQUFrQm1CLENBQUMsQ0FBQ25CLENBQXBCLENBQVQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQW5XZ0M7QUFxV2pDNEUsRUFBQUEsS0FBSyxFQUFFLFVBQVdILEdBQVgsRUFBZ0JFLEdBQWhCLEVBQXNCO0FBRTVCO0FBRUEsU0FBSzdFLENBQUwsR0FBUzRFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRixHQUFHLENBQUMzRSxDQUFkLEVBQWlCNEUsSUFBSSxDQUFDRCxHQUFMLENBQVVFLEdBQUcsQ0FBQzdFLENBQWQsRUFBaUIsS0FBS0EsQ0FBdEIsQ0FBakIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzJFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRixHQUFHLENBQUMxRSxDQUFkLEVBQWlCMkUsSUFBSSxDQUFDRCxHQUFMLENBQVVFLEdBQUcsQ0FBQzVFLENBQWQsRUFBaUIsS0FBS0EsQ0FBdEIsQ0FBakIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzBFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRixHQUFHLENBQUN6RSxDQUFkLEVBQWlCMEUsSUFBSSxDQUFDRCxHQUFMLENBQVVFLEdBQUcsQ0FBQzNFLENBQWQsRUFBaUIsS0FBS0EsQ0FBdEIsQ0FBakIsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBL1dnQztBQWlYakM2RSxFQUFBQSxXQUFXLEVBQUUsVUFBV0MsTUFBWCxFQUFtQkMsTUFBbkIsRUFBNEI7QUFFeEMsU0FBS2pGLENBQUwsR0FBUzRFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRyxNQUFWLEVBQWtCSixJQUFJLENBQUNELEdBQUwsQ0FBVU0sTUFBVixFQUFrQixLQUFLakYsQ0FBdkIsQ0FBbEIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzJFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRyxNQUFWLEVBQWtCSixJQUFJLENBQUNELEdBQUwsQ0FBVU0sTUFBVixFQUFrQixLQUFLaEYsQ0FBdkIsQ0FBbEIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzBFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRyxNQUFWLEVBQWtCSixJQUFJLENBQUNELEdBQUwsQ0FBVU0sTUFBVixFQUFrQixLQUFLL0UsQ0FBdkIsQ0FBbEIsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBelhnQztBQTJYakNnRixFQUFBQSxXQUFXLEVBQUUsVUFBV1AsR0FBWCxFQUFnQkUsR0FBaEIsRUFBc0I7QUFFbEMsUUFBSU0sTUFBTSxHQUFHLEtBQUtBLE1BQUwsRUFBYjtBQUVBLFdBQU8sS0FBS1QsWUFBTCxDQUFtQlMsTUFBTSxJQUFJLENBQTdCLEVBQWlDN0MsY0FBakMsQ0FBaURzQyxJQUFJLENBQUNDLEdBQUwsQ0FBVUYsR0FBVixFQUFlQyxJQUFJLENBQUNELEdBQUwsQ0FBVUUsR0FBVixFQUFlTSxNQUFmLENBQWYsQ0FBakQsQ0FBUDtBQUVBLEdBallnQztBQW1ZakNDLEVBQUFBLEtBQUssRUFBRSxZQUFZO0FBRWxCLFNBQUtwRixDQUFMLEdBQVM0RSxJQUFJLENBQUNRLEtBQUwsQ0FBWSxLQUFLcEYsQ0FBakIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzJFLElBQUksQ0FBQ1EsS0FBTCxDQUFZLEtBQUtuRixDQUFqQixDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTMEUsSUFBSSxDQUFDUSxLQUFMLENBQVksS0FBS2xGLENBQWpCLENBQVQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTNZZ0M7QUE2WWpDbUYsRUFBQUEsSUFBSSxFQUFFLFlBQVk7QUFFakIsU0FBS3JGLENBQUwsR0FBUzRFLElBQUksQ0FBQ1MsSUFBTCxDQUFXLEtBQUtyRixDQUFoQixDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTMkUsSUFBSSxDQUFDUyxJQUFMLENBQVcsS0FBS3BGLENBQWhCLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMwRSxJQUFJLENBQUNTLElBQUwsQ0FBVyxLQUFLbkYsQ0FBaEIsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBclpnQztBQXVaakNvRixFQUFBQSxLQUFLLEVBQUUsWUFBWTtBQUVsQixTQUFLdEYsQ0FBTCxHQUFTNEUsSUFBSSxDQUFDVSxLQUFMLENBQVksS0FBS3RGLENBQWpCLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMyRSxJQUFJLENBQUNVLEtBQUwsQ0FBWSxLQUFLckYsQ0FBakIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzBFLElBQUksQ0FBQ1UsS0FBTCxDQUFZLEtBQUtwRixDQUFqQixDQUFUO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0EvWmdDO0FBaWFqQ3FGLEVBQUFBLFdBQVcsRUFBRSxZQUFZO0FBRXhCLFNBQUt2RixDQUFMLEdBQVcsS0FBS0EsQ0FBTCxHQUFTLENBQVgsR0FBaUI0RSxJQUFJLENBQUNTLElBQUwsQ0FBVyxLQUFLckYsQ0FBaEIsQ0FBakIsR0FBdUM0RSxJQUFJLENBQUNRLEtBQUwsQ0FBWSxLQUFLcEYsQ0FBakIsQ0FBaEQ7QUFDQSxTQUFLQyxDQUFMLEdBQVcsS0FBS0EsQ0FBTCxHQUFTLENBQVgsR0FBaUIyRSxJQUFJLENBQUNTLElBQUwsQ0FBVyxLQUFLcEYsQ0FBaEIsQ0FBakIsR0FBdUMyRSxJQUFJLENBQUNRLEtBQUwsQ0FBWSxLQUFLbkYsQ0FBakIsQ0FBaEQ7QUFDQSxTQUFLQyxDQUFMLEdBQVcsS0FBS0EsQ0FBTCxHQUFTLENBQVgsR0FBaUIwRSxJQUFJLENBQUNTLElBQUwsQ0FBVyxLQUFLbkYsQ0FBaEIsQ0FBakIsR0FBdUMwRSxJQUFJLENBQUNRLEtBQUwsQ0FBWSxLQUFLbEYsQ0FBakIsQ0FBaEQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXphZ0M7QUEyYWpDc0YsRUFBQUEsTUFBTSxFQUFFLFlBQVk7QUFFbkIsU0FBS3hGLENBQUwsR0FBUyxDQUFFLEtBQUtBLENBQWhCO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTLENBQUUsS0FBS0EsQ0FBaEI7QUFDQSxTQUFLQyxDQUFMLEdBQVMsQ0FBRSxLQUFLQSxDQUFoQjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBbmJnQztBQXFiakN1RixFQUFBQSxHQUFHLEVBQUUsVUFBV3BFLENBQVgsRUFBZTtBQUVuQixXQUFPLEtBQUtyQixDQUFMLEdBQVNxQixDQUFDLENBQUNyQixDQUFYLEdBQWUsS0FBS0MsQ0FBTCxHQUFTb0IsQ0FBQyxDQUFDcEIsQ0FBMUIsR0FBOEIsS0FBS0MsQ0FBTCxHQUFTbUIsQ0FBQyxDQUFDbkIsQ0FBaEQ7QUFFQSxHQXpiZ0M7QUEyYmpDO0FBRUF3RixFQUFBQSxRQUFRLEVBQUUsWUFBWTtBQUVyQixXQUFPLEtBQUsxRixDQUFMLEdBQVMsS0FBS0EsQ0FBZCxHQUFrQixLQUFLQyxDQUFMLEdBQVMsS0FBS0EsQ0FBaEMsR0FBb0MsS0FBS0MsQ0FBTCxHQUFTLEtBQUtBLENBQXpEO0FBRUEsR0FqY2dDO0FBbWNqQ2lGLEVBQUFBLE1BQU0sRUFBRSxZQUFZO0FBRW5CLFdBQU9QLElBQUksQ0FBQ2UsSUFBTCxDQUFXLEtBQUszRixDQUFMLEdBQVMsS0FBS0EsQ0FBZCxHQUFrQixLQUFLQyxDQUFMLEdBQVMsS0FBS0EsQ0FBaEMsR0FBb0MsS0FBS0MsQ0FBTCxHQUFTLEtBQUtBLENBQTdELENBQVA7QUFFQSxHQXZjZ0M7QUF5Y2pDMEYsRUFBQUEsZUFBZSxFQUFFLFlBQVk7QUFFNUIsV0FBT2hCLElBQUksQ0FBQ2lCLEdBQUwsQ0FBVSxLQUFLN0YsQ0FBZixJQUFxQjRFLElBQUksQ0FBQ2lCLEdBQUwsQ0FBVSxLQUFLNUYsQ0FBZixDQUFyQixHQUEwQzJFLElBQUksQ0FBQ2lCLEdBQUwsQ0FBVSxLQUFLM0YsQ0FBZixDQUFqRDtBQUVBLEdBN2NnQztBQStjakNzRSxFQUFBQSxTQUFTLEVBQUUsWUFBWTtBQUV0QixXQUFPLEtBQUtFLFlBQUwsQ0FBbUIsS0FBS1MsTUFBTCxNQUFpQixDQUFwQyxDQUFQO0FBRUEsR0FuZGdDO0FBcWRqQ1csRUFBQUEsU0FBUyxFQUFFLFVBQVdYLE1BQVgsRUFBb0I7QUFFOUIsV0FBTyxLQUFLWCxTQUFMLEdBQWlCbEMsY0FBakIsQ0FBaUM2QyxNQUFqQyxDQUFQO0FBRUEsR0F6ZGdDO0FBMmRqQ1ksRUFBQUEsSUFBSSxFQUFFLFVBQVcxRSxDQUFYLEVBQWMyRSxLQUFkLEVBQXNCO0FBRTNCLFNBQUtoRyxDQUFMLElBQVUsQ0FBRXFCLENBQUMsQ0FBQ3JCLENBQUYsR0FBTSxLQUFLQSxDQUFiLElBQW1CZ0csS0FBN0I7QUFDQSxTQUFLL0YsQ0FBTCxJQUFVLENBQUVvQixDQUFDLENBQUNwQixDQUFGLEdBQU0sS0FBS0EsQ0FBYixJQUFtQitGLEtBQTdCO0FBQ0EsU0FBSzlGLENBQUwsSUFBVSxDQUFFbUIsQ0FBQyxDQUFDbkIsQ0FBRixHQUFNLEtBQUtBLENBQWIsSUFBbUI4RixLQUE3QjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBbmVnQztBQXFlakNDLEVBQUFBLFdBQVcsRUFBRSxVQUFXQyxFQUFYLEVBQWVDLEVBQWYsRUFBbUJILEtBQW5CLEVBQTJCO0FBRXZDLFdBQU8sS0FBSzlELFVBQUwsQ0FBaUJpRSxFQUFqQixFQUFxQkQsRUFBckIsRUFBMEI1RCxjQUExQixDQUEwQzBELEtBQTFDLEVBQWtEMUUsR0FBbEQsQ0FBdUQ0RSxFQUF2RCxDQUFQO0FBRUEsR0F6ZWdDO0FBMmVqQ0UsRUFBQUEsS0FBSyxFQUFFLFVBQVcvRSxDQUFYLEVBQWNFLENBQWQsRUFBa0I7QUFFeEIsUUFBS0EsQ0FBQyxLQUFLQyxTQUFYLEVBQXVCO0FBRXRCQyxNQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYywyRkFBZDtBQUNBLGFBQU8sS0FBSzJFLFlBQUwsQ0FBbUJoRixDQUFuQixFQUFzQkUsQ0FBdEIsQ0FBUDtBQUVBOztBQUVELFdBQU8sS0FBSzhFLFlBQUwsQ0FBbUIsSUFBbkIsRUFBeUJoRixDQUF6QixDQUFQO0FBRUEsR0F0ZmdDO0FBd2ZqQ2dGLEVBQUFBLFlBQVksRUFBRSxVQUFXdkUsQ0FBWCxFQUFjQyxDQUFkLEVBQWtCO0FBRS9CLFFBQUl1RSxFQUFFLEdBQUd4RSxDQUFDLENBQUM5QixDQUFYO0FBQUEsUUFBY3VHLEVBQUUsR0FBR3pFLENBQUMsQ0FBQzdCLENBQXJCO0FBQUEsUUFBd0J1RyxFQUFFLEdBQUcxRSxDQUFDLENBQUM1QixDQUEvQjtBQUNBLFFBQUl1RyxFQUFFLEdBQUcxRSxDQUFDLENBQUMvQixDQUFYO0FBQUEsUUFBYzBHLEVBQUUsR0FBRzNFLENBQUMsQ0FBQzlCLENBQXJCO0FBQUEsUUFBd0IwRyxFQUFFLEdBQUc1RSxDQUFDLENBQUM3QixDQUEvQjtBQUVBLFNBQUtGLENBQUwsR0FBU3VHLEVBQUUsR0FBR0ksRUFBTCxHQUFVSCxFQUFFLEdBQUdFLEVBQXhCO0FBQ0EsU0FBS3pHLENBQUwsR0FBU3VHLEVBQUUsR0FBR0MsRUFBTCxHQUFVSCxFQUFFLEdBQUdLLEVBQXhCO0FBQ0EsU0FBS3pHLENBQUwsR0FBU29HLEVBQUUsR0FBR0ksRUFBTCxHQUFVSCxFQUFFLEdBQUdFLEVBQXhCO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FuZ0JnQztBQXFnQmpDRyxFQUFBQSxlQUFlLEVBQUUsVUFBV0MsTUFBWCxFQUFvQjtBQUVwQyxRQUFJcEcsTUFBTSxHQUFHb0csTUFBTSxDQUFDcEIsR0FBUCxDQUFZLElBQVosSUFBcUJvQixNQUFNLENBQUNuQixRQUFQLEVBQWxDO0FBRUEsV0FBTyxLQUFLdEUsSUFBTCxDQUFXeUYsTUFBWCxFQUFvQnZFLGNBQXBCLENBQW9DN0IsTUFBcEMsQ0FBUDtBQUVBLEdBM2dCZ0M7QUE2Z0JqQ3FHLEVBQUFBLGNBQWMsRUFBRSxZQUFZO0FBRTNCLFFBQUlaLEVBQUUsR0FBRyxJQUFJbkcsT0FBSixFQUFUO0FBRUEsV0FBTyxTQUFTK0csY0FBVCxDQUF5QkMsV0FBekIsRUFBdUM7QUFFN0NiLE1BQUFBLEVBQUUsQ0FBQzlFLElBQUgsQ0FBUyxJQUFULEVBQWdCd0YsZUFBaEIsQ0FBaUNHLFdBQWpDO0FBRUEsYUFBTyxLQUFLOUUsR0FBTCxDQUFVaUUsRUFBVixDQUFQO0FBRUEsS0FORDtBQVFBLEdBWmUsRUE3Z0JpQjtBQTJoQmpDYyxFQUFBQSxPQUFPLEVBQUUsWUFBWTtBQUVwQjtBQUNBO0FBRUEsUUFBSWQsRUFBRSxHQUFHLElBQUluRyxPQUFKLEVBQVQ7QUFFQSxXQUFPLFNBQVNpSCxPQUFULENBQWtCQyxNQUFsQixFQUEyQjtBQUVqQyxhQUFPLEtBQUtoRixHQUFMLENBQVVpRSxFQUFFLENBQUM5RSxJQUFILENBQVM2RixNQUFULEVBQWtCM0UsY0FBbEIsQ0FBa0MsSUFBSSxLQUFLbUQsR0FBTCxDQUFVd0IsTUFBVixDQUF0QyxDQUFWLENBQVA7QUFFQSxLQUpEO0FBTUEsR0FiUSxFQTNoQndCO0FBMGlCakNDLEVBQUFBLE9BQU8sRUFBRSxVQUFXN0YsQ0FBWCxFQUFlO0FBRXZCLFFBQUk4RixLQUFLLEdBQUcsS0FBSzFCLEdBQUwsQ0FBVXBFLENBQVYsSUFBa0J1RCxJQUFJLENBQUNlLElBQUwsQ0FBVyxLQUFLRCxRQUFMLEtBQWtCckUsQ0FBQyxDQUFDcUUsUUFBRixFQUE3QixDQUE5QixDQUZ1QixDQUl2Qjs7QUFFQSxXQUFPZCxJQUFJLENBQUN3QyxJQUFMLENBQVd2SCxLQUFLLENBQUNpRixLQUFOLENBQWFxQyxLQUFiLEVBQW9CLENBQUUsQ0FBdEIsRUFBeUIsQ0FBekIsQ0FBWCxDQUFQO0FBRUEsR0FsakJnQztBQW9qQmpDRSxFQUFBQSxVQUFVLEVBQUUsVUFBV2hHLENBQVgsRUFBZTtBQUUxQixXQUFPdUQsSUFBSSxDQUFDZSxJQUFMLENBQVcsS0FBSzJCLGlCQUFMLENBQXdCakcsQ0FBeEIsQ0FBWCxDQUFQO0FBRUEsR0F4akJnQztBQTBqQmpDaUcsRUFBQUEsaUJBQWlCLEVBQUUsVUFBV2pHLENBQVgsRUFBZTtBQUVqQyxRQUFJa0csRUFBRSxHQUFHLEtBQUt2SCxDQUFMLEdBQVNxQixDQUFDLENBQUNyQixDQUFwQjtBQUFBLFFBQXVCd0gsRUFBRSxHQUFHLEtBQUt2SCxDQUFMLEdBQVNvQixDQUFDLENBQUNwQixDQUF2QztBQUFBLFFBQTBDd0gsRUFBRSxHQUFHLEtBQUt2SCxDQUFMLEdBQVNtQixDQUFDLENBQUNuQixDQUExRDtBQUVBLFdBQU9xSCxFQUFFLEdBQUdBLEVBQUwsR0FBVUMsRUFBRSxHQUFHQSxFQUFmLEdBQW9CQyxFQUFFLEdBQUdBLEVBQWhDO0FBRUEsR0Foa0JnQztBQWtrQmpDQyxFQUFBQSxtQkFBbUIsRUFBRSxVQUFXckcsQ0FBWCxFQUFlO0FBRW5DLFdBQU91RCxJQUFJLENBQUNpQixHQUFMLENBQVUsS0FBSzdGLENBQUwsR0FBU3FCLENBQUMsQ0FBQ3JCLENBQXJCLElBQTJCNEUsSUFBSSxDQUFDaUIsR0FBTCxDQUFVLEtBQUs1RixDQUFMLEdBQVNvQixDQUFDLENBQUNwQixDQUFyQixDQUEzQixHQUFzRDJFLElBQUksQ0FBQ2lCLEdBQUwsQ0FBVSxLQUFLM0YsQ0FBTCxHQUFTbUIsQ0FBQyxDQUFDbkIsQ0FBckIsQ0FBN0Q7QUFFQSxHQXRrQmdDO0FBd2tCakN5SCxFQUFBQSxnQkFBZ0IsRUFBRSxVQUFXOUYsQ0FBWCxFQUFlO0FBRWhDLFdBQU8sS0FBSytGLHNCQUFMLENBQTZCL0YsQ0FBQyxDQUFDZ0csTUFBL0IsRUFBdUNoRyxDQUFDLENBQUNpRyxHQUF6QyxFQUE4Q2pHLENBQUMsQ0FBQ3NGLEtBQWhELENBQVA7QUFFQSxHQTVrQmdDO0FBOGtCakNTLEVBQUFBLHNCQUFzQixFQUFFLFVBQVdDLE1BQVgsRUFBbUJDLEdBQW5CLEVBQXdCWCxLQUF4QixFQUFnQztBQUV2RCxRQUFJWSxZQUFZLEdBQUduRCxJQUFJLENBQUNvRCxHQUFMLENBQVVGLEdBQVYsSUFBa0JELE1BQXJDO0FBRUEsU0FBSzdILENBQUwsR0FBUytILFlBQVksR0FBR25ELElBQUksQ0FBQ29ELEdBQUwsQ0FBVWIsS0FBVixDQUF4QjtBQUNBLFNBQUtsSCxDQUFMLEdBQVMyRSxJQUFJLENBQUNxRCxHQUFMLENBQVVILEdBQVYsSUFBa0JELE1BQTNCO0FBQ0EsU0FBSzNILENBQUwsR0FBUzZILFlBQVksR0FBR25ELElBQUksQ0FBQ3FELEdBQUwsQ0FBVWQsS0FBVixDQUF4QjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBeGxCZ0M7QUEwbEJqQ2UsRUFBQUEsa0JBQWtCLEVBQUUsVUFBV0MsQ0FBWCxFQUFlO0FBRWxDLFdBQU8sS0FBS0Msd0JBQUwsQ0FBK0JELENBQUMsQ0FBQ04sTUFBakMsRUFBeUNNLENBQUMsQ0FBQ2hCLEtBQTNDLEVBQWtEZ0IsQ0FBQyxDQUFDbEksQ0FBcEQsQ0FBUDtBQUVBLEdBOWxCZ0M7QUFnbUJqQ21JLEVBQUFBLHdCQUF3QixFQUFFLFVBQVdQLE1BQVgsRUFBbUJWLEtBQW5CLEVBQTBCbEgsQ0FBMUIsRUFBOEI7QUFFdkQsU0FBS0QsQ0FBTCxHQUFTNkgsTUFBTSxHQUFHakQsSUFBSSxDQUFDb0QsR0FBTCxDQUFVYixLQUFWLENBQWxCO0FBQ0EsU0FBS2xILENBQUwsR0FBU0EsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzJILE1BQU0sR0FBR2pELElBQUksQ0FBQ3FELEdBQUwsQ0FBVWQsS0FBVixDQUFsQjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBeG1CZ0M7QUEwbUJqQ2tCLEVBQUFBLHFCQUFxQixFQUFFLFVBQVdsRixDQUFYLEVBQWU7QUFFckMsUUFBSUMsQ0FBQyxHQUFHRCxDQUFDLENBQUNFLFFBQVY7QUFFQSxTQUFLckQsQ0FBTCxHQUFTb0QsQ0FBQyxDQUFFLEVBQUYsQ0FBVjtBQUNBLFNBQUtuRCxDQUFMLEdBQVNtRCxDQUFDLENBQUUsRUFBRixDQUFWO0FBQ0EsU0FBS2xELENBQUwsR0FBU2tELENBQUMsQ0FBRSxFQUFGLENBQVY7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXBuQmdDO0FBc25CakNrRixFQUFBQSxrQkFBa0IsRUFBRSxVQUFXbkYsQ0FBWCxFQUFlO0FBRWxDLFFBQUlvRixFQUFFLEdBQUcsS0FBS0MsbUJBQUwsQ0FBMEJyRixDQUExQixFQUE2QixDQUE3QixFQUFpQ2dDLE1BQWpDLEVBQVQ7QUFDQSxRQUFJc0QsRUFBRSxHQUFHLEtBQUtELG1CQUFMLENBQTBCckYsQ0FBMUIsRUFBNkIsQ0FBN0IsRUFBaUNnQyxNQUFqQyxFQUFUO0FBQ0EsUUFBSXVELEVBQUUsR0FBRyxLQUFLRixtQkFBTCxDQUEwQnJGLENBQTFCLEVBQTZCLENBQTdCLEVBQWlDZ0MsTUFBakMsRUFBVDtBQUVBLFNBQUtuRixDQUFMLEdBQVN1SSxFQUFUO0FBQ0EsU0FBS3RJLENBQUwsR0FBU3dJLEVBQVQ7QUFDQSxTQUFLdkksQ0FBTCxHQUFTd0ksRUFBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBbG9CZ0M7QUFvb0JqQ0YsRUFBQUEsbUJBQW1CLEVBQUUsVUFBV3JGLENBQVgsRUFBY3JDLEtBQWQsRUFBc0I7QUFFMUMsV0FBTyxLQUFLNkgsU0FBTCxDQUFnQnhGLENBQUMsQ0FBQ0UsUUFBbEIsRUFBNEJ2QyxLQUFLLEdBQUcsQ0FBcEMsQ0FBUDtBQUVBLEdBeG9CZ0M7QUEwb0JqQzhILEVBQUFBLE1BQU0sRUFBRSxVQUFXdkgsQ0FBWCxFQUFlO0FBRXRCLFdBQVdBLENBQUMsQ0FBQ3JCLENBQUYsS0FBUSxLQUFLQSxDQUFmLElBQXdCcUIsQ0FBQyxDQUFDcEIsQ0FBRixLQUFRLEtBQUtBLENBQXJDLElBQThDb0IsQ0FBQyxDQUFDbkIsQ0FBRixLQUFRLEtBQUtBLENBQXBFO0FBRUEsR0E5b0JnQztBQWdwQmpDeUksRUFBQUEsU0FBUyxFQUFFLFVBQVdFLEtBQVgsRUFBa0JDLE1BQWxCLEVBQTJCO0FBRXJDLFFBQUtBLE1BQU0sS0FBS3RILFNBQWhCLEVBQTRCc0gsTUFBTSxHQUFHLENBQVQ7QUFFNUIsU0FBSzlJLENBQUwsR0FBUzZJLEtBQUssQ0FBRUMsTUFBRixDQUFkO0FBQ0EsU0FBSzdJLENBQUwsR0FBUzRJLEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBZDtBQUNBLFNBQUs1SSxDQUFMLEdBQVMySSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQWQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTFwQmdDO0FBNHBCakNDLEVBQUFBLE9BQU8sRUFBRSxVQUFXRixLQUFYLEVBQWtCQyxNQUFsQixFQUEyQjtBQUVuQyxRQUFLRCxLQUFLLEtBQUtySCxTQUFmLEVBQTJCcUgsS0FBSyxHQUFHLEVBQVI7QUFDM0IsUUFBS0MsTUFBTSxLQUFLdEgsU0FBaEIsRUFBNEJzSCxNQUFNLEdBQUcsQ0FBVDtBQUU1QkQsSUFBQUEsS0FBSyxDQUFFQyxNQUFGLENBQUwsR0FBa0IsS0FBSzlJLENBQXZCO0FBQ0E2SSxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzdJLENBQTNCO0FBQ0E0SSxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzVJLENBQTNCO0FBRUEsV0FBTzJJLEtBQVA7QUFFQSxHQXZxQmdDO0FBeXFCakNHLEVBQUFBLG1CQUFtQixFQUFFLFVBQVdDLFNBQVgsRUFBc0JuSSxLQUF0QixFQUE2QmdJLE1BQTdCLEVBQXNDO0FBRTFELFFBQUtBLE1BQU0sS0FBS3RILFNBQWhCLEVBQTRCO0FBRTNCQyxNQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYyxxRUFBZDtBQUVBOztBQUVELFNBQUsxQixDQUFMLEdBQVNpSixTQUFTLENBQUNDLElBQVYsQ0FBZ0JwSSxLQUFoQixDQUFUO0FBQ0EsU0FBS2IsQ0FBTCxHQUFTZ0osU0FBUyxDQUFDRSxJQUFWLENBQWdCckksS0FBaEIsQ0FBVDtBQUNBLFNBQUtaLENBQUwsR0FBUytJLFNBQVMsQ0FBQ0csSUFBVixDQUFnQnRJLEtBQWhCLENBQVQ7QUFFQSxXQUFPLElBQVA7QUFFQTtBQXZyQmdDLENBQWxDO0FBNHJCQSxTQUFTZixPQUFUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX01hdGggfSBmcm9tICcuL01hdGguanMnO1xuaW1wb3J0IHsgUXVhdGVybmlvbiB9IGZyb20gJy4vUXVhdGVybmlvbi5qcyc7XG5cbi8qKlxuICogQGF1dGhvciBtcmRvb2IgLyBodHRwOi8vbXJkb29iLmNvbS9cbiAqIEBhdXRob3Iga2lsZSAvIGh0dHA6Ly9raWxlLnN0cmF2YWdhbnphLm9yZy9cbiAqIEBhdXRob3IgcGhpbG9nYiAvIGh0dHA6Ly9ibG9nLnRoZWppdC5vcmcvXG4gKiBAYXV0aG9yIG1pa2FlbCBlbXRpbmdlciAvIGh0dHA6Ly9nb21vLnNlL1xuICogQGF1dGhvciBlZ3JhZXRoZXIgLyBodHRwOi8vZWdyYWV0aGVyLmNvbS9cbiAqIEBhdXRob3IgV2VzdExhbmdsZXkgLyBodHRwOi8vZ2l0aHViLmNvbS9XZXN0TGFuZ2xleVxuICovXG5cbmZ1bmN0aW9uIFZlY3RvcjMoIHgsIHksIHogKSB7XG5cblx0dGhpcy54ID0geCB8fCAwO1xuXHR0aGlzLnkgPSB5IHx8IDA7XG5cdHRoaXMueiA9IHogfHwgMDtcblxufVxuXG5PYmplY3QuYXNzaWduKCBWZWN0b3IzLnByb3RvdHlwZSwge1xuXG5cdGlzVmVjdG9yMzogdHJ1ZSxcblxuXHRzZXQ6IGZ1bmN0aW9uICggeCwgeSwgeiApIHtcblxuXHRcdHRoaXMueCA9IHg7XG5cdFx0dGhpcy55ID0geTtcblx0XHR0aGlzLnogPSB6O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRzZXRTY2FsYXI6IGZ1bmN0aW9uICggc2NhbGFyICkge1xuXG5cdFx0dGhpcy54ID0gc2NhbGFyO1xuXHRcdHRoaXMueSA9IHNjYWxhcjtcblx0XHR0aGlzLnogPSBzY2FsYXI7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldFg6IGZ1bmN0aW9uICggeCApIHtcblxuXHRcdHRoaXMueCA9IHg7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldFk6IGZ1bmN0aW9uICggeSApIHtcblxuXHRcdHRoaXMueSA9IHk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldFo6IGZ1bmN0aW9uICggeiApIHtcblxuXHRcdHRoaXMueiA9IHo7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldENvbXBvbmVudDogZnVuY3Rpb24gKCBpbmRleCwgdmFsdWUgKSB7XG5cblx0XHRzd2l0Y2ggKCBpbmRleCApIHtcblxuXHRcdFx0Y2FzZSAwOiB0aGlzLnggPSB2YWx1ZTsgYnJlYWs7XG5cdFx0XHRjYXNlIDE6IHRoaXMueSA9IHZhbHVlOyBicmVhaztcblx0XHRcdGNhc2UgMjogdGhpcy56ID0gdmFsdWU7IGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCAnaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAnICsgaW5kZXggKTtcblxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Z2V0Q29tcG9uZW50OiBmdW5jdGlvbiAoIGluZGV4ICkge1xuXG5cdFx0c3dpdGNoICggaW5kZXggKSB7XG5cblx0XHRcdGNhc2UgMDogcmV0dXJuIHRoaXMueDtcblx0XHRcdGNhc2UgMTogcmV0dXJuIHRoaXMueTtcblx0XHRcdGNhc2UgMjogcmV0dXJuIHRoaXMuejtcblx0XHRcdGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvciggJ2luZGV4IGlzIG91dCBvZiByYW5nZTogJyArIGluZGV4ICk7XG5cblx0XHR9XG5cblx0fSxcblxuXHRjbG9uZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCB0aGlzLngsIHRoaXMueSwgdGhpcy56ICk7XG5cblx0fSxcblxuXHRjb3B5OiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHR0aGlzLnggPSB2Lng7XG5cdFx0dGhpcy55ID0gdi55O1xuXHRcdHRoaXMueiA9IHYuejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0YWRkOiBmdW5jdGlvbiAoIHYsIHcgKSB7XG5cblx0XHRpZiAoIHcgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Y29uc29sZS53YXJuKCAnVEhSRUUuVmVjdG9yMzogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLicgKTtcblx0XHRcdHJldHVybiB0aGlzLmFkZFZlY3RvcnMoIHYsIHcgKTtcblxuXHRcdH1cblxuXHRcdHRoaXMueCArPSB2Lng7XG5cdFx0dGhpcy55ICs9IHYueTtcblx0XHR0aGlzLnogKz0gdi56O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhZGRTY2FsYXI6IGZ1bmN0aW9uICggcyApIHtcblxuXHRcdHRoaXMueCArPSBzO1xuXHRcdHRoaXMueSArPSBzO1xuXHRcdHRoaXMueiArPSBzO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhZGRWZWN0b3JzOiBmdW5jdGlvbiAoIGEsIGIgKSB7XG5cblx0XHR0aGlzLnggPSBhLnggKyBiLng7XG5cdFx0dGhpcy55ID0gYS55ICsgYi55O1xuXHRcdHRoaXMueiA9IGEueiArIGIuejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0YWRkU2NhbGVkVmVjdG9yOiBmdW5jdGlvbiAoIHYsIHMgKSB7XG5cblx0XHR0aGlzLnggKz0gdi54ICogcztcblx0XHR0aGlzLnkgKz0gdi55ICogcztcblx0XHR0aGlzLnogKz0gdi56ICogcztcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c3ViOiBmdW5jdGlvbiAoIHYsIHcgKSB7XG5cblx0XHRpZiAoIHcgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Y29uc29sZS53YXJuKCAnVEhSRUUuVmVjdG9yMzogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLicgKTtcblx0XHRcdHJldHVybiB0aGlzLnN1YlZlY3RvcnMoIHYsIHcgKTtcblxuXHRcdH1cblxuXHRcdHRoaXMueCAtPSB2Lng7XG5cdFx0dGhpcy55IC09IHYueTtcblx0XHR0aGlzLnogLT0gdi56O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRzdWJTY2FsYXI6IGZ1bmN0aW9uICggcyApIHtcblxuXHRcdHRoaXMueCAtPSBzO1xuXHRcdHRoaXMueSAtPSBzO1xuXHRcdHRoaXMueiAtPSBzO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRzdWJWZWN0b3JzOiBmdW5jdGlvbiAoIGEsIGIgKSB7XG5cblx0XHR0aGlzLnggPSBhLnggLSBiLng7XG5cdFx0dGhpcy55ID0gYS55IC0gYi55O1xuXHRcdHRoaXMueiA9IGEueiAtIGIuejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0bXVsdGlwbHk6IGZ1bmN0aW9uICggdiwgdyApIHtcblxuXHRcdGlmICggdyAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRjb25zb2xlLndhcm4oICdUSFJFRS5WZWN0b3IzOiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseVZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLicgKTtcblx0XHRcdHJldHVybiB0aGlzLm11bHRpcGx5VmVjdG9ycyggdiwgdyApO1xuXG5cdFx0fVxuXG5cdFx0dGhpcy54ICo9IHYueDtcblx0XHR0aGlzLnkgKj0gdi55O1xuXHRcdHRoaXMueiAqPSB2Lno7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG11bHRpcGx5U2NhbGFyOiBmdW5jdGlvbiAoIHNjYWxhciApIHtcblxuXHRcdHRoaXMueCAqPSBzY2FsYXI7XG5cdFx0dGhpcy55ICo9IHNjYWxhcjtcblx0XHR0aGlzLnogKj0gc2NhbGFyO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtdWx0aXBseVZlY3RvcnM6IGZ1bmN0aW9uICggYSwgYiApIHtcblxuXHRcdHRoaXMueCA9IGEueCAqIGIueDtcblx0XHR0aGlzLnkgPSBhLnkgKiBiLnk7XG5cdFx0dGhpcy56ID0gYS56ICogYi56O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhcHBseUV1bGVyOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgcXVhdGVybmlvbiA9IG5ldyBRdWF0ZXJuaW9uKCk7XG5cblx0XHRyZXR1cm4gZnVuY3Rpb24gYXBwbHlFdWxlciggZXVsZXIgKSB7XG5cblx0XHRcdGlmICggISAoIGV1bGVyICYmIGV1bGVyLmlzRXVsZXIgKSApIHtcblxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCAnVEhSRUUuVmVjdG9yMzogLmFwcGx5RXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLicgKTtcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdGhpcy5hcHBseVF1YXRlcm5pb24oIHF1YXRlcm5pb24uc2V0RnJvbUV1bGVyKCBldWxlciApICk7XG5cblx0XHR9O1xuXG5cdH0oKSxcblxuXHRhcHBseUF4aXNBbmdsZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0dmFyIHF1YXRlcm5pb24gPSBuZXcgUXVhdGVybmlvbigpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIGFwcGx5QXhpc0FuZ2xlKCBheGlzLCBhbmdsZSApIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuYXBwbHlRdWF0ZXJuaW9uKCBxdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUoIGF4aXMsIGFuZ2xlICkgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdGFwcGx5TWF0cml4MzogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHggPSB0aGlzLngsIHkgPSB0aGlzLnksIHogPSB0aGlzLno7XG5cdFx0dmFyIGUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dGhpcy54ID0gZVsgMCBdICogeCArIGVbIDMgXSAqIHkgKyBlWyA2IF0gKiB6O1xuXHRcdHRoaXMueSA9IGVbIDEgXSAqIHggKyBlWyA0IF0gKiB5ICsgZVsgNyBdICogejtcblx0XHR0aGlzLnogPSBlWyAyIF0gKiB4ICsgZVsgNSBdICogeSArIGVbIDggXSAqIHo7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGFwcGx5TWF0cml4NDogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHggPSB0aGlzLngsIHkgPSB0aGlzLnksIHogPSB0aGlzLno7XG5cdFx0dmFyIGUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dmFyIHcgPSAxIC8gKCBlWyAzIF0gKiB4ICsgZVsgNyBdICogeSArIGVbIDExIF0gKiB6ICsgZVsgMTUgXSApO1xuXG5cdFx0dGhpcy54ID0gKCBlWyAwIF0gKiB4ICsgZVsgNCBdICogeSArIGVbIDggXSAqIHogKyBlWyAxMiBdICkgKiB3O1xuXHRcdHRoaXMueSA9ICggZVsgMSBdICogeCArIGVbIDUgXSAqIHkgKyBlWyA5IF0gKiB6ICsgZVsgMTMgXSApICogdztcblx0XHR0aGlzLnogPSAoIGVbIDIgXSAqIHggKyBlWyA2IF0gKiB5ICsgZVsgMTAgXSAqIHogKyBlWyAxNCBdICkgKiB3O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhcHBseVF1YXRlcm5pb246IGZ1bmN0aW9uICggcSApIHtcblxuXHRcdHZhciB4ID0gdGhpcy54LCB5ID0gdGhpcy55LCB6ID0gdGhpcy56O1xuXHRcdHZhciBxeCA9IHEueCwgcXkgPSBxLnksIHF6ID0gcS56LCBxdyA9IHEudztcblxuXHRcdC8vIGNhbGN1bGF0ZSBxdWF0ICogdmVjdG9yXG5cblx0XHR2YXIgaXggPSBxdyAqIHggKyBxeSAqIHogLSBxeiAqIHk7XG5cdFx0dmFyIGl5ID0gcXcgKiB5ICsgcXogKiB4IC0gcXggKiB6O1xuXHRcdHZhciBpeiA9IHF3ICogeiArIHF4ICogeSAtIHF5ICogeDtcblx0XHR2YXIgaXcgPSAtIHF4ICogeCAtIHF5ICogeSAtIHF6ICogejtcblxuXHRcdC8vIGNhbGN1bGF0ZSByZXN1bHQgKiBpbnZlcnNlIHF1YXRcblxuXHRcdHRoaXMueCA9IGl4ICogcXcgKyBpdyAqIC0gcXggKyBpeSAqIC0gcXogLSBpeiAqIC0gcXk7XG5cdFx0dGhpcy55ID0gaXkgKiBxdyArIGl3ICogLSBxeSArIGl6ICogLSBxeCAtIGl4ICogLSBxejtcblx0XHR0aGlzLnogPSBpeiAqIHF3ICsgaXcgKiAtIHF6ICsgaXggKiAtIHF5IC0gaXkgKiAtIHF4O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRwcm9qZWN0OiBmdW5jdGlvbiAoIGNhbWVyYSApIHtcblxuXHRcdHJldHVybiB0aGlzLmFwcGx5TWF0cml4NCggY2FtZXJhLm1hdHJpeFdvcmxkSW52ZXJzZSApLmFwcGx5TWF0cml4NCggY2FtZXJhLnByb2plY3Rpb25NYXRyaXggKTtcblxuXHR9LFxuXG5cdHVucHJvamVjdDogZnVuY3Rpb24gKCBjYW1lcmEgKSB7XG5cblx0XHRyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQoIGNhbWVyYS5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZSApLmFwcGx5TWF0cml4NCggY2FtZXJhLm1hdHJpeFdvcmxkICk7XG5cblx0fSxcblxuXHR0cmFuc2Zvcm1EaXJlY3Rpb246IGZ1bmN0aW9uICggbSApIHtcblxuXHRcdC8vIGlucHV0OiBUSFJFRS5NYXRyaXg0IGFmZmluZSBtYXRyaXhcblx0XHQvLyB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBkaXJlY3Rpb25cblxuXHRcdHZhciB4ID0gdGhpcy54LCB5ID0gdGhpcy55LCB6ID0gdGhpcy56O1xuXHRcdHZhciBlID0gbS5lbGVtZW50cztcblxuXHRcdHRoaXMueCA9IGVbIDAgXSAqIHggKyBlWyA0IF0gKiB5ICsgZVsgOCBdICogejtcblx0XHR0aGlzLnkgPSBlWyAxIF0gKiB4ICsgZVsgNSBdICogeSArIGVbIDkgXSAqIHo7XG5cdFx0dGhpcy56ID0gZVsgMiBdICogeCArIGVbIDYgXSAqIHkgKyBlWyAxMCBdICogejtcblxuXHRcdHJldHVybiB0aGlzLm5vcm1hbGl6ZSgpO1xuXG5cdH0sXG5cblx0ZGl2aWRlOiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHR0aGlzLnggLz0gdi54O1xuXHRcdHRoaXMueSAvPSB2Lnk7XG5cdFx0dGhpcy56IC89IHYuejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZGl2aWRlU2NhbGFyOiBmdW5jdGlvbiAoIHNjYWxhciApIHtcblxuXHRcdHJldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKCAxIC8gc2NhbGFyICk7XG5cblx0fSxcblxuXHRtaW46IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHRoaXMueCA9IE1hdGgubWluKCB0aGlzLngsIHYueCApO1xuXHRcdHRoaXMueSA9IE1hdGgubWluKCB0aGlzLnksIHYueSApO1xuXHRcdHRoaXMueiA9IE1hdGgubWluKCB0aGlzLnosIHYueiApO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYXg6IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHRoaXMueCA9IE1hdGgubWF4KCB0aGlzLngsIHYueCApO1xuXHRcdHRoaXMueSA9IE1hdGgubWF4KCB0aGlzLnksIHYueSApO1xuXHRcdHRoaXMueiA9IE1hdGgubWF4KCB0aGlzLnosIHYueiApO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRjbGFtcDogZnVuY3Rpb24gKCBtaW4sIG1heCApIHtcblxuXHRcdC8vIGFzc3VtZXMgbWluIDwgbWF4LCBjb21wb25lbnR3aXNlXG5cblx0XHR0aGlzLnggPSBNYXRoLm1heCggbWluLngsIE1hdGgubWluKCBtYXgueCwgdGhpcy54ICkgKTtcblx0XHR0aGlzLnkgPSBNYXRoLm1heCggbWluLnksIE1hdGgubWluKCBtYXgueSwgdGhpcy55ICkgKTtcblx0XHR0aGlzLnogPSBNYXRoLm1heCggbWluLnosIE1hdGgubWluKCBtYXgueiwgdGhpcy56ICkgKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xhbXBTY2FsYXI6IGZ1bmN0aW9uICggbWluVmFsLCBtYXhWYWwgKSB7XG5cblx0XHR0aGlzLnggPSBNYXRoLm1heCggbWluVmFsLCBNYXRoLm1pbiggbWF4VmFsLCB0aGlzLnggKSApO1xuXHRcdHRoaXMueSA9IE1hdGgubWF4KCBtaW5WYWwsIE1hdGgubWluKCBtYXhWYWwsIHRoaXMueSApICk7XG5cdFx0dGhpcy56ID0gTWF0aC5tYXgoIG1pblZhbCwgTWF0aC5taW4oIG1heFZhbCwgdGhpcy56ICkgKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xhbXBMZW5ndGg6IGZ1bmN0aW9uICggbWluLCBtYXggKSB7XG5cblx0XHR2YXIgbGVuZ3RoID0gdGhpcy5sZW5ndGgoKTtcblxuXHRcdHJldHVybiB0aGlzLmRpdmlkZVNjYWxhciggbGVuZ3RoIHx8IDEgKS5tdWx0aXBseVNjYWxhciggTWF0aC5tYXgoIG1pbiwgTWF0aC5taW4oIG1heCwgbGVuZ3RoICkgKSApO1xuXG5cdH0sXG5cblx0Zmxvb3I6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHRoaXMueCA9IE1hdGguZmxvb3IoIHRoaXMueCApO1xuXHRcdHRoaXMueSA9IE1hdGguZmxvb3IoIHRoaXMueSApO1xuXHRcdHRoaXMueiA9IE1hdGguZmxvb3IoIHRoaXMueiApO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRjZWlsOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR0aGlzLnggPSBNYXRoLmNlaWwoIHRoaXMueCApO1xuXHRcdHRoaXMueSA9IE1hdGguY2VpbCggdGhpcy55ICk7XG5cdFx0dGhpcy56ID0gTWF0aC5jZWlsKCB0aGlzLnogKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0cm91bmQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHRoaXMueCA9IE1hdGgucm91bmQoIHRoaXMueCApO1xuXHRcdHRoaXMueSA9IE1hdGgucm91bmQoIHRoaXMueSApO1xuXHRcdHRoaXMueiA9IE1hdGgucm91bmQoIHRoaXMueiApO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRyb3VuZFRvWmVybzogZnVuY3Rpb24gKCkge1xuXG5cdFx0dGhpcy54ID0gKCB0aGlzLnggPCAwICkgPyBNYXRoLmNlaWwoIHRoaXMueCApIDogTWF0aC5mbG9vciggdGhpcy54ICk7XG5cdFx0dGhpcy55ID0gKCB0aGlzLnkgPCAwICkgPyBNYXRoLmNlaWwoIHRoaXMueSApIDogTWF0aC5mbG9vciggdGhpcy55ICk7XG5cdFx0dGhpcy56ID0gKCB0aGlzLnogPCAwICkgPyBNYXRoLmNlaWwoIHRoaXMueiApIDogTWF0aC5mbG9vciggdGhpcy56ICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG5lZ2F0ZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0dGhpcy54ID0gLSB0aGlzLng7XG5cdFx0dGhpcy55ID0gLSB0aGlzLnk7XG5cdFx0dGhpcy56ID0gLSB0aGlzLno7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGRvdDogZnVuY3Rpb24gKCB2ICkge1xuXG5cdFx0cmV0dXJuIHRoaXMueCAqIHYueCArIHRoaXMueSAqIHYueSArIHRoaXMueiAqIHYuejtcblxuXHR9LFxuXG5cdC8vIFRPRE8gbGVuZ3RoU3F1YXJlZD9cblxuXHRsZW5ndGhTcTogZnVuY3Rpb24gKCkge1xuXG5cdFx0cmV0dXJuIHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueSArIHRoaXMueiAqIHRoaXMuejtcblxuXHR9LFxuXG5cdGxlbmd0aDogZnVuY3Rpb24gKCkge1xuXG5cdFx0cmV0dXJuIE1hdGguc3FydCggdGhpcy54ICogdGhpcy54ICsgdGhpcy55ICogdGhpcy55ICsgdGhpcy56ICogdGhpcy56ICk7XG5cblx0fSxcblxuXHRtYW5oYXR0YW5MZW5ndGg6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiBNYXRoLmFicyggdGhpcy54ICkgKyBNYXRoLmFicyggdGhpcy55ICkgKyBNYXRoLmFicyggdGhpcy56ICk7XG5cblx0fSxcblxuXHRub3JtYWxpemU6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiB0aGlzLmRpdmlkZVNjYWxhciggdGhpcy5sZW5ndGgoKSB8fCAxICk7XG5cblx0fSxcblxuXHRzZXRMZW5ndGg6IGZ1bmN0aW9uICggbGVuZ3RoICkge1xuXG5cdFx0cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIoIGxlbmd0aCApO1xuXG5cdH0sXG5cblx0bGVycDogZnVuY3Rpb24gKCB2LCBhbHBoYSApIHtcblxuXHRcdHRoaXMueCArPSAoIHYueCAtIHRoaXMueCApICogYWxwaGE7XG5cdFx0dGhpcy55ICs9ICggdi55IC0gdGhpcy55ICkgKiBhbHBoYTtcblx0XHR0aGlzLnogKz0gKCB2LnogLSB0aGlzLnogKSAqIGFscGhhO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRsZXJwVmVjdG9yczogZnVuY3Rpb24gKCB2MSwgdjIsIGFscGhhICkge1xuXG5cdFx0cmV0dXJuIHRoaXMuc3ViVmVjdG9ycyggdjIsIHYxICkubXVsdGlwbHlTY2FsYXIoIGFscGhhICkuYWRkKCB2MSApO1xuXG5cdH0sXG5cblx0Y3Jvc3M6IGZ1bmN0aW9uICggdiwgdyApIHtcblxuXHRcdGlmICggdyAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRjb25zb2xlLndhcm4oICdUSFJFRS5WZWN0b3IzOiAuY3Jvc3MoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5jcm9zc1ZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLicgKTtcblx0XHRcdHJldHVybiB0aGlzLmNyb3NzVmVjdG9ycyggdiwgdyApO1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuY3Jvc3NWZWN0b3JzKCB0aGlzLCB2ICk7XG5cblx0fSxcblxuXHRjcm9zc1ZlY3RvcnM6IGZ1bmN0aW9uICggYSwgYiApIHtcblxuXHRcdHZhciBheCA9IGEueCwgYXkgPSBhLnksIGF6ID0gYS56O1xuXHRcdHZhciBieCA9IGIueCwgYnkgPSBiLnksIGJ6ID0gYi56O1xuXG5cdFx0dGhpcy54ID0gYXkgKiBieiAtIGF6ICogYnk7XG5cdFx0dGhpcy55ID0gYXogKiBieCAtIGF4ICogYno7XG5cdFx0dGhpcy56ID0gYXggKiBieSAtIGF5ICogYng7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHByb2plY3RPblZlY3RvcjogZnVuY3Rpb24gKCB2ZWN0b3IgKSB7XG5cblx0XHR2YXIgc2NhbGFyID0gdmVjdG9yLmRvdCggdGhpcyApIC8gdmVjdG9yLmxlbmd0aFNxKCk7XG5cblx0XHRyZXR1cm4gdGhpcy5jb3B5KCB2ZWN0b3IgKS5tdWx0aXBseVNjYWxhciggc2NhbGFyICk7XG5cblx0fSxcblxuXHRwcm9qZWN0T25QbGFuZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0dmFyIHYxID0gbmV3IFZlY3RvcjMoKTtcblxuXHRcdHJldHVybiBmdW5jdGlvbiBwcm9qZWN0T25QbGFuZSggcGxhbmVOb3JtYWwgKSB7XG5cblx0XHRcdHYxLmNvcHkoIHRoaXMgKS5wcm9qZWN0T25WZWN0b3IoIHBsYW5lTm9ybWFsICk7XG5cblx0XHRcdHJldHVybiB0aGlzLnN1YiggdjEgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdHJlZmxlY3Q6IGZ1bmN0aW9uICgpIHtcblxuXHRcdC8vIHJlZmxlY3QgaW5jaWRlbnQgdmVjdG9yIG9mZiBwbGFuZSBvcnRob2dvbmFsIHRvIG5vcm1hbFxuXHRcdC8vIG5vcm1hbCBpcyBhc3N1bWVkIHRvIGhhdmUgdW5pdCBsZW5ndGhcblxuXHRcdHZhciB2MSA9IG5ldyBWZWN0b3IzKCk7XG5cblx0XHRyZXR1cm4gZnVuY3Rpb24gcmVmbGVjdCggbm9ybWFsICkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5zdWIoIHYxLmNvcHkoIG5vcm1hbCApLm11bHRpcGx5U2NhbGFyKCAyICogdGhpcy5kb3QoIG5vcm1hbCApICkgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdGFuZ2xlVG86IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHZhciB0aGV0YSA9IHRoaXMuZG90KCB2ICkgLyAoIE1hdGguc3FydCggdGhpcy5sZW5ndGhTcSgpICogdi5sZW5ndGhTcSgpICkgKTtcblxuXHRcdC8vIGNsYW1wLCB0byBoYW5kbGUgbnVtZXJpY2FsIHByb2JsZW1zXG5cblx0XHRyZXR1cm4gTWF0aC5hY29zKCBfTWF0aC5jbGFtcCggdGhldGEsIC0gMSwgMSApICk7XG5cblx0fSxcblxuXHRkaXN0YW5jZVRvOiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5zcXJ0KCB0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKCB2ICkgKTtcblxuXHR9LFxuXG5cdGRpc3RhbmNlVG9TcXVhcmVkOiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHR2YXIgZHggPSB0aGlzLnggLSB2LngsIGR5ID0gdGhpcy55IC0gdi55LCBkeiA9IHRoaXMueiAtIHYuejtcblxuXHRcdHJldHVybiBkeCAqIGR4ICsgZHkgKiBkeSArIGR6ICogZHo7XG5cblx0fSxcblxuXHRtYW5oYXR0YW5EaXN0YW5jZVRvOiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5hYnMoIHRoaXMueCAtIHYueCApICsgTWF0aC5hYnMoIHRoaXMueSAtIHYueSApICsgTWF0aC5hYnMoIHRoaXMueiAtIHYueiApO1xuXG5cdH0sXG5cblx0c2V0RnJvbVNwaGVyaWNhbDogZnVuY3Rpb24gKCBzICkge1xuXG5cdFx0cmV0dXJuIHRoaXMuc2V0RnJvbVNwaGVyaWNhbENvb3Jkcyggcy5yYWRpdXMsIHMucGhpLCBzLnRoZXRhICk7XG5cblx0fSxcblxuXHRzZXRGcm9tU3BoZXJpY2FsQ29vcmRzOiBmdW5jdGlvbiAoIHJhZGl1cywgcGhpLCB0aGV0YSApIHtcblxuXHRcdHZhciBzaW5QaGlSYWRpdXMgPSBNYXRoLnNpbiggcGhpICkgKiByYWRpdXM7XG5cblx0XHR0aGlzLnggPSBzaW5QaGlSYWRpdXMgKiBNYXRoLnNpbiggdGhldGEgKTtcblx0XHR0aGlzLnkgPSBNYXRoLmNvcyggcGhpICkgKiByYWRpdXM7XG5cdFx0dGhpcy56ID0gc2luUGhpUmFkaXVzICogTWF0aC5jb3MoIHRoZXRhICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldEZyb21DeWxpbmRyaWNhbDogZnVuY3Rpb24gKCBjICkge1xuXG5cdFx0cmV0dXJuIHRoaXMuc2V0RnJvbUN5bGluZHJpY2FsQ29vcmRzKCBjLnJhZGl1cywgYy50aGV0YSwgYy55ICk7XG5cblx0fSxcblxuXHRzZXRGcm9tQ3lsaW5kcmljYWxDb29yZHM6IGZ1bmN0aW9uICggcmFkaXVzLCB0aGV0YSwgeSApIHtcblxuXHRcdHRoaXMueCA9IHJhZGl1cyAqIE1hdGguc2luKCB0aGV0YSApO1xuXHRcdHRoaXMueSA9IHk7XG5cdFx0dGhpcy56ID0gcmFkaXVzICogTWF0aC5jb3MoIHRoZXRhICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldEZyb21NYXRyaXhQb3NpdGlvbjogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIGUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dGhpcy54ID0gZVsgMTIgXTtcblx0XHR0aGlzLnkgPSBlWyAxMyBdO1xuXHRcdHRoaXMueiA9IGVbIDE0IF07XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldEZyb21NYXRyaXhTY2FsZTogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHN4ID0gdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKCBtLCAwICkubGVuZ3RoKCk7XG5cdFx0dmFyIHN5ID0gdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKCBtLCAxICkubGVuZ3RoKCk7XG5cdFx0dmFyIHN6ID0gdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKCBtLCAyICkubGVuZ3RoKCk7XG5cblx0XHR0aGlzLnggPSBzeDtcblx0XHR0aGlzLnkgPSBzeTtcblx0XHR0aGlzLnogPSBzejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbU1hdHJpeENvbHVtbjogZnVuY3Rpb24gKCBtLCBpbmRleCApIHtcblxuXHRcdHJldHVybiB0aGlzLmZyb21BcnJheSggbS5lbGVtZW50cywgaW5kZXggKiA0ICk7XG5cblx0fSxcblxuXHRlcXVhbHM6IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHJldHVybiAoICggdi54ID09PSB0aGlzLnggKSAmJiAoIHYueSA9PT0gdGhpcy55ICkgJiYgKCB2LnogPT09IHRoaXMueiApICk7XG5cblx0fSxcblxuXHRmcm9tQXJyYXk6IGZ1bmN0aW9uICggYXJyYXksIG9mZnNldCApIHtcblxuXHRcdGlmICggb2Zmc2V0ID09PSB1bmRlZmluZWQgKSBvZmZzZXQgPSAwO1xuXG5cdFx0dGhpcy54ID0gYXJyYXlbIG9mZnNldCBdO1xuXHRcdHRoaXMueSA9IGFycmF5WyBvZmZzZXQgKyAxIF07XG5cdFx0dGhpcy56ID0gYXJyYXlbIG9mZnNldCArIDIgXTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0dG9BcnJheTogZnVuY3Rpb24gKCBhcnJheSwgb2Zmc2V0ICkge1xuXG5cdFx0aWYgKCBhcnJheSA9PT0gdW5kZWZpbmVkICkgYXJyYXkgPSBbXTtcblx0XHRpZiAoIG9mZnNldCA9PT0gdW5kZWZpbmVkICkgb2Zmc2V0ID0gMDtcblxuXHRcdGFycmF5WyBvZmZzZXQgXSA9IHRoaXMueDtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMSBdID0gdGhpcy55O1xuXHRcdGFycmF5WyBvZmZzZXQgKyAyIF0gPSB0aGlzLno7XG5cblx0XHRyZXR1cm4gYXJyYXk7XG5cblx0fSxcblxuXHRmcm9tQnVmZmVyQXR0cmlidXRlOiBmdW5jdGlvbiAoIGF0dHJpYnV0ZSwgaW5kZXgsIG9mZnNldCApIHtcblxuXHRcdGlmICggb2Zmc2V0ICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdGNvbnNvbGUud2FybiggJ1RIUkVFLlZlY3RvcjM6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4nICk7XG5cblx0XHR9XG5cblx0XHR0aGlzLnggPSBhdHRyaWJ1dGUuZ2V0WCggaW5kZXggKTtcblx0XHR0aGlzLnkgPSBhdHRyaWJ1dGUuZ2V0WSggaW5kZXggKTtcblx0XHR0aGlzLnogPSBhdHRyaWJ1dGUuZ2V0WiggaW5kZXggKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH1cblxufSApO1xuXG5cbmV4cG9ydCB7IFZlY3RvcjMgfTsiXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/three/constants.js",
    "content": "export var REVISION = '106';\nexport var MOUSE = {\n  LEFT: 0,\n  MIDDLE: 1,\n  RIGHT: 2\n};\nexport var CullFaceNone = 0;\nexport var CullFaceBack = 1;\nexport var CullFaceFront = 2;\nexport var CullFaceFrontBack = 3;\nexport var FrontFaceDirectionCW = 0;\nexport var FrontFaceDirectionCCW = 1;\nexport var BasicShadowMap = 0;\nexport var PCFShadowMap = 1;\nexport var PCFSoftShadowMap = 2;\nexport var FrontSide = 0;\nexport var BackSide = 1;\nexport var DoubleSide = 2;\nexport var FlatShading = 1;\nexport var SmoothShading = 2;\nexport var NoColors = 0;\nexport var FaceColors = 1;\nexport var VertexColors = 2;\nexport var NoBlending = 0;\nexport var NormalBlending = 1;\nexport var AdditiveBlending = 2;\nexport var SubtractiveBlending = 3;\nexport var MultiplyBlending = 4;\nexport var CustomBlending = 5;\nexport var AddEquation = 100;\nexport var SubtractEquation = 101;\nexport var ReverseSubtractEquation = 102;\nexport var MinEquation = 103;\nexport var MaxEquation = 104;\nexport var ZeroFactor = 200;\nexport var OneFactor = 201;\nexport var SrcColorFactor = 202;\nexport var OneMinusSrcColorFactor = 203;\nexport var SrcAlphaFactor = 204;\nexport var OneMinusSrcAlphaFactor = 205;\nexport var DstAlphaFactor = 206;\nexport var OneMinusDstAlphaFactor = 207;\nexport var DstColorFactor = 208;\nexport var OneMinusDstColorFactor = 209;\nexport var SrcAlphaSaturateFactor = 210;\nexport var NeverDepth = 0;\nexport var AlwaysDepth = 1;\nexport var LessDepth = 2;\nexport var LessEqualDepth = 3;\nexport var EqualDepth = 4;\nexport var GreaterEqualDepth = 5;\nexport var GreaterDepth = 6;\nexport var NotEqualDepth = 7;\nexport var MultiplyOperation = 0;\nexport var MixOperation = 1;\nexport var AddOperation = 2;\nexport var NoToneMapping = 0;\nexport var LinearToneMapping = 1;\nexport var ReinhardToneMapping = 2;\nexport var Uncharted2ToneMapping = 3;\nexport var CineonToneMapping = 4;\nexport var ACESFilmicToneMapping = 5;\nexport var UVMapping = 300;\nexport var CubeReflectionMapping = 301;\nexport var CubeRefractionMapping = 302;\nexport var EquirectangularReflectionMapping = 303;\nexport var EquirectangularRefractionMapping = 304;\nexport var SphericalReflectionMapping = 305;\nexport var CubeUVReflectionMapping = 306;\nexport var CubeUVRefractionMapping = 307;\nexport var RepeatWrapping = 1000;\nexport var ClampToEdgeWrapping = 1001;\nexport var MirroredRepeatWrapping = 1002;\nexport var NearestFilter = 1003;\nexport var NearestMipMapNearestFilter = 1004;\nexport var NearestMipMapLinearFilter = 1005;\nexport var LinearFilter = 1006;\nexport var LinearMipMapNearestFilter = 1007;\nexport var LinearMipMapLinearFilter = 1008;\nexport var UnsignedByteType = 1009;\nexport var ByteType = 1010;\nexport var ShortType = 1011;\nexport var UnsignedShortType = 1012;\nexport var IntType = 1013;\nexport var UnsignedIntType = 1014;\nexport var FloatType = 1015;\nexport var HalfFloatType = 1016;\nexport var UnsignedShort4444Type = 1017;\nexport var UnsignedShort5551Type = 1018;\nexport var UnsignedShort565Type = 1019;\nexport var UnsignedInt248Type = 1020;\nexport var AlphaFormat = 1021;\nexport var RGBFormat = 1022;\nexport var RGBAFormat = 1023;\nexport var LuminanceFormat = 1024;\nexport var LuminanceAlphaFormat = 1025;\nexport var RGBEFormat = RGBAFormat;\nexport var DepthFormat = 1026;\nexport var DepthStencilFormat = 1027;\nexport var RedFormat = 1028;\nexport var RGB_S3TC_DXT1_Format = 33776;\nexport var RGBA_S3TC_DXT1_Format = 33777;\nexport var RGBA_S3TC_DXT3_Format = 33778;\nexport var RGBA_S3TC_DXT5_Format = 33779;\nexport var RGB_PVRTC_4BPPV1_Format = 35840;\nexport var RGB_PVRTC_2BPPV1_Format = 35841;\nexport var RGBA_PVRTC_4BPPV1_Format = 35842;\nexport var RGBA_PVRTC_2BPPV1_Format = 35843;\nexport var RGB_ETC1_Format = 36196;\nexport var RGBA_ASTC_4x4_Format = 37808;\nexport var RGBA_ASTC_5x4_Format = 37809;\nexport var RGBA_ASTC_5x5_Format = 37810;\nexport var RGBA_ASTC_6x5_Format = 37811;\nexport var RGBA_ASTC_6x6_Format = 37812;\nexport var RGBA_ASTC_8x5_Format = 37813;\nexport var RGBA_ASTC_8x6_Format = 37814;\nexport var RGBA_ASTC_8x8_Format = 37815;\nexport var RGBA_ASTC_10x5_Format = 37816;\nexport var RGBA_ASTC_10x6_Format = 37817;\nexport var RGBA_ASTC_10x8_Format = 37818;\nexport var RGBA_ASTC_10x10_Format = 37819;\nexport var RGBA_ASTC_12x10_Format = 37820;\nexport var RGBA_ASTC_12x12_Format = 37821;\nexport var LoopOnce = 2200;\nexport var LoopRepeat = 2201;\nexport var LoopPingPong = 2202;\nexport var InterpolateDiscrete = 2300;\nexport var InterpolateLinear = 2301;\nexport var InterpolateSmooth = 2302;\nexport var ZeroCurvatureEnding = 2400;\nexport var ZeroSlopeEnding = 2401;\nexport var WrapAroundEnding = 2402;\nexport var TrianglesDrawMode = 0;\nexport var TriangleStripDrawMode = 1;\nexport var TriangleFanDrawMode = 2;\nexport var LinearEncoding = 3000;\nexport var sRGBEncoding = 3001;\nexport var GammaEncoding = 3007;\nexport var RGBEEncoding = 3002;\nexport var LogLuvEncoding = 3003;\nexport var RGBM7Encoding = 3004;\nexport var RGBM16Encoding = 3005;\nexport var RGBDEncoding = 3006;\nexport var BasicDepthPacking = 3200;\nexport var RGBADepthPacking = 3201;\nexport var TangentSpaceNormalMap = 0;\nexport var ObjectSpaceNormalMap = 1;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJSRVZJU0lPTiIsIk1PVVNFIiwiTEVGVCIsIk1JRERMRSIsIlJJR0hUIiwiQ3VsbEZhY2VOb25lIiwiQ3VsbEZhY2VCYWNrIiwiQ3VsbEZhY2VGcm9udCIsIkN1bGxGYWNlRnJvbnRCYWNrIiwiRnJvbnRGYWNlRGlyZWN0aW9uQ1ciLCJGcm9udEZhY2VEaXJlY3Rpb25DQ1ciLCJCYXNpY1NoYWRvd01hcCIsIlBDRlNoYWRvd01hcCIsIlBDRlNvZnRTaGFkb3dNYXAiLCJGcm9udFNpZGUiLCJCYWNrU2lkZSIsIkRvdWJsZVNpZGUiLCJGbGF0U2hhZGluZyIsIlNtb290aFNoYWRpbmciLCJOb0NvbG9ycyIsIkZhY2VDb2xvcnMiLCJWZXJ0ZXhDb2xvcnMiLCJOb0JsZW5kaW5nIiwiTm9ybWFsQmxlbmRpbmciLCJBZGRpdGl2ZUJsZW5kaW5nIiwiU3VidHJhY3RpdmVCbGVuZGluZyIsIk11bHRpcGx5QmxlbmRpbmciLCJDdXN0b21CbGVuZGluZyIsIkFkZEVxdWF0aW9uIiwiU3VidHJhY3RFcXVhdGlvbiIsIlJldmVyc2VTdWJ0cmFjdEVxdWF0aW9uIiwiTWluRXF1YXRpb24iLCJNYXhFcXVhdGlvbiIsIlplcm9GYWN0b3IiLCJPbmVGYWN0b3IiLCJTcmNDb2xvckZhY3RvciIsIk9uZU1pbnVzU3JjQ29sb3JGYWN0b3IiLCJTcmNBbHBoYUZhY3RvciIsIk9uZU1pbnVzU3JjQWxwaGFGYWN0b3IiLCJEc3RBbHBoYUZhY3RvciIsIk9uZU1pbnVzRHN0QWxwaGFGYWN0b3IiLCJEc3RDb2xvckZhY3RvciIsIk9uZU1pbnVzRHN0Q29sb3JGYWN0b3IiLCJTcmNBbHBoYVNhdHVyYXRlRmFjdG9yIiwiTmV2ZXJEZXB0aCIsIkFsd2F5c0RlcHRoIiwiTGVzc0RlcHRoIiwiTGVzc0VxdWFsRGVwdGgiLCJFcXVhbERlcHRoIiwiR3JlYXRlckVxdWFsRGVwdGgiLCJHcmVhdGVyRGVwdGgiLCJOb3RFcXVhbERlcHRoIiwiTXVsdGlwbHlPcGVyYXRpb24iLCJNaXhPcGVyYXRpb24iLCJBZGRPcGVyYXRpb24iLCJOb1RvbmVNYXBwaW5nIiwiTGluZWFyVG9uZU1hcHBpbmciLCJSZWluaGFyZFRvbmVNYXBwaW5nIiwiVW5jaGFydGVkMlRvbmVNYXBwaW5nIiwiQ2luZW9uVG9uZU1hcHBpbmciLCJBQ0VTRmlsbWljVG9uZU1hcHBpbmciLCJVVk1hcHBpbmciLCJDdWJlUmVmbGVjdGlvbk1hcHBpbmciLCJDdWJlUmVmcmFjdGlvbk1hcHBpbmciLCJFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZyIsIkVxdWlyZWN0YW5ndWxhclJlZnJhY3Rpb25NYXBwaW5nIiwiU3BoZXJpY2FsUmVmbGVjdGlvbk1hcHBpbmciLCJDdWJlVVZSZWZsZWN0aW9uTWFwcGluZyIsIkN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nIiwiUmVwZWF0V3JhcHBpbmciLCJDbGFtcFRvRWRnZVdyYXBwaW5nIiwiTWlycm9yZWRSZXBlYXRXcmFwcGluZyIsIk5lYXJlc3RGaWx0ZXIiLCJOZWFyZXN0TWlwTWFwTmVhcmVzdEZpbHRlciIsIk5lYXJlc3RNaXBNYXBMaW5lYXJGaWx0ZXIiLCJMaW5lYXJGaWx0ZXIiLCJMaW5lYXJNaXBNYXBOZWFyZXN0RmlsdGVyIiwiTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyIiwiVW5zaWduZWRCeXRlVHlwZSIsIkJ5dGVUeXBlIiwiU2hvcnRUeXBlIiwiVW5zaWduZWRTaG9ydFR5cGUiLCJJbnRUeXBlIiwiVW5zaWduZWRJbnRUeXBlIiwiRmxvYXRUeXBlIiwiSGFsZkZsb2F0VHlwZSIsIlVuc2lnbmVkU2hvcnQ0NDQ0VHlwZSIsIlVuc2lnbmVkU2hvcnQ1NTUxVHlwZSIsIlVuc2lnbmVkU2hvcnQ1NjVUeXBlIiwiVW5zaWduZWRJbnQyNDhUeXBlIiwiQWxwaGFGb3JtYXQiLCJSR0JGb3JtYXQiLCJSR0JBRm9ybWF0IiwiTHVtaW5hbmNlRm9ybWF0IiwiTHVtaW5hbmNlQWxwaGFGb3JtYXQiLCJSR0JFRm9ybWF0IiwiRGVwdGhGb3JtYXQiLCJEZXB0aFN0ZW5jaWxGb3JtYXQiLCJSZWRGb3JtYXQiLCJSR0JfUzNUQ19EWFQxX0Zvcm1hdCIsIlJHQkFfUzNUQ19EWFQxX0Zvcm1hdCIsIlJHQkFfUzNUQ19EWFQzX0Zvcm1hdCIsIlJHQkFfUzNUQ19EWFQ1X0Zvcm1hdCIsIlJHQl9QVlJUQ180QlBQVjFfRm9ybWF0IiwiUkdCX1BWUlRDXzJCUFBWMV9Gb3JtYXQiLCJSR0JBX1BWUlRDXzRCUFBWMV9Gb3JtYXQiLCJSR0JBX1BWUlRDXzJCUFBWMV9Gb3JtYXQiLCJSR0JfRVRDMV9Gb3JtYXQiLCJSR0JBX0FTVENfNHg0X0Zvcm1hdCIsIlJHQkFfQVNUQ181eDRfRm9ybWF0IiwiUkdCQV9BU1RDXzV4NV9Gb3JtYXQiLCJSR0JBX0FTVENfNng1X0Zvcm1hdCIsIlJHQkFfQVNUQ182eDZfRm9ybWF0IiwiUkdCQV9BU1RDXzh4NV9Gb3JtYXQiLCJSR0JBX0FTVENfOHg2X0Zvcm1hdCIsIlJHQkFfQVNUQ184eDhfRm9ybWF0IiwiUkdCQV9BU1RDXzEweDVfRm9ybWF0IiwiUkdCQV9BU1RDXzEweDZfRm9ybWF0IiwiUkdCQV9BU1RDXzEweDhfRm9ybWF0IiwiUkdCQV9BU1RDXzEweDEwX0Zvcm1hdCIsIlJHQkFfQVNUQ18xMngxMF9Gb3JtYXQiLCJSR0JBX0FTVENfMTJ4MTJfRm9ybWF0IiwiTG9vcE9uY2UiLCJMb29wUmVwZWF0IiwiTG9vcFBpbmdQb25nIiwiSW50ZXJwb2xhdGVEaXNjcmV0ZSIsIkludGVycG9sYXRlTGluZWFyIiwiSW50ZXJwb2xhdGVTbW9vdGgiLCJaZXJvQ3VydmF0dXJlRW5kaW5nIiwiWmVyb1Nsb3BlRW5kaW5nIiwiV3JhcEFyb3VuZEVuZGluZyIsIlRyaWFuZ2xlc0RyYXdNb2RlIiwiVHJpYW5nbGVTdHJpcERyYXdNb2RlIiwiVHJpYW5nbGVGYW5EcmF3TW9kZSIsIkxpbmVhckVuY29kaW5nIiwic1JHQkVuY29kaW5nIiwiR2FtbWFFbmNvZGluZyIsIlJHQkVFbmNvZGluZyIsIkxvZ0x1dkVuY29kaW5nIiwiUkdCTTdFbmNvZGluZyIsIlJHQk0xNkVuY29kaW5nIiwiUkdCREVuY29kaW5nIiwiQmFzaWNEZXB0aFBhY2tpbmciLCJSR0JBRGVwdGhQYWNraW5nIiwiVGFuZ2VudFNwYWNlTm9ybWFsTWFwIiwiT2JqZWN0U3BhY2VOb3JtYWxNYXAiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSUEsUUFBUSxHQUFHLEtBQWY7QUFDUCxPQUFPLElBQUlDLEtBQUssR0FBRztBQUFFQyxFQUFBQSxJQUFJLEVBQUUsQ0FBUjtBQUFXQyxFQUFBQSxNQUFNLEVBQUUsQ0FBbkI7QUFBc0JDLEVBQUFBLEtBQUssRUFBRTtBQUE3QixDQUFaO0FBQ1AsT0FBTyxJQUFJQyxZQUFZLEdBQUcsQ0FBbkI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxDQUFuQjtBQUNQLE9BQU8sSUFBSUMsYUFBYSxHQUFHLENBQXBCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxDQUF4QjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsQ0FBM0I7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLENBQTVCO0FBQ1AsT0FBTyxJQUFJQyxjQUFjLEdBQUcsQ0FBckI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxDQUFuQjtBQUNQLE9BQU8sSUFBSUMsZ0JBQWdCLEdBQUcsQ0FBdkI7QUFDUCxPQUFPLElBQUlDLFNBQVMsR0FBRyxDQUFoQjtBQUNQLE9BQU8sSUFBSUMsUUFBUSxHQUFHLENBQWY7QUFDUCxPQUFPLElBQUlDLFVBQVUsR0FBRyxDQUFqQjtBQUNQLE9BQU8sSUFBSUMsV0FBVyxHQUFHLENBQWxCO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsQ0FBcEI7QUFDUCxPQUFPLElBQUlDLFFBQVEsR0FBRyxDQUFmO0FBQ1AsT0FBTyxJQUFJQyxVQUFVLEdBQUcsQ0FBakI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxDQUFuQjtBQUNQLE9BQU8sSUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ1AsT0FBTyxJQUFJQyxjQUFjLEdBQUcsQ0FBckI7QUFDUCxPQUFPLElBQUlDLGdCQUFnQixHQUFHLENBQXZCO0FBQ1AsT0FBTyxJQUFJQyxtQkFBbUIsR0FBRyxDQUExQjtBQUNQLE9BQU8sSUFBSUMsZ0JBQWdCLEdBQUcsQ0FBdkI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxDQUFyQjtBQUNQLE9BQU8sSUFBSUMsV0FBVyxHQUFHLEdBQWxCO0FBQ1AsT0FBTyxJQUFJQyxnQkFBZ0IsR0FBRyxHQUF2QjtBQUNQLE9BQU8sSUFBSUMsdUJBQXVCLEdBQUcsR0FBOUI7QUFDUCxPQUFPLElBQUlDLFdBQVcsR0FBRyxHQUFsQjtBQUNQLE9BQU8sSUFBSUMsV0FBVyxHQUFHLEdBQWxCO0FBQ1AsT0FBTyxJQUFJQyxVQUFVLEdBQUcsR0FBakI7QUFDUCxPQUFPLElBQUlDLFNBQVMsR0FBRyxHQUFoQjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLEdBQXJCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxHQUE3QjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLEdBQXJCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxHQUE3QjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLEdBQXJCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxHQUE3QjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLEdBQXJCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxHQUE3QjtBQUNQLE9BQU8sSUFBSUMsc0JBQXNCLEdBQUcsR0FBN0I7QUFDUCxPQUFPLElBQUlDLFVBQVUsR0FBRyxDQUFqQjtBQUNQLE9BQU8sSUFBSUMsV0FBVyxHQUFHLENBQWxCO0FBQ1AsT0FBTyxJQUFJQyxTQUFTLEdBQUcsQ0FBaEI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxDQUFyQjtBQUNQLE9BQU8sSUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxDQUF4QjtBQUNQLE9BQU8sSUFBSUMsWUFBWSxHQUFHLENBQW5CO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsQ0FBcEI7QUFDUCxPQUFPLElBQUlDLGlCQUFpQixHQUFHLENBQXhCO0FBQ1AsT0FBTyxJQUFJQyxZQUFZLEdBQUcsQ0FBbkI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxDQUFuQjtBQUNQLE9BQU8sSUFBSUMsYUFBYSxHQUFHLENBQXBCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxDQUF4QjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsQ0FBMUI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLENBQTVCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxDQUF4QjtBQUNQLE9BQU8sSUFBSUMscUJBQXFCLEdBQUcsQ0FBNUI7QUFFUCxPQUFPLElBQUlDLFNBQVMsR0FBRyxHQUFoQjtBQUNQLE9BQU8sSUFBSUMscUJBQXFCLEdBQUcsR0FBNUI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLEdBQTVCO0FBQ1AsT0FBTyxJQUFJQyxnQ0FBZ0MsR0FBRyxHQUF2QztBQUNQLE9BQU8sSUFBSUMsZ0NBQWdDLEdBQUcsR0FBdkM7QUFDUCxPQUFPLElBQUlDLDBCQUEwQixHQUFHLEdBQWpDO0FBQ1AsT0FBTyxJQUFJQyx1QkFBdUIsR0FBRyxHQUE5QjtBQUNQLE9BQU8sSUFBSUMsdUJBQXVCLEdBQUcsR0FBOUI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxJQUFyQjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsSUFBMUI7QUFDUCxPQUFPLElBQUlDLHNCQUFzQixHQUFHLElBQTdCO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDUCxPQUFPLElBQUlDLDBCQUEwQixHQUFHLElBQWpDO0FBQ1AsT0FBTyxJQUFJQyx5QkFBeUIsR0FBRyxJQUFoQztBQUNQLE9BQU8sSUFBSUMsWUFBWSxHQUFHLElBQW5CO0FBQ1AsT0FBTyxJQUFJQyx5QkFBeUIsR0FBRyxJQUFoQztBQUNQLE9BQU8sSUFBSUMsd0JBQXdCLEdBQUcsSUFBL0I7QUFDUCxPQUFPLElBQUlDLGdCQUFnQixHQUFHLElBQXZCO0FBQ1AsT0FBTyxJQUFJQyxRQUFRLEdBQUcsSUFBZjtBQUNQLE9BQU8sSUFBSUMsU0FBUyxHQUFHLElBQWhCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxJQUF4QjtBQUNQLE9BQU8sSUFBSUMsT0FBTyxHQUFHLElBQWQ7QUFDUCxPQUFPLElBQUlDLGVBQWUsR0FBRyxJQUF0QjtBQUNQLE9BQU8sSUFBSUMsU0FBUyxHQUFHLElBQWhCO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLElBQTVCO0FBQ1AsT0FBTyxJQUFJQyxxQkFBcUIsR0FBRyxJQUE1QjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsSUFBM0I7QUFDUCxPQUFPLElBQUlDLGtCQUFrQixHQUFHLElBQXpCO0FBQ1AsT0FBTyxJQUFJQyxXQUFXLEdBQUcsSUFBbEI7QUFDUCxPQUFPLElBQUlDLFNBQVMsR0FBRyxJQUFoQjtBQUNQLE9BQU8sSUFBSUMsVUFBVSxHQUFHLElBQWpCO0FBQ1AsT0FBTyxJQUFJQyxlQUFlLEdBQUcsSUFBdEI7QUFDUCxPQUFPLElBQUlDLG9CQUFvQixHQUFHLElBQTNCO0FBQ1AsT0FBTyxJQUFJQyxVQUFVLEdBQUdILFVBQWpCO0FBQ1AsT0FBTyxJQUFJSSxXQUFXLEdBQUcsSUFBbEI7QUFDUCxPQUFPLElBQUlDLGtCQUFrQixHQUFHLElBQXpCO0FBQ1AsT0FBTyxJQUFJQyxTQUFTLEdBQUcsSUFBaEI7QUFDUCxPQUFPLElBQUlDLG9CQUFvQixHQUFHLEtBQTNCO0FBQ1AsT0FBTyxJQUFJQyxxQkFBcUIsR0FBRyxLQUE1QjtBQUNQLE9BQU8sSUFBSUMscUJBQXFCLEdBQUcsS0FBNUI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLEtBQTVCO0FBQ1AsT0FBTyxJQUFJQyx1QkFBdUIsR0FBRyxLQUE5QjtBQUNQLE9BQU8sSUFBSUMsdUJBQXVCLEdBQUcsS0FBOUI7QUFDUCxPQUFPLElBQUlDLHdCQUF3QixHQUFHLEtBQS9CO0FBQ1AsT0FBTyxJQUFJQyx3QkFBd0IsR0FBRyxLQUEvQjtBQUNQLE9BQU8sSUFBSUMsZUFBZSxHQUFHLEtBQXRCO0FBQ1AsT0FBTyxJQUFJQyxvQkFBb0IsR0FBRyxLQUEzQjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsS0FBM0I7QUFDUCxPQUFPLElBQUlDLG9CQUFvQixHQUFHLEtBQTNCO0FBQ1AsT0FBTyxJQUFJQyxvQkFBb0IsR0FBRyxLQUEzQjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsS0FBM0I7QUFDUCxPQUFPLElBQUlDLG9CQUFvQixHQUFHLEtBQTNCO0FBQ1AsT0FBTyxJQUFJQyxvQkFBb0IsR0FBRyxLQUEzQjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsS0FBM0I7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLEtBQTVCO0FBQ1AsT0FBTyxJQUFJQyxxQkFBcUIsR0FBRyxLQUE1QjtBQUNQLE9BQU8sSUFBSUMscUJBQXFCLEdBQUcsS0FBNUI7QUFDUCxPQUFPLElBQUlDLHNCQUFzQixHQUFHLEtBQTdCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxLQUE3QjtBQUNQLE9BQU8sSUFBSUMsc0JBQXNCLEdBQUcsS0FBN0I7QUFDUCxPQUFPLElBQUlDLFFBQVEsR0FBRyxJQUFmO0FBQ1AsT0FBTyxJQUFJQyxVQUFVLEdBQUcsSUFBakI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxJQUFuQjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsSUFBMUI7QUFDUCxPQUFPLElBQUlDLGlCQUFpQixHQUFHLElBQXhCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxJQUF4QjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsSUFBMUI7QUFDUCxPQUFPLElBQUlDLGVBQWUsR0FBRyxJQUF0QjtBQUNQLE9BQU8sSUFBSUMsZ0JBQWdCLEdBQUcsSUFBdkI7QUFDUCxPQUFPLElBQUlDLGlCQUFpQixHQUFHLENBQXhCO0FBQ1AsT0FBTyxJQUFJQyxxQkFBcUIsR0FBRyxDQUE1QjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsQ0FBMUI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxJQUFyQjtBQUNQLE9BQU8sSUFBSUMsWUFBWSxHQUFHLElBQW5CO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxJQUFuQjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLElBQXJCO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxJQUFyQjtBQUNQLE9BQU8sSUFBSUMsWUFBWSxHQUFHLElBQW5CO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxJQUF4QjtBQUNQLE9BQU8sSUFBSUMsZ0JBQWdCLEdBQUcsSUFBdkI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLENBQTVCO0FBQ1AsT0FBTyxJQUFJQyxvQkFBb0IsR0FBRyxDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgUkVWSVNJT04gPSAnMTA2JztcbmV4cG9ydCB2YXIgTU9VU0UgPSB7IExFRlQ6IDAsIE1JRERMRTogMSwgUklHSFQ6IDIgfTtcbmV4cG9ydCB2YXIgQ3VsbEZhY2VOb25lID0gMDtcbmV4cG9ydCB2YXIgQ3VsbEZhY2VCYWNrID0gMTtcbmV4cG9ydCB2YXIgQ3VsbEZhY2VGcm9udCA9IDI7XG5leHBvcnQgdmFyIEN1bGxGYWNlRnJvbnRCYWNrID0gMztcbmV4cG9ydCB2YXIgRnJvbnRGYWNlRGlyZWN0aW9uQ1cgPSAwO1xuZXhwb3J0IHZhciBGcm9udEZhY2VEaXJlY3Rpb25DQ1cgPSAxO1xuZXhwb3J0IHZhciBCYXNpY1NoYWRvd01hcCA9IDA7XG5leHBvcnQgdmFyIFBDRlNoYWRvd01hcCA9IDE7XG5leHBvcnQgdmFyIFBDRlNvZnRTaGFkb3dNYXAgPSAyO1xuZXhwb3J0IHZhciBGcm9udFNpZGUgPSAwO1xuZXhwb3J0IHZhciBCYWNrU2lkZSA9IDE7XG5leHBvcnQgdmFyIERvdWJsZVNpZGUgPSAyO1xuZXhwb3J0IHZhciBGbGF0U2hhZGluZyA9IDE7XG5leHBvcnQgdmFyIFNtb290aFNoYWRpbmcgPSAyO1xuZXhwb3J0IHZhciBOb0NvbG9ycyA9IDA7XG5leHBvcnQgdmFyIEZhY2VDb2xvcnMgPSAxO1xuZXhwb3J0IHZhciBWZXJ0ZXhDb2xvcnMgPSAyO1xuZXhwb3J0IHZhciBOb0JsZW5kaW5nID0gMDtcbmV4cG9ydCB2YXIgTm9ybWFsQmxlbmRpbmcgPSAxO1xuZXhwb3J0IHZhciBBZGRpdGl2ZUJsZW5kaW5nID0gMjtcbmV4cG9ydCB2YXIgU3VidHJhY3RpdmVCbGVuZGluZyA9IDM7XG5leHBvcnQgdmFyIE11bHRpcGx5QmxlbmRpbmcgPSA0O1xuZXhwb3J0IHZhciBDdXN0b21CbGVuZGluZyA9IDU7XG5leHBvcnQgdmFyIEFkZEVxdWF0aW9uID0gMTAwO1xuZXhwb3J0IHZhciBTdWJ0cmFjdEVxdWF0aW9uID0gMTAxO1xuZXhwb3J0IHZhciBSZXZlcnNlU3VidHJhY3RFcXVhdGlvbiA9IDEwMjtcbmV4cG9ydCB2YXIgTWluRXF1YXRpb24gPSAxMDM7XG5leHBvcnQgdmFyIE1heEVxdWF0aW9uID0gMTA0O1xuZXhwb3J0IHZhciBaZXJvRmFjdG9yID0gMjAwO1xuZXhwb3J0IHZhciBPbmVGYWN0b3IgPSAyMDE7XG5leHBvcnQgdmFyIFNyY0NvbG9yRmFjdG9yID0gMjAyO1xuZXhwb3J0IHZhciBPbmVNaW51c1NyY0NvbG9yRmFjdG9yID0gMjAzO1xuZXhwb3J0IHZhciBTcmNBbHBoYUZhY3RvciA9IDIwNDtcbmV4cG9ydCB2YXIgT25lTWludXNTcmNBbHBoYUZhY3RvciA9IDIwNTtcbmV4cG9ydCB2YXIgRHN0QWxwaGFGYWN0b3IgPSAyMDY7XG5leHBvcnQgdmFyIE9uZU1pbnVzRHN0QWxwaGFGYWN0b3IgPSAyMDc7XG5leHBvcnQgdmFyIERzdENvbG9yRmFjdG9yID0gMjA4O1xuZXhwb3J0IHZhciBPbmVNaW51c0RzdENvbG9yRmFjdG9yID0gMjA5O1xuZXhwb3J0IHZhciBTcmNBbHBoYVNhdHVyYXRlRmFjdG9yID0gMjEwO1xuZXhwb3J0IHZhciBOZXZlckRlcHRoID0gMDtcbmV4cG9ydCB2YXIgQWx3YXlzRGVwdGggPSAxO1xuZXhwb3J0IHZhciBMZXNzRGVwdGggPSAyO1xuZXhwb3J0IHZhciBMZXNzRXF1YWxEZXB0aCA9IDM7XG5leHBvcnQgdmFyIEVxdWFsRGVwdGggPSA0O1xuZXhwb3J0IHZhciBHcmVhdGVyRXF1YWxEZXB0aCA9IDU7XG5leHBvcnQgdmFyIEdyZWF0ZXJEZXB0aCA9IDY7XG5leHBvcnQgdmFyIE5vdEVxdWFsRGVwdGggPSA3O1xuZXhwb3J0IHZhciBNdWx0aXBseU9wZXJhdGlvbiA9IDA7XG5leHBvcnQgdmFyIE1peE9wZXJhdGlvbiA9IDE7XG5leHBvcnQgdmFyIEFkZE9wZXJhdGlvbiA9IDI7XG5leHBvcnQgdmFyIE5vVG9uZU1hcHBpbmcgPSAwO1xuZXhwb3J0IHZhciBMaW5lYXJUb25lTWFwcGluZyA9IDE7XG5leHBvcnQgdmFyIFJlaW5oYXJkVG9uZU1hcHBpbmcgPSAyO1xuZXhwb3J0IHZhciBVbmNoYXJ0ZWQyVG9uZU1hcHBpbmcgPSAzO1xuZXhwb3J0IHZhciBDaW5lb25Ub25lTWFwcGluZyA9IDQ7XG5leHBvcnQgdmFyIEFDRVNGaWxtaWNUb25lTWFwcGluZyA9IDU7XG5cbmV4cG9ydCB2YXIgVVZNYXBwaW5nID0gMzAwO1xuZXhwb3J0IHZhciBDdWJlUmVmbGVjdGlvbk1hcHBpbmcgPSAzMDE7XG5leHBvcnQgdmFyIEN1YmVSZWZyYWN0aW9uTWFwcGluZyA9IDMwMjtcbmV4cG9ydCB2YXIgRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmcgPSAzMDM7XG5leHBvcnQgdmFyIEVxdWlyZWN0YW5ndWxhclJlZnJhY3Rpb25NYXBwaW5nID0gMzA0O1xuZXhwb3J0IHZhciBTcGhlcmljYWxSZWZsZWN0aW9uTWFwcGluZyA9IDMwNTtcbmV4cG9ydCB2YXIgQ3ViZVVWUmVmbGVjdGlvbk1hcHBpbmcgPSAzMDY7XG5leHBvcnQgdmFyIEN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nID0gMzA3O1xuZXhwb3J0IHZhciBSZXBlYXRXcmFwcGluZyA9IDEwMDA7XG5leHBvcnQgdmFyIENsYW1wVG9FZGdlV3JhcHBpbmcgPSAxMDAxO1xuZXhwb3J0IHZhciBNaXJyb3JlZFJlcGVhdFdyYXBwaW5nID0gMTAwMjtcbmV4cG9ydCB2YXIgTmVhcmVzdEZpbHRlciA9IDEwMDM7XG5leHBvcnQgdmFyIE5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyID0gMTAwNDtcbmV4cG9ydCB2YXIgTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlciA9IDEwMDU7XG5leHBvcnQgdmFyIExpbmVhckZpbHRlciA9IDEwMDY7XG5leHBvcnQgdmFyIExpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIgPSAxMDA3O1xuZXhwb3J0IHZhciBMaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXIgPSAxMDA4O1xuZXhwb3J0IHZhciBVbnNpZ25lZEJ5dGVUeXBlID0gMTAwOTtcbmV4cG9ydCB2YXIgQnl0ZVR5cGUgPSAxMDEwO1xuZXhwb3J0IHZhciBTaG9ydFR5cGUgPSAxMDExO1xuZXhwb3J0IHZhciBVbnNpZ25lZFNob3J0VHlwZSA9IDEwMTI7XG5leHBvcnQgdmFyIEludFR5cGUgPSAxMDEzO1xuZXhwb3J0IHZhciBVbnNpZ25lZEludFR5cGUgPSAxMDE0O1xuZXhwb3J0IHZhciBGbG9hdFR5cGUgPSAxMDE1O1xuZXhwb3J0IHZhciBIYWxmRmxvYXRUeXBlID0gMTAxNjtcbmV4cG9ydCB2YXIgVW5zaWduZWRTaG9ydDQ0NDRUeXBlID0gMTAxNztcbmV4cG9ydCB2YXIgVW5zaWduZWRTaG9ydDU1NTFUeXBlID0gMTAxODtcbmV4cG9ydCB2YXIgVW5zaWduZWRTaG9ydDU2NVR5cGUgPSAxMDE5O1xuZXhwb3J0IHZhciBVbnNpZ25lZEludDI0OFR5cGUgPSAxMDIwO1xuZXhwb3J0IHZhciBBbHBoYUZvcm1hdCA9IDEwMjE7XG5leHBvcnQgdmFyIFJHQkZvcm1hdCA9IDEwMjI7XG5leHBvcnQgdmFyIFJHQkFGb3JtYXQgPSAxMDIzO1xuZXhwb3J0IHZhciBMdW1pbmFuY2VGb3JtYXQgPSAxMDI0O1xuZXhwb3J0IHZhciBMdW1pbmFuY2VBbHBoYUZvcm1hdCA9IDEwMjU7XG5leHBvcnQgdmFyIFJHQkVGb3JtYXQgPSBSR0JBRm9ybWF0O1xuZXhwb3J0IHZhciBEZXB0aEZvcm1hdCA9IDEwMjY7XG5leHBvcnQgdmFyIERlcHRoU3RlbmNpbEZvcm1hdCA9IDEwMjc7XG5leHBvcnQgdmFyIFJlZEZvcm1hdCA9IDEwMjg7XG5leHBvcnQgdmFyIFJHQl9TM1RDX0RYVDFfRm9ybWF0ID0gMzM3NzY7XG5leHBvcnQgdmFyIFJHQkFfUzNUQ19EWFQxX0Zvcm1hdCA9IDMzNzc3O1xuZXhwb3J0IHZhciBSR0JBX1MzVENfRFhUM19Gb3JtYXQgPSAzMzc3ODtcbmV4cG9ydCB2YXIgUkdCQV9TM1RDX0RYVDVfRm9ybWF0ID0gMzM3Nzk7XG5leHBvcnQgdmFyIFJHQl9QVlJUQ180QlBQVjFfRm9ybWF0ID0gMzU4NDA7XG5leHBvcnQgdmFyIFJHQl9QVlJUQ18yQlBQVjFfRm9ybWF0ID0gMzU4NDE7XG5leHBvcnQgdmFyIFJHQkFfUFZSVENfNEJQUFYxX0Zvcm1hdCA9IDM1ODQyO1xuZXhwb3J0IHZhciBSR0JBX1BWUlRDXzJCUFBWMV9Gb3JtYXQgPSAzNTg0MztcbmV4cG9ydCB2YXIgUkdCX0VUQzFfRm9ybWF0ID0gMzYxOTY7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ180eDRfRm9ybWF0ID0gMzc4MDg7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ181eDRfRm9ybWF0ID0gMzc4MDk7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ181eDVfRm9ybWF0ID0gMzc4MTA7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ182eDVfRm9ybWF0ID0gMzc4MTE7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ182eDZfRm9ybWF0ID0gMzc4MTI7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ184eDVfRm9ybWF0ID0gMzc4MTM7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ184eDZfRm9ybWF0ID0gMzc4MTQ7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ184eDhfRm9ybWF0ID0gMzc4MTU7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ18xMHg1X0Zvcm1hdCA9IDM3ODE2O1xuZXhwb3J0IHZhciBSR0JBX0FTVENfMTB4Nl9Gb3JtYXQgPSAzNzgxNztcbmV4cG9ydCB2YXIgUkdCQV9BU1RDXzEweDhfRm9ybWF0ID0gMzc4MTg7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ18xMHgxMF9Gb3JtYXQgPSAzNzgxOTtcbmV4cG9ydCB2YXIgUkdCQV9BU1RDXzEyeDEwX0Zvcm1hdCA9IDM3ODIwO1xuZXhwb3J0IHZhciBSR0JBX0FTVENfMTJ4MTJfRm9ybWF0ID0gMzc4MjE7XG5leHBvcnQgdmFyIExvb3BPbmNlID0gMjIwMDtcbmV4cG9ydCB2YXIgTG9vcFJlcGVhdCA9IDIyMDE7XG5leHBvcnQgdmFyIExvb3BQaW5nUG9uZyA9IDIyMDI7XG5leHBvcnQgdmFyIEludGVycG9sYXRlRGlzY3JldGUgPSAyMzAwO1xuZXhwb3J0IHZhciBJbnRlcnBvbGF0ZUxpbmVhciA9IDIzMDE7XG5leHBvcnQgdmFyIEludGVycG9sYXRlU21vb3RoID0gMjMwMjtcbmV4cG9ydCB2YXIgWmVyb0N1cnZhdHVyZUVuZGluZyA9IDI0MDA7XG5leHBvcnQgdmFyIFplcm9TbG9wZUVuZGluZyA9IDI0MDE7XG5leHBvcnQgdmFyIFdyYXBBcm91bmRFbmRpbmcgPSAyNDAyO1xuZXhwb3J0IHZhciBUcmlhbmdsZXNEcmF3TW9kZSA9IDA7XG5leHBvcnQgdmFyIFRyaWFuZ2xlU3RyaXBEcmF3TW9kZSA9IDE7XG5leHBvcnQgdmFyIFRyaWFuZ2xlRmFuRHJhd01vZGUgPSAyO1xuZXhwb3J0IHZhciBMaW5lYXJFbmNvZGluZyA9IDMwMDA7XG5leHBvcnQgdmFyIHNSR0JFbmNvZGluZyA9IDMwMDE7XG5leHBvcnQgdmFyIEdhbW1hRW5jb2RpbmcgPSAzMDA3O1xuZXhwb3J0IHZhciBSR0JFRW5jb2RpbmcgPSAzMDAyO1xuZXhwb3J0IHZhciBMb2dMdXZFbmNvZGluZyA9IDMwMDM7XG5leHBvcnQgdmFyIFJHQk03RW5jb2RpbmcgPSAzMDA0O1xuZXhwb3J0IHZhciBSR0JNMTZFbmNvZGluZyA9IDMwMDU7XG5leHBvcnQgdmFyIFJHQkRFbmNvZGluZyA9IDMwMDY7XG5leHBvcnQgdmFyIEJhc2ljRGVwdGhQYWNraW5nID0gMzIwMDtcbmV4cG9ydCB2YXIgUkdCQURlcHRoUGFja2luZyA9IDMyMDE7XG5leHBvcnQgdmFyIFRhbmdlbnRTcGFjZU5vcm1hbE1hcCA9IDA7XG5leHBvcnQgdmFyIE9iamVjdFNwYWNlTm9ybWFsTWFwID0gMTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/three/index.js",
    "content": "export { Vector3 } from './Vector3';\nexport { Quaternion } from './Quaternion';\nexport { Euler } from './Euler';\nexport * from './constants';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL2luZGV4LmpzIl0sIm5hbWVzIjpbIlZlY3RvcjMiLCJRdWF0ZXJuaW9uIiwiRXVsZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQVQsUUFBd0IsV0FBeEI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLGNBQTNCO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixTQUF0QjtBQUNBLGNBQWMsYUFBZCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFZlY3RvcjMgfSBmcm9tICcuL1ZlY3RvcjMnO1xuZXhwb3J0IHsgUXVhdGVybmlvbiB9IGZyb20gJy4vUXVhdGVybmlvbic7XG5leHBvcnQgeyBFdWxlciB9IGZyb20gJy4vRXVsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/core/types.js",
    "content": "export const CORE_TYPE_PARTICLE = 'Particle';\nexport const CORE_TYPE_POOL = 'Pool';\nexport const CORE_TYPE_SYSTEM = 'System';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL3R5cGVzLmpzIl0sIm5hbWVzIjpbIkNPUkVfVFlQRV9QQVJUSUNMRSIsIkNPUkVfVFlQRV9QT09MIiwiQ09SRV9UWVBFX1NZU1RFTSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxrQkFBa0IsR0FBRyxVQUEzQjtBQUNQLE9BQU8sTUFBTUMsY0FBYyxHQUFHLE1BQXZCO0FBQ1AsT0FBTyxNQUFNQyxnQkFBZ0IsR0FBRyxRQUF6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDT1JFX1RZUEVfUEFSVElDTEUgPSAnUGFydGljbGUnO1xuZXhwb3J0IGNvbnN0IENPUkVfVFlQRV9QT09MID0gJ1Bvb2wnO1xuZXhwb3J0IGNvbnN0IENPUkVfVFlQRV9TWVNURU0gPSAnU3lzdGVtJztcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/debug/Debug.js",
    "content": "import { DEFAULT_POSITION, DEFAULT_SIZE as size } from './constants';\n/**\n * @exports Debug - methods and helpers for debugging System emitters, zones and particles.\n * @requires THREE - { SphereGeometry, BoxGeometry, MeshBasicMaterial, OctahedronGeometry, Mesh }\n */\n\nexport default {\n  /**\n   * Adds an event listener to the system instance's SYSTEM_UPDATE event.\n   *\n   * @param {System} system - the system instance\n   * @param {function} onSystemUpdated - the function to call when system has been updated\n   * @return {Debug}\n   */\n  addEventListener: function (system, onSystemUpdated) {\n    system.eventDispatcher.addEventListener('SYSTEM_UPDATE', onSystemUpdated);\n    return this;\n  },\n\n  /**\n   * Draws a wireframe mesh around the zone for debugging purposes.\n   *\n   * @param {System} system - the system instance\n   * @param {object} container - a three Object3D (usually the scene)\n   * @param {Zone} zone - a Zone instance\n   * @return void\n   */\n  drawZone: function (THREE, system, container, zone = {}) {\n    const color = '#2194ce';\n    const wireframe = true;\n    const {\n      width = size,\n      height = size,\n      depth = size,\n      radius = size,\n      x = DEFAULT_POSITION,\n      y = DEFAULT_POSITION,\n      z = DEFAULT_POSITION\n    } = zone;\n    let geometry;\n\n    if (zone.isPointZone()) {\n      geometry = new THREE.SphereGeometry(15);\n    }\n\n    if (zone.isLineZone()) {// TODO\n    }\n\n    if (zone.isBoxZone()) {\n      geometry = new THREE.BoxGeometry(width, height, depth);\n    }\n\n    if (zone.isSphereZone()) {\n      geometry = new THREE.SphereGeometry(radius, size, size);\n    }\n\n    if (zone.isMeshZone()) {\n      geometry = zone.geometry.geometry ? zone.geometry.geometry.clone() : zone.geometry.clone();\n    }\n\n    if (!geometry) {\n      geometry = new THREE.BoxGeometry(width, height, depth);\n    }\n\n    const material = new THREE.MeshBasicMaterial({\n      color,\n      wireframe\n    }); // NOTE! geometry.clone is required for UNKNOWN reasons,\n    // three does not render the mesh correctly without doing this since r88\n\n    const mesh = new THREE.Mesh(geometry.clone(), material);\n    container.add(mesh);\n    this.addEventListener(system, function () {\n      mesh.position.set(x, y, z);\n    });\n  },\n\n  /**\n   * Draws a mesh for each particle emitted in order to help debug particles.\n   *\n   * @param {object} system - the system instance\n   * @param {object} container - a three Object3D (usually the scene)\n   * @param {object} emitter - the emitter to debug\n   * @param {string} color - the color for the debug mesh material\n   * @return void\n   */\n  drawEmitter: function (THREE, system, container, emitter, color) {\n    const geometry = new THREE.OctahedronGeometry(size);\n    const material = new THREE.MeshBasicMaterial({\n      color: color || '#aaa',\n      wireframe: true\n    }); // NOTE! geometry.clone is required for UNKNOWN reasons,\n    // three does not render the mesh correctly without doing this since r88\n\n    const mesh = new THREE.Mesh(geometry.clone(), material);\n    container.add(mesh);\n    this.addEventListener(system, function () {\n      mesh.position.copy(emitter.position);\n      mesh.rotation.set(emitter.rotation.x, emitter.rotation.y, emitter.rotation.z);\n    });\n  },\n\n  /**\n   * Renders emitter / particle information into the info element.\n   *\n   * @param {object} system - the system instance\n   * @param {integer} style - style to apply (see the addInfo method's switch statement)\n   * @return void\n   */\n  renderInfo: function () {\n    function getCreatedNumber(type, system) {\n      var pool = type == 'material' ? '_materialPool' : '_targetPool';\n      var renderer = system.renderers[0];\n      return renderer[pool].cID;\n    }\n\n    function getEmitterPos(system) {\n      var e = system.emitters[0];\n      return Math.round(e.p.x) + ',' + Math.round(e.p.y) + ',' + Math.round(e.p.z);\n    }\n\n    return function (system, style) {\n      this.addInfo(style);\n      var str = '';\n\n      switch (this._infoType) {\n        case 2:\n          str += 'emitter:' + system.emitters.length + '<br>';\n          str += 'em speed:' + system.emitters[0].cID + '<br>';\n          str += 'pos:' + getEmitterPos(system);\n          break;\n\n        case 3:\n          str += system.renderers[0].name + '<br>';\n          str += 'target:' + getCreatedNumber('target') + '<br>';\n          str += 'material:' + getCreatedNumber('material');\n          break;\n\n        default:\n          str += 'particles:' + system.getCount() + '<br>';\n          str += 'pool:' + system.pool.getCount() + '<br>';\n          str += 'total:' + (system.getCount() + system.pool.getCount());\n      }\n\n      this._infoCon.innerHTML = str;\n    };\n  }(),\n\n  /**\n   * Appends the info element into the dom.\n   *\n   * @param {integer} style - the style type to apply\n   * @return void\n   */\n  addInfo: function () {\n    return function (style) {\n      var self = this;\n\n      if (!this._infoCon) {\n        this._infoCon = document.createElement('div');\n        this._infoCon.style.cssText = ['position:fixed;bottom:0px;left:0;cursor:pointer;', 'opacity:0.9;z-index:10000;padding:10px;font-size:12px;', 'width:120px;height:50px;background-color:#002;color:#0ff;'].join('');\n        this._infoType = 1;\n\n        this._infoCon.addEventListener('click', function () {\n          self._infoType++;\n          if (self._infoType > 3) self._infoType = 1;\n        }, false);\n\n        var bg, color;\n\n        switch (style) {\n          case 2:\n            bg = '#201';\n            color = '#f08';\n            break;\n\n          case 3:\n            bg = '#020';\n            color = '#0f0';\n            break;\n\n          default:\n            bg = '#002';\n            color = '#0ff';\n        }\n\n        this._infoCon.style['background-color'] = bg;\n        this._infoCon.style['color'] = color;\n      }\n\n      if (!this._infoCon.parentNode) document.body.appendChild(this._infoCon);\n    };\n  }()\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9EZWJ1Zy5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX1BPU0lUSU9OIiwiREVGQVVMVF9TSVpFIiwic2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJzeXN0ZW0iLCJvblN5c3RlbVVwZGF0ZWQiLCJldmVudERpc3BhdGNoZXIiLCJkcmF3Wm9uZSIsIlRIUkVFIiwiY29udGFpbmVyIiwiem9uZSIsImNvbG9yIiwid2lyZWZyYW1lIiwid2lkdGgiLCJoZWlnaHQiLCJkZXB0aCIsInJhZGl1cyIsIngiLCJ5IiwieiIsImdlb21ldHJ5IiwiaXNQb2ludFpvbmUiLCJTcGhlcmVHZW9tZXRyeSIsImlzTGluZVpvbmUiLCJpc0JveFpvbmUiLCJCb3hHZW9tZXRyeSIsImlzU3BoZXJlWm9uZSIsImlzTWVzaFpvbmUiLCJjbG9uZSIsIm1hdGVyaWFsIiwiTWVzaEJhc2ljTWF0ZXJpYWwiLCJtZXNoIiwiTWVzaCIsImFkZCIsInBvc2l0aW9uIiwic2V0IiwiZHJhd0VtaXR0ZXIiLCJlbWl0dGVyIiwiT2N0YWhlZHJvbkdlb21ldHJ5IiwiY29weSIsInJvdGF0aW9uIiwicmVuZGVySW5mbyIsImdldENyZWF0ZWROdW1iZXIiLCJ0eXBlIiwicG9vbCIsInJlbmRlcmVyIiwicmVuZGVyZXJzIiwiY0lEIiwiZ2V0RW1pdHRlclBvcyIsImUiLCJlbWl0dGVycyIsIk1hdGgiLCJyb3VuZCIsInAiLCJzdHlsZSIsImFkZEluZm8iLCJzdHIiLCJfaW5mb1R5cGUiLCJsZW5ndGgiLCJuYW1lIiwiZ2V0Q291bnQiLCJfaW5mb0NvbiIsImlubmVySFRNTCIsInNlbGYiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjc3NUZXh0Iiwiam9pbiIsImJnIiwicGFyZW50Tm9kZSIsImJvZHkiLCJhcHBlbmRDaGlsZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQVQsRUFBMkJDLFlBQVksSUFBSUMsSUFBM0MsUUFBdUQsYUFBdkQ7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlO0FBQ2I7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUMsRUFBQUEsZ0JBQWdCLEVBQUUsVUFBU0MsTUFBVCxFQUFpQkMsZUFBakIsRUFBa0M7QUFDbERELElBQUFBLE1BQU0sQ0FBQ0UsZUFBUCxDQUF1QkgsZ0JBQXZCLENBQXdDLGVBQXhDLEVBQXlERSxlQUF6RDtBQUVBLFdBQU8sSUFBUDtBQUNELEdBWlk7O0FBY2I7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFRSxFQUFBQSxRQUFRLEVBQUUsVUFBU0MsS0FBVCxFQUFnQkosTUFBaEIsRUFBd0JLLFNBQXhCLEVBQW1DQyxJQUFJLEdBQUcsRUFBMUMsRUFBOEM7QUFDdEQsVUFBTUMsS0FBSyxHQUFHLFNBQWQ7QUFDQSxVQUFNQyxTQUFTLEdBQUcsSUFBbEI7QUFDQSxVQUFNO0FBQ0pDLE1BQUFBLEtBQUssR0FBR1gsSUFESjtBQUVKWSxNQUFBQSxNQUFNLEdBQUdaLElBRkw7QUFHSmEsTUFBQUEsS0FBSyxHQUFHYixJQUhKO0FBSUpjLE1BQUFBLE1BQU0sR0FBR2QsSUFKTDtBQUtKZSxNQUFBQSxDQUFDLEdBQUdqQixnQkFMQTtBQU1Ka0IsTUFBQUEsQ0FBQyxHQUFHbEIsZ0JBTkE7QUFPSm1CLE1BQUFBLENBQUMsR0FBR25CO0FBUEEsUUFRRlUsSUFSSjtBQVVBLFFBQUlVLFFBQUo7O0FBRUEsUUFBSVYsSUFBSSxDQUFDVyxXQUFMLEVBQUosRUFBd0I7QUFDdEJELE1BQUFBLFFBQVEsR0FBRyxJQUFJWixLQUFLLENBQUNjLGNBQVYsQ0FBeUIsRUFBekIsQ0FBWDtBQUNEOztBQUVELFFBQUlaLElBQUksQ0FBQ2EsVUFBTCxFQUFKLEVBQXVCLENBQ3JCO0FBQ0Q7O0FBRUQsUUFBSWIsSUFBSSxDQUFDYyxTQUFMLEVBQUosRUFBc0I7QUFDcEJKLE1BQUFBLFFBQVEsR0FBRyxJQUFJWixLQUFLLENBQUNpQixXQUFWLENBQXNCWixLQUF0QixFQUE2QkMsTUFBN0IsRUFBcUNDLEtBQXJDLENBQVg7QUFDRDs7QUFFRCxRQUFJTCxJQUFJLENBQUNnQixZQUFMLEVBQUosRUFBeUI7QUFDdkJOLE1BQUFBLFFBQVEsR0FBRyxJQUFJWixLQUFLLENBQUNjLGNBQVYsQ0FBeUJOLE1BQXpCLEVBQWlDZCxJQUFqQyxFQUF1Q0EsSUFBdkMsQ0FBWDtBQUNEOztBQUVELFFBQUlRLElBQUksQ0FBQ2lCLFVBQUwsRUFBSixFQUF1QjtBQUNyQlAsTUFBQUEsUUFBUSxHQUFHVixJQUFJLENBQUNVLFFBQUwsQ0FBY0EsUUFBZCxHQUNQVixJQUFJLENBQUNVLFFBQUwsQ0FBY0EsUUFBZCxDQUF1QlEsS0FBdkIsRUFETyxHQUVQbEIsSUFBSSxDQUFDVSxRQUFMLENBQWNRLEtBQWQsRUFGSjtBQUdEOztBQUVELFFBQUksQ0FBQ1IsUUFBTCxFQUFlO0FBQ2JBLE1BQUFBLFFBQVEsR0FBRyxJQUFJWixLQUFLLENBQUNpQixXQUFWLENBQXNCWixLQUF0QixFQUE2QkMsTUFBN0IsRUFBcUNDLEtBQXJDLENBQVg7QUFDRDs7QUFFRCxVQUFNYyxRQUFRLEdBQUcsSUFBSXJCLEtBQUssQ0FBQ3NCLGlCQUFWLENBQTRCO0FBQUVuQixNQUFBQSxLQUFGO0FBQVNDLE1BQUFBO0FBQVQsS0FBNUIsQ0FBakIsQ0F6Q3NELENBMEN0RDtBQUNBOztBQUNBLFVBQU1tQixJQUFJLEdBQUcsSUFBSXZCLEtBQUssQ0FBQ3dCLElBQVYsQ0FBZVosUUFBUSxDQUFDUSxLQUFULEVBQWYsRUFBaUNDLFFBQWpDLENBQWI7QUFFQXBCLElBQUFBLFNBQVMsQ0FBQ3dCLEdBQVYsQ0FBY0YsSUFBZDtBQUVBLFNBQUs1QixnQkFBTCxDQUFzQkMsTUFBdEIsRUFBOEIsWUFBVztBQUN2QzJCLE1BQUFBLElBQUksQ0FBQ0csUUFBTCxDQUFjQyxHQUFkLENBQWtCbEIsQ0FBbEIsRUFBcUJDLENBQXJCLEVBQXdCQyxDQUF4QjtBQUNELEtBRkQ7QUFHRCxHQXpFWTs7QUEyRWI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VpQixFQUFBQSxXQUFXLEVBQUUsVUFBUzVCLEtBQVQsRUFBZ0JKLE1BQWhCLEVBQXdCSyxTQUF4QixFQUFtQzRCLE9BQW5DLEVBQTRDMUIsS0FBNUMsRUFBbUQ7QUFDOUQsVUFBTVMsUUFBUSxHQUFHLElBQUlaLEtBQUssQ0FBQzhCLGtCQUFWLENBQTZCcEMsSUFBN0IsQ0FBakI7QUFDQSxVQUFNMkIsUUFBUSxHQUFHLElBQUlyQixLQUFLLENBQUNzQixpQkFBVixDQUE0QjtBQUMzQ25CLE1BQUFBLEtBQUssRUFBRUEsS0FBSyxJQUFJLE1BRDJCO0FBRTNDQyxNQUFBQSxTQUFTLEVBQUU7QUFGZ0MsS0FBNUIsQ0FBakIsQ0FGOEQsQ0FNOUQ7QUFDQTs7QUFDQSxVQUFNbUIsSUFBSSxHQUFHLElBQUl2QixLQUFLLENBQUN3QixJQUFWLENBQWVaLFFBQVEsQ0FBQ1EsS0FBVCxFQUFmLEVBQWlDQyxRQUFqQyxDQUFiO0FBRUFwQixJQUFBQSxTQUFTLENBQUN3QixHQUFWLENBQWNGLElBQWQ7QUFFQSxTQUFLNUIsZ0JBQUwsQ0FBc0JDLE1BQXRCLEVBQThCLFlBQVc7QUFDdkMyQixNQUFBQSxJQUFJLENBQUNHLFFBQUwsQ0FBY0ssSUFBZCxDQUFtQkYsT0FBTyxDQUFDSCxRQUEzQjtBQUNBSCxNQUFBQSxJQUFJLENBQUNTLFFBQUwsQ0FBY0wsR0FBZCxDQUNFRSxPQUFPLENBQUNHLFFBQVIsQ0FBaUJ2QixDQURuQixFQUVFb0IsT0FBTyxDQUFDRyxRQUFSLENBQWlCdEIsQ0FGbkIsRUFHRW1CLE9BQU8sQ0FBQ0csUUFBUixDQUFpQnJCLENBSG5CO0FBS0QsS0FQRDtBQVFELEdBeEdZOztBQTBHYjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFc0IsRUFBQUEsVUFBVSxFQUFHLFlBQVc7QUFDdEIsYUFBU0MsZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQWdDdkMsTUFBaEMsRUFBd0M7QUFDdEMsVUFBSXdDLElBQUksR0FBR0QsSUFBSSxJQUFJLFVBQVIsR0FBcUIsZUFBckIsR0FBdUMsYUFBbEQ7QUFDQSxVQUFJRSxRQUFRLEdBQUd6QyxNQUFNLENBQUMwQyxTQUFQLENBQWlCLENBQWpCLENBQWY7QUFFQSxhQUFPRCxRQUFRLENBQUNELElBQUQsQ0FBUixDQUFlRyxHQUF0QjtBQUNEOztBQUVELGFBQVNDLGFBQVQsQ0FBdUI1QyxNQUF2QixFQUErQjtBQUM3QixVQUFJNkMsQ0FBQyxHQUFHN0MsTUFBTSxDQUFDOEMsUUFBUCxDQUFnQixDQUFoQixDQUFSO0FBRUEsYUFDRUMsSUFBSSxDQUFDQyxLQUFMLENBQVdILENBQUMsQ0FBQ0ksQ0FBRixDQUFJcEMsQ0FBZixJQUFvQixHQUFwQixHQUEwQmtDLElBQUksQ0FBQ0MsS0FBTCxDQUFXSCxDQUFDLENBQUNJLENBQUYsQ0FBSW5DLENBQWYsQ0FBMUIsR0FBOEMsR0FBOUMsR0FBb0RpQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0gsQ0FBQyxDQUFDSSxDQUFGLENBQUlsQyxDQUFmLENBRHREO0FBR0Q7O0FBRUQsV0FBTyxVQUFTZixNQUFULEVBQWlCa0QsS0FBakIsRUFBd0I7QUFDN0IsV0FBS0MsT0FBTCxDQUFhRCxLQUFiO0FBQ0EsVUFBSUUsR0FBRyxHQUFHLEVBQVY7O0FBRUEsY0FBUSxLQUFLQyxTQUFiO0FBQ0UsYUFBSyxDQUFMO0FBQ0VELFVBQUFBLEdBQUcsSUFBSSxhQUFhcEQsTUFBTSxDQUFDOEMsUUFBUCxDQUFnQlEsTUFBN0IsR0FBc0MsTUFBN0M7QUFDQUYsVUFBQUEsR0FBRyxJQUFJLGNBQWNwRCxNQUFNLENBQUM4QyxRQUFQLENBQWdCLENBQWhCLEVBQW1CSCxHQUFqQyxHQUF1QyxNQUE5QztBQUNBUyxVQUFBQSxHQUFHLElBQUksU0FBU1IsYUFBYSxDQUFDNUMsTUFBRCxDQUE3QjtBQUNBOztBQUVGLGFBQUssQ0FBTDtBQUNFb0QsVUFBQUEsR0FBRyxJQUFJcEQsTUFBTSxDQUFDMEMsU0FBUCxDQUFpQixDQUFqQixFQUFvQmEsSUFBcEIsR0FBMkIsTUFBbEM7QUFDQUgsVUFBQUEsR0FBRyxJQUFJLFlBQVlkLGdCQUFnQixDQUFDLFFBQUQsQ0FBNUIsR0FBeUMsTUFBaEQ7QUFDQWMsVUFBQUEsR0FBRyxJQUFJLGNBQWNkLGdCQUFnQixDQUFDLFVBQUQsQ0FBckM7QUFDQTs7QUFFRjtBQUNFYyxVQUFBQSxHQUFHLElBQUksZUFBZXBELE1BQU0sQ0FBQ3dELFFBQVAsRUFBZixHQUFtQyxNQUExQztBQUNBSixVQUFBQSxHQUFHLElBQUksVUFBVXBELE1BQU0sQ0FBQ3dDLElBQVAsQ0FBWWdCLFFBQVosRUFBVixHQUFtQyxNQUExQztBQUNBSixVQUFBQSxHQUFHLElBQUksWUFBWXBELE1BQU0sQ0FBQ3dELFFBQVAsS0FBb0J4RCxNQUFNLENBQUN3QyxJQUFQLENBQVlnQixRQUFaLEVBQWhDLENBQVA7QUFoQko7O0FBa0JBLFdBQUtDLFFBQUwsQ0FBY0MsU0FBZCxHQUEwQk4sR0FBMUI7QUFDRCxLQXZCRDtBQXdCRCxHQXhDVyxFQWpIQzs7QUEySmI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VELEVBQUFBLE9BQU8sRUFBRyxZQUFXO0FBQ25CLFdBQU8sVUFBU0QsS0FBVCxFQUFnQjtBQUNyQixVQUFJUyxJQUFJLEdBQUcsSUFBWDs7QUFFQSxVQUFJLENBQUMsS0FBS0YsUUFBVixFQUFvQjtBQUNsQixhQUFLQSxRQUFMLEdBQWdCRyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBaEI7QUFDQSxhQUFLSixRQUFMLENBQWNQLEtBQWQsQ0FBb0JZLE9BQXBCLEdBQThCLENBQzVCLGtEQUQ0QixFQUU1Qix3REFGNEIsRUFHNUIsMkRBSDRCLEVBSTVCQyxJQUo0QixDQUl2QixFQUp1QixDQUE5QjtBQU1BLGFBQUtWLFNBQUwsR0FBaUIsQ0FBakI7O0FBQ0EsYUFBS0ksUUFBTCxDQUFjMUQsZ0JBQWQsQ0FDRSxPQURGLEVBRUUsWUFBVztBQUNUNEQsVUFBQUEsSUFBSSxDQUFDTixTQUFMO0FBQ0EsY0FBSU0sSUFBSSxDQUFDTixTQUFMLEdBQWlCLENBQXJCLEVBQXdCTSxJQUFJLENBQUNOLFNBQUwsR0FBaUIsQ0FBakI7QUFDekIsU0FMSCxFQU1FLEtBTkY7O0FBU0EsWUFBSVcsRUFBSixFQUFRekQsS0FBUjs7QUFFQSxnQkFBUTJDLEtBQVI7QUFDRSxlQUFLLENBQUw7QUFDRWMsWUFBQUEsRUFBRSxHQUFHLE1BQUw7QUFDQXpELFlBQUFBLEtBQUssR0FBRyxNQUFSO0FBQ0E7O0FBRUYsZUFBSyxDQUFMO0FBQ0V5RCxZQUFBQSxFQUFFLEdBQUcsTUFBTDtBQUNBekQsWUFBQUEsS0FBSyxHQUFHLE1BQVI7QUFDQTs7QUFFRjtBQUNFeUQsWUFBQUEsRUFBRSxHQUFHLE1BQUw7QUFDQXpELFlBQUFBLEtBQUssR0FBRyxNQUFSO0FBYko7O0FBZ0JBLGFBQUtrRCxRQUFMLENBQWNQLEtBQWQsQ0FBb0Isa0JBQXBCLElBQTBDYyxFQUExQztBQUNBLGFBQUtQLFFBQUwsQ0FBY1AsS0FBZCxDQUFvQixPQUFwQixJQUErQjNDLEtBQS9CO0FBQ0Q7O0FBRUQsVUFBSSxDQUFDLEtBQUtrRCxRQUFMLENBQWNRLFVBQW5CLEVBQStCTCxRQUFRLENBQUNNLElBQVQsQ0FBY0MsV0FBZCxDQUEwQixLQUFLVixRQUEvQjtBQUNoQyxLQTVDRDtBQTZDRCxHQTlDUTtBQWpLSSxDQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9QT1NJVElPTiwgREVGQVVMVF9TSVpFIGFzIHNpemUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQGV4cG9ydHMgRGVidWcgLSBtZXRob2RzIGFuZCBoZWxwZXJzIGZvciBkZWJ1Z2dpbmcgU3lzdGVtIGVtaXR0ZXJzLCB6b25lcyBhbmQgcGFydGljbGVzLlxuICogQHJlcXVpcmVzIFRIUkVFIC0geyBTcGhlcmVHZW9tZXRyeSwgQm94R2VvbWV0cnksIE1lc2hCYXNpY01hdGVyaWFsLCBPY3RhaGVkcm9uR2VvbWV0cnksIE1lc2ggfVxuICovXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8qKlxuICAgKiBBZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBzeXN0ZW0gaW5zdGFuY2UncyBTWVNURU1fVVBEQVRFIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1N5c3RlbX0gc3lzdGVtIC0gdGhlIHN5c3RlbSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvblN5c3RlbVVwZGF0ZWQgLSB0aGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHN5c3RlbSBoYXMgYmVlbiB1cGRhdGVkXG4gICAqIEByZXR1cm4ge0RlYnVnfVxuICAgKi9cbiAgYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oc3lzdGVtLCBvblN5c3RlbVVwZGF0ZWQpIHtcbiAgICBzeXN0ZW0uZXZlbnREaXNwYXRjaGVyLmFkZEV2ZW50TGlzdGVuZXIoJ1NZU1RFTV9VUERBVEUnLCBvblN5c3RlbVVwZGF0ZWQpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERyYXdzIGEgd2lyZWZyYW1lIG1lc2ggYXJvdW5kIHRoZSB6b25lIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7U3lzdGVtfSBzeXN0ZW0gLSB0aGUgc3lzdGVtIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250YWluZXIgLSBhIHRocmVlIE9iamVjdDNEICh1c3VhbGx5IHRoZSBzY2VuZSlcbiAgICogQHBhcmFtIHtab25lfSB6b25lIC0gYSBab25lIGluc3RhbmNlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgZHJhd1pvbmU6IGZ1bmN0aW9uKFRIUkVFLCBzeXN0ZW0sIGNvbnRhaW5lciwgem9uZSA9IHt9KSB7XG4gICAgY29uc3QgY29sb3IgPSAnIzIxOTRjZSc7XG4gICAgY29uc3Qgd2lyZWZyYW1lID0gdHJ1ZTtcbiAgICBjb25zdCB7XG4gICAgICB3aWR0aCA9IHNpemUsXG4gICAgICBoZWlnaHQgPSBzaXplLFxuICAgICAgZGVwdGggPSBzaXplLFxuICAgICAgcmFkaXVzID0gc2l6ZSxcbiAgICAgIHggPSBERUZBVUxUX1BPU0lUSU9OLFxuICAgICAgeSA9IERFRkFVTFRfUE9TSVRJT04sXG4gICAgICB6ID0gREVGQVVMVF9QT1NJVElPTixcbiAgICB9ID0gem9uZTtcblxuICAgIGxldCBnZW9tZXRyeTtcblxuICAgIGlmICh6b25lLmlzUG9pbnRab25lKCkpIHtcbiAgICAgIGdlb21ldHJ5ID0gbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDE1KTtcbiAgICB9XG5cbiAgICBpZiAoem9uZS5pc0xpbmVab25lKCkpIHtcbiAgICAgIC8vIFRPRE9cbiAgICB9XG5cbiAgICBpZiAoem9uZS5pc0JveFpvbmUoKSkge1xuICAgICAgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkod2lkdGgsIGhlaWdodCwgZGVwdGgpO1xuICAgIH1cblxuICAgIGlmICh6b25lLmlzU3BoZXJlWm9uZSgpKSB7XG4gICAgICBnZW9tZXRyeSA9IG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeShyYWRpdXMsIHNpemUsIHNpemUpO1xuICAgIH1cblxuICAgIGlmICh6b25lLmlzTWVzaFpvbmUoKSkge1xuICAgICAgZ2VvbWV0cnkgPSB6b25lLmdlb21ldHJ5Lmdlb21ldHJ5XG4gICAgICAgID8gem9uZS5nZW9tZXRyeS5nZW9tZXRyeS5jbG9uZSgpXG4gICAgICAgIDogem9uZS5nZW9tZXRyeS5jbG9uZSgpO1xuICAgIH1cblxuICAgIGlmICghZ2VvbWV0cnkpIHtcbiAgICAgIGdlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHdpZHRoLCBoZWlnaHQsIGRlcHRoKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yLCB3aXJlZnJhbWUgfSk7XG4gICAgLy8gTk9URSEgZ2VvbWV0cnkuY2xvbmUgaXMgcmVxdWlyZWQgZm9yIFVOS05PV04gcmVhc29ucyxcbiAgICAvLyB0aHJlZSBkb2VzIG5vdCByZW5kZXIgdGhlIG1lc2ggY29ycmVjdGx5IHdpdGhvdXQgZG9pbmcgdGhpcyBzaW5jZSByODhcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnkuY2xvbmUoKSwgbWF0ZXJpYWwpO1xuXG4gICAgY29udGFpbmVyLmFkZChtZXNoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzeXN0ZW0sIGZ1bmN0aW9uKCkge1xuICAgICAgbWVzaC5wb3NpdGlvbi5zZXQoeCwgeSwgeik7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERyYXdzIGEgbWVzaCBmb3IgZWFjaCBwYXJ0aWNsZSBlbWl0dGVkIGluIG9yZGVyIHRvIGhlbHAgZGVidWcgcGFydGljbGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gc3lzdGVtIC0gdGhlIHN5c3RlbSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGFpbmVyIC0gYSB0aHJlZSBPYmplY3QzRCAodXN1YWxseSB0aGUgc2NlbmUpXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBlbWl0dGVyIC0gdGhlIGVtaXR0ZXIgdG8gZGVidWdcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yIC0gdGhlIGNvbG9yIGZvciB0aGUgZGVidWcgbWVzaCBtYXRlcmlhbFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGRyYXdFbWl0dGVyOiBmdW5jdGlvbihUSFJFRSwgc3lzdGVtLCBjb250YWluZXIsIGVtaXR0ZXIsIGNvbG9yKSB7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuT2N0YWhlZHJvbkdlb21ldHJ5KHNpemUpO1xuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcbiAgICAgIGNvbG9yOiBjb2xvciB8fCAnI2FhYScsXG4gICAgICB3aXJlZnJhbWU6IHRydWUsXG4gICAgfSk7XG4gICAgLy8gTk9URSEgZ2VvbWV0cnkuY2xvbmUgaXMgcmVxdWlyZWQgZm9yIFVOS05PV04gcmVhc29ucyxcbiAgICAvLyB0aHJlZSBkb2VzIG5vdCByZW5kZXIgdGhlIG1lc2ggY29ycmVjdGx5IHdpdGhvdXQgZG9pbmcgdGhpcyBzaW5jZSByODhcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnkuY2xvbmUoKSwgbWF0ZXJpYWwpO1xuXG4gICAgY29udGFpbmVyLmFkZChtZXNoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzeXN0ZW0sIGZ1bmN0aW9uKCkge1xuICAgICAgbWVzaC5wb3NpdGlvbi5jb3B5KGVtaXR0ZXIucG9zaXRpb24pO1xuICAgICAgbWVzaC5yb3RhdGlvbi5zZXQoXG4gICAgICAgIGVtaXR0ZXIucm90YXRpb24ueCxcbiAgICAgICAgZW1pdHRlci5yb3RhdGlvbi55LFxuICAgICAgICBlbWl0dGVyLnJvdGF0aW9uLnpcbiAgICAgICk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgZW1pdHRlciAvIHBhcnRpY2xlIGluZm9ybWF0aW9uIGludG8gdGhlIGluZm8gZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHN5c3RlbSAtIHRoZSBzeXN0ZW0gaW5zdGFuY2VcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBzdHlsZSAtIHN0eWxlIHRvIGFwcGx5IChzZWUgdGhlIGFkZEluZm8gbWV0aG9kJ3Mgc3dpdGNoIHN0YXRlbWVudClcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZW5kZXJJbmZvOiAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gZ2V0Q3JlYXRlZE51bWJlcih0eXBlLCBzeXN0ZW0pIHtcbiAgICAgIHZhciBwb29sID0gdHlwZSA9PSAnbWF0ZXJpYWwnID8gJ19tYXRlcmlhbFBvb2wnIDogJ190YXJnZXRQb29sJztcbiAgICAgIHZhciByZW5kZXJlciA9IHN5c3RlbS5yZW5kZXJlcnNbMF07XG5cbiAgICAgIHJldHVybiByZW5kZXJlcltwb29sXS5jSUQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RW1pdHRlclBvcyhzeXN0ZW0pIHtcbiAgICAgIHZhciBlID0gc3lzdGVtLmVtaXR0ZXJzWzBdO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBNYXRoLnJvdW5kKGUucC54KSArICcsJyArIE1hdGgucm91bmQoZS5wLnkpICsgJywnICsgTWF0aC5yb3VuZChlLnAueilcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uKHN5c3RlbSwgc3R5bGUpIHtcbiAgICAgIHRoaXMuYWRkSW5mbyhzdHlsZSk7XG4gICAgICB2YXIgc3RyID0gJyc7XG5cbiAgICAgIHN3aXRjaCAodGhpcy5faW5mb1R5cGUpIHtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHN0ciArPSAnZW1pdHRlcjonICsgc3lzdGVtLmVtaXR0ZXJzLmxlbmd0aCArICc8YnI+JztcbiAgICAgICAgICBzdHIgKz0gJ2VtIHNwZWVkOicgKyBzeXN0ZW0uZW1pdHRlcnNbMF0uY0lEICsgJzxicj4nO1xuICAgICAgICAgIHN0ciArPSAncG9zOicgKyBnZXRFbWl0dGVyUG9zKHN5c3RlbSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHN0ciArPSBzeXN0ZW0ucmVuZGVyZXJzWzBdLm5hbWUgKyAnPGJyPic7XG4gICAgICAgICAgc3RyICs9ICd0YXJnZXQ6JyArIGdldENyZWF0ZWROdW1iZXIoJ3RhcmdldCcpICsgJzxicj4nO1xuICAgICAgICAgIHN0ciArPSAnbWF0ZXJpYWw6JyArIGdldENyZWF0ZWROdW1iZXIoJ21hdGVyaWFsJyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBzdHIgKz0gJ3BhcnRpY2xlczonICsgc3lzdGVtLmdldENvdW50KCkgKyAnPGJyPic7XG4gICAgICAgICAgc3RyICs9ICdwb29sOicgKyBzeXN0ZW0ucG9vbC5nZXRDb3VudCgpICsgJzxicj4nO1xuICAgICAgICAgIHN0ciArPSAndG90YWw6JyArIChzeXN0ZW0uZ2V0Q291bnQoKSArIHN5c3RlbS5wb29sLmdldENvdW50KCkpO1xuICAgICAgfVxuICAgICAgdGhpcy5faW5mb0Nvbi5pbm5lckhUTUwgPSBzdHI7XG4gICAgfTtcbiAgfSkoKSxcblxuICAvKipcbiAgICogQXBwZW5kcyB0aGUgaW5mbyBlbGVtZW50IGludG8gdGhlIGRvbS5cbiAgICpcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBzdHlsZSAtIHRoZSBzdHlsZSB0eXBlIHRvIGFwcGx5XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgYWRkSW5mbzogKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBmdW5jdGlvbihzdHlsZSkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgICBpZiAoIXRoaXMuX2luZm9Db24pIHtcbiAgICAgICAgdGhpcy5faW5mb0NvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLl9pbmZvQ29uLnN0eWxlLmNzc1RleHQgPSBbXG4gICAgICAgICAgJ3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowcHg7bGVmdDowO2N1cnNvcjpwb2ludGVyOycsXG4gICAgICAgICAgJ29wYWNpdHk6MC45O3otaW5kZXg6MTAwMDA7cGFkZGluZzoxMHB4O2ZvbnQtc2l6ZToxMnB4OycsXG4gICAgICAgICAgJ3dpZHRoOjEyMHB4O2hlaWdodDo1MHB4O2JhY2tncm91bmQtY29sb3I6IzAwMjtjb2xvcjojMGZmOycsXG4gICAgICAgIF0uam9pbignJyk7XG5cbiAgICAgICAgdGhpcy5faW5mb1R5cGUgPSAxO1xuICAgICAgICB0aGlzLl9pbmZvQ29uLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHNlbGYuX2luZm9UeXBlKys7XG4gICAgICAgICAgICBpZiAoc2VsZi5faW5mb1R5cGUgPiAzKSBzZWxmLl9pbmZvVHlwZSA9IDE7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuXG4gICAgICAgIHZhciBiZywgY29sb3I7XG5cbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGJnID0gJyMyMDEnO1xuICAgICAgICAgICAgY29sb3IgPSAnI2YwOCc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGJnID0gJyMwMjAnO1xuICAgICAgICAgICAgY29sb3IgPSAnIzBmMCc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBiZyA9ICcjMDAyJztcbiAgICAgICAgICAgIGNvbG9yID0gJyMwZmYnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5mb0Nvbi5zdHlsZVsnYmFja2dyb3VuZC1jb2xvciddID0gYmc7XG4gICAgICAgIHRoaXMuX2luZm9Db24uc3R5bGVbJ2NvbG9yJ10gPSBjb2xvcjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLl9pbmZvQ29uLnBhcmVudE5vZGUpIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5faW5mb0Nvbik7XG4gICAgfTtcbiAgfSkoKSxcbn07XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/debug/constants.js",
    "content": "export const DEFAULT_WIDTH = 10;\nexport const DEFAULT_HEIGHT = 10;\nexport const DEFAULT_DEPTH = 10;\nexport const DEFAULT_RADIUS = 15;\nexport const DEFAULT_SIZE = 15;\nexport const DEFAULT_POSITION = 0;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiREVGQVVMVF9XSURUSCIsIkRFRkFVTFRfSEVJR0hUIiwiREVGQVVMVF9ERVBUSCIsIkRFRkFVTFRfUkFESVVTIiwiREVGQVVMVF9TSVpFIiwiREVGQVVMVF9QT1NJVElPTiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxhQUFhLEdBQUcsRUFBdEI7QUFDUCxPQUFPLE1BQU1DLGNBQWMsR0FBRyxFQUF2QjtBQUNQLE9BQU8sTUFBTUMsYUFBYSxHQUFHLEVBQXRCO0FBQ1AsT0FBTyxNQUFNQyxjQUFjLEdBQUcsRUFBdkI7QUFDUCxPQUFPLE1BQU1DLFlBQVksR0FBRyxFQUFyQjtBQUNQLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVGQVVMVF9XSURUSCA9IDEwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVJR0hUID0gMTA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9ERVBUSCA9IDEwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkFESVVTID0gMTU7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TSVpFID0gMTU7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QT1NJVElPTiA9IDA7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/debug/index.js",
    "content": "export { default as Debug } from './Debug';\nexport { default as log } from './log';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiRGVidWciLCJsb2ciXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsS0FBcEIsUUFBaUMsU0FBakM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLEdBQXBCLFFBQStCLE9BQS9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBEZWJ1ZyB9IGZyb20gJy4vRGVidWcnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsb2cgfSBmcm9tICcuL2xvZyc7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/debug/log.js",
    "content": "/**\n * You can use this emit particles.\n *\n * This method will console.log the fixed number of your info  in updata or requestAnimationFrame\n *\n * use like this log('+12',mc); log 12 times\n *\n * @return void\n */\nexport default function () {\n  let once = 0;\n\n  if (window.console && window.console.trace) {\n    var arg = Array.prototype.slice.call(arguments);\n    var s1 = arguments[0] + '';\n\n    if (s1.indexOf('+') == 0) {\n      var n = parseInt(arguments[0]);\n\n      if (once < n) {\n        arg.shift();\n        console.trace.apply(console, arg);\n        once++;\n      }\n    } else {\n      arg.unshift('+15');\n      this.apply(console, arg);\n    }\n  }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9sb2cuanMiXSwibmFtZXMiOlsib25jZSIsIndpbmRvdyIsImNvbnNvbGUiLCJ0cmFjZSIsImFyZyIsIkFycmF5IiwicHJvdG90eXBlIiwic2xpY2UiLCJjYWxsIiwiYXJndW1lbnRzIiwiczEiLCJpbmRleE9mIiwibiIsInBhcnNlSW50Iiwic2hpZnQiLCJhcHBseSIsInVuc2hpZnQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsWUFBVztBQUN4QixNQUFJQSxJQUFJLEdBQUcsQ0FBWDs7QUFFQSxNQUFJQyxNQUFNLENBQUNDLE9BQVAsSUFBa0JELE1BQU0sQ0FBQ0MsT0FBUCxDQUFlQyxLQUFyQyxFQUE0QztBQUMxQyxRQUFJQyxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsU0FBTixDQUFnQkMsS0FBaEIsQ0FBc0JDLElBQXRCLENBQTJCQyxTQUEzQixDQUFWO0FBQ0EsUUFBSUMsRUFBRSxHQUFHRCxTQUFTLENBQUMsQ0FBRCxDQUFULEdBQWUsRUFBeEI7O0FBRUEsUUFBSUMsRUFBRSxDQUFDQyxPQUFILENBQVcsR0FBWCxLQUFtQixDQUF2QixFQUEwQjtBQUN4QixVQUFJQyxDQUFDLEdBQUdDLFFBQVEsQ0FBQ0osU0FBUyxDQUFDLENBQUQsQ0FBVixDQUFoQjs7QUFFQSxVQUFJVCxJQUFJLEdBQUdZLENBQVgsRUFBYztBQUNaUixRQUFBQSxHQUFHLENBQUNVLEtBQUo7QUFDQVosUUFBQUEsT0FBTyxDQUFDQyxLQUFSLENBQWNZLEtBQWQsQ0FBb0JiLE9BQXBCLEVBQTZCRSxHQUE3QjtBQUNBSixRQUFBQSxJQUFJO0FBQ0w7QUFDRixLQVJELE1BUU87QUFDTEksTUFBQUEsR0FBRyxDQUFDWSxPQUFKLENBQVksS0FBWjtBQUNBLFdBQUtELEtBQUwsQ0FBV2IsT0FBWCxFQUFvQkUsR0FBcEI7QUFDRDtBQUNGO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFlvdSBjYW4gdXNlIHRoaXMgZW1pdCBwYXJ0aWNsZXMuXG4gKlxuICogVGhpcyBtZXRob2Qgd2lsbCBjb25zb2xlLmxvZyB0aGUgZml4ZWQgbnVtYmVyIG9mIHlvdXIgaW5mbyAgaW4gdXBkYXRhIG9yIHJlcXVlc3RBbmltYXRpb25GcmFtZVxuICpcbiAqIHVzZSBsaWtlIHRoaXMgbG9nKCcrMTInLG1jKTsgbG9nIDEyIHRpbWVzXG4gKlxuICogQHJldHVybiB2b2lkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICBsZXQgb25jZSA9IDA7XG5cbiAgaWYgKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLnRyYWNlKSB7XG4gICAgdmFyIGFyZyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgdmFyIHMxID0gYXJndW1lbnRzWzBdICsgJyc7XG5cbiAgICBpZiAoczEuaW5kZXhPZignKycpID09IDApIHtcbiAgICAgIHZhciBuID0gcGFyc2VJbnQoYXJndW1lbnRzWzBdKTtcblxuICAgICAgaWYgKG9uY2UgPCBuKSB7XG4gICAgICAgIGFyZy5zaGlmdCgpO1xuICAgICAgICBjb25zb2xlLnRyYWNlLmFwcGx5KGNvbnNvbGUsIGFyZyk7XG4gICAgICAgIG9uY2UrKztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYXJnLnVuc2hpZnQoJysxNScpO1xuICAgICAgdGhpcy5hcHBseShjb25zb2xlLCBhcmcpO1xuICAgIH1cbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/ease/index.js",
    "content": "import { PI } from '../constants';\n/**\n * The Ease class provides a collection of easing functions for use with System\n */\n\nexport const ease = {\n  easeLinear: function (value) {\n    return value;\n  },\n  easeInQuad: function (value) {\n    return Math.pow(value, 2);\n  },\n  easeOutQuad: function (value) {\n    return -(Math.pow(value - 1, 2) - 1);\n  },\n  easeInOutQuad: function (value) {\n    if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 2);\n    return -0.5 * ((value -= 2) * value - 2);\n  },\n  easeInCubic: function (value) {\n    return Math.pow(value, 3);\n  },\n  easeOutCubic: function (value) {\n    return Math.pow(value - 1, 3) + 1;\n  },\n  easeInOutCubic: function (value) {\n    if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 3);\n    return 0.5 * (Math.pow(value - 2, 3) + 2);\n  },\n  easeInQuart: function (value) {\n    return Math.pow(value, 4);\n  },\n  easeOutQuart: function (value) {\n    return -(Math.pow(value - 1, 4) - 1);\n  },\n  easeInOutQuart: function (value) {\n    if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 4);\n    return -0.5 * ((value -= 2) * Math.pow(value, 3) - 2);\n  },\n  easeInSine: function (value) {\n    return -Math.cos(value * (PI / 2)) + 1;\n  },\n  easeOutSine: function (value) {\n    return Math.sin(value * (PI / 2));\n  },\n  easeInOutSine: function (value) {\n    return -0.5 * (Math.cos(PI * value) - 1);\n  },\n  easeInExpo: function (value) {\n    return value === 0 ? 0 : Math.pow(2, 10 * (value - 1));\n  },\n  easeOutExpo: function (value) {\n    return value === 1 ? 1 : -Math.pow(2, -10 * value) + 1;\n  },\n  easeInOutExpo: function (value) {\n    if (value === 0) return 0;\n    if (value === 1) return 1;\n    if ((value /= 0.5) < 1) return 0.5 * Math.pow(2, 10 * (value - 1));\n    return 0.5 * (-Math.pow(2, -10 * --value) + 2);\n  },\n  easeInCirc: function (value) {\n    return -(Math.sqrt(1 - value * value) - 1);\n  },\n  easeOutCirc: function (value) {\n    return Math.sqrt(1 - Math.pow(value - 1, 2));\n  },\n  easeInOutCirc: function (value) {\n    if ((value /= 0.5) < 1) return -0.5 * (Math.sqrt(1 - value * value) - 1);\n    return 0.5 * (Math.sqrt(1 - (value -= 2) * value) + 1);\n  },\n  easeInBack: function (value) {\n    var s = 1.70158;\n    return value * value * ((s + 1) * value - s);\n  },\n  easeOutBack: function (value) {\n    var s = 1.70158;\n    return (value = value - 1) * value * ((s + 1) * value + s) + 1;\n  },\n  easeInOutBack: function (value) {\n    var s = 1.70158;\n    if ((value /= 0.5) < 1) return 0.5 * (value * value * (((s *= 1.525) + 1) * value - s));\n    return 0.5 * ((value -= 2) * value * (((s *= 1.525) + 1) * value + s) + 2);\n  }\n};\nexport const {\n  easeLinear,\n  easeInQuad,\n  easeOutQuad,\n  easeInOutQuad,\n  easeInCubic,\n  easeOutCubic,\n  easeInOutCubic,\n  easeInQuart,\n  easeOutQuart,\n  easeInOutQuart,\n  easeInSine,\n  easeOutSine,\n  easeInOutSine,\n  easeInExpo,\n  easeOutExpo,\n  easeInOutExpo,\n  easeInCirc,\n  easeOutCirc,\n  easeInOutCirc,\n  easeInBack,\n  easeOutBack,\n  easeInOutBack\n} = ease;\nexport const setEasingByName = easeName => {\n  if (ease[easeName]) return ease[easeName];else return ease.easeLinear;\n};\nexport const getEasingByName = name => ease[name] ? ease[name] : ease.easeLinear;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lYXNlL2luZGV4LmpzIl0sIm5hbWVzIjpbIlBJIiwiZWFzZSIsImVhc2VMaW5lYXIiLCJ2YWx1ZSIsImVhc2VJblF1YWQiLCJNYXRoIiwicG93IiwiZWFzZU91dFF1YWQiLCJlYXNlSW5PdXRRdWFkIiwiZWFzZUluQ3ViaWMiLCJlYXNlT3V0Q3ViaWMiLCJlYXNlSW5PdXRDdWJpYyIsImVhc2VJblF1YXJ0IiwiZWFzZU91dFF1YXJ0IiwiZWFzZUluT3V0UXVhcnQiLCJlYXNlSW5TaW5lIiwiY29zIiwiZWFzZU91dFNpbmUiLCJzaW4iLCJlYXNlSW5PdXRTaW5lIiwiZWFzZUluRXhwbyIsImVhc2VPdXRFeHBvIiwiZWFzZUluT3V0RXhwbyIsImVhc2VJbkNpcmMiLCJzcXJ0IiwiZWFzZU91dENpcmMiLCJlYXNlSW5PdXRDaXJjIiwiZWFzZUluQmFjayIsInMiLCJlYXNlT3V0QmFjayIsImVhc2VJbk91dEJhY2siLCJzZXRFYXNpbmdCeU5hbWUiLCJlYXNlTmFtZSIsImdldEVhc2luZ0J5TmFtZSIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQVQsUUFBbUIsY0FBbkI7QUFFQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxJQUFJLEdBQUc7QUFDbEJDLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxLQUFULEVBQWdCO0FBQzFCLFdBQU9BLEtBQVA7QUFDRCxHQUhpQjtBQUtsQkMsRUFBQUEsVUFBVSxFQUFFLFVBQVNELEtBQVQsRUFBZ0I7QUFDMUIsV0FBT0UsSUFBSSxDQUFDQyxHQUFMLENBQVNILEtBQVQsRUFBZ0IsQ0FBaEIsQ0FBUDtBQUNELEdBUGlCO0FBU2xCSSxFQUFBQSxXQUFXLEVBQUUsVUFBU0osS0FBVCxFQUFnQjtBQUMzQixXQUFPLEVBQUVFLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFLLEdBQUcsQ0FBakIsRUFBb0IsQ0FBcEIsSUFBeUIsQ0FBM0IsQ0FBUDtBQUNELEdBWGlCO0FBYWxCSyxFQUFBQSxhQUFhLEVBQUUsVUFBU0wsS0FBVCxFQUFnQjtBQUM3QixRQUFJLENBQUNBLEtBQUssSUFBSSxHQUFWLElBQWlCLENBQXJCLEVBQXdCLE9BQU8sTUFBTUUsSUFBSSxDQUFDQyxHQUFMLENBQVNILEtBQVQsRUFBZ0IsQ0FBaEIsQ0FBYjtBQUV4QixXQUFPLENBQUMsR0FBRCxJQUFRLENBQUNBLEtBQUssSUFBSSxDQUFWLElBQWVBLEtBQWYsR0FBdUIsQ0FBL0IsQ0FBUDtBQUNELEdBakJpQjtBQW1CbEJNLEVBQUFBLFdBQVcsRUFBRSxVQUFTTixLQUFULEVBQWdCO0FBQzNCLFdBQU9FLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFULEVBQWdCLENBQWhCLENBQVA7QUFDRCxHQXJCaUI7QUF1QmxCTyxFQUFBQSxZQUFZLEVBQUUsVUFBU1AsS0FBVCxFQUFnQjtBQUM1QixXQUFPRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBSyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLElBQXlCLENBQWhDO0FBQ0QsR0F6QmlCO0FBMkJsQlEsRUFBQUEsY0FBYyxFQUFFLFVBQVNSLEtBQVQsRUFBZ0I7QUFDOUIsUUFBSSxDQUFDQSxLQUFLLElBQUksR0FBVixJQUFpQixDQUFyQixFQUF3QixPQUFPLE1BQU1FLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFULEVBQWdCLENBQWhCLENBQWI7QUFFeEIsV0FBTyxPQUFPRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBSyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLElBQXlCLENBQWhDLENBQVA7QUFDRCxHQS9CaUI7QUFpQ2xCUyxFQUFBQSxXQUFXLEVBQUUsVUFBU1QsS0FBVCxFQUFnQjtBQUMzQixXQUFPRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBVCxFQUFnQixDQUFoQixDQUFQO0FBQ0QsR0FuQ2lCO0FBcUNsQlUsRUFBQUEsWUFBWSxFQUFFLFVBQVNWLEtBQVQsRUFBZ0I7QUFDNUIsV0FBTyxFQUFFRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBSyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLElBQXlCLENBQTNCLENBQVA7QUFDRCxHQXZDaUI7QUF5Q2xCVyxFQUFBQSxjQUFjLEVBQUUsVUFBU1gsS0FBVCxFQUFnQjtBQUM5QixRQUFJLENBQUNBLEtBQUssSUFBSSxHQUFWLElBQWlCLENBQXJCLEVBQXdCLE9BQU8sTUFBTUUsSUFBSSxDQUFDQyxHQUFMLENBQVNILEtBQVQsRUFBZ0IsQ0FBaEIsQ0FBYjtBQUV4QixXQUFPLENBQUMsR0FBRCxJQUFRLENBQUNBLEtBQUssSUFBSSxDQUFWLElBQWVFLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFULEVBQWdCLENBQWhCLENBQWYsR0FBb0MsQ0FBNUMsQ0FBUDtBQUNELEdBN0NpQjtBQStDbEJZLEVBQUFBLFVBQVUsRUFBRSxVQUFTWixLQUFULEVBQWdCO0FBQzFCLFdBQU8sQ0FBQ0UsSUFBSSxDQUFDVyxHQUFMLENBQVNiLEtBQUssSUFBSUgsRUFBRSxHQUFHLENBQVQsQ0FBZCxDQUFELEdBQThCLENBQXJDO0FBQ0QsR0FqRGlCO0FBbURsQmlCLEVBQUFBLFdBQVcsRUFBRSxVQUFTZCxLQUFULEVBQWdCO0FBQzNCLFdBQU9FLElBQUksQ0FBQ2EsR0FBTCxDQUFTZixLQUFLLElBQUlILEVBQUUsR0FBRyxDQUFULENBQWQsQ0FBUDtBQUNELEdBckRpQjtBQXVEbEJtQixFQUFBQSxhQUFhLEVBQUUsVUFBU2hCLEtBQVQsRUFBZ0I7QUFDN0IsV0FBTyxDQUFDLEdBQUQsSUFBUUUsSUFBSSxDQUFDVyxHQUFMLENBQVNoQixFQUFFLEdBQUdHLEtBQWQsSUFBdUIsQ0FBL0IsQ0FBUDtBQUNELEdBekRpQjtBQTJEbEJpQixFQUFBQSxVQUFVLEVBQUUsVUFBU2pCLEtBQVQsRUFBZ0I7QUFDMUIsV0FBT0EsS0FBSyxLQUFLLENBQVYsR0FBYyxDQUFkLEdBQWtCRSxJQUFJLENBQUNDLEdBQUwsQ0FBUyxDQUFULEVBQVksTUFBTUgsS0FBSyxHQUFHLENBQWQsQ0FBWixDQUF6QjtBQUNELEdBN0RpQjtBQStEbEJrQixFQUFBQSxXQUFXLEVBQUUsVUFBU2xCLEtBQVQsRUFBZ0I7QUFDM0IsV0FBT0EsS0FBSyxLQUFLLENBQVYsR0FBYyxDQUFkLEdBQWtCLENBQUNFLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWSxDQUFDLEVBQUQsR0FBTUgsS0FBbEIsQ0FBRCxHQUE0QixDQUFyRDtBQUNELEdBakVpQjtBQW1FbEJtQixFQUFBQSxhQUFhLEVBQUUsVUFBU25CLEtBQVQsRUFBZ0I7QUFDN0IsUUFBSUEsS0FBSyxLQUFLLENBQWQsRUFBaUIsT0FBTyxDQUFQO0FBQ2pCLFFBQUlBLEtBQUssS0FBSyxDQUFkLEVBQWlCLE9BQU8sQ0FBUDtBQUNqQixRQUFJLENBQUNBLEtBQUssSUFBSSxHQUFWLElBQWlCLENBQXJCLEVBQXdCLE9BQU8sTUFBTUUsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZLE1BQU1ILEtBQUssR0FBRyxDQUFkLENBQVosQ0FBYjtBQUV4QixXQUFPLE9BQU8sQ0FBQ0UsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZLENBQUMsRUFBRCxHQUFNLEVBQUVILEtBQXBCLENBQUQsR0FBOEIsQ0FBckMsQ0FBUDtBQUNELEdBekVpQjtBQTJFbEJvQixFQUFBQSxVQUFVLEVBQUUsVUFBU3BCLEtBQVQsRUFBZ0I7QUFDMUIsV0FBTyxFQUFFRSxJQUFJLENBQUNtQixJQUFMLENBQVUsSUFBSXJCLEtBQUssR0FBR0EsS0FBdEIsSUFBK0IsQ0FBakMsQ0FBUDtBQUNELEdBN0VpQjtBQStFbEJzQixFQUFBQSxXQUFXLEVBQUUsVUFBU3RCLEtBQVQsRUFBZ0I7QUFDM0IsV0FBT0UsSUFBSSxDQUFDbUIsSUFBTCxDQUFVLElBQUluQixJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBSyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLENBQWQsQ0FBUDtBQUNELEdBakZpQjtBQW1GbEJ1QixFQUFBQSxhQUFhLEVBQUUsVUFBU3ZCLEtBQVQsRUFBZ0I7QUFDN0IsUUFBSSxDQUFDQSxLQUFLLElBQUksR0FBVixJQUFpQixDQUFyQixFQUF3QixPQUFPLENBQUMsR0FBRCxJQUFRRSxJQUFJLENBQUNtQixJQUFMLENBQVUsSUFBSXJCLEtBQUssR0FBR0EsS0FBdEIsSUFBK0IsQ0FBdkMsQ0FBUDtBQUV4QixXQUFPLE9BQU9FLElBQUksQ0FBQ21CLElBQUwsQ0FBVSxJQUFJLENBQUNyQixLQUFLLElBQUksQ0FBVixJQUFlQSxLQUE3QixJQUFzQyxDQUE3QyxDQUFQO0FBQ0QsR0F2RmlCO0FBeUZsQndCLEVBQUFBLFVBQVUsRUFBRSxVQUFTeEIsS0FBVCxFQUFnQjtBQUMxQixRQUFJeUIsQ0FBQyxHQUFHLE9BQVI7QUFFQSxXQUFPekIsS0FBSyxHQUFHQSxLQUFSLElBQWlCLENBQUN5QixDQUFDLEdBQUcsQ0FBTCxJQUFVekIsS0FBVixHQUFrQnlCLENBQW5DLENBQVA7QUFDRCxHQTdGaUI7QUErRmxCQyxFQUFBQSxXQUFXLEVBQUUsVUFBUzFCLEtBQVQsRUFBZ0I7QUFDM0IsUUFBSXlCLENBQUMsR0FBRyxPQUFSO0FBRUEsV0FBTyxDQUFDekIsS0FBSyxHQUFHQSxLQUFLLEdBQUcsQ0FBakIsSUFBc0JBLEtBQXRCLElBQStCLENBQUN5QixDQUFDLEdBQUcsQ0FBTCxJQUFVekIsS0FBVixHQUFrQnlCLENBQWpELElBQXNELENBQTdEO0FBQ0QsR0FuR2lCO0FBcUdsQkUsRUFBQUEsYUFBYSxFQUFFLFVBQVMzQixLQUFULEVBQWdCO0FBQzdCLFFBQUl5QixDQUFDLEdBQUcsT0FBUjtBQUVBLFFBQUksQ0FBQ3pCLEtBQUssSUFBSSxHQUFWLElBQWlCLENBQXJCLEVBQ0UsT0FBTyxPQUFPQSxLQUFLLEdBQUdBLEtBQVIsSUFBaUIsQ0FBQyxDQUFDeUIsQ0FBQyxJQUFJLEtBQU4sSUFBZSxDQUFoQixJQUFxQnpCLEtBQXJCLEdBQTZCeUIsQ0FBOUMsQ0FBUCxDQUFQO0FBRUYsV0FBTyxPQUFPLENBQUN6QixLQUFLLElBQUksQ0FBVixJQUFlQSxLQUFmLElBQXdCLENBQUMsQ0FBQ3lCLENBQUMsSUFBSSxLQUFOLElBQWUsQ0FBaEIsSUFBcUJ6QixLQUFyQixHQUE2QnlCLENBQXJELElBQTBELENBQWpFLENBQVA7QUFDRDtBQTVHaUIsQ0FBYjtBQStHUCxPQUFPLE1BQU07QUFDWDFCLEVBQUFBLFVBRFc7QUFFWEUsRUFBQUEsVUFGVztBQUdYRyxFQUFBQSxXQUhXO0FBSVhDLEVBQUFBLGFBSlc7QUFLWEMsRUFBQUEsV0FMVztBQU1YQyxFQUFBQSxZQU5XO0FBT1hDLEVBQUFBLGNBUFc7QUFRWEMsRUFBQUEsV0FSVztBQVNYQyxFQUFBQSxZQVRXO0FBVVhDLEVBQUFBLGNBVlc7QUFXWEMsRUFBQUEsVUFYVztBQVlYRSxFQUFBQSxXQVpXO0FBYVhFLEVBQUFBLGFBYlc7QUFjWEMsRUFBQUEsVUFkVztBQWVYQyxFQUFBQSxXQWZXO0FBZ0JYQyxFQUFBQSxhQWhCVztBQWlCWEMsRUFBQUEsVUFqQlc7QUFrQlhFLEVBQUFBLFdBbEJXO0FBbUJYQyxFQUFBQSxhQW5CVztBQW9CWEMsRUFBQUEsVUFwQlc7QUFxQlhFLEVBQUFBLFdBckJXO0FBc0JYQyxFQUFBQTtBQXRCVyxJQXVCVDdCLElBdkJHO0FBeUJQLE9BQU8sTUFBTThCLGVBQWUsR0FBR0MsUUFBUSxJQUFJO0FBQ3pDLE1BQUkvQixJQUFJLENBQUMrQixRQUFELENBQVIsRUFBb0IsT0FBTy9CLElBQUksQ0FBQytCLFFBQUQsQ0FBWCxDQUFwQixLQUNLLE9BQU8vQixJQUFJLENBQUNDLFVBQVo7QUFDTixDQUhNO0FBS1AsT0FBTyxNQUFNK0IsZUFBZSxHQUFHQyxJQUFJLElBQ2pDakMsSUFBSSxDQUFDaUMsSUFBRCxDQUFKLEdBQWFqQyxJQUFJLENBQUNpQyxJQUFELENBQWpCLEdBQTBCakMsSUFBSSxDQUFDQyxVQUQxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBJIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBUaGUgRWFzZSBjbGFzcyBwcm92aWRlcyBhIGNvbGxlY3Rpb24gb2YgZWFzaW5nIGZ1bmN0aW9ucyBmb3IgdXNlIHdpdGggU3lzdGVtXG4gKi9cbmV4cG9ydCBjb25zdCBlYXNlID0ge1xuICBlYXNlTGluZWFyOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcblxuICBlYXNlSW5RdWFkOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBNYXRoLnBvdyh2YWx1ZSwgMik7XG4gIH0sXG5cbiAgZWFzZU91dFF1YWQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIC0oTWF0aC5wb3codmFsdWUgLSAxLCAyKSAtIDEpO1xuICB9LFxuXG4gIGVhc2VJbk91dFF1YWQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSkgcmV0dXJuIDAuNSAqIE1hdGgucG93KHZhbHVlLCAyKTtcblxuICAgIHJldHVybiAtMC41ICogKCh2YWx1ZSAtPSAyKSAqIHZhbHVlIC0gMik7XG4gIH0sXG5cbiAgZWFzZUluQ3ViaWM6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIE1hdGgucG93KHZhbHVlLCAzKTtcbiAgfSxcblxuICBlYXNlT3V0Q3ViaWM6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIE1hdGgucG93KHZhbHVlIC0gMSwgMykgKyAxO1xuICB9LFxuXG4gIGVhc2VJbk91dEN1YmljOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICgodmFsdWUgLz0gMC41KSA8IDEpIHJldHVybiAwLjUgKiBNYXRoLnBvdyh2YWx1ZSwgMyk7XG5cbiAgICByZXR1cm4gMC41ICogKE1hdGgucG93KHZhbHVlIC0gMiwgMykgKyAyKTtcbiAgfSxcblxuICBlYXNlSW5RdWFydDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5wb3codmFsdWUsIDQpO1xuICB9LFxuXG4gIGVhc2VPdXRRdWFydDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gLShNYXRoLnBvdyh2YWx1ZSAtIDEsIDQpIC0gMSk7XG4gIH0sXG5cbiAgZWFzZUluT3V0UXVhcnQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSkgcmV0dXJuIDAuNSAqIE1hdGgucG93KHZhbHVlLCA0KTtcblxuICAgIHJldHVybiAtMC41ICogKCh2YWx1ZSAtPSAyKSAqIE1hdGgucG93KHZhbHVlLCAzKSAtIDIpO1xuICB9LFxuXG4gIGVhc2VJblNpbmU6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIC1NYXRoLmNvcyh2YWx1ZSAqIChQSSAvIDIpKSArIDE7XG4gIH0sXG5cbiAgZWFzZU91dFNpbmU6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIE1hdGguc2luKHZhbHVlICogKFBJIC8gMikpO1xuICB9LFxuXG4gIGVhc2VJbk91dFNpbmU6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIC0wLjUgKiAoTWF0aC5jb3MoUEkgKiB2YWx1ZSkgLSAxKTtcbiAgfSxcblxuICBlYXNlSW5FeHBvOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IDAgOiBNYXRoLnBvdygyLCAxMCAqICh2YWx1ZSAtIDEpKTtcbiAgfSxcblxuICBlYXNlT3V0RXhwbzogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IDEgPyAxIDogLU1hdGgucG93KDIsIC0xMCAqIHZhbHVlKSArIDE7XG4gIH0sXG5cbiAgZWFzZUluT3V0RXhwbzogZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IDApIHJldHVybiAwO1xuICAgIGlmICh2YWx1ZSA9PT0gMSkgcmV0dXJuIDE7XG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSkgcmV0dXJuIDAuNSAqIE1hdGgucG93KDIsIDEwICogKHZhbHVlIC0gMSkpO1xuXG4gICAgcmV0dXJuIDAuNSAqICgtTWF0aC5wb3coMiwgLTEwICogLS12YWx1ZSkgKyAyKTtcbiAgfSxcblxuICBlYXNlSW5DaXJjOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiAtKE1hdGguc3FydCgxIC0gdmFsdWUgKiB2YWx1ZSkgLSAxKTtcbiAgfSxcblxuICBlYXNlT3V0Q2lyYzogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KDEgLSBNYXRoLnBvdyh2YWx1ZSAtIDEsIDIpKTtcbiAgfSxcblxuICBlYXNlSW5PdXRDaXJjOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICgodmFsdWUgLz0gMC41KSA8IDEpIHJldHVybiAtMC41ICogKE1hdGguc3FydCgxIC0gdmFsdWUgKiB2YWx1ZSkgLSAxKTtcblxuICAgIHJldHVybiAwLjUgKiAoTWF0aC5zcXJ0KDEgLSAodmFsdWUgLT0gMikgKiB2YWx1ZSkgKyAxKTtcbiAgfSxcblxuICBlYXNlSW5CYWNrOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciBzID0gMS43MDE1ODtcblxuICAgIHJldHVybiB2YWx1ZSAqIHZhbHVlICogKChzICsgMSkgKiB2YWx1ZSAtIHMpO1xuICB9LFxuXG4gIGVhc2VPdXRCYWNrOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciBzID0gMS43MDE1ODtcblxuICAgIHJldHVybiAodmFsdWUgPSB2YWx1ZSAtIDEpICogdmFsdWUgKiAoKHMgKyAxKSAqIHZhbHVlICsgcykgKyAxO1xuICB9LFxuXG4gIGVhc2VJbk91dEJhY2s6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFyIHMgPSAxLjcwMTU4O1xuXG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSlcbiAgICAgIHJldHVybiAwLjUgKiAodmFsdWUgKiB2YWx1ZSAqICgoKHMgKj0gMS41MjUpICsgMSkgKiB2YWx1ZSAtIHMpKTtcblxuICAgIHJldHVybiAwLjUgKiAoKHZhbHVlIC09IDIpICogdmFsdWUgKiAoKChzICo9IDEuNTI1KSArIDEpICogdmFsdWUgKyBzKSArIDIpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qge1xuICBlYXNlTGluZWFyLFxuICBlYXNlSW5RdWFkLFxuICBlYXNlT3V0UXVhZCxcbiAgZWFzZUluT3V0UXVhZCxcbiAgZWFzZUluQ3ViaWMsXG4gIGVhc2VPdXRDdWJpYyxcbiAgZWFzZUluT3V0Q3ViaWMsXG4gIGVhc2VJblF1YXJ0LFxuICBlYXNlT3V0UXVhcnQsXG4gIGVhc2VJbk91dFF1YXJ0LFxuICBlYXNlSW5TaW5lLFxuICBlYXNlT3V0U2luZSxcbiAgZWFzZUluT3V0U2luZSxcbiAgZWFzZUluRXhwbyxcbiAgZWFzZU91dEV4cG8sXG4gIGVhc2VJbk91dEV4cG8sXG4gIGVhc2VJbkNpcmMsXG4gIGVhc2VPdXRDaXJjLFxuICBlYXNlSW5PdXRDaXJjLFxuICBlYXNlSW5CYWNrLFxuICBlYXNlT3V0QmFjayxcbiAgZWFzZUluT3V0QmFja1xufSA9IGVhc2U7XG5cbmV4cG9ydCBjb25zdCBzZXRFYXNpbmdCeU5hbWUgPSBlYXNlTmFtZSA9PiB7XG4gIGlmIChlYXNlW2Vhc2VOYW1lXSkgcmV0dXJuIGVhc2VbZWFzZU5hbWVdO1xuICBlbHNlIHJldHVybiBlYXNlLmVhc2VMaW5lYXI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWFzaW5nQnlOYW1lID0gbmFtZSA9PlxuICBlYXNlW25hbWVdID8gZWFzZVtuYW1lXSA6IGVhc2UuZWFzZUxpbmVhcjtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/emitter/Emitter.js",
    "content": "import { DEFAULT_BIND_EMITTER, DEFAULT_BIND_EMITTER_EVENT, DEFAULT_DAMPING, DEFAULT_EMITTER_INDEX, DEFAULT_EMITTER_RATE } from './constants';\nimport EventDispatcher, { EMITTER_DEAD, PARTICLE_CREATED, PARTICLE_DEAD, PARTICLE_UPDATE, SYSTEM_UPDATE } from '../events';\nimport { INTEGRATION_TYPE_EULER, integrate } from '../math';\nimport { Util, uid } from '../utils';\nimport { InitializerUtil } from '../initializer';\nimport Particle from '../core/Particle';\nimport isNumber from '../utils/isNumber.js';\nimport { EMITTER_TYPE_EMITTER as type } from './types';\n/**\n * Emitters are the System engine's particle factories. They cause particles to\n * be rendered by emitting them, and store all particle initializers and behaviours.\n *\n */\n\nexport default class Emitter extends Particle {\n  /**\n   * Constructs an Emitter instance.\n   *\n   * @param {object} properties - The properties to instantiate the emitter with\n   * @return void\n   */\n  constructor(properties = {}) {\n    super(properties);\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n    /**\n     * @desc The particles emitted by this emitter.\n     * @type {array}\n     */\n\n    this.particles = [];\n    /**\n     * @desc The initializers for particles emitted by this emitter.\n     * @type {array}\n     */\n\n    this.initializers = [];\n    /**\n     * @desc The behaviours for particles emitted by this emitter.\n     * @type {array}\n     */\n\n    this.behaviours = [];\n    /**\n     * @desc The behaviours for the emitter.\n     * @type {array}\n     */\n\n    this.emitterBehaviours = [];\n    /**\n     * @desc The current emit iteration.\n     * @type {integer}\n     */\n\n    this.currentEmitTime = 0;\n    /**\n     * @desc The total number of times the emitter should emit particles.\n     * @type {integer}\n     */\n\n    this.totalEmitTimes = -1;\n    /**\n     * @desc The friction coefficient for all particle to emit by.\n     * @type {number}\n     */\n\n    this.damping = DEFAULT_DAMPING;\n    /**\n     * @desc Ensures that particles emitted by this emitter are positioned\n     * according to the emitter's properties.\n     * @type {boolean}\n     */\n\n    this.bindEmitter = DEFAULT_BIND_EMITTER;\n    /**\n     * @desc Determines if the emitter will dispatch internal events. Defaults\n     * to false\n     * @type {boolean}\n     */\n\n    this.bindEmitterEvent = DEFAULT_BIND_EMITTER_EVENT;\n    /**\n     * @desc The number of particles to emit per second (a [particle]/b [s])\n     * @type {Rate}\n     */\n\n    this.rate = DEFAULT_EMITTER_RATE;\n    /**\n     * @desc Determines if the emitter is emitting particles or not.\n     * @type {boolean}\n     */\n\n    this.isEmitting = false;\n    /**\n     * @desc The emitter's id.\n     * @type {string}\n     */\n\n    this.id = `emitter-${uid()}`;\n    this.cID = 0;\n    this.name = 'Emitter';\n    /**\n     * @desc The index of the emitter as it is added to the system.\n     * @type {number|undefined}\n     */\n\n    this.index = DEFAULT_EMITTER_INDEX;\n    /**\n     * @desc The emitter's internal event dispatcher.\n     * @type {EventDispatcher}\n     */\n\n    this.eventDispatcher = new EventDispatcher();\n  }\n  /**\n   * Proxy method for the internal event dispatcher's dispatchEvent method.\n   *\n   * @param {string} event - The event to dispatch\n   * @param {object<Particle>} [target=this] - The event target\n   */\n\n\n  dispatch(event, target = this) {\n    this.eventDispatcher.dispatchEvent(event, target);\n  }\n  /**\n   * Sets the emitter rate.\n   *\n   * @param {Rate} rate - a rate initializer object\n   * @return {Emitter}\n   */\n\n\n  setRate(rate) {\n    this.rate = rate;\n    return this;\n  }\n  /**\n   * Sets the position of the emitter.\n   *\n   * @param {object} newPosition - an object the new x, y and z props\n   * @return {Emitter}\n   */\n\n\n  setPosition(newPosition = {}) {\n    const {\n      position\n    } = this;\n    const {\n      x = position.x,\n      y = position.y,\n      z = position.z\n    } = newPosition;\n    this.position.set(x, y, z);\n    return this;\n  }\n  /**\n   * Sets the rotation of the emitter.\n   *\n   * @param {object} newRotation - an object the new x, y and z props\n   * @return {Emitter}\n   */\n\n\n  setRotation(newRotation = {}) {\n    const {\n      rotation\n    } = this;\n    const {\n      x = rotation.x,\n      y = rotation.y,\n      z = rotation.z\n    } = newRotation;\n    this.rotation.set(x, y, z);\n    return this;\n  }\n  /**\n   * Sets the total number of times the emitter should emit particles as well as\n   * the emitter's life. Also intializes the emitter rate.\n   * This enables the emitter to emit particles.\n   *\n   * @param {number} [totalEmitTimes=Infinity] - the total number of times to emit particles\n   * @param {number} [life=Infinity] - the life of this emitter in milliseconds\n   * @return {Emitter}\n   */\n\n\n  emit(totalEmitTimes = Infinity, life = Infinity) {\n    this.currentEmitTime = 0;\n    this.totalEmitTimes = isNumber(totalEmitTimes) ? totalEmitTimes : Infinity;\n\n    if (totalEmitTimes === 1) {\n      this.life = totalEmitTimes;\n    } else {\n      this.life = isNumber(life) ? life : Infinity;\n    }\n\n    this.rate.init();\n    this.isEmitting = true;\n    return this;\n  }\n  /**\n   * Experimental emit method that is designed to be called from the System.emit method.\n   *\n   * @return {Emitter}\n   */\n\n\n  experimental_emit() {\n    const {\n      isEmitting,\n      totalEmitTimes,\n      life\n    } = this;\n\n    if (!isEmitting) {\n      this.currentEmitTime = 0;\n\n      if (!totalEmitTimes) {\n        this.setTotalEmitTimes(Infinity);\n      }\n\n      if (!life) {\n        this.setLife(Infinity);\n      }\n\n      this.rate.init();\n      this.isEmitting = true;\n    }\n\n    return this;\n  }\n  /**\n   * Sets the total emit times for the emitter.\n   *\n   * @param {number} [totalEmitTimes=Infinity] - the total number of times to emit particles\n   * @return {Emitter}\n   */\n\n\n  setTotalEmitTimes(totalEmitTimes = Infinity) {\n    this.totalEmitTimes = isNumber(totalEmitTimes) ? totalEmitTimes : Infinity;\n    return this;\n  }\n  /**\n   * Sets the life of the emitter.\n   *\n   * @param {number} [life=Infinity] - the life of this emitter in milliseconds\n   * @return {Emitter}\n   */\n\n\n  setLife(life = Infinity) {\n    if (this.totalEmitTimes === 1) {\n      this.life = this.totalEmitTimes;\n    } else {\n      this.life = isNumber(life) ? life : Infinity;\n    }\n\n    return this;\n  }\n  /**\n   * Stops the emitter from emitting particles.\n   *\n   * @return void\n   */\n\n\n  stopEmit() {\n    this.totalEmitTimes = -1;\n    this.currentEmitTime = 0;\n    this.isEmitting = false;\n  }\n  /**\n   * Kills all of the emitter's particles.\n   *\n   * @return void\n   */\n\n\n  removeAllParticles() {\n    let i = this.particles.length;\n\n    while (i--) {\n      this.particles[i].dead = true;\n    }\n  }\n  /**\n   * Adds a particle initializer to the emitter.\n   * Each initializer is run on each particle when they are created.\n   *\n   * @param {Initializer} initializer - The initializer to add\n   * @return {Emitter}\n   */\n\n\n  addInitializer(initializer) {\n    this.initializers.push(initializer);\n    return this;\n  }\n  /**\n   * Adds multiple particle initializers to the emitter.\n   *\n   * @param {array<Initializer>} initializers - an array of particle initializers\n   * @return {Emitter}\n   */\n\n\n  addInitializers(initializers) {\n    let i = initializers.length;\n\n    while (i--) {\n      this.addInitializer(initializers[i]);\n    }\n\n    return this;\n  }\n  /**\n   * Sets the emitter's particle initializers.\n   *\n   * @param {array<Initializer>} initializers - an array of particle initializers\n   * @return {Emitter}\n   */\n\n\n  setInitializers(initializers) {\n    this.initializers = initializers;\n    return this;\n  }\n  /**\n   * Removes an initializer from the emitter's initializers array.\n   *\n   * @param {Initializer} initializer - The initializer to remove\n   * @return {Emitter}\n   */\n\n\n  removeInitializer(initializer) {\n    const index = this.initializers.indexOf(initializer);\n\n    if (index > -1) {\n      this.initializers.splice(index, 1);\n    }\n\n    return this;\n  }\n  /**\n   * Removes all initializers.\n   *\n   * @return {Emitter}\n   */\n\n\n  removeAllInitializers() {\n    Util.destroyArray(this.initializers);\n    return this;\n  }\n  /**\n   * Adds a behaviour to the emitter. All emitter behaviours are added to each particle when\n   * they are emitted.\n   *\n   * @param {Behaviour} behaviour - The behaviour to add to the emitter\n   * @return {Emitter}\n   */\n\n\n  addBehaviour(behaviour) {\n    this.behaviours.push(behaviour);\n    return this;\n  }\n  /**\n   * Adds multiple behaviours to the emitter.\n   *\n   * @param {array<Behaviour>} behaviours - an array of emitter behaviours\n   * @return {Emitter}\n   */\n\n\n  addBehaviours(behaviours) {\n    let i = behaviours.length;\n\n    while (i--) {\n      this.addBehaviour(behaviours[i]);\n    }\n\n    return this;\n  }\n  /**\n   * Sets the emitter's behaviours.\n   *\n   * @param {array<Behaviour>} behaviours - an array of emitter behaviours\n   * @return {Emitter}\n   */\n\n\n  setBehaviours(behaviours) {\n    this.behaviours = behaviours;\n    return this;\n  }\n  /**\n   * Removes the behaviour from the emitter's behaviours array.\n   *\n   * @param {Behaviour} behaviour - The behaviour to remove\n   * @return {Emitter}\n   */\n\n\n  removeBehaviour(behaviour) {\n    const index = this.behaviours.indexOf(behaviour);\n\n    if (index > -1) {\n      this.behaviours.splice(index, 1);\n    }\n\n    return this;\n  }\n  /**\n   * Removes all behaviours from the emitter.\n   *\n   * @return {Emitter}\n   */\n\n\n  removeAllBehaviours() {\n    Util.destroyArray(this.behaviours);\n    return this;\n  }\n  /**\n   * Adds an emitter behaviour to the emitter.\n   *\n   * @param {Behaviour} behaviour - The behaviour to add to the emitter\n   * @return {Emitter}\n   */\n\n\n  addEmitterBehaviour(behaviour) {\n    this.emitterBehaviours.push(behaviour);\n    behaviour.initialize(this);\n    return this;\n  }\n  /**\n   * Adds multiple behaviours to the emitter.\n   *\n   * @param {array<Behaviour>} behaviours - an array of emitter behaviours\n   * @return {Emitter}\n   */\n\n\n  addEmitterBehaviours(behaviours) {\n    let i = behaviours.length;\n\n    while (i--) {\n      this.addEmitterBehaviour(behaviours[i]);\n    }\n\n    return this;\n  }\n  /**\n   * Sets the emitter's behaviours.\n   *\n   * @param {array<Behaviour>} behaviours - an array of emitter behaviours\n   * @return {Emitter}\n   */\n\n\n  setEmitterBehaviours(behaviours) {\n    const length = behaviours.length;\n    this.emitterBehaviours = behaviours;\n\n    for (let i = 0; i < length; i++) {\n      this.emitterBehaviours[i].initialize(this);\n    }\n\n    return this;\n  }\n  /**\n   * Removes the behaviour from the emitter's behaviours array.\n   *\n   * @param {Behaviour} behaviour - The behaviour to remove\n   * @return {Emitter}\n   */\n\n\n  removeEmitterBehaviour(behaviour) {\n    const index = this.emitterBehaviours.indexOf(behaviour);\n\n    if (index > -1) {\n      this.emitterBehaviours.splice(index, 1);\n    }\n\n    return this;\n  }\n  /**\n   * Removes all behaviours from the emitter.\n   *\n   * @return {Emitter}\n   */\n\n\n  removeAllEmitterBehaviours() {\n    Util.destroyArray(this.emitterBehaviours);\n    return this;\n  }\n  /**\n   * Adds the event listener for the EMITTER_DEAD event.\n   *\n   * @param {onEmitterDead} - The function to call when the EMITTER_DEAD is dispatched.\n   * @return {Emitter}\n   */\n\n\n  addOnEmitterDeadEventListener(onEmitterDead) {\n    this.eventDispatcher.addEventListener(`${this.id}_${EMITTER_DEAD}`, () => onEmitterDead());\n    return this;\n  }\n  /**\n   * Creates a particle by retreiving one from the pool and setting it up with\n   * the supplied initializer and behaviour.\n   *\n   * @return {Emitter}\n   */\n\n\n  createParticle() {\n    const particle = this.parent.pool.get(Particle);\n    const index = this.particles.length;\n    this.setupParticle(particle, index);\n    this.parent && this.parent.dispatch(PARTICLE_CREATED, particle);\n    this.bindEmitterEvent && this.dispatch(PARTICLE_CREATED, particle);\n    return particle;\n  }\n  /**\n   * Sets up a particle by running all initializers on it and setting its behaviours.\n   * Also adds the particle to this.particles.\n   *\n   * @param {Particle} particle - The particle to setup\n   * @return void\n   */\n\n\n  setupParticle(particle, index) {\n    const {\n      initializers,\n      behaviours\n    } = this;\n    InitializerUtil.initialize(this, particle, initializers);\n    particle.addBehaviours(behaviours);\n    particle.parent = this;\n    particle.index = index;\n    this.particles.push(particle);\n  }\n  /**\n   * Updates the emitter according to the time passed by calling the generate\n   * and integrate methods. The generate method creates particles, the integrate\n   * method updates existing particles.\n   *\n   * If the emitter age is greater than time, the emitter is killed.\n   *\n   * This method also indexes/deindexes particles.\n   *\n   * @param {number} time - System engine time\n   * @return void\n   */\n\n\n  update(time) {\n    if (!this.isEmitting && this.particles.length === 0) {\n      return;\n    }\n\n    this.age += time;\n\n    if (this.dead || this.age >= this.life) {\n      this.destroy();\n    }\n\n    if (this.isEmitting) {\n      this.generate(time);\n    }\n\n    this.integrate(time);\n    let i = this.particles.length;\n\n    while (i--) {\n      const particle = this.particles[i];\n\n      if (particle.dead) {\n        this.parent && this.parent.dispatch(PARTICLE_DEAD, particle);\n        this.bindEmitterEvent && this.dispatch(PARTICLE_DEAD, particle);\n        this.parent.pool.expire(particle.reset());\n        this.particles.splice(i, 1);\n\n        if (this.particles.length === 0) {\n          this.parent && this.parent.dispatch(SYSTEM_UPDATE);\n        }\n      }\n    }\n\n    this.updateEmitterBehaviours(time);\n  }\n  /**\n   * Updates the emitter's emitter behaviours.\n   *\n   * @param {number} time - System engine time\n   * @return void\n   */\n\n\n  updateEmitterBehaviours(time) {\n    if (this.sleep) {\n      return;\n    }\n\n    const length = this.emitterBehaviours.length;\n\n    for (let i = 0; i < length; i++) {\n      this.emitterBehaviours[i].applyBehaviour(this, time, i);\n    }\n  }\n  /**\n   * Runs the integration algorithm on the emitter and all particles.\n   * Updates the particles with the timstamp passed.\n   *\n   * @param {number} time - System engine time\n   * @return void\n   */\n\n\n  integrate(time) {\n    const integrationType = this.parent ? this.parent.integrationType : INTEGRATION_TYPE_EULER;\n    const damping = 1 - this.damping;\n    integrate(this, time, damping, integrationType);\n    let index = this.particles.length;\n\n    while (index--) {\n      const particle = this.particles[index];\n      particle.update(time, index);\n      integrate(particle, time, damping, integrationType);\n      this.parent && this.parent.dispatch(PARTICLE_UPDATE, particle);\n      this.bindEmitterEvent && this.dispatch(PARTICLE_UPDATE, particle);\n    }\n  }\n  /**\n   * Generates new particles.\n   *\n   * @param {number} time - System engine time\n   * @return void\n   */\n\n\n  generate(time) {\n    if (this.totalEmitTimes === 1) {\n      let i = this.rate.getValue(99999);\n\n      if (i > 0) {\n        this.cID = i;\n      }\n\n      while (i--) {\n        this.createParticle();\n      }\n\n      this.totalEmitTimes = 0;\n      return;\n    }\n\n    this.currentEmitTime += time;\n\n    if (this.currentEmitTime < this.totalEmitTimes) {\n      let i = this.rate.getValue(time);\n\n      if (i > 0) {\n        this.cID = i;\n      }\n\n      while (i--) {\n        this.createParticle();\n      }\n    }\n  }\n  /**\n   * Kills the emitter.\n   *\n   * @return void\n   */\n\n\n  destroy() {\n    this.dead = true;\n    this.energy = 0;\n    this.totalEmitTimes = -1;\n\n    if (this.particles.length == 0) {\n      this.isEmitting = false;\n      this.removeAllInitializers();\n      this.removeAllBehaviours();\n      this.dispatch(`${this.id}_${EMITTER_DEAD}`);\n      this.parent && this.parent.removeEmitter(this);\n    }\n  }\n\n}"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/emitter/FollowEmitter.js",
    "content": "import Emitter from './Emitter';\nimport THREEUtil from '../utils/THREEUtil';\nimport Util from '../utils/Util';\nimport { EMITTER_TYPE_FOLLOW as type } from './types';\nexport default class FollowEmitter extends Emitter {\n  /**\n   * The FollowEmitter class inherits from System.Emitter\n   *\n   * use the FollowEmitter will emit particle when mousemoving\n   *\n   * @class System.FollowEmitter\n   * @constructor\n   * @param {Element} mouseTarget mouseevent's target;\n   * @param {Number} ease the easing of following speed;\n   * @default 0.7\n   * @param {Object} pObj the parameters object;\n   */\n  constructor(mouseTarget, ease, pObj) {\n    super(pObj);\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n    this.mouseTarget = Util.initValue(mouseTarget, window);\n    this.ease = Util.initValue(ease, 0.7);\n    this._allowEmitting = false;\n    this.initEventHandler();\n  }\n\n  initEventHandler() {\n    var self = this;\n\n    this.mousemoveHandler = function (e) {\n      self.mousemove.call(self, e);\n    };\n\n    this.mousedownHandler = function (e) {\n      self.mousedown.call(self, e);\n    };\n\n    this.mouseupHandler = function (e) {\n      self.mouseup.call(self, e);\n    };\n\n    this.mouseTarget.addEventListener('mousemove', this.mousemoveHandler, false);\n  }\n  /**\n   * start emit particle\n   * @method emit\n   */\n\n\n  emit() {\n    this._allowEmitting = true;\n  }\n  /**\n   * stop emiting\n   * @method stopEmit\n   */\n\n\n  stopEmit() {\n    this._allowEmitting = false;\n  }\n\n  setCameraAndCanvas(camera, canvas) {\n    this.camera = camera;\n    this.canvas = canvas;\n  }\n\n  mousemove(e) {\n    if (e.layerX || e.layerX == 0) {\n      this.position.x += (e.layerX - this.position.x) * this.ease;\n      this.position.y += (e.layerY - this.position.y) * this.ease;\n    } else if (e.offsetX || e.offsetX == 0) {\n      this.position.x += (e.offsetX - this.position.x) * this.ease;\n      this.position.y += (e.offsetY - this.position.y) * this.ease;\n    }\n\n    this.position.copy(THREEUtil.toSpacePos(this.position, this.camera, this.canvas));\n    if (this._allowEmitting) super.emit('once');\n  }\n  /**\n   * Destory this Emitter\n   * @method destroy\n   */\n\n\n  destroy() {\n    super.destroy();\n    this.mouseTarget.removeEventListener('mousemove', this.mousemoveHandler, false);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL0ZvbGxvd0VtaXR0ZXIuanMiXSwibmFtZXMiOlsiRW1pdHRlciIsIlRIUkVFVXRpbCIsIlV0aWwiLCJFTUlUVEVSX1RZUEVfRk9MTE9XIiwidHlwZSIsIkZvbGxvd0VtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsIm1vdXNlVGFyZ2V0IiwiZWFzZSIsInBPYmoiLCJpbml0VmFsdWUiLCJ3aW5kb3ciLCJfYWxsb3dFbWl0dGluZyIsImluaXRFdmVudEhhbmRsZXIiLCJzZWxmIiwibW91c2Vtb3ZlSGFuZGxlciIsImUiLCJtb3VzZW1vdmUiLCJjYWxsIiwibW91c2Vkb3duSGFuZGxlciIsIm1vdXNlZG93biIsIm1vdXNldXBIYW5kbGVyIiwibW91c2V1cCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlbWl0Iiwic3RvcEVtaXQiLCJzZXRDYW1lcmFBbmRDYW52YXMiLCJjYW1lcmEiLCJjYW52YXMiLCJsYXllclgiLCJwb3NpdGlvbiIsIngiLCJ5IiwibGF5ZXJZIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJjb3B5IiwidG9TcGFjZVBvcyIsImRlc3Ryb3kiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxPQUFQLE1BQW9CLFdBQXBCO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixvQkFBdEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGVBQWpCO0FBQ0EsU0FBU0MsbUJBQW1CLElBQUlDLElBQWhDLFFBQTRDLFNBQTVDO0FBRUEsZUFBZSxNQUFNQyxhQUFOLFNBQTRCTCxPQUE1QixDQUFvQztBQUNqRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxXQUFELEVBQWNDLElBQWQsRUFBb0JDLElBQXBCLEVBQTBCO0FBQ25DLFVBQU1BLElBQU47QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLTCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLRyxXQUFMLEdBQW1CTCxJQUFJLENBQUNRLFNBQUwsQ0FBZUgsV0FBZixFQUE0QkksTUFBNUIsQ0FBbkI7QUFDQSxTQUFLSCxJQUFMLEdBQVlOLElBQUksQ0FBQ1EsU0FBTCxDQUFlRixJQUFmLEVBQXFCLEdBQXJCLENBQVo7QUFDQSxTQUFLSSxjQUFMLEdBQXNCLEtBQXRCO0FBQ0EsU0FBS0MsZ0JBQUw7QUFDRDs7QUFFREEsRUFBQUEsZ0JBQWdCLEdBQUc7QUFDakIsUUFBSUMsSUFBSSxHQUFHLElBQVg7O0FBRUEsU0FBS0MsZ0JBQUwsR0FBd0IsVUFBU0MsQ0FBVCxFQUFZO0FBQ2xDRixNQUFBQSxJQUFJLENBQUNHLFNBQUwsQ0FBZUMsSUFBZixDQUFvQkosSUFBcEIsRUFBMEJFLENBQTFCO0FBQ0QsS0FGRDs7QUFJQSxTQUFLRyxnQkFBTCxHQUF3QixVQUFTSCxDQUFULEVBQVk7QUFDbENGLE1BQUFBLElBQUksQ0FBQ00sU0FBTCxDQUFlRixJQUFmLENBQW9CSixJQUFwQixFQUEwQkUsQ0FBMUI7QUFDRCxLQUZEOztBQUlBLFNBQUtLLGNBQUwsR0FBc0IsVUFBU0wsQ0FBVCxFQUFZO0FBQ2hDRixNQUFBQSxJQUFJLENBQUNRLE9BQUwsQ0FBYUosSUFBYixDQUFrQkosSUFBbEIsRUFBd0JFLENBQXhCO0FBQ0QsS0FGRDs7QUFJQSxTQUFLVCxXQUFMLENBQWlCZ0IsZ0JBQWpCLENBQ0UsV0FERixFQUVFLEtBQUtSLGdCQUZQLEVBR0UsS0FIRjtBQUtEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7OztBQUNFUyxFQUFBQSxJQUFJLEdBQUc7QUFDTCxTQUFLWixjQUFMLEdBQXNCLElBQXRCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7O0FBQ0VhLEVBQUFBLFFBQVEsR0FBRztBQUNULFNBQUtiLGNBQUwsR0FBc0IsS0FBdEI7QUFDRDs7QUFFRGMsRUFBQUEsa0JBQWtCLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxFQUFpQjtBQUNqQyxTQUFLRCxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLQyxNQUFMLEdBQWNBLE1BQWQ7QUFDRDs7QUFFRFgsRUFBQUEsU0FBUyxDQUFDRCxDQUFELEVBQUk7QUFDWCxRQUFJQSxDQUFDLENBQUNhLE1BQUYsSUFBWWIsQ0FBQyxDQUFDYSxNQUFGLElBQVksQ0FBNUIsRUFBK0I7QUFDN0IsV0FBS0MsUUFBTCxDQUFjQyxDQUFkLElBQW1CLENBQUNmLENBQUMsQ0FBQ2EsTUFBRixHQUFXLEtBQUtDLFFBQUwsQ0FBY0MsQ0FBMUIsSUFBK0IsS0FBS3ZCLElBQXZEO0FBQ0EsV0FBS3NCLFFBQUwsQ0FBY0UsQ0FBZCxJQUFtQixDQUFDaEIsQ0FBQyxDQUFDaUIsTUFBRixHQUFXLEtBQUtILFFBQUwsQ0FBY0UsQ0FBMUIsSUFBK0IsS0FBS3hCLElBQXZEO0FBQ0QsS0FIRCxNQUdPLElBQUlRLENBQUMsQ0FBQ2tCLE9BQUYsSUFBYWxCLENBQUMsQ0FBQ2tCLE9BQUYsSUFBYSxDQUE5QixFQUFpQztBQUN0QyxXQUFLSixRQUFMLENBQWNDLENBQWQsSUFBbUIsQ0FBQ2YsQ0FBQyxDQUFDa0IsT0FBRixHQUFZLEtBQUtKLFFBQUwsQ0FBY0MsQ0FBM0IsSUFBZ0MsS0FBS3ZCLElBQXhEO0FBQ0EsV0FBS3NCLFFBQUwsQ0FBY0UsQ0FBZCxJQUFtQixDQUFDaEIsQ0FBQyxDQUFDbUIsT0FBRixHQUFZLEtBQUtMLFFBQUwsQ0FBY0UsQ0FBM0IsSUFBZ0MsS0FBS3hCLElBQXhEO0FBQ0Q7O0FBRUQsU0FBS3NCLFFBQUwsQ0FBY00sSUFBZCxDQUNFbkMsU0FBUyxDQUFDb0MsVUFBVixDQUFxQixLQUFLUCxRQUExQixFQUFvQyxLQUFLSCxNQUF6QyxFQUFpRCxLQUFLQyxNQUF0RCxDQURGO0FBSUEsUUFBSSxLQUFLaEIsY0FBVCxFQUF5QixNQUFNWSxJQUFOLENBQVcsTUFBWDtBQUMxQjtBQUVEO0FBQ0Y7QUFDQTtBQUNBOzs7QUFDRWMsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsVUFBTUEsT0FBTjtBQUNBLFNBQUsvQixXQUFMLENBQWlCZ0MsbUJBQWpCLENBQ0UsV0FERixFQUVFLEtBQUt4QixnQkFGUCxFQUdFLEtBSEY7QUFLRDs7QUFqR2dEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVtaXR0ZXIgZnJvbSAnLi9FbWl0dGVyJztcbmltcG9ydCBUSFJFRVV0aWwgZnJvbSAnLi4vdXRpbHMvVEhSRUVVdGlsJztcbmltcG9ydCBVdGlsIGZyb20gJy4uL3V0aWxzL1V0aWwnO1xuaW1wb3J0IHsgRU1JVFRFUl9UWVBFX0ZPTExPVyBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvbGxvd0VtaXR0ZXIgZXh0ZW5kcyBFbWl0dGVyIHtcbiAgLyoqXG4gICAqIFRoZSBGb2xsb3dFbWl0dGVyIGNsYXNzIGluaGVyaXRzIGZyb20gU3lzdGVtLkVtaXR0ZXJcbiAgICpcbiAgICogdXNlIHRoZSBGb2xsb3dFbWl0dGVyIHdpbGwgZW1pdCBwYXJ0aWNsZSB3aGVuIG1vdXNlbW92aW5nXG4gICAqXG4gICAqIEBjbGFzcyBTeXN0ZW0uRm9sbG93RW1pdHRlclxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtFbGVtZW50fSBtb3VzZVRhcmdldCBtb3VzZWV2ZW50J3MgdGFyZ2V0O1xuICAgKiBAcGFyYW0ge051bWJlcn0gZWFzZSB0aGUgZWFzaW5nIG9mIGZvbGxvd2luZyBzcGVlZDtcbiAgICogQGRlZmF1bHQgMC43XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwT2JqIHRoZSBwYXJhbWV0ZXJzIG9iamVjdDtcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1vdXNlVGFyZ2V0LCBlYXNlLCBwT2JqKSB7XG4gICAgc3VwZXIocE9iaik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY2xhc3MgdHlwZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5tb3VzZVRhcmdldCA9IFV0aWwuaW5pdFZhbHVlKG1vdXNlVGFyZ2V0LCB3aW5kb3cpO1xuICAgIHRoaXMuZWFzZSA9IFV0aWwuaW5pdFZhbHVlKGVhc2UsIDAuNyk7XG4gICAgdGhpcy5fYWxsb3dFbWl0dGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaW5pdEV2ZW50SGFuZGxlcigpO1xuICB9XG5cbiAgaW5pdEV2ZW50SGFuZGxlcigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB0aGlzLm1vdXNlbW92ZUhhbmRsZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBzZWxmLm1vdXNlbW92ZS5jYWxsKHNlbGYsIGUpO1xuICAgIH07XG5cbiAgICB0aGlzLm1vdXNlZG93bkhhbmRsZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBzZWxmLm1vdXNlZG93bi5jYWxsKHNlbGYsIGUpO1xuICAgIH07XG5cbiAgICB0aGlzLm1vdXNldXBIYW5kbGVyID0gZnVuY3Rpb24oZSkge1xuICAgICAgc2VsZi5tb3VzZXVwLmNhbGwoc2VsZiwgZSk7XG4gICAgfTtcblxuICAgIHRoaXMubW91c2VUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZW1vdmUnLFxuICAgICAgdGhpcy5tb3VzZW1vdmVIYW5kbGVyLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHN0YXJ0IGVtaXQgcGFydGljbGVcbiAgICogQG1ldGhvZCBlbWl0XG4gICAqL1xuICBlbWl0KCkge1xuICAgIHRoaXMuX2FsbG93RW1pdHRpbmcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIHN0b3AgZW1pdGluZ1xuICAgKiBAbWV0aG9kIHN0b3BFbWl0XG4gICAqL1xuICBzdG9wRW1pdCgpIHtcbiAgICB0aGlzLl9hbGxvd0VtaXR0aW5nID0gZmFsc2U7XG4gIH1cblxuICBzZXRDYW1lcmFBbmRDYW52YXMoY2FtZXJhLCBjYW52YXMpIHtcbiAgICB0aGlzLmNhbWVyYSA9IGNhbWVyYTtcbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcbiAgfVxuXG4gIG1vdXNlbW92ZShlKSB7XG4gICAgaWYgKGUubGF5ZXJYIHx8IGUubGF5ZXJYID09IDApIHtcbiAgICAgIHRoaXMucG9zaXRpb24ueCArPSAoZS5sYXllclggLSB0aGlzLnBvc2l0aW9uLngpICogdGhpcy5lYXNlO1xuICAgICAgdGhpcy5wb3NpdGlvbi55ICs9IChlLmxheWVyWSAtIHRoaXMucG9zaXRpb24ueSkgKiB0aGlzLmVhc2U7XG4gICAgfSBlbHNlIGlmIChlLm9mZnNldFggfHwgZS5vZmZzZXRYID09IDApIHtcbiAgICAgIHRoaXMucG9zaXRpb24ueCArPSAoZS5vZmZzZXRYIC0gdGhpcy5wb3NpdGlvbi54KSAqIHRoaXMuZWFzZTtcbiAgICAgIHRoaXMucG9zaXRpb24ueSArPSAoZS5vZmZzZXRZIC0gdGhpcy5wb3NpdGlvbi55KSAqIHRoaXMuZWFzZTtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uLmNvcHkoXG4gICAgICBUSFJFRVV0aWwudG9TcGFjZVBvcyh0aGlzLnBvc2l0aW9uLCB0aGlzLmNhbWVyYSwgdGhpcy5jYW52YXMpXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9hbGxvd0VtaXR0aW5nKSBzdXBlci5lbWl0KCdvbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdG9yeSB0aGlzIEVtaXR0ZXJcbiAgICogQG1ldGhvZCBkZXN0cm95XG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB0aGlzLm1vdXNlVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgIHRoaXMubW91c2Vtb3ZlSGFuZGxlcixcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/emitter/constants.js",
    "content": "import { Rate } from '../initializer';\nexport const DEFAULT_DAMPING = 0.006;\nexport const DEFAULT_BIND_EMITTER = true;\nexport const DEFAULT_EMITTER_RATE = new Rate(1, 0.1);\nexport const DEFAULT_BIND_EMITTER_EVENT = false;\nexport const DEFAULT_EMITTER_INDEX = undefined;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJSYXRlIiwiREVGQVVMVF9EQU1QSU5HIiwiREVGQVVMVF9CSU5EX0VNSVRURVIiLCJERUZBVUxUX0VNSVRURVJfUkFURSIsIkRFRkFVTFRfQklORF9FTUlUVEVSX0VWRU5UIiwiREVGQVVMVF9FTUlUVEVSX0lOREVYIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxJQUFULFFBQXFCLGdCQUFyQjtBQUVBLE9BQU8sTUFBTUMsZUFBZSxHQUFHLEtBQXhCO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxJQUE3QjtBQUNQLE9BQU8sTUFBTUMsb0JBQW9CLEdBQUcsSUFBSUgsSUFBSixDQUFTLENBQVQsRUFBWSxHQUFaLENBQTdCO0FBQ1AsT0FBTyxNQUFNSSwwQkFBMEIsR0FBRyxLQUFuQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUdDLFNBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmF0ZSB9IGZyb20gJy4uL2luaXRpYWxpemVyJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREFNUElORyA9IDAuMDA2O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQklORF9FTUlUVEVSID0gdHJ1ZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VNSVRURVJfUkFURSA9IG5ldyBSYXRlKDEsIDAuMSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9CSU5EX0VNSVRURVJfRVZFTlQgPSBmYWxzZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VNSVRURVJfSU5ERVggPSB1bmRlZmluZWQ7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/emitter/index.js",
    "content": "export { default as FollowEmitter } from './FollowEmitter';\nexport { default as Emitter } from './Emitter';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJGb2xsb3dFbWl0dGVyIiwiRW1pdHRlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsT0FBTyxJQUFJQyxhQUFwQixRQUF5QyxpQkFBekM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLE9BQXBCLFFBQW1DLFdBQW5DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xsb3dFbWl0dGVyIH0gZnJvbSAnLi9Gb2xsb3dFbWl0dGVyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW1pdHRlciB9IGZyb20gJy4vRW1pdHRlcic7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/emitter/types.js",
    "content": "export const EMITTER_TYPE_EMITTER = 'Emitter';\nexport const EMITTER_TYPE_FOLLOW = 'FollowEmitter';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL3R5cGVzLmpzIl0sIm5hbWVzIjpbIkVNSVRURVJfVFlQRV9FTUlUVEVSIiwiRU1JVFRFUl9UWVBFX0ZPTExPVyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxvQkFBb0IsR0FBRyxTQUE3QjtBQUNQLE9BQU8sTUFBTUMsbUJBQW1CLEdBQUcsZUFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRU1JVFRFUl9UWVBFX0VNSVRURVIgPSAnRW1pdHRlcic7XG5leHBvcnQgY29uc3QgRU1JVFRFUl9UWVBFX0ZPTExPVyA9ICdGb2xsb3dFbWl0dGVyJztcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/events/EventDispatcher.js",
    "content": "/*\n * EventDispatcher\n * Visit http://createjs.com/ for documentation, updates and examples.\n *\n **/\nexport default class EventDispatcher {\n  constructor() {\n    this.listeners = null;\n  }\n\n  set listeners(listeners) {\n    this._listeners = listeners;\n  }\n\n  get listeners() {\n    return this._listeners;\n  }\n\n  /**\n   * 添加事件监听器\n   * @param {*} type 事件类型\n   * @param {*} listener 事件监听器\n   * @param {*} toTop 是否在顶部添加(因为监听的事件在触发时安装反序执行，添加到顶部会最后执行)\n   * @returns \n   */\n  addEventListener(type, listener,toTop = false) {\n    if (!this.listeners) {\n      this.listeners = {};\n    } else {\n      this.removeEventListener(type, listener);\n    }\n\n    if (!this.listeners[type]) this.listeners[type] = [];\n\n    if(toTop){\n      this.listeners[type].unshift(listener);\n    }else{\n      this.listeners[type].push(listener);\n    }\n\n    return listener;\n  }\n\n  removeEventListener(type, listener) {\n    if (!this.listeners) return;\n    if (!this.listeners[type]) return;\n    var arr = this.listeners[type];\n\n    for (var i = 0, l = arr.length; i < l; i++) {\n      if (arr[i] == listener) {\n        if (l == 1) {\n          delete this.listeners[type];\n        } // allows for faster checks.\n        else {\n          arr.splice(i, 1);\n        }\n\n        break;\n      }\n    }\n  }\n\n  removeAllEventListeners(type) {\n    if (!type) this.listeners = null;else if (this.listeners) delete this.listeners[type];\n  }\n\n  dispatchEvent(eventName, eventTarget) {\n    var ret = false,\n        listeners = this.listeners;\n\n    if (eventName && listeners) {\n      var arr = listeners[eventName];\n      if (!arr) return ret;\n      arr = arr.slice(); //Should use a copy into a temporary here instead...\n      // to avoid issues with items being removed or added during the dispatch\n\n      var handler,\n          i = arr.length;\n\n      while (i--) {\n        handler = arr[i];\n        ret = ret || handler(eventTarget);\n      }\n    }\n\n    return !!ret;\n  }\n\n  hasEventListener(type) {\n    var listeners = this.listeners;\n    return !!(listeners && listeners[type]);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvRXZlbnREaXNwYXRjaGVyLmpzIl0sIm5hbWVzIjpbIkV2ZW50RGlzcGF0Y2hlciIsImNvbnN0cnVjdG9yIiwibGlzdGVuZXJzIiwiX2xpc3RlbmVycyIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0eXBlIiwibGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicHVzaCIsImFyciIsImkiLCJsIiwibGVuZ3RoIiwic3BsaWNlIiwicmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMiLCJkaXNwYXRjaEV2ZW50IiwiZXZlbnROYW1lIiwiZXZlbnRUYXJnZXQiLCJyZXQiLCJzbGljZSIsImhhbmRsZXIiLCJoYXNFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsZUFBZSxNQUFNQSxlQUFOLENBQXNCO0FBQ25DQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxTQUFMLEdBQWlCLElBQWpCO0FBQ0Q7O0FBRVksTUFBVEEsU0FBUyxDQUFDQSxTQUFELEVBQVk7QUFDdkIsU0FBS0MsVUFBTCxHQUFrQkQsU0FBbEI7QUFDRDs7QUFFWSxNQUFUQSxTQUFTLEdBQUc7QUFDZCxXQUFPLEtBQUtDLFVBQVo7QUFDRDs7QUFFREMsRUFBQUEsZ0JBQWdCLENBQUNDLElBQUQsRUFBT0MsUUFBUCxFQUFpQjtBQUMvQixRQUFJLENBQUMsS0FBS0osU0FBVixFQUFxQjtBQUNuQixXQUFLQSxTQUFMLEdBQWlCLEVBQWpCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS0ssbUJBQUwsQ0FBeUJGLElBQXpCLEVBQStCQyxRQUEvQjtBQUNEOztBQUVELFFBQUksQ0FBQyxLQUFLSixTQUFMLENBQWVHLElBQWYsQ0FBTCxFQUEyQixLQUFLSCxTQUFMLENBQWVHLElBQWYsSUFBdUIsRUFBdkI7QUFDM0IsU0FBS0gsU0FBTCxDQUFlRyxJQUFmLEVBQXFCRyxJQUFyQixDQUEwQkYsUUFBMUI7QUFFQSxXQUFPQSxRQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLG1CQUFtQixDQUFDRixJQUFELEVBQU9DLFFBQVAsRUFBaUI7QUFDbEMsUUFBSSxDQUFDLEtBQUtKLFNBQVYsRUFBcUI7QUFDckIsUUFBSSxDQUFDLEtBQUtBLFNBQUwsQ0FBZUcsSUFBZixDQUFMLEVBQTJCO0FBRTNCLFFBQUlJLEdBQUcsR0FBRyxLQUFLUCxTQUFMLENBQWVHLElBQWYsQ0FBVjs7QUFFQSxTQUFLLElBQUlLLENBQUMsR0FBRyxDQUFSLEVBQVdDLENBQUMsR0FBR0YsR0FBRyxDQUFDRyxNQUF4QixFQUFnQ0YsQ0FBQyxHQUFHQyxDQUFwQyxFQUF1Q0QsQ0FBQyxFQUF4QyxFQUE0QztBQUMxQyxVQUFJRCxHQUFHLENBQUNDLENBQUQsQ0FBSCxJQUFVSixRQUFkLEVBQXdCO0FBQ3RCLFlBQUlLLENBQUMsSUFBSSxDQUFULEVBQVk7QUFDVixpQkFBTyxLQUFLVCxTQUFMLENBQWVHLElBQWYsQ0FBUDtBQUNELFNBRkQsQ0FHQTtBQUhBLGFBSUs7QUFDSEksVUFBQUEsR0FBRyxDQUFDSSxNQUFKLENBQVdILENBQVgsRUFBYyxDQUFkO0FBQ0Q7O0FBQ0Q7QUFDRDtBQUNGO0FBQ0Y7O0FBRURJLEVBQUFBLHVCQUF1QixDQUFDVCxJQUFELEVBQU87QUFDNUIsUUFBSSxDQUFDQSxJQUFMLEVBQVcsS0FBS0gsU0FBTCxHQUFpQixJQUFqQixDQUFYLEtBQ0ssSUFBSSxLQUFLQSxTQUFULEVBQW9CLE9BQU8sS0FBS0EsU0FBTCxDQUFlRyxJQUFmLENBQVA7QUFDMUI7O0FBRURVLEVBQUFBLGFBQWEsQ0FBQ0MsU0FBRCxFQUFZQyxXQUFaLEVBQXlCO0FBQ3BDLFFBQUlDLEdBQUcsR0FBRyxLQUFWO0FBQUEsUUFDRWhCLFNBQVMsR0FBRyxLQUFLQSxTQURuQjs7QUFHQSxRQUFJYyxTQUFTLElBQUlkLFNBQWpCLEVBQTRCO0FBQzFCLFVBQUlPLEdBQUcsR0FBR1AsU0FBUyxDQUFDYyxTQUFELENBQW5CO0FBRUEsVUFBSSxDQUFDUCxHQUFMLEVBQVUsT0FBT1MsR0FBUDtBQUVWVCxNQUFBQSxHQUFHLEdBQUdBLEdBQUcsQ0FBQ1UsS0FBSixFQUFOLENBTDBCLENBS0E7QUFDMUI7O0FBRUEsVUFBSUMsT0FBSjtBQUFBLFVBQ0VWLENBQUMsR0FBR0QsR0FBRyxDQUFDRyxNQURWOztBQUdBLGFBQU9GLENBQUMsRUFBUixFQUFZO0FBQ1ZVLFFBQUFBLE9BQU8sR0FBR1gsR0FBRyxDQUFDQyxDQUFELENBQWI7QUFFQVEsUUFBQUEsR0FBRyxHQUFHQSxHQUFHLElBQUlFLE9BQU8sQ0FBQ0gsV0FBRCxDQUFwQjtBQUNEO0FBQ0Y7O0FBRUQsV0FBTyxDQUFDLENBQUNDLEdBQVQ7QUFDRDs7QUFFREcsRUFBQUEsZ0JBQWdCLENBQUNoQixJQUFELEVBQU87QUFDckIsUUFBSUgsU0FBUyxHQUFHLEtBQUtBLFNBQXJCO0FBRUEsV0FBTyxDQUFDLEVBQUVBLFNBQVMsSUFBSUEsU0FBUyxDQUFDRyxJQUFELENBQXhCLENBQVI7QUFDRDs7QUFoRmtDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEV2ZW50RGlzcGF0Y2hlclxuICogVmlzaXQgaHR0cDovL2NyZWF0ZWpzLmNvbS8gZm9yIGRvY3VtZW50YXRpb24sIHVwZGF0ZXMgYW5kIGV4YW1wbGVzLlxuICpcbiAqKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXZlbnREaXNwYXRjaGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5saXN0ZW5lcnMgPSBudWxsO1xuICB9XG5cbiAgc2V0IGxpc3RlbmVycyhsaXN0ZW5lcnMpIHtcbiAgICB0aGlzLl9saXN0ZW5lcnMgPSBsaXN0ZW5lcnM7XG4gIH1cblxuICBnZXQgbGlzdGVuZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0ZW5lcnM7XG4gIH1cblxuICBhZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgaWYgKCF0aGlzLmxpc3RlbmVycykge1xuICAgICAgdGhpcy5saXN0ZW5lcnMgPSB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubGlzdGVuZXJzW3R5cGVdKSB0aGlzLmxpc3RlbmVyc1t0eXBlXSA9IFtdO1xuICAgIHRoaXMubGlzdGVuZXJzW3R5cGVdLnB1c2gobGlzdGVuZXIpO1xuXG4gICAgcmV0dXJuIGxpc3RlbmVyO1xuICB9XG5cbiAgcmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgIGlmICghdGhpcy5saXN0ZW5lcnMpIHJldHVybjtcbiAgICBpZiAoIXRoaXMubGlzdGVuZXJzW3R5cGVdKSByZXR1cm47XG5cbiAgICB2YXIgYXJyID0gdGhpcy5saXN0ZW5lcnNbdHlwZV07XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IGFyci5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChhcnJbaV0gPT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKGwgPT0gMSkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmxpc3RlbmVyc1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhbGxvd3MgZm9yIGZhc3RlciBjaGVja3MuXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGFyci5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnModHlwZSkge1xuICAgIGlmICghdHlwZSkgdGhpcy5saXN0ZW5lcnMgPSBudWxsO1xuICAgIGVsc2UgaWYgKHRoaXMubGlzdGVuZXJzKSBkZWxldGUgdGhpcy5saXN0ZW5lcnNbdHlwZV07XG4gIH1cblxuICBkaXNwYXRjaEV2ZW50KGV2ZW50TmFtZSwgZXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgcmV0ID0gZmFsc2UsXG4gICAgICBsaXN0ZW5lcnMgPSB0aGlzLmxpc3RlbmVycztcblxuICAgIGlmIChldmVudE5hbWUgJiYgbGlzdGVuZXJzKSB7XG4gICAgICB2YXIgYXJyID0gbGlzdGVuZXJzW2V2ZW50TmFtZV07XG5cbiAgICAgIGlmICghYXJyKSByZXR1cm4gcmV0O1xuXG4gICAgICBhcnIgPSBhcnIuc2xpY2UoKTsgICAgICAgIC8vU2hvdWxkIHVzZSBhIGNvcHkgaW50byBhIHRlbXBvcmFyeSBoZXJlIGluc3RlYWQuLi5cbiAgICAgIC8vIHRvIGF2b2lkIGlzc3VlcyB3aXRoIGl0ZW1zIGJlaW5nIHJlbW92ZWQgb3IgYWRkZWQgZHVyaW5nIHRoZSBkaXNwYXRjaFxuXG4gICAgICB2YXIgaGFuZGxlcixcbiAgICAgICAgaSA9IGFyci5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgaGFuZGxlciA9IGFycltpXTtcblxuICAgICAgICByZXQgPSByZXQgfHwgaGFuZGxlcihldmVudFRhcmdldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmV0O1xuICB9XG5cbiAgaGFzRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG4gICAgdmFyIGxpc3RlbmVycyA9IHRoaXMubGlzdGVuZXJzO1xuXG4gICAgcmV0dXJuICEhKGxpc3RlbmVycyAmJiBsaXN0ZW5lcnNbdHlwZV0pO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/events/constants.js",
    "content": "export const SYSTEM_UPDATE = 'SYSTEM_UPDATE';\nexport const PARTICLE_CREATED = 'PARTICLE_CREATED';\nexport const PARTICLE_UPDATE = 'PARTICLE_UPDATE';\nexport const PARTICLE_DEAD = 'PARTICLE_DEAD';\nexport const EMITTER_ADDED = 'EMITTER_ADDED';\nexport const EMITTER_REMOVED = 'EMITTER_REMOVED';\nexport const EMITTER_DEAD = 'EMITTER_DEAD';\nexport const SYSTEM_UPDATE_AFTER = 'SYSTEM_UPDATE_AFTER';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIlNZU1RFTV9VUERBVEUiLCJQQVJUSUNMRV9DUkVBVEVEIiwiUEFSVElDTEVfVVBEQVRFIiwiUEFSVElDTEVfREVBRCIsIkVNSVRURVJfQURERUQiLCJFTUlUVEVSX1JFTU9WRUQiLCJFTUlUVEVSX0RFQUQiLCJTWVNURU1fVVBEQVRFX0FGVEVSIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLGFBQWEsR0FBRyxlQUF0QjtBQUNQLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsa0JBQXpCO0FBQ1AsT0FBTyxNQUFNQyxlQUFlLEdBQUcsaUJBQXhCO0FBQ1AsT0FBTyxNQUFNQyxhQUFhLEdBQUcsZUFBdEI7QUFDUCxPQUFPLE1BQU1DLGFBQWEsR0FBRyxlQUF0QjtBQUNQLE9BQU8sTUFBTUMsZUFBZSxHQUFHLGlCQUF4QjtBQUNQLE9BQU8sTUFBTUMsWUFBWSxHQUFHLGNBQXJCO0FBQ1AsT0FBTyxNQUFNQyxtQkFBbUIsR0FBRyxxQkFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU1lTVEVNX1VQREFURSA9ICdTWVNURU1fVVBEQVRFJztcbmV4cG9ydCBjb25zdCBQQVJUSUNMRV9DUkVBVEVEID0gJ1BBUlRJQ0xFX0NSRUFURUQnO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX1VQREFURSA9ICdQQVJUSUNMRV9VUERBVEUnO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX0RFQUQgPSAnUEFSVElDTEVfREVBRCc7XG5leHBvcnQgY29uc3QgRU1JVFRFUl9BRERFRCA9ICdFTUlUVEVSX0FEREVEJztcbmV4cG9ydCBjb25zdCBFTUlUVEVSX1JFTU9WRUQgPSAnRU1JVFRFUl9SRU1PVkVEJztcbmV4cG9ydCBjb25zdCBFTUlUVEVSX0RFQUQgPSAnRU1JVFRFUl9ERUFEJztcbmV4cG9ydCBjb25zdCBTWVNURU1fVVBEQVRFX0FGVEVSID0gJ1NZU1RFTV9VUERBVEVfQUZURVInO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/events/index.js",
    "content": "import EventDispatcher from './EventDispatcher';\nexport default EventDispatcher;\nexport * from './constants';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvaW5kZXguanMiXSwibmFtZXMiOlsiRXZlbnREaXNwYXRjaGVyIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxlQUFQLE1BQTRCLG1CQUE1QjtBQUVBLGVBQWVBLGVBQWY7QUFDQSxjQUFjLGFBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXZlbnREaXNwYXRjaGVyIGZyb20gJy4vRXZlbnREaXNwYXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnREaXNwYXRjaGVyO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/index.js",
    "content": "import { System } from './core';\nexport * from './behaviour';\nexport * from './debug';\nexport * from './ease';\nexport * from './emitter';\nexport * from './initializer';\nexport * from './math';\nexport * from './renderer';\nexport * from './utils';\nexport * from './zone';\nexport { System, Particle, Pool } from './core';\nexport default System;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJTeXN0ZW0iLCJQYXJ0aWNsZSIsIlBvb2wiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQVQsUUFBdUIsUUFBdkI7QUFFQSxjQUFjLGFBQWQ7QUFDQSxjQUFjLFNBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxjQUFjLFdBQWQ7QUFDQSxjQUFjLGVBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxjQUFjLFlBQWQ7QUFDQSxjQUFjLFNBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxTQUFTQSxNQUFULEVBQWlCQyxRQUFqQixFQUEyQkMsSUFBM0IsUUFBdUMsUUFBdkM7QUFDQSxlQUFlRixNQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3lzdGVtIH0gZnJvbSAnLi9jb3JlJztcblxuZXhwb3J0ICogZnJvbSAnLi9iZWhhdmlvdXInO1xuZXhwb3J0ICogZnJvbSAnLi9kZWJ1Zyc7XG5leHBvcnQgKiBmcm9tICcuL2Vhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbWl0dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaW5pdGlhbGl6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRoJztcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyZXInO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3pvbmUnO1xuZXhwb3J0IHsgU3lzdGVtLCBQYXJ0aWNsZSwgUG9vbCB9IGZyb20gJy4vY29yZSc7XG5leHBvcnQgZGVmYXVsdCBTeXN0ZW07XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Body.js",
    "content": "import Initializer from './Initializer';\nimport { createArraySpan } from '../math';\nimport { INITIALIZER_TYPE_BODY as type } from './types';\n/**\n * Sets the body property on initialized particles.\n *\n */\n\nexport default class Body extends Initializer {\n  /**\n   * Constructs a Body initalizer instance.\n   *\n   * @param {string|number|object} body - The content for the particle body, can\n   * be a color or an object (mesh)\n   * @param {?number} w - The width of the particle body\n   * @param {?number} h - The height of the particle body\n   * @return void\n   */\n  constructor(body, w=null, h=null, isEnabled = true) {\n    super(type, isEnabled);\n    /**\n     * @desc The content for the particle body\n     * @type {ArraySpan}\n     */\n\n    this.body = createArraySpan(body);\n    /**\n     * @desc The width of the particle Body\n     * @type {number}\n     */\n\n    this.w = w;\n    /**\n     * @desc The height of the particle Body\n     * @type {number}\n     */\n\n    this.h = h || w;\n  }\n  /**\n   * Sets the particle's initial body.\n   *\n   * @param {Particle} particle - the particle to initialize the property on\n   * @return void\n   */\n\n\n  initialize(particle) {\n    var body = this.body.getValue();\n\n    if (this.w) {\n      particle.body = {\n        width: this.w,\n        height: this.h,\n        body: body\n      };\n    } else {\n      particle.body = body;\n    }\n  }\n  /**\n   * Creates a Body initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @property {number} json.body - The color for the particle body\n   * @property {number} json.width - The width of the particle body\n   * @property {number} json.height - The height of the particle body\n   * @return {Body}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      body,\n      width,\n      height,\n      isEnabled = true\n    } = json;\n    return new Body(body, width, height, isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Cb2R5LmpzIl0sIm5hbWVzIjpbIkluaXRpYWxpemVyIiwiY3JlYXRlQXJyYXlTcGFuIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZIiwidHlwZSIsIkJvZHkiLCJjb25zdHJ1Y3RvciIsImJvZHkiLCJ3IiwiaCIsImlzRW5hYmxlZCIsImluaXRpYWxpemUiLCJwYXJ0aWNsZSIsImdldFZhbHVlIiwid2lkdGgiLCJoZWlnaHQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZUFBeEI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MscUJBQXFCLElBQUlDLElBQWxDLFFBQThDLFNBQTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxJQUFOLFNBQW1CSixXQUFuQixDQUErQjtBQUM1QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxJQUFELEVBQU9DLENBQVAsRUFBVUMsQ0FBVixFQUFhQyxTQUFTLEdBQUcsSUFBekIsRUFBK0I7QUFDeEMsVUFBTU4sSUFBTixFQUFZTSxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0gsSUFBTCxHQUFZTCxlQUFlLENBQUNLLElBQUQsQ0FBM0I7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxDQUFMLEdBQVNBLENBQUMsSUFBSUQsQ0FBZDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkIsUUFBSUwsSUFBSSxHQUFHLEtBQUtBLElBQUwsQ0FBVU0sUUFBVixFQUFYOztBQUVBLFFBQUksS0FBS0wsQ0FBVCxFQUFZO0FBQ1ZJLE1BQUFBLFFBQVEsQ0FBQ0wsSUFBVCxHQUFnQjtBQUNkTyxRQUFBQSxLQUFLLEVBQUUsS0FBS04sQ0FERTtBQUVkTyxRQUFBQSxNQUFNLEVBQUUsS0FBS04sQ0FGQztBQUdkRixRQUFBQSxJQUFJLEVBQUVBO0FBSFEsT0FBaEI7QUFLRCxLQU5ELE1BTU87QUFDTEssTUFBQUEsUUFBUSxDQUFDTCxJQUFULEdBQWdCQSxJQUFoQjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNpQixTQUFSUyxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVWLE1BQUFBLElBQUY7QUFBUU8sTUFBQUEsS0FBUjtBQUFlQyxNQUFBQSxNQUFmO0FBQXVCTCxNQUFBQSxTQUFTLEdBQUc7QUFBbkMsUUFBNENPLElBQWxEO0FBRUEsV0FBTyxJQUFJWixJQUFKLENBQVNFLElBQVQsRUFBZU8sS0FBZixFQUFzQkMsTUFBdEIsRUFBOEJMLFNBQTlCLENBQVA7QUFDRDs7QUFqRTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX0JPRFkgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuLyoqXG4gKiBTZXRzIHRoZSBib2R5IHByb3BlcnR5IG9uIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvZHkgZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgQm9keSBpbml0YWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ8b2JqZWN0fSBib2R5IC0gVGhlIGNvbnRlbnQgZm9yIHRoZSBwYXJ0aWNsZSBib2R5LCBjYW5cbiAgICogYmUgYSBjb2xvciBvciBhbiBvYmplY3QgKG1lc2gpXG4gICAqIEBwYXJhbSB7P251bWJlcn0gdyAtIFRoZSB3aWR0aCBvZiB0aGUgcGFydGljbGUgYm9keVxuICAgKiBAcGFyYW0gez9udW1iZXJ9IGggLSBUaGUgaGVpZ2h0IG9mIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoYm9keSwgdywgaCwgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY29udGVudCBmb3IgdGhlIHBhcnRpY2xlIGJvZHlcbiAgICAgKiBAdHlwZSB7QXJyYXlTcGFufVxuICAgICAqL1xuICAgIHRoaXMuYm9keSA9IGNyZWF0ZUFycmF5U3Bhbihib2R5KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB3aWR0aCBvZiB0aGUgcGFydGljbGUgQm9keVxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy53ID0gdztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIEJvZHlcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuaCA9IGggfHwgdztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGluaXRpYWwgYm9keS5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgdmFyIGJvZHkgPSB0aGlzLmJvZHkuZ2V0VmFsdWUoKTtcblxuICAgIGlmICh0aGlzLncpIHtcbiAgICAgIHBhcnRpY2xlLmJvZHkgPSB7XG4gICAgICAgIHdpZHRoOiB0aGlzLncsXG4gICAgICAgIGhlaWdodDogdGhpcy5oLFxuICAgICAgICBib2R5OiBib2R5LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFydGljbGUuYm9keSA9IGJvZHk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBCb2R5IGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmJvZHkgLSBUaGUgY29sb3IgZm9yIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLndpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIGJvZHlcbiAgICogQHJldHVybiB7Qm9keX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBib2R5LCB3aWR0aCwgaGVpZ2h0LCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBCb2R5KGJvZHksIHdpZHRoLCBoZWlnaHQsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/BodySprite.js",
    "content": "import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { DEFAULT_JSON_MATERIAL_PROPERTIES, DEFAULT_MATERIAL_PROPERTIES, SUPPORTED_MATERIAL_BLENDING_MODES } from './constants';\nimport Initializer from './Initializer';\nimport { INITIALIZER_TYPE_BODY_SPRITE as type } from './types';\nimport { withDefaults } from '../utils';\n/**\n * Sets the body property to be a THREE.Sprite on initialized particles.\n *\n * NOTE The texture map MUST be set on the SpriteMaterial in the TextureLoader.load\n * callback. Not doing so will cause WebGL buffer errors.\n */\n\nexport default class BodySprite extends Initializer {\n  /**\n   * Constructs a BodySprite initializer.\n   *\n   * @param {object} THREE - The Web GL API we are using eg., THREE\n   * @param {string} texture - The sprite texture\n   * @param {object} materialProperties - The sprite material properties\n   * @throws {Error} If the TextureLoader fails to load the supplied texture\n   * @return void\n   */\n  constructor(THREE, texture, materialProperties = DEFAULT_MATERIAL_PROPERTIES, isEnabled = true) {\n    super(type, isEnabled);\n    const {\n      Sprite,\n      SpriteMaterial,\n      TextureLoader\n    } = THREE;\n    /**\n     * @desc The material properties for this object's SpriteMaterial\n     * NOTE This is required for testing purposes\n     * @type {object}\n     */\n\n    this.materialProperties = withDefaults(DEFAULT_MATERIAL_PROPERTIES, materialProperties);\n    new TextureLoader().load(texture, map => {\n      /**\n       * @desc The texture for the THREE.SpriteMaterial map.\n       * @type {Texture}\n       */\n      this.texture = map;\n      /**\n       * @desc THREE.SpriteMaterial instance.\n       * @type {SpriteMaterial}\n       */\n\n      this.material = new SpriteMaterial(_objectSpread(_objectSpread({}, {\n        map\n      }), this.materialProperties));\n      /**\n       * @desc THREE.Sprite instance.\n       * @type {Sprite}\n       */\n\n      this.sprite = new Sprite(this.material);\n    }, undefined, error => {\n      throw new Error(error);\n    });\n  }\n  /**\n   * Sets the particle body to the sprite.\n   *\n   * @param {Particle} particle - The particle to set the body of\n   * @return void\n   */\n\n\n  initialize(particle) {\n    particle.body = this.sprite;\n  }\n  /**\n   * Creates a BodySprite initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from\n   * @param {object} THREE - The Web GL API we are using eg., THREE\n   * @param {string} json.texture - The sprite texture\n   * @param {object} json.materialProperties - The sprite material properties\n   * @return {BodySprite}\n   */\n\n\n  static fromJSON(json, THREE) {\n    const {\n      texture,\n      materialProperties = DEFAULT_JSON_MATERIAL_PROPERTIES,\n      isEnabled = true\n    } = json;\n\n    const ensureMappedBlendingMode = properties => {\n      const {\n        blending\n      } = properties;\n      return _objectSpread(_objectSpread({}, properties), {}, {\n        blending: blending ? SUPPORTED_MATERIAL_BLENDING_MODES[blending] : SUPPORTED_MATERIAL_BLENDING_MODES[DEFAULT_JSON_MATERIAL_PROPERTIES.blending]\n      });\n    };\n\n    return new BodySprite(THREE, texture, withDefaults(DEFAULT_JSON_MATERIAL_PROPERTIES, ensureMappedBlendingMode(materialProperties)), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Cb2R5U3ByaXRlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTIiwiREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTIiwiU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTIiwiSW5pdGlhbGl6ZXIiLCJJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFIiwidHlwZSIsIndpdGhEZWZhdWx0cyIsIkJvZHlTcHJpdGUiLCJjb25zdHJ1Y3RvciIsIlRIUkVFIiwidGV4dHVyZSIsIm1hdGVyaWFsUHJvcGVydGllcyIsImlzRW5hYmxlZCIsIlNwcml0ZSIsIlNwcml0ZU1hdGVyaWFsIiwiVGV4dHVyZUxvYWRlciIsImxvYWQiLCJtYXAiLCJtYXRlcmlhbCIsInNwcml0ZSIsInVuZGVmaW5lZCIsImVycm9yIiwiRXJyb3IiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJib2R5IiwiZnJvbUpTT04iLCJqc29uIiwiZW5zdXJlTWFwcGVkQmxlbmRpbmdNb2RlIiwicHJvcGVydGllcyIsImJsZW5kaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUNFQSxnQ0FERixFQUVFQywyQkFGRixFQUdFQyxpQ0FIRixRQUlPLGFBSlA7QUFNQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MsNEJBQTRCLElBQUlDLElBQXpDLFFBQXFELFNBQXJEO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixVQUE3QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFVBQU4sU0FBeUJKLFdBQXpCLENBQXFDO0FBQ2xEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQ1RDLEtBRFMsRUFFVEMsT0FGUyxFQUdUQyxrQkFBa0IsR0FBR1YsMkJBSFosRUFJVFcsU0FBUyxHQUFHLElBSkgsRUFLVDtBQUNBLFVBQU1QLElBQU4sRUFBWU8sU0FBWjtBQUVBLFVBQU07QUFBRUMsTUFBQUEsTUFBRjtBQUFVQyxNQUFBQSxjQUFWO0FBQTBCQyxNQUFBQTtBQUExQixRQUE0Q04sS0FBbEQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUNJLFNBQUtFLGtCQUFMLEdBQTBCTCxZQUFZLENBQ3BDTCwyQkFEb0MsRUFFcENVLGtCQUZvQyxDQUF0QztBQUtBLFFBQUlJLGFBQUosR0FBb0JDLElBQXBCLENBQ0VOLE9BREYsRUFFRU8sR0FBRyxJQUFJO0FBQ0w7QUFDUjtBQUNBO0FBQ0E7QUFDUSxXQUFLUCxPQUFMLEdBQWVPLEdBQWY7QUFFQTtBQUNSO0FBQ0E7QUFDQTs7QUFDUSxXQUFLQyxRQUFMLEdBQWdCLElBQUlKLGNBQUosaUNBQ1g7QUFBRUcsUUFBQUE7QUFBRixPQURXLEdBRVgsS0FBS04sa0JBRk0sRUFBaEI7QUFLQTtBQUNSO0FBQ0E7QUFDQTs7QUFDUSxXQUFLUSxNQUFMLEdBQWMsSUFBSU4sTUFBSixDQUFXLEtBQUtLLFFBQWhCLENBQWQ7QUFDRCxLQXZCSCxFQXdCRUUsU0F4QkYsRUF5QkVDLEtBQUssSUFBSTtBQUNQLFlBQU0sSUFBSUMsS0FBSixDQUFVRCxLQUFWLENBQU47QUFDRCxLQTNCSDtBQTZCRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VFLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLElBQVQsR0FBZ0IsS0FBS04sTUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJPLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPbEIsS0FBUCxFQUFjO0FBQzNCLFVBQU07QUFDSkMsTUFBQUEsT0FESTtBQUVKQyxNQUFBQSxrQkFBa0IsR0FBR1gsZ0NBRmpCO0FBR0pZLE1BQUFBLFNBQVMsR0FBRztBQUhSLFFBSUZlLElBSko7O0FBTUEsVUFBTUMsd0JBQXdCLEdBQUdDLFVBQVUsSUFBSTtBQUM3QyxZQUFNO0FBQUVDLFFBQUFBO0FBQUYsVUFBZUQsVUFBckI7QUFFQSw2Q0FDS0EsVUFETDtBQUVFQyxRQUFBQSxRQUFRLEVBQUVBLFFBQVEsR0FDZDVCLGlDQUFpQyxDQUFDNEIsUUFBRCxDQURuQixHQUVkNUIsaUNBQWlDLENBQ2pDRixnQ0FBZ0MsQ0FBQzhCLFFBREE7QUFKdkM7QUFRRCxLQVhEOztBQWFBLFdBQU8sSUFBSXZCLFVBQUosQ0FDTEUsS0FESyxFQUVMQyxPQUZLLEVBR0xKLFlBQVksQ0FDVk4sZ0NBRFUsRUFFVjRCLHdCQUF3QixDQUFDakIsa0JBQUQsQ0FGZCxDQUhQLEVBT0xDLFNBUEssQ0FBUDtBQVNEOztBQTdHaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVMsXG59IGZyb20gJy4vY29uc3RhbnRzJztcblxuaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9CT0RZX1NQUklURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyB3aXRoRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYm9keSBwcm9wZXJ0eSB0byBiZSBhIFRIUkVFLlNwcml0ZSBvbiBpbml0aWFsaXplZCBwYXJ0aWNsZXMuXG4gKlxuICogTk9URSBUaGUgdGV4dHVyZSBtYXAgTVVTVCBiZSBzZXQgb24gdGhlIFNwcml0ZU1hdGVyaWFsIGluIHRoZSBUZXh0dXJlTG9hZGVyLmxvYWRcbiAqIGNhbGxiYWNrLiBOb3QgZG9pbmcgc28gd2lsbCBjYXVzZSBXZWJHTCBidWZmZXIgZXJyb3JzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCb2R5U3ByaXRlIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIEJvZHlTcHJpdGUgaW5pdGlhbGl6ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQVBJIHdlIGFyZSB1c2luZyBlZy4sIFRIUkVFXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlIC0gVGhlIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBtYXRlcmlhbFByb3BlcnRpZXMgLSBUaGUgc3ByaXRlIG1hdGVyaWFsIHByb3BlcnRpZXNcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBUZXh0dXJlTG9hZGVyIGZhaWxzIHRvIGxvYWQgdGhlIHN1cHBsaWVkIHRleHR1cmVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBUSFJFRSxcbiAgICB0ZXh0dXJlLFxuICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgICBpc0VuYWJsZWQgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICBjb25zdCB7IFNwcml0ZSwgU3ByaXRlTWF0ZXJpYWwsIFRleHR1cmVMb2FkZXIgfSA9IFRIUkVFO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIG1hdGVyaWFsIHByb3BlcnRpZXMgZm9yIHRoaXMgb2JqZWN0J3MgU3ByaXRlTWF0ZXJpYWxcbiAgICAgKiBOT1RFIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgICAqL1xuICAgIHRoaXMubWF0ZXJpYWxQcm9wZXJ0aWVzID0gd2l0aERlZmF1bHRzKFxuICAgICAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgbWF0ZXJpYWxQcm9wZXJ0aWVzXG4gICAgKTtcblxuICAgIG5ldyBUZXh0dXJlTG9hZGVyKCkubG9hZChcbiAgICAgIHRleHR1cmUsXG4gICAgICBtYXAgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2MgVGhlIHRleHR1cmUgZm9yIHRoZSBUSFJFRS5TcHJpdGVNYXRlcmlhbCBtYXAuXG4gICAgICAgICAqIEB0eXBlIHtUZXh0dXJlfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50ZXh0dXJlID0gbWFwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGVNYXRlcmlhbCBpbnN0YW5jZS5cbiAgICAgICAgICogQHR5cGUge1Nwcml0ZU1hdGVyaWFsfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tYXRlcmlhbCA9IG5ldyBTcHJpdGVNYXRlcmlhbCh7XG4gICAgICAgICAgLi4ueyBtYXAgfSxcbiAgICAgICAgICAuLi50aGlzLm1hdGVyaWFsUHJvcGVydGllcyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjIFRIUkVFLlNwcml0ZSBpbnN0YW5jZS5cbiAgICAgICAgICogQHR5cGUge1Nwcml0ZX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc3ByaXRlID0gbmV3IFNwcml0ZSh0aGlzLm1hdGVyaWFsKTtcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSBib2R5IHRvIHRoZSBzcHJpdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIHRvIHNldCB0aGUgYm9keSBvZlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXRpYWxpemUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS5ib2R5ID0gdGhpcy5zcHJpdGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEJvZHlTcHJpdGUgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbVxuICAgKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFQSSB3ZSBhcmUgdXNpbmcgZWcuLCBUSFJFRVxuICAgKiBAcGFyYW0ge3N0cmluZ30ganNvbi50ZXh0dXJlIC0gVGhlIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uLm1hdGVyaWFsUHJvcGVydGllcyAtIFRoZSBzcHJpdGUgbWF0ZXJpYWwgcHJvcGVydGllc1xuICAgKiBAcmV0dXJuIHtCb2R5U3ByaXRlfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIFRIUkVFKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGV4dHVyZSxcbiAgICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgaXNFbmFibGVkID0gdHJ1ZSxcbiAgICB9ID0ganNvbjtcblxuICAgIGNvbnN0IGVuc3VyZU1hcHBlZEJsZW5kaW5nTW9kZSA9IHByb3BlcnRpZXMgPT4ge1xuICAgICAgY29uc3QgeyBibGVuZGluZyB9ID0gcHJvcGVydGllcztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgYmxlbmRpbmc6IGJsZW5kaW5nXG4gICAgICAgICAgPyBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbYmxlbmRpbmddXG4gICAgICAgICAgOiBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbXG4gICAgICAgICAgICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUy5ibGVuZGluZ1xuICAgICAgICAgIF0sXG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEJvZHlTcHJpdGUoXG4gICAgICBUSFJFRSxcbiAgICAgIHRleHR1cmUsXG4gICAgICB3aXRoRGVmYXVsdHMoXG4gICAgICAgIERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgICBlbnN1cmVNYXBwZWRCbGVuZGluZ01vZGUobWF0ZXJpYWxQcm9wZXJ0aWVzKVxuICAgICAgKSxcbiAgICAgIGlzRW5hYmxlZFxuICAgICk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Initializer.js",
    "content": "import { INITIALIZER_TYPE_ABSTRACT } from './types';\n/**\n * The base Emitter / Particle property class.\n *\n * @abstract\n */\n\nexport default class Initializer {\n  /**\n   * Constructs an Initializer instance.\n   *\n   * @param {string} [type=INITIALIZER_TYPE_ABSTRACT] - The intiializer type\n   * @param {boolean} [isEnabled=true] - Determines if the initializer should be enabled or not\n    * @return void\n   */\n  constructor(type = INITIALIZER_TYPE_ABSTRACT, isEnabled = true) {\n    this.type = type;\n    this.isEnabled = isEnabled;\n  }\n  /**\n   * Initializes the property on the emitter or particle.\n   *\n   * @see {@link '../emitter/emitter.js'} setupParticle\n   * @param {Emitter} emitter - the emitter to initialize the property on\n   * @param {Particle} particle - the particle to intiialize the property on\n   * @return void\n   */\n\n\n  init(emitter, particle) {\n    if (!this.isEnabled) {\n      return;\n    }\n\n    if (particle) {\n      this.initialize(particle);\n      particle.hasBeenInitialized = true;\n    } else {\n      this.initialize(emitter);\n      emitter.hasBeenInitialized = true;\n    }\n  }\n  /**\n   * @abstract\n   */\n\n\n  reset() {}\n  /**\n   * Place custom property initialization code in this method in the subclass.\n   *\n   * @param {object} target - either an Emitter or a Particle\n   * @abstract\n   */\n\n\n  initialize(target) {} // eslint-disable-line\n\n  /**\n   * Determines if the initializer requires a Web GL API to be provided to its constructor.\n   * If true, the WebGL API will need to be provided as the first argument to the constructor\n   * and fromJSON methods.\n   *\n   * @return {boolean}\n   */\n\n\n  static requiresWebGlApi() {\n    return false;\n  }\n  /**\n   * Returns a new instance of the initializer from the JSON object passed.\n   *\n   * @abstract\n   * @param {object} json - JSON object containing the required constructor properties\n   * @return {Behaviour}\n   */\n\n\n  static fromJSON(json) {} // eslint-disable-line\n\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Jbml0aWFsaXplci5qcyJdLCJuYW1lcyI6WyJJTklUSUFMSVpFUl9UWVBFX0FCU1RSQUNUIiwiSW5pdGlhbGl6ZXIiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJpc0VuYWJsZWQiLCJpbml0IiwiZW1pdHRlciIsInBhcnRpY2xlIiwiaW5pdGlhbGl6ZSIsImhhc0JlZW5Jbml0aWFsaXplZCIsInJlc2V0IiwidGFyZ2V0IiwicmVxdWlyZXNXZWJHbEFwaSIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EseUJBQVQsUUFBMEMsU0FBMUM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsV0FBTixDQUFrQjtBQUMvQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVFQyxFQUFBQSxXQUFXLENBQUNDLElBQUksR0FBR0gseUJBQVIsRUFBbUNJLFNBQVMsR0FBRyxJQUEvQyxFQUFxRDtBQUM5RCxTQUFLRCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLQyxTQUFMLEdBQWlCQSxTQUFqQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLElBQUksQ0FBQ0MsT0FBRCxFQUFVQyxRQUFWLEVBQW9CO0FBQ3RCLFFBQUksQ0FBQyxLQUFLSCxTQUFWLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBRUQsUUFBSUcsUUFBSixFQUFjO0FBQ1osV0FBS0MsVUFBTCxDQUFnQkQsUUFBaEI7QUFDQUEsTUFBQUEsUUFBUSxDQUFDRSxrQkFBVCxHQUE4QixJQUE5QjtBQUNELEtBSEQsTUFHTztBQUNMLFdBQUtELFVBQUwsQ0FBZ0JGLE9BQWhCO0FBQ0FBLE1BQUFBLE9BQU8sQ0FBQ0csa0JBQVIsR0FBNkIsSUFBN0I7QUFDRDtBQUNGO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRUMsRUFBQUEsS0FBSyxHQUFHLENBQUU7QUFFVjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRixFQUFBQSxVQUFVLENBQUNHLE1BQUQsRUFBUyxDQUFFLENBL0NVLENBK0NUOztBQUV0QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ3lCLFNBQWhCQyxnQkFBZ0IsR0FBRztBQUN4QixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkMsUUFBUSxDQUFDQyxJQUFELEVBQU8sQ0FBRSxDQW5FTyxDQW1FTjs7O0FBbkVNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9BQlNUUkFDVCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIEVtaXR0ZXIgLyBQYXJ0aWNsZSBwcm9wZXJ0eSBjbGFzcy5cbiAqXG4gKiBAYWJzdHJhY3RcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBJbml0aWFsaXplciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlPUlOSVRJQUxJWkVSX1RZUEVfQUJTVFJBQ1RdIC0gVGhlIGludGlpYWxpemVyIHR5cGVcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgaW5pdGlhbGl6ZXIgc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG5cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0eXBlID0gSU5JVElBTElaRVJfVFlQRV9BQlNUUkFDVCwgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5pc0VuYWJsZWQgPSBpc0VuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHByb3BlcnR5IG9uIHRoZSBlbWl0dGVyIG9yIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAc2VlIHtAbGluayAnLi4vZW1pdHRlci9lbWl0dGVyLmpzJ30gc2V0dXBQYXJ0aWNsZVxuICAgKiBAcGFyYW0ge0VtaXR0ZXJ9IGVtaXR0ZXIgLSB0aGUgZW1pdHRlciB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbnRpaWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXQoZW1pdHRlciwgcGFydGljbGUpIHtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBhcnRpY2xlKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemUocGFydGljbGUpO1xuICAgICAgcGFydGljbGUuaGFzQmVlbkluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsaXplKGVtaXR0ZXIpO1xuICAgICAgZW1pdHRlci5oYXNCZWVuSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIHJlc2V0KCkge31cblxuICAvKipcbiAgICogUGxhY2UgY3VzdG9tIHByb3BlcnR5IGluaXRpYWxpemF0aW9uIGNvZGUgaW4gdGhpcyBtZXRob2QgaW4gdGhlIHN1YmNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gdGFyZ2V0IC0gZWl0aGVyIGFuIEVtaXR0ZXIgb3IgYSBQYXJ0aWNsZVxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIGluaXRpYWxpemUodGFyZ2V0KSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIGluaXRpYWxpemVyIHJlcXVpcmVzIGEgV2ViIEdMIEFQSSB0byBiZSBwcm92aWRlZCB0byBpdHMgY29uc3RydWN0b3IuXG4gICAqIElmIHRydWUsIHRoZSBXZWJHTCBBUEkgd2lsbCBuZWVkIHRvIGJlIHByb3ZpZGVkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JcbiAgICogYW5kIGZyb21KU09OIG1ldGhvZHMuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgcmVxdWlyZXNXZWJHbEFwaSgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgaW5pdGlhbGl6ZXIgZnJvbSB0aGUgSlNPTiBvYmplY3QgcGFzc2VkLlxuICAgKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm4ge0JlaGF2aW91cn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/InitializerUtil.js",
    "content": "import { Euler } from '../core/three/';\nconst particleEuler = new Euler();\nexport default {\n  particleEuler: null,\n\n  /**\n   * Loops through the initializers array and calls each initializer's initialize method\n   * on the supplied particle. This sets the particle's initial properties.\n   *\n   * @see {@link '../emitter/Emitter'} setupParticle\n   * @param {Emitter} emitter - The emitter that has called this method\n   * @param {Particle} particle - The particle that has just been created\n   * @param {array<Initializer>} initializers - All of the emitter's initializers\n   * @return void\n   */\n  initialize: function (emitter, particle, initializers) {\n    let i = initializers.length;\n\n    while (i--) {\n      initializers[i].init(emitter, particle);\n    }\n\n    emitter.bindEmitter && this.bindEmitter(emitter, particle);\n  },\n\n  /**\n   * Ensures that the emitter's position, velocity and accleration are added\n   * to each created particle.\n   *\n   * @param {Emitter} emitter - The emitter that is emitting the particles\n   * @param {Particle} particle - The newly created particle\n   * @return void\n   */\n  bindEmitter: function (emitter, particle) {\n    const {\n      rotation: {\n        x,\n        y,\n        z\n      }\n    } = emitter;\n    particle.position.add(emitter.position);\n    particle.velocity.add(emitter.velocity);\n    particle.acceleration.add(emitter.acceleration);\n    particle.velocity.applyEuler(particleEuler.set(x, y, z));\n  }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Jbml0aWFsaXplclV0aWwuanMiXSwibmFtZXMiOlsiRXVsZXIiLCJwYXJ0aWNsZUV1bGVyIiwiaW5pdGlhbGl6ZSIsImVtaXR0ZXIiLCJwYXJ0aWNsZSIsImluaXRpYWxpemVycyIsImkiLCJsZW5ndGgiLCJpbml0IiwiYmluZEVtaXR0ZXIiLCJyb3RhdGlvbiIsIngiLCJ5IiwieiIsInBvc2l0aW9uIiwiYWRkIiwidmVsb2NpdHkiLCJhY2NlbGVyYXRpb24iLCJhcHBseUV1bGVyIiwic2V0Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxLQUFULFFBQXNCLGdCQUF0QjtBQUVBLE1BQU1DLGFBQWEsR0FBRyxJQUFJRCxLQUFKLEVBQXRCO0FBRUEsZUFBZTtBQUNiQyxFQUFBQSxhQUFhLEVBQUUsSUFERjs7QUFFYjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxVQUFVLEVBQUUsVUFBU0MsT0FBVCxFQUFrQkMsUUFBbEIsRUFBNEJDLFlBQTVCLEVBQTBDO0FBQ3BELFFBQUlDLENBQUMsR0FBR0QsWUFBWSxDQUFDRSxNQUFyQjs7QUFFQSxXQUFPRCxDQUFDLEVBQVIsRUFBWTtBQUNWRCxNQUFBQSxZQUFZLENBQUNDLENBQUQsQ0FBWixDQUFnQkUsSUFBaEIsQ0FBcUJMLE9BQXJCLEVBQThCQyxRQUE5QjtBQUNEOztBQUVERCxJQUFBQSxPQUFPLENBQUNNLFdBQVIsSUFBdUIsS0FBS0EsV0FBTCxDQUFpQk4sT0FBakIsRUFBMEJDLFFBQTFCLENBQXZCO0FBQ0QsR0FwQlk7O0FBc0JiO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxFQUFFLFVBQVNOLE9BQVQsRUFBa0JDLFFBQWxCLEVBQTRCO0FBQ3ZDLFVBQU07QUFDSk0sTUFBQUEsUUFBUSxFQUFFO0FBQUVDLFFBQUFBLENBQUY7QUFBS0MsUUFBQUEsQ0FBTDtBQUFRQyxRQUFBQTtBQUFSO0FBRE4sUUFFRlYsT0FGSjtBQUlBQyxJQUFBQSxRQUFRLENBQUNVLFFBQVQsQ0FBa0JDLEdBQWxCLENBQXNCWixPQUFPLENBQUNXLFFBQTlCO0FBQ0FWLElBQUFBLFFBQVEsQ0FBQ1ksUUFBVCxDQUFrQkQsR0FBbEIsQ0FBc0JaLE9BQU8sQ0FBQ2EsUUFBOUI7QUFDQVosSUFBQUEsUUFBUSxDQUFDYSxZQUFULENBQXNCRixHQUF0QixDQUEwQlosT0FBTyxDQUFDYyxZQUFsQztBQUNBYixJQUFBQSxRQUFRLENBQUNZLFFBQVQsQ0FBa0JFLFVBQWxCLENBQTZCakIsYUFBYSxDQUFDa0IsR0FBZCxDQUFrQlIsQ0FBbEIsRUFBcUJDLENBQXJCLEVBQXdCQyxDQUF4QixDQUE3QjtBQUNEO0FBdkNZLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdWxlciB9IGZyb20gJy4uL2NvcmUvdGhyZWUvJztcblxuY29uc3QgcGFydGljbGVFdWxlciA9IG5ldyBFdWxlcigpO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHBhcnRpY2xlRXVsZXI6IG51bGwsXG4gIC8qKlxuICAgKiBMb29wcyB0aHJvdWdoIHRoZSBpbml0aWFsaXplcnMgYXJyYXkgYW5kIGNhbGxzIGVhY2ggaW5pdGlhbGl6ZXIncyBpbml0aWFsaXplIG1ldGhvZFxuICAgKiBvbiB0aGUgc3VwcGxpZWQgcGFydGljbGUuIFRoaXMgc2V0cyB0aGUgcGFydGljbGUncyBpbml0aWFsIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBzZWUge0BsaW5rICcuLi9lbWl0dGVyL0VtaXR0ZXInfSBzZXR1cFBhcnRpY2xlXG4gICAqIEBwYXJhbSB7RW1pdHRlcn0gZW1pdHRlciAtIFRoZSBlbWl0dGVyIHRoYXQgaGFzIGNhbGxlZCB0aGlzIG1ldGhvZFxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSB0aGF0IGhhcyBqdXN0IGJlZW4gY3JlYXRlZFxuICAgKiBAcGFyYW0ge2FycmF5PEluaXRpYWxpemVyPn0gaW5pdGlhbGl6ZXJzIC0gQWxsIG9mIHRoZSBlbWl0dGVyJ3MgaW5pdGlhbGl6ZXJzXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZW1pdHRlciwgcGFydGljbGUsIGluaXRpYWxpemVycykge1xuICAgIGxldCBpID0gaW5pdGlhbGl6ZXJzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIGluaXRpYWxpemVyc1tpXS5pbml0KGVtaXR0ZXIsIHBhcnRpY2xlKTtcbiAgICB9XG5cbiAgICBlbWl0dGVyLmJpbmRFbWl0dGVyICYmIHRoaXMuYmluZEVtaXR0ZXIoZW1pdHRlciwgcGFydGljbGUpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoYXQgdGhlIGVtaXR0ZXIncyBwb3NpdGlvbiwgdmVsb2NpdHkgYW5kIGFjY2xlcmF0aW9uIGFyZSBhZGRlZFxuICAgKiB0byBlYWNoIGNyZWF0ZWQgcGFydGljbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RW1pdHRlcn0gZW1pdHRlciAtIFRoZSBlbWl0dGVyIHRoYXQgaXMgZW1pdHRpbmcgdGhlIHBhcnRpY2xlc1xuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBuZXdseSBjcmVhdGVkIHBhcnRpY2xlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgYmluZEVtaXR0ZXI6IGZ1bmN0aW9uKGVtaXR0ZXIsIHBhcnRpY2xlKSB7XG4gICAgY29uc3Qge1xuICAgICAgcm90YXRpb246IHsgeCwgeSwgeiB9LFxuICAgIH0gPSBlbWl0dGVyO1xuXG4gICAgcGFydGljbGUucG9zaXRpb24uYWRkKGVtaXR0ZXIucG9zaXRpb24pO1xuICAgIHBhcnRpY2xlLnZlbG9jaXR5LmFkZChlbWl0dGVyLnZlbG9jaXR5KTtcbiAgICBwYXJ0aWNsZS5hY2NlbGVyYXRpb24uYWRkKGVtaXR0ZXIuYWNjZWxlcmF0aW9uKTtcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS5hcHBseUV1bGVyKHBhcnRpY2xlRXVsZXIuc2V0KHgsIHksIHopKTtcbiAgfSxcbn07XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Life.js",
    "content": "import Initializer from './Initializer';\nimport { createSpan } from '../math';\nimport { INITIALIZER_TYPE_LIFE as type } from './types';\n/**\n * Sets the life property on initialized particles.\n *\n */\n\nexport default class Life extends Initializer {\n  /**\n   * Constructs a Life property instance.\n   *\n   * @param {number} min - The minimum life\n   * @param {number} max - The maximum life\n   * @param {boolean} [center] - Determines whether to average the life value\n   * @param {boolean} [isEnabled=true] - Determines if the initializer should be enabled or not\n   * @return void\n   */\n  constructor(min, max, center, isEnabled = true) {\n    super(type, isEnabled);\n    /**\n     * @desc The life span of the particle.\n     * @type {Span}\n     */\n\n    this.lifePan = createSpan(min, max, center);\n  }\n  /**\n   * Sets the particle's initial life.\n   *\n   * @param {Particle} particle - the particle to initialize the property on\n   * @return void\n   */\n\n\n  initialize(particle) {\n    if (this.lifePan.a == Infinity || this.lifePan.a == 'infi') {\n      particle.life = Infinity;\n    } else {\n      particle.life = this.lifePan.getValue();\n    }\n  }\n  /**\n   * Creates a Life initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @param {number} json.min - The minimum life time\n   * @param {number} json.max - The maximum life time\n   * @param {number} json.center - The center of the life time\n   * @param {boolean} [json.isEnabled=true] - Determines if the initializer should be enabled or not\n   * @return {Life}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      min,\n      max,\n      center = false,\n      isEnabled = true\n    } = json;\n    return new Life(min, max, center, isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9MaWZlLmpzIl0sIm5hbWVzIjpbIkluaXRpYWxpemVyIiwiY3JlYXRlU3BhbiIsIklOSVRJQUxJWkVSX1RZUEVfTElGRSIsInR5cGUiLCJMaWZlIiwiY29uc3RydWN0b3IiLCJtaW4iLCJtYXgiLCJjZW50ZXIiLCJpc0VuYWJsZWQiLCJsaWZlUGFuIiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwiYSIsIkluZmluaXR5IiwibGlmZSIsImdldFZhbHVlIiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixTQUEzQjtBQUNBLFNBQVNDLHFCQUFxQixJQUFJQyxJQUFsQyxRQUE4QyxTQUE5QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsSUFBTixTQUFtQkosV0FBbkIsQ0FBK0I7QUFDNUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VLLEVBQUFBLFdBQVcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLE1BQVgsRUFBbUJDLFNBQVMsR0FBRyxJQUEvQixFQUFxQztBQUM5QyxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxPQUFMLEdBQWVULFVBQVUsQ0FBQ0ssR0FBRCxFQUFNQyxHQUFOLEVBQVdDLE1BQVgsQ0FBekI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CLFFBQUksS0FBS0YsT0FBTCxDQUFhRyxDQUFiLElBQWtCQyxRQUFsQixJQUE4QixLQUFLSixPQUFMLENBQWFHLENBQWIsSUFBa0IsTUFBcEQsRUFBNEQ7QUFDMURELE1BQUFBLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQkQsUUFBaEI7QUFDRCxLQUZELE1BRU87QUFDTEYsTUFBQUEsUUFBUSxDQUFDRyxJQUFULEdBQWdCLEtBQUtMLE9BQUwsQ0FBYU0sUUFBYixFQUFoQjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJDLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRVosTUFBQUEsR0FBRjtBQUFPQyxNQUFBQSxHQUFQO0FBQVlDLE1BQUFBLE1BQU0sR0FBRyxLQUFyQjtBQUE0QkMsTUFBQUEsU0FBUyxHQUFHO0FBQXhDLFFBQWlEUyxJQUF2RDtBQUVBLFdBQU8sSUFBSWQsSUFBSixDQUFTRSxHQUFULEVBQWNDLEdBQWQsRUFBbUJDLE1BQW5CLEVBQTJCQyxTQUEzQixDQUFQO0FBQ0Q7O0FBaEQyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IGNyZWF0ZVNwYW4gfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfTElGRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgbGlmZSBwcm9wZXJ0eSBvbiBpbml0aWFsaXplZCBwYXJ0aWNsZXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaWZlIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIExpZmUgcHJvcGVydHkgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtaW4gLSBUaGUgbWluaW11bSBsaWZlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXggLSBUaGUgbWF4aW11bSBsaWZlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NlbnRlcl0gLSBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYXZlcmFnZSB0aGUgbGlmZSB2YWx1ZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBpbml0aWFsaXplciBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtaW4sIG1heCwgY2VudGVyLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBsaWZlIHNwYW4gb2YgdGhlIHBhcnRpY2xlLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMubGlmZVBhbiA9IGNyZWF0ZVNwYW4obWluLCBtYXgsIGNlbnRlcik7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFydGljbGUncyBpbml0aWFsIGxpZmUuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gdGhlIHBhcnRpY2xlIHRvIGluaXRpYWxpemUgdGhlIHByb3BlcnR5IG9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIGlmICh0aGlzLmxpZmVQYW4uYSA9PSBJbmZpbml0eSB8fCB0aGlzLmxpZmVQYW4uYSA9PSAnaW5maScpIHtcbiAgICAgIHBhcnRpY2xlLmxpZmUgPSBJbmZpbml0eTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFydGljbGUubGlmZSA9IHRoaXMubGlmZVBhbi5nZXRWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgTGlmZSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5taW4gLSBUaGUgbWluaW11bSBsaWZlIHRpbWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ubWF4IC0gVGhlIG1heGltdW0gbGlmZSB0aW1lXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLmNlbnRlciAtIFRoZSBjZW50ZXIgb2YgdGhlIGxpZmUgdGltZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtqc29uLmlzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGluaXRpYWxpemVyIHNob3VsZCBiZSBlbmFibGVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHtMaWZlfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IG1pbiwgbWF4LCBjZW50ZXIgPSBmYWxzZSwgaXNFbmFibGVkID0gdHJ1ZSB9ID0ganNvbjtcblxuICAgIHJldHVybiBuZXcgTGlmZShtaW4sIG1heCwgY2VudGVyLCBpc0VuYWJsZWQpO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Mass.js",
    "content": "import Initializer from './Initializer';\nimport { createSpan } from '../math';\nimport { INITIALIZER_TYPE_MASS as type } from './types';\n/**\n * Sets the mass property on initialized particles.\n *\n */\n\nexport default class Mass extends Initializer {\n  /**\n   * Constructs a Mass initializer instance.\n   *\n   * @param {number} min - The minumum mass for the particle\n   * @param {number} max - The maximum mass for the particle\n   * @param {boolean} [center] - Determines whether to average the mass value\n   * @return void\n   */\n  constructor(min, max, center = false, isEnabled = true) {\n    super(type, isEnabled);\n    /**\n     * @desc The mass span which is used to set the particle mass value.\n     * @type {Span}\n     */\n\n    this.massPan = createSpan(min, max, center);\n  }\n  /**\n   * Sets the particle's initial mass.\n   *\n   * @param {Particle} particle - the particle to initialize the property on\n   * @return void\n   */\n\n\n  initialize(particle) {\n    particle.mass = this.massPan.getValue();\n  }\n  /**\n   * Creates a Mass initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @property {number} json.min - The minimum mass\n   * @property {number} json.max - The maximum mass\n   * @property {number} json.center - The center of the mass\n   * @return {Mass}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      min,\n      max,\n      center = false,\n      isEnabled = true\n    } = json;\n    return new Mass(min, max, center, isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9NYXNzLmpzIl0sIm5hbWVzIjpbIkluaXRpYWxpemVyIiwiY3JlYXRlU3BhbiIsIklOSVRJQUxJWkVSX1RZUEVfTUFTUyIsInR5cGUiLCJNYXNzIiwiY29uc3RydWN0b3IiLCJtaW4iLCJtYXgiLCJjZW50ZXIiLCJpc0VuYWJsZWQiLCJtYXNzUGFuIiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwibWFzcyIsImdldFZhbHVlIiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixTQUEzQjtBQUNBLFNBQVNDLHFCQUFxQixJQUFJQyxJQUFsQyxRQUE4QyxTQUE5QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsSUFBTixTQUFtQkosV0FBbkIsQ0FBK0I7QUFDNUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxNQUFNLEdBQUcsS0FBcEIsRUFBMkJDLFNBQVMsR0FBRyxJQUF2QyxFQUE2QztBQUN0RCxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxPQUFMLEdBQWVULFVBQVUsQ0FBQ0ssR0FBRCxFQUFNQyxHQUFOLEVBQVdDLE1BQVgsQ0FBekI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLElBQVQsR0FBZ0IsS0FBS0gsT0FBTCxDQUFhSSxRQUFiLEVBQWhCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNpQixTQUFSQyxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVWLE1BQUFBLEdBQUY7QUFBT0MsTUFBQUEsR0FBUDtBQUFZQyxNQUFBQSxNQUFNLEdBQUcsS0FBckI7QUFBNEJDLE1BQUFBLFNBQVMsR0FBRztBQUF4QyxRQUFpRE8sSUFBdkQ7QUFFQSxXQUFPLElBQUlaLElBQUosQ0FBU0UsR0FBVCxFQUFjQyxHQUFkLEVBQW1CQyxNQUFuQixFQUEyQkMsU0FBM0IsQ0FBUDtBQUNEOztBQTFDMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSW5pdGlhbGl6ZXIgZnJvbSAnLi9Jbml0aWFsaXplcic7XG5pbXBvcnQgeyBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX01BU1MgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIG1hc3MgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFzcyBleHRlbmRzIEluaXRpYWxpemVyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBNYXNzIGluaXRpYWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWluIC0gVGhlIG1pbnVtdW0gbWFzcyBmb3IgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXggLSBUaGUgbWF4aW11bSBtYXNzIGZvciB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtib29sZWFufSBbY2VudGVyXSAtIERldGVybWluZXMgd2hldGhlciB0byBhdmVyYWdlIHRoZSBtYXNzIHZhbHVlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IobWluLCBtYXgsIGNlbnRlciA9IGZhbHNlLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBtYXNzIHNwYW4gd2hpY2ggaXMgdXNlZCB0byBzZXQgdGhlIHBhcnRpY2xlIG1hc3MgdmFsdWUuXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy5tYXNzUGFuID0gY3JlYXRlU3BhbihtaW4sIG1heCwgY2VudGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGluaXRpYWwgbWFzcy5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgcGFydGljbGUubWFzcyA9IHRoaXMubWFzc1Bhbi5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBNYXNzIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLm1pbiAtIFRoZSBtaW5pbXVtIG1hc3NcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ubWF4IC0gVGhlIG1heGltdW0gbWFzc1xuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5jZW50ZXIgLSBUaGUgY2VudGVyIG9mIHRoZSBtYXNzXG4gICAqIEByZXR1cm4ge01hc3N9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgbWluLCBtYXgsIGNlbnRlciA9IGZhbHNlLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBNYXNzKG1pbiwgbWF4LCBjZW50ZXIsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Position.js",
    "content": "import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nconst _excluded = [\"zoneType\"];\nimport * as Zone from '../zone';\nimport Initializer from './Initializer';\nimport { SUPPORTED_JSON_ZONE_TYPES } from '../core/constants';\nimport { INITIALIZER_TYPE_POSITION as type } from './types';\n/**\n * Sets the starting position property for initialized particles.\n * This is derived from a zone randomly chosen from those supplied to the constructor.\n *\n */\n\nexport default class Position extends Initializer {\n  /**\n   * Constructs a Position initializer instance.\n   *\n   * @param {Zone|array<Zone>}\n   * @return void\n   */\n  constructor() {\n    super(type);\n    this.reset.apply(this, arguments);\n  }\n  /**\n   * Resets the initializer properties.\n   * Clears all previously set zones and resets the zones according to args passed.\n   *\n   * @param {Zone|array<Zone>}\n   * @return void\n   */\n\n\n  reset() {\n    if (!this.zones) {\n      this.zones = [];\n    } else {\n      this.zones.length = 0;\n    }\n    /**\n     * @desc The zones to use as bounds for calculating the particle's starting position.\n     * @type {array<Zone>}\n     */\n\n\n    this.zones = this.zones.concat(Array.prototype.slice.call(arguments));\n  }\n  /**\n   * Adds a zone or zones to this.zones.\n   *\n   * @param {Zone|array<Zone>}\n   * @return void\n   */\n\n\n  addZone() {\n    this.zones = this.zones.concat(Array.prototype.slice.call(arguments));\n  }\n  /**\n   * Creates a Position initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @param {string} json.zoneType - The type of zone to use for initial position\n   * @return {Position}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      zoneType\n    } = json,\n          params = _objectWithoutProperties(json, _excluded);\n\n    if (!SUPPORTED_JSON_ZONE_TYPES.includes(zoneType)) {\n      throw new Error(`The zone type ${zoneType} is invalid or not yet supported`);\n    }\n\n    return new Position(new Zone[zoneType](...Object.values(params)));\n  }\n\n}\n/**\n * Sets the particle's initial position.\n *\n * @param {Particle} particle - the particle to initialize the property on\n * @return void\n */\n\nPosition.prototype.initialize = function () {\n  let zone;\n  return function (target) {\n    zone = this.zones[Math.random() * this.zones.length >> 0];\n    zone.getPosition();\n    target.position.x = zone.vector.x;\n    target.position.y = zone.vector.y;\n    target.position.z = zone.vector.z;\n  };\n}();\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Qb3NpdGlvbi5qcyJdLCJuYW1lcyI6WyJab25lIiwiSW5pdGlhbGl6ZXIiLCJTVVBQT1JURURfSlNPTl9aT05FX1RZUEVTIiwiSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTiIsInR5cGUiLCJQb3NpdGlvbiIsImNvbnN0cnVjdG9yIiwicmVzZXQiLCJhcHBseSIsImFyZ3VtZW50cyIsInpvbmVzIiwibGVuZ3RoIiwiY29uY2F0IiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsImNhbGwiLCJhZGRab25lIiwiZnJvbUpTT04iLCJqc29uIiwiem9uZVR5cGUiLCJwYXJhbXMiLCJpbmNsdWRlcyIsIkVycm9yIiwiT2JqZWN0IiwidmFsdWVzIiwiaW5pdGlhbGl6ZSIsInpvbmUiLCJ0YXJnZXQiLCJNYXRoIiwicmFuZG9tIiwiZ2V0UG9zaXRpb24iLCJwb3NpdGlvbiIsIngiLCJ2ZWN0b3IiLCJ5IiwieiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEtBQUtBLElBQVosTUFBc0IsU0FBdEI7QUFFQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsbUJBQTFDO0FBQ0EsU0FBU0MseUJBQXlCLElBQUlDLElBQXRDLFFBQWtELFNBQWxEO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFFBQU4sU0FBdUJKLFdBQXZCLENBQW1DO0FBQ2hEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLEdBQUc7QUFDWixVQUFNRixJQUFOO0FBRUEsU0FBS0csS0FBTCxDQUFXQyxLQUFYLENBQWlCLElBQWpCLEVBQXVCQyxTQUF2QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRixFQUFBQSxLQUFLLEdBQUc7QUFDTixRQUFJLENBQUMsS0FBS0csS0FBVixFQUFpQjtBQUNmLFdBQUtBLEtBQUwsR0FBYSxFQUFiO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS0EsS0FBTCxDQUFXQyxNQUFYLEdBQW9CLENBQXBCO0FBQ0Q7QUFFRDtBQUNKO0FBQ0E7QUFDQTs7O0FBQ0ksU0FBS0QsS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV0UsTUFBWCxDQUFrQkMsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJQLFNBQTNCLENBQWxCLENBQWI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VRLEVBQUFBLE9BQU8sR0FBRztBQUNSLFNBQUtQLEtBQUwsR0FBYSxLQUFLQSxLQUFMLENBQVdFLE1BQVgsQ0FBa0JDLEtBQUssQ0FBQ0MsU0FBTixDQUFnQkMsS0FBaEIsQ0FBc0JDLElBQXRCLENBQTJCUCxTQUEzQixDQUFsQixDQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJTLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRUMsTUFBQUE7QUFBRixRQUEwQkQsSUFBaEM7QUFBQSxVQUFxQkUsTUFBckIsNEJBQWdDRixJQUFoQzs7QUFFQSxRQUFJLENBQUNqQix5QkFBeUIsQ0FBQ29CLFFBQTFCLENBQW1DRixRQUFuQyxDQUFMLEVBQW1EO0FBQ2pELFlBQU0sSUFBSUcsS0FBSixDQUNILGlCQUFnQkgsUUFBUyxrQ0FEdEIsQ0FBTjtBQUdEOztBQUVELFdBQU8sSUFBSWYsUUFBSixDQUFhLElBQUlMLElBQUksQ0FBQ29CLFFBQUQsQ0FBUixDQUFtQixHQUFHSSxNQUFNLENBQUNDLE1BQVAsQ0FBY0osTUFBZCxDQUF0QixDQUFiLENBQVA7QUFDRDs7QUE3RCtDO0FBZ0VsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0FoQixRQUFRLENBQUNTLFNBQVQsQ0FBbUJZLFVBQW5CLEdBQWlDLFlBQVc7QUFDMUMsTUFBSUMsSUFBSjtBQUVBLFNBQU8sVUFBU0MsTUFBVCxFQUFpQjtBQUN0QkQsSUFBQUEsSUFBSSxHQUFHLEtBQUtqQixLQUFMLENBQVltQixJQUFJLENBQUNDLE1BQUwsS0FBZ0IsS0FBS3BCLEtBQUwsQ0FBV0MsTUFBNUIsSUFBdUMsQ0FBbEQsQ0FBUDtBQUVBZ0IsSUFBQUEsSUFBSSxDQUFDSSxXQUFMO0FBRUFILElBQUFBLE1BQU0sQ0FBQ0ksUUFBUCxDQUFnQkMsQ0FBaEIsR0FBb0JOLElBQUksQ0FBQ08sTUFBTCxDQUFZRCxDQUFoQztBQUNBTCxJQUFBQSxNQUFNLENBQUNJLFFBQVAsQ0FBZ0JHLENBQWhCLEdBQW9CUixJQUFJLENBQUNPLE1BQUwsQ0FBWUMsQ0FBaEM7QUFDQVAsSUFBQUEsTUFBTSxDQUFDSSxRQUFQLENBQWdCSSxDQUFoQixHQUFvQlQsSUFBSSxDQUFDTyxNQUFMLENBQVlFLENBQWhDO0FBQ0QsR0FSRDtBQVNELENBWitCLEVBQWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgWm9uZSBmcm9tICcuLi96b25lJztcblxuaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgU1VQUE9SVEVEX0pTT05fWk9ORV9UWVBFUyB9IGZyb20gJy4uL2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUE9TSVRJT04gYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIHByb3BlcnR5IGZvciBpbml0aWFsaXplZCBwYXJ0aWNsZXMuXG4gKiBUaGlzIGlzIGRlcml2ZWQgZnJvbSBhIHpvbmUgcmFuZG9tbHkgY2hvc2VuIGZyb20gdGhvc2Ugc3VwcGxpZWQgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9zaXRpb24gZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUG9zaXRpb24gaW5pdGlhbGl6ZXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZXxhcnJheTxab25lPn1cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMucmVzZXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGluaXRpYWxpemVyIHByb3BlcnRpZXMuXG4gICAqIENsZWFycyBhbGwgcHJldmlvdXNseSBzZXQgem9uZXMgYW5kIHJlc2V0cyB0aGUgem9uZXMgYWNjb3JkaW5nIHRvIGFyZ3MgcGFzc2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge1pvbmV8YXJyYXk8Wm9uZT59XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgaWYgKCF0aGlzLnpvbmVzKSB7XG4gICAgICB0aGlzLnpvbmVzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuem9uZXMubGVuZ3RoID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgem9uZXMgdG8gdXNlIGFzIGJvdW5kcyBmb3IgY2FsY3VsYXRpbmcgdGhlIHBhcnRpY2xlJ3Mgc3RhcnRpbmcgcG9zaXRpb24uXG4gICAgICogQHR5cGUge2FycmF5PFpvbmU+fVxuICAgICAqL1xuICAgIHRoaXMuem9uZXMgPSB0aGlzLnpvbmVzLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgem9uZSBvciB6b25lcyB0byB0aGlzLnpvbmVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1pvbmV8YXJyYXk8Wm9uZT59XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgYWRkWm9uZSgpIHtcbiAgICB0aGlzLnpvbmVzID0gdGhpcy56b25lcy5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFBvc2l0aW9uIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqc29uLnpvbmVUeXBlIC0gVGhlIHR5cGUgb2Ygem9uZSB0byB1c2UgZm9yIGluaXRpYWwgcG9zaXRpb25cbiAgICogQHJldHVybiB7UG9zaXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgem9uZVR5cGUsIC4uLnBhcmFtcyB9ID0ganNvbjtcblxuICAgIGlmICghU1VQUE9SVEVEX0pTT05fWk9ORV9UWVBFUy5pbmNsdWRlcyh6b25lVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSB6b25lIHR5cGUgJHt6b25lVHlwZX0gaXMgaW52YWxpZCBvciBub3QgeWV0IHN1cHBvcnRlZGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQb3NpdGlvbihuZXcgWm9uZVt6b25lVHlwZV0oLi4uT2JqZWN0LnZhbHVlcyhwYXJhbXMpKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGluaXRpYWwgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb25cbiAqIEByZXR1cm4gdm9pZFxuICovXG5Qb3NpdGlvbi5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IChmdW5jdGlvbigpIHtcbiAgbGV0IHpvbmU7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldCkge1xuICAgIHpvbmUgPSB0aGlzLnpvbmVzWyhNYXRoLnJhbmRvbSgpICogdGhpcy56b25lcy5sZW5ndGgpID4+IDBdO1xuXG4gICAgem9uZS5nZXRQb3NpdGlvbigpO1xuXG4gICAgdGFyZ2V0LnBvc2l0aW9uLnggPSB6b25lLnZlY3Rvci54O1xuICAgIHRhcmdldC5wb3NpdGlvbi55ID0gem9uZS52ZWN0b3IueTtcbiAgICB0YXJnZXQucG9zaXRpb24ueiA9IHpvbmUudmVjdG9yLno7XG4gIH07XG59KSgpO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Radius.js",
    "content": "import Initializer from './Initializer';\nimport { createSpan } from '../math';\nimport { INITIALIZER_TYPE_RADIUS as type } from './types';\n/**\n * Sets the radius property on initialized particles.\n *\n */\n\nexport default class Radius extends Initializer {\n  /**\n   * Constructs a Radius initializer instance.\n   *\n   * @param {number} width - The width of the particle radius\n   * @param {number} height - The height of the particle radius\n   * @param {boolean} [center=false] - Determines whether to average the radius value\n   * @return void\n   */\n  constructor(width, height, center = false, isEnabled = true) {\n    super(type, isEnabled);\n    /**\n     * @desc The radius span which is used to set the particle radius value.\n     * @type {Span}\n     */\n\n    this.radius = createSpan(width, height, center);\n  }\n  /**\n   * Resets the initializer properties.\n   * Clears all previously set zones and resets the zones according to args passed.\n   *\n   * @param {number} width - The width of the particle radius\n   * @param {number} height - The height of the particle radius\n   * @param {boolean} [center=false] - Determines whether to average the radius value\n   * @return void\n   */\n\n\n  reset(width, height, center = false) {\n    this.radius = createSpan(width, height, center);\n  }\n  /**\n   * Sets the particle's initial radius.\n   *\n   * @param {Particle} particle - the particle to initialize the property on\n   * @return void\n   */\n\n\n  initialize(particle) {\n    particle.radius = this.radius.getValue();\n    particle.transform.oldRadius = particle.radius;\n  }\n  /**\n   * Creates a Radius initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @property {number} json.width - The width of the particle radius\n   * @property {number} json.height - The height of the particle radius\n   * @property {number} json.center - The center of the particle radius\n   * @return {Radius}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      width,\n      height,\n      center = false,\n      isEnabled = true\n    } = json;\n    return new Radius(width, height, center, isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9SYWRpdXMuanMiXSwibmFtZXMiOlsiSW5pdGlhbGl6ZXIiLCJjcmVhdGVTcGFuIiwiSU5JVElBTElaRVJfVFlQRV9SQURJVVMiLCJ0eXBlIiwiUmFkaXVzIiwiY29uc3RydWN0b3IiLCJ3aWR0aCIsImhlaWdodCIsImNlbnRlciIsImlzRW5hYmxlZCIsInJhZGl1cyIsInJlc2V0IiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwiZ2V0VmFsdWUiLCJ0cmFuc2Zvcm0iLCJvbGRSYWRpdXMiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZUFBeEI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLFNBQTNCO0FBQ0EsU0FBU0MsdUJBQXVCLElBQUlDLElBQXBDLFFBQWdELFNBQWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxNQUFOLFNBQXFCSixXQUFyQixDQUFpQztBQUM5QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VLLEVBQUFBLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRQyxNQUFSLEVBQWdCQyxNQUFNLEdBQUcsS0FBekIsRUFBZ0NDLFNBQVMsR0FBRyxJQUE1QyxFQUFrRDtBQUMzRCxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxNQUFMLEdBQWNULFVBQVUsQ0FBQ0ssS0FBRCxFQUFRQyxNQUFSLEVBQWdCQyxNQUFoQixDQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsS0FBSyxDQUFDTCxLQUFELEVBQVFDLE1BQVIsRUFBZ0JDLE1BQU0sR0FBRyxLQUF6QixFQUFnQztBQUNuQyxTQUFLRSxNQUFMLEdBQWNULFVBQVUsQ0FBQ0ssS0FBRCxFQUFRQyxNQUFSLEVBQWdCQyxNQUFoQixDQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUksRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkJBLElBQUFBLFFBQVEsQ0FBQ0gsTUFBVCxHQUFrQixLQUFLQSxNQUFMLENBQVlJLFFBQVosRUFBbEI7QUFDQUQsSUFBQUEsUUFBUSxDQUFDRSxTQUFULENBQW1CQyxTQUFuQixHQUErQkgsUUFBUSxDQUFDSCxNQUF4QztBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUk8sUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFWixNQUFBQSxLQUFGO0FBQVNDLE1BQUFBLE1BQVQ7QUFBaUJDLE1BQUFBLE1BQU0sR0FBRyxLQUExQjtBQUFpQ0MsTUFBQUEsU0FBUyxHQUFHO0FBQTdDLFFBQXNEUyxJQUE1RDtBQUVBLFdBQU8sSUFBSWQsTUFBSixDQUFXRSxLQUFYLEVBQWtCQyxNQUFsQixFQUEwQkMsTUFBMUIsRUFBa0NDLFNBQWxDLENBQVA7QUFDRDs7QUF4RDZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgY3JlYXRlU3BhbiB9IGZyb20gJy4uL21hdGgnO1xuaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9SQURJVVMgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuLyoqXG4gKiBTZXRzIHRoZSByYWRpdXMgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaXVzIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFJhZGl1cyBpbml0aWFsaXplciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBwYXJ0aWNsZSByYWRpdXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIHJhZGl1c1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjZW50ZXI9ZmFsc2VdIC0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGF2ZXJhZ2UgdGhlIHJhZGl1cyB2YWx1ZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHdpZHRoLCBoZWlnaHQsIGNlbnRlciA9IGZhbHNlLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByYWRpdXMgc3BhbiB3aGljaCBpcyB1c2VkIHRvIHNldCB0aGUgcGFydGljbGUgcmFkaXVzIHZhbHVlLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzID0gY3JlYXRlU3Bhbih3aWR0aCwgaGVpZ2h0LCBjZW50ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgaW5pdGlhbGl6ZXIgcHJvcGVydGllcy5cbiAgICogQ2xlYXJzIGFsbCBwcmV2aW91c2x5IHNldCB6b25lcyBhbmQgcmVzZXRzIHRoZSB6b25lcyBhY2NvcmRpbmcgdG8gYXJncyBwYXNzZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgcGFydGljbGUgcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoZSBwYXJ0aWNsZSByYWRpdXNcbiAgICogQHBhcmFtIHtib29sZWFufSBbY2VudGVyPWZhbHNlXSAtIERldGVybWluZXMgd2hldGhlciB0byBhdmVyYWdlIHRoZSByYWRpdXMgdmFsdWVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldCh3aWR0aCwgaGVpZ2h0LCBjZW50ZXIgPSBmYWxzZSkge1xuICAgIHRoaXMucmFkaXVzID0gY3JlYXRlU3Bhbih3aWR0aCwgaGVpZ2h0LCBjZW50ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnRpY2xlJ3MgaW5pdGlhbCByYWRpdXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gdGhlIHBhcnRpY2xlIHRvIGluaXRpYWxpemUgdGhlIHByb3BlcnR5IG9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnJhZGl1cyA9IHRoaXMucmFkaXVzLmdldFZhbHVlKCk7XG4gICAgcGFydGljbGUudHJhbnNmb3JtLm9sZFJhZGl1cyA9IHBhcnRpY2xlLnJhZGl1cztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUmFkaXVzIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLndpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBwYXJ0aWNsZSByYWRpdXNcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24uaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgcGFydGljbGUgcmFkaXVzXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmNlbnRlciAtIFRoZSBjZW50ZXIgb2YgdGhlIHBhcnRpY2xlIHJhZGl1c1xuICAgKiBAcmV0dXJuIHtSYWRpdXN9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgY2VudGVyID0gZmFsc2UsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJhZGl1cyh3aWR0aCwgaGVpZ2h0LCBjZW50ZXIsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Rate.js",
    "content": "import { DEFAULT_RATE_NUM_PAN, DEFAULT_RATE_TIME_PAN } from './constants';\nimport { Span, createSpan } from '../math';\nimport Initializer from './Initializer';\nimport { INITIALIZER_TYPE_RATE as type } from './types';\n/**\n * Calculates the rate of particle emission.\n *\n * NOTE This doesn't need to be an initializer, it doesn't have an initialize\n * method, it overrides the base init method and it is only relevent to the Emitter class.\n * It would be better to move this to the Emitter module itself as a standalone class.\n *\n */\n\nexport default class Rate extends Initializer {\n  /**\n   * Constructs a Rate instance.\n   *\n   * @param {number|array|Span} numPan - The number of particles to emit\n   * @param {number|array|Span} timePan - The time between each particle emission\n   * @return void\n   */\n  constructor(numPan = DEFAULT_RATE_NUM_PAN, timePan = DEFAULT_RATE_TIME_PAN) {\n    super(type);\n    /**\n     * @desc Sets the number of particles to emit.\n     * @type {Span}\n     */\n\n    this.numPan = createSpan(numPan);\n    /**\n     * @desc Sets the time between each particle emission.\n     * @type {Span}\n     */\n\n    this.timePan = createSpan(timePan);\n    /**\n     * @desc The rate's start time.\n     * @type {number}\n     */\n\n    this.startTime = 0;\n    /**\n     * @desc The rate's next time.\n     * @type {number}\n     */\n\n    this.nextTime = 0;\n    this.init();\n  }\n  /**\n   * Sets the startTime and nextTime properties.\n   *\n   * @return void\n   */\n\n\n  init() {\n    this.startTime = 0;\n    this.nextTime = this.timePan.getValue();\n  }\n  /**\n   * Gets the number of particles to emit.\n   *\n   * @param {number} time - Current particle engine time\n   * @return {number}\n   */\n\n\n  getValue(time) {\n    this.startTime += time;\n\n    if (this.startTime >= this.nextTime) {\n      this.init();\n\n      if (this.numPan.b == 1) {\n        if (this.numPan.getValue('Float') > 0.5) return 1;else return 0;\n      } else {\n        return this.numPan.getValue('Int');\n      }\n    }\n\n    return 0;\n  }\n  /**\n   * Creates a Rate initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @property {number} json.particlesMin - The minimum number of particles to emit\n   * @property {number} json.particlesMax - The maximum number of particles to emit\n   * @property {number} json.perSecondMin - The minimum per second emit rate\n   * @property {number} json.perSecondMax - The maximum per second emit rate\n   * @return {Rate}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      particlesMin,\n      particlesMax,\n      perSecondMin,\n      perSecondMax\n    } = json;\n    return new Rate(new Span(particlesMin, particlesMax), new Span(perSecondMin, perSecondMax));\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9SYXRlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfUkFURV9OVU1fUEFOIiwiREVGQVVMVF9SQVRFX1RJTUVfUEFOIiwiU3BhbiIsImNyZWF0ZVNwYW4iLCJJbml0aWFsaXplciIsIklOSVRJQUxJWkVSX1RZUEVfUkFURSIsInR5cGUiLCJSYXRlIiwiY29uc3RydWN0b3IiLCJudW1QYW4iLCJ0aW1lUGFuIiwic3RhcnRUaW1lIiwibmV4dFRpbWUiLCJpbml0IiwiZ2V0VmFsdWUiLCJ0aW1lIiwiYiIsImZyb21KU09OIiwianNvbiIsInBhcnRpY2xlc01pbiIsInBhcnRpY2xlc01heCIsInBlclNlY29uZE1pbiIsInBlclNlY29uZE1heCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0Esb0JBQVQsRUFBK0JDLHFCQUEvQixRQUE0RCxhQUE1RDtBQUNBLFNBQVNDLElBQVQsRUFBZUMsVUFBZixRQUFpQyxTQUFqQztBQUVBLE9BQU9DLFdBQVAsTUFBd0IsZUFBeEI7QUFDQSxTQUFTQyxxQkFBcUIsSUFBSUMsSUFBbEMsUUFBOEMsU0FBOUM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsSUFBTixTQUFtQkgsV0FBbkIsQ0FBK0I7QUFDNUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxNQUFNLEdBQUdULG9CQUFWLEVBQWdDVSxPQUFPLEdBQUdULHFCQUExQyxFQUFpRTtBQUMxRSxVQUFNSyxJQUFOO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0csTUFBTCxHQUFjTixVQUFVLENBQUNNLE1BQUQsQ0FBeEI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxPQUFMLEdBQWVQLFVBQVUsQ0FBQ08sT0FBRCxDQUF6QjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLFNBQUwsR0FBaUIsQ0FBakI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxRQUFMLEdBQWdCLENBQWhCO0FBRUEsU0FBS0MsSUFBTDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VBLEVBQUFBLElBQUksR0FBRztBQUNMLFNBQUtGLFNBQUwsR0FBaUIsQ0FBakI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtGLE9BQUwsQ0FBYUksUUFBYixFQUFoQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUEsRUFBQUEsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDYixTQUFLSixTQUFMLElBQWtCSSxJQUFsQjs7QUFFQSxRQUFJLEtBQUtKLFNBQUwsSUFBa0IsS0FBS0MsUUFBM0IsRUFBcUM7QUFDbkMsV0FBS0MsSUFBTDs7QUFFQSxVQUFJLEtBQUtKLE1BQUwsQ0FBWU8sQ0FBWixJQUFpQixDQUFyQixFQUF3QjtBQUN0QixZQUFJLEtBQUtQLE1BQUwsQ0FBWUssUUFBWixDQUFxQixPQUFyQixJQUFnQyxHQUFwQyxFQUF5QyxPQUFPLENBQVAsQ0FBekMsS0FDSyxPQUFPLENBQVA7QUFDTixPQUhELE1BR087QUFDTCxlQUFPLEtBQUtMLE1BQUwsQ0FBWUssUUFBWixDQUFxQixLQUFyQixDQUFQO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPLENBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkcsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFQyxNQUFBQSxZQUFGO0FBQWdCQyxNQUFBQSxZQUFoQjtBQUE4QkMsTUFBQUEsWUFBOUI7QUFBNENDLE1BQUFBO0FBQTVDLFFBQTZESixJQUFuRTtBQUVBLFdBQU8sSUFBSVgsSUFBSixDQUNMLElBQUlMLElBQUosQ0FBU2lCLFlBQVQsRUFBdUJDLFlBQXZCLENBREssRUFFTCxJQUFJbEIsSUFBSixDQUFTbUIsWUFBVCxFQUF1QkMsWUFBdkIsQ0FGSyxDQUFQO0FBSUQ7O0FBeEYyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfUkFURV9OVU1fUEFOLCBERUZBVUxUX1JBVEVfVElNRV9QQU4gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTcGFuLCBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5cbmltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUkFURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgcmF0ZSBvZiBwYXJ0aWNsZSBlbWlzc2lvbi5cbiAqXG4gKiBOT1RFIFRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIGFuIGluaXRpYWxpemVyLCBpdCBkb2Vzbid0IGhhdmUgYW4gaW5pdGlhbGl6ZVxuICogbWV0aG9kLCBpdCBvdmVycmlkZXMgdGhlIGJhc2UgaW5pdCBtZXRob2QgYW5kIGl0IGlzIG9ubHkgcmVsZXZlbnQgdG8gdGhlIEVtaXR0ZXIgY2xhc3MuXG4gKiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gbW92ZSB0aGlzIHRvIHRoZSBFbWl0dGVyIG1vZHVsZSBpdHNlbGYgYXMgYSBzdGFuZGFsb25lIGNsYXNzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmF0ZSBleHRlbmRzIEluaXRpYWxpemVyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBSYXRlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcnxhcnJheXxTcGFufSBudW1QYW4gLSBUaGUgbnVtYmVyIG9mIHBhcnRpY2xlcyB0byBlbWl0XG4gICAqIEBwYXJhbSB7bnVtYmVyfGFycmF5fFNwYW59IHRpbWVQYW4gLSBUaGUgdGltZSBiZXR3ZWVuIGVhY2ggcGFydGljbGUgZW1pc3Npb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihudW1QYW4gPSBERUZBVUxUX1JBVEVfTlVNX1BBTiwgdGltZVBhbiA9IERFRkFVTFRfUkFURV9USU1FX1BBTikge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgU2V0cyB0aGUgbnVtYmVyIG9mIHBhcnRpY2xlcyB0byBlbWl0LlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMubnVtUGFuID0gY3JlYXRlU3BhbihudW1QYW4pO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgU2V0cyB0aGUgdGltZSBiZXR3ZWVuIGVhY2ggcGFydGljbGUgZW1pc3Npb24uXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy50aW1lUGFuID0gY3JlYXRlU3Bhbih0aW1lUGFuKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByYXRlJ3Mgc3RhcnQgdGltZS5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuc3RhcnRUaW1lID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByYXRlJ3MgbmV4dCB0aW1lLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5uZXh0VGltZSA9IDA7XG5cbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdGFydFRpbWUgYW5kIG5leHRUaW1lIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdCgpIHtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XG4gICAgdGhpcy5uZXh0VGltZSA9IHRoaXMudGltZVBhbi5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gZW1pdC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBDdXJyZW50IHBhcnRpY2xlIGVuZ2luZSB0aW1lXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldFZhbHVlKHRpbWUpIHtcbiAgICB0aGlzLnN0YXJ0VGltZSArPSB0aW1lO1xuXG4gICAgaWYgKHRoaXMuc3RhcnRUaW1lID49IHRoaXMubmV4dFRpbWUpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuXG4gICAgICBpZiAodGhpcy5udW1QYW4uYiA9PSAxKSB7XG4gICAgICAgIGlmICh0aGlzLm51bVBhbi5nZXRWYWx1ZSgnRmxvYXQnKSA+IDAuNSkgcmV0dXJuIDE7XG4gICAgICAgIGVsc2UgcmV0dXJuIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5udW1QYW4uZ2V0VmFsdWUoJ0ludCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBSYXRlIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnBhcnRpY2xlc01pbiAtIFRoZSBtaW5pbXVtIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gZW1pdFxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5wYXJ0aWNsZXNNYXggLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGljbGVzIHRvIGVtaXRcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ucGVyU2Vjb25kTWluIC0gVGhlIG1pbmltdW0gcGVyIHNlY29uZCBlbWl0IHJhdGVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ucGVyU2Vjb25kTWF4IC0gVGhlIG1heGltdW0gcGVyIHNlY29uZCBlbWl0IHJhdGVcbiAgICogQHJldHVybiB7UmF0ZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBwYXJ0aWNsZXNNaW4sIHBhcnRpY2xlc01heCwgcGVyU2Vjb25kTWluLCBwZXJTZWNvbmRNYXggfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJhdGUoXG4gICAgICBuZXcgU3BhbihwYXJ0aWNsZXNNaW4sIHBhcnRpY2xlc01heCksXG4gICAgICBuZXcgU3BhbihwZXJTZWNvbmRNaW4sIHBlclNlY29uZE1heClcbiAgICApO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Rotation.js",
    "content": "import { Vector3 } from '../core/three';\nimport Initializer from './Initializer';\nimport { INITIALIZER_TYPE_ROTATION as type } from './types';\n/**\n * Sets the rotation property on initialized particles.\n *\n */\n\nexport default class Rotation extends Initializer {\n  /**\n   * Constructs a Rotation property instance.\n   *\n   * @param {number} x - X axis rotation\n   * @param {number} y - Y axis rotation\n   * @param {number} z - Z axis rotation\n   * @param {boolean} [useEmitterRotation=true] - Determines if we should use the emitter's rotation as the starting rotation\n   * @param {boolean} [isEnabled=true] - Determines if the initializer should be enabled or not\n   * @return void\n   */\n  constructor(x, y, z, useEmitterRotation = true, isEnabled = true) {\n    super(type, isEnabled);\n    this.rotation = new Vector3(x, y, z);\n    this.useEmitterRotation = useEmitterRotation;\n  }\n  /**\n   * Sets the particle's initial rotation.\n   *\n   * @param {Particle} particle - the particle to initialize the property on\n   * @return void\n   */\n\n\n  initialize(particle) {\n    if (this.useEmitterRotation && particle.parent) {\n      // set initial particle rotation to that of the particle's emitter then add our set rotation\n      particle.rotation.copy(particle.parent.rotation).add(this.rotation);\n    } else {\n      particle.rotation.copy(this.rotation);\n    }\n  }\n\n  static fromJSON(json) {\n    const {\n      x,\n      y,\n      z,\n      useEmitterRotation = true,\n      isEnabled = true\n    } = json;\n    return new Rotation(x, y, z, useEmitterRotation, isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Sb3RhdGlvbi5qcyJdLCJuYW1lcyI6WyJWZWN0b3IzIiwiSW5pdGlhbGl6ZXIiLCJJTklUSUFMSVpFUl9UWVBFX1JPVEFUSU9OIiwidHlwZSIsIlJvdGF0aW9uIiwiY29uc3RydWN0b3IiLCJ4IiwieSIsInoiLCJ1c2VFbWl0dGVyUm90YXRpb24iLCJpc0VuYWJsZWQiLCJyb3RhdGlvbiIsImluaXRpYWxpemUiLCJwYXJ0aWNsZSIsImNvcHkiLCJwYXJlbnQiLCJhZGQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQVQsUUFBd0IsZUFBeEI7QUFDQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MseUJBQXlCLElBQUlDLElBQXRDLFFBQWtELFNBQWxEO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxRQUFOLFNBQXVCSCxXQUF2QixDQUFtQztBQUNoRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSSxFQUFBQSxXQUFXLENBQUNDLENBQUQsRUFBSUMsQ0FBSixFQUFPQyxDQUFQLEVBQVVDLGtCQUFrQixHQUFDLElBQTdCLEVBQW1DQyxTQUFTLEdBQUcsSUFBL0MsRUFBcUQ7QUFDOUQsVUFBTVAsSUFBTixFQUFZTyxTQUFaO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixJQUFJWCxPQUFKLENBQVlNLENBQVosRUFBY0MsQ0FBZCxFQUFnQkMsQ0FBaEIsQ0FBaEI7QUFDQSxTQUFLQyxrQkFBTCxHQUEwQkEsa0JBQTFCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxVQUFVLENBQUNDLFFBQUQsRUFBVztBQUNuQixRQUFHLEtBQUtKLGtCQUFSLEVBQ0E7QUFDRTtBQUNBSSxNQUFBQSxRQUFRLENBQUNGLFFBQVQsQ0FBa0JHLElBQWxCLENBQXVCRCxRQUFRLENBQUNFLE1BQVQsQ0FBZ0JKLFFBQXZDLEVBQWlESyxHQUFqRCxDQUFxRCxLQUFLTCxRQUExRDtBQUNELEtBSkQsTUFNQTtBQUNFRSxNQUFBQSxRQUFRLENBQUNGLFFBQVQsQ0FBa0JHLElBQWxCLENBQXVCLEtBQUtILFFBQTVCO0FBQ0Q7QUFDRjs7QUFFYyxTQUFSTSxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVaLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdDLE1BQUFBLGtCQUFrQixHQUFHLElBQWhDO0FBQXNDQyxNQUFBQSxTQUFTLEdBQUc7QUFBbEQsUUFBMkRRLElBQWpFO0FBRUEsV0FBTyxJQUFJZCxRQUFKLENBQWFFLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CQyxDQUFuQixFQUFzQkMsa0JBQXRCLEVBQTBDQyxTQUExQyxDQUFQO0FBQ0Q7O0FBdkMrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICcuLi9jb3JlL3RocmVlJztcbmltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUk9UQVRJT04gYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIHJvdGF0aW9uIHByb3BlcnR5IG9uIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdGF0aW9uIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFJvdGF0aW9uIHByb3BlcnR5IGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFggYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFkgYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0geiAtIFogYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt1c2VFbWl0dGVyUm90YXRpb249dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHdlIHNob3VsZCB1c2UgdGhlIGVtaXR0ZXIncyByb3RhdGlvbiBhcyB0aGUgc3RhcnRpbmcgcm90YXRpb25cbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgaW5pdGlhbGl6ZXIgc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoeCwgeSwgeiwgdXNlRW1pdHRlclJvdGF0aW9uPXRydWUsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcih0eXBlLCBpc0VuYWJsZWQpO1xuICAgIHRoaXMucm90YXRpb24gPSBuZXcgVmVjdG9yMyh4LHkseik7XG4gICAgdGhpcy51c2VFbWl0dGVyUm90YXRpb24gPSB1c2VFbWl0dGVyUm90YXRpb247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFydGljbGUncyBpbml0aWFsIHJvdGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXRpYWxpemUocGFydGljbGUpIHtcbiAgICBpZih0aGlzLnVzZUVtaXR0ZXJSb3RhdGlvbilcbiAgICB7XG4gICAgICAvLyBzZXQgaW5pdGlhbCBwYXJ0aWNsZSByb3RhdGlvbiB0byB0aGF0IG9mIHRoZSBwYXJ0aWNsZSdzIGVtaXR0ZXIgdGhlbiBhZGQgb3VyIHNldCByb3RhdGlvblxuICAgICAgcGFydGljbGUucm90YXRpb24uY29weShwYXJ0aWNsZS5wYXJlbnQucm90YXRpb24pLmFkZCh0aGlzLnJvdGF0aW9uKTtcbiAgICB9XG4gICAgZWxzZVxuICAgIHtcbiAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLmNvcHkodGhpcy5yb3RhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IHgsIHksIHosIHVzZUVtaXR0ZXJSb3RhdGlvbiA9IHRydWUsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJvdGF0aW9uKHgsIHksIHosIHVzZUVtaXR0ZXJSb3RhdGlvbiwgaXNFbmFibGVkKTtcbiAgfVxufSJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Texture.js",
    "content": "import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { DEFAULT_JSON_MATERIAL_PROPERTIES, DEFAULT_MATERIAL_PROPERTIES, SUPPORTED_MATERIAL_BLENDING_MODES } from './constants';\nimport Initializer from './Initializer';\nimport { INITIALIZER_TYPE_TEXTURE as type } from './types';\nimport { withDefaults } from '../utils';\n/**\n * Sets the body property to be a THREE.Sprite with a texture map on initialized particles.\n *\n */\n\nexport default class Texture extends Initializer {\n  /**\n   * Constructs an Texture initializer.\n   *\n   * @param {object} THREE - The Web GL API we are using eg., THREE\n   * @param {string} texture - The sprite texture\n   * @param {object|undefined} materialProperties - The sprite material properties\n   * @param {?Texture} loadedTexture - Preloaded THREE.Texture instance\n   */\n  constructor(THREE, loadedTexture, materialProperties = DEFAULT_MATERIAL_PROPERTIES, isEnabled = true) {\n    super(type, isEnabled);\n    const {\n      Sprite,\n      SpriteMaterial\n    } = THREE;\n    /**\n     * @desc The material properties for this object's SpriteMaterial\n     * NOTE This is required for testing purposes\n     * @type {object}\n     */\n\n    this.materialProperties = withDefaults(DEFAULT_MATERIAL_PROPERTIES, materialProperties);\n    /**\n     * @desc The texture for the THREE.SpriteMaterial map.\n     * @type {Texture}\n     */\n\n    this.texture = loadedTexture;\n    /**\n     * @desc THREE.SpriteMaterial instance.\n     * @type {SpriteMaterial}\n     */\n\n    this.material = new SpriteMaterial(_objectSpread(_objectSpread({}, {\n      map: loadedTexture\n    }), this.materialProperties));\n    /**\n     * @desc THREE.Sprite instance.\n     * @type {Sprite}\n     */\n\n    this.sprite = new Sprite(this.material);\n  }\n  /**\n   * Sets the particle body to the sprite.\n   *\n   * @param {Particle} particle - The particle to set the body of\n   * @return void\n   */\n\n\n  initialize(particle) {\n    particle.body = this.sprite;\n  }\n  /**\n   * Creates a Texture initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from\n   * @param {object} THREE - The Web GL API we are using eg., THREE\n   * @param {Texture} json.loadedTexture - The loaded sprite texture\n   * @param {object} json.materialProperties - The sprite material properties\n   * @return {BodySprite}\n   */\n\n\n  static fromJSON(json, THREE) {\n    const {\n      loadedTexture,\n      materialProperties = DEFAULT_JSON_MATERIAL_PROPERTIES,\n      isEnabled = true\n    } = json;\n\n    const ensureMappedBlendingMode = properties => {\n      const {\n        blending\n      } = properties;\n      return _objectSpread(_objectSpread({}, properties), {}, {\n        blending: blending ? SUPPORTED_MATERIAL_BLENDING_MODES[blending] : SUPPORTED_MATERIAL_BLENDING_MODES[DEFAULT_JSON_MATERIAL_PROPERTIES.blending]\n      });\n    };\n\n    return new Texture(THREE, loadedTexture, withDefaults(DEFAULT_JSON_MATERIAL_PROPERTIES, ensureMappedBlendingMode(materialProperties)), isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9UZXh0dXJlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTIiwiREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTIiwiU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTIiwiSW5pdGlhbGl6ZXIiLCJJTklUSUFMSVpFUl9UWVBFX1RFWFRVUkUiLCJ0eXBlIiwid2l0aERlZmF1bHRzIiwiVGV4dHVyZSIsImNvbnN0cnVjdG9yIiwiVEhSRUUiLCJsb2FkZWRUZXh0dXJlIiwibWF0ZXJpYWxQcm9wZXJ0aWVzIiwiaXNFbmFibGVkIiwiU3ByaXRlIiwiU3ByaXRlTWF0ZXJpYWwiLCJ0ZXh0dXJlIiwibWF0ZXJpYWwiLCJtYXAiLCJzcHJpdGUiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJib2R5IiwiZnJvbUpTT04iLCJqc29uIiwiZW5zdXJlTWFwcGVkQmxlbmRpbmdNb2RlIiwicHJvcGVydGllcyIsImJsZW5kaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUNFQSxnQ0FERixFQUVFQywyQkFGRixFQUdFQyxpQ0FIRixRQUlPLGFBSlA7QUFNQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0Msd0JBQXdCLElBQUlDLElBQXJDLFFBQWlELFNBQWpEO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixVQUE3QjtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsT0FBTixTQUFzQkosV0FBdEIsQ0FBa0M7QUFDL0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQ1RDLEtBRFMsRUFFVEMsYUFGUyxFQUdUQyxrQkFBa0IsR0FBR1YsMkJBSFosRUFJVFcsU0FBUyxHQUFHLElBSkgsRUFLVDtBQUNBLFVBQU1QLElBQU4sRUFBWU8sU0FBWjtBQUVBLFVBQU07QUFBRUMsTUFBQUEsTUFBRjtBQUFVQyxNQUFBQTtBQUFWLFFBQTZCTCxLQUFuQztBQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0Usa0JBQUwsR0FBMEJMLFlBQVksQ0FDcENMLDJCQURvQyxFQUVwQ1Usa0JBRm9DLENBQXRDO0FBS0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0ksT0FBTCxHQUFlTCxhQUFmO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS00sUUFBTCxHQUFnQixJQUFJRixjQUFKLGlDQUNYO0FBQUVHLE1BQUFBLEdBQUcsRUFBRVA7QUFBUCxLQURXLEdBRVgsS0FBS0Msa0JBRk0sRUFBaEI7QUFLQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLTyxNQUFMLEdBQWMsSUFBSUwsTUFBSixDQUFXLEtBQUtHLFFBQWhCLENBQWQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLElBQVQsR0FBZ0IsS0FBS0gsTUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJJLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPZCxLQUFQLEVBQWM7QUFDM0IsVUFBTTtBQUNKQyxNQUFBQSxhQURJO0FBRUpDLE1BQUFBLGtCQUFrQixHQUFHWCxnQ0FGakI7QUFHSlksTUFBQUEsU0FBUyxHQUFHO0FBSFIsUUFJRlcsSUFKSjs7QUFNQSxVQUFNQyx3QkFBd0IsR0FBR0MsVUFBVSxJQUFJO0FBQzdDLFlBQU07QUFBRUMsUUFBQUE7QUFBRixVQUFlRCxVQUFyQjtBQUVBLDZDQUNLQSxVQURMO0FBRUVDLFFBQUFBLFFBQVEsRUFBRUEsUUFBUSxHQUNkeEIsaUNBQWlDLENBQUN3QixRQUFELENBRG5CLEdBRWR4QixpQ0FBaUMsQ0FDakNGLGdDQUFnQyxDQUFDMEIsUUFEQTtBQUp2QztBQVFELEtBWEQ7O0FBYUEsV0FBTyxJQUFJbkIsT0FBSixDQUNMRSxLQURLLEVBRUxDLGFBRkssRUFHTEosWUFBWSxDQUNWTixnQ0FEVSxFQUVWd0Isd0JBQXdCLENBQUNiLGtCQUFELENBRmQsQ0FIUCxFQU9MQyxTQVBLLENBQVA7QUFTRDs7QUFuRzhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREVGQVVMVF9KU09OX01BVEVSSUFMX1BST1BFUlRJRVMsXG4gIERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyB3aXRoRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYm9keSBwcm9wZXJ0eSB0byBiZSBhIFRIUkVFLlNwcml0ZSB3aXRoIGEgdGV4dHVyZSBtYXAgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dHVyZSBleHRlbmRzIEluaXRpYWxpemVyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gVGV4dHVyZSBpbml0aWFsaXplci5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVGhlIFdlYiBHTCBBUEkgd2UgYXJlIHVzaW5nIGVnLiwgVEhSRUVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmUgLSBUaGUgc3ByaXRlIHRleHR1cmVcbiAgICogQHBhcmFtIHtvYmplY3R8dW5kZWZpbmVkfSBtYXRlcmlhbFByb3BlcnRpZXMgLSBUaGUgc3ByaXRlIG1hdGVyaWFsIHByb3BlcnRpZXNcbiAgICogQHBhcmFtIHs/VGV4dHVyZX0gbG9hZGVkVGV4dHVyZSAtIFByZWxvYWRlZCBUSFJFRS5UZXh0dXJlIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBUSFJFRSxcbiAgICBsb2FkZWRUZXh0dXJlLFxuICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgICBpc0VuYWJsZWQgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICBjb25zdCB7IFNwcml0ZSwgU3ByaXRlTWF0ZXJpYWwgfSA9IFRIUkVFO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIG1hdGVyaWFsIHByb3BlcnRpZXMgZm9yIHRoaXMgb2JqZWN0J3MgU3ByaXRlTWF0ZXJpYWxcbiAgICAgKiBOT1RFIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgICAqL1xuICAgIHRoaXMubWF0ZXJpYWxQcm9wZXJ0aWVzID0gd2l0aERlZmF1bHRzKFxuICAgICAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgbWF0ZXJpYWxQcm9wZXJ0aWVzXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB0ZXh0dXJlIGZvciB0aGUgVEhSRUUuU3ByaXRlTWF0ZXJpYWwgbWFwLlxuICAgICAqIEB0eXBlIHtUZXh0dXJlfVxuICAgICAqL1xuICAgIHRoaXMudGV4dHVyZSA9IGxvYWRlZFRleHR1cmU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGVNYXRlcmlhbCBpbnN0YW5jZS5cbiAgICAgKiBAdHlwZSB7U3ByaXRlTWF0ZXJpYWx9XG4gICAgICovXG4gICAgdGhpcy5tYXRlcmlhbCA9IG5ldyBTcHJpdGVNYXRlcmlhbCh7XG4gICAgICAuLi57IG1hcDogbG9hZGVkVGV4dHVyZSB9LFxuICAgICAgLi4udGhpcy5tYXRlcmlhbFByb3BlcnRpZXMsXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGUgaW5zdGFuY2UuXG4gICAgICogQHR5cGUge1Nwcml0ZX1cbiAgICAgKi9cbiAgICB0aGlzLnNwcml0ZSA9IG5ldyBTcHJpdGUodGhpcy5tYXRlcmlhbCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFydGljbGUgYm9keSB0byB0aGUgc3ByaXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSB0byBzZXQgdGhlIGJvZHkgb2ZcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgcGFydGljbGUuYm9keSA9IHRoaXMuc3ByaXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUZXh0dXJlIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb21cbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVGhlIFdlYiBHTCBBUEkgd2UgYXJlIHVzaW5nIGVnLiwgVEhSRUVcbiAgICogQHBhcmFtIHtUZXh0dXJlfSBqc29uLmxvYWRlZFRleHR1cmUgLSBUaGUgbG9hZGVkIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uLm1hdGVyaWFsUHJvcGVydGllcyAtIFRoZSBzcHJpdGUgbWF0ZXJpYWwgcHJvcGVydGllc1xuICAgKiBAcmV0dXJuIHtCb2R5U3ByaXRlfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIFRIUkVFKSB7XG4gICAgY29uc3Qge1xuICAgICAgbG9hZGVkVGV4dHVyZSxcbiAgICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgaXNFbmFibGVkID0gdHJ1ZSxcbiAgICB9ID0ganNvbjtcblxuICAgIGNvbnN0IGVuc3VyZU1hcHBlZEJsZW5kaW5nTW9kZSA9IHByb3BlcnRpZXMgPT4ge1xuICAgICAgY29uc3QgeyBibGVuZGluZyB9ID0gcHJvcGVydGllcztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgYmxlbmRpbmc6IGJsZW5kaW5nXG4gICAgICAgICAgPyBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbYmxlbmRpbmddXG4gICAgICAgICAgOiBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbXG4gICAgICAgICAgICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUy5ibGVuZGluZ1xuICAgICAgICAgIF0sXG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFRleHR1cmUoXG4gICAgICBUSFJFRSxcbiAgICAgIGxvYWRlZFRleHR1cmUsXG4gICAgICB3aXRoRGVmYXVsdHMoXG4gICAgICAgIERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgICBlbnN1cmVNYXBwZWRCbGVuZGluZ01vZGUobWF0ZXJpYWxQcm9wZXJ0aWVzKVxuICAgICAgKSxcbiAgICAgIGlzRW5hYmxlZFxuICAgICk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/PolarVelocity.js",
    "content": "import { DR } from '../../constants';\nimport { Polar3D } from '../../math';\nimport Velocity from './Velocity';\nimport { INITIALIZER_TYPE_POLAR_VELOCITY as type } from '../types';\n/**\n * Sets the velocity property on initialized particles.\n *\n */\n\nexport default class PolarVelocity extends Velocity {\n  /**\n   * Constructs a PolarVelocity initializer.\n   *\n   * @param {Polar3D} polar3d - The polar vector for the velocity\n   * @param {number} theta - The theta angle to use\n   * @return void\n   */\n  constructor(polar3d, theta, isEnabled = true) {\n    super(type, isEnabled);\n    /**\n     * @desc Theta.\n     * @type {number}\n     */\n\n    this.tha = theta * DR;\n\n    this._polar = polar3d;\n    /**\n     * @desc Directional vector\n     * @type {Vector3D}\n     */\n\n    this.dirVec = this._polar.toVector3D();\n    /**\n     * @desc Determines whether to use the directional vector or not.\n     * @type {boolean}\n     */\n\n    this._useV = false;\n  }\n  /**\n   * Creates a PolarVelocity initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @param {number} json.polarRadius - The Polar3D radius\n   * @param {number} json.polarTheta - The Polar3D theta\n   * @param {number} json.polarPhi - The Polar3D phi\n   * @param {number} json.velocityTheta - The velocity theta\n   * @return {PolarVelocity}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      polarRadius,\n      polarTheta,\n      polarPhi,\n      velocityTheta,\n      isEnabled = true\n    } = json;\n    return new PolarVelocity(new Polar3D(polarRadius, polarTheta, polarPhi), velocityTheta, isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9Qb2xhclZlbG9jaXR5LmpzIl0sIm5hbWVzIjpbIkRSIiwiUG9sYXIzRCIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9QT0xBUl9WRUxPQ0lUWSIsInR5cGUiLCJQb2xhclZlbG9jaXR5IiwiY29uc3RydWN0b3IiLCJwb2xhcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJ0aGEiLCJkaXJWZWMiLCJ0b1ZlY3RvcjNEIiwiX3VzZVYiLCJmcm9tSlNPTiIsImpzb24iLCJwb2xhclJhZGl1cyIsInBvbGFyVGhldGEiLCJwb2xhclBoaSIsInZlbG9jaXR5VGhldGEiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixZQUF4QjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsWUFBckI7QUFDQSxTQUFTQywrQkFBK0IsSUFBSUMsSUFBNUMsUUFBd0QsVUFBeEQ7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLGFBQU4sU0FBNEJILFFBQTVCLENBQXFDO0FBQ2xEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VJLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFVQyxLQUFWLEVBQWlCQyxTQUFTLEdBQUcsSUFBN0IsRUFBbUM7QUFDNUMsVUFBTUwsSUFBTixFQUFZSyxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsR0FBTCxHQUFXRixLQUFLLEdBQUdSLEVBQW5CO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS1csTUFBTCxHQUFjSixPQUFPLENBQUNLLFVBQVIsRUFBZDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLEtBQUwsR0FBYSxLQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJDLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFDSkMsTUFBQUEsV0FESTtBQUVKQyxNQUFBQSxVQUZJO0FBR0pDLE1BQUFBLFFBSEk7QUFJSkMsTUFBQUEsYUFKSTtBQUtKVixNQUFBQSxTQUFTLEdBQUc7QUFMUixRQU1GTSxJQU5KO0FBUUEsV0FBTyxJQUFJVixhQUFKLENBQ0wsSUFBSUosT0FBSixDQUFZZSxXQUFaLEVBQXlCQyxVQUF6QixFQUFxQ0MsUUFBckMsQ0FESyxFQUVMQyxhQUZLLEVBR0xWLFNBSEssQ0FBUDtBQUtEOztBQXREaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQb2xhcjNEIH0gZnJvbSAnLi4vLi4vbWF0aCc7XG5pbXBvcnQgVmVsb2NpdHkgZnJvbSAnLi9WZWxvY2l0eSc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX1BPTEFSX1ZFTE9DSVRZIGFzIHR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgdmVsb2NpdHkgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9sYXJWZWxvY2l0eSBleHRlbmRzIFZlbG9jaXR5IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBQb2xhclZlbG9jaXR5IGluaXRpYWxpemVyLlxuICAgKlxuICAgKiBAcGFyYW0ge1BvbGFyM0R9IHBvbGFyM2QgLSBUaGUgcG9sYXIgdmVjdG9yIGZvciB0aGUgdmVsb2NpdHlcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRoZXRhIC0gVGhlIHRoZXRhIGFuZ2xlIHRvIHVzZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHBvbGFyM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZXRhLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy50aGEgPSB0aGV0YSAqIERSO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uYWwgdmVjdG9yXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyVmVjID0gcG9sYXIzZC50b1ZlY3RvcjNEKCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIHRoZSBkaXJlY3Rpb25hbCB2ZWN0b3Igb3Igbm90LlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuX3VzZVYgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUG9sYXJWZWxvY2l0eSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5wb2xhclJhZGl1cyAtIFRoZSBQb2xhcjNEIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5wb2xhclRoZXRhIC0gVGhlIFBvbGFyM0QgdGhldGFcbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ucG9sYXJQaGkgLSBUaGUgUG9sYXIzRCBwaGlcbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24udmVsb2NpdHlUaGV0YSAtIFRoZSB2ZWxvY2l0eSB0aGV0YVxuICAgKiBAcmV0dXJuIHtQb2xhclZlbG9jaXR5fVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7XG4gICAgICBwb2xhclJhZGl1cyxcbiAgICAgIHBvbGFyVGhldGEsXG4gICAgICBwb2xhclBoaSxcbiAgICAgIHZlbG9jaXR5VGhldGEsXG4gICAgICBpc0VuYWJsZWQgPSB0cnVlLFxuICAgIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBQb2xhclZlbG9jaXR5KFxuICAgICAgbmV3IFBvbGFyM0QocG9sYXJSYWRpdXMsIHBvbGFyVGhldGEsIHBvbGFyUGhpKSxcbiAgICAgIHZlbG9jaXR5VGhldGEsXG4gICAgICBpc0VuYWJsZWRcbiAgICApO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/RadialVelocity.js",
    "content": "import { Vector3D, createSpan } from '../../math';\nimport { DR } from '../../constants';\nimport Velocity from './Velocity';\nimport { INITIALIZER_TYPE_RADIAL_VELOCITY as type } from '../types';\n/**\n * Sets the velocity property on initialized particles.\n *\n */\n\nexport default class RadialVelocity extends Velocity {\n  /**\n   * Constructs a RadialVelocity initializer.\n   *\n   * @param {number|Span} radius - The velocity radius\n   * @param {Vector3D} vector3d - The directional vector for the velocity\n   * @param {number} theta - The theta angle to use\n   * @return void\n   */\n  constructor(radius, vector3d, theta, isEnabled = true) {\n    super(type, isEnabled);\n    /**\n     * @desc Velocity radius span.\n     * @type {Span}\n     */\n\n    this.radiusPan = createSpan(radius);\n    /**\n     * @desc Direction vector.\n     * @type {Vector3D}\n     */\n\n    this.dir = vector3d.clone().normalize();\n    /**\n     * @desc Theta.\n     * @type {number}\n     */\n\n    this.tha = theta * DR;\n    /**\n     * @desc Determines whether to use the directional vector or not.\n     * @type {boolean}\n     */\n\n    this._useV = true;\n  }\n  /**\n   * Creates a RadialVelocity initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @param {number} json.radius - The velocity radius\n   * @param {number} json.x - The velocity x axis direction\n   * @param {number} json.y - The velocity y axis direction\n   * @param {number} json.z - The velocity z axis direction\n   * @param {number} json.theta - The velocity theta\n   * @return {RadialVelocity}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      radius,\n      x,\n      y,\n      z,\n      theta,\n      isEnabled = true\n    } = json;\n    return new RadialVelocity(radius, new Vector3D(x, y, z), theta, isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9SYWRpYWxWZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJWZWN0b3IzRCIsImNyZWF0ZVNwYW4iLCJEUiIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9SQURJQUxfVkVMT0NJVFkiLCJ0eXBlIiwiUmFkaWFsVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInJhZGl1cyIsInZlY3RvcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJyYWRpdXNQYW4iLCJkaXIiLCJjbG9uZSIsIm5vcm1hbGl6ZSIsInRoYSIsIl91c2VWIiwiZnJvbUpTT04iLCJqc29uIiwieCIsInkiLCJ6Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFULEVBQW1CQyxVQUFuQixRQUFxQyxZQUFyQztBQUVBLFNBQVNDLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixZQUFyQjtBQUNBLFNBQVNDLGdDQUFnQyxJQUFJQyxJQUE3QyxRQUF5RCxVQUF6RDtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsUUFBN0IsQ0FBc0M7QUFDbkQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSSxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsUUFBVCxFQUFtQkMsS0FBbkIsRUFBMEJDLFNBQVMsR0FBRyxJQUF0QyxFQUE0QztBQUNyRCxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxTQUFMLEdBQWlCWCxVQUFVLENBQUNPLE1BQUQsQ0FBM0I7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSyxHQUFMLEdBQVdKLFFBQVEsQ0FBQ0ssS0FBVCxHQUFpQkMsU0FBakIsRUFBWDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLEdBQUwsR0FBV04sS0FBSyxHQUFHUixFQUFuQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtlLEtBQUwsR0FBYSxJQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkMsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFWCxNQUFBQSxNQUFGO0FBQVVZLE1BQUFBLENBQVY7QUFBYUMsTUFBQUEsQ0FBYjtBQUFnQkMsTUFBQUEsQ0FBaEI7QUFBbUJaLE1BQUFBLEtBQW5CO0FBQTBCQyxNQUFBQSxTQUFTLEdBQUc7QUFBdEMsUUFBK0NRLElBQXJEO0FBRUEsV0FBTyxJQUFJYixjQUFKLENBQW1CRSxNQUFuQixFQUEyQixJQUFJUixRQUFKLENBQWFvQixDQUFiLEVBQWdCQyxDQUFoQixFQUFtQkMsQ0FBbkIsQ0FBM0IsRUFBa0RaLEtBQWxELEVBQXlEQyxTQUF6RCxDQUFQO0FBQ0Q7O0FBcERrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjNELCBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vLi4vbWF0aCc7XG5cbmltcG9ydCB7IERSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCBWZWxvY2l0eSBmcm9tICcuL1ZlbG9jaXR5JztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUkFESUFMX1ZFTE9DSVRZIGFzIHR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgdmVsb2NpdHkgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaWFsVmVsb2NpdHkgZXh0ZW5kcyBWZWxvY2l0eSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUmFkaWFsVmVsb2NpdHkgaW5pdGlhbGl6ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfFNwYW59IHJhZGl1cyAtIFRoZSB2ZWxvY2l0eSByYWRpdXNcbiAgICogQHBhcmFtIHtWZWN0b3IzRH0gdmVjdG9yM2QgLSBUaGUgZGlyZWN0aW9uYWwgdmVjdG9yIGZvciB0aGUgdmVsb2NpdHlcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRoZXRhIC0gVGhlIHRoZXRhIGFuZ2xlIHRvIHVzZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHJhZGl1cywgdmVjdG9yM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFZlbG9jaXR5IHJhZGl1cyBzcGFuLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzUGFuID0gY3JlYXRlU3BhbihyYWRpdXMpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uIHZlY3Rvci5cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5kaXIgPSB2ZWN0b3IzZC5jbG9uZSgpLm5vcm1hbGl6ZSgpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhldGEuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLnRoYSA9IHRoZXRhICogRFI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIHRoZSBkaXJlY3Rpb25hbCB2ZWN0b3Igb3Igbm90LlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuX3VzZVYgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBSYWRpYWxWZWxvY2l0eSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5yYWRpdXMgLSBUaGUgdmVsb2NpdHkgcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnggLSBUaGUgdmVsb2NpdHkgeCBheGlzIGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi55IC0gVGhlIHZlbG9jaXR5IHkgYXhpcyBkaXJlY3Rpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ueiAtIFRoZSB2ZWxvY2l0eSB6IGF4aXMgZGlyZWN0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnRoZXRhIC0gVGhlIHZlbG9jaXR5IHRoZXRhXG4gICAqIEByZXR1cm4ge1JhZGlhbFZlbG9jaXR5fVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IHJhZGl1cywgeCwgeSwgeiwgdGhldGEsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJhZGlhbFZlbG9jaXR5KHJhZGl1cywgbmV3IFZlY3RvcjNEKHgsIHksIHopLCB0aGV0YSwgaXNFbmFibGVkKTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/VectorVelocity.js",
    "content": "import { Vector3D, createSpan } from '../../math';\nimport { DR } from '../../constants';\nimport Velocity from './Velocity';\nimport { INITIALIZER_TYPE_VECTOR_VELOCITY as type } from '../types';\n/**\n * Sets the velocity property on initialized particles.\n *\n */\n\nexport default class VectorVelocity extends Velocity {\n  /**\n   * Constructs a VectorVelocity initializer.\n   *\n   * @param {Vector3D} vector3d - The directional vector for the velocity\n   * @param {number} theta - The theta angle to use\n   * @return void\n   */\n  constructor(vector3d, theta, isEnabled = true) {\n    super(type, isEnabled);\n    /**\n     * @desc Velocity radius span.\n     * @type {Span}\n     */\n\n    this.radiusPan = createSpan(1);\n    /**\n     * @desc Direction vector.\n     * @type {Vector3D}\n     */\n\n    this.dir = vector3d.clone();\n    /**\n     * @desc Theta.\n     * @type {number}\n     */\n\n    this.tha = theta * DR;\n    /**\n     * @desc Determines whether to use the directional vector or not.\n     * @type {boolean}\n     */\n\n    this._useV = true;\n  }\n  /**\n   * Creates a VectorVelocity initializer from JSON.\n   *\n   * @param {object} json - The JSON to construct the instance from.\n   * @param {number} json.x - The velocity x axis direction\n   * @param {number} json.y - The velocity y axis direction\n   * @param {number} json.z - The velocity z axis direction\n   * @param {number} json.theta - The velocity theta\n   * @return {VectorVelocity}\n   */\n\n\n  static fromJSON(json) {\n    const {\n      x,\n      y,\n      z,\n      theta,\n      isEnabled = true\n    } = json;\n    return new VectorVelocity(new Vector3D(x, y, z), theta, isEnabled);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9WZWN0b3JWZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJWZWN0b3IzRCIsImNyZWF0ZVNwYW4iLCJEUiIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9WRUNUT1JfVkVMT0NJVFkiLCJ0eXBlIiwiVmVjdG9yVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInZlY3RvcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJyYWRpdXNQYW4iLCJkaXIiLCJjbG9uZSIsInRoYSIsIl91c2VWIiwiZnJvbUpTT04iLCJqc29uIiwieCIsInkiLCJ6Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFULEVBQW1CQyxVQUFuQixRQUFxQyxZQUFyQztBQUVBLFNBQVNDLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixZQUFyQjtBQUNBLFNBQVNDLGdDQUFnQyxJQUFJQyxJQUE3QyxRQUF5RCxVQUF6RDtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsUUFBN0IsQ0FBc0M7QUFDbkQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxRQUFELEVBQVdDLEtBQVgsRUFBa0JDLFNBQVMsR0FBRyxJQUE5QixFQUFvQztBQUM3QyxVQUFNTCxJQUFOLEVBQVlLLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxTQUFMLEdBQWlCVixVQUFVLENBQUMsQ0FBRCxDQUEzQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtXLEdBQUwsR0FBV0osUUFBUSxDQUFDSyxLQUFULEVBQVg7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxHQUFMLEdBQVdMLEtBQUssR0FBR1AsRUFBbkI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLYSxLQUFMLEdBQWEsSUFBYjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNpQixTQUFSQyxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVDLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdYLE1BQUFBLEtBQVg7QUFBa0JDLE1BQUFBLFNBQVMsR0FBRztBQUE5QixRQUF1Q08sSUFBN0M7QUFFQSxXQUFPLElBQUlYLGNBQUosQ0FBbUIsSUFBSU4sUUFBSixDQUFha0IsQ0FBYixFQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBQW5CLEVBQTBDWCxLQUExQyxFQUFpREMsU0FBakQsQ0FBUDtBQUNEOztBQWxEa0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZWN0b3IzRCwgY3JlYXRlU3BhbiB9IGZyb20gJy4uLy4uL21hdGgnO1xuXG5pbXBvcnQgeyBEUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgVmVsb2NpdHkgZnJvbSAnLi9WZWxvY2l0eSc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX1ZFQ1RPUl9WRUxPQ0lUWSBhcyB0eXBlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIHZlbG9jaXR5IHByb3BlcnR5IG9uIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlY3RvclZlbG9jaXR5IGV4dGVuZHMgVmVsb2NpdHkge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFZlY3RvclZlbG9jaXR5IGluaXRpYWxpemVyLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSB2ZWN0b3IzZCAtIFRoZSBkaXJlY3Rpb25hbCB2ZWN0b3IgZm9yIHRoZSB2ZWxvY2l0eVxuICAgKiBAcGFyYW0ge251bWJlcn0gdGhldGEgLSBUaGUgdGhldGEgYW5nbGUgdG8gdXNlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IodmVjdG9yM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFZlbG9jaXR5IHJhZGl1cyBzcGFuLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzUGFuID0gY3JlYXRlU3BhbigxKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIERpcmVjdGlvbiB2ZWN0b3IuXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyID0gdmVjdG9yM2QuY2xvbmUoKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZXRhLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy50aGEgPSB0aGV0YSAqIERSO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHVzZSB0aGUgZGlyZWN0aW9uYWwgdmVjdG9yIG9yIG5vdC5cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLl91c2VWID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVmVjdG9yVmVsb2NpdHkgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ueCAtIFRoZSB2ZWxvY2l0eSB4IGF4aXMgZGlyZWN0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnkgLSBUaGUgdmVsb2NpdHkgeSBheGlzIGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi56IC0gVGhlIHZlbG9jaXR5IHogYXhpcyBkaXJlY3Rpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24udGhldGEgLSBUaGUgdmVsb2NpdHkgdGhldGFcbiAgICogQHJldHVybiB7VmVjdG9yVmVsb2NpdHl9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgeCwgeSwgeiwgdGhldGEsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFZlY3RvclZlbG9jaXR5KG5ldyBWZWN0b3IzRCh4LCB5LCB6KSwgdGhldGEsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/Velocity.js",
    "content": "import { MEASURE, PI } from '../../constants';\nimport { MathUtils, Vector3D } from '../../math';\nimport Initializer from '../Initializer';\n/**\n * Abstract class for Velocity initializers.\n *\n */\n\nexport default class Velocity extends Initializer {\n  /**\n   * Constructs a Velocity intitializer instance.\n   *\n   * @return void\n   */\n  constructor(type, isEnabled = true) {\n    super(type, isEnabled);\n    /**\n     * @desc Directional vector\n     * @type {Vector3D}\n     */\n\n    this.dirVec = new Vector3D(0, 0, 0);\n  }\n\n  normalize(vr) {\n    return vr * MEASURE;\n  }\n\n}\n/**\n * Sets the particle's initial velocity.\n *\n * @singleton\n * @param {Particle} particle - the particle to initialize the property on\n * @return void\n */\n\nVelocity.prototype.initialize = function () {\n  var tha;\n  var normal = new Vector3D(0, 0, 1);\n  var v = new Vector3D(0, 0, 0);\n  return function initialize(particle) {\n    tha = this.tha * Math.random();\n    this._useV && this.dirVec.copy(this.dir).scalar(this.radiusPan.getValue());\n    MathUtils.getNormal(this.dirVec, normal);\n    v.copy(this.dirVec).applyAxisAngle(normal, tha);\n    v.applyAxisAngle(this.dirVec.normalize(), Math.random() * PI * 2);\n    particle.velocity.copy(v);\n    return this;\n  };\n}();\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9WZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJNRUFTVVJFIiwiUEkiLCJNYXRoVXRpbHMiLCJWZWN0b3IzRCIsIkluaXRpYWxpemVyIiwiVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJpc0VuYWJsZWQiLCJkaXJWZWMiLCJub3JtYWxpemUiLCJ2ciIsInByb3RvdHlwZSIsImluaXRpYWxpemUiLCJ0aGEiLCJub3JtYWwiLCJ2IiwicGFydGljbGUiLCJNYXRoIiwicmFuZG9tIiwiX3VzZVYiLCJjb3B5IiwiZGlyIiwic2NhbGFyIiwicmFkaXVzUGFuIiwiZ2V0VmFsdWUiLCJnZXROb3JtYWwiLCJhcHBseUF4aXNBbmdsZSIsInZlbG9jaXR5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFULEVBQWtCQyxFQUFsQixRQUE0QixpQkFBNUI7QUFDQSxTQUFTQyxTQUFULEVBQW9CQyxRQUFwQixRQUFvQyxZQUFwQztBQUVBLE9BQU9DLFdBQVAsTUFBd0IsZ0JBQXhCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxRQUFOLFNBQXVCRCxXQUF2QixDQUFtQztBQUNoRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0VFLEVBQUFBLFdBQVcsQ0FBQ0MsSUFBRCxFQUFPQyxTQUFTLEdBQUcsSUFBbkIsRUFBeUI7QUFDbEMsVUFBTUQsSUFBTixFQUFZQyxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsTUFBTCxHQUFjLElBQUlOLFFBQUosQ0FBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLENBQWQ7QUFDRDs7QUFFRE8sRUFBQUEsU0FBUyxDQUFDQyxFQUFELEVBQUs7QUFDWixXQUFPQSxFQUFFLEdBQUdYLE9BQVo7QUFDRDs7QUFsQitDO0FBcUJsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQUssUUFBUSxDQUFDTyxTQUFULENBQW1CQyxVQUFuQixHQUFpQyxZQUFXO0FBQzFDLE1BQUlDLEdBQUo7QUFDQSxNQUFJQyxNQUFNLEdBQUcsSUFBSVosUUFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsQ0FBYjtBQUNBLE1BQUlhLENBQUMsR0FBRyxJQUFJYixRQUFKLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUFSO0FBRUEsU0FBTyxTQUFTVSxVQUFULENBQW9CSSxRQUFwQixFQUE4QjtBQUNuQ0gsSUFBQUEsR0FBRyxHQUFHLEtBQUtBLEdBQUwsR0FBV0ksSUFBSSxDQUFDQyxNQUFMLEVBQWpCO0FBQ0EsU0FBS0MsS0FBTCxJQUFjLEtBQUtYLE1BQUwsQ0FBWVksSUFBWixDQUFpQixLQUFLQyxHQUF0QixFQUEyQkMsTUFBM0IsQ0FBa0MsS0FBS0MsU0FBTCxDQUFlQyxRQUFmLEVBQWxDLENBQWQ7QUFFQXZCLElBQUFBLFNBQVMsQ0FBQ3dCLFNBQVYsQ0FBb0IsS0FBS2pCLE1BQXpCLEVBQWlDTSxNQUFqQztBQUNBQyxJQUFBQSxDQUFDLENBQUNLLElBQUYsQ0FBTyxLQUFLWixNQUFaLEVBQW9Ca0IsY0FBcEIsQ0FBbUNaLE1BQW5DLEVBQTJDRCxHQUEzQztBQUNBRSxJQUFBQSxDQUFDLENBQUNXLGNBQUYsQ0FBaUIsS0FBS2xCLE1BQUwsQ0FBWUMsU0FBWixFQUFqQixFQUEwQ1EsSUFBSSxDQUFDQyxNQUFMLEtBQWdCbEIsRUFBaEIsR0FBcUIsQ0FBL0Q7QUFFQWdCLElBQUFBLFFBQVEsQ0FBQ1csUUFBVCxDQUFrQlAsSUFBbEIsQ0FBdUJMLENBQXZCO0FBRUEsV0FBTyxJQUFQO0FBQ0QsR0FYRDtBQVlELENBakIrQixFQUFoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1FQVNVUkUsIFBJIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE1hdGhVdGlscywgVmVjdG9yM0QgfSBmcm9tICcuLi8uLi9tYXRoJztcblxuaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4uL0luaXRpYWxpemVyJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3IgVmVsb2NpdHkgaW5pdGlhbGl6ZXJzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2NpdHkgZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgVmVsb2NpdHkgaW50aXRpYWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHR5cGUsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcih0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uYWwgdmVjdG9yXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyVmVjID0gbmV3IFZlY3RvcjNEKDAsIDAsIDApO1xuICB9XG5cbiAgbm9ybWFsaXplKHZyKSB7XG4gICAgcmV0dXJuIHZyICogTUVBU1VSRTtcbiAgfVxufVxuXG4vKipcbiAqIFNldHMgdGhlIHBhcnRpY2xlJ3MgaW5pdGlhbCB2ZWxvY2l0eS5cbiAqXG4gKiBAc2luZ2xldG9uXG4gKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICogQHJldHVybiB2b2lkXG4gKi9cblZlbG9jaXR5LnByb3RvdHlwZS5pbml0aWFsaXplID0gKGZ1bmN0aW9uKCkge1xuICB2YXIgdGhhO1xuICB2YXIgbm9ybWFsID0gbmV3IFZlY3RvcjNEKDAsIDAsIDEpO1xuICB2YXIgdiA9IG5ldyBWZWN0b3IzRCgwLCAwLCAwKTtcblxuICByZXR1cm4gZnVuY3Rpb24gaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHRoYSA9IHRoaXMudGhhICogTWF0aC5yYW5kb20oKTtcbiAgICB0aGlzLl91c2VWICYmIHRoaXMuZGlyVmVjLmNvcHkodGhpcy5kaXIpLnNjYWxhcih0aGlzLnJhZGl1c1Bhbi5nZXRWYWx1ZSgpKTtcblxuICAgIE1hdGhVdGlscy5nZXROb3JtYWwodGhpcy5kaXJWZWMsIG5vcm1hbCk7XG4gICAgdi5jb3B5KHRoaXMuZGlyVmVjKS5hcHBseUF4aXNBbmdsZShub3JtYWwsIHRoYSk7XG4gICAgdi5hcHBseUF4aXNBbmdsZSh0aGlzLmRpclZlYy5ub3JtYWxpemUoKSwgTWF0aC5yYW5kb20oKSAqIFBJICogMik7XG5cbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS5jb3B5KHYpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59KSgpO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/index.js",
    "content": "export { default as PolarVelocity } from './PolarVelocity';\nexport { default as RadialVelocity } from './RadialVelocity';\nexport { default as VectorVelocity } from './VectorVelocity';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiUG9sYXJWZWxvY2l0eSIsIlJhZGlhbFZlbG9jaXR5IiwiVmVjdG9yVmVsb2NpdHkiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsYUFBcEIsUUFBeUMsaUJBQXpDO0FBQ0EsU0FBU0QsT0FBTyxJQUFJRSxjQUFwQixRQUEwQyxrQkFBMUM7QUFDQSxTQUFTRixPQUFPLElBQUlHLGNBQXBCLFFBQTBDLGtCQUExQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgUG9sYXJWZWxvY2l0eSB9IGZyb20gJy4vUG9sYXJWZWxvY2l0eSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlhbFZlbG9jaXR5IH0gZnJvbSAnLi9SYWRpYWxWZWxvY2l0eSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZlY3RvclZlbG9jaXR5IH0gZnJvbSAnLi9WZWN0b3JWZWxvY2l0eSc7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/constants.js",
    "content": "import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { AdditiveBlending, CustomBlending, MultiplyBlending, NoBlending, NormalBlending, SubtractiveBlending } from '../core/three/';\nexport const SUPPORTED_MATERIAL_BLENDING_MODES = {\n  AdditiveBlending,\n  CustomBlending,\n  MultiplyBlending,\n  NoBlending,\n  NormalBlending,\n  SubtractiveBlending\n};\nexport const DEFAULT_MATERIAL_PROPERTIES = {\n  color: 0xff0000,\n  blending: AdditiveBlending,\n  fog: true\n};\nexport const DEFAULT_JSON_MATERIAL_PROPERTIES = _objectSpread(_objectSpread({}, DEFAULT_MATERIAL_PROPERTIES), {}, {\n  blending: 'AdditiveBlending'\n});\nexport const DEFAULT_RATE_NUM_PAN = 1;\nexport const DEFAULT_RATE_TIME_PAN = 1;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiQWRkaXRpdmVCbGVuZGluZyIsIkN1c3RvbUJsZW5kaW5nIiwiTXVsdGlwbHlCbGVuZGluZyIsIk5vQmxlbmRpbmciLCJOb3JtYWxCbGVuZGluZyIsIlN1YnRyYWN0aXZlQmxlbmRpbmciLCJTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVMiLCJERUZBVUxUX01BVEVSSUFMX1BST1BFUlRJRVMiLCJjb2xvciIsImJsZW5kaW5nIiwiZm9nIiwiREVGQVVMVF9KU09OX01BVEVSSUFMX1BST1BFUlRJRVMiLCJERUZBVUxUX1JBVEVfTlVNX1BBTiIsIkRFRkFVTFRfUkFURV9USU1FX1BBTiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FDRUEsZ0JBREYsRUFFRUMsY0FGRixFQUdFQyxnQkFIRixFQUlFQyxVQUpGLEVBS0VDLGNBTEYsRUFNRUMsbUJBTkYsUUFPTyxnQkFQUDtBQVNBLE9BQU8sTUFBTUMsaUNBQWlDLEdBQUc7QUFDL0NOLEVBQUFBLGdCQUQrQztBQUUvQ0MsRUFBQUEsY0FGK0M7QUFHL0NDLEVBQUFBLGdCQUgrQztBQUkvQ0MsRUFBQUEsVUFKK0M7QUFLL0NDLEVBQUFBLGNBTCtDO0FBTS9DQyxFQUFBQTtBQU4rQyxDQUExQztBQVNQLE9BQU8sTUFBTUUsMkJBQTJCLEdBQUc7QUFDekNDLEVBQUFBLEtBQUssRUFBRSxRQURrQztBQUV6Q0MsRUFBQUEsUUFBUSxFQUFFVCxnQkFGK0I7QUFHekNVLEVBQUFBLEdBQUcsRUFBRTtBQUhvQyxDQUFwQztBQUtQLE9BQU8sTUFBTUMsZ0NBQWdDLG1DQUN4Q0osMkJBRHdDO0FBRTNDRSxFQUFBQSxRQUFRLEVBQUU7QUFGaUMsRUFBdEM7QUFJUCxPQUFPLE1BQU1HLG9CQUFvQixHQUFHLENBQTdCO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxDQUE5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkZGl0aXZlQmxlbmRpbmcsXG4gIEN1c3RvbUJsZW5kaW5nLFxuICBNdWx0aXBseUJsZW5kaW5nLFxuICBOb0JsZW5kaW5nLFxuICBOb3JtYWxCbGVuZGluZyxcbiAgU3VidHJhY3RpdmVCbGVuZGluZyxcbn0gZnJvbSAnLi4vY29yZS90aHJlZS8nO1xuXG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTID0ge1xuICBBZGRpdGl2ZUJsZW5kaW5nLFxuICBDdXN0b21CbGVuZGluZyxcbiAgTXVsdGlwbHlCbGVuZGluZyxcbiAgTm9CbGVuZGluZyxcbiAgTm9ybWFsQmxlbmRpbmcsXG4gIFN1YnRyYWN0aXZlQmxlbmRpbmcsXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTID0ge1xuICBjb2xvcjogMHhmZjAwMDAsXG4gIGJsZW5kaW5nOiBBZGRpdGl2ZUJsZW5kaW5nLFxuICBmb2c6IHRydWUsXG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTID0ge1xuICAuLi5ERUZBVUxUX01BVEVSSUFMX1BST1BFUlRJRVMsXG4gIGJsZW5kaW5nOiAnQWRkaXRpdmVCbGVuZGluZycsXG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkFURV9OVU1fUEFOID0gMTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JBVEVfVElNRV9QQU4gPSAxO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/index.js",
    "content": "export { default as Body } from './Body';\nexport { default as BodySprite } from './BodySprite';\nexport { default as InitializerUtil } from './InitializerUtil';\nexport { default as Life } from './Life';\nexport { default as Mass } from './Mass';\nexport { default as Position } from './Position';\nexport { default as Rotation } from './Rotation';\nexport { default as Radius } from './Radius';\nexport { default as Rate } from './Rate';\nexport { default as Texture } from './Texture';\nexport { VectorVelocity, PolarVelocity, RadialVelocity } from './Velocity';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiQm9keSIsIkJvZHlTcHJpdGUiLCJJbml0aWFsaXplclV0aWwiLCJMaWZlIiwiTWFzcyIsIlBvc2l0aW9uIiwiUm90YXRpb24iLCJSYWRpdXMiLCJSYXRlIiwiVGV4dHVyZSIsIlZlY3RvclZlbG9jaXR5IiwiUG9sYXJWZWxvY2l0eSIsIlJhZGlhbFZlbG9jaXR5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU0QsT0FBTyxJQUFJRSxVQUFwQixRQUFzQyxjQUF0QztBQUNBLFNBQVNGLE9BQU8sSUFBSUcsZUFBcEIsUUFBMkMsbUJBQTNDO0FBQ0EsU0FBU0gsT0FBTyxJQUFJSSxJQUFwQixRQUFnQyxRQUFoQztBQUNBLFNBQVNKLE9BQU8sSUFBSUssSUFBcEIsUUFBZ0MsUUFBaEM7QUFDQSxTQUFTTCxPQUFPLElBQUlNLFFBQXBCLFFBQW9DLFlBQXBDO0FBQ0EsU0FBU04sT0FBTyxJQUFJTyxRQUFwQixRQUFvQyxZQUFwQztBQUNBLFNBQVNQLE9BQU8sSUFBSVEsTUFBcEIsUUFBa0MsVUFBbEM7QUFDQSxTQUFTUixPQUFPLElBQUlTLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU1QsT0FBTyxJQUFJVSxPQUFwQixRQUFtQyxXQUFuQztBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLGFBQXpCLEVBQXdDQyxjQUF4QyxRQUE4RCxZQUE5RCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgQm9keSB9IGZyb20gJy4vQm9keSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvZHlTcHJpdGUgfSBmcm9tICcuL0JvZHlTcHJpdGUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbml0aWFsaXplclV0aWwgfSBmcm9tICcuL0luaXRpYWxpemVyVXRpbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpZmUgfSBmcm9tICcuL0xpZmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXNzIH0gZnJvbSAnLi9NYXNzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9zaXRpb24gfSBmcm9tICcuL1Bvc2l0aW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm90YXRpb24gfSBmcm9tICcuL1JvdGF0aW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaXVzIH0gZnJvbSAnLi9SYWRpdXMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYXRlIH0gZnJvbSAnLi9SYXRlJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dHVyZSB9IGZyb20gJy4vVGV4dHVyZSc7XG5leHBvcnQgeyBWZWN0b3JWZWxvY2l0eSwgUG9sYXJWZWxvY2l0eSwgUmFkaWFsVmVsb2NpdHkgfSBmcm9tICcuL1ZlbG9jaXR5JztcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/initializer/types.js",
    "content": "export const INITIALIZER_TYPE_ABSTRACT = 'Initializer';\nexport const INITIALIZER_TYPE_BODY = 'Body';\nexport const INITIALIZER_TYPE_BODY_SPRITE = 'BodySprite';\nexport const INITIALIZER_TYPE_TEXTURE = 'Texture';\nexport const INITIALIZER_TYPE_LIFE = 'Life';\nexport const INITIALIZER_TYPE_MASS = 'Mass';\nexport const INITIALIZER_TYPE_POSITION = 'Position';\nexport const INITIALIZER_TYPE_ROTATION = 'Rotation';\nexport const INITIALIZER_TYPE_RADIUS = 'Radius';\nexport const INITIALIZER_TYPE_ZONE = 'Zone';\nexport const INITIALIZER_TYPE_VECTOR_VELOCITY = 'VectorVelocity';\nexport const INITIALIZER_TYPE_POLAR_VELOCITY = 'PolarVelocity';\nexport const INITIALIZER_TYPE_RADIAL_VELOCITY = 'RadialVelocity';\nexport const INITIALIZER_TYPE_RATE = 'Rate';\nexport const INITIALIZER_TYPES_THAT_REQUIRE_THREE = [INITIALIZER_TYPE_BODY_SPRITE, INITIALIZER_TYPE_TEXTURE];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci90eXBlcy5qcyJdLCJuYW1lcyI6WyJJTklUSUFMSVpFUl9UWVBFX0FCU1RSQUNUIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZX1NQUklURSIsIklOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSIsIklOSVRJQUxJWkVSX1RZUEVfTElGRSIsIklOSVRJQUxJWkVSX1RZUEVfTUFTUyIsIklOSVRJQUxJWkVSX1RZUEVfUE9TSVRJT04iLCJJTklUSUFMSVpFUl9UWVBFX1JPVEFUSU9OIiwiSU5JVElBTElaRVJfVFlQRV9SQURJVVMiLCJJTklUSUFMSVpFUl9UWVBFX1pPTkUiLCJJTklUSUFMSVpFUl9UWVBFX1ZFQ1RPUl9WRUxPQ0lUWSIsIklOSVRJQUxJWkVSX1RZUEVfUE9MQVJfVkVMT0NJVFkiLCJJTklUSUFMSVpFUl9UWVBFX1JBRElBTF9WRUxPQ0lUWSIsIklOSVRJQUxJWkVSX1RZUEVfUkFURSIsIklOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSx5QkFBeUIsR0FBRyxhQUFsQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUcsTUFBOUI7QUFDUCxPQUFPLE1BQU1DLDRCQUE0QixHQUFHLFlBQXJDO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxTQUFqQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUcsTUFBOUI7QUFDUCxPQUFPLE1BQU1DLHFCQUFxQixHQUFHLE1BQTlCO0FBQ1AsT0FBTyxNQUFNQyx5QkFBeUIsR0FBRyxVQUFsQztBQUNQLE9BQU8sTUFBTUMseUJBQXlCLEdBQUcsVUFBbEM7QUFDUCxPQUFPLE1BQU1DLHVCQUF1QixHQUFHLFFBQWhDO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxNQUE5QjtBQUNQLE9BQU8sTUFBTUMsZ0NBQWdDLEdBQUcsZ0JBQXpDO0FBQ1AsT0FBTyxNQUFNQywrQkFBK0IsR0FBRyxlQUF4QztBQUNQLE9BQU8sTUFBTUMsZ0NBQWdDLEdBQUcsZ0JBQXpDO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxNQUE5QjtBQUNQLE9BQU8sTUFBTUMsb0NBQW9DLEdBQUcsQ0FDbERaLDRCQURrRCxFQUVsREMsd0JBRmtELENBQTdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfQUJTVFJBQ1QgPSAnSW5pdGlhbGl6ZXInO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfQk9EWSA9ICdCb2R5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFID0gJ0JvZHlTcHJpdGUnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSA9ICdUZXh0dXJlJztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX0xJRkUgPSAnTGlmZSc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRV9NQVNTID0gJ01hc3MnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUE9TSVRJT04gPSAnUG9zaXRpb24nO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUk9UQVRJT04gPSAnUm90YXRpb24nO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUkFESVVTID0gJ1JhZGl1cyc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRV9aT05FID0gJ1pvbmUnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfVkVDVE9SX1ZFTE9DSVRZID0gJ1ZlY3RvclZlbG9jaXR5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX1BPTEFSX1ZFTE9DSVRZID0gJ1BvbGFyVmVsb2NpdHknO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUkFESUFMX1ZFTE9DSVRZID0gJ1JhZGlhbFZlbG9jaXR5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX1JBVEUgPSAnUmF0ZSc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFID0gW1xuICBJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFLFxuICBJTklUSUFMSVpFUl9UWVBFX1RFWFRVUkUsXG5dO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/ArraySpan.js",
    "content": "import Span from './Span';\nimport sample from '../utils/sample.js';\nimport { MATH_TYPE_ARRAY_SPAN as type } from './types';\n/**\n * Class for storing items of mixed type and fetching a randomised\n * value from these items.\n *\n */\n\nexport default class ArraySpan extends Span {\n  /**\n   * Constructs an ArraySpan instance.\n   *\n   * @param {mixed|array<mixed>} items - Items\n   * @return void\n   */\n  constructor(items) {\n    super();\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n    /**\n     * @desc An array of colors\n     * @type {array}\n     */\n\n    this.items = Array.isArray(items) ? items : [items];\n  }\n  /**\n   * Gets a random item.\n   *\n   * @return {mixed}\n   */\n\n\n  getValue() {\n    return sample(this.items);\n  }\n\n}\n/**\n * Attempts to create an ArraySpan from the items provided.\n *\n * @param {mixed} items - Items to try and create an ArraySpan from\n * @return {?ArraySpan}\n */\n\nexport const createArraySpan = items => {\n  if (!items) {\n    return null;\n  }\n\n  if (items instanceof ArraySpan) {\n    return items;\n  }\n\n  return new ArraySpan(items);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0FycmF5U3Bhbi5qcyJdLCJuYW1lcyI6WyJTcGFuIiwic2FtcGxlIiwiTUFUSF9UWVBFX0FSUkFZX1NQQU4iLCJ0eXBlIiwiQXJyYXlTcGFuIiwiY29uc3RydWN0b3IiLCJpdGVtcyIsIkFycmF5IiwiaXNBcnJheSIsImdldFZhbHVlIiwiY3JlYXRlQXJyYXlTcGFuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixlQUFuQjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxTQUFOLFNBQXdCSixJQUF4QixDQUE2QjtBQUMxQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxLQUFELEVBQVE7QUFDakI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSCxJQUFMLEdBQVlBLElBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLRyxLQUFMLEdBQWFDLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixLQUFkLElBQXVCQSxLQUF2QixHQUErQixDQUFDQSxLQUFELENBQTVDO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsV0FBT1IsTUFBTSxDQUFDLEtBQUtLLEtBQU4sQ0FBYjtBQUNEOztBQTlCeUM7QUFpQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1JLGVBQWUsR0FBR0osS0FBSyxJQUFJO0FBQ3RDLE1BQUksQ0FBQ0EsS0FBTCxFQUFZO0FBQ1YsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsTUFBSUEsS0FBSyxZQUFZRixTQUFyQixFQUFnQztBQUM5QixXQUFPRSxLQUFQO0FBQ0Q7O0FBRUQsU0FBTyxJQUFJRixTQUFKLENBQWNFLEtBQWQsQ0FBUDtBQUNELENBVk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3BhbiBmcm9tICcuL1NwYW4nO1xuaW1wb3J0IHNhbXBsZSBmcm9tICdsb2Rhc2gvc2FtcGxlJztcbmltcG9ydCB7IE1BVEhfVFlQRV9BUlJBWV9TUEFOIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBDbGFzcyBmb3Igc3RvcmluZyBpdGVtcyBvZiBtaXhlZCB0eXBlIGFuZCBmZXRjaGluZyBhIHJhbmRvbWlzZWRcbiAqIHZhbHVlIGZyb20gdGhlc2UgaXRlbXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcnJheVNwYW4gZXh0ZW5kcyBTcGFuIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gQXJyYXlTcGFuIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge21peGVkfGFycmF5PG1peGVkPn0gaXRlbXMgLSBJdGVtc1xuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGl0ZW1zKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIEFuIGFycmF5IG9mIGNvbG9yc1xuICAgICAqIEB0eXBlIHthcnJheX1cbiAgICAgKi9cbiAgICB0aGlzLml0ZW1zID0gQXJyYXkuaXNBcnJheShpdGVtcykgPyBpdGVtcyA6IFtpdGVtc107XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHJhbmRvbSBpdGVtLlxuICAgKlxuICAgKiBAcmV0dXJuIHttaXhlZH1cbiAgICovXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiBzYW1wbGUodGhpcy5pdGVtcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBdHRlbXB0cyB0byBjcmVhdGUgYW4gQXJyYXlTcGFuIGZyb20gdGhlIGl0ZW1zIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSB7bWl4ZWR9IGl0ZW1zIC0gSXRlbXMgdG8gdHJ5IGFuZCBjcmVhdGUgYW4gQXJyYXlTcGFuIGZyb21cbiAqIEByZXR1cm4gez9BcnJheVNwYW59XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVBcnJheVNwYW4gPSBpdGVtcyA9PiB7XG4gIGlmICghaXRlbXMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChpdGVtcyBpbnN0YW5jZW9mIEFycmF5U3Bhbikge1xuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHJldHVybiBuZXcgQXJyYXlTcGFuKGl0ZW1zKTtcbn07XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/Box.js",
    "content": "import { MATH_TYPE_BOX as type } from './types';\nexport default class Box {\n  constructor(x, y, z, w, h, d) {\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n    this.type = type;\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    this.width = w;\n    this.height = h;\n    this.depth = d;\n    this.bottom = this.y + this.height;\n    this.right = this.x + this.width;\n    this.right = this.x + this.width;\n  }\n\n  contains(x, y, z) {\n    if (x <= this.right && x >= this.x && y <= this.bottom && y >= this.y && z <= this.depth && z >= this.z) return true;else return false;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0JveC5qcyJdLCJuYW1lcyI6WyJNQVRIX1RZUEVfQk9YIiwidHlwZSIsIkJveCIsImNvbnN0cnVjdG9yIiwieCIsInkiLCJ6IiwidyIsImgiLCJkIiwid2lkdGgiLCJoZWlnaHQiLCJkZXB0aCIsImJvdHRvbSIsInJpZ2h0IiwiY29udGFpbnMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsSUFBSUMsSUFBMUIsUUFBc0MsU0FBdEM7QUFFQSxlQUFlLE1BQU1DLEdBQU4sQ0FBVTtBQUN2QkMsRUFBQUEsV0FBVyxDQUFDQyxDQUFELEVBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxDQUFWLEVBQWFDLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CO0FBQzVCO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS1IsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0csQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0ksS0FBTCxHQUFhSCxDQUFiO0FBQ0EsU0FBS0ksTUFBTCxHQUFjSCxDQUFkO0FBQ0EsU0FBS0ksS0FBTCxHQUFhSCxDQUFiO0FBQ0EsU0FBS0ksTUFBTCxHQUFjLEtBQUtSLENBQUwsR0FBUyxLQUFLTSxNQUE1QjtBQUNBLFNBQUtHLEtBQUwsR0FBYSxLQUFLVixDQUFMLEdBQVMsS0FBS00sS0FBM0I7QUFDQSxTQUFLSSxLQUFMLEdBQWEsS0FBS1YsQ0FBTCxHQUFTLEtBQUtNLEtBQTNCO0FBQ0Q7O0FBRURLLEVBQUFBLFFBQVEsQ0FBQ1gsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVTtBQUNoQixRQUNFRixDQUFDLElBQUksS0FBS1UsS0FBVixJQUNBVixDQUFDLElBQUksS0FBS0EsQ0FEVixJQUVBQyxDQUFDLElBQUksS0FBS1EsTUFGVixJQUdBUixDQUFDLElBQUksS0FBS0EsQ0FIVixJQUlBQyxDQUFDLElBQUksS0FBS00sS0FKVixJQUtBTixDQUFDLElBQUksS0FBS0EsQ0FOWixFQVFFLE9BQU8sSUFBUCxDQVJGLEtBU0ssT0FBTyxLQUFQO0FBQ047O0FBN0JzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1BVEhfVFlQRV9CT1ggYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCb3gge1xuICBjb25zdHJ1Y3Rvcih4LCB5LCB6LCB3LCBoLCBkKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgICB0aGlzLnogPSB6O1xuICAgIHRoaXMud2lkdGggPSB3O1xuICAgIHRoaXMuaGVpZ2h0ID0gaDtcbiAgICB0aGlzLmRlcHRoID0gZDtcbiAgICB0aGlzLmJvdHRvbSA9IHRoaXMueSArIHRoaXMuaGVpZ2h0O1xuICAgIHRoaXMucmlnaHQgPSB0aGlzLnggKyB0aGlzLndpZHRoO1xuICAgIHRoaXMucmlnaHQgPSB0aGlzLnggKyB0aGlzLndpZHRoO1xuICB9XG5cbiAgY29udGFpbnMoeCwgeSwgeikge1xuICAgIGlmIChcbiAgICAgIHggPD0gdGhpcy5yaWdodCAmJlxuICAgICAgeCA+PSB0aGlzLnggJiZcbiAgICAgIHkgPD0gdGhpcy5ib3R0b20gJiZcbiAgICAgIHkgPj0gdGhpcy55ICYmXG4gICAgICB6IDw9IHRoaXMuZGVwdGggJiZcbiAgICAgIHogPj0gdGhpcy56XG4gICAgKVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/ColorSpan.js",
    "content": "import MathUtils from './MathUtils';\nimport Span from './Span';\nimport sample from '../utils/sample.js';\nimport { MATH_TYPE_COLOR_SPAN as type } from './types';\n/**\n * Class for storing and interacting with an array of colours.\n *\n */\n\nexport default class ColorSpan extends Span {\n  /**\n   * Constructs a ColorSpan instance.\n   *\n   * @param {string|array<string>} colors - A color or array of colors. If the\n   * string 'random' is provided, a random color will be returned from getValue\n   * @return void\n   */\n  constructor(colors) {\n    super();\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n    /**\n     * @desc Determines if a random color should be returned from the getValue method.\n     * @type {boolean}\n     */\n\n    this.shouldRandomize = colors === 'random' ? true : false;\n    /**\n     * @desc An array of colors to select from\n     * @type {array<string>}\n     */\n\n    this.colors = Array.isArray(colors) ? colors : [colors];\n  }\n  /**\n   * Gets a color from the color array\n   * or a random color if this.shouldRandomize is true.\n   *\n   * @return {string} a hex color\n   */\n\n\n  getValue() {\n    return this.shouldRandomize ? MathUtils.randomColor() : sample(this.colors);\n  }\n\n}\n/**\n * Attempts to create an ArraySpan from the colors provided.\n *\n * @param {mixed} colors - colors to try and create an ArraySpan from\n * @return {?ColorSpan}\n */\n\nexport const createColorSpan = colors => {\n  if (!colors) {\n    console.warn(`Invalid colors argument ${colors} passed to createColorSpan. Defaulting to 'random'.`);\n    colors = 'random';\n  }\n\n  if (colors instanceof ColorSpan) {\n    return colors;\n  }\n\n  return new ColorSpan(colors);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0NvbG9yU3Bhbi5qcyJdLCJuYW1lcyI6WyJNYXRoVXRpbHMiLCJTcGFuIiwic2FtcGxlIiwiTUFUSF9UWVBFX0NPTE9SX1NQQU4iLCJ0eXBlIiwiQ29sb3JTcGFuIiwiY29uc3RydWN0b3IiLCJjb2xvcnMiLCJzaG91bGRSYW5kb21pemUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRWYWx1ZSIsInJhbmRvbUNvbG9yIiwiY3JlYXRlQ29sb3JTcGFuIiwiY29uc29sZSIsIndhcm4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixlQUFuQjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkosSUFBeEIsQ0FBNkI7QUFDMUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxNQUFELEVBQVM7QUFDbEI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSCxJQUFMLEdBQVlBLElBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSSxlQUFMLEdBQXVCRCxNQUFNLEtBQUssUUFBWCxHQUFzQixJQUF0QixHQUE2QixLQUFwRDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtBLE1BQUwsR0FBY0UsS0FBSyxDQUFDQyxPQUFOLENBQWNILE1BQWQsSUFBd0JBLE1BQXhCLEdBQWlDLENBQUNBLE1BQUQsQ0FBL0M7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLFFBQVEsR0FBRztBQUNULFdBQU8sS0FBS0gsZUFBTCxHQUF1QlIsU0FBUyxDQUFDWSxXQUFWLEVBQXZCLEdBQWlEVixNQUFNLENBQUMsS0FBS0ssTUFBTixDQUE5RDtBQUNEOztBQXRDeUM7QUF5QzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1NLGVBQWUsR0FBR04sTUFBTSxJQUFJO0FBQ3ZDLE1BQUksQ0FBQ0EsTUFBTCxFQUFhO0FBQ1hPLElBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUNHLDJCQUEwQlIsTUFBTyxxREFEcEM7QUFJQUEsSUFBQUEsTUFBTSxHQUFHLFFBQVQ7QUFDRDs7QUFFRCxNQUFJQSxNQUFNLFlBQVlGLFNBQXRCLEVBQWlDO0FBQy9CLFdBQU9FLE1BQVA7QUFDRDs7QUFFRCxTQUFPLElBQUlGLFNBQUosQ0FBY0UsTUFBZCxDQUFQO0FBQ0QsQ0FkTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXRoVXRpbHMgZnJvbSAnLi9NYXRoVXRpbHMnO1xuaW1wb3J0IFNwYW4gZnJvbSAnLi9TcGFuJztcbmltcG9ydCBzYW1wbGUgZnJvbSAnbG9kYXNoL3NhbXBsZSc7XG5pbXBvcnQgeyBNQVRIX1RZUEVfQ09MT1JfU1BBTiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ2xhc3MgZm9yIHN0b3JpbmcgYW5kIGludGVyYWN0aW5nIHdpdGggYW4gYXJyYXkgb2YgY29sb3Vycy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbG9yU3BhbiBleHRlbmRzIFNwYW4ge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIENvbG9yU3BhbiBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8YXJyYXk8c3RyaW5nPn0gY29sb3JzIC0gQSBjb2xvciBvciBhcnJheSBvZiBjb2xvcnMuIElmIHRoZVxuICAgKiBzdHJpbmcgJ3JhbmRvbScgaXMgcHJvdmlkZWQsIGEgcmFuZG9tIGNvbG9yIHdpbGwgYmUgcmV0dXJuZWQgZnJvbSBnZXRWYWx1ZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbG9ycykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY2xhc3MgdHlwZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIGlmIGEgcmFuZG9tIGNvbG9yIHNob3VsZCBiZSByZXR1cm5lZCBmcm9tIHRoZSBnZXRWYWx1ZSBtZXRob2QuXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgdGhpcy5zaG91bGRSYW5kb21pemUgPSBjb2xvcnMgPT09ICdyYW5kb20nID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgQW4gYXJyYXkgb2YgY29sb3JzIHRvIHNlbGVjdCBmcm9tXG4gICAgICogQHR5cGUge2FycmF5PHN0cmluZz59XG4gICAgICovXG4gICAgdGhpcy5jb2xvcnMgPSBBcnJheS5pc0FycmF5KGNvbG9ycykgPyBjb2xvcnMgOiBbY29sb3JzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY29sb3IgZnJvbSB0aGUgY29sb3IgYXJyYXlcbiAgICogb3IgYSByYW5kb20gY29sb3IgaWYgdGhpcy5zaG91bGRSYW5kb21pemUgaXMgdHJ1ZS5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBhIGhleCBjb2xvclxuICAgKi9cbiAgZ2V0VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkUmFuZG9taXplID8gTWF0aFV0aWxzLnJhbmRvbUNvbG9yKCkgOiBzYW1wbGUodGhpcy5jb2xvcnMpO1xuICB9XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gY3JlYXRlIGFuIEFycmF5U3BhbiBmcm9tIHRoZSBjb2xvcnMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHttaXhlZH0gY29sb3JzIC0gY29sb3JzIHRvIHRyeSBhbmQgY3JlYXRlIGFuIEFycmF5U3BhbiBmcm9tXG4gKiBAcmV0dXJuIHs/Q29sb3JTcGFufVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQ29sb3JTcGFuID0gY29sb3JzID0+IHtcbiAgaWYgKCFjb2xvcnMpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgSW52YWxpZCBjb2xvcnMgYXJndW1lbnQgJHtjb2xvcnN9IHBhc3NlZCB0byBjcmVhdGVDb2xvclNwYW4uIERlZmF1bHRpbmcgdG8gJ3JhbmRvbScuYFxuICAgICk7XG5cbiAgICBjb2xvcnMgPSAncmFuZG9tJztcbiAgfVxuXG4gIGlmIChjb2xvcnMgaW5zdGFuY2VvZiBDb2xvclNwYW4pIHtcbiAgICByZXR1cm4gY29sb3JzO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBDb2xvclNwYW4oY29sb3JzKTtcbn07XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/MathUtils.js",
    "content": "import { PI } from '../constants';\nexport default {\n  randomAToB: function (a, b, INT) {\n    if (!INT) return a + Math.random() * (b - a);else return (Math.random() * (b - a) >> 0) + a;\n  },\n  randomFloating: function (center, f, INT) {\n    return this.randomAToB(center - f, center + f, INT);\n  },\n  randomZone: function (display) {},\n  //eslint-disable-line\n  degreeTransform: function (a) {\n    return a * PI / 180;\n  },\n  toColor16: function getRGB(num) {\n    return '#' + num.toString(16);\n  },\n  randomColor: function () {\n    return '#' + ('00000' + (Math.random() * 0x1000000 << 0).toString(16)).slice(-6);\n  },\n  lerp: function (a, b, energy) {\n    return b + (a - b) * energy;\n  },\n  getNormal: function (v, n) {\n    if (v.x == 0 && v.y == 0) {\n      if (v.z == 0) n.set(1, 0, 1);else n.set(1, 1, -v.y / v.z);\n    } else {\n      if (v.x == 0) n.set(1, 0, 1);else n.set(-v.y / v.x, 1, 1);\n    }\n\n    return n.normalize();\n  },\n\n  /**\n   * Rodrigues' Rotation Formula\n   * https://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula\n   * v′ = vcos(θ) + k(k⋅v)(1−cos(θ)) + (k*v)sin(θ)\n   */\n  axisRotate: function (v0, v, k, tha) {\n    var cos = Math.cos(tha);\n    var sin = Math.sin(tha);\n    var p = k.dot(v) * (1 - cos);\n    v0.copy(k);\n    v0.cross(v).scalar(sin);\n    v0.addValue(v.x * cos, v.y * cos, v.z * cos);\n    v0.addValue(k.x * p, k.y * p, k.z * p);\n  }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL01hdGhVdGlscy5qcyJdLCJuYW1lcyI6WyJQSSIsInJhbmRvbUFUb0IiLCJhIiwiYiIsIklOVCIsIk1hdGgiLCJyYW5kb20iLCJyYW5kb21GbG9hdGluZyIsImNlbnRlciIsImYiLCJyYW5kb21ab25lIiwiZGlzcGxheSIsImRlZ3JlZVRyYW5zZm9ybSIsInRvQ29sb3IxNiIsImdldFJHQiIsIm51bSIsInRvU3RyaW5nIiwicmFuZG9tQ29sb3IiLCJzbGljZSIsImxlcnAiLCJlbmVyZ3kiLCJnZXROb3JtYWwiLCJ2IiwibiIsIngiLCJ5IiwieiIsInNldCIsIm5vcm1hbGl6ZSIsImF4aXNSb3RhdGUiLCJ2MCIsImsiLCJ0aGEiLCJjb3MiLCJzaW4iLCJwIiwiZG90IiwiY29weSIsImNyb3NzIiwic2NhbGFyIiwiYWRkVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQVQsUUFBbUIsY0FBbkI7QUFFQSxlQUFlO0FBQ2JDLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxDQUFULEVBQVlDLENBQVosRUFBZUMsR0FBZixFQUFvQjtBQUM5QixRQUFJLENBQUNBLEdBQUwsRUFBVSxPQUFPRixDQUFDLEdBQUdHLElBQUksQ0FBQ0MsTUFBTCxNQUFpQkgsQ0FBQyxHQUFHRCxDQUFyQixDQUFYLENBQVYsS0FDSyxPQUFPLENBQUVHLElBQUksQ0FBQ0MsTUFBTCxNQUFpQkgsQ0FBQyxHQUFHRCxDQUFyQixDQUFELElBQTZCLENBQTlCLElBQW1DQSxDQUExQztBQUNOLEdBSlk7QUFLYkssRUFBQUEsY0FBYyxFQUFFLFVBQVNDLE1BQVQsRUFBaUJDLENBQWpCLEVBQW9CTCxHQUFwQixFQUF5QjtBQUN2QyxXQUFPLEtBQUtILFVBQUwsQ0FBZ0JPLE1BQU0sR0FBR0MsQ0FBekIsRUFBNEJELE1BQU0sR0FBR0MsQ0FBckMsRUFBd0NMLEdBQXhDLENBQVA7QUFDRCxHQVBZO0FBU2JNLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxPQUFULEVBQWtCLENBQUUsQ0FUbkI7QUFTcUI7QUFFbENDLEVBQUFBLGVBQWUsRUFBRSxVQUFTVixDQUFULEVBQVk7QUFDM0IsV0FBUUEsQ0FBQyxHQUFHRixFQUFMLEdBQVcsR0FBbEI7QUFDRCxHQWJZO0FBZWJhLEVBQUFBLFNBQVMsRUFBRSxTQUFTQyxNQUFULENBQWdCQyxHQUFoQixFQUFxQjtBQUM5QixXQUFPLE1BQU1BLEdBQUcsQ0FBQ0MsUUFBSixDQUFhLEVBQWIsQ0FBYjtBQUNELEdBakJZO0FBbUJiQyxFQUFBQSxXQUFXLEVBQUUsWUFBVztBQUN0QixXQUNFLE1BQ0EsQ0FBQyxVQUFVLENBQUVaLElBQUksQ0FBQ0MsTUFBTCxLQUFnQixTQUFqQixJQUErQixDQUFoQyxFQUFtQ1UsUUFBbkMsQ0FBNEMsRUFBNUMsQ0FBWCxFQUE0REUsS0FBNUQsQ0FBa0UsQ0FBQyxDQUFuRSxDQUZGO0FBSUQsR0F4Qlk7QUEwQmJDLEVBQUFBLElBQUksRUFBRSxVQUFTakIsQ0FBVCxFQUFZQyxDQUFaLEVBQWVpQixNQUFmLEVBQXVCO0FBQzNCLFdBQU9qQixDQUFDLEdBQUcsQ0FBQ0QsQ0FBQyxHQUFHQyxDQUFMLElBQVVpQixNQUFyQjtBQUNELEdBNUJZO0FBOEJiQyxFQUFBQSxTQUFTLEVBQUUsVUFBU0MsQ0FBVCxFQUFZQyxDQUFaLEVBQWU7QUFDeEIsUUFBSUQsQ0FBQyxDQUFDRSxDQUFGLElBQU8sQ0FBUCxJQUFZRixDQUFDLENBQUNHLENBQUYsSUFBTyxDQUF2QixFQUEwQjtBQUN4QixVQUFJSCxDQUFDLENBQUNJLENBQUYsSUFBTyxDQUFYLEVBQWNILENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBWixFQUFkLEtBQ0tKLENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBQ0wsQ0FBQyxDQUFDRyxDQUFILEdBQU9ILENBQUMsQ0FBQ0ksQ0FBckI7QUFDTixLQUhELE1BR087QUFDTCxVQUFJSixDQUFDLENBQUNFLENBQUYsSUFBTyxDQUFYLEVBQWNELENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBWixFQUFkLEtBQ0tKLENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQUNMLENBQUMsQ0FBQ0csQ0FBSCxHQUFPSCxDQUFDLENBQUNFLENBQWYsRUFBa0IsQ0FBbEIsRUFBcUIsQ0FBckI7QUFDTjs7QUFFRCxXQUFPRCxDQUFDLENBQUNLLFNBQUYsRUFBUDtBQUNELEdBeENZOztBQTBDYjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxFQUFULEVBQWFSLENBQWIsRUFBZ0JTLENBQWhCLEVBQW1CQyxHQUFuQixFQUF3QjtBQUNsQyxRQUFJQyxHQUFHLEdBQUc1QixJQUFJLENBQUM0QixHQUFMLENBQVNELEdBQVQsQ0FBVjtBQUNBLFFBQUlFLEdBQUcsR0FBRzdCLElBQUksQ0FBQzZCLEdBQUwsQ0FBU0YsR0FBVCxDQUFWO0FBQ0EsUUFBSUcsQ0FBQyxHQUFHSixDQUFDLENBQUNLLEdBQUYsQ0FBTWQsQ0FBTixLQUFZLElBQUlXLEdBQWhCLENBQVI7QUFFQUgsSUFBQUEsRUFBRSxDQUFDTyxJQUFILENBQVFOLENBQVI7QUFDQUQsSUFBQUEsRUFBRSxDQUFDUSxLQUFILENBQVNoQixDQUFULEVBQVlpQixNQUFaLENBQW1CTCxHQUFuQjtBQUNBSixJQUFBQSxFQUFFLENBQUNVLFFBQUgsQ0FBWWxCLENBQUMsQ0FBQ0UsQ0FBRixHQUFNUyxHQUFsQixFQUF1QlgsQ0FBQyxDQUFDRyxDQUFGLEdBQU1RLEdBQTdCLEVBQWtDWCxDQUFDLENBQUNJLENBQUYsR0FBTU8sR0FBeEM7QUFDQUgsSUFBQUEsRUFBRSxDQUFDVSxRQUFILENBQVlULENBQUMsQ0FBQ1AsQ0FBRixHQUFNVyxDQUFsQixFQUFxQkosQ0FBQyxDQUFDTixDQUFGLEdBQU1VLENBQTNCLEVBQThCSixDQUFDLENBQUNMLENBQUYsR0FBTVMsQ0FBcEM7QUFDRDtBQXhEWSxDQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUEkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHJhbmRvbUFUb0I6IGZ1bmN0aW9uKGEsIGIsIElOVCkge1xuICAgIGlmICghSU5UKSByZXR1cm4gYSArIE1hdGgucmFuZG9tKCkgKiAoYiAtIGEpO1xuICAgIGVsc2UgcmV0dXJuICgoTWF0aC5yYW5kb20oKSAqIChiIC0gYSkpID4+IDApICsgYTtcbiAgfSxcbiAgcmFuZG9tRmxvYXRpbmc6IGZ1bmN0aW9uKGNlbnRlciwgZiwgSU5UKSB7XG4gICAgcmV0dXJuIHRoaXMucmFuZG9tQVRvQihjZW50ZXIgLSBmLCBjZW50ZXIgKyBmLCBJTlQpO1xuICB9LFxuXG4gIHJhbmRvbVpvbmU6IGZ1bmN0aW9uKGRpc3BsYXkpIHt9LCAvL2VzbGludC1kaXNhYmxlLWxpbmVcblxuICBkZWdyZWVUcmFuc2Zvcm06IGZ1bmN0aW9uKGEpIHtcbiAgICByZXR1cm4gKGEgKiBQSSkgLyAxODA7XG4gIH0sXG5cbiAgdG9Db2xvcjE2OiBmdW5jdGlvbiBnZXRSR0IobnVtKSB7XG4gICAgcmV0dXJuICcjJyArIG51bS50b1N0cmluZygxNik7XG4gIH0sXG5cbiAgcmFuZG9tQ29sb3I6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAoXG4gICAgICAnIycgK1xuICAgICAgKCcwMDAwMCcgKyAoKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDApIDw8IDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpXG4gICAgKTtcbiAgfSxcblxuICBsZXJwOiBmdW5jdGlvbihhLCBiLCBlbmVyZ3kpIHtcbiAgICByZXR1cm4gYiArIChhIC0gYikgKiBlbmVyZ3k7XG4gIH0sXG5cbiAgZ2V0Tm9ybWFsOiBmdW5jdGlvbih2LCBuKSB7XG4gICAgaWYgKHYueCA9PSAwICYmIHYueSA9PSAwKSB7XG4gICAgICBpZiAodi56ID09IDApIG4uc2V0KDEsIDAsIDEpO1xuICAgICAgZWxzZSBuLnNldCgxLCAxLCAtdi55IC8gdi56KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHYueCA9PSAwKSBuLnNldCgxLCAwLCAxKTtcbiAgICAgIGVsc2Ugbi5zZXQoLXYueSAvIHYueCwgMSwgMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG4ubm9ybWFsaXplKCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJvZHJpZ3VlcycgUm90YXRpb24gRm9ybXVsYVxuICAgKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Sb2RyaWd1ZXMlMjdfcm90YXRpb25fZm9ybXVsYVxuICAgKiB24oCyID0gdmNvcyjOuCkgKyBrKGvii4V2KSgx4oiSY29zKM64KSkgKyAoayp2KXNpbijOuClcbiAgICovXG4gIGF4aXNSb3RhdGU6IGZ1bmN0aW9uKHYwLCB2LCBrLCB0aGEpIHtcbiAgICB2YXIgY29zID0gTWF0aC5jb3ModGhhKTtcbiAgICB2YXIgc2luID0gTWF0aC5zaW4odGhhKTtcbiAgICB2YXIgcCA9IGsuZG90KHYpICogKDEgLSBjb3MpO1xuXG4gICAgdjAuY29weShrKTtcbiAgICB2MC5jcm9zcyh2KS5zY2FsYXIoc2luKTtcbiAgICB2MC5hZGRWYWx1ZSh2LnggKiBjb3MsIHYueSAqIGNvcywgdi56ICogY29zKTtcbiAgICB2MC5hZGRWYWx1ZShrLnggKiBwLCBrLnkgKiBwLCBrLnogKiBwKTtcbiAgfVxufTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/Polar3D.js",
    "content": "import Vector3D from './Vector3D';\nimport { MATH_TYPE_POLAR_3D as type } from './types';\nexport default class Polar3D {\n  constructor(radius, theta, phi) {\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n    this.type = type;\n    this.radius = radius || 1;\n    this.phi = phi || 0;\n    this.theta = theta || 0;\n  }\n\n  set(radius, theta, phi) {\n    this.radius = radius || 1;\n    this.phi = phi || 0;\n    this.theta = theta || 0;\n    return this;\n  }\n\n  setRadius(radius) {\n    this.radius = radius;\n    return this;\n  }\n\n  setPhi(phi) {\n    this.phi = phi;\n    return this;\n  }\n\n  setTheta(theta) {\n    this.theta = theta;\n    return this;\n  }\n\n  copy(p) {\n    this.radius = p.radius;\n    this.phi = p.phi;\n    this.theta = p.theta;\n    return this;\n  }\n\n  toVector3D() {\n    return new Vector3D(this.getX(), this.getY(), this.getZ());\n  }\n\n  getX() {\n    return this.radius * Math.sin(this.theta) * Math.cos(this.phi);\n  }\n\n  getY() {\n    return -this.radius * Math.sin(this.theta) * Math.sin(this.phi);\n  }\n\n  getZ() {\n    return this.radius * Math.cos(this.theta);\n  }\n\n  normalize() {\n    this.radius = 1;\n    return this;\n  }\n\n  equals(v) {\n    return v.radius === this.radius && v.phi === this.phi && v.theta === this.theta;\n  }\n\n  clear() {\n    this.radius = 0.0;\n    this.phi = 0.0;\n    this.theta = 0.0;\n    return this;\n  }\n\n  clone() {\n    return new Polar3D(this.radius, this.phi, this.theta);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL1BvbGFyM0QuanMiXSwibmFtZXMiOlsiVmVjdG9yM0QiLCJNQVRIX1RZUEVfUE9MQVJfM0QiLCJ0eXBlIiwiUG9sYXIzRCIsImNvbnN0cnVjdG9yIiwicmFkaXVzIiwidGhldGEiLCJwaGkiLCJzZXQiLCJzZXRSYWRpdXMiLCJzZXRQaGkiLCJzZXRUaGV0YSIsImNvcHkiLCJwIiwidG9WZWN0b3IzRCIsImdldFgiLCJnZXRZIiwiZ2V0WiIsIk1hdGgiLCJzaW4iLCJjb3MiLCJub3JtYWxpemUiLCJlcXVhbHMiLCJ2IiwiY2xlYXIiLCJjbG9uZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsUUFBUCxNQUFxQixZQUFyQjtBQUNBLFNBQVNDLGtCQUFrQixJQUFJQyxJQUEvQixRQUEyQyxTQUEzQztBQUVBLGVBQWUsTUFBTUMsT0FBTixDQUFjO0FBQzNCQyxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsS0FBVCxFQUFnQkMsR0FBaEIsRUFBcUI7QUFDOUI7QUFDSjtBQUNBO0FBQ0E7QUFDSSxTQUFLTCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLRyxNQUFMLEdBQWNBLE1BQU0sSUFBSSxDQUF4QjtBQUNBLFNBQUtFLEdBQUwsR0FBV0EsR0FBRyxJQUFJLENBQWxCO0FBQ0EsU0FBS0QsS0FBTCxHQUFhQSxLQUFLLElBQUksQ0FBdEI7QUFDRDs7QUFFREUsRUFBQUEsR0FBRyxDQUFDSCxNQUFELEVBQVNDLEtBQVQsRUFBZ0JDLEdBQWhCLEVBQXFCO0FBQ3RCLFNBQUtGLE1BQUwsR0FBY0EsTUFBTSxJQUFJLENBQXhCO0FBQ0EsU0FBS0UsR0FBTCxHQUFXQSxHQUFHLElBQUksQ0FBbEI7QUFDQSxTQUFLRCxLQUFMLEdBQWFBLEtBQUssSUFBSSxDQUF0QjtBQUVBLFdBQU8sSUFBUDtBQUNEOztBQUVERyxFQUFBQSxTQUFTLENBQUNKLE1BQUQsRUFBUztBQUNoQixTQUFLQSxNQUFMLEdBQWNBLE1BQWQ7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFREssRUFBQUEsTUFBTSxDQUFDSCxHQUFELEVBQU07QUFDVixTQUFLQSxHQUFMLEdBQVdBLEdBQVg7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFREksRUFBQUEsUUFBUSxDQUFDTCxLQUFELEVBQVE7QUFDZCxTQUFLQSxLQUFMLEdBQWFBLEtBQWI7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFRE0sRUFBQUEsSUFBSSxDQUFDQyxDQUFELEVBQUk7QUFDTixTQUFLUixNQUFMLEdBQWNRLENBQUMsQ0FBQ1IsTUFBaEI7QUFDQSxTQUFLRSxHQUFMLEdBQVdNLENBQUMsQ0FBQ04sR0FBYjtBQUNBLFNBQUtELEtBQUwsR0FBYU8sQ0FBQyxDQUFDUCxLQUFmO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRURRLEVBQUFBLFVBQVUsR0FBRztBQUNYLFdBQU8sSUFBSWQsUUFBSixDQUFhLEtBQUtlLElBQUwsRUFBYixFQUEwQixLQUFLQyxJQUFMLEVBQTFCLEVBQXVDLEtBQUtDLElBQUwsRUFBdkMsQ0FBUDtBQUNEOztBQUVERixFQUFBQSxJQUFJLEdBQUc7QUFDTCxXQUFPLEtBQUtWLE1BQUwsR0FBY2EsSUFBSSxDQUFDQyxHQUFMLENBQVMsS0FBS2IsS0FBZCxDQUFkLEdBQXFDWSxJQUFJLENBQUNFLEdBQUwsQ0FBUyxLQUFLYixHQUFkLENBQTVDO0FBQ0Q7O0FBRURTLEVBQUFBLElBQUksR0FBRztBQUNMLFdBQU8sQ0FBQyxLQUFLWCxNQUFOLEdBQWVhLElBQUksQ0FBQ0MsR0FBTCxDQUFTLEtBQUtiLEtBQWQsQ0FBZixHQUFzQ1ksSUFBSSxDQUFDQyxHQUFMLENBQVMsS0FBS1osR0FBZCxDQUE3QztBQUNEOztBQUVEVSxFQUFBQSxJQUFJLEdBQUc7QUFDTCxXQUFPLEtBQUtaLE1BQUwsR0FBY2EsSUFBSSxDQUFDRSxHQUFMLENBQVMsS0FBS2QsS0FBZCxDQUFyQjtBQUNEOztBQUVEZSxFQUFBQSxTQUFTLEdBQUc7QUFDVixTQUFLaEIsTUFBTCxHQUFjLENBQWQ7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFRGlCLEVBQUFBLE1BQU0sQ0FBQ0MsQ0FBRCxFQUFJO0FBQ1IsV0FDRUEsQ0FBQyxDQUFDbEIsTUFBRixLQUFhLEtBQUtBLE1BQWxCLElBQTRCa0IsQ0FBQyxDQUFDaEIsR0FBRixLQUFVLEtBQUtBLEdBQTNDLElBQWtEZ0IsQ0FBQyxDQUFDakIsS0FBRixLQUFZLEtBQUtBLEtBRHJFO0FBR0Q7O0FBRURrQixFQUFBQSxLQUFLLEdBQUc7QUFDTixTQUFLbkIsTUFBTCxHQUFjLEdBQWQ7QUFDQSxTQUFLRSxHQUFMLEdBQVcsR0FBWDtBQUNBLFNBQUtELEtBQUwsR0FBYSxHQUFiO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRURtQixFQUFBQSxLQUFLLEdBQUc7QUFDTixXQUFPLElBQUl0QixPQUFKLENBQVksS0FBS0UsTUFBakIsRUFBeUIsS0FBS0UsR0FBOUIsRUFBbUMsS0FBS0QsS0FBeEMsQ0FBUDtBQUNEOztBQXBGMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVmVjdG9yM0QgZnJvbSAnLi9WZWN0b3IzRCc7XG5pbXBvcnQgeyBNQVRIX1RZUEVfUE9MQVJfM0QgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb2xhcjNEIHtcbiAgY29uc3RydWN0b3IocmFkaXVzLCB0aGV0YSwgcGhpKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucmFkaXVzID0gcmFkaXVzIHx8IDE7XG4gICAgdGhpcy5waGkgPSBwaGkgfHwgMDtcbiAgICB0aGlzLnRoZXRhID0gdGhldGEgfHwgMDtcbiAgfVxuXG4gIHNldChyYWRpdXMsIHRoZXRhLCBwaGkpIHtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cyB8fCAxO1xuICAgIHRoaXMucGhpID0gcGhpIHx8IDA7XG4gICAgdGhpcy50aGV0YSA9IHRoZXRhIHx8IDA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldFJhZGl1cyhyYWRpdXMpIHtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0UGhpKHBoaSkge1xuICAgIHRoaXMucGhpID0gcGhpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRUaGV0YSh0aGV0YSkge1xuICAgIHRoaXMudGhldGEgPSB0aGV0YTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29weShwKSB7XG4gICAgdGhpcy5yYWRpdXMgPSBwLnJhZGl1cztcbiAgICB0aGlzLnBoaSA9IHAucGhpO1xuICAgIHRoaXMudGhldGEgPSBwLnRoZXRhO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b1ZlY3RvcjNEKCkge1xuICAgIHJldHVybiBuZXcgVmVjdG9yM0QodGhpcy5nZXRYKCksIHRoaXMuZ2V0WSgpLCB0aGlzLmdldFooKSk7XG4gIH1cblxuICBnZXRYKCkge1xuICAgIHJldHVybiB0aGlzLnJhZGl1cyAqIE1hdGguc2luKHRoaXMudGhldGEpICogTWF0aC5jb3ModGhpcy5waGkpO1xuICB9XG5cbiAgZ2V0WSgpIHtcbiAgICByZXR1cm4gLXRoaXMucmFkaXVzICogTWF0aC5zaW4odGhpcy50aGV0YSkgKiBNYXRoLnNpbih0aGlzLnBoaSk7XG4gIH1cblxuICBnZXRaKCkge1xuICAgIHJldHVybiB0aGlzLnJhZGl1cyAqIE1hdGguY29zKHRoaXMudGhldGEpO1xuICB9XG5cbiAgbm9ybWFsaXplKCkge1xuICAgIHRoaXMucmFkaXVzID0gMTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXF1YWxzKHYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdi5yYWRpdXMgPT09IHRoaXMucmFkaXVzICYmIHYucGhpID09PSB0aGlzLnBoaSAmJiB2LnRoZXRhID09PSB0aGlzLnRoZXRhXG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucmFkaXVzID0gMC4wO1xuICAgIHRoaXMucGhpID0gMC4wO1xuICAgIHRoaXMudGhldGEgPSAwLjA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgUG9sYXIzRCh0aGlzLnJhZGl1cywgdGhpcy5waGksIHRoaXMudGhldGEpO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/Span.js",
    "content": "import MathUtils from './MathUtils';\nimport Util from '../utils/Util';\nimport { MATH_TYPE_SPAN as type } from './types';\nexport default class Span {\n  /**\n   * Span Class. Get a random Number from a to b. Or from c-a to c+b\n   * @param {Number|Array} a - min number\n   * @param {Number} b - max number\n   * @param {Number} center - the center's z value\n   * @example\n   * var span = new Span(0,30);\n   * or\n   * var span = new Span([\"#fff\",\"#ff0\",\"#000\"]);\n   * or\n   * var span = new Span(5,1,\"center\");\n   * @extends {Zone}\n   * @constructor\n   */\n  constructor(a, b, center = false) {\n    this._isArray = false;\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n\n    if (Util.isArray(a)) {\n      this._isArray = true;\n      this.a = a;\n    } else {\n      this.a = Util.initValue(a, 1);\n      this.b = Util.initValue(b, this.a);\n      this._center = Util.initValue(center, false);\n    }\n  }\n  /**\n   * Span.getValue function\n   * @name get a random Number from a to b. Or get a random Number from c-a to c+b\n   * @param {number} INT or int\n   * @return {number} a random Number\n   */\n\n\n  getValue(INT) {\n    if (this._isArray) {\n      return this.a[this.a.length * Math.random() >> 0];\n    } else {\n      if (!this._center) return MathUtils.randomAToB(this.a, this.b, INT);else return MathUtils.randomFloating(this.a, this.b, INT);\n    }\n  }\n\n}\nexport const createSpan = (a, b, c) => {\n  if (a instanceof Span) return a;\n\n  if (b === undefined) {\n    return new Span(a);\n  } else {\n    if (c === undefined) return new Span(a, b);else return new Span(a, b, c);\n  }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL1NwYW4uanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiVXRpbCIsIk1BVEhfVFlQRV9TUEFOIiwidHlwZSIsIlNwYW4iLCJjb25zdHJ1Y3RvciIsImEiLCJiIiwiY2VudGVyIiwiX2lzQXJyYXkiLCJpc0FycmF5IiwiaW5pdFZhbHVlIiwiX2NlbnRlciIsImdldFZhbHVlIiwiSU5UIiwibGVuZ3RoIiwiTWF0aCIsInJhbmRvbSIsInJhbmRvbUFUb0IiLCJyYW5kb21GbG9hdGluZyIsImNyZWF0ZVNwYW4iLCJjIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxTQUFQLE1BQXNCLGFBQXRCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixlQUFqQjtBQUNBLFNBQVNDLGNBQWMsSUFBSUMsSUFBM0IsUUFBdUMsU0FBdkM7QUFFQSxlQUFlLE1BQU1DLElBQU4sQ0FBVztBQUN4QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLFdBQVcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLE1BQVAsRUFBZTtBQUN4QixTQUFLQyxRQUFMLEdBQWdCLEtBQWhCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS04sSUFBTCxHQUFZQSxJQUFaOztBQUVBLFFBQUlGLElBQUksQ0FBQ1MsT0FBTCxDQUFhSixDQUFiLENBQUosRUFBcUI7QUFDbkIsV0FBS0csUUFBTCxHQUFnQixJQUFoQjtBQUNBLFdBQUtILENBQUwsR0FBU0EsQ0FBVDtBQUNELEtBSEQsTUFHTztBQUNMLFdBQUtBLENBQUwsR0FBU0wsSUFBSSxDQUFDVSxTQUFMLENBQWVMLENBQWYsRUFBa0IsQ0FBbEIsQ0FBVDtBQUNBLFdBQUtDLENBQUwsR0FBU04sSUFBSSxDQUFDVSxTQUFMLENBQWVKLENBQWYsRUFBa0IsS0FBS0QsQ0FBdkIsQ0FBVDtBQUNBLFdBQUtNLE9BQUwsR0FBZVgsSUFBSSxDQUFDVSxTQUFMLENBQWVILE1BQWYsRUFBdUIsS0FBdkIsQ0FBZjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFSyxFQUFBQSxRQUFRLENBQUNDLEdBQUQsRUFBTTtBQUNaLFFBQUksS0FBS0wsUUFBVCxFQUFtQjtBQUNqQixhQUFPLEtBQUtILENBQUwsQ0FBUSxLQUFLQSxDQUFMLENBQU9TLE1BQVAsR0FBZ0JDLElBQUksQ0FBQ0MsTUFBTCxFQUFqQixJQUFtQyxDQUExQyxDQUFQO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBSSxDQUFDLEtBQUtMLE9BQVYsRUFBbUIsT0FBT1osU0FBUyxDQUFDa0IsVUFBVixDQUFxQixLQUFLWixDQUExQixFQUE2QixLQUFLQyxDQUFsQyxFQUFxQ08sR0FBckMsQ0FBUCxDQUFuQixLQUNLLE9BQU9kLFNBQVMsQ0FBQ21CLGNBQVYsQ0FBeUIsS0FBS2IsQ0FBOUIsRUFBaUMsS0FBS0MsQ0FBdEMsRUFBeUNPLEdBQXpDLENBQVA7QUFDTjtBQUNGOztBQS9DdUI7QUFrRDFCLE9BQU8sTUFBTU0sVUFBVSxHQUFHLENBQUNkLENBQUQsRUFBSUMsQ0FBSixFQUFPYyxDQUFQLEtBQWE7QUFDckMsTUFBSWYsQ0FBQyxZQUFZRixJQUFqQixFQUF1QixPQUFPRSxDQUFQOztBQUV2QixNQUFJQyxDQUFDLEtBQUtlLFNBQVYsRUFBcUI7QUFDbkIsV0FBTyxJQUFJbEIsSUFBSixDQUFTRSxDQUFULENBQVA7QUFDRCxHQUZELE1BRU87QUFDTCxRQUFJZSxDQUFDLEtBQUtDLFNBQVYsRUFBcUIsT0FBTyxJQUFJbEIsSUFBSixDQUFTRSxDQUFULEVBQVlDLENBQVosQ0FBUCxDQUFyQixLQUNLLE9BQU8sSUFBSUgsSUFBSixDQUFTRSxDQUFULEVBQVlDLENBQVosRUFBZWMsQ0FBZixDQUFQO0FBQ047QUFDRixDQVRNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hdGhVdGlscyBmcm9tICcuL01hdGhVdGlscyc7XG5pbXBvcnQgVXRpbCBmcm9tICcuLi91dGlscy9VdGlsJztcbmltcG9ydCB7IE1BVEhfVFlQRV9TUEFOIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3BhbiB7XG4gIC8qKlxuICAgKiBTcGFuIENsYXNzLiBHZXQgYSByYW5kb20gTnVtYmVyIGZyb20gYSB0byBiLiBPciBmcm9tIGMtYSB0byBjK2JcbiAgICogQHBhcmFtIHtOdW1iZXJ8QXJyYXl9IGEgLSBtaW4gbnVtYmVyXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBiIC0gbWF4IG51bWJlclxuICAgKiBAcGFyYW0ge051bWJlcn0gY2VudGVyIC0gdGhlIGNlbnRlcidzIHogdmFsdWVcbiAgICogQGV4YW1wbGVcbiAgICogdmFyIHNwYW4gPSBuZXcgU3BhbigwLDMwKTtcbiAgICogb3JcbiAgICogdmFyIHNwYW4gPSBuZXcgU3BhbihbXCIjZmZmXCIsXCIjZmYwXCIsXCIjMDAwXCJdKTtcbiAgICogb3JcbiAgICogdmFyIHNwYW4gPSBuZXcgU3Bhbig1LDEsXCJjZW50ZXJcIik7XG4gICAqIEBleHRlbmRzIHtab25lfVxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKGEsIGIsIGNlbnRlcikge1xuICAgIHRoaXMuX2lzQXJyYXkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgIGlmIChVdGlsLmlzQXJyYXkoYSkpIHtcbiAgICAgIHRoaXMuX2lzQXJyYXkgPSB0cnVlO1xuICAgICAgdGhpcy5hID0gYTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hID0gVXRpbC5pbml0VmFsdWUoYSwgMSk7XG4gICAgICB0aGlzLmIgPSBVdGlsLmluaXRWYWx1ZShiLCB0aGlzLmEpO1xuICAgICAgdGhpcy5fY2VudGVyID0gVXRpbC5pbml0VmFsdWUoY2VudGVyLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNwYW4uZ2V0VmFsdWUgZnVuY3Rpb25cbiAgICogQG5hbWUgZ2V0IGEgcmFuZG9tIE51bWJlciBmcm9tIGEgdG8gYi4gT3IgZ2V0IGEgcmFuZG9tIE51bWJlciBmcm9tIGMtYSB0byBjK2JcbiAgICogQHBhcmFtIHtudW1iZXJ9IElOVCBvciBpbnRcbiAgICogQHJldHVybiB7bnVtYmVyfSBhIHJhbmRvbSBOdW1iZXJcbiAgICovXG4gIGdldFZhbHVlKElOVCkge1xuICAgIGlmICh0aGlzLl9pc0FycmF5KSB7XG4gICAgICByZXR1cm4gdGhpcy5hWyh0aGlzLmEubGVuZ3RoICogTWF0aC5yYW5kb20oKSkgPj4gMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5fY2VudGVyKSByZXR1cm4gTWF0aFV0aWxzLnJhbmRvbUFUb0IodGhpcy5hLCB0aGlzLmIsIElOVCk7XG4gICAgICBlbHNlIHJldHVybiBNYXRoVXRpbHMucmFuZG9tRmxvYXRpbmcodGhpcy5hLCB0aGlzLmIsIElOVCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTcGFuID0gKGEsIGIsIGMpID0+IHtcbiAgaWYgKGEgaW5zdGFuY2VvZiBTcGFuKSByZXR1cm4gYTtcblxuICBpZiAoYiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG5ldyBTcGFuKGEpO1xuICB9IGVsc2Uge1xuICAgIGlmIChjID09PSB1bmRlZmluZWQpIHJldHVybiBuZXcgU3BhbihhLCBiKTtcbiAgICBlbHNlIHJldHVybiBuZXcgU3BhbihhLCBiLCBjKTtcbiAgfVxufTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/Vector3D.js",
    "content": "import { Euler, Vector3 } from '../core/three/';\nexport default class Vector3D extends Vector3 {\n  clear() {\n    this.x = 0.0;\n    this.y = 0.0;\n    this.z = 0.0;\n    return this;\n  }\n\n  scalar(s) {\n    this.x *= s;\n    this.y *= s;\n    this.z *= s;\n    return this;\n  }\n\n  addValue(a, b, c) {\n    this.x += a;\n    this.y += b;\n    this.z += c;\n    return this;\n  }\n\n  toString() {\n    return 'x:' + this.x + 'y:' + this.y + 'z:' + this.z;\n  }\n\n  eulerFromDir(vector3D) {\n    const euler = new Euler();\n    return euler.setFromVector3(vector3D);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL1ZlY3RvcjNELmpzIl0sIm5hbWVzIjpbIkV1bGVyIiwiVmVjdG9yMyIsIlZlY3RvcjNEIiwiY2xlYXIiLCJ4IiwieSIsInoiLCJzY2FsYXIiLCJzIiwiYWRkVmFsdWUiLCJhIiwiYiIsImMiLCJ0b1N0cmluZyIsImV1bGVyRnJvbURpciIsInZlY3RvcjNEIiwiZXVsZXIiLCJzZXRGcm9tVmVjdG9yMyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsS0FBVCxFQUFnQkMsT0FBaEIsUUFBK0IsZ0JBQS9CO0FBRUEsZUFBZSxNQUFNQyxRQUFOLFNBQXVCRCxPQUF2QixDQUErQjtBQUM1Q0UsRUFBQUEsS0FBSyxHQUFHO0FBQ04sU0FBS0MsQ0FBTCxHQUFTLEdBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMsR0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUyxHQUFUO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLE1BQU0sQ0FBQ0MsQ0FBRCxFQUFJO0FBQ1IsU0FBS0osQ0FBTCxJQUFVSSxDQUFWO0FBQ0EsU0FBS0gsQ0FBTCxJQUFVRyxDQUFWO0FBQ0EsU0FBS0YsQ0FBTCxJQUFVRSxDQUFWO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFFBQVEsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVTtBQUNoQixTQUFLUixDQUFMLElBQVVNLENBQVY7QUFDQSxTQUFLTCxDQUFMLElBQVVNLENBQVY7QUFDQSxTQUFLTCxDQUFMLElBQVVNLENBQVY7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFREMsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsV0FBTyxPQUFPLEtBQUtULENBQVosR0FBZ0IsSUFBaEIsR0FBdUIsS0FBS0MsQ0FBNUIsR0FBZ0MsSUFBaEMsR0FBdUMsS0FBS0MsQ0FBbkQ7QUFDRDs7QUFFRFEsRUFBQUEsWUFBWSxDQUFDQyxRQUFELEVBQVc7QUFDckIsVUFBTUMsS0FBSyxHQUFHLElBQUloQixLQUFKLEVBQWQ7QUFFQSxXQUFPZ0IsS0FBSyxDQUFDQyxjQUFOLENBQXFCRixRQUFyQixDQUFQO0FBQ0Q7O0FBakMyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV1bGVyLCBWZWN0b3IzIH0gZnJvbSAnLi4vY29yZS90aHJlZS8nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWN0b3IzRCBleHRlbmRzIFZlY3RvcjMge1xuICBjbGVhcigpIHtcbiAgICB0aGlzLnggPSAwLjA7XG4gICAgdGhpcy55ID0gMC4wO1xuICAgIHRoaXMueiA9IDAuMDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2NhbGFyKHMpIHtcbiAgICB0aGlzLnggKj0gcztcbiAgICB0aGlzLnkgKj0gcztcbiAgICB0aGlzLnogKj0gcztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWRkVmFsdWUoYSwgYiwgYykge1xuICAgIHRoaXMueCArPSBhO1xuICAgIHRoaXMueSArPSBiO1xuICAgIHRoaXMueiArPSBjO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gJ3g6JyArIHRoaXMueCArICd5OicgKyB0aGlzLnkgKyAnejonICsgdGhpcy56O1xuICB9XG5cbiAgZXVsZXJGcm9tRGlyKHZlY3RvcjNEKSB7XG4gICAgY29uc3QgZXVsZXIgPSBuZXcgRXVsZXIoKTtcblxuICAgIHJldHVybiBldWxlci5zZXRGcm9tVmVjdG9yMyh2ZWN0b3IzRCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/constants.js",
    "content": "/**\n * @see https://en.wikipedia.org/wiki/Euler_method\n * @type {string}\n */\nexport const INTEGRATION_TYPE_EULER = 'EULER';\n/**\n * @see http://web.mit.edu/10.001/Web/Course_Notes/Differential_Equations_Notes/node5.html\n * @type {string}\n */\n\nexport const INTEGRATION_TYPE_RK2 = 'RUNGE_KUTTA_2';\n/**\n * @see http://web.mit.edu/10.001/Web/Course_Notes/Differential_Equations_Notes/node5.html\n * @type {string}\n */\n\nexport const INTEGRATION_TYPE_RK4 = 'RUNGE_KUTTA_4';\n/**\n * @see https://en.wikipedia.org/wiki/Verlet_integration\n * @type {string}\n */\n\nexport const INTEGRATION_TYPE_VERLET = 'VERLET';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJJTlRFR1JBVElPTl9UWVBFX0VVTEVSIiwiSU5URUdSQVRJT05fVFlQRV9SSzIiLCJJTlRFR1JBVElPTl9UWVBFX1JLNCIsIklOVEVHUkFUSU9OX1RZUEVfVkVSTEVUIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sTUFBTUEsc0JBQXNCLEdBQUcsT0FBL0I7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLG9CQUFvQixHQUFHLGVBQTdCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxlQUE3QjtBQUVQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsdUJBQXVCLEdBQUcsUUFBaEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXVsZXJfbWV0aG9kXG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgSU5URUdSQVRJT05fVFlQRV9FVUxFUiA9ICdFVUxFUic7XG5cbi8qKlxuICogQHNlZSBodHRwOi8vd2ViLm1pdC5lZHUvMTAuMDAxL1dlYi9Db3Vyc2VfTm90ZXMvRGlmZmVyZW50aWFsX0VxdWF0aW9uc19Ob3Rlcy9ub2RlNS5odG1sXG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgSU5URUdSQVRJT05fVFlQRV9SSzIgPSAnUlVOR0VfS1VUVEFfMic7XG5cbi8qKlxuICogQHNlZSBodHRwOi8vd2ViLm1pdC5lZHUvMTAuMDAxL1dlYi9Db3Vyc2VfTm90ZXMvRGlmZmVyZW50aWFsX0VxdWF0aW9uc19Ob3Rlcy9ub2RlNS5odG1sXG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgSU5URUdSQVRJT05fVFlQRV9SSzQgPSAnUlVOR0VfS1VUVEFfNCc7XG5cbi8qKlxuICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9WZXJsZXRfaW50ZWdyYXRpb25cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBJTlRFR1JBVElPTl9UWVBFX1ZFUkxFVCA9ICdWRVJMRVQnO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/index.js",
    "content": "export { default as ArraySpan, createArraySpan } from './ArraySpan';\nexport { default as ColorSpan, createColorSpan } from './ColorSpan';\nexport { default as Box } from './Box';\nexport { integrate } from './integration';\nexport { default as MathUtils } from './MathUtils';\nexport { default as Polar3D } from './Polar3D';\nexport { default as Span, createSpan } from './Span';\nexport { default as Vector3D } from './Vector3D';\nexport { INTEGRATION_TYPE_EULER, INTEGRATION_TYPE_RK2, INTEGRATION_TYPE_RK4, INTEGRATION_TYPE_VERLET } from './constants';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJBcnJheVNwYW4iLCJjcmVhdGVBcnJheVNwYW4iLCJDb2xvclNwYW4iLCJjcmVhdGVDb2xvclNwYW4iLCJCb3giLCJpbnRlZ3JhdGUiLCJNYXRoVXRpbHMiLCJQb2xhcjNEIiwiU3BhbiIsImNyZWF0ZVNwYW4iLCJWZWN0b3IzRCIsIklOVEVHUkFUSU9OX1RZUEVfRVVMRVIiLCJJTlRFR1JBVElPTl9UWVBFX1JLMiIsIklOVEVHUkFUSU9OX1RZUEVfUks0IiwiSU5URUdSQVRJT05fVFlQRV9WRVJMRVQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsU0FBcEIsRUFBK0JDLGVBQS9CLFFBQXNELGFBQXREO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxTQUFwQixFQUErQkMsZUFBL0IsUUFBc0QsYUFBdEQ7QUFDQSxTQUFTSixPQUFPLElBQUlLLEdBQXBCLFFBQStCLE9BQS9CO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixlQUExQjtBQUNBLFNBQVNOLE9BQU8sSUFBSU8sU0FBcEIsUUFBcUMsYUFBckM7QUFDQSxTQUFTUCxPQUFPLElBQUlRLE9BQXBCLFFBQW1DLFdBQW5DO0FBQ0EsU0FBU1IsT0FBTyxJQUFJUyxJQUFwQixFQUEwQkMsVUFBMUIsUUFBNEMsUUFBNUM7QUFDQSxTQUFTVixPQUFPLElBQUlXLFFBQXBCLFFBQW9DLFlBQXBDO0FBQ0EsU0FDRUMsc0JBREYsRUFFRUMsb0JBRkYsRUFHRUMsb0JBSEYsRUFJRUMsdUJBSkYsUUFLTyxhQUxQIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJheVNwYW4sIGNyZWF0ZUFycmF5U3BhbiB9IGZyb20gJy4vQXJyYXlTcGFuJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JTcGFuLCBjcmVhdGVDb2xvclNwYW4gfSBmcm9tICcuL0NvbG9yU3Bhbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJveCB9IGZyb20gJy4vQm94JztcbmV4cG9ydCB7IGludGVncmF0ZSB9IGZyb20gJy4vaW50ZWdyYXRpb24nO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXRoVXRpbHMgfSBmcm9tICcuL01hdGhVdGlscyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvbGFyM0QgfSBmcm9tICcuL1BvbGFyM0QnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcGFuLCBjcmVhdGVTcGFuIH0gZnJvbSAnLi9TcGFuJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmVjdG9yM0QgfSBmcm9tICcuL1ZlY3RvcjNEJztcbmV4cG9ydCB7XG4gIElOVEVHUkFUSU9OX1RZUEVfRVVMRVIsXG4gIElOVEVHUkFUSU9OX1RZUEVfUksyLFxuICBJTlRFR1JBVElPTl9UWVBFX1JLNCxcbiAgSU5URUdSQVRJT05fVFlQRV9WRVJMRVRcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/integration.js",
    "content": "import { INTEGRATION_TYPE_EULER } from './constants';\nimport { DEFAULT_SYSTEM_DELTA } from '../core/constants';\n/**\n * Performs euler integration on the particle.\n *\n * @param {Particle} particle - The particle to integrate\n * @param {number} time - The factor of time to use\n * @param {number} damping - The damping to use\n * @return void\n */\n\nconst eulerIntegration = (particle, time, damping) => {\n  if (particle.sleep) {\n    return;\n  }\n\n  particle.old.position.copy(particle.position);\n  particle.old.velocity.copy(particle.velocity);\n  particle.acceleration.scalar(1 / particle.mass);\n  particle.velocity.add(particle.acceleration.scalar(time));\n  particle.position.add(particle.old.velocity.scalar(time));\n  damping && particle.velocity.scalar(Math.pow(damping, time / DEFAULT_SYSTEM_DELTA));\n  particle.acceleration.clear();\n};\n/**\n * Performs the chosen integration on the particle.\n * Defaults to euler integration.\n *\n * @param {Particle} particle - The particle to integrate\n * @param {number} time - The factor of time to use\n * @param {number} damping - The damping to use\n * @param {string} [type=INTEGRATION_TYPE_EULER] - The algorithm to use\n * @return void\n */\n\n\nexport const integrate = (particle, time, damping, type = INTEGRATION_TYPE_EULER) => {\n  switch (type) {\n    case INTEGRATION_TYPE_EULER:\n      eulerIntegration(particle, time, damping);\n      break;\n\n    default:\n      eulerIntegration(particle, time, damping);\n  }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL2ludGVncmF0aW9uLmpzIl0sIm5hbWVzIjpbIklOVEVHUkFUSU9OX1RZUEVfRVVMRVIiLCJERUZBVUxUX1NZU1RFTV9ERUxUQSIsImV1bGVySW50ZWdyYXRpb24iLCJwYXJ0aWNsZSIsInRpbWUiLCJkYW1waW5nIiwic2xlZXAiLCJvbGQiLCJwb3NpdGlvbiIsImNvcHkiLCJ2ZWxvY2l0eSIsImFjY2VsZXJhdGlvbiIsInNjYWxhciIsIm1hc3MiLCJhZGQiLCJNYXRoIiwicG93IiwiY2xlYXIiLCJpbnRlZ3JhdGUiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxzQkFBVCxRQUF1QyxhQUF2QztBQUNBLFNBQVNDLG9CQUFULFFBQXFDLG1CQUFyQztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQ0MsUUFBRCxFQUFXQyxJQUFYLEVBQWlCQyxPQUFqQixLQUE2QjtBQUNwRCxNQUFJRixRQUFRLENBQUNHLEtBQWIsRUFBb0I7QUFDbEI7QUFDRDs7QUFFREgsRUFBQUEsUUFBUSxDQUFDSSxHQUFULENBQWFDLFFBQWIsQ0FBc0JDLElBQXRCLENBQTJCTixRQUFRLENBQUNLLFFBQXBDO0FBQ0FMLEVBQUFBLFFBQVEsQ0FBQ0ksR0FBVCxDQUFhRyxRQUFiLENBQXNCRCxJQUF0QixDQUEyQk4sUUFBUSxDQUFDTyxRQUFwQztBQUNBUCxFQUFBQSxRQUFRLENBQUNRLFlBQVQsQ0FBc0JDLE1BQXRCLENBQTZCLElBQUlULFFBQVEsQ0FBQ1UsSUFBMUM7QUFDQVYsRUFBQUEsUUFBUSxDQUFDTyxRQUFULENBQWtCSSxHQUFsQixDQUFzQlgsUUFBUSxDQUFDUSxZQUFULENBQXNCQyxNQUF0QixDQUE2QlIsSUFBN0IsQ0FBdEI7QUFDQUQsRUFBQUEsUUFBUSxDQUFDSyxRQUFULENBQWtCTSxHQUFsQixDQUFzQlgsUUFBUSxDQUFDSSxHQUFULENBQWFHLFFBQWIsQ0FBc0JFLE1BQXRCLENBQTZCUixJQUE3QixDQUF0QjtBQUNBQyxFQUFBQSxPQUFPLElBQ0xGLFFBQVEsQ0FBQ08sUUFBVCxDQUFrQkUsTUFBbEIsQ0FBeUJHLElBQUksQ0FBQ0MsR0FBTCxDQUFTWCxPQUFULEVBQWtCRCxJQUFJLEdBQUdILG9CQUF6QixDQUF6QixDQURGO0FBRUFFLEVBQUFBLFFBQVEsQ0FBQ1EsWUFBVCxDQUFzQk0sS0FBdEI7QUFDRCxDQWJEO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE9BQU8sTUFBTUMsU0FBUyxHQUFHLENBQ3ZCZixRQUR1QixFQUV2QkMsSUFGdUIsRUFHdkJDLE9BSHVCLEVBSXZCYyxJQUFJLEdBQUduQixzQkFKZ0IsS0FLcEI7QUFDSCxVQUFRbUIsSUFBUjtBQUNFLFNBQUtuQixzQkFBTDtBQUNFRSxNQUFBQSxnQkFBZ0IsQ0FBQ0MsUUFBRCxFQUFXQyxJQUFYLEVBQWlCQyxPQUFqQixDQUFoQjtBQUNBOztBQUNGO0FBQ0VILE1BQUFBLGdCQUFnQixDQUFDQyxRQUFELEVBQVdDLElBQVgsRUFBaUJDLE9BQWpCLENBQWhCO0FBTEo7QUFPRCxDQWJNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5URUdSQVRJT05fVFlQRV9FVUxFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IERFRkFVTFRfU1lTVEVNX0RFTFRBIH0gZnJvbSAnLi4vY29yZS9jb25zdGFudHMnO1xuXG4vKipcbiAqIFBlcmZvcm1zIGV1bGVyIGludGVncmF0aW9uIG9uIHRoZSBwYXJ0aWNsZS5cbiAqXG4gKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSB0byBpbnRlZ3JhdGVcbiAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gVGhlIGZhY3RvciBvZiB0aW1lIHRvIHVzZVxuICogQHBhcmFtIHtudW1iZXJ9IGRhbXBpbmcgLSBUaGUgZGFtcGluZyB0byB1c2VcbiAqIEByZXR1cm4gdm9pZFxuICovXG5jb25zdCBldWxlckludGVncmF0aW9uID0gKHBhcnRpY2xlLCB0aW1lLCBkYW1waW5nKSA9PiB7XG4gIGlmIChwYXJ0aWNsZS5zbGVlcCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHBhcnRpY2xlLm9sZC5wb3NpdGlvbi5jb3B5KHBhcnRpY2xlLnBvc2l0aW9uKTtcbiAgcGFydGljbGUub2xkLnZlbG9jaXR5LmNvcHkocGFydGljbGUudmVsb2NpdHkpO1xuICBwYXJ0aWNsZS5hY2NlbGVyYXRpb24uc2NhbGFyKDEgLyBwYXJ0aWNsZS5tYXNzKTtcbiAgcGFydGljbGUudmVsb2NpdHkuYWRkKHBhcnRpY2xlLmFjY2VsZXJhdGlvbi5zY2FsYXIodGltZSkpO1xuICBwYXJ0aWNsZS5wb3NpdGlvbi5hZGQocGFydGljbGUub2xkLnZlbG9jaXR5LnNjYWxhcih0aW1lKSk7XG4gIGRhbXBpbmcgJiZcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS5zY2FsYXIoTWF0aC5wb3coZGFtcGluZywgdGltZSAvIERFRkFVTFRfU1lTVEVNX0RFTFRBKSk7XG4gIHBhcnRpY2xlLmFjY2VsZXJhdGlvbi5jbGVhcigpO1xufTtcblxuLyoqXG4gKiBQZXJmb3JtcyB0aGUgY2hvc2VuIGludGVncmF0aW9uIG9uIHRoZSBwYXJ0aWNsZS5cbiAqIERlZmF1bHRzIHRvIGV1bGVyIGludGVncmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIHRvIGludGVncmF0ZVxuICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBUaGUgZmFjdG9yIG9mIHRpbWUgdG8gdXNlXG4gKiBAcGFyYW0ge251bWJlcn0gZGFtcGluZyAtIFRoZSBkYW1waW5nIHRvIHVzZVxuICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlPUlOVEVHUkFUSU9OX1RZUEVfRVVMRVJdIC0gVGhlIGFsZ29yaXRobSB0byB1c2VcbiAqIEByZXR1cm4gdm9pZFxuICovXG5leHBvcnQgY29uc3QgaW50ZWdyYXRlID0gKFxuICBwYXJ0aWNsZSxcbiAgdGltZSxcbiAgZGFtcGluZyxcbiAgdHlwZSA9IElOVEVHUkFUSU9OX1RZUEVfRVVMRVJcbikgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIElOVEVHUkFUSU9OX1RZUEVfRVVMRVI6XG4gICAgICBldWxlckludGVncmF0aW9uKHBhcnRpY2xlLCB0aW1lLCBkYW1waW5nKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBldWxlckludGVncmF0aW9uKHBhcnRpY2xlLCB0aW1lLCBkYW1waW5nKTtcbiAgfVxufTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/math/types.js",
    "content": "export const MATH_TYPE_ARRAY_SPAN = 'ArraySpan';\nexport const MATH_TYPE_COLOR_SPAN = 'ColorSpan';\nexport const MATH_TYPE_BOX = 'Box';\nexport const MATH_TYPE_POLAR_3D = 'Polar3D';\nexport const MATH_TYPE_SPAN = 'Span';\nexport const MATH_TYPE_VECTOR_3D = 'Vector3D';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL3R5cGVzLmpzIl0sIm5hbWVzIjpbIk1BVEhfVFlQRV9BUlJBWV9TUEFOIiwiTUFUSF9UWVBFX0NPTE9SX1NQQU4iLCJNQVRIX1RZUEVfQk9YIiwiTUFUSF9UWVBFX1BPTEFSXzNEIiwiTUFUSF9UWVBFX1NQQU4iLCJNQVRIX1RZUEVfVkVDVE9SXzNEIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLG9CQUFvQixHQUFHLFdBQTdCO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxXQUE3QjtBQUNQLE9BQU8sTUFBTUMsYUFBYSxHQUFHLEtBQXRCO0FBQ1AsT0FBTyxNQUFNQyxrQkFBa0IsR0FBRyxTQUEzQjtBQUNQLE9BQU8sTUFBTUMsY0FBYyxHQUFHLE1BQXZCO0FBQ1AsT0FBTyxNQUFNQyxtQkFBbUIsR0FBRyxVQUE1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNQVRIX1RZUEVfQVJSQVlfU1BBTiA9ICdBcnJheVNwYW4nO1xuZXhwb3J0IGNvbnN0IE1BVEhfVFlQRV9DT0xPUl9TUEFOID0gJ0NvbG9yU3Bhbic7XG5leHBvcnQgY29uc3QgTUFUSF9UWVBFX0JPWCA9ICdCb3gnO1xuZXhwb3J0IGNvbnN0IE1BVEhfVFlQRV9QT0xBUl8zRCA9ICdQb2xhcjNEJztcbmV4cG9ydCBjb25zdCBNQVRIX1RZUEVfU1BBTiA9ICdTcGFuJztcbmV4cG9ydCBjb25zdCBNQVRIX1RZUEVfVkVDVE9SXzNEID0gJ1ZlY3RvcjNEJztcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/BaseRenderer.js",
    "content": "import { PARTICLE_CREATED, PARTICLE_DEAD, PARTICLE_UPDATE, SYSTEM_UPDATE } from '../events/constants';\nimport { RENDERER_TYPE_BASE } from './types';\nimport { __DEV__ } from '../constants';\nexport default class BaseRenderer {\n  constructor(type = RENDERER_TYPE_BASE) {\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n    this.type = type;\n  }\n\n  init(system) {\n    var self = this;\n    this.system = system;\n    this.system.eventDispatcher.addEventListener(SYSTEM_UPDATE, function (system) {\n      self.onSystemUpdate.call(self, system);\n    });\n    this.system.eventDispatcher.addEventListener(PARTICLE_CREATED, function (particle) {\n      self.onParticleCreated.call(self, particle);\n    });\n    this.system.eventDispatcher.addEventListener(PARTICLE_UPDATE, function (particle) {\n      self.onParticleUpdate.call(self, particle);\n    });\n    this.system.eventDispatcher.addEventListener(PARTICLE_DEAD, function (particle) {\n      self.onParticleDead.call(self, particle);\n    });\n    this.logRendererType();\n  }\n\n  remove() {\n    this.system = null;\n  }\n  /**\n   * @abstract\n   */\n\n\n  onParticleCreated(particle) {} // eslint-disable-line\n\n  /**\n   * @abstract\n   */\n\n\n  onParticleUpdate(particle) {} // eslint-disable-line\n\n  /**\n   * @abstract\n   */\n\n\n  onParticleDead(particle) {} // eslint-disable-line\n\n  /**\n   * @abstract\n   */\n\n\n  onSystemUpdate(system) {} // eslint-disable-line\n\n  /**\n   * Logs the renderer type being used when in development mode.\n   *\n   * @return void\n   */\n\n\n  logRendererType() {\n    if (!__DEV__) {\n      return;\n    }\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9CYXNlUmVuZGVyZXIuanMiXSwibmFtZXMiOlsiUEFSVElDTEVfQ1JFQVRFRCIsIlBBUlRJQ0xFX0RFQUQiLCJQQVJUSUNMRV9VUERBVEUiLCJTWVNURU1fVVBEQVRFIiwiUkVOREVSRVJfVFlQRV9CQVNFIiwiX19ERVZfXyIsIkJhc2VSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwidHlwZSIsImluaXQiLCJzeXN0ZW0iLCJzZWxmIiwiZXZlbnREaXNwYXRjaGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uU3lzdGVtVXBkYXRlIiwiY2FsbCIsInBhcnRpY2xlIiwib25QYXJ0aWNsZUNyZWF0ZWQiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiLCJsb2dSZW5kZXJlclR5cGUiLCJyZW1vdmUiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxnQkFERixFQUVFQyxhQUZGLEVBR0VDLGVBSEYsRUFJRUMsYUFKRixRQUtPLHFCQUxQO0FBT0EsU0FBU0Msa0JBQVQsUUFBbUMsU0FBbkM7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGNBQXhCO0FBRUEsZUFBZSxNQUFNQyxZQUFOLENBQW1CO0FBQ2hDQyxFQUFBQSxXQUFXLENBQUNDLElBQUksR0FBR0osa0JBQVIsRUFBNEI7QUFDckM7QUFDSjtBQUNBO0FBQ0E7QUFDSSxTQUFLSSxJQUFMLEdBQVlBLElBQVo7QUFDRDs7QUFFREMsRUFBQUEsSUFBSSxDQUFDQyxNQUFELEVBQVM7QUFDWCxRQUFJQyxJQUFJLEdBQUcsSUFBWDtBQUVBLFNBQUtELE1BQUwsR0FBY0EsTUFBZDtBQUVBLFNBQUtBLE1BQUwsQ0FBWUUsZUFBWixDQUE0QkMsZ0JBQTVCLENBQTZDVixhQUE3QyxFQUE0RCxVQUMxRE8sTUFEMEQsRUFFMUQ7QUFDQUMsTUFBQUEsSUFBSSxDQUFDRyxjQUFMLENBQW9CQyxJQUFwQixDQUF5QkosSUFBekIsRUFBK0JELE1BQS9CO0FBQ0QsS0FKRDtBQU1BLFNBQUtBLE1BQUwsQ0FBWUUsZUFBWixDQUE0QkMsZ0JBQTVCLENBQTZDYixnQkFBN0MsRUFBK0QsVUFDN0RnQixRQUQ2RCxFQUU3RDtBQUNBTCxNQUFBQSxJQUFJLENBQUNNLGlCQUFMLENBQXVCRixJQUF2QixDQUE0QkosSUFBNUIsRUFBa0NLLFFBQWxDO0FBQ0QsS0FKRDtBQU1BLFNBQUtOLE1BQUwsQ0FBWUUsZUFBWixDQUE0QkMsZ0JBQTVCLENBQTZDWCxlQUE3QyxFQUE4RCxVQUM1RGMsUUFENEQsRUFFNUQ7QUFDQUwsTUFBQUEsSUFBSSxDQUFDTyxnQkFBTCxDQUFzQkgsSUFBdEIsQ0FBMkJKLElBQTNCLEVBQWlDSyxRQUFqQztBQUNELEtBSkQ7QUFNQSxTQUFLTixNQUFMLENBQVlFLGVBQVosQ0FBNEJDLGdCQUE1QixDQUE2Q1osYUFBN0MsRUFBNEQsVUFDMURlLFFBRDBELEVBRTFEO0FBQ0FMLE1BQUFBLElBQUksQ0FBQ1EsY0FBTCxDQUFvQkosSUFBcEIsQ0FBeUJKLElBQXpCLEVBQStCSyxRQUEvQjtBQUNELEtBSkQ7QUFNQSxTQUFLSSxlQUFMO0FBQ0Q7O0FBRURDLEVBQUFBLE1BQU0sR0FBRztBQUNQLFNBQUtYLE1BQUwsR0FBYyxJQUFkO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQUNFTyxFQUFBQSxpQkFBaUIsQ0FBQ0QsUUFBRCxFQUFXLENBQUUsQ0FoREUsQ0FnREQ7O0FBRS9CO0FBQ0Y7QUFDQTs7O0FBQ0VFLEVBQUFBLGdCQUFnQixDQUFDRixRQUFELEVBQVcsQ0FBRSxDQXJERyxDQXFERjs7QUFFOUI7QUFDRjtBQUNBOzs7QUFDRUcsRUFBQUEsY0FBYyxDQUFDSCxRQUFELEVBQVcsQ0FBRSxDQTFESyxDQTBESjs7QUFFNUI7QUFDRjtBQUNBOzs7QUFDRUYsRUFBQUEsY0FBYyxDQUFDSixNQUFELEVBQVMsQ0FBRSxDQS9ETyxDQStETjs7QUFFMUI7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VVLEVBQUFBLGVBQWUsR0FBRztBQUNoQixRQUFJLENBQUNmLE9BQUwsRUFBYztBQUNaO0FBQ0Q7O0FBRURpQixJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxHQUFFLEtBQUtmLElBQUssRUFBekI7QUFDRDs7QUE1RStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUEFSVElDTEVfQ1JFQVRFRCxcbiAgUEFSVElDTEVfREVBRCxcbiAgUEFSVElDTEVfVVBEQVRFLFxuICBTWVNURU1fVVBEQVRFLFxufSBmcm9tICcuLi9ldmVudHMvY29uc3RhbnRzJztcblxuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9CQVNFIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBfX0RFVl9fIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZVJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IodHlwZSA9IFJFTkRFUkVSX1RZUEVfQkFTRSkge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGluaXQoc3lzdGVtKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdGhpcy5zeXN0ZW0gPSBzeXN0ZW07XG5cbiAgICB0aGlzLnN5c3RlbS5ldmVudERpc3BhdGNoZXIuYWRkRXZlbnRMaXN0ZW5lcihTWVNURU1fVVBEQVRFLCBmdW5jdGlvbihcbiAgICAgIHN5c3RlbVxuICAgICkge1xuICAgICAgc2VsZi5vblN5c3RlbVVwZGF0ZS5jYWxsKHNlbGYsIHN5c3RlbSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN5c3RlbS5ldmVudERpc3BhdGNoZXIuYWRkRXZlbnRMaXN0ZW5lcihQQVJUSUNMRV9DUkVBVEVELCBmdW5jdGlvbihcbiAgICAgIHBhcnRpY2xlXG4gICAgKSB7XG4gICAgICBzZWxmLm9uUGFydGljbGVDcmVhdGVkLmNhbGwoc2VsZiwgcGFydGljbGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zeXN0ZW0uZXZlbnREaXNwYXRjaGVyLmFkZEV2ZW50TGlzdGVuZXIoUEFSVElDTEVfVVBEQVRFLCBmdW5jdGlvbihcbiAgICAgIHBhcnRpY2xlXG4gICAgKSB7XG4gICAgICBzZWxmLm9uUGFydGljbGVVcGRhdGUuY2FsbChzZWxmLCBwYXJ0aWNsZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN5c3RlbS5ldmVudERpc3BhdGNoZXIuYWRkRXZlbnRMaXN0ZW5lcihQQVJUSUNMRV9ERUFELCBmdW5jdGlvbihcbiAgICAgIHBhcnRpY2xlXG4gICAgKSB7XG4gICAgICBzZWxmLm9uUGFydGljbGVEZWFkLmNhbGwoc2VsZiwgcGFydGljbGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dSZW5kZXJlclR5cGUoKTtcbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICB0aGlzLnN5c3RlbSA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIG9uUGFydGljbGVVcGRhdGUocGFydGljbGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBvblBhcnRpY2xlRGVhZChwYXJ0aWNsZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIG9uU3lzdGVtVXBkYXRlKHN5c3RlbSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIC8qKlxuICAgKiBMb2dzIHRoZSByZW5kZXJlciB0eXBlIGJlaW5nIHVzZWQgd2hlbiBpbiBkZXZlbG9wbWVudCBtb2RlLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGxvZ1JlbmRlcmVyVHlwZSgpIHtcbiAgICBpZiAoIV9fREVWX18pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhgJHt0aGlzLnR5cGV9YCk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/CustomRenderer.js",
    "content": "import BaseRenderer from './BaseRenderer';\nimport { Pool } from '../core';\nimport { RENDERER_TYPE_CUSTOM as type } from './types';\nexport default class CustomRenderer extends BaseRenderer {\n  constructor() {\n    super(type);\n    this.targetPool = new Pool();\n    this.materialPool = new Pool();\n  }\n\n  onSystemUpdate() {}\n\n  onParticleCreated(particle) {} // eslint-disable-line\n\n\n  onParticleUpdate(particle) {} // eslint-disable-line\n\n\n  onParticleDead(particle) {} // eslint-disable-line\n\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9DdXN0b21SZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJCYXNlUmVuZGVyZXIiLCJQb29sIiwiUkVOREVSRVJfVFlQRV9DVVNUT00iLCJ0eXBlIiwiQ3VzdG9tUmVuZGVyZXIiLCJjb25zdHJ1Y3RvciIsInRhcmdldFBvb2wiLCJtYXRlcmlhbFBvb2wiLCJvblN5c3RlbVVwZGF0ZSIsIm9uUGFydGljbGVDcmVhdGVkIiwicGFydGljbGUiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsZ0JBQXpCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixTQUFyQjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkosWUFBN0IsQ0FBMEM7QUFDdkRLLEVBQUFBLFdBQVcsR0FBRztBQUNaLFVBQU1GLElBQU47QUFFQSxTQUFLRyxVQUFMLEdBQWtCLElBQUlMLElBQUosRUFBbEI7QUFDQSxTQUFLTSxZQUFMLEdBQW9CLElBQUlOLElBQUosRUFBcEI7QUFDRDs7QUFFRE8sRUFBQUEsY0FBYyxHQUFHLENBQUU7O0FBRW5CQyxFQUFBQSxpQkFBaUIsQ0FBQ0MsUUFBRCxFQUFXLENBQUUsQ0FWeUIsQ0FVeEI7OztBQUUvQkMsRUFBQUEsZ0JBQWdCLENBQUNELFFBQUQsRUFBVyxDQUFFLENBWjBCLENBWXpCOzs7QUFFOUJFLEVBQUFBLGNBQWMsQ0FBQ0YsUUFBRCxFQUFXLENBQUUsQ0FkNEIsQ0FjM0I7OztBQWQyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9DVVNUT00gYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXN0b21SZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy50YXJnZXRQb29sID0gbmV3IFBvb2woKTtcbiAgICB0aGlzLm1hdGVyaWFsUG9vbCA9IG5ldyBQb29sKCk7XG4gIH1cblxuICBvblN5c3RlbVVwZGF0ZSgpIHt9XG5cbiAgb25QYXJ0aWNsZUNyZWF0ZWQocGFydGljbGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgb25QYXJ0aWNsZURlYWQocGFydGljbGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Desktop/index.js",
    "content": "import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { ParticleBuffer, Target, TextureAtlas, UniqueList } from '../common';\nimport { fragmentShader, vertexShader } from './shaders';\nimport BaseRenderer from '../../BaseRenderer';\nimport { DEFAULT_RENDERER_OPTIONS } from '../common/constants';\nimport { Pool } from '../../../core';\nimport { RENDERER_TYPE_GPU_DESKTOP } from '../../types';\nlet THREE;\n/**\n * GPURenderer for devices that support floating point textures.\n *\n * @author thrax <manthrax@gmail.com>\n * @author rohan-deshpande <rohan@creativelifeform.com>\n */\n\nexport default class DesktopGPURenderer extends BaseRenderer {\n  constructor(container, three, options = DEFAULT_RENDERER_OPTIONS) {\n    super(RENDERER_TYPE_GPU_DESKTOP);\n    THREE = this.three = three;\n\n    const props = _objectSpread(_objectSpread({}, DEFAULT_RENDERER_OPTIONS), options);\n\n    const {\n      camera,\n      maxParticles,\n      baseColor,\n      blending,\n      depthTest,\n      depthWrite,\n      transparent,\n      shouldDebugTextureAtlas\n    } = props;\n    const particleBuffer = new ParticleBuffer(maxParticles, THREE);\n    const material = new THREE.ShaderMaterial({\n      uniforms: {\n        baseColor: {\n          value: new THREE.Color(baseColor)\n        },\n        uTexture: {\n          value: null\n        },\n        atlasIndex: {\n          value: null\n        }\n      },\n      vertexShader: vertexShader(),\n      fragmentShader: fragmentShader(),\n      blending: THREE[blending],\n      depthTest,\n      depthWrite,\n      transparent\n    });\n    this.container = container;\n    this.camera = camera;\n    this.targetPool = new Pool();\n    this.uniqueList = new UniqueList(maxParticles);\n    this.particleBuffer = particleBuffer;\n    this.buffer = particleBuffer.buffer;\n    this.stride = particleBuffer.stride;\n    this.geometry = particleBuffer.geometry;\n    this.material = material;\n    this.points = new THREE.Points(this.geometry, this.material);\n    this.points.frustumCulled = false;\n    this.shouldDebugTextureAtlas = shouldDebugTextureAtlas;\n    this.container.add(this.points);\n  }\n\n  onSystemUpdate(system) {\n    super.onSystemUpdate(system);\n    this.buffer.needsUpdate = true;\n    this.textureAtlas && this.textureAtlas.update();\n  }\n  /**\n   * Pools the particle target if it does not exist.\n   * Updates the target and maps particle properties to the point.\n   *\n   * @param {Particle}\n   */\n\n\n  onParticleCreated(particle) {\n    if (!particle.target) {\n      particle.target = this.targetPool.get(Target, THREE);\n      this.uniqueList.add(particle.id);\n    }\n\n    this.updateTarget(particle).mapParticleTargetPropsToPoint(particle);\n  }\n  /**\n   * Maps particle properties to the point if the particle has a target.\n   *\n   * @param {Particle}\n   */\n\n\n  onParticleUpdate(particle) {\n    if (!particle.target) {\n      return;\n    }\n\n    this.updateTarget(particle).mapParticleTargetPropsToPoint(particle);\n  }\n  /**\n   * Resets and clears the particle target.\n   *\n   * @param {Particle}\n   */\n\n\n  onParticleDead(particle) {\n    if (!particle.target) {\n      return;\n    }\n\n    particle.target.reset();\n    this.mapParticleTargetPropsToPoint(particle);\n    particle.target = null;\n  }\n  /**\n   * Maps all mutable properties from the particle to the target.\n   *\n   * @param {Particle}\n   * @return {DesktopGPURenderer}\n   */\n\n\n  updateTarget(particle) {\n    const {\n      position,\n      rotation,\n      scale,\n      radius,\n      color,\n      alpha,\n      body,\n      id\n    } = particle;\n    const {\n      r,\n      g,\n      b\n    } = color;\n    particle.target.position.copy(position);\n    particle.target.rotation.copy(rotation);\n    particle.target.size = scale * radius;\n    particle.target.color.setRGB(r, g, b);\n    particle.target.alpha = alpha;\n    particle.target.index = this.uniqueList.find(id);\n\n    if (body && body instanceof THREE.Sprite) {\n      const {\n        map\n      } = body.material;\n      particle.target.texture = map;\n      particle.target.textureIndex = this.getTextureID(map, this.shouldDebugTextureAtlas);\n    }\n\n    return this;\n  }\n  /**\n   * Entry point for mapping particle properties to buffer geometry points.\n   *\n   * @param {Particle} particle - The particle containing the properties to map\n   * @return {DesktopGPURenderer}\n   */\n\n\n  mapParticleTargetPropsToPoint(particle) {\n    this.updatePointPosition(particle).updatePointSize(particle).updatePointRotation(particle).updatePointColor(particle).updatePointAlpha(particle).updatePointTextureIndex(particle);\n    return this;\n  }\n  /**\n   * Updates the point's position according to the particle's target position.\n   *\n   * @param {Particle} particle - The particle containing the target position.\n   * @return {DesktopGPURenderer}\n   */\n\n\n  updatePointPosition(particle) {\n    const attribute = 'position';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.position.x;\n    buffer.array[target.index * stride + offset + 1] = target.position.y;\n    buffer.array[target.index * stride + offset + 2] = target.position.z;\n    return this;\n  }\n  /**\n   * Updates the point's size relative to the particle's target scale and radius.\n   *\n   * @param {Particle} particle - The particle containing the target scale.\n   * @return {DesktopGPURenderer}\n   */\n\n\n  updatePointSize(particle) {\n    const attribute = 'size';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.size;\n    return this;\n  }\n  /**\n   * Updates the point's rotation.\n   *\n   * @param {Particle} particle - The particle containing the target rotation.\n   * @return {DesktopGPURenderer}\n   */\n\n\n  updatePointRotation(particle) {\n    const attribute = 'rotation';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.rotation.z;\n    return this;\n  }\n  /**\n   * Updates the point's color attribute according with the particle's target color.\n   *\n   * @param {Particle} particle - The particle containing the target color and alpha.\n   * @return {DesktopGPURenderer}\n   */\n\n\n  updatePointColor(particle) {\n    const attribute = 'color';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.color.r;\n    buffer.array[target.index * stride + offset + 1] = target.color.g;\n    buffer.array[target.index * stride + offset + 2] = target.color.b;\n    return this;\n  }\n  /**\n   * Updates the point alpha attribute with the particle's target alpha.\n   *\n   * @param {Particle} particle - The particle containing the target alpha.\n   * @return {DesktopGPURenderer}\n   */\n\n\n  updatePointAlpha(particle) {\n    const attribute = 'alpha';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.alpha;\n    return this;\n  }\n  /**\n   * Updates the point texture attribute with the particle's target texture.\n   *\n   * @param {Particle} particle - The particle containing the target texture.\n   * @return {DesktopGPURenderer}\n   */\n\n\n  updatePointTextureIndex(particle) {\n    const attribute = 'texID';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.textureIndex;\n    return this;\n  }\n\n  getTextureID(texture, debug) {\n    if (texture.textureIndex === undefined) {\n      if (!this.textureAtlas) {\n        this.textureAtlas = new TextureAtlas(this, debug);\n      }\n\n      this.textureAtlas.addTexture(texture);\n    }\n\n    return texture.textureIndex;\n  }\n  /**\n   * Tears down the GPURenderer.\n   *\n   * @return void\n   */\n\n\n  destroy() {\n    const {\n      container,\n      points,\n      textureAtlas,\n      uniqueList\n    } = this;\n    container.remove(points);\n    uniqueList.destroy();\n    textureAtlas && textureAtlas.destroy();\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9EZXNrdG9wL2luZGV4LmpzIl0sIm5hbWVzIjpbIlBhcnRpY2xlQnVmZmVyIiwiVGFyZ2V0IiwiVGV4dHVyZUF0bGFzIiwiVW5pcXVlTGlzdCIsImZyYWdtZW50U2hhZGVyIiwidmVydGV4U2hhZGVyIiwiQmFzZVJlbmRlcmVyIiwiREVGQVVMVF9SRU5ERVJFUl9PUFRJT05TIiwiUG9vbCIsIlJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AiLCJUSFJFRSIsIkRlc2t0b3BHUFVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwidGhyZWUiLCJvcHRpb25zIiwicHJvcHMiLCJjYW1lcmEiLCJtYXhQYXJ0aWNsZXMiLCJiYXNlQ29sb3IiLCJibGVuZGluZyIsImRlcHRoVGVzdCIsImRlcHRoV3JpdGUiLCJ0cmFuc3BhcmVudCIsInNob3VsZERlYnVnVGV4dHVyZUF0bGFzIiwicGFydGljbGVCdWZmZXIiLCJtYXRlcmlhbCIsIlNoYWRlck1hdGVyaWFsIiwidW5pZm9ybXMiLCJ2YWx1ZSIsIkNvbG9yIiwidVRleHR1cmUiLCJhdGxhc0luZGV4IiwidGFyZ2V0UG9vbCIsInVuaXF1ZUxpc3QiLCJidWZmZXIiLCJzdHJpZGUiLCJnZW9tZXRyeSIsInBvaW50cyIsIlBvaW50cyIsImZydXN0dW1DdWxsZWQiLCJhZGQiLCJvblN5c3RlbVVwZGF0ZSIsInN5c3RlbSIsIm5lZWRzVXBkYXRlIiwidGV4dHVyZUF0bGFzIiwidXBkYXRlIiwib25QYXJ0aWNsZUNyZWF0ZWQiLCJwYXJ0aWNsZSIsInRhcmdldCIsImdldCIsImlkIiwidXBkYXRlVGFyZ2V0IiwibWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiLCJyZXNldCIsInBvc2l0aW9uIiwicm90YXRpb24iLCJzY2FsZSIsInJhZGl1cyIsImNvbG9yIiwiYWxwaGEiLCJib2R5IiwiciIsImciLCJiIiwiY29weSIsInNpemUiLCJzZXRSR0IiLCJpbmRleCIsImZpbmQiLCJTcHJpdGUiLCJtYXAiLCJ0ZXh0dXJlIiwidGV4dHVyZUluZGV4IiwiZ2V0VGV4dHVyZUlEIiwidXBkYXRlUG9pbnRQb3NpdGlvbiIsInVwZGF0ZVBvaW50U2l6ZSIsInVwZGF0ZVBvaW50Um90YXRpb24iLCJ1cGRhdGVQb2ludENvbG9yIiwidXBkYXRlUG9pbnRBbHBoYSIsInVwZGF0ZVBvaW50VGV4dHVyZUluZGV4IiwiYXR0cmlidXRlIiwib2Zmc2V0IiwiYXR0cmlidXRlcyIsImFycmF5IiwieCIsInkiLCJ6IiwiZGVidWciLCJ1bmRlZmluZWQiLCJhZGRUZXh0dXJlIiwiZGVzdHJveSIsInJlbW92ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsY0FBVCxFQUF5QkMsTUFBekIsRUFBaUNDLFlBQWpDLEVBQStDQyxVQUEvQyxRQUFpRSxXQUFqRTtBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLFlBQXpCLFFBQTZDLFdBQTdDO0FBRUEsT0FBT0MsWUFBUCxNQUF5QixvQkFBekI7QUFDQSxTQUFTQyx3QkFBVCxRQUF5QyxxQkFBekM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsYUFBMUM7QUFFQSxJQUFJQyxLQUFKO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsa0JBQU4sU0FBaUNMLFlBQWpDLENBQThDO0FBQzNETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUUseUJBQU47QUFFQUMsSUFBQUEsS0FBSyxHQUFHLEtBQUtJLEtBQUwsR0FBYUEsS0FBckI7O0FBQ0EsVUFBTUUsS0FBSyxtQ0FBUVQsd0JBQVIsR0FBcUNRLE9BQXJDLENBQVg7O0FBQ0EsVUFBTTtBQUNKRSxNQUFBQSxNQURJO0FBRUpDLE1BQUFBLFlBRkk7QUFHSkMsTUFBQUEsU0FISTtBQUlKQyxNQUFBQSxRQUpJO0FBS0pDLE1BQUFBLFNBTEk7QUFNSkMsTUFBQUEsVUFOSTtBQU9KQyxNQUFBQSxXQVBJO0FBUUpDLE1BQUFBO0FBUkksUUFTRlIsS0FUSjtBQVVBLFVBQU1TLGNBQWMsR0FBRyxJQUFJekIsY0FBSixDQUFtQmtCLFlBQW5CLEVBQWlDUixLQUFqQyxDQUF2QjtBQUNBLFVBQU1nQixRQUFRLEdBQUcsSUFBSWhCLEtBQUssQ0FBQ2lCLGNBQVYsQ0FBeUI7QUFDeENDLE1BQUFBLFFBQVEsRUFBRTtBQUNSVCxRQUFBQSxTQUFTLEVBQUU7QUFBRVUsVUFBQUEsS0FBSyxFQUFFLElBQUluQixLQUFLLENBQUNvQixLQUFWLENBQWdCWCxTQUFoQjtBQUFULFNBREg7QUFFUlksUUFBQUEsUUFBUSxFQUFFO0FBQUVGLFVBQUFBLEtBQUssRUFBRTtBQUFULFNBRkY7QUFHUkcsUUFBQUEsVUFBVSxFQUFFO0FBQUVILFVBQUFBLEtBQUssRUFBRTtBQUFUO0FBSEosT0FEOEI7QUFNeEN4QixNQUFBQSxZQUFZLEVBQUVBLFlBQVksRUFOYztBQU94Q0QsTUFBQUEsY0FBYyxFQUFFQSxjQUFjLEVBUFU7QUFReENnQixNQUFBQSxRQUFRLEVBQUVWLEtBQUssQ0FBQ1UsUUFBRCxDQVJ5QjtBQVN4Q0MsTUFBQUEsU0FUd0M7QUFVeENDLE1BQUFBLFVBVndDO0FBV3hDQyxNQUFBQTtBQVh3QyxLQUF6QixDQUFqQjtBQWNBLFNBQUtWLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0EsU0FBS0ksTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS2dCLFVBQUwsR0FBa0IsSUFBSXpCLElBQUosRUFBbEI7QUFDQSxTQUFLMEIsVUFBTCxHQUFrQixJQUFJL0IsVUFBSixDQUFlZSxZQUFmLENBQWxCO0FBQ0EsU0FBS08sY0FBTCxHQUFzQkEsY0FBdEI7QUFDQSxTQUFLVSxNQUFMLEdBQWNWLGNBQWMsQ0FBQ1UsTUFBN0I7QUFDQSxTQUFLQyxNQUFMLEdBQWNYLGNBQWMsQ0FBQ1csTUFBN0I7QUFDQSxTQUFLQyxRQUFMLEdBQWdCWixjQUFjLENBQUNZLFFBQS9CO0FBQ0EsU0FBS1gsUUFBTCxHQUFnQkEsUUFBaEI7QUFDQSxTQUFLWSxNQUFMLEdBQWMsSUFBSTVCLEtBQUssQ0FBQzZCLE1BQVYsQ0FBaUIsS0FBS0YsUUFBdEIsRUFBZ0MsS0FBS1gsUUFBckMsQ0FBZDtBQUNBLFNBQUtZLE1BQUwsQ0FBWUUsYUFBWixHQUE0QixLQUE1QjtBQUNBLFNBQUtoQix1QkFBTCxHQUErQkEsdUJBQS9CO0FBRUEsU0FBS1gsU0FBTCxDQUFlNEIsR0FBZixDQUFtQixLQUFLSCxNQUF4QjtBQUNEOztBQUVESSxFQUFBQSxjQUFjLENBQUNDLE1BQUQsRUFBUztBQUNyQixVQUFNRCxjQUFOLENBQXFCQyxNQUFyQjtBQUVBLFNBQUtSLE1BQUwsQ0FBWVMsV0FBWixHQUEwQixJQUExQjtBQUVBLFNBQUtDLFlBQUwsSUFBcUIsS0FBS0EsWUFBTCxDQUFrQkMsTUFBbEIsRUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLGlCQUFpQixDQUFDQyxRQUFELEVBQVc7QUFDMUIsUUFBSSxDQUFDQSxRQUFRLENBQUNDLE1BQWQsRUFBc0I7QUFDcEJELE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxHQUFrQixLQUFLaEIsVUFBTCxDQUFnQmlCLEdBQWhCLENBQW9CakQsTUFBcEIsRUFBNEJTLEtBQTVCLENBQWxCO0FBQ0EsV0FBS3dCLFVBQUwsQ0FBZ0JPLEdBQWhCLENBQW9CTyxRQUFRLENBQUNHLEVBQTdCO0FBQ0Q7O0FBRUQsU0FBS0MsWUFBTCxDQUFrQkosUUFBbEIsRUFBNEJLLDZCQUE1QixDQUEwREwsUUFBMUQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTSxFQUFBQSxnQkFBZ0IsQ0FBQ04sUUFBRCxFQUFXO0FBQ3pCLFFBQUksQ0FBQ0EsUUFBUSxDQUFDQyxNQUFkLEVBQXNCO0FBQ3BCO0FBQ0Q7O0FBRUQsU0FBS0csWUFBTCxDQUFrQkosUUFBbEIsRUFBNEJLLDZCQUE1QixDQUEwREwsUUFBMUQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTyxFQUFBQSxjQUFjLENBQUNQLFFBQUQsRUFBVztBQUN2QixRQUFJLENBQUNBLFFBQVEsQ0FBQ0MsTUFBZCxFQUFzQjtBQUNwQjtBQUNEOztBQUVERCxJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JPLEtBQWhCO0FBQ0EsU0FBS0gsNkJBQUwsQ0FBbUNMLFFBQW5DO0FBRUFBLElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxHQUFrQixJQUFsQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsWUFBWSxDQUFDSixRQUFELEVBQVc7QUFDckIsVUFBTTtBQUFFUyxNQUFBQSxRQUFGO0FBQVlDLE1BQUFBLFFBQVo7QUFBc0JDLE1BQUFBLEtBQXRCO0FBQTZCQyxNQUFBQSxNQUE3QjtBQUFxQ0MsTUFBQUEsS0FBckM7QUFBNENDLE1BQUFBLEtBQTVDO0FBQW1EQyxNQUFBQSxJQUFuRDtBQUF5RFosTUFBQUE7QUFBekQsUUFBZ0VILFFBQXRFO0FBQ0EsVUFBTTtBQUFFZ0IsTUFBQUEsQ0FBRjtBQUFLQyxNQUFBQSxDQUFMO0FBQVFDLE1BQUFBO0FBQVIsUUFBY0wsS0FBcEI7QUFFQWIsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCUSxRQUFoQixDQUF5QlUsSUFBekIsQ0FBOEJWLFFBQTlCO0FBQ0FULElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQlMsUUFBaEIsQ0FBeUJTLElBQXpCLENBQThCVCxRQUE5QjtBQUNBVixJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JtQixJQUFoQixHQUF1QlQsS0FBSyxHQUFHQyxNQUEvQjtBQUNBWixJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JZLEtBQWhCLENBQXNCUSxNQUF0QixDQUE2QkwsQ0FBN0IsRUFBZ0NDLENBQWhDLEVBQW1DQyxDQUFuQztBQUNBbEIsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCYSxLQUFoQixHQUF3QkEsS0FBeEI7QUFDQWQsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCcUIsS0FBaEIsR0FBd0IsS0FBS3BDLFVBQUwsQ0FBZ0JxQyxJQUFoQixDQUFxQnBCLEVBQXJCLENBQXhCOztBQUVBLFFBQUlZLElBQUksSUFBSUEsSUFBSSxZQUFZckQsS0FBSyxDQUFDOEQsTUFBbEMsRUFBMEM7QUFDeEMsWUFBTTtBQUFFQyxRQUFBQTtBQUFGLFVBQVVWLElBQUksQ0FBQ3JDLFFBQXJCO0FBRUFzQixNQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0J5QixPQUFoQixHQUEwQkQsR0FBMUI7QUFDQXpCLE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQjBCLFlBQWhCLEdBQStCLEtBQUtDLFlBQUwsQ0FDN0JILEdBRDZCLEVBRTdCLEtBQUtqRCx1QkFGd0IsQ0FBL0I7QUFJRDs7QUFFRCxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0U2QixFQUFBQSw2QkFBNkIsQ0FBQ0wsUUFBRCxFQUFXO0FBQ3RDLFNBQUs2QixtQkFBTCxDQUF5QjdCLFFBQXpCLEVBQ0c4QixlQURILENBQ21COUIsUUFEbkIsRUFFRytCLG1CQUZILENBRXVCL0IsUUFGdkIsRUFHR2dDLGdCQUhILENBR29CaEMsUUFIcEIsRUFJR2lDLGdCQUpILENBSW9CakMsUUFKcEIsRUFLR2tDLHVCQUxILENBSzJCbEMsUUFMM0I7QUFPQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0U2QixFQUFBQSxtQkFBbUIsQ0FBQzdCLFFBQUQsRUFBVztBQUM1QixVQUFNbUMsU0FBUyxHQUFHLFVBQWxCO0FBQ0EsVUFBTTtBQUFFOUMsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRWMsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYS9DLFFBQVEsQ0FBQ2dELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFoRCxJQUFBQSxNQUFNLENBQUNtRCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWVsQyxNQUFmLEdBQXdCZ0QsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNRLFFBQVAsQ0FBZ0I4QixDQUFuRTtBQUNBcEQsSUFBQUEsTUFBTSxDQUFDbUQsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFlbEMsTUFBZixHQUF3QmdELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDUSxRQUFQLENBQWdCK0IsQ0FBbkU7QUFDQXJELElBQUFBLE1BQU0sQ0FBQ21ELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZWxDLE1BQWYsR0FBd0JnRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1EsUUFBUCxDQUFnQmdDLENBQW5FO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFWCxFQUFBQSxlQUFlLENBQUM5QixRQUFELEVBQVc7QUFDeEIsVUFBTW1DLFNBQVMsR0FBRyxNQUFsQjtBQUNBLFVBQU07QUFBRTlDLE1BQUFBLFFBQUY7QUFBWUQsTUFBQUEsTUFBWjtBQUFvQkQsTUFBQUE7QUFBcEIsUUFBK0IsSUFBckM7QUFDQSxVQUFNO0FBQUVjLE1BQUFBO0FBQUYsUUFBYUQsUUFBbkI7QUFDQSxVQUFNO0FBQUVvQyxNQUFBQTtBQUFGLFFBQWEvQyxRQUFRLENBQUNnRCxVQUFULENBQW9CRixTQUFwQixDQUFuQjtBQUVBaEQsSUFBQUEsTUFBTSxDQUFDbUQsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFlbEMsTUFBZixHQUF3QmdELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDbUIsSUFBMUQ7QUFFQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VXLEVBQUFBLG1CQUFtQixDQUFDL0IsUUFBRCxFQUFXO0FBQzVCLFVBQU1tQyxTQUFTLEdBQUcsVUFBbEI7QUFDQSxVQUFNO0FBQUU5QyxNQUFBQSxRQUFGO0FBQVlELE1BQUFBLE1BQVo7QUFBb0JELE1BQUFBO0FBQXBCLFFBQStCLElBQXJDO0FBQ0EsVUFBTTtBQUFFYyxNQUFBQTtBQUFGLFFBQWFELFFBQW5CO0FBQ0EsVUFBTTtBQUFFb0MsTUFBQUE7QUFBRixRQUFhL0MsUUFBUSxDQUFDZ0QsVUFBVCxDQUFvQkYsU0FBcEIsQ0FBbkI7QUFFQWhELElBQUFBLE1BQU0sQ0FBQ21ELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZWxDLE1BQWYsR0FBd0JnRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1MsUUFBUCxDQUFnQitCLENBQW5FO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFVCxFQUFBQSxnQkFBZ0IsQ0FBQ2hDLFFBQUQsRUFBVztBQUN6QixVQUFNbUMsU0FBUyxHQUFHLE9BQWxCO0FBQ0EsVUFBTTtBQUFFOUMsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRWMsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYS9DLFFBQVEsQ0FBQ2dELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFoRCxJQUFBQSxNQUFNLENBQUNtRCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWVsQyxNQUFmLEdBQXdCZ0QsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNZLEtBQVAsQ0FBYUcsQ0FBaEU7QUFDQTdCLElBQUFBLE1BQU0sQ0FBQ21ELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZWxDLE1BQWYsR0FBd0JnRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1ksS0FBUCxDQUFhSSxDQUFoRTtBQUNBOUIsSUFBQUEsTUFBTSxDQUFDbUQsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFlbEMsTUFBZixHQUF3QmdELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDWSxLQUFQLENBQWFLLENBQWhFO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFZSxFQUFBQSxnQkFBZ0IsQ0FBQ2pDLFFBQUQsRUFBVztBQUN6QixVQUFNbUMsU0FBUyxHQUFHLE9BQWxCO0FBQ0EsVUFBTTtBQUFFOUMsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRWMsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYS9DLFFBQVEsQ0FBQ2dELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFoRCxJQUFBQSxNQUFNLENBQUNtRCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWVsQyxNQUFmLEdBQXdCZ0QsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNhLEtBQTFEO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFb0IsRUFBQUEsdUJBQXVCLENBQUNsQyxRQUFELEVBQVc7QUFDaEMsVUFBTW1DLFNBQVMsR0FBRyxPQUFsQjtBQUNBLFVBQU07QUFBRTlDLE1BQUFBLFFBQUY7QUFBWUQsTUFBQUEsTUFBWjtBQUFvQkQsTUFBQUE7QUFBcEIsUUFBK0IsSUFBckM7QUFDQSxVQUFNO0FBQUVjLE1BQUFBO0FBQUYsUUFBYUQsUUFBbkI7QUFDQSxVQUFNO0FBQUVvQyxNQUFBQTtBQUFGLFFBQWEvQyxRQUFRLENBQUNnRCxVQUFULENBQW9CRixTQUFwQixDQUFuQjtBQUVBaEQsSUFBQUEsTUFBTSxDQUFDbUQsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFlbEMsTUFBZixHQUF3QmdELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDMEIsWUFBMUQ7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFREMsRUFBQUEsWUFBWSxDQUFDRixPQUFELEVBQVVnQixLQUFWLEVBQWlCO0FBQzNCLFFBQUloQixPQUFPLENBQUNDLFlBQVIsS0FBeUJnQixTQUE3QixFQUF3QztBQUN0QyxVQUFJLENBQUMsS0FBSzlDLFlBQVYsRUFBd0I7QUFDdEIsYUFBS0EsWUFBTCxHQUFvQixJQUFJM0MsWUFBSixDQUFpQixJQUFqQixFQUF1QndGLEtBQXZCLENBQXBCO0FBQ0Q7O0FBRUQsV0FBSzdDLFlBQUwsQ0FBa0IrQyxVQUFsQixDQUE2QmxCLE9BQTdCO0FBQ0Q7O0FBRUQsV0FBT0EsT0FBTyxDQUFDQyxZQUFmO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRWtCLEVBQUFBLE9BQU8sR0FBRztBQUNSLFVBQU07QUFBRWhGLE1BQUFBLFNBQUY7QUFBYXlCLE1BQUFBLE1BQWI7QUFBcUJPLE1BQUFBLFlBQXJCO0FBQW1DWCxNQUFBQTtBQUFuQyxRQUFrRCxJQUF4RDtBQUVBckIsSUFBQUEsU0FBUyxDQUFDaUYsTUFBVixDQUFpQnhELE1BQWpCO0FBQ0FKLElBQUFBLFVBQVUsQ0FBQzJELE9BQVg7QUFDQWhELElBQUFBLFlBQVksSUFBSUEsWUFBWSxDQUFDZ0QsT0FBYixFQUFoQjtBQUNEOztBQW5SMEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJ0aWNsZUJ1ZmZlciwgVGFyZ2V0LCBUZXh0dXJlQXRsYXMsIFVuaXF1ZUxpc3QgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgZnJhZ21lbnRTaGFkZXIsIHZlcnRleFNoYWRlciB9IGZyb20gJy4vc2hhZGVycyc7XG5cbmltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi4vLi4vQmFzZVJlbmRlcmVyJztcbmltcG9ydCB7IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUyB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxubGV0IFRIUkVFO1xuXG4vKipcbiAqIEdQVVJlbmRlcmVyIGZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCBmbG9hdGluZyBwb2ludCB0ZXh0dXJlcy5cbiAqXG4gKiBAYXV0aG9yIHRocmF4IDxtYW50aHJheEBnbWFpbC5jb20+XG4gKiBAYXV0aG9yIHJvaGFuLWRlc2hwYW5kZSA8cm9oYW5AY3JlYXRpdmVsaWZlZm9ybS5jb20+XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlc2t0b3BHUFVSZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lciwgdGhyZWUsIG9wdGlvbnMgPSBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMpIHtcbiAgICBzdXBlcihSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QKTtcblxuICAgIFRIUkVFID0gdGhpcy50aHJlZSA9IHRocmVlO1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5ERUZBVUxUX1JFTkRFUkVSX09QVElPTlMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCB7XG4gICAgICBjYW1lcmEsXG4gICAgICBtYXhQYXJ0aWNsZXMsXG4gICAgICBiYXNlQ29sb3IsXG4gICAgICBibGVuZGluZyxcbiAgICAgIGRlcHRoVGVzdCxcbiAgICAgIGRlcHRoV3JpdGUsXG4gICAgICB0cmFuc3BhcmVudCxcbiAgICAgIHNob3VsZERlYnVnVGV4dHVyZUF0bGFzLFxuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBwYXJ0aWNsZUJ1ZmZlciA9IG5ldyBQYXJ0aWNsZUJ1ZmZlcihtYXhQYXJ0aWNsZXMsIFRIUkVFKTtcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XG4gICAgICB1bmlmb3Jtczoge1xuICAgICAgICBiYXNlQ29sb3I6IHsgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcihiYXNlQ29sb3IpIH0sXG4gICAgICAgIHVUZXh0dXJlOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgIGF0bGFzSW5kZXg6IHsgdmFsdWU6IG51bGwgfSxcbiAgICAgIH0sXG4gICAgICB2ZXJ0ZXhTaGFkZXI6IHZlcnRleFNoYWRlcigpLFxuICAgICAgZnJhZ21lbnRTaGFkZXI6IGZyYWdtZW50U2hhZGVyKCksXG4gICAgICBibGVuZGluZzogVEhSRUVbYmxlbmRpbmddLFxuICAgICAgZGVwdGhUZXN0LFxuICAgICAgZGVwdGhXcml0ZSxcbiAgICAgIHRyYW5zcGFyZW50LFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgdGhpcy5jYW1lcmEgPSBjYW1lcmE7XG4gICAgdGhpcy50YXJnZXRQb29sID0gbmV3IFBvb2woKTtcbiAgICB0aGlzLnVuaXF1ZUxpc3QgPSBuZXcgVW5pcXVlTGlzdChtYXhQYXJ0aWNsZXMpO1xuICAgIHRoaXMucGFydGljbGVCdWZmZXIgPSBwYXJ0aWNsZUJ1ZmZlcjtcbiAgICB0aGlzLmJ1ZmZlciA9IHBhcnRpY2xlQnVmZmVyLmJ1ZmZlcjtcbiAgICB0aGlzLnN0cmlkZSA9IHBhcnRpY2xlQnVmZmVyLnN0cmlkZTtcbiAgICB0aGlzLmdlb21ldHJ5ID0gcGFydGljbGVCdWZmZXIuZ2VvbWV0cnk7XG4gICAgdGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuICAgIHRoaXMucG9pbnRzID0gbmV3IFRIUkVFLlBvaW50cyh0aGlzLmdlb21ldHJ5LCB0aGlzLm1hdGVyaWFsKTtcbiAgICB0aGlzLnBvaW50cy5mcnVzdHVtQ3VsbGVkID0gZmFsc2U7XG4gICAgdGhpcy5zaG91bGREZWJ1Z1RleHR1cmVBdGxhcyA9IHNob3VsZERlYnVnVGV4dHVyZUF0bGFzO1xuXG4gICAgdGhpcy5jb250YWluZXIuYWRkKHRoaXMucG9pbnRzKTtcbiAgfVxuXG4gIG9uU3lzdGVtVXBkYXRlKHN5c3RlbSkge1xuICAgIHN1cGVyLm9uU3lzdGVtVXBkYXRlKHN5c3RlbSk7XG5cbiAgICB0aGlzLmJ1ZmZlci5uZWVkc1VwZGF0ZSA9IHRydWU7XG5cbiAgICB0aGlzLnRleHR1cmVBdGxhcyAmJiB0aGlzLnRleHR1cmVBdGxhcy51cGRhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb29scyB0aGUgcGFydGljbGUgdGFyZ2V0IGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgKiBVcGRhdGVzIHRoZSB0YXJnZXQgYW5kIG1hcHMgcGFydGljbGUgcHJvcGVydGllcyB0byB0aGUgcG9pbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQgPSB0aGlzLnRhcmdldFBvb2wuZ2V0KFRhcmdldCwgVEhSRUUpO1xuICAgICAgdGhpcy51bmlxdWVMaXN0LmFkZChwYXJ0aWNsZS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVUYXJnZXQocGFydGljbGUpLm1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gdGhlIHBvaW50IGlmIHRoZSBwYXJ0aWNsZSBoYXMgYSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7XG4gICAgaWYgKCFwYXJ0aWNsZS50YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVRhcmdldChwYXJ0aWNsZSkubWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyBhbmQgY2xlYXJzIHRoZSBwYXJ0aWNsZSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlRGVhZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFydGljbGUudGFyZ2V0LnJlc2V0KCk7XG4gICAgdGhpcy5tYXBQYXJ0aWNsZVRhcmdldFByb3BzVG9Qb2ludChwYXJ0aWNsZSk7XG5cbiAgICBwYXJ0aWNsZS50YXJnZXQgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYWxsIG11dGFibGUgcHJvcGVydGllcyBmcm9tIHRoZSBwYXJ0aWNsZSB0byB0aGUgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfVxuICAgKiBAcmV0dXJuIHtEZXNrdG9wR1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVUYXJnZXQocGFydGljbGUpIHtcbiAgICBjb25zdCB7IHBvc2l0aW9uLCByb3RhdGlvbiwgc2NhbGUsIHJhZGl1cywgY29sb3IsIGFscGhhLCBib2R5LCBpZCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSBjb2xvcjtcblxuICAgIHBhcnRpY2xlLnRhcmdldC5wb3NpdGlvbi5jb3B5KHBvc2l0aW9uKTtcbiAgICBwYXJ0aWNsZS50YXJnZXQucm90YXRpb24uY29weShyb3RhdGlvbik7XG4gICAgcGFydGljbGUudGFyZ2V0LnNpemUgPSBzY2FsZSAqIHJhZGl1cztcbiAgICBwYXJ0aWNsZS50YXJnZXQuY29sb3Iuc2V0UkdCKHIsIGcsIGIpO1xuICAgIHBhcnRpY2xlLnRhcmdldC5hbHBoYSA9IGFscGhhO1xuICAgIHBhcnRpY2xlLnRhcmdldC5pbmRleCA9IHRoaXMudW5pcXVlTGlzdC5maW5kKGlkKTtcblxuICAgIGlmIChib2R5ICYmIGJvZHkgaW5zdGFuY2VvZiBUSFJFRS5TcHJpdGUpIHtcbiAgICAgIGNvbnN0IHsgbWFwIH0gPSBib2R5Lm1hdGVyaWFsO1xuXG4gICAgICBwYXJ0aWNsZS50YXJnZXQudGV4dHVyZSA9IG1hcDtcbiAgICAgIHBhcnRpY2xlLnRhcmdldC50ZXh0dXJlSW5kZXggPSB0aGlzLmdldFRleHR1cmVJRChcbiAgICAgICAgbWFwLFxuICAgICAgICB0aGlzLnNob3VsZERlYnVnVGV4dHVyZUF0bGFzXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50IGZvciBtYXBwaW5nIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gYnVmZmVyIGdlb21ldHJ5IHBvaW50cy5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgcHJvcGVydGllcyB0byBtYXBcbiAgICogQHJldHVybiB7RGVza3RvcEdQVVJlbmRlcmVyfVxuICAgKi9cbiAgbWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpIHtcbiAgICB0aGlzLnVwZGF0ZVBvaW50UG9zaXRpb24ocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRTaXplKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50Um90YXRpb24ocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRDb2xvcihwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludEFscGhhKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50VGV4dHVyZUluZGV4KHBhcnRpY2xlKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvaW50J3MgcG9zaXRpb24gYWNjb3JkaW5nIHRvIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBwb3NpdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IHBvc2l0aW9uLlxuICAgKiBAcmV0dXJuIHtEZXNrdG9wR1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3Bvc2l0aW9uJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5wb3NpdGlvbi54O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5wb3NpdGlvbi55O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5wb3NpdGlvbi56O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyBzaXplIHJlbGF0aXZlIHRvIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBzY2FsZSBhbmQgcmFkaXVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgc2NhbGUuXG4gICAqIEByZXR1cm4ge0Rlc2t0b3BHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVBvaW50U2l6ZShwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdzaXplJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5zaXplO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyByb3RhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IHJvdGF0aW9uLlxuICAgKiBAcmV0dXJuIHtEZXNrdG9wR1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFJvdGF0aW9uKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3JvdGF0aW9uJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5yb3RhdGlvbi56O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyBjb2xvciBhdHRyaWJ1dGUgYWNjb3JkaW5nIHdpdGggdGhlIHBhcnRpY2xlJ3MgdGFyZ2V0IGNvbG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgY29sb3IgYW5kIGFscGhhLlxuICAgKiBAcmV0dXJuIHtEZXNrdG9wR1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludENvbG9yKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ2NvbG9yJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5jb2xvci5yO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5jb2xvci5nO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5jb2xvci5iO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQgYWxwaGEgYXR0cmlidXRlIHdpdGggdGhlIHBhcnRpY2xlJ3MgdGFyZ2V0IGFscGhhLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgYWxwaGEuXG4gICAqIEByZXR1cm4ge0Rlc2t0b3BHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVBvaW50QWxwaGEocGFydGljbGUpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSAnYWxwaGEnO1xuICAgIGNvbnN0IHsgZ2VvbWV0cnksIHN0cmlkZSwgYnVmZmVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuXG4gICAgYnVmZmVyLmFycmF5W3RhcmdldC5pbmRleCAqIHN0cmlkZSArIG9mZnNldCArIDBdID0gdGFyZ2V0LmFscGhhO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQgdGV4dHVyZSBhdHRyaWJ1dGUgd2l0aCB0aGUgcGFydGljbGUncyB0YXJnZXQgdGV4dHVyZS5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IHRleHR1cmUuXG4gICAqIEByZXR1cm4ge0Rlc2t0b3BHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVBvaW50VGV4dHVyZUluZGV4KHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3RleElEJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC50ZXh0dXJlSW5kZXg7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldFRleHR1cmVJRCh0ZXh0dXJlLCBkZWJ1Zykge1xuICAgIGlmICh0ZXh0dXJlLnRleHR1cmVJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIXRoaXMudGV4dHVyZUF0bGFzKSB7XG4gICAgICAgIHRoaXMudGV4dHVyZUF0bGFzID0gbmV3IFRleHR1cmVBdGxhcyh0aGlzLCBkZWJ1Zyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudGV4dHVyZUF0bGFzLmFkZFRleHR1cmUodGV4dHVyZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHR1cmUudGV4dHVyZUluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFRlYXJzIGRvd24gdGhlIEdQVVJlbmRlcmVyLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIHBvaW50cywgdGV4dHVyZUF0bGFzLCB1bmlxdWVMaXN0IH0gPSB0aGlzO1xuXG4gICAgY29udGFpbmVyLnJlbW92ZShwb2ludHMpO1xuICAgIHVuaXF1ZUxpc3QuZGVzdHJveSgpO1xuICAgIHRleHR1cmVBdGxhcyAmJiB0ZXh0dXJlQXRsYXMuZGVzdHJveSgpO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Desktop/shaders/fragmentShader.js",
    "content": "export const fragmentShader = () => {\n  return `\n    uniform vec3 baseColor;\n    uniform sampler2D uTexture;\n    uniform sampler2D atlasIndex;\n\n    varying float vRotation;\n    varying vec3 targetColor;\n    varying float targetAlpha;\n    varying vec4 tileRect;\n    varying float tileID;\n\n    void main() {\n      gl_FragColor = vec4(baseColor * targetColor, targetAlpha);\n\n      vec2 uv = gl_PointCoord;\n      uv = mix(tileRect.xy, tileRect.zw, gl_PointCoord);\n\n      float mid = 0.5;\n      uv = vec2(\n        cos(vRotation) * (uv.x - mid) - sin(vRotation) * (uv.y - mid) + mid,\n        cos(vRotation) * (uv.y - mid) + sin(vRotation) * (uv.x - mid) + mid\n      );\n\n      gl_FragColor = gl_FragColor * texture2D(uTexture, uv);\n\n    }\n`;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9EZXNrdG9wL3NoYWRlcnMvZnJhZ21lbnRTaGFkZXIuanMiXSwibmFtZXMiOlsiZnJhZ21lbnRTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsY0FBYyxHQUFHLE1BQU07QUFDbEMsU0FBUTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0ExQkU7QUEyQkQsQ0E1Qk0iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJhZ21lbnRTaGFkZXIgPSAoKSA9PiB7XG4gIHJldHVybiBgXG4gICAgdW5pZm9ybSB2ZWMzIGJhc2VDb2xvcjtcbiAgICB1bmlmb3JtIHNhbXBsZXIyRCB1VGV4dHVyZTtcbiAgICB1bmlmb3JtIHNhbXBsZXIyRCBhdGxhc0luZGV4O1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuICAgIHZhcnlpbmcgZmxvYXQgdGlsZUlEO1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChiYXNlQ29sb3IgKiB0YXJnZXRDb2xvciwgdGFyZ2V0QWxwaGEpO1xuXG4gICAgICB2ZWMyIHV2ID0gZ2xfUG9pbnRDb29yZDtcbiAgICAgIHV2ID0gbWl4KHRpbGVSZWN0Lnh5LCB0aWxlUmVjdC56dywgZ2xfUG9pbnRDb29yZCk7XG5cbiAgICAgIGZsb2F0IG1pZCA9IDAuNTtcbiAgICAgIHV2ID0gdmVjMihcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueCAtIG1pZCkgLSBzaW4odlJvdGF0aW9uKSAqICh1di55IC0gbWlkKSArIG1pZCxcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueSAtIG1pZCkgKyBzaW4odlJvdGF0aW9uKSAqICh1di54IC0gbWlkKSArIG1pZFxuICAgICAgKTtcblxuICAgICAgZ2xfRnJhZ0NvbG9yID0gZ2xfRnJhZ0NvbG9yICogdGV4dHVyZTJEKHVUZXh0dXJlLCB1dik7XG5cbiAgICB9XG5gO1xufTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Desktop/shaders/index.js",
    "content": "export { fragmentShader } from './fragmentShader';\nexport { vertexShader } from './vertexShader';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9EZXNrdG9wL3NoYWRlcnMvaW5kZXguanMiXSwibmFtZXMiOlsiZnJhZ21lbnRTaGFkZXIiLCJ2ZXJ0ZXhTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGNBQVQsUUFBK0Isa0JBQS9CO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixnQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBmcmFnbWVudFNoYWRlciB9IGZyb20gJy4vZnJhZ21lbnRTaGFkZXInO1xuZXhwb3J0IHsgdmVydGV4U2hhZGVyIH0gZnJvbSAnLi92ZXJ0ZXhTaGFkZXInO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Desktop/shaders/vertexShader.js",
    "content": "import { DATA_TEXTURE_SIZE } from '../../common/TextureAtlas/constants';\nimport { SIZE_ATTENUATION_FACTOR } from '../../common/shaders/constants';\nexport const vertexShader = () => {\n  return `\n    uniform sampler2D uTexture;\n    //atlasIndex is a 256x1 float texture of tile rectangles as r=minx g=miny b=maxx a=maxy\n    uniform sampler2D atlasIndex;\n\n    attribute float size;\n    attribute vec3 color;\n    attribute float alpha;\n    attribute float texID;\n    attribute float rotation;\n\n    varying float vRotation;\n    varying vec3 targetColor;\n    varying float targetAlpha;\n    varying vec4 tileRect;\n    varying float tileID;\n\n    void main() {\n      vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n      targetColor = color;\n      targetAlpha = alpha;\n      vRotation = rotation;\n\n      tileID = texID;\n      //get the tile rectangle from the atlasIndex texture..\n      tileRect = texture2D(atlasIndex, vec2((tileID + 0.5) / ${DATA_TEXTURE_SIZE}.0, 0.5));\n\n      gl_PointSize = ((size * ${SIZE_ATTENUATION_FACTOR}) / -mvPosition.z);\n      gl_Position = projectionMatrix * mvPosition;\n    }\n`;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9EZXNrdG9wL3NoYWRlcnMvdmVydGV4U2hhZGVyLmpzIl0sIm5hbWVzIjpbIkRBVEFfVEVYVFVSRV9TSVpFIiwiU0laRV9BVFRFTlVBVElPTl9GQUNUT1IiLCJ2ZXJ0ZXhTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGlCQUFULFFBQWtDLHFDQUFsQztBQUNBLFNBQVNDLHVCQUFULFFBQXdDLGdDQUF4QztBQUVBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLE1BQU07QUFDaEMsU0FBUTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErREYsaUJBQWtCO0FBQ2pGO0FBQ0EsZ0NBQWdDQyx1QkFBd0I7QUFDeEQ7QUFDQTtBQUNBLENBOUJFO0FBK0JELENBaENNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREFUQV9URVhUVVJFX1NJWkUgfSBmcm9tICcuLi8uLi9jb21tb24vVGV4dHVyZUF0bGFzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTSVpFX0FUVEVOVUFUSU9OX0ZBQ1RPUiB9IGZyb20gJy4uLy4uL2NvbW1vbi9zaGFkZXJzL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB2ZXJ0ZXhTaGFkZXIgPSAoKSA9PiB7XG4gIHJldHVybiBgXG4gICAgdW5pZm9ybSBzYW1wbGVyMkQgdVRleHR1cmU7XG4gICAgLy9hdGxhc0luZGV4IGlzIGEgMjU2eDEgZmxvYXQgdGV4dHVyZSBvZiB0aWxlIHJlY3RhbmdsZXMgYXMgcj1taW54IGc9bWlueSBiPW1heHggYT1tYXh5XG4gICAgdW5pZm9ybSBzYW1wbGVyMkQgYXRsYXNJbmRleDtcblxuICAgIGF0dHJpYnV0ZSBmbG9hdCBzaXplO1xuICAgIGF0dHJpYnV0ZSB2ZWMzIGNvbG9yO1xuICAgIGF0dHJpYnV0ZSBmbG9hdCBhbHBoYTtcbiAgICBhdHRyaWJ1dGUgZmxvYXQgdGV4SUQ7XG4gICAgYXR0cmlidXRlIGZsb2F0IHJvdGF0aW9uO1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuICAgIHZhcnlpbmcgZmxvYXQgdGlsZUlEO1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgdmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICAgIHRhcmdldENvbG9yID0gY29sb3I7XG4gICAgICB0YXJnZXRBbHBoYSA9IGFscGhhO1xuICAgICAgdlJvdGF0aW9uID0gcm90YXRpb247XG5cbiAgICAgIHRpbGVJRCA9IHRleElEO1xuICAgICAgLy9nZXQgdGhlIHRpbGUgcmVjdGFuZ2xlIGZyb20gdGhlIGF0bGFzSW5kZXggdGV4dHVyZS4uXG4gICAgICB0aWxlUmVjdCA9IHRleHR1cmUyRChhdGxhc0luZGV4LCB2ZWMyKCh0aWxlSUQgKyAwLjUpIC8gJHtEQVRBX1RFWFRVUkVfU0laRX0uMCwgMC41KSk7XG5cbiAgICAgIGdsX1BvaW50U2l6ZSA9ICgoc2l6ZSAqICR7U0laRV9BVFRFTlVBVElPTl9GQUNUT1J9KSAvIC1tdlBvc2l0aW9uLnopO1xuICAgICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcbiAgICB9XG5gO1xufTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Mobile/index.js",
    "content": "import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { ParticleBuffer, Target, TextureAtlas, UniqueList } from '../common';\nimport { fragmentShader, vertexShader } from './shaders';\nimport BaseRenderer from '../../BaseRenderer';\nimport { DEFAULT_RENDERER_OPTIONS } from '../common/constants';\nimport { Pool } from '../../../core';\nimport { RENDERER_TYPE_GPU_MOBILE } from '../../types';\nlet THREE;\n/**\n * GPURenderer for mobile devices that do not support floating point textures.\n *\n * @author thrax <manthrax@gmail.com>\n * @author rohan-deshpande <rohan@creativelifeform.com>\n */\n\nexport default class MobileGPURenderer extends BaseRenderer {\n  constructor(container, three, options = DEFAULT_RENDERER_OPTIONS) {\n    super(RENDERER_TYPE_GPU_MOBILE);\n    THREE = this.three = three;\n\n    const props = _objectSpread(_objectSpread({}, DEFAULT_RENDERER_OPTIONS), options);\n\n    const {\n      camera,\n      maxParticles,\n      baseColor,\n      blending,\n      depthTest,\n      depthWrite,\n      transparent,\n      shouldDebugTextureAtlas\n    } = props;\n    const particleBuffer = new ParticleBuffer(maxParticles, THREE);\n    const material = new THREE.ShaderMaterial({\n      uniforms: {\n        baseColor: {\n          value: new THREE.Color(baseColor)\n        },\n        uTexture: {\n          value: null\n        },\n        FFatlasIndex: {\n          value: null\n        },\n        atlasDim: {\n          value: new THREE.Vector2()\n        }\n      },\n      vertexShader: vertexShader(),\n      fragmentShader: fragmentShader(),\n      blending: THREE[blending],\n      depthTest,\n      depthWrite,\n      transparent\n    });\n    this.camera = camera;\n    this.targetPool = new Pool();\n    this.uniqueList = new UniqueList(maxParticles);\n    this.particleBuffer = particleBuffer;\n    this.buffer = particleBuffer.buffer;\n    this.stride = particleBuffer.stride;\n    this.geometry = particleBuffer.geometry;\n    this.material = material;\n    this.points = new THREE.Points(this.geometry, this.material);\n    this.points.frustumCulled = false;\n    this.shouldDebugTextureAtlas = shouldDebugTextureAtlas;\n    container.add(this.points);\n  }\n\n  onSystemUpdate(system) {\n    super.onSystemUpdate(system);\n    this.buffer.needsUpdate = true;\n    const {\n      textureAtlas\n    } = this;\n\n    if (textureAtlas) {\n      textureAtlas.update();\n      this.material.uniforms.atlasDim.value.set(textureAtlas.atlasTexture.image.width, textureAtlas.atlasTexture.image.height);\n    }\n  }\n  /**\n   * Pools the particle target if it does not exist.\n   * Updates the target and maps particle properties to the point.\n   *\n   * @param {Particle}\n   */\n\n\n  onParticleCreated(particle) {\n    if (!particle.target) {\n      particle.target = this.targetPool.get(Target, THREE);\n      this.uniqueList.add(particle.id);\n    }\n\n    this.updateTarget(particle).mapParticleTargetPropsToPoint(particle);\n  }\n  /**\n   * Maps particle properties to the point if the particle has a target.\n   *\n   * @param {Particle}\n   */\n\n\n  onParticleUpdate(particle) {\n    if (!particle.target) {\n      return;\n    }\n\n    this.updateTarget(particle).mapParticleTargetPropsToPoint(particle);\n  }\n  /**\n   * Resets and clears the particle target.\n   *\n   * @param {Particle}\n   */\n\n\n  onParticleDead(particle) {\n    if (!particle.target) {\n      return;\n    }\n\n    particle.target.reset();\n    this.mapParticleTargetPropsToPoint(particle);\n    particle.target = null;\n  }\n  /**\n   * Maps all mutable properties from the particle to the target.\n   *\n   * @param {Particle}\n   * @return {GPURenderer}\n   */\n\n\n  updateTarget(particle) {\n    const {\n      position,\n      rotation,\n      scale,\n      radius,\n      color,\n      alpha,\n      body,\n      id\n    } = particle;\n    const {\n      r,\n      g,\n      b\n    } = color;\n    particle.target.position.copy(position);\n    particle.target.rotation.copy(rotation);\n    particle.target.size = scale * radius;\n    particle.target.color.setRGB(r, g, b);\n    particle.target.alpha = alpha;\n    particle.target.index = this.uniqueList.find(id);\n\n    if (body && body instanceof THREE.Sprite) {\n      const {\n        map\n      } = body.material;\n      particle.target.texture = map;\n      particle.target.textureIndex = this.getTextureID(map, this.shouldDebugTextureAtlas);\n    }\n\n    return this;\n  }\n  /**\n   * Entry point for mapping particle properties to buffer geometry points.\n   *\n   * @param {Particle} particle - The particle containing the properties to map\n   * @return {GPURenderer}\n   */\n\n\n  mapParticleTargetPropsToPoint(particle) {\n    this.updatePointPosition(particle).updatePointSize(particle).updatePointRotation(particle).updatePointColor(particle).updatePointAlpha(particle).updatePointTextureIndex(particle);\n    return this;\n  }\n  /**\n   * Updates the point's position according to the particle's target position.\n   *\n   * @param {Particle} particle - The particle containing the target position.\n   * @return {GPURenderer}\n   */\n\n\n  updatePointPosition(particle) {\n    const attribute = 'position';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.position.x;\n    buffer.array[target.index * stride + offset + 1] = target.position.y;\n    buffer.array[target.index * stride + offset + 2] = target.position.z;\n    return this;\n  }\n  /**\n   * Updates the point's size relative to the particle's target scale and radius.\n   *\n   * @param {Particle} particle - The particle containing the target scale.\n   * @return {GPURenderer}\n   */\n\n\n  updatePointSize(particle) {\n    const attribute = 'size';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.size;\n    return this;\n  }\n  /**\n   * Updates the point's rotation.\n   *\n   * @param {Particle} particle - The particle containing the target rotation.\n   * @return {GPURenderer}\n   */\n\n\n  updatePointRotation(particle) {\n    const attribute = 'rotation';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.rotation.z;\n    return this;\n  }\n  /**\n   * Updates the point's color attribute according with the particle's target color.\n   *\n   * @param {Particle} particle - The particle containing the target color and alpha.\n   * @return {GPURenderer}\n   */\n\n\n  updatePointColor(particle) {\n    const attribute = 'color';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.color.r;\n    buffer.array[target.index * stride + offset + 1] = target.color.g;\n    buffer.array[target.index * stride + offset + 2] = target.color.b;\n    return this;\n  }\n  /**\n   * Updates the point alpha attribute with the particle's target alpha.\n   *\n   * @param {Particle} particle - The particle containing the target alpha.\n   * @return {GPURenderer}\n   */\n\n\n  updatePointAlpha(particle) {\n    const attribute = 'alpha';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    buffer.array[target.index * stride + offset + 0] = target.alpha;\n    return this;\n  }\n  /**\n   * Updates the point texture attribute with the particle's target texture.\n   *\n   * @param {Particle} particle - The particle containing the target texture.\n   * @return {GPURenderer}\n   */\n\n\n  updatePointTextureIndex(particle) {\n    const attribute = 'texID';\n    const {\n      geometry,\n      stride,\n      buffer\n    } = this;\n    const {\n      target\n    } = particle;\n    const {\n      offset\n    } = geometry.attributes[attribute];\n    const id = target.index * stride + offset + 0; // eslint-disable-next-line\n\n    if (false) {\n      buffer.array[id] = target.textureIndex;\n    } else {\n      let ti = target.textureIndex * 4;\n      const ta = this.textureAtlas;\n      const ida = ta.indexData;\n      const nx = ida[ti++];\n      const ny = ida[ti++];\n      const px = ida[ti++];\n      const py = ida[ti++];\n      buffer.array[id] = (nx * ta.atlasTexture.image.width | 0) + px;\n      buffer.array[id + 1] = (ny * ta.atlasTexture.image.height | 0) + py;\n    }\n\n    return this;\n  }\n\n  getTextureID(texture, debug) {\n    if (texture.textureIndex === undefined) {\n      if (!this.textureAtlas) {\n        this.textureAtlas = new TextureAtlas(this, debug);\n      }\n\n      this.textureAtlas.addTexture(texture);\n    }\n\n    return texture.textureIndex;\n  }\n\n  destroy() {\n    const {\n      container,\n      points,\n      textureAtlas,\n      uniqueList\n    } = this;\n    container.remove(points);\n    uniqueList.destroy();\n    textureAtlas && textureAtlas.destroy();\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvaW5kZXguanMiXSwibmFtZXMiOlsiUGFydGljbGVCdWZmZXIiLCJUYXJnZXQiLCJUZXh0dXJlQXRsYXMiLCJVbmlxdWVMaXN0IiwiZnJhZ21lbnRTaGFkZXIiLCJ2ZXJ0ZXhTaGFkZXIiLCJCYXNlUmVuZGVyZXIiLCJERUZBVUxUX1JFTkRFUkVSX09QVElPTlMiLCJQb29sIiwiUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFIiwiVEhSRUUiLCJNb2JpbGVHUFVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwidGhyZWUiLCJvcHRpb25zIiwicHJvcHMiLCJjYW1lcmEiLCJtYXhQYXJ0aWNsZXMiLCJiYXNlQ29sb3IiLCJibGVuZGluZyIsImRlcHRoVGVzdCIsImRlcHRoV3JpdGUiLCJ0cmFuc3BhcmVudCIsInNob3VsZERlYnVnVGV4dHVyZUF0bGFzIiwicGFydGljbGVCdWZmZXIiLCJtYXRlcmlhbCIsIlNoYWRlck1hdGVyaWFsIiwidW5pZm9ybXMiLCJ2YWx1ZSIsIkNvbG9yIiwidVRleHR1cmUiLCJGRmF0bGFzSW5kZXgiLCJhdGxhc0RpbSIsIlZlY3RvcjIiLCJ0YXJnZXRQb29sIiwidW5pcXVlTGlzdCIsImJ1ZmZlciIsInN0cmlkZSIsImdlb21ldHJ5IiwicG9pbnRzIiwiUG9pbnRzIiwiZnJ1c3R1bUN1bGxlZCIsImFkZCIsIm9uU3lzdGVtVXBkYXRlIiwic3lzdGVtIiwibmVlZHNVcGRhdGUiLCJ0ZXh0dXJlQXRsYXMiLCJ1cGRhdGUiLCJzZXQiLCJhdGxhc1RleHR1cmUiLCJpbWFnZSIsIndpZHRoIiwiaGVpZ2h0Iiwib25QYXJ0aWNsZUNyZWF0ZWQiLCJwYXJ0aWNsZSIsInRhcmdldCIsImdldCIsImlkIiwidXBkYXRlVGFyZ2V0IiwibWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiLCJyZXNldCIsInBvc2l0aW9uIiwicm90YXRpb24iLCJzY2FsZSIsInJhZGl1cyIsImNvbG9yIiwiYWxwaGEiLCJib2R5IiwiciIsImciLCJiIiwiY29weSIsInNpemUiLCJzZXRSR0IiLCJpbmRleCIsImZpbmQiLCJTcHJpdGUiLCJtYXAiLCJ0ZXh0dXJlIiwidGV4dHVyZUluZGV4IiwiZ2V0VGV4dHVyZUlEIiwidXBkYXRlUG9pbnRQb3NpdGlvbiIsInVwZGF0ZVBvaW50U2l6ZSIsInVwZGF0ZVBvaW50Um90YXRpb24iLCJ1cGRhdGVQb2ludENvbG9yIiwidXBkYXRlUG9pbnRBbHBoYSIsInVwZGF0ZVBvaW50VGV4dHVyZUluZGV4IiwiYXR0cmlidXRlIiwib2Zmc2V0IiwiYXR0cmlidXRlcyIsImFycmF5IiwieCIsInkiLCJ6IiwidGkiLCJ0YSIsImlkYSIsImluZGV4RGF0YSIsIm54IiwibnkiLCJweCIsInB5IiwiZGVidWciLCJ1bmRlZmluZWQiLCJhZGRUZXh0dXJlIiwiZGVzdHJveSIsInJlbW92ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsY0FBVCxFQUF5QkMsTUFBekIsRUFBaUNDLFlBQWpDLEVBQStDQyxVQUEvQyxRQUFpRSxXQUFqRTtBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLFlBQXpCLFFBQTZDLFdBQTdDO0FBRUEsT0FBT0MsWUFBUCxNQUF5QixvQkFBekI7QUFDQSxTQUFTQyx3QkFBVCxRQUF5QyxxQkFBekM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsYUFBekM7QUFFQSxJQUFJQyxLQUFKO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsaUJBQU4sU0FBZ0NMLFlBQWhDLENBQTZDO0FBQzFETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUUsd0JBQU47QUFFQUMsSUFBQUEsS0FBSyxHQUFHLEtBQUtJLEtBQUwsR0FBYUEsS0FBckI7O0FBQ0EsVUFBTUUsS0FBSyxtQ0FBUVQsd0JBQVIsR0FBcUNRLE9BQXJDLENBQVg7O0FBQ0EsVUFBTTtBQUNKRSxNQUFBQSxNQURJO0FBRUpDLE1BQUFBLFlBRkk7QUFHSkMsTUFBQUEsU0FISTtBQUlKQyxNQUFBQSxRQUpJO0FBS0pDLE1BQUFBLFNBTEk7QUFNSkMsTUFBQUEsVUFOSTtBQU9KQyxNQUFBQSxXQVBJO0FBUUpDLE1BQUFBO0FBUkksUUFTRlIsS0FUSjtBQVVBLFVBQU1TLGNBQWMsR0FBRyxJQUFJekIsY0FBSixDQUFtQmtCLFlBQW5CLEVBQWlDUixLQUFqQyxDQUF2QjtBQUNBLFVBQU1nQixRQUFRLEdBQUcsSUFBSWhCLEtBQUssQ0FBQ2lCLGNBQVYsQ0FBeUI7QUFDeENDLE1BQUFBLFFBQVEsRUFBRTtBQUNSVCxRQUFBQSxTQUFTLEVBQUU7QUFBRVUsVUFBQUEsS0FBSyxFQUFFLElBQUluQixLQUFLLENBQUNvQixLQUFWLENBQWdCWCxTQUFoQjtBQUFULFNBREg7QUFFUlksUUFBQUEsUUFBUSxFQUFFO0FBQUVGLFVBQUFBLEtBQUssRUFBRTtBQUFULFNBRkY7QUFHUkcsUUFBQUEsWUFBWSxFQUFFO0FBQUVILFVBQUFBLEtBQUssRUFBRTtBQUFULFNBSE47QUFJUkksUUFBQUEsUUFBUSxFQUFFO0FBQUVKLFVBQUFBLEtBQUssRUFBRSxJQUFJbkIsS0FBSyxDQUFDd0IsT0FBVjtBQUFUO0FBSkYsT0FEOEI7QUFPeEM3QixNQUFBQSxZQUFZLEVBQUVBLFlBQVksRUFQYztBQVF4Q0QsTUFBQUEsY0FBYyxFQUFFQSxjQUFjLEVBUlU7QUFTeENnQixNQUFBQSxRQUFRLEVBQUVWLEtBQUssQ0FBQ1UsUUFBRCxDQVR5QjtBQVV4Q0MsTUFBQUEsU0FWd0M7QUFXeENDLE1BQUFBLFVBWHdDO0FBWXhDQyxNQUFBQTtBQVp3QyxLQUF6QixDQUFqQjtBQWVBLFNBQUtOLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtrQixVQUFMLEdBQWtCLElBQUkzQixJQUFKLEVBQWxCO0FBQ0EsU0FBSzRCLFVBQUwsR0FBa0IsSUFBSWpDLFVBQUosQ0FBZWUsWUFBZixDQUFsQjtBQUNBLFNBQUtPLGNBQUwsR0FBc0JBLGNBQXRCO0FBQ0EsU0FBS1ksTUFBTCxHQUFjWixjQUFjLENBQUNZLE1BQTdCO0FBQ0EsU0FBS0MsTUFBTCxHQUFjYixjQUFjLENBQUNhLE1BQTdCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQmQsY0FBYyxDQUFDYyxRQUEvQjtBQUNBLFNBQUtiLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS2MsTUFBTCxHQUFjLElBQUk5QixLQUFLLENBQUMrQixNQUFWLENBQWlCLEtBQUtGLFFBQXRCLEVBQWdDLEtBQUtiLFFBQXJDLENBQWQ7QUFDQSxTQUFLYyxNQUFMLENBQVlFLGFBQVosR0FBNEIsS0FBNUI7QUFDQSxTQUFLbEIsdUJBQUwsR0FBK0JBLHVCQUEvQjtBQUVBWCxJQUFBQSxTQUFTLENBQUM4QixHQUFWLENBQWMsS0FBS0gsTUFBbkI7QUFDRDs7QUFFREksRUFBQUEsY0FBYyxDQUFDQyxNQUFELEVBQVM7QUFDckIsVUFBTUQsY0FBTixDQUFxQkMsTUFBckI7QUFFQSxTQUFLUixNQUFMLENBQVlTLFdBQVosR0FBMEIsSUFBMUI7QUFFQSxVQUFNO0FBQUVDLE1BQUFBO0FBQUYsUUFBbUIsSUFBekI7O0FBRUEsUUFBSUEsWUFBSixFQUFrQjtBQUNoQkEsTUFBQUEsWUFBWSxDQUFDQyxNQUFiO0FBQ0EsV0FBS3RCLFFBQUwsQ0FBY0UsUUFBZCxDQUF1QkssUUFBdkIsQ0FBZ0NKLEtBQWhDLENBQXNDb0IsR0FBdEMsQ0FDRUYsWUFBWSxDQUFDRyxZQUFiLENBQTBCQyxLQUExQixDQUFnQ0MsS0FEbEMsRUFFRUwsWUFBWSxDQUFDRyxZQUFiLENBQTBCQyxLQUExQixDQUFnQ0UsTUFGbEM7QUFJRDtBQUNGO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsaUJBQWlCLENBQUNDLFFBQUQsRUFBVztBQUMxQixRQUFJLENBQUNBLFFBQVEsQ0FBQ0MsTUFBZCxFQUFzQjtBQUNwQkQsTUFBQUEsUUFBUSxDQUFDQyxNQUFULEdBQWtCLEtBQUtyQixVQUFMLENBQWdCc0IsR0FBaEIsQ0FBb0J4RCxNQUFwQixFQUE0QlMsS0FBNUIsQ0FBbEI7QUFDQSxXQUFLMEIsVUFBTCxDQUFnQk8sR0FBaEIsQ0FBb0JZLFFBQVEsQ0FBQ0csRUFBN0I7QUFDRDs7QUFFRCxTQUFLQyxZQUFMLENBQWtCSixRQUFsQixFQUE0QkssNkJBQTVCLENBQTBETCxRQUExRDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VNLEVBQUFBLGdCQUFnQixDQUFDTixRQUFELEVBQVc7QUFDekIsUUFBSSxDQUFDQSxRQUFRLENBQUNDLE1BQWQsRUFBc0I7QUFDcEI7QUFDRDs7QUFFRCxTQUFLRyxZQUFMLENBQWtCSixRQUFsQixFQUE0QkssNkJBQTVCLENBQTBETCxRQUExRDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VPLEVBQUFBLGNBQWMsQ0FBQ1AsUUFBRCxFQUFXO0FBQ3ZCLFFBQUksQ0FBQ0EsUUFBUSxDQUFDQyxNQUFkLEVBQXNCO0FBQ3BCO0FBQ0Q7O0FBRURELElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQk8sS0FBaEI7QUFDQSxTQUFLSCw2QkFBTCxDQUFtQ0wsUUFBbkM7QUFFQUEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULEdBQWtCLElBQWxCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxZQUFZLENBQUNKLFFBQUQsRUFBVztBQUNyQixVQUFNO0FBQUVTLE1BQUFBLFFBQUY7QUFBWUMsTUFBQUEsUUFBWjtBQUFzQkMsTUFBQUEsS0FBdEI7QUFBNkJDLE1BQUFBLE1BQTdCO0FBQXFDQyxNQUFBQSxLQUFyQztBQUE0Q0MsTUFBQUEsS0FBNUM7QUFBbURDLE1BQUFBLElBQW5EO0FBQXlEWixNQUFBQTtBQUF6RCxRQUFnRUgsUUFBdEU7QUFDQSxVQUFNO0FBQUVnQixNQUFBQSxDQUFGO0FBQUtDLE1BQUFBLENBQUw7QUFBUUMsTUFBQUE7QUFBUixRQUFjTCxLQUFwQjtBQUVBYixJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBQWhCLENBQXlCVSxJQUF6QixDQUE4QlYsUUFBOUI7QUFDQVQsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCUyxRQUFoQixDQUF5QlMsSUFBekIsQ0FBOEJULFFBQTlCO0FBQ0FWLElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQm1CLElBQWhCLEdBQXVCVCxLQUFLLEdBQUdDLE1BQS9CO0FBQ0FaLElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQlksS0FBaEIsQ0FBc0JRLE1BQXRCLENBQTZCTCxDQUE3QixFQUFnQ0MsQ0FBaEMsRUFBbUNDLENBQW5DO0FBQ0FsQixJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JhLEtBQWhCLEdBQXdCQSxLQUF4QjtBQUNBZCxJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JxQixLQUFoQixHQUF3QixLQUFLekMsVUFBTCxDQUFnQjBDLElBQWhCLENBQXFCcEIsRUFBckIsQ0FBeEI7O0FBRUEsUUFBSVksSUFBSSxJQUFJQSxJQUFJLFlBQVk1RCxLQUFLLENBQUNxRSxNQUFsQyxFQUEwQztBQUN4QyxZQUFNO0FBQUVDLFFBQUFBO0FBQUYsVUFBVVYsSUFBSSxDQUFDNUMsUUFBckI7QUFFQTZCLE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQnlCLE9BQWhCLEdBQTBCRCxHQUExQjtBQUNBekIsTUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCMEIsWUFBaEIsR0FBK0IsS0FBS0MsWUFBTCxDQUM3QkgsR0FENkIsRUFFN0IsS0FBS3hELHVCQUZ3QixDQUEvQjtBQUlEOztBQUVELFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRW9DLEVBQUFBLDZCQUE2QixDQUFDTCxRQUFELEVBQVc7QUFDdEMsU0FBSzZCLG1CQUFMLENBQXlCN0IsUUFBekIsRUFDRzhCLGVBREgsQ0FDbUI5QixRQURuQixFQUVHK0IsbUJBRkgsQ0FFdUIvQixRQUZ2QixFQUdHZ0MsZ0JBSEgsQ0FHb0JoQyxRQUhwQixFQUlHaUMsZ0JBSkgsQ0FJb0JqQyxRQUpwQixFQUtHa0MsdUJBTEgsQ0FLMkJsQyxRQUwzQjtBQU9BLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRTZCLEVBQUFBLG1CQUFtQixDQUFDN0IsUUFBRCxFQUFXO0FBQzVCLFVBQU1tQyxTQUFTLEdBQUcsVUFBbEI7QUFDQSxVQUFNO0FBQUVuRCxNQUFBQSxRQUFGO0FBQVlELE1BQUFBLE1BQVo7QUFBb0JELE1BQUFBO0FBQXBCLFFBQStCLElBQXJDO0FBQ0EsVUFBTTtBQUFFbUIsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYXBELFFBQVEsQ0FBQ3FELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFyRCxJQUFBQSxNQUFNLENBQUN3RCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWV2QyxNQUFmLEdBQXdCcUQsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNRLFFBQVAsQ0FBZ0I4QixDQUFuRTtBQUNBekQsSUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDUSxRQUFQLENBQWdCK0IsQ0FBbkU7QUFDQTFELElBQUFBLE1BQU0sQ0FBQ3dELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZXZDLE1BQWYsR0FBd0JxRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1EsUUFBUCxDQUFnQmdDLENBQW5FO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFWCxFQUFBQSxlQUFlLENBQUM5QixRQUFELEVBQVc7QUFDeEIsVUFBTW1DLFNBQVMsR0FBRyxNQUFsQjtBQUNBLFVBQU07QUFBRW5ELE1BQUFBLFFBQUY7QUFBWUQsTUFBQUEsTUFBWjtBQUFvQkQsTUFBQUE7QUFBcEIsUUFBK0IsSUFBckM7QUFDQSxVQUFNO0FBQUVtQixNQUFBQTtBQUFGLFFBQWFELFFBQW5CO0FBQ0EsVUFBTTtBQUFFb0MsTUFBQUE7QUFBRixRQUFhcEQsUUFBUSxDQUFDcUQsVUFBVCxDQUFvQkYsU0FBcEIsQ0FBbkI7QUFFQXJELElBQUFBLE1BQU0sQ0FBQ3dELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZXZDLE1BQWYsR0FBd0JxRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ21CLElBQTFEO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFVyxFQUFBQSxtQkFBbUIsQ0FBQy9CLFFBQUQsRUFBVztBQUM1QixVQUFNbUMsU0FBUyxHQUFHLFVBQWxCO0FBQ0EsVUFBTTtBQUFFbkQsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRW1CLE1BQUFBO0FBQUYsUUFBYUQsUUFBbkI7QUFDQSxVQUFNO0FBQUVvQyxNQUFBQTtBQUFGLFFBQWFwRCxRQUFRLENBQUNxRCxVQUFULENBQW9CRixTQUFwQixDQUFuQjtBQUVBckQsSUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDUyxRQUFQLENBQWdCK0IsQ0FBbkU7QUFFQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VULEVBQUFBLGdCQUFnQixDQUFDaEMsUUFBRCxFQUFXO0FBQ3pCLFVBQU1tQyxTQUFTLEdBQUcsT0FBbEI7QUFDQSxVQUFNO0FBQUVuRCxNQUFBQSxRQUFGO0FBQVlELE1BQUFBLE1BQVo7QUFBb0JELE1BQUFBO0FBQXBCLFFBQStCLElBQXJDO0FBQ0EsVUFBTTtBQUFFbUIsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYXBELFFBQVEsQ0FBQ3FELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFyRCxJQUFBQSxNQUFNLENBQUN3RCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWV2QyxNQUFmLEdBQXdCcUQsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNZLEtBQVAsQ0FBYUcsQ0FBaEU7QUFDQWxDLElBQUFBLE1BQU0sQ0FBQ3dELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZXZDLE1BQWYsR0FBd0JxRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1ksS0FBUCxDQUFhSSxDQUFoRTtBQUNBbkMsSUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDWSxLQUFQLENBQWFLLENBQWhFO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFZSxFQUFBQSxnQkFBZ0IsQ0FBQ2pDLFFBQUQsRUFBVztBQUN6QixVQUFNbUMsU0FBUyxHQUFHLE9BQWxCO0FBQ0EsVUFBTTtBQUFFbkQsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRW1CLE1BQUFBO0FBQUYsUUFBYUQsUUFBbkI7QUFDQSxVQUFNO0FBQUVvQyxNQUFBQTtBQUFGLFFBQWFwRCxRQUFRLENBQUNxRCxVQUFULENBQW9CRixTQUFwQixDQUFuQjtBQUVBckQsSUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDYSxLQUExRDtBQUVBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRW9CLEVBQUFBLHVCQUF1QixDQUFDbEMsUUFBRCxFQUFXO0FBQ2hDLFVBQU1tQyxTQUFTLEdBQUcsT0FBbEI7QUFDQSxVQUFNO0FBQUVuRCxNQUFBQSxRQUFGO0FBQVlELE1BQUFBLE1BQVo7QUFBb0JELE1BQUFBO0FBQXBCLFFBQStCLElBQXJDO0FBQ0EsVUFBTTtBQUFFbUIsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYXBELFFBQVEsQ0FBQ3FELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBQ0EsVUFBTWhDLEVBQUUsR0FBR0YsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTVDLENBTGdDLENBT2hDOztBQUNBLFFBQUksS0FBSixFQUFXO0FBQ1R0RCxNQUFBQSxNQUFNLENBQUN3RCxLQUFQLENBQWFuQyxFQUFiLElBQW1CRixNQUFNLENBQUMwQixZQUExQjtBQUNELEtBRkQsTUFFTztBQUNMLFVBQUllLEVBQUUsR0FBR3pDLE1BQU0sQ0FBQzBCLFlBQVAsR0FBc0IsQ0FBL0I7QUFDQSxZQUFNZ0IsRUFBRSxHQUFHLEtBQUtuRCxZQUFoQjtBQUNBLFlBQU1vRCxHQUFHLEdBQUdELEVBQUUsQ0FBQ0UsU0FBZjtBQUNBLFlBQU1DLEVBQUUsR0FBR0YsR0FBRyxDQUFDRixFQUFFLEVBQUgsQ0FBZDtBQUNBLFlBQU1LLEVBQUUsR0FBR0gsR0FBRyxDQUFDRixFQUFFLEVBQUgsQ0FBZDtBQUNBLFlBQU1NLEVBQUUsR0FBR0osR0FBRyxDQUFDRixFQUFFLEVBQUgsQ0FBZDtBQUNBLFlBQU1PLEVBQUUsR0FBR0wsR0FBRyxDQUFDRixFQUFFLEVBQUgsQ0FBZDtBQUVBNUQsTUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhbkMsRUFBYixJQUFtQixDQUFFMkMsRUFBRSxHQUFHSCxFQUFFLENBQUNoRCxZQUFILENBQWdCQyxLQUFoQixDQUFzQkMsS0FBNUIsR0FBcUMsQ0FBdEMsSUFBMkNtRCxFQUE5RDtBQUNBbEUsTUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhbkMsRUFBRSxHQUFHLENBQWxCLElBQXVCLENBQUU0QyxFQUFFLEdBQUdKLEVBQUUsQ0FBQ2hELFlBQUgsQ0FBZ0JDLEtBQWhCLENBQXNCRSxNQUE1QixHQUFzQyxDQUF2QyxJQUE0Q21ELEVBQW5FO0FBQ0Q7O0FBRUQsV0FBTyxJQUFQO0FBQ0Q7O0FBRURyQixFQUFBQSxZQUFZLENBQUNGLE9BQUQsRUFBVXdCLEtBQVYsRUFBaUI7QUFDM0IsUUFBSXhCLE9BQU8sQ0FBQ0MsWUFBUixLQUF5QndCLFNBQTdCLEVBQXdDO0FBQ3RDLFVBQUksQ0FBQyxLQUFLM0QsWUFBVixFQUF3QjtBQUN0QixhQUFLQSxZQUFMLEdBQW9CLElBQUk3QyxZQUFKLENBQWlCLElBQWpCLEVBQXVCdUcsS0FBdkIsQ0FBcEI7QUFDRDs7QUFFRCxXQUFLMUQsWUFBTCxDQUFrQjRELFVBQWxCLENBQTZCMUIsT0FBN0I7QUFDRDs7QUFFRCxXQUFPQSxPQUFPLENBQUNDLFlBQWY7QUFDRDs7QUFFRDBCLEVBQUFBLE9BQU8sR0FBRztBQUNSLFVBQU07QUFBRS9GLE1BQUFBLFNBQUY7QUFBYTJCLE1BQUFBLE1BQWI7QUFBcUJPLE1BQUFBLFlBQXJCO0FBQW1DWCxNQUFBQTtBQUFuQyxRQUFrRCxJQUF4RDtBQUVBdkIsSUFBQUEsU0FBUyxDQUFDZ0csTUFBVixDQUFpQnJFLE1BQWpCO0FBQ0FKLElBQUFBLFVBQVUsQ0FBQ3dFLE9BQVg7QUFDQTdELElBQUFBLFlBQVksSUFBSUEsWUFBWSxDQUFDNkQsT0FBYixFQUFoQjtBQUNEOztBQXJTeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJ0aWNsZUJ1ZmZlciwgVGFyZ2V0LCBUZXh0dXJlQXRsYXMsIFVuaXF1ZUxpc3QgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgZnJhZ21lbnRTaGFkZXIsIHZlcnRleFNoYWRlciB9IGZyb20gJy4vc2hhZGVycyc7XG5cbmltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi4vLi4vQmFzZVJlbmRlcmVyJztcbmltcG9ydCB7IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUyB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5sZXQgVEhSRUU7XG5cbi8qKlxuICogR1BVUmVuZGVyZXIgZm9yIG1vYmlsZSBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgZmxvYXRpbmcgcG9pbnQgdGV4dHVyZXMuXG4gKlxuICogQGF1dGhvciB0aHJheCA8bWFudGhyYXhAZ21haWwuY29tPlxuICogQGF1dGhvciByb2hhbi1kZXNocGFuZGUgPHJvaGFuQGNyZWF0aXZlbGlmZWZvcm0uY29tPlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2JpbGVHUFVSZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lciwgdGhyZWUsIG9wdGlvbnMgPSBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMpIHtcbiAgICBzdXBlcihSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUpO1xuXG4gICAgVEhSRUUgPSB0aGlzLnRocmVlID0gdGhyZWU7XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLkRFRkFVTFRfUkVOREVSRVJfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuICAgIGNvbnN0IHtcbiAgICAgIGNhbWVyYSxcbiAgICAgIG1heFBhcnRpY2xlcyxcbiAgICAgIGJhc2VDb2xvcixcbiAgICAgIGJsZW5kaW5nLFxuICAgICAgZGVwdGhUZXN0LFxuICAgICAgZGVwdGhXcml0ZSxcbiAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgc2hvdWxkRGVidWdUZXh0dXJlQXRsYXMsXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBhcnRpY2xlQnVmZmVyID0gbmV3IFBhcnRpY2xlQnVmZmVyKG1heFBhcnRpY2xlcywgVEhSRUUpO1xuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcbiAgICAgIHVuaWZvcm1zOiB7XG4gICAgICAgIGJhc2VDb2xvcjogeyB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGJhc2VDb2xvcikgfSxcbiAgICAgICAgdVRleHR1cmU6IHsgdmFsdWU6IG51bGwgfSxcbiAgICAgICAgRkZhdGxhc0luZGV4OiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgIGF0bGFzRGltOiB7IHZhbHVlOiBuZXcgVEhSRUUuVmVjdG9yMigpIH0sXG4gICAgICB9LFxuICAgICAgdmVydGV4U2hhZGVyOiB2ZXJ0ZXhTaGFkZXIoKSxcbiAgICAgIGZyYWdtZW50U2hhZGVyOiBmcmFnbWVudFNoYWRlcigpLFxuICAgICAgYmxlbmRpbmc6IFRIUkVFW2JsZW5kaW5nXSxcbiAgICAgIGRlcHRoVGVzdCxcbiAgICAgIGRlcHRoV3JpdGUsXG4gICAgICB0cmFuc3BhcmVudCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2FtZXJhID0gY2FtZXJhO1xuICAgIHRoaXMudGFyZ2V0UG9vbCA9IG5ldyBQb29sKCk7XG4gICAgdGhpcy51bmlxdWVMaXN0ID0gbmV3IFVuaXF1ZUxpc3QobWF4UGFydGljbGVzKTtcbiAgICB0aGlzLnBhcnRpY2xlQnVmZmVyID0gcGFydGljbGVCdWZmZXI7XG4gICAgdGhpcy5idWZmZXIgPSBwYXJ0aWNsZUJ1ZmZlci5idWZmZXI7XG4gICAgdGhpcy5zdHJpZGUgPSBwYXJ0aWNsZUJ1ZmZlci5zdHJpZGU7XG4gICAgdGhpcy5nZW9tZXRyeSA9IHBhcnRpY2xlQnVmZmVyLmdlb21ldHJ5O1xuICAgIHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICB0aGlzLnBvaW50cyA9IG5ldyBUSFJFRS5Qb2ludHModGhpcy5nZW9tZXRyeSwgdGhpcy5tYXRlcmlhbCk7XG4gICAgdGhpcy5wb2ludHMuZnJ1c3R1bUN1bGxlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvdWxkRGVidWdUZXh0dXJlQXRsYXMgPSBzaG91bGREZWJ1Z1RleHR1cmVBdGxhcztcblxuICAgIGNvbnRhaW5lci5hZGQodGhpcy5wb2ludHMpO1xuICB9XG5cbiAgb25TeXN0ZW1VcGRhdGUoc3lzdGVtKSB7XG4gICAgc3VwZXIub25TeXN0ZW1VcGRhdGUoc3lzdGVtKTtcblxuICAgIHRoaXMuYnVmZmVyLm5lZWRzVXBkYXRlID0gdHJ1ZTtcblxuICAgIGNvbnN0IHsgdGV4dHVyZUF0bGFzIH0gPSB0aGlzO1xuXG4gICAgaWYgKHRleHR1cmVBdGxhcykge1xuICAgICAgdGV4dHVyZUF0bGFzLnVwZGF0ZSgpO1xuICAgICAgdGhpcy5tYXRlcmlhbC51bmlmb3Jtcy5hdGxhc0RpbS52YWx1ZS5zZXQoXG4gICAgICAgIHRleHR1cmVBdGxhcy5hdGxhc1RleHR1cmUuaW1hZ2Uud2lkdGgsXG4gICAgICAgIHRleHR1cmVBdGxhcy5hdGxhc1RleHR1cmUuaW1hZ2UuaGVpZ2h0XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQb29scyB0aGUgcGFydGljbGUgdGFyZ2V0IGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgKiBVcGRhdGVzIHRoZSB0YXJnZXQgYW5kIG1hcHMgcGFydGljbGUgcHJvcGVydGllcyB0byB0aGUgcG9pbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQgPSB0aGlzLnRhcmdldFBvb2wuZ2V0KFRhcmdldCwgVEhSRUUpO1xuICAgICAgdGhpcy51bmlxdWVMaXN0LmFkZChwYXJ0aWNsZS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVUYXJnZXQocGFydGljbGUpLm1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gdGhlIHBvaW50IGlmIHRoZSBwYXJ0aWNsZSBoYXMgYSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7XG4gICAgaWYgKCFwYXJ0aWNsZS50YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVRhcmdldChwYXJ0aWNsZSkubWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyBhbmQgY2xlYXJzIHRoZSBwYXJ0aWNsZSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlRGVhZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFydGljbGUudGFyZ2V0LnJlc2V0KCk7XG4gICAgdGhpcy5tYXBQYXJ0aWNsZVRhcmdldFByb3BzVG9Qb2ludChwYXJ0aWNsZSk7XG5cbiAgICBwYXJ0aWNsZS50YXJnZXQgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYWxsIG11dGFibGUgcHJvcGVydGllcyBmcm9tIHRoZSBwYXJ0aWNsZSB0byB0aGUgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfVxuICAgKiBAcmV0dXJuIHtHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVRhcmdldChwYXJ0aWNsZSkge1xuICAgIGNvbnN0IHsgcG9zaXRpb24sIHJvdGF0aW9uLCBzY2FsZSwgcmFkaXVzLCBjb2xvciwgYWxwaGEsIGJvZHksIGlkIH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IHIsIGcsIGIgfSA9IGNvbG9yO1xuXG4gICAgcGFydGljbGUudGFyZ2V0LnBvc2l0aW9uLmNvcHkocG9zaXRpb24pO1xuICAgIHBhcnRpY2xlLnRhcmdldC5yb3RhdGlvbi5jb3B5KHJvdGF0aW9uKTtcbiAgICBwYXJ0aWNsZS50YXJnZXQuc2l6ZSA9IHNjYWxlICogcmFkaXVzO1xuICAgIHBhcnRpY2xlLnRhcmdldC5jb2xvci5zZXRSR0IociwgZywgYik7XG4gICAgcGFydGljbGUudGFyZ2V0LmFscGhhID0gYWxwaGE7XG4gICAgcGFydGljbGUudGFyZ2V0LmluZGV4ID0gdGhpcy51bmlxdWVMaXN0LmZpbmQoaWQpO1xuXG4gICAgaWYgKGJvZHkgJiYgYm9keSBpbnN0YW5jZW9mIFRIUkVFLlNwcml0ZSkge1xuICAgICAgY29uc3QgeyBtYXAgfSA9IGJvZHkubWF0ZXJpYWw7XG5cbiAgICAgIHBhcnRpY2xlLnRhcmdldC50ZXh0dXJlID0gbWFwO1xuICAgICAgcGFydGljbGUudGFyZ2V0LnRleHR1cmVJbmRleCA9IHRoaXMuZ2V0VGV4dHVyZUlEKFxuICAgICAgICBtYXAsXG4gICAgICAgIHRoaXMuc2hvdWxkRGVidWdUZXh0dXJlQXRsYXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRW50cnkgcG9pbnQgZm9yIG1hcHBpbmcgcGFydGljbGUgcHJvcGVydGllcyB0byBidWZmZXIgZ2VvbWV0cnkgcG9pbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIHRvIG1hcFxuICAgKiBAcmV0dXJuIHtHUFVSZW5kZXJlcn1cbiAgICovXG4gIG1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKSB7XG4gICAgdGhpcy51cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50U2l6ZShwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludFJvdGF0aW9uKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50Q29sb3IocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRBbHBoYShwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludFRleHR1cmVJbmRleChwYXJ0aWNsZSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCdzIHBvc2l0aW9uIGFjY29yZGluZyB0byB0aGUgcGFydGljbGUncyB0YXJnZXQgcG9zaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIGNvbnRhaW5pbmcgdGhlIHRhcmdldCBwb3NpdGlvbi5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3Bvc2l0aW9uJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5wb3NpdGlvbi54O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5wb3NpdGlvbi55O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5wb3NpdGlvbi56O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyBzaXplIHJlbGF0aXZlIHRvIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBzY2FsZSBhbmQgcmFkaXVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgc2NhbGUuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRTaXplKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3NpemUnO1xuICAgIGNvbnN0IHsgZ2VvbWV0cnksIHN0cmlkZSwgYnVmZmVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuXG4gICAgYnVmZmVyLmFycmF5W3RhcmdldC5pbmRleCAqIHN0cmlkZSArIG9mZnNldCArIDBdID0gdGFyZ2V0LnNpemU7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCdzIHJvdGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgcm90YXRpb24uXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRSb3RhdGlvbihwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdyb3RhdGlvbic7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG5cbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMF0gPSB0YXJnZXQucm90YXRpb24uejtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvaW50J3MgY29sb3IgYXR0cmlidXRlIGFjY29yZGluZyB3aXRoIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBjb2xvci5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IGNvbG9yIGFuZCBhbHBoYS5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludENvbG9yKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ2NvbG9yJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5jb2xvci5yO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5jb2xvci5nO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5jb2xvci5iO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQgYWxwaGEgYXR0cmlidXRlIHdpdGggdGhlIHBhcnRpY2xlJ3MgdGFyZ2V0IGFscGhhLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgYWxwaGEuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRBbHBoYShwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdhbHBoYSc7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG5cbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMF0gPSB0YXJnZXQuYWxwaGE7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCB0ZXh0dXJlIGF0dHJpYnV0ZSB3aXRoIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCB0ZXh0dXJlLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgdGV4dHVyZS5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFRleHR1cmVJbmRleChwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICd0ZXhJRCc7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gICAgY29uc3QgaWQgPSB0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICBidWZmZXIuYXJyYXlbaWRdID0gdGFyZ2V0LnRleHR1cmVJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRpID0gdGFyZ2V0LnRleHR1cmVJbmRleCAqIDQ7XG4gICAgICBjb25zdCB0YSA9IHRoaXMudGV4dHVyZUF0bGFzO1xuICAgICAgY29uc3QgaWRhID0gdGEuaW5kZXhEYXRhO1xuICAgICAgY29uc3QgbnggPSBpZGFbdGkrK107XG4gICAgICBjb25zdCBueSA9IGlkYVt0aSsrXTtcbiAgICAgIGNvbnN0IHB4ID0gaWRhW3RpKytdO1xuICAgICAgY29uc3QgcHkgPSBpZGFbdGkrK107XG5cbiAgICAgIGJ1ZmZlci5hcnJheVtpZF0gPSAoKG54ICogdGEuYXRsYXNUZXh0dXJlLmltYWdlLndpZHRoKSB8IDApICsgcHg7XG4gICAgICBidWZmZXIuYXJyYXlbaWQgKyAxXSA9ICgobnkgKiB0YS5hdGxhc1RleHR1cmUuaW1hZ2UuaGVpZ2h0KSB8IDApICsgcHk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRUZXh0dXJlSUQodGV4dHVyZSwgZGVidWcpIHtcbiAgICBpZiAodGV4dHVyZS50ZXh0dXJlSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCF0aGlzLnRleHR1cmVBdGxhcykge1xuICAgICAgICB0aGlzLnRleHR1cmVBdGxhcyA9IG5ldyBUZXh0dXJlQXRsYXModGhpcywgZGVidWcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRleHR1cmVBdGxhcy5hZGRUZXh0dXJlKHRleHR1cmUpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXh0dXJlLnRleHR1cmVJbmRleDtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIHBvaW50cywgdGV4dHVyZUF0bGFzLCB1bmlxdWVMaXN0IH0gPSB0aGlzO1xuXG4gICAgY29udGFpbmVyLnJlbW92ZShwb2ludHMpO1xuICAgIHVuaXF1ZUxpc3QuZGVzdHJveSgpO1xuICAgIHRleHR1cmVBdGxhcyAmJiB0ZXh0dXJlQXRsYXMuZGVzdHJveSgpO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Mobile/shaders/fragmentShader.js",
    "content": "export const fragmentShader = () => {\n  return `\n    uniform vec3 baseColor;\n    uniform sampler2D uTexture;\n\n    varying float vRotation;\n    varying vec3 targetColor;\n    varying float targetAlpha;\n    varying vec4 tileRect;\n\n    void main() {\n      gl_FragColor = vec4(baseColor * targetColor, targetAlpha);\n\n      vec2 uv = gl_PointCoord;\n      uv = mix(tileRect.xy, tileRect.zw, gl_PointCoord);\n\n      float mid = 0.5;\n      uv = vec2(\n        cos(vRotation) * (uv.x - mid) - sin(vRotation) * (uv.y - mid) + mid,\n        cos(vRotation) * (uv.y - mid) + sin(vRotation) * (uv.x - mid) + mid\n      );\n      \n      gl_FragColor = gl_FragColor * texture2D(uTexture, uv);\n    }\n`;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvc2hhZGVycy9mcmFnbWVudFNoYWRlci5qcyJdLCJuYW1lcyI6WyJmcmFnbWVudFNoYWRlciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxjQUFjLEdBQUcsTUFBTTtBQUNsQyxTQUFRO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQXZCRTtBQXdCRCxDQXpCTSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmcmFnbWVudFNoYWRlciA9ICgpID0+IHtcbiAgcmV0dXJuIGBcbiAgICB1bmlmb3JtIHZlYzMgYmFzZUNvbG9yO1xuICAgIHVuaWZvcm0gc2FtcGxlcjJEIHVUZXh0dXJlO1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChiYXNlQ29sb3IgKiB0YXJnZXRDb2xvciwgdGFyZ2V0QWxwaGEpO1xuXG4gICAgICB2ZWMyIHV2ID0gZ2xfUG9pbnRDb29yZDtcbiAgICAgIHV2ID0gbWl4KHRpbGVSZWN0Lnh5LCB0aWxlUmVjdC56dywgZ2xfUG9pbnRDb29yZCk7XG5cbiAgICAgIGZsb2F0IG1pZCA9IDAuNTtcbiAgICAgIHV2ID0gdmVjMihcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueCAtIG1pZCkgLSBzaW4odlJvdGF0aW9uKSAqICh1di55IC0gbWlkKSArIG1pZCxcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueSAtIG1pZCkgKyBzaW4odlJvdGF0aW9uKSAqICh1di54IC0gbWlkKSArIG1pZFxuICAgICAgKTtcbiAgICAgIFxuICAgICAgZ2xfRnJhZ0NvbG9yID0gZ2xfRnJhZ0NvbG9yICogdGV4dHVyZTJEKHVUZXh0dXJlLCB1dik7XG4gICAgfVxuYDtcbn07XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Mobile/shaders/index.js",
    "content": "export { fragmentShader } from './fragmentShader';\nexport { vertexShader } from './vertexShader';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvc2hhZGVycy9pbmRleC5qcyJdLCJuYW1lcyI6WyJmcmFnbWVudFNoYWRlciIsInZlcnRleFNoYWRlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBVCxRQUErQixrQkFBL0I7QUFDQSxTQUFTQyxZQUFULFFBQTZCLGdCQUE3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGZyYWdtZW50U2hhZGVyIH0gZnJvbSAnLi9mcmFnbWVudFNoYWRlcic7XG5leHBvcnQgeyB2ZXJ0ZXhTaGFkZXIgfSBmcm9tICcuL3ZlcnRleFNoYWRlcic7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Mobile/shaders/vertexShader.js",
    "content": "import { SIZE_ATTENUATION_FACTOR } from '../../common/shaders/constants';\nexport const vertexShader = () => {\n  return `\n    uniform sampler2D uTexture;\n    uniform vec2 atlasDim;\n\n    attribute float size;\n    attribute vec3 color;\n    attribute float alpha;\n    attribute vec2 texID;\n    attribute float rotation;\n\n    varying float vRotation;\n    varying vec3 targetColor;\n    varying float targetAlpha;\n    varying vec4 tileRect;\n\n    void main() {\n      vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n      targetColor = color;\n      targetAlpha = alpha;\n      vRotation = rotation;\n\n      vec2 tmin = floor(texID) / atlasDim;\n      vec2 tmax = fract(texID);\n      tileRect = vec4(tmin,tmax);\n\n      gl_PointSize = ((size * ${SIZE_ATTENUATION_FACTOR}) / -mvPosition.z);\n      gl_Position = projectionMatrix * mvPosition;\n    }\n`;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvc2hhZGVycy92ZXJ0ZXhTaGFkZXIuanMiXSwibmFtZXMiOlsiU0laRV9BVFRFTlVBVElPTl9GQUNUT1IiLCJ2ZXJ0ZXhTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHVCQUFULFFBQXdDLGdDQUF4QztBQUVBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLE1BQU07QUFDaEMsU0FBUTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQ0QsdUJBQXdCO0FBQ3hEO0FBQ0E7QUFDQSxDQTVCRTtBQTZCRCxDQTlCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNJWkVfQVRURU5VQVRJT05fRkFDVE9SIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NoYWRlcnMvY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHZlcnRleFNoYWRlciA9ICgpID0+IHtcbiAgcmV0dXJuIGBcbiAgICB1bmlmb3JtIHNhbXBsZXIyRCB1VGV4dHVyZTtcbiAgICB1bmlmb3JtIHZlYzIgYXRsYXNEaW07XG5cbiAgICBhdHRyaWJ1dGUgZmxvYXQgc2l6ZTtcbiAgICBhdHRyaWJ1dGUgdmVjMyBjb2xvcjtcbiAgICBhdHRyaWJ1dGUgZmxvYXQgYWxwaGE7XG4gICAgYXR0cmlidXRlIHZlYzIgdGV4SUQ7XG4gICAgYXR0cmlidXRlIGZsb2F0IHJvdGF0aW9uO1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgdmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICAgIHRhcmdldENvbG9yID0gY29sb3I7XG4gICAgICB0YXJnZXRBbHBoYSA9IGFscGhhO1xuICAgICAgdlJvdGF0aW9uID0gcm90YXRpb247XG5cbiAgICAgIHZlYzIgdG1pbiA9IGZsb29yKHRleElEKSAvIGF0bGFzRGltO1xuICAgICAgdmVjMiB0bWF4ID0gZnJhY3QodGV4SUQpO1xuICAgICAgdGlsZVJlY3QgPSB2ZWM0KHRtaW4sdG1heCk7XG5cbiAgICAgIGdsX1BvaW50U2l6ZSA9ICgoc2l6ZSAqICR7U0laRV9BVFRFTlVBVElPTl9GQUNUT1J9KSAvIC1tdlBvc2l0aW9uLnopO1xuICAgICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcbiAgICB9XG5gO1xufTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/ParticleBuffer/constants.js",
    "content": "// Primitives\nexport const DEFAULT_MAX_PARTICLES = 10000;\nexport const VECTOR_3_SIZE = ['x', 'y', 'z'].length;\nexport const RGBA_SIZE = ['r', 'g', 'b', 'a'].length;\nexport const FLOAT_BYTE_SIZE = 4; // Byte sizes\n\nexport const POSITION_BYTE_SIZE = VECTOR_3_SIZE * FLOAT_BYTE_SIZE;\nexport const ROTATION_BYTE_SIZE = FLOAT_BYTE_SIZE;\nexport const SIZE_BYTE_SIZE = FLOAT_BYTE_SIZE;\nexport const RGBA_BYTE_SIZE = RGBA_SIZE * FLOAT_BYTE_SIZE;\nexport const ALL_BYTE_SIZES = [POSITION_BYTE_SIZE, ROTATION_BYTE_SIZE, SIZE_BYTE_SIZE, RGBA_BYTE_SIZE];\nexport const PARTICLE_BYTE_SIZE = ALL_BYTE_SIZES.reduce((cur, acc) => cur + acc); // Attributes\n\nexport const POSITION_ATTRIBUTE_BUFFER_SIZE = VECTOR_3_SIZE;\nexport const ROTATION_ATTRIBUTE_BUFFER_SIZE = 1;\nexport const SIZE_ATTRIBUTE_BUFFER_SIZE = 1;\nexport const RGBA_ATTRIBUTE_BUFFER_SIZE = RGBA_SIZE;\nexport const ALPHA_ATTRIBUTE_BUFFER_SIZE = 1;\nexport const TEXID_ATTRIBUTE_BUFFER_SIZE = 2;\nexport const ATTRIBUTE_TO_SIZE_MAP = {\n  position: POSITION_ATTRIBUTE_BUFFER_SIZE,\n  rotation: ROTATION_ATTRIBUTE_BUFFER_SIZE,\n  size: SIZE_ATTRIBUTE_BUFFER_SIZE,\n  // THREE.Color does not contain alpha, so we will have separate attributes for these\n  color: RGBA_ATTRIBUTE_BUFFER_SIZE,\n  alpha: ALPHA_ATTRIBUTE_BUFFER_SIZE,\n  texID: TEXID_ATTRIBUTE_BUFFER_SIZE\n};\nexport const PARTICLE_STRIDE = [POSITION_ATTRIBUTE_BUFFER_SIZE, ROTATION_ATTRIBUTE_BUFFER_SIZE, SIZE_ATTRIBUTE_BUFFER_SIZE, RGBA_ATTRIBUTE_BUFFER_SIZE, ALPHA_ATTRIBUTE_BUFFER_SIZE, TEXID_ATTRIBUTE_BUFFER_SIZE].reduce((cur, acc) => cur + acc);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vUGFydGljbGVCdWZmZXIvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYX1BBUlRJQ0xFUyIsIlZFQ1RPUl8zX1NJWkUiLCJsZW5ndGgiLCJSR0JBX1NJWkUiLCJGTE9BVF9CWVRFX1NJWkUiLCJQT1NJVElPTl9CWVRFX1NJWkUiLCJST1RBVElPTl9CWVRFX1NJWkUiLCJTSVpFX0JZVEVfU0laRSIsIlJHQkFfQllURV9TSVpFIiwiQUxMX0JZVEVfU0laRVMiLCJQQVJUSUNMRV9CWVRFX1NJWkUiLCJyZWR1Y2UiLCJjdXIiLCJhY2MiLCJQT1NJVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUiLCJST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUiLCJTSVpFX0FUVFJJQlVURV9CVUZGRVJfU0laRSIsIlJHQkFfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiVEVYSURfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiQVRUUklCVVRFX1RPX1NJWkVfTUFQIiwicG9zaXRpb24iLCJyb3RhdGlvbiIsInNpemUiLCJjb2xvciIsImFscGhhIiwidGV4SUQiLCJQQVJUSUNMRV9TVFJJREUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBTyxNQUFNQSxxQkFBcUIsR0FBRyxLQUE5QjtBQUNQLE9BQU8sTUFBTUMsYUFBYSxHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCQyxNQUF0QztBQUNQLE9BQU8sTUFBTUMsU0FBUyxHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCRCxNQUF2QztBQUNQLE9BQU8sTUFBTUUsZUFBZSxHQUFHLENBQXhCLEMsQ0FFUDs7QUFDQSxPQUFPLE1BQU1DLGtCQUFrQixHQUFHSixhQUFhLEdBQUdHLGVBQTNDO0FBQ1AsT0FBTyxNQUFNRSxrQkFBa0IsR0FBR0YsZUFBM0I7QUFDUCxPQUFPLE1BQU1HLGNBQWMsR0FBR0gsZUFBdkI7QUFDUCxPQUFPLE1BQU1JLGNBQWMsR0FBR0wsU0FBUyxHQUFHQyxlQUFuQztBQUNQLE9BQU8sTUFBTUssY0FBYyxHQUFHLENBQzVCSixrQkFENEIsRUFFNUJDLGtCQUY0QixFQUc1QkMsY0FINEIsRUFJNUJDLGNBSjRCLENBQXZCO0FBTVAsT0FBTyxNQUFNRSxrQkFBa0IsR0FBR0QsY0FBYyxDQUFDRSxNQUFmLENBQ2hDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjRCxHQUFHLEdBQUdDLEdBRFksQ0FBM0IsQyxDQUlQOztBQUNBLE9BQU8sTUFBTUMsOEJBQThCLEdBQUdiLGFBQXZDO0FBQ1AsT0FBTyxNQUFNYyw4QkFBOEIsR0FBRyxDQUF2QztBQUNQLE9BQU8sTUFBTUMsMEJBQTBCLEdBQUcsQ0FBbkM7QUFDUCxPQUFPLE1BQU1DLDBCQUEwQixHQUFHZCxTQUFuQztBQUNQLE9BQU8sTUFBTWUsMkJBQTJCLEdBQUcsQ0FBcEM7QUFDUCxPQUFPLE1BQU1DLDJCQUEyQixHQUFHLENBQXBDO0FBRVAsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRztBQUNuQ0MsRUFBQUEsUUFBUSxFQUFFUCw4QkFEeUI7QUFFbkNRLEVBQUFBLFFBQVEsRUFBRVAsOEJBRnlCO0FBR25DUSxFQUFBQSxJQUFJLEVBQUVQLDBCQUg2QjtBQUluQztBQUNBUSxFQUFBQSxLQUFLLEVBQUVQLDBCQUw0QjtBQU1uQ1EsRUFBQUEsS0FBSyxFQUFFUCwyQkFONEI7QUFPbkNRLEVBQUFBLEtBQUssRUFBRVA7QUFQNEIsQ0FBOUI7QUFVUCxPQUFPLE1BQU1RLGVBQWUsR0FBRyxDQUM3QmIsOEJBRDZCLEVBRTdCQyw4QkFGNkIsRUFHN0JDLDBCQUg2QixFQUk3QkMsMEJBSjZCLEVBSzdCQywyQkFMNkIsRUFNN0JDLDJCQU42QixFQU83QlIsTUFQNkIsQ0FPdEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWNELEdBQUcsR0FBR0MsR0FQRSxDQUF4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFByaW1pdGl2ZXNcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9QQVJUSUNMRVMgPSAxMDAwMDtcbmV4cG9ydCBjb25zdCBWRUNUT1JfM19TSVpFID0gWyd4JywgJ3knLCAneiddLmxlbmd0aDtcbmV4cG9ydCBjb25zdCBSR0JBX1NJWkUgPSBbJ3InLCAnZycsICdiJywgJ2EnXS5sZW5ndGg7XG5leHBvcnQgY29uc3QgRkxPQVRfQllURV9TSVpFID0gNDtcblxuLy8gQnl0ZSBzaXplc1xuZXhwb3J0IGNvbnN0IFBPU0lUSU9OX0JZVEVfU0laRSA9IFZFQ1RPUl8zX1NJWkUgKiBGTE9BVF9CWVRFX1NJWkU7XG5leHBvcnQgY29uc3QgUk9UQVRJT05fQllURV9TSVpFID0gRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IFNJWkVfQllURV9TSVpFID0gRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IFJHQkFfQllURV9TSVpFID0gUkdCQV9TSVpFICogRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IEFMTF9CWVRFX1NJWkVTID0gW1xuICBQT1NJVElPTl9CWVRFX1NJWkUsXG4gIFJPVEFUSU9OX0JZVEVfU0laRSxcbiAgU0laRV9CWVRFX1NJWkUsXG4gIFJHQkFfQllURV9TSVpFLFxuXTtcbmV4cG9ydCBjb25zdCBQQVJUSUNMRV9CWVRFX1NJWkUgPSBBTExfQllURV9TSVpFUy5yZWR1Y2UoXG4gIChjdXIsIGFjYykgPT4gY3VyICsgYWNjXG4pO1xuXG4vLyBBdHRyaWJ1dGVzXG5leHBvcnQgY29uc3QgUE9TSVRJT05fQVRUUklCVVRFX0JVRkZFUl9TSVpFID0gVkVDVE9SXzNfU0laRTtcbmV4cG9ydCBjb25zdCBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUgPSAxO1xuZXhwb3J0IGNvbnN0IFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFID0gMTtcbmV4cG9ydCBjb25zdCBSR0JBX0FUVFJJQlVURV9CVUZGRVJfU0laRSA9IFJHQkFfU0laRTtcbmV4cG9ydCBjb25zdCBBTFBIQV9BVFRSSUJVVEVfQlVGRkVSX1NJWkUgPSAxO1xuZXhwb3J0IGNvbnN0IFRFWElEX0FUVFJJQlVURV9CVUZGRVJfU0laRSA9IDI7XG5cbmV4cG9ydCBjb25zdCBBVFRSSUJVVEVfVE9fU0laRV9NQVAgPSB7XG4gIHBvc2l0aW9uOiBQT1NJVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIHJvdGF0aW9uOiBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIHNpemU6IFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICAvLyBUSFJFRS5Db2xvciBkb2VzIG5vdCBjb250YWluIGFscGhhLCBzbyB3ZSB3aWxsIGhhdmUgc2VwYXJhdGUgYXR0cmlidXRlcyBmb3IgdGhlc2VcbiAgY29sb3I6IFJHQkFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBhbHBoYTogQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICB0ZXhJRDogVEVYSURfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxufTtcblxuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX1NUUklERSA9IFtcbiAgUE9TSVRJT05fQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBSR0JBX0FUVFJJQlVURV9CVUZGRVJfU0laRSxcbiAgQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBURVhJRF9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG5dLnJlZHVjZSgoY3VyLCBhY2MpID0+IGN1ciArIGFjYyk7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/ParticleBuffer/index.js",
    "content": "import { ATTRIBUTE_TO_SIZE_MAP, DEFAULT_MAX_PARTICLES, PARTICLE_BYTE_SIZE } from './constants';\nlet THREE;\n/**\n * Creates and provides performant buffers for mapping particle properties to geometry vertices.\n *\n * @author thrax <manthrax@gmail.com>\n * @author rohan-deshpande <rohan@creativelifeform.com>\n * @see https://threejs.org/examples/?q=buffe#webgl_buffergeometry_points_interleaved\n * @see https://threejs.org/examples/?q=points#webgl_custom_attributes_points\n */\n\nexport default class ParticleBuffer {\n  constructor(maxParticles = DEFAULT_MAX_PARTICLES, three) {\n    THREE = three;\n    this.maxParticles = maxParticles;\n    this.createInterleavedBuffer().createBufferGeometry();\n  }\n  /**\n   * Creates the interleaved buffer that will be used to write data to the GPU.\n   *\n   * @return {ParticleBuffer}\n   */\n\n\n  createInterleavedBuffer() {\n    const arrayBuffer = new ArrayBuffer(this.maxParticles * PARTICLE_BYTE_SIZE);\n    this.interleavedBuffer = new THREE.InterleavedBuffer(new Float32Array(arrayBuffer), PARTICLE_BYTE_SIZE); // this.interleavedBuffer.usage = THREE.DynamicDrawUsage;\n\n    return this;\n  }\n  /**\n   * Sets the geometry's buffer attributes.\n   *\n   * NOTE Each attribute needs to be set at the right index in the buffer right after the previous\n   * attribute that occupies a set amount of size in the buffer.\n   *\n   * @return {ParticleBufferGeometry}\n   */\n\n\n  createBufferGeometry() {\n    this.geometry = new THREE.BufferGeometry();\n    const {\n      interleavedBuffer,\n      geometry\n    } = this;\n    Object.keys(ATTRIBUTE_TO_SIZE_MAP).reduce((offset, attribute) => {\n      const size = ATTRIBUTE_TO_SIZE_MAP[attribute];\n      geometry.setAttribute(attribute, new THREE.InterleavedBufferAttribute(interleavedBuffer, size, offset));\n      return offset += size;\n    }, 0);\n    return this;\n  }\n  /**\n   * Gets the publicly accessible interleaved buffer.\n   *\n   * @return {THREE.InterleavedBuffer} buffers - The interleaved buffer\n   */\n\n\n  get buffer() {\n    return this.interleavedBuffer;\n  }\n\n  get stride() {\n    return PARTICLE_BYTE_SIZE;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vUGFydGljbGVCdWZmZXIvaW5kZXguanMiXSwibmFtZXMiOlsiQVRUUklCVVRFX1RPX1NJWkVfTUFQIiwiREVGQVVMVF9NQVhfUEFSVElDTEVTIiwiUEFSVElDTEVfQllURV9TSVpFIiwiVEhSRUUiLCJQYXJ0aWNsZUJ1ZmZlciIsImNvbnN0cnVjdG9yIiwibWF4UGFydGljbGVzIiwidGhyZWUiLCJjcmVhdGVJbnRlcmxlYXZlZEJ1ZmZlciIsImNyZWF0ZUJ1ZmZlckdlb21ldHJ5IiwiYXJyYXlCdWZmZXIiLCJBcnJheUJ1ZmZlciIsImludGVybGVhdmVkQnVmZmVyIiwiSW50ZXJsZWF2ZWRCdWZmZXIiLCJGbG9hdDMyQXJyYXkiLCJnZW9tZXRyeSIsIkJ1ZmZlckdlb21ldHJ5IiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsIm9mZnNldCIsImF0dHJpYnV0ZSIsInNpemUiLCJzZXRBdHRyaWJ1dGUiLCJJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSIsImJ1ZmZlciIsInN0cmlkZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEscUJBREYsRUFFRUMscUJBRkYsRUFHRUMsa0JBSEYsUUFJTyxhQUpQO0FBTUEsSUFBSUMsS0FBSjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxjQUFOLENBQXFCO0FBQ2xDQyxFQUFBQSxXQUFXLENBQUNDLFlBQVksR0FBR0wscUJBQWhCLEVBQXVDTSxLQUF2QyxFQUE4QztBQUN2REosSUFBQUEsS0FBSyxHQUFHSSxLQUFSO0FBQ0EsU0FBS0QsWUFBTCxHQUFvQkEsWUFBcEI7QUFFQSxTQUFLRSx1QkFBTCxHQUErQkMsb0JBQS9CO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUQsRUFBQUEsdUJBQXVCLEdBQUc7QUFDeEIsVUFBTUUsV0FBVyxHQUFHLElBQUlDLFdBQUosQ0FBZ0IsS0FBS0wsWUFBTCxHQUFvQkosa0JBQXBDLENBQXBCO0FBRUEsU0FBS1UsaUJBQUwsR0FBeUIsSUFBSVQsS0FBSyxDQUFDVSxpQkFBVixDQUN2QixJQUFJQyxZQUFKLENBQWlCSixXQUFqQixDQUR1QixFQUV2QlIsa0JBRnVCLENBQXpCLENBSHdCLENBT3hCOztBQUVBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VPLEVBQUFBLG9CQUFvQixHQUFHO0FBQ3JCLFNBQUtNLFFBQUwsR0FBZ0IsSUFBSVosS0FBSyxDQUFDYSxjQUFWLEVBQWhCO0FBRUEsVUFBTTtBQUFFSixNQUFBQSxpQkFBRjtBQUFxQkcsTUFBQUE7QUFBckIsUUFBa0MsSUFBeEM7QUFFQUUsSUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVlsQixxQkFBWixFQUFtQ21CLE1BQW5DLENBQTBDLENBQUNDLE1BQUQsRUFBU0MsU0FBVCxLQUF1QjtBQUMvRCxZQUFNQyxJQUFJLEdBQUd0QixxQkFBcUIsQ0FBQ3FCLFNBQUQsQ0FBbEM7QUFFQU4sTUFBQUEsUUFBUSxDQUFDUSxZQUFULENBQ0VGLFNBREYsRUFFRSxJQUFJbEIsS0FBSyxDQUFDcUIsMEJBQVYsQ0FBcUNaLGlCQUFyQyxFQUF3RFUsSUFBeEQsRUFBOERGLE1BQTlELENBRkY7QUFLQSxhQUFRQSxNQUFNLElBQUlFLElBQWxCO0FBQ0QsS0FURCxFQVNHLENBVEg7QUFXQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNZLE1BQU5HLE1BQU0sR0FBRztBQUNYLFdBQU8sS0FBS2IsaUJBQVo7QUFDRDs7QUFFUyxNQUFOYyxNQUFNLEdBQUc7QUFDWCxXQUFPeEIsa0JBQVA7QUFDRDs7QUEvRGlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVRUUklCVVRFX1RPX1NJWkVfTUFQLFxuICBERUZBVUxUX01BWF9QQVJUSUNMRVMsXG4gIFBBUlRJQ0xFX0JZVEVfU0laRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5sZXQgVEhSRUU7XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcHJvdmlkZXMgcGVyZm9ybWFudCBidWZmZXJzIGZvciBtYXBwaW5nIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gZ2VvbWV0cnkgdmVydGljZXMuXG4gKlxuICogQGF1dGhvciB0aHJheCA8bWFudGhyYXhAZ21haWwuY29tPlxuICogQGF1dGhvciByb2hhbi1kZXNocGFuZGUgPHJvaGFuQGNyZWF0aXZlbGlmZWZvcm0uY29tPlxuICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2V4YW1wbGVzLz9xPWJ1ZmZlI3dlYmdsX2J1ZmZlcmdlb21ldHJ5X3BvaW50c19pbnRlcmxlYXZlZFxuICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2V4YW1wbGVzLz9xPXBvaW50cyN3ZWJnbF9jdXN0b21fYXR0cmlidXRlc19wb2ludHNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFydGljbGVCdWZmZXIge1xuICBjb25zdHJ1Y3RvcihtYXhQYXJ0aWNsZXMgPSBERUZBVUxUX01BWF9QQVJUSUNMRVMsIHRocmVlKSB7XG4gICAgVEhSRUUgPSB0aHJlZTtcbiAgICB0aGlzLm1heFBhcnRpY2xlcyA9IG1heFBhcnRpY2xlcztcblxuICAgIHRoaXMuY3JlYXRlSW50ZXJsZWF2ZWRCdWZmZXIoKS5jcmVhdGVCdWZmZXJHZW9tZXRyeSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGludGVybGVhdmVkIGJ1ZmZlciB0aGF0IHdpbGwgYmUgdXNlZCB0byB3cml0ZSBkYXRhIHRvIHRoZSBHUFUuXG4gICAqXG4gICAqIEByZXR1cm4ge1BhcnRpY2xlQnVmZmVyfVxuICAgKi9cbiAgY3JlYXRlSW50ZXJsZWF2ZWRCdWZmZXIoKSB7XG4gICAgY29uc3QgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIodGhpcy5tYXhQYXJ0aWNsZXMgKiBQQVJUSUNMRV9CWVRFX1NJWkUpO1xuXG4gICAgdGhpcy5pbnRlcmxlYXZlZEJ1ZmZlciA9IG5ldyBUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcihcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoYXJyYXlCdWZmZXIpLFxuICAgICAgUEFSVElDTEVfQllURV9TSVpFXG4gICAgKTtcbiAgICAvLyB0aGlzLmludGVybGVhdmVkQnVmZmVyLnVzYWdlID0gVEhSRUUuRHluYW1pY0RyYXdVc2FnZTtcbiAgICBcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBnZW9tZXRyeSdzIGJ1ZmZlciBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBOT1RFIEVhY2ggYXR0cmlidXRlIG5lZWRzIHRvIGJlIHNldCBhdCB0aGUgcmlnaHQgaW5kZXggaW4gdGhlIGJ1ZmZlciByaWdodCBhZnRlciB0aGUgcHJldmlvdXNcbiAgICogYXR0cmlidXRlIHRoYXQgb2NjdXBpZXMgYSBzZXQgYW1vdW50IG9mIHNpemUgaW4gdGhlIGJ1ZmZlci5cbiAgICpcbiAgICogQHJldHVybiB7UGFydGljbGVCdWZmZXJHZW9tZXRyeX1cbiAgICovXG4gIGNyZWF0ZUJ1ZmZlckdlb21ldHJ5KCkge1xuICAgIHRoaXMuZ2VvbWV0cnkgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcblxuICAgIGNvbnN0IHsgaW50ZXJsZWF2ZWRCdWZmZXIsIGdlb21ldHJ5IH0gPSB0aGlzO1xuXG4gICAgT2JqZWN0LmtleXMoQVRUUklCVVRFX1RPX1NJWkVfTUFQKS5yZWR1Y2UoKG9mZnNldCwgYXR0cmlidXRlKSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gQVRUUklCVVRFX1RPX1NJWkVfTUFQW2F0dHJpYnV0ZV07XG5cbiAgICAgIGdlb21ldHJ5LnNldEF0dHJpYnV0ZShcbiAgICAgICAgYXR0cmlidXRlLFxuICAgICAgICBuZXcgVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUoaW50ZXJsZWF2ZWRCdWZmZXIsIHNpemUsIG9mZnNldClcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiAob2Zmc2V0ICs9IHNpemUpO1xuICAgIH0sIDApO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcHVibGljbHkgYWNjZXNzaWJsZSBpbnRlcmxlYXZlZCBidWZmZXIuXG4gICAqXG4gICAqIEByZXR1cm4ge1RIUkVFLkludGVybGVhdmVkQnVmZmVyfSBidWZmZXJzIC0gVGhlIGludGVybGVhdmVkIGJ1ZmZlclxuICAgKi9cbiAgZ2V0IGJ1ZmZlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmxlYXZlZEJ1ZmZlcjtcbiAgfVxuXG4gIGdldCBzdHJpZGUoKSB7XG4gICAgcmV0dXJuIFBBUlRJQ0xFX0JZVEVfU0laRTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/TextureAtlas/constants.js",
    "content": "export const DATA_TEXTURE_SIZE = 256;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vVGV4dHVyZUF0bGFzL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJEQVRBX1RFWFRVUkVfU0laRSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxpQkFBaUIsR0FBRyxHQUExQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBEQVRBX1RFWFRVUkVfU0laRSA9IDI1NjtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/TextureAtlas/index.js",
    "content": "import { RENDERER_TYPE_GPU_DESKTOP, RENDERER_TYPE_GPU_MOBILE } from '../../../types';\nimport { DATA_TEXTURE_SIZE } from './constants';\nimport { __DEV__ } from '../../../../constants';\nimport potpack from \"../../../../utils/potpack.js\";\n\n/**\n * Dynamic texture atlas for performant support of systems with multiple emitters and textures.\n *\n */\n\nexport default class TextureAtlas {\n  constructor(renderer, shouldDebug) {\n    const {\n      three: THREE,\n      type: rendererType\n    } = renderer;\n    const data = new Float32Array(DATA_TEXTURE_SIZE * 4);\n    const ctx = this.ctx = document.createElement('canvas').getContext('2d');\n    const {\n      canvas\n    } = ctx;\n    this.shouldDebug = shouldDebug;\n    this.rendererType = rendererType;\n    this.indexData = data;\n    this.canvas = canvas;\n    this.entries = [];\n\n    if (rendererType === RENDERER_TYPE_GPU_DESKTOP) {\n      this.atlasIndex = new THREE.DataTexture(data, DATA_TEXTURE_SIZE, 1, THREE.RGBAFormat, THREE.FloatType);\n    }\n\n    canvas.width = canvas.height = DATA_TEXTURE_SIZE;\n\n    if (shouldDebug) {\n      this.debug(canvas, ctx);\n    }\n\n    this.atlasTexture = new THREE.CanvasTexture(canvas);\n    this.atlasTexture.flipY = false;\n    renderer.material.uniforms.uTexture.value = this.atlasTexture;\n\n    if (rendererType === RENDERER_TYPE_GPU_DESKTOP) {\n      renderer.material.uniforms.atlasIndex.value = this.atlasIndex;\n    }\n\n    renderer.material.uniformsNeedUpdate = true;\n  }\n  /**\n   * Logs to the console when in dev mode.\n   *\n   */\n\n\n  log(...args) {\n    if (!__DEV__) {\n      return;\n    }\n\n    console.log(...args);\n  }\n  /**\n   * Debugs the texture atlas by rendering it to a canvas in the DOM.\n   *\n   */\n\n\n  debug() {\n    const {\n      canvas,\n      ctx\n    } = this;\n    const halfmax = canvas.width;\n    ctx.fillStyle = 'purple';\n    ctx.fillRect(0, 0, halfmax, halfmax);\n    ctx.fillStyle = 'green';\n    ctx.fillRect(0, halfmax, halfmax, halfmax);\n    ctx.fillStyle = 'blue';\n    ctx.fillRect(halfmax, 0, halfmax, halfmax);\n    ctx.fillStyle = 'orange';\n    ctx.fillRect(halfmax, halfmax, halfmax, halfmax);\n    ctx.fillStyle = 'yellow';\n    ctx.font = canvas.width + 'px Verdana';\n    ctx.fillText('top row', 100, 500);\n    ctx.fillStyle = 'pink';\n    ctx.fillText('bottom row', 100, 1500);\n    canvas.style.position = 'absolute';\n    canvas.style.width = canvas.style.height = '300px';\n    canvas.style.left = canvas.style.top = '0px';\n    canvas.style.zIndex = 100;\n    document.body.appendChild(canvas);\n  }\n  /**\n   * Adds a texture to the texture atlas and flags that the atlas needs to be updated.\n   *\n   */\n\n\n  addTexture(texture) {\n    this.log('Adding texture to atlas:', texture.uuid);\n    texture.textureIndex = this.entries.length;\n    this.entries.push({\n      texture: texture\n    });\n    this.needsUpdate = true;\n  }\n  /**\n   * Updates the texture atlas. Will only rebuild the atlas if all images are loaded.\n   *\n   */\n\n\n  update() {\n    if (!this.needsUpdate) {\n      return;\n    }\n\n    const {\n      entries,\n      canvas,\n      indexData,\n      ctx,\n      atlasIndex,\n      atlasTexture,\n      rendererType\n    } = this;\n\n    for (let i = 0; i < entries.length; i++) {\n      if (!entries[i].texture.image) {\n        return;\n      }\n    }\n\n    this.needsUpdate = false;\n\n    for (let i = 0; i < entries.length; i++) {\n      const e = entries[i];\n      const {\n        texture\n      } = e;\n      const {\n        width,\n        height\n      } = texture.image;\n      e.w = width;\n      e.h = height;\n    }\n\n    const stats = potpack(entries);\n    this.log('Rebuilt atlas:', stats);\n\n    if (canvas.width != stats.w || canvas.height != stats.h) {\n      canvas.width = stats.w;\n      canvas.height = stats.h;\n    }\n\n    for (let i = 0; i < entries.length; i++) {\n      const e = this.entries[i];\n      const ii = e.texture.textureIndex * 4;\n\n      if (rendererType === RENDERER_TYPE_GPU_DESKTOP) {\n        indexData[ii + 0] = e.x / canvas.width;\n        indexData[ii + 1] = e.y / canvas.height;\n        indexData[ii + 2] = (e.x + e.w) / canvas.width;\n        indexData[ii + 3] = (e.y + e.h) / canvas.height;\n      }\n\n      if (rendererType === RENDERER_TYPE_GPU_MOBILE) {\n        indexData[ii + 0] = e.x / (canvas.width + 1);\n        indexData[ii + 1] = e.y / (canvas.height + 1);\n        indexData[ii + 2] = (e.x + e.w) / (canvas.width + 1);\n        indexData[ii + 3] = (e.y + e.h) / (canvas.height + 1);\n      }\n\n      ctx.drawImage(e.texture.image, e.x, e.y, e.w, e.h);\n    }\n\n    if (rendererType === RENDERER_TYPE_GPU_DESKTOP) {\n      atlasIndex.needsUpdate = true;\n    }\n\n    atlasTexture.needsUpdate = true;\n  }\n  /**\n   * Disposes of the textures used by the texture atlas.\n   *\n   * @return void\n   */\n\n\n  destroy() {\n    const {\n      atlasIndex,\n      atlasTexture,\n      canvas\n    } = this;\n    atlasTexture.dispose();\n    atlasIndex && atlasIndex.dispose();\n\n    if (this.shouldDebug) {\n      canvas.remove();\n    }\n\n    this.entries = [];\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vVGV4dHVyZUF0bGFzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AiLCJSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUiLCJEQVRBX1RFWFRVUkVfU0laRSIsIl9fREVWX18iLCJwb3RwYWNrIiwiVGV4dHVyZUF0bGFzIiwiY29uc3RydWN0b3IiLCJyZW5kZXJlciIsInNob3VsZERlYnVnIiwidGhyZWUiLCJUSFJFRSIsInR5cGUiLCJyZW5kZXJlclR5cGUiLCJkYXRhIiwiRmxvYXQzMkFycmF5IiwiY3R4IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZ2V0Q29udGV4dCIsImNhbnZhcyIsImluZGV4RGF0YSIsImVudHJpZXMiLCJhdGxhc0luZGV4IiwiRGF0YVRleHR1cmUiLCJSR0JBRm9ybWF0IiwiRmxvYXRUeXBlIiwid2lkdGgiLCJoZWlnaHQiLCJkZWJ1ZyIsImF0bGFzVGV4dHVyZSIsIkNhbnZhc1RleHR1cmUiLCJmbGlwWSIsIm1hdGVyaWFsIiwidW5pZm9ybXMiLCJ1VGV4dHVyZSIsInZhbHVlIiwidW5pZm9ybXNOZWVkVXBkYXRlIiwibG9nIiwiYXJncyIsImNvbnNvbGUiLCJoYWxmbWF4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJmb250IiwiZmlsbFRleHQiLCJzdHlsZSIsInBvc2l0aW9uIiwibGVmdCIsInRvcCIsInpJbmRleCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImFkZFRleHR1cmUiLCJ0ZXh0dXJlIiwidXVpZCIsInRleHR1cmVJbmRleCIsImxlbmd0aCIsInB1c2giLCJuZWVkc1VwZGF0ZSIsInVwZGF0ZSIsImkiLCJpbWFnZSIsImUiLCJ3IiwiaCIsInN0YXRzIiwiaWkiLCJ4IiwieSIsImRyYXdJbWFnZSIsImRlc3Ryb3kiLCJkaXNwb3NlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSx5QkFERixFQUVFQyx3QkFGRixRQUdPLGdCQUhQO0FBS0EsU0FBU0MsaUJBQVQsUUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxPQUFULFFBQXdCLHVCQUF4QjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsU0FBcEI7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFlBQU4sQ0FBbUI7QUFDaENDLEVBQUFBLFdBQVcsQ0FBQ0MsUUFBRCxFQUFXQyxXQUFYLEVBQXdCO0FBQ2pDLFVBQU07QUFBRUMsTUFBQUEsS0FBSyxFQUFFQyxLQUFUO0FBQWdCQyxNQUFBQSxJQUFJLEVBQUVDO0FBQXRCLFFBQXVDTCxRQUE3QztBQUNBLFVBQU1NLElBQUksR0FBRyxJQUFJQyxZQUFKLENBQWlCWixpQkFBaUIsR0FBRyxDQUFyQyxDQUFiO0FBQ0EsVUFBTWEsR0FBRyxHQUFJLEtBQUtBLEdBQUwsR0FBV0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLFFBQXZCLEVBQWlDQyxVQUFqQyxDQUE0QyxJQUE1QyxDQUF4QjtBQUNBLFVBQU07QUFBRUMsTUFBQUE7QUFBRixRQUFhSixHQUFuQjtBQUVBLFNBQUtQLFdBQUwsR0FBbUJBLFdBQW5CO0FBQ0EsU0FBS0ksWUFBTCxHQUFvQkEsWUFBcEI7QUFDQSxTQUFLUSxTQUFMLEdBQWlCUCxJQUFqQjtBQUNBLFNBQUtNLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtFLE9BQUwsR0FBZSxFQUFmOztBQUVBLFFBQUlULFlBQVksS0FBS1oseUJBQXJCLEVBQWdEO0FBQzlDLFdBQUtzQixVQUFMLEdBQWtCLElBQUlaLEtBQUssQ0FBQ2EsV0FBVixDQUNoQlYsSUFEZ0IsRUFFaEJYLGlCQUZnQixFQUdoQixDQUhnQixFQUloQlEsS0FBSyxDQUFDYyxVQUpVLEVBS2hCZCxLQUFLLENBQUNlLFNBTFUsQ0FBbEI7QUFPRDs7QUFFRE4sSUFBQUEsTUFBTSxDQUFDTyxLQUFQLEdBQWVQLE1BQU0sQ0FBQ1EsTUFBUCxHQUFnQnpCLGlCQUEvQjs7QUFFQSxRQUFJTSxXQUFKLEVBQWlCO0FBQ2YsV0FBS29CLEtBQUwsQ0FBV1QsTUFBWCxFQUFtQkosR0FBbkI7QUFDRDs7QUFFRCxTQUFLYyxZQUFMLEdBQW9CLElBQUluQixLQUFLLENBQUNvQixhQUFWLENBQXdCWCxNQUF4QixDQUFwQjtBQUNBLFNBQUtVLFlBQUwsQ0FBa0JFLEtBQWxCLEdBQTBCLEtBQTFCO0FBRUF4QixJQUFBQSxRQUFRLENBQUN5QixRQUFULENBQWtCQyxRQUFsQixDQUEyQkMsUUFBM0IsQ0FBb0NDLEtBQXBDLEdBQTRDLEtBQUtOLFlBQWpEOztBQUVBLFFBQUlqQixZQUFZLEtBQUtaLHlCQUFyQixFQUFnRDtBQUM5Q08sTUFBQUEsUUFBUSxDQUFDeUIsUUFBVCxDQUFrQkMsUUFBbEIsQ0FBMkJYLFVBQTNCLENBQXNDYSxLQUF0QyxHQUE4QyxLQUFLYixVQUFuRDtBQUNEOztBQUVEZixJQUFBQSxRQUFRLENBQUN5QixRQUFULENBQWtCSSxrQkFBbEIsR0FBdUMsSUFBdkM7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsR0FBRyxDQUFDLEdBQUdDLElBQUosRUFBVTtBQUNYLFFBQUksQ0FBQ25DLE9BQUwsRUFBYztBQUNaO0FBQ0Q7O0FBRURvQyxJQUFBQSxPQUFPLENBQUNGLEdBQVIsQ0FBWSxHQUFHQyxJQUFmO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7O0FBQ0VWLEVBQUFBLEtBQUssR0FBRztBQUNOLFVBQU07QUFBRVQsTUFBQUEsTUFBRjtBQUFVSixNQUFBQTtBQUFWLFFBQWtCLElBQXhCO0FBQ0EsVUFBTXlCLE9BQU8sR0FBR3JCLE1BQU0sQ0FBQ08sS0FBdkI7QUFFQVgsSUFBQUEsR0FBRyxDQUFDMEIsU0FBSixHQUFnQixRQUFoQjtBQUNBMUIsSUFBQUEsR0FBRyxDQUFDMkIsUUFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUJGLE9BQW5CLEVBQTRCQSxPQUE1QjtBQUNBekIsSUFBQUEsR0FBRyxDQUFDMEIsU0FBSixHQUFnQixPQUFoQjtBQUNBMUIsSUFBQUEsR0FBRyxDQUFDMkIsUUFBSixDQUFhLENBQWIsRUFBZ0JGLE9BQWhCLEVBQXlCQSxPQUF6QixFQUFrQ0EsT0FBbEM7QUFDQXpCLElBQUFBLEdBQUcsQ0FBQzBCLFNBQUosR0FBZ0IsTUFBaEI7QUFDQTFCLElBQUFBLEdBQUcsQ0FBQzJCLFFBQUosQ0FBYUYsT0FBYixFQUFzQixDQUF0QixFQUF5QkEsT0FBekIsRUFBa0NBLE9BQWxDO0FBQ0F6QixJQUFBQSxHQUFHLENBQUMwQixTQUFKLEdBQWdCLFFBQWhCO0FBQ0ExQixJQUFBQSxHQUFHLENBQUMyQixRQUFKLENBQWFGLE9BQWIsRUFBc0JBLE9BQXRCLEVBQStCQSxPQUEvQixFQUF3Q0EsT0FBeEM7QUFDQXpCLElBQUFBLEdBQUcsQ0FBQzBCLFNBQUosR0FBZ0IsUUFBaEI7QUFDQTFCLElBQUFBLEdBQUcsQ0FBQzRCLElBQUosR0FBV3hCLE1BQU0sQ0FBQ08sS0FBUCxHQUFlLFlBQTFCO0FBQ0FYLElBQUFBLEdBQUcsQ0FBQzZCLFFBQUosQ0FBYSxTQUFiLEVBQXdCLEdBQXhCLEVBQTZCLEdBQTdCO0FBQ0E3QixJQUFBQSxHQUFHLENBQUMwQixTQUFKLEdBQWdCLE1BQWhCO0FBQ0ExQixJQUFBQSxHQUFHLENBQUM2QixRQUFKLENBQWEsWUFBYixFQUEyQixHQUEzQixFQUFnQyxJQUFoQztBQUVBekIsSUFBQUEsTUFBTSxDQUFDMEIsS0FBUCxDQUFhQyxRQUFiLEdBQXdCLFVBQXhCO0FBQ0EzQixJQUFBQSxNQUFNLENBQUMwQixLQUFQLENBQWFuQixLQUFiLEdBQXFCUCxNQUFNLENBQUMwQixLQUFQLENBQWFsQixNQUFiLEdBQXNCLE9BQTNDO0FBQ0FSLElBQUFBLE1BQU0sQ0FBQzBCLEtBQVAsQ0FBYUUsSUFBYixHQUFvQjVCLE1BQU0sQ0FBQzBCLEtBQVAsQ0FBYUcsR0FBYixHQUFtQixLQUF2QztBQUNBN0IsSUFBQUEsTUFBTSxDQUFDMEIsS0FBUCxDQUFhSSxNQUFiLEdBQXNCLEdBQXRCO0FBRUFqQyxJQUFBQSxRQUFRLENBQUNrQyxJQUFULENBQWNDLFdBQWQsQ0FBMEJoQyxNQUExQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7OztBQUNFaUMsRUFBQUEsVUFBVSxDQUFDQyxPQUFELEVBQVU7QUFDbEIsU0FBS2hCLEdBQUwsQ0FBUywwQkFBVCxFQUFxQ2dCLE9BQU8sQ0FBQ0MsSUFBN0M7QUFFQUQsSUFBQUEsT0FBTyxDQUFDRSxZQUFSLEdBQXVCLEtBQUtsQyxPQUFMLENBQWFtQyxNQUFwQztBQUNBLFNBQUtuQyxPQUFMLENBQWFvQyxJQUFiLENBQWtCO0FBQUVKLE1BQUFBLE9BQU8sRUFBRUE7QUFBWCxLQUFsQjtBQUNBLFNBQUtLLFdBQUwsR0FBbUIsSUFBbkI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxHQUFHO0FBQ1AsUUFBSSxDQUFDLEtBQUtELFdBQVYsRUFBdUI7QUFDckI7QUFDRDs7QUFFRCxVQUFNO0FBQ0pyQyxNQUFBQSxPQURJO0FBRUpGLE1BQUFBLE1BRkk7QUFHSkMsTUFBQUEsU0FISTtBQUlKTCxNQUFBQSxHQUpJO0FBS0pPLE1BQUFBLFVBTEk7QUFNSk8sTUFBQUEsWUFOSTtBQU9KakIsTUFBQUE7QUFQSSxRQVFGLElBUko7O0FBVUEsU0FBSyxJQUFJZ0QsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR3ZDLE9BQU8sQ0FBQ21DLE1BQTVCLEVBQW9DSSxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDLFVBQUksQ0FBQ3ZDLE9BQU8sQ0FBQ3VDLENBQUQsQ0FBUCxDQUFXUCxPQUFYLENBQW1CUSxLQUF4QixFQUErQjtBQUM3QjtBQUNEO0FBQ0Y7O0FBRUQsU0FBS0gsV0FBTCxHQUFtQixLQUFuQjs7QUFFQSxTQUFLLElBQUlFLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUd2QyxPQUFPLENBQUNtQyxNQUE1QixFQUFvQ0ksQ0FBQyxFQUFyQyxFQUF5QztBQUN2QyxZQUFNRSxDQUFDLEdBQUd6QyxPQUFPLENBQUN1QyxDQUFELENBQWpCO0FBQ0EsWUFBTTtBQUFFUCxRQUFBQTtBQUFGLFVBQWNTLENBQXBCO0FBQ0EsWUFBTTtBQUFFcEMsUUFBQUEsS0FBRjtBQUFTQyxRQUFBQTtBQUFULFVBQW9CMEIsT0FBTyxDQUFDUSxLQUFsQztBQUVBQyxNQUFBQSxDQUFDLENBQUNDLENBQUYsR0FBTXJDLEtBQU47QUFDQW9DLE1BQUFBLENBQUMsQ0FBQ0UsQ0FBRixHQUFNckMsTUFBTjtBQUNEOztBQUVELFVBQU1zQyxLQUFLLEdBQUc3RCxPQUFPLENBQUNpQixPQUFELENBQXJCO0FBRUEsU0FBS2dCLEdBQUwsQ0FBUyxnQkFBVCxFQUEyQjRCLEtBQTNCOztBQUVBLFFBQUk5QyxNQUFNLENBQUNPLEtBQVAsSUFBZ0J1QyxLQUFLLENBQUNGLENBQXRCLElBQTJCNUMsTUFBTSxDQUFDUSxNQUFQLElBQWlCc0MsS0FBSyxDQUFDRCxDQUF0RCxFQUF5RDtBQUN2RDdDLE1BQUFBLE1BQU0sQ0FBQ08sS0FBUCxHQUFldUMsS0FBSyxDQUFDRixDQUFyQjtBQUNBNUMsTUFBQUEsTUFBTSxDQUFDUSxNQUFQLEdBQWdCc0MsS0FBSyxDQUFDRCxDQUF0QjtBQUNEOztBQUVELFNBQUssSUFBSUosQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR3ZDLE9BQU8sQ0FBQ21DLE1BQTVCLEVBQW9DSSxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDLFlBQU1FLENBQUMsR0FBRyxLQUFLekMsT0FBTCxDQUFhdUMsQ0FBYixDQUFWO0FBQ0EsWUFBTU0sRUFBRSxHQUFHSixDQUFDLENBQUNULE9BQUYsQ0FBVUUsWUFBVixHQUF5QixDQUFwQzs7QUFFQSxVQUFJM0MsWUFBWSxLQUFLWix5QkFBckIsRUFBZ0Q7QUFDOUNvQixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CSixDQUFDLENBQUNLLENBQUYsR0FBTWhELE1BQU0sQ0FBQ08sS0FBakM7QUFDQU4sUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQkosQ0FBQyxDQUFDTSxDQUFGLEdBQU1qRCxNQUFNLENBQUNRLE1BQWpDO0FBQ0FQLFFBQUFBLFNBQVMsQ0FBQzhDLEVBQUUsR0FBRyxDQUFOLENBQVQsR0FBb0IsQ0FBQ0osQ0FBQyxDQUFDSyxDQUFGLEdBQU1MLENBQUMsQ0FBQ0MsQ0FBVCxJQUFjNUMsTUFBTSxDQUFDTyxLQUF6QztBQUNBTixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CLENBQUNKLENBQUMsQ0FBQ00sQ0FBRixHQUFNTixDQUFDLENBQUNFLENBQVQsSUFBYzdDLE1BQU0sQ0FBQ1EsTUFBekM7QUFDRDs7QUFFRCxVQUFJZixZQUFZLEtBQUtYLHdCQUFyQixFQUErQztBQUM3Q21CLFFBQUFBLFNBQVMsQ0FBQzhDLEVBQUUsR0FBRyxDQUFOLENBQVQsR0FBb0JKLENBQUMsQ0FBQ0ssQ0FBRixJQUFPaEQsTUFBTSxDQUFDTyxLQUFQLEdBQWUsQ0FBdEIsQ0FBcEI7QUFDQU4sUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQkosQ0FBQyxDQUFDTSxDQUFGLElBQU9qRCxNQUFNLENBQUNRLE1BQVAsR0FBZ0IsQ0FBdkIsQ0FBcEI7QUFDQVAsUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQixDQUFDSixDQUFDLENBQUNLLENBQUYsR0FBTUwsQ0FBQyxDQUFDQyxDQUFULEtBQWU1QyxNQUFNLENBQUNPLEtBQVAsR0FBZSxDQUE5QixDQUFwQjtBQUNBTixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CLENBQUNKLENBQUMsQ0FBQ00sQ0FBRixHQUFNTixDQUFDLENBQUNFLENBQVQsS0FBZTdDLE1BQU0sQ0FBQ1EsTUFBUCxHQUFnQixDQUEvQixDQUFwQjtBQUNEOztBQUVEWixNQUFBQSxHQUFHLENBQUNzRCxTQUFKLENBQWNQLENBQUMsQ0FBQ1QsT0FBRixDQUFVUSxLQUF4QixFQUErQkMsQ0FBQyxDQUFDSyxDQUFqQyxFQUFvQ0wsQ0FBQyxDQUFDTSxDQUF0QyxFQUF5Q04sQ0FBQyxDQUFDQyxDQUEzQyxFQUE4Q0QsQ0FBQyxDQUFDRSxDQUFoRDtBQUNEOztBQUVELFFBQUlwRCxZQUFZLEtBQUtaLHlCQUFyQixFQUFnRDtBQUM5Q3NCLE1BQUFBLFVBQVUsQ0FBQ29DLFdBQVgsR0FBeUIsSUFBekI7QUFDRDs7QUFFRDdCLElBQUFBLFlBQVksQ0FBQzZCLFdBQWIsR0FBMkIsSUFBM0I7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFWSxFQUFBQSxPQUFPLEdBQUc7QUFDUixVQUFNO0FBQUVoRCxNQUFBQSxVQUFGO0FBQWNPLE1BQUFBLFlBQWQ7QUFBNEJWLE1BQUFBO0FBQTVCLFFBQXVDLElBQTdDO0FBRUFVLElBQUFBLFlBQVksQ0FBQzBDLE9BQWI7QUFDQWpELElBQUFBLFVBQVUsSUFBSUEsVUFBVSxDQUFDaUQsT0FBWCxFQUFkOztBQUVBLFFBQUksS0FBSy9ELFdBQVQsRUFBc0I7QUFDcEJXLE1BQUFBLE1BQU0sQ0FBQ3FELE1BQVA7QUFDRDs7QUFFRCxTQUFLbkQsT0FBTCxHQUFlLEVBQWY7QUFDRDs7QUF4TCtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCxcbiAgUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFLFxufSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IERBVEFfVEVYVFVSRV9TSVpFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgX19ERVZfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgcG90cGFjayBmcm9tICdwb3RwYWNrJztcblxuLyoqXG4gKiBEeW5hbWljIHRleHR1cmUgYXRsYXMgZm9yIHBlcmZvcm1hbnQgc3VwcG9ydCBvZiBzeXN0ZW1zIHdpdGggbXVsdGlwbGUgZW1pdHRlcnMgYW5kIHRleHR1cmVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dHVyZUF0bGFzIHtcbiAgY29uc3RydWN0b3IocmVuZGVyZXIsIHNob3VsZERlYnVnKSB7XG4gICAgY29uc3QgeyB0aHJlZTogVEhSRUUsIHR5cGU6IHJlbmRlcmVyVHlwZSB9ID0gcmVuZGVyZXI7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBGbG9hdDMyQXJyYXkoREFUQV9URVhUVVJFX1NJWkUgKiA0KTtcbiAgICBjb25zdCBjdHggPSAodGhpcy5jdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpKTtcbiAgICBjb25zdCB7IGNhbnZhcyB9ID0gY3R4O1xuXG4gICAgdGhpcy5zaG91bGREZWJ1ZyA9IHNob3VsZERlYnVnO1xuICAgIHRoaXMucmVuZGVyZXJUeXBlID0gcmVuZGVyZXJUeXBlO1xuICAgIHRoaXMuaW5kZXhEYXRhID0gZGF0YTtcbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIHRoaXMuYXRsYXNJbmRleCA9IG5ldyBUSFJFRS5EYXRhVGV4dHVyZShcbiAgICAgICAgZGF0YSxcbiAgICAgICAgREFUQV9URVhUVVJFX1NJWkUsXG4gICAgICAgIDEsXG4gICAgICAgIFRIUkVFLlJHQkFGb3JtYXQsXG4gICAgICAgIFRIUkVFLkZsb2F0VHlwZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW52YXMud2lkdGggPSBjYW52YXMuaGVpZ2h0ID0gREFUQV9URVhUVVJFX1NJWkU7XG5cbiAgICBpZiAoc2hvdWxkRGVidWcpIHtcbiAgICAgIHRoaXMuZGVidWcoY2FudmFzLCBjdHgpO1xuICAgIH1cblxuICAgIHRoaXMuYXRsYXNUZXh0dXJlID0gbmV3IFRIUkVFLkNhbnZhc1RleHR1cmUoY2FudmFzKTtcbiAgICB0aGlzLmF0bGFzVGV4dHVyZS5mbGlwWSA9IGZhbHNlO1xuXG4gICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXMudVRleHR1cmUudmFsdWUgPSB0aGlzLmF0bGFzVGV4dHVyZTtcblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIHJlbmRlcmVyLm1hdGVyaWFsLnVuaWZvcm1zLmF0bGFzSW5kZXgudmFsdWUgPSB0aGlzLmF0bGFzSW5kZXg7XG4gICAgfVxuXG4gICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXNOZWVkVXBkYXRlID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIHRvIHRoZSBjb25zb2xlIHdoZW4gaW4gZGV2IG1vZGUuXG4gICAqXG4gICAqL1xuICBsb2coLi4uYXJncykge1xuICAgIGlmICghX19ERVZfXykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYnVncyB0aGUgdGV4dHVyZSBhdGxhcyBieSByZW5kZXJpbmcgaXQgdG8gYSBjYW52YXMgaW4gdGhlIERPTS5cbiAgICpcbiAgICovXG4gIGRlYnVnKCkge1xuICAgIGNvbnN0IHsgY2FudmFzLCBjdHggfSA9IHRoaXM7XG4gICAgY29uc3QgaGFsZm1heCA9IGNhbnZhcy53aWR0aDtcblxuICAgIGN0eC5maWxsU3R5bGUgPSAncHVycGxlJztcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICdncmVlbic7XG4gICAgY3R4LmZpbGxSZWN0KDAsIGhhbGZtYXgsIGhhbGZtYXgsIGhhbGZtYXgpO1xuICAgIGN0eC5maWxsU3R5bGUgPSAnYmx1ZSc7XG4gICAgY3R4LmZpbGxSZWN0KGhhbGZtYXgsIDAsIGhhbGZtYXgsIGhhbGZtYXgpO1xuICAgIGN0eC5maWxsU3R5bGUgPSAnb3JhbmdlJztcbiAgICBjdHguZmlsbFJlY3QoaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICd5ZWxsb3cnO1xuICAgIGN0eC5mb250ID0gY2FudmFzLndpZHRoICsgJ3B4IFZlcmRhbmEnO1xuICAgIGN0eC5maWxsVGV4dCgndG9wIHJvdycsIDEwMCwgNTAwKTtcbiAgICBjdHguZmlsbFN0eWxlID0gJ3BpbmsnO1xuICAgIGN0eC5maWxsVGV4dCgnYm90dG9tIHJvdycsIDEwMCwgMTUwMCk7XG5cbiAgICBjYW52YXMuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGNhbnZhcy5zdHlsZS53aWR0aCA9IGNhbnZhcy5zdHlsZS5oZWlnaHQgPSAnMzAwcHgnO1xuICAgIGNhbnZhcy5zdHlsZS5sZWZ0ID0gY2FudmFzLnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgIGNhbnZhcy5zdHlsZS56SW5kZXggPSAxMDA7XG5cbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRleHR1cmUgdG8gdGhlIHRleHR1cmUgYXRsYXMgYW5kIGZsYWdzIHRoYXQgdGhlIGF0bGFzIG5lZWRzIHRvIGJlIHVwZGF0ZWQuXG4gICAqXG4gICAqL1xuICBhZGRUZXh0dXJlKHRleHR1cmUpIHtcbiAgICB0aGlzLmxvZygnQWRkaW5nIHRleHR1cmUgdG8gYXRsYXM6JywgdGV4dHVyZS51dWlkKTtcblxuICAgIHRleHR1cmUudGV4dHVyZUluZGV4ID0gdGhpcy5lbnRyaWVzLmxlbmd0aDtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7IHRleHR1cmU6IHRleHR1cmUgfSk7XG4gICAgdGhpcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgdGV4dHVyZSBhdGxhcy4gV2lsbCBvbmx5IHJlYnVpbGQgdGhlIGF0bGFzIGlmIGFsbCBpbWFnZXMgYXJlIGxvYWRlZC5cbiAgICpcbiAgICovXG4gIHVwZGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMubmVlZHNVcGRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBlbnRyaWVzLFxuICAgICAgY2FudmFzLFxuICAgICAgaW5kZXhEYXRhLFxuICAgICAgY3R4LFxuICAgICAgYXRsYXNJbmRleCxcbiAgICAgIGF0bGFzVGV4dHVyZSxcbiAgICAgIHJlbmRlcmVyVHlwZSxcbiAgICB9ID0gdGhpcztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFlbnRyaWVzW2ldLnRleHR1cmUuaW1hZ2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubmVlZHNVcGRhdGUgPSBmYWxzZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZSA9IGVudHJpZXNbaV07XG4gICAgICBjb25zdCB7IHRleHR1cmUgfSA9IGU7XG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRleHR1cmUuaW1hZ2U7XG5cbiAgICAgIGUudyA9IHdpZHRoO1xuICAgICAgZS5oID0gaGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXRzID0gcG90cGFjayhlbnRyaWVzKTtcblxuICAgIHRoaXMubG9nKCdSZWJ1aWx0IGF0bGFzOicsIHN0YXRzKTtcblxuICAgIGlmIChjYW52YXMud2lkdGggIT0gc3RhdHMudyB8fCBjYW52YXMuaGVpZ2h0ICE9IHN0YXRzLmgpIHtcbiAgICAgIGNhbnZhcy53aWR0aCA9IHN0YXRzLnc7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gc3RhdHMuaDtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGUgPSB0aGlzLmVudHJpZXNbaV07XG4gICAgICBjb25zdCBpaSA9IGUudGV4dHVyZS50ZXh0dXJlSW5kZXggKiA0O1xuXG4gICAgICBpZiAocmVuZGVyZXJUeXBlID09PSBSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QKSB7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDBdID0gZS54IC8gY2FudmFzLndpZHRoO1xuICAgICAgICBpbmRleERhdGFbaWkgKyAxXSA9IGUueSAvIGNhbnZhcy5oZWlnaHQ7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDJdID0gKGUueCArIGUudykgLyBjYW52YXMud2lkdGg7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDNdID0gKGUueSArIGUuaCkgLyBjYW52YXMuaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBpZiAocmVuZGVyZXJUeXBlID09PSBSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUpIHtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMF0gPSBlLnggLyAoY2FudmFzLndpZHRoICsgMSk7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDFdID0gZS55IC8gKGNhbnZhcy5oZWlnaHQgKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMl0gPSAoZS54ICsgZS53KSAvIChjYW52YXMud2lkdGggKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgM10gPSAoZS55ICsgZS5oKSAvIChjYW52YXMuaGVpZ2h0ICsgMSk7XG4gICAgICB9XG5cbiAgICAgIGN0eC5kcmF3SW1hZ2UoZS50ZXh0dXJlLmltYWdlLCBlLngsIGUueSwgZS53LCBlLmgpO1xuICAgIH1cblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIGF0bGFzSW5kZXgubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGF0bGFzVGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRGlzcG9zZXMgb2YgdGhlIHRleHR1cmVzIHVzZWQgYnkgdGhlIHRleHR1cmUgYXRsYXMuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICBjb25zdCB7IGF0bGFzSW5kZXgsIGF0bGFzVGV4dHVyZSwgY2FudmFzIH0gPSB0aGlzO1xuXG4gICAgYXRsYXNUZXh0dXJlLmRpc3Bvc2UoKTtcbiAgICBhdGxhc0luZGV4ICYmIGF0bGFzSW5kZXguZGlzcG9zZSgpO1xuXG4gICAgaWYgKHRoaXMuc2hvdWxkRGVidWcpIHtcbiAgICAgIGNhbnZhcy5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/constants.js",
    "content": "import { DEFAULT_MAX_PARTICLES } from './ParticleBuffer/constants';\nexport const DEFAULT_RENDERER_OPTIONS = {\n  blending: 'AdditiveBlending',\n  baseColor: 0xffffff,\n  depthTest: true,\n  depthWrite: false,\n  transparent: true,\n  maxParticles: DEFAULT_MAX_PARTICLES,\n  shouldDebugTextureAtlas: false,\n  shouldForceDesktopRenderer: false,\n  shouldForceMobileRenderer: false\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYX1BBUlRJQ0xFUyIsIkRFRkFVTFRfUkVOREVSRVJfT1BUSU9OUyIsImJsZW5kaW5nIiwiYmFzZUNvbG9yIiwiZGVwdGhUZXN0IiwiZGVwdGhXcml0ZSIsInRyYW5zcGFyZW50IiwibWF4UGFydGljbGVzIiwic2hvdWxkRGVidWdUZXh0dXJlQXRsYXMiLCJzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlciIsInNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHFCQUFULFFBQXNDLDRCQUF0QztBQUVBLE9BQU8sTUFBTUMsd0JBQXdCLEdBQUc7QUFDdENDLEVBQUFBLFFBQVEsRUFBRSxrQkFENEI7QUFFdENDLEVBQUFBLFNBQVMsRUFBRSxRQUYyQjtBQUd0Q0MsRUFBQUEsU0FBUyxFQUFFLElBSDJCO0FBSXRDQyxFQUFBQSxVQUFVLEVBQUUsS0FKMEI7QUFLdENDLEVBQUFBLFdBQVcsRUFBRSxJQUx5QjtBQU10Q0MsRUFBQUEsWUFBWSxFQUFFUCxxQkFOd0I7QUFPdENRLEVBQUFBLHVCQUF1QixFQUFFLEtBUGE7QUFRdENDLEVBQUFBLDBCQUEwQixFQUFFLEtBUlU7QUFTdENDLEVBQUFBLHlCQUF5QixFQUFFO0FBVFcsQ0FBakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX01BWF9QQVJUSUNMRVMgfSBmcm9tICcuL1BhcnRpY2xlQnVmZmVyL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMgPSB7XG4gIGJsZW5kaW5nOiAnQWRkaXRpdmVCbGVuZGluZycsXG4gIGJhc2VDb2xvcjogMHhmZmZmZmYsXG4gIGRlcHRoVGVzdDogdHJ1ZSxcbiAgZGVwdGhXcml0ZTogZmFsc2UsXG4gIHRyYW5zcGFyZW50OiB0cnVlLFxuICBtYXhQYXJ0aWNsZXM6IERFRkFVTFRfTUFYX1BBUlRJQ0xFUyxcbiAgc2hvdWxkRGVidWdUZXh0dXJlQXRsYXM6IGZhbHNlLFxuICBzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlcjogZmFsc2UsXG4gIHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXI6IGZhbHNlLFxufTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/index.js",
    "content": "export { Target, UniqueList } from './stores';\nexport { default as ParticleBuffer } from './ParticleBuffer';\nexport { default as TextureAtlas } from './TextureAtlas';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vaW5kZXguanMiXSwibmFtZXMiOlsiVGFyZ2V0IiwiVW5pcXVlTGlzdCIsImRlZmF1bHQiLCJQYXJ0aWNsZUJ1ZmZlciIsIlRleHR1cmVBdGxhcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBVCxFQUFpQkMsVUFBakIsUUFBbUMsVUFBbkM7QUFDQSxTQUFTQyxPQUFPLElBQUlDLGNBQXBCLFFBQTBDLGtCQUExQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsWUFBcEIsUUFBd0MsZ0JBQXhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGFyZ2V0LCBVbmlxdWVMaXN0IH0gZnJvbSAnLi9zdG9yZXMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXJ0aWNsZUJ1ZmZlciB9IGZyb20gJy4vUGFydGljbGVCdWZmZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0dXJlQXRsYXMgfSBmcm9tICcuL1RleHR1cmVBdGxhcyc7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/shaders/constants.js",
    "content": "export const SIZE_ATTENUATION_FACTOR = '600.0';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc2hhZGVycy9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiU0laRV9BVFRFTlVBVElPTl9GQUNUT1IiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsdUJBQXVCLEdBQUcsT0FBaEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0laRV9BVFRFTlVBVElPTl9GQUNUT1IgPSAnNjAwLjAnO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/stores/Target.js",
    "content": "/**\n * Simple class that stores the particle's \"target\" or \"next\" state.\n *\n */\nexport class Target {\n  constructor(THREE) {\n    this.position = new THREE.Vector3();\n    this.rotation = new THREE.Vector3();\n    this.size = 0;\n    this.color = new THREE.Color();\n    this.alpha = 0;\n    this.texture = null;\n    this.index = 0;\n  }\n\n  reset() {\n    this.position.set(0, 0, 0);\n    this.rotation.set(0, 0, 0);\n    this.size = 0;\n    this.color.setRGB(0, 0, 0);\n    this.alpha = 0;\n    this.texture = null;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL1RhcmdldC5qcyJdLCJuYW1lcyI6WyJUYXJnZXQiLCJjb25zdHJ1Y3RvciIsIlRIUkVFIiwicG9zaXRpb24iLCJWZWN0b3IzIiwicm90YXRpb24iLCJzaXplIiwiY29sb3IiLCJDb2xvciIsImFscGhhIiwidGV4dHVyZSIsImluZGV4IiwicmVzZXQiLCJzZXQiLCJzZXRSR0IiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxNQUFNQSxNQUFOLENBQWE7QUFDbEJDLEVBQUFBLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2pCLFNBQUtDLFFBQUwsR0FBZ0IsSUFBSUQsS0FBSyxDQUFDRSxPQUFWLEVBQWhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixJQUFJSCxLQUFLLENBQUNFLE9BQVYsRUFBaEI7QUFDQSxTQUFLRSxJQUFMLEdBQVksQ0FBWjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxJQUFJTCxLQUFLLENBQUNNLEtBQVYsRUFBYjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxDQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLQyxLQUFMLEdBQWEsQ0FBYjtBQUNEOztBQUVEQyxFQUFBQSxLQUFLLEdBQUc7QUFDTixTQUFLVCxRQUFMLENBQWNVLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEI7QUFDQSxTQUFLUixRQUFMLENBQWNRLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEI7QUFDQSxTQUFLUCxJQUFMLEdBQVksQ0FBWjtBQUNBLFNBQUtDLEtBQUwsQ0FBV08sTUFBWCxDQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QixDQUF4QjtBQUNBLFNBQUtMLEtBQUwsR0FBYSxDQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDRDs7QUFsQmlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaW1wbGUgY2xhc3MgdGhhdCBzdG9yZXMgdGhlIHBhcnRpY2xlJ3MgXCJ0YXJnZXRcIiBvciBcIm5leHRcIiBzdGF0ZS5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXQge1xuICBjb25zdHJ1Y3RvcihUSFJFRSkge1xuICAgIHRoaXMucG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgIHRoaXMucm90YXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgdGhpcy5jb2xvciA9IG5ldyBUSFJFRS5Db2xvcigpO1xuICAgIHRoaXMuYWxwaGEgPSAwO1xuICAgIHRoaXMudGV4dHVyZSA9IG51bGw7XG4gICAgdGhpcy5pbmRleCA9IDA7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnBvc2l0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLnJvdGF0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLnNpemUgPSAwO1xuICAgIHRoaXMuY29sb3Iuc2V0UkdCKDAsIDAsIDApO1xuICAgIHRoaXMuYWxwaGEgPSAwO1xuICAgIHRoaXMudGV4dHVyZSA9IG51bGw7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/stores/UniqueList.js",
    "content": "/**\n * Map of particle IDs to integer ids\n */\nexport class UniqueList {\n  constructor(max = Infinity) {\n    this.max = max;\n    this.count = 0;\n    this._items = {};\n  }\n\n  add(item) {\n    if (this._items[item] !== undefined) {\n      return;\n    }\n\n    this._items[item] = this.count++;\n  }\n\n  find(item) {\n    return this._items[item];\n  }\n\n  destroy() {\n    this._items = {};\n    this.count = 0;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL1VuaXF1ZUxpc3QuanMiXSwibmFtZXMiOlsiVW5pcXVlTGlzdCIsImNvbnN0cnVjdG9yIiwibWF4IiwiSW5maW5pdHkiLCJjb3VudCIsIl9pdGVtcyIsImFkZCIsIml0ZW0iLCJ1bmRlZmluZWQiLCJmaW5kIiwiZGVzdHJveSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsT0FBTyxNQUFNQSxVQUFOLENBQWlCO0FBQ3RCQyxFQUFBQSxXQUFXLENBQUNDLEdBQUcsR0FBR0MsUUFBUCxFQUFpQjtBQUMxQixTQUFLRCxHQUFMLEdBQVdBLEdBQVg7QUFDQSxTQUFLRSxLQUFMLEdBQWEsQ0FBYjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0Q7O0FBRURDLEVBQUFBLEdBQUcsQ0FBQ0MsSUFBRCxFQUFPO0FBQ1IsUUFBSSxLQUFLRixNQUFMLENBQVlFLElBQVosTUFBc0JDLFNBQTFCLEVBQXFDO0FBQ25DO0FBQ0Q7O0FBRUQsU0FBS0gsTUFBTCxDQUFZRSxJQUFaLElBQW9CLEtBQUtILEtBQUwsRUFBcEI7QUFDRDs7QUFFREssRUFBQUEsSUFBSSxDQUFDRixJQUFELEVBQU87QUFDVCxXQUFPLEtBQUtGLE1BQUwsQ0FBWUUsSUFBWixDQUFQO0FBQ0Q7O0FBRURHLEVBQUFBLE9BQU8sR0FBRztBQUNSLFNBQUtMLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0QsS0FBTCxHQUFhLENBQWI7QUFDRDs7QUF0QnFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYXAgb2YgcGFydGljbGUgSURzIHRvIGludGVnZXIgaWRzXG4gKi9cbmV4cG9ydCBjbGFzcyBVbmlxdWVMaXN0IHtcbiAgY29uc3RydWN0b3IobWF4ID0gSW5maW5pdHkpIHtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLmNvdW50ID0gMDtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICB9XG5cbiAgYWRkKGl0ZW0pIHtcbiAgICBpZiAodGhpcy5faXRlbXNbaXRlbV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2l0ZW1zW2l0ZW1dID0gdGhpcy5jb3VudCsrO1xuICB9XG5cbiAgZmluZChpdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zW2l0ZW1dO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICAgIHRoaXMuY291bnQgPSAwO1xuICB9XG59XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/stores/index.js",
    "content": "export { Target } from './Target';\nexport { UniqueList } from './UniqueList';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlRhcmdldCIsIlVuaXF1ZUxpc3QiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQVQsUUFBdUIsVUFBdkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLGNBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGFyZ2V0IH0gZnJvbSAnLi9UYXJnZXQnO1xuZXhwb3J0IHsgVW5pcXVlTGlzdCB9IGZyb20gJy4vVW5pcXVlTGlzdCc7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/index.js",
    "content": "import BaseRenderer from '../BaseRenderer';\nimport { DEFAULT_RENDERER_OPTIONS } from './common/constants';\nimport DesktopGPURenderer from './Desktop';\nimport MobileGPURenderer from './Mobile';\nimport { RENDERER_TYPE_GPU } from '../types';\n/**\n * Performant particle renderer that uses THREE.Points to propagate particle (postiion, rgba etc.,) properties to\n * vertices in a ParticleBufferGeometry.\n * Uses a dynamic texture atlas to support systems with mutliple sprites in a performant way.\n *\n * NOTE! This is an experimental renderer and is currently not covered by tests, coverage will be added when the API\n * is more stable. Currently only compatible with sprite/texture based systems. Meshes are not yet supported.\n *\n * @author thrax <manthrax@gmail.com>\n * @author rohan-deshpande <rohan@creativelifeform.com>\n */\n\nexport default class GPURenderer extends BaseRenderer {\n  constructor(container, THREE, options = DEFAULT_RENDERER_OPTIONS) {\n    super(RENDERER_TYPE_GPU);\n    const {\n      shouldForceDesktopRenderer,\n      shouldForceMobileRenderer\n    } = options;\n    const args = [container, THREE, options];\n\n    if (shouldForceDesktopRenderer) {\n      return new DesktopGPURenderer(...args);\n    }\n\n    if (shouldForceMobileRenderer) {\n      return new MobileGPURenderer(...args);\n    }\n\n    if (!this.isFloatingPointTextureSupported()) {\n      return new MobileGPURenderer(...args);\n    }\n\n    return new DesktopGPURenderer(...args);\n  }\n\n  isFloatingPointTextureSupported() {\n    const canvas = document.createElement('canvas');\n\n    if (window.WebGL2RenderingContext && canvas.getContext('webgl2')) {\n      // return false here to test the mobile renderer on desktop\n      return true;\n    }\n\n    const gl = canvas.getContext('webgl');\n    const support = !!gl.getExtension('OES_texture_float');\n    canvas.remove();\n    return support;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJCYXNlUmVuZGVyZXIiLCJERUZBVUxUX1JFTkRFUkVSX09QVElPTlMiLCJEZXNrdG9wR1BVUmVuZGVyZXIiLCJNb2JpbGVHUFVSZW5kZXJlciIsIlJFTkRFUkVSX1RZUEVfR1BVIiwiR1BVUmVuZGVyZXIiLCJjb25zdHJ1Y3RvciIsImNvbnRhaW5lciIsIlRIUkVFIiwib3B0aW9ucyIsInNob3VsZEZvcmNlRGVza3RvcFJlbmRlcmVyIiwic2hvdWxkRm9yY2VNb2JpbGVSZW5kZXJlciIsImFyZ3MiLCJpc0Zsb2F0aW5nUG9pbnRUZXh0dXJlU3VwcG9ydGVkIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luZG93IiwiV2ViR0wyUmVuZGVyaW5nQ29udGV4dCIsImdldENvbnRleHQiLCJnbCIsInN1cHBvcnQiLCJnZXRFeHRlbnNpb24iLCJyZW1vdmUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsaUJBQXpCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsb0JBQXpDO0FBQ0EsT0FBT0Msa0JBQVAsTUFBK0IsV0FBL0I7QUFDQSxPQUFPQyxpQkFBUCxNQUE4QixVQUE5QjtBQUNBLFNBQVNDLGlCQUFULFFBQWtDLFVBQWxDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFdBQU4sU0FBMEJMLFlBQTFCLENBQXVDO0FBQ3BETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUcsaUJBQU47QUFFQSxVQUFNO0FBQUVNLE1BQUFBLDBCQUFGO0FBQThCQyxNQUFBQTtBQUE5QixRQUE0REYsT0FBbEU7QUFDQSxVQUFNRyxJQUFJLEdBQUcsQ0FBQ0wsU0FBRCxFQUFZQyxLQUFaLEVBQW1CQyxPQUFuQixDQUFiOztBQUVBLFFBQUlDLDBCQUFKLEVBQWdDO0FBQzlCLGFBQU8sSUFBSVIsa0JBQUosQ0FBdUIsR0FBR1UsSUFBMUIsQ0FBUDtBQUNEOztBQUVELFFBQUlELHlCQUFKLEVBQStCO0FBQzdCLGFBQU8sSUFBSVIsaUJBQUosQ0FBc0IsR0FBR1MsSUFBekIsQ0FBUDtBQUNEOztBQUVELFFBQUksQ0FBQyxLQUFLQywrQkFBTCxFQUFMLEVBQTZDO0FBQzNDLGFBQU8sSUFBSVYsaUJBQUosQ0FBc0IsR0FBR1MsSUFBekIsQ0FBUDtBQUNEOztBQUVELFdBQU8sSUFBSVYsa0JBQUosQ0FBdUIsR0FBR1UsSUFBMUIsQ0FBUDtBQUNEOztBQUVEQyxFQUFBQSwrQkFBK0IsR0FBRztBQUNoQyxVQUFNQyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixRQUF2QixDQUFmOztBQUVBLFFBQUlDLE1BQU0sQ0FBQ0Msc0JBQVAsSUFBaUNKLE1BQU0sQ0FBQ0ssVUFBUCxDQUFrQixRQUFsQixDQUFyQyxFQUFrRTtBQUNoRTtBQUNBLGFBQU8sSUFBUDtBQUNEOztBQUVELFVBQU1DLEVBQUUsR0FBR04sTUFBTSxDQUFDSyxVQUFQLENBQWtCLE9BQWxCLENBQVg7QUFDQSxVQUFNRSxPQUFPLEdBQUcsQ0FBQyxDQUFDRCxFQUFFLENBQUNFLFlBQUgsQ0FBZ0IsbUJBQWhCLENBQWxCO0FBRUFSLElBQUFBLE1BQU0sQ0FBQ1MsTUFBUDtBQUVBLFdBQU9GLE9BQVA7QUFDRDs7QUFwQ21EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VSZW5kZXJlciBmcm9tICcuLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgREVGQVVMVF9SRU5ERVJFUl9PUFRJT05TIH0gZnJvbSAnLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCBEZXNrdG9wR1BVUmVuZGVyZXIgZnJvbSAnLi9EZXNrdG9wJztcbmltcG9ydCBNb2JpbGVHUFVSZW5kZXJlciBmcm9tICcuL01vYmlsZSc7XG5pbXBvcnQgeyBSRU5ERVJFUl9UWVBFX0dQVSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBQZXJmb3JtYW50IHBhcnRpY2xlIHJlbmRlcmVyIHRoYXQgdXNlcyBUSFJFRS5Qb2ludHMgdG8gcHJvcGFnYXRlIHBhcnRpY2xlIChwb3N0aWlvbiwgcmdiYSBldGMuLCkgcHJvcGVydGllcyB0b1xuICogdmVydGljZXMgaW4gYSBQYXJ0aWNsZUJ1ZmZlckdlb21ldHJ5LlxuICogVXNlcyBhIGR5bmFtaWMgdGV4dHVyZSBhdGxhcyB0byBzdXBwb3J0IHN5c3RlbXMgd2l0aCBtdXRsaXBsZSBzcHJpdGVzIGluIGEgcGVyZm9ybWFudCB3YXkuXG4gKlxuICogTk9URSEgVGhpcyBpcyBhbiBleHBlcmltZW50YWwgcmVuZGVyZXIgYW5kIGlzIGN1cnJlbnRseSBub3QgY292ZXJlZCBieSB0ZXN0cywgY292ZXJhZ2Ugd2lsbCBiZSBhZGRlZCB3aGVuIHRoZSBBUElcbiAqIGlzIG1vcmUgc3RhYmxlLiBDdXJyZW50bHkgb25seSBjb21wYXRpYmxlIHdpdGggc3ByaXRlL3RleHR1cmUgYmFzZWQgc3lzdGVtcy4gTWVzaGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC5cbiAqXG4gKiBAYXV0aG9yIHRocmF4IDxtYW50aHJheEBnbWFpbC5jb20+XG4gKiBAYXV0aG9yIHJvaGFuLWRlc2hwYW5kZSA8cm9oYW5AY3JlYXRpdmVsaWZlZm9ybS5jb20+XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdQVVJlbmRlcmVyIGV4dGVuZHMgQmFzZVJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IoY29udGFpbmVyLCBUSFJFRSwgb3B0aW9ucyA9IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUykge1xuICAgIHN1cGVyKFJFTkRFUkVSX1RZUEVfR1BVKTtcblxuICAgIGNvbnN0IHsgc2hvdWxkRm9yY2VEZXNrdG9wUmVuZGVyZXIsIHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgYXJncyA9IFtjb250YWluZXIsIFRIUkVFLCBvcHRpb25zXTtcblxuICAgIGlmIChzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlcikge1xuICAgICAgcmV0dXJuIG5ldyBEZXNrdG9wR1BVUmVuZGVyZXIoLi4uYXJncyk7XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIpIHtcbiAgICAgIHJldHVybiBuZXcgTW9iaWxlR1BVUmVuZGVyZXIoLi4uYXJncyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzRmxvYXRpbmdQb2ludFRleHR1cmVTdXBwb3J0ZWQoKSkge1xuICAgICAgcmV0dXJuIG5ldyBNb2JpbGVHUFVSZW5kZXJlciguLi5hcmdzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERlc2t0b3BHUFVSZW5kZXJlciguLi5hcmdzKTtcbiAgfVxuXG4gIGlzRmxvYXRpbmdQb2ludFRleHR1cmVTdXBwb3J0ZWQoKSB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cbiAgICBpZiAod2luZG93LldlYkdMMlJlbmRlcmluZ0NvbnRleHQgJiYgY2FudmFzLmdldENvbnRleHQoJ3dlYmdsMicpKSB7XG4gICAgICAvLyByZXR1cm4gZmFsc2UgaGVyZSB0byB0ZXN0IHRoZSBtb2JpbGUgcmVuZGVyZXIgb24gZGVza3RvcFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZ2wgPSBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKTtcbiAgICBjb25zdCBzdXBwb3J0ID0gISFnbC5nZXRFeHRlbnNpb24oJ09FU190ZXh0dXJlX2Zsb2F0Jyk7XG5cbiAgICBjYW52YXMucmVtb3ZlKCk7XG5cbiAgICByZXR1cm4gc3VwcG9ydDtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/MeshRenderer.js",
    "content": "import BaseRenderer from './BaseRenderer';\nimport { PUID } from '../utils';\nimport { Pool } from '../core';\nimport { RENDERER_TYPE_MESH as type } from './types';\n/**\n * @requires THREE - { Mesh, BoxGeometry, MeshLambertMaterial }\n */\n\nexport default class MeshRenderer extends BaseRenderer {\n  /**\n   * @param {object} container - An Object3D container, usually a THREE.Scene\n   * @param {object} THREE - THREE Api\n   */\n  constructor(container, THREE) {\n    super(type);\n    this.container = container;\n    this._targetPool = new Pool();\n    this._materialPool = new Pool();\n    this._body = new THREE.Mesh(new THREE.BoxGeometry(50, 50, 50), new THREE.MeshLambertMaterial({\n      color: '#ff0000'\n    }));\n  }\n\n  isThreeSprite(particle) {\n    return particle.target.isSprite;\n  }\n\n  onSystemUpdate() {}\n\n  onParticleCreated(particle) {\n    if (!particle.target) {\n      //set target\n      if (!particle.body) particle.body = this._body;\n      particle.target = this._targetPool.get(particle.body); //set material\n\n      if (particle.useAlpha || particle.useColor) {\n        particle.target.material.__puid = PUID.id(particle.body.material);\n        particle.target.material = this._materialPool.get(particle.target.material);\n      }\n    }\n\n    if (particle.target) {\n      particle.target.position.copy(particle.position);\n      this.container.add(particle.target);\n    }\n  }\n\n  onParticleUpdate(particle) {\n    const {\n      target,\n      useAlpha,\n      useColor\n    } = particle;\n\n    if (!target) {\n      return;\n    }\n\n    target.position.copy(particle.position);\n    this.rotate(particle);\n    this.scale(particle);\n\n    if (useAlpha) {\n      target.material.opacity = particle.alpha;\n      target.material.transparent = true;\n    }\n\n    if (useColor) {\n      target.material.color.copy(particle.color);\n    }\n  }\n\n  rotate(particle) {\n    particle.target.rotation.set(particle.rotation.x, particle.rotation.y, particle.rotation.z);\n  }\n\n  scale(particle) {\n    particle.target.scale.set(particle.scale, particle.scale, particle.scale);\n  }\n\n  onParticleDead(particle) {\n    if (particle.target) {\n      if (particle.useAlpha || particle.useColor) this._materialPool.expire(particle.target.material);\n\n      this._targetPool.expire(particle.target);\n\n      this.container.remove(particle.target);\n      particle.target = null;\n    }\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9NZXNoUmVuZGVyZXIuanMiXSwibmFtZXMiOlsiQmFzZVJlbmRlcmVyIiwiUFVJRCIsIlBvb2wiLCJSRU5ERVJFUl9UWVBFX01FU0giLCJ0eXBlIiwiTWVzaFJlbmRlcmVyIiwiY29uc3RydWN0b3IiLCJjb250YWluZXIiLCJUSFJFRSIsIl90YXJnZXRQb29sIiwiX21hdGVyaWFsUG9vbCIsIl9ib2R5IiwiTWVzaCIsIkJveEdlb21ldHJ5IiwiTWVzaExhbWJlcnRNYXRlcmlhbCIsImNvbG9yIiwiaXNUaHJlZVNwcml0ZSIsInBhcnRpY2xlIiwidGFyZ2V0IiwiaXNTcHJpdGUiLCJvblN5c3RlbVVwZGF0ZSIsIm9uUGFydGljbGVDcmVhdGVkIiwiYm9keSIsImdldCIsInVzZUFscGhhIiwidXNlQ29sb3IiLCJtYXRlcmlhbCIsIl9fcHVpZCIsImlkIiwicG9zaXRpb24iLCJjb3B5IiwiYWRkIiwib25QYXJ0aWNsZVVwZGF0ZSIsInJvdGF0ZSIsInNjYWxlIiwib3BhY2l0eSIsImFscGhhIiwidHJhbnNwYXJlbnQiLCJyb3RhdGlvbiIsInNldCIsIngiLCJ5IiwieiIsIm9uUGFydGljbGVEZWFkIiwiZXhwaXJlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFQLE1BQXlCLGdCQUF6QjtBQUNBLFNBQVNDLElBQVQsUUFBcUIsVUFBckI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLFNBQXJCO0FBQ0EsU0FBU0Msa0JBQWtCLElBQUlDLElBQS9CLFFBQTJDLFNBQTNDO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsWUFBTixTQUEyQkwsWUFBM0IsQ0FBd0M7QUFDckQ7QUFDRjtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxTQUFELEVBQVlDLEtBQVosRUFBbUI7QUFDNUIsVUFBTUosSUFBTjtBQUVBLFNBQUtHLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0EsU0FBS0UsV0FBTCxHQUFtQixJQUFJUCxJQUFKLEVBQW5CO0FBQ0EsU0FBS1EsYUFBTCxHQUFxQixJQUFJUixJQUFKLEVBQXJCO0FBQ0EsU0FBS1MsS0FBTCxHQUFhLElBQUlILEtBQUssQ0FBQ0ksSUFBVixDQUNYLElBQUlKLEtBQUssQ0FBQ0ssV0FBVixDQUFzQixFQUF0QixFQUEwQixFQUExQixFQUE4QixFQUE5QixDQURXLEVBRVgsSUFBSUwsS0FBSyxDQUFDTSxtQkFBVixDQUE4QjtBQUFFQyxNQUFBQSxLQUFLLEVBQUU7QUFBVCxLQUE5QixDQUZXLENBQWI7QUFJRDs7QUFFREMsRUFBQUEsYUFBYSxDQUFDQyxRQUFELEVBQVc7QUFDdEIsV0FBT0EsUUFBUSxDQUFDQyxNQUFULENBQWdCQyxRQUF2QjtBQUNEOztBQUVEQyxFQUFBQSxjQUFjLEdBQUcsQ0FBRTs7QUFFbkJDLEVBQUFBLGlCQUFpQixDQUFDSixRQUFELEVBQVc7QUFDMUIsUUFBSSxDQUFDQSxRQUFRLENBQUNDLE1BQWQsRUFBc0I7QUFDcEI7QUFDQSxVQUFJLENBQUNELFFBQVEsQ0FBQ0ssSUFBZCxFQUFvQkwsUUFBUSxDQUFDSyxJQUFULEdBQWdCLEtBQUtYLEtBQXJCO0FBQ3BCTSxNQUFBQSxRQUFRLENBQUNDLE1BQVQsR0FBa0IsS0FBS1QsV0FBTCxDQUFpQmMsR0FBakIsQ0FBcUJOLFFBQVEsQ0FBQ0ssSUFBOUIsQ0FBbEIsQ0FIb0IsQ0FLcEI7O0FBQ0EsVUFBSUwsUUFBUSxDQUFDTyxRQUFULElBQXFCUCxRQUFRLENBQUNRLFFBQWxDLEVBQTRDO0FBQzFDUixRQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBQWhCLENBQXlCQyxNQUF6QixHQUFrQzFCLElBQUksQ0FBQzJCLEVBQUwsQ0FBUVgsUUFBUSxDQUFDSyxJQUFULENBQWNJLFFBQXRCLENBQWxDO0FBQ0FULFFBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQlEsUUFBaEIsR0FBMkIsS0FBS2hCLGFBQUwsQ0FBbUJhLEdBQW5CLENBQ3pCTixRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBRFMsQ0FBM0I7QUFHRDtBQUNGOztBQUVELFFBQUlULFFBQVEsQ0FBQ0MsTUFBYixFQUFxQjtBQUNuQkQsTUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCVyxRQUFoQixDQUF5QkMsSUFBekIsQ0FBOEJiLFFBQVEsQ0FBQ1ksUUFBdkM7QUFDQSxXQUFLdEIsU0FBTCxDQUFld0IsR0FBZixDQUFtQmQsUUFBUSxDQUFDQyxNQUE1QjtBQUNEO0FBQ0Y7O0FBRURjLEVBQUFBLGdCQUFnQixDQUFDZixRQUFELEVBQVc7QUFDekIsVUFBTTtBQUFFQyxNQUFBQSxNQUFGO0FBQVVNLE1BQUFBLFFBQVY7QUFBb0JDLE1BQUFBO0FBQXBCLFFBQWlDUixRQUF2Qzs7QUFFQSxRQUFJLENBQUNDLE1BQUwsRUFBYTtBQUNYO0FBQ0Q7O0FBRURBLElBQUFBLE1BQU0sQ0FBQ1csUUFBUCxDQUFnQkMsSUFBaEIsQ0FBcUJiLFFBQVEsQ0FBQ1ksUUFBOUI7QUFFQSxTQUFLSSxNQUFMLENBQVloQixRQUFaO0FBRUEsU0FBS2lCLEtBQUwsQ0FBV2pCLFFBQVg7O0FBRUEsUUFBSU8sUUFBSixFQUFjO0FBQ1pOLE1BQUFBLE1BQU0sQ0FBQ1EsUUFBUCxDQUFnQlMsT0FBaEIsR0FBMEJsQixRQUFRLENBQUNtQixLQUFuQztBQUNBbEIsTUFBQUEsTUFBTSxDQUFDUSxRQUFQLENBQWdCVyxXQUFoQixHQUE4QixJQUE5QjtBQUNEOztBQUVELFFBQUlaLFFBQUosRUFBYztBQUNaUCxNQUFBQSxNQUFNLENBQUNRLFFBQVAsQ0FBZ0JYLEtBQWhCLENBQXNCZSxJQUF0QixDQUEyQmIsUUFBUSxDQUFDRixLQUFwQztBQUNEO0FBQ0Y7O0FBRURrQixFQUFBQSxNQUFNLENBQUNoQixRQUFELEVBQVc7QUFDZkEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCb0IsUUFBaEIsQ0FBeUJDLEdBQXpCLENBQTZCdEIsUUFBUSxDQUFDcUIsUUFBVCxDQUFrQkUsQ0FBL0MsRUFBa0R2QixRQUFRLENBQUNxQixRQUFULENBQWtCRyxDQUFwRSxFQUF1RXhCLFFBQVEsQ0FBQ3FCLFFBQVQsQ0FBa0JJLENBQXpGO0FBQ0Q7O0FBRURSLEVBQUFBLEtBQUssQ0FBQ2pCLFFBQUQsRUFBVztBQUNkQSxJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JnQixLQUFoQixDQUFzQkssR0FBdEIsQ0FBMEJ0QixRQUFRLENBQUNpQixLQUFuQyxFQUEwQ2pCLFFBQVEsQ0FBQ2lCLEtBQW5ELEVBQTBEakIsUUFBUSxDQUFDaUIsS0FBbkU7QUFDRDs7QUFFRFMsRUFBQUEsY0FBYyxDQUFDMUIsUUFBRCxFQUFXO0FBQ3ZCLFFBQUlBLFFBQVEsQ0FBQ0MsTUFBYixFQUFxQjtBQUNuQixVQUFJRCxRQUFRLENBQUNPLFFBQVQsSUFBcUJQLFFBQVEsQ0FBQ1EsUUFBbEMsRUFDRSxLQUFLZixhQUFMLENBQW1Ca0MsTUFBbkIsQ0FBMEIzQixRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBQTFDOztBQUVGLFdBQUtqQixXQUFMLENBQWlCbUMsTUFBakIsQ0FBd0IzQixRQUFRLENBQUNDLE1BQWpDOztBQUNBLFdBQUtYLFNBQUwsQ0FBZXNDLE1BQWYsQ0FBc0I1QixRQUFRLENBQUNDLE1BQS9CO0FBQ0FELE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxHQUFrQixJQUFsQjtBQUNEO0FBQ0Y7O0FBcEZvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgUFVJRCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFBvb2wgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7IFJFTkRFUkVSX1RZUEVfTUVTSCBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQHJlcXVpcmVzIFRIUkVFIC0geyBNZXNoLCBCb3hHZW9tZXRyeSwgTWVzaExhbWJlcnRNYXRlcmlhbCB9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lc2hSZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGFpbmVyIC0gQW4gT2JqZWN0M0QgY29udGFpbmVyLCB1c3VhbGx5IGEgVEhSRUUuU2NlbmVcbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVEhSRUUgQXBpXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb250YWluZXIsIFRIUkVFKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB0aGlzLl90YXJnZXRQb29sID0gbmV3IFBvb2woKTtcbiAgICB0aGlzLl9tYXRlcmlhbFBvb2wgPSBuZXcgUG9vbCgpO1xuICAgIHRoaXMuX2JvZHkgPSBuZXcgVEhSRUUuTWVzaChcbiAgICAgIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSg1MCwgNTAsIDUwKSxcbiAgICAgIG5ldyBUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsKHsgY29sb3I6ICcjZmYwMDAwJyB9KVxuICAgICk7XG4gIH1cblxuICBpc1RocmVlU3ByaXRlKHBhcnRpY2xlKSB7XG4gICAgcmV0dXJuIHBhcnRpY2xlLnRhcmdldC5pc1Nwcml0ZTtcbiAgfVxuXG4gIG9uU3lzdGVtVXBkYXRlKCkge31cblxuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICAvL3NldCB0YXJnZXRcbiAgICAgIGlmICghcGFydGljbGUuYm9keSkgcGFydGljbGUuYm9keSA9IHRoaXMuX2JvZHk7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQgPSB0aGlzLl90YXJnZXRQb29sLmdldChwYXJ0aWNsZS5ib2R5KTtcblxuICAgICAgLy9zZXQgbWF0ZXJpYWxcbiAgICAgIGlmIChwYXJ0aWNsZS51c2VBbHBoYSB8fCBwYXJ0aWNsZS51c2VDb2xvcikge1xuICAgICAgICBwYXJ0aWNsZS50YXJnZXQubWF0ZXJpYWwuX19wdWlkID0gUFVJRC5pZChwYXJ0aWNsZS5ib2R5Lm1hdGVyaWFsKTtcbiAgICAgICAgcGFydGljbGUudGFyZ2V0Lm1hdGVyaWFsID0gdGhpcy5fbWF0ZXJpYWxQb29sLmdldChcbiAgICAgICAgICBwYXJ0aWNsZS50YXJnZXQubWF0ZXJpYWxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQucG9zaXRpb24uY29weShwYXJ0aWNsZS5wb3NpdGlvbik7XG4gICAgICB0aGlzLmNvbnRhaW5lci5hZGQocGFydGljbGUudGFyZ2V0KTtcbiAgICB9XG4gIH1cblxuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgeyB0YXJnZXQsIHVzZUFscGhhLCB1c2VDb2xvciB9ID0gcGFydGljbGU7XG5cbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhcmdldC5wb3NpdGlvbi5jb3B5KHBhcnRpY2xlLnBvc2l0aW9uKTtcblxuICAgIHRoaXMucm90YXRlKHBhcnRpY2xlKTtcblxuICAgIHRoaXMuc2NhbGUocGFydGljbGUpO1xuXG4gICAgaWYgKHVzZUFscGhhKSB7XG4gICAgICB0YXJnZXQubWF0ZXJpYWwub3BhY2l0eSA9IHBhcnRpY2xlLmFscGhhO1xuICAgICAgdGFyZ2V0Lm1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodXNlQ29sb3IpIHtcbiAgICAgIHRhcmdldC5tYXRlcmlhbC5jb2xvci5jb3B5KHBhcnRpY2xlLmNvbG9yKTtcbiAgICB9XG4gIH1cblxuICByb3RhdGUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS50YXJnZXQucm90YXRpb24uc2V0KHBhcnRpY2xlLnJvdGF0aW9uLngsIHBhcnRpY2xlLnJvdGF0aW9uLnksIHBhcnRpY2xlLnJvdGF0aW9uLnopO1xuICB9XG5cbiAgc2NhbGUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS50YXJnZXQuc2NhbGUuc2V0KHBhcnRpY2xlLnNjYWxlLCBwYXJ0aWNsZS5zY2FsZSwgcGFydGljbGUuc2NhbGUpO1xuICB9XG5cbiAgb25QYXJ0aWNsZURlYWQocGFydGljbGUpIHtcbiAgICBpZiAocGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBpZiAocGFydGljbGUudXNlQWxwaGEgfHwgcGFydGljbGUudXNlQ29sb3IpXG4gICAgICAgIHRoaXMuX21hdGVyaWFsUG9vbC5leHBpcmUocGFydGljbGUudGFyZ2V0Lm1hdGVyaWFsKTtcblxuICAgICAgdGhpcy5fdGFyZ2V0UG9vbC5leHBpcmUocGFydGljbGUudGFyZ2V0KTtcbiAgICAgIHRoaXMuY29udGFpbmVyLnJlbW92ZShwYXJ0aWNsZS50YXJnZXQpO1xuICAgICAgcGFydGljbGUudGFyZ2V0ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/SpriteRenderer.js",
    "content": "import MeshRenderer from './MeshRenderer';\nimport { RENDERER_TYPE_SPRITE as type } from './types';\n/**\n * @requires THREE - { Mesh, BoxGeometry, MeshLambertMaterial, Sprite, SpriteMaterial }\n */\n\nexport default class SpriteRenderer extends MeshRenderer {\n  constructor(container, THREE) {\n    super(container, THREE);\n    /**\n     * @desc The class type.\n     * @type {string}\n     */\n\n    this.type = type;\n    this._body = new THREE.Sprite(new THREE.SpriteMaterial({\n      color: 0xffffff\n    }));\n  }\n\n  rotate(particle) {\n    particle.target.material.rotation = particle.rotation.z;\n  }\n\n  scale(particle) {\n    particle.target.scale.set(particle.scale * particle.radius, particle.scale * particle.radius, 1);\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9TcHJpdGVSZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJNZXNoUmVuZGVyZXIiLCJSRU5ERVJFUl9UWVBFX1NQUklURSIsInR5cGUiLCJTcHJpdGVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwiVEhSRUUiLCJfYm9keSIsIlNwcml0ZSIsIlNwcml0ZU1hdGVyaWFsIiwiY29sb3IiLCJyb3RhdGUiLCJwYXJ0aWNsZSIsInRhcmdldCIsIm1hdGVyaWFsIiwicm90YXRpb24iLCJ6Iiwic2NhbGUiLCJzZXQiLCJyYWRpdXMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsZ0JBQXpCO0FBQ0EsU0FBU0Msb0JBQW9CLElBQUlDLElBQWpDLFFBQTZDLFNBQTdDO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsWUFBN0IsQ0FBMEM7QUFDdkRJLEVBQUFBLFdBQVcsQ0FBQ0MsU0FBRCxFQUFZQyxLQUFaLEVBQW1CO0FBQzVCLFVBQU1ELFNBQU4sRUFBaUJDLEtBQWpCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0osSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0ssS0FBTCxHQUFhLElBQUlELEtBQUssQ0FBQ0UsTUFBVixDQUNYLElBQUlGLEtBQUssQ0FBQ0csY0FBVixDQUF5QjtBQUFFQyxNQUFBQSxLQUFLLEVBQUU7QUFBVCxLQUF6QixDQURXLENBQWI7QUFHRDs7QUFFREMsRUFBQUEsTUFBTSxDQUFDQyxRQUFELEVBQVc7QUFDZkEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCQyxRQUFoQixDQUF5QkMsUUFBekIsR0FBb0NILFFBQVEsQ0FBQ0csUUFBVCxDQUFrQkMsQ0FBdEQ7QUFDRDs7QUFFREMsRUFBQUEsS0FBSyxDQUFDTCxRQUFELEVBQVc7QUFDZEEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCSSxLQUFoQixDQUFzQkMsR0FBdEIsQ0FDRU4sUUFBUSxDQUFDSyxLQUFULEdBQWlCTCxRQUFRLENBQUNPLE1BRDVCLEVBRUVQLFFBQVEsQ0FBQ0ssS0FBVCxHQUFpQkwsUUFBUSxDQUFDTyxNQUY1QixFQUdFLENBSEY7QUFLRDs7QUF4QnNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1lc2hSZW5kZXJlciBmcm9tICcuL01lc2hSZW5kZXJlcic7XG5pbXBvcnQgeyBSRU5ERVJFUl9UWVBFX1NQUklURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQHJlcXVpcmVzIFRIUkVFIC0geyBNZXNoLCBCb3hHZW9tZXRyeSwgTWVzaExhbWJlcnRNYXRlcmlhbCwgU3ByaXRlLCBTcHJpdGVNYXRlcmlhbCB9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNwcml0ZVJlbmRlcmVyIGV4dGVuZHMgTWVzaFJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IoY29udGFpbmVyLCBUSFJFRSkge1xuICAgIHN1cGVyKGNvbnRhaW5lciwgVEhSRUUpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuX2JvZHkgPSBuZXcgVEhSRUUuU3ByaXRlKFxuICAgICAgbmV3IFRIUkVFLlNwcml0ZU1hdGVyaWFsKHsgY29sb3I6IDB4ZmZmZmZmIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJvdGF0ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRhcmdldC5tYXRlcmlhbC5yb3RhdGlvbiA9IHBhcnRpY2xlLnJvdGF0aW9uLno7XG4gIH1cblxuICBzY2FsZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRhcmdldC5zY2FsZS5zZXQoXG4gICAgICBwYXJ0aWNsZS5zY2FsZSAqIHBhcnRpY2xlLnJhZGl1cyxcbiAgICAgIHBhcnRpY2xlLnNjYWxlICogcGFydGljbGUucmFkaXVzLFxuICAgICAgMVxuICAgICk7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/index.js",
    "content": "export { default as CustomRenderer } from './CustomRenderer';\nexport { default as MeshRenderer } from './MeshRenderer';\nexport { default as SpriteRenderer } from './SpriteRenderer';\nexport { default as GPURenderer } from './GPURenderer';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiQ3VzdG9tUmVuZGVyZXIiLCJNZXNoUmVuZGVyZXIiLCJTcHJpdGVSZW5kZXJlciIsIkdQVVJlbmRlcmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLGNBQXBCLFFBQTBDLGtCQUExQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsWUFBcEIsUUFBd0MsZ0JBQXhDO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxjQUFwQixRQUEwQyxrQkFBMUM7QUFDQSxTQUFTSCxPQUFPLElBQUlJLFdBQXBCLFFBQXVDLGVBQXZDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBDdXN0b21SZW5kZXJlciB9IGZyb20gJy4vQ3VzdG9tUmVuZGVyZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNoUmVuZGVyZXIgfSBmcm9tICcuL01lc2hSZW5kZXJlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwcml0ZVJlbmRlcmVyIH0gZnJvbSAnLi9TcHJpdGVSZW5kZXJlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdQVVJlbmRlcmVyIH0gZnJvbSAnLi9HUFVSZW5kZXJlcic7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/renderer/types.js",
    "content": "export const RENDERER_TYPE_BASE = 'BaseRenderer';\nexport const RENDERER_TYPE_CUSTOM = 'CustomRenderer';\nexport const RENDERER_TYPE_SPRITE = 'SpriteRenderer';\nexport const RENDERER_TYPE_MESH = 'MeshRenderer';\nexport const RENDERER_TYPE_GPU = 'GPURenderer';\nexport const RENDERER_TYPE_GPU_MOBILE = 'MobileGPURenderer';\nexport const RENDERER_TYPE_GPU_DESKTOP = 'DesktopGPURenderer';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci90eXBlcy5qcyJdLCJuYW1lcyI6WyJSRU5ERVJFUl9UWVBFX0JBU0UiLCJSRU5ERVJFUl9UWVBFX0NVU1RPTSIsIlJFTkRFUkVSX1RZUEVfU1BSSVRFIiwiUkVOREVSRVJfVFlQRV9NRVNIIiwiUkVOREVSRVJfVFlQRV9HUFUiLCJSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUiLCJSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLGtCQUFrQixHQUFHLGNBQTNCO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxnQkFBN0I7QUFDUCxPQUFPLE1BQU1DLG9CQUFvQixHQUFHLGdCQUE3QjtBQUNQLE9BQU8sTUFBTUMsa0JBQWtCLEdBQUcsY0FBM0I7QUFDUCxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLGFBQTFCO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxtQkFBakM7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLG9CQUFsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0JBU0UgPSAnQmFzZVJlbmRlcmVyJztcbmV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0NVU1RPTSA9ICdDdXN0b21SZW5kZXJlcic7XG5leHBvcnQgY29uc3QgUkVOREVSRVJfVFlQRV9TUFJJVEUgPSAnU3ByaXRlUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfTUVTSCA9ICdNZXNoUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfR1BVID0gJ0dQVVJlbmRlcmVyJztcbmV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUgPSAnTW9iaWxlR1BVUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AgPSAnRGVza3RvcEdQVVJlbmRlcmVyJztcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/ColorUtil.js",
    "content": "export default {\n  getRGB: function (color) {\n    var rgb = {};\n\n    if (typeof color === 'number') {\n      hex = Math.floor(color);\n      rgb.r = (color >> 16 & 255) / 255;\n      rgb.g = (color >> 8 & 255) / 255;\n      rgb.b = (color & 255) / 255;\n    } else if (typeof color === 'string') {\n      var m;\n\n      if (m = /^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(color)) {\n        rgb.r = Math.min(255, parseInt(m[1], 10)) / 255;\n        rgb.g = Math.min(255, parseInt(m[2], 10)) / 255;\n        rgb.b = Math.min(255, parseInt(m[3], 10)) / 255; // eslint-disable-next-line no-useless-escape\n      } else if (m = /^\\#([A-Fa-f0-9]+)$/.exec(color)) {\n        var hex = m[1];\n        rgb.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255;\n        rgb.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255;\n        rgb.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255;\n      }\n    } else {\n      rgb.r = color.r;\n      rgb.g = color.g;\n      rgb.b = color.b;\n    }\n\n    return rgb;\n  }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9Db2xvclV0aWwuanMiXSwibmFtZXMiOlsiZ2V0UkdCIiwiY29sb3IiLCJyZ2IiLCJoZXgiLCJNYXRoIiwiZmxvb3IiLCJyIiwiZyIsImIiLCJtIiwiZXhlYyIsIm1pbiIsInBhcnNlSW50IiwiY2hhckF0Il0sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2JBLEVBQUFBLE1BQU0sRUFBRSxVQUFTQyxLQUFULEVBQWdCO0FBQ3RCLFFBQUlDLEdBQUcsR0FBRyxFQUFWOztBQUVBLFFBQUksT0FBT0QsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QkUsTUFBQUEsR0FBRyxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0osS0FBWCxDQUFOO0FBQ0FDLE1BQUFBLEdBQUcsQ0FBQ0ksQ0FBSixHQUFRLENBQUVMLEtBQUssSUFBSSxFQUFWLEdBQWdCLEdBQWpCLElBQXdCLEdBQWhDO0FBQ0FDLE1BQUFBLEdBQUcsQ0FBQ0ssQ0FBSixHQUFRLENBQUVOLEtBQUssSUFBSSxDQUFWLEdBQWUsR0FBaEIsSUFBdUIsR0FBL0I7QUFDQUMsTUFBQUEsR0FBRyxDQUFDTSxDQUFKLEdBQVEsQ0FBQ1AsS0FBSyxHQUFHLEdBQVQsSUFBZ0IsR0FBeEI7QUFDRCxLQUxELE1BS08sSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQ3BDLFVBQUlRLENBQUo7O0FBRUEsVUFDR0EsQ0FBQyxHQUFHLGdFQUFnRUMsSUFBaEUsQ0FDSFQsS0FERyxDQURQLEVBSUU7QUFDQUMsUUFBQUEsR0FBRyxDQUFDSSxDQUFKLEdBQVFGLElBQUksQ0FBQ08sR0FBTCxDQUFTLEdBQVQsRUFBY0MsUUFBUSxDQUFDSCxDQUFDLENBQUMsQ0FBRCxDQUFGLEVBQU8sRUFBUCxDQUF0QixJQUFvQyxHQUE1QztBQUNBUCxRQUFBQSxHQUFHLENBQUNLLENBQUosR0FBUUgsSUFBSSxDQUFDTyxHQUFMLENBQVMsR0FBVCxFQUFjQyxRQUFRLENBQUNILENBQUMsQ0FBQyxDQUFELENBQUYsRUFBTyxFQUFQLENBQXRCLElBQW9DLEdBQTVDO0FBQ0FQLFFBQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRSixJQUFJLENBQUNPLEdBQUwsQ0FBUyxHQUFULEVBQWNDLFFBQVEsQ0FBQ0gsQ0FBQyxDQUFDLENBQUQsQ0FBRixFQUFPLEVBQVAsQ0FBdEIsSUFBb0MsR0FBNUMsQ0FIQSxDQUlBO0FBQ0QsT0FURCxNQVNPLElBQUtBLENBQUMsR0FBRyxxQkFBcUJDLElBQXJCLENBQTBCVCxLQUExQixDQUFULEVBQTRDO0FBQ2pELFlBQUlFLEdBQUcsR0FBR00sQ0FBQyxDQUFDLENBQUQsQ0FBWDtBQUVBUCxRQUFBQSxHQUFHLENBQUNJLENBQUosR0FBUU0sUUFBUSxDQUFDVCxHQUFHLENBQUNVLE1BQUosQ0FBVyxDQUFYLElBQWdCVixHQUFHLENBQUNVLE1BQUosQ0FBVyxDQUFYLENBQWpCLEVBQWdDLEVBQWhDLENBQVIsR0FBOEMsR0FBdEQ7QUFDQVgsUUFBQUEsR0FBRyxDQUFDSyxDQUFKLEdBQVFLLFFBQVEsQ0FBQ1QsR0FBRyxDQUFDVSxNQUFKLENBQVcsQ0FBWCxJQUFnQlYsR0FBRyxDQUFDVSxNQUFKLENBQVcsQ0FBWCxDQUFqQixFQUFnQyxFQUFoQyxDQUFSLEdBQThDLEdBQXREO0FBQ0FYLFFBQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRSSxRQUFRLENBQUNULEdBQUcsQ0FBQ1UsTUFBSixDQUFXLENBQVgsSUFBZ0JWLEdBQUcsQ0FBQ1UsTUFBSixDQUFXLENBQVgsQ0FBakIsRUFBZ0MsRUFBaEMsQ0FBUixHQUE4QyxHQUF0RDtBQUNEO0FBQ0YsS0FuQk0sTUFtQkE7QUFDTFgsTUFBQUEsR0FBRyxDQUFDSSxDQUFKLEdBQVFMLEtBQUssQ0FBQ0ssQ0FBZDtBQUNBSixNQUFBQSxHQUFHLENBQUNLLENBQUosR0FBUU4sS0FBSyxDQUFDTSxDQUFkO0FBQ0FMLE1BQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRUCxLQUFLLENBQUNPLENBQWQ7QUFDRDs7QUFFRCxXQUFPTixHQUFQO0FBQ0Q7QUFuQ1ksQ0FBZiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgZ2V0UkdCOiBmdW5jdGlvbihjb2xvcikge1xuICAgIHZhciByZ2IgPSB7fTtcblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT09ICdudW1iZXInKSB7XG4gICAgICBoZXggPSBNYXRoLmZsb29yKGNvbG9yKTtcbiAgICAgIHJnYi5yID0gKChjb2xvciA+PiAxNikgJiAyNTUpIC8gMjU1O1xuICAgICAgcmdiLmcgPSAoKGNvbG9yID4+IDgpICYgMjU1KSAvIDI1NTtcbiAgICAgIHJnYi5iID0gKGNvbG9yICYgMjU1KSAvIDI1NTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBtO1xuXG4gICAgICBpZiAoXG4gICAgICAgIChtID0gL14oXFxkKylcXHMqLFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqKCxcXHMqKFswLTldKlxcLj9bMC05XSspXFxzKik/JC8uZXhlYyhcbiAgICAgICAgICBjb2xvclxuICAgICAgICApKVxuICAgICAgKSB7XG4gICAgICAgIHJnYi5yID0gTWF0aC5taW4oMjU1LCBwYXJzZUludChtWzFdLCAxMCkpIC8gMjU1O1xuICAgICAgICByZ2IuZyA9IE1hdGgubWluKDI1NSwgcGFyc2VJbnQobVsyXSwgMTApKSAvIDI1NTtcbiAgICAgICAgcmdiLmIgPSBNYXRoLm1pbigyNTUsIHBhcnNlSW50KG1bM10sIDEwKSkgLyAyNTU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICAgICAgfSBlbHNlIGlmICgobSA9IC9eXFwjKFtBLUZhLWYwLTldKykkLy5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgdmFyIGhleCA9IG1bMV07XG5cbiAgICAgICAgcmdiLnIgPSBwYXJzZUludChoZXguY2hhckF0KDApICsgaGV4LmNoYXJBdCgxKSwgMTYpIC8gMjU1O1xuICAgICAgICByZ2IuZyA9IHBhcnNlSW50KGhleC5jaGFyQXQoMikgKyBoZXguY2hhckF0KDMpLCAxNikgLyAyNTU7XG4gICAgICAgIHJnYi5iID0gcGFyc2VJbnQoaGV4LmNoYXJBdCg0KSArIGhleC5jaGFyQXQoNSksIDE2KSAvIDI1NTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmdiLnIgPSBjb2xvci5yO1xuICAgICAgcmdiLmcgPSBjb2xvci5nO1xuICAgICAgcmdiLmIgPSBjb2xvci5iO1xuICAgIH1cblxuICAgIHJldHVybiByZ2I7XG4gIH0sXG59O1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/PUID.js",
    "content": "export default {\n  _id: 0,\n  _uids: new Map(),\n  getNewId: function () {\n    return `PUID_${++this._id}`;\n  },\n  id: function (functionOrObject) {\n    if (this._uids.has(functionOrObject)) {\n      return this._uids.get(functionOrObject);\n    }\n\n    const newId = this.getNewId();\n\n    this._uids.set(functionOrObject, newId);\n\n    return newId;\n  }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9QVUlELmpzIl0sIm5hbWVzIjpbIl9pZCIsIl91aWRzIiwiTWFwIiwiZ2V0TmV3SWQiLCJpZCIsImZ1bmN0aW9uT3JPYmplY3QiLCJoYXMiLCJnZXQiLCJuZXdJZCIsInNldCJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtBQUNiQSxFQUFBQSxHQUFHLEVBQUUsQ0FEUTtBQUViQyxFQUFBQSxLQUFLLEVBQUUsSUFBSUMsR0FBSixFQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxZQUFXO0FBQ25CLFdBQVEsUUFBTyxFQUFFLEtBQUtILEdBQUksRUFBMUI7QUFDRCxHQUxZO0FBTWJJLEVBQUFBLEVBQUUsRUFBRSxVQUFTQyxnQkFBVCxFQUEyQjtBQUM3QixRQUFJLEtBQUtKLEtBQUwsQ0FBV0ssR0FBWCxDQUFlRCxnQkFBZixDQUFKLEVBQXNDO0FBQ3BDLGFBQU8sS0FBS0osS0FBTCxDQUFXTSxHQUFYLENBQWVGLGdCQUFmLENBQVA7QUFDRDs7QUFFRCxVQUFNRyxLQUFLLEdBQUcsS0FBS0wsUUFBTCxFQUFkOztBQUVBLFNBQUtGLEtBQUwsQ0FBV1EsR0FBWCxDQUFlSixnQkFBZixFQUFpQ0csS0FBakM7O0FBRUEsV0FBT0EsS0FBUDtBQUNEO0FBaEJZLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIF9pZDogMCxcbiAgX3VpZHM6IG5ldyBNYXAoKSxcbiAgZ2V0TmV3SWQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBgUFVJRF8keysrdGhpcy5faWR9YDtcbiAgfSxcbiAgaWQ6IGZ1bmN0aW9uKGZ1bmN0aW9uT3JPYmplY3QpIHtcbiAgICBpZiAodGhpcy5fdWlkcy5oYXMoZnVuY3Rpb25Pck9iamVjdCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl91aWRzLmdldChmdW5jdGlvbk9yT2JqZWN0KTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdJZCA9IHRoaXMuZ2V0TmV3SWQoKTtcblxuICAgIHRoaXMuX3VpZHMuc2V0KGZ1bmN0aW9uT3JPYmplY3QsIG5ld0lkKTtcblxuICAgIHJldHVybiBuZXdJZDtcbiAgfSxcbn07XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/THREEUtil.js",
    "content": "import { Vector3 } from '../core/three/';\nexport default {\n  toScreenPos: function () {\n    var vector = new Vector3();\n    return function (pos, camera, canvas) {\n      vector.copy(pos); // map to normalized device coordinate (NDC) space\n\n      vector.project(camera); // map to 2D screen space\n\n      vector.x = Math.round((vector.x + 1) * canvas.width / 2);\n      vector.y = Math.round((-vector.y + 1) * canvas.height / 2);\n      vector.z = 0;\n      return vector;\n    };\n  }(),\n  toSpacePos: function () {\n    var vector = new Vector3(),\n        dir = new Vector3(),\n        distance;\n    return function (pos, camera, canvas) {\n      vector.set(pos.x / canvas.width * 2 - 1, -(pos.y / canvas.height) * 2 + 1, 0.5);\n      vector.unproject(camera);\n      dir.copy(vector.sub(camera.position).normalize());\n      distance = -camera.position.z / dir.z;\n      vector.copy(camera.position);\n      vector.add(dir.multiplyScalar(distance));\n      return vector;\n    };\n  }()\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9USFJFRVV0aWwuanMiXSwibmFtZXMiOlsiVmVjdG9yMyIsInRvU2NyZWVuUG9zIiwidmVjdG9yIiwicG9zIiwiY2FtZXJhIiwiY2FudmFzIiwiY29weSIsInByb2plY3QiLCJ4IiwiTWF0aCIsInJvdW5kIiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwieiIsInRvU3BhY2VQb3MiLCJkaXIiLCJkaXN0YW5jZSIsInNldCIsInVucHJvamVjdCIsInN1YiIsInBvc2l0aW9uIiwibm9ybWFsaXplIiwiYWRkIiwibXVsdGlwbHlTY2FsYXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQVQsUUFBd0IsZ0JBQXhCO0FBRUEsZUFBZTtBQUNiQyxFQUFBQSxXQUFXLEVBQUcsWUFBVztBQUN2QixRQUFJQyxNQUFNLEdBQUcsSUFBSUYsT0FBSixFQUFiO0FBRUEsV0FBTyxVQUFTRyxHQUFULEVBQWNDLE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCO0FBQ25DSCxNQUFBQSxNQUFNLENBQUNJLElBQVAsQ0FBWUgsR0FBWixFQURtQyxDQUVuQzs7QUFDQUQsTUFBQUEsTUFBTSxDQUFDSyxPQUFQLENBQWVILE1BQWYsRUFIbUMsQ0FJbkM7O0FBQ0FGLE1BQUFBLE1BQU0sQ0FBQ00sQ0FBUCxHQUFXQyxJQUFJLENBQUNDLEtBQUwsQ0FBWSxDQUFDUixNQUFNLENBQUNNLENBQVAsR0FBVyxDQUFaLElBQWlCSCxNQUFNLENBQUNNLEtBQXpCLEdBQWtDLENBQTdDLENBQVg7QUFDQVQsTUFBQUEsTUFBTSxDQUFDVSxDQUFQLEdBQVdILElBQUksQ0FBQ0MsS0FBTCxDQUFZLENBQUMsQ0FBQ1IsTUFBTSxDQUFDVSxDQUFSLEdBQVksQ0FBYixJQUFrQlAsTUFBTSxDQUFDUSxNQUExQixHQUFvQyxDQUEvQyxDQUFYO0FBQ0FYLE1BQUFBLE1BQU0sQ0FBQ1ksQ0FBUCxHQUFXLENBQVg7QUFFQSxhQUFPWixNQUFQO0FBQ0QsS0FWRDtBQVdELEdBZFksRUFEQTtBQWlCYmEsRUFBQUEsVUFBVSxFQUFHLFlBQVc7QUFDdEIsUUFBSWIsTUFBTSxHQUFHLElBQUlGLE9BQUosRUFBYjtBQUFBLFFBQ0VnQixHQUFHLEdBQUcsSUFBSWhCLE9BQUosRUFEUjtBQUFBLFFBRUVpQixRQUZGO0FBSUEsV0FBTyxVQUFTZCxHQUFULEVBQWNDLE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCO0FBQ25DSCxNQUFBQSxNQUFNLENBQUNnQixHQUFQLENBQ0dmLEdBQUcsQ0FBQ0ssQ0FBSixHQUFRSCxNQUFNLENBQUNNLEtBQWhCLEdBQXlCLENBQXpCLEdBQTZCLENBRC9CLEVBRUUsRUFBRVIsR0FBRyxDQUFDUyxDQUFKLEdBQVFQLE1BQU0sQ0FBQ1EsTUFBakIsSUFBMkIsQ0FBM0IsR0FBK0IsQ0FGakMsRUFHRSxHQUhGO0FBS0FYLE1BQUFBLE1BQU0sQ0FBQ2lCLFNBQVAsQ0FBaUJmLE1BQWpCO0FBRUFZLE1BQUFBLEdBQUcsQ0FBQ1YsSUFBSixDQUFTSixNQUFNLENBQUNrQixHQUFQLENBQVdoQixNQUFNLENBQUNpQixRQUFsQixFQUE0QkMsU0FBNUIsRUFBVDtBQUNBTCxNQUFBQSxRQUFRLEdBQUcsQ0FBQ2IsTUFBTSxDQUFDaUIsUUFBUCxDQUFnQlAsQ0FBakIsR0FBcUJFLEdBQUcsQ0FBQ0YsQ0FBcEM7QUFDQVosTUFBQUEsTUFBTSxDQUFDSSxJQUFQLENBQVlGLE1BQU0sQ0FBQ2lCLFFBQW5CO0FBQ0FuQixNQUFBQSxNQUFNLENBQUNxQixHQUFQLENBQVdQLEdBQUcsQ0FBQ1EsY0FBSixDQUFtQlAsUUFBbkIsQ0FBWDtBQUVBLGFBQU9mLE1BQVA7QUFDRCxLQWREO0FBZUQsR0FwQlc7QUFqQkMsQ0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICcuLi9jb3JlL3RocmVlLyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9TY3JlZW5Qb3M6IChmdW5jdGlvbigpIHtcbiAgICB2YXIgdmVjdG9yID0gbmV3IFZlY3RvcjMoKTtcblxuICAgIHJldHVybiBmdW5jdGlvbihwb3MsIGNhbWVyYSwgY2FudmFzKSB7XG4gICAgICB2ZWN0b3IuY29weShwb3MpO1xuICAgICAgLy8gbWFwIHRvIG5vcm1hbGl6ZWQgZGV2aWNlIGNvb3JkaW5hdGUgKE5EQykgc3BhY2VcbiAgICAgIHZlY3Rvci5wcm9qZWN0KGNhbWVyYSk7XG4gICAgICAvLyBtYXAgdG8gMkQgc2NyZWVuIHNwYWNlXG4gICAgICB2ZWN0b3IueCA9IE1hdGgucm91bmQoKCh2ZWN0b3IueCArIDEpICogY2FudmFzLndpZHRoKSAvIDIpO1xuICAgICAgdmVjdG9yLnkgPSBNYXRoLnJvdW5kKCgoLXZlY3Rvci55ICsgMSkgKiBjYW52YXMuaGVpZ2h0KSAvIDIpO1xuICAgICAgdmVjdG9yLnogPSAwO1xuXG4gICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH07XG4gIH0pKCksXG5cbiAgdG9TcGFjZVBvczogKGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ZWN0b3IgPSBuZXcgVmVjdG9yMygpLFxuICAgICAgZGlyID0gbmV3IFZlY3RvcjMoKSxcbiAgICAgIGRpc3RhbmNlO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uKHBvcywgY2FtZXJhLCBjYW52YXMpIHtcbiAgICAgIHZlY3Rvci5zZXQoXG4gICAgICAgIChwb3MueCAvIGNhbnZhcy53aWR0aCkgKiAyIC0gMSxcbiAgICAgICAgLShwb3MueSAvIGNhbnZhcy5oZWlnaHQpICogMiArIDEsXG4gICAgICAgIDAuNVxuICAgICAgKTtcbiAgICAgIHZlY3Rvci51bnByb2plY3QoY2FtZXJhKTtcblxuICAgICAgZGlyLmNvcHkodmVjdG9yLnN1YihjYW1lcmEucG9zaXRpb24pLm5vcm1hbGl6ZSgpKTtcbiAgICAgIGRpc3RhbmNlID0gLWNhbWVyYS5wb3NpdGlvbi56IC8gZGlyLno7XG4gICAgICB2ZWN0b3IuY29weShjYW1lcmEucG9zaXRpb24pO1xuICAgICAgdmVjdG9yLmFkZChkaXIubXVsdGlwbHlTY2FsYXIoZGlzdGFuY2UpKTtcblxuICAgICAgcmV0dXJuIHZlY3RvcjtcbiAgICB9O1xuICB9KSgpLFxufTtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/Util.js",
    "content": "export default {\n  initValue: function (value, defaults) {\n    var _value = value != null && value != undefined ? value : defaults;\n\n    return _value;\n  },\n  isArray: function (value) {\n    return Object.prototype.toString.call(value) === '[object Array]';\n  },\n  destroyArray: function (array) {\n    array.length = 0;\n  },\n  destroyObject: function (obj) {\n    for (var o in obj) delete obj[o];\n  },\n  isUndefined: function () {\n    for (var id in arguments) {\n      var arg = arguments[id];\n      if (arg !== undefined) return false;\n    }\n\n    return true;\n  },\n  setVectorByObj: function (target, pOBJ) {\n    if (pOBJ['x'] !== undefined) target.position.x = pOBJ['x'];\n    if (pOBJ['y'] !== undefined) target.position.y = pOBJ['y'];\n    if (pOBJ['z'] !== undefined) target.position.z = pOBJ['z'];\n    if (pOBJ['vx'] !== undefined) target.velocity.x = pOBJ['vx'];\n    if (pOBJ['vy'] !== undefined) target.velocity.y = pOBJ['vy'];\n    if (pOBJ['vz'] !== undefined) target.velocity.z = pOBJ['vz'];\n    if (pOBJ['ax'] !== undefined) target.acceleration.x = pOBJ['ax'];\n    if (pOBJ['ay'] !== undefined) target.acceleration.y = pOBJ['ay'];\n    if (pOBJ['az'] !== undefined) target.acceleration.z = pOBJ['az'];\n    if (pOBJ['p'] !== undefined) target.position.copy(pOBJ['p']);\n    if (pOBJ['v'] !== undefined) target.velocity.copy(pOBJ['v']);\n    if (pOBJ['a'] !== undefined) target.acceleration.copy(pOBJ['a']);\n    if (pOBJ['position'] !== undefined) target.position.copy(pOBJ['position']);\n    if (pOBJ['velocity'] !== undefined) target.velocity.copy(pOBJ['velocity']);\n    if (pOBJ['accelerate'] !== undefined) target.acceleration.copy(pOBJ['accelerate']);\n  },\n  //set prototype\n  setPrototypeByObj: function (target, proObj, filters) {\n    for (var key in proObj) {\n      // eslint-disable-next-line no-prototype-builtins\n      if (target.hasOwnProperty(key)) {\n        if (filters) {\n          if (filters.indexOf(key) < 0) target[key] = this._getValue(proObj[key]);\n        } else {\n          target[key] = this._getValue(proObj[key]);\n        }\n      }\n    }\n\n    return target;\n  },\n  _getValue: function (pan) {\n    if (pan?.constructor?.type === 'Span') return pan.getValue();else return pan;\n  }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9VdGlsLmpzIl0sIm5hbWVzIjpbImluaXRWYWx1ZSIsInZhbHVlIiwiZGVmYXVsdHMiLCJfdmFsdWUiLCJ1bmRlZmluZWQiLCJpc0FycmF5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZGVzdHJveUFycmF5IiwiYXJyYXkiLCJsZW5ndGgiLCJkZXN0cm95T2JqZWN0Iiwib2JqIiwibyIsImlzVW5kZWZpbmVkIiwiaWQiLCJhcmd1bWVudHMiLCJhcmciLCJzZXRWZWN0b3JCeU9iaiIsInRhcmdldCIsInBPQkoiLCJwb3NpdGlvbiIsIngiLCJ5IiwieiIsInZlbG9jaXR5IiwiYWNjZWxlcmF0aW9uIiwiY29weSIsInNldFByb3RvdHlwZUJ5T2JqIiwicHJvT2JqIiwiZmlsdGVycyIsImtleSIsImhhc093blByb3BlcnR5IiwiaW5kZXhPZiIsIl9nZXRWYWx1ZSIsInBhbiIsImNvbnN0cnVjdG9yIiwidHlwZSIsImdldFZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2JBLEVBQUFBLFNBQVMsRUFBRSxVQUFTQyxLQUFULEVBQWdCQyxRQUFoQixFQUEwQjtBQUNuQyxRQUFJQyxNQUFNLEdBQUdGLEtBQUssSUFBSSxJQUFULElBQWlCQSxLQUFLLElBQUlHLFNBQTFCLEdBQXNDSCxLQUF0QyxHQUE4Q0MsUUFBM0Q7O0FBRUEsV0FBT0MsTUFBUDtBQUNELEdBTFk7QUFPYkUsRUFBQUEsT0FBTyxFQUFFLFVBQVNKLEtBQVQsRUFBZ0I7QUFDdkIsV0FBT0ssTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxRQUFqQixDQUEwQkMsSUFBMUIsQ0FBK0JSLEtBQS9CLE1BQTBDLGdCQUFqRDtBQUNELEdBVFk7QUFXYlMsRUFBQUEsWUFBWSxFQUFFLFVBQVNDLEtBQVQsRUFBZ0I7QUFDNUJBLElBQUFBLEtBQUssQ0FBQ0MsTUFBTixHQUFlLENBQWY7QUFDRCxHQWJZO0FBZWJDLEVBQUFBLGFBQWEsRUFBRSxVQUFTQyxHQUFULEVBQWM7QUFDM0IsU0FBSyxJQUFJQyxDQUFULElBQWNELEdBQWQsRUFBbUIsT0FBT0EsR0FBRyxDQUFDQyxDQUFELENBQVY7QUFDcEIsR0FqQlk7QUFtQmJDLEVBQUFBLFdBQVcsRUFBRSxZQUFXO0FBQ3RCLFNBQUssSUFBSUMsRUFBVCxJQUFlQyxTQUFmLEVBQTBCO0FBQ3hCLFVBQUlDLEdBQUcsR0FBR0QsU0FBUyxDQUFDRCxFQUFELENBQW5CO0FBRUEsVUFBSUUsR0FBRyxLQUFLZixTQUFaLEVBQXVCLE9BQU8sS0FBUDtBQUN4Qjs7QUFFRCxXQUFPLElBQVA7QUFDRCxHQTNCWTtBQTZCYmdCLEVBQUFBLGNBQWMsRUFBRSxVQUFTQyxNQUFULEVBQWlCQyxJQUFqQixFQUF1QjtBQUNyQyxRQUFJQSxJQUFJLENBQUMsR0FBRCxDQUFKLEtBQWNsQixTQUFsQixFQUE2QmlCLE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQkMsQ0FBaEIsR0FBb0JGLElBQUksQ0FBQyxHQUFELENBQXhCO0FBQzdCLFFBQUlBLElBQUksQ0FBQyxHQUFELENBQUosS0FBY2xCLFNBQWxCLEVBQTZCaUIsTUFBTSxDQUFDRSxRQUFQLENBQWdCRSxDQUFoQixHQUFvQkgsSUFBSSxDQUFDLEdBQUQsQ0FBeEI7QUFDN0IsUUFBSUEsSUFBSSxDQUFDLEdBQUQsQ0FBSixLQUFjbEIsU0FBbEIsRUFBNkJpQixNQUFNLENBQUNFLFFBQVAsQ0FBZ0JHLENBQWhCLEdBQW9CSixJQUFJLENBQUMsR0FBRCxDQUF4QjtBQUU3QixRQUFJQSxJQUFJLENBQUMsSUFBRCxDQUFKLEtBQWVsQixTQUFuQixFQUE4QmlCLE1BQU0sQ0FBQ00sUUFBUCxDQUFnQkgsQ0FBaEIsR0FBb0JGLElBQUksQ0FBQyxJQUFELENBQXhCO0FBQzlCLFFBQUlBLElBQUksQ0FBQyxJQUFELENBQUosS0FBZWxCLFNBQW5CLEVBQThCaUIsTUFBTSxDQUFDTSxRQUFQLENBQWdCRixDQUFoQixHQUFvQkgsSUFBSSxDQUFDLElBQUQsQ0FBeEI7QUFDOUIsUUFBSUEsSUFBSSxDQUFDLElBQUQsQ0FBSixLQUFlbEIsU0FBbkIsRUFBOEJpQixNQUFNLENBQUNNLFFBQVAsQ0FBZ0JELENBQWhCLEdBQW9CSixJQUFJLENBQUMsSUFBRCxDQUF4QjtBQUU5QixRQUFJQSxJQUFJLENBQUMsSUFBRCxDQUFKLEtBQWVsQixTQUFuQixFQUE4QmlCLE1BQU0sQ0FBQ08sWUFBUCxDQUFvQkosQ0FBcEIsR0FBd0JGLElBQUksQ0FBQyxJQUFELENBQTVCO0FBQzlCLFFBQUlBLElBQUksQ0FBQyxJQUFELENBQUosS0FBZWxCLFNBQW5CLEVBQThCaUIsTUFBTSxDQUFDTyxZQUFQLENBQW9CSCxDQUFwQixHQUF3QkgsSUFBSSxDQUFDLElBQUQsQ0FBNUI7QUFDOUIsUUFBSUEsSUFBSSxDQUFDLElBQUQsQ0FBSixLQUFlbEIsU0FBbkIsRUFBOEJpQixNQUFNLENBQUNPLFlBQVAsQ0FBb0JGLENBQXBCLEdBQXdCSixJQUFJLENBQUMsSUFBRCxDQUE1QjtBQUU5QixRQUFJQSxJQUFJLENBQUMsR0FBRCxDQUFKLEtBQWNsQixTQUFsQixFQUE2QmlCLE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQk0sSUFBaEIsQ0FBcUJQLElBQUksQ0FBQyxHQUFELENBQXpCO0FBQzdCLFFBQUlBLElBQUksQ0FBQyxHQUFELENBQUosS0FBY2xCLFNBQWxCLEVBQTZCaUIsTUFBTSxDQUFDTSxRQUFQLENBQWdCRSxJQUFoQixDQUFxQlAsSUFBSSxDQUFDLEdBQUQsQ0FBekI7QUFDN0IsUUFBSUEsSUFBSSxDQUFDLEdBQUQsQ0FBSixLQUFjbEIsU0FBbEIsRUFBNkJpQixNQUFNLENBQUNPLFlBQVAsQ0FBb0JDLElBQXBCLENBQXlCUCxJQUFJLENBQUMsR0FBRCxDQUE3QjtBQUU3QixRQUFJQSxJQUFJLENBQUMsVUFBRCxDQUFKLEtBQXFCbEIsU0FBekIsRUFBb0NpQixNQUFNLENBQUNFLFFBQVAsQ0FBZ0JNLElBQWhCLENBQXFCUCxJQUFJLENBQUMsVUFBRCxDQUF6QjtBQUNwQyxRQUFJQSxJQUFJLENBQUMsVUFBRCxDQUFKLEtBQXFCbEIsU0FBekIsRUFBb0NpQixNQUFNLENBQUNNLFFBQVAsQ0FBZ0JFLElBQWhCLENBQXFCUCxJQUFJLENBQUMsVUFBRCxDQUF6QjtBQUNwQyxRQUFJQSxJQUFJLENBQUMsWUFBRCxDQUFKLEtBQXVCbEIsU0FBM0IsRUFDRWlCLE1BQU0sQ0FBQ08sWUFBUCxDQUFvQkMsSUFBcEIsQ0FBeUJQLElBQUksQ0FBQyxZQUFELENBQTdCO0FBQ0gsR0FsRFk7QUFvRGI7QUFDQVEsRUFBQUEsaUJBQWlCLEVBQUUsVUFBU1QsTUFBVCxFQUFpQlUsTUFBakIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQ25ELFNBQUssSUFBSUMsR0FBVCxJQUFnQkYsTUFBaEIsRUFBd0I7QUFDdEI7QUFDQSxVQUFJVixNQUFNLENBQUNhLGNBQVAsQ0FBc0JELEdBQXRCLENBQUosRUFBZ0M7QUFDOUIsWUFBSUQsT0FBSixFQUFhO0FBQ1gsY0FBSUEsT0FBTyxDQUFDRyxPQUFSLENBQWdCRixHQUFoQixJQUF1QixDQUEzQixFQUNFWixNQUFNLENBQUNZLEdBQUQsQ0FBTixHQUFjLEtBQUtHLFNBQUwsQ0FBZUwsTUFBTSxDQUFDRSxHQUFELENBQXJCLENBQWQ7QUFDSCxTQUhELE1BR087QUFDTFosVUFBQUEsTUFBTSxDQUFDWSxHQUFELENBQU4sR0FBYyxLQUFLRyxTQUFMLENBQWVMLE1BQU0sQ0FBQ0UsR0FBRCxDQUFyQixDQUFkO0FBQ0Q7QUFDRjtBQUNGOztBQUVELFdBQU9aLE1BQVA7QUFDRCxHQW5FWTtBQXFFYmUsRUFBQUEsU0FBUyxFQUFFLFVBQVNDLEdBQVQsRUFBYztBQUN2QixRQUFJQSxHQUFHLENBQUNDLFdBQUosQ0FBZ0JDLElBQWhCLEtBQXlCLE1BQTdCLEVBQXFDLE9BQU9GLEdBQUcsQ0FBQ0csUUFBSixFQUFQLENBQXJDLEtBQ0ssT0FBT0gsR0FBUDtBQUNOO0FBeEVZLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIGluaXRWYWx1ZTogZnVuY3Rpb24odmFsdWUsIGRlZmF1bHRzKSB7XG4gICAgdmFyIF92YWx1ZSA9IHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT0gdW5kZWZpbmVkID8gdmFsdWUgOiBkZWZhdWx0cztcblxuICAgIHJldHVybiBfdmFsdWU7XG4gIH0sXG5cbiAgaXNBcnJheTogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbiAgfSxcblxuICBkZXN0cm95QXJyYXk6IGZ1bmN0aW9uKGFycmF5KSB7XG4gICAgYXJyYXkubGVuZ3RoID0gMDtcbiAgfSxcblxuICBkZXN0cm95T2JqZWN0OiBmdW5jdGlvbihvYmopIHtcbiAgICBmb3IgKHZhciBvIGluIG9iaikgZGVsZXRlIG9ialtvXTtcbiAgfSxcblxuICBpc1VuZGVmaW5lZDogZnVuY3Rpb24oKSB7XG4gICAgZm9yICh2YXIgaWQgaW4gYXJndW1lbnRzKSB7XG4gICAgICB2YXIgYXJnID0gYXJndW1lbnRzW2lkXTtcblxuICAgICAgaWYgKGFyZyAhPT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG5cbiAgc2V0VmVjdG9yQnlPYmo6IGZ1bmN0aW9uKHRhcmdldCwgcE9CSikge1xuICAgIGlmIChwT0JKWyd4J10gIT09IHVuZGVmaW5lZCkgdGFyZ2V0LnBvc2l0aW9uLnggPSBwT0JKWyd4J107XG4gICAgaWYgKHBPQkpbJ3knXSAhPT0gdW5kZWZpbmVkKSB0YXJnZXQucG9zaXRpb24ueSA9IHBPQkpbJ3knXTtcbiAgICBpZiAocE9CSlsneiddICE9PSB1bmRlZmluZWQpIHRhcmdldC5wb3NpdGlvbi56ID0gcE9CSlsneiddO1xuXG4gICAgaWYgKHBPQkpbJ3Z4J10gIT09IHVuZGVmaW5lZCkgdGFyZ2V0LnZlbG9jaXR5LnggPSBwT0JKWyd2eCddO1xuICAgIGlmIChwT0JKWyd2eSddICE9PSB1bmRlZmluZWQpIHRhcmdldC52ZWxvY2l0eS55ID0gcE9CSlsndnknXTtcbiAgICBpZiAocE9CSlsndnonXSAhPT0gdW5kZWZpbmVkKSB0YXJnZXQudmVsb2NpdHkueiA9IHBPQkpbJ3Z6J107XG5cbiAgICBpZiAocE9CSlsnYXgnXSAhPT0gdW5kZWZpbmVkKSB0YXJnZXQuYWNjZWxlcmF0aW9uLnggPSBwT0JKWydheCddO1xuICAgIGlmIChwT0JKWydheSddICE9PSB1bmRlZmluZWQpIHRhcmdldC5hY2NlbGVyYXRpb24ueSA9IHBPQkpbJ2F5J107XG4gICAgaWYgKHBPQkpbJ2F6J10gIT09IHVuZGVmaW5lZCkgdGFyZ2V0LmFjY2VsZXJhdGlvbi56ID0gcE9CSlsnYXonXTtcblxuICAgIGlmIChwT0JKWydwJ10gIT09IHVuZGVmaW5lZCkgdGFyZ2V0LnBvc2l0aW9uLmNvcHkocE9CSlsncCddKTtcbiAgICBpZiAocE9CSlsndiddICE9PSB1bmRlZmluZWQpIHRhcmdldC52ZWxvY2l0eS5jb3B5KHBPQkpbJ3YnXSk7XG4gICAgaWYgKHBPQkpbJ2EnXSAhPT0gdW5kZWZpbmVkKSB0YXJnZXQuYWNjZWxlcmF0aW9uLmNvcHkocE9CSlsnYSddKTtcblxuICAgIGlmIChwT0JKWydwb3NpdGlvbiddICE9PSB1bmRlZmluZWQpIHRhcmdldC5wb3NpdGlvbi5jb3B5KHBPQkpbJ3Bvc2l0aW9uJ10pO1xuICAgIGlmIChwT0JKWyd2ZWxvY2l0eSddICE9PSB1bmRlZmluZWQpIHRhcmdldC52ZWxvY2l0eS5jb3B5KHBPQkpbJ3ZlbG9jaXR5J10pO1xuICAgIGlmIChwT0JKWydhY2NlbGVyYXRlJ10gIT09IHVuZGVmaW5lZClcbiAgICAgIHRhcmdldC5hY2NlbGVyYXRpb24uY29weShwT0JKWydhY2NlbGVyYXRlJ10pO1xuICB9LFxuXG4gIC8vc2V0IHByb3RvdHlwZVxuICBzZXRQcm90b3R5cGVCeU9iajogZnVuY3Rpb24odGFyZ2V0LCBwcm9PYmosIGZpbHRlcnMpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gcHJvT2JqKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICBpZiAodGFyZ2V0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgICAgICBpZiAoZmlsdGVycy5pbmRleE9mKGtleSkgPCAwKVxuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSB0aGlzLl9nZXRWYWx1ZShwcm9PYmpba2V5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB0aGlzLl9nZXRWYWx1ZShwcm9PYmpba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9LFxuXG4gIF9nZXRWYWx1ZTogZnVuY3Rpb24ocGFuKSB7XG4gICAgaWYgKHBhbi5jb25zdHJ1Y3Rvci50eXBlID09PSAnU3BhbicpIHJldHVybiBwYW4uZ2V0VmFsdWUoKTtcbiAgICBlbHNlIHJldHVybiBwYW47XG4gIH0sXG59O1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/index.js",
    "content": "import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nexport { default as ColorUtil } from './ColorUtil';\nexport { default as PUID } from './PUID';\nexport { default as THREEUtil } from './THREEUtil';\nexport { default as Util } from './Util';\nexport { default as uid } from './uid';\nexport const withDefaults = (defaults, properties) => _objectSpread(_objectSpread({}, defaults), properties);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiQ29sb3JVdGlsIiwiUFVJRCIsIlRIUkVFVXRpbCIsIlV0aWwiLCJ1aWQiLCJ3aXRoRGVmYXVsdHMiLCJkZWZhdWx0cyIsInByb3BlcnRpZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLE9BQU8sSUFBSUMsU0FBcEIsUUFBcUMsYUFBckM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxTQUFwQixRQUFxQyxhQUFyQztBQUNBLFNBQVNILE9BQU8sSUFBSUksSUFBcEIsUUFBZ0MsUUFBaEM7QUFDQSxTQUFTSixPQUFPLElBQUlLLEdBQXBCLFFBQStCLE9BQS9CO0FBRUEsT0FBTyxNQUFNQyxZQUFZLEdBQUcsQ0FBQ0MsUUFBRCxFQUFXQyxVQUFYLHFDQUN2QkQsUUFEdUIsR0FFdkJDLFVBRnVCLENBQXJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclV0aWwgfSBmcm9tICcuL0NvbG9yVXRpbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBVSUQgfSBmcm9tICcuL1BVSUQnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUSFJFRVV0aWwgfSBmcm9tICcuL1RIUkVFVXRpbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFV0aWwgfSBmcm9tICcuL1V0aWwnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1aWQgfSBmcm9tICcuL3VpZCc7XG5cbmV4cG9ydCBjb25zdCB3aXRoRGVmYXVsdHMgPSAoZGVmYXVsdHMsIHByb3BlcnRpZXMpID0+ICh7XG4gIC4uLmRlZmF1bHRzLFxuICAuLi5wcm9wZXJ0aWVzLFxufSk7XG4iXX0="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/isNumber.js",
    "content": "let numberTag = '[object Number]';\n\nlet objectProto = Object.prototype;\n\nlet objectToString = objectProto.toString;\n\nfunction isObjectLike(value) {\n    return !!value && typeof value == 'object';\n}\n\nfunction isNumber(value) {\n    return typeof value == 'number' ||\n        (isObjectLike(value) && objectToString.call(value) == numberTag);\n}\n\nexport default isNumber;"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/potpack.js",
    "content": "\nexport default function potpack(boxes) {\n\n    // calculate total box area and maximum box width\n    let area = 0;\n    let maxWidth = 0;\n\n    for (const box of boxes) {\n        area += box.w * box.h;\n        maxWidth = Math.max(maxWidth, box.w);\n    }\n\n    // sort the boxes for insertion by height, descending\n    boxes.sort((a, b) => b.h - a.h);\n\n    // aim for a squarish resulting container,\n    // slightly adjusted for sub-100% space utilization\n    const startWidth = Math.max(Math.ceil(Math.sqrt(area / 0.95)), maxWidth);\n\n    // start with a single empty space, unbounded at the bottom\n    const spaces = [{x: 0, y: 0, w: startWidth, h: Infinity}];\n\n    let width = 0;\n    let height = 0;\n\n    for (const box of boxes) {\n        // look through spaces backwards so that we check smaller spaces first\n        for (let i = spaces.length - 1; i >= 0; i--) {\n            const space = spaces[i];\n\n            // look for empty spaces that can accommodate the current box\n            if (box.w > space.w || box.h > space.h) continue;\n\n            // found the space; add the box to its top-left corner\n            // |-------|-------|\n            // |  box  |       |\n            // |_______|       |\n            // |         space |\n            // |_______________|\n            box.x = space.x;\n            box.y = space.y;\n\n            height = Math.max(height, box.y + box.h);\n            width = Math.max(width, box.x + box.w);\n\n            if (box.w === space.w && box.h === space.h) {\n                // space matches the box exactly; remove it\n                const last = spaces.pop();\n                if (i < spaces.length) spaces[i] = last;\n\n            } else if (box.h === space.h) {\n                // space matches the box height; update it accordingly\n                // |-------|---------------|\n                // |  box  | updated space |\n                // |_______|_______________|\n                space.x += box.w;\n                space.w -= box.w;\n\n            } else if (box.w === space.w) {\n                // space matches the box width; update it accordingly\n                // |---------------|\n                // |      box      |\n                // |_______________|\n                // | updated space |\n                // |_______________|\n                space.y += box.h;\n                space.h -= box.h;\n\n            } else {\n                // otherwise the box splits the space into two spaces\n                // |-------|-----------|\n                // |  box  | new space |\n                // |_______|___________|\n                // | updated space     |\n                // |___________________|\n                spaces.push({\n                    x: space.x + box.w,\n                    y: space.y,\n                    w: space.w - box.w,\n                    h: box.h\n                });\n                space.y += box.h;\n                space.h -= box.h;\n            }\n            break;\n        }\n    }\n\n    return {\n        w: width, // container width\n        h: height, // container height\n        fill: (area / (width * height)) || 0 // space utilization\n    };\n}"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/sample.js",
    "content": "let MAX_SAFE_INTEGER = 9007199254740991;\n\nlet argsTag = '[object Arguments]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]';\n\nlet reIsUint = /^(?:0|[1-9]\\d*)$/;\n\nfunction arrayMap(array, iteratee) {\n    let index = -1,\n        length = array ? array.length : 0,\n        result = Array(length);\n\n    while (++index < length) {\n        result[index] = iteratee(array[index], index, array);\n    }\n    return result;\n}\n\nfunction baseTimes(n, iteratee) {\n    let index = -1,\n        result = Array(n);\n\n    while (++index < n) {\n        result[index] = iteratee(index);\n    }\n    return result;\n}\n\nfunction baseValues(object, props) {\n    return arrayMap(props, function(key) {\n        return object[key];\n    });\n}\n\nfunction overArg(func, transform) {\n    return function(arg) {\n        return func(transform(arg));\n    };\n}\n\nlet objectProto = Object.prototype;\n\nlet hasOwnProperty = objectProto.hasOwnProperty;\n\nlet objectToString = objectProto.toString;\n\nlet propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\nlet nativeFloor = Math.floor,\n    nativeKeys = overArg(Object.keys, Object),\n    nativeRandom = Math.random;\n\nfunction arrayLikeKeys(value, inherited) {\n    // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n    // Safari 9 makes `arguments.length` enumerable in strict mode.\n    let result = (isArray(value) || isArguments(value))\n        ? baseTimes(value.length, String)\n        : [];\n\n    let length = result.length,\n        skipIndexes = !!length;\n\n    for (let key in value) {\n        if ((inherited || hasOwnProperty.call(value, key)) &&\n            !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n            result.push(key);\n        }\n    }\n    return result;\n}\n\nfunction baseKeys(object) {\n    if (!isPrototype(object)) {\n        return nativeKeys(object);\n    }\n    let result = [];\n    for (let key in Object(object)) {\n        if (hasOwnProperty.call(object, key) && key != 'constructor') {\n            result.push(key);\n        }\n    }\n    return result;\n}\n\nfunction baseRandom(lower, upper) {\n    return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nfunction isIndex(value, length) {\n    length = length == null ? MAX_SAFE_INTEGER : length;\n    return !!length &&\n        (typeof value == 'number' || reIsUint.test(value)) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nfunction isPrototype(value) {\n    let Ctor = value && value.constructor,\n        proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n    return value === proto;\n}\n\nfunction sample(collection) {\n    let array = isArrayLike(collection) ? collection : values(collection),\n        length = array.length;\n\n    return length > 0 ? array[baseRandom(0, length - 1)] : undefined;\n}\n\nfunction isArguments(value) {\n    // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n    return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n        (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\nlet isArray = Array.isArray;\n\nfunction isArrayLike(value) {\n    return value != null && isLength(value.length) && !isFunction(value);\n}\n\nfunction isArrayLikeObject(value) {\n    return isObjectLike(value) && isArrayLike(value);\n}\n\nfunction isFunction(value) {\n    // The use of `Object#toString` avoids issues with the `typeof` operator\n    // in Safari 8-9 which returns 'object' for typed array and other constructors.\n    let tag = isObject(value) ? objectToString.call(value) : '';\n    return tag == funcTag || tag == genTag;\n}\n\nfunction isLength(value) {\n    return typeof value == 'number' &&\n        value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nfunction isObject(value) {\n    let type = typeof value;\n    return !!value && (type == 'object' || type == 'function');\n}\n\nfunction isObjectLike(value) {\n    return !!value && typeof value == 'object';\n}\n\nfunction keys(object) {\n    return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nfunction values(object) {\n    return object ? baseValues(object, keys(object)) : [];\n}\n\nexport default sample;"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/utils/uid.js",
    "content": "import { _Math } from '../core/three/Math.js';\nconst uid = _Math.generateUUID;\n\nexport default uid;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy91aWQuanMiXSwibmFtZXMiOlsidWlkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxHQUFQLE1BQWdCLFNBQWhCO0FBRUEsZUFBZUEsR0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1aWQgZnJvbSAndXVpZC92MSc7XG5cbmV4cG9ydCBkZWZhdWx0IHVpZDtcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/BoxZone.js",
    "content": "import MathUtils from '../math/MathUtils';\nimport Util from '../utils/Util';\nimport Zone from './Zone';\nimport { ZONE_TYPE_BOX as type } from './types';\nexport default class BoxZone extends Zone {\n  /**\n   * BoxZone is a box zone\n   * @param {Number|Vector3D} x - the position's x value or a Vector3D Object\n   * @param {Number} y - the position's y value\n   * @param {Number} z - the position's z value\n   * @param {Number} w - the Box's width\n   * @param {Number} h - the Box's height\n   * @param {Number} d - the Box's depth\n   * @example\n   * var boxZone = new BoxZone(0,0,0,50,50,50);\n   * or\n   * var boxZone = new BoxZone(new Vector3D(0,0,0), 50, 50, 50);\n   * @extends {Zone}\n   * @constructor\n   */\n  constructor(a, b, c, d, e, f) {\n    super(type); // TODO this reassigning of arguments is pretty dangerous, need to fix it.\n    // eslint-disable-next-line\n\n    var x, y, z, w, h, d;\n\n    if (Util.isUndefined(b, c, d, e, f)) {\n      x = y = z = 0;\n      w = h = d = a || 100;\n    } else if (Util.isUndefined(d, e, f)) {\n      x = y = z = 0;\n      w = a;\n      h = b;\n      d = c;\n    } else {\n      x = a;\n      y = b;\n      z = c;\n      w = d;\n      h = e;\n      d = f;\n    }\n\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    this.width = w;\n    this.height = h;\n    this.depth = d; // TODO Set this via an argument to the constructor\n\n    this.friction = 0.85; // TODO Set this via an argument to the constructor\n\n    this.max = 6;\n  }\n  /**\n   * Returns true to indicate this is a BoxZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isBoxZone() {\n    return true;\n  }\n\n  getPosition() {\n    this.vector.x = this.x + MathUtils.randomAToB(-0.5, 0.5) * this.width;\n    this.vector.y = this.y + MathUtils.randomAToB(-0.5, 0.5) * this.height;\n    this.vector.z = this.z + MathUtils.randomAToB(-0.5, 0.5) * this.depth;\n    return this.vector;\n  }\n\n  _dead(particle) {\n    if (particle.position.x + particle.radius < this.x - this.width / 2) particle.dead = true;else if (particle.position.x - particle.radius > this.x + this.width / 2) particle.dead = true;\n    if (particle.position.y + particle.radius < this.y - this.height / 2) particle.dead = true;else if (particle.position.y - particle.radius > this.y + this.height / 2) particle.dead = true;\n    if (particle.position.z + particle.radius < this.z - this.depth / 2) particle.dead = true;else if (particle.position.z - particle.radius > this.z + this.depth / 2) particle.dead = true;\n  }\n\n  _bound(particle) {\n    if (particle.position.x - particle.radius < this.x - this.width / 2) {\n      particle.position.x = this.x - this.width / 2 + particle.radius;\n      particle.velocity.x *= -this.friction;\n\n      this._static(particle, 'x');\n    } else if (particle.position.x + particle.radius > this.x + this.width / 2) {\n      particle.position.x = this.x + this.width / 2 - particle.radius;\n      particle.velocity.x *= -this.friction;\n\n      this._static(particle, 'x');\n    }\n\n    if (particle.position.y - particle.radius < this.y - this.height / 2) {\n      particle.position.y = this.y - this.height / 2 + particle.radius;\n      particle.velocity.y *= -this.friction;\n\n      this._static(particle, 'y');\n    } else if (particle.position.y + particle.radius > this.y + this.height / 2) {\n      particle.position.y = this.y + this.height / 2 - particle.radius;\n      particle.velocity.y *= -this.friction;\n\n      this._static(particle, 'y');\n    }\n\n    if (particle.position.z - particle.radius < this.z - this.depth / 2) {\n      particle.position.z = this.z - this.depth / 2 + particle.radius;\n      particle.velocity.z *= -this.friction;\n\n      this._static(particle, 'z');\n    } else if (particle.position.z + particle.radius > this.z + this.depth / 2) {\n      particle.position.z = this.z + this.depth / 2 - particle.radius;\n      particle.velocity.z *= -this.friction;\n\n      this._static(particle, 'z');\n    }\n  }\n\n  _static(particle, axis) {\n    if (particle.velocity[axis] * particle.acceleration[axis] > 0) return;\n\n    if (Math.abs(particle.velocity[axis]) < Math.abs(particle.acceleration[axis]) * 0.0167 * this.max) {\n      particle.velocity[axis] = 0;\n      particle.acceleration[axis] = 0;\n    }\n  }\n\n  _cross(particle) {\n    if (particle.position.x + particle.radius < this.x - this.width / 2 && particle.velocity.x <= 0) particle.position.x = this.x + this.width / 2 + particle.radius;else if (particle.position.x - particle.radius > this.x + this.width / 2 && particle.velocity.x >= 0) particle.position.x = this.x - this.width / 2 - particle.radius;\n    if (particle.position.y + particle.radius < this.y - this.height / 2 && particle.velocity.y <= 0) particle.position.y = this.y + this.height / 2 + particle.radius;else if (particle.position.y - particle.radius > this.y + this.height / 2 && particle.velocity.y >= 0) particle.position.y = this.y - this.height / 2 - particle.radius;\n    if (particle.position.z + particle.radius < this.z - this.depth / 2 && particle.velocity.z <= 0) particle.position.z = this.z + this.depth / 2 + particle.radius;else if (particle.position.z - particle.radius > this.z + this.depth / 2 && particle.velocity.z >= 0) particle.position.z = this.z - this.depth / 2 - particle.radius;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL0JveFpvbmUuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiVXRpbCIsIlpvbmUiLCJaT05FX1RZUEVfQk9YIiwidHlwZSIsIkJveFpvbmUiLCJjb25zdHJ1Y3RvciIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsIngiLCJ5IiwieiIsInciLCJoIiwiaXNVbmRlZmluZWQiLCJ3aWR0aCIsImhlaWdodCIsImRlcHRoIiwiZnJpY3Rpb24iLCJtYXgiLCJpc0JveFpvbmUiLCJnZXRQb3NpdGlvbiIsInZlY3RvciIsInJhbmRvbUFUb0IiLCJfZGVhZCIsInBhcnRpY2xlIiwicG9zaXRpb24iLCJyYWRpdXMiLCJkZWFkIiwiX2JvdW5kIiwidmVsb2NpdHkiLCJfc3RhdGljIiwiYXhpcyIsImFjY2VsZXJhdGlvbiIsIk1hdGgiLCJhYnMiLCJfY3Jvc3MiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsbUJBQXRCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixlQUFqQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsUUFBakI7QUFDQSxTQUFTQyxhQUFhLElBQUlDLElBQTFCLFFBQXNDLFNBQXRDO0FBRUEsZUFBZSxNQUFNQyxPQUFOLFNBQXNCSCxJQUF0QixDQUEyQjtBQUN4QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxDQUFELEVBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxDQUFWLEVBQWFDLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CO0FBQzVCLFVBQU1SLElBQU4sRUFENEIsQ0FHNUI7QUFDQTs7QUFDQSxRQUFJUyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsQ0FBVixFQUFhQyxDQUFiLEVBQWdCQyxDQUFoQixFQUFtQlAsQ0FBbkI7O0FBRUEsUUFBSVQsSUFBSSxDQUFDaUIsV0FBTCxDQUFpQlYsQ0FBakIsRUFBb0JDLENBQXBCLEVBQXVCQyxDQUF2QixFQUEwQkMsQ0FBMUIsRUFBNkJDLENBQTdCLENBQUosRUFBcUM7QUFDbkNDLE1BQUFBLENBQUMsR0FBR0MsQ0FBQyxHQUFHQyxDQUFDLEdBQUcsQ0FBWjtBQUNBQyxNQUFBQSxDQUFDLEdBQUdDLENBQUMsR0FBR1AsQ0FBQyxHQUFHSCxDQUFDLElBQUksR0FBakI7QUFDRCxLQUhELE1BR08sSUFBSU4sSUFBSSxDQUFDaUIsV0FBTCxDQUFpQlIsQ0FBakIsRUFBb0JDLENBQXBCLEVBQXVCQyxDQUF2QixDQUFKLEVBQStCO0FBQ3BDQyxNQUFBQSxDQUFDLEdBQUdDLENBQUMsR0FBR0MsQ0FBQyxHQUFHLENBQVo7QUFDQUMsTUFBQUEsQ0FBQyxHQUFHVCxDQUFKO0FBQ0FVLE1BQUFBLENBQUMsR0FBR1QsQ0FBSjtBQUNBRSxNQUFBQSxDQUFDLEdBQUdELENBQUo7QUFDRCxLQUxNLE1BS0E7QUFDTEksTUFBQUEsQ0FBQyxHQUFHTixDQUFKO0FBQ0FPLE1BQUFBLENBQUMsR0FBR04sQ0FBSjtBQUNBTyxNQUFBQSxDQUFDLEdBQUdOLENBQUo7QUFDQU8sTUFBQUEsQ0FBQyxHQUFHTixDQUFKO0FBQ0FPLE1BQUFBLENBQUMsR0FBR04sQ0FBSjtBQUNBRCxNQUFBQSxDQUFDLEdBQUdFLENBQUo7QUFDRDs7QUFFRCxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFDQSxTQUFLSSxLQUFMLEdBQWFILENBQWI7QUFDQSxTQUFLSSxNQUFMLEdBQWNILENBQWQ7QUFDQSxTQUFLSSxLQUFMLEdBQWFYLENBQWIsQ0E3QjRCLENBOEI1Qjs7QUFDQSxTQUFLWSxRQUFMLEdBQWdCLElBQWhCLENBL0I0QixDQWdDNUI7O0FBQ0EsU0FBS0MsR0FBTCxHQUFXLENBQVg7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxTQUFTLEdBQUc7QUFDVixXQUFPLElBQVA7QUFDRDs7QUFFREMsRUFBQUEsV0FBVyxHQUFHO0FBQ1osU0FBS0MsTUFBTCxDQUFZYixDQUFaLEdBQWdCLEtBQUtBLENBQUwsR0FBU2IsU0FBUyxDQUFDMkIsVUFBVixDQUFxQixDQUFDLEdBQXRCLEVBQTJCLEdBQTNCLElBQWtDLEtBQUtSLEtBQWhFO0FBQ0EsU0FBS08sTUFBTCxDQUFZWixDQUFaLEdBQWdCLEtBQUtBLENBQUwsR0FBU2QsU0FBUyxDQUFDMkIsVUFBVixDQUFxQixDQUFDLEdBQXRCLEVBQTJCLEdBQTNCLElBQWtDLEtBQUtQLE1BQWhFO0FBQ0EsU0FBS00sTUFBTCxDQUFZWCxDQUFaLEdBQWdCLEtBQUtBLENBQUwsR0FBU2YsU0FBUyxDQUFDMkIsVUFBVixDQUFxQixDQUFDLEdBQXRCLEVBQTJCLEdBQTNCLElBQWtDLEtBQUtOLEtBQWhFO0FBRUEsV0FBTyxLQUFLSyxNQUFaO0FBQ0Q7O0FBRURFLEVBQUFBLEtBQUssQ0FBQ0MsUUFBRCxFQUFXO0FBQ2QsUUFBSUEsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0JnQixRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtsQixDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQWxFLEVBQ0VVLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQixJQUFoQixDQURGLEtBRUssSUFBSUgsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0JnQixRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtsQixDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQWxFLEVBQ0hVLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQixJQUFoQjtBQUVGLFFBQUlILFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmhCLENBQWxCLEdBQXNCZSxRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtqQixDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQW5FLEVBQ0VTLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQixJQUFoQixDQURGLEtBRUssSUFBSUgsUUFBUSxDQUFDQyxRQUFULENBQWtCaEIsQ0FBbEIsR0FBc0JlLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2pCLENBQUwsR0FBUyxLQUFLTSxNQUFMLEdBQWMsQ0FBbkUsRUFDSFMsUUFBUSxDQUFDRyxJQUFULEdBQWdCLElBQWhCO0FBRUYsUUFBSUgsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQmMsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLaEIsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUFsRSxFQUNFUSxRQUFRLENBQUNHLElBQVQsR0FBZ0IsSUFBaEIsQ0FERixLQUVLLElBQUlILFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmYsQ0FBbEIsR0FBc0JjLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2hCLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBbEUsRUFDSFEsUUFBUSxDQUFDRyxJQUFULEdBQWdCLElBQWhCO0FBQ0g7O0FBRURDLEVBQUFBLE1BQU0sQ0FBQ0osUUFBRCxFQUFXO0FBQ2YsUUFBSUEsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0JnQixRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtsQixDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQWxFLEVBQXFFO0FBQ25FVSxNQUFBQSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JqQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQXRCLEdBQTBCVSxRQUFRLENBQUNFLE1BQXpEO0FBQ0FGLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQnJCLENBQWxCLElBQXVCLENBQUMsS0FBS1MsUUFBN0I7O0FBQ0EsV0FBS2EsT0FBTCxDQUFhTixRQUFiLEVBQXVCLEdBQXZCO0FBQ0QsS0FKRCxNQUlPLElBQUlBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmpCLENBQWxCLEdBQXNCZ0IsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLbEIsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUFsRSxFQUFxRTtBQUMxRVUsTUFBQUEsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0IsS0FBS0EsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUF0QixHQUEwQlUsUUFBUSxDQUFDRSxNQUF6RDtBQUNBRixNQUFBQSxRQUFRLENBQUNLLFFBQVQsQ0FBa0JyQixDQUFsQixJQUF1QixDQUFDLEtBQUtTLFFBQTdCOztBQUNBLFdBQUthLE9BQUwsQ0FBYU4sUUFBYixFQUF1QixHQUF2QjtBQUNEOztBQUVELFFBQUlBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmhCLENBQWxCLEdBQXNCZSxRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtqQixDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQW5FLEVBQXNFO0FBQ3BFUyxNQUFBQSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQXZCLEdBQTJCUyxRQUFRLENBQUNFLE1BQTFEO0FBQ0FGLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQnBCLENBQWxCLElBQXVCLENBQUMsS0FBS1EsUUFBN0I7O0FBQ0EsV0FBS2EsT0FBTCxDQUFhTixRQUFiLEVBQXVCLEdBQXZCO0FBQ0QsS0FKRCxNQUlPLElBQUlBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmhCLENBQWxCLEdBQXNCZSxRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtqQixDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQW5FLEVBQXNFO0FBQzNFUyxNQUFBQSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQXZCLEdBQTJCUyxRQUFRLENBQUNFLE1BQTFEO0FBQ0FGLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQnBCLENBQWxCLElBQXVCLENBQUMsS0FBS1EsUUFBN0I7O0FBQ0EsV0FBS2EsT0FBTCxDQUFhTixRQUFiLEVBQXVCLEdBQXZCO0FBQ0Q7O0FBRUQsUUFBSUEsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQmMsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLaEIsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUFsRSxFQUFxRTtBQUNuRVEsTUFBQUEsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQXRCLEdBQTBCUSxRQUFRLENBQUNFLE1BQXpEO0FBQ0FGLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQm5CLENBQWxCLElBQXVCLENBQUMsS0FBS08sUUFBN0I7O0FBQ0EsV0FBS2EsT0FBTCxDQUFhTixRQUFiLEVBQXVCLEdBQXZCO0FBQ0QsS0FKRCxNQUlPLElBQUlBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmYsQ0FBbEIsR0FBc0JjLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2hCLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBbEUsRUFBcUU7QUFDMUVRLE1BQUFBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmYsQ0FBbEIsR0FBc0IsS0FBS0EsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUF0QixHQUEwQlEsUUFBUSxDQUFDRSxNQUF6RDtBQUNBRixNQUFBQSxRQUFRLENBQUNLLFFBQVQsQ0FBa0JuQixDQUFsQixJQUF1QixDQUFDLEtBQUtPLFFBQTdCOztBQUNBLFdBQUthLE9BQUwsQ0FBYU4sUUFBYixFQUF1QixHQUF2QjtBQUNEO0FBQ0Y7O0FBRURNLEVBQUFBLE9BQU8sQ0FBQ04sUUFBRCxFQUFXTyxJQUFYLEVBQWlCO0FBQ3RCLFFBQUlQLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQkUsSUFBbEIsSUFBMEJQLFFBQVEsQ0FBQ1EsWUFBVCxDQUFzQkQsSUFBdEIsQ0FBMUIsR0FBd0QsQ0FBNUQsRUFBK0Q7O0FBQy9ELFFBQ0VFLElBQUksQ0FBQ0MsR0FBTCxDQUFTVixRQUFRLENBQUNLLFFBQVQsQ0FBa0JFLElBQWxCLENBQVQsSUFDQUUsSUFBSSxDQUFDQyxHQUFMLENBQVNWLFFBQVEsQ0FBQ1EsWUFBVCxDQUFzQkQsSUFBdEIsQ0FBVCxJQUF3QyxNQUF4QyxHQUFpRCxLQUFLYixHQUZ4RCxFQUdFO0FBQ0FNLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQkUsSUFBbEIsSUFBMEIsQ0FBMUI7QUFDQVAsTUFBQUEsUUFBUSxDQUFDUSxZQUFULENBQXNCRCxJQUF0QixJQUE4QixDQUE5QjtBQUNEO0FBQ0Y7O0FBRURJLEVBQUFBLE1BQU0sQ0FBQ1gsUUFBRCxFQUFXO0FBQ2YsUUFDRUEsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0JnQixRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtsQixDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQTlELElBQ0FVLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQnJCLENBQWxCLElBQXVCLENBRnpCLEVBSUVnQixRQUFRLENBQUNDLFFBQVQsQ0FBa0JqQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQXRCLEdBQTBCVSxRQUFRLENBQUNFLE1BQXpELENBSkYsS0FLSyxJQUNIRixRQUFRLENBQUNDLFFBQVQsQ0FBa0JqQixDQUFsQixHQUFzQmdCLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2xCLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBOUQsSUFDQVUsUUFBUSxDQUFDSyxRQUFULENBQWtCckIsQ0FBbEIsSUFBdUIsQ0FGcEIsRUFJSGdCLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmpCLENBQWxCLEdBQXNCLEtBQUtBLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBdEIsR0FBMEJVLFFBQVEsQ0FBQ0UsTUFBekQ7QUFFRixRQUNFRixRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQmUsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLakIsQ0FBTCxHQUFTLEtBQUtNLE1BQUwsR0FBYyxDQUEvRCxJQUNBUyxRQUFRLENBQUNLLFFBQVQsQ0FBa0JwQixDQUFsQixJQUF1QixDQUZ6QixFQUlFZSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQXZCLEdBQTJCUyxRQUFRLENBQUNFLE1BQTFELENBSkYsS0FLSyxJQUNIRixRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQmUsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLakIsQ0FBTCxHQUFTLEtBQUtNLE1BQUwsR0FBYyxDQUEvRCxJQUNBUyxRQUFRLENBQUNLLFFBQVQsQ0FBa0JwQixDQUFsQixJQUF1QixDQUZwQixFQUlIZSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQXZCLEdBQTJCUyxRQUFRLENBQUNFLE1BQTFEO0FBRUYsUUFDRUYsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQmMsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLaEIsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUE5RCxJQUNBUSxRQUFRLENBQUNLLFFBQVQsQ0FBa0JuQixDQUFsQixJQUF1QixDQUZ6QixFQUlFYyxRQUFRLENBQUNDLFFBQVQsQ0FBa0JmLENBQWxCLEdBQXNCLEtBQUtBLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBdEIsR0FBMEJRLFFBQVEsQ0FBQ0UsTUFBekQsQ0FKRixLQUtLLElBQ0hGLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmYsQ0FBbEIsR0FBc0JjLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2hCLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBOUQsSUFDQVEsUUFBUSxDQUFDSyxRQUFULENBQWtCbkIsQ0FBbEIsSUFBdUIsQ0FGcEIsRUFJSGMsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQXRCLEdBQTBCUSxRQUFRLENBQUNFLE1BQXpEO0FBQ0g7O0FBbEt1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXRoVXRpbHMgZnJvbSAnLi4vbWF0aC9NYXRoVXRpbHMnO1xuaW1wb3J0IFV0aWwgZnJvbSAnLi4vdXRpbHMvVXRpbCc7XG5pbXBvcnQgWm9uZSBmcm9tICcuL1pvbmUnO1xuaW1wb3J0IHsgWk9ORV9UWVBFX0JPWCBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJveFpvbmUgZXh0ZW5kcyBab25lIHtcbiAgLyoqXG4gICAqIEJveFpvbmUgaXMgYSBib3ggem9uZVxuICAgKiBAcGFyYW0ge051bWJlcnxWZWN0b3IzRH0geCAtIHRoZSBwb3NpdGlvbidzIHggdmFsdWUgb3IgYSBWZWN0b3IzRCBPYmplY3RcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHkgLSB0aGUgcG9zaXRpb24ncyB5IHZhbHVlXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB6IC0gdGhlIHBvc2l0aW9uJ3MgeiB2YWx1ZVxuICAgKiBAcGFyYW0ge051bWJlcn0gdyAtIHRoZSBCb3gncyB3aWR0aFxuICAgKiBAcGFyYW0ge051bWJlcn0gaCAtIHRoZSBCb3gncyBoZWlnaHRcbiAgICogQHBhcmFtIHtOdW1iZXJ9IGQgLSB0aGUgQm94J3MgZGVwdGhcbiAgICogQGV4YW1wbGVcbiAgICogdmFyIGJveFpvbmUgPSBuZXcgQm94Wm9uZSgwLDAsMCw1MCw1MCw1MCk7XG4gICAqIG9yXG4gICAqIHZhciBib3hab25lID0gbmV3IEJveFpvbmUobmV3IFZlY3RvcjNEKDAsMCwwKSwgNTAsIDUwLCA1MCk7XG4gICAqIEBleHRlbmRzIHtab25lfVxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIC8vIFRPRE8gdGhpcyByZWFzc2lnbmluZyBvZiBhcmd1bWVudHMgaXMgcHJldHR5IGRhbmdlcm91cywgbmVlZCB0byBmaXggaXQuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgdmFyIHgsIHksIHosIHcsIGgsIGQ7XG5cbiAgICBpZiAoVXRpbC5pc1VuZGVmaW5lZChiLCBjLCBkLCBlLCBmKSkge1xuICAgICAgeCA9IHkgPSB6ID0gMDtcbiAgICAgIHcgPSBoID0gZCA9IGEgfHwgMTAwO1xuICAgIH0gZWxzZSBpZiAoVXRpbC5pc1VuZGVmaW5lZChkLCBlLCBmKSkge1xuICAgICAgeCA9IHkgPSB6ID0gMDtcbiAgICAgIHcgPSBhO1xuICAgICAgaCA9IGI7XG4gICAgICBkID0gYztcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IGE7XG4gICAgICB5ID0gYjtcbiAgICAgIHogPSBjO1xuICAgICAgdyA9IGQ7XG4gICAgICBoID0gZTtcbiAgICAgIGQgPSBmO1xuICAgIH1cblxuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgICB0aGlzLnogPSB6O1xuICAgIHRoaXMud2lkdGggPSB3O1xuICAgIHRoaXMuaGVpZ2h0ID0gaDtcbiAgICB0aGlzLmRlcHRoID0gZDtcbiAgICAvLyBUT0RPIFNldCB0aGlzIHZpYSBhbiBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JcbiAgICB0aGlzLmZyaWN0aW9uID0gMC44NTtcbiAgICAvLyBUT0RPIFNldCB0aGlzIHZpYSBhbiBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JcbiAgICB0aGlzLm1heCA9IDY7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHRvIGluZGljYXRlIHRoaXMgaXMgYSBCb3hab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNCb3hab25lKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0UG9zaXRpb24oKSB7XG4gICAgdGhpcy52ZWN0b3IueCA9IHRoaXMueCArIE1hdGhVdGlscy5yYW5kb21BVG9CKC0wLjUsIDAuNSkgKiB0aGlzLndpZHRoO1xuICAgIHRoaXMudmVjdG9yLnkgPSB0aGlzLnkgKyBNYXRoVXRpbHMucmFuZG9tQVRvQigtMC41LCAwLjUpICogdGhpcy5oZWlnaHQ7XG4gICAgdGhpcy52ZWN0b3IueiA9IHRoaXMueiArIE1hdGhVdGlscy5yYW5kb21BVG9CKC0wLjUsIDAuNSkgKiB0aGlzLmRlcHRoO1xuXG4gICAgcmV0dXJuIHRoaXMudmVjdG9yO1xuICB9XG5cbiAgX2RlYWQocGFydGljbGUpIHtcbiAgICBpZiAocGFydGljbGUucG9zaXRpb24ueCArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueCAtIHRoaXMud2lkdGggLyAyKVxuICAgICAgcGFydGljbGUuZGVhZCA9IHRydWU7XG4gICAgZWxzZSBpZiAocGFydGljbGUucG9zaXRpb24ueCAtIHBhcnRpY2xlLnJhZGl1cyA+IHRoaXMueCArIHRoaXMud2lkdGggLyAyKVxuICAgICAgcGFydGljbGUuZGVhZCA9IHRydWU7XG5cbiAgICBpZiAocGFydGljbGUucG9zaXRpb24ueSArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueSAtIHRoaXMuaGVpZ2h0IC8gMilcbiAgICAgIHBhcnRpY2xlLmRlYWQgPSB0cnVlO1xuICAgIGVsc2UgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnkgLSBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnkgKyB0aGlzLmhlaWdodCAvIDIpXG4gICAgICBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcblxuICAgIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi56ICsgcGFydGljbGUucmFkaXVzIDwgdGhpcy56IC0gdGhpcy5kZXB0aCAvIDIpXG4gICAgICBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcbiAgICBlbHNlIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi56IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy56ICsgdGhpcy5kZXB0aCAvIDIpXG4gICAgICBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcbiAgfVxuXG4gIF9ib3VuZChwYXJ0aWNsZSkge1xuICAgIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi54IC0gcGFydGljbGUucmFkaXVzIDwgdGhpcy54IC0gdGhpcy53aWR0aCAvIDIpIHtcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSB0aGlzLnggLSB0aGlzLndpZHRoIC8gMiArIHBhcnRpY2xlLnJhZGl1cztcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggKj0gLXRoaXMuZnJpY3Rpb247XG4gICAgICB0aGlzLl9zdGF0aWMocGFydGljbGUsICd4Jyk7XG4gICAgfSBlbHNlIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi54ICsgcGFydGljbGUucmFkaXVzID4gdGhpcy54ICsgdGhpcy53aWR0aCAvIDIpIHtcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSB0aGlzLnggKyB0aGlzLndpZHRoIC8gMiAtIHBhcnRpY2xlLnJhZGl1cztcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggKj0gLXRoaXMuZnJpY3Rpb247XG4gICAgICB0aGlzLl9zdGF0aWMocGFydGljbGUsICd4Jyk7XG4gICAgfVxuXG4gICAgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnkgLSBwYXJ0aWNsZS5yYWRpdXMgPCB0aGlzLnkgLSB0aGlzLmhlaWdodCAvIDIpIHtcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSB0aGlzLnkgLSB0aGlzLmhlaWdodCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ICo9IC10aGlzLmZyaWN0aW9uO1xuICAgICAgdGhpcy5fc3RhdGljKHBhcnRpY2xlLCAneScpO1xuICAgIH0gZWxzZSBpZiAocGFydGljbGUucG9zaXRpb24ueSArIHBhcnRpY2xlLnJhZGl1cyA+IHRoaXMueSArIHRoaXMuaGVpZ2h0IC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9IHRoaXMueSArIHRoaXMuaGVpZ2h0IC8gMiAtIHBhcnRpY2xlLnJhZGl1cztcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnkgKj0gLXRoaXMuZnJpY3Rpb247XG4gICAgICB0aGlzLl9zdGF0aWMocGFydGljbGUsICd5Jyk7XG4gICAgfVxuXG4gICAgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnogLSBwYXJ0aWNsZS5yYWRpdXMgPCB0aGlzLnogLSB0aGlzLmRlcHRoIC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueiA9IHRoaXMueiAtIHRoaXMuZGVwdGggLyAyICsgcGFydGljbGUucmFkaXVzO1xuICAgICAgcGFydGljbGUudmVsb2NpdHkueiAqPSAtdGhpcy5mcmljdGlvbjtcbiAgICAgIHRoaXMuX3N0YXRpYyhwYXJ0aWNsZSwgJ3onKTtcbiAgICB9IGVsc2UgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnogKyBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnogKyB0aGlzLmRlcHRoIC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueiA9IHRoaXMueiArIHRoaXMuZGVwdGggLyAyIC0gcGFydGljbGUucmFkaXVzO1xuICAgICAgcGFydGljbGUudmVsb2NpdHkueiAqPSAtdGhpcy5mcmljdGlvbjtcbiAgICAgIHRoaXMuX3N0YXRpYyhwYXJ0aWNsZSwgJ3onKTtcbiAgICB9XG4gIH1cblxuICBfc3RhdGljKHBhcnRpY2xlLCBheGlzKSB7XG4gICAgaWYgKHBhcnRpY2xlLnZlbG9jaXR5W2F4aXNdICogcGFydGljbGUuYWNjZWxlcmF0aW9uW2F4aXNdID4gMCkgcmV0dXJuO1xuICAgIGlmIChcbiAgICAgIE1hdGguYWJzKHBhcnRpY2xlLnZlbG9jaXR5W2F4aXNdKSA8XG4gICAgICBNYXRoLmFicyhwYXJ0aWNsZS5hY2NlbGVyYXRpb25bYXhpc10pICogMC4wMTY3ICogdGhpcy5tYXhcbiAgICApIHtcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5W2F4aXNdID0gMDtcbiAgICAgIHBhcnRpY2xlLmFjY2VsZXJhdGlvbltheGlzXSA9IDA7XG4gICAgfVxuICB9XG5cbiAgX2Nyb3NzKHBhcnRpY2xlKSB7XG4gICAgaWYgKFxuICAgICAgcGFydGljbGUucG9zaXRpb24ueCArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueCAtIHRoaXMud2lkdGggLyAyICYmXG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS54IDw9IDBcbiAgICApXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ID0gdGhpcy54ICsgdGhpcy53aWR0aCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgZWxzZSBpZiAoXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy54ICsgdGhpcy53aWR0aCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggPj0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSB0aGlzLnggLSB0aGlzLndpZHRoIC8gMiAtIHBhcnRpY2xlLnJhZGl1cztcblxuICAgIGlmIChcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgKyBwYXJ0aWNsZS5yYWRpdXMgPCB0aGlzLnkgLSB0aGlzLmhlaWdodCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnkgPD0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSB0aGlzLnkgKyB0aGlzLmhlaWdodCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgZWxzZSBpZiAoXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy55ICsgdGhpcy5oZWlnaHQgLyAyICYmXG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID49IDBcbiAgICApXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gdGhpcy55IC0gdGhpcy5oZWlnaHQgLyAyIC0gcGFydGljbGUucmFkaXVzO1xuXG4gICAgaWYgKFxuICAgICAgcGFydGljbGUucG9zaXRpb24ueiArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueiAtIHRoaXMuZGVwdGggLyAyICYmXG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS56IDw9IDBcbiAgICApXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi56ID0gdGhpcy56ICsgdGhpcy5kZXB0aCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgZWxzZSBpZiAoXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi56IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy56ICsgdGhpcy5kZXB0aCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnogPj0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnogPSB0aGlzLnogLSB0aGlzLmRlcHRoIC8gMiAtIHBhcnRpY2xlLnJhZGl1cztcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/LineZone.js",
    "content": "import Vector3D from '../math/Vector3D';\nimport Zone from './Zone';\nimport { ZONE_TYPE_LINE as type } from './types';\nexport default class LineZone extends Zone {\n  /**\n   * LineZone is a 3d line zone\n   * @param {Number|Vector3D} x1 - the line's start point of x value or a Vector3D Object\n   * @param {Number|Vector3D} y1 - the line's start point of y value or a Vector3D Object\n   * @param {Number} z1 - the line's start point of z value\n   * @param {Number} x2 - the line's end point of x value\n   * @param {Number} y2 - the line's end point of y value\n   * @param {Number} z2 - the line's end point of z value\n   * @example\n   * var lineZone = new System.LineZone(0,0,0,100,100,0);\n   * or\n   * var lineZone = new System.LineZone(new System.Vector3D(0,0,0),new System.Vector3D(100,100,0));\n   * @extends {Zone}\n   * @constructor\n   */\n  constructor(x1, y1, z1, x2, y2, z2) {\n    super(type);\n\n    if (x1 instanceof Vector3D) {\n      this.x1 = x1.x;\n      this.y1 = x1.y;\n      this.z1 = x1.z;\n      this.x2 = x2.x;\n      this.y2 = x2.y;\n      this.z2 = x2.z;\n    } else {\n      this.x1 = x1;\n      this.y1 = y1;\n      this.z1 = z1;\n      this.x2 = x2;\n      this.y2 = y2;\n      this.z2 = z2;\n    }\n\n    this.supportsCrossing = false;\n  }\n  /**\n   * Returns true to indicate this is a LineZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isLineZone() {\n    return true;\n  }\n\n  getPosition() {\n    this.random = Math.random();\n    this.vector.x = this.x1 + this.random * (this.x2 - this.x1);\n    this.vector.y = this.y1 + this.random * (this.y2 - this.y1);\n    this.vector.z = this.z1 + this.random * (this.z2 - this.z1);\n    return this.vector;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL0xpbmVab25lLmpzIl0sIm5hbWVzIjpbIlZlY3RvcjNEIiwiWm9uZSIsIlpPTkVfVFlQRV9MSU5FIiwidHlwZSIsIkxpbmVab25lIiwiY29uc3RydWN0b3IiLCJ4MSIsInkxIiwiejEiLCJ4MiIsInkyIiwiejIiLCJ4IiwieSIsInoiLCJzdXBwb3J0c0Nyb3NzaW5nIiwiaXNMaW5lWm9uZSIsImdldFBvc2l0aW9uIiwicmFuZG9tIiwiTWF0aCIsInZlY3RvciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsUUFBUCxNQUFxQixrQkFBckI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsU0FBU0MsY0FBYyxJQUFJQyxJQUEzQixRQUF1QyxTQUF2QztBQUVBLGVBQWUsTUFBTUMsUUFBTixTQUF1QkgsSUFBdkIsQ0FBNEI7QUFDekM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VJLEVBQUFBLFdBQVcsQ0FBQ0MsRUFBRCxFQUFLQyxFQUFMLEVBQVNDLEVBQVQsRUFBYUMsRUFBYixFQUFpQkMsRUFBakIsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDLFVBQU1SLElBQU47O0FBRUEsUUFBSUcsRUFBRSxZQUFZTixRQUFsQixFQUE0QjtBQUMxQixXQUFLTSxFQUFMLEdBQVVBLEVBQUUsQ0FBQ00sQ0FBYjtBQUNBLFdBQUtMLEVBQUwsR0FBVUQsRUFBRSxDQUFDTyxDQUFiO0FBQ0EsV0FBS0wsRUFBTCxHQUFVRixFQUFFLENBQUNRLENBQWI7QUFFQSxXQUFLTCxFQUFMLEdBQVVBLEVBQUUsQ0FBQ0csQ0FBYjtBQUNBLFdBQUtGLEVBQUwsR0FBVUQsRUFBRSxDQUFDSSxDQUFiO0FBQ0EsV0FBS0YsRUFBTCxHQUFVRixFQUFFLENBQUNLLENBQWI7QUFDRCxLQVJELE1BUU87QUFDTCxXQUFLUixFQUFMLEdBQVVBLEVBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFFQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDRDs7QUFFRCxTQUFLSSxnQkFBTCxHQUF3QixLQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLFVBQVUsR0FBRztBQUNYLFdBQU8sSUFBUDtBQUNEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxNQUFMLEdBQWNDLElBQUksQ0FBQ0QsTUFBTCxFQUFkO0FBQ0EsU0FBS0UsTUFBTCxDQUFZUixDQUFaLEdBQWdCLEtBQUtOLEVBQUwsR0FBVSxLQUFLWSxNQUFMLElBQWUsS0FBS1QsRUFBTCxHQUFVLEtBQUtILEVBQTlCLENBQTFCO0FBQ0EsU0FBS2MsTUFBTCxDQUFZUCxDQUFaLEdBQWdCLEtBQUtOLEVBQUwsR0FBVSxLQUFLVyxNQUFMLElBQWUsS0FBS1IsRUFBTCxHQUFVLEtBQUtILEVBQTlCLENBQTFCO0FBQ0EsU0FBS2EsTUFBTCxDQUFZTixDQUFaLEdBQWdCLEtBQUtOLEVBQUwsR0FBVSxLQUFLVSxNQUFMLElBQWUsS0FBS1AsRUFBTCxHQUFVLEtBQUtILEVBQTlCLENBQTFCO0FBRUEsV0FBTyxLQUFLWSxNQUFaO0FBQ0Q7O0FBeER3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWN0b3IzRCBmcm9tICcuLi9tYXRoL1ZlY3RvcjNEJztcbmltcG9ydCBab25lIGZyb20gJy4vWm9uZSc7XG5pbXBvcnQgeyBaT05FX1RZUEVfTElORSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpbmVab25lIGV4dGVuZHMgWm9uZSB7XG4gIC8qKlxuICAgKiBMaW5lWm9uZSBpcyBhIDNkIGxpbmUgem9uZVxuICAgKiBAcGFyYW0ge051bWJlcnxWZWN0b3IzRH0geDEgLSB0aGUgbGluZSdzIHN0YXJ0IHBvaW50IG9mIHggdmFsdWUgb3IgYSBWZWN0b3IzRCBPYmplY3RcbiAgICogQHBhcmFtIHtOdW1iZXJ8VmVjdG9yM0R9IHkxIC0gdGhlIGxpbmUncyBzdGFydCBwb2ludCBvZiB5IHZhbHVlIG9yIGEgVmVjdG9yM0QgT2JqZWN0XG4gICAqIEBwYXJhbSB7TnVtYmVyfSB6MSAtIHRoZSBsaW5lJ3Mgc3RhcnQgcG9pbnQgb2YgeiB2YWx1ZVxuICAgKiBAcGFyYW0ge051bWJlcn0geDIgLSB0aGUgbGluZSdzIGVuZCBwb2ludCBvZiB4IHZhbHVlXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB5MiAtIHRoZSBsaW5lJ3MgZW5kIHBvaW50IG9mIHkgdmFsdWVcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHoyIC0gdGhlIGxpbmUncyBlbmQgcG9pbnQgb2YgeiB2YWx1ZVxuICAgKiBAZXhhbXBsZVxuICAgKiB2YXIgbGluZVpvbmUgPSBuZXcgU3lzdGVtLkxpbmVab25lKDAsMCwwLDEwMCwxMDAsMCk7XG4gICAqIG9yXG4gICAqIHZhciBsaW5lWm9uZSA9IG5ldyBTeXN0ZW0uTGluZVpvbmUobmV3IFN5c3RlbS5WZWN0b3IzRCgwLDAsMCksbmV3IFN5c3RlbS5WZWN0b3IzRCgxMDAsMTAwLDApKTtcbiAgICogQGV4dGVuZHMge1pvbmV9XG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IoeDEsIHkxLCB6MSwgeDIsIHkyLCB6Mikge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgaWYgKHgxIGluc3RhbmNlb2YgVmVjdG9yM0QpIHtcbiAgICAgIHRoaXMueDEgPSB4MS54O1xuICAgICAgdGhpcy55MSA9IHgxLnk7XG4gICAgICB0aGlzLnoxID0geDEuejtcblxuICAgICAgdGhpcy54MiA9IHgyLng7XG4gICAgICB0aGlzLnkyID0geDIueTtcbiAgICAgIHRoaXMuejIgPSB4Mi56O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLngxID0geDE7XG4gICAgICB0aGlzLnkxID0geTE7XG4gICAgICB0aGlzLnoxID0gejE7XG5cbiAgICAgIHRoaXMueDIgPSB4MjtcbiAgICAgIHRoaXMueTIgPSB5MjtcbiAgICAgIHRoaXMuejIgPSB6MjtcbiAgICB9XG5cbiAgICB0aGlzLnN1cHBvcnRzQ3Jvc3NpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgdGhpcyBpcyBhIExpbmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNMaW5lWm9uZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCkge1xuICAgIHRoaXMucmFuZG9tID0gTWF0aC5yYW5kb20oKTtcbiAgICB0aGlzLnZlY3Rvci54ID0gdGhpcy54MSArIHRoaXMucmFuZG9tICogKHRoaXMueDIgLSB0aGlzLngxKTtcbiAgICB0aGlzLnZlY3Rvci55ID0gdGhpcy55MSArIHRoaXMucmFuZG9tICogKHRoaXMueTIgLSB0aGlzLnkxKTtcbiAgICB0aGlzLnZlY3Rvci56ID0gdGhpcy56MSArIHRoaXMucmFuZG9tICogKHRoaXMuejIgLSB0aGlzLnoxKTtcblxuICAgIHJldHVybiB0aGlzLnZlY3RvcjtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/MeshZone.js",
    "content": "import Zone from './Zone';\nimport { ZONE_TYPE_MESH as type } from './types';\n/**\n * Uses a three THREE.BufferGeometry to determine the zone parameters.\n *\n */\n\nexport default class MeshZone extends Zone {\n  /**\n   * @constructs {MeshZone}\n   *\n   * @param {THREE.BufferGeometry|Mesh} bounds - the geometry or mesh that will determine the zone bounds\n   * @param {number} scale - the zone scale\n   * @return void\n   */\n  constructor(bounds, scale = 1) {\n    super(type);\n    this.geometry = null;\n    this.scale = scale;\n    this.supportsCrossing = false;\n\n    if (bounds.type && bounds.type === 'Geometry') {\n      this.geometry = bounds;\n    }\n\n    if (bounds.geometry) {\n      this.geometry = bounds.geometry;\n    }\n\n    if (!this.geometry) {\n      throw new Error('MeshZone unable to set geometry from the supplied bounds');\n    }\n  }\n  /**\n   * Returns true to indicate this is a MeshZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isMeshZone() {\n    return true;\n  }\n\n  getPosition() {\n    if(!this.geometry.attributes.position) {\n      this.vector.x = 0;\n      this.vector.y = 0;\n      this.vector.z = 0;\n      return this.vector;\n    }\n\n    if(this.geometry.index){\n      const rVector = ((this.geometry.index.count / 3) * Math.random() >> 0) * 3;\n      this.vector.x = this.geometry.attributes.position.array[this.geometry.index.array[rVector]] * this.scale;\n      this.vector.y = this.geometry.attributes.position.array[this.geometry.index.array[rVector + 1]] * this.scale;\n      this.vector.z = this.geometry.attributes.position.array[this.geometry.index.array[rVector + 2]] * this.scale;\n      return this.vector;\n    }else{\n      const rVector = this.geometry.attributes.position.count * Math.random() >> 0;\n      this.vector.x = this.geometry.attributes.position.array[rVector] * this.scale;\n      this.vector.y = this.geometry.attributes.position.array[rVector + 1] * this.scale;\n      this.vector.z = this.geometry.attributes.position.array[rVector + 2] * this.scale;\n      return this.vector;\n    }\n  }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL01lc2hab25lLmpzIl0sIm5hbWVzIjpbIlpvbmUiLCJaT05FX1RZUEVfTUVTSCIsInR5cGUiLCJNZXNoWm9uZSIsImNvbnN0cnVjdG9yIiwiYm91bmRzIiwic2NhbGUiLCJUaHJlZUdlb21ldHJ5IiwiZ2VvbWV0cnkiLCJzdXBwb3J0c0Nyb3NzaW5nIiwiRXJyb3IiLCJpc0J1ZmZlckdlb21ldHJ5IiwiZnJvbUJ1ZmZlckdlb21ldHJ5IiwiaXNNZXNoWm9uZSIsImdldFBvc2l0aW9uIiwidmVydGljZXMiLCJyVmVjdG9yIiwibGVuZ3RoIiwiTWF0aCIsInJhbmRvbSIsInZlY3RvciIsIngiLCJ5IiwieiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsSUFBUCxNQUFpQixRQUFqQjtBQUNBLFNBQVNDLGNBQWMsSUFBSUMsSUFBM0IsUUFBdUMsU0FBdkM7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFFBQU4sU0FBdUJILElBQXZCLENBQTRCO0FBQ3pDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxNQUFELEVBQVNDLEtBQUssR0FBRyxDQUFqQixFQUFvQkMsYUFBcEIsRUFBbUM7QUFDNUMsVUFBTUwsSUFBTjtBQUVBLFNBQUtNLFFBQUwsR0FBZ0IsSUFBaEI7QUFDQSxTQUFLRixLQUFMLEdBQWFBLEtBQWI7QUFDQSxTQUFLRyxnQkFBTCxHQUF3QixLQUF4Qjs7QUFFQSxRQUFJSixNQUFNLENBQUNILElBQVAsSUFBZUcsTUFBTSxDQUFDSCxJQUFQLEtBQWdCLFVBQW5DLEVBQStDO0FBQzdDLFdBQUtNLFFBQUwsR0FBZ0JILE1BQWhCO0FBQ0Q7O0FBRUQsUUFBSUEsTUFBTSxDQUFDRyxRQUFYLEVBQXFCO0FBQ25CLFdBQUtBLFFBQUwsR0FBZ0JILE1BQU0sQ0FBQ0csUUFBdkI7QUFDRDs7QUFFRCxRQUFJLENBQUMsS0FBS0EsUUFBVixFQUFvQjtBQUNsQixZQUFNLElBQUlFLEtBQUosQ0FDSiwwREFESSxDQUFOO0FBR0Q7O0FBRUQsUUFBSSxLQUFLRixRQUFMLENBQWNHLGdCQUFsQixFQUFvQztBQUNsQyxXQUFLSCxRQUFMLEdBQWdCLElBQUlELGFBQUosR0FBb0JLLGtCQUFwQixDQUF1QyxLQUFLSixRQUE1QyxDQUFoQjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUssRUFBQUEsVUFBVSxHQUFHO0FBQ1gsV0FBTyxJQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFdBQVcsR0FBRztBQUNaLFVBQU1DLFFBQVEsR0FBRyxLQUFLUCxRQUFMLENBQWNPLFFBQS9CO0FBQ0EsVUFBTUMsT0FBTyxHQUFHRCxRQUFRLENBQUVBLFFBQVEsQ0FBQ0UsTUFBVCxHQUFrQkMsSUFBSSxDQUFDQyxNQUFMLEVBQW5CLElBQXFDLENBQXRDLENBQXhCO0FBRUEsU0FBS0MsTUFBTCxDQUFZQyxDQUFaLEdBQWdCTCxPQUFPLENBQUNLLENBQVIsR0FBWSxLQUFLZixLQUFqQztBQUNBLFNBQUtjLE1BQUwsQ0FBWUUsQ0FBWixHQUFnQk4sT0FBTyxDQUFDTSxDQUFSLEdBQVksS0FBS2hCLEtBQWpDO0FBQ0EsU0FBS2MsTUFBTCxDQUFZRyxDQUFaLEdBQWdCUCxPQUFPLENBQUNPLENBQVIsR0FBWSxLQUFLakIsS0FBakM7QUFFQSxXQUFPLEtBQUtjLE1BQVo7QUFDRDs7QUFyRHdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFpvbmUgZnJvbSAnLi9ab25lJztcbmltcG9ydCB7IFpPTkVfVFlQRV9NRVNIIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBVc2VzIGEgdGhyZWUgVEhSRUUuR2VvbWV0cnkgdG8gZGV0ZXJtaW5lIHRoZSB6b25lIHBhcmFtZXRlcnMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZXNoWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQGNvbnN0cnVjdHMge01lc2hab25lfVxuICAgKlxuICAgKiBAcGFyYW0ge1RIUkVFLkdlb21ldHJ5fE1lc2h9IGJvdW5kcyAtIHRoZSBnZW9tZXRyeSBvciBtZXNoIHRoYXQgd2lsbCBkZXRlcm1pbmUgdGhlIHpvbmUgYm91bmRzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZSAtIHRoZSB6b25lIHNjYWxlXG4gICAqIEBwYXJhbSB7VEhSRUUuR2VvbWV0cnl9IFRocmVlR2VvbWV0cnkgLSB0aGUgdGhyZWUgZ2VvbWV0cnkgY2xhc3NcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihib3VuZHMsIHNjYWxlID0gMSwgVGhyZWVHZW9tZXRyeSkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5nZW9tZXRyeSA9IG51bGw7XG4gICAgdGhpcy5zY2FsZSA9IHNjYWxlO1xuICAgIHRoaXMuc3VwcG9ydHNDcm9zc2luZyA9IGZhbHNlO1xuXG4gICAgaWYgKGJvdW5kcy50eXBlICYmIGJvdW5kcy50eXBlID09PSAnR2VvbWV0cnknKSB7XG4gICAgICB0aGlzLmdlb21ldHJ5ID0gYm91bmRzO1xuICAgIH1cblxuICAgIGlmIChib3VuZHMuZ2VvbWV0cnkpIHtcbiAgICAgIHRoaXMuZ2VvbWV0cnkgPSBib3VuZHMuZ2VvbWV0cnk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmdlb21ldHJ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdNZXNoWm9uZSB1bmFibGUgdG8gc2V0IGdlb21ldHJ5IGZyb20gdGhlIHN1cHBsaWVkIGJvdW5kcydcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSkge1xuICAgICAgdGhpcy5nZW9tZXRyeSA9IG5ldyBUaHJlZUdlb21ldHJ5KCkuZnJvbUJ1ZmZlckdlb21ldHJ5KHRoaXMuZ2VvbWV0cnkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgdGhpcyBpcyBhIE1lc2hab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNNZXNoWm9uZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCkge1xuICAgIGNvbnN0IHZlcnRpY2VzID0gdGhpcy5nZW9tZXRyeS52ZXJ0aWNlcztcbiAgICBjb25zdCByVmVjdG9yID0gdmVydGljZXNbKHZlcnRpY2VzLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpID4+IDBdO1xuXG4gICAgdGhpcy52ZWN0b3IueCA9IHJWZWN0b3IueCAqIHRoaXMuc2NhbGU7XG4gICAgdGhpcy52ZWN0b3IueSA9IHJWZWN0b3IueSAqIHRoaXMuc2NhbGU7XG4gICAgdGhpcy52ZWN0b3IueiA9IHJWZWN0b3IueiAqIHRoaXMuc2NhbGU7XG5cbiAgICByZXR1cm4gdGhpcy52ZWN0b3I7XG4gIH1cbn1cbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/PointZone.js",
    "content": "import Util from '../utils/Util';\nimport Zone from './Zone';\nimport { ZONE_TYPE_POINT as type } from './types';\nexport default class PointZone extends Zone {\n  /**\n   * PointZone is a point zone\n   * @param {Number|Vector3D} x - the center's x value or a Vector3D Object\n   * @param {Number} y - the center's y value\n   * @param {Number} z - the center's z value\n   * @example\n   * var pointZone = new System.PointZone(0,30,10);\n   * or\n   * var pointZone = new System.PointZone(new System.Vector3D(0,30,10));\n   * @extends {Zone}\n   * @constructor\n   */\n  constructor(a, b, c) {\n    super(type); // TODO see below, these should probably be assigned properly\n    // eslint-disable-next-line\n\n    var x, y, z;\n\n    if (Util.isUndefined(a, b, c)) {\n      x = y = z = 0;\n    } else {\n      x = a; // eslint-disable-next-line\n\n      y = b; // eslint-disable-next-line\n\n      z = c;\n    }\n\n    this.x = x;\n\n    this.y = y;\n\n    this.z = z;\n    this.supportsCrossing = false;\n  }\n  /**\n   * Returns true to indicate this is a PointZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isPointZone() {\n    return true;\n  }\n\n  getPosition() {\n    this.vector.x = this.x;\n    this.vector.y = this.y;\n    this.vector.z = this.z;\n    return this.vector;\n  }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL1BvaW50Wm9uZS5qcyJdLCJuYW1lcyI6WyJVdGlsIiwiWm9uZSIsIlpPTkVfVFlQRV9QT0lOVCIsInR5cGUiLCJQb2ludFpvbmUiLCJjb25zdHJ1Y3RvciIsImEiLCJiIiwiYyIsIngiLCJ5IiwieiIsImlzVW5kZWZpbmVkIiwic3VwcG9ydHNDcm9zc2luZyIsImlzUG9pbnRab25lIiwiZ2V0UG9zaXRpb24iLCJ2ZWN0b3IiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLElBQVAsTUFBaUIsZUFBakI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsU0FBU0MsZUFBZSxJQUFJQyxJQUE1QixRQUF3QyxTQUF4QztBQUVBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkgsSUFBeEIsQ0FBNkI7QUFDMUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VJLEVBQUFBLFdBQVcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVTtBQUNuQixVQUFNTCxJQUFOLEVBRG1CLENBR25CO0FBQ0E7O0FBQ0EsUUFBSU0sQ0FBSixFQUFPQyxDQUFQLEVBQVVDLENBQVY7O0FBRUEsUUFBSVgsSUFBSSxDQUFDWSxXQUFMLENBQWlCTixDQUFqQixFQUFvQkMsQ0FBcEIsRUFBdUJDLENBQXZCLENBQUosRUFBK0I7QUFDN0JDLE1BQUFBLENBQUMsR0FBR0MsQ0FBQyxHQUFHQyxDQUFDLEdBQUcsQ0FBWjtBQUNELEtBRkQsTUFFTztBQUNMRixNQUFBQSxDQUFDLEdBQUdILENBQUosQ0FESyxDQUVMOztBQUNBSSxNQUFBQSxDQUFDLEdBQUdILENBQUosQ0FISyxDQUlMOztBQUNBSSxNQUFBQSxDQUFDLEdBQUdILENBQUo7QUFDRDs7QUFFRCxTQUFLQyxDQUFMLEdBQVNBLENBQVQsQ0FqQm1CLENBbUJuQjs7QUFDQSxTQUFLQyxDQUFMLEdBQVNELENBQVQsQ0FwQm1CLENBc0JuQjs7QUFDQSxTQUFLRSxDQUFMLEdBQVNGLENBQVQ7QUFDQSxTQUFLSSxnQkFBTCxHQUF3QixLQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLFdBQVcsR0FBRztBQUNaLFdBQU8sSUFBUDtBQUNEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxNQUFMLENBQVlQLENBQVosR0FBZ0IsS0FBS0EsQ0FBckI7QUFDQSxTQUFLTyxNQUFMLENBQVlOLENBQVosR0FBZ0IsS0FBS0EsQ0FBckI7QUFDQSxTQUFLTSxNQUFMLENBQVlMLENBQVosR0FBZ0IsS0FBS0EsQ0FBckI7QUFFQSxXQUFPLEtBQUtLLE1BQVo7QUFDRDs7QUF2RHlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFV0aWwgZnJvbSAnLi4vdXRpbHMvVXRpbCc7XG5pbXBvcnQgWm9uZSBmcm9tICcuL1pvbmUnO1xuaW1wb3J0IHsgWk9ORV9UWVBFX1BPSU5UIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9pbnRab25lIGV4dGVuZHMgWm9uZSB7XG4gIC8qKlxuICAgKiBQb2ludFpvbmUgaXMgYSBwb2ludCB6b25lXG4gICAqIEBwYXJhbSB7TnVtYmVyfFZlY3RvcjNEfSB4IC0gdGhlIGNlbnRlcidzIHggdmFsdWUgb3IgYSBWZWN0b3IzRCBPYmplY3RcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHkgLSB0aGUgY2VudGVyJ3MgeSB2YWx1ZVxuICAgKiBAcGFyYW0ge051bWJlcn0geiAtIHRoZSBjZW50ZXIncyB6IHZhbHVlXG4gICAqIEBleGFtcGxlXG4gICAqIHZhciBwb2ludFpvbmUgPSBuZXcgU3lzdGVtLlBvaW50Wm9uZSgwLDMwLDEwKTtcbiAgICogb3JcbiAgICogdmFyIHBvaW50Wm9uZSA9IG5ldyBTeXN0ZW0uUG9pbnRab25lKG5ldyBTeXN0ZW0uVmVjdG9yM0QoMCwzMCwxMCkpO1xuICAgKiBAZXh0ZW5kcyB7Wm9uZX1cbiAgICogQGNvbnN0cnVjdG9yXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhLCBiLCBjKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICAvLyBUT0RPIHNlZSBiZWxvdywgdGhlc2Ugc2hvdWxkIHByb2JhYmx5IGJlIGFzc2lnbmVkIHByb3Blcmx5XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgdmFyIHgsIHksIHo7XG5cbiAgICBpZiAoVXRpbC5pc1VuZGVmaW5lZChhLCBiLCBjKSkge1xuICAgICAgeCA9IHkgPSB6ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IGE7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIHkgPSBiO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICB6ID0gYztcbiAgICB9XG5cbiAgICB0aGlzLnggPSB4O1xuXG4gICAgLy8gVE9ETyBzaG91bGRuJ3QgdGhpcyBiZSBzZXQgdG8geT9cbiAgICB0aGlzLnkgPSB4O1xuXG4gICAgLy8gVE9ETyBzaG91bGRuJ3QgdGhpcyBiZSBzZXQgdG8gej9cbiAgICB0aGlzLnogPSB4O1xuICAgIHRoaXMuc3VwcG9ydHNDcm9zc2luZyA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSB0byBpbmRpY2F0ZSB0aGlzIGlzIGEgUG9pbnRab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNQb2ludFpvbmUoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRQb3NpdGlvbigpIHtcbiAgICB0aGlzLnZlY3Rvci54ID0gdGhpcy54O1xuICAgIHRoaXMudmVjdG9yLnkgPSB0aGlzLnk7XG4gICAgdGhpcy52ZWN0b3IueiA9IHRoaXMuejtcblxuICAgIHJldHVybiB0aGlzLnZlY3RvcjtcbiAgfVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/ScreenZone.js",
    "content": "import THREEUtil from '../utils/THREEUtil';\nimport Vector3D from '../math/Vector3D';\nimport Zone from './Zone';\nimport { ZONE_TYPE_SCREEN as type } from './types';\nexport default class ScreenZone extends Zone {\n  /**\n   * ScreenZone is a screen zone\n   * @param {camera} camera - THREE.js camera\n   * @param {renderer} renderer - THREE.js renderer\n   * @param {Number} dis - the distance from the screen edge\n   * @param {String} dir - the direction of the screen zone\n   * @extends {Zone}\n   * @constructor\n   */\n  constructor(camera, renderer, dis, dir) {\n    super(type);\n    this.camera = camera;\n    this.renderer = renderer;\n    this.dis = dis || 20;\n    dir = dir || '1234';\n\n    for (var i = 1; i < 5; i++) this['d' + i] = dir.indexOf(i + '') >= 0;\n  }\n  /**\n   * Returns true to indicate this is a ScreenZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isScreenZone() {\n    return true;\n  }\n\n  _dead(particle) {\n    var pos = THREEUtil.toScreenPos(particle.position, this.camera, this.renderer.domElement);\n    var canvas = this.renderer.domElement;\n\n    if (pos.y + particle.radius < -this.dis && this.d1) {\n      particle.dead = true;\n    } else if (pos.y - particle.radius > canvas.height + this.dis && this.d3) {\n      particle.dead = true;\n    }\n\n    if (pos.x + particle.radius < -this.dis && this.d4) {\n      particle.dead = true;\n    } else if (pos.x - particle.radius > canvas.width + this.dis && this.d2) {\n      particle.dead = true;\n    }\n  }\n\n  _bound(particle) {\n    var pos = THREEUtil.toScreenPos(particle.position, this.camera, this.renderer.domElement);\n    var canvas = this.renderer.domElement;\n\n    if (pos.y + particle.radius < -this.dis) {\n      particle.velocity.y *= -1;\n    } else if (pos.y - particle.radius > canvas.height + this.dis) {\n      particle.velocity.y *= -1;\n    }\n\n    if (pos.x + particle.radius < -this.dis) {\n      particle.velocity.y *= -1;\n    } else if (pos.x - particle.radius > canvas.width + this.dis) {\n      particle.velocity.y *= -1;\n    }\n  }\n\n}\n\nScreenZone.prototype.getPosition = function () {\n  var vec2 = new Vector3D(),\n      canvas;\n  return function () {\n    canvas = this.renderer.domElement;\n    vec2.x = Math.random() * canvas.width;\n    vec2.y = Math.random() * canvas.height;\n    this.vector.copy(THREEUtil.toSpacePos(vec2, this.camera, canvas));\n    return this.vector;\n  };\n}();\n\nScreenZone.prototype._cross = function () {\n  var vec2 = new Vector3D();\n  return function (particle) {\n    var pos = THREEUtil.toScreenPos(particle.position, this.camera, this.renderer.domElement);\n    var canvas = this.renderer.domElement;\n\n    if (pos.y + particle.radius < -this.dis) {\n      vec2.x = pos.x;\n      vec2.y = canvas.height + this.dis + particle.radius;\n      particle.position.y = THREEUtil.toSpacePos(vec2, this.camera, canvas).y;\n    } else if (pos.y - particle.radius > canvas.height + this.dis) {\n      vec2.x = pos.x;\n      vec2.y = -this.dis - particle.radius;\n      particle.position.y = THREEUtil.toSpacePos(vec2, this.camera, canvas).y;\n    }\n\n    if (pos.x + particle.radius < -this.dis) {\n      vec2.y = pos.y;\n      vec2.x = canvas.width + this.dis + particle.radius;\n      particle.position.x = THREEUtil.toSpacePos(vec2, this.camera, canvas).x;\n    } else if (pos.x - particle.radius > canvas.width + this.dis) {\n      vec2.y = pos.y;\n      vec2.x = -this.dis - particle.radius;\n      particle.position.x = THREEUtil.toSpacePos(vec2, this.camera, canvas).x;\n    }\n  };\n}();"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/SphereZone.js",
    "content": "import { PI } from '../constants';\nimport Util from '../utils/Util';\nimport Vector3D from '../math/Vector3D';\nimport Zone from './Zone';\nimport { ZONE_TYPE_SPHERE as type } from './types';\n/**\n * A spherical zone for particles to be emitted within.\n *\n */\n\nexport default class SphereZone extends Zone {\n  /**\n   * @constructs {SphereZone}\n   *\n   * @param {number} centerX - the sphere's center x coordinate\n   * @param {number} centerY - the sphere's center y coordinate\n   * @param {number} centerZ - the sphere's center z coordinate\n   * @param {number} radius - the sphere's radius value\n   * @return void\n   */\n  constructor(centerX, centerY, centerZ, radius) {\n    super(type); // TODO see below, these should probably be assigned properly\n    // eslint-disable-next-line\n\n    let x, y, z, r;\n\n    if (Util.isUndefined(centerY, centerZ, radius)) {\n      x = y = z = 0;\n      r = centerX || 100;\n    } else {\n      x = centerX; // eslint-disable-next-line\n\n      y = centerY; // eslint-disable-next-line\n\n      z = centerZ;\n      r = radius;\n    }\n\n    this.x = x; // TODO shouldn't this be set to y?\n\n    this.y = x; // TODO shouldn't this be set to z?\n\n    this.z = x;\n    this.radius = r;\n    this.the = this.phi = 0;\n  }\n  /**\n   * Returns true to indicate this is a SphereZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isSphereZone() {\n    return true;\n  }\n  /**\n   * Sets the particle to dead if the particle collides with the sphere.\n   *\n   * @param {object} particle\n   * @return void\n   */\n\n\n  _dead(particle) {\n    var d = particle.position.distanceTo(this);\n    if (d - particle.radius > this.radius) particle.dead = true;\n  }\n  /**\n   * Warns that this zone does not support the _cross method.\n   *\n   * @return void\n   */\n\n\n  _cross() {\n    console.warn(`${this.constructor.name} does not support the _cross method`);\n  }\n\n}\n\nSphereZone.prototype.getPosition = function () {\n  var tha, phi, r;\n  return function () {\n    this.random = Math.random();\n    r = this.random * this.radius;\n    tha = PI * Math.random(); //[0-pi]\n\n    phi = PI * 2 * Math.random(); //[0-2pi]\n\n    this.vector.x = this.x + r * Math.sin(tha) * Math.cos(phi);\n    this.vector.y = this.y + r * Math.sin(phi) * Math.sin(tha);\n    this.vector.z = this.z + r * Math.cos(tha);\n    return this.vector;\n  };\n}();\n\nSphereZone.prototype._bound = function () {\n  var normal = new Vector3D(),\n      v = new Vector3D(),\n      k;\n  return function (particle) {\n    var d = particle.position.distanceTo(this);\n\n    if (d + particle.radius >= this.radius) {\n      normal.copy(particle.position).sub(this).normalize();\n      v.copy(particle.velocity);\n      k = 2 * v.dot(normal);\n      particle.velocity.sub(normal.scalar(k));\n    }\n  };\n}();\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL1NwaGVyZVpvbmUuanMiXSwibmFtZXMiOlsiUEkiLCJVdGlsIiwiVmVjdG9yM0QiLCJab25lIiwiWk9ORV9UWVBFX1NQSEVSRSIsInR5cGUiLCJTcGhlcmVab25lIiwiY29uc3RydWN0b3IiLCJjZW50ZXJYIiwiY2VudGVyWSIsImNlbnRlcloiLCJyYWRpdXMiLCJ4IiwieSIsInoiLCJyIiwiaXNVbmRlZmluZWQiLCJ0aGUiLCJwaGkiLCJpc1NwaGVyZVpvbmUiLCJfZGVhZCIsInBhcnRpY2xlIiwiZCIsInBvc2l0aW9uIiwiZGlzdGFuY2VUbyIsImRlYWQiLCJfY3Jvc3MiLCJjb25zb2xlIiwid2FybiIsIm5hbWUiLCJwcm90b3R5cGUiLCJnZXRQb3NpdGlvbiIsInRoYSIsInJhbmRvbSIsIk1hdGgiLCJ2ZWN0b3IiLCJzaW4iLCJjb3MiLCJfYm91bmQiLCJub3JtYWwiLCJ2IiwiayIsImNvcHkiLCJzdWIiLCJub3JtYWxpemUiLCJ2ZWxvY2l0eSIsImRvdCIsInNjYWxhciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsRUFBVCxRQUFtQixjQUFuQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsZUFBakI7QUFDQSxPQUFPQyxRQUFQLE1BQXFCLGtCQUFyQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsUUFBakI7QUFDQSxTQUFTQyxnQkFBZ0IsSUFBSUMsSUFBN0IsUUFBeUMsU0FBekM7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFVBQU4sU0FBeUJILElBQXpCLENBQThCO0FBQzNDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSSxFQUFBQSxXQUFXLENBQUNDLE9BQUQsRUFBVUMsT0FBVixFQUFtQkMsT0FBbkIsRUFBNEJDLE1BQTVCLEVBQW9DO0FBQzdDLFVBQU1OLElBQU4sRUFENkMsQ0FHN0M7QUFDQTs7QUFDQSxRQUFJTyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsQ0FBVixFQUFhQyxDQUFiOztBQUVBLFFBQUlkLElBQUksQ0FBQ2UsV0FBTCxDQUFpQlAsT0FBakIsRUFBMEJDLE9BQTFCLEVBQW1DQyxNQUFuQyxDQUFKLEVBQWdEO0FBQzlDQyxNQUFBQSxDQUFDLEdBQUdDLENBQUMsR0FBR0MsQ0FBQyxHQUFHLENBQVo7QUFDQUMsTUFBQUEsQ0FBQyxHQUFHUCxPQUFPLElBQUksR0FBZjtBQUNELEtBSEQsTUFHTztBQUNMSSxNQUFBQSxDQUFDLEdBQUdKLE9BQUosQ0FESyxDQUVMOztBQUNBSyxNQUFBQSxDQUFDLEdBQUdKLE9BQUosQ0FISyxDQUlMOztBQUNBSyxNQUFBQSxDQUFDLEdBQUdKLE9BQUo7QUFDQUssTUFBQUEsQ0FBQyxHQUFHSixNQUFKO0FBQ0Q7O0FBRUQsU0FBS0MsQ0FBTCxHQUFTQSxDQUFULENBbkI2QyxDQXFCN0M7O0FBQ0EsU0FBS0MsQ0FBTCxHQUFTRCxDQUFULENBdEI2QyxDQXdCN0M7O0FBQ0EsU0FBS0UsQ0FBTCxHQUFTRixDQUFUO0FBQ0EsU0FBS0QsTUFBTCxHQUFjSSxDQUFkO0FBQ0EsU0FBS0UsR0FBTCxHQUFXLEtBQUtDLEdBQUwsR0FBVyxDQUF0QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLFlBQVksR0FBRztBQUNiLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsS0FBSyxDQUFDQyxRQUFELEVBQVc7QUFDZCxRQUFJQyxDQUFDLEdBQUdELFFBQVEsQ0FBQ0UsUUFBVCxDQUFrQkMsVUFBbEIsQ0FBNkIsSUFBN0IsQ0FBUjtBQUVBLFFBQUlGLENBQUMsR0FBR0QsUUFBUSxDQUFDVixNQUFiLEdBQXNCLEtBQUtBLE1BQS9CLEVBQXVDVSxRQUFRLENBQUNJLElBQVQsR0FBZ0IsSUFBaEI7QUFDeEM7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxHQUFHO0FBQ1BDLElBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLEdBQUUsS0FBS3JCLFdBQUwsQ0FBaUJzQixJQUFLLHFDQUF0QztBQUNEOztBQXBFMEM7O0FBdUU3Q3ZCLFVBQVUsQ0FBQ3dCLFNBQVgsQ0FBcUJDLFdBQXJCLEdBQW9DLFlBQVc7QUFDN0MsTUFBSUMsR0FBSixFQUFTZCxHQUFULEVBQWNILENBQWQ7QUFFQSxTQUFPLFlBQVc7QUFDaEIsU0FBS2tCLE1BQUwsR0FBY0MsSUFBSSxDQUFDRCxNQUFMLEVBQWQ7QUFFQWxCLElBQUFBLENBQUMsR0FBRyxLQUFLa0IsTUFBTCxHQUFjLEtBQUt0QixNQUF2QjtBQUNBcUIsSUFBQUEsR0FBRyxHQUFHaEMsRUFBRSxHQUFHa0MsSUFBSSxDQUFDRCxNQUFMLEVBQVgsQ0FKZ0IsQ0FJVTs7QUFDMUJmLElBQUFBLEdBQUcsR0FBR2xCLEVBQUUsR0FBRyxDQUFMLEdBQVNrQyxJQUFJLENBQUNELE1BQUwsRUFBZixDQUxnQixDQUtjOztBQUU5QixTQUFLRSxNQUFMLENBQVl2QixDQUFaLEdBQWdCLEtBQUtBLENBQUwsR0FBU0csQ0FBQyxHQUFHbUIsSUFBSSxDQUFDRSxHQUFMLENBQVNKLEdBQVQsQ0FBSixHQUFvQkUsSUFBSSxDQUFDRyxHQUFMLENBQVNuQixHQUFULENBQTdDO0FBQ0EsU0FBS2lCLE1BQUwsQ0FBWXRCLENBQVosR0FBZ0IsS0FBS0EsQ0FBTCxHQUFTRSxDQUFDLEdBQUdtQixJQUFJLENBQUNFLEdBQUwsQ0FBU2xCLEdBQVQsQ0FBSixHQUFvQmdCLElBQUksQ0FBQ0UsR0FBTCxDQUFTSixHQUFULENBQTdDO0FBQ0EsU0FBS0csTUFBTCxDQUFZckIsQ0FBWixHQUFnQixLQUFLQSxDQUFMLEdBQVNDLENBQUMsR0FBR21CLElBQUksQ0FBQ0csR0FBTCxDQUFTTCxHQUFULENBQTdCO0FBRUEsV0FBTyxLQUFLRyxNQUFaO0FBQ0QsR0FaRDtBQWFELENBaEJrQyxFQUFuQzs7QUFrQkE3QixVQUFVLENBQUN3QixTQUFYLENBQXFCUSxNQUFyQixHQUErQixZQUFXO0FBQ3hDLE1BQUlDLE1BQU0sR0FBRyxJQUFJckMsUUFBSixFQUFiO0FBQUEsTUFDRXNDLENBQUMsR0FBRyxJQUFJdEMsUUFBSixFQUROO0FBQUEsTUFFRXVDLENBRkY7QUFJQSxTQUFPLFVBQVNwQixRQUFULEVBQW1CO0FBQ3hCLFFBQUlDLENBQUMsR0FBR0QsUUFBUSxDQUFDRSxRQUFULENBQWtCQyxVQUFsQixDQUE2QixJQUE3QixDQUFSOztBQUVBLFFBQUlGLENBQUMsR0FBR0QsUUFBUSxDQUFDVixNQUFiLElBQXVCLEtBQUtBLE1BQWhDLEVBQXdDO0FBQ3RDNEIsTUFBQUEsTUFBTSxDQUNIRyxJQURILENBQ1FyQixRQUFRLENBQUNFLFFBRGpCLEVBRUdvQixHQUZILENBRU8sSUFGUCxFQUdHQyxTQUhIO0FBSUFKLE1BQUFBLENBQUMsQ0FBQ0UsSUFBRixDQUFPckIsUUFBUSxDQUFDd0IsUUFBaEI7QUFDQUosTUFBQUEsQ0FBQyxHQUFHLElBQUlELENBQUMsQ0FBQ00sR0FBRixDQUFNUCxNQUFOLENBQVI7QUFDQWxCLE1BQUFBLFFBQVEsQ0FBQ3dCLFFBQVQsQ0FBa0JGLEdBQWxCLENBQXNCSixNQUFNLENBQUNRLE1BQVAsQ0FBY04sQ0FBZCxDQUF0QjtBQUNEO0FBQ0YsR0FaRDtBQWFELENBbEI2QixFQUE5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBJIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBVdGlsIGZyb20gJy4uL3V0aWxzL1V0aWwnO1xuaW1wb3J0IFZlY3RvcjNEIGZyb20gJy4uL21hdGgvVmVjdG9yM0QnO1xuaW1wb3J0IFpvbmUgZnJvbSAnLi9ab25lJztcbmltcG9ydCB7IFpPTkVfVFlQRV9TUEhFUkUgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgc3BoZXJpY2FsIHpvbmUgZm9yIHBhcnRpY2xlcyB0byBiZSBlbWl0dGVkIHdpdGhpbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNwaGVyZVpvbmUgZXh0ZW5kcyBab25lIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RzIHtTcGhlcmVab25lfVxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gY2VudGVyWCAtIHRoZSBzcGhlcmUncyBjZW50ZXIgeCBjb29yZGluYXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjZW50ZXJZIC0gdGhlIHNwaGVyZSdzIGNlbnRlciB5IGNvb3JkaW5hdGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGNlbnRlclogLSB0aGUgc3BoZXJlJ3MgY2VudGVyIHogY29vcmRpbmF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gdGhlIHNwaGVyZSdzIHJhZGl1cyB2YWx1ZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNlbnRlclgsIGNlbnRlclksIGNlbnRlclosIHJhZGl1cykge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgLy8gVE9ETyBzZWUgYmVsb3csIHRoZXNlIHNob3VsZCBwcm9iYWJseSBiZSBhc3NpZ25lZCBwcm9wZXJseVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGxldCB4LCB5LCB6LCByO1xuXG4gICAgaWYgKFV0aWwuaXNVbmRlZmluZWQoY2VudGVyWSwgY2VudGVyWiwgcmFkaXVzKSkge1xuICAgICAgeCA9IHkgPSB6ID0gMDtcbiAgICAgIHIgPSBjZW50ZXJYIHx8IDEwMDtcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IGNlbnRlclg7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIHkgPSBjZW50ZXJZO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICB6ID0gY2VudGVyWjtcbiAgICAgIHIgPSByYWRpdXM7XG4gICAgfVxuXG4gICAgdGhpcy54ID0geDtcblxuICAgIC8vIFRPRE8gc2hvdWxkbid0IHRoaXMgYmUgc2V0IHRvIHk/XG4gICAgdGhpcy55ID0geDtcblxuICAgIC8vIFRPRE8gc2hvdWxkbid0IHRoaXMgYmUgc2V0IHRvIHo/XG4gICAgdGhpcy56ID0geDtcbiAgICB0aGlzLnJhZGl1cyA9IHI7XG4gICAgdGhpcy50aGUgPSB0aGlzLnBoaSA9IDA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHRvIGluZGljYXRlIHRoaXMgaXMgYSBTcGhlcmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNTcGhlcmVab25lKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnRpY2xlIHRvIGRlYWQgaWYgdGhlIHBhcnRpY2xlIGNvbGxpZGVzIHdpdGggdGhlIHNwaGVyZS5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpY2xlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgX2RlYWQocGFydGljbGUpIHtcbiAgICB2YXIgZCA9IHBhcnRpY2xlLnBvc2l0aW9uLmRpc3RhbmNlVG8odGhpcyk7XG5cbiAgICBpZiAoZCAtIHBhcnRpY2xlLnJhZGl1cyA+IHRoaXMucmFkaXVzKSBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYXJucyB0aGF0IHRoaXMgem9uZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBfY3Jvc3MgbWV0aG9kLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIF9jcm9zcygpIHtcbiAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBfY3Jvc3MgbWV0aG9kYCk7XG4gIH1cbn1cblxuU3BoZXJlWm9uZS5wcm90b3R5cGUuZ2V0UG9zaXRpb24gPSAoZnVuY3Rpb24oKSB7XG4gIHZhciB0aGEsIHBoaSwgcjtcblxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yYW5kb20gPSBNYXRoLnJhbmRvbSgpO1xuXG4gICAgciA9IHRoaXMucmFuZG9tICogdGhpcy5yYWRpdXM7XG4gICAgdGhhID0gUEkgKiBNYXRoLnJhbmRvbSgpOyAvL1swLXBpXVxuICAgIHBoaSA9IFBJICogMiAqIE1hdGgucmFuZG9tKCk7IC8vWzAtMnBpXVxuXG4gICAgdGhpcy52ZWN0b3IueCA9IHRoaXMueCArIHIgKiBNYXRoLnNpbih0aGEpICogTWF0aC5jb3MocGhpKTtcbiAgICB0aGlzLnZlY3Rvci55ID0gdGhpcy55ICsgciAqIE1hdGguc2luKHBoaSkgKiBNYXRoLnNpbih0aGEpO1xuICAgIHRoaXMudmVjdG9yLnogPSB0aGlzLnogKyByICogTWF0aC5jb3ModGhhKTtcblxuICAgIHJldHVybiB0aGlzLnZlY3RvcjtcbiAgfTtcbn0pKCk7XG5cblNwaGVyZVpvbmUucHJvdG90eXBlLl9ib3VuZCA9IChmdW5jdGlvbigpIHtcbiAgdmFyIG5vcm1hbCA9IG5ldyBWZWN0b3IzRCgpLFxuICAgIHYgPSBuZXcgVmVjdG9yM0QoKSxcbiAgICBrO1xuXG4gIHJldHVybiBmdW5jdGlvbihwYXJ0aWNsZSkge1xuICAgIHZhciBkID0gcGFydGljbGUucG9zaXRpb24uZGlzdGFuY2VUbyh0aGlzKTtcblxuICAgIGlmIChkICsgcGFydGljbGUucmFkaXVzID49IHRoaXMucmFkaXVzKSB7XG4gICAgICBub3JtYWxcbiAgICAgICAgLmNvcHkocGFydGljbGUucG9zaXRpb24pXG4gICAgICAgIC5zdWIodGhpcylcbiAgICAgICAgLm5vcm1hbGl6ZSgpO1xuICAgICAgdi5jb3B5KHBhcnRpY2xlLnZlbG9jaXR5KTtcbiAgICAgIGsgPSAyICogdi5kb3Qobm9ybWFsKTtcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnN1Yihub3JtYWwuc2NhbGFyKGspKTtcbiAgICB9XG4gIH07XG59KSgpO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/Zone.js",
    "content": "import Vector3D from '../math/Vector3D';\nimport { ZONE_TYPE_ABSTRACT } from './types';\n/**\n * A Zone determines the area in 3D space where an emitter's particles can position\n * themselves. They are supplied to both the Position initializer\n * and the CrossZone behaviour.\n *\n * @see {@link '../initialize/Position.js'}\n * @see {@link '../behaviour/CrossZone.js'}\n * @abstract\n */\n\nexport default class Zone {\n  /**\n   * Constructs a Zone instance.\n   *\n   * @param {string} type - The zone type\n   * @return void\n   */\n  constructor(type = ZONE_TYPE_ABSTRACT) {\n    this.type = type;\n    this.vector = new Vector3D(0, 0, 0);\n    this.random = 0;\n    this.crossType = 'dead';\n    this.log = true;\n    this.supportsCrossing = true;\n  }\n\n  getPosition() {\n    return null;\n  }\n\n  crossing(particle) {\n    if (!this.supportsCrossing) {\n      return console.warn(`${this.constructor.name} does not support the crossing method`);\n    }\n\n    switch (this.crossType) {\n      case 'bound':\n        this._bound(particle);\n\n        break;\n\n      case 'cross':\n        this._cross(particle);\n\n        break;\n\n      case 'dead':\n        this._dead(particle);\n\n        break;\n    }\n  }\n  /**\n   * Determines if this zone is a BoxZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isBoxZone() {\n    return false;\n  }\n  /**\n   * Determines if this zone is a LineZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isLineZone() {\n    return false;\n  }\n  /**\n   * Determines if this zone is a MeshZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isMeshZone() {\n    return false;\n  }\n  /**\n   * Determines if this zone is a PointZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isPointZone() {\n    return false;\n  }\n  /**\n   * Determines if this zone is a ScreenZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isScreenZone() {\n    return false;\n  }\n  /**\n   * Determines if this zone is a SphereZone.\n   *\n   * @return {boolean}\n   */\n\n\n  isSphereZone() {\n    return false;\n  }\n  /**\n   * Sets the particle's dead property to true if required.\n   *\n   * @param {Particle} particle\n   * @abstract\n   */\n\n\n  _dead(particle) {} //eslint-disable-line\n\n  /**\n   * @abstract\n   */\n\n\n  _bound(particle) {} //eslint-disable-line\n\n  /**\n   * @abstract\n   */\n\n\n  _cross(particle) {} //eslint-disable-line\n\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL1pvbmUuanMiXSwibmFtZXMiOlsiVmVjdG9yM0QiLCJaT05FX1RZUEVfQUJTVFJBQ1QiLCJab25lIiwiY29uc3RydWN0b3IiLCJ0eXBlIiwidmVjdG9yIiwicmFuZG9tIiwiY3Jvc3NUeXBlIiwibG9nIiwic3VwcG9ydHNDcm9zc2luZyIsImdldFBvc2l0aW9uIiwiY3Jvc3NpbmciLCJwYXJ0aWNsZSIsImNvbnNvbGUiLCJ3YXJuIiwibmFtZSIsIl9ib3VuZCIsIl9jcm9zcyIsIl9kZWFkIiwiaXNCb3hab25lIiwiaXNMaW5lWm9uZSIsImlzTWVzaFpvbmUiLCJpc1BvaW50Wm9uZSIsImlzU2NyZWVuWm9uZSIsImlzU3BoZXJlWm9uZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsUUFBUCxNQUFxQixrQkFBckI7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxTQUFuQztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLElBQU4sQ0FBVztBQUN4QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUMsRUFBQUEsV0FBVyxDQUFDQyxJQUFJLEdBQUdILGtCQUFSLEVBQTRCO0FBQ3JDLFNBQUtHLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxJQUFJTCxRQUFKLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUFkO0FBQ0EsU0FBS00sTUFBTCxHQUFjLENBQWQ7QUFDQSxTQUFLQyxTQUFMLEdBQWlCLE1BQWpCO0FBQ0EsU0FBS0MsR0FBTCxHQUFXLElBQVg7QUFDQSxTQUFLQyxnQkFBTCxHQUF3QixJQUF4QjtBQUNEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixXQUFPLElBQVA7QUFDRDs7QUFFREMsRUFBQUEsUUFBUSxDQUFDQyxRQUFELEVBQVc7QUFDakIsUUFBSSxDQUFDLEtBQUtILGdCQUFWLEVBQTRCO0FBQzFCLGFBQU9JLE9BQU8sQ0FBQ0MsSUFBUixDQUNKLEdBQUUsS0FBS1gsV0FBTCxDQUFpQlksSUFBSyx1Q0FEcEIsQ0FBUDtBQUdEOztBQUVELFlBQVEsS0FBS1IsU0FBYjtBQUNFLFdBQUssT0FBTDtBQUNFLGFBQUtTLE1BQUwsQ0FBWUosUUFBWjs7QUFDQTs7QUFFRixXQUFLLE9BQUw7QUFDRSxhQUFLSyxNQUFMLENBQVlMLFFBQVo7O0FBQ0E7O0FBRUYsV0FBSyxNQUFMO0FBQ0UsYUFBS00sS0FBTCxDQUFXTixRQUFYOztBQUNBO0FBWEo7QUFhRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTyxFQUFBQSxTQUFTLEdBQUc7QUFDVixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxVQUFVLEdBQUc7QUFDWCxXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxVQUFVLEdBQUc7QUFDWCxXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxZQUFZLEdBQUc7QUFDYixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxZQUFZLEdBQUc7QUFDYixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VOLEVBQUFBLEtBQUssQ0FBQ04sUUFBRCxFQUFXLENBQUUsQ0F0R00sQ0FzR0w7O0FBRW5CO0FBQ0Y7QUFDQTs7O0FBQ0VJLEVBQUFBLE1BQU0sQ0FBQ0osUUFBRCxFQUFXLENBQUUsQ0EzR0ssQ0EyR0o7O0FBRXBCO0FBQ0Y7QUFDQTs7O0FBQ0VLLEVBQUFBLE1BQU0sQ0FBQ0wsUUFBRCxFQUFXLENBQUUsQ0FoSEssQ0FnSEo7OztBQWhISSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWN0b3IzRCBmcm9tICcuLi9tYXRoL1ZlY3RvcjNEJztcbmltcG9ydCB7IFpPTkVfVFlQRV9BQlNUUkFDVCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgWm9uZSBkZXRlcm1pbmVzIHRoZSBhcmVhIGluIDNEIHNwYWNlIHdoZXJlIGFuIGVtaXR0ZXIncyBwYXJ0aWNsZXMgY2FuIHBvc2l0aW9uXG4gKiB0aGVtc2VsdmVzLiBUaGV5IGFyZSBzdXBwbGllZCB0byBib3RoIHRoZSBQb3NpdGlvbiBpbml0aWFsaXplclxuICogYW5kIHRoZSBDcm9zc1pvbmUgYmVoYXZpb3VyLlxuICpcbiAqIEBzZWUge0BsaW5rICcuLi9pbml0aWFsaXplL1Bvc2l0aW9uLmpzJ31cbiAqIEBzZWUge0BsaW5rICcuLi9iZWhhdmlvdXIvQ3Jvc3Nab25lLmpzJ31cbiAqIEBhYnN0cmFjdFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBab25lIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBab25lIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZSAtIFRoZSB6b25lIHR5cGVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0eXBlID0gWk9ORV9UWVBFX0FCU1RSQUNUKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnZlY3RvciA9IG5ldyBWZWN0b3IzRCgwLCAwLCAwKTtcbiAgICB0aGlzLnJhbmRvbSA9IDA7XG4gICAgdGhpcy5jcm9zc1R5cGUgPSAnZGVhZCc7XG4gICAgdGhpcy5sb2cgPSB0cnVlO1xuICAgIHRoaXMuc3VwcG9ydHNDcm9zc2luZyA9IHRydWU7XG4gIH1cblxuICBnZXRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNyb3NzaW5nKHBhcnRpY2xlKSB7XG4gICAgaWYgKCF0aGlzLnN1cHBvcnRzQ3Jvc3NpbmcpIHtcbiAgICAgIHJldHVybiBjb25zb2xlLndhcm4oXG4gICAgICAgIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgY3Jvc3NpbmcgbWV0aG9kYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuY3Jvc3NUeXBlKSB7XG4gICAgICBjYXNlICdib3VuZCc6XG4gICAgICAgIHRoaXMuX2JvdW5kKHBhcnRpY2xlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2Nyb3NzJzpcbiAgICAgICAgdGhpcy5fY3Jvc3MocGFydGljbGUpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZGVhZCc6XG4gICAgICAgIHRoaXMuX2RlYWQocGFydGljbGUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHpvbmUgaXMgYSBCb3hab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNCb3hab25lKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoaXMgem9uZSBpcyBhIExpbmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNMaW5lWm9uZSgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHpvbmUgaXMgYSBNZXNoWm9uZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzTWVzaFpvbmUoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhpcyB6b25lIGlzIGEgUG9pbnRab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNQb2ludFpvbmUoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhpcyB6b25lIGlzIGEgU2NyZWVuWm9uZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzU2NyZWVuWm9uZSgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHpvbmUgaXMgYSBTcGhlcmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNTcGhlcmVab25lKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGRlYWQgcHJvcGVydHkgdG8gdHJ1ZSBpZiByZXF1aXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGVcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBfZGVhZChwYXJ0aWNsZSkge30gLy9lc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKi9cbiAgX2JvdW5kKHBhcnRpY2xlKSB7fSAvL2VzbGludC1kaXNhYmxlLWxpbmVcblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBfY3Jvc3MocGFydGljbGUpIHt9IC8vZXNsaW50LWRpc2FibGUtbGluZVxufVxuIl19"
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/index.js",
    "content": "export { default as BoxZone } from './BoxZone';\nexport { default as LineZone } from './LineZone';\nexport { default as MeshZone } from './MeshZone';\nexport { default as PointZone } from './PointZone';\nexport { default as ScreenZone } from './ScreenZone';\nexport { default as SphereZone } from './SphereZone';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJCb3hab25lIiwiTGluZVpvbmUiLCJNZXNoWm9uZSIsIlBvaW50Wm9uZSIsIlNjcmVlblpvbmUiLCJTcGhlcmVab25lIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLE9BQXBCLFFBQW1DLFdBQW5DO0FBQ0EsU0FBU0QsT0FBTyxJQUFJRSxRQUFwQixRQUFvQyxZQUFwQztBQUNBLFNBQVNGLE9BQU8sSUFBSUcsUUFBcEIsUUFBb0MsWUFBcEM7QUFDQSxTQUFTSCxPQUFPLElBQUlJLFNBQXBCLFFBQXFDLGFBQXJDO0FBQ0EsU0FBU0osT0FBTyxJQUFJSyxVQUFwQixRQUFzQyxjQUF0QztBQUNBLFNBQVNMLE9BQU8sSUFBSU0sVUFBcEIsUUFBc0MsY0FBdEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIEJveFpvbmUgfSBmcm9tICcuL0JveFpvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaW5lWm9uZSB9IGZyb20gJy4vTGluZVpvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNoWm9uZSB9IGZyb20gJy4vTWVzaFpvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb2ludFpvbmUgfSBmcm9tICcuL1BvaW50Wm9uZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjcmVlblpvbmUgfSBmcm9tICcuL1NjcmVlblpvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcGhlcmVab25lIH0gZnJvbSAnLi9TcGhlcmVab25lJztcbiJdfQ=="
  },
  {
    "path": "packages/sdk/lib/core/libs/three-nebula/zone/types.js",
    "content": "export const ZONE_TYPE_ABSTRACT = 'Zone';\nexport const ZONE_TYPE_BOX = 'BoxZone';\nexport const ZONE_TYPE_LINE = 'LineZone';\nexport const ZONE_TYPE_MESH = 'MeshZone';\nexport const ZONE_TYPE_POINT = 'PointZone';\nexport const ZONE_TYPE_SCREEN = 'ScreenZone';\nexport const ZONE_TYPE_SPHERE = 'SphereZone';\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL3R5cGVzLmpzIl0sIm5hbWVzIjpbIlpPTkVfVFlQRV9BQlNUUkFDVCIsIlpPTkVfVFlQRV9CT1giLCJaT05FX1RZUEVfTElORSIsIlpPTkVfVFlQRV9NRVNIIiwiWk9ORV9UWVBFX1BPSU5UIiwiWk9ORV9UWVBFX1NDUkVFTiIsIlpPTkVfVFlQRV9TUEhFUkUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsa0JBQWtCLEdBQUcsTUFBM0I7QUFDUCxPQUFPLE1BQU1DLGFBQWEsR0FBRyxTQUF0QjtBQUNQLE9BQU8sTUFBTUMsY0FBYyxHQUFHLFVBQXZCO0FBQ1AsT0FBTyxNQUFNQyxjQUFjLEdBQUcsVUFBdkI7QUFDUCxPQUFPLE1BQU1DLGVBQWUsR0FBRyxXQUF4QjtBQUNQLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsWUFBekI7QUFDUCxPQUFPLE1BQU1DLGdCQUFnQixHQUFHLFlBQXpCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFpPTkVfVFlQRV9BQlNUUkFDVCA9ICdab25lJztcbmV4cG9ydCBjb25zdCBaT05FX1RZUEVfQk9YID0gJ0JveFpvbmUnO1xuZXhwb3J0IGNvbnN0IFpPTkVfVFlQRV9MSU5FID0gJ0xpbmVab25lJztcbmV4cG9ydCBjb25zdCBaT05FX1RZUEVfTUVTSCA9ICdNZXNoWm9uZSc7XG5leHBvcnQgY29uc3QgWk9ORV9UWVBFX1BPSU5UID0gJ1BvaW50Wm9uZSc7XG5leHBvcnQgY29uc3QgWk9ORV9UWVBFX1NDUkVFTiA9ICdTY3JlZW5ab25lJztcbmV4cG9ydCBjb25zdCBaT05FX1RZUEVfU1BIRVJFID0gJ1NwaGVyZVpvbmUnO1xuIl19"
  },
  {
    "path": "packages/sdk/lib/core/loader/Loader.ts",
    "content": "import * as THREE from 'three';\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';\nimport { DRACOLoader } from \"three/examples/jsm/loaders/DRACOLoader.js\";\nimport { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js';\nimport { RGBELoader } from \"three/examples/jsm/loaders/RGBELoader.js\";\nimport { TGALoader } from 'three/examples/jsm/loaders/TGALoader.js';\nimport { EXRLoader } from 'three/examples/jsm/loaders/EXRLoader.js';\nimport { MTLLoader } from \"three/examples/jsm/loaders/MTLLoader.js\";\nimport { unzipSync, strFromU8 } from 'three/examples/jsm/libs/fflate.module.js';\nimport { AddObjectCommand } from '../commands/AddObjectCommand';\nimport { SetSceneCommand } from '../commands/Commands';\nimport {useDispatchSignal} from \"@/hooks\";\nimport { ObjectLoader } from './ObjectLoader';\nimport App from \"@/core/app/App\";\nimport MaterialCreator = MTLLoader.MaterialCreator;\n\nconst LoaderUtils = {\n\tcreateFilesMap: function (files: FileList | File[]) {\n\t\tconst map = {};\n\n\t\tfor ( let i = 0; i < files.length; i ++ ) {\n\t\t\tconst file = files[ i ];\n\t\t\tmap[ file.name ] = file;\n\t\t}\n\n\t\treturn map;\n\t},\n\tgetFilesFromItemList: function ( items: DataTransferItem[], onDone: (files: File[], filesMap) => void ) {\n\t\t// TOFIX: setURLModifier() breaks when the file being loaded is not in root\n\t\tlet itemsCount = 0;\n\t\tlet itemsTotal = 0;\n\n\t\tconst files: File[] = [];\n\t\tconst filesMap = {};\n\n\t\tfunction onEntryHandled() {\n\n\t\t\titemsCount ++;\n\n\t\t\tif ( itemsCount === itemsTotal ) {\n\n\t\t\t\tonDone( files, filesMap );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction handleEntry( entry ) {\n\n\t\t\tif ( entry.isDirectory ) {\n\n\t\t\t\tconst reader = entry.createReader();\n\t\t\t\treader.readEntries( function ( entries ) {\n\n\t\t\t\t\tfor ( let i = 0; i < entries.length; i ++ ) {\n\n\t\t\t\t\t\thandleEntry( entries[ i ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tonEntryHandled();\n\n\t\t\t\t} );\n\n\t\t\t} else if ( entry.isFile ) {\n\n\t\t\t\tentry.file( function ( file ) {\n\n\t\t\t\t\tfiles.push( file );\n\n\t\t\t\t\tfilesMap[ entry.fullPath.slice( 1 ) ] = file;\n\t\t\t\t\tonEntryHandled();\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\titemsTotal ++;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < items.length; i ++ ) {\n\n\t\t\tconst item = items[ i ];\n\n\t\t\tif ( item.kind === 'file' ) {\n\n\t\t\t\thandleEntry( item.webkitGetAsEntry() );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n};\n\nclass Loader {\n\tprotected texturePath:string = '';\n\tprotected _objectLoader:ObjectLoader | null = null;\n\tprotected _dracoLoader:DRACOLoader | null = null;\n\tprotected _ktx2Loader:KTX2Loader | null = null;\n\tpublic _ifcLoader:any = null;\n    protected rgbeLoader:RGBELoader | null = null;\n    protected tgaLoader:TGALoader | null = null;\n    protected _exrLoader:EXRLoader | null = null;\n    protected textureLoader:THREE.TextureLoader | null = null;\n\n\tconstructor(){}\n\n    get objectLoader():ObjectLoader{\n        if(!this._objectLoader){\n            this._objectLoader = new ObjectLoader();\n        }\n\n        return this._objectLoader;\n    }\n\n    set objectLoader(value:ObjectLoader | null){\n        this._objectLoader = value;\n    }\n\n    get dracoLoader():DRACOLoader{\n        if(!this._dracoLoader){\n            this._dracoLoader = new DRACOLoader();\n            this._dracoLoader.setDecoderPath(new URL(import.meta.env.BASE_URL + 'libs/draco/gltf', import.meta.url).href + \"/\");\n        }\n\n        return this._dracoLoader;\n    }\n\n    set dracoLoader(value:DRACOLoader | null) {\n        this._dracoLoader = value;\n    }\n\n    get ktx2Loader():KTX2Loader{\n        if(!this._ktx2Loader){\n            this._ktx2Loader = new KTX2Loader();\n            this._ktx2Loader.setTranscoderPath(new URL(import.meta.env.BASE_URL + 'libs/basis', import.meta.url).href + \"/\");\n            useDispatchSignal(\"rendererDetectKTX2Support\",this._ktx2Loader);\n        }\n\n        return this._ktx2Loader;\n    }\n\n    set ktx2Loader(value:KTX2Loader | null) {\n        this._ktx2Loader = value;\n    }\n\n    get exrLoader():EXRLoader{\n        if(!this._exrLoader){\n            this._exrLoader = new EXRLoader();\n        }\n\n        return this._exrLoader;\n    }\n\n    set exrLoader(value:EXRLoader | null) {\n        this._exrLoader = value;\n    }\n\n\tloadItemList(items) {\n\t\tLoaderUtils.getFilesFromItemList( items, ( files, filesMap )=>{\n\t\t\tthis.loadFiles( files, filesMap);\n\t\t} );\n\t}\n\n\tloadFiles(files, filesMap): Promise<THREE.Object3D[]> {\n        return new Promise((resolve, reject) => {\n            const promises: Promise<THREE.Object3D>[] = [];\n\n            if (files.length > 0) {\n                filesMap = filesMap || LoaderUtils.createFilesMap(files);\n                const manager = new THREE.LoadingManager();\n                manager.setURLModifier(function (url) {\n                    url = url.replace(/^(\\.?\\/)/, ''); // remove './'\n                    const file = filesMap[url];\n                    if (file) {\n                        return URL.createObjectURL(file);\n                    }\n                    return url;\n                });\n                manager.addHandler(/\\.tga$/i, new TGALoader());\n                manager.addHandler(/\\.mtl$/i, new MTLLoader());\n\n                /** 2023/02/03 二三：判断是否存在mtl文件，存在则提前解析 **/\n                // @ts-ignore\n                const mtlIndex = Object.values(files).findIndex((item: File) => item.name?.split('.').pop().toLowerCase() === \"mtl\");\n                let mtlMaterials: MaterialCreator | null = null;\n                if (mtlIndex !== -1) {\n                    const mtlLoader = new MTLLoader();\n                    const reader = new FileReader();\n                    reader.addEventListener('load', (event) => {\n                        const contents = event.target?.result as string;\n                        const materials = mtlLoader.parse(contents, \"\");\n                        materials.preload();\n                        mtlMaterials = materials;\n                        for (let i = 0; i < files.length; i++) {\n                            promises.push(this.loadFile(files[i], manager, mtlMaterials));\n                        }\n                        Promise.all(promises).then((models) => {\n                            resolve(models);\n                        }).catch(error => {\n                            reject(error);\n                        });\n                    }, false);\n                    reader.readAsText(files[mtlIndex]);\n                } else {\n                    for (let i = 0; i < files.length; i++) {\n                        promises.push(this.loadFile(files[i], manager));\n                    }\n                    Promise.all(promises).then((models) => {\n                        resolve(models);\n                    }).catch(error => {\n                        reject(error);\n                    });\n                }\n            }else{\n                reject(\"No files to load.\");\n            }\n        })\n\t}\n\n\tloadFile(file, manager:THREE.LoadingManager = new THREE.LoadingManager(),mtlMaterials:MaterialCreator | null = null,addToScene = true):Promise<THREE.Object3D> {\n        return new Promise((resolve, reject) => {\n            const filename = file.name;\n            const extension = filename.split('.').pop().toLowerCase();\n\n            const reader = new FileReader();\n            // reader.addEventListener( 'progress', function ( event ) {\n            // \tconst size = '(' + Math.floor( event.total / 1000 ).format() + ' KB)';\n            // \tconst progress = Math.floor( ( event.loaded / event.total ) * 100 ) + '%';\n            // \tconsole.log( 'Loading', filename, size, progress );\n            // } );\n\n            switch (extension) {\n                case '3dm':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result;\n\n                        const { Rhino3dmLoader } = await import('three/examples/jsm/loaders/3DMLoader.js');\n\n                        const loader = new Rhino3dmLoader();\n                        loader.setLibraryPath('../examples/jsm/libs/rhino3dm/');\n                        loader.parse(contents as ArrayBufferLike, function (object) {\n                            addToScene && App.execute(new AddObjectCommand(object));\n\n                            resolve(object);\n                        });\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case '3ds':\n                    reader.addEventListener('load', async function (event) {\n                        const { TDSLoader } = await import('three/examples/jsm/loaders/TDSLoader.js');\n\n                        const loader = new TDSLoader();\n                        //@ts-ignore\n                        const object = loader.parse(event.target.result);\n\n                        addToScene && App.execute(new AddObjectCommand(object));\n\n                        resolve(object);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case '3mf':\n                    reader.addEventListener('load', async function (event) {\n                        const { ThreeMFLoader } = await import('three/examples/jsm/loaders/3MFLoader.js');\n                        const loader = new ThreeMFLoader();\n                        const object = loader.parse(event.target?.result as ArrayBuffer);\n\n                        addToScene && App.execute(new AddObjectCommand(object));\n\n                        resolve(object);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case 'amf':\n                    reader.addEventListener('load', async function (event) {\n                        const { AMFLoader } = await import('three/examples/jsm/loaders/AMFLoader.js');\n\n                        const loader = new AMFLoader();\n                        const amfobject = loader.parse(event.target?.result as ArrayBuffer);\n\n                        addToScene && App.execute(new AddObjectCommand(amfobject));\n\n                        resolve(amfobject);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n\n                    break;\n                case 'dae':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as string;\n\n                        const { ColladaLoader } = await import('three/examples/jsm/loaders/ColladaLoader.js');\n\n                        const loader = new ColladaLoader(manager);\n                        //@ts-ignore\n                        const collada = loader.parse(contents);\n\n                        collada.scene.name = filename;\n\n                        addToScene && App.execute(new AddObjectCommand(collada.scene));\n\n                        resolve(collada.scene);\n                    }, false);\n                    reader.readAsText(file);\n\n                    break;\n                case 'drc':\n                    reader.addEventListener('load', async (event) => {\n                        const contents = event.target?.result as ArrayBuffer;\n\n                        // this.dracoLoader.setDecoderPath(new URL(import.meta.env.BASE_URL + 'libs/draco/', import.meta.url).href);\n                        this.dracoLoader.parse(contents, (geometry) => {\n                            let object;\n                            if (geometry.index !== null) {\n                                const material = new THREE.MeshStandardMaterial();\n\n                                object = new THREE.Mesh(geometry, material);\n                                object.name = filename;\n                            } else {\n                                const material = new THREE.PointsMaterial({ size: 0.01 });\n                                material.vertexColors = geometry.hasAttribute('color');\n\n                                object = new THREE.Points(geometry, material);\n                                object.name = filename;\n                            }\n\n                            this.dracoLoader.dispose();\n                            this.dracoLoader = null;\n\n                            addToScene && App.execute(new AddObjectCommand(object));\n\n                            resolve(object);\n                        });\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n\n                    break;\n                case 'fbx':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result;\n\n                        const { FBXLoader } = await import('three/examples/jsm/loaders/FBXLoader.js');\n\n                        const loader = new FBXLoader(manager);\n                        //@ts-ignore\n                        const object = loader.parse(contents as ArrayBuffer);\n\n                        addToScene && App.execute(new AddObjectCommand(object));\n\n                        resolve(object);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case 'glb':\n                    reader.addEventListener('load', async (event) => {\n                        const contents = event.target?.result as ArrayBuffer;\n\n                        const loader = await this.createGLTFLoader(manager);\n                        loader.parse(contents, '', (result) => {\n                            const scene = result.scene;\n                            scene.name = filename;\n\n                            scene.animations.push(...result.animations);\n                            addToScene && App.execute(new AddObjectCommand(scene));\n\n                            this.disposeGLTFLoaderEffects(loader);\n\n                            resolve(scene);\n                        });\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n\n                    break;\n                case 'gltf':\n                    reader.addEventListener('load', async (event) => {\n                        const contents = event.target?.result as ArrayBuffer;\n                        const loader = await this.createGLTFLoader(manager);\n\n                        loader.parse(contents, '', (result) => {\n                            const scene = result.scene;\n                            scene.name = filename;\n\n                            scene.animations.push(...result.animations);\n                            addToScene && App.execute(new AddObjectCommand(scene));\n\n                            this.disposeGLTFLoaderEffects(loader);\n\n                            resolve(scene);\n                        });\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n\n                    break;\n                case 'js':\n                case 'json':\n                    reader.addEventListener('load', (event) => {\n                        const contents: string = event.target?.result as string;\n\n                        // 2.0\n                        if (contents.indexOf('postMessage') !== - 1) {\n                            const blob = new Blob([contents], { type: 'text/javascript' });\n                            const url = URL.createObjectURL(blob);\n\n                            const worker = new Worker(url);\n\n                            worker.onmessage = (event) => {\n                                event.data.metadata = { version: 2 };\n                                this.handleJSON(event.data,addToScene).then(object => resolve(object as THREE.Object3D)).catch(error => reject(error));\n                            };\n\n                            worker.postMessage(Date.now());\n                            return;\n                        }\n\n                        // >= 3.0\n\n                        let data;\n                        try {\n                            data = JSON.parse(contents);\n                        } catch (error) {\n                            App.log.error(error as string);\n                            return;\n                        }\n                        this.handleJSON(data,addToScene).then(object => resolve(object as THREE.Object3D)).catch(error => reject(error));\n                    }, false);\n                    reader.readAsText(file);\n\n                    break;\n                case 'ifc':\n                    reader.addEventListener('load', async (event) => {\n                        if (!this._ifcLoader) {\n                            const { IFCLoader }  = await import(\"web-ifc-three/IFCLoader\");\n\n                            this._ifcLoader = new IFCLoader();\n\n                            const ifcWorkerUrl = new URL(import.meta.env.BASE_URL + 'libs/web-ifc/IFCWorker.js', import.meta.url).href;\n                            this._ifcLoader.ifcManager.useWebWorkers(true, ifcWorkerUrl).then(async () => {\n                                if(!this._ifcLoader) return;\n\n                                await this._ifcLoader.ifcManager.setWasmPath('/');\n\n                                // const { IFCSPACE } = await import('web-ifc');\n                                // await this._ifcLoader.ifcManager.parser.setupOptionalCategories( {\n                                // \t[ IFCSPACE ]: false,\n                                // });\n\n                                await this._ifcLoader.ifcManager.applyWebIfcConfig({\n                                    // 使用更快的（不那么精确的）布尔逻辑\n                                    USE_FAST_BOOLS: true\n                                });\n                            })\n                        }\n\n\n                        const model = await this._ifcLoader.parse(event.target?.result as ArrayBuffer);\n                        model.name = filename;\n                        model.isIFC = true;\n                        addToScene && App.execute(new AddObjectCommand(model));\n\n                        resolve(model);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n\n                    break;\n                // case 'ifc':\n                // \treader.addEventListener( 'load', async function ( event ) {\n                // \t\tconst { IFCLoader } = await import( 'three/examples/jsm/loaders/IFCLoader.js' );\n                //\n                // \t\tconst loader = new IFCLoader();\n                // \t\tloader.ifcManager.setWasmPath( 'three/examples/jsm/loaders/ifc/' );\n                //\n                // \t\t// @ts-ignore\n                // \t\tconst model = await loader.parse( event.target.result );\n                // \t\tmodel.mesh.name = filename;\n                //\n                // \t\tApp.execute( new AddObjectCommand(model.mesh));\n                // \t}, false );\n                // \treader.readAsArrayBuffer( file );\n                // \tbreak;\n                case 'kmz':\n                    reader.addEventListener('load', async function (event) {\n                        const { KMZLoader } = await import('three/examples/jsm/loaders/KMZLoader.js');\n\n                        const loader = new KMZLoader();\n                        const collada = loader.parse(event.target?.result as ArrayBuffer);\n                        collada.scene.name = filename;\n                        addToScene && App.execute(new AddObjectCommand(collada.scene));\n\n                        resolve(collada.scene);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case 'ldr':\n                case 'mpd':\n                    reader.addEventListener('load', async function (event) {\n                        const { LDrawLoader } = await import('three/examples/jsm/loaders/LDrawLoader.js');\n\n                        const loader = new LDrawLoader();\n                        loader.setPath('three/examples/models/ldraw/officialLibrary/');\n                        // @ts-ignore\n                        loader.parse(event.target?.result as string, undefined, function (group) {\n                            group.name = filename;\n                            // Convert from LDraw coordinates: rotate 180 degrees around OX\n                            group.rotation.x = Math.PI;\n\n                            addToScene && App.execute(new AddObjectCommand(group));\n\n                            resolve(group);\n                        });\n                    }, false);\n                    reader.readAsText(file);\n                    break;\n                case 'md2':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as ArrayBuffer;\n\n                        const { MD2Loader } = await import('three/examples/jsm/loaders/MD2Loader.js');\n\n                        const geometry = new MD2Loader().parse(contents);\n                        const material = new THREE.MeshStandardMaterial();\n\n                        const mesh = new THREE.Mesh(geometry, material);\n                        //@ts-ignore\n                        mesh.mixer = new THREE.AnimationMixer(mesh);\n                        mesh.name = filename;\n                        //@ts-ignore\n                        mesh.animations.push(...geometry.animations);\n                        addToScene && App.execute(new AddObjectCommand(mesh));\n\n                        resolve(mesh);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n\n                    break;\n                case 'obj':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as string;\n\n                        const { OBJLoader } = await import('three/examples/jsm/loaders/OBJLoader.js');\n                        const objLoader = new OBJLoader();\n\n                        /** 2023/02/03 二三：判断是否存在已解析的mtl文件 **/\n                        if (mtlMaterials !== null) {\n                            objLoader.setMaterials(mtlMaterials);\n                        }\n\n                        const object = objLoader.parse(contents);\n                        object.name = filename;\n\n                        addToScene && App.execute(new AddObjectCommand(object));\n\n                        resolve(object);\n                    }, false);\n                    reader.readAsText(file);\n\n                    break;\n                case 'mtl':\n                    //mtl文件已经提前预加载\n                    break;\n                case 'pcd':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as ArrayBuffer;\n\n                        const { PCDLoader } = await import('three/examples/jsm/loaders/PCDLoader.js');\n\n                        const points = new PCDLoader().parse(contents);\n                        points.name = filename;\n\n                        addToScene && App.execute(new AddObjectCommand(points));\n\n                        resolve(points);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n\n                    break;\n                case 'ply':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as ArrayBuffer;\n                        const { PLYLoader } = await import('three/examples/jsm/loaders/PLYLoader.js');\n\n                        const geometry = new PLYLoader().parse(contents);\n                        let object;\n\n                        if (geometry.index !== null) {\n                            const material = new THREE.MeshStandardMaterial();\n\n                            object = new THREE.Mesh(geometry, material);\n                            object.name = filename;\n                        } else {\n                            const material = new THREE.PointsMaterial({ size: 0.01 });\n                            material.vertexColors = geometry.hasAttribute('color');\n\n                            object = new THREE.Points(geometry, material);\n                            object.name = filename;\n                        }\n\n                        addToScene && App.execute(new AddObjectCommand(object));\n\n                        resolve(object);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case 'stl':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as ArrayBuffer;\n\n                        const { STLLoader } = await import('three/examples/jsm/loaders/STLLoader.js');\n\n                        const geometry = new STLLoader().parse(contents);\n                        const material = new THREE.MeshStandardMaterial();\n\n                        const mesh = new THREE.Mesh(geometry, material);\n                        mesh.name = filename;\n\n                        addToScene && App.execute(new AddObjectCommand(mesh));\n\n                        resolve(mesh);\n                    }, false);\n\n                    if (reader.readAsBinaryString !== undefined) {\n                        reader.readAsBinaryString(file);\n                    } else {\n                        reader.readAsArrayBuffer(file);\n                    }\n\n                    break;\n                case 'svg':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as string;\n                        const { SVGLoader } = await import('three/examples/jsm/loaders/SVGLoader.js');\n\n                        const loader = new SVGLoader();\n                        const paths = loader.parse(contents).paths;\n\n                        const group = new THREE.Group();\n                        group.scale.multiplyScalar(0.1);\n                        group.scale.y *= - 1;\n\n                        for (let i = 0; i < paths.length; i++) {\n                            const path = paths[i];\n\n                            const material = new THREE.MeshBasicMaterial({\n                                color: path.color,\n                                depthWrite: false\n                            });\n\n                            const shapes = SVGLoader.createShapes(path);\n\n                            for (let j = 0; j < shapes.length; j++) {\n                                const shape = shapes[j];\n\n                                const geometry = new THREE.ShapeGeometry(shape);\n                                const mesh = new THREE.Mesh(geometry, material);\n\n                                group.add(mesh);\n                            }\n                        }\n\n                        addToScene && App.execute(new AddObjectCommand(group));\n\n                        resolve(group);\n                    }, false);\n                    reader.readAsText(file);\n\n                    break;\n                case 'usdz':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as ArrayBuffer;\n\n                        const { USDZLoader } = await import('three/examples/jsm/loaders/USDZLoader.js');\n\n                        const group = new USDZLoader().parse(contents);\n                        group.name = filename;\n\n                        addToScene && App.execute(new AddObjectCommand(group));\n\n                        resolve(group);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case 'vox':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as ArrayBuffer;\n                        const { VOXLoader, VOXMesh } = await import('three/examples/jsm/loaders/VOXLoader.js');\n\n                        const chunks = new VOXLoader().parse(contents);\n\n                        const group = new THREE.Group();\n                        group.name = filename;\n\n                        for (let i = 0; i < chunks.length; i++) {\n                            const chunk: any = chunks[i];\n\n                            const mesh = new VOXMesh(chunk);\n                            // @ts-ignore\n                            group.add(mesh);\n                        }\n\n                        addToScene && App.execute(new AddObjectCommand(group));\n\n                        resolve(group);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case 'vtk':\n                case 'vtp':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as ArrayBuffer;\n\n                        const { VTKLoader } = await import('three/examples/jsm/loaders/VTKLoader.js');\n                        //@ts-ignore\n                        const geometry = new VTKLoader().parse(contents);\n                        const material = new THREE.MeshStandardMaterial();\n\n                        const mesh = new THREE.Mesh(geometry, material);\n                        mesh.name = filename;\n\n                        addToScene && App.execute(new AddObjectCommand(mesh));\n\n                        resolve(mesh);\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                case 'wrl':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as string;\n                        const { VRMLLoader } = await import('three/examples/jsm/loaders/VRMLLoader.js');\n                        //@ts-ignore\n                        const result = new VRMLLoader().parse(contents);\n                        addToScene && App.execute(new SetSceneCommand(result));\n\n                        resolve(result);\n                    }, false);\n                    reader.readAsText(file);\n                    break;\n                case 'xyz':\n                    reader.addEventListener('load', async function (event) {\n                        const contents = event.target?.result as string;\n\n                        const { XYZLoader } = await import('three/examples/jsm/loaders/XYZLoader.js');\n\n                        //@ts-ignore\n                        const geometry = new XYZLoader().parse(contents);\n\n                        const material = new THREE.PointsMaterial();\n                        //@ts-ignore\n                        material.vertexColors = geometry.hasAttribute('color');\n\n                        const points = new THREE.Points(geometry as THREE.BufferGeometry, material);\n                        points.name = filename;\n\n                        addToScene && App.execute(new AddObjectCommand(points));\n\n                        resolve(points);\n                    }, false);\n                    reader.readAsText(file);\n                    break;\n                case 'zip':\n                    reader.addEventListener('load', (event) => {\n                        this.handleZIP(event.target?.result,addToScene).then(object => resolve(object as THREE.Object3D)).catch(error => reject(error));\n                    }, false);\n                    reader.readAsArrayBuffer(file);\n                    break;\n                default:\n                    App.log.warn(`不支持的文件格式: ${extension}`);\n                    reject(`不支持的文件格式: ${extension}`);\n                    break;\n            }\n        })\n\t}\n\n\thandleJSON(data,addToScene = true) {\n        return new Promise((resolve, reject) => {\n            if (data.metadata === undefined) { // 2.0\n                data.metadata = { type: 'Geometry' };\n            }\n\n            if (data.metadata.type === undefined) { // 3.0\n                data.metadata.type = 'Geometry';\n            }\n\n            if (data.metadata.formatVersion !== undefined) {\n                data.metadata.version = data.metadata.formatVersion;\n            }\n\n            switch (data.metadata.type.toLowerCase()) {\n                case 'buffergeometry':\n                    {\n                        const loader = new THREE.BufferGeometryLoader();\n                        const result = loader.parse(data);\n\n                        const mesh = new THREE.Mesh(result);\n\n                        addToScene && App.execute(new AddObjectCommand(mesh));\n\n                        resolve(mesh);\n                        break;\n                    }\n                case 'geometry':\n                    App.log.warn(\"Loader:不再支持“几何图形”\");\n                    reject(\"Loader:不再支持“几何图形”\");\n                    break;\n                case 'object':\n                    {\n                        const loader = this.objectLoader;\n                        loader.setResourcePath(this.texturePath);\n\n                        loader.parse(data, function (result: any) {\n                            if (result.isScene) {\n                                addToScene && App.execute(new SetSceneCommand(result));\n\n                                resolve(result);\n                            } else {\n                                addToScene && App.execute(new AddObjectCommand(result));\n\n                                resolve(result);\n                            }\n                        });\n                        break;\n                    }\n                case 'app':\n                    resolve(App.fromJSON(data));\n                    break;\n            }\n        })\n\t}\n\n\tasync handleZIP(contents,addToScene = true) {\n        return new Promise(async (resolve, reject) => {\n            try {\n                const zip = unzipSync(new Uint8Array(contents));\n\n                // Poly\n                if (zip['model.obj'] && zip['materials.mtl']) {\n                    const { OBJLoader } = await import('three/examples/jsm/loaders/OBJLoader.js');\n\n                    //@ts-ignore\n                    const materials = new MTLLoader().parse(strFromU8(zip['materials.mtl']));\n                    const object = new OBJLoader().setMaterials(materials).parse(strFromU8(zip['model.obj']));\n                    addToScene && App.execute(new AddObjectCommand(object));\n\n                    resolve(object);\n                }\n\n                for (const path in zip) {\n                    const file = zip[path];\n\n                    const manager = new THREE.LoadingManager();\n                    manager.setURLModifier(function (url) {\n                        const file = zip[url];\n\n                        if (file) {\n                            const blob = new Blob([file.buffer as ArrayBuffer], { type: 'application/octet-stream' });\n                            return URL.createObjectURL(blob);\n                        }\n\n                        return url;\n                    });\n\n                    const extension = path.split(\".\").pop()?.toLowerCase();\n                    switch (extension) {\n                        case 'fbx':\n                            {\n                                const { FBXLoader } = await import('three/examples/jsm/loaders/FBXLoader.js');\n                                const loader = new FBXLoader(manager);\n                                //@ts-ignore\n                                const object = loader.parse(file.buffer);\n\n                                addToScene && App.execute(new AddObjectCommand(object));\n\n                                resolve(object);\n                                break;\n                            }\n                        case 'glb':\n                            {\n                                const loader = await this.createGLTFLoader();\n\n                                loader.parse(file.buffer as ArrayBuffer, '', (result) => {\n                                    const scene = result.scene;\n\n                                    scene.animations.push(...result.animations);\n                                    addToScene && App.execute(new AddObjectCommand(scene));\n\n                                    this.disposeGLTFLoaderEffects(loader);\n\n                                    resolve(scene);\n                                });\n                                break;\n                            }\n                        case 'gltf':\n                            {\n                                const loader = await this.createGLTFLoader(manager);\n\n                                loader.parse(strFromU8(file), '', (result)=> {\n                                    const scene = result.scene;\n                                    scene.animations.push(...result.animations);\n                                    addToScene && App.execute(new AddObjectCommand(scene));\n\n                                    this.disposeGLTFLoaderEffects(loader);\n\n                                    resolve(scene);\n                                });\n                                break;\n                            }\n                    }\n                }\n            }catch (error) {\n                reject(error);\n            }\n        })\n\t}\n\n\tasync createGLTFLoader(manager?:THREE.LoadingManager) {\n\t\tconst { MeshoptDecoder } = await import( 'three/examples/jsm/libs/meshopt_decoder.module.js' );\n\n\t\tconst loader = new GLTFLoader(manager);\n\t\tloader.setDRACOLoader(this.dracoLoader);\n\t\tloader.setKTX2Loader(this.ktx2Loader);\n\t\tloader.setMeshoptDecoder(MeshoptDecoder);\n\n\t\treturn loader;\n\t}\n\n    disposeGLTFLoaderEffects(loader:any){\n        if(this._dracoLoader && loader.dracoLoader === this._dracoLoader){\n            this._dracoLoader.dispose();\n            this._dracoLoader = null;\n\n            loader.dracoLoader = null;\n        }else{\n            loader.dracoLoader?.dispose();\n            loader.dracoLoader = null;\n        }\n\n        if(this._ktx2Loader && loader.ktx2Loader === this._ktx2Loader){\n            this._ktx2Loader?.dispose();\n            this._ktx2Loader = null;\n\n            loader.ktx2Loader = null;\n        }else{\n            loader.ktx2Loader.dispose();\n            loader.ktx2Loader = null;\n        }\n\n        loader.meshoptDecoder = null;\n    }\n\n\tloadUrlTexture(extension: string, url: string, onload?: (tex: THREE.Texture) => void,onerror?: (err: any) => void) {\n\t\tswitch (extension) {\n\t\t\tcase 'hdr': {\n                if(!this.rgbeLoader) this.rgbeLoader = new RGBELoader();\n\n                this.rgbeLoader.setDataType(THREE.HalfFloatType);\n\t\t\t\treturn this.rgbeLoader.load(url, (hdrTexture) => {\n                    hdrTexture.wrapS = THREE.RepeatWrapping;\n                    hdrTexture.wrapT = THREE.RepeatWrapping;\n                    hdrTexture.needsUpdate = true;\n\n\t\t\t\t\tonload && onload(hdrTexture);\n\t\t\t\t},()=>{},(err)=>{\n                    onerror && onerror(err);\n                });\n\t\t\t}\n\t\t\tcase 'tga': {\n                if(!this.tgaLoader) this.tgaLoader = new TGALoader();\n\n\t\t\t\treturn this.tgaLoader.load(url, (tagTex) => {\n                    tagTex.wrapS = THREE.RepeatWrapping;\n                    tagTex.wrapT = THREE.RepeatWrapping;\n                    tagTex.needsUpdate = true;\n\n\t\t\t\t\tonload && onload(tagTex);\n\t\t\t\t},()=>{},(err)=>{\n                    onerror && onerror(err);\n                });\n\t\t\t}\n\t\t\tcase \"exr\": {\n\t\t\t\treturn this.exrLoader.load(url, (exrTex) => {\n                    exrTex.wrapS = THREE.RepeatWrapping;\n                    exrTex.wrapT = THREE.RepeatWrapping;\n                    exrTex.needsUpdate = true;\n\n\t\t\t\t\tonload && onload(exrTex);\n\t\t\t\t},()=>{},(err)=>{\n                    onerror && onerror(err);\n                });\n\t\t\t}\n\t\t\tdefault: {\n                if(!this.textureLoader) this.textureLoader = new THREE.TextureLoader();\n\n\t\t\t\treturn this.textureLoader.load(url, (tex) => {\n                    tex.wrapS = THREE.RepeatWrapping;\n                    tex.wrapT = THREE.RepeatWrapping;\n                    tex.needsUpdate = true;\n\n\t\t\t\t\tonload && onload(tex);\n\t\t\t\t},()=>{},(err)=>{\n                    onerror && onerror(err);\n                });\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst loader = new Loader();\nexport default loader;\n"
  },
  {
    "path": "packages/sdk/lib/core/loader/ObjectLoader.js",
    "content": "/**\n * THREE JSON 解析器\n * @author ErSan\n * @version 2.0.0\n * @description 来自于THREE.ObjectLoader，修改了部分代码，添加了部分功能\n */\nimport * as THREE from 'three';\nimport {TYPED_ARRAYS,TEXTURE_MAPPING,TEXTURE_WRAPPING,TEXTURE_FILTER} from '@/constant/index';\nimport ParticleEmitter from \"@/core/objects/ParticleEmitter\";\nimport Billboard from \"@/core/objects/Billboard\";\nimport {HtmlPanel, HtmlSprite} from \"@/core/objects/HtmlPanel\";\n\nclass ObjectLoader extends THREE.Loader {\n    constructor(manager) {\n        super(manager);\n    }\n\n    load(url, onLoad, onProgress, onError) {\n        const scope = this;\n\n        const path = (this.path === '') ? THREE.LoaderUtils.extractUrlBase(url) : this.path;\n        this.resourcePath = this.resourcePath || path;\n\n        const loader = new THREE.FileLoader(this.manager);\n        loader.setPath(this.path);\n        loader.setRequestHeader(this.requestHeader);\n        loader.setWithCredentials(this.withCredentials);\n        loader.load(url, function (text) {\n\n            let json = null;\n\n            try {\n\n                json = JSON.parse(text);\n\n            } catch (error) {\n\n                if (onError !== undefined) onError(error);\n\n                console.error('THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message);\n\n                return;\n\n            }\n\n            const metadata = json.metadata;\n\n            if (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') {\n\n                if (onError !== undefined) onError(new Error('THREE.ObjectLoader: Can\\'t load ' + url));\n\n                console.error('THREE.ObjectLoader: Can\\'t load ' + url);\n                return;\n\n            }\n\n            scope.parse(json, onLoad);\n\n        }, onProgress, onError);\n\n    }\n\n    async loadAsync(url, onProgress) {\n\n        const scope = this;\n\n        const path = (this.path === '') ? THREE.LoaderUtils.extractUrlBase(url) : this.path;\n        this.resourcePath = this.resourcePath || path;\n\n        const loader = new THREE.FileLoader(this.manager);\n        loader.setPath(this.path);\n        loader.setRequestHeader(this.requestHeader);\n        loader.setWithCredentials(this.withCredentials);\n\n        const text = await loader.loadAsync(url, onProgress);\n\n        const json = JSON.parse(text);\n\n        const metadata = json.metadata;\n\n        if (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') {\n\n            throw new Error('THREE.ObjectLoader: Can\\'t load ' + url);\n\n        }\n\n        return await scope.parseAsync(json);\n\n    }\n\n    parse(json, onLoad) {\n\n        const animations = this.parseAnimations(json.animations);\n        const shapes = this.parseShapes(json.shapes);\n        const geometries = this.parseGeometries(json.geometries, shapes);\n\n        const images = this.parseImages(json.images, function () {\n\n            if (onLoad !== undefined) onLoad(object);\n\n        });\n\n        const textures = this.parseTextures(json.textures, images);\n        const materials = this.parseMaterials(json.materials, textures);\n\n        const object = this.parseObject(json.object, geometries, materials, textures, animations);\n        const skeletons = this.parseSkeletons(json.skeletons, object);\n\n        this.bindSkeletons(object, skeletons);\n        this.bindLightTargets(object);\n\n        //\n\n        if (onLoad !== undefined) {\n\n            let hasImages = false;\n\n            for (const uuid in images) {\n\n                if (images[uuid].data instanceof HTMLImageElement) {\n\n                    hasImages = true;\n                    break;\n\n                }\n\n            }\n\n            if (hasImages === false) onLoad(object);\n\n        }\n\n        return object;\n\n    }\n\n    async parseAsync(json) {\n\n        const animations = this.parseAnimations(json.animations);\n        const shapes = this.parseShapes(json.shapes);\n        const geometries = this.parseGeometries(json.geometries, shapes);\n\n        const images = await this.parseImagesAsync(json.images);\n\n        const textures = this.parseTextures(json.textures, images);\n        const materials = this.parseMaterials(json.materials, textures);\n\n        const object = await this.parseObject(json.object, geometries, materials, textures, animations);\n        const skeletons = this.parseSkeletons(json.skeletons, object);\n\n        this.bindSkeletons(object, skeletons);\n        this.bindLightTargets(object);\n\n        return object;\n\n    }\n\n    parseShapes(json) {\n\n        const shapes = {};\n\n        if (json !== undefined) {\n\n            for (let i = 0, l = json.length; i < l; i++) {\n\n                const shape = new THREE.Shape().fromJSON(json[i]);\n\n                shapes[shape.uuid] = shape;\n\n            }\n\n        }\n\n        return shapes;\n\n    }\n\n    parseSkeletons(json, object) {\n\n        const skeletons = {};\n        const bones = {};\n\n        // generate bone lookup table\n\n        object.traverse(function (child) {\n\n            if (child.isBone) bones[child.uuid] = child;\n\n        });\n\n        // create skeletons\n\n        if (json !== undefined) {\n\n            for (let i = 0, l = json.length; i < l; i++) {\n\n                const skeleton = new THREE.Skeleton().fromJSON(json[i], bones);\n\n                skeletons[skeleton.uuid] = skeleton;\n\n            }\n\n        }\n\n        return skeletons;\n\n    }\n\n    parseGeometries(json, shapes) {\n\n        const geometries = {};\n\n        if (json !== undefined) {\n\n            const bufferGeometryLoader = new THREE.BufferGeometryLoader();\n\n            for (let i = 0, l = json.length; i < l; i++) {\n\n                let geometry;\n                const data = json[i];\n\n                switch (data.type) {\n\n                    case 'BufferGeometry':\n                    case 'InstancedBufferGeometry':\n\n                        geometry = bufferGeometryLoader.parse(data);\n                        break;\n\n                    default:\n\n                        if (data.type in THREE) {\n\n                            geometry = THREE[data.type].fromJSON(data, shapes);\n\n                        } else {\n\n                            console.warn(`THREE.ObjectLoader: Unsupported geometry type \"${data.type}\"`);\n\n                        }\n\n                }\n\n                geometry.uuid = data.uuid;\n\n                if (data.name !== undefined) geometry.name = data.name;\n                if (data.userData !== undefined) geometry.userData = data.userData;\n\n                geometries[data.uuid] = geometry;\n\n            }\n\n        }\n\n        return geometries;\n\n    }\n\n    parseMaterials(json, textures) {\n\n        const cache = {}; // MultiMaterial\n        const materials = {};\n\n        if (json !== undefined) {\n\n            const loader = new THREE.MaterialLoader();\n            loader.setTextures(textures);\n\n            for (let i = 0, l = json.length; i < l; i++) {\n\n                const data = json[i];\n\n                if (cache[data.uuid] === undefined) {\n\n                    cache[data.uuid] = loader.parse(data);\n\n                }\n\n                materials[data.uuid] = cache[data.uuid];\n\n            }\n\n        }\n\n        return materials;\n\n    }\n\n    parseAnimations(json) {\n\n        const animations = {};\n\n        if (json !== undefined) {\n\n            for (let i = 0; i < json.length; i++) {\n\n                const data = json[i];\n\n                const clip = THREE.AnimationClip.parse(data);\n\n                animations[clip.uuid] = clip;\n\n            }\n\n        }\n\n        return animations;\n\n    }\n\n    parseImages(json, onLoad) {\n\n        const scope = this;\n        const images = {};\n\n        let loader;\n\n        function loadImage(url) {\n\n            scope.manager.itemStart(url);\n\n            return loader.load(url, function () {\n\n                scope.manager.itemEnd(url);\n\n            }, undefined, function () {\n\n                scope.manager.itemError(url);\n                scope.manager.itemEnd(url);\n\n            });\n\n        }\n\n        function deserializeImage(image) {\n\n            if (typeof image === 'string') {\n\n                const url = image;\n\n                const path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\n\n                return loadImage(path);\n\n            } else {\n\n                if (image.data) {\n                    return {\n                        data: new TYPED_ARRAYS[image.type](image.data),\n                        width: image.width,\n                        height: image.height\n                    };\n\n                } else {\n\n                    return null;\n\n                }\n\n            }\n\n        }\n\n        if (json !== undefined && json.length > 0) {\n\n            const manager = new THREE.LoadingManager(onLoad);\n\n            loader = new THREE.ImageLoader(manager);\n            loader.setCrossOrigin(this.crossOrigin);\n\n            for (let i = 0, il = json.length; i < il; i++) {\n\n                const image = json[i];\n                const url = image.url;\n\n                if (Array.isArray(url)) {\n\n                    // load array of images e.g CubeTexture\n\n                    const imageArray = [];\n\n                    for (let j = 0, jl = url.length; j < jl; j++) {\n\n                        const currentUrl = url[j];\n\n                        const deserializedImage = deserializeImage(currentUrl);\n\n                        if (deserializedImage !== null) {\n\n                            if (deserializedImage instanceof HTMLImageElement) {\n\n                                imageArray.push(deserializedImage);\n\n                            } else {\n\n                                // special case: handle array of data textures for cube textures\n\n                                imageArray.push(new THREE.DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n\n                            }\n\n                        }\n\n                    }\n\n                    images[image.uuid] = new THREE.Source(imageArray);\n\n                } else {\n\n                    // load single image\n\n                    const deserializedImage = deserializeImage(image.url);\n                    images[image.uuid] = new THREE.Source(deserializedImage);\n\n\n                }\n\n            }\n\n        }\n\n        return images;\n\n    }\n\n    async parseImagesAsync(json) {\n\n        const scope = this;\n        const images = {};\n\n        let loader;\n\n        async function deserializeImage(image) {\n\n            if (typeof image === 'string') {\n\n                const url = image;\n\n                const path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\n\n                return await loader.loadAsync(path);\n\n            } else {\n\n                if (image.data) {\n\n                    return {\n                        data: new TYPED_ARRAYS[image.type](image.data),\n                        width: image.width,\n                        height: image.height\n                    };\n\n                } else {\n\n                    return null;\n\n                }\n\n            }\n\n        }\n\n        if (json !== undefined && json.length > 0) {\n\n            loader = new THREE.ImageLoader(this.manager);\n            loader.setCrossOrigin(this.crossOrigin);\n\n            for (let i = 0, il = json.length; i < il; i++) {\n\n                const image = json[i];\n                const url = image.url;\n\n                if (Array.isArray(url)) {\n\n                    // load array of images e.g CubeTexture\n\n                    const imageArray = [];\n\n                    for (let j = 0, jl = url.length; j < jl; j++) {\n\n                        const currentUrl = url[j];\n\n                        const deserializedImage = await deserializeImage(currentUrl);\n\n                        if (deserializedImage !== null) {\n\n                            if (deserializedImage instanceof HTMLImageElement) {\n\n                                imageArray.push(deserializedImage);\n\n                            } else {\n\n                                // special case: handle array of data textures for cube textures\n\n                                imageArray.push(new THREE.DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n\n                            }\n\n                        }\n\n                    }\n\n                    images[image.uuid] = new THREE.Source(imageArray);\n\n                } else {\n\n                    // load single image\n\n                    const deserializedImage = await deserializeImage(image.url);\n                    images[image.uuid] = new THREE.Source(deserializedImage);\n\n                }\n\n            }\n\n        }\n\n        return images;\n\n    }\n\n    parseTextures(json, images) {\n\n        function parseConstant(value, type) {\n\n            if (typeof value === 'number') return value;\n\n            console.warn('THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value);\n\n            return type[value];\n\n        }\n\n        const textures = {};\n\n        if (json !== undefined) {\n\n            for (let i = 0, l = json.length; i < l; i++) {\n\n                const data = json[i];\n\n                if (data.image === undefined) {\n\n                    console.warn('THREE.ObjectLoader: No \"image\" specified for', data.uuid);\n\n                }\n\n                if (images[data.image] === undefined) {\n\n                    console.warn('THREE.ObjectLoader: Undefined image', data.image);\n\n                }\n\n                const source = images[data.image];\n                const image = source.data;\n\n                let texture;\n\n                if (Array.isArray(image)) {\n\n                    texture = new THREE.CubeTexture();\n\n                    if (image.length === 6) texture.needsUpdate = true;\n\n                } else {\n\n                    if (image && image.data) {\n\n                        texture = new THREE.DataTexture();\n\n                    } else {\n\n                        texture = new THREE.Texture();\n\n                    }\n\n                    if (image) texture.needsUpdate = true; // textures can have undefined image data\n\n                }\n\n                texture.source = source;\n\n                texture.uuid = data.uuid;\n\n                if (data.name !== undefined) texture.name = data.name;\n\n                if (data.mapping !== undefined) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING);\n                if (data.channel !== undefined) texture.channel = data.channel;\n\n                if (data.offset !== undefined) texture.offset.fromArray(data.offset);\n                if (data.repeat !== undefined) texture.repeat.fromArray(data.repeat);\n                if (data.center !== undefined) texture.center.fromArray(data.center);\n                if (data.rotation !== undefined) texture.rotation = data.rotation;\n\n                if (data.wrap !== undefined) {\n\n                    texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING);\n                    texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING);\n\n                }\n\n                if (data.format !== undefined) texture.format = data.format;\n                if (data.internalFormat !== undefined) texture.internalFormat = data.internalFormat;\n                if (data.type !== undefined) texture.type = data.type;\n                if (data.colorSpace !== undefined) texture.colorSpace = data.colorSpace;\n\n                if (data.minFilter !== undefined) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER);\n                if (data.magFilter !== undefined) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER);\n                if (data.anisotropy !== undefined) texture.anisotropy = data.anisotropy;\n\n                if (data.flipY !== undefined) texture.flipY = data.flipY;\n\n                if (data.generateMipmaps !== undefined) texture.generateMipmaps = data.generateMipmaps;\n                if (data.premultiplyAlpha !== undefined) texture.premultiplyAlpha = data.premultiplyAlpha;\n                if (data.unpackAlignment !== undefined) texture.unpackAlignment = data.unpackAlignment;\n                if (data.compareFunction !== undefined) texture.compareFunction = data.compareFunction;\n\n                if (data.userData !== undefined) texture.userData = data.userData;\n\n                textures[data.uuid] = texture;\n\n            }\n\n        }\n\n        return textures;\n\n    }\n\n    parseObject(data, geometries, materials, textures, animations) {\n        let object;\n\n        function getGeometry(name) {\n            if (geometries[name] === undefined) {\n                console.warn('THREE.ObjectLoader: Undefined geometry', name);\n            }\n\n            return geometries[name];\n        }\n\n        function getMaterial(name) {\n            if (name === undefined) return undefined;\n\n            if (Array.isArray(name)) {\n                const array = [];\n\n                for (let i = 0, l = name.length; i < l; i++) {\n                    const uuid = name[i];\n\n                    if (materials[uuid] === undefined) {\n                        console.warn('THREE.ObjectLoader: Undefined material', uuid);\n                    }\n\n                    array.push(materials[uuid]);\n                }\n\n                return array;\n            }\n\n            if (materials[name] === undefined) {\n                console.warn('THREE.ObjectLoader: Undefined material', name);\n            }\n\n            return materials[name];\n        }\n\n        function getTexture(uuid) {\n            if (textures[uuid] === undefined) {\n                console.warn('THREE.ObjectLoader: Undefined texture', uuid);\n            }\n\n            return textures[uuid];\n        }\n\n        let geometry, material;\n\n        switch (data.type) {\n            case 'Scene':\n\n                object = new THREE.Scene();\n\n                if (data.background !== undefined) {\n\n                    if (Number.isInteger(data.background)) {\n\n                        object.background = new THREE.Color(data.background);\n\n                    } else {\n\n                        object.background = getTexture(data.background);\n\n                    }\n\n                }\n\n                if (data.environment !== undefined) {\n\n                    object.environment = getTexture(data.environment);\n\n                }\n\n                if (data.fog !== undefined) {\n\n                    if (data.fog.type === 'Fog') {\n\n                        object.fog = new THREE.Fog(data.fog.color, data.fog.near, data.fog.far);\n\n                    } else if (data.fog.type === 'FogExp2') {\n\n                        object.fog = new THREE.FogExp2(data.fog.color, data.fog.density);\n\n                    }\n\n                    if (data.fog.name !== '') {\n\n                        object.fog.name = data.fog.name;\n\n                    }\n\n                }\n\n                if (data.backgroundBlurriness !== undefined) object.backgroundBlurriness = data.backgroundBlurriness;\n                if (data.backgroundIntensity !== undefined) object.backgroundIntensity = data.backgroundIntensity;\n                if (data.backgroundRotation !== undefined) object.backgroundRotation.fromArray(data.backgroundRotation);\n\n                if (data.environmentIntensity !== undefined) object.environmentIntensity = data.environmentIntensity;\n                if (data.environmentRotation !== undefined) object.environmentRotation.fromArray(data.environmentRotation);\n\n                break;\n\n            case 'PerspectiveCamera':\n\n                object = new THREE.PerspectiveCamera(data.fov, data.aspect, data.near, data.far);\n\n                if (data.focus !== undefined) object.focus = data.focus;\n                if (data.zoom !== undefined) object.zoom = data.zoom;\n                if (data.filmGauge !== undefined) object.filmGauge = data.filmGauge;\n                if (data.filmOffset !== undefined) object.filmOffset = data.filmOffset;\n                if (data.view !== undefined) object.view = Object.assign({}, data.view);\n\n                break;\n\n            case 'OrthographicCamera':\n\n                object = new THREE.OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);\n\n                if (data.zoom !== undefined) object.zoom = data.zoom;\n                if (data.view !== undefined) object.view = Object.assign({}, data.view);\n\n                break;\n\n            case 'AmbientLight':\n\n                object = new THREE.AmbientLight(data.color, data.intensity);\n\n                break;\n\n            case 'DirectionalLight':\n\n                object = new THREE.DirectionalLight(data.color, data.intensity);\n                object.target = data.target || '';\n\n                break;\n\n            case 'PointLight':\n\n                object = new THREE.PointLight(data.color, data.intensity, data.distance, data.decay);\n\n                break;\n\n            case 'RectAreaLight':\n\n                object = new THREE.RectAreaLight(data.color, data.intensity, data.width, data.height);\n\n                break;\n\n            case 'SpotLight':\n\n                object = new THREE.SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);\n                object.target = data.target || '';\n\n                break;\n\n            case 'HemisphereLight':\n\n                object = new THREE.HemisphereLight(data.color, data.groundColor, data.intensity);\n\n                break;\n\n            case 'LightProbe':\n\n                object = new THREE.LightProbe().fromJSON(data);\n\n                break;\n\n            case 'SkinnedMesh':\n\n                geometry = getGeometry(data.geometry);\n                material = getMaterial(data.material);\n\n                object = new THREE.SkinnedMesh(geometry, material);\n\n                if (data.bindMode !== undefined) object.bindMode = data.bindMode;\n                if (data.bindMatrix !== undefined) object.bindMatrix.fromArray(data.bindMatrix);\n                if (data.skeleton !== undefined) object.skeleton = data.skeleton;\n\n                break;\n\n            case 'Mesh':\n\n                geometry = getGeometry(data.geometry);\n                material = getMaterial(data.material);\n\n                object = new THREE.Mesh(geometry, material);\n\n                break;\n\n            case 'InstancedMesh':\n\n                geometry = getGeometry(data.geometry);\n                material = getMaterial(data.material);\n                const count = data.count;\n                const instanceMatrix = data.instanceMatrix;\n                const instanceColor = data.instanceColor;\n\n                object = new THREE.InstancedMesh(geometry, material, count);\n                object.instanceMatrix = new THREE.InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16);\n                if (instanceColor !== undefined) object.instanceColor = new THREE.InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize);\n\n                break;\n\n            case 'BatchedMesh':\n\n                geometry = getGeometry(data.geometry);\n                material = getMaterial(data.material);\n\n                object = new THREE.BatchedMesh(data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material);\n                object.geometry = geometry;\n                object.perObjectFrustumCulled = data.perObjectFrustumCulled;\n                object.sortObjects = data.sortObjects;\n\n                object._drawRanges = data.drawRanges;\n                object._reservedRanges = data.reservedRanges;\n\n                object._visibility = data.visibility;\n                object._active = data.active;\n                object._bounds = data.bounds.map(bound => {\n\n                    const box = new THREE.Box3();\n                    box.min.fromArray(bound.boxMin);\n                    box.max.fromArray(bound.boxMax);\n\n                    const sphere = new THREE.Sphere();\n                    sphere.radius = bound.sphereRadius;\n                    sphere.center.fromArray(bound.sphereCenter);\n\n                    return {\n                        boxInitialized: bound.boxInitialized,\n                        box: box,\n\n                        sphereInitialized: bound.sphereInitialized,\n                        sphere: sphere\n                    };\n\n                });\n\n                object._maxInstanceCount = data.maxInstanceCount;\n                object._maxVertexCount = data.maxVertexCount;\n                object._maxIndexCount = data.maxIndexCount;\n\n                object._geometryInitialized = data.geometryInitialized;\n                object._geometryCount = data.geometryCount;\n\n                object._matricesTexture = getTexture(data.matricesTexture.uuid);\n                if (data.colorsTexture !== undefined) object._colorsTexture = getTexture(data.colorsTexture.uuid);\n\n                break;\n\n            case 'LOD':\n\n                object = new THREE.LOD();\n\n                break;\n\n            case 'Line':\n\n                object = new THREE.Line(getGeometry(data.geometry), getMaterial(data.material));\n\n                break;\n\n            case 'LineLoop':\n\n                object = new THREE.LineLoop(getGeometry(data.geometry), getMaterial(data.material));\n\n                break;\n\n            case 'LineSegments':\n\n                object = new THREE.LineSegments(getGeometry(data.geometry), getMaterial(data.material));\n\n                break;\n\n            case 'PointCloud':\n            case 'Points':\n\n                object = new THREE.Points(getGeometry(data.geometry), getMaterial(data.material));\n\n                break;\n\n            case 'Sprite':\n\n                object = new THREE.Sprite(getMaterial(data.material));\n\n                break;\n\n            case 'Group':\n\n                object = new THREE.Group();\n\n                break;\n\n            case 'Bone':\n\n                object = new THREE.Bone();\n\n                break;\n\n            // 粒子对象\n            case 'Particle':\n                object = ParticleEmitter.fromJSON(data);\n                break;\n\n            // 广告牌\n            case 'Billboard':\n                object = Billboard.fromJSON({\n                    material: getMaterial(data.material),\n                    options: data.options\n                });\n                break;\n\n            // HtmlPanel\n            case 'HtmlPanel':\n                object = HtmlPanel.fromJSON(data);\n                break;\n\n            // HtmlSprite\n            case 'HtmlSprite':\n                object = HtmlSprite.fromJSON(data);\n                break;\n\n            default:\n                object = new THREE.Object3D();\n\n        }\n\n        this.copyAttrByData(object, data,geometries, materials, textures, animations);\n\n        return object;\n    }\n\n    copyAttrByData(object, data,geometries = {}, materials = {}, textures = {}, animations = {}) {\n        object.uuid = data.uuid;\n\n        if (data.name !== undefined) object.name = data.name;\n\n        if (data.matrix !== undefined) {\n\n            object.matrix.fromArray(data.matrix);\n\n            if (data.matrixAutoUpdate !== undefined) object.matrixAutoUpdate = data.matrixAutoUpdate;\n            if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale);\n\n        } else {\n\n            if (data.position !== undefined) object.position.fromArray(data.position);\n            if (data.rotation !== undefined) object.rotation.fromArray(data.rotation);\n            if (data.quaternion !== undefined) object.quaternion.fromArray(data.quaternion);\n            if (data.scale !== undefined) object.scale.fromArray(data.scale);\n\n        }\n\n        if (data.up !== undefined) object.up.fromArray(data.up);\n\n        if (data.castShadow !== undefined) object.castShadow = data.castShadow;\n        if (data.receiveShadow !== undefined) object.receiveShadow = data.receiveShadow;\n\n        if (data.shadow) {\n\n            if (data.shadow.intensity !== undefined) object.shadow.intensity = data.shadow.intensity;\n            if (data.shadow.bias !== undefined) object.shadow.bias = data.shadow.bias;\n            if (data.shadow.normalBias !== undefined) object.shadow.normalBias = data.shadow.normalBias;\n            if (data.shadow.radius !== undefined) object.shadow.radius = data.shadow.radius;\n            if (data.shadow.mapSize !== undefined) object.shadow.mapSize.fromArray(data.shadow.mapSize);\n            if (data.shadow.camera !== undefined) object.shadow.camera = this.parseObject(data.shadow.camera);\n\n        }\n\n        if (data.visible !== undefined) object.visible = data.visible;\n        if (data.frustumCulled !== undefined) object.frustumCulled = data.frustumCulled;\n        if (data.renderOrder !== undefined) object.renderOrder = data.renderOrder;\n        if (data.userData !== undefined) object.userData = data.userData;\n        if (data.layers !== undefined) object.layers.mask = data.layers;\n\n        if (data.children !== undefined) {\n            const children = data.children;\n\n            for (let i = 0; i < children.length; i++) {\n                object.add(this.parseObject(children[i], geometries, materials, textures, animations));\n            }\n        }\n\n        if (data.animations !== undefined) {\n\n            const objectAnimations = data.animations;\n\n            for (let i = 0; i < objectAnimations.length; i++) {\n\n                const uuid = objectAnimations[i];\n\n                object.animations.push(animations[uuid]);\n\n            }\n\n        }\n\n        if (data.type === 'LOD') {\n\n            if (data.autoUpdate !== undefined) object.autoUpdate = data.autoUpdate;\n\n            const levels = data.levels;\n\n            for (let l = 0; l < levels.length; l++) {\n\n                const level = levels[l];\n                const child = object.getObjectByProperty('uuid', level.object);\n\n                if (child !== undefined) {\n\n                    object.addLevel(child, level.distance, level.hysteresis);\n\n                }\n\n            }\n\n        }\n    }\n\n    bindSkeletons(object, skeletons) {\n\n        if (Object.keys(skeletons).length === 0) return;\n\n        object.traverse(function (child) {\n\n            if (child.isSkinnedMesh === true && child.skeleton !== undefined) {\n\n                const skeleton = skeletons[child.skeleton];\n\n                if (skeleton === undefined) {\n\n                    console.warn('THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton);\n\n                } else {\n\n                    child.bind(skeleton, child.bindMatrix);\n\n                }\n\n            }\n\n        });\n\n    }\n\n    bindLightTargets(object) {\n\n        object.traverse(function (child) {\n\n            if (child.isDirectionalLight || child.isSpotLight) {\n\n                const uuid = child.target;\n\n                const target = object.getObjectByProperty('uuid', uuid);\n\n                if (target !== undefined) {\n\n                    child.target = target;\n\n                } else {\n\n                    child.target = new THREE.Object3D();\n\n                }\n\n            }\n\n        });\n    }\n}\n\nexport {ObjectLoader};\n"
  },
  {
    "path": "packages/sdk/lib/core/loader/Package.Skeleton.ts",
    "content": "/**\n * @author MaHaiBing\n * @email  mlt131220@163.com\n * @date   2024/8/3 22:49\n * @description 包 骨骼处理\n */\nimport {Skeleton, Bone, Object3D } from \"three\";\n\nexport class PackageSkeleton{\n    // 场景内所有骨骼的map\n    private boneMap = new Map<string,Bone>();\n    // 场景内所有骨架的map <skeletonUuid:string,skeleton:Skeleton>\n    private skeletonsMap  = new Map<string, Skeleton>();\n    // 骨架未对应上的骨骼 <boneUuid:string,skeleton:Skeleton[]>\n    private unMatchBoneMap  = new Map<string, Skeleton[]>();\n\n    constructor() {\n    }\n\n    addBones(bones:Bone[]){\n        bones.forEach(bone => {\n            if(this.boneMap.has(bone.uuid)) return;\n\n            this.boneMap.set(bone.uuid,bone);\n\n            if(this.unMatchBoneMap.has(bone.uuid)){\n                const skeletons = this.unMatchBoneMap.get(bone.uuid) as Skeleton[];\n\n                skeletons.forEach(skeleton => {\n                    skeleton.bones.push(bone);\n\n                    // 骨骼找到一个替换一个loader.parse时对应骨骼（Bone）还未加载，生成的空骨骼\n                    const d = skeleton.bones.findIndex(bone => bone.userData.waitDelete);\n                    if(d === -1) return;\n                    skeleton.bones.splice(d,1);\n                })\n\n                this.unMatchBoneMap.delete(bone.uuid);\n            }\n        })\n    }\n\n    handleSkeletons(skeletons,group:Object3D){\n        skeletons.forEach(skeleton => {\n            if(this.skeletonsMap.has(skeleton.uuid)) return;\n\n            let skinnedMesh;\n            group.traverse((m)=> {\n                if(!m.skeleton?.uuid) return;\n\n                if(m.skeleton.uuid === skeleton.uuid){\n                    skinnedMesh = m;\n                }\n            })\n            if(!skinnedMesh) return;\n\n            // 此骨架的原骨骼（Bone）uuid数组\n            const bonesUuid:string[] = skeleton.bones;\n\n            // 对比skinnedMesh.skeleton.bones 和 skeleton.bones\n            for(let i  = skinnedMesh.skeleton.bones.length;i > 0;i--){\n                const bone = skinnedMesh.skeleton.bones[i  - 1];\n                const u = bonesUuid.indexOf(bone.uuid);\n\n                if(u === -1){\n                    // 和原数组没匹配上，说明此骨骼不是原骨骼，是loader.parse时对应骨骼（Bone）还未加载，生成的新的空骨骼\n                    // 但不能直接从skeleton中删除，需要之后找到对应骨骼一个一个替换\n                    bone.userData.waitDelete = true;\n                }else{\n                    bonesUuid.splice(u,1);\n                }\n            }\n\n            if(bonesUuid.length > 0){\n                // 在已存储的骨骼中寻找\n                for(let i = bonesUuid.length;i > 0;i--){\n                    if(this.boneMap.has(bonesUuid[i])){\n                        skinnedMesh.skeleton.bones.push(<Bone>this.boneMap.get(bonesUuid[i]));\n\n                        bonesUuid.splice(i,1);\n                    }\n                }\n\n                bonesUuid.forEach(uuid => {\n                    const skeletons = this.unMatchBoneMap.get(uuid) || [];\n                    skeletons.push(skinnedMesh.skeleton);\n                    this.unMatchBoneMap.set(uuid,skeletons);\n                })\n            }\n\n            this.skeletonsMap.set(skeleton.uuid,skinnedMesh.skeleton);\n        })\n    }\n\n    clear(){\n        this.boneMap.clear();\n        this.skeletonsMap.clear();\n        this.unMatchBoneMap.clear();\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/loader/Package.ts",
    "content": "/**\n * @file Package.ts\n * @description 场景打包解包\n * @create 2024-07-31\n * @update 2025-02-14\n * @version 5.0.0\n */\nimport { Mesh, Group, Bone } from \"three\";\nimport { BASE64_TYPES, TYPED_ARRAYS } from \"@/constant\";\nimport {\n\tfetchController,\n\twaitAstralZipConstructor,\n\treadAstralZipArrayBuffer,\n\tgetAstralZipWorkers,\n\treadAstralZipText,\n\treadAstralZipBlob,\n} from \"@/utils\";\nimport { PackageSkeleton } from \"@/core/loader/Package.Skeleton\";\nimport { useDispatchSignal } from \"@/hooks\";\nimport { ObjectLoader } from \"./ObjectLoader\";\nimport App from \"@/core/app/App\";\nimport type Viewer from \"@/core/viewer/Viewer\";\n\ninterface IPackConfig {\n\tname: string; // 首包名称\n\tlayer?: number; // 拆分的最深层级 0:拆分至最深层\n\tzipUploadFun: (zip: File) => Promise<any>; // 压缩包上传接口函数，多压缩包\n\tonProgress?: (progress: number) => void; // 打包进度回调\n\tonComplete?: (_: { firstUploadResult: any; totalSize: number; totalZipNumber: number }) => void; // 打包完成回调\n}\n\ninterface IUnpackConfig {\n\turl: string; // 首包url\n\tonSceneLoad?: (sceneJson: ISceneJson, configJson: IAppProject.Config) => void; // 场景首包加载完成回调\n\tonProgress?: (progress: number) => void; // 场景加载进度回调\n\tonComplete?: () => void; // 场景加载完成回调.\n}\n\ninterface SourceData {\n\tname: string;\n\tjson?: string | ArrayBuffer;\n\ttexture?: string | ArrayBuffer;\n\tgeometry?: string;\n\tdrawing?: string;\n}\n\ninterface GroupJson {\n\timages: any[];\n\tgeometries: any[];\n\tobject: {\n\t\tchildren: any[];\n\t\t//groupChildren: string[]\n\t};\n}\n\nexport class Package {\n\tprotected viewer: Viewer;\n\t// 控制fetch并发\n\tstatic _fetch = fetchController(10, false);\n\n\tprivate totalSize: number = 0; // 总包体大小\n\n\tprivate geometryArr: any[];\n\tprivate imagesArr: any[];\n\tprivate materialsArr: any[];\n\tprivate textureArr: any[];\n\tprivate skeletonsArr: any[];\n\n\t// 解压时 对应文件夹前缀url\n\tprivate prefix_url: string;\n\tprivate loader: ObjectLoader;\n\n\tprivate geometryMap: Map<string, any>;\n\tprivate imagesMap: Map<string, any>;\n\tprivate materialsMap: Map<string, any>;\n\tprivate textureMap: Map<string, any>;\n\tprivate callFunNum: { value: number };\n\tprivate skeletonClass: PackageSkeleton;\n\n\tconstructor(viewer: Viewer) {\n\t\tthis.viewer = viewer;\n\n\t\t// 存储已参与打包过的geometry uuid\n\t\tthis.geometryArr = [];\n\t\t// 存储已参与打包过的images uuid\n\t\tthis.imagesArr = [];\n\t\t// 存储已参与打包过的materials uuid\n\t\tthis.materialsArr = [];\n\t\t// 存储已参与打包过的texture uuid\n\t\tthis.textureArr = [];\n\t\t// 存储已参与打包过的skeleton uuid\n\t\tthis.skeletonsArr = [];\n\n\t\t/**  下面都是解包用  */\n\t\tthis.prefix_url = \"\";\n\t\tthis.loader = new ObjectLoader();\n\n\t\tthis.geometryMap = new Map<string, any>();\n\t\tthis.imagesMap = new Map<string, any>();\n\t\tthis.materialsMap = new Map<string, any>();\n\t\tthis.textureMap = new Map<string, any>();\n\n\t\tthis.callFunNum = { value: 0 };\n\n\t\tthis.skeletonClass = new PackageSkeleton();\n\t}\n\n\t/*  -------------------------------------------- 切片打包 ---------------------------------------------------   */\n\t/**\n\t * 处理 image json\n\t * @param imageJson\n\t * @param zipData 存储待压缩数据\n\t * @returns {string} 返回贴图存储文件名称\n\t */\n\thandleImage(imageJson: ITHREEScene.ImageJSON, zipData: SourceData[]): string {\n\t\tif (typeof imageJson.url === \"string\") {\n\t\t\tconst name = imageJson.uuid + `.${BASE64_TYPES[imageJson.url.split(\",\")[0]]}`;\n\t\t\tzipData.push({ name, texture: imageJson.url });\n\t\t\treturn name;\n\t\t}\n\n\t\t// 20250707:three的toJSON方法暂不支持KTX2纹理，会返回{url:{},uuid:\"xxxxx\"}\n\t\tif (!imageJson.url.type) {\n\t\t\tconst name = imageJson.uuid + `.ktx2`;\n\t\t\tzipData.push({ name, texture: JSON.stringify(imageJson.url) });\n\t\t\treturn name;\n\t\t}\n\n\t\tconst name = `${imageJson.url.type}!${imageJson.url.width}!${imageJson.url.height}!${imageJson.uuid}.env`;\n\t\tconst buffer = new TYPED_ARRAYS[imageJson.url.type](imageJson.url.data);\n\t\tzipData.push({ name, texture: buffer.buffer });\n\t\treturn name;\n\t}\n\n\t/**\n\t * 处理 mesh json\n\t * @param mesh\n\t * @param json group json\n\t * @param zipData 存储待压缩数据\n\t */\n\thandleMesh(mesh: Mesh, json: ITHREEScene.SceneJSON, zipData: SourceData[]) {\n\t\tconst meshJson: any = mesh.toJSON() as unknown as ITHREEScene.MeshJSON;\n\n\t\t// 处理几何数据\n\t\tif (meshJson.geometries) {\n\t\t\tconst geometries: any = [];\n\t\t\tmeshJson.geometries.forEach(geometry => {\n\t\t\t\tif (this.geometryArr.indexOf(geometry.uuid) === -1) {\n\t\t\t\t\tthis.geometryArr.push(geometry.uuid);\n\t\t\t\t\tgeometries.push(geometry);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t!json.geometries && (json.geometries = []);\n\t\t\tjson.geometries.push(...geometries);\n\t\t}\n\n\t\t// 处理贴图image\n\t\tif (meshJson.images) {\n\t\t\tmeshJson.images.forEach(image => {\n\t\t\t\tif (this.imagesArr.indexOf(image.uuid) === -1) {\n\t\t\t\t\tthis.imagesArr.push(image.uuid);\n\n\t\t\t\t\t!json.images && (json.images = []);\n\n\t\t\t\t\tconst name = this.handleImage(image, zipData);\n\t\t\t\t\tif (name) {\n\t\t\t\t\t\tjson.images.push(name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// 处理贴图texture\n\t\tif (meshJson.textures) {\n\t\t\tmeshJson.textures.forEach(texture => {\n\t\t\t\tif (this.textureArr.indexOf(texture.uuid) === -1) {\n\t\t\t\t\tthis.textureArr.push(texture.uuid);\n\n\t\t\t\t\t!json.textures && (json.textures = []);\n\n\t\t\t\t\tjson.textures.push(texture);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// 处理材质material\n\t\tif (meshJson.materials) {\n\t\t\tmeshJson.materials.forEach(material => {\n\t\t\t\tif (this.materialsArr.indexOf(material.uuid) === -1) {\n\t\t\t\t\tthis.materialsArr.push(material.uuid);\n\n\t\t\t\t\t!json.materials && (json.materials = []);\n\n\t\t\t\t\tjson.materials.push(material);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// 处理骨骼动画\n\t\tif (meshJson.skeletons) {\n\t\t\tmeshJson.skeletons.forEach(skeleton => {\n\t\t\t\tif (this.skeletonsArr.indexOf(skeleton.uuid) === -1) {\n\t\t\t\t\tthis.skeletonsArr.push(skeleton.uuid);\n\n\t\t\t\t\t!json.skeletons && (json.skeletons = []);\n\n\t\t\t\t\tjson.skeletons.push(skeleton);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// 处理动画\n\t\tif (meshJson.animations) {\n\t\t\t!json.animations && (json.animations = []);\n\n\t\t\tjson.animations.push(...meshJson.animations);\n\t\t}\n\n\t\t// object 字段存入group json(parent json)\n\t\tif (meshJson.object) {\n\t\t\t!json.object.children && (json.object.children = []);\n\n\t\t\tjson.object.children.push(meshJson.object);\n\t\t}\n\t}\n\n\t/**\n\t * 按 group 分组各打包为1个zip文件\n\t * @param {IPackConfig} packConfig\n\t * @remarks 首包保存scene基本信息 和 图纸信息 及 基础配置\n\t * @remarks 前面已打包的几何数据和材质贴图不会再次打包\n\t */\n\tasync pack(packConfig: IPackConfig) {\n\t\tpackConfig.layer = packConfig.layer || 0;\n\n\t\tthis.totalSize = 0;\n\n\t\t// 首包保存scene基本信息,不clone子级\n\t\tconst newScene = this.viewer.scene.clone(false);\n\t\tnewScene.children = [];\n\n\t\tconst sceneJson = newScene.toJSON() as unknown as ITHREEScene.SceneJSON;\n\t\t// scene uuid需要和原来一致，防止绑定在scene的脚本无法还原\n\t\tsceneJson.object.uuid = this.viewer.scene.uuid;\n\t\tsceneJson.object.children = [];\n\n\t\t// 20250718: 环境类型是ModelViewer时需要特殊处理，因为scene.toJSON()不会处理renderTargetTexture\n\t\tif (newScene.environment && newScene.environment.isRenderTargetTexture) {\n\t\t\tsceneJson.object.environmentType = \"ModelViewer\";\n\t\t}\n\n\t\tconst sceneZipData: SourceData[] = [];\n\t\t// 处理背景和环境贴图\n\t\tif (!sceneJson.images) sceneJson.images = [];\n\t\tsceneJson.images = sceneJson.images.map(image => this.handleImage(image as ITHREEScene.ImageJSON, sceneZipData));\n\n\t\t// 保存场景中需打包的group数组\n\t\tlet groupArr: Group[] = [];\n\n\t\t// 处理 scene 子级\n\t\tthis.viewer.scene.children.forEach(child => {\n\t\t\tif (child.ignore) return;\n\n\t\t\tif (child.type === \"Group\" || child.children?.length > 0) {\n\t\t\t\tsceneJson.object.children?.push(child.uuid);\n\n\t\t\t\tchild.groupLayer = 1;\n\t\t\t\tgroupArr.push(child as Group);\n\n\t\t\t\tchild.traverseByCondition(\n\t\t\t\t\tc => {\n\t\t\t\t\t\t// 不递归自身\n\t\t\t\t\t\tif (c.uuid === child.uuid) return;\n\n\t\t\t\t\t\tif (c.type === \"Group\" || c.children?.length > 0) {\n\t\t\t\t\t\t\tc.groupLayer = c.parent.groupLayer + 1;\n\t\t\t\t\t\t\tif (c.groupLayer <= <number>packConfig.layer || packConfig.layer === 0) {\n\t\t\t\t\t\t\t\tgroupArr.push(c);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tc => !c.ignore\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.handleMesh(<Mesh>child, sceneJson, sceneZipData);\n\t\t\t}\n\t\t});\n\n\t\t// 将所有几何数据取出 单独存储\n\t\tif (sceneJson.geometries) {\n\t\t\t// 为避免数据量过大超过V8引擎对于字符串2^32的限制，分为多个切片（10个几何数据为一组）json\n\t\t\tconst transferNum = Math.ceil(sceneJson.geometries.length / 10);\n\t\t\tfor (let i = 0; i < transferNum; i++) {\n\t\t\t\tconst name = `geometries_${i}.json`;\n\t\t\t\tconst geometry = JSON.stringify(sceneJson.geometries.slice(i * 10, (i + 1) * 10));\n\t\t\t\tsceneZipData.push({ name, geometry });\n\t\t\t}\n\t\t\tsceneJson.geometries = [];\n\t\t}\n\n\t\tconst drawingInfo = App.project.getKey(\"drawing\");\n\t\tconst sceneInfo = Object.assign(App.project.getKey(\"sceneInfo\"), {\n\t\t\t// 覆盖原zip包位置\n\t\t\tzip: \"\",\n\t\t\thasDrawing: drawingInfo.isUploaded ? 1 : 0,\n\t\t});\n\n\t\t// 图纸\n\t\tif (drawingInfo.isUploaded) {\n\t\t\t// 图片\n\t\t\tsceneZipData.push({\n\t\t\t\tname: sceneInfo.id + `.${BASE64_TYPES[drawingInfo.imgSrc.split(\",\")[0]]}`,\n\t\t\t\tdrawing: drawingInfo.imgSrc,\n\t\t\t});\n\n\t\t\t// 标记\n\t\t\tsceneZipData.push({ name: \"drawingMark.txt\", drawing: drawingInfo.markList });\n\n\t\t\t// 图片信息(宽高信息等，以便于其他地方使用可计算标记左上距离百分比)\n\t\t\tsceneZipData.push({ name: \"drawingImgInfo.json\", drawing: JSON.stringify(drawingInfo.imgInfo) });\n\t\t}\n\n\t\t// 项目配置\n\t\tsceneZipData.push({\n\t\t\tname: \"config.json\",\n\t\t\tjson: JSON.stringify({\n\t\t\t\t// 项目运行是否启用xr\n\t\t\t\txr: App.project.getKey(\"xr\"),\n\t\t\t\t// 项目渲染器配置\n\t\t\t\trenderer: App.project.getKey(\"renderer\"),\n\t\t\t\t// 项目级联阴影映射\n\t\t\t\tcsm: App.project.getKey(\"csm\"),\n\t\t\t\t// 项目后处理配置\n\t\t\t\teffect: App.project.getKey(\"effect\"),\n\t\t\t\t// 项目天气配置\n\t\t\t\tweather: App.project.getKey(\"weather\"),\n\t\t\t}),\n\t\t});\n\n\t\tconst totalNum = groupArr.length + 1;\n\t\tsceneZipData.push({\n\t\t\tname: \"scene.json\",\n\t\t\tjson: JSON.stringify({\n\t\t\t\t// 解包时需要还原的编辑器场景信息\n\t\t\t\tmetadata: App.metadata,\n\t\t\t\tcamera: this.viewer.camera.toJSON(),\n\t\t\t\tscene: sceneJson,\n\t\t\t\tscripts: App.scripts,\n\t\t\t\tcontrols: {\n\t\t\t\t\tstate: this.viewer.modules.controls.toJSON(),\n\t\t\t\t},\n\t\t\t\ttotalZipNumber: totalNum,\n\t\t\t\tsceneInfo: sceneInfo,\n\t\t\t}),\n\t\t});\n\n\t\t// 首包上传\n\t\tconst firstUploadResult = await this.zip(sceneZipData, packConfig.name, packConfig.zipUploadFun);\n\n\t\t// 进度\n\t\tlet progress = 0;\n\t\tpackConfig.onProgress && packConfig.onProgress(parseFloat(((progress / groupArr.length) * 100).toFixed(2)));\n\n\t\t// 遍历打包group并上传\n\t\tfor (const group of groupArr) {\n\t\t\t// clone(false) 不克隆子元素\n\t\t\tconst g = group.clone(false);\n\t\t\tg.children = [];\n\n\t\t\t// 空 group\n\t\t\tlet json: any = g.toJSON() as unknown as ITHREEScene.SceneJSON;\n\t\t\tjson.geometries = [];\n\t\t\tjson.images = [];\n\t\t\tjson.textures = [];\n\t\t\tjson.materials = [];\n\t\t\tjson.object.uuid = group.uuid;\n\t\t\tjson.object.children = [];\n\n\t\t\t// 存储待压缩数据\n\t\t\tconst zipData: SourceData[] = [];\n\n\t\t\tgroup.children.forEach(child => {\n\t\t\t\t// 被groupArr包含的子级后面会单独处理，此处仅引用其uuid\n\t\t\t\tif (groupArr.find(item => item.uuid === child.uuid)) {\n\t\t\t\t\tjson.object.children?.push(child.uuid);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.handleMesh(<Mesh>child, json, zipData);\n\t\t\t});\n\n\t\t\t// 将所有几何数据取出 单独存储\n\t\t\tif (json.geometries) {\n\t\t\t\t// 为避免数据量过大超过V8引擎对于字符串2^32的限制，分为多个切片（10个几何数据为一组）json\n\t\t\t\tconst transferNum = Math.ceil(json.geometries.length / 10);\n\t\t\t\tfor (let i = 0; i < transferNum; i++) {\n\t\t\t\t\tconst name = `geometries_${i}.json`;\n\t\t\t\t\tconst geometry = JSON.stringify(json.geometries.slice(i * 10, (i + 1) * 10));\n\t\t\t\t\tzipData.push({ name, geometry });\n\t\t\t\t}\n\t\t\t\tjson.geometries = [];\n\t\t\t}\n\n\t\t\t// json 打包\n\t\t\t// 还原uuid\n\t\t\tjson.object.uuid = group.uuid;\n\t\t\tconst name = `${group.uuid}.json`;\n\t\t\tconst content = JSON.stringify(json);\n\t\t\tzipData.push({ name, json: content });\n\n\t\t\tawait this.zip(zipData, group.uuid, packConfig.zipUploadFun);\n\n\t\t\tprogress++;\n\t\t\tpackConfig.onProgress && packConfig.onProgress(parseFloat(((progress / groupArr.length) * 100).toFixed(2)));\n\t\t}\n\n\t\t// reset\n\t\tgroupArr = [];\n\t\tthis.geometryArr = [];\n\t\tthis.imagesArr = [];\n\t\tthis.materialsArr = [];\n\t\tthis.textureArr = [];\n\n\t\tpackConfig.onComplete && packConfig.onComplete({ firstUploadResult, totalSize: this.totalSize, totalZipNumber: totalNum });\n\n\t\treturn { firstUploadResult, totalSize: this.totalSize, totalZipNumber: totalNum };\n\t}\n\n\t/**\n\t * zip 打包\n\t * @param sourceData 待打包数据\n\t * @param {string | number} zipName 打包文件名\n\t * @return {Promise<any>} 返回包上传接口结果\n\t */\n\tprivate async zip(sourceData: SourceData[], zipName: string | number, zipUploadFun: (zip: File) => Promise<any>): Promise<any> {\n\t\tconst AstralZip = await waitAstralZipConstructor();\n\t\tconst zipArchive = new AstralZip();\n\t\tconst imgFolder = zipArchive.folder(\"Textures\"); // 贴图文件夹\n\t\tconst geometriesFolder = zipArchive.folder(\"Geometries\"); // 几何数据文件夹\n\t\tconst drawingFolder = zipArchive.folder(\"Drawing\"); // 图纸文件夹\n\n\t\tlet content: Blob | null = null;\n\t\ttry {\n\t\t\tsourceData.forEach(item => {\n\t\t\t\tif (item.texture) {\n\t\t\t\t\timgFolder.file(item.name, item.texture, {\n\t\t\t\t\t\tcompression: \"DEFLATE\", //\"STORE\",//\"DEFLATE\n\t\t\t\t\t\tcompressionOptions: {\n\t\t\t\t\t\t\tlevel: 7,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t} else if (item.geometry) {\n\t\t\t\t\tgeometriesFolder.file(item.name, item.geometry, {\n\t\t\t\t\t\tcompression: \"DEFLATE\", //\"STORE\",//\"DEFLATE\n\t\t\t\t\t\tcompressionOptions: {\n\t\t\t\t\t\t\tlevel: 7,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t} else if (item.json) {\n\t\t\t\t\tzipArchive.file(item.name, item.json, {\n\t\t\t\t\t\tcompression: \"DEFLATE\", //\"STORE\",//\"DEFLATE\n\t\t\t\t\t\tcompressionOptions: {\n\t\t\t\t\t\t\tlevel: 7,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t} else if (item.drawing) {\n\t\t\t\t\tdrawingFolder.file(item.name, item.drawing, {\n\t\t\t\t\t\tcompression: \"DEFLATE\", //\"STORE\",//\"DEFLATE\n\t\t\t\t\t\tcompressionOptions: {\n\t\t\t\t\t\t\tlevel: 9,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tcontent = (await zipArchive.generateAsync({\n\t\t\t\ttype: \"blob\",\n\t\t\t\tcompression: \"DEFLATE\",\n\t\t\t\tcompressionOptions: {\n\t\t\t\t\tlevel: 7,\n\t\t\t\t},\n\t\t\t\tworkers: getAstralZipWorkers(),\n\t\t\t})) as Blob;\n\t\t} finally {\n\t\t\tzipArchive.dispose();\n\t\t}\n\n\t\tif (!content) {\n\t\t\tthrow new Error(\"zip 打包失败\");\n\t\t}\n\n\t\tconst zipFile = new File([content], `${zipName}.zip`, { type: \"application/zip\" });\n\n\t\tthis.totalSize += zipFile.size;\n\n\t\t// 上传zip包\n\t\treturn await zipUploadFun(zipFile);\n\t}\n\n\t/*  -------------------------------------------- 解包 ---------------------------------------------------   */\n\t/**\n\t * 还原贴图\n\t * @param imageName\n\t * @param data\n\t */\n\tprivate unGzipImage(imageName: string, data) {\n\t\tconst nameSplit = imageName.split(\".\");\n\t\tif (nameSplit[1] === \"env\") {\n\t\t\tconst urlSplit = nameSplit[0].split(\"!\");\n\t\t\tthis.imagesMap.set(urlSplit[3], {\n\t\t\t\tuuid: urlSplit[3],\n\t\t\t\turl: {\n\t\t\t\t\ttype: urlSplit[0],\n\t\t\t\t\twidth: parseInt(urlSplit[1]),\n\t\t\t\t\theight: parseInt(urlSplit[2]),\n\t\t\t\t\t/**\n\t\t\t\t\t * sceneJson打zip包前原数据为Array,此处解压后我们使用ArrayBuffer，不还原为Array\n\t\t\t\t\t * 还原为Array这样写 Array.from(new TYPED_ARRAYS[urlSplit[0]](textureMap.get(urlSplit[3] + \".env\")))\n\t\t\t\t\t **/\n\t\t\t\t\tdata: data,\n\t\t\t\t},\n\t\t\t});\n\t\t} else {\n\t\t\tthis.imagesMap.set(nameSplit[0], {\n\t\t\t\tuuid: nameSplit[0],\n\t\t\t\turl: data,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * 记录materials、texture、geometry已加载的uuid\n\t * @param object3D 模型json\n\t */\n\tprivate recordUuid(object3D) {\n\t\tif (object3D.geometries) {\n\t\t\tobject3D.geometries.forEach(geometry => {\n\t\t\t\tthis.geometryMap.set(geometry.uuid, geometry);\n\t\t\t});\n\t\t}\n\t\tif (object3D.materials) {\n\t\t\tobject3D.materials.forEach(material => {\n\t\t\t\tthis.materialsMap.set(material.uuid, material);\n\t\t\t});\n\t\t}\n\t\tif (object3D.textures) {\n\t\t\tobject3D.textures.forEach(texture => {\n\t\t\t\tthis.textureMap.set(texture.uuid, texture);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * 从首包开始解包\n\t * @param {IUnpackConfig} unpackConfig\n\t */\n\tpublic unpack(unpackConfig: IUnpackConfig) {\n\t\tunpackConfig.onProgress && unpackConfig.onProgress(0);\n\t\tlet totalZipNumber = 0,\n\t\t\tprogress = 0;\n\n\t\tconst match = unpackConfig.url.match(/(.*[\\\\/])?([a-zA-Z0-9]+-V\\d+)(?=[\\\\/]|$)/);\n\t\tthis.prefix_url = this.viewer.options.request?.baseUrl + (match ? match[0] : unpackConfig.url.substring(0, unpackConfig.url.lastIndexOf(\"/\")));\n\n\t\t// indexDb存储\n\t\t// const db = window.VIEWPORT.modules[\"db\"];\n\t\t//const dbKey = `${useProjectState.getState().sceneId}-${useProjectState.getState().version.id}`;\n\n\t\tconst that = this;\n\t\tthis.callFunNum = new Proxy(\n\t\t\t{ value: 0 },\n\t\t\t{\n\t\t\t\tset(target, p, value) {\n\t\t\t\t\tif (target[p] < value) {\n\t\t\t\t\t\tprogress += ((value - target[p]) / totalZipNumber) * 100;\n\t\t\t\t\t\tunpackConfig.onProgress && unpackConfig.onProgress(progress);\n\t\t\t\t\t}\n\t\t\t\t\ttarget[p] = value;\n\n\t\t\t\t\tif (value <= 0) {\n\t\t\t\t\t\tconst done = () => {\n\t\t\t\t\t\t\t// 重置清除map\n\t\t\t\t\t\t\tthat.geometryMap.clear();\n\t\t\t\t\t\t\tthat.imagesMap.clear();\n\t\t\t\t\t\t\tthat.materialsMap.clear();\n\t\t\t\t\t\t\tthat.textureMap.clear();\n\t\t\t\t\t\t\t// @ts-ignore 清除loader\n\t\t\t\t\t\t\tthat.loader = undefined;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconst complete = () => {\n\t\t\t\t\t\t\tdone();\n\n\t\t\t\t\t\t\t// 场景内容加载完毕后注入脚本执行逻辑\n\t\t\t\t\t\t\tthat.viewer.installScripts();\n\n\t\t\t\t\t\t\tthat.viewer.dispatchEvent({ type: \"loaded\" });\n\n\t\t\t\t\t\t\tthat.skeletonClass.clear();\n\n\t\t\t\t\t\t\t// 关闭IndexDB 否则新的标签页无法正常打开\n\t\t\t\t\t\t\t// db.close();\n\n\t\t\t\t\t\t\tunpackConfig.onComplete && unpackConfig.onComplete();\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tcomplete();\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\n\t\t// map 存储 json 解析完成后执行的 function; key 为 uuid\n\t\tconst funcMap = new Map<string, Function>();\n\n\t\tconst loadScene = (sceneJson: ISceneJson, drawingInfo: IDrawingInfo | null, configJson: IAppProject.Config) => {\n\t\t\tApp.fromJSON(sceneJson).then(async scene => {\n\t\t\t\t// 还原控制器\n\t\t\t\tif (sceneJson.controls?.state) {\n\t\t\t\t\tthis.viewer.modules.controls.fromJSON(sceneJson.controls.state, true);\n\t\t\t\t}\n\n\t\t\t\tif (drawingInfo) {\n\t\t\t\t\tconst projectDrawing = App.project.getKey(\"drawing\");\n\n\t\t\t\t\tprojectDrawing.isCad = drawingInfo.imgSrc.split(\".\").pop() === \"dxf\";\n\t\t\t\t\tprojectDrawing.imgSrc = drawingInfo.imgSrc;\n\t\t\t\t\tprojectDrawing.markList = drawingInfo.markList;\n\t\t\t\t\tprojectDrawing.imgInfo = drawingInfo.imgInfo;\n\t\t\t\t\tprojectDrawing.isUploaded = true;\n\t\t\t\t}\n\n\t\t\t\t// 还原项目配置\n\t\t\t\tif (configJson) {\n\t\t\t\t\tApp.project.setKey(\"xr\", configJson.xr || false);\n\n\t\t\t\t\tif (configJson.renderer) {\n\t\t\t\t\t\tApp.project.setKey(\"renderer\", configJson.renderer);\n\t\t\t\t\t\t// fps需要通过 App.FPS 进行set才能正确计算单帧渲染时长\n\t\t\t\t\t\tApp.FPS = Number(configJson.renderer.fps);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (configJson.csm) {\n\t\t\t\t\t\tconst projectCSM = App.project.getKey(\"csm\");\n\t\t\t\t\t\tlet _csmNotChange = true;\n\n\t\t\t\t\t\tObject.keys(configJson.csm).forEach(csmKey => {\n\t\t\t\t\t\t\tif (projectCSM[csmKey] !== configJson.csm[csmKey]) {\n\t\t\t\t\t\t\t\tprojectCSM[csmKey] = configJson.csm[csmKey];\n\t\t\t\t\t\t\t\t_csmNotChange = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!_csmNotChange) {\n\t\t\t\t\t\t\tApp.csm.enabled = projectCSM.enabled;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (configJson.effect) {\n\t\t\t\t\t\tObject.keys(configJson.effect).forEach(key => {\n\t\t\t\t\t\t\tApp.project.setKey(`effect.${key}`, configJson.effect[key]);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (configJson.weather) {\n\t\t\t\t\t\tconst projectWeather = App.project.getKey(\"weather\");\n\n\t\t\t\t\t\tif (configJson.weather.fog) {\n\t\t\t\t\t\t\tObject.keys(configJson.weather.fog).forEach(key => {\n\t\t\t\t\t\t\t\tprojectWeather.fog[key] = configJson.weather.fog[key];\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tuseDispatchSignal(\"sceneFogSettingsChanged\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (configJson.weather.rain) {\n\t\t\t\t\t\t\tObject.keys(configJson.weather.rain).forEach(key => {\n\t\t\t\t\t\t\t\tprojectWeather.rain[key] = configJson.weather.rain[key];\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tuseDispatchSignal(\"sceneRainSettingsChanged\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (configJson.weather.snow) {\n\t\t\t\t\t\t\tObject.keys(configJson.weather.snow).forEach(key => {\n\t\t\t\t\t\t\t\tprojectWeather.snow[key] = configJson.weather.snow[key];\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tuseDispatchSignal(\"sceneSnowSettingsChanged\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// 添加indexDB表存储zip包\n\t\t\t\t// await db.addStore(dbKey);\n\n\t\t\t\tunpackConfig.onSceneLoad && unpackConfig.onSceneLoad(sceneJson, configJson);\n\n\t\t\t\t// 防止项目只有一个包的情况造成不触发proxy set\n\t\t\t\tif (this.callFunNum.value === 0) {\n\t\t\t\t\tthis.callFunNum.value = 0;\n\t\t\t\t\tunpackConfig.onProgress && unpackConfig.onProgress(100);\n\t\t\t\t}\n\n\t\t\t\t// 开始执行funcMap中的function\n\t\t\t\tfuncMap.forEach((func, uuid) => {\n\t\t\t\t\tfunc.call(this, uuid, scene, uuid);\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst networkGet = () => {\n\t\t\t// 下载场景包\n\t\t\tfetch(this.viewer.options.request?.baseUrl + unpackConfig.url)\n\t\t\t\t.then(zipRes => zipRes.blob())\n\t\t\t\t.then(async file => {\n\t\t\t\t\tunpackConfig.onProgress && unpackConfig.onProgress(1);\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tlet sceneJson: ISceneJson = undefined, configJson: IAppProject.Config = undefined;\n\n\t\t\t\t\t// 开始解压首包\n\t\t\t\t\tconst AstralZip = await waitAstralZipConstructor();\n\n\t\t\t\t\t// 几何数据数组\n\t\t\t\t\tlet geometries: Array<any> = [];\n\n\t\t\t\t\t// 图纸信息\n\t\t\t\t\tlet drawingInfo: IDrawingInfo = {\n\t\t\t\t\t\timgSrc: \"\",\n\t\t\t\t\t\tmarkList: [],\n\t\t\t\t\t\timgInfo: {\n\t\t\t\t\t\t\twidth: 0,\n\t\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tconst res = await AstralZip.loadAsync(file);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * res.files()里包含整个zip里的文件描述、目录描述列表\n\t\t\t\t\t\t */\n\t\t\t\t\t\tfor (const fileMeta of res.files()) {\n\t\t\t\t\t\t\t//判断是否是目录\n\t\t\t\t\t\t\tif (!fileMeta.dir) {\n\t\t\t\t\t\t\t\tconst fileName = fileMeta.name;\n\n\t\t\t\t\t\t\t\t//找到我们压缩包所需要的json文件\n\t\t\t\t\t\t\t\tif (fileName === \"scene.json\") {\n\t\t\t\t\t\t\t\t\t// 场景json\n\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\t//得到scene.json文件的内容\n\t\t\t\t\t\t\t\t\tsceneJson = JSON.parse(content);\n\t\t\t\t\t\t\t\t} else if (fileName === \"config.json\") {\n\t\t\t\t\t\t\t\t\t// 项目配置json\n\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\tconfigJson = JSON.parse(content);\n\t\t\t\t\t\t\t\t} else if (fileName.substring(0, 9) === \"Textures/\") {\n\t\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t\t * 贴图\n\t\t\t\t\t\t\t\t\t * 分为两种情况：\n\t\t\t\t\t\t\t\t\t * 1.贴图为env格式（type!width!height!uuid.env），转换为arraybuffer格式，存入map\n\t\t\t\t\t\t\t\t\t * 2.贴图为普通图片格式，直接存入map\n\t\t\t\t\t\t\t\t\t **/\n\t\t\t\t\t\t\t\t\tif (/\\.env$/.test(fileName)) {\n\t\t\t\t\t\t\t\t\t\t// 转换回贴图原始信息，存入map\n\t\t\t\t\t\t\t\t\t\tconst content = await readAstralZipArrayBuffer(res, fileName);\n\t\t\t\t\t\t\t\t\t\tthis.unGzipImage(fileName.replace(\"Textures/\", \"\"), content);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\t\tthis.unGzipImage(fileName.replace(\"Textures/\", \"\"), content);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (/^Geometries\\/geometries_\\d*\\.json$/.test(fileName)) {\n\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\tgeometries.push(...JSON.parse(content));\n\t\t\t\t\t\t\t\t} else if (/^Geometries\\/geometries_\\d*\\.zip$/.test(fileName)) {\n\t\t\t\t\t\t\t\t\t/** 此处为兼容整体打包的版本 **/\n\t\t\t\t\t\t\t\t\t// geometry切片zip包，内部是json文件\n\t\t\t\t\t\t\t\t\tconst content = await readAstralZipBlob(res, fileName);\n\t\t\t\t\t\t\t\t\tconst zipRes = await AstralZip.loadAsync(content);\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tfor (const zipFileMeta of zipRes.files()) {\n\t\t\t\t\t\t\t\t\t\t\tif (zipFileMeta.dir) continue;\n\n\t\t\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(zipRes, zipFileMeta.name);\n\t\t\t\t\t\t\t\t\t\t\tgeometries.push(...JSON.parse(content));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\t\tzipRes.dispose();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (fileName.substring(0, 8) === \"Drawing/\") {\n\t\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t\t * 图纸文件夹下的文件\n\t\t\t\t\t\t\t\t\t * 1. drawingMarking.txt 为图纸标注文件，须解压\n\t\t\t\t\t\t\t\t\t * 2. sceneId开头的图片是图纸\n\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\tif (fileName === \"Drawing/drawingMark.txt\") {\n\t\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\t\tdrawingInfo.markList = JSON.parse(content);\n\t\t\t\t\t\t\t\t\t} else if (fileName === \"Drawing/drawingImgInfo.json\") {\n\t\t\t\t\t\t\t\t\t\tdrawingInfo.imgInfo = JSON.parse(await readAstralZipText(res, fileName));\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tdrawingInfo.imgSrc = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tres.dispose();\n\t\t\t\t\t}\n\n\t\t\t\t\ttotalZipNumber = sceneJson.totalZipNumber || 0;\n\n\t\t\t\t\t// 贴图还原至sceneJson\n\t\t\t\t\tsceneJson.scene.images = sceneJson.scene.images.map(item => {\n\t\t\t\t\t\tconst nameSplit = item.split(\".\");\n\t\t\t\t\t\tif (nameSplit[1] === \"env\") {\n\t\t\t\t\t\t\tconst urlSplit = nameSplit[0].split(\"!\");\n\t\t\t\t\t\t\treturn this.imagesMap.get(urlSplit[3]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn this.imagesMap.get(nameSplit[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// 几何数据还原至sceneJson\n\t\t\t\t\tsceneJson.scene.geometries = geometries;\n\n\t\t\t\t\tthis.recordUuid(sceneJson.scene);\n\n\t\t\t\t\tconst newChildren: any = [];\n\t\t\t\t\t// 遍历sceneJson.object.children,拉取group zip还原\n\t\t\t\t\tsceneJson.scene.object.children?.forEach(objectJsonOruuid => {\n\t\t\t\t\t\tif (typeof objectJsonOruuid === \"string\") {\n\t\t\t\t\t\t\t// 保存uuid对应的function\n\t\t\t\t\t\t\tfuncMap.set(objectJsonOruuid, this.unpackGroup);\n\n\t\t\t\t\t\t\tthis.callFunNum.value++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewChildren.push(objectJsonOruuid);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tsceneJson.scene.object.children = newChildren;\n\n\t\t\t\t\t// 图档信息\n\t\t\t\t\tconst _drawingInfo = drawingInfo.imgSrc ? drawingInfo : null;\n\t\t\t\t\tloadScene(sceneJson, _drawingInfo, configJson);\n\t\t\t\t});\n\t\t};\n\n\t\tnetworkGet();\n\t}\n\n\t/**\n\t * 异步解压group zip\n\t * @param uuid\n\t * @param parent\n\t * @param rootGroupUuid\n\t */\n\tprivate unpackGroup(uuid: string, parent, rootGroupUuid) {\n\t\t// map 存储 json 解析完成后执行的 function; key 为 uuid\n\t\tconst funcMap = new Map<string, Function>();\n\n\t\tconst check = (object, group) => {\n\t\t\t// 检查数据是否已完善\n\t\t\tlet isDone = true;\n\t\t\tobject.children.forEach(child => {\n\t\t\t\t// 检查几何数据是否都已拥有\n\t\t\t\tif (child.geometry && group.geometries?.findIndex(geometry => geometry.uuid === child.geometry) === -1) {\n\t\t\t\t\tif (!this.geometryMap.has(child.geometry)) {\n\t\t\t\t\t\tisDone = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgroup.geometries.push(this.geometryMap.get(child.geometry));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// material->texture->image\n\t\t\t\tif (child.material && group.materials?.findIndex(material => material.uuid === child.material) === -1) {\n\t\t\t\t\tif (!this.materialsMap.has(child.material)) {\n\t\t\t\t\t\tisDone = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgroup.materials.push(this.materialsMap.get(child.material));\n\n\t\t\t\t\t\tconst material = this.materialsMap.get(child.material);\n\t\t\t\t\t\tif (material.map && group.textures?.findIndex(texture => texture.uuid === material.map) === -1) {\n\t\t\t\t\t\t\tif (!this.textureMap.has(material.map)) {\n\t\t\t\t\t\t\t\tisDone = false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgroup.textures.push(this.textureMap.get(material.map));\n\n\t\t\t\t\t\t\t\tconst texture = this.textureMap.get(material.map);\n\t\t\t\t\t\t\t\tif (texture.image && group.images?.findIndex(image => image.uuid === texture.image) === -1) {\n\t\t\t\t\t\t\t\t\tif (!this.imagesMap.has(texture.image)) {\n\t\t\t\t\t\t\t\t\t\tisDone = false;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tgroup.images.push(this.imagesMap.get(texture.image));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (child.children?.length > 0 && isDone) {\n\t\t\t\t\tisDone = check(child, group);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn isDone;\n\t\t};\n\n\t\tconst parse = json => {\n\t\t\tif (check(json.object, json)) {\n\t\t\t\tthis.loader.parse(json, group => {\n\t\t\t\t\tconst bones: Bone[] = [];\n\t\t\t\t\tgroup.getObjectsByProperty(\"type\", \"Bone\", bones);\n\t\t\t\t\tif (bones.length > 0) {\n\t\t\t\t\t\tthis.skeletonClass.addBones(bones);\n\t\t\t\t\t}\n\n\t\t\t\t\t// 如果存在Skeleton（骨架），须存下来后面替换回原骨骼。\n\t\t\t\t\t// 因为loader.parse时如果对应骨骼（Bone）还未加载，会生成新的空骨骼替代，\n\t\t\t\t\tif (json.skeletons) {\n\t\t\t\t\t\tthis.skeletonClass.handleSkeletons(json.skeletons, group);\n\t\t\t\t\t}\n\n\t\t\t\t\tgroup.uuid = uuid;\n\n\t\t\t\t\tApp.addObject(group, parent);\n\n\t\t\t\t\tthis.callFunNum.value--;\n\n\t\t\t\t\t// 开始执行funcMap中的function\n\t\t\t\t\tfuncMap.forEach((func, uuid) => {\n\t\t\t\t\t\tfunc.call(this, uuid, group, rootGroupUuid);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst timer = setTimeout(() => {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\tparse(json);\n\t\t\t\t}, 200);\n\t\t\t}\n\t\t};\n\n\t\tconst getByNetwork = () => {\n\t\t\tPackage._fetch(`${this.prefix_url}/${uuid}.zip`, {\n\t\t\t\tonSuccess: async zipRes => {\n\t\t\t\t\tconst file = await zipRes.blob();\n\t\t\t\t\tconst AstralZip = await waitAstralZipConstructor();\n\t\t\t\t\tlet json: GroupJson;\n\n\t\t\t\t\t// 几何数据数组\n\t\t\t\t\tlet geometries: Array<any> = [];\n\n\t\t\t\t\tconst unzipDone = () => {\n\t\t\t\t\t\t// 贴图还原至sceneJson\n\t\t\t\t\t\tjson.images = json.images.map(item => {\n\t\t\t\t\t\t\tconst nameSplit = item.split(\".\");\n\t\t\t\t\t\t\tif (nameSplit[1] === \"env\") {\n\t\t\t\t\t\t\t\tconst urlSplit = nameSplit[0].split(\"!\");\n\t\t\t\t\t\t\t\treturn this.imagesMap.get(urlSplit[3]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn this.imagesMap.get(nameSplit[0]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// 几何数据还原至sceneJson\n\t\t\t\t\t\tjson.geometries = geometries;\n\n\t\t\t\t\t\tthis.recordUuid(json);\n\n\t\t\t\t\t\t// 遍历children,拉取group zip还原\n\t\t\t\t\t\tconst children: any = [];\n\t\t\t\t\t\tjson.object.children.forEach(uuid => {\n\t\t\t\t\t\t\tif (typeof uuid === \"string\") {\n\t\t\t\t\t\t\t\t// 保存uuid对应的function\n\t\t\t\t\t\t\t\tfuncMap.set(uuid, this.unpackGroup);\n\n\t\t\t\t\t\t\t\tthis.callFunNum.value++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tchildren.push(uuid);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tjson.object.children = children;\n\n\t\t\t\t\t\tparse(json);\n\t\t\t\t\t};\n\n\t\t\t\t\tconst res = await AstralZip.loadAsync(file);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\tres.files().map(async fileMeta => {\n\t\t\t\t\t\t\t\t//判断是否是目录\n\t\t\t\t\t\t\t\tif (fileMeta.dir) return;\n\n\t\t\t\t\t\t\t\tconst fileName = fileMeta.name;\n\n\t\t\t\t\t\t\t\t//找到我们压缩包所需要的json文件\n\t\t\t\t\t\t\t\tif (fileName === `${uuid}.json`) {\n\t\t\t\t\t\t\t\t\t// 场景json\n\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\t//得到scene.json文件的内容\n\t\t\t\t\t\t\t\t\tjson = JSON.parse(content);\n\t\t\t\t\t\t\t\t} else if (fileName.substring(0, 9) === \"Textures/\") {\n\t\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t\t * 贴图\n\t\t\t\t\t\t\t\t\t * 分为两种情况：\n\t\t\t\t\t\t\t\t\t * 1.贴图为env格式（type!width!height!uuid.env），转换为arraybuffer格式，存入map\n\t\t\t\t\t\t\t\t\t * 2.贴图为普通图片格式，直接存入map\n\t\t\t\t\t\t\t\t\t **/\n\t\t\t\t\t\t\t\t\tif (/\\.env$/.test(fileName)) {\n\t\t\t\t\t\t\t\t\t\t// 转换回贴图原始信息，存入map\n\t\t\t\t\t\t\t\t\t\tconst content = await readAstralZipArrayBuffer(res, fileName);\n\t\t\t\t\t\t\t\t\t\tthis.unGzipImage(fileName.replace(\"Textures/\", \"\"), content);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\t\tthis.unGzipImage(fileName.replace(\"Textures/\", \"\"), content);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (/^Geometries\\/geometries_\\d*\\.json$/.test(fileName)) {\n\t\t\t\t\t\t\t\t\tconst content = await readAstralZipText(res, fileName);\n\t\t\t\t\t\t\t\t\tgeometries.push(...JSON.parse(content));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t);\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tres.dispose();\n\t\t\t\t\t}\n\n\t\t\t\t\tunzipDone();\n\t\t\t\t},\n\t\t\t});\n\t\t};\n\n\t\tgetByNetwork();\n\t}\n\n\t/**\n\t * 销毁此类\n\t */\n\tdispose() {\n\t\t// 1. 清空所有数组\n\t\tthis.geometryArr = [];\n\t\tthis.imagesArr = [];\n\t\tthis.materialsArr = [];\n\t\tthis.textureArr = [];\n\t\tthis.skeletonsArr = [];\n\n\t\t// 2. 清空所有映射\n\t\tthis.geometryMap.clear();\n\t\tthis.imagesMap.clear();\n\t\tthis.materialsMap.clear();\n\t\tthis.textureMap.clear();\n\n\t\t// 3. 销毁 loader 和骨架处理器\n\t\tif (this.loader) {\n\t\t\tthis.loader = null as any; // 清空引用\n\t\t}\n\n\t\tif (this.skeletonClass) {\n\t\t\tthis.skeletonClass.clear(); // 清除骨架数据\n\t\t\tthis.skeletonClass = null as any; // 清空引用\n\t\t}\n\n\t\t// 4. 重置其他属性\n\t\tthis.prefix_url = \"\";\n\t\tthis.callFunNum = { value: 0 }; // 重置为初始状态\n\t\tthis.totalSize = 0;\n\n\t\t// 5. 释放 viewer 引用（注意：不销毁 viewer，仅移除引用）\n\t\tthis.viewer = null as any;\n\t}\n}"
  },
  {
    "path": "packages/sdk/lib/core/objects/Billboard.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/4/6 12:02\n * @description 广告牌对象\n */\nimport * as THREE from 'three'\nimport {POSITION} from \"@/constant\";\nimport BillboardTexture from \"./texture/BillboardTexture\";\nimport {deepAssign} from \"@/utils\";\n\nexport interface BillboardEventMap extends THREE.Object3DEventMap {\n    imgLoaded: { url:string };\n\n    redraw: { url:string }\n}\n\nexport const getDefaultBillboardOptions = () => ({\n    name: \"Billboard\",\n    position: [0, 0, 0],\n    image: {\n        // 图像地址\n        url: '',\n        // 可见性\n        visible: false,\n        // 宽度\n        width: 32,\n        // 高度\n        height: 32,\n        // 旋转角度 deg\n        rotate: 0,\n        // 与文本的间距\n        margin: 2,\n        // 位置\n        position: POSITION.CENTER,\n        // 置顶\n        top: false,\n    },\n    text: {\n        // 内容\n        value: '',\n        // 可见性\n        visible: false,\n        // 字体大小\n        fontSize: 16,\n        // 字体颜色\n        fontColor: \"#ffffff\",\n        // 字体\n        fontFamily: `sans-serif,\"Source Han Sans SC\",\"Source Han Sans\",\"WenQuanYi Micro Hei\", \"Times New Roman\", \"隶书\", \"幼圆\"`,\n        // 加粗\n        fontWeight: 400,\n        // 字体风格（斜体）\n        fontStyle: \"normal\",\n        // 行间距\n        lineGap: 0,\n        // 内边距\n        padding: 0,\n        // 对齐方式, left, center, right\n        align: \"center\",\n        // 文本基线, top, middle, bottom,alphabetic,hanging,ideographic\n        baseline: \"top\",\n        // 描边宽度\n        strokeWidth: 0,\n        // 描边颜色\n        strokeColor: \"#FFFFFF\",\n        // 是否填充\n        fill: false,\n        // 填充颜色\n        fillColor: \"#000000\",\n    }\n})\n\nexport default class Billboard extends THREE.Sprite<BillboardEventMap> {\n    type = 'Billboard';\n    isBillboard = true;\n\n    options = getDefaultBillboardOptions();\n\n    constructor(options: IBillboard.options, material?: THREE.SpriteMaterial) {\n        super()\n\n        deepAssign(this.options, options);\n\n        this.name = this.options.name;\n\n        const texture = new BillboardTexture(this.options, material ? (material.map?.image) : undefined);\n        texture.colorSpace = THREE.SRGBColorSpace;\n\n        if (material) {\n            if (material.map) {\n                texture.mapping = material.map.mapping;\n                texture.wrapS = material.map.wrapS;\n                texture.wrapT = material.map.wrapT;\n                texture.magFilter = material.map.magFilter;\n                texture.minFilter = material.map.minFilter;\n                texture.anisotropy = material.map.anisotropy;\n                texture.format = material.map.format;\n                texture.type = material.map.type;\n                texture.colorSpace = material.map.colorSpace;\n                texture.repeat.copy(material.map.repeat);\n                texture.offset.copy(material.map.offset);\n                texture.center.copy(material.map.center);\n                texture.matrix.copy(material.map.matrix);\n            }\n\n            this.material = material;\n            this.material.map = texture;\n        } else {\n            this.material = new THREE.SpriteMaterial({\n                map: texture,\n                sizeAttenuation: true,\n                depthWrite: true,\n            });\n        }\n\n        // @ts-ignore\n        texture.addEventListener(\"imgLoaded\", (event) => {\n            this.material.needsUpdate = true;\n\n            // @ts-ignore\n            this.dispatchEvent({type: \"imgLoaded\", url: event.url})\n        })\n        // @ts-ignore\n        texture.addEventListener(\"redraw\", (event) => {\n            const wh = {\n                width: texture.width,\n                height: texture.height,\n            }\n            if (wh.width > wh.height) {\n                wh.width = wh.width / wh.height;\n                wh.height = 1;\n            } else {\n                wh.height = wh.height / wh.width;\n                wh.width = 1;\n            }\n\n            this.geometry = new THREE.PlaneGeometry(wh.width, wh.height);\n\n            // @ts-ignore\n            this.dispatchEvent({type: \"redraw\", url: event.url})\n        })\n\n        this.position.set(this.options.position[0], this.options.position[1], this.options.position[2]);\n\n        // this.center = new THREE.Vector2(0.5, 0);\n    }\n\n    /**\n     * 获取json配置\n     */\n    toJSON(meta?: THREE.JSONMeta) {\n        const options = JSON.parse(JSON.stringify(this.options));\n        options.name = this.name;\n        options.position = this.position.toArray();\n\n        const superJSON = super.toJSON(meta);\n        superJSON.object.options = options;\n\n        return superJSON;\n    }\n\n    /**\n     * 从json配置解析\n     */\n    static fromJSON(json: { material: THREE.SpriteMaterial, options: IBillboard.options }) {\n        return new Billboard(json.options, json.material);\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/objects/HtmlPanel.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/4/10 0:29\n * @description html面板\n */\nimport {JSONMeta} from \"three\";\nimport {CSS3DObject, CSS3DSprite} from 'three/examples/jsm/renderers/CSS3DRenderer.js';\nimport { readAstralZipArrayBuffer, readAstralZipText, waitAstralZipConstructor } from \"@/utils/wasm/zip.ts\";\n\ninterface IHtmlPanelOption {\n    // 类型是否是精灵\n    isSprite: boolean;\n    // 代码内容\n    codes: Array<{ name: string, content: string | ArrayBuffer, isIndex?: boolean }>;\n    // 对应的代码是单html文件还是多文件\n    isSingleHtml: boolean;\n}\n\n/**\n * html面板转换器\n * @description 如果是单html文件，沙箱环境使用with + proxy；如果是zip包，沙箱环境使用iframe\n */\nclass HtmlPanelConverter {\n    private static instance: HtmlPanelConverter | null = null;\n\n    private config = {\n        // 是否允许执行脚本\n        allowScripts: true,\n        // 文件大小限制\n        maxFileSize: 1024 * 1024 * 10, // 10M\n        // 标签黑名单\n        notAllowedTags: ['iframe'],\n    };\n\n    private readonly sandbox: any;\n\n    private constructor() {\n        // 创建安全沙箱环境\n        this.sandbox = this._createSandbox();\n\n        // 配套CSS样式（需添加到页面）\n        const style = document.createElement('style');\n        style.textContent = `\n.css3d-imported-content {\n  pointer-events: none !important;\n  // overflow: hidden;\n}\n\n.css3d-imported-content [style] {\n  will-change: transform, opacity;\n}\n`;\n        document.head.appendChild(style);\n    }\n\n    // 获取单例实例\n    public static getInstance(): HtmlPanelConverter {\n        if (!HtmlPanelConverter.instance) {\n            HtmlPanelConverter.instance = new HtmlPanelConverter();\n        }\n        return HtmlPanelConverter.instance;\n    }\n\n    // 创建安全沙箱\n    private _createSandbox() {\n        // 重写全局的 fetch 方法\n        const originalFetch = window.fetch;\n        // 重写 XMLHttpRequest 的 open 方法\n        const originalXMLHttpRequest = window.XMLHttpRequest;\n        // 重写Websocket\n        const originalWebSocket = window.WebSocket;\n\n        // url检查\n        const checkUrl = (url: string) => {\n            if(url.indexOf(import.meta.env.VITE_GLOB_ORIGIN) > -1) return false;\n\n            if(url.indexOf('http://') === -1 && url.indexOf('https://') === -1 && url.indexOf('ws://') === -1 && url.indexOf('wss://') === -1) return false;\n\n            return true;\n        }\n\n        const sandbox = {\n            fetch: async (url: string, options: any) => {\n                if (checkUrl(url)) {\n                    throw new Error('请求被禁止：无法向当前服务器发起请求');\n                }\n\n                // 如果不是当前服务器的请求，则调用原始的 fetch 方法\n                return originalFetch(url, options);\n            },\n            XMLHttpRequest: () => {\n                const xhr = new originalXMLHttpRequest();\n\n                // 拦截 open 方法\n                const originalOpen = xhr.open;\n                // @ts-ignore\n                xhr.open = function (method, url, async, user, password) {\n                    if (checkUrl(url as string)) {\n                        throw new Error('请求被禁止：无法向当前服务器发起请求');\n                    }\n\n                    // 如果不是当前服务器的请求，则调用原始的 open 方法\n                    return originalOpen.call(xhr, method, url, async, user, password);\n                };\n\n                return xhr;\n            },\n            WebSocket: (url:string) => {\n                if (checkUrl(url)) {\n                    throw new Error('请求被禁止：无法连接到当前服务器的 WebSocket');\n                }\n                return new originalWebSocket(url);\n            },\n            // 其他要修改的的全局对象...\n        };\n\n        return new Proxy(sandbox, {\n            // 拦截所有属性，防止到 Proxy 对象以外的作用域链查找。\n            has: () => true,\n            get: (target, prop) => {\n                // 加固，防止逃逸\n                if (prop === Symbol.unscopables) {\n                    return undefined;\n                }\n\n                if (Reflect.has(target, prop)) {\n                    return Reflect.get(target, prop);\n                }\n                // 暂时允许从window直接获取属性，后续考虑限制。因为不限制很危险，比如可以获取到window.location、window.history等敏感信息。\n                // else{\n                //     return undefined;\n                // }\n\n                // 禁止访问的属性\n                if(['location', 'history', 'top', 'parent', 'frameElement'].includes(typeof prop === \"string\" ? prop : '')) return undefined;\n\n                //如果找不到，就直接从window对象上取值\n                const rawValue = Reflect.get(window, prop);\n\n                //如果兜底的是一个函数，需要绑定window对象，比如window.addEventListener\n                if (typeof rawValue === 'function') {\n                    const valueStr = rawValue.toString();\n                    if (!/^function\\s+[A-Z]/.test(valueStr) && !/^class\\s+/.test(valueStr)) {\n                        return rawValue.bind(window); // 所有 window 上非构造函数调用时候的 this 绑定window对象\n                    }\n                }\n\n                return rawValue;\n            }\n        });\n    }\n\n    // 主加载方法\n    loadAsync(option: { url: string, isSprite: boolean, fileName?: string }): Promise<HtmlPanel | HtmlSprite> {\n        return new Promise(async (resolve, reject) => {\n            if (!option.url) {\n                reject(new Error('请输入url参数'));\n                return;\n            }\n\n            const htmlPanelOption: IHtmlPanelOption = {\n                isSprite: option.isSprite,\n                isSingleHtml: true,\n                codes: []\n            }\n\n            const response = await fetch(option.url);\n            try{\n                this._validateResponse(response);\n            }catch (e){\n                reject(e);\n                return;\n            }\n\n            // 判断是zip包还是html文件\n            let suffix = option.fileName?.split('.').pop() || option.url.split('.').pop();\n\n            if (suffix && ['zip'].includes(suffix)) {\n                try {\n                    const AstralZip = await waitAstralZipConstructor();\n                    const zipContent = await AstralZip.loadAsync(await response.arrayBuffer());\n\n                    try {\n                        // 强制检查根目录下的index.html\n                        const mainHtmlFile = zipContent.file('index.html');\n                        if (!mainHtmlFile) {\n                            reject(new Error('The .zip file root directory must contain index.html'));\n                            return;\n                        }\n\n                        // AstralZip 返回统一的文件元信息列表，避免依赖第三方 ZIP 库的私有 files 字典结构。\n                        for (const fileMeta of zipContent.files()) {\n                            const relativePath = fileMeta.name;\n\n                            // 判断是否为文件，兼容显式目录元信息与斜杠结尾目录路径。\n                            if (fileMeta.dir || relativePath.endsWith('/')) continue;\n\n                            const _isEdit = this._isEditable(relativePath);\n\n                            // 文本资源保持字符串形态，图片/二进制资源保持 ArrayBuffer，避免改变 CSS3D 面板解析行为。\n                            const content = _isEdit\n                                ? await readAstralZipText(zipContent, relativePath)\n                                : await readAstralZipArrayBuffer(zipContent, relativePath);\n                            // 存储到目标数组\n                            htmlPanelOption.codes.push({\n                                name: relativePath,\n                                content: content,\n                                isIndex: relativePath === 'index.html'\n                            });\n                        }\n                    } finally {\n                        zipContent.dispose();\n                    }\n                } catch (error) {\n                    reject(error);\n                    return;\n                }\n\n                htmlPanelOption.isSingleHtml = false;\n            } else {\n                if (!option.fileName) {\n                    // 解析URL以获取文件名\n                    // const _url = new URL(option.url, document.baseURI);\n                    const _url = new URL(option.url, import.meta.env.VITE_GLOB_ORIGIN);\n\n                    option.fileName = _url.pathname.split('/').pop() || 'index.html';\n                }\n\n                htmlPanelOption.codes.push({\n                    name: option.fileName,\n                    content: await response.text(),\n                    isIndex: true\n                });\n\n                htmlPanelOption.isSingleHtml = true;\n            }\n\n            try{\n                resolve(this.parseToCSS3D(htmlPanelOption));\n            }catch (e){\n                reject(e);\n            }\n        })\n    }\n\n    // 安全验证方法\n    private _validateResponse(response: Response) {\n        if (!response.ok) throw new Error('加载失败');\n\n        if (Number(response.headers.get('content-length')) > this.config.maxFileSize) {\n            throw new Error('文件大小超出限制');\n        }\n    }\n\n    // 解析HTML生成CSS3D对象\n    parseToCSS3D(options: IHtmlPanelOption) {\n        if (options.codes.length === 0) throw new Error('解析内容不能为空');\n\n        // 解析文档\n        let container: HTMLDivElement | HTMLIFrameElement;\n        if (options.isSingleHtml) {\n            // 创建容器\n            container = document.createElement('div');\n            container.className = 'css3d-imported-content';\n\n            const htmlDoc = this._parseHtml(options.codes[0].content as string);\n\n            // 克隆并处理内容\n            const content = this._processContent(htmlDoc);\n\n            // 仅添加content(body)的子节点\n            while (content.firstChild) {\n                container.appendChild(content.firstChild);\n            }\n        } else {\n            // TODO 解析zip,但是现在只处理了单文件HTML，后续加强支持解析多文件HTML\n            // 创建容器\n            container = document.createElement('div');\n            container.className = 'css3d-imported-content';\n\n            // 创建虚拟文件系统映射表\n            const filesMap = new Map<string, string>();\n            options.codes.forEach(code => {\n                const mimeType = this._getMimeType(code.name);\n                const blob = new Blob([code.content], {type: mimeType});\n                const blobURL = URL.createObjectURL(blob);\n                filesMap.set(code.name, blobURL);\n            });\n\n            // 获取主HTML内容\n            const mainHtmlCode = options.codes.find(code => code.isIndex);\n            if (!mainHtmlCode) throw new Error('主文件index.html不存在');\n\n            // 深度克隆文档对象以便修改\n            const htmlDoc = this._parseHtml(mainHtmlCode.content as string);\n            const basePath = mainHtmlCode.name.split('/').slice(0, -1).join('/') || '';\n            this._replaceResourceUrls(htmlDoc, filesMap, basePath);\n\n            const iframe = document.createElement('iframe');\n            iframe.style.border = 'none';\n            iframe.width = 192 * 5 + '';\n            iframe.height = 108 * 5 + '';\n            // @ts-ignore\n            (<any>iframe).sandbox = 'allow-same-origin allow-scripts';\n            iframe.srcdoc = htmlDoc.documentElement.outerHTML;\n            container.appendChild(iframe);\n            document.body.appendChild(container);\n\n            // 创建iframe并注入所有资源\n            const iframeDoc = iframe.contentDocument!;\n\n            // 添加基础路径保证相对路径解析\n            const baseTag = document.createElement('base');\n            baseTag.href = URL.createObjectURL(new Blob([], {type: 'text/html'}));\n            iframeDoc.head.prepend(baseTag);\n\n            // 清理blob URLs\n            iframe.addEventListener('load', () => {\n                filesMap.forEach(url => URL.revokeObjectURL(url));\n                // document.body.removeChild(container);\n                // container.remove();\n            });\n        }\n\n        if (!container) throw new Error('解析失败');\n\n        if (options.isSprite) {\n            return new HtmlSprite(container, options);\n        } else {\n            return new HtmlPanel(container, options);\n        }\n    }\n\n    // 使用DOMParser解析HTML结构\n    private _parseHtml(content: string) {\n        const parser = new DOMParser();\n        return parser.parseFromString(content, \"text/html\");\n    }\n\n    // 处理文档内容\n    private _processContent(htmlDoc: Document) {\n        const container = htmlDoc.documentElement.cloneNode(true) as HTMLElement;\n\n        // 清理危险元素\n        this._sanitizeContent(container);\n\n        // 处理脚本\n        if (this.config.allowScripts) {\n            this._processScripts(container);\n        }\n\n        return container;\n    }\n\n    // 清理危险内容\n    private _sanitizeContent(content: HTMLElement) {\n        // 删除不允许的标签\n        content.querySelectorAll('*').forEach(node => {\n            if (this.config.notAllowedTags.includes(node.tagName.toLowerCase())) {\n                node.remove();\n            }\n        });\n\n        // 删除危险属性\n        const dangerousAttrs = ['onload', 'onerror', 'onclick'];\n        content.querySelectorAll('*').forEach(node => {\n            dangerousAttrs.forEach(attr => node.removeAttribute(attr));\n        });\n    }\n\n    // 处理脚本内容\n    private async _processScripts(content: HTMLElement) {\n        const scripts = content.querySelectorAll('script');\n\n        for (let i = 0; i < scripts.length; i++) {\n            const script = scripts[i];\n            const newScript = document.createElement('script');\n\n            let execute: Function | undefined;\n\n            // 执行脚本\n            const executeScript = (scriptContent:string) => {\n                try {\n                    const code = `with(sandbox){${scriptContent}}`;\n                    newScript.textContent = code;\n                    execute = new Function('sandbox', code);\n                } catch (e) {\n                    console.warn('脚本执行失败:', e);\n                }\n\n                // script.replaceWith(newScript);\n                execute && execute(this.sandbox);\n            }\n\n            // 检查是否存在src属性\n            const src = script.getAttribute('src');\n            if (src) {\n                // 处理外部脚本\n                try {\n                    const res = await fetch(src);\n                    if (!res.ok) {\n                        console.error(`加载外部脚本失败: ${src}`);\n                        continue; // 跳过当前脚本\n                    }\n                    executeScript(await res.text());\n                } catch (e) {\n                    console.error(`加载外部脚本异常: ${src}`, e);\n                }\n            }else{\n                executeScript(script.textContent || '');\n            }\n        }\n    }\n\n    // 获取文件类型\n    private _getMimeType(filename: string): string {\n        const ext = filename.split('.').pop()?.toLowerCase() || '';\n        switch (ext) {\n            case 'html':\n                return 'text/html';\n            case 'css':\n                return 'text/css';\n            case 'js':\n                return 'application/javascript';\n            case 'json':\n                return 'application/json';\n            case 'png':\n                return 'image/png';\n            case 'jpg':\n            case 'jpeg':\n                return 'image/jpeg';\n            case 'gif':\n                return 'image/gif';\n            case 'svg':\n                return 'image/svg+xml';\n            case 'zip':\n                return 'application/zip';\n            default:\n                return 'text/plain';\n        }\n    }\n\n    // 通过filePath判断文件内容是否可编辑（html、css、js、json、svg）\n    _isEditable(filePath: string): boolean {\n        const ext = filePath.split('.').pop()?.toLowerCase() || '';\n        return ['html', 'css', 'js', 'json','svg'].includes(ext);\n    }\n\n    // 替换资源URL\n    private _replaceResourceUrls(doc: Document, filesMap: Map<string, string>, basePath: string) {\n        const attrMap = {\n            'script': 'src',\n            'link': 'href',\n            'img': 'src',\n            'audio': 'src',\n            'video': 'src',\n            'source': 'src',\n            'embed': 'src',\n            'object': 'data'\n        };\n\n        Object.entries(attrMap).forEach(([tag, attr]) => {\n            doc.querySelectorAll(`${tag}[${attr}]`).forEach(el => {\n                const originPath = el.getAttribute(attr);\n                if (!originPath) return;\n\n                // 路径标准化处理\n                const resolvedPath = new URL(originPath, `${import.meta.env.VITE_GLOB_ORIGIN}/${basePath}/`).pathname.slice(1);\n\n                if (filesMap.has(resolvedPath)) {\n                    el.setAttribute(attr, filesMap.get(resolvedPath)!);\n                }\n            });\n        });\n\n        // 上面的代码中为了解析路径使用了固定域名，正常而已解析结果不会受此影响，如果结果不对，可以改用下面的代码\n        // 使用虚拟路径协议代替真实域名\n        // const virtualProtocol = 'virtual-resource:';\n        // Object.entries(attrMap).forEach(([tag, attr]) => {\n        //     doc.querySelectorAll(`${tag}[${attr}]`).forEach(el => {\n        //         const originPath = el.getAttribute(attr);\n        //         if (!originPath) return;\n        //\n        //         // 构造无域名的标准化路径\n        //         const resolved = new URL(originPath, `${virtualProtocol}//${basePath}/`);\n        //         const resolvedPath = resolved.href\n        //             .replace(`${virtualProtocol}//`, '')  // 移除协议头\n        //             .replace(/(\\/\\/+)/g, '/')             // 处理多余斜杠\n        //             .replace(/^\\/+/, '');                 // 移除开头的斜杠\n        //\n        //         if (filesMap.has(resolvedPath)) {\n        //             el.setAttribute(attr, filesMap.get(resolvedPath)!);\n        //         }\n        //     });\n        // });\n    }\n}\n\nclass HtmlPanel extends CSS3DObject {\n    type = 'HtmlPanel';\n    isHtmlPanel = true;\n    options: IHtmlPanelOption;\n\n    constructor(element: HTMLElement, options: IHtmlPanelOption) {\n        super(element);\n\n        this.options = options;\n    }\n\n    /**\n     * 获取json配置\n     */\n    toJSON(meta?: JSONMeta) {\n        const superJSON = super.toJSON(meta).object;\n\n        return {\n            metadata: {\n                version: 4.6,\n                type: 'Object',\n                generator: 'HtmlPanel.toJSON'\n            },\n            object: {\n                ...superJSON,\n                type: this.type,\n                options: this.options\n            },\n        } as any;\n    }\n\n    /**\n     * 从json配置解析\n     */\n    static fromJSON(data: any) {\n        return HtmlPanelConverter.getInstance().parseToCSS3D(data.options);\n    }\n}\n\nclass HtmlSprite extends CSS3DSprite {\n    type = 'HtmlSprite';\n    isHtmlSprite = true;\n    options: IHtmlPanelOption;\n\n    constructor(element: HTMLElement, options: IHtmlPanelOption) {\n        super(element);\n\n        this.options = options;\n    }\n\n    /**\n     * 获取json配置\n     */\n    toJSON(meta?: JSONMeta) {\n        const superJSON = super.toJSON(meta).object;\n\n        return {\n            metadata: {\n                version: 4.6,\n                type: 'Object',\n                generator: 'HtmlSprite.toJSON'\n            },\n            object: {\n                ...superJSON,\n                type: this.type,\n                options: this.options\n            },\n        } as any;\n    }\n\n    /**\n     * 从json配置解析\n     */\n    static fromJSON(data: any) {\n        return HtmlPanelConverter.getInstance().parseToCSS3D(data.options);\n    }\n}\n\nexport {HtmlPanelConverter, HtmlPanel, HtmlSprite};\n"
  },
  {
    "path": "packages/sdk/lib/core/objects/LineMesh.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/5/21 22:08\n * @description 带线框子模型的Mesh对象\n */\nimport {Mesh, Material, BufferGeometry, MeshBasicMaterial, LineSegments, LineBasicMaterial, EdgesGeometry} from 'three';\nimport {useDispatchSignal} from \"@/hooks\";\n\nexport function materialProxy(lineMesh: LineMesh) {\n    return new Proxy(lineMesh, {\n        set(target: LineMesh, p: string, newValue: any): boolean {\n            if(p === 'material'){\n                (<LineBasicMaterial>(<LineSegments>target.children[0]).material).dispose();\n                target.children = [];\n\n                // 更新场景树\n                useDispatchSignal(\"sceneGraphChanged\");\n            }\n\n            target[p] = newValue;\n\n            return true;\n        }\n    })\n}\n\nexport class LineMesh extends Mesh {\n    constructor(geometry = new BufferGeometry(), material: Material = new MeshBasicMaterial(), color = 0x00ffff) {\n        super(geometry, material);\n\n        // @ts-ignore\n        this.type = 'LineMesh';\n\n        const edges = new EdgesGeometry(geometry);\n        const edgesMaterial = new LineBasicMaterial({\n            color: color,\n        })\n        const line = new LineSegments(edges, edgesMaterial);\n\n        // let geometryArray = [geometry,edges];\n        // let materialArray = [material,edgesMaterial];\n        // const mergedGeometries = BufferGeometryUtils.mergeGeometries(geometryArray, false);\n        // const lineMesh = SceneUtils.createMultiMaterialObject(mergedGeometries, materialArray);\n        //\n        // this.parent?.add(lineMesh);\n        // this.removeFromParent();\n\n        this.add(line)\n    }\n\n    proxyMesh = materialProxy(this);\n}\n\n"
  },
  {
    "path": "packages/sdk/lib/core/objects/ParticleEmitter.ts",
    "content": "/**\n * 用于代理粒子发射器的空对象，以便于进行场景树显示及控制操作\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025-02-14 16:00:00\n */\nimport * as THREE from 'three';\nimport * as Particle from '@/core/libs/three-nebula';\nimport {ParticleSystem} from '@/core/viewer/modules/ParticleSystem';\nimport {ObjectLoader} from '@/core/loader/ObjectLoader';\nimport {useAddSignal, useDispatchSignal, useRemoveSignal} from '@/hooks';\n\n/**\n * 获取默认粒子配置\n * @description 以函数调用的方式返回，避免在模块外被引用\n */\nexport const getDefaultParticleConfig = (): IParticle.Config => ({\n  attr: {\n    position: { x: 0, y: 0, z: 0 },\n    rotation: { x: 0, y: 0, z: 0 },\n    scale: 1,\n    totalEmitTimes: Infinity,\n    damping: 0.006,\n    life: Infinity,\n    numPan: {\n      min: 1,\n      max: 1\n    },\n    timePan: {\n      a: 0.1,\n      b: 0.1\n    }\n  },\n  init: {\n    mass: {\n      min: 1,\n      max: 1,\n      center: true,\n      isEnabled: false\n    },\n    life: {\n      min: 1,\n      max: 1,\n      center: true,\n      isEnabled: false\n    },\n    radius: {\n      width: 1,\n      height: 1,\n      center: false,\n      isEnabled: false\n    },\n    rotation: {\n      x: 0,\n      y: 0,\n      z: 0,\n      useEmitterRotation: false,\n      isEnabled: false\n    },\n    position: {\n      isEnabled: false,\n      zone: null\n    },\n    velocity: {\n      isEnabled: false,\n      velocity: null\n    },\n    body: {\n      isEnabled: false,\n      body: {\n        type: 'Sprite',\n        uuid: '',\n      }\n    }\n  },\n  behaviour: {\n    color: {\n      isEnabled: false,\n      colorA: \"#002a4f\",\n      colorB: \"#0029FF\",\n      life: Infinity,\n      easing: 'easeLinear',\n    },\n    scale: {\n      isEnabled: false,\n      scaleA: 1,\n      scaleB: 1,\n      life: Infinity,\n      easing: 'easeLinear',\n    },\n    alpha: {\n      isEnabled: false,\n      alphaA: 1,\n      alphaB: 1,\n      life: Infinity,\n      easing: 'easeLinear',\n    },\n    force: {\n      isEnabled: false,\n      fx: 0,\n      fy: 0,\n      fz: 0,\n      life: Infinity,\n      easing: 'easeLinear',\n    },\n    rotate: {\n      isEnabled: false,\n      x: 0,\n      y: 0,\n      z: 0,\n      life: Infinity,\n      easing: 'easeLinear',\n    },\n    randomDrift: {\n      isEnabled: false,\n      driftX: 0,\n      driftY: 0,\n      driftZ: 0,\n      delay: 0.03,\n      life: Infinity,\n      easing: 'easeLinear',\n    },\n    spring: {\n      isEnabled: false,\n      x: 0,\n      y: 0,\n      z: 0,\n      spring: 0.1,\n      friction: 0.98,\n      life: Infinity,\n      easing: 'easeLinear',\n    },\n    attraction: {\n      x: 0,\n      y: 0,\n      z: 0,\n      force: 100,\n      radius: 1000,\n      life: Infinity,\n      easing: 'easeLinear',\n      isEnabled: false\n    },\n    collision: {\n      useMass: false,\n      life: Infinity,\n      easing: 'easeLinear',\n      isEnabled: false\n    }\n  },\n})\n\nlet _handleAddToParticleSystemFn, _handleParticleCreatedFn;\nclass ParticleEmitter extends THREE.Object3D {\n  emitter: Particle.Emitter;\n  \n  isEmitterProxy = true;\n\n  constructor(emitter: Particle.Emitter) {\n    super();\n\n    // @ts-ignore\n    this.type = 'Particle';\n\n    this.emitter = emitter;\n\n    this.syncProperties();\n\n    this.proxyProperties();\n\n    this.initEvent();\n  }\n\n  initEvent(){\n    /**\n      * 需要做粒子的选中，选中时定位到这个粒子发射器的代理对象上\n      * 如果后续不需要做粒子选中了，就把下方代码删除\n      * 对应的particleSystemAddEmitter signal也删除\n      */\n    _handleAddToParticleSystemFn = this.handleAddToParticleSystem.bind(this);\n    useAddSignal('particleSystemAddEmitter', _handleAddToParticleSystemFn)\n    this.emitter.particles.forEach(particle => {\n      if (!particle.target) return;\n\n      particle.target.proxy = this;\n    })\n    _handleParticleCreatedFn = this.handleParticleCreated.bind(this);\n    this.emitter.parent?.eventDispatcher.addEventListener('PARTICLE_CREATED', _handleParticleCreatedFn, true)\n  }\n\n  /**\n   * 监听粒子创建\n   * @param particle \n   */\n  handleParticleCreated(particle){\n    if (!this.emitter?.particles) return;\n\n    if (!this.emitter.particles.includes(particle)) return;\n\n    if (!particle.target) return;\n\n    particle.target.proxy = this;\n  }\n\n  /**\n   * 添加到粒子系统时\n   * @param _emitter \n   */\n  handleAddToParticleSystem(_emitter: Particle.Emitter){\n    if (_emitter === this.emitter) {\n      this.emitter.parent?.eventDispatcher.addEventListener('PARTICLE_CREATED', _handleParticleCreatedFn,true)\n    }\n  }\n\n  /**\n   * 同步粒子发射器的属性到组中\n   */\n  syncProperties() {\n    this.position.set(this.emitter.position.x, this.emitter.position.y, this.emitter.position.z);\n    // 粒子发射器的缩放是统一的，无法从三个轴分开设置\n    this.scale.set(this.emitter.scale, this.emitter.scale, this.emitter.scale);\n    this.rotation.set(this.emitter.rotation.x, this.emitter.rotation.y, this.emitter.rotation.z);\n\n    this.updateMatrixWorld(true);\n  }\n\n  /**\n   * 拦截重要属性的 setter 方法，同步到粒子发射器中\n   */\n  proxyProperties() {\n    // 重写 position 的 setter 方法\n    let _position = new THREE.Vector3().copy(this.position);\n    Object.defineProperty(this.position, 'x', {\n      get: () => _position.x,\n      set: (value: number) => {\n        _position.setX(value);\n        this.emitter.position.x = value;\n      },\n      configurable: true,\n      enumerable: true\n    });\n    Object.defineProperty(this.position, 'y', {\n      get: () => _position.y,\n      set: (value: number) => {\n        _position.setY(value);\n        this.emitter.position.y = value;\n      },\n      configurable: true,\n      enumerable: true\n    });\n    Object.defineProperty(this.position, 'z', {\n      get: () => _position.z,\n      set: (value: number) => {\n        _position.setZ(value);\n        this.emitter.position.z = value;\n      },\n      configurable: true,\n      enumerable: true\n    });\n\n    // 重写 rotation 的 setter 方法\n    let _rotation = this.rotation.clone();\n    Object.defineProperty(this.rotation, '_x', {\n      get: () => _rotation.x,\n      set: (value: number) => {\n        _rotation.x = value;\n        // this.emitter.rotation.x = value * THREE.MathUtils.RAD2DEG;\n        this.emitter.rotation.x = value;\n      },\n      configurable: true,\n      enumerable: true\n    });\n    Object.defineProperty(this.rotation, '_y', {\n      get: () => _rotation.y,\n      set: (value: number) => {\n        _rotation.y = value;\n        this.emitter.rotation.y = value;\n      },\n      configurable: true,\n      enumerable: true\n    });\n    Object.defineProperty(this.rotation, '_z', {\n      get: () => _rotation.z,\n      set: (value: number) => {\n        _rotation.z = value;\n        this.emitter.rotation.z = value;\n      },\n      configurable: true,\n      enumerable: true\n    });\n\n    // 重写 scale 的 setter 方法\n    let _scale = this.scale.clone();\n    Object.defineProperty(this.scale, 'x', {\n      get: () => _scale.x,\n      set: (value: number) => {\n        _scale.setX(value);\n        // 获取scale三轴中的最小值应用到粒子发射器\n        this.emitter.scale = Math.min(_scale.x, _scale.y, _scale.z);\n      },\n      configurable: true,\n      enumerable: true\n    });\n    Object.defineProperty(this.scale, 'y', {\n      get: () => _scale.y,\n      set: (value: number) => {\n        _scale.setY(value);\n        // 获取scale三轴中的最小值应用到粒子发射器\n        this.emitter.scale = Math.min(_scale.x, _scale.y, _scale.z);\n      },\n      configurable: true,\n      enumerable: true\n    });\n    Object.defineProperty(this.scale, 'z', {\n      get: () => _scale.z,\n      set: (value: number) => {\n        _scale.setZ(value);\n        // 获取scale三轴中的最小值应用到粒子发射器\n        this.emitter.scale = Math.min(_scale.x, _scale.y, _scale.z);\n      },\n      configurable: true,\n      enumerable: true\n    });\n\n    // 重写 visible 的 setter 方法\n    let _visible = this.visible, _totalEmitTimes = this.emitter.totalEmitTimes;\n    Object.defineProperty(this, 'visible', {\n      get: () => _visible,\n      set: (value: boolean) => {\n        _visible = value;\n\n        // 发射器上不存在直接控制显隐的属性，遍历粒子对象设置显隐影响瞬时性能，故使用emitter.totalEmitTimes控制显隐\n        this.emitter.totalEmitTimes = value ? _totalEmitTimes : 0;\n      },\n      configurable: true,\n      enumerable: true\n    })\n  }\n\n  /**\n   * 获取emitter的json配置\n   */\n  getEmitterJSON() {\n    const emitter: IParticle.Config = getDefaultParticleConfig();\n    emitter.attr = {\n      position: JSON.parse(JSON.stringify(this.emitter.position)),\n      rotation: JSON.parse(JSON.stringify(this.emitter.rotation)),\n      scale: this.emitter.scale,\n      totalEmitTimes: this.emitter.totalEmitTimes,\n      damping: this.emitter.damping,\n      life: this.emitter.life,\n      numPan: {\n        min: this.emitter.rate.numPan.a,\n        max: this.emitter.rate.numPan.b,\n      },\n      timePan: {\n        a: this.emitter.rate.timePan.a,\n        b: this.emitter.rate.timePan.b,\n      }\n    };\n\n    this.emitter.initializers.forEach(initializer => {\n      switch (initializer.type) {\n        case \"Mass\":\n          emitter.init.mass.isEnabled = initializer.isEnabled;\n          emitter.init.mass.min = initializer.massPan.a;\n          emitter.init.mass.max = initializer.massPan.b;\n          emitter.init.mass.center = initializer.massPan._center;\n          break;\n        case \"Life\":\n          emitter.init.life.isEnabled = initializer.isEnabled;\n          emitter.init.life.min = initializer.lifePan.a;\n          emitter.init.life.max = initializer.lifePan.b;\n          emitter.init.life.center = initializer.lifePan._center;\n          break;\n        case \"Radius\":\n          emitter.init.radius.isEnabled = initializer.isEnabled;\n          emitter.init.radius.width = initializer.radius.a;\n          emitter.init.radius.height = initializer.radius.b;\n          emitter.init.radius.center = initializer.radius._center;\n          break;\n        case \"Rotation\":\n          emitter.init.rotation.isEnabled = initializer.isEnabled;\n          emitter.init.rotation.x = initializer.rotation.x;\n          emitter.init.rotation.y = initializer.rotation.y;\n          emitter.init.rotation.z = initializer.rotation.z;\n          emitter.init.rotation.useEmitterRotation = initializer.useEmitterRotation;\n          break;\n        case \"Position\":\n          emitter.init.position.isEnabled = initializer.isEnabled;\n          emitter.init.position.zone = (function () {\n            const zone = initializer.zones[0];\n            switch (zone.type) {\n              case 'PointZone':\n                return {\n                  type: 'PointZone',\n                  x: zone.x,\n                  y: zone.y,\n                  z: zone.z\n                }\n              case 'LineZone':\n                return {\n                  type: 'LineZone',\n                  x1: zone.x1,\n                  y1: zone.y1,\n                  z1: zone.z1,\n                  x2: zone.x2,\n                  y2: zone.y2,\n                  z2: zone.z2,\n                }\n              case 'BoxZone':\n                return {\n                  type: 'BoxZone',\n                  depth: zone.depth,\n                  height: zone.height,\n                  width: zone.width,\n                  x: zone.x,\n                  y: zone.y,\n                  z: zone.z\n                }\n              case 'SphereZone':\n                return {\n                  type: 'SphereZone',\n                  radius: zone.radius,\n                  x: zone.x,\n                  y: zone.y,\n                  z: zone.z\n                }\n              default:\n                return null;\n            }\n          })()\n          break;\n        case 'RadialVelocity':\n          emitter.init.velocity.isEnabled = initializer.isEnabled;\n          emitter.init.velocity.velocity = {\n            type: 'RadialVelocity',\n            radius: initializer.radiusPan.a,\n            x: initializer.dir.x,\n            y: initializer.dir.y,\n            z: initializer.dir.z,\n            theta: initializer.tha * 180 / Math.PI,\n          }\n          break;\n        case \"PolarVelocity\":\n          emitter.init.velocity.isEnabled = initializer.isEnabled;\n          emitter.init.velocity.velocity = {\n            type: 'PolarVelocity',\n            radius: initializer._polar.radius,\n            theta: initializer._polar.theta * 180 / Math.PI,\n            phi: initializer._polar.phi * 180 / Math.PI,\n            tha: initializer.tha * 180 / Math.PI,\n          }\n          break;\n        case 'VectorVelocity':\n          emitter.init.velocity.isEnabled = initializer.isEnabled;\n          emitter.init.velocity.velocity = {\n            type: 'VectorVelocity',\n            x: initializer.dir.x,\n            y: initializer.dir.y,\n            z: initializer.dir.z,\n            theta: initializer.tha * 180 / Math.PI,\n          }\n          break;\n        case \"Body\":\n          emitter.init.body.isEnabled = initializer.isEnabled;\n          emitter.init.body.body = {\n            type: initializer.body.items[0].type === 'Sprite' ? 'Sprite' : initializer.body.items[0].type === 'Points' ? 'Point' : 'Mesh',\n            uuid: this.uuid\n          }\n          break;\n      }\n    });\n\n    this.emitter.behaviours.forEach(behaviour => {\n      switch (behaviour.type) {\n        case \"Color\":\n          emitter.behaviour.color.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.color.colorA = behaviour.colorA.colors[0];\n          emitter.behaviour.color.colorB = behaviour.colorB.colors[0];\n          emitter.behaviour.color.life = behaviour._life;\n          emitter.behaviour.color.easing = behaviour.easing.name;\n          break;\n        case \"Scale\":\n          emitter.behaviour.scale.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.scale.scaleA = behaviour.scaleA.a;\n          emitter.behaviour.scale.scaleB = behaviour.scaleB.a;\n          emitter.behaviour.scale.life = behaviour._life;\n          emitter.behaviour.scale.easing = behaviour.easing.name;\n          break;\n        case \"Alpha\":\n          emitter.behaviour.alpha.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.alpha.alphaA = behaviour.alphaA.a;\n          emitter.behaviour.alpha.alphaB = behaviour.alphaB.a;\n          emitter.behaviour.alpha.life = behaviour._life;\n          emitter.behaviour.alpha.easing = behaviour.easing.name;\n          break;\n        case \"Force\":\n          emitter.behaviour.force.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.force.fx = behaviour.force.x / 100;\n          emitter.behaviour.force.fy = behaviour.force.y / 100;\n          emitter.behaviour.force.fz = behaviour.force.z / 100;\n          emitter.behaviour.force.life = behaviour._life;\n          emitter.behaviour.force.easing = behaviour.easing.name;\n          break;\n        case \"Rotate\":\n          emitter.behaviour.rotate.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.rotate.x = behaviour.x.a * 180 / Math.PI;\n          emitter.behaviour.rotate.y = behaviour.y.a * 180 / Math.PI;\n          emitter.behaviour.rotate.z = behaviour.z.a * 180 / Math.PI;\n          emitter.behaviour.rotate.life = behaviour._life;\n          emitter.behaviour.rotate.easing = behaviour.easing.name;\n          break;\n        case \"RandomDrift\":\n          emitter.behaviour.randomDrift.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.randomDrift.driftX = behaviour.randomForce.x / 100;\n          emitter.behaviour.randomDrift.driftY = behaviour.randomForce.y / 100;\n          emitter.behaviour.randomDrift.driftZ = behaviour.randomForce.z / 100;\n          emitter.behaviour.randomDrift.delay = behaviour.delayPan.a;\n          emitter.behaviour.randomDrift.life = behaviour._life;\n          emitter.behaviour.randomDrift.easing = behaviour.easing.name;\n          break;\n        case \"Spring\":\n          emitter.behaviour.spring.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.spring.x = behaviour.pos.x;\n          emitter.behaviour.spring.y = behaviour.pos.y;\n          emitter.behaviour.spring.z = behaviour.pos.z;\n          emitter.behaviour.spring.spring = behaviour.spring;\n          emitter.behaviour.spring.friction = behaviour.friction;\n          emitter.behaviour.spring.life = behaviour._life;\n          emitter.behaviour.spring.easing = behaviour.easing.name;\n          break;\n        case \"Attraction\":\n          emitter.behaviour.attraction.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.attraction.x = behaviour.targetPosition.x;\n          emitter.behaviour.attraction.y = behaviour.targetPosition.y;\n          emitter.behaviour.attraction.z = behaviour.targetPosition.z;\n          emitter.behaviour.attraction.force = behaviour.force / 100;\n          emitter.behaviour.attraction.radius = behaviour.radius;\n          emitter.behaviour.attraction.life = behaviour._life;\n          emitter.behaviour.attraction.easing = behaviour.easing.name;\n          break;\n        case \"Collision\":\n          emitter.behaviour.collision.isEnabled = behaviour.isEnabled;\n          emitter.behaviour.collision.useMass = behaviour.useMass;\n          emitter.behaviour.collision.life = behaviour._life;\n          emitter.behaviour.collision.easing = behaviour.easing.name;\n          break;\n      }\n    });\n\n    return emitter;\n  }\n\n  /**\n   * 从json配置解析\n   */\n  static fromJSON(json: IParticle.Object3DJSON) {\n    const emitterConfig = json.emitter.config;\n\n    const emitter = new Particle.Emitter({\n      position: new Particle.Vector3D(\n        emitterConfig.attr.position.x,\n        emitterConfig.attr.position.y,\n        emitterConfig.attr.position.z\n      ),\n      rotation: new Particle.Vector3D(\n        emitterConfig.attr.rotation.x,\n        emitterConfig.attr.rotation.y,\n        emitterConfig.attr.rotation.z\n      ),\n      scale: emitterConfig.attr.scale,\n      life: emitterConfig.attr.life\n    });\n    emitter.totalEmitTimes = emitterConfig.attr.totalEmitTimes;\n    emitter.damping = emitterConfig.attr.damping;\n    emitter.rate = new Particle.Rate(\n      new Particle.Span(emitterConfig.attr.numPan.min, emitterConfig.attr.numPan.max),\n      new Particle.Span(emitterConfig.attr.timePan.a, emitterConfig.attr.timePan.b)\n    );\n    emitter.emit();\n\n    // 还原initializers\n    json.emitter.useInitializers.forEach(initializer => {\n      switch (initializer) {\n        case \"Mass\":\n          emitter.addInitializer(\n            new Particle.Mass(\n              emitterConfig.init.mass.min,\n              emitterConfig.init.mass.max,\n              emitterConfig.init.mass.center,\n              emitterConfig.init.mass.isEnabled\n            )\n          );\n          break;\n        case \"Life\":\n          emitter.addInitializer(\n            new Particle.Life(\n              emitterConfig.init.life.min,\n              emitterConfig.init.life.max,\n              emitterConfig.init.life.center,\n              emitterConfig.init.life.isEnabled\n            )\n          );\n          break;\n        case \"Radius\":\n          emitter.addInitializer(\n            new Particle.Radius(\n              emitterConfig.init.radius.width,\n              emitterConfig.init.radius.height,\n              emitterConfig.init.radius.center,\n              emitterConfig.init.radius.isEnabled\n            )\n          );\n          break;\n        case \"Rotation\":\n          emitter.addInitializer(\n            new Particle.Rotation(\n              emitterConfig.init.rotation.x,\n              emitterConfig.init.rotation.y,\n              emitterConfig.init.rotation.z,\n              emitterConfig.init.rotation.useEmitterRotation,\n              emitterConfig.init.rotation.isEnabled\n            )\n          );\n          break;\n        case \"Position\":\n          let position = new Particle.Position();\n          emitter.addInitializer(position);\n\n          let zone;\n          const zoneData = emitterConfig.init.position.zone;\n          switch (zoneData?.type) {\n            case 'PointZone':\n              zone = new Particle.PointZone(zoneData.x, zoneData.y, zoneData.z);\n              break;\n            case 'LineZone':\n              zone = new Particle.LineZone(\n                zoneData.x1,\n                zoneData.y1,\n                zoneData.z1,\n                zoneData.x2,\n                zoneData.y2,\n                zoneData.z2,\n              );\n              break;\n            case 'BoxZone':\n              zone = new Particle.BoxZone(\n                zoneData.x,\n                zoneData.y,\n                zoneData.z,\n                zoneData.width,\n                zoneData.height,\n                zoneData.depth,\n              );\n              break;\n            case 'SphereZone':\n              zone = new Particle.SphereZone(\n                zoneData.x,\n                zoneData.y,\n                zoneData.z,\n                zoneData.radius\n              );\n              break;\n          }\n          if (!zone) return;\n\n          position.addZone(zone);\n          break;\n        case \"RadialVelocity\": {\n          const velocity = emitterConfig.init.velocity.velocity as IParticle.RadialVelocity;\n\n          emitter.addInitializer(\n            new Particle.RadialVelocity(\n              velocity.radius,\n              new Particle.Vector3D(\n                velocity.x,\n                velocity.y,\n                velocity.z\n              ),\n              velocity.theta,\n              emitterConfig.init.velocity.isEnabled\n            )\n          );\n        }\n          break;\n        case \"PolarVelocity\": {\n          const velocity = emitterConfig.init.velocity.velocity as IParticle.PolarVelocity;\n\n          emitter.addInitializer(\n            new Particle.PolarVelocity(\n              new Particle.Polar3D(velocity.radius, velocity.theta * Math.PI / 180, velocity.phi * Math.PI / 180),\n              velocity.tha,\n              emitterConfig.init.velocity.isEnabled\n            )\n          );\n        }\n          break;\n        case \"VectorVelocity\": {\n          const velocity = emitterConfig.init.velocity.velocity as IParticle.VectorVelocity;\n\n          emitter.addInitializer(\n            new Particle.VectorVelocity(\n              new Particle.Vector3D(velocity.x, velocity.y, velocity.z),\n              velocity.theta,\n              emitterConfig.init.velocity.isEnabled\n            )\n          );\n        }\n          break;\n        case \"Body\":\n          if (!emitterConfig.init.body.body) break;\n\n          switch (emitterConfig.init.body.body.type) {\n            case \"Sprite\":\n            case \"Mesh\":\n              new ObjectLoader().parse(json.emitter.bodyObjectJSON, (object3D => {\n                emitter.addInitializer(\n                  new Particle.Body(\n                    object3D,\n                    null,\n                    null,\n                    emitterConfig.init.body.isEnabled\n                  )\n                );\n                ParticleSystem.Body3DMap.set(json.uuid, object3D);\n              }))\n              break;\n            case \"Point\":\n              emitter.addInitializer(\n                new Particle.Body(\n                  ParticleSystem.PointBody.clone(),\n                  null,\n                  null,\n                  emitterConfig.init.body.isEnabled\n                )\n              );\n              break;\n          }\n          break;\n      }\n    })\n\n    // 还原behaviours\n    json.emitter.useBehaviours.forEach(behaviour => {\n      switch (behaviour) {\n        case \"Color\":\n          emitter.addBehaviour(\n            new Particle.Color(\n              emitterConfig.behaviour.color.colorA,\n              emitterConfig.behaviour.color.colorB,\n              emitterConfig.behaviour.color.life,\n              Particle.ease[emitterConfig.behaviour.color.easing],\n              emitterConfig.behaviour.color.isEnabled\n            )\n          )\n          break;\n        case \"Scale\":\n          emitter.addBehaviour(\n            new Particle.Scale(\n              emitterConfig.behaviour.scale.scaleA,\n              emitterConfig.behaviour.scale.scaleB,\n              emitterConfig.behaviour.scale.life,\n              Particle.ease[emitterConfig.behaviour.scale.easing],\n              emitterConfig.behaviour.scale.isEnabled\n            )\n          )\n          break;\n        case \"Alpha\":\n          emitter.addBehaviour(\n            new Particle.Alpha(\n              emitterConfig.behaviour.alpha.alphaA,\n              emitterConfig.behaviour.alpha.alphaB,\n              emitterConfig.behaviour.alpha.life,\n              Particle.ease[emitterConfig.behaviour.alpha.easing],\n              emitterConfig.behaviour.alpha.isEnabled\n            )\n          )\n          break;\n        case \"Force\":\n          emitter.addBehaviour(\n            new Particle.Force(\n              emitterConfig.behaviour.force.fx,\n              emitterConfig.behaviour.force.fy,\n              emitterConfig.behaviour.force.fz,\n              emitterConfig.behaviour.force.life,\n              Particle.ease[emitterConfig.behaviour.force.easing],\n              emitterConfig.behaviour.force.isEnabled\n            )\n          )\n          break;\n        case \"Rotate\":\n          emitter.addBehaviour(\n            new Particle.Rotate(\n              emitterConfig.behaviour.rotate.x,\n              emitterConfig.behaviour.rotate.y,\n              emitterConfig.behaviour.rotate.z,\n              emitterConfig.behaviour.rotate.life,\n              Particle.ease[emitterConfig.behaviour.rotate.easing],\n              emitterConfig.behaviour.rotate.isEnabled\n            )\n          )\n          break;\n        case \"RandomDrift\":\n          emitter.addBehaviour(\n            new Particle.RandomDrift(\n              emitterConfig.behaviour.randomDrift.driftX,\n              emitterConfig.behaviour.randomDrift.driftY,\n              emitterConfig.behaviour.randomDrift.driftZ,\n              emitterConfig.behaviour.randomDrift.delay,\n              emitterConfig.behaviour.randomDrift.life,\n              Particle.ease[emitterConfig.behaviour.randomDrift.easing],\n              emitterConfig.behaviour.randomDrift.isEnabled\n            )\n          )\n          break;\n        case \"Spring\":\n          emitter.addBehaviour(\n            new Particle.Spring(\n              emitterConfig.behaviour.spring.x,\n              emitterConfig.behaviour.spring.y,\n              emitterConfig.behaviour.spring.z,\n              emitterConfig.behaviour.spring.spring,\n              emitterConfig.behaviour.spring.friction,\n              emitterConfig.behaviour.spring.life,\n              Particle.ease[emitterConfig.behaviour.spring.easing],\n              emitterConfig.behaviour.spring.isEnabled\n            )\n          )\n          break;\n        case \"Attraction\":\n          emitter.addBehaviour(\n            new Particle.Attraction(\n              new Particle.Vector3D(\n                emitterConfig.behaviour.attraction.x,\n                emitterConfig.behaviour.attraction.y,\n                emitterConfig.behaviour.attraction.z\n              ),\n              emitterConfig.behaviour.attraction.force,\n              emitterConfig.behaviour.attraction.radius,\n              emitterConfig.behaviour.attraction.life,\n              Particle.ease[emitterConfig.behaviour.attraction.easing],\n              emitterConfig.behaviour.attraction.isEnabled\n            )\n          )\n          break;\n        case \"Collision\":\n          emitter.addBehaviour(\n            new Particle.Collision(\n              emitter,\n              emitterConfig.behaviour.collision.useMass,\n              () => { },\n              emitterConfig.behaviour.collision.life,\n              Particle.ease[emitterConfig.behaviour.collision.easing],\n              emitterConfig.behaviour.collision.isEnabled\n            )\n          )\n          break;\n      }\n    })\n\n    useDispatchSignal(\"emitterAdd2ParticleSystem\",emitter,json.emitter.system)\n\n    const particleEmitter = new ParticleEmitter(emitter);\n    particleEmitter.name = json.name;\n    particleEmitter.uuid = json.uuid;\n\n    return particleEmitter;\n  }\n\n  /**\n   * 获取json配置\n   */\n  toJSON(meta?: THREE.JSONMeta) {\n    const superJSON = super.toJSON(meta).object;\n    // @ts-ignore\n    superJSON.matrix = undefined;\n    // @ts-ignore\n    delete superJSON.matrix;\n\n    // 父级toJSON调用子级toJSON时，只会保留object对象，主要信息都需要放在这\n    const object: IParticle.Object3DJSON = {\n      uuid: this.uuid,\n      type: this.type,\n      name: this.name,\n      emitter: {\n        config:this.getEmitterJSON(),\n        system: this.emitter.parent.name,\n        useInitializers: this.emitter.initializers.map(initializer => initializer.type),\n        bodyObjectJSON: ParticleSystem.Body3DMap.get(this.uuid)?.toJSON() || null,\n        useBehaviours: this.emitter.behaviours.map(behaviour => behaviour.type)\n      },\n      children: [],\n    };\n\n    if (this.children.length > 0) {\n      object.children = [];\n      for (let i = 0; i < this.children.length; i++) {\n        //@ts-ignore\n        object.children.push(this.children[i].toJSON(meta).object);\n      }\n    }\n\n    return {\n      metadata: {\n        version: 4.6,\n        type: 'Object',\n        generator: 'ParticleEmitter.toJSON'\n      },\n      object: Object.assign(superJSON, object),\n    } as any;\n  }\n\n  /**\n   * 销毁\n   */\n  dispose(){\n    // 手动销毁所有粒子模型对象，发射器的destroy方法不会进行销毁\n    this.emitter.particles && this.emitter.particles.forEach(p => {\n      if (!p.target) return;\n\n      p.target.removeFromParent();\n    })\n\n    useRemoveSignal('particleSystemAddEmitter', _handleAddToParticleSystemFn);\n    _handleAddToParticleSystemFn = null;\n\n    this.emitter.parent?.eventDispatcher.removeEventListener('PARTICLE_CREATED', _handleParticleCreatedFn);\n    _handleParticleCreatedFn = null;\n\n    this.emitter.destroy();  \n  }\n}\n\nexport default ParticleEmitter;"
  },
  {
    "path": "packages/sdk/lib/core/objects/index.ts",
    "content": "export {default as Billboard, getDefaultBillboardOptions} from \"./Billboard\";\nexport {HtmlPanelConverter, HtmlPanel, HtmlSprite} from \"./HtmlPanel\";\nexport {default as ParticleEmitter, getDefaultParticleConfig} from \"./ParticleEmitter\";"
  },
  {
    "path": "packages/sdk/lib/core/objects/texture/BillboardTexture.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/4/6 13:07\n * @description 广告牌map\n */\nimport * as THREE from 'three';\nimport log from \"@/utils/log/Logger\";\nimport {POSITION} from \"@//constant\";\n\nexport default class BillboardTexture extends THREE.CanvasTexture {\n    private options: IBillboard.options;\n    private _img: HTMLImageElement | null = null;\n    private isImgLoading: boolean = false;\n\n    constructor(options:IBillboard.options,image?:HTMLImageElement) {\n        super(\n            document.createElement('canvas'), // image\n            THREE.Texture.DEFAULT_MAPPING, // mapping\n            THREE.RepeatWrapping, // wrapS\n            THREE.RepeatWrapping, // wrapT\n            THREE.LinearFilter, // magFilter\n            THREE.LinearMipmapLinearFilter, // minFilter\n            THREE.RGBAFormat, // format\n            THREE.UnsignedByteType, // type\n            THREE.Texture.DEFAULT_ANISOTROPY // anisotropy\n        )\n\n        this.options = options;\n        if(this.options.image){\n            this.options.image = new Proxy(this.options.image,{\n                set: (target, key, value) => {\n                    target[key] = value;\n\n                    if(key === \"url\" && value){\n                       this.loadImg();\n                    }else{\n                        this.redraw();\n                    }\n\n                    return true;\n                }\n            })\n        }\n        if(this.options.text){\n            this.options.text = new Proxy(this.options.text,{\n                set: (target, key, value) => {\n                    target[key] = value;\n\n                    this.redraw();\n\n                    return true;\n                }\n            })\n        }\n\n        this.redraw();\n\n        this.loadImg(image);\n    }\n\n    get lines() {\n        if (!this.options.text.visible || !this.options.text.value) return [];\n\n        return String(this.options.text.value).split(/\\r?\\n/);\n    }\n\n    get font(){\n        return `${this.options.text?.fontStyle || 'normal'} normal ${this.options.text?.fontWeight || 'normal'} ${this.options.text?.fontSize || 16}px ${this.options.text?.fontFamily || 'sans-serif'}`;\n    }\n\n    get textWidth(){\n        if (this.options.text.visible && this.lines.length) {\n            let canvas = document.createElement('canvas');\n            let context = canvas.getContext('2d') as  CanvasRenderingContext2D;\n            context.font = this.font;\n            return Math.max(...this.lines.map(text => context.measureText(text).width));\n        }\n\n        return 0;\n    }\n\n    get textHeight(){\n        if (this.options.text.visible && this.lines.length) {\n            return this.lines.length * (this.options.text.fontSize || 16) + (this.options.text.lineGap || 0) * (this.lines.length - 1);\n        }\n        return 0;\n    }\n\n    get imageSize(){\n        return {\n            width:this.options.image.width || 0,\n            height:this.options.image.height || 0,\n        }\n    }\n\n    get width(){\n        const padding = this.options.text.padding || 0;\n        const imageMargin = this.options.image.margin || 0;\n\n        const imageSize = this.imageSize;\n\n        if(!this.options.text.value || !this.options.text.visible) return imageSize.width;\n\n        if (!this.options.image.url || !this.options.image.visible) return this.textWidth +  padding * 2;\n\n        let width = padding * 2;\n        switch (this.options.image.position?.toLowerCase()) {\n            case POSITION.LEFT:\n            case POSITION.TOP_LEFT:\n            case POSITION.TOP_RIGHT:\n            case POSITION.BOTTOM_LEFT:\n            case POSITION.BOTTOM_RIGHT:\n            case POSITION.RIGHT:\n                width += this.textWidth + this.imageSize.width + imageMargin;\n                break;\n            case POSITION.BOTTOM:\n            case POSITION.TOP:\n                width += Math.max(this.textWidth, this.imageSize.width);\n                break;\n            default:\n                width += Math.max(this.textWidth, this.imageSize.width) + imageMargin;\n                break;\n        }\n\n        return width;\n    }\n\n    get height(){\n        const padding = this.options.text.padding || 0;\n        const imageMargin = this.options.image.margin || 0;\n\n        const imageSize = this.imageSize;\n\n        if(!this.options.text.value || !this.options.text.visible) return imageSize.height;\n\n        if (!this.options.image.url || !this.options.image.visible) return padding * 2 + this.textHeight;\n\n        let height = padding * 2;\n\n        switch (this.options.image.position?.toLowerCase()) {\n            case POSITION.TOP:\n            case POSITION.BOTTOM:\n                height += this.textHeight + imageSize.height + imageMargin;\n                break;\n            default:\n                height += Math.max(this.textHeight, imageSize.height);\n                break;\n        }\n        return height;\n    }\n\n    async loadImg(image?:HTMLImageElement){\n        if(this.isImgLoading) return;\n\n        if(image){\n            this._img = image;\n            this.redraw();\n\n            // @ts-ignore\n            this.dispatchEvent({type:\"imgLoaded\",url:this.options.image?.url})\n\n            this.isImgLoading = false;\n\n            return;\n        }\n\n        if(this.options.image?.url){\n            const img = new Image();\n            // 设置跨域模式（解决 CORS 问题）\n            img.crossOrigin = \"anonymous\";\n\n            this.isImgLoading = true;\n            img.onload = () =>{\n                this._img = img;\n                this.redraw();\n\n                // @ts-ignore\n                this.dispatchEvent({type:\"imgLoaded\",url:this.options.image?.url})\n\n                this.isImgLoading = false;\n\n                // // 生成Canvas的DataURL\n                // const dataUrl = this.image.toDataURL('image/png'); // 可选参数：'image/jpeg'，并可设置质量\n                //\n                // // 创建下载链接\n                // const link = document.createElement('a');\n                // link.href = dataUrl;\n                // link.download = 'canvas-image.png'; // 设置下载的文件名\n                //\n                // // 触发下载\n                // document.body.appendChild(link);\n                // link.click();\n                //\n                // // 可选：移除链接\n                // document.body.removeChild(link);\n            }\n            // @ts-ignore\n            img.onerror = (e:Error) =>{\n                console.log(`[BillboardTexture] 图片载入失败：`,e)\n                log.error(`[BillboardTexture] 图片载入失败：${e.toString()}`);\n\n                this.isImgLoading = false;\n            }\n\n            img.src = this.options.image.url;\n        }\n    }\n\n    redraw(){\n        if(!this.image) return;\n\n        // 默认均按512x512绘制，再按比例缩放,以保持清晰\n        const canvasWidth = 512;\n        const canvasHeight = 512;\n\n        if (this.width && this.height){\n            this.image.width = canvasWidth;\n            this.image.height = canvasHeight;\n\n            const imageSize = this.imageSize;\n            let imageWidth = imageSize.width;\n            let imageHeight = imageSize.height;\n\n            let context = this.image.getContext('2d');\n            context.clearRect(0, 0, this.image.width, this.image.height);\n            context.scale(canvasWidth / this.width, canvasHeight / this.height);\n            context.save();\n\n            const imageIsVisible = this.options.image.url && this.options.image.visible;\n            let imageMargin = imageIsVisible ? (this.options.image.margin || 0) : 0;\n            imageWidth = imageIsVisible ? imageWidth : 0;\n            imageHeight = imageIsVisible ? imageHeight : 0;\n\n            let textIsVisible = this.options.text.value && this.options.text.visible;\n            imageMargin = textIsVisible ? imageMargin : 0;\n\n            const padding = this.options.text.padding || 0;\n            const textAlign = this.options.text.align?.toLowerCase() || 'left';\n            const imagePosition = this.options.image.position?.toLowerCase();\n            // 图像位置\n            let imageLeft = 0, imageTop = 0, left = 0, top = 0;\n\n            // 绘制图片\n            const drawImage = () => {\n                if (imageIsVisible) {\n                    if(textIsVisible) {\n                        if (imagePosition === POSITION.LEFT) {\n                            imageTop = this.height / 2 - imageHeight / 2;\n                            imageLeft = 0;\n                        }\n                        if (imagePosition === POSITION.RIGHT) {\n                            imageLeft = this.textWidth + padding * 2  +  imageMargin;\n                            imageTop = this.height / 2 - imageHeight / 2;\n                        }\n                        if (imagePosition === POSITION.TOP) {\n                            imageLeft = this.width / 2 - imageWidth / 2;\n                            imageTop = 0;\n                        }\n                        if (imagePosition === POSITION.BOTTOM) {\n                            imageLeft = this.width / 2 - imageWidth / 2;\n                            imageTop = this.textHeight + padding * 2 + imageMargin;\n                        }\n                        if (imagePosition == POSITION.CENTER) {\n                            imageLeft = this.width / 2 - imageWidth / 2;\n                            imageTop = this.height / 2 - imageHeight / 2;\n                        }\n                    }\n\n                    if(!this._img) {\n                        this.loadImg();\n                    }else{\n                        const rotate = this.options.image.rotate;\n                        if (rotate) {\n                            context.translate(imageLeft + imageWidth / 2, imageTop + imageHeight / 2);\n                            context.rotate(rotate);\n                            context.drawImage(this._img, -imageWidth / 2, -imageHeight / 2, imageWidth, imageHeight);\n                            context.rotate(-1 * rotate);\n                            context.translate(-imageLeft - imageWidth / 2, -imageTop - imageHeight / 2)\n                        } else {\n                            context.drawImage(this._img, imageLeft, imageTop, imageWidth, imageHeight);\n                        }\n                    }\n                }\n            }\n\n            const drawText = () => {\n                // 绘制文字\n                if (textIsVisible) {\n                    const rect = {\n                        left: left,\n                        top: top,\n                        width: this.textWidth + padding * 2,\n                        height: this.textHeight + padding * 2,\n                    }\n\n                    if(imageIsVisible) {\n                        if (imagePosition === POSITION.LEFT) {\n                            rect.left = imageWidth + imageMargin;\n                            rect.top = this.height / 2 - rect.height / 2;\n                        }\n                        if (imagePosition === POSITION.RIGHT) {\n                            rect.left = 0;\n                            rect.top = this.height / 2 - rect.height / 2;\n                        }\n                        if (imagePosition === POSITION.TOP) {\n                            rect.left = 0;\n                            rect.top = imageHeight + imageMargin;\n                        }\n                        if (imagePosition === POSITION.BOTTOM) {\n                            rect.left = 0;\n                            rect.top = 0 ;\n                        }\n                        if (imagePosition == POSITION.CENTER) {\n                            rect.left = 0;\n                            rect.top = 0;\n                            rect.width = this.width;\n                            rect.height = this.height;\n                        }\n                    }\n\n                    switch (textAlign) {\n                        // 文字左对齐\n                        case 'left':\n                            left = padding;\n                            top = padding;\n                            if(imageIsVisible) {\n                                switch(imagePosition) {\n                                    case POSITION.TOP:\n                                        top += imageMargin + imageHeight;\n                                        break;\n                                    case POSITION.LEFT:\n                                        left += imageMargin + imageWidth;\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                    case POSITION.CENTER:\n                                        left = this.width / 2 - this.textWidth / 2 - padding;\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                    case POSITION.BOTTOM:\n                                        break;\n                                    case POSITION.RIGHT:\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                }\n                            }\n                            break;\n                        // 文字右对齐\n                        case 'right':\n                            left = this.width - padding;\n                            top = padding;\n\n                            if(imageIsVisible) {\n                                switch(imagePosition) {\n                                    case POSITION.TOP:\n                                        top += imageMargin + imageHeight;\n                                        break;\n                                    case POSITION.LEFT:\n                                        left = this.width - padding;\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                    case POSITION.CENTER:\n                                        left = this.width - padding;\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                    case POSITION.BOTTOM:\n                                        break;\n                                    case POSITION.RIGHT:\n                                        left = this.width - imageWidth - imageMargin - padding;\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                }\n                            }\n                            if(this.lines.length == 1) {\n                                top += 2;\n                            }\n                            break;\n                        // 文字居中\n                        case 'center':\n                            top = padding;\n                            left = this.width / 2 + imageMargin;\n                            if(imageIsVisible) {\n                                switch(imagePosition) {\n                                    case POSITION.TOP:\n                                        top += imageMargin + imageHeight;\n                                        left = this.width / 2;\n                                        break;\n                                    case POSITION.LEFT:\n                                        left = this.width / 2 + imageWidth / 2 + imageMargin / 2;\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                    case POSITION.CENTER:\n                                        left = this.width / 2;\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                    case POSITION.BOTTOM:\n                                        left = this.width / 2;\n                                        break;\n                                    case POSITION.RIGHT:\n                                        left = this.width / 2 - imageWidth / 2 - imageMargin / 2;\n                                        top = this.height / 2 - this.textHeight / 2;\n                                        break;\n                                }\n                            }\n                            break;\n                    }\n\n                    // 填充背景\n                    if (this.options.text.fill && this.options.text.fillColor) {\n                        context.save();\n                        context.fillStyle = this.options.text.fillColor;\n                        context.fillRect(rect.left, rect.top, rect.width, rect.height);\n                        context.restore();\n                    }\n\n                    context.textAlign = textAlign;\n                    context.font = this.font;\n                    context.textBaseline = this.options.text.baseline || 'top';\n                    context.fillStyle = this.options.text.fontColor || '#ffffff';\n                    context.lineJoin = 'miter';\n                    context.miterLimit = 1;\n                    context.lineWidth = this.options.text.strokeWidth;\n                    context.strokeStyle = this.options.text.strokeColor;\n                    this.lines.forEach(t => {\n                        if (this.options.text.strokeWidth) {\n                            context.strokeText(t, left, top);\n                        }\n                        context.fillText(t, left, top);\n                        top += (this.options.text.fontSize || 16) + (this.options.text.lineGap || 0);\n                    });\n                }\n            }\n\n\n            if(this.options.image.top){\n                drawText();\n                drawImage();\n            }else{\n                drawImage();\n                drawText();\n            }\n\n            context.restore();\n        } else {\n            this.image.width = this.image.height = 1;\n            log.warn(\"[BillboardTexture] 宽高为0，无法绘制\");\n        }\n\n        this.needsUpdate = true;\n\n        // @ts-ignore\n        this.dispatchEvent({type:\"redraw\"})\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/objects/weather/Rain.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/01/07 \n * @description 贴相机的下雨效果\n */\nimport * as THREE from 'three';\nimport type CameraControls from 'camera-controls';\n\ninterface IRainOption {\n    speed: number,\n    color: string,\n    size: number,\n    radian: number,\n    alpha: number,\n}\n\nexport default class Rain{\n    options: IRainOption;\n    mesh:THREE.Mesh;\n    controls: CameraControls;\n\n    constructor(option: IRainOption, controls: CameraControls) {\n        const defaultOption: IRainOption = {\n            speed: 0.4,\n            color: \"#ffffff\",\n            size: 0.5,\n            radian: 95 * THREE.MathUtils.DEG2RAD,\n            alpha: 0.4\n        };\n\n        this.options = Object.assign({}, defaultOption, option);\n\n        this.controls = controls;\n        \n        this.mesh = this.createMesh();\n\n        this.updatePosition();\n    }\n\n    createMesh(){\n        const geometry = new THREE.PlaneGeometry(200, 200);\n\n        const uniforms = {\n            u_time: {\n                type: \"f\",\n                value: 0.0\n            },\n            tDiffuse: { value: null },\n            u_resolution: {\n                type: \"v2\",\n                value: new THREE.Vector2(window.innerWidth, window.innerHeight).multiplyScalar(window.devicePixelRatio)\n            },\n            alpha: {\n                type: \"f\",\n                value: this.options.alpha,\n            },\n            size: { value: this.options.size },\n            radian: { value: this.options.radian * THREE.MathUtils.DEG2RAD },\n            speed: { value: this.options.speed },\n            color: { value: new THREE.Color(this.options.color) }\n        };\n\n        const material = new THREE.ShaderMaterial({\n            transparent: true,\n            uniforms: uniforms,\n            side: 2,\n            vertexShader: `\n                #define GLSLIFY 1\n                varying vec2 vUv;\n                void main() {\n                    vUv = uv;\n                    gl_Position = vec4( position, 1.0 );\n                }\n            `,\n            fragmentShader: `\n                uniform sampler2D tDiffuse;\n                uniform vec2 u_resolution;\n                uniform float u_time;\n                uniform float speed;\n                uniform vec3 color;\n                uniform float radian;\n                uniform float alpha;\n                uniform float size;\n                varying highp vec2 vUv;\n                float hash(vec2 p){\n                    p  = 50.0*fract( p*0.3183099 + vec2(0.71,0.113));\n                    return -1.0+2.0*fract( p.x*p.y*(p.x+p.y) );\n                }\n                float noise( in vec2 p ){\n                    vec2 i = floor( p );\n                    vec2 f = fract( p );\n                    vec2 u = f*f*(3.0-2.0*f);\n                    return mix( mix( hash( i + vec2(0.0,0.0) ), \n                            hash( i + vec2(1.0,0.0) ), u.x),\n                        mix( hash( i + vec2(0.0,1.0) ), \n                            hash( i + vec2(1.0,1.0) ), u.x), u.y);\n                }\n            \n                void main(){\n                    vec3 col=texture(tDiffuse,vUv).rgb;\n                    vec2 q = gl_FragCoord.xy/u_resolution.xy;\n                    vec2 p = -1.0+2.0*q;\n                    vec2 st =  (p * vec2(.5, .01)+vec2(u_time)*0.05*speed)-vec2(q.y*cos(radian),0.0);\n                    st*= (1000.0 - size * 500.0);\n                    float f = noise(st) * noise(st*.773)* 1.55;\n                    f = clamp(pow(abs(f), 23.0) * 13.0, 0.0, q.y*.14) * 2.7;\n                    col += clamp(f,0.0,1.0)*color;\n                    gl_FragColor = vec4(col, alpha);\n                }\n        `\n        });\n\n        return new THREE.Mesh(geometry, material);\n    }\n\n    updatePosition() {\n        if (this.controls && this.mesh) {\n            const position = this.controls.getPosition(new THREE.Vector3());\n            const center = this.controls.getTarget(new THREE.Vector3());\n            this.mesh.position.copy(center);\n            if (position.y < 100) {\n                this.mesh.position.y = -100;\n            } else {\n                this.mesh.position.y = 0;\n            }\n        }\n    }\n\n    updateOptions(option) {\n        const material = <THREE.ShaderMaterial>this.mesh.material;\n        for (const key in option) {\n            this.options[key] = option[key];\n\n            if (material.uniforms[key]) {\n                let value = option[key];\n\n                switch(key){\n                    case \"radian\":\n                        value *= THREE.MathUtils.DEG2RAD;\n                        break;\n                    case \"color\":\n                        value = new THREE.Color(value);\n                        break;\n                }\n                material.uniforms[key].value = value;\n            }\n        }\n    }\n\n    update(deltaTime){\n        this.updatePosition();\n\n        if (this.mesh.material && this.mesh.material instanceof THREE.ShaderMaterial) {\n            this.mesh.material.uniforms.u_time.value += deltaTime;\n        }\n    }\n\n    dispose(){\n        this.mesh.geometry.dispose();\n        (<THREE.Material>this.mesh.material).dispose();\n        this.mesh.removeFromParent();        \n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/objects/weather/Snow.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/01/08 \n * @description 贴相机的下雪效果\n */\nimport * as THREE from 'three';\nimport type CameraControls from 'camera-controls';\n\ninterface ISnowOption {\n    size: number;\n    density: number;\n    speed: number;\n    alpha: number;\n}\n\nexport default class Snow {\n    options: ISnowOption;\n    mesh: THREE.Mesh;\n    controls: CameraControls;\n\n    constructor(option: ISnowOption, controls: CameraControls) {\n        const defaultOption: ISnowOption = {\n            size: 0.05,\n            density: 1.0,\n            speed: 1.0,\n            alpha: 0.4,\n        };\n\n        this.options = Object.assign({}, defaultOption, option);\n\n        this.controls = controls;\n\n        this.mesh = this.createMesh();\n        this.mesh.renderOrder = 100;\n\n        this.updatePosition();\n    }\n\n    createMesh() {\n        const geometry = new THREE.PlaneGeometry(200, 200);\n\n        const uniforms = {\n            iTime: {\n                type: \"f\",\n                value: 0.0\n            },\n            tDiffuse: { value: null },\n            iResolution: {\n                type: \"v2\",\n                value: new THREE.Vector2(window.innerWidth, window.innerHeight).multiplyScalar(window.devicePixelRatio)\n            },\n            size: { value: this.options.size },\n            speed: { value: this.options.speed },\n            density: { value: this.options.density },\n            alpha: {\n                type: \"f\",\n                value: this.options.alpha,\n            },\n        };\n\n        const material = new THREE.ShaderMaterial({\n            transparent: true,\n            uniforms: uniforms,\n            side: 2,\n            depthTest: false, // 禁用深度测试\n            depthWrite: false, // 禁用深度写入\n            blending: THREE.AdditiveBlending, // 使用叠加混合模式\n            vertexShader: `\n                varying highp vec2 vUv;\n\n                void main() {\n                    vUv = uv;\n\n                    gl_Position = vec4( position, 1.0 );\n                }`,\n            fragmentShader: `\n        #define PI 3.14159265359\n        uniform sampler2D tDiffuse;\n        uniform vec2 iResolution;\n        uniform float iTime;\n        uniform float size; // 输入的 size,显示给用户的值是实际值的十倍\n        uniform float density;\n        uniform float speed;\n        uniform float alpha;\n        varying highp vec2 vUv;\n\n        float ball(vec2 p) {\n           float d = distance(vec2(.5), p);\n           return smoothstep(size / 10.0, size / 10.0 - .05, d); // 将 size 缩小十倍\n        }\n        float N11(float n) {\n           return fract(sin(n * 871.213) * 3134.422);\n        }\n        float N21(vec2 uv) {\n           return N11(N11(uv.x) + uv.y);\n        }\n        \n        float snow(vec2 uv, float t) {\n           vec2 org_uv = vec2(uv.x, uv.y);\n           float z = 10.;\n           uv.y += t * .5;\n           vec2 gv = fract(uv*z);\n           vec2 id = floor(uv*z); \n           gv.x += (sin(N21(id) * 128. + t) * .4);\n           gv.y += (sin(N11(N21(id)) * 128. + t) * .4);\n           \n           float dots = ball(gv);\n           return dots;\n        }\n        void main(){\n            vec3 col=texture(tDiffuse,vUv).rgb;\n            vec2 uv = gl_FragCoord.xy/iResolution.xy;\n            uv.x *= iResolution.x / iResolution.y;\n            float t = iTime * .3*speed;\n            vec2 gh_uv = uv;\n    \n            // Time varying pixel color\n            vec3 colSnow = vec3(0.);\n    \n            float m = 0.;\n    \n            for(float i =0.; i <= 1.; i += 1. / (32.*density)) {\n                float z = mix(1., .5 , i);\n                vec2 offset = vec2(N11(i), N11(N11(i)));\n                m += snow((uv + offset) * z, t) * .3;\n            }\n    \n            colSnow = vec3(m)*1.2;\n            colSnow += col *.8 * mix(.5, 1., uv.y);\n\n            // 如果不是雪的像素，设置为透明\n            // if (m <= 0.0) {\n            //     gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); // 完全透明\n            // } else {\n            //     gl_FragColor = vec4(colSnow, alpha); // 雪的像素保持原有颜色和透明度\n            // }\n            \n            gl_FragColor = vec4(colSnow,alpha);\n        }`\n        });\n\n        return new THREE.Mesh(geometry, material);\n    }\n\n    updatePosition() {\n        if (this.controls && this.mesh) {\n            const position = this.controls.getPosition(new THREE.Vector3());\n            const center = this.controls.getTarget(new THREE.Vector3());\n\n            if (this.mesh.position.x === center.x && this.mesh.position.z === center.z) return;\n\n            this.mesh.position.copy(center);\n            if (position.y < 100) {\n                this.mesh.position.y = -100;\n            } else {\n                this.mesh.position.y = 0;\n            }\n        }\n    }\n\n    updateOptions(option) {\n        const material = <THREE.ShaderMaterial>this.mesh.material;\n        for (const key in option) {\n            this.options[key] = option[key];\n\n            if (material.uniforms[key]) {\n                material.uniforms[key].value = option[key];\n            }\n        }\n    }\n\n    update(deltaTime) {\n        this.updatePosition();\n\n        if (this.mesh.material && this.mesh.material instanceof THREE.ShaderMaterial) {\n            this.mesh.material.uniforms.iTime.value += deltaTime;\n        }\n    }\n\n    dispose() {\n        this.mesh.geometry.dispose();\n        (<THREE.Material>this.mesh.material).dispose();\n        this.mesh.removeFromParent();\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/plugin/builtin/builtin.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/9/16 23:18\n * @description 在此处注册内置插件\n */\nimport {PluginManager} from \"../plugin\";\n\nexport default class Builtin{\n    // @ts-ignore\n    constructor(pluginManager:PluginManager) {\n        // 注册内置插件\n        // pluginManager.use(new XXX());\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/plugin/plugin.ts",
    "content": "import {loadPluginAsync} from \"./pluginLoader\";\nimport Builtin from \"./builtin/builtin\";\nimport {useDispatchSignal} from \"@/hooks\";\n\n// 所有插件都必须实现此接口\nexport interface Plugin {\n    name: string; // 插件名称，插件的唯一标识\n    version:number; // 插件版本号\n    icon:string; // 插件图标\n    install(config?: any): void; // 插件安装\n    uninstall(): void; // 卸载插件\n    run(): void; // 从插件盒子面板点击插件时的运行方法\n}\n\nexport class PluginManager {\n    public plugins: Map<string, Plugin> = new Map(); // 已加载插件\n\n    constructor() {\n        // 载入内置插件\n        new Builtin(this);\n    }\n\n    get list(){\n        const list:IPlugin.Item[] = [];\n        for (const plugin of this.plugins.values()) {\n            list.push({\n                name:plugin.name,\n                icon:plugin.icon\n            })\n        }\n        return list;\n    }\n\n    /**\n     * 加载插件\n     * @param pluginPaths 插件地址\n     * @param autoUse 插件是否自动注册\n     */\n    async loadAsync(pluginPaths: string | string[],autoUse = false){\n        let plugins:Plugin[] = [];\n\n        for (const src of pluginPaths) {\n            const plugin = await loadPluginAsync(src);\n\n            if(!plugin) {\n                console.error(`插件加载失败: ${src},该插件不存在！`);\n                return;\n            }\n\n            if(autoUse){\n                this.use(plugin);\n            }\n\n            plugins.push(plugin);\n        }\n\n        return plugins;\n    }\n\n    /**\n     * 注册、配置并安装插件的方法\n     * @param plugin 新注册插件\n     * @param config 插件配置\n     * @return PluginManager\n     */\n    use(plugin: Plugin, config?: any): this {\n        // 防止重复注册\n        if (this.plugins.has(plugin.name)) return this;\n\n        // 注册插件\n        plugin.install(config);\n        this.plugins.set(plugin.name, plugin);\n        useDispatchSignal(\"pluginInstall\",plugin);\n\n        return this;\n    }\n\n    /**\n     * 获取插件实例\n     * @param pluginName 插件名称\n     */\n    getPlugin<T extends Plugin>(pluginName: string): T | undefined {\n        return this.plugins.get(pluginName) as T;\n    }\n\n    /**\n     * 获取多个插件实例\n     * @param pluginNames 插件名称数组\n     */\n    getPlugins<T extends Plugin[]>(pluginNames: string[]): T | undefined {\n        return pluginNames.map((pluginName) => this.getPlugin(pluginName)) as T;\n    }\n\n    /**\n     * 转为数组对象\n     * @param names 插件名称/插件名称数组\n     */\n    getStrings(names: string | string[]): string[] {\n        if (!Array.isArray(names)) {\n            names = [names];\n        }\n\n        return names;\n    }\n\n    /**\n     * 遍历插件执行callback\n     * @param pluginNames 插件名称/插件名称数组\n     * @param callback 遍历执行的方法\n     */\n    traverse(pluginNames: string | string[], callback: (data: { name: string, plugin: Plugin }) => void) {\n        this.getStrings(pluginNames).forEach(name => {\n            if (!this.plugins.has(name)) return;\n\n            callback({\n                name,\n                plugin: <Plugin>this.getPlugin(name)\n            })\n        })\n    }\n\n    /**\n     * 运行插件\n     * @param pluginNames 插件名称/插件名称数组\n     */\n    run(pluginNames: string | string[]) {\n        this.traverse(pluginNames, ({plugin}) => {\n            if (typeof plugin.run === 'function') {\n                plugin.run();\n            }\n        })\n\n        return this;\n    }\n\n    /**\n     * 卸载插件\n     * @param pluginNames 插件名称/插件名称数组\n     */\n    uninstall(pluginNames: string | string[]): this {\n        this.traverse(pluginNames, ({name, plugin}) => {\n            // 获取插件的卸载函数并执行\n            if (typeof plugin.uninstall === 'function') {\n                plugin.uninstall();\n            }\n\n            this.plugins.delete(name);\n            useDispatchSignal(\"pluginUninstall\",name);\n\n        })\n\n        return this;\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/plugin/pluginLoader.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/9/16 2:57\n * @description 插件加载\n */\nimport App from \"@/core/app/App\";\n\nexport async function loadPluginAsync(src: string): Promise<any> {\n    try {\n        // 动态导入插件模块\n        const pluginModule = await import(/* @vite-ignore */src);\n\n        // 返回模块的默认导出\n        return pluginModule.default;\n    } catch (error:any) {\n        App.log.error(`插件加载失败: ${error?.message}`);\n        return null;\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/points/PointCloudReconstructor.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/07/03 19:38\n * @description 点云语义重建\n */\nimport * as THREE from 'three';\nimport {ConvexGeometry} from \"three/addons/geometries/ConvexGeometry.js\";\n\nclass PointCloudReconstructor {\n    // 点云数据存储\n    points: THREE.Vector3[] = [];\n    colors: THREE.Color[] = [];\n    // 语义颜色分组\n    colorGroups:Map<string,THREE.Vector3[]> = new Map();\n\n    colorTolerance: number;\n    distanceThreshold: number;\n    minClusterSize: number;\n    downsampleResolution: number;\n\n    progressCallback: Function | null;\n\n    constructor() {\n        // RGB颜色容差\n        this.colorTolerance = 5;\n        // 空间聚类距离阈值\n        this.distanceThreshold = 0.3;\n        // 最小聚类点数\n        this.minClusterSize = 10;\n        // 点云抽稀系数\n        this.downsampleResolution = 0.05;\n\n        // 进度回调\n        this.progressCallback = null;\n    }\n\n    /**\n     * 处理几何数据，提取点和颜色\n     * @param {THREE.BufferGeometry} geometry - 点云几何数据\n     */\n    processGeometry(geometry) {\n        this.points = [];\n        this.colors = [];\n\n        const vertices = geometry.getAttribute('position').array;\n        const colors = geometry.getAttribute('color')?.array || [];\n        const hasColors = colors.length > 0;\n\n        for (let i = 0; i < vertices.length; i += 3) {\n            this.points.push(new THREE.Vector3(\n                vertices[i],\n                vertices[i + 1],\n                vertices[i + 2]\n            ));\n\n            if (hasColors) {\n                this.colors.push(new THREE.Color(\n                    colors[i],\n                    colors[i + 1],\n                    colors[i + 2]\n                ));\n            } else {\n                this.colors.push(new THREE.Color(0xffffff));\n            }\n        }\n    }\n\n    // 点云抽稀算法\n    downsamplePoints(points, resolution) {\n        const grid = new Map();\n        const downsampled:THREE.Vector3[] = [];\n\n        points.forEach(point => {\n            const gridX = Math.floor(point.x / resolution);\n            const gridY = Math.floor(point.y / resolution);\n            const gridZ = Math.floor(point.z / resolution);\n            const gridKey = `${gridX},${gridY},${gridZ}`;\n\n            if (!grid.has(gridKey)) {\n                grid.set(gridKey, true);\n                downsampled.push(point.clone());\n            }\n        });\n\n        return downsampled;\n    }\n\n    /**\n     * 按语义颜色分组点云\n     */\n    groupBySemanticColor() {\n        this.colorGroups.clear();\n\n        for (let i = 0; i < this.points.length; i++) {\n            const color = this.colors[i];\n            const colorKey = this.getColorKey(color);\n\n            if (!this.colorGroups.has(colorKey)) {\n                this.colorGroups.set(colorKey, []);\n            }\n\n            (this.colorGroups.get(colorKey) as THREE.Vector3[]).push(this.points[i].clone());\n\n            // 更新进度（分组阶段占20%）\n            if (this.progressCallback && i % 100 === 0) {\n                this.progressCallback(20 * i / this.points.length, `分组点云: ${i}/${this.points.length}`);\n            }\n        }\n    }\n\n    /**\n     * 生成颜色分类键值（考虑容差）\n     * @param {THREE.Color} color - 输入颜色\n     * @returns {string} 颜色分类键\n     */\n    getColorKey(color) {\n        const r = Math.round(color.r * 255 / this.colorTolerance) * this.colorTolerance;\n        const g = Math.round(color.g * 255 / this.colorTolerance) * this.colorTolerance;\n        const b = Math.round(color.b * 255 / this.colorTolerance) * this.colorTolerance;\n        return `${r},${g},${b}`;\n    }\n\n    /**\n     * 空间聚类算法（使用网格加速）\n     * @param {THREE.Vector3[]} points - 输入点集\n     * @returns {THREE.Vector3[][]} 聚类结果\n     */\n    spatialClustering(points:THREE.Vector3[]) {\n        const clusters:THREE.Vector3[][] = [];\n        const visited = new Set();\n        const grid = new Map();\n        const gridSize = this.distanceThreshold * 1.5;\n\n        // 创建空间网格\n        for (let i = 0; i < points.length; i++) {\n            const point = points[i];\n            const gridKey = this.getGridKey(point, gridSize);\n\n            if (!grid.has(gridKey)) {\n                grid.set(gridKey, []);\n            }\n\n            grid.get(gridKey).push(i);\n        }\n\n        let processed = 0;\n        const totalPoints = points.length;\n\n        for (let i = 0; i < points.length; i++) {\n            if (visited.has(i)) continue;\n\n            visited.add(i);\n            const cluster = [points[i]];\n            const queue = [i];\n\n            while (queue.length > 0) {\n                const currentIndex = queue.shift() as number;\n                const currentPoint = points[currentIndex];\n\n                // 获取当前点所在的网格及其相邻网格\n                const neighborCells = this.getNeighborCells(currentPoint, gridSize);\n\n                for (const cell of neighborCells) {\n                    if (!grid.has(cell)) continue;\n\n                    const cellPoints = grid.get(cell);\n                    for (const neighborIndex of cellPoints) {\n                        if (visited.has(neighborIndex)) continue;\n\n                        const neighbor = points[neighborIndex];\n                        if (currentPoint.distanceTo(neighbor) < this.distanceThreshold) {\n                            visited.add(neighborIndex);\n                            cluster.push(neighbor);\n                            queue.push(neighborIndex);\n                        }\n                    }\n                }\n            }\n\n            if (cluster.length >= this.minClusterSize) {\n                clusters.push(cluster);\n            }\n\n            // 更新进度（聚类阶段占30%）\n            processed++;\n            if (this.progressCallback && processed % 10 === 0) {\n                const progress = 20 + 30 * processed / totalPoints;\n                this.progressCallback(progress, `空间聚类: ${processed}/${totalPoints}`);\n            }\n        }\n\n        return clusters;\n    }\n\n    // 获取网格键值\n    getGridKey(point, gridSize) {\n        const x = Math.floor(point.x / gridSize);\n        const y = Math.floor(point.y / gridSize);\n        const z = Math.floor(point.z / gridSize);\n        return `${x},${y},${z}`;\n    }\n\n    // 获取相邻网格\n    getNeighborCells(point, gridSize) {\n        const cells:string[] = [];\n        const x = Math.floor(point.x / gridSize);\n        const y = Math.floor(point.y / gridSize);\n        const z = Math.floor(point.z / gridSize);\n\n        for (let dx = -1; dx <= 1; dx++) {\n            for (let dy = -1; dy <= 1; dy++) {\n                for (let dz = -1; dz <= 1; dz++) {\n                    cells.push(`${x + dx},${y + dy},${z + dz}`);\n                }\n            }\n        }\n\n        return cells;\n    }\n\n    /**\n     * 重建三角面模型（分帧处理）\n     * @returns {THREE.Group} 包含所有重建物体的场景组\n     */\n    reconstruct(onProgress, onComplete) {\n        // 更新进度\n        let progress = 0;\n        onProgress(progress, `分组点云...`);\n\n        // 第一阶段：分组点云\n        this.groupBySemanticColor();\n        const objectGroup = new THREE.Group();\n        const colorKeys = Array.from(this.colorGroups.keys());\n        let totalObjects = 0;\n\n        // 创建一个任务队列\n        const tasks: {colorKey:string,cluster:THREE.Vector3[]}[] = [];\n\n        progress = 10;\n        onProgress(progress, `分组点云完毕`);\n\n        const progressItem = Math.floor(40 / colorKeys.length);\n\n        for (const colorKey of colorKeys) {\n            const points = this.colorGroups.get(colorKey);\n\n            // 对点云进行抽稀\n            const downsampledPoints = this.downsamplePoints(points, this.downsampleResolution);\n\n            // 空间聚类\n            const clusters = this.spatialClustering(downsampledPoints);\n\n            for (const cluster of clusters) {\n                tasks.push({\n                    colorKey,\n                    cluster\n                });\n            }\n\n            progress += progressItem;\n            onProgress(progress, `空间聚类...`);\n        }\n\n        let taskIndex = 0;\n        const totalTasks = tasks.length;\n        let lastUpdateTime = performance.now();\n\n        // 更新进度\n        progress = 50;\n        onProgress(progress,  `重建对象: ${taskIndex}/${totalTasks}`);\n\n        // 分帧处理函数\n        const processNextTask = () => {\n            const now = performance.now();\n            const elapsed = now - lastUpdateTime;\n\n            // 控制处理速度（每帧最多处理10个任务）\n            const maxTasksPerFrame = Math.min(10, Math.max(1, Math.floor(elapsed / 5)));\n            let processedThisFrame = 0;\n\n            while (taskIndex < totalTasks && processedThisFrame < maxTasksPerFrame) {\n                const task = tasks[taskIndex];\n                const { colorKey, cluster } = task;\n\n                try {\n                    // 使用凸包算法生成表面\n                    const geometry = new ConvexGeometry(cluster);\n\n                    // 从颜色键解析原始颜色\n                    const [r, g, b] = colorKey.split(',').map(Number);\n                    const material = new THREE.MeshStandardMaterial({\n                        color: new THREE.Color(r / 255, g / 255, b / 255),\n                        flatShading: true,\n                        side: THREE.DoubleSide\n                    });\n\n                    const mesh = new THREE.Mesh(geometry, material);\n                    objectGroup.add(mesh);\n                    totalObjects++;\n                } catch (e) {\n                    console.warn(\"凸包生成失败:\", e);\n                }\n\n                taskIndex++;\n                processedThisFrame++;\n\n                // 更新进度（重建阶段占50%）\n                const status = `重建对象: ${taskIndex}/${totalTasks}`;\n                onProgress(progress + 50 * taskIndex / totalTasks, status);\n            }\n\n            // 所有任务完成\n            if (taskIndex >= totalTasks) {\n                onComplete(objectGroup, totalObjects);\n                return;\n            }\n\n            // 下一帧继续\n            lastUpdateTime = performance.now();\n            requestAnimationFrame(processNextTask);\n        };\n\n        // 开始重建任务\n        processNextTask();\n    }\n\n    dispose(){\n        this.points = [];\n        this.colors = [];\n        this.colorGroups = new Map();\n        this.progressCallback = null;\n    }\n}\n\nexport {PointCloudReconstructor};\n"
  },
  {
    "path": "packages/sdk/lib/core/points/index.ts",
    "content": "export {PointCloudReconstructor} from \"./PointCloudReconstructor\";"
  },
  {
    "path": "packages/sdk/lib/core/preview/Preview.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/7/30 18:49\n * @description 资源预览类\n */\nimport * as THREE from 'three';\nimport CameraControls from 'camera-controls';\nimport { Timer } from 'three/examples/jsm/misc/Timer.js';\nimport {CSS3DRenderer} from \"three/examples/jsm/renderers/CSS3DRenderer.js\";\nimport {PreviewOptions} from \"@/core/preview/PreviewOptions.ts\";\nimport Loader from \"@/core/loader/Loader.ts\";\nimport {createDivContainer, deepAssign, parseMaterialZip} from \"@/utils\";\nimport {getDefaultBillboardOptions} from \"@/core/objects\";\nimport {POSITION} from \"@/constant\";\nimport {Emitter} from '@/core/libs/three-nebula';\nimport ParticleEmitter from \"@/core/objects/ParticleEmitter.ts\"\nimport Billboard from \"@/core/objects/Billboard.ts\";\nimport {focusObject} from \"@/utils/scene/controls.ts\";\nimport {ParticleSystem} from \"@/core/viewer/modules\";\n\nexport interface PreviewerEventMap {\n    // 场景当前动画帧循环完成之后渲染之前触发，每一次渲染执行一次\n    beforeRender: { };\n\n    // 场景当前帧渲染完成之后触发，每一次渲染执行一次\n    afterRender: {  };\n}\n\nexport interface PreviewerModules {\n    controls: CameraControls,\n    particleSystem: ParticleSystem,\n}\n\nCameraControls.install({\n    THREE: {\n        Vector2: THREE.Vector2,\n        Vector3: THREE.Vector3,\n        Vector4: THREE.Vector4,\n        Quaternion: THREE.Quaternion,\n        Matrix4: THREE.Matrix4,\n        Spherical: THREE.Spherical,\n        Box3: THREE.Box3,\n        Sphere: THREE.Sphere,\n        Raycaster: THREE.Raycaster,\n    }\n});\n\nexport default class Preview extends THREE.EventDispatcher<PreviewerEventMap>  {\n    public _container: HTMLElement;\n    public options: IPreviewSetting;\n    public renderer: THREE.WebGLRenderer;\n    public camera: THREE.PerspectiveCamera;\n    public scene: THREE.Scene;\n    public modules: PreviewerModules;\n    public css3DRenderer: CSS3DRenderer;\n\n    public timer = new Timer();\n    private resizeObserver: ResizeObserver | null = null;\n    private resize: () => void;\n\n    constructor(options: IPreviewSetting) {\n        super();\n\n        this._container = options.container || createDivContainer();\n\n        this.options = PreviewOptions();\n        deepAssign(this.options, options);\n\n        const {camera, scene, renderer,css3DRenderer} = this.basicCreation();\n        this.camera = camera;\n        this.scene = scene;\n        this.renderer = renderer;\n        this.css3DRenderer = css3DRenderer;\n        this._container.appendChild(renderer.domElement);\n        this._container.appendChild(css3DRenderer.domElement);\n\n        this.modules = this.initModules();\n\n        this.loadEnv({setBg:true});\n\n        this.renderer.setAnimationLoop(this.animate.bind(this));\n\n        this.resize = this.onResize();\n        this.resize();\n    }\n\n    get container(): HTMLElement {\n        return this._container;\n    }\n\n    set container(container: HTMLElement) {\n        this._container.removeChild(this.renderer.domElement);\n\n        if(this.resizeObserver){\n            this.resizeObserver.unobserve(this._container);\n            this.resizeObserver.disconnect();\n        }\n\n        this._container = container;\n\n        this._container.appendChild(this.renderer.domElement);\n\n        this.resize = this.onResize();\n    }\n\n    basicCreation(){\n        const camera = new THREE.PerspectiveCamera(45, 1, 0.1, 100 * 1000);\n        camera.name = \"Camera\";\n        camera.position.set(0, 5, 10);\n        camera.lookAt(new THREE.Vector3());\n\n        const scene = new THREE.Scene();\n        scene.name = \"Scene\";\n\n        const renderer = new THREE.WebGLRenderer({\n            antialias: true,\n            alpha: true,\n            preserveDrawingBuffer: false,\n            powerPreference: \"high-performance\",\n        });\n        renderer.autoClear = false;\n        renderer.outputColorSpace = THREE.SRGBColorSpace;\n        renderer.toneMapping = THREE.ACESFilmicToneMapping;\n        renderer.toneMappingExposure = 1;\n        renderer.shadowMap.enabled = true;\n        renderer.shadowMap.autoUpdate = false;\n        renderer.shadowMap.type = THREE.PCFSoftShadowMap;\n        renderer.xr.enabled = false;\n        renderer.setClearColor(0x272727, 1);\n        renderer.setPixelRatio(Math.max(Math.ceil(window.devicePixelRatio), 1));\n        renderer.setSize(this._container.offsetWidth, this._container.offsetHeight);\n\n        const css3DRenderer = new CSS3DRenderer();\n        css3DRenderer.setSize(this._container.offsetWidth, this._container.offsetHeight);\n        css3DRenderer.domElement.setAttribute(\"id\", \"astral-3d-preview-css3DRenderer\");\n        css3DRenderer.domElement.style.position = 'absolute';\n        css3DRenderer.domElement.style.top = '0px';\n        css3DRenderer.domElement.style.pointerEvents = 'none';\n\n        return { camera,scene,renderer,css3DRenderer };\n    }\n\n    /**\n     * 初始化功能模块\n     */\n    initModules():PreviewerModules {\n        const controls = new CameraControls(this.camera,this.renderer.domElement);\n        controls.addEventListener(\"update\", () => {});\n\n        return {\n            controls,\n            // 粒子系统\n            particleSystem: new ParticleSystem(this),\n        }\n    }\n\n    /**\n     * 加载默认环境和背景\n     */\n    loadEnv(\n        options?:{\n            setBg?: boolean,\n            extension?: string,\n            onLoad?: (texture: THREE.Texture) => void,\n            onError?: (error: Error) => void\n        }\n    ) {\n        if (!this.options.hdr) return;\n\n        const params = Object.assign({\n            setBg: true,\n            extension: this.options.hdr.split(\".\").pop()?.toLowerCase() || 'hdr'\n        },options)\n\n        Loader.loadUrlTexture(params.extension, this.options.hdr, (texture: THREE.Texture) => {\n            texture.mapping = THREE.EquirectangularReflectionMapping;\n            this.scene.environment = texture;\n            params.setBg && (this.scene.background = texture);\n\n            this.render();\n\n            params.onLoad && params.onLoad(texture)\n        },(err) => params.onError && params.onError(err));\n    }\n\n    /**\n     * 加载预览项\n     */\n    load(fileOrUrl:string | File,type:string = \"Model\") {\n        return new Promise(async (resolve, reject) => {\n            this.clear();\n\n            let file = fileOrUrl;\n            if(!(fileOrUrl instanceof File) && ![\"Texture\",\"Billboard\",\"HDR\"].includes(type)) {\n                const response = await fetch(fileOrUrl);\n                if (!response.ok) {\n                    reject('The network is responding abnormally');\n                    return;\n                }\n\n                const filename = fileOrUrl.substring(fileOrUrl.lastIndexOf(\"/\") + 1);\n\n                const blob = await response.blob();\n                file = new File([blob], filename,{ type: blob.type });\n            }\n\n            switch (type) {\n                case \"Model\":\n                    Loader.loadFile(file, new THREE.LoadingManager(),null,false).then((model) => {\n                        this.scene.add(model);\n                        focusObject(model,this.modules.controls);\n\n                        resolve(model);\n                    }).catch(error => {\n                        reject(error);\n                    })\n                    break;\n                case \"Material\":\n                    parseMaterialZip(file as File)\n                        .then((material) => {\n                            const geometry = new THREE.SphereGeometry(1, 32, 32, 0, Math.PI * 2, 0, Math.PI);\n                            const mesh = new THREE.Mesh(geometry, material);\n                            this.scene.add(mesh);\n\n                            focusObject(mesh,this.modules.controls);\n\n                            resolve(mesh);\n                        })\n                        .catch(error => {\n                            reject(error);\n                        })\n                    break;\n                case \"Texture\":\n                    let mapPath = file;\n                    if(file instanceof File){\n                        mapPath = URL.createObjectURL(file);\n                    }\n\n                    const geometry = new THREE.PlaneGeometry(1, 1);\n                    const material = new THREE.MeshStandardMaterial({\n                        side: THREE.DoubleSide,\n                        map: new THREE.TextureLoader().load(mapPath as string,(texture) => {\n                            texture.wrapS = texture.wrapT = THREE.RepeatWrapping;\n                            texture.repeat.set(1, 1);\n                            if(file instanceof File){\n                                URL.revokeObjectURL(mapPath as string)\n                            }\n\n                            const panel = new THREE.Mesh(geometry, material);\n\n                            this.scene.add(panel);\n                            focusObject(panel, this.modules.controls);\n\n                            resolve(panel);\n                        },undefined,(err) => reject(err))\n                    });\n\n                    break;\n                case \"Billboard\":\n                    const _ops = getDefaultBillboardOptions();\n                    _ops.image.visible = true;\n                    _ops.image.position = POSITION.LEFT;\n                    if(file instanceof File){\n                        _ops.name = file.name;\n                        _ops.image.url = URL.createObjectURL(file);\n                    } else {\n                        _ops.name = file.substring(file.lastIndexOf(\"/\") + 1);\n                        _ops.image.url = file;\n                    }\n\n                    const billboard = new Billboard(_ops);\n\n                    const handleBillboardImgLoaded = () => {\n                        if(file instanceof File){\n                            URL.revokeObjectURL(_ops.image.url);\n                        }\n\n                        billboard.removeEventListener(\"imgLoaded\", handleBillboardImgLoaded);\n                    }\n                    billboard.addEventListener(\"imgLoaded\", handleBillboardImgLoaded);\n\n                    this.scene.add(billboard);\n                    focusObject(billboard, this.modules.controls);\n\n                    resolve(billboard);\n                    break;\n                case \"HDR\":\n                    let hdrPath = file, extension = \"hdr\";\n                    if(file instanceof File){\n                        hdrPath = URL.createObjectURL(file);\n                        extension = file.name.split(\".\").pop()?.toLowerCase() || \"hdr\"\n                    }else {\n                        extension = file.split(\".\").pop()?.toLowerCase() || \"hdr\";\n                    }\n\n                    this.options.hdr = hdrPath as string;\n                    this.loadEnv({\n                        setBg:true,\n                        extension:extension,\n                        onLoad:(texture) => {\n                            if(file instanceof File){\n                                URL.revokeObjectURL(hdrPath as string);\n                            }\n\n                            resolve(texture);\n                        },\n                        onError: (error) => {\n                            if(file instanceof File){\n                                URL.revokeObjectURL(hdrPath as string);\n                            }\n\n                            reject(error)\n                        }\n                    })\n                    break;\n                default:\n                    reject(\"A type for which previews are not yet supported\");\n                    break;\n            }\n\n            this.render();\n        })\n    }\n\n    /**\n     * 监听视窗变化（节流）\n     */\n    onResize(){\n        const resize = () => {\n            this.camera.aspect = this._container.offsetWidth / this._container.offsetHeight;\n            this.camera.updateProjectionMatrix();\n            this.renderer.setSize(this._container.offsetWidth, this._container.offsetHeight);\n        }\n\n        let timer: NodeJS.Timeout | null = null;\n        this.resizeObserver = new ResizeObserver(() => {\n            if (timer) return;\n            timer = setTimeout(() => {\n                resize();\n\n                timer = null;\n            }, 16)\n        });\n        this.resizeObserver.observe(this._container);\n\n        return resize;\n    }\n\n    /**\n     * 清空场景\n     */\n    clear(){\n        for(let i = this.scene.children.length - 1; i >= 0; i--){\n            const child = this.scene.children[i];\n            if(!child.parent || child.ignore) continue;\n\n            child.parent.remove(child);\n        }\n\n        this.render();\n    }\n\n    animate(){\n        this.timer.update();\n\n        const delta = this.timer.getDelta();\n\t\t\n        this.modules.controls.update(delta);\n\n        this.modules.particleSystem.update(delta);\n\n        this.render();\n    }\n\n    render(){\n        this.dispatchEvent({type: 'beforeRender'});\n\n        this.renderer.autoClear = false;\n\n        this.renderer.render(this.scene, this.camera);\n\n        this.css3DRenderer.render(this.scene, this.camera);\n\n        this.renderer.autoClear = true;\n\n        this.dispatchEvent({type: 'afterRender'});\n    }\n\n    /**\n     * 销毁\n     */\n    dispose() {\n        this.resizeObserver?.unobserve(this._container);\n        this.resizeObserver?.disconnect();\n\n        Object.keys(this.modules).forEach(key => {\n            if (this.modules[key].dispose) {\n                this.modules[key].dispose();\n            }\n        })\n\n        this.modules.controls.disconnect();\n\n        this.clear();\n        this.scene.background = null;\n        this.scene.environment = null;\n\n        this._container.removeChild(this.renderer.domElement);\n\n        this.renderer.setAnimationLoop(null);\n        this.renderer.dispose();\n        // @ts-ignore\n        this.renderer = null;\n\n        // @ts-ignore 清空EventDispatcher监听\n        if(this._listeners){\n            // @ts-ignore\n            Object.keys(this._listeners).forEach(type => {\n                // @ts-ignore\n                this._listeners[type].forEach(listener => {\n                    // @ts-ignore\n                    this.removeEventListener(type, listener);\n                })\n            })\n        }\n    }\n\n    /* -----------------暂时放在Preview下的工具方法-------------------- */\n\n    /**\n     * 添加粒子\n     * @emitter 粒子发射器\n     * @body 粒子主体\n     */\n    addParticle(emitter: Emitter, body: THREE.Sprite | THREE.Mesh, name: string = \"Particles\") {\n        const particleEmitter = new ParticleEmitter(emitter);\n        particleEmitter.name = name;\n\n        ParticleSystem.Body3DMap.set(particleEmitter.uuid, body);\n\n        this.modules.particleSystem.spriteSystem.addEmitter(emitter);\n\n        this.scene.add(particleEmitter);\n\n        return particleEmitter;\n    }\n\n    /**\n     * 获取画布的截屏图片\n     * @returns Promise<HTMLImageElement> 截屏的图片对象\n     */\n    getViewportImage() {\n        return new Promise<HTMLImageElement>((resolve, rejcet) => {\n            // @ts-ignore\n            const _preserveDrawingBuffer = this.renderer.getContext().preserveDrawingBuffer;\n            // @ts-ignore\n            this.renderer.getContext().preserveDrawingBuffer = true;\n            this.render();\n\n            this.renderer.domElement.toBlob((blob) => {\n                if (blob === null) {\n                    rejcet('Screenshots fail');\n                    return;\n                }\n\n                const image = new Image();\n                image.src = URL.createObjectURL(blob);\n\n                // @ts-ignore\n                this.renderer.getContext().preserveDrawingBuffer = _preserveDrawingBuffer;\n                this.render();\n\n                resolve(image);\n            });\n        });\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/preview/PreviewOptions.ts",
    "content": "export const PreviewOptions = (): IPreviewSetting => ({\n    // 场景canvas容器\n    container: undefined,\n    // 场景背景及环境贴图\n    hdr: undefined,\n    // 请求相关\n    request:{\n        baseUrl:\"\"\n    },\n    // 相机控制器\n    control: {\n        minAzimuthAngle: -Infinity,\n        maxAzimuthAngle: Infinity,\n        minDistance: 0.0,\n        maxDistance: Infinity,\n        maxPolarAngle: Math.PI,\n        minPolarAngle: 0,\n        maxZoom:Infinity,\n        minZoom:0.01,\n        dollySpeed:1,\n        // 缩放是否以鼠标位置为中心\n        dollyToCursor: false,\n    }\n})"
  },
  {
    "path": "packages/sdk/lib/core/script/Animation.ts",
    "content": "import {Object3D, AnimationAction,LoopOnce, LoopRepeat, LoopPingPong} from \"three\";\nimport type {AnimationActionLoopStyles} from \"three\";\n\nexport class Animation {\n    object:Object3D;\n    actionsMap:Map<string,  AnimationAction>;\n    lastPlayAction:AnimationAction | undefined;\n    // 整个动作过程动画剪辑（AnimationClip）执行的次数\n    repetitions:number = Infinity;\n\n    static ActionLoop = {\n        LoopOnce: LoopOnce,\n        LoopRepeat: LoopRepeat,\n        LoopPingPong: LoopPingPong,\n    }\n\n    constructor(object:Object3D) {\n        this.object = object;\n\n        this.actionsMap = this.getActionsMap();\n    }\n\n    /**\n     * 获取对象的AnimationActions。\n     * @returns AnimationAction Map.\n     */\n    getActionsMap():Map<string,  AnimationAction> {\n        const actionsMap = new Map<string,  AnimationAction>();\n        const animations = this.object.animations as unknown as AnimationAction[];\n        if (animations.length > 0) {\n            for (let animation of animations ) {\n                actionsMap.set(animation.getClip().name, animation);\n            }\n        }\n\n        return actionsMap;\n    }\n\n    /**\n     * 返回 AnimationAction，用于用户直接调用AnimationAction的方法。\n     * AnimationAction 文档：https://threejs.org/docs/index.html#api/zh/animation/AnimationAction\n     * @param name 动画名称。\n     * @returns AnimationAction | undefined\n     */\n    getAction(name:string):AnimationAction | undefined {\n        return this.actionsMap.get(name);\n    }\n\n    get actions():AnimationAction[] {\n        return Array.from(this.actionsMap.values());\n    }\n\n    /**\n     * 播放动画,支持链式调用\n     */\n    play(name:string, loop:AnimationActionLoopStyles = Animation.ActionLoop.LoopRepeat, timeScale:number = 1):Animation {\n        const action = this.actionsMap.get(name);\n        if (action) {\n            action.paused = false;\n            action.repetitions = this.repetitions;\n            action.loop = loop;\n            action.timeScale = timeScale;\n            action.play();\n\n            this.lastPlayAction = action;\n        }\n\n        return this;\n    }\n\n    /**\n     * 暂停动画，支持链式调用\n     */\n    pause(name:string | undefined):Animation {\n        if(name === undefined){\n            this.lastPlayAction && (this.lastPlayAction.paused = true);\n\n            return this;\n        }\n\n        const action = this.actionsMap.get(name);\n        if (action) {\n            action.paused = true;\n        }\n\n        return this;\n    }\n\n    /**\n     * 停止动画，支持链式调用\n     */\n    stop(name:string | undefined):Animation {\n        if (name === undefined) {\n            this.lastPlayAction &&this.lastPlayAction.stop();\n\n            this.lastPlayAction = undefined;\n            return this;\n        }\n\n        const action = this.actionsMap.get(name);\n        if (action) {\n            action.stop();\n        }\n\n        if (this.lastPlayAction === action) {\n            this.lastPlayAction = undefined;\n        }\n\n        return this;\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/script/Helper.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/4/24 10:39\n * @description 迁移App.ts中的一些方法（也有新增）提供脚本使用，因为脚本在运行态时执行，应该与原环境隔离\n */\nimport {Scene,Object3D} from \"three\";\nimport {Animation} from \"./Animation\";\n\nexport class Helper {\n    scene: Scene;\n\n    /* 动画 */\n    Animation: typeof Animation;\n\n    constructor(scene: Scene) {\n        this.scene = scene;\n\n        this.Animation = Animation;\n\n        // 注册一个资源管理类，用于管理资源的加载和释放\n\n        // 注册一个flyControls类，用于控制场景中的物体的飞行动画\n    }\n\n    /**\n     * 通过uuid获取对象\n     * @param uuid\n     * @returns THREE.Object3D\n     */\n    objectByUuid(uuid: string) {\n        return this.scene.getObjectByProperty('uuid', uuid);\n    }\n\n    /**\n     * 移动3D对象到指定位置\n     * @param object\n     * @param parent\n     * @param before\n     */\n    moveObject(object: Object3D, parent: Object3D, before: Object3D) {\n        if (parent === undefined) {\n            parent = this.scene;\n        }\n\n        parent.add(object);\n\n        // 对子数组进行排序\n        if (before !== undefined) {\n            const index = parent.children.indexOf(before);\n            parent.children.splice(index, 0, object);\n            parent.children.pop();\n        }\n    }\n\n    /**\n     * 移除对象\n     * @param object\n     */\n    removeObject(object: Object3D) {\n        if (object.parent === null) return;\n\n        // TODO 未处理材质的释放\n        object.parent.remove(object);\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/script/Source.ts",
    "content": "export const Source = `\n/**\n * @document http://editor-doc.astraljs.com/guide/component/h4v1bkyh/\n **/\n \nfunction loaded() {}\n`;"
  },
  {
    "path": "packages/sdk/lib/core/script/index.ts",
    "content": "export {Animation} from \"./Animation\";\nexport {Helper} from \"./Helper\";\nexport {Source} from \"./Source\";"
  },
  {
    "path": "packages/sdk/lib/core/shaderMaterial/ShaderMaterialManager.ts",
    "content": "import {ShaderMaterial, Vector2} from \"three\";\nimport {useAddSignal} from \"@/hooks\";\nimport {CircleGridShaderMaterial} from \"@/core/shaderMaterial/modules/CircleGridShaderMaterial\";\nimport {DynamicCheckerboardShaderMaterial} from \"@/core/shaderMaterial/modules/DynamicCheckerboardShaderMaterial\";\nimport {FlickerShaderMaterial} from \"@/core/shaderMaterial/modules/FlickerShaderMaterial\";\nimport {SlowSmokeShaderMaterial} from \"@/core/shaderMaterial/modules/SlowSmokeShaderMaterial\";\nimport {StreamerWallShaderMaterial} from \"@/core/shaderMaterial/modules/StreamerWallShaderMaterial\";\nimport { SnowingShaderMaterial } from \"@/core/shaderMaterial/modules/SnowingShaderMaterial\";\nimport App from \"@/core/app/App\";\n\ninterface IShaderMaterialClass {\n    Name: string,\n    _ShaderMaterial: ShaderMaterial,\n    Resolution?: Vector2,\n    Update: () => void,\n}\n\nexport class ShaderMaterialManager {\n    shaderMaterials: IShaderMaterialClass[] = [];\n    classMap: { [className: string]: string } = {};\n\n    constructor() {\n        useAddSignal(\"instantiateShaderMaterial\", (shaderMaterialClass: IShaderMaterialClass) => {\n            this.push(shaderMaterialClass);\n        })\n        useAddSignal(\"sceneResize\", (width: number, height: number) => {\n            const resolution = new Vector2(width, height);\n            this.shaderMaterials.forEach(sm => {\n                sm.Resolution = resolution;\n            })\n        })\n        useAddSignal(\"sceneLoadComplete\", () => {\n            this.init();\n        })\n    }\n\n    get needRender() {\n        return this.shaderMaterials.length > 0;\n    }\n\n    init() {\n        if(!App.metadata._ShaderMaterialClassMap) return;\n\n        this.classMap = App.metadata._ShaderMaterialClassMap;\n        if (this.classMap) {\n            for (let className in this.classMap) {\n                const material = App.materials[this.classMap[className]] as ShaderMaterial;\n\n                switch (className) {\n                    case \"CircleGridShaderMaterial\":\n                        CircleGridShaderMaterial.Material = material;\n                        this.shaderMaterials.push(CircleGridShaderMaterial);\n                        break;\n                    case \"DynamicCheckerboardShaderMaterial\":\n                        DynamicCheckerboardShaderMaterial.Material = material;\n                        this.shaderMaterials.push(DynamicCheckerboardShaderMaterial);\n                        break;\n                    case \"FlickerShaderMaterial\":\n                        FlickerShaderMaterial.Material = material;\n                        this.shaderMaterials.push(FlickerShaderMaterial);\n                        break;\n                    case \"SlowSmokeShaderMaterial\":\n                        SlowSmokeShaderMaterial.Material = material;\n                        this.shaderMaterials.push(SlowSmokeShaderMaterial);\n                        break;\n                    case \"StreamerWallShaderMaterial\":\n                        StreamerWallShaderMaterial.Material = material;\n                        this.shaderMaterials.push(StreamerWallShaderMaterial);\n                        break;\n                    case \"SnowingShaderMaterial\":\n                        SnowingShaderMaterial.Material = material;\n                        this.shaderMaterials.push(SnowingShaderMaterial);\n                        break;\n                }\n            }\n        }\n    }\n\n    push(sm: IShaderMaterialClass) {\n        this.shaderMaterials.push(sm);\n\n        this.classMap[sm.Name] = sm._ShaderMaterial.uuid;\n        App.metadata._ShaderMaterialClassMap = this.classMap;\n    }\n\n    update() {\n        for (let i = 0; i < this.shaderMaterials.length; i++) {\n            this.shaderMaterials[i].Update();\n        }\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/shaderMaterial/modules/CircleGridShaderMaterial.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/5/18 13:49\n * @description 圆网格着色器材质\n * @from https://www.shadertoy.com/view/7dG3zy\n */\nimport {DoubleSide, ShaderMaterial} from \"three\";\nimport {useDispatchSignal} from \"@/hooks\";\n\nconst vertex = `\nvarying vec2 vUv;\n\nvoid main () {\n    vUv = uv;\n    \n    // 从贴图中采样颜色值\n    // vec3 newPosition = normal*vec3(0,0,0)+position;\n    //gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0);\n    \n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n    `;\n\nconst fragment = /*glsl*/`\n// 片元着色器中所有浮点数精度为中精度\nprecision mediump float;\n\nvarying vec2 vUv;\nuniform float uTime;\n\nvec3 palette( float t ) {\n vec3 a = vec3(0.5, 0.5, 0.5);\n vec3 b = vec3(0.5, 0.5, 0.5);\n vec3 c = vec3(1.0, 1.0, 1.0);\n vec3 d = vec3(0.263,0.416,0.557);\n\n return a + b*cos( 6.28318*(c*t+d) );\n}\n\nvoid main() {\n    vec2 uv = vUv;\n    uv-=.5;  // 使坐标范围从-0.5到0.5\n    uv*=3.;  // 使坐标范围从-1.5到1.5\n    vec2 uv0 = uv;\n    vec3 finalColor = vec3(0.0);\n    \n    for (float i = 0.0; i < 4.0; i++) {\n        uv = fract(uv * 1.5) - 0.5;\n        float d = length(uv) * exp(-length(uv0));\n\n        vec3 col = palette(length(uv0) + i*.4 + uTime*.4);\n\n        d = sin(d*8. + uTime)/8.;\n        d = abs(d);\n\n        d = pow(0.01 / d, 1.2);\n\n        finalColor += col * d;\n    }\n \n  gl_FragColor = vec4(finalColor,1.);\n}\n    `;\n\nexport class CircleGridShaderMaterial {\n    static _ShaderMaterial: ShaderMaterial;\n    static Name = \"CircleGridShaderMaterial\";\n\n    static get Material() {\n        if (!CircleGridShaderMaterial._ShaderMaterial) {\n            CircleGridShaderMaterial.Init();\n        }\n        return CircleGridShaderMaterial._ShaderMaterial;\n    }\n\n    static set Material(value: ShaderMaterial) {\n        CircleGridShaderMaterial._ShaderMaterial = value;\n    }\n\n    static get PreviewMaterial() {\n        return CircleGridShaderMaterial.InstanceShaderMaterial();\n    }\n\n    static InstanceShaderMaterial(){\n        const material = new ShaderMaterial({\n            uniforms: {\n                uTime: {value: 1.0},\n            },\n            vertexShader: vertex,\n            fragmentShader: fragment,\n            side: DoubleSide,\n            transparent: true,\n        });\n        material.name = CircleGridShaderMaterial.Name;\n        return material;\n    }\n\n    static Init() {\n        CircleGridShaderMaterial._ShaderMaterial = CircleGridShaderMaterial.InstanceShaderMaterial();\n\n        useDispatchSignal(\"instantiateShaderMaterial\",CircleGridShaderMaterial);\n\n        return CircleGridShaderMaterial._ShaderMaterial;\n    }\n\n    static Update() {\n        if(!CircleGridShaderMaterial._ShaderMaterial) return;\n\n        CircleGridShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01\n    }\n\n    static UpdatePreview(previewMaterial: ShaderMaterial) {\n        previewMaterial.uniforms.uTime.value += .01\n    }\n}\n\n// export class  CircleGridShaderMaterial {\n//     static Instance: CircleGridShaderMaterial | null = null;\n//     shaderMaterial: ShaderMaterial | undefined;\n//     name = \"CircleGridShaderMaterial\";\n//\n//     constructor(reuse = true) {\n//         if(reuse && CircleGridShaderMaterial.Instance){\n//             return CircleGridShaderMaterial.Instance;\n//         }\n//\n//         this.shaderMaterial = new ShaderMaterial({\n//             uniforms: {\n//                 uTime: {value: 1.0},\n//             },\n//             vertexShader: vertex,\n//             fragmentShader: fragment,\n//             side: DoubleSide,\n//             transparent: true,\n//         });\n//\n//         useDispatchSignal(\"instantiateShaderMaterial\",this)\n//     }\n//\n//     update() {\n//         (this.shaderMaterial as ShaderMaterial).uniforms.uTime.value += .0001\n//     }\n// }\n\n\n"
  },
  {
    "path": "packages/sdk/lib/core/shaderMaterial/modules/DynamicCheckerboardShaderMaterial.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/5/18 13:49\n * @description 动态棋盘着色器材质\n * @from  https://glslsandbox.com/e#109552.0\n */\nimport {DoubleSide, ShaderMaterial} from \"three\";\nimport {useDispatchSignal} from \"@/hooks\";\n\nconst vertex = `\nvarying vec2 vUv;\n\nvoid main () {\n    vUv = uv;\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n    `;\n\nconst fragment = /*glsl*/`\n#ifdef GL_ES\nprecision mediump float;\n#endif\n\nvarying vec2 vUv;\nuniform float uTime;\n\nvoid main() {\n vec2 uv = vUv;\n\n float cycle = fract(uTime);\n\n vec2 grid = vec2(10, 10);\n vec2 position = (uv * grid) - vec2(cycle,0);\n\n float color = 0.0;\n \n if (mod(position.y,2.0) < 1.0) {\n  if (fract(position.x) < cycle) color = 1.0;\n } else {\n  if (fract(position.x) > cycle) color = 1.0;\n }\n \n if (mod(floor(uTime), 2.0) < 1.0) color = 1.0 - color;\n  \n gl_FragColor = vec4( color, color, color, 1.0 );\n}`;\n\nexport class DynamicCheckerboardShaderMaterial {\n    static _ShaderMaterial: ShaderMaterial;\n    static Name = \"DynamicCheckerboardShaderMaterial\";\n\n    static get Material() {\n        if (!DynamicCheckerboardShaderMaterial._ShaderMaterial) {\n            DynamicCheckerboardShaderMaterial.Init();\n        }\n        return DynamicCheckerboardShaderMaterial._ShaderMaterial;\n    }\n\n    static set Material(value: ShaderMaterial) {\n        DynamicCheckerboardShaderMaterial._ShaderMaterial = value;\n    }\n\n    static get PreviewMaterial() {\n        return DynamicCheckerboardShaderMaterial.InstanceShaderMaterial();\n    }\n\n    static InstanceShaderMaterial() {\n        const material = new ShaderMaterial({\n            uniforms:{\n                uTime: {\n                    value: 1.0\n                }\n            },\n            vertexShader: vertex,\n            fragmentShader: fragment,\n            side: DoubleSide,\n            transparent: true,\n        });\n        material.name = DynamicCheckerboardShaderMaterial.Name;\n        return material;\n    }\n\n    static Init() {\n        DynamicCheckerboardShaderMaterial._ShaderMaterial = DynamicCheckerboardShaderMaterial.InstanceShaderMaterial();\n\n        useDispatchSignal(\"instantiateShaderMaterial\", DynamicCheckerboardShaderMaterial);\n\n        return DynamicCheckerboardShaderMaterial._ShaderMaterial;\n    }\n\n    static Update() {\n        if(!DynamicCheckerboardShaderMaterial._ShaderMaterial) return;\n\n        DynamicCheckerboardShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01\n    }\n\n    static UpdatePreview(previewMaterial : ShaderMaterial) {\n        previewMaterial.uniforms.uTime.value += .01\n    }\n}\n\n"
  },
  {
    "path": "packages/sdk/lib/core/shaderMaterial/modules/FlickerShaderMaterial.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/5/18 13:49\n * @description 闪烁着色器材质\n */\nimport {DoubleSide, ShaderMaterial,Color} from \"three\";\nimport {useDispatchSignal} from \"@/hooks\";\n\nconst vertex = `\n     uniform float uTime;\n     uniform float uHeight;\n     varying float vOpacity;\n\n     void main() {\n         vec3 vPosition = position;\n         vOpacity = mix(1.0, 0.0, position.y / uHeight * 1.0) * (1.0 + sin(uTime) * 0.5);\n         gl_Position = projectionMatrix * modelViewMatrix * vec4(vPosition, 1);\n     }\n`;\n\nconst fragment = /*glsl*/`\n    uniform vec3 uColor;\n    uniform float uOpacity;\n    varying float vOpacity;\n    void main() {\n        gl_FragColor = vec4(uColor, vOpacity * uOpacity);\n    }\n`;\n\nexport class FlickerShaderMaterial{\n    static _ShaderMaterial: ShaderMaterial;\n    static Name = \"FlickerShaderMaterial\";\n\n    static get Material() {\n        if (!FlickerShaderMaterial._ShaderMaterial) {\n            FlickerShaderMaterial.Init();\n        }\n        return FlickerShaderMaterial._ShaderMaterial;\n    }\n\n    static set Material(value: ShaderMaterial) {\n        FlickerShaderMaterial._ShaderMaterial = value;\n    }\n\n    static get PreviewMaterial() {\n        return FlickerShaderMaterial.InstanceShaderMaterial();\n    }\n\n    static InstanceShaderMaterial(){\n        const material = new ShaderMaterial({\n            uniforms: {\n                uTime: {value: 1.0},\n                uHeight: {\n                    value: 10,\n                },\n                uOpacity: {\n                    value: 0.5,\n                },\n                uColor: {\n                    value: new Color(\"#00ffff\"),\n                }\n            },\n            vertexShader: vertex,\n            fragmentShader: fragment,\n            side: DoubleSide,\n            transparent: true\n        });\n        material.name = FlickerShaderMaterial.Name;\n        return material\n    }\n\n    static Init() {\n        FlickerShaderMaterial._ShaderMaterial = FlickerShaderMaterial.InstanceShaderMaterial();\n\n        useDispatchSignal(\"instantiateShaderMaterial\",FlickerShaderMaterial);\n\n        return FlickerShaderMaterial._ShaderMaterial;\n    }\n\n    static Update() {\n        if(!FlickerShaderMaterial._ShaderMaterial) return;\n\n        FlickerShaderMaterial._ShaderMaterial.uniforms.uTime.value += .02\n    }\n\n    static UpdatePreview(previewMaterial: ShaderMaterial) {\n        previewMaterial.uniforms.uTime.value += .02\n    }\n}\n\n\n"
  },
  {
    "path": "packages/sdk/lib/core/shaderMaterial/modules/SlowSmokeShaderMaterial.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/5/18 13:49\n * @description 动态烟着色器材质\n * @from https://glslsandbox.com/e#109550.0\n */\nimport {DoubleSide, ShaderMaterial, Vector2} from \"three\";\nimport {useDispatchSignal} from \"@/hooks\";\n\nconst vertex = `\nvarying vec2 vUv;\n\nvoid main () {\n    vUv = uv;\n    \n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}`;\n\nconst fragment = /*glsl*/`\n#ifdef GL_ES\nprecision highp float;\n#endif\n\n#define NUM_OCTAVES 6\n\nvarying vec2 vUv;\nuniform float uTime;\nuniform vec2 uResolution;\n\nmat3 rotX(float a) {\n    float c = cos(a);\n    float s = sin(a);\n    return mat3(\n        1, 0, 0,\n        0, c, -s,\n        0, s, c\n    );\n}\n\nmat3 rotY(float a) {\n    float c = cos(a);\n    float s = sin(a);\n    return mat3(\n        c, 0, -s,\n        0, 1, 0,\n        s, 0, c\n    );\n}\n\nfloat random(vec2 pos) {\n    return fract(sin(dot(pos.xy, vec2(13.9898, 78.233))) * 43758.5453123);\n}\n\nfloat noise(vec2 pos) {\n    vec2 i = floor(pos);\n    vec2 f = fract(pos);\n    float a = random(i + vec2(0.0, 0.0));\n    float b = random(i + vec2(1.0, 0.0));\n    float c = random(i + vec2(0.0, 1.0));\n    float d = random(i + vec2(1.0, 1.0));\n    vec2 u = f * f * (3.0 - 2.0 * f);\n    return mix(a, b, u.x) + (c - a) * u.y * (1.0 - u.x) + (d - b) * u.x * u.y;\n}\n\nfloat fbm(vec2 pos) {\n    float v = 0.0;\n    float a = 0.5;\n    vec2 shift = vec2(100.0);\n    mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.5));\n    for (int i = 0; i < NUM_OCTAVES; i++) {\n        float dir = mod(float(i), 2.0) > 0.5 ? 1.0 : -1.0;\n        v += a * noise(pos - 0.05 * dir * uTime);\n\n        pos = rot * pos * 2.0 + shift;\n        a *= 0.5;\n    }\n    return v;\n}\n\nvoid main(void) {\n    vec2 uv = vUv;\n    vec2 p = (uv * 3.0 - 1.0) * 0.5;\n    // 屏幕适配\n    if (uResolution.x > uResolution.y) {\n        p.x *= uResolution.x / uResolution.y;\n    } else {\n        p.y *= uResolution.y / uResolution.x;\n    }\n    \n    p -= vec2(12.0, 0.0);\n\n    float t = 0.0, d;\n\n    float time2 = 1.0;\n\n    vec2 q = vec2(0.0);\n    q.x = fbm(p + 0.00 * time2);\n    q.y = fbm(p + vec2(1.0));\n    vec2 r = vec2(0.0);\n    r.x = fbm(p + 1.0 * q + vec2(1.7, 1.2) + 0.15 * time2);\n    r.y = fbm(p + 1.0 * q + vec2(8.3, 2.8) + 0.126 * time2);\n    float f = fbm(p + r);\n\n    vec3 color = mix(\n        vec3(1.0, 1.0, 2.0),\n        vec3(1.0, 1.0, 1.0),\n        clamp((f * f) * 5.5, 1.2, 15.5)\n    );\n\n    color = mix(\n        color,\n        vec3(1.0, 1.0, 1.0),\n        clamp(length(q), 2.0, 2.0)\n    );\n\n    color = mix(\n        color,\n        vec3(0.3, 0.2, 1.0),\n        clamp(length(r.x), 0.0, 5.0)\n    );\n\n    color = (f * f * f * 1.0 + 0.5 * 1.7 * 0.0 + 0.9 * f) * color;\n\n    float alpha = 50.0 - max(pow(100.0 * distance(uv.x, -1.0), 0.0), pow(2.0 * distance(uv.y, 0.5), 5.0));\n    gl_FragColor = vec4(color * 100.0, color.r);\n    gl_FragColor = vec4(color, alpha * color.r);\n}\n    `;\n\nexport class SlowSmokeShaderMaterial {\n    static _ShaderMaterial: ShaderMaterial;\n    static Name = \"SlowSmokeShaderMaterial\";\n\n    static get Material() {\n        if (!SlowSmokeShaderMaterial._ShaderMaterial) {\n            SlowSmokeShaderMaterial.Init();\n        }\n        return SlowSmokeShaderMaterial._ShaderMaterial;\n    }\n\n    static set Material(value: ShaderMaterial) {\n        SlowSmokeShaderMaterial._ShaderMaterial = value;\n    }\n\n    static get PreviewMaterial() {\n        return SlowSmokeShaderMaterial.InstanceShaderMaterial();\n    }\n\n    static get Resolution() {\n        const viewportDom = document.getElementById(\"viewport\") as HTMLCanvasElement;\n        return new Vector2(viewportDom.offsetWidth || window.innerWidth, viewportDom.offsetHeight || window.innerHeight);\n    }\n\n    static set Resolution(value: Vector2) {\n        SlowSmokeShaderMaterial._ShaderMaterial.uniforms.uResolution.value.set(value.x, value.y);\n    }\n\n    static InstanceShaderMaterial() {\n        const material = new ShaderMaterial({\n            uniforms: {\n                uTime: {value: 1.0},\n                uResolution: {value: SlowSmokeShaderMaterial.Resolution},\n            },\n            vertexShader: vertex,\n            fragmentShader: fragment,\n            side: DoubleSide,\n            transparent: true,\n        });\n        material.name = SlowSmokeShaderMaterial.Name;\n        return material;\n    }\n\n    static Init() {\n        SlowSmokeShaderMaterial._ShaderMaterial = SlowSmokeShaderMaterial.InstanceShaderMaterial();\n\n        useDispatchSignal(\"instantiateShaderMaterial\", SlowSmokeShaderMaterial);\n\n        return SlowSmokeShaderMaterial._ShaderMaterial;\n    }\n\n    static Update() {\n        if(!SlowSmokeShaderMaterial._ShaderMaterial) return;\n\n        SlowSmokeShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01\n    }\n\n    static UpdatePreview(previewMaterial: ShaderMaterial) {\n        previewMaterial.uniforms.uTime.value += .01\n    }\n}\n\n\n"
  },
  {
    "path": "packages/sdk/lib/core/shaderMaterial/modules/SnowingShaderMaterial.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @description 下雪特效着色器\n */\nimport { ShaderChunk, ShaderMaterial, Vector2, Vector4, TextureLoader, RepeatWrapping, DoubleSide } from \"three\";\nimport { useDispatchSignal } from \"@/hooks\";\n\nconst vertex = `\n${ShaderChunk.common}\n${ShaderChunk.logdepthbuf_pars_vertex}\n\nvarying vec2 vUv;\nvarying vec3 vNormal;\n\nvoid main () {\n    vUv = uv;\n    vNormal = normalize(normalMatrix * normal);\n    \n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n    \n    ${ShaderChunk.logdepthbuf_vertex}\n}`;\n\nconst fragment = /*glsl*/`\n${ShaderChunk.logdepthbuf_pars_fragment}\n\nvarying vec2 vUv;\nvarying vec3 vNormal;\nuniform float uTime;\nuniform vec2 uResolution;\nuniform float uHasTexture;\nuniform vec4 uColor;\nuniform sampler2D uTexture;\nuniform sampler2D uNoiseMap;\n\nvec3 permute(vec3 x) { return mod(((x*34.0)+1.0)*x, 289.0); }\n\nfloat snoise(vec2 v){\n  const vec4 C = vec4(0.211324865405187, 0.366025403784439,\n           -0.577350269189626, 0.024390243902439);\n  vec2 i = floor(v + dot(v, C.yy));\n  vec2 x0 = v - i + dot(i, C.xx);\n  vec2 i1;\n  i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n  vec4 x12 = x0.xyxy + C.xxzz;\n  x12.xy -= i1;\n  i = mod(i, 289.0);\n  vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 )) + i.x + vec3(0.0, i1.x, 1.0 ));\n  vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);\n  m = m*m ;\n  m = m*m ;\n  vec3 x = 2.0 * fract(p * C.www) - 1.0;\n  vec3 h = abs(x) - 0.5;\n  vec3 ox = floor(x + 0.5);\n  vec3 a0 = x - ox;\n  m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\n  vec3 g;\n  g.x  = a0.x  * x0.x  + h.x  * x0.y;\n  g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n  return 130.0 * dot(m, g);\n}\n\n\nfloat fbm(vec3 uv,float _amp,float _min) {\n    float amp = _amp; \n    float f = 0.; \n    for(int x=0;x<3;x++) {\n      f+=(snoise(uv.xz)*0.5+0.5)*.25+.75 * amp; \n      amp*=_amp; \n      uv*=2.7; \n    }\n    return max(f,_min); \n}\n\nvoid main(void) {\n   vec2 uv = vUv;\n   \n   float _noise = fbm(vec3(uv.x*100.,0.0,uv.y*100.),0.47,0.2); // 噪声\n   \n   vec3 norm = vec3(0.0,1.0,0.0); \n    vec3 normalDistribution = vec3(1.0/_noise,_noise,1.0-_noise); \n    normalDistribution=normalDistribution*2.-1.; \n    vec3 newnorm = norm * normalDistribution; \n    newnorm = dot(newnorm,norm) < 0.0 ? -newnorm : newnorm; \n    \n    vec3 color = mix(vec3(_noise),vec3(0.529411765,0.8,1.0)*vec3(_noise),1.0-dot(newnorm,vec3(0.0,1.0,0.0))); \n    \n    // 面法线与Y轴的角度进行点乘\n    vec4 yAxis = normalize(viewMatrix * vec4(0.0, 1.0, 0.0, 0.0));\n    // 法线与y轴垂直时点积为0,snowThickness为0\n    float snowThickness = smoothstep(0.5, 1.0, abs(dot(vNormal, yAxis.xyz)));\n    \n    if(uHasTexture > 0.5) {\n      gl_FragColor = texture2D(uTexture,uv);\n     } else {\n      gl_FragColor = uColor;\n     }\n    \n    // snowScale 雪覆盖区域大小\n    // snowThickness *= 1.0 - clamp(texture2D(uNoiseMap, uv).r, 0.0, 1.0 - snowScale);\n    snowThickness *= 1.0 - clamp(texture2D(uNoiseMap, uv).r, 0.0, 1.0 - 0.8);\n    vec4 noiseColor = snowThickness * uTime * vec4(1.0, 1.0, 1.0, 1.0);\n    \n    if(snowThickness > 0.1) {\n      gl_FragColor = mix(noiseColor,gl_FragColor,clamp(fbm(vec3(uv.x*10.,0.0,uv.y*10.)*.5+.5,0.47,0.0)-sin(uTime*.5),0.0,1.0));\n    }else{\n      gl_FragColor += noiseColor; \n    }\n    \n    ${ShaderChunk.logdepthbuf_fragment}\n}`;\n\nexport class SnowingShaderMaterial {\n    static _ShaderMaterial: ShaderMaterial;\n    static Name = \"SnowingShaderMaterial\";\n\n    static get Material() {\n        if (!SnowingShaderMaterial._ShaderMaterial) {\n            SnowingShaderMaterial.Init();\n        }\n        return SnowingShaderMaterial._ShaderMaterial;\n    }\n\n    static set Material(value) {\n        SnowingShaderMaterial._ShaderMaterial = value;\n    }\n\n    static get PreviewMaterial() {\n        return SnowingShaderMaterial.InstanceShaderMaterial();\n    }\n\n    static get Resolution() {\n        return new Vector2(window.innerWidth, window.innerHeight);\n    }\n\n    static set Resolution(value) {\n        SnowingShaderMaterial._ShaderMaterial.uniforms.uResolution.value.set(value.x, value.y);\n    }\n\n    static InstanceShaderMaterial() {\n        const textureLoader = new TextureLoader();\n\n        const material = new ShaderMaterial({\n            uniforms: {\n                uTime: { value: 0.1 },\n                uResolution: { value: SnowingShaderMaterial.Resolution },\n                uNoiseMap: { value: null },\n                uTexture: { value: null },\n                uHasTexture: { value: 0.0 },\n                uColor: { value: new Vector4(1.0,1.0,1.0,1.0) }\n            },\n            vertexShader: vertex,\n            fragmentShader: fragment,\n            side: DoubleSide,\n            transparent: false,\n            depthTest: true,\n            depthWrite: true,\n            lights: false\n        });\n        material.name = SnowingShaderMaterial.Name;\n\n        textureLoader.load(new URL(import.meta.env.BASE_URL + 'resource/textures/noise.png', import.meta.url).href, (texture) => {\n            texture.wrapS = texture.wrapT = RepeatWrapping;\n            texture.repeat.set(1, 1);\n            material.uniforms.uNoiseMap.value = texture;\n        });\n\n        return material;\n    }\n\n    static Init() {\n        SnowingShaderMaterial._ShaderMaterial = SnowingShaderMaterial.InstanceShaderMaterial();\n\n        useDispatchSignal(\"instantiateShaderMaterial\", SnowingShaderMaterial);\n\n        return SnowingShaderMaterial._ShaderMaterial;\n    }\n\n    static Update() {\n        if (!SnowingShaderMaterial._ShaderMaterial) return;\n\n        SnowingShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01;\n    }\n\n    static UpdatePreview(previewMaterial: ShaderMaterial) {\n        previewMaterial.uniforms.uTime.value += .01\n    }\n}\n\n"
  },
  {
    "path": "packages/sdk/lib/core/shaderMaterial/modules/StreamerWallShaderMaterial.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/5/18 13:49\n * @description 流光墙着色器材质\n * @from http://t.csdnimg.cn/zSxq0\n */\nimport {DoubleSide, ShaderMaterial,RepeatWrapping,TextureLoader} from \"three\";\nimport {useDispatchSignal} from \"@/hooks\";\n\nconst vertex = `\n     varying vec2 vUv;\n     varying vec3 vPosition;\n     void main(){\n           vUv = uv;\n           vPosition = position;\n           vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n           gl_Position = projectionMatrix * mvPosition;\n     }\n`;\n\nconst fragment = /*glsl*/`\n    varying vec2 vUv;\n    uniform float uTime;\n    uniform sampler2D uFlowTexture;\n    uniform sampler2D uBgTexture;\n    void main( void ) {\n         vec2 position = vUv;\n         vec4 colorA = texture2D(uFlowTexture, vec2(vUv.x, fract(vUv.y - uTime)));\n         vec4 colorB = texture2D(uBgTexture, position.xy);\n         gl_FragColor = colorB + colorB * colorA;\n    }\n`;\n\nexport class StreamerWallShaderMaterial{\n    static _ShaderMaterial: ShaderMaterial;\n    static Name = \"StreamerWallShaderMaterial\";\n\n    static get Material() {\n        if (!StreamerWallShaderMaterial._ShaderMaterial) {\n            StreamerWallShaderMaterial.Init();\n        }\n        return StreamerWallShaderMaterial._ShaderMaterial;\n    }\n\n    static set Material(value: ShaderMaterial) {\n        StreamerWallShaderMaterial._ShaderMaterial = value;\n    }\n\n    static get PreviewMaterial() {\n        return StreamerWallShaderMaterial.InstanceShaderMaterial();\n    }\n\n    static InstanceShaderMaterial(){\n        const bgTexture = new TextureLoader().load(\"/static/images/resource/material/shader/texture2D/GradationBlue.png\");\n\n        const flowTexture = new TextureLoader().load(\"/static/images/resource/material/shader/texture2D/FlowTexture.png\");\n        flowTexture.wrapS = RepeatWrapping;\n\n        const material = new ShaderMaterial({\n            uniforms: {\n                uTime: {value: 0.0},\n                uFlowTexture: {value: flowTexture},\n                uBgTexture: {value: bgTexture}\n            },\n            vertexShader: vertex,\n            fragmentShader: fragment,\n            side: DoubleSide,\n            transparent: true,\n            depthTest: false,\n            depthWrite: false\n        });\n        material.name = StreamerWallShaderMaterial.Name;\n        return material;\n    }\n\n    static Init() {\n        StreamerWallShaderMaterial._ShaderMaterial = StreamerWallShaderMaterial.InstanceShaderMaterial();\n\n        useDispatchSignal(\"instantiateShaderMaterial\",StreamerWallShaderMaterial);\n\n        return StreamerWallShaderMaterial._ShaderMaterial;\n    }\n\n    static Update() {\n        if(!StreamerWallShaderMaterial._ShaderMaterial) return;\n\n        StreamerWallShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01\n    }\n\n    static UpdatePreview(previewMaterial: ShaderMaterial) {\n        previewMaterial.uniforms.uTime.value += .01\n    }\n}\n\n\n"
  },
  {
    "path": "packages/sdk/lib/core/shaderMaterial/modules/index.ts",
    "content": "export {CircleGridShaderMaterial} from \"./CircleGridShaderMaterial\";\nexport {DynamicCheckerboardShaderMaterial} from \"./DynamicCheckerboardShaderMaterial\";\nexport {FlickerShaderMaterial} from \"./FlickerShaderMaterial\";\nexport {SlowSmokeShaderMaterial} from \"./SlowSmokeShaderMaterial\";\nexport {SnowingShaderMaterial} from \"./SnowingShaderMaterial\";\nexport {StreamerWallShaderMaterial} from \"./StreamerWallShaderMaterial\";"
  },
  {
    "path": "packages/sdk/lib/core/tools/ClippedEdgesBox.ts",
    "content": "import {\n    Box3,\n    Vector3,\n    Mesh,\n    MeshBasicMaterial,\n    Vector2,\n    Raycaster,\n    Group,\n    LineSegments,\n    LineBasicMaterial,\n    Plane,\n    PlaneGeometry,\n    BackSide,\n    BufferGeometry,\n    Object3D\n} from \"three\";\nimport {useAddSignal, useDispatchSignal, useRemoveSignal} from \"@/hooks\";\nimport {isGroup} from \"@/utils\";\nimport Viewer from \"@/core/viewer/Viewer\";\nimport App from \"@/core/app/App\";\n\nlet objectSelectedFn;\n\n/**\n * 盒剖切\n * @param viewer\n * @param controls\n */\nclass ClippedEdgesBox {\n    // 最小剖切盒宽度\n    static MIN_WIDTH = 0.05;\n\n    private viewer: Viewer;\n    protected controls;\n\n    public isOpen: boolean = false;\n    protected sectionBox?: Box3;\n    protected lastSelected:Object3D | undefined = undefined;\n\n    constructor(viewer:Viewer) {\n        this.viewer = viewer;\n        this.controls = viewer.modules.controls;\n\n        // 开启模型对象的局部剪裁平面功能. 如果不设置为true，设置剪裁平面的模型不会被剪裁\n        this.viewer.renderer.localClippingEnabled = true;\n\n        objectSelectedFn = this.objectSelected.bind(this);\n    }\n\n    get domElement(){\n        return this.viewer.renderer.domElement;\n    }\n\n    /**\n     * 如果在构造函数中没有分配sectionBox，那么在这里设置它\n     */\n    protected setSectionBox() {\n        this.sectionBox = new Box3();\n\n        if (!App.selected) {\n            this.lastSelected = undefined;\n            this.sectionBox.expandByObject(this.viewer.scene)\n        } else {\n            this.lastSelected = App.selected;\n            this.sectionBox?.expandByObject(App.selected)\n        }\n    }\n\n    /**\n     * 切换选中模型\n     */\n    objectSelected(){\n        if(!this.isOpen) return;\n\n        this.reset();\n    }\n\n    /**\n     * 开始剖切\n     */\n    open() {\n        this.initSectionBox();\n        this.addMouseListener();\n        this.isOpen = true;\n\n        useAddSignal(\"objectSelected\", objectSelectedFn);\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    /**\n     * 关闭剖切\n     */\n    close() {\n        this.isOpen = false;\n        this.removeMouseListener();\n        this.clearSectionBox();\n\n        useRemoveSignal(\"objectSelected\", objectSelectedFn);\n        useDispatchSignal(\"sceneGraphChanged\")\n    }\n\n    /**\n     * 重置剖切\n     */\n    reset() {\n        this.close();\n        this.open();\n\n        useDispatchSignal(\"sceneGraphChanged\")\n    }\n\n    dispose() {\n        if(this.isOpen){\n            this.close();\n        }\n\n        objectSelectedFn = undefined;\n    }\n\n    // --------------- 剖切盒 --------------------\n\n    protected boxMin: Vector3 = new Vector3(); // 剖切盒最小点\n    protected boxMax: Vector3 = new Vector3(); // 剖切盒最大点\n    protected group: Group = new Group(); // 包含section的所有对象\n    protected planes: Array<Plane> = []; // 切面\n    protected vertices = [\n        new Vector3(), new Vector3(), new Vector3(), new Vector3(), // 顶部有4个顶点\n        new Vector3(), new Vector3(), new Vector3(), new Vector3() // 底部有4个顶点\n    ];\n\n    protected faces: Array<BoxFace> = [];\n    protected lines: Array<BoxLine> = [];\n\n    /**\n     * 初始化剖切盒\n     */\n    protected initSectionBox() {\n        this.setSectionBox();\n\n        // boxMin 与 boxMax 应增加内边距以免贴合\n        this.boxMin = (this.sectionBox as Box3).min.sub(new Vector3(0.05, 0.05, 0.05));\n        this.boxMax = (this.sectionBox as Box3).max.add(new Vector3(0.05, 0.05, 0.05));\n        this.group = new Group();\n        this.group.name = \"clippedEdgesBox\";\n        this.group.ignore = true;\n        this.initPlanes();\n        this.initOrUpdateVertices();\n        this.initOrUpdateFaces();\n        this.initOrUpdateLines();\n        this.viewer.scene.add(this.group);\n    }\n\n    /**\n     * 初始化剖切盒的六面\n     */\n    protected initPlanes() {\n        this.planes = [];\n        this.planes.push(\n            new Plane(new Vector3(0, -1, 0), this.boxMax.y), // up\n            new Plane(new Vector3(0, 1, 0), -this.boxMin.y), // down\n            new Plane(new Vector3(1, 0, 0), -this.boxMin.x), // left\n            new Plane(new Vector3(-1, 0, 0), this.boxMax.x), // right\n            new Plane(new Vector3(0, 0, -1), this.boxMax.z), // front\n            new Plane(new Vector3(0, 0, 1), -this.boxMin.z) // back\n        );\n\n        const setChildClippingPlanes = (child) => {\n            if ([\"Mesh\", \"LineSegments\"].includes(child.type)) {\n                child.material.clippingPlanes = this.planes;\n                child.material.clipIntersection = false;\n            }\n        }\n\n        if (!this.lastSelected) {\n            this.viewer.scene.traverseVisible(c => {\n                setChildClippingPlanes(c)\n            })\n        } else {\n            if (isGroup(this.lastSelected)) {\n                App.traverseMeshToArr(this.lastSelected).forEach(child => {\n                    setChildClippingPlanes(child)\n                })\n            } else {\n                setChildClippingPlanes(this.lastSelected)\n            }\n        }\n    }\n\n    protected updatePlanes() {\n        this.planes[0].constant = this.boxMax.y;\n        this.planes[1].constant = -this.boxMin.y;\n        this.planes[2].constant = -this.boxMin.x;\n        this.planes[3].constant = this.boxMax.x;\n        this.planes[4].constant = this.boxMax.z;\n        this.planes[5].constant = -this.boxMin.z;\n    }\n\n    /**\n     * 初始化或更新剖切盒的8个顶点\n     */\n    protected initOrUpdateVertices() {\n        this.vertices[0].set(this.boxMin.x, this.boxMax.y, this.boxMin.z); // 顶部的四个顶点\n        this.vertices[1].set(this.boxMax.x, this.boxMax.y, this.boxMin.z);\n        this.vertices[2].set(this.boxMax.x, this.boxMax.y, this.boxMax.z);\n        this.vertices[3].set(this.boxMin.x, this.boxMax.y, this.boxMax.z);\n        this.vertices[4].set(this.boxMin.x, this.boxMin.y, this.boxMin.z); // 底部的四个顶点\n        this.vertices[5].set(this.boxMax.x, this.boxMin.y, this.boxMin.z);\n        this.vertices[6].set(this.boxMax.x, this.boxMin.y, this.boxMax.z);\n        this.vertices[7].set(this.boxMin.x, this.boxMin.y, this.boxMax.z);\n    }\n\n    /**\n     * 初始化或更新剖切盒的6个面\n     */\n    protected initOrUpdateFaces() {\n        const v = this.vertices;\n        if (!this.faces || this.faces.length === 0) {\n            this.faces = [];\n            this.faces.push(\n                new BoxFace(\"yUp\", [v[0], v[1], v[2], v[3]]), // up\n                new BoxFace(\"yDown\", [v[4], v[7], v[6], v[5]]), // down\n                new BoxFace(\"xLeft\", [v[0], v[3], v[7], v[4]]), // left\n                new BoxFace(\"xRight\", [v[1], v[5], v[6], v[2]]), // right\n                new BoxFace(\"zFront\", [v[2], v[6], v[7], v[3]]), // front\n                new BoxFace(\"zBack\", [v[0], v[4], v[5], v[1]]) // back\n            );\n            this.group.add(...this.faces);\n            this.faces.forEach(face => {\n                this.group.add(face.backFace);\n            });\n        } else {\n            const f = this.faces;\n            f[0].setFromPoints([v[0], v[1], v[2], v[3]]);\n            f[1].setFromPoints([v[4], v[7], v[6], v[5]]);\n            f[2].setFromPoints([v[0], v[3], v[7], v[4]]);\n            f[3].setFromPoints([v[1], v[5], v[6], v[2]]);\n            f[4].setFromPoints([v[2], v[6], v[7], v[3]]);\n            f[5].setFromPoints([v[0], v[4], v[5], v[1]]);\n        }\n    }\n\n    /**\n     * 初始化或更新剖切盒的12条边\n     */\n    protected initOrUpdateLines() {\n        const v = this.vertices;\n        if (!this.lines || this.lines.length === 0) {\n            const f = this.faces;\n            if (!f) {\n                throw Error(\"需要先初始化面!\");\n            }\n            this.lines = [];\n            this.lines.push(\n                new BoxLine([v[0], v[1]], [f[0], f[5]]),\n                new BoxLine([v[1], v[2]], [f[0], f[3]]),\n                new BoxLine([v[2], v[3]], [f[0], f[4]]),\n                new BoxLine([v[3], v[0]], [f[0], f[2]]),\n                new BoxLine([v[4], v[5]], [f[1], f[5]]),\n                new BoxLine([v[5], v[6]], [f[1], f[3]]),\n                new BoxLine([v[6], v[7]], [f[1], f[4]]),\n                new BoxLine([v[7], v[4]], [f[1], f[2]]),\n                new BoxLine([v[0], v[4]], [f[2], f[5]]),\n                new BoxLine([v[1], v[5]], [f[3], f[5]]),\n                new BoxLine([v[2], v[6]], [f[3], f[4]]),\n                new BoxLine([v[3], v[7]], [f[2], f[4]])\n            );\n            this.group.add(...this.lines);\n        } else {\n            let i = 0;\n            this.lines[i++].setFromPoints([v[0], v[1]]);\n            this.lines[i++].setFromPoints([v[1], v[2]]);\n            this.lines[i++].setFromPoints([v[2], v[3]]);\n            this.lines[i++].setFromPoints([v[3], v[0]]);\n            this.lines[i++].setFromPoints([v[4], v[5]]);\n            this.lines[i++].setFromPoints([v[5], v[6]]);\n            this.lines[i++].setFromPoints([v[6], v[7]]);\n            this.lines[i++].setFromPoints([v[7], v[4]]);\n            this.lines[i++].setFromPoints([v[0], v[4]]);\n            this.lines[i++].setFromPoints([v[1], v[5]]);\n            this.lines[i++].setFromPoints([v[2], v[6]]);\n            this.lines[i++].setFromPoints([v[3], v[7]]);\n        }\n    }\n\n    /**\n     * 清除剖切盒\n     */\n    protected clearSectionBox() {\n        this.viewer.scene.remove(this.group);\n        this.domElement.style.cursor = \"\";\n        this.faces = [];\n        this.lines = [];\n\n        const setChildClippingPlanes = (child) => {\n            if ([\"Mesh\", \"LineSegments\"].includes(child.type)) {\n                child.material.clippingPlanes = [];\n            }\n        }\n\n        if (!this.lastSelected) {\n            this.viewer.scene.traverseVisible(c => {\n                setChildClippingPlanes(c);\n            })\n        } else {\n            if (isGroup(this.lastSelected)) {\n                App.traverseMeshToArr(this.lastSelected).forEach(child => {\n                    setChildClippingPlanes(child)\n                })\n            } else {\n                setChildClippingPlanes(this.lastSelected)\n            }\n        }\n    }\n\n    // ------------------- 指针事件 -----------------------\n\n    protected raycaster: Raycaster = new Raycaster();\n    protected mousePosition: Vector2 = new Vector2();\n    // 鼠标悬停的面激活\n    protected activeFace: BoxFace | null = null;\n\n    private addMouseListener() {\n        this.domElement.addEventListener(\"pointermove\", this.onMouseMove);\n        this.domElement.addEventListener(\"pointerdown\", this.onMouseDown);\n    }\n\n    private removeMouseListener() {\n        this.domElement.removeEventListener(\"pointermove\", this.onMouseMove);\n        this.domElement.removeEventListener(\"pointerdown\", this.onMouseDown);\n    }\n\n    /**\n     * 转换鼠标坐标，并更新光线投射\n     */\n    protected updateMouseAndRay(event: MouseEvent) {\n        this.mousePosition.setX((event.offsetX / this.domElement.offsetWidth) * 2 - 1);\n        this.mousePosition.setY(-(event.offsetY / this.domElement.offsetHeight) * 2 + 1);\n        this.raycaster.setFromCamera(this.mousePosition, this.viewer.camera);\n    }\n\n    /**\n     * 处理鼠标移动事件，正确高亮相应的面/线\n     */\n    protected onMouseMove = (event: MouseEvent) => {\n        this.updateMouseAndRay(event);\n        const intersects = this.raycaster.intersectObjects(this.faces); // 鼠标和面相交\n        if (intersects.length) {\n            this.domElement.style.cursor = \"pointer\";\n            const face = intersects[0].object as BoxFace;\n            if (face !== this.activeFace) {\n                if (this.activeFace) {\n                    this.activeFace.setActive(false);\n                }\n                face.setActive(true);\n                this.activeFace = face;\n            }\n        } else {\n            if (this.activeFace) {\n                this.activeFace.setActive(false);\n                this.activeFace = null;\n                this.domElement.style.cursor = \"auto\";\n            }\n        }\n    };\n\n    /**\n     * 处理鼠标按下事件，开始使用左键拖动一个面\n     */\n    protected onMouseDown = (event: MouseEvent) => {\n        const isLeftButton = event.button === 0;\n\n        if (this.activeFace && isLeftButton) {\n            this.updateMouseAndRay(event);\n            const intersects = this.raycaster.intersectObjects(this.faces);\n            if (intersects.length) {\n                const face = intersects[0].object as BoxFace;\n                const axis = face.axis;\n                const point = intersects[0].point;\n                this.drag.start(axis, point);\n            }\n        }\n    };\n\n    /**\n     * 拖动对象，用于处理面裁剪操作\n     */\n    protected drag = {\n        axis: \"\", // 要拖动的6轴之一\n        point: new Vector3(), // 记录拖动点的位置\n        ground: new Mesh(new PlaneGeometry(100000, 100000), new MeshBasicMaterial({\n            colorWrite: false,\n            depthWrite: false\n        })),\n        start: (axis: string, point: Vector3) => {\n            this.drag.axis = axis;\n            this.drag.point = point;\n            this.drag.initGround();\n            this.controls.enabled = false;\n            this.domElement.style.cursor = \"move\";\n\n            this.domElement.removeEventListener(\"pointermove\", this.onMouseMove);\n            this.domElement.addEventListener(\"pointermove\", this.drag.mousemove);\n            this.domElement.addEventListener(\"pointerup\", this.drag.mouseup);\n        },\n        end: () => {\n            this.viewer.scene.remove(this.drag.ground);\n            this.controls.enabled = true;\n            this.domElement.removeEventListener(\"pointermove\", this.drag.mousemove);\n            this.domElement.removeEventListener(\"pointerup\", this.drag.mouseup);\n            this.domElement.addEventListener(\"pointermove\", this.onMouseMove);\n        },\n        mousemove: (event: MouseEvent) => {\n            this.updateMouseAndRay(event);\n            const intersects = this.raycaster.intersectObject(this.drag.ground); // 鼠标与拖动地面的相交情况\n            if (intersects.length) {\n                this.drag.updateSectionBox(intersects[0].point);\n            }\n        },\n        mouseup: () => {\n            this.drag.end();\n        },\n        // 拖动时初始化参考平面，可以是XY, YZ, ZX平面\n        initGround: () => {\n            const normals: any = {\n                xLeft: new Vector3(-1, 0, 0),\n                xRight: new Vector3(1, 0, 0),\n                yDown: new Vector3(0, -1, 0),\n                yUp: new Vector3(0, 1, 0),\n                zBack: new Vector3(0, 0, -1),\n                zFront: new Vector3(0, 0, 1)\n            };\n            if ([\"xLeft\", \"xRight\"].includes(this.drag.axis)) {\n                this.drag.point.setX(0);\n            } else if ([\"yDown\", \"yUp\"].includes(this.drag.axis)) {\n                this.drag.point.setY(0);\n            } else if ([\"zBack\", \"zFront\"].includes(this.drag.axis)) {\n                this.drag.point.setZ(0);\n            }\n            this.drag.ground.position.copy(this.drag.point);\n            const newNormal = this.viewer.camera.position.clone()\n                .sub(this.viewer.camera.position.clone().projectOnVector(normals[this.drag.axis]))\n                .add(this.drag.point); // 得到平面的法线\n            this.drag.ground.lookAt(newNormal);\n            this.viewer.scene.add(this.drag.ground);\n        },\n        // 更新裁剪盒子的位置\n        updateSectionBox: (point: Vector3) => {\n            const minSize = ClippedEdgesBox.MIN_WIDTH; // 截面框的最小尺寸\n            switch (this.drag.axis) {\n                case \"yUp\": // up\n                    this.boxMax.setY(Math.max(this.boxMin.y + minSize, point.y));\n                    break;\n                case \"yDown\": // down\n                    this.boxMin.setY(Math.min(this.boxMax.y - minSize, point.y));\n                    break;\n                case \"xLeft\": // left\n                    this.boxMin.setX(Math.min(this.boxMax.x - minSize, point.x));\n                    break;\n                case \"xRight\": // right\n                    this.boxMax.setX(Math.max(this.boxMin.x + minSize, point.x));\n                    break;\n                case \"zFront\": // front\n                    this.boxMax.setZ(Math.max(this.boxMin.z + minSize, point.z));\n                    break;\n                case \"zBack\": // back\n                    this.boxMin.setZ(Math.min(this.boxMax.z - minSize, point.z));\n                    break;\n            }\n\n            // 更新剖切盒的平面、顶点、面和线\n            this.updatePlanes();\n            this.initOrUpdateVertices();\n            this.initOrUpdateFaces();\n            this.initOrUpdateLines();\n\n            useDispatchSignal(\"sceneGraphChanged\");\n        }\n    };\n}\n\n/**\n * 剖切盒的BoxLine\n */\nclass BoxLine extends LineSegments {\n    private normalMaterial = new LineBasicMaterial({color: 0x2ee3dc}); // 0x2ee3dc，线的正常颜色(原颜色:0xe1f2fb)\n    private activeMaterial = new LineBasicMaterial({color: 0x00fdec}); // 0x00fdec，线的激活颜色(原始颜色:0x00ffff)\n\n    /**\n     * @param vertices 一条直线上的两点\n     * @param faces 相对于一条线的两个面\n     */\n    constructor(vertices: Array<Vector3>, faces: Array<BoxFace>) {\n        super();\n        faces.forEach(face => face.lines.push(this)); // 保存面与线之间的关系\n        this.geometry = new BufferGeometry();\n        this.geometry.setFromPoints(vertices);\n        this.material = this.normalMaterial;\n    }\n\n    /**\n     * 更新 geometry\n     */\n    setFromPoints(vertices: Vector3[]) {\n        this.geometry.setFromPoints(vertices);\n    }\n\n    /**\n     * 设置为活动或非活动状态\n     * @param isActive\n     */\n    setActive(isActive: boolean) {\n        this.material = isActive ? this.activeMaterial : this.normalMaterial;\n    }\n}\n\n/**\n * 剖切盒的BoxFace\n */\nclass BoxFace extends Mesh {\n    axis: string;\n    lines: Array<BoxLine> = []; // 4条线相对于一个面\n    backFace: Mesh; // 背面:face的背面，用于显示\n\n    /**\n     * @param axis 面的轴\n     * @param vertices 面的四个点\n     */\n    constructor(axis: string, vertices: Array<Vector3>) {\n        super();\n        this.axis = axis;\n        this.lines = [];\n        this.geometry = new BufferGeometry();\n        this.geometry.setFromPoints(vertices);\n        this.geometry.setIndex([0, 3, 2, 0, 2, 1]);\n        this.geometry.computeVertexNormals();\n        this.material = new MeshBasicMaterial({colorWrite: false, depthWrite: false});\n        const backMaterial = new MeshBasicMaterial({color: 0x2ee3dc, transparent: true, opacity: 0.3, side: BackSide});\n        this.backFace = new Mesh(this.geometry, backMaterial);\n    }\n\n    /**\n     * 更新geometry\n     */\n    setFromPoints(vertices: Vector3[]) {\n        this.geometry.setFromPoints(vertices);\n    }\n\n    /**\n     * 设置为活动或非活动状态\n     * @param isActive\n     */\n    setActive(isActive: boolean) {\n        this.lines.forEach(line => {\n            line.setActive(isActive)\n        });\n    }\n}\n\nexport {ClippedEdgesBox};"
  },
  {
    "path": "packages/sdk/lib/core/tools/Export.ts",
    "content": "import {saveArrayBuffer, saveString, getAnimations, getAnimationClips} from '@/utils';\nimport App from \"@/core/app/App\";\n\nclass Export {\n    constructor() {\n    }\n\n    /*********************************导出物体*******************************************/\n    //导出为JSON\n    exportObjectToJSON() {\n        if(!App.selected) return;\n\n        const json = App.selected.toJSON();\n        let output:string;\n        try {\n            output = JSON.stringify(json, null, '\\t');\n            output = output.replace(/[\\n\\t]+([\\d\\.e\\-\\[\\]]+)/g, '$1');\n        } catch (e) {\n            output = JSON.stringify(json);\n        }\n\n        saveString(output, 'Astral3DModel.json');\n    }\n\n    // 导出为glb\n    async exportObjectToGlb() {\n        if(!App.selected) return;\n\n        const animations = getAnimationClips(App.selected);\n\n        const { GLTFExporter } = await import('three/examples/jsm/exporters/GLTFExporter.js');\n\n        const exporter = new GLTFExporter();\n\n        exporter.parse(\n            App.selected,\n            function (result) {\n                saveArrayBuffer(result, 'Astral3DModel.glb');\n            },\n            (err) => {\n                App.log.info(`导出物体为glb错误：${err.message}`)\n            },\n            { binary: true, animations: animations }\n        );\n    }\n\n    //导出为gltf\n    async exportObjectToGltf() {\n        if(!App.selected) return;\n\n        const animations = getAnimations();\n\n        const { GLTFExporter } = await import('three/examples/jsm/exporters/GLTFExporter.js');\n        const exporter = new GLTFExporter();\n\n        exporter.parse(\n            App.selected,\n            function (result) {\n                saveString(JSON.stringify(result, null, 2), 'Astral3DModel.gltf');\n            },\n            () => { },\n            { animations: animations }\n        );\n    }\n\n    //导出为obj\n    async exportObjectToObj() {\n        if(!App.selected) return;\n\n        const { OBJExporter } = await import('three/examples/jsm/exporters/OBJExporter.js');\n\n        const exporter = new OBJExporter();\n\n        saveString(exporter.parse(App.selected), 'Astral3DModel.obj');\n    }\n\n    //导出为ply\n    async exportObjectToPly() {\n        if(!App.selected) return;\n\n        const { PLYExporter } = await import('three/examples/jsm/exporters/PLYExporter.js');\n\n        const exporter = new PLYExporter();\n\n        exporter.parse(\n            App.selected,\n            function (result) {\n                saveArrayBuffer(result, 'Astral3DModel.ply');\n            },\n            {}\n        );\n    }\n\n    // 导出为ply二进制\n    async exportObjectToPlyBinary() {\n        if(!App.selected) return;\n\n        const { PLYExporter } = await import('three/examples/jsm/exporters/PLYExporter.js');\n\n        const exporter = new PLYExporter();\n\n        exporter.parse(\n            App.selected,\n            function (result) {\n                saveArrayBuffer(result, 'Astral3DModel-binary.ply');\n            },\n            { binary: true }\n        );\n    }\n\n    //导出为STL\n    async exportObjectToStl() {\n        if(!App.selected) return;\n\n        const { STLExporter } = await import('three/examples/jsm/exporters/STLExporter.js');\n\n        const exporter = new STLExporter();\n\n        saveString(exporter.parse(App.selected), 'Astral3DModel.stl');\n    }\n\n    //导出为STL(二进制)\n    async exportObjectToStlBinary() {\n        if(!App.selected) return;\n\n        const { STLExporter } = await import('three/examples/jsm/exporters/STLExporter.js');\n\n        const exporter = new STLExporter();\n\n        saveArrayBuffer(exporter.parse(App.selected, { binary: true }), 'Astral3DModel-binary.stl');\n    }\n\n    //导出为USDZ\n    async exportObjectToUSDZ() {\n        if(!App.selected) return;\n\n        const { USDZExporter } = await import('three/examples/jsm/exporters/USDZExporter.js');\n\n        const exporter = new USDZExporter();\n        saveArrayBuffer(await exporter.parseAsync(App.selected, {}), 'Astral3DModel.usdz');\n    }\n\n    /*********************************导出场景*******************************************/\n    //导出为JSON\n    exportSceneToJSON() {\n        const json = App.getSceneWithoutIgnore().toJSON();\n        let output:string;\n        try {\n            output = JSON.stringify(json, null, '\\t');\n            output = output.replace(/[\\n\\t]+([\\d\\.e\\-\\[\\]]+)/g, '$1');\n        } catch (e) {\n            output = JSON.stringify(json);\n        }\n\n        saveString(output, 'Astral3DScene.json');\n    }\n\n    // 导出为glb\n    async exportSceneToGlb(){\n        const animations = getAnimationClips();\n\n        const { GLTFExporter } = await import('three/examples/jsm/exporters/GLTFExporter.js');\n\n        const exporter = new GLTFExporter();\n\n        exporter.parse(\n            App.getSceneWithoutIgnore(),\n            function (result) {\n                saveArrayBuffer(result, 'Astral3DScene.glb');\n            },\n            () => {\n            },\n            { binary: true, animations: animations }\n        );\n    }\n\n    //导出为gltf\n    async exportSceneToGltf() {\n        const animations = getAnimations();\n\n        const {GLTFExporter} = await import('three/examples/jsm/exporters/GLTFExporter.js');\n        const exporter = new GLTFExporter();\n\n        exporter.parse(\n            App.getSceneWithoutIgnore(),\n            function (result) {\n                saveString(JSON.stringify(result, null, 2), 'Astral3DScene.gltf');\n            },\n            () => {},\n            {animations: animations}\n        );\n    }\n\n    //导出为obj\n    async exportSceneToObj() {\n        const { OBJExporter } = await import('three/examples/jsm/exporters/OBJExporter.js');\n\n        const exporter = new OBJExporter();\n\n        saveString(exporter.parse(App.getSceneWithoutIgnore()), 'Astral3DScene.obj');\n    }\n\n    //导出为ply\n    async exportSceneToPly() {\n        const {PLYExporter} = await import('three/examples/jsm/exporters/PLYExporter.js');\n\n        const exporter = new PLYExporter();\n\n        exporter.parse(\n            App.getSceneWithoutIgnore(),\n            function (result) {\n                saveArrayBuffer(result, 'Astral3DScene.ply');\n            },\n            {}\n        );\n    }\n\n    // 导出为ply二进制\n    async exportSceneToPlyBinary() {\n        const {PLYExporter} = await import('three/examples/jsm/exporters/PLYExporter.js');\n\n        const exporter = new PLYExporter();\n\n        exporter.parse(\n            App.getSceneWithoutIgnore(),\n            function (result) {\n                saveArrayBuffer(result, 'Astral3DScene-binary.ply');\n            },\n            {binary: true}\n        );\n    }\n\n    //导出为STL\n    async exportSceneToStl() {\n        const {STLExporter} = await import('three/examples/jsm/exporters/STLExporter.js');\n\n        const exporter = new STLExporter();\n\n        saveString(exporter.parse(App.getSceneWithoutIgnore()), 'Astral3DScene.stl');\n    }\n\n    //导出为STL(二进制)\n    async exportSceneToStlBinary() {\n        const {STLExporter} = await import('three/examples/jsm/exporters/STLExporter.js');\n\n        const exporter = new STLExporter();\n\n        saveArrayBuffer(exporter.parse(App.getSceneWithoutIgnore(), { binary: true }), 'Astral3DScene-binary.stl');\n    }\n\n    //导出为USDZ\n    async exportSceneToUSDZ() {\n        const {USDZExporter} = await import('three/examples/jsm/exporters/USDZExporter.js');\n\n        const exporter = new USDZExporter();\n        saveArrayBuffer(await exporter.parseAsync(App.getSceneWithoutIgnore(), {}), 'Astral3DScene.usdz');\n    }\n}\n\nexport {Export};\n"
  },
  {
    "path": "packages/sdk/lib/core/tools/Measure.ts",
    "content": "import * as THREE from \"three\";\nimport {CSS2DObject} from \"three/examples/jsm/renderers/CSS2DRenderer.js\";\nimport {useDispatchSignal} from \"@/hooks\";\nimport Viewer from \"@/core/viewer/Viewer\";\n\nexport interface MeasureEventMap{\n    /**\n     * 完成绘制触发\n     */\n    complete: {object: THREE.Group};\n}\n\nexport enum MeasureMode {\n    Distance = \"Distance\",\n    Area = \"Area\",\n    Angle = \"Angle\"\n}\n\nlet pdFn, pmFn, puFn, kdFn;\n\n/**\n * Measure class\n */\nclass Measure extends THREE.EventDispatcher<MeasureEventMap>{\n    static LINE_MATERIAL = new THREE.LineBasicMaterial({\n        color: 0xE63C17,\n        linewidth: 2,\n        opacity: 0.9,\n        transparent: true,\n        side: THREE.DoubleSide,\n        depthWrite: false,\n        depthTest: false\n    });\n    static MESH_MATERIAL = new THREE.MeshBasicMaterial({\n        color: 0x87cefa,\n        transparent: true,\n        opacity: 0.7,\n        side: THREE.DoubleSide,\n        depthWrite: false,\n        depthTest: false\n    });\n    // 标记点图片\n    static MARKER_TEXTURE = new URL(import.meta.env.BASE_URL + 'static/images/logo.png', import.meta.url).href;\n    static MAX_DISTANCE = 500; //当相交物体的距离太远时，忽略它\n    static OBJ_NAME = \"object_for_measure\";\n    static LABEL_NAME = \"label_for_measure\";\n\n    public isCompleted = true; // 测量操作是否完成\n    public isClose = true; // 测量操作是否已关闭(全销毁)\n    public mode: MeasureMode;\n    protected scene: THREE.Scene;\n    protected spriteMaterial?: THREE.SpriteMaterial;\n    protected raycaster?: THREE.Raycaster;\n    protected mouseMoved = false;\n    protected polyline?: THREE.Line; // 用户在测量时绘制的线的当前实例\n    protected faces?: THREE.Mesh; // 用于测量面积的当前实例\n    protected curve?: THREE.Line; // 用弧线表示角度\n    protected tempPointMarker?: THREE.Sprite; // 用于存储临时点\n    protected tempLine?: THREE.Line; // 用于存储临时线条，用于在鼠标移动时绘制线条/区域/角度\n    protected tempLabel?: CSS2DObject; // 用于在鼠标移动时存储临时标签,只有测量距离时才有\n    protected pointArray: THREE.Vector3[] = []; // 存储点\n    protected lastClickTime?: number; //保存上次点击时间，以便检测双击事件\n\n    protected viewer:Viewer;\n    // 所有测绘内容组\n    public measureGroup: THREE.Group;\n    // 当前测绘内容组\n    protected group: THREE.Group;\n\n    constructor(viewer:Viewer, mode: MeasureMode = MeasureMode.Distance) {\n        super();\n\n        this.mode = mode;\n        this.scene = viewer.scene;\n        this.viewer = viewer;\n\n        // 初始化group\n        this.measureGroup = new THREE.Group();\n        this.measureGroup.name = `measure_group`;\n        this.measureGroup.ignore = true;\n\n        this.group = new THREE.Group();\n\n        this.scene.add(this.measureGroup);\n\n        this.viewer.modules.dragControl.setMeasureInstance(this);\n    }\n\n    get domElement(): HTMLCanvasElement{\n        return this.viewer.renderer.domElement;\n    }\n\n    get canvas(): HTMLCanvasElement {\n        return this.domElement as HTMLCanvasElement;\n    }\n\n    addEvent() {\n        pdFn = this.mousedown.bind(this);\n        this.canvas.addEventListener(\"pointerdown\", pdFn);\n        pmFn = this.mousemove.bind(this);\n        this.canvas.addEventListener(\"pointermove\", pmFn);\n        puFn = this.mouseup.bind(this);\n        this.canvas.addEventListener(\"pointerup\", puFn);\n        kdFn = this.keydown.bind(this);\n        window.addEventListener(\"keydown\", kdFn);\n    }\n\n    removeEvent() {\n        this.canvas.removeEventListener(\"pointerdown\", pdFn);\n        pdFn = undefined;\n        this.canvas.removeEventListener(\"pointermove\", pmFn);\n        pmFn = undefined;\n        this.canvas.removeEventListener(\"pointerup\", puFn);\n        puFn = undefined;\n        window.removeEventListener(\"keydown\", kdFn);\n        kdFn = undefined;\n    }\n\n    // 开始测量\n    open() {\n        this.addEvent();\n\n        if (this.isClose) {\n            this.raycaster = new THREE.Raycaster();\n        }\n\n        // 重置\n        this.group = new THREE.Group();\n        this.group.name = `${Measure.OBJ_NAME}_group`;\n        this.group.userData = {\n            mode: this.mode\n        }\n        this.measureGroup.add(this.group);\n\n        // 当次绘制点\n        this.pointArray = [];\n\n        // 测量距离、面积和角度需要折线\n        this.polyline = this.createLine();\n        this.group.add(this.polyline as THREE.Object3D);\n\n        if (this.mode === MeasureMode.Area) {\n            this.faces = this.createFaces();\n            this.group.add(this.faces as THREE.Object3D);\n        }\n        this.isCompleted = false;\n        this.isClose = false;\n        this.domElement.style.cursor = \"crosshair\";\n\n        // 禁用拖拽控制器\n        this.viewer.modules.dragControl.dragControls.enabled = false;\n    }\n\n    // 重绘\n    redraw(point: THREE.Sprite) {\n        // 当次绘制点\n        this.pointArray = [];\n\n        (point.parent as THREE.Group).children.forEach(child => {\n            switch (child.userData.type) {\n                case \"measure-marker\":\n                    // 当前点正在操作，不加入\n                    if(child.uuid !== point.uuid) {\n                        this.pointArray[child.userData.pointIndex] = child.userData.point;\n                    }else{\n                        this.tempPointMarker = child as THREE.Sprite;\n                    }\n                    break;\n                case \"line\":\n                    this.polyline = child as THREE.Line;\n                    this.tempLine = this.createLine();\n                    this.scene.add(this.tempLine as THREE.Object3D);\n                    break;\n                case \"faces\":\n                    this.faces = child as THREE.Mesh;\n                    break;\n                case \"curve\":\n                    this.curve = child as THREE.Line;\n                    break;\n            }\n        })\n\n        // 重写move事件\n        pmFn = this.redrawMousemove.bind(this);\n        this.canvas.addEventListener(\"pointermove\", pmFn);\n\n        this.group = point.parent as THREE.Group;\n        this.isCompleted = false;\n        this.mode = this.group.userData.mode;\n    }\n\n    /**\n     * 结束测量,清空所有结果\n     */\n    clear() {\n        this.removeEvent();\n\n        this.clearTemp();\n\n        this.measureGroup.children.forEach(g => {\n            for (let i = g.children.length - 1; i >= 0; i--) {\n                const c = g.children[i];\n\n                if(c.userData.type == \"measure-marker\"){\n                    // 从拖拽控制器移除\n                    this.viewer.modules.dragControl.setDragObjects([c], \"remove\");\n                }\n\n                g.remove(c)\n            }\n        })\n        this.measureGroup.remove(...this.measureGroup.children);\n        this.polyline = undefined;\n        this.faces = undefined;\n        this.curve = undefined;\n\n        this.pointArray = [];\n        this.raycaster = undefined;\n\n        this.domElement.style.cursor = \"\";\n\n        this.isClose = true;\n\n        useDispatchSignal(\"sceneGraphChanged\")\n    }\n\n    /**\n     * 新版本threejs中，BufferGeometry.setFromPoints方法不在支持添加点位置，需要手动设置顶点属性\n     */\n    setFromPoints(geo: THREE.BufferGeometry, points: THREE.Vector3[]){\n        const position:number[] = [];\n\n        for ( let i = 0, l = points.length; i < l; i++) {\n            const point = points[ i ];\n            position.push(point.x, point.y, point.z);\n        }\n\n        geo.setAttribute('position', new THREE.Float32BufferAttribute(position, 3));\n    }\n\n    /**\n     * 初始化点标记材料\n     */\n    initPointMarkerMaterial() {\n        const markerTexture = new THREE.TextureLoader().load(Measure.MARKER_TEXTURE);\n        this.spriteMaterial = new THREE.SpriteMaterial({\n            map: markerTexture,\n            depthTest: false,  // 深度测试\n            depthWrite: false, // 深度写入\n            sizeAttenuation: false,\n            transparent: true,\n            opacity: 0.9\n        });\n    }\n\n    // 创建点标记\n    createPointMarker(position?: THREE.Vector3): THREE.Sprite {\n        if (!this.spriteMaterial) {\n            this.initPointMarkerMaterial();\n        }\n        const p = position;\n        const scale = 0.012;\n        const obj = new THREE.Sprite(this.spriteMaterial);\n        obj.scale.set(scale, scale, scale);\n        if (p) {\n            obj.position.set(p.x, p.y, p.z);\n        }\n        obj.name = Measure.OBJ_NAME;\n\n        obj.userData = {\n            mode: this.mode,\n            type: \"measure-marker\",\n        }\n        return obj;\n    }\n\n    /**\n     * Creates THREE.Line\n     */\n    private createLine(): THREE.Line {\n        const geom = new THREE.BufferGeometry();\n        const obj = new THREE.Line(geom, Measure.LINE_MATERIAL);\n        obj.frustumCulled = false;\n        obj.name = Measure.OBJ_NAME;\n        obj.userData = {\n            type: \"line\",\n        }\n        return obj;\n    }\n\n    /**\n     * Creates THREE.Mesh\n     */\n    private createFaces() {\n        const geom = new THREE.BufferGeometry();\n        const obj = new THREE.Mesh(geom, Measure.MESH_MATERIAL);\n\n        obj.frustumCulled = false;\n        obj.name = Measure.OBJ_NAME;\n        obj.userData = {\n            // 将点存储到userData中\n            vertices: [],\n            type: \"faces\",\n        }\n        return obj;\n    }\n\n    // 清除临时信息\n    clearTemp() {\n        this.tempPointMarker && this.scene.remove(this.tempPointMarker);\n        this.tempLine && this.scene.remove(this.tempLine as THREE.Object3D);\n        this.tempLabel && this.scene.remove(this.tempLabel);\n        this.tempPointMarker = undefined;\n        this.tempLine = undefined;\n        this.tempLabel = undefined;\n    }\n\n    // 完成绘制，不清空结果\n    complete() {\n        if (this.isCompleted) return;\n\n        useDispatchSignal(\"sceneGraphChanged\")\n\n        let clearPoints = false;\n        let clearPolyline = false;\n        // 为了测量面积，我们需要制作一个接近的表面，然后添加面积标签\n        const count = this.pointArray.length;\n        if (this.mode === MeasureMode.Area && this.polyline) {\n            if (count > 2) {\n                const p0 = this.pointArray[0];\n                this.setFromPoints(this.polyline.geometry, [...this.pointArray, p0]);\n\n                // 计算面积\n                const area = this.calculateArea(this.pointArray);\n                const label = `${this.numberToString(area)} ${this.getUnitString()}`;\n                const p = this.getBarycenter(this.pointArray);\n                const labelObj = this.createLabel(label);\n                labelObj.position.set(p.x, p.y, p.z);\n                labelObj.element.innerHTML = label;\n                this.group.add(labelObj);\n            } else {\n                clearPoints = true;\n                clearPolyline = true;\n            }\n        }\n        if (this.mode === MeasureMode.Distance) {\n            if (count < 2) {\n                clearPoints = true;\n            }\n        }\n        if (this.mode === MeasureMode.Angle && this.polyline) {\n            if (count >= 3) {\n                const p0 = this.pointArray[0];\n                const p1 = this.pointArray[1];\n                const p2 = this.pointArray[2];\n                const dir0 = new THREE.Vector3(p0.x - p1.x, p0.y - p1.y, p0.z - p1.z).normalize();\n                const dir1 = this.getAngleBisector(p0, p1, p2);\n                const dir2 = new THREE.Vector3(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z).normalize();\n                const angle = this.calculateAngle(p0, p1, p2);\n                const label = `${this.numberToString(angle)} ${this.getUnitString()}`;\n                const distance = Math.min(p0.distanceTo(p1), p2.distanceTo(p1));\n                let d = distance * 0.3; // distance from label to p1\n                let p = p1.clone().add(new THREE.Vector3(dir1.x * d, dir1.y * d, dir1.z * d)); // label's position\n                const labelObj = this.createLabel(label);\n                labelObj.position.set(p.x, p.y, p.z);\n                labelObj.element.innerHTML = label;\n                this.group.add(labelObj);\n\n                d = distance * 0.2; // 弧到p1的距离\n                p = p1.clone().add(new THREE.Vector3(dir1.x * d, dir1.y * d, dir1.z * d)); // 圆弧中间位置\n                const arcP0 = p1.clone().add(new THREE.Vector3(dir0.x * d, dir0.y * d, dir0.z * d));\n                const arcP2 = p1.clone().add(new THREE.Vector3(dir2.x * d, dir2.y * d, dir2.z * d));\n                this.curve = this.createCurve(arcP0, p, arcP2);\n                // 添加弧\n                this.group.add(this.curve as THREE.Object3D);\n            } else {\n                clearPoints = true;\n                clearPolyline = true;\n            }\n        }\n        // 无效的情况，清除此次的无用的对象\n        if (clearPoints) {\n            // 从this.measureGroup移除\n            this.measureGroup.remove(this.group);\n        }\n        if (clearPolyline && this.polyline) {\n            this.group.remove(this.polyline as THREE.Object3D);\n            this.polyline = undefined;\n        }\n        this.isCompleted = true;\n        this.domElement.style.cursor = \"\";\n\n        this.clearTemp();\n\n        useDispatchSignal(\"sceneGraphChanged\");\n\n        this.removeEvent();\n\n        // 启用拖拽控制器\n        this.viewer.modules.dragControl.dragControls.enabled = true;\n\n        this.dispatchEvent({type:\"complete\",object:this.group})\n    }\n\n    // 清除当前group label\n    clearCurrentLabel() {\n        for (let i = this.group.children.length - 1; i >=0 ; i--) {\n            const c = this.group.children[i];\n            if(c.userData.type === \"label\"){\n                this.group.remove(c);\n            }\n        }\n    }\n\n    // 获取按下对应三维位置\n    getClosestIntersection(e: MouseEvent){\n        const _point = new THREE.Vector2();\n        _point.x = e.offsetX / this.viewer.renderer.domElement.offsetWidth;\n        _point.y = e.offsetY / this.viewer.renderer.domElement.offsetHeight;\n\n        const intersects = this.viewer.getIntersects(_point);\n        if (intersects && intersects.length > 0) {\n            if (intersects.length > 0 && intersects[0].distance < Measure.MAX_DISTANCE) {\n                return intersects[0].point;\n            }\n        }\n        return null;\n    }\n\n    // 重绘监听鼠标移动\n    redrawMousemove(e: MouseEvent) {\n        let point = this.getClosestIntersection(e);\n\n        if (!point && this.tempPointMarker) {\n            this.tempPointMarker.position.set(this.tempPointMarker.userData.point.x, this.tempPointMarker.userData.point.y, this.tempPointMarker.userData.point.z);\n            return;\n        }\n\n        if (!point || !this.tempPointMarker) return;\n\n        // 在鼠标移动时绘制临时点\n        this.tempPointMarker.position.set(point.x, point.y, point.z);\n        this.tempPointMarker.userData.point = point;\n\n        // 当前点的索引\n        const cIndex = this.tempPointMarker.userData.pointIndex;\n\n        // 移动时绘制临时线\n        if (this.pointArray.length > 0) {\n            const line = this.tempLine || this.createLine();\n            const geom = line.geometry;\n            let startPoint = this.pointArray[cIndex + 1];\n            let lastPoint = this.pointArray[cIndex - 1];\n\n            // 如果是面积测量，且当前点是最后一个点或者第一个点\n            // 则需要重置其中一个点，才能有两条线拖动效果\n            if(this.mode === MeasureMode.Area){\n                if(!lastPoint){\n                    lastPoint = this.pointArray[this.pointArray.length - 1];\n                }else if(!startPoint){\n                    startPoint = this.pointArray[0];\n                }\n            }\n\n            if (startPoint && lastPoint) {\n                this.setFromPoints(geom, [lastPoint, point, startPoint]);\n            } else {\n                this.setFromPoints(geom,[startPoint || lastPoint, point]);\n            }\n        }\n    }\n\n    // 重绘完成\n    redrawComplete() {\n        if(!this.tempPointMarker) return;\n\n        const point = this.tempPointMarker.userData.point;\n        this.pointArray[this.tempPointMarker.userData.pointIndex] = point;\n        const count = this.pointArray.length;\n\n        if (this.polyline) {\n            this.setFromPoints(this.polyline.geometry,this.pointArray);\n            // 如果是距离测量，则清除group中已有的label，再重新创建\n            if (this.mode === MeasureMode.Distance && count > 1) {\n                this.clearCurrentLabel();\n                // 绘制label\n                for (let i = 0; i < count - 1; i++) {\n                    const p0 = this.pointArray[i];\n                    const p1 = this.pointArray[i + 1];\n                    if(!p0 || !p1) continue;\n                    const dist = p0.distanceTo(p1);\n                    const label = `${this.numberToString(dist)} ${this.getUnitString()}`;\n                    const position = new THREE.Vector3((p0.x + p1.x) / 2, (p0.y + p1.y) / 2, (p0.z + p1.z) / 2);\n                    const labelObj = this.createLabel(label);\n                    labelObj.position.set(position.x, position.y, position.z);\n                    labelObj.element.innerHTML = label;\n                    this.group.add(labelObj);\n                }\n            }\n        }\n\n        // 面积测量\n        if (this.mode === MeasureMode.Area && this.faces) {\n            const geom = this.faces.geometry as THREE.BufferGeometry;\n            const vertices = this.faces.userData.vertices;\n            // vertices.push(point);\n            vertices[this.tempPointMarker.userData.pointIndex] = point;\n            this.setFromPoints(geom,vertices);\n            const len = vertices.length;\n            if (len > 2) {\n                const indexArray:number[] = [];\n                for (let i = 1; i < len - 1; ++i) {\n                    indexArray.push(0, i, i + 1);\n                }\n                geom.setIndex(indexArray);\n                geom.computeVertexNormals();\n            }\n\n            // 移除原来的label,新的label会在complete中创建\n            this.clearCurrentLabel();\n        }\n\n        // 角度测量\n        if (this.mode === MeasureMode.Angle && this.curve) {\n            // 清除弧跟原来的label 会在complete中创建\n            this.group.remove(this.curve as THREE.Object3D);\n            this.clearCurrentLabel();\n        }\n\n        this.complete();\n    }\n\n    mousedown = () => {\n        this.mouseMoved = false;\n    };\n\n    // 鼠标移动，创建对应的临时点与线\n    mousemove = (e: MouseEvent) => {\n        if(this.isCompleted) return;\n\n        this.mouseMoved = true;\n\n        const point = this.getClosestIntersection(e);\n        if (!point) {\n            return;\n        }\n\n        // 在鼠标移动时绘制临时点\n        if (this.tempPointMarker) {\n            this.tempPointMarker.position.set(point.x, point.y, point.z);\n        } else {\n            this.tempPointMarker = this.createPointMarker(point);\n            this.scene.add(this.tempPointMarker);\n        }\n\n        // 移动时绘制临时线\n        if (this.pointArray.length > 0) {\n            const p0 = this.pointArray[this.pointArray.length - 1]; // 获取最后一个点\n            const line = this.tempLine || this.createLine();\n            const geom = line.geometry;\n            const startPoint = this.pointArray[0];\n            const lastPoint = this.pointArray[this.pointArray.length - 1];\n            if (this.mode === MeasureMode.Area) {\n                this.setFromPoints(geom,[lastPoint, point, startPoint]);\n            } else {\n                this.setFromPoints(geom,[lastPoint, point]);\n            }\n            if (this.mode === MeasureMode.Distance) {\n                const dist = p0.distanceTo(point);\n                const label = `${this.numberToString(dist)} ${this.getUnitString()}`;\n                const position = new THREE.Vector3((point.x + p0.x) / 2, (point.y + p0.y) / 2, (point.z + p0.z) / 2);\n                this.addOrUpdateTempLabel(label, position);\n            }\n            // tempLine 只需添加到场景一次\n            if (!this.tempLine) {\n                this.scene.add(line as THREE.Object3D);\n                this.tempLine = line;\n            }\n        }\n\n        useDispatchSignal(\"sceneGraphChanged\")\n    };\n\n    mouseup = (e: MouseEvent) => {\n        // 如果mouseMoved是true，那么它可能在移动，而不是点击\n        if (!this.mouseMoved) {\n            // 右键点击表示完成绘图操作\n            if (e.button === 2) {\n                this.complete();\n            } else if (e.button === 0) { // 左键点击表示添加点\n                this.onMouseClicked(e);\n            }\n        }\n    };\n\n    onMouseClicked = (e: MouseEvent) => {\n        if (!this.raycaster || !this.viewer.camera || !this.scene || this.isCompleted) {\n            return;\n        }\n\n        const point =this.getClosestIntersection(e);\n        if (!point) {\n            return;\n        }\n\n        // 双击触发两次点击事件，我们需要避免这里的第二次点击\n        const now = Date.now();\n        if (this.lastClickTime && (now - this.lastClickTime < 100)) return;\n\n        this.lastClickTime = now;\n\n        this.pointArray.push(point);\n        const count = this.pointArray.length;\n        const marker = this.createPointMarker(point);\n        marker.userData.point = point;\n        marker.userData.pointIndex = count - 1;\n        this.group.add(marker);\n        // 把点加入拖拽控制器\n        this.viewer.modules.dragControl.setDragObjects([marker], \"push\");\n\n        if (this.polyline) {\n            this.setFromPoints(this.polyline.geometry, this.pointArray);\n            if (this.tempLabel && count > 1) {\n                const p0 = this.pointArray[count - 2];\n                this.tempLabel.position.set((p0.x + point.x) / 2, (p0.y + point.y) / 2, (p0.z + point.z) / 2);\n                this.group.add(this.tempLabel);\n\n                // 创建距离测量线时，此处的 临时label 将作为正式的使用，不在this.clearTemp()中清除，故置为undefined\n                this.tempLabel = undefined;\n            }\n        }\n        if (this.mode === MeasureMode.Area && this.faces) {\n            const geom = this.faces.geometry as THREE.BufferGeometry;\n            const vertices = this.faces.userData.vertices;\n            vertices.push(point);\n            this.setFromPoints(geom,vertices);\n            const len = vertices.length;\n            if (len > 2) {\n                const indexArray:number[] = [];\n                for (let i = 1; i < len - 1; ++i) {\n                    indexArray.push(0, i, i + 1);\n                }\n                geom.setIndex(indexArray);\n                geom.computeVertexNormals();\n\n                this.clearCurrentLabel();\n                const p0 = this.pointArray[0];\n                this.setFromPoints(geom, [...this.pointArray, p0]);\n                // 计算面积\n                const area = this.calculateArea(this.pointArray);\n                const label = `${this.numberToString(area)} ${this.getUnitString()}`;\n                const p = this.getBarycenter(this.pointArray);\n                const labelObj = this.createLabel(label);\n                labelObj.position.set(p.x, p.y, p.z);\n                labelObj.element.innerHTML = label;\n                this.group.add(labelObj);\n            }\n        }\n        // 创建角度测量时，三个点完成\n        if (this.mode === MeasureMode.Angle && this.pointArray.length % 3 === 0) {\n            this.complete();\n        }\n\n        useDispatchSignal(\"sceneGraphChanged\");\n    };\n\n    keydown = (e: KeyboardEvent) => {\n        if (e.key === \"Enter\") {\n            this.complete();\n        }\n    };\n\n    /**\n     * 添加或更新临时标签和位置\n     */\n    addOrUpdateTempLabel(label: string, position: THREE.Vector3) {\n        if (!this.tempLabel) {\n            this.tempLabel = this.createLabel(label);\n            this.scene.add(this.tempLabel);\n        }\n        this.tempLabel.position.set(position.x, position.y, position.z);\n        this.tempLabel.element.innerHTML = label;\n    }\n\n    /**\n     * 创建标签\n     */\n    createLabel(text: string): CSS2DObject {\n        const div = document.createElement(\"div\");\n        div.className = 'css2dObjectLabel';\n        div.innerHTML = text;\n        div.style.padding = \"5px 8px\";\n        div.style.color = \"#fff\";\n        div.style.fontSize = \"14px\";\n        div.style.position = \"absolute\";\n        div.style.backgroundColor = \"rgba(25, 25, 25, 0.3)\";\n        div.style.borderRadius = \"12px\";\n        div.style.top = \"0px\";\n        div.style.left = \"0px\";\n        // div.style.pointerEvents = 'none' //避免HTML元素影响场景的鼠标事件\n        const obj = new CSS2DObject(div);\n        obj.name = Measure.LABEL_NAME;\n        obj.userData = {\n            type: \"label\"\n        }\n        return obj;\n    }\n\n    /**\n     * 创建圆弧曲线以表示角度\n     */\n    createCurve(p0: THREE.Vector3, p1: THREE.Vector3, p2: THREE.Vector3) {\n        const curve = new THREE.QuadraticBezierCurve3(p0, p1, p2);\n        const points = curve.getPoints(4);\n        const geometry = new THREE.BufferGeometry();\n        this.setFromPoints(geometry,points)\n        const obj = new THREE.Line(geometry, Measure.LINE_MATERIAL);\n        obj.name = Measure.OBJ_NAME;\n        obj.userData = {\n            type: \"curve\"\n        }\n        return obj;\n    }\n\n    /**\n     * 计算区域\n     * TODO: 对于凹多边形，数值不对，需要修正\n     * @param points\n     */\n    calculateArea(points: THREE.Vector3[]) {\n        let area = 0;\n        for (let i = 0, j = 1, k = 2; k < points.length; j++, k++) {\n            const a = points[i].distanceTo(points[j]);\n            const b = points[j].distanceTo(points[k]);\n            const c = points[k].distanceTo(points[i]);\n            const p = (a + b + c) / 2;\n            area += Math.sqrt(p * (p - a) * (p - b) * (p - c));\n        }\n        return area;\n    }\n\n    /**\n     * 以度表示两条直线的夹角\n     */\n    calculateAngle(startPoint: THREE.Vector3, middlePoint: THREE.Vector3, endPoint: THREE.Vector3) {\n        const p0 = startPoint;\n        const p1 = middlePoint;\n        const p2 = endPoint;\n        const dir0 = new THREE.Vector3(p0.x - p1.x, p0.y - p1.y, p0.z - p1.z);\n        const dir1 = new THREE.Vector3(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z);\n        const angle = dir0.angleTo(dir1);\n        return angle * 180 / Math.PI; // convert to degree\n    }\n\n    /**\n     * 获取两条线的角平分线\n     */\n    getAngleBisector(startPoint: THREE.Vector3, middlePoint: THREE.Vector3, endPoint: THREE.Vector3): THREE.Vector3 {\n        const p0 = startPoint;\n        const p1 = middlePoint;\n        const p2 = endPoint;\n        const dir0 = new THREE.Vector3(p0.x - p1.x, p0.y - p1.y, p0.z - p1.z).normalize();\n        const dir2 = new THREE.Vector3(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z).normalize();\n        return new THREE.Vector3(dir0.x + dir2.x, dir0.y + dir2.y, dir0.z + dir2.z).normalize(); // the middle direction between dir0 and dir2\n    }\n\n    /**\n     * 得到点的重心\n     */\n    getBarycenter(points: THREE.Vector3[]): THREE.Vector3 {\n        const l = points.length;\n        let x = 0;\n        let y = 0;\n        let z = 0;\n        points.forEach(p => {\n            x += p.x;\n            y += p.y;\n            z += p.z\n        });\n        return new THREE.Vector3(x / l, y / l, z / l);\n    }\n\n    /**\n     * 获取距离、面积或角度的单位字符串\n     */\n    getUnitString() {\n        if (this.mode === MeasureMode.Distance) return \"m\";\n        if (this.mode === MeasureMode.Area) return \"m²\";\n        if (this.mode === MeasureMode.Angle) return \"°\";\n        return \"\";\n    }\n\n    /**\n     * 将数字转换为具有适当分数数字的字符串\n     */\n    numberToString(num: number) {\n        if (num < 0.0001) {\n            return num.toString();\n        }\n        let fractionDigits = 2;\n        if (num < 0.01) {\n            fractionDigits = 4;\n        } else if (num < 0.1) {\n            fractionDigits = 3;\n        }\n        return num.toFixed(fractionDigits);\n    }\n\n    dispose(): void {\n        this.clear();\n    }\n}\n\nexport {Measure};"
  },
  {
    "path": "packages/sdk/lib/core/tools/MiniMap-20240823.ts",
    "content": "import * as THREE from \"three\";\nimport {MapControls} from \"three/examples/jsm/controls/MapControls.js\";\n\ninterface IMiniMapOptions {\n    domElement?: HTMLElement;\n}\n\nlet onPointerDownFn;\n\n\nexport class MiniMap {\n    private viewport;\n    private mapControl: MapControls;\n    private domElement: HTMLElement;\n    private miniMapRenderer: THREE.WebGLRenderer;\n    private miniMapCamera: THREE.PerspectiveCamera;\n\n    raycaster = new THREE.Raycaster()\n\n    constructor(viewport,options:IMiniMapOptions = {}) {\n        this.viewport = viewport;\n\n        this.domElement = options.domElement || this.createDomElement();\n        viewport.container.appendChild(this.domElement);\n\n        const {renderer, camera} = this.init();\n        this.miniMapRenderer = renderer;\n        this.miniMapCamera = camera;\n\n        this.mapControl = this.initControls();\n\n        this.initEvent();\n\n        this.miniMapRenderer.setAnimationLoop(this.miniMapAnimation.bind(this));\n    }\n\n    createDomElement(){\n        const domElement = document.createElement(\"div\");\n        domElement.setAttribute(\"id\", \"es-3d-mini-map\");\n        domElement.style.position = \"absolute\";\n        domElement.style.top = \"10px\";\n        domElement.style.right = \"10px\";\n        domElement.style.width = \"250px\";\n        domElement.style.height = \"250px\";\n        domElement.style.boxShadow = \"0px 0px 5px #000\";\n\n        return domElement;\n    }\n\n    /**\n     * 为小地图准备专门的 渲染器 + 摄像机\n     */\n    init(){\n        const miniMapRenderer = new THREE.WebGLRenderer({antialias:true});\n        miniMapRenderer.setSize(this.domElement.clientWidth, this.domElement.clientHeight);\n        this.domElement.appendChild(miniMapRenderer.domElement);\n        miniMapRenderer.setClearColor(0xffffff);\n\n        const miniMapCamera = new THREE.PerspectiveCamera(\n            45,\n            this.domElement.clientWidth / this.domElement.clientHeight,\n            0.1,\n            1000\n        )\n        miniMapCamera.position.set(0, 50, 0)\n        miniMapCamera.lookAt(0,0,0);\n\n        return {\n            renderer: miniMapRenderer,\n            camera: miniMapCamera\n        }\n    }\n\n    initControls() {\n        const controls = new MapControls(this.miniMapCamera, this.miniMapRenderer.domElement);\n        controls.enableDamping = true;\n        controls.dampingFactor = 0.05;\n        controls.enableZoom = false;\n\n        return controls;\n    }\n\n    initEvent(){\n        onPointerDownFn = this.onPointerDown.bind(this);\n        this.domElement.addEventListener(\"pointerdown\", onPointerDownFn);\n    }\n\n    onPointerDown(e: PointerEvent){\n        const mousePosition = new THREE.Vector2()\n\n        let x = e.offsetX\n        let y  = e.offsetY\n        mousePosition.x = ((x / this.domElement.clientWidth) * 2) - 1;\n        mousePosition.y = -((y / this.domElement.clientHeight) * 2) + 1;\n\n        this.raycaster.setFromCamera(mousePosition, this.miniMapCamera);\n        let intersections = this.raycaster.intersectObject(this.viewport.scene, true);\n\n        if(intersections[0]){\n            const point = intersections[0].point;\n\n            // this.miniMapCamera.position.set(point.x, 8, point.z);\n            this.viewport.modules.controls.target.set(point.x, 0, point.z);\n        }\n    }\n\n    miniMapAnimation(){\n        this.miniMapRenderer.render(this.viewport.scene, this.miniMapCamera)\n    }\n\n    update(){\n        this.mapControl.update();\n    }\n\n    dispose(){\n        this.mapControl.dispose();\n        this.miniMapRenderer.dispose();\n        this.domElement.removeChild(this.miniMapRenderer.domElement);\n\n        this.domElement.removeEventListener(\"pointerdown\", onPointerDownFn);\n        onPointerDownFn = null;\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/tools/MiniMap.ts",
    "content": "import {MathUtils, OrthographicCamera, PerspectiveCamera, Scene, WebGLRenderer,Object3D} from \"three\";\nimport Viewer from \"@/core/viewer/Viewer\";\n\ninterface IMiniMapOptions {\n    mapSize: number,  // 决定了摄像机看到的内容大小, mapSize * mapSize 大小内容\n    mapRenderSize: number,  // 决定了小地图2D平面的大小\n    followTarget:Object3D, // 小地图画面主要跟随对象\n    isShow: boolean // 是否显示小地图\n}\n\nclass MiniMap {\n    _miniMapCamera: OrthographicCamera | PerspectiveCamera | null = null;\n    _miniMapRenderer: WebGLRenderer | null = null;\n    _followTarget: Object3D;\n\n    private scene: Scene;\n    private sceneHelpers: Scene;\n    private mapRenderSize: number;\n    // @ts-ignore\n    public dom: HTMLDivElement;\n\n    isShow: boolean = false;\n\n    constructor(viewer:Viewer, options:IMiniMapOptions) {\n        this.scene = viewer.scene;\n        this.sceneHelpers = viewer.sceneHelpers;\n        this.mapRenderSize = options.mapRenderSize;\n        this._followTarget = options.followTarget;\n        this.isShow = options.isShow;\n\n        if (!this.scene) {\n            throw new Error(\"scene不能为空\");\n        }\n        if (!this._followTarget) {\n            throw new Error(\"target不能为空，表示小地图画面主要跟随对象\");\n        }\n\n        this.dom = this.createDomElement();\n        viewer.container.appendChild(this.dom);\n\n        // 初始化小地图相机\n        this._miniMapCamera = new OrthographicCamera(\n            -options.mapSize / 2,\n            options.mapSize / 2,\n            options.mapSize / 2,\n            -options.mapSize / 2,\n            1, 100 * 1000\n        );\n\n        // 更新地图相机位置和朝向\n        this.updateCamera();\n    }\n\n    createDomElement() {\n        // 初始化小地图渲染器\n        const mapRenderer = new WebGLRenderer({alpha: true});\n        mapRenderer.setSize(this.mapRenderSize, this.mapRenderSize);\n        // mapRenderer.setClearColor(0x7d684f);\n        mapRenderer.shadowMap.enabled = false;\n        mapRenderer.autoClear = false;\n        this._miniMapRenderer = mapRenderer;\n\n        const pDiv = document.createElement(\"div\");\n        pDiv.id = \"es-3d-mini-map\";\n        pDiv.style.position = \"absolute\";\n        pDiv.style.right = \"10px\";\n        pDiv.style.top = \"10px\";\n        pDiv.style.zIndex = \"1001\";\n        pDiv.style.border = \"1px solid #FFF\";\n        pDiv.style.background = \"rgba(0, 0, 0, 0.40)\";\n        pDiv.style.width = this.mapRenderSize - 100 + \"px\";\n        pDiv.style.height = this.mapRenderSize - 100 + \"px\";\n        pDiv.style.overflow = \"hidden\";\n        pDiv.style.display = this.isShow ? \"block\" : \"none\";\n\n        mapRenderer.domElement.style.transform = `rotateZ(0deg)`;\n        mapRenderer.domElement.style.width = this.mapRenderSize + \"px\";\n        mapRenderer.domElement.style.height = this.mapRenderSize + \"px\";\n        mapRenderer.domElement.style.position = \"absolute\";\n        mapRenderer.domElement.style.left = \"-50px\";\n        mapRenderer.domElement.style.top = \"-50px\";\n\n        pDiv.appendChild(mapRenderer.domElement);\n\n        return pDiv;\n    }\n\n    open(){\n        this.dom.style.display = \"block\";\n        this.isShow = true;\n    }\n\n    close(){\n        this.dom.style.display = \"none\";\n        this.isShow = false;\n    }\n\n    updateCamera() {\n        // 更新小地图css旋转角度，与玩家同步\n        let targetRotateY = MathUtils.radToDeg(this._followTarget.rotation.y - Math.PI);\n        (this._miniMapRenderer as WebGLRenderer).domElement.style.transform = `rotateZ(${targetRotateY}deg)`;\n\n        // 更新地图相机位置和朝向\n        let targetPos = this._followTarget.position;\n        (this._miniMapCamera as OrthographicCamera).position.set(\n            targetPos.x,\n            targetPos.y + 10,\n            targetPos.z\n        );\n        (this._miniMapCamera as OrthographicCamera).lookAt(targetPos.x, 2, targetPos.z);\n    }\n\n    update() {\n        // 更新地图相机位置和朝向\n        this.updateCamera();\n\n        const renderer = this._miniMapRenderer as WebGLRenderer;\n\n        renderer.autoClear = false;\n\n        // 渲染小地图\n        renderer.render(this.scene, this._miniMapCamera as OrthographicCamera);\n\n        renderer.render(this.sceneHelpers, this._miniMapCamera as OrthographicCamera);\n\n        renderer.autoClear = true;\n    }\n}\n\nexport {MiniMap}"
  },
  {
    "path": "packages/sdk/lib/core/tools/ModelExplode.ts",
    "content": "/**\n * 模型爆炸展开\n */\nimport * as THREE from 'three';\nimport {useDispatchSignal} from \"@/hooks\";\n\ninterface IModelExplodeData {\n    // 爆炸方向\n    worldDir: THREE.Vector3;\n    // 爆炸距离：mesh中心点到爆炸中心的距离\n    worldDistance:THREE.Vector3;\n    // 原始坐标\n    originPosition:THREE.Vector3;\n    // mesh中心\n    meshCenter:THREE.Vector3;\n    // 爆炸中心\n    explodeCenter:THREE.Vector3;\n}\n\nclass ModelExplode{\n    // 模型爆炸的展开数据\n    meshExplodeData = new Map<string,Map<string,IModelExplodeData>>();\n\n    // 已执行模型爆炸未还原的模型\n    unrestoredModel:THREE.Object3D[] = [];\n\n    constructor() {\n    }\n\n    /**\n     * 计算模型爆炸的展开数据\n     */\n    computedExplodeData(model:THREE.Object3D):void{\n        if(!model) return;\n\n        // 计算模型中心\n        const modelBox = new THREE.Box3();\n        modelBox.setFromObject(model);\n        const explodeCenter = this.getWorldCenterPosition(modelBox);\n\n        const meshBox = new THREE.Box3();\n\n        const dataMap:Map<string,IModelExplodeData> = new Map();\n        model.traverse((child) => {\n            if(!child || !child.isMesh || child.isLine || child.isSprite) return;\n\n            meshBox.setFromObject(child);\n            const meshCenter = this.getWorldCenterPosition(meshBox);\n            const worldDistance =  new THREE.Vector3().subVectors(meshCenter,explodeCenter)\n            const meshExplodeData:IModelExplodeData = {\n                worldDir: worldDistance.clone().normalize(),\n                worldDistance:worldDistance,\n                originPosition:child.getWorldPosition(new THREE.Vector3()),\n                meshCenter:meshCenter.clone(),\n                explodeCenter:explodeCenter.clone(),\n            }\n\n            dataMap.set(child.uuid,meshExplodeData);\n        })\n\n        this.meshExplodeData.set(model.uuid,dataMap);\n    }\n\n    getWorldCenterPosition(box:THREE.Box3,scalar = 0.5){\n        return new THREE.Vector3().addVectors(box.max,box.min).multiplyScalar(scalar);\n    }\n\n    explodeModel(model:THREE.Object3D,scalar:number = 0.5){\n        if(!this.meshExplodeData.has(model.uuid)){\n            this.computedExplodeData(model);\n        }\n\n        const dataMap =  this.meshExplodeData.get(model.uuid);\n        if(!dataMap) return;\n\n        model.traverse((child) => {\n            if(!dataMap.has(child.uuid)) return;\n\n            const data = dataMap.get(child.uuid);\n            if(!data) return;\n\n            const distance = data.worldDir.clone().multiplyScalar(data.worldDistance.length() * scalar);\n            const offset = new THREE.Vector3().subVectors(data.meshCenter,data.originPosition);\n            const center = data.explodeCenter;\n            const newPosition = new THREE.Vector3().copy(center).add(distance).sub(offset);\n            const localPosition = child.parent?.worldToLocal(newPosition);\n\n            if(localPosition){\n                child.position.copy(localPosition);\n            }\n        })\n\n        useDispatchSignal(\"sceneGraphChanged\");\n\n        this.unrestoredModel.push(model);\n    }\n\n    // 还原\n    restore(){\n        this.unrestoredModel.forEach(model=>{\n            const dataMap =  this.meshExplodeData.get(model.uuid);\n            if(!dataMap) return;\n\n            model.traverse((child) => {\n                if(!dataMap.has(child.uuid)) return;\n\n                const data = dataMap.get(child.uuid);\n                if(!data) return;\n\n                const _originPosition = child.parent?.worldToLocal(data.originPosition);\n\n                if(_originPosition){\n                    child.position.copy(_originPosition);\n                }\n            })\n\n            useDispatchSignal(\"sceneGraphChanged\");\n        })\n\n        this.unrestoredModel = [];\n\n        this.clear();\n    }\n\n    clear(){\n        this.meshExplodeData.clear();\n    }\n}\n\nexport {ModelExplode};"
  },
  {
    "path": "packages/sdk/lib/core/tools/Roaming.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/08/28\n * @description 漫游类，使用BVH检测碰撞,人物模型必须包含动画：Enter,Idle, Walking, WalkingBackward,Jumping\n */\nimport * as THREE from 'three';\nimport CameraControls from 'camera-controls';\nimport * as BufferGeometryUtils from \"three/examples/jsm/utils/BufferGeometryUtils.js\";\nimport {RoundedBoxGeometry} from 'three/examples/jsm/geometries/RoundedBoxGeometry.js';\nimport {GenerateMeshBVHWorker} from '@/workers/bvh/GenerateMeshBVHWorker.js';\nimport {useDispatchSignal} from \"@/hooks\";\nimport {getMeshByInstancedMesh} from \"@/utils\";\nimport {RoamingStatus} from \"./RoamingStatus\";\nimport Loader from \"@/core/loader/Loader\";\nimport App from \"@/core/app/App\";\nimport Viewer from \"@/core/viewer/Viewer\";\nimport MergeGeometriesWorker from \"@/workers/mergeGeometries.worker.ts?worker&url\";\nimport {TYPED_ARRAYS} from \"@/constant\";\n\nlet keyDownFn, keyUpFn;\n\nclass Roaming {\n    private viewer: Viewer;\n    private controls: CameraControls;\n\n    group: THREE.Group;\n    private collider: THREE.Mesh | undefined; // 碰撞器\n    private player: THREE.Mesh | undefined; // 碰撞胶囊体\n    person: THREE.Group | undefined; // 人物\n\n    private playerIsOnGround = true;\n    private playerVelocity = new THREE.Vector3();\n    private gravity = -20; // 重力\n    private playerSpeed = 2.2; // 人物移动速度\n    playerInitPos = new THREE.Vector3(0, 0, 0); // 人物初始位置\n    private firstPerson = true; // 是否第一人称\n\n    // 按键监听\n    private fwdPressed = false;\n    private bkdPressed = false;\n    private lftPressed = false;\n    private rgtPressed = false;\n\n    private upVector = new THREE.Vector3(0, 1, 0);\n    private tempVector = new THREE.Vector3();\n    private tempVector2 = new THREE.Vector3();\n    private tempBox = new THREE.Box3();\n    private tempMat = new THREE.Matrix4();\n    private tempSegment = new THREE.Line3();\n\n    public isRoaming = false; // 是否在漫游\n    mergeWorker: Worker;\n    private generateMeshBVHWorker: GenerateMeshBVHWorker;\n    private personStatus: RoamingStatus | null = null;\n\n    constructor(viewer: Viewer) {\n        this.viewer = viewer;\n        this.controls = viewer.modules.controls;\n\n        keyDownFn = this.keyDown.bind(this);\n        window.addEventListener('keydown', keyDownFn);\n\n        keyUpFn = this.keyUp.bind(this);\n        window.addEventListener('keyup', keyUpFn);\n\n        this.group = new THREE.Group();\n        this.group.name = \"es-3d-roaming-group\";\n        this.group.visible = false;\n        this.group.ignore = true;\n\n        this.mergeWorker = new Worker(MergeGeometriesWorker, {type: 'module'});\n        this.generateMeshBVHWorker = new GenerateMeshBVHWorker();\n\n        this.addPlayer();\n    }\n\n    keyDown(e: KeyboardEvent) {\n        if (!this.isRoaming || e.repeat) return;\n\n        switch (e.code) {\n            case 'KeyW':\n                this.fwdPressed = true;\n                this.personStatus?.setStatus(\"w\", true);\n                break;\n            case 'KeyS':\n                this.bkdPressed = true;\n                this.personStatus?.setStatus(\"s\", true);\n                break;\n            case 'KeyD':\n                this.rgtPressed = true;\n                this.personStatus?.setStatus(\"d\", true);\n                break;\n            case 'KeyA':\n                this.lftPressed = true;\n                this.personStatus?.setStatus(\"a\", true);\n                break;\n            case 'Space':\n                if (this.personStatus?.keyDownStatus.space) return;\n\n                if (this.playerIsOnGround) {\n                    // 跳跃动画有30FPS准备动作\n                    setTimeout(() => {\n                        this.playerVelocity.y = 10.0;\n                        this.playerIsOnGround = false;\n                    }, (30 / App.FPS) * 1000)\n                }\n                this.personStatus?.setStatus(\"space\", true);\n                break;\n            case \"ShiftLeft\":\n            case \"ShiftRight\":\n                if (this.personStatus?.isWalkingForward) {\n                    this.playerSpeed = 6;\n                    this.personStatus?.setStatus(\"shift\", true);\n                }\n                break;\n            case 'KeyV': // 切换第一/第三人称视角\n                this.firstPerson = !this.firstPerson;\n\n                if (this.firstPerson) { //人称切换\n                    // 第一人称\n                    this.controls.maxPolarAngle = Math.PI / 2;\n                    this.controls.minDistance = 0.8;\n                    this.controls.maxDistance = 0.8;\n                    this.controls.distance = 0.8;\n                } else {\n                    this.controls.maxPolarAngle = Math.PI / 2;\n                    this.controls.minDistance = 6;\n                    this.controls.maxDistance = 6;\n                    this.controls.distance = 6;\n                }\n                break;\n        }\n    }\n\n    keyUp(e: KeyboardEvent) {\n        if (!this.isRoaming || e.repeat) return;\n\n        switch (e.code) {\n            case 'KeyW':\n                this.personStatus?.setStatus(\"w\", false);\n                this.fwdPressed = false;\n                break;\n            case 'KeyS':\n                this.personStatus?.setStatus(\"s\", false);\n                this.bkdPressed = false;\n                break;\n            case 'KeyD':\n                this.personStatus?.setStatus(\"d\", false);\n                this.rgtPressed = false;\n                break;\n            case 'KeyA':\n                this.personStatus?.setStatus(\"a\", false);\n                this.lftPressed = false;\n                break;\n            case \"ShiftLeft\":\n            case \"ShiftRight\":\n                this.playerSpeed = 3;\n                this.personStatus?.setStatus(\"shift\", false);\n                break;\n        }\n    }\n\n    // 添加漫游所需人物模型\n    addPlayer(){\n        // 几何圆柱体 用于碰撞检测\n        const cylinder = new THREE.Mesh(\n            new RoundedBoxGeometry(0.5, 1.7, 0.5, 10, 0.5),\n            new THREE.MeshStandardMaterial()\n        )\n        cylinder.geometry.translate(0, -0.6, 0);\n        // @ts-ignore\n        cylinder.capsuleInfo = {\n            radius: 0.4,\n            segment: new THREE.Line3(new THREE.Vector3(), new THREE.Vector3(0, -1.0, 0.0))\n        }\n        cylinder.name = 'es-3d-roaming-cylinder';\n        cylinder.visible = false;\n\n        this.player = cylinder;\n        this.group.add(cylinder);\n\n        this.reloadPerson();\n    }\n\n    /**\n     * 重置漫游人物模型\n     */\n    async reloadPerson() {\n        // 加载人物模型glb\n        const loader = await Loader.createGLTFLoader();\n\n        const done = (blob) => {\n            // 加载人物模型Blob\n            loader.loadAsync(URL.createObjectURL(blob)).then(result => {\n                const person = result.scene as THREE.Group;\n                person.name = \"es-3d-roaming-player\";\n\n                if(this.person){\n                    person.matrix.copy(this.person.matrix);\n                    person.matrixWorld.copy(this.person.matrixWorld);\n\n                    this.person.removeFromParent();\n                }\n\n                this.person = person;\n                this.group.add(person);\n\n                // 漫游人物动画状态机\n                if(this.personStatus){\n                    this.personStatus.dispose();\n                }\n                this.personStatus = new RoamingStatus(person, result.animations);\n            });\n        }\n\n        // 从本地DB读取人物模型\n        const playerConfig= App.config.getKey(\"roamingCharacter\")\n        App.storage.getModel(`player-${playerConfig}`).then((file: Blob | unknown) => {\n            if (!file) {\n                const playerGlbUrl = new URL(`${import.meta.env.BASE_URL}resource/model/${playerConfig}.glb`, import.meta.url).href;\n                // 加载默认人物模型\n                fetch(playerGlbUrl).then(res => res.blob()).then(blob => {\n                    App.storage.setModel(`player-${playerConfig}`, blob)\n                    done(blob);\n                })\n            } else {\n                done(file);\n            }\n        })\n    }\n\n    // 生成碰撞器环境\n    generateColliderEnvironment() {\n        let mergedGeometry:any;\n\n        const generateBVH = () => {\n            return new Promise(resolve => {\n                this.generateMeshBVHWorker.generate(mergedGeometry).then(bvh => {\n                    // @ts-ignore\n                    mergedGeometry.boundsTree = bvh;\n\n                    this.collider = new THREE.Mesh(mergedGeometry);\n                    // @ts-ignore\n                    this.collider.material.wireframe = false;\n                    this.collider.name = \"astral-3d-roaming-collider\";\n                    this.collider.visible = false;\n\n                    // @ts-ignore\n                    this.group.add(this.collider);\n\n                    resolve(\"\");\n\n                    this.generateMeshBVHWorker.dispose();\n                });\n\n                this.viewer.scene.add(this.group);\n            })\n        }\n\n        const generateMergedGeometry = () => {\n            return new Promise((resolve,reject) => {\n                const cloneGeom = (me) => {\n                    const src = me.geometry;\n                    // 检查对应属性是否存在\n                    if (!src || !src.attributes || !src.attributes.position) return;\n\n                    // 先得到“无索引”的Geometry，toNonIndexed不会改变原Geometry\n                    const noIndexGeom = src.index ? src.toNonIndexed() : src.clone();\n\n                    let posAttr = noIndexGeom.attributes.position;\n                    let outGeom = new THREE.BufferGeometry();\n\n                    // 交错缓冲区单独处理取出\n                    if (posAttr.isInterleavedBufferAttribute) {\n                        const { data, itemSize, count, normalized, offset } = posAttr;\n                        const { array, stride } = data;\n\n                        const out = new TYPED_ARRAYS[array.constructor.name || 'Float32Array'](count * itemSize);\n                        for (let i = 0; i < count; i++) {\n                            const base = i * stride + offset;\n                            // 假设 itemSize 通常为 3（x,y,z），但这里写通用拷贝\n                            for (let k = 0; k < itemSize; k++) {\n                                out[i * itemSize + k] = array[base + k];\n                            }\n                        }\n                        posAttr = new THREE.BufferAttribute(out, itemSize, normalized);\n                    } else {\n                        // 普通 BufferAttribute，直接克隆即可\n                        posAttr = posAttr.clone();\n                    }\n\n                    // 仅保留position即可\n                    outGeom.setAttribute('position', posAttr);\n                    // 手动纠正有些模型没有顶点索引的问题\n                    outGeom.index = null;\n\n                    // 应用世界矩阵\n                    outGeom.applyMatrix4(me.matrixWorld);\n\n                    this.mergeWorker.postMessage({\n                        type: \"push\",\n                        // geometry: outGeom\n                        // 合并在容差范围内的具有相似属性的顶点\n                        geometry: BufferGeometryUtils.mergeVertices(outGeom)\n                    })\n                }\n\n                this.viewer.scene.traverseByCondition(c => {\n                    // 只合并网格\n                    if (c.geometry) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (!c.isInstancedMesh) {\n\t\t\t\t\t\t\tcloneGeom(c);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst meshes = getMeshByInstancedMesh(c as THREE.InstancedMesh);\n\t\t\t\t\t\t\tmeshes.forEach((m: THREE.Mesh) => {\n\t\t\t\t\t\t\t\tcloneGeom(m);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n                }, (c) => !c.ignore && c.visible)\n\n                this.mergeWorker.postMessage({\n                    type: \"merge\"\n                })\n\n                this.mergeWorker.onmessage = (event) => {\n                    if(event.data.type === \"error\") {\n\t\t\t\t\t\treject(event.data.message);\n\n                        return;\n                    }\n\n                    if (!event.data.geometry) return;\n\n                    mergedGeometry = event.data.geometry;\n                    mergedGeometry.__proto__ = THREE.BufferGeometry.prototype;\n                    mergedGeometry.index && (mergedGeometry.index.__proto__ = THREE.BufferAttribute.prototype);\n                    mergedGeometry.attributes.position.__proto__ = THREE.BufferAttribute.prototype;\n                    mergedGeometry.attributes.normal && (mergedGeometry.attributes.normal.__proto__ = THREE.BufferAttribute.prototype);\n\n                    // 删除uv属性\n                    if (mergedGeometry.attributes.uv) {\n                        mergedGeometry.deleteAttribute(\"uv\");\n                    }\n\n                    generateBVH().then(() => {\n                        resolve(\"\");\n                    });\n\n                    // 关闭 worker\n                    this.mergeWorker.terminate();\n                }\n            })\n        }\n\n        return generateMergedGeometry();\n    }\n\n    // 重置人物位置\n    resetPlayer() {\n        const player = this.player as THREE.Mesh;\n\n        this.playerVelocity.set(0, 0, 0);\n        player.position.copy(this.playerInitPos);\n\n        // 播放模型进入动画\n        this.personStatus?.init();\n\n        const _target = new THREE.Vector3();\n        this.controls.getTarget(_target);\n        this.viewer.camera.position.sub(_target);\n        this.controls.setTarget(player.position.x, player.position.y + 2, player.position.z, false);\n        this.controls.distance = this.firstPerson ? 0.8 : 6;\n        this.viewer.camera.position.add(player.position);\n        this.controls.update(0.016);\n    }\n\n    // 进入漫游\n    startRoaming() {\n        if (this.isRoaming) return;\n\n        this.group.visible = true;\n\n        this.viewer.computedSceneBox3();\n\n        this.resetPlayer();\n\n        this.isRoaming = true;\n    }\n\n    // 退出漫游\n    exitRoaming(lastRoadCameraPos = new THREE.Vector3(1, 1, 1), lastRoadCameraTarget = new THREE.Vector3()) {\n        this.group.visible = false;\n\n        lastRoadCameraPos && this.controls.setPosition(lastRoadCameraPos.x, lastRoadCameraPos.y, lastRoadCameraPos.z, true);\n        lastRoadCameraTarget && this.controls.setTarget(lastRoadCameraTarget.x, lastRoadCameraTarget.y, lastRoadCameraTarget.z, true);\n\n        this.controls.maxPolarAngle = Math.PI;\n        this.controls.minDistance = 0;\n        this.controls.maxDistance = Infinity;\n\n        this.controls.update(0.016);\n        this.isRoaming = false;\n\n        // 停用混合器上所有预定的动作\n        this.personStatus?.stopAllAction();\n\n        useDispatchSignal(\"sceneGraphChanged\");\n    }\n\n    render(delta: number) {\n        if (!delta) return;\n\n        const player = this.player as THREE.Object3D;\n\n        // =========================\n        // 重力与竖直方向\n        // =========================\n        if (this.playerIsOnGround) {\n            this.playerVelocity.y = delta * this.gravity;\n        } else {\n            this.playerVelocity.y += delta * this.gravity;\n        }\n        player.position.addScaledVector(this.playerVelocity, delta);\n\n        // =========================\n        // 水平方向移动\n        // =========================\n        const angle = this.controls.azimuthAngle;\n        if (this.fwdPressed) {\n            this.tempVector.set(0, 0, -1).applyAxisAngle(this.upVector, angle);\n            player.position.addScaledVector(this.tempVector, this.playerSpeed * delta);\n        }\n        if (this.bkdPressed) {\n            this.tempVector.set(0, 0, 1).applyAxisAngle(this.upVector, angle);\n            player.position.addScaledVector(this.tempVector, this.playerSpeed * delta);\n        }\n        if (this.lftPressed) {\n            this.tempVector.set(-1, 0, 0).applyAxisAngle(this.upVector, angle);\n            player.position.addScaledVector(this.tempVector, this.playerSpeed * delta);\n        }\n        if (this.rgtPressed) {\n            this.tempVector.set(1, 0, 0).applyAxisAngle(this.upVector, angle);\n            player.position.addScaledVector(this.tempVector, this.playerSpeed * delta);\n        }\n\n        player.updateMatrixWorld();\n\n        // =========================\n        // 碰撞检测\n        // =========================\n        // @ts-ignore\n        const capsuleInfo = (player as any).capsuleInfo;\n        const worldSegStart = capsuleInfo.segment.start.clone().applyMatrix4(player.matrixWorld);\n\n        // 收集所有 collider mesh\n        const colliders: THREE.Mesh[] = [];\n        if (this.collider) colliders.push(this.collider);\n\n        let chosenNewPositionWorld: THREE.Vector3 | null = null;\n        let maxOffsetLen = -Infinity;\n\n        for (const mesh of colliders) {\n            if (!mesh.geometry?.boundsTree) continue;\n\n            // 胶囊段：player.local → world → mesh.local\n            this.tempMat.copy(mesh.matrixWorld).invert();\n            this.tempSegment.copy(capsuleInfo.segment);\n            this.tempSegment.start.applyMatrix4(player.matrixWorld).applyMatrix4(this.tempMat);\n            this.tempSegment.end.applyMatrix4(player.matrixWorld).applyMatrix4(this.tempMat);\n\n            // AABB for shapecast\n            this.tempBox.makeEmpty();\n            this.tempBox.expandByPoint(this.tempSegment.start);\n            this.tempBox.expandByPoint(this.tempSegment.end);\n            this.tempBox.min.addScalar(-capsuleInfo.radius);\n            this.tempBox.max.addScalar(capsuleInfo.radius);\n\n            // 执行 shapecast，会修改 this.tempSegment\n            mesh.geometry.boundsTree.shapecast({\n                intersectsBounds: box => box.intersectsBox(this.tempBox),\n                intersectsTriangle: tri => {\n                    // 检查三角形是否与胶囊相交，如果相交则调整胶囊位置。\n                    const triPoint = this.tempVector;\n                    const capsulePoint = this.tempVector2;\n\n                    const distance = tri.closestPointToSegment(this.tempSegment, triPoint, capsulePoint);\n                    if (distance < (this.player as THREE.Object3D).capsuleInfo.radius) {\n                        const depth = (this.player as THREE.Object3D).capsuleInfo.radius - distance;\n                        const direction = capsulePoint.sub(triPoint).normalize();\n\n                        this.tempSegment.start.addScaledVector(direction, depth);\n                        this.tempSegment.end.addScaledVector(direction, depth);\n                    }\n\n                    return false;\n                }\n            });\n\n            // 结果变回 world 空间\n            const adjustedWorld = this.tempSegment.start.clone().applyMatrix4(mesh.matrixWorld);\n\n            const offsetLen = adjustedWorld.distanceTo(worldSegStart);\n            if (offsetLen > maxOffsetLen) {\n                maxOffsetLen = offsetLen;\n                chosenNewPositionWorld = adjustedWorld;\n            }\n        }\n\n        // 应用最终选择的位移\n        if (chosenNewPositionWorld) {\n            const deltaVector = this.tempVector2.subVectors(chosenNewPositionWorld, player.position);\n\n            this.playerIsOnGround = deltaVector.y > Math.abs(delta * this.playerVelocity.y * 0.25);\n\n            const offset = Math.max(0.0, deltaVector.length() - 1e-5);\n            deltaVector.normalize().multiplyScalar(offset);\n\n            player.position.add(deltaVector);\n\n            if (!this.playerIsOnGround) {\n                deltaVector.normalize();\n                this.playerVelocity.addScaledVector(deltaVector, -deltaVector.dot(this.playerVelocity));\n            } else {\n                this.playerVelocity.set(0, 0, 0);\n            }\n        }\n\n        // =========================\n        // 相机调整\n        // =========================\n        const v = new THREE.Vector3(player.position.x, player.position.y + 0.2, player.position.z);\n        const _target = new THREE.Vector3();\n        this.controls.getTarget(_target);\n        this.viewer.camera.position.sub(_target);\n        this.controls.setTarget(v.x, v.y, v.z, false);\n        this.controls.distance = this.firstPerson ? 0.8 : 6;\n        this.viewer.camera.position.add(v);\n        this.controls.polarAngle = Math.PI / 2;\n\n        // 人物模型位置跟随\n        if (this.person) {\n            this.person.position.set(player.position.x, player.position.y - 1.415, player.position.z);\n        }\n\n        // 跌落检测\n        if (this.viewer.sceneBox3 && (this.viewer.sceneBox3.min.y - player.position.y > 15)) {\n            requestAnimationFrame(() => this.resetPlayer());\n        }\n\n        // 动画状态更新\n        this.personStatus?.update(delta);\n    }\n\n    dispose() {\n        window.removeEventListener('keydown', keyDownFn);\n        window.removeEventListener('keyup', keyUpFn);\n\n        App.removeObject(this.group);\n\n        this.personStatus?.dispose();\n    }\n}\n\nexport {Roaming}"
  },
  {
    "path": "packages/sdk/lib/core/tools/RoamingStatus.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/8/29 22:10\n * @description 漫游的人物动画状态机\n */\nimport * as THREE from \"three\";\n\nexport class RoamingStatus{\n    // 键盘按下状态\n    keyDownStatus = {\n        w:false,\n        s:false,\n        a:false,\n        d:false,\n        shift:false,\n        space:false\n    }\n\n    fadeTime = 0.2;\n\n    person: THREE.Group; // 人物\n    mixer: THREE.AnimationMixer; // 动画混合器\n    private clipAction: { [s: string]: THREE.AnimationAction } = {}; // 动画 action\n\n    constructor(person:THREE.Group,clips:THREE.AnimationClip[]) {\n        this.person = person;\n        this.mixer = new THREE.AnimationMixer(this.person);\n        clips.forEach(clip => {\n            this.clipAction[clip.name] = (this.mixer as THREE.AnimationMixer).clipAction(clip);\n        })\n\n        this.mixer.addEventListener('loop', (e) => {\n            switch (e.action.getClip().name){\n                case \"Enter\":\n                    this.fadeIn(\"Idle\");\n                    setTimeout(() => {\n                        this.clipAction.Enter.stop();\n                    },200)\n                    break;\n                case \"Jumping\":\n                    this.setStatus(\"space\",false);\n                    break;\n            }\n        });\n    }\n\n    init(){\n        this.clipAction.Idle.play();\n    }\n\n    // 是否正在向前走\n    get isWalkingForward(){\n        return this.keyDownStatus.w || this.keyDownStatus.a || this.keyDownStatus.d;\n    }\n\n    setStatus(key:string,value: boolean){\n        this.keyDownStatus[key] = value;\n\n        switch (key){\n            case \"w\":\n            case \"a\":\n            case \"d\":\n                // 前进动画处理\n                if(!this.keyDownStatus.w && !this.keyDownStatus.a && !this.keyDownStatus.d){\n                    this.fadeOut(\"Walking\");\n\n                    if(this.clipAction.Running.isRunning()){\n                        this.keyDownStatus.shift = false;\n                        this.fadeOut(\"Running\")\n                    }\n                }else{\n                    if(!this.clipAction.Walking.isRunning()){\n                        this.fadeIn(\"Walking\");\n                    }\n                }\n                break;\n            case \"s\":\n                // 后退处理\n                if(value){\n                    this.fadeIn(\"WalkingBackward\");\n                }else{\n                    this.fadeOut(\"WalkingBackward\")\n                }\n                break;\n            case \"space\":\n                // 跳跃处理\n                if(value){\n                    this.fadeIn(\"Jumping\");\n\n                    if(this.clipAction.Walking.isRunning()){\n                        this.fadeOut(\"Walking\")\n                    }\n                    if(this.clipAction.Running.isRunning()){\n                        this.fadeOut(\"Running\")\n                    }\n                }else{\n                    if(this.keyDownStatus.shift){\n                        if(!this.clipAction.Running.isRunning()){\n                            this.fadeIn(\"Running\")\n                        }\n                    }else if(this.isWalkingForward){\n                        if(!this.clipAction.Walking.isRunning()){\n                            this.fadeIn(\"Walking\")\n                        }\n                    }\n\n                    this.fadeOut(\"Jumping\")\n                }\n                break;\n            case \"shift\":\n                if(value){\n                    this.fadeIn(\"Running\");\n\n                    this.fadeOut(\"Walking\")\n                }else{\n                    if(this.isWalkingForward){\n                        if(!this.clipAction.Walking.isRunning()){\n                            this.fadeIn(\"Walking\");\n                            this.fadeOut(\"Running\");\n                        }\n                    }\n                }\n                break;\n        }\n\n        if(!Object.values(this.keyDownStatus).includes(true)){\n            if(!this.clipAction.Idle.isRunning()){\n                this.fadeIn(\"Idle\");\n            }\n        }else{\n            if(this.clipAction.Idle.isRunning()){\n                this.fadeOut(\"Idle\");\n            }\n        }\n    }\n\n    fadeIn(name: string) {\n        // if(!this.clipAction[name].isScheduled()){\n        //     this.clipAction[name].reset();\n        //     this.clipAction[name].play();\n        // }\n        //\n        // this.clipAction[name].fadeIn(this.fadeTime);\n\n        this.clipAction[name].play();\n    }\n\n    fadeOut(name:string){\n        // this.clipAction[name].fadeOut(this.fadeTime)\n        // setTimeout(() => {\n        //     this.clipAction[name].stop();\n        // },this.fadeTime * 100)\n\n        this.clipAction[name].stop();\n    }\n\n    stopAllAction(){\n        // 停用混合器上所有预定的动作\n        this.mixer.stopAllAction();\n    }\n\n\n    update(delta:number){\n        this.mixer.update(delta);\n\n        // THREE.AnimationMixer loop事件不一定有用，此处添加一个检测\n        if(!this.clipAction.Jumping.isRunning() && this.keyDownStatus.space){\n            //console.log(\"THREE.AnimationMixer loop事件未生效，手动设置\")\n            this.keyDownStatus.space = false;\n        }\n    }\n\n    dispose(){\n        this.stopAllAction();\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/tools/index.ts",
    "content": "export {Roaming} from \"./Roaming\";\nexport {RoamingStatus} from \"./RoamingStatus\";\nexport {MiniMap} from \"./MiniMap\";\nexport {ClippedEdgesBox} from \"./ClippedEdgesBox\";\nexport {Measure,MeasureMode} from \"./Measure\";\nexport {Export} from \"./Export\";\nexport {ModelExplode} from \"./ModelExplode\";\n"
  },
  {
    "path": "packages/sdk/lib/core/viewer/Viewer.ts",
    "content": "import * as THREE from 'three';\nimport CameraControls from 'camera-controls';\nimport {Timer} from 'three/examples/jsm/misc/Timer.js';\nimport {CSS2DRenderer} from \"three/examples/jsm/renderers/CSS2DRenderer\";\nimport {CSS3DRenderer} from \"three/examples/jsm/renderers/CSS3DRenderer.js\";\nimport {TransformControls} from \"three/examples/jsm/controls/TransformControls.js\";\nimport App from \"../app/App\";\nimport {ViewerOptions} from \"./ViewerOptions\";\nimport {PluginManager} from \"@/core/plugin/plugin\";\nimport {\n    Helper,\n    CameraManage,\n    Effect,\n    Weather,\n    Signals,\n    ParticleSystem,\n    Drag,\n} from \"./modules\";\nimport {ShaderMaterialManager} from \"@/core/shaderMaterial/ShaderMaterialManager\";\nimport {deepAssign, deepEqual, getMousePosition, isEmptyObject, isNil, createDivContainer} from \"@/utils\";\nimport {useDispatchSignal} from \"@/hooks\";\nimport {\n    AddObjectCommand,\n    SetPositionCommand,\n    SetRotationCommand,\n    SetScaleCommand\n} from \"@/core/commands/Commands\";\nimport {Emitter} from '@/core/libs/three-nebula';\nimport ParticleEmitter from \"@/core/objects/ParticleEmitter.ts\";\nimport {ViewerPathTracer} from \"@/core/viewer/ViewerPathTracer.ts\";\nimport {Helper as ScriptHelper} from \"../script\";\nimport { Package } from \"@/core/loader/Package.ts\";\nimport { injectWasm } from \"@/utils/wasm/inject.ts\";\n\nexport interface ViewerEventMap {\n    // 场景加载完成时执行，仅执行一次\n    loaded: {};\n\n    // 场景当前动画帧循环开始之前触发，每一帧执行一次\n    beforeAnimation: { delta: number };\n\n    // 场景当前动画帧循环完成之后立即触发，每一帧执行一次\n    afterAnimation: { delta: number, toBeRender: (_need: boolean) => void };\n\n    // 场景当前动画帧循环完成之后渲染之前触发，每一次渲染执行一次\n    beforeRender: { delta: number };\n\n    // 场景当前帧渲染完成之后触发，每一次渲染执行一次\n    afterRender: { delta: number };\n\n    // 场景销毁前调用，仅执行一次\n    beforeDestroy: {};\n\n    // 场景销毁后调用，仅执行一次\n    afterDestroy: {};\n\n    // 模型单击事件\n    onPick: { intersect: THREE.Intersection, object: THREE.Object3D };\n\n    // 模型双击事件\n    onDoubleClick: { intersect: THREE.Intersection, object: THREE.Object3D };\n\n    // 键盘按下事件(全局)\n    onKeyDown: { event: KeyboardEvent };\n\n    // 键盘抬起事件(全局)\n    onKeyUp: { event: KeyboardEvent };\n\n    //指针按下事件(全局)\n    onPointerDown: { event: PointerEvent };\n\n    //指针抬起事件(全局)\n    onPointerUp: { event: PointerEvent };\n\n    //指针移动事件(全局)\n    onPointerMove: { event: PointerEvent };\n\n    //触屏按下事件(全局)\n    onTouchStart: { event: TouchEvent };\n\n    //触屏释放事件(全局)\n    onTouchEnd: { event: TouchEvent };\n\n    // 场景背景变更\n    onSceneBackgroundChange: {\n        backgroundType: '' | 'Color' | 'Texture' | 'Equirectangular',\n        background: null | THREE.Color | THREE.Texture\n    }\n\n    // 场景环境变更\n    onSceneEnvironmentChange: {\n        environmentType: '' | 'Background' | 'Equirectangular' | 'ModelViewer',\n        environment: null | THREE.Texture\n    }\n}\n\nexport interface ViewerModules {\n    plugin: PluginManager,\n    viewHelper: Helper,\n    cameraManage: CameraManage,\n    controls: CameraControls,\n    transformControls?: TransformControls,\n    effect: Effect,\n    weather: Weather,\n    registerSignal: Signals,\n    shaderMaterialManager: ShaderMaterialManager,\n    particleSystem: ParticleSystem,\n    dragControl: Drag,\n}\n\nCameraControls.install({\n    THREE: {\n        Vector2: THREE.Vector2,\n        Vector3: THREE.Vector3,\n        Vector4: THREE.Vector4,\n        Quaternion: THREE.Quaternion,\n        Matrix4: THREE.Matrix4,\n        Spherical: THREE.Spherical,\n        Box3: THREE.Box3,\n        Sphere: THREE.Sphere,\n        Raycaster: THREE.Raycaster,\n    }\n});\n\nconst onDownPosition = new THREE.Vector2();\nconst onUpPosition = new THREE.Vector2();\nconst onDoubleClickPosition = new THREE.Vector2();\n\n// 表示animate()函数被多次调用累积时间,用于限制FPS\nlet timeStamp = 0;\n\n// 事件绑定\nconst Fn: any = {\n    pointerdown: null,\n    pointerup: null,\n    pointermove: null,\n    keydown: null,\n    keyup: null,\n    touchstart: null,\n    dblclick: null,\n}\n\n// 脚本管理数据结构\ntype EventHandlers = {\n    [eventName: string]: {\n        [uuid: string]: Function[];\n    };\n};\n// 脚本中可写的所有事件\nlet events: EventHandlers = {\n    loaded: {},\n    beforeAnimation: {},\n    afterAnimation: {},\n    beforeRender: {},\n    afterRender: {},\n    beforeDestroy: {},\n    afterDestroy: {},\n    onPick: {},\n    onDoubleClick: {},\n    onKeyDown: {},\n    onKeyUp: {},\n    onPointerDown: {},\n    onPointerUp: {},\n    onPointerMove: {},\n    onTouchStart: {},\n    onTouchEnd: {},\n};\n// UUID 到事件的映射\nconst uuidEventMap: Map<string, Map<string, { name: string, fn: Function }[]>> = new Map();\n\nexport default class Viewer extends THREE.EventDispatcher<ViewerEventMap> {\n\tpublic container: HTMLElement;\n\tpublic options: IViewerSetting;\n\tpublic renderer: THREE.WebGLRenderer;\n\tpublic camera: THREE.PerspectiveCamera;\n\tpublic scene: THREE.Scene;\n\tpublic sceneHelpers: THREE.Scene;\n\tpublic grid: THREE.Group | undefined;\n\tpublic box: THREE.Box3 = new THREE.Box3();\n\tpublic selectionBox: THREE.Box3Helper;\n\tpublic raycaster: THREE.Raycaster;\n\tpublic pmremGenerator: THREE.PMREMGenerator | null = null;\n\tpublic pathtracer: ViewerPathTracer | undefined;\n\tpublic modules: ViewerModules;\n\tpublic package: Package;\n\n\tpublic css2DRenderer: CSS2DRenderer = new CSS2DRenderer();\n\tpublic css3DRenderer: CSS3DRenderer = new CSS3DRenderer();\n\tpublic timer = new Timer();\n\t//整个主场景的box3\n\tpublic sceneBox3 = new THREE.Box3();\n\n\tconstructor(options: IViewerSetting) {\n\t\tsuper();\n\n\t\tApp.viewer = this;\n\n\t\tthis.container = options.container || createDivContainer();\n\n\t\tthis.options = ViewerOptions();\n\t\tdeepAssign(this.options, options);\n\n\t\tthis.camera = App.camera;\n\t\tthis.scene = App.scene;\n\t\tthis.sceneHelpers = App.sceneHelpers;\n\n\t\tthis.renderer = this.createEngine();\n\n\t\tthis.modules = this.initModules();\n\n\t\tthis.package = new Package(this);\n\n\t\t/** helpers **/\n\t\tif (this.options.grid.enabled) {\n\t\t\tthis.grid = new THREE.Group();\n\t\t\tthis.grid.ignore = true;\n\t\t\tthis.initGrid();\n\t\t\tthis.scene.add(this.grid);\n\t\t}\n\n\t\t//选中时的包围框\n\t\tthis.selectionBox = new THREE.Box3Helper(this.box);\n\t\t(this.selectionBox.material as THREE.Material).depthTest = false;\n\t\t(this.selectionBox.material as THREE.Material).transparent = true;\n\t\tthis.selectionBox.visible = false;\n\t\tthis.sceneHelpers.add(this.selectionBox as THREE.Object3D);\n\n\t\t// 拾取对象\n\t\tthis.raycaster = new THREE.Raycaster();\n\t\t//Raycaster 将只从它遇到的第一个对象中获取信息\n\t\tthis.raycaster.firstHitOnly = true;\n\n\t\tthis.engineCreated(this.renderer);\n\n\t\tthis.loadEnv(true);\n\n\t\tthis.initEvent();\n\n\t\t//监听视窗变化（节流）\n\t\tlet timer: NodeJS.Timeout | null = null;\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tif (timer) return;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tuseDispatchSignal(\"sceneResize\", this.container.offsetWidth, this.container.offsetHeight);\n\t\t\t\ttimer = null;\n\t\t\t}, 16);\n\t\t});\n\t\tresizeObserver.observe(this.container);\n\n\t\t/**\n\t\t * 注入engine的wasm,包含以下能力：\n\t\t * 1. 打包压缩及对应速度优化\n\t\t */\n\t\tinjectWasm({ wasmUrl: new URL(import.meta.env.BASE_URL + 'static/wasm/Astral3DEngine.wasm', import.meta.url).href }).then(() => {})\n\n\t\tuseDispatchSignal(\"viewerInitCompleted\", this);\n\t}\n\n\t/**\n\t * 获取编辑态配置\n\t */\n\tget edit(): IViewerEdit {\n\t\treturn this.options.edit as IViewerEdit;\n\t}\n\n\t/**\n\t * 设置编辑态配置\n\t * @param config\n\t */\n\tset edit(config: IViewerEdit) {\n\t\tif (!config) return;\n\n\t\tif (deepEqual(config, this.options.edit)) return;\n\n\t\tdeepAssign(this.options.edit, config);\n\n\t\tif (this.options.edit?.gizmo) {\n\t\t\tif (this.modules.transformControls) return;\n\n\t\t\tlet objectPositionOnDown = new THREE.Vector3();\n\t\t\tlet objectRotationOnDown = new THREE.Euler();\n\t\t\tlet objectScaleOnDown = new THREE.Vector3();\n\t\t\tconst transformControls = new TransformControls(this.camera, this.container);\n\t\t\ttransformControls.addEventListener(\"change\", () => {\n\t\t\t\tconst object = transformControls.object;\n\n\t\t\t\tif (object !== undefined) {\n\t\t\t\t\tthis.box.setFromObject(object, true);\n\n\t\t\t\t\tuseDispatchSignal(\"objectChanged\", object);\n\t\t\t\t}\n\n\t\t\t\tthis.render();\n\t\t\t});\n\t\t\ttransformControls.addEventListener(\"mouseDown\", () => {\n\t\t\t\tconst object = transformControls.object as THREE.Object3D;\n\n\t\t\t\tobjectPositionOnDown = object.position.clone();\n\t\t\t\tobjectRotationOnDown = object.rotation.clone();\n\t\t\t\tobjectScaleOnDown = object.scale.clone();\n\n\t\t\t\tthis.modules.controls.enabled = false;\n\t\t\t});\n\t\t\ttransformControls.addEventListener(\"mouseUp\", () => {\n\t\t\t\tconst object = transformControls.object as THREE.Object3D;\n\n\t\t\t\tif (object !== undefined) {\n\t\t\t\t\tswitch (transformControls.getMode()) {\n\t\t\t\t\t\tcase \"translate\":\n\t\t\t\t\t\t\tif (!objectPositionOnDown.equals(object.position)) {\n\t\t\t\t\t\t\t\tApp.execute(new SetPositionCommand(object, object.position, objectPositionOnDown));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"rotate\":\n\t\t\t\t\t\t\tif (!objectRotationOnDown.equals(object.rotation)) {\n\t\t\t\t\t\t\t\tApp.execute(new SetRotationCommand(object, object.rotation, objectRotationOnDown));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"scale\":\n\t\t\t\t\t\t\tif (!objectScaleOnDown.equals(object.scale)) {\n\t\t\t\t\t\t\t\tApp.execute(new SetScaleCommand(object, object.scale, objectScaleOnDown));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.modules.controls.enabled = true;\n\t\t\t});\n\t\t\tconst gizmo = transformControls.getHelper();\n\t\t\tthis.sceneHelpers.add(gizmo);\n\n\t\t\tthis.modules.transformControls = transformControls;\n\t\t} else {\n\t\t\tif (!this.modules.transformControls) return;\n\n\t\t\tconst gizmo = this.modules.transformControls.getHelper();\n\t\t\tthis.sceneHelpers.remove(gizmo);\n\n\t\t\tthis.modules.transformControls.dispose();\n\n\t\t\tthis.modules.transformControls = undefined;\n\t\t}\n\n\t\t// TODO 处理 this.options.edit?.helpers，以兼容只显示gizmo不显示helpers的情况\n\n\t\tthis.render();\n\t}\n\n\t/**\n\t * 获取是否启用脚本运行\n\t */\n\tget enableScript() {\n\t\treturn this.options.enableScript || false;\n\t}\n\n\t/**\n\t * 设置是否启用脚本运行\n\t */\n\tset enableScript(enable: boolean) {\n\t\tif (enable === this.enableScript) return;\n\n\t\tif (enable) {\n\t\t\tthis.installScripts();\n\t\t} else {\n\t\t\tthis.unInstallScripts();\n\t\t}\n\t}\n\n\t/**\n\t * 创建默认渲染引擎\n\t */\n\tcreateEngine() {\n\t\tconst renderConfig = App.project.getKey(\"renderer\");\n\t\tconst renderer = new THREE.WebGLRenderer({\n\t\t\tantialias: renderConfig.antialias,\n\t\t\talpha: true,\n\t\t\tpreserveDrawingBuffer: false,\n\t\t\tpowerPreference: \"high-performance\",\n\t\t});\n\n\t\trenderer.autoClear = false;\n\t\trenderer.setClearColor(0x272727, 1);\n\t\trenderer.outputColorSpace = THREE.SRGBColorSpace;\n\t\trenderer.toneMapping = renderConfig.toneMapping;\n\t\trenderer.toneMappingExposure = renderConfig.toneMappingExposure;\n\t\trenderer.shadowMap.enabled = renderConfig.shadow.enabled;\n\t\trenderer.shadowMap.type = renderConfig.shadow.type;\n\t\trenderer.xr.enabled = App.project.getKey(\"xr\");\n\n\t\tthis.modules && this.engineCreated(renderer);\n\n\t\treturn renderer;\n\t}\n\n\t/**\n\t * 创建渲染引擎后\n\t * @param newRenderer\n\t */\n\tengineCreated(newRenderer: THREE.WebGLRenderer) {\n\t\tif (this.renderer && this.renderer !== newRenderer) {\n\t\t\tthis.renderer.setAnimationLoop(null);\n\t\t\tthis.renderer.dispose();\n\n\t\t\tthis.pmremGenerator?.dispose();\n\t\t\tthis.pmremGenerator = null;\n\n\t\t\tthis.modules.controls.disconnect();\n\t\t\tthis.container.removeChild(this.renderer.domElement);\n\n\t\t\tthis.modules.viewHelper.dispose();\n\t\t}\n\n\t\tthis.renderer = newRenderer;\n\n\t\tthis.renderer.setAnimationLoop(this.animate.bind(this));\n\t\tthis.renderer.setPixelRatio(Math.max(Math.ceil(window.devicePixelRatio), 1));\n\t\tthis.renderer.setSize(this.container.offsetWidth, this.container.offsetHeight);\n\n\t\tif (this.scene.environment && this.scene.environment.isRenderTargetTexture) {\n\t\t\tuseDispatchSignal(\"sceneEnvironmentChanged\", \"ModelViewer\");\n\t\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\t\t}\n\n\t\tthis.pathtracer = new ViewerPathTracer(newRenderer);\n\n\t\t// 在container中最前面插入渲染器的dom元素\n\t\tthis.container.insertBefore(newRenderer.domElement, this.container.firstChild);\n\n\t\t// 控制器绑定\n\t\tthis.modules.controls.connect(newRenderer.domElement);\n\n\t\t// 初始化后处理\n\t\tthis.modules.effect.createComposer();\n\n\t\tthis.modules.viewHelper.init();\n\n\t\t// 防止重复添加\n\t\tif (this.css2DRenderer.domElement.parentNode !== this.container) {\n\t\t\tthis.css2DRenderer.setSize(this.container.offsetWidth, this.container.offsetHeight);\n\t\t\tthis.css2DRenderer.domElement.setAttribute(\"id\", \"astral-3d-css2DRenderer\");\n\t\t\tthis.css2DRenderer.domElement.style.position = \"absolute\";\n\t\t\tthis.css2DRenderer.domElement.style.top = \"0px\";\n\t\t\tthis.css2DRenderer.domElement.style.pointerEvents = \"none\";\n\n\t\t\tthis.container.appendChild(this.css2DRenderer.domElement);\n\t\t}\n\t\tif (this.css3DRenderer.domElement.parentNode !== this.container) {\n\t\t\tthis.css3DRenderer.setSize(this.container.offsetWidth, this.container.offsetHeight);\n\t\t\tthis.css3DRenderer.domElement.setAttribute(\"id\", \"astral-3d-css3DRenderer\");\n\t\t\tthis.css3DRenderer.domElement.style.position = \"absolute\";\n\t\t\tthis.css3DRenderer.domElement.style.top = \"0px\";\n\t\t\tthis.css3DRenderer.domElement.style.pointerEvents = \"none\";\n\n\t\t\tthis.container.appendChild(this.css3DRenderer.domElement);\n\t\t}\n\n\t\tuseDispatchSignal(\"rendererUpdated\");\n\t}\n\n\t/**\n\t * 初始化网格\n\t * @protected\n\t */\n\tinitGrid() {\n\t\tif (!this.grid) {\n\t\t\tthis.grid = new THREE.Group();\n\t\t\tthis.grid.ignore = true;\n\t\t\tthis.scene.add(this.grid);\n\t\t}\n\n\t\tif (this.grid.children.length > 0) {\n\t\t\tthis.grid.children.forEach((child: THREE.Object3D) => {\n\t\t\t\tchild.dispose();\n\t\t\t});\n\t\t\tthis.grid.children = [];\n\t\t}\n\n\t\tconst grid = new THREE.GridHelper(\n\t\t\tthis.options.grid.row,\n\t\t\tthis.options.grid.column,\n\t\t\tparseInt(App.config.getKey(\"mainColor\").slice(1), 16),\n\t\t\tthis.options.grid.color\n\t\t);\n\t\tthis.grid.add(grid);\n\n\t\tthis.render();\n\t}\n\n\t/**\n\t * 初始化功能模块\n\t */\n\tinitModules() {\n\t\tconst controls = new CameraControls(this.camera);\n\t\tcontrols.addEventListener(\"update\", () => {\n\t\t\tuseDispatchSignal(\"cameraChanged\", this.camera, controls);\n\t\t});\n\n\t\tconst modules: ViewerModules = {\n\t\t\t// 插件系统\n\t\t\tplugin: new PluginManager(),\n\t\t\tviewHelper: new Helper(this, controls),\n\t\t\tcameraManage: new CameraManage(this, controls),\n\t\t\tcontrols,\n\t\t\teffect: new Effect(this),\n\t\t\tweather: new Weather(this),\n\t\t\t// 注册signal\n\t\t\tregisterSignal: new Signals(this),\n\t\t\tshaderMaterialManager: new ShaderMaterialManager(),\n\t\t\t// 粒子系统\n\t\t\tparticleSystem: new ParticleSystem(this),\n\t\t\t// 拖拽\n\t\t\tdragControl: new Drag(this),\n\t\t};\n\n\t\tif (this.edit?.enabled) {\n\t\t\tlet objectPositionOnDown = new THREE.Vector3();\n\t\t\tlet objectRotationOnDown = new THREE.Euler();\n\t\t\tlet objectScaleOnDown = new THREE.Vector3();\n\t\t\tconst transformControls = new TransformControls(this.camera, this.container);\n\t\t\ttransformControls.addEventListener(\"change\", () => {\n\t\t\t\tconst object = transformControls.object;\n\n\t\t\t\tif (object !== undefined) {\n\t\t\t\t\tthis.box.setFromObject(object, true);\n\n\t\t\t\t\tuseDispatchSignal(\"objectChanged\", object);\n\t\t\t\t}\n\n\t\t\t\tthis.render();\n\t\t\t});\n\t\t\ttransformControls.addEventListener(\"mouseDown\", () => {\n\t\t\t\tconst object = transformControls.object as THREE.Object3D;\n\n\t\t\t\tobjectPositionOnDown = object.position.clone();\n\t\t\t\tobjectRotationOnDown = object.rotation.clone();\n\t\t\t\tobjectScaleOnDown = object.scale.clone();\n\n\t\t\t\tthis.modules.controls.enabled = false;\n\t\t\t});\n\t\t\ttransformControls.addEventListener(\"mouseUp\", () => {\n\t\t\t\tconst object = transformControls.object as THREE.Object3D;\n\n\t\t\t\tif (object !== undefined) {\n\t\t\t\t\tswitch (transformControls.getMode()) {\n\t\t\t\t\t\tcase \"translate\":\n\t\t\t\t\t\t\tif (!objectPositionOnDown.equals(object.position)) {\n\t\t\t\t\t\t\t\tApp.execute(new SetPositionCommand(object, object.position, objectPositionOnDown));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"rotate\":\n\t\t\t\t\t\t\tif (!objectRotationOnDown.equals(object.rotation)) {\n\t\t\t\t\t\t\t\tApp.execute(new SetRotationCommand(object, object.rotation, objectRotationOnDown));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"scale\":\n\t\t\t\t\t\t\tif (!objectScaleOnDown.equals(object.scale)) {\n\t\t\t\t\t\t\t\tApp.execute(new SetScaleCommand(object, object.scale, objectScaleOnDown));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.modules.controls.enabled = true;\n\t\t\t});\n\t\t\tconst gizmo = transformControls.getHelper();\n\t\t\tthis.sceneHelpers.add(gizmo);\n\n\t\t\tmodules.transformControls = transformControls;\n\t\t}\n\n\t\treturn modules;\n\t}\n\n\t/**\n\t * 加载默认环境和背景\n\t */\n\tloadEnv(setBg: boolean = true, onLoad?: (texture: THREE.Texture) => void, onError?: (error: Error) => void) {\n\t\tif (!this.options.hdr) return;\n\n\t\tApp.resource.loadURLTexture(\n\t\t\tthis.options.hdr,\n\t\t\t(texture: THREE.Texture) => {\n\t\t\t\ttexture.mapping = THREE.EquirectangularReflectionMapping;\n\t\t\t\tthis.scene.environment = texture;\n\t\t\t\tsetBg && (this.scene.background = texture);\n\n\t\t\t\tuseDispatchSignal(\"sceneGraphChanged\");\n\n\t\t\t\tonLoad && onLoad(texture);\n\t\t\t},\n\t\t\terr => onError && onError(err)\n\t\t);\n\t}\n\n\t/**\n\t * 初始化事件监听\n\t */\n\tinitEvent() {\n\t\tFn.pointerdown = this.onPointerDown.bind(this);\n\t\tthis.container.addEventListener(\"pointerdown\", Fn.pointerdown);\n\t\tFn.pointermove = this.onPointerMove.bind(this);\n\t\tthis.container.addEventListener(\"pointermove\", Fn.pointermove);\n\t\tFn.touchstart = this.onTouchStart.bind(this);\n\t\tthis.container.addEventListener(\"touchstart\", Fn.touchstart);\n\t\tFn.dblclick = this.onDoubleClick.bind(this);\n\t\tthis.container.addEventListener(\"dblclick\", Fn.dblclick);\n\t}\n\n\t/**\n\t * 组装脚本（支持热更新）\n\t * @param uuids 传入此参数则仅组装此数组下Object.uuid的脚本\n\t * @param filterName 传入此参数则仅组装此数组下Object.uuid的脚本中name匹配的脚本\n\t */\n\tinstallScripts(uuids?: string | string[], filterName: string = \"\") {\n\t\tif (!this.enableScript) return;\n\n\t\t// 注册 Helper\n\t\tconst helper = new ScriptHelper(this.scene);\n\n\t\t// 定义注入的参数名\n\t\tlet scriptWrapParams = \"THREE,helper,renderer,scene,camera,controls,timer,render\";\n\t\t// 定义返回的结构\n\t\tconst scriptWrapResultObj = {};\n\t\t// 注入的函数绑定this\n\t\tconst fns = {\n\t\t\trender: this.render.bind(this),\n\t\t};\n\n\t\t// 拼接下方闭包函数返回的结构，即返回脚本中写的支持的事件函数\n\t\tconst validEvents = Object.keys(events);\n\n\t\t// 准备返回结构\n\t\tvalidEvents.forEach(eventName => {\n\t\t\tscriptWrapParams += \",\" + eventName;\n\t\t\tscriptWrapResultObj[eventName] = eventName;\n\t\t});\n\n\t\t// scriptWrapResultObj是json，会包含双引号，但是后面拼接闭包函数的返回结果里面不能有双引号，因为这些值都会解析为变量\n\t\tconst scriptWrapResult = JSON.stringify(scriptWrapResultObj).replace(/\"/g, \"\");\n\n\t\t// 处理特定 UUID（热更新）\n\t\tconst processUuid = (uuid: string) => {\n\t\t\t// 先卸载旧脚本\n\t\t\tthis.uninstallScriptsByUuid(uuid, filterName);\n\n\t\t\tconst object = this.scene.getObjectByProperty(\"uuid\", uuid);\n\t\t\tif (!object) {\n\t\t\t\tApp.log.warn(`[Script] 不存在uuid为${uuid}的对象`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 一个模型允许存在多个脚本\n\t\t\tconst scripts = App.scripts[uuid] || [];\n\t\t\tconst uuidEvents = uuidEventMap.get(uuid) || new Map<string, { name: string; fn: Function }[]>();\n\n\t\t\tscripts.forEach(script => {\n\t\t\t\t// 如果存在需要按照name过滤\n\t\t\t\tif (filterName && filterName !== script.name) return;\n\n\t\t\t\tconst functions = new Function(scriptWrapParams, `${script.source}\\nreturn ${scriptWrapResult};`).bind(object)(\n\t\t\t\t\tTHREE,\n\t\t\t\t\thelper,\n\t\t\t\t\tthis.renderer,\n\t\t\t\t\tthis.scene,\n\t\t\t\t\tthis.camera,\n\t\t\t\t\tthis.modules.controls,\n\t\t\t\t\tthis.timer,\n\t\t\t\t\tfns.render\n\t\t\t\t);\n\n\t\t\t\tObject.entries(functions).forEach(([name, fn]) => {\n\t\t\t\t\tif (!fn || !validEvents.includes(name)) {\n\t\t\t\t\t\tif (fn && !validEvents.includes(name)) {\n\t\t\t\t\t\t\tApp.log.warn(`[Script] 不支持的事件类型：${name}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst boundFn = (e: any) => {\n\t\t\t\t\t\tconst { type, target, ...params } = e;\n\n\t\t\t\t\t\t// 点击事件只分发给对应模型\n\t\t\t\t\t\tif ([\"onPick\", \"onDoubleClick\"].includes(name)) {\n\t\t\t\t\t\t\tconst { intersect, object: _object } = params;\n\n\t\t\t\t\t\t\tif (_object.uuid !== object.uuid) return;\n\n\t\t\t\t\t\t\t(fn as Function).bind(object)(intersect as THREE.Intersection);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (isEmptyObject(params)) {\n\t\t\t\t\t\t\t\t(fn as Function).bind(object)();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t(fn as Function).bind(object)(...Object.values(params));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\t// 添加到全局事件集合\n\t\t\t\t\tif (!events[name][uuid]) events[name][uuid] = [];\n\t\t\t\t\tevents[name][uuid].push(boundFn);\n\n\t\t\t\t\t// 添加到 UUID 事件映射\n\t\t\t\t\tif (!uuidEvents.has(name)) uuidEvents.set(name, []);\n\t\t\t\t\tuuidEvents.get(name)!.push({\n\t\t\t\t\t\tname: script.name,\n\t\t\t\t\t\tfn: boundFn,\n\t\t\t\t\t});\n\n\t\t\t\t\t// 添加事件监听\n\t\t\t\t\tthis.addEventListener(name as keyof ViewerEventMap, boundFn);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// 更新 UUID 映射\n\t\t\tuuidEventMap.set(uuid, uuidEvents);\n\t\t};\n\n\t\t// 处理指定 UUID 或全部\n\t\tif (uuids) {\n\t\t\t(Array.isArray(uuids) ? uuids : [uuids]).forEach(processUuid);\n\t\t} else {\n\t\t\tObject.keys(App.scripts).forEach(processUuid);\n\t\t}\n\n\t\tif (!Fn.keydown) {\n\t\t\tFn.keydown = (event: KeyboardEvent) => {\n\t\t\t\tthis.dispatchEvent({ type: \"onKeyDown\", event });\n\t\t\t};\n\t\t\twindow.addEventListener(\"keydown\", Fn.keydown);\n\t\t\tFn.keyup = (event: KeyboardEvent) => {\n\t\t\t\tthis.dispatchEvent({ type: \"onKeyUp\", event });\n\t\t\t};\n\t\t\twindow.addEventListener(\"keyup\", Fn.keyup);\n\t\t}\n\t}\n\n\t/**\n\t * 按 object UUID 卸载脚本（热更新用）\n\t * @param uuid 传入此参数则仅卸载此Object.uuid的脚本\n\t * @param filterName 传入此参数则仅卸载此Object.uuid的脚本中name匹配的脚本\n\t */\n\tuninstallScriptsByUuid(uuid: string, filterName: string = \"\") {\n\t\tif (!uuidEventMap.has(uuid)) return;\n\n\t\tconst uuidEvents = uuidEventMap.get(uuid)!;\n\n\t\tconst uuidEventsArray = Array.from(uuidEvents);\n\t\tfor (let i = uuidEventsArray.length - 1; i >= 0; i--) {\n\t\t\tconst [eventName, scripts] = uuidEventsArray[i];\n\n\t\t\t// 移除事件监听\n\t\t\tfor (let i = scripts.length - 1; i >= 0; i--) {\n\t\t\t\tconst sc = scripts[i];\n\n\t\t\t\tif (filterName && filterName !== sc.name) continue;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tthis.removeEventListener(eventName as keyof ViewerEventMap, sc.fn);\n\n\t\t\t\t// 从uuidEventMap 移除\n\t\t\t\tscripts.splice(i, 1);\n\t\t\t\tif (scripts.length === 0) {\n\t\t\t\t\tuuidEvents.delete(eventName);\n\t\t\t\t}\n\n\t\t\t\t// 全局事件集合\n\t\t\t\tconst es = events[eventName][uuid];\n\t\t\t\t// 移除相应函数\n\t\t\t\tconst ei = es.findIndex(f => f === sc.fn);\n\t\t\t\tif (ei !== -1) {\n\t\t\t\t\tes.splice(ei, 1);\n\t\t\t\t}\n\n\t\t\t\tif (es.length === 0) {\n\t\t\t\t\tdelete events[eventName][uuid];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// 清理 UUID 映射\n\t\tif (Array.from(uuidEvents.keys()).length === 0) {\n\t\t\tuuidEventMap.delete(uuid);\n\t\t}\n\t}\n\n\t/**\n\t * 卸载所有脚本\n\t */\n\tunInstallScripts() {\n\t\tif (this.enableScript) return;\n\n\t\t// 直接遍历 UUID 映射，复杂度 O(n)\n\t\tuuidEventMap.forEach((_, uuid) => {\n\t\t\tthis.uninstallScriptsByUuid(uuid);\n\t\t});\n\n\t\t// 重置数据结构\n\t\tuuidEventMap.clear();\n\t\tObject.keys(events).forEach(event => {\n\t\t\tevents[event] = {};\n\t\t});\n\n\t\tif (Fn.keydown) {\n\t\t\twindow.removeEventListener(\"keydown\", Fn.keydown);\n\t\t\tFn.keydown = null;\n\n\t\t\twindow.removeEventListener(\"keyup\", Fn.keyup);\n\t\t\tFn.keyup = null;\n\t\t}\n\t}\n\n\t/**\n\t * 加载离线场景包\n\t */\n\tloadOfflineScene() {\n\t\t// const requestConfig = App.config.getKey('request');\n\t\t// const packageUrl = `${requestConfig.baseUrl}/${requestConfig.sceneId}`;\n\t}\n\n\t/**\n\t * 计算整个场景的Box3\n\t */\n\tcomputedSceneBox3() {\n\t\tthis.sceneBox3.setFromObject(this.scene);\n\t}\n\n\t/**\n\t * 更新相机宽高比\n\t */\n\tupdateAspectRatio() {\n\t\tfor (const uuid in App.cameras) {\n\t\t\tconst camera = App.cameras[uuid];\n\n\t\t\tconst aspect = this.container.offsetWidth / this.container.offsetHeight;\n\n\t\t\tif (camera.isPerspectiveCamera) {\n\t\t\t\t(<THREE.PerspectiveCamera>camera).aspect = aspect;\n\t\t\t}\n\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t\tconst cameraHelper = App.helpers[camera.id];\n\t\t\tif (cameraHelper) cameraHelper.update();\n\t\t}\n\t}\n\n\t/**\n\t * 获取射线选中\n\t * @param point\n\t */\n\tgetIntersects(point: THREE.Vector2) {\n\t\tconst mouse = new THREE.Vector2();\n\t\tmouse.set(point.x * 2 - 1, -(point.y * 2) + 1);\n\t\tthis.raycaster.setFromCamera(mouse, this.camera);\n\n\t\tconst objects: THREE.Object3D[] = [];\n\t\t(App.locked ? App.locked : this.scene).traverseByCondition(\n\t\t\tchild => {\n\t\t\t\tthis.camera.layers.test(child.layers) && objects.push(child);\n\t\t\t},\n\t\t\tchild => !child.ignore && child.visible\n\t\t);\n\n\t\tthis.sceneHelpers.traverseVisible(child => {\n\t\t\tif (child.name === \"picker\") {\n\t\t\t\tthis.camera.layers.test(child.layers) && objects.push(child);\n\t\t\t}\n\t\t});\n\n\t\t// 粒子\n\t\tthis.modules.particleSystem.particlesGroup.traverse(child => {\n\t\t\tif (!this.camera.layers.test(child.layers)) return;\n\n\t\t\tif (child.children.length === 0) {\n\t\t\t\tif (App.locked) {\n\t\t\t\t\tchild.proxy?.isAncestor(App.locked) && objects.push(child);\n\t\t\t\t} else {\n\t\t\t\t\tobjects.push(child);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn this.raycaster.intersectObjects(objects, false);\n\t}\n\n\t/**\n\t * 处理点击\n\t */\n\thandleClick() {\n\t\tif (onDownPosition.distanceTo(onUpPosition) === 0) {\n\t\t\tconst intersects = this.getIntersects(onUpPosition);\n\t\t\tuseDispatchSignal(\"intersectionsDetected\", intersects);\n\n\t\t\tif (intersects.length > 0) {\n\t\t\t\tlet object = intersects[0].object;\n\n\t\t\t\tif (object.proxy) {\n\t\t\t\t\tobject = object.proxy;\n\t\t\t\t}\n\n\t\t\t\tthis.dispatchEvent({ type: \"onPick\", intersect: intersects[0], object });\n\t\t\t}\n\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\t/**\n\t * 处理鼠标按下\n\t * @param event\n\t */\n\tonPointerDown(event: PointerEvent) {\n\t\tthis.dispatchEvent({ type: \"onPointerDown\", event });\n\n\t\tevent.preventDefault();\n\t\tconst array = getMousePosition(this.container, event.clientX, event.clientY);\n\t\tonDownPosition.fromArray(array);\n\t\tFn.pointerup = this.onPointerUp.bind(this);\n\t\tdocument.addEventListener(\"pointerup\", Fn.pointerup);\n\t}\n\n\t/**\n\t * 处理鼠标抬起\n\t * @param event\n\t */\n\tonPointerUp(event: PointerEvent) {\n\t\tthis.dispatchEvent({ type: \"onPointerUp\", event });\n\n\t\tconst array = getMousePosition(this.container, event.clientX, event.clientY);\n\t\tonUpPosition.fromArray(array);\n\t\tthis.handleClick();\n\t\tdocument.removeEventListener(\"pointerup\", Fn.pointerup);\n\t\tFn.pointerup = null;\n\t}\n\n\t/**\n\t * 处理鼠标移动\n\t * @param event\n\t */\n\tonPointerMove(event: PointerEvent) {\n\t\tthis.dispatchEvent({ type: \"onPointerMove\", event });\n\t}\n\n\t/**\n\t * 处理触屏按下\n\t * @param event\n\t */\n\tonTouchStart(event: TouchEvent) {\n\t\tthis.dispatchEvent({ type: \"onTouchStart\", event });\n\n\t\tconst touch = event.changedTouches[0];\n\t\tconst array = getMousePosition(this.container, touch.clientX, touch.clientY);\n\t\tonDownPosition.fromArray(array);\n\t\tFn.pointerup = this.onTouchEnd.bind(this);\n\t\tdocument.addEventListener(\"touchend\", Fn.pointerup);\n\t}\n\n\t/**\n\t * 处理触屏释放\n\t * @param event\n\t */\n\tonTouchEnd(event: TouchEvent) {\n\t\tthis.dispatchEvent({ type: \"onTouchEnd\", event });\n\n\t\tconst touch = event.changedTouches[0];\n\t\tconst array = getMousePosition(this.container, touch.clientX, touch.clientY);\n\t\tonUpPosition.fromArray(array);\n\t\tthis.handleClick();\n\t\tdocument.removeEventListener(\"touchend\", Fn.pointerup);\n\t\tFn.pointerup = null;\n\t}\n\n\t/**\n\t * 处理双击\n\t * @param event\n\t */\n\tonDoubleClick(event: PointerEvent) {\n\t\tconst array = getMousePosition(this.container, event.clientX, event.clientY);\n\t\tonDoubleClickPosition.fromArray(array);\n\t\tconst intersects = this.getIntersects(onDoubleClickPosition);\n\t\tif (intersects.length > 0) {\n\t\t\tlet object = intersects[0].object;\n\t\t\tuseDispatchSignal(\"objectFocused\", object);\n\n\t\t\tif (object.proxy) {\n\t\t\t\tobject = object.proxy;\n\t\t\t}\n\n\t\t\tthis.dispatchEvent({ type: \"onDoubleClick\", intersect: intersects[0], object });\n\t\t}\n\t}\n\n\t/**\n\t * 循环动画\n\t */\n\tanimate() {\n\t\tthis.timer.update();\n\n\t\tconst delta = this.timer.getDelta();\n\n\t\ttimeStamp += delta;\n\n\t\tif (timeStamp < App.singleFrameTime) return;\n\n\t\tthis.dispatchEvent({ type: \"beforeAnimation\", delta: timeStamp });\n\n\t\tlet needRender = App.animationManager.update(timeStamp);\n\t\tif (needRender) {\n\t\t\tif (App.selected !== null && App.selected.animations.length > 0) {\n\t\t\t\t// 避免某些蒙皮网格的帧延迟效应(e.g. Michelle.glb)\n\t\t\t\tApp.selected.updateWorldMatrix(false, true);\n\n\t\t\t\tif (!this.modules.effect.enabled) {\n\t\t\t\t\t//  选择框应反映当前动画状态\n\t\t\t\t\tthis.selectionBox.box.setFromObject(App.selected, true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.modules.controls.enabled && !this.modules.viewHelper.animating) {\n\t\t\tneedRender = this.modules.controls.update(timeStamp) || needRender;\n\t\t}\n\n\t\tif (this.modules.weather.update(timeStamp)) {\n\t\t\tneedRender = true;\n\t\t}\n\n\t\tthis.modules.shaderMaterialManager.update();\n\t\tif (this.modules.shaderMaterialManager.needRender) {\n\t\t\tneedRender = true;\n\t\t}\n\n\t\tthis.modules.particleSystem.update(timeStamp);\n\t\tif (this.modules.particleSystem.needsUpdate) {\n\t\t\tneedRender = true;\n\t\t}\n\n\t\tif (this.modules.dragControl.isDragging) {\n\t\t\tneedRender = true;\n\t\t}\n\n\t\tif (this.renderer?.xr.isPresenting) {\n\t\t\tneedRender = true;\n\t\t}\n\n\t\tthis.dispatchEvent({\n\t\t\ttype: \"afterAnimation\",\n\t\t\tdelta: timeStamp,\n\t\t\ttoBeRender: (_needRender: boolean = false) => {\n\t\t\t\tneedRender = _needRender;\n\t\t\t},\n\t\t});\n\n\t\tif (needRender) this.render(timeStamp);\n\n\t\tthis.updatePT();\n\n\t\t// console.log(`调用.animate时间间隔${timeStamp*1000}毫秒,delta:${delta}`);\n\t\t// 剩余的时间合并进入下次的判断计算\n\t\ttimeStamp = App.singleFrameTime ? timeStamp % App.singleFrameTime : 0;\n\t}\n\n\t/**\n\t * 初始化光线路径追踪模拟\n\t */\n\tinitPT() {\n\t\tif (App.viewportShading === \"realistic\") {\n\t\t\tthis.pathtracer?.init(this.scene, this.camera);\n\t\t}\n\t}\n\n\tupdatePTBackground() {\n\t\tif (App.viewportShading === \"realistic\") {\n\t\t\tthis.pathtracer?.setBackground();\n\t\t}\n\t}\n\n\tupdatePTEnvironment() {\n\t\tif (App.viewportShading === \"realistic\") {\n\t\t\tthis.pathtracer?.setEnvironment();\n\t\t}\n\t}\n\n\tupdatePTMaterials() {\n\t\tif (App.viewportShading === \"realistic\") {\n\t\t\tthis.pathtracer?.updateMaterials();\n\t\t}\n\t}\n\n\tupdatePT() {\n\t\tif (App.viewportShading === \"realistic\") {\n\t\t\tthis.pathtracer?.update();\n\t\t\tuseDispatchSignal(\"pathTracerUpdated\", this.pathtracer?.getSamples());\n\t\t}\n\t}\n\n\t/**\n\t * 渲染场景帧\n\t */\n\trender(delta?: number) {\n\t\tif (!this.renderer) return;\n\n\t\tif (isNil(delta)) {\n\t\t\tdelta = this.timer.getDelta();\n\t\t}\n\n\t\tconst startTime = performance.now();\n\n\t\tthis.dispatchEvent({ type: \"beforeRender\", delta: <number>delta });\n\n\t\tthis.renderer.clearDepth();\n\n\t\tApp.csm.update();\n\n\t\tif (this.modules.effect.enabled) {\n\t\t\tthis.modules.effect.render(<number>delta);\n\t\t} else {\n\t\t\tthis.renderer.render(this.scene, App.viewportCamera);\n\t\t}\n\n\t\t// 非默认相机不渲染辅助\n\t\tif (this.camera === App.viewportCamera) {\n\t\t\tif (this.options.edit?.enabled) this.renderer.render(this.sceneHelpers, this.camera);\n\t\t}\n\n\t\tthis.css2DRenderer.render(this.scene, App.viewportCamera);\n\t\tthis.css3DRenderer.render(this.scene, App.viewportCamera);\n\n\t\tthis.modules.viewHelper.render();\n\n\t\tthis.dispatchEvent({ type: \"afterRender\", delta: <number>delta });\n\n\t\tconst endTime = performance.now();\n\t\t// 计算帧时\n\t\tconst fs = endTime - startTime;\n\t\tuseDispatchSignal(\"sceneRendered\", fs);\n\t}\n\n\t/**\n\t * 销毁\n\t */\n\tdispose() {\n\t\tthis.dispatchEvent({ type: \"beforeDestroy\" });\n\n\t\tthis.container.removeEventListener(\"mousedown\", Fn.mousedown);\n\t\tFn.mousedown = null;\n\t\tthis.container.removeEventListener(\"pointermove\", Fn.pointermove);\n\t\tFn.pointermove = null;\n\t\tthis.container.removeEventListener(\"touchstart\", Fn.touchstart);\n\t\tFn.touchstart = null;\n\t\tthis.container.removeEventListener(\"dblclick\", Fn.dblclick);\n\t\tFn.dblclick = null;\n\n\t\tObject.keys(this.modules).forEach(key => {\n\t\t\tif (this.modules[key].dispose) {\n\t\t\t\tthis.modules[key].dispose();\n\t\t\t}\n\t\t});\n\n\t\tthis.dispatchEvent({ type: \"afterDestroy\" });\n\n\t\tthis.unInstallScripts();\n\t}\n\n\t/* -----------------暂时放在Viewer下的工具方法-------------------- */\n\n\t/**\n\t * 添加粒子\n\t * @emitter 粒子发射器\n\t * @body 粒子主体\n\t */\n\taddParticle(emitter: Emitter, body: THREE.Sprite | THREE.Mesh, name: string = \"Particles\") {\n\t\tconst particleEmitter = new ParticleEmitter(emitter);\n\t\tparticleEmitter.name = name;\n\n\t\tParticleSystem.Body3DMap.set(particleEmitter.uuid, body);\n\n\t\tthis.modules.particleSystem.spriteSystem.addEmitter(emitter);\n\n\t\tApp.execute(new AddObjectCommand(particleEmitter));\n\t}\n\n\t/**\n\t * 获取画布的截屏图片\n\t * @returns Promise<HTMLImageElement> 截屏的图片对象\n\t */\n\tgetViewportImage() {\n\t\treturn new Promise<HTMLImageElement>((resolve, rejcet) => {\n\t\t\t// @ts-ignore\n\t\t\tconst _preserveDrawingBuffer = this.renderer.getContext().preserveDrawingBuffer;\n\t\t\t// @ts-ignore\n\t\t\tthis.renderer.getContext().preserveDrawingBuffer = true;\n\t\t\tthis.modules.viewHelper.hidden = false;\n\t\t\tthis.render();\n\n\t\t\tthis.renderer.domElement.toBlob(blob => {\n\t\t\t\tif (blob === null) {\n\t\t\t\t\trejcet(\"Screenshots fail\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst image = new Image();\n\t\t\t\timage.src = URL.createObjectURL(blob);\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tthis.renderer.getContext().preserveDrawingBuffer = _preserveDrawingBuffer;\n\t\t\t\tthis.modules.viewHelper.hidden = true;\n\t\t\t\tthis.render();\n\n\t\t\t\tresolve(image);\n\t\t\t});\n\t\t});\n\t}\n}"
  },
  {
    "path": "packages/sdk/lib/core/viewer/ViewerOptions.ts",
    "content": "export const ViewerOptions = (): IViewerSetting => ({\n    // 场景canvas容器\n    container: undefined,\n    // 场景背景及环境贴图\n    hdr: undefined,\n    // 编辑模式\n    edit: {\n        // 是否启用\n        enabled: false,\n        // 是否显示辅助线\n        helpers: true,\n        // 是否现实gizmo三坐标轴\n        gizmo: true\n    },\n    // 是否启用脚本，自动运行脚本\n    enableScript: true,\n    // 请求相关\n    request:{\n        baseUrl:\"\"\n    },\n    // 场景内网格\n    grid:{\n        // 是否启用\n        enabled: true,\n        // 网格颜色\n        color: 0x999999,\n        // 网格行数\n        row: 100,\n        // 网格列数\n        column:100,\n    },\n    // 相机控制器\n    control: {\n        minAzimuthAngle: -Infinity,\n        maxAzimuthAngle: Infinity,\n        minDistance: 0.0,\n        maxDistance: Infinity,\n        maxPolarAngle: Math.PI,\n        minPolarAngle: 0,\n        maxZoom:Infinity,\n        minZoom:0.01,\n        dollySpeed:1,\n        // 缩放是否以鼠标位置为中心\n        dollyToCursor: false,\n    }\n})"
  },
  {
    "path": "packages/sdk/lib/core/viewer/ViewerPathTracer.ts",
    "content": "import * as THREE from 'three';\nimport { WebGLPathTracer } from 'three-gpu-pathtracer';\n\nclass ViewerPathTracer {\n\tprivate readonly renderer: THREE.WebGLRenderer;\n\tpathTracer:WebGLPathTracer | null = null;\n\n\tconstructor(renderer:THREE.WebGLRenderer) {\n\t\tthis.renderer = renderer;\n\t}\n\n\tinit(scene:THREE.Scene, camera:THREE.Camera) {\n\t\tif (this.pathTracer === null ) {\n\t\t\tthis.pathTracer = new WebGLPathTracer(this.renderer);\n\t\t\tthis.pathTracer.filterGlossyFactor = 0.5;\n\t\t}\n\n\t\tthis.pathTracer.setScene(scene, camera);\n\t}\n\n\tsetSize() {\n\t\tif (this.pathTracer === null) return;\n\n\t\t// 路径跟踪器大小会根据画布自动更新\n\t\tthis.pathTracer.updateCamera();\n\t}\n\n\tsetBackground() {\n\t\tif (this.pathTracer === null) return;\n\n\t\t// 根据初始化的场景字段更新环境设置\n\t\tthis.pathTracer.updateEnvironment();\n\t}\n\n\tsetEnvironment() {\n\t\tif (this.pathTracer === null) return;\n\n\t\tthis.pathTracer.updateEnvironment();\n\t}\n\n\tupdateMaterials() {\n\t\tif (this.pathTracer === null) return;\n\n\t\tthis.pathTracer.updateMaterials();\n\t}\n\n\tupdate() {\n\t\tif (this.pathTracer === null) return;\n\n\t\tthis.pathTracer.renderSample();\n\t}\n\n\treset() {\n\t\tif (this.pathTracer === null) return;\n\n\t\tthis.pathTracer.updateCamera();\n\t}\n\n\tgetSamples() {\n\t\tif (this.pathTracer === null) return;\n\n\t\treturn this.pathTracer.samples;\n\t}\n}\n\nexport { ViewerPathTracer };\n"
  },
  {
    "path": "packages/sdk/lib/core/viewer/modules/CameraManage.ts",
    "content": "import * as THREE from \"three\";\nimport CameraControls from \"camera-controls\";\nimport Viewer from \"../Viewer\"\n\n/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/10/21 21:16\n * @description 场景相机管理器。 TODO: 后续应把viewport.camera也管理进来\n */\nexport class CameraManage {\n    private readonly viewer: Viewer;\n\n    /**\n     * 默认交互相机参数\n     */\n    options: {};\n\n    private readonly controls: CameraControls;\n\n    constructor(viewer:Viewer,cameraControls:CameraControls) {\n        this.viewer = viewer;\n        this.controls = cameraControls;\n\n        this.options = this.viewer.options.control;\n\n        this.init();\n    }\n\n    init(){\n        this.setInteract(this.options);\n    }\n\n    /**\n     * 设置交互模式\n     */\n    setInteract(config){\n        const opt = Object.assign({}, this.options, config);\n\n        Object.keys(opt).forEach(key => {\n            if(this.controls[key] !== undefined){\n                this.controls[key] = opt[key];\n            }\n        })\n    }\n\n    /**\n     * 前视图\n     * @description 以z轴方向为正前方\n     */\n    front() {\n        return new Promise((resolve, reject) => {\n            try {\n                this.setInteract({\n                    minAzimuthAngle: 0,\n                    maxAzimuthAngle: 0,\n                    minPolarAngle: Math.PI / 2,\n                    maxPolarAngle: Math.PI / 2,\n                })\n\n                this.controls.rotateTo(THREE.MathUtils.degToRad(0), THREE.MathUtils.degToRad(90), true).then(() => {\n                    this.controls.fitToSphere(this.viewer.scene, true);\n                })\n\n                resolve(this.viewer.camera);\n            } catch (e) {\n                reject(e)\n            }\n        })\n    }\n\n    /**\n     * 后视图\n     * @description -z方向\n     */\n    rear() {\n        return new Promise((resolve, reject) => {\n            try {\n                this.setInteract({\n                    minAzimuthAngle: -Math.PI,\n                    maxAzimuthAngle: -Math.PI,\n                    minPolarAngle: Math.PI / 2,\n                    maxPolarAngle: Math.PI / 2,\n                });\n\n                this.controls.rotateTo(THREE.MathUtils.degToRad(-180), THREE.MathUtils.degToRad(90), true).then(() => {\n                    this.controls.fitToSphere(this.viewer.scene, true);\n                })\n\n                resolve(this.viewer.camera);\n            } catch (e) {\n                reject(e)\n            }\n        })\n    }\n\n    /**\n     * 左视图\n     * @description -x方向\n     */\n    left() {\n        return new Promise((resolve, reject) => {\n            try {\n                this.setInteract({\n                    minAzimuthAngle: -Math.PI / 2,\n                    maxAzimuthAngle: -Math.PI / 2,\n                    minPolarAngle: Math.PI / 2,\n                    maxPolarAngle: Math.PI / 2,\n                });\n\n                this.controls.rotateTo(THREE.MathUtils.degToRad(-180), THREE.MathUtils.degToRad(180), true).then(() => {\n                    this.controls.fitToSphere(this.viewer.scene, true);\n                })\n\n                resolve(this.viewer.camera);\n            } catch (e) {\n                reject(e)\n            }\n        })\n    }\n\n    /**\n     * 右视图\n     * @description x方向\n     */\n    right() {\n        return new Promise((resolve, reject) => {\n            try {\n                this.setInteract({\n                    minAzimuthAngle: Math.PI / 2,\n                    maxAzimuthAngle: Math.PI / 2,\n                    minPolarAngle: Math.PI / 2,\n                    maxPolarAngle: Math.PI / 2\n                });\n\n                this.controls.rotateTo(THREE.MathUtils.degToRad(180), THREE.MathUtils.degToRad(180), true).then(() => {\n                    this.controls.fitToSphere(this.viewer.scene, true);\n                })\n\n                resolve(this.viewer.camera);\n            } catch (e) {\n                reject(e)\n            }\n        })\n    }\n\n    /**\n     * 顶视图\n     * @description y方向\n     */\n    top() {\n        return new Promise((resolve, reject) => {\n            try {\n                this.setInteract({\n                    minAzimuthAngle: -Infinity,\n                    maxAzimuthAngle: Infinity,\n                    minPolarAngle: 0,\n                    maxPolarAngle: 0,\n                })\n                this.controls.rotatePolarTo(0,true).then(() => {\n                    this.controls.fitToSphere(this.viewer.scene, true);\n                });\n\n                resolve(this.viewer.camera);\n            } catch (e) {\n                reject(e)\n            }\n        })\n    }\n\n    /**\n     * 底视图\n     * @description -y方向\n     */\n    bottom() {\n        return new Promise((resolve, reject) => {\n            try {\n                this.setInteract({\n                    minAzimuthAngle: -Infinity,\n                    maxAzimuthAngle: Infinity,\n                    minPolarAngle: Math.PI,\n                    maxPolarAngle: Math.PI,\n                });\n\n                this.controls.rotatePolarTo(Math.PI,true).then(() => {\n                    this.controls.fitToSphere(this.viewer.scene, true);\n                });\n\n                resolve(this.viewer.camera);\n            } catch (e) {\n                reject(e)\n            }\n        })\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/viewer/modules/Drag.ts",
    "content": "import * as THREE from \"three\";\nimport {DragControls} from '@/core/controls/DragControls.js';\nimport {useDispatchSignal} from \"@/hooks\";\nimport Viewer from \"../Viewer\";\nimport App from \"@/core/app/App\";\nimport {Measure} from \"@/core/tools\";\n\n// dragControls 绑定函数\nlet dragStartFn,dragFn, dragEndFn,clickblankFn;\n\nclass Drag {\n    protected _dragObjects: THREE.Object3D[] = []; // 拖拽对象\n    public dragControls: any;\n    private onDownPosition: { x: number; y: number } = {x:-1,y:-1};\n\n    public viewer:Viewer;\n    public measureInstance:Measure | null = null;\n    public isDragging = false;\n\n    constructor(viewer:Viewer) {\n        this.viewer = viewer;\n\n        // 物体拖拽控制器\n        this.dragControls = new DragControls(this._dragObjects, viewer.camera, viewer.renderer.domElement);\n        this.dragControls.deactivate(); // 默认禁用\n        dragStartFn = this.dragControlsStart.bind(this);\n        this.dragControls.addEventListener(\"dragstart\", dragStartFn);\n        dragFn = this.drag.bind(this);\n        this.dragControls.addEventListener(\"drag\", dragFn);\n        dragEndFn = this.dragControlsEnd.bind(this);\n        this.dragControls.addEventListener(\"dragend\", dragEndFn);\n        // 点击可拖拽物体之外\n        clickblankFn = this.clickblank.bind(this);\n        this.dragControls.addEventListener(\"clickblank\", clickblankFn);\n    }\n\n    set domElement(element: HTMLElement) {\n        this.dragControls.setDomElement(element);\n    }\n\n    setMeasureInstance(measureInstance: Measure) {\n        this.measureInstance = measureInstance;\n    }\n\n    setDragObjects(objects: THREE.Object3D[], type: \"eq\" | \"push\" | \"remove\" = \"eq\") {\n        // 当前拖拽对象为空时加入对象需激活控制器\n        if (this._dragObjects.length === 0) {\n            if (objects.length > 0) {\n                this.dragControls.activate();\n            }\n\n            this._dragObjects = objects;\n        } else {\n            // 当前拖拽对象不为空时\n            if (type === \"eq\") {\n                // 是清空拖拽对象的设置，则禁用控制器\n                if (objects.length === 0) {\n                    this.dragControls.deactivate();\n                }\n\n                this._dragObjects = objects;\n            } else if (type === \"push\") {\n                this._dragObjects.push(...objects);\n            } else if (type === \"remove\") {\n                this._dragObjects = this._dragObjects.filter((item) => !objects.includes(item));\n            }\n        }\n\n        this.dragControls.setObjects(this._dragObjects)\n    }\n\n    // 拖拽开始\n    dragControlsStart(e) {\n        // 右键拖拽不响应\n        if(e.e.button === 2 || !e.object.userData.type || !e.object.visible || !App.sceneHelpers.visible) return;\n\n        e.e.preventDefault();\n\n        // 拖拽时禁用其他控制器\n        this.viewer.modules.controls.enabled = false;\n        this.viewer.modules.transformControls && (this.viewer.modules.transformControls.enabled = false);\n\n        this.isDragging = true;\n\n        // 记录拖拽按下的位置和对象\n        this.onDownPosition = {x: e.e.clientX, y: e.e.clientY};\n\n        switch (e.object.userData.type) {\n            case \"measure-marker\":\n                this.measureInstance?.redraw(e.object);\n                break;\n        }\n    }\n\n    // 拖拽中\n    drag(e) {\n        useDispatchSignal(\"objectChanged\", e.object)\n    }\n\n    // 拖拽结束\n    dragControlsEnd(e) {\n        // 右键拖拽不响应\n        if(e.e.button === 2 || !e.object.visible || !App.sceneHelpers.visible) return;\n\n        // 拖拽结束启用其他控制器\n        this.viewer.modules.controls.enabled = true;\n        this.viewer.modules.transformControls && (this.viewer.modules.transformControls.enabled = true);\n\n        this.isDragging = false;\n\n        if (!e.object.userData.type) return;\n\n        // 判断位置是否有变化,没有变化则为点击\n        if(this.onDownPosition.x === e.e.clientX && this.onDownPosition.y === e.e.clientY) {\n            if(e.object.userData.onClick){\n                e.object.userData.onClick(e);\n            }\n        }\n\n        switch (e.object.userData.type) {\n            case \"measure-marker\":\n                this.measureInstance?.redrawComplete();\n                break;\n        }\n    }\n\n    // 点击可拖拽物体之外\n    clickblank(e){\n        if (e.e.button === 2) return;\n    }\n\n    dispose() {\n        this._dragObjects = [];\n\n        this.dragControls.removeEventListener(\"dragstart\", dragStartFn);\n        this.dragControls.removeEventListener(\"dragend\", dragEndFn);\n        this.dragControls.dispose();\n    }\n}\n\nexport {Drag};"
  },
  {
    "path": "packages/sdk/lib/core/viewer/modules/Effect.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/10/26 18:27\n * @description 后处理\n */\nimport * as THREE from \"three\";\nimport {EffectComposer} from \"three/examples/jsm/postprocessing/EffectComposer.js\";\nimport {Pass} from \"three/examples/jsm/postprocessing/Pass.js\";\nimport {OutlinePass} from \"three/examples/jsm/postprocessing/OutlinePass.js\";\nimport {ShaderPass} from \"three/examples/jsm/postprocessing/ShaderPass.js\";\nimport {FXAAShader} from 'three/examples/jsm/shaders/FXAAShader.js';\nimport {RenderPass} from 'three/examples/jsm/postprocessing/RenderPass.js';\nimport {GammaCorrectionShader} from \"three/examples/jsm/shaders/GammaCorrectionShader.js\";\nimport {UnrealBloomPass} from 'three/examples/jsm/postprocessing/UnrealBloomPass.js';\nimport {BokehPass} from 'three/examples/jsm/postprocessing/BokehPass.js';\nimport {RenderPixelatedPass} from 'three/examples/jsm/postprocessing/RenderPixelatedPass.js';\nimport {HalftonePass} from 'three/examples/jsm/postprocessing/HalftonePass.js';\nimport {LUTPass} from 'three/examples/jsm/postprocessing/LUTPass.js';\nimport {LUTCubeLoader} from 'three/examples/jsm/loaders/LUTCubeLoader.js';\nimport {LUT3dlLoader} from 'three/examples/jsm/loaders/LUT3dlLoader.js';\nimport {LUTImageLoader} from 'three/examples/jsm/loaders/LUTImageLoader.js';\nimport { AfterimagePass } from 'three/examples/jsm/postprocessing/AfterimagePass.js';\n// import {OutputPass} from \"three/examples/jsm/postprocessing/OutputPass.js\";\nimport {useAddSignal} from \"@/hooks\";\nimport Viewer from \"../Viewer\";\nimport App from \"@/core/app/App\";\n\ntype supportPass = Pass | OutlinePass | ShaderPass | UnrealBloomPass | BokehPass | RenderPixelatedPass | HalftonePass;\n\nlet _passConfigChangeFn: any = null;\n\nexport const LUTEffectMap = {\n    'Bourbon 64.CUBE': null,\n    'Chemical 168.CUBE': null,\n    'Clayton 33.CUBE': null,\n    'Cubicle 99.CUBE': null,\n    'Remy 24.CUBE': null,\n    'Presetpro-Cinematic.3dl': null,\n    'NeutralLUT.png': null,\n    'B&WLUT.png': null,\n    'NightLUT.png': null\n};\n\nexport class Effect {\n    private viewer: Viewer;\n\n    composer: EffectComposer | undefined;\n    outlinePass: OutlinePass | undefined;\n\n    // 其他可动态配置的通道\n    static PassMap = new Map<string, supportPass>();\n\n    constructor(viewer: Viewer) {\n        this.viewer = viewer;\n\n        _passConfigChangeFn = this.handlePassConfigChange.bind(this);\n        useAddSignal(\"effectPassConfigChange\", _passConfigChangeFn)\n    }\n\n    get enabled() {\n        return App.project.getKey(\"effect.enabled\");\n    }\n\n    createComposer() {\n        if (this.composer) {\n            this.clear();\n        }\n\n        const {composer, outlinePass} = this.initComposer();\n        this.composer = composer as EffectComposer;\n        this.outlinePass = outlinePass;\n\n        // 加入默认打开的通道\n        const effectConfig = App.project.getKey(\"effect\");\n        if (effectConfig) {\n            Object.keys(effectConfig).forEach(key => {\n                if (key === \"enabled\" || key === \"Outline\") return;\n\n                // 判断是否存在 enabled 属性\n                if (effectConfig[key].hasOwnProperty('enabled') && effectConfig[key].enabled === true) {\n                    if (!this[key] || !(this[key] instanceof Pass)) return;\n\n                    this.composer?.addPass(this[key]);\n                }\n            })\n        }\n    }\n\n    protected initComposer() {\n        if (!this.viewer.renderer) return {};\n\n        const pixelRatio = this.viewer.renderer.getPixelRatio();\n\n        // 创建后处理对象EffectComposer，WebGL渲染器作为参数\n        let composer = new EffectComposer(this.viewer.renderer);\n        composer.setPixelRatio(pixelRatio);\n        composer.setSize(this.viewer.container.offsetWidth, this.viewer.container.offsetHeight);\n\n        // let ssaaRenderPass = new SSAARenderPass(this.viewer.scene, this.viewer.camera);\n        // ssaaRenderPass.unbiased = false;\n        // ssaaRenderPass.sampleLevel = 2;\n        // ssaaRenderPass.clearColor = new THREE.Color(\"#272727\");\n        // ssaaRenderPass.clearAlpha = 0;\n        // composer.addPass(ssaaRenderPass);\n\n        const renderPass = new RenderPass(this.viewer.scene, this.viewer.camera);\n        renderPass.clearColor = new THREE.Color(\"#272727\");\n        renderPass.clearAlpha = 0;\n        renderPass.clearDepth = true;\n        composer.addPass(renderPass);\n\n        const outlineConfig = App.project.getKey(\"effect.Outline\");\n        const outlinePass = new OutlinePass(new THREE.Vector2(this.viewer.container.offsetWidth, this.viewer.container.offsetHeight), this.viewer.scene, this.viewer.camera)\n        outlinePass.visibleEdgeColor = new THREE.Color(outlineConfig.visibleEdgeColor || \"#ffee00\");\n        outlinePass.hiddenEdgeColor = new THREE.Color(outlineConfig.hiddenEdgeColor || \"#ff6a00\");\n        outlinePass.edgeStrength = outlineConfig.edgeStrength || Number(3.0);\n        outlinePass.edgeGlow = outlineConfig.edgeGlow || Number(0.2);\n        outlinePass.edgeThickness = outlineConfig.edgeThickness || Number(1.0);\n        outlinePass.pulsePeriod = outlineConfig.pulsePeriod || Number(0.0);\n        outlinePass.usePatternTexture = outlineConfig.usePatternTexture || false;\n        outlinePass.selectedObjects = [];\n        composer.addPass(outlinePass);\n\n        // 创建伽马校正通道. 解决gltf模型后处理时，颜色偏差的问题\n        const gammaPass = new ShaderPass(GammaCorrectionShader);\n        composer.addPass(gammaPass);\n\n        // const outputPass = new OutputPass();\n        // composer.addPass(outputPass);\n\n        return {composer, outlinePass};\n    }\n\n    /**\n     * FXAA 抗锯齿通道\n     */\n    get FXAA(): ShaderPass | null {\n        if (Effect.PassMap.has(\"FXAA\")) {\n            return Effect.PassMap.get(\"FXAA\") as ShaderPass;\n        }\n\n        if (!this.viewer.renderer) return null;\n\n        const options = App.project.getKey(\"effect.FXAA\");\n\n        const fxaaPass = new ShaderPass(FXAAShader);\n        fxaaPass.clear = true;\n        const pixelRatio = this.viewer.renderer.getPixelRatio();\n        fxaaPass.material.uniforms['resolution'].value.x = 1 / (this.viewer.container.offsetWidth * pixelRatio);\n        fxaaPass.material.uniforms['resolution'].value.y = 1 / (this.viewer.container.offsetHeight * pixelRatio);\n        fxaaPass.enabled = options.enabled || false;\n\n        Effect.PassMap.set(\"FXAA\", fxaaPass);\n\n        return fxaaPass;\n    }\n\n    /**\n     * UnrealBloom 仿UE辉光\n     */\n    get UnrealBloom(): UnrealBloomPass {\n        if (Effect.PassMap.has(\"UnrealBloom\")) {\n            return Effect.PassMap.get(\"UnrealBloom\") as UnrealBloomPass;\n        }\n\n        const options = App.project.getKey(\"effect.UnrealBloom\");\n\n        const bloomPass = new UnrealBloomPass(new THREE.Vector2(this.viewer.container.offsetWidth, this.viewer.container.offsetWidth), 1, 0, 0);\n        bloomPass.threshold = options.threshold || 0;\n        bloomPass.strength = options.strength === undefined ? 1 : options.strength;\n        bloomPass.radius = options.radius || 0;\n\n        Effect.PassMap.set(\"UnrealBloom\", bloomPass);\n\n        return bloomPass;\n    }\n\n    /**\n     * Bokeh 变焦,背景虚化（焦外成像）\n     */\n    get Bokeh(): BokehPass {\n        if (Effect.PassMap.has(\"Bokeh\")) {\n            return Effect.PassMap.get(\"Bokeh\") as BokehPass;\n        }\n\n        const options = App.project.getKey(\"effect.Bokeh\");\n\n        const bokehPass = new BokehPass(this.viewer.scene, App.viewportCamera, {\n            focus: options.focus,\n            aperture: options.aperture,\n            maxblur: options.maxblur\n        });\n\n        Effect.PassMap.set(\"Bokeh\", bokehPass);\n\n        return bokehPass;\n    }\n\n    /**\n     * Pixelate 像素风\n     * @description 渲染时会受场景背景影响，纯色背景才有最佳渲染效果\n     */\n    get Pixelate(): RenderPixelatedPass {\n        if (Effect.PassMap.has(\"Pixelate\")) {\n            return Effect.PassMap.get(\"Pixelate\") as RenderPixelatedPass;\n        }\n\n        const options = App.project.getKey(\"effect.Pixelate\");\n\n        const pixelatedPass = new RenderPixelatedPass(options.pixelSize || 6, this.viewer.scene, App.viewportCamera, {\n            normalEdgeStrength: options.normalEdgeStrength,\n            depthEdgeStrength: options.depthEdgeStrength\n        });\n\n        Effect.PassMap.set(\"Pixelate\", pixelatedPass);\n\n        return pixelatedPass;\n    }\n\n    /**\n     * Halftone 半色调\n     */\n    get Halftone(): HalftonePass {\n        if (Effect.PassMap.has(\"Halftone\")) {\n            return Effect.PassMap.get(\"Halftone\") as HalftonePass;\n        }\n\n        const options = App.project.getKey(\"effect.Halftone\");\n\n        const halftonePass = new HalftonePass(options);\n\n        Effect.PassMap.set(\"Halftone\", halftonePass);\n\n        return halftonePass;\n    }\n\n    /**\n     * LUT 颜色滤镜\n     */\n    get LUT(): LUTPass {\n        if (Effect.PassMap.has(\"LUT\")) {\n            return Effect.PassMap.get(\"LUT\") as LUTPass;\n        }\n\n        const options = App.project.getKey(\"effect.LUT\");\n\n        const _LUTCubeLoader = new LUTCubeLoader();\n        const _LUTImageLoader = new LUTImageLoader();\n        const _LUT3dlLoader = new LUT3dlLoader();\n\n        // 优先加载配置项的lut\n        if (!LUTEffectMap[options.lut]) {\n            const lutUrl = new URL(`${import.meta.env.BASE_URL}resource/luts/${options.lut}`, import.meta.url).href;\n\n            if (/\\.CUBE$/i.test(options.lut)) {\n                _LUTCubeLoader.load(lutUrl, (result) => {\n                    LUTEffectMap[options.lut] = result;\n\n                    this.viewer.render();\n                });\n            } else if (/\\.png$/i.test(options.lut)) {\n                _LUTImageLoader.load(lutUrl, (result) => {\n                    LUTEffectMap[options.lut] = result;\n\n                    this.viewer.render();\n                });\n            } else {\n                _LUT3dlLoader.load(lutUrl, (result) => {\n                    LUTEffectMap[options.lut] = result;\n\n                    this.viewer.render();\n                });\n            }\n        }\n\n        Object.keys(LUTEffectMap).forEach(name => {\n            if (LUTEffectMap[name]) return;\n\n            const lutUrl = new URL(`${import.meta.env.BASE_URL}resource/luts/${name}`, import.meta.url).href;\n\n            if (/\\.CUBE$/i.test(name)) {\n                _LUTCubeLoader.load(lutUrl, function (result) {\n                    LUTEffectMap[name] = result;\n                });\n            } else if (/\\.png$/i.test(name)) {\n                _LUTImageLoader.load(lutUrl, function (result) {\n                    LUTEffectMap[name] = result;\n                });\n            } else {\n                _LUT3dlLoader.load(lutUrl, function (result) {\n                    LUTEffectMap[name] = result;\n                });\n            }\n        });\n\n        const lutPass = new LUTPass({\n            intensity: options.intensity\n        });\n\n        Effect.PassMap.set(\"LUT\", lutPass);\n\n        return lutPass;\n    }\n\n    /**\n     * 运动残影\n     */\n    get Afterimage():AfterimagePass{\n        if (Effect.PassMap.has(\"Afterimage\")) {\n            return Effect.PassMap.get(\"Afterimage\") as AfterimagePass;\n        }\n\n        const options = App.project.getKey(\"effect.Afterimage\");\n\n        const afterimagePass = new AfterimagePass(options.damp);\n\n        Effect.PassMap.set(\"Afterimage\", afterimagePass);\n\n        return afterimagePass;\n    }\n\n    /**\n     * 通道配置变更\n     * @param name 通道名\n     * @param config 新配置\n     */\n    handlePassConfigChange(name: string, config) {\n        // App.project.setKey(`effect.${name}`, config);\n\n        if (name === \"Outline\") {\n            if (this.outlinePass) {\n                for (const key in config) {\n                    (<OutlinePass>this.outlinePass)[key] = this.getPassConfigValue(key, config[key]);\n                }\n            }\n        } else {\n            if (!config.enabled) {\n                if (Effect.PassMap.has(name)) {\n                    this.composer?.removePass(Effect.PassMap.get(name) as Pass)\n                    Effect.PassMap.delete(name);\n\n                    this.viewer.render();\n                }\n\n                return;\n            }\n\n            if (!Effect.PassMap.has(name)) {\n                if (!this[name] || !(this[name] instanceof Pass)) return;\n\n                // get this[name]时创建的Pass会自动加入到Effect.PassMap\n                this.composer?.addPass(this[name]);\n\n                this.viewer.render();\n\n                return;\n            }\n\n            if (!this[name]) return;\n\n            switch (name) {\n                // 参数配置在uniforms的Pass\n                case \"Bokeh\":\n                case 'Halftone':\n                case 'Afterimage':\n                    for (const key in config) {\n                        if (this[name].uniforms[key] === undefined) {\n                            this[name][key] = this.getPassConfigValue(key, config[key]);\n                            continue;\n                        }\n\n                        this[name].uniforms[key].value = this.getPassConfigValue(key, config[key]);\n                    }\n                    break;\n                case \"Pixelate\":\n                    for (const key in config) {\n                        if (key === \"pixelSize\") {\n                            this.Pixelate.setPixelSize(config[key]);\n                        } else {\n                            this.Pixelate[key] = this.getPassConfigValue(key, config[key]);\n                        }\n                    }\n                    break;\n                case \"LUT\":\n                    for (const key in config) {\n                        if (key === \"lut\") {\n                            const lut = LUTEffectMap[config[key]];\n\n                            Boolean(lut) && (this.LUT.lut = lut.texture3D);\n                        } else {\n                            this.LUT[key] = this.getPassConfigValue(key, config[key]);\n                        }\n                    }\n                    break;\n                default:\n                    for (const key in config) {\n                        this[name][key] = this.getPassConfigValue(key, config[key]);\n                    }\n                    break;\n            }\n        }\n\n        this.viewer.render();\n    }\n\n    /**\n     * 处理通道值\n     */\n    getPassConfigValue(key: string, value: any) {\n        if ([\"visibleEdgeColor\", \"hiddenEdgeColor\"].includes(key)) {\n            return new THREE.Color(value);\n        }\n\n        if ([\"rotateR\", \"rotateG\", \"rotateB\"].includes(key)) {\n            return value * (Math.PI / 180);\n        }\n\n        return value;\n    }\n\n    render(deltaTime: number) {\n        if (!this.enabled || !this.composer) return;\n\n        // PassMap中存在 LUT 则说明 LUT 是启用的\n        // lutMap是异步加载的，所以此处做判断\n        if (Effect.PassMap.has(\"LUT\")) {\n            const lut = LUTEffectMap[App.project.getKey(\"effect.LUT.lut\")];\n            this.LUT.enabled = Boolean(lut);\n            if (this.LUT.enabled) {\n                this.LUT.lut = lut.texture3D;\n            }\n        }\n\n        this.composer.render(deltaTime);\n    }\n\n    clear() {\n        if (this.composer) {\n            for (let i = this.composer.passes.length; i > 0; i--) {\n                this.composer.passes[i - 1].dispose && this.composer.passes[i - 1].dispose();\n                this.composer.removePass(this.composer.passes[i - 1]);\n            }\n\n            this.composer.dispose();\n        }\n    }\n\n    dispose() {\n        this.clear();\n\n        _passConfigChangeFn = null;\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/viewer/modules/Helper.ts",
    "content": "import { ViewportGizmo, GizmoOptions } from \"three-viewport-gizmo\";\nimport CameraControls from \"camera-controls\";\nimport { useAddSignal, useRemoveSignal } from \"@/hooks\";\nimport App from \"@/core/app/App\";\nimport Viewer from \"../Viewer\";\nimport {getOsTheme} from \"@/utils\";\n\nlet _updateFn;\nexport class Helper {\n    private viewer: Viewer;\n    private gizmo: ViewportGizmo | undefined;\n    private controls: CameraControls;\n\n    constructor(viewer: Viewer, controls: CameraControls) {\n        this.viewer = viewer;\n        this.controls = controls;\n    }\n\n    /**\n     * 如果当前正在动画视图更改,则返回true\n     */\n    get animating() {\n        if (this.gizmo) {\n            return this.gizmo.animating;\n        }\n\n        return false;\n    }\n\n    set hidden(value: boolean) {\n        if (this.gizmo) {\n            const dom = document.querySelector(`#${this.gizmo.options.id}`) as HTMLElement;\n            if (!dom) return;\n            dom.style.display = value ? \"block\" : \"none\";\n\n            this.update();\n        }\n    }\n\n    init() {\n        _updateFn = this.update.bind(this);\n        useAddSignal('cameraChanged', _updateFn);\n        useAddSignal('sceneResize', _updateFn);\n\n        if (!this.viewer.renderer) return;\n\n        this.gizmo = new ViewportGizmo(this.viewer.camera, this.viewer.renderer, this.getGizmoConfig());\n        this.controls.getTarget(this.gizmo.target);\n\n        this.initEvent();\n    }\n\n    /**\n     * 初始化视角控制器事件\n     */\n    initEvent() {\n        if (!this.gizmo) return;\n\n        this.gizmo.addEventListener(\"start\", () => {\n            this.controls.enabled = false;\n            this.viewer.render();\n        });\n        this.gizmo.addEventListener(\"end\", () => {\n            this.controls.enabled = true;\n            this.viewer.render();\n        });\n        this.gizmo.addEventListener(\"change\", () => {\n            this.controls.setPosition(...this.viewer.camera.position.toArray());\n            this.viewer.render();\n        });\n\n        this.initDomEvent();\n    }\n\n    /**\n     * 初始化视角控制器dom事件\n     */\n    initDomEvent() {\n        if (!this.gizmo?.options?.id) return;\n\n        const dom = document.querySelector(`#${this.gizmo.options.id}`);\n        if (!dom) return;\n\n        dom.addEventListener(\"pointermove\", () => {\n            this.viewer.render();\n        })\n    }\n\n    /**\n     * 获取ViewportGizmo配置\n     * @param type\n     */\n    getGizmoConfig(type = \"cube\") {\n        const _opt = {\n            type,\n            id: \"astral-viewer-helper\",\n            container: this.viewer.container,\n            placement: \"bottom-right\",\n        } as GizmoOptions;\n\n        if (type === \"sphere\") return _opt;\n\n        const configTheme = App.config.getKey('theme');\n        if (configTheme === \"os\") {\n            if (getOsTheme() !== \"dark\") {\n                return _opt;\n            }\n        } else if (configTheme === \"light\") {\n            return _opt;\n        }\n\n        let colors = {\n            color: 0x333333,\n            labelColor: 0xdddddd,\n            hover: {\n                color: App.config.getKey('mainColor') || \"#7FE7C4\",\n                labelColor: 0xffffff,\n            },\n        };\n        let background = {\n            color: 0x444444,\n            hover: { color: 0x444444 },\n        };\n\n        return {\n            ..._opt,\n            background: background,\n            corners: colors,\n            edges: colors,\n            right: colors,\n            top: colors,\n            front: colors,\n        } as GizmoOptions;\n    }\n\n    /**\n     * 设置外观，会在全局配置中的主色调及白天/黑夜模式切换时调用\n     */\n    setConfig() {\n        if (!this.gizmo) return;\n\n        this.gizmo.set(this.getGizmoConfig());\n\n        this.initDomEvent();\n\n        this.viewer.render();\n    }\n\n    update() {\n        if (!this.gizmo) return;\n\n        this.controls.getTarget(this.gizmo.target);\n        this.gizmo.update(false);\n    }\n\n    render() {\n        if (!this.gizmo) return;\n\n        this.gizmo.render();\n    }\n\n    dispose() {\n        if (this.gizmo) this.gizmo.dispose();\n\n        if(_updateFn){\n            useRemoveSignal('cameraChanged', _updateFn);\n            useRemoveSignal('sceneResize', _updateFn);\n            _updateFn = null;\n        }\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/viewer/modules/ParticleSystem.ts",
    "content": "import * as THREE from 'three';\nimport System, * as Particle from '@/core/libs/three-nebula';\nimport { useAddSignal, useDispatchSignal, useRemoveSignal } from \"@/hooks\";\nimport * as BasicObject3D from \"@/core/built-in/assets/BasicObject3D\";\nimport ParticleEmitter from \"@/core/objects/ParticleEmitter\";\nimport { isParticleObject } from \"@/utils\";\nimport Viewer from \"../Viewer\";\nimport App from \"@/core/app/App\";\nimport Preview from \"@/core/preview/Preview.ts\";\n\nlet _objectRemovedFn, _objectAddedFn, _bodyChangedFn,_addEmitterFn,_emitterAdd2Fn;\n\nclass ParticleSystem {\n  private viewer: Viewer | Preview;\n\n  // 存储所有粒子的组\n  particlesGroup: THREE.Group;\n\n  spriteRenderer: Particle.SpriteRenderer;\n  meshRenderer: Particle.MeshRenderer;\n  spriteSystem: System;\n  meshSystem: System;\n\n  /**\n   * 场景中粒子body类型为Point的对象\n   */\n  static PointBody: THREE.Points = (function () {\n    const geometry = new THREE.BufferGeometry();\n    const vertices = new Float32Array([0, 0, 0]);\n    geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 3));\n    const material = new THREE.PointsMaterial({ size: 0.1, color: 0xff0000 });\n\n    return new THREE.Points(geometry, material);\n  })();\n\n  /**\n   * 场景中所有粒子用到的Sprite | Mesh，统一管理\n   * key: 粒子ParticleEmitter的uuid，value: 粒子的body对象\n   */\n  static Body3DMap: Map<string, THREE.Sprite | THREE.Mesh> = new Map();\n\n  constructor(viewer:Viewer | Preview) {\n    this.viewer = viewer;\n\n    this.particlesGroup = new THREE.Group();\n    this.particlesGroup.name = 'astral-particles-group';\n    // 不在场景树中显示此组\n    this.particlesGroup.ignore = true;\n    this.viewer.scene.add(this.particlesGroup);\n\n    this.spriteSystem = new System();\n    this.spriteSystem.name = 'spriteSystem';\n    this.meshSystem = new System();\n    this.meshSystem.name = 'meshSystem';\n    this.spriteRenderer = new Particle.SpriteRenderer(this.particlesGroup, THREE);\n    this.meshRenderer = new Particle.MeshRenderer(this.particlesGroup, THREE);\n    this.spriteSystem.addRenderer(this.spriteRenderer);\n    this.meshSystem.addRenderer(this.meshRenderer);\n\n    this.initEvent();\n  }\n\n  get needsUpdate() {\n    return this.spriteSystem.emitters.length > 0 || this.meshSystem.emitters.length > 0;\n  }\n\n  initEvent(){\n    _objectRemovedFn = this.handleObjectRemoved.bind(this);\n    useAddSignal(\"objectRemoved\", _objectRemovedFn);\n    _objectAddedFn = this.handleObjectAdded.bind(this);\n    useAddSignal(\"objectAdded\", _objectAddedFn);\n    _bodyChangedFn = this.handleParticleBodyChanged.bind(this);\n    useAddSignal(\"particleBodyChanged\", _bodyChangedFn);\n    _emitterAdd2Fn = this.handleEmitterAdd.bind(this);\n    useAddSignal(\"emitterAdd2ParticleSystem\", _emitterAdd2Fn);\n\n    _addEmitterFn = this.handleAddEmitter.bind(this);\n    this.spriteSystem.eventDispatcher.addEventListener('EMITTER_ADDED', _addEmitterFn)\n    this.meshSystem.eventDispatcher.addEventListener('EMITTER_ADDED', _addEmitterFn)\n  }\n\n  handleAddEmitter(emitter: Particle.Emitter){\n    useDispatchSignal('particleSystemAddEmitter', emitter);\n  }\n\n  /**\n   * 监听对象移除\n   */\n  handleObjectRemoved(object) {\n    if (!object || object.type !== \"Particle\") return;\n\n    if (!object.emitter) return;\n\n    const emitterJSON = object.toJSON().object.emitter;\n\n    if (this.spriteSystem.emitters.includes(object.emitter)) {\n      this.spriteSystem.removeEmitter(object.emitter);\n    } else {\n      this.meshSystem.removeEmitter(object.emitter);\n    }\n\n    object.dispose();\n\n    object.emitter = emitterJSON;\n  }\n\n  /**\n   * 监听对象添加\n   * @description 主要应用于对象添加的redo命令\n   */\n  handleObjectAdded(object) {\n    if (!isParticleObject(object)) return;\n\n    if (object.emitter.parent) return;\n\n    object.emitter = ParticleEmitter.fromJSON({\n      uuid: object.uuid,\n      type: object.type,\n      name: object.name,\n      emitter: object.emitter,\n      children: []\n    }).emitter;\n    // 重新初始化事件，不然粒子无法选中\n    object.initEvent();\n  }\n\n  /**\n   * 监听粒子body对象改变\n   */\n  handleParticleBodyChanged(data: IParticle.Config['init']['body'], object3D: THREE.Texture | string | THREE.Mesh, isObjectChange = false, done = (_data: IParticle.Config['init']['body']) => {}) {\n    if (!object3D || !data?.body) return;\n\n    const selected = App.selected;\n    if (!selected || !(selected instanceof ParticleEmitter)) return;\n\n    const setBody3D = (body3D: THREE.Sprite | THREE.Mesh) => {\n      // if (ParticleSystem.Body3DMap.has(selected.uuid)) {\n      //   const oldBody3D = ParticleSystem.Body3DMap.get(selected.uuid);\n      //   if (oldBody3D && oldBody3D !== body3D) {\n      //       if (oldBody3D.material) {\n      //           if (Array.isArray(oldBody3D.material)) {\n      //               oldBody3D.material.forEach(m => m.dispose());\n      //           } else {\n      //               oldBody3D.material.dispose();\n      //           }\n      //       }\n      //       oldBody3D.removeFromParent();\n      //   }\n      //   ParticleSystem.Body3DMap.delete(selected.uuid);\n      // }\n\n      ParticleSystem.Body3DMap.set(selected.uuid, body3D);\n    }\n\n    const emitter = selected.emitter as Particle.Emitter;\n    const initializer = emitter.initializers.find((item) => item.type === \"Body\");\n    // 如果body内的对象未变更直接修改基础属性并返回\n    if (initializer && !isObjectChange){\n      initializer.isEnabled = data.isEnabled;\n      done(data);\n      return;\n    }\n\n    if (this.spriteSystem.emitters.includes(emitter)) {\n      this.spriteSystem.removeEmitter(emitter);\n    } else {\n      this.meshSystem.removeEmitter(emitter);\n    }\n\n    // 不重新实例化，直接更新初始化器的body属性\n    if (!initializer) {\n      switch (data.body.type) {\n        case \"Sprite\":\n          console.log(111);\n          const sprite = new THREE.Sprite(new THREE.SpriteMaterial({\n            map: object3D as THREE.Texture,\n            color: 0xffffff,\n            //blending: THREE.AdditiveBlending,\n            //fog: true,\n          }));\n          emitter.addInitializer(new Particle.Body(sprite, null, null, data.isEnabled));\n          setBody3D(sprite);\n\n          this.spriteSystem.addEmitter(emitter);\n\n          done(Object.assign(data, { uuid: sprite.uuid }));\n          break;\n        case \"Mesh\":\n          let mesh: THREE.Mesh;\n          if (typeof object3D === \"string\") {\n            // 首字母需要大写\n            const _objectMethod = object3D.charAt(0).toUpperCase() + object3D.slice(1);\n            if (BasicObject3D[_objectMethod]) {\n              mesh = BasicObject3D[_objectMethod]();\n            } else {\n              mesh = BasicObject3D.Box();\n            }\n          } else {\n            mesh = object3D as THREE.Mesh;\n          }\n\n          emitter.addInitializer(new Particle.Body(mesh, null, null, data.isEnabled));\n          setBody3D(mesh);\n\n          this.meshSystem.addEmitter(emitter);\n\n          done(Object.assign(data, { uuid: null }));\n          break;\n        case \"Point\":\n          emitter.addInitializer(new Particle.Body(ParticleSystem.PointBody.clone(), null, null, data.isEnabled));\n\n          this.meshSystem.addEmitter(emitter);\n          done(Object.assign(data, { uuid: null }));\n          break;\n      }\n    } else {\n      switch (data.body.type) {\n        case \"Sprite\":\n          const sprite = new THREE.Sprite(new THREE.SpriteMaterial({\n            map: object3D as THREE.Texture,\n            color: 0xffffff,\n            //blending: THREE.AdditiveBlending,\n            //fog: true,\n          }));\n          initializer.body.items = [sprite];\n          setBody3D(sprite);\n\n          this.spriteSystem.addEmitter(emitter);\n\n          done(Object.assign(data, { uuid: sprite.uuid }));\n          break;\n        case \"Mesh\":\n          let mesh: THREE.Mesh;\n          if (typeof object3D === \"string\") {\n            // 首字母需要大写\n            const _objectMethod = object3D.charAt(0).toUpperCase() + object3D.slice(1);\n            if (BasicObject3D[_objectMethod]) {\n              mesh = BasicObject3D[_objectMethod]();\n            } else {\n              mesh = BasicObject3D.Box();\n            }\n          } else {\n            mesh = object3D as THREE.Mesh;\n          }\n\n          initializer.body.items = [mesh];\n          setBody3D(mesh);\n\n          this.meshSystem.addEmitter(emitter);\n\n          done(Object.assign(data, { uuid: null }));\n          break;\n        case \"Point\":\n          initializer.body.items = [ParticleSystem.PointBody.clone()];\n\n          this.meshSystem.addEmitter(emitter);\n          done(Object.assign(data, { uuid: null }));\n          break;\n      }\n    }\n  }\n\n  /**\n   * 监听添加Emitter\n   */\n  handleEmitterAdd(emitter:Particle.Emitter,system = \"spriteSystem\"){\n    this[system].addEmitter(emitter);\n  }\n\n  update(delta: number) {\n    if (this.spriteSystem.emitters.length > 0) {\n      this.spriteSystem.update(delta);\n    }\n    if (this.meshSystem.emitters.length > 0) {\n      this.meshSystem.update(delta);\n    }\n  }\n\n  dispose() {\n    useRemoveSignal(\"objectRemoved\", _objectRemovedFn);\n    _objectRemovedFn = null;\n    useRemoveSignal(\"particleBodyChanged\", _bodyChangedFn);\n    _bodyChangedFn = null;\n\n    this.spriteSystem.eventDispatcher.removeEventListener('EMITTER_ADDED', _addEmitterFn);\n    this.meshSystem.eventDispatcher.removeEventListener('EMITTER_ADDED', _addEmitterFn);\n    _addEmitterFn = null;\n\n    this.spriteSystem.destroy();\n    this.meshSystem.destroy();\n  }\n}\n\nexport {ParticleSystem};"
  },
  {
    "path": "packages/sdk/lib/core/viewer/modules/Signals.ts",
    "content": "import * as THREE from \"three\";\nimport {RoomEnvironment} from \"three/examples/jsm/environments/RoomEnvironment.js\";\nimport {ShaderPass} from \"three/examples/jsm/postprocessing/ShaderPass.js\";\nimport {Effect} from \"./Effect\";\nimport {useAddSignal} from \"@/hooks\";\nimport Viewer from \"../Viewer\";\nimport App from \"@/core/app/App\";\nimport {focusObject} from \"@/utils/scene/controls.ts\";\n\nexport class Signals {\n    private readonly viewer: Viewer;\n\n    private useBackgroundAsEnvironment = false;\n\n    constructor(viewer:Viewer) {\n        this.viewer = viewer;\n\n        this.init();\n    }\n\n    init() {\n        useAddSignal(\"sceneCleared\", this.sceneCleared.bind(this));\n        useAddSignal(\"transformModeChanged\", this.transformModeChanged.bind(this));\n        useAddSignal(\"snapChanged\", this.snapChanged.bind(this));\n        useAddSignal(\"spaceChanged\", this.spaceChanged.bind(this));\n        useAddSignal(\"effectEnabledChange\", this.effectEnabledChange.bind(this));\n\n        useAddSignal(\"rendererUpdated\", this.rendererUpdated.bind(this));\n        useAddSignal(\"rendererCreated\", this.rendererCreated.bind(this));\n        useAddSignal(\"rendererConfigUpdate\", this.rendererConfigUpdate.bind(this));\n        useAddSignal(\"rendererDetectKTX2Support\", this.rendererDetectKTX2Support.bind(this));\n\n        useAddSignal(\"sceneBackgroundChanged\", this.sceneBackgroundChanged.bind(this));\n        useAddSignal(\"sceneEnvironmentChanged\", this.sceneEnvironmentChanged.bind(this));\n        useAddSignal(\"sceneGraphChanged\", this.sceneGraphChanged.bind(this));\n        useAddSignal(\"cameraChanged\", this.cameraChanged.bind(this));\n        useAddSignal(\"cameraReset\", this.viewer.updateAspectRatio.bind(this.viewer));\n        useAddSignal(\"viewportCameraChanged\", this.viewportCameraChanged.bind(this));\n        useAddSignal(\"viewportShadingChanged\", this.viewportShadingChanged.bind(this));\n\n        useAddSignal(\"objectSelected\", this.objectSelected.bind(this));\n        useAddSignal(\"objectFocused\", this.objectFocused.bind(this));\n        useAddSignal(\"objectAdded\", this.objectAdded.bind(this));\n        useAddSignal(\"objectChanged\", this.objectChanged.bind(this));\n        useAddSignal(\"objectRemoved\", this.objectRemoved.bind(this));\n\n        useAddSignal(\"geometryChanged\", this.geometryChanged.bind(this));\n        useAddSignal(\"materialChanged\", this.materialChanged.bind(this));\n\n        useAddSignal(\"sceneResize\", this.sceneResize.bind(this));\n        useAddSignal(\"showGridChanged\", this.showGridChanged.bind(this));\n\n        useAddSignal(\"scriptAdded\",this.scriptAdded.bind(this));\n        useAddSignal(\"scriptRemoved\",this.scriptRemoved.bind(this));\n        useAddSignal(\"scriptChanged\",this.scriptChanged.bind(this));\n    }\n\n    /**\n     * 判断对象是否是可射线选中的\n     */\n    objectIsCanPick(object:THREE.Object3D | null){\n        return object !== null && object !== this.viewer.scene && object !== this.viewer.camera;\n    }\n\n    /**\n     * 清空\n     */\n    sceneCleared() {\n        this.viewer.modules.controls.setTarget(0, 0, 0,true);\n        this.viewer.pathtracer?.reset();\n\n        const rendererConfig = App.project.getKey(\"renderer\");\n        App.FPS = rendererConfig.fps;\n        this.viewer.renderer.shadowMap.enabled = rendererConfig.shadow.enabled;\n        this.viewer.renderer.shadowMap.type = rendererConfig.shadow.type;\n        this.viewer.renderer.toneMapping = rendererConfig.toneMapping;\n        this.viewer.renderer.toneMappingExposure = rendererConfig.toneMappingExposure\n\n        if(this.viewer.options.hdr){\n            this.viewer.loadEnv(true);\n        }\n\n        this.viewer.initPT();\n        this.viewer.render();\n    }\n\n    /**\n     * 模型变换控制器模式改变\n     * @param mode\n     */\n    transformModeChanged(mode) {\n        this.viewer.modules.transformControls?.setMode(mode);\n    }\n\n    /**\n     * 模型变换控制器吸附距离改变\n     * @param dist\n     */\n    snapChanged(dist:number) {\n        this.viewer.modules.transformControls?.setTranslationSnap(dist);\n    }\n\n    /**\n     * 模型变换控制器坐标系改变\n     * @param space\n     */\n    spaceChanged(space:\"world\" | \"local\") {\n        this.viewer.modules.transformControls?.setSpace(space);\n    }\n\n    /**\n     * 启用/禁用后处理\n     */\n    effectEnabledChange(enabled:boolean){\n        if(enabled){\n            this.viewer.selectionBox.visible = false;\n\n            if (this.objectIsCanPick(App.selected) && this.viewer.modules.effect.outlinePass) {\n                this.viewer.modules.effect.outlinePass.selectedObjects = [App.selected as THREE.Object3D];\n            }\n        }else{\n            if(this.viewer.modules.effect.outlinePass){\n                this.viewer.modules.effect.outlinePass.selectedObjects = [];\n            }\n\n            if (this.objectIsCanPick(App.selected)) {\n                this.viewer.box.setFromObject(App.selected as THREE.Object3D, true);\n                if (!this.viewer.box.isEmpty()) {\n                    this.viewer.selectionBox.visible = true;\n                }\n            }\n        }\n\n        this.render();\n    }\n\n    /**\n     * 渲染器更新\n     */\n    rendererUpdated() {\n        this.viewer.scene.traverse(function (child) {\n            if (child.material !== undefined) {\n                (<THREE.Material>child.material).needsUpdate = true;\n            }\n        });\n        this.viewer.render();\n    }\n\n    /**\n     * 渲染器创建完成后调用\n     * @param newRenderer\n     */\n    rendererCreated(newRenderer: THREE.WebGLRenderer) {\n        this.viewer.engineCreated(newRenderer);\n    }\n\n    rendererConfigUpdate(){\n        this.viewer.createEngine();\n    }\n\n    rendererDetectKTX2Support( ktx2Loader ) {\n        ktx2Loader.detectSupport(this.viewer.renderer);\n    }\n\n    /**\n     * 场景背景变更\n     * @param backgroundType\n     * @param backgroundColor\n     * @param backgroundTexture\n     * @param backgroundEquirectangularTexture\n     * @param backgroundBlurriness\n     * @param backgroundIntensity\n     * @param backgroundRotation\n     */\n    sceneBackgroundChanged(backgroundType:\"\" | \"Color\" | \"Texture\" | \"Equirectangular\", backgroundColor:string, backgroundTexture, backgroundEquirectangularTexture, backgroundBlurriness:number,backgroundIntensity:number, backgroundRotation:number){\n        this.viewer.scene.background = null;\n\n        switch (backgroundType) {\n            case 'Color':\n                this.viewer.scene.background = new THREE.Color(backgroundColor);\n                break;\n            case 'Texture':\n                if (backgroundTexture) {\n                    this.viewer.scene.background = backgroundTexture;\n                }\n                break;\n            case 'Equirectangular':\n                if (backgroundEquirectangularTexture) {\n                    backgroundEquirectangularTexture.mapping = THREE.EquirectangularReflectionMapping;\n\n                    this.viewer.scene.background = backgroundEquirectangularTexture;\n                    this.viewer.scene.backgroundBlurriness = backgroundBlurriness;\n                    this.viewer.scene.backgroundIntensity = backgroundIntensity;\n                    this.viewer.scene.backgroundRotation.y = backgroundRotation * THREE.MathUtils.DEG2RAD;\n\n                    if (this.useBackgroundAsEnvironment) {\n                        this.viewer.scene.environment = this.viewer.scene.background as THREE.Texture;\n                        this.viewer.scene.environmentRotation.y = backgroundRotation * THREE.MathUtils.DEG2RAD;\n                    }\n                }\n                break;\n        }\n\n        this.viewer.dispatchEvent({type:\"onSceneBackgroundChange\",backgroundType:backgroundType,background:this.viewer.scene.background})\n\n        this.viewer.updatePTBackground();\n        this.render();\n    }\n\n    /**\n     * 场景环境贴图变更\n     * @param environmentType\n     * @param environmentEquirectangularTexture\n     */\n    sceneEnvironmentChanged(environmentType: '' | 'Background' | 'Equirectangular' | 'ModelViewer', environmentEquirectangularTexture: THREE.Texture){\n        this.viewer.scene.environment = null;\n        this.useBackgroundAsEnvironment = false;\n\n        switch (environmentType) {\n            case 'Background':\n                this.useBackgroundAsEnvironment = true;\n\n                this.viewer.scene.environment = this.viewer.scene.background as THREE.Texture;\n                this.viewer.scene.environment.mapping = THREE.EquirectangularReflectionMapping;\n                this.viewer.scene.environmentRotation.y = this.viewer.scene.backgroundRotation.y;\n                break;\n            case 'Equirectangular':\n                if (environmentEquirectangularTexture) {\n                    this.viewer.scene.environment = environmentEquirectangularTexture;\n                    this.viewer.scene.environment.mapping = THREE.EquirectangularReflectionMapping;\n                }\n                break;\n            case 'ModelViewer':\n                if(!this.viewer.pmremGenerator){\n                    // 创建一个PMREMGenerator，从立方体映射环境纹理生成预过滤的 Mipmap 辐射环境贴图\n                    this.viewer.pmremGenerator = new THREE.PMREMGenerator(this.viewer.renderer);\n                    this.viewer.pmremGenerator.compileEquirectangularShader();\n                }\n\n                this.viewer.scene.environment = this.viewer.pmremGenerator.fromScene(new RoomEnvironment(), 0.04).texture;\n\n                break;\n        }\n\n        this.viewer.dispatchEvent({type:\"onSceneEnvironmentChange\",environmentType:environmentType,environment:this.viewer.scene.environment})\n\n        this.viewer.updatePTEnvironment();\n\n        this.render();\n    }\n\n    /**\n     * 手动场景渲染\n     */\n    sceneGraphChanged(){\n        this.viewer.initPT();\n        this.render();\n    }\n\n    /**\n     * 切换主相机\n     */\n    cameraChanged(){\n        this.viewer.pathtracer?.reset();\n        this.render();\n    }\n\n    /**\n     * 场景主相机变更\n     */\n    viewportCameraChanged(){\n        const viewportCamera = App.viewportCamera;\n        if ( viewportCamera.isPerspectiveCamera || viewportCamera.isOrthographicCamera ) {\n            this.viewer.updateAspectRatio();\n        }\n\n        if (viewportCamera.isPerspectiveCamera) {\n            (<THREE.PerspectiveCamera>viewportCamera).aspect = App.camera.aspect;\n            viewportCamera.projectionMatrix.copy(App.camera.projectionMatrix);\n        } else if ( viewportCamera.isOrthographicCamera ) {\n            // TODO\n        }\n\n        // 设置用户Camera时禁用EditorControls\n        this.viewer.modules.controls.enabled = (viewportCamera === App.camera);\n\n        // 替换控制器相机\n        // this.viewer.modules.controls.camera = viewportCamera;\n\n        this.viewer.initPT();\n        this.render();\n    }\n\n    /**\n     * 场景Shading变更\n     * @description 当开启OutlinePass后处理时，设置scene.overrideMaterial无效。\n     * @link https://github.com/mrdoob/three.js/issues/30577\n     */\n    viewportShadingChanged(){\n        const viewportShading = App.viewportShading;\n\n        switch (viewportShading) {\n            case 'realistic':\n                this.viewer.pathtracer?.init(this.viewer.scene, this.viewer.camera);\n                break;\n            case 'solid':\n                this.viewer.scene.overrideMaterial = null;\n                break;\n            case 'normals':\n                this.viewer.scene.overrideMaterial = new THREE.MeshNormalMaterial();\n                break;\n            case 'wireframe':\n                console.log(\"wireframe\")\n                this.viewer.scene.overrideMaterial = new THREE.MeshBasicMaterial({color: 0x000000, wireframe: true});\n                break;\n        }\n\n        this.render();\n    }\n\n    /**\n     * 选中模型\n     * @param object\n     */\n    objectSelected(object){\n        this.viewer.selectionBox.visible = false;\n\n        this.viewer.modules.transformControls?.detach();\n        if (this.objectIsCanPick(object)) {\n            if(this.viewer.modules.effect.enabled && this.viewer.modules.effect.outlinePass){\n                this.viewer.modules.effect.outlinePass.selectedObjects = [object];\n            }else{\n                this.viewer.box.setFromObject(object, true);\n                if (!this.viewer.box.isEmpty()) {\n                    this.viewer.selectionBox.visible = true;\n                }\n            }\n            this.viewer.modules.transformControls?.attach(object);\n        }\n        this.render();\n    }\n\n    /**\n     * 聚焦模型\n     * @param object\n     */\n    objectFocused(object){\n        focusObject(object,this.viewer.modules.controls);\n    }\n\n    /**\n     * 场景新增模型\n     */\n    objectAdded(){\n        this.viewer.computedSceneBox3();\n    }\n\n    /**\n     * 模型属性变更\n     * @param object\n     */\n    objectChanged(object){\n        if (App.selected === object) {\n            this.viewer.box.setFromObject(object, true);\n\n            this.viewer.computedSceneBox3();\n        }\n        if (object.isPerspectiveCamera) {\n            object.updateProjectionMatrix();\n        }\n        const helper = App.helpers[object.id];\n        if (helper !== undefined && !helper.isSkeletonHelper) {\n            helper.update();\n        }\n\n        this.viewer.initPT();\n        this.render();\n    }\n\n    /**\n     * 模型被移除\n     * @param object\n     */\n    objectRemoved(object){\n        this.viewer.modules.controls.enabled = true;\n        if (this.viewer.modules.transformControls && object === this.viewer.modules.transformControls.object) {\n            this.viewer.modules.transformControls.detach();\n        }\n\n        this.viewer.computedSceneBox3();\n    }\n\n    /**\n     * geometry 变更\n     * @param object\n     */\n    geometryChanged(object){\n        if (object !== undefined) {\n            this.viewer.box.setFromObject(object, true);\n        }\n\n        this.viewer.initPT();\n        this.render();\n    }\n\n    /**\n     * material 变更\n     */\n    materialChanged(){\n        this.viewer.updatePTMaterials();\n        this.render();\n    }\n\n    /**\n     * windowResize\n     */\n    sceneResize(){\n        this.viewer.updateAspectRatio();\n        this.viewer.renderer?.setSize(this.viewer.container.offsetWidth,this.viewer.container.offsetHeight);\n        if(this.viewer.modules.effect.enabled && this.viewer.modules.effect.composer){\n            this.viewer.modules.effect.composer.setSize(this.viewer.container.offsetWidth,this.viewer.container.offsetHeight);\n            if(Effect.PassMap.has(\"FXAA\")){\n                const FXAA = Effect.PassMap.get(\"FXAA\") as ShaderPass;\n                const pixelRatio = this.viewer.renderer.getPixelRatio();\n                FXAA.material.uniforms[ 'resolution' ].value.x = 1 / (this.viewer.container.offsetWidth * pixelRatio);\n                FXAA.material.uniforms[ 'resolution' ].value.y = 1 / (this.viewer.container.offsetHeight * pixelRatio);\n            }\n        }\n        this.viewer.pathtracer?.setSize();\n\n        this.viewer.css3DRenderer.setSize(this.viewer.container.offsetWidth,this.viewer.container.offsetHeight);\n        \n        this.viewer.modules.viewHelper.update();\n\n        App.csm.updateFrustums();\n        this.render();\n    }\n\n    /**\n     * 是否显示场景网格\n     * @param showGrid\n     */\n    showGridChanged(showGrid:boolean){\n        if(this.viewer.grid){\n            this.viewer.grid.visible = showGrid;\n        }\n\n        this.render();\n    }\n\n    /**\n     * 添加脚本\n     */\n    scriptAdded(object:THREE.Object3D, _:ISceneScript){\n        this.viewer.installScripts([object.uuid]);\n    }\n\n    /**\n     * 移除脚本\n     */\n    scriptRemoved(object:THREE.Object3D, sc:ISceneScript){\n        this.viewer.uninstallScriptsByUuid(object.uuid,sc.name);\n    }\n\n    /**\n     * 脚本变化\n     */\n    scriptChanged(attributeName:string,object:THREE.Object3D, sc:ISceneScript){\n        if(attributeName !== \"source\") return;\n\n        this.viewer.installScripts([object.uuid],sc.name);\n    }\n\n    /**\n     * 渲染\n     */\n    render(){\n        this.viewer.render();\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/viewer/modules/Weather.ts",
    "content": "/*\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2024/12/23 19:27\n * @description 天气系统\n */\nimport * as THREE from \"three\";\nimport {useAddSignal, useRemoveSignal} from \"@/hooks\";\nimport Rain from \"@/core/objects/weather/Rain\";\nimport Snow from \"@/core/objects/weather/Snow\";\nimport {SnowingShaderMaterial} from \"@/core/shaderMaterial/modules/SnowingShaderMaterial\";\nimport Viewer from \"../Viewer\";\nimport App from \"@/core/app/App\";\n\nlet _fogConfigChangeFn: any = null;\nlet _rainConfigChangeFn: any = null;\nlet _snowConfigChangeFn: any = null;\nlet _objectAddedFn: any = null;\n\nexport class Weather {\n    private viewer: Viewer;\n    rain: Rain | null = null;\n    snow: Snow | null = null;\n    snowingMaterialObj: THREE.Mesh[] = [];\n\n    constructor(viewer: Viewer) {\n        this.viewer = viewer;\n\n        _fogConfigChangeFn = this.sceneFogSettingsChanged.bind(this)\n        useAddSignal(\"sceneFogSettingsChanged\", _fogConfigChangeFn);\n\n        _rainConfigChangeFn = this.sceneRainSettingsChanged.bind(this);\n        useAddSignal(\"sceneRainSettingsChanged\", _rainConfigChangeFn);\n\n        _snowConfigChangeFn = this.sceneSnowSettingsChanged.bind(this);\n        useAddSignal(\"sceneSnowSettingsChanged\", _snowConfigChangeFn);\n\n        _objectAddedFn = this.objectAdded.bind(this);\n        useAddSignal(\"objectAdded\", _objectAddedFn);\n    }\n\n    objectAdded(object) {\n        const {enabled, accumulation} = App.project.getKey(\"weather.snow\");\n\n        if (enabled && accumulation) {\n            object.traverseByCondition((obj) => {\n                this.replaceSnowMaterial(obj);\n            }, (child) => !child.ignore && child.visible);\n        }\n    }\n\n    /**\n     * 场景雾效设置项变更\n     */\n    sceneFogSettingsChanged() {\n        const fog = App.project.getKey(\"weather.fog\")\n        if (!fog.enabled) {\n            this.viewer.scene.fog = null;\n            this.viewer.render();\n            return;\n        }\n\n        switch (fog.type) {\n            case 'Fog':\n                if (!(this.viewer.scene.fog instanceof THREE.Fog)) {\n                    this.viewer.scene.fog = new THREE.Fog(fog.color, fog.near, fog.far);\n                } else {\n                    const _fog = this.viewer.scene.fog as THREE.Fog;\n                    _fog.color = new THREE.Color(fog.color);\n                    _fog.near = fog.near;\n                    _fog.far = fog.far;\n                }\n                break;\n            case 'FogExp2':\n                if (!(this.viewer.scene.fog instanceof THREE.FogExp2)) {\n                    this.viewer.scene.fog = new THREE.FogExp2(fog.color, fog.density);\n                } else {\n                    const _fog = this.viewer.scene.fog as THREE.FogExp2\n                    _fog.color = new THREE.Color(fog.color);\n                    _fog.density = fog.density;\n                }\n                break;\n        }\n        this.viewer.render();\n    }\n\n    /**\n     * 场景雨效设置项变更\n     */\n    sceneRainSettingsChanged() {\n        const {enabled, speed, color, size, radian, alpha} = App.project.getKey(\"weather.rain\");\n\n        if (enabled) {\n            if (this.rain) {\n                this.rain.updateOptions({\n                    speed,\n                    color,\n                    size,\n                    radian,\n                    alpha\n                })\n            } else {\n                this.rain = new Rain({\n                    speed: speed,\n                    color: color,\n                    size: size,\n                    radian: radian,\n                    alpha: alpha\n                }, this.viewer.modules.controls);\n\n                this.rain.mesh.ignore = true;\n                this.viewer.scene.add(this.rain.mesh as THREE.Object3D);\n            }\n        } else {\n            if (!this.rain) return;\n\n            this.rain.dispose();\n            this.rain = null;\n\n            this.viewer.render();\n        }\n    }\n\n    /**\n     * 替换材质贴图增加雪堆积\n     */\n    replaceSnowMaterial(obj) {\n        if (!obj.material) return;\n\n        if (obj.material.map && obj.material.map instanceof THREE.Texture) {\n            // 存储原材质\n            !obj.metaData && (obj.metaData = {});\n            obj.metaData.material = obj.material;\n\n            obj.material = SnowingShaderMaterial.InstanceShaderMaterial().clone();\n            obj.material.copyAttr(obj.metaData.material);\n            obj.material.transparent = obj.metaData.material.transparent;\n            obj.material.uniforms.uTime.value = 0.01;\n            obj.material.uniforms.uHasTexture.value = 1.0;\n            obj.material.uniforms.uTexture.value = obj.metaData.material.map;\n            obj.material.needsUpdate = true;\n\n            this.snowingMaterialObj.push(obj);\n        } else if (obj.material.color) {\n            // 存储原材质\n            !obj.metaData && (obj.metaData = {});\n            obj.metaData.material = obj.material;\n\n            const alpha = obj.material.transparent ? obj.material.opacity : 1;\n            const color = new THREE.Vector4(obj.material.color.r, obj.material.color.g, obj.material.color.b, alpha);\n\n            obj.material = SnowingShaderMaterial.InstanceShaderMaterial().clone();\n            obj.material.copyAttr(obj.metaData.material);\n            obj.material.transparent = obj.metaData.material.transparent;\n            obj.material.uniforms.uTime.value = 0.01;\n            obj.material.uniforms.uHasTexture.value = 0.0;\n            obj.material.uniforms.uColor.value = color;\n            obj.material.needsUpdate = true;\n\n            this.snowingMaterialObj.push(obj);\n        }\n    }\n\n    /**\n     * 初始化替换材质贴图增加雪堆积\n     */\n    initSnowMap() {\n        this.snowingMaterialObj = [];\n\n        this.viewer.scene.traverseByCondition((obj) => {\n            this.replaceSnowMaterial(obj);\n        }, (child) => !child.ignore && child.visible);\n    }\n\n    /**\n     * 关闭雪，还原贴图\n     */\n    removeSnowMap() {\n        for (let i = this.snowingMaterialObj.length - 1; i >= 0; i--) {\n            const obj = this.snowingMaterialObj[i];\n\n            // 释放 ShaderMaterial\n            // TODO: 20250519: R176版本调用报错，暂不销毁\n            // (<THREE.ShaderMaterial>obj.material).dispose();\n\n            // 恢复原始材质\n            obj.material = obj.metaData.material as THREE.Material;\n\n            // 清除 metaData 中的材质引用\n            // @ts-ignore\n            obj.metaData.material = null;\n            delete obj.metaData.material;\n\n            // 从数组中删除当前元素\n            this.snowingMaterialObj.splice(i, 1);\n        }\n\n        this.snowingMaterialObj = [];\n    }\n\n    /**\n     * 场景雪效设置项变更\n     */\n    sceneSnowSettingsChanged() {\n        const {enabled, speed, size, density, alpha, accumulation} = App.project.getKey(\"weather.snow\");\n\n        if (enabled) {\n            if (this.snow) {\n                this.snow.updateOptions({\n                    speed,\n                    size,\n                    density,\n                    alpha\n                })\n\n                if(accumulation && this.snowingMaterialObj.length === 0){\n                    this.initSnowMap()\n                }else if(!accumulation && this.snowingMaterialObj.length > 0){\n                    this.removeSnowMap();\n                }\n            } else {\n                this.snow = new Snow({\n                    speed: speed,\n                    size: size,\n                    density: density,\n                    alpha: alpha\n                }, this.viewer.modules.controls);\n\n                this.snow.mesh.ignore = true;\n                this.viewer.scene.add(this.snow.mesh as THREE.Object3D);\n\n                accumulation && this.initSnowMap();\n            }\n        } else {\n            if (!this.snow) return;\n\n            this.snow.dispose();\n            this.snow = null;\n\n            this.removeSnowMap();\n\n            this.viewer.render();\n        }\n    }\n\n    /**\n     * 更新天气效果\n     * @param deltaTime\n     * @return {boolean} 是否需要调用viewport.render()\n     */\n    update(deltaTime) {\n        let needRender = false;\n\n        if (this.rain) {\n            this.rain.update(deltaTime);\n\n            needRender = true;\n        }\n\n        if (this.snow) {\n            this.snow.update(deltaTime);\n\n            if (App.project.getKey(\"weather.snow.accumulation\")) {\n                const speed = this.snow.options.speed;\n                this.snowingMaterialObj.forEach(obj => {\n                    const m = obj.material as THREE.ShaderMaterial;\n\n                    if (m.uniforms.uTime.value > speed / 2) {\n                        m.uniforms.uTime.value = speed / 2;\n                        return;\n                    }\n\n                    m.uniforms.uTime.value += 0.001 * speed;\n                });\n            }\n\n            needRender = true;\n        }\n\n        return needRender;\n    }\n\n    dispose() {\n        useRemoveSignal(\"sceneFogSettingsChanged\", _fogConfigChangeFn);\n        _fogConfigChangeFn = null;\n        useRemoveSignal(\"sceneRainSettingsChanged\", _rainConfigChangeFn);\n        _rainConfigChangeFn = null;\n        useRemoveSignal(\"sceneSnowSettingsChanged\", _snowConfigChangeFn);\n        _snowConfigChangeFn = null;\n\n        this.rain && this.rain.dispose();\n        this.snow && this.snow.dispose();\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/core/viewer/modules/index.ts",
    "content": "export {Helper} from './Helper';\nexport {CameraManage} from './CameraManage';\nexport {Effect,LUTEffectMap} from \"./Effect\";\nexport {Weather} from \"./Weather\";\nexport {Signals} from \"./Signals\";\nexport {ParticleSystem} from \"./ParticleSystem\";\nexport {Drag} from \"./Drag\";"
  },
  {
    "path": "packages/sdk/lib/dxf/DragControls.js",
    "content": "import {\n\tEventDispatcher,\n\tMatrix4,\n\tPlane,\n\tRaycaster,\n\tVector2,\n\tVector3\n} from 'three';\n\nconst _plane = new Plane();\nconst _raycaster = new Raycaster();\n\nconst _pointer = new Vector2();\nconst _offset = new Vector3();\nconst _intersection = new Vector3();\nconst _worldPosition = new Vector3();\nconst _inverseMatrix = new Matrix4();\n\nclass DragControls extends EventDispatcher {\n\n\tconstructor( _objects, _camera, _domElement ) {\n\n\t\tsuper();\n\n\t\t_domElement.style.touchAction = 'none'; // disable touch scroll\n\n\t\tlet _selected = null, _hovered = null;\n\n\t\tconst _intersections = [];\n\n\t\t//\n\n\t\tconst scope = this;\n\n\t\tfunction activate() {\n\n\t\t\t_domElement.addEventListener( 'pointermove', onPointerMove );\n\t\t\t_domElement.addEventListener( 'pointerdown', onPointerDown );\n\t\t\t_domElement.addEventListener( 'pointerup', onPointerCancel );\n\t\t\t_domElement.addEventListener( 'pointerleave', onPointerCancel );\n\n\t\t}\n\n\t\tfunction deactivate() {\n\n\t\t\t_domElement.removeEventListener( 'pointermove', onPointerMove );\n\t\t\t_domElement.removeEventListener( 'pointerdown', onPointerDown );\n\t\t\t_domElement.removeEventListener( 'pointerup', onPointerCancel );\n\t\t\t_domElement.removeEventListener( 'pointerleave', onPointerCancel );\n\n\t\t\t_domElement.style.cursor = '';\n\n\t\t}\n\n\t\tfunction dispose() {\n\n\t\t\tdeactivate();\n\n\t\t}\n\n\t\tfunction getObjects() {\n\n\t\t\treturn _objects;\n\n\t\t}\n\n\t\tfunction getRaycaster() {\n\n\t\t\treturn _raycaster;\n\n\t\t}\n\n\t\tfunction onPointerMove( event ) {\n\n\t\t\tif ( scope.enabled === false) return;\n\n\t\t\tupdatePointer( event );\n\n\t\t\t_raycaster.setFromCamera( _pointer, _camera );\n\n\t\t\tif (_selected) {\n\n\t\t\t\tif ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {\n\n\t\t\t\t\t_selected.position.copy( _intersection.sub( _offset ).applyMatrix4( _inverseMatrix ) );\n\n\t\t\t\t}\n\n\t\t\t\tscope.dispatchEvent( { type: 'drag', object: _selected } );\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t// hover support\n\n\t\t\tif ( event.pointerType === 'mouse' || event.pointerType === 'pen' ) {\n\n\t\t\t\t_intersections.length = 0;\n\n\t\t\t\t_raycaster.setFromCamera( _pointer, _camera );\n\t\t\t\t_raycaster.intersectObjects( _objects, scope.recursive, _intersections );\n\n\t\t\t\tif ( _intersections.length > 0 ) {\n\n\t\t\t\t\tconst object = _intersections[ 0 ].object.parent;\n\n\t\t\t\t\t_plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( object.matrixWorld ) );\n\n\t\t\t\t\tif ( _hovered !== object && _hovered !== null ) {\n\n\t\t\t\t\t\tscope.dispatchEvent( { type: 'hoveroff', object: _hovered } );\n\n\t\t\t\t\t\t_domElement.style.cursor = 'auto';\n\t\t\t\t\t\t_hovered = null;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( _hovered !== object ) {\n\n\t\t\t\t\t\tscope.dispatchEvent( { type: 'hoveron', object } );\n\n\t\t\t\t\t\t_domElement.style.cursor = 'pointer';\n\t\t\t\t\t\t_hovered = object;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( _hovered !== null ) {\n\n\t\t\t\t\t\tscope.dispatchEvent( { type: 'hoveroff', object: _hovered } );\n\n\t\t\t\t\t\t_domElement.style.cursor = 'auto';\n\t\t\t\t\t\t_hovered = null;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onPointerDown( event ) {\n\t\t\tif (scope.enabled === false || event.button !== 0) return;\n\n\t\t\tupdatePointer( event );\n\n\t\t\t_intersections.length = 0;\n\n\t\t\t_raycaster.setFromCamera( _pointer, _camera );\n\t\t\t_raycaster.intersectObjects( _objects, scope.recursive, _intersections );\n\n\t\t\tif ( _intersections.length > 0 ) {\n\n\t\t\t\t_selected = _intersections[ 0 ].object.parent;\n\n\t\t\t\t_plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) );\n\n\t\t\t\tif ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {\n\n\t\t\t\t\t_inverseMatrix.copy( _selected.parent.matrixWorld ).invert();\n\t\t\t\t\t_offset.copy( _intersection ).sub( _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) );\n\n\t\t\t\t}\n\n\t\t\t\t_domElement.style.cursor = 'move';\n\n\t\t\t\tscope.dispatchEvent( { type: 'dragstart', object: _selected } );\n\n\t\t\t}\n\n\n\t\t}\n\n\t\tfunction onPointerCancel(event) {\n\n\t\t\tif (scope.enabled === false || event.button !== 0) return;\n\n\t\t\tif (_selected) {\n\n\t\t\t\tscope.dispatchEvent( { type: 'dragend', object: _selected } );\n\n\t\t\t\t_selected = null;\n\n\t\t\t}\n\n\t\t\t_domElement.style.cursor = _hovered ? 'pointer' : 'auto';\n\n\t\t}\n\n\t\tfunction updatePointer( event ) {\n\n\t\t\tconst rect = _domElement.getBoundingClientRect();\n\n\t\t\t_pointer.x = ( event.clientX - rect.left ) / rect.width * 2 - 1;\n\t\t\t_pointer.y = - ( event.clientY - rect.top ) / rect.height * 2 + 1;\n\n\t\t}\n\n\t\tactivate();\n\n\t\t// API\n\n\t\tthis.enabled = true;\n\t\tthis.recursive = true;\n\n\t\tthis.activate = activate;\n\t\tthis.deactivate = deactivate;\n\t\tthis.dispose = dispose;\n\t\tthis.getObjects = getObjects;\n\t\tthis.getRaycaster = getRaycaster;\n\n\t}\n\n}\n\nexport { DragControls };\n"
  },
  {
    "path": "packages/sdk/lib/dxf/bspline.ts",
    "content": "import round10 from './round10'\n\n/**\n * 复制和移植到代码标准，因为b样条库不再维护。\n * Source:\n * https://github.com/thibauts/b-spline\n */\nexport default (t:number, degree:number, points, knots, weights?:number[] | undefined) => {\n  const n = points.length // 点数量\n  const d = points[0].length // 分维数\n\n  if ((t < 0) || (t > 1)) {\n    throw new Error('t 在区间 [0,1] 外: t = ' + t)\n  }\n  if (degree < 1) throw new Error('degree 必须至少为1(线性)')\n  if (degree > (n - 1)) throw new Error('degree 必须小于或等于点数量 - 1')\n\n  if (!weights) {\n    // 构建长度为[n]的权重向量\n    weights = []\n    for (let i = 0; i < n; i++) {\n      weights[i] = 1\n    }\n  }\n\n  if (!knots) {\n    // 建立长度为[n + degree + 1]的结向量\n    knots = []\n    for (let i = 0; i < n + degree + 1; i++) {\n      knots[i] = i\n    }\n  } else {\n    if (knots.length !== n + degree + 1) throw new Error('坏结矢量长度')\n  }\n\n  const domain = [\n    degree,\n    knots.length - 1 - degree\n  ]\n\n  // 将t重新映射到定义样条的域\n  const low = knots[domain[0]]\n  const high = knots[domain[1]]\n  t = t * (high - low) + low\n\n  // 夹紧到上限和下限，而不是像在原始库中那样抛出错误\n  t = Math.max(t, low)\n  t = Math.min(t, high)\n\n  // 为提供的[t]值找到s(样条段)\n  let s\n  for (s = domain[0]; s < domain[1]; s++) {\n    if (t >= knots[s] && t <= knots[s + 1]) {\n      break\n    }\n  }\n\n  // 将点转换为齐次坐标\n  const v:any = []\n  for (let i = 0; i < n; i++) {\n    v[i] = []\n    for (let j = 0; j < d; j++) {\n      v[i][j] = points[i][j] * weights[i]\n    }\n    v[i][d] = weights[i]\n  }\n\n  // l (level) 从 1 到 curve degree + 1\n  let alpha\n  for (let l = 1; l <= degree + 1; l++) {\n    // build level l of the pyramid\n    for (let i = s; i > s - degree - 1 + l; i--) {\n      alpha = (t - knots[i]) / (knots[i + degree + 1 - l] - knots[i])\n\n      // interpolate each component\n      for (let j = 0; j < d + 1; j++) {\n        v[i][j] = (1 - alpha) * v[i - 1][j] + alpha * v[i][j]\n      }\n    }\n  }\n\n  // 转换回笛卡尔坐标，然后返回\n  const result:number[] = []\n  for (let i = 0; i < d; i++) {\n    result[i] = round10(v[s][i] / v[s][d], -9)\n  }\n  return result\n}"
  },
  {
    "path": "packages/sdk/lib/dxf/drawRect.ts",
    "content": "import * as THREE from \"three\";\nimport {OrbitControls} from \"three/examples/jsm/controls/OrbitControls.js\";\nimport {stopRender, renderLoop, render} from \"./drawShare\"\nimport {DragControls} from './DragControls.js';\n\nlet cpmFn, cpdFn, cpuFn;\n\nfunction throttle(func, wait) {\n    let timer: NodeJS.Timeout | null = null;\n    return function (e) {\n        if (timer) return;\n        timer = setTimeout(function () {\n            func(e);\n            timer = null;\n        }, wait)\n    }\n}\n\n/**\n * three中绘制矩形\n * @param {THREE.Scene}  scene 场景\n **/\nexport class DrawRect {\n    static RectShapeMaterial = new THREE.MeshBasicMaterial({\n        transparent: true,\n        opacity: 0.1,\n        color: 0xccebff,\n        side: THREE.FrontSide\n    });\n    static LineMaterial = new THREE.LineBasicMaterial({\n        color: 0x15FF00,\n        linewidth: 10,\n        linecap: 'round',\n        linejoin: 'round'\n    })\n    static HoverLineMaterial = new THREE.LineBasicMaterial({\n        color: 0xff0015,\n        linewidth: 10,\n        linecap: 'round',\n        linejoin: 'round'\n    })\n\n    private canvas: HTMLCanvasElement;\n    private scene: THREE.Scene;\n    private camera: THREE.OrthographicCamera;\n    private controls: OrbitControls | undefined;\n    private signal: (args: { type: 'add' | 'remove' | 'dispatch', name: string, data?: any }) => void;\n    private middleObject: any;\n\n    private readonly group: THREE.Group;\n    private readonly dragObjects: THREE.Group[] = [];\n    private readonly dragControls: DragControls;\n    private isDrag: boolean = false;\n\n    private tempModelUuid: string | undefined;\n    private tempRect: THREE.Group | undefined;\n    private downPoint: THREE.Vector2 = new THREE.Vector2();\n\n    constructor(canvas: HTMLCanvasElement, scene: THREE.Scene, camera: THREE.OrthographicCamera, signal, middleObject) {\n        this.canvas = canvas;\n        this.scene = scene;\n        this.camera = camera;\n        this.signal = signal;\n\n        this.middleObject = middleObject;\n        middleObject.markList || (middleObject.markList = []); // 矩形标记数组\n        middleObject.selectRectIndex || (middleObject.selectRectIndex = -1); // 当前选中的矩形下标\n        middleObject.selectRect = {}; // 当前选中的矩形数据\n        middleObject.hoverRectIndex = -1; // 当前鼠标经过的矩形的下标\n\n        this.group = new THREE.Group();\n        this.group.name = \"cadDrawRect\";\n        this.scene.add(this.group);\n\n        this.dragControls = new DragControls(this.dragObjects, camera, canvas);\n        this.dragControls.addEventListener(\"hoveron\", (event) => {\n            if(this.isDrag) return;\n\n            this.isDrag = true;\n            this.controls && (this.controls.enabled = false);\n\n            this.group.children.forEach((child, index) => {\n                if (child.userData.rect.modelUuid !== event.object.userData.rect.modelUuid) return;\n\n                this.middleObject.hoverRectIndex = index;\n\n                child.children.forEach((c:any) => {\n                    if(c.isLine){\n                        c.material = DrawRect.HoverLineMaterial;\n                    }\n                })\n            });\n        });\n        this.dragControls.addEventListener(\"dragstart\", () => {\n            // 有上一次选中\n            if(this.middleObject.selectRectIndex !== -1){\n                this.group.children[this.middleObject.selectRectIndex]?.children.forEach((c:any) => {\n                    if(c.isLine){\n                        c.material = DrawRect.LineMaterial;\n                    }\n                })\n\n                // 两次选中同一个则取消\n                if(this.middleObject.selectRectIndex === this.middleObject.hoverRectIndex){\n                    this.middleObject.selectRectIndex = -1;\n                    this.middleObject.selectRect = {};\n\n                    this.signal({\n                        type: \"dispatch\",\n                        name:  \"objectFocusByUuid\",\n                        data: [undefined]\n                    })\n\n                    return;\n                }\n            }\n\n            this.middleObject.selectRectIndex = this.middleObject.hoverRectIndex;\n            this.middleObject.selectRect = this.group.children[this.middleObject.selectRectIndex]?.userData.rect;\n\n            this.signal({\n                type: \"dispatch\",\n                name: \"objectFocusByUuid\",\n                data: [this.middleObject.selectRect.modelUuid]\n            })\n        });\n        this.dragControls.addEventListener(\"drag\", throttle(render,50));\n        this.dragControls.addEventListener(\"dragend\", (event) => {\n            if (!event.object) return;\n\n            const rectItem = event.object.userData.rect;\n            rectItem.x += event.object.position.x;\n            rectItem.y += event.object.position.y;\n\n            this.signal({\n                type: \"dispatch\",\n                name: \"drawingMarkDone\",\n                data: [\"update\", rectItem]\n            })\n        });\n        this.dragControls.addEventListener(\"hoveroff\", () => {\n            if(!this.isDrag) return;\n\n            this.isDrag = false;\n            this.controls && (this.controls.enabled = true);\n\n            // 经过的模型未被选择\n            if(this.middleObject.selectRectIndex !== this.middleObject.hoverRectIndex){\n                this.group.children[this.middleObject.hoverRectIndex].children.forEach((c:any) => {\n                    if(c.isLine){\n                        c.material = DrawRect.LineMaterial;\n                    }\n                })\n            }\n\n            this.middleObject.hoverRectIndex = -1;\n            render();\n        });\n        this.dragControls.enabled = true;\n\n        cpmFn = throttle(this.onpointermove.bind(this), 16);\n        cpdFn = this.onpointerdown.bind(this);\n        cpuFn = this.onpointerup.bind(this);\n\n        this.init();\n    }\n\n    init() {\n        // 若list长度不为0, 则显示已标记框\n        if (this.middleObject.markList.length !== 0) {\n            this.middleObject.markList.forEach((item: IDrawingMark) => {\n                const rectObject = this.draw(item);\n                this.dragObjects.push(rectObject);\n            });\n        }\n    }\n\n    setList({list}) {\n        this.middleObject.markList = list;\n        this.init();\n    }\n\n    // 设置controls\n    setControls(controls: OrbitControls) {\n        this.controls = controls;\n    }\n\n    // 设置选中\n    setSelect({modelUuid}){\n        // 先去除上一次选中\n        this.group.children[this.middleObject.selectRectIndex]?.children.forEach((c:any) => {\n            if(c.isLine){\n                c.material = DrawRect.LineMaterial;\n            }\n        })\n        this.middleObject.selectRectIndex = -1;\n        this.middleObject.selectRect = {};\n\n        if(modelUuid === undefined) return;\n\n        this.group.children.forEach((child, index) => {\n                if (child.userData.rect?.modelUuid !== modelUuid) return;\n\n                this.middleObject.selectRectIndex = index;\n                this.middleObject.selectRect = child.userData.rect;\n\n                child.children.forEach((c:any) => {\n                    if(c.isLine){\n                        c.material = DrawRect.HoverLineMaterial;\n                    }\n                })\n            });\n    }\n\n    // 还原rect\n    restoreRect({rect}) {\n        this.group.children.forEach((child, index) => {\n            if (child.userData.rect.modelUuid !== rect.modelUuid) return;\n\n            const re = JSON.parse(JSON.stringify(child.userData.rect));\n\n            this.middleObject.markList.splice(index, 1, re);\n            this.group.remove(child);\n\n            const rectObject = this.draw(re);\n            this.dragObjects.splice(this.dragObjects.findIndex(item => item.userData.rect.modelUuid === rect.modelUuid), 1, rectObject);\n        })\n    }\n\n    /**\n     * 准备开始画矩形标记框\n     */\n    addRect({modelUuid}) {\n        if (!this.controls) return;\n\n        this.tempModelUuid = modelUuid;\n        this.controls.enabled = false;\n        this.dragControls.enabled = false;\n\n        this.canvas.style.cursor = \"crosshair\";\n        stopRender();\n\n        this.canvas.addEventListener(\"pointerdown\", cpdFn);\n    }\n\n    // 删除当前选中的模型\n    deleteRect({modelUuid}){\n        this.group.children.forEach((child, index) => {\n            if (child.userData.rect.modelUuid !== modelUuid) return;\n\n            this.middleObject.markList.splice(index, 1);\n            this.group.remove(child);\n\n            this.dragObjects.splice(this.dragObjects.findIndex(item => item.userData.rect.modelUuid === modelUuid), 1);\n        })\n    }\n\n    // 鼠标按下事件\n    onpointerdown(event: PointerEvent) {\n        event.stopPropagation();\n        if (this.isDrag || event.button !== 0) return;\n\n        const wp = this.screenToScenePosition(event);\n        this.downPoint = new THREE.Vector2(wp.x, wp.y);\n\n        this.canvas.addEventListener(\"pointermove\", cpmFn);\n        this.canvas.addEventListener(\"pointerup\", cpuFn);\n    }\n\n    // 鼠标移动事件\n    onpointermove(event: PointerEvent) {\n        event.stopPropagation();\n\n        if (this.isDrag) return;\n\n        const wp = this.screenToScenePosition(event);\n\n        this.tempRect && this.group.remove(this.tempRect);\n\n        const item: IDrawingMark = {\n            x: this.downPoint.x,\n            y: this.downPoint.y,\n            w: wp.x - this.downPoint.x,\n            h: wp.y - this.downPoint.y,\n            modelUuid: this.tempModelUuid\n        };\n\n        this.tempRect = this.draw(item);\n    }\n\n    // 鼠标抬起事件\n    onpointerup(event: PointerEvent) {\n        event.stopPropagation();\n        if (this.isDrag) return;\n\n        const wp = this.screenToScenePosition(event);\n        const item: IDrawingMark = {\n            x: this.downPoint.x,\n            y: this.downPoint.y,\n            w: wp.x - this.downPoint.x,\n            h: wp.y - this.downPoint.y,\n            modelUuid: this.tempModelUuid\n        };\n\n        this.drawDone(item)\n\n        this.signal({\n            type: \"dispatch\",\n            name: \"drawingMarkDone\",\n            data: [\"add\", item]\n        })\n\n        this.canvas.style.cursor = \"default\";\n\n        this.tempModelUuid = undefined;\n        this.canvas.removeEventListener(\"pointermove\", cpmFn);\n        this.canvas.removeEventListener(\"pointerup\", cpuFn);\n    }\n\n    // 取消设置名称去除对应绘制的方法\n    clearTemp() {\n        this.tempRect && this.group.remove(this.tempRect);\n\n        this.exit();\n    }\n\n    // 名称设置完成后调用的绘制结束方法\n    drawDone(rect:IDrawingMark) {\n        this.tempRect && this.group.remove(this.tempRect);\n\n        this.middleObject.markList.push(rect);\n        const rectObject = this.draw(rect);\n        this.dragObjects.push(rectObject);\n\n        this.exit();\n    }\n\n    exit() {\n        this.controls && (this.controls.enabled = true);\n        this.dragControls.enabled = true;\n\n        renderLoop();\n\n        this.canvas.removeEventListener(\"pointerdown\", cpdFn);\n    }\n\n    // 绘制\n    draw(item: IDrawingMark) {\n        /* 第二种方式 */\n        const g = new THREE.Group();\n        g.name = \"mark-rect\"\n        const rectShape = new THREE.Shape();\n        rectShape.moveTo(item.x, item.y);\n        rectShape.lineTo(item.x + item.w, item.y);\n        rectShape.lineTo(item.x + item.w, item.y + item.h);\n        rectShape.lineTo(item.x, item.y + item.h);\n        rectShape.lineTo(item.x, item.y);\n        const geometry = new THREE.ShapeGeometry(rectShape);\n        const material = DrawRect.RectShapeMaterial;\n        const mesh = new THREE.Mesh(geometry, material);\n        g.add(mesh);\n\n        //绘制边框线\n        const lineGeom = new THREE.EdgesGeometry(geometry)\n        const lineMaterial = DrawRect.LineMaterial;\n        const line = new THREE.LineSegments(lineGeom, lineMaterial)\n        line.scale.copy(mesh.scale)\n        line.rotation.copy(mesh.rotation)\n        line.position.copy(mesh.position)\n        g.add(line)\n\n        g.userData.rect = item;\n\n        this.group.add(g);\n\n        // helpRender();\n        render();\n        return g;\n    }\n\n    screenToScenePosition(event) {\n        const offsetX = event.clientX - this.canvas.offsetLeft;\n        const offsetY = event.clientY - this.canvas.offsetTop;\n        const screenPosition = new THREE.Vector3(offsetX, offsetY, 0);\n        //const worldPosition = new THREE.Vector3();\n\n        screenPosition.x = (screenPosition.x / this.canvas.clientWidth) * 2 - 1;\n        screenPosition.y = -(screenPosition.y / this.canvas.clientHeight) * 2 + 1;\n        screenPosition.z = 0.5;\n\n        let p = screenPosition.unproject(this.camera);\n\n        return new THREE.Vector2(p.x, p.y);\n        // screenPosition.sub(this.camera.position).normalize();\n        // const distance = -this.camera.position.z / screenPosition.z;\n        // worldPosition.copy(this.camera.position).add(screenPosition.multiplyScalar(distance));\n        //\n        // return worldPosition;\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/dxf/drawShare.ts",
    "content": "import * as THREE from \"three\";\nimport { TextGeometry } from \"three/examples/jsm/geometries/TextGeometry.js\";\nimport { OrbitControls } from \"three/examples/jsm/controls/OrbitControls.js\";\nimport { TTFLoader } from \"three/examples/jsm/loaders/TTFLoader.js\";\n// import { SSAARenderPass } from \"three/examples/jsm/postprocessing/SSAARenderPass.js\";\n// import { UnrealBloomPass } from \"three/examples/jsm/postprocessing/UnrealBloomPass.js\";\n// import { EffectComposer } from \"three/examples/jsm/postprocessing/EffectComposer.js\";\n// import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';\n// import { OutputPass } from 'three/examples/jsm/postprocessing/OutputPass.js';\nimport {\n    addTriangleFacingCamera,\n    getBSplinePolyline, getBulgeCurvePoints,\n    mtextContentAndFormattingToTextAndStyle\n} from \"./drawUtils\";\n// @ts-ignore\nimport { parseDxfMTextContent } from \"@dxfom/mtext\";\nimport { Font } from \"three/examples/jsm/loaders/FontLoader.js\";\nimport { PickHelper } from \"./pickHelper\";\nimport { DrawRect } from \"./drawRect\";\nimport log from '@/utils/log/Logger';\n\nlet signal, middleObject;\nlet scene, helpScene, camera, renderer, inputElement, font, data;\n\n// 渲染辉光图层\n// let composer, finalComposer;\nconst BLOOM_SCENE = 10;\nconst bloomLayer = new THREE.Layers();\nbloomLayer.set(BLOOM_SCENE);\n// const DarkMaterial = new THREE.MeshBasicMaterial({ color: 'black' });\n// const materials = {};\n\nlet modules: any = {};\n\n// TODO 当前解析模式会存在 data.blocks 中还有实体但未匹配解析的情况；\n// 记录已经解析的 data.blocks,data.entities遍历完成后处理\nlet parsedBlocks: string[] = [];\n// 渲染配置项 && 对比度颜色实体集合\nlet options = {\n    bgColor: 0x000000,\n    contrastColor: 0xffffff,\n    fontUrl:''\n}, contrastEntity: any = [];\n\n// canvas默认宽高\nexport const state = {\n    width: 500,\n    height: 500,\n};\n\n/**\n * 离屏canvas和普通canvas共用的绘制图纸方法\n * 优先级：offScreenCanvas > canvas\n */\nexport function main(d) {\n    const { canvas, onComplete } = d;\n    signal = d.signal;\n    middleObject = d.middleObject;\n    state.width = canvas.width;\n    state.height = canvas.height;\n    inputElement = d.inputElement;\n    data = d.data;\n    // cad配置项\n    options = Object.assign(options, d.options);\n    options.bgColor = Number(options.bgColor);\n    options.contrastColor = options.bgColor === 0x000000 ? 0xffffff : 0x000000;\n\n    createLineTypeShaders();\n\n    renderer = new THREE.WebGLRenderer({\n        canvas,\n        powerPreference: \"high-performance\",\n        depth: false,\n        antialias: true,\n    });\n    // 第三个参数false代表不更新canvas dom style\n    renderer.setSize(canvas.width, canvas.height, false);\n    renderer.setClearColor(options.bgColor, 1);\n    renderer.toneMapping = THREE.ReinhardToneMapping;\n    // renderer.autoClear = false;\n\n    const loader = new TTFLoader();\n    loader.loadAsync(options.fontUrl).then(function (response) {\n        font = new Font(response);\n\n        init();\n\n        // OrbitControls mousemove事件中未调用chang事件，所以需要一直渲染\n        renderLoop();\n\n        // 添加灯光\n        scene.add(new THREE.AmbientLight(0xffffff, 1));\n\n        // 后期通道\n        // initComposer();\n\n        const controls = new OrbitControls(camera, inputElement);\n        controls.target.x = camera.position.x;\n        controls.target.y = camera.position.y;\n        controls.target.z = 0;\n        controls.mouseButtons = { LEFT: THREE.MOUSE.PAN, MIDDLE: THREE.MOUSE.DOLLY, RIGHT: THREE.MOUSE.ROTATE };\n        controls.enableRotate = false;\n        controls.update();\n\n        // 注册模块\n        modules.drawRect = new DrawRect(inputElement, helpScene, camera, signal, middleObject);\n        modules.drawRect.setControls(controls);\n\n        const pickPosition = new THREE.Vector2(0, 0);\n        modules.pickHelper = new PickHelper(scene, camera, BLOOM_SCENE);\n        clearPickPosition();\n\n        function getCanvasRelativePosition(event) {\n            const rect = inputElement.getBoundingClientRect();\n            return {\n                x: event.clientX - rect.left,\n                y: event.clientY - rect.top,\n            };\n        }\n\n        function setPickPosition(event) {\n            const pos = getCanvasRelativePosition(event);\n            pickPosition.x = (pos.x / state.width) * 2 - 1;\n            pickPosition.y = (pos.y / state.height) * - 2 + 1;\n\n            modules.pickHelper.pick(pickPosition);\n        }\n\n        function clearPickPosition() {\n            //不像鼠标总是有一个位置，如果用户停止触摸屏幕，我们想要停止。现在我们只取一个不太可能取到的值\n            pickPosition.x = - 100000;\n            pickPosition.y = - 100000;\n        }\n\n        inputElement.addEventListener('mousemove', setPickPosition);\n        inputElement.addEventListener('mouseout', clearPickPosition);\n        inputElement.addEventListener('mouseleave', clearPickPosition);\n\n        inputElement.addEventListener('touchstart', (event) => {\n            // 防止窗口滚动\n            event.preventDefault();\n            setPickPosition(event.touches[0]);\n        }, { passive: false });\n        inputElement.addEventListener('touchmove', (event) => {\n            setPickPosition(event.touches[0]);\n        });\n        inputElement.addEventListener('touchend', clearPickPosition);\n\n        // 加载完毕\n        onComplete && onComplete();\n\n        font = undefined;\n        data = undefined;\n\n        resize({ width: inputElement.width, height: inputElement.height });\n    });\n}\n\nfunction createLineTypeShaders() {\n    let ltype, type;\n    if (!data.tables || !data.tables.lineType) return;\n    const ltypes = data.tables.lineType.lineTypes;\n\n    for (type in ltypes) {\n        ltype = ltypes[type];\n        if (!ltype.pattern) continue;\n        ltype.material = createDashedLineShader(ltype.pattern);\n    }\n}\n\nfunction createDashedLineShader(pattern) {\n    let dashedLineShader: any = {},\n        totalLength = 0.0;\n\n    for (let i = 0; i < pattern.length; i++) {\n        totalLength += Math.abs(pattern[i]);\n    }\n\n    dashedLineShader.uniforms = THREE.UniformsUtils.merge([\n        THREE.UniformsLib['common'],\n        THREE.UniformsLib['fog'],\n\n        {\n            // @ts-ignore\n            'pattern': { type: 'fv1', value: pattern },\n            // @ts-ignore\n            'patternLength': { type: 'f', value: totalLength }\n        }\n    ]);\n\n    dashedLineShader.vertexShader = [\n        'attribute float lineDistance;',\n\n        'varying float vLineDistance;',\n\n        THREE.ShaderChunk['color_pars_vertex'],\n\n        'void main() {',\n\n        THREE.ShaderChunk['color_vertex'],\n\n        'vLineDistance = lineDistance;',\n\n        'gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n        '}'\n    ].join('\\n');\n\n    dashedLineShader.fragmentShader = [\n        'uniform vec3 diffuse;',\n        'uniform float opacity;',\n\n        'uniform float pattern[' + pattern.length + '];',\n        'uniform float patternLength;',\n\n        'varying float vLineDistance;',\n\n        THREE.ShaderChunk['color_pars_fragment'],\n        THREE.ShaderChunk['fog_pars_fragment'],\n\n        'void main() {',\n\n        'float pos = mod(vLineDistance, patternLength);',\n\n        'for ( int i = 0; i < ' + pattern.length + '; i++ ) {',\n        'pos = pos - abs(pattern[i]);',\n        'if( pos < 0.0 ) {',\n        'if( pattern[i] > 0.0 ) {',\n        'gl_FragColor = vec4(1.0, 0.0, 0.0, opacity );',\n        'break;',\n        '}',\n        'discard;',\n        '}',\n\n        '}',\n\n        THREE.ShaderChunk['color_fragment'],\n        THREE.ShaderChunk['fog_fragment'],\n\n        '}'\n    ].join('\\n');\n\n    return dashedLineShader;\n}\n\nfunction init() {\n    scene = new THREE.Scene();\n    scene.background = new THREE.Color(options.bgColor);\n    helpScene = new THREE.Scene();\n\n    const layersGroupMap: Map<string, THREE.Group> = new Map();\n    // 使用layers生成group\n    for (let layerName in data.tables.layer.layers) {\n        const layer = data.tables.layer.layers[layerName];\n        const group = new THREE.Group();\n        group.name = layerName;\n        group.visible = layer.visible;\n\n        layersGroupMap.set(layerName, group);\n        scene.add(group);\n    }\n\n    // 通过dxf数据创建场景\n    let entity, obj;\n    // 生成所有实体\n    for (let i = 0; i < data.entities?.length; i++) {\n        entity = data.entities[i];\n\n        obj = drawEntity(entity);\n\n        if (obj) {\n            if (layersGroupMap.has(entity.layer)) {\n                const parent = layersGroupMap.get(entity.layer) || scene;\n                parent.add(obj);\n                obj.name = `${entity.type}-${entity.handle || 'noHandle'}-${parent.children.length}`\n            } else {\n                scene.add(obj);\n                obj.name = `${entity.type}-${entity.handle || 'noHandle'}-${scene.children.length}`\n            }\n        }\n        obj = null;\n    }\n\n    // 2023-9-6:遍历所有剩下的未遍历的块，找出其中 INSERT/DIMENSION 类型的实体，进行解析.(非此类型就算解析位置也不正确)\n    // TODO 待删除\n    for (let blockName in data.blocks) {\n        const block = data.blocks[blockName];\n\n        if (parsedBlocks.includes(blockName) || !block.position || !block.entities) continue;\n\n        for (let j = 0; j < block.entities.length; j++) {\n            entity = block.entities[j];\n            if (entity.type == \"INSERT\" || entity.type == \"DIMENSION\") {\n                // TODO 容易栈溢出\n                // obj = this.drawEntity(entity);\n                //\n                // if (obj) {\n                //     const bbox = new THREE.Box3().setFromObject(obj);\n                //     if (isFinite(bbox.min.x) && (dims.min.x > bbox.min.x)) dims.min.x = bbox.min.x;\n                //     if (isFinite(bbox.min.y) && (dims.min.y > bbox.min.y)) dims.min.y = bbox.min.y;\n                //     if (isFinite(bbox.min.z) && (dims.min.z > bbox.min.z)) dims.min.z = bbox.min.z;\n                //     if (isFinite(bbox.max.x) && (dims.max.x < bbox.max.x)) dims.max.x = bbox.max.x;\n                //     if (isFinite(bbox.max.y) && (dims.max.y < bbox.max.y)) dims.max.y = bbox.max.y;\n                //     if (isFinite(bbox.max.z) && (dims.max.z < bbox.max.z)) dims.max.z = bbox.max.z;\n                //     this.scene.add(obj);\n                // }\n                // obj = null;\n            }\n        }\n    }\n\n    const aspectRatio = state.width / state.height;\n    const dims = new THREE.Box3().setFromObject(scene);\n    const upperRightCorner = { x: dims.max.x, y: dims.max.y };\n    const lowerLeftCorner = { x: dims.min.x, y: dims.min.y };\n    //const lowerLeftCorner = data.header.$EXTMIN; // X、Y 和 Z 图形范围左下角（在 WCS 中）\n    //const upperRightCorner = data.header.$EXTMAX; // X、Y 和 Z 图形范围右上角（在 WCS 中）\n\n    // 找出当前的视口范围\n    let vp_width = upperRightCorner.x - lowerLeftCorner.x;\n    let vp_height = upperRightCorner.y - lowerLeftCorner.y;\n    let center = {\n        x: vp_width / 2 + lowerLeftCorner.x,\n        y: vp_height / 2 + lowerLeftCorner.y\n    };\n    //let center = data.tables.viewPort.viewPorts[0].ucsOrigin;\n\n    // 将所有对象放入当前的查看器中\n    const extentsAspectRatio = Math.abs(vp_width / vp_height);\n    if (aspectRatio > extentsAspectRatio) {\n        vp_width = vp_height * aspectRatio;\n    } else {\n        vp_height = vp_width / aspectRatio;\n    }\n\n    const viewPort = {\n        bottom: -vp_height / 2,\n        left: -vp_width / 2,\n        top: vp_height / 2,\n        right: vp_width / 2,\n        center: {\n            x: center.x,\n            y: center.y\n        }\n    };\n\n    camera = new THREE.OrthographicCamera(viewPort.left, viewPort.right, viewPort.top, viewPort.bottom, 1, 19);\n    camera.position.z = 1;\n    camera.position.x = viewPort.center.x;\n    camera.position.y = viewPort.center.y;\n    camera.userData.viewPort = viewPort;\n\n    // 销毁中间变量\n    layersGroupMap.clear();\n}\n\n// function initComposer() {\n//     const pixelRatio = renderer.getPixelRatio();\n//\n//     composer = new EffectComposer(renderer);\n//     composer.renderToScreen = false;\n//     composer.setPixelRatio(pixelRatio)\n//\n//     let ssaaRenderPass = new SSAARenderPass(scene, camera);\n//     ssaaRenderPass.unbiased = false;\n//     ssaaRenderPass.sampleLevel = 2;\n//     composer.addPass(ssaaRenderPass);\n//\n//     const bloomPass = new UnrealBloomPass(\n//         //参数一：泛光覆盖场景大小，二维向量类型\n//         new THREE.Vector2(inputElement.width, inputElement.height),\n//         //参数二：bloomStrength 泛光强度，值越大明亮的区域越亮，较暗区域变亮的范围越广\n//         1.5,\n//         //参数三：bloomRadius 泛光散发半径\n//         0,\n//         //参数四：bloomThreshold 泛光的光照强度阈值，如果照在物体上的光照强度大于该值就会产生泛光\n//         0\n//     );\n//     composer.addPass(bloomPass);\n//\n//     const mixPass = new ShaderPass(\n//         new THREE.ShaderMaterial({\n//             uniforms: {\n//                 baseTexture: { value: null },\n//                 bloomTexture: { value: composer.renderTarget2.texture }\n//             },\n//             vertexShader: `\n//             varying vec2 vUv;\n//                 void main() {\n//                 vUv = uv;\n//                 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n//             }\n// `,\n//             fragmentShader: `\n//             uniform sampler2D baseTexture;\n//             uniform sampler2D bloomTexture;\n//             varying vec2 vUv;\n//             void main() {\n//                 gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n//             }`,\n//             defines: {}\n//         }), 'baseTexture'\n//     );\n//     mixPass.needsSwap = true;\n//\n//     const outputPass = new OutputPass();\n//\n//     finalComposer = new EffectComposer(renderer);\n//     finalComposer.addPass(ssaaRenderPass);\n//     finalComposer.addPass(mixPass);\n//     finalComposer.addPass(outputPass);\n// }\n\n// 图元选中\nexport function select({ modelOrName }) {\n    let model = modelOrName;\n    if (typeof modelOrName === 'string') {\n        model = scene.getObjectByProperty('name', modelOrName);\n    }\n\n    if (model) {\n        modules.pickHelper.select(model);\n    }\n}\n\n/** ------------------------------------------实体解析部分-------------------------------------------------------- **/\nfunction getColor(entity) {\n    let color = options.contrastColor;//默认高对比度颜色\n    if (entity.color !== undefined) color = entity.color;\n    else if (data.tables && data.tables.layer && data.tables.layer.layers[entity.layer])\n        color = data.tables.layer.layers[entity.layer].color;\n\n    // 因为 scene.background = new THREE.Color(options.bgColor)，所以黑色显示时改为白色\n    if (color == null || color === 0 || color === options.bgColor) {\n        color = options.contrastColor;\n    }\n    return color;\n}\n\nfunction drawEntity(entity) {\n    // 2023-9-6: 仅解析模型空间的实体\n    if (entity.inPaperSpace) return null;\n\n    let mesh;\n    switch (entity.type) {\n        case 'CIRCLE':\n        case 'ARC':\n            mesh = drawArc(entity);\n            break;\n        case 'LWPOLYLINE':\n        case 'LINE':\n        case 'POLYLINE':\n            mesh = drawLine(entity);\n            break;\n        case 'TEXT':\n            mesh = drawText(entity);\n            break;\n        case 'ATTDEF':\n            mesh = drawAttdef(entity);\n            break;\n        case 'ATTRIB':\n            mesh = drawAttrib(entity);\n            break;\n        case 'SOLID':\n            mesh = drawSolid(entity);\n            break;\n        case 'POINT':\n            mesh = drawPoint(entity);\n            break;\n        case 'INSERT':\n            mesh = drawBlock(entity);\n            break;\n        case 'SPLINE':\n            mesh = drawSpline(entity);\n            break;\n        case 'MTEXT':\n            // console.log(\"实体类型 MTEXT:\", entity);\n            mesh = drawMtext(entity);\n            break;\n        case 'ELLIPSE':\n            mesh = drawEllipse(entity);\n            break;\n        case \"HATCH\":\n            mesh = drawHatch(entity);\n            break;\n        case 'DIMENSION':\n            const dimTypeEnum = entity.dimensionType & 7;\n            if (dimTypeEnum === 0) {\n                mesh = drawDimension(entity);\n            } else {\n                //console.log(\"不支持的维度类型: \" + dimTypeEnum);\n            }\n            break;\n        default:\n            log.warn(\"不支持的实体类型: \" + entity.type);\n            break;\n    }\n\n    if (mesh?.material && mesh.material?.color.getHex() === options.contrastColor) {\n        contrastEntity.push(mesh)\n    }\n\n    return mesh;\n}\n\nfunction drawArc(entity) {\n    let startAngle: number, endAngle: number;\n    if (entity.type === 'CIRCLE') {\n        startAngle = entity.startAngle || 0;\n        endAngle = startAngle + 2 * Math.PI;\n    } else {\n        startAngle = entity.startAngle;\n        endAngle = entity.endAngle;\n    }\n\n    //@ts-ignore\n    const curve = new THREE.ArcCurve(\n        0, 0,\n        entity.radius,\n        startAngle,\n        endAngle);\n\n    const points = curve.getPoints(32);\n    const geometry = new THREE.BufferGeometry().setFromPoints(points);\n\n    const material = new THREE.LineBasicMaterial({ color: getColor(entity) });\n\n    const arc = new THREE.Line(geometry, material);\n    arc.position.x = entity.center.x;\n    arc.position.y = entity.center.y;\n    arc.position.z = entity.center.z;\n\n    return arc;\n}\n\nfunction drawLine(entity) {\n    let points: THREE.Vector3[] = [];\n    let color = getColor(entity);\n    let material, lineType, vertex, startPoint, endPoint,\n        bulge, i, line;\n\n    if (!entity.vertices) return; //console.log('缺少顶点的实体.');\n\n    // 创建几何\n    for (i = 0; i < entity.vertices.length; i++) {\n        if (entity.vertices[i].bulge) {\n            bulge = entity.vertices[i].bulge;\n            startPoint = entity.vertices[i];\n            endPoint = i + 1 < entity.vertices.length ? entity.vertices[i + 1] : points[0];\n\n            let bulgePoints = getBulgeCurvePoints(startPoint, endPoint, bulge);\n\n            points.push.apply(points, bulgePoints);\n        } else {\n            vertex = entity.vertices[i];\n            points.push(new THREE.Vector3(vertex.x, vertex.y, 0));\n        }\n\n    }\n    if (entity.shape) points.push(points[0]);\n\n\n    // 设置材质\n    if (entity.lineType) {\n        lineType = data.tables.lineType.lineTypes[entity.lineType];\n    }\n\n    if (lineType && lineType.pattern && lineType.pattern.length !== 0) {\n        material = new THREE.LineDashedMaterial({ color: color, gapSize: 4, dashSize: 4 });\n    } else {\n        material = new THREE.LineBasicMaterial({ linewidth: 1, color: color });\n    }\n\n    const geometry = new THREE.BufferGeometry().setFromPoints(points);\n\n    line = new THREE.Line(geometry, material);\n    return line;\n}\n\nfunction drawText(entity) {\n    let geometry, material, text;\n\n    if (!font)\n        return log.warn('文本不支持没有Three.js字体加载的THREE.FontLoader!');\n\n    if (entity.text == null || entity.text == \"\") return null;\n\n    if (entity.textHeight == null || entity.textHeight == 0) return null;\n\n    // 当前使用的字体略宽，需要缩小一点\n    // xScale: 相对 X 比例因子 — 宽度\n    let fontSize = entity.xScale ? entity.xScale * entity.textHeight * 0.73 : entity.textHeight * 0.5;\n    geometry = new TextGeometry(entity.text, { font: font, depth: 0, size: fontSize || 100 });\n\n    if (entity.rotation) {\n        const zRotation = entity.rotation * Math.PI / 180;\n        geometry.rotateZ(zRotation);\n    }\n\n    material = new THREE.MeshBasicMaterial({ color: getColor(entity) });\n\n    text = new THREE.Mesh(geometry, material);\n    text.position.x = entity.startPoint.x;\n    text.position.y = entity.startPoint.y;\n    text.position.z = entity.startPoint.z;\n\n    return text;\n}\n\nfunction drawMtext(entity) {\n    const color = getColor(entity);\n\n    const textAndControlChars = parseDxfMTextContent(entity.text);\n\n    //Note: 目前只支持应用于所有mtext文本的单一格式\n    const content = mtextContentAndFormattingToTextAndStyle(textAndControlChars, entity, color);\n\n    /* 单行文本渲染模式 */\n    if (!font)\n        return log.warn('文本不支持没有Three.js字体加载的THREE.FontLoader!');\n\n    if (content.text == null || content.text == \"\") return null;\n    if (content.style.textHeight == null || content.style.textHeight == 0) return null;\n\n    const geometry = new TextGeometry(content.text, { font: font, depth: 0, size: content.style.textHeight || 100 });\n    if (entity.rotation) {\n        const zRotation = entity.rotation * Math.PI / 180;\n        geometry.rotateZ(zRotation);\n    }\n    if (entity.directionVector) {\n        const dv = entity.directionVector;\n        geometry.rotateZ(new THREE.Vector3(1, 0, 0).angleTo(new THREE.Vector3(dv.x, dv.y, dv.z)));\n    }\n    const material = new THREE.MeshBasicMaterial({ color });\n    const text = new THREE.Mesh(geometry, material);\n    text.position.x = entity.position.x;\n    text.position.y = entity.position.y;\n    text.position.z = entity.position.z;\n\n    return text;\n\n\n    /* TODO:多行文本渲染,拉近不显示 */\n    /*const txt = createTextForScene(content.text, content.style, entity, color,options.fontUrl);\n    if (!txt) return null;\n\n    console.log(\"MText txt:\", txt);\n\n    // const group = new THREE.Object3D();\n    // group.add(txt);\n    return txt;*/\n}\n\n// @ts-ignore\nfunction drawAttdef(entity) {\n    //console.log(\"drawAttdef:\", entity);\n}\n\n// @ts-ignore\nfunction drawAttrib(entity) {\n    //console.log(\"drawAttrib:\", entity);\n}\n\nfunction drawSolid(entity) {\n    let material, verts,\n        geometry = new THREE.BufferGeometry();\n\n    const points = entity.points;\n    // verts = geometry.vertices;\n    verts = [];\n    addTriangleFacingCamera(verts, points[0], points[1], points[2]);\n    addTriangleFacingCamera(verts, points[1], points[2], points[3]);\n\n    material = new THREE.MeshBasicMaterial({ color: getColor(entity) });\n    geometry.setFromPoints(verts);\n\n    return new THREE.Mesh(geometry, material);\n}\n\nfunction drawPoint(entity) {\n    let geometry, material;\n\n    geometry = new THREE.BufferGeometry();\n\n    geometry.setAttribute('position', new THREE.Float32BufferAttribute([entity.position.x, entity.position.y, entity.position.z], 3));\n\n    const color = getColor(entity);\n\n    material = new THREE.PointsMaterial({ size: 0.1, color: new THREE.Color(color) });\n    return new THREE.Points(geometry, material);\n    // this.scene.add(point);\n}\n\nfunction drawBlock(entity) {\n    if (!data.blocks) return;\n\n    let block = data.blocks[entity.name];\n\n    if (!block) return null;\n\n    // 解析过的就存储起来，不再重复解析\n    parsedBlocks.push(entity.name);\n\n    if (!block.entities) return null;\n\n    const group = new THREE.Group();\n\n    if (entity.xScale) group.scale.x = entity.xScale;\n    if (entity.yScale) group.scale.y = entity.yScale;\n\n    if (entity.rotation) {\n        group.rotation.z = entity.rotation * Math.PI / 180;\n    }\n\n    if (entity.position) {\n        group.position.x = entity.position.x;\n        group.position.y = entity.position.y;\n        group.position.z = entity.position.z;\n    }\n\n    for (let i = 0; i < block.entities.length; i++) {\n        const childEntity = drawEntity(block.entities[i]);\n        if (childEntity) group.add(childEntity);\n    }\n\n    return group;\n}\n\nfunction drawSpline(entity) {\n    if (entity.controlPoints === undefined) return null;\n    const color = getColor(entity);\n\n    const points = getBSplinePolyline(entity.controlPoints, entity.degreeOfSplineCurve, entity.knotValues, 100, undefined);\n\n    const geometry = new THREE.BufferGeometry().setFromPoints(points);\n    const material = new THREE.LineBasicMaterial({ linewidth: 1, color: color });\n    return new THREE.Line(geometry, material);\n}\n\nfunction drawEllipse(entity) {\n    const color = getColor(entity);\n\n    const xrad = Math.sqrt(Math.pow(entity.majorAxisEndPoint.x, 2) + Math.pow(entity.majorAxisEndPoint.y, 2));\n    const yrad = xrad * entity.axisRatio;\n    const rotation = Math.atan2(entity.majorAxisEndPoint.y, entity.majorAxisEndPoint.x);\n\n    const curve = new THREE.EllipseCurve(\n        entity.center.x, entity.center.y,\n        xrad, yrad,\n        entity.startAngle, entity.endAngle,\n        false, // Always counterclockwise\n        rotation\n    );\n\n    const points = curve.getPoints(50);\n    const geometry = new THREE.BufferGeometry().setFromPoints(points);\n    const material = new THREE.LineBasicMaterial({ linewidth: 1, color: color });\n\n    // 创建要添加到场景中的最后一个对象\n    return new THREE.Line(geometry, material);\n}\n\nfunction drawHatch(entity) {\n    if (entity.isSolid) return\n\n    // TODO 未实现\n}\n\nfunction drawDimension(entity) {\n    if (!data.blocks) return;\n\n    // console.log(\"drawDimension\", entity.block)\n    const block = data.blocks[entity.block];\n\n    // 解析过的就存储起来，不再重复解析\n    parsedBlocks.push(entity.block);\n\n    if (!block || !block.entities) return null;\n\n    const group = new THREE.Group();\n    // if(entity.anchorPoint) {\n    //     group.position.x = entity.anchorPoint.x;\n    //     group.position.y = entity.anchorPoint.y;\n    //     group.position.z = entity.anchorPoint.z;\n    // }\n\n    for (let i = 0; i < block.entities.length; i++) {\n        const childEntity = drawEntity(block.entities[i]);\n        if (childEntity) group.add(childEntity);\n    }\n\n    return group;\n}\n\n/** ------------------------------------------实体解析结束-------------------------------------------------------- **/\n\n// 设置图层可见性\nexport function setLayerVisible(data: { layerName: string, visible: boolean }) {\n    const group = scene.getObjectByName(data.layerName);\n    if (group) group.visible = data.visible;\n}\n\n// 调用modules里的方法\nexport function callModuleMethod(data: { moduleName: string, methodName: string }) {\n    const module = modules[data.moduleName];\n    if (module && module[data.methodName]) {\n        module[data.methodName](data);\n    }\n}\n\n// 相机复位\nexport function resetCamera() {\n    const viewPort = camera.userData.viewPort;\n\n    if (!viewPort) return;\n\n    camera.left = viewPort.left;\n    camera.right = viewPort.right;\n    camera.top = viewPort.top;\n    camera.bottom = viewPort.bottom;\n\n    camera.position.z = 1;\n    camera.position.x = viewPort.center.x;\n    camera.position.y = viewPort.center.y;\n\n    modules.drawRect.controls.target.x = camera.position.x;\n    modules.drawRect.controls.target.y = camera.position.y;\n    modules.drawRect.controls.target.z = 0;\n    modules.drawRect.controls.object.zoom = 1;\n    modules.drawRect.controls.update();\n}\n\n//let start;\nexport function resize({ width, height }) {\n    if (!camera || data) return;\n\n    const hscale = width / state.width;\n    const vscale = height / state.height;\n\n    state.width = width;\n    state.height = height;\n\n    camera.top = (vscale * camera.top);\n    camera.bottom = (vscale * camera.bottom);\n    camera.left = (hscale * camera.left);\n    camera.right = (hscale * camera.right);\n\n    camera.updateProjectionMatrix();\n\n    renderer.setSize(width, height, false);\n    // composer.setSize(width, height);\n    // finalComposer.setSize(width, height);\n\n    render();\n}\n\n//\n// function darkenNonBloomed(obj) {\n//     if (obj.material && bloomLayer.test(obj.layers) === false) {\n//         materials[obj.uuid] = obj.material;\n//         obj.material = DarkMaterial;\n//     }\n// }\n//\n// function restoreMaterial(obj) {\n//     if (materials[obj.uuid]) {\n//         obj.material = materials[obj.uuid];\n//         delete materials[obj.uuid];\n//     }\n// }\n\nexport function render() {\n    renderer.autoClear = false;\n\n    // scene.traverse(darkenNonBloomed);\n    // composer.render();\n    // scene.traverse(restoreMaterial);\n    // finalComposer.render();\n    renderer.render(scene, camera);\n    renderer.render(helpScene, camera);\n\n    renderer.autoClear = true;\n}\n\nexport function stopRender() {\n    renderer.setAnimationLoop(null)\n}\n\nexport function renderLoop() {\n    renderer.setAnimationLoop(render)\n}\n\nexport function helpRender() {\n    renderer.autoClear = false;\n    renderer.render(helpScene, camera);\n}\n\nexport function dispose() {\n    data = undefined;\n    font = undefined;\n\n    renderer.setAnimationLoop(null)\n    renderer?.dispose();\n    scene.children.forEach((obj) => {\n        scene.remove(obj);\n    })\n    camera.remove();\n    scene.remove();\n}\n\n/** ---------------------------- 设置弹窗配置变化 ---------------------------------- */\nexport function changeClearColor(color: 0x000000 | 0xffffff) {\n    options.bgColor = color;\n    options.contrastColor = options.bgColor === 0x000000 ? 0xffffff : 0x000000;\n    scene.background = new THREE.Color(options.bgColor);\n\n    contrastEntity.forEach(mesh => {\n        if (!mesh.material || !mesh.material.color) return;\n\n        mesh.material.color = new THREE.Color(options.contrastColor);\n    })\n}"
  },
  {
    "path": "packages/sdk/lib/dxf/drawUtils.ts",
    "content": "import {Vector2, Vector3} from \"three\";\nimport bSpline from './bspline';\nimport {Text} from \"./troika-three-text.esm.js\";\n\n// Three.js 扩展函数\nconst THREEx: {\n    Math: {\n        angle2: (p1: { x: number, y: number }, p2: { x: number, y: number }) => number,\n        polar: (point: { x: number, y: number }, distance: number, angle: number) => { x: number, y: number },\n    }\n} = {\n    Math: {\n        /**\n         * 返回向量(p1,p2)的弧度角。换句话说，想象把向量的底放在坐标(0,0)处，然后求向量(1,0)到(p1,p2)的夹角。\n         * @param  {{x:number,y:number}} p1 起始点坐标\n         * @param  {{x:number,y:number}} p2 结束点坐标\n         * @return {Number} the angle\n         */\n        angle2: (p1: { x: number; y: number; }, p2: { x: number; y: number; }): number => {\n            const v1 = new Vector2(p1.x, p1.y);\n            const v2 = new Vector2(p2.x, p2.y);\n            v2.sub(v1); // sets v2 to be our chord\n            v2.normalize();\n            if (v2.y < 0) return -Math.acos(v2.x);\n            return Math.acos(v2.x);\n        },\n        polar: (point, distance, angle) => {\n            return {\n                x: point.x + distance * Math.cos(angle),\n                y: point.y + distance * Math.sin(angle)\n            };\n        }\n    }\n}\n\n/**\n * 使用凸起值计算两点之间曲线的点。通常用于折线\n * @param startPoint - 曲线的起点\n * @param endPoint - 曲线的终点\n * @param bulge - 凸起值：表示要弯曲多少的值\n * @param {number} segments - 曲线的分段数\n */\nexport function getBulgeCurvePoints(startPoint: { x: number; y: number; }, endPoint: {\n    x: number | undefined;\n    y: number | undefined;\n}, bulge: number, segments?: number | undefined) {\n    let vertex: { x: number, y: number }, i: number,\n        center: { x: number, y: number }, p0: Vector2, p1: Vector2, angle: number,\n        radius: number, startAngle: number,\n        thetaAngle: number;\n\n    p0 = startPoint ? new Vector2(startPoint.x, startPoint.y) : new Vector2(0, 0);\n    p1 = endPoint ? new Vector2(endPoint.x, endPoint.y) : new Vector2(1, 0);\n    bulge = bulge || 1;\n\n    const obj = {\n        startPoint: p0,\n        endPoint: p1,\n        bulge: bulge,\n        segments: segments || 100\n    };\n\n    angle = 4 * Math.atan(bulge);\n    radius = p0.distanceTo(p1) / 2 / Math.sin(angle / 2);\n    center = THREEx.Math.polar(startPoint, radius, THREEx.Math.angle2(p0, p1) + (Math.PI / 2 - angle / 2));\n\n    // 默认情况下，每10度需要一个段\n    obj.segments = segments = segments || Math.max(Math.abs(Math.ceil(angle / (Math.PI / 18))), 6);\n    startAngle = THREEx.Math.angle2(center, p0);\n    thetaAngle = angle / segments;\n\n    const vertices: Array<Vector3> = [];\n\n    vertices.push(new Vector3(p0.x, p0.y, 0));\n\n    for (i = 1; i <= segments - 1; i++) {\n        vertex = THREEx.Math.polar(center, Math.abs(radius), startAngle + thetaAngle * i);\n        vertices.push(new Vector3(vertex.x, vertex.y, 0));\n    }\n\n    return vertices;\n}\n\n/**\n * 插值一条b样条。该算法检查结向量以创建分段进行插值。参数化值被重新归一化为[0,1]，因为这是库所期望的(并且在b样条库中被反归一化)\n * @param controlPoints the control points\n * @param degree the b-spline degree\n * @param knots the knot vector\n * @returns the polyline\n */\nexport function getBSplinePolyline(controlPoints, degree, knots, interpolationsPerSplineSegment, weights) {\n    const polyline: Vector2[] = []\n    const controlPointsForLib = controlPoints.map(function (p) {\n        return [p.x, p.y]\n    })\n\n    const segmentTs = [knots[degree]]\n    const domain = [knots[degree], knots[knots.length - 1 - degree]]\n\n    for (let k = degree + 1; k < knots.length - degree; ++k) {\n        if (segmentTs[segmentTs.length - 1] !== knots[k]) {\n            segmentTs.push(knots[k])\n        }\n    }\n\n    interpolationsPerSplineSegment = interpolationsPerSplineSegment || 25\n    for (let i = 1; i < segmentTs.length; ++i) {\n        const uMin = segmentTs[i - 1]\n        const uMax = segmentTs[i]\n        for (let k = 0; k <= interpolationsPerSplineSegment; ++k) {\n            const u = k / interpolationsPerSplineSegment * (uMax - uMin) + uMin\n            // Clamp t to 0, 1 to handle numerical precision issues\n            let t = (u - domain[0]) / (domain[1] - domain[0])\n            t = Math.max(t, 0)\n            t = Math.min(t, 1)\n            const p = bSpline(t, degree, controlPointsForLib, knots, weights)\n            polyline.push(new Vector2(p[0], p[1]));\n        }\n    }\n    return polyline\n}\n\nexport function addTriangleFacingCamera(verts, p0, p1, p2) {\n    // 计算这些点面对的方向(顺时针还是逆时针)\n    const vector1 = new Vector3();\n    const vector2 = new Vector3();\n    vector1.subVectors(p1, p0);\n    vector2.subVectors(p2, p0);\n    vector1.cross(vector2);\n\n    const v0 = new Vector3(p0.x, p0.y, p0.z);\n    const v1 = new Vector3(p1.x, p1.y, p1.z);\n    const v2 = new Vector3(p2.x, p2.y, p2.z);\n\n    // 如果z < 0，那么我们必须以相反的顺序来画\n    if (vector1.z < 0) {\n        verts.push(v2, v1, v0);\n    } else {\n        verts.push(v0, v1, v2);\n    }\n}\n\nexport function mtextContentAndFormattingToTextAndStyle(textAndControlChars, entity, color) {\n    let activeStyle = {\n        horizontalAlignment: 'left',\n        textHeight: entity.height\n    }\n\n    const text: string[] = [];\n    for (let item of textAndControlChars) {\n        if (typeof item === 'string') {\n            if (item.startsWith('pxq') && item.endsWith(';')) {\n                if (item.indexOf('c') !== -1)\n                    activeStyle.horizontalAlignment = 'center';\n                else if (item.indexOf('l') !== -1)\n                    activeStyle.horizontalAlignment = 'left';\n                else if (item.indexOf('r') !== -1)\n                    activeStyle.horizontalAlignment = 'right';\n                else if (item.indexOf('j') !== -1)\n                    activeStyle.horizontalAlignment = 'justify';\n            } else {\n                text.push(item);\n            }\n        } else if (Array.isArray(item)) {\n            const nestedFormat = mtextContentAndFormattingToTextAndStyle(item, entity, color);\n            text.push(nestedFormat.text);\n        } else if (typeof item === 'object') {\n            if (item['S'] && item['S'].length === 3) {\n                text.push(item['S'][0] + '/' + item['S'][2]);\n            } else {\n                // not yet supported.\n            }\n        }\n    }\n    return {\n        text: text.join(),\n        style: activeStyle\n    }\n}\n\nexport function createTextForScene(text, style, entity, color,fontUrl:string) {\n    if (!text) return null;\n\n    let textEnt:any = new Text();\n    textEnt.text = text.replaceAll('\\\\P', '\\n').replaceAll('\\\\X', '\\n');\n    textEnt.font = fontUrl;\n    textEnt.fontSize = style.textHeight;\n    textEnt.maxWidth = entity.width;\n    textEnt.position.x = entity.position.x;\n    textEnt.position.y = entity.position.y;\n    textEnt.position.z = entity.position.z;\n    textEnt.textAlign = style.horizontalAlignment;\n    textEnt.color = color;\n    if (entity.rotation) {\n        textEnt.rotation.z = entity.rotation * Math.PI / 180;\n    }\n    if (entity.directionVector) {\n        const dv = entity.directionVector;\n        textEnt.rotation.z = new Vector3(1, 0, 0).angleTo(new Vector3(dv.x, dv.y, dv.z));\n    }\n    switch (entity.attachmentPoint) {\n        case 1:\n            // Top Left\n            textEnt.anchorX = 'left';\n            textEnt.anchorY = 'top';\n            break;\n        case 2:\n            // Top Center\n            textEnt.anchorX = 'center';\n            textEnt.anchorY = 'top';\n            break;\n        case 3:\n            // Top Right\n            textEnt.anchorX = 'right';\n            textEnt.anchorY = 'top';\n            break;\n\n        case 4:\n            // Middle Left\n            textEnt.anchorX = 'left';\n            textEnt.anchorY = 'middle';\n            break;\n        case 5:\n            // Middle Center\n            textEnt.anchorX = 'center';\n            textEnt.anchorY = 'middle';\n            break;\n        case 6:\n            // Middle Right\n            textEnt.anchorX = 'right';\n            textEnt.anchorY = 'middle';\n            break;\n\n        case 7:\n            // Bottom Left\n            textEnt.anchorX = 'left';\n            textEnt.anchorY = 'bottom';\n            break;\n        case 8:\n            // Bottom Center\n            textEnt.anchorX = 'center';\n            textEnt.anchorY = 'bottom';\n            break;\n        case 9:\n            // Bottom Right\n            textEnt.anchorX = 'right';\n            textEnt.anchorY = 'bottom';\n            break;\n\n        default:\n            return undefined;\n    }\n\n    textEnt.sync(() => {\n        if (textEnt.textAlign !== 'left') {\n            textEnt.geometry.computeBoundingBox();\n            const textWidth = textEnt.geometry.boundingBox.max.x - textEnt.geometry.boundingBox.min.x;\n            if (textEnt.textAlign === 'center') textEnt.position.x += (entity.width - textWidth) / 2;\n            if (textEnt.textAlign === 'right') textEnt.position.x += (entity.width - textWidth);\n        }\n    });\n\n    return textEnt;\n}\n\nexport function findExtents(scene) {\n    let minX;\n    let maxX;\n    let minY;\n    let maxY;\n    for (const child of scene.children) {\n        if (child.position) {\n            minX = Math.min(child.position.x, minX);\n            minY = Math.min(child.position.y, minY);\n            maxX = Math.max(child.position.x, maxX);\n            maxY = Math.max(child.position.y, maxY);\n        }\n    }\n\n    return {min: {x: minX, y: minY}, max: {x: maxX, y: maxY}};\n}"
  },
  {
    "path": "packages/sdk/lib/dxf/index.ts",
    "content": "import * as DrawShare from \"./drawShare\";\nimport {useAddSignal, useDispatchSignal, useRemoveSignal} from \"@/hooks\";\nimport OffScreenCanvasWorker from './offScreenCanvas.worker.ts?worker&url';\nimport App from \"@/core/app/App.ts\";\n\n/** ----------------- 离屏渲染中的事件处理--------------------------- **/\nconst mouseEventHandler = makeSendPropertiesHandler( [\n    'ctrlKey',\n    'metaKey',\n    'shiftKey',\n    'button',\n    'pointerType',\n    'clientX',\n    'clientY',\n    'pageX',\n    'pageY',\n] );\nconst wheelEventHandlerImpl = makeSendPropertiesHandler( [\n    'deltaX',\n    'deltaY',\n] );\nconst keydownEventHandler = makeSendPropertiesHandler( [\n    'ctrlKey',\n    'metaKey',\n    'shiftKey',\n    'keyCode',\n] );\nfunction wheelEventHandler( event, sendFn ) {\n    event.preventDefault();\n    wheelEventHandlerImpl( event, sendFn );\n}\n\nfunction preventDefaultHandler( event ) {\n    event.preventDefault();\n}\n\nfunction copyProperties(src, properties, dst) {\n    for ( const name of properties ) {\n        dst[ name ] = src[ name ];\n    }\n}\n\nfunction makeSendPropertiesHandler( properties ) {\n    return function sendProperties(event, sendFn) {\n        const data = { type: event.type };\n        copyProperties( event, properties, data );\n        sendFn( data );\n    };\n}\n\nfunction touchEventHandler(event, sendFn) {\n    const touches: { pageX:number,pageY:number }[] = [];\n    const data = { type: event.type, touches };\n    for ( let i = 0; i < event.touches.length; ++ i ) {\n        const touch = event.touches[ i ];\n        touches.push({\n            pageX: touch.pageX,\n            pageY: touch.pageY,\n        });\n    }\n\n    sendFn( data );\n}\n\n// 四个方向键\nconst orbitKeys = {\n    '37': true, // left\n    '38': true, // up\n    '39': true, // right\n    '40': true, // down\n};\nfunction filteredKeydownEventHandler(event, sendFn) {\n    const { keyCode } = event;\n    if (orbitKeys[keyCode]) {\n        event.preventDefault();\n        keydownEventHandler( event, sendFn );\n    }\n}\n/** ----------------- 离屏渲染中的事件end --------------------------- **/\n\nlet nextProxyId = 0;\n/**\n * 转发 DOM 事件给Worker中的 ElementProxyReceiver\n */\nclass ElementProxy {\n    readonly id: number;\n    private worker: Worker;\n    private element: HTMLElement;\n    \n    constructor(element, worker, eventHandlers) {\n        this.id = nextProxyId++;\n        this.worker = worker;\n        this.element = element;\n\n        // 注册一个响应元素id\n        worker.postMessage({\n            type: 'makeProxy',\n            data:{\n                id: this.id,\n            }\n        });\n\n        this.sendSize();\n\n        // 添加相应事件的监听\n        for (const [eventName, handler] of Object.entries(eventHandlers)) {\n            element.addEventListener(eventName, (event) => {\n                // @ts-ignore\n                handler(event, this.sendEvent.bind(this));\n            });\n        }\n    }\n\n    sendEvent(data){\n        this.worker.postMessage({\n            type: 'event',\n            data:{\n                id: this.id,\n                data,\n            }\n        });\n    };\n\n    sendSize() {\n        const rect = this.element.getBoundingClientRect();\n        this.sendEvent({\n            type: 'size',\n            left: rect.left,\n            top: rect.top,\n            width: this.element.clientWidth,\n            height: this.element.clientHeight,\n        });\n    }\n}\n\nlet cadDialogMoveFn;\n/**\n * dxf对象的查看器类\n * @param {any} data - dxf对象\n * @param {HTMLCanvasElement} canvas - three 画布\n * @param {Number} width - 渲染画布的宽度，以像素为单位\n * @param {Number} height - 渲染画布的高度，以像素为单位\n * @constructor\n */\nclass DxfViewer {\n    private worker:Worker | undefined;\n    private resizeObserver: ResizeObserver;\n    private proxy: ElementProxy | undefined;\n    private middleObject:any = new Proxy({},{\n        set(target, p: string | symbol, newValue: any): boolean {\n            target[p] = newValue;\n\n            // switch (p) {\n            //     case \"markList\":\n            //         break;\n            // }\n\n            return true;\n        }\n    })\n\n    constructor(data: any, canvas: HTMLCanvasElement, width: number, height: number, onComplete?:()=>void) {\n        //console.log('dxf data:', data);\n        canvas.style.width = `${width}px`;\n        canvas.style.height = `${height}px`;\n\n        const cadFontUrl = new URL(import.meta.env.BASE_URL + 'resource/fonts/Alimama_DongFangDaKai_Regular.ttf', import.meta.url).href;\n\n        // 检查是否支持离屏canvas\n        if (canvas.transferControlToOffscreen) {\n            // console.log('OffscreenCanvas supported');\n            // 创建Worker进行离屏渲染\n            this.worker = new Worker(OffScreenCanvasWorker, {type: 'module'});\n            const offscreen = canvas.transferControlToOffscreen();\n            offscreen.width = width;\n            offscreen.height = height;\n\n            // 添加鼠标事件的监听\n            const eventHandlers = {\n                contextmenu: preventDefaultHandler,\n                mousedown: mouseEventHandler,\n                mousemove: mouseEventHandler,\n                mouseup: mouseEventHandler,\n                pointerdown: mouseEventHandler,\n                pointermove: mouseEventHandler,\n                pointerup: mouseEventHandler,\n                touchstart: touchEventHandler,\n                //touchmove: touchEventHandler,\n                touchend: touchEventHandler,\n                wheel: wheelEventHandler,\n                keydown: filteredKeydownEventHandler,\n            };\n            this.proxy = new ElementProxy(canvas, this.worker, eventHandlers);\n\n            this.worker.postMessage({\n                type: 'start', data: {\n                    canvas: offscreen,\n                    canvasId: this.proxy.id,\n                    data:data,\n                    options: {\n                        bgColor:0x000000,\n                        contrastColor:0xffffff,\n                        fontUrl:cadFontUrl\n                    },\n                    middleObject:{\n                        markList: JSON.stringify(App.project.getKey(\"drawing.markList\")),\n                        selectedRectIndex: App.project.getKey(\"drawing.selectedRectIndex\"),\n                    }\n                }\n            }, [offscreen]);\n\n            this.worker.onmessage = (event) => {\n                const data = event.data;\n                switch (data.type) {\n                    case 'complete':\n                        onComplete && onComplete();\n                        break;\n                    case \"signal\":\n                        this.handleSignal(data.data)\n                        break;\n                    case \"style\":\n                        canvas.style[data.data.key] = data.data.value;\n                        break;\n                    case \"middle\":\n                        this.middleObject[data.data.key] = data.data.value;\n                        break;\n                }\n            }\n\n            cadDialogMoveFn = this.proxy.sendSize.bind(this.proxy);\n            useAddSignal(\"cadViewerResize\",cadDialogMoveFn)\n        }else{\n            canvas.width = width;\n            canvas.height = height;\n\n            //不支持离屏渲染\n            DrawShare.main({\n                canvas,\n                inputElement:canvas,\n                data:data,\n                onComplete:onComplete,\n                signal:this.handleSignal,\n                options: {\n                    bgColor:0x000000,\n                    contrastColor:0xffffff,\n                    fontUrl:cadFontUrl\n                },\n                middleObject:this.middleObject\n            });\n        }\n\n        // 监听窗口变化\n        this.resizeObserver = new ResizeObserver(entries => {\n            canvas.style.width = `${entries[0].contentRect.width}px`;\n            canvas.style.height = `${entries[0].contentRect.height}px`;\n\n            const data = {\n                width:entries[0].contentRect.width,\n                height:entries[0].contentRect.height\n            }\n\n            if(this.worker){\n                this.worker.postMessage({\n                    type:\"resize\",\n                    data\n                })\n\n                this.proxy?.sendSize();\n            }else{\n                DrawShare.resize(data)\n            }\n        });\n        this.resizeObserver.observe(canvas.parentElement as HTMLDivElement);\n    }\n\n    // 触发signal\n    handleSignal(args){\n        const {type,name,data} = args;\n        switch (type) {\n            case \"dispatch\":\n                useDispatchSignal(name,...data)\n                break;\n        }\n    }\n\n    // 调用drawShare中的方法,data为传入的参数，对象展示\n    callMethod(methodName:string, data:any = {}){\n        if(this.worker){\n            this.worker.postMessage({\n                type:methodName,\n                data,\n            })\n        }else{\n            DrawShare[methodName](data);\n        }\n    }\n\n    dispose() {\n        if(this.worker){\n            this.worker.terminate();\n            useRemoveSignal(\"cadViewerResize\",cadDialogMoveFn)\n        }else{\n            DrawShare.dispose();\n        }\n\n        this.resizeObserver.disconnect();\n    }\n\n    /* ------------------- 需要共同实现的标记相关方法 ------------------------- */\n    // 获取选中的标记\n    get selectRectIndex(){\n        return this.middleObject.selectRectIndex;\n    }\n\n    // 删除选中的标记\n    deleteRect(){\n        const id = this.middleObject.selectRect?.id;\n        if(!id) return;\n\n        const elementId = this.middleObject.selectRect?.elementId;\n        this.callMethod('callModuleMethod',{\n            moduleName: \"drawRect\", methodName: \"deleteRect\",elementId:elementId\n        })\n    }\n\n    // 根据模型选中对应标记\n    selectRect(uuid:string){\n        this.callMethod('callModuleMethod',{\n            moduleName: \"drawRect\", methodName: \"setSelect\",elementId:uuid\n        })\n    }\n}\n\nexport {DxfViewer}"
  },
  {
    "path": "packages/sdk/lib/dxf/offScreenCanvas.worker.ts",
    "content": "import {EventDispatcher} from \"three\";\nimport * as DrawShare from \"./drawShare\";\n\nfunction noop() {\n}\n\nclass ElementProxyReceiver extends EventDispatcher {\n    // @ts-ignore\n    private style: {};\n    // @ts-ignore\n    private width: number;\n    // @ts-ignore\n    private height: number;\n    // @ts-ignore\n    private left: number;\n    // @ts-ignore\n    private top: number;\n\n    constructor() {\n        super();\n        // 因为OrbitControls尝试设置style.touchAction;\n        this.style = new Proxy({}, {\n            set(target: {}, p: string | symbol, newValue: any): boolean {\n                self.postMessage({\n                    type: 'style',\n                    data: {\n                        key: p,\n                        value: newValue\n                    }\n                });\n\n                target[p] = newValue;\n\n                return true;\n            }\n        });\n    }\n\n    get clientWidth() {\n        return this.width;\n    }\n\n    get clientHeight() {\n        return this.height;\n    }\n\n    get offsetLeft() {\n        return this.left;\n    }\n\n    get offsetTop() {\n        return this.top;\n    }\n\n    // r132 版本的 OrbitControls 会调用这两个函数，也许我们应该实现一下\n    setPointerCapture() {\n    }\n\n    releasePointerCapture() {\n    }\n\n    getBoundingClientRect() {\n        return {\n            left: this.left,\n            top: this.top,\n            width: this.width,\n            height: this.height,\n            right: this.left + this.width,\n            bottom: this.top + this.height,\n        };\n    }\n\n    // 触发事件\n    handleEvent(data) {\n        if (data.type === 'size') {\n            this.left = data.left;\n            this.top = data.top;\n            this.width = data.width;\n            this.height = data.height;\n\n            return;\n        }\n\n        data.preventDefault = noop;\n        data.stopPropagation = noop;\n        // @ts-ignore\n        this.dispatchEvent(data);\n    }\n\n    focus() {\n        // no-op\n    }\n\n    // ----------------------- 2024/04/12 r163 版本 OrbitControls 新增的函数调用 ------------------------------\n    getRootNode(){\n        return this;\n    }\n}\n\nclass ProxyManager {\n    private readonly targets: {};\n\n    constructor() {\n        this.targets = {};\n        this.handleEvent = this.handleEvent.bind(this);\n    }\n\n    /**\n     * 通过一个id，可以生成一个响应对应id信息的 ElementProxyReceiver 对象。\n     * @param data\n     */\n    makeProxy(data: { id: number }) {\n        const {id} = data;\n        this.targets[id] = new ElementProxyReceiver();\n    }\n\n    getProxy(id: number) {\n        return this.targets[id];\n    }\n\n    handleEvent(data) {\n        this.targets[data.id].handleEvent(data.data);\n    }\n}\n\n\n/** ---------------- worker主体  ------------------ **/\nconst proxyManager = new ProxyManager();\nconst middleObject:any = new Proxy({}, {\n    set(target: {}, p: string | symbol, newValue: any): boolean {\n        self.postMessage({\n            type: 'middle',\n            data: {\n                key: p,\n                value: newValue\n            }\n        });\n\n        target[p] = newValue;\n\n        return true;\n    }\n});\n\nfunction start(data: { canvasId: number, canvas: HTMLCanvasElement, data: any,options,middleObject }) {\n    const proxy = proxyManager.getProxy(data.canvasId);\n\n    middleObject.markList = JSON.parse(data.middleObject.markList);\n    middleObject.selectedRectIndex = data.middleObject.selectedRectIndex;\n\n    DrawShare.main({\n        canvas: data.canvas,\n        inputElement: proxy,\n        data: data.data,\n        options:data.options,\n        onComplete: () => {\n            self.postMessage({\n                type: 'complete'\n            });\n        },\n        signal: (args: { type: 'add' | 'remove' | 'dispatch', name: string, data?: any }) => {\n            self.postMessage({\n                type: 'signal',\n                data: args\n            });\n        },\n        middleObject\n    });\n}\n\nfunction makeProxy(data: { id: number }) {\n    proxyManager.makeProxy(data);\n}\n\nconst handlers = {\n    start,\n    makeProxy,\n    event: proxyManager.handleEvent,\n};\n\nself.onmessage = function ({data}) {\n    const fn = handlers[data.type] || DrawShare[data.type];\n    if (typeof fn !== 'function') {\n        throw new Error(`没有 ${data.type} 类型的处理程序!`);\n    }\n    fn(data.data);\n};\n\n\n\n\n\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/AutoCadColorIndex.ts",
    "content": "/**\n * AutoCad files sometimes use an indexed color value between 1 and 255 inclusive.\n * Each value corresponds to a color. index 1 is red, that is 16711680 or 0xFF0000.\n * index 0 and 256, while included in this array, are actually reserved for inheritance\n * values in AutoCad so they should not be used for index color lookups.\n */\n\nexport default [\n 0,\n 16711680,\n 16776960,\n 65280,\n 65535,\n 255,\n 16711935,\n 16777215,\n 8421504,\n 12632256,\n 16711680,\n 16744319,\n 13369344,\n 13395558,\n 10027008,\n 10046540,\n 8323072,\n 8339263,\n 4980736,\n 4990502,\n 16727808,\n 16752511,\n 13382400,\n 13401958,\n 10036736,\n 10051404,\n 8331008,\n 8343359,\n 4985600,\n 4992806,\n 16744192,\n 16760703,\n 13395456,\n 13408614,\n 10046464,\n 10056268,\n 8339200,\n 8347455,\n 4990464,\n 4995366,\n 16760576,\n 16768895,\n 13408512,\n 13415014,\n 10056192,\n 10061132,\n 8347392,\n 8351551,\n 4995328,\n 4997670,\n 16776960,\n 16777087,\n 13421568,\n 13421670,\n 10000384,\n 10000460,\n 8355584,\n 8355647,\n 5000192,\n 5000230,\n 12582656,\n 14679935,\n 10079232,\n 11717734,\n 7510016,\n 8755276,\n 6258432,\n 7307071,\n 3755008,\n 4344870,\n 8388352,\n 12582783,\n 6736896,\n 10079334,\n 5019648,\n 7510092,\n 4161280,\n 6258495,\n 2509824,\n 3755046,\n 4194048,\n 10485631,\n 3394560,\n 8375398,\n 2529280,\n 6264908,\n 2064128,\n 5209919,\n 1264640,\n 3099686,\n 65280,\n 8388479,\n 52224,\n 6736998,\n 38912,\n 5019724,\n 32512,\n 4161343,\n 19456,\n 2509862,\n 65343,\n 8388511,\n 52275,\n 6737023,\n 38950,\n 5019743,\n 32543,\n 4161359,\n 19475,\n 2509871,\n 65407,\n 8388543,\n 52326,\n 6737049,\n 38988,\n 5019762,\n 32575,\n 4161375,\n 19494,\n 2509881,\n 65471,\n 8388575,\n 52377,\n 6737074,\n 39026,\n 5019781,\n 32607,\n 4161391,\n 19513,\n 2509890,\n 65535,\n 8388607,\n 52428,\n 6737100,\n 39064,\n 5019800,\n 32639,\n 4161407,\n 19532,\n 2509900,\n 49151,\n 8380415,\n 39372,\n 6730444,\n 29336,\n 5014936,\n 24447,\n 4157311,\n 14668,\n 2507340,\n 32767,\n 8372223,\n 26316,\n 6724044,\n 19608,\n 5010072,\n 16255,\n 4153215,\n 9804,\n 2505036,\n 16383,\n 8364031,\n 13260,\n 6717388,\n 9880,\n 5005208,\n 8063,\n 4149119,\n 4940,\n 2502476,\n 255,\n 8355839,\n 204,\n 6710988,\n 152,\n 5000344,\n 127,\n 4145023,\n 76,\n 2500172,\n 4129023,\n 10452991,\n 3342540,\n 8349388,\n 2490520,\n 6245528,\n 2031743,\n 5193599,\n 1245260,\n 3089996,\n 8323327,\n 12550143,\n 6684876,\n 10053324,\n 4980888,\n 7490712,\n 4128895,\n 6242175,\n 2490444,\n 3745356,\n 12517631,\n 14647295,\n 10027212,\n 11691724,\n 7471256,\n 8735896,\n 6226047,\n 7290751,\n 3735628,\n 4335180,\n 16711935,\n 16744447,\n 13369548,\n 13395660,\n 9961624,\n 9981080,\n 8323199,\n 8339327,\n 4980812,\n 4990540,\n 16711871,\n 16744415,\n 13369497,\n 13395634,\n 9961586,\n 9981061,\n 8323167,\n 8339311,\n 4980793,\n 4990530,\n 16711807,\n 16744383,\n 13369446,\n 13395609,\n 9961548,\n 9981042,\n 8323135,\n 8339295,\n 4980774,\n 4990521,\n 16711743,\n 16744351,\n 13369395,\n 13395583,\n 9961510,\n 9981023,\n 8323103,\n 8339279,\n 4980755,\n 4990511,\n 3355443,\n 5987163,\n 8684676,\n 11382189,\n 14079702,\n 16777215\n];"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/DimStyleCodes.ts",
    "content": "// 维度样式变量可以在DIMSTYLE表中使用，也可以在XDATA中的Dimension实体样式覆盖中使用。\nconst codes = new Map([\n    [140, \"DIMTXT\"],\n    [142, \"DIMTSZ\"],\n    [144, \"DIMLFAC\"],\n    [147, \"DIMGAP\"],\n    [173, \"DIMSAH\"],\n    [175, \"DIMSOXD\"],\n    [176, \"DIMCLRD\"],\n    [177, \"DIMCLRE\"],\n    [178, \"DIMCLRT\"],\n    [271, \"DIMDEC\"],\n    [278 ,\"DIMDSEP\"],\n    [281, \"DIMSD1\"],\n    [282, \"DIMSD2\"],\n    [3, \"DIMPOST\"],\n    [40, \"DIMSCALE\"],\n    [41, \"DIMASZ\"],\n    [42, \"DIMEXO\"],\n    [44, \"DIMEXE\"],\n    [45, \"DIMRND\"],\n    [46, \"DIMDLE\"],\n    [5, \"DIMBLK\"],\n    [6, \"DIMBLK1\"],\n    [7, \"DIMBLK2\"],\n    [75, \"DIMSE1\"],\n    [76, \"DIMSE2\"],\n    [78, \"DIMZIN\"],\n])\n\nexport default codes\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/DxfArrayScanner.ts",
    "content": "import log from '@/utils/log/Logger';\n\nexport interface IGroup {\n\tcode: number;\n\tvalue: number | string | boolean;\n}\n\n/**\n * DxfArrayScanner\n *\n * 基于AutoCAD 2012 DXF参考\n * http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf\n *\n * 读取表示dxf文件行的数组。接受一个数组，并提供一个简单的接口来提取组代码和值对。\n * @param data - 一个数组，其中每个元素表示DXF文件中的一行\n * @constructor\n */\nexport default class DxfArrayScanner {\n\tprivate _pointer = 0;\n\tprivate _eof = false;\n\tpublic lastReadGroup: IGroup | undefined;\n\tprivate _data: string[];\n\n\tconstructor(data: string[]) {\n\t\tthis._data = data;\n        // console.log('this._data:', this._data);\n\t}\n\n\t/**\n\t * 从数组中获取下一组(代码、值)。组是数组中两个连续的元素。第一个是代码，第二个是值。\n\t * @returns {{code: Number}|*}\n\t */\n\tpublic next() {\n\t\tif (!this.hasNext()) {\n            // console.log('this._eof:', this._eof);\n            // console.log('this._pointer:', this._pointer);\n            \n\t\t\tif (!this._eof){\n                log.error('输入结束异常:EOF组未在文件结束前读取。代码结束: ' + this._data[this._pointer]);\n            }else{\n                log.error('在读取完 EOF 组后无法调用 `next`');\n            }    \n\n            this._eof = true;\n            return { code: 0, value: 'EOF' };\n\t\t}\n\n\t\tconst group = {\n\t\t\tcode: parseInt(this._data[this._pointer])\n\t\t} as IGroup;\n\n        if(isNaN(group.code)){\n            // 回退code: 如果当前code为NaN,很可能是因为当前行和上一行是连贯数据，被libreDWG解析为两行，所以要回退code采用同一个code解析\n            this._pointer--;\n            group.code = parseInt(this._data[this._pointer - 1]);\n\n            // TODO: 或者使用跳过当前行操作？\n            // this._pointer++;\n            // return this.next();\n        }\n        \n\t\tthis._pointer++;\n\n\t\tgroup.value = parseGroupValue(group.code, this._data[this._pointer].trim());\n\n\t\tthis._pointer++;\n\n        // if (group.code === 0 && (group.value === 'EOF' || (group.value === 'ENDSEC' && !this.hasNext()))) this._eof = true;\n        if (group.code === 0 && group.value === 'EOF') this._eof = true;\n\n\t\tthis.lastReadGroup = group;\n\n\t\treturn group;\n\t}\n\n\tpublic peek() {\n\t\tif (!this.hasNext()) {\n\t\t\tif (!this._eof)\n\t\t\t\tthrow new Error('输入结束异常:EOF组未在文件结束前读取。代码结束: ' + this._data[this._pointer]);\n\t\t\telse\n\t\t\t\tthrow new Error('Cannot call \\'next\\' after EOF group has been read');\n\t\t}\n\n\t\tconst group = {\n\t\t\tcode: parseInt(this._data[this._pointer])\n\t\t} as IGroup;\n\n\t\tgroup.value = parseGroupValue(group.code, this._data[this._pointer + 1].trim());\n\n\t\treturn group;\n\t}\n\n\n\tpublic rewind(numberOfGroups = 1) {\n\t\tthis._pointer = this._pointer - numberOfGroups * 2;\n\t}\n\n\t/**\n\t * 如果存在另一个代码/值对(数组中的2个元素)则返回true。\n\t * @returns {boolean}\n\t */\n\tpublic hasNext() {\n\t\t// 检查我们是否读过EOF组代码\n\t\tif (this._eof) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// 我们需要确保有两条线路可用\n\t\treturn this._pointer <= this._data.length - 2;\n\t}\n\n\t/**\n\t * 如果扫描器位于数组的末尾，则返回true\n\t * @returns {boolean}\n\t */\n\tpublic isEOF() {\n\t\treturn this._eof;\n\t}\n}\n\n/**\n * 将值解析为其适当类型。\n * 参见本文件顶部提供的AutoCAD DXF 2012参考的第3-10页。\n *\n * @param code\n * @param value\n * @returns {*}\n */\nfunction parseGroupValue(code: number, value: string) {\n\tif (code <= 9) return value;\n\tif (code >= 10 && code <= 59) return parseFloat(value);\n\tif (code >= 60 && code <= 99) return parseInt(value);\n\tif (code >= 100 && code <= 109) return value;\n\tif (code >= 110 && code <= 149) return parseFloat(value);\n\tif (code >= 160 && code <= 179) return parseInt(value);\n\tif (code >= 210 && code <= 239) return parseFloat(value);\n\tif (code >= 270 && code <= 289) return parseInt(value);\n\tif (code >= 290 && code <= 299) return parseBoolean(value as '0' | '1');\n\tif (code >= 300 && code <= 369) return value;\n\tif (code >= 370 && code <= 389) return parseInt(value);\n\tif (code >= 390 && code <= 399) return value;\n\tif (code >= 400 && code <= 409) return parseInt(value);\n\tif (code >= 410 && code <= 419) return value;\n\tif (code >= 420 && code <= 429) return parseInt(value);\n\tif (code >= 430 && code <= 439) return value;\n\tif (code >= 440 && code <= 459) return parseInt(value);\n\tif (code >= 460 && code <= 469) return parseFloat(value);\n\tif (code >= 470 && code <= 481) return value;\n\tif (code === 999) return value;\n\tif (code >= 1000 && code <= 1009) return value;\n\tif (code >= 1010 && code <= 1059) return parseFloat(value);\n\tif (code >= 1060 && code <= 1071) return parseInt(value);\n\n\t//log.warn('group代码没有定义的类型: %j', { code: code, value: value });\n\treturn value;\n}\n\n/**\n * 根据1或0值解析布尔值\n * @param str\n * @returns {boolean}\n */\nfunction parseBoolean(str: '0' | '1') {\n\tif (str === '0') return false;\n\tif (str === '1') return true;\n\treturn str;\n\t// throw TypeError('String \\'' + str + '\\' cannot be cast to Boolean type');\n}"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/DxfParser.ts",
    "content": "import {Readable} from 'stream';\nimport DxfArrayScanner, {IGroup} from './DxfArrayScanner';\nimport AUTO_CAD_COLOR_INDEX from './AutoCadColorIndex';\nimport dimStyleCodes from './DimStyleCodes';\n\nimport Face from './entities/3dface';\nimport Arc from './entities/arc';\nimport AttDef from './entities/attdef';\nimport Attribute from './entities/attribute'\nimport Circle from './entities/circle';\nimport Dimension from './entities/dimension';\nimport Ellipse from './entities/ellipse';\nimport Hatch from './entities/hatch';\nimport Insert from './entities/insert';\nimport Line from './entities/line';\nimport LWPolyline from './entities/lwpolyline';\nimport MText from './entities/mtext';\nimport Point from './entities/point';\nimport Polyline from './entities/polyline';\nimport Solid from './entities/solid';\nimport Spline from './entities/spline';\nimport Text from './entities/text';\nimport Vertex from './entities/vertex';\n\nimport log from '@/utils/log/Logger';\nimport IGeometry, {EntityName, IEntity, IPoint} from './entities/geomtry';\n\nexport interface IBlock {\n    entities: IEntity[];\n    type: number;\n    ownerHandle: string;\n    // entities: any[];\n    xrefPath: string;\n    name: string;\n    name2: string;\n    handle: string;\n    layer: string;\n    position: IPoint;\n    paperSpace: boolean;\n}\n\nexport interface IViewPort {\n    name: string;\n    lowerLeftCorner: IPoint;\n    upperRightCorner: IPoint;\n    center: IPoint;\n    snapBasePoint: IPoint;\n    snapSpacing: IPoint;\n    gridSpacing: IPoint;\n    viewDirectionFromTarget: IPoint;\n    viewTarget: IPoint;\n    lensLength: number;\n    frontClippingPlane: string | number | boolean;\n    backClippingPlane: string | number | boolean;\n    viewHeight: number;\n    snapRotationAngle: number;\n    viewTwistAngle: number;\n    orthographicType: string;\n    ucsOrigin: IPoint;\n    ucsXAxis: IPoint;\n    ucsYAxis: IPoint;\n    renderMode: string;\n    defaultLightingType: string;\n    defaultLightingOn: string;\n    ownerHandle: string;\n    ambientColor: number;\n    viewMode: string;\n}\n\nexport interface IViewPortTableDefinition {\n    tableRecordsProperty: 'viewPorts';\n    tableName: 'viewPort';\n    dxfSymbolName: 'VPORT';\n\n    parseTableRecords(): IViewPort[];\n}\n\nexport interface ILineType {\n    name: string;\n    description: string;\n    pattern: string[];\n    patternLength: number;\n}\n\nexport interface ILineTypeTableDefinition {\n    tableRecordsProperty: 'lineTypes';\n    tableName: 'lineType';\n    dxfSymbolName: 'LTYPE';\n\n    parseTableRecords(): Record<string, ILineType>;\n}\n\nexport interface ILayer {\n    name: string;\n    visible: boolean;\n    colorIndex: number;\n    color: number;\n    frozen: boolean;\n}\n\nexport interface ILayerTableDefinition {\n    tableRecordsProperty: 'layers';\n    tableName: 'layer';\n    dxfSymbolName: 'LAYER';\n\n    parseTableRecords(): Record<string, ILayer>;\n}\n\nexport interface ITableDefinitions {\n    VPORT: IViewPortTableDefinition;\n    LTYPE: ILineTypeTableDefinition;\n    LAYER: ILayerTableDefinition;\n    DIMSTYLE: any;\n    STYLE: any;\n}\n\nexport interface IBaseTable {\n    handle: string;\n    ownerHandle: string;\n}\n\nexport interface IViewPortTable extends IBaseTable {\n    viewPorts: IViewPort[];\n}\n\nexport interface ILayerTypesTable extends IBaseTable {\n    lineTypes: Record<string, ILineType>;\n}\n\nexport interface ILayersTable extends IBaseTable {\n    layers: Record<string, ILayer>;\n}\n\nexport interface ITables {\n    viewPort: IViewPortTable;\n    lineType: ILayerTypesTable;\n    layer: ILayersTable;\n}\n\nexport type ITable = IViewPortTable | ILayerTypesTable | ILayersTable;\n\nexport interface IDxf {\n    header: Record<string, IPoint | number>;\n    entities: IEntity[];\n    blocks: Record<string, IBlock>;\n    tables: ITables;\n}\n\nfunction registerDefaultEntityHandlers(dxfParser: DxfParser) {\n    // 这里支持的实体(一些实体代码仍然被重构到这个流中)\n    dxfParser.registerEntityHandler(Face);\n    dxfParser.registerEntityHandler(Arc);\n    dxfParser.registerEntityHandler(AttDef);\n    dxfParser.registerEntityHandler(Attribute);\n    dxfParser.registerEntityHandler(Circle);\n    dxfParser.registerEntityHandler(Dimension);\n    dxfParser.registerEntityHandler(Ellipse);\n    dxfParser.registerEntityHandler(Hatch);\n    dxfParser.registerEntityHandler(Insert);\n    dxfParser.registerEntityHandler(Line);\n    dxfParser.registerEntityHandler(LWPolyline);\n    dxfParser.registerEntityHandler(MText);\n    dxfParser.registerEntityHandler(Point);\n    dxfParser.registerEntityHandler(Polyline);\n    dxfParser.registerEntityHandler(Solid);\n    dxfParser.registerEntityHandler(Spline);\n    dxfParser.registerEntityHandler(Text);\n    dxfParser.registerEntityHandler(Vertex);\n}\n\nexport default class DxfParser {\n    private _entityHandlers = {} as Record<EntityName, IGeometry>;\n\n    constructor() {\n        registerDefaultEntityHandlers(this);\n    }\n\n    public parse(source: string | Readable) {\n        if (typeof source === 'string') {\n            return this._parse(source);\n        } else {\n            log.error('无法读取dxf源的类型: `' + typeof (source));\n            return null;\n        }\n    }\n\n    public registerEntityHandler(handlerType: new () => IGeometry) {\n        const instance = new handlerType();\n        this._entityHandlers[instance.ForEntityName] = instance;\n    }\n\n    public parseSync(source: string) {\n        return this.parse(source);\n    }\n\n    public parseStream(stream: Readable) {\n        let dxfString = \"\";\n        const self = this;\n        return new Promise<IDxf>((res, rej) => {\n\n            stream.on('data', (chunk) => {\n                dxfString += chunk;\n            });\n            stream.on('end', () => {\n                try {\n                    res(self._parse(dxfString));\n                } catch (err) {\n                    rej(err);\n                }\n            });\n            stream.on('error', (err) => {\n                rej(err);\n            });\n        });\n    }\n\n    private _parse(dxfString: string) {\n        const dxf = {} as IDxf;\n        let lastHandle = 0;\n        const dxfLinesArray = dxfString.split(/\\r\\n|\\r|\\n/g);\n\n        const scanner = new DxfArrayScanner(dxfLinesArray);\n        if (!scanner.hasNext()) {\n            log.error('当前 CAD 文件为空文件');\n            return dxf;\n        }\n\n        const self = this;\n        let curr: IGroup;\n\n        function parseAll() {\n            curr = scanner.next();\n            while (!scanner.isEOF()) {\n                if (curr.code === 0 && curr.value === 'SECTION') {\n                    curr = scanner.next();\n\n                    // 确保我们读的是段代码\n                    if (curr.code !== 2) {\n                        log.error(`Unexpected code ${debugCode(curr) } after 0:SECTION`);\n                        curr = scanner.next();\n                        continue;\n                    }\n\n                    if (curr.value === 'HEADER') {\n                        dxf.header = parseHeader();\n                    } else if (curr.value === 'BLOCKS') {\n                        dxf.blocks = parseBlocks();\n                    } else if (curr.value === 'ENTITIES') {\n                        dxf.entities = parseEntities(false);\n                    } else if (curr.value === 'TABLES') {\n                        dxf.tables = parseTables();\n                    } else if (curr.value === 'EOF') {\n                        log.debug('EOF');\n                    } else {\n                        log.warn('Skipping section ' + curr.value);\n                    }\n                } else {\n                    curr = scanner.next();\n                }\n                // If is a new section\n            }\n        }\n\n        /**\n         *\n         * @return {object} header\n         */\n        function parseHeader() {\n            // interesting variables:\n            //  $ACADVER, $VIEWDIR, $VIEWSIZE, $VIEWCTR, $TDCREATE, $TDUPDATE\n            // http://www.autodesk.com/techpubs/autocad/acadr14/dxf/header_section_al_u05_c.htm\n            // Also see VPORT table entries\n            let currVarName = null as null | string;\n            let currVarValue = null as null | IPoint | number;\n            const header = {} as Record<string, IPoint | number>;\n            // loop through header variables\n            curr = scanner.next();\n\n            while (true) {\n                if (groupIs(curr, 0, 'ENDSEC')) {\n                    if (currVarName) header[currVarName as string] = currVarValue!;\n                    break;\n                } else if (curr.code === 9) {\n                    if (currVarName) header[currVarName as string] = currVarValue!;\n                    currVarName = curr.value as string;\n                    // Filter here for particular variables we are interested in\n                } else {\n                    if (curr.code === 10) {\n                        currVarValue = {x: curr.value as number} as IPoint;\n                    } else if (curr.code === 20) {\n                        (currVarValue as IPoint).y = curr.value as number;\n                    } else if (curr.code === 30) {\n                        (currVarValue as IPoint).z = curr.value as number;\n                    } else {\n                        currVarValue = curr.value as number;\n                    }\n                }\n                curr = scanner.next();\n            }\n            // console.log(util.inspect(header, { colors: true, depth: null }));\n            curr = scanner.next(); // swallow up ENDSEC\n            return header;\n        }\n\n        function parseBlocks() {\n            const blocks = {} as Record<string, IBlock>;\n\n            curr = scanner.next();\n\n            while (curr.value !== 'EOF') {\n                if (groupIs(curr, 0, 'ENDSEC')) {\n                    break;\n                }\n\n                if (groupIs(curr, 0, 'BLOCK')) {\n                    const block = parseBlock();\n                    ensureHandle(block);\n                    if (!block.name) {\n                        // log.error('block with handle \"' + block.handle + '\" is missing a name.');\n                        // block.name = 'InvalidBlockName-' + block.ownerHandle;\n                    }else{\n                        blocks[block.name] = block;\n                    }\n                } else {\n                    logUnhandledGroup(curr);\n                    curr = scanner.next();\n                }\n            }\n            return blocks;\n        }\n\n        function parseBlock() {\n            const block = {} as IBlock;\n            curr = scanner.next();\n\n            while (curr.value !== 'EOF') {\n                switch (curr.code) {\n                    case 1:\n                        block.xrefPath = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 2:\n                        block.name = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 3:\n                        block.name2 = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 5:\n                        block.handle = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 8:\n                        block.layer = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 10:\n                        block.position = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 67:\n                        block.paperSpace = (curr.value && curr.value == 1) ? true : false;\n                        curr = scanner.next();\n                        break;\n                    case 70:\n                        if (curr.value != 0) {\n                            //if(curr.value & BLOCK_ANONYMOUS_FLAG) console.log('  Anonymous block');\n                            //if(curr.value & BLOCK_NON_CONSTANT_FLAG) console.log('  Non-constant attributes');\n                            //if(curr.value & BLOCK_XREF_FLAG) console.log('  Is xref');\n                            //if(curr.value & BLOCK_XREF_OVERLAY_FLAG) console.log('  Is xref overlay');\n                            //if(curr.value & BLOCK_EXTERNALLY_DEPENDENT_FLAG) console.log('  Is externally dependent');\n                            //if(curr.value & BLOCK_RESOLVED_OR_DEPENDENT_FLAG) console.log('  Is resolved xref or dependent of an xref');\n                            //if(curr.value & BLOCK_REFERENCED_XREF) console.log('  This definition is a referenced xref');\n                            block.type = curr.value as number;\n                        }\n                        curr = scanner.next();\n                        break;\n                    case 100:\n                        // ignore class markers\n                        curr = scanner.next();\n                        break;\n                    case 330:\n                        block.ownerHandle = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 0:\n                        if (curr.value == 'ENDBLK')\n                            break;\n                        block.entities = parseEntities(true);\n                        break;\n                    default:\n                        logUnhandledGroup(curr);\n                        curr = scanner.next();\n                }\n\n                if (groupIs(curr, 0, 'ENDBLK')) {\n                    curr = scanner.next();\n                    break;\n                }\n            }\n            return block;\n        }\n\n        /**\n         * parseTables\n         * @return {Object} Object representing tables\n         */\n        function parseTables() {\n            const tables = {} as ITables;\n            curr = scanner.next();\n            while (curr.value !== 'EOF') {\n                if (groupIs(curr, 0, 'ENDSEC'))\n                    break;\n\n                if (groupIs(curr, 0, 'TABLE')) {\n                    curr = scanner.next();\n\n                    const tableDefinition = tableDefinitions[curr.value as keyof ITableDefinitions];\n                    if (tableDefinition) {\n                        tables[tableDefinitions[curr.value as keyof ITableDefinitions].tableName] = parseTable(curr);\n                    } else {\n                        // log.debug('Unhandled Table ' + curr.value);\n                    }\n                } else {\n                    // else ignored\n                    curr = scanner.next();\n                }\n            }\n\n            curr = scanner.next();\n            return tables;\n        }\n\n        const END_OF_TABLE_VALUE = 'ENDTAB';\n\n        function parseTable<T extends IBaseTable = ITable>(group: IGroup) {\n            const tableDefinition = tableDefinitions[group.value as keyof ITableDefinitions];\n            const table = {} as T;\n            let expectedCount = 0;\n\n            curr = scanner.next();\n            while (!groupIs(curr, 0, END_OF_TABLE_VALUE)) {\n                switch (curr.code) {\n                    case 5:\n                        table.handle = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 330:\n                        table.ownerHandle = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 100:\n                        if (curr.value === 'AcDbSymbolTable') {\n                            // ignore\n                            curr = scanner.next();\n                        } else {\n                            logUnhandledGroup(curr);\n                            curr = scanner.next();\n                        }\n                        break;\n                    case 70:\n                        expectedCount = curr.value as number;\n                        curr = scanner.next();\n                        break;\n                    case 0:\n                        if (curr.value === tableDefinition.dxfSymbolName) {\n                            table[tableDefinition.tableRecordsProperty] = tableDefinition.parseTableRecords();\n                        } else {\n                            logUnhandledGroup(curr);\n                            curr = scanner.next();\n                        }\n                        break;\n                    default:\n                        logUnhandledGroup(curr);\n                        curr = scanner.next();\n                }\n            }\n            const tableRecords = table[tableDefinition.tableRecordsProperty];\n            if (tableRecords) {\n                let actualCount = (() => {\n                    if (tableRecords.constructor === Array) {\n                        return tableRecords.length;\n                    } else if (typeof (tableRecords) === 'object') {\n                        return Object.keys(tableRecords).length;\n                    }\n                    return undefined;\n                })();\n                if (expectedCount !== actualCount) log.warn('Parsed ' + actualCount + ' ' + tableDefinition.dxfSymbolName + '\\'s but expected ' + expectedCount);\n            }\n            curr = scanner.next();\n            return table;\n        }\n\n        function parseViewPortRecords() {\n            const viewPorts = [] as IViewPort[]; // 多个表项可以具有相同的名称，表示多个视区配置\n            let viewPort = {} as IViewPort;\n\n            curr = scanner.next();\n            while (!groupIs(curr, 0, END_OF_TABLE_VALUE)) {\n\n                switch (curr.code) {\n                    case 2: // 视口名\n                        viewPort.name = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 10: // 视口的左下角\n                        viewPort.lowerLeftCorner = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 11: // 视口右上角\n                        viewPort.upperRightCorner = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 12: // 视口中心点（在 DCS 中）\n                        viewPort.center = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 13: // 捕捉基点（在 DCS 中）\n                        viewPort.snapBasePoint = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 14: // 捕捉间距 X 和 Y\n                        viewPort.snapSpacing = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 15: // 栅格间距 X 和 Y\n                        viewPort.gridSpacing = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 16: // 相对于目标点的观察方向（在 WCS 中）\n                        viewPort.viewDirectionFromTarget = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 17: //观察目标点（在 WCS 中）\n                        viewPort.viewTarget = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 42: // 焦距\n                        viewPort.lensLength = curr.value as number;\n                        curr = scanner.next();\n                        break;\n                    case 43: //前向剪裁平面（距目标点的偏移）\n                        viewPort.frontClippingPlane = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 44: // 后向剪裁平面（距目标点的偏移）\n                        viewPort.backClippingPlane = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 45: // 视图高度\n                        viewPort.viewHeight = curr.value as number;\n                        curr = scanner.next();\n                        break;\n                    case 50: // 捕捉旋转角度\n                        viewPort.snapRotationAngle = curr.value as number;\n                        curr = scanner.next();\n                        break;\n                    case 51: // 视图扭转角度\n                        viewPort.viewTwistAngle = curr.value as number;\n                        curr = scanner.next();\n                        break;\n                    case 71: // 视图模式（参见 VIEWMODE 系统变量）\n                        viewPort.viewMode = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 79: // UCS 的正交类型  0 = UCS 不正交 1 = 俯视图；2 = 仰视图 3 = 主视图；4 = 后视图 5 = 左视图；6 = 右视图\n                        viewPort.orthographicType = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 110: // UCS 原点（在 DCS 中）\n                        viewPort.ucsOrigin = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 111: // UCS X 轴\n                        viewPort.ucsXAxis = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 112: // UCS Y 轴\n                        viewPort.ucsYAxis = parsePoint(curr);\n                        curr = scanner.next();\n                        break;\n                    case 281:\n                        /*\n                        * 渲染模式： 0 = 二维优化（传统二维） 1 = 线框图 2 = 隐藏线 3 = 平面着色 4 = 体着色 5 = 带线框平面着色 6 = 带线框体着色\n                        * 所有非二维优化渲染模式均使用新三维图形管道。这些值直接与 SHADEMODE 命令和 AcDbAbstractViewTableRecord::RenderMode 枚举相对应\n                        */\n                        viewPort.renderMode = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 292:\n                        viewPort.defaultLightingOn = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 330:\n                        viewPort.ownerHandle = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 63: // These are all ambient color. Perhaps should be a gradient when multiple are set.\n                    case 421:\n                    case 431:\n                        viewPort.ambientColor = curr.value as number;\n                        curr = scanner.next();\n                        break;\n                    case 0:\n                        // New ViewPort\n                        if (curr.value === 'VPORT') {\n                            viewPorts.push(viewPort);\n                            viewPort = {} as IViewPort;\n                            curr = scanner.next();\n                        }\n                        break;\n                    default:\n                        logUnhandledGroup(curr);\n                        curr = scanner.next();\n                        break;\n                }\n            }\n            // Note: do not call scanner.next() here,\n            //  parseTable() needs the current group\n            viewPorts.push(viewPort);\n\n            return viewPorts;\n        }\n\n        function parseLineTypes() {\n            const ltypes = {} as Record<string, ILineType>;\n            let ltype = {} as ILineType;\n            let length = 0;\n            let ltypeName: string;\n\n            curr = scanner.next();\n            while (!groupIs(curr, 0, 'ENDTAB')) {\n\n                switch (curr.code) {\n                    case 2:\n                        ltype.name = curr.value as string;\n                        ltypeName = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 3:\n                        ltype.description = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 73: // Number of elements for this line type (dots, dashes, spaces);\n                        length = curr.value as number;\n                        if (length > 0) ltype.pattern = [];\n                        curr = scanner.next();\n                        break;\n                    case 40: // total pattern length\n                        ltype.patternLength = curr.value as number;\n                        curr = scanner.next();\n                        break;\n                    case 49:\n                        ltype.pattern.push(curr.value as string);\n                        curr = scanner.next();\n                        break;\n                    case 0:\n                        if (length > 0 && length !== ltype.pattern.length) log.warn('lengths do not match on LTYPE pattern');\n                        ltypes[ltypeName!] = ltype;\n                        ltype = {} as ILineType;\n                        curr = scanner.next();\n                        break;\n                    default:\n                        curr = scanner.next();\n                }\n            }\n\n            ltypes[ltypeName!] = ltype;\n            return ltypes;\n        }\n\n        function parseLayers() {\n            const layers = {} as Record<string, ILayer>;\n            let layer = {} as ILayer;\n            let layerName: string | undefined;\n\n            curr = scanner.next();\n            while (!groupIs(curr, 0, 'ENDTAB')) {\n\n                switch (curr.code) {\n                    case 2: // layer name\n                        layer.name = curr.value as string;\n                        layerName = curr.value as string;\n                        curr = scanner.next();\n                        break;\n                    case 62: // color, visibility\n                        // @ts-ignore\n                        layer.visible = curr.value >= 0;\n                        // TODO 0 and 256 are BYBLOCK and BYLAYER respectively. Need to handle these values for layers?.\n                        layer.colorIndex = Math.abs(curr.value as number);\n                        layer.color = getAcadColor(layer.colorIndex as number);\n                        curr = scanner.next();\n                        break;\n                    case 70: // frozen layer\n                        layer.frozen = (((curr.value as number) & 1) != 0 || ((curr.value as number) & 2) != 0);\n                        curr = scanner.next();\n                        break;\n                    case 0:\n                        // New Layer\n                        if (curr.value === 'LAYER') {\n                            layers[layerName!] = layer;\n                            layer = {} as ILayer;\n                            layerName = undefined;\n                            curr = scanner.next();\n                        }\n                        break;\n                    default:\n                        logUnhandledGroup(curr);\n                        curr = scanner.next();\n                        break;\n                }\n            }\n            // Note: do not call scanner.next() here,\n            //  parseLayerTable() needs the current group\n            layers[layerName!] = layer;\n\n            return layers;\n        }\n\n        function parseDimStyles() {\n            let dimStyles = {},\n                styleName: string | undefined,\n                style: any = {};\n\n            curr = scanner.next();\n            while (!groupIs(curr, 0, 'ENDTAB')) {\n                if (dimStyleCodes.has(curr.code)) {\n                    style[dimStyleCodes.get(curr.code) as string] = curr.value\n                    curr = scanner.next();\n                } else {\n                    switch (curr.code) {\n                        case 2: // style name\n                            style.name = curr.value;\n                            styleName = curr.value as string;\n                            curr = scanner.next();\n                            break;\n                        case 0:\n                            // New style\n                            if (curr.value === 'DIMSTYLE') {\n                                // @ts-ignore\n                                dimStyles[styleName] = style;\n                                style = {};\n                                styleName = undefined;\n                                curr = scanner.next();\n                            }\n                            break;\n                        default:\n                            logUnhandledGroup(curr);\n                            curr = scanner.next();\n                            break;\n                    }\n                }\n            }\n            // Note: do not call scanner.next() here,\n            //  parseLayerTable() needs the current group\n            dimStyles[styleName as string] = style;\n\n            return dimStyles;\n        }\n\n        const parseStyles = function () {\n            const styles = {};\n            let style: any = {};\n            let styleName;\n\n            curr = scanner.next();\n            while (!groupIs(curr, 0, END_OF_TABLE_VALUE)) {\n                switch (curr.code) {\n                    case 100:\n                        style.subClassMarker = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 2:\n                        style.styleName = curr.value;\n                        styleName = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 70:\n                        style.standardFlag = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 40:\n                        style.fixedTextHeight = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 41:\n                        style.widthFactor = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 50:\n                        style.obliqueAngle = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 71:\n                        style.textGenerationFlag = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 42:\n                        style.lastHeight = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 3:\n                        style.font = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 4:\n                        style.bigFont = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 1071:\n                        style.extendedFont = curr.value;\n                        curr = scanner.next();\n                        break;\n                    case 0:\n                        if (curr.value === 'STYLE') {\n                            styles[styleName] = style;\n                            style = {};\n                            styleName = undefined;\n                            curr = scanner.next();\n                        }\n                        break;\n                    default:\n                        logUnhandledGroup(curr);\n                        curr = scanner.next();\n                        break;\n                }\n            }\n            styles[styleName] = style;\n            return styles;\n        };\n\n        const tableDefinitions = {\n            VPORT: {\n                tableRecordsProperty: 'viewPorts',\n                tableName: 'viewPort',\n                dxfSymbolName: 'VPORT',\n                parseTableRecords: parseViewPortRecords\n            },\n            LTYPE: {\n                tableRecordsProperty: 'lineTypes',\n                tableName: 'lineType',\n                dxfSymbolName: 'LTYPE',\n                parseTableRecords: parseLineTypes\n            },\n            LAYER: {\n                tableRecordsProperty: 'layers',\n                tableName: 'layer',\n                dxfSymbolName: 'LAYER',\n                parseTableRecords: parseLayers\n            },\n            DIMSTYLE: {\n                tableRecordsProperty: 'dimStyles',\n                tableName: 'dimstyle',\n                dxfSymbolName: 'DIMSTYLE',\n                parseTableRecords: parseDimStyles\n            },\n            STYLE: {\n                tableRecordsProperty: 'styles',\n                tableName: 'style',\n                dxfSymbolName: 'STYLE',\n                parseTableRecords: parseStyles,\n            },\n        } as ITableDefinitions;\n\n        /**\n         * 在解析器首次读取0:ENTITIES组后调用。扫描器应该已经在第一个实体的开始。\n         * @return {Array} the resulting entities\n         */\n        function parseEntities(forBlock: boolean) {\n            const entities = [] as IEntity[];\n\n            const endingOnValue = forBlock ? 'ENDBLK' : 'ENDSEC';\n\n            if (!forBlock) {\n                curr = scanner.next();\n            }\n            while (true) {\n                if (curr.code === 0) {\n                    if (curr.value === endingOnValue) {\n                        break;\n                    }\n\n                    const handler = self._entityHandlers[curr.value as EntityName];\n                    if (handler != null) {\n                        const entity = handler.parseEntity(scanner, curr);\n                        curr = scanner.lastReadGroup!;\n                        ensureHandle(entity);\n                        entities.push(entity);\n                    } else {\n                        // log.debug('Unhandled entity ' + curr.value);\n                        curr = scanner.next();\n                        continue;\n                    }\n                } else {\n                    // ignored lines from unsupported entity\n                    curr = scanner.next();\n                }\n            }\n            if (endingOnValue == 'ENDSEC') curr = scanner.next(); // swallow up ENDSEC, but not ENDBLK\n            return entities;\n        }\n\n        /**\n         * 解析一个2D或3D点.\n         * 如果它是3D的，将其作为具有x， y和（有时）z属性的对象返回。\n         * 假定当前组是被读入点的x，并且scanner.next（）将返回y。\n         * 解析器将自动确定是否存在z点。\n         * @return {Object} 二维或三维点作为具有 x、y[,z] 的对象\n         */\n        function parsePoint(curr: IGroup) {\n            const point = {} as IPoint;\n            let code = curr.code;\n\n            point.x = curr.value as number;\n\n            code += 10;\n            curr = scanner.next();\n            if (curr.code != code)\n                throw new Error('Expected code for point value to be ' + code +\n                    ' but got ' + curr.code + '.');\n            point.y = curr.value as number;\n\n            code += 10;\n            curr = scanner.next();\n            if (curr.code != code) {\n                scanner.rewind();\n                return point;\n            }\n            point.z = curr.value as number;\n\n            return point;\n        }\n\n        function ensureHandle(entity: IEntity | IBlock) {\n            if (!entity) throw new TypeError('entity cannot be undefined or null');\n\n            if (!entity.handle) entity.handle = lastHandle++;\n        }\n\n        parseAll();\n        return dxf;\n    }\n}\n\nfunction groupIs(group: IGroup, code: number, value: string | number | boolean) {\n    return group.code === code && group.value === value;\n}\n\n// @ts-ignore\nfunction logUnhandledGroup(curr: IGroup) {\n    // log.debug('unhandled group ' + debugCode(curr));\n}\n\n\nfunction debugCode(curr: IGroup) {\n    return curr.code + ':' + curr.value;\n}\n\n/**\n * Returns the truecolor value of the given AutoCad color index value\n * @return {Number} truecolor value as a number\n */\nfunction getAcadColor(index: number) {\n    return AUTO_CAD_COLOR_INDEX[index];\n}\n\n// const BLOCK_ANONYMOUS_FLAG = 1;\n// const BLOCK_NON_CONSTANT_FLAG = 2;\n// const BLOCK_XREF_FLAG = 4;\n// const BLOCK_XREF_OVERLAY_FLAG = 8;\n// const BLOCK_EXTERNALLY_DEPENDENT_FLAG = 16;\n// const BLOCK_RESOLVED_OR_DEPENDENT_FLAG = 32;\n// const BLOCK_REFERENCED_XREF = 64;\n\n\n/* Notes */\n// Code 6 of an entity indicates inheritance of properties (eg. color).\n//   BYBLOCK means inherits from block\n//   BYLAYER (default) mean inherits from layer\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/ExtendedDataParser.ts",
    "content": "import log from '@/utils/log/Logger';\n\nexport default class ExtendedDataParser {\n    private appName: null;\n    private appNameWarningShown: boolean;\n    private lastString: any;\n    private sectionStack: { values: any[] }[];\n    private failure: boolean;\n\n    constructor() {\n        this.appName = null\n        this.appNameWarningShown = false\n        this.lastString = null\n        this.sectionStack = [this._CreateSection()]\n        this.failure = false\n    }\n\n    /**\n     * Feed next token.\n     * @return {boolean} 如果应该为此令牌创建新的解析器实例，则为True。\n     */\n    Feed(curr) {\n        if (!this.appName) {\n            if (curr.code == 1001) {\n                this.appName = curr.value\n                return false\n            }\n            if (!this.appNameWarningShown) {\n                this.appNameWarningShown = true\n                log.warn(\"XDATA部分不以应用程序名称开头\")\n            }\n            return false\n        }\n\n        if (curr.code == 1001) {\n            return true\n        }\n\n        if (this.failure) {\n            /* Ignore all the rest content in case of parsing failure. */\n            return false\n        }\n\n        if (curr.code == 1000) {\n            if (this.lastString) {\n                log.warn(\"XDATA section unused string: \" + this.lastString)\n            }\n            this.lastString = curr.value\n            return false\n        }\n\n        const curSection = this._currentSection\n\n        if (curr.code == 1002) {\n            if (curr.value == \"{\") {\n                if (!this.lastString) {\n                    log.warn(\"Unnamed XDATA section encountered\")\n                    this.failure = true\n                    return false\n                }\n                const newSection = this._CreateSection()\n                curSection[this.lastString] = newSection\n                this.lastString = null\n                this.sectionStack.push(newSection)\n                return false\n            }\n            if (curr.value == \"}\") {\n                if (this.sectionStack.length < 2) {\n                    log.warn(\"Unmatched XDATA section closing\")\n                    this.failure = true\n                    return false\n                }\n                this.sectionStack.length = this.sectionStack.length - 1\n                return false\n            }\n            log.warn(\"Bad XDATA section control string encountered: \" + curr.value)\n            this.failure = true\n            return false\n        }\n\n        if (this.lastString !== null) {\n            curSection.values.push(this._CreateValue(1000, this.lastString))\n            this.lastString = null\n        }\n\n        curSection.values.push(this._CreateValue(curr.code, curr.value))\n\n        return false\n    }\n\n    /** Finalize XDATA section parsing. */\n    Finish(entity) {\n        if (this.failure) {\n            return\n        }\n        if (this.appName) {\n            let xdata\n            if (entity.hasOwnProperty(\"xdata\")) {\n                xdata = entity.xdata\n            } else {\n                xdata = {}\n                entity.xdata = xdata\n            }\n            xdata[this.appName] = this.sectionStack[0]\n        }\n    }\n\n    get _currentSection() {\n        return this.sectionStack[this.sectionStack.length - 1]\n    }\n\n    _CreateSection() {\n        return {\n            values: []\n        }\n    }\n\n    _CreateValue(code, value) {\n        return {code, value}\n    }\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/ParseHelpers.ts",
    "content": "import AUTO_CAD_COLOR_INDEX from './AutoCadColorIndex';\nimport ExtendedDataParser from './ExtendedDataParser';\nimport DxfArrayScanner, { IGroup } from './DxfArrayScanner';\nimport { IEntity, IPoint } from './entities/geomtry';\n\n/**\n * 返回给定AutoCad颜色索引值的对应color值\n * @return {Number} color value as a number\n */\nexport function getAcadColor(index: number) {\n\treturn AUTO_CAD_COLOR_INDEX[index];\n}\n\n/**\n * 解析2D或3D坐标、矢量或点。完成后，扫描器保持在坐标的最后一组上。\n * @param {*} scanner \n */\nexport function parsePoint(scanner: DxfArrayScanner) {\n\tconst point = {} as IPoint;\n\n\t// 重读第一个坐标的组\n\tscanner.rewind();\n\tlet curr = scanner.next();\n\n\tlet code = curr.code;\n\tpoint.x = curr.value as number;\n\n\tcode += 10;\n\tcurr = scanner.next();\n\tif (curr.code != code)\n\t\tthrow new Error('Expected code for point value to be ' + code +\n\t\t\t' but got ' + curr.code + '.');\n\tpoint.y = curr.value as number;\n\n\tcode += 10;\n\tcurr = scanner.next();\n\tif (curr.code != code) {\n\t\t// Only the x and y are specified. Don't read z.\n\t\tscanner.rewind(); // Let the calling code advance off the point\n\t\treturn point;\n\t}\n\tpoint.z = curr.value as number;\n\n\treturn point;\n}\n\n/**\n * 某些实体可能包含由组101开始的嵌入对象。实体结束前的所有其他数据不应被解释为实体属性。该特性没有相关文档。\n * @param scanner\n */\nexport function skipEmbeddedObject(scanner: DxfArrayScanner) {\n\t/* 确保正确启动组. */\n\tscanner.rewind()\n\tlet curr = scanner.next()\n\tif (curr.code !== 101) {\n\t\tthrow new Error(\"Bad call for skipEmbeddedObject()\")\n\t}\n\tdo {\n\t\tcurr = scanner.next()\n\t} while (curr.code !== 0)\n\tscanner.rewind()\n}\n\n/**\n * 尝试解析所有实体通用的代码。如果组由此函数处理，则返回true。\n * @param {*} entity - the entity currently being parsed\n * @param {*} curr - the current group being parsed\n * @param scanner\n */\nexport function checkCommonEntityProperties(entity: IEntity, curr:IGroup, scanner:DxfArrayScanner) {\n\tlet xdataParser;\n\twhile (curr.code >= 1000) {\n\t\tif (!xdataParser) {\n\t\t\txdataParser = new ExtendedDataParser()\n\t\t}\n\t\tif (xdataParser.Feed(curr)) {\n\t\t\txdataParser.Finish(entity)\n\t\t\txdataParser = null;\n\t\t} else {\n\t\t\tcurr = scanner.next()\n\t\t}\n\t}\n\tif (xdataParser) {\n\t\txdataParser.Finish(entity);\n\t\tscanner.rewind();\n\t\treturn true;\n\t}\n\n\tswitch (curr.code) {\n\t\tcase 0:\n\t\t\tentity.type = curr.value as string;\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tentity.handle = curr.value as number;\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tentity.lineType = curr.value as string;\n\t\t\tbreak;\n\t\tcase 8: // Layer name\n\t\t\tentity.layer = curr.value as string;\n\t\t\tbreak;\n\t\tcase 48:\n\t\t\tentity.lineTypeScale = curr.value as number;\n\t\t\tbreak;\n\t\tcase 60:\n\t\t\tentity.visible = curr.value === 0;\n\t\t\tbreak;\n\t\tcase 62: // Acad Index Color. 0 inherits ByBlock. 256 inherits ByLayer. Default is bylayer\n\t\t\tentity.colorIndex = curr.value as number;\n\t\t\tentity.color = getAcadColor(Math.abs(curr.value as number));\n\t\t\tbreak;\n\t\tcase 67:\n\t\t\t// 不存在或0表示图元位于模型空间中。\n\t\t\t// 1 表示图元位于图纸空间中（可选）\n\t\t\tentity.inPaperSpace = curr.value !== 0;\n\t\t\tbreak;\n\t\tcase 100:\n\t\t\t//ignore\n\t\t\tbreak;\n\t\tcase 101: // Embedded Object in ACAD 2018.\n\t\t\t// See https://ezdxf.readthedocs.io/en/master/dxfinternals/dxftags.html#embedded-objects\n\t\t\twhile (curr.code != 0) {\n\t\t\t\tcurr = scanner.next();\n\t\t\t}\n\t\t\tscanner.rewind();\n\t\t\tbreak;\n\t\tcase 330:\n\t\t\tentity.ownerHandle = curr.value as string;\n\t\t\tbreak;\n\t\tcase 347:\n\t\t\tentity.materialObjectHandle = curr.value as number;\n\t\t\tbreak;\n\t\tcase 370:\n\t\t\t//From https://www.woutware.com/Forum/Topic/955/lineweight?returnUrl=%2FForum%2FUserPosts%3FuserId%3D478262319\n\t\t\t// An integer representing 100th of mm, must be one of the following values:\n\t\t\t// 0, 5, 9, 13, 15, 18, 20, 25, 30, 35, 40, 50, 53, 60, 70, 80, 90, 100, 106, 120, 140, 158, 200, 211.\n\t\t\t// -3 = STANDARD, -2 = BYLAYER, -1 = BYBLOCK\n\t\t\tentity.lineweight = curr.value as 0| 5| 9| 13| 15| 18| 20| 25| 30| 35| 40| 50| 53| 60| 70| 80| 90| 100| 106| 120| 140| 158| 200| 211|-3|-2|-1;\n\t\t\tbreak;\n\t\tcase 420: // TrueColor Color\n\t\t\tentity.color = curr.value as number;\n\t\t\tbreak;\n\t\tcase 1000:\n\t\t\tentity.extendedData = entity.extendedData || {};\n\t\t\tentity.extendedData.customStrings = entity.extendedData.customStrings || [];\n\t\t\tentity.extendedData.customStrings.push(curr.value as string);\n\t\t\tbreak;\n\t\tcase 1001:\n\t\t\tentity.extendedData = entity.extendedData || {};\n\t\t\tentity.extendedData.applicationName = curr.value as string;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n\treturn true;\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/3dface.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\n\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface I3DfaceEntity extends IEntity {\n\tshape: boolean;\n\thasContinuousLinetypePattern: boolean;\n\tvertices: IPoint[];\n}\n\nexport default class ThreeDface implements IGeometry {\n\tpublic ForEntityName = '3DFACE' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value as string, vertices: [] as IPoint[] } as I3DfaceEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 70: // 1 = Closed shape, 128 = plinegen?, 0 = default\n\t\t\t\t\tentity.shape = (((curr.value as number) & 1) === 1);\n\t\t\t\t\tentity.hasContinuousLinetypePattern = (((curr.value as number) & 128) === 128);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 10: // X coordinate of point\n\t\t\t\t\tentity.vertices = parse3dFaceVertices(scanner, curr);\n\t\t\t\t\tcurr = scanner.lastReadGroup as IGroup;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\t\treturn entity;\n\t}\n}\n\nfunction parse3dFaceVertices(scanner:DxfArrayScanner, curr:IGroup) {\n\tvar vertices:IPoint[] = [];\n\tvar vertexIsStarted = false;\n\tvar vertexIsFinished = false;\n\tvar verticesPer3dFace = 4; // there can be up to four vertices per face, although 3 is most used for TIN\n\n\tfor (let i = 0; i <= verticesPer3dFace; i++) {\n\t\tvar vertex = {} as IPoint;\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0 || vertexIsFinished) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 10: // X0\n\t\t\t\tcase 11: // X1\n\t\t\t\tcase 12: // X2\n\t\t\t\tcase 13: // X3\n\t\t\t\t\tif (vertexIsStarted) {\n\t\t\t\t\t\tvertexIsFinished = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvertex.x = curr.value as number;\n\t\t\t\t\tvertexIsStarted = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 20: // Y\n\t\t\t\tcase 21:\n\t\t\t\tcase 22:\n\t\t\t\tcase 23:\n\t\t\t\t\tvertex.y = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 30: // Z\n\t\t\t\tcase 31:\n\t\t\t\tcase 32:\n\t\t\t\tcase 33:\n\t\t\t\t\tvertex.z = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t// it is possible to have entity codes after the vertices.  \n\t\t\t\t\t// So if code is not accounted for return to entity parser where it might be accounted for\n\t\t\t\t\treturn vertices;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\t\t// See https://groups.google.com/forum/#!topic/comp.cad.autocad/9gn8s5O_w6E\n\t\tvertices.push(vertex);\n\t\tvertexIsStarted = false;\n\t\tvertexIsFinished = false;\n\t}\n\tscanner.rewind();\n\treturn vertices;\n};\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/arc.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\n\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IArcEntity extends IEntity {\n\tcenter: IPoint;\n\tradius: number;\n\tstartAngle: number;\n\tendAngle: number;\n\tangleLength: number;\n\textrusionDirectionX: number;\n\textrusionDirectionY: number;\n\textrusionDirectionZ: number;\n}\n\nexport default class Arc implements IGeometry {\n\tpublic ForEntityName = 'ARC' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value } as IArcEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 10: // X coordinate of point\n\t\t\t\t\tentity.center = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40: // radius\n\t\t\t\t\tentity.radius = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 50: // start angle\n\t\t\t\t\tentity.startAngle = Math.PI / 180 * (curr.value as number);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 51: // end angle\n\t\t\t\t\tentity.endAngle = Math.PI / 180 * (curr.value as number);\n\t\t\t\t\tentity.angleLength = entity.endAngle - entity.startAngle; // angleLength is deprecated\n\t\t\t\t\tbreak;\n\t\t\t\tcase 210:\n\t\t\t\t\tentity.extrusionDirectionX = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 220:\n\t\t\t\t\tentity.extrusionDirectionY = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 230:\n\t\t\t\t\tentity.extrusionDirectionZ = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: // ignored attribute\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/attdef.ts",
    "content": "import DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IAttdefEntity extends IEntity {\n\tscale: number;\n\ttextStyle: 'STANDARD' | string;\n\ttext: string;\n\ttag: string;\n\tprompt: string;\n\tstartPoint: IPoint;\n\tendPoint: IPoint;\n\tthickness: number;\n\ttextHeight: number;\n\trotation: number;\n\tobliqueAngle: number;\n\tinvisible: boolean;\n\tconstant: boolean;\n\tverificationRequired: boolean;\n\tpreset: boolean;\n\tbackwards: boolean;\n\tmirrored: boolean;\n\thorizontalJustification: number;\n\tfieldLength: number;\n\tverticalJustification: number;\n\textrusionDirectionX: number;\n\textrusionDirectionY: number;\n\textrusionDirectionZ: number;\n}\n\nexport default class Attdef implements IGeometry {\n\tpublic ForEntityName = 'ATTDEF' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = {\n\t\t\ttype: curr.value,\n\t\t\tscale: 1,\n\t\t\ttextStyle: 'STANDARD'\n\t\t} as IAttdefEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 1:\n\t\t\t\t\tentity.text = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tentity.tag = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tentity.prompt = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 7:\n\t\t\t\t\tentity.textStyle = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 10: // X coordinate of 'first alignment point'\n\t\t\t\t\tentity.startPoint = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 11: // X coordinate of 'second alignment point'\n\t\t\t\t\tentity.endPoint = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 39:\n\t\t\t\t\tentity.thickness = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40:\n\t\t\t\t\tentity.textHeight = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 41:\n\t\t\t\t\tentity.scale = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 50:\n\t\t\t\t\tentity.rotation = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 51:\n\t\t\t\t\tentity.obliqueAngle = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 70:\n\t\t\t\t\tentity.invisible = !!((curr.value as number) & 0x01);\n\t\t\t\t\tentity.constant = !!((curr.value as number) & 0x02);\n\t\t\t\t\tentity.verificationRequired = !!((curr.value as number) & 0x04);\n\t\t\t\t\tentity.preset = !!((curr.value as number) & 0x08);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 71:\n\t\t\t\t\tentity.backwards = !!((curr.value as number) & 0x02);\n\t\t\t\t\tentity.mirrored = !!((curr.value as number) & 0x04);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 72:\n\t\t\t\t\t// TODO: enum values?\n\t\t\t\t\tentity.horizontalJustification = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 73:\n\t\t\t\t\tentity.fieldLength = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 74:\n\t\t\t\t\t// TODO: enum values?\n\t\t\t\t\tentity.verticalJustification = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 100:\n\t\t\t\t\tbreak;\n\t\t\t\tcase 210:\n\t\t\t\t\tentity.extrusionDirectionX = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 220:\n\t\t\t\t\tentity.extrusionDirectionY = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 230:\n\t\t\t\t\tentity.extrusionDirectionZ = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/attribute.ts",
    "content": "import DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers';\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IAttribEntity extends IEntity {\n    scale: number;\n    textStyle: 'STANDARD' | string;\n    text: string;\n    tag: string;\n    prompt: string;\n    startPoint: IPoint;\n    endPoint: IPoint;\n    thickness: number;\n    textHeight: number;\n    rotation: number;\n    lineSpacingFactor: number;\n    fillBoxScale: number;\n    annotationHeight: number;\n    obliqueAngle: number;\n    invisible: boolean;\n    constant: boolean;\n    verificationRequired: boolean;\n    preset: boolean;\n    horizontalJustification: number;\n    verticalJustification: number;\n    backgroundFillColor: string;\n    attachmentPoint: number;\n    lineSpacing: number;\n    backgroundFillSetting: string;\n    extrusionDirection: IPoint;\n    lockPositionFlag: number;\n    hardPointerId: number;\n}\n\nexport default class Attrib implements IGeometry{\n    public ForEntityName = 'ATTRIB' as const;\n\n    public parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n        const entity = {\n            type: curr.value,\n            scale: 1,\n            textStyle: 'STANDARD',\n        } as IAttribEntity;\n        curr = scanner.next();\n        while (!scanner.isEOF()) {\n            // 0 为图元类型 (MTEXT)，不写入，此处当作 Attrib解析\n            if (curr.code === 0) {\n                break;\n            }\n            switch (curr.code) {\n                case 1:\n                    // 字符串本身\n                    entity.text = curr.value as string;\n                    break;\n                case 2:\n                    // 属性标签（字符串；不能包含空格）\n                    entity.tag = curr.value as string;\n                    break;\n                case 3:\n                    // 附加文字（始终在长度为 250 个字符的数据块中）（可选）\n                    entity.prompt = curr.value as string;\n                    break;\n                case 7:\n                    // DXF：X 值；APP：三维矢量文字样式名（如果未提供，则为 STANDARD）（可选）\n                    entity.textStyle = curr.value as string;\n                    break;\n                case 10: // 文字起点（在 OCS 中）\n                    entity.startPoint = helpers.parsePoint(scanner);\n                    break;\n                case 11: //X 轴方向矢量（在 WCS 中）\n                    entity.endPoint = helpers.parsePoint(scanner);\n                    break;\n                case 39:\n                    // 厚度（可选；默认值 = 0）\n                    entity.thickness = curr.value as number;\n                    break;\n                case 40:\n                    // 文字高度\n                    entity.textHeight = curr.value as number;\n                    break;\n                case 41:\n                    // X 相对缩放比例（宽度）（可选；默认值 = 1）。使用拟合类型的文字时，该值也将进行调整。\n                    entity.scale = curr.value as number;\n                    break;\n                case 44:\n                    // 多行文字的行距比例（可选）：\n                    // 要应用的行距的默认百分比（五分之三）。\n                    // 有效值的范围从 0.25 到 4.00\n                    entity.lineSpacingFactor = curr.value as number;\n                    break;\n                case 45:\n                    // 填充框大小（可选）：\n                    // 确定文字周围的边框大小。\n                    entity.fillBoxScale = curr.value as number;\n                    break;\n                case 46:\n                    // 定义注释高度\n                    entity.annotationHeight = curr.value as number;\n                    break;\n                case 50:\n                    //文字旋转角度（可选；默认值 = 0）\n                    entity.rotation = curr.value as number;\n                    break;\n                case 51:\n                    // 倾斜角（可选；默认值 = 0）\n                    entity.obliqueAngle = curr.value as number;\n                    break;\n                case 63:\n                    //背景填充颜色（可选）：\n                    // 组码 90 为 1 时要用于背景填充的颜色。\n                    entity.backgroundFillColor = curr.value as string\n                    break;\n                case 70:\n                    entity.invisible = !!((curr.value as number) & 0x01);\n                    entity.constant = !!((curr.value as number) & 0x02);\n                    entity.verificationRequired = !!((curr.value as number) & 0x04);\n                    entity.preset = !!((curr.value as number) & 0x08);\n                    break;\n                case 71:\n                    //附着点：\n                    // 1 = 左上；2 = 中上；3 = 右上\n                    // 4 = 左中；5 = 正中；6 = 右中\n                    // 7 = 左下；8 = 中下；9 = 右下\n                    entity.attachmentPoint = curr.value as number;\n                    break;\n                case 72:\n                    // 文字水平对正类型（可选；默认值 = 0）\n                    entity.horizontalJustification = curr.value as number;\n                    break;\n                case 73:\n                    // 字段长度（可选；默认值 = 0）（当前未使用）\n                    entity.lineSpacing = curr.value as number;\n                    break;\n                case 74:\n                    // 垂直文字对正类型（可选；默认值 = 0）\n                    entity.verticalJustification = curr.value as number;\n                    break;\n                case 90:\n                    // 背景填充设置：\n                    // 0 = 背景填充关闭\n                    // 1 = 使用背景填充颜色\n                    // 2 = 使用图形窗口颜色作为背景填充颜色\n                    entity.backgroundFillSetting = curr.value as string;\n                    break;\n                case 210:\n                    // 拉伸方向。仅当图元的拉伸方向与 WCS 的 Z 轴不平行时才出现（可选；默认值 = 0, 0, 1）\n                    entity.extrusionDirection = helpers.parsePoint(scanner);\n                    break;\n                case 280:\n                    // 锁定位置标志。锁定块参照中属性的位置\n                    entity.lockPositionFlag = curr.value as number;\n                    break;\n                case 340:\n                    // 次要属性或属性定义的硬指针 ID\n                    entity.hardPointerId = curr.value as number;\n                    break;\n                default:\n                    helpers.checkCommonEntityProperties(entity, curr, scanner);\n                    break;\n            }\n            curr = scanner.next();\n        }\n\n        return entity;\n    }\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/circle.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface ICircleEntity extends IEntity {\n\tcenter: IPoint;\n\tradius: number;\n\tstartAngle: number;\n\tendAngle: number;\n\tangleLength: number;\n}\n\nexport default class Circle implements IGeometry {\n\tpublic ForEntityName = 'CIRCLE' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value } as ICircleEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 10: // X coordinate of point\n\t\t\t\t\tentity.center = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40: // radius\n\t\t\t\t\tentity.radius = (curr.value as number);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 50: // start angle\n\t\t\t\t\tentity.startAngle = Math.PI / 180 * (curr.value as number);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 51: // end angle\n\t\t\t\t\tconst endAngle = Math.PI / 180 * (curr.value as number);\n\t\t\t\t\tif (endAngle < entity.startAngle)\n\t\t\t\t\t\tentity.angleLength = endAngle + 2 * Math.PI - entity.startAngle;\n\t\t\t\t\telse\n\t\t\t\t\t\tentity.angleLength = endAngle - entity.startAngle;\n\t\t\t\t\tentity.endAngle = endAngle;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: // ignored attribute\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/dimension.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IDimensionEntity extends IEntity{\n\tblock: string;\n\tanchorPoint: IPoint;\n\tmiddleOfText: IPoint;\n\tinsertionPoint: IPoint;\n\tlinearOrAngularPoint1: IPoint;\n\tlinearOrAngularPoint2: IPoint;\n\tdiameterOrRadiusPoint: IPoint;\n\tarcPoint: IPoint;\n\tdimensionType: number;\n\tattachmentPoint: number;\n\tactualMeasurement: number;\n\ttext: string;\n\tangle: number;\n}\n\nexport default class Dimension implements IGeometry {\n\tpublic ForEntityName = 'DIMENSION' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value } as IDimensionEntity;\n\t\tcurr = scanner.next();\n\t\twhile(!scanner.isEOF()) {\n\t\t\tif(curr.code === 0) break;\n\n\t\t\tswitch(curr.code) {\n\t\t\t\tcase 2: // Referenced block name\n\t\t\t\t\tentity.block = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 10: // X coordinate of 'first alignment point'\n\t\t\t\t\tentity.anchorPoint = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 11:\n\t\t\t\t\tentity.middleOfText = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 12: // Insertion point for clones of a dimension\n\t\t\t\t\tentity.insertionPoint = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // Definition point for linear and angular dimensions \n\t\t\t\t\tentity.linearOrAngularPoint1 = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 14: // Definition point for linear and angular dimensions \n\t\t\t\t\tentity.linearOrAngularPoint2 = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 15: // Definition point for diameter, radius, and angular dimensions\n\t\t\t\t\tentity.diameterOrRadiusPoint = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 16: // Point defining dimension arc for angular dimensions\n\t\t\t\t\tentity.arcPoint = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 70: // Dimension type\n\t\t\t\t\tentity.dimensionType = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 71: // 5 = Middle center\n\t\t\t\t\tentity.attachmentPoint = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 42: // Actual measurement\n\t\t\t\t\tentity.actualMeasurement = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1: // Text entered by user explicitly\n\t\t\t\t\tentity.text = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 50: // Angle of rotated, horizontal, or vertical dimensions\n\t\t\t\t\tentity.angle = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: // check common entity attributes\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/ellipse.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IEllipseEntity extends IEntity {\n\tcenter: IPoint;\n\tmajorAxisEndPoint: IPoint;\n\taxisRatio: number;\n\tstartAngle: number;\n\tendAngle: number;\n\tname: string;\n}\n\nexport default class Ellipse implements IGeometry {\n\tpublic ForEntityName = 'ELLIPSE' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value } as IEllipseEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 10:\n\t\t\t\t\tentity.center = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 11:\n\t\t\t\t\tentity.majorAxisEndPoint = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40:\n\t\t\t\t\tentity.axisRatio = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 41:\n\t\t\t\t\tentity.startAngle = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 42:\n\t\t\t\t\tentity.endAngle = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tentity.name = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: // check common entity attributes\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcurr = scanner.next();\n\t\t}\n\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/geomtry.ts",
    "content": "import DxfArrayScanner, { IGroup } from \"../DxfArrayScanner\";\n\nexport interface IPoint {\n\tx: number;\n\ty: number;\n\tz: number;\n}\n\nexport interface IEntity {\n\tlineType: string;\n\tlayer: string;\n\tlineTypeScale: number;\n\tvisible: boolean;\n\tcolorIndex: number;\n\tcolor: number;\n\tinPaperSpace: boolean;\n\townerHandle: string;\n\tmaterialObjectHandle: number;\n\tlineweight: 0| 5| 9| 13| 15| 18| 20| 25| 30| 35| 40| 50| 53| 60| 70| 80| 90| 100| 106| 120| 140| 158| 200| 211|-3|-2|-1;\n\textendedData: {\n\t\tcustomStrings: string[];\n\t\tapplicationName: string;\n\t};\n\ttype: string;\n\thandle: number;\n}\n\nexport type EntityName = 'POINT'\n\t| '3DFACE'\n\t| 'ARC'\n\t| 'ATTDEF'\n\t| 'ATTRIB'\n\t| 'CIRCLE'\n\t| 'DIMENSION'\n\t| 'ELLIPSE'\n\t| 'HATCH'\n\t| 'INSERT'\n\t| 'LINE'\n\t| 'LWPOLYLINE'\n\t| 'MTEXT'\n\t| 'POLYLINE'\n\t| 'SOLID'\n\t| 'SPLINE'\n\t| 'TEXT'\n\t| 'VERTEX';\n\nexport default interface IGeometry {\n\tForEntityName: EntityName;\n\tparseEntity(scanner: DxfArrayScanner, curr: IGroup): IEntity;\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/hatch.ts",
    "content": "import DxfArrayScanner, {IGroup} from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, {IEntity, IPoint} from './geomtry';\n\nexport interface IHatchEntity extends IEntity {\n    boundaryLoops: any[];\n    definitionLines: any[];\n    seedPoints: any[];\n    patternName: string;\n    isSolid: boolean;\n    hatchStyle: string;\n    patternType: number;\n    patternAngle: number;\n    patternScale: number;\n}\n\nexport default class Hatch implements IGeometry {\n    public ForEntityName = 'HATCH' as const;\n\n    public parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n        let entity = {type: curr.value} as IHatchEntity;\n\n        let numBoundaryLoops = 0;\n        let numDefinitionLines = 0;\n        let numSeedPoints = 0;\n\n        curr = scanner.next();\n        while (!scanner.isEOF()) {\n            if (curr.code === 0) break;\n\n            while (numBoundaryLoops > 0) {\n                const loop = ParseBoundaryLoop(curr, scanner)\n                if (loop) {\n                    entity.boundaryLoops.push(loop);\n                    numBoundaryLoops--;\n                    curr = scanner.next();\n                } else {\n                    numBoundaryLoops = 0\n                }\n            }\n\n            while (numDefinitionLines > 0) {\n                const line = ParseDefinitionLine(curr, scanner)\n                if (line) {\n                    entity.definitionLines.push(line);\n                    numDefinitionLines--;\n                    curr = scanner.next();\n                } else {\n                    numDefinitionLines = 0\n                }\n            }\n\n            while (numSeedPoints > 0) {\n                const pt = ParseSeedPoint(curr, scanner);\n                if (pt) {\n                    entity.seedPoints.push(pt);\n                    numSeedPoints--;\n                    curr = scanner.next();\n                } else {\n                    numSeedPoints = 0\n                }\n            }\n\n            if (curr.code === 0) break;\n\n            switch (curr.code) {\n                case 2: // 填充图案名\n                    entity.patternName = curr.value as string;\n                    break;\n                case 70: // 实体填充标志（实体填充 = 1；图案填充 = 0）\n                    entity.isSolid = curr.value != 0;\n                    break;\n                case 91: // 边界路径（环）数\n                    numBoundaryLoops = curr.value as number;\n                    if (numBoundaryLoops > 0) {\n                        entity.boundaryLoops = []\n                    }\n                    break;\n                /**\n                 * 图案填充样式：\n                 * 0 = 对“奇数奇偶校验”区域进行图案填充（普通样式）\n                 * 1 = 仅对最外层区域进行图案填充（“外部”样式）\n                 * 2 = 对整个区域进行图案填充（“忽略”样式）\n                 */\n                case 75:\n                    entity.hatchStyle = curr.value as string;\n                    break;\n                /**\n                 * 填充图案类型：\n                 * 0 = 用户定义；1 = 预定义；2 = 自定义\n                 */\n                case 76:\n                    entity.patternType = curr.value as number;\n                    break;\n                case 52: // 填充图案角度（仅限图案填充）\n                    entity.patternAngle = (curr.value as number) * Math.PI / 180;\n                    break;\n                case 41: // 填充图案比例或间距（仅限图案填充）\n                    entity.patternScale = curr.value as number;\n                    break;\n                case 78: // 图案定义直线数\n                    numDefinitionLines = curr.value as number;\n                    if (numDefinitionLines > 0) {\n                        entity.definitionLines = []\n                    }\n                    break;\n                case 98: // 种子点数\n                    numSeedPoints = curr.value as number;\n                    if (numSeedPoints > 0) {\n                        entity.seedPoints = []\n                    }\n                    break;\n                default: // 检查通用实体属性\n                    helpers.checkCommonEntityProperties(entity, curr, scanner);\n                    break;\n            }\n            curr = scanner.next();\n        }\n\n        return entity;\n    };\n}\n\nfunction ParseBoundaryLoop(curr: IGroup, scanner: DxfArrayScanner) {\n    let entity:any = null\n\n    const ParsePolyline = () => {\n        const pl: { vertices: IPoint[], isClosed: boolean } = {vertices: [], isClosed: false};\n        let numVertices = 0;\n        while (true) {\n            if (numVertices > 0) {\n                for (let i = 0; i < numVertices; i++) {\n                    if (curr.code != 10) {\n                        break\n                    }\n                    const p = helpers.parsePoint(scanner)\n                    curr = scanner.next();\n                    if (curr.code == 42) {\n                        // @ts-ignore\n                        p.bulge = curr.value;\n                        curr = scanner.next();\n                    }\n                    pl.vertices.push(p)\n                }\n                return pl\n            }\n\n            switch (curr.code) {\n                case 73:\n                    pl.isClosed = curr.value as boolean;\n                    break;\n                case 93:\n                    numVertices = curr.value as number;\n                    break;\n                default:\n                    return pl;\n            }\n            curr = scanner.next();\n        }\n    }\n\n    const ParseEdge = () => {\n        if (curr.code != 72) {\n            return null\n        }\n        const e:any = {type: curr.value}\n        curr = scanner.next();\n        const isSpline = e.type == 4;\n\n        while (true) {\n            switch (curr.code) {\n                case 10:\n                    if (isSpline) {\n                        if (!e.controlPoints) {\n                            e.controlPoints = [];\n                        }\n                        e.controlPoints.push(helpers.parsePoint(scanner));\n                    } else {\n                        e.start = helpers.parsePoint(scanner);\n                    }\n                    break;\n                case 11:\n                    if (isSpline) {\n                        if (!e.fitPoints) {\n                            e.fitPoints = [];\n                        }\n                        e.fitPoints.push(helpers.parsePoint(scanner));\n                    } else {\n                        e.end = helpers.parsePoint(scanner);\n                    }\n                    break;\n                case 40:\n                    if (isSpline) {\n                        if (!e.knotValues) {\n                            e.knotValues = [];\n                        }\n                        e.knotValues.push(curr.value);\n                    } else {\n                        e.radius = curr.value;\n                    }\n                    break;\n                case 50:\n                    e.startAngle = (curr.value as number) * Math.PI / 180;\n                    break;\n                case 51:\n                    e.endAngle = (curr.value as number) * Math.PI / 180;\n                    break;\n                case 73:\n                    if (isSpline) {\n                        e.rational = curr.value;\n                    } else {\n                        e.isCcw = curr.value;\n                    }\n                    break;\n                case 74:\n                    e.periodic = curr.value;\n                    break;\n                case 94:\n                    e.degreeOfSplineCurve = curr.value;\n                    break;\n\n                //XXX暂时忽略一些群体，主要是样条\n                case 95:\n                case 96:\n                case 42:\n                case 97:\n                    break;\n                default:\n                    return e\n            }\n            curr = scanner.next();\n        }\n    }\n\n    let polylineParsed = false;\n    let numEdges = 0;\n    let numSourceRefs = 0;\n\n    while (true) {\n        if (!entity) {\n            if (curr.code != 92) {\n                return null;\n            }\n            entity = {type: curr.value};\n            curr = scanner.next();\n        }\n\n        if ((entity.type & 2) && !polylineParsed) {\n            entity.polyline = ParsePolyline()\n            polylineParsed = true\n        }\n\n        while (numEdges) {\n            const edge = ParseEdge();\n            if (edge) {\n                entity.edges.push(edge);\n                numEdges--;\n            } else {\n                numEdges = 0;\n            }\n        }\n\n        while (numSourceRefs) {\n            if (curr.code == 330) {\n                entity.sourceRefs.push(curr.value);\n                numSourceRefs--;\n                curr = scanner.next();\n            } else {\n                numSourceRefs = 0\n            }\n        }\n\n        switch (curr.code) {\n            case 93:\n                numEdges = curr.value as number;\n                if (numEdges > 0) {\n                    entity.edges = []\n                }\n                break;\n            case 97:\n                numSourceRefs = curr.value as number;\n                if (numSourceRefs > 0) {\n                    entity.sourceRefs = []\n                }\n                break;\n            default:\n                scanner.rewind();\n                return entity;\n        }\n        curr = scanner.next();\n    }\n}\n\nfunction ParseDefinitionLine(curr: IGroup, scanner: DxfArrayScanner) {\n    /* 假设总是从53组开始. */\n    if (curr.code != 53) {\n        return null\n    }\n    const entity:any = {\n        angle: (curr.value as number) * Math.PI / 180,\n        base: {x: 0, y: 0},\n        offset: {x: 0, y: 0}\n    };\n    curr = scanner.next();\n\n    let numDashes = 0;\n    while (true) {\n        switch (curr.code) {\n            case 43:\n                entity.base.x = curr.value as number;\n                break;\n            case 44:\n                entity.base.y = curr.value as number;\n                break;\n            case 45:\n                entity.offset.x = curr.value as number;\n                break;\n            case 46:\n                entity.offset.y = curr.value as number;\n                break;\n            case 49:\n                if (numDashes > 0) {\n                    entity.dashes.push(curr.value);\n                    numDashes--;\n                }\n                break;\n            case 79:\n                numDashes = curr.value as number;\n                if (curr.value) {\n                    entity.dashes = []\n                }\n                break;\n            default:\n                scanner.rewind();\n                return entity;\n        }\n        curr = scanner.next();\n    }\n}\n\nfunction ParseSeedPoint(curr: IGroup, scanner: DxfArrayScanner) {\n    if (curr.code != 10) {\n        return null\n    }\n    return helpers.parsePoint(scanner);\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/insert.ts",
    "content": "import DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IInsertEntity extends IEntity {\n\tname: string;\n\txScale: number;\n\tyScale: number;\n\tzScale: number;\n\tposition: IPoint;\n\trotation: number;\n\tcolumnCount: number;\n\trowCount: number;\n\tcolumnSpacing: number;\n\trowSpacing: number;\n\textrusionDirection: IPoint;\n}\n\nexport default class Insert implements IGeometry {\n\tpublic ForEntityName = 'INSERT' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value } as IInsertEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 2:\n\t\t\t\t\tentity.name = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 41:\n\t\t\t\t\tentity.xScale = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 42:\n\t\t\t\t\tentity.yScale = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 43:\n\t\t\t\t\tentity.zScale = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 10:\n\t\t\t\t\tentity.position = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 50:\n\t\t\t\t\tentity.rotation = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 70:\n\t\t\t\t\tentity.columnCount = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 71:\n\t\t\t\t\tentity.rowCount = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 44:\n\t\t\t\t\tentity.columnSpacing = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 45:\n\t\t\t\t\tentity.rowSpacing = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 210:\n\t\t\t\t\tentity.extrusionDirection = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: // check common entity attributes\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/line.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface ILineEntity extends IEntity{\n\tvertices: IPoint[];\n\textrusionDirection: IPoint;\n}\n\nexport default class Line implements IGeometry{\n\tpublic ForEntityName= 'LINE' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value, vertices: [] as IPoint[] } as ILineEntity;\n\t\tcurr = scanner.next();\n\t\twhile(!scanner.isEOF()) {\n\t\t\t\tif(curr.code === 0) break;\n\n\t\t\t\tswitch(curr.code) {\n\t\t\t\t\t\tcase 10: // X coordinate of point\n\t\t\t\t\t\t\t\tentity.vertices.unshift(helpers.parsePoint(scanner));\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 11:\n\t\t\t\t\t\t\t\tentity.vertices.push(helpers.parsePoint(scanner));\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 210:\n\t\t\t\t\t\t\t\tentity.extrusionDirection = helpers.parsePoint(scanner);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 100:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tcurr = scanner.next();\n\t\t}\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/lwpolyline.ts",
    "content": "import DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IVertex extends IPoint{\n\tstartWidth: number;\n\tendWidth: number;\n\tbulge: number;\n}\n\nexport interface ILwpolylineEntity extends IEntity {\n\tvertices: IVertex[];\n\televation: number;\n\tdepth: number;\n\tshape: boolean;\n\thasContinuousLinetypePattern: boolean;\n\twidth: number;\n\textrusionDirectionX: number;\n\textrusionDirectionY: number;\n\textrusionDirectionZ: number;\n}\n\nexport default class Lwpolyline implements IGeometry {\n\tpublic ForEntityName = 'LWPOLYLINE' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value, vertices: [] as IVertex[] } as ILwpolylineEntity;\n\t\tlet numberOfVertices = 0;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 38:\n\t\t\t\t\tentity.elevation = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 39:\n\t\t\t\t\tentity.depth = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 70: // 1 = Closed shape, 128 = plinegen?, 0 = default\n\t\t\t\t\tentity.shape = (((curr.value as number) & 1) === 1);\n\t\t\t\t\tentity.hasContinuousLinetypePattern = (((curr.value as number) & 128) === 128);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 90:\n\t\t\t\t\tnumberOfVertices = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 10: // X coordinate of point\n\t\t\t\t\tentity.vertices = parseLWPolylineVertices(numberOfVertices, scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 43:\n\t\t\t\t\tif (curr.value !== 0) entity.width = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 210:\n\t\t\t\t\tentity.extrusionDirectionX = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 220:\n\t\t\t\t\tentity.extrusionDirectionY = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 230:\n\t\t\t\t\tentity.extrusionDirectionZ = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\t\treturn entity;\n\t}\n}\n\nfunction parseLWPolylineVertices(n:number, scanner: DxfArrayScanner) {\n\tif (!n || n <= 0) throw Error('n must be greater than 0 verticies');\n\tconst vertices = [] as IVertex[];\n\tlet vertexIsStarted = false;\n\tlet vertexIsFinished = false;\n\tlet curr = scanner.lastReadGroup as IGroup;\n\n\tfor (let i = 0; i < n; i++) {\n\t\tconst vertex = {} as IVertex;\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0 || vertexIsFinished) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 10: // X\n\t\t\t\t\tif (vertexIsStarted) {\n\t\t\t\t\t\tvertexIsFinished = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvertex.x = curr.value as number;\n\t\t\t\t\tvertexIsStarted = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 20: // Y\n\t\t\t\t\tvertex.y = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 30: // Z\n\t\t\t\t\tvertex.z = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40: // start width\n\t\t\t\t\tvertex.startWidth = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 41: // end width\n\t\t\t\t\tvertex.endWidth = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 42: // bulge\n\t\t\t\t\tif (curr.value != 0) vertex.bulge = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t// if we do not hit known code return vertices.  Code might belong to entity\n\t\t\t\t\tscanner.rewind();\n\t\t\t\t\tif (vertexIsStarted) {\n\t\t\t\t\t\tvertices.push(vertex);\n\t\t\t\t\t}\n\t\t\t\t\tscanner.rewind();\n\t\t\t\t\treturn vertices;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\t\t// See https://groups.google.com/forum/#!topic/comp.cad.autocad/9gn8s5O_w6E\n\t\tvertices.push(vertex);\n\t\tvertexIsStarted = false;\n\t\tvertexIsFinished = false;\n\t}\n\tscanner.rewind();\n\treturn vertices;\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/mtext.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IMtextEntity extends IEntity {\n\ttext: string;\n\tposition: IPoint;\n\tdirectionVector: IPoint;\n\theight: number;\n\twidth: number;\n\trotation: number;\n\tattachmentPoint: number;\n\tdrawingDirection: number;\n}\n\nexport default class Mtext implements IGeometry {\n\tpublic ForEntityName = 'MTEXT' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value } as IMtextEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 3:\n\t\t\t\t\tentity.text ? entity.text += curr.value : entity.text = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tentity.text ? entity.text += curr.value : entity.text = curr.value as string;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 10:\n\t\t\t\t\tentity.position = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 11:\n\t\t\t\t\tentity.directionVector = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40:\n\t\t\t\t\t//Note: this is the text height\n\t\t\t\t\tentity.height = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 41:\n\t\t\t\t\tentity.width = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 50:\n\t\t\t\t\tentity.rotation = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 71:\n\t\t\t\t\tentity.attachmentPoint = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 72:\n\t\t\t\t\tentity.drawingDirection = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/point.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IPointEntity extends IEntity{\n\tposition: IPoint;\n\tthickness: number;\n\textrusionDirection: IPoint;\n}\n\nexport default class Point implements IGeometry{\n\tpublic ForEntityName= 'POINT' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst type = curr.value as string;\n\t\tconst entity = { type } as unknown as IPointEntity;\n\t\tcurr = scanner.next();\n\t\twhile(!scanner.isEOF()) {\n\t\t\t\tif(curr.code === 0) break;\n\n\t\t\t\tswitch(curr.code) {\n\t\t\t\t\t\tcase 10:\n\t\t\t\t\t\t\t\tentity.position = helpers.parsePoint(scanner);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\t\tentity.thickness = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 210:\n\t\t\t\t\t\t\t\tentity.extrusionDirection = helpers.parsePoint(scanner);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 100:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: // check common entity attributes\n\t\t\t\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcurr = scanner.next();\n\t\t}\n\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/polyline.ts",
    "content": "\nimport * as helpers from '../ParseHelpers'\nimport VertexParser, { IVertexEntity } from './vertex';\nimport IGeometry, { IEntity, IPoint } from './geomtry';\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\n\nexport interface IPolylineEntity extends IEntity {\n\tvertices: IVertexEntity[];\n\tthickness: number;\n\tshape: boolean;\n\tincludesCurveFitVertices: boolean;\n\tincludesSplineFitVertices: boolean;\n\tis3dPolyline: boolean;\n\tis3dPolygonMesh: boolean;\n\tis3dPolygonMeshClosed: boolean;\n\tisPolyfaceMesh: boolean;\n\thasContinuousLinetypePattern: boolean;\n\textrusionDirection: IPoint;\n}\n\nexport default class Polyline implements IGeometry {\n\tpublic ForEntityName = 'POLYLINE' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tvar entity = { type: curr.value, vertices: [] as IVertexEntity[] } as IPolylineEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 10: // always 0\n\t\t\t\t\tbreak;\n\t\t\t\tcase 20: // always 0\n\t\t\t\t\tbreak;\n\t\t\t\tcase 30: // elevation\n\t\t\t\t\tbreak;\n\t\t\t\tcase 39: // thickness\n\t\t\t\t\tentity.thickness = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40: // start width\n\t\t\t\t\tbreak;\n\t\t\t\tcase 41: // end width\n\t\t\t\t\tbreak;\n\t\t\t\tcase 70:\n\t\t\t\t\tentity.shape = ((curr.value as number) & 1) !== 0;\n\t\t\t\t\tentity.includesCurveFitVertices = ((curr.value as number) & 2) !== 0;\n\t\t\t\t\tentity.includesSplineFitVertices = ((curr.value as number) & 4) !== 0;\n\t\t\t\t\tentity.is3dPolyline = ((curr.value as number) & 8) !== 0;\n\t\t\t\t\tentity.is3dPolygonMesh = ((curr.value as number) & 16) !== 0;\n\t\t\t\t\tentity.is3dPolygonMeshClosed = ((curr.value as number) & 32) !== 0; // 32 = The polygon mesh is closed in the N direction\n\t\t\t\t\tentity.isPolyfaceMesh = ((curr.value as number) & 64) !== 0;\n\t\t\t\t\tentity.hasContinuousLinetypePattern = ((curr.value as number) & 128) !== 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 71: // Polygon mesh M vertex count\n\t\t\t\t\tbreak;\n\t\t\t\tcase 72: // Polygon mesh N vertex count\n\t\t\t\t\tbreak;\n\t\t\t\tcase 73: // Smooth surface M density\n\t\t\t\t\tbreak;\n\t\t\t\tcase 74: // Smooth surface N density\n\t\t\t\t\tbreak;\n\t\t\t\tcase 75: // Curves and smooth surface type\n\t\t\t\t\tbreak;\n\t\t\t\tcase 210:\n\t\t\t\t\tentity.extrusionDirection = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\n\t\tentity.vertices = parsePolylineVertices(scanner, curr);\n\n\t\treturn entity;\n\t}\n}\n\nfunction parsePolylineVertices(scanner:DxfArrayScanner, curr:IGroup) {\n\tconst vertexParser = new VertexParser();\n\n\tconst vertices: IVertexEntity[] = [];\n\twhile (!scanner.isEOF()) {\n\t\tif (curr.code === 0) {\n\t\t\tif (curr.value === 'VERTEX') {\n\t\t\t\tvertices.push(vertexParser.parseEntity(scanner, curr));\n\t\t\t\tcurr = scanner.lastReadGroup as IGroup;\n\t\t\t} else if (curr.value === 'SEQEND') {\n\t\t\t\tparseSeqEnd(scanner, curr);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn vertices;\n}\n\nfunction parseSeqEnd(scanner:DxfArrayScanner, curr: IGroup) {\n\tconst entity = { type: curr.value } as IEntity;\n\tcurr = scanner.next();\n\twhile (!scanner.isEOF()) {\n\t\tif (curr.code == 0) break;\n\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\tcurr = scanner.next();\n\t}\n\n\treturn entity;\n};\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/solid.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface ISolidEntity extends IEntity {\n\tpoints: IPoint[];\n\textrusionDirection: IPoint;\n}\n\nexport default class Solid implements IGeometry {\n\tpublic ForEntityName = 'SOLID' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value, points: [] as IPoint[] } as ISolidEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 10:\n\t\t\t\t\tentity.points[0] = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 11:\n\t\t\t\t\tentity.points[1] = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 12:\n\t\t\t\t\tentity.points[2] = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13:\n\t\t\t\t\tentity.points[3] = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 210:\n\t\t\t\t\tentity.extrusionDirection = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: // check common entity attributes\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/spline.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface ISplineEntity extends IEntity {\n\tcontrolPoints?: IPoint[];\n\tfitPoints?: IPoint[];\n\tstartTangent: IPoint;\n\tendTangent: IPoint;\n\tknotValues: number[];\n\tclosed: boolean;\n\tperiodic: boolean;\n\trational: boolean;\n\tplanar: boolean;\n\tlinear: boolean;\n\tdegreeOfSplineCurve: number;\n\tnumberOfKnots: number;\n\tnumberOfControlPoints: number;\n\tnumberOfFitPoints: number;\n\tnormalVector: IPoint;\n}\n\nexport default class Spline implements IGeometry {\n\tpublic ForEntityName = 'SPLINE' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tconst entity = { type: curr.value } as ISplineEntity;\n\t\tcurr = scanner.next();\n\t\twhile (!scanner.isEOF()) {\n\t\t\tif (curr.code === 0) break;\n\n\t\t\tswitch (curr.code) {\n\t\t\t\tcase 10:\n\t\t\t\t\tif (!entity.controlPoints) entity.controlPoints = [];\n\t\t\t\t\tentity.controlPoints.push(helpers.parsePoint(scanner));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 11:\n\t\t\t\t\tif (!entity.fitPoints) entity.fitPoints = [];\n\t\t\t\t\tentity.fitPoints.push(helpers.parsePoint(scanner));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 12:\n\t\t\t\t\tentity.startTangent = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13:\n\t\t\t\t\tentity.endTangent = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40:\n\t\t\t\t\tif (!entity.knotValues) entity.knotValues = [];\n\t\t\t\t\tentity.knotValues.push(curr.value as number);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 70:\n\t\t\t\t\tif (((curr.value as number) & 1) != 0) entity.closed = true;\n\t\t\t\t\tif (((curr.value as number) & 2) != 0) entity.periodic = true;\n\t\t\t\t\tif (((curr.value as number) & 4) != 0) entity.rational = true;\n\t\t\t\t\tif (((curr.value as number) & 8) != 0) entity.planar = true;\n\t\t\t\t\tif (((curr.value as number) & 16) != 0) {\n\t\t\t\t\t\tentity.planar = true;\n\t\t\t\t\t\tentity.linear = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 71:\n\t\t\t\t\tentity.degreeOfSplineCurve = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 72:\n\t\t\t\t\tentity.numberOfKnots = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 73:\n\t\t\t\t\tentity.numberOfControlPoints = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 74:\n\t\t\t\t\tentity.numberOfFitPoints = curr.value as number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 210:\n\t\t\t\t\tentity.normalVector = helpers.parsePoint(scanner);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurr = scanner.next();\n\t\t}\n\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/text.ts",
    "content": "import DxfArrayScanner, {IGroup} from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\nimport IGeometry, {IEntity, IPoint} from './geomtry';\n\nexport interface ITextEntity extends IEntity {\n    startPoint: IPoint;\n    endPoint: IPoint;\n    textHeight: number;\n    xScale: number;\n    rotation: number;\n    obliqueAngle: number;\n    text: string;\n    fontName: string;\n    thickness: number;\n    halign: number;\n    valign: number;\n    flags: number;\n}\n\nexport default class Text implements IGeometry {\n    public ForEntityName = 'TEXT' as const;\n\n    public parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n        const entity = {type: curr.value} as ITextEntity;\n        curr = scanner.next();\n        while (!scanner.isEOF()) {\n            if (curr.code === 0) break;\n            switch (curr.code) {\n                case 1:\n                    // 字符串本身\n                    entity.text = curr.value as string;\n                    break;\n                case 7: // 字体名称/文字样式名（可选；默认值 = 标准）\n                    entity.fontName = curr.value as string;\n                    break;\n                case 10:\n                    // 第一对齐点（在 OCS 中） DXF：X 值；APP：三维点\n                    entity.startPoint = helpers.parsePoint(scanner);\n                    break;\n                case 11:\n                    // 第二对齐点（在 OCS 中）（可选）;\n                    // DXF：X 值；APP：三维点;\n                    // 只有当 72 或 73 组的值非零时，该值才有意义（如果对正不是基线对正/左对正）\n                    entity.endPoint = helpers.parsePoint(scanner);\n                    break;\n                case 39:\n                    // 厚度（可选；默认值 = 0）\n                    entity.thickness = curr.value as number;\n                    break;\n                case 40:\n                    // 文字高度\n                    entity.textHeight = curr.value as number;\n                    break;\n                case 41:\n                    // 相对 X 比例因子 — 宽度（可选；默认值 = 1）\n                    // 使用拟合类型的文字时，该值也将进行调整。\n                    entity.xScale = curr.value as number;\n                    break;\n                case 50:\n                    // 文字旋转角度（可选；默认值 = 0）\n                    entity.rotation = curr.value as number;\n                    break;\n                case 51:\n                    // 倾斜角度（可选；默认值 = 0）\n                    entity.obliqueAngle = curr.value as number;\n                    break;\n                case 71:\n                    // 文字生成标志（可选，仅适用于 SHX 文字）：\n                    // 2 = 文字反向（在 X 轴方向镜像）\n                    // 4 = 文字倒置（在 Y 轴方向镜像）\n                    entity.flags = curr.value as number;\n                    break;\n                // NOTE: 72和73没有11就没有意义(第二个对齐点)\n                case 72:\n                    // 文字水平对正类型（可选；默认值 = 0）整数代码（非按位编码）\n                    // 0 = 左对正；1 = 居中对正；2 = 右对正\n                    // 3 = 对齐（如果垂直对齐 = 0）\n                    // 4 = 中间（如果垂直对齐 = 0）\n                    // 5 = 拟合（如果垂直对齐 = 0）\n                    entity.halign = curr.value as number;\n                    break;\n                case 73:\n                    // 文字垂直对正类型（可选；默认值 = 0）整数代码（不是按位编码）\n                    // 0 = 基线对正；1 = 底端对正；2 = 居中对正；3 = 顶端对正\n                    entity.valign = curr.value as number;\n                    break;\n                default:\n                    // check common entity attributes\n                    helpers.checkCommonEntityProperties(entity, curr, scanner);\n                    break;\n            }\n            curr = scanner.next();\n        }\n        return entity;\n    }\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/entities/vertex.ts",
    "content": "\nimport DxfArrayScanner, { IGroup } from '../DxfArrayScanner';\nimport * as helpers from '../ParseHelpers'\n\nimport IGeometry, { IEntity, IPoint } from './geomtry';\n\nexport interface IVertexEntity extends IEntity, IPoint{\n\tbulge: number;\n\tcurveFittingVertex: boolean;\n\tcurveFitTangent: boolean;\n\tsplineVertex: boolean;\n\tsplineControlPoint: boolean;\n\tthreeDPolylineVertex: boolean;\n\tthreeDPolylineMesh: boolean;\n\tpolyfaceMeshVertex: boolean;\n\tfaceA: number;\n\tfaceB: number;\n\tfaceC: number;\n\tfaceD: number;\n}\n\nexport default class Vertex implements IGeometry {\n\tpublic ForEntityName= 'VERTEX' as const;\n\tpublic parseEntity(scanner: DxfArrayScanner, curr: IGroup) {\n\t\tvar entity = { type: curr.value } as IVertexEntity;\n\t\tcurr = scanner.next();\n\t\twhile(!scanner.isEOF()) {\n\t\t\t\tif(curr.code === 0) break;\n\n\t\t\t\tswitch(curr.code) {\n\t\t\t\t\t\tcase 10:\t// X\n\t\t\t\t\t\t\t\tentity.x = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 20: // Y\n\t\t\t\t\t\t\t\tentity.y = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 30: // Z\n\t\t\t\t\t\t\t\tentity.z = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 40: // start width\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 41: // end width\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 42: // bulge\n\t\t\t\t\t\t\t\tif(curr.value != 0) entity.bulge = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 70: // flags\n\t\t\t\t\t\t\t\tentity.curveFittingVertex = ((curr.value as number) & 1) !== 0;\n\t\t\t\t\t\t\t\tentity.curveFitTangent = ((curr.value as number) & 2) !== 0;\n\t\t\t\t\t\t\t\tentity.splineVertex = ((curr.value as number) & 8) !== 0;\n\t\t\t\t\t\t\t\tentity.splineControlPoint = ((curr.value as number) & 16) !== 0;\n\t\t\t\t\t\t\t\tentity.threeDPolylineVertex = ((curr.value as number) & 32) !== 0;\n\t\t\t\t\t\t\t\tentity.threeDPolylineMesh = ((curr.value as number) & 64) !== 0;\n\t\t\t\t\t\t\t\tentity.polyfaceMeshVertex = ((curr.value as number) & 128) !== 0;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 50: // curve fit tangent direction\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 71: // polyface mesh vertex index\n\t\t\t\t\t\t\t\tentity.faceA = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 72: // polyface mesh vertex index\n\t\t\t\t\t\t\t\tentity.faceB = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 73: // polyface mesh vertex index\n\t\t\t\t\t\t\t\tentity.faceC = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 74: // polyface mesh vertex index\n\t\t\t\t\t\t\t\tentity.faceD = curr.value as number;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\thelpers.checkCommonEntityProperties(entity, curr, scanner);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tcurr = scanner.next();\n\t\t}\n\t\treturn entity;\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/dxf/parser/index.ts",
    "content": "import DxfParser from './DxfParser';\nexport { default as DxfParser } from './DxfParser';\nexport type { IDxf, IBlock, ILayerTypesTable, ILayersTable, ITables, IViewPortTable, IBaseTable, ILayer, ILayerTableDefinition, ILineType, ILineTypeTableDefinition, ITable, ITableDefinitions, IViewPort, IViewPortTableDefinition } from './DxfParser';\nexport type { IEntity, IPoint } from './entities/geomtry';\nexport type { I3DfaceEntity } from './entities/3dface';\nexport type { IArcEntity } from './entities/arc';\nexport type { IAttdefEntity } from './entities/attdef';\nexport type { ICircleEntity } from './entities/circle';\nexport type { IDimensionEntity } from './entities/dimension';\nexport type { IEllipseEntity } from './entities/ellipse';\nexport type { IInsertEntity } from './entities/insert';\nexport type { ILineEntity } from './entities/line';\nexport type { ILwpolylineEntity } from './entities/lwpolyline';\nexport type { IMtextEntity } from './entities/mtext';\nexport type { IPointEntity } from './entities/point';\nexport type { IPolylineEntity } from './entities/polyline';\nexport type { ISolidEntity } from './entities/solid';\nexport type { ISplineEntity } from './entities/spline';\nexport type { ITextEntity } from './entities/text';\nexport type { IVertexEntity } from './entities/vertex';\n\nexport default DxfParser\n"
  },
  {
    "path": "packages/sdk/lib/dxf/pickHelper.ts",
    "content": "import { Raycaster, Mesh, Group, Vector2, Scene, OrthographicCamera,Color } from \"three\";\n\nexport class PickHelper {\n    private raycaster: Raycaster;\n    private pickedObject: Mesh | Group | undefined;\n    private objects: Mesh[];\n    private camera: OrthographicCamera;\n    private scene: Scene;\n    private bloomLayer: number;\n    private pickedColor =  new Color(\"#63E2B7\");\n    private lastPickedColor =  null;\n\n    constructor(scene: Scene, camera: OrthographicCamera, bloomLayer: number) {\n        this.camera = camera;\n        this.scene = scene;\n\n        this.bloomLayer = bloomLayer;\n\n        this.raycaster = new Raycaster();\n\n        this.objects = [];\n\n        this.scene.traverseVisible(child => {\n            if (child.children.length == 0) {\n                this.objects.push(<Mesh>child);\n            }\n        });\n    }\n\n    pick(normalizedPosition: Vector2,) {\n        // 透过截锥投射一道光线\n        this.raycaster.setFromCamera(normalizedPosition, this.camera);\n        // 获取射线相交的物体列表\n        const intersectedObjects = this.raycaster.intersectObjects(this.objects, false);\n        if (intersectedObjects.length) {\n            // 选择第一个对象。这是最近的一个\n            this.select(intersectedObjects[0].object as Mesh);\n        }\n    }\n\n    select(object: Mesh | Group) {\n        if (!object || object.uuid === this.pickedObject?.uuid) return;\n\n        // 如果有被选中的物体，则恢复\n        if (this.pickedObject) {\n            this.pickedObject.layers.toggle(this.bloomLayer);\n\n            if(this.pickedObject.material && this.lastPickedColor){\n                this.pickedObject.material.color = this.lastPickedColor;\n                this.lastPickedColor = null;\n            }\n\n            this.pickedObject = undefined;\n        }\n\n        this.pickedObject = object;\n        this.pickedObject.layers.toggle(this.bloomLayer);\n\n        if(this.pickedObject.material){\n            this.lastPickedColor = this.pickedObject.material.color;\n            this.pickedObject.material.color = this.pickedColor;\n        }\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/dxf/round10.ts",
    "content": "// 这是基础的示例代码\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor\n// MDN上的示例代码是公共领域或CC0(您的偏好)或MIT，具体取决于示例代码添加的时间:\n// https://developer.mozilla.org/en-US/docs/MDN/About\n\nexport default (value: number | string[], exp?:number | undefined) => {\n    // 如果exp没有定义或者为零...\n    if (typeof exp === 'undefined' || +exp === 0) {\n      return Math.round(value as number)\n    }\n    value = +value\n    exp = +exp\n    // 如果值不是数字或exp不是整数…\n    if (isNaN(value) || !(exp % 1 === 0)) {\n      return NaN\n    }\n    // Shift\n    value = value.toString().split('e')\n    value = Math.round(+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)))\n    // Shift back\n    value = value.toString().split('e')\n    return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp))\n  }"
  },
  {
    "path": "packages/sdk/lib/dxf/troika-three-text.esm.js",
    "content": "import { Color, DataTexture, RedFormat, LinearFilter, Vector3, InstancedBufferGeometry, Sphere, Box3, InstancedBufferAttribute, PlaneGeometry as PlaneBufferGeometry, Vector2, Vector4, Matrix3, MeshBasicMaterial, DoubleSide, Matrix4, Mesh } from 'three';\nimport { defineWorkerModule, ThenableWorkerModule } from './troika-worker-utils.esm.js';\nimport { createDerivedMaterial, voidMainRegExp } from './troika-three-utils.esm.js';\n\n/**\n * Initializes and returns a function to generate an SDF texture for a given glyph.\n * @param {function} createGlyphSegmentsQuadtree - factory for a GlyphSegmentsQuadtree implementation.\n * @param {number} config.sdfDistancePercent - see docs for SDF_DISTANCE_PERCENT in TextBuilder.js\n *\n * @return {function(Object): {renderingBounds: [minX, minY, maxX, maxY], textureData: Uint8Array}}\n */\nfunction createSDFGenerator(createGlyphSegmentsQuadtree, config) {\n  const {\n    sdfDistancePercent\n  } = config;\n\n  /**\n   * How many straight line segments to use when approximating a glyph's quadratic/cubic bezier curves.\n   */\n  const CURVE_POINTS = 16;\n\n  /**\n   * Find the point on a quadratic bezier curve at t where t is in the range [0, 1]\n   */\n  function pointOnQuadraticBezier(x0, y0, x1, y1, x2, y2, t) {\n    const t2 = 1 - t;\n    return {\n      x: t2 * t2 * x0 + 2 * t2 * t * x1 + t * t * x2,\n      y: t2 * t2 * y0 + 2 * t2 * t * y1 + t * t * y2\n    }\n  }\n\n  /**\n   * Find the point on a cubic bezier curve at t where t is in the range [0, 1]\n   */\n  function pointOnCubicBezier(x0, y0, x1, y1, x2, y2, x3, y3, t) {\n    const t2 = 1 - t;\n    return {\n      x: t2 * t2 * t2 * x0 + 3 * t2 * t2 * t * x1 + 3 * t2 * t * t * x2 + t * t * t * x3,\n      y: t2 * t2 * t2 * y0 + 3 * t2 * t2 * t * y1 + 3 * t2 * t * t * y2 + t * t * t * y3\n    }\n  }\n\n  /**\n   * Generate an SDF texture segment for a single glyph.\n   * @param {object} glyphObj\n   * @param {number} sdfSize - the length of one side of the SDF image.\n   *        Larger images encode more details. Must be a power of 2.\n   * @return {{textureData: Uint8Array, renderingBounds: *[]}}\n   */\n  function generateSDF(glyphObj, sdfSize) {\n    //console.time('glyphSDF')\n\n    const textureData = new Uint8Array(sdfSize * sdfSize);\n\n    // Determine mapping between glyph grid coords and sdf grid coords\n    const glyphW = glyphObj.xMax - glyphObj.xMin;\n    const glyphH = glyphObj.yMax - glyphObj.yMin;\n\n    // Choose a maximum distance radius in font units, based on the glyph's max dimensions\n    const fontUnitsMaxDist = Math.max(glyphW, glyphH) * sdfDistancePercent;\n\n    // Use that, extending to the texture edges, to find conversion ratios between texture units and font units\n    const fontUnitsPerXTexel = (glyphW + fontUnitsMaxDist * 2) / sdfSize;\n    const fontUnitsPerYTexel = (glyphH + fontUnitsMaxDist * 2) / sdfSize;\n\n    const textureMinFontX = glyphObj.xMin - fontUnitsMaxDist - fontUnitsPerXTexel;\n    const textureMinFontY = glyphObj.yMin - fontUnitsMaxDist - fontUnitsPerYTexel;\n    const textureMaxFontX = glyphObj.xMax + fontUnitsMaxDist + fontUnitsPerXTexel;\n    const textureMaxFontY = glyphObj.yMax + fontUnitsMaxDist + fontUnitsPerYTexel;\n\n    function textureXToFontX(x) {\n      return textureMinFontX + (textureMaxFontX - textureMinFontX) * x / sdfSize\n    }\n\n    function textureYToFontY(y) {\n      return textureMinFontY + (textureMaxFontY - textureMinFontY) * y / sdfSize\n    }\n\n    if (glyphObj.pathCommandCount) { //whitespace chars will have no commands, so we can skip all this\n      // Decompose all paths into straight line segments and add them to a quadtree\n      const lineSegmentsIndex = createGlyphSegmentsQuadtree(glyphObj);\n      let firstX, firstY, prevX, prevY;\n      glyphObj.forEachPathCommand((type, x0, y0, x1, y1, x2, y2) => {\n        switch (type) {\n          case 'M':\n            prevX = firstX = x0;\n            prevY = firstY = y0;\n            break\n          case 'L':\n            if (x0 !== prevX || y0 !== prevY) { //yup, some fonts have zero-length line commands\n              lineSegmentsIndex.addLineSegment(prevX, prevY, (prevX = x0), (prevY = y0));\n            }\n            break\n          case 'Q': {\n            let prevPoint = {x: prevX, y: prevY};\n            for (let i = 1; i < CURVE_POINTS; i++) {\n              let nextPoint = pointOnQuadraticBezier(\n                prevX, prevY,\n                x0, y0,\n                x1, y1,\n                i / (CURVE_POINTS - 1)\n              );\n              lineSegmentsIndex.addLineSegment(prevPoint.x, prevPoint.y, nextPoint.x, nextPoint.y);\n              prevPoint = nextPoint;\n            }\n            prevX = x1;\n            prevY = y1;\n            break\n          }\n          case 'C': {\n            let prevPoint = {x: prevX, y: prevY};\n            for (let i = 1; i < CURVE_POINTS; i++) {\n              let nextPoint = pointOnCubicBezier(\n                prevX, prevY,\n                x0, y0,\n                x1, y1,\n                x2, y2,\n                i / (CURVE_POINTS - 1)\n              );\n              lineSegmentsIndex.addLineSegment(prevPoint.x, prevPoint.y, nextPoint.x, nextPoint.y);\n              prevPoint = nextPoint;\n            }\n            prevX = x2;\n            prevY = y2;\n            break\n          }\n          case 'Z':\n            if (prevX !== firstX || prevY !== firstY) {\n              lineSegmentsIndex.addLineSegment(prevX, prevY, firstX, firstY);\n            }\n            break\n        }\n      });\n\n      // For each target SDF texel, find the distance from its center to its nearest line segment,\n      // map that distance to an alpha value, and write that alpha to the texel\n      for (let sdfX = 0; sdfX < sdfSize; sdfX++) {\n        for (let sdfY = 0; sdfY < sdfSize; sdfY++) {\n          const signedDist = lineSegmentsIndex.findNearestSignedDistance(\n            textureXToFontX(sdfX + 0.5),\n            textureYToFontY(sdfY + 0.5),\n            fontUnitsMaxDist\n          );\n          //if (!isFinite(signedDist)) throw 'infinite distance!'\n          let alpha = isFinite(signedDist) ? Math.round(255 * (1 + signedDist / fontUnitsMaxDist) * 0.5) : signedDist;\n          alpha = Math.max(0, Math.min(255, alpha)); //clamp\n          textureData[sdfY * sdfSize + sdfX] = alpha;\n        }\n      }\n    }\n\n    //console.timeEnd('glyphSDF')\n\n    return {\n      textureData: textureData,\n\n      renderingBounds: [\n        textureMinFontX,\n        textureMinFontY,\n        textureMaxFontX,\n        textureMaxFontY\n      ]\n    }\n  }\n\n\n  return generateSDF\n}\n\n/**\n * Creates a self-contained environment for processing text rendering requests.\n *\n * It is important that this function has no closure dependencies, so that it can be easily injected\n * into the source for a Worker without requiring a build step or complex dependency loading. All its\n * dependencies must be passed in at initialization.\n *\n * @param {function} fontParser - a function that accepts an ArrayBuffer of the font data and returns\n * a standardized structure giving access to the font and its glyphs:\n *   {\n *     unitsPerEm: number,\n *     ascender: number,\n *     descender: number,\n *     forEachGlyph(string, fontSize, letterSpacing, callback) {\n *       //invokes callback for each glyph to render, passing it an object:\n *       callback({\n *         index: number,\n *         advanceWidth: number,\n *         xMin: number,\n *         yMin: number,\n *         xMax: number,\n *         yMax: number,\n *         pathCommandCount: number,\n *         forEachPathCommand(callback) {\n *           //invokes callback for each path command, with args:\n *           callback(\n *             type: 'M|L|C|Q|Z',\n *             ...args //0 to 6 args depending on the type\n *           )\n *         }\n *       })\n *     }\n *   }\n * @param {function} sdfGenerator - a function that accepts a glyph object and generates an SDF texture\n * from it.\n * @param {Object} config\n * @return {Object}\n */\nfunction createFontProcessor(fontParser, sdfGenerator, config) {\n\n  const {\n    defaultFontUrl\n  } = config;\n\n\n  /**\n   * @private\n   * Holds data about font glyphs and how they relate to SDF atlases\n   *\n   * {\n   *   'fontUrl@sdfSize': {\n   *     fontObj: {}, //result of the fontParser\n   *     glyphs: {\n   *       [glyphIndex]: {\n   *         atlasIndex: 0,\n   *         glyphObj: {}, //glyph object from the fontParser\n   *         renderingBounds: [x0, y0, x1, y1]\n   *       },\n   *       ...\n   *     },\n   *     glyphCount: 123\n   *   }\n   * }\n   */\n  const fontAtlases = Object.create(null);\n\n  /**\n   * Holds parsed font objects by url\n   */\n  const fonts = Object.create(null);\n\n  const INF = Infinity;\n\n\n  /**\n   * Load a given font url\n   */\n  function doLoadFont(url, callback) {\n    function tryLoad() {\n      const onError = err => {\n        console.error(`Failure loading font ${url}${url === defaultFontUrl ? '' : '; trying fallback'}`, err);\n        if (url !== defaultFontUrl) {\n          url = defaultFontUrl;\n          tryLoad();\n        }\n      };\n      try {\n        const request = new XMLHttpRequest();\n        request.open('get', url, true);\n        request.responseType = 'arraybuffer';\n        request.onload = function () {\n          if (request.status >= 400) {\n            onError(new Error(request.statusText));\n          }\n          else if (request.status > 0) {\n            try {\n              const fontObj = fontParser(request.response);\n              callback(fontObj);\n            } catch (e) {\n              onError(e);\n            }\n          }\n        };\n        request.onerror = onError;\n        request.send();\n      } catch(err) {\n        onError(err);\n      }\n    }\n    tryLoad();\n  }\n\n\n  /**\n   * Load a given font url if needed, invoking a callback when it's loaded. If already\n   * loaded, the callback will be called synchronously.\n   */\n  function loadFont(fontUrl, callback) {\n    if (!fontUrl) fontUrl = defaultFontUrl;\n    let font = fonts[fontUrl];\n    if (font) {\n      // if currently loading font, add to callbacks, otherwise execute immediately\n      if (font.pending) {\n        font.pending.push(callback);\n      } else {\n        callback(font);\n      }\n    } else {\n      fonts[fontUrl] = {pending: [callback]};\n      doLoadFont(fontUrl, fontObj => {\n        let callbacks = fonts[fontUrl].pending;\n        fonts[fontUrl] = fontObj;\n        callbacks.forEach(cb => cb(fontObj));\n      });\n    }\n  }\n\n\n  /**\n   * Get the atlas data for a given font url, loading it from the network and initializing\n   * its atlas data objects if necessary.\n   */\n  function getSdfAtlas(fontUrl, sdfGlyphSize, callback) {\n    if (!fontUrl) fontUrl = defaultFontUrl;\n    let atlasKey = `${fontUrl}@${sdfGlyphSize}`;\n    let atlas = fontAtlases[atlasKey];\n    if (atlas) {\n      callback(atlas);\n    } else {\n      loadFont(fontUrl, fontObj => {\n        atlas = fontAtlases[atlasKey] || (fontAtlases[atlasKey] = {\n          fontObj: fontObj,\n          glyphs: {},\n          glyphCount: 0\n        });\n        callback(atlas);\n      });\n    }\n  }\n\n\n  /**\n   * Main entry point.\n   * Process a text string with given font and formatting parameters, and return all info\n   * necessary to render all its glyphs.\n   */\n  function process(\n    {\n      text='',\n      font=defaultFontUrl,\n      sdfGlyphSize=64,\n      fontSize=1,\n      letterSpacing=0,\n      lineHeight='normal',\n      maxWidth=INF,\n      textAlign='left',\n      textIndent=0,\n      whiteSpace='normal',\n      overflowWrap='normal',\n      anchorX = 0,\n      anchorY = 0,\n      includeCaretPositions=false,\n      chunkedBoundsSize=8192,\n      colorRanges=null\n    },\n    callback,\n    metricsOnly=false\n  ) {\n    const mainStart = now();\n    const timings = {total: 0, fontLoad: 0, layout: 0, sdf: {}, sdfTotal: 0};\n\n    // Ensure newlines are normalized\n    if (text.indexOf('\\r') > -1) {\n      console.warn('FontProcessor.process: got text with \\\\r chars; normalizing to \\\\n');\n      text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n    }\n\n    // Ensure we've got numbers not strings\n    fontSize = +fontSize;\n    letterSpacing = +letterSpacing;\n    maxWidth = +maxWidth;\n    lineHeight = lineHeight || 'normal';\n    textIndent = +textIndent;\n\n    getSdfAtlas(font, sdfGlyphSize, atlas => {\n      const fontObj = atlas.fontObj;\n      const hasMaxWidth = isFinite(maxWidth);\n      let newGlyphs = null;\n      let glyphBounds = null;\n      let glyphAtlasIndices = null;\n      let glyphColors = null;\n      let caretPositions = null;\n      let totalBounds = null;\n      let chunkedBounds = null;\n      let maxLineWidth = 0;\n      let renderableGlyphCount = 0;\n      let canWrap = whiteSpace !== 'nowrap';\n      const {ascender, descender, unitsPerEm} = fontObj;\n      timings.fontLoad = now() - mainStart;\n      const layoutStart = now();\n\n      // Find conversion between native font units and fontSize units; this will already be done\n      // for the gx/gy values below but everything else we'll need to convert\n      const fontSizeMult = fontSize / unitsPerEm;\n\n      // Determine appropriate value for 'normal' line height based on the font's actual metrics\n      // TODO this does not guarantee individual glyphs won't exceed the line height, e.g. Roboto; should we use yMin/Max instead?\n      if (lineHeight === 'normal') {\n        lineHeight = (ascender - descender) / unitsPerEm;\n      }\n\n      // Determine line height and leading adjustments\n      lineHeight = lineHeight * fontSize;\n      const halfLeading = (lineHeight - (ascender - descender) * fontSizeMult) / 2;\n      const topBaseline = -(fontSize + halfLeading);\n      const caretHeight = Math.min(lineHeight, (ascender - descender) * fontSizeMult);\n      const caretBottomOffset = (ascender + descender) / 2 * fontSizeMult - caretHeight / 2;\n\n      // Distribute glyphs into lines based on wrapping\n      let lineXOffset = textIndent;\n      let currentLine = new TextLine();\n      const lines = [currentLine];\n      fontObj.forEachGlyph(text, fontSize, letterSpacing, (glyphObj, glyphX, charIndex) => {\n        const char = text.charAt(charIndex);\n        const glyphWidth = glyphObj.advanceWidth * fontSizeMult;\n        const curLineCount = currentLine.count;\n        let nextLine;\n\n        // Calc isWhitespace and isEmpty once per glyphObj\n        if (!('isEmpty' in glyphObj)) {\n          glyphObj.isWhitespace = !!char && /\\s/.test(char);\n          glyphObj.isEmpty = glyphObj.xMin === glyphObj.xMax || glyphObj.yMin === glyphObj.yMax;\n        }\n        if (!glyphObj.isWhitespace && !glyphObj.isEmpty) {\n          renderableGlyphCount++;\n        }\n\n        // If a non-whitespace character overflows the max width, we need to soft-wrap\n        if (canWrap && hasMaxWidth && !glyphObj.isWhitespace && glyphX + glyphWidth + lineXOffset > maxWidth && curLineCount) {\n          // If it's the first char after a whitespace, start a new line\n          if (currentLine.glyphAt(curLineCount - 1).glyphObj.isWhitespace) {\n            nextLine = new TextLine();\n            lineXOffset = -glyphX;\n          } else {\n            // Back up looking for a whitespace character to wrap at\n            for (let i = curLineCount; i--;) {\n              // If we got the start of the line there's no soft break point; make hard break if overflowWrap='break-word'\n              if (i === 0 && overflowWrap === 'break-word') {\n                nextLine = new TextLine();\n                lineXOffset = -glyphX;\n                break\n              }\n              // Found a soft break point; move all chars since it to a new line\n              else if (currentLine.glyphAt(i).glyphObj.isWhitespace) {\n                nextLine = currentLine.splitAt(i + 1);\n                const adjustX = nextLine.glyphAt(0).x;\n                lineXOffset -= adjustX;\n                for (let j = nextLine.count; j--;) {\n                  nextLine.glyphAt(j).x -= adjustX;\n                }\n                break\n              }\n            }\n          }\n          if (nextLine) {\n            currentLine.isSoftWrapped = true;\n            currentLine = nextLine;\n            lines.push(currentLine);\n            maxLineWidth = maxWidth; //after soft wrapping use maxWidth as calculated width\n          }\n        }\n\n        let fly = currentLine.glyphAt(currentLine.count);\n        fly.glyphObj = glyphObj;\n        fly.x = glyphX + lineXOffset;\n        fly.width = glyphWidth;\n        fly.charIndex = charIndex;\n\n        // Handle hard line breaks\n        if (char === '\\n') {\n          currentLine = new TextLine();\n          lines.push(currentLine);\n          lineXOffset = -(glyphX + glyphWidth + (letterSpacing * fontSize)) + textIndent;\n        }\n      });\n\n      // Calculate width of each line (excluding trailing whitespace) and maximum block width\n      lines.forEach(line => {\n        for (let i = line.count; i--;) {\n          let {glyphObj, x, width} = line.glyphAt(i);\n          if (!glyphObj.isWhitespace) {\n            line.width = x + width;\n            if (line.width > maxLineWidth) {\n              maxLineWidth = line.width;\n            }\n            return\n          }\n        }\n      });\n\n      if (!metricsOnly) {\n        // Find overall position adjustments for anchoring\n        let anchorXOffset = 0;\n        let anchorYOffset = 0;\n        if (anchorX) {\n          if (typeof anchorX === 'number') {\n            anchorXOffset = -anchorX;\n          }\n          else if (typeof anchorX === 'string') {\n            anchorXOffset = -maxLineWidth * (\n              anchorX === 'left' ? 0 :\n              anchorX === 'center' ? 0.5 :\n              anchorX === 'right' ? 1 :\n              parsePercent(anchorX)\n            );\n          }\n        }\n        if (anchorY) {\n          if (typeof anchorY === 'number') {\n            anchorYOffset = -anchorY;\n          }\n          else if (typeof anchorY === 'string') {\n            let height = lines.length * lineHeight;\n            anchorYOffset = anchorY === 'top' ? 0 :\n              anchorY === 'top-baseline' ? -topBaseline :\n              anchorY === 'middle' ? height / 2 :\n              anchorY === 'bottom' ? height :\n              anchorY === 'bottom-baseline' ? height - halfLeading + descender * fontSizeMult :\n              parsePercent(anchorY) * height;\n          }\n        }\n\n        // Process each line, applying alignment offsets, adding each glyph to the atlas, and\n        // collecting all renderable glyphs into a single collection.\n        glyphBounds = new Float32Array(renderableGlyphCount * 4);\n        glyphAtlasIndices = new Float32Array(renderableGlyphCount);\n        totalBounds = [INF, INF, -INF, -INF];\n        chunkedBounds = [];\n        let lineYOffset = topBaseline;\n        if (includeCaretPositions) {\n          caretPositions = new Float32Array(text.length * 3);\n        }\n        if (colorRanges) {\n          glyphColors = new Uint8Array(renderableGlyphCount * 3);\n        }\n        let renderableGlyphIndex = 0;\n        let prevCharIndex = -1;\n        let colorCharIndex = -1;\n        let chunk;\n        let currentColor;\n        lines.forEach(line => {\n          const {count:lineGlyphCount, width:lineWidth} = line;\n\n          // Ignore empty lines\n          if (lineGlyphCount > 0) {\n            // Find x offset for horizontal alignment\n            let lineXOffset = 0;\n            let justifyAdjust = 0;\n            if (textAlign === 'center') {\n              lineXOffset = (maxLineWidth - lineWidth) / 2;\n            } else if (textAlign === 'right') {\n              lineXOffset = maxLineWidth - lineWidth;\n            } else if (textAlign === 'justify' && line.isSoftWrapped) {\n              // just count the non-trailing whitespace characters, and we'll adjust the offsets per\n              // character in the next loop\n              let whitespaceCount = 0;\n              for (let i = lineGlyphCount; i--;) {\n                if (!line.glyphAt(i).glyphObj.isWhitespace) {\n                  while (i--) {\n                    if (!line.glyphAt(i).glyphObj) {\n                      debugger\n                    }\n                    if (line.glyphAt(i).glyphObj.isWhitespace) {\n                      whitespaceCount++;\n                    }\n                  }\n                  break\n                }\n              }\n              justifyAdjust = (maxLineWidth - lineWidth) / whitespaceCount;\n            }\n\n            for (let i = 0; i < lineGlyphCount; i++) {\n              const glyphInfo = line.glyphAt(i);\n              const glyphObj = glyphInfo.glyphObj;\n\n              // Apply position adjustments\n              if (lineXOffset) glyphInfo.x += lineXOffset;\n\n              // Expand whitespaces for justify alignment\n              if (justifyAdjust !== 0 && glyphObj.isWhitespace) {\n                lineXOffset += justifyAdjust;\n                glyphInfo.width += justifyAdjust;\n              }\n\n              // Add caret positions\n              if (includeCaretPositions) {\n                const {charIndex} = glyphInfo;\n                caretPositions[charIndex * 3] = glyphInfo.x + anchorXOffset; //left edge x\n                caretPositions[charIndex * 3 + 1] = glyphInfo.x + glyphInfo.width + anchorXOffset; //right edge x\n                caretPositions[charIndex * 3 + 2] = lineYOffset + caretBottomOffset + anchorYOffset; //common bottom y\n\n                // If we skipped any chars from the previous glyph (due to ligature subs), copy the\n                // previous glyph's info to those missing char indices. In the future we may try to\n                // use the font's LigatureCaretList table to get interior caret positions.\n                while (charIndex - prevCharIndex > 1) {\n                  caretPositions[(prevCharIndex + 1) * 3] = caretPositions[prevCharIndex * 3 + 1];\n                  caretPositions[(prevCharIndex + 1) * 3 + 1] = caretPositions[prevCharIndex * 3 + 1];\n                  caretPositions[(prevCharIndex + 1) * 3 + 2] = caretPositions[prevCharIndex * 3 + 2];\n                  prevCharIndex++;\n                }\n                prevCharIndex = charIndex;\n              }\n\n              // Track current color range\n              if (colorRanges) {\n                const {charIndex} = glyphInfo;\n                while(charIndex > colorCharIndex) {\n                  colorCharIndex++;\n                  if (colorRanges.hasOwnProperty(colorCharIndex)) {\n                    currentColor = colorRanges[colorCharIndex];\n                  }\n                }\n              }\n\n              // Get atlas data for renderable glyphs\n              if (!glyphObj.isWhitespace && !glyphObj.isEmpty) {\n                const idx = renderableGlyphIndex++;\n\n                // If we haven't seen this glyph yet, generate its SDF\n                let glyphAtlasInfo = atlas.glyphs[glyphObj.index];\n                if (!glyphAtlasInfo) {\n                  const sdfStart = now();\n                  const glyphSDFData = sdfGenerator(glyphObj, sdfGlyphSize);\n                  timings.sdf[text.charAt(glyphInfo.charIndex)] = now() - sdfStart;\n\n                  // Assign this glyph the next available atlas index\n                  glyphSDFData.atlasIndex = atlas.glyphCount++;\n\n                  // Queue it up in the response's newGlyphs list\n                  if (!newGlyphs) newGlyphs = [];\n                  newGlyphs.push(glyphSDFData);\n\n                  // Store its metadata (not the texture) in our atlas info\n                  glyphAtlasInfo = atlas.glyphs[glyphObj.index] = {\n                    atlasIndex: glyphSDFData.atlasIndex,\n                    glyphObj: glyphObj,\n                    renderingBounds: glyphSDFData.renderingBounds\n                  };\n                }\n\n                // Determine final glyph bounds and add them to the glyphBounds array\n                const bounds = glyphAtlasInfo.renderingBounds;\n                const start = idx * 4;\n                const x0 = glyphBounds[start] = glyphInfo.x + bounds[0] * fontSizeMult + anchorXOffset;\n                const y0 = glyphBounds[start + 1] = lineYOffset + bounds[1] * fontSizeMult + anchorYOffset;\n                const x1 = glyphBounds[start + 2] = glyphInfo.x + bounds[2] * fontSizeMult + anchorXOffset;\n                const y1 = glyphBounds[start + 3] = lineYOffset + bounds[3] * fontSizeMult + anchorYOffset;\n\n                // Track total bounds\n                if (x0 < totalBounds[0]) totalBounds[0] = x0;\n                if (y0 < totalBounds[1]) totalBounds[1] = y0;\n                if (x1 > totalBounds[2]) totalBounds[2] = x1;\n                if (y1 > totalBounds[3]) totalBounds[3] = y1;\n\n                // Track bounding rects for each chunk of N glyphs\n                if (idx % chunkedBoundsSize === 0) {\n                  chunk = {start: idx, end: idx, rect: [INF, INF, -INF, -INF]};\n                  chunkedBounds.push(chunk);\n                }\n                chunk.end++;\n                if (x0 < chunk.rect[0]) chunk.rect[0] = x0;\n                if (y0 < chunk.rect[1]) chunk.rect[1] = y0;\n                if (x1 > chunk.rect[2]) chunk.rect[2] = x1;\n                if (y1 > chunk.rect[3]) chunk.rect[3] = y1;\n\n                // Add to atlas indices array\n                glyphAtlasIndices[idx] = glyphAtlasInfo.atlasIndex;\n\n                // Add colors\n                if (colorRanges) {\n                  const start = idx * 3;\n                  glyphColors[start] = currentColor >> 16 & 255;\n                  glyphColors[start + 1] = currentColor >> 8 & 255;\n                  glyphColors[start + 2] = currentColor & 255;\n                }\n              }\n            }\n          }\n\n          // Increment y offset for next line\n          lineYOffset -= lineHeight;\n        });\n      }\n\n      // Timing stats\n      for (let ch in timings.sdf) {\n        timings.sdfTotal += timings.sdf[ch];\n      }\n      timings.layout = now() - layoutStart - timings.sdfTotal;\n      timings.total = now() - mainStart;\n\n      callback({\n        glyphBounds, //rendering quad bounds for each glyph [x1, y1, x2, y2]\n        glyphAtlasIndices, //atlas indices for each glyph\n        caretPositions, //x,y of bottom of cursor position before each char, plus one after last char\n        caretHeight, //height of cursor from bottom to top\n        glyphColors, //color for each glyph, if color ranges supplied\n        chunkedBounds, //total rects per (n=chunkedBoundsSize) consecutive glyphs\n        ascender: ascender * fontSizeMult, //font ascender\n        descender: descender * fontSizeMult, //font descender\n        lineHeight, //computed line height\n        topBaseline, //y coordinate of the top line's baseline\n        totalBounds, //total rect including all glyphBounds; will be slightly larger than glyph edges due to SDF padding\n        totalBlockSize: [maxLineWidth, lines.length * lineHeight], //width and height of the text block; accurate for layout measurement\n        newGlyphSDFs: newGlyphs, //if this request included any new SDFs for the atlas, they'll be included here\n        timings\n      });\n    });\n  }\n\n\n  /**\n   * For a given text string and font parameters, determine the resulting block dimensions\n   * after wrapping for the given maxWidth.\n   * @param args\n   * @param callback\n   */\n  function measure(args, callback) {\n    process(args, (result) => {\n      callback({\n        width: result.totalBlockSize[0],\n        height: result.totalBlockSize[1]\n      });\n    }, {metricsOnly: true});\n  }\n\n  function parsePercent(str) {\n    let match = str.match(/^([\\d.]+)%$/);\n    let pct = match ? parseFloat(match[1]) : NaN;\n    return isNaN(pct) ? 0 : pct / 100\n  }\n\n  function now() {\n    return (self.performance || Date).now()\n  }\n\n  // Array-backed structure for a single line's glyphs data\n  function TextLine() {\n    this.data = [];\n  }\n  TextLine.prototype = {\n    width: 0,\n    isSoftWrapped: false,\n    get count() {\n      return Math.ceil(this.data.length / 4)\n    },\n    glyphAt(i) {\n      let fly = TextLine.flyweight;\n      fly.data = this.data;\n      fly.index = i;\n      return fly\n    },\n    splitAt(i) {\n      let newLine = new TextLine();\n      newLine.data = this.data.splice(i * 4);\n      return newLine\n    }\n  };\n  TextLine.flyweight = ['glyphObj', 'x', 'width', 'charIndex'].reduce((obj, prop, i, all) => {\n    Object.defineProperty(obj, prop, {\n      get() {\n        return this.data[this.index * 4 + i]\n      },\n      set(val) {\n        this.data[this.index * 4 + i] = val;\n      }\n    });\n    return obj\n  }, {data: null, index: 0});\n\n\n  return {\n    process,\n    measure,\n    loadFont\n  }\n}\n\n/**\n * Basic quadtree impl for performing fast spatial searches of a glyph's line segments.\n */\nfunction createGlyphSegmentsQuadtree(glyphObj) {\n  // Pick a good initial power-of-two bounding box that will hold all possible segments\n  const {xMin, yMin, xMax, yMax} = glyphObj;\n  const dx = xMax - xMin;\n  const dy = yMax - yMin;\n  const cx = Math.round(xMin + dx / 2);\n  const cy = Math.round(yMin + dy / 2);\n  const r = Math.pow(2, Math.floor(Math.log(Math.max(dx, dy)) * Math.LOG2E));\n  const INF = Infinity;\n\n  const root = {\n    0: null,\n    1: null,\n    2: null,\n    3: null,\n    data: null,\n    cx: cx,\n    cy: cy,\n    r: r,\n    minX: INF,\n    minY: INF,\n    maxX: -INF,\n    maxY: -INF\n  };\n\n  /**\n   * Add a line segment to the quadtree.\n   * @param x0\n   * @param y0\n   * @param x1\n   * @param y1\n   */\n  function addLineSegment(x0, y0, x1, y1) {\n    const cx = (x0 + x1) / 2;\n    const cy = (y0 + y1) / 2;\n    const segment = {\n      x0, y0, x1, y1, cx, cy,\n      minX: Math.min(x0, x1),\n      minY: Math.min(y0, y1),\n      maxX: Math.max(x0, x1),\n      maxY: Math.max(y0, y1),\n      next: null\n    };\n    insertSegment(segment, root);\n  }\n\n  function insertSegment(segment, node) {\n    // update node min/max stats\n    const {minX, minY, maxX, maxY, cx, cy} = segment;\n    if (minX < node.minX) node.minX = minX;\n    if (minY < node.minY) node.minY = minY;\n    if (maxX > node.maxX) node.maxX = maxX;\n    if (maxY > node.maxY) node.maxY = maxY;\n\n    // leaf\n    let leafSegment = node.data;\n    if (leafSegment) {\n      // coincident; push as linked list\n      if (leafSegment.cx === cx && leafSegment.cy === cy) {\n        while (leafSegment.next) leafSegment = leafSegment.next;\n        leafSegment.next = segment;\n      }\n      // non-coincident; split leaf to branch\n      else {\n        node.data = null;\n        insertSegment(leafSegment, node);\n        insertSegment(segment, node);\n      }\n    }\n    // branch\n    else {\n      // find target sub-index for the segment's centerpoint\n      const subIndex = (cy < node.cy ? 0 : 2) + (cx < node.cx ? 0 : 1);\n\n      // subnode already at index: recurse\n      if (node[subIndex]) {\n        insertSegment(segment, node[subIndex]);\n      }\n      // create new leaf\n      else {\n        node[subIndex] = {\n          0: null,\n          1: null,\n          2: null,\n          3: null,\n          data: segment,\n          cx: node.cx + node.r / 2 * (subIndex % 2 ? 1 : -1),\n          cy: node.cy + node.r / 2 * (subIndex < 2 ? -1 : 1),\n          r: node.r / 2,\n          minX: minX,\n          minY: minY,\n          maxX: maxX,\n          maxY: maxY\n        };\n      }\n    }\n  }\n\n  function walkTree(callback) {\n    walkBranch(root, callback);\n  }\n\n  function walkBranch(root, callback) {\n    if (callback(root) !== false && !root.data) {\n      for (let i = 0; i < 4; i++) {\n        if (root[i] !== null) {\n          walkBranch(root[i], callback);\n        }\n      }\n    }\n  }\n\n  /**\n   * For a given x/y, search the quadtree for the closest line segment and return\n   * its signed distance.\n   * @param x\n   * @param y\n   * @param maxSearchRadius\n   * @returns {number}\n   */\n  function findNearestSignedDistance(x, y, maxSearchRadius) {\n    let closestDist = maxSearchRadius;\n    let closestDistSq = closestDist * closestDist;\n\n    walkTree(function visit(node) {\n      // Ignore nodes that can't possibly have segments closer than what we've already found. We base\n      // this on a simple rect bounds check; radial would be more accurate but much slower.\n      if (\n        x - closestDist > node.maxX || x + closestDist < node.minX ||\n        y - closestDist > node.maxY || y + closestDist < node.minY\n      ) {\n        return false\n      }\n\n      // Leaf - check each segment's actual distance\n      for (let segment = node.data; segment; segment = segment.next) {\n        const distSq = absSquareDistanceToLineSegment(x, y, segment.x0, segment.y0, segment.x1, segment.y1);\n        if (distSq < closestDistSq) {\n          closestDistSq = distSq;\n          closestDist = Math.sqrt(distSq);\n        }\n      }\n    });\n\n    // Flip to negative distance if outside the poly\n    if (!isPointInPoly(x, y)) {\n      closestDist = -closestDist;\n    }\n    return closestDist\n  }\n\n  // Determine whether the given point lies inside or outside the glyph. Uses a simple\n  // ray casting algorithm using a ray pointing east from the point, optimized by using\n  // the quadtree search to test as few lines as possible.\n  function isPointInPoly(x, y) {\n    let inside = false;\n    walkTree(node => {\n      // Ignore nodes whose bounds can't possibly cross our east-pointing ray\n      if (node.maxX < x || node.minY > y || node.maxY < y) {\n        return false\n      }\n\n      // Leaf - test each segment for whether it crosses our east-pointing ray\n      for (let segment = node.data; segment; segment = segment.next) {\n        const {x0, y0, x1, y1} = segment;\n        const intersects = ((y0 > y) !== (y1 > y)) && (x < (x1 - x0) * (y - y0) / (y1 - y0) + x0);\n        if (intersects) {\n          inside = !inside;\n        }\n      }\n    });\n    return inside\n  }\n\n  // Find the absolute distance from a point to a line segment at closest approach\n  function absSquareDistanceToLineSegment(x, y, lineX0, lineY0, lineX1, lineY1) {\n    const ldx = lineX1 - lineX0;\n    const ldy = lineY1 - lineY0;\n    const lengthSq = ldx * ldx + ldy * ldy;\n    const t = lengthSq ? Math.max(0, Math.min(1, ((x - lineX0) * ldx + (y - lineY0) * ldy) / lengthSq)) : 0;\n    const dx = x - (lineX0 + t * ldx);\n    const dy = y - (lineY0 + t * ldy);\n    return dx * dx + dy * dy\n  }\n\n  return {\n    addLineSegment,\n    findNearestSignedDistance\n  }\n}\n\n// Custom bundle of Typr.js (https://github.com/photopea/Typr.js) for use in troika-3d-text.\n// Original MIT license applies: https://github.com/photopea/Typr.js/blob/gh-pages/LICENSE\n\nfunction typrFactory() {\n\nconst window = self;\n\n// Begin Typr.js\n\n\nvar Typr = {};\n\nTypr.parse = function(buff)\n{\n\tvar bin = Typr._bin;\n\tvar data = new Uint8Array(buff);\n\n\tvar tag = bin.readASCII(data, 0, 4);\n\tif(tag==\"ttcf\") {\n\t\tvar offset = 4;\n\t\tvar majV = bin.readUshort(data, offset);  offset+=2;\n\t\tvar minV = bin.readUshort(data, offset);  offset+=2;\n\t\tvar numF = bin.readUint  (data, offset);  offset+=4;\n\t\tvar fnts = [];\n\t\tfor(var i=0; i<numF; i++) {\n\t\t\tvar foff = bin.readUint  (data, offset);  offset+=4;\n\t\t\tfnts.push(Typr._readFont(data, foff));\n\t\t}\n\t\treturn fnts;\n\t}\n\telse return [Typr._readFont(data, 0)];\n};\n\nTypr._readFont = function(data, offset) {\n\tvar bin = Typr._bin;\n\tvar ooff = offset;\n\n\tvar sfnt_version = bin.readFixed(data, offset);\n\toffset += 4;\n\tvar numTables = bin.readUshort(data, offset);\n\toffset += 2;\n\tvar searchRange = bin.readUshort(data, offset);\n\toffset += 2;\n\tvar entrySelector = bin.readUshort(data, offset);\n\toffset += 2;\n\tvar rangeShift = bin.readUshort(data, offset);\n\toffset += 2;\n\n\tvar tags = [\n\t\t\"cmap\",\n\t\t\"head\",\n\t\t\"hhea\",\n\t\t\"maxp\",\n\t\t\"hmtx\",\n\t\t\"name\",\n\t\t\"OS/2\",\n\t\t\"post\",\n\n\t\t//\"cvt\",\n\t\t//\"fpgm\",\n\t\t\"loca\",\n\t\t\"glyf\",\n\t\t\"kern\",\n\n\t\t//\"prep\"\n\t\t//\"gasp\"\n\n\t\t\"CFF \",\n\n\n\t\t\"GPOS\",\n\t\t\"GSUB\",\n\n\t\t\"SVG \"\n\t\t//\"VORG\",\n\t\t];\n\n\tvar obj = {_data:data, _offset:ooff};\n\t//console.log(sfnt_version, numTables, searchRange, entrySelector, rangeShift);\n\n\tvar tabs = {};\n\n\tfor(var i=0; i<numTables; i++)\n\t{\n\t\tvar tag = bin.readASCII(data, offset, 4);   offset += 4;\n\t\tvar checkSum = bin.readUint(data, offset);  offset += 4;\n\t\tvar toffset = bin.readUint(data, offset);   offset += 4;\n\t\tvar length = bin.readUint(data, offset);    offset += 4;\n\t\ttabs[tag] = {offset:toffset, length:length};\n\n\t\t//if(tags.indexOf(tag)==-1) console.log(\"unknown tag\", tag, length);\n\t}\n\n\tfor(var i=0; i< tags.length; i++)\n\t{\n\t\tvar t = tags[i];\n\t\t//console.log(t);\n\t\t//if(tabs[t]) console.log(t, tabs[t].offset, tabs[t].length);\n\t\tif(tabs[t]) obj[t.trim()] = Typr[t.trim()].parse(data, tabs[t].offset, tabs[t].length, obj);\n\t}\n\n\treturn obj;\n};\n\nTypr._tabOffset = function(data, tab, foff)\n{\n\tvar bin = Typr._bin;\n\tvar numTables = bin.readUshort(data, foff+4);\n\tvar offset = foff+12;\n\tfor(var i=0; i<numTables; i++)\n\t{\n\t\tvar tag = bin.readASCII(data, offset, 4);   offset += 4;\n\t\tvar checkSum = bin.readUint(data, offset);  offset += 4;\n\t\tvar toffset = bin.readUint(data, offset);   offset += 4;\n\t\tvar length = bin.readUint(data, offset);    offset += 4;\n\t\tif(tag==tab) return toffset;\n\t}\n\treturn 0;\n};\n\n\n\n\n\nTypr._bin = {\n\treadFixed : function(data, o)\n\t{\n\t\treturn ((data[o]<<8) | data[o+1]) +  (((data[o+2]<<8)|data[o+3])/(256*256+4));\n\t},\n\treadF2dot14 : function(data, o)\n\t{\n\t\tvar num = Typr._bin.readShort(data, o);\n\t\treturn num / 16384;\n\t},\n\treadInt : function(buff, p)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\tvar a = Typr._bin.t.uint8;\n\t\ta[0] = buff[p+3];\n\t\ta[1] = buff[p+2];\n\t\ta[2] = buff[p+1];\n\t\ta[3] = buff[p];\n\t\treturn Typr._bin.t.int32[0];\n\t},\n\n\treadInt8 : function(buff, p)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\tvar a = Typr._bin.t.uint8;\n\t\ta[0] = buff[p];\n\t\treturn Typr._bin.t.int8[0];\n\t},\n\treadShort : function(buff, p)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\tvar a = Typr._bin.t.uint8;\n\t\ta[1] = buff[p]; a[0] = buff[p+1];\n\t\treturn Typr._bin.t.int16[0];\n\t},\n\treadUshort : function(buff, p)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\treturn (buff[p]<<8) | buff[p+1];\n\t},\n\treadUshorts : function(buff, p, len)\n\t{\n\t\tvar arr = [];\n\t\tfor(var i=0; i<len; i++) arr.push(Typr._bin.readUshort(buff, p+i*2));\n\t\treturn arr;\n\t},\n\treadUint : function(buff, p)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\tvar a = Typr._bin.t.uint8;\n\t\ta[3] = buff[p];  a[2] = buff[p+1];  a[1] = buff[p+2];  a[0] = buff[p+3];\n\t\treturn Typr._bin.t.uint32[0];\n\t},\n\treadUint64 : function(buff, p)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\treturn (Typr._bin.readUint(buff, p)*(0xffffffff+1)) + Typr._bin.readUint(buff, p+4);\n\t},\n\treadASCII : function(buff, p, l)\t// l : length in Characters (not Bytes)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\tvar s = \"\";\n\t\tfor(var i = 0; i < l; i++) s += String.fromCharCode(buff[p+i]);\n\t\treturn s;\n\t},\n\treadUnicode : function(buff, p, l)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\tvar s = \"\";\n\t\tfor(var i = 0; i < l; i++)\n\t\t{\n\t\t\tvar c = (buff[p++]<<8) | buff[p++];\n\t\t\ts += String.fromCharCode(c);\n\t\t}\n\t\treturn s;\n\t},\n\t_tdec : window[\"TextDecoder\"] ? new window[\"TextDecoder\"]() : null,\n\treadUTF8 : function(buff, p, l) {\n\t\tvar tdec = Typr._bin._tdec;\n\t\tif(tdec && p==0 && l==buff.length) return tdec[\"decode\"](buff);\n\t\treturn Typr._bin.readASCII(buff,p,l);\n\t},\n\treadBytes : function(buff, p, l)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\tvar arr = [];\n\t\tfor(var i=0; i<l; i++) arr.push(buff[p+i]);\n\t\treturn arr;\n\t},\n\treadASCIIArray : function(buff, p, l)\t// l : length in Characters (not Bytes)\n\t{\n\t\t//if(p>=buff.length) throw \"error\";\n\t\tvar s = [];\n\t\tfor(var i = 0; i < l; i++)\n\t\t\ts.push(String.fromCharCode(buff[p+i]));\n\t\treturn s;\n\t}\n};\n\nTypr._bin.t = {\n\tbuff: new ArrayBuffer(8),\n};\nTypr._bin.t.int8   = new Int8Array  (Typr._bin.t.buff);\nTypr._bin.t.uint8  = new Uint8Array (Typr._bin.t.buff);\nTypr._bin.t.int16  = new Int16Array (Typr._bin.t.buff);\nTypr._bin.t.uint16 = new Uint16Array(Typr._bin.t.buff);\nTypr._bin.t.int32  = new Int32Array (Typr._bin.t.buff);\nTypr._bin.t.uint32 = new Uint32Array(Typr._bin.t.buff);\n\n\n\n\n\n// OpenType Layout Common Table Formats\n\nTypr._lctf = {};\n\nTypr._lctf.parse = function(data, offset, length, font, subt)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\tvar offset0 = offset;\n\tvar tableVersion = bin.readFixed(data, offset);  offset += 4;\n\n\tvar offScriptList  = bin.readUshort(data, offset);  offset += 2;\n\tvar offFeatureList = bin.readUshort(data, offset);  offset += 2;\n\tvar offLookupList  = bin.readUshort(data, offset);  offset += 2;\n\n\n\tobj.scriptList  = Typr._lctf.readScriptList (data, offset0 + offScriptList);\n\tobj.featureList = Typr._lctf.readFeatureList(data, offset0 + offFeatureList);\n\tobj.lookupList  = Typr._lctf.readLookupList (data, offset0 + offLookupList, subt);\n\n\treturn obj;\n};\n\nTypr._lctf.readLookupList = function(data, offset, subt)\n{\n\tvar bin = Typr._bin;\n\tvar offset0 = offset;\n\tvar obj = [];\n\tvar count = bin.readUshort(data, offset);  offset+=2;\n\tfor(var i=0; i<count; i++)\n\t{\n\t\tvar noff = bin.readUshort(data, offset);  offset+=2;\n\t\tvar lut = Typr._lctf.readLookupTable(data, offset0 + noff, subt);\n\t\tobj.push(lut);\n\t}\n\treturn obj;\n};\n\nTypr._lctf.readLookupTable = function(data, offset, subt)\n{\n\t//console.log(\"Parsing lookup table\", offset);\n\tvar bin = Typr._bin;\n\tvar offset0 = offset;\n\tvar obj = {tabs:[]};\n\n\tobj.ltype = bin.readUshort(data, offset);  offset+=2;\n\tobj.flag  = bin.readUshort(data, offset);  offset+=2;\n\tvar cnt   = bin.readUshort(data, offset);  offset+=2;\n\n\tfor(var i=0; i<cnt; i++)\n\t{\n\t\tvar noff = bin.readUshort(data, offset);  offset+=2;\n\t\tvar tab = subt(data, obj.ltype, offset0 + noff);\n\t\t//console.log(obj.type, tab);\n\t\tobj.tabs.push(tab);\n\t}\n\treturn obj;\n};\n\nTypr._lctf.numOfOnes = function(n)\n{\n\tvar num = 0;\n\tfor(var i=0; i<32; i++) if(((n>>>i)&1) != 0) num++;\n\treturn num;\n};\n\nTypr._lctf.readClassDef = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar obj = [];\n\tvar format = bin.readUshort(data, offset);  offset+=2;\n\tif(format==1)\n\t{\n\t\tvar startGlyph  = bin.readUshort(data, offset);  offset+=2;\n\t\tvar glyphCount  = bin.readUshort(data, offset);  offset+=2;\n\t\tfor(var i=0; i<glyphCount; i++)\n\t\t{\n\t\t\tobj.push(startGlyph+i);\n\t\t\tobj.push(startGlyph+i);\n\t\t\tobj.push(bin.readUshort(data, offset));  offset+=2;\n\t\t}\n\t}\n\tif(format==2)\n\t{\n\t\tvar count = bin.readUshort(data, offset);  offset+=2;\n\t\tfor(var i=0; i<count; i++)\n\t\t{\n\t\t\tobj.push(bin.readUshort(data, offset));  offset+=2;\n\t\t\tobj.push(bin.readUshort(data, offset));  offset+=2;\n\t\t\tobj.push(bin.readUshort(data, offset));  offset+=2;\n\t\t}\n\t}\n\treturn obj;\n};\nTypr._lctf.getInterval = function(tab, val)\n{\n\tfor(var i=0; i<tab.length; i+=3)\n\t{\n\t\tvar start = tab[i], end = tab[i+1], index = tab[i+2];\n\t\tif(start<=val && val<=end) return i;\n\t}\n\treturn -1;\n};\n\n\nTypr._lctf.readCoverage = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar cvg = {};\n\tcvg.fmt   = bin.readUshort(data, offset);  offset+=2;\n\tvar count = bin.readUshort(data, offset);  offset+=2;\n\t//console.log(\"parsing coverage\", offset-4, format, count);\n\tif(cvg.fmt==1) cvg.tab = bin.readUshorts(data, offset, count);\n\tif(cvg.fmt==2) cvg.tab = bin.readUshorts(data, offset, count*3);\n\treturn cvg;\n};\n\nTypr._lctf.coverageIndex = function(cvg, val)\n{\n\tvar tab = cvg.tab;\n\tif(cvg.fmt==1) return tab.indexOf(val);\n\tif(cvg.fmt==2) {\n\t\tvar ind = Typr._lctf.getInterval(tab, val);\n\t\tif(ind!=-1) return tab[ind+2] + (val - tab[ind]);\n\t}\n\treturn -1;\n};\n\nTypr._lctf.readFeatureList = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar offset0 = offset;\n\tvar obj = [];\n\n\tvar count = bin.readUshort(data, offset);  offset+=2;\n\n\tfor(var i=0; i<count; i++)\n\t{\n\t\tvar tag = bin.readASCII(data, offset, 4);  offset+=4;\n\t\tvar noff = bin.readUshort(data, offset);  offset+=2;\n\t\tobj.push({tag: tag.trim(), tab:Typr._lctf.readFeatureTable(data, offset0 + noff)});\n\t}\n\treturn obj;\n};\n\nTypr._lctf.readFeatureTable = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\n\tvar featureParams = bin.readUshort(data, offset);  offset+=2;\t// = 0\n\tvar lookupCount = bin.readUshort(data, offset);  offset+=2;\n\n\tvar indices = [];\n\tfor(var i=0; i<lookupCount; i++) indices.push(bin.readUshort(data, offset+2*i));\n\treturn indices;\n};\n\n\nTypr._lctf.readScriptList = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar offset0 = offset;\n\tvar obj = {};\n\n\tvar count = bin.readUshort(data, offset);  offset+=2;\n\n\tfor(var i=0; i<count; i++)\n\t{\n\t\tvar tag = bin.readASCII(data, offset, 4);  offset+=4;\n\t\tvar noff = bin.readUshort(data, offset);  offset+=2;\n\t\tobj[tag.trim()] = Typr._lctf.readScriptTable(data, offset0 + noff);\n\t}\n\treturn obj;\n};\n\nTypr._lctf.readScriptTable = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar offset0 = offset;\n\tvar obj = {};\n\n\tvar defLangSysOff = bin.readUshort(data, offset);  offset+=2;\n\tobj.default = Typr._lctf.readLangSysTable(data, offset0 + defLangSysOff);\n\n\tvar langSysCount = bin.readUshort(data, offset);  offset+=2;\n\n\tfor(var i=0; i<langSysCount; i++)\n\t{\n\t\tvar tag = bin.readASCII(data, offset, 4);  offset+=4;\n\t\tvar langSysOff = bin.readUshort(data, offset);  offset+=2;\n\t\tobj[tag.trim()] = Typr._lctf.readLangSysTable(data, offset0 + langSysOff);\n\t}\n\treturn obj;\n};\n\nTypr._lctf.readLangSysTable = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\n\tvar lookupOrder = bin.readUshort(data, offset);  offset+=2;\n\t//if(lookupOrder!=0)  throw \"lookupOrder not 0\";\n\tobj.reqFeature = bin.readUshort(data, offset);  offset+=2;\n\t//if(obj.reqFeature != 0xffff) throw \"reqFeatureIndex != 0xffff\";\n\n\t//console.log(lookupOrder, obj.reqFeature);\n\n\tvar featureCount = bin.readUshort(data, offset);  offset+=2;\n\tobj.features = bin.readUshorts(data, offset, featureCount);\n\treturn obj;\n};\n\n\tTypr.CFF = {};\n\tTypr.CFF.parse = function(data, offset, length)\n\t{\n\t\tvar bin = Typr._bin;\n\n\t\tdata = new Uint8Array(data.buffer, offset, length);\n\t\toffset = 0;\n\n\t\t// Header\n\t\tvar major = data[offset];  offset++;\n\t\tvar minor = data[offset];  offset++;\n\t\tvar hdrSize = data[offset];  offset++;\n\t\tvar offsize = data[offset];  offset++;\n\t\t//console.log(major, minor, hdrSize, offsize);\n\n\t\t// Name INDEX\n\t\tvar ninds = [];\n\t\toffset = Typr.CFF.readIndex(data, offset, ninds);\n\t\tvar names = [];\n\n\t\tfor(var i=0; i<ninds.length-1; i++) names.push(bin.readASCII(data, offset+ninds[i], ninds[i+1]-ninds[i]));\n\t\toffset += ninds[ninds.length-1];\n\n\n\t\t// Top DICT INDEX\n\t\tvar tdinds = [];\n\t\toffset = Typr.CFF.readIndex(data, offset, tdinds);  //console.log(tdinds);\n\t\t// Top DICT Data\n\t\tvar topDicts = [];\n\t\tfor(var i=0; i<tdinds.length-1; i++) topDicts.push( Typr.CFF.readDict(data, offset+tdinds[i], offset+tdinds[i+1]) );\n\t\toffset += tdinds[tdinds.length-1];\n\t\tvar topdict = topDicts[0];\n\t\t//console.log(topdict);\n\n\t\t// String INDEX\n\t\tvar sinds = [];\n\t\toffset = Typr.CFF.readIndex(data, offset, sinds);\n\t\t// String Data\n\t\tvar strings = [];\n\t\tfor(var i=0; i<sinds.length-1; i++) strings.push(bin.readASCII(data, offset+sinds[i], sinds[i+1]-sinds[i]));\n\t\toffset += sinds[sinds.length-1];\n\n\t\t// Global Subr INDEX  (subroutines)\n\t\tTypr.CFF.readSubrs(data, offset, topdict);\n\n\t\t// charstrings\n\t\tif(topdict.CharStrings)\n\t\t{\n\t\t\toffset = topdict.CharStrings;\n\t\t\tvar sinds = [];\n\t\t\toffset = Typr.CFF.readIndex(data, offset, sinds);\n\n\t\t\tvar cstr = [];\n\t\t\tfor(var i=0; i<sinds.length-1; i++) cstr.push(bin.readBytes(data, offset+sinds[i], sinds[i+1]-sinds[i]));\n\t\t\t//offset += sinds[sinds.length-1];\n\t\t\ttopdict.CharStrings = cstr;\n\t\t\t//console.log(topdict.CharStrings);\n\t\t}\n\n\t\t// CID font\n\t\tif(topdict.ROS) {\n\t\t\toffset = topdict.FDArray;\n\t\t\tvar fdind = [];\n\t\t\toffset = Typr.CFF.readIndex(data, offset, fdind);\n\n\t\t\ttopdict.FDArray = [];\n\t\t\tfor(var i=0; i<fdind.length-1; i++) {\n\t\t\t\tvar dict = Typr.CFF.readDict(data, offset+fdind[i], offset+fdind[i+1]);\n\t\t\t\tTypr.CFF._readFDict(data, dict, strings);\n\t\t\t\ttopdict.FDArray.push( dict );\n\t\t\t}\n\t\t\toffset += fdind[fdind.length-1];\n\n\t\t\toffset = topdict.FDSelect;\n\t\t\ttopdict.FDSelect = [];\n\t\t\tvar fmt = data[offset];  offset++;\n\t\t\tif(fmt==3) {\n\t\t\t\tvar rns = bin.readUshort(data, offset);  offset+=2;\n\t\t\t\tfor(var i=0; i<rns+1; i++) {\n\t\t\t\t\ttopdict.FDSelect.push(bin.readUshort(data, offset), data[offset+2]);  offset+=3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse throw fmt;\n\t\t}\n\n\t\t// Encoding\n\t\tif(topdict.Encoding) topdict.Encoding = Typr.CFF.readEncoding(data, topdict.Encoding, topdict.CharStrings.length);\n\n\t\t// charset\n\t\tif(topdict.charset ) topdict.charset  = Typr.CFF.readCharset (data, topdict.charset , topdict.CharStrings.length);\n\n\t\tTypr.CFF._readFDict(data, topdict, strings);\n\t\treturn topdict;\n\t};\n\tTypr.CFF._readFDict = function(data, dict, ss) {\n\t\tvar offset;\n\t\tif(dict.Private) {\n\t\t\toffset = dict.Private[1];\n\t\t\tdict.Private = Typr.CFF.readDict(data, offset, offset+dict.Private[0]);\n\t\t\tif(dict.Private.Subrs)  Typr.CFF.readSubrs(data, offset+dict.Private.Subrs, dict.Private);\n\t\t}\n\t\tfor(var p in dict) if([\"FamilyName\",\"FontName\",\"FullName\",\"Notice\",\"version\",\"Copyright\"].indexOf(p)!=-1)  dict[p]=ss[dict[p] -426 + 35];\n\t};\n\n\tTypr.CFF.readSubrs = function(data, offset, obj)\n\t{\n\t\tvar bin = Typr._bin;\n\t\tvar gsubinds = [];\n\t\toffset = Typr.CFF.readIndex(data, offset, gsubinds);\n\n\t\tvar bias, nSubrs = gsubinds.length;\n\t\tif (nSubrs <  1240) bias = 107;\n\t\telse if (nSubrs < 33900) bias = 1131;\n\t\telse bias = 32768;\n\t\tobj.Bias = bias;\n\n\t\tobj.Subrs = [];\n\t\tfor(var i=0; i<gsubinds.length-1; i++) obj.Subrs.push(bin.readBytes(data, offset+gsubinds[i], gsubinds[i+1]-gsubinds[i]));\n\t\t//offset += gsubinds[gsubinds.length-1];\n\t};\n\n\tTypr.CFF.tableSE = [\n      0,   0,   0,   0,   0,   0,   0,   0,\n      0,   0,   0,   0,   0,   0,   0,   0,\n      0,   0,   0,   0,   0,   0,   0,   0,\n      0,   0,   0,   0,   0,   0,   0,   0,\n      1,   2,   3,   4,   5,   6,   7,   8,\n      9,  10,  11,  12,  13,  14,  15,  16,\n     17,  18,  19,  20,  21,  22,  23,  24,\n     25,  26,  27,  28,  29,  30,  31,  32,\n     33,  34,  35,  36,  37,  38,  39,  40,\n     41,  42,  43,  44,  45,  46,  47,  48,\n     49,  50,  51,  52,  53,  54,  55,  56,\n     57,  58,  59,  60,  61,  62,  63,  64,\n     65,  66,  67,  68,  69,  70,  71,  72,\n     73,  74,  75,  76,  77,  78,  79,  80,\n     81,  82,  83,  84,  85,  86,  87,  88,\n     89,  90,  91,  92,  93,  94,  95,   0,\n      0,   0,   0,   0,   0,   0,   0,   0,\n      0,   0,   0,   0,   0,   0,   0,   0,\n      0,   0,   0,   0,   0,   0,   0,   0,\n      0,   0,   0,   0,   0,   0,   0,   0,\n      0,  96,  97,  98,  99, 100, 101, 102,\n    103, 104, 105, 106, 107, 108, 109, 110,\n      0, 111, 112, 113, 114,   0, 115, 116,\n    117, 118, 119, 120, 121, 122,   0, 123,\n      0, 124, 125, 126, 127, 128, 129, 130,\n    131,   0, 132, 133,   0, 134, 135, 136,\n    137,   0,   0,   0,   0,   0,   0,   0,\n      0,   0,   0,   0,   0,   0,   0,   0,\n      0, 138,   0, 139,   0,   0,   0,   0,\n    140, 141, 142, 143,   0,   0,   0,   0,\n      0, 144,   0,   0,   0, 145,   0,   0,\n    146, 147, 148, 149,   0,   0,   0,   0\n  ];\n\n\tTypr.CFF.glyphByUnicode = function(cff, code)\n\t{\n\t\tfor(var i=0; i<cff.charset.length; i++) if(cff.charset[i]==code) return i;\n\t\treturn -1;\n\t};\n\n\tTypr.CFF.glyphBySE = function(cff, charcode)\t// glyph by standard encoding\n\t{\n\t\tif ( charcode < 0 || charcode > 255 ) return -1;\n\t\treturn Typr.CFF.glyphByUnicode(cff, Typr.CFF.tableSE[charcode]);\n\t};\n\n\tTypr.CFF.readEncoding = function(data, offset, num)\n\t{\n\t\tvar bin = Typr._bin;\n\n\t\tvar array = ['.notdef'];\n\t\tvar format = data[offset];  offset++;\n\t\t//console.log(\"Encoding\");\n\t\t//console.log(format);\n\n\t\tif(format==0)\n\t\t{\n\t\t\tvar nCodes = data[offset];  offset++;\n\t\t\tfor(var i=0; i<nCodes; i++)  array.push(data[offset+i]);\n\t\t}\n\t\t/*\n\t\telse if(format==1 || format==2)\n\t\t{\n\t\t\twhile(charset.length<num)\n\t\t\t{\n\t\t\t\tvar first = bin.readUshort(data, offset);  offset+=2;\n\t\t\t\tvar nLeft=0;\n\t\t\t\tif(format==1) {  nLeft = data[offset];  offset++;  }\n\t\t\t\telse          {  nLeft = bin.readUshort(data, offset);  offset+=2;  }\n\t\t\t\tfor(var i=0; i<=nLeft; i++)  {  charset.push(first);  first++;  }\n\t\t\t}\n\t\t}\n\t\t*/\n\t\telse throw \"error: unknown encoding format: \" + format;\n\n\t\treturn array;\n\t};\n\n\tTypr.CFF.readCharset = function(data, offset, num)\n\t{\n\t\tvar bin = Typr._bin;\n\n\t\tvar charset = ['.notdef'];\n\t\tvar format = data[offset];  offset++;\n\n\t\tif(format==0)\n\t\t{\n\t\t\tfor(var i=0; i<num; i++)\n\t\t\t{\n\t\t\t\tvar first = bin.readUshort(data, offset);  offset+=2;\n\t\t\t\tcharset.push(first);\n\t\t\t}\n\t\t}\n\t\telse if(format==1 || format==2)\n\t\t{\n\t\t\twhile(charset.length<num)\n\t\t\t{\n\t\t\t\tvar first = bin.readUshort(data, offset);  offset+=2;\n\t\t\t\tvar nLeft=0;\n\t\t\t\tif(format==1) {  nLeft = data[offset];  offset++;  }\n\t\t\t\telse          {  nLeft = bin.readUshort(data, offset);  offset+=2;  }\n\t\t\t\tfor(var i=0; i<=nLeft; i++)  {  charset.push(first);  first++;  }\n\t\t\t}\n\t\t}\n\t\telse throw \"error: format: \" + format;\n\n\t\treturn charset;\n\t};\n\n\tTypr.CFF.readIndex = function(data, offset, inds)\n\t{\n\t\tvar bin = Typr._bin;\n\n\t\tvar count = bin.readUshort(data, offset)+1;  offset+=2;\n\t\tvar offsize = data[offset];  offset++;\n\n\t\tif     (offsize==1) for(var i=0; i<count; i++) inds.push( data[offset+i] );\n\t\telse if(offsize==2) for(var i=0; i<count; i++) inds.push( bin.readUshort(data, offset+i*2) );\n\t\telse if(offsize==3) for(var i=0; i<count; i++) inds.push( bin.readUint  (data, offset+i*3 - 1) & 0x00ffffff );\n\t\telse if(count!=1) throw \"unsupported offset size: \" + offsize + \", count: \" + count;\n\n\t\toffset += count*offsize;\n\t\treturn offset-1;\n\t};\n\n\tTypr.CFF.getCharString = function(data, offset, o)\n\t{\n\t\tvar bin = Typr._bin;\n\n\t\tvar b0 = data[offset], b1 = data[offset+1], b2 = data[offset+2], b3 = data[offset+3], b4=data[offset+4];\n\t\tvar vs = 1;\n\t\tvar op=null, val=null;\n\t\t// operand\n\t\tif(b0<=20) { op = b0;  vs=1;  }\n\t\tif(b0==12) { op = b0*100+b1;  vs=2;  }\n\t\t//if(b0==19 || b0==20) { op = b0/*+\" \"+b1*/;  vs=2; }\n\t\tif(21 <=b0 && b0<= 27) { op = b0;  vs=1; }\n\t\tif(b0==28) { val = bin.readShort(data,offset+1);  vs=3; }\n\t\tif(29 <=b0 && b0<= 31) { op = b0;  vs=1; }\n\t\tif(32 <=b0 && b0<=246) { val = b0-139;  vs=1; }\n\t\tif(247<=b0 && b0<=250) { val = (b0-247)*256+b1+108;  vs=2; }\n\t\tif(251<=b0 && b0<=254) { val =-(b0-251)*256-b1-108;  vs=2; }\n\t\tif(b0==255) {  val = bin.readInt(data, offset+1)/0xffff;  vs=5;   }\n\n\t\to.val = val!=null ? val : \"o\"+op;\n\t\to.size = vs;\n\t};\n\n\tTypr.CFF.readCharString = function(data, offset, length)\n\t{\n\t\tvar end = offset + length;\n\t\tvar bin = Typr._bin;\n\t\tvar arr = [];\n\n\t\twhile(offset<end)\n\t\t{\n\t\t\tvar b0 = data[offset], b1 = data[offset+1], b2 = data[offset+2], b3 = data[offset+3], b4=data[offset+4];\n\t\t\tvar vs = 1;\n\t\t\tvar op=null, val=null;\n\t\t\t// operand\n\t\t\tif(b0<=20) { op = b0;  vs=1;  }\n\t\t\tif(b0==12) { op = b0*100+b1;  vs=2;  }\n\t\t\tif(b0==19 || b0==20) { op = b0/*+\" \"+b1*/;  vs=2; }\n\t\t\tif(21 <=b0 && b0<= 27) { op = b0;  vs=1; }\n\t\t\tif(b0==28) { val = bin.readShort(data,offset+1);  vs=3; }\n\t\t\tif(29 <=b0 && b0<= 31) { op = b0;  vs=1; }\n\t\t\tif(32 <=b0 && b0<=246) { val = b0-139;  vs=1; }\n\t\t\tif(247<=b0 && b0<=250) { val = (b0-247)*256+b1+108;  vs=2; }\n\t\t\tif(251<=b0 && b0<=254) { val =-(b0-251)*256-b1-108;  vs=2; }\n\t\t\tif(b0==255) {  val = bin.readInt(data, offset+1)/0xffff;  vs=5;   }\n\n\t\t\tarr.push(val!=null ? val : \"o\"+op);\n\t\t\toffset += vs;\n\n\t\t\t//var cv = arr[arr.length-1];\n\t\t\t//if(cv==undefined) throw \"error\";\n\t\t\t//console.log()\n\t\t}\n\t\treturn arr;\n\t};\n\n\tTypr.CFF.readDict = function(data, offset, end)\n\t{\n\t\tvar bin = Typr._bin;\n\t\t//var dict = [];\n\t\tvar dict = {};\n\t\tvar carr = [];\n\n\t\twhile(offset<end)\n\t\t{\n\t\t\tvar b0 = data[offset], b1 = data[offset+1], b2 = data[offset+2], b3 = data[offset+3], b4=data[offset+4];\n\t\t\tvar vs = 1;\n\t\t\tvar key=null, val=null;\n\t\t\t// operand\n\t\t\tif(b0==28) { val = bin.readShort(data,offset+1);  vs=3; }\n\t\t\tif(b0==29) { val = bin.readInt  (data,offset+1);  vs=5; }\n\t\t\tif(32 <=b0 && b0<=246) { val = b0-139;  vs=1; }\n\t\t\tif(247<=b0 && b0<=250) { val = (b0-247)*256+b1+108;  vs=2; }\n\t\t\tif(251<=b0 && b0<=254) { val =-(b0-251)*256-b1-108;  vs=2; }\n\t\t\tif(b0==255) {  val = bin.readInt(data, offset+1)/0xffff;  vs=5;  throw \"unknown number\";  }\n\n\t\t\tif(b0==30)\n\t\t\t{\n\t\t\t\tvar nibs = [];\n\t\t\t\tvs = 1;\n\t\t\t\twhile(true)\n\t\t\t\t{\n\t\t\t\t\tvar b = data[offset+vs];  vs++;\n\t\t\t\t\tvar nib0 = b>>4, nib1 = b&0xf;\n\t\t\t\t\tif(nib0 != 0xf) nibs.push(nib0);  if(nib1!=0xf) nibs.push(nib1);\n\t\t\t\t\tif(nib1==0xf) break;\n\t\t\t\t}\n\t\t\t\tvar s = \"\";\n\t\t\t\tvar chars = [0,1,2,3,4,5,6,7,8,9,\".\",\"e\",\"e-\",\"reserved\",\"-\",\"endOfNumber\"];\n\t\t\t\tfor(var i=0; i<nibs.length; i++) s += chars[nibs[i]];\n\t\t\t\t//console.log(nibs);\n\t\t\t\tval = parseFloat(s);\n\t\t\t}\n\n\t\t\tif(b0<=21)\t// operator\n\t\t\t{\n\t\t\t\tvar keys = [\"version\", \"Notice\", \"FullName\", \"FamilyName\", \"Weight\", \"FontBBox\", \"BlueValues\", \"OtherBlues\", \"FamilyBlues\",\"FamilyOtherBlues\",\n\t\t\t\t\t\"StdHW\", \"StdVW\", \"escape\", \"UniqueID\", \"XUID\", \"charset\", \"Encoding\", \"CharStrings\", \"Private\", \"Subrs\",\n\t\t\t\t\t\"defaultWidthX\", \"nominalWidthX\"];\n\n\t\t\t\tkey = keys[b0];  vs=1;\n\t\t\t\tif(b0==12) {\n\t\t\t\t\tvar keys = [ \"Copyright\", \"isFixedPitch\", \"ItalicAngle\", \"UnderlinePosition\", \"UnderlineThickness\", \"PaintType\", \"CharstringType\", \"FontMatrix\", \"StrokeWidth\", \"BlueScale\",\n\t\t\t\t\t\"BlueShift\", \"BlueFuzz\", \"StemSnapH\", \"StemSnapV\", \"ForceBold\", 0,0, \"LanguageGroup\", \"ExpansionFactor\", \"initialRandomSeed\",\n\t\t\t\t\t\"SyntheticBase\", \"PostScript\", \"BaseFontName\", \"BaseFontBlend\", 0,0,0,0,0,0,\n\t\t\t\t\t\"ROS\", \"CIDFontVersion\", \"CIDFontRevision\", \"CIDFontType\", \"CIDCount\", \"UIDBase\", \"FDArray\", \"FDSelect\", \"FontName\"];\n\t\t\t\t\tkey = keys[b1];  vs=2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(key!=null) {  dict[key] = carr.length==1 ? carr[0] : carr;  carr=[]; }\n\t\t\telse  carr.push(val);\n\n\t\t\toffset += vs;\n\t\t}\n\t\treturn dict;\n\t};\n\n\nTypr.cmap = {};\nTypr.cmap.parse = function(data, offset, length)\n{\n\tdata = new Uint8Array(data.buffer, offset, length);\n\toffset = 0;\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\tvar version   = bin.readUshort(data, offset);  offset += 2;\n\tvar numTables = bin.readUshort(data, offset);  offset += 2;\n\n\t//console.log(version, numTables);\n\n\tvar offs = [];\n\tobj.tables = [];\n\n\n\tfor(var i=0; i<numTables; i++)\n\t{\n\t\tvar platformID = bin.readUshort(data, offset);  offset += 2;\n\t\tvar encodingID = bin.readUshort(data, offset);  offset += 2;\n\t\tvar noffset = bin.readUint(data, offset);       offset += 4;\n\n\t\tvar id = \"p\"+platformID+\"e\"+encodingID;\n\n\t\t//console.log(\"cmap subtable\", platformID, encodingID, noffset);\n\n\n\t\tvar tind = offs.indexOf(noffset);\n\n\t\tif(tind==-1)\n\t\t{\n\t\t\ttind = obj.tables.length;\n\t\t\tvar subt;\n\t\t\toffs.push(noffset);\n\t\t\tvar format = bin.readUshort(data, noffset);\n\t\t\tif     (format== 0) subt = Typr.cmap.parse0(data, noffset);\n\t\t\telse if(format== 4) subt = Typr.cmap.parse4(data, noffset);\n\t\t\telse if(format== 6) subt = Typr.cmap.parse6(data, noffset);\n\t\t\telse if(format==12) subt = Typr.cmap.parse12(data,noffset);\n\t\t\telse console.log(\"unknown format: \"+format, platformID, encodingID, noffset);\n\t\t\tobj.tables.push(subt);\n\t\t}\n\n\t\tif(obj[id]!=null) throw \"multiple tables for one platform+encoding\";\n\t\tobj[id] = tind;\n\t}\n\treturn obj;\n};\n\nTypr.cmap.parse0 = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\tobj.format = bin.readUshort(data, offset);  offset += 2;\n\tvar len    = bin.readUshort(data, offset);  offset += 2;\n\tvar lang   = bin.readUshort(data, offset);  offset += 2;\n\tobj.map = [];\n\tfor(var i=0; i<len-6; i++) obj.map.push(data[offset+i]);\n\treturn obj;\n};\n\nTypr.cmap.parse4 = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar offset0 = offset;\n\tvar obj = {};\n\n\tobj.format = bin.readUshort(data, offset);  offset+=2;\n\tvar length = bin.readUshort(data, offset);  offset+=2;\n\tvar language = bin.readUshort(data, offset);  offset+=2;\n\tvar segCountX2 = bin.readUshort(data, offset);  offset+=2;\n\tvar segCount = segCountX2/2;\n\tobj.searchRange = bin.readUshort(data, offset);  offset+=2;\n\tobj.entrySelector = bin.readUshort(data, offset);  offset+=2;\n\tobj.rangeShift = bin.readUshort(data, offset);  offset+=2;\n\tobj.endCount   = bin.readUshorts(data, offset, segCount);  offset += segCount*2;\n\toffset+=2;\n\tobj.startCount = bin.readUshorts(data, offset, segCount);  offset += segCount*2;\n\tobj.idDelta = [];\n\tfor(var i=0; i<segCount; i++) {obj.idDelta.push(bin.readShort(data, offset));  offset+=2;}\n\tobj.idRangeOffset = bin.readUshorts(data, offset, segCount);  offset += segCount*2;\n\tobj.glyphIdArray = [];\n\twhile(offset< offset0+length) {obj.glyphIdArray.push(bin.readUshort(data, offset));  offset+=2;}\n\treturn obj;\n};\n\nTypr.cmap.parse6 = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\n\tobj.format = bin.readUshort(data, offset);  offset+=2;\n\tvar length = bin.readUshort(data, offset);  offset+=2;\n\tvar language = bin.readUshort(data, offset);  offset+=2;\n\tobj.firstCode = bin.readUshort(data, offset);  offset+=2;\n\tvar entryCount = bin.readUshort(data, offset);  offset+=2;\n\tobj.glyphIdArray = [];\n\tfor(var i=0; i<entryCount; i++) {obj.glyphIdArray.push(bin.readUshort(data, offset));  offset+=2;}\n\n\treturn obj;\n};\n\nTypr.cmap.parse12 = function(data, offset)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\n\tobj.format = bin.readUshort(data, offset);  offset+=2;\n\toffset += 2;\n\tvar length = bin.readUint(data, offset);  offset+=4;\n\tvar lang   = bin.readUint(data, offset);  offset+=4;\n\tvar nGroups= bin.readUint(data, offset);  offset+=4;\n\tobj.groups = [];\n\n\tfor(var i=0; i<nGroups; i++)\n\t{\n\t\tvar off = offset + i * 12;\n\t\tvar startCharCode = bin.readUint(data, off+0);\n\t\tvar endCharCode   = bin.readUint(data, off+4);\n\t\tvar startGlyphID  = bin.readUint(data, off+8);\n\t\tobj.groups.push([  startCharCode, endCharCode, startGlyphID  ]);\n\t}\n\treturn obj;\n};\n\nTypr.glyf = {};\nTypr.glyf.parse = function(data, offset, length, font)\n{\n\tvar obj = [];\n\tfor(var g=0; g<font.maxp.numGlyphs; g++) obj.push(null);\n\treturn obj;\n};\n\nTypr.glyf._parseGlyf = function(font, g)\n{\n\tvar bin = Typr._bin;\n\tvar data = font._data;\n\n\tvar offset = Typr._tabOffset(data, \"glyf\", font._offset) + font.loca[g];\n\n\tif(font.loca[g]==font.loca[g+1]) return null;\n\n\tvar gl = {};\n\n\tgl.noc  = bin.readShort(data, offset);  offset+=2;\t\t// number of contours\n\tgl.xMin = bin.readShort(data, offset);  offset+=2;\n\tgl.yMin = bin.readShort(data, offset);  offset+=2;\n\tgl.xMax = bin.readShort(data, offset);  offset+=2;\n\tgl.yMax = bin.readShort(data, offset);  offset+=2;\n\n\tif(gl.xMin>=gl.xMax || gl.yMin>=gl.yMax) return null;\n\n\tif(gl.noc>0)\n\t{\n\t\tgl.endPts = [];\n\t\tfor(var i=0; i<gl.noc; i++) { gl.endPts.push(bin.readUshort(data,offset)); offset+=2; }\n\n\t\tvar instructionLength = bin.readUshort(data,offset); offset+=2;\n\t\tif((data.length-offset)<instructionLength) return null;\n\t\tgl.instructions = bin.readBytes(data, offset, instructionLength);   offset+=instructionLength;\n\n\t\tvar crdnum = gl.endPts[gl.noc-1]+1;\n\t\tgl.flags = [];\n\t\tfor(var i=0; i<crdnum; i++ )\n\t\t{\n\t\t\tvar flag = data[offset];  offset++;\n\t\t\tgl.flags.push(flag);\n\t\t\tif((flag&8)!=0)\n\t\t\t{\n\t\t\t\tvar rep = data[offset];  offset++;\n\t\t\t\tfor(var j=0; j<rep; j++) { gl.flags.push(flag); i++; }\n\t\t\t}\n\t\t}\n\t\tgl.xs = [];\n\t\tfor(var i=0; i<crdnum; i++) {\n\t\t\tvar i8=((gl.flags[i]&2)!=0), same=((gl.flags[i]&16)!=0);\n\t\t\tif(i8) { gl.xs.push(same ? data[offset] : -data[offset]);  offset++; }\n\t\t\telse\n\t\t\t{\n\t\t\t\tif(same) gl.xs.push(0);\n\t\t\t\telse { gl.xs.push(bin.readShort(data, offset));  offset+=2; }\n\t\t\t}\n\t\t}\n\t\tgl.ys = [];\n\t\tfor(var i=0; i<crdnum; i++) {\n\t\t\tvar i8=((gl.flags[i]&4)!=0), same=((gl.flags[i]&32)!=0);\n\t\t\tif(i8) { gl.ys.push(same ? data[offset] : -data[offset]);  offset++; }\n\t\t\telse\n\t\t\t{\n\t\t\t\tif(same) gl.ys.push(0);\n\t\t\t\telse { gl.ys.push(bin.readShort(data, offset));  offset+=2; }\n\t\t\t}\n\t\t}\n\t\tvar x = 0, y = 0;\n\t\tfor(var i=0; i<crdnum; i++) { x += gl.xs[i]; y += gl.ys[i];  gl.xs[i]=x;  gl.ys[i]=y; }\n\t\t//console.log(endPtsOfContours, instructionLength, instructions, flags, xCoordinates, yCoordinates);\n\t}\n\telse\n\t{\n\t\tvar ARG_1_AND_2_ARE_WORDS\t= 1<<0;\n\t\tvar ARGS_ARE_XY_VALUES\t\t= 1<<1;\n\t\tvar WE_HAVE_A_SCALE\t\t\t= 1<<3;\n\t\tvar MORE_COMPONENTS\t\t\t= 1<<5;\n\t\tvar WE_HAVE_AN_X_AND_Y_SCALE= 1<<6;\n\t\tvar WE_HAVE_A_TWO_BY_TWO\t= 1<<7;\n\t\tvar WE_HAVE_INSTRUCTIONS\t= 1<<8;\n\n\t\tgl.parts = [];\n\t\tvar flags;\n\t\tdo {\n\t\t\tflags = bin.readUshort(data, offset);  offset += 2;\n\t\t\tvar part = { m:{a:1,b:0,c:0,d:1,tx:0,ty:0}, p1:-1, p2:-1 };  gl.parts.push(part);\n\t\t\tpart.glyphIndex = bin.readUshort(data, offset);  offset += 2;\n\t\t\tif ( flags & ARG_1_AND_2_ARE_WORDS) {\n\t\t\t\tvar arg1 = bin.readShort(data, offset);  offset += 2;\n\t\t\t\tvar arg2 = bin.readShort(data, offset);  offset += 2;\n\t\t\t} else {\n\t\t\t\tvar arg1 = bin.readInt8(data, offset);  offset ++;\n\t\t\t\tvar arg2 = bin.readInt8(data, offset);  offset ++;\n\t\t\t}\n\n\t\t\tif(flags & ARGS_ARE_XY_VALUES) { part.m.tx = arg1;  part.m.ty = arg2; }\n\t\t\telse  {  part.p1=arg1;  part.p2=arg2;  }\n\t\t\t//part.m.tx = arg1;  part.m.ty = arg2;\n\t\t\t//else { throw \"params are not XY values\"; }\n\n\t\t\tif ( flags & WE_HAVE_A_SCALE ) {\n\t\t\t\tpart.m.a = part.m.d = bin.readF2dot14(data, offset);  offset += 2;\n\t\t\t} else if ( flags & WE_HAVE_AN_X_AND_Y_SCALE ) {\n\t\t\t\tpart.m.a = bin.readF2dot14(data, offset);  offset += 2;\n\t\t\t\tpart.m.d = bin.readF2dot14(data, offset);  offset += 2;\n\t\t\t} else if ( flags & WE_HAVE_A_TWO_BY_TWO ) {\n\t\t\t\tpart.m.a = bin.readF2dot14(data, offset);  offset += 2;\n\t\t\t\tpart.m.b = bin.readF2dot14(data, offset);  offset += 2;\n\t\t\t\tpart.m.c = bin.readF2dot14(data, offset);  offset += 2;\n\t\t\t\tpart.m.d = bin.readF2dot14(data, offset);  offset += 2;\n\t\t\t}\n\t\t} while ( flags & MORE_COMPONENTS )\n\t\tif (flags & WE_HAVE_INSTRUCTIONS){\n\t\t\tvar numInstr = bin.readUshort(data, offset);  offset += 2;\n\t\t\tgl.instr = [];\n\t\t\tfor(var i=0; i<numInstr; i++) { gl.instr.push(data[offset]);  offset++; }\n\t\t}\n\t}\n\treturn gl;\n};\n\n\nTypr.GPOS = {};\nTypr.GPOS.parse = function(data, offset, length, font) {  return Typr._lctf.parse(data, offset, length, font, Typr.GPOS.subt);  };\n\n\nTypr.GPOS.subt = function(data, ltype, offset)\t// lookup type\n{\n\tvar bin = Typr._bin, offset0 = offset, tab = {};\n\n\ttab.fmt  = bin.readUshort(data, offset);  offset+=2;\n\n\t//console.log(ltype, tab.fmt);\n\n\tif(ltype==1 || ltype==2 || ltype==3 || ltype==7 || (ltype==8 && tab.fmt<=2)) {\n\t\tvar covOff  = bin.readUshort(data, offset);  offset+=2;\n\t\ttab.coverage = Typr._lctf.readCoverage(data, covOff+offset0);\n\t}\n\tif(ltype==1 && tab.fmt==1) {\n\t\tvar valFmt1 = bin.readUshort(data, offset);  offset+=2;\n\t\tvar ones1 = Typr._lctf.numOfOnes(valFmt1);\n\t\tif(valFmt1!=0)  tab.pos = Typr.GPOS.readValueRecord(data, offset, valFmt1);\n\t}\n\telse if(ltype==2) {\n\t\tvar valFmt1 = bin.readUshort(data, offset);  offset+=2;\n\t\tvar valFmt2 = bin.readUshort(data, offset);  offset+=2;\n\t\tvar ones1 = Typr._lctf.numOfOnes(valFmt1);\n\t\tvar ones2 = Typr._lctf.numOfOnes(valFmt2);\n\t\tif(tab.fmt==1)\n\t\t{\n\t\t\ttab.pairsets = [];\n\t\t\tvar psc = bin.readUshort(data, offset);  offset+=2;  // PairSetCount\n\n\t\t\tfor(var i=0; i<psc; i++)\n\t\t\t{\n\t\t\t\tvar psoff = offset0 + bin.readUshort(data, offset);  offset+=2;\n\n\t\t\t\tvar pvc = bin.readUshort(data, psoff);  psoff+=2;\n\t\t\t\tvar arr = [];\n\t\t\t\tfor(var j=0; j<pvc; j++)\n\t\t\t\t{\n\t\t\t\t\tvar gid2 = bin.readUshort(data, psoff);  psoff+=2;\n\t\t\t\t\tvar value1, value2;\n\t\t\t\t\tif(valFmt1!=0) {  value1 = Typr.GPOS.readValueRecord(data, psoff, valFmt1);  psoff+=ones1*2;  }\n\t\t\t\t\tif(valFmt2!=0) {  value2 = Typr.GPOS.readValueRecord(data, psoff, valFmt2);  psoff+=ones2*2;  }\n\t\t\t\t\t//if(value1!=null) throw \"e\";\n\t\t\t\t\tarr.push({gid2:gid2, val1:value1, val2:value2});\n\t\t\t\t}\n\t\t\t\ttab.pairsets.push(arr);\n\t\t\t}\n\t\t}\n\t\tif(tab.fmt==2)\n\t\t{\n\t\t\tvar classDef1 = bin.readUshort(data, offset);  offset+=2;\n\t\t\tvar classDef2 = bin.readUshort(data, offset);  offset+=2;\n\t\t\tvar class1Count = bin.readUshort(data, offset);  offset+=2;\n\t\t\tvar class2Count = bin.readUshort(data, offset);  offset+=2;\n\n\t\t\ttab.classDef1 = Typr._lctf.readClassDef(data, offset0 + classDef1);\n\t\t\ttab.classDef2 = Typr._lctf.readClassDef(data, offset0 + classDef2);\n\n\t\t\ttab.matrix = [];\n\t\t\tfor(var i=0; i<class1Count; i++)\n\t\t\t{\n\t\t\t\tvar row = [];\n\t\t\t\tfor(var j=0; j<class2Count; j++)\n\t\t\t\t{\n\t\t\t\t\tvar value1 = null, value2 = null;\n\t\t\t\t\tif(tab.valFmt1!=0) { value1 = Typr.GPOS.readValueRecord(data, offset, tab.valFmt1);  offset+=ones1*2; }\n\t\t\t\t\tif(tab.valFmt2!=0) { value2 = Typr.GPOS.readValueRecord(data, offset, tab.valFmt2);  offset+=ones2*2; }\n\t\t\t\t\trow.push({val1:value1, val2:value2});\n\t\t\t\t}\n\t\t\t\ttab.matrix.push(row);\n\t\t\t}\n\t\t}\n\t}\n\treturn tab;\n};\n\n\nTypr.GPOS.readValueRecord = function(data, offset, valFmt)\n{\n\tvar bin = Typr._bin;\n\tvar arr = [];\n\tarr.push( (valFmt&1) ? bin.readShort(data, offset) : 0 );  offset += (valFmt&1) ? 2 : 0;  // X_PLACEMENT\n\tarr.push( (valFmt&2) ? bin.readShort(data, offset) : 0 );  offset += (valFmt&2) ? 2 : 0;  // Y_PLACEMENT\n\tarr.push( (valFmt&4) ? bin.readShort(data, offset) : 0 );  offset += (valFmt&4) ? 2 : 0;  // X_ADVANCE\n\tarr.push( (valFmt&8) ? bin.readShort(data, offset) : 0 );  offset += (valFmt&8) ? 2 : 0;  // Y_ADVANCE\n\treturn arr;\n};\n\nTypr.GSUB = {};\nTypr.GSUB.parse = function(data, offset, length, font) {  return Typr._lctf.parse(data, offset, length, font, Typr.GSUB.subt);  };\n\n\nTypr.GSUB.subt = function(data, ltype, offset)\t// lookup type\n{\n\tvar bin = Typr._bin, offset0 = offset, tab = {};\n\n\ttab.fmt  = bin.readUshort(data, offset);  offset+=2;\n\n\tif(ltype!=1 && ltype!=4 && ltype!=5 && ltype!=6) return null;\n\n\tif(ltype==1 || ltype==4 || (ltype==5 && tab.fmt<=2) || (ltype==6 && tab.fmt<=2)) {\n\t\tvar covOff  = bin.readUshort(data, offset);  offset+=2;\n\t\ttab.coverage = Typr._lctf.readCoverage(data, offset0+covOff);\t// not always is coverage here\n\t}\n\n\tif(ltype==1) {\n\t\tif(tab.fmt==1) {\n\t\t\ttab.delta = bin.readShort(data, offset);  offset+=2;\n\t\t}\n\t\telse if(tab.fmt==2) {\n\t\t\tvar cnt = bin.readUshort(data, offset);  offset+=2;\n\t\t\ttab.newg = bin.readUshorts(data, offset, cnt);  offset+=tab.newg.length*2;\n\t\t}\n\t}\n\t//  Ligature Substitution Subtable\n\telse if(ltype==4) {\n\t\ttab.vals = [];\n\t\tvar cnt = bin.readUshort(data, offset);  offset+=2;\n\t\tfor(var i=0; i<cnt; i++) {\n\t\t\tvar loff = bin.readUshort(data, offset);  offset+=2;\n\t\t\ttab.vals.push(Typr.GSUB.readLigatureSet(data, offset0+loff));\n\t\t}\n\t\t//console.log(tab.coverage);\n\t\t//console.log(tab.vals);\n\t}\n\t//  Contextual Substitution Subtable\n\telse if(ltype==5) {\n\t\tif(tab.fmt==2) {\n\t\t\tvar cDefOffset = bin.readUshort(data, offset);  offset+=2;\n\t\t\ttab.cDef = Typr._lctf.readClassDef(data, offset0 + cDefOffset);\n\t\t\ttab.scset = [];\n\t\t\tvar subClassSetCount = bin.readUshort(data, offset);  offset+=2;\n\t\t\tfor(var i=0; i<subClassSetCount; i++)\n\t\t\t{\n\t\t\t\tvar scsOff = bin.readUshort(data, offset);  offset+=2;\n\t\t\t\ttab.scset.push(  scsOff==0 ? null : Typr.GSUB.readSubClassSet(data, offset0 + scsOff)  );\n\t\t\t}\n\t\t}\n\t\t//else console.log(\"unknown table format\", tab.fmt);\n\t}\n\t//*\n\telse if(ltype==6) {\n\t\t/*\n\t\tif(tab.fmt==2) {\n\t\t\tvar btDef = bin.readUshort(data, offset);  offset+=2;\n\t\t\tvar inDef = bin.readUshort(data, offset);  offset+=2;\n\t\t\tvar laDef = bin.readUshort(data, offset);  offset+=2;\n\n\t\t\ttab.btDef = Typr._lctf.readClassDef(data, offset0 + btDef);\n\t\t\ttab.inDef = Typr._lctf.readClassDef(data, offset0 + inDef);\n\t\t\ttab.laDef = Typr._lctf.readClassDef(data, offset0 + laDef);\n\n\t\t\ttab.scset = [];\n\t\t\tvar cnt = bin.readUshort(data, offset);  offset+=2;\n\t\t\tfor(var i=0; i<cnt; i++) {\n\t\t\t\tvar loff = bin.readUshort(data, offset);  offset+=2;\n\t\t\t\ttab.scset.push(Typr.GSUB.readChainSubClassSet(data, offset0+loff));\n\t\t\t}\n\t\t}\n\t\t*/\n\t\tif(tab.fmt==3) {\n\t\t\tfor(var i=0; i<3; i++) {\n\t\t\t\tvar cnt = bin.readUshort(data, offset);  offset+=2;\n\t\t\t\tvar cvgs = [];\n\t\t\t\tfor(var j=0; j<cnt; j++) cvgs.push(  Typr._lctf.readCoverage(data, offset0 + bin.readUshort(data, offset+j*2))   );\n\t\t\t\toffset+=cnt*2;\n\t\t\t\tif(i==0) tab.backCvg = cvgs;\n\t\t\t\tif(i==1) tab.inptCvg = cvgs;\n\t\t\t\tif(i==2) tab.ahedCvg = cvgs;\n\t\t\t}\n\t\t\tvar cnt = bin.readUshort(data, offset);  offset+=2;\n\t\t\ttab.lookupRec = Typr.GSUB.readSubstLookupRecords(data, offset, cnt);\n\t\t}\n\t\t//console.log(tab);\n\t} //*/\n\t//if(tab.coverage.indexOf(3)!=-1) console.log(ltype, fmt, tab);\n\n\treturn tab;\n};\n\nTypr.GSUB.readSubClassSet = function(data, offset)\n{\n\tvar rUs = Typr._bin.readUshort, offset0 = offset, lset = [];\n\tvar cnt = rUs(data, offset);  offset+=2;\n\tfor(var i=0; i<cnt; i++) {\n\t\tvar loff = rUs(data, offset);  offset+=2;\n\t\tlset.push(Typr.GSUB.readSubClassRule(data, offset0+loff));\n\t}\n\treturn lset;\n};\nTypr.GSUB.readSubClassRule= function(data, offset)\n{\n\tvar rUs = Typr._bin.readUshort, rule = {};\n\tvar gcount = rUs(data, offset);  offset+=2;\n\tvar scount = rUs(data, offset);  offset+=2;\n\trule.input = [];\n\tfor(var i=0; i<gcount-1; i++) {\n\t\trule.input.push(rUs(data, offset));  offset+=2;\n\t}\n\trule.substLookupRecords = Typr.GSUB.readSubstLookupRecords(data, offset, scount);\n\treturn rule;\n};\nTypr.GSUB.readSubstLookupRecords = function(data, offset, cnt)\n{\n\tvar rUs = Typr._bin.readUshort;\n\tvar out = [];\n\tfor(var i=0; i<cnt; i++) {  out.push(rUs(data, offset), rUs(data, offset+2));  offset+=4;  }\n\treturn out;\n};\n\nTypr.GSUB.readChainSubClassSet = function(data, offset)\n{\n\tvar bin = Typr._bin, offset0 = offset, lset = [];\n\tvar cnt = bin.readUshort(data, offset);  offset+=2;\n\tfor(var i=0; i<cnt; i++) {\n\t\tvar loff = bin.readUshort(data, offset);  offset+=2;\n\t\tlset.push(Typr.GSUB.readChainSubClassRule(data, offset0+loff));\n\t}\n\treturn lset;\n};\nTypr.GSUB.readChainSubClassRule= function(data, offset)\n{\n\tvar bin = Typr._bin, rule = {};\n\tvar pps = [\"backtrack\", \"input\", \"lookahead\"];\n\tfor(var pi=0; pi<pps.length; pi++) {\n\t\tvar cnt = bin.readUshort(data, offset);  offset+=2;  if(pi==1) cnt--;\n\t\trule[pps[pi]]=bin.readUshorts(data, offset, cnt);  offset+= rule[pps[pi]].length*2;\n\t}\n\tvar cnt = bin.readUshort(data, offset);  offset+=2;\n\trule.subst = bin.readUshorts(data, offset, cnt*2);  offset += rule.subst.length*2;\n\treturn rule;\n};\n\nTypr.GSUB.readLigatureSet = function(data, offset)\n{\n\tvar bin = Typr._bin, offset0 = offset, lset = [];\n\tvar lcnt = bin.readUshort(data, offset);  offset+=2;\n\tfor(var j=0; j<lcnt; j++) {\n\t\tvar loff = bin.readUshort(data, offset);  offset+=2;\n\t\tlset.push(Typr.GSUB.readLigature(data, offset0+loff));\n\t}\n\treturn lset;\n};\nTypr.GSUB.readLigature = function(data, offset)\n{\n\tvar bin = Typr._bin, lig = {chain:[]};\n\tlig.nglyph = bin.readUshort(data, offset);  offset+=2;\n\tvar ccnt = bin.readUshort(data, offset);  offset+=2;\n\tfor(var k=0; k<ccnt-1; k++) {  lig.chain.push(bin.readUshort(data, offset));  offset+=2;  }\n\treturn lig;\n};\n\n\n\nTypr.head = {};\nTypr.head.parse = function(data, offset, length)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\tvar tableVersion = bin.readFixed(data, offset);  offset += 4;\n\tobj.fontRevision = bin.readFixed(data, offset);  offset += 4;\n\tvar checkSumAdjustment = bin.readUint(data, offset);  offset += 4;\n\tvar magicNumber = bin.readUint(data, offset);  offset += 4;\n\tobj.flags = bin.readUshort(data, offset);  offset += 2;\n\tobj.unitsPerEm = bin.readUshort(data, offset);  offset += 2;\n\tobj.created  = bin.readUint64(data, offset);  offset += 8;\n\tobj.modified = bin.readUint64(data, offset);  offset += 8;\n\tobj.xMin = bin.readShort(data, offset);  offset += 2;\n\tobj.yMin = bin.readShort(data, offset);  offset += 2;\n\tobj.xMax = bin.readShort(data, offset);  offset += 2;\n\tobj.yMax = bin.readShort(data, offset);  offset += 2;\n\tobj.macStyle = bin.readUshort(data, offset);  offset += 2;\n\tobj.lowestRecPPEM = bin.readUshort(data, offset);  offset += 2;\n\tobj.fontDirectionHint = bin.readShort(data, offset);  offset += 2;\n\tobj.indexToLocFormat  = bin.readShort(data, offset);  offset += 2;\n\tobj.glyphDataFormat   = bin.readShort(data, offset);  offset += 2;\n\treturn obj;\n};\n\n\nTypr.hhea = {};\nTypr.hhea.parse = function(data, offset, length)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\tvar tableVersion = bin.readFixed(data, offset);  offset += 4;\n\tobj.ascender  = bin.readShort(data, offset);  offset += 2;\n\tobj.descender = bin.readShort(data, offset);  offset += 2;\n\tobj.lineGap = bin.readShort(data, offset);  offset += 2;\n\n\tobj.advanceWidthMax = bin.readUshort(data, offset);  offset += 2;\n\tobj.minLeftSideBearing  = bin.readShort(data, offset);  offset += 2;\n\tobj.minRightSideBearing = bin.readShort(data, offset);  offset += 2;\n\tobj.xMaxExtent = bin.readShort(data, offset);  offset += 2;\n\n\tobj.caretSlopeRise = bin.readShort(data, offset);  offset += 2;\n\tobj.caretSlopeRun  = bin.readShort(data, offset);  offset += 2;\n\tobj.caretOffset    = bin.readShort(data, offset);  offset += 2;\n\n\toffset += 4*2;\n\n\tobj.metricDataFormat = bin.readShort (data, offset);  offset += 2;\n\tobj.numberOfHMetrics = bin.readUshort(data, offset);  offset += 2;\n\treturn obj;\n};\n\n\nTypr.hmtx = {};\nTypr.hmtx.parse = function(data, offset, length, font)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\n\tobj.aWidth = [];\n\tobj.lsBearing = [];\n\n\n\tvar aw = 0, lsb = 0;\n\n\tfor(var i=0; i<font.maxp.numGlyphs; i++)\n\t{\n\t\tif(i<font.hhea.numberOfHMetrics) {  aw=bin.readUshort(data, offset);  offset += 2;  lsb=bin.readShort(data, offset);  offset+=2;  }\n\t\tobj.aWidth.push(aw);\n\t\tobj.lsBearing.push(lsb);\n\t}\n\n\treturn obj;\n};\n\n\nTypr.kern = {};\nTypr.kern.parse = function(data, offset, length, font)\n{\n\tvar bin = Typr._bin;\n\n\tvar version = bin.readUshort(data, offset);  offset+=2;\n\tif(version==1) return Typr.kern.parseV1(data, offset-2, length, font);\n\tvar nTables = bin.readUshort(data, offset);  offset+=2;\n\n\tvar map = {glyph1: [], rval:[]};\n\tfor(var i=0; i<nTables; i++)\n\t{\n\t\toffset+=2;\t// skip version\n\t\tvar length  = bin.readUshort(data, offset);  offset+=2;\n\t\tvar coverage = bin.readUshort(data, offset);  offset+=2;\n\t\tvar format = coverage>>>8;\n\t\t/* I have seen format 128 once, that's why I do */ format &= 0xf;\n\t\tif(format==0) offset = Typr.kern.readFormat0(data, offset, map);\n\t\telse throw \"unknown kern table format: \"+format;\n\t}\n\treturn map;\n};\n\nTypr.kern.parseV1 = function(data, offset, length, font)\n{\n\tvar bin = Typr._bin;\n\n\tvar version = bin.readFixed(data, offset);  offset+=4;\n\tvar nTables = bin.readUint(data, offset);  offset+=4;\n\n\tvar map = {glyph1: [], rval:[]};\n\tfor(var i=0; i<nTables; i++)\n\t{\n\t\tvar length = bin.readUint(data, offset);   offset+=4;\n\t\tvar coverage = bin.readUshort(data, offset);  offset+=2;\n\t\tvar tupleIndex = bin.readUshort(data, offset);  offset+=2;\n\t\tvar format = coverage>>>8;\n\t\t/* I have seen format 128 once, that's why I do */ format &= 0xf;\n\t\tif(format==0) offset = Typr.kern.readFormat0(data, offset, map);\n\t\telse throw \"unknown kern table format: \"+format;\n\t}\n\treturn map;\n};\n\nTypr.kern.readFormat0 = function(data, offset, map)\n{\n\tvar bin = Typr._bin;\n\tvar pleft = -1;\n\tvar nPairs        = bin.readUshort(data, offset);  offset+=2;\n\tvar searchRange   = bin.readUshort(data, offset);  offset+=2;\n\tvar entrySelector = bin.readUshort(data, offset);  offset+=2;\n\tvar rangeShift    = bin.readUshort(data, offset);  offset+=2;\n\tfor(var j=0; j<nPairs; j++)\n\t{\n\t\tvar left  = bin.readUshort(data, offset);  offset+=2;\n\t\tvar right = bin.readUshort(data, offset);  offset+=2;\n\t\tvar value = bin.readShort (data, offset);  offset+=2;\n\t\tif(left!=pleft) { map.glyph1.push(left);  map.rval.push({ glyph2:[], vals:[] }); }\n\t\tvar rval = map.rval[map.rval.length-1];\n\t\trval.glyph2.push(right);   rval.vals.push(value);\n\t\tpleft = left;\n\t}\n\treturn offset;\n};\n\n\n\nTypr.loca = {};\nTypr.loca.parse = function(data, offset, length, font)\n{\n\tvar bin = Typr._bin;\n\tvar obj = [];\n\n\tvar ver = font.head.indexToLocFormat;\n\t//console.log(\"loca\", ver, length, 4*font.maxp.numGlyphs);\n\tvar len = font.maxp.numGlyphs+1;\n\n\tif(ver==0) for(var i=0; i<len; i++) obj.push(bin.readUshort(data, offset+(i<<1))<<1);\n\tif(ver==1) for(var i=0; i<len; i++) obj.push(bin.readUint  (data, offset+(i<<2))   );\n\n\treturn obj;\n};\n\n\nTypr.maxp = {};\nTypr.maxp.parse = function(data, offset, length)\n{\n\t//console.log(data.length, offset, length);\n\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\n\t// both versions 0.5 and 1.0\n\tvar ver = bin.readUint(data, offset); offset += 4;\n\tobj.numGlyphs = bin.readUshort(data, offset);  offset += 2;\n\n\t// only 1.0\n\tif(ver == 0x00010000)\n\t{\n\t\tobj.maxPoints             = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxContours           = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxCompositePoints    = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxCompositeContours  = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxZones              = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxTwilightPoints     = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxStorage            = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxFunctionDefs       = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxInstructionDefs    = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxStackElements      = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxSizeOfInstructions = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxComponentElements  = bin.readUshort(data, offset);  offset += 2;\n\t\tobj.maxComponentDepth     = bin.readUshort(data, offset);  offset += 2;\n\t}\n\n\treturn obj;\n};\n\n\nTypr.name = {};\nTypr.name.parse = function(data, offset, length)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\tvar format = bin.readUshort(data, offset);  offset += 2;\n\tvar count  = bin.readUshort(data, offset);  offset += 2;\n\tvar stringOffset = bin.readUshort(data, offset);  offset += 2;\n\n\t//console.log(format,count);\n\n\tvar names = [\n\t\t\"copyright\",\n\t\t\"fontFamily\",\n\t\t\"fontSubfamily\",\n\t\t\"ID\",\n\t\t\"fullName\",\n\t\t\"version\",\n\t\t\"postScriptName\",\n\t\t\"trademark\",\n\t\t\"manufacturer\",\n\t\t\"designer\",\n\t\t\"description\",\n\t\t\"urlVendor\",\n\t\t\"urlDesigner\",\n\t\t\"licence\",\n\t\t\"licenceURL\",\n\t\t\"---\",\n\t\t\"typoFamilyName\",\n\t\t\"typoSubfamilyName\",\n\t\t\"compatibleFull\",\n\t\t\"sampleText\",\n\t\t\"postScriptCID\",\n\t\t\"wwsFamilyName\",\n\t\t\"wwsSubfamilyName\",\n\t\t\"lightPalette\",\n\t\t\"darkPalette\"\n\t];\n\n\tvar offset0 = offset;\n\n\tfor(var i=0; i<count; i++)\n\t{\n\t\tvar platformID = bin.readUshort(data, offset);  offset += 2;\n\t\tvar encodingID = bin.readUshort(data, offset);  offset += 2;\n\t\tvar languageID = bin.readUshort(data, offset);  offset += 2;\n\t\tvar nameID     = bin.readUshort(data, offset);  offset += 2;\n\t\tvar slen       = bin.readUshort(data, offset);  offset += 2;\n\t\tvar noffset    = bin.readUshort(data, offset);  offset += 2;\n\t\t//console.log(platformID, encodingID, languageID.toString(16), nameID, length, noffset);\n\n\t\tvar cname = names[nameID];\n\t\tvar soff = offset0 + count*12 + noffset;\n\t\tvar str;\n\t\tif(platformID == 0) str = bin.readUnicode(data, soff, slen/2);\n\t\telse if(platformID == 3 && encodingID == 0) str = bin.readUnicode(data, soff, slen/2);\n\t\telse if(encodingID == 0) str = bin.readASCII  (data, soff, slen);\n\t\telse if(encodingID == 1) str = bin.readUnicode(data, soff, slen/2);\n\t\telse if(encodingID == 3) str = bin.readUnicode(data, soff, slen/2);\n\n\t\telse if(platformID == 1) { str = bin.readASCII(data, soff, slen);  console.log(\"reading unknown MAC encoding \"+encodingID+\" as ASCII\"); }\n\t\telse throw \"unknown encoding \"+encodingID + \", platformID: \"+platformID;\n\n\t\tvar tid = \"p\"+platformID+\",\"+(languageID).toString(16);//Typr._platforms[platformID];\n\t\tif(obj[tid]==null) obj[tid] = {};\n\t\tobj[tid][cname] = str;\n\t\tobj[tid]._lang = languageID;\n\t\t//console.log(tid, obj[tid]);\n\t}\n\t/*\n\tif(format == 1)\n\t{\n\t\tvar langTagCount = bin.readUshort(data, offset);  offset += 2;\n\t\tfor(var i=0; i<langTagCount; i++)\n\t\t{\n\t\t\tvar length  = bin.readUshort(data, offset);  offset += 2;\n\t\t\tvar noffset = bin.readUshort(data, offset);  offset += 2;\n\t\t}\n\t}\n\t*/\n\n\t//console.log(obj);\n\n\tfor(var p in obj) if(obj[p].postScriptName!=null && obj[p]._lang==0x0409) return obj[p];\t\t// United States\n\tfor(var p in obj) if(obj[p].postScriptName!=null && obj[p]._lang==0x0000) return obj[p];\t\t// Universal\n\tfor(var p in obj) if(obj[p].postScriptName!=null && obj[p]._lang==0x0c0c) return obj[p];\t\t// Canada\n\tfor(var p in obj) if(obj[p].postScriptName!=null) return obj[p];\n\n\tvar tname;\n\tfor(var p in obj) { tname=p; break; }\n\tconsole.log(\"returning name table with languageID \"+ obj[tname]._lang);\n\treturn obj[tname];\n};\n\n\nTypr[\"OS/2\"] = {};\nTypr[\"OS/2\"].parse = function(data, offset, length)\n{\n\tvar bin = Typr._bin;\n\tvar ver = bin.readUshort(data, offset); offset += 2;\n\n\tvar obj = {};\n\tif     (ver==0) Typr[\"OS/2\"].version0(data, offset, obj);\n\telse if(ver==1) Typr[\"OS/2\"].version1(data, offset, obj);\n\telse if(ver==2 || ver==3 || ver==4) Typr[\"OS/2\"].version2(data, offset, obj);\n\telse if(ver==5) Typr[\"OS/2\"].version5(data, offset, obj);\n\telse throw \"unknown OS/2 table version: \"+ver;\n\n\treturn obj;\n};\n\nTypr[\"OS/2\"].version0 = function(data, offset, obj)\n{\n\tvar bin = Typr._bin;\n\tobj.xAvgCharWidth = bin.readShort(data, offset); offset += 2;\n\tobj.usWeightClass = bin.readUshort(data, offset); offset += 2;\n\tobj.usWidthClass  = bin.readUshort(data, offset); offset += 2;\n\tobj.fsType = bin.readUshort(data, offset); offset += 2;\n\tobj.ySubscriptXSize = bin.readShort(data, offset); offset += 2;\n\tobj.ySubscriptYSize = bin.readShort(data, offset); offset += 2;\n\tobj.ySubscriptXOffset = bin.readShort(data, offset); offset += 2;\n\tobj.ySubscriptYOffset = bin.readShort(data, offset); offset += 2;\n\tobj.ySuperscriptXSize = bin.readShort(data, offset); offset += 2;\n\tobj.ySuperscriptYSize = bin.readShort(data, offset); offset += 2;\n\tobj.ySuperscriptXOffset = bin.readShort(data, offset); offset += 2;\n\tobj.ySuperscriptYOffset = bin.readShort(data, offset); offset += 2;\n\tobj.yStrikeoutSize = bin.readShort(data, offset); offset += 2;\n\tobj.yStrikeoutPosition = bin.readShort(data, offset); offset += 2;\n\tobj.sFamilyClass = bin.readShort(data, offset); offset += 2;\n\tobj.panose = bin.readBytes(data, offset, 10);  offset += 10;\n\tobj.ulUnicodeRange1\t= bin.readUint(data, offset);  offset += 4;\n\tobj.ulUnicodeRange2\t= bin.readUint(data, offset);  offset += 4;\n\tobj.ulUnicodeRange3\t= bin.readUint(data, offset);  offset += 4;\n\tobj.ulUnicodeRange4\t= bin.readUint(data, offset);  offset += 4;\n\tobj.achVendID = [bin.readInt8(data, offset), bin.readInt8(data, offset+1),bin.readInt8(data, offset+2),bin.readInt8(data, offset+3)];  offset += 4;\n\tobj.fsSelection\t = bin.readUshort(data, offset); offset += 2;\n\tobj.usFirstCharIndex = bin.readUshort(data, offset); offset += 2;\n\tobj.usLastCharIndex = bin.readUshort(data, offset); offset += 2;\n\tobj.sTypoAscender = bin.readShort(data, offset); offset += 2;\n\tobj.sTypoDescender = bin.readShort(data, offset); offset += 2;\n\tobj.sTypoLineGap = bin.readShort(data, offset); offset += 2;\n\tobj.usWinAscent = bin.readUshort(data, offset); offset += 2;\n\tobj.usWinDescent = bin.readUshort(data, offset); offset += 2;\n\treturn offset;\n};\n\nTypr[\"OS/2\"].version1 = function(data, offset, obj)\n{\n\tvar bin = Typr._bin;\n\toffset = Typr[\"OS/2\"].version0(data, offset, obj);\n\n\tobj.ulCodePageRange1 = bin.readUint(data, offset); offset += 4;\n\tobj.ulCodePageRange2 = bin.readUint(data, offset); offset += 4;\n\treturn offset;\n};\n\nTypr[\"OS/2\"].version2 = function(data, offset, obj)\n{\n\tvar bin = Typr._bin;\n\toffset = Typr[\"OS/2\"].version1(data, offset, obj);\n\n\tobj.sxHeight = bin.readShort(data, offset); offset += 2;\n\tobj.sCapHeight = bin.readShort(data, offset); offset += 2;\n\tobj.usDefault = bin.readUshort(data, offset); offset += 2;\n\tobj.usBreak = bin.readUshort(data, offset); offset += 2;\n\tobj.usMaxContext = bin.readUshort(data, offset); offset += 2;\n\treturn offset;\n};\n\nTypr[\"OS/2\"].version5 = function(data, offset, obj)\n{\n\tvar bin = Typr._bin;\n\toffset = Typr[\"OS/2\"].version2(data, offset, obj);\n\n\tobj.usLowerOpticalPointSize = bin.readUshort(data, offset); offset += 2;\n\tobj.usUpperOpticalPointSize = bin.readUshort(data, offset); offset += 2;\n\treturn offset;\n};\n\nTypr.post = {};\nTypr.post.parse = function(data, offset, length)\n{\n\tvar bin = Typr._bin;\n\tvar obj = {};\n\n\tobj.version           = bin.readFixed(data, offset);  offset+=4;\n\tobj.italicAngle       = bin.readFixed(data, offset);  offset+=4;\n\tobj.underlinePosition = bin.readShort(data, offset);  offset+=2;\n\tobj.underlineThickness = bin.readShort(data, offset);  offset+=2;\n\n\treturn obj;\n};\nTypr.SVG = {};\nTypr.SVG.parse = function(data, offset, length)\n{\n\tvar bin = Typr._bin;\n\tvar obj = { entries: []};\n\n\tvar offset0 = offset;\n\n\tvar tableVersion = bin.readUshort(data, offset);\toffset += 2;\n\tvar svgDocIndexOffset = bin.readUint(data, offset);\toffset += 4;\n\tvar reserved = bin.readUint(data, offset); offset += 4;\n\n\toffset = svgDocIndexOffset + offset0;\n\n\tvar numEntries = bin.readUshort(data, offset);\toffset += 2;\n\n\tfor(var i=0; i<numEntries; i++)\n\t{\n\t\tvar startGlyphID = bin.readUshort(data, offset);  offset += 2;\n\t\tvar endGlyphID   = bin.readUshort(data, offset);  offset += 2;\n\t\tvar svgDocOffset = bin.readUint  (data, offset);  offset += 4;\n\t\tvar svgDocLength = bin.readUint  (data, offset);  offset += 4;\n\n\t\tvar sbuf = new Uint8Array(data.buffer, offset0 + svgDocOffset + svgDocIndexOffset, svgDocLength);\n\t\tvar svg = bin.readUTF8(sbuf, 0, sbuf.length);\n\n\t\tfor(var f=startGlyphID; f<=endGlyphID; f++) {\n\t\t\tobj.entries[f] = svg;\n\t\t}\n\t}\n\treturn obj;\n};\n\nTypr.SVG.toPath = function(str)\n{\n\tvar pth = {cmds:[], crds:[]};\n\tif(str==null) return pth;\n\n\tvar prsr = new DOMParser();\n\tvar doc = prsr[\"parseFromString\"](str,\"image/svg+xml\");\n\n\tvar svg = doc.firstChild;  while(svg.tagName!=\"svg\") svg = svg.nextSibling;\n\tvar vb = svg.getAttribute(\"viewBox\");\n\tif(vb) vb = vb.trim().split(\" \").map(parseFloat);  else   vb = [0,0,1000,1000];\n\tTypr.SVG._toPath(svg.children, pth);\n\tfor(var i=0; i<pth.crds.length; i+=2) {\n\t\tvar x = pth.crds[i], y = pth.crds[i+1];\n\t\tx -= vb[0];\n\t\ty -= vb[1];\n\t\ty = -y;\n\t\tpth.crds[i] = x;\n\t\tpth.crds[i+1] = y;\n\t}\n\treturn pth;\n};\n\nTypr.SVG._toPath = function(nds, pth, fill) {\n\tfor(var ni=0; ni<nds.length; ni++) {\n\t\tvar nd = nds[ni], tn = nd.tagName;\n\t\tvar cfl = nd.getAttribute(\"fill\");  if(cfl==null) cfl = fill;\n\t\tif(tn==\"g\") Typr.SVG._toPath(nd.children, pth, cfl);\n\t\telse if(tn==\"path\") {\n\t\t\tpth.cmds.push(cfl?cfl:\"#000000\");\n\t\t\tvar d = nd.getAttribute(\"d\");  //console.log(d);\n\t\t\tvar toks = Typr.SVG._tokens(d);  //console.log(toks);\n\t\t\tTypr.SVG._toksToPath(toks, pth);  pth.cmds.push(\"X\");\n\t\t}\n\t\telse if(tn==\"defs\") ;\n\t\telse console.log(tn, nd);\n\t}\n};\n\nTypr.SVG._tokens = function(d) {\n\tvar ts = [], off = 0, rn=false, cn=\"\";  // reading number, current number\n\twhile(off<d.length){\n\t\tvar cc=d.charCodeAt(off), ch = d.charAt(off);  off++;\n\t\tvar isNum = (48<=cc && cc<=57) || ch==\".\" || ch==\"-\";\n\n\t\tif(rn) {\n\t\t\tif(ch==\"-\") {  ts.push(parseFloat(cn));  cn=ch;  }\n\t\t\telse if(isNum) cn+=ch;\n\t\t\telse {  ts.push(parseFloat(cn));  if(ch!=\",\" && ch!=\" \") ts.push(ch);  rn=false;  }\n\t\t}\n\t\telse {\n\t\t\tif(isNum) {  cn=ch;  rn=true;  }\n\t\t\telse if(ch!=\",\" && ch!=\" \") ts.push(ch);\n\t\t}\n\t}\n\tif(rn) ts.push(parseFloat(cn));\n\treturn ts;\n};\n\nTypr.SVG._toksToPath = function(ts, pth) {\n\tvar i = 0, x = 0, y = 0, ox = 0, oy = 0;\n\tvar pc = {\"M\":2,\"L\":2,\"H\":1,\"V\":1,   \"S\":4,   \"C\":6};\n\tvar cmds = pth.cmds, crds = pth.crds;\n\n\twhile(i<ts.length) {\n\t\tvar cmd = ts[i];  i++;\n\n\t\tif(cmd==\"z\") {  cmds.push(\"Z\");  x=ox;  y=oy;  }\n\t\telse {\n\t\t\tvar cmu = cmd.toUpperCase();\n\t\t\tvar ps = pc[cmu], reps = Typr.SVG._reps(ts, i, ps);\n\n\t\t\tfor(var j=0; j<reps; j++) {\n\t\t\t\tvar xi = 0, yi = 0;   if(cmd!=cmu) {  xi=x;  yi=y;  }\n\n\t\t\t\tif(cmu==\"M\") {  x = xi+ts[i++];  y = yi+ts[i++];  cmds.push(\"M\");  crds.push(x,y);  ox=x;  oy=y; }\n\t\t\t\telse if(cmu==\"L\") {  x = xi+ts[i++];  y = yi+ts[i++];  cmds.push(\"L\");  crds.push(x,y);  }\n\t\t\t\telse if(cmu==\"H\") {  x = xi+ts[i++];                   cmds.push(\"L\");  crds.push(x,y);  }\n\t\t\t\telse if(cmu==\"V\") {  y = yi+ts[i++];                   cmds.push(\"L\");  crds.push(x,y);  }\n\t\t\t\telse if(cmu==\"C\") {\n\t\t\t\t\tvar x1=xi+ts[i++], y1=yi+ts[i++], x2=xi+ts[i++], y2=yi+ts[i++], x3=xi+ts[i++], y3=yi+ts[i++];\n\t\t\t\t\tcmds.push(\"C\");  crds.push(x1,y1,x2,y2,x3,y3);  x=x3;  y=y3;\n\t\t\t\t}\n\t\t\t\telse if(cmu==\"S\") {\n\t\t\t\t\tvar co = Math.max(crds.length-4, 0);\n\t\t\t\t\tvar x1 = x+x-crds[co], y1 = y+y-crds[co+1];\n\t\t\t\t\tvar x2=xi+ts[i++], y2=yi+ts[i++], x3=xi+ts[i++], y3=yi+ts[i++];\n\t\t\t\t\tcmds.push(\"C\");  crds.push(x1,y1,x2,y2,x3,y3);  x=x3;  y=y3;\n\t\t\t\t}\n\t\t\t\telse console.log(\"Unknown SVG command \"+cmd);\n\t\t\t}\n\t\t}\n\t}\n};\nTypr.SVG._reps = function(ts, off, ps) {\n\tvar i = off;\n\twhile(i<ts.length) {  if((typeof ts[i]) == \"string\") break;  i+=ps;  }\n\treturn (i-off)/ps;\n};\n// End Typr.js\n\n// Begin Typr.U.js\n\nif(Typr  ==null) Typr   = {};\nif(Typr.U==null) Typr.U = {};\n\n\nTypr.U.codeToGlyph = function(font, code)\n{\n\tvar cmap = font.cmap;\n\n\tvar tind = -1;\n\tif(cmap.p0e4!=null) tind = cmap.p0e4;\n\telse if(cmap.p3e1!=null) tind = cmap.p3e1;\n\telse if(cmap.p1e0!=null) tind = cmap.p1e0;\n\telse if(cmap.p0e3!=null) tind = cmap.p0e3;\n\n\tif(tind==-1) throw \"no familiar platform and encoding!\";\n\n\tvar tab = cmap.tables[tind];\n\n\tif(tab.format==0)\n\t{\n\t\tif(code>=tab.map.length) return 0;\n\t\treturn tab.map[code];\n\t}\n\telse if(tab.format==4)\n\t{\n\t\tvar sind = -1;\n\t\tfor(var i=0; i<tab.endCount.length; i++)   if(code<=tab.endCount[i]){  sind=i;  break;  }\n\t\tif(sind==-1) return 0;\n\t\tif(tab.startCount[sind]>code) return 0;\n\n\t\tvar gli = 0;\n\t\tif(tab.idRangeOffset[sind]!=0) gli = tab.glyphIdArray[(code-tab.startCount[sind]) + (tab.idRangeOffset[sind]>>1) - (tab.idRangeOffset.length-sind)];\n\t\telse                           gli = code + tab.idDelta[sind];\n\t\treturn gli & 0xFFFF;\n\t}\n\telse if(tab.format==12)\n\t{\n\t\tif(code>tab.groups[tab.groups.length-1][1]) return 0;\n\t\tfor(var i=0; i<tab.groups.length; i++)\n\t\t{\n\t\t\tvar grp = tab.groups[i];\n\t\t\tif(grp[0]<=code && code<=grp[1]) return grp[2] + (code-grp[0]);\n\t\t}\n\t\treturn 0;\n\t}\n\telse throw \"unknown cmap table format \"+tab.format;\n};\n\n\nTypr.U.glyphToPath = function(font, gid)\n{\n\tvar path = { cmds:[], crds:[] };\n\tif(font.SVG && font.SVG.entries[gid]) {\n\t\tvar p = font.SVG.entries[gid];  if(p==null) return path;\n\t\tif(typeof p == \"string\") {  p = Typr.SVG.toPath(p);  font.SVG.entries[gid]=p;  }\n\t\treturn p;\n\t}\n\telse if(font.CFF) {\n\t\tvar state = {x:0,y:0,stack:[],nStems:0,haveWidth:false,width: font.CFF.Private ? font.CFF.Private.defaultWidthX : 0,open:false};\n\t\tvar cff=font.CFF, pdct = font.CFF.Private;\n\t\tif(cff.ROS) {\n\t\t\tvar gi = 0;\n\t\t\twhile(cff.FDSelect[gi+2]<=gid) gi+=2;\n\t\t\tpdct = cff.FDArray[cff.FDSelect[gi+1]].Private;\n\t\t}\n\t\tTypr.U._drawCFF(font.CFF.CharStrings[gid], state, cff, pdct, path);\n\t}\n\telse if(font.glyf) {  Typr.U._drawGlyf(gid, font, path);  }\n\treturn path;\n};\n\nTypr.U._drawGlyf = function(gid, font, path)\n{\n\tvar gl = font.glyf[gid];\n\tif(gl==null) gl = font.glyf[gid] = Typr.glyf._parseGlyf(font, gid);\n\tif(gl!=null){\n\t\tif(gl.noc>-1) Typr.U._simpleGlyph(gl, path);\n\t\telse          Typr.U._compoGlyph (gl, font, path);\n\t}\n};\nTypr.U._simpleGlyph = function(gl, p)\n{\n\tfor(var c=0; c<gl.noc; c++)\n\t{\n\t\tvar i0 = (c==0) ? 0 : (gl.endPts[c-1] + 1);\n\t\tvar il = gl.endPts[c];\n\n\t\tfor(var i=i0; i<=il; i++)\n\t\t{\n\t\t\tvar pr = (i==i0)?il:(i-1);\n\t\t\tvar nx = (i==il)?i0:(i+1);\n\t\t\tvar onCurve = gl.flags[i]&1;\n\t\t\tvar prOnCurve = gl.flags[pr]&1;\n\t\t\tvar nxOnCurve = gl.flags[nx]&1;\n\n\t\t\tvar x = gl.xs[i], y = gl.ys[i];\n\n\t\t\tif(i==i0) {\n\t\t\t\tif(onCurve)\n\t\t\t\t{\n\t\t\t\t\tif(prOnCurve) Typr.U.P.moveTo(p, gl.xs[pr], gl.ys[pr]);\n\t\t\t\t\telse          {  Typr.U.P.moveTo(p,x,y);  continue;  /*  will do curveTo at il  */  }\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif(prOnCurve) Typr.U.P.moveTo(p,  gl.xs[pr],       gl.ys[pr]        );\n\t\t\t\t\telse          Typr.U.P.moveTo(p, (gl.xs[pr]+x)/2, (gl.ys[pr]+y)/2   );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(onCurve)\n\t\t\t{\n\t\t\t\tif(prOnCurve) Typr.U.P.lineTo(p,x,y);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif(nxOnCurve) Typr.U.P.qcurveTo(p, x, y, gl.xs[nx], gl.ys[nx]);\n\t\t\t\telse          Typr.U.P.qcurveTo(p, x, y, (x+gl.xs[nx])/2, (y+gl.ys[nx])/2);\n\t\t\t}\n\t\t}\n\t\tTypr.U.P.closePath(p);\n\t}\n};\nTypr.U._compoGlyph = function(gl, font, p)\n{\n\tfor(var j=0; j<gl.parts.length; j++)\n\t{\n\t\tvar path = { cmds:[], crds:[] };\n\t\tvar prt = gl.parts[j];\n\t\tTypr.U._drawGlyf(prt.glyphIndex, font, path);\n\n\t\tvar m = prt.m;\n\t\tfor(var i=0; i<path.crds.length; i+=2)\n\t\t{\n\t\t\tvar x = path.crds[i  ], y = path.crds[i+1];\n\t\t\tp.crds.push(x*m.a + y*m.b + m.tx);\n\t\t\tp.crds.push(x*m.c + y*m.d + m.ty);\n\t\t}\n\t\tfor(var i=0; i<path.cmds.length; i++) p.cmds.push(path.cmds[i]);\n\t}\n};\n\n\nTypr.U._getGlyphClass = function(g, cd)\n{\n\tvar intr = Typr._lctf.getInterval(cd, g);\n\treturn intr==-1 ? 0 : cd[intr+2];\n\t//for(var i=0; i<cd.start.length; i++)\n\t//\tif(cd.start[i]<=g && cd.end[i]>=g) return cd.class[i];\n\t//return 0;\n};\n\nTypr.U.getPairAdjustment = function(font, g1, g2)\n{\n\t//return 0;\n\tif(font.GPOS) {\n\t\tvar gpos = font[\"GPOS\"];\n\t\tvar llist = gpos.lookupList, flist = gpos.featureList;\n\t\tvar tused = [];\n\t\tfor(var i=0; i<flist.length; i++)\n\t\t{\n\t\t\tvar fl = flist[i];  //console.log(fl);\n\t\t\tif(fl.tag!=\"kern\") continue;\n\t\t\tfor(var ti=0; ti<fl.tab.length; ti++) {\n\t\t\t\tif(tused[fl.tab[ti]]) continue;  tused[fl.tab[ti]] = true;\n\t\t\t\tvar tab = llist[fl.tab[ti]];\n\t\t\t\t//console.log(tab);\n\n\t\t\t\tfor(var j=0; j<tab.tabs.length; j++)\n\t\t\t\t{\n\t\t\t\t\tif(tab.tabs[i]==null) continue;\n\t\t\t\t\tvar ltab = tab.tabs[j], ind;\n\t\t\t\t\tif(ltab.coverage) {  ind = Typr._lctf.coverageIndex(ltab.coverage, g1);  if(ind==-1) continue;  }\n\n\t\t\t\t\tif(tab.ltype==1) ;\n\t\t\t\t\telse if(tab.ltype==2)\n\t\t\t\t\t{\n\t\t\t\t\t\tvar adj;\n\t\t\t\t\t\tif(ltab.fmt==1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar right = ltab.pairsets[ind];\n\t\t\t\t\t\t\tfor(var i=0; i<right.length; i++) if(right[i].gid2==g2) adj = right[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if(ltab.fmt==2)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar c1 = Typr.U._getGlyphClass(g1, ltab.classDef1);\n\t\t\t\t\t\t\tvar c2 = Typr.U._getGlyphClass(g2, ltab.classDef2);\n\t\t\t\t\t\t\tadj = ltab.matrix[c1][c2];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if(adj) console.log(ltab, adj);\n\t\t\t\t\t\tif(adj && adj.val2) return adj.val2[2];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif(font.kern)\n\t{\n\t\tvar ind1 = font.kern.glyph1.indexOf(g1);\n\t\tif(ind1!=-1)\n\t\t{\n\t\t\tvar ind2 = font.kern.rval[ind1].glyph2.indexOf(g2);\n\t\t\tif(ind2!=-1) return font.kern.rval[ind1].vals[ind2];\n\t\t}\n\t}\n\n\treturn 0;\n};\n\nTypr.U.stringToGlyphs = function(font, str)\n{\n\tvar gls = [];\n\tfor(var i=0; i<str.length; i++) {\n\t\tvar cc = str.codePointAt(i);  if(cc>0xffff) i++;\n\t\tgls.push(Typr.U.codeToGlyph(font, cc));\n\t}\n\tfor(var i=0; i<str.length; i++) {\n\t\tvar cc = str.codePointAt(i);  //\n\t\tif(cc==2367) {  var t=gls[i-1];  gls[i-1]=gls[i];  gls[i]=t;  }\n\t\t//if(cc==2381) {  var t=gls[i+1];  gls[i+1]=gls[i];  gls[i]=t;  }\n\t\tif(cc>0xffff) i++;\n\t}\n\t//console.log(gls.slice(0));\n\n\t//console.log(gls);  return gls;\n\n\tvar gsub = font[\"GSUB\"];  if(gsub==null) return gls;\n\tvar llist = gsub.lookupList, flist = gsub.featureList;\n\n\tvar cligs = [\"rlig\", \"liga\", \"mset\",  \"isol\",\"init\",\"fina\",\"medi\",   \"half\", \"pres\",\n\t\t\t\t\"blws\" /* Tibetan fonts like Himalaya.ttf */ ];\n\n\t//console.log(gls.slice(0));\n\tvar tused = [];\n\tfor(var fi=0; fi<flist.length; fi++)\n\t{\n\t\tvar fl = flist[fi];  if(cligs.indexOf(fl.tag)==-1) continue;\n\t\t//if(fl.tag==\"blwf\") continue;\n\t\t//console.log(fl);\n\t\t//console.log(fl.tag);\n\t\tfor(var ti=0; ti<fl.tab.length; ti++) {\n\t\t\tif(tused[fl.tab[ti]]) continue;  tused[fl.tab[ti]] = true;\n\t\t\tvar tab = llist[fl.tab[ti]];\n\t\t\t//console.log(fl.tab[ti], tab.ltype);\n\t\t\t//console.log(fl.tag, tab);\n\t\t\tfor(var ci=0; ci<gls.length; ci++) {\n\t\t\t\tvar feat = Typr.U._getWPfeature(str, ci);\n\t\t\t\tif(\"isol,init,fina,medi\".indexOf(fl.tag)!=-1 && fl.tag!=feat) continue;\n\n\t\t\t\tTypr.U._applySubs(gls, ci, tab, llist);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn gls;\n};\nTypr.U._getWPfeature = function(str, ci) {  // get Word Position feature\n\tvar wsep = \"\\n\\t\\\" ,.:;!?()  ،\";\n\tvar R = \"آأؤإاةدذرزوٱٲٳٵٶٷڈډڊڋڌڍڎڏڐڑڒړڔڕږڗژڙۀۃۄۅۆۇۈۉۊۋۍۏےۓەۮۯܐܕܖܗܘܙܞܨܪܬܯݍݙݚݛݫݬݱݳݴݸݹࡀࡆࡇࡉࡔࡧࡩࡪࢪࢫࢬࢮࢱࢲࢹૅેૉ૊૎૏ૐ૑૒૝ૡ૤૯஁ஃ஄அஉ஌எஏ஑னப஫஬\";\n\tvar L = \"ꡲ્૗\";\n\n\tvar slft = ci==0            || wsep.indexOf(str[ci-1])!=-1;\n\tvar srgt = ci==str.length-1 || wsep.indexOf(str[ci+1])!=-1;\n\n\tif(!slft && R.indexOf(str[ci-1])!=-1) slft=true;\n\tif(!srgt && R.indexOf(str[ci  ])!=-1) srgt=true;\n\n\tif(!srgt && L.indexOf(str[ci+1])!=-1) srgt=true;\n\tif(!slft && L.indexOf(str[ci  ])!=-1) slft=true;\n\n\tvar feat = null;\n\tif(slft) feat = srgt ? \"isol\" : \"init\";\n\telse     feat = srgt ? \"fina\" : \"medi\";\n\n\treturn feat;\n};\nTypr.U._applySubs = function(gls, ci, tab, llist) {\n\tvar rlim = gls.length-ci-1;\n\t//if(ci==0) console.log(\"++++ \", tab.ltype);\n\tfor(var j=0; j<tab.tabs.length; j++)\n\t{\n\t\tif(tab.tabs[j]==null) continue;\n\t\tvar ltab = tab.tabs[j], ind;\n\t\tif(ltab.coverage) {  ind = Typr._lctf.coverageIndex(ltab.coverage, gls[ci]);  if(ind==-1) continue;  }\n\t\t//if(ci==0) console.log(ind, ltab);\n\t\t//*\n\t\tif(tab.ltype==1) {\n\t\t\tvar gl = gls[ci];\n\t\t\tif(ltab.fmt==1) gls[ci] = gls[ci]+ltab.delta;\n\t\t\telse            gls[ci] = ltab.newg[ind];\n\t\t\t//console.log(\"applying ... 1\", ci, gl, gls[ci]);\n\t\t}//*\n\t\telse if(tab.ltype==4) {\n\t\t\tvar vals = ltab.vals[ind];\n\n\t\t\tfor(var k=0; k<vals.length; k++) {\n\t\t\t\tvar lig = vals[k], rl = lig.chain.length;  if(rl>rlim) continue;\n\t\t\t\tvar good = true, em1 = 0;\n\t\t\t\tfor(var l=0; l<rl; l++) {  while(gls[ci+em1+(1+l)]==-1)em1++;  if(lig.chain[l]!=gls[ci+em1+(1+l)]) good=false;  }\n\t\t\t\tif(!good) continue;\n\t\t\t\tgls[ci]=lig.nglyph;\n\t\t\t\tfor(var l=0; l<rl+em1; l++) gls[ci+l+1]=-1;   break;  // first character changed, other ligatures do not apply anymore\n\t\t\t\t//console.log(\"lig\", ci, lig.chain, lig.nglyph);\n\t\t\t\t//console.log(\"applying ...\");\n\t\t\t}\n\t\t}\n\t\telse  if(tab.ltype==5 && ltab.fmt==2) {\n\t\t\tvar cind = Typr._lctf.getInterval(ltab.cDef, gls[ci]);\n\t\t\tvar cls = ltab.cDef[cind+2], scs = ltab.scset[cls];\n\t\t\tfor(var i=0; i<scs.length; i++) {\n\t\t\t\tvar sc = scs[i], inp = sc.input;\n\t\t\t\tif(inp.length>rlim) continue;\n\t\t\t\tvar good = true;\n\t\t\t\tfor(var l=0; l<inp.length; l++) {\n\t\t\t\t\tvar cind2 = Typr._lctf.getInterval(ltab.cDef, gls[ci+1+l]);\n\t\t\t\t\tif(cind==-1 && ltab.cDef[cind2+2]!=inp[l]) {  good=false;  break;  }\n\t\t\t\t}\n\t\t\t\tif(!good) continue;\n\t\t\t\t//console.log(ci, gl);\n\t\t\t\tvar lrs = sc.substLookupRecords;\n\t\t\t\tfor(var k=0; k<lrs.length; k+=2)\n\t\t\t\t{\n\t\t\t\t\tvar gi = lrs[k], tabi = lrs[k+1];\n\t\t\t\t\t//Typr.U._applyType1(gls, ci+gi, llist[tabi]);\n\t\t\t\t\t//console.log(tabi, gls[ci+gi], llist[tabi]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if(tab.ltype==6 && ltab.fmt==3) {\n\t\t\t//if(ltab.backCvg.length==0) return;\n\t\t\tif(!Typr.U._glsCovered(gls, ltab.backCvg, ci-ltab.backCvg.length)) continue;\n\t\t\tif(!Typr.U._glsCovered(gls, ltab.inptCvg, ci)) continue;\n\t\t\tif(!Typr.U._glsCovered(gls, ltab.ahedCvg, ci+ltab.inptCvg.length)) continue;\n\t\t\t//console.log(ci, ltab);\n\t\t\tvar lr = ltab.lookupRec;  //console.log(ci, gl, lr);\n\t\t\tfor(var i=0; i<lr.length; i+=2) {\n\t\t\t\tvar cind = lr[i], tab2 = llist[lr[i+1]];\n\t\t\t\t//console.log(\"-\", lr[i+1], tab2);\n\t\t\t\tTypr.U._applySubs(gls, ci+cind, tab2, llist);\n\t\t\t}\n\t\t}\n\t\t//else console.log(\"Unknown table\", tab.ltype, ltab.fmt);\n\t\t//*/\n\t}\n};\n\nTypr.U._glsCovered = function(gls, cvgs, ci) {\n\tfor(var i=0; i<cvgs.length; i++) {\n\t\tvar ind = Typr._lctf.coverageIndex(cvgs[i], gls[ci+i]);  if(ind==-1) return false;\n\t}\n\treturn true;\n};\n\nTypr.U.glyphsToPath = function(font, gls, clr)\n{\n\t//gls = gls.reverse();//gls.slice(0,12).concat(gls.slice(12).reverse());\n\n\tvar tpath = {cmds:[], crds:[]};\n\tvar x = 0;\n\n\tfor(var i=0; i<gls.length; i++)\n\t{\n\t\tvar gid = gls[i];  if(gid==-1) continue;\n\t\tvar gid2 = (i<gls.length-1 && gls[i+1]!=-1)  ? gls[i+1] : 0;\n\t\tvar path = Typr.U.glyphToPath(font, gid);\n\t\tfor(var j=0; j<path.crds.length; j+=2)\n\t\t{\n\t\t\ttpath.crds.push(path.crds[j] + x);\n\t\t\ttpath.crds.push(path.crds[j+1]);\n\t\t}\n\t\tif(clr) tpath.cmds.push(clr);\n\t\tfor(var j=0; j<path.cmds.length; j++) tpath.cmds.push(path.cmds[j]);\n\t\tif(clr) tpath.cmds.push(\"X\");\n\t\tx += font.hmtx.aWidth[gid];// - font.hmtx.lsBearing[gid];\n\t\tif(i<gls.length-1) x += Typr.U.getPairAdjustment(font, gid, gid2);\n\t}\n\treturn tpath;\n};\n\nTypr.U.pathToSVG = function(path, prec)\n{\n\tif(prec==null) prec = 5;\n\tvar out = [], co = 0, lmap = {\"M\":2,\"L\":2,\"Q\":4,\"C\":6};\n\tfor(var i=0; i<path.cmds.length; i++)\n\t{\n\t\tvar cmd = path.cmds[i], cn = co+(lmap[cmd]?lmap[cmd]:0);\n\t\tout.push(cmd);\n\t\twhile(co<cn) {  var c = path.crds[co++];  out.push(parseFloat(c.toFixed(prec))+(co==cn?\"\":\" \"));  }\n\t}\n\treturn out.join(\"\");\n};\n\nTypr.U.pathToContext = function(path, ctx)\n{\n\tvar c = 0, crds = path.crds;\n\n\tfor(var j=0; j<path.cmds.length; j++)\n\t{\n\t\tvar cmd = path.cmds[j];\n\t\tif     (cmd==\"M\") {\n\t\t\tctx.moveTo(crds[c], crds[c+1]);\n\t\t\tc+=2;\n\t\t}\n\t\telse if(cmd==\"L\") {\n\t\t\tctx.lineTo(crds[c], crds[c+1]);\n\t\t\tc+=2;\n\t\t}\n\t\telse if(cmd==\"C\") {\n\t\t\tctx.bezierCurveTo(crds[c], crds[c+1], crds[c+2], crds[c+3], crds[c+4], crds[c+5]);\n\t\t\tc+=6;\n\t\t}\n\t\telse if(cmd==\"Q\") {\n\t\t\tctx.quadraticCurveTo(crds[c], crds[c+1], crds[c+2], crds[c+3]);\n\t\t\tc+=4;\n\t\t}\n\t\telse if(cmd.charAt(0)==\"#\") {\n\t\t\tctx.beginPath();\n\t\t\tctx.fillStyle = cmd;\n\t\t}\n\t\telse if(cmd==\"Z\") {\n\t\t\tctx.closePath();\n\t\t}\n\t\telse if(cmd==\"X\") {\n\t\t\tctx.fill();\n\t\t}\n\t}\n};\n\n\nTypr.U.P = {};\nTypr.U.P.moveTo = function(p, x, y)\n{\n\tp.cmds.push(\"M\");  p.crds.push(x,y);\n};\nTypr.U.P.lineTo = function(p, x, y)\n{\n\tp.cmds.push(\"L\");  p.crds.push(x,y);\n};\nTypr.U.P.curveTo = function(p, a,b,c,d,e,f)\n{\n\tp.cmds.push(\"C\");  p.crds.push(a,b,c,d,e,f);\n};\nTypr.U.P.qcurveTo = function(p, a,b,c,d)\n{\n\tp.cmds.push(\"Q\");  p.crds.push(a,b,c,d);\n};\nTypr.U.P.closePath = function(p) {  p.cmds.push(\"Z\");  };\n\n\n\n\nTypr.U._drawCFF = function(cmds, state, font, pdct, p)\n{\n\tvar stack = state.stack;\n\tvar nStems = state.nStems, haveWidth=state.haveWidth, width=state.width, open=state.open;\n\tvar i=0;\n\tvar x=state.x, y=state.y, c1x=0, c1y=0, c2x=0, c2y=0, c3x=0, c3y=0, c4x=0, c4y=0, jpx=0, jpy=0;\n\n\tvar o = {val:0,size:0};\n\t//console.log(cmds);\n\twhile(i<cmds.length)\n\t{\n\t\tTypr.CFF.getCharString(cmds, i, o);\n\t\tvar v = o.val;\n\t\ti += o.size;\n\n\t\tif(v==\"o1\" || v==\"o18\")  //  hstem || hstemhm\n\t\t{\n\t\t\tvar hasWidthArg;\n\n\t\t\t// The number of stem operators on the stack is always even.\n\t\t\t// If the value is uneven, that means a width is specified.\n\t\t\thasWidthArg = stack.length % 2 !== 0;\n\t\t\tif (hasWidthArg && !haveWidth) {\n\t\t\t\twidth = stack.shift() + pdct.nominalWidthX;\n\t\t\t}\n\n\t\t\tnStems += stack.length >> 1;\n\t\t\tstack.length = 0;\n\t\t\thaveWidth = true;\n\t\t}\n\t\telse if(v==\"o3\" || v==\"o23\")  // vstem || vstemhm\n\t\t{\n\t\t\tvar hasWidthArg;\n\n\t\t\t// The number of stem operators on the stack is always even.\n\t\t\t// If the value is uneven, that means a width is specified.\n\t\t\thasWidthArg = stack.length % 2 !== 0;\n\t\t\tif (hasWidthArg && !haveWidth) {\n\t\t\t\twidth = stack.shift() + pdct.nominalWidthX;\n\t\t\t}\n\n\t\t\tnStems += stack.length >> 1;\n\t\t\tstack.length = 0;\n\t\t\thaveWidth = true;\n\t\t}\n\t\telse if(v==\"o4\")\n\t\t{\n\t\t\tif (stack.length > 1 && !haveWidth) {\n                        width = stack.shift() + pdct.nominalWidthX;\n                        haveWidth = true;\n                    }\n\t\t\tif(open) Typr.U.P.closePath(p);\n\n                    y += stack.pop();\n\t\t\t\t\tTypr.U.P.moveTo(p,x,y);   open=true;\n\t\t}\n\t\telse if(v==\"o5\")\n\t\t{\n\t\t\twhile (stack.length > 0) {\n                        x += stack.shift();\n                        y += stack.shift();\n                        Typr.U.P.lineTo(p, x, y);\n                    }\n\t\t}\n\t\telse if(v==\"o6\" || v==\"o7\")  // hlineto || vlineto\n\t\t{\n\t\t\tvar count = stack.length;\n\t\t\tvar isX = (v == \"o6\");\n\n\t\t\tfor(var j=0; j<count; j++) {\n\t\t\t\tvar sval = stack.shift();\n\n\t\t\t\tif(isX) x += sval;  else  y += sval;\n\t\t\t\tisX = !isX;\n\t\t\t\tTypr.U.P.lineTo(p, x, y);\n\t\t\t}\n\t\t}\n\t\telse if(v==\"o8\" || v==\"o24\")\t// rrcurveto || rcurveline\n\t\t{\n\t\t\tvar count = stack.length;\n\t\t\tvar index = 0;\n\t\t\twhile(index+6 <= count) {\n\t\t\t\tc1x = x + stack.shift();\n\t\t\t\tc1y = y + stack.shift();\n\t\t\t\tc2x = c1x + stack.shift();\n\t\t\t\tc2y = c1y + stack.shift();\n\t\t\t\tx = c2x + stack.shift();\n\t\t\t\ty = c2y + stack.shift();\n\t\t\t\tTypr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y);\n\t\t\t\tindex+=6;\n\t\t\t}\n\t\t\tif(v==\"o24\")\n\t\t\t{\n\t\t\t\tx += stack.shift();\n\t\t\t\ty += stack.shift();\n\t\t\t\tTypr.U.P.lineTo(p, x, y);\n\t\t\t}\n\t\t}\n\t\telse if(v==\"o11\")  break;\n\t\telse if(v==\"o1234\" || v==\"o1235\" || v==\"o1236\" || v==\"o1237\")//if((v+\"\").slice(0,3)==\"o12\")\n\t\t{\n\t\t\tif(v==\"o1234\")\n\t\t\t{\n\t\t\t\tc1x = x   + stack.shift();    // dx1\n                c1y = y;                      // dy1\n\t\t\t\tc2x = c1x + stack.shift();    // dx2\n\t\t\t\tc2y = c1y + stack.shift();    // dy2\n\t\t\t\tjpx = c2x + stack.shift();    // dx3\n\t\t\t\tjpy = c2y;                    // dy3\n\t\t\t\tc3x = jpx + stack.shift();    // dx4\n\t\t\t\tc3y = c2y;                    // dy4\n\t\t\t\tc4x = c3x + stack.shift();    // dx5\n\t\t\t\tc4y = y;                      // dy5\n\t\t\t\tx = c4x + stack.shift();      // dx6\n\t\t\t\tTypr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy);\n\t\t\t\tTypr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y);\n\n\t\t\t}\n\t\t\tif(v==\"o1235\")\n\t\t\t{\n\t\t\t\tc1x = x   + stack.shift();    // dx1\n\t\t\t\tc1y = y   + stack.shift();    // dy1\n\t\t\t\tc2x = c1x + stack.shift();    // dx2\n\t\t\t\tc2y = c1y + stack.shift();    // dy2\n\t\t\t\tjpx = c2x + stack.shift();    // dx3\n\t\t\t\tjpy = c2y + stack.shift();    // dy3\n\t\t\t\tc3x = jpx + stack.shift();    // dx4\n\t\t\t\tc3y = jpy + stack.shift();    // dy4\n\t\t\t\tc4x = c3x + stack.shift();    // dx5\n\t\t\t\tc4y = c3y + stack.shift();    // dy5\n\t\t\t\tx = c4x + stack.shift();      // dx6\n\t\t\t\ty = c4y + stack.shift();      // dy6\n\t\t\t\tstack.shift();                // flex depth\n\t\t\t\tTypr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy);\n\t\t\t\tTypr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y);\n\t\t\t}\n\t\t\tif(v==\"o1236\")\n\t\t\t{\n\t\t\t\tc1x = x   + stack.shift();    // dx1\n\t\t\t\tc1y = y   + stack.shift();    // dy1\n\t\t\t\tc2x = c1x + stack.shift();    // dx2\n\t\t\t\tc2y = c1y + stack.shift();    // dy2\n\t\t\t\tjpx = c2x + stack.shift();    // dx3\n\t\t\t\tjpy = c2y;                    // dy3\n\t\t\t\tc3x = jpx + stack.shift();    // dx4\n\t\t\t\tc3y = c2y;                    // dy4\n\t\t\t\tc4x = c3x + stack.shift();    // dx5\n\t\t\t\tc4y = c3y + stack.shift();    // dy5\n\t\t\t\tx = c4x + stack.shift();      // dx6\n\t\t\t\tTypr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy);\n\t\t\t\tTypr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y);\n\t\t\t}\n\t\t\tif(v==\"o1237\")\n\t\t\t{\n\t\t\t\tc1x = x   + stack.shift();    // dx1\n\t\t\t\tc1y = y   + stack.shift();    // dy1\n\t\t\t\tc2x = c1x + stack.shift();    // dx2\n\t\t\t\tc2y = c1y + stack.shift();    // dy2\n\t\t\t\tjpx = c2x + stack.shift();    // dx3\n\t\t\t\tjpy = c2y + stack.shift();    // dy3\n\t\t\t\tc3x = jpx + stack.shift();    // dx4\n\t\t\t\tc3y = jpy + stack.shift();    // dy4\n\t\t\t\tc4x = c3x + stack.shift();    // dx5\n\t\t\t\tc4y = c3y + stack.shift();    // dy5\n\t\t\t\tif (Math.abs(c4x - x) > Math.abs(c4y - y)) {\n\t\t\t\t    x = c4x + stack.shift();\n\t\t\t\t} else {\n\t\t\t\t    y = c4y + stack.shift();\n\t\t\t\t}\n\t\t\t\tTypr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy);\n\t\t\t\tTypr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y);\n\t\t\t}\n\t\t}\n\t\telse if(v==\"o14\")\n\t\t{\n\t\t\tif (stack.length > 0 && !haveWidth) {\n                        width = stack.shift() + font.nominalWidthX;\n                        haveWidth = true;\n                    }\n\t\t\tif(stack.length==4) // seac = standard encoding accented character\n\t\t\t{\n\t\t\t\tvar adx = stack.shift();\n\t\t\t\tvar ady = stack.shift();\n\t\t\t\tvar bchar = stack.shift();\n\t\t\t\tvar achar = stack.shift();\n\n\n\t\t\t\tvar bind = Typr.CFF.glyphBySE(font, bchar);\n\t\t\t\tvar aind = Typr.CFF.glyphBySE(font, achar);\n\n\t\t\t\t//console.log(bchar, bind);\n\t\t\t\t//console.log(achar, aind);\n\t\t\t\t//state.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width;  state.open=open;\n\n\t\t\t\tTypr.U._drawCFF(font.CharStrings[bind], state,font,pdct,p);\n\t\t\t\tstate.x = adx; state.y = ady;\n\t\t\t\tTypr.U._drawCFF(font.CharStrings[aind], state,font,pdct,p);\n\n\t\t\t\t//x=state.x; y=state.y; nStems=state.nStems; haveWidth=state.haveWidth; width=state.width;  open=state.open;\n\t\t\t}\n\t\t\tif(open) {  Typr.U.P.closePath(p);  open=false;  }\n\t\t}\n\t\telse if(v==\"o19\" || v==\"o20\")\n\t\t{\n\t\t\tvar hasWidthArg;\n\n\t\t\t// The number of stem operators on the stack is always even.\n\t\t\t// If the value is uneven, that means a width is specified.\n\t\t\thasWidthArg = stack.length % 2 !== 0;\n\t\t\tif (hasWidthArg && !haveWidth) {\n\t\t\t\twidth = stack.shift() + pdct.nominalWidthX;\n\t\t\t}\n\n\t\t\tnStems += stack.length >> 1;\n\t\t\tstack.length = 0;\n\t\t\thaveWidth = true;\n\n\t\t\ti += (nStems + 7) >> 3;\n\t\t}\n\n\t\telse if(v==\"o21\") {\n\t\t\tif (stack.length > 2 && !haveWidth) {\n                        width = stack.shift() + pdct.nominalWidthX;\n                        haveWidth = true;\n                    }\n\n                    y += stack.pop();\n                    x += stack.pop();\n\n\t\t\t\t\tif(open) Typr.U.P.closePath(p);\n                    Typr.U.P.moveTo(p,x,y);   open=true;\n\t\t}\n\t\telse if(v==\"o22\")\n\t\t{\n\t\t\t if (stack.length > 1 && !haveWidth) {\n                        width = stack.shift() + pdct.nominalWidthX;\n                        haveWidth = true;\n                    }\n\n                    x += stack.pop();\n\n\t\t\t\t\tif(open) Typr.U.P.closePath(p);\n\t\t\t\t\tTypr.U.P.moveTo(p,x,y);   open=true;\n\t\t}\n\t\telse if(v==\"o25\")\n\t\t{\n\t\t\twhile (stack.length > 6) {\n                        x += stack.shift();\n                        y += stack.shift();\n                        Typr.U.P.lineTo(p, x, y);\n                    }\n\n                    c1x = x + stack.shift();\n                    c1y = y + stack.shift();\n                    c2x = c1x + stack.shift();\n                    c2y = c1y + stack.shift();\n                    x = c2x + stack.shift();\n                    y = c2y + stack.shift();\n                    Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y);\n\t\t}\n\t\telse if(v==\"o26\")\n\t\t{\n\t\t\tif (stack.length % 2) {\n                        x += stack.shift();\n                    }\n\n                    while (stack.length > 0) {\n                        c1x = x;\n                        c1y = y + stack.shift();\n                        c2x = c1x + stack.shift();\n                        c2y = c1y + stack.shift();\n                        x = c2x;\n                        y = c2y + stack.shift();\n                        Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y);\n                    }\n\n\t\t}\n\t\telse if(v==\"o27\")\n\t\t{\n\t\t\tif (stack.length % 2) {\n                        y += stack.shift();\n                    }\n\n                    while (stack.length > 0) {\n                        c1x = x + stack.shift();\n                        c1y = y;\n                        c2x = c1x + stack.shift();\n                        c2y = c1y + stack.shift();\n                        x = c2x + stack.shift();\n                        y = c2y;\n                        Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y);\n                    }\n\t\t}\n\t\telse if(v==\"o10\" || v==\"o29\")\t// callsubr || callgsubr\n\t\t{\n\t\t\tvar obj = (v==\"o10\" ? pdct : font);\n\t\t\tif(stack.length==0) { console.log(\"error: empty stack\");  }\n\t\t\telse {\n\t\t\t\tvar ind = stack.pop();\n\t\t\t\tvar subr = obj.Subrs[ ind + obj.Bias ];\n\t\t\t\tstate.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width;  state.open=open;\n\t\t\t\tTypr.U._drawCFF(subr, state,font,pdct,p);\n\t\t\t\tx=state.x; y=state.y; nStems=state.nStems; haveWidth=state.haveWidth; width=state.width;  open=state.open;\n\t\t\t}\n\t\t}\n\t\telse if(v==\"o30\" || v==\"o31\")   // vhcurveto || hvcurveto\n\t\t{\n\t\t\tvar count, count1 = stack.length;\n\t\t\tvar index = 0;\n\t\t\tvar alternate = v == \"o31\";\n\n\t\t\tcount  = count1 & ~2;\n\t\t\tindex += count1 - count;\n\n\t\t\twhile ( index < count )\n\t\t\t{\n\t\t\t\tif(alternate)\n\t\t\t\t{\n\t\t\t\t\tc1x = x + stack.shift();\n\t\t\t\t\tc1y = y;\n\t\t\t\t\tc2x = c1x + stack.shift();\n\t\t\t\t\tc2y = c1y + stack.shift();\n\t\t\t\t\ty = c2y + stack.shift();\n\t\t\t\t\tif(count-index == 5) {  x = c2x + stack.shift();  index++;  }\n\t\t\t\t\telse x = c2x;\n\t\t\t\t\talternate = false;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tc1x = x;\n\t\t\t\t\tc1y = y + stack.shift();\n\t\t\t\t\tc2x = c1x + stack.shift();\n\t\t\t\t\tc2y = c1y + stack.shift();\n\t\t\t\t\tx = c2x + stack.shift();\n\t\t\t\t\tif(count-index == 5) {  y = c2y + stack.shift();  index++;  }\n\t\t\t\t\telse y = c2y;\n\t\t\t\t\talternate = true;\n\t\t\t\t}\n                Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y);\n\t\t\t\tindex += 4;\n\t\t\t}\n\t\t}\n\n\t\telse if((v+\"\").charAt(0)==\"o\") {   console.log(\"Unknown operation: \"+v, cmds); throw v;  }\n\t\telse stack.push(v);\n\t}\n\t//console.log(cmds);\n\tstate.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width; state.open=open;\n};\n\n// End Typr.U.js\n\nreturn Typr\n\n}\n\n// Custom bundle of woff2otf (https://github.com/arty-name/woff2otf) with tiny-inflate\n// (https://github.com/foliojs/tiny-inflate) for use in troika-3d-text.\n// Original licenses apply:\n// - tiny-inflate: https://github.com/foliojs/tiny-inflate/blob/master/LICENSE (MIT)\n// - woff2otf.js: https://github.com/arty-name/woff2otf/blob/master/woff2otf.js (Apache2)\n\nfunction woff2otfFactory() {\n\n// Begin tinyInflate\nconst tinyInflate = (function() {\n  const module = {};\n  var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n  this.table = new Uint16Array(16);   /* table of code length counts */\n  this.trans = new Uint16Array(288);  /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n  this.source = source;\n  this.sourceIndex = 0;\n  this.tag = 0;\n  this.bitcount = 0;\n\n  this.dest = dest;\n  this.destLen = 0;\n\n  this.ltree = new Tree();  /* dynamic length/symbol tree */\n  this.dtree = new Tree();  /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n  16, 17, 18, 0, 8, 7, 9, 6,\n  10, 5, 11, 4, 12, 3, 13, 2,\n  14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n  var i, sum;\n\n  /* build bits table */\n  for (i = 0; i < delta; ++i) bits[i] = 0;\n  for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n  /* build base table */\n  for (sum = first, i = 0; i < 30; ++i) {\n    base[i] = sum;\n    sum += 1 << bits[i];\n  }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n  var i;\n\n  /* build fixed length tree */\n  for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n  lt.table[7] = 24;\n  lt.table[8] = 152;\n  lt.table[9] = 112;\n\n  for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n  for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n  for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n  for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n  /* build fixed distance tree */\n  for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n  dt.table[5] = 32;\n\n  for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n  var i, sum;\n\n  /* clear code length count table */\n  for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n  /* scan symbol lengths, and sum code length counts */\n  for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n  t.table[0] = 0;\n\n  /* compute offset table for distribution sort */\n  for (sum = 0, i = 0; i < 16; ++i) {\n    offs[i] = sum;\n    sum += t.table[i];\n  }\n\n  /* create code->symbol translation table (symbols sorted by code) */\n  for (i = 0; i < num; ++i) {\n    if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n  }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n  /* check if tag is empty */\n  if (!d.bitcount--) {\n    /* load next tag */\n    d.tag = d.source[d.sourceIndex++];\n    d.bitcount = 7;\n  }\n\n  /* shift bit out of tag */\n  var bit = d.tag & 1;\n  d.tag >>>= 1;\n\n  return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n  if (!num)\n    return base;\n\n  while (d.bitcount < 24) {\n    d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n    d.bitcount += 8;\n  }\n\n  var val = d.tag & (0xffff >>> (16 - num));\n  d.tag >>>= num;\n  d.bitcount -= num;\n  return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n  while (d.bitcount < 24) {\n    d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n    d.bitcount += 8;\n  }\n\n  var sum = 0, cur = 0, len = 0;\n  var tag = d.tag;\n\n  /* get more bits while code value is above sum */\n  do {\n    cur = 2 * cur + (tag & 1);\n    tag >>>= 1;\n    ++len;\n\n    sum += t.table[len];\n    cur -= t.table[len];\n  } while (cur >= 0);\n\n  d.tag = tag;\n  d.bitcount -= len;\n\n  return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n  var hlit, hdist, hclen;\n  var i, num, length;\n\n  /* get 5 bits HLIT (257-286) */\n  hlit = tinf_read_bits(d, 5, 257);\n\n  /* get 5 bits HDIST (1-32) */\n  hdist = tinf_read_bits(d, 5, 1);\n\n  /* get 4 bits HCLEN (4-19) */\n  hclen = tinf_read_bits(d, 4, 4);\n\n  for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n  /* read code lengths for code length alphabet */\n  for (i = 0; i < hclen; ++i) {\n    /* get 3 bits code length (0-7) */\n    var clen = tinf_read_bits(d, 3, 0);\n    lengths[clcidx[i]] = clen;\n  }\n\n  /* build code length tree */\n  tinf_build_tree(code_tree, lengths, 0, 19);\n\n  /* decode code lengths for the dynamic trees */\n  for (num = 0; num < hlit + hdist;) {\n    var sym = tinf_decode_symbol(d, code_tree);\n\n    switch (sym) {\n      case 16:\n        /* copy previous code length 3-6 times (read 2 bits) */\n        var prev = lengths[num - 1];\n        for (length = tinf_read_bits(d, 2, 3); length; --length) {\n          lengths[num++] = prev;\n        }\n        break;\n      case 17:\n        /* repeat code length 0 for 3-10 times (read 3 bits) */\n        for (length = tinf_read_bits(d, 3, 3); length; --length) {\n          lengths[num++] = 0;\n        }\n        break;\n      case 18:\n        /* repeat code length 0 for 11-138 times (read 7 bits) */\n        for (length = tinf_read_bits(d, 7, 11); length; --length) {\n          lengths[num++] = 0;\n        }\n        break;\n      default:\n        /* values 0-15 represent the actual code lengths */\n        lengths[num++] = sym;\n        break;\n    }\n  }\n\n  /* build dynamic trees */\n  tinf_build_tree(lt, lengths, 0, hlit);\n  tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n  while (1) {\n    var sym = tinf_decode_symbol(d, lt);\n\n    /* check for end of block */\n    if (sym === 256) {\n      return TINF_OK;\n    }\n\n    if (sym < 256) {\n      d.dest[d.destLen++] = sym;\n    } else {\n      var length, dist, offs;\n      var i;\n\n      sym -= 257;\n\n      /* possibly get more bits from length code */\n      length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n      dist = tinf_decode_symbol(d, dt);\n\n      /* possibly get more bits from distance code */\n      offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n      /* copy match */\n      for (i = offs; i < offs + length; ++i) {\n        d.dest[d.destLen++] = d.dest[i];\n      }\n    }\n  }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n  var length, invlength;\n  var i;\n\n  /* unread from bitbuffer */\n  while (d.bitcount > 8) {\n    d.sourceIndex--;\n    d.bitcount -= 8;\n  }\n\n  /* get length */\n  length = d.source[d.sourceIndex + 1];\n  length = 256 * length + d.source[d.sourceIndex];\n\n  /* get one's complement of length */\n  invlength = d.source[d.sourceIndex + 3];\n  invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n  /* check length */\n  if (length !== (~invlength & 0x0000ffff))\n    return TINF_DATA_ERROR;\n\n  d.sourceIndex += 4;\n\n  /* copy block */\n  for (i = length; i; --i)\n    d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n  /* make sure we start next block on a byte boundary */\n  d.bitcount = 0;\n\n  return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n  var d = new Data(source, dest);\n  var bfinal, btype, res;\n\n  do {\n    /* read final block flag */\n    bfinal = tinf_getbit(d);\n\n    /* read block type (2 bits) */\n    btype = tinf_read_bits(d, 2, 0);\n\n    /* decompress block */\n    switch (btype) {\n      case 0:\n        /* decompress uncompressed block */\n        res = tinf_inflate_uncompressed_block(d);\n        break;\n      case 1:\n        /* decompress block with fixed huffman trees */\n        res = tinf_inflate_block_data(d, sltree, sdtree);\n        break;\n      case 2:\n        /* decompress block with dynamic huffman trees */\n        tinf_decode_trees(d, d.ltree, d.dtree);\n        res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n        break;\n      default:\n        res = TINF_DATA_ERROR;\n    }\n\n    if (res !== TINF_OK)\n      throw new Error('Data error');\n\n  } while (!bfinal);\n\n  if (d.destLen < d.dest.length) {\n    if (typeof d.dest.slice === 'function')\n      return d.dest.slice(0, d.destLen);\n    else\n      return d.dest.subarray(0, d.destLen);\n  }\n\n  return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n\n  return module.exports\n})();\n// End tinyInflate\n\n// Begin woff2otf.js\n/*\n Copyright 2012, Steffen Hanikel (https://github.com/hanikesn)\n Modified by Artemy Tregubenko, 2014 (https://github.com/arty-name/woff2otf)\n Modified by Jason Johnston, 2019 (pako --> tiny-inflate)\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\n A tool to convert a WOFF back to a TTF/OTF font file, in pure Javascript\n*/\n\nfunction convert_streams(bufferIn, tinyInflate) {\n    var dataViewIn = new DataView(bufferIn);\n    var offsetIn = 0;\n\n    function read2() {\n        var uint16 = dataViewIn.getUint16(offsetIn);\n        offsetIn += 2;\n        return uint16;\n    }\n\n    function read4() {\n        var uint32 = dataViewIn.getUint32(offsetIn);\n        offsetIn += 4;\n        return uint32;\n    }\n\n    function write2(uint16) {\n        dataViewOut.setUint16(offsetOut, uint16);\n        offsetOut += 2;\n    }\n\n    function write4(uint32) {\n        dataViewOut.setUint32(offsetOut, uint32);\n        offsetOut += 4;\n    }\n\n    var WOFFHeader = {\n        signature: read4(),\n        flavor: read4(),\n        length: read4(),\n        numTables: read2(),\n        reserved: read2(),\n        totalSfntSize: read4(),\n        majorVersion: read2(),\n        minorVersion: read2(),\n        metaOffset: read4(),\n        metaLength: read4(),\n        metaOrigLength: read4(),\n        privOffset: read4(),\n        privLength: read4()\n    };\n\n    var entrySelector = 0;\n    while (Math.pow(2, entrySelector) <= WOFFHeader.numTables) {\n        entrySelector++;\n    }\n    entrySelector--;\n\n    var searchRange = Math.pow(2, entrySelector) * 16;\n    var rangeShift = WOFFHeader.numTables * 16 - searchRange;\n\n    var offset = 4 + 2 + 2 + 2 + 2;\n    var TableDirectoryEntries = [];\n    for (var i = 0; i < WOFFHeader.numTables; i++) {\n        TableDirectoryEntries.push({\n            tag: read4(),\n            offset: read4(),\n            compLength: read4(),\n            origLength: read4(),\n            origChecksum: read4()\n        });\n        offset += 4 * 4;\n    }\n\n    var arrayOut = new Uint8Array(\n        4 + 2 + 2 + 2 + 2 +\n        TableDirectoryEntries.length * (4 + 4 + 4 + 4) +\n        TableDirectoryEntries.reduce(function(acc, entry) { return acc + entry.origLength + 4; }, 0)\n    );\n    var bufferOut = arrayOut.buffer;\n    var dataViewOut = new DataView(bufferOut);\n    var offsetOut = 0;\n\n    write4(WOFFHeader.flavor);\n    write2(WOFFHeader.numTables);\n    write2(searchRange);\n    write2(entrySelector);\n    write2(rangeShift);\n\n    TableDirectoryEntries.forEach(function(TableDirectoryEntry) {\n        write4(TableDirectoryEntry.tag);\n        write4(TableDirectoryEntry.origChecksum);\n        write4(offset);\n        write4(TableDirectoryEntry.origLength);\n\n        TableDirectoryEntry.outOffset = offset;\n        offset += TableDirectoryEntry.origLength;\n        if ((offset % 4) != 0) {\n            offset += 4 - (offset % 4);\n        }\n    });\n\n    var size;\n\n    TableDirectoryEntries.forEach(function(TableDirectoryEntry) {\n        var compressedData = bufferIn.slice(\n            TableDirectoryEntry.offset,\n            TableDirectoryEntry.offset + TableDirectoryEntry.compLength\n        );\n\n        if (TableDirectoryEntry.compLength != TableDirectoryEntry.origLength) {\n            var uncompressedData = new Uint8Array(TableDirectoryEntry.origLength);\n            tinyInflate(\n              new Uint8Array(compressedData, 2), //skip deflate header\n              uncompressedData\n            );\n        } else {\n            uncompressedData = new Uint8Array(compressedData);\n        }\n\n        arrayOut.set(uncompressedData, TableDirectoryEntry.outOffset);\n        offset = TableDirectoryEntry.outOffset + TableDirectoryEntry.origLength;\n\n        var padding = 0;\n        if ((offset % 4) != 0) {\n            padding = 4 - (offset % 4);\n        }\n        arrayOut.set(\n            new Uint8Array(padding).buffer,\n            TableDirectoryEntry.outOffset + TableDirectoryEntry.origLength\n        );\n\n        size = offset + padding;\n    });\n\n    return bufferOut.slice(0, size);\n}\n\n// End woff2otf.js\n\nreturn function(buffer) {\n  return convert_streams(buffer, tinyInflate)\n}\n\n}\n\n/**\n * An adapter that allows Typr.js to be used as if it were (a subset of) the OpenType.js API.\n * Also adds support for WOFF files (not WOFF2).\n */\n\nfunction parserFactory(Typr, woff2otf) {\n  const cmdArgLengths = {\n    M: 2,\n    L: 2,\n    Q: 4,\n    C: 6,\n    Z: 0\n  };\n\n  function wrapFontObj(typrFont) {\n    const glyphMap = Object.create(null);\n\n    const fontObj = {\n      unitsPerEm: typrFont.head.unitsPerEm,\n      ascender: typrFont.hhea.ascender,\n      descender: typrFont.hhea.descender,\n      forEachGlyph(text, fontSize, letterSpacing, callback) {\n        let glyphX = 0;\n        const fontScale = 1 / fontObj.unitsPerEm * fontSize;\n\n        const glyphIndices = Typr.U.stringToGlyphs(typrFont, text);\n        let charIndex = 0;\n        glyphIndices.forEach(glyphIndex => {\n          // Typr returns a glyph index per string codepoint, with -1s in place of those that\n          // were omitted due to ligature substitution. So we can track original index in the\n          // string via simple increment, and skip everything else when seeing a -1.\n          if (glyphIndex !== -1) {\n            let glyphObj = glyphMap[glyphIndex];\n            if (!glyphObj) {\n              const {cmds, crds} = Typr.U.glyphToPath(typrFont, glyphIndex);\n\n              // Find extents - Glyf gives this in metadata but not CFF, and Typr doesn't\n              // normalize the two, so it's simplest just to iterate ourselves.\n              let xMin, yMin, xMax, yMax;\n              if (crds.length) {\n                xMin = yMin = Infinity;\n                xMax = yMax = -Infinity;\n                for (let i = 0, len = crds.length; i < len; i += 2) {\n                  let x = crds[i];\n                  let y = crds[i + 1];\n                  if (x < xMin) xMin = x;\n                  if (y < yMin) yMin = y;\n                  if (x > xMax) xMax = x;\n                  if (y > yMax) yMax = y;\n                }\n              } else {\n                xMin = xMax = yMin = yMax = 0;\n              }\n\n              glyphObj = glyphMap[glyphIndex] = {\n                index: glyphIndex,\n                advanceWidth: typrFont.hmtx.aWidth[glyphIndex],\n                xMin,\n                yMin,\n                xMax,\n                yMax,\n                pathCommandCount: cmds.length,\n                forEachPathCommand(callback) {\n                  let argsIndex = 0;\n                  const argsArray = [];\n                  for (let i = 0, len = cmds.length; i < len; i++) {\n                    const numArgs = cmdArgLengths[cmds[i]];\n                    argsArray.length = 1 + numArgs;\n                    argsArray[0] = cmds[i];\n                    for (let j = 1; j <= numArgs; j++) {\n                      argsArray[j] = crds[argsIndex++];\n                    }\n                    callback.apply(null, argsArray);\n                  }\n                }\n              };\n            }\n\n            callback.call(null, glyphObj, glyphX, charIndex);\n\n            if (glyphObj.advanceWidth) {\n              glyphX += glyphObj.advanceWidth * fontScale;\n            }\n            if (letterSpacing) {\n              glyphX += letterSpacing * fontSize;\n            }\n          }\n          charIndex += (text.codePointAt(charIndex) > 0xffff ? 2 : 1);\n        });\n        return glyphX\n      }\n    };\n\n    return fontObj\n  }\n\n  return function parse(buffer) {\n    // Look to see if we have a WOFF file and convert it if so:\n    const peek = new Uint8Array(buffer, 0, 4);\n    const tag = Typr._bin.readASCII(peek, 0, 4);\n    if (tag === 'wOFF') {\n      buffer = woff2otf(buffer);\n    } else if (tag === 'wOF2') {\n      throw new Error('woff2 fonts not supported')\n    }\n    return wrapFontObj(Typr.parse(buffer)[0])\n  }\n}\n\n\nconst workerModule = defineWorkerModule({\n  name: 'Typr Font Parser',\n  dependencies: [typrFactory, woff2otfFactory, parserFactory],\n  init(typrFactory, woff2otfFactory, parserFactory) {\n    const Typr = typrFactory();\n    const woff2otf = woff2otfFactory();\n    return parserFactory(Typr, woff2otf)\n  }\n});\n\n//import fontParser from './FontParser_OpenType.js'\n\n\nconst CONFIG = {\n  defaultFontURL: 'https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxM.woff', //Roboto Regular\n  sdfGlyphSize: 64,\n  textureWidth: 2048\n};\nconst tempColor = new Color();\n\n/**\n * Customizes the text builder configuration. This must be called prior to the first font processing\n * request, and applies to all fonts.\n *\n * @param {String} config.defaultFontURL - The URL of the default font to use for text processing\n *                 requests, in case none is specified or the specifiede font fails to load or parse.\n *                 Defaults to \"Roboto Regular\" from Google Fonts.\n * @param {Number} config.sdfGlyphSize - The default size of each glyph's SDF (signed distance field)\n *                 texture used for rendering. Must be a power-of-two number, and applies to all fonts,\n *                 but note that this can also be overridden per call to `getTextRenderInfo()`.\n *                 Larger sizes can improve the quality of glyph rendering by increasing the sharpness\n *                 of corners and preventing loss of very thin lines, at the expense of memory. Defaults\n *                 to 64 which is generally a good balance of size and quality.\n * @param {Number} config.textureWidth - The width of the SDF texture; must be a power of 2. Defaults to\n *                 2048 which is a safe maximum texture dimension according to the stats at\n *                 https://webglstats.com/webgl/parameter/MAX_TEXTURE_SIZE and should allow for a\n *                 reasonably large number of glyphs (default glyph size of 64 and safe texture size of\n *                 2048^2 allows for 1024 glyphs.) This can be increased if you need to increase the\n *                 glyph size and/or have an extraordinary number of glyphs.\n */\nfunction configureTextBuilder(config) {\n  {\n    assign(CONFIG, config);\n  }\n}\n\n\n/**\n * The radial distance from glyph edges over which the SDF alpha will be calculated; if the alpha\n * at distance:0 is 0.5, then the alpha at this distance will be zero. This is defined as a percentage\n * of each glyph's maximum dimension in font space units so that it maps to the same minimum number of\n * SDF texels regardless of the glyph's size. A larger value provides greater alpha gradient resolution\n * and improves readability/antialiasing quality at small display sizes, but also decreases the number\n * of texels available for encoding path details.\n */\nconst SDF_DISTANCE_PERCENT = 1 / 8;\n\n\n/**\n * Repository for all font SDF atlas textures\n *\n *   {\n *     [font]: {\n *       sdfTexture: DataTexture\n *     }\n *   }\n */\nconst atlases = Object.create(null);\n\n/**\n * @typedef {object} TroikaTextRenderInfo - Format of the result from `getTextRenderInfo`.\n * @property {object} parameters - The normalized input arguments to the render call.\n * @property {DataTexture} sdfTexture - The SDF atlas texture.\n * @property {number} sdfGlyphSize - The size of each glyph's SDF.\n * @property {number} sdfMinDistancePercent - See `SDF_DISTANCE_PERCENT`\n * @property {Float32Array} glyphBounds - List of [minX, minY, maxX, maxY] quad bounds for each glyph.\n * @property {Float32Array} glyphAtlasIndices - List holding each glyph's index in the SDF atlas.\n * @property {Uint8Array} [glyphColors] - List holding each glyph's [r, g, b] color, if `colorRanges` was supplied.\n * @property {Float32Array} [caretPositions] - A list of caret positions for all glyphs; this is\n *           the bottom [x,y] of the cursor position before each char, plus one after the last char.\n * @property {number} [caretHeight] - An appropriate height for all selection carets.\n * @property {number} ascender - The font's ascender metric.\n * @property {number} descender - The font's descender metric.\n * @property {number} lineHeight - The final computed lineHeight measurement.\n * @property {number} topBaseline - The y position of the top line's baseline.\n * @property {Array<number>} totalBounds - The total [minX, minY, maxX, maxY] rect including all glyph\n *           quad bounds; this will be slightly larger than the actual glyph path edges due to SDF padding.\n * @property {Array<number>} totalBlockSize - The [width, height] of the text block; this does not include\n *           extra SDF padding so it is accurate to use for measurement.\n * @property {Array<number>} chunkedBounds - List of bounding rects for each consecutive set of N glyphs,\n *           in the format `{start:N, end:N, rect:[minX, minY, maxX, maxY]}`.\n * @property {object} timings - Timing info for various parts of the rendering logic including SDF\n *           generation, layout, etc.\n * @frozen\n */\n\n/**\n * @callback getTextRenderInfo~callback\n * @param {TroikaTextRenderInfo} textRenderInfo\n */\n\n/**\n * 用于请求呈现具有给定字体参数的文本字符串所需数据的主要入口点。\n * 这是一个异步调用，执行Web工作线程中的大部分逻辑。\n * @param {object} args\n * @param {getTextRenderInfo~callback} callback\n */\nfunction getTextRenderInfo(args, callback) {\n  args = assign({}, args);\n\n  // Apply default font here to avoid a 'null' atlas, and convert relative\n  // URLs to absolute so they can be resolved in the worker\n  args.font = toAbsoluteURL(args.font || CONFIG.defaultFontURL);\n\n  // Normalize text to a string\n  args.text = '' + args.text;\n\n  args.sdfGlyphSize = args.sdfGlyphSize || CONFIG.sdfGlyphSize;\n\n  // Normalize colors\n  if (args.colorRanges != null) {\n    let colors = {};\n    for (let key in args.colorRanges) {\n      if (args.colorRanges.hasOwnProperty(key)) {\n        let val = args.colorRanges[key];\n        if (typeof val !== 'number') {\n          val = tempColor.set(val).getHex();\n        }\n        colors[key] = val;\n      }\n    }\n    args.colorRanges = colors;\n  }\n\n  Object.freeze(args);\n\n  // Init the atlas for this font if needed\n  const {textureWidth} = CONFIG;\n  const {sdfGlyphSize} = args;\n  let atlasKey = `${args.font}@${sdfGlyphSize}`;\n  let atlas = atlases[atlasKey];\n  if (!atlas) {\n    atlas = atlases[atlasKey] = {\n      sdfTexture: new DataTexture(\n        new Uint8Array(sdfGlyphSize * textureWidth),\n        textureWidth,\n        sdfGlyphSize,\n        RedFormat,\n        undefined,\n        undefined,\n        undefined,\n        undefined,\n        LinearFilter,\n        LinearFilter\n      )\n    };\n    atlas.sdfTexture.font = args.font;\n  }\n\n  // 向Worker中的FontProcessor发出请求\n  processInWorker(args).then(result => {\n    // 如果响应具有newGlyphs，则将其复制到指定索引处的atlas纹理中\n    if (result.newGlyphSDFs) {\n      result.newGlyphSDFs.forEach(({textureData, atlasIndex}) => {\n        const texImg = atlas.sdfTexture.image;\n\n        // Grow the texture by power of 2 if needed\n        while (texImg.data.length < (atlasIndex + 1) * sdfGlyphSize * sdfGlyphSize) {\n          const biggerArray = new Uint8Array(texImg.data.length * 2);\n          biggerArray.set(texImg.data);\n          texImg.data = biggerArray;\n          texImg.height *= 2;\n        }\n\n        // Insert the new glyph's data into the full texture image at the correct offsets\n        const cols = texImg.width / sdfGlyphSize;\n        for (let y = 0; y < sdfGlyphSize; y++) {\n          const srcStartIndex = y * sdfGlyphSize;\n          const tgtStartIndex = texImg.width * sdfGlyphSize * Math.floor(atlasIndex / cols) //full rows\n            + (atlasIndex % cols) * sdfGlyphSize //partial row\n            + (y * texImg.width); //row within glyph\n          for (let x = 0; x < sdfGlyphSize; x++) {\n            texImg.data[tgtStartIndex + x] = textureData[srcStartIndex + x];\n          }\n        }\n      });\n      atlas.sdfTexture.needsUpdate = true;\n    }\n\n    // 使用文本布局数组和更新的纹理调用回调\n    callback(Object.freeze({\n      parameters: args,\n      sdfTexture: atlas.sdfTexture,\n      sdfGlyphSize,\n      sdfMinDistancePercent: SDF_DISTANCE_PERCENT,\n      glyphBounds: result.glyphBounds,\n      glyphAtlasIndices: result.glyphAtlasIndices,\n      glyphColors: result.glyphColors,\n      caretPositions: result.caretPositions,\n      caretHeight: result.caretHeight,\n      chunkedBounds: result.chunkedBounds,\n      ascender: result.ascender,\n      descender: result.descender,\n      lineHeight: result.lineHeight,\n      topBaseline: result.topBaseline,\n      totalBounds: result.totalBounds,\n      totalBlockSize: result.totalBlockSize,\n      timings: result.timings\n    }));\n  });\n}\n\n\n/**\n * Preload a given font and optionally pre-generate glyph SDFs for one or more character sequences.\n * This can be useful to avoid long pauses when first showing text in a scene, by preloading the\n * needed fonts and glyphs up front along with other assets.\n *\n * @param {object} options\n * @param {string} options.font - URL of the font file to preload. If not given, the default font will\n *        be loaded.\n * @param {string|string[]} options.characters - One or more character sequences for which to pre-\n *        generate glyph SDFs. Note that this will honor ligature substitution, so you may need\n *        to specify ligature sequences in addition to their individual characters to get all\n *        possible glyphs, e.g. `[\"t\", \"h\", \"th\"]` to get the \"t\" and \"h\" glyphs plus the \"th\" ligature.\n * @param {number} options.sdfGlyphSize - The size at which to prerender the SDF textures for the\n *        specified `characters`.\n * @param {function} callback - A function that will be called when the preloading is complete.\n */\nfunction preloadFont({font, characters, sdfGlyphSize}, callback) {\n  let text = Array.isArray(characters) ? characters.join('\\n') : '' + characters;\n  getTextRenderInfo({ font, sdfGlyphSize, text }, callback);\n}\n\n\n// Local assign impl so we don't have to import troika-core\nfunction assign(toObj, fromObj) {\n  for (let key in fromObj) {\n    if (fromObj.hasOwnProperty(key)) {\n      toObj[key] = fromObj[key];\n    }\n  }\n  return toObj\n}\n\n// Utility for making URLs absolute\nlet linkEl;\nfunction toAbsoluteURL(path) {\n  if (!linkEl) {\n    linkEl = typeof document === 'undefined' ? {} : document.createElement('a');\n  }\n  linkEl.href = path;\n  return linkEl.href\n}\n\n\nconst fontProcessorWorkerModule = defineWorkerModule({\n  name: 'FontProcessor',\n  dependencies: [\n    CONFIG,\n    SDF_DISTANCE_PERCENT,\n    workerModule,\n    createGlyphSegmentsQuadtree,\n    createSDFGenerator,\n    createFontProcessor\n  ],\n  init(config, sdfDistancePercent, fontParser, createGlyphSegmentsQuadtree, createSDFGenerator, createFontProcessor) {\n    const sdfGenerator = createSDFGenerator(\n      createGlyphSegmentsQuadtree,\n      {\n        sdfDistancePercent\n      }\n    );\n    return createFontProcessor(fontParser, sdfGenerator, {\n      defaultFontUrl: config.defaultFontURL\n    })\n  }\n});\n\nconst processInWorker = defineWorkerModule({\n  name: 'TextBuilder',\n  dependencies: [fontProcessorWorkerModule, ThenableWorkerModule],\n  init(fontProcessor, Thenable) {\n    return function(args) {\n      const thenable = new Thenable();\n      fontProcessor.process(args, thenable.resolve);\n      return thenable\n    }\n  },\n  getTransferables(result) {\n    // Mark array buffers as transferable to avoid cloning during postMessage\n    const transferables = [\n      result.glyphBounds.buffer,\n      result.glyphAtlasIndices.buffer\n    ];\n    if (result.caretPositions) {\n      transferables.push(result.caretPositions.buffer);\n    }\n    if (result.newGlyphSDFs) {\n      result.newGlyphSDFs.forEach(d => {\n        transferables.push(d.textureData.buffer);\n      });\n    }\n    return transferables\n  }\n});\n\nconst templateGeometries = {};\nfunction getTemplateGeometry(detail) {\n  let geom = templateGeometries[detail];\n  if (!geom) {\n    geom = templateGeometries[detail] = new PlaneBufferGeometry(\n      1,\n      1,\n      detail,\n      detail\n    ).translate(0.5, 0.5, 0);\n  }\n  return geom;\n}\nconst tempVec3 = new Vector3();\n\nconst glyphBoundsAttrName = \"aTroikaGlyphBounds\";\nconst glyphIndexAttrName = \"aTroikaGlyphIndex\";\nconst glyphColorAttrName = \"aTroikaGlyphColor\";\n\n/**\n@class GlyphsGeometry\n\nA specialized Geometry for rendering a set of text glyphs. Uses InstancedBufferGeometry to\nrender the glyphs using GPU instancing of a single quad, rather than constructing a whole\ngeometry with vertices, for much smaller attribute arraybuffers according to this math:\n\n  Where N = number of glyphs...\n\n  Instanced:\n  - position: 4 * 3\n  - index: 2 * 3\n  - normal: 4 * 3\n  - uv: 4 * 2\n  - glyph x/y bounds: N * 4\n  - glyph indices: N * 1\n  = 5N + 38\n\n  Non-instanced:\n  - position: N * 4 * 3\n  - index: N * 2 * 3\n  - normal: N * 4 * 3\n  - uv: N * 4 * 2\n  - glyph indices: N * 1\n  = 39N\n\nA downside of this is the rare-but-possible lack of the instanced arrays extension,\nwhich we could potentially work around with a fallback non-instanced implementation.\n\n*/\nclass GlyphsGeometry extends InstancedBufferGeometry {\n  constructor() {\n    super();\n\n    this.detail = 1;\n\n    // Preallocate zero-radius bounding sphere\n    this.boundingSphere = new Sphere();\n    this.boundingBox = new Box3();\n  }\n\n  computeBoundingSphere() {\n    // No-op; we'll sync the boundingSphere proactively in `updateGlyphs`.\n  }\n\n  computeBoundingBox() {\n    // No-op; we'll sync the boundingBox proactively in `updateGlyphs`.\n  }\n\n  set detail(detail) {\n    if (detail !== this._detail) {\n      this._detail = detail;\n      if (typeof detail !== \"number\" || detail < 1) {\n        detail = 1;\n      }\n      let tpl = getTemplateGeometry(detail);\n      [\"position\", \"normal\", \"uv\"].forEach((attr) => {\n        this.attributes[attr] = tpl.attributes[attr].clone();\n      });\n      this.setIndex(tpl.getIndex().clone());\n    }\n  }\n  get detail() {\n    return this._detail;\n  }\n\n  /**\n   * Update the geometry for a new set of glyphs.\n   * @param {Float32Array} glyphBounds - An array holding the planar bounds for all glyphs\n   *        to be rendered, 4 entries for each glyph: x1,x2,y1,y1\n   * @param {Float32Array} glyphAtlasIndices - An array holding the index of each glyph within\n   *        the SDF atlas texture.\n   * @param {Array} totalBounds - An array holding the [minX, minY, maxX, maxY] across all glyphs\n   * @param {Array} [chunkedBounds] - An array of objects describing bounds for each chunk of N\n   *        consecutive glyphs: `{start:N, end:N, rect:[minX, minY, maxX, maxY]}`. This can be\n   *        used with `applyClipRect` to choose an optimized `instanceCount`.\n   * @param {Uint8Array} [glyphColors] - An array holding r,g,b values for each glyph.\n   */\n  updateGlyphs(\n    glyphBounds,\n    glyphAtlasIndices,\n    totalBounds,\n    chunkedBounds,\n    glyphColors\n  ) {\n    // Update the instance attributes\n    updateBufferAttr(this, glyphBoundsAttrName, glyphBounds, 4);\n    updateBufferAttr(this, glyphIndexAttrName, glyphAtlasIndices, 1);\n    updateBufferAttr(this, glyphColorAttrName, glyphColors, 3);\n    this._chunkedBounds = chunkedBounds;\n    setInstanceCount(this, glyphAtlasIndices.length);\n\n    // Update the boundingSphere based on the total bounds\n    const sphere = this.boundingSphere;\n    sphere.center.set(\n      (totalBounds[0] + totalBounds[2]) / 2,\n      (totalBounds[1] + totalBounds[3]) / 2,\n      0\n    );\n    sphere.radius = sphere.center.distanceTo(\n      tempVec3.set(totalBounds[0], totalBounds[1], 0)\n    );\n\n    // Update the boundingBox based on the total bounds\n    const box = this.boundingBox;\n    // box.center.set(\n    //   (totalBounds[0] + totalBounds[2]) / 2,\n    //   (totalBounds[1] + totalBounds[3]) / 2,\n    //   0\n    // );]\n    box.min = new Vector3(totalBounds[0], totalBounds[1], -10);\n    box.max = new Vector3(totalBounds[2], totalBounds[3], 10);\n  }\n\n  /**\n   * Given a clipping rect, and the chunkedBounds from the last updateGlyphs call, choose the lowest\n   * `instanceCount` that will show all glyphs within the clipped view. This is an optimization\n   * for long blocks of text that are clipped, to skip vertex shader evaluation for glyphs that would\n   * be clipped anyway.\n   *\n   * Note that since `drawElementsInstanced[ANGLE]` only accepts an instance count and not a starting\n   * offset, this optimization becomes less effective as the clipRect moves closer to the end of the\n   * text block. We could fix that by switching from instancing to a full geometry with a drawRange,\n   * but at the expense of much larger attribute buffers (see classdoc above.)\n   *\n   * @param {Vector4} clipRect\n   */\n  applyClipRect(clipRect) {\n    let count = this.getAttribute(glyphIndexAttrName).count;\n    let chunks = this._chunkedBounds;\n    if (chunks) {\n      for (let i = chunks.length; i--; ) {\n        count = chunks[i].end;\n        let rect = chunks[i].rect;\n        // note: both rects are l-b-r-t\n        if (\n          rect[1] < clipRect.w &&\n          rect[3] > clipRect.y &&\n          rect[0] < clipRect.z &&\n          rect[2] > clipRect.x\n        ) {\n          break;\n        }\n      }\n    }\n    setInstanceCount(this, count);\n  }\n}\n\n// Compat for pre r109:\nif (!GlyphsGeometry.prototype.setAttribute) {\n  GlyphsGeometry.prototype.setAttribute = function (name, attribute) {\n    this.attributes[name] = attribute;\n    return this;\n  };\n}\n\nfunction updateBufferAttr(geom, attrName, newArray, itemSize) {\n  const attr = geom.getAttribute(attrName);\n  if (newArray) {\n    // If length isn't changing, just update the attribute's array data\n    if (attr && attr.array.length === newArray.length) {\n      attr.array.set(newArray);\n      attr.needsUpdate = true;\n    } else {\n      geom.setAttribute(\n        attrName,\n        new InstancedBufferAttribute(newArray, itemSize)\n      );\n      // If the new attribute has a different size, we also have to (as of r117) manually clear the\n      // internal cached max instance count. See https://github.com/mrdoob/three.js/issues/19706\n      // It's unclear if this is a threejs bug or a truly unsupported scenario; discussion in\n      // that ticket is ambiguous as to whether replacing a BufferAttribute with one of a\n      // different size is supported, but https://github.com/mrdoob/three.js/pull/17418 strongly\n      // implies it should be supported. It's possible we need to\n      delete geom._maxInstanceCount; //for r117+, could be fragile\n      geom.dispose(); //for r118+, more robust feeling, but more heavy-handed than I'd like\n    }\n  } else if (attr) {\n    geom.deleteAttribute(attrName);\n  }\n}\n\n// Handle maxInstancedCount -> instanceCount rename that happened in three r117\nfunction setInstanceCount(geom, count) {\n  geom[\n    geom.hasOwnProperty(\"instanceCount\") ? \"instanceCount\" : \"maxInstancedCount\"\n  ] = count;\n}\n\n// language=GLSL\nconst VERTEX_DEFS = `\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform vec4 uTroikaTotalBounds;\nuniform vec4 uTroikaClipRect;\nuniform mat3 uTroikaOrient;\nuniform bool uTroikaUseGlyphColors;\nattribute vec4 aTroikaGlyphBounds;\nattribute float aTroikaGlyphIndex;\nattribute vec3 aTroikaGlyphColor;\nvarying vec2 vTroikaSDFTextureUV;\nvarying vec2 vTroikaGlyphUV;\nvarying vec3 vTroikaGlyphColor;\n`;\n\n// language=GLSL prefix=\"void main() {\" suffix=\"}\"\nconst VERTEX_TRANSFORM = `\nvec4 bounds = aTroikaGlyphBounds;\nvec4 clippedBounds = vec4(\n  clamp(bounds.xy, uTroikaClipRect.xy, uTroikaClipRect.zw),\n  clamp(bounds.zw, uTroikaClipRect.xy, uTroikaClipRect.zw)\n);\nvec2 clippedXY = (mix(clippedBounds.xy, clippedBounds.zw, position.xy) - bounds.xy) / (bounds.zw - bounds.xy);\nvTroikaGlyphUV = clippedXY.xy;\n\nfloat cols = uTroikaSDFTextureSize.x / uTroikaSDFGlyphSize;\nvTroikaSDFTextureUV = vec2(\n  mod(aTroikaGlyphIndex, cols) + clippedXY.x,\n  floor(aTroikaGlyphIndex / cols) + clippedXY.y\n) * uTroikaSDFGlyphSize / uTroikaSDFTextureSize;\n\nposition.xy = mix(bounds.xy, bounds.zw, clippedXY);\n\nuv = vec2(\n  (position.x - uTroikaTotalBounds.x) / (uTroikaTotalBounds.z - uTroikaTotalBounds.x),\n  (position.y - uTroikaTotalBounds.y) / (uTroikaTotalBounds.w - uTroikaTotalBounds.y)\n);\n\nposition = uTroikaOrient * position;\nnormal = uTroikaOrient * normal;\n`;\n\n// language=GLSL\nconst FRAGMENT_DEFS = `\nuniform sampler2D uTroikaSDFTexture;\nuniform float uTroikaSDFMinDistancePct;\nuniform bool uTroikaSDFDebug;\nvarying vec2 vTroikaSDFTextureUV;\nvarying vec2 vTroikaGlyphUV;\n\nfloat troikaGetTextAlpha() {\n  float troikaSDFValue = texture2D(uTroikaSDFTexture, vTroikaSDFTextureUV).r;\n  \n  #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL)\n  float alpha = step(0.5, troikaSDFValue);\n  #else\n  ${''/*\n    When the standard derivatives extension is available, we choose an antialiasing alpha threshold based\n    on the potential change in the SDF's alpha from this fragment to its neighbor. This strategy maximizes \n    readability and edge crispness at all sizes and screen resolutions. Interestingly, this also means that \n    below a minimum size we're effectively displaying the SDF texture unmodified.\n  */}\n  #if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300\n  float aaDist = min(\n    0.5,\n    0.5 * min(\n      fwidth(vTroikaGlyphUV.x),\n      fwidth(vTroikaGlyphUV.y)\n    )\n  ) / uTroikaSDFMinDistancePct;\n  #else\n  float aaDist = 0.01;\n  #endif\n  \n  float alpha = uTroikaSDFDebug ? troikaSDFValue : smoothstep(\n    0.5 - aaDist,\n    0.5 + aaDist,\n    troikaSDFValue\n  );\n  #endif\n  \n  return alpha;\n}\n`;\n\n// language=GLSL prefix=\"void main() {\" suffix=\"}\"\nconst FRAGMENT_TRANSFORM = `\nfloat troikaAlphaMult = troikaGetTextAlpha();\nif (troikaAlphaMult == 0.0) {\n  discard;\n} else {\n  gl_FragColor.a *= troikaAlphaMult;\n}\n`;\n\n\n/**\n * Create a material for rendering text, derived from a baseMaterial\n */\nfunction createTextDerivedMaterial(baseMaterial) {\n  const textMaterial = createDerivedMaterial(baseMaterial, {\n    extensions: {derivatives: true},\n    uniforms: {\n      uTroikaSDFTexture: {value: null},\n      uTroikaSDFTextureSize: {value: new Vector2()},\n      uTroikaSDFGlyphSize: {value: 0},\n      uTroikaSDFMinDistancePct: {value: 0},\n      uTroikaTotalBounds: {value: new Vector4(0,0,0,0)},\n      uTroikaClipRect: {value: new Vector4(0,0,0,0)},\n      uTroikaOrient: {value: new Matrix3()},\n      uTroikaUseGlyphColors: {value: true},\n      uTroikaSDFDebug: {value: false}\n    },\n    vertexDefs: VERTEX_DEFS,\n    vertexTransform: VERTEX_TRANSFORM,\n    fragmentDefs: FRAGMENT_DEFS,\n    fragmentColorTransform: FRAGMENT_TRANSFORM,\n    customRewriter({vertexShader, fragmentShader}) {\n      let uDiffuseRE = /\\buniform\\s+vec3\\s+diffuse\\b/;\n      if (uDiffuseRE.test(fragmentShader)) {\n        // Replace all instances of `diffuse` with our varying\n        fragmentShader = fragmentShader\n          .replace(uDiffuseRE, 'varying vec3 vTroikaGlyphColor')\n          .replace(/\\bdiffuse\\b/g, 'vTroikaGlyphColor');\n        // Make sure the vertex shader declares the uniform so we can grab it as a fallback\n        if (!uDiffuseRE.test(vertexShader)) {\n          vertexShader = vertexShader.replace(\n            voidMainRegExp,\n            'uniform vec3 diffuse;\\n$&\\nvTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse;\\n'\n          );\n        }\n      }\n      return { vertexShader, fragmentShader }\n    }\n  });\n\n  // Force transparency - TODO is this reasonable?\n  textMaterial.transparent = true;\n\n  Object.defineProperties(textMaterial, {\n    isTroikaTextMaterial: {value: true},\n\n    // WebGLShadowMap reverses the side of the shadow material by default, which fails\n    // for planes, so here we force the `shadowSide` to always match the main side.\n    shadowSide: {\n      get() {\n        return this.side\n      },\n      set() {\n        //no-op\n      }\n    }\n  });\n\n  return textMaterial\n}\n\nconst defaultMaterial = new MeshBasicMaterial({\n  color: 0xffffff,\n  side: DoubleSide,\n  transparent: true\n});\n\nconst tempMat4 = new Matrix4();\nconst tempVec3a = new Vector3();\nconst tempVec3b = new Vector3();\nconst tempArray = [];\nconst origin = new Vector3();\nconst defaultOrient = '+x+y';\n\nconst raycastMesh = new Mesh(\n  new PlaneBufferGeometry(1, 1).translate(0.5, 0.5, 0),\n  defaultMaterial\n);\n\nconst syncStartEvent = {type: 'syncstart'};\nconst syncCompleteEvent = {type: 'synccomplete'};\n\nconst SYNCABLE_PROPS = [\n  'font',\n  'fontSize',\n  'letterSpacing',\n  'lineHeight',\n  'maxWidth',\n  'overflowWrap',\n  'text',\n  'textAlign',\n  'textIndent',\n  'whiteSpace',\n  'anchorX',\n  'anchorY',\n  'colorRanges',\n  'sdfGlyphSize'\n];\n\nconst COPYABLE_PROPS = SYNCABLE_PROPS.concat(\n  'material',\n  'color',\n  'depthOffset',\n  'clipRect',\n  'orientation',\n  'glyphGeometryDetail'\n);\n\n\n\n/**\n * @class Text\n *\n * 一个ThreeJS网格，使用带符号的距离在3D空间的平面上呈现一串文本\n * fields (SDF).\n */\nclass Text extends Mesh {\n  constructor() {\n    const geometry = new GlyphsGeometry();\n    super(geometry, null);\n\n    // === Text layout properties: === //\n\n    /**\n     * @member {string} text\n     * The string of text to be rendered.\n     */\n    this.text = '';\n\n    /**\n     * @member {number|string} anchorX\n     * Defines the horizontal position in the text block that should line up with the local origin.\n     * Can be specified as a numeric x position in local units, a string percentage of the total\n     * text block width e.g. `'25%'`, or one of the following keyword strings: 'left', 'center',\n     * or 'right'.\n     */\n    this.anchorX = 0;\n\n    /**\n     * @member {number|string} anchorX\n     * Defines the vertical position in the text block that should line up with the local origin.\n     * Can be specified as a numeric y position in local units (note: down is negative y), a string\n     * percentage of the total text block height e.g. `'25%'`, or one of the following keyword strings:\n     * 'top', 'top-baseline', 'middle', 'bottom-baseline', or 'bottom'.\n     */\n    this.anchorY = 0;\n\n    /**\n     * @member {string} font\n     * 要使用的自定义字体的URL。字体文件可以是OpenType支持的任何格式（请参见https://github.com/opentypejs/opentype.js).\n     * 默认为从Google字体加载的Roboto字体.\n     */\n    this.font = null; //will use default from TextBuilder\n\n    /**\n     * @member {number} fontSize\n     * The size at which to render the font in local units; corresponds to the em-box height\n     * of the chosen `font`.\n     */\n    this.fontSize = 0.1;\n\n    /**\n     * @member {number} letterSpacing\n     * Sets a uniform adjustment to spacing between letters after kerning is applied. Positive\n     * numbers increase spacing and negative numbers decrease it.\n     */\n    this.letterSpacing = 0;\n\n    /**\n     * @member {number|string} lineHeight\n     * Sets the height of each line of text, as a multiple of the `fontSize`. Defaults to 'normal'\n     * which chooses a reasonable height based on the chosen font's ascender/descender metrics.\n     */\n    this.lineHeight = 'normal';\n\n    /**\n     * @member {number} maxWidth\n     * The maximum width of the text block, above which text may start wrapping according to the\n     * `whiteSpace` and `overflowWrap` properties.\n     */\n    this.maxWidth = Infinity;\n\n    /**\n     * @member {string} overflowWrap\n     * Defines how text wraps if the `whiteSpace` property is `normal`. Can be either `'normal'`\n     * to break at whitespace characters, or `'break-word'` to allow breaking within words.\n     * Defaults to `'normal'`.\n     */\n    this.overflowWrap = 'normal';\n\n    /**\n     * @member {string} textAlign\n     * The horizontal alignment of each line of text within the overall text bounding box.\n     */\n    this.textAlign = 'left';\n\n    /**\n     * @member {number} textIndent\n     * Indentation for the first character of a line; see CSS `text-indent`.\n     */\n    this.textIndent = 0;\n\n    /**\n     * @member {string} whiteSpace\n     * Defines whether text should wrap when a line reaches the `maxWidth`. Can\n     * be either `'normal'` (the default), to allow wrapping according to the `overflowWrap` property,\n     * or `'nowrap'` to prevent wrapping. Note that `'normal'` here honors newline characters to\n     * manually break lines, making it behave more like `'pre-wrap'` does in CSS.\n     */\n    this.whiteSpace = 'normal';\n\n    // === Presentation properties: === //\n\n    /**\n     * @member {THREE.Material} material\n     * Defines a _base_ material to be used when rendering the text. This material will be\n     * automatically replaced with a material derived from it, that adds shader code to\n     * decrease the alpha for each fragment (pixel) outside the text glyphs, with antialiasing.\n     * By default it will derive from a simple white MeshBasicMaterial, but you can use any\n     * of the other mesh materials to gain other features like lighting, texture maps, etc.\n     *\n     * Also see the `color` shortcut property.\n     */\n    this.material = null;\n\n    /**\n     * @member {string|number|THREE.Color} color\n     * This is a shortcut for setting the `color` of the text's material. You can use this\n     * if you don't want to specify a whole custom `material`.\n     */\n    this.color = null;\n\n    /**\n     * @member {object|null} colorRanges\n     * WARNING: This API is experimental and may change.\n     * This allows more fine-grained control of colors for individual or ranges of characters,\n     * taking precedence over the material's `color`. Its format is an Object whose keys each\n     * define a starting character index for a range, and whose values are the color for each\n     * range. The color value can be a numeric hex color value, a `THREE.Color` object, or\n     * any of the strings accepted by `THREE.Color`.\n     */\n    this.colorRanges = null;\n\n    /**\n     * @member {number} depthOffset\n     * This is a shortcut for setting the material's `polygonOffset` and related properties,\n     * which can be useful in preventing z-fighting when this text is laid on top of another\n     * plane in the scene. Positive numbers are further from the camera, negatives closer.\n     */\n    this.depthOffset = 0;\n\n    /**\n     * @member {Array<number>} clipRect\n     * If specified, defines a `[minX, minY, maxX, maxY]` of a rectangle outside of which all\n     * pixels will be discarded. This can be used for example to clip overflowing text when\n     * `whiteSpace='nowrap'`.\n     */\n    this.clipRect = null;\n\n    /**\n     * @member {string} orientation\n     * Defines the axis plane on which the text should be laid out when the mesh has no extra\n     * rotation transform. It is specified as a string with two axes: the horizontal axis with\n     * positive pointing right, and the vertical axis with positive pointing up. By default this\n     * is '+x+y', meaning the text sits on the xy plane with the text's top toward positive y\n     * and facing positive z. A value of '+x-z' would place it on the xz plane with the text's\n     * top toward negative z and facing positive y.\n     */\n    this.orientation = defaultOrient;\n\n    /**\n     * @member {number} glyphGeometryDetail\n     * Controls number of vertical/horizontal segments that make up each glyph's rectangular\n     * plane. Defaults to 1. This can be increased to provide more geometrical detail for custom\n     * vertex shader effects, for example.\n     */\n    this.glyphGeometryDetail = 1;\n\n    /**\n     * @member {number|null} sdfGlyphSize\n     * The size of each glyph's SDF (signed distance field) used for rendering. This must be a\n     * power-of-two number. Defaults to 64 which is generally a good balance of size and quality\n     * for most fonts. Larger sizes can improve the quality of glyph rendering by increasing\n     * the sharpness of corners and preventing loss of very thin lines, at the expense of\n     * increased memory footprint and longer SDF generation time.\n     */\n    this.sdfGlyphSize = null;\n\n    this.debugSDF = false;\n  }\n\n  /**\n   * 根据当前与文本相关的配置属性更新文本呈现.\n   * 这是一个异步进程，所以你可以传入一个回调函数，当它完成时执行。\n   * @param {function} [callback]\n   */\n  sync(callback) {\n    if (this._needsSync) {\n      //console.log('syncing text', this.text)\n      this._needsSync = false;\n\n      // 如果有另一个同步仍在进行中，排队等待它完成\n      if (this._isSyncing) {\n        (this._queuedSyncs || (this._queuedSyncs = [])).push(callback);\n      } else {\n        this._isSyncing = true;\n        this.dispatchEvent(syncStartEvent);\n\n        getTextRenderInfo({\n          text: this.text,\n          font: this.font,\n          fontSize: this.fontSize || 0.1,\n          letterSpacing: this.letterSpacing || 0,\n          lineHeight: this.lineHeight || 'normal',\n          maxWidth: this.maxWidth,\n          textAlign: this.textAlign,\n          textIndent: this.textIndent,\n          whiteSpace: this.whiteSpace,\n          overflowWrap: this.overflowWrap,\n          anchorX: this.anchorX,\n          anchorY: this.anchorY,\n          colorRanges: this.colorRanges,\n          includeCaretPositions: true, //TODO parameterize\n          sdfGlyphSize: this.sdfGlyphSize\n        }, textRenderInfo => {\n          this._isSyncing = false;\n\n          // 在onBeforeRender中保存结果以供以后使用\n          this._textRenderInfo = textRenderInfo;\n\n          // 更新几何属性\n          this.geometry.updateGlyphs(\n            textRenderInfo.glyphBounds,\n            textRenderInfo.glyphAtlasIndices,\n            textRenderInfo.totalBounds,\n            textRenderInfo.chunkedBounds,\n            textRenderInfo.glyphColors\n          );\n\n          // 如果我们有额外的同步请求排队，启动它\n          const queued = this._queuedSyncs;\n          if (queued) {\n            this._queuedSyncs = null;\n            this._needsSync = true;\n            this.sync(() => {\n              queued.forEach(fn => fn && fn());\n            });\n          }\n\n          this.dispatchEvent(syncCompleteEvent);\n          if (callback) {\n            callback();\n          }\n        });\n      }\n    }\n  }\n\n  /**\n   * Initiate a sync if needed - note it won't complete until next frame at the\n   * earliest so if possible it's a good idea to call sync() manually as soon as\n   * all the properties have been set.\n   * @override\n   */\n  onBeforeRender() {\n    this.sync();\n    this._prepareForRender();\n  }\n\n  /**\n   * Shortcut to dispose the geometry specific to this instance.\n   * Note: we don't also dispose the derived material here because if anything else is\n   * sharing the same base material it will result in a pause next frame as the program\n   * is recompiled. Instead users can dispose the base material manually, like normal,\n   * and we'll also dispose the derived material at that time.\n   */\n  dispose() {\n    this.geometry.dispose();\n  }\n\n  /**\n   * @property {TroikaTextRenderInfo|null} textRenderInfo\n   * @readonly\n   * The current processed rendering data for this TextMesh, returned by the TextBuilder after\n   * a `sync()` call. This will be `null` initially, and may be stale for a short period until\n   * the asynchrous `sync()` process completes.\n   */\n  get textRenderInfo() {\n    return this._textRenderInfo || null\n  }\n\n  // Handler for automatically wrapping the base material with our upgrades. We do the wrapping\n  // lazily on _read_ rather than write to avoid unnecessary wrapping on transient values.\n  get material() {\n    let derivedMaterial = this._derivedMaterial;\n    const baseMaterial = this._baseMaterial || defaultMaterial;\n    if (!derivedMaterial || derivedMaterial.baseMaterial !== baseMaterial) {\n      derivedMaterial = this._derivedMaterial = createTextDerivedMaterial(baseMaterial);\n      // dispose the derived material when its base material is disposed:\n      baseMaterial.addEventListener('dispose', function onDispose() {\n        baseMaterial.removeEventListener('dispose', onDispose);\n        derivedMaterial.dispose();\n      });\n    }\n    return derivedMaterial\n  }\n  set material(baseMaterial) {\n    if (baseMaterial && baseMaterial.isTroikaTextMaterial) { //prevent double-derivation\n      this._derivedMaterial = baseMaterial;\n      this._baseMaterial = baseMaterial.baseMaterial;\n    } else {\n      this._baseMaterial = baseMaterial;\n    }\n  }\n\n  get glyphGeometryDetail() {\n    return this.geometry.detail\n  }\n  set glyphGeometryDetail(detail) {\n    this.geometry.detail = detail;\n  }\n\n  // Create and update material for shadows upon request:\n  get customDepthMaterial() {\n    return this.material.getDepthMaterial()\n  }\n  get customDistanceMaterial() {\n    return this.material.getDistanceMaterial()\n  }\n\n  _prepareForRender() {\n    const material = this._derivedMaterial;\n    const uniforms = material.uniforms;\n    const textInfo = this.textRenderInfo;\n    if (textInfo) {\n      const {sdfTexture, totalBounds} = textInfo;\n      uniforms.uTroikaSDFTexture.value = sdfTexture;\n      uniforms.uTroikaSDFTextureSize.value.set(sdfTexture.image.width, sdfTexture.image.height);\n      uniforms.uTroikaSDFGlyphSize.value = textInfo.sdfGlyphSize;\n      uniforms.uTroikaSDFMinDistancePct.value = textInfo.sdfMinDistancePercent;\n      uniforms.uTroikaTotalBounds.value.fromArray(totalBounds);\n      uniforms.uTroikaUseGlyphColors.value = !!textInfo.glyphColors;\n\n      let clipRect = this.clipRect;\n      if (!(clipRect && Array.isArray(clipRect) && clipRect.length === 4)) {\n        uniforms.uTroikaClipRect.value.fromArray(totalBounds);\n      } else {\n        uniforms.uTroikaClipRect.value.set(\n          Math.max(totalBounds[0], clipRect[0]),\n          Math.max(totalBounds[1], clipRect[1]),\n          Math.min(totalBounds[2], clipRect[2]),\n          Math.min(totalBounds[3], clipRect[3])\n        );\n      }\n      this.geometry.applyClipRect(uniforms.uTroikaClipRect.value);\n    }\n    uniforms.uTroikaSDFDebug.value = !!this.debugSDF;\n    material.polygonOffset = !!this.depthOffset;\n    material.polygonOffsetFactor = material.polygonOffsetUnits = this.depthOffset || 0;\n\n    // 通过网格上的\"颜色\"道具设置材料颜色的快捷方式:\n    const color = this.color;\n    if (color != null && material.color && material.color.isColor && color !== material._troikaColor) {\n      material.color.set(material._troikaColor = color);\n    }\n\n    // base orientation\n    let orient = this.orientation || defaultOrient;\n    if (orient !== material._orientation) {\n      let rotMat = uniforms.uTroikaOrient.value;\n      orient = orient.replace(/[^-+xyz]/g, '');\n      let match = orient !== defaultOrient && orient.match(/^([-+])([xyz])([-+])([xyz])$/);\n      if (match) {\n        let [, hSign, hAxis, vSign, vAxis] = match;\n        tempVec3a.set(0, 0, 0)[hAxis] = hSign === '-' ? 1 : -1;\n        tempVec3b.set(0, 0, 0)[vAxis] = vSign === '-' ? -1 : 1;\n        tempMat4.lookAt(origin, tempVec3a.cross(tempVec3b), tempVec3b);\n        rotMat.setFromMatrix4(tempMat4);\n      } else {\n        rotMat.identity();\n      }\n      material._orientation = orient;\n    }\n  }\n\n  /**\n   * @override Custom raycasting to test against the whole text block's max rectangular bounds\n   * TODO is there any reason to make this more granular, like within individual line or glyph rects?\n   */\n  raycast(raycaster, intersects) {\n    const textInfo = this.textRenderInfo;\n    if (textInfo) {\n      const bounds = textInfo.totalBounds;\n      raycastMesh.matrixWorld.multiplyMatrices(\n        this.matrixWorld,\n        tempMat4.set(\n          bounds[2] - bounds[0], 0, 0, bounds[0],\n          0, bounds[3] - bounds[1], 0, bounds[1],\n          0, 0, 1, 0,\n          0, 0, 0, 1\n        )\n      );\n      tempArray.length = 0;\n      raycastMesh.raycast(raycaster, tempArray);\n      for (let i = 0; i < tempArray.length; i++) {\n        tempArray[i].object = this;\n        intersects.push(tempArray[i]);\n      }\n    }\n  }\n\n  copy(source) {\n    super.copy(source);\n    COPYABLE_PROPS.forEach(prop => {\n      this[prop] = source[prop];\n    });\n    return this\n  }\n\n  clone() {\n    return new this.constructor().copy(this)\n  }\n}\n\n\n// Create setters for properties that affect text layout:\nSYNCABLE_PROPS.forEach(prop => {\n  const privateKey = '_private_' + prop;\n  Object.defineProperty(Text.prototype, prop, {\n    get() {\n      return this[privateKey]\n    },\n    set(value) {\n      if (value !== this[privateKey]) {\n        this[privateKey] = value;\n        this._needsSync = true;\n      }\n    }\n  });\n});\n\n\n// Deprecation handler for `anchor` array:\nlet deprMsgShown = false;\nObject.defineProperty(Text.prototype, 'anchor', {\n  get() {\n    return this._deprecated_anchor\n  },\n  set(val) {\n    this._deprecated_anchor = val;\n    if (!deprMsgShown) {\n      console.warn('TextMesh: `anchor` has been deprecated; use `anchorX` and `anchorY` instead.');\n      deprMsgShown = true;\n    }\n    if (Array.isArray(val)) {\n      this.anchorX = `${(+val[0] || 0) * 100}%`;\n      this.anchorY = `${(+val[1] || 0) * 100}%`;\n    } else {\n      this.anchorX = this.anchorY = 0;\n    }\n  }\n});\n\n//=== Utility functions for dealing with carets and selection ranges ===//\n\n/**\n * @typedef {object} TextCaret\n * @property {number} x - x position of the caret\n * @property {number} y - y position of the caret's bottom\n * @property {number} height - height of the caret\n * @property {number} charIndex - the index in the original input string of this caret's target\n *   character; the caret will be for the position _before_ that character.\n */\n\n/**\n * Given a local x/y coordinate in the text block plane, find the nearest caret position.\n * @param {TroikaTextRenderInfo} textRenderInfo - a result object from TextBuilder#getTextRenderInfo\n * @param {number} x\n * @param {number} y\n * @return {TextCaret | null}\n */\nfunction getCaretAtPoint(textRenderInfo, x, y) {\n  let closestCaret = null;\n  const {caretHeight} = textRenderInfo;\n  const caretsByRow = groupCaretsByRow(textRenderInfo);\n\n  // Find nearest row by y first\n  let closestRowY = Infinity;\n  caretsByRow.forEach((carets, rowY) => {\n    if (Math.abs(y - (rowY + caretHeight / 2)) < Math.abs(y - (closestRowY + caretHeight / 2))) {\n      closestRowY = rowY;\n    }\n  });\n\n  // Then find closest caret by x within that row\n  caretsByRow.get(closestRowY).forEach(caret => {\n    if (!closestCaret || Math.abs(x - caret.x) < Math.abs(x - closestCaret.x)) {\n      closestCaret = caret;\n    }\n  });\n  return closestCaret\n}\n\n\nconst _rectsCache = new WeakMap();\n\n/**\n * Given start and end character indexes, return a list of rectangles covering all the\n * characters within that selection.\n * @param {TroikaTextRenderInfo} textRenderInfo\n * @param {number} start - index of the first char in the selection\n * @param {number} end - index of the first char after the selection\n * @return {Array<{left, top, right, bottom}> | null}\n */\nfunction getSelectionRects(textRenderInfo, start, end) {\n  let rects;\n  if (textRenderInfo) {\n    // Check cache - textRenderInfo is frozen so it's safe to cache based on it\n    let prevResult = _rectsCache.get(textRenderInfo);\n    if (prevResult && prevResult.start === start && prevResult.end === end) {\n      return prevResult.rects\n    }\n\n    const {caretPositions, caretHeight, totalBounds} = textRenderInfo;\n\n    // Normalize\n    if (end < start) {\n      const s = start;\n      start = end;\n      end = s;\n    }\n    start = Math.max(start, 0);\n    end = Math.min(end, caretPositions.length + 1);\n\n    // Collect into one rect per row\n    let rows = new Map();\n    for (let i = start; i < end; i++) {\n      const x1 = caretPositions[i * 3];\n      const x2 = caretPositions[i * 3 + 1];\n      const y = caretPositions[i * 3 + 2];\n      let row = rows.get(y);\n      if (!row) {\n        row = {left: x1, right: x2, bottom: y, top: y + caretHeight};\n        rows.set(y, row);\n      } else {\n        row.left = Math.max(Math.min(row.left, x1), totalBounds[0]);\n        row.right = Math.min(Math.max(row.right, x2), totalBounds[2]);\n      }\n    }\n    rects = [];\n    rows.forEach(rect => {\n      rects.push(rect);\n    });\n\n    _rectsCache.set(textRenderInfo, {start, end, rects});\n  }\n  return rects\n}\n\nconst _caretsByRowCache = new WeakMap();\n\nfunction groupCaretsByRow(textRenderInfo) {\n  // textRenderInfo is frozen so it's safe to cache based on it\n  let caretsByRow = _caretsByRowCache.get(textRenderInfo);\n  if (!caretsByRow) {\n    const {caretPositions, caretHeight} = textRenderInfo;\n    caretsByRow = new Map();\n    for (let i = 0; i < caretPositions.length; i += 3) {\n      const rowY = caretPositions[i + 2];\n      let rowCarets = caretsByRow.get(rowY);\n      if (!rowCarets) {\n        caretsByRow.set(rowY, rowCarets = []);\n      }\n      rowCarets.push({\n        x: caretPositions[i],\n        y: rowY,\n        height: caretHeight,\n        charIndex: i / 3\n      });\n      // Add one more caret after the final char\n      if (i + 3 >= caretPositions.length) {\n        rowCarets.push({\n          x: caretPositions[i + 1],\n          y: rowY,\n          height: caretHeight,\n          charIndex: i / 3 + 1\n        });\n      }\n    }\n  }\n  _caretsByRowCache.set(textRenderInfo, caretsByRow);\n  return caretsByRow\n}\n\nexport { GlyphsGeometry, Text, configureTextBuilder, createTextDerivedMaterial, fontProcessorWorkerModule, getCaretAtPoint, getSelectionRects, preloadFont };\n"
  },
  {
    "path": "packages/sdk/lib/dxf/troika-three-utils.esm.js",
    "content": "import { ShaderChunk, UniformsUtils, MeshDepthMaterial, RGBADepthPacking, MeshDistanceMaterial, ShaderLib, Matrix4, Vector3, Mesh, CylinderGeometry as CylinderBufferGeometry, Vector2, MeshStandardMaterial, DoubleSide } from 'three';\n\n/**\n * Regular expression for matching the `void main() {` opener line in GLSL.\n * @type {RegExp}\n */\nconst voidMainRegExp = /\\bvoid\\s+main\\s*\\(\\s*\\)\\s*{/g;\n\n/**\n * Recursively expands all `#include <xyz>` statements within string of shader code.\n * Copied from three's WebGLProgram#parseIncludes for external use.\n *\n * @param {string} source - The GLSL source code to evaluate\n * @return {string} The GLSL code with all includes expanded\n */\nfunction expandShaderIncludes( source ) {\n  const pattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n  function replace(match, include) {\n    let chunk = ShaderChunk[include];\n    return chunk ? expandShaderIncludes(chunk) : match\n  }\n  return source.replace( pattern, replace )\n}\n\n/*\n * This is a direct copy of MathUtils.generateUUID from Three.js, to preserve compatibility with three\n * versions before 0.113.0 as it was changed from Math to MathUtils in that version.\n * https://github.com/mrdoob/three.js/blob/dd8b5aa3b270c17096b90945cd2d6d1b13aaec53/src/math/MathUtils.js#L16\n */\n\nconst _lut = [];\n\nfor (let i = 0; i < 256; i++) {\n  _lut[i] = (i < 16 ? '0' : '') + (i).toString(16);\n}\n\nfunction generateUUID() {\n\n  // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\n\n  const d0 = Math.random() * 0xffffffff | 0;\n  const d1 = Math.random() * 0xffffffff | 0;\n  const d2 = Math.random() * 0xffffffff | 0;\n  const d3 = Math.random() * 0xffffffff | 0;\n  const uuid = _lut[d0 & 0xff] + _lut[d0 >> 8 & 0xff] + _lut[d0 >> 16 & 0xff] + _lut[d0 >> 24 & 0xff] + '-' +\n    _lut[d1 & 0xff] + _lut[d1 >> 8 & 0xff] + '-' + _lut[d1 >> 16 & 0x0f | 0x40] + _lut[d1 >> 24 & 0xff] + '-' +\n    _lut[d2 & 0x3f | 0x80] + _lut[d2 >> 8 & 0xff] + '-' + _lut[d2 >> 16 & 0xff] + _lut[d2 >> 24 & 0xff] +\n    _lut[d3 & 0xff] + _lut[d3 >> 8 & 0xff] + _lut[d3 >> 16 & 0xff] + _lut[d3 >> 24 & 0xff];\n\n  // .toUpperCase() here flattens concatenated strings to save heap memory space.\n  return uuid.toUpperCase()\n\n}\n\n// Local assign polyfill to avoid importing troika-core\nconst assign = Object.assign || function(/*target, ...sources*/) {\n  let target = arguments[0];\n  for (let i = 1, len = arguments.length; i < len; i++) {\n    let source = arguments[i];\n    if (source) {\n      for (let prop in source) {\n        if (source.hasOwnProperty(prop)) {\n          target[prop] = source[prop];\n        }\n      }\n    }\n  }\n  return target\n};\n\n\nconst epoch = Date.now();\nconst CONSTRUCTOR_CACHE = new WeakMap();\nconst SHADER_UPGRADE_CACHE = new Map();\n\n// Material ids must be integers, but we can't access the increment from Three's `Material` module,\n// so let's choose a sufficiently large starting value that should theoretically never collide.\nlet materialInstanceId = 1e10;\n\n/**\n * A utility for creating a custom shader material derived from another material's\n * shaders. This allows you to inject custom shader logic and transforms into the\n * builtin ThreeJS materials without having to recreate them from scratch.\n *\n * @param {THREE.Material} baseMaterial - the original material to derive from\n *\n * @param {Object} options - How the base material should be modified.\n * @param {Object} options.defines - Custom `defines` for the material\n * @param {Object} options.extensions - Custom `extensions` for the material, e.g. `{derivatives: true}`\n * @param {Object} options.uniforms - Custom `uniforms` for use in the modified shader. These can\n *        be accessed and manipulated via the resulting material's `uniforms` property, just like\n *        in a ShaderMaterial. You do not need to repeat the base material's own uniforms here.\n * @param {String} options.timeUniform - If specified, a uniform of this name will be injected into\n *        both shaders, and it will automatically be updated on each render frame with a number of\n *        elapsed milliseconds. The \"zero\" epoch time is not significant so don't rely on this as a\n *        true calendar time.\n * @param {String} options.vertexDefs - Custom GLSL code to inject into the vertex shader's top-level\n *        definitions, above the `void main()` function.\n * @param {String} options.vertexMainIntro - Custom GLSL code to inject at the top of the vertex\n *        shader's `void main` function.\n * @param {String} options.vertexMainOutro - Custom GLSL code to inject at the end of the vertex\n *        shader's `void main` function.\n * @param {String} options.vertexTransform - Custom GLSL code to manipulate the `position`, `normal`,\n *        and/or `uv` vertex attributes. This code will be wrapped within a standalone function with\n *        those attributes exposed by their normal names as read/write values.\n * @param {String} options.fragmentDefs - Custom GLSL code to inject into the fragment shader's top-level\n *        definitions, above the `void main()` function.\n * @param {String} options.fragmentMainIntro - Custom GLSL code to inject at the top of the fragment\n *        shader's `void main` function.\n * @param {String} options.fragmentMainOutro - Custom GLSL code to inject at the end of the fragment\n *        shader's `void main` function. You can manipulate `gl_FragColor` here but keep in mind it goes\n *        after any of ThreeJS's color postprocessing shader chunks (tonemapping, fog, etc.), so if you\n *        want those to apply to your changes use `fragmentColorTransform` instead.\n * @param {String} options.fragmentColorTransform - Custom GLSL code to manipulate the `gl_FragColor`\n *        output value. Will be injected near the end of the `void main` function, but before any\n *        of ThreeJS's color postprocessing shader chunks (tonemapping, fog, etc.), and before the\n *        `fragmentMainOutro`.\n * @param {function<{vertexShader,fragmentShader}>:{vertexShader,fragmentShader}} options.customRewriter - A function\n *        for performing custom rewrites of the full shader code. Useful if you need to do something\n *        special that's not covered by the other builtin options. This function will be executed before\n *        any other transforms are applied.\n * @param {boolean} options.chained - Set to `true` to prototype-chain the derived material to the base\n *        material, rather than the default behavior of copying it. This allows the derived material to\n *        automatically pick up changes made to the base material and its properties. This can be useful\n *        where the derived material is hidden from the user as an implementation detail, allowing them\n *        to work with the original material like normal. But it can result in unexpected behavior if not\n *        handled carefully.\n *\n * @return {THREE.Material}\n *\n * The returned material will also have two new methods, `getDepthMaterial()` and `getDistanceMaterial()`,\n * which can be called to get a variant of the derived material for use in shadow casting. If the\n * target mesh is expected to cast shadows, then you can assign these to the mesh's `customDepthMaterial`\n * (for directional and spot lights) and/or `customDistanceMaterial` (for point lights) properties to\n * allow the cast shadow to honor your derived shader's vertex transforms and discarded fragments. These\n * will also set a custom `#define IS_DEPTH_MATERIAL` or `#define IS_DISTANCE_MATERIAL` that you can look\n * for in your derived shaders with `#ifdef` to customize their behavior for the depth or distance\n * scenarios, e.g. skipping antialiasing or expensive shader logic.\n */\nfunction createDerivedMaterial(baseMaterial, options) {\n  // Generate a key that is unique to the content of these `options`. We'll use this\n  // throughout for caching and for generating the upgraded shader code. This increases\n  // the likelihood that the resulting shaders will line up across multiple calls so\n  // their GL programs can be shared and cached.\n  const optionsKey = getKeyForOptions(options);\n\n  // First check to see if we've already derived from this baseMaterial using this\n  // unique set of options, and if so reuse the constructor to avoid some allocations.\n  let ctorsByDerivation = CONSTRUCTOR_CACHE.get(baseMaterial);\n  if (!ctorsByDerivation) {\n    CONSTRUCTOR_CACHE.set(baseMaterial, (ctorsByDerivation = Object.create(null)));\n  }\n  if (ctorsByDerivation[optionsKey]) {\n    return new ctorsByDerivation[optionsKey]()\n  }\n\n  const privateBeforeCompileProp = `_onBeforeCompile${optionsKey}`;\n\n  // Private onBeforeCompile handler that injects the modified shaders and uniforms when\n  // the renderer switches to this material's program\n  const onBeforeCompile = function (shaderInfo) {\n    baseMaterial.onBeforeCompile.call(this, shaderInfo);\n\n    // Upgrade the shaders, caching the result by incoming source code\n    const cacheKey = optionsKey + '|||' + shaderInfo.vertexShader + '|||' + shaderInfo.fragmentShader;\n    let upgradedShaders = SHADER_UPGRADE_CACHE[cacheKey];\n    if (!upgradedShaders) {\n      const upgraded = upgradeShaders(shaderInfo, options, optionsKey);\n      upgradedShaders = SHADER_UPGRADE_CACHE[cacheKey] = upgraded;\n    }\n\n    // Inject upgraded shaders and uniforms into the program\n    shaderInfo.vertexShader = upgradedShaders.vertexShader;\n    shaderInfo.fragmentShader = upgradedShaders.fragmentShader;\n    assign(shaderInfo.uniforms, this.uniforms);\n\n    // Inject auto-updating time uniform if requested\n    if (options.timeUniform) {\n      shaderInfo.uniforms[options.timeUniform] = {\n        get value() {return Date.now() - epoch}\n      };\n    }\n\n    // Users can still add their own handlers on top of ours\n    if (this[privateBeforeCompileProp]) {\n      this[privateBeforeCompileProp](shaderInfo);\n    }\n  };\n\n  const DerivedMaterial = function DerivedMaterial() {\n    return derive(options.chained ? baseMaterial : baseMaterial.clone())\n  };\n\n  const derive = function(base) {\n    // Prototype chain to the base material\n    const derived = Object.create(base, descriptor);\n\n    // Store the baseMaterial for reference; this is always the original even when cloning\n    Object.defineProperty(derived, 'baseMaterial', { value: baseMaterial });\n\n    // Needs its own ids\n    Object.defineProperty(derived, 'id', { value: materialInstanceId++ });\n    derived.uuid = generateUUID();\n\n    // Merge uniforms, defines, and extensions\n    derived.uniforms = assign({}, base.uniforms, options.uniforms);\n    derived.defines = assign({}, base.defines, options.defines);\n    derived.defines[`TROIKA_DERIVED_MATERIAL_${optionsKey}`] = ''; //force a program change from the base material\n    derived.extensions = assign({}, base.extensions, options.extensions);\n\n    // Don't inherit EventDispatcher listeners\n    derived._listeners = undefined;\n\n    return derived\n  };\n\n  const descriptor = {\n    constructor: {value: DerivedMaterial},\n    isDerivedMaterial: {value: true},\n\n    customProgramCacheKey: {\n      writable: true,\n      configurable: true,\n      value: function () {\n        return optionsKey\n      }\n    },\n\n    onBeforeCompile: {\n      get() {\n        return onBeforeCompile\n      },\n      set(fn) {\n        this[privateBeforeCompileProp] = fn;\n      }\n    },\n\n    copy: {\n      writable: true,\n      configurable: true,\n      value: function (source) {\n        baseMaterial.copy.call(this, source);\n        if (!baseMaterial.isShaderMaterial && !baseMaterial.isDerivedMaterial) {\n          assign(this.extensions, source.extensions);\n          assign(this.defines, source.defines);\n          assign(this.uniforms, UniformsUtils.clone(source.uniforms));\n        }\n        return this\n      }\n    },\n\n    clone: {\n      writable: true,\n      configurable: true,\n      value: function () {\n        const newBase = new baseMaterial.constructor();\n        return derive(newBase).copy(this)\n      }\n    },\n\n    /**\n     * Utility to get a MeshDepthMaterial that will honor this derived material's vertex\n     * transformations and discarded fragments.\n     */\n    getDepthMaterial: {\n      writable: true,\n      configurable: true,\n      value: function() {\n        let depthMaterial = this._depthMaterial;\n        if (!depthMaterial) {\n          depthMaterial = this._depthMaterial = createDerivedMaterial(\n            baseMaterial.isDerivedMaterial\n              ? baseMaterial.getDepthMaterial()\n              : new MeshDepthMaterial({ depthPacking: RGBADepthPacking }),\n            options\n          );\n          depthMaterial.defines.IS_DEPTH_MATERIAL = '';\n          depthMaterial.uniforms = this.uniforms; //automatically recieve same uniform values\n        }\n        return depthMaterial\n      }\n    },\n\n    /**\n     * Utility to get a MeshDistanceMaterial that will honor this derived material's vertex\n     * transformations and discarded fragments.\n     */\n    getDistanceMaterial: {\n      writable: true,\n      configurable: true,\n      value: function() {\n        let distanceMaterial = this._distanceMaterial;\n        if (!distanceMaterial) {\n          distanceMaterial = this._distanceMaterial = createDerivedMaterial(\n            baseMaterial.isDerivedMaterial\n              ? baseMaterial.getDistanceMaterial()\n              : new MeshDistanceMaterial(),\n            options\n          );\n          distanceMaterial.defines.IS_DISTANCE_MATERIAL = '';\n          distanceMaterial.uniforms = this.uniforms; //automatically recieve same uniform values\n        }\n        return distanceMaterial\n      }\n    },\n\n    dispose: {\n      writable: true,\n      configurable: true,\n      value() {\n        const {_depthMaterial, _distanceMaterial} = this;\n        if (_depthMaterial) _depthMaterial.dispose();\n        if (_distanceMaterial) _distanceMaterial.dispose();\n        baseMaterial.dispose.call(this);\n      }\n    }\n  };\n\n  ctorsByDerivation[optionsKey] = DerivedMaterial;\n  return new DerivedMaterial()\n}\n\n\nfunction upgradeShaders({vertexShader, fragmentShader}, options, key) {\n  let {\n    vertexDefs,\n    vertexMainIntro,\n    vertexMainOutro,\n    vertexTransform,\n    fragmentDefs,\n    fragmentMainIntro,\n    fragmentMainOutro,\n    fragmentColorTransform,\n    customRewriter,\n    timeUniform\n  } = options;\n\n  vertexDefs = vertexDefs || '';\n  vertexMainIntro = vertexMainIntro || '';\n  vertexMainOutro = vertexMainOutro || '';\n  fragmentDefs = fragmentDefs || '';\n  fragmentMainIntro = fragmentMainIntro || '';\n  fragmentMainOutro = fragmentMainOutro || '';\n\n  // Expand includes if needed\n  if (vertexTransform || customRewriter) {\n    vertexShader = expandShaderIncludes(vertexShader);\n  }\n  if (fragmentColorTransform || customRewriter) {\n    // We need to be able to find postprocessing chunks after include expansion in order to\n    // put them after the fragmentColorTransform, so mark them with comments first. Even if\n    // this particular derivation doesn't have a fragmentColorTransform, other derivations may,\n    // so we still mark them.\n    fragmentShader = fragmentShader.replace(\n      /^[ \\t]*#include <((?:tonemapping|encodings|fog|premultiplied_alpha|dithering)_fragment)>/gm,\n      '\\n//!BEGIN_POST_CHUNK $1\\n$&\\n//!END_POST_CHUNK\\n'\n    );\n    fragmentShader = expandShaderIncludes(fragmentShader);\n  }\n\n  // Apply custom rewriter function\n  if (customRewriter) {\n    let res = customRewriter({vertexShader, fragmentShader});\n    vertexShader = res.vertexShader;\n    fragmentShader = res.fragmentShader;\n  }\n\n  // The fragmentColorTransform needs to go before any postprocessing chunks, so extract\n  // those and re-insert them into the outro in the correct place:\n  if (fragmentColorTransform) {\n    let postChunks = [];\n    fragmentShader = fragmentShader.replace(\n      /^\\/\\/!BEGIN_POST_CHUNK[^]+?^\\/\\/!END_POST_CHUNK/gm, // [^]+? = non-greedy match of any chars including newlines\n      match => {\n        postChunks.push(match);\n        return ''\n      }\n    );\n    fragmentMainOutro = `${fragmentColorTransform}\\n${postChunks.join('\\n')}\\n${fragmentMainOutro}`;\n  }\n\n  // Inject auto-updating time uniform if requested\n  if (timeUniform) {\n    const code = `\\nuniform float ${timeUniform};\\n`;\n    vertexDefs = code + vertexDefs;\n    fragmentDefs = code + fragmentDefs;\n  }\n\n  // Inject a function for the vertexTransform and rename all usages of position/normal/uv\n  if (vertexTransform) {\n    // Hoist these defs to the very top so they work in other function defs\n    vertexShader = `vec3 troika_position_${key};\nvec3 troika_normal_${key};\nvec2 troika_uv_${key};\n${vertexShader}\n`;\n    vertexDefs = `${vertexDefs}\nvoid troikaVertexTransform${key}(inout vec3 position, inout vec3 normal, inout vec2 uv) {\n  ${vertexTransform}\n}\n`;\n    vertexMainIntro = `\ntroika_position_${key} = vec3(position);\ntroika_normal_${key} = vec3(normal);\ntroika_uv_${key} = vec2(uv);\ntroikaVertexTransform${key}(troika_position_${key}, troika_normal_${key}, troika_uv_${key});\n${vertexMainIntro}\n`;\n    vertexShader = vertexShader.replace(/\\b(position|normal|uv)\\b/g, (match, match1, index, fullStr) => {\n      return /\\battribute\\s+vec[23]\\s+$/.test(fullStr.substr(0, index)) ? match1 : `troika_${match1}_${key}`\n    });\n  }\n\n  // Inject defs and intro/outro snippets\n  vertexShader = injectIntoShaderCode(vertexShader, key, vertexDefs, vertexMainIntro, vertexMainOutro);\n  fragmentShader = injectIntoShaderCode(fragmentShader, key, fragmentDefs, fragmentMainIntro, fragmentMainOutro);\n\n  return {\n    vertexShader,\n    fragmentShader\n  }\n}\n\nfunction injectIntoShaderCode(shaderCode, id, defs, intro, outro) {\n  if (intro || outro || defs) {\n    shaderCode = shaderCode.replace(voidMainRegExp, `\n${defs}\nvoid troikaOrigMain${id}() {`\n    );\n    shaderCode += `\nvoid main() {\n  ${intro}\n  troikaOrigMain${id}();\n  ${outro}\n}`;\n  }\n  return shaderCode\n}\n\n\nfunction optionsJsonReplacer(key, value) {\n  return key === 'uniforms' ? undefined : typeof value === 'function' ? value.toString() : value\n}\n\nlet _idCtr = 0;\nconst optionsHashesToIds = new Map();\nfunction getKeyForOptions(options) {\n  const optionsHash = JSON.stringify(options, optionsJsonReplacer);\n  let id = optionsHashesToIds.get(optionsHash);\n  if (id == null) {\n    optionsHashesToIds.set(optionsHash, (id = ++_idCtr));\n  }\n  return id\n}\n\n// Copied from threejs WebGLPrograms.js so we can resolve builtin materials to their shaders\n// TODO how can we keep this from getting stale?\nconst MATERIAL_TYPES_TO_SHADERS = {\n  MeshDepthMaterial: 'depth',\n  MeshDistanceMaterial: 'distanceRGBA',\n  MeshNormalMaterial: 'normal',\n  MeshBasicMaterial: 'basic',\n  MeshLambertMaterial: 'lambert',\n  MeshPhongMaterial: 'phong',\n  MeshToonMaterial: 'toon',\n  MeshStandardMaterial: 'physical',\n  MeshPhysicalMaterial: 'physical',\n  MeshMatcapMaterial: 'matcap',\n  LineBasicMaterial: 'basic',\n  LineDashedMaterial: 'dashed',\n  PointsMaterial: 'points',\n  ShadowMaterial: 'shadow',\n  SpriteMaterial: 'sprite'\n};\n\n/**\n * Given a Three.js `Material` instance, find the shaders/uniforms that will be\n * used to render that material.\n *\n * @param material - the Material instance\n * @return {object} - the material's shader info: `{uniforms:{}, fragmentShader:'', vertexShader:''}`\n */\nfunction getShadersForMaterial(material) {\n  let builtinType = MATERIAL_TYPES_TO_SHADERS[material.type];\n  return builtinType ? ShaderLib[builtinType] : material //TODO fallback for unknown type?\n}\n\n/**\n * Find all uniforms and their types within a shader code string.\n *\n * @param {string} shader - The shader code to parse\n * @return {object} mapping of uniform names to their glsl type\n */\nfunction getShaderUniformTypes(shader) {\n  let uniformRE = /\\buniform\\s+(int|float|vec[234])\\s+([A-Za-z_][\\w]*)/g;\n  let uniforms = Object.create(null);\n  let match;\n  while ((match = uniformRE.exec(shader)) !== null) {\n    uniforms[match[2]] = match[1];\n  }\n  return uniforms\n}\n\n/**\n * Helper for smoothing out the `m.getInverse(x)` --> `m.copy(x).invert()` conversion\n * that happened in ThreeJS r123.\n * @param {Matrix4} srcMatrix\n * @param {Matrix4} [tgtMatrix]\n */\nfunction invertMatrix4(srcMatrix, tgtMatrix = new Matrix4()) {\n  if (typeof tgtMatrix.invert === 'function') {\n    tgtMatrix.copy(srcMatrix).invert();\n  } else {\n    tgtMatrix.getInverse(srcMatrix);\n  }\n  return tgtMatrix\n}\n\n/*\nInput geometry is a cylinder with r=1, height in y dimension from 0 to 1,\ndivided into a reasonable number of height segments.\n*/\n\nconst vertexDefs = `\nuniform vec3 pointA;\nuniform vec3 controlA;\nuniform vec3 controlB;\nuniform vec3 pointB;\nuniform float radius;\nvarying float bezierT;\n\nvec3 cubicBezier(vec3 p1, vec3 c1, vec3 c2, vec3 p2, float t) {\n  float t2 = 1.0 - t;\n  float b0 = t2 * t2 * t2;\n  float b1 = 3.0 * t * t2 * t2;\n  float b2 = 3.0 * t * t * t2;\n  float b3 = t * t * t;\n  return b0 * p1 + b1 * c1 + b2 * c2 + b3 * p2;\n}\n\nvec3 cubicBezierDerivative(vec3 p1, vec3 c1, vec3 c2, vec3 p2, float t) {\n  float t2 = 1.0 - t;\n  return -3.0 * p1 * t2 * t2 +\n    c1 * (3.0 * t2 * t2 - 6.0 * t2 * t) +\n    c2 * (6.0 * t2 * t - 3.0 * t * t) +\n    3.0 * p2 * t * t;\n}\n`;\n\nconst vertexTransform = `\nfloat t = position.y;\nbezierT = t;\nvec3 bezierCenterPos = cubicBezier(pointA, controlA, controlB, pointB, t);\nvec3 bezierDir = normalize(cubicBezierDerivative(pointA, controlA, controlB, pointB, t));\n\n// Make \"sideways\" always perpendicular to the camera ray; this ensures that any twists\n// in the cylinder occur where you won't see them: \nvec3 viewDirection = normalMatrix * vec3(0.0, 0.0, 1.0);\nif (bezierDir == viewDirection) {\n  bezierDir = normalize(cubicBezierDerivative(pointA, controlA, controlB, pointB, t == 1.0 ? t - 0.0001 : t + 0.0001));\n}\nvec3 sideways = normalize(cross(bezierDir, viewDirection));\nvec3 upish = normalize(cross(sideways, bezierDir));\n\n// Build a matrix for transforming this disc in the cylinder:\nmat4 discTx;\ndiscTx[0].xyz = sideways * radius;\ndiscTx[1].xyz = bezierDir * radius;\ndiscTx[2].xyz = upish * radius;\ndiscTx[3].xyz = bezierCenterPos;\ndiscTx[3][3] = 1.0;\n\n// Apply transform, ignoring original y\nposition = (discTx * vec4(position.x, 0.0, position.z, 1.0)).xyz;\nnormal = normalize(mat3(discTx) * normal);\n`;\n\nconst fragmentDefs = `\nuniform vec3 dashing;\nvarying float bezierT;\n`;\n\nconst fragmentMainIntro = `\nif (dashing.x + dashing.y > 0.0) {\n  float dashFrac = mod(bezierT - dashing.z, dashing.x + dashing.y);\n  if (dashFrac > dashing.x) {\n    discard;\n  }\n}\n`;\n\n// Debugging: separate color for each of the 6 sides:\n// const fragmentColorTransform = `\n// float sideNum = floor(vUV.x * 6.0);\n// vec3 mixColor = sideNum < 1.0 ? vec3(1.0, 0.0, 0.0) :\n//   sideNum < 2.0 ? vec3(0.0, 1.0, 1.0) :\n//   sideNum < 3.0 ? vec3(1.0, 1.0, 0.0) :\n//   sideNum < 4.0 ? vec3(0.0, 0.0, 1.0) :\n//   sideNum < 5.0 ? vec3(0.0, 1.0, 0.0) :\n//   vec3(1.0, 0.0, 1.0);\n// gl_FragColor.xyz = mix(gl_FragColor.xyz, mixColor, 0.5);\n// `\n\n\n\nfunction createBezierMeshMaterial(baseMaterial) {\n  return createDerivedMaterial(\n    baseMaterial,\n    {\n      chained: true,\n      uniforms: {\n        pointA: {value: new Vector3()},\n        controlA: {value: new Vector3()},\n        controlB: {value: new Vector3()},\n        pointB: {value: new Vector3()},\n        radius: {value: 0.01},\n        dashing: {value: new Vector3()} //on, off, offset\n      },\n      vertexDefs,\n      vertexTransform,\n      fragmentDefs,\n      fragmentMainIntro\n    }\n  )\n}\n\nlet geometry = null;\n\nconst defaultBaseMaterial = /*#__PURE__*/new MeshStandardMaterial({color: 0xffffff, side: DoubleSide});\n\n\n/**\n * A ThreeJS `Mesh` that bends a tube shape along a 3D cubic bezier path. The bending is done\n * by deforming a straight cylindrical geometry in the vertex shader based on a set of four\n * control point uniforms. It patches the necessary GLSL into the mesh's assigned `material`\n * automatically.\n *\n * The cubiz bezier path is determined by its four `Vector3` properties:\n * - `pointA`\n * - `controlA`\n * - `controlB`\n * - `pointB`\n *\n * The tube's radius is controlled by its `radius` property, which defaults to `0.01`.\n *\n * You can also give the tube a dashed appearance with two properties:\n *\n * - `dashArray` - an array of two numbers, defining the length of \"on\" and \"off\" parts of\n *   the dash. Each is a 0-1 ratio of the entire path's length. (Actually this is the `t` length\n *   used as input to the cubic bezier function, not its visible length.)\n * - `dashOffset` - offset of where the dash starts. You can animate this to make the dashes move.\n *\n * Note that the dashes will appear like a hollow tube, not solid. This will be more apparent on\n * thicker tubes.\n *\n * TODO: proper geometry bounding sphere and raycasting\n * TODO: allow control of the geometry's segment counts\n */\nclass BezierMesh extends Mesh {\n  static getGeometry() {\n    return geometry || (geometry =\n      new CylinderBufferGeometry(1, 1, 1, 6, 64).translate(0, 0.5, 0)\n    )\n  }\n\n  constructor() {\n    super(\n      BezierMesh.getGeometry(),\n      defaultBaseMaterial\n    );\n\n    this.pointA = new Vector3();\n    this.controlA = new Vector3();\n    this.controlB = new Vector3();\n    this.pointB = new Vector3();\n    this.radius = 0.01;\n    this.dashArray = new Vector2();\n    this.dashOffset = 0;\n\n    // TODO - disabling frustum culling until I figure out how to customize the\n    //  geometry's bounding sphere that gets used\n    this.frustumCulled = false;\n  }\n\n  // Handler for automatically wrapping the base material with our upgrades. We do the wrapping\n  // lazily on _read_ rather than write to avoid unnecessary wrapping on transient values.\n  get material() {\n    let derivedMaterial = this._derivedMaterial;\n    const baseMaterial = this._baseMaterial || this._defaultMaterial || (this._defaultMaterial = defaultBaseMaterial.clone());\n    if (!derivedMaterial || derivedMaterial.baseMaterial !== baseMaterial) {\n      derivedMaterial = this._derivedMaterial = createBezierMeshMaterial(baseMaterial);\n      // dispose the derived material when its base material is disposed:\n      baseMaterial.addEventListener('dispose', function onDispose() {\n        baseMaterial.removeEventListener('dispose', onDispose);\n        derivedMaterial.dispose();\n      });\n    }\n    return derivedMaterial\n  }\n  set material(baseMaterial) {\n    this._baseMaterial = baseMaterial;\n  }\n\n  // Create and update material for shadows upon request:\n  get customDepthMaterial() {\n    return this.material.getDepthMaterial()\n  }\n  get customDistanceMaterial() {\n    return this.material.getDistanceMaterial()\n  }\n\n  onBeforeRender(shaderInfo) {\n    const {uniforms} = this.material;\n    const {pointA, controlA, controlB, pointB, radius, dashArray, dashOffset} = this;\n    uniforms.pointA.value.copy(pointA);\n    uniforms.controlA.value.copy(controlA);\n    uniforms.controlB.value.copy(controlB);\n    uniforms.pointB.value.copy(pointB);\n    uniforms.radius.value = radius;\n    uniforms.dashing.value.set(dashArray.x, dashArray.y, dashOffset || 0);\n  }\n\n  raycast(raycaster, intersects) {\n    // TODO - just fail for now\n  }\n}\n\nexport { BezierMesh, createDerivedMaterial, expandShaderIncludes, getShaderUniformTypes, getShadersForMaterial, invertMatrix4, voidMainRegExp };\n"
  },
  {
    "path": "packages/sdk/lib/dxf/troika-worker-utils.esm.js",
    "content": "/**\n * Lightweight thenable implementation that is entirely self-contained within a single\n * function with no external dependencies so it can be easily shipped across to a WorkerModule.\n *\n * This implementation conforms fully to the Promises/A+ spec so it can safely interoperate\n * with other thenable implementations. https://github.com/promises-aplus/promises-spec\n *\n * *However*, it is _not_ a full implementation of ES2015 Promises, e.g. it does not\n * have the same constructor signature and does not expose a `catch` method or the static\n * `resolve`/`reject`/`all`/`race` initializer methods. If you need to hand a Thenable\n * instance off to consuming code that may expect a true Promise, you'll want to wrap it\n * in a native-or-polyfilled Promise first.\n *\n * (Why yet another Promises/A+ implementation? Great question. We needed a polyfill-like\n * thing that was (a) wrapped in a single function for easy serialization across to a Worker,\n * and (b) was as small as possible -- at ~900B minified (~500B gzipped) this is the smallest\n * implementation I've found. And also, exercises like this are challenging and fun.)\n */\nfunction BespokeThenable() {\n  var state = 0; // 0=pending, 1=fulfilled, -1=rejected\n  var queue = [];\n  var value;\n  var scheduled = 0;\n  var completeCalled = 0;\n\n  function then(onResolve, onReject) {\n    var nextThenable = BespokeThenable();\n\n    function handleNext() {\n      var cb = state > 0 ? onResolve : onReject;\n      if (isFn(cb)) {\n        try {\n          var result = cb(value);\n          if (result === nextThenable) {\n            recursiveError();\n          }\n          var resultThen = getThenableThen(result);\n          if (resultThen) {\n            resultThen.call(result, nextThenable.resolve, nextThenable.reject);\n          } else {\n            nextThenable.resolve(result);\n          }\n        } catch (err) {\n          nextThenable.reject(err);\n        }\n      } else {\n        nextThenable[state > 0 ? 'resolve' : 'reject'](value);\n      }\n    }\n\n    queue.push(handleNext);\n    if (state) {\n      scheduleQueueFlush();\n    }\n    return nextThenable\n  }\n\n  var resolve = oneTime(function (val) {\n    if (!completeCalled) {\n      complete(1, val);\n    }\n  });\n\n  var reject = oneTime(function (reason) {\n    if (!completeCalled) {\n      complete(-1, reason);\n    }\n  });\n\n  function complete(st, val) {\n    completeCalled++;\n    var ignoreThrow = 0;\n    try {\n      if (val === thenableObj) {\n        recursiveError();\n      }\n      var valThen = st > 0 && getThenableThen(val);\n      if (valThen) {\n        valThen.call(val, oneTime(function (v) {\n          ignoreThrow++;\n          complete(1, v);\n        }), oneTime(function (v) {\n          ignoreThrow++;\n          complete(-1, v);\n        }));\n      } else {\n        state = st;\n        value = val;\n        scheduleQueueFlush();\n      }\n    } catch(e) {\n      if (!state && !ignoreThrow) {\n        complete(-1, e);\n      }\n    }\n  }\n\n  function scheduleQueueFlush() {\n    if (!scheduled) {\n      setTimeout(flushQueue, 0); //TODO setImmediate or postMessage approach if available?\n      scheduled = 1;\n    }\n  }\n\n  function flushQueue() {\n    var q = queue;\n    scheduled = 0;\n    queue = [];\n    q.forEach(callIt);\n  }\n\n  function callIt(fn) {\n    fn();\n  }\n\n  function getThenableThen(val) {\n    var valThen = val && (isFn(val) || typeof val === 'object') && val.then;\n    return isFn(valThen) && valThen\n  }\n\n  function oneTime(fn) {\n    var called = 0;\n    return function() {\n      var args = [], len = arguments.length;\n      while ( len-- ) args[ len ] = arguments[ len ];\n\n      if (!called++) {\n        fn.apply(this, args);\n      }\n    }\n  }\n\n  function recursiveError() {\n    throw new TypeError('Chaining cycle detected')\n  }\n\n  var isFn = function (v) { return typeof v === 'function'; };\n\n  var thenableObj = {\n    then: then,\n    resolve: resolve,\n    reject: reject\n  };\n  return thenableObj\n}\n\n\n/**\n * Thenable implementation that uses a native Promise under the covers. This implementation\n * is preferred if Promise is available, for better performance and dev tools integration.\n * @constructor\n */\nfunction NativePromiseThenable() {\n  var resolve, reject;\n  var promise = new Promise(function (res, rej) {\n    resolve = res;\n    reject = rej;\n  });\n  return {\n    then: promise.then.bind(promise),\n    resolve: resolve,\n    reject: reject\n  }\n}\n\n/**\n * Promise.all() impl:\n */\nBespokeThenable.all = NativePromiseThenable.all = function(items) {\n  var resultCount = 0;\n  var results = [];\n  var out = DefaultThenable();\n  if (items.length === 0) {\n    out.resolve([]);\n  } else {\n    items.forEach(function (item, i) {\n      var itemThenable = DefaultThenable();\n      itemThenable.resolve(item);\n      itemThenable.then(function (res) {\n        resultCount++;\n        results[i] = res;\n        if (resultCount === items.length) {\n          out.resolve(results);\n        }\n      }, out.reject);\n    });\n  }\n  return out\n};\n\n\n/**\n * Choose the best Thenable implementation and export it as the default.\n */\nvar DefaultThenable = typeof Promise === 'function' ? NativePromiseThenable : BespokeThenable;\n\n/**\n * Main content for the worker that handles the loading and execution of\n * modules within it.\n */\nfunction workerBootstrap() {\n  var modules = Object.create(null);\n\n  // Handle messages for registering a module\n  function registerModule(ref, callback) {\n    var id = ref.id;\n    var name = ref.name;\n    var dependencies = ref.dependencies; if ( dependencies === void 0 ) dependencies = [];\n    var init = ref.init; if ( init === void 0 ) init = function(){};\n    var getTransferables = ref.getTransferables; if ( getTransferables === void 0 ) getTransferables = null;\n\n    // Only register once\n    if (modules[id]) { return }\n\n    try {\n      // If any dependencies are modules, ensure they're registered and grab their value\n      dependencies = dependencies.map(function (dep) {\n        if (dep && dep.isWorkerModule) {\n          registerModule(dep, function (depResult) {\n            if (depResult instanceof Error) { throw depResult }\n          });\n          dep = modules[dep.id].value;\n        }\n        return dep\n      });\n\n      // Rehydrate functions\n      init = rehydrate((\"<\" + name + \">.init\"), init);\n      if (getTransferables) {\n        getTransferables = rehydrate((\"<\" + name + \">.getTransferables\"), getTransferables);\n      }\n\n      // Initialize the module and store its value\n      var value = null;\n      if (typeof init === 'function') {\n        value = init.apply(void 0, dependencies);\n      } else {\n        console.error('worker module init function failed to rehydrate');\n      }\n      modules[id] = {\n        id: id,\n        value: value,\n        getTransferables: getTransferables\n      };\n      callback(value);\n    } catch(err) {\n      if (!(err && err.noLog)) {\n        console.error(err);\n      }\n      callback(err);\n    }\n  }\n\n  // Handle messages for calling a registered module's result function\n  function callModule(ref, callback) {\n    var ref$1;\n\n    var id = ref.id;\n    var args = ref.args;\n    if (!modules[id] || typeof modules[id].value !== 'function') {\n      callback(new Error((\"Worker module \" + id + \": not found or its 'init' did not return a function\")));\n    }\n    try {\n      var result = (ref$1 = modules[id]).value.apply(ref$1, args);\n      if (result && typeof result.then === 'function') {\n        result.then(handleResult, function (rej) { return callback(rej instanceof Error ? rej : new Error('' + rej)); });\n      } else {\n        handleResult(result);\n      }\n    } catch(err) {\n      callback(err);\n    }\n    function handleResult(result) {\n      try {\n        var tx = modules[id].getTransferables && modules[id].getTransferables(result);\n        if (!tx || !Array.isArray(tx) || !tx.length) {\n          tx = undefined; //postMessage is very picky about not passing null or empty transferables\n        }\n        callback(result, tx);\n      } catch(err) {\n        console.error(err);\n        callback(err);\n      }\n    }\n  }\n\n  function rehydrate(name, str) {\n    var result = void 0;\n    self.troikaDefine = function (r) { return result = r; };\n    var url = URL.createObjectURL(\n      new Blob(\n        [(\"/** \" + (name.replace(/\\*/g, '')) + \" **/\\n\\ntroikaDefine(\\n\" + str + \"\\n)\")],\n        {type: 'application/javascript'}\n      )\n    );\n    try {\n      importScripts(url);\n    } catch(err) {\n      console.error(err);\n    }\n    URL.revokeObjectURL(url);\n    delete self.troikaDefine;\n    return result\n  }\n\n  // Handler for all messages within the worker\n  self.addEventListener('message', function (e) {\n    var ref = e.data;\n    var messageId = ref.messageId;\n    var action = ref.action;\n    var data = ref.data;\n    try {\n      // Module registration\n      if (action === 'registerModule') {\n        registerModule(data, function (result) {\n          if (result instanceof Error) {\n            postMessage({\n              messageId: messageId,\n              success: false,\n              error: result.message\n            });\n          } else {\n            postMessage({\n              messageId: messageId,\n              success: true,\n              result: {isCallable: typeof result === 'function'}\n            });\n          }\n        });\n      }\n      // Invocation\n      if (action === 'callModule') {\n        callModule(data, function (result, transferables) {\n          if (result instanceof Error) {\n            postMessage({\n              messageId: messageId,\n              success: false,\n              error: result.message\n            });\n          } else {\n            postMessage({\n              messageId: messageId,\n              success: true,\n              result: result\n            }, transferables || undefined);\n          }\n        });\n      }\n    } catch(err) {\n      postMessage({\n        messageId: messageId,\n        success: false,\n        error: err.stack\n      });\n    }\n  });\n}\n\n/**\n * Fallback for `defineWorkerModule` that behaves identically but runs in the main\n * thread, for when the execution environment doesn't support web workers or they\n * are disallowed due to e.g. CSP security restrictions.\n */\nfunction defineMainThreadModule(options) {\n  var moduleFunc = function() {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    return moduleFunc._getInitResult().then(function (initResult) {\n      if (typeof initResult === 'function') {\n        return initResult.apply(void 0, args)\n      } else {\n        throw new Error('Worker module function was called but `init` did not return a callable function')\n      }\n    })\n  };\n  moduleFunc._getInitResult = function() {\n    // We can ignore getTransferables in main thread. TODO workerId?\n    var dependencies = options.dependencies;\n    var init = options.init;\n\n    // Resolve dependencies\n    dependencies = Array.isArray(dependencies) ? dependencies.map(function (dep) { return dep && dep._getInitResult ? dep._getInitResult() : dep; }\n    ) : [];\n\n    // Invoke init with the resolved dependencies\n    var initThenable = DefaultThenable.all(dependencies).then(function (deps) {\n      return init.apply(null, deps)\n    });\n\n    // Cache the resolved promise for subsequent calls\n    moduleFunc._getInitResult = function () { return initThenable; };\n\n    return initThenable\n  };\n  return moduleFunc\n}\n\nvar supportsWorkers = function () {\n  var supported = false;\n\n  // Only attempt worker initialization in browsers; elsewhere it would just be\n  // noise e.g. loading into a Node environment for SSR.\n  if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n    try {\n      // TODO additional checks for things like importScripts within the worker?\n      //  Would need to be an async check.\n      var worker = new Worker(\n        URL.createObjectURL(new Blob([''], { type: 'application/javascript' }))\n      );\n      worker.terminate();\n      supported = true;\n    } catch (err) {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') ; else {\n        console.log(\n          (\"Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: [\" + (err.message) + \"]\")\n        );\n      }\n    }\n  }\n\n  // Cached result\n  supportsWorkers = function () { return supported; };\n  return supported\n};\n\nvar _workerModuleId = 0;\nvar _messageId = 0;\nvar _allowInitAsString = false;\nvar workers = Object.create(null);\nvar openRequests = /*#__PURE__*/(function () {\n  var obj = Object.create(null);\n  obj._count = 0;\n  return obj\n})();\n\n\n/**\n * Define a module of code that will be executed with a web worker. This provides a simple\n * interface for moving chunks of logic off the main thread, and managing their dependencies\n * among one another.\n *\n * @param {object} options\n * @param {function} options.init\n * @param {array} [options.dependencies]\n * @param {function} [options.getTransferables]\n * @param {string} [options.name]\n * @param {string} [options.workerId]\n * @return {function(...[*]): {then}}\n */\nfunction defineWorkerModule(options) {\n  if ((!options || typeof options.init !== 'function') && !_allowInitAsString) {\n    throw new Error('requires `options.init` function')\n  }\n  var dependencies = options.dependencies;\n  var init = options.init;\n  var getTransferables = options.getTransferables;\n  var workerId = options.workerId;\n\n  if (!supportsWorkers()) {\n    return defineMainThreadModule(options)\n  }\n\n  if (workerId == null) {\n    workerId = '#default';\n  }\n  var id = \"workerModule\" + (++_workerModuleId);\n  var name = options.name || id;\n  var registrationThenable = null;\n\n  dependencies = dependencies && dependencies.map(function (dep) {\n    // Wrap raw functions as worker modules with no dependencies\n    if (typeof dep === 'function' && !dep.workerModuleData) {\n      _allowInitAsString = true;\n      dep = defineWorkerModule({\n        workerId: workerId,\n        name: (\"<\" + name + \"> function dependency: \" + (dep.name)),\n        init: (\"function(){return (\\n\" + (stringifyFunction(dep)) + \"\\n)}\")\n      });\n      _allowInitAsString = false;\n    }\n    // Grab postable data for worker modules\n    if (dep && dep.workerModuleData) {\n      dep = dep.workerModuleData;\n    }\n    return dep\n  });\n\n  function moduleFunc() {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    // Register this module if needed\n    if (!registrationThenable) {\n      registrationThenable = callWorker(workerId,'registerModule', moduleFunc.workerModuleData);\n    }\n\n    // Invoke the module, returning a thenable\n    return registrationThenable.then(function (ref) {\n      var isCallable = ref.isCallable;\n\n      if (isCallable) {\n        return callWorker(workerId,'callModule', {id: id, args: args})\n      } else {\n        throw new Error('Worker module function was called but `init` did not return a callable function')\n      }\n    })\n  }\n  moduleFunc.workerModuleData = {\n    isWorkerModule: true,\n    id: id,\n    name: name,\n    dependencies: dependencies,\n    init: stringifyFunction(init),\n    getTransferables: getTransferables && stringifyFunction(getTransferables)\n  };\n  return moduleFunc\n}\n\n/**\n * Stringifies a function into a form that can be deserialized in the worker\n * @param fn\n */\nfunction stringifyFunction(fn) {\n  var str = fn.toString();\n  // If it was defined in object method/property format, it needs to be modified\n  if (!/^function/.test(str) && /^\\w+\\s*\\(/.test(str)) {\n    str = 'function ' + str;\n  }\n  return str\n}\n\n\nfunction getWorker(workerId) {\n  var worker = workers[workerId];\n  if (!worker) {\n    // Bootstrap the worker's content\n    var bootstrap = stringifyFunction(workerBootstrap);\n\n    // Create the worker from the bootstrap function content\n    worker = workers[workerId] = new Worker(\n      URL.createObjectURL(\n        new Blob(\n          [(\"/** Worker Module Bootstrap: \" + (workerId.replace(/\\*/g, '')) + \" **/\\n\\n;(\" + bootstrap + \")()\")],\n          {type: 'application/javascript'}\n        )\n      )\n    );\n\n    // Single handler for response messages from the worker\n    worker.onmessage = function (e) {\n      var response = e.data;\n      var msgId = response.messageId;\n      var callback = openRequests[msgId];\n      if (!callback) {\n        throw new Error('WorkerModule response with empty or unknown messageId')\n      }\n      delete openRequests[msgId];\n      openRequests._count--;\n      callback(response);\n    };\n  }\n  return worker\n}\n\n// Issue a call to the worker with a callback to handle the response\nfunction callWorker(workerId, action, data) {\n  var thenable = DefaultThenable();\n  var messageId = ++_messageId;\n  openRequests[messageId] = function (response) {\n    if (response.success) {\n      thenable.resolve(response.result);\n    } else {\n      thenable.reject(new Error((\"Error in worker \" + action + \" call: \" + (response.error))));\n    }\n  };\n  openRequests._count++;\n  if (openRequests._count > 1000) { //detect leaks\n    console.warn('Large number of open WorkerModule requests, some may not be returning');\n  }\n  getWorker(workerId).postMessage({\n    messageId: messageId,\n    action: action,\n    data: data\n  });\n  return thenable\n}\n\n/**\n * Just the {@link Thenable} function wrapped as a worker module. If another worker\n * module needs Thenable as a dependency, it's better to pass this module rather than\n * the raw function in its `dependencies` array so it only gets registered once.\n */\nvar ThenableWorkerModule = /*#__PURE__*/defineWorkerModule({\n  name: 'Thenable',\n  dependencies: [DefaultThenable],\n  init: function(Thenable) {\n    return Thenable\n  }\n});\n\nexport { DefaultThenable as Thenable, ThenableWorkerModule, defineWorkerModule, stringifyFunction };\n"
  },
  {
    "path": "packages/sdk/lib/hooks/index.ts",
    "content": "import { useSignal,useAddSignal,useAddOnceSignal,useDispatchSignal,useRemoveSignal,useSetSignalActive } from './useSignal';\n\nexport {\n    useSignal,\n    useAddSignal,\n    useAddOnceSignal,\n    useDispatchSignal,\n    useRemoveSignal,\n    useSetSignalActive\n};\n"
  },
  {
    "path": "packages/sdk/lib/hooks/useSignal.ts",
    "content": "import {SignalsRegister} from \"@/utils/signals/signalRegister\";\n\ninterface SignalMethods<T = any> {\n\tadd(\n\t\tsignalName: string,\n\t\tlistener: (...params: T[]) => void,\n\t\tlistenerContext?: any,\n\t\tpriority?: Number\n\t): void;\n\taddOnce(\n\t\tsignalName: string,\n\t\tlistener: (...params: T[]) => void,\n\t\tlistenerContext?: any,\n\t\tpriority?: Number\n\t): void;\n\tdispatch(signalName: string, ...params: T[]): void;\n\tremove(signalName: string, listener: (...params: T[]) => void, context?: any): void;\n\tremoveAll(signalName: string): void;\n\tsetActive(signalName: string, active: boolean): void;\n\thalt(signalName: string): void;\n\tdispose(signalName: string): void;\n\thas(signalName: string, listener: (...params: T[]) => void, context?: any): boolean;\n}\n\nexport function useSignal(): SignalMethods {\n\tconst add = (\n\t\tsignalName: string,\n\t\tlistener: (...params: any) => void,\n\t\tlistenerContext?: any,\n\t\tpriority?: Number\n\t): void => {\n\t\tSignalsRegister[signalName].add(listener, listenerContext, priority);\n\t};\n\n\tconst addOnce = (\n\t\tsignalName: string,\n\t\tlistener: (...params: any) => void,\n\t\tlistenerContext?: any,\n\t\tpriority?: number\n\t): void => {\n\t\tSignalsRegister[signalName].addOnce(listener, listenerContext, priority);\n\t};\n\n\tconst dispatch = (signalName: string, ...params: any): void => {\n\t\tSignalsRegister[signalName].dispatch(...params);\n\t};\n\n\tconst remove = (\n\t\tsignalName: string,\n\t\tlistener: (...params: any) => void,\n\t\tcontext?: any\n\t): void => {\n\t\tSignalsRegister[signalName].remove(listener, context);\n\t};\n\n\tconst removeAll = (signalName: string): void => {\n\t\tSignalsRegister[signalName].removeAll();\n\t};\n\n\tconst setActive = (signalName: string, active: boolean): void => {\n\t\tSignalsRegister[signalName].active = active;\n\t};\n\n\tconst halt = (signalName: string): void => {\n\t\tSignalsRegister[signalName].halt();\n\t};\n\n\tconst dispose = (signalName: string): void => {\n\t\tSignalsRegister[signalName].dispose();\n\t};\n\n\tconst has = (\n\t\tsignalName: string,\n\t\tlistener: (...params: any) => void,\n\t\tcontext?: any\n\t): boolean => {\n\t\treturn SignalsRegister[signalName].has(listener, context);\n\t};\n\n\treturn { add, addOnce, dispatch, remove, removeAll, setActive, halt, dispose, has };\n}\n\nexport function useAddSignal(\n\tsignalName: string,\n\tlistener: (...params: any) => void,\n\tlistenerContext?: any,\n\tpriority?: Number\n): void {\n\tSignalsRegister[signalName].add(listener, listenerContext, priority);\n}\n\nexport function useAddOnceSignal(\n\tsignalName: string,\n\tlistener: (...params: any) => void,\n\tlistenerContext?: any,\n\tpriority?: number\n){\n\tSignalsRegister[signalName].addOnce(listener, listenerContext, priority);\n}\n\nexport function useDispatchSignal(signalName: string, ...arg): void {\n\tSignalsRegister[signalName].dispatch(...arg);\n}\n\nexport function useRemoveSignal(signalName: string, listener: (...params: any) => void): void {\n\tSignalsRegister[signalName].remove(listener);\n}\n\nexport function useSetSignalActive(signalName: string, active: boolean): void{\n\tSignalsRegister[signalName].active = active;\n};\n"
  },
  {
    "path": "packages/sdk/lib/index.ts",
    "content": "import App from \"./core/app/App\";\nimport Viewer from \"./core/viewer/Viewer\";\nimport Preview from \"./core/preview/Preview\";\nimport Loader from './core/loader/Loader';\n\n// export * as THREE from \"three\";\n// export * as THREEAddons from \"three/examples/jsm/Addons.js\";\n// 导出App&Viewer下的所有模块，可提供于前端用作类型声明\nexport * from \"./core/app/modules\";\nexport * from \"./core/viewer/modules\";\nexport { version } from '../package.json';\nexport * from \"./constant\";\n// 导出所有工具函数\nexport * as Utils from \"./utils\";\n// 导出所有基础物体\nexport * from \"./core/built-in/assets/BasicObject3D\";\n// 导出所有附加物体\nexport * from \"./core/objects\";\n// 导出内置粒子\nexport * from \"./core/built-in/assets/Particles\";\n// 导出内置几何形状\nexport * from \"./core/geometries\";\n// 导出工具类(漫游、小地图、剖切)\nexport * from \"./core/tools\";\n// 导出所有hooks\nexport * as Hooks from './hooks';\n// 导出所有命令\nexport * from \"./core/commands/Commands\";\n// 导出所有shader材质\nexport * from \"./core/shaderMaterial/modules\"\n// 导出动画轨道生成器\nexport type {ITimelineKeyframe,ITimelineRow,ITimelineModel} from \"./core/animation/TimelineTrack.ts\";\nexport {TimelineTrack} from \"./core/animation/TimelineTrack.ts\";\nexport * as Timeline from \"./core/libs/astral-timeline/animation-timeline\";\n// 导出粒子库\nexport * as Particle from './core/libs/three-nebula/index.js';\n// 导出脚本相关\nexport * as Script from \"./core/script\";\n\n// 点云相关\nexport * from \"./core/points\";\n\n// CAD相关\nexport {DxfViewer} from \"./dxf\";\nexport {DxfParser} from \"./dxf/parser\";\n\n// 插件声明\nexport type {Plugin} from \"./core/plugin/plugin\";\n\nexport {\n    App,\n    Viewer,\n    Preview,\n    Loader\n}"
  },
  {
    "path": "packages/sdk/lib/utils/common/dom.ts",
    "content": "/**\n * Create a container.\n */\nexport function createDivContainer(): HTMLDivElement {\n    const div = document.createElement(\"div\");\n    document.body.appendChild(div);\n    return div;\n}"
  },
  {
    "path": "packages/sdk/lib/utils/common/download.ts",
    "content": "/**\n * 下载blob二进制对象\n * @param blob\n * @param filename\n */\nexport function downloadBlob(blob, filename) {\n    const link = document.createElement('a');\n\n    if (link.href) {\n        URL.revokeObjectURL(link.href);\n    }\n\n    link.href = URL.createObjectURL(blob);\n    link.download = filename || 'data.json';\n    link.dispatchEvent(new MouseEvent('click'));\n}\n\n/**\n * 下载ArrayBuffer对象\n * @param buffer\n * @param filename\n */\nexport function saveArrayBuffer(buffer, filename) {\n    downloadBlob(new Blob([buffer], {type: 'application/octet-stream'}), filename);\n}\n\n/**\n * 下载text文档\n * @param text\n * @param filename\n */\nexport function saveString(text, filename) {\n    downloadBlob(new Blob([text], {type: 'text/plain'}), filename);\n}"
  },
  {
    "path": "packages/sdk/lib/utils/common/helper.ts",
    "content": "/**\n * 递归访问嵌套属性\n * @param {object} obj\n * @param {string} path 属性路径字符串，eg: \"a.b.c\"\n */\nexport function getNestedProperty(obj:object, path:string):any {\n    return path.split('.').reduce((o, key) => o?.[key], obj);\n}\n\n/**\n * 转义正则特殊字符\n * @param {string} str\n */\nexport function escapeRegExp(str:string) {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/**\n * 获取系统主题色\n */\nexport function getOsTheme(){\n    const isDarkTheme = window.matchMedia(\"(prefers-color-scheme: dark)\"); // 是深色\n    if (isDarkTheme.matches) {\n        return 'dark';\n    } else {\n        return \"light\";\n    }\n}\n\n/**\n * 获取rem的px值\n */\nexport function remToPxNumber(rem: number): number {\n    const f = parseFloat(document.documentElement.style.fontSize);\n    return f * rem;\n}\n"
  },
  {
    "path": "packages/sdk/lib/utils/common/index.ts",
    "content": "export * from './object';\nexport * from './performance';\nexport * from './helper';\nexport * from './download';\nexport * from './verify';\nexport * from './dom';"
  },
  {
    "path": "packages/sdk/lib/utils/common/object.ts",
    "content": "/**\n * 将对象source的值深度遍历赋值给target对象相同key\n * @param target\n * @param source\n */\nexport function deepAssign(target, source) {\n    for (const key in source) {\n        if (source.hasOwnProperty(key)) {\n            if (typeof source[key] === 'object' && source[key] !== null && !Array.isArray(source[key])) {\n                if (!target[key]){\n                    target[key] = {};\n                }\n                deepAssign(target[key], source[key]);\n            } else {\n                target[key] = source[key];\n            }\n        }\n    }\n}\n\n/**\n * 深度比较两个值是否相等\n * @param {any} a\n * @param {any} b\n * @returns {boolean}\n */\nexport function deepEqual(a, b) {\n    // 引用相同\n    if (a === b) return true;\n\n    // 排除 null\n    if (a === null || b === null) return false;\n\n    // 类型不同\n    if (typeof a !== typeof b) return false;\n\n    // 处理日期对象\n    if (a instanceof Date && b instanceof Date) {\n        return a.getTime() === b.getTime();\n    }\n\n    // 处理数组\n    if (Array.isArray(a) && Array.isArray(b)) {\n        if (a.length !== b.length) return false;\n        for (let i = 0; i < a.length; i++) {\n            if (!deepEqual(a[i], b[i])) return false;\n        }\n        return true;\n    }\n\n    // 处理对象\n    if (typeof a === 'object' && typeof b === 'object') {\n        const keysA = Object.keys(a);\n        const keysB = Object.keys(b);\n        if (keysA.length !== keysB.length) return false;\n        for (let key of keysA) {\n            if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n            if (!deepEqual(a[key], b[key])) return false;\n        }\n        return true;\n    }\n\n    // 其他基本类型\n    return false;\n}"
  },
  {
    "path": "packages/sdk/lib/utils/common/performance.ts",
    "content": "/**\n * 防抖函数\n * @param {Function} func - 需要防抖的函数\n * @param {number} wait - 时间间隔（毫秒）\n * @returns {Function} - 返回一个防抖后的函数\n */\nexport function debounce(func, wait): (...args: any[]) => void {\n    let timer: NodeJS.Timeout | null = null;\n    return function(){\n        if (timer) {\n            clearTimeout(timer);\n        }\n        timer = setTimeout(() => {\n            func(...arguments)\n        }, wait);\n    };\n}\n\n/**\n * 节流函数\n * @param {Function} func - 需要节流的函数\n * @param {number} wait - 时间间隔（毫秒），表示在这个时间间隔内最多执行一次函数\n * @returns {Function} - 返回一个节流后的函数\n */\nexport function throttle(func, wait:number):(...args: any[]) => void {\n    // 上一次执行函数的时间戳，初始值为 0\n    let lastTime = 0;\n\n    // 返回一个闭包函数，作为节流后的函数\n    return function () {\n        // 获取当前时间戳\n        const now = Date.now();\n\n        // 如果当前时间与上一次执行时间的差值大于等于 wait，则执行函数\n        if (now - lastTime >= wait) {\n            // 更新上一次执行函数的时间戳\n            lastTime = now;\n            // 调用原始函数，并传入参数\n            func(...arguments);\n        }\n    };\n}\n"
  },
  {
    "path": "packages/sdk/lib/utils/common/verify.ts",
    "content": "/**\n * 验证方法\n */\n\nexport const IS_MAC = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n\nexport const isNil = (v) => v === null || v === undefined;\n\n// 判断是否是空对象，排除数组\nexport const isEmptyObject = (obj:object) => typeof obj === 'object' && obj !== null && !Array.isArray(obj) && Object.keys(obj).length === 0;"
  },
  {
    "path": "packages/sdk/lib/utils/index.ts",
    "content": "/**\n * Astral3D.Utils namespace\n */\nexport * from \"./common\";\nexport * from \"./scene\";\nexport * from \"./request\";\nexport * from \"./wasm\";\nexport * from \"./signals/signalRegister\";\nexport {logger} from \"./log/Logger\";\nexport type {ILog} from \"./log/Logger\";"
  },
  {
    "path": "packages/sdk/lib/utils/log/Logger.ts",
    "content": "/**\n * @author ErSan\n * @email  mlt131220@163.com\n * @date   2025/2/24 下午2:21\n * @description 日志记录器\n */\nimport {useAddSignal, useDispatchSignal,useRemoveSignal} from '@/hooks';\n\nexport interface ILog {\n    id: number;\n    message: string;\n    time: string;\n    level: string;\n}\n\nlet _delLogFn,_clearLogFn,_historyChangedFn;\nclass Logger {\n    static Enum = Object.freeze({\n        TRACE: \"trace\",\n        DEBUG: \"debug\",\n        INFO: \"info\",\n        WARN: \"warn\",\n        ERROR: \"error\"\n    });\n\n    // 是否启用日志\n    enabled: boolean = true;\n\n    // 日志信息\n    logs: ILog[] = [];\n\n    constructor() {\n        _delLogFn = this.delLog.bind(this);\n        useAddSignal(\"deleteLog\",_delLogFn);\n        _clearLogFn = this.clearLogs.bind(this);\n        useAddSignal(\"clearLogs\",_clearLogFn);\n        _historyChangedFn = this.historyChanged.bind(this);\n        useAddSignal(\"historyChanged\",_historyChangedFn);\n    }\n\n    log(methodName:string,message:string){\n        if(!this.enabled) return;\n\n        const _log = {\n            id: this.logs.length,\n            message,\n            level: methodName,\n            time: new Date().toLocaleString()\n        }\n\n        this.logs.unshift(_log);\n\n        useDispatchSignal(\"addLog\", _log, this.logs);\n    }\n\n    trace(message:string) { this.log(Logger.Enum.TRACE, message); }\n    debug(message:string) { this.log(Logger.Enum.DEBUG, message); }\n    info(message:string) { this.log(Logger.Enum.INFO, message); }\n    warn(message:string) { this.log(Logger.Enum.WARN, message); }\n    error(message:string) { this.log(Logger.Enum.ERROR, message); }\n\n    /**\n     * 删除日志\n     * @param _log\n     */\n    delLog(_log: ILog) {\n        this.logs = this.logs.filter(log => log.id!== _log.id);\n    }\n\n    /**\n     * 清空日志\n     */\n    clearLogs() {\n        this.logs = [];\n    }\n\n    /**\n     * 历史记录变化回调\n     * @param cmd\n     */\n    historyChanged(cmd){\n        if(!cmd?.name) return;\n\n        let msg = cmd.name;\n        const postposition = ['AddObjectCommand','RemoveObjectCommand','MoveObjectCommand'];\n        if(postposition.includes(cmd.type)){\n            msg = `${msg}: ${cmd.object.name} `;\n        }else if(cmd.object){\n            msg = `${cmd.object.name} ${msg.toLowerCase()}`;\n        }\n\n        if(cmd.newValue !== undefined && cmd.oldValue !== undefined){\n            let newValue = cmd.newValue;\n            let oldValue = cmd.oldValue;\n            if(typeof newValue === 'object'){\n                newValue = JSON.stringify(newValue);\n            }\n            if(typeof oldValue === 'object'){\n                oldValue = JSON.stringify(oldValue);\n            }\n\n            msg = `${msg}: ${oldValue} ⇒ ${newValue}`;\n        }\n\n        this.info(msg);\n    }\n\n    dispose() {\n        useRemoveSignal(\"deleteLog\",_delLogFn)\n        _delLogFn = null;\n        useRemoveSignal(\"clearLogs\",_clearLogFn)\n        _clearLogFn = null;\n        useRemoveSignal(\"historyChanged\",_historyChangedFn)\n        _historyChangedFn = null;\n    }\n}\n\nexport const logger = new Logger();\n\nexport default logger;"
  },
  {
    "path": "packages/sdk/lib/utils/request/fetchController.ts",
    "content": "/**\n * 创建一个handlerFetch\n *\n * @param limit 并发控制 \n * @param timeout 超时设\n * @return function 返回一个函数\n */\nexport function fetchController(limit: number, timeout: number | boolean) {\n    limit = limit || 1;\n    timeout = timeout || false;\n    let count = 0, pool: any = [];\n\n    return function (url: string, options?: any) {\n        // 通过AbortController 控制 取消fetch 请求\n        let controller = new AbortController();\n        let signal = controller.signal;\n        // 判断是否需要超时\n        let isTimeout = options && options.timeout || timeout;\n\n        // 控制请求超时\n        let timeoutPromise = () => {\n            return new Promise((reject) => {\n                setTimeout(() => {\n                    // resolve('请求超时');\n                    reject('请求超时');\n                    controller.abort();\n                }, options?.timeout || timeout)\n            })\n        }\n\n        // 返回fetch 本身\n        let taskPromise = () => new Promise((resolve, reject) => {\n            fetch(url, { signal, ...options }).then(res => {\n                resolve(res);\n            }).catch(err => {\n                reject(err)\n            })\n        });\n\n        // 通过Promise.race可以控制超时，并在访问结果中 去继续调用等待池中的请求\n        let task = () => (isTimeout ? Promise.race([timeoutPromise(), taskPromise()]) : taskPromise())\n            .then((res) => {\n                options.onSuccess && options.onSuccess(res)\n                next();\n            })\n            .catch((err) => {\n                options.onError && options.onError(err)\n                next();\n            });\n\n        // 定一个next 控制等待队列中的请求继续并发调用\n        let next = () => {\n            // 每执行一次next count - 1，然后比较当前的count 与 limit\n            // 如果小于limit 循环执行limit-count 次\n            count--;\n            if (count < limit && pool.length) {\n                let n = limit - count;\n                for (let i = 0; i < n; i++) {\n                    let curTask: any = pool.shift();\n                    curTask();\n                    ++count;\n                }\n            }\n        };\n\n        // 比较count与limit 大于等于limit的推入等待队列 小于limit的 count + 1，并执行fetch请求\n        if (count >= limit) {\n            pool.push(task);\n        } else {\n            ++count;\n            task();\n        }\n    }\n}\n"
  },
  {
    "path": "packages/sdk/lib/utils/request/index.ts",
    "content": "export * from './fetchController';"
  },
  {
    "path": "packages/sdk/lib/utils/scene/Stats.ts",
    "content": "/**\n * 性能状态监视器，基于stats.js\n * 默认展示全部面板\n */\nimport ThreeStats from 'three/examples/jsm/libs/stats.module.js';\nimport Viewer from \"@/core/viewer/Viewer.ts\";\n\nexport class Stats {\n    private viewer: Viewer;\n    private threeStats: ThreeStats;\n    private panel = 0;\n    private _visible = true;\n\n    private fns:{\n        beforeRender:null | (() => void);\n        afterRender:null | (() => void);\n    } = {\n        beforeRender: null,\n        afterRender: null,\n    }\n\n    constructor(viewer: Viewer) {\n        this.viewer = viewer;\n        this.threeStats = new ThreeStats();\n\n        this.initEvent();\n\n        this.init();\n    }\n\n    get domElement():HTMLElement {\n        return this.threeStats.dom;\n    }\n\n    get visible(){\n        return this._visible;\n    }\n\n    set visible(visible:boolean) {\n        this._visible = visible;\n\n        this.domElement.style.display = visible ? \"block\" : 'none';\n    }\n\n    initEvent(){\n        this.fns.beforeRender = () => {\n            if(!this.visible) return;\n\n            this.threeStats.begin();\n        };\n        this.viewer.addEventListener(\"beforeRender\",this.fns.beforeRender);\n\n        this.fns.afterRender = () => {\n            if(!this.visible) return;\n\n            this.threeStats.end();\n        };\n        this.viewer.addEventListener(\"afterRender\",this.fns.afterRender);\n    }\n\n    init(){\n        const canvases = this.domElement.querySelectorAll(\"canvas\");\n        canvases.forEach(canvas => {\n            canvas.style.width = \"5rem\";\n            canvas.style.height = \"3rem\";\n            canvas.style.display = \"block\";\n        });\n    }\n\n    showPanel(type: number | 'fps' | 'ms' | 'mb') {\n        if (typeof type === 'number') {\n            this.threeStats.showPanel(type);\n            this.panel = type;\n            return;\n        }\n\n        switch (type.toLowerCase()) {\n            case 'fps':\n                this.threeStats.showPanel(0);\n                this.panel = 0;\n                break;\n            case 'ms':\n                this.threeStats.showPanel(1);\n                this.panel = 1;\n                break;\n            case 'mb':\n                this.threeStats.showPanel(2);\n                this.panel = 2;\n                break;\n        }\n    }\n\n    showAllPanels(show:boolean) {\n        const canvases = this.domElement.querySelectorAll(\"canvas\");\n        canvases.forEach(canvas => {\n            canvas.style.display = show ? \"block\" : \"none\";\n        });\n\n        if(!show){\n            this.showPanel(this.panel);\n        }\n    }\n\n    dispose(){\n        if(this.fns.beforeRender){\n            this.viewer.removeEventListener(\"beforeRender\",this.fns.beforeRender);\n            this.fns.beforeRender = null;\n        }\n\n        if(this.fns.afterRender){\n            this.viewer.removeEventListener(\"afterRender\",this.fns.afterRender);\n            this.fns.afterRender = null;\n        }\n\n        // @ts-ignore\n        this.threeStats = null;\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/utils/scene/controls.ts",
    "content": "import {Object3D,Box3,Sphere,Vector3} from \"three\";\nimport CameraControls from \"camera-controls\";\n\nfunction getObjectBox3(object:Object3D){\n    const box3 = new Box3();\n    box3.setFromObject(object);\n\n    if(box3.isEmpty()){\n        box3.set(new Vector3(object.position.x-1, object.position.y-1, object.position.z-1), new Vector3(object.position.x+1, object.position.y+1, object.position.z+1));\n    }\n\n    return box3;\n}\n\nexport function focusObject(object:Object3D,controls:CameraControls,enableTransition: boolean = true){\n    const box3 = getObjectBox3(object);\n\n    return controls.fitToBox(box3,enableTransition);\n}\n\nexport function focusObjectByDistance(object:Object3D,controls:CameraControls,distance:number,enableTransition: boolean = true){\n    const box3 = getObjectBox3(object);\n    const sphere = box3.getBoundingSphere(new Sphere());\n\n    const center = sphere.center.clone();\n    const radius = Number.isFinite(sphere.radius) ? sphere.radius : 1;\n    const toSurfaceDistance = Math.max(distance, 0);\n    const toCenterDistance = Math.max(radius + toSurfaceDistance, 0.01);\n\n    const currentPosition = controls.getPosition(new Vector3());\n    const currentTarget = controls.getTarget(new Vector3());\n    const direction = currentPosition.sub(currentTarget);\n    if(direction.lengthSq() < 1e-6){\n        direction.set(0, 0, 1);\n    }\n    direction.normalize();\n\n    const nextPosition = center.clone().addScaledVector(direction, toCenterDistance);\n\n    return controls.setLookAt(\n        nextPosition.x,\n        nextPosition.y,\n        nextPosition.z,\n        center.x,\n        center.y,\n        center.z,\n        enableTransition\n    );\n}\n"
  },
  {
    "path": "packages/sdk/lib/utils/scene/index.ts",
    "content": "import { Object3D,InstancedMesh,Mesh,Matrix4,AnimationAction,AnimationClip } from \"three\";\nimport App from \"@/core/app/App\";\n\nexport * from \"./material\";\nexport * from \"./Stats\";\nexport * from \"./controls\";\n\n/**\n * 获取对象到父对象的路径(结果不包含parentObject)\n * @param parentObject\n * @param object\n * @param attr 对象属性名\n * @param splitter 路径分隔符\n */\nexport function getParentPath(parentObject:Object3D,object:Object3D,attr = 'name',splitter = '/'){\n    if(!parentObject || !object) return '';\n\n    if(parentObject === object) return object[attr];\n\n    let path = [object[attr]];\n\n    const getPath = (obj) => {\n        if(!obj.parent) return;\n\n        if(obj.parent === parentObject) return;\n\n        path.unshift(obj.parent[attr]);\n\n        getPath(obj.parent);\n    }\n    getPath(object);\n\n    return path.join(splitter);\n}\n\n/**\n * 获取鼠标按下的位置\n * @param dom\n * @param x\n * @param y\n */\nexport function getMousePosition(dom: HTMLElement, x: number, y: number) {\n    const rect = dom.getBoundingClientRect();\n    return [(x - rect.left) / rect.width, (y - rect.top) / rect.height];\n}\n\n/**\n * InstancedMesh 解出所有 mesh\n */\nexport function getMeshByInstancedMesh(instancedMesh:InstancedMesh){\n    const meshes:Mesh[] = [];\n    // if (instancedMesh.material === undefined) return meshes;\n\n    const matrixWorld = instancedMesh.matrixWorld;\n    const count = instancedMesh.count;\n\n    for (let instanceId = 0; instanceId < count; instanceId++) {\n        const _mesh = new Mesh();\n        const _instanceLocalMatrix = new Matrix4();\n        const _instanceWorldMatrix = new Matrix4();\n\n        _mesh.geometry = instancedMesh.geometry;\n        _mesh.material = instancedMesh.material;\n\n        // 计算每个实例的世界矩阵\n        instancedMesh.getMatrixAt(instanceId, _instanceLocalMatrix);\n\n        _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix);\n\n        // 网格表示这个单一实例\n        _mesh.matrixWorld = _instanceWorldMatrix;\n\n        meshes.push(_mesh);\n    }\n\n    return meshes;\n}\n\n/**\n * 判断是否是group,因为导入有可能存在被定义为Object3D类型的group\n */\nexport function isGroup(object3D:Object3D){\n    return (object3D.isGroup || object3D.children.length > 0)\n}\n\n/**\n * 判断是否是代理粒子发射器的3D对象\n */\nexport function isParticleObject(object:Object3D | null){\n    return object && object.type === \"Particle\" && object.emitter;\n}\n\n/**\n * 判断是否是Billboard 3D对象\n */\nexport function isBillboardObject(object:Object3D | null){\n    return object && object.type === \"Billboard\" && object.options;\n}\n\n/**\n * 判断是否是HtmlPanel 3D对象\n */\nexport function isHtmlPanelObject(object:Object3D | null){\n    return object && (object.isHtmlPanel || object.isHtmlSprite) && object.element;\n}\n\n/**\n * 获取场景/物体中的所有动画\n */\nexport function getAnimations(object = App.scene) {\n    const animations: any = [];\n\n    object.traverse(function (object) {\n        animations.push(...object.animations);\n    });\n\n    return animations;\n}\n\n/**\n * 获取场景/物体中的所有动画剪辑\n */\nexport function getAnimationClips(object:Object3D = App.scene) {\n    const animations: any = [];\n\n    object.traverse(function (object) {\n        object.animations.forEach(animation => {\n            if(animation instanceof AnimationAction){\n                animations.push(animation.getClip());\n            }\n\n            if(animation instanceof AnimationClip){\n                animations.push(animation);\n            }\n        })\n    });\n\n    return animations;\n}"
  },
  {
    "path": "packages/sdk/lib/utils/scene/material.ts",
    "content": "import * as THREE from \"three\";\nimport Loader from \"@/core/loader/Loader.ts\";\nimport App from \"@/core/app/App.ts\";\nimport { readAstralZipArrayBuffer, readAstralZipBlob, readAstralZipText, waitAstralZipConstructor } from \"@/utils/wasm/zip.ts\";\n\ninterface IMaterialZipJson {\n    textures: Record<string, string>;\n    properties: Record<string, unknown>;\n}\n\ninterface ITextureLoadResult {\n    type: string;\n    texture: THREE.Texture | null;\n}\n\n/**\n * 根据文件名推断 PBR 贴图槽位。\n * @param materialJson 材质描述对象。\n * @param relativePath ZIP 内部文件路径。\n */\nfunction collectTexturePath(materialJson: IMaterialZipJson, relativePath: string) {\n    if (relativePath.includes(\"baseColor\")) {\n        materialJson.textures.baseColor = relativePath;\n    } else if (relativePath.includes(\"normal\")) {\n        materialJson.textures.normal = relativePath;\n    } else if (relativePath.includes(\"bump\")) {\n        materialJson.textures.bump = relativePath;\n    } else if (relativePath.includes(\"displacement\")) {\n        materialJson.textures.displacement = relativePath;\n    }  else if (relativePath.includes(\"emissive\")) {\n        materialJson.textures.emissive = relativePath;\n    } else if (relativePath.includes(\"alpha\")) {\n        materialJson.textures.alpha = relativePath;\n    } else if (relativePath.includes(\"env\")) {\n        materialJson.textures.env = relativePath;\n    } else if (relativePath.includes(\"light\")) {\n        materialJson.textures.light = relativePath;\n    } else {\n        // arm 贴图可能将粗糙度、金属度、AO 分别写入同一张图的不同通道，因此这里保留多槽位写入。\n        if (relativePath.includes(\"roughness\")) {\n            materialJson.textures.roughness = relativePath;\n        }\n        if (relativePath.includes(\"metalness\")) {\n            materialJson.textures.metalness = relativePath;\n        }\n        if (relativePath.includes(\"ao\")) {\n            materialJson.textures.ao = relativePath;\n        }\n    }\n}\n\n/**\n * 在没有 material.json 时从 ZIP 文件名推断材质描述。\n * @param fileMetas ZIP 内文件元信息列表。\n * @returns {IMaterialZipJson} 推断出的材质描述。\n */\nfunction createMaterialJsonFromFiles(fileMetas: IAstralZip.FileMeta[]): IMaterialZipJson {\n    const materialJson: IMaterialZipJson = {\n        textures: {},\n        properties: {}\n    };\n\n    fileMetas.forEach(fileMeta => {\n        const relativePath = fileMeta.name;\n\n        // AstralZip 会显式返回目录描述；同时兼容以斜杠结尾的目录路径。\n        if (fileMeta.dir || relativePath.endsWith(\"/\")) return;\n\n        collectTexturePath(materialJson, relativePath);\n    });\n\n    return materialJson;\n}\n\n/**\n * 从 ZIP 中读取材质描述。\n * @param zipContent ZIP 归档对象。\n * @returns {Promise<IMaterialZipJson>} 材质描述。\n */\nasync function readMaterialJson(zipContent: IAstralZip.Zip): Promise<IMaterialZipJson> {\n    const materialJsonFile = zipContent.file(\"material.json\");\n    if (!materialJsonFile) {\n        return createMaterialJsonFromFiles(zipContent.files());\n    }\n\n    return JSON.parse(await readAstralZipText(zipContent, \"material.json\"));\n}\n\n/**\n * 加载单张材质贴图。\n * @param zipContent ZIP 归档对象。\n * @param type 贴图槽位。\n * @param path ZIP 内部贴图路径。\n * @returns {Promise<ITextureLoadResult>} 贴图加载结果。\n */\nasync function loadMaterialTexture(zipContent: IAstralZip.Zip, type: string, path: string): Promise<ITextureLoadResult> {\n    const textureFile = zipContent.file(path);\n    if (!textureFile) {\n        console.warn(`Texture file not found: ${path}`);\n        return { type, texture: null };\n    }\n\n    const extension = path.toString().split(\".\").pop()?.toLowerCase() || \"jpg\";\n    let textureBlob: Blob;\n\n    try {\n        // EXR 需要保留专用 MIME，避免后续纹理加载器无法识别格式。\n        if (extension === \"exr\") {\n            const buffer = await readAstralZipArrayBuffer(zipContent, path);\n            textureBlob = new Blob([buffer], { type: \"image/x-exr\" });\n        } else {\n            textureBlob = await readAstralZipBlob(zipContent, path);\n        }\n    } catch (err) {\n        console.error(`Failed to load texture (${type}):`, err);\n        return { type, texture: null };\n    }\n\n    const textureUrl = URL.createObjectURL(textureBlob);\n\n    return new Promise<ITextureLoadResult>(\n        (resolve) => {\n            Loader.loadUrlTexture(\n                extension,\n                textureUrl,\n                (texture: THREE.Texture) => {\n                    URL.revokeObjectURL(textureUrl);\n                    resolve({ type, texture });\n                },\n                (error: Error) => {\n                    URL.revokeObjectURL(textureUrl);\n                    console.error(`Texture load error (${type}):`, error);\n                    resolve({ type, texture: null });\n                }\n            );\n        }\n    );\n}\n\n/**\n * 解析材质zip包\n * @param zipFile 材质 ZIP 文件。\n * @returns {Promise<THREE.MeshStandardMaterial>} 解析后的 PBR 材质。\n */\nexport async function parseMaterialZip(zipFile: File): Promise<THREE.MeshStandardMaterial> {\n    const AstralZip = await waitAstralZipConstructor();\n    const zipContent = await AstralZip.loadAsync(zipFile);\n\n    try {\n        const materialJson = await readMaterialJson(zipContent);\n\n        // 并行加载所有纹理，保持原有解析速度和容错行为。\n        const textureResults = await Promise.all(\n            Object.entries(materialJson.textures).map(([type, path]) => loadMaterialTexture(zipContent, type, path))\n        );\n        const textures = textureResults.reduce((acc, { type, texture }) => {\n            if (texture) acc[type] = texture;\n            return acc;\n        }, {} as Record<string, THREE.Texture>);\n\n        // 处理无有效纹理的情况。\n        if (Object.keys(textures).length === 0) {\n            throw new Error(\"No valid textures found in the zip file\");\n        }\n\n        return await App.createPBRMaterial(textures, materialJson.properties || {});\n    } finally {\n        zipContent.dispose();\n    }\n}\n"
  },
  {
    "path": "packages/sdk/lib/utils/signals/signalRegister.ts",
    "content": "import Signal from 'signals';\n\ninterface SignalObj<T = any> {\n  add(listener: (...params: T[]) => void, listenerContext?: any, priority?: Number): void;\n  addOnce(listener: (...params: T[]) => void, listenerContext?: any, priority?: Number): void;\n  dispatch(...params: T[]): void;\n  remove(listener: (...params: T[]) => void, context?: any): void;\n  removeAll(): void;\n  setActive(active: boolean): void;\n  halt(): void;\n  dispose(): void;\n  has(listener: (...params: T[]) => void, context?: any): boolean;\n  active: boolean;\n}\n\ninterface SignalRegister {\n  [s: string]: SignalObj;\n}\n\n/**\n * App\n * @path lib/core/App\n */\nconst appSignals: SignalRegister = {\n  // xr\n  enterXR: new Signal(),\n  offerXR: new Signal(),\n  leaveXR: new Signal(),\n  \n  sceneCleared: new Signal(),\n\n  transformModeChanged: new Signal(),\n  snapChanged: new Signal(),\n  spaceChanged: new Signal(),\n  rendererCreated: new Signal(),\n  rendererUpdated: new Signal(),\n  rendererConfigUpdate: new Signal(),\n  rendererDetectKTX2Support: new Signal(),\n\n  sceneBackgroundChanged: new Signal(),\n  sceneEnvironmentChanged: new Signal(),\n  sceneFogSettingsChanged: new Signal(),\n  // 雨效果配置参数变更\n  sceneRainSettingsChanged: new Signal(),\n  // 雪效果配置参数变更\n  sceneSnowSettingsChanged: new Signal(),\n  sceneGraphChanged: new Signal(),\n  sceneRendered: new Signal(),\n  sceneResize: new Signal(),\n\n  cameraAdded: new Signal(),\n  cameraRemoved: new Signal(),\n  cameraChanged: new Signal(),\n  cameraReset: new Signal(),\n\n  geometryChanged: new Signal(),\n\n  objectSelected: new Signal(),\n  objectFocused: new Signal(),\n  objectFocusByUuid: new Signal(),\n\n  // 锁定模型\n  objectLocked: new Signal(),\n  // 解锁模型\n  objectUnlocked: new Signal(),\n\n  objectAdded: new Signal(),\n  objectChanged: new Signal(),\n  objectRemoved: new Signal(),\n\n  materialAdded: new Signal(),\n  materialChanged: new Signal(),\n  materialRemoved: new Signal(),\n  materialCurrentSlotChange: new Signal(),\n\n  scriptAdded: new Signal(),\n  scriptChanged: new Signal(),\n  scriptRemoved: new Signal(),\n\n  showGridChanged: new Signal(),\n  historyChanged: new Signal(),\n\n  // 场景主相机变更\n  viewportCameraChanged: new Signal(),\n  viewportShadingChanged: new Signal(),\n\n  intersectionsDetected: new Signal(),\n\n  pathTracerUpdated: new Signal(),\n\n  // 实例化ShaderMaterial类型内置材质\n  instantiateShaderMaterial: new Signal(),\n\n  // 场景加载完成\n  sceneLoadComplete: new Signal(),\n\n  // 添加日志\n  addLog: new Signal(),\n  // 删除日志\n  deleteLog: new Signal(),\n  // 清空日志\n  clearLogs: new Signal(),\n\n  // 动画更新渲染\n  animationMixerUpdate: new Signal(),\n  // 动画轨道时间变化(游标拖动)\n  timelineTimeChanged: new Signal(),\n  // 动画轨道行变化（添加/删除）\n  timelineRowChanged: new Signal(),\n};\n\n/**\n * Viewer\n * @path lib/core/Viewer\n */\nconst ViewerSignals: SignalRegister = {\n  // viewer 初始化完毕，即构造函数执行完毕\n  viewerInitCompleted: new Signal(),\n  // 插件注册\n  pluginInstall: new Signal(),\n  // 插件卸载\n  pluginUninstall: new Signal(),\n  IFCPropertiesVisible: new Signal(),\n  // 启用/禁用后处理\n  effectEnabledChange: new Signal(),\n  // 后处理通道配置变更\n  effectPassConfigChange: new Signal(),\n  // 粒子body使用的Object3D变更\n  particleBodyChanged: new Signal(),\n  // 粒子系统添加emitter后触发\n  particleSystemAddEmitter: new Signal(),\n  // 将emitter添加到粒子系统：fromJSON时触发\n  emitterAdd2ParticleSystem: new Signal(),\n}\n\n/**\n * 图纸 相关\n */\nconst drawingSignals: SignalRegister = {\n  drawingMarkDone: new Signal(),  // 新增/编辑 图纸标记完成回调\n  cadViewerResize: new Signal(), // 图纸面板移动\n}\n\n\nexport const SignalsRegister: SignalRegister = {\n  ...appSignals,\n  ...ViewerSignals,\n  ...drawingSignals,\n};\n\n// signal注册器\nexport const SignalsRegisterFn = (newSignals:Array<string>) => {\n  newSignals.forEach(key => {\n    SignalsRegister[key] = new Signal();\n  })\n}\n"
  },
  {
    "path": "packages/sdk/lib/utils/wasm/index.ts",
    "content": "export * from \"./zip.ts\";\nexport * from \"./inject.ts\";"
  },
  {
    "path": "packages/sdk/lib/utils/wasm/inject.ts",
    "content": "import \"./wasm_exec.js\";\n\n// 20251112: 注入tinyGo编译的wasm\nexport function injectWasm(opts: { wasmUrl: string }): Promise<any> {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!opts.wasmUrl) {\n\t\t\treject(\"wasmUrl requires valid URL\");\n\t\t\treturn;\n\t\t}\n\n\t\t// @ts-ignore\n\t\tconst go = new AstralGo();\n\n\t\tconst done = obj => {\n\t\t\tconst wasm = obj.instance;\n\t\t\tgo.run(wasm);\n\n\t\t\tresolve(wasm);\n\t\t};\n\n\t\tif (\"instantiateStreaming\" in WebAssembly) {\n\t\t\tWebAssembly.instantiateStreaming(fetch(opts.wasmUrl), go.importObject)\n\t\t\t\t.then(function (obj) {\n\t\t\t\t\tdone(obj);\n\t\t\t\t})\n\t\t\t\t.catch(function (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\t\t} else {\n\t\t\tfetch(opts.wasmUrl)\n\t\t\t\t.then(resp => resp.arrayBuffer())\n\t\t\t\t.then(bytes =>\n\t\t\t\t\tWebAssembly.instantiate(bytes, go.importObject)\n\t\t\t\t\t\t.then(function (obj) {\n\t\t\t\t\t\t\tdone(obj);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t})\n\t\t\t\t);\n\t\t}\n\t});\n}\n"
  },
  {
    "path": "packages/sdk/lib/utils/wasm/wasm_exec.js",
    "content": "(() => {\n    const global = window;\n\n\tconst encoder = new TextEncoder(\"utf-8\");\n\tconst decoder = new TextDecoder(\"utf-8\");\n\tlet reinterpretBuf = new DataView(new ArrayBuffer(8));\n    let logLine = [];\n\tconst wasmExit = {}; // thrown to exit via proc_exit (not an error)\n\n\tglobal.AstralGo = class {\n\t\tconstructor() {\n\t\t\tthis._callbackTimeouts = new Map();\n\t\t\tthis._nextCallbackTimeoutID = 1;\n\n\t\t\tconst mem = () => {\n\t\t\t\t// The buffer may change when requesting more memory.\n\t\t\t\treturn new DataView(this._inst.exports.memory.buffer);\n\t\t\t}\n\n\t\t\tconst unboxValue = (v_ref) => {\n\t\t\t\treinterpretBuf.setBigInt64(0, v_ref, true);\n\t\t\t\tconst f = reinterpretBuf.getFloat64(0, true);\n\t\t\t\tif (f === 0) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tif (!isNaN(f)) {\n\t\t\t\t\treturn f;\n\t\t\t\t}\n\n\t\t\t\tconst id = v_ref & 0xffffffffn;\n\t\t\t\treturn this._values[id];\n\t\t\t}\n\n\n\t\t\tconst loadValue = (addr) => {\n\t\t\t\tlet v_ref = mem().getBigUint64(addr, true);\n\t\t\t\treturn unboxValue(v_ref);\n\t\t\t}\n\n\t\t\tconst boxValue = (v) => {\n\t\t\t\tconst nanHead = 0x7FF80000n;\n\n\t\t\t\tif (typeof v === \"number\") {\n\t\t\t\t\tif (isNaN(v)) {\n\t\t\t\t\t\treturn nanHead << 32n;\n\t\t\t\t\t}\n\t\t\t\t\tif (v === 0) {\n\t\t\t\t\t\treturn (nanHead << 32n) | 1n;\n\t\t\t\t\t}\n\t\t\t\t\treinterpretBuf.setFloat64(0, v, true);\n\t\t\t\t\treturn reinterpretBuf.getBigInt64(0, true);\n\t\t\t\t}\n\n\t\t\t\tswitch (v) {\n\t\t\t\t\tcase undefined:\n\t\t\t\t\t\treturn 0n;\n\t\t\t\t\tcase null:\n\t\t\t\t\t\treturn (nanHead << 32n) | 2n;\n\t\t\t\t\tcase true:\n\t\t\t\t\t\treturn (nanHead << 32n) | 3n;\n\t\t\t\t\tcase false:\n\t\t\t\t\t\treturn (nanHead << 32n) | 4n;\n\t\t\t\t}\n\n\t\t\t\tlet id = this._ids.get(v);\n\t\t\t\tif (id === undefined) {\n\t\t\t\t\tid = this._idPool.pop();\n\t\t\t\t\tif (id === undefined) {\n\t\t\t\t\t\tid = BigInt(this._values.length);\n\t\t\t\t\t}\n\t\t\t\t\tthis._values[id] = v;\n\t\t\t\t\tthis._goRefCounts[id] = 0;\n\t\t\t\t\tthis._ids.set(v, id);\n\t\t\t\t}\n\t\t\t\tthis._goRefCounts[id]++;\n\t\t\t\tlet typeFlag = 1n;\n\t\t\t\tswitch (typeof v) {\n\t\t\t\t\tcase \"string\":\n\t\t\t\t\t\ttypeFlag = 2n;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"symbol\":\n\t\t\t\t\t\ttypeFlag = 3n;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"function\":\n\t\t\t\t\t\ttypeFlag = 4n;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn id | ((nanHead | typeFlag) << 32n);\n\t\t\t}\n\n\t\t\tconst storeValue = (addr, v) => {\n\t\t\t\tlet v_ref = boxValue(v);\n\t\t\t\tmem().setBigUint64(addr, v_ref, true);\n\t\t\t}\n\n\t\t\tconst loadSlice = (array, len, cap) => {\n\t\t\t\treturn new Uint8Array(this._inst.exports.memory.buffer, array, len);\n\t\t\t}\n\n\t\t\tconst loadSliceOfValues = (array, len, cap) => {\n\t\t\t\tconst a = new Array(len);\n\t\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\t\ta[i] = loadValue(array + i * 8);\n\t\t\t\t}\n\t\t\t\treturn a;\n\t\t\t}\n\n\t\t\tconst loadString = (ptr, len) => {\n\t\t\t\treturn decoder.decode(new DataView(this._inst.exports.memory.buffer, ptr, len));\n\t\t\t}\n\n\t\t\tconst timeOrigin = Date.now() - performance.now();\n\t\t\tthis.importObject = {\n\t\t\t\twasi_snapshot_preview1: {\n\t\t\t\t\tfd_write: function(fd, iovs_ptr, iovs_len, nwritten_ptr) {\n\t\t\t\t\t\tlet nwritten = 0;\n\t\t\t\t\t\tif (fd == 1) {\n\t\t\t\t\t\t\tfor (let iovs_i=0; iovs_i<iovs_len;iovs_i++) {\n\t\t\t\t\t\t\t\tlet iov_ptr = iovs_ptr+iovs_i*8; // assuming wasm32\n\t\t\t\t\t\t\t\tlet ptr = mem().getUint32(iov_ptr + 0, true);\n\t\t\t\t\t\t\t\tlet len = mem().getUint32(iov_ptr + 4, true);\n\t\t\t\t\t\t\t\tnwritten += len;\n\t\t\t\t\t\t\t\tfor (let i=0; i<len; i++) {\n\t\t\t\t\t\t\t\t\tlet c = mem().getUint8(ptr+i);\n\t\t\t\t\t\t\t\t\tif (c == 13) { // CR\n\t\t\t\t\t\t\t\t\t\t// ignore\n\t\t\t\t\t\t\t\t\t} else if (c == 10) { // LF\n\t\t\t\t\t\t\t\t\t\t// write line\n\t\t\t\t\t\t\t\t\t\tlet line = decoder.decode(new Uint8Array(logLine));\n\t\t\t\t\t\t\t\t\t\tlogLine = [];\n\t\t\t\t\t\t\t\t\t\tconsole.log(line);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tlogLine.push(c);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.error('invalid file descriptor:', fd);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmem().setUint32(nwritten_ptr, nwritten, true);\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t},\n\t\t\t\t\tfd_close: () => 0,      // dummy\n\t\t\t\t\tfd_fdstat_get: () => 0, // dummy\n\t\t\t\t\tfd_seek: () => 0,       // dummy\n\t\t\t\t\tproc_exit: (code) => {\n\t\t\t\t\t\tthis.exited = true;\n\t\t\t\t\t\tthis.exitCode = code;\n\t\t\t\t\t\tthis._resolveExitPromise();\n\t\t\t\t\t\tthrow wasmExit;\n\t\t\t\t\t},\n\t\t\t\t\trandom_get: (bufPtr, bufLen) => {\n\t\t\t\t\t\tcrypto.getRandomValues(loadSlice(bufPtr, bufLen));\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tgojs: {\n\t\t\t\t\t// func ticks() int64\n\t\t\t\t\t\"runtime.ticks\": () => {\n\t\t\t\t\t\treturn BigInt((timeOrigin + performance.now()) * 1e6);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func sleepTicks(timeout int64)\n\t\t\t\t\t\"runtime.sleepTicks\": (timeout) => {\n\t\t\t\t\t\t// Do not sleep, only reactivate scheduler after the given timeout.\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tif (this.exited) return;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tthis._inst.exports.go_scheduler();\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tif (e !== wasmExit) throw e;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, Number(timeout) / 1e6);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func finalizeRef(v ref)\n\t\t\t\t\t\"syscall/js.finalizeRef\": (v_ref) => {\n\t\t\t\t\t\t// Note: TinyGo does not support finalizers so this is only called\n\t\t\t\t\t\t// for one specific case, by js.go:jsString. and can/might leak memory.\n\t\t\t\t\t\tconst id = v_ref & 0xffffffffn;\n\t\t\t\t\t\tif (this._goRefCounts?.[id] !== undefined) {\n\t\t\t\t\t\t\tthis._goRefCounts[id]--;\n\t\t\t\t\t\t\tif (this._goRefCounts[id] === 0) {\n\t\t\t\t\t\t\t\tconst v = this._values[id];\n\t\t\t\t\t\t\t\tthis._values[id] = null;\n\t\t\t\t\t\t\t\tthis._ids.delete(v);\n\t\t\t\t\t\t\t\tthis._idPool.push(id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.error(\"syscall/js.finalizeRef: unknown id\", id);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// func stringVal(value string) ref\n\t\t\t\t\t\"syscall/js.stringVal\": (value_ptr, value_len) => {\n\t\t\t\t\t\tvalue_ptr >>>= 0;\n\t\t\t\t\t\tconst s = loadString(value_ptr, value_len);\n\t\t\t\t\t\treturn boxValue(s);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueGet(v ref, p string) ref\n\t\t\t\t\t\"syscall/js.valueGet\": (v_ref, p_ptr, p_len) => {\n\t\t\t\t\t\tlet prop = loadString(p_ptr, p_len);\n\t\t\t\t\t\tlet v = unboxValue(v_ref);\n\t\t\t\t\t\tlet result = Reflect.get(v, prop);\n\t\t\t\t\t\treturn boxValue(result);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueSet(v ref, p string, x ref)\n\t\t\t\t\t\"syscall/js.valueSet\": (v_ref, p_ptr, p_len, x_ref) => {\n\t\t\t\t\t\tconst v = unboxValue(v_ref);\n\t\t\t\t\t\tconst p = loadString(p_ptr, p_len);\n\t\t\t\t\t\tconst x = unboxValue(x_ref);\n\t\t\t\t\t\tReflect.set(v, p, x);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueDelete(v ref, p string)\n\t\t\t\t\t\"syscall/js.valueDelete\": (v_ref, p_ptr, p_len) => {\n\t\t\t\t\t\tconst v = unboxValue(v_ref);\n\t\t\t\t\t\tconst p = loadString(p_ptr, p_len);\n\t\t\t\t\t\tReflect.deleteProperty(v, p);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueIndex(v ref, i int) ref\n\t\t\t\t\t\"syscall/js.valueIndex\": (v_ref, i) => {\n\t\t\t\t\t\treturn boxValue(Reflect.get(unboxValue(v_ref), i));\n\t\t\t\t\t},\n\n\t\t\t\t\t// valueSetIndex(v ref, i int, x ref)\n\t\t\t\t\t\"syscall/js.valueSetIndex\": (v_ref, i, x_ref) => {\n\t\t\t\t\t\tReflect.set(unboxValue(v_ref), i, unboxValue(x_ref));\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueCall(v ref, m string, args []ref) (ref, bool)\n\t\t\t\t\t\"syscall/js.valueCall\": (ret_addr, v_ref, m_ptr, m_len, args_ptr, args_len, args_cap) => {\n\t\t\t\t\t\tconst v = unboxValue(v_ref);\n\t\t\t\t\t\tconst name = loadString(m_ptr, m_len);\n\t\t\t\t\t\tconst args = loadSliceOfValues(args_ptr, args_len, args_cap);\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst m = Reflect.get(v, name);\n\t\t\t\t\t\t\tstoreValue(ret_addr, Reflect.apply(m, v, args));\n\t\t\t\t\t\t\tmem().setUint8(ret_addr + 8, 1);\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tstoreValue(ret_addr, err);\n\t\t\t\t\t\t\tmem().setUint8(ret_addr + 8, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueInvoke(v ref, args []ref) (ref, bool)\n\t\t\t\t\t\"syscall/js.valueInvoke\": (ret_addr, v_ref, args_ptr, args_len, args_cap) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst v = unboxValue(v_ref);\n\t\t\t\t\t\t\tconst args = loadSliceOfValues(args_ptr, args_len, args_cap);\n\t\t\t\t\t\t\tstoreValue(ret_addr, Reflect.apply(v, undefined, args));\n\t\t\t\t\t\t\tmem().setUint8(ret_addr + 8, 1);\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tstoreValue(ret_addr, err);\n\t\t\t\t\t\t\tmem().setUint8(ret_addr + 8, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueNew(v ref, args []ref) (ref, bool)\n\t\t\t\t\t\"syscall/js.valueNew\": (ret_addr, v_ref, args_ptr, args_len, args_cap) => {\n\t\t\t\t\t\tconst v = unboxValue(v_ref);\n\t\t\t\t\t\tconst args = loadSliceOfValues(args_ptr, args_len, args_cap);\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tstoreValue(ret_addr, Reflect.construct(v, args));\n\t\t\t\t\t\t\tmem().setUint8(ret_addr + 8, 1);\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tstoreValue(ret_addr, err);\n\t\t\t\t\t\t\tmem().setUint8(ret_addr+ 8, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueLength(v ref) int\n\t\t\t\t\t\"syscall/js.valueLength\": (v_ref) => {\n\t\t\t\t\t\treturn unboxValue(v_ref).length;\n\t\t\t\t\t},\n\n\t\t\t\t\t// valuePrepareString(v ref) (ref, int)\n\t\t\t\t\t\"syscall/js.valuePrepareString\": (ret_addr, v_ref) => {\n\t\t\t\t\t\tconst s = String(unboxValue(v_ref));\n\t\t\t\t\t\tconst str = encoder.encode(s);\n\t\t\t\t\t\tstoreValue(ret_addr, str);\n\t\t\t\t\t\tmem().setInt32(ret_addr + 8, str.length, true);\n\t\t\t\t\t},\n\n\t\t\t\t\t// valueLoadString(v ref, b []byte)\n\t\t\t\t\t\"syscall/js.valueLoadString\": (v_ref, slice_ptr, slice_len, slice_cap) => {\n\t\t\t\t\t\tconst str = unboxValue(v_ref);\n\t\t\t\t\t\tloadSlice(slice_ptr, slice_len, slice_cap).set(str);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueInstanceOf(v ref, t ref) bool\n\t\t\t\t\t\"syscall/js.valueInstanceOf\": (v_ref, t_ref) => {\n \t\t\t\t\t\treturn unboxValue(v_ref) instanceof unboxValue(t_ref);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func copyBytesToGo(dst []byte, src ref) (int, bool)\n\t\t\t\t\t\"syscall/js.copyBytesToGo\": (ret_addr, dest_addr, dest_len, dest_cap, src_ref) => {\n\t\t\t\t\t\tlet num_bytes_copied_addr = ret_addr;\n\t\t\t\t\t\tlet returned_status_addr = ret_addr + 4; // Address of returned boolean status variable\n\n\t\t\t\t\t\tconst dst = loadSlice(dest_addr, dest_len);\n\t\t\t\t\t\tconst src = unboxValue(src_ref);\n\t\t\t\t\t\tif (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) {\n\t\t\t\t\t\t\tmem().setUint8(returned_status_addr, 0); // Return \"not ok\" status\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst toCopy = src.subarray(0, dst.length);\n\t\t\t\t\t\tdst.set(toCopy);\n\t\t\t\t\t\tmem().setUint32(num_bytes_copied_addr, toCopy.length, true);\n\t\t\t\t\t\tmem().setUint8(returned_status_addr, 1); // Return \"ok\" status\n\t\t\t\t\t},\n\n\t\t\t\t\t// copyBytesToJS(dst ref, src []byte) (int, bool)\n\t\t\t\t\t// Originally copied from upstream Go project, then modified:\n\t\t\t\t\t//   https://github.com/golang/go/blob/3f995c3f3b43033013013e6c7ccc93a9b1411ca9/misc/wasm/wasm_exec.js#L404-L416\n\t\t\t\t\t\"syscall/js.copyBytesToJS\": (ret_addr, dst_ref, src_addr, src_len, src_cap) => {\n\t\t\t\t\t\tlet num_bytes_copied_addr = ret_addr;\n\t\t\t\t\t\tlet returned_status_addr = ret_addr + 4; // Address of returned boolean status variable\n\n\t\t\t\t\t\tconst dst = unboxValue(dst_ref);\n\t\t\t\t\t\tconst src = loadSlice(src_addr, src_len);\n\t\t\t\t\t\tif (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) {\n\t\t\t\t\t\t\tmem().setUint8(returned_status_addr, 0); // Return \"not ok\" status\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst toCopy = src.subarray(0, dst.length);\n\t\t\t\t\t\tdst.set(toCopy);\n\t\t\t\t\t\tmem().setUint32(num_bytes_copied_addr, toCopy.length, true);\n\t\t\t\t\t\tmem().setUint8(returned_status_addr, 1); // Return \"ok\" status\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Go 1.20 uses 'env'. Go 1.21 uses 'gojs'.\n            // 开启 env 映射\n\t\t\tthis.importObject.env = this.importObject.gojs;\n\t\t}\n\n\t\tasync run(instance) {\n\t\t\tthis._inst = instance;\n\t\t\tthis._values = [ // JS values that Go currently has references to, indexed by reference id\n\t\t\t\tNaN,\n\t\t\t\t0,\n\t\t\t\tnull,\n\t\t\t\ttrue,\n\t\t\t\tfalse,\n\t\t\t\tglobal,\n\t\t\t\tthis,\n\t\t\t];\n\t\t\tthis._goRefCounts = []; // number of references that Go has to a JS value, indexed by reference id\n\t\t\tthis._ids = new Map();  // mapping from JS values to reference ids\n\t\t\tthis._idPool = [];      // unused ids that have been garbage collected\n\t\t\tthis.exited = false;    // whether the Go program has exited\n\t\t\tthis.exitCode = 0;\n\n\t\t\tif (this._inst.exports._start) {\n\t\t\t\tlet exitPromise = new Promise((resolve, reject) => {\n\t\t\t\t\tthis._resolveExitPromise = resolve;\n\t\t\t\t});\n\n\t\t\t\t// Run program, but catch the wasmExit exception that's thrown\n\t\t\t\t// to return back here.\n\t\t\t\ttry {\n\t\t\t\t\tthis._inst.exports._start();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (e !== wasmExit) throw e;\n\t\t\t\t}\n\n\t\t\t\tawait exitPromise;\n\t\t\t\treturn this.exitCode;\n\t\t\t} else {\n\t\t\t\tthis._inst.exports._initialize();\n\t\t\t}\n\t\t}\n\n\t\t_resume() {\n\t\t\tif (this.exited) {\n\t\t\t\tthrow new Error(\"Go program has already exited\");\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis._inst.exports.resume();\n\t\t\t} catch (e) {\n\t\t\t\tif (e !== wasmExit) throw e;\n\t\t\t}\n\t\t\tif (this.exited) {\n\t\t\t\tthis._resolveExitPromise();\n\t\t\t}\n\t\t}\n\n\t\t_makeFuncWrapper(id) {\n\t\t\tconst go = this;\n\t\t\treturn function () {\n\t\t\t\tconst event = { id: id, this: this, args: arguments };\n\t\t\t\tgo._pendingEvent = event;\n\t\t\t\tgo._resume();\n\t\t\t\treturn event.result;\n\t\t\t};\n\t\t}\n\t}\n})();\n"
  },
  {
    "path": "packages/sdk/lib/utils/wasm/zip.ts",
    "content": "export const ASTRAL_ZIP_READY_TIMEOUT = 10000;\nexport const ASTRAL_ZIP_READY_INTERVAL = 16;\nexport const ASTRAL_ZIP_MAX_WORKERS = 4;\n\n/**\n * 获取 AstralZip 构造器.\n * @returns {IAstralZip.Constructor | undefined} 返回 wasm 注入后的 AstralZip 构造器.\n */\nexport function getAstralZipConstructor(): IAstralZip.Constructor | undefined {\n\tconst globalScope = globalThis as typeof globalThis & { AstralZip?: IAstralZip.Constructor };\n\treturn globalScope.AstralZip;\n}\n\n/**\n * 等待 AstralZip wasm 能力完成注入.\n * @returns {Promise<IAstralZip.Constructor>} 返回可用的 AstralZip 构造器.\n */\nexport function waitAstralZipConstructor(): Promise<IAstralZip.Constructor> {\n\tconst constructor = getAstralZipConstructor();\n\tif (constructor) {\n\t\treturn Promise.resolve(constructor);\n\t}\n\n\tconst startTime = performance.now();\n\treturn new Promise((resolve, reject) => {\n\t\tconst check = () => {\n\t\t\tconst constructor = getAstralZipConstructor();\n\t\t\tif (constructor) {\n\t\t\t\tresolve(constructor);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (performance.now() - startTime > ASTRAL_ZIP_READY_TIMEOUT) {\n\t\t\t\treject(new Error(\"AstralZip wasm 未完成注入\"));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetTimeout(check, ASTRAL_ZIP_READY_INTERVAL);\n\t\t};\n\n\t\tcheck();\n\t});\n}\n\n/**\n * 获取 AstralZip 并发压缩 worker 数量.\n * @returns {number} 返回受上限保护的 worker 数量.\n */\nexport function getAstralZipWorkers(): number {\n\tconst hardwareConcurrency = navigator.hardwareConcurrency || ASTRAL_ZIP_MAX_WORKERS;\n\treturn Math.max(1, Math.min(ASTRAL_ZIP_MAX_WORKERS, hardwareConcurrency));\n}\n\n/**\n * 从归档中读取指定文件代理.\n * @param archive ZIP 归档对象.\n * @param fileName 文件内部路径.\n * @returns {IAstralZip.File} 返回文件代理.\n */\nexport function getAstralZipFile(archive: IAstralZip.Zip, fileName: string): IAstralZip.File {\n\tconst file = archive.file(fileName);\n\tif (!file) {\n\t\tthrow new Error(`zip 文件不存在: ${fileName}`);\n\t}\n\n\treturn file;\n}\n\n/**\n * 读取 ZIP 内文本文件.\n * @param archive ZIP 归档对象.\n * @param fileName 文件内部路径.\n * @returns {Promise<string>} 返回 UTF-8 文本.\n */\nexport function readAstralZipText(archive: IAstralZip.Zip, fileName: string): Promise<string> {\n\treturn getAstralZipFile(archive, fileName).async(\"string\");\n}\n\n/**\n * 读取 ZIP 内二进制文件.\n * @param archive ZIP 归档对象.\n * @param fileName 文件内部路径.\n * @returns {Promise<ArrayBuffer>} 返回独立 ArrayBuffer.\n */\nexport function readAstralZipArrayBuffer(archive: IAstralZip.Zip, fileName: string): Promise<ArrayBuffer> {\n\treturn getAstralZipFile(archive, fileName).async(\"arraybuffer\");\n}\n\n/**\n * 读取 ZIP 内 Blob 文件.\n * @param archive ZIP 归档对象.\n * @param fileName 文件内部路径.\n * @returns {Promise<Blob>} 返回 Blob.\n */\nexport function readAstralZipBlob(archive: IAstralZip.Zip, fileName: string): Promise<Blob> {\n\treturn getAstralZipFile(archive, fileName).async(\"blob\");\n}"
  },
  {
    "path": "packages/sdk/lib/workers/bvh/GenerateColliderEnvironmentWorker.js",
    "content": "import {Group, BufferGeometryLoader, Mesh} from \"three\";\nimport {Viewport} from \"@/core/preview/Viewport.ts\";\nimport GenerateColliderEnvironmentWorkerUrl from './generateColliderEnvironment.worker.js?worker&url';\n\nexport class GenerateColliderEnvironmentWorker{\n    constructor() {\n        this.worker = new Worker(GenerateColliderEnvironmentWorkerUrl, { type: 'module' });\n        this.worker.onerror = e => {\n            if ( e.message ) {\n                throw new Error( `GenerateColliderEnvironmentWorker: Could not create Web Worker with error \"${ e.message }\"` );\n            } else {\n                throw new Error( `GenerateColliderEnvironmentWorker: Could not create Web Worker.`);\n            }\n        };\n    }\n\n    parseAttr(attr,gArray){\n        // 遍历attr的key,还原\n        for (const key in attr) {\n            const item = attr[key];\n            if(item.array){\n                item.array = gArray[key].array;\n                item.count = gArray[key].count;\n                item.itemSize = gArray[key].itemSize;\n            }\n        }\n    }\n\n    generate(scene){\n        if (this.worker === null) {\n            throw new Error( 'GenerateColliderEnvironmentWorker: Worker has been disposed.' );\n        }\n\n        const { worker } = this;\n        const dbTable = \"environment\";\n\n        return new Promise(async (resolve,reject)=>{\n            worker.onerror = e => {\n                reject(new Error(`GenerateColliderEnvironmentWorker: ${ e.message }`));\n            };\n\n            // 按照材质分组mesh\n            let toMerge = {},keys = [];\n\n            const loader = new BufferGeometryLoader();\n\n            const db = window.VIEWPORT.modules[\"db\"];\n            const has = await db.hasStore(dbTable);\n            if(has){\n                // TODO 此处应该直接读取返回\n                //db.clear(dbTable);\n            }else{\n                await db.addStore(dbTable);\n            }\n\n            let environment = new Group();\n            environment.name = \"ROAMING-ColliderEnvironment\";\n\n            worker.onmessage = ({data}) => {\n                switch (data.type) {\n                    case \"env\":\n                        const geoJson = data.geometryJson;\n                        const geometry = loader.parse(geoJson);\n\n                        const newMesh = new Mesh(geometry, window.BOM3D.materials[data.materialUuid]);\n                        newMesh.castShadow = true;\n                        newMesh.receiveShadow = true;\n                        newMesh.material.shadowSide = 2;\n\n                        environment.add(newMesh);\n                        break;\n                    case \"collider\":\n                        const mergedGeometryJson = data.mergedGeometryJson;\n                        const mergedGeometry = loader.parse(mergedGeometryJson);\n\n                        this.parseAttr(mergedGeometry.attributes,data.gArray);\n                        mergedGeometry.index.array = data.gArray.index.array;\n                        mergedGeometry.index.itemSize = data.gArray.index.itemSize;\n\n                        resolve({mergedGeometry, environment});\n\n                        worker.onmessage = null;\n                        break;\n                }\n            }\n\n            scene.traverse(c => {\n                // @ts-ignore 只合并网格\n                if (c.isMesh) {\n                    // @ts-ignore\n                    let uuid;\n                    // @ts-ignore\n                    if (c.material.uuid === Viewport.RegularMat.uuid) {\n                        uuid = c.userData.old.materialUuid;\n                    } else {\n                        // @ts-ignore\n                        uuid = c.material.uuid;\n                    }\n\n                    toMerge[uuid] = toMerge[uuid] || [];\n                    let mesh = c.clone();\n                    mesh.material = undefined;\n\n                    // if (mesh.material?.map === null || !mesh.material?.map?.isTexture) {\n                    //     // 材质不存在贴图则删除uv属性\n                    //     mesh.geometry.deleteAttribute(\"uv\");\n                    // }\n\n                    const json = mesh.toJSON();\n                    json.matrixWorld = c.matrixWorld.toArray();\n                    toMerge[uuid].push(json);\n                }\n            });\n            keys = Object.keys(toMerge);\n\n            const num = new Proxy({value:keys.length},{\n                set(target, p, newValue, receiver) {\n                    target[p] = newValue;\n\n                    if(newValue === 0){\n                        toMerge = undefined;\n\n                        worker.postMessage({indexedDBName:\"BOM\",table:dbTable,uuids:[...keys]})\n                    }\n\n                    return true;\n                }\n            })\n\n            keys.forEach((uuid)=>{\n                db.setItem(uuid,toMerge[uuid],dbTable).then(()=>{\n                    num.value--;\n                });\n            })\n        })\n    }\n}"
  },
  {
    "path": "packages/sdk/lib/workers/bvh/GenerateMeshBVHWorker.js",
    "content": "import { Box3, BufferAttribute } from 'three';\nimport { MeshBVH } from 'three-mesh-bvh';\nimport GenerateAsyncWorkerUrl from './generateAsync.worker.js?worker&url';\n\nexport class GenerateMeshBVHWorker {\n\tconstructor() {\n\t\tthis.running = false;\n\t\tthis.worker = new Worker(GenerateAsyncWorkerUrl, { type: 'module' });\n\t\tthis.worker.onerror = e => {\n\t\t\tif ( e.message ) {\n\t\t\t\tthrow new Error( `GenerateMeshBVHWorker: Could not create Web Worker with error \"${ e.message }\"` );\n\t\t\t} else {\n\t\t\t\tthrow new Error( 'GenerateMeshBVHWorker: Could not create Web Worker.' );\n\t\t\t}\n\t\t};\n\t}\n\n\tgenerate( geometry, options = {} ) {\n\t\tif (this.running) {\n\t\t\tthrow new Error( 'GenerateMeshBVHWorker: Already running job.' );\n\t\t}\n\n\t\tif (this.worker === null) {\n\t\t\tthrow new Error( 'GenerateMeshBVHWorker: Worker has been disposed.' );\n\t\t}\n\n\t\tconst { worker } = this;\n\t\tthis.running = true;\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tworker.onerror = e => {\n\t\t\t\treject( new Error( `GenerateMeshBVHWorker: ${ e.message }` ) );\n\t\t\t\tthis.running = false;\n\t\t\t};\n\n\t\t\tworker.onmessage = e => {\n\t\t\t\tthis.running = false;\n\t\t\t\tconst { data } = e;\n\n\t\t\t\tif (data.error) {\n\t\t\t\t\treject( new Error( data.error ) );\n\t\t\t\t\tworker.onmessage = null;\n\t\t\t\t} else if ( data.serialized ) {\n\t\t\t\t\tconst { serialized, position } = data;\n\t\t\t\t\tconst bvh = MeshBVH.deserialize( serialized, geometry, { setIndex: false } );\n\t\t\t\t\tconst boundsOptions = Object.assign( {\n\t\t\t\t\t\tsetBoundingBox: true,\n\t\t\t\t\t}, options );\n\n\t\t\t\t\t// we need to replace the arrays because they're neutered entirely by the\n\t\t\t\t\t// webworker transfer.\n\t\t\t\t\tgeometry.attributes.position.array = position;\n\t\t\t\t\tif ( geometry.index ) {\n\t\t\t\t\t\tgeometry.index.array = serialized.index;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst newIndex = new BufferAttribute( serialized.index, 1, false );\n\t\t\t\t\t\tgeometry.setIndex( newIndex );\n\t\t\t\t\t}\n\t\t\t\t\tif ( boundsOptions.setBoundingBox ) {\n\t\t\t\t\t\tgeometry.boundingBox = bvh.getBoundingBox( new Box3() );\n\t\t\t\t\t}\n\t\t\t\t\tresolve( bvh );\n\t\t\t\t\tworker.onmessage = null;\n\n\t\t\t\t} else if ( options.onProgress ) {\n\t\t\t\t\toptions.onProgress( data.progress );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst index = geometry.index ? geometry.index.array : null;\n\t\t\tconst position = geometry.attributes.position.array;\n\n\t\t\tif (position.isInterleavedBufferAttribute || index && index.isInterleavedBufferAttribute) {\n\t\t\t\tthrow new Error( 'GenerateMeshBVHWorker: InterleavedBufferAttribute are not supported for the geometry attributes.' );\n\t\t\t}\n\n\t\t\tconst transferable = [ position ];\n\t\t\tif (index) {\n\t\t\t\ttransferable.push( index );\n\t\t\t}\n\n\t\t\tworker.postMessage({\n\t\t\t\tindex,\n\t\t\t\tposition,\n\t\t\t\toptions: {\n\t\t\t\t\t...options,\n\t\t\t\t\tonProgress: null,\n\t\t\t\t\tincludedProgressCallback: Boolean( options.onProgress ),\n\t\t\t\t\tgroups: [ ... geometry.groups ],\n\t\t\t\t},\n\t\t\t}, transferable.map(arr => arr.buffer));\n\t\t});\n\t}\n\n\tdispose() {\n\t\tthis.worker.terminate();\n\t\tthis.worker = null;\n\t}\n\n\tterminate() {\n\t\tconsole.warn( 'GenerateMeshBVHWorker: \"terminate\" is deprecated. Use \"dispose\" instead.' );\n\t\tthis.dispose();\n\t}\n}\n"
  },
  {
    "path": "packages/sdk/lib/workers/bvh/generateAsync.worker.js",
    "content": "import {\n\tBufferGeometry,\n\tBufferAttribute,\n} from 'three';\nimport { MeshBVH } from 'three-mesh-bvh';\n\nonmessage = function ( { data } ) {\n\tlet prevTime = performance.now();\n\tfunction onProgressCallback( progress ) {\n\t\tconst currTime = performance.now();\n\t\tif ( currTime - prevTime >= 10 || progress === 1.0 ) {\n\t\t\tpostMessage({\n\t\t\t\terror: null,\n\t\t\t\tserialized: null,\n\t\t\t\tposition: null,\n\t\t\t\tprogress,\n\t\t\t});\n\t\t\tprevTime = currTime;\n\t\t}\n\t}\n\n\tconst { index, position, options } = data;\n\ttry {\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new BufferAttribute( position, 3, false ) );\n\t\tif ( index ) {\n\t\t\tgeometry.setIndex( new BufferAttribute( index, 1, false ) );\n\t\t}\n\n\t\tif ( options.includedProgressCallback ) {\n\t\t\toptions.onProgress = onProgressCallback;\n\t\t}\n\n\t\tif ( options.groups ) {\n\t\t\tconst groups = options.groups;\n\t\t\tfor ( const i in groups ) {\n\t\t\t\tconst group = groups[ i ];\n\t\t\t\tgeometry.addGroup( group.start, group.count, group.materialIndex );\n\t\t\t}\n\t\t}\n\n\t\tconst bvh = new MeshBVH( geometry, options );\n\t\tconst serialized = MeshBVH.serialize( bvh, { copyIndexBuffer: false } );\n\n\t\tpostMessage( {\n\t\t\terror: null,\n\t\t\tserialized,\n\t\t\tposition,\n\t\t\tprogress: 1,\n\t\t}, [ serialized.index.buffer, position.buffer, ...serialized.roots ] );\n\n\t} catch ( error ) {\n\t\tpostMessage( {\n\t\t\terror,\n\t\t\tserialized: null,\n\t\t\tposition: null,\n\t\t\tprogress: 1,\n\t\t} );\n\t}\n};\n"
  },
  {
    "path": "packages/sdk/lib/workers/bvh/generateColliderEnvironment.worker.js",
    "content": "import {Group, Mesh, MeshBasicMaterial, Matrix4, InstancedMesh} from \"three\";\nimport {ObjectLoader} from \"@/core/loader/ObjectLoader\";\nimport * as BufferGeometryUtils from \"three/examples/jsm/utils/BufferGeometryUtils.js\";\nimport {StaticGeometryGenerator} from \"three-mesh-bvh\";\nimport {TYPED_ARRAYS} from \"../../../config/global\";\nimport DBStorage from \"../../../core/utils/DBStorage\";\n\n/**\n * 解析attr\n * @param attr Geometry Attributes\n */\nfunction parseAttr(attr) {\n    // 遍历attr的key,组织为新对象返回\n    const newAttr = {};\n    for (const key in attr) {\n        const item = attr[key];\n        if (item.array) {\n            newAttr[key] = {\n                itemSize: item.itemSize,\n                array: item.array,\n                count: item.count\n            }\n            item.array = new TYPED_ARRAYS[item.array.constructor.name]([]);\n        }\n    }\n\n    return newAttr;\n}\n\nlet basicMaterial = new MeshBasicMaterial();\n\nfunction getMeshByInstancedMesh(instancedMesh){\n    const meshes = [];\n\n    const matrixWorld = instancedMesh.matrixWorld;\n    const count = instancedMesh.count;\n\n    for (let instanceId = 0; instanceId < count; instanceId++) {\n        const _mesh = new Mesh();\n        const _instanceLocalMatrix = new Matrix4();\n        const _instanceWorldMatrix = new Matrix4();\n\n        _mesh.geometry = instancedMesh.geometry;\n        _mesh.material = instancedMesh.material;\n\n        // 计算每个实例的世界矩阵\n        instancedMesh.getMatrixAt(instanceId, _instanceLocalMatrix);\n\n        _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix);\n\n        // 网格表示这个单一实例\n        _mesh.matrixWorld = _instanceWorldMatrix;\n\n        meshes.push(_mesh);\n    }\n\n    return meshes;\n}\n\nonmessage = async function ({data}) {\n    const {indexedDBName,table,uuids} = data;\n    let loader = new ObjectLoader();\n\n    let environment = new Group();\n\n    const db = new DBStorage(indexedDBName,table);\n\n    for (const uuid of uuids) {\n        const arr = await db.getItem(uuid);\n\n        const visualGeometries = [];\n        arr.forEach((meshJson) => {\n            const m = new Matrix4();\n            const matrixWorld = m.fromArray(meshJson.matrixWorld);\n\n            meshJson.matrixWorld = undefined;\n            const mesh = loader.parse(meshJson);\n\n            const cloneGeom = (me) => {\n                const geom = me.geometry.clone();\n                geom.applyMatrix4(me.matrixWorld);\n                visualGeometries.push(geom);\n            }\n\n            // @ts-ignore\n            if (!mesh.isInstancedMesh) {\n                cloneGeom(mesh);\n            } else {\n                const meshes = getMeshByInstancedMesh(mesh);\n                meshes.forEach((m) => {\n                    cloneGeom(m);\n                });\n            }\n        });\n\n        if (visualGeometries.length) {\n            const newGeom = BufferGeometryUtils.mergeGeometries(visualGeometries);\n            let n_geo = newGeom.clone().toJSON();\n\n            const newMesh = new Mesh(newGeom, basicMaterial);\n            environment.add(newMesh);\n\n            postMessage({\n                type: \"env\",\n                materialUuid:uuid,\n                geometryJson: n_geo\n            })\n\n            n_geo = undefined;\n        }\n\n        await db.removeItem(uuid);\n    }\n\n    const staticGenerator = new StaticGeometryGenerator(environment);\n    staticGenerator.attributes = ['position'];\n\n    const mergedGeometry = staticGenerator.generate();\n\n    const gArray = {\n        ...parseAttr(mergedGeometry.attributes),\n        index: {\n            array:mergedGeometry.index.array,\n            itemSize:mergedGeometry.index.itemSize\n        }\n    }\n    mergedGeometry.index.array = new TYPED_ARRAYS[gArray.index.array.constructor.name]([]);\n\n    const mergedGeometryJson = mergedGeometry.toJSON();\n\n    const transfer = Object.values(gArray).map(arrayBuffer => arrayBuffer.array.buffer);\n    postMessage({\n        type: \"collider\",\n        mergedGeometryJson: mergedGeometryJson,\n        gArray: gArray\n    }, transfer);\n\n    basicMaterial = undefined;\n    environment = undefined;\n}"
  },
  {
    "path": "packages/sdk/lib/workers/mergeGeometries.worker.ts",
    "content": "import {BufferGeometry, BufferAttribute} from \"three\";\nimport * as BufferGeometryUtils from \"three/examples/jsm/utils/BufferGeometryUtils.js\";\n\nconst visualGeometries: BufferGeometry[] = [];\n\nself.onmessage = function ({data}) {\n    switch (data.type) {\n        case \"push\":\n            pushGeometry(data);\n            break;\n        case \"merge\":\n            if(visualGeometries.length === 0) {\n                self.postMessage({\n                    type: \"error\",\n                    message:\"No geometries found.\"\n                })\n                break;\n            }\n\n            const geo = BufferGeometryUtils.mergeGeometries(visualGeometries);\n            self.postMessage({\n                type: \"success\",\n                geometry: geo\n            })\n            break;\n    }\n}\n\nfunction pushGeometry(data) {\n    const {geometry} = data;\n\n    if(!geometry) return;\n\n    geometry.__proto__ = BufferGeometry.prototype;\n    geometry.index && (geometry.index.__proto__ = BufferAttribute.prototype);\n    geometry.attributes.position && (geometry.attributes.position.__proto__ = BufferAttribute.prototype);\n    geometry.attributes.normal && (geometry.attributes.normal.__proto__ = BufferAttribute.prototype);\n\n    visualGeometries.push(geometry);\n}"
  },
  {
    "path": "packages/sdk/package.json",
    "content": "{\n    \"name\": \"@astral3d/engine\",\n    \"version\": \"1.0.0\",\n    \"license\": \"Apache-2.0\",\n    \"type\": \"module\",\n    \"files\": [\n        \"dist\"\n    ],\n    \"main\": \"./dist/astral3d.es.js\",\n    \"module\": \"./dist/astral3d.es.js\",\n    \"types\": \"./dist/types/index.d.ts\",\n    \"exports\": {\n        \".\": {\n            \"types\": \"./dist/types/index.d.ts\",\n            \"import\": \"./dist/astral3d.es.js\",\n            \"require\": \"./dist/astral3d.umd.js\"\n        }\n    },\n    \"scripts\": {\n        \"dev\": \"vite\",\n        \"build\": \"tsc && vite build\"\n    },\n    \"dependencies\": {\n        \"@babel/runtime\": \"7.27.0\",\n        \"@dxfom/mtext\": \"^0.3.2\",\n        \"camera-controls\": \"^2.9.0\",\n        \"localforage\": \"^1.10.0\",\n        \"signals\": \"^1.0.0\",\n        \"three\": \"catalog:\",\n        \"three-gpu-pathtracer\": \"^0.0.22\",\n        \"three-mesh-bvh\": \"^0.9.0\",\n        \"three-viewport-gizmo\": \"^2.0.2\",\n        \"web-ifc-three\": \"^0.0.126\"\n    },\n    \"devDependencies\": {\n        \"@astral3d/build-vite-plugins\": \"workspace:^\",\n        \"@types/node\": \"catalog:\",\n        \"@types/three\": \"catalog:\",\n        \"rollup-plugin-visualizer\": \"catalog:\",\n        \"typescript\": \"catalog:\",\n        \"vite\": \"catalog:\",\n        \"vite-plugin-dts\": \"4.0.0-beta.1\"\n    }\n}"
  },
  {
    "path": "packages/sdk/public/libs/basis/README.md",
    "content": "# Basis Universal GPU Texture Compression\n\nBasis Universal is a \"[supercompressed](http://gamma.cs.unc.edu/GST/gst.pdf)\"\nGPU texture and texture video compression system that outputs a highly\ncompressed intermediate file format (.basis) that can be quickly transcoded to\na wide variety of GPU texture compression formats.\n\n[GitHub](https://github.com/BinomialLLC/basis_universal)\n\n## Transcoders\n\nBasis Universal texture data may be used in two different file formats:\n`.basis` and `.ktx2`, where `ktx2` is a standardized wrapper around basis texture data.\n\nFor further documentation about the Basis compressor and transcoder, refer to\nthe [Basis GitHub repository](https://github.com/BinomialLLC/basis_universal).\n\nThe folder contains two files required for transcoding `.basis` or `.ktx2` textures:\n\n* `basis_transcoder.js` — JavaScript wrapper for the WebAssembly transcoder.\n* `basis_transcoder.wasm` — WebAssembly transcoder.\n\nBoth are dependencies of `KTX2Loader`:\n\n```js\nconst ktx2Loader = new KTX2Loader();\nktx2Loader.setTranscoderPath( 'examples/jsm/libs/basis/' );\nktx2Loader.detectSupport( renderer );\nktx2Loader.load( 'diffuse.ktx2', function ( texture ) {\n\n\tconst material = new THREE.MeshStandardMaterial( { map: texture } );\n\n}, function () {\n\n\tconsole.log( 'onProgress' );\n\n}, function ( e ) {\n\n\tconsole.error( e );\n\n} );\n```\n\n## License\n\n[Apache License 2.0](https://github.com/BinomialLLC/basis_universal/blob/master/LICENSE)\n"
  },
  {
    "path": "packages/sdk/public/libs/basis/basis_transcoder.js",
    "content": "\nvar BASIS = (function() {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(BASIS) {\n  BASIS = BASIS || {};\n\nvar Module=typeof BASIS!==\"undefined\"?BASIS:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"basis_transcoder.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return Promise.resolve().then(getBinary)}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"K\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"L\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+'    \"use strict\";'+\"    return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(function(field){return field.getterReturnType}).concat(fieldRecords.map(function(field){return field.setterArgumentType}));whenDependentTypesAreResolved([structType],fieldTypes,function(fieldTypes){var fields={};fieldRecords.forEach(function(field,i){var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:function(ptr){return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:function(ptr,o){var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field:  \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options){options=options||{};if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb()})}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn(\"object already deleted: \"+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){if(args&&args.length){return Module[\"dynCall_\"+sig].apply(null,[ptr].concat(args))}return Module[\"dynCall_\"+sig].call(null,ptr)}function dynCall(sig,ptr,args){if(sig.indexOf(\"j\")!=-1){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){assert(sig.indexOf(\"j\")>=0,\"getDynCaller should only be called with i64 sigs\");var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i<arguments.length;i++){argCache[i]=arguments[i]}return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.indexOf(\"j\")!=-1){return getDynCaller(signature,rawFunction)}return wasmTable.get(rawFunction)}var fp=makeDynCaller();if(typeof fp!==\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+\" called with \"+arguments.length+\" arguments, expected \"+(argCount-1))}destructors.length=0;args.length=argCount;for(var i=1;i<argCount;++i){args[i]=argTypes[i][\"toWireType\"](destructors,arguments[i-1])}var ptr=invoker.apply(null,args);runDestructors(destructors);return argTypes[0][\"fromWireType\"](ptr)};return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function __embind_register_constant(name,type,value){name=readLatin1String(name);whenDependentTypesAreResolved([],[type],function(type){type=type[0];Module[name]=type[\"fromWireType\"](value);return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1}case null:{return 2}case true:{return 3}case false:{return 4}default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return __emval_register(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this[\"fromWireType\"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this[\"fromWireType\"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this[\"fromWireType\"](heap[pointer>>2])};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,\"fromWireType\":function(c){return this.constructor.values[c]},\"toWireType\":function(destructors,c){return c.value},\"argPackAdvance\":8,\"readValueFromPointer\":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,\"enum\");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+\"_\"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(\"Cannot call \"+name+\" due to unbound types\",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<<bitshift>>>bitshift}}var isUnsignedType=name.indexOf(\"unsigned\")!=-1;registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number \"'+_embind_repr(value)+'\" from JS side to C/C++ side to an argument of type \"'+name+'\", which is outside the valid range ['+minRange+\", \"+maxRange+\"]!\")}return isUnsignedType?value>>>0:value|0},\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var getLength;var valueIsOfTypeString=typeof value===\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function(){return lengthBytesUTF8(value)}}else{getLength=function(){return value.length}}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i]}}}if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=function(){return HEAPU16};shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=function(){return HEAPU32};shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value===\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,\"emval::as\");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType[\"toWireType\"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){if(typeof globalThis===\"object\"){return globalThis}return function(){return Function}()(\"return this\")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],\"parameter \"+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+\"_$\"+types.slice(1).map(function(t){return t.name}).join(\"_\")+\"$\";var params=[\"retType\"];var args=[retType];var argsList=\"\";for(var i=0;i<argCount-1;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;params.push(\"argType\"+i);args.push(types[1+i])}var functionName=makeLegalFunctionName(\"methodCaller_\"+signatureName);var functionBody=\"return function \"+functionName+\"(handle, name, destructors, args) {\\n\";var offset=0;for(var i=0;i<argCount-1;++i){functionBody+=\"    var arg\"+i+\" = argType\"+i+\".readValueFromPointer(args\"+(offset?\"+\"+offset:\"\")+\");\\n\";offset+=types[i+1][\"argPackAdvance\"]}functionBody+=\"    var rv = handle[name](\"+argsList+\");\\n\";for(var i=0;i<argCount-1;++i){if(types[i+1][\"deleteObject\"]){functionBody+=\"    argType\"+i+\".deleteObject(arg\"+i+\");\\n\"}}if(!retType.isVoid){functionBody+=\"    return retType.toWireType(destructors, rv);\\n\"}functionBody+=\"};\\n\";params.push(functionBody);var invokerFunction=new_(Function,params).apply(null,args);return __emval_addMethodCaller(invokerFunction)}function __emval_get_module_property(name){name=getStringOrSymbol(name);return __emval_register(Module[name])}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function craftEmvalAllocator(argCount){var argsList=\"\";for(var i=0;i<argCount;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i}var functionBody=\"return function emval_allocator_\"+argCount+\"(constructor, argTypes, args) {\\n\";for(var i=0;i<argCount;++i){functionBody+=\"var argType\"+i+\" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + \"+i+'], \"parameter '+i+'\");\\n'+\"var arg\"+i+\" = argType\"+i+\".readValueFromPointer(args);\\n\"+\"args += argType\"+i+\"['argPackAdvance'];\\n\"}functionBody+=\"var obj = new constructor(\"+argsList+\");\\n\"+\"return __emval_register(obj);\\n\"+\"}\\n\";return new Function(\"requireRegisteredType\",\"Module\",\"__emval_register\",functionBody)(requireRegisteredType,Module,__emval_register)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){SYSCALLS.printChar(fd,HEAPU8[ptr+j])}num+=len}HEAP32[pnum>>2]=num;return 0}function _setTempRet0($i){setTempRet0($i|0)}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();__ATINIT__.push({func:function(){___wasm_call_ctors()}});var asmLibraryArg={\"t\":__embind_finalize_value_object,\"I\":__embind_register_bool,\"x\":__embind_register_class,\"w\":__embind_register_class_constructor,\"d\":__embind_register_class_function,\"k\":__embind_register_constant,\"H\":__embind_register_emval,\"n\":__embind_register_enum,\"a\":__embind_register_enum_value,\"A\":__embind_register_float,\"i\":__embind_register_function,\"j\":__embind_register_integer,\"h\":__embind_register_memory_view,\"B\":__embind_register_std_string,\"v\":__embind_register_std_wstring,\"u\":__embind_register_value_object,\"c\":__embind_register_value_object_field,\"J\":__embind_register_void,\"m\":__emval_as,\"s\":__emval_call_void_method,\"b\":__emval_decref,\"y\":__emval_get_global,\"p\":__emval_get_method_caller,\"r\":__emval_get_module_property,\"e\":__emval_get_property,\"g\":__emval_incref,\"q\":__emval_new,\"f\":__emval_new_cstring,\"l\":__emval_run_destructors,\"o\":_abort,\"E\":_emscripten_memcpy_big,\"F\":_emscripten_resize_heap,\"G\":_fd_close,\"C\":_fd_seek,\"z\":_fd_write,\"D\":_setTempRet0};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=function(){return(___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}noExitRuntime=true;run();\n\n\n  return BASIS.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = BASIS;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return BASIS; });\nelse if (typeof exports === 'object')\n  exports[\"BASIS\"] = BASIS;\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/draco_decoder.js",
    "content": "\nvar DracoDecoderModule = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DracoDecoderModule = {})  {\n\nvar Module=typeof DracoDecoderModule!=\"undefined\"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module[\"onRuntimeInitialized\"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};Module[\"onModuleParsed\"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!==\"string\")return false;const version=versionString.split(\".\");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module[\"isVersionSupported\"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts[\"initial\"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(\n// EMSCRIPTEN_START_ASM\nfunction instantiate(na){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]==\"=\")-(o[j-1]==\"=\");for(;a<j;a+=4){g=f[o.charCodeAt(a+1)];h=f[o.charCodeAt(a+2)];m[i++]=f[o.charCodeAt(a)]<<2|g>>4;if(i<k)m[i++]=g<<4|h>>2;if(i<k)m[i++]=h<<6|f[o.charCodeAt(a+3)]}}function p(q){l(e,1028,\"YAQAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAE41ZHJhY28yOEF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1FAAAYOwAAOAQAALAHAAAtKyAgIDBYMHgAX19uZXh0X3ByaW1lIG92ZXJmbG93AHZlY3RvcgBzdGQ6OmV4Y2VwdGlvbgBza2lwX2F0dHJpYnV0ZV90cmFuc2Zvcm0AYmFkX2FycmF5X25ld19sZW5ndGgAYmFzaWNfc3RyaW5nAHN0ZDo6YmFkX2FsbG9jAERSQUNPAFVzaW5nIGluY29tcGF0aWJsZSBkZWNvZGVyIGZvciB0aGUgaW5wdXQgZ2VvbWV0cnkuAEZhaWxlZCB0byBkZWNvZGUgcG9pbnQgYXR0cmlidXRlcy4ARmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIGRlY29kZXIuAFVua25vd24gbWlub3IgdmVyc2lvbi4AVW5rbm93biBtYWpvciB2ZXJzaW9uLgBJbnB1dCBpcyBub3QgYSBtZXNoLgBVbnN1cHBvcnRlZCBnZW9tZXRyeSB0eXBlLgBOb3QgYSBEcmFjbyBmaWxlLgBJbnB1dCBpcyBub3QgYSBwb2ludCBjbG91ZC4AVW5zdXBwb3J0ZWQgZW5jb2RpbmcgbWV0aG9kLgBGYWlsZWQgdG8gZGVjb2RlIG1ldGFkYXRhLgBGYWlsZWQgdG8gZGVjb2RlIGdlb21ldHJ5IGRhdGEuAChudWxsKQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBLZFRyZWVBdHRyaWJ1dGVzRGVjb2RlcjogY29tcHJlc3Npb24gbGV2ZWwgJWkgbm90IHN1cHBvcnRlZC4KAEZsb2F0UG9pbnRzVHJlZURlY29kZXI6IGNvbXByZXNzaW9uIGxldmVsICVpIG5vdCBzdXBwb3J0ZWQuCgBWZXJzaW9uIG5vdCBzdXBwb3J0ZWQuIAoATWV0aG9kIG5vdCBzdXBwb3J0ZWQuIAoAAAAAAACEBwAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAACwAAABgAAAAZAAAATjVkcmFjbzMwQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtRQAAAAAYOwAAWAcAALAHAABONWRyYWNvMThBdHRyaWJ1dGVUcmFuc2Zvcm1FAAAAAPA6AACQBwAAAAAAADwIAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAABONWRyYWNvMTdBdHRyaWJ1dGVzRGVjb2RlckUATjVkcmFjbzI2QXR0cmlidXRlc0RlY29kZXJJbnRlcmZhY2VFAAAAAPA6AAAMCAAAGDsAAPAHAAA0CAAAAAAAAKQIAAAmAAAAJwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAoAAAAKQAAACoAAABONWRyYWNvMjNLZFRyZWVBdHRyaWJ1dGVzRGVjb2RlckUAAAAYOwAAgAgAADwIAAAAAAAABAkAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAAE41ZHJhY28yNlNlcXVlbnRpYWxBdHRyaWJ1dGVEZWNvZGVyRQAAAADwOgAA3AgAAP////8AAAAAfAkAADQAAAA1AAAAHAAAADYAAAA3AAAAHwAAACAAAAAhAAAAOAAAADkAAAA6AAAAOwAAADwAAABONWRyYWNvMzdTZXF1ZW50aWFsQXR0cmlidXRlRGVjb2RlcnNDb250cm9sbGVyRQAYOwAATAkAADwIAAAAAAAA8AkAAD0AAAA+AAAAPwAAAC4AAAAvAAAAMAAAAEAAAAAyAAAAQQAAAEIAAABDAAAARAAAAEUAAABONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZURlY29kZXJFABg7AADECQAABAkAAAAAAAB8DAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAABRAAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAE41ZHJhY28zN1ByZWRpY3Rpb25TY2hlbWVUeXBlZERlY29kZXJJbnRlcmZhY2VJaWlFRQBONWRyYWNvMzJQcmVkaWN0aW9uU2NoZW1lRGVjb2RlckludGVyZmFjZUUATjVkcmFjbzI1UHJlZGljdGlvblNjaGVtZUludGVyZmFjZUUA8DoAACAMAAAYOwAA9QsAAEQMAAAYOwAAwQsAAEwMAAAYOwAAbQsAAFgMAAAYOwAA1woAAGQMAAAYOwAANAoAAHAMAAAAAAAAcAwAAEYAAABSAAAAIwAAAEkAAAAjAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAIwAAAAAAAABkDAAARgAAAFMAAAAjAAAASQAAACMAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAAAjAAAAAAAAANgNAABGAAAAVAAAAFUAAABJAAAAVgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFcAAABONWRyYWNvNDVNZXNoUHJlZGljdGlvblNjaGVtZU11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAYOwAAMA0AAHAMAAAAAAAA0A4AAFgAAABZAAAAWgAAAEkAAABbAAAASwAAAEwAAABNAAAATgAAAE8AAABcAAAAXQAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1EZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAABg7AAAcDgAAcAwAAAAAAAC0DwAAXgAAAF8AAABgAAAASQAAAGEAAABiAAAAYwAAAGQAAABOAAAATwAAAGUAAABmAAAATjVkcmFjbzM2TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAABg7AAAUDwAAcAwAAAAAAACgEAAAZwAAAGgAAABpAAAASQAAAGoAAABrAAAAbAAAAG0AAABOAAAATwAAAG4AAABvAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAGDsAAPgPAABwDAAAAAAAAIwRAABwAAAAcQAAAHIAAABJAAAAcwAAAHQAAAB1AAAAdgAAAE4AAABPAAAAdwAAAHgAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAAAAYOwAA5BAAAHAMAAAAAAAAFBMAAHkAAAB6AAAAewAAAHwAAAB9AAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAADwOgAAXxIAABg7AAC0EQAADBMAAAAAAAAMEwAAeQAAAH4AAAAjAAAAfAAAACMAAAAAAAAAoBQAAEYAAAB/AAAAgAAAAEkAAACBAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAggAAAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAABg7AAAKFAAAZAwAABg7AAB0EwAAlBQAAAAAAACUFAAARgAAAIMAAAAjAAAASQAAACMAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAAAjAAAAAAAAALgVAABGAAAAhAAAAIUAAABJAAAAhgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAIcAAABONWRyYWNvNDVNZXNoUHJlZGljdGlvblNjaGVtZU11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAYOwAAHBUAAJQUAAAAAAAApBYAAIgAAACJAAAAigAAAEkAAACLAAAASwAAAEwAAABNAAAATgAAAE8AAACMAAAAjQAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1EZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAABg7AAD8FQAAlBQAAAAAAAB8FwAAjgAAAI8AAACQAAAASQAAAJEAAACSAAAAkwAAAJQAAABOAAAATwAAAJUAAACWAAAATjVkcmFjbzM2TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAABg7AADoFgAAlBQAAAAAAABcGAAAlwAAAJgAAACZAAAASQAAAJoAAACbAAAAnAAAAJ0AAABOAAAATwAAAJ4AAACfAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAAGDsAAMAXAACUFAAAAAAAADgZAACgAAAAoQAAAKIAAABJAAAAowAAAKQAAAClAAAApgAAAE4AAABPAAAApwAAAKgAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFABg7AACgGAAAlBQAAAAAAACkGgAAqQAAAKoAAACrAAAArAAAAK0AAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA8DoAAP4ZAAAYOwAAYBkAAJwaAAAAAAAAnBoAAKkAAACuAAAAIwAAAKwAAAAjAAAAAAAAAGAbAABGAAAArwAAALAAAABJAAAAsQAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAALIAAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAAAAABg7AAAEGwAAZAwAAAAAAADUGwAAswAAALQAAAC1AAAALgAAAC8AAAC2AAAAQAAAADIAAABBAAAAtwAAALgAAAC5AAAAugAAAE41ZHJhY28zMlNlcXVlbnRpYWxOb3JtYWxBdHRyaWJ1dGVEZWNvZGVyRQAAGDsAAKgbAADwCQAAAAAAAOAdAAC7AAAAvAAAAL0AAAC+AAAAvwAAAMAAAADBAAAAwgAAAMMAAADEAAAAxQAAAMYAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVFRQAYOwAAaR0AAFgMAAAYOwAAyBwAAMgdAAAYOwAAGBwAANQdAAAAAAAAfB8AAMcAAADIAAAAyQAAAMoAAADLAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAPA6AAC+HgAAGDsAAAgeAAB0HwAAAAAAAAQhAADMAAAAzQAAAM4AAAC+AAAAzwAAANAAAADRAAAA0gAAAMMAAADEAAAA0wAAANQAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAYOwAAYyAAAMgdAAAYOwAAwB8AAPggAAAAAAAAiCIAANUAAADWAAAA1wAAANgAAADZAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAPA6AADVIQAAGDsAACwhAACAIgAAAAAAADAjAADaAAAA2wAAANwAAAC+AAAA3QAAAN4AAADfAAAA4AAAAMMAAADEAAAA4QAAAOIAAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFEZWNvZGVySWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUAGDsAAMwiAADIHQAAAAAAAGQlAADjAAAA5AAAAOUAAADmAAAA5wAAAOgAAADpAAAA6gAAAOsAAADsAAAA7QAAAO4AAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjNQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVFRQAAGDsAAN8kAABYDAAAGDsAADEkAABMJQAAGDsAAHQjAABYJQAAAAAAABwnAADvAAAA8AAAAPEAAADyAAAA8wAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAA8DoAAE8mAAAYOwAAjCUAABQnAAAAAAAAwCgAAPQAAAD1AAAA9gAAAOYAAAD3AAAA+AAAAPkAAAD6AAAA6wAAAOwAAAD7AAAA/AAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAAAYOwAAECgAAEwlAAAYOwAAYCcAALQoAAAAAAAAXCoAAP0AAAD+AAAA/wAAAAABAAABAQAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAPA6AACeKQAAGDsAAOgoAABUKgAAAAAAABQrAADaAAAAAgEAAAMBAADmAAAABAEAAAUBAAAGAQAABwEAAOsAAADsAAAACAEAAAkBAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRUVFAAAAABg7AACgKgAATCUAAAAAAACYKwAACgEAAAsBAAAMAQAALgAAAC8AAAANAQAAQAAAADIAAABBAAAADgEAAEMAAABEAAAADwEAABABAAARAQAATjVkcmFjbzM4U2VxdWVudGlhbFF1YW50aXphdGlvbkF0dHJpYnV0ZURlY29kZXJFAAAAABg7AABkKwAA8AkAAAAAAAD4KwAAEgEAABMBAAAUAQAAFQEAACMAAAAWAQAAFwEAABgBAAAZAQAAGgEAABsBAAAcAQAAIwAAAE41ZHJhY28xMU1lc2hEZWNvZGVyRQAAABg7AADgKwAATDQAAAAAAABkLAAAHQEAAB4BAAAUAQAAHwEAACABAAAWAQAAFwEAABgBAAAhAQAAIgEAACMBAAAkAQAAJQEAAE41ZHJhY28yMk1lc2hFZGdlYnJlYWtlckRlY29kZXJFAAAAABg7AABALAAA+CsAAAAAAACILQAAJgEAACcBAAAoAQAAKQEAACoBAAArAQAALAEAAC0BAAAuAQAALwEAAP////8AAAAA7C0AADABAAAxAQAAMgEAADMBAAA0AQAANQEAADYBAAA3AQAAOAEAADkBAAAAAAAATC4AADoBAAA7AQAAPAEAAD0BAAA+AQAAPwEAAEABAABBAQAAQgEAAEMBAABONWRyYWNvMjZNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbElOU18zMU1lc2hFZGdlYnJlYWtlclRyYXZlcnNhbERlY29kZXJFRUUATjVkcmFjbzM1TWVzaEVkZ2VicmVha2VyRGVjb2RlckltcGxJbnRlcmZhY2VFAAAA8DoAAFAtAAAYOwAABC0AAIAtAABONWRyYWNvMjZNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbElOU180MU1lc2hFZGdlYnJlYWtlclRyYXZlcnNhbFByZWRpY3RpdmVEZWNvZGVyRUVFAAAAGDsAAJQtAACALQAATjVkcmFjbzI2TWVzaEVkZ2VicmVha2VyRGVjb2RlckltcGxJTlNfMzhNZXNoRWRnZWJyZWFrZXJUcmF2ZXJzYWxWYWxlbmNlRGVjb2RlckVFRQAAGDsAAPgtAACALQAAAAAAAEgvAABEAQAARQEAAEYBAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUATjVkcmFjbzEzVHJhdmVyc2VyQmFzZUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMV9FRUVFAPA6AADZLgAAGDsAAGwuAABALwAAAAAAAEAvAABHAQAASAEAAEYB\");l(e,12148,\"AQAAAAMAAAAFAAAABwAAAAAAAABIMAAASQEAAEoBAABLAQAATAEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAE41ZHJhY28xNVBvaW50c1NlcXVlbmNlckUAAAAA8DoAACMwAAAYOwAAnC8AAEAwAAD/////AAAAADgxAABNAQAATgEAAE8BAABONWRyYWNvMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAA8DoAANUwAAAYOwAAbDAAADAxAAAAAAAAMDEAAFABAABRAQAATwEAAAAAAADwMQAAUgEAAFMBAABUAQAAVQEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAAAAGDsAAHAxAABAMAAAAAAAAHAyAABWAQAAVwEAAE8BAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAYOwAAEDIAADAxAAAAAAAAIDMAAFgBAABZAQAAWgEAAFsBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMl9FRUVFRUUAABg7AACUMgAAQDA=\");l(e,13108,\"jDMAABIBAABcAQAAFAEAABUBAABdAQAAFgEAABcBAAAYAQAAGQEAABoBAAAbAQAAHAEAAF4BAABONWRyYWNvMjFNZXNoU2VxdWVudGlhbERlY29kZXJFABg7AABsMwAA+CsAAAAAAADMMwAAXwEAAGABAABhAQAAYgEAAE41ZHJhY28xNUxpbmVhclNlcXVlbmNlckUAAAAYOwAAsDMAAEAwAAAAAAAATDQAABIBAABjAQAAZAEAABUBAAAjAAAAZQEAABcBAAAYAQAAGQE=\");l(e,13328,\"RmFpbGVkIHRvIHBhcnNlIERyYWNvIGhlYWRlci4ATjVkcmFjbzE3UG9pbnRDbG91ZERlY29kZXJFAAAA8DoAAC40AAAAAAAApDQAABIBAABmAQAAZAEAABUBAABnAQAAaAEAABcBAAAYAQAAGQEAAE41ZHJhY28yM1BvaW50Q2xvdWRLZFRyZWVEZWNvZGVyRQAAABg7AACANAAATDQAAAAAAAAENQAAEgEAAGkBAABkAQAAFQEAAGoBAABrAQAAFwEAABgBAAAZAQAATjVkcmFjbzI3UG9pbnRDbG91ZFNlcXVlbnRpYWxEZWNvZGVyRQAAABg7AADcNAAATDQAAAEAAAABAAAAAgAAAAIAAAAEAAAABAAAAAgAAAAIAAAABAAAAAgAAAAB\");l(e,13635,\"wAAAAMAAAADAAAAAwP//////////AAAAAIA1AABsAQAAbQEAAG4BAABvAQAATjVkcmFjbzRNZXNoRQAAABg7AABwNQAAxDUAAP////8AAAAAAAAAAMQ1AABwAQAAcQEAAHIBAABzAQAATjVkcmFjbzEwUG9pbnRDbG91ZEUAAAAA8DoAAKw1AAC4PAAAGQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk=\");l(e,13857,\"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO\");l(e,13915,\"DA==\");l(e,13927,\"EwAAAAATAAAAAAkMAAAAAAAMAAAM\");l(e,13973,\"EA==\");l(e,13985,\"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ\");l(e,14031,\"Eg==\");l(e,14043,\"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa\");l(e,14098,\"GgAAABoaGgAAAAAAAAk=\");l(e,14147,\"FA==\");l(e,14159,\"FwAAAAAXAAAAAAkUAAAAAAAUAAAU\");l(e,14205,\"Fg==\");l(e,14217,\"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAAAAAAIAAAADAAAABQAAAAcAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAH8AAACDAAAAiQAAAIsAAACVAAAAlwAAAJ0AAACjAAAApwAAAK0AAACzAAAAtQAAAL8AAADBAAAAxQAAAMcAAADTAAAAAQAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAeQAAAH8AAACDAAAAiQAAAIsAAACPAAAAlQAAAJcAAACdAAAAowAAAKcAAACpAAAArQAAALMAAAC1AAAAuwAAAL8AAADBAAAAxQAAAMcAAADRAAAAAAAAAAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFAMqaOwAAAAAAAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTlOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAYOwAAKDoAAKw8AABOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UAAAAYOwAAWDoAAEw6AABOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UAAAAYOwAAiDoAAEw6AABOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQAYOwAAuDoAAKw6AAAAAAAAfDoAAHkBAAB6AQAAewEAAHwBAAB9AQAAfgEAAH8BAACAAQAAAAAAAGA7AAB5AQAAgQEAAHsBAAB8AQAAfQEAAIIBAACDAQAAhAEAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQAAAAAYOwAAODsAAHw6AAAAAAAA0DsAAA4AAACFAQAAhgEAAAAAAAD4OwAADgAAAIcBAACIAQAAAAAAALg7AAAOAAAAiQEAAIoBAABTdDlleGNlcHRpb24AAAAA8DoAAKg7AABTdDliYWRfYWxsb2MAAAAAGDsAAMA7AAC4OwAAU3QyMGJhZF9hcnJheV9uZXdfbGVuZ3RoAAAAABg7AADcOwAA0DsAAAAAAAAoPAAAAQAAAIsBAACMAQAAU3QxMWxvZ2ljX2Vycm9yABg7AAAYPAAAuDsAAAAAAABcPAAAAQAAAI0BAACMAQAAU3QxMmxlbmd0aF9lcnJvcgAAAAAYOwAASDwAACg8AAAAAAAAkDwAAAEAAACOAQAAjAEAAFN0MTJvdXRfb2ZfcmFuZ2UAAAAAGDsAAHw8AAAoPAAAU3Q5dHlwZV9pbmZvAAAAAPA6AACcPA==\");l(e,15544,\"BQ==\");l(e,15556,\"dAE=\");l(e,15580,\"dQEAAHYBAABsPg==\");l(e,15604,\"Ag==\");l(e,15620,\"//////////8=\");l(e,15688,\"BQ==\");l(e,15700,\"dwE=\");l(e,15724,\"dQEAAHgBAAB4PgAAAAQ=\");l(e,15748,\"AQ==\");l(e,15764,\"/////wo=\");l(e,15832,\"IEUB\")}var r=new ArrayBuffer(16);var s=new Int32Array(r);var t=new Float32Array(r);var u=new Float64Array(r);function v(){throw new Error(\"abort\")}function w(x){t[2]=x}function y(z){return s[z]}function A(z,x){s[z]=x}function B(){return t[2]}function ma(q){var C=q.a;var D=C.a;var E=D.buffer;D.grow=ka;var F=new Int8Array(E);var G=new Int16Array(E);var H=new Int32Array(E);var I=new Uint8Array(E);var J=new Uint16Array(E);var K=new Uint32Array(E);var L=new Float32Array(E);var M=new Float64Array(E);var N=Math.imul;var O=Math.fround;var P=Math.abs;var Q=Math.clz32;var R=Math.min;var S=Math.max;var T=Math.floor;var U=Math.ceil;var V=Math.trunc;var W=Math.sqrt;var X=C.b;var Y=C.c;var Z=C.d;var _=C.e;var $=C.f;var aa=C.g;var ba=C.h;var ca=83232;var da=0;\n// EMSCRIPTEN_START_FUNCS\nfunction Ud(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;B=ca-672|0;ca=B;k=H[b+8>>2];s=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;a:{b:{c:{if(g>>>0>k>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break c}d=e+H[b>>2]|0;H[a>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[a>>2]>31){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+4>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+12>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;d=H[a+20>>2];x=H[a+12>>2];if((x|0)!=(d|0)?d:0){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[a+16>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(e>>>0>=7){H[B>>2]=e;Qd(1713,B);break c}H[B+664>>2]=c;d:{if(!x){break d}e:{k=H[c>>2];if(x>>>0<=(H[c+8>>2]-k|0)/12>>>0){break e}if(x>>>0<357913942){l=H[c+4>>2];d=N(x,12);e=pa(d);g=d+e|0;e=e+N((l-k|0)/12|0,12)|0;d=e;if((k|0)!=(l|0)){while(1){d=d-12|0;l=l-12|0;H[d>>2]=H[l>>2];H[d+4>>2]=H[l+4>>2];H[d+8>>2]=H[l+8>>2];if((k|0)!=(l|0)){continue}break}}H[c+8>>2]=g;H[c+4>>2]=e;H[c>>2]=d;if(!k){break e}oa(k);break e}break b}f:{switch(H[a+16>>2]){case 0:i=wb(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;g:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break g}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break g}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break g}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break g}H[i+8>>2]=0;if(!ua(i+16|0,b)){break g}if(!ua(i+36|0,b)){break g}if(!ua(i+56|0,b)){break g}if(!ua(i+76|0,b)){break g}A=H[i+4>>2];d=0;g=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;g=pa(b);H[f+8>>2]=g;d=b+g|0;H[f+16>>2]=d;ra(g,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];g=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=g;H[e+8>>2]=H[f+16>>2];g=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;h:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;w=pa(b);H[f+8>>2]=w;g=b+w|0;H[f+16>>2]=g;ra(w,0,b);H[f+12>>2]=g}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);w=H[f+8>>2];g=H[f+12>>2]}H[d+4>>2]=g;H[d>>2]=w;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;m=H[f+28>>2]+1|0;H[f+28>>2]=m;i:{if(!m){break i}y=i+96|0;while(1){n=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];k=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=0;if(t>>>0>A>>>0){break i}d=H[i+12>>2];m=(k|0)!=(d-1|0)?k+1|0:0;if(m>>>0>=d>>>0){break i}q=N(o,12);p=q+H[i+132>>2]|0;l=q+H[i+120>>2]|0;g=H[i>>2];r=m<<2;e=H[r+H[p>>2]>>2];j:{k:{if((g|0)==(e|0)){if(!t){break k}while(1){d=H[l>>2];x=H[d+8>>2];s=H[d+4>>2];n=H[d>>2];q=H[z>>2];m=H[q+4>>2];d=H[q+8>>2];l:{if(m>>>0<d>>>0){H[m+8>>2]=x;H[m+4>>2]=s;H[m>>2]=n;H[q+4>>2]=m+12;break l}r=H[q>>2];g=(m-r|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(d-r|0)/12|0;d=e<<1;k=e>>>0>=178956970?357913941:d>>>0>k>>>0?d:k;if(k){if(k>>>0>=357913942){break a}d=pa(N(k,12))}else{d=0}w=d+N(g,12)|0;H[w+8>>2]=x;H[w+4>>2]=s;H[w>>2]=n;e=w+12|0;if((m|0)!=(r|0)){while(1){w=w-12|0;m=m-12|0;H[w>>2]=H[m>>2];H[w+4>>2]=H[m+4>>2];H[w+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=d+N(k,12);H[q+4>>2]=e;H[q>>2]=w;if(!r){break l}oa(r)}H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}break k}m:{n:{o:{p:{if(t>>>0<=2){d=H[i+108>>2];H[d>>2]=m;w=1;g=H[i+12>>2];if(g>>>0>1){break p}break m}if(K[i+8>>2]>K[i+4>>2]){break i}b=H[i+120>>2];s=o+1|0;x=N(s,12);d=b+x|0;if((d|0)!=(l|0)){Aa(d,H[l>>2],H[l+4>>2]);b=H[i+120>>2]}b=r+H[b+x>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(e^-1));n=Q(t)^31;k=H[i+32>>2];e=32-k|0;q:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break o}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;w=d<<k>>>32-n|0;if((b|0)!=32){break q}H[i+32>>2]=0;H[i+28>>2]=e+4;break q}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break o}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;w=H[g+4>>2]>>>32-b|d<<k>>>32-n}d=t>>>1|0;if(w>>>0>d>>>0){break i}break n}while(1){m=(g-1|0)!=(m|0)?m+1|0:0;H[d+(w<<2)>>2]=m;g=H[i+12>>2];w=w+1|0;if(g>>>0>w>>>0){continue}break}break m}d=t>>>1|0;w=0}r:{s:{e=d-w|0;b=t-e|0;t:{if((b|0)==(e|0)){b=e;break t}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break s}k=H[n>>2];g=H[i+92>>2];d=g+1|0;H[i+92>>2]=d;g=k&-2147483648>>>g;u:{if((d|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break u}break s}if(!g){break s}}}d=b;b=e;break r}d=e}n=H[i+132>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+x|0,g,H[k+4>>2]);if(b){g=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((e|0)!=(w|0)?N(e-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+w>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=m;H[e>>2]=b;H[f+28>>2]=H[f+28>>2]+1}if(!d){break k}g=H[f+28>>2]+H[f+24>>2]|0;b=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((b|0)!=(w|0)?N(b-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}b=(g>>>0)/341|0;b=H[(b<<2)+w>>2]+N(g-N(b,341)|0,12)|0;H[b+8>>2]=s;H[b+4>>2]=m;H[b>>2]=d;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break j}if(!t){break k}while(1){if(H[i+12>>2]){o=H[i+40>>2];n=H[p>>2];w=H[i+96>>2];k=H[i+108>>2];m=0;while(1){q=k+(m<<2)|0;H[w+(H[q>>2]<<2)>>2]=0;g=H[i>>2];e=H[q>>2]<<2;d=H[e+n>>2];v:{if((g|0)==(d|0)){break v}r=e+w|0;u=g-d|0;x=H[i+52>>2];g=32-x|0;if((u|0)<=(g|0)){e=H[i+48>>2];if((e|0)==(o|0)){break i}H[r>>2]=H[e>>2]<<x>>>32-u;d=u+H[i+52>>2]|0;H[i+52>>2]=d;if((d|0)!=32){break v}H[i+52>>2]=0;H[i+48>>2]=e+4;break v}s=H[i+48>>2];d=s+4|0;if((d|0)==(o|0)){break i}e=H[s>>2];H[i+48>>2]=d;d=u-g|0;H[i+52>>2]=d;H[r>>2]=H[s+4>>2]>>>32-d|e<<x>>>32-u}e=H[q>>2]<<2;d=e+w|0;H[d>>2]=H[d>>2]|H[e+H[l>>2]>>2];m=m+1|0;if(m>>>0<K[i+12>>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;w=H[f+16>>2];m=H[f+12>>2];g=w-m|0;if(g>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;w=H[f+16>>2];g=w-m|0;if(g>>>0>8){continue}break}}b=170;w:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break w}}x:{if((m|0)==(w|0)){break x}while(1){oa(H[m>>2]);m=m+4|0;if((w|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break x}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break h}}xb(i);break d;case 1:i=wb(B+8|0,3);A=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;y:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break y}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break y}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break y}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break y}H[i+8>>2]=0;if(!ua(i+16|0,b)){break y}if(!ua(i+36|0,b)){break y}if(!ua(i+56|0,b)){break y}if(!ua(i+76|0,b)){break y}p=H[i+4>>2];d=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;t=pa(b);H[f+8>>2]=t;d=b+t|0;H[f+16>>2]=d;ra(t,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];t=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=t;H[e+8>>2]=H[f+16>>2];t=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;z:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;o=pa(b);H[f+8>>2]=o;t=b+o|0;H[f+16>>2]=t;ra(o,0,b);H[f+12>>2]=t}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);t=H[f+12>>2];o=H[f+8>>2]}H[d+4>>2]=t;H[d>>2]=o;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=p;m=H[f+28>>2]+1|0;H[f+28>>2]=m;A:{if(!m){break A}s=i+96|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];d=H[b+4>>2];l=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(l>>>0>p>>>0){break A}b=H[i+12>>2];m=(d|0)!=(b-1|0)?d+1|0:0;if(m>>>0>=b>>>0){break A}b=H[i+120>>2];r=N(q,12);u=b+r|0;e=H[i>>2];x=m<<2;n=r+H[i+132>>2]|0;d=H[x+H[n>>2]>>2];B:{C:{if((e|0)==(d|0)){x=0;if(!l){break C}while(1){b=H[u>>2];y=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];q=H[A>>2];m=H[q+4>>2];b=H[q+8>>2];D:{if(m>>>0<b>>>0){H[m+8>>2]=y;H[m+4>>2]=n;H[m>>2]=k;H[q+4>>2]=m+12;break D}r=H[q>>2];e=(m-r|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-r|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}o=b+N(e,12)|0;H[o+8>>2]=y;H[o+4>>2]=n;H[o>>2]=k;d=o+12|0;if((m|0)!=(r|0)){while(1){o=o-12|0;m=m-12|0;H[o>>2]=H[m>>2];H[o+4>>2]=H[m+4>>2];H[o+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=b+N(g,12);H[q+4>>2]=d;H[q>>2]=o;if(!r){break D}oa(r)}H[i+8>>2]=H[i+8>>2]+1;x=x+1|0;if((l|0)!=(x|0)){continue}break}break C}E:{F:{G:{H:{if(l>>>0<=2){b=H[i+108>>2];H[b>>2]=m;o=1;t=H[i+12>>2];if(t>>>0>1){break H}break E}if(K[i+8>>2]>K[i+4>>2]){break A}k=b;b=r+12|0;Aa(k+b|0,H[u>>2],H[u+4>>2]);b=x+H[b+H[i+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<e+(d^-1));n=Q(l)^31;k=H[i+32>>2];e=32-k|0;I:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break G}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;d=d<<k>>>32-n|0;if((b|0)!=32){break I}H[i+32>>2]=0;H[i+28>>2]=e+4;break I}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break G}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;d=H[g+4>>2]>>>32-b|d<<k>>>32-n}o=l>>>1|0;if(o>>>0<d>>>0){break A}break F}while(1){m=(t-1|0)!=(m|0)?m+1|0:0;H[b+(o<<2)>>2]=m;o=o+1|0;t=H[i+12>>2];if(o>>>0<t>>>0){continue}break}break E}o=l>>>1|0;d=0}y=q+1|0;J:{K:{e=o-d|0;d=l-e|0;L:{if((d|0)==(e|0)){b=e;break L}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break K}k=H[n>>2];g=H[i+92>>2];b=g+1|0;H[i+92>>2]=b;g=k&-2147483648>>>g;M:{if((b|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break M}break K}if(!g){break K}}b=d}d=e;break J}b=e}n=H[i+132>>2];k=n+r|0;g=H[k>>2];e=g+x|0;H[e>>2]=H[e>>2]+1;Aa(n+N(y,12)|0,g,H[k+4>>2]);if(d){t=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((e|0)!=(o|0)?N(e-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}e=(t>>>0)/341|0;e=H[o+(e<<2)>>2]+N(t-N(e,341)|0,12)|0;H[e+8>>2]=q;H[e+4>>2]=m;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break C}t=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((d|0)!=(o|0)?N(d-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}d=(t>>>0)/341|0;d=H[o+(d<<2)>>2]+N(t-N(d,341)|0,12)|0;H[d+8>>2]=y;H[d+4>>2]=m;H[d>>2]=b;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break B}t=0;if(!l){break C}while(1){if(H[i+12>>2]){o=H[i+40>>2];k=H[n>>2];z=H[i+96>>2];g=H[i+108>>2];m=0;while(1){q=g+(m<<2)|0;H[z+(H[q>>2]<<2)>>2]=0;e=H[i>>2];d=H[q>>2]<<2;b=H[d+k>>2];N:{if((e|0)==(b|0)){break N}r=d+z|0;w=e-b|0;x=H[i+52>>2];e=32-x|0;if((w|0)<=(e|0)){d=H[i+48>>2];if((d|0)==(o|0)){break A}H[r>>2]=H[d>>2]<<x>>>32-w;b=w+H[i+52>>2]|0;H[i+52>>2]=b;if((b|0)!=32){break N}H[i+52>>2]=0;H[i+48>>2]=d+4;break N}y=H[i+48>>2];b=y+4|0;if((b|0)==(o|0)){break A}d=H[y>>2];H[i+48>>2]=b;b=w-e|0;H[i+52>>2]=b;H[r>>2]=H[y+4>>2]>>>32-b|d<<x>>>32-w}d=H[q>>2]<<2;b=d+z|0;H[b>>2]=H[b>>2]|H[d+H[u>>2]>>2];m=m+1|0;if(m>>>0<K[i+12>>2]){continue}break}}jb(A,s);H[i+8>>2]=H[i+8>>2]+1;t=t+1|0;if((l|0)!=(t|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;o=H[f+16>>2];m=H[f+12>>2];t=o-m|0;if(t>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;o=H[f+16>>2];t=o-m|0;if(t>>>0>8){continue}break}}b=170;O:{switch((t>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break O}}P:{if((m|0)==(o|0)){break P}while(1){oa(H[m>>2]);m=m+4|0;if((o|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break P}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break z}}xb(i);break d;case 2:f=ub(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Q:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Q}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Q}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Q}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Q}H[f+8>>2]=0;if(!ta(f+16|0,b)){break Q}if(!ua(f+32|0,b)){break Q}if(!ua(f+52|0,b)){break Q}if(!ua(f+72|0,b)){break Q}z=H[f+4>>2];g=0;b=0;h=ca-32|0;ca=h;j=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}d=j<<2;g=pa(d);H[h+8>>2]=g;b=d+g|0;H[h+16>>2]=b;ra(g,0,d);H[h+12>>2]=b}e=H[f+116>>2];d=H[e>>2];if(d){H[e+4>>2]=d;oa(d);j=H[f+12>>2];g=H[h+8>>2];b=H[h+12>>2]}H[e+4>>2]=b;H[e>>2]=g;H[e+8>>2]=H[h+16>>2];g=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;R:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;u=pa(b);H[h+8>>2]=u;g=b+u|0;H[h+16>>2]=g;ra(u,0,b);H[h+12>>2]=g}d=H[f+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);u=H[h+8>>2];g=H[h+12>>2]}H[d+4>>2]=g;H[d>>2]=u;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;j=H[h+28>>2]+1|0;H[h+28>>2]=j;S:{if(!j){break S}x=f+92|0;y=f+16|0;while(1){n=H[h+12>>2];g=H[h+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;p=H[b+8>>2];k=H[b+4>>2];i=H[b>>2];H[h+28>>2]=e;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}d=0;if(i>>>0>z>>>0){break S}b=H[f+12>>2];j=(k|0)!=(b-1|0)?k+1|0:0;if(j>>>0>=b>>>0){break S}o=N(p,12);A=o+H[f+128>>2]|0;t=o+H[f+116>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];T:{if((g|0)==(e|0)){if(!i){break T}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];j=H[o+4>>2];b=H[o+8>>2];U:{if(j>>>0<b>>>0){H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;H[o+4>>2]=j+12;break U}q=H[o>>2];g=(j-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}u=b+N(g,12)|0;H[u+8>>2]=r;H[u+4>>2]=s;H[u>>2]=n;e=u+12|0;if((j|0)!=(q|0)){while(1){u=u-12|0;j=j-12|0;H[u>>2]=H[j>>2];H[u+4>>2]=H[j+4>>2];H[u+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=u;if(!q){break U}oa(q)}H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}break T}V:{W:{X:{Y:{if(i>>>0<=2){b=H[f+104>>2];H[b>>2]=j;u=1;g=H[f+12>>2];if(g>>>0>1){break Y}break V}if(K[f+8>>2]>K[f+4>>2]){break S}b=H[f+116>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+116>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(e^-1));H[h+4>>2]=0;pc(y,Q(i)^31,h+4|0);d=i>>>1|0;b=H[h+4>>2];if(d>>>0<b>>>0){break S}e=d-b|0;d=i-e|0;Z:{if((d|0)==(e|0)){b=e;break Z}n=H[f+84>>2];if((n|0)==H[f+76>>2]){break X}k=H[n>>2];g=H[f+88>>2];b=g+1|0;H[f+88>>2]=b;g=k&-2147483648>>>g;_:{if((b|0)==32){H[f+88>>2]=0;H[f+84>>2]=n+4;if(g){break _}break X}if(!g){break X}}b=d}d=e;break W}while(1){j=(g-1|0)!=(j|0)?j+1|0:0;H[b+(u<<2)>>2]=j;g=H[f+12>>2];u=u+1|0;if(g>>>0>u>>>0){continue}break}break V}b=e}n=H[f+128>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((e|0)!=(u|0)?N(e-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+u>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break T}g=H[h+28>>2]+H[h+24>>2]|0;d=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((d|0)!=(u|0)?N(d-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}d=(g>>>0)/341|0;d=H[(d<<2)+u>>2]+N(g-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;H[h+28>>2]=H[h+28>>2]+1;break T}if(!i){break T}while(1){if(H[f+12>>2]){p=H[f+36>>2];n=H[A>>2];u=H[f+92>>2];k=H[f+104>>2];j=0;while(1){o=k+(j<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];$:{if((g|0)==(b|0)){break $}q=e+u|0;l=g-b|0;r=H[f+48>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+44>>2];if((e|0)==(p|0)){break S}H[q>>2]=H[e>>2]<<r>>>32-l;b=l+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break $}H[f+48>>2]=0;H[f+44>>2]=e+4;break $}s=H[f+44>>2];b=s+4|0;if((b|0)==(p|0)){break S}e=H[s>>2];H[f+44>>2]=b;b=l-g|0;H[f+48>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<<r>>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];j=j+1|0;if(j>>>0<K[f+12>>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}}j=H[h+28>>2];if(j){continue}break}}H[h+28>>2]=0;u=H[h+16>>2];j=H[h+12>>2];g=u-j|0;if(g>>>0>=9){while(1){oa(H[j>>2]);j=H[h+12>>2]+4|0;H[h+12>>2]=j;u=H[h+16>>2];g=u-j|0;if(g>>>0>8){continue}break}}b=170;aa:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break aa}}ba:{if((j|0)==(u|0)){break ba}while(1){oa(H[j>>2]);j=j+4|0;if((u|0)!=(j|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break ba}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break R}}vb(f);break d;case 3:i=ub(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;ca:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break ca}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break ca}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break ca}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break ca}H[i+8>>2]=0;if(!ta(i+16|0,b)){break ca}if(!ua(i+32|0,b)){break ca}if(!ua(i+52|0,b)){break ca}if(!ua(i+72|0,b)){break ca}A=H[i+4>>2];d=0;f=ca-32|0;ca=f;j=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}b=j<<2;m=pa(b);H[f+8>>2]=m;d=b+m|0;H[f+16>>2]=d;ra(m,0,b);H[f+12>>2]=d}e=H[i+116>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);j=H[i+12>>2];m=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=m;H[e+8>>2]=H[f+16>>2];m=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;da:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;p=pa(b);H[f+8>>2]=p;m=b+p|0;H[f+16>>2]=m;ra(p,0,b);H[f+12>>2]=m}d=H[i+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);m=H[f+12>>2];p=H[f+8>>2]}H[d+4>>2]=m;H[d>>2]=p;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;j=H[f+28>>2]+1|0;H[f+28>>2]=j;ea:{if(!j){break ea}y=i+92|0;s=i+16|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];d=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(t>>>0>A>>>0){break ea}b=H[i+12>>2];j=(d|0)!=(b-1|0)?d+1|0:0;if(j>>>0>=b>>>0){break ea}b=H[i+116>>2];q=N(o,12);l=b+q|0;e=H[i>>2];r=j<<2;n=q+H[i+128>>2]|0;d=H[r+H[n>>2]>>2];fa:{if((e|0)==(d|0)){r=0;if(!t){break fa}while(1){b=H[l>>2];x=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];o=H[z>>2];j=H[o+4>>2];b=H[o+8>>2];ga:{if(j>>>0<b>>>0){H[j+8>>2]=x;H[j+4>>2]=n;H[j>>2]=k;H[o+4>>2]=j+12;break ga}q=H[o>>2];e=(j-q|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-q|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}p=b+N(e,12)|0;H[p+8>>2]=x;H[p+4>>2]=n;H[p>>2]=k;d=p+12|0;if((j|0)!=(q|0)){while(1){p=p-12|0;j=j-12|0;H[p>>2]=H[j>>2];H[p+4>>2]=H[j+4>>2];H[p+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(g,12);H[o+4>>2]=d;H[o>>2]=p;if(!q){break ga}oa(q)}H[i+8>>2]=H[i+8>>2]+1;r=r+1|0;if((t|0)!=(r|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(t>>>0<=2){b=H[i+104>>2];H[b>>2]=j;p=1;m=H[i+12>>2];if(m>>>0>1){break ka}break ha}if(K[i+8>>2]>K[i+4>>2]){break ea}k=b;b=q+12|0;Aa(k+b|0,H[l>>2],H[l+4>>2]);b=r+H[b+H[i+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<e+(d^-1));H[f+4>>2]=0;pc(s,Q(t)^31,f+4|0);d=t>>>1|0;b=H[f+4>>2];if(d>>>0<b>>>0){break ea}x=o+1|0;e=d-b|0;d=t-e|0;la:{if((d|0)==(e|0)){b=e;break la}n=H[i+84>>2];if((n|0)==H[i+76>>2]){break ja}k=H[n>>2];g=H[i+88>>2];b=g+1|0;H[i+88>>2]=b;g=k&-2147483648>>>g;ma:{if((b|0)==32){H[i+88>>2]=0;H[i+84>>2]=n+4;if(g){break ma}break ja}if(!g){break ja}}b=d}d=e;break ia}while(1){j=(m-1|0)!=(j|0)?j+1|0:0;H[b+(p<<2)>>2]=j;m=H[i+12>>2];p=p+1|0;if(m>>>0>p>>>0){continue}break}break ha}b=e}n=H[i+128>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(x,12)|0,g,H[k+4>>2]);if(d){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((e|0)!=(p|0)?N(e-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}e=(m>>>0)/341|0;e=H[p+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=j;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break fa}m=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((d|0)!=(p|0)?N(d-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}d=(m>>>0)/341|0;d=H[p+(d<<2)>>2]+N(m-N(d,341)|0,12)|0;H[d+8>>2]=x;H[d+4>>2]=j;H[d>>2]=b;H[f+28>>2]=H[f+28>>2]+1;break fa}m=0;if(!t){break fa}while(1){if(H[i+12>>2]){p=H[i+36>>2];k=H[n>>2];w=H[i+92>>2];g=H[i+104>>2];j=0;while(1){o=g+(j<<2)|0;H[w+(H[o>>2]<<2)>>2]=0;e=H[i>>2];d=H[o>>2]<<2;b=H[d+k>>2];na:{if((e|0)==(b|0)){break na}q=d+w|0;u=e-b|0;r=H[i+48>>2];e=32-r|0;if((u|0)<=(e|0)){d=H[i+44>>2];if((d|0)==(p|0)){break ea}H[q>>2]=H[d>>2]<<r>>>32-u;b=u+H[i+48>>2]|0;H[i+48>>2]=b;if((b|0)!=32){break na}H[i+48>>2]=0;H[i+44>>2]=d+4;break na}x=H[i+44>>2];b=x+4|0;if((b|0)==(p|0)){break ea}d=H[x>>2];H[i+44>>2]=b;b=u-e|0;H[i+48>>2]=b;H[q>>2]=H[x+4>>2]>>>32-b|d<<r>>>32-u}d=H[o>>2]<<2;b=d+w|0;H[b>>2]=H[b>>2]|H[d+H[l>>2]>>2];j=j+1|0;if(j>>>0<K[i+12>>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;m=m+1|0;if((t|0)!=(m|0)){continue}break}}j=H[f+28>>2];if(j){continue}break}}H[f+28>>2]=0;p=H[f+16>>2];j=H[f+12>>2];m=p-j|0;if(m>>>0>=9){while(1){oa(H[j>>2]);j=H[f+12>>2]+4|0;H[f+12>>2]=j;p=H[f+16>>2];m=p-j|0;if(m>>>0>8){continue}break}}b=170;oa:{switch((m>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break oa}}pa:{if((j|0)==(p|0)){break pa}while(1){oa(H[j>>2]);j=j+4|0;if((p|0)!=(j|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break pa}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break da}}vb(i);break d;case 4:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;qa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break qa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break qa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break qa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break qa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break qa}if(!ua(f+544|0,b)){break qa}if(!ua(f+564|0,b)){break qa}if(!ua(f+584|0,b)){break qa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;ra:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;sa:{if(!d){break sa}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break sa}b=H[f+12>>2];j=(e|0)!=(b-1|0)?e+1|0:0;if(j>>>0>=b>>>0){break sa}o=N(p,12);A=o+H[f+640>>2]|0;t=o+H[f+628>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];ta:{ua:{if((g|0)==(e|0)){o=0;if(!i){break ua}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];va:{if(d>>>0<b>>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break va}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break va}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break ua}wa:{xa:{ya:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break ya}break wa}if(K[f+8>>2]>K[f+4>>2]){break sa}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(e^-1));l=0;d=0;b=Q(i)^31;if(!b){d=i>>>1|0;break xa}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break xa}break sa}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0<l>>>0){continue}break}break wa}za:{Aa:{e=d-l|0;d=i-e|0;Ba:{if((d|0)==(e|0)){b=e;break Ba}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Aa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Ca:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Ca}break Aa}if(!g){break Aa}}b=d}d=e;break za}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break ua}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break ta}j=0;if(!i){break ua}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];Da:{if((g|0)==(b|0)){break Da}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break sa}H[q>>2]=H[e>>2]<<r>>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Da}H[f+560>>2]=0;H[f+556>>2]=e+4;break Da}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break sa}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<<r>>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0<K[f+12>>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;Ea:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ea}}Fa:{if((d|0)==(j|0)){break Fa}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Fa}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break ra}}ab(f);break d;case 5:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Ga:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Ga}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Ga}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Ga}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Ga}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Ga}if(!ua(f+544|0,b)){break Ga}if(!ua(f+564|0,b)){break Ga}if(!ua(f+584|0,b)){break Ga}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Ha:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;p=pa(b);H[h+8>>2]=p;l=b+p|0;H[h+16>>2]=l;ra(p,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);l=H[h+12>>2];p=H[h+8>>2]}H[d+4>>2]=l;H[d>>2]=p;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ia:{if(!d){break Ia}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;o=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ia}m=0;b=H[f+12>>2];p=(e|0)!=(b-1|0)?e+1|0:0;if(p>>>0>=b>>>0){break Ia}b=H[f+628>>2];q=N(o,12);t=b+q|0;e=H[f>>2];r=p<<2;s=q+H[f+640>>2]|0;d=H[r+H[s>>2]>>2];Ja:{Ka:{if((e|0)==(d|0)){if(!i){break Ka}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];d=H[o+4>>2];b=H[o+8>>2];La:{if(d>>>0<b>>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[o+4>>2]=d+12;break La}q=H[o>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}p=b+N(g,12)|0;H[p+8>>2]=r;H[p+4>>2]=s;H[p>>2]=n;e=p+12|0;if((d|0)!=(q|0)){while(1){p=p-12|0;d=d-12|0;H[p>>2]=H[d>>2];H[p+4>>2]=H[d+4>>2];H[p+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=p;if(!q){break La}oa(q)}H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=p;d=1;l=H[f+12>>2];if(l>>>0>1){break Oa}break Ma}if(K[f+8>>2]>K[f+4>>2]){break Ia}k=b;b=q+12|0;Aa(k+b|0,H[t>>2],H[t+4>>2]);b=r+H[b+H[f+628>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<e+(d^-1));l=0;d=0;b=Q(i)^31;if(!b){d=i>>>1|0;break Na}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break Na}break Ia}while(1){p=(l-1|0)!=(p|0)?p+1|0:0;H[b+(d<<2)>>2]=p;d=d+1|0;l=H[f+12>>2];if(d>>>0<l>>>0){continue}break}break Ma}s=o+1|0;Pa:{Qa:{e=d-l|0;d=i-e|0;Ra:{if((d|0)==(e|0)){b=e;break Ra}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Qa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Sa:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Sa}break Qa}if(!g){break Qa}}b=d}d=e;break Pa}b=e}n=H[f+640>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(s,12)|0,g,H[k+4>>2]);if(d){m=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((m|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);m=H[h+24>>2]+H[h+28>>2]|0;l=H[h+12>>2]}e=(m>>>0)/341|0;e=H[l+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=p;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break Ka}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=p;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Ja}if(!i){break Ka}while(1){if(H[f+12>>2]){A=H[f+548>>2];n=H[s>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){p=k+(d<<2)|0;H[u+(H[p>>2]<<2)>>2]=0;g=H[f>>2];e=H[p>>2]<<2;b=H[e+n>>2];Ta:{if((g|0)==(b|0)){break Ta}o=e+u|0;l=g-b|0;q=H[f+560>>2];g=32-q|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(A|0)){break Ia}H[o>>2]=H[e>>2]<<q>>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Ta}H[f+560>>2]=0;H[f+556>>2]=e+4;break Ta}r=H[f+556>>2];b=r+4|0;if((b|0)==(A|0)){break Ia}e=H[r>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[o>>2]=H[r+4>>2]>>>32-b|e<<q>>>32-l}e=H[p>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0<K[f+12>>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;p=H[h+16>>2];d=H[h+12>>2];l=p-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;p=H[h+16>>2];l=p-d|0;if(l>>>0>8){continue}break}}b=170;Ua:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ua}}Va:{if((d|0)==(p|0)){break Va}while(1){oa(H[d>>2]);d=d+4|0;if((p|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Va}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Ha}}ab(f);break d;case 6:break f;default:break c}}f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Wa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Wa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Wa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Wa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Wa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Wa}if(!ua(f+544|0,b)){break Wa}if(!ua(f+564|0,b)){break Wa}if(!ua(f+584|0,b)){break Wa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Xa:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ya:{if(!d){break Ya}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ya}b=H[f+628>>2];o=N(p,12);A=o+H[f+640>>2]|0;j=Vd(f,i,A);if(j>>>0>=K[f+12>>2]){break Ya}t=b+o|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];Za:{_a:{if((g|0)==(e|0)){o=0;if(!i){break _a}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];$a:{if(d>>>0<b>>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break $a}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break $a}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break _a}ab:{bb:{cb:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break cb}break ab}if(K[f+8>>2]>K[f+4>>2]){break Ya}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(e^-1));l=0;d=0;b=Q(i)^31;if(!b){d=i>>>1|0;break bb}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break bb}break Ya}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0<l>>>0){continue}break}break ab}db:{eb:{e=d-l|0;d=i-e|0;fb:{if((d|0)==(e|0)){b=e;break fb}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break eb}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;gb:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break gb}break eb}if(!g){break eb}}b=d}d=e;break db}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break _a}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Za}j=0;if(!i){break _a}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];hb:{if((g|0)==(b|0)){break hb}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break Ya}H[q>>2]=H[e>>2]<<r>>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break hb}H[f+560>>2]=0;H[f+556>>2]=e+4;break hb}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break Ya}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<<r>>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0<K[f+12>>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;ib:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break ib}}jb:{if((d|0)==(j|0)){break jb}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break jb}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Xa}}ab(f)}n=H[a+12>>2]==((H[c+4>>2]-H[c>>2]|0)/12|0)}ca=B+672|0;return n}sa();v()}wa();v()}function kd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!a){return 1}e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];a:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break a}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;b:{switch(g|0){case 0:e=a;f=b;i=d;a=0;d=0;m=ca+-64|0;ca=m;H[m+56>>2]=0;H[m+48>>2]=0;H[m+52>>2]=0;H[m+40>>2]=0;H[m+44>>2]=0;H[m+32>>2]=0;H[m+36>>2]=0;H[m+24>>2]=0;H[m+28>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;H[m+8>>2]=0;H[m+12>>2]=0;c:{if(!Ne(m+8|0,c)){break c}if(!Me(m+8|0,c)|(H[m+20>>2]?0:e)){break c}Db(c,0,0);if(e){s=f<<2;t=H[m+36>>2];w=H[m+48>>2];x=H[m+24>>2];l=H[m+56>>2];j=H[m+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((j|0)<=0){break d}j=j-1|0;H[m+52>>2]=j;l=I[j+w|0]|l<<8;H[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=H[(a<<2)+x>>2];b=(r<<3)+t|0;l=(N(H[b>>2],l>>>12|0)+a|0)-H[b+4>>2]|0;H[m+56>>2]=l;if((f|0)>0){a=0;if(!I[c+36|0]|r>>>0>32){break c}g=d+f|0;e:{if(!r){ra(i+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=H[c+32>>2];h=H[c+28>>2];n=H[c+24>>2];while(1){k=0;a=b;o=0;q=0;if((r|0)!=1){while(1){p=n+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=I[p|0];b=a+1|0;H[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<<k|o;o=0;u=n+(a>>>3|0)|0;if(u>>>0<h>>>0){o=I[u|0];b=a+1|0;H[c+32>>2]=b;o=o>>>(a&7)&1;a=b}u=k|1;k=k+2|0;o=p|o<<u;q=q+2|0;if((y|0)!=(q|0)){continue}break}}q=i+(d<<2)|0;if(z){p=n+(a>>>3|0)|0;if(p>>>0<h>>>0){p=I[p|0];b=a+1|0;H[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}o=a<<k|o}H[q>>2]=o;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=g}v=f+v|0;if(e>>>0>v>>>0){continue}break}}F[c+36|0]=0;b=H[c+20>>2];e=0;d=H[c+32>>2]+7|0;e=d>>>0<7?1:e;d=(e&7)<<29|d>>>3;a=d+H[c+16>>2]|0;e=(e>>>3|0)+b|0;H[c+16>>2]=a;H[c+20>>2]=a>>>0<d>>>0?e+1|0:e;a=1}b=H[m+36>>2];if(b){H[m+40>>2]=b;oa(b)}b=H[m+24>>2];if(b){H[m+28>>2]=b;oa(b)}b=H[m+8>>2];if(b){H[m+12>>2]=b;oa(b)}ca=m- -64|0;return a;case 1:break b;default:break a}}b=0;e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];g:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break g}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;h:{switch(g-1|0){case 8:g=a;r=d;i=ca+-64|0;ca=i;H[i+56>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;j=i+8|0;a=J[c+38>>1];i:{j:{if(!a){break j}k:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0<f>>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break j}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break k}if(!hb(1,j+12|0,c)){break j}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break j}b=H[j>>2];a=H[j+4>>2]-b>>2;l:{if(a>>>0<h>>>0){ya(j,h-a|0);h=H[j+12>>2];break l}if(a>>>0<=h>>>0){break l}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break i}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];m=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=m>>>0|(e|0)>(n|0)){break i}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;m:{n:{o:{p:{t=p&3;switch(t|0){case 0:break n;case 3:break p;default:break o}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break i}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break m}while(1){if((f|0)==(m|0)&(e|0)==(n|0)){break j}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0<h>>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;q:{if(b>>>0<=32767){ya(a,8192-(b>>>2|0)|0);break q}if((b|0)==32768){break q}H[j+20>>2]=d+32768}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;r:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break r}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break j}}m=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>8192){break j}s:{if(a>>>0>=d>>>0){break s}l=0;j=e&7;if(j){while(1){H[m+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break s}while(1){e=m+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==8192}d=k}t:{if(!d|(H[i+20>>2]?0:g)){break t}d=0;m=ca-16|0;ca=m;u:{v:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0<f>>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break u}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break v}if(!gb(1,m+8|0,c)){break u}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[m+8>>2];k=H[m+12>>2]}j=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0<k>>>0){break u}e=e+k|0;b=a+f|0;e=b>>>0<a>>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break u}b=H[c>>2]+f|0;H[i+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];w:{if(e>>>0<=63){H[i+52>>2]=c;a=I[f|0]&63;break w}x:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break u}a=a-2|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break w;case 1:if(a>>>0<3){break u}a=a-3|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break w;default:break x}}a=a-4|0;H[i+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[i+56>>2]=a+32768;d=a>>>0<8355840}ca=m+16|0;if(!d){break t}if(!g){o=1;break t}b=H[i+52>>2];a=H[i+56>>2];c=H[i+36>>2];d=H[i+48>>2];f=H[i+24>>2];while(1){y:{if(a>>>0>32767){break y}while(1){if((b|0)<=0){break y}b=b-1|0;H[i+52>>2]=b;a=I[b+d|0]|a<<8;H[i+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>13|0)+e|0)-H[k+4>>2]|0;H[i+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((g|0)!=(q|0)){continue}break}}a=H[i+36>>2];if(a){H[i+40>>2]=a;oa(a)}a=H[i+24>>2];if(a){H[i+28>>2]=a;oa(a)}a=H[i+8>>2];if(a){H[i+12>>2]=a;oa(a)}ca=i- -64|0;b=o;break g;case 9:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];z:{A:{if(!a){break A}B:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0<f>>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break A}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break B}if(!hb(1,j+12|0,c)){break A}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break A}b=H[j>>2];a=H[j+4>>2]-b>>2;C:{if(a>>>0<h>>>0){ya(j,h-a|0);h=H[j+12>>2];break C}if(a>>>0<=h>>>0){break C}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break z}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break z}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;D:{E:{F:{G:{t=p&3;switch(t|0){case 0:break E;case 3:break G;default:break F}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break z}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break D}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break A}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0<h>>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;H:{if(b>>>0<=131071){ya(a,32768-(b>>>2|0)|0);break H}if((b|0)==131072){break H}H[j+20>>2]=d+131072}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;I:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break I}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break A}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>32768){break A}J:{if(a>>>0>=d>>>0){break J}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break J}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==32768}d=k}K:{if(!d|(H[g+20>>2]?0:m)){break K}d=0;j=ca-16|0;ca=j;L:{M:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0<f>>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break L}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break M}if(!gb(1,j+8|0,c)){break L}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0<k>>>0){break L}i=e+k|0;b=a+f|0;i=b>>>0<a>>>0?i+1|0:i;H[c+16>>2]=b;H[c+20>>2]=i;if((a|0)<=0){break L}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];N:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break N}O:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break L}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break N;case 1:if(a>>>0<3){break L}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break N;default:break O}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+131072;d=a>>>0<33423360}ca=j+16|0;if(!d){break K}if(!m){o=1;break K}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){P:{if(a>>>0>131071){break P}while(1){if((b|0)<=0){break P}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>15|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 10:m=a;j=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;n=g+8|0;a=J[c+38>>1];Q:{R:{if(!a){break R}S:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0<f>>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break R}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[n+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break S}if(!hb(1,n+12|0,c)){break R}f=H[c+16>>2];e=H[c+20>>2];h=H[n+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break R}b=H[n>>2];a=H[n+4>>2]-b>>2;T:{if(a>>>0<h>>>0){ya(n,h-a|0);h=H[n+12>>2];break T}if(a>>>0<=h>>>0){break T}H[n+4>>2]=b+(h<<2)}d=1;if(!h){break Q}f=H[c+16>>2];e=H[c+20>>2];t=H[n>>2];r=H[c+8>>2];p=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(p|0)&f>>>0>=r>>>0|(e|0)>(p|0)){break Q}d=H[c>>2];s=I[d+f|0];f=f+1|0;i=f?e:e+1|0;H[c+16>>2]=f;e=i;H[c+20>>2]=e;a=s>>>2|0;l=0;U:{V:{W:{X:{i=s&3;switch(i|0){case 0:break V;case 3:break X;default:break W}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break Q}ra(t+(b<<2)|0,0,(s&252)+4|0);b=a;break U}while(1){if((f|0)==(r|0)&(e|0)==(p|0)){break R}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((i|0)!=(l|0)){continue}break}}H[t+(b<<2)>>2]=a}b=b+1|0;h=H[n+12>>2];if(b>>>0<h>>>0){continue}break}a=n+16|0;r=H[n>>2];d=H[n+16>>2];b=H[n+20>>2]-d|0;Y:{if(b>>>0<=262143){ya(a,65536-(b>>>2|0)|0);break Y}if((b|0)==262144){break Y}H[n+20>>2]=d+262144}d=n+28|0;b=H[d>>2];f=H[n+32>>2]-b>>3;Z:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break Z}if(f>>>0>h>>>0){H[n+32>>2]=(h<<3)+b}if(!h){break R}}i=H[a>>2];f=0;d=0;while(1){e=r+(f<<2)|0;l=H[e>>2];n=(f<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=l;e=H[e>>2];d=e+a|0;if(d>>>0>65536){break R}_:{if(a>>>0>=d>>>0){break _}l=0;n=e&7;if(n){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((n|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break _}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==65536}d=k}$:{if(!d|(H[g+20>>2]?0:m)){break $}d=0;i=ca-16|0;ca=i;aa:{ba:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0<f>>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break aa}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break ba}if(!gb(1,i+8|0,c)){break aa}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}r=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>r>>>0|b>>>0<k>>>0){break aa}e=e+k|0;b=a+f|0;e=b>>>0<a>>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break aa}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ca:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ca}da:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break aa}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ca;case 1:if(a>>>0<3){break aa}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ca;default:break da}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+262144;d=a>>>0<66846720}ca=i+16|0;if(!d){break $}if(!m){o=1;break $}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){ea:{if(a>>>0>262143){break ea}while(1){if((b|0)<=0){break ea}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>16|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[j+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 11:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];fa:{ga:{if(!a){break ga}ha:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0<f>>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break ga}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;i=H[c+20>>2];f=H[c+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[c+16>>2]=f;e=i;H[c+20>>2]=e;break ha}if(!hb(1,j+12|0,c)){break ga}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break ga}b=H[j>>2];a=H[j+4>>2]-b>>2;ia:{if(a>>>0<h>>>0){ya(j,h-a|0);h=H[j+12>>2];break ia}if(a>>>0<=h>>>0){break ia}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break fa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break fa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;ja:{ka:{la:{ma:{t=p&3;switch(t|0){case 0:break ka;case 3:break ma;default:break la}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break fa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ja}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break ga}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0<h>>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;na:{if(b>>>0<=1048575){ya(a,262144-(b>>>2|0)|0);break na}if((b|0)==1048576){break na}H[j+20>>2]=d- -1048576}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;oa:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break oa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break ga}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>262144){break ga}pa:{if(a>>>0>=d>>>0){break pa}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break pa}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==262144}d=k}qa:{if(!d|(H[g+20>>2]?0:m)){break qa}d=0;j=ca-16|0;ca=j;ra:{sa:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;i=H[c+20>>2];k=H[c+16>>2];f=k+8|0;i=f>>>0<8?i+1|0:i;e=i;if(b>>>0<f>>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break ra}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break sa}if(!gb(1,j+8|0,c)){break ra}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0<k>>>0){break ra}e=e+k|0;b=a+f|0;e=b>>>0<a>>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break ra}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ta:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ta}ua:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break ra}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ta;case 1:if(a>>>0<3){break ra}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ta;default:break ua}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a- -1048576;d=a>>>0<267386880}ca=j+16|0;if(!d){break qa}if(!m){o=1;break qa}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){va:{if(a>>>0>1048575){break va}while(1){if((b|0)<=0){break va}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>18|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 12:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];wa:{xa:{if(!a){break xa}ya:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];i=H[c+20>>2];a=H[c+16>>2];f=a+4|0;i=f>>>0<4?i+1|0:i;if(d>>>0<f>>>0&(b|0)<=(i|0)|(b|0)<(i|0)){break xa}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break ya}if(!hb(1,j+12|0,c)){break xa}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0<f>>>0)+e|0)|0;if(d>>>0<h>>>6>>>0&(a|0)<=0|(a|0)<0){break xa}b=H[j>>2];a=H[j+4>>2]-b>>2;za:{if(a>>>0<h>>>0){ya(j,h-a|0);h=H[j+12>>2];break za}if(a>>>0<=h>>>0){break za}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break wa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break wa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;Aa:{Ba:{Ca:{Da:{t=p&3;switch(t|0){case 0:break Ba;case 3:break Da;default:break Ca}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break wa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break Aa}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break xa}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0<h>>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;Ea:{if(b>>>0<=2097151){ya(a,524288-(b>>>2|0)|0);break Ea}if((b|0)==2097152){break Ea}H[j+20>>2]=d+2097152}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;Fa:{if(f>>>0<h>>>0){ob(d,h-f|0);b=H[d>>2];break Fa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break xa}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>524288){break xa}Ga:{if(a>>>0>=d>>>0){break Ga}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break Ga}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==524288}d=k}Ha:{if(!d|(H[g+20>>2]?0:m)){break Ha}d=0;i=ca-16|0;ca=i;Ia:{Ja:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0<f>>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ia}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break Ja}if(!gb(1,i+8|0,c)){break Ia}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}j=b-f|0;b=h-((b>>>0<f>>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0<k>>>0){break Ia}e=e+k|0;b=a+f|0;e=b>>>0<a>>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break Ia}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];Ka:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break Ka}La:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break Ia}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break Ka;case 1:if(a>>>0<3){break Ia}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break Ka;default:break La}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+2097152;d=a>>>0<534773760}ca=i+16|0;if(!d){break Ha}if(!m){o=1;break Ha}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){Ma:{if(a>>>0>2097151){break Ma}while(1){if((b|0)<=0){break Ma}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>19|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 17:b=Le(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=ca+-64|0;ca=b;H[b+56>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;Na:{if(!Ne(b+8|0,c)|(H[b+20>>2]?0:a)){break Na}if(!Me(b+8|0,c)){break Na}if(!a){f=1;break Na}e=H[b+52>>2];c=H[b+56>>2];k=H[b+36>>2];i=H[b+48>>2];g=H[b+24>>2];while(1){Oa:{if(c>>>0>16383){break Oa}while(1){if((e|0)<=0){break Oa}e=e-1|0;H[b+52>>2]=e;c=I[e+i|0]|c<<8;H[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;m=H[g+(f<<2)>>2];r=k+(m<<3)|0;c=(N(H[r>>2],c>>>12|0)+f|0)-H[r+4>>2]|0;H[b+56>>2]=c;H[(o<<2)+d>>2]=m;f=1;o=o+1|0;if((o|0)!=(a|0)){continue}break}}a=H[b+36>>2];if(a){H[b+40>>2]=a;oa(a)}a=H[b+24>>2];if(a){H[b+28>>2]=a;oa(a)}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}ca=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Le(a,c,d)}f=b}return f}function gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0;s=ca+-64|0;ca=s;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){d=H[c>>2];oa(c);c=d;if(c){continue}break}}c=0;H[a+144>>2]=0;d=H[a+140>>2];a:{if(!d){break a}if(d>>>0>=4){g=d&-4;while(1){e=c<<2;H[e+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(e|4)>>2]=0;H[H[a+136>>2]+(e|8)>>2]=0;H[H[a+136>>2]+(e|12)>>2]=0;c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}b=d&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;u=u+1|0;if((b|0)!=(u|0)){continue}break}}H[a+148>>2]=0}b:{c:{d:{c=H[a+4>>2];u=I[c+36|0];b=u<<8|I[c+37|0];if(b>>>0<=513){i=H[c+32>>2];e:{if(b>>>0<=511){d=H[i+20>>2];e=H[i+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;g=b;f=K[i+8>>2]<b>>>0;b=H[i+12>>2];if(f&(b|0)<=(d|0)|(b|0)<(d|0)){break d}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=g;H[i+20>>2]=d;break e}if(!Ea(1,s,i)){break d}c=H[a+4>>2];u=I[c+36|0];b=H[s>>2]}H[a+132>>2]=b}g=H[c+32>>2];f:{g:{h:{if((u&255)>>>0<=1){u=0;d=H[g+20>>2];e=H[g+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;i=H[g+12>>2];if(K[g+8>>2]<b>>>0&(i|0)<=(d|0)|(d|0)>(i|0)){break c}e=e+H[g>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[s+60>>2]=e;H[g+16>>2]=b;H[g+20>>2]=d;H[a+156>>2]=e;n=a+156|0;break h}u=0;if(!Ea(1,s+60|0,g)){break c}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[s+60>>2];n=a+156|0;if(b>>>0>1){break g}}e=H[c+32>>2];i=H[e+8>>2];g=H[e+12>>2];d=H[e+20>>2];b=H[e+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;if(c>>>0>i>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break c}b=b+H[e>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[s+56>>2]=b;H[e+16>>2]=c;H[e+20>>2]=d;break f}if(!Ea(1,s+56|0,H[c+32>>2])){break c}b=H[s+56>>2]}if(b>>>0>1431655765){break c}c=H[n>>2];d=N(b,3);if(c>>>0>d>>>0){break c}e=d>>>1|0;d=c>>31;g=Rj(c-1|0,d-!c|0,c,d);c=da;d=c>>>1|0;c=(c&1)<<31|g>>>1;if(!d&c>>>0<e>>>0){break c}f=H[a+4>>2];g=H[f+32>>2];c=g;e=H[c+8>>2];i=H[c+16>>2];j=H[c+12>>2];d=H[c+20>>2];c=d;if((j|0)<=(c|0)&e>>>0<=i>>>0|(c|0)>(j|0)){break c}n=H[g>>2];o=I[n+i|0];h=i+1|0;c=h?c:c+1|0;H[g+16>>2]=h;H[g+20>>2]=c;i:{if(I[f+36|0]<=1){f=e;c=j;e=i+5|0;d=e>>>0<5?d+1|0:d;if((c|0)<=(d|0)&e>>>0>f>>>0|(c|0)<(d|0)){break c}c=h+n|0;n=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[s+52>>2]=n;H[g+16>>2]=e;H[g+20>>2]=d;break i}if(!Ea(1,s+52|0,g)){break c}n=H[s+52>>2]}if(b>>>0<n>>>0|((n>>>0)/3|0)+n>>>0<b>>>0){break c}c=H[a+4>>2];i=H[c+32>>2];j:{if(I[c+36|0]<=1){c=H[i+20>>2];e=H[i+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;g=d;f=K[i+8>>2]<d>>>0;d=H[i+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=e+H[i>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[s+48>>2]=d;H[i+16>>2]=g;H[i+20>>2]=c;break j}if(!Ea(1,s+48|0,i)){break c}d=H[s+48>>2]}if(d>>>0>n>>>0){break c}H[a+28>>2]=H[a+24>>2];e=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=e;if(c){cb(c);if(!H[a+8>>2]){break c}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,b);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,b);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];B=a+216|0;ed(B);dd(B,o);if(!Lc(H[a+8>>2],b,H[a+156>>2]+d|0)){break c}c=H[a+156>>2];F[s|0]=1;Oa(a+120|0,c+d|0,s);c=H[a+4>>2];b=J[c+36>>1];b=(b<<8|b>>>8)&65535;k:{if(b>>>0<=513){i=H[c+32>>2];l:{if(b>>>0<=511){c=H[i+20>>2];e=H[i+16>>2];b=e+4|0;c=b>>>0<4?c+1|0:c;g=b;f=K[i+8>>2]<b>>>0;b=H[i+12>>2];if(f&(b|0)<=(c|0)|(c|0)>(b|0)){break c}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=g;H[i+20>>2]=c;break l}if(!Ea(1,s+44|0,i)){break c}b=H[s+44>>2]}if(!b){break c}c=H[H[a+4>>2]+32>>2];e=H[c+8>>2];g=H[c+16>>2];i=e-g|0;c=H[c+12>>2]-(H[c+20>>2]+(e>>>0<g>>>0)|0)|0;if((c|0)<=0&b>>>0>i>>>0|(c|0)<0){break c}c=Ha(s);e=H[H[a+4>>2]+32>>2];g=H[e+16>>2];i=(g+H[e>>2]|0)+b|0;g=H[e+8>>2]-g|0;G[c+38>>1]=J[e+38>>1];H[c>>2]=i;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=g-b;H[c+12>>2]=0;C=Ib(a,c);if((C|0)==-1){break c}M=C>>31;break k}C=-1;M=-1;if((Ib(a,H[c+32>>2])|0)==-1){break c}}e=a+232|0;Ee(e,a);H[a+372>>2]=o;H[a+384>>2]=H[a+156>>2]+d;O=Ha(s);g=O;b=0;j=ca-16|0;ca=j;m:{n:{c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+4>>2];H[e+40>>2]=H[e>>2];H[e+44>>2]=c;c=H[e+36>>2];H[e+72>>2]=H[e+32>>2];H[e+76>>2]=c;d=H[e+28>>2];c=e- -64|0;H[c>>2]=H[e+24>>2];H[c+4>>2]=d;c=H[e+20>>2];H[e+56>>2]=H[e+16>>2];H[e+60>>2]=c;c=H[e+12>>2];H[e+48>>2]=H[e+8>>2];H[e+52>>2]=c;if(!Db(e+40|0,1,j+8|0)){break n}c=H[e+44>>2];H[e>>2]=H[e+40>>2];H[e+4>>2]=c;c=H[e+76>>2];H[e+32>>2]=H[e+72>>2];H[e+36>>2]=c;c=H[e+68>>2];H[e+24>>2]=H[e+64>>2];H[e+28>>2]=c;c=H[e+60>>2];h=c;d=H[e+56>>2];H[e+16>>2]=d;H[e+20>>2]=c;i=H[e+52>>2];f=i;c=H[e+48>>2];H[e+8>>2]=c;H[e+12>>2]=f;o=c-d|0;k=H[j+12>>2];c=f-((c>>>0<d>>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(c|0)&o>>>0<i>>>0|c>>>0<k>>>0){break n}c=h+k|0;f=d;d=d+i|0;c=f>>>0>d>>>0?c+1|0:c;H[e+16>>2]=d;H[e+20>>2]=c}o:{if(J[e+38>>1]<=513){c=H[e+4>>2];H[e+96>>2]=H[e>>2];H[e+100>>2]=c;c=H[e+36>>2];H[e+128>>2]=H[e+32>>2];H[e+132>>2]=c;c=H[e+28>>2];H[e+120>>2]=H[e+24>>2];H[e+124>>2]=c;c=H[e+20>>2];H[e+112>>2]=H[e+16>>2];H[e+116>>2]=c;c=H[e+12>>2];H[e+104>>2]=H[e+8>>2];H[e+108>>2]=c;if(!Db(e+96|0,1,j+8|0)){break n}c=H[e+100>>2];H[e>>2]=H[e+96>>2];H[e+4>>2]=c;c=H[e+132>>2];H[e+32>>2]=H[e+128>>2];H[e+36>>2]=c;c=H[e+124>>2];H[e+24>>2]=H[e+120>>2];H[e+28>>2]=c;d=H[e+116>>2];h=d;c=H[e+112>>2];H[e+16>>2]=c;H[e+20>>2]=d;i=H[e+108>>2];f=i;d=H[e+104>>2];H[e+8>>2]=d;H[e+12>>2]=f;o=d-c|0;k=H[j+12>>2];d=f-((c>>>0>d>>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(d|0)&o>>>0<i>>>0|d>>>0<k>>>0){break n}d=h+k|0;f=c;c=c+i|0;d=f>>>0>c>>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;break o}if(!ta(e+80|0,e)){break m}}if(!Fe(e)){break m}c=H[e+4>>2];H[g>>2]=H[e>>2];H[g+4>>2]=c;c=H[e+36>>2];H[g+32>>2]=H[e+32>>2];H[g+36>>2]=c;c=H[e+28>>2];H[g+24>>2]=H[e+24>>2];H[g+28>>2]=c;c=H[e+20>>2];H[g+16>>2]=H[e+16>>2];H[g+20>>2]=c;c=H[e+12>>2];H[g+8>>2]=H[e+8>>2];H[g+12>>2]=c;c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];p:{if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+144>>2];q:{if(I[(ea[H[H[c>>2]+32>>2]](c)|0)+36|0]<=1){c=H[g+20>>2];i=H[g+16>>2];d=i+4|0;c=d>>>0<4?c+1|0:c;h=d;f=K[g+8>>2]<d>>>0;d=H[g+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break m}d=i+H[g>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+16>>2]=h;H[g+20>>2]=c;break q}if(!Ea(1,j+8|0,g)){break m}d=H[j+8>>2]}c=H[e+152>>2];if(d>>>0>=c>>>0){break m}d=H[g+20>>2];h=H[g+12>>2];i=H[g+16>>2];if((d|0)>=(h|0)&i>>>0>=K[g+8>>2]|(d|0)>(h|0)){break m}h=I[i+H[g>>2]|0];i=i+1|0;d=i?d:d+1|0;H[g+16>>2]=i;H[g+20>>2]=d;if(h){break m}H[e+176>>2]=2;H[e+180>>2]=7;break p}H[e+176>>2]=2;H[e+180>>2]=7;c=H[e+152>>2]}if((c|0)<0){break m}H[j+8>>2]=0;b=2;h=H[e+156>>2];i=H[e+160>>2]-h>>2;r:{if(i>>>0<c>>>0){Pa(e+156|0,c-i|0,j+8|0);b=H[e+176>>2];d=H[e+180>>2];break r}d=7;if(c>>>0>=i>>>0){break r}H[e+160>>2]=h+(c<<2)}i=e+184|0;b=(d-b|0)+1|0;c=H[e+188>>2];h=H[e+184>>2];d=(c-h|0)/12|0;s:{if(b>>>0>d>>>0){o=0;d=b-d|0;f=H[i+8>>2];c=H[i+4>>2];t:{if(d>>>0<=(f-c|0)/12>>>0){if(d){b=c;c=N(d,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;c=ra(b,0,c)+c|0}H[i+4>>2]=c;break t}u:{v:{w:{h=H[i>>2];k=(c-h|0)/12|0;b=k+d|0;if(b>>>0<357913942){f=(f-h|0)/12|0;l=f<<1;f=f>>>0>=178956970?357913941:b>>>0<l>>>0?l:b;if(f){if(f>>>0>=357913942){break w}o=pa(N(f,12))}b=N(k,12)+o|0;d=N(d,12)-12|0;k=(d-((d>>>0)%12|0)|0)+12|0;d=ra(b,0,k);k=d+k|0;f=N(f,12)+o|0;if((c|0)==(h|0)){break v}while(1){b=b-12|0;c=c-12|0;H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if((c|0)!=(h|0)){continue}break}H[i+8>>2]=f;d=H[i+4>>2];H[i+4>>2]=k;c=H[i>>2];H[i>>2]=b;if((c|0)==(d|0)){break u}while(1){b=d-12|0;h=H[b>>2];if(h){H[d-8>>2]=h;oa(h)}d=b;if((b|0)!=(c|0)){continue}break}break u}break b}wa();v()}H[i+8>>2]=f;H[i+4>>2]=k;H[i>>2]=d}if(c){oa(c)}}d=H[e+188>>2];break s}if(b>>>0>=d>>>0){d=c;break s}d=h+N(b,12)|0;if((d|0)!=(c|0)){while(1){b=c-12|0;h=H[b>>2];if(h){H[c-8>>2]=h;oa(h)}c=b;if((d|0)!=(b|0)){continue}break}}H[e+188>>2]=d}f=e+196|0;b=H[e+184>>2];c=(d-b|0)/12|0;o=H[e+196>>2];h=H[e+200>>2]-o>>2;x:{if(c>>>0>h>>>0){ya(f,c-h|0);b=H[e+184>>2];d=H[e+188>>2];break x}if(c>>>0>=h>>>0){break x}H[e+200>>2]=o+(c<<2)}if((b|0)==(d|0)){b=1;break m}c=0;while(1){if(!Ea(1,j+8|0,g)){break n}b=H[e+148>>2];d=(H[b+4>>2]-H[b>>2]>>2>>>0)/3|0;b=H[j+8>>2];if(d>>>0<b>>>0){break n}if(b){k=N(c,12);h=k+H[i>>2]|0;d=H[h>>2];o=H[h+4>>2]-d>>2;y:{if(o>>>0<b>>>0){ya(h,b-o|0);d=H[k+H[i>>2]>>2];break y}if(b>>>0>=o>>>0){break y}H[h+4>>2]=(b<<2)+d}kd(b,1,g,d);H[H[f>>2]+(c<<2)>>2]=b}b=1;c=c+1|0;if(c>>>0<(H[e+188>>2]-H[e+184>>2]|0)/12>>>0){continue}break}break m}b=0}ca=j+16|0;z:{if(!b){break z}d=0;c=0;g=0;i=0;o=0;l=ca-96|0;ca=l;H[l+72>>2]=0;H[l+64>>2]=0;H[l+68>>2]=0;H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+56>>2]=1065353216;H[l+32>>2]=0;H[l+24>>2]=0;H[l+28>>2]=0;j=a;L=H[a+124>>2];A:{B:{C:{D:{E:{if((n|0)<=0){break E}r=j+232|0;P=H[j+216>>2]!=H[j+220>>2];D=1;while(1){h=i;i=i+1|0;a=H[r+172>>2];F:{G:{if((a|0)!=-1){b=H[r+196>>2]+(a<<2)|0;f=H[b>>2];a=f-1|0;H[b>>2]=a;b=9;if((f|0)<=0){break F}a=H[H[H[r+184>>2]+N(H[r+172>>2],12)>>2]+(a<<2)>>2];if(a>>>0>4){break F}b=H[(a<<2)+12144>>2];break G}b=7;a=H[r+144>>2];a=J[(ea[H[H[a>>2]+32>>2]](a)|0)+36>>1];if(((a<<8|a>>>8)&65535)>>>0>513|!I[r+76|0]){break G}b=0;m=H[r- -64>>2];k=H[r+72>>2];a=m+(k>>>3|0)|0;p=H[r+68>>2];if(a>>>0>=p>>>0){break G}f=I[a|0];a=k+1|0;H[r+72>>2]=a;f=f>>>(k&7)&1;if(!f){break G}q=a>>>3|0;b=m+q|0;H:{if(b>>>0>=p>>>0){b=a;a=0;break H}t=I[b|0];b=k+2|0;H[r+72>>2]=b;q=b>>>3|0;a=t>>>(a&7)&1}k=m+q|0;if(k>>>0<p>>>0){k=I[k|0];H[r+72>>2]=b+1;b=k>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|f}H[r+168>>2]=b}a=b;I:{J:{if(!a){if((c|0)==(g|0)){b=-1;break D}d=-1;m=H[j+8>>2];t=H[m+24>>2];D=c-4|0;f=H[D>>2];a=-1;K:{if((f|0)==-1){break K}k=f+1|0;k=(k>>>0)%3|0?k:f-2|0;a=-1;if((k|0)==-1){break K}a=H[H[m>>2]+(k<<2)>>2]}b=H[t+(a<<2)>>2];if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}if((d|0)==(f|0)){b=-1;break D}if((f|0)!=-1){b=-1;if(H[H[m+12>>2]+(f<<2)>>2]!=-1){break D}}k=H[m+12>>2];if((d|0)!=-1){b=-1;if(H[k+(d<<2)>>2]!=-1){break D}}p=N(h,3);b=p+1|0;H[k+(f<<2)>>2]=b;w=b<<2;H[w+k>>2]=f;q=p+2|0;H[k+(d<<2)>>2]=q;y=q<<2;H[y+k>>2]=d;k=-1;h=-1;L:{if((f|0)==-1){break L}M:{if((f>>>0)%3|0){b=f-1|0;break M}b=f+2|0;h=-1;if((b|0)==-1){break L}}h=H[H[m>>2]+(b<<2)>>2]}N:{if((d|0)==-1){break N}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)==-1){break N}k=H[H[m>>2]+(b<<2)>>2]}b=-1;if((a|0)==(h|0)|(a|0)==(k|0)){break D}b=H[m>>2];H[b+(p<<2)>>2]=a;H[b+w>>2]=k;H[b+y>>2]=h;if((h|0)!=-1){H[t+(h<<2)>>2]=q}b=H[j+120>>2]+(a>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(a)&d,H[Q>>2]=R;H[D>>2]=p;k=H[c-4>>2];break J}b=-1;O:{P:{Q:{R:{S:{T:{U:{V:{W:{switch(a-1|0){case 2:case 4:if((c|0)==(g|0)){break D}t=c-4|0;d=H[t>>2];f=H[j+8>>2];m=H[f+12>>2];if((d|0)!=-1&H[m+(d<<2)>>2]!=-1){break D}k=N(h,3);p=(a|0)==5;q=k+(p?2:1)|0;w=q<<2;H[w+m>>2]=d;H[m+(d<<2)>>2]=q;Ka(f+24|0,11424);a=H[j+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(L|0)){break D}a=H[a>>2];y=a+w|0;b=H[f+28>>2];f=H[f+24>>2];w=(b-f>>2)-1|0;H[y>>2]=w;if((b|0)!=(f|0)){H[m+(w<<2)>>2]=q}b=p?k:k+2|0;q=a+(k+p<<2)|0;X:{if((d|0)==-1){H[a+(b<<2)>>2]=-1;b=-1;break X}Y:{Z:{_:{if((d>>>0)%3|0){f=d-1|0;break _}f=d+2|0;if((f|0)==-1){break Z}}f=H[a+(f<<2)>>2];H[a+(b<<2)>>2]=f;if((f|0)==-1){break Y}H[m+(f<<2)>>2]=b;break Y}H[a+(b<<2)>>2]=-1}f=d+1|0;d=(f>>>0)%3|0?f:d-2|0;b=-1;if((d|0)==-1){break X}b=H[a+(d<<2)>>2]}H[q>>2]=b;H[t>>2]=k;break V;case 0:if((c|0)==(d|0)){break D}a=c-4|0;m=H[a>>2];H[l+68>>2]=a;p=H[l+44>>2];$:{if(!p){c=a;break $}f=H[l+40>>2];q=Uj(p)>>>0>1;b=h&p+2147483647;aa:{if(!q){break aa}b=h;if(b>>>0<p>>>0){break aa}b=(h>>>0)%(p>>>0)|0}k=b;b=H[f+(k<<2)>>2];if(!b){c=a;break $}b=H[b>>2];if(!b){c=a;break $}ba:{if(!q){f=p-1|0;while(1){p=H[b+4>>2];ca:{if((p|0)!=(h|0)){if((k|0)==(f&p)){break ca}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}while(1){f=H[b+4>>2];da:{if((f|0)!=(h|0)){if(f>>>0>=p>>>0){f=(f>>>0)%(p>>>0)|0}if((f|0)==(k|0)){break da}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}if((a|0)!=(x|0)){H[a>>2]=H[b+12>>2];H[l+68>>2]=c;break $}a=x-d|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=a>>>1|0;f=a>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break B}a=pa(f<<2)}else{a=0}g=a+(g<<2)|0;H[g>>2]=H[b+12>>2];c=g+4|0;if((d|0)!=(x|0)){while(1){g=g-4|0;x=x-4|0;H[g>>2]=H[x>>2];if((d|0)!=(x|0)){continue}break}}x=a+(f<<2)|0;H[l+72>>2]=x;H[l+68>>2]=c;H[l+64>>2]=g;if(d){oa(d)}}if((c|0)==(g|0)){break P}w=c-4|0;a=H[w>>2];if((a|0)==(m|0)){break P}b=(a|0)==-1;p=H[j+8>>2];if(!b&H[H[p+12>>2]+(a<<2)>>2]!=-1){break P}q=H[p+12>>2];if((m|0)!=-1&H[q+(m<<2)>>2]!=-1){break P}k=N(h,3);t=k+2|0;H[q+(a<<2)>>2]=t;h=t<<2;H[h+q>>2]=a;d=k+1|0;H[q+(m<<2)>>2]=d;y=d<<2;H[y+q>>2]=m;if(b){break T}if((a>>>0)%3|0){f=a-1|0;break S}f=a+2|0;if((f|0)!=-1){break S}d=H[p>>2];f=-1;break R;case 6:break W;default:break D}}k=H[j+8>>2];Ka(k+24|0,11424);f=H[j+8>>2];a=N(h,3);m=H[k+28>>2];p=H[k+24>>2];q=m-p|0;k=q>>2;t=k-1|0;H[H[f>>2]+(a<<2)>>2]=t;Ka(f+24|0,11424);w=a+1|0;H[H[f>>2]+(w<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;f=H[j+8>>2];Ka(f+24|0,11424);y=a+2|0;H[H[f>>2]+(y<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;E=H[j+8>>2];f=H[E+24>>2];if(H[E+28>>2]-f>>2>(L|0)){break D}ea:{fa:{if((m|0)!=(p|0)){H[f+(t<<2)>>2]=a;b=0;if((q|0)==-4){break fa}}H[f+(k<<2)>>2]=w;b=k+1|0;if((b|0)==-1){break ea}}H[f+(b<<2)>>2]=y}if((c|0)!=(x|0)){H[c>>2]=a;c=c+4|0;H[l+68>>2]=c;break U}b=c-d|0;k=b>>2;g=k+1|0;if(g>>>0>=1073741824){break b}f=b>>>1|0;b=b>>>0>=2147483644?1073741823:g>>>0<f>>>0?f:g;if(b){if(b>>>0>=1073741824){break B}f=pa(b<<2)}else{f=0}g=f+(k<<2)|0;H[g>>2]=a;x=f+(b<<2)|0;a=g+4|0;if((c|0)!=(d|0)){while(1){g=g-4|0;c=c-4|0;H[g>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[l+72>>2]=x;H[l+68>>2]=a;H[l+64>>2]=g;if(d){oa(d)}c=a}d=g}Ce(r,H[c-4>>2]);a=H[j+40>>2];if((a|0)==H[j+36>>2]){break I}b=a-12|0;f=H[b+4>>2];h=(h^-1)+n|0;if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}k=I[a-4|0];f=H[b>>2];H[j+40>>2]=b;if((f|0)<0){break P}m=c-4|0;a=H[m>>2];H[l+20>>2]=(f^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);f=H[l>>2];ga:{if(k&1){b=-1;if((a|0)==-1){break ga}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ga}b=-1;if((a|0)==-1){break ga}b=a-1|0;if((a>>>0)%3|0){break ga}b=a+2|0}H[f+12>>2]=b;b=H[j+40>>2];if((b|0)==H[j+36>>2]){break I}while(1){a=b-12|0;f=H[a+4>>2];if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}f=I[b-4|0];b=H[a>>2];H[j+40>>2]=a;if((b|0)<0){break P}a=H[m>>2];H[l+20>>2]=(b^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);k=H[l>>2];ha:{if(f&1){b=-1;if((a|0)==-1){break ha}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ha}b=-1;if((a|0)==-1){break ha}b=a-1|0;if((a>>>0)%3|0){break ha}b=a+2|0}H[k+12>>2]=b;b=H[j+40>>2];if((b|0)!=H[j+36>>2]){continue}break}break I}f=-1;d=H[p>>2];H[d+(k<<2)>>2]=-1;b=-1;break Q}d=H[p>>2];f=H[d+(f<<2)>>2]}H[(k<<2)+d>>2]=f;E=a+1|0;a=(E>>>0)%3|0?E:a-2|0;b=-1;if((a|0)==-1){break Q}b=H[(a<<2)+d>>2]}H[d+y>>2]=b;ia:{if((m|0)==-1){H[d+h>>2]=-1;t=-1;a=-1;break ia}ja:{ka:{la:{if((m>>>0)%3|0){b=m-1|0;break la}b=m+2|0;if((b|0)==-1){break ka}}a=H[(b<<2)+d>>2];H[d+h>>2]=a;if((a|0)==-1){break ja}H[H[p+24>>2]+(a<<2)>>2]=t;break ja}H[d+h>>2]=-1}t=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ia}t=H[(b<<2)+d>>2];a=b}b=H[j+388>>2];h=f<<2;m=b+h|0;y=b;b=t<<2;H[m>>2]=H[m>>2]+H[y+b>>2];m=b;b=H[p+24>>2];m=m+b|0;if((f|0)!=-1){H[b+h>>2]=H[m>>2]}b=a;while(1){if((b|0)==-1){break O}H[(b<<2)+d>>2]=f;p=b+1|0;b=(p>>>0)%3|0?p:b-2|0;h=-1;ma:{if((b|0)==-1){break ma}b=H[q+(b<<2)>>2];h=-1;if((b|0)==-1){break ma}h=b+1|0;h=(h>>>0)%3|0?h:b-2|0}b=h;if((a|0)!=(b|0)){continue}break}}b=-1;if(!D){break E}break D}H[m>>2]=-1;na:{if(P){break na}if((z|0)!=(A|0)){H[A>>2]=t;A=A+4|0;H[l+28>>2]=A;break na}a=z-o|0;h=a>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=a>>>1|0;d=a>>>0>=2147483644?1073741823:b>>>0<d>>>0?d:b;if(d){if(d>>>0>=1073741824){break B}a=pa(d<<2)}else{a=0}b=a+(h<<2)|0;H[b>>2]=t;A=b+4|0;if((o|0)!=(z|0)){while(1){b=b-4|0;z=z-4|0;H[b>>2]=H[z>>2];if((o|0)!=(z|0)){continue}break}}z=a+(d<<2)|0;H[l+32>>2]=z;H[l+28>>2]=A;H[l+24>>2]=b;if(o){oa(o)}o=b}H[w>>2]=k}Ce(r,k);d=g}D=(i|0)<(n|0);if((i|0)!=(n|0)){continue}break}i=n}b=-1;d=H[j+8>>2];if(H[d+28>>2]-H[d+24>>2]>>2>(L|0)){break D}if((c|0)!=(g|0)){x=j+72|0;h=j+60|0;p=j+312|0;while(1){c=c-4|0;o=H[c>>2];H[l+68>>2]=c;oa:{pa:{qa:{if(J[j+270>>1]<=513){if(!I[j+364|0]){break pa}a=H[j+360>>2];b=H[j+352>>2]+(a>>>3|0)|0;if(b>>>0>=K[j+356>>2]){break qa}b=I[b|0];H[j+360>>2]=a+1;if(!(b>>>(a&7)&1)){break qa}break pa}if(Ba(p)){break pa}}b=H[j+64>>2];a=H[j+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break b}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}pb(h,a);b=H[j+64>>2]}H[j+64>>2]=b+1;a=H[j+60>>2]+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;b=H[j+76>>2];if((b|0)!=H[j+80>>2]){H[b>>2]=o;H[j+76>>2]=b+4;break oa}d=H[x>>2];a=b-d|0;k=a>>2;f=k+1|0;if(f>>>0<1073741824){n=a>>>1|0;n=a>>>0>=2147483644?1073741823:f>>>0<n>>>0?n:f;if(n){if(n>>>0>=1073741824){break B}a=pa(n<<2)}else{a=0}f=a+(k<<2)|0;H[f>>2]=o;o=f+4|0;if((b|0)!=(d|0)){while(1){f=f-4|0;b=b-4|0;H[f>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[j+80>>2]=a+(n<<2);H[j+76>>2]=o;H[j+72>>2]=f;if(!d){break oa}oa(d);break oa}break b}m=H[j+8>>2];r=H[m>>2];if(((H[m+4>>2]-r>>2>>>0)/3|0)<=(i|0)){b=-1;break D}d=-1;q=H[m+24>>2];n=-1;ra:{if((o|0)==-1){break ra}g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;n=-1;if((g|0)==-1){break ra}n=H[r+(g<<2)>>2]}a=H[q+(n<<2)>>2];sa:{if((a|0)==-1){k=1;f=-1;break sa}k=1;f=-1;b=a+1|0;a=(b>>>0)%3|0?b:a-2|0;if((a|0)==-1){break sa}k=0;d=a;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){f=H[r+(b<<2)>>2]}}b=-1;g=-1;a=H[q+(f<<2)>>2];if((a|0)!=-1){g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}if((d|0)==(o|0)|(g|0)==(o|0)|((o|0)!=-1&H[H[m+12>>2]+(o<<2)>>2]!=-1|(d|0)==(g|0))){break D}if(!k&H[H[m+12>>2]+(d<<2)>>2]!=-1){break D}k=-1;a=H[m+12>>2];m=-1;ta:{if((g|0)==-1){break ta}if(H[a+(g<<2)>>2]!=-1){break D}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;m=-1;if((b|0)==-1){break ta}m=H[r+(b<<2)>>2]}b=N(i,3);H[l>>2]=b;H[a+(b<<2)>>2]=o;H[a+(o<<2)>>2]=b;b=H[l>>2]+1|0;H[a+(b<<2)>>2]=d;H[a+(d<<2)>>2]=b;b=H[l>>2]+2|0;H[a+(b<<2)>>2]=g;H[a+(g<<2)>>2]=b;a=H[l>>2];H[r+(a<<2)>>2]=f;b=a+1|0;d=r+(b<<2)|0;H[d>>2]=m;g=a+2|0;o=r+(g<<2)|0;H[o>>2]=n;a=H[j+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;r=H[n>>2];Q=n,R=Vj(f)&r,H[Q>>2]=R;k=(b|0)!=-1?H[d>>2]:k;b=a+(k>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(k)&d,H[Q>>2]=R;b=-1;b=(g|0)!=-1?H[o>>2]:b;a=a+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;F[l+88|0]=1;_c(h,l+88|0);Ka(x,l);i=i+1|0;g=H[l+64>>2]}if((c|0)!=(g|0)){continue}break}d=H[j+8>>2]}b=-1;if(((H[d+4>>2]-H[d>>2]>>2>>>0)/3|0)!=(i|0)){break D}b=H[d+28>>2]-H[d+24>>2]>>2;i=H[l+24>>2];f=H[l+28>>2];if((i|0)==(f|0)){break C}while(1){a=H[i>>2];h=H[d+24>>2];c=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){while(1){c=b-2|0;b=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){continue}break}}if(a>>>0<=c>>>0){H[l>>2]=d;g=H[g>>2];F[l+12|0]=1;H[l+8>>2]=g;H[l+4>>2]=g;if((g|0)!=-1){while(1){d=H[H[j+8>>2]>>2]+(g<<2)|0;if(H[d>>2]!=(c|0)){b=-1;break D}H[d>>2]=a;uc(l);g=H[l+8>>2];if((g|0)!=-1){continue}break}d=H[j+8>>2]}h=H[d+24>>2];g=h+(c<<2)|0;if((a|0)!=-1){H[h+(a<<2)>>2]=H[g>>2]}H[g>>2]=-1;g=1<<a;h=H[j+120>>2];a=h+(a>>>3&536870908)|0;h=h+(c>>>3&536870908)|0;c=1<<c;if(H[h>>2]&c){g=g|H[a>>2]}else{g=H[a>>2]&(g^-1)}H[a>>2]=g;H[h>>2]=H[h>>2]&(c^-1);b=b-1|0}i=i+4|0;if((f|0)!=(i|0)){continue}break}}i=H[l+24>>2]}if(i){oa(i)}a=H[l+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[l+40>>2];H[l+40>>2]=0;if(a){oa(a)}a=H[l+64>>2];if(a){H[l+68>>2]=a;oa(a)}ca=l+96|0;break A}wa();v()}if((b|0)==-1){break z}a=O;c=H[a+16>>2];d=c+H[a>>2]|0;c=H[a+8>>2]-c|0;a=H[H[j+4>>2]+32>>2];G[a+38>>1]=J[a+38>>1];H[a>>2]=d;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=c;H[a+12>>2]=0;a=H[j+4>>2];c=J[a+36>>1];g=c<<8|c>>>8;if((g&65535)>>>0<=513){a=H[a+32>>2];c=H[a+16>>2];d=M+H[a+20>>2]|0;c=c+C|0;d=c>>>0<C>>>0?d+1|0:d;H[a+16>>2]=c;H[a+20>>2]=d}ua:{if(H[j+216>>2]==H[j+220>>2]){break ua}c=H[j+8>>2];a=H[c>>2];c=H[c+4>>2];va:{if((g&65535)>>>0>=513){if((a|0)==(c|0)){break ua}c=0;break va}if((a|0)==(c|0)){break ua}c=0;while(1){if(cd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}while(1){if(bd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}ad(e);c=H[j+216>>2];if((c|0)!=H[j+220>>2]){n=0;while(1){d=N(n,144);Jc((d+c|0)+4|0,H[j+8>>2]);a=H[B>>2];e=a+d|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((d+H[B>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[B>>2]}if(!Ic((a+d|0)+4|0)){break z}n=n+1|0;c=H[j+216>>2];if(n>>>0<(H[j+220>>2]-c|0)/144>>>0){continue}break}}a=H[j+8>>2];Hb(j+184|0,H[a+28>>2]-H[a+24>>2]>>2);u=H[j+216>>2];if((u|0)!=H[j+220>>2]){c=0;while(1){a=N(c,144)+u|0;d=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[j+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(d|0)?d:a);c=c+1|0;u=H[j+216>>2];if(c>>>0<(H[j+220>>2]-u|0)/144>>>0){continue}break}}u=$c(j,b)}break c}u=0}ca=s- -64|0;return u|0}sa();v()}function ii(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0;u=ca+-64|0;ca=u;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}c=0;H[a+144>>2]=0;k=H[a+140>>2];a:{if(!k){break a}if(k>>>0>=4){b=k&-4;while(1){f=c<<2;H[f+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(f|4)>>2]=0;H[H[a+136>>2]+(f|8)>>2]=0;H[H[a+136>>2]+(f|12)>>2]=0;c=c+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=k&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;w=w+1|0;if((b|0)!=(w|0)){continue}break}}H[a+148>>2]=0}b:{c:{c=H[a+4>>2];w=I[c+36|0];b=w<<8|I[c+37|0];if(b>>>0<=513){d=H[c+32>>2];d:{if(b>>>0<=511){b=H[d+20>>2];e=H[d+16>>2];f=e+4|0;b=f>>>0<4?b+1|0:b;k=H[d+12>>2];if(K[d+8>>2]<f>>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break c}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=b;break d}if(!Ea(1,u,d)){break c}c=H[a+4>>2];w=I[c+36|0];e=H[u>>2]}H[a+132>>2]=e}d=H[c+32>>2];e:{f:{g:{if((w&255)>>>0<=1){w=0;b=H[d+20>>2];f=H[d+16>>2];e=f+4|0;b=e>>>0<4?b+1|0:b;k=H[d+12>>2];if(K[d+8>>2]<e>>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break b}f=f+H[d>>2]|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+60>>2]=f;H[d+16>>2]=e;H[d+20>>2]=b;H[a+156>>2]=f;t=a+156|0;break g}w=0;if(!Ea(1,u+60|0,d)){break b}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[u+60>>2];t=a+156|0;if(b>>>0>1){break f}}d=H[c+32>>2];f=H[d+8>>2];k=H[d+12>>2];c=H[d+20>>2];e=H[d+16>>2];b=e+4|0;c=b>>>0<4?c+1|0:c;if(b>>>0>f>>>0&(c|0)>=(k|0)|(c|0)>(k|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[u+56>>2]=e;H[d+16>>2]=b;H[d+20>>2]=c;break e}if(!Ea(1,u+56|0,H[c+32>>2])){break b}e=H[u+56>>2]}if(e>>>0>1431655765){break b}b=H[t>>2];c=N(e,3);if(b>>>0>c>>>0){break b}f=c>>>1|0;c=b>>31;c=Rj(b-1|0,c-!b|0,b,c);k=da;b=k>>>1|0;c=(k&1)<<31|c>>>1;if(!b&c>>>0<f>>>0){break b}E=H[a+4>>2];x=H[E+32>>2];c=H[x+8>>2];d=H[x+12>>2];b=H[x+20>>2];g=H[x+16>>2];if((d|0)<=(b|0)&g>>>0>=c>>>0|(b|0)>(d|0)){break b}j=H[x>>2];l=I[j+g|0];f=x;k=g+1|0;h=k?b:b+1|0;H[f+16>>2]=k;H[f+20>>2]=h;h:{if(I[E+36|0]<=1){f=c;c=b;b=g+5|0;c=b>>>0<5?c+1|0:c;if(b>>>0>f>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}f=k+j|0;t=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+52>>2]=t;H[x+16>>2]=b;H[x+20>>2]=c;break h}if(!Ea(1,u+52|0,x)){break b}t=H[u+52>>2]}if(e>>>0<t>>>0|((t>>>0)/3|0)+t>>>0<e>>>0){break b}c=H[a+4>>2];d=H[c+32>>2];i:{if(I[c+36|0]<=1){c=H[d+20>>2];b=H[d+16>>2];f=b+4|0;c=f>>>0<4?c+1|0:c;k=H[d+12>>2];if(K[d+8>>2]<f>>>0&(k|0)<=(c|0)|(c|0)>(k|0)){break b}b=b+H[d>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[u+48>>2]=b;H[d+16>>2]=f;H[d+20>>2]=c;break i}if(!Ea(1,u+48|0,d)){break b}b=H[u+48>>2]}if(b>>>0>t>>>0){break b}H[a+28>>2]=H[a+24>>2];c=$b(pa(88));f=H[a+8>>2];H[a+8>>2]=c;if(f){cb(f);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];M=a+216|0;ed(M);dd(M,l);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}c=H[a+156>>2];F[u|0]=1;Oa(a+120|0,b+c|0,u);e=H[a+4>>2];c=J[e+36>>1];c=(c<<8|c>>>8)&65535;j:{if(c>>>0<=513){d=H[e+32>>2];k:{if(c>>>0<=511){c=H[d+20>>2];e=H[d+16>>2];f=e+4|0;c=f>>>0<4?c+1|0:c;k=H[d+12>>2];if(K[d+8>>2]<f>>>0&(k|0)<=(c|0)|(c|0)>(k|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=c;break k}if(!Ea(1,u+44|0,d)){break b}e=H[u+44>>2]}if(!e){break b}d=H[H[a+4>>2]+32>>2];k=H[d+8>>2];c=H[d+16>>2];f=k-c|0;c=H[d+12>>2]-(H[d+20>>2]+(c>>>0>k>>>0)|0)|0;if((c|0)<=0&e>>>0>f>>>0|(c|0)<0){break b}h=Ha(u);d=H[H[a+4>>2]+32>>2];c=d;k=H[c+16>>2];f=(k+H[c>>2]|0)+e|0;c=H[c+8>>2]-k|0;G[h+38>>1]=J[d+38>>1];H[h>>2]=f;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=c-e;H[h+12>>2]=0;c=Ib(a,h);if((c|0)==-1){break b}E=c;P=c>>31;break j}E=-1;P=-1;if((Ib(a,H[e+32>>2])|0)==-1){break b}}B=a+232|0;Ee(B,a);H[a+372>>2]=l;H[a+384>>2]=H[a+156>>2]+b;x=Ha(u);h=x;d=0;k=ca-16|0;ca=k;l:{if(!Ge(B,h)){break l}b=H[h+20>>2];e=H[h+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;f=H[h+12>>2];if(K[h+8>>2]<c>>>0&(f|0)<=(b|0)|(b|0)>(f|0)){break l}e=e+H[h>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[h+16>>2]=c;H[h+20>>2]=b;if((e|0)<0){break l}c=e;e=H[B+152>>2];if((c|0)>=(e|0)){break l}H[k+12>>2]=0;c=H[B+156>>2];b=H[B+160>>2]-c>>2;m:{if(b>>>0<e>>>0){Pa(B+156|0,e-b|0,k+12|0);break m}if(b>>>0<=e>>>0){break m}H[B+160>>2]=c+(e<<2)}d=ta(B+168|0,h)}ca=k+16|0;n:{if(!d){break n}d=0;c=0;e=0;k=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;O=H[a+124>>2];o:{p:{q:{r:{s:{t:{if((t|0)<=0){break t}z=h+400|0;Q=h+232|0;C=H[h+216>>2]!=H[h+220>>2];y=1;while(1){f=k;k=f+1|0;u:{v:{w:{x:{y:{if(H[h+420>>2]!=-1){if(Ba(z)){break y}}if(!I[h+308|0]){break x}z:{o=H[h+296>>2];r=H[h+304>>2];a=o+(r>>>3|0)|0;l=H[h+300>>2];if(a>>>0>=l>>>0){break z}b=I[a|0];a=r+1|0;H[h+304>>2]=a;g=b>>>(r&7)&1;if(!g){break z}n=a>>>3|0;b=o+n|0;A:{if(b>>>0>=l>>>0){b=a;a=0;break A}j=I[b|0];b=r+2|0;H[h+304>>2]=b;n=b>>>3|0;a=j>>>(a&7)&1}j=n+o|0;if(j>>>0<l>>>0){j=I[j|0];H[h+304>>2]=b+1;b=j>>>(b&7)<<1&2}else{b=0}p=(a|b)<<1|g;H[h+416>>2]=p;break w}H[h+416>>2]=0;break x}p=H[h+420>>2];H[h+416>>2]=p;if(p){break w}}if((c|0)==(e|0)){b=-1;break s}p=-1;n=H[h+8>>2];o=H[n+24>>2];j=c-4|0;m=H[j>>2];d=-1;B:{if((m|0)==-1){break B}b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;d=-1;if((b|0)==-1){break B}d=H[H[n>>2]+(b<<2)>>2]}b=H[o+(d<<2)>>2];if((b|0)!=-1){a=b+1|0;p=(a>>>0)%3|0?a:b-2|0}if((m|0)==(p|0)){b=-1;break s}if((m|0)!=-1){b=-1;if(H[H[n+12>>2]+(m<<2)>>2]!=-1){break s}}l=H[n+12>>2];if((p|0)!=-1){b=-1;if(H[l+(p<<2)>>2]!=-1){break s}}q=N(f,3);a=q+1|0;H[l+(m<<2)>>2]=a;g=a<<2;H[g+l>>2]=m;r=q+2|0;H[l+(p<<2)>>2]=r;f=r<<2;H[f+l>>2]=p;l=-1;a=-1;C:{if((m|0)==-1){break C}D:{if((m>>>0)%3|0){b=m-1|0;break D}b=m+2|0;a=-1;if((b|0)==-1){break C}}a=H[H[n>>2]+(b<<2)>>2]}E:{if((p|0)==-1){break E}b=p+1|0;b=(b>>>0)%3|0?b:p-2|0;if((b|0)==-1){break E}l=H[H[n>>2]+(b<<2)>>2]}b=-1;if((a|0)==(d|0)|(d|0)==(l|0)){break s}b=H[n>>2];H[b+(q<<2)>>2]=d;H[b+g>>2]=l;H[b+f>>2]=a;if((a|0)!=-1){H[o+(a<<2)>>2]=r}b=H[h+120>>2]+(d>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(d)&a,H[R>>2]=S;H[j>>2]=q;p=H[c-4>>2];break v}b=-1;F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{P:{switch(p-1|0){case 2:case 4:if((c|0)==(e|0)){break s}g=c-4|0;m=H[g>>2];r=H[h+8>>2];d=H[r+12>>2];if((m|0)!=-1&H[d+(m<<2)>>2]!=-1){break s}q=N(f,3);l=(p|0)==5;j=q+(l?2:1)|0;a=j<<2;H[a+d>>2]=m;H[d+(m<<2)>>2]=j;Ka(r+24|0,11424);d=H[h+8>>2];o=H[d+24>>2];if(H[d+28>>2]-o>>2>(O|0)){break s}n=H[d>>2];p=n+a|0;d=H[r+28>>2];b=H[r+24>>2];a=(d-b>>2)-1|0;H[p>>2]=a;if((b|0)!=(d|0)){H[o+(a<<2)>>2]=j}d=l?q:q+2|0;j=n+(l+q<<2)|0;Q:{if((m|0)==-1){H[n+(d<<2)>>2]=-1;b=-1;break Q}R:{S:{T:{if((m>>>0)%3|0){a=m-1|0;break T}a=m+2|0;if((a|0)==-1){break S}}a=H[n+(a<<2)>>2];H[n+(d<<2)>>2]=a;if((a|0)==-1){break R}H[o+(a<<2)>>2]=d;break R}H[n+(d<<2)>>2]=-1}a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;b=-1;if((a|0)==-1){break Q}b=H[n+(a<<2)>>2]}H[j>>2]=b;H[g>>2]=q;break O;case 0:if((c|0)==(d|0)){break s}a=c-4|0;m=H[a>>2];H[i+68>>2]=a;l=H[i+44>>2];U:{if(!l){c=a;break U}o=H[i+40>>2];g=Uj(l)>>>0>1;b=f&l+2147483647;V:{if(!g){break V}b=f;if(b>>>0<l>>>0){break V}b=(f>>>0)%(l>>>0)|0}j=b;b=H[o+(j<<2)>>2];if(!b){c=a;break U}b=H[b>>2];if(!b){c=a;break U}W:{if(!g){l=l-1|0;while(1){g=H[b+4>>2];X:{if((g|0)!=(f|0)){if((j|0)==(g&l)){break X}c=a;break U}if((f|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}while(1){g=H[b+4>>2];Y:{if((g|0)!=(f|0)){if(g>>>0>=l>>>0){g=(g>>>0)%(l>>>0)|0}if((g|0)==(j|0)){break Y}c=a;break U}if((f|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}if((a|0)!=(A|0)){H[a>>2]=H[b+12>>2];H[i+68>>2]=c;break U}g=A-d|0;c=g>>2;e=c+1|0;if(e>>>0>=1073741824){break M}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}e=a+(c<<2)|0;H[e>>2]=H[b+12>>2];c=e+4|0;if((d|0)!=(A|0)){while(1){e=e-4|0;A=A-4|0;H[e>>2]=H[A>>2];if((d|0)!=(A|0)){continue}break}}A=a+(g<<2)|0;H[i+72>>2]=A;H[i+68>>2]=c;H[i+64>>2]=e;if(d){oa(d)}}if((c|0)==(e|0)){break G}j=c-4|0;n=H[j>>2];if((n|0)==(m|0)){break G}d=(n|0)==-1;q=H[h+8>>2];if(!d&H[H[q+12>>2]+(n<<2)>>2]!=-1){break G}r=H[q+12>>2];if((m|0)!=-1&H[r+(m<<2)>>2]!=-1){break G}p=N(f,3);f=p+2|0;H[r+(n<<2)>>2]=f;o=f<<2;H[o+r>>2]=n;a=p+1|0;H[r+(m<<2)>>2]=a;b=a<<2;H[b+r>>2]=m;if(d){break L}if((n>>>0)%3|0){l=n-1|0;break J}l=n+2|0;if((l|0)!=-1){break J}d=H[q>>2];a=-1;break I;case 6:break P;default:break s}}a=H[h+8>>2];Ka(a+24|0,11424);g=H[h+8>>2];p=N(f,3);q=H[a+28>>2];r=H[a+24>>2];o=q-r|0;n=o>>2;l=n-1|0;H[H[g>>2]+(p<<2)>>2]=l;Ka(g+24|0,11424);j=p+1|0;H[H[g>>2]+(j<<2)>>2]=(H[g+28>>2]-H[g+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);g=p+2|0;H[H[a>>2]+(g<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(O|0)){break s}Z:{_:{if((q|0)!=(r|0)){H[m+(l<<2)>>2]=p;b=0;if((o|0)==-4){break _}}H[m+(n<<2)>>2]=j;b=n+1|0;if((b|0)==-1){break Z}}H[m+(b<<2)>>2]=g}if((c|0)!=(A|0)){H[c>>2]=p;c=c+4|0;H[i+68>>2]=c;break N}g=c-d|0;b=g>>2;e=b+1|0;if(e>>>0>=1073741824){break K}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}e=a+(b<<2)|0;H[e>>2]=p;A=a+(g<<2)|0;a=e+4|0;if((c|0)!=(d|0)){while(1){e=e-4|0;c=c-4|0;H[e>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[i+72>>2]=A;H[i+68>>2]=a;H[i+64>>2]=e;if(d){oa(d)}c=a}d=e}De(Q,H[c-4>>2]);g=H[h+40>>2];if((g|0)==H[h+36>>2]){break u}b=g-12|0;a=H[b+4>>2];l=(f^-1)+t|0;if(a>>>0>l>>>0){break G}if((a|0)!=(l|0)){break u}f=I[g-4|0];a=H[b>>2];H[h+40>>2]=b;if((a|0)<0){break G}g=c-4|0;j=H[g>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];$:{if(f&1){a=-1;if((j|0)==-1){break $}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break $}a=-1;if((j|0)==-1){break $}a=j-1|0;if((j>>>0)%3|0){break $}a=j+2|0}H[b+12>>2]=a;b=H[h+40>>2];if((b|0)==H[h+36>>2]){break u}while(1){j=b-12|0;a=H[j+4>>2];if(a>>>0>l>>>0){break G}if((a|0)!=(l|0)){break u}f=I[b-4|0];a=H[j>>2];H[h+40>>2]=j;if((a|0)<0){break G}j=H[g>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];aa:{if(f&1){a=-1;if((j|0)==-1){break aa}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break aa}a=-1;if((j|0)==-1){break aa}a=j-1|0;if((j>>>0)%3|0){break aa}a=j+2|0}H[b+12>>2]=a;b=H[h+40>>2];if((b|0)!=H[h+36>>2]){continue}break}break u}sa();v()}l=-1;d=H[q>>2];H[d+(p<<2)>>2]=-1;g=-1;break H}sa();v()}d=H[q>>2];a=H[d+(l<<2)>>2]}l=a;H[(p<<2)+d>>2]=a;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;g=-1;if((a|0)==-1){break H}g=H[(a<<2)+d>>2]}H[b+d>>2]=g;ba:{if((m|0)==-1){H[d+o>>2]=-1;n=-1;a=-1;break ba}ca:{da:{ea:{if((m>>>0)%3|0){b=m-1|0;break ea}b=m+2|0;if((b|0)==-1){break da}}a=H[(b<<2)+d>>2];H[d+o>>2]=a;if((a|0)==-1){break ca}H[H[q+24>>2]+(a<<2)>>2]=f;break ca}H[d+o>>2]=-1}n=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ba}n=H[(b<<2)+d>>2];a=b}g=H[h+388>>2];f=l<<2;b=g+f|0;o=b;m=H[b>>2];b=n<<2;H[o>>2]=m+H[b+g>>2];g=b;b=H[q+24>>2];o=g+b|0;if((l|0)!=-1){H[b+f>>2]=H[o>>2]}b=a;while(1){if((b|0)==-1){break F}H[(b<<2)+d>>2]=l;g=b+1|0;b=(g>>>0)%3|0?g:b-2|0;f=-1;fa:{if((b|0)==-1){break fa}g=H[r+(b<<2)>>2];f=-1;if((g|0)==-1){break fa}b=g+1|0;f=(b>>>0)%3|0?b:g-2|0}b=f;if((a|0)!=(b|0)){continue}break}}b=-1;if(!(y&1)){break t}break s}H[o>>2]=-1;ga:{if(C){break ga}if((D|0)!=(L|0)){H[L>>2]=n;L=L+4|0;H[i+28>>2]=L;break ga}d=D-s|0;b=d>>2;f=b+1|0;if(f>>>0>=1073741824){break q}a=d>>>1|0;f=d>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break p}a=pa(f<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;L=b+4|0;if((s|0)!=(D|0)){while(1){b=b-4|0;D=D-4|0;H[b>>2]=H[D>>2];if((s|0)!=(D|0)){continue}break}}D=a+(f<<2)|0;H[i+32>>2]=D;H[i+28>>2]=L;H[i+24>>2]=b;if(s){oa(s)}s=b}H[j>>2]=p}De(Q,p);d=e}y=(k|0)<(t|0);if((k|0)!=(t|0)){continue}break}k=t}b=-1;y=H[h+8>>2];if(H[y+28>>2]-H[y+24>>2]>>2>(O|0)){break s}if((c|0)!=(e|0)){r=h+72|0;j=h+60|0;t=h+312|0;while(1){c=c-4|0;z=H[c>>2];H[i+68>>2]=c;ha:{ia:{ja:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ia}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break ja}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break ja}break ia}if(Ba(t)){break ia}}ka:{la:{b=H[h+64>>2];f=H[h+68>>2];if((b|0)==f<<5){if((b+1|0)<0){break la}if(b>>>0<=1073741822){f=f<<6;b=(b&-32)+32|0;a=b>>>0<f>>>0?f:b}else{a=2147483647}pb(j,a);b=H[h+64>>2]}H[h+64>>2]=b+1;f=H[h+60>>2]+(b>>>3&536870908)|0;a=H[f>>2];R=f,S=Vj(b)&a,H[R>>2]=S;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=z;H[h+76>>2]=b+4;break ha}s=H[r>>2];g=b-s|0;f=g>>2;d=f+1|0;if(d>>>0>=1073741824){break ka}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}d=a+(f<<2)|0;H[d>>2]=z;f=d+4|0;if((b|0)!=(s|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(s|0)){continue}break}}H[h+80>>2]=a+(g<<2);H[h+76>>2]=f;H[h+72>>2]=d;if(!s){break ha}oa(s);break ha}sa();v()}sa();v()}q=H[h+8>>2];C=H[q>>2];if(((H[q+4>>2]-C>>2>>>0)/3|0)<=(k|0)){b=-1;break s}e=-1;b=-1;d=-1;s=H[q+24>>2];f=-1;ma:{if((z|0)==-1){break ma}a=z+1|0;a=(a>>>0)%3|0?a:z-2|0;f=-1;if((a|0)==-1){break ma}f=H[C+(a<<2)>>2]}o=H[s+(f<<2)>>2];na:{if((o|0)==-1){l=1;a=-1;break na}l=1;g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;a=-1;if((g|0)==-1){break na}l=0;a=g+1|0;e=g;a=(a>>>0)%3|0?a:e-2|0;if((a|0)!=-1){a=H[C+(a<<2)>>2]}else{a=-1}}g=H[(a<<2)+s>>2];if((g|0)!=-1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((e|0)==(z|0)|(d|0)==(z|0)|((z|0)!=-1&H[H[q+12>>2]+(z<<2)>>2]!=-1|(d|0)==(e|0))){break s}if(!l&H[H[q+12>>2]+(e<<2)>>2]!=-1){break s}l=-1;s=H[q+12>>2];g=-1;oa:{if((d|0)==-1){break oa}if(H[s+(d<<2)>>2]!=-1){break s}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;g=-1;if((b|0)==-1){break oa}g=H[C+(b<<2)>>2]}b=N(k,3);H[i>>2]=b;H[s+(b<<2)>>2]=z;H[s+(z<<2)>>2]=b;b=H[i>>2]+1|0;H[s+(b<<2)>>2]=e;H[s+(e<<2)>>2]=b;b=H[i>>2]+2|0;H[s+(b<<2)>>2]=d;H[s+(d<<2)>>2]=b;b=H[i>>2];H[C+(b<<2)>>2]=a;o=b+1|0;s=C+(o<<2)|0;H[s>>2]=g;g=b+2|0;d=C+(g<<2)|0;H[d>>2]=f;f=H[h+120>>2];e=o?a:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(e)&a,H[R>>2]=S;l=(o|0)!=-1?H[s>>2]:l;b=f+(l>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(l)&a,H[R>>2]=S;b=-1;b=(g|0)!=-1?H[d>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];R=e,S=Vj(b)&a,H[R>>2]=S;F[i+88|0]=1;_c(j,i+88|0);Ka(r,i);k=k+1|0;e=H[i+64>>2]}if((c|0)!=(e|0)){continue}break}y=H[h+8>>2]}b=-1;if(((H[y+4>>2]-H[y>>2]>>2>>>0)/3|0)!=(k|0)){break s}b=H[y+28>>2]-H[y+24>>2]>>2;k=H[i+24>>2];f=H[i+28>>2];if((k|0)==(f|0)){break r}while(1){j=H[k>>2];a=H[y+24>>2];c=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){while(1){c=b-2|0;b=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){continue}break}}if(c>>>0>=j>>>0){H[i>>2]=y;d=H[d>>2];F[i+12|0]=1;H[i+8>>2]=d;H[i+4>>2]=d;if((d|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(d<<2)|0;if(H[a>>2]!=(c|0)){b=-1;break s}H[a>>2]=j;uc(i);d=H[i+8>>2];if((d|0)!=-1){continue}break}y=H[h+8>>2]}a=H[y+24>>2];e=a+(c<<2)|0;if((j|0)!=-1){H[a+(j<<2)>>2]=H[e>>2]}H[e>>2]=-1;g=1<<j;a=H[h+120>>2];e=a+(j>>>3&536870908)|0;d=a+(c>>>3&536870908)|0;a=1<<c;if(H[d>>2]&a){c=g|H[e>>2]}else{c=H[e>>2]&(g^-1)}H[e>>2]=c;H[d>>2]=H[d>>2]&(a^-1);b=b-1|0}k=k+4|0;if((f|0)!=(k|0)){continue}break}}k=H[i+24>>2]}if(k){oa(k)}a=H[i+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;break o}sa();v()}wa();v()}if((b|0)==-1){break n}e=H[x+16>>2];c=e+H[x>>2]|0;a=H[x+8>>2]-e|0;e=H[H[h+4>>2]+32>>2];G[e+38>>1]=J[e+38>>1];H[e>>2]=c;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=a;H[e+12>>2]=0;c=H[h+4>>2];a=J[c+36>>1];e=a<<8|a>>>8;if((e&65535)>>>0<=513){c=H[c+32>>2];f=c;a=H[c+16>>2];c=P+H[c+20>>2]|0;a=a+E|0;c=a>>>0<E>>>0?c+1|0:c;H[f+16>>2]=a;H[f+20>>2]=c}pa:{if(H[h+216>>2]==H[h+220>>2]){break pa}a=H[h+8>>2];c=H[a>>2];a=H[a+4>>2];qa:{if((e&65535)>>>0>=513){if((a|0)==(c|0)){break pa}c=0;break qa}if((a|0)==(c|0)){break pa}c=0;while(1){if(cd(h,c)){c=c+3|0;a=H[h+8>>2];if(c>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}while(1){if(bd(h,c)){c=c+3|0;a=H[h+8>>2];if(c>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}ad(B);c=H[h+216>>2];if((c|0)!=H[h+220>>2]){t=0;while(1){f=N(t,144);Jc((f+c|0)+4|0,H[h+8>>2]);a=H[M>>2];e=a+f|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((f+H[M>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[M>>2]}if(!Ic((a+f|0)+4|0)){break n}t=t+1|0;c=H[h+216>>2];if(t>>>0<(H[h+220>>2]-c|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);w=H[h+216>>2];if((w|0)!=H[h+220>>2]){c=0;while(1){a=N(c,144)+w|0;e=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(e|0)?e:a);c=c+1|0;w=H[h+216>>2];if(c>>>0<(H[h+220>>2]-w|0)/144>>>0){continue}break}}w=$c(h,b)}break b}w=0}ca=u- -64|0;return w|0}function ki(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0;t=ca+-64|0;ca=t;H[a+132>>2]=0;if(H[a+148>>2]){d=H[a+144>>2];if(d){while(1){b=H[d>>2];oa(d);d=b;if(b){continue}break}}d=0;H[a+144>>2]=0;j=H[a+140>>2];a:{if(!j){break a}if(j>>>0>=4){b=j&-4;while(1){c=d<<2;H[c+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(c|4)>>2]=0;H[H[a+136>>2]+(c|8)>>2]=0;H[H[a+136>>2]+(c|12)>>2]=0;d=d+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=j&3;if(!b){break a}while(1){H[H[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;x=x+1|0;if((b|0)!=(x|0)){continue}break}}H[a+148>>2]=0}b:{c:{d=H[a+4>>2];x=I[d+36|0];b=x<<8|I[d+37|0];if(b>>>0<=513){f=H[d+32>>2];d:{if(b>>>0<=511){b=H[f+20>>2];e=H[f+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;j=H[f+12>>2];if(K[f+8>>2]<c>>>0&(j|0)<=(b|0)|(b|0)>(j|0)){break c}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[f+16>>2]=c;H[f+20>>2]=b;break d}if(!Ea(1,t,f)){break c}d=H[a+4>>2];x=I[d+36|0];e=H[t>>2]}H[a+132>>2]=e}f=H[d+32>>2];e:{f:{g:{if((x&255)>>>0<=1){x=0;b=H[f+20>>2];c=H[f+16>>2];e=c+4|0;b=e>>>0<4?b+1|0:b;j=H[f+12>>2];if(K[f+8>>2]<e>>>0&(j|0)<=(b|0)|(b|0)>(j|0)){break b}c=c+H[f>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+60>>2]=c;H[f+16>>2]=e;H[f+20>>2]=b;H[a+156>>2]=c;l=a+156|0;break g}x=0;if(!Ea(1,t+60|0,f)){break b}d=H[a+4>>2];b=I[d+36|0];H[a+156>>2]=H[t+60>>2];l=a+156|0;if(b>>>0>1){break f}}f=H[d+32>>2];c=H[f+8>>2];j=H[f+12>>2];d=H[f+20>>2];e=H[f+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){break b}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[t+56>>2]=e;H[f+16>>2]=b;H[f+20>>2]=d;break e}if(!Ea(1,t+56|0,H[d+32>>2])){break b}e=H[t+56>>2]}if(e>>>0>1431655765){break b}b=H[l>>2];d=N(e,3);if(b>>>0>d>>>0){break b}c=d>>>1|0;d=b>>31;d=Rj(b-1|0,d-!b|0,b,d);j=da;b=j>>>1|0;d=(j&1)<<31|d>>>1;if(!b&d>>>0<c>>>0){break b}k=H[a+4>>2];y=H[k+32>>2];d=H[y+8>>2];f=H[y+12>>2];b=H[y+20>>2];m=H[y+16>>2];if((f|0)<=(b|0)&m>>>0>=d>>>0|(b|0)>(f|0)){break b}l=H[y>>2];g=I[l+m|0];c=y;j=m+1|0;C=j?b:b+1|0;H[c+16>>2]=j;H[c+20>>2]=C;h:{if(I[k+36|0]<=1){c=d;d=b;b=m+5|0;d=b>>>0<5?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break b}c=j+l|0;l=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+52>>2]=l;H[y+16>>2]=b;H[y+20>>2]=d;break h}if(!Ea(1,t+52|0,y)){break b}l=H[t+52>>2]}if(e>>>0<l>>>0|((l>>>0)/3|0)+l>>>0<e>>>0){break b}d=H[a+4>>2];f=H[d+32>>2];i:{if(I[d+36|0]<=1){d=H[f+20>>2];b=H[f+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;j=H[f+12>>2];if(K[f+8>>2]<c>>>0&(j|0)<=(d|0)|(d|0)>(j|0)){break b}b=b+H[f>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[t+48>>2]=b;H[f+16>>2]=c;H[f+20>>2]=d;break i}if(!Ea(1,t+48|0,f)){break b}b=H[t+48>>2]}if(b>>>0>l>>>0){break b}H[a+28>>2]=H[a+24>>2];d=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=d;if(c){cb(c);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];E=a+216|0;ed(E);dd(E,g);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}d=H[a+156>>2];F[t|0]=1;Oa(a+120|0,b+d|0,t);b=H[a+4>>2];d=J[b+36>>1];d=(d<<8|d>>>8)&65535;j:{if(d>>>0<=513){j=H[b+32>>2];k:{if(d>>>0<=511){d=H[j+20>>2];e=H[j+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;c=H[j+12>>2];if(K[j+8>>2]<b>>>0&(c|0)<=(d|0)|(d|0)>(c|0)){break b}e=e+H[j>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[j+16>>2]=b;H[j+20>>2]=d;break k}if(!Ea(1,t+44|0,j)){break b}e=H[t+44>>2]}if(!e){break b}j=H[H[a+4>>2]+32>>2];c=H[j+8>>2];d=H[j+16>>2];b=c-d|0;d=H[j+12>>2]-(H[j+20>>2]+(d>>>0>c>>>0)|0)|0;if(b>>>0<e>>>0&(d|0)<=0|(d|0)<0){break b}f=Ha(t);j=H[H[a+4>>2]+32>>2];c=H[j+16>>2];b=(c+H[j>>2]|0)+e|0;d=H[j+8>>2]-c|0;G[f+38>>1]=J[j+38>>1];H[f>>2]=b;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=d-e;H[f+12>>2]=0;d=Ib(a,f);if((d|0)==-1){break b}y=d;M=d>>31;break j}y=-1;M=-1;if((Ib(a,H[b+32>>2])|0)==-1){break b}}O=a+232|0;e=O;H[e+144>>2]=a;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];b=H[d>>2]+H[d+16>>2]|0;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;P=e,Q=J[H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],G[P+38>>1]=Q;H[e>>2]=b;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=d;H[e+12>>2]=0;H[a+372>>2]=g;C=Ha(t);l:{if(!Ge(e,C)){break l}b=0;d=0;e=0;j=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;L=H[a+124>>2];m:{n:{o:{p:{q:{r:{if((l|0)<=0){break r}A=H[h+216>>2]!=H[h+220>>2];s=1;while(1){f=j;j=f+1|0;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{if(!I[h+308|0]){break G}u=H[h+296>>2];g=H[h+304>>2];a=u+(g>>>3|0)|0;p=H[h+300>>2];if(a>>>0>=p>>>0){break G}c=I[a|0];a=g+1|0;H[h+304>>2]=a;m=c>>>(g&7)&1;if(!m){break G}n=0;k=a>>>3|0;c=u+k|0;H:{if(c>>>0>=p>>>0){g=a;a=0;break H}c=I[c|0];g=g+2|0;H[h+304>>2]=g;k=g>>>3|0;a=c>>>(a&7)&1}c=k+u|0;if(c>>>0<p>>>0){c=I[c|0];H[h+304>>2]=g+1;n=c>>>(g&7)<<1&2}k=-1;a=m|(a|n)<<1;switch(a-1|0){case 6:break D;case 0:break E;case 2:case 4:break F;default:break q}}if((d|0)==(e|0)){k=-1;break q}g=-1;q=H[h+8>>2];u=H[q+24>>2];p=d-4|0;s=H[p>>2];c=-1;I:{if((s|0)==-1){break I}b=s+1|0;b=(b>>>0)%3|0?b:s-2|0;c=-1;if((b|0)==-1){break I}c=H[H[q>>2]+(b<<2)>>2]}b=H[u+(c<<2)>>2];if((b|0)!=-1){a=b+1|0;g=(a>>>0)%3|0?a:b-2|0}if((g|0)==(s|0)){k=-1;break q}if((s|0)!=-1){k=-1;if(H[H[q+12>>2]+(s<<2)>>2]!=-1){break q}}b=H[q+12>>2];if((g|0)!=-1){k=-1;if(H[b+(g<<2)>>2]!=-1){break q}}n=N(f,3);a=n+1|0;H[b+(s<<2)>>2]=a;m=a<<2;H[m+b>>2]=s;r=n+2|0;H[b+(g<<2)>>2]=r;f=r<<2;H[f+b>>2]=g;o=-1;a=-1;J:{if((s|0)==-1){break J}K:{if((s>>>0)%3|0){b=s-1|0;break K}b=s+2|0;a=-1;if((b|0)==-1){break J}}a=H[H[q>>2]+(b<<2)>>2]}L:{if((g|0)==-1){break L}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1){break L}o=H[H[q>>2]+(b<<2)>>2]}k=-1;if((a|0)==(c|0)|(c|0)==(o|0)){break q}b=H[q>>2];H[b+(n<<2)>>2]=c;H[b+m>>2]=o;H[b+f>>2]=a;if((a|0)!=-1){H[u+(a<<2)>>2]=r}b=H[h+120>>2]+(c>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(c)&a,H[P>>2]=Q;H[p>>2]=n;b=e;break s}if((d|0)==(e|0)){break q}m=d-4|0;n=H[m>>2];r=H[h+8>>2];b=H[r+12>>2];if((n|0)!=-1&H[b+(n<<2)>>2]!=-1){break q}o=N(f,3);p=(a|0)==5;g=o+(p?2:1)|0;a=g<<2;H[a+b>>2]=n;H[b+(n<<2)>>2]=g;Ka(r+24|0,11424);b=H[h+8>>2];u=H[b+24>>2];if(H[b+28>>2]-u>>2>(L|0)){break q}k=H[b>>2];q=k+a|0;c=H[r+28>>2];b=H[r+24>>2];a=(c-b>>2)-1|0;H[q>>2]=a;if((b|0)!=(c|0)){H[u+(a<<2)>>2]=g}c=p?o:o+2|0;g=k+(o+p<<2)|0;M:{if((n|0)==-1){H[k+(c<<2)>>2]=-1;b=-1;break M}N:{O:{P:{if((n>>>0)%3|0){a=n-1|0;break P}a=n+2|0;if((a|0)==-1){break O}}a=H[k+(a<<2)>>2];H[k+(c<<2)>>2]=a;if((a|0)==-1){break N}H[u+(a<<2)>>2]=c;break N}H[k+(c<<2)>>2]=-1}a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;b=-1;if((a|0)==-1){break M}b=H[k+(a<<2)>>2]}H[g>>2]=b;H[m>>2]=o;b=e;break y}if((b|0)==(d|0)){break q}a=d-4|0;q=H[a>>2];H[i+68>>2]=a;p=H[i+44>>2];Q:{if(!p){d=a;break Q}g=H[i+40>>2];k=Uj(p)>>>0>1;c=f&p+2147483647;R:{if(!k){break R}c=f;if(c>>>0<p>>>0){break R}c=(f>>>0)%(p>>>0)|0}m=c;c=H[g+(m<<2)>>2];if(!c){d=a;break Q}g=H[c>>2];if(!g){d=a;break Q}S:{if(!k){k=p-1|0;while(1){c=H[g+4>>2];T:{if((c|0)!=(f|0)){if((m|0)==(c&k)){break T}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}while(1){c=H[g+4>>2];U:{if((c|0)!=(f|0)){if(c>>>0>=p>>>0){c=(c>>>0)%(p>>>0)|0}if((c|0)==(m|0)){break U}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}if((a|0)!=(z|0)){H[a>>2]=H[g+12>>2];H[i+68>>2]=d;break Q}c=z-b|0;d=c>>2;e=d+1|0;if(e>>>0>=1073741824){break C}a=c>>>1|0;c=c>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(d<<2)|0;H[e>>2]=H[g+12>>2];d=e+4|0;if((b|0)!=(z|0)){while(1){e=e-4|0;z=z-4|0;H[e>>2]=H[z>>2];if((b|0)!=(z|0)){continue}break}}z=a+(c<<2)|0;H[i+72>>2]=z;H[i+68>>2]=d;H[i+64>>2]=e;if(b){oa(b)}}if((d|0)==(e|0)){break u}g=d-4|0;n=H[g>>2];if((n|0)==(q|0)){break u}b=(n|0)==-1;o=H[h+8>>2];if(!b&H[H[o+12>>2]+(n<<2)>>2]!=-1){break u}r=H[o+12>>2];if((q|0)!=-1&H[r+(q<<2)>>2]!=-1){break u}u=N(f,3);f=u+2|0;H[r+(n<<2)>>2]=f;p=f<<2;H[p+r>>2]=n;a=u+1|0;H[r+(q<<2)>>2]=a;c=a<<2;H[c+r>>2]=q;if(b){break B}if((n>>>0)%3|0){m=n-1|0;break x}m=n+2|0;if((m|0)!=-1){break x}a=H[o>>2];b=-1;break w}a=H[h+8>>2];Ka(a+24|0,11424);c=H[h+8>>2];q=N(f,3);r=H[a+28>>2];u=H[a+24>>2];p=r-u|0;o=p>>2;g=o-1|0;H[H[c>>2]+(q<<2)>>2]=g;Ka(c+24|0,11424);m=q+1|0;H[H[c>>2]+(m<<2)>>2]=(H[c+28>>2]-H[c+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);c=q+2|0;H[H[a>>2]+(c<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];n=H[a+24>>2];if(H[a+28>>2]-n>>2>(L|0)){break q}V:{W:{if((r|0)!=(u|0)){H[n+(g<<2)>>2]=q;k=0;if((p|0)==-4){break W}}H[n+(o<<2)>>2]=m;k=o+1|0;if((k|0)==-1){break V}}H[n+(k<<2)>>2]=c}if((d|0)!=(z|0)){H[d>>2]=q;d=d+4|0;H[i+68>>2]=d;break y}m=d-b|0;e=m>>2;c=e+1|0;if(c>>>0>=1073741824){break A}a=m>>>1|0;c=m>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(e<<2)|0;H[e>>2]=q;z=a+(c<<2)|0;a=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;H[e>>2]=H[d>>2];if((b|0)!=(d|0)){continue}break}}H[i+72>>2]=z;H[i+68>>2]=a;H[i+64>>2]=e;if(!b){break z}oa(b);break z}sa();v()}m=-1;a=H[o>>2];H[a+(u<<2)>>2]=-1;k=-1;break v}sa();v()}d=a;b=e}m=H[h+40>>2];if((m|0)==H[h+36>>2]){break s}c=m-12|0;a=H[c+4>>2];k=(f^-1)+l|0;if(a>>>0>k>>>0){break u}if((a|0)!=(k|0)){break s}f=I[m-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}m=d-4|0;g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];X:{if(f&1){a=-1;if((g|0)==-1){break X}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break X}a=-1;if((g|0)==-1){break X}a=g-1|0;if((g>>>0)%3|0){break X}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)==H[h+36>>2]){break s}while(1){c=g-12|0;a=H[c+4>>2];if(a>>>0>k>>>0){break u}if((a|0)!=(k|0)){break s}f=I[g-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];Y:{if(f&1){a=-1;if((g|0)==-1){break Y}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break Y}a=-1;if((g|0)==-1){break Y}a=g-1|0;if((g>>>0)%3|0){break Y}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)!=H[h+36>>2]){continue}break}break s}a=H[o>>2];b=H[a+(m<<2)>>2]}m=b;H[(u<<2)+a>>2]=b;b=n+1|0;b=(b>>>0)%3|0?b:n-2|0;k=-1;if((b|0)==-1){break v}k=H[(b<<2)+a>>2]}H[a+c>>2]=k;Z:{if((q|0)==-1){H[a+p>>2]=-1;n=-1;c=-1;break Z}_:{$:{aa:{if((q>>>0)%3|0){b=q-1|0;break aa}b=q+2|0;if((b|0)==-1){break $}}b=H[(b<<2)+a>>2];H[a+p>>2]=b;if((b|0)==-1){break _}H[H[o+24>>2]+(b<<2)>>2]=f;break _}H[a+p>>2]=-1}n=-1;b=q+1|0;b=(b>>>0)%3|0?b:q-2|0;c=-1;if((b|0)==-1){break Z}n=H[(b<<2)+a>>2];c=b}b=H[o+24>>2];p=b+(n<<2)|0;if((m|0)!=-1){H[b+(m<<2)>>2]=H[p>>2]}b=c;while(1){if((b|0)==-1){break t}H[(b<<2)+a>>2]=m;k=b+1|0;b=(k>>>0)%3|0?k:b-2|0;f=-1;ba:{if((b|0)==-1){break ba}k=H[r+(b<<2)>>2];f=-1;if((k|0)==-1){break ba}b=k+1|0;f=(b>>>0)%3|0?b:k-2|0}b=f;if((c|0)!=(b|0)){continue}break}}k=-1;if(!(s&1)){break r}break q}H[p>>2]=-1;ca:{if(A){break ca}if((B|0)!=(D|0)){H[D>>2]=n;D=D+4|0;H[i+28>>2]=D;break ca}f=B-w|0;b=f>>2;c=b+1|0;if(c>>>0>=1073741824){break o}a=f>>>1|0;c=f>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;D=b+4|0;if((w|0)!=(B|0)){while(1){b=b-4|0;B=B-4|0;H[b>>2]=H[B>>2];if((w|0)!=(B|0)){continue}break}}B=a+(c<<2)|0;H[i+32>>2]=B;H[i+28>>2]=D;H[i+24>>2]=b;if(w){oa(w)}w=b}H[g>>2]=u;b=e}s=(j|0)<(l|0);if((j|0)!=(l|0)){continue}break}j=l}k=-1;a=H[h+8>>2];if(H[a+28>>2]-H[a+24>>2]>>2>(L|0)){break q}if((d|0)!=(e|0)){u=h+72|0;m=h+60|0;p=h+312|0;while(1){d=d-4|0;o=H[d>>2];H[i+68>>2]=d;da:{ea:{fa:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ea}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break fa}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break fa}break ea}if(Ba(p)){break ea}}ga:{ha:{b=H[h+64>>2];c=H[h+68>>2];if((b|0)==c<<5){if((b+1|0)<0){break ha}if(b>>>0<=1073741822){c=c<<6;b=(b&-32)+32|0;a=b>>>0<c>>>0?c:b}else{a=2147483647}pb(m,a);b=H[h+64>>2]}H[h+64>>2]=b+1;c=H[h+60>>2]+(b>>>3&536870908)|0;a=H[c>>2];P=c,Q=Vj(b)&a,H[P>>2]=Q;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=o;H[h+76>>2]=b+4;break da}l=H[u>>2];w=b-l|0;c=w>>2;f=c+1|0;if(f>>>0>=1073741824){break ga}a=w>>>1|0;f=w>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break n}a=pa(f<<2)}else{a=0}g=a+(c<<2)|0;H[g>>2]=o;c=g+4|0;if((b|0)!=(l|0)){while(1){g=g-4|0;b=b-4|0;H[g>>2]=H[b>>2];if((b|0)!=(l|0)){continue}break}}H[h+80>>2]=a+(f<<2);H[h+76>>2]=c;H[h+72>>2]=g;if(!l){break da}oa(l);break da}sa();v()}sa();v()}r=H[h+8>>2];A=H[r>>2];if(((H[r+4>>2]-A>>2>>>0)/3|0)<=(j|0)){k=-1;break q}a=-1;k=-1;b=-1;w=H[r+24>>2];f=-1;ia:{if((o|0)==-1){break ia}e=o+1|0;e=(e>>>0)%3|0?e:o-2|0;f=-1;if((e|0)==-1){break ia}f=H[A+(e<<2)>>2]}l=H[w+(f<<2)>>2];ja:{if((l|0)==-1){g=1;e=-1;break ja}g=1;c=l+1|0;c=(c>>>0)%3|0?c:l-2|0;e=-1;if((c|0)==-1){break ja}g=0;a=c;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)!=-1){e=H[A+(e<<2)>>2]}else{e=-1}}c=H[(e<<2)+w>>2];if((c|0)!=-1){b=c+1|0;b=(b>>>0)%3|0?b:c-2|0}if((a|0)==(o|0)|(b|0)==(o|0)|((o|0)!=-1&H[H[r+12>>2]+(o<<2)>>2]!=-1|(a|0)==(b|0))){break q}if(!g&H[H[r+12>>2]+(a<<2)>>2]!=-1){break q}g=-1;l=H[r+12>>2];w=-1;ka:{if((b|0)==-1){break ka}if(H[l+(b<<2)>>2]!=-1){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;w=-1;if((c|0)==-1){break ka}w=H[A+(c<<2)>>2]}c=N(j,3);H[i>>2]=c;H[l+(c<<2)>>2]=o;H[l+(o<<2)>>2]=c;c=H[i>>2]+1|0;H[l+(c<<2)>>2]=a;H[l+(a<<2)>>2]=c;a=H[i>>2]+2|0;H[l+(a<<2)>>2]=b;H[l+(b<<2)>>2]=a;a=H[i>>2];H[A+(a<<2)>>2]=e;k=a+1|0;l=A+(k<<2)|0;H[l>>2]=w;w=a+2|0;c=A+(w<<2)|0;H[c>>2]=f;f=H[h+120>>2];e=k?e:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(e)&a,H[P>>2]=Q;g=(k|0)!=-1?H[l>>2]:g;b=f+(g>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(g)&a,H[P>>2]=Q;b=-1;b=(w|0)!=-1?H[c>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];P=e,Q=Vj(b)&a,H[P>>2]=Q;F[i+88|0]=1;_c(m,i+88|0);Ka(u,i);j=j+1|0;e=H[i+64>>2]}if((d|0)!=(e|0)){continue}break}a=H[h+8>>2]}k=-1;if(((H[a+4>>2]-H[a>>2]>>2>>>0)/3|0)!=(j|0)){break q}k=H[a+28>>2]-H[a+24>>2]>>2;s=H[i+24>>2];c=H[i+28>>2];if((s|0)==(c|0)){break p}while(1){j=H[s>>2];d=H[a+24>>2];b=k-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){while(1){b=k-2|0;k=k-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){continue}break}}if(b>>>0>=j>>>0){H[i>>2]=a;g=H[g>>2];F[i+12|0]=1;H[i+8>>2]=g;H[i+4>>2]=g;if((g|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(g<<2)|0;if(H[a>>2]!=(b|0)){k=-1;break q}H[a>>2]=j;uc(i);g=H[i+8>>2];if((g|0)!=-1){continue}break}a=H[h+8>>2]}d=H[a+24>>2];e=d+(b<<2)|0;if((j|0)!=-1){H[d+(j<<2)>>2]=H[e>>2]}H[e>>2]=-1;f=1<<j;d=H[h+120>>2];e=d+(j>>>3&536870908)|0;j=d+(b>>>3&536870908)|0;d=1<<b;if(H[j>>2]&d){b=f|H[e>>2]}else{b=H[e>>2]&(f^-1)}H[e>>2]=b;H[j>>2]=H[j>>2]&(d^-1);k=k-1|0}s=s+4|0;if((c|0)!=(s|0)){continue}break}}s=H[i+24>>2]}if(s){oa(s)}a=H[i+48>>2];if(a){while(1){d=H[a>>2];oa(a);a=d;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;a=k;break m}sa();v()}wa();v()}b=a;if((a|0)==-1){break l}e=H[C+16>>2];d=e+H[C>>2]|0;a=H[C+8>>2]-e|0;e=H[H[h+4>>2]+32>>2];G[e+38>>1]=J[e+38>>1];H[e>>2]=d;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=a;H[e+12>>2]=0;d=H[h+4>>2];a=J[d+36>>1];e=a<<8|a>>>8;if((e&65535)>>>0<=513){d=H[d+32>>2];c=d;a=H[c+16>>2];d=M+H[c+20>>2]|0;a=a+y|0;d=a>>>0<y>>>0?d+1|0:d;H[c+16>>2]=a;H[c+20>>2]=d}la:{if(H[h+216>>2]==H[h+220>>2]){break la}a=H[h+8>>2];d=H[a>>2];a=H[a+4>>2];ma:{if((e&65535)>>>0>=513){if((a|0)==(d|0)){break la}d=0;break ma}if((a|0)==(d|0)){break la}d=0;while(1){if(cd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}while(1){if(bd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0<H[a+4>>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}ad(O);d=H[h+216>>2];if((d|0)!=H[h+220>>2]){l=0;while(1){c=N(l,144);Jc((c+d|0)+4|0,H[h+8>>2]);a=H[E>>2];e=a+c|0;d=H[e+132>>2];e=H[e+136>>2];if((d|0)!=(e|0)){while(1){Hc((c+H[E>>2]|0)+4|0,H[d>>2]);d=d+4|0;if((e|0)!=(d|0)){continue}break}a=H[E>>2]}if(!Ic((a+c|0)+4|0)){break l}l=l+1|0;d=H[h+216>>2];if(l>>>0<(H[h+220>>2]-d|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);x=H[h+216>>2];if((x|0)!=H[h+220>>2]){d=0;while(1){a=N(d,144)+x|0;e=H[a+60>>2]-H[a+56>>2]>>2;c=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(c,(a|0)<(e|0)?e:a);d=d+1|0;x=H[h+216>>2];if(d>>>0<(H[h+220>>2]-x|0)/144>>>0){continue}break}}x=$c(h,b)}break b}x=0}ca=t- -64|0;return x|0}function Bg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0;B=c;c=0;m=ca-96|0;ca=m;l=m+16|0;ra(l,0,76);H[m+92>>2]=-1;H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;r=ca-16|0;ca=r;H[l+68>>2]=0;H[l+72>>2]=0;H[l>>2]=b;s=ca-16|0;ca=s;u=b;a=H[b+20>>2];a:{if((H[b+24>>2]-a|0)<=0){break a}a=H[a>>2];if((a|0)==-1){break a}c=H[H[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=H[u+100>>2];e=H[u+96>>2];H[s+8>>2]=0;H[s>>2]=0;H[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=pa(f);H[s>>2]=d;H[s+8>>2]=d+N(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ra(n,0,d);H[s+4>>2]=d+f;if(I[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=N(a,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;d=N(a|1,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=N(a,12);a=b+e|0;c=H[a+4>>2];e=H[a>>2];b=b+f|0;H[b+8>>2]=H[a+8>>2];H[b>>2]=e;H[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=H[c+68>>2];c=0;while(1){d=N(c,12);b=d+e|0;g=H[a+(H[b>>2]<<2)>>2];i=H[a+(H[b+4>>2]<<2)>>2];d=d+f|0;H[d+8>>2]=H[a+(H[b+8>>2]<<2)>>2];H[d+4>>2]=i;H[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;E=ca-16|0;ca=E;h=pa(88);$b(h);C=ca-16|0;ca=C;H[h+80>>2]=0;H[h+84>>2]=0;a=H[h+76>>2];H[h+76>>2]=0;if(a){oa(a)}H[h+68>>2]=0;H[h+72>>2]=0;b=h- -64|0;a=H[b>>2];H[b>>2]=0;if(a){oa(a)}g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;a=N(c,3);f=H[h>>2];e=H[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){ue(h,a-e|0);g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}H[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=H[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=N(d,12);j=e+a|0;f=b+e|0;H[j>>2]=H[f>>2];H[a+(e|4)>>2]=H[f+4>>2];H[j+8>>2]=H[f+8>>2];f=N(d|1,12);e=f+a|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=N(d,12);a=c+a|0;b=b+c|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}H[C+12>>2]=-1;a=0;e=0;g=0;f=ca-32|0;ca=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;n=H[h+12>>2];b=H[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){qb(h+12|0,i-b|0,13652);c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}H[h+16>>2]=n+(i<<2)}H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=pa(d);H[f+20>>2]=e;H[f+16>>2]=e;H[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=H[(a<<2)+j>>2];b=H[f+20>>2]-e>>2;q:{if(i>>>0<b>>>0){break q}H[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Pa(f+16|0,d-b|0,f);j=H[h>>2];c=H[h+4>>2];e=H[f+16>>2];break q}if(b>>>0<=d>>>0){break q}H[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;H[b>>2]=H[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0<i>>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=pa(d<<1);ra(d,255,i<<3)}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=H[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=pa(a);H[f>>2]=q;H[f+8>>2]=(t<<2)+q;b=ra(q,0,a);H[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;H[c+b>>2]=a;x=c|4;a=H[c+e>>2]+a|0;H[x+b>>2]=a;y=c|8;a=a+H[e+x>>2]|0;H[y+b>>2]=a;c=c|12;a=a+H[e+y>>2]|0;H[c+b>>2]=a;a=a+H[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;H[c+b>>2]=a;g=g+1|0;a=H[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=H[h+40>>2];y=H[h+12>>2];n=0;while(1){G=n<<2;a=G+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=H[(b<<2)+j>>2]}b=H[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=H[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;H[h+40>>2]=x;c=n+3|0;break t}p=H[a-4>>2]}a=p<<2;A=H[a+e>>2];v:{w:{if((A|0)<=0){break w}a=H[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=H[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=H[o+4>>2];if((o|0)!=-1){z=H[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=H[J>>2];K=(b<<3)+d|0;H[K+4>>2]=H[J+4>>2];H[K>>2]=z;if((z|0)!=-1){continue}}break}H[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}H[y+G>>2]=o;H[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=H[a+e>>2];if((k|0)<=0){break v}a=H[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(H[b>>2]==-1){H[b>>2]=p;H[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0<i>>>0){continue}break}break l}break i}sa();v()}H[w>>2]=t;if(q){oa(q)}if(d){oa(d)}a=H[f+16>>2];if(!a){break j}H[f+20>>2]=a;oa(a)}ca=f+32|0;x=(w|0)!=0;if(x){k=ca-32|0;ca=k;a=H[h>>2];g=H[h+4>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[k+24>>2]=b;H[k+20>>2]=0;H[k+16>>2]=c;Mc(k+16|0,a);g=H[h>>2];c=H[h+4>>2]}H[k+8>>2]=0;H[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=H[k+16>>2];A:{if(H[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=H[k>>2];H[k+4>>2]=c;e=H[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=H[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(H[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=H[k+16>>2]+(j>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<<j;a=j+1|0;f=(a>>>0)%3|0?a:j-2|0;g=H[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=H[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=H[(f<<2)+g>>2];q=H[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=H[a>>2]){break G}p=H[a+4>>2];t=H[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==H[a>>2]){t=-1;e=-1;p=H[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=H[(b<<2)+g>>2];H:{if(H[k+8>>2]!=(c|0)){H[c>>2]=b;H[c+4>>2]=f;c=c+8|0;H[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0<g>>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=pa(g<<3)}else{e=0}a=e+(p<<3)|0;H[a>>2]=b;H[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=H[c+4>>2];a=a-8|0;H[a>>2]=H[c>>2];H[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=H[k>>2]}H[k+8>>2]=e+(g<<3);H[k+4>>2]=b;H[k>>2]=a;if(c){oa(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=H[H[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=H[h>>2];break A}wa();v()}c=H[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){H[q+(t<<2)>>2]=-1}if((c|0)!=-1){H[q+(c<<2)>>2]=-1}H[q+(b<<2)>>2]=-1;H[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=H[h+4>>2];if(i>>>0<c-g>>2>>>0){continue}break}if(o){continue}}break}a=H[k>>2];if(a){oa(a)}a=H[k+16>>2];if(a){oa(a)}ca=k+32|0;n=0;g=ca-32|0;ca=g;e=H[C+12>>2];H[h+36>>2]=e;p=h+24|0;b=H[h+24>>2];a=H[h+28>>2]-b>>2;K:{L:{if(a>>>0<e>>>0){qb(p,e-a|0,13652);H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;break L}if(a>>>0>e>>>0){H[h+28>>2]=b+(e<<2)}H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=pa(a<<2);H[g+24>>2]=a;H[g+20>>2]=0;H[g+16>>2]=b;Mc(g+16|0,e)}a=H[h>>2];b=H[h+4>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[g+8>>2]=b;H[g+4>>2]=0;H[g>>2]=c;Mc(g,a);b=H[h>>2];a=H[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=N(n,3);d=(q<<2)+b|0;f=H[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=H[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=H[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=H[g>>2];while(1){f=k+q|0;if(!(H[(f>>>3&536870908)+i>>2]>>>f&1)){a=H[(f<<2)+b>>2];c=1<<a;d=H[g+16>>2];b=a>>>5|0;i=H[d+(b<<2)>>2];t=c&i;if(t){c=H[h+28>>2];P:{if((c|0)!=H[h+32>>2]){H[c>>2]=-1;H[h+28>>2]=c+4;break P}i=H[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+32>>2]=b+(j<<2);H[h+28>>2]=o;H[h+24>>2]=d;if(!i){break P}oa(i)}c=H[h+52>>2];Q:{if((c|0)!=H[h+56>>2]){H[c>>2]=a;H[h+52>>2]=c+4;break Q}i=H[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+56>>2]=b+(j<<2);H[h+52>>2]=a;H[h+48>>2]=d;if(!i){break Q}oa(i)}c=H[g+20>>2];a=H[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}pb(b,a);c=H[g+20>>2]}H[g+20>>2]=c+1;d=H[g+16>>2];a=d+(c>>>3&536870908)|0;b=H[a>>2];M=a,O=Vj(c)&b,H[M>>2]=O;c=1<<e;b=e>>>5|0;i=H[(b<<2)+d>>2];a=e;e=a+1|0}H[(b<<2)+d>>2]=c|i;o=H[h+24>>2]+(a<<2)|0;j=H[h+12>>2];b=H[h>>2];i=H[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<<c;H[o>>2]=c;if(t){H[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=H[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=H[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=H[h+12>>2];b=H[h>>2];while(1){d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<<c;if(t){H[(c<<2)+b>>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=H[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=H[h>>2];a=H[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}wa();v()}c=0;H[h+44>>2]=0;a=H[g+16>>2];b=H[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(H[d>>2]>>>c&1)){i=i+1|0;H[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=H[g>>2];if(b){oa(b);a=H[g+16>>2]}if(a){oa(a)}ca=g+32|0}ca=C+16|0;if(!x){H[E+8>>2]=0;cb(h);h=0}ca=E+16|0;a=h;break h}sa();v()}b=H[s>>2];if(!b){break d}H[s+4>>2]=b;oa(b)}ca=s+16|0;break b}sa();v()}c=H[l+4>>2];b=a;H[l+4>>2]=a;if(c){cb(c);b=H[l+4>>2]}X:{if(!b){break X}a=H[u+100>>2];c=H[u+96>>2];F[r+12|0]=0;Oa(l+56|0,(a-c|0)/12|0,r+12|0);a=H[u+100>>2];c=H[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(H[H[l+56>>2]+(D>>>3&536870908)>>2]>>>D&1)){a=N(D,3);Gc(l,0,a);c=H[l+8>>2];e=H[l+12>>2];Gc(l,1,a+1|0);f=H[l+20>>2];d=H[l+24>>2];Gc(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=H[l+36>>2]-H[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(H[l+68>>2]<=0){break Y}H[r+12>>2]=H[l+76>>2];H[r+8>>2]=m;bb(r+8|0,r+12|0);a=H[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=H[(H[H[l>>2]+96>>2]+N(e,12)|0)+(a-N(e,3)<<2)>>2]}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);e=H[l+72>>2];H[l+72>>2]=e+2;if(!(e&1)){break Y}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);H[l+72>>2]=H[l+72>>2]+1}d=0;e=ca-16|0;ca=e;H[l+68>>2]=H[l+68>>2]+1;a=N(c,12)+l|0;a=H[a+12>>2]-H[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=H[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=H[l+56>>2]+(g>>>3&536870908)|0;H[i>>2]=H[i>>2]|1<<g;H[l+72>>2]=H[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){H[e+12>>2]=H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[e+8>>2]=m;bb(e+8|0,e+12|0);break ca}H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=H[(H[H[l>>2]+96>>2]+N(g,12)|0)+(f-N(g,3)<<2)>>2]}else{f=-1}H[e+12>>2]=f;H[e+8>>2]=m;bb(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=H[(H[H[l>>2]+96>>2]+N(c,12)|0)+(f-N(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((N(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0)}H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=H[H[H[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}ca=e+16|0;c=H[u+96>>2];a=H[u+100>>2]}D=D+1|0;if(D>>>0<(a-c|0)/12>>>0){continue}break}}ca=r+16|0;da:{if(b){a=H[B>>2];if(a){H[B+4>>2]=a;oa(a)}H[B>>2]=H[m>>2];H[B+4>>2]=H[m+4>>2];H[B+8>>2]=H[m+8>>2];L=H[m+84>>2];break da}a=H[m>>2];if(!a){break da}H[m+4>>2]=a;oa(a)}a=H[m+72>>2];if(a){oa(a)}a=H[m+48>>2];if(a){H[m+52>>2]=a;oa(a)}a=H[m+36>>2];if(a){H[m+40>>2]=a;oa(a)}a=H[m+24>>2];if(a){H[m+28>>2]=a;oa(a)}a=H[m+20>>2];H[m+20>>2]=0;if(a){cb(a)}ca=m+96|0;return L|0}function qg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=H[i+80>>2];h=I[c+24|0];c:{if((N(j,h)|0)!=(e|0)){break c}d=H[c+28>>2]!=1;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break c}if(h){a=pa(h);ra(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break d}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!ic(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break d}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}oa(a)}break a;case 2:n=I[c+24|0];l=n<<1;j=H[i+80>>2];e:{if((N(l,j)|0)!=(e|0)){break e}i=H[c+28>>2]!=3;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=pa(l);ra(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}oa(e)}b=a;break a;case 4:l=I[c+24|0];o=l<<2;j=H[i+80>>2];h:{if((N(o,j)|0)!=(e|0)){break h}i=H[c+28>>2]!=5;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=pa(o);ra(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}oa(e)}break a;case 1:j=H[i+80>>2];h=I[c+24|0];k:{if((N(j,h)|0)!=(e|0)){break k}d=H[c+28>>2]!=2;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break k}if(h){a=pa(h);ra(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break l}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!hc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break l}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}oa(a)}break a;case 3:n=I[c+24|0];l=n<<1;j=H[i+80>>2];m:{if((N(l,j)|0)!=(e|0)){break m}i=H[c+28>>2]!=4;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=pa(l);ra(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}oa(e)}b=a;break a;case 5:l=I[c+24|0];o=l<<2;j=H[i+80>>2];p:{if((N(o,j)|0)!=(e|0)){break p}i=H[c+28>>2]!=6;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=pa(o);ra(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}oa(e)}break a;case 8:p=I[c+24|0];q=p<<2;k=H[i+80>>2];s:{if((N(q,k)|0)!=(e|0)){break s}i=H[c+28>>2];t:{if(!p){break t}a=pa(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){H[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){H[d+24>>2]=-1073741824;H[d+28>>2]=-1073741824;H[d+16>>2]=-1073741824;H[d+20>>2]=-1073741824;H[d+8>>2]=-1073741824;H[d+12>>2]=-1073741824;H[d>>2]=-1073741824;H[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=H[c+68>>2];l=H[c>>2];i=H[c+48>>2];s=I[c+84|0];m=H[c+44>>2];c=H[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=H[l>>2];b=Rj(c,m,s?d:H[r+(d<<2)>>2],0)+i|0;qa(h,qa(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=H[l>>2];g=d<<2;j=Rj(c,m,H[g+r>>2],0)+i|0;h=qa(a,h+j|0,o);j=H[l>>2];g=Rj(c,m,H[r+(g|4)>>2],0)+i|0;qa(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=H[l>>2];c=Rj(c,m,H[r+(d<<2)>>2],0)+i|0;qa(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=H[l>>2];e=Rj(g,h,c,m)+i|0;d=qa(a,d+e|0,o);e=H[l>>2];p=Rj(c,m,g|1,h)+i|0;qa(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=H[l>>2];c=Rj(g,h,c,m)+i|0;qa(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}qa((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}oa(a)}a=b;break;default:break b}}b=a}return b|0}function ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ca-48|0;ca=i;a:{b:{if((c|0)!=1){break b}c=H[a+4>>2];g=H[a+12>>2];H[i+40>>2]=0;a=i;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;e=a+8|0;c:{if((b|0)==-2){break c}l=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){a=J[c+36>>1];j=(a<<8|a>>>8)&65535;a=0;h=ca-32|0;ca=h;d=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];d:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break d}k=ea[H[H[c>>2]+36>>2]](c)|0;f=ea[H[H[c>>2]+44>>2]](c,g)|0;if(!k|!f){break d}a=ea[H[H[c>>2]+40>>2]](c,g)|0;if(a){c=H[c+44>>2];H[h+12>>2]=a;H[h+8>>2]=c;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=2564;break e;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=3328;break e;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3564;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break e;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3812;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break e;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=4040;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break e;case 5:break f;default:break e}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;g:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=3216;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=4904;H[a>>2]=4276;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=4512;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break g}}break d}a=H[c+44>>2];H[h+12>>2]=k;H[h+8>>2]=a;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=4932;break h;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=5356;break h;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5580;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break h;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5816;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break h;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=6032;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break h;case 5:break i;default:break h}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;j:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=5300;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=6840;H[a>>2]=6256;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=6476;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break j}}}ca=h+32|0;d=a;if(a){break c}}d=pa(44);H[d+4>>2]=l;H[d>>2]=3272;a=H[e+4>>2];H[d+8>>2]=H[e>>2];H[d+12>>2]=a;a=H[e+12>>2];H[d+16>>2]=H[e+8>>2];H[d+20>>2]=a;a=H[e+20>>2];H[d+24>>2]=H[e+16>>2];H[d+28>>2]=a;H[d+40>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;c=H[e+24>>2];a=H[e+28>>2];if((c|0)!=(a|0)){b=a-c|0;if((b|0)<0){break a}e=pa(b);H[d+32>>2]=e;H[d+40>>2]=(b&-4)+e;while(1){H[e>>2]=H[c>>2];e=e+4|0;c=c+4|0;if((a|0)!=(c|0)){continue}break}H[d+36>>2]=e}H[d>>2]=6868;break c}e=d;a=H[i+32>>2];if(!a){break b}H[i+36>>2]=a;oa(a)}ca=i+48|0;return e|0}sa();v()}function Ec(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ca-16|0;ca=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=H[4298];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17232|0;d=H[a+17240>>2];a=H[d+8>>2];j:{if((b|0)==(a|0)){m=17192,n=Vj(c)&g,H[m>>2]=n;break j}H[a+12>>2]=b;H[b+8>>2]=a}a=d+8|0;b=c<<3;H[d+4>>2]=b|3;b=b+d|0;H[b+4>>2]=H[b+4>>2]|1;break a}k=H[4300];if(k>>>0>=h>>>0){break i}if(b){a=2<<c;a=(0-a|a)&b<<c;d=Qj(0-a&a);a=d<<3;b=a+17232|0;e=H[a+17240>>2];a=H[e+8>>2];k:{if((b|0)==(a|0)){g=Vj(d)&g;H[4298]=g;break k}H[a+12>>2]=b;H[b+8>>2]=a}H[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;H[c+4>>2]=d|1;H[a+e>>2]=d;if(k){b=(k&-8)+17232|0;f=H[4303];a=1<<(k>>>3);l:{if(!(a&g)){H[4298]=a|g;a=b;break l}a=H[b+8>>2]}H[b+8>>2]=f;H[a+12>>2]=f;H[f+12>>2]=b;H[f+8>>2]=a}a=e+8|0;H[4303]=c;H[4300]=d;break a}j=H[4299];if(!j){break i}c=H[(Qj(0-j&j)<<2)+17496>>2];f=(H[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=H[b+16>>2];if(!a){a=H[b+20>>2];if(!a){break m}}b=(H[a+4>>2]&-8)-h|0;d=b>>>0<f>>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=H[c+24>>2];d=H[c+12>>2];if((d|0)!=(c|0)){a=H[c+8>>2];H[a+12>>2]=d;H[d+8>>2]=a;break b}b=c+20|0;a=H[b>>2];if(!a){a=H[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=H[b>>2];if(a){continue}b=d+16|0;a=H[d+16>>2];if(a){continue}break}H[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=H[4299];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=Q(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=H[(g<<2)+17496>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(H[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=H[b+20>>2];b=H[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<<g;a=(0-a|a)&j;if(!a){break i}a=H[(Qj(a&0-a)<<2)+17496>>2]}if(!a){break o}}while(1){b=(H[a+4>>2]&-8)-h|0;c=b>>>0<f>>>0;f=c?b:f;d=c?a:d;b=H[a+16>>2];if(b){a=b}else{a=H[a+20>>2]}if(a){continue}break}}if(!d|H[4300]-h>>>0<=f>>>0){break i}g=H[d+24>>2];c=H[d+12>>2];if((d|0)!=(c|0)){a=H[d+8>>2];H[a+12>>2]=c;H[c+8>>2]=a;break c}b=d+20|0;a=H[b>>2];if(!a){a=H[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=H[b>>2];if(a){continue}b=c+16|0;a=H[c+16>>2];if(a){continue}break}H[e>>2]=0;break c}a=H[4300];if(a>>>0>=h>>>0){d=H[4303];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;H[c+4>>2]=b|1;H[a+d>>2]=b;H[d+4>>2]=h|3;break s}H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;c=0;b=0}H[4300]=b;H[4303]=c;a=d+8|0;break a}i=H[4301];if(i>>>0>h>>>0){b=i-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(H[4416]){c=H[4418]}else{H[4419]=-1;H[4420]=-1;H[4417]=4096;H[4418]=4096;H[4416]=l+12&-16^1431655768;H[4421]=0;H[4409]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=H[4408];if(d){c=H[4406];g=c+b|0;if(d>>>0<g>>>0|c>>>0>=g>>>0){break a}}t:{if(!(I[17636]&4)){u:{v:{w:{x:{d=H[4304];if(d){a=17640;while(1){c=H[a>>2];if(c>>>0<=d>>>0&d>>>0<c+H[a+4>>2]>>>0){break x}a=H[a+8>>2];if(a){continue}break}}c=zb(0);if((c|0)==-1){break u}g=b;d=H[4417];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=H[4408];if(d){a=H[4406];f=a+g|0;if(d>>>0<f>>>0|a>>>0>=f>>>0){break u}}a=zb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=zb(g);if((c|0)==(H[a>>2]+H[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=H[4418];c=c+(j-g|0)&0-c;if((zb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}H[4409]=H[4409]|4}c=zb(b);a=zb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=H[4406]+g|0;H[4406]=a;if(a>>>0>K[4407]){H[4407]=a}y:{e=H[4304];if(e){a=17640;while(1){d=H[a>>2];b=H[a+4>>2];if((d+b|0)==(c|0)){break y}a=H[a+8>>2];if(a){continue}break}break f}a=H[4302];if(!(a>>>0<=c>>>0?a:0)){H[4302]=c}a=0;H[4411]=g;H[4410]=c;H[4306]=-1;H[4307]=H[4416];H[4413]=0;while(1){d=a<<3;b=d+17232|0;H[d+17240>>2]=b;H[d+17244>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];break e}if(I[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}H[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;H[4304]=c;b=H[4301]+g|0;a=b-a|0;H[4301]=a;H[c+4>>2]=a|1;H[(b+e|0)+4>>2]=40;H[4305]=H[4420];break e}d=0;break b}c=0;break c}if(K[4302]>c>>>0){H[4302]=c}b=c+g|0;a=17640;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=H[a>>2]){a=H[a+8>>2];if(a){continue}break E}break}if(!(I[a+12|0]&8)){break D}}a=17640;while(1){b=H[a>>2];if(b>>>0<=e>>>0){f=b+H[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=H[a+8>>2];continue}}H[a>>2]=c;H[a+4>>2]=H[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;H[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){H[4304]=i;a=H[4301]+a|0;H[4301]=a;H[i+4>>2]=a|1;break A}if(H[4303]==(g|0)){H[4303]=i;a=H[4300]+a|0;H[4300]=a;H[i+4>>2]=a|1;H[a+i>>2]=a;break A}f=H[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=H[g+8>>2];b=f>>>3|0;c=H[g+12>>2];if((c|0)==(d|0)){m=17192,n=H[4298]&Vj(b),H[m>>2]=n;break F}H[d+12>>2]=c;H[c+8>>2]=d;break F}h=H[g+24>>2];c=H[g+12>>2];G:{if((g|0)!=(c|0)){b=H[g+8>>2];H[b+12>>2]=c;H[c+8>>2]=b;break G}H:{f=g+20|0;b=H[f>>2];if(b){break H}f=g+16|0;b=H[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=H[f>>2];if(b){continue}f=c+16|0;b=H[c+16>>2];if(b){continue}break}H[d>>2]=0}if(!h){break F}d=H[g+28>>2];b=(d<<2)+17496|0;I:{if(H[b>>2]==(g|0)){H[b>>2]=c;if(c){break I}m=17196,n=H[4299]&Vj(d),H[m>>2]=n;break F}H[h+(H[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}H[c+24>>2]=h;b=H[g+16>>2];if(b){H[c+16>>2]=b;H[b+24>>2]=c}b=H[g+20>>2];if(!b){break F}H[c+20>>2]=b;H[b+24>>2]=c}g=e+g|0;f=H[g+4>>2];a=a+e|0}H[g+4>>2]=f&-2;H[i+4>>2]=a|1;H[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);J:{if(!(c&a)){H[4298]=a|c;a=b;break J}a=H[b+8>>2]}H[b+8>>2]=i;H[a+12>>2]=i;H[i+12>>2]=b;H[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=Q(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}H[i+28>>2]=f;H[i+16>>2]=0;H[i+20>>2]=0;b=(f<<2)+17496|0;d=H[4299];c=1<<f;K:{if(!(d&c)){H[4299]=c|d;H[b>>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=H[b>>2];while(1){b=c;if((H[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=H[d+16>>2];if(c){continue}break}H[d+16>>2]=i}H[i+24>>2]=b;H[i+12>>2]=i;H[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0<e+16>>>0?e:a;H[d+4>>2]=27;a=H[4413];H[d+16>>2]=H[4412];H[d+20>>2]=a;a=H[4411];H[d+8>>2]=H[4410];H[d+12>>2]=a;H[4412]=d+8;H[4411]=g;H[4410]=c;H[4413]=0;a=d+24|0;while(1){H[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0<f>>>0){continue}break}if((d|0)==(e|0)){break e}H[d+4>>2]=H[d+4>>2]&-2;f=d-e|0;H[e+4>>2]=f|1;H[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);L:{if(!(c&a)){H[4298]=a|c;a=b;break L}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;d=H[4299];c=1<<a;M:{if(!(d&c)){H[4299]=c|d;H[b>>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=H[b>>2];while(1){b=d;if((f|0)==(H[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=H[c+16>>2];if(d){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break e}a=H[b+8>>2];H[a+12>>2]=i;H[b+8>>2]=i;H[i+24>>2]=0;H[i+12>>2]=b;H[i+8>>2]=a}a=j+8|0;break a}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=H[4301];if(a>>>0<=h>>>0){break d}b=a-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}H[3992]=48;a=0;break a}N:{if(!g){break N}b=H[d+28>>2];a=(b<<2)+17496|0;O:{if(H[a>>2]==(d|0)){H[a>>2]=c;if(c){break O}j=Vj(b)&j;H[4299]=j;break N}H[g+(H[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}H[c+24>>2]=g;a=H[d+16>>2];if(a){H[c+16>>2]=a;H[a+24>>2]=c}a=H[d+20>>2];if(!a){break N}H[c+20>>2]=a;H[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;break P}H[d+4>>2]=h|3;e=d+h|0;H[e+4>>2]=f|1;H[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);Q:{if(!(c&a)){H[4298]=a|c;a=b;break Q}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;R:{c=1<<a;S:{if(!(c&j)){H[4299]=c|j;H[b>>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=H[b>>2];while(1){b=h;if((H[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=H[c+16>>2];if(h){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break P}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=H[c+28>>2];a=(b<<2)+17496|0;U:{if(H[a>>2]==(c|0)){H[a>>2]=d;if(d){break U}m=17196,n=Vj(b)&j,H[m>>2]=n;break T}H[i+(H[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}H[d+24>>2]=i;a=H[c+16>>2];if(a){H[d+16>>2]=a;H[a+24>>2]=d}a=H[c+20>>2];if(!a){break T}H[d+20>>2]=a;H[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;H[c+4>>2]=a|3;a=a+c|0;H[a+4>>2]=H[a+4>>2]|1;break V}H[c+4>>2]=h|3;d=c+h|0;H[d+4>>2]=f|1;H[d+f>>2]=f;if(k){b=(k&-8)+17232|0;e=H[4303];a=1<<(k>>>3);W:{if(!(a&g)){H[4298]=a|g;a=b;break W}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a}H[4303]=d;H[4300]=f}a=c+8|0}ca=l+16|0;return a|0}function ce(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-32|0;ca=m;o=pa(12);H[o+8>>2]=0;H[o+4>>2]=b;H[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=H[b+8>>2];j=H[b+4>>2];t=H[b>>2];if(t){if((w|0)>1e3){break a}H[m+24>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;d=1;c=H[a>>2];e=H[c+8>>2];h=H[c+12>>2];g=H[c+20>>2];f=H[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=I[f+H[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;H[h+16>>2]=f;H[h+20>>2]=c;Cc(m+16|0,e);if(e){c=H[a>>2];n=Dc(m+16|0);p=H[c+8>>2];g=H[c+12>>2];h=H[c+20>>2];f=H[c+16>>2];k=f+e|0;h=k>>>0<e>>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}qa(n,f+H[c>>2]|0,e);d=H[c+20>>2];f=e;e=e+H[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d}j=pa(24);c=j;H[c+4>>2]=0;H[c+8>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[j>>2]=j+4;H[j+12>>2]=c;e=ca-32|0;ca=e;h=t+12|0;c=m+16|0;u=nb(h,c);i=t+16|0;e:{if((u|0)==(i|0)){H[e+16>>2]=c;f:{g:{d=H[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=I[c+11|0];g=f<<24>>24<0;n=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=d;d=I[c+27|0];f=d<<24>>24<0;d=f?H[c+20>>2]:d;p=d>>>0<g>>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?H[c+16>>2]:c+16|0;q=Fa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=H[c>>2];if(d){continue}break h}d=Fa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=H[c+4>>2];if(d){continue}break}f=c+4|0}d=pa(32);n=d+16|0;g=H[e+16>>2];n:{if(F[g+11|0]>=0){p=H[g+4>>2];H[n>>2]=H[g>>2];H[n+4>>2]=p;H[n+8>>2]=H[g+8>>2];break n}za(n,H[g>>2],H[g+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+28>>2]=0;H[f>>2]=d;c=d;g=H[H[h>>2]>>2];if(g){H[h>>2]=g;c=H[f>>2]}Sb(H[h+4>>2],c);H[h+8>>2]=H[h+8>>2]+1;c=1;break f}d=c;c=0}F[e+28|0]=c;H[e+24>>2]=d;d=H[e+24>>2];c=H[d+28>>2];H[d+28>>2]=j;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c);break e}if(!j){break e}Ra(j+12|0,H[j+16>>2]);Qa(j,H[j+4>>2]);oa(j)}ca=e+32|0;d=(i|0)!=(u|0)}if(F[m+27|0]<0){oa(H[m+16>>2])}if(d){break a}}if(!j){break a}H[m+16>>2]=0;if(!Bb(1,m+16|0,H[a>>2])){break a}q=0;x=H[m+16>>2];if(x){while(1){d=0;i=ca-32|0;ca=i;H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;c=H[a>>2];f=H[c+8>>2];o:{p:{h=H[c+12>>2];g=H[c+20>>2];e=H[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=I[e+H[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;H[h+16>>2]=e;H[h+20>>2]=c;Cc(i+16|0,f);if(f){e=H[a>>2];n=Dc(i+16|0);p=H[e+8>>2];g=H[e+12>>2];c=H[e+20>>2];h=H[e+16>>2];k=h+f|0;c=k>>>0<f>>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}qa(n,h+H[e>>2]|0,f);c=H[e+20>>2];g=f;f=f+H[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;H[e+16>>2]=f;H[e+20>>2]=c}H[i+12>>2]=0;if(!Bb(1,i+12|0,H[a>>2])){break q}f=H[i+12>>2];if(!f){break q}e=H[a>>2];c=H[e+8>>2];h=H[e+16>>2];g=c-h|0;c=H[e+12>>2]-(H[e+20>>2]+(c>>>0<h>>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;if((f|0)<0){break p}d=pa(f);H[i>>2]=d;c=d+f|0;H[i+8>>2]=c;l=ra(d,0,f);H[i+4>>2]=c;h=H[e+12>>2];y=h;p=H[e+8>>2];c=H[e+20>>2];k=H[e+16>>2];g=f+k|0;c=g>>>0<f>>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){qa(l,H[e>>2]+k|0,f);d=H[e+20>>2];c=f+H[e+16>>2]|0;d=c>>>0<f>>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;h=ca-48|0;ca=h;e=nb(j,i+16|0);if((e|0)!=(j+4|0)){c=H[e+4>>2];s:{if(!c){c=e;while(1){d=H[c+8>>2];f=H[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=H[c>>2];if(c){continue}break}}if((e|0)==H[j>>2]){H[j>>2]=d}H[j+8>>2]=H[j+8>>2]-1;f=H[j+4>>2];t:{u:{g=e;d=e;e=H[d>>2];if(e){c=H[g+4>>2];if(!c){break u}while(1){d=c;c=H[c>>2];if(c){continue}break}}e=H[d+4>>2];if(e){break u}e=0;k=1;break t}H[e+8>>2]=H[d+8>>2];k=0}l=H[d+8>>2];c=H[l>>2];v:{if((d|0)==(c|0)){H[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=H[l+4>>2];break v}H[l+4>>2]=e}r=!I[d+12|0];if((d|0)!=(g|0)){l=H[g+8>>2];H[d+8>>2]=l;H[l+(((g|0)!=H[H[g+8>>2]>>2])<<2)>>2]=d;l=H[g>>2];H[d>>2]=l;H[l+8>>2]=d;l=H[g+4>>2];H[d+4>>2]=l;if(l){H[l+8>>2]=d}F[d+12|0]=I[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=I[c+12|0];x:{d=H[c+8>>2];if(H[d>>2]!=(c|0)){if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[d+4>>2];k=H[e>>2];H[d+4>>2]=k;if(k){H[k+8>>2]=d}H[e+8>>2]=H[d+8>>2];k=H[d+8>>2];H[(((d|0)!=H[k>>2])<<2)+k>>2]=e;H[e>>2]=d;H[d+8>>2]=e;d=c;c=H[c>>2];f=(c|0)==(f|0)?d:f;c=H[c+4>>2]}y:{z:{d=H[c>>2];A:{if(!(I[d+12|0]?0:d)){e=H[c+4>>2];if(I[e+12|0]?0:e){break A}F[c+12|0]=0;c=H[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(I[c+12|0]){break x}}F[c+12|0]=1;break w}e=H[c+4>>2];if(!e){break z}}if(I[e+12|0]){break z}d=c;break y}F[d+12|0]=1;F[c+12|0]=0;e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c+4>>2];e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;break w}if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[c+4>>2];H[d>>2]=e;if(e){H[e+8>>2]=d}H[c+8>>2]=H[d+8>>2];e=H[d+8>>2];H[(((d|0)!=H[e>>2])<<2)+e>>2]=c;H[c+4>>2]=d;H[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=H[d>>2]}e=H[c>>2];C:{if(!(!e|I[e+12|0])){d=c;break C}d=H[c+4>>2];if(!(I[d+12|0]?0:d)){F[c+12|0]=0;c=H[c+8>>2];if((c|0)!=(f|0)?I[c+12|0]:0){break x}F[c+12|0]=1;break w}if(e){if(!I[e+12|0]){d=c;break C}d=H[c+4>>2]}F[d+12|0]=1;F[c+12|0]=0;e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c>>2];e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;break w}d=c;c=H[c+8>>2];c=H[(((d|0)==H[c>>2])<<2)+c>>2];continue}}F[e+12|0]=1}c=H[g+28>>2];if(c){H[g+32>>2]=c;oa(c)}if(F[g+27|0]<0){oa(H[g+16>>2])}oa(g)}H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;c=H[i+4>>2];d=H[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=pa(f);c=ra(e,0,f);g=c+f|0;H[h+8>>2]=g;H[h+4>>2]=g;H[h>>2]=c;c=d}qa(e,c,f);F:{if(F[i+27|0]>=0){H[h+24>>2]=H[i+24>>2];c=H[i+20>>2];H[h+16>>2]=H[i+16>>2];H[h+20>>2]=c;break F}za(h+16|0,H[i+16>>2],H[i+20>>2])}ae(h+28|0,h);f=h+16|0;c=f;G:{H:{d=H[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=I[c+11|0];g=e<<24>>24<0;k=g?H[c>>2]:c;g=g?H[c+4>>2]:e;while(1){c=d;d=I[c+27|0];e=d<<24>>24<0;d=e?H[c+20>>2]:d;l=d>>>0<g>>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?H[c+16>>2]:c+16|0;z=Fa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=H[c>>2];if(d){continue}break I}d=Fa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=H[c+4>>2];if(d){continue}break}e=c+4|0}d=pa(40);H[d+24>>2]=H[f+8>>2];g=H[f+4>>2];H[d+16>>2]=H[f>>2];H[d+20>>2]=g;H[f>>2]=0;H[f+4>>2]=0;H[f+8>>2]=0;ae(d+28|0,f+12|0);H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[e>>2]=d;c=d;f=H[H[j>>2]>>2];if(f){H[j>>2]=f;c=H[e>>2]}Sb(H[j+4>>2],c);H[j+8>>2]=H[j+8>>2]+1;c=1;break G}d=c;c=0}F[h+44|0]=c;H[h+40>>2]=d;c=H[h+28>>2];if(c){H[h+32>>2]=c;oa(c)}if(F[h+27|0]<0){oa(H[h+16>>2])}c=H[h>>2];if(c){H[h+4>>2]=c;oa(c)}ca=h+48|0;break D}sa();v()}d=H[i>>2];if(!d){break r}}H[i+4>>2]=d;oa(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(F[i+27|0]<0){oa(H[i+16>>2])}ca=i+32|0;break o}sa();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}H[m+12>>2]=0;if(!Bb(1,m+12|0,H[a>>2])){break a}c=H[a>>2];e=H[c+8>>2];f=H[c+16>>2];h=e-f|0;d=H[m+12>>2];c=H[c+12>>2]-(H[c+20>>2]+(e>>>0<f>>>0)|0)|0;if(h>>>0<d>>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0<s>>>0){H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;b=b+12|0;d=H[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0<f>>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=pa(N(e,12))}else{f=0}b=f+N(g,12)|0;H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;c=va(b+N((c|0)/-12|0,12)|0,o,c);s=f+N(e,12)|0;b=b+12|0;if(o){oa(o)}o=c}q=q+1|0;if(q>>>0<d>>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}sa();v()}wa();v()}if(o){oa(o)}ca=m+32|0;return A}function Af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0;e=ca-720|0;ca=e;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(J[b+38>>1]>=515){H[e+680>>2]=0;H[e+672>>2]=0;H[e+676>>2]=0;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=ea[H[H[a>>2]+20>>2]](a,n)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(H[d+28>>2]==9){f=H[e+672>>2];c=H[e+676>>2]-f>>2;k=I[d+24|0];j:{if(c>>>0<k>>>0){ya(e+672|0,k-c|0);break j}if(c>>>0<=k>>>0){break j}H[e+676>>2]=f+(k<<2)}j=0;i=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];d=k<<2;f=H[b+16>>2];l=f+d|0;c=d>>>0>l>>>0?c+1|0:c;if(i>>>0<l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break b}qa(H[e+672>>2],f+H[b>>2]|0,d);c=H[b+20>>2];f=d;d=d+H[b+16>>2]|0;c=f>>>0>d>>>0?c+1|0:c;i=d;H[b+16>>2]=d;H[b+20>>2]=c;l=H[b+12>>2];g=H[b+8>>2];h=d+4|0;f=h>>>0<4?c+1|0:c;d=f;if(g>>>0<h>>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}o=H[b>>2];f=o+i|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=d;if(g>>>0<=h>>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}d=I[h+o|0];h=i+5|0;c=h>>>0<5?c+1|0:c;H[b+16>>2]=h;H[b+20>>2]=c;if(d>>>0>31){break b}p=(A(2,f),B());H[e+20>>2]=-1;H[e+16>>2]=1832;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;c=H[e+672>>2];o=d-1|0;if(o>>>0<=29){H[e+20>>2]=d;k:{h=c+(k<<2)|0;l=h-c|0;f=l>>2;i=H[e+32>>2];d=H[e+24>>2];if(f>>>0<=i-d>>2>>>0){i=H[e+28>>2]-d|0;l=i>>2;i=f>>>0>l>>>0?c+i|0:h;g=i-c|0;if((c|0)!=(i|0)){va(d,c,g)}if(f>>>0>l>>>0){c=h-i|0;d=H[e+28>>2];if((h|0)!=(i|0)){va(d,i,c)}H[e+28>>2]=c+d;break k}H[e+28>>2]=d+g;break k}if(d){H[e+28>>2]=d;oa(d);H[e+32>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;i=0}l:{if((l|0)<0){break l}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break l}i=d<<2;d=pa(i);H[e+28>>2]=d;H[e+24>>2]=d;H[e+32>>2]=d+i;if((c|0)!=(h|0)){qa(d,c,l)}H[e+28>>2]=d+(f<<2);break k}sa();v()}L[e+36>>2]=p}m:{if(o>>>0>=30){break m}if(!Xc(e+16|0,H[H[a+60>>2]+((H[a+40>>2]-H[a+36>>2]|0)/24<<2)>>2])){break m}c=H[a+40>>2];n:{if((c|0)!=H[a+44>>2]){H[c>>2]=1832;d=H[e+20>>2];H[c+16>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+4>>2]=d;d=H[e+28>>2];f=H[e+24>>2];if((d|0)!=(f|0)){d=d-f|0;if((d|0)<0){break i}g=pa(d);H[c+12>>2]=g;H[c+8>>2]=g;H[c+16>>2]=(d&-4)+g;k=H[e+24>>2];d=H[e+28>>2];if((k|0)!=(d|0)){while(1){L[g>>2]=L[k>>2];g=g+4|0;k=k+4|0;if((d|0)!=(k|0)){continue}break}}H[c+12>>2]=g}L[c+20>>2]=L[e+36>>2];H[a+40>>2]=c+24;break n}d=0;o:{p:{q:{r:{j=H[a+40>>2];f=H[a+36>>2];i=(j-f|0)/24|0;c=i+1|0;if(c>>>0<178956971){h=(H[a+44>>2]-f|0)/24|0;l=h<<1;h=h>>>0>=89478485?178956970:c>>>0<l>>>0?l:c;if(h){if(h>>>0>=178956971){break r}d=pa(N(h,24))}g=N(i,24)+d|0;H[g>>2]=1832;c=H[e+20>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+4>>2]=c;c=H[e+24>>2];i=H[e+28>>2];if((c|0)!=(i|0)){l=i-c|0;if((l|0)<0){break q}k=pa(l);H[g+8>>2]=k;H[g+16>>2]=(l&-4)+k;while(1){L[k>>2]=L[c>>2];k=k+4|0;c=c+4|0;if((i|0)!=(c|0)){continue}break}H[g+12>>2]=k}c=N(h,24)+d|0;L[g+20>>2]=L[e+36>>2];d=g+24|0;if((f|0)==(j|0)){break p}while(1){g=g-24|0;H[g>>2]=1832;j=j-24|0;H[g+4>>2]=H[j+4>>2];H[g+8>>2]=H[j+8>>2];H[g+12>>2]=H[j+12>>2];H[g+16>>2]=H[j+16>>2];H[j+16>>2]=0;H[j+8>>2]=0;H[j+12>>2]=0;L[g+20>>2]=L[j+20>>2];if((f|0)!=(j|0)){continue}break}H[a+44>>2]=c;k=H[a+40>>2];H[a+40>>2]=d;j=H[a+36>>2];H[a+36>>2]=g;if((j|0)==(k|0)){break o}while(1){k=k-24|0;ea[H[H[k>>2]>>2]](k)|0;if((j|0)!=(k|0)){continue}break}break o}sa();v()}wa();v()}sa();v()}H[a+44>>2]=c;H[a+40>>2]=d;H[a+36>>2]=g}if(j){oa(j)}}j=1}H[e+16>>2]=1832;c=H[e+24>>2];if(c){H[e+28>>2]=c;oa(c)}if(!j){break c}}n=n+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(n|0)){continue}break}break d}k=ea[H[H[a>>2]+24>>2]](a)|0;H[e+712>>2]=0;H[e+704>>2]=0;H[e+708>>2]=0;if(k){if(k>>>0>=214748365){break h}c=N(k,20);d=pa(c);H[e+704>>2]=d;H[e+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=e,r=ra(d,0,c)+c|0,H[q+708>>2]=r;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];f=H[d+28>>2];c=f-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}h=(c|0)>0?c:0;if(h>>>0>4){break f}c=H[e+704>>2]+N(m,20)|0;i=I[d+24|0];H[c+16>>2]=i;H[c+12>>2]=h;H[c+8>>2]=f;H[c+4>>2]=g;H[c>>2]=d;g=g+i|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}c=ea[H[H[a>>2]+20>>2]](a,0)|0;m=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];F[m+84|0]=1;H[m+72>>2]=H[m+68>>2];h=H[b+12>>2];c=h;d=H[b+20>>2];f=H[b+8>>2];i=H[b+16>>2];if((c|0)<=(d|0)&f>>>0<=i>>>0|(c|0)<(d|0)){break f}n=H[b>>2];o=I[n+i|0];c=d;l=i+1|0;c=l?c:c+1|0;H[b+16>>2]=l;H[b+20>>2]=c;s:{switch(o|0){case 0:a=H[e+704>>2];if((H[e+708>>2]-a|0)!=20){break e}if(H[a+16>>2]!=3){break f}t:{if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}c=d;a=i+2|0;c=a>>>0<2?c+1|0:c;l=a;H[b+16>>2]=a;H[b+20>>2]=c;c=d;a=i+6|0;c=a>>>0<6?c+1|0:c;if(a>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}d=l+n|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;mb(m,d);j=e+672|0;H[j+20>>2]=0;H[j+12>>2]=0;H[j+16>>2]=0;H[j>>2]=0;H[j+4>>2]=0;H[j+20>>2]=d;d=Ac(e+16|0,e+704|0);k=0;g=ca-32|0;ca=g;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;f=H[b+12>>2];m=f;i=H[b+8>>2];c=H[b+20>>2];l=c;h=H[b+16>>2];a=h+4|0;c=a>>>0<4?c+1|0:c;u:{if(a>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break u}n=H[b>>2];f=n+h|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;v:{w:{switch(f-2|0){case 1:if((c|0)>=(m|0)&a>>>0>=i>>>0|(c|0)>(m|0)){break u}a=I[a+n|0];c=l;f=h+5|0;c=f>>>0<5?c+1|0:c;H[b+16>>2]=f;H[b+20>>2]=c;F[j+8|0]=a;if((a|0)==1){if(Ud(j,b,g+16|0)){break v}break u}Rd(1799,23,H[3443]);break u;default:Rd(1774,24,H[3443]);break u;case 0:break w}}if(!Ud(j,b,g+16|0)){break u}}H[g+8>>2]=H[g+16>>2];H[g>>2]=H[g+20>>2];c=ca-32|0;ca=c;a=H[j>>2];p=L[j+4>>2];H[c+24>>2]=1065353216;h=-1<<a^-1;a=h;if((a|0)>0){L[c+24>>2]=p/O(a|0)}m=H[g+8>>2];n=H[g>>2];if((m|0)!=(n|0)){a=H[d+28>>2];while(1){b=H[m>>2];f=H[m+4>>2];p=L[c+24>>2];L[c+16>>2]=p*O(H[m+8>>2]-h|0);L[c+12>>2]=p*O(f-h|0);L[c+8>>2]=p*O(b-h|0);b=a;i=H[d+16>>2];f=H[i>>2];if(!I[f+84|0]){b=H[H[f+68>>2]+(a<<2)>>2]}if(K[f+80>>2]>b>>>0){a=H[f+40>>2];qa(H[H[f>>2]>>2]+N(a,b)|0,(c+8|0)+(H[i+4>>2]<<2)|0,a);n=H[g>>2];a=H[d+28>>2]}a=a+1|0;H[d+28>>2]=a;m=m+12|0;if((n|0)!=(m|0)){continue}break}}ca=c+32|0;k=1}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g+32|0;yc(d);j=1;if(k){break f}}j=0;break f;case 1:break s;default:break f}}if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}o=I[l+n|0];c=d;l=i+2|0;c=l>>>0<2?c+1|0:c;H[b+16>>2]=l;H[b+20>>2]=c;if(o>>>0>=7){H[e>>2]=o;Qd(1651,e);break f}c=d;d=i+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}f=l+n|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;if(k){m=0;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,f);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];m=m+1|0;if((k|0)!=(m|0)){continue}break}}a=Ac(e+672|0,e+704|0);x:{y:{switch(o|0){case 1:c=wb(e+16|0,g);b=zd(c,b,a,-1);xb(c);if(!b){break g}break x;case 2:c=ub(e+16|0,g);b=yd(c,b,a,-1);vb(c);if(!b){break g}break x;case 3:c=ub(e+16|0,g);b=xd(c,b,a,-1);vb(c);if(!b){break g}break x;case 4:c=$a(e+16|0,g);b=wd(c,b,a,-1);ab(c);if(!b){break g}break x;case 5:c=$a(e+16|0,g);b=vd(c,b,a,-1);ab(c);if(!b){break g}break x;case 6:c=$a(e+16|0,g);b=ud(c,b,a,-1);ab(c);if(b){break x}break g;case 0:break y;default:break g}}c=wb(e+16|0,g);b=Bd(c,b,a,-1);xb(c);if(!b){break g}}yc(a);j=1;break f}sa();v()}sa();v()}yc(a)}a=H[e+704>>2]}if(!a){break a}H[e+708>>2]=a;oa(a);break a}j=1;if(H[a+52>>2]==H[a+48>>2]){break b}while(1){if(!td(1,e+16|0,b)){break c}c=H[a+48>>2];d=H[e+16>>2];H[c+(m<<2)>>2]=d>>>1^0-(d&1);m=m+1|0;if(m>>>0<H[a+52>>2]-c>>2>>>0){continue}break}break b}j=0}a=H[e+672>>2];if(!a){break a}H[e+676>>2]=a;oa(a)}ca=e+720|0;return j|0}function te(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ca-32|0;ca=h;H[b+32>>2]=d;H[b+40>>2]=c;H[b+4>>2]=e;nc(a,d,h+16|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}d=I[h+23|0];if((ea[H[H[b>>2]+8>>2]](b)|0)!=(d|0)){b=pa(64);F[b+50|0]=0;c=I[1314]|I[1315]<<8;F[b+48|0]=c;F[b+49|0]=c>>>8;c=I[1310]|I[1311]<<8|(I[1312]<<16|I[1313]<<24);d=I[1306]|I[1307]<<8|(I[1308]<<16|I[1309]<<24);F[b+40|0]=d;F[b+41|0]=d>>>8;F[b+42|0]=d>>>16;F[b+43|0]=d>>>24;F[b+44|0]=c;F[b+45|0]=c>>>8;F[b+46|0]=c>>>16;F[b+47|0]=c>>>24;c=I[1302]|I[1303]<<8|(I[1304]<<16|I[1305]<<24);d=I[1298]|I[1299]<<8|(I[1300]<<16|I[1301]<<24);F[b+32|0]=d;F[b+33|0]=d>>>8;F[b+34|0]=d>>>16;F[b+35|0]=d>>>24;F[b+36|0]=c;F[b+37|0]=c>>>8;F[b+38|0]=c>>>16;F[b+39|0]=c>>>24;c=I[1294]|I[1295]<<8|(I[1296]<<16|I[1297]<<24);d=I[1290]|I[1291]<<8|(I[1292]<<16|I[1293]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1286]|I[1287]<<8|(I[1288]<<16|I[1289]<<24);d=I[1282]|I[1283]<<8|(I[1284]<<16|I[1285]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);d=I[1274]|I[1275]<<8|(I[1276]<<16|I[1277]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1270]|I[1271]<<8|(I[1272]<<16|I[1273]<<24);d=I[1266]|I[1267]<<8|(I[1268]<<16|I[1269]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,50);oa(b);break a}c=I[h+21|0];F[b+36|0]=c;e=I[h+22|0];F[b+37|0]=e;if((c-3&255)>>>0<=253){b=pa(32);F[b+22|0]=0;c=I[1427]|I[1428]<<8|(I[1429]<<16|I[1430]<<24);d=I[1423]|I[1424]<<8|(I[1425]<<16|I[1426]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1421]|I[1422]<<8|(I[1423]<<16|I[1424]<<24);d=I[1417]|I[1418]<<8|(I[1419]<<16|I[1420]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1413]|I[1414]<<8|(I[1415]<<16|I[1416]<<24);d=I[1409]|I[1410]<<8|(I[1411]<<16|I[1412]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=pa(32);F[b+22|0]=0;c=I[1404]|I[1405]<<8|(I[1406]<<16|I[1407]<<24);d=I[1400]|I[1401]<<8|(I[1402]<<16|I[1403]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1398]|I[1399]<<8|(I[1400]<<16|I[1401]<<24);d=I[1394]|I[1395]<<8|(I[1396]<<16|I[1397]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1390]|I[1391]<<8|(I[1392]<<16|I[1393]<<24);d=I[1386]|I[1387]<<8|(I[1388]<<16|I[1389]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}c=e|c<<8;G[H[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|G[h+26>>1]>=0){break b}i=ca-16|0;ca=i;e=pa(36);c=e;H[c+4>>2]=0;H[c+8>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[e>>2]=e+4;H[e+32>>2]=0;H[e+12>>2]=c;H[i>>2]=0;d=H[b+32>>2];j=ca-16|0;ca=j;c=0;c:{if(!e){break c}H[i>>2]=d;H[j+12>>2]=0;c=0;if(!Bb(1,j+12|0,d)){break c}m=H[j+12>>2];if(m){while(1){d:{if(Bb(1,j+8|0,H[i>>2])){c=pa(28);H[c+4>>2]=0;H[c+8>>2]=0;d=c+16|0;H[d>>2]=0;H[d+4>>2]=0;H[c>>2]=c+4;H[c+12>>2]=d;H[c+24>>2]=H[j+8>>2];if(ce(i,c)){break d}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}c=0;break c}f=ca-16|0;ca=f;H[f+8>>2]=c;e:{if(!c){break e}d=H[e+28>>2];f:{if(d>>>0<K[e+32>>2]){H[f+8>>2]=0;H[d>>2]=c;H[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=H[e+24>>2];l=H[e+28>>2]-g>>2;c=l+1|0;if(c>>>0<1073741824){g=H[e+32>>2]-g|0;k=g>>>1|0;g=g>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(g){if(g>>>0>=1073741824){break i}d=pa(g<<2)}k=H[f+8>>2];H[f+8>>2]=0;c=(l<<2)+d|0;H[c>>2]=k;g=(g<<2)+d|0;l=c+4|0;d=H[e+28>>2];k=H[e+24>>2];if((d|0)==(k|0)){break h}while(1){d=d-4|0;o=H[d>>2];H[d>>2]=0;c=c-4|0;H[c>>2]=o;if((d|0)!=(k|0)){continue}break}H[e+32>>2]=g;g=H[e+28>>2];H[e+28>>2]=l;d=H[e+24>>2];H[e+24>>2]=c;if((d|0)==(g|0)){break g}while(1){g=g-4|0;c=H[g>>2];H[g>>2]=0;if(c){Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}if((d|0)!=(g|0)){continue}break}break g}sa();v()}wa();v()}H[e+32>>2]=g;H[e+28>>2]=l;H[e+24>>2]=c}if(d){oa(d)}}c=H[f+8>>2];H[f+8>>2]=0;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}ca=f+16|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}}c=ce(i,e)}ca=j+16|0;j:{if(c){d=H[b+4>>2];c=H[d+4>>2];H[d+4>>2]=e;if(c){Uc(c)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break j}c=pa(32);F[c+26|0]=0;d=I[1579]|I[1580]<<8;F[c+24|0]=d;F[c+25|0]=d>>>8;d=I[1575]|I[1576]<<8|(I[1577]<<16|I[1578]<<24);f=I[1571]|I[1572]<<8|(I[1573]<<16|I[1574]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1567]|I[1568]<<8|(I[1569]<<16|I[1570]<<24);f=I[1563]|I[1564]<<8|(I[1565]<<16|I[1566]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1559]|I[1560]<<8|(I[1561]<<16|I[1562]<<24);f=I[1555]|I[1556]<<8|(I[1557]<<16|I[1558]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;H[a>>2]=-1;za(a+4|0,c,26);oa(c);H[i+8>>2]=0;Uc(e)}ca=i+16|0;if(H[a>>2]){break a}if(F[a+15|0]>=0){break b}oa(H[a+4>>2])}if(!(ea[H[H[b>>2]+12>>2]](b)|0)){b=pa(48);F[b+33|0]=0;F[b+32|0]=I[1384];c=I[1380]|I[1381]<<8|(I[1382]<<16|I[1383]<<24);d=I[1376]|I[1377]<<8|(I[1378]<<16|I[1379]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1372]|I[1373]<<8|(I[1374]<<16|I[1375]<<24);d=I[1368]|I[1369]<<8|(I[1370]<<16|I[1371]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1364]|I[1365]<<8|(I[1366]<<16|I[1367]<<24);d=I[1360]|I[1361]<<8|(I[1362]<<16|I[1363]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1356]|I[1357]<<8|(I[1358]<<16|I[1359]<<24);d=I[1352]|I[1353]<<8|(I[1354]<<16|I[1355]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,33);oa(b);break a}if(!(ea[H[H[b>>2]+20>>2]](b)|0)){b=mc(h,1582);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}if(!(ea[H[H[b>>2]+24>>2]](b)|0)){b=mc(h,1317);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ca=h+32|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-16|0;ca=m;H[m+12>>2]=b;b=pa(32);H[m>>2]=b;H[m+4>>2]=24;H[m+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;l=ca-48|0;ca=l;f=H[m+12>>2];d=a;a=a+16|0;b=H[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>H[b+16>>2];c=e?c:b;b=H[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=H[c+16>>2]){break a}}H[l+28>>2]=0;H[l+32>>2]=0;y=l+24|0;H[l+24>>2]=y|4;a=l+16|0;H[a>>2]=0;H[a+4>>2]=0;H[l+8>>2]=f;H[l+12>>2]=a;t=l+8|0;a=t;x=ca-16|0;ca=x;u=d+12|0;c=H[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=H[a>>2];while(1){d=c;b=H[c+16>>2];if((b|0)>(a|0)){o=d;c=H[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=H[d+4>>2];if(c){continue}break}o=d+4|0}g=pa(32);b=H[t>>2];q=g+24|0;a=q;H[a>>2]=0;H[a+4>>2]=0;H[g+16>>2]=b;r=g+20|0;H[r>>2]=a;c=H[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=ca-16|0;ca=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=I[f+27|0];h=b<<24>>24<0;i=I[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?H[k+4>>2]:i;b=h?H[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?H[k>>2]:k;h=h?H[f+16>>2]:f+16|0;A=Fa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=H[f>>2];m:{a=f;n:{if((a|0)==H[r>>2]){break n}o:{if(!h){b=f;while(1){a=H[b+8>>2];i=H[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=H[b+4>>2];if(b){continue}break}}i=I[k+11|0];s=i<<24>>24;b=(s|0)<0;j=I[a+27|0];n=j<<24>>24<0;p:{i=b?H[k+4>>2]:i;j=n?H[a+20>>2]:j;w=i>>>0<j>>>0?i:j;if(w){b=Fa(n?H[a+16>>2]:a+16|0,b?H[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){H[p+12>>2]=f;a=f;break e}H[p+12>>2]=a;a=a+4|0;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(s|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0<i>>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}break g}b=Fa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=H[f+4>>2];v:{if(!h){b=f;while(1){a=H[b+8>>2];j=H[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=H[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=I[a+27|0];b=j<<24>>24<0;y:{j=b?H[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=Fa((n|0)<0?H[k>>2]:k,b?H[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0<j>>>0){break x}break w}if((b|0)>=0){break w}}if(!h){H[p+12>>2]=f;a=f+4|0;break e}H[p+12>>2]=a;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(n|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0<i>>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}}H[p+12>>2]=a;a=f;break e}H[p+12>>2]=f;H[a>>2]=f}f=a;a=H[a>>2];if(a){b=0}else{a=pa(40);b=a+16|0;E:{if(F[c+27|0]>=0){e=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+24>>2];break E}za(b,H[c+16>>2],H[c+20>>2])}b=a+28|0;F:{if(F[c+39|0]>=0){e=H[c+32>>2];H[b>>2]=H[c+28>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+36>>2];break F}za(b,H[c+28>>2],H[c+32>>2])}H[a+8>>2]=H[p+12>>2];H[a>>2]=0;H[a+4>>2]=0;H[f>>2]=a;b=a;e=H[H[r>>2]>>2];if(e){H[r>>2]=e;b=H[f>>2]}Sb(H[r+4>>2],b);H[r+8>>2]=H[r+8>>2]+1;b=1}F[x+12|0]=b;H[x+8>>2]=a;ca=p+16|0;b=H[c+4>>2];G:{if(b){while(1){c=b;b=H[b>>2];if(b){continue}break G}}while(1){a=c;c=H[c+8>>2];if((a|0)!=H[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}H[g+8>>2]=d;H[g>>2]=0;H[g+4>>2]=0;H[o>>2]=g;c=g;a=H[H[u>>2]>>2];if(a){H[u>>2]=a;c=H[o>>2]}Sb(H[u+4>>2],c);H[u+8>>2]=H[u+8>>2]+1;a=1}F[l+44|0]=a;H[l+40>>2]=g;ca=x+16|0;c=H[l+40>>2];Kb(t|4,H[l+16>>2]);Kb(y,H[l+28>>2])}f=ca-48|0;ca=f;d=f+8|0;g=ca-32|0;ca=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(K[3660]<=1|0)){break I}}F[a|0]=49;b=a+1|0;h=0}H[g+12>>2]=h;H[g+8>>2]=b;h=ca-16|0;ca=h;e=ca-16|0;ca=e;J:{q=H[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){F[d+11|0]=g|I[d+11|0]&128;F[d+11|0]=I[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}Zb(t,b+1|0);b=H[e+8>>2];H[d>>2]=b;H[d+8>>2]=H[d+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[d+8>>2]=H[d+8>>2]|-2147483648;H[d+4>>2]=g}while(1){if((a|0)!=(q|0)){F[b|0]=I[a|0];b=b+1|0;a=a+1|0;continue}break}F[e+7|0]=0;F[b|0]=I[e+7|0];ca=e+16|0;break J}Na();v()}ca=h+16|0;ca=o;H[f+32>>2]=m;L:{M:{a=c+20|0;d=H[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=I[m+11|0];c=b<<24>>24<0;e=c?H[m>>2]:m;b=c?H[m+4>>2]:b;while(1){c=d;d=I[c+27|0];g=d<<24>>24<0;d=g?H[c+20>>2]:d;o=d>>>0<b>>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?H[c+16>>2]:c+16|0;q=Fa(e,g,h);if(!q){if(b>>>0<d>>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=H[c>>2];if(d){continue}break N}d=Fa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=H[c+4>>2];if(d){continue}break}g=c+4|0}d=pa(40);e=d+16|0;b=H[f+32>>2];T:{if(F[b+11|0]>=0){o=H[b+4>>2];H[e>>2]=H[b>>2];H[e+4>>2]=o;H[e+8>>2]=H[b+8>>2];break T}za(e,H[b>>2],H[b+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+36>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[g>>2]=d;c=d;b=H[H[a>>2]>>2];if(b){H[a>>2]=b;c=H[g>>2]}Sb(H[a+4>>2],c);H[a+8>>2]=H[a+8>>2]+1;a=1;break L}d=c;a=0}F[f+44|0]=a;H[f+40>>2]=d;a=H[f+40>>2];if(F[a+39|0]<0){oa(H[a+28>>2])}b=H[f+12>>2];H[a+28>>2]=H[f+8>>2];H[a+32>>2]=b;H[a+36>>2]=H[f+16>>2];ca=f+48|0;ca=l+48|0;if(F[m+11|0]<0){oa(H[m>>2])}ca=m+16|0}function Bd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];k=h+4|0;g=k>>>0<4?g+1|0:g;a:{if(j>>>0<k>>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>l>>>0&(h|0)>=(k|0)|(h|0)>(k|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0<g>>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}s=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+120>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+132>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=s;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){b=H[e+12>>2];f=H[e+24>>2];k=a-1|0;c=f+k|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=k;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>s>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+132>>2]|0;k=f+H[d+120>>2]|0;i=H[d>>2];l=a<<2;m=H[l+H[o>>2]>>2];f:{g:{if((i|0)==(m|0)){if(!j){break g}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break g}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;h:{if(c){break h}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break h}m=H[k>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;i:{if(g>>>0>3){break i}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break i}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[c+16>>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break g}j:{k:{l:{m:{if(j>>>0<=2){c=H[d+108>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break m}break j}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+120>>2];n=g+1|0;o=N(n,12);p=b+o|0;if((p|0)!=(k|0)){Aa(p,H[k>>2],H[k+4>>2]);b=H[d+120>>2]}b=l+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<<i+(m^-1));b=Q(j)^31;i=H[d+32>>2];m=32-i|0;n:{if((b|0)<=(m|0)){k=H[d+28>>2];if((k|0)==H[d+20>>2]){break l}m=H[k>>2];p=b+i|0;H[d+32>>2]=p;b=m<<i>>>32-b|0;if((p|0)!=32){break n}H[d+32>>2]=0;H[d+28>>2]=k+4;break n}k=H[d+28>>2];p=k+4|0;if((p|0)==H[d+20>>2]){break l}r=H[k>>2];H[d+28>>2]=p;m=b-m|0;H[d+32>>2]=m;b=H[k+4>>2]>>>32-m|r<<i>>>32-b}i=j>>>1|0;if(i>>>0<b>>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break j}i=j>>>1|0;b=0}o:{p:{b=i-b|0;c=j-b|0;q:{if((c|0)==(b|0)){c=b;break q}i=H[d+88>>2];if((i|0)==H[d+80>>2]){break p}j=H[i>>2];k=H[d+92>>2];m=k+1|0;H[d+92>>2]=m;j=j&-2147483648>>>k;r:{if((m|0)==32){H[d+92>>2]=0;H[d+88>>2]=i+4;if(j){break r}break p}if(!j){break p}}}i=c;c=b;break o}i=b}b=H[d+132>>2];j=b+f|0;f=H[j>>2];k=f+l|0;H[k>>2]=H[k>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=i;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}m=0;if(!j){break g}while(1){if(H[d+12>>2]){i=H[d+40>>2];p=H[o>>2];c=H[d+96>>2];r=H[d+108>>2];a=0;while(1){g=r+(a<<2)|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;l=H[f+p>>2];s:{if((b|0)==(l|0)){break s}f=c+f|0;b=b-l|0;l=H[d+52>>2];q=32-l|0;if((b|0)<=(q|0)){n=H[d+48>>2];if((n|0)==(i|0)){c=0;break e}H[f>>2]=H[n>>2]<<l>>>32-b;b=b+H[d+52>>2]|0;H[d+52>>2]=b;if((b|0)!=32){break s}H[d+52>>2]=0;H[d+48>>2]=n+4;break s}n=H[d+48>>2];t=n+4|0;if((i|0)==(t|0)){c=0;break e}u=H[n>>2];H[d+48>>2]=t;q=b-q|0;H[d+52>>2]=q;H[f>>2]=H[n+4>>2]>>>32-q|u<<l>>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[k>>2]>>2];a=a+1|0;if(a>>>0<K[d+12>>2]){continue}break}}i=0;a=H[h+16>>2];t:{if((a|0)==H[h+20>>2]){break t}while(1){f=H[h+28>>2];c=N(i,20)+a|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break t}n=H[d+96>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;u:{if(g>>>0>3){break u}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break u}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[c+16>>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;v:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break v}}w:{if((a|0)==(f|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break w}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function zd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];l=H[b+12>>2];k=H[b+20>>2];i=H[b+16>>2];f=i+4|0;k=f>>>0<4?k+1|0:k;a:{if(f>>>0>j>>>0&(k|0)>=(l|0)|(k|0)>(l|0)){break a}i=i+H[b>>2]|0;H[a>>2]=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);i=H[b+20>>2];j=i;f=H[b+16>>2];i=f+4|0;l=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=l;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];f=f+8|0;j=f>>>0<8?j+1|0:j;if((k|0)<=(j|0)&f>>>0>l>>>0|(k|0)<(j|0)){break a}i=H[b>>2]+i|0;f=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[a+4>>2]=f;j=H[b+20>>2];i=H[b+16>>2]+4|0;j=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=j;if(!f){return 1}if(d>>>0<f>>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}t=H[a+4>>2];i=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}g=H[f+120>>2];d=H[g>>2];if(d){H[g+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[g+4>>2]=c;H[g>>2]=b;H[g+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=pa(a);H[e+8>>2]=h;b=a+h|0;H[e+16>>2]=b;ra(h,0,a);H[e+12>>2]=b}c=H[f+132>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);h=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=h;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=t;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){j=H[e+12>>2];g=H[e+24>>2];d=a-1|0;c=g+d|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;n=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+g|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>t>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+120>>2];o=N(n,12);q=b+o|0;g=H[f>>2];h=a<<2;l=o+H[f+132>>2]|0;c=H[h+H[l>>2]>>2];f:{g:{if((g|0)==(c|0)){if(!m){break g}h=0;b=H[i+20>>2];c=H[i+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[i+28>>2]=m+H[i+28>>2];H[f+8>>2]=a+m;break g}while(1){d=(b|0)==(c|0);a=b;g=0;b=c;h:{if(d){break h}while(1){d=H[i+28>>2];b=a;k=N(g,20)+c|0;l=H[k>>2];if(!I[l+84|0]){d=H[H[l+68>>2]+(d<<2)>>2]}if(K[l+80>>2]<=d>>>0){break h}j=H[q>>2]+(H[k+4>>2]<<2)|0;c=H[k+12>>2];b=j;i:{if(c>>>0>3){break i}a=0;b=H[i+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,j+(a<<2)|0,c);c=H[k+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[k+16>>2]){continue}break}b=H[i+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+20>>2];b=a;c=H[i+16>>2];if(g>>>0<(b-c|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;h=h+1|0;if((m|0)!=(h|0)){continue}break}break g}j:{k:{l:{m:{if(m>>>0<=2){c=H[f+108>>2];H[c>>2]=a;h=1;b=H[f+12>>2];if(b>>>0>1){break m}break j}if(K[f+8>>2]>K[f+4>>2]){break e}j=b;b=o+12|0;Aa(j+b|0,H[q>>2],H[q+4>>2]);b=h+H[b+H[f+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<g+(c^-1));k=Q(m)^31;l=H[f+32>>2];g=32-l|0;n:{if((k|0)<=(g|0)){g=H[f+28>>2];if((g|0)==H[f+20>>2]){break l}c=H[g>>2];b=k+l|0;H[f+32>>2]=b;c=c<<l>>>32-k|0;if((b|0)!=32){break n}H[f+32>>2]=0;H[f+28>>2]=g+4;break n}j=H[f+28>>2];b=j+4|0;if((b|0)==H[f+20>>2]){break l}c=H[j>>2];H[f+28>>2]=b;b=k-g|0;H[f+32>>2]=b;c=H[j+4>>2]>>>32-b|c<<l>>>32-k}g=m>>>1|0;if(g>>>0<c>>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(h<<2)>>2]=a;b=H[f+12>>2];h=h+1|0;if(b>>>0>h>>>0){continue}break}break j}g=m>>>1|0;c=0}k=n+1|0;o:{p:{b=g-c|0;c=m-b|0;q:{if((c|0)==(b|0)){c=b;break q}l=H[f+88>>2];if((l|0)==H[f+80>>2]){break p}j=H[l>>2];g=H[f+92>>2];d=g+1|0;H[f+92>>2]=d;g=j&-2147483648>>>g;r:{if((d|0)==32){H[f+92>>2]=0;H[f+88>>2]=l+4;if(g){break r}break p}if(!g){break p}}}g=c;c=b;break o}g=b}l=H[f+132>>2];j=l+o|0;d=H[j>>2];b=d+h|0;H[b>>2]=H[b>>2]+1;Aa(l+N(k,12)|0,d,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((d|0)!=(h|0)?N(d-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+h>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!g){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((c|0)!=(h|0)?N(c-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+h>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=a;H[b>>2]=g;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}r=0;if(!m){break g}while(1){if(H[f+12>>2]){u=H[f+40>>2];j=H[l>>2];s=H[f+96>>2];g=H[f+108>>2];a=0;while(1){n=(a<<2)+g|0;H[s+(H[n>>2]<<2)>>2]=0;d=H[f>>2];c=H[n>>2]<<2;b=H[c+j>>2];s:{if((d|0)==(b|0)){break s}o=c+s|0;p=d-b|0;h=H[f+52>>2];d=32-h|0;if((p|0)<=(d|0)){c=H[f+48>>2];if((c|0)==(u|0)){d=0;break e}H[o>>2]=H[c>>2]<<h>>>32-p;b=p+H[f+52>>2]|0;H[f+52>>2]=b;if((b|0)!=32){break s}H[f+52>>2]=0;H[f+48>>2]=c+4;break s}k=H[f+48>>2];b=k+4|0;if((u|0)==(b|0)){d=0;break e}c=H[k>>2];H[f+48>>2]=b;b=p-d|0;H[f+52>>2]=b;H[o>>2]=H[k+4>>2]>>>32-b|c<<h>>>32-p}c=H[n>>2]<<2;b=c+s|0;H[b>>2]=H[b>>2]|H[c+H[q>>2]>>2];a=a+1|0;if(a>>>0<K[f+12>>2]){continue}break}}g=0;a=H[i+16>>2];t:{if((a|0)==H[i+20>>2]){break t}while(1){d=H[i+28>>2];h=N(g,20)+a|0;k=H[h>>2];if(!I[k+84|0]){d=H[H[k+68>>2]+(d<<2)>>2]}if(K[k+80>>2]<=d>>>0){break t}j=H[f+96>>2]+(H[h+4>>2]<<2)|0;c=H[h+12>>2];b=j;u:{if(c>>>0>3){break u}a=0;b=H[i+12>>2];if(!H[h+16>>2]){break u}while(1){b=qa(b,j+(a<<2)|0,c);c=H[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[h+16>>2]){continue}break}b=H[i+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+16>>2];if(g>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;r=r+1|0;if((m|0)!=(r|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;h=H[e+16>>2];a=H[e+12>>2];b=h-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;h=H[e+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}c=170;v:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break v}}w:{if((a|0)==(h|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break w}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;g=d;break b}sa();v()}sa();v()}}return g}function wd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];j=H[b+12>>2];n=H[b+20>>2];e=H[b+16>>2];h=e+4|0;n=h>>>0<4?n+1|0:n;a:{if(i>>>0<h>>>0&(j|0)<=(n|0)|(j|0)<(n|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;j=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=j;if(K[a>>2]>32){break a}j=H[b+8>>2];n=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>j>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0<h>>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;k=pa(a);H[f+8>>2]=k;b=a+k|0;H[f+16>>2]=b;ra(k,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);k=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=k;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}n=g+16|0;while(1){j=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];o=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(o>>>0>u>>>0){break e}a=H[g+12>>2];k=(i|0)!=(a-1|0)?i+1|0:0;if(k>>>0>=a>>>0){break e}p=N(q,12);w=p+H[g+640>>2]|0;r=p+H[g+628>>2]|0;h=H[g>>2];l=k<<2;e=H[l+H[w>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!o){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;j=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(j,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[i+16>>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;j=j+1|0;c=H[d+16>>2];if(j>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((o|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(o>>>0<=2){c=H[g+616>>2];H[c>>2]=k;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];j=q+1|0;m=N(j,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<<h+(e^-1));b=0;a=0;c=Q(o)^31;if(!c){a=o>>>1|0;break k}while(1){b=Ba((a<<4)+n|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=o>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){k=(b-1|0)!=(k|0)?k+1|0:0;H[c+(a<<2)>>2]=k;a=a+1|0;b=H[g+12>>2];if(a>>>0<b>>>0){continue}break}break j}m:{n:{b=a-b|0;a=o-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=k;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=j;H[a+4>>2]=k;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}k=0;if(!o){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[w>>2];t=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[t+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+t|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<<m>>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}j=H[g+556>>2];b=j+4|0;if((q|0)==(b|0)){c=0;break e}c=H[j>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[j+4>>2]>>>32-b|c<<m>>>32-s}c=H[p>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0<K[g+12>>2]){continue}break}}j=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(j,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[i+16>>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);j=j+1|0;a=H[d+16>>2];if(j>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;k=k+1|0;if((o|0)!=(k|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;k=H[f+16>>2];a=H[f+12>>2];b=k-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;k=H[f+16>>2];b=k-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(k|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((k|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function ud(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];o=H[b+20>>2];e=H[b+16>>2];h=e+4|0;o=h>>>0<4?o+1|0:o;a:{if(i>>>0<h>>>0&(k|0)<=(o|0)|(k|0)<(o|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;k=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];o=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(o|0)|(i|0)>(o|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0<h>>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}w=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[f+8>>2]=j;b=a+j|0;H[f+16>>2]=b;ra(j,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);j=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=j;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=w;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}o=g+16|0;while(1){i=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];n=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(n>>>0>w>>>0){break e}a=H[g+628>>2];p=N(q,12);t=p+H[g+640>>2]|0;j=Vd(g,n,t);if(j>>>0>=K[g+12>>2]){break e}r=a+p|0;h=H[g>>2];l=j<<2;e=H[l+H[t>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!n){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;k=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(k,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[i+16>>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;k=k+1|0;c=H[d+16>>2];if(k>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((n|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){c=H[g+616>>2];H[c>>2]=j;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];k=q+1|0;m=N(k,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<<h+(e^-1));b=0;a=0;c=Q(n)^31;if(!c){a=n>>>1|0;break k}while(1){b=Ba((a<<4)+o|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[c+(a<<2)>>2]=j;a=a+1|0;b=H[g+12>>2];if(a>>>0<b>>>0){continue}break}break j}m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}j=0;if(!n){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[t>>2];u=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[u+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+u|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<<m>>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}k=H[g+556>>2];b=k+4|0;if((q|0)==(b|0)){c=0;break e}c=H[k>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[k+4>>2]>>>32-b|c<<m>>>32-s}c=H[p>>2]<<2;b=c+u|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0<K[g+12>>2]){continue}break}}k=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(k,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[i+16>>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);k=k+1|0;a=H[d+16>>2];if(k>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;j=j+1|0;if((n|0)!=(j|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;j=H[f+16>>2];a=H[f+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;j=H[f+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function vd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];m=H[b+20>>2];f=H[b+16>>2];h=f+4|0;m=h>>>0<4?m+1|0:m;a:{if(i>>>0<h>>>0&(k|0)<=(m|0)|(k|0)<(m|0)){break a}f=f+H[b>>2]|0;H[a>>2]=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);f=H[b+20>>2];i=f;h=H[b+16>>2];f=h+4|0;k=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];m=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(m|0)|(i|0)>(m|0)){break a}f=f+H[b>>2]|0;h=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];f=H[b+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=i;if(!h){return 1}if(d>>>0<h>>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];b=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;g=b+d|0;H[e+16>>2]=g;ra(b,0,d);H[e+12>>2]=g}h=H[f+628>>2];d=H[h>>2];if(d){H[h+4>>2]=d;oa(d);g=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[h+4>>2]=g;H[h>>2]=b;H[h+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[e+8>>2]=j;b=a+j|0;H[e+16>>2]=b;ra(j,0,a);H[e+12>>2]=b}d=H[f+640>>2];a=H[d>>2];if(a){H[d+4>>2]=a;oa(a);j=H[e+8>>2];b=H[e+12>>2]}H[d+4>>2]=b;H[d>>2]=j;H[d+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}m=f+16|0;while(1){k=H[e+12>>2];h=H[e+24>>2];g=a-1|0;d=h+g|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];n=H[b>>2];H[e+28>>2]=g;b=H[e+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(n>>>0>u>>>0){d=0;break e}d=0;a=H[f+12>>2];j=(i|0)!=(a-1|0)?i+1|0:0;if(j>>>0>=a>>>0){break e}a=H[f+628>>2];o=N(q,12);s=a+o|0;g=H[f>>2];l=j<<2;k=o+H[f+640>>2]|0;b=H[l+H[k>>2]>>2];f:{g:{if((g|0)==(b|0)){if(!n){break g}g=H[c+16>>2];b=H[c+20>>2];p=0;while(1){d=(b|0)==(g|0);a=b;j=0;b=g;h:{if(d){break h}while(1){d=H[c+28>>2];b=a;k=N(j,20)+g|0;i=H[k>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break h}h=H[s>>2]+(H[k+4>>2]<<2)|0;g=H[k+12>>2];b=h;i:{if(g>>>0>3){break i}a=0;b=H[c+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,h+(a<<2)|0,g);g=H[k+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[k+16>>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);a=H[c+20>>2];b=a;j=j+1|0;g=H[c+16>>2];if(j>>>0<(a-g|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){d=H[f+616>>2];H[d>>2]=j;a=1;b=H[f+12>>2];if(b>>>0>1){break l}break j}if(K[f+8>>2]>K[f+4>>2]){break e}d=a;a=o+12|0;Aa(d+a|0,H[s>>2],H[s+4>>2]);a=l+H[a+H[f+628>>2]>>2]|0;H[a>>2]=H[a>>2]+(1<<g+(b^-1));b=0;a=0;d=Q(n)^31;if(!d){a=n>>>1|0;break k}while(1){b=Ba((a<<4)+m|0)|b<<1;a=a+1|0;if((d|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}d=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[d+(a<<2)>>2]=j;a=a+1|0;b=H[f+12>>2];if(a>>>0<b>>>0){continue}break}break j}k=q+1|0;m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[f+596>>2];if((i|0)==H[f+588>>2]){break n}h=H[i>>2];g=H[f+600>>2];d=g+1|0;H[f+600>>2]=d;g=h&-2147483648>>>g;p:{if((d|0)==32){H[f+600>>2]=0;H[f+596>>2]=i+4;if(g){break p}break n}if(!g){break n}}}d=a;a=b;break m}d=b}i=H[f+640>>2];h=i+o|0;g=H[h>>2];b=g+l|0;H[b>>2]=H[b>>2]+1;Aa(i+N(k,12)|0,g,H[h+4>>2]);if(a){h=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];b=H[e+12>>2];if((h|0)==(((b|0)!=(g|0)?N(g-b>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=b}b=(h>>>0)/341|0;b=H[g+(b<<2)>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[e+28>>2]=H[e+28>>2]+1}if(!d){break g}b=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];a=H[e+12>>2];if((b|0)==(((a|0)!=(g|0)?N(g-a>>2,341)-1|0:0)|0)){xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=a}a=(b>>>0)/341|0;a=H[g+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=d;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}p=0;if(!n){break g}while(1){if(H[f+12>>2]){w=H[f+548>>2];i=H[k>>2];t=H[f+604>>2];h=H[f+616>>2];a=0;while(1){j=h+(a<<2)|0;H[(H[j>>2]<<2)+t>>2]=0;g=H[f>>2];d=H[j>>2]<<2;b=H[d+i>>2];q:{if((g|0)==(b|0)){break q}q=d+t|0;r=g-b|0;o=H[f+560>>2];g=32-o|0;if((r|0)<=(g|0)){d=H[f+556>>2];if((d|0)==(w|0)){d=0;break e}H[q>>2]=H[d>>2]<<o>>>32-r;b=H[f+560>>2]+r|0;H[f+560>>2]=b;if((b|0)!=32){break q}H[f+560>>2]=0;H[f+556>>2]=d+4;break q}l=H[f+556>>2];b=l+4|0;if((b|0)==(w|0)){d=0;break e}d=H[l>>2];H[f+556>>2]=b;b=r-g|0;H[f+560>>2]=b;H[q>>2]=H[l+4>>2]>>>32-b|d<<o>>>32-r}d=H[j>>2]<<2;b=d+t|0;H[b>>2]=H[b>>2]|H[d+H[s>>2]>>2];a=a+1|0;if(a>>>0<K[f+12>>2]){continue}break}}j=0;a=H[c+16>>2];r:{if((a|0)==H[c+20>>2]){break r}while(1){d=H[c+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break r}h=H[f+604>>2]+(H[l+4>>2]<<2)|0;g=H[l+12>>2];b=h;s:{if(g>>>0>3){break s}a=0;b=H[c+12>>2];if(!H[l+16>>2]){break s}while(1){b=qa(b,h+(a<<2)|0,g);g=H[l+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[l+16>>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);j=j+1|0;a=H[c+16>>2];if(j>>>0<(H[c+20>>2]-a|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;j=H[e+16>>2];a=H[e+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;j=H[e+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}g=170;t:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break u}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}g=d}return g}function yd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];l=h+4|0;g=l>>>0<4?g+1|0:g;a:{if(j>>>0<l>>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}k=H[b+8>>2];l=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>k>>>0&(h|0)>=(l|0)|(h|0)>(l|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0<g>>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}r=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+116>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=r;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}t=d+16|0;while(1){b=H[e+12>>2];f=H[e+24>>2];l=a-1|0;c=f+l|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=l;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>r>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+128>>2]|0;l=f+H[d+116>>2]|0;i=H[d>>2];k=a<<2;n=H[k+H[o>>2]>>2];f:{if((i|0)==(n|0)){if(!j){break f}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break f}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;g:{if(c){break g}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break g}n=H[l>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;h:{if(g>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break h}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[c+16>>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=H[d+104>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break l}break i}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+116>>2];m=g+1|0;o=N(m,12);q=b+o|0;if((q|0)!=(l|0)){Aa(q,H[l>>2],H[l+4>>2]);b=H[d+116>>2]}b=k+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<<i+(n^-1));H[e+4>>2]=0;pc(t,Q(j)^31,e+4|0);b=j>>>1|0;i=H[e+4>>2];if(b>>>0<i>>>0){break e}b=b-i|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}i=H[d+84>>2];if((i|0)==H[d+76>>2]){break k}j=H[i>>2];l=H[d+88>>2];n=l+1|0;H[d+88>>2]=n;j=j&-2147483648>>>l;n:{if((n|0)==32){H[d+88>>2]=0;H[d+84>>2]=i+4;if(j){break n}break k}if(!j){break k}}}i=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}i=b}b=H[d+128>>2];j=b+f|0;f=H[j>>2];l=f+k|0;H[l>>2]=H[l>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=m;H[b+4>>2]=a;H[b>>2]=i;H[e+28>>2]=H[e+28>>2]+1;break f}n=0;if(!j){break f}while(1){if(H[d+12>>2]){i=H[d+36>>2];q=H[o>>2];c=H[d+92>>2];u=H[d+104>>2];a=0;while(1){g=(a<<2)+u|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;k=H[f+q>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=H[d+48>>2];p=32-k|0;if((b|0)<=(p|0)){m=H[d+44>>2];if((m|0)==(i|0)){c=0;break e}H[f>>2]=H[m>>2]<<k>>>32-b;b=b+H[d+48>>2]|0;H[d+48>>2]=b;if((b|0)!=32){break o}H[d+48>>2]=0;H[d+44>>2]=m+4;break o}m=H[d+44>>2];s=m+4|0;if((i|0)==(s|0)){c=0;break e}w=H[m>>2];H[d+44>>2]=s;p=b-p|0;H[d+48>>2]=p;H[f>>2]=H[m+4>>2]>>>32-p|w<<k>>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[l>>2]>>2];a=a+1|0;if(a>>>0<K[d+12>>2]){continue}break}}i=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){f=H[h+28>>2];c=N(i,20)+a|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break p}m=H[d+92>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;q:{if(g>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break q}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0<K[c+16>>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;n=n+1|0;if((j|0)!=(n|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;r:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break s}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function xd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];n=H[b+20>>2];h=H[b+16>>2];f=h+4|0;n=f>>>0<4?n+1|0:n;a:{if((k|0)<=(n|0)&f>>>0>i>>>0|(k|0)<(n|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];i=h;f=H[b+16>>2];h=f+4|0;k=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];n=H[b+12>>2];f=f+8|0;i=f>>>0<8?i+1|0:i;if(f>>>0>k>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}h=H[b>>2]+h|0;f=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=f;i=H[b+20>>2];h=H[b+16>>2]+4|0;i=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=i;if(!f){return 1}if(d>>>0<f>>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}u=H[a+4>>2];h=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}j=H[f+116>>2];d=H[j>>2];if(d){H[j+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[j+4>>2]=c;H[j>>2]=b;H[j+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=pa(a);H[e+8>>2]=g;b=a+g|0;H[e+16>>2]=b;ra(g,0,a);H[e+12>>2]=b}c=H[f+128>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);g=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=g;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}n=f+16|0;while(1){i=H[e+12>>2];j=H[e+24>>2];d=a-1|0;c=j+d|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;o=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>u>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+116>>2];p=N(o,12);r=b+p|0;j=H[f>>2];g=a<<2;k=p+H[f+128>>2]|0;c=H[g+H[k>>2]>>2];f:{if((j|0)==(c|0)){if(!m){break f}b=H[h+20>>2];c=H[h+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[h+28>>2]=m+H[h+28>>2];H[f+8>>2]=a+m;break f}while(1){i=(b|0)==(c|0);a=b;j=0;b=c;g:{if(i){break g}while(1){g=H[h+28>>2];b=a;l=N(j,20)+c|0;k=H[l>>2];if(!I[k+84|0]){g=H[H[k+68>>2]+(g<<2)>>2]}if(K[k+80>>2]<=g>>>0){break g}i=H[r>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=i;h:{if(c>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break h}while(1){b=qa(b,i+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[l+16>>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+20>>2];b=a;c=H[h+16>>2];if(j>>>0<(b-c|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((m|0)!=(d|0)){continue}break}break f}i:{j:{k:{l:{if(m>>>0<=2){c=H[f+104>>2];H[c>>2]=a;g=1;b=H[f+12>>2];if(b>>>0>1){break l}break i}if(K[f+8>>2]>K[f+4>>2]){break e}i=b;b=p+12|0;Aa(i+b|0,H[r>>2],H[r+4>>2]);b=g+H[b+H[f+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<<j+(c^-1));H[e+4>>2]=0;pc(n,Q(m)^31,e+4|0);c=m>>>1|0;b=H[e+4>>2];if(c>>>0<b>>>0){break e}l=o+1|0;b=c-b|0;c=m-b|0;m:{if((c|0)==(b|0)){c=b;break m}k=H[f+84>>2];if((k|0)==H[f+76>>2]){break k}i=H[k>>2];j=H[f+88>>2];d=j+1|0;H[f+88>>2]=d;j=i&-2147483648>>>j;n:{if((d|0)==32){H[f+88>>2]=0;H[f+84>>2]=k+4;if(j){break n}break k}if(!j){break k}}}j=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(g<<2)>>2]=a;b=H[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break i}j=b}k=H[f+128>>2];i=k+p|0;d=H[i>>2];b=d+g|0;H[b>>2]=H[b>>2]+1;Aa(k+N(l,12)|0,d,H[i+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((d|0)!=(g|0)?N(d-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+g>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=o;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!j){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((c|0)!=(g|0)?N(c-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+g>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=a;H[b>>2]=j;H[e+28>>2]=H[e+28>>2]+1;break f}s=0;if(!m){break f}while(1){if(H[f+12>>2]){w=H[f+36>>2];i=H[k>>2];t=H[f+92>>2];j=H[f+104>>2];a=0;while(1){o=(a<<2)+j|0;H[t+(H[o>>2]<<2)>>2]=0;d=H[f>>2];c=H[o>>2]<<2;b=H[c+i>>2];o:{if((d|0)==(b|0)){break o}p=c+t|0;q=d-b|0;g=H[f+48>>2];d=32-g|0;if((q|0)<=(d|0)){c=H[f+44>>2];if((c|0)==(w|0)){d=0;break e}H[p>>2]=H[c>>2]<<g>>>32-q;b=q+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break o}H[f+48>>2]=0;H[f+44>>2]=c+4;break o}l=H[f+44>>2];b=l+4|0;if((w|0)==(b|0)){d=0;break e}c=H[l>>2];H[f+44>>2]=b;b=q-d|0;H[f+48>>2]=b;H[p>>2]=H[l+4>>2]>>>32-b|c<<g>>>32-q}c=H[o>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0<K[f+12>>2]){continue}break}}j=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){g=H[h+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){g=H[H[i+68>>2]+(g<<2)>>2]}if(K[i+80>>2]<=g>>>0){break p}d=H[f+92>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=d;q:{if(c>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break q}while(1){b=qa(b,d+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0<K[l+16>>2]){continue}break}b=H[h+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+16>>2];if(j>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;s=s+1|0;if((m|0)!=(s|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}d=1}H[e+28>>2]=0;g=H[e+16>>2];a=H[e+12>>2];b=g-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;g=H[e+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}c=170;r:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break r}}s:{if((a|0)==(g|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break s}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;j=d;break b}sa();v()}sa();v()}}return j}function $c(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=ca-32|0;ca=h;g=H[H[a+4>>2]+44>>2];c=H[a+8>>2];d=H[c>>2];c=H[c+4>>2];H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=H[g+96>>2];f=(H[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=H[g+104>>2];c=H[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=N(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=l;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=N(e,12)+c|0;if(f>>>0<36){break b}while(1){f=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=f;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];f=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=f;H[d+32>>2]=H[h+24>>2];f=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=f;f=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=f;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}H[g+100>>2]=c;break a}c:{f=H[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0<i>>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=pa(N(i,12))}f=N(n,12)+l|0;d=f;e=N(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=r;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=j;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];j=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=j;H[d+32>>2]=H[h+24>>2];j=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=j;j=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=j;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=H[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=H[c+4>>2];f=f-12|0;d=f;H[d>>2]=H[c>>2];H[d+4>>2]=n;H[d+8>>2]=H[c+8>>2];if((c|0)!=(j|0)){continue}break}c=H[g+96>>2]}H[g+104>>2]=N(i,12)+l;H[g+100>>2]=e;H[g+96>>2]=f;if(c){oa(c)}break a}sa();v()}wa();v()}if(d>>>0>=f>>>0){break a}H[g+100>>2]=c+N(d,12)}d:{if(H[a+216>>2]==H[a+220>>2]){j=H[a+4>>2];c=H[j+44>>2];d=H[c+100>>2];f=H[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=H[a+8>>2];i=f+N(c,12)|0;g=N(c,3);e:{f:{if((g|0)==-1){e=H[(H[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=H[H[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=H[H[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=H[H[d>>2]+(g<<2)>>2]}H[i+8>>2]=m;H[i+4>>2]=e;H[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}H[H[j+4>>2]+80>>2]=b;c=1;break d}d=0;H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;l=H[a+8>>2];c=H[l>>2];g=H[l+4>>2];H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=pa(c);H[h>>2]=b;H[h+8>>2]=(c&-4)+b;u=h,w=ra(b,0,c)+c|0,H[u+4>>2]=w}c=H[l+24>>2];if((H[l+28>>2]-c|0)<4){break h}f=0;while(1){g=H[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(H[H[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=H[a+216>>2];c=H[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=N(j,144)+n|0;c=H[s+H[H[i+68>>2]>>2]>>2];o:{if(!(H[H[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=H[H[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=H[i+32>>2];i=H[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=H[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=H[H[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;H[(g<<2)+b>>2]=e;s:{if(k>>>0<o>>>0){H[k>>2]=g;k=k+4|0;H[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=pa(c<<2)}else{d=0}e=d+(e<<2)|0;H[e>>2]=g;m=c<<2;c=va(d,f,i);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(f){oa(f);l=H[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=H[a+220>>2];j=H[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=H[(j+N(c,144)|0)+32>>2];r=i<<2;if(H[q+r>>2]==H[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;H[b+r>>2]=e;if(k>>>0<o>>>0){H[k>>2]=i;k=k+4|0;H[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=pa(c<<2)}else{f=0}e=f+(e<<2)|0;H[e>>2]=i;m=c<<2;c=va(f,d,j);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(!d){d=c;break u}oa(d);l=H[a+8>>2];d=c;break u}H[(i<<2)+b>>2]=H[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=H[l+24>>2];if((p|0)<H[l+28>>2]-c>>2){continue}break}break h}sa();v()}sa();v()}wa();v()}sa();v()}i=H[a+4>>2];a=H[i+44>>2];c=H[a+100>>2];a=H[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=N(c,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;e=N(c|1,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=N(c,12);c=g+b|0;f=H[c>>2];e=H[c+4>>2];a=a+g|0;H[a+8>>2]=H[c+8>>2];H[a>>2]=f;H[a+4>>2]=e}H[H[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){oa(b)}if(!d){break d}H[h+20>>2]=d;oa(d)}ca=h+32|0;return c}function Fj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0;g=ca+-64|0;ca=g;H[a+8>>2]=e;y=a+32|0;f=H[y>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){ya(y,e-d|0);H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;d=0;if(!e){break a}}Pa(g+16|0,e,g);h=H[g+28>>2];d=H[g+32>>2]}H[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[g+32>>2]=(e<<2)+h;break c}Pa(g+16|12,e-d|0,g)}H[g>>2]=0;f=H[g+40>>2];d=H[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[g+44>>2]=f+(e<<2);break d}Pa(g+40|0,e-d|0,g)}H[g>>2]=0;f=H[g+52>>2];d=H[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[g+56>>2]=f+(e<<2);break e}Pa(g+52|0,e-d|0,g)}f:{if(H[a+8>>2]<=0){break f}i=H[g+16>>2];j=H[a+32>>2];h=0;while(1){d=h<<2;f=H[d+i>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}h=h+1|0;d=H[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=H[b+i>>2]+H[j+i>>2]|0;H[f>>2]=i;h:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break h}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}G=H[a+52>>2];t=H[a+48>>2];z=pa(16);d=z;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=pa(d);H[g>>2]=r;H[g+8>>2]=d+r;ra(r,0,d)}A=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<<x;n=H[t>>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(H[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=H[H[H[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=H[G>>2];h=H[t+28>>2];p=H[l+(H[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=H[l+(H[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=H[l+(H[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=H[(g+16|0)+N(i,12)>>2];l=N(e,h);q=N(e,q);p=N(e,p);h=0;o=0;if(F){while(1){H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2];u=h|1;H[j+(u<<2)>>2]=(H[(l+u<<2)+c>>2]+H[(q+u<<2)+c>>2]|0)-H[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|H[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=H[H[H[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(H[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=H[H[H[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&H[O>>2]){break v}d=H[H[H[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ra(r,0,L)}d=j-1|0;q=(d<<2)+z|0;d=N(d,12)+a|0;u=d;x=H[d- -64>>2];k=0;d=H[g>>2];f=0;while(1){i=H[q>>2];H[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(H[H[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=H[(g+16|0)+N(k,12)>>2];i=0;h=0;p=0;if(!M){while(1){l=h<<2;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];o=l|4;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];o=l|8;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];l=l|12;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;H[p>>2]=H[l+n>>2]+H[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=N(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(F){break n}break m}i=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+k>>2];n=H[a+16>>2];x:{if((f|0)>(n|0)){H[d+j>>2]=n;break x}d=d+j|0;n=H[a+12>>2];if((n|0)>(f|0)){H[d>>2]=n;break x}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;y:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break y}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}break k}Ca();v()}while(1){j=h<<2;k=j+r|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+r|0;H[j>>2]=H[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+r>>2];k=H[a+16>>2];z:{if((f|0)>(k|0)){H[d+j>>2]=k;break z}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break z}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;A:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break A}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[g>>2];if(a){oa(a)}oa(z);a=H[g+52>>2];if(a){H[g+56>>2]=a;oa(a)}a=H[g+40>>2];if(a){H[g+44>>2]=a;oa(a)}a=H[g+28>>2];if(a){H[g+32>>2]=a;oa(a)}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g- -64|0;return A|0}sa();v()}function oj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0;h=ca+-64|0;ca=h;H[a+8>>2]=e;x=a+32|0;f=H[x>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){ya(x,e-d|0);H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;d=0;if(!e){break a}}Pa(h+16|0,e,h);i=H[h+28>>2];d=H[h+32>>2]}H[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[h+32>>2]=(e<<2)+i;break c}Pa(h+16|12,e-d|0,h)}H[h>>2]=0;f=H[h+40>>2];d=H[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[h+44>>2]=f+(e<<2);break d}Pa(h+40|0,e-d|0,h)}H[h>>2]=0;f=H[h+52>>2];d=H[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[h+56>>2]=f+(e<<2);break e}Pa(h+52|0,e-d|0,h)}f:{if(H[a+8>>2]<=0){break f}g=H[h+16>>2];j=H[a+32>>2];i=0;while(1){d=i<<2;f=H[d+g>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}i=i+1|0;d=H[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=H[b+g>>2]+H[g+j>>2]|0;H[f>>2]=g;h:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break h}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}G=H[a+52>>2];A=H[a+48>>2];y=pa(16);d=y;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=pa(d);H[h>>2]=t;H[h+8>>2]=d+t;ra(t,0,d)}z=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}n=H[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=H[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=H[G>>2];r=H[A>>2];i=p+(H[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=H[r+(o<<2)>>2]}o=H[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=H[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=H[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=H[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=H[(h+16|0)+N(j,12)>>2];u:{if(!e){break u}l=N(e,l);r=N(e,i);p=N(e,o);i=0;s=0;if(F){while(1){H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2];o=i|1;H[g+(o<<2)>>2]=(H[(l+o<<2)+c>>2]+H[(o+r<<2)+c>>2]|0)-H[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=H[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=H[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=H[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ra(t,0,L)}d=g-1|0;r=(d<<2)+y|0;d=N(d,12)+a|0;o=d;s=H[d- -64>>2];k=0;d=H[h>>2];f=0;while(1){j=H[r>>2];H[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(H[H[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=H[(h+16|0)+N(k,12)>>2];l=0;i=0;p=0;if(!M){while(1){n=i<<2;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];q=n|4;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];q=n|8;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];n=n|12;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;H[p>>2]=H[j+n>>2]+H[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=N(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(F){break n}break m}g=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+k>>2];l=H[a+16>>2];z:{if((f|0)>(l|0)){H[d+j>>2]=l;break z}d=d+j|0;l=H[a+12>>2];if((l|0)>(f|0)){H[d>>2]=l;break z}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;A:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break A}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}break k}Ca();v()}while(1){j=i<<2;k=j+t|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+t|0;H[j>>2]=H[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+t>>2];k=H[a+16>>2];B:{if((f|0)>(k|0)){H[d+j>>2]=k;break B}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break B}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;C:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break C}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[h>>2];if(a){oa(a)}oa(y);a=H[h+52>>2];if(a){H[h+56>>2]=a;oa(a)}a=H[h+40>>2];if(a){H[h+44>>2]=a;oa(a)}a=H[h+28>>2];if(a){H[h+32>>2]=a;oa(a)}a=H[h+16>>2];if(a){H[h+20>>2]=a;oa(a)}ca=h- -64|0;return z|0}sa();v()}function Od(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;i=ca-80|0;ca=i;H[i+76>>2]=b;y=i+55|0;r=i+56|0;a:{b:{c:{d:{e:while(1){h=b;if((o^2147483647)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=h;g=I[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(I[g+1|0]!=37){b=g;break j}f=f+1|0;j=I[g+2|0];b=g+2|0;g=b;if((j|0)==37){continue}break}}f=f-h|0;x=o^2147483647;if((f|0)>(x|0)){break d}if(a){Ab(a,h,f)}if(f){continue e}H[i+76>>2]=b;f=b+1|0;p=-1;if(!(I[b+2|0]!=36|F[b+1|0]-48>>>0>=10)){p=F[b+1|0]-48|0;s=1;f=b+3|0}H[i+76>>2]=f;n=0;g=F[f|0];b=g-32|0;k:{if(b>>>0>31){k=f;break k}k=f;b=1<<b;if(!(b&75913)){break k}while(1){k=f+1|0;H[i+76>>2]=k;n=b|n;g=F[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=k;b=1<<b;if(b&75913){continue}break}}l:{if((g|0)==42){m:{if(!(I[k+2|0]!=36|F[k+1|0]-48>>>0>=10)){H[((F[k+1|0]<<2)+e|0)-192>>2]=10;g=k+3|0;s=1;b=H[((F[k+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=k+1|0;if(!a){H[i+76>>2]=g;s=0;q=0;break l}b=H[c>>2];H[c>>2]=b+4;s=0;b=H[b>>2]}H[i+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;n=n|8192;break l}q=Nd(i+76|0);if((q|0)<0){break d}g=H[i+76>>2]}f=0;m=-1;n:{if(I[g|0]!=46){b=g;u=0;break n}if(I[g+1|0]==42){o:{if(!(I[g+3|0]!=36|F[g+2|0]-48>>>0>=10)){H[((F[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;m=H[((F[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;m=0;if(!a){break o}j=H[c>>2];H[c>>2]=j+4;m=H[j>>2]}H[i+76>>2]=b;u=(m^-1)>>>31|0;break n}H[i+76>>2]=g+1;m=Nd(i+76|0);b=H[i+76>>2];u=1}while(1){g=f;k=28;l=b;f=F[b|0];if(f-123>>>0<4294967238){break c}b=l+1|0;f=I[(f+N(g,58)|0)+13711|0];if(f-1>>>0<8){continue}break}H[i+76>>2]=b;p:{q:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){H[(p<<2)+e>>2]=f;j=(p<<3)+d|0;f=H[j+4>>2];H[i+64>>2]=H[j>>2];H[i+68>>2]=f;break q}if(!a){break f}Md(i- -64|0,f,c);break p}if((p|0)>=0){break c}}f=0;if(!a){continue e}}j=n&-65537;n=n&8192?j:n;p=0;t=1132;k=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{f=F[l|0];f=g?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(f-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((f|0)==83){break w}break g}l=H[i+64>>2];j=H[i+68>>2];t=1132;break z}f=0;I:{switch(g&255){case 0:H[H[i+64>>2]>>2]=o;continue e;case 1:H[H[i+64>>2]>>2]=o;continue e;case 2:h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e;case 3:G[H[i+64>>2]>>1]=o;continue e;case 4:F[H[i+64>>2]]=o;continue e;case 6:H[H[i+64>>2]>>2]=o;continue e;case 7:break I;default:continue e}}h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e}m=m>>>0<=8?8:m;n=n|8;f=120}h=r;l=H[i+64>>2];j=H[i+68>>2];if(l|j){z=f&32;while(1){h=h-1|0;F[h|0]=z|I[(l&15)+14240|0];w=!j&l>>>0>15|(j|0)!=0;g=j;j=g>>>4|0;l=(g&15)<<28|l>>>4;if(w){continue}break}}if(!(H[i+64>>2]|H[i+68>>2])|!(n&8)){break y}t=(f>>>4|0)+1132|0;p=2;break y}f=r;h=H[i+68>>2];j=h;l=H[i+64>>2];if(h|l){while(1){f=f-1|0;F[f|0]=l&7|48;g=!j&l>>>0>7|(j|0)!=0;h=j;j=h>>>3|0;l=(h&7)<<29|l>>>3;if(g){continue}break}}h=f;if(!(n&8)){break y}f=r-h|0;m=(f|0)<(m|0)?m:f+1|0;break y}l=H[i+64>>2];h=H[i+68>>2];j=h;if((h|0)<0){f=0-(((l|0)!=0)+j|0)|0;j=f;l=0-l|0;H[i+64>>2]=l;H[i+68>>2]=f;p=1;t=1132;break z}if(n&2048){p=1;t=1133;break z}p=n&1;t=p?1134:1132}g=r;if(j){while(1){g=g-1|0;f=j;w=Tj(l,f,10,0);h=da;A=g,B=l-Rj(w,h,10,0)|48,F[A|0]=B;l=w;j=h;if(f>>>0>9){continue}break}}h=l;if(h){while(1){g=g-1|0;f=(h>>>0)/10|0;F[g|0]=h-N(f,10)|48;j=h>>>0>9;h=f;if(j){continue}break}}h=g}if((m|0)<0?u:0){break d}n=u?n&-65537:n;f=H[i+64>>2];j=H[i+68>>2];if(!(m|(f|j)!=0)){h=r;m=0;break g}f=!(f|j)+(r-h|0)|0;m=(f|0)<(m|0)?m:f;break g}g=m>>>0>=2147483647?2147483647:m;k=g;n=(g|0)!=0;h=H[i+64>>2];h=h?h:1614;f=h;J:{K:{L:{M:{if(!(f&3)|!g){break M}while(1){if(!I[f|0]){break L}k=k-1|0;n=(k|0)!=0;f=f+1|0;if(!(f&3)){break M}if(k){continue}break}}if(!n){break K}if(!(!I[f|0]|k>>>0<4)){while(1){l=H[f>>2];if((l^-1)&l-16843009&-2139062144){break L}f=f+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break K}}while(1){if(!I[f|0]){break J}f=f+1|0;k=k-1|0;if(k){continue}break}}f=0}f=f?f-h|0:g;k=f+h|0;if((m|0)>=0){n=j;m=f;break g}n=j;m=f;if(I[k|0]){break d}break g}if(m){g=H[i+64>>2];break u}f=0;ib(a,32,q,0,n);break t}H[i+12>>2]=0;H[i+8>>2]=H[i+64>>2];g=i+8|0;H[i+64>>2]=g;m=-1}f=0;N:{while(1){h=H[g>>2];if(!h){break N}j=Ld(i+4|0,h);h=(j|0)<0;if(!(h|j>>>0>m-f>>>0)){g=g+4|0;f=f+j|0;if(m>>>0>f>>>0){continue}break N}break}if(h){break b}}k=61;if((f|0)<0){break c}ib(a,32,q,f,n);if(!f){f=0;break t}k=0;g=H[i+64>>2];while(1){h=H[g>>2];if(!h){break t}h=Ld(i+4|0,h);k=h+k|0;if(k>>>0>f>>>0){break t}Ab(a,i+4|0,h);g=g+4|0;if(f>>>0>k>>>0){continue}break}}ib(a,32,q,f,n^8192);f=(f|0)<(q|0)?q:f;continue e}if((m|0)<0?u:0){break d}v()}F[i+55|0]=H[i+64>>2];m=1;h=y;n=j;break g}g=I[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=H[(f<<2)+e>>2];if(a){Md((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(H[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}k=28;break c}l=k-h|0;j=(m|0)>(l|0)?m:l;if((j|0)>(p^2147483647)){break d}k=61;g=j+p|0;f=(g|0)<(q|0)?q:g;if((x|0)<(f|0)){break c}ib(a,32,f,g,n);Ab(a,t,p);ib(a,48,f,g,n^65536);ib(a,48,j,l,0);Ab(a,h,l);ib(a,32,f,g,n^8192);continue}break}o=0;break a}k=61}H[3992]=k}o=-1}ca=i+80|0;return o}function hj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;N=a+32|0;e=H[N>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}j=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;Z=d>>>0<=1?1:d;_=a+68|0;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}l=ca-80|0;ca=l;f=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=H[H[j>>2]+(g<<2)>>2]}n=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){n=H[H[j>>2]+(e<<2)>>2]}j=H[o+36>>2];e=H[j>>2];j=H[j+4>>2]-e>>2;if(j>>>0<=f>>>0|j>>>0<=n>>>0){break e}f:{g:{h:{i:{j:{k:{i=H[e+(n<<2)>>2];f=H[e+(f<<2)>>2];if((i|0)>=(d|0)|(f|0)>=(d|0)){break k}j=(i<<3)+c|0;u=H[j+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];A=H[j>>2];j=H[g>>2];if(!((A|0)!=(j|0)|(e|0)!=(u|0))){H[o+8>>2]=j;H[o+12>>2]=e;break j}n=H[H[o+4>>2]+(d<<2)>>2];H[l+72>>2]=0;H[l+76>>2]=0;g=l- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[l+56>>2]=0;H[l+60>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+56|0);n=H[H[o+4>>2]+(f<<2)>>2];H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+32|0);n=H[H[o+4>>2]+(i<<2)>>2];H[l+24>>2]=0;H[l+28>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+8|0);g=H[l+16>>2];w=H[l+40>>2];B=g-w|0;O=H[l+44>>2];g=H[l+20>>2]-(O+(g>>>0<w>>>0)|0)|0;J=g;i=Rj(B,g,B,g);m=da;g=H[l+8>>2];C=H[l+32>>2];D=g-C|0;P=H[l+36>>2];g=H[l+12>>2]-(P+(g>>>0<C>>>0)|0)|0;K=g;k=i;i=Rj(D,g,D,g);g=k+i|0;k=da+m|0;k=g>>>0<i>>>0?k+1|0:k;i=H[l+24>>2];E=H[l+48>>2];G=i-E|0;Q=H[l+52>>2];i=H[l+28>>2]-(Q+(i>>>0<E>>>0)|0)|0;L=i;h=g;g=Rj(G,i,G,i);q=h+g|0;h=da+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}n=0;x=Tj(-1,2147483647,q,r);f=j>>31;S=f;h=f>>31;R=j;g=h;m=j^g;j=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0<j>>>0|e>>>0<g>>>0;j=f?j:h;i=da;e=f?g:e;if((i|0)==(e|0)&j>>>0>x>>>0|e>>>0>i>>>0){break f}j=H[l+64>>2];U=H[l+68>>2];e=Rj(j-w|0,U-((j>>>0<w>>>0)+O|0)|0,B,J);f=da;g=H[l+56>>2];V=H[l+60>>2];i=Rj(g-C|0,V-((g>>>0<C>>>0)+P|0)|0,D,K);e=i+e|0;h=da+f|0;m=H[l+72>>2];W=H[l+76>>2];f=Rj(m-E|0,W-((m>>>0<E>>>0)+Q|0)|0,G,L);y=f+e|0;e=da+(e>>>0<i>>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;i=e;h=e^y;e=h-e|0;i=(f^i)-((h>>>0<i>>>0)+i|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0<R>>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0<z>>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0<M>>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0<p>>>0;f=Tj(-1,2147483647,h?k:Y,h?p:f);h=da;if((h|0)==(i|0)&e>>>0>f>>>0|h>>>0<i>>>0){break f}f=e;e=i;h=K>>31;p=h^D;i=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=p?i:t;h=p?h:k;k=L>>31;p=i;s=k^G;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;i=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=Tj(-1,2147483647,i?p:t,i?h:k);h=da;if((h|0)==(e|0)&f>>>0>i>>>0|e>>>0>h>>>0){break f}i=1;f=0;k=Sj(Rj(y,x,B,J),da,q,r);h=k+w|0;e=da+O|0;e=h>>>0<k>>>0?e+1|0:e;k=j-h|0;e=U-((h>>>0>j>>>0)+e|0)|0;k=Rj(k,e,k,e);w=da;h=Sj(Rj(y,x,D,K),da,q,r);j=h+C|0;e=da+P|0;e=h>>>0>j>>>0?e+1|0:e;h=g-j|0;e=V-((g>>>0<j>>>0)+e|0)|0;j=Rj(h,e,h,e);e=j+k|0;h=da+w|0;h=e>>>0<j>>>0?h+1|0:h;k=e;g=Sj(Rj(y,x,G,L),da,q,r);j=g+E|0;e=da+Q|0;e=g>>>0>j>>>0?e+1|0:e;g=m-j|0;e=W-((j>>>0>m>>>0)+e|0)|0;g=Rj(g,e,g,e);j=g+k|0;e=da+h|0;j=Rj(j,g>>>0>j>>>0?e+1|0:e,q,r);e=da;m=e;if(!e&j>>>0<=1){break i}h=j;g=m;while(1){e=f<<1|i>>>31;i=i<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break h}g=o;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[o+8>>2]=0;H[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[g+8>>2]=H[e>>2];H[o+12>>2]=H[e+4>>2]}n=1;break f}f=m;i=j;if(j-1|0){break g}}while(1){e=Tj(j,m,i,f);h=f+da|0;e=e+i|0;h=e>>>0<i>>>0?h+1|0:h;i=(h&1)<<31|e>>>1;f=h>>>1|0;e=Rj(i,f,i,f);g=da;if((m|0)==(g|0)&e>>>0>j>>>0|g>>>0>m>>>0){continue}break}}e=H[o+20>>2];if(!e){break f}j=e-1|0;m=H[H[o+16>>2]+(j>>>3&536870908)>>2];H[o+20>>2]=j;n=1;e=Rj(y,x,z,u);h=da;g=e;e=Rj(q,r,M,T);g=g+e|0;h=da+h|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(i,f,A,X);j=m>>>j&1;m=j?0-e|0:e;g=m+g|0;k=h;h=da;k=k+(j?0-(h+((e|0)!=0)|0)|0:h)|0;$=o,aa=Sj(g,g>>>0<m>>>0?k+1|0:k,q,r),H[$+12>>2]=aa;e=Rj(y,x,A,X);m=da;g=e;e=Rj(q,r,R,S);g=g+e|0;h=da+m|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(i,f,z,u);f=0-e|0;i=da;k=(j?i:0-(((e|0)!=0)+i|0)|0)+h|0;i=g;g=j?e:f;f=i+g|0;$=o,aa=Sj(f,f>>>0<g>>>0?k+1|0:k,q,r),H[$+8>>2]=aa}ca=l+80|0;e=n;break d}Ca();v()}j=e;if(!e){return 0}l:{if(H[a+8>>2]<=0){break l}i=H[N>>2];e=0;while(1){f=e<<2;g=H[f+_>>2];m=H[a+16>>2];m:{if((g|0)>(m|0)){H[f+i>>2]=m;break m}f=f+i|0;m=H[a+12>>2];if((m|0)>(g|0)){H[f>>2]=m;break m}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;m=e+c|0;n=b+e|0;while(1){g=f<<2;e=g+m|0;g=H[g+n>>2]+H[g+i>>2]|0;H[e>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)<H[a+8>>2]){continue}break}}d=d+1|0;if((Z|0)!=(d|0)){continue}break}}return j|0}Ca();v()}function xj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;N=a+32|0;e=H[N>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}o=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}n=a+60|0;d=d>>>2|0;Z=d>>>0<=1?1:d;_=a+68|0;d=0;while(1){e=H[a+56>>2];i=H[e>>2];if(H[e+4>>2]-i>>2>>>0<=d>>>0){break a}l=ca-80|0;ca=l;f=-1;i=H[i+(d<<2)>>2];e=-1;d:{if((i|0)==-1){break d}e=i+1|0;f=(e>>>0)%3|0?e:i-2|0;e=i-1|0;if((i>>>0)%3|0){break d}e=i+2|0}g=H[n+36>>2];i=H[g>>2];e:{f:{g:{h:{i:{g=H[g+4>>2]-i>>2;k=f<<2;f=H[H[n+32>>2]+28>>2];j=H[k+f>>2];if(g>>>0<=j>>>0){break i}e=H[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}f=H[i+(j<<2)>>2];j:{k:{j=H[i+(e<<2)>>2];if((d|0)<=(f|0)|(j|0)>=(d|0)){break k}i=(j<<3)+c|0;u=H[i+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];A=H[i>>2];i=H[g>>2];if(!((A|0)!=(i|0)|(e|0)!=(u|0))){H[n+8>>2]=i;H[n+12>>2]=e;break j}o=H[H[n+4>>2]+(d<<2)>>2];H[l+72>>2]=0;H[l+76>>2]=0;g=l- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[l+56>>2]=0;H[l+60>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+56|0);o=H[H[n+4>>2]+(f<<2)>>2];H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+32|0);o=H[H[n+4>>2]+(j<<2)>>2];H[l+24>>2]=0;H[l+28>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+8|0);g=H[l+16>>2];w=H[l+40>>2];B=g-w|0;O=H[l+44>>2];g=H[l+20>>2]-(O+(g>>>0<w>>>0)|0)|0;J=g;j=Rj(B,g,B,g);m=da;g=H[l+8>>2];C=H[l+32>>2];D=g-C|0;P=H[l+36>>2];g=H[l+12>>2]-(P+(g>>>0<C>>>0)|0)|0;K=g;k=j;j=Rj(D,g,D,g);g=k+j|0;k=da+m|0;k=g>>>0<j>>>0?k+1|0:k;j=H[l+24>>2];E=H[l+48>>2];G=j-E|0;Q=H[l+52>>2];j=H[l+28>>2]-(Q+(j>>>0<E>>>0)|0)|0;L=j;h=g;g=Rj(G,j,G,j);q=h+g|0;h=da+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}o=0;x=Tj(-1,2147483647,q,r);f=i>>31;S=f;h=f>>31;R=i;g=h;m=i^g;i=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0<i>>>0|e>>>0<g>>>0;i=f?i:h;j=da;e=f?g:e;if((j|0)==(e|0)&i>>>0>x>>>0|e>>>0>j>>>0){break e}i=H[l+64>>2];U=H[l+68>>2];e=Rj(i-w|0,U-((i>>>0<w>>>0)+O|0)|0,B,J);f=da;g=H[l+56>>2];V=H[l+60>>2];j=Rj(g-C|0,V-((g>>>0<C>>>0)+P|0)|0,D,K);e=j+e|0;h=da+f|0;m=H[l+72>>2];W=H[l+76>>2];f=Rj(m-E|0,W-((m>>>0<E>>>0)+Q|0)|0,G,L);y=f+e|0;e=da+(e>>>0<j>>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;j=e;h=e^y;e=h-e|0;j=(f^j)-((h>>>0<j>>>0)+j|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0<R>>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0<z>>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0<M>>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0<p>>>0;f=Tj(-1,2147483647,h?k:Y,h?p:f);h=da;if((h|0)==(j|0)&e>>>0>f>>>0|h>>>0<j>>>0){break e}f=e;e=j;h=K>>31;p=h^D;j=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=p?j:t;h=p?h:k;k=L>>31;p=j;s=k^G;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;j=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=Tj(-1,2147483647,j?p:t,j?h:k);h=da;if((h|0)==(e|0)&f>>>0>j>>>0|e>>>0>h>>>0){break e}j=1;f=0;k=Sj(Rj(y,x,B,J),da,q,r);h=k+w|0;e=da+O|0;e=h>>>0<k>>>0?e+1|0:e;k=i-h|0;e=U-((h>>>0>i>>>0)+e|0)|0;k=Rj(k,e,k,e);w=da;h=Sj(Rj(y,x,D,K),da,q,r);i=h+C|0;e=da+P|0;e=h>>>0>i>>>0?e+1|0:e;h=g-i|0;e=V-((g>>>0<i>>>0)+e|0)|0;i=Rj(h,e,h,e);e=i+k|0;h=da+w|0;h=e>>>0<i>>>0?h+1|0:h;k=e;g=Sj(Rj(y,x,G,L),da,q,r);i=g+E|0;e=da+Q|0;e=g>>>0>i>>>0?e+1|0:e;g=m-i|0;e=W-((i>>>0>m>>>0)+e|0)|0;g=Rj(g,e,g,e);i=g+k|0;e=da+h|0;i=Rj(i,g>>>0>i>>>0?e+1|0:e,q,r);e=da;m=e;if(!e&i>>>0<=1){break h}h=i;g=m;while(1){e=f<<1|j>>>31;j=j<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break g}g=n;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[n+8>>2]=0;H[n+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[g+8>>2]=H[e>>2];H[n+12>>2]=H[e+4>>2]}o=1;break e}Ca();v()}f=m;j=i;if(i-1|0){break f}}while(1){e=Tj(i,m,j,f);h=f+da|0;e=e+j|0;h=e>>>0<j>>>0?h+1|0:h;j=(h&1)<<31|e>>>1;f=h>>>1|0;e=Rj(j,f,j,f);g=da;if((m|0)==(g|0)&e>>>0>i>>>0|g>>>0>m>>>0){continue}break}}e=H[n+20>>2];if(!e){break e}i=e-1|0;m=H[H[n+16>>2]+(i>>>3&536870908)>>2];H[n+20>>2]=i;o=1;e=Rj(y,x,z,u);h=da;g=e;e=Rj(q,r,M,T);g=g+e|0;h=da+h|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(j,f,A,X);i=m>>>i&1;m=i?0-e|0:e;g=m+g|0;k=h;h=da;k=k+(i?0-(h+((e|0)!=0)|0)|0:h)|0;$=n,aa=Sj(g,g>>>0<m>>>0?k+1|0:k,q,r),H[$+12>>2]=aa;e=Rj(y,x,A,X);m=da;g=e;e=Rj(q,r,R,S);g=g+e|0;h=da+m|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(j,f,z,u);f=0-e|0;j=da;k=(i?j:0-(((e|0)!=0)+j|0)|0)+h|0;j=g;g=i?e:f;f=j+g|0;$=n,aa=Sj(f,f>>>0<g>>>0?k+1|0:k,q,r),H[$+8>>2]=aa}ca=l+80|0;if(!o){return 0}l:{if(H[a+8>>2]<=0){break l}g=H[N>>2];e=0;while(1){f=e<<2;i=H[f+_>>2];j=H[a+16>>2];m:{if((i|0)>(j|0)){H[f+g>>2]=j;break m}f=f+g|0;j=H[a+12>>2];if((j|0)>(i|0)){H[f>>2]=j;break m}H[f>>2]=i}e=e+1|0;i=H[a+8>>2];if((e|0)<(i|0)){continue}break}f=0;if((i|0)<=0){break l}e=d<<3;j=e+c|0;m=b+e|0;while(1){i=f<<2;e=i+j|0;i=H[i+m>>2]+H[g+i>>2]|0;H[e>>2]=i;n:{if((i|0)>H[a+16>>2]){k=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break n}k=i+H[a+20>>2]|0}H[e>>2]=k}f=f+1|0;if((f|0)<H[a+8>>2]){continue}break}}d=d+1|0;if((Z|0)!=(d|0)){continue}break}}return o|0}Ca();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=a+16|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;c=d+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+32|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+48|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d- -64|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+80|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+96|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+112|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+128|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+144|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+160|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+176|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+192|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+208|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+224|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+240|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+256|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+272|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+288|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+304|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+320|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+336|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+352|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+368|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+384|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+416|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+432|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+448|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+464|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+480|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;d=d+496|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;H[a+528>>2]=0;H[a+532>>2]=0;F[a+533|0]=0;F[a+534|0]=0;F[a+535|0]=0;F[a+536|0]=0;F[a+537|0]=0;F[a+538|0]=0;F[a+539|0]=0;F[a+540|0]=0;H[a+544>>2]=0;H[a+548>>2]=0;H[a+560>>2]=0;H[a+552>>2]=0;H[a+556>>2]=0;H[a+564>>2]=0;H[a+568>>2]=0;H[a+580>>2]=0;H[a+572>>2]=0;H[a+576>>2]=0;H[a+584>>2]=0;H[a+588>>2]=0;H[a+600>>2]=0;H[a+592>>2]=0;H[a+596>>2]=0;H[a+612>>2]=0;H[a+604>>2]=0;H[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+616>>2]=0;H[a+620>>2]=0;H[a+624>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;d=1;break a}d=b<<2;c=pa(d);H[a+604>>2]=c;f=c+d|0;H[a+612>>2]=f;ra(c,0,d);H[a+624>>2]=0;H[a+616>>2]=0;H[a+620>>2]=0;H[a+608>>2]=f;c=pa(d);H[a+616>>2]=c;f=c+d|0;H[a+624>>2]=f;ra(c,0,d);H[a+620>>2]=f;c=pa(d);H[e>>2]=c;f=c+d|0;H[e+8>>2]=f;ra(c,0,d);H[e+4>>2]=f;d=b<<5|1}tb(g,d,e);c=H[e>>2];if(c){H[e+4>>2]=c;oa(c)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;c=pa(b);H[e>>2]=c;f=b+c|0;H[e+8>>2]=f;ra(c,0,b);H[e+4>>2]=f}tb(a+640|0,d,e);b=H[e>>2];if(b){H[e+4>>2]=b;oa(b)}ca=e+16|0;return a}function gc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e+32768>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>32767){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>32767|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|m<O(-32768)|m!=m){break d}n=O(P(m));if(n==O(Infinity)){break d}e=(b<<1)+d|0;if(n<O(2147483648)){i=~~m}else{i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|m<O(-32768)|(O(P(m))==O(Infinity)|m!=m)){break d}if(m<O(0)|m>O(1)){break d}e=(b<<1)+d|0;l=T(+m*32767+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=T(l*32767+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return j}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function ec(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=H[b>>2];if((e|0)<0){break b}H[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>2147483647|k){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|m<O(-2147483648)|m!=m){break d}n=O(P(m));if(n==O(Infinity)){break d}e=(b<<2)+d|0;if(n<O(2147483648)){i=~~m}else{i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|m<O(-2147483648)|(O(P(m))==O(Infinity)|m!=m)){break d}if(m<O(0)|m>O(1)){break d}e=(b<<2)+d|0;l=T(+m*2147483647+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=T(l*2147483647+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return j}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b|0];if((e|0)<0){break b}G[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|m<O(0)|(O(P(m))==O(Infinity)|m!=m)){break d}e=(b<<1)+d|0;if(m<O(4294967296)&m>=O(0)){i=~~m>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|m<O(0)|(O(P(m))==O(Infinity)|m!=m)){break d}if(m>O(1)){break d}e=(b<<1)+d|0;j=T(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=T(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return l}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0,m=0,n=O(0),o=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b|0];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=G[b>>1];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=J[b>>1];H[e+4>>2]=0;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b>>2];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=0;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=H[b+4>>2];e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=H[b>>2];i=H[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;H[j>>2]=e;H[j+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=I[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break d}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=L[g>>2];if(k>=O(0x8000000000000000)|k<O(-0x8000000000000000)|k!=k){break a}n=O(P(k));if(n==O(Infinity)){break a}e=(b<<3)+d|0;e:{if(n<O(0x8000000000000000)){j=O(P(k))>=O(1)?~~(k>O(0)?O(R(O(T(O(k*O(2.3283064365386963e-10)))),O(4294967296))):O(U(O(O(k-O(~~k>>>0>>>0))*O(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=I[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break f}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=M[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=P(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=P(l)>=1?~~(l>0?R(T(l*2.3283064365386963e-10),4294967295):U((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ra(d,0,a<<3)}}function Oj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=H[a+8>>2];switch(H[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i)}oa(c);c=1}return c|0}function dc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|m<O(0)|(O(P(m))==O(Infinity)|m!=m)){break d}e=(b<<2)+d|0;if(m<O(4294967296)&m>=O(0)){i=~~m>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|m<O(0)|(O(P(m))==O(Infinity)|m!=m)){break d}if(m>O(1)){break d}e=(b<<2)+d|0;j=T(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=T(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return k}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(H[a+92>>2]==H[a+88>>2]){break e}c=H[a+52>>2];f:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break f}h=H[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0<e>>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}f=e+(d<<2)|0;H[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;H[f>>2]=H[c>>2];if((c|0)!=(h|0)){continue}break}}H[a+56>>2]=e+(g<<2);H[a+52>>2]=d;H[a+48>>2]=f;if(!h){break f}oa(h)}H[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=H[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=H[H[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=H[H[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=H[a+36>>2];h=d+(c>>>3&536870908)|0;g=H[h>>2];f=1<<c;if(!(g&f)){H[h>>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ua(f,c,d);d=H[a+36>>2]}f=d+i|0;d=H[f>>2];c=1<<e;if(!(d&c)){H[f>>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ua(d,e,c)}c=-1;c=(b|0)!=-1?H[H[H[a+4>>2]>>2]+(b<<2)>>2]:c;f=H[a+36>>2]+(c>>>3&536870908)|0;d=H[f>>2];e=1<<c;if(!(d&e)){H[f>>2]=d|e;Ua(a+8|0,c,b)}d=H[a+84>>2];if((d|0)>2){break e}while(1){e=N(d,12)+a|0;b=H[e+52>>2];if((b|0)==H[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=H[b>>2];H[e+52>>2]=b;H[a+84>>2]=d;if((c|0)==-1){break e}f=H[a+24>>2];b=(c>>>0)/3|0;j:{if(H[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;H[b>>2]=H[b>>2]|1<<k;d=-1;l:{m:{n:{o:{p:{q:{r:{s:{d=(c|0)!=-1?H[H[H[a+4>>2]>>2]+(c<<2)>>2]:d;f=H[a+36>>2]+(d>>>3&536870908)|0;e=H[f>>2];b=1<<d;if(!(e&b)){H[f>>2]=b|e;i=H[(H[H[a+16>>2]+96>>2]+N(k,12)|0)+((c>>>0)%3<<2)>>2];l=H[H[a+20>>2]+4>>2];f=H[l+4>>2];t:{if((f|0)!=H[l+8>>2]){H[f>>2]=i;H[l+4>>2]=f+4;break t}j=H[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(j|0)){continue}break}}H[l+8>>2]=e+(h<<2);H[l+4>>2]=g;H[l>>2]=b;if(!j){break t}oa(j)}j=H[a+12>>2];f=H[j+4>>2];u:{if((f|0)!=H[j+8>>2]){H[f>>2]=c;H[j+4>>2]=f+4;break u}i=H[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(i|0)){continue}break}}H[j+8>>2]=e+(h<<2);H[j+4>>2]=g;H[j>>2]=b;if(!i){break u}oa(i)}b=H[a+12>>2];H[H[b+12>>2]+(d<<2)>>2]=H[b+24>>2];H[b+24>>2]=H[b+24>>2]+1}if((c|0)==-1){break k}g=H[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=H[H[g+12>>2]+(b<<2)>>2]}v:{w:{if((N(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=H[H[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=H[H[a+24>>2]+(b>>>3&268435452)>>2]&1<<b;if(d){break q}l=(b|0)!=0;break p}l=1;if(!d){break p}break k}sa();v()}sa();v()}if(!b){break o}break k}b=d?-1:e;x:{if(H[H[a+24>>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=H[H[g>>2]+(c<<2)>>2];if(!(H[H[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=H[a+88>>2]+(b<<2)|0;e=H[b>>2];H[b>>2]=e+1;k=(e|0)<=0?2:1}if(H[a+84>>2]>=(k|0)&l){break m}j=N(k,12)+a|0;b=H[j+52>>2];y:{if((b|0)!=H[j+56>>2]){H[b>>2]=c;H[j+52>>2]=b+4;break y}i=H[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(i|0)){continue}break}}H[j+48>>2]=d;H[j+52>>2]=c;H[j+56>>2]=e+(g<<2);if(!i){break y}oa(i)}if(H[a+84>>2]<=(k|0)){break x}H[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=H[H[H[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(H[H[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=H[a+88>>2]+(c<<2)|0;c=H[b>>2];H[b>>2]=c+1;b=(c|0)<=0?2:1}if(H[a+84>>2]<(b|0)){break l}c=f}f=H[a+24>>2];continue}break}k=N(b,12)+a|0;c=H[k+52>>2];z:{if((c|0)!=H[k+56>>2]){H[c>>2]=f;H[k+52>>2]=c+4;break z}i=H[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[k+48>>2]=d;H[k+52>>2]=f;H[k+56>>2]=e+(g<<2);if(!i){break z}oa(i)}d=H[a+84>>2];if((d|0)<=(b|0)){break j}H[a+84>>2]=b;d=b;break j}d=H[a+84>>2]}if((d|0)<3){continue}break}}return 1}wa();v()}sa();v()}sa();v()}sa();v()}function gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=ca-96|0;ca=n;o=H[a+4>>2];d=H[o+32>>2];i=H[d+8>>2];j=H[d+12>>2];e=j;c=H[d+20>>2];f=H[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=i>>>0|(c|0)>(e|0)){break a}p=H[d>>2];g=I[p+f|0];h=f+1|0;e=h?c:c+1|0;H[d+16>>2]=h;H[d+20>>2]=e;if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}m=I[h+p|0];h=f+2|0;e=h>>>0<2?c+1|0:c;H[d+16>>2]=h;H[d+20>>2]=e;l=g<<24>>24;b:{if((l|0)>=0){k=H[a+216>>2];if(g>>>0>=(H[a+220>>2]-k|0)/144>>>0){break a}k=k+N(g,144)|0;if(H[k>>2]<0){break b}break a}if(H[a+212>>2]>=0){break a}k=a+212|0}H[k>>2]=b;c:{d:{e:{f:{g:{h:{k=J[o+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}e=I[h+p|0];f=f+3|0;c=f>>>0<3?c+1|0:c;H[d+16>>2]=f;H[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!m){break i}if(!d){break h}break a}if(m){break g}d=0}if((l|0)<0){e=a+184|0}else{c=H[a+216>>2]+N(g,144)|0;F[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=ca-112|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(120);H[d>>2]=12172;H[d+4>>2]=0;H[d+116>>2]=0;H[d+112>>2]=e;H[d+108>>2]=h;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[d+8>>2]=12384;f=d- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[d+72>>2]=0;H[d+76>>2]=0;H[d+80>>2]=0;H[d+84>>2]=0;H[d+88>>2]=0;H[d+104>>2]=0;H[d+96>>2]=0;H[d+100>>2]=0;f=H[a+8>>2];H[c+48>>2]=0;H[c+52>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;i=c+32|0;H[i>>2]=0;H[i+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;g=c- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[c+72>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+104>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+8>>2]=12384;H[c+96>>2]=0;H[c+100>>2]=0;H[c+12>>2]=f;g=H[f>>2];j=H[f+4>>2];F[c+111|0]=0;m=i;i=c+111|0;Oa(m,(j-g>>2>>>0)/3|0,i);g=H[c+12>>2];j=H[g+28>>2];g=H[g+24>>2];F[c+111|0]=0;Oa(c+44|0,j-g>>2,i);H[c+28>>2]=d;H[c+24>>2]=h;H[c+20>>2]=e;H[c+16>>2]=f;f=d+8|0;e=c+8|0;fd(f,e);j:{if((e|0)==(f|0)){H[d+92>>2]=H[e+84>>2];break j}Cb(d+56|0,H[e+48>>2],H[e+52>>2]);Cb(d+68|0,H[e+60>>2],H[e- -64>>2]);Cb(d+80|0,H[e+72>>2],H[e+76>>2]);H[d+92>>2]=H[e+84>>2];Aa(d+96|0,H[e+88>>2],H[e+92>>2])}H[c+8>>2]=12384;e=H[c+96>>2];if(e){H[c+100>>2]=e;oa(e)}e=H[c+80>>2];if(e){H[c+84>>2]=e;oa(e)}e=H[c+68>>2];if(e){H[c+72>>2]=e;oa(e)}e=H[c+56>>2];if(e){H[c+60>>2]=e;oa(e)}H[c+8>>2]=12620;e=H[c+44>>2];if(e){oa(e)}e=H[c+32>>2];if(e){oa(e)}ca=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=H[a+216>>2];c=H[o+44>>2];d=pa(80);H[d>>2]=12932;H[d+4>>2]=0;H[d+76>>2]=0;H[d+68>>2]=c;H[d+8>>2]=11872;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;e=e+N(g,144)|0;f=e+104|0;H[d+72>>2]=f;H[d- -64>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[n+24>>2]=c;c=n;H[c+68>>2]=0;H[c+72>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+28>>2]=d;h=H[c+28>>2];H[c+8>>2]=H[c+24>>2];H[c+12>>2]=h;H[c+20>>2]=f;f=e+4|0;H[c+16>>2]=f;H[c+36>>2]=0;H[c+40>>2]=0;H[c+32>>2]=11872;e=H[c+20>>2];H[c>>2]=H[c+16>>2];H[c+4>>2]=e;e=c+32|0;Ie(e,f,c);c=d+8|0;fd(c,e);if((c|0)!=(e|0)){Cb(d+56|0,H[e+48>>2],H[e+52>>2])}He(e);break c}c=ca+-64|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(80);H[d>>2]=12640;H[d+4>>2]=0;H[d+76>>2]=0;H[d+72>>2]=e;H[d+68>>2]=h;H[d+8>>2]=12804;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d- -64>>2]=0;i=d+56|0;f=i;H[f>>2]=0;H[f+4>>2]=0;f=H[a+8>>2];H[c+40>>2]=0;H[c+44>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;g=c+24|0;H[g>>2]=0;H[g+4>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c>>2]=12804;H[c+4>>2]=f;j=H[f>>2];l=H[f+4>>2];F[c+63|0]=0;m=g;g=c+63|0;Oa(m,(l-j>>2>>>0)/3|0,g);j=H[c+4>>2];l=H[j+28>>2];j=H[j+24>>2];F[c+63|0]=0;Oa(c+36|0,l-j>>2,g);H[c+20>>2]=d;H[c+16>>2]=h;H[c+12>>2]=e;H[c+8>>2]=f;fd(d+8|0,c);Cb(i,H[c+48>>2],H[c+52>>2]);H[c>>2]=12804;e=H[c+48>>2];if(e){H[c+52>>2]=e;oa(e)}H[c>>2]=12620;e=H[c+36>>2];if(e){oa(e)}e=H[c+24>>2];if(e){oa(e)}ca=c- -64|0}if(!d){break a}}d=od(pa(64),d);c=H[a+4>>2];a=d;d=b;k:{l:{if((d|0)>=0){h=c+8|0;b=H[c+12>>2];i=H[c+8>>2];e=b-i>>2;m:{if((e|0)>(d|0)){break m}f=d+1|0;if(d>>>0>=e>>>0){Vb(h,f-e|0);break m}if(e>>>0<=f>>>0){break m}f=i+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=H[b>>2];H[b>>2]=0;if(e){ea[H[H[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}H[c+12>>2]=f}c=H[h>>2]+(d<<2)|0;b=H[c>>2];H[c>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}ea[H[H[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}ca=n+96|0;return q|0}function Kd(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[e+12>>2]=a;a:{if(a>>>0<=211){d=H[Jd(14256,14448,e+12|0)>>2];break a}if(a>>>0>=4294967292){X();v()}f=(a>>>0)/210|0;d=N(f,210);H[e+8>>2]=a-d;g=Jd(14448,14640,e+8|0)-14448>>2;while(1){d=H[(g<<2)+14448>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0<a>>>0){break a}if((N(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((N(b,c)|0)!=(d|0)){continue}break}break b}b=H[(a<<2)+14256>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((N(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=N(f,210);continue}}ca=e+16|0;return d}function Ib(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ca-16|0;ca=j;a:{b:{c:{d:{if(I[H[a+4>>2]+36|0]<=1){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break c}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;H[b+16>>2]=e;H[b+20>>2]=c;break d}k=-1;if(!Ea(1,j+12|0,b)){break c}l=H[j+12>>2]}e:{f:{g:{h:{i:{if(!l){break i}c=H[a+8>>2];if((H[c+4>>2]-H[c>>2]>>2>>>0)/3>>>0<l>>>0){break c}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Ea(1,j+8|0,b)){break c}c=H[j+8>>2];if(!Ea(1,j+8|0,b)){break c}f=c+f|0;c=H[j+8>>2];if(f>>>0<c>>>0){break c}g=f-c|0;c=H[a+40>>2];k:{if((c|0)!=H[a+44>>2]){H[c+4>>2]=f;H[c>>2]=g;H[a+40>>2]=c+12;l=H[j+12>>2];break k}m=H[a+36>>2];d=c-m|0;o=(d|0)/12|0;e=o+1|0;if(e>>>0>=357913942){break j}c=o<<1;h=o>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(h){if(h>>>0>=357913942){break b}i=pa(N(h,12))}else{i=0}e=i+N(o,12)|0;H[e+4>>2]=f;H[e>>2]=g;c=va(e+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=i+N(h,12);H[a+40>>2]=e+12;H[a+36>>2]=c;if(!m){break k}oa(m)}p=p+1|0;if(l>>>0>p>>>0){continue}break}k=0;Db(b,0,0);if(l){while(1){e=I[b+36|0];c=J[H[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}p=0;c=H[b+32>>2];n=c>>>3|0;g=H[b+24>>2];e=n+g|0;d=H[b+28>>2];n:{if(e>>>0>=d>>>0){f=c;break n}e=I[e|0];f=c+1|0;H[b+32>>2]=f;n=f>>>3|0;p=e>>>(c&7)&1}if(d>>>0>g+n>>>0){break m}break l}if(!e){break l}p=0;f=H[b+32>>2];c=H[b+24>>2]+(f>>>3|0)|0;if(c>>>0>=K[b+28>>2]){break l}p=I[c|0]>>>(f&7)&1}H[b+32>>2]=f+1}c=H[a+36>>2]+N(k,12)|0;F[c+8|0]=I[c+8|0]&254|p&1;k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[b+36|0]=0;f=H[b+20>>2];e=0;d=H[b+32>>2]+7|0;e=d>>>0<7?1:e;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+H[b+16>>2]|0;c=c+f|0;H[b+16>>2]=d;H[b+20>>2]=d>>>0<e>>>0?c+1|0:c;break i}sa();v()}while(1){d=H[b+8>>2];c=H[b+12>>2];g=c;c=H[b+20>>2];e=c;h=H[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;i=f;if(f>>>0>d>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}m=H[b>>2];f=m+h|0;o=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=c;c=e;f=h+8|0;c=f>>>0<8?c+1|0:c;if(d>>>0<f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}i=i+m|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if(d>>>0<=f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=I[f+m|0];c=h+9|0;e=c>>>0<9?e+1|0:e;H[b+16>>2]=c;H[b+20>>2]=e;f=d&1;c=H[a+40>>2];o:{if((c|0)!=H[a+44>>2]){F[c+8|0]=f;H[c+4>>2]=i;H[c>>2]=o;H[a+40>>2]=c+12;l=H[j+12>>2];break o}m=H[a+36>>2];d=c-m|0;h=(d|0)/12|0;e=h+1|0;if(e>>>0>=357913942){break h}c=h<<1;g=h>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(g){if(g>>>0>=357913942){break b}e=pa(N(g,12))}else{e=0}h=e+N(h,12)|0;F[h+8|0]=f;H[h+4>>2]=i;H[h>>2]=o;c=va(h+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=e+N(g,12);H[a+40>>2]=h+12;H[a+36>>2]=c;if(!m){break o}oa(m)}n=n+1|0;if(l>>>0>n>>>0){continue}break}}H[j+8>>2]=0;c=J[H[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;f=H[b+12>>2];if(K[b+8>>2]<e>>>0&(f|0)<=(c|0)|(c|0)>(f|0)){break c}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break p}if((c|0)!=512){break e}k=-1;if(!Ea(1,j+8|0,b)){break c}f=H[j+8>>2]}if(!f){break e}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}n=0;l=0;while(1){if(!Ea(1,j+4|0,b)){break c}l=H[j+4>>2]+l|0;c=H[a+52>>2];q:{if((c|0)!=H[a+56>>2]){H[c>>2]=l;H[a+52>>2]=c+4;break q}i=H[a+48>>2];g=c-i|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break g}c=g>>>1|0;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=l;c=va(c,i,g);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!i){break q}oa(i)}n=n+1|0;if((n|0)!=(f|0)){continue}break}break e}sa();v()}sa();v()}k=0;while(1){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){k=-1;break c}d=d+H[b>>2]|0;g=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=H[a+52>>2];r:{if((c|0)!=H[a+56>>2]){H[c>>2]=g;H[a+52>>2]=c+4;break r}h=H[a+48>>2];i=c-h|0;e=i>>2;d=e+1|0;if(d>>>0>=1073741824){break a}c=i>>>1|0;d=i>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=g;c=va(c,h,i);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!h){break r}oa(h)}k=k+1|0;if((k|0)!=(f|0)){continue}break}}k=H[b+16>>2]}ca=j+16|0;return k}wa();v()}sa();v()}function Va(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(F[b|0]);L[(h<<2)+d>>2]=i?O(j/O(127)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(I[b|0]);L[(h<<2)+d>>2]=i?O(j/O(255)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(G[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(32767)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(J[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(65535)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(H[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(K[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +H[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +K[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=L[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=M[b>>3];b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=I[b|0]?O(1):O(0);b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ra(d,0,a<<2)}return l}function Hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=ca-32|0;ca=e;k=H[a+32>>2];b=J[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){b=H[k+8>>2];d=H[k+12>>2];c=b;b=H[k+20>>2];f=b;g=H[k+16>>2];h=g+4|0;b=h>>>0<4?b+1|0:b;if(c>>>0<h>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}l=H[k>>2];i=l+g|0;n=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[k+16>>2]=h;H[k+20>>2]=b;i=c;c=d;b=f;d=g+8|0;b=d>>>0<8?b+1|0:b;if(d>>>0>i>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}c=h+l|0;H[e+24>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[k+16>>2]=d;H[k+20>>2]=b;break b}if(!Fb(1,e+28|0,k)){break a}if(!Fb(1,e+24|0,H[a+32>>2])){break a}n=H[e+28>>2]}if(n>>>0>1431655765){break a}d=H[a+32>>2];b=d;g=H[b+8>>2];c=H[b+16>>2];h=H[b+12>>2];b=H[b+20>>2];f=Sj(g-c|0,h-(b+(c>>>0>g>>>0)|0)|0,3,0);if(!da&f>>>0<n>>>0|((b|0)>=(h|0)&c>>>0>=g>>>0|(b|0)>(h|0))){break a}g=I[c+H[d>>2]|0];c=c+1|0;b=c?b:b+1|0;H[d+16>>2]=c;H[d+20>>2]=b;c:{d:{if(!g){k=0;c=ca-32|0;ca=c;H[c+24>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;e:{f:{b=N(n,3);if(b){if(b>>>0>=1073741824){break f}d=N(n,12);k=pa(d);ra(k,0,d)}b=kd(b,1,H[a+32>>2],k);g:{h:{if(!(!n|!b)){d=0;while(1){i:{g=H[(d<<2)+k>>2];b=g>>>1|0;j:{if(g&1){if((b|0)>(j|0)){break i}b=0-b|0;break j}if((j^2147483647)>>>0<b>>>0){break i}}g=b+j|0;H[c>>2]=g;h=H[(d+1<<2)+k>>2];b=h>>>1|0;k:{if(h&1){if((b|0)>(g|0)){break i}b=0-b|0;break k}if((g^2147483647)>>>0<b>>>0){break i}}g=b+g|0;H[c+4>>2]=g;h=H[(d+2<<2)+k>>2];b=h>>>1|0;l:{if(h&1){if((b|0)>(g|0)){break i}b=0-b|0;break l}if((g^2147483647)>>>0<b>>>0){break i}}d=d+3|0;j=b+g|0;H[c+8>>2]=j;Rb(H[a+44>>2]+96|0,c);b=1;o=o+1|0;if((o|0)!=(n|0)){continue}break h}break}b=0;break h}if(!k){break g}}oa(k)}ca=c+32|0;break e}sa();v()}if(!b){break a}k=H[e+24>>2];break d}k=H[e+24>>2];if(k>>>0<=255){if(!n){break d}while(1){m:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d=H[a+32>>2];b=d;g=H[b+16>>2];f=H[b+8>>2];c=H[b+20>>2];i=H[b+12>>2];b=i;if(f>>>0<=g>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break m}j=H[d>>2];l=I[j+g|0];b=c;h=g+1|0;b=h?b:b+1|0;H[d+16>>2]=h;H[d+20>>2]=b;H[e+8>>2]=l;l=f>>>0<g>>>0&(c|0)>=(i|0)|(c|0)>(i|0);f=l?g:f;i=l?c:i;if((f|0)==(h|0)&(i|0)==(b|0)){break m}l=I[h+j|0];b=c;h=g+2|0;b=h>>>0<2?b+1|0:b;H[d+16>>2]=h;H[d+20>>2]=b;H[e+12>>2]=l;if((f|0)==(h|0)&(b|0)==(i|0)){break m}h=I[h+j|0];b=c;c=g+3|0;b=c>>>0<3?b+1|0:b;H[d+16>>2]=c;H[d+20>>2]=b;H[e+16>>2]=h;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}if(k>>>0<=65535){if(!n){break d}while(1){n:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;j=H[a+32>>2];b=j;c=H[b+8>>2];d=H[b+12>>2];h=H[b+16>>2];b=H[b+20>>2];g=b;f=h+2|0;b=f>>>0<2?b+1|0:b;if(c>>>0<f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}l=H[j>>2];i=l+h|0;i=I[i|0]|I[i+1|0]<<8;H[j+16>>2]=f;H[j+20>>2]=b;H[e+8>>2]=i;b=g;i=h+4|0;b=i>>>0<4?b+1|0:b;if(c>>>0<i>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}f=f+l|0;f=I[f|0]|I[f+1|0]<<8;H[j+16>>2]=i;H[j+20>>2]=b;H[e+12>>2]=f;f=c;b=g;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}d=i+l|0;d=I[d|0]|I[d+1|0]<<8;H[j+16>>2]=c;H[j+20>>2]=b;H[e+16>>2]=d;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}o:{if(k>>>0>2097151){break o}b=J[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break o}if(!n){break d}while(1){p:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+8>>2]=H[e+4>>2];if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+12>>2]=H[e+4>>2];if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+16>>2]=H[e+4>>2];Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}if(!n){break d}while(1){H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;j=H[a+32>>2];b=j;c=H[b+8>>2];d=H[b+12>>2];h=H[b+16>>2];b=H[b+20>>2];g=b;f=h+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0<f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}l=H[j>>2];i=l+h|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[j+16>>2]=f;H[j+20>>2]=b;H[e+8>>2]=i;b=g;i=h+8|0;b=i>>>0<8?b+1|0:b;if(c>>>0<i>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}f=f+l|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[j+16>>2]=i;H[j+20>>2]=b;H[e+12>>2]=f;f=c;b=g;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+16>>2]=c;H[j+20>>2]=b;H[e+16>>2]=d;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break}}H[H[a+4>>2]+80>>2]=k;m=1;break a}m=0}ca=e+32|0;return m|0}function ic(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if((e+128&65535)>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>127){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e+128>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>127){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>127|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(127)|l<O(-128)|l!=l){break d}m=O(P(l));if(m==O(Infinity)){break d}e=d+g|0;e:{f:{if(I[a+32|0]){if(l<O(0)|l>O(1)){break d}j=T(+l*127+.5);if(!(P(j)<2147483648)){break f}h=~~j;break e}if(!(m<O(2147483648))){break f}h=~~l;break e}h=-2147483648}F[e|0]=h;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=127|j<-128|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j<0|j>1){break b}j=T(j*127+.5)}g:{if(P(j)<2147483648){h=~~j;break g}h=-2147483648}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function hc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(255)|l<O(0)|(O(P(l))==O(Infinity)|l!=l)){break d}e=d+g|0;e:{f:{if(I[a+32|0]){if(l>O(1)){break d}j=T(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l<O(4294967296)&l>=O(0))){break f}h=~~l>>>0;break e}h=0}F[e|0]=h;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=255|j<0|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j>1){break b}j=T(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=O(0),w=0;p=ca-16|0;ca=p;a:{if(!(H[a+60>>2]!=H[a- -64>>2]|H[a+48>>2]!=H[a+52>>2])){j=1;break a}j=1;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break a}while(1){b:{b=ea[H[H[a>>2]+20>>2]](a,w)|0;c:{d:{e:{f=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(b<<2)>>2];switch(H[f+28>>2]-1|0){case 8:break d;case 0:case 2:case 4:break e;default:break c}}b=I[f+24|0];f:{if(!b){n=0;j=0;break f}j=0;b=b<<2;n=pa(b);ra(n,0,b);b=I[f+24|0];if(!b){break f}b=b<<2;j=pa(b);ra(j,0,b)}g:{h:{i:{switch(H[f+28>>2]-1|0){case 4:i=0;h=0;d=0;b=0;k=0;e=I[f+24|0];j:{if(!e){g=0;break j}e=e<<2;h=pa(e);ra(h,0,e);g=pa(e);ra(g,0,e)}k:{if(H[f+80>>2]){while(1){o=H[f>>2];c=H[o>>2];m=H[f+48>>2];e=H[f+40>>2];l=Rj(e,H[f+44>>2],d,b);m=m+l|0;s=c+m|0;c=e;m=qa(h,s,c);l=I[f+24|0];if(l){t=H[a+48>>2];e=0;while(1){r=e<<2;s=H[r+m>>2];if((s|0)<0){break k}H[g+r>>2]=s+H[t+(e+u<<2)>>2];e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[o>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}k=1}if(g){oa(g)}if(h){oa(h)}if(k){break h}break g;case 2:g=0;e=0;d=0;b=0;c=I[f+24|0];if(c){c=c<<1;e=pa(c);ra(e,0,c);g=pa(c);ra(g,0,c)}if(H[f+80>>2]){while(1){l=H[f>>2];h=H[l>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,h+i|0,c);o=I[f+24|0];l:{if(!o){break l}m=H[a+48>>2];h=0;if((o|0)!=1){t=o&254;i=0;while(1){r=h<<1;G[r+g>>1]=J[k+r>>1]+J[m+(h+u<<2)>>1];r=h|1;s=r<<1;G[s+g>>1]=J[k+s>>1]+J[m+(r+u<<2)>>1];h=h+2|0;i=i+2|0;if((t|0)!=(i|0)){continue}break}}if(!(o&1)){break l}i=h<<1;G[i+g>>1]=J[i+k>>1]+J[m+(h+u<<2)>>1]}qa(H[l>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(g){oa(g)}if(e){oa(e)}break h;case 0:break i;default:break h}}h=0;e=0;d=0;b=0;c=I[f+24|0];if(c){e=pa(c);ra(e,0,c);h=pa(c);ra(h,0,c)}if(H[f+80>>2]){while(1){t=H[f>>2];g=H[t>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,g+i|0,c);o=I[f+24|0];m:{if(!o){break m}m=H[a+48>>2];g=0;if((o|0)!=1){r=o&254;i=0;while(1){F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0];l=g|1;F[l+h|0]=I[k+l|0]+I[m+(l+u<<2)|0];g=g+2|0;i=i+2|0;if((r|0)!=(i|0)){continue}break}}if(!(o&1)){break m}F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0]}qa(H[t>>2]+N(d,c)|0,h,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(h){oa(h)}if(e){oa(e)}}u=I[f+24|0]+u|0;i=1}if(j){oa(j)}if(n){oa(n)}if(i){break c}j=0;break a}e=H[H[a+60>>2]+(q<<2)>>2];h=H[a+36>>2];g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[p+12>>2]=H[f+56>>2];b=pa(32);H[p>>2]=b;H[p+4>>2]=24;H[p+8>>2]=-2147483616;d=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);c=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;F[b+20|0]=d;F[b+21|0]=d>>>8;F[b+22|0]=d>>>16;F[b+23|0]=d>>>24;d=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);c=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);c=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;F[b+24|0]=0;d=sd(g,p+12|0,p);if(F[p+11|0]<0){oa(H[p>>2])}b=q+1|0;n:{if(d){oe(f,e);break n}g=h+N(q,24)|0;q=H[g+4>>2];c=I[f+24|0];h=c<<2;d=pa(h);H[p>>2]=1065353216;v=L[g+20>>2];q=-1<<q^-1;if((q|0)>0){L[p>>2]=v/O(q|0)}if((q|0)<=0){break b}o:{if(!H[e+80>>2]){break o}if(!c){n=0;j=0;while(1){qa(H[H[f+64>>2]>>2]+j|0,d,h);j=h+j|0;n=n+1|0;if(n>>>0<K[e+80>>2]){continue}break}break o}o=H[H[e>>2]>>2]+H[e+48>>2]|0;t=c&254;r=c&1;i=0;k=0;j=0;while(1){q=H[g+8>>2];v=L[p>>2];n=0;m=0;if((c|0)!=1){while(1){l=n<<2;s=o+(j<<2)|0;L[l+d>>2]=O(v*O(H[s>>2]))+L[l+q>>2];l=l|4;L[l+d>>2]=O(v*O(H[s+4>>2]))+L[l+q>>2];n=n+2|0;j=j+2|0;m=m+2|0;if((t|0)!=(m|0)){continue}break}}if(r){n=n<<2;L[n+d>>2]=O(v*O(H[o+(j<<2)>>2]))+L[n+q>>2];j=j+1|0}qa(H[H[f+64>>2]>>2]+k|0,d,h);k=h+k|0;i=i+1|0;if(i>>>0<K[e+80>>2]){continue}break}}oa(d)}q=b}j=1;w=w+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(w|0)){continue}break a}break}oa(d);j=0}ca=p+16|0;return j|0}function Le(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;d=J[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){h=H[b+8>>2];f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;if(h>>>0<i>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;break c}if(!hb(1,j+12|0,b)){break b}d=H[b+16>>2];e=H[b+20>>2];l=H[j+12>>2]}f=H[b+8>>2];i=f-d|0;d=H[b+12>>2]-((d>>>0>f>>>0)+e|0)|0;if(i>>>0<l>>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=H[j>>2];d=H[j+4>>2]-e>>2;d:{if(d>>>0<l>>>0){ya(j,l-d|0);l=H[j+12>>2];break d}if(d>>>0<=l>>>0){break d}H[j+4>>2]=e+(l<<2)}i=1;if(!l){break a}d=H[b+16>>2];e=H[b+20>>2];r=H[j>>2];k=H[b+8>>2];o=H[b+12>>2];h=0;while(1){i=0;if((e|0)>=(o|0)&d>>>0>=k>>>0|(e|0)>(o|0)){break a}i=H[b>>2];p=I[i+d|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=p>>>2|0;m=0;e:{f:{g:{h:{s=p&3;switch(s|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;i=0;if(f>>>0>=l>>>0){break a}ra(r+(h<<2)|0,0,(p&252)+4|0);h=f;break e}while(1){if((d|0)==(k|0)&(e|0)==(o|0)){break b}l=I[d+i|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=l<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}H[r+(h<<2)>>2]=f}l=H[j+12>>2];h=h+1|0;if(l>>>0>h>>>0){continue}break}d=j+16|0;o=H[j>>2];f=H[j+16>>2];e=H[j+20>>2]-f|0;i:{if(e>>>0<=4194303){ya(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}H[j+20>>2]=f+4194304}e=j+28|0;h=H[e>>2];f=H[j+32>>2]-h>>3;j:{if(f>>>0<l>>>0){ob(e,l-f|0);h=H[e>>2];break j}if(f>>>0>l>>>0){H[j+32>>2]=(l<<3)+h}if(!l){break b}}k=H[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;j=H[e>>2];m=(d<<3)+h|0;f=i;H[m+4>>2]=f;H[m>>2]=j;e=H[e>>2];i=e+f|0;if(i>>>0>1048576){break b}k:{if(f>>>0>=i>>>0){break k}m=0;j=e&7;if(j){while(1){H[k+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((j|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=k+(f<<2)|0;H[e>>2]=d;H[e+28>>2]=d;H[e+24>>2]=d;H[e+20>>2]=d;H[e+16>>2]=d;H[e+12>>2]=d;H[e+8>>2]=d;H[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((l|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}l:{if(!i|(H[g+20>>2]?0:a)){break l}i=0;n=ca-16|0;ca=n;m:{n:{if(J[b+38>>1]<=511){h=H[b+8>>2];f=H[b+12>>2];j=f;e=H[b+20>>2];k=H[b+16>>2];d=k+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>h>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break m}k=k+H[b>>2]|0;f=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[b+16>>2]=d;H[b+20>>2]=e;break n}if(!gb(1,n+8|0,b)){break m}d=H[b+16>>2];e=H[b+20>>2];h=H[b+8>>2];j=H[b+12>>2];f=H[n+8>>2];k=H[n+12>>2]}l=h-d|0;h=j-((d>>>0>h>>>0)+e|0)|0;if((h|0)==(k|0)&f>>>0>l>>>0|h>>>0<k>>>0){break m}e=e+k|0;h=d+f|0;e=h>>>0<f>>>0?e+1|0:e;H[b+16>>2]=h;H[b+20>>2]=e;if((f|0)<=0){break m}b=H[b>>2]+d|0;H[g+48>>2]=b;d=f-1|0;e=d+b|0;h=I[e|0];o:{if(h>>>0<=63){H[g+52>>2]=d;b=I[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}d=f-2|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8&16128|I[b|0];break o;case 1:if(f>>>0<3){break m}d=f-3|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break o;default:break p}}d=f-4|0;H[g+52>>2]=d;b=b+d|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[g+56>>2]=b+4194304;i=b>>>0<1069547520}ca=n+16|0;if(!i){break l}if(!a){t=1;break l}b=H[g+52>>2];f=H[g+56>>2];d=H[g+36>>2];e=H[g+48>>2];h=H[g+24>>2];while(1){q:{if(f>>>0>4194303){break q}while(1){if((b|0)<=0){break q}b=b-1|0;H[g+52>>2]=b;f=I[b+e|0]|f<<8;H[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;k=H[h+(i<<2)>>2];n=d+(k<<3)|0;f=(N(H[n>>2],f>>>20|0)+i|0)-H[n+4>>2]|0;H[g+56>>2]=f;H[(q<<2)+c>>2]=k;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;return t}function nc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-48|0;ca=e;f=J[6677]|J[6678]<<16;d=J[6675]|J[6676]<<16;G[e+38>>1]=d;G[e+40>>1]=d>>>16;G[e+42>>1]=f;G[e+44>>1]=f>>>16;d=H[3337];H[e+32>>2]=H[3336];H[e+36>>2]=d;d=H[3335];H[e+24>>2]=H[3334];H[e+28>>2]=d;d=H[3333];H[e+16>>2]=H[3332];H[e+20>>2]=d;g=H[b+8>>2];i=H[b+12>>2];h=H[b+20>>2];d=H[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0<f>>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break d}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}f=d+H[b>>2]|0;d=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=I[f+4|0];d=H[b+20>>2];f=H[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;H[b+16>>2]=f;H[b+20>>2]=d;if(Fa(c,1260,5)){d=pa(32);F[d+17|0]=0;F[d+16|0]=I[1496];c=I[1492]|I[1493]<<8|(I[1494]<<16|I[1495]<<24);b=I[1488]|I[1489]<<8|(I[1490]<<16|I[1491]<<24);F[d+8|0]=b;F[d+9|0]=b>>>8;F[d+10|0]=b>>>16;F[d+11|0]=b>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1484]|I[1485]<<8|(I[1486]<<16|I[1487]<<24);b=I[1480]|I[1481]<<8|(I[1482]<<16|I[1483]<<24);F[d|0]=b;F[d+1|0]=b>>>8;F[d+2|0]=b>>>16;F[d+3|0]=b>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,d,17);oa(d);break b}g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break f}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+5|0]=I[f+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break h}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+6|0]=I[d+H[b>>2]|0];h=H[b+20>>2];d=H[b+16>>2]+1|0;h=d?h:h+1|0;H[b+16>>2]=d;H[b+20>>2]=h;f=H[b+12>>2];if((f|0)<=(h|0)&K[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break j}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+7|0]=I[d+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}F[c+8|0]=I[d+H[b>>2]|0];d=H[b+20>>2];g=H[b+16>>2];f=g+1|0;i=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=i;i=H[b+8>>2];h=H[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}d=c;c=H[b>>2]+f|0;G[d+10>>1]=I[c|0]|I[c+1|0]<<8;g=H[b+20>>2];c=H[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;H[b+16>>2]=c;H[b+20>>2]=g;H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}ca=e+48|0;return}Na();v()}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=ca-96|0;ca=e;f=H[a+16>>2];F[e+92|0]=1;H[e+88>>2]=b;H[e+84>>2]=b;H[e+80>>2]=f;j=H[a+20>>2];d=H[j>>2];a:{b:{f=H[H[f+28>>2]+(b<<2)>>2];if(f>>>0<H[j+4>>2]-d>>2>>>0){d=H[H[a+8>>2]+(H[d+(f<<2)>>2]<<2)>>2];f=H[a+4>>2];if(!I[f+84|0]){d=H[H[f+68>>2]+(d<<2)>>2]}H[e+72>>2]=0;H[e+76>>2]=0;j=e- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[e+56>>2]=0;H[e+60>>2]=0;Sa(f,d,F[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!H[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=H[a+20>>2];b=H[n>>2];d=H[H[H[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=H[n+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;Sa(b,d,F[b+24|0],e+32|0);d=H[a+20>>2];b=H[d>>2];f=H[H[H[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=H[d+4>>2]-b>>2>>>0){break a}d=H[H[a+8>>2]+(H[b+(f<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;Sa(b,d,F[b+24|0],e+8|0);g=H[e+8>>2];b=H[e+56>>2];d=g-b|0;p=H[e+60>>2];t=H[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=H[e+40>>2];f=H[e+64>>2];n=h-f|0;u=H[e+68>>2];y=H[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Rj(d,t,n,y);w=o-g|0;x=i-(da+(g>>>0>o>>>0)|0)|0;i=w;h=H[e+16>>2];g=h-f|0;u=H[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=H[e+32>>2];h=k-b|0;w=H[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,h,w);o=i+b|0;i=da+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=H[e+48>>2];f=H[e+72>>2];d=k-f|0;t=H[e+76>>2];x=H[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0<l>>>0?b+1|0:b;l=H[e+24>>2];p=l-f|0;f=H[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Rj(p,f,h,w);l=k-q|0;q=b-(da+(k>>>0<q>>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,f,n,y);r=s+d|0;b=da+b|0;s=r>>>0<s>>>0?b+1|0:b;b=H[e+88>>2];f=H[e+80>>2];d:{if(I[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}H[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[e+88>>2]=b;if((b|0)!=-1){break e}}b=H[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}F[e+92|0]=0;H[e+88>>2]=d;break d}if((b|0)!=H[e+84>>2]){break d}H[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}H[e+88>>2]=d}b=H[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0<f>>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0<a>>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Sj(o,n,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=e+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Jj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;g=H[r>>2];f=H[a+36>>2]-g>>2;a:{if(f>>>0<e>>>0){ya(r,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=g+(e<<2);d=e}w=e<<2;f=e>>>0>1073741823?-1:w;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];c:{if((f|0)>(g|0)){H[d+i>>2]=g;break c}d=d+i|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break c}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=H[b+g>>2]+H[g+i>>2]|0;H[d>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];x=H[f>>2];f=H[f+4>>2]-x|0;if((f|0)>=5){D=H[a+52>>2];s=H[a+48>>2];u=f>>>2|0;E=u>>>0<=2?2:u;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=H[(n<<2)+x>>2];t=(e|0)<=0;if(!t){ra(m,0,w)}if((g|0)==-1){i=N(e,n);break f}C=H[s>>2];l=0;f=g;while(1){i:{if(H[(f>>>3&536870908)+C>>2]>>>f&1){break i}i=H[H[H[s+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=H[D>>2];h=H[s+28>>2];o=H[j+(H[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=H[j+(H[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=H[j+(H[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=N(e,i);j=N(e,k);o=N(e,o);h=0;q=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2];k=h|1;H[(k<<2)+p>>2]=(H[(i+k<<2)+c>>2]+H[(j+k<<2)+c>>2]|0)-H[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((y|0)!=(q|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(e>>>0>3){while(1){j=h<<2;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];k=j|4;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];k=j|8;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];j=j|12;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];h=h+4|0;i=i+4|0;if((F|0)!=(i|0)){continue}break}}if(!A){break j}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[i+p>>2]+H[j>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(H[(h>>>3&536870908)+C>>2]>>>h&1){break k}f=H[H[H[s+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=N(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!B){break h}while(1){g=h<<2;j=g+m|0;H[j>>2]=H[j>>2]/(l|0);g=(g|4)+m|0;H[g>>2]=H[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(l|0)}if((d|0)<=0){break e}l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];m:{if((f|0)>(g|0)){H[d+l>>2]=g;break m}d=d+l|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break m}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(N(n-1|0,e)<<2)+c|0;l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+g>>2];j=H[a+16>>2];o:{if((f|0)>(j|0)){H[d+l>>2]=j;break o}d=d+l|0;j=H[a+12>>2];if((j|0)>(f|0)){H[d>>2]=j;break o}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function sj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;f=H[r>>2];j=H[a+36>>2]-f>>2;a:{if(j>>>0<e>>>0){ya(r,e-j|0);d=H[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}H[a+36>>2]=f+(e<<2);d=e}u=e<<2;f=e>>>0>1073741823?-1:u;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];c:{if((j|0)>(d|0)){H[f+i>>2]=d;break c}f=f+i|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break c}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=H[b+j>>2]+H[j+i>>2]|0;H[d>>2]=j;d:{if((j|0)>H[a+16>>2]){j=j-H[a+20>>2]|0}else{if((j|0)>=H[a+12>>2]){break d}j=j+H[a+20>>2]|0}H[d>>2]=j}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];w=H[f>>2];f=H[f+4>>2]-w|0;if((f|0)>=5){D=H[a+52>>2];x=H[a+48>>2];t=f>>>2|0;E=t>>>0<=2?2:t;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=H[(n<<2)+w>>2];s=(e|0)<=0;if(!s){ra(m,0,u)}if((j|0)==-1){g=N(e,n);break f}C=H[x+12>>2];q=0;f=j;while(1){h=H[(f<<2)+C>>2];i:{if((h|0)==-1){break i}o=H[D>>2];l=H[x>>2];k=H[o+(H[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=H[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=H[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=H[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=H[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=N(e,i);o=N(e,g);k=N(e,k);h=0;i=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2];g=h|1;H[(g<<2)+p>>2]=(H[(g+l<<2)+c>>2]+H[(g+o<<2)+c>>2]|0)-H[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((y|0)!=(i|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(e>>>0>3){while(1){l=h<<2;i=l+m|0;H[i>>2]=H[l+p>>2]+H[i>>2];g=l|4;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|8;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|12;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+4|0;k=k+4|0;if((F|0)!=(k|0)){continue}break}}if(!A){break l}while(1){g=h<<2;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=H[(h<<2)+C>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=N(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!B){break h}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[j>>2]/(q|0);j=(i|4)+m|0;H[j>>2]=H[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(q|0)}if((d|0)<=0){break e}k=H[r>>2];h=0;while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];o:{if((j|0)>(d|0)){H[f+k>>2]=d;break o}f=f+k|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break o}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(N(n-1|0,e)<<2)+c|0;k=H[r>>2];h=0;while(1){j=h<<2;i=H[j+f>>2];d=H[a+16>>2];q:{if((i|0)>(d|0)){H[j+k>>2]=d;break q}j=j+k|0;d=H[a+12>>2];if((d|0)>(i|0)){H[j>>2]=d;break q}H[j>>2]=i}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;r:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break r}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function xa(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ca-32|0;ca=f;a:{b=H[a+16>>2];b:{if(b>>>0>=341){H[a+16>>2]=b-341;b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];c:{if((b|0)!=H[a+12>>2]){d=b;break c}k=H[a>>2];if(k>>>0<c>>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break c}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}c=H[a+8>>2];b=H[a+4>>2];l=c-b|0;h=l>>2;g=H[a+12>>2];d=H[a>>2];e=g-d|0;if(h>>>0<e>>2>>>0){if((c|0)!=(g|0)){n=f,o=pa(4092),H[n+8>>2]=o;d=a;f:{g:{b=H[a+8>>2];h:{if((b|0)!=H[a+12>>2]){e=b;break h}c=H[d+4>>2];h=H[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=va(g+c|0,c,a)+a|0;H[d+8>>2]=e;H[d+4>>2]=g+H[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=pa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=l;H[d+8>>2]=e;H[d+4>>2]=a;H[d>>2]=j;if(!h){break h}oa(h);e=H[d+8>>2]}H[e>>2]=H[f+8>>2];H[d+8>>2]=H[d+8>>2]+4;break f}wa();v()}break b}n=f,o=pa(4092),H[n+8>>2]=o;qd(a,f+8|0);b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];k:{if((b|0)!=H[a+12>>2]){d=b;break k}k=H[a>>2];if(k>>>0<c>>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break k}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}H[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=pa(e);H[f+8>>2]=g;j=e+g|0;H[f+20>>2]=j;d=(h<<2)+g|0;H[f+12>>2]=d;i=pa(4092);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;H[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=pa(b);H[f+8>>2]=e;j=b+e|0;H[f+20>>2]=j;d=e+(d&-4)|0;H[f+12>>2]=d;oa(g);b=H[a+4>>2];c=H[a+8>>2];g=e}H[d>>2]=i;i=d+4|0;H[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qd(f+8|0,c);if(H[a+4>>2]!=(c|0)){continue}break}j=H[f+20>>2];i=H[f+16>>2];d=H[f+12>>2];g=H[f+8>>2];e=c;b=H[a+8>>2]}c=H[a>>2];H[a>>2]=g;H[f+8>>2]=c;H[a+4>>2]=d;H[f+12>>2]=e;H[a+8>>2]=i;H[f+16>>2]=b;d=H[a+12>>2];H[a+12>>2]=j;H[f+20>>2]=d;if((b|0)!=(e|0)){H[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}oa(c)}ca=f+32|0;return}wa();v()}function Aj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=0,m=O(0),n=O(0),o=O(0),p=O(0),q=O(0),r=0,s=O(0),t=O(0),u=O(0),w=O(0),x=0,y=O(0),z=O(0),A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;x=a+32|0;e=H[x>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(x,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){e=H[a+56>>2];h=H[e>>2];if(H[e+4>>2]-h>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;e=-1;h=H[h+(d<<2)>>2];f=-1;d:{if((h|0)==-1){break d}e=h+1|0;e=(e>>>0)%3|0?e:h-2|0;f=h-1|0;if((h>>>0)%3|0){break d}f=h+2|0}j=H[a+52>>2];h=H[j>>2];e:{f:{j=H[j+4>>2]-h>>2;l=e<<2;e=H[H[a+48>>2]+28>>2];r=H[l+e>>2];if(j>>>0<=r>>>0){break f}e=H[e+(f<<2)>>2];if(e>>>0>=j>>>0){break f}j=H[h+(e<<2)>>2];f=H[h+(r<<2)>>2];g:{if(!((j|0)>=(d|0)|(f|0)>=(d|0))){e=H[a+72>>2];h=(N(e,j)<<2)+c|0;m=O(H[h+4>>2]);e=(N(e,f)<<2)+c|0;p=O(H[e+4>>2]);y=O(H[e>>2]);n=O(H[h>>2]);if(!(y!=n|m!=p)){h=+m>2147483647;e=H[a+68>>2];if(O(P(m))<O(2147483648)){f=~~m}else{f=-2147483648}H[e+4>>2]=m<O(-2147483648)?-2147483648:h?-2147483648:f;h=+n>2147483647;if(O(P(n))<O(2147483648)){f=~~n}else{f=-2147483648}H[e>>2]=n<O(-2147483648)?-2147483648:h?-2147483648:f;f=1;break g}e=H[H[a+64>>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){e=H[H[h+68>>2]+(e<<2)>>2]}Va(h,e,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(f<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);f=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g);o=L[g+24>>2];s=O(L[g+8>>2]-o);t=L[g+20>>2];u=O(L[g+4>>2]-t);A=L[g+16>>2];w=O(L[g>>2]-A);z=O(O(s*s)+O(O(u*u)+O(O(w*w)+O(0))));h:{if(H[a+88>>2]>=258){i=O(0);if(!(z>O(0))){break h}}i=O(L[g+40>>2]-o);o=O(L[g+36>>2]-t);t=O(L[g+32>>2]-A);q=O(O(O(s*i)+O(O(u*o)+O(O(w*t)+O(0))))/z);i=O(i-O(s*q));s=O(i*i);i=O(o-O(u*q));o=O(i*i);i=O(t-O(w*q));i=O(W(O(O(s+O(o+O(O(i*i)+O(0))))/z)))}f=H[a+80>>2];if(f){e=f-1|0;h=H[H[a+76>>2]+(e>>>3&536870908)>>2];H[a+80>>2]=e;m=O(m-p);o=O(O(m*q)+p);n=O(n-y);p=O(n*i);e=h>>>e&1;p=O(o+(e?p:O(-p)));i=O(i*m);k=T(+O(O(O(n*q)+y)+(e?O(-i):i))+.5);i:{if(k<-2147483648|k!=k|k>2147483647){e=H[a+68>>2];H[e>>2]=-2147483648;break i}e=H[a+68>>2];if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e>>2]=h}k=T(+p+.5);j=k>2147483647;if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:h}f=(f|0)!=0;break g}j:{if((d|0)>(f|0)){e=H[a+72>>2];h=N(f,e);break j}if((d|0)<=0){f=1;if(H[a+72>>2]<=0){break g}h=H[a+68>>2];e=0;while(1){H[h+(e<<2)>>2]=0;e=e+1|0;if((e|0)<H[a+72>>2]){continue}break}break g}e=H[a+72>>2];h=N(e,d-1|0)}f=1;if((e|0)<=0){break g}j=H[a+68>>2];e=0;while(1){H[j+(e<<2)>>2]=H[(e+h<<2)+c>>2];e=e+1|0;if((e|0)<H[a+72>>2]){continue}break}}ca=g+48|0;break e}Ca();v()}h=f;if(!h){return 0}k:{if(H[a+8>>2]<=0){break k}r=H[a+68>>2];j=H[x>>2];e=0;while(1){f=e<<2;g=H[f+r>>2];l=H[a+16>>2];l:{if((g|0)>(l|0)){H[f+j>>2]=l;break l}f=f+j|0;l=H[a+12>>2];if((l|0)>(g|0)){H[f>>2]=l;break l}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break k}e=d<<3;r=e+c|0;l=b+e|0;while(1){g=f<<2;e=g+r|0;g=H[g+l>>2]+H[g+j>>2]|0;H[e>>2]=g;m:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)<H[a+8>>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function kj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=O(0),m=O(0),n=O(0),o=O(0),p=0,q=O(0),r=O(0),s=O(0),t=O(0),u=O(0),w=0,x=O(0),y=O(0),z=0,A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;w=a+32|0;e=H[w>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(w,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;h=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[a+48>>2];f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=H[H[j>>2]+(f<<2)>>2]}f=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){f=H[H[j>>2]+(e<<2)>>2]}e=H[a+52>>2];j=H[e>>2];e=H[e+4>>2]-j>>2;if(e>>>0<=h>>>0|e>>>0<=f>>>0){break e}e=H[j+(h<<2)>>2];j=H[j+(f<<2)>>2];f:{if(!((d|0)<=(e|0)|(j|0)>=(d|0))){f=H[a+72>>2];h=(N(f,j)<<2)+c|0;l=O(H[h+4>>2]);f=(N(e,f)<<2)+c|0;o=O(H[f+4>>2]);x=O(H[f>>2]);m=O(H[h>>2]);if(!(x!=m|l!=o)){h=+l>2147483647;e=H[a+68>>2];if(O(P(l))<O(2147483648)){f=~~l}else{f=-2147483648}H[e+4>>2]=l<O(-2147483648)?-2147483648:h?-2147483648:f;h=+m>2147483647;if(O(P(m))<O(2147483648)){f=~~m}else{f=-2147483648}H[e>>2]=m<O(-2147483648)?-2147483648:h?-2147483648:f;h=1;break f}f=H[H[a+64>>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){f=H[H[h+68>>2]+(f<<2)>>2]}Va(h,f,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(e<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);h=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){h=H[H[e+68>>2]+(h<<2)>>2]}Va(e,h,F[e+24|0],g);n=L[g+24>>2];r=O(L[g+8>>2]-n);s=L[g+20>>2];t=O(L[g+4>>2]-s);A=L[g+16>>2];u=O(L[g>>2]-A);y=O(O(r*r)+O(O(t*t)+O(O(u*u)+O(0))));g:{if(H[a+88>>2]>=258){i=O(0);if(!(y>O(0))){break g}}i=O(L[g+40>>2]-n);n=O(L[g+36>>2]-s);s=O(L[g+32>>2]-A);q=O(O(O(r*i)+O(O(t*n)+O(O(u*s)+O(0))))/y);i=O(i-O(r*q));r=O(i*i);i=O(n-O(t*q));n=O(i*i);i=O(s-O(u*q));i=O(W(O(O(r+O(n+O(O(i*i)+O(0))))/y)))}e=H[a+80>>2];if(e){f=e-1|0;h=H[H[a+76>>2]+(f>>>3&536870908)>>2];H[a+80>>2]=f;l=O(l-o);n=O(O(l*q)+o);m=O(m-x);o=O(m*i);f=h>>>f&1;o=O(n+(f?o:O(-o)));i=O(i*l);k=T(+O(O(O(m*q)+x)+(f?O(-i):i))+.5);h:{if(k<-2147483648|k!=k|k>2147483647){h=H[a+68>>2];H[h>>2]=-2147483648;break h}h=H[a+68>>2];if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h>>2]=f}k=T(+o+.5);j=k>2147483647;if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:f}h=(e|0)!=0;break f}i:{if((d|0)>(e|0)){f=H[a+72>>2];e=N(e,f);break i}if((d|0)<=0){h=1;if(H[a+72>>2]<=0){break f}e=H[a+68>>2];f=0;while(1){H[e+(f<<2)>>2]=0;f=f+1|0;if((f|0)<H[a+72>>2]){continue}break}break f}f=H[a+72>>2];e=N(f,d-1|0)}h=1;if((f|0)<=0){break f}j=H[a+68>>2];f=0;while(1){H[j+(f<<2)>>2]=H[(e+f<<2)+c>>2];f=f+1|0;if((f|0)<H[a+72>>2]){continue}break}}ca=g+48|0;break d}Ca();v()}if(!h){return 0}j:{if(H[a+8>>2]<=0){break j}z=H[a+68>>2];j=H[w>>2];e=0;while(1){f=e<<2;g=H[f+z>>2];p=H[a+16>>2];k:{if((g|0)>(p|0)){H[f+j>>2]=p;break k}f=f+j|0;p=H[a+12>>2];if((p|0)>(g|0)){H[f>>2]=p;break k}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break j}e=d<<3;z=e+c|0;p=b+e|0;while(1){g=f<<2;e=g+z|0;g=H[g+p>>2]+H[g+j>>2]|0;H[e>>2]=g;l:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break l}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)<H[a+8>>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=ca-704|0;ca=f;n=1;a:{b:{c:{d:{if(J[b+38>>1]<515){break d}n=0;c=H[b+20>>2];d=H[b+12>>2];g=H[b+16>>2];if((c|0)>=(d|0)&g>>>0>=K[b+8>>2]|(c|0)>(d|0)){break d}p=I[H[b>>2]+g|0];g=g+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;g=H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=ea[H[H[a>>2]+24>>2]](a)|0;H[f+40>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;if(c){if(c>>>0>=214748365){break c}c=N(c,20);d=pa(c);H[f+32>>2]=d;H[f+40>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=ra(d,0,c)+c|0,H[q+36>>2]=r}e:{if((ea[H[H[a>>2]+24>>2]](a)|0)>0){while(1){c=ea[H[H[a>>2]+20>>2]](a,l)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,g);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];d=H[c+28>>2];if(d>>>0>9){break e}f:{g:{h:{e=1<<d;if(!(e&42)){if(e&84){break f}if((d|0)!=9){break e}d=I[c+24|0];e=Eb(f+48|0);i=N(d,H[3401]);lc(e,H[c+56>>2],d,6,0,i,i>>31);c=jc(pa(96),e);H[f>>2]=c;F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];mb(c,g);c=H[a+64>>2];if(c>>>0>=K[a+68>>2]){break h}d=H[f>>2];H[f>>2]=0;H[c>>2]=d;c=c+4|0;H[a+64>>2]=c;break g}j=0;if(!I[c+24|0]){break f}while(1){d=H[a+52>>2];i=H[a+56>>2];i:{if(d>>>0<i>>>0){H[d>>2]=0;H[a+52>>2]=d+4;break i}e=d;d=H[a+48>>2];m=e-d|0;k=m>>2;e=k+1|0;if(e>>>0>=1073741824){break b}o=k<<2;i=i-d|0;k=i>>>1|0;e=i>>>0>=2147483644?1073741823:e>>>0<k>>>0?k:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}else{i=0}k=o+i|0;H[k>>2]=0;o=e<<2;e=va(i,d,m);H[a+56>>2]=o+e;H[a+52>>2]=k+4;H[a+48>>2]=e;if(!d){break i}oa(d)}j=j+1|0;if(j>>>0<I[c+24|0]){continue}break}break f}c=0;j:{k:{l:{e=H[a+60>>2];i=H[a+64>>2]-e>>2;d=i+1|0;if(d>>>0<1073741824){e=H[a+68>>2]-e|0;j=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(e){if(e>>>0>=1073741824){break l}c=pa(e<<2)}j=H[f>>2];H[f>>2]=0;d=(i<<2)+c|0;H[d>>2]=j;e=(e<<2)+c|0;i=d+4|0;c=H[a+64>>2];j=H[a+60>>2];if((c|0)==(j|0)){break k}while(1){c=c-4|0;m=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=m;if((c|0)!=(j|0)){continue}break}H[a+68>>2]=e;e=H[a+64>>2];H[a+64>>2]=i;c=H[a+60>>2];H[a+60>>2]=d;if((c|0)==(e|0)){break j}while(1){e=e-4|0;d=H[e>>2];H[e>>2]=0;if(d){Ga(d)}if((c|0)!=(e|0)){continue}break}break j}sa();v()}wa();v()}H[a+68>>2]=e;H[a+64>>2]=i;H[a+60>>2]=d}if(c){oa(c)}c=H[a+64>>2]}c=H[c-4>>2];d=H[f>>2];H[f>>2]=0;if(!d){break f}Ga(d)}i=H[c+28>>2];d=i-1|0;if(d>>>0<=10){e=H[(d<<2)+13584>>2]}else{e=-1}d=H[f+32>>2]+N(l,20)|0;j=I[c+24|0];H[d+16>>2]=j;H[d+12>>2]=(e|0)>0?e:0;H[d+8>>2]=i;H[d+4>>2]=h;H[d>>2]=c;h=h+j|0;l=l+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}}a=Ac(f,f+32|0);m:{n:{o:{switch(p|0){case 0:c=wb(f+48|0,h);b=Bd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 1:c=wb(f+48|0,h);b=zd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 2:c=ub(f+48|0,h);b=yd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 3:c=ub(f+48|0,h);b=xd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 4:c=$a(f+48|0,h);b=wd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 5:c=$a(f+48|0,h);b=vd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 6:break o;default:break m}}c=$a(f+48|0,h);b=ud(c,b,a,g);h=H[c+8>>2];ab(c);if(!b|(h|0)!=(g|0)){break m}}n=1}b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(!b){break e}H[a+4>>2]=b;oa(b)}a=H[f+32>>2];if(!a){break d}H[f+36>>2]=a;oa(a)}ca=f+704|0;return n|0}sa();v()}sa();v()}wa();v()}function Zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-32|0;ca=e;a:{b:{switch(c-2|0){case 0:c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=ea[H[H[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=7144;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=7668;a=d+96|0;break d}if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=8080;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=8472;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=8860;break a;case 1:break b;default:break a}}c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=ea[H[H[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=9028;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=9592;a=d+96|0;break f}if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=10032;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=10452;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=10864}ca=e+32|0;return d|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(H[c>>2]==H[c+4>>2]){m=H[d+80>>2];u=ca-16|0;ca=u;g=H[a+4>>2];k=I[b+24|0];h=H[d+48>>2];n=H[H[d>>2]>>2];c=u+8|0;H[c>>2]=1065353216;d=c;L[c>>2]=O(-1<<g^-1)/L[a+20>>2];c=pa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=L[d>>2];n=H[a+8>>2];v=H[b>>2];d=H[b+48>>2];g=H[b+40>>2];w=H[b+44>>2];if(!I[b+84|0]){f=H[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=H[v>>2];l=Rj(g,w,H[f+(i<<2)>>2],0)+d|0;h=qa(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));b:{if(O(P(e))<O(2147483648)){r=~~e;break b}r=-2147483648}H[l>>2]=r;j=j|4;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));c:{if(O(P(e))<O(2147483648)){j=~~e;break c}j=-2147483648}H[l+4>>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+h>>2]-L[b+n>>2]))+O(.5))));d:{if(O(P(e))<O(2147483648)){b=~~e;break d}b=-2147483648}H[l>>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=H[v>>2];h=Rj(g,w,i,l)+d|0;j=qa(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));e:{if(O(P(e))<O(2147483648)){r=~~e;break e}r=-2147483648}H[h>>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));f:{if(O(P(e))<O(2147483648)){f=~~e;break f}f=-2147483648}H[h+4>>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+j>>2]-L[b+n>>2]))+O(.5))));g:{if(O(P(e))<O(2147483648)){b=~~e;break g}b=-2147483648}H[h>>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}oa(c);ca=u+16|0;return 1}j=ca-16|0;ca=j;m=H[a+4>>2];i=I[b+24|0];g=H[d+48>>2];h=H[H[d>>2]>>2];d=j+8|0;H[d>>2]=1065353216;l=d;L[d>>2]=O(-1<<m^-1)/L[a+20>>2];d=pa(i<<2);m=H[c+4>>2];q=H[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=L[l>>2];h=H[a+8>>2];v=H[b>>2];l=H[b+48>>2];m=H[b+40>>2];w=H[b+44>>2];if(I[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[q+(c<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));i:{if(O(P(e))<O(2147483648)){r=~~e;break i}r=-2147483648}H[g>>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));j:{if(O(P(e))<O(2147483648)){f=~~e;break j}f=-2147483648}H[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));k:{if(O(P(e))<O(2147483648)){b=~~e;break k}b=-2147483648}H[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=H[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[s+(H[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));l:{if(O(P(e))<O(2147483648)){r=~~e;break l}r=-2147483648}H[g>>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));m:{if(O(P(e))<O(2147483648)){f=~~e;break m}f=-2147483648}H[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));n:{if(O(P(e))<O(2147483648)){b=~~e;break n}b=-2147483648}H[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}oa(d);ca=j+16|0;return 1}function dd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+4>>2];e=H[a>>2];f=(c-e|0)/144|0;if(f>>>0<b>>>0){e=a;b=b-f|0;h=H[a+8>>2];c=H[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){Ia(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=N(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}H[e+4>>2]=c;break a}c:{d:{e:{a=c;c=H[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0<f>>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=pa(N(f,144))}c=N(i,144)+g|0;a=c;h=b&7;if(h){while(1){Ia(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=N(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=N(f,144)+g|0;d=H[e+4>>2];f=H[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;H[c>>2]=H[a>>2];H[c+4>>2]=H[a+4>>2];H[c+8>>2]=H[a+8>>2];H[c+12>>2]=H[a+12>>2];H[a+12>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[c+16>>2]=H[a+16>>2];H[c+20>>2]=H[a+20>>2];H[c+24>>2]=H[a+24>>2];H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;g=I[a+28|0];H[c+40>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;F[c+28|0]=g;H[c+32>>2]=H[a+32>>2];H[c+36>>2]=H[a+36>>2];H[c+40>>2]=H[a+40>>2];H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[c+52>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+44>>2]=H[a+44>>2];H[c+48>>2]=H[a+48>>2];H[c+52>>2]=H[a+52>>2];H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;g=c- -64|0;H[g>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+56>>2]=H[a+56>>2];H[c+60>>2]=H[a+60>>2];i=g;g=a- -64|0;H[i>>2]=H[g>>2];H[g>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[c+68>>2]=H[a+68>>2];g=H[a+72>>2];H[c+84>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+72>>2]=g;H[c+76>>2]=H[a+76>>2];H[c+80>>2]=H[a+80>>2];H[c+84>>2]=H[a+84>>2];H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[c+96>>2]=0;H[c+88>>2]=0;H[c+92>>2]=0;H[c+88>>2]=H[a+88>>2];H[c+92>>2]=H[a+92>>2];H[c+96>>2]=H[a+96>>2];H[a+96>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;g=I[a+100|0];H[c+112>>2]=0;H[c+104>>2]=0;H[c+108>>2]=0;F[c+100|0]=g;H[c+104>>2]=H[a+104>>2];H[c+108>>2]=H[a+108>>2];H[c+112>>2]=H[a+112>>2];H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[c+124>>2]=0;H[c+116>>2]=0;H[c+120>>2]=0;H[c+116>>2]=H[a+116>>2];H[c+120>>2]=H[a+120>>2];H[c+124>>2]=H[a+124>>2];H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;g=H[a+128>>2];H[c+140>>2]=0;H[c+132>>2]=0;H[c+136>>2]=0;H[c+128>>2]=g;H[c+132>>2]=H[a+132>>2];H[c+136>>2]=H[a+136>>2];H[c+140>>2]=H[a+140>>2];H[a+140>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}H[e+8>>2]=b;a=H[e+4>>2];H[e+4>>2]=h;d=H[e>>2];H[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=H[b+132>>2];if(c){H[a-8>>2]=c;oa(c)}c=H[a-28>>2];if(c){H[a-24>>2]=c;oa(c)}c=H[a-40>>2];if(c){H[a-36>>2]=c;oa(c)}oc(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}sa();v()}wa();v()}H[e+8>>2]=b;H[e+4>>2]=h;H[e>>2]=c}if(d){oa(d)}}return}if(b>>>0<f>>>0){e=e+N(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=H[b+132>>2];if(d){H[c-8>>2]=d;oa(d)}d=H[c-28>>2];if(d){H[c-24>>2]=d;oa(d)}d=H[c-40>>2];if(d){H[c-36>>2]=d;oa(d)}oc(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}H[a+4>>2]=e}}function Pe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]){b=pa(32);F[b+27|0]=0;c=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[b+23|0]=c;F[b+24|0]=c>>>8;F[b+25|0]=c>>>16;F[b+26|0]=c>>>24;c=I[1518]|I[1519]<<8|(I[1520]<<16|I[1521]<<24);d=I[1514]|I[1515]<<8|(I[1516]<<16|I[1517]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1510]|I[1511]<<8|(I[1512]<<16|I[1513]<<24);d=I[1506]|I[1507]<<8|(I[1508]<<16|I[1509]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1502]|I[1503]<<8|(I[1504]<<16|I[1505]<<24);d=I[1498]|I[1499]<<8|(I[1500]<<16|I[1501]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,27);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(F[f+32|0]){case 0:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13496;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13404;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Ic(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;H[a+56>>2]=H[a+52>>2];H[a+44>>2]=H[a+40>>2];b=H[a+64>>2];c=H[b+24>>2];if((c|0)==H[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=H[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=H[a+56>>2];e:{if((b|0)!=H[a+60>>2]){H[b>>2]=g;H[a+56>>2]=b+4;break e}d=H[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=pa(f<<2)}else{e=0}c=e+(h<<2)|0;H[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=e+(f<<2);H[a+56>>2]=h;H[a+52>>2]=c;if(!d){break e}oa(d)}f:{g:{if(!(H[H[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|H[H[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=H[H[H[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=H[a+64>>2];f=H[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|H[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=H[H[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}H[H[a+28>>2]+(e<<2)>>2]=g;b=H[a+44>>2];i:{if((b|0)!=H[a+48>>2]){H[b>>2]=e;H[a+44>>2]=b+4;break i}d=H[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=pa(f<<2)}else{i=0}c=i+(h<<2)|0;H[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+48>>2]=i+(f<<2);H[a+44>>2]=h;H[a+40>>2]=c;if(!d){break i}oa(d)}i=g+1|0;b=H[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(H[H[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=H[a+56>>2];k:{if((b|0)!=H[a+60>>2]){H[b>>2]=i;H[a+56>>2]=b+4;break k}d=H[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=pa(h<<2)}else{g=0}c=g+(j<<2)|0;H[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=g+(h<<2);H[a+56>>2]=j;H[a+52>>2]=c;if(!d){break k}oa(d)}d=i+1|0;b=H[a+44>>2];l:{if((b|0)!=H[a+48>>2]){H[b>>2]=f;H[a+44>>2]=b+4;break l}h=H[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0<j>>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=pa(j<<2)}else{g=0}c=g+(l<<2)|0;H[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(h|0)){continue}break}}H[a+48>>2]=g+(j<<2);H[a+44>>2]=l;H[a+40>>2]=c;if(!h){break l}oa(h)}g=i;i=d}H[H[a+28>>2]+(f<<2)>>2]=g;b=H[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=H[b+24>>2];if(k>>>0<H[b+28>>2]-c>>2>>>0){continue}break}return 1}sa();v()}wa();v()}sa();v()}function ti(a){a=a|0;var b=0,c=0,d=0,e=0;c=H[a+32>>2];d=H[c+16>>2];e=H[c+12>>2];b=H[c+20>>2];if(K[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=I[H[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;H[c+16>>2]=d;H[c+20>>2]=b;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=pa(384);H[b>>2]=11384;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+376>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;break c;case 1:b=pa(424);H[b>>2]=11436;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;c=b+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[b+416>>2]=-1;H[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=pa(440);H[b>>2]=11484;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;H[b+416>>2]=0;H[b+420>>2]=0;H[b+408>>2]=2;H[b+412>>2]=7;H[b+400>>2]=-1;H[b+404>>2]=-1;H[b+424>>2]=0;H[b+428>>2]=0;H[b+432>>2]=0;H[b+436>>2]=0}c=H[a+48>>2];H[a+48>>2]=b;if(!c){break a}ea[H[H[c>>2]+4>>2]](c)}b=H[a+48>>2];if(b){break a}return 0}a=ea[H[H[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function Lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=ca-96|0;ca=f;e=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=e;a:{if((b|0)==-1){break a}j=H[a+20>>2];d=H[j>>2];e=H[H[e>>2]+(b<<2)>>2];if(e>>>0>=H[j+4>>2]-d>>2>>>0){break a}e=H[H[a+8>>2]+(H[d+(e<<2)>>2]<<2)>>2];d=H[a+4>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;j=f- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;Sa(d,e,F[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!H[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=H[a+20>>2];b=H[m>>2];d=H[H[H[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=H[m+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[(d<<2)+b>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;Sa(b,d,F[b+24|0],f+32|0);if((e|0)==-1){break c}d=H[a+20>>2];b=H[d>>2];e=H[H[H[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=H[d+4>>2]-b>>2>>>0){break c}d=H[H[a+8>>2]+(H[b+(e<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;Sa(b,d,F[b+24|0],f+8|0);g=H[f+8>>2];b=H[f+56>>2];d=g-b|0;p=H[f+60>>2];t=H[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=H[f+40>>2];e=H[f+64>>2];m=i-e|0;u=H[f+68>>2];y=H[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=Rj(d,t,m,y);w=o-g|0;x=h-(da+(g>>>0>o>>>0)|0)|0;h=w;i=H[f+16>>2];g=i-e|0;u=H[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=H[f+32>>2];i=k-b|0;w=H[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,i,w);o=h+b|0;h=da+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=H[f+48>>2];e=H[f+72>>2];d=k-e|0;t=H[f+76>>2];x=H[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0<l>>>0?b+1|0:b;l=H[f+24>>2];p=l-e|0;e=H[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=Rj(p,e,i,w);l=k-q|0;q=b-(da+(k>>>0<q>>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,e,m,y);r=s+d|0;b=da+b|0;s=r>>>0<s>>>0?b+1|0:b;uc(f+80|0);b=H[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0<g>>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0<e>>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0<a>>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=Sj(o,m,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=f+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=H[a+12>>2];d=H[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=H[d>>2];i=H[e+60>>2];f=H[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=H[e>>2];H[e>>2]=0;g=H[d>>2];H[d>>2]=h;if(g){Ga(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=H[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=H[c>>2];H[c>>2]=0;if(e){Ga(e)}if((c|0)!=(d|0)){continue}break}}H[a+12>>2]=d;g=H[a+4>>2];b:{if(!g|(i|0)<0){break b}c=H[g+24>>2];d=H[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==H[H[c>>2]+24>>2]){d=c+4|0;i=H[g+28>>2];if((d|0)!=(i|0)){while(1){h=H[d>>2];H[d>>2]=0;e=H[c>>2];H[c>>2]=h;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=H[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=H[d>>2];H[d>>2]=0;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}if((c|0)!=(d|0)){continue}break}}H[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=N(f,12)+a|0;c=H[e+20>>2];d=H[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(H[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;va(f,c,d-c|0);H[e+24>>2]=d-4}c=H[a+24>>2];d=H[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break e}H[c>>2]=d-1}c=H[a+36>>2];d=H[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break f}H[c>>2]=d-1}c=H[a+48>>2];d=H[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break g}H[c>>2]=d-1}c=H[a+60>>2];d=H[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break h}H[c>>2]=d-1}c=H[a+72>>2];a=H[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}i=a+(i|4)|0;f=H[i>>2];if((f|0)>(b|0)){H[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=H[a>>2];if((f|0)>=(b|0)){break a}H[a>>2]=b-1}}function oa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=H[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=H[d>>2];d=d-b|0;if(d>>>0<K[4302]){break a}a=a+b|0;if(H[4303]!=(d|0)){if(b>>>0<=255){e=H[d+8>>2];b=b>>>3|0;c=H[d+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break b}H[e+12>>2]=c;H[c+8>>2]=e;break b}h=H[d+24>>2];b=H[d+12>>2];c:{if((d|0)!=(b|0)){c=H[d+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break c}d:{e=d+20|0;c=H[e>>2];if(c){break d}e=d+16|0;c=H[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break b}e=H[d+28>>2];c=(e<<2)+17496|0;e:{if(H[c>>2]==(d|0)){H[c>>2]=b;if(b){break e}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break b}H[h+(H[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}H[b+24>>2]=h;c=H[d+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[d+20>>2];if(!c){break b}H[b+20>>2]=c;H[c+24>>2]=b;break b}b=H[f+4>>2];if((b&3)!=3){break b}H[4300]=a;H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=H[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(H[4304]==(f|0)){H[4304]=d;a=H[4301]+a|0;H[4301]=a;H[d+4>>2]=a|1;if(H[4303]!=(d|0)){break a}H[4300]=0;H[4303]=0;return}if(H[4303]==(f|0)){H[4303]=d;a=H[4300]+a|0;H[4300]=a;H[d+4>>2]=a|1;H[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=H[f+8>>2];b=b>>>3|0;c=H[f+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break g}H[e+12>>2]=c;H[c+8>>2]=e;break g}h=H[f+24>>2];b=H[f+12>>2];h:{if((f|0)!=(b|0)){c=H[f+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break h}i:{e=f+20|0;c=H[e>>2];if(c){break i}e=f+16|0;c=H[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break g}e=H[f+28>>2];c=(e<<2)+17496|0;j:{if(H[c>>2]==(f|0)){H[c>>2]=b;if(b){break j}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break g}H[h+(H[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}H[b+24>>2]=h;c=H[f+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[f+20>>2];if(!c){break g}H[b+20>>2]=c;H[c+24>>2]=b}H[d+4>>2]=a|1;H[a+d>>2]=a;if(H[4303]!=(d|0)){break f}H[4300]=a;return}H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);k:{if(!(c&a)){H[4298]=a|c;a=b;break k}a=H[b+8>>2]}H[b+8>>2]=d;H[a+12>>2]=d;H[d+12>>2]=b;H[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=Q(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}H[d+28>>2]=e;H[d+16>>2]=0;H[d+20>>2]=0;g=(e<<2)+17496|0;l:{m:{c=H[4299];b=1<<e;n:{if(!(c&b)){H[4299]=b|c;H[g>>2]=d;H[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=H[g>>2];while(1){c=b;if((H[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=H[g+16>>2];if(b){continue}break}H[g+16>>2]=d;H[d+24>>2]=c}H[d+12>>2]=d;H[d+8>>2]=d;break l}a=H[c+8>>2];H[a+12>>2]=d;H[c+8>>2]=d;H[d+24>>2]=0;H[d+12>>2]=c;H[d+8>>2]=a}a=H[4306]-1|0;H[4306]=a?a:-1}}function tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;n=a+32|0;h=H[n>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){ya(n,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];p=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+m>>2];j=H[a+16>>2];c:{if((h|0)>(j|0)){H[d+g>>2]=j;break c}d=d+g|0;j=H[a+12>>2];if((j|0)>(h|0)){H[d>>2]=j;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){i=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}i=h+H[a+20>>2]|0}H[d>>2]=i}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1){break f}f=H[H[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=H[s>>2];g=H[p>>2];k=H[j+(H[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=H[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=H[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=H[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=H[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=N(e,g);j=N(e,f);k=N(e,k);f=0;l=0;if((e|0)!=1){while(1){H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];i=f|1;H[(i<<2)+m>>2]=(H[(g+i<<2)+c>>2]+H[(j+i<<2)+c>>2]|0)-H[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+m>>2];k=H[a+16>>2];j:{if((g|0)>(k|0)){H[d+j>>2]=k;break j}d=d+j|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];i=H[a+16>>2];l:{if((g|0)>(i|0)){H[d+j>>2]=i;break l}d=d+j|0;i=H[a+12>>2];if((i|0)>(g|0)){H[d>>2]=i;break l}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;m:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(m);return 1}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=H[a+48>>2];H[a+52>>2]=e;a:{if((e|0)!=H[a+56>>2]){H[e>>2]=b;H[a+52>>2]=e+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!e){break a}oa(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=H[H[a+4>>2]+28>>2];k=H[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-N(g,3)|0?-1:2)+b|0;j=H[c+(e<<2)>>2];if((j|0)==-1){return 0}b=H[a+36>>2];g=b+(k>>>3&536870908)|0;d=H[g>>2];c=1<<k;if(!(d&c)){H[g>>2]=c|d;Ua(a+8|0,k,i);b=H[a+36>>2]}d=(j>>>3&536870908)+b|0;c=H[d>>2];b=1<<j;if(!(c&b)){H[d>>2]=b|c;Ua(a+8|0,j,e)}f=H[a+52>>2];if((f|0)==H[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=H[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=H[a+24>>2]+(c>>>3&268435452)|0;d=H[g>>2];c=1<<c;if(d&c){break c}H[g>>2]=c|d;h=H[a+4>>2];c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=H[a+36>>2]+(c>>>3&536870908)|0;i=H[j>>2];e=1<<c;if(i&e){break e}f:{g=H[H[h+40>>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];break e}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|H[H[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=H[H[H[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;f=H[a+24>>2];e=c>>>5|0;j=H[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(H[H[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=H[H[H[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=H[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=H[f+(e<<2)>>2];d=1<<d;if(!(j&d)){break i}}if(g){break j}d=1<<i;f=H[a+24>>2];e=i>>>5|0;j=H[f+(e<<2)>>2];if(!(d&j)){break d}}f=H[a+52>>2]-4|0;H[a+52>>2]=f;break b}if(g){b=c;break d}if(H[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=H[a+52>>2];H[h-4>>2]=b;if(H[a+56>>2]!=(h|0)){H[h>>2]=c;f=h+4|0;break c}m:{i=H[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=pa(e<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;H[b>>2]=H[h>>2];if((h|0)!=(i|0)){continue}break}}H[a+56>>2]=d+(e<<2);H[a+52>>2]=f;H[a+48>>2]=b;if(!i){break b}oa(i);f=H[a+52>>2];break b}sa();v()}wa();v()}H[(e<<2)+f>>2]=d|j;c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}H[a+52>>2]=f}if(H[a+48>>2]!=(f|0)){continue}break}}return 1}function Lj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){ya(m,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];n=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+l>>2];i=H[a+16>>2];c:{if((h|0)>(i|0)){H[d+g>>2]=i;break c}d=d+g|0;i=H[a+12>>2];if((i|0)>(h|0)){H[d>>2]=i;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}h=h+H[a+20>>2]|0}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1|H[H[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=H[H[H[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=H[s>>2];g=H[n+28>>2];k=H[i+(H[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=H[i+(H[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=H[i+(H[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=N(e,f);i=N(e,j);k=N(e,k);f=0;p=0;if((e|0)!=1){while(1){H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];j=f|1;H[(j<<2)+l>>2]=(H[(g+j<<2)+c>>2]+H[(i+j<<2)+c>>2]|0)-H[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+l>>2];k=H[a+16>>2];h:{if((g|0)>(k|0)){H[d+i>>2]=k;break h}d=d+i|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break h}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;i:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break i}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];j=H[a+16>>2];j:{if((g|0)>(j|0)){H[d+i>>2]=j;break j}d=d+i|0;j=H[a+12>>2];if((j|0)>(g|0)){H[d>>2]=j;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(l);return 1}function Gb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0,m=O(0);i=H[c>>2];a:{b:{f=H[b+4>>2];if(!f){break b}g=Uj(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=pa(16);d=H[H[d>>2]>>2];H[c+12>>2]=0;H[c+8>>2]=d;H[c+4>>2]=i;H[c>>2]=0;m=O(H[b+12>>2]+1>>>0);j=L[b+16>>2];d:{if(m>O(j*O(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=O(U(O(m/j)));e:{if(j<O(4294967296)&j>=O(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Kd(d);f=H[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=O(U(O(O(K[b+12>>2])/L[b+16>>2])));h:{if(j<O(4294967296)&j>=O(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(Uj(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-Q(d-1|0);break i}d=Kd(d)}e=d>>>0<e>>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=pa(h<<2);e=H[b>>2];H[b>>2]=d;if(e){oa(e)}H[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;H[k+H[b>>2]>>2]=0;H[H[b>>2]+(k|4)>>2]=0;H[H[b>>2]+(k|8)>>2]=0;H[H[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){H[H[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=H[b+8>>2];if(!e){break k}d=b+8|0;f=H[e+4>>2];g=Uj(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=H[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+H[b>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=d;f=g;break o}H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break k}d=H[b>>2];H[b>>2]=0;if(d){oa(d)}H[b+4>>2]=0;break k}wa();v()}f=h-1&f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&H[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+H[b>>2]|0;if(H[h>>2]){H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d;break p}H[h>>2]=e;e=d;f=g}d=H[e>>2];if(d){continue}break}}}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=H[b>>2]+(e<<2)|0;d=H[e>>2];q:{r:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[e>>2]=d;d=H[c>>2];if(!d){break q}d=H[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0<f>>>0){break s}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break r}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Oe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]!=1){b=pa(32);F[b+20|0]=0;c=I[1448]|I[1449]<<8|(I[1450]<<16|I[1451]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;c=I[1444]|I[1445]<<8|(I[1446]<<16|I[1447]<<24);d=I[1440]|I[1441]<<8|(I[1442]<<16|I[1443]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1436]|I[1437]<<8|(I[1438]<<16|I[1439]<<24);d=I[1432]|I[1433]<<8|(I[1434]<<16|I[1435]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,20);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(I[f+32|0]){case 0:e=Ke(pa(48));H[e>>2]=13112;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=Ke(pa(52));H[e+48>>2]=0;H[e>>2]=11276;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;H[e+44>>2]=d;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Gc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=N(b,12)+a|0;H[j+12>>2]=H[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((de(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=H[a+56>>2]+(m>>>3&536870908)|0;h=H[d>>2];e=1<<m;if(h&e){break e}f=0;while(1){H[d>>2]=e|h;d=H[j+12>>2];f:{if((d|0)!=H[j+16>>2]){H[d>>2]=m;H[j+12>>2]=d+4;break f}n=H[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0<g>>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=pa(i<<2)}else{g=0}h=g+(e<<2)|0;H[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;H[h>>2]=H[d>>2];if((d|0)!=(n|0)){continue}break}}H[j+8>>2]=h;H[j+12>>2]=e;H[j+16>>2]=g+(i<<2);if(!n){break f}oa(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=H[H[H[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=H[(H[H[a>>2]+96>>2]+N(e,12)|0)+(i-N(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(f-N(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=H[a+56>>2]+(m>>>3&268435452)|0;h=H[d>>2];e=1<<m;if(!(h&e)){continue}}break}if(l|!(g&1)){break e}l=H[j+12>>2]-4|0;g=H[l>>2];d=H[a+56>>2]+(g>>>3&536870908)|0;c=H[d>>2];o=d,p=Vj(g)&c,H[o>>2]=p;H[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;de(a,-1);break a}sa();v()}wa();v()}H[((b<<2)+a|0)+44>>2]=k;b=H[j+12>>2];i=H[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=H[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=H[l+i>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;g=H[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=H[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(c)&a,H[o>>2]=p}}function Gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function pj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<<e;j=Ba(c);g=H[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function xe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=H[a+48>>2];H[a+52>>2]=f;a:{if((f|0)!=H[a+56>>2]){H[f>>2]=b;H[a+52>>2]=f+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!f){break a}oa(f)}e=-1;d=H[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=H[H[d>>2]+(i<<2)>>2]}b:{h=b-N(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=H[H[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=H[a+36>>2];f=c+(e>>>3&536870908)|0;g=H[f>>2];d=1<<e;if(!(g&d)){H[f>>2]=d|g;Ua(a+8|0,e,i);c=H[a+36>>2]}g=(j>>>3&536870908)+c|0;d=H[g>>2];c=1<<j;if(!(d&c)){H[g>>2]=c|d;Ua(a+8|0,j,(h?-1:2)+b|0)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=H[a+24>>2]+(d>>>3&268435452)|0;g=H[f>>2];d=1<<d;if(g&d){break d}H[f>>2]=d|g;while(1){i=H[a+4>>2];e=H[H[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=H[a+36>>2]+(e>>>3&536870908)|0;f=H[h>>2];g=1<<e;if(f&g){break f}g:{d=H[H[i+24>>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=H[H[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}H[h>>2]=f|g;Ua(j,e,b);break f}H[h>>2]=f|g;Ua(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;e=H[a+24>>2];f=c>>>5|0;i=H[e+(f<<2)>>2];break e}c=-1;g=H[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=H[H[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=H[H[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=H[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=H[e+(f<<2)>>2];d=1<<d;if(!(i&d)){break k}}if(!g){d=1<<h;e=H[a+24>>2];f=h>>>5|0;i=H[e+(f<<2)>>2];if(!(d&i)){break e}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break c}if(g){b=c;break e}if(H[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=H[a+52>>2];H[e-4>>2]=b;if(H[a+56>>2]!=(e|0)){H[e>>2]=c;c=e+4|0;break d}l:{h=H[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=pa(f<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;H[b>>2]=H[e>>2];if((e|0)!=(h|0)){continue}break}}H[a+56>>2]=d+(f<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!h){break c}oa(h);c=H[a+52>>2];break c}sa();v()}wa();v()}H[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function uj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function dj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)<H[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=ca-80|0;ca=h;a:{b:{if(I[H[a+28>>2]+36|0]<=1){d=H[b+20>>2];f=H[b+16>>2];c=f+4|0;d=c>>>0<4?d+1|0:d;g=H[b+12>>2];if(K[b+8>>2]<c>>>0&(g|0)<=(d|0)|(d|0)>(g|0)){break a}f=f+H[b>>2]|0;j=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!Pc(1,h+76|0,b)){break a}j=H[h+76>>2]}if(!j){break a}d=H[b+8>>2];c=H[b+16>>2];d=Rj(d-c|0,H[b+12>>2]-(H[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=da;if(d>>>0<j>>>0&(c|0)<=0|(c|0)<0){break a}c=H[a+4>>2];d=H[a+8>>2]-c>>2;c:{if(d>>>0<j>>>0){ya(a+4|0,j-d|0);break c}if(d>>>0<=j>>>0){break c}H[a+8>>2]=c+(j<<2)}p=a+16|0;l=H[a+32>>2];while(1){i=H[b+12>>2];c=i;d=H[b+20>>2];e=H[b+8>>2];f=H[b+16>>2];if((c|0)<=(d|0)&e>>>0<=f>>>0|(c|0)<(d|0)){e=0;break a}n=H[b>>2];q=I[n+f|0];c=d;g=f+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;if(e>>>0<=g>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}g=I[g+n|0];c=d;k=f+2|0;c=k>>>0<2?c+1|0:c;H[b+16>>2]=k;H[b+20>>2]=c;if(e>>>0<=k>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}k=I[k+n|0];c=d;m=f+3|0;c=m>>>0<3?c+1|0:c;H[b+16>>2]=m;H[b+20>>2]=c;if(e>>>0<=m>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}e=I[m+n|0];c=d;d=f+4|0;c=d>>>0<4?c+1|0:c;H[b+16>>2]=d;H[b+20>>2]=c;if(q>>>0>4){e=0;break a}if((g-12&255)>>>0<245){e=0;break a}if(!k){e=0;break a}m=Eb(h+8|0);i=(e|0)!=0;d=g-1|0;if(d>>>0<=10){c=H[(d<<2)+13584>>2]}else{c=-1}d=N(c,k);lc(m,q,k,g,i,d,d>>31);d:{d=J[H[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=H[b+20>>2];f=H[b+16>>2];d=f+2|0;c=d>>>0<2?c+1|0:c;e=H[b+12>>2];if(K[b+8>>2]<d>>>0&(e|0)<=(c|0)|(c|0)>(e|0)){break d}f=f+H[b>>2]|0;e=I[f|0]|I[f+1|0]<<8;H[b+16>>2]=d;H[b+20>>2]=c;break e}if(!Pc(1,h+4|0,b)){break d}e=H[h+4>>2]}H[h+68>>2]=e;d=jc(pa(96),m);ea[H[H[l>>2]+8>>2]](l,H[l+12>>2]-H[l+8>>2]>>2,d);d=(H[l+12>>2]-H[l+8>>2]>>2)-1|0;f=d<<2;H[H[f+H[l+8>>2]>>2]+60>>2]=e;H[H[a+4>>2]+(o<<2)>>2]=d;e=H[a+16>>2];c=H[a+20>>2]-e>>2;f:{if((c|0)>(d|0)){break f}H[h>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){Pa(p,d-c|0,h);e=H[p>>2];break f}if(c>>>0<=d>>>0){break f}H[a+20>>2]=(d<<2)+e}H[e+f>>2]=o;e=1;o=o+1|0;if((o|0)!=(j|0)){continue}break a}break}e=0}ca=h+80|0;return e|0}function nd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=ea[H[H[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=H[b+4>>2]-H[b>>2]>>2;e=ca+-64|0;ca=e;f=Eb(e);d=N(H[3400],n);lc(f,H[H[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=jc(pa(96),f);F[f+84|0]=1;H[f+72>>2]=H[f+68>>2];mb(f,i);H[f+60>>2]=H[H[a+8>>2]+60>>2];d=H[a+16>>2];H[a+16>>2]=f;if(d){Ga(d)}ca=e- -64|0;h=H[a+16>>2];if(!H[h+80>>2]){break a}j=H[H[h>>2]>>2];if(!j){break a}m=H[c+12>>2];e=m;d=H[c+20>>2];g=H[c+8>>2];k=H[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=N(i,n);i=j+H[h+48>>2]|0;h=H[c>>2];j=I[h+k|0];e=k+1|0;f=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=f;b:{c:{if(j){if(kd(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=I[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;d=H[H[a+16>>2]+64>>2];d=H[d+4>>2]-H[d>>2]|0;if((g|0)==H[3400]){e=l<<2;if(e>>>0>d>>>0){break a}g=H[c+8>>2];k=H[c+12>>2];j=H[c+20>>2];d=H[c+16>>2];f=e+d|0;j=f>>>0<e>>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}qa(i,d+H[c>>2]|0,e);f=H[c+20>>2];d=e+H[c+16>>2]|0;f=d>>>0<e>>>0?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;break c}if(d>>>0<N(g,l)>>>0){break a}d=H[c+8>>2];f=H[c+16>>2];e=d-f|0;m=d>>>0<f>>>0;d=H[c+20>>2];k=H[c+12>>2]-(m+d|0)|0;m=Rj(g,0,l,0)>>>0>e>>>0;e=da;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=H[c+8>>2];j=H[c+12>>2];e=f+g|0;d=e>>>0<g>>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}qa(i+(h<<2)|0,H[c>>2]+f|0,g);d=H[c+20>>2];f=g+H[c+16>>2]|0;d=f>>>0<g>>>0?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=H[a+20>>2];if(d){e=0;if(ea[H[H[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=H[e+i>>2];H[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=H[d+i>>2];H[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=H[d+i>>2];H[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=H[a+20>>2];e:{if(!f){break e}if(!(ea[H[H[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=H[a+20>>2];if(!(ea[H[H[a>>2]+44>>2]](a,i,i,l,n,H[b>>2])|0)){break a}}o=1}return o|0}function pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{b:{if(H[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=pa(b<<2);H[h+24>>2]=b;H[h+20>>2]=0;H[h+16>>2]=c;b=H[a>>2];H[h+12>>2]=0;H[h+8>>2]=b;c=H[a+4>>2];H[h+4>>2]=c&31;H[h>>2]=b+(c>>>3&536870908);e=ca-32|0;ca=e;i=H[h+4>>2];g=H[h+12>>2];j=H[h>>2];d=H[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=H[h+20>>2];c=b+f|0;H[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){H[H[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=H[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<<g&-1>>>i-f;H[c>>2]=H[c>>2]&(i^-1)|i&H[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){va(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;H[g>>2]=H[g>>2]&(b^-1)|b&H[c+d>>2];break c}H[e+28>>2]=g;H[e+24>>2]=d;H[e+20>>2]=i;H[e+16>>2]=j;H[e+12>>2]=f;H[e+8>>2]=c;b=H[e+28>>2];c=H[e+24>>2];g=(H[e+20>>2]-b|0)+(H[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=H[e+12>>2];d=H[e+8>>2];break d}e:{if(!b){b=H[e+12>>2];break e}d=H[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=H[e+8>>2];m=H[l>>2]&(-1<<d&-1>>>j-i^-1);j=H[c>>2]&(-1<<b&-1>>>k-f);H[l>>2]=m|(b>>>0<d>>>0?j<<d-b:j>>>b-d|0);c=d+i|0;b=c&31;H[e+12>>2]=b;d=l+(c>>>3&536870908)|0;H[e+8>>2]=d;c=f-i|0;if((c|0)>0){H[d>>2]=H[d>>2]&(-1>>>32-c^-1)|j>>>i+H[e+28>>2];H[e+12>>2]=c;b=c}g=g-f|0;c=H[e+24>>2]+4|0;H[e+24>>2]=c}i=-1<<b;f=32-b|0;if((g|0)>=32){j=i^-1;while(1){d=H[e+8>>2];c=H[c>>2];H[d>>2]=j&H[d>>2]|c<<b;H[e+8>>2]=d+4;H[d+4>>2]=i&H[d+4>>2]|c>>>f;c=H[e+24>>2]+4|0;H[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=H[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=H[d>>2]&(i&-1>>>j-f^-1);i=H[c>>2]&-1>>>32-g;H[d>>2]=j|i<<b;b=b+f|0;c=b&31;H[e+12>>2]=c;d=(b>>>3&536870908)+d|0;H[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}H[d>>2]=H[d>>2]&(-1>>>32-b^-1)|i>>>f;H[e+12>>2]=b}H[e+4>>2]=b;H[e>>2]=d}ca=e+32|0;b=H[a>>2];H[a>>2]=H[h+16>>2];H[h+16>>2]=b;c=H[a+4>>2];H[a+4>>2]=H[h+20>>2];H[h+20>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[h+24>>2];H[h+24>>2]=c;if(!b){break b}oa(b)}ca=h+32|0;return}sa();v()}function Ne(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){g=H[b+8>>2];e=H[b+12>>2];d=H[b+20>>2];c=H[b+16>>2];i=c+4|0;d=i>>>0<4?d+1|0:d;if(g>>>0<i>>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=c+H[b>>2]|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[a+12>>2]=f;d=H[b+20>>2];c=H[b+16>>2]+4|0;d=c>>>0<4?d+1|0:d;H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!hb(1,a+12|0,b)){break a}c=H[b+16>>2];d=H[b+20>>2];f=H[a+12>>2]}e=H[b+8>>2];i=e-c|0;c=H[b+12>>2]-(d+(c>>>0>e>>>0)|0)|0;if(i>>>0<f>>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=H[a>>2];c=H[a+4>>2]-d>>2;c:{if(c>>>0<f>>>0){ya(a,f-c|0);f=H[a+12>>2];break c}if(c>>>0<=f>>>0){break c}H[a+4>>2]=d+(f<<2)}if(!f){return 1}c=H[b+16>>2];d=H[b+20>>2];l=H[a>>2];i=H[b+8>>2];j=H[b+12>>2];g=0;while(1){if((d|0)>=(j|0)&c>>>0>=i>>>0|(d|0)>(j|0)){return 0}m=H[b>>2];k=I[m+c|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=k>>>2|0;h=0;d:{e:{f:{g:{n=k&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ra(l+(g<<2)|0,0,(k&252)+4|0);g=e;break d}while(1){if((c|0)==(i|0)&(d|0)==(j|0)){break a}f=I[c+m|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}H[l+(g<<2)>>2]=e}f=H[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;i=H[a>>2];d=H[a+16>>2];c=H[a+20>>2]-d|0;h:{if(c>>>0<=16383){ya(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}H[a+20>>2]=d+16384}c=a+28|0;g=H[c>>2];d=H[a+32>>2]-g>>3;i:{if(d>>>0<f>>>0){ob(c,f-d|0);g=H[c>>2];break i}if(d>>>0>f>>>0){H[a+32>>2]=(f<<3)+g}if(!f){break a}}d=H[b>>2];b=0;a=0;while(1){c=i+(b<<2)|0;h=H[c>>2];e=a;j=(b<<3)+g|0;H[j+4>>2]=a;H[j>>2]=h;c=H[c>>2];a=c+a|0;if(a>>>0>4096){break a}j:{if(a>>>0<=e>>>0){break j}h=0;j=c&7;if(j){while(1){H[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((j|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=d+(e<<2)|0;H[c>>2]=b;H[c+28>>2]=b;H[c+24>>2]=b;H[c+20>>2]=b;H[c+16>>2]=b;H[c+12>>2]=b;H[c+8>>2]=b;H[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function Ni(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<<d;d=-2-e|0;H[a+84>>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ii(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<<d;d=-2-e|0;H[a+84>>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Wi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<<d;d=-2-e|0;H[a+84>>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ri(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<<d;d=-2-e|0;H[a+84>>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ge(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ca-16|0;ca=f;c=H[a+4>>2];H[a+40>>2]=H[a>>2];H[a+44>>2]=c;c=H[a+36>>2];H[a+72>>2]=H[a+32>>2];H[a+76>>2]=c;d=H[a+28>>2];c=a- -64|0;H[c>>2]=H[a+24>>2];H[c+4>>2]=d;c=H[a+20>>2];H[a+56>>2]=H[a+16>>2];H[a+60>>2]=c;c=H[a+12>>2];H[a+48>>2]=H[a+8>>2];H[a+52>>2]=c;a:{b:{if(Db(a+40|0,1,f+8|0)){c=H[a+44>>2];H[a>>2]=H[a+40>>2];H[a+4>>2]=c;c=H[a+76>>2];H[a+32>>2]=H[a+72>>2];H[a+36>>2]=c;c=H[a+68>>2];H[a+24>>2]=H[a+64>>2];H[a+28>>2]=c;d=H[a+60>>2];h=d;c=H[a+56>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+52>>2];d=H[a+48>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0<d>>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;c:{if(J[a+38>>1]<=513){c=H[a+4>>2];H[a+96>>2]=H[a>>2];H[a+100>>2]=c;c=H[a+36>>2];H[a+128>>2]=H[a+32>>2];H[a+132>>2]=c;c=H[a+28>>2];H[a+120>>2]=H[a+24>>2];H[a+124>>2]=c;c=H[a+20>>2];H[a+112>>2]=H[a+16>>2];H[a+116>>2]=c;c=H[a+12>>2];H[a+104>>2]=H[a+8>>2];H[a+108>>2]=c;d:{if(Db(a+96|0,1,f+8|0)){c=H[a+100>>2];H[a>>2]=H[a+96>>2];H[a+4>>2]=c;c=H[a+132>>2];H[a+32>>2]=H[a+128>>2];H[a+36>>2]=c;c=H[a+124>>2];H[a+24>>2]=H[a+120>>2];H[a+28>>2]=c;d=H[a+116>>2];h=d;c=H[a+112>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+108>>2];d=H[a+104>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0<d>>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;break c}c=0;if(!ta(a+80|0,a)){break a}}c=0;if(!Fe(a)){break a}c=H[a+4>>2];H[b>>2]=H[a>>2];H[b+4>>2]=c;c=H[a+36>>2];H[b+32>>2]=H[a+32>>2];H[b+36>>2]=c;c=H[a+28>>2];H[b+24>>2]=H[a+24>>2];H[b+28>>2]=c;c=H[a+20>>2];H[b+16>>2]=H[a+16>>2];H[b+20>>2]=c;c=H[a+12>>2];H[b+8>>2]=H[a+8>>2];H[b+12>>2]=c;c=1}ca=f+16|0;return c}function oe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!H[a+64>>2]){c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(d){c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d);c=H[a+64>>2]}H[a>>2]=c;d=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=d;d=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+16>>2]=d;H[a+20>>2]=c}a:{F[a+24|0]=I[b+24|0];H[a+28>>2]=H[b+28>>2];F[a+32|0]=I[b+32|0];c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;H[a+56>>2]=H[b+56>>2];c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;H[a+60>>2]=H[b+60>>2];c=H[b>>2];b:{if(!c){H[a>>2]=0;d=1;break b}g=H[a>>2];d=0;if(!g){break b}d=H[c>>2];c=H[c+4>>2]-d|0;se(g,d,c,0);d=1}c:{if(!d){break c}F[a+84|0]=I[b+84|0];H[a+80>>2]=H[b+80>>2];if((a|0)!=(b|0)){Cb(a+68|0,H[b+68>>2],H[b+72>>2])}f=H[b+88>>2];d:{if(f){e=pa(40);b=H[f>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e>>2]=b;c=H[f+12>>2];b=H[f+8>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=pa(c);H[e+12>>2]=b;H[e+8>>2]=b;H[e+16>>2]=b+c;c=H[f+8>>2];h=H[f+12>>2];e:{if((c|0)==(h|0)){break e}g=(c^-1)+h|0;d=h-c&7;if(d){while(1){F[b|0]=I[c|0];b=b+1|0;c=c+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}if(g>>>0<7){break e}while(1){F[b|0]=I[c|0];F[b+1|0]=I[c+1|0];F[b+2|0]=I[c+2|0];F[b+3|0]=I[c+3|0];F[b+4|0]=I[c+4|0];F[b+5|0]=I[c+5|0];F[b+6|0]=I[c+6|0];F[b+7|0]=I[c+7|0];b=b+8|0;c=c+8|0;if((h|0)!=(c|0)){continue}break}}H[e+12>>2]=b}b=H[f+36>>2];H[e+32>>2]=H[f+32>>2];H[e+36>>2]=b;b=H[f+28>>2];H[e+24>>2]=H[f+24>>2];H[e+28>>2]=b;b=H[a+88>>2];H[a+88>>2]=e;if(b){break d}break c}b=H[a+88>>2];H[a+88>>2]=0;if(!b){break c}}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}oa(b)}return}sa();v()}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=ca-32|0;ca=f;e=f+8|0;c=ca-80|0;ca=c;a=H[b+36>>2];H[c+72>>2]=H[b+32>>2];H[c+76>>2]=a;d=H[b+28>>2];a=c- -64|0;H[a>>2]=H[b+24>>2];H[a+4>>2]=d;a=H[b+20>>2];H[c+56>>2]=H[b+16>>2];H[c+60>>2]=a;a=H[b+12>>2];H[c+48>>2]=H[b+8>>2];H[c+52>>2]=a;a=H[b+4>>2];H[c+40>>2]=H[b>>2];H[c+44>>2]=a;nc(c+8|0,c+40|0,c+24|0);a=H[c+8>>2];a:{if(a){H[e>>2]=a;a=e+4|0;if(F[c+23|0]>=0){b=c+8|4;e=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=e;H[a+8>>2]=H[b+8>>2];break a}za(a,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]>=0){break a}oa(H[c+12>>2]);break a}if(F[c+23|0]<0){oa(H[c+12>>2])}a=I[c+31|0];if(a>>>0>=2){b=pa(32);F[b+26|0]=0;a=I[1477]|I[1478]<<8;F[b+24|0]=a;F[b+25|0]=a>>>8;a=I[1473]|I[1474]<<8|(I[1475]<<16|I[1476]<<24);d=I[1469]|I[1470]<<8|(I[1471]<<16|I[1472]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=a;F[b+21|0]=a>>>8;F[b+22|0]=a>>>16;F[b+23|0]=a>>>24;a=I[1465]|I[1466]<<8|(I[1467]<<16|I[1468]<<24);d=I[1461]|I[1462]<<8|(I[1463]<<16|I[1464]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=a;F[b+13|0]=a>>>8;F[b+14|0]=a>>>16;F[b+15|0]=a>>>24;a=I[1457]|I[1458]<<8|(I[1459]<<16|I[1460]<<24);d=I[1453]|I[1454]<<8|(I[1455]<<16|I[1456]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=a;F[b+5|0]=a>>>8;F[b+6|0]=a>>>16;F[b+7|0]=a>>>24;H[c+8>>2]=-1;a=c+8|4;za(a,b,26);d=F[c+23|0];H[e>>2]=H[c+8>>2];e=e+4|0;if((d|0)>=0){d=H[a+4>>2];H[e>>2]=H[a>>2];H[e+4>>2]=d;H[e+8>>2]=H[a+8>>2];oa(b);break a}za(e,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]<0){oa(H[c+12>>2])}oa(b);break a}H[e>>2]=0;H[e+4>>2]=0;H[e+16>>2]=a;H[e+8>>2]=0;H[e+12>>2]=0}ca=c+80|0;a=H[f+24>>2];if(F[f+23|0]<0){oa(H[f+12>>2])}ca=f+32|0;return a|0}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;H[k+8>>2]=c;h=H[a+12>>2];d=H[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=H[a+16>>2];d=H[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ra(e,0,d)+d|0}H[a+12>>2]=d;break a}b:{c:{d:{m=H[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ra(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=H[d>>2];H[d>>2]=0;h=h-4|0;H[h>>2]=f;if((d|0)!=(m|0)){continue}break}H[a+16>>2]=e;e=H[a+12>>2];H[a+12>>2]=g;d=H[a+8>>2];H[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=H[e>>2];H[e>>2]=0;if(f){Ga(f)}if((d|0)!=(e|0)){continue}break}break b}sa();v()}wa();v()}H[a+16>>2]=e;H[a+12>>2]=g;H[a+8>>2]=i}if(d){oa(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=H[h>>2];H[h>>2]=0;if(c){Ga(c)}if((d|0)!=(h|0)){continue}break}c=H[k+8>>2]}H[a+12>>2]=d}e:{f:{d=H[c+56>>2];g:{if((d|0)>4){break g}j=N(d,12)+a|0;d=H[j+24>>2];if((d|0)!=H[j+28>>2]){H[d>>2]=b;H[j+24>>2]=d+4;break g}i=H[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=pa(e<<2)}else{d=0}f=d+(f<<2)|0;H[f>>2]=b;d=va(d,i,g);H[j+20>>2]=d;H[j+24>>2]=f+4;H[j+28>>2]=d+(e<<2);if(!i){break g}oa(i)}H[c+60>>2]=b;a=H[a+8>>2];H[k+8>>2]=0;a=a+(b<<2)|0;b=H[a>>2];H[a>>2]=c;if(b){Ga(b)}a=H[k+8>>2];H[k+8>>2]=0;if(a){Ga(a)}ca=k+16|0;return}sa();v()}wa();v()}function Og(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(H[a+12>>2]==(b|0)){break a}a=b;b=H[d+4>>2];e=H[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(F[b-1|0]<0){oa(H[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=a;H[d+4>>2]=e;c=H[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=H[d+4>>2];b:{if((a|0)!=H[d+8>>2]){c:{if(F[c+27|0]>=0){b=H[c+20>>2];H[a>>2]=H[c+16>>2];H[a+4>>2]=b;H[a+8>>2]=H[c+24>>2];break c}za(a,H[c+16>>2],H[c+20>>2])}H[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=H[d+4>>2];e=H[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(H[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0<k>>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=pa(N(b,12))}h=N(b,12);b=N(f,12)+g|0;g:{if(F[c+27|0]>=0){f=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=f;H[b+8>>2]=H[c+24>>2];break g}za(b,H[c+16>>2],H[c+20>>2]);e=H[d>>2];a=H[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=H[a+4>>2];b=b-12|0;H[b>>2]=H[a>>2];H[b+4>>2]=h;H[b+8>>2]=H[a+8>>2];H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}H[d+8>>2]=g;a=H[d+4>>2];H[d+4>>2]=f;e=H[d>>2];H[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(F[a-1|0]<0){oa(H[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}sa();v()}wa();v()}H[d+8>>2]=g;H[d+4>>2]=f;H[d>>2]=b}if(e){oa(e)}}b=H[c+4>>2];h:{if(b){while(1){a=b;b=H[b>>2];if(b){continue}break h}}while(1){a=H[c+8>>2];b=H[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=H[d>>2];if((H[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+N(i,12)|0;a=F[a+11|0]<0?H[a>>2]:a}return a|0}function bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=ca-16|0;ca=i;H[i>>2]=b;f=-1;a:{if((b|0)==-1){H[i+4>>2]=-1;break a}f=b+1|0;H[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}H[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=H[(l<<2)+i>>2];if((j|0)!=-1){f=H[H[H[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=H[a+216>>2];if((g|0)==H[a+220>>2]){break e}while(1){g=N(f,144)+g|0;d=H[g+136>>2];c=H[g+140>>2];g:{if(d>>>0<c>>>0){H[d>>2]=j;H[g+136>>2]=d+4;break g}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break g}oa(d)}f=f+1|0;g=H[a+216>>2];if(f>>>0<(H[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0<n>>>0){break e}f=0;if(H[a+220>>2]==H[a+216>>2]){break e}while(1){h:{if(!Ba(H[a+368>>2]+(f<<4)|0)){break h}g=H[a+216>>2]+N(f,144)|0;d=H[g+136>>2];c=H[g+140>>2];if(d>>>0<c>>>0){H[d>>2]=j;H[g+136>>2]=d+4;break h}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break h}oa(d)}f=f+1|0;if(f>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}ca=i+16|0;return 1}sa();v()}wa();v()}sa();v()}function cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=ca-16|0;ca=h;H[h>>2]=b;c=-1;a:{if((b|0)==-1){H[h+4>>2]=-1;break a}c=b+1|0;H[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}H[h+8>>2]=c;b:{c:{while(1){i=H[(k<<2)+h>>2];d:{if(!((i|0)==-1|H[H[H[a+8>>2]+12>>2]+(i<<2)>>2]==-1)){b=0;if(H[a+220>>2]==H[a+216>>2]){break d}while(1){e:{f:{if(!Ba(H[a+368>>2]+(b<<4)|0)){break f}c=H[a+216>>2]+N(b,144)|0;e=H[c+136>>2];d=H[c+140>>2];if(e>>>0<d>>>0){H[e>>2]=i;H[c+136>>2]=e+4;break f}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break e}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0<f>>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break f}oa(e)}b=b+1|0;if(b>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break d}break}sa();v()}b=0;c=H[a+216>>2];if((c|0)==H[a+220>>2]){break d}while(1){c=N(b,144)+c|0;e=H[c+136>>2];d=H[c+140>>2];g:{if(e>>>0<d>>>0){H[e>>2]=i;H[c+136>>2]=e+4;break g}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break c}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0<f>>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break g}oa(e)}b=b+1|0;c=H[a+216>>2];if(b>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}ca=h+16|0;return 1}sa();v()}wa();v()}function vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!ic(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function ug(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!hc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function qc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;f=h;H[c+4>>2]=f;l=H[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=N(j,l);f=(e<<1)-n|0;i=(N(g,j)|0)>=0;e=N(g,l);f=((i?0-f|0:f)+e|0)/2|0;H[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;H[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}H[c>>2]=f;H[c+4>>2]=g;j=0}e=H[d>>2]+f|0;h=H[b+16>>2];k:{if((e|0)>(h|0)){e=e-H[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=H[b+4>>2]+e|0}c=H[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-H[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=H[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=N(f,h);d=d-e|0;f=(N(c,f)|0)>=0;g=f?0-d|0:d;d=N(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;H[b>>2]=e+k;H[b+4>>2]=c+k}function Cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]<e>>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[H[a+48>>2]+64>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0<f>>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<<i;e=Ba(c);g=H[a+76>>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0<k>>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]<e>>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[a+48>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0<f>>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<<i;e=Ba(c);g=H[a+76>>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0<k>>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function cj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];g=H[a+36>>2]-h>>2;a:{if(g>>>0<e>>>0){ya(m,e-g|0);f=H[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}H[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ra(pa(g),0,g);b:{if((f|0)<=0){break b}h=H[a+32>>2];while(1){f=i<<2;g=H[f+n>>2];j=H[a+16>>2];c:{if((g|0)>(j|0)){H[f+h>>2]=j;break c}f=f+h|0;j=H[a+12>>2];if((j|0)>(g|0)){H[f>>2]=j;break c}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=H[b+g>>2]+H[g+h>>2]|0;H[f>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=H[m>>2];i=0;while(1){f=i<<2;h=H[f+q>>2];k=H[a+16>>2];f:{if((h|0)>(k|0)){H[f+j>>2]=k;break f}f=f+j|0;k=H[a+12>>2];if((k|0)>(h|0)){H[f>>2]=k;break f}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=H[h+l>>2]+H[h+j>>2]|0;H[f>>2]=h;g:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break g}h=h+H[a+20>>2]|0}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}oa(n);return 1}function De(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=H[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=H[a+148>>2];c=-1;e=1;d=((d|0)!=-1?H[H[g>>2]+(d<<2)>>2]:c)<<2;c=H[a+156>>2];d=d+c|0;H[d>>2]=H[d>>2]+1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+1;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+2;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0}H[c>>2]=H[c>>2]+e;e=H[a+184>>2]}h:{switch(e|0){case 0:case 5:f=H[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=H[H[H[a+148>>2]>>2]+(b<<2)>>2]}if(H[f+(c<<2)>>2]<=5){H[a+188>>2]=5;return}H[a+188>>2]=0;return;default:break h}}H[a+188>>2]=-1}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[b+80>>2];b=I[c+24|0];g=N(j,b);a:{if(!b){break a}h=b<<2;f=pa(h);a=f;k=b&7;if(k){while(1){H[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){H[a+24>>2]=-1073741824;H[a+28>>2]=-1073741824;H[a+16>>2]=-1073741824;H[a+20>>2]=-1073741824;H[a+8>>2]=-1073741824;H[a+12>>2]=-1073741824;H[a>>2]=-1073741824;H[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=H[d>>2];a=H[d+4>>2]-e>>2;b:{if(a>>>0<g>>>0){ya(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}H[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!Va(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!Va(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break e}m=H[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;L[g>>2]=L[h+f>>2];L[g+4>>2]=L[(h|4)+f>>2];L[g+8>>2]=L[(h|8)+f>>2];L[g+12>>2]=L[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){L[(e<<2)+m>>2]=L[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}oa(f)}return i|0}function mf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ca-16|0;ca=e;h=1;i=ea[H[H[a>>2]+24>>2]](a)|0;a:{if((i|0)<=0){break a}l=a+48|0;h=0;while(1){b:{c:{if(!H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=H[j+H[a+36>>2]>>2];b=H[g+8>>2];k=rb(g);if(!k){break c}g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[e+12>>2]=H[b+56>>2];b=pa(32);H[e>>2]=b;H[e+4>>2]=24;H[e+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;b=sd(g,e+12|0,e);if(F[e+11|0]<0){oa(H[e>>2])}if(!b){break c}oe(H[H[H[a+36>>2]+j>>2]+8>>2],k);break b}b=H[H[a+36>>2]+(f<<2)>>2];if(!(ea[H[H[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;h=(i|0)<=(f|0);if((f|0)!=(i|0)){continue}break}}ca=e+16|0;return h|0}function Ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];a:{if(K[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+H[b>>2]|0;h=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((h|0)<0){break a}Wa(a+76|0,h);c=k;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;b:{if(!ta(c,b)){break b}if(h){g=1;while(1){d=1<<i;e=Ba(c);f=H[a+76>>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=H[f>>2]&(d^-1)}else{d=d|H[f>>2]}g=e^1;H[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=H[b+8>>2];e=H[b+12>>2];f=e;e=H[b+20>>2];g=e;l=H[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=H[b>>2];d=m+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(j|0)){break b}H[a+16>>2]=d;H[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0<j>>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break b}H[a+24>>2]=b-1}}ca=k+16|0;return i|0}function rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!dc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!dc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!ec(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!ec(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!gc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!gc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!fc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!fc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function Ce(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(H[a+168>>2]){case 0:case 1:e=H[a+148>>2];c=1;b=H[a+156>>2];g=b+(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)|0;H[g>>2]=H[g>>2]+1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+1;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+2;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0}H[b>>2]=H[b>>2]+c}c=a;b=H[H[a+156>>2]+(((f|0)==-1?-1:H[H[H[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=H[a+180>>2];a=H[a+176>>2];H[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Ac(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;f=H[b+4>>2];g=H[b>>2];e=f-g|0;c=(e|0)/20|0;a:{if((f|0)==(g|0)){break a}b:{if(c>>>0<214748365){f=pa(e);H[a+20>>2]=f;H[a+16>>2]=f;H[a+24>>2]=f+N(c,20);c=H[b>>2];g=H[b+4>>2];if((c|0)==(g|0)){break a}b=f;while(1){e=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=e;H[b+16>>2]=H[c+16>>2];e=H[c+12>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=e;b=b+20|0;c=c+20|0;if((g|0)!=(c|0)){continue}break}g=0;H[a+28>>2]=0;H[a+20>>2]=b;if((b|0)!=(f|0)){b=(b-f|0)/20|0;e=b>>>0<=1?1:b;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+N(b,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|1,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|2,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|3,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+N(b,20)|0;e=N(H[e+16>>2],H[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){H[a+12>>2]=0;return a}if((c|0)<0){break b}g=pa(c);b=ra(g,0,c);f=b+c|0;H[a+8>>2]=f;H[a+4>>2]=f;H[a>>2]=b}H[a+12>>2]=g;return a}sa();v()}sa();v()}H[a+28>>2]=0;H[a+12>>2]=0;return a}function Dh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=H[a+32>>2];f=H[b+8>>2];h=H[b+12>>2];g=H[b+20>>2];c=H[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=I[H[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;H[e+16>>2]=c;H[e+20>>2]=b;c:{if(!f){break c}while(1){if(ea[H[H[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=H[a+8>>2];b=H[a+12>>2];if((d|0)!=(b|0)){while(1){c=H[d>>2];if(!(ea[H[H[c>>2]+8>>2]](c,a,H[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=H[H[a+8>>2]+(d<<2)>>2];if(!(ea[H[H[b>>2]+12>>2]](b,H[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=H[j+H[a+8>>2]>>2];k=ea[H[H[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=H[H[a+8>>2]+j>>2];c=ea[H[H[c>>2]+20>>2]](c,d)|0;e=H[a+20>>2];g=H[a+24>>2]-e>>2;e:{if(c>>>0<g>>>0){break e}h=c+1|0;if(h>>>0>g>>>0){ya(i,h-g|0);e=H[i>>2];break e}if(g>>>0<=h>>>0){break e}H[a+24>>2]=(h<<2)+e}H[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!(ea[H[H[a>>2]+28>>2]](a)|0)){break b}e=ea[H[H[a>>2]+32>>2]](a)|0}return e|0}return 0}function ta(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ca-16|0;ca=i;f=H[b+20>>2];d=H[b+12>>2];c=H[b+16>>2];a:{if((f|0)>=(d|0)&c>>>0>=K[b+8>>2]|(d|0)<(f|0)){break a}F[a+12|0]=I[c+H[b>>2]|0];c=H[b+20>>2];g=c;f=H[b+16>>2];e=f+1|0;c=e?c:c+1|0;H[b+16>>2]=e;H[b+20>>2]=c;b:{if(J[b+38>>1]<=513){d=H[b+8>>2];c=H[b+12>>2];h=c;c=g;f=f+5|0;c=f>>>0<5?c+1|0:c;if(d>>>0<f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}e=e+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;break b}if(!Qe(1,i+12|0,b)){break a}f=H[b+16>>2];c=H[b+20>>2];d=H[b+8>>2];h=H[b+12>>2];e=H[i+12>>2]}g=d-f|0;d=h-(c+(d>>>0<f>>>0)|0)|0;if((d|0)<=0&e>>>0>g>>>0|(d|0)<0|(e|0)<=0){break a}j=H[b>>2]+f|0;H[a>>2]=j;c:{d:{h=e-1|0;g=h+j|0;d=I[g|0];e:{if(d>>>0<=63){H[a+4>>2]=h;g=I[g|0]&63;break e}f:{switch((d>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(e>>>0<2){break a}d=e-2|0;H[a+4>>2]=d;d=d+j|0;g=I[d+1|0]<<8&16128|I[d|0]}H[a+8>>2]=g+4096;break c}if(e>>>0<3){break a}d=e-3|0;H[a+4>>2]=d;g=a;a=d+j|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];H[g+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=e+f|0;c=a>>>0<e>>>0?c+1|0:c;H[b+16>>2]=a;H[b+20>>2]=c;k=1}ca=i+16|0;return k}function Wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Xd(a,b,c);c=H[a+84>>2];d=H[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=H[a+92>>2];c=H[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}H[a+88>>2]=c;break b}d:{b=c;c=H[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0<h>>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=va(j,c,i);H[a+88>>2]=f;H[a+84>>2]=b;H[a+92>>2]=b+(e<<2);if(c){oa(c)}break b}sa();v()}wa();v()}return}if(b>>>0>=d>>>0){break a}H[a+88>>2]=c+(b<<2)}}function qb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){H[d>>2]=H[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=pa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){H[d>>2]=H[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;H[f>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[a+8>>2]=(h<<2)+k;H[a+4>>2]=g;H[a>>2]=f;if(i){oa(i)}return}sa();v()}wa();v()}function Kc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a>>2];if(d-e>>2>>>0>=b>>>0){f=H[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){H[d>>2]=H[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){H[f>>2]=H[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}H[a+4>>2]=b;return}H[a+4>>2]=e+(b<<2);return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=pa(d);H[a>>2]=e;H[a+8>>2]=d+e;c=H[c>>2];d=e;g=b&7;if(g){while(1){H[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d+28>>2]=c;H[d+24>>2]=c;H[d+20>>2]=c;H[d+16>>2]=c;H[d+12>>2]=c;H[d+8>>2]=c;H[d+4>>2]=c;H[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}sa();v()}function Me(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=ca-16|0;ca=h;a:{b:{if(J[b+38>>1]<=511){e=H[b+8>>2];c=H[b+12>>2];i=c;f=H[b+20>>2];d=H[b+16>>2];g=d+8|0;f=g>>>0<8?f+1|0:f;if(e>>>0<g>>>0&(c|0)<=(f|0)|(c|0)<(f|0)){break a}d=d+H[b>>2]|0;c=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);H[b+16>>2]=g;H[b+20>>2]=f;break b}if(!gb(1,h+8|0,b)){break a}g=H[b+16>>2];f=H[b+20>>2];e=H[b+8>>2];i=H[b+12>>2];c=H[h+8>>2];d=H[h+12>>2]}j=e-g|0;e=i-(f+(e>>>0<g>>>0)|0)|0;if((e|0)==(d|0)&c>>>0>j>>>0|d>>>0>e>>>0){break a}e=d+f|0;f=c+g|0;e=f>>>0<g>>>0?e+1|0:e;H[b+16>>2]=f;H[b+20>>2]=e;if((c|0)<=0){break a}b=H[b>>2]+g|0;H[a+40>>2]=b;g=c-1|0;e=b+g|0;f=I[e|0];c:{if(f>>>0<=63){H[a+44>>2]=g;b=I[e|0]&63;break c}d:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8&16128|I[b|0];break c;case 1:if(c>>>0<3){break a}c=c-3|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break c;default:break d}}c=c-4|0;H[a+44>>2]=c;b=b+c|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[a+48>>2]=b+16384;k=b>>>0<4177920}ca=h+16|0;return k}function Ua(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=H[(H[H[a+8>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2];a:{h=H[H[a+12>>2]+4>>2];e=H[h+4>>2];if((e|0)!=H[h+8>>2]){H[e>>2]=j;H[h+4>>2]=e+4;break a}b:{i=H[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=pa(g<<2)}else{f=0}d=k+f|0;H[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=j;H[h>>2]=d;if(i){oa(i)}break a}sa();v()}wa();v()}c:{d:{h=H[a+4>>2];e=H[h+4>>2];e:{if((e|0)!=H[h+8>>2]){H[e>>2]=c;H[h+4>>2]=e+4;break e}i=H[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=pa(g<<2)}else{f=0}d=f+(j<<2)|0;H[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=c;H[h>>2]=d;if(!i){break e}oa(i)}a=H[a+4>>2];H[H[a+12>>2]+(b<<2)>>2]=H[a+24>>2];H[a+24>>2]=H[a+24>>2]+1;return}sa();v()}wa();v()}function Wb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=H[a+8>>2];i=H[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){F[f|0]=I[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=f;if((j|0)>0){break a}return}k=H[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=pa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=qa(g,c,h)+h|0}d=va(e,k,j);c=i-b|0;b=va(g,b,c);H[a+8>>2]=e+f;H[a+4>>2]=b+c;H[a>>2]=d;if(k){oa(k)}return}sa();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){F[e|0]=I[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}H[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;va(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){F[e|0]=I[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){F[e|0]=I[c|0];F[e+1|0]=I[c+1|0];F[e+2|0]=I[c+2|0];F[e+3|0]=I[c+3|0];F[e+4|0]=I[c+4|0];F[e+5|0]=I[c+5|0];F[e+6|0]=I[c+6|0];F[e+7|0]=I[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function qa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ba(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0<e>>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0<c>>>0){break c}while(1){H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[c+28>>2]=H[b+28>>2];H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){H[c>>2]=H[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0<a>>>0){c=a;break a}c=a;while(1){F[c|0]=I[b|0];F[c+1|0]=I[b+1|0];F[c+2|0]=I[b+2|0];F[c+3|0]=I[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0<e>>>0){while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function ub(a,b){var c=0,d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;c=a+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+48>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+68>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+88>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+104>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;c=1;break a}c=b<<2;e=pa(c);H[a+92>>2]=e;f=c+e|0;H[a+100>>2]=f;ra(e,0,c);H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+96>>2]=f;e=pa(c);H[a+104>>2]=e;f=c+e|0;H[a+112>>2]=f;ra(e,0,c);H[a+108>>2]=f;e=pa(c);H[d>>2]=e;f=c+e|0;H[d+8>>2]=f;ra(e,0,c);H[d+4>>2]=f;c=b<<5|1}tb(g,c,d);e=H[d>>2];if(e){H[d+4>>2]=e;oa(e)}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if(b){b=b<<2;e=pa(b);H[d>>2]=e;f=b+e|0;H[d+8>>2]=f;ra(e,0,b);H[d+4>>2]=f}tb(a+128|0,c,d);b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}ca=d+16|0;return a}function ze(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;H[a>>2]=11484;d=a+232|0;b=H[d+196>>2];if(b){H[d+200>>2]=b;oa(b)}c=H[d+184>>2];if(c){b=c;e=H[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=H[b>>2];if(f){H[e-8>>2]=f;oa(f)}e=b;if((b|0)!=(c|0)){continue}break}b=H[d+184>>2]}H[d+188>>2]=c;oa(b)}b=H[d+156>>2];if(b){H[d+160>>2]=b;oa(b)}c=H[d+136>>2];H[d+136>>2]=0;if(c){e=c-4|0;b=H[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}b=H[a+144>>2];if(b){while(1){c=H[b>>2];oa(b);b=c;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Pa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=pa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=va(k,i,j);H[a+4>>2]=e;H[a>>2]=b;H[a+8>>2]=b+(g<<2);if(i){oa(i)}return}sa();v()}wa();v()}function Cc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}if(d>>>0<b>>>0){h=ca-16|0;ca=h;b=b-d|0;if(b){g=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}i=d+b|0;if(g-d>>>0<b>>>0){a:{e=ca-16|0;ca=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(I[a+11|0]>>>7|0){f=H[a>>2]}else{f=a}if(g>>>0<1073741799){H[e+12>>2]=g<<1;H[e>>2]=c+g;c=ca-16|0;ca=c;ca=c+16|0;c=e+12|0;c=H[(K[e>>2]<K[c>>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(e,c);c=H[e>>2];if(d){yb(c,f,d)}if((g|0)!=10){oa(f)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;ca=e+16|0;break a}Na();v()}}f=d;if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=f+d|0;e=ca-16|0;ca=e;F[e+15|0]=0;while(1){if(b){F[f|0]=I[e+15|0];b=b-1|0;f=f+1|0;continue}break}ca=e+16|0;Id(a,i);F[h+15|0]=0;F[d+i|0]=I[h+15|0]}ca=h+16|0;return}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=ca-16|0;ca=f;Id(a,b);F[f+15|0]=0;F[b+d|0]=I[f+15|0];ca=f+16|0}function Jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;a:{b:{if(b){H[a+88>>2]=0;H[a+92>>2]=0;d=H[a+84>>2];H[a+84>>2]=0;if(d){oa(d)}H[a+76>>2]=0;H[a+80>>2]=0;d=H[a+72>>2];H[a+72>>2]=0;if(d){oa(d)}d=H[b>>2];c=H[b+4>>2];F[g+15|0]=0;Oa(a,c-d>>2,g+15|0);d=H[b+28>>2];c=H[b+24>>2];F[g+14|0]=0;Oa(a+12|0,d-c>>2,g+14|0);Kc(a+28|0,H[b+4>>2]-H[b>>2]>>2,13708);c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+52>>2];c:{if(f>>>0<=H[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=H[a+56>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+60>>2]=f;H[a+56>>2]=h;H[a+52>>2]=c;if(!e){break c}oa(e)}c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+40>>2];d:{if(f>>>0<=H[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=H[a+44>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+48>>2]=f;H[a+44>>2]=h;H[a+40>>2]=c;if(!e){break d}oa(e)}F[a+24|0]=1;H[a+64>>2]=b}ca=g+16|0;return}sa();v()}sa();v()}function wb(a,b){var c=0,d=0,e=0,f=0,g=0;c=ca-16|0;ca=c;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+72>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+92>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+104>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+108>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;e=1;break a}e=b<<2;d=pa(e);H[a+96>>2]=d;f=d+e|0;H[a+104>>2]=f;ra(d,0,e);H[a+116>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[a+100>>2]=f;d=pa(e);H[a+108>>2]=d;f=d+e|0;H[a+116>>2]=f;ra(d,0,e);H[a+112>>2]=f;d=pa(e);H[c>>2]=d;f=d+e|0;H[c+8>>2]=f;ra(d,0,e);H[c+4>>2]=f;e=b<<5|1}tb(g,e,c);d=H[c>>2];if(d){H[c+4>>2]=d;oa(d)}H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if(b){b=b<<2;d=pa(b);H[c>>2]=d;f=b+d|0;H[c+8>>2]=f;ra(d,0,b);H[c+4>>2]=f}tb(a+132|0,e,c);b=H[c>>2];if(b){H[c+4>>2]=b;oa(b)}ca=c+16|0;return a}function Sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);F[b+12|0]=c;a:{if(c){break a}while(1){d=H[b+8>>2];if(I[d+12|0]){break a}b:{c=H[d+8>>2];e=H[c>>2];if((e|0)==(d|0)){e=H[c+4>>2];if(!(!e|I[e+12|0])){break b}c:{if(H[d>>2]==(b|0)){b=d;break c}b=H[d+4>>2];a=H[b>>2];H[d+4>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b>>2]=d;H[d+8>>2]=b;c=H[b+8>>2];d=H[c>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;return}if(!(I[e+12|0]|!e)){break b}d:{if(H[d>>2]!=(b|0)){b=d;break d}a=H[b+4>>2];H[d>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b+4>>2]=d;H[d+8>>2]=b;c=H[b+8>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[c+4>>2];b=H[a>>2];H[c+4>>2]=b;if(b){H[b+8>>2]=c}H[a+8>>2]=H[c+8>>2];b=H[c+8>>2];H[((H[b>>2]!=(c|0))<<2)+b>>2]=a;H[a>>2]=c;H[c+8>>2]=a;break a}F[d+12|0]=1;F[c+12|0]=(a|0)==(c|0);F[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Tj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=Q(d)-Q(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}da=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Qj(d)|0;da=0;break a}if(!(c-1&c)){break f}h=(Q(c)+33|0)-Q(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}da=0;a=(b>>>0)/(d>>>0)|0;break a}e=Q(d)-Q(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Qj(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<<c)-1&b)<<32-c|a>>>c}da=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<<f)-1&b)<<32-f|a>>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<<f;a=0}else{b=(1<<f)-1&a>>>32-f|b<<f;a=a<<f}if(h){f=d-1|0;g=c-1|0;m=(g|0)!=-1?f+1|0:f;while(1){j=e<<1|i>>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0<k>>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}da=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}da=b}return a}function rc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;H[c+4>>2]=h;g=H[b+16>>2];f=h>>31;i=(f^h)-f|0;f=e>>31;l=g>>>0>=i+((f^e)-f|0)>>>0;a:{if(l){f=h;break a}b:{c:{if((e|0)>=0){f=1;i=1;if((h|0)>=0){break b}j=1;f=-1;i=-1;if(e){break c}break b}j=-1;f=-1;i=-1;if((h|0)<=0){break b}}f=(h|0)<=0?-1:1;i=j}j=N(g,i);e=(e<<1)-j|0;i=(N(f,i)|0)>=0;g=N(f,g);f=((i?0-e|0:e)+g|0)/2|0;H[c+4>>2]=f;m=c;c=(h<<1)-g|0;e=(j+(i?0-c|0:c)|0)/2|0;H[m>>2]=e;g=H[b+16>>2]}c=H[d+4>>2]+f|0;e=H[d>>2]+e|0;d:{if((g|0)<(e|0)){e=e-H[b+4>>2]|0;break d}if((0-g|0)<=(e|0)){break d}e=H[b+4>>2]+e|0}e:{if((c|0)>(g|0)){c=c-H[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=H[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((e|0)>=0){b=1;f=1;if((c|0)>=0){break g}d=1;b=-1;f=-1;if(e){break h}break g}d=-1;b=-1;f=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;f=d}d=N(f,g);h=(e<<1)-d|0;f=(N(b,f)|0)>=0;b=N(b,g);g=((f?0-h|0:h)+b|0)/2|0;b=(c<<1)-b|0;e=(d+(f?0-b|0:b)|0)/2|0}c=a;H[c>>2]=e+k;H[c+4>>2]=g+k}function Wh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=h;H[e>>2]=c;if(!d){break b}oa(d)}b=H[a+12>>2];c=H[b+28>>2];b=H[b+24>>2];H[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=H[d>>2];c=H[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Pa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}H[a+100>>2]=e+(b<<2)}e=a+8|0;b=H[a+116>>2];d:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){c=1;break d}b=0;while(1){c=ye(e,H[(b<<2)+d>>2]);if(!c){break d}f=H[a+116>>2];d=H[f>>2];b=b+1|0;if(b>>>0<H[f+4>>2]-d>>2>>>0){continue}break}break d}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=ye(e,N(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ca=g+16|0;return c|0}sa();v()}function gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=H[b+88>>2];if(!(!c|H[c>>2]!=1)){e=H[c+8>>2];H[a+4>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);f=a+8|0;d=I[b+24|0];h=H[a+8>>2];g=H[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){ya(f,d-g|0);d=I[b+24|0];e=H[c+8>>2];break a}if(d>>>0>=g>>>0){break a}H[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=H[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;H[g+f>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+(g|4)>>2]=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);H[f+(g|8)>>2]=I[c+8|0]|I[c+9|0]<<8|(I[c+10|0]<<16|I[c+11|0]<<24);H[f+(g|12)>>2]=I[c+12|0]|I[c+13|0]<<8|(I[c+14|0]<<16|I[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;H[f+(d<<2)>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;H[d+20>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);d=1}return d|0}function se(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=H[a+4>>2];b=H[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=H[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ra(f,0,g)+g|0,H[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0<e>>>0?e:c;e=pa(f);ra(e+d|0,0,g);d=va(e,b,d);H[a+8>>2]=d+f;H[a+4>>2]=c+d;H[a>>2]=d;if(!b){break c}oa(b);break c}if(c>>>0>=d>>>0){break c}H[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=H[a+4>>2];f=H[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=H[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ra(e,0,d)+d|0,H[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=pa(e);ra(h+g|0,0,d);d=va(h,f,g);H[a+8>>2]=d+e;H[a+4>>2]=c+d;H[a>>2]=d;if(!f){break d}oa(f);break d}if(c>>>0>=g>>>0){break d}H[a+4>>2]=c+f}if(!c){break c}va(H[a>>2],b,c)}b=H[a+28>>2];c=H[a+24>>2]+1|0;b=c?b:b+1|0;H[a+24>>2]=c;H[a+28>>2]=b;g=1;break a}sa();v()}return g}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;n=b+68|0;i=H[b+68>>2];e=H[b+72>>2]-i>>2;a:{if(e>>>0<d>>>0){qb(n,d-e|0,12372);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=e>>>0){break a}H[b+72>>2]=i+(d<<2)}b=H[c+100>>2];e=H[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=H[k+28>>2];f=H[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=H[c>>2];if(g>>>0>=d>>>0){break b}j=H[H[a+72>>2]+12>>2];h=H[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=H[n>>2];H[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=H[g+4>>2];if((h|0)==-1){break b}l=H[c+4>>2];if(l>>>0>=d>>>0){break b}h=H[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}H[f+(l<<2)>>2]=h;g=H[g+8>>2];if((g|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}j=H[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}H[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+N(b,12)|0;l=N(b,3);f=H[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function Gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=H[d+80>>2];e=ca-48|0;ca=e;a=H[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=H[H[d>>2]>>2]+H[d+48>>2]|0;H[e+16>>2]=a;a=-1<<a;H[e+20>>2]=a^-1;a=-2-a|0;H[e+24>>2]=a;H[e+32>>2]=(a|0)/2;L[e+28>>2]=O(2)/O(a|0);f=H[c>>2];if((f|0)!=H[c+4>>2]){a=0;d=0;while(1){g=H[(d<<2)+f>>2];h=e+36|0;k=H[H[b>>2]>>2];l=H[b+48>>2];f=H[b+40>>2];i=H[b+44>>2];if(!I[b+84|0]){g=H[H[b+68>>2]+(g<<2)>>2]}g=Rj(f,i,g,0);i=g;g=g+l|0;qa(h,g+k|0,f);he(e+16|0,h,e+12|0,e+8|0);f=a<<2;H[f+j>>2]=H[e+12>>2];H[(f|4)+j>>2]=H[e+8>>2];a=a+2|0;d=d+1|0;f=H[c>>2];if(d>>>0<H[c+4>>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=H[H[b>>2]>>2];i=H[b+48>>2];c=H[b+40>>2];f=Rj(c,H[b+44>>2],I[b+84|0]?a:H[H[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;qa(k,f+l|0,c);he(e+16|0,k,e+12|0,e+8|0);c=d<<2;H[c+j>>2]=H[e+12>>2];H[(c|4)+j>>2]=H[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ca=e+48|0;return m>>>0<29|0}function Re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ca-16|0;ca=k;if(H[c+28>>2]==9){d=H[a+4>>2];h=I[c+24|0];e=h<<2;f=pa(e);l=k+8|0;H[l>>2]=1065353216;i=L[a+20>>2];d=-1<<d^-1;if((d|0)>0){L[l>>2]=i/O(d|0)}o=(d|0)>0;a:{if(!o){break a}j=H[c+80>>2];if(!j){break a}if(h){p=H[H[b>>2]>>2]+H[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=H[a+8>>2];i=L[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;L[g+f>>2]=O(i*O(H[q>>2]))+L[g+m>>2];g=g|4;L[g+f>>2]=O(i*O(H[q+4>>2]))+L[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;L[d+f>>2]=O(i*O(H[(b<<2)+p>>2]))+L[d+m>>2];b=b+1|0}qa(H[H[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){qa(H[H[c+64>>2]>>2]+b|0,f,e);b=b+e|0;qa(b+H[H[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}qa(H[H[c+64>>2]>>2]+b|0,f,e)}oa(f)}ca=k+16|0;return o|0}function Xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+108>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){qb(m,e-f|0,12372);d=H[a+108>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+112>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Ph(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+68>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){qb(m,e-f|0,12372);d=H[a+68>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+72>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ca-16|0;ca=d;a:{f=H[a+4>>2];b:{if(f>>>0<b>>>0){e=b-f|0;c=H[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){H[a+4>>2]=b;h=f&31;b=H[a>>2]+(f>>>3&536870908)|0;break c}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0<c>>>0?c:b}else{b=2147483647}pb(d,b);f=H[a+4>>2];H[d+4>>2]=f+e;i=H[a>>2];b=H[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){va(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;H[b>>2]=H[b>>2]&(c^-1)|H[i+g>>2]&c}i=H[a>>2]}H[a>>2]=H[d>>2];H[d>>2]=i;c=H[a+4>>2];H[a+4>>2]=H[d+4>>2];H[d+4>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[d+8>>2];H[d+8>>2]=c;if(!i){break c}oa(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0<e>>>0?c:e;H[b>>2]=H[b>>2]&(-1<<h&-1>>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ra(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;H[a>>2]=H[a>>2]&(-1>>>32-(e&31)^-1);break b}H[a+4>>2]=b}ca=d+16|0;return}sa();v()}function Je(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=H[a+12>>2];i=H[a+8>>2];d=e-i>>2;b=I[b+24|0];a:{if(d>>>0<b>>>0){ya(a+8|0,b-d|0);i=H[a+8>>2];e=H[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;H[a+12>>2]=e}b=0;f=H[c+8>>2];h=H[c+12>>2];j=H[c+20>>2];e=e-i|0;d=H[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0<g>>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}qa(i,d+H[c>>2]|0,e);d=H[c+20>>2];g=e;e=e+H[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;f=H[c+8>>2];h=H[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0<g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+H[c>>2]|0;H[a+20>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[c+20>>2];g=d;f=d;e=H[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;h=H[c+12>>2];if((f|0)>=(h|0)&d>>>0>=K[c+8>>2]|(f|0)>(h|0)){break b}f=I[d+H[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;if(f-1>>>0>29){break b}H[a+4>>2]=f;b=1}return b|0}function qd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=H[a+4>>2];b:{if((f|0)!=H[a>>2]){c=f;break b}g=H[a+8>>2];c=H[a+12>>2];if(g>>>0<c>>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;va(c,f,d);f=H[a+8>>2]}H[a+4>>2]=c;H[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=pa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){H[e>>2]=H[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[e+12>>2]=H[d+12>>2];H[e+16>>2]=H[d+16>>2];H[e+20>>2]=H[d+20>>2];H[e+24>>2]=H[d+24>>2];H[e+28>>2]=H[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=h;H[a+4>>2]=c;H[a>>2]=i;if(!f){break b}oa(f);c=H[a+4>>2]}H[c-4>>2]=H[b>>2];H[a+4>>2]=H[a+4>>2]-4;return}wa();v()}function sb(a,b){var c=0;a:{if(!ta(a,b)){break a}if(!ta(a+16|0,b)){break a}if(!ta(a+32|0,b)){break a}if(!ta(a+48|0,b)){break a}if(!ta(a- -64|0,b)){break a}if(!ta(a+80|0,b)){break a}if(!ta(a+96|0,b)){break a}if(!ta(a+112|0,b)){break a}if(!ta(a+128|0,b)){break a}if(!ta(a+144|0,b)){break a}if(!ta(a+160|0,b)){break a}if(!ta(a+176|0,b)){break a}if(!ta(a+192|0,b)){break a}if(!ta(a+208|0,b)){break a}if(!ta(a+224|0,b)){break a}if(!ta(a+240|0,b)){break a}if(!ta(a+256|0,b)){break a}if(!ta(a+272|0,b)){break a}if(!ta(a+288|0,b)){break a}if(!ta(a+304|0,b)){break a}if(!ta(a+320|0,b)){break a}if(!ta(a+336|0,b)){break a}if(!ta(a+352|0,b)){break a}if(!ta(a+368|0,b)){break a}if(!ta(a+384|0,b)){break a}if(!ta(a+400|0,b)){break a}if(!ta(a+416|0,b)){break a}if(!ta(a+432|0,b)){break a}if(!ta(a+448|0,b)){break a}if(!ta(a+464|0,b)){break a}if(!ta(a+480|0,b)){break a}if(!ta(a+496|0,b)){break a}c=ta(a+512|0,b)}return c}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!ke(a,b)){break a}h=a+36|0;g=ea[H[H[a>>2]+24>>2]](a)|0;e=H[a+40>>2];d=H[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Vb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=H[e>>2];H[e>>2]=0;if(c){ea[H[H[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}H[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break c}f=I[H[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;d=ea[H[H[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+H[a+36>>2]|0;c=H[i>>2];H[i>>2]=d;if(c){ea[H[H[c>>2]+4>>2]](c)}c=H[H[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=ea[H[H[a>>2]+28>>2]](a)|0,m=ea[H[H[a>>2]+20>>2]](a,e)|0,j=H[H[c>>2]+8>>2],ea[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function he(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+L[b>>2];k=+L[b+4>>2];l=+L[b+8>>2];g=P(j)+P(k)+P(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=H[a+16>>2];l=+(h|0);g=T(j*l+.5);b:{if(P(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=T(k*l+.5);c:{if(P(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=H[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=H[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}H[c>>2]=a;H[d>>2]=b}function Ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;k=H[b+16>>2];d=k+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}l=H[b>>2];f=k+l|0;e=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;c=i;f=k+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}d=d+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((e|0)>(j|0)){break a}H[a+16>>2]=j;H[a+12>>2]=e;d=j-e|0;e=(j>>31)-((e>>31)+(e>>>0>j>>>0)|0)|0;if(!e&d>>>0>2147483646|e){break a}d=d+1|0;H[a+20>>2]=d;e=d>>>1|0;H[a+24>>2]=e;H[a+28>>2]=0-e;if(!(d&1)){H[a+24>>2]=e-1}if(J[b+38>>1]<=513){if((c|0)>=(h|0)&f>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[f+l|0];c=i;i=k+9|0;c=i>>>0<9?c+1|0:c;H[b+16>>2]=i;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+88>>2]=g}m=ta(a+112|0,b)}return m|0}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=H[a>>2];c=g+(b>>>3&536870908)|0;H[c>>2]=H[c>>2]|1<<b;f=H[a+64>>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=H[H[f>>2]+(c<<2)>>2]}c=H[a+12>>2];h=(d>>>3&536870908)+c|0;H[h>>2]=H[h>>2]|1<<d;b:{c:{if(!e){d:{e:{if((b>>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=H[H[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;H[e>>2]=H[e>>2]|1<<d;d=-1;b=H[H[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break b}F[a+24|0]=0;a=(b>>>3&536870908)+g|0;H[a>>2]=H[a>>2]|1<<b;a=b+1|0;a=(a>>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=H[H[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<<d;f:{g:{if((b>>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=H[H[f>>2]+(b<<2)>>2]}b=1<<a;a=c+(a>>>3&536870908)|0;c=H[a>>2];break c}a=c+536870908|0;b=H[c+536870908>>2];c=-2147483648}H[a>>2]=b|c}}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=O(0),f=O(0),g=O(0),h=O(0),i=O(0),j=0,k=O(0),l=O(0),m=O(0),n=O(0),o=0;a:{if(H[c+28>>2]!=9|I[c+24|0]!=3){break a}a=H[a+4>>2];if(a-2>>>0>28){break a}o=1;j=H[c+80>>2];if(!j){break a}k=O(O(2)/O((1<<a)-2|0));c=H[H[c>>2]>>2]+H[c+48>>2]|0;a=H[H[b>>2]>>2]+H[b+48>>2]|0;b=0;while(1){g=O(0);l=O(0);m=O(0);e=O(O(O(H[a>>2])*k)+O(-1));f=O(O(O(H[a+4>>2])*k)+O(-1));i=O(O(O(1)-O(P(e)))-O(P(f)));h=O(S(O(-i),O(0)));n=O(-h);f=O(f+(f<O(0)?h:n));e=O(e+(e<O(0)?h:n));h=O(O(f*f)+O(O(i*i)+O(e*e)));if(!(+h<1e-6)){g=O(O(1)/O(W(h)));m=O(f*g);l=O(e*g);g=O(i*g)}a=a+8|0;d=(w(m),y(2));F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;d=(w(l),y(2));F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;d=(w(g),y(2));F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=H[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=H[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;b=K[d+(b<<2)>>2]>K[d+(i<<2)>>2]?i:b;b=K[d+(b<<2)>>2]>K[d+(h<<2)>>2]?h:b;b=K[d+(b<<2)>>2]>K[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=H[a+580>>2];d=32-b|0;if((d|0)>=4){c=H[a+576>>2];if((c|0)==H[a+568>>2]){return 0}d=H[c>>2];e=b+4|0;H[a+580>>2]=e;b=d<<b>>>28|0;if((e|0)!=32){break a}H[a+580>>2]=0;H[a+576>>2]=c+4;return b}c=H[a+576>>2];e=c+4|0;if((e|0)==H[a+568>>2]){return 0}f=H[c>>2];H[a+576>>2]=e;H[a+580>>2]=b-28;a=60-b|0;b=H[c+4>>2]>>>a|f<<b>>>a-d}return b}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11436;b=H[a+388>>2];if(b){H[a+392>>2]=b;oa(b)}d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=ca-32|0;ca=a;e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[a+24>>2]=g|-2147483648;H[a+16>>2]=f;H[a+20>>2]=e;g=e+f|0;break c}F[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}qa(f,c,e)}F[g|0]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d:{c=nb(b,a+16|0);if((c|0)==(b+4|0)){break d}b=H[c+28>>2];e=H[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=H[a+4>>2];b=H[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){ya(a,e-g|0);b=H[a>>2];f=H[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;H[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=H[c+28>>2];qa(e,b,H[c+32>>2]-b|0);break d}Ca();v()}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=H[a>>2];H[d+4>>2]=H[a+4>>2];H[d+8>>2]=H[a+8>>2];if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}}function Be(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11384;d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Ug(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;c=I[d+11|0];e=c<<24>>24;b=H[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?H[d+4>>2]:a;f=c?H[d>>2]:d;while(1){c=I[b+27|0];g=c<<24>>24<0;c=g?H[b+20>>2]:c;i=c>>>0<a>>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?H[b+16>>2]:b+16|0;j=Fa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=Fa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=H[b>>2];if(b){continue}break}a=0}if((e|0)<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function fd(a,b){var c=0,d=0;c=H[b+8>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=c;H[a+20>>2]=H[b+20>>2];c=H[b+16>>2];H[a+12>>2]=H[b+12>>2];H[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=H[b+28>>2];if(c){d=H[a+24>>2];if(H[a+32>>2]<<5>>>0<c>>>0){if(d){oa(d);H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;c=H[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+32>>2]=c;H[a+28>>2]=0;H[a+24>>2]=d;c=H[b+28>>2]}va(d,H[b+24>>2],(c-1>>>3&536870908)+4|0);c=H[b+28>>2]}else{c=0}H[a+28>>2]=c;c=H[b+40>>2];if(c){d=H[a+36>>2];if(H[a+44>>2]<<5>>>0<c>>>0){if(d){oa(d);H[a+44>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;c=H[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+44>>2]=c;H[a+40>>2]=0;H[a+36>>2]=d;c=H[b+40>>2]}va(d,H[b+36>>2],(c-1>>>3&536870908)+4|0);b=H[b+40>>2]}else{b=0}H[a+40>>2]=b}return}sa();v()}sa();v()}function uc(a){var b=0,c=0,d=0;b=H[a+8>>2];d=H[a>>2];a:{if(I[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=H[H[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}H[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;H[a+8>>2]=b;if((b|0)!=-1){break b}}c=H[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=H[H[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}F[a+12|0]=0;H[a+8>>2]=b;return}if((b|0)!=H[a+4>>2]){break a}H[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=H[H[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}H[a+8>>2]=c}}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ca-32|0;ca=f;d=H[a+28>>2];H[f+16>>2]=d;g=H[a+20>>2];H[f+28>>2]=c;H[f+24>>2]=b;b=g-d|0;H[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=Z(H[a+60>>2],b|0,2,f+12|0)|0;if(d){H[3992]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=H[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=H[b+4>>2];j=h>>>0<e>>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;H[d>>2]=h+H[d>>2];b=(j?12:4)+b|0;H[b>>2]=H[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=Z(H[a+60>>2],b|0,i|0,f+12|0)|0;if(e){H[3992]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];a=c;break a}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=H[a>>2]|32;a=0;if((i|0)==2){break a}a=c-H[d+4>>2]|0}ca=f+32|0;return a|0}function Ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+56>>2]-H[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=we(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0<H[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=H[H[a+12>>2]+64>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=we(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=H[c+12>>2];f=h;e=H[c+20>>2];j=H[c+8>>2];g=H[c+16>>2];a:{if((f|0)<=(e|0)&j>>>0<=g>>>0|(e|0)>(f|0)){break a}k=H[c>>2];i=F[k+g|0];d=e;f=g+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;if((i-7&255)>>>0<247){break a}b:{if((i|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=j>>>0|(d|0)>(h|0)){break a}d=F[f+k|0];g=g+2|0;e=g>>>0<2?e+1|0:e;H[c+16>>2]=g;H[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ea[H[H[a>>2]+40>>2]](a,i,d)|0;d=H[a+20>>2];H[a+20>>2]=e;if(!d){break b}ea[H[H[d>>2]+4>>2]](d)}d=H[a+20>>2];if(d){if(!(ea[H[H[a>>2]+28>>2]](a,d)|0)){break a}}if(!(ea[H[H[a>>2]+36>>2]](a,b,c)|0)){break a}c=H[a+4>>2];if(!(!c|I[c+36|0]>1)){if(!(ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0)){break a}}l=1}return l|0}function Oh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=xe(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0<H[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=xe(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function Te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;e=H[b+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}j=H[b>>2];f=e+j|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;k=J[b+38>>1];if(k>>>0<=513){c=i;d=e+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(f&1)){break a}e=Q(f)^31;if(e-1>>>0>28){break a}H[a+8>>2]=e+1;i=-2<<e;e=i^-2;H[a+16>>2]=e;H[a+12>>2]=i^-1;H[a+24>>2]=e>>1;L[a+20>>2]=O(2)/O(e|0);if(k>>>0<=513){if((c|0)>=(h|0)&d>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[d+j|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+72>>2]=g}l=ta(a+96|0,b)}return l|0}function Se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[b+8>>2];g=H[b+12>>2];c=H[b+20>>2];h=c;i=H[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;a:{if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}j=H[b>>2];d=i+j|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=h;e=i+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=e;H[b+20>>2]=c;if(!(d&1)){break a}d=Q(d)^31;if(d-1>>>0>28){break a}H[a+8>>2]=d+1;k=-2<<d;d=k^-2;H[a+16>>2]=d;H[a+12>>2]=k^-1;H[a+24>>2]=d>>1;L[a+20>>2]=O(2)/O(d|0);if(J[b+38>>1]<=513){if((c|0)>=(g|0)&e>>>0>=f>>>0|(c|0)>(g|0)){break a}c=I[e+j|0];f=i+9|0;h=f>>>0<9?h+1|0:h;H[b+16>>2]=f;H[b+20>>2]=h;if(c>>>0>1){break a}H[a+72>>2]=c}l=ta(a+96|0,b)}return l|0}\nfunction va(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return qa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0<b>>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}F[d|0]=I[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;F[d|0]=I[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;H[c+a>>2]=H[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;F[c+a|0]=I[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){H[d>>2]=H[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Vb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=H[a+8>>2];c=H[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{b:{c:{g=H[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=pa(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ra(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=b;if((c|0)!=(g|0)){continue}break}H[a+8>>2]=e;b=H[a+4>>2];H[a+4>>2]=f;c=H[a>>2];H[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=H[b>>2];H[b>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}sa();v()}wa();v()}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b}if(c){oa(c)}}function Md(a,b,c){a:{switch(b-9|0){case 0:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];return;case 6:b=H[c>>2];H[c>>2]=b+4;b=G[b>>1];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 7:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=J[b>>1];H[a+4>>2]=0;return;case 8:b=H[c>>2];H[c>>2]=b+4;b=F[b|0];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 9:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=I[b|0];H[a+4>>2]=0;return;case 16:b=H[c>>2]+7&-8;H[c>>2]=b+8;M[a>>3]=M[b>>3];return;case 17:v();default:return;case 1:case 4:case 14:b=H[c>>2];H[c>>2]=b+4;b=H[b>>2];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];H[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=H[c>>2]+7&-8;H[c>>2]=b+8;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c}function Ed(a,b){var c=0,d=0,e=0;c=ca+-64|0;ca=c;d=H[a>>2];e=H[d-4>>2];d=H[d-8>>2];H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;F[c+55|0]=0;F[c+56|0]=0;F[c+57|0]=0;F[c+58|0]=0;F[c+59|0]=0;F[c+60|0]=0;F[c+61|0]=0;F[c+62|0]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+20>>2]=0;H[c+16>>2]=14924;H[c+12>>2]=a;H[c+8>>2]=b;a=a+d|0;d=0;a:{if(Ya(e,b,0)){H[c+56>>2]=1;ea[H[H[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=H[c+32>>2]==1?a:0;break a}ea[H[H[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(H[c+44>>2]){case 0:d=H[c+48>>2]==1?H[c+36>>2]==1?H[c+40>>2]==1?H[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(H[c+32>>2]!=1){if(H[c+48>>2]|H[c+36>>2]!=1|H[c+40>>2]!=1){break a}}d=H[c+24>>2]}ca=c- -64|0;return d}function ua(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;e=H[a>>2];H[a+4>>2]=e;H[a+12>>2]=e;e=H[b+8>>2];c=H[b+12>>2];h=c;d=H[b+20>>2];f=H[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(e>>>0<g>>>0&(d|0)>=(c|0)|(d|0)>(c|0)){break a}c=f+H[b>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=d;if(!c|c&3){break a}f=h-(d+(e>>>0<g>>>0)|0)|0;if(e-g>>>0<c>>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){ya(a,c>>>2|0);h=H[b+12>>2];g=H[b+16>>2];d=H[b+20>>2];e=H[b+8>>2]}f=c+g|0;d=f>>>0<c>>>0?d+1|0:d;if(e>>>0<f>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}qa(H[a>>2],H[b>>2]+g|0,c);d=H[b+20>>2];e=c+H[b+16>>2]|0;d=e>>>0<c>>>0?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;H[a+16>>2]=0;H[a+12>>2]=H[a>>2];i=1}return i}function de(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=H[H[H[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(b-N(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=H[H[a>>2]+96>>2];a=(b>>>0)/3|0;f=H[(c+N(a,12)|0)+(b-N(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=pa(72);H[c+4>>2]=0;H[c+8>>2]=0;H[c>>2]=1984;H[c+12>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c>>2]=2128;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=H[a+12>>2];e=H[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){Vb(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[g>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=h;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}F[a|0]=b;d=a+c|0;F[d-1|0]=b;if(c>>>0<3){break a}F[a+2|0]=b;F[a+1|0]=b;F[d-3|0]=b;F[d-2|0]=b;if(c>>>0<7){break a}F[a+3|0]=b;F[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=N(b&255,16843009);H[e>>2]=b;d=c-d&-4;c=d+e|0;H[c-4>>2]=b;if(d>>>0<9){break a}H[e+8>>2]=b;H[e+4>>2]=b;H[c-8>>2]=b;H[c-12>>2]=b;if(d>>>0<25){break a}H[e+24>>2]=b;H[e+20>>2]=b;H[e+16>>2]=b;H[e+12>>2]=b;H[c-16>>2]=b;H[c-20>>2]=b;H[c-24>>2]=b;H[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Rj(b,0,1,1);f=da;b=e+g|0;while(1){H[b+24>>2]=d;H[b+28>>2]=f;H[b+16>>2]=d;H[b+20>>2]=f;H[b+8>>2]=d;H[b+12>>2]=f;H[b>>2]=d;H[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];k=e;h=H[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=H[b>>2];c=j+h|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0<e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;if((c|0)<(f|0)){break a}H[a+16>>2]=c;H[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0<f>>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;H[a+20>>2]=d;b=d>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(d&1){break a}H[a+24>>2]=b-1}return l|0}function sd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=H[e>>2];a:{if(!d){break a}f=H[b>>2];b=e;while(1){g=(f|0)>H[d+16>>2];b=g?b:d;d=H[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)<H[b+16>>2]){break a}d=H[b+24>>2];if(!d){break a}f=b+20|0;b=I[c+11|0];e=b<<24>>24<0;g=e?H[c>>2]:c;b=e?H[c+4>>2]:b;while(1){e=I[d+27|0];h=e<<24>>24<0;e=h?H[d+20>>2]:e;j=e>>>0<b>>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?H[d+16>>2]:d+16|0;k=Fa(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Fa(h,g,i);if(e){break d}}if(j){break c}return Tc(f,c)}if((e|0)<0){break c}return Tc(f,c)}d=d+4|0}d=H[d>>2];if(d){continue}break}}return Tc(a,c)}function be(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ca-16|0;ca=d;f=H[a+24>>2];k=H[a+28>>2];a:{if((f|0)!=(k|0)){while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;a=$d(H[f>>2],b,d);g=I[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=I[c+11|0];e=a<<24>>24;j=(h|0)<0?H[d+4>>2]:g;if((j|0)!=(((e|0)<0?H[c+4>>2]:a)|0)){break d}a=(e|0)<0?H[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(I[e|0]!=I[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(Fa(e?H[d>>2]:d,a,j)){break c}}l=H[f>>2];i=1}if((h|0)>=0){break b}}oa(H[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}ca=d+16|0;return l}function Cb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=H[a+8>>2];e=H[a>>2];if(h>>>0<=d-e>>2>>>0){d=H[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0<h>>>0?f:c;if((g|0)!=(b|0)){while(1){H[e>>2]=H[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){H[d>>2]=H[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}H[a+4>>2]=d;return}H[a+4>>2]=e;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Oa(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;H[a+4>>2]=0;a:{b:{if(!b){break b}f=H[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){H[a+4>>2]=b;break c}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0<f>>>0?f:d}else{d=2147483647}pb(e,d);f=H[a>>2];H[a>>2]=H[e>>2];H[e>>2]=f;d=H[a+4>>2];H[a+4>>2]=b;H[e+4>>2]=d;d=H[a+8>>2];H[a+8>>2]=H[e+8>>2];H[e+8>>2]=d;if(!f){break c}oa(f)}d=b>>>5|0;a=H[a>>2];if(I[c|0]){if(b>>>0>=32){ra(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ra(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}ca=e+16|0;return}sa();v()}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca-32|0;ca=e;a:{b:{f=Ma(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=pa(a);H[e+24>>2]=a|-2147483648;H[e+16>>2]=g;H[e+20>>2]=f;a=f+g|0;break d}F[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}qa(g,c,f)}F[a|0]=0;c=Ma(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=pa(f);H[e+8>>2]=f|-2147483648;H[e>>2]=a;H[e+4>>2]=c;g=a+c|0;break f}F[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}qa(a,d,c)}F[g|0]=0;c=H[b+4>>2];a=-1;g:{if(!c){break g}c=be(c,e+16|0,e);a=-1;if(!c){break g}a=Yd(b,H[c+24>>2])}if(F[e+11|0]<0){oa(H[e>>2])}if(F[e+27|0]<0){oa(H[e+16>>2])}ca=e+32|0;break a}Na();v()}Na();v()}return a|0}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=H[b>>2];h=H[b+8>>2];i=H[b+4>>2];j=H[b>>2];d=H[a>>2];b=H[d+4>>2];a=H[d+8>>2];if(b>>>0<a>>>0){H[b+8>>2]=h;H[b+4>>2]=i;H[b>>2]=j;H[d+4>>2]=b+12;return}a:{e=H[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0>=178956970?357913941:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=357913942){break a}f=pa(N(c,12))}else{f=0}a=f+N(g,12)|0;H[a+8>>2]=h;H[a+4>>2]=i;H[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2];if((b|0)!=(e|0)){continue}break}}H[d+8>>2]=f+N(c,12);H[d+4>>2]=g;H[d>>2]=a;if(e){oa(e)}return}sa();v()}wa();v()}function lf(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=pa(20);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;return a|0;case 1:a=pa(24);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;return a|0;case 2:a=pa(48);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1832;H[a>>2]=11048;H[a+32>>2]=0;H[a+36>>2]=0;H[a+28>>2]=-1;H[a+40>>2]=0;H[a+44>>2]=0;return a|0;case 3:a=pa(32);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1032;H[a>>2]=7028;H[a+28>>2]=-1;break;default:break a}}return a|0}function tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=H[b>>2];b=H[b+4>>2];d=H[H[a+8>>2]+40>>2];j=d;m=pa((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=H[c+16>>2];k=d;f=g+d|0;d=0+H[c+20>>2]|0;d=f>>>0<k>>>0?d+1|0:d;h=H[c+12>>2];e=0;if(K[c+8>>2]<f>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=qa(m,H[c>>2]+g|0,j);H[c+16>>2]=f;H[c+20>>2]=d;qa(H[H[H[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+H[c+20>>2]|0;g=H[c+16>>2];f=k+g|0;d=f>>>0<k>>>0?d+1|0:d;h=H[c+12>>2];if((d|0)<=(h|0)&K[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}oa(m);return e|0}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;H[b>>2]=1;f=b+8|0;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(f,d+4|0);c=H[f>>2]}c=c+d|0;d=H[a+4>>2];F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+8>>2];if((c|0)!=H[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=H[b+8>>2];e=H[b+12>>2]-c|0;if(e>>>0<=4294967291){kc(f,e+4|0);c=H[f>>2]}c=c+e|0;e=H[g>>2];F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;d=d+1|0;c=H[a+8>>2];if(d>>>0<H[a+12>>2]-c>>2>>>0){continue}break}}c=H[b+12>>2];b=H[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){kc(f,c+4|0);b=H[f>>2]}b=b+c|0;a=H[a+20>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function Aa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){f=H[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0<g>>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){va(e,b,i)}if(g>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=e+i;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=H[a+4>>2];if((c|0)!=H[a+8>>2]){e=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=e;H[c+8>>2]=H[b+8>>2];H[a+4>>2]=c+12;return}a:{g=H[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0<f>>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=pa(N(f,12))}else{e=0}d=e+N(d,12)|0;h=H[b+4>>2];H[d>>2]=H[b>>2];H[d+4>>2]=h;H[d+8>>2]=H[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=H[c+4>>2];d=d-12|0;H[d>>2]=H[c>>2];H[d+4>>2]=h;H[d+8>>2]=H[c+8>>2];if((c|0)!=(g|0)){continue}break}c=H[a>>2]}H[a+8>>2]=e+N(f,12);H[a+4>>2]=b;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Qi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;g=e>>>0>1073741823?-1:e<<2;l=ra(pa(g),0,g);g=l;i=H[g>>2];g=H[g+4>>2];k=H[b+4>>2];H[f+24>>2]=H[b>>2];H[f+28>>2]=k;H[f+8>>2]=i;H[f+12>>2]=g;i=a+8|0;rc(f+16|0,i,f+8|0,f+24|0);H[c>>2]=H[f+16>>2];H[c+4>>2]=H[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=H[j>>2];j=H[j+4>>2];h=b+h|0;n=H[h+4>>2];H[f+24>>2]=H[h>>2];H[f+28>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;rc(f+16|0,i,f+8|0,f+24|0);H[g>>2]=H[f+16>>2];H[g+4>>2]=H[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(l);ca=f+32|0;return 1}function Hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;h=e>>>0>1073741823?-1:e<<2;h=ra(pa(h),0,h);g=H[b>>2];i=H[b+4>>2];k=H[h+4>>2];H[f+16>>2]=H[h>>2];H[f+20>>2]=k;H[f+8>>2]=g;H[f+12>>2]=i;i=a+8|0;qc(f+24|0,i,f+16|0,f+8|0);H[c>>2]=H[f+24>>2];H[c+4>>2]=H[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=H[j>>2];j=H[j+4>>2];g=c+g|0;l=g+k|0;n=H[l+4>>2];H[f+16>>2]=H[l>>2];H[f+20>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;qc(f+24|0,i,f+16|0,f+8|0);H[g>>2]=H[f+24>>2];H[g+4>>2]=H[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(h);ca=f+32|0;return 1}function Ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[b+80>>2]>65535){break a}a=H[b+100>>2];b=H[b+96>>2];e=(a-b|0)/12|0;f=N(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=N(a,6);h=f+d|0;e=b+N(a,12)|0;G[h>>1]=H[e>>2];G[(f|2)+d>>1]=H[e+4>>2];G[h+4>>1]=H[e+8>>2];f=a|1;e=N(f,6)+d|0;f=b+N(f,12)|0;G[e>>1]=H[f>>2];G[e+2>>1]=H[f+4>>2];G[e+4>>1]=H[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=N(a,6)+d|0;a=b+N(a,12)|0;G[c>>1]=H[a>>2];G[c+2>>1]=H[a+4>>2];G[c+4>>1]=H[a+8>>2]}return g|0}function Gd(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=ca-16|0;ca=h;if((b^-1)+2147483631>>>0>=c>>>0){if(I[a+11|0]>>>7|0){i=H[a>>2]}else{i=a}if(b>>>0<1073741799){H[h+12>>2]=b<<1;H[h>>2]=b+c;c=ca-16|0;ca=c;ca=c+16|0;c=h+12|0;c=H[(K[h>>2]<K[c>>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(h,c);c=H[h>>2];if(f){yb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){yb(c+f|0,e+i|0,g)}if((b|0)!=10){oa(i)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[h+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;b=a;a=f+g|0;H[b+4>>2]=a;F[h+12|0]=0;F[a+c|0]=I[h+12|0];ca=h+16|0;return}Na();v()}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=ca-32|0;ca=a;H[a+24>>2]=0;H[a+28>>2]=0;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+16>>2]=e|-2147483648;H[a+8>>2]=f;H[a+12>>2]=d;e=d+f|0;break c}F[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;c=b+4|0;b=nb(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=H[b+32>>2];b=H[b+28>>2];if((c-b|0)!=8){break d}c=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[a+24>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[a+28>>2]=c}g=M[a+24>>3];if(F[a+19|0]<0){oa(H[a+8>>2])}ca=a+32|0;break a}Na();v()}return+g}function uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((ea[H[H[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Zd(H[H[a+4>>2]+4>>2],ea[H[H[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=H[a+4>>2];b:{if(I[e+36|0]<=1){if(ea[H[H[b>>2]+28>>2]](b,H[H[H[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=H[e+4>>2];if(H[h+12>>2]-H[h+8>>2]>>2<=(c|0)){break c}d=H[H[e+8>>2]+(H[H[e+20>>2]+(c<<2)>>2]<<2)>>2];d=ea[H[H[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(ea[H[H[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((ea[H[H[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function tb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=N(b,12);d=pa(b);H[a+4>>2]=d;H[a>>2]=d;e=b+d|0;H[a+8>>2]=e;f=H[c+4>>2];g=H[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;ra(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;b=pa(h);H[d>>2]=b;H[d+8>>2]=b+i;c=g;while(1){H[b>>2]=H[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}H[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e}return}sa();v()}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;sa();v()}function Vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0<f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;if(J[b+38>>1]<=513){f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<<b;c=b^-2;H[a+16>>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function Lc(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=N(b,3);Kc(a,b,13648);Kc(a+12|0,b,13652);d=H[a+24>>2];c:{if(H[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=H[a+28>>2];e=c<<2;c=pa(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+32>>2]=e;H[a+28>>2]=g;H[a+24>>2]=c;if(!d){break c}oa(d)}H[a+80>>2]=0;H[a+84>>2]=0;b=H[a+76>>2];H[a+76>>2]=0;if(b){oa(b)}H[a+68>>2]=0;H[a+72>>2]=0;b=a- -64|0;a=H[b>>2];H[b>>2]=0;if(!a){break b}oa(a)}return f}sa();v()}function Fe(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=H[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=pa(c>>>0>268435455?-1:b|4);H[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){H[b>>2]=0;H[b+4>>2]=0;F[b+5|0]=0;F[b+6|0]=0;F[b+7|0]=0;F[b+8|0]=0;F[b+9|0]=0;F[b+10|0]=0;F[b+11|0]=0;F[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=H[a+136>>2];H[a+136>>2]=d;if(e){c=e-4|0;d=H[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}oa(c)}b=0;if(H[a+140>>2]<=0){break a}while(1){f=ta(H[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)<H[a+140>>2]){continue}break}}return f}function mb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(H[a+64>>2]){break a}c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(!d){break a}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d)}d=H[a+64>>2];c=H[a+28>>2]-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}c=N(c,I[a+24|0]);f=c>>31;g=se(d,0,Rj(c,f,b,0),da);if(g){d=H[a+64>>2];H[a>>2]=d;e=H[d+20>>2];H[a+8>>2]=H[d+16>>2];H[a+12>>2]=e;e=H[d+24>>2];d=H[d+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=c;H[a+44>>2]=f;H[a+16>>2]=e;H[a+20>>2]=d;H[a+80>>2]=b}return g}function jc(a,b){var c=0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;c=H[b+60>>2];H[a+56>>2]=H[b+56>>2];H[a+60>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+36>>2];H[a+32>>2]=H[b+32>>2];H[a+36>>2]=c;c=H[b+28>>2];H[a+24>>2]=H[b+24>>2];H[a+28>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;H[a+88>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=H[b+100>>2];b=H[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=N(a,12);i=e+d|0;f=b+e|0;H[i>>2]=H[f>>2];H[(e|4)+d>>2]=H[f+4>>2];H[i+8>>2]=H[f+8>>2];f=N(a|1,12);e=f+d|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=N(a,12);a=e+d|0;b=b+d|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}return(c|0)==(h|0)|0}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0<f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c;if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<<b;c=b^-2;H[a+16>>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function nb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=H[a+4>>2];a:{b:{if(!a){break b}d=I[b+11|0];c=d<<24>>24<0;g=c?H[b>>2]:b;d=c?H[b+4>>2]:d;b=f;while(1){e=I[a+27|0];c=e<<24>>24<0;e=c?H[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Fa(c?H[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=H[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=I[b+27|0];a=c<<24>>24<0;d:{c=a?H[b+20>>2]:c;e=c>>>0<d>>>0?c:d;if(e){a=Fa(g,a?H[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(Ya(a,H[b>>2],e)){if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+32>>2]=d;b:{if(H[b+44>>2]==4){break b}G[b+52>>1]=0;a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,c,1,e);if(I[b+53|0]){H[b+44>>2]=3;if(!I[b+52|0]){break b}break a}H[b+44>>2]=4}H[b+20>>2]=c;H[b+40>>2]=H[b+40>>2]+1;if(H[b+36>>2]!=1|H[b+24>>2]!=2){break a}F[b+54|0]=1;return}a=H[a+8>>2];ea[H[H[a>>2]+24>>2]](a,b,c,d,e)}}function Db(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(J[a+38>>1]<=513){f=H[a+12>>2];d=H[a+20>>2];b=H[a+16>>2];g=b+8|0;d=g>>>0<8?d+1|0:d;e=0;if(K[a+8>>2]<g>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}b=b+H[a>>2]|0;d=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[c>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[c+4>>2]=d;b=H[a+20>>2];c=H[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;H[a+16>>2]=c;H[a+20>>2]=b;break b}e=0;if(!re(1,c,a)){break a}}F[a+36|0]=1;H[a+32>>2]=0;b=H[a+16>>2];c=b+H[a>>2]|0;H[a+24>>2]=c;H[a+28>>2]=(H[a+8>>2]-b|0)+c;e=1}return e}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=pa(64);c=pa(12);H[c+8>>2]=H[H[a+4>>2]+80>>2];H[c>>2]=13216;H[c+4>>2]=0;f=od(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=H[a+12>>2];e=H[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Vb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[h>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=f;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Qd(a,b){var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=b;c=ca-208|0;ca=c;H[c+204>>2]=b;b=c+160|0;ra(b,0,40);H[c+200>>2]=H[c+204>>2];a:{if((Od(0,a,c+200|0,c+80|0,b)|0)<0){break a}f=H[3941]>=0;b=H[3922];if(H[3940]<=0){H[3922]=b&-33}b:{c:{d:{if(!H[3934]){H[3934]=80;H[3929]=0;H[3926]=0;H[3927]=0;e=H[3933];H[3933]=c;break d}if(H[3926]){break c}}if(Sd(15688)){break b}}Od(15688,a,c+200|0,c+80|0,c+160|0)}if(e){ea[H[3931]](15688,0,0)|0;H[3934]=0;H[3933]=e;H[3929]=0;H[3926]=0;H[3927]=0}H[3922]=H[3922]|b&32;if(!f){break a}}ca=c+208|0;ca=d+16|0}function pf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=H[a+60>>2];a:{if(!c){break a}H[c+4>>2]=a+48;if(!(ea[H[H[c>>2]+12>>2]](c)|0)){break a}b:{c=ea[H[H[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2];g=ea[H[H[a>>2]+20>>2]](a,d)|0;e=H[a+60>>2];if(!(ea[H[H[e>>2]+8>>2]](e,H[H[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}d=ea[H[H[a>>2]+44>>2]](a)|0}return d|0}function id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=H[a+216>>2]+N(e,144)|0;return(I[a+100|0]?a+4|0:0)|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function xb(a){var b=0,c=0,d=0,e=0;c=H[a+132>>2];if(c){d=c;b=H[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+132>>2]}H[a+136>>2]=c;oa(d)}c=H[a+120>>2];if(c){d=c;b=H[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+120>>2]}H[a+124>>2]=c;oa(d)}b=H[a+108>>2];if(b){H[a+112>>2]=b;oa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}Za(a+76|0);Za(a+56|0);Za(a+36|0);Za(a+16|0)}function rd(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2128;d=H[a+60>>2];if(d){b=d;c=H[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ga(b)}if((c|0)!=(d|0)){continue}break}b=H[a+60>>2]}H[a+64>>2]=d;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){b=d;c=H[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ea[H[H[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function ue(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+8>>2];d=H[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ra(d,0,b)+b|0}H[a+4>>2]=d;return}a:{f=H[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ra(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(f|0)){continue}break}}H[a+8>>2]=(e<<2)+i;H[a+4>>2]=b;H[a>>2]=c;if(f){oa(f)}return}sa();v()}wa();v()}function rb(a){var b=0,c=0,d=0,e=0,f=0;d=H[a+8>>2];a:{if(I[d+84|0]){break a}b=H[a+16>>2];if(!b|!I[b+84|0]){break a}c=H[d+72>>2];e=H[d+68>>2];F[b+84|0]=0;c=c-e>>2;f=H[b+68>>2];e=H[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){qb(b+68|0,c-e|0,2316);d=H[a+8>>2];break b}if(c>>>0>=e>>>0){break b}H[b+72>>2]=f+(c<<2)}if(I[d+84|0]){break a}c=H[d+68>>2];if((c|0)==H[d+72>>2]){break a}e=H[H[a+16>>2]+68>>2];b=0;while(1){f=b<<2;H[f+e>>2]=H[c+f>>2];b=b+1|0;c=H[d+68>>2];if(b>>>0<H[d+72>>2]-c>>2>>>0){continue}break}}return H[a+16>>2]}function Lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Pe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Oe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=ca-32|0;ca=a;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+24>>2]=e|-2147483648;H[a+16>>2]=f;H[a+20>>2]=d;e=d+f|0;break c}F[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;F[a+4|0]=0;H[a>>2]=1701667182;F[a+11|0]=4;d=H[b+4>>2];c=-1;d:{if(!d){break d}d=be(d,a,a+16|0);c=-1;if(!d){break d}c=Yd(b,H[d+24>>2])}b=c;if(F[a+11|0]<0){oa(H[a>>2])}if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}return b|0}function hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(H[a+216>>2]+N(e,144)|0)+104|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function ab(a){var b=0,c=0,d=0,e=0;c=H[a+640>>2];if(c){d=c;b=H[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+640>>2]}H[a+644>>2]=c;oa(d)}c=H[a+628>>2];if(c){d=c;b=H[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+628>>2]}H[a+632>>2]=c;oa(d)}b=H[a+616>>2];if(b){H[a+620>>2]=b;oa(b)}b=H[a+604>>2];if(b){H[a+608>>2]=b;oa(b)}Za(a+584|0);Za(a+564|0);Za(a+544|0)}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=0;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;a=nb(b,d);d:{if((a|0)==(b+4|0)){break d}b=H[a+32>>2];a=H[a+28>>2];if((b-a|0)!=4){break d}H[d+12>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24)}a=H[d+12>>2];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function vb(a){var b=0,c=0,d=0,e=0;c=H[a+128>>2];if(c){d=c;b=H[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+128>>2]}H[a+132>>2]=c;oa(d)}c=H[a+116>>2];if(c){d=c;b=H[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+116>>2]}H[a+120>>2]=c;oa(d)}b=H[a+104>>2];if(b){H[a+108>>2]=b;oa(b)}b=H[a+92>>2];if(b){H[a+96>>2]=b;oa(b)}Za(a+72|0);Za(a+52|0);Za(a+32|0)}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];e=H[a>>2];d=c-e|0;b:{if(d>>>0<b>>>0){g=b-d|0;f=H[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ra(c,0,g)+g|0,H[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<f>>>0?f:b;f=pa(c);ra(f+d|0,0,g);d=va(f,e,d);H[a+8>>2]=d+c;H[a+4>>2]=b+d;H[a>>2]=d;if(!e){break b}oa(e);break b}if(b>>>0>=d>>>0){break b}H[a+4>>2]=b+e}b=H[a+28>>2];c=b;d=b+1|0;b=H[a+24>>2]+1|0;e=b?c:d;H[a+24>>2]=b;H[a+28>>2]=e;return}sa();v()}function Ka(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+4>>2];if((e|0)!=H[a+8>>2]){H[e>>2]=H[b>>2];H[a+4>>2]=e+4;return}a:{g=H[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=pa(c<<2)}else{f=0}d=h+f|0;H[d>>2]=H[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(g|0)){continue}break}}H[a+8>>2]=f+(c<<2);H[a+4>>2]=b;H[a>>2]=d;if(g){oa(g)}return}sa();v()}wa();v()}function Ia(a){H[a>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;F[a+28|0]=1;H[a+20>>2]=0;H[a+24>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+72>>2]=a+4;H[a+104>>2]=0;H[a+108>>2]=0;F[a+100|0]=1;H[a+112>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0}function Ld(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!H[H[4292]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){F[a+1|0]=b&63|128;F[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){F[a+2|0]=b&63|128;F[a|0]=b>>>12|224;F[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){F[a+3|0]=b&63|128;F[a|0]=b>>>18|240;F[a+2|0]=b>>>6&63|128;F[a+1|0]=b>>>12&63|128;a=4;break a}}H[3992]=25;a=-1}else{a=1}break a}F[a|0]=b;a=1}return a}function Hb(a,b){var c=0,d=0,e=0,f=0;d=H[a+12>>2];c=H[a+16>>2]-d>>2;a:{if(c>>>0<b>>>0){ya(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}H[a+16>>2]=d+(b<<2)}b:{c=H[a>>2];c:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=H[a+4>>2];e=b<<2;b=pa(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;H[b>>2]=H[d>>2];if((c|0)!=(d|0)){continue}break}}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b;if(!c){break c}oa(c)}return}sa();v()}function _b(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13724;b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}b=H[a+44>>2];if(b){H[a+48>>2]=b;oa(b)}b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}b=H[a+8>>2];if(b){d=b;c=H[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Ga(d)}if((b|0)!=(c|0)){continue}break}d=H[a+8>>2]}H[a+12>>2]=b;oa(d)}b=H[a+4>>2];H[a+4>>2]=0;if(b){Uc(b)}return a|0}function yb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ca-16|0;ca=f;d=ca-32|0;ca=d;e=ca-16|0;ca=e;H[e+12>>2]=b;H[e+8>>2]=b+c;H[d+24>>2]=H[e+12>>2];H[d+28>>2]=H[e+8>>2];ca=e+16|0;c=ca-16|0;ca=c;h=H[d+28>>2];e=H[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){va(a,e,g)}H[c+12>>2]=e+g;H[c+8>>2]=a+g;H[d+16>>2]=H[c+12>>2];H[d+20>>2]=H[c+8>>2];ca=c+16|0;H[d+12>>2]=(H[d+16>>2]-b|0)+b;H[d+8>>2]=(H[d+20>>2]-a|0)+a;H[f+8>>2]=H[d+12>>2];H[f+12>>2]=H[d+8>>2];ca=d+32|0;ca=f+16|0}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=pa(d<<2)}b=b<<2;e=ra((h<<2)+i|0,0,b);f=d<<2;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Tc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=nb(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=F[a+39|0]<0?H[b>>2]:b;while(1){a=b;b=a+1|0;c=F[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=F[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=F[b|0];a=b}if(c-48>>>0<10){while(1){d=(N(d,10)-F[a|0]|0)+48|0;b=F[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function bb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=H[a>>2];c=H[a+4>>2];e=H[a+8>>2];if(c>>>0<e>>>0){H[c>>2]=H[b>>2];H[a+4>>2]=c+4;return}a:{d=c;c=H[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0<d>>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=pa(f<<2)}else{e=0}d=h+e|0;H[d>>2]=H[b>>2];b=va(e,c,g);H[a+8>>2]=b+(f<<2);H[a+4>>2]=d+4;H[a>>2]=b;if(c){oa(c)}return}sa();v()}wa();v()}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=pa(d<<3)}b=b<<3;e=ra((h<<3)+i|0,0,b);f=d<<3;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function kf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function jf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}oa(a)}function xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;e=H[a+4>>2];a:{if((e|0)==-1){break a}c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],H[a+8>>2],H[a+12>>2]);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],a+20|0,a+24|0);c=H[b+20>>2];f=H[b+16>>2];F[d+15|0]=H[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],d+15|0,d+16|0)}ca=d+16|0;return(e|0)!=-1|0}function Eh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=H[a+8>>2];b:{if((b|0)<0){break b}c=H[a+4>>2];e=H[c>>2];d=H[c+4>>2]-e>>2;c:{if(d>>>0<b>>>0){ue(c,b-d|0);f=H[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}H[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=H[a+4>>2];c=H[a>>2];e=H[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}H[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Ca();v()}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0<e>>>0?e:d;if(d){if((d|0)<0){break a}h=pa(d<<1)}b=b<<1;e=ra((f<<1)+h|0,0,b);f=d<<1;d=va(h,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Pe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Oe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function za(a,b,c){var d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;a:{b:{if(c>>>0<11){d=a;F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Zb(g,d+1|0);d=H[e+8>>2];H[a>>2]=d;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;H[a+4>>2]=c}yb(d,b,c+1|0);ca=e+16|0;return}Na();v()}function Qg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[d+8>>2]=g|-2147483648;H[d>>2]=f;H[d+4>>2]=e;g=e+f|0;break c}F[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}qa(f,c,e)}F[g|0]=0;f=a+16|0;c=$d(b,d,f);b=H[a+16>>2];a=F[a+27|0];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;a=c?(a|0)<0?b:f:0;break a}Na();v()}return a|0}function Mc(a,b){var c=0,d=0,e=0;c=H[a+4>>2];d=c+b|0;H[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){H[H[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=H[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;H[a>>2]=H[a>>2]&(-1<<c&-1>>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ra(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}}function Fc(a,b,c){var d=0,e=0,f=0;d=H[c+16>>2];a:{if(!d){if(Sd(c)){break a}d=H[c+16>>2]}f=H[c+20>>2];if(d-f>>>0<b>>>0){return ea[H[c+36>>2]](c,a,b)|0}b:{if(H[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(I[e+a|0]!=10){continue}break}e=ea[H[c+36>>2]](c,a,d)|0;if(e>>>0<d>>>0){break a}a=a+d|0;b=b-d|0;f=H[c+20>>2]}qa(f,a,b);H[c+20>>2]=H[c+20>>2]+b;e=b+d|0}return e}function ad(a){var b=0,c=0,d=0,e=0;if(I[a+76|0]){F[a+76|0]=0;e=H[a+60>>2];c=H[a+72>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+56>>2]|0;b=(b>>>3|0)+e|0;H[a+56>>2]=c;H[a+60>>2]=c>>>0<d>>>0?b+1|0:b}if(J[a+38>>1]<=513){F[a+132|0]=0;e=H[a+116>>2];b=0;c=H[a+128>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+112>>2]|0;b=(b>>>3|0)+e|0;H[a+112>>2]=c;H[a+116>>2]=c>>>0<d>>>0?b+1|0:b}}function re(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!re(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function gb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!gb(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function Nh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca+-64|0;ca=e;d=ea[H[H[a>>2]+44>>2]](a,b)|0;a=ea[H[H[a>>2]+40>>2]](a,b)|0;f=Eb(e);g=H[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=H[(a<<2)+13584>>2]}else{a=-1}d=N(a,d);lc(f,g,h,i,0,d,d>>31);a=jc(pa(96),f);mb(a,c);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2];H[a+60>>2]=H[b+60>>2];ca=e- -64|0;return a|0}function If(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(!Ya(a,H[b>>2],e)){break a}if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+20>>2]=c;H[b+32>>2]=d;H[b+40>>2]=H[b+40>>2]+1;if(!(H[b+36>>2]!=1|H[b+24>>2]!=2)){F[b+54|0]=1}H[b+44>>2]=4}}function Bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+32>>2];b=e;h=H[b+8>>2];g=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=c+4|0;b=f>>>0<4?b+1|0:b;d=0;a:{if(f>>>0>h>>>0&(b|0)>=(g|0)|(b|0)>(g|0)){break a}c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=f;H[e+20>>2]=b;d=0;if((c|0)<0){break a}H[H[a+4>>2]+80>>2]=c;d=1}return d|0}function qi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function Ee(a,b){var c=0,d=0,e=0,f=0;H[a+144>>2]=b;c=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];c=H[c>>2]+H[c+16>>2]|0;d=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;e=a,f=J[H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],G[e+38>>1]=f;H[a>>2]=c;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=d;H[a+12>>2]=0;e=a,f=ea[H[H[b>>2]+36>>2]](b)|0,H[e+148>>2]=f}function Cd(a,b,c,d){F[a+53|0]=1;a:{if(H[a+4>>2]!=(c|0)){break a}F[a+52|0]=1;c=H[a+16>>2];b:{if(!c){H[a+36>>2]=1;H[a+24>>2]=d;H[a+16>>2]=b;if((d|0)!=1){break a}if(H[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=H[a+24>>2];if((c|0)==2){H[a+24>>2]=d;c=d}if(H[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}H[a+36>>2]=H[a+36>>2]+1}F[a+54|0]=1}}function pi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+32>>2];b=e;g=H[b+8>>2];d=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=d;d=c+4|0;b=d>>>0<4?b+1|0:b;if((f|0)>=(b|0)&d>>>0<=g>>>0|(b|0)<(f|0)){c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=d;H[e+20>>2]=b;H[H[a+4>>2]+80>>2]=c}return(b|0)<=(f|0)&d>>>0<=g>>>0|(b|0)<(f|0)}function Mf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ca+-64|0;ca=e;d=1;a:{if(Ya(a,b,0)){break a}d=0;if(!b){break a}b=Ed(b,14972);d=0;if(!b){break a}d=e+8|0;ra(d|4,0,52);H[e+56>>2]=1;H[e+20>>2]=-1;H[e+16>>2]=a;H[e+8>>2]=b;ea[H[H[b>>2]+28>>2]](b,d,H[c>>2],1);a=H[e+32>>2];if((a|0)==1){H[c>>2]=H[e+24>>2]}d=(a|0)==1}ca=e- -64|0;return d|0}function Ie(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;b=H[b+64>>2];e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+56>>2];b=H[b+52>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function pc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!b){H[c>>2]=0;return}h=0-I[a+12|0]&255;e=H[a+4>>2];d=H[a+8>>2];i=H[a>>2];while(1){j=f<<1;if(!((e|0)<=0|d>>>0>4095)){e=e-1|0;H[a+4>>2]=e;d=I[e+i|0]|d<<8}g=d&255;f=g>>>0<h>>>0;k=g;g=N(d>>>8|0,h);d=f?k+g|0:d-(h+g|0)|0;H[a+8>>2]=d;f=f|j;b=b-1|0;if(b){continue}break}H[c>>2]=f}function yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=ca-16|0;ca=a;f=F[b+24|0];e=H[3411];H[a+8>>2]=H[3410];H[a+12>>2]=e;e=H[3409];H[a>>2]=H[3408];H[a+4>>2]=e;e=Va(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=pa(c);g=qa(b,a,c)+c|0}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=b}ca=a+16|0;return e|0}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function _c(a,b){var c=0,d=0;a:{c=H[a+4>>2];d=H[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}pb(a,c);c=H[a+4>>2]}H[a+4>>2]=c+1;d=1<<c;a=H[a>>2]+(c>>>3&536870908)|0;if(I[b|0]){H[a>>2]=d|H[a>>2];return}H[a>>2]=H[a>>2]&(d^-1);return}sa();v()}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+28>>2];b=H[b+24>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function $b(a){var b=0;H[a>>2]=0;H[a+4>>2]=0;H[a+56>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+60>>2]=a;return a}function td(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!td(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}\nfunction hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Xa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Xa(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Qe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qe(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Pc(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Pc(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Fb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Ea(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ea(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Bb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Bb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(H[a>>2]!=H[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=I[a|0];e=I[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Yc(a){var b=0,c=0,d=0,e=0;d=H[a>>2];if(d){e=d;c=H[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=H[a>>2]}H[a+4>>2]=d;oa(e)}}function Dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+4>>2];a:{if(!d){break a}b=H[H[H[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=H[d+24>>2];c=H[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=H[a>>2];if((b|0)==H[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function Zh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Uc(a){var b=0,c=0,d=0;if(a){d=H[a+24>>2];if(d){b=d;c=H[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ra(b+12|0,H[b+16>>2]);Qa(b,H[b+4>>2]);oa(b)}if((c|0)!=(d|0)){continue}break}b=H[a+24>>2]}H[a+28>>2]=d;oa(b)}Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Yh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function vi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=H[c+8>>2];e=H[c+16>>2];g=H[c+12>>2];f=g;d=H[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=I[H[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;H[c+16>>2]=i;H[c+20>>2]=f;H[a+4>>2]=b}return e>>>0<h>>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Wc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function Ya(a,b,c){var d=0;if(!c){return H[a+4>>2]==H[b+4>>2]}if((a|0)==(b|0)){return 1}d=H[a+4>>2];a=I[d|0];c=H[b+4>>2];b=I[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=I[c+1|0];a=I[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function _h(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+12>>2];b=H[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=H[b+(a<<2)>>2];if(H[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ae(a,b){var c=0,d=0,e=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{c=H[b+4>>2];d=H[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=pa(c);c=ra(e,0,c);d=d+c|0;H[a+8>>2]=d;H[a+4>>2]=d;H[a>>2]=c;c=H[b>>2];a=H[b+4>>2]}qa(e,c,a-c|0);return}sa();v()}function ed(a){var b=0,c=0,d=0,e=0;c=H[a+4>>2];d=H[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=d}function Vh(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function cb(a){var b=0;if(a){b=H[a+76>>2];if(b){H[a+80>>2]=b;oa(b)}b=H[a- -64>>2];if(b){H[a+68>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Jd(a,b,c){var d=0,e=0,f=0,g=0;f=ca-16|0;ca=f;d=ca-16|0;ca=d;b=b-a>>2;while(1){if(b){H[d+12>>2]=a;e=b>>>1|0;H[d+12>>2]=H[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=K[H[d+12>>2]>>2]<K[c>>2];b=e?g:b;a=e?H[d+12>>2]+4|0:a;continue}break}ca=d+16|0;ca=f+16|0;return a}function oc(a){var b=0;b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;oa(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;oa(b)}b=H[a+28>>2];if(b){H[a+32>>2]=b;oa(b)}b=H[a+12>>2];if(b){oa(b)}a=H[a>>2];if(a){oa(a)}}function Xc(a,b){var c=0,d=0;d=pa(40);H[d>>2]=-1;c=d+8|0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;ea[H[H[a>>2]+16>>2]](a,d);a=H[b+88>>2];H[b+88>>2]=d;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}return 1}function Ma(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!I[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=H[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(I[b|0]){continue}break}}return b-a|0}function Ba(a){var b=0,c=0,d=0,e=0,f=0;d=I[a+12|0];c=H[a+8>>2];a:{if(c>>>0>4095){break a}b=H[a+4>>2];if((b|0)<=0){break a}b=b-1|0;H[a+4>>2]=b;c=I[b+H[a>>2]|0]|c<<8}d=0-d&255;b=N(d,c>>>8|0);e=c&255;f=e>>>0<d>>>0;H[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function od(a,b){H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=1984;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a>>2]=2328;H[a+60>>2]=b;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;return a}function mc(a,b){var c=0,d=0,e=0;c=Ma(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=pa(d);H[a+8>>2]=d|-2147483648;H[a>>2]=e;H[a+4>>2]=c;d=c+e|0;break b}F[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}va(e,b,c)}F[d|0]=0;return a}Na();v()}function Ng(a){a=a|0;var b=0,c=0,d=0;if(a){if(F[a+27|0]<0){oa(H[a+16>>2])}b=H[a>>2];if(b){c=b;d=H[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(F[d-1|0]<0){oa(H[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=H[a>>2]}H[a+4>>2]=b;oa(c)}oa(a)}}function Jb(a,b){var c=0,d=0,e=0;a:{c=H[a>>2];b:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=H[a+4>>2]-c|0;e=b<<2;b=va(pa(e),c,d);H[a+8>>2]=b+e;H[a+4>>2]=b+d;H[a>>2]=b;if(!c){break b}oa(c)}return}sa();v()}function Ga(a){a=a|0;var b=0,c=0;if(a){b=H[a+88>>2];H[a+88>>2]=0;if(b){c=H[b+8>>2];if(c){H[b+12>>2]=c;oa(c)}oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+64>>2];H[a+64>>2]=0;if(b){c=H[b>>2];if(c){H[b+4>>2]=c;oa(c)}oa(b)}oa(a)}}function Nd(a){var b=0,c=0,d=0;if(F[H[a>>2]]-48>>>0>=10){return 0}while(1){d=H[a>>2];c=-1;if(b>>>0<=214748364){c=F[d|0]-48|0;b=N(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}H[a>>2]=d+1;b=c;if(F[d+1|0]-48>>>0<10){continue}break}return b}function Cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=H[b+96>>2];a=pa(12);b=b+N(c,12)|0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=a;a=a+12|0;H[d+8>>2]=a;H[d+4>>2]=a;return 1}function Ai(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Sj(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0<e>>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Tj(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;da=(g^da)-((a>>>0<f>>>0)+g|0)|0;return b}function yi(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function Yb(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;d=H[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=H[a>>2];H[a+4>>2]=c;yb(d,b,c);F[e+15|0]=0;F[c+d|0]=I[e+15|0];break a}f=a;a=H[a+4>>2];Gd(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}ca=e+16|0}function Bf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ca-16|0;ca=c;a=H[a+4>>2];a:{if((a|0)==-1){break a}F[c+15|0]=a;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Wb(b,H[b+4>>2],c+15|0,c+16|0)}ca=c+16|0;return(a|0)!=-1|0}function Xb(a,b,c){var d=0,e=0;d=ca-16|0;ca=d;a:{if(c>>>0<=10){F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;yb(a,b,c);F[d+15|0]=0;F[a+c|0]=I[d+15|0];break a}e=a;a=I[a+11|0]&127;Gd(e,10,c-10|0,a,a,c,b)}ca=d+16|0}function Rj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=N(e,f);g=c&65535;h=a&65535;i=N(g,h);f=(i>>>16|0)+N(f,g)|0;e=(f&65535)+N(e,h)|0;da=(N(b,c)+j|0)+N(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dd(a,b,c){var d=0;d=H[a+16>>2];if(!d){H[a+36>>2]=1;H[a+24>>2]=c;H[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(H[a+24>>2]!=2){break a}H[a+24>>2]=c;return}F[a+54|0]=1;H[a+24>>2]=2;H[a+36>>2]=H[a+36>>2]+1}}function th(){var a=0;a=Eb(pa(96));H[a+64>>2]=0;H[a+68>>2]=0;H[a+88>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a|0}function zi(a,b){a=a|0;b=b|0;var c=0,d=0;H[b>>2]=2;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(b+8|0,d+4|0);c=H[b+8>>2]}b=c+d|0;a=H[a+4>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function rj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function ib(a,b,c,d,e){var f=0;f=ca-256|0;ca=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;ra(f,b&255,c?d:256);if(!c){while(1){Ab(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Ab(a,f,d)}ca=f+256|0}function Ij(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ch(a){a=a|0;var b=0,c=0,d=0;b=H[a+8>>2];d=H[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=H[b>>2];c=ea[H[H[c>>2]+16>>2]](c,H[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Yd(a,b){var c=0,d=0;c=H[a+8>>2];a=H[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(H[H[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function qj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Hj(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function $d(a,b,c){var d=0,e=0;d=a+4|0;a=nb(a,b);a:{if((d|0)==(a|0)){break a}b=H[a+32>>2];d=H[a+28>>2];if((b|0)==(d|0)){break a}Cc(c,b-d|0);c=Dc(c);b=H[a+28>>2];qa(c,b,H[a+32>>2]-b|0);e=1}return e}function Qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ca-16|0;ca=e;a=_(H[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){H[3992]=a;a=-1}else{a=0}ca=e+16|0;da=a?-1:H[e+12>>2];return(a?-1:H[e+8>>2])|0}function Sd(a){var b=0;b=H[a+72>>2];H[a+72>>2]=b-1|b;b=H[a>>2];if(b&8){H[a>>2]=b|32;return-1}H[a+4>>2]=0;H[a+8>>2]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];return 0}function Eb(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+28>>2]=9;F[a+24|0]=1;H[a+56>>2]=-1;H[a+60>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;return a}function hf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=rb(H[H[a+36>>2]+(b<<2)>>2])}return c|0}function Mg(){var a=0,b=0;a=pa(40);H[a+4>>2]=0;H[a+8>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;H[a+32>>2]=0;H[a+36>>2]=0;return a|0}function Vf(a,b){a=a|0;b=b|0;var c=0,d=0;Wd(a,b);a:{if((b|0)<0){break a}d=H[a+88>>2];c=H[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;va(c,b,d-b|0);H[a+88>>2]=d-4}}function Rh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Lh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function zb(a){var b=0,c=0;b=H[3958];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>fa()<<16>>>0){if(!($(a|0)|0)){break a}}H[3958]=a;return b}H[3992]=48;return-1}function bj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;a=H[a+8>>2];if(I[a+24|0]==3){d=H[a+28>>2]==9}return d|0}function wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[a+8>>2];a:{if(!I[d+24|0]){break a}if(!mb(d,H[b+4>>2]-H[b>>2]>>2)){break a}e=ea[H[H[a>>2]+32>>2]](a,b,c)|0}return e|0}function Qh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function Kh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function nj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ra(a,b){if(b){Ra(a,H[b>>2]);Ra(a,H[b+4>>2]);a=H[b+28>>2];H[b+28>>2]=0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Gi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;d=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=d;return H[H[H[H[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ej(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Vc(a){H[a+40>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=13280;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;G[a+36>>1]=0;return a}function Hd(a,b){var c=0,d=0,e=0,f=0;H[a>>2]=15260;H[a>>2]=15372;c=Ma(b);d=pa(c+13|0);H[d+8>>2]=0;H[d+4>>2]=c;H[d>>2]=c;e=a,f=qa(d+12|0,b,c+1|0),H[e+4>>2]=f;return a}function jg(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}c=ea[H[H[a>>2]+44>>2]](a)|0}return c|0}function mj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Dj(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Xe(a){a=a|0;var b=0;a:{if(!H[a- -64>>2]|!H[a+68>>2]|(!H[a+44>>2]|!H[a+48>>2])){break a}if(!H[a+52>>2]|!H[a+56>>2]){break a}b=H[a+92>>2]!=-1}return b|0}function cf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Pj(a,b){a=a|0;b=b|0;var c=0;b=H[b+88>>2];if(!(!b|H[b>>2]!=2)){c=a;a=H[b+8>>2];H[c+4>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);c=1}return c|0}function tc(a){a=a|0;var b=0;a:{if(!H[a+48>>2]|!H[a+52>>2]|(!H[a+28>>2]|!H[a+32>>2])){break a}if(!H[a+36>>2]|!H[a+40>>2]){break a}b=H[a+76>>2]!=-1}return b|0}function Sh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function He(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function bf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function wh(){var a=0,b=0;b=pa(40);H[b>>2]=-1;a=b+8|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;return b|0}function gf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+4>>2];a:{if(d){c=1;if(I[d+36|0]<2){break a}}c=ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0}return c|0}function ci(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Mh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Ha(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;G[a+38>>1]=0;F[a+36|0]=0;return a}function Hf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e);return}a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,d,e,f)}function Ei(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}d=nd(a,b,c)}return d|0}function gh(){var a=0;a=_d(pa(108));H[a+84>>2]=0;H[a+88>>2]=0;H[a>>2]=13664;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;return a|0}function Zd(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=N(b,12)+a|0;a=H[b+20>>2];if((H[b+24>>2]-a|0)<=0){break a}c=H[a>>2]}return c}function lc(a,b,c,d,e,f,g){H[a>>2]=0;H[a+56>>2]=b;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=f;H[a+44>>2]=g;F[a+32|0]=e;H[a+28>>2]=d;F[a+24|0]=c}function aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!xc(a+24|0,H[a+8>>2],c)){break a}}d=nd(a,b,c)}return d|0}function $i(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!xc(a+24|0,rb(a),c)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Yf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}return _b(a)|0}function Dc(a){var b=0;if(I[a+11|0]>>>7|0){b=H[a+4>>2]}else{b=I[a+11|0]&127}if(!b){af(1232);v()}if(I[a+11|0]>>>7|0){a=H[a>>2]}return a}function Xf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}oa(_b(a))}function zj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function jj(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Qa(a,b){if(b){Qa(a,H[b>>2]);Qa(a,H[b+4>>2]);a=H[b+28>>2];if(a){H[b+32>>2]=a;oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Vg(){var a=0;a=pa(28);H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;return a|0}function wg(a){a=a|0;var b=0;H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function eh(){var a=0,b=0;a=pa(24);H[a+4>>2]=0;H[a+8>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;return a|0}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d);return}a=H[a+8>>2];ea[H[H[a>>2]+28>>2]](a,b,c,d)}function yj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ij(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function pa(a){var b=0;a=a?a:1;a:{while(1){b=Ec(a);if(b){break a}b=H[4422];if(b){ea[b|0]();continue}break}X();v()}return b}function Kb(a,b){if(b){Kb(a,H[b>>2]);Kb(a,H[b+4>>2]);if(F[b+39|0]<0){oa(H[b+28>>2])}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Ad(a){a=a|0;var b=0,c=0;H[a>>2]=15372;b=H[a+4>>2]-12|0;c=H[b+8>>2]-1|0;H[b+8>>2]=c;if((c|0)<0){oa(b)}return a|0}function lh(){var a=0;a=pa(24);H[a+8>>2]=0;H[a+12>>2]=0;H[a+4>>2]=-1;H[a>>2]=1832;H[a+16>>2]=0;H[a+20>>2]=0;return a|0}function pd(a,b,c){a=a|0;b=b|0;c=c|0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;return 1}function wc(a){a=a|0;var b=0;if(!(!H[a+60>>2]|!H[a+44>>2]|(!H[a+48>>2]|!H[a+52>>2]))){b=H[a+56>>2]!=0}return b|0}function Id(a,b){if(I[a+11|0]>>>7|0){H[a+4>>2]=b;return}F[a+11|0]=I[a+11|0]&128|b;F[a+11|0]=I[a+11|0]&127}function wj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function fj(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function bi(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Uh(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function lg(a){a=a|0;if(a){if(F[a+39|0]<0){oa(H[a+28>>2])}Oc(a+12|0,H[a+16>>2]);Kb(a,H[a+4>>2]);oa(a)}}function Pb(a){a=a|0;var b=0;if(!(!H[a+52>>2]|(!H[a+44>>2]|!H[a+48>>2]))){b=H[a+56>>2]!=0}return b|0}function vj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function vc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|!b|I[b+24|0]!=3)){H[a+60>>2]=b;c=1}return c|0}function ej(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ai(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Th(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function xh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=b;H[a+8>>2]=c;H[a+12>>2]=0}function We(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a- -64>>2]=b;c=1}return c|0}function yc(a){var b=0;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}}function sc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+48>>2]=b;c=1}return c|0}function Gf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e)}}function wa(){var a=0;a=Bc(4);H[a>>2]=15260;H[a>>2]=15220;H[a>>2]=15240;Y(a|0,15352,14);v()}function sf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Kj(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function mi(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}return a|0}function Ci(a){a=a|0;var b=0;b=rb(a);return Je(a+24|0,b?b:H[a+8>>2],H[H[a+4>>2]+32>>2])|0}function rf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function ji(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}\nfunction Ub(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Za(a){var b=0;H[a+16>>2]=0;b=H[a>>2];H[a+4>>2]=b;H[a+12>>2]=b;if(b){oa(b)}}function Oc(a,b){if(b){Oc(a,H[b>>2]);Oc(a,H[b+4>>2]);Kb(b+20|0,H[b+24>>2]);oa(b)}}function wi(a){a=a|0;if(!H[a+44>>2]){return 0}return ea[H[H[a>>2]+48>>2]](a)|0}function vh(a){a=a|0;var b=0;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}}function Uj(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d)}}function ui(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+20>>2]](a,b)|0}function ni(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+12>>2]](a,b)|0}function li(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+16>>2]](a,b)|0}function lb(){var a=0;a=pa(12);H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;return a|0}function kb(a){a=a|0;var b=0;if(a){b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Vj(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<<b|(-1<<a&-2)>>>a}\nfunction dh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+32>>2]=c;H[a+28>>2]=b;return 1}function ch(a){a=a|0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Rd(a,b,c){a:{if(H[c+76>>2]<0){a=Fc(a,b,c);break a}a=Fc(a,b,c)}}function Mb(a,b){a=a|0;b=b|0;if(b>>>0<=1){H[a+28>>2]=b}return b>>>0<2|0}function Fh(a,b){a=a|0;b=b|0;F[b+84|0]=1;H[b+72>>2]=H[b+68>>2];return 1}function si(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+24>>2]](a)|0}function ri(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+28>>2]](a)|0}function oi(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+36>>2]](a)|0}function ih(){var a=0;a=pa(8);H[a+4>>2]=-1;H[a>>2]=1032;return a|0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;return H[H[b+8>>2]+(c<<2)>>2]}function _i(a,b){a=a|0;b=b|0;return Fd(a+24|0,rb(a),H[a+8>>2])|0}function Bi(a,b){a=a|0;b=b|0;return Re(a+24|0,rb(a),H[a+8>>2])|0}function xf(a,b){a=a|0;b=b|0;H[a+12>>2]=-1;H[a+8>>2]=b;return 1}function ne(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+12>>2]](a,b)|0}function Ff(a){a=a|0;if(!a){return 0}return(Ed(a,15068)|0)!=0|0}function Di(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+56>>2]](a,b)|0}function $g(a){a=a|0;if(a){if(F[a+15|0]<0){oa(H[a+4>>2])}oa(a)}}function kh(a,b){a=a|0;b=b|0;return O(L[H[a+8>>2]+(b<<2)>>2])}function af(a){a=Hd(Bc(8),a);H[a>>2]=15472;Y(a|0,15504,1);v()}function Ue(a){a=Hd(Bc(8),a);H[a>>2]=15420;Y(a|0,15452,1);v()}function _g(a,b){a=a|0;b=b|0;return O(L[H[a>>2]+(b<<2)>>2])}function fh(a){a=a|0;return(H[a+100>>2]-H[a+96>>2]|0)/12|0}function ah(a){a=a|0;return(F[a+15|0]<0?H[a+4>>2]:a+4|0)|0}function _f(a,b){a=a|0;b=b|0;return H[H[a+4>>2]+(b<<2)>>2]}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;da=0;return 0}function Ke(a){a=Vc(a);H[a+44>>2]=0;H[a>>2]=11180;return a}function ie(a,b){a=a|0;b=b|0;return H[H[a>>2]+(b<<2)>>2]}function Xg(a,b){a=a|0;b=b|0;return G[H[a>>2]+(b<<1)>>1]}function Wg(a,b){a=a|0;b=b|0;return J[H[a>>2]+(b<<1)>>1]}function Zb(a,b){var c=0;c=pa(b);H[a+4>>2]=b;H[a>>2]=c}function Jg(a,b,c){a=a|0;b=b|0;c=c|0;return Zd(b,c)|0}function _d(a){H[a>>2]=13724;ra(a+4|0,0,80);return a}function me(a){a=a|0;return H[a+12>>2]-H[a+8>>2]>>2}function Qj(a){if(a){return 31-Q(a-1^a)|0}return 32}function cc(a){a=a|0;if(a){ea[H[H[a>>2]+4>>2]](a)}}function Zg(a,b){a=a|0;b=b|0;return F[H[a>>2]+b|0]}function Yg(a,b){a=a|0;b=b|0;return I[H[a>>2]+b|0]}function Uf(a){a=a|0;return H[a+8>>2]-H[a+4>>2]>>2}function jd(a,b){a=a|0;b=b|0;H[a+4>>2]=b;return 1}function je(a){a=a|0;return H[a+4>>2]-H[a>>2]>>1}function Qc(a){a=a|0;return H[a+4>>2]-H[a>>2]>>2}function le(a){a=a|0;return H[a+4>>2]-H[a>>2]|0}function Ab(a,b,c){if(!(I[a|0]&32)){Fc(b,c,a)}}function vf(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function hi(a,b){a=a|0;b=b|0;return I[b+24|0]}function Pg(a,b){a=a|0;b=b|0;return H[b+8>>2]}function Nj(a){a=a|0;return I[H[a+8>>2]+24|0]}function Li(a){a=a|0;H[a>>2]=10032;return a|0}function Eg(a,b){a=a|0;b=b|0;return H[b+4>>2]}function Yi(a){a=a|0;H[a>>2]=7144;return a|0}function Ui(a){a=a|0;H[a>>2]=8080;return a|0}function Sf(a){a=a|0;return aa(H[a+60>>2])|0}function Pi(a){a=a|0;H[a>>2]=9028;return a|0}function jh(a){a=a|0;return O(L[a+20>>2])}function Ji(a){a=a|0;H[a>>2]=10032;oa(a)}function Xi(a){a=a|0;H[a>>2]=7144;oa(a)}function Si(a){a=a|0;H[a>>2]=8080;oa(a)}function Oi(a){a=a|0;H[a>>2]=9028;oa(a)}function sh(a){a=a|0;return H[a+88>>2]}function rh(a){a=a|0;return H[a+56>>2]}function oh(a){a=a|0;return H[a+40>>2]}function nh(a){a=a|0;return H[a+48>>2]}function mh(a){a=a|0;return H[a+60>>2]}function eb(a){a=a|0;return H[a+28>>2]}function df(){H[4292]=17048;H[4274]=42}function Rc(a){a=a|0;return H[a+80>>2]}function qh(a){a=a|0;return F[a+24|0]}function ph(a){a=a|0;return I[a+32|0]}function md(a,b){a=a|0;b=b|0;return-1}function db(a){a=a|0;return H[a+4>>2]}function bh(a){a=a|0;return!H[a>>2]|0}function _e(a,b){a=a|0;b=b|0;return 6}function Zc(a){a=a|0;return H[a+8>>2]}function Pd(a,b){a=a|0;b=b|0;return 1}function Ja(a,b){a=a|0;b=b|0;return 0}function Bj(a,b){a=a|0;b=b|0;return 2}function Bc(a){return Ec(a+80|0)+80|0}function pe(a){a=a|0;return H[a>>2]}function yh(){return Ha(pa(40))|0}function uh(){return Eb(pa(64))|0}function hh(){return _d(pa(84))|0}function Sc(a){a=a|0;if(a){oa(a)}}function zc(a){a=a|0;Ad(a);oa(a)}function Ef(a){a=a|0;return 1171}function Df(a){a=a|0;return 1245}function Cf(a){a=a|0;return 1211}function Ta(a){a=a|0;return a|0}function yf(a){a=a|0;oa(rd(a))}function fi(a){a=a|0;oa(Be(a))}function ei(a){a=a|0;oa(Ae(a))}function di(a){a=a|0;oa(ze(a))}function Tf(a){a=a|0;oa(_b(a))}function ld(a){a=a|0;return 3}function _a(a){a=a|0;return 0}function Ze(a){a=a|0;return 5}function Tb(a){a=a|0;return 2}function Ob(a){a=a|0;return 6}function Da(a){a=a|0;return 1}function $e(a){a=a|0;return 4}function sa(){Ue(1164);v()}function Na(){Ue(1232);v()}function La(a){a=a|0;oa(a)}function Ca(){af(1164);v()}function fb(a){a=a|0;v()}function eg(){return 10}function dg(){return 11}function cg(){return 12}function kg(){return 5}function ig(){return 6}function hg(){return 7}function gg(){return 8}function fg(){return 9}function fe(){return 3}function ee(){return 4}function bg(){return-2}function bc(){return-1}function ag(){return-3}function ac(){return 1}function Zf(){return-5}function Qb(){return 0}function Nc(){return 2}function $f(){return-4}function Nf(){X();v()}function Td(a){a=a|0}\n// EMSCRIPTEN_END_FUNCS\ne=I;p(q);var ea=c([null,Ad,Ta,La,Tb,Pj,zi,Gh,Fd,Bf,xc,Nh,_e,Bj,Ta,mi,ji,Da,gj,Ti,Ki,Re,xi,Je,_e,hi,wg,fb,dh,ke,jg,_f,Uf,eb,Ja,Nf,Pd,Da,rd,yf,Of,Af,zf,sf,rf,pd,xf,wf,vf,Pd,uf,tf,kf,jf,qf,pf,hf,of,nf,mf,lf,cf,bf,pd,gf,ff,nd,ef,Nj,Oj,Kj,Ub,Da,db,Pb,_a,md,Ja,_a,Da,Mj,Lj,fb,fb,Ub,Tb,Pb,Jj,Ij,Hj,$e,Pb,Gj,Fj,Ej,Dj,ld,wc,Da,Ja,vc,Cj,Aj,zj,yj,Ze,wc,Da,Ja,vc,Ye,xj,wj,vj,Ob,Xe,Da,Ja,We,Ve,uj,Ta,La,Mb,eb,Nb,fb,Ub,Da,Pb,tj,fb,Ub,Tb,Pb,sj,rj,qj,$e,Pb,pj,oj,nj,mj,ld,wc,Da,Ja,vc,lj,kj,jj,ij,Ze,wc,Da,Ja,vc,Ye,hj,fj,ej,Ob,Xe,Da,Ja,We,Ve,dj,Ta,La,Mb,eb,Lb,fb,Ub,_a,Da,cj,cf,bf,bj,$i,aj,Zi,Tb,_i,Yi,Xi,Ob,db,tc,Da,Ja,sc,Da,Tb,Te,Wi,Ta,La,Mb,eb,Nb,Ui,Si,Ob,tc,Da,Ja,sc,Te,Ri,Ta,La,Mb,eb,Lb,Ta,La,_a,Da,_a,md,Ja,Vi,Qi,Pi,Oi,Ob,db,tc,Da,Ja,sc,Da,ld,Se,Ni,Ta,La,Mb,eb,Nb,Li,Ji,Ob,tc,Da,Ja,sc,Se,Ii,Ta,La,Mb,eb,Lb,La,_a,Da,_a,md,Ja,Mi,Hi,Ai,yi,Gi,Ei,Fi,Di,Ci,Bi,vi,fb,Da,Da,wi,Dh,Ch,Da,_a,Ja,Ja,qi,pi,ti,ui,ri,oi,ni,li,si,Be,fi,jd,id,hd,gd,ki,Da,db,Zc,Ae,ei,jd,id,hd,gd,ii,Da,db,Zc,ze,di,jd,id,hd,gd,gi,Da,db,Zc,He,ci,Ie,bi,ai,Zh,Yh,Xh,Wh,_h,Vh,$h,Uh,Th,Rh,Qh,Ph,Oh,Sh,Mh,Lh,Kh,Jh,Ih,Wc,ve,Hh,Ta,La,Fh,Eh,fb,_a,Da,Wc,Ah,Bh,Wc,ve,zh,Yf,Xf,Wf,Vf,_b,Tf,Xd,Wd,Sf,Rf,Qf,_a,Pf,Ta,La,Td,Td,Mf,Gf,If,Lf,La,Hf,Jf,Kf,La,Df,La,Cf,La,Ef,zc,db,zc,zc]);function fa(){return E.byteLength/65536|0}function ka(la){la=la|0;var ga=fa()|0;var ha=ga+la|0;if(ga<ha&&ha<65536){var ia=new ArrayBuffer(N(ha,65536));var ja=new Int8Array(ia);ja.set(F);F=new Int8Array(ia);G=new Int16Array(ia);H=new Int32Array(ia);I=new Uint8Array(ia);J=new Uint16Array(ia);K=new Uint32Array(ia);L=new Float32Array(ia);M=new Float64Array(ia);E=ia;D.buffer=E;e=I}return ga}return{\"i\":df,\"j\":ea,\"k\":Sc,\"l\":yh,\"m\":xh,\"n\":Sc,\"o\":wh,\"p\":pe,\"q\":vh,\"r\":uh,\"s\":Sc,\"t\":th,\"u\":Rc,\"v\":sh,\"w\":rh,\"x\":eb,\"y\":qh,\"z\":ph,\"A\":oh,\"B\":nh,\"C\":mh,\"D\":Ga,\"E\":lh,\"F\":ne,\"G\":db,\"H\":kh,\"I\":jh,\"J\":cc,\"K\":ih,\"L\":ne,\"M\":db,\"N\":cc,\"O\":hh,\"P\":me,\"Q\":Rc,\"R\":cc,\"S\":gh,\"T\":fh,\"U\":me,\"V\":Rc,\"W\":cc,\"X\":eh,\"Y\":ch,\"Z\":pe,\"_\":bh,\"$\":ah,\"aa\":$g,\"ba\":lb,\"ca\":_g,\"da\":Qc,\"ea\":kb,\"fa\":lb,\"ga\":Zg,\"ha\":le,\"ia\":kb,\"ja\":lb,\"ka\":Yg,\"la\":le,\"ma\":kb,\"na\":lb,\"oa\":Xg,\"pa\":je,\"qa\":kb,\"ra\":lb,\"sa\":Wg,\"ta\":je,\"ua\":kb,\"va\":lb,\"wa\":ie,\"xa\":Qc,\"ya\":kb,\"za\":lb,\"Aa\":ie,\"Ba\":Qc,\"Ca\":kb,\"Da\":Vg,\"Ea\":Ug,\"Fa\":Tg,\"Ga\":Sg,\"Ha\":Rg,\"Ia\":Qg,\"Ja\":Pg,\"Ka\":Og,\"La\":Ng,\"Ma\":Mg,\"Na\":Lg,\"Oa\":Kg,\"Pa\":Jg,\"Qa\":Ig,\"Ra\":Hg,\"Sa\":Gg,\"Ta\":Fg,\"Ua\":Eg,\"Va\":Dg,\"Wa\":Cg,\"Xa\":Bg,\"Ya\":Ag,\"Za\":zg,\"_a\":yg,\"$a\":xg,\"ab\":ge,\"bb\":vg,\"cb\":ug,\"db\":tg,\"eb\":sg,\"fb\":ge,\"gb\":rg,\"hb\":qg,\"ib\":pg,\"jb\":og,\"kb\":ng,\"lb\":mg,\"mb\":lg,\"nb\":bc,\"ob\":Qb,\"pb\":ac,\"qb\":Nc,\"rb\":bc,\"sb\":Qb,\"tb\":ac,\"ub\":Nc,\"vb\":fe,\"wb\":ee,\"xb\":bc,\"yb\":Qb,\"zb\":ac,\"Ab\":Qb,\"Bb\":ac,\"Cb\":Nc,\"Db\":fe,\"Eb\":ee,\"Fb\":kg,\"Gb\":ig,\"Hb\":hg,\"Ib\":gg,\"Jb\":fg,\"Kb\":eg,\"Lb\":dg,\"Mb\":cg,\"Nb\":Qb,\"Ob\":bc,\"Pb\":bg,\"Qb\":ag,\"Rb\":$f,\"Sb\":Zf,\"Tb\":Ec,\"Ub\":oa,\"Vb\":Ff}}return ma(na)}\n// EMSCRIPTEN_END_ASM\n\n\n)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({\"instance\":new WebAssembly.Instance(module,info)})}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;assert(INITIAL_MEMORY>=65536,\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+INITIAL_MEMORY+\"! (STACK_SIZE=\"+65536+\")\");if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"draco_decoder.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"j\"];addOnInit(Module[\"asm\"][\"i\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j])}num+=len}HEAPU32[pnum>>2]=num;return 0}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob==\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==\"boolean\"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,\"base64\");return new Uint8Array(buf[\"buffer\"],buf[\"byteOffset\"],buf[\"byteLength\"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmImports={\"c\":___cxa_throw,\"b\":_abort,\"h\":_emscripten_memcpy_big,\"f\":_emscripten_resize_heap,\"g\":_fd_close,\"e\":_fd_seek,\"d\":_fd_write,\"a\":wasmMemory};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=function(){return(_emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=function(){return(_emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=function(){return(_emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=Module[\"asm\"][\"m\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=function(){return(_emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=function(){return(_emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=function(){return(_emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=function(){return(_emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=function(){return(_emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=function(){return(_emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=function(){return(_emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=function(){return(_emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=function(){return(_emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=function(){return(_emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=function(){return(_emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=function(){return(_emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=function(){return(_emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=function(){return(_emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=function(){return(_emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=function(){return(_emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=function(){return(_emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=function(){return(_emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=function(){return(_emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=function(){return(_emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=function(){return(_emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=function(){return(_emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=function(){return(_emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=function(){return(_emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=function(){return(_emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=function(){return(_emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=function(){return(_emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=function(){return(_emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=function(){return(_emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=function(){return(_emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=function(){return(_emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=function(){return(_emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=function(){return(_emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=function(){return(_emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=function(){return(_emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=function(){return(_emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=function(){return(_emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=function(){return(_emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=function(){return(_emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=function(){return(_emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=function(){return(_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=function(){return(_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=function(){return(_emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=function(){return(_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=function(){return(_emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=function(){return(_emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=Module[\"asm\"][\"Db\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=Module[\"asm\"][\"Eb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=Module[\"asm\"][\"Fb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=Module[\"asm\"][\"Gb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=Module[\"asm\"][\"Hb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=Module[\"asm\"][\"Ib\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=Module[\"asm\"][\"Jb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=Module[\"asm\"][\"Kb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=function(){return(_emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=Module[\"asm\"][\"Lb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=function(){return(_emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=Module[\"asm\"][\"Mb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=function(){return(_emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=Module[\"asm\"][\"Nb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=Module[\"asm\"][\"Ob\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=Module[\"asm\"][\"Pb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=function(){return(_emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=Module[\"asm\"][\"Qb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=Module[\"asm\"][\"Rb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=Module[\"asm\"][\"Sb\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Tb\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ub\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Vb\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=15856;var ___stop_em_js=Module[\"___stop_em_js\"]=15954;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module[\"WrapperObject\"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module[\"getCache\"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module[\"wrapPointer\"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module[\"castObject\"]=castObject;Module[\"NULL\"]=wrapPointer(0);function destroy(obj){if(!obj[\"__destroy__\"])throw\"Error: Cannot destroy object. (Did you create it yourself?)\";obj[\"__destroy__\"]();delete getCache(obj.__class__)[obj.ptr]}Module[\"destroy\"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module[\"compare\"]=compare;function getPointer(obj){return obj.ptr}Module[\"getPointer\"]=getPointer;function getClass(obj){return obj.__class__}Module[\"getClass\"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module[\"_free\"](ensureCache.temps[i])}ensureCache.temps.length=0;Module[\"_free\"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module[\"_malloc\"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0},alloc:function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module[\"_malloc\"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i<array.length;i++){view[offset+i]=array[i]}}};function ensureString(value){if(typeof value===\"string\"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function VoidPtr(){throw\"cannot construct a VoidPtr, no constructor in IDL\"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module[\"VoidPtr\"]=VoidPtr;VoidPtr.prototype[\"__destroy__\"]=VoidPtr.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)};function DecoderBuffer(){this.ptr=_emscripten_bind_DecoderBuffer_DecoderBuffer_0();getCache(DecoderBuffer)[this.ptr]=this}DecoderBuffer.prototype=Object.create(WrapperObject.prototype);DecoderBuffer.prototype.constructor=DecoderBuffer;DecoderBuffer.prototype.__class__=DecoderBuffer;DecoderBuffer.__cache__={};Module[\"DecoderBuffer\"]=DecoderBuffer;DecoderBuffer.prototype[\"Init\"]=DecoderBuffer.prototype.Init=function(data,data_size){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;_emscripten_bind_DecoderBuffer_Init_2(self,data,data_size)};DecoderBuffer.prototype[\"__destroy__\"]=DecoderBuffer.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DecoderBuffer___destroy___0(self)};function AttributeTransformData(){this.ptr=_emscripten_bind_AttributeTransformData_AttributeTransformData_0();getCache(AttributeTransformData)[this.ptr]=this}AttributeTransformData.prototype=Object.create(WrapperObject.prototype);AttributeTransformData.prototype.constructor=AttributeTransformData;AttributeTransformData.prototype.__class__=AttributeTransformData;AttributeTransformData.__cache__={};Module[\"AttributeTransformData\"]=AttributeTransformData;AttributeTransformData.prototype[\"transform_type\"]=AttributeTransformData.prototype.transform_type=function(){var self=this.ptr;return _emscripten_bind_AttributeTransformData_transform_type_0(self)};AttributeTransformData.prototype[\"__destroy__\"]=AttributeTransformData.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeTransformData___destroy___0(self)};function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module[\"GeometryAttribute\"]=GeometryAttribute;GeometryAttribute.prototype[\"__destroy__\"]=GeometryAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)};function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module[\"PointAttribute\"]=PointAttribute;PointAttribute.prototype[\"size\"]=PointAttribute.prototype.size=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)};PointAttribute.prototype[\"GetAttributeTransformData\"]=PointAttribute.prototype.GetAttributeTransformData=function(){var self=this.ptr;return wrapPointer(_emscripten_bind_PointAttribute_GetAttributeTransformData_0(self),AttributeTransformData)};PointAttribute.prototype[\"attribute_type\"]=PointAttribute.prototype.attribute_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)};PointAttribute.prototype[\"data_type\"]=PointAttribute.prototype.data_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)};PointAttribute.prototype[\"num_components\"]=PointAttribute.prototype.num_components=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)};PointAttribute.prototype[\"normalized\"]=PointAttribute.prototype.normalized=function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)};PointAttribute.prototype[\"byte_stride\"]=PointAttribute.prototype.byte_stride=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)};PointAttribute.prototype[\"byte_offset\"]=PointAttribute.prototype.byte_offset=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)};PointAttribute.prototype[\"unique_id\"]=PointAttribute.prototype.unique_id=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)};PointAttribute.prototype[\"__destroy__\"]=PointAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)};function AttributeQuantizationTransform(){this.ptr=_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0();getCache(AttributeQuantizationTransform)[this.ptr]=this}AttributeQuantizationTransform.prototype=Object.create(WrapperObject.prototype);AttributeQuantizationTransform.prototype.constructor=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype.__class__=AttributeQuantizationTransform;AttributeQuantizationTransform.__cache__={};Module[\"AttributeQuantizationTransform\"]=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype[\"InitFromAttribute\"]=AttributeQuantizationTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1(self,att)};AttributeQuantizationTransform.prototype[\"quantization_bits\"]=AttributeQuantizationTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0(self)};AttributeQuantizationTransform.prototype[\"min_value\"]=AttributeQuantizationTransform.prototype.min_value=function(axis){var self=this.ptr;if(axis&&typeof axis===\"object\")axis=axis.ptr;return _emscripten_bind_AttributeQuantizationTransform_min_value_1(self,axis)};AttributeQuantizationTransform.prototype[\"range\"]=AttributeQuantizationTransform.prototype.range=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_range_0(self)};AttributeQuantizationTransform.prototype[\"__destroy__\"]=AttributeQuantizationTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeQuantizationTransform___destroy___0(self)};function AttributeOctahedronTransform(){this.ptr=_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0();getCache(AttributeOctahedronTransform)[this.ptr]=this}AttributeOctahedronTransform.prototype=Object.create(WrapperObject.prototype);AttributeOctahedronTransform.prototype.constructor=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype.__class__=AttributeOctahedronTransform;AttributeOctahedronTransform.__cache__={};Module[\"AttributeOctahedronTransform\"]=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype[\"InitFromAttribute\"]=AttributeOctahedronTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1(self,att)};AttributeOctahedronTransform.prototype[\"quantization_bits\"]=AttributeOctahedronTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0(self)};AttributeOctahedronTransform.prototype[\"__destroy__\"]=AttributeOctahedronTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeOctahedronTransform___destroy___0(self)};function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module[\"PointCloud\"]=PointCloud;PointCloud.prototype[\"num_attributes\"]=PointCloud.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)};PointCloud.prototype[\"num_points\"]=PointCloud.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)};PointCloud.prototype[\"__destroy__\"]=PointCloud.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)};function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module[\"Mesh\"]=Mesh;Mesh.prototype[\"num_faces\"]=Mesh.prototype.num_faces=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)};Mesh.prototype[\"num_attributes\"]=Mesh.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)};Mesh.prototype[\"num_points\"]=Mesh.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)};Mesh.prototype[\"__destroy__\"]=Mesh.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)};function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module[\"Metadata\"]=Metadata;Metadata.prototype[\"__destroy__\"]=Metadata.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)};function Status(){throw\"cannot construct a Status, no constructor in IDL\"}Status.prototype=Object.create(WrapperObject.prototype);Status.prototype.constructor=Status;Status.prototype.__class__=Status;Status.__cache__={};Module[\"Status\"]=Status;Status.prototype[\"code\"]=Status.prototype.code=function(){var self=this.ptr;return _emscripten_bind_Status_code_0(self)};Status.prototype[\"ok\"]=Status.prototype.ok=function(){var self=this.ptr;return!!_emscripten_bind_Status_ok_0(self)};Status.prototype[\"error_msg\"]=Status.prototype.error_msg=function(){var self=this.ptr;return UTF8ToString(_emscripten_bind_Status_error_msg_0(self))};Status.prototype[\"__destroy__\"]=Status.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Status___destroy___0(self)};function DracoFloat32Array(){this.ptr=_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0();getCache(DracoFloat32Array)[this.ptr]=this}DracoFloat32Array.prototype=Object.create(WrapperObject.prototype);DracoFloat32Array.prototype.constructor=DracoFloat32Array;DracoFloat32Array.prototype.__class__=DracoFloat32Array;DracoFloat32Array.__cache__={};Module[\"DracoFloat32Array\"]=DracoFloat32Array;DracoFloat32Array.prototype[\"GetValue\"]=DracoFloat32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoFloat32Array_GetValue_1(self,index)};DracoFloat32Array.prototype[\"size\"]=DracoFloat32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoFloat32Array_size_0(self)};DracoFloat32Array.prototype[\"__destroy__\"]=DracoFloat32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoFloat32Array___destroy___0(self)};function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module[\"DracoInt8Array\"]=DracoInt8Array;DracoInt8Array.prototype[\"GetValue\"]=DracoInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,index)};DracoInt8Array.prototype[\"size\"]=DracoInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)};DracoInt8Array.prototype[\"__destroy__\"]=DracoInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)};function DracoUInt8Array(){this.ptr=_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0();getCache(DracoUInt8Array)[this.ptr]=this}DracoUInt8Array.prototype=Object.create(WrapperObject.prototype);DracoUInt8Array.prototype.constructor=DracoUInt8Array;DracoUInt8Array.prototype.__class__=DracoUInt8Array;DracoUInt8Array.__cache__={};Module[\"DracoUInt8Array\"]=DracoUInt8Array;DracoUInt8Array.prototype[\"GetValue\"]=DracoUInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt8Array_GetValue_1(self,index)};DracoUInt8Array.prototype[\"size\"]=DracoUInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt8Array_size_0(self)};DracoUInt8Array.prototype[\"__destroy__\"]=DracoUInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt8Array___destroy___0(self)};function DracoInt16Array(){this.ptr=_emscripten_bind_DracoInt16Array_DracoInt16Array_0();getCache(DracoInt16Array)[this.ptr]=this}DracoInt16Array.prototype=Object.create(WrapperObject.prototype);DracoInt16Array.prototype.constructor=DracoInt16Array;DracoInt16Array.prototype.__class__=DracoInt16Array;DracoInt16Array.__cache__={};Module[\"DracoInt16Array\"]=DracoInt16Array;DracoInt16Array.prototype[\"GetValue\"]=DracoInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt16Array_GetValue_1(self,index)};DracoInt16Array.prototype[\"size\"]=DracoInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt16Array_size_0(self)};DracoInt16Array.prototype[\"__destroy__\"]=DracoInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt16Array___destroy___0(self)};function DracoUInt16Array(){this.ptr=_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0();getCache(DracoUInt16Array)[this.ptr]=this}DracoUInt16Array.prototype=Object.create(WrapperObject.prototype);DracoUInt16Array.prototype.constructor=DracoUInt16Array;DracoUInt16Array.prototype.__class__=DracoUInt16Array;DracoUInt16Array.__cache__={};Module[\"DracoUInt16Array\"]=DracoUInt16Array;DracoUInt16Array.prototype[\"GetValue\"]=DracoUInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt16Array_GetValue_1(self,index)};DracoUInt16Array.prototype[\"size\"]=DracoUInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt16Array_size_0(self)};DracoUInt16Array.prototype[\"__destroy__\"]=DracoUInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt16Array___destroy___0(self)};function DracoInt32Array(){this.ptr=_emscripten_bind_DracoInt32Array_DracoInt32Array_0();getCache(DracoInt32Array)[this.ptr]=this}DracoInt32Array.prototype=Object.create(WrapperObject.prototype);DracoInt32Array.prototype.constructor=DracoInt32Array;DracoInt32Array.prototype.__class__=DracoInt32Array;DracoInt32Array.__cache__={};Module[\"DracoInt32Array\"]=DracoInt32Array;DracoInt32Array.prototype[\"GetValue\"]=DracoInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt32Array_GetValue_1(self,index)};DracoInt32Array.prototype[\"size\"]=DracoInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt32Array_size_0(self)};DracoInt32Array.prototype[\"__destroy__\"]=DracoInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt32Array___destroy___0(self)};function DracoUInt32Array(){this.ptr=_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0();getCache(DracoUInt32Array)[this.ptr]=this}DracoUInt32Array.prototype=Object.create(WrapperObject.prototype);DracoUInt32Array.prototype.constructor=DracoUInt32Array;DracoUInt32Array.prototype.__class__=DracoUInt32Array;DracoUInt32Array.__cache__={};Module[\"DracoUInt32Array\"]=DracoUInt32Array;DracoUInt32Array.prototype[\"GetValue\"]=DracoUInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt32Array_GetValue_1(self,index)};DracoUInt32Array.prototype[\"size\"]=DracoUInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt32Array_size_0(self)};DracoUInt32Array.prototype[\"__destroy__\"]=DracoUInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt32Array___destroy___0(self)};function MetadataQuerier(){this.ptr=_emscripten_bind_MetadataQuerier_MetadataQuerier_0();getCache(MetadataQuerier)[this.ptr]=this}MetadataQuerier.prototype=Object.create(WrapperObject.prototype);MetadataQuerier.prototype.constructor=MetadataQuerier;MetadataQuerier.prototype.__class__=MetadataQuerier;MetadataQuerier.__cache__={};Module[\"MetadataQuerier\"]=MetadataQuerier;MetadataQuerier.prototype[\"HasEntry\"]=MetadataQuerier.prototype.HasEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return!!_emscripten_bind_MetadataQuerier_HasEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntry\"]=MetadataQuerier.prototype.GetIntEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetIntEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntryArray\"]=MetadataQuerier.prototype.GetIntEntryArray=function(metadata,entry_name,out_values){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;_emscripten_bind_MetadataQuerier_GetIntEntryArray_3(self,metadata,entry_name,out_values)};MetadataQuerier.prototype[\"GetDoubleEntry\"]=MetadataQuerier.prototype.GetDoubleEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetDoubleEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetStringEntry\"]=MetadataQuerier.prototype.GetStringEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return UTF8ToString(_emscripten_bind_MetadataQuerier_GetStringEntry_2(self,metadata,entry_name))};MetadataQuerier.prototype[\"NumEntries\"]=MetadataQuerier.prototype.NumEntries=function(metadata){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return _emscripten_bind_MetadataQuerier_NumEntries_1(self,metadata)};MetadataQuerier.prototype[\"GetEntryName\"]=MetadataQuerier.prototype.GetEntryName=function(metadata,entry_id){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_id&&typeof entry_id===\"object\")entry_id=entry_id.ptr;return UTF8ToString(_emscripten_bind_MetadataQuerier_GetEntryName_2(self,metadata,entry_id))};MetadataQuerier.prototype[\"__destroy__\"]=MetadataQuerier.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MetadataQuerier___destroy___0(self)};function Decoder(){this.ptr=_emscripten_bind_Decoder_Decoder_0();getCache(Decoder)[this.ptr]=this}Decoder.prototype=Object.create(WrapperObject.prototype);Decoder.prototype.constructor=Decoder;Decoder.prototype.__class__=Decoder;Decoder.__cache__={};Module[\"Decoder\"]=Decoder;Decoder.prototype[\"DecodeArrayToPointCloud\"]=Decoder.prototype.DecodeArrayToPointCloud=function(data,data_size,out_point_cloud){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3(self,data,data_size,out_point_cloud),Status)};Decoder.prototype[\"DecodeArrayToMesh\"]=Decoder.prototype.DecodeArrayToMesh=function(data,data_size,out_mesh){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToMesh_3(self,data,data_size,out_mesh),Status)};Decoder.prototype[\"GetAttributeId\"]=Decoder.prototype.GetAttributeId=function(pc,type){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;return _emscripten_bind_Decoder_GetAttributeId_2(self,pc,type)};Decoder.prototype[\"GetAttributeIdByName\"]=Decoder.prototype.GetAttributeIdByName=function(pc,name){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);return _emscripten_bind_Decoder_GetAttributeIdByName_2(self,pc,name)};Decoder.prototype[\"GetAttributeIdByMetadataEntry\"]=Decoder.prototype.GetAttributeIdByMetadataEntry=function(pc,name,value){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);if(value&&typeof value===\"object\")value=value.ptr;else value=ensureString(value);return _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3(self,pc,name,value)};Decoder.prototype[\"GetAttribute\"]=Decoder.prototype.GetAttribute=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttribute_2(self,pc,att_id),PointAttribute)};Decoder.prototype[\"GetAttributeByUniqueId\"]=Decoder.prototype.GetAttributeByUniqueId=function(pc,unique_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(unique_id&&typeof unique_id===\"object\")unique_id=unique_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeByUniqueId_2(self,pc,unique_id),PointAttribute)};Decoder.prototype[\"GetMetadata\"]=Decoder.prototype.GetMetadata=function(pc){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;return wrapPointer(_emscripten_bind_Decoder_GetMetadata_1(self,pc),Metadata)};Decoder.prototype[\"GetAttributeMetadata\"]=Decoder.prototype.GetAttributeMetadata=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeMetadata_2(self,pc,att_id),Metadata)};Decoder.prototype[\"GetFaceFromMesh\"]=Decoder.prototype.GetFaceFromMesh=function(m,face_id,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(face_id&&typeof face_id===\"object\")face_id=face_id.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetFaceFromMesh_3(self,m,face_id,out_values)};Decoder.prototype[\"GetTriangleStripsFromMesh\"]=Decoder.prototype.GetTriangleStripsFromMesh=function(m,strip_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(strip_values&&typeof strip_values===\"object\")strip_values=strip_values.ptr;return _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2(self,m,strip_values)};Decoder.prototype[\"GetTrianglesUInt16Array\"]=Decoder.prototype.GetTrianglesUInt16Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt16Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetTrianglesUInt32Array\"]=Decoder.prototype.GetTrianglesUInt32Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt32Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetAttributeFloat\"]=Decoder.prototype.GetAttributeFloat=function(pa,att_index,out_values){var self=this.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(att_index&&typeof att_index===\"object\")att_index=att_index.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloat_3(self,pa,att_index,out_values)};Decoder.prototype[\"GetAttributeFloatForAllPoints\"]=Decoder.prototype.GetAttributeFloatForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeIntForAllPoints\"]=Decoder.prototype.GetAttributeIntForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt8ForAllPoints\"]=Decoder.prototype.GetAttributeInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt8ForAllPoints\"]=Decoder.prototype.GetAttributeUInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt16ForAllPoints\"]=Decoder.prototype.GetAttributeInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt16ForAllPoints\"]=Decoder.prototype.GetAttributeUInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt32ForAllPoints\"]=Decoder.prototype.GetAttributeInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt32ForAllPoints\"]=Decoder.prototype.GetAttributeUInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeDataArrayForAllPoints\"]=Decoder.prototype.GetAttributeDataArrayForAllPoints=function(pc,pa,data_type,out_size,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(data_type&&typeof data_type===\"object\")data_type=data_type.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5(self,pc,pa,data_type,out_size,out_values)};Decoder.prototype[\"SkipAttributeTransform\"]=Decoder.prototype.SkipAttributeTransform=function(att_type){var self=this.ptr;if(att_type&&typeof att_type===\"object\")att_type=att_type.ptr;_emscripten_bind_Decoder_SkipAttributeTransform_1(self,att_type)};Decoder.prototype[\"GetEncodedGeometryType_Deprecated\"]=Decoder.prototype.GetEncodedGeometryType_Deprecated=function(in_buffer){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;return _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1(self,in_buffer)};Decoder.prototype[\"DecodeBufferToPointCloud\"]=Decoder.prototype.DecodeBufferToPointCloud=function(in_buffer,out_point_cloud){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2(self,in_buffer,out_point_cloud),Status)};Decoder.prototype[\"DecodeBufferToMesh\"]=Decoder.prototype.DecodeBufferToMesh=function(in_buffer,out_mesh){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToMesh_2(self,in_buffer,out_mesh),Status)};Decoder.prototype[\"__destroy__\"]=Decoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Decoder___destroy___0(self)};(function(){function setupEnums(){Module[\"ATTRIBUTE_INVALID_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM();Module[\"ATTRIBUTE_NO_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM();Module[\"ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM();Module[\"ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM();Module[\"INVALID\"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module[\"POSITION\"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module[\"NORMAL\"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module[\"COLOR\"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module[\"TEX_COORD\"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module[\"GENERIC\"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC();Module[\"INVALID_GEOMETRY_TYPE\"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module[\"POINT_CLOUD\"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module[\"TRIANGULAR_MESH\"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module[\"DT_INVALID\"]=_emscripten_enum_draco_DataType_DT_INVALID();Module[\"DT_INT8\"]=_emscripten_enum_draco_DataType_DT_INT8();Module[\"DT_UINT8\"]=_emscripten_enum_draco_DataType_DT_UINT8();Module[\"DT_INT16\"]=_emscripten_enum_draco_DataType_DT_INT16();Module[\"DT_UINT16\"]=_emscripten_enum_draco_DataType_DT_UINT16();Module[\"DT_INT32\"]=_emscripten_enum_draco_DataType_DT_INT32();Module[\"DT_UINT32\"]=_emscripten_enum_draco_DataType_DT_UINT32();Module[\"DT_INT64\"]=_emscripten_enum_draco_DataType_DT_INT64();Module[\"DT_UINT64\"]=_emscripten_enum_draco_DataType_DT_UINT64();Module[\"DT_FLOAT32\"]=_emscripten_enum_draco_DataType_DT_FLOAT32();Module[\"DT_FLOAT64\"]=_emscripten_enum_draco_DataType_DT_FLOAT64();Module[\"DT_BOOL\"]=_emscripten_enum_draco_DataType_DT_BOOL();Module[\"DT_TYPES_COUNT\"]=_emscripten_enum_draco_DataType_DT_TYPES_COUNT();Module[\"OK\"]=_emscripten_enum_draco_StatusCode_OK();Module[\"DRACO_ERROR\"]=_emscripten_enum_draco_StatusCode_DRACO_ERROR();Module[\"IO_ERROR\"]=_emscripten_enum_draco_StatusCode_IO_ERROR();Module[\"INVALID_PARAMETER\"]=_emscripten_enum_draco_StatusCode_INVALID_PARAMETER();Module[\"UNSUPPORTED_VERSION\"]=_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION();Module[\"UNKNOWN_VERSION\"]=_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION()}if(runtimeInitialized)setupEnums();else addOnInit(setupEnums)})();if(typeof Module[\"onModuleParsed\"]===\"function\"){Module[\"onModuleParsed\"]()}Module[\"Decoder\"].prototype.GetEncodedGeometryType=function(array){if(array.__class__&&array.__class__===Module.DecoderBuffer){return Module.Decoder.prototype.GetEncodedGeometryType_Deprecated(array)}if(array.byteLength<8)return Module.INVALID_GEOMETRY_TYPE;switch(array[7]){case 0:return Module.POINT_CLOUD;case 1:return Module.TRIANGULAR_MESH;default:return Module.INVALID_GEOMETRY_TYPE}};\n\n\n  return DracoDecoderModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DracoDecoderModule;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DracoDecoderModule; });\nelse if (typeof exports === 'object')\n  exports[\"DracoDecoderModule\"] = DracoDecoderModule;\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/draco_decoder_gltf.js",
    "content": "\nvar DracoDecoderModule = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DracoDecoderModule = {})  {\n\nvar Module=typeof DracoDecoderModule!=\"undefined\"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module[\"onRuntimeInitialized\"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};Module[\"onModuleParsed\"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!==\"string\")return false;const version=versionString.split(\".\");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module[\"isVersionSupported\"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts[\"initial\"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(\n// EMSCRIPTEN_START_ASM\nfunction instantiate(ia){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]==\"=\")-(o[j-1]==\"=\");for(;a<j;a+=4){g=f[o.charCodeAt(a+1)];h=f[o.charCodeAt(a+2)];m[i++]=f[o.charCodeAt(a)]<<2|g>>4;if(i<k)m[i++]=g<<4|h>>2;if(i<k)m[i++]=h<<6|f[o.charCodeAt(a+3)]}}function p(q){l(e,1028,\"YAQAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAE41ZHJhY28yOEF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1FAADYKwAAOAQAAOAGAABfX25leHRfcHJpbWUgb3ZlcmZsb3cAdmVjdG9yAHN0ZDo6ZXhjZXB0aW9uAHNraXBfYXR0cmlidXRlX3RyYW5zZm9ybQBiYWRfYXJyYXlfbmV3X2xlbmd0aABiYXNpY19zdHJpbmcAc3RkOjpiYWRfYWxsb2MARFJBQ08AVXNpbmcgaW5jb21wYXRpYmxlIGRlY29kZXIgZm9yIHRoZSBpbnB1dCBnZW9tZXRyeS4ARmFpbGVkIHRvIGRlY29kZSBwb2ludCBhdHRyaWJ1dGVzLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZGVjb2Rlci4AVW5zdXBwb3J0ZWQgbWlub3IgdmVyc2lvbi4AVW5zdXBwb3J0ZWQgbWFqb3IgdmVyc2lvbi4ASW5wdXQgaXMgbm90IGEgbWVzaC4AVW5zdXBwb3J0ZWQgZ2VvbWV0cnkgdHlwZS4ATm90IGEgRHJhY28gZmlsZS4AVW5zdXBwb3J0ZWQgZW5jb2RpbmcgbWV0aG9kLgBGYWlsZWQgdG8gZGVjb2RlIG1ldGFkYXRhLgBGYWlsZWQgdG8gZGVjb2RlIGdlb21ldHJ5IGRhdGEuAFB1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxsZWQhAAAAAAAAALQGAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAALAAAAGAAAABkAAABONWRyYWNvMzBBdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1FAAAAANgrAACIBgAA4AYAAE41ZHJhY28xOEF0dHJpYnV0ZVRyYW5zZm9ybUUAAAAAsCsAAMAGAAAAAAAAbAcAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAAE41ZHJhY28xN0F0dHJpYnV0ZXNEZWNvZGVyRQBONWRyYWNvMjZBdHRyaWJ1dGVzRGVjb2RlckludGVyZmFjZUUAAAAAsCsAADwHAADYKwAAIAcAAGQHAAAAAAAAzAcAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAE41ZHJhY28yNlNlcXVlbnRpYWxBdHRyaWJ1dGVEZWNvZGVyRQAAAACwKwAApAcAAP////8AAAAARAgAAC8AAAAwAAAAHAAAADEAAAAyAAAAHwAAACAAAAAhAAAAMwAAADQAAAA1AAAANgAAADcAAABONWRyYWNvMzdTZXF1ZW50aWFsQXR0cmlidXRlRGVjb2RlcnNDb250cm9sbGVyRQDYKwAAFAgAAGwHAAAAAAAAuAgAADgAAAA5AAAAOgAAACkAAAAqAAAAKwAAADsAAAAtAAAAPAAAAD0AAAA+AAAAPwAAAEAAAABONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZURlY29kZXJFANgrAACMCAAAzAcAAAAAAABECwAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAE41ZHJhY28zN1ByZWRpY3Rpb25TY2hlbWVUeXBlZERlY29kZXJJbnRlcmZhY2VJaWlFRQBONWRyYWNvMzJQcmVkaWN0aW9uU2NoZW1lRGVjb2RlckludGVyZmFjZUUATjVkcmFjbzI1UHJlZGljdGlvblNjaGVtZUludGVyZmFjZUUAsCsAAOgKAADYKwAAvQoAAAwLAADYKwAAiQoAABQLAADYKwAANQoAACALAADYKwAAnwkAACwLAADYKwAA/AgAADgLAAAAAAAAOAsAAEEAAABNAAAAIwAAAEQAAAAjAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAIwAAAAAAAAAsCwAAQQAAAE4AAAAjAAAARAAAACMAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAAAjAAAAAAAAAKwMAABPAAAAUAAAAFEAAABEAAAAUgAAAEYAAABHAAAASAAAAEkAAABKAAAAUwAAAFQAAABONWRyYWNvNTZNZXNoUHJlZGljdGlvblNjaGVtZUNvbnN0cmFpbmVkTXVsdGlQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAADYKwAA+AsAADgLAAAAAAAAmA0AAFUAAABWAAAAVwAAAEQAAABYAAAAWQAAAFoAAABbAAAASQAAAEoAAABcAAAAXQAAAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAANgrAADwDAAAOAsAAAAAAACEDgAAXgAAAF8AAABgAAAARAAAAGEAAABiAAAAYwAAAGQAAABJAAAASgAAAGUAAABmAAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAAAA2CsAANwNAAA4CwAAAAAAAAwQAABnAAAAaAAAAGkAAABqAAAAawAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAAsCsAAFcPAADYKwAArA4AAAQQAAAAAAAABBAAAGcAAABsAAAAIwAAAGoAAAAjAAAAAAAAAJgRAABBAAAAbQAAAG4AAABEAAAAbwAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAHAAAABONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1EZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAADYKwAAAhEAACwLAADYKwAAbBAAAIwRAAAAAAAAjBEAAEEAAABxAAAAIwAAAEQAAAAjAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAIwAAAAAAAAC8EgAAcgAAAHMAAAB0AAAARAAAAHUAAABGAAAARwAAAEgAAABJAAAASgAAAHYAAAB3AAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAA2CsAABQSAACMEQAAAAAAAJwTAAB4AAAAeQAAAHoAAABEAAAAewAAAHwAAAB9AAAAfgAAAEkAAABKAAAAfwAAAIAAAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAAADYKwAAABMAAIwRAAAAAAAAeBQAAIEAAACCAAAAgwAAAEQAAACEAAAAhQAAAIYAAACHAAAASQAAAEoAAACIAAAAiQAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA2CsAAOATAACMEQAAAAAAAOQVAACKAAAAiwAAAIwAAACNAAAAjgAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQCwKwAAPhUAANgrAACgFAAA3BUAAAAAAADcFQAAigAAAI8AAAAjAAAAjQAAACMAAAAAAAAAoBYAAEEAAACQAAAAkQAAAEQAAACSAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAkwAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFRUUAAAAA2CsAAEQWAAAsCwAAAAAAABQXAACUAAAAlQAAAJYAAAApAAAAKgAAAJcAAAA7AAAALQAAADwAAACYAAAAmQAAAJoAAACbAAAATjVkcmFjbzMyU2VxdWVudGlhbE5vcm1hbEF0dHJpYnV0ZURlY29kZXJFAADYKwAA6BYAALgIAAAAAAAASBkAAJwAAACdAAAAngAAAJ8AAACgAAAAoQAAAKIAAACjAAAApAAAAKUAAACmAAAApwAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRUVFAADYKwAAwxgAACALAADYKwAAFRgAADAZAADYKwAAWBcAADwZAAAAAAAAABsAAKgAAACpAAAAqgAAAKsAAACsAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAACwKwAAMxoAANgrAABwGQAA+BoAAAAAAACkHAAArQAAAK4AAACvAAAAnwAAALAAAACxAAAAsgAAALMAAACkAAAApQAAALQAAAC1AAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAAANgrAAD0GwAAMBkAANgrAABEGwAAmBwAAAAAAABAHgAAtgAAALcAAAC4AAAAuQAAALoAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAsCsAAIIdAADYKwAAzBwAADgeAAAAAAAA+B4AALsAAAC8AAAAvQAAAJ8AAAC+AAAAvwAAAMAAAADBAAAApAAAAKUAAADCAAAAwwAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUAAAAA2CsAAIQeAAAwGQAAAAAAAHwfAADEAAAAxQAAAMYAAAApAAAAKgAAAMcAAAA7AAAALQAAADwAAADIAAAAPgAAAD8AAADJAAAAygAAAMsAAABONWRyYWNvMzhTZXF1ZW50aWFsUXVhbnRpemF0aW9uQXR0cmlidXRlRGVjb2RlckUAAAAA2CsAAEgfAAC4CAAAAAAAANwfAADMAAAAzQAAAM4AAADPAAAAIwAAANAAAADRAAAA0gAAANMAAADUAAAA1QAAANYAAAAjAAAATjVkcmFjbzExTWVzaERlY29kZXJFAAAA2CsAAMQfAACcJwAAAAAAAEggAADXAAAA2AAAAM4AAADZAAAA2gAAANAAAADRAAAA0gAAANsAAADcAAAA3QAAAN4AAADfAAAATjVkcmFjbzIyTWVzaEVkZ2VicmVha2VyRGVjb2RlckUAAAAA2CsAACQgAADcHwAAAAAAADwhAADgAAAA4QAAAOIAAADjAAAA5AAAAOUAAADmAAAA5wAAAOgAAADpAAAA/////wAAAACcIQAA6gAAAOsAAADsAAAA7QAAAO4AAADvAAAA8AAAAPEAAADyAAAA8wAAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckRlY29kZXJJbXBsSU5TXzMxTWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsRGVjb2RlckVFRQBONWRyYWNvMzVNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbEludGVyZmFjZUUAAACwKwAABCEAANgrAAC4IAAANCEAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckRlY29kZXJJbXBsSU5TXzM4TWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsVmFsZW5jZURlY29kZXJFRUUAANgrAABIIQAANCEAAAAAAACYIgAA9AAAAPUAAAD2AAAATjVkcmFjbzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMV9FRUVFAE41ZHJhY28xM1RyYXZlcnNlckJhc2VJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQCwKwAAKSIAANgrAAC8IQAAkCIAAAAAAACQIgAA9wAAAPgAAAD2\");l(e,8900,\"AQAAAAMAAAAFAAAABwAAAAAAAACYIwAA+QAAAPoAAAD7AAAA/AAAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAE41ZHJhY28xNVBvaW50c1NlcXVlbmNlckUAAAAAsCsAAHMjAADYKwAA7CIAAJAjAAD/////AAAAAIgkAAD9AAAA/gAAAP8AAABONWRyYWNvMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAAsCsAACUkAADYKwAAvCMAAIAkAAAAAAAAgCQAAAABAAABAQAA/wAAAAAAAABAJQAAAgEAAAMBAAAEAQAABQEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAAAA2CsAAMAkAACQIwAAAAAAAMAlAAAGAQAABwEAAP8AAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQDYKwAAYCUAAIAkAAAAAAAAcCYAAAgBAAAJAQAACgEAAAsBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMl9FRUVFRUUAANgrAADkJQAAkCM=\");l(e,9860,\"3CYAAMwAAAAMAQAAzgAAAM8AAAANAQAA0AAAANEAAADSAAAA0wAAANQAAADVAAAA1gAAAA4BAABONWRyYWNvMjFNZXNoU2VxdWVudGlhbERlY29kZXJFANgrAAC8JgAA3B8AAAAAAAAcJwAADwEAABABAAARAQAAEgEAAE41ZHJhY28xNUxpbmVhclNlcXVlbmNlckUAAADYKwAAACcAAJAjAAAAAAAAnCcAAMwAAAATAQAAFAEAAM8AAAAjAAAAFQEAANEAAADSAAAA0w==\");l(e,10080,\"RmFpbGVkIHRvIHBhcnNlIERyYWNvIGhlYWRlci4ATjVkcmFjbzE3UG9pbnRDbG91ZERlY29kZXJFAAAAsCsAAH4nAAABAAAAAQAAAAIAAAACAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAAAQ==\");l(e,10211,\"wAAAAMAAAADAAAAAwP//////////AAAAACAoAAAWAQAAFwEAABgBAAAZAQAATjVkcmFjbzRNZXNoRQAAANgrAAAQKAAAZCgAAP////8AAAAAAAAAAGQoAAAaAQAAGwEAABwBAAAdAQAATjVkcmFjbzEwUG9pbnRDbG91ZEUAAAAAsCsAAEwo\");l(e,10356,\"AgAAAAMAAAAFAAAABwAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAfwAAAIMAAACJAAAAiwAAAJUAAACXAAAAnQAAAKMAAACnAAAArQAAALMAAAC1AAAAvwAAAMEAAADFAAAAxwAAANMAAAABAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB5AAAAfwAAAIMAAACJAAAAiwAAAI8AAACVAAAAlwAAAJ0AAACjAAAApwAAAKkAAACtAAAAswAAALUAAAC7AAAAvwAAAMEAAADFAAAAxwAAANEAAAAAAAAACgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUAypo7AAAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OU4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAANgrAADoKgAAbC0AAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAANgrAAAYKwAADCsAAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAANgrAABIKwAADCsAAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FANgrAAB4KwAAbCsAAAAAAAA8KwAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAAAAAAAICwAAB4BAAAmAQAAIAEAACEBAAAiAQAAJwEAACgBAAApAQAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAANgrAAD4KwAAPCsAAAAAAACQLAAADgAAACoBAAArAQAAAAAAALgsAAAOAAAALAEAAC0BAAAAAAAAeCwAAA4AAAAuAQAALwEAAFN0OWV4Y2VwdGlvbgAAAACwKwAAaCwAAFN0OWJhZF9hbGxvYwAAAADYKwAAgCwAAHgsAABTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAA2CsAAJwsAACQLAAAAAAAAOgsAAABAAAAMAEAADEBAABTdDExbG9naWNfZXJyb3IA2CsAANgsAAB4LAAAAAAAABwtAAABAAAAMgEAADEBAABTdDEybGVuZ3RoX2Vycm9yAAAAANgrAAAILQAA6CwAAAAAAABQLQAAAQAAADMBAAAxAQAAU3QxMm91dF9vZl9yYW5nZQAAAADYKwAAPC0AAOgsAABTdDl0eXBlX2luZm8AAAAAsCsAAFwt\");l(e,11636,\"8C8B\")}var r=new ArrayBuffer(16);var s=new Int32Array(r);var t=new Float32Array(r);var u=new Float64Array(r);function v(){throw new Error(\"abort\")}function w(x){t[2]=x}function y(z){return s[z]}function ha(q){var A=q.a;var B=A.a;var C=B.buffer;B.grow=fa;var D=new Int8Array(C);var E=new Int16Array(C);var F=new Int32Array(C);var G=new Uint8Array(C);var H=new Uint16Array(C);var I=new Uint32Array(C);var J=new Float32Array(C);var K=new Float64Array(C);var L=Math.imul;var M=Math.fround;var N=Math.abs;var O=Math.clz32;var P=Math.min;var Q=Math.max;var R=Math.floor;var S=Math.ceil;var T=Math.trunc;var U=Math.sqrt;var V=A.b;var W=A.c;var X=A.d;var Y=A.e;var Z=77808;var _=0;\n// EMSCRIPTEN_START_FUNCS\nfunction mc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!a){return 1}e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];a:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break a}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;b:{switch(o|0){case 0:e=a;f=b;g=d;a=0;d=0;j=Z+-64|0;Z=j;F[j+56>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+32>>2]=0;F[j+36>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;F[j+8>>2]=0;F[j+12>>2]=0;c:{if(!Nd(j+8|0,c)){break c}if(!Md(j+8|0,c)|(F[j+20>>2]?0:e)){break c}hc(c,0,0);if(e){s=f<<2;t=F[j+36>>2];u=F[j+48>>2];x=F[j+24>>2];l=F[j+56>>2];i=F[j+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((i|0)<=0){break d}i=i-1|0;F[j+52>>2]=i;l=G[i+u|0]|l<<8;F[j+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=F[(a<<2)+x>>2];b=(r<<3)+t|0;l=(L(F[b>>2],l>>>12|0)+a|0)-F[b+4>>2]|0;F[j+56>>2]=l;if((f|0)>0){a=0;if(!G[c+36|0]|r>>>0>32){break c}o=d+f|0;e:{if(!r){ma(g+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=F[c+32>>2];h=F[c+28>>2];q=F[c+24>>2];while(1){k=0;a=b;m=0;n=0;if((r|0)!=1){while(1){p=q+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=G[p|0];b=a+1|0;F[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<<k|m;m=0;v=q+(a>>>3|0)|0;if(v>>>0<h>>>0){m=G[v|0];b=a+1|0;F[c+32>>2]=b;m=m>>>(a&7)&1;a=b}v=k|1;k=k+2|0;m=p|m<<v;n=n+2|0;if((y|0)!=(n|0)){continue}break}}n=g+(d<<2)|0;if(z){p=q+(a>>>3|0)|0;if(p>>>0<h>>>0){p=G[p|0];b=a+1|0;F[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}m=a<<k|m}F[n>>2]=m;d=d+1|0;if((o|0)!=(d|0)){continue}break}}d=o}w=f+w|0;if(e>>>0>w>>>0){continue}break}}D[c+36|0]=0;f=F[c+20>>2];a=0;m=F[c+32>>2]+7|0;a=m>>>0<7?1:a;m=a<<29|m>>>3;b=m+F[c+16>>2]|0;a=(a>>>3|0)+f|0;F[c+16>>2]=b;F[c+20>>2]=b>>>0<m>>>0?a+1|0:a;a=1}b=F[j+36>>2];if(b){F[j+40>>2]=b;ja(b)}b=F[j+24>>2];if(b){F[j+28>>2]=b;ja(b)}b=F[j+8>>2];if(b){F[j+12>>2]=b;ja(b)}Z=j- -64|0;return a;case 1:break b;default:break a}}b=0;e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];g:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break g}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;h:{switch(o-1|0){case 8:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;i:{j:{if(!H[c+38>>1]){break j}if(!Ta(1,h+12|0,c)){break j}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break j}b=F[h>>2];a=F[h+4>>2]-b>>2;k:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break k}if(a>>>0<=i>>>0){break k}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break i}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break i}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;l:{m:{n:{o:{t=p&3;switch(t|0){case 0:break m;case 3:break o;default:break n}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break i}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break l}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break j}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;p:{if(b>>>0<=32767){qa(a,8192-(b>>>2|0)|0);break p}if((b|0)==32768){break p}F[h+20>>2]=d+32768}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;q:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break q}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break j}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>8192){break j}r:{if(a>>>0>=d>>>0){break r}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break r}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==8192}g=k}s:{if(!g|(F[e+20>>2]?0:o)){break s}d=0;k=Z-16|0;Z=k;t:{if(!Sa(1,k+8|0,c)){break t}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0<b>>>0|a>>>0<j>>>0){break t}a=i+j|0;g=b+f|0;a=g>>>0<f>>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break t}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];u:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break u}v:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break t}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break u;case 1:if(b>>>0<3){break t}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break u;default:break v}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+32768;d=a>>>0<8355840}Z=k+16|0;if(!d){break s}if(!o){m=1;break s}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){w:{if(a>>>0>32767){break w}while(1){if((b|0)<=0){break w}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<32768){continue}break}}m=a&8191;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>13|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 9:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;x:{y:{if(!H[c+38>>1]){break y}if(!Ta(1,h+12|0,c)){break y}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break y}b=F[h>>2];a=F[h+4>>2]-b>>2;z:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break z}if(a>>>0<=i>>>0){break z}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break x}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break x}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;A:{B:{C:{D:{e=p&3;switch(e|0){case 0:break B;case 3:break D;default:break C}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break x}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break A}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break y}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;E:{if(b>>>0<=131071){qa(a,32768-(b>>>2|0)|0);break E}if((b|0)==131072){break E}F[h+20>>2]=d+131072}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;F:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break F}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break y}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>32768){break y}G:{if(a>>>0>=d>>>0){break G}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break G}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==32768}e=k}H:{if(!e|(F[g+20>>2]?0:o)){break H}d=0;f=Z-16|0;Z=f;I:{if(!Sa(1,f+8|0,c)){break I}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0<a>>>0|e>>>0<j>>>0){break I}e=i+j|0;k=a+b|0;e=k>>>0<b>>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break I}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];J:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break J}K:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break I}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break J;case 1:if(a>>>0<3){break I}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break J;default:break K}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+131072;d=a>>>0<33423360}Z=f+16|0;if(!d){break H}if(!o){m=1;break H}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){L:{if(a>>>0>131071){break L}while(1){if((b|0)<=0){break L}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<131072){continue}break}}m=a&32767;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>15|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 10:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;M:{N:{if(!H[c+38>>1]){break N}if(!Ta(1,h+12|0,c)){break N}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break N}b=F[h>>2];a=F[h+4>>2]-b>>2;O:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break O}if(a>>>0<=i>>>0){break O}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break M}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break M}t=F[c>>2];p=G[t+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;P:{Q:{R:{S:{u=p&3;switch(u|0){case 0:break Q;case 3:break S;default:break R}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break M}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break P}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break N}i=G[f+t|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=i<<(l<<3|6)|a;l=l+1|0;if((u|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;T:{if(b>>>0<=262143){qa(a,65536-(b>>>2|0)|0);break T}if((b|0)==262144){break T}F[h+20>>2]=d+262144}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;U:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break U}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break N}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>65536){break N}V:{if(a>>>0>=d>>>0){break V}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break V}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==65536}e=k}W:{if(!e|(F[g+20>>2]?0:o)){break W}d=0;e=Z-16|0;Z=e;X:{if(!Sa(1,e+8|0,c)){break X}a=F[c+8>>2];f=F[c+16>>2];k=a-f|0;j=F[e+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[e+8>>2];if((j|0)==(a|0)&k>>>0<b>>>0|a>>>0<j>>>0){break X}a=i+j|0;k=b+f|0;a=k>>>0<f>>>0?a+1|0:a;F[c+16>>2]=k;F[c+20>>2]=a;if((b|0)<=0){break X}a=f+F[c>>2]|0;F[g+48>>2]=a;c=b-1|0;f=c+a|0;k=G[f|0];Y:{if(k>>>0<=63){F[g+52>>2]=c;a=G[f|0]&63;break Y}Z:{switch((k>>>6|0)-1|0){case 0:if(b>>>0<2){break X}b=b-2|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Y;case 1:if(b>>>0<3){break X}b=b-3|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Y;default:break Z}}b=b-4|0;F[g+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+262144;d=a>>>0<66846720}Z=e+16|0;if(!d){break W}if(!o){m=1;break W}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){_:{if(a>>>0>262143){break _}while(1){if((b|0)<=0){break _}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<262144){continue}break}}m=a&65535;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>16|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 11:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;$:{aa:{if(!H[c+38>>1]){break aa}if(!Ta(1,h+12|0,c)){break aa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break aa}b=F[h>>2];a=F[h+4>>2]-b>>2;ba:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break ba}if(a>>>0<=i>>>0){break ba}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break $}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break $}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;ca:{da:{ea:{fa:{e=p&3;switch(e|0){case 0:break da;case 3:break fa;default:break ea}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break $}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ca}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break aa}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;ga:{if(b>>>0<=1048575){qa(a,262144-(b>>>2|0)|0);break ga}if((b|0)==1048576){break ga}F[h+20>>2]=d- -1048576}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;ha:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break ha}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break aa}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>262144){break aa}ia:{if(a>>>0>=d>>>0){break ia}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break ia}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==262144}e=k}ja:{if(!e|(F[g+20>>2]?0:o)){break ja}d=0;f=Z-16|0;Z=f;ka:{if(!Sa(1,f+8|0,c)){break ka}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0<a>>>0|e>>>0<j>>>0){break ka}e=i+j|0;k=a+b|0;e=k>>>0<b>>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break ka}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];la:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break la}ma:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break ka}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break la;case 1:if(a>>>0<3){break ka}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break la;default:break ma}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a- -1048576;d=a>>>0<267386880}Z=f+16|0;if(!d){break ja}if(!o){m=1;break ja}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){na:{if(a>>>0>1048575){break na}while(1){if((b|0)<=0){break na}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<1048576){continue}break}}m=a&262143;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>18|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 12:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;oa:{pa:{if(!H[c+38>>1]){break pa}if(!Ta(1,h+12|0,c)){break pa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break pa}b=F[h>>2];a=F[h+4>>2]-b>>2;qa:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break qa}if(a>>>0<=i>>>0){break qa}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break oa}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break oa}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;ra:{sa:{ta:{ua:{t=p&3;switch(t|0){case 0:break sa;case 3:break ua;default:break ta}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break oa}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ra}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break pa}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;va:{if(b>>>0<=2097151){qa(a,524288-(b>>>2|0)|0);break va}if((b|0)==2097152){break va}F[h+20>>2]=d+2097152}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;wa:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break wa}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break pa}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>524288){break pa}xa:{if(a>>>0>=d>>>0){break xa}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break xa}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==524288}g=k}ya:{if(!g|(F[e+20>>2]?0:o)){break ya}d=0;k=Z-16|0;Z=k;za:{if(!Sa(1,k+8|0,c)){break za}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0<b>>>0|a>>>0<j>>>0){break za}a=i+j|0;g=b+f|0;a=g>>>0<f>>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break za}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];Aa:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break Aa}Ba:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break za}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Aa;case 1:if(b>>>0<3){break za}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Aa;default:break Ba}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+2097152;d=a>>>0<534773760}Z=k+16|0;if(!d){break ya}if(!o){m=1;break ya}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){Ca:{if(a>>>0>2097151){break Ca}while(1){if((b|0)<=0){break Ca}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<2097152){continue}break}}m=a&524287;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>19|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 17:b=Ld(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=Z+-64|0;Z=b;F[b+56>>2]=0;F[b+48>>2]=0;F[b+52>>2]=0;F[b+40>>2]=0;F[b+44>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b+12>>2]=0;Da:{if(!Nd(b+8|0,c)|(F[b+20>>2]?0:a)){break Da}if(!Md(b+8|0,c)){break Da}if(!a){f=1;break Da}m=F[b+52>>2];c=F[b+56>>2];e=F[b+36>>2];g=F[b+48>>2];o=F[b+24>>2];while(1){Ea:{if(c>>>0>16383){break Ea}while(1){if((m|0)<=0){break Ea}m=m-1|0;F[b+52>>2]=m;c=G[g+m|0]|c<<8;F[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;j=F[o+(f<<2)>>2];r=e+(j<<3)|0;c=(L(F[r>>2],c>>>12|0)+f|0)-F[r+4>>2]|0;F[b+56>>2]=c;F[(k<<2)+d>>2]=j;f=1;k=k+1|0;if((k|0)!=(a|0)){continue}break}}a=F[b+36>>2];if(a){F[b+40>>2]=a;ja(a)}a=F[b+24>>2];if(a){F[b+28>>2]=a;ja(a)}a=F[b+8>>2];if(a){F[b+12>>2]=a;ja(a)}Z=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Ld(a,c,d)}f=b}return f}function ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,I=0,J=0,K=0,M=0,N=0,O=0;u=Z+-64|0;Z=u;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){f=F[b>>2];ja(b);b=f;if(b){continue}break}}b=0;F[a+144>>2]=0;f=F[a+140>>2];a:{if(!f){break a}if(f>>>0>=4){c=f&-4;while(1){e=b<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;b=b+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}f=f&3;if(!f){break a}d=0;while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}F[a+148>>2]=0}b:{c:{if(!Da(1,u+60|0,F[F[a+4>>2]+32>>2])){break c}F[a+156>>2]=F[u+60>>2];if(!Da(1,u+56|0,F[F[a+4>>2]+32>>2])){break c}e=F[u+56>>2];if(e>>>0>1431655765){break c}b=F[a+156>>2];d=L(e,3);if(b>>>0>d>>>0){break c}f=b>>31;f=ki(b-1|0,f-!b|0,b,f);b=_;c=b>>>1|0;b=(b&1)<<31|f>>>1;if(!c&b>>>0<d>>>1>>>0){break c}b=F[F[a+4>>2]+32>>2];c=F[b+8>>2];k=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];if((k|0)<=(d|0)&f>>>0>=c>>>0|(d|0)>(k|0)){break c}k=G[f+F[b>>2]|0];f=f+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;if(!Da(1,u+52|0,b)){break c}q=F[u+52>>2];if(q>>>0>e>>>0|e>>>0>q+((q>>>0)/3|0)>>>0){break c}if(!Da(1,u+48|0,F[F[a+4>>2]+32>>2])){break c}d=F[u+48>>2];if(d>>>0>q>>>0){break c}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;Dd(A);Cd(A,k);if(!_c(F[a+8>>2],e,d+F[a+156>>2]|0)){break c}b=F[a+156>>2];D[u+8|0]=1;Ea(a+120|0,b+d|0,u+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break c}c=a+232|0;b=c;F[b+144>>2]=a;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f>>2]+F[f+16>>2]|0;e=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];e=F[e+8>>2]-F[e+16>>2]|0;N=b,O=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[N+38>>1]=O;F[b>>2]=f;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=e;F[b+12>>2]=0;N=b,O=$[F[F[a>>2]+36>>2]](a)|0,F[N+148>>2]=O;F[a+372>>2]=k;F[a+384>>2]=d+F[a+156>>2];J=Ja(u+8|0);k=J;f=0;j=Z-16|0;Z=j;d:{if(!Aa(b+80|0,b)){break d}if(!yd(c)){break d}b=F[c+4>>2];F[k>>2]=F[c>>2];F[k+4>>2]=b;b=F[c+36>>2];F[k+32>>2]=F[c+32>>2];F[k+36>>2]=b;b=F[c+28>>2];F[k+24>>2]=F[c+24>>2];F[k+28>>2]=b;b=F[c+20>>2];F[k+16>>2]=F[c+16>>2];F[k+20>>2]=b;b=F[c+12>>2];F[k+8>>2]=F[c+8>>2];F[k+12>>2]=b;F[c+176>>2]=2;F[c+180>>2]=7;b=F[c+152>>2];if((b|0)<0){break d}F[j+12>>2]=0;f=2;h=F[c+156>>2];e=F[c+160>>2]-h>>2;e:{if(e>>>0<b>>>0){Fa(c+156|0,b-e|0,j+12|0);f=F[c+176>>2];d=F[c+180>>2];break e}d=7;if(b>>>0>=e>>>0){break e}F[c+160>>2]=h+(b<<2)}e=c+184|0;d=(d-f|0)+1|0;b=F[c+188>>2];f=F[c+184>>2];s=(b-f|0)/12|0;f:{if(d>>>0>s>>>0){h=0;b=d-s|0;o=F[e+8>>2];f=F[e+4>>2];g:{if(b>>>0<=(o-f|0)/12>>>0){if(b){b=L(b,12)-12|0;b=(b-((b>>>0)%12|0)|0)+12|0;f=ma(f,0,b)+b|0}F[e+4>>2]=f;break g}h:{i:{j:{s=F[e>>2];g=(f-s|0)/12|0;d=g+b|0;if(d>>>0<357913942){o=(o-s|0)/12|0;i=o<<1;o=o>>>0>=178956970?357913941:d>>>0<i>>>0?i:d;if(o){if(o>>>0>=357913942){break j}h=ka(L(o,12))}d=L(g,12)+h|0;b=L(b,12)-12|0;g=(b-((b>>>0)%12|0)|0)+12|0;b=ma(d,0,g);g=b+g|0;h=L(o,12)+h|0;if((f|0)==(s|0)){break i}while(1){d=d-12|0;f=f-12|0;F[d>>2]=F[f>>2];F[d+4>>2]=F[f+4>>2];F[d+8>>2]=F[f+8>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((f|0)!=(s|0)){continue}break}F[e+8>>2]=h;b=F[e+4>>2];F[e+4>>2]=g;f=F[e>>2];F[e>>2]=d;if((b|0)==(f|0)){break h}while(1){d=b-12|0;h=F[d>>2];if(h){F[b-8>>2]=h;ja(h)}b=d;if((f|0)!=(b|0)){continue}break}break h}break b}oa();v()}F[e+8>>2]=h;F[e+4>>2]=g;F[e>>2]=b}if(f){ja(f)}}d=F[c+188>>2];break f}if(d>>>0>=s>>>0){d=b;break f}d=f+L(d,12)|0;if((d|0)!=(b|0)){while(1){f=b-12|0;h=F[f>>2];if(h){F[b-8>>2]=h;ja(h)}b=f;if((d|0)!=(b|0)){continue}break}}F[c+188>>2]=d}s=c+196|0;f=F[c+184>>2];b=(d-f|0)/12|0;o=F[c+196>>2];h=F[c+200>>2]-o>>2;k:{if(b>>>0>h>>>0){qa(s,b-h|0);f=F[c+184>>2];d=F[c+188>>2];break k}if(b>>>0>=h>>>0){break k}F[c+200>>2]=o+(b<<2)}if((d|0)==(f|0)){f=1;break d}b=0;while(1){l:{if(!Da(1,j+8|0,k)){break l}f=F[j+8>>2];d=F[c+148>>2];if(f>>>0>(F[d+4>>2]-F[d>>2]>>2>>>0)/3>>>0){break l}if(f){g=L(b,12);h=g+F[e>>2]|0;d=F[h>>2];o=F[h+4>>2]-d>>2;m:{if(o>>>0<f>>>0){qa(h,f-o|0);d=F[g+F[e>>2]>>2];break m}if(f>>>0>=o>>>0){break m}F[h+4>>2]=(f<<2)+d}mc(f,1,k,d);F[F[s>>2]+(b<<2)>>2]=f}f=1;b=b+1|0;if(b>>>0<(F[c+188>>2]-F[c+184>>2]|0)/12>>>0){continue}break d}break}f=0}Z=j+16|0;n:{if(!f){break n}e=0;c=0;d=0;b=0;k=0;f=0;s=0;o=0;l=Z-96|0;Z=l;F[l+72>>2]=0;F[l+64>>2]=0;F[l+68>>2]=0;F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+56>>2]=1065353216;F[l+32>>2]=0;F[l+24>>2]=0;F[l+28>>2]=0;j=a;C=F[a+124>>2];o:{p:{q:{r:{s:{if((q|0)<=0){break s}I=j+232|0;K=F[j+216>>2]!=F[j+220>>2];B=1;t:{while(1){h=s;s=h+1|0;u:{v:{w:{g=F[j+404>>2];if((g|0)==-1){F[j+400>>2]=7;break w}a=-1;i=F[j+428>>2]+(g<<2)|0;m=F[i>>2];g=m-1|0;F[i>>2]=g;if((m|0)<=0){break r}g=F[F[F[j+416>>2]+L(F[j+404>>2],12)>>2]+(g<<2)>>2];if(g>>>0>4){break r}i=F[(g<<2)+8896>>2];F[j+400>>2]=i;if(!g){if((b|0)==(c|0)){break r}i=-1;m=F[j+8>>2];B=F[m+24>>2];t=c-4|0;e=F[t>>2];g=-1;x:{if((e|0)==-1){break x}p=e+1|0;p=(p>>>0)%3|0?p:e-2|0;g=-1;if((p|0)==-1){break x}g=F[F[m>>2]+(p<<2)>>2]}n=F[B+(g<<2)>>2];if((n|0)!=-1){i=n+1|0;i=(i>>>0)%3|0?i:n-2|0}if((e|0)!=-1&F[F[m+12>>2]+(e<<2)>>2]!=-1|(e|0)==(i|0)){break r}n=F[m+12>>2];if((i|0)!=-1&F[n+(i<<2)>>2]!=-1){break r}p=L(h,3);h=p+1|0;F[n+(e<<2)>>2]=h;x=h<<2;F[x+n>>2]=e;r=p+2|0;F[n+(i<<2)>>2]=r;w=r<<2;F[w+n>>2]=i;n=-1;h=-1;y:{if((e|0)==-1){break y}z:{if((e>>>0)%3|0){e=e-1|0;break z}e=e+2|0;h=-1;if((e|0)==-1){break y}}h=F[F[m>>2]+(e<<2)>>2]}e=h;A:{if((i|0)==-1){break A}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break A}n=F[F[m>>2]+(h<<2)>>2]}if((e|0)==(g|0)|(g|0)==(n|0)){break r}a=F[m>>2];F[a+(p<<2)>>2]=g;F[a+x>>2]=n;F[a+w>>2]=e;if((e|0)!=-1){F[B+(e<<2)>>2]=r}a=F[j+120>>2]+(g>>>3&536870908)|0;e=F[a>>2];N=a,O=oi(g)&e,F[N>>2]=O;F[t>>2]=p;e=b;kc(I,p);break u}B:{switch(i-1|0){case 2:case 4:if((b|0)==(c|0)){break r}r=c-4|0;e=F[r>>2];i=F[j+8>>2];m=F[i+12>>2];if((e|0)!=-1&F[m+(e<<2)>>2]!=-1){break r}c=L(h,3);n=(g|0)==3;g=c+(n?2:1)|0;t=g<<2;F[t+m>>2]=e;F[m+(e<<2)>>2]=g;Ma(i+24|0,8324);p=F[j+8>>2];m=F[p+24>>2];if(F[p+28>>2]-m>>2>(C|0)){break r}a=F[p>>2];w=a+t|0;p=F[i+28>>2];i=F[i+24>>2];t=(p-i>>2)-1|0;F[w>>2]=t;if((i|0)!=(p|0)){F[m+(t<<2)>>2]=g}g=n?c:c+2|0;w=a+(c+n<<2)|0;C:{if((e|0)==-1){F[a+(g<<2)>>2]=-1;i=-1;break C}D:{E:{F:{if((e>>>0)%3|0){i=e-1|0;break F}i=e+2|0;if((i|0)==-1){break E}}i=F[a+(i<<2)>>2];F[a+(g<<2)>>2]=i;if((i|0)==-1){break D}F[m+(i<<2)>>2]=g;break D}F[a+(g<<2)>>2]=-1}i=e+1|0;e=(i>>>0)%3|0?i:e-2|0;i=-1;if((e|0)==-1){break C}i=F[a+(e<<2)>>2]}F[w>>2]=i;F[r>>2]=c;e=b;break v;case 6:break w;case 0:break B;default:break r}}if((e|0)==(c|0)){break r}f=c-4|0;m=F[f>>2];F[l+68>>2]=f;n=F[l+44>>2];G:{if(!n){break G}g=F[l+40>>2];p=ni(n)>>>0>1;a=h&n+2147483647;H:{if(!p){break H}a=h;if(a>>>0<n>>>0){break H}a=(h>>>0)%(n>>>0)|0}i=a;a=F[g+(i<<2)>>2];if(!a){break G}a=F[a>>2];if(!a){break G}I:{if(!p){g=n-1|0;while(1){n=F[a+4>>2];J:{if((n|0)!=(h|0)){if((i|0)==(g&n)){break J}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}while(1){g=F[a+4>>2];K:{if((g|0)!=(h|0)){if(g>>>0>=n>>>0){g=(g>>>0)%(n>>>0)|0}if((g|0)==(i|0)){break K}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}if((f|0)!=(k|0)){F[f>>2]=F[a+12>>2];F[l+68>>2]=c;f=c;break G}b=k-e|0;c=b>>2;d=c+1|0;if(d>>>0>=1073741824){break b}f=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break p}f=ka(d<<2)}else{f=0}b=f+(c<<2)|0;F[b>>2]=F[a+12>>2];d=f+(d<<2)|0;f=b+4|0;if((e|0)!=(k|0)){while(1){b=b-4|0;k=k-4|0;F[b>>2]=F[k>>2];if((e|0)!=(k|0)){continue}break}}F[l+72>>2]=d;F[l+68>>2]=f;F[l+64>>2]=b;if(e){ja(e)}e=b;k=d}if((e|0)==(f|0)){break t}x=f-4|0;a=F[x>>2];if((a|0)==(m|0)){break t}i=(a|0)==-1;g=F[j+8>>2];if(!i&F[F[g+12>>2]+(a<<2)>>2]!=-1){break t}n=F[g+12>>2];if((m|0)!=-1&F[n+(m<<2)>>2]!=-1){break t}p=L(h,3);t=p+2|0;F[n+(a<<2)>>2]=t;c=t<<2;F[c+n>>2]=a;h=p+1|0;F[n+(m<<2)>>2]=h;w=h<<2;F[w+n>>2]=m;L:{M:{N:{if(!i){if((a>>>0)%3|0){h=a-1|0;break N}h=a+2|0;if((h|0)!=-1){break N}i=F[g>>2];h=-1;break M}h=-1;i=F[g>>2];F[i+(p<<2)>>2]=-1;r=-1;break L}i=F[g>>2];h=F[i+(h<<2)>>2]}F[(p<<2)+i>>2]=h;r=a+1|0;a=(r>>>0)%3|0?r:a-2|0;r=-1;if((a|0)==-1){break L}r=F[(a<<2)+i>>2]}F[i+w>>2]=r;O:{if((m|0)==-1){F[c+i>>2]=-1;r=-1;c=-1;break O}P:{Q:{R:{if((m>>>0)%3|0){a=m-1|0;break R}a=m+2|0;if((a|0)==-1){break Q}}a=F[(a<<2)+i>>2];F[c+i>>2]=a;if((a|0)==-1){break P}F[F[g+24>>2]+(a<<2)>>2]=t;break P}F[c+i>>2]=-1}r=-1;a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;c=-1;if((a|0)==-1){break O}r=F[(a<<2)+i>>2];c=a}a=F[j+388>>2];t=h<<2;m=a+t|0;w=a;a=r<<2;F[m>>2]=F[m>>2]+F[w+a>>2];w=a;a=F[g+24>>2];m=w+a|0;if((h|0)!=-1){F[a+t>>2]=F[m>>2]}a=c;while(1){if((a|0)!=-1){F[(a<<2)+i>>2]=h;t=a+1|0;a=(t>>>0)%3|0?t:a-2|0;g=-1;S:{if((a|0)==-1){break S}a=F[n+(a<<2)>>2];g=-1;if((a|0)==-1){break S}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((c|0)!=(a|0)){continue}break t}break}F[m>>2]=-1;T:{U:{if(K){break U}if((y|0)!=(z|0)){F[z>>2]=r;z=z+4|0;F[l+28>>2]=z;break U}a=y-o|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break T}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=1073741824){break p}c=ka(h<<2)}else{c=0}a=c+(g<<2)|0;F[a>>2]=r;z=a+4|0;if((o|0)!=(y|0)){while(1){a=a-4|0;y=y-4|0;F[a>>2]=F[y>>2];if((o|0)!=(y|0)){continue}break}}y=c+(h<<2)|0;F[l+32>>2]=y;F[l+28>>2]=z;F[l+24>>2]=a;if(o){ja(o)}o=a}F[x>>2]=p;c=f;kc(I,p);break u}break b}g=F[j+8>>2];Ma(g+24|0,8324);a=-1;k=F[j+8>>2];f=L(h,3);i=F[g+28>>2];m=F[g+24>>2];n=i-m|0;g=n>>2;p=g-1|0;F[F[k>>2]+(f<<2)>>2]=p;Ma(k+24|0,8324);r=f+1|0;F[F[k>>2]+(r<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;k=F[j+8>>2];Ma(k+24|0,8324);t=f+2|0;F[F[k>>2]+(t<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;x=F[j+8>>2];k=F[x+24>>2];if(F[x+28>>2]-k>>2>(C|0)){break r}V:{W:{if((i|0)!=(m|0)){F[k+(p<<2)>>2]=f;a=0;if((n|0)==-4){break W}}F[k+(g<<2)>>2]=r;a=g+1|0;if((a|0)==-1){break V}}F[k+(a<<2)>>2]=t}if((d|0)!=(c|0)){F[c>>2]=f;f=c+4|0;F[l+68>>2]=f;k=d;break v}a=d-b|0;k=a>>2;e=k+1|0;if(e>>>0>=1073741824){break b}c=a>>>1|0;a=a>>>0>=2147483644?1073741823:e>>>0<c>>>0?c:e;if(a){if(a>>>0>=1073741824){break p}c=ka(a<<2)}else{c=0}e=c+(k<<2)|0;F[e>>2]=f;k=c+(a<<2)|0;f=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((b|0)!=(d|0)){continue}break}}F[l+72>>2]=k;F[l+68>>2]=f;F[l+64>>2]=e;if(b){ja(b)}d=k;b=e}kc(I,F[f-4>>2]);a=F[j+40>>2];X:{if((a|0)==F[j+36>>2]){break X}c=a-12|0;g=F[c+4>>2];h=q+(h^-1)|0;if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}m=f-4|0;a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Y:{if(i&1){c=-1;if((a|0)==-1){break Y}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Y}c=-1;if((a|0)==-1){break Y}c=a-1|0;if((a>>>0)%3|0){break Y}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)==F[j+36>>2]){break X}while(1){c=a-12|0;g=F[c+4>>2];if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Z:{if(i&1){c=-1;if((a|0)==-1){break Z}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Z}c=-1;if((a|0)==-1){break Z}c=a-1|0;if((a>>>0)%3|0){break Z}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)!=F[j+36>>2]){continue}break}}c=f}B=(q|0)>(s|0);if((q|0)!=(s|0)){continue}break}s=q;break s}a=-1;if(B){break r}}a=-1;c=F[j+8>>2];if(F[c+28>>2]-F[c+24>>2]>>2>(C|0)){break r}if((b|0)!=(f|0)){m=j+72|0;k=j+60|0;n=j+312|0;while(1){f=f-4|0;q=F[f>>2];F[l+68>>2]=f;_:{if(wa(n)){g=F[j+8>>2];o=F[g>>2];if(((F[g+4>>2]-o>>2>>>0)/3|0)<=(s|0)){a=-1;break r}b=-1;i=F[g+24>>2];a=-1;$:{if((q|0)==-1){break $}e=q+1|0;e=(e>>>0)%3|0?e:q-2|0;a=-1;if((e|0)==-1){break $}a=F[o+(e<<2)>>2]}e=a;a=F[i+(e<<2)>>2];aa:{if((a|0)==-1){h=1;c=-1;break aa}h=1;c=-1;d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break aa}h=0;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){c=F[o+(b<<2)>>2]}b=a}a=-1;d=-1;i=F[i+(c<<2)>>2];if((i|0)!=-1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0}if((b|0)==(q|0)|(d|0)==(q|0)|((q|0)!=-1&F[F[g+12>>2]+(q<<2)>>2]!=-1|(b|0)==(d|0))){break r}if(!h&F[F[g+12>>2]+(b<<2)>>2]!=-1){break r}h=-1;g=F[g+12>>2];i=-1;ba:{if((d|0)==-1){break ba}if(F[g+(d<<2)>>2]!=-1){break r}a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;i=-1;if((a|0)==-1){break ba}i=F[o+(a<<2)>>2]}a=L(s,3);F[l>>2]=a;F[g+(a<<2)>>2]=q;F[g+(q<<2)>>2]=a;a=F[l>>2]+1|0;F[g+(a<<2)>>2]=b;F[g+(b<<2)>>2]=a;a=F[l>>2]+2|0;F[g+(a<<2)>>2]=d;F[g+(d<<2)>>2]=a;a=F[l>>2];F[o+(a<<2)>>2]=c;b=a+1|0;d=o+(b<<2)|0;F[d>>2]=i;q=a+2|0;o=o+(q<<2)|0;F[o>>2]=e;a=F[j+120>>2];e=b?c:-1;c=a+(e>>>3&536870908)|0;g=F[c>>2];N=c,O=oi(e)&g,F[N>>2]=O;h=(b|0)!=-1?F[d>>2]:h;b=a+(h>>>3&536870908)|0;d=F[b>>2];N=b,O=oi(h)&d,F[N>>2]=O;d=-1;d=(q|0)!=-1?F[o>>2]:d;a=a+(d>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(d)&b,F[N>>2]=O;D[l+88|0]=1;wd(k,l+88|0);Ma(m,l);s=s+1|0;b=F[l+64>>2];break _}d=F[j+64>>2];a=F[j+68>>2];if((d|0)==a<<5){if((d+1|0)<0){break b}if(d>>>0<=1073741822){a=a<<6;d=(d&-32)+32|0;a=a>>>0>d>>>0?a:d}else{a=2147483647}$a(k,a);d=F[j+64>>2]}F[j+64>>2]=d+1;a=F[j+60>>2]+(d>>>3&536870908)|0;e=F[a>>2];N=a,O=oi(d)&e,F[N>>2]=O;d=F[j+76>>2];if((d|0)!=F[j+80>>2]){F[d>>2]=q;F[j+76>>2]=d+4;break _}c=F[m>>2];a=d-c|0;o=a>>2;e=o+1|0;if(e>>>0>=1073741824){break b}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(h){if(h>>>0>=1073741824){break p}a=ka(h<<2)}else{a=0}e=a+(o<<2)|0;F[e>>2]=q;q=e+4|0;if((d|0)!=(c|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((d|0)!=(c|0)){continue}break}}F[j+80>>2]=a+(h<<2);F[j+76>>2]=q;F[j+72>>2]=e;if(!c){break _}ja(c)}if((b|0)!=(f|0)){continue}break}c=F[j+8>>2]}a=-1;if(((F[c+4>>2]-F[c>>2]>>2>>>0)/3|0)!=(s|0)){break r}a=F[c+28>>2]-F[c+24>>2]>>2;f=F[l+24>>2];h=F[l+28>>2];if((f|0)==(h|0)){break q}while(1){b=F[f>>2];k=F[c+24>>2];d=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){while(1){d=a-2|0;a=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){continue}break}}if(b>>>0<=d>>>0){F[l>>2]=c;e=F[e>>2];D[l+12|0]=1;F[l+8>>2]=e;F[l+4>>2]=e;if((e|0)!=-1){while(1){e=F[F[j+8>>2]>>2]+(e<<2)|0;if(F[e>>2]!=(d|0)){a=-1;break r}F[e>>2]=b;nc(l);e=F[l+8>>2];if((e|0)!=-1){continue}break}c=F[j+8>>2]}k=F[c+24>>2];e=k+(d<<2)|0;if((b|0)!=-1){F[k+(b<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<<b;k=F[j+120>>2];b=k+(b>>>3&536870908)|0;k=k+(d>>>3&536870908)|0;d=1<<d;if(F[k>>2]&d){e=e|F[b>>2]}else{e=F[b>>2]&(e^-1)}F[b>>2]=e;F[k>>2]=F[k>>2]&(d^-1);a=a-1|0}f=f+4|0;if((h|0)!=(f|0)){continue}break}}f=F[l+24>>2]}if(f){ja(f)}b=F[l+48>>2];if(b){while(1){d=F[b>>2];ja(b);b=d;if(b){continue}break}}b=F[l+40>>2];F[l+40>>2]=0;if(b){ja(b)}b=F[l+64>>2];if(b){F[l+68>>2]=b;ja(b)}Z=l+96|0;break o}oa();v()}f=a;if((a|0)==-1){break n}a=J;b=F[a+16>>2];d=b+F[a>>2]|0;b=F[a+8>>2]-b|0;a=F[F[j+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=d;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=b;F[a+12>>2]=0;ca:{if(F[j+216>>2]==F[j+220>>2]){break ca}a=F[j+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}b=0;while(1){if(Ad(j,b)){b=b+3|0;a=F[j+8>>2];if(b>>>0<F[a+4>>2]-F[a>>2]>>2>>>0){continue}break ca}break}break n}if(G[j+308|0]){D[j+308|0]=0;d=F[j+292>>2];a=0;e=F[j+304>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;b=e+F[j+288>>2]|0;a=(a>>>3|0)+d|0;F[j+288>>2]=b;F[j+292>>2]=b>>>0<e>>>0?a+1|0:a}b=F[j+216>>2];if((b|0)!=F[j+220>>2]){a=0;while(1){e=L(a,144);Zc((e+b|0)+4|0,F[j+8>>2]);d=F[A>>2];c=d+e|0;b=F[c+132>>2];c=F[c+136>>2];if((b|0)!=(c|0)){while(1){Xc((e+F[A>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((c|0)!=(b|0)){continue}break}d=F[A>>2]}if(!Yc((d+e|0)+4|0)){break n}a=a+1|0;b=F[j+216>>2];if(a>>>0<(F[j+220>>2]-b|0)/144>>>0){continue}break}}a=F[j+8>>2];Hb(j+184|0,F[a+28>>2]-F[a+24>>2]>>2);d=F[j+216>>2];if((d|0)!=F[j+220>>2]){b=0;while(1){a=L(b,144)+d|0;d=F[a+60>>2]-F[a+56>>2]>>2;c=a+104|0;a=F[j+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(c,(a|0)<(d|0)?d:a);b=b+1|0;d=F[j+216>>2];if(b>>>0<(F[j+220>>2]-d|0)/144>>>0){continue}break}}M=zd(j,f)}}Z=u- -64|0;return M|0}na();v()}function lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,I=0,J=0,K=0,M=0;t=Z+-64|0;Z=t;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}c=0;F[a+144>>2]=0;b=F[a+140>>2];a:{if(!b){break a}if(b>>>0>=4){h=b&-4;while(1){e=c<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;c=c+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}b=b&3;if(!b){break a}f=0;while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((b|0)!=(f|0)){continue}break}}F[a+148>>2]=0}b:{if(!Da(1,t+60|0,F[F[a+4>>2]+32>>2])){break b}F[a+156>>2]=F[t+60>>2];if(!Da(1,t+56|0,F[F[a+4>>2]+32>>2])){break b}e=F[t+56>>2];if(e>>>0>1431655765){break b}c=F[a+156>>2];b=L(e,3);if(c>>>0>b>>>0){break b}f=b>>>1|0;b=c>>31;h=ki(c-1|0,b-!c|0,c,b);b=_;c=b>>>1|0;b=(b&1)<<31|h>>>1;if(!c&b>>>0<f>>>0){break b}c=F[F[a+4>>2]+32>>2];h=F[c+8>>2];m=F[c+12>>2];b=F[c+20>>2];f=F[c+16>>2];if((m|0)<=(b|0)&f>>>0>=h>>>0|(b|0)>(m|0)){break b}h=G[f+F[c>>2]|0];f=f+1|0;b=f?b:b+1|0;F[c+16>>2]=f;F[c+20>>2]=b;if(!Da(1,t+52|0,c)){break b}n=F[t+52>>2];if(n>>>0>e>>>0|e>>>0>n+((n>>>0)/3|0)>>>0){break b}if(!Da(1,t+48|0,F[F[a+4>>2]+32>>2])){break b}c=F[t+48>>2];if(c>>>0>n>>>0){break b}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];y=a+216|0;Dd(y);Cd(y,h);if(!_c(F[a+8>>2],e,c+F[a+156>>2]|0)){break b}b=F[a+156>>2];D[t+8|0]=1;Ea(a+120|0,b+c|0,t+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break b}c=a+232|0;F[c+144>>2]=a;b=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];b=F[b>>2]+F[b+16>>2]|0;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f+8>>2]-F[f+16>>2]|0;K=c,M=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[K+38>>1]=M;F[c>>2]=b;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=f;F[c+12>>2]=0;F[a+372>>2]=h;C=Ja(t+8|0);h=C;m=0;d=Z-16|0;Z=d;b=F[c+4>>2];F[c+40>>2]=F[c>>2];F[c+44>>2]=b;b=F[c+36>>2];F[c+72>>2]=F[c+32>>2];F[c+76>>2]=b;f=F[c+28>>2];b=c- -64|0;F[b>>2]=F[c+24>>2];F[b+4>>2]=f;b=F[c+20>>2];F[c+56>>2]=F[c+16>>2];F[c+60>>2]=b;b=F[c+12>>2];F[c+48>>2]=F[c+8>>2];F[c+52>>2]=b;c:{d:{if(hc(c+40|0,1,d+8|0)){b=F[c+44>>2];F[c>>2]=F[c+40>>2];F[c+4>>2]=b;b=F[c+76>>2];F[c+32>>2]=F[c+72>>2];F[c+36>>2]=b;b=F[c+68>>2];F[c+24>>2]=F[c+64>>2];F[c+28>>2]=b;f=F[c+60>>2];g=f;b=F[c+56>>2];F[c+16>>2]=b;F[c+20>>2]=f;e=F[c+52>>2];f=F[c+48>>2];F[c+8>>2]=f;F[c+12>>2]=e;k=F[d+12>>2];i=e-((b>>>0>f>>>0)+g|0)|0;e=f-b|0;f=F[d+8>>2];if((k|0)==(i|0)&e>>>0>=f>>>0|i>>>0>k>>>0){break d}}break c}e=g+k|0;b=b+f|0;e=b>>>0<f>>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if(!Aa(c+80|0,c)){break c}if(!yd(c)){break c}b=F[c+4>>2];F[h>>2]=F[c>>2];F[h+4>>2]=b;b=F[c+36>>2];F[h+32>>2]=F[c+32>>2];F[h+36>>2]=b;b=F[c+28>>2];F[h+24>>2]=F[c+24>>2];F[h+28>>2]=b;b=F[c+20>>2];F[h+16>>2]=F[c+16>>2];F[h+20>>2]=b;b=F[c+12>>2];F[h+8>>2]=F[c+8>>2];F[h+12>>2]=b;m=1}Z=d+16|0;e:{if(!m){break e}b=0;c=0;f=0;m=0;j=Z-96|0;Z=j;F[j+72>>2]=0;F[j+64>>2]=0;F[j+68>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+56>>2]=1065353216;F[j+32>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;h=a;B=F[a+124>>2];f:{g:{h:{i:{j:{k:{l:{m:{if((n|0)<=0){break m}I=F[h+216>>2]!=F[h+220>>2];z=1;while(1){e=m;m=e+1|0;n:{o:{p:{q:{r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{if(!G[h+308|0]){break B}k=F[h+296>>2];d=F[h+304>>2];a=k+(d>>>3|0)|0;l=F[h+300>>2];if(a>>>0>=l>>>0){break B}g=G[a|0];a=d+1|0;F[h+304>>2]=a;p=g>>>(d&7)&1;if(!p){break B}i=0;g=a>>>3|0;r=k+g|0;C:{if(r>>>0>=l>>>0){d=a;a=0;break C}r=G[r|0];d=d+2|0;F[h+304>>2]=d;g=d>>>3|0;a=r>>>(a&7)&1}g=g+k|0;if(g>>>0<l>>>0){g=G[g|0];F[h+304>>2]=d+1;i=g>>>(d&7)<<1&2}g=-1;i=p|(a|i)<<1;switch(i-1|0){case 6:break y;case 0:break z;case 2:case 4:break A;default:break l}}if((c|0)==(f|0)){g=-1;break l}d=-1;i=F[h+8>>2];z=F[i+24>>2];r=c-4|0;b=F[r>>2];a=-1;D:{if((b|0)==-1){break D}k=b+1|0;k=(k>>>0)%3|0?k:b-2|0;a=-1;if((k|0)==-1){break D}a=F[F[i>>2]+(k<<2)>>2]}g=F[z+(a<<2)>>2];if((g|0)!=-1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((b|0)==(d|0)){g=-1;break l}if((b|0)!=-1){g=-1;if(F[F[i+12>>2]+(b<<2)>>2]!=-1){break l}}k=F[i+12>>2];if((d|0)!=-1){g=-1;if(F[k+(d<<2)>>2]!=-1){break l}}l=L(e,3);e=l+1|0;F[k+(b<<2)>>2]=e;s=e<<2;F[s+k>>2]=b;p=l+2|0;F[k+(d<<2)>>2]=p;u=p<<2;F[u+k>>2]=d;k=-1;e=-1;E:{if((b|0)==-1){break E}F:{if((b>>>0)%3|0){b=b-1|0;break F}b=b+2|0;e=-1;if((b|0)==-1){break E}}e=F[F[i>>2]+(b<<2)>>2]}b=e;G:{if((d|0)==-1){break G}e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)==-1){break G}k=F[F[i>>2]+(e<<2)>>2]}g=-1;if((a|0)==(b|0)|(a|0)==(k|0)){break l}e=F[i>>2];F[e+(l<<2)>>2]=a;F[e+s>>2]=k;F[e+u>>2]=b;if((b|0)!=-1){F[z+(b<<2)>>2]=p}b=F[h+120>>2]+(a>>>3&536870908)|0;e=F[b>>2];K=b,M=oi(a)&e,F[K>>2]=M;F[r>>2]=l;b=f;break n}if((c|0)==(f|0)){break l}r=c-4|0;b=F[r>>2];a=F[h+8>>2];d=F[a+12>>2];if((b|0)!=-1&F[d+(b<<2)>>2]!=-1){break l}l=(i|0)==5;i=L(e,3);p=(l?2:1)+i|0;s=p<<2;F[s+d>>2]=b;F[d+(b<<2)>>2]=p;Ma(a+24|0,8324);d=F[h+8>>2];k=F[d+24>>2];if(F[d+28>>2]-k>>2>(B|0)){break l}d=F[d>>2];u=d+s|0;g=F[a+28>>2];a=F[a+24>>2];s=(g-a>>2)-1|0;F[u>>2]=s;if((a|0)!=(g|0)){F[k+(s<<2)>>2]=p}g=l?i:i+2|0;l=d+(i+l<<2)|0;H:{if((b|0)==-1){F[d+(g<<2)>>2]=-1;a=-1;break H}I:{J:{K:{if((b>>>0)%3|0){a=b-1|0;break K}a=b+2|0;if((a|0)==-1){break J}}a=F[d+(a<<2)>>2];F[d+(g<<2)>>2]=a;if((a|0)==-1){break I}F[k+(a<<2)>>2]=g;break I}F[d+(g<<2)>>2]=-1}g=b+1|0;b=(g>>>0)%3|0?g:b-2|0;a=-1;if((b|0)==-1){break H}a=F[d+(b<<2)>>2]}F[l>>2]=a;F[r>>2]=i;b=f;break t}if((b|0)==(c|0)){break l}a=c-4|0;k=F[a>>2];F[j+68>>2]=a;l=F[j+44>>2];L:{if(!l){c=a;break L}g=F[j+40>>2];p=ni(l)>>>0>1;d=e&l+2147483647;M:{if(!p){break M}d=e;if(d>>>0<l>>>0){break M}d=(e>>>0)%(l>>>0)|0}i=d;d=F[g+(i<<2)>>2];if(!d){c=a;break L}d=F[d>>2];if(!d){c=a;break L}N:{if(!p){g=l-1|0;while(1){l=F[d+4>>2];O:{if((l|0)!=(e|0)){if((i|0)==(g&l)){break O}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}while(1){g=F[d+4>>2];P:{if((g|0)!=(e|0)){if(g>>>0>=l>>>0){g=(g>>>0)%(l>>>0)|0}if((g|0)==(i|0)){break P}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}if((a|0)!=(q|0)){F[a>>2]=F[d+12>>2];F[j+68>>2]=c;break L}a=q-b|0;f=a>>2;c=f+1|0;if(c>>>0>=1073741824){break x}g=a>>>1|0;g=a>>>0>=2147483644?1073741823:c>>>0<g>>>0?g:c;if(g){if(g>>>0>=1073741824){break j}a=ka(g<<2)}else{a=0}f=a+(f<<2)|0;F[f>>2]=F[d+12>>2];c=f+4|0;if((b|0)!=(q|0)){while(1){f=f-4|0;q=q-4|0;F[f>>2]=F[q>>2];if((b|0)!=(q|0)){continue}break}}q=a+(g<<2)|0;F[j+72>>2]=q;F[j+68>>2]=c;F[j+64>>2]=f;if(b){ja(b)}}if((c|0)==(f|0)){break p}s=c-4|0;b=F[s>>2];if((b|0)==(k|0)){break p}a=(b|0)==-1;g=F[h+8>>2];if(!a&F[F[g+12>>2]+(b<<2)>>2]!=-1){break p}l=F[g+12>>2];if((k|0)!=-1&F[l+(k<<2)>>2]!=-1){break p}p=L(e,3);r=p+2|0;F[l+(b<<2)>>2]=r;e=r<<2;F[e+l>>2]=b;d=p+1|0;F[l+(k<<2)>>2]=d;u=d<<2;F[u+l>>2]=k;if(a){break w}if((b>>>0)%3|0){d=b-1|0;break s}d=b+2|0;if((d|0)!=-1){break s}a=F[g>>2];d=-1;break r}i=F[h+8>>2];Ma(i+24|0,8324);d=F[h+8>>2];a=L(e,3);k=F[i+28>>2];l=F[i+24>>2];p=k-l|0;i=p>>2;r=i-1|0;F[F[d>>2]+(a<<2)>>2]=r;Ma(d+24|0,8324);s=a+1|0;F[F[d>>2]+(s<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;d=F[h+8>>2];Ma(d+24|0,8324);u=a+2|0;F[F[d>>2]+(u<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;A=F[h+8>>2];d=F[A+24>>2];if(F[A+28>>2]-d>>2>(B|0)){break l}Q:{R:{if((k|0)!=(l|0)){F[d+(r<<2)>>2]=a;g=0;if((p|0)==-4){break R}}F[d+(i<<2)>>2]=s;g=i+1|0;if((g|0)==-1){break Q}}F[d+(g<<2)>>2]=u}if((c|0)!=(q|0)){F[c>>2]=a;c=c+4|0;F[j+68>>2]=c;break t}f=c-b|0;i=f>>2;d=i+1|0;if(d>>>0>=1073741824){break v}g=f>>>1|0;d=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(d){if(d>>>0>=1073741824){break j}g=ka(d<<2)}else{g=0}f=g+(i<<2)|0;F[f>>2]=a;q=g+(d<<2)|0;a=f+4|0;if((b|0)!=(c|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((b|0)!=(c|0)){continue}break}}F[j+72>>2]=q;F[j+68>>2]=a;F[j+64>>2]=f;if(!b){break u}ja(b);break u}na();v()}d=-1;a=F[g>>2];F[a+(p<<2)>>2]=-1;i=-1;break q}na();v()}c=a;b=f}a=F[h+40>>2];if((a|0)==F[h+36>>2]){break n}d=a-12|0;i=F[d+4>>2];g=n+(e^-1)|0;if(i>>>0>g>>>0){break p}if((g|0)!=(i|0)){break n}i=G[a-4|0];e=F[d>>2];F[h+40>>2]=d;if((e|0)<0){break p}k=c-4|0;a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);d=F[j>>2];S:{if(i&1){e=-1;if((a|0)==-1){break S}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break S}e=-1;if((a|0)==-1){break S}e=a-1|0;if((a>>>0)%3|0){break S}e=a+2|0}F[d+12>>2]=e;d=F[h+40>>2];if((d|0)==F[h+36>>2]){break n}while(1){a=d-12|0;e=F[a+4>>2];if(e>>>0>g>>>0){break p}if((g|0)!=(e|0)){break n}d=G[d-4|0];e=F[a>>2];F[h+40>>2]=a;if((e|0)<0){break p}a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);i=F[j>>2];T:{if(d&1){e=-1;if((a|0)==-1){break T}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break T}e=-1;if((a|0)==-1){break T}e=a-1|0;if((a>>>0)%3|0){break T}e=a+2|0}F[i+12>>2]=e;d=F[h+40>>2];if((d|0)!=F[h+36>>2]){continue}break}break n}a=F[g>>2];d=F[a+(d<<2)>>2]}F[(p<<2)+a>>2]=d;A=b+1|0;b=(A>>>0)%3|0?A:b-2|0;i=-1;if((b|0)==-1){break q}i=F[(b<<2)+a>>2]}F[a+u>>2]=i;U:{if((k|0)==-1){F[a+e>>2]=-1;i=-1;e=-1;break U}V:{W:{X:{if((k>>>0)%3|0){b=k-1|0;break X}b=k+2|0;if((b|0)==-1){break W}}b=F[(b<<2)+a>>2];F[a+e>>2]=b;if((b|0)==-1){break V}F[F[g+24>>2]+(b<<2)>>2]=r;break V}F[a+e>>2]=-1}i=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;e=-1;if((b|0)==-1){break U}i=F[(b<<2)+a>>2];e=b}b=F[g+24>>2];k=b+(i<<2)|0;if((d|0)!=-1){F[b+(d<<2)>>2]=F[k>>2]}b=e;while(1){if((b|0)==-1){break o}F[(b<<2)+a>>2]=d;r=b+1|0;b=(r>>>0)%3|0?r:b-2|0;g=-1;Y:{if((b|0)==-1){break Y}b=F[l+(b<<2)>>2];g=-1;if((b|0)==-1){break Y}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0}b=g;if((e|0)!=(b|0)){continue}break}}g=-1;if(!z){break m}break l}F[k>>2]=-1;Z:{if(I){break Z}if((w|0)!=(x|0)){F[x>>2]=i;x=x+4|0;F[j+28>>2]=x;break Z}a=w-o|0;d=a>>2;b=d+1|0;if(b>>>0>=1073741824){break i}e=a>>>1|0;e=a>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(e){if(e>>>0>=1073741824){break j}a=ka(e<<2)}else{a=0}b=a+(d<<2)|0;F[b>>2]=i;x=b+4|0;if((o|0)!=(w|0)){while(1){b=b-4|0;w=w-4|0;F[b>>2]=F[w>>2];if((o|0)!=(w|0)){continue}break}}w=a+(e<<2)|0;F[j+32>>2]=w;F[j+28>>2]=x;F[j+24>>2]=b;if(o){ja(o)}o=b}F[s>>2]=p;b=f}z=(m|0)<(n|0);if((m|0)!=(n|0)){continue}break}m=n}g=-1;a=F[h+8>>2];if(F[a+28>>2]-F[a+24>>2]>>2>(B|0)){break l}if((c|0)!=(f|0)){l=h+72|0;e=h+60|0;w=h+312|0;while(1){c=c-4|0;i=F[c>>2];F[j+68>>2]=c;_:{if(wa(w)){q=F[h+8>>2];k=F[q>>2];if(((F[q+4>>2]-k>>2>>>0)/3|0)<=(m|0)){g=-1;break l}a=-1;g=-1;b=-1;x=F[q+24>>2];f=-1;$:{if((i|0)==-1){break $}n=i+1|0;n=(n>>>0)%3|0?n:i-2|0;f=-1;if((n|0)==-1){break $}f=F[k+(n<<2)>>2]}n=f;o=F[x+(n<<2)>>2];aa:{if((o|0)==-1){d=1;f=-1;break aa}d=1;p=o+1|0;o=(p>>>0)%3|0?p:o-2|0;f=-1;if((o|0)==-1){break aa}d=0;a=o;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)!=-1){f=F[k+(f<<2)>>2]}else{f=-1}}o=F[(f<<2)+x>>2];if((o|0)!=-1){b=o+1|0;b=(b>>>0)%3|0?b:o-2|0}if((a|0)==(i|0)|(b|0)==(i|0)|((i|0)!=-1&F[F[q+12>>2]+(i<<2)>>2]!=-1|(a|0)==(b|0))){break l}if(!d&F[F[q+12>>2]+(a<<2)>>2]!=-1){break l}d=-1;o=F[q+12>>2];q=-1;ba:{if((b|0)==-1){break ba}if(F[o+(b<<2)>>2]!=-1){break l}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0;q=-1;if((g|0)==-1){break ba}q=F[k+(g<<2)>>2]}g=L(m,3);F[j>>2]=g;F[o+(g<<2)>>2]=i;F[o+(i<<2)>>2]=g;g=F[j>>2]+1|0;F[o+(g<<2)>>2]=a;F[o+(a<<2)>>2]=g;a=F[j>>2]+2|0;F[o+(a<<2)>>2]=b;F[o+(b<<2)>>2]=a;a=F[j>>2];F[k+(a<<2)>>2]=f;b=a+1|0;g=k+(b<<2)|0;F[g>>2]=q;o=a+2|0;i=k+(o<<2)|0;F[i>>2]=n;a=F[h+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;k=F[n>>2];K=n,M=oi(f)&k,F[K>>2]=M;d=(b|0)!=-1?F[g>>2]:d;b=a+(d>>>3&536870908)|0;f=F[b>>2];K=b,M=oi(d)&f,F[K>>2]=M;b=-1;b=(o|0)!=-1?F[i>>2]:b;a=a+(b>>>3&536870908)|0;f=F[a>>2];K=a,M=oi(b)&f,F[K>>2]=M;D[j+88|0]=1;wd(e,j+88|0);Ma(l,j);m=m+1|0;f=F[j+64>>2];break _}b=F[h+64>>2];a=F[h+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break h}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}$a(e,a);b=F[h+64>>2]}F[h+64>>2]=b+1;a=F[h+60>>2]+(b>>>3&536870908)|0;d=F[a>>2];K=a,M=oi(b)&d,F[K>>2]=M;b=F[h+76>>2];if((b|0)!=F[h+80>>2]){F[b>>2]=i;F[h+76>>2]=b+4;break _}g=F[l>>2];a=b-g|0;o=a>>2;d=o+1|0;if(d>>>0>=1073741824){break g}n=a>>>1|0;n=a>>>0>=2147483644?1073741823:d>>>0<n>>>0?n:d;if(n){if(n>>>0>=1073741824){break j}a=ka(n<<2)}else{a=0}d=a+(o<<2)|0;F[d>>2]=i;o=d+4|0;if((b|0)!=(g|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(g|0)){continue}break}}F[h+80>>2]=a+(n<<2);F[h+76>>2]=o;F[h+72>>2]=d;if(!g){break _}ja(g)}if((c|0)!=(f|0)){continue}break}a=F[h+8>>2]}g=-1;if(((F[a+4>>2]-F[a>>2]>>2>>>0)/3|0)!=(m|0)){break l}g=F[a+28>>2]-F[a+24>>2]>>2;c=F[j+24>>2];n=F[j+28>>2];if((c|0)==(n|0)){break k}while(1){f=F[c>>2];e=F[a+24>>2];b=g-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){while(1){b=g-2|0;g=g-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){continue}break}}if(b>>>0>=f>>>0){F[j>>2]=a;d=F[d>>2];D[j+12|0]=1;F[j+8>>2]=d;F[j+4>>2]=d;if((d|0)!=-1){while(1){a=F[F[h+8>>2]>>2]+(d<<2)|0;if(F[a>>2]!=(b|0)){g=-1;break l}F[a>>2]=f;nc(j);d=F[j+8>>2];if((d|0)!=-1){continue}break}a=F[h+8>>2]}m=F[a+24>>2];e=m+(b<<2)|0;if((f|0)!=-1){F[m+(f<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<<f;m=F[h+120>>2];f=m+(f>>>3&536870908)|0;d=1<<b;m=m+(b>>>3&536870908)|0;if(d&F[m>>2]){b=e|F[f>>2]}else{b=F[f>>2]&(e^-1)}F[f>>2]=b;F[m>>2]=F[m>>2]&(d^-1);g=g-1|0}c=c+4|0;if((n|0)!=(c|0)){continue}break}}c=F[j+24>>2]}if(c){ja(c)}a=F[j+48>>2];if(a){while(1){c=F[a>>2];ja(a);a=c;if(a){continue}break}}a=F[j+40>>2];F[j+40>>2]=0;if(a){ja(a)}a=F[j+64>>2];if(a){F[j+68>>2]=a;ja(a)}Z=j+96|0;a=g;break f}oa();v()}na();v()}na();v()}na();v()}b=a;if((a|0)==-1){break e}a=C;c=F[a+16>>2];f=c+F[a>>2]|0;c=F[a+8>>2]-c|0;a=F[F[h+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=f;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;ca:{if(F[h+216>>2]==F[h+220>>2]){break ca}a=F[h+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}c=0;while(1){if(Ad(h,c)){c=c+3|0;a=F[h+8>>2];if(c>>>0<F[a+4>>2]-F[a>>2]>>2>>>0){continue}break ca}break}break e}if(G[h+308|0]){D[h+308|0]=0;f=F[h+292>>2];a=0;e=F[h+304>>2]+7|0;a=e>>>0<7?1:a;c=a>>>3|0;m=a<<29|e>>>3;a=m+F[h+288>>2]|0;e=c+f|0;F[h+288>>2]=a;F[h+292>>2]=a>>>0<m>>>0?e+1|0:e}c=F[h+216>>2];if((c|0)!=F[h+220>>2]){a=0;while(1){e=L(a,144);Zc((e+c|0)+4|0,F[h+8>>2]);f=F[y>>2];m=f+e|0;c=F[m+132>>2];m=F[m+136>>2];if((c|0)!=(m|0)){while(1){Xc((e+F[y>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((m|0)!=(c|0)){continue}break}f=F[y>>2]}if(!Yc((f+e|0)+4|0)){break e}a=a+1|0;c=F[h+216>>2];if(a>>>0<(F[h+220>>2]-c|0)/144>>>0){continue}break}}a=F[h+8>>2];Hb(h+184|0,F[a+28>>2]-F[a+24>>2]>>2);f=F[h+216>>2];if((f|0)!=F[h+220>>2]){c=0;while(1){a=L(c,144)+f|0;f=F[a+60>>2]-F[a+56>>2]>>2;e=a+104|0;a=F[h+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(e,(a|0)<(f|0)?f:a);c=c+1|0;f=F[h+216>>2];if(c>>>0<(F[h+220>>2]-f|0)/144>>>0){continue}break}}J=zd(h,b)}}Z=t- -64|0;return J|0}function Cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0;B=c;c=0;m=Z-96|0;Z=m;l=m+16|0;ma(l,0,76);F[m+92>>2]=-1;F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;r=Z-16|0;Z=r;F[l+68>>2]=0;F[l+72>>2]=0;F[l>>2]=b;s=Z-16|0;Z=s;u=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[u+100>>2];e=F[u+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=ka(f);F[s>>2]=d;F[s+8>>2]=d+L(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ma(n,0,d);F[s+4>>2]=d+f;if(G[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=L(a,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;d=L(a|1,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=L(a,12);a=b+e|0;c=F[a+4>>2];e=F[a>>2];b=b+f|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=e;F[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=F[c+68>>2];c=0;while(1){d=L(c,12);b=d+e|0;g=F[a+(F[b>>2]<<2)>>2];i=F[a+(F[b+4>>2]<<2)>>2];d=d+f|0;F[d+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[d+4>>2]=i;F[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;H=Z-16|0;Z=H;h=ka(88);Zb(h);C=Z-16|0;Z=C;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){ja(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){ja(a)}g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;a=L(c,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){nd(h,a-e|0);g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=F[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=L(d,12);j=e+a|0;f=b+e|0;F[j>>2]=F[f>>2];F[a+(e|4)>>2]=F[f+4>>2];F[j+8>>2]=F[f+8>>2];f=L(d|1,12);e=f+a|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=L(d,12);a=c+a|0;b=b+c|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[C+12>>2]=-1;a=0;e=0;g=0;f=Z-32|0;Z=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;n=F[h+12>>2];b=F[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){ab(h+12|0,i-b|0,10228);c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}F[h+16>>2]=n+(i<<2)}F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=ka(d);F[f+20>>2]=e;F[f+16>>2]=e;F[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=F[(a<<2)+j>>2];b=F[f+20>>2]-e>>2;q:{if(i>>>0<b>>>0){break q}F[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Fa(f+16|0,d-b|0,f);j=F[h>>2];c=F[h+4>>2];e=F[f+16>>2];break q}if(b>>>0<=d>>>0){break q}F[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;F[b>>2]=F[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0<i>>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=ka(d<<1);ma(d,255,i<<3)}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=F[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=ka(a);F[f>>2]=q;F[f+8>>2]=(t<<2)+q;b=ma(q,0,a);F[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;F[c+b>>2]=a;x=c|4;a=F[c+e>>2]+a|0;F[x+b>>2]=a;y=c|8;a=a+F[e+x>>2]|0;F[y+b>>2]=a;c=c|12;a=a+F[e+y>>2]|0;F[c+b>>2]=a;a=a+F[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;F[c+b>>2]=a;g=g+1|0;a=F[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=F[h+40>>2];y=F[h+12>>2];n=0;while(1){I=n<<2;a=I+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=F[(b<<2)+j>>2]}b=F[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=F[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;F[h+40>>2]=x;c=n+3|0;break t}p=F[a-4>>2]}a=p<<2;A=F[a+e>>2];v:{w:{if((A|0)<=0){break w}a=F[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=F[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=F[o+4>>2];if((o|0)!=-1){z=F[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=F[J>>2];K=(b<<3)+d|0;F[K+4>>2]=F[J+4>>2];F[K>>2]=z;if((z|0)!=-1){continue}}break}F[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}F[y+I>>2]=o;F[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=F[a+e>>2];if((k|0)<=0){break v}a=F[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0<i>>>0){continue}break}break l}break i}na();v()}F[w>>2]=t;if(q){ja(q)}if(d){ja(d)}a=F[f+16>>2];if(!a){break j}F[f+20>>2]=a;ja(a)}Z=f+32|0;x=(w|0)!=0;if(x){k=Z-32|0;Z=k;a=F[h>>2];g=F[h+4>>2];F[k+24>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[k+24>>2]=b;F[k+20>>2]=0;F[k+16>>2]=c;Yb(k+16|0,a);g=F[h>>2];c=F[h+4>>2]}F[k+8>>2]=0;F[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=F[k+16>>2];A:{if(F[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=F[k>>2];F[k+4>>2]=c;e=F[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=F[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=F[k+16>>2]+(j>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<<j;a=j+1|0;f=(a>>>0)%3|0?a:j-2|0;g=F[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=F[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=F[(f<<2)+g>>2];q=F[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=F[a>>2]){break G}p=F[a+4>>2];t=F[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==F[a>>2]){t=-1;e=-1;p=F[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=F[(b<<2)+g>>2];H:{if(F[k+8>>2]!=(c|0)){F[c>>2]=b;F[c+4>>2]=f;c=c+8|0;F[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0<g>>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=ka(g<<3)}else{e=0}a=e+(p<<3)|0;F[a>>2]=b;F[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=F[c+4>>2];a=a-8|0;F[a>>2]=F[c>>2];F[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=F[k>>2]}F[k+8>>2]=e+(g<<3);F[k+4>>2]=b;F[k>>2]=a;if(c){ja(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=F[h>>2];break A}oa();v()}c=F[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){F[q+(t<<2)>>2]=-1}if((c|0)!=-1){F[q+(c<<2)>>2]=-1}F[q+(b<<2)>>2]=-1;F[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=F[h+4>>2];if(i>>>0<c-g>>2>>>0){continue}break}if(o){continue}}break}a=F[k>>2];if(a){ja(a)}a=F[k+16>>2];if(a){ja(a)}Z=k+32|0;n=0;g=Z-32|0;Z=g;e=F[C+12>>2];F[h+36>>2]=e;p=h+24|0;b=F[h+24>>2];a=F[h+28>>2]-b>>2;K:{L:{if(a>>>0<e>>>0){ab(p,e-a|0,10228);F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;break L}if(a>>>0>e>>>0){F[h+28>>2]=b+(e<<2)}F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=ka(a<<2);F[g+24>>2]=a;F[g+20>>2]=0;F[g+16>>2]=b;Yb(g+16|0,e)}a=F[h>>2];b=F[h+4>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[g+8>>2]=b;F[g+4>>2]=0;F[g>>2]=c;Yb(g,a);b=F[h>>2];a=F[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=L(n,3);d=(q<<2)+b|0;f=F[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=F[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=F[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=F[g>>2];while(1){f=k+q|0;if(!(F[(f>>>3&536870908)+i>>2]>>>f&1)){a=F[(f<<2)+b>>2];c=1<<a;d=F[g+16>>2];b=a>>>5|0;i=F[d+(b<<2)>>2];t=c&i;if(t){c=F[h+28>>2];P:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break P}i=F[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+32>>2]=b+(j<<2);F[h+28>>2]=o;F[h+24>>2]=d;if(!i){break P}ja(i)}c=F[h+52>>2];Q:{if((c|0)!=F[h+56>>2]){F[c>>2]=a;F[h+52>>2]=c+4;break Q}i=F[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+56>>2]=b+(j<<2);F[h+52>>2]=a;F[h+48>>2]=d;if(!i){break Q}ja(i)}c=F[g+20>>2];a=F[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}$a(b,a);c=F[g+20>>2]}F[g+20>>2]=c+1;d=F[g+16>>2];a=d+(c>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(c)&b,F[N>>2]=O;c=1<<e;b=e>>>5|0;i=F[(b<<2)+d>>2];a=e;e=a+1|0}F[(b<<2)+d>>2]=c|i;o=F[h+24>>2]+(a<<2)|0;j=F[h+12>>2];b=F[h>>2];i=F[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<<c;F[o>>2]=c;if(t){F[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=F[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=F[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=F[h+12>>2];b=F[h>>2];while(1){d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<<c;if(t){F[(c<<2)+b>>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=F[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=F[h>>2];a=F[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}oa();v()}c=0;F[h+44>>2]=0;a=F[g+16>>2];b=F[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(F[d>>2]>>>c&1)){i=i+1|0;F[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=F[g>>2];if(b){ja(b);a=F[g+16>>2]}if(a){ja(a)}Z=g+32|0}Z=C+16|0;if(!x){F[H+8>>2]=0;Za(h);h=0}Z=H+16|0;a=h;break h}na();v()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;ja(b)}Z=s+16|0;break b}na();v()}c=F[l+4>>2];b=a;F[l+4>>2]=a;if(c){Za(c);b=F[l+4>>2]}X:{if(!b){break X}a=F[u+100>>2];c=F[u+96>>2];D[r+12|0]=0;Ea(l+56|0,(a-c|0)/12|0,r+12|0);a=F[u+100>>2];c=F[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(F[F[l+56>>2]+(E>>>3&536870908)>>2]>>>E&1)){a=L(E,3);Vb(l,0,a);c=F[l+8>>2];e=F[l+12>>2];Vb(l,1,a+1|0);f=F[l+20>>2];d=F[l+24>>2];Vb(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=F[l+36>>2]-F[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(F[l+68>>2]<=0){break Y}F[r+12>>2]=F[l+76>>2];F[r+8>>2]=m;Qa(r+8|0,r+12|0);a=F[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=F[(F[F[l>>2]+96>>2]+L(e,12)|0)+(a-L(e,3)<<2)>>2]}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);e=F[l+72>>2];F[l+72>>2]=e+2;if(!(e&1)){break Y}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);F[l+72>>2]=F[l+72>>2]+1}d=0;e=Z-16|0;Z=e;F[l+68>>2]=F[l+68>>2]+1;a=L(c,12)+l|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=F[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=F[l+56>>2]+(g>>>3&536870908)|0;F[i>>2]=F[i>>2]|1<<g;F[l+72>>2]=F[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){F[e+12>>2]=F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[e+8>>2]=m;Qa(e+8|0,e+12|0);break ca}F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=F[(F[F[l>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}else{f=-1}F[e+12>>2]=f;F[e+8>>2]=m;Qa(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=F[(F[F[l>>2]+96>>2]+L(c,12)|0)+(f-L(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((L(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=F[F[F[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}Z=e+16|0;c=F[u+96>>2];a=F[u+100>>2]}E=E+1|0;if(E>>>0<(a-c|0)/12>>>0){continue}break}}Z=r+16|0;da:{if(b){a=F[B>>2];if(a){F[B+4>>2]=a;ja(a)}F[B>>2]=F[m>>2];F[B+4>>2]=F[m+4>>2];F[B+8>>2]=F[m+8>>2];M=F[m+84>>2];break da}a=F[m>>2];if(!a){break da}F[m+4>>2]=a;ja(a)}a=F[m+72>>2];if(a){ja(a)}a=F[m+48>>2];if(a){F[m+52>>2]=a;ja(a)}a=F[m+36>>2];if(a){F[m+40>>2]=a;ja(a)}a=F[m+24>>2];if(a){F[m+28>>2]=a;ja(a)}a=F[m+20>>2];F[m+20>>2]=0;if(a){Za(a)}Z=m+96|0;return M|0}function sf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=F[i+80>>2];h=G[c+24|0];c:{if((L(j,h)|0)!=(e|0)){break c}d=F[c+28>>2]!=1;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break c}if(h){a=ka(h);ma(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break d}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!Cb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break d}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}ja(a)}break a;case 2:n=G[c+24|0];l=n<<1;j=F[i+80>>2];e:{if((L(l,j)|0)!=(e|0)){break e}i=F[c+28>>2]!=3;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=ka(l);ma(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}ja(e)}b=a;break a;case 4:l=G[c+24|0];o=l<<2;j=F[i+80>>2];h:{if((L(o,j)|0)!=(e|0)){break h}i=F[c+28>>2]!=5;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=ka(o);ma(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}ja(e)}break a;case 1:j=F[i+80>>2];h=G[c+24|0];k:{if((L(j,h)|0)!=(e|0)){break k}d=F[c+28>>2]!=2;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break k}if(h){a=ka(h);ma(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break l}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!Bb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break l}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}ja(a)}break a;case 3:n=G[c+24|0];l=n<<1;j=F[i+80>>2];m:{if((L(l,j)|0)!=(e|0)){break m}i=F[c+28>>2]!=4;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=ka(l);ma(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}ja(e)}b=a;break a;case 5:l=G[c+24|0];o=l<<2;j=F[i+80>>2];p:{if((L(o,j)|0)!=(e|0)){break p}i=F[c+28>>2]!=6;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=ka(o);ma(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}ja(e)}break a;case 8:p=G[c+24|0];q=p<<2;k=F[i+80>>2];s:{if((L(q,k)|0)!=(e|0)){break s}i=F[c+28>>2];t:{if(!p){break t}a=ka(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){F[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){F[d+24>>2]=-1073741824;F[d+28>>2]=-1073741824;F[d+16>>2]=-1073741824;F[d+20>>2]=-1073741824;F[d+8>>2]=-1073741824;F[d+12>>2]=-1073741824;F[d>>2]=-1073741824;F[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=F[c+68>>2];l=F[c>>2];i=F[c+48>>2];s=G[c+84|0];m=F[c+44>>2];c=F[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=F[l>>2];b=ki(c,m,s?d:F[r+(d<<2)>>2],0)+i|0;la(h,la(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=F[l>>2];g=d<<2;j=ki(c,m,F[g+r>>2],0)+i|0;h=la(a,h+j|0,o);j=F[l>>2];g=ki(c,m,F[r+(g|4)>>2],0)+i|0;la(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=F[l>>2];c=ki(c,m,F[r+(d<<2)>>2],0)+i|0;la(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=F[l>>2];e=ki(g,h,c,m)+i|0;d=la(a,d+e|0,o);e=F[l>>2];p=ki(c,m,g|1,h)+i|0;la(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=F[l>>2];c=ki(g,h,c,m)+i|0;la(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}la((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}ja(a)}a=b;break;default:break b}}b=a}return b|0}function Pd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=Z-80|0;Z=h;e=F[c+36>>2];F[h+72>>2]=F[c+32>>2];F[h+76>>2]=e;f=F[c+28>>2];e=h- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=f;e=F[c+20>>2];F[h+56>>2]=F[c+16>>2];F[h+60>>2]=e;e=F[c+12>>2];F[h+48>>2]=F[c+8>>2];F[h+52>>2]=e;e=F[c+4>>2];F[h+40>>2]=F[c>>2];F[h+44>>2]=e;jc(a,h+40|0,h+24|0);a:{if(F[a>>2]){break a}if(D[a+15|0]<0){ja(F[a+4>>2])}if(G[h+31|0]!=1){b=ka(32);D[b+20|0]=0;c=G[1446]|G[1447]<<8|(G[1448]<<16|G[1449]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1442]|G[1443]<<8|(G[1444]<<16|G[1445]<<24);d=G[1438]|G[1439]<<8|(G[1440]<<16|G[1441]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1434]|G[1435]<<8|(G[1436]<<16|G[1437]<<24);d=G[1430]|G[1431]<<8|(G[1432]<<16|G[1433]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,20);ja(b);break a}j=Z-16|0;Z=j;b:{c:{switch(G[h+32|0]){case 0:e=Kd(ka(48));F[e>>2]=9864;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;case 1:e=Kd(ka(52));F[e+48>>2]=0;F[e>>2]=8176;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;default:break c}}f=ka(32);D[f+28|0]=0;e=G[1520]|G[1521]<<8|(G[1522]<<16|G[1523]<<24);D[f+24|0]=e;D[f+25|0]=e>>>8;D[f+26|0]=e>>>16;D[f+27|0]=e>>>24;e=G[1516]|G[1517]<<8|(G[1518]<<16|G[1519]<<24);g=G[1512]|G[1513]<<8|(G[1514]<<16|G[1515]<<24);D[f+16|0]=g;D[f+17|0]=g>>>8;D[f+18|0]=g>>>16;D[f+19|0]=g>>>24;D[f+20|0]=e;D[f+21|0]=e>>>8;D[f+22|0]=e>>>16;D[f+23|0]=e>>>24;e=G[1508]|G[1509]<<8|(G[1510]<<16|G[1511]<<24);g=G[1504]|G[1505]<<8|(G[1506]<<16|G[1507]<<24);D[f+8|0]=g;D[f+9|0]=g>>>8;D[f+10|0]=g>>>16;D[f+11|0]=g>>>24;D[f+12|0]=e;D[f+13|0]=e>>>8;D[f+14|0]=e>>>16;D[f+15|0]=e>>>24;e=G[1500]|G[1501]<<8|(G[1502]<<16|G[1503]<<24);g=G[1496]|G[1497]<<8|(G[1498]<<16|G[1499]<<24);D[f|0]=g;D[f+1|0]=g>>>8;D[f+2|0]=g>>>16;D[f+3|0]=g>>>24;D[f+4|0]=e;D[f+5|0]=e>>>8;D[f+6|0]=e>>>16;D[f+7|0]=e>>>24;F[j>>2]=-1;e=j|4;ra(e,f,28);k=D[j+15|0];F[h>>2]=F[j>>2];g=h+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[g>>2]=F[e>>2];F[g+4>>2]=k;F[g+8>>2]=F[e+8>>2];F[h+16>>2]=0;break d}ra(g,F[j+4>>2],F[j+8>>2]);e=D[j+15|0];F[h+16>>2]=0;if((e|0)>=0){break d}ja(F[j+4>>2])}ja(f)}Z=j+16|0;e=F[h>>2];e:{if(e){F[a>>2]=e;a=a+4|0;if(D[h+15|0]>=0){b=h|4;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break e}ra(a,F[h+4>>2],F[h+8>>2]);break e}e=F[h+16>>2];F[h+16>>2]=0;F[e+44>>2]=d;f=Z-32|0;Z=f;F[e+32>>2]=c;F[e+40>>2]=b;F[e+4>>2]=d;jc(a,c,f+16|0);f:{if(F[a>>2]){break f}if(D[a+15|0]<0){ja(F[a+4>>2])}b=G[f+23|0];if(($[F[F[e>>2]+8>>2]](e)|0)!=(b|0)){b=ka(64);D[b+50|0]=0;c=G[1304]|G[1305]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1300]|G[1301]<<8|(G[1302]<<16|G[1303]<<24);d=G[1296]|G[1297]<<8|(G[1298]<<16|G[1299]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1292]|G[1293]<<8|(G[1294]<<16|G[1295]<<24);d=G[1288]|G[1289]<<8|(G[1290]<<16|G[1291]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1284]|G[1285]<<8|(G[1286]<<16|G[1287]<<24);d=G[1280]|G[1281]<<8|(G[1282]<<16|G[1283]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1276]|G[1277]<<8|(G[1278]<<16|G[1279]<<24);d=G[1272]|G[1273]<<8|(G[1274]<<16|G[1275]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1268]|G[1269]<<8|(G[1270]<<16|G[1271]<<24);d=G[1264]|G[1265]<<8|(G[1266]<<16|G[1267]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1260]|G[1261]<<8|(G[1262]<<16|G[1263]<<24);d=G[1256]|G[1257]<<8|(G[1258]<<16|G[1259]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,50);ja(b);break f}c=G[f+21|0];D[e+36|0]=c;d=G[f+22|0];D[e+37|0]=d;if((c|0)!=2){b=ka(32);D[b+26|0]=0;c=G[1427]|G[1428]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);d=G[1419]|G[1420]<<8|(G[1421]<<16|G[1422]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1415]|G[1416]<<8|(G[1417]<<16|G[1418]<<24);d=G[1411]|G[1412]<<8|(G[1413]<<16|G[1414]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1407]|G[1408]<<8|(G[1409]<<16|G[1410]<<24);d=G[1403]|G[1404]<<8|(G[1405]<<16|G[1406]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}b=b?2:3;if((b|0)!=(d|0)){b=ka(32);D[b+26|0]=0;c=G[1400]|G[1401]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1396]|G[1397]<<8|(G[1398]<<16|G[1399]<<24);d=G[1392]|G[1393]<<8|(G[1394]<<16|G[1395]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1388]|G[1389]<<8|(G[1390]<<16|G[1391]<<24);d=G[1384]|G[1385]<<8|(G[1386]<<16|G[1387]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}E[F[e+32>>2]+38>>1]=b|512;g:{if(E[f+26>>1]>=0){break g}j=Z-16|0;Z=j;d=ka(36);b=d;F[b+4>>2]=0;F[b+8>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;b=b+16|0;F[b>>2]=0;F[b+4>>2]=0;F[d>>2]=d+4;F[d+32>>2]=0;F[d+12>>2]=b;F[j>>2]=0;c=F[e+32>>2];k=Z-16|0;Z=k;b=0;h:{if(!d){break h}F[j>>2]=c;F[k+12>>2]=0;b=0;if(!fb(1,k+12|0,c)){break h}n=F[k+12>>2];if(n){while(1){i:{if(fb(1,k+8|0,F[j>>2])){b=ka(28);F[b+4>>2]=0;F[b+8>>2]=0;c=b+16|0;F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=b+4;F[b+12>>2]=c;F[b+24>>2]=F[k+8>>2];if(Vc(j,b)){break i}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}b=0;break h}g=Z-16|0;Z=g;F[g+8>>2]=b;j:{if(!b){break j}c=F[d+28>>2];k:{if(c>>>0<I[d+32>>2]){F[g+8>>2]=0;F[c>>2]=b;F[d+28>>2]=c+4;break k}c=0;l:{m:{n:{i=F[d+24>>2];m=F[d+28>>2]-i>>2;b=m+1|0;if(b>>>0<1073741824){i=F[d+32>>2]-i|0;l=i>>>1|0;i=i>>>0>=2147483644?1073741823:b>>>0<l>>>0?l:b;if(i){if(i>>>0>=1073741824){break n}c=ka(i<<2)}l=F[g+8>>2];F[g+8>>2]=0;b=(m<<2)+c|0;F[b>>2]=l;i=(i<<2)+c|0;m=b+4|0;c=F[d+28>>2];l=F[d+24>>2];if((c|0)==(l|0)){break m}while(1){c=c-4|0;p=F[c>>2];F[c>>2]=0;b=b-4|0;F[b>>2]=p;if((c|0)!=(l|0)){continue}break}F[d+32>>2]=i;i=F[d+28>>2];F[d+28>>2]=m;c=F[d+24>>2];F[d+24>>2]=b;if((c|0)==(i|0)){break l}while(1){i=i-4|0;b=F[i>>2];F[i>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(i|0)){continue}break}break l}na();v()}oa();v()}F[d+32>>2]=i;F[d+28>>2]=m;F[d+24>>2]=b}if(c){ja(c)}}b=F[g+8>>2];F[g+8>>2]=0;if(!b){break j}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}Z=g+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}b=Vc(j,d)}Z=k+16|0;o:{if(b){c=F[e+4>>2];b=F[c+4>>2];F[c+4>>2]=d;if(b){ic(b)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break o}b=ka(32);D[b+26|0]=0;c=G[1549]|G[1550]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1545]|G[1546]<<8|(G[1547]<<16|G[1548]<<24);g=G[1541]|G[1542]<<8|(G[1543]<<16|G[1544]<<24);D[b+16|0]=g;D[b+17|0]=g>>>8;D[b+18|0]=g>>>16;D[b+19|0]=g>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1537]|G[1538]<<8|(G[1539]<<16|G[1540]<<24);g=G[1533]|G[1534]<<8|(G[1535]<<16|G[1536]<<24);D[b+8|0]=g;D[b+9|0]=g>>>8;D[b+10|0]=g>>>16;D[b+11|0]=g>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1529]|G[1530]<<8|(G[1531]<<16|G[1532]<<24);g=G[1525]|G[1526]<<8|(G[1527]<<16|G[1528]<<24);D[b|0]=g;D[b+1|0]=g>>>8;D[b+2|0]=g>>>16;D[b+3|0]=g>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b);F[j+8>>2]=0;ic(d)}Z=j+16|0;if(F[a>>2]){break f}if(D[a+15|0]>=0){break g}ja(F[a+4>>2])}if(!($[F[F[e>>2]+12>>2]](e)|0)){b=ka(48);D[b+33|0]=0;D[b+32|0]=G[1374];c=G[1370]|G[1371]<<8|(G[1372]<<16|G[1373]<<24);d=G[1366]|G[1367]<<8|(G[1368]<<16|G[1369]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1362]|G[1363]<<8|(G[1364]<<16|G[1365]<<24);d=G[1358]|G[1359]<<8|(G[1360]<<16|G[1361]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1354]|G[1355]<<8|(G[1356]<<16|G[1357]<<24);d=G[1350]|G[1351]<<8|(G[1352]<<16|G[1353]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1346]|G[1347]<<8|(G[1348]<<16|G[1349]<<24);d=G[1342]|G[1343]<<8|(G[1344]<<16|G[1345]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,33);ja(b);break f}if(!($[F[F[e>>2]+20>>2]](e)|0)){b=Eb(f,1552);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}if(!($[F[F[e>>2]+24>>2]](e)|0)){b=Eb(f,1307);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}Z=f+32|0;if(!F[a>>2]){if(D[a+15|0]<0){ja(F[a+4>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}$[F[F[e>>2]+4>>2]](e)}a=F[h+16>>2];F[h+16>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if(D[h+15|0]>=0){break a}ja(F[h+4>>2])}Z=h+80|0}function Ub(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Z-16|0;Z=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=F[2941];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+11804|0;d=F[a+11812>>2];a=F[d+8>>2];j:{if((b|0)==(a|0)){m=11764,n=oi(c)&g,F[m>>2]=n;break j}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[2943];if(k>>>0>=h>>>0){break i}if(b){a=2<<c;a=(0-a|a)&b<<c;d=ji(0-a&a);a=d<<3;b=a+11804|0;e=F[a+11812>>2];a=F[e+8>>2];k:{if((b|0)==(a|0)){g=oi(d)&g;F[2941]=g;break k}F[a+12>>2]=b;F[b+8>>2]=a}F[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+e>>2]=d;if(k){b=(k&-8)+11804|0;f=F[2946];a=1<<(k>>>3);l:{if(!(a&g)){F[2941]=a|g;a=b;break l}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=e+8|0;F[2946]=c;F[2943]=d;break a}j=F[2942];if(!j){break i}c=F[(ji(0-j&j)<<2)+12068>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break m}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0<f>>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=F[2942];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=O(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=F[(g<<2)+12068>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(F[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<<g;a=(0-a|a)&j;if(!a){break i}a=F[(ji(a&0-a)<<2)+12068>>2]}if(!a){break o}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0<f>>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[2943]-h>>>0<=f>>>0){break i}g=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[e>>2]=0;break c}a=F[2943];if(a>>>0>=h>>>0){d=F[2946];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;F[c+4>>2]=b|1;F[a+d>>2]=b;F[d+4>>2]=h|3;break s}F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;c=0;b=0}F[2943]=b;F[2946]=c;a=d+8|0;break a}i=F[2944];if(i>>>0>h>>>0){b=i-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[3059]){c=F[3061]}else{F[3062]=-1;F[3063]=-1;F[3060]=4096;F[3061]=4096;F[3059]=l+12&-16^1431655768;F[3064]=0;F[3052]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=F[3051];if(d){c=F[3049];g=c+b|0;if(d>>>0<g>>>0|c>>>0>=g>>>0){break a}}t:{if(!(G[12208]&4)){u:{v:{w:{x:{d=F[2947];if(d){a=12212;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0<c+F[a+4>>2]>>>0){break x}a=F[a+8>>2];if(a){continue}break}}c=eb(0);if((c|0)==-1){break u}g=b;d=F[3060];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=F[3051];if(d){a=F[3049];f=a+g|0;if(d>>>0<f>>>0|a>>>0>=f>>>0){break u}}a=eb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=eb(g);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=F[3061];c=c+(j-g|0)&0-c;if((eb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}F[3052]=F[3052]|4}c=eb(b);a=eb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=F[3049]+g|0;F[3049]=a;if(a>>>0>I[3050]){F[3050]=a}y:{e=F[2947];if(e){a=12212;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break y}a=F[a+8>>2];if(a){continue}break}break f}a=F[2945];if(!(a>>>0<=c>>>0?a:0)){F[2945]=c}a=0;F[3054]=g;F[3053]=c;F[2949]=-1;F[2950]=F[3059];F[3056]=0;while(1){d=a<<3;b=d+11804|0;F[d+11812>>2]=b;F[d+11816>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];break e}if(G[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}F[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;F[2947]=c;b=F[2944]+g|0;a=b-a|0;F[2944]=a;F[c+4>>2]=a|1;F[(b+e|0)+4>>2]=40;F[2948]=F[3063];break e}d=0;break b}c=0;break c}if(I[2945]>c>>>0){F[2945]=c}b=c+g|0;a=12212;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break E}break}if(!(G[a+12|0]&8)){break D}}a=12212;while(1){b=F[a>>2];if(b>>>0<=e>>>0){f=b+F[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){F[2947]=i;a=F[2944]+a|0;F[2944]=a;F[i+4>>2]=a|1;break A}if(F[2946]==(g|0)){F[2946]=i;a=F[2943]+a|0;F[2943]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break A}f=F[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=F[g+8>>2];b=f>>>3|0;c=F[g+12>>2];if((c|0)==(d|0)){m=11764,n=F[2941]&oi(b),F[m>>2]=n;break F}F[d+12>>2]=c;F[c+8>>2]=d;break F}h=F[g+24>>2];c=F[g+12>>2];G:{if((g|0)!=(c|0)){b=F[g+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break G}H:{f=g+20|0;b=F[f>>2];if(b){break H}f=g+16|0;b=F[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break F}d=F[g+28>>2];b=(d<<2)+12068|0;I:{if(F[b>>2]==(g|0)){F[b>>2]=c;if(c){break I}m=11768,n=F[2942]&oi(d),F[m>>2]=n;break F}F[h+(F[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}F[c+24>>2]=h;b=F[g+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[g+20>>2];if(!b){break F}F[c+20>>2]=b;F[b+24>>2]=c}g=e+g|0;f=F[g+4>>2];a=a+e|0}F[g+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);J:{if(!(c&a)){F[2941]=a|c;a=b;break J}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=O(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+12068|0;d=F[2942];c=1<<f;K:{if(!(d&c)){F[2942]=c|d;F[b>>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=F[b>>2];while(1){b=c;if((F[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0<e+16>>>0?e:a;F[d+4>>2]=27;a=F[3056];F[d+16>>2]=F[3055];F[d+20>>2]=a;a=F[3054];F[d+8>>2]=F[3053];F[d+12>>2]=a;F[3055]=d+8;F[3054]=g;F[3053]=c;F[3056]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0<f>>>0){continue}break}if((d|0)==(e|0)){break e}F[d+4>>2]=F[d+4>>2]&-2;f=d-e|0;F[e+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);L:{if(!(c&a)){F[2941]=a|c;a=b;break L}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;d=F[2942];c=1<<a;M:{if(!(d&c)){F[2942]=c|d;F[b>>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break e}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=F[2944];if(a>>>0<=h>>>0){break d}b=a-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[2940]=48;a=0;break a}N:{if(!g){break N}b=F[d+28>>2];a=(b<<2)+12068|0;O:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break O}j=oi(b)&j;F[2942]=j;break N}F[g+(F[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}F[c+24>>2]=g;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break N}F[c+20>>2]=a;F[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break P}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);Q:{if(!(c&a)){F[2941]=a|c;a=b;break Q}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;R:{c=1<<a;S:{if(!(c&j)){F[2942]=c|j;F[b>>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break P}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=F[c+28>>2];a=(b<<2)+12068|0;U:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break U}m=11768,n=oi(b)&j,F[m>>2]=n;break T}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break T}F[d+20>>2]=a;F[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break V}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+11804|0;e=F[2946];a=1<<(k>>>3);W:{if(!(a&g)){F[2941]=a|g;a=b;break W}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a}F[2946]=d;F[2943]=f}a=c+8|0}Z=l+16|0;return a|0}function Vc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-32|0;Z=m;o=ka(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];t=F[b>>2];if(t){if((w|0)>1e3){break a}F[m+24>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;d=1;c=F[a>>2];e=F[c+8>>2];h=F[c+12>>2];g=F[c+20>>2];f=F[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=G[f+F[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;F[h+16>>2]=f;F[h+20>>2]=c;Sb(m+16|0,e);if(e){c=F[a>>2];n=Tb(m+16|0);p=F[c+8>>2];g=F[c+12>>2];h=F[c+20>>2];f=F[c+16>>2];k=f+e|0;h=k>>>0<e>>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}la(n,f+F[c>>2]|0,e);d=F[c+20>>2];f=e;e=e+F[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d}j=ka(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=Z-32|0;Z=e;h=t+12|0;c=m+16|0;u=Ya(h,c);i=t+16|0;e:{if((u|0)==(i|0)){F[e+16>>2]=c;f:{g:{d=F[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=G[c+11|0];g=f<<24>>24<0;n=g?F[c>>2]:c;g=g?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;p=d>>>0<g>>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?F[c+16>>2]:c+16|0;q=sa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=F[c>>2];if(d){continue}break h}d=sa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=ka(32);n=d+16|0;g=F[e+16>>2];n:{if(D[g+11|0]>=0){p=F[g+4>>2];F[n>>2]=F[g>>2];F[n+4>>2]=p;F[n+8>>2]=F[g+8>>2];break n}ra(n,F[g>>2],F[g+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;g=F[F[h>>2]>>2];if(g){F[h>>2]=g;c=F[f>>2]}nb(F[h+4>>2],c);F[h+8>>2]=F[h+8>>2]+1;c=1;break f}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break e}Ca(c+12|0,F[c+16>>2]);Ba(c,F[c+4>>2]);ja(c);break e}if(!j){break e}Ca(j+12|0,F[j+16>>2]);Ba(j,F[j+4>>2]);ja(j)}Z=e+32|0;d=(i|0)!=(u|0)}if(D[m+27|0]<0){ja(F[m+16>>2])}if(d){break a}}if(!j){break a}F[m+16>>2]=0;if(!fb(1,m+16|0,F[a>>2])){break a}q=0;x=F[m+16>>2];if(x){while(1){d=0;i=Z-32|0;Z=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;c=F[a>>2];f=F[c+8>>2];o:{p:{h=F[c+12>>2];g=F[c+20>>2];e=F[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=G[e+F[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;F[h+16>>2]=e;F[h+20>>2]=c;Sb(i+16|0,f);if(f){e=F[a>>2];n=Tb(i+16|0);p=F[e+8>>2];g=F[e+12>>2];c=F[e+20>>2];h=F[e+16>>2];k=h+f|0;c=k>>>0<f>>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}la(n,h+F[e>>2]|0,f);c=F[e+20>>2];g=f;f=f+F[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;F[e+16>>2]=f;F[e+20>>2]=c}F[i+12>>2]=0;if(!fb(1,i+12|0,F[a>>2])){break q}f=F[i+12>>2];if(!f){break q}e=F[a>>2];c=F[e+8>>2];h=F[e+16>>2];g=c-h|0;c=F[e+12>>2]-(F[e+20>>2]+(c>>>0<h>>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((f|0)<0){break p}d=ka(f);F[i>>2]=d;c=d+f|0;F[i+8>>2]=c;l=ma(d,0,f);F[i+4>>2]=c;h=F[e+12>>2];y=h;p=F[e+8>>2];c=F[e+20>>2];k=F[e+16>>2];g=f+k|0;c=g>>>0<f>>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){la(l,F[e>>2]+k|0,f);d=F[e+20>>2];c=f+F[e+16>>2]|0;d=c>>>0<f>>>0?d+1|0:d;F[e+16>>2]=c;F[e+20>>2]=d;h=Z-48|0;Z=h;e=Ya(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];s:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];t:{u:{g=e;d=e;e=F[d>>2];if(e){c=F[g+4>>2];if(!c){break u}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break u}e=0;k=1;break t}F[e+8>>2]=F[d+8>>2];k=0}l=F[d+8>>2];c=F[l>>2];v:{if((d|0)==(c|0)){F[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=F[l+4>>2];break v}F[l+4>>2]=e}r=!G[d+12|0];if((d|0)!=(g|0)){l=F[g+8>>2];F[d+8>>2]=l;F[l+(((g|0)!=F[F[g+8>>2]>>2])<<2)>>2]=d;l=F[g>>2];F[d>>2]=l;F[l+8>>2]=d;l=F[g+4>>2];F[d+4>>2]=l;if(l){F[l+8>>2]=d}D[d+12|0]=G[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=G[c+12|0];x:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];k=F[e>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}F[e+8>>2]=F[d+8>>2];k=F[d+8>>2];F[(((d|0)!=F[k>>2])<<2)+k>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}y:{z:{d=F[c>>2];A:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break A}D[c+12|0]=0;c=F[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(G[c+12|0]){break x}}D[c+12|0]=1;break w}e=F[c+4>>2];if(!e){break z}}if(G[e+12|0]){break z}d=c;break y}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break w}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];C:{if(!(!e|G[e+12|0])){d=c;break C}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break x}D[c+12|0]=1;break w}if(e){if(!G[e+12|0]){d=c;break C}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break w}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[g+28>>2];if(c){F[g+32>>2]=c;ja(c)}if(D[g+27|0]<0){ja(F[g+16>>2])}ja(g)}F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=ka(f);c=ma(e,0,f);g=c+f|0;F[h+8>>2]=g;F[h+4>>2]=g;F[h>>2]=c;c=d}la(e,c,f);F:{if(D[i+27|0]>=0){F[h+24>>2]=F[i+24>>2];c=F[i+20>>2];F[h+16>>2]=F[i+16>>2];F[h+20>>2]=c;break F}ra(h+16|0,F[i+16>>2],F[i+20>>2])}Tc(h+28|0,h);f=h+16|0;c=f;G:{H:{d=F[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=G[c+11|0];g=e<<24>>24<0;k=g?F[c>>2]:c;g=g?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;l=d>>>0<g>>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?F[c+16>>2]:c+16|0;z=sa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=F[c>>2];if(d){continue}break I}d=sa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=ka(40);F[d+24>>2]=F[f+8>>2];g=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=g;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;Tc(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}nb(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break G}d=c;c=0}D[h+44|0]=c;F[h+40>>2]=d;c=F[h+28>>2];if(c){F[h+32>>2]=c;ja(c)}if(D[h+27|0]<0){ja(F[h+16>>2])}c=F[h>>2];if(c){F[h+4>>2]=c;ja(c)}Z=h+48|0;break D}na();v()}d=F[i>>2];if(!d){break r}}F[i+4>>2]=d;ja(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(D[i+27|0]<0){ja(F[i+16>>2])}Z=i+32|0;break o}na();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}F[m+12>>2]=0;if(!fb(1,m+12|0,F[a>>2])){break a}c=F[a>>2];e=F[c+8>>2];f=F[c+16>>2];h=e-f|0;d=F[m+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(e>>>0<f>>>0)|0)|0;if(h>>>0<d>>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0<s>>>0){F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;d=F[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0<f>>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=ka(L(e,12))}else{f=0}b=f+L(g,12)|0;F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;c=pa(b+L((c|0)/-12|0,12)|0,o,c);s=f+L(e,12)|0;b=b+12|0;if(o){ja(o)}o=c}q=q+1|0;if(q>>>0<d>>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}na();v()}oa();v()}if(o){ja(o)}Z=m+32|0;return A}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Z-48|0;Z=h;a:{if((c|0)!=1){break a}i=F[a+4>>2];c=F[a+12>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;d=h+8|0;b:{if((b|0)==-2){break b}k=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];if(($[F[F[i>>2]+8>>2]](i)|0)==1){j=Z-32|0;Z=j;l=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];c:{d:{e:{if(($[F[F[i>>2]+8>>2]](i)|0)!=1|b-1>>>0>5){break e}g=$[F[F[i>>2]+36>>2]](i)|0;f=$[F[F[i>>2]+44>>2]](i,c)|0;if(!g|!f){break e}c=$[F[F[i>>2]+40>>2]](i,c)|0;if(c){a=F[i+44>>2];F[j+12>>2]=c;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;f:{g:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=2252;a=b;break f;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3016;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break f;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3264;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break f;case 5:break g;default:break f}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;h:{i:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break i}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=2904;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4128;F[a>>2]=3500;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=3736;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break h}na();v()}break f}e=a;break e}a=F[i+44>>2];F[j+12>>2]=g;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;j:{k:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=4156;a=b;break j;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4580;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break j;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4816;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break j;case 5:break k;default:break j}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;l:{m:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break m}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=4524;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=5624;F[a>>2]=5040;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=5260;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break l}na();v()}break j}e=a}Z=j+32|0;break c}na();v()}if(e){break b}}e=ka(44);F[e+4>>2]=k;F[e>>2]=2960;a=F[d+4>>2];F[e+8>>2]=F[d>>2];F[e+12>>2]=a;a=F[d+12>>2];F[e+16>>2]=F[d+8>>2];F[e+20>>2]=a;a=F[d+20>>2];F[e+24>>2]=F[d+16>>2];F[e+28>>2]=a;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;n:{c=F[d+24>>2];b=F[d+28>>2];if((c|0)!=(b|0)){a=b-c|0;if((a|0)<0){break n}k=ka(a);F[e+32>>2]=k;F[e+40>>2]=(a&-4)+k;while(1){F[k>>2]=F[c>>2];k=k+4|0;c=c+4|0;if((b|0)!=(c|0)){continue}break}F[e+36>>2]=k}F[e>>2]=5652;break b}na();v()}k=e;a=F[h+32>>2];if(!a){break a}F[h+36>>2]=a;ja(a)}Z=h+48|0;return k|0}function rf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-16|0;Z=m;F[m+12>>2]=b;b=ka(32);F[m>>2]=b;F[m+4>>2]=24;F[m+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);d=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);d=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);d=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+24|0]=0;l=Z-48|0;Z=l;f=F[m+12>>2];d=a;a=a+16|0;b=F[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>F[b+16>>2];c=e?c:b;b=F[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=F[c+16>>2]){break a}}F[l+28>>2]=0;F[l+32>>2]=0;y=l+24|0;F[l+24>>2]=y|4;a=l+16|0;F[a>>2]=0;F[a+4>>2]=0;F[l+8>>2]=f;F[l+12>>2]=a;t=l+8|0;a=t;x=Z-16|0;Z=x;u=d+12|0;c=F[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=F[a>>2];while(1){d=c;b=F[c+16>>2];if((b|0)>(a|0)){o=d;c=F[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=F[d+4>>2];if(c){continue}break}o=d+4|0}g=ka(32);b=F[t>>2];q=g+24|0;a=q;F[a>>2]=0;F[a+4>>2]=0;F[g+16>>2]=b;r=g+20|0;F[r>>2]=a;c=F[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=Z-16|0;Z=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=G[f+27|0];h=b<<24>>24<0;i=G[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?F[k+4>>2]:i;b=h?F[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?F[k>>2]:k;h=h?F[f+16>>2]:f+16|0;A=sa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=F[f>>2];m:{a=f;n:{if((a|0)==F[r>>2]){break n}o:{if(!h){b=f;while(1){a=F[b+8>>2];i=F[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=F[b+4>>2];if(b){continue}break}}i=G[k+11|0];s=i<<24>>24;b=(s|0)<0;j=G[a+27|0];n=j<<24>>24<0;p:{i=b?F[k+4>>2]:i;j=n?F[a+20>>2]:j;w=i>>>0<j>>>0?i:j;if(w){b=sa(n?F[a+16>>2]:a+16|0,b?F[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){F[p+12>>2]=f;a=f;break e}F[p+12>>2]=a;a=a+4|0;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(s|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0<i>>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}break g}b=sa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=F[f+4>>2];v:{if(!h){b=f;while(1){a=F[b+8>>2];j=F[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=F[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=G[a+27|0];b=j<<24>>24<0;y:{j=b?F[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=sa((n|0)<0?F[k>>2]:k,b?F[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0<j>>>0){break x}break w}if((b|0)>=0){break w}}if(!h){F[p+12>>2]=f;a=f+4|0;break e}F[p+12>>2]=a;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(n|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0<i>>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}}F[p+12>>2]=a;a=f;break e}F[p+12>>2]=f;F[a>>2]=f}f=a;a=F[a>>2];if(a){b=0}else{a=ka(40);b=a+16|0;E:{if(D[c+27|0]>=0){e=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+24>>2];break E}ra(b,F[c+16>>2],F[c+20>>2])}b=a+28|0;F:{if(D[c+39|0]>=0){e=F[c+32>>2];F[b>>2]=F[c+28>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+36>>2];break F}ra(b,F[c+28>>2],F[c+32>>2])}F[a+8>>2]=F[p+12>>2];F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;b=a;e=F[F[r>>2]>>2];if(e){F[r>>2]=e;b=F[f>>2]}nb(F[r+4>>2],b);F[r+8>>2]=F[r+8>>2]+1;b=1}D[x+12|0]=b;F[x+8>>2]=a;Z=p+16|0;b=F[c+4>>2];G:{if(b){while(1){c=b;b=F[b>>2];if(b){continue}break G}}while(1){a=c;c=F[c+8>>2];if((a|0)!=F[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}F[g+8>>2]=d;F[g>>2]=0;F[g+4>>2]=0;F[o>>2]=g;c=g;a=F[F[u>>2]>>2];if(a){F[u>>2]=a;c=F[o>>2]}nb(F[u+4>>2],c);F[u+8>>2]=F[u+8>>2]+1;a=1}D[l+44|0]=a;F[l+40>>2]=g;Z=x+16|0;c=F[l+40>>2];ib(t|4,F[l+16>>2]);ib(y,F[l+28>>2])}f=Z-48|0;Z=f;d=f+8|0;g=Z-32|0;Z=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(I[2684]<=1|0)){break I}}D[a|0]=49;b=a+1|0;h=0}F[g+12>>2]=h;F[g+8>>2]=b;h=Z-16|0;Z=h;e=Z-16|0;Z=e;J:{q=F[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){D[d+11|0]=g|G[d+11|0]&128;D[d+11|0]=G[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}sb(t,b+1|0);b=F[e+8>>2];F[d>>2]=b;F[d+8>>2]=F[d+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[d+8>>2]=F[d+8>>2]|-2147483648;F[d+4>>2]=g}while(1){if((a|0)!=(q|0)){D[b|0]=G[a|0];b=b+1|0;a=a+1|0;continue}break}D[e+7|0]=0;D[b|0]=G[e+7|0];Z=e+16|0;break J}za();v()}Z=h+16|0;Z=o;F[f+32>>2]=m;L:{M:{a=c+20|0;d=F[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=G[m+11|0];c=b<<24>>24<0;e=c?F[m>>2]:m;b=c?F[m+4>>2]:b;while(1){c=d;d=G[c+27|0];g=d<<24>>24<0;d=g?F[c+20>>2]:d;o=d>>>0<b>>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?F[c+16>>2]:c+16|0;q=sa(e,g,h);if(!q){if(b>>>0<d>>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=F[c>>2];if(d){continue}break N}d=sa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=F[c+4>>2];if(d){continue}break}g=c+4|0}d=ka(40);e=d+16|0;b=F[f+32>>2];T:{if(D[b+11|0]>=0){o=F[b+4>>2];F[e>>2]=F[b>>2];F[e+4>>2]=o;F[e+8>>2]=F[b+8>>2];break T}ra(e,F[b>>2],F[b+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+36>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[g>>2]=d;c=d;b=F[F[a>>2]>>2];if(b){F[a>>2]=b;c=F[g>>2]}nb(F[a+4>>2],c);F[a+8>>2]=F[a+8>>2]+1;a=1;break L}d=c;a=0}D[f+44|0]=a;F[f+40>>2]=d;a=F[f+40>>2];if(D[a+39|0]<0){ja(F[a+28>>2])}b=F[f+12>>2];F[a+28>>2]=F[f+8>>2];F[a+32>>2]=b;F[a+36>>2]=F[f+16>>2];Z=f+48|0;Z=l+48|0;if(D[m+11|0]<0){ja(F[m>>2])}Z=m+16|0}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=Z-32|0;Z=h;g=F[F[a+4>>2]+44>>2];c=F[a+8>>2];d=F[c>>2];c=F[c+4>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=F[g+96>>2];f=(F[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=F[g+104>>2];c=F[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=L(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=l;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=L(e,12)+c|0;if(f>>>0<36){break b}while(1){f=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=f;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];f=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=f;F[d+32>>2]=F[h+24>>2];f=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=f;f=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=f;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}F[g+100>>2]=c;break a}c:{f=F[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0<i>>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=ka(L(i,12))}f=L(n,12)+l|0;d=f;e=L(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=r;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=j;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];j=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=j;F[d+32>>2]=F[h+24>>2];j=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=j;j=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=j;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=F[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=F[c+4>>2];f=f-12|0;d=f;F[d>>2]=F[c>>2];F[d+4>>2]=n;F[d+8>>2]=F[c+8>>2];if((c|0)!=(j|0)){continue}break}c=F[g+96>>2]}F[g+104>>2]=L(i,12)+l;F[g+100>>2]=e;F[g+96>>2]=f;if(c){ja(c)}break a}na();v()}oa();v()}if(d>>>0>=f>>>0){break a}F[g+100>>2]=c+L(d,12)}d:{if(F[a+216>>2]==F[a+220>>2]){j=F[a+4>>2];c=F[j+44>>2];d=F[c+100>>2];f=F[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=F[a+8>>2];i=f+L(c,12)|0;g=L(c,3);e:{f:{if((g|0)==-1){e=F[(F[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=F[F[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=F[F[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=F[F[d>>2]+(g<<2)>>2]}F[i+8>>2]=m;F[i+4>>2]=e;F[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}F[F[j+4>>2]+80>>2]=b;c=1;break d}d=0;F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;l=F[a+8>>2];c=F[l>>2];g=F[l+4>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=ka(c);F[h>>2]=b;F[h+8>>2]=(c&-4)+b;u=h,w=ma(b,0,c)+c|0,F[u+4>>2]=w}c=F[l+24>>2];if((F[l+28>>2]-c|0)<4){break h}f=0;while(1){g=F[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(F[F[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=F[a+216>>2];c=F[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=L(j,144)+n|0;c=F[s+F[F[i+68>>2]>>2]>>2];o:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=F[F[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=F[i+32>>2];i=F[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=F[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=F[F[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;F[(g<<2)+b>>2]=e;s:{if(k>>>0<o>>>0){F[k>>2]=g;k=k+4|0;F[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=ka(c<<2)}else{d=0}e=d+(e<<2)|0;F[e>>2]=g;m=c<<2;c=pa(d,f,i);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(f){ja(f);l=F[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=F[a+220>>2];j=F[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=F[(j+L(c,144)|0)+32>>2];r=i<<2;if(F[q+r>>2]==F[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;F[b+r>>2]=e;if(k>>>0<o>>>0){F[k>>2]=i;k=k+4|0;F[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=ka(c<<2)}else{f=0}e=f+(e<<2)|0;F[e>>2]=i;m=c<<2;c=pa(f,d,j);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(!d){d=c;break u}ja(d);l=F[a+8>>2];d=c;break u}F[(i<<2)+b>>2]=F[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=F[l+24>>2];if((p|0)<F[l+28>>2]-c>>2){continue}break}break h}na();v()}na();v()}oa();v()}na();v()}i=F[a+4>>2];a=F[i+44>>2];c=F[a+100>>2];a=F[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=L(c,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;e=L(c|1,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=L(c,12);c=g+b|0;f=F[c>>2];e=F[c+4>>2];a=a+g|0;F[a+8>>2]=F[c+8>>2];F[a>>2]=f;F[a+4>>2]=e}F[F[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){ja(b)}if(!d){break d}F[h+20>>2]=d;ja(d)}Z=h+32|0;return c}function de(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0;g=Z+-64|0;Z=g;F[a+8>>2]=e;y=a+32|0;f=F[y>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){qa(y,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}Fa(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}Fa(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}Fa(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}Fa(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}H=F[a+52>>2];t=F[a+48>>2];z=ka(16);d=z;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=ka(d);F[g>>2]=r;F[g+8>>2]=d+r;ma(r,0,d)}A=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<<x;n=F[t>>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(F[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=F[F[F[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=F[H>>2];h=F[t+28>>2];p=F[l+(F[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=F[l+(F[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=F[l+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];l=L(e,h);q=L(e,q);p=L(e,p);h=0;o=0;if(G){while(1){F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2];u=h|1;F[j+(u<<2)>>2]=(F[(l+u<<2)+c>>2]+F[(q+u<<2)+c>>2]|0)-F[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&F[O>>2]){break v}d=F[F[F[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ma(r,0,M)}d=j-1|0;q=(d<<2)+z|0;d=L(d,12)+a|0;u=d;x=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[q>>2];F[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(F[F[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(!N){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];o=l|4;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];o=l|8;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];l=l|12;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[l+n>>2]+F[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(G){break n}break m}i=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];n=F[a+16>>2];x:{if((f|0)>(n|0)){F[d+j>>2]=n;break x}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}break k}ta();v()}while(1){j=h<<2;k=j+r|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+r|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+r>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[g>>2];if(a){ja(a)}ja(z);a=F[g+52>>2];if(a){F[g+56>>2]=a;ja(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;ja(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;ja(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;ja(a)}Z=g- -64|0;return A|0}na();v()}function $h(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;h=Z+-64|0;Z=h;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){qa(x,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}Fa(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}Fa(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}Fa(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}Fa(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}H=F[a+52>>2];A=F[a+48>>2];y=ka(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=ka(d);F[h>>2]=t;F[h+8>>2]=d+t;ma(t,0,d)}z=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}n=F[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[H>>2];r=F[A>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(G){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ma(t,0,M)}d=g-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(!N){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];q=n|4;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];q=n|8;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];n=n|12;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[j+n>>2]+F[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(G){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}break k}ta();v()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[h>>2];if(a){ja(a)}ja(y);a=F[h+52>>2];if(a){F[h+56>>2]=a;ja(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;ja(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;ja(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;ja(a)}Z=h- -64|0;return z|0}na();v()}function Yh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0,ba=0,ca=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;N=a+32|0;e=F[N>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}j=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;$=d>>>0<=1?1:d;aa=a+68|0;d=0;while(1){f=F[a+56>>2];e=F[f>>2];if(F[f+4>>2]-e>>2>>>0<=d>>>0){break a}l=Z-80|0;Z=l;f=-1;d:{e:{e=F[e+(d<<2)>>2];if((e|0)==-1){break e}j=F[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=F[F[j>>2]+(g<<2)>>2]}n=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){n=F[F[j>>2]+(e<<2)>>2]}j=F[o+36>>2];e=F[j>>2];j=F[j+4>>2]-e>>2;if(j>>>0<=f>>>0|j>>>0<=n>>>0){break e}f:{g:{h:{i:{j:{k:{i=F[e+(n<<2)>>2];f=F[e+(f<<2)>>2];if((i|0)>=(d|0)|(f|0)>=(d|0)){break k}j=(i<<3)+c|0;u=F[j+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];A=F[j>>2];j=F[g>>2];if(!((A|0)!=(j|0)|(e|0)!=(u|0))){F[o+8>>2]=j;F[o+12>>2]=e;break j}n=F[F[o+4>>2]+(d<<2)>>2];F[l+72>>2]=0;F[l+76>>2]=0;g=l- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[l+56>>2]=0;F[l+60>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+56|0);n=F[F[o+4>>2]+(f<<2)>>2];F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+32>>2]=0;F[l+36>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+32|0);n=F[F[o+4>>2]+(i<<2)>>2];F[l+24>>2]=0;F[l+28>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;F[l+8>>2]=0;F[l+12>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+8|0);g=F[l+16>>2];w=F[l+40>>2];B=g-w|0;O=F[l+44>>2];g=F[l+20>>2]-(O+(g>>>0<w>>>0)|0)|0;J=g;i=ki(B,g,B,g);m=_;g=F[l+8>>2];C=F[l+32>>2];E=g-C|0;P=F[l+36>>2];g=F[l+12>>2]-(P+(g>>>0<C>>>0)|0)|0;K=g;k=i;i=ki(E,g,E,g);g=k+i|0;k=_+m|0;k=g>>>0<i>>>0?k+1|0:k;i=F[l+24>>2];H=F[l+48>>2];I=i-H|0;Q=F[l+52>>2];i=F[l+28>>2]-(Q+(i>>>0<H>>>0)|0)|0;L=i;h=g;g=ki(I,i,I,i);q=h+g|0;h=_+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}n=0;x=mi(-1,2147483647,q,r);f=j>>31;S=f;h=f>>31;R=j;g=h;m=j^g;j=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0<j>>>0|e>>>0<g>>>0;j=f?j:h;i=_;e=f?g:e;if((i|0)==(e|0)&j>>>0>x>>>0|e>>>0>i>>>0){break f}j=F[l+64>>2];U=F[l+68>>2];e=ki(j-w|0,U-((j>>>0<w>>>0)+O|0)|0,B,J);f=_;g=F[l+56>>2];V=F[l+60>>2];i=ki(g-C|0,V-((g>>>0<C>>>0)+P|0)|0,E,K);e=i+e|0;h=_+f|0;m=F[l+72>>2];W=F[l+76>>2];f=ki(m-H|0,W-((m>>>0<H>>>0)+Q|0)|0,I,L);y=f+e|0;e=_+(e>>>0<i>>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;i=e;h=e^y;e=h-e|0;i=(f^i)-((h>>>0<i>>>0)+i|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0<R>>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0<z>>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0<M>>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0<p>>>0;f=mi(-1,2147483647,h?k:Y,h?p:f);h=_;if((h|0)==(i|0)&e>>>0>f>>>0|h>>>0<i>>>0){break f}f=e;e=i;h=K>>31;p=h^E;i=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=p?i:t;h=p?h:k;k=L>>31;p=i;s=k^I;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;i=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=mi(-1,2147483647,i?p:t,i?h:k);h=_;if((h|0)==(e|0)&f>>>0>i>>>0|e>>>0>h>>>0){break f}i=1;f=0;k=li(ki(y,x,B,J),_,q,r);h=k+w|0;e=_+O|0;e=h>>>0<k>>>0?e+1|0:e;k=j-h|0;e=U-((h>>>0>j>>>0)+e|0)|0;k=ki(k,e,k,e);w=_;h=li(ki(y,x,E,K),_,q,r);j=h+C|0;e=_+P|0;e=h>>>0>j>>>0?e+1|0:e;h=g-j|0;e=V-((g>>>0<j>>>0)+e|0)|0;j=ki(h,e,h,e);e=j+k|0;h=_+w|0;h=e>>>0<j>>>0?h+1|0:h;k=e;g=li(ki(y,x,I,L),_,q,r);j=g+H|0;e=_+Q|0;e=g>>>0>j>>>0?e+1|0:e;g=m-j|0;e=W-((j>>>0>m>>>0)+e|0)|0;g=ki(g,e,g,e);j=g+k|0;e=_+h|0;j=ki(j,g>>>0>j>>>0?e+1|0:e,q,r);e=_;m=e;if(!e&j>>>0<=1){break i}h=j;g=m;while(1){e=f<<1|i>>>31;i=i<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break h}g=o;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[g+8>>2]=F[e>>2];F[o+12>>2]=F[e+4>>2]}n=1;break f}f=m;i=j;if(j-1|0){break g}}while(1){e=mi(j,m,i,f);h=f+_|0;e=e+i|0;h=e>>>0<i>>>0?h+1|0:h;i=(h&1)<<31|e>>>1;f=h>>>1|0;e=ki(i,f,i,f);g=_;if((m|0)==(g|0)&e>>>0>j>>>0|g>>>0>m>>>0){continue}break}}e=F[o+20>>2];if(!e){break f}j=e-1|0;m=F[F[o+16>>2]+(j>>>3&536870908)>>2];F[o+20>>2]=j;n=1;e=ki(y,x,z,u);h=_;g=e;e=ki(q,r,M,T);g=g+e|0;h=_+h|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(i,f,A,X);j=m>>>j&1;m=j?0-e|0:e;g=m+g|0;k=h;h=_;k=k+(j?0-(h+((e|0)!=0)|0)|0:h)|0;ba=o,ca=li(g,g>>>0<m>>>0?k+1|0:k,q,r),F[ba+12>>2]=ca;e=ki(y,x,A,X);m=_;g=e;e=ki(q,r,R,S);g=g+e|0;h=_+m|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(i,f,z,u);f=0-e|0;i=_;k=(j?i:0-(((e|0)!=0)+i|0)|0)+h|0;i=g;g=j?e:f;f=i+g|0;ba=o,ca=li(f,f>>>0<g>>>0?k+1|0:k,q,r),F[ba+8>>2]=ca}Z=l+80|0;e=n;break d}ta();v()}j=e;if(!e){return 0}l:{if(F[a+8>>2]<=0){break l}i=F[N>>2];e=0;while(1){f=e<<2;g=F[f+aa>>2];m=F[a+16>>2];m:{if((g|0)>(m|0)){F[f+i>>2]=m;break m}f=f+i|0;m=F[a+12>>2];if((m|0)>(g|0)){F[f>>2]=m;break m}F[f>>2]=g}e=e+1|0;g=F[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;m=e+c|0;n=b+e|0;while(1){g=f<<2;e=g+m|0;g=F[g+n>>2]+F[g+i>>2]|0;F[e>>2]=g;n:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break n}g=g+F[a+20>>2]|0}F[e>>2]=g}f=f+1|0;if((f|0)<F[a+8>>2]){continue}break}}d=d+1|0;if(($|0)!=(d|0)){continue}break}}return j|0}ta();v()}function hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0,ba=0,ca=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;N=a+32|0;e=F[N>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}o=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}n=a+60|0;d=d>>>2|0;$=d>>>0<=1?1:d;aa=a+68|0;d=0;while(1){e=F[a+56>>2];i=F[e>>2];if(F[e+4>>2]-i>>2>>>0<=d>>>0){break a}l=Z-80|0;Z=l;f=-1;i=F[i+(d<<2)>>2];e=-1;d:{if((i|0)==-1){break d}e=i+1|0;f=(e>>>0)%3|0?e:i-2|0;e=i-1|0;if((i>>>0)%3|0){break d}e=i+2|0}g=F[n+36>>2];i=F[g>>2];e:{f:{g:{h:{i:{g=F[g+4>>2]-i>>2;k=f<<2;f=F[F[n+32>>2]+28>>2];j=F[k+f>>2];if(g>>>0<=j>>>0){break i}e=F[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}f=F[i+(j<<2)>>2];j:{k:{j=F[i+(e<<2)>>2];if((d|0)<=(f|0)|(j|0)>=(d|0)){break k}i=(j<<3)+c|0;u=F[i+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];A=F[i>>2];i=F[g>>2];if(!((A|0)!=(i|0)|(e|0)!=(u|0))){F[n+8>>2]=i;F[n+12>>2]=e;break j}o=F[F[n+4>>2]+(d<<2)>>2];F[l+72>>2]=0;F[l+76>>2]=0;g=l- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[l+56>>2]=0;F[l+60>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+56|0);o=F[F[n+4>>2]+(f<<2)>>2];F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+32>>2]=0;F[l+36>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+32|0);o=F[F[n+4>>2]+(j<<2)>>2];F[l+24>>2]=0;F[l+28>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;F[l+8>>2]=0;F[l+12>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+8|0);g=F[l+16>>2];w=F[l+40>>2];B=g-w|0;O=F[l+44>>2];g=F[l+20>>2]-(O+(g>>>0<w>>>0)|0)|0;J=g;j=ki(B,g,B,g);m=_;g=F[l+8>>2];C=F[l+32>>2];E=g-C|0;P=F[l+36>>2];g=F[l+12>>2]-(P+(g>>>0<C>>>0)|0)|0;K=g;k=j;j=ki(E,g,E,g);g=k+j|0;k=_+m|0;k=g>>>0<j>>>0?k+1|0:k;j=F[l+24>>2];H=F[l+48>>2];I=j-H|0;Q=F[l+52>>2];j=F[l+28>>2]-(Q+(j>>>0<H>>>0)|0)|0;L=j;h=g;g=ki(I,j,I,j);q=h+g|0;h=_+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}o=0;x=mi(-1,2147483647,q,r);f=i>>31;S=f;h=f>>31;R=i;g=h;m=i^g;i=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0<i>>>0|e>>>0<g>>>0;i=f?i:h;j=_;e=f?g:e;if((j|0)==(e|0)&i>>>0>x>>>0|e>>>0>j>>>0){break e}i=F[l+64>>2];U=F[l+68>>2];e=ki(i-w|0,U-((i>>>0<w>>>0)+O|0)|0,B,J);f=_;g=F[l+56>>2];V=F[l+60>>2];j=ki(g-C|0,V-((g>>>0<C>>>0)+P|0)|0,E,K);e=j+e|0;h=_+f|0;m=F[l+72>>2];W=F[l+76>>2];f=ki(m-H|0,W-((m>>>0<H>>>0)+Q|0)|0,I,L);y=f+e|0;e=_+(e>>>0<j>>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;j=e;h=e^y;e=h-e|0;j=(f^j)-((h>>>0<j>>>0)+j|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0<R>>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0<z>>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0<M>>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0<p>>>0;f=mi(-1,2147483647,h?k:Y,h?p:f);h=_;if((h|0)==(j|0)&e>>>0>f>>>0|h>>>0<j>>>0){break e}f=e;e=j;h=K>>31;p=h^E;j=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=p?j:t;h=p?h:k;k=L>>31;p=j;s=k^I;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;j=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=mi(-1,2147483647,j?p:t,j?h:k);h=_;if((h|0)==(e|0)&f>>>0>j>>>0|e>>>0>h>>>0){break e}j=1;f=0;k=li(ki(y,x,B,J),_,q,r);h=k+w|0;e=_+O|0;e=h>>>0<k>>>0?e+1|0:e;k=i-h|0;e=U-((h>>>0>i>>>0)+e|0)|0;k=ki(k,e,k,e);w=_;h=li(ki(y,x,E,K),_,q,r);i=h+C|0;e=_+P|0;e=h>>>0>i>>>0?e+1|0:e;h=g-i|0;e=V-((g>>>0<i>>>0)+e|0)|0;i=ki(h,e,h,e);e=i+k|0;h=_+w|0;h=e>>>0<i>>>0?h+1|0:h;k=e;g=li(ki(y,x,I,L),_,q,r);i=g+H|0;e=_+Q|0;e=g>>>0>i>>>0?e+1|0:e;g=m-i|0;e=W-((i>>>0>m>>>0)+e|0)|0;g=ki(g,e,g,e);i=g+k|0;e=_+h|0;i=ki(i,g>>>0>i>>>0?e+1|0:e,q,r);e=_;m=e;if(!e&i>>>0<=1){break h}h=i;g=m;while(1){e=f<<1|j>>>31;j=j<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break g}g=n;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[n+8>>2]=0;F[n+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[g+8>>2]=F[e>>2];F[n+12>>2]=F[e+4>>2]}o=1;break e}ta();v()}f=m;j=i;if(i-1|0){break f}}while(1){e=mi(i,m,j,f);h=f+_|0;e=e+j|0;h=e>>>0<j>>>0?h+1|0:h;j=(h&1)<<31|e>>>1;f=h>>>1|0;e=ki(j,f,j,f);g=_;if((m|0)==(g|0)&e>>>0>i>>>0|g>>>0>m>>>0){continue}break}}e=F[n+20>>2];if(!e){break e}i=e-1|0;m=F[F[n+16>>2]+(i>>>3&536870908)>>2];F[n+20>>2]=i;o=1;e=ki(y,x,z,u);h=_;g=e;e=ki(q,r,M,T);g=g+e|0;h=_+h|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(j,f,A,X);i=m>>>i&1;m=i?0-e|0:e;g=m+g|0;k=h;h=_;k=k+(i?0-(h+((e|0)!=0)|0)|0:h)|0;ba=n,ca=li(g,g>>>0<m>>>0?k+1|0:k,q,r),F[ba+12>>2]=ca;e=ki(y,x,A,X);m=_;g=e;e=ki(q,r,R,S);g=g+e|0;h=_+m|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(j,f,z,u);f=0-e|0;j=_;k=(i?j:0-(((e|0)!=0)+j|0)|0)+h|0;j=g;g=i?e:f;f=j+g|0;ba=n,ca=li(f,f>>>0<g>>>0?k+1|0:k,q,r),F[ba+8>>2]=ca}Z=l+80|0;if(!o){return 0}l:{if(F[a+8>>2]<=0){break l}g=F[N>>2];e=0;while(1){f=e<<2;i=F[f+aa>>2];j=F[a+16>>2];m:{if((i|0)>(j|0)){F[f+g>>2]=j;break m}f=f+g|0;j=F[a+12>>2];if((j|0)>(i|0)){F[f>>2]=j;break m}F[f>>2]=i}e=e+1|0;i=F[a+8>>2];if((e|0)<(i|0)){continue}break}f=0;if((i|0)<=0){break l}e=d<<3;j=e+c|0;m=b+e|0;while(1){i=f<<2;e=i+j|0;i=F[i+m>>2]+F[g+i>>2]|0;F[e>>2]=i;n:{if((i|0)>F[a+16>>2]){k=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break n}k=i+F[a+20>>2]|0}F[e>>2]=k}f=f+1|0;if((f|0)<F[a+8>>2]){continue}break}}d=d+1|0;if(($|0)!=(d|0)){continue}break}}return o|0}ta();v()}function Gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=Z-96|0;Z=n;m=F[a+4>>2];d=F[m+32>>2];j=F[d+8>>2];i=F[d+12>>2];e=i;c=F[d+20>>2];f=F[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=j>>>0|(c|0)>(e|0)){break a}o=F[d>>2];h=G[o+f|0];g=f+1|0;e=g?c:c+1|0;F[d+16>>2]=g;F[d+20>>2]=e;if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}p=G[g+o|0];g=f+2|0;e=g>>>0<2?c+1|0:c;F[d+16>>2]=g;F[d+20>>2]=e;l=h<<24>>24;b:{if((l|0)>=0){k=F[a+216>>2];if(h>>>0>=(F[a+220>>2]-k|0)/144>>>0){break a}k=k+L(h,144)|0;if(F[k>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}k=a+212|0}F[k>>2]=b;c:{d:{e:{f:{g:{h:{k=H[m+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}e=G[g+o|0];f=f+3|0;c=f>>>0<3?c+1|0:c;F[d+16>>2]=f;F[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!p){break i}if(!d){break h}break a}if(p){break g}d=0}if((l|0)<0){e=a+184|0}else{c=F[a+216>>2]+L(h,144)|0;D[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=Z-112|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(120);F[d>>2]=8924;F[d+4>>2]=0;F[d+116>>2]=0;F[d+112>>2]=e;F[d+108>>2]=g;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[d+8>>2]=9136;f=d- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[d+72>>2]=0;F[d+76>>2]=0;F[d+80>>2]=0;F[d+84>>2]=0;F[d+88>>2]=0;F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=F[a+8>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;j=c+32|0;F[j>>2]=0;F[j+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;h=c- -64|0;F[h>>2]=0;F[h+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=9136;F[c+96>>2]=0;F[c+100>>2]=0;F[c+12>>2]=f;h=F[f>>2];i=F[f+4>>2];D[c+111|0]=0;k=j;j=c+111|0;Ea(k,(i-h>>2>>>0)/3|0,j);h=F[c+12>>2];i=F[h+28>>2];h=F[h+24>>2];D[c+111|0]=0;Ea(c+44|0,i-h>>2,j);F[c+28>>2]=d;F[c+24>>2]=g;F[c+20>>2]=e;F[c+16>>2]=f;f=d+8|0;e=c+8|0;lc(f,e);j:{if((e|0)==(f|0)){F[d+92>>2]=F[e+84>>2];break j}gb(d+56|0,F[e+48>>2],F[e+52>>2]);gb(d+68|0,F[e+60>>2],F[e- -64>>2]);gb(d+80|0,F[e+72>>2],F[e+76>>2]);F[d+92>>2]=F[e+84>>2];k:{h=F[e+92>>2];j=F[e+88>>2];i=h-j|0;e=i>>2;f=F[d+104>>2];g=F[d+96>>2];if(e>>>0<=f-g>>2>>>0){i=F[d+100>>2]-g|0;f=i+j|0;m=i>>2;i=e>>>0>m>>>0?f:h;l=i-j|0;if((i|0)!=(j|0)){pa(g,j,l)}if(e>>>0>m>>>0){e=F[d+100>>2];if((h|0)!=(i|0)){while(1){F[e>>2]=F[f>>2];e=e+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}F[d+100>>2]=e;break k}F[d+100>>2]=g+l;break k}if(g){F[d+100>>2]=g;ja(g);F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=0}l:{if((i|0)<0){break l}g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0<g>>>0?g:e;if(e>>>0>=1073741824){break l}f=e<<2;e=ka(f);F[d+96>>2]=e;F[d+104>>2]=e+f;if((h|0)!=(j|0)){f=e;e=(i-4&-4)+4|0;e=la(f,j,e)+e|0}F[d+100>>2]=e;break k}na();v()}}F[c+8>>2]=9136;e=F[c+96>>2];if(e){F[c+100>>2]=e;ja(e)}e=F[c+80>>2];if(e){F[c+84>>2]=e;ja(e)}e=F[c+68>>2];if(e){F[c+72>>2]=e;ja(e)}e=F[c+56>>2];if(e){F[c+60>>2]=e;ja(e)}F[c+8>>2]=9372;e=F[c+44>>2];if(e){ja(e)}e=F[c+32>>2];if(e){ja(e)}Z=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=F[a+216>>2];c=F[m+44>>2];d=ka(80);F[d>>2]=9684;F[d+4>>2]=0;F[d+76>>2]=0;F[d+68>>2]=c;F[d+8>>2]=8624;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;e=e+L(h,144)|0;f=e+104|0;F[d+72>>2]=f;F[d- -64>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[n+24>>2]=c;c=n;F[c+68>>2]=0;F[c+72>>2]=0;F[c+60>>2]=0;F[c+64>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+28>>2]=d;g=F[c+28>>2];F[c+8>>2]=F[c+24>>2];F[c+12>>2]=g;F[c+20>>2]=f;f=e+4|0;F[c+16>>2]=f;F[c+36>>2]=0;F[c+40>>2]=0;F[c+32>>2]=8624;e=F[c+20>>2];F[c>>2]=F[c+16>>2];F[c+4>>2]=e;e=c+32|0;Fd(e,f,c);c=d+8|0;lc(c,e);if((c|0)!=(e|0)){gb(d+56|0,F[e+48>>2],F[e+52>>2])}Ed(e);break c}c=Z+-64|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(80);F[d>>2]=9392;F[d+4>>2]=0;F[d+76>>2]=0;F[d+72>>2]=e;F[d+68>>2]=g;F[d+8>>2]=9556;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d- -64>>2]=0;j=d+56|0;f=j;F[f>>2]=0;F[f+4>>2]=0;f=F[a+8>>2];F[c+40>>2]=0;F[c+44>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;h=c+24|0;F[h>>2]=0;F[h+4>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+8>>2]=0;F[c+12>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c>>2]=9556;F[c+4>>2]=f;i=F[f>>2];l=F[f+4>>2];D[c+63|0]=0;k=h;h=c+63|0;Ea(k,(l-i>>2>>>0)/3|0,h);i=F[c+4>>2];l=F[i+28>>2];i=F[i+24>>2];D[c+63|0]=0;Ea(c+36|0,l-i>>2,h);F[c+20>>2]=d;F[c+16>>2]=g;F[c+12>>2]=e;F[c+8>>2]=f;lc(d+8|0,c);gb(j,F[c+48>>2],F[c+52>>2]);F[c>>2]=9556;e=F[c+48>>2];if(e){F[c+52>>2]=e;ja(e)}F[c>>2]=9372;e=F[c+36>>2];if(e){ja(e)}e=F[c+24>>2];if(e){ja(e)}Z=c- -64|0}if(!d){break a}}d=yc(ka(64),d);c=F[a+4>>2];a=d;d=b;m:{n:{if((d|0)>=0){g=c+8|0;b=F[c+12>>2];j=F[c+8>>2];e=b-j>>2;o:{if((e|0)>(d|0)){break o}f=d+1|0;if(d>>>0>=e>>>0){Pb(g,f-e|0);break o}if(e>>>0<=f>>>0){break o}f=j+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=F[b>>2];F[b>>2]=0;if(e){$[F[F[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}F[c+12>>2]=f}c=F[g>>2]+(d<<2)|0;b=F[c>>2];F[c>>2]=a;if(b){break n}break m}b=a;if(!a){break m}}$[F[F[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}Z=n+96|0;return q|0}function Ab(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e+32768>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>32767){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>32767|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m<M(-32768)|m!=m){break d}n=M(N(m));if(n==M(Infinity)){break d}e=(b<<1)+d|0;if(n<M(2147483648)){i=~~m}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m<M(-32768)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m<M(0)|m>M(1)){break d}e=(b<<1)+d|0;l=R(+m*32767+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=R(l*32767+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return j}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b>>2];if((e|0)<0){break b}F[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>2147483647|k){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m<M(-2147483648)|m!=m){break d}n=M(N(m));if(n==M(Infinity)){break d}e=(b<<2)+d|0;if(n<M(2147483648)){i=~~m}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m<M(-2147483648)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m<M(0)|m>M(1)){break d}e=(b<<2)+d|0;l=R(+m*2147483647+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=R(l*2147483647+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return j}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=D[b|0];if((e|0)<0){break b}E[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}e=(b<<1)+d|0;if(m<M(4294967296)&m>=M(0)){i=~~m>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m>M(1)){break d}e=(b<<1)+d|0;j=R(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=R(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return l}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Ga(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0),o=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=D[b|0];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=E[b>>1];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b>>2];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=F[b+4>>2];e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];i=F[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;F[j>>2]=e;F[j+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=G[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break d}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=J[g>>2];if(k>=M(0x8000000000000000)|k<M(-0x8000000000000000)|k!=k){break a}n=M(N(k));if(n==M(Infinity)){break a}e=(b<<3)+d|0;e:{if(n<M(0x8000000000000000)){j=M(N(k))>=M(1)?~~(k>M(0)?M(P(M(R(M(k*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(k-M(~~k>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=G[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break f}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=K[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=N(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=N(l)>=1?~~(l>0?P(R(l*2.3283064365386963e-10),4294967295):S((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ma(d,0,a<<3)}}function le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i)}ja(c);c=1}return c|0}function xb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}e=(b<<2)+d|0;if(m<M(4294967296)&m>=M(0)){i=~~m>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m>M(1)){break d}e=(b<<2)+d|0;j=R(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=R(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return k}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function rd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}h=F[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0<e>>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}f=e+(d<<2)|0;F[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((c|0)!=(h|0)){continue}break}}F[a+56>>2]=e+(g<<2);F[a+52>>2]=d;F[a+48>>2]=f;if(!h){break f}ja(h)}F[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=F[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=F[F[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=F[F[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=F[a+36>>2];h=d+(c>>>3&536870908)|0;g=F[h>>2];f=1<<c;if(!(g&f)){F[h>>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ka(f,c,d);d=F[a+36>>2]}f=d+i|0;d=F[f>>2];c=1<<e;if(!(d&c)){F[f>>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ka(d,e,c)}c=-1;c=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:c;f=F[a+36>>2]+(c>>>3&536870908)|0;d=F[f>>2];e=1<<c;if(!(d&e)){F[f>>2]=d|e;Ka(a+8|0,c,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){e=L(d,12)+a|0;b=F[e+52>>2];if((b|0)==F[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=F[b>>2];F[e+52>>2]=b;F[a+84>>2]=d;if((c|0)==-1){break e}f=F[a+24>>2];b=(c>>>0)/3|0;j:{if(F[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;F[b>>2]=F[b>>2]|1<<k;d=-1;l:{m:{n:{o:{p:{q:{r:{s:{d=(c|0)!=-1?F[F[F[a+4>>2]>>2]+(c<<2)>>2]:d;f=F[a+36>>2]+(d>>>3&536870908)|0;e=F[f>>2];b=1<<d;if(!(e&b)){F[f>>2]=b|e;i=F[(F[F[a+16>>2]+96>>2]+L(k,12)|0)+((c>>>0)%3<<2)>>2];l=F[F[a+20>>2]+4>>2];f=F[l+4>>2];t:{if((f|0)!=F[l+8>>2]){F[f>>2]=i;F[l+4>>2]=f+4;break t}j=F[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(j|0)){continue}break}}F[l+8>>2]=e+(h<<2);F[l+4>>2]=g;F[l>>2]=b;if(!j){break t}ja(j)}j=F[a+12>>2];f=F[j+4>>2];u:{if((f|0)!=F[j+8>>2]){F[f>>2]=c;F[j+4>>2]=f+4;break u}i=F[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(i|0)){continue}break}}F[j+8>>2]=e+(h<<2);F[j+4>>2]=g;F[j>>2]=b;if(!i){break u}ja(i)}b=F[a+12>>2];F[F[b+12>>2]+(d<<2)>>2]=F[b+24>>2];F[b+24>>2]=F[b+24>>2]+1}if((c|0)==-1){break k}g=F[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=F[F[g+12>>2]+(b<<2)>>2]}v:{w:{if((L(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=F[F[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=F[F[a+24>>2]+(b>>>3&268435452)>>2]&1<<b;if(d){break q}l=(b|0)!=0;break p}l=1;if(!d){break p}break k}na();v()}na();v()}if(!b){break o}break k}b=d?-1:e;x:{if(F[F[a+24>>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=F[F[g>>2]+(c<<2)>>2];if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;e=F[b>>2];F[b>>2]=e+1;k=(e|0)<=0?2:1}if(F[a+84>>2]>=(k|0)&l){break m}j=L(k,12)+a|0;b=F[j+52>>2];y:{if((b|0)!=F[j+56>>2]){F[b>>2]=c;F[j+52>>2]=b+4;break y}i=F[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(i|0)){continue}break}}F[j+48>>2]=d;F[j+52>>2]=c;F[j+56>>2]=e+(g<<2);if(!i){break y}ja(i)}if(F[a+84>>2]<=(k|0)){break x}F[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=F[a+88>>2]+(c<<2)|0;c=F[b>>2];F[b>>2]=c+1;b=(c|0)<=0?2:1}if(F[a+84>>2]<(b|0)){break l}c=f}f=F[a+24>>2];continue}break}k=L(b,12)+a|0;c=F[k+52>>2];z:{if((c|0)!=F[k+56>>2]){F[c>>2]=f;F[k+52>>2]=c+4;break z}i=F[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[k+48>>2]=d;F[k+52>>2]=f;F[k+56>>2]=e+(g<<2);if(!i){break z}ja(i)}d=F[a+84>>2];if((d|0)<=(b|0)){break j}F[a+84>>2]=b;d=b;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}oa();v()}na();v()}na();v()}na();v()}function Mc(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[Lc(10352,10544,e+12|0)>>2];break a}if(a>>>0>=4294967292){V();v()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=Lc(10544,10736,e+8|0)-10544>>2;while(1){d=F[(g<<2)+10544>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0<a>>>0){break a}if((L(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break b}b=F[(a<<2)+10352>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}}Z=e+16|0;return d}function lb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(D[b|0]);J[(h<<2)+d>>2]=i?M(j/M(127)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(G[b|0]);J[(h<<2)+d>>2]=i?M(j/M(255)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(E[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(32767)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(H[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(65535)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(F[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(I[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +F[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +I[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=K[b>>3];b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ma(d,0,a<<2)}return l}function Cb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e+128&65535)>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e+128>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>127|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(127)|l<M(-128)|l!=l){break d}m=M(N(l));if(m==M(Infinity)){break d}e=d+g|0;e:{f:{if(G[a+32|0]){if(l<M(0)|l>M(1)){break d}j=R(+l*127+.5);if(!(N(j)<2147483648)){break f}h=~~j;break e}if(!(m<M(2147483648))){break f}h=~~l;break e}h=-2147483648}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=127|j<-128|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j<0|j>1){break b}j=R(j*127+.5)}g:{if(N(j)<2147483648){h=~~j;break g}h=-2147483648}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function Bb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(255)|l<M(0)|(M(N(l))==M(Infinity)|l!=l)){break d}e=d+g|0;e:{f:{if(G[a+32|0]){if(l>M(1)){break d}j=R(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l<M(4294967296)&l>=M(0))){break f}h=~~l>>>0;break e}h=0}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=255|j<0|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j>1){break b}j=R(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-48|0;Z=e;f=H[5053]|H[5054]<<16;d=H[5051]|H[5052]<<16;E[e+38>>1]=d;E[e+40>>1]=d>>>16;E[e+42>>1]=f;E[e+44>>1]=f>>>16;d=F[2525];F[e+32>>2]=F[2524];F[e+36>>2]=d;d=F[2523];F[e+24>>2]=F[2522];F[e+28>>2]=d;d=F[2521];F[e+16>>2]=F[2520];F[e+20>>2]=d;g=F[b+8>>2];i=F[b+12>>2];h=F[b+20>>2];d=F[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0<f>>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break d}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}f=d+F[b>>2]|0;d=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;D[c+4|0]=G[f+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(sa(c,1250,5)){d=ka(32);D[d+17|0]=0;D[d+16|0]=G[1494];c=G[1490]|G[1491]<<8|(G[1492]<<16|G[1493]<<24);b=G[1486]|G[1487]<<8|(G[1488]<<16|G[1489]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1482]|G[1483]<<8|(G[1484]<<16|G[1485]<<24);b=G[1478]|G[1479]<<8|(G[1480]<<16|G[1481]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,d,17);ja(d);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break f}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+5|0]=G[f+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break h}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+6|0]=G[d+F[b>>2]|0];h=F[b+20>>2];d=F[b+16>>2]+1|0;h=d?h:h+1|0;F[b+16>>2]=d;F[b+20>>2]=h;f=F[b+12>>2];if((f|0)<=(h|0)&I[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break j}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+7|0]=G[d+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}D[c+8|0]=G[d+F[b>>2]|0];d=F[b+20>>2];g=F[b+16>>2];f=g+1|0;i=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=i;i=F[b+8>>2];h=F[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}d=c;c=F[b>>2]+f|0;E[d+10>>1]=G[c|0]|G[c+1|0]<<8;g=F[b+20>>2];c=F[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;F[b+16>>2]=c;F[b+20>>2]=g;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}Z=e+48|0;return}za();v()}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=Z-96|0;Z=e;f=F[a+16>>2];D[e+92|0]=1;F[e+88>>2]=b;F[e+84>>2]=b;F[e+80>>2]=f;j=F[a+20>>2];d=F[j>>2];a:{b:{f=F[F[f+28>>2]+(b<<2)>>2];if(f>>>0<F[j+4>>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(f<<2)>>2]<<2)>>2];f=F[a+4>>2];if(!G[f+84|0]){d=F[F[f+68>>2]+(d<<2)>>2]}F[e+72>>2]=0;F[e+76>>2]=0;j=e- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[e+56>>2]=0;F[e+60>>2]=0;Ga(f,d,D[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!F[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=F[a+20>>2];b=F[n>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[n+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;Ga(b,d,D[b+24|0],e+32|0);d=F[a+20>>2];b=F[d>>2];f=F[F[F[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(f<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ga(b,d,D[b+24|0],e+8|0);g=F[e+8>>2];b=F[e+56>>2];d=g-b|0;p=F[e+60>>2];t=F[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=F[e+40>>2];f=F[e+64>>2];n=h-f|0;u=F[e+68>>2];y=F[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=ki(d,t,n,y);w=o-g|0;x=i-(_+(g>>>0>o>>>0)|0)|0;i=w;h=F[e+16>>2];g=h-f|0;u=F[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=F[e+32>>2];h=k-b|0;w=F[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,h,w);o=i+b|0;i=_+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=F[e+48>>2];f=F[e+72>>2];d=k-f|0;t=F[e+76>>2];x=F[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0<l>>>0?b+1|0:b;l=F[e+24>>2];p=l-f|0;f=F[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=ki(p,f,h,w);l=k-q|0;q=b-(_+(k>>>0<q>>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,f,n,y);r=s+d|0;b=_+b|0;s=r>>>0<s>>>0?b+1|0:b;b=F[e+88>>2];f=F[e+80>>2];d:{if(G[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[e+88>>2]=b;if((b|0)!=-1){break e}}b=F[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[e+92|0]=0;F[e+88>>2]=d;break d}if((b|0)!=F[e+84>>2]){break d}F[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[e+88>>2]=d}b=F[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0<f>>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0<a>>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=li(o,n,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=e+96|0;return}ta();v()}ta();v()}ta();v()}function Jg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=Z-32|0;Z=e;a:{if(!hb(1,e+28|0,F[a+32>>2])){break a}if(!hb(1,e+24|0,F[a+32>>2])){break a}l=F[e+28>>2];if(l>>>0>1431655765){break a}d=F[a+32>>2];c=d;g=F[c+8>>2];b=F[c+16>>2];f=F[c+12>>2];c=F[c+20>>2];i=li(g-b|0,f-(c+(b>>>0>g>>>0)|0)|0,3,0);if(!_&i>>>0<l>>>0|((c|0)>=(f|0)&b>>>0>=g>>>0|(c|0)>(f|0))){break a}g=G[b+F[d>>2]|0];b=b+1|0;c=b?c:c+1|0;F[d+16>>2]=b;F[d+20>>2]=c;b:{c:{if(!g){c=Z-32|0;Z=c;F[c+24>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;d:{e:{b=L(l,3);if(b){if(b>>>0>=1073741824){break e}d=L(l,12);n=ka(d);ma(n,0,d)}b=mc(b,1,F[a+32>>2],n);f:{g:{if(!(!l|!b)){d=0;while(1){h:{g=F[(d<<2)+n>>2];b=g>>>1|0;i:{if(g&1){if((b|0)>(h|0)){break h}b=0-b|0;break i}if((h^2147483647)>>>0<b>>>0){break h}}g=b+h|0;F[c>>2]=g;h=F[(d+1<<2)+n>>2];b=h>>>1|0;j:{if(h&1){if((b|0)>(g|0)){break h}b=0-b|0;break j}if((g^2147483647)>>>0<b>>>0){break h}}g=b+g|0;F[c+4>>2]=g;h=F[(d+2<<2)+n>>2];b=h>>>1|0;k:{if(h&1){if((b|0)>(g|0)){break h}b=0-b|0;break k}if((g^2147483647)>>>0<b>>>0){break h}}d=d+3|0;h=b+g|0;F[c+8>>2]=h;mb(F[a+44>>2]+96|0,c);b=1;j=j+1|0;if((j|0)!=(l|0)){continue}break g}break}b=0;break g}if(!n){break f}}ja(n)}Z=c+32|0;break d}na();v()}if(!b){break a}n=F[e+24>>2];break c}n=F[e+24>>2];if(n>>>0<=255){if(!l){break c}while(1){l:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d=F[a+32>>2];b=d;g=F[b+16>>2];f=F[b+8>>2];c=F[b+20>>2];i=F[b+12>>2];b=i;if(f>>>0<=g>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break l}j=F[d>>2];m=G[j+g|0];b=c;h=g+1|0;b=h?b:b+1|0;F[d+16>>2]=h;F[d+20>>2]=b;F[e+8>>2]=m;m=f>>>0<g>>>0&(c|0)>=(i|0)|(c|0)>(i|0);f=m?g:f;i=m?c:i;if((f|0)==(h|0)&(i|0)==(b|0)){break l}m=G[h+j|0];b=c;h=g+2|0;b=h>>>0<2?b+1|0:b;F[d+16>>2]=h;F[d+20>>2]=b;F[e+12>>2]=m;if((f|0)==(h|0)&(b|0)==(i|0)){break l}h=G[h+j|0];b=c;c=g+3|0;b=c>>>0<3?b+1|0:b;F[d+16>>2]=c;F[d+20>>2]=b;F[e+16>>2]=h;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}if(n>>>0<=65535){if(!l){break c}while(1){m:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];g=b;f=h+2|0;b=f>>>0<2?b+1|0:b;if(c>>>0<f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}m=F[j>>2];i=m+h|0;i=G[i|0]|G[i+1|0]<<8;F[j+16>>2]=f;F[j+20>>2]=b;F[e+8>>2]=i;b=g;i=h+4|0;b=i>>>0<4?b+1|0:b;if(c>>>0<i>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}f=f+m|0;f=G[f|0]|G[f+1|0]<<8;F[j+16>>2]=i;F[j+20>>2]=b;F[e+12>>2]=f;f=c;b=g;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}d=i+m|0;d=G[d|0]|G[d+1|0]<<8;F[j+16>>2]=c;F[j+20>>2]=b;F[e+16>>2]=d;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}n:{if(n>>>0>2097151){break n}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break n}if(!l){break c}while(1){o:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+8>>2]=F[e+4>>2];if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+12>>2]=F[e+4>>2];if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+16>>2]=F[e+4>>2];mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}if(!l){break c}while(1){F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];g=b;f=h+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0<f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}m=F[j>>2];i=m+h|0;i=G[i|0]|G[i+1|0]<<8|(G[i+2|0]<<16|G[i+3|0]<<24);F[j+16>>2]=f;F[j+20>>2]=b;F[e+8>>2]=i;b=g;i=h+8|0;b=i>>>0<8?b+1|0:b;if(c>>>0<i>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}f=f+m|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[j+16>>2]=i;F[j+20>>2]=b;F[e+12>>2]=f;f=c;b=g;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}d=i+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+16>>2]=c;F[j+20>>2]=b;F[e+16>>2]=d;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;k=1;break a}k=0}Z=e+32|0;return k|0}function te(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=Z-16|0;Z=g;f=1;m=$[F[F[a>>2]+24>>2]](a)|0;a:{if((m|0)<=0){break a}r=a+48|0;f=0;while(1){b:{c:{if(!F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}o=l<<2;d=F[o+F[a+36>>2]>>2];c=F[d+8>>2];e=bb(d);if(!e){break c}h=F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[g+12>>2]=F[c+56>>2];d=ka(32);F[g>>2]=d;F[g+4>>2]=24;F[g+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);b=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[d+16|0]=b;D[d+17|0]=b>>>8;D[d+18|0]=b>>>16;D[d+19|0]=b>>>24;D[d+20|0]=c;D[d+21|0]=c>>>8;D[d+22|0]=c>>>16;D[d+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);b=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);b=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;D[d+24|0]=0;c=h+16|0;b=F[c>>2];d:{e:{if(!b){break e}i=F[g+12>>2];d=c;while(1){k=(i|0)>F[b+16>>2];d=k?d:b;b=F[(k?b+4|0:b)>>2];if(b){continue}break}if((c|0)==(d|0)|(i|0)<F[d+16>>2]){break e}b=F[d+24>>2];if(!b){break e}i=d+20|0;d=G[g+11|0];c=d<<24>>24<0;k=c?F[g>>2]:g;d=c?F[g+4>>2]:d;while(1){c=G[b+27|0];j=c<<24>>24<0;c=j?F[b+20>>2]:c;p=c>>>0<d>>>0;f:{g:{h:{i:{j:{k:{n=p?c:d;if(n){j=j?F[b+16>>2]:b+16|0;q=sa(k,j,n);if(q){break k}if(c>>>0<=d>>>0){break j}break f}if(c>>>0<=d>>>0){break i}break f}if((q|0)<0){break f}}c=sa(j,k,n);if(c){break h}}if(p){break g}d=gc(i,g);break d}if((c|0)<0){break g}d=gc(i,g);break d}b=b+4|0}b=F[b>>2];if(b){continue}break}}d=gc(h,g)}if(D[g+11|0]<0){ja(F[g>>2])}if(!d){break c}d=0;c=F[F[o+F[a+36>>2]>>2]+8>>2];if(!F[c+64>>2]){b=ka(32);F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;f=F[c+64>>2];F[c+64>>2]=b;if(f){b=F[f>>2];if(b){F[f+4>>2]=b;ja(b)}ja(f);b=F[c+64>>2]}F[c>>2]=b;f=F[b+20>>2];F[c+8>>2]=F[b+16>>2];F[c+12>>2]=f;f=F[b+24>>2];b=F[b+28>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+16>>2]=f;F[c+20>>2]=b}l:{D[c+24|0]=G[e+24|0];F[c+28>>2]=F[e+28>>2];D[c+32|0]=G[e+32|0];b=F[e+44>>2];F[c+40>>2]=F[e+40>>2];F[c+44>>2]=b;b=F[e+52>>2];F[c+48>>2]=F[e+48>>2];F[c+52>>2]=b;F[c+56>>2]=F[e+56>>2];b=F[e+12>>2];F[c+8>>2]=F[e+8>>2];F[c+12>>2]=b;b=F[e+20>>2];F[c+16>>2]=F[e+16>>2];F[c+20>>2]=b;F[c+60>>2]=F[e+60>>2];f=F[e>>2];m:{if(!f){F[c>>2]=0;b=1;break m}h=F[c>>2];b=0;if(!h){break m}b=F[f>>2];f=F[f+4>>2]-b|0;md(h,b,f,0);b=1}if(!b){break l}D[c+84|0]=G[e+84|0];F[c+80>>2]=F[e+80>>2];if((c|0)!=(e|0)){gb(c+68|0,F[e+68>>2],F[e+72>>2])}n:{h=F[e+88>>2];o:{if(h){f=ka(40);e=F[h>>2];F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=e;e=F[h+12>>2];b=F[h+8>>2];if((e|0)!=(b|0)){b=e-b|0;if((b|0)<0){break n}e=ka(b);F[f+12>>2]=e;F[f+8>>2]=e;F[f+16>>2]=b+e;b=F[h+8>>2];i=F[h+12>>2];p:{if((b|0)==(i|0)){break p}k=i+(b^-1)|0;j=i-b&7;if(j){while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}}if(k>>>0<7){break p}while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((i|0)!=(b|0)){continue}break}}F[f+12>>2]=e}d=F[h+36>>2];F[f+32>>2]=F[h+32>>2];F[f+36>>2]=d;d=F[h+28>>2];F[f+24>>2]=F[h+24>>2];F[f+28>>2]=d;e=F[c+88>>2];F[c+88>>2]=f;if(e){break o}break l}e=F[c+88>>2];F[c+88>>2]=0;if(!e){break l}}d=F[e+8>>2];if(d){F[e+12>>2]=d;ja(d)}ja(e);break l}na();v()}break b}d=F[F[a+36>>2]+(l<<2)>>2];if(!($[F[F[d>>2]+24>>2]](d,r)|0)){break a}}l=l+1|0;f=(m|0)<=(l|0);if((l|0)!=(m|0)){continue}break}}Z=g+16|0;return f|0}function Ld(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a:{b:{if(!H[b+38>>1]){break b}if(!Ta(1,h+12|0,b)){break b}e=F[b+8>>2];f=F[b+16>>2];j=e-f|0;k=F[h+12>>2];e=F[b+12>>2]-(F[b+20>>2]+(e>>>0<f>>>0)|0)|0;if(j>>>0<k>>>6>>>0&(e|0)<=0|(e|0)<0){break b}e=F[h>>2];d=F[h+4>>2]-e>>2;c:{if(d>>>0<k>>>0){qa(h,k-d|0);k=F[h+12>>2];break c}if(d>>>0<=k>>>0){break c}F[h+4>>2]=e+(k<<2)}i=1;if(!k){break a}e=F[b+16>>2];d=F[b+20>>2];r=F[h>>2];l=F[b+8>>2];o=F[b+12>>2];j=0;while(1){i=0;if((d|0)>=(o|0)&e>>>0>=l>>>0|(d|0)>(o|0)){break a}i=F[b>>2];p=G[i+e|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=p>>>2|0;m=0;d:{e:{f:{g:{s=p&3;switch(s|0){case 3:break g;case 0:break e;default:break f}}f=f+j|0;i=0;if(f>>>0>=k>>>0){break a}ma(r+(j<<2)|0,0,(p&252)+4|0);j=f;break d}while(1){if((e|0)==(l|0)&(d|0)==(o|0)){break b}k=G[e+i|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=k<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}F[r+(j<<2)>>2]=f}j=j+1|0;k=F[h+12>>2];if(j>>>0<k>>>0){continue}break}d=h+16|0;o=F[h>>2];f=F[h+16>>2];e=F[h+20>>2]-f|0;h:{if(e>>>0<=4194303){qa(d,1048576-(e>>>2|0)|0);break h}if((e|0)==4194304){break h}F[h+20>>2]=f+4194304}e=h+28|0;j=F[e>>2];f=F[h+32>>2]-j>>3;i:{if(f>>>0<k>>>0){_a(e,k-f|0);j=F[e>>2];break i}if(f>>>0>k>>>0){F[h+32>>2]=(k<<3)+j}if(!k){break b}}l=F[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;h=F[e>>2];m=(d<<3)+j|0;f=i;F[m+4>>2]=f;F[m>>2]=h;e=F[e>>2];i=e+f|0;if(i>>>0>1048576){break b}j:{if(f>>>0>=i>>>0){break j}m=0;h=e&7;if(h){while(1){F[l+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((h|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break j}while(1){e=l+(f<<2)|0;F[e>>2]=d;F[e+28>>2]=d;F[e+24>>2]=d;F[e+20>>2]=d;F[e+16>>2]=d;F[e+12>>2]=d;F[e+8>>2]=d;F[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((k|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}k:{if(!i|(F[g+20>>2]?0:a)){break k}i=0;j=Z-16|0;Z=j;l:{if(!Sa(1,j+8|0,b)){break l}d=F[b+8>>2];f=F[b+16>>2];l=d-f|0;n=F[j+12>>2];h=F[b+20>>2];d=F[b+12>>2]-(h+(d>>>0<f>>>0)|0)|0;e=F[j+8>>2];if((n|0)==(d|0)&e>>>0>l>>>0|d>>>0<n>>>0){break l}d=h+n|0;l=e+f|0;d=l>>>0<f>>>0?d+1|0:d;F[b+16>>2]=l;F[b+20>>2]=d;if((e|0)<=0){break l}b=f+F[b>>2]|0;F[g+48>>2]=b;d=e-1|0;f=d+b|0;l=G[f|0];m:{if(l>>>0<=63){F[g+52>>2]=d;b=G[f|0]&63;break m}n:{switch((l>>>6|0)-1|0){case 0:if(e>>>0<2){break l}d=e-2|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8&16128|G[b|0];break m;case 1:if(e>>>0<3){break l}d=e-3|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break m;default:break n}}d=e-4|0;F[g+52>>2]=d;b=b+d|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[g+56>>2]=b+4194304;i=b>>>0<1069547520}Z=j+16|0;if(!i){break k}if(!a){t=1;break k}b=F[g+52>>2];f=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];j=F[g+24>>2];while(1){o:{if(f>>>0>4194303){break o}while(1){if((b|0)<=0){break o}b=b-1|0;F[g+52>>2]=b;f=G[b+e|0]|f<<8;F[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;l=F[j+(i<<2)>>2];n=d+(l<<3)|0;f=(L(F[n>>2],f>>>20|0)+i|0)-F[n+4>>2]|0;F[g+56>>2]=f;F[(q<<2)+c>>2]=l;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;return t}function kh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=M(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){m=F[d+80>>2];u=Z-16|0;Z=u;g=F[a+4>>2];k=G[b+24|0];h=F[d+48>>2];n=F[F[d>>2]>>2];c=u+8|0;F[c>>2]=1065353216;d=c;J[c>>2]=M(-1<<g^-1)/J[a+20>>2];c=ka(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=J[d>>2];n=F[a+8>>2];v=F[b>>2];d=F[b+48>>2];g=F[b+40>>2];w=F[b+44>>2];if(!G[b+84|0]){f=F[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=F[v>>2];l=ki(g,w,F[f+(i<<2)>>2],0)+d|0;h=la(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));b:{if(M(N(e))<M(2147483648)){r=~~e;break b}r=-2147483648}F[l>>2]=r;j=j|4;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));c:{if(M(N(e))<M(2147483648)){j=~~e;break c}j=-2147483648}F[l+4>>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+h>>2]-J[b+n>>2]))+M(.5))));d:{if(M(N(e))<M(2147483648)){b=~~e;break d}b=-2147483648}F[l>>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=F[v>>2];h=ki(g,w,i,l)+d|0;j=la(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));e:{if(M(N(e))<M(2147483648)){r=~~e;break e}r=-2147483648}F[h>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));f:{if(M(N(e))<M(2147483648)){f=~~e;break f}f=-2147483648}F[h+4>>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+j>>2]-J[b+n>>2]))+M(.5))));g:{if(M(N(e))<M(2147483648)){b=~~e;break g}b=-2147483648}F[h>>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}ja(c);Z=u+16|0;return 1}j=Z-16|0;Z=j;m=F[a+4>>2];i=G[b+24|0];g=F[d+48>>2];h=F[F[d>>2]>>2];d=j+8|0;F[d>>2]=1065353216;l=d;J[d>>2]=M(-1<<m^-1)/J[a+20>>2];d=ka(i<<2);m=F[c+4>>2];q=F[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=J[l>>2];h=F[a+8>>2];v=F[b>>2];l=F[b+48>>2];m=F[b+40>>2];w=F[b+44>>2];if(G[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[q+(c<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));i:{if(M(N(e))<M(2147483648)){r=~~e;break i}r=-2147483648}F[g>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));j:{if(M(N(e))<M(2147483648)){f=~~e;break j}f=-2147483648}F[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));k:{if(M(N(e))<M(2147483648)){b=~~e;break k}b=-2147483648}F[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=F[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[s+(F[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));l:{if(M(N(e))<M(2147483648)){r=~~e;break l}r=-2147483648}F[g>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));m:{if(M(N(e))<M(2147483648)){f=~~e;break m}f=-2147483648}F[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));n:{if(M(N(e))<M(2147483648)){b=~~e;break n}b=-2147483648}F[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}ja(d);Z=j+16|0;return 1}\nfunction Cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+4>>2];e=F[a>>2];f=(c-e|0)/144|0;if(f>>>0<b>>>0){e=a;b=b-f|0;h=F[a+8>>2];c=F[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){va(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=L(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}F[e+4>>2]=c;break a}c:{d:{e:{a=c;c=F[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0<f>>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=ka(L(f,144))}c=L(i,144)+g|0;a=c;h=b&7;if(h){while(1){va(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=L(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=L(f,144)+g|0;d=F[e+4>>2];f=F[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;F[c>>2]=F[a>>2];F[c+4>>2]=F[a+4>>2];F[c+8>>2]=F[a+8>>2];F[c+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[c+16>>2]=F[a+16>>2];F[c+20>>2]=F[a+20>>2];F[c+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;g=G[a+28|0];F[c+40>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;D[c+28|0]=g;F[c+32>>2]=F[a+32>>2];F[c+36>>2]=F[a+36>>2];F[c+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[c+52>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+44>>2]=F[a+44>>2];F[c+48>>2]=F[a+48>>2];F[c+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;g=c- -64|0;F[g>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+56>>2]=F[a+56>>2];F[c+60>>2]=F[a+60>>2];i=g;g=a- -64|0;F[i>>2]=F[g>>2];F[g>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[c+68>>2]=F[a+68>>2];g=F[a+72>>2];F[c+84>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+72>>2]=g;F[c+76>>2]=F[a+76>>2];F[c+80>>2]=F[a+80>>2];F[c+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[c+96>>2]=0;F[c+88>>2]=0;F[c+92>>2]=0;F[c+88>>2]=F[a+88>>2];F[c+92>>2]=F[a+92>>2];F[c+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;g=G[a+100|0];F[c+112>>2]=0;F[c+104>>2]=0;F[c+108>>2]=0;D[c+100|0]=g;F[c+104>>2]=F[a+104>>2];F[c+108>>2]=F[a+108>>2];F[c+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[c+124>>2]=0;F[c+116>>2]=0;F[c+120>>2]=0;F[c+116>>2]=F[a+116>>2];F[c+120>>2]=F[a+120>>2];F[c+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;g=F[a+128>>2];F[c+140>>2]=0;F[c+132>>2]=0;F[c+136>>2]=0;F[c+128>>2]=g;F[c+132>>2]=F[a+132>>2];F[c+136>>2]=F[a+136>>2];F[c+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}F[e+8>>2]=b;a=F[e+4>>2];F[e+4>>2]=h;d=F[e>>2];F[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;ja(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;ja(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;ja(c)}Gb(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}na();v()}oa();v()}F[e+8>>2]=b;F[e+4>>2]=h;F[e>>2]=c}if(d){ja(d)}}return}if(b>>>0<f>>>0){e=e+L(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=F[b+132>>2];if(d){F[c-8>>2]=d;ja(d)}d=F[c-28>>2];if(d){F[c-24>>2]=d;ja(d)}d=F[c-40>>2];if(d){F[c-36>>2]=d;ja(d)}Gb(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}F[a+4>>2]=e}}function Yc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];b=F[a+64>>2];c=F[b+24>>2];if((c|0)==F[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=F[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=g;F[a+56>>2]=b+4;break e}d=F[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=ka(f<<2)}else{e=0}c=e+(h<<2)|0;F[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=e+(f<<2);F[a+56>>2]=h;F[a+52>>2]=c;if(!d){break e}ja(d)}f:{g:{if(!(F[F[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|F[F[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=F[F[F[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=F[a+64>>2];f=F[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|F[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=F[F[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}F[F[a+28>>2]+(e<<2)>>2]=g;b=F[a+44>>2];i:{if((b|0)!=F[a+48>>2]){F[b>>2]=e;F[a+44>>2]=b+4;break i}d=F[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=ka(f<<2)}else{i=0}c=i+(h<<2)|0;F[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+48>>2]=i+(f<<2);F[a+44>>2]=h;F[a+40>>2]=c;if(!d){break i}ja(d)}i=g+1|0;b=F[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=F[a+56>>2];k:{if((b|0)!=F[a+60>>2]){F[b>>2]=i;F[a+56>>2]=b+4;break k}d=F[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=ka(h<<2)}else{g=0}c=g+(j<<2)|0;F[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=g+(h<<2);F[a+56>>2]=j;F[a+52>>2]=c;if(!d){break k}ja(d)}d=i+1|0;b=F[a+44>>2];l:{if((b|0)!=F[a+48>>2]){F[b>>2]=f;F[a+44>>2]=b+4;break l}h=F[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0<j>>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=ka(j<<2)}else{g=0}c=g+(l<<2)|0;F[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(h|0)){continue}break}}F[a+48>>2]=g+(j<<2);F[a+44>>2]=l;F[a+40>>2]=c;if(!h){break l}ja(h)}g=i;i=d}F[F[a+28>>2]+(f<<2)>>2]=g;b=F[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=F[b+24>>2];if(k>>>0<F[b+28>>2]-c>>2>>>0){continue}break}return 1}na();v()}oa();v()}na();v()}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=Z-96|0;Z=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;a:{if((b|0)==-1){break a}j=F[a+20>>2];d=F[j>>2];e=F[F[e>>2]+(b<<2)>>2];if(e>>>0>=F[j+4>>2]-d>>2>>>0){break a}e=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];d=F[a+4>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;j=f- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Ga(d,e,D[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!F[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=F[a+20>>2];b=F[m>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[m+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[(d<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Ga(b,d,D[b+24|0],f+32|0);if((e|0)==-1){break c}d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break c}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Ga(b,d,D[b+24|0],f+8|0);g=F[f+8>>2];b=F[f+56>>2];d=g-b|0;p=F[f+60>>2];t=F[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=F[f+40>>2];e=F[f+64>>2];m=i-e|0;u=F[f+68>>2];y=F[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=ki(d,t,m,y);w=o-g|0;x=h-(_+(g>>>0>o>>>0)|0)|0;h=w;i=F[f+16>>2];g=i-e|0;u=F[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=F[f+32>>2];i=k-b|0;w=F[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,i,w);o=h+b|0;h=_+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=F[f+48>>2];e=F[f+72>>2];d=k-e|0;t=F[f+76>>2];x=F[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0<l>>>0?b+1|0:b;l=F[f+24>>2];p=l-e|0;e=F[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=ki(p,e,i,w);l=k-q|0;q=b-(_+(k>>>0<q>>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,e,m,y);r=s+d|0;b=_+b|0;s=r>>>0<s>>>0?b+1|0:b;nc(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0<g>>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0<e>>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0<a>>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=li(o,m,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=f+96|0;return}ta();v()}ta();v()}ta();v()}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=F[d>>2];i=F[e+60>>2];f=F[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=F[e>>2];F[e>>2]=0;g=F[d>>2];F[d>>2]=h;if(g){xa(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=F[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=F[c>>2];F[c>>2]=0;if(e){xa(e)}if((c|0)!=(d|0)){continue}break}}F[a+12>>2]=d;g=F[a+4>>2];b:{if(!g|(i|0)<0){break b}c=F[g+24>>2];d=F[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==F[F[c>>2]+24>>2]){d=c+4|0;i=F[g+28>>2];if((d|0)!=(i|0)){while(1){h=F[d>>2];F[d>>2]=0;e=F[c>>2];F[c>>2]=h;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=F[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=F[d>>2];F[d>>2]=0;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}if((c|0)!=(d|0)){continue}break}}F[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=L(f,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(F[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;pa(f,c,d-c|0);F[e+24>>2]=d-4}c=F[a+24>>2];d=F[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break e}F[c>>2]=d-1}c=F[a+36>>2];d=F[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break f}F[c>>2]=d-1}c=F[a+48>>2];d=F[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+60>>2];d=F[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}i=a+(i|4)|0;f=F[i>>2];if((f|0)>(b|0)){F[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=F[a>>2];if((f|0)>=(b|0)){break a}F[a>>2]=b-1}}function ja(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0<I[2945]){break a}a=a+b|0;if(F[2946]!=(d|0)){if(b>>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+12068|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[2943]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[2947]==(f|0)){F[2947]=d;a=F[2944]+a|0;F[2944]=a;F[d+4>>2]=a|1;if(F[2946]!=(d|0)){break a}F[2943]=0;F[2946]=0;return}if(F[2946]==(f|0)){F[2946]=d;a=F[2943]+a|0;F[2943]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+12068|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[2946]!=(d|0)){break f}F[2943]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);k:{if(!(c&a)){F[2941]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=O(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+12068|0;l:{m:{c=F[2942];b=1<<e;n:{if(!(c&b)){F[2942]=b|c;F[g>>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[2949]-1|0;F[2949]=a?a:-1}}function di(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){qa(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(m);return 1}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=F[a+48>>2];F[a+52>>2]=e;a:{if((e|0)!=F[a+56>>2]){F[e>>2]=b;F[a+52>>2]=e+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!e){break a}ja(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=F[F[a+4>>2]+28>>2];k=F[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-L(g,3)|0?-1:2)+b|0;j=F[c+(e<<2)>>2];if((j|0)==-1){return 0}b=F[a+36>>2];g=b+(k>>>3&536870908)|0;d=F[g>>2];c=1<<k;if(!(d&c)){F[g>>2]=c|d;Ka(a+8|0,k,i);b=F[a+36>>2]}d=(j>>>3&536870908)+b|0;c=F[d>>2];b=1<<j;if(!(c&b)){F[d>>2]=b|c;Ka(a+8|0,j,e)}f=F[a+52>>2];if((f|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=F[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=F[a+24>>2]+(c>>>3&268435452)|0;d=F[g>>2];c=1<<c;if(d&c){break c}F[g>>2]=c|d;h=F[a+4>>2];c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=F[a+36>>2]+(c>>>3&536870908)|0;i=F[j>>2];e=1<<c;if(i&e){break e}f:{g=F[F[h+40>>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];break e}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|F[F[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=F[F[F[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;f=F[a+24>>2];e=c>>>5|0;j=F[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(F[F[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=F[F[F[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=F[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=F[f+(e<<2)>>2];d=1<<d;if(!(j&d)){break i}}if(g){break j}d=1<<i;f=F[a+24>>2];e=i>>>5|0;j=F[f+(e<<2)>>2];if(!(d&j)){break d}}f=F[a+52>>2]-4|0;F[a+52>>2]=f;break b}if(g){b=c;break d}if(F[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=F[a+52>>2];F[h-4>>2]=b;if(F[a+56>>2]!=(h|0)){F[h>>2]=c;f=h+4|0;break c}m:{i=F[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=ka(e<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;F[b>>2]=F[h>>2];if((h|0)!=(i|0)){continue}break}}F[a+56>>2]=d+(e<<2);F[a+52>>2]=f;F[a+48>>2]=b;if(!i){break b}ja(i);f=F[a+52>>2];break b}na();v()}oa();v()}F[(e<<2)+f>>2]=d|j;c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}F[a+52>>2]=f}if(F[a+48>>2]!=(f|0)){continue}break}}return 1}function he(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){qa(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(l);return 1}function Fb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0);i=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}g=ni(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=ka(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=i;F[c>>2]=0;m=M(F[b+12>>2]+1>>>0);j=J[b+16>>2];d:{if(m>M(j*M(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=M(S(M(m/j)));e:{if(j<M(4294967296)&j>=M(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Mc(d);f=F[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=M(S(M(M(I[b+12>>2])/J[b+16>>2])));h:{if(j<M(4294967296)&j>=M(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(ni(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-O(d-1|0);break i}d=Mc(d)}e=d>>>0<e>>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=ka(h<<2);e=F[b>>2];F[b>>2]=d;if(e){ja(e)}F[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;F[k+F[b>>2]>>2]=0;F[F[b>>2]+(k|4)>>2]=0;F[F[b>>2]+(k|8)>>2]=0;F[F[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){F[F[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=F[b+8>>2];if(!e){break k}d=b+8|0;f=F[e+4>>2];g=ni(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=F[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+F[b>>2]|0;if(!F[k>>2]){F[k>>2]=e;e=d;f=g;break o}F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d}d=F[e>>2];if(d){continue}break}break k}d=F[b>>2];F[b>>2]=0;if(d){ja(d)}F[b+4>>2]=0;break k}oa();v()}f=h-1&f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&F[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+F[b>>2]|0;if(F[h>>2]){F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d;break p}F[h>>2]=e;e=d;f=g}d=F[e>>2];if(d){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];q:{r:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break q}d=F[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0<f>>>0){break s}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break r}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function Vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=L(b,12)+a|0;F[j+12>>2]=F[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((Wc(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=F[a+56>>2]+(m>>>3&536870908)|0;h=F[d>>2];e=1<<m;if(h&e){break e}f=0;while(1){F[d>>2]=e|h;d=F[j+12>>2];f:{if((d|0)!=F[j+16>>2]){F[d>>2]=m;F[j+12>>2]=d+4;break f}n=F[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0<g>>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=ka(i<<2)}else{g=0}h=g+(e<<2)|0;F[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;F[h>>2]=F[d>>2];if((d|0)!=(n|0)){continue}break}}F[j+8>>2]=h;F[j+12>>2]=e;F[j+16>>2]=g+(i<<2);if(!n){break f}ja(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=F[(F[F[a>>2]+96>>2]+L(e,12)|0)+(i-L(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=F[a+56>>2]+(m>>>3&268435452)|0;h=F[d>>2];e=1<<m;if(!(h&e)){continue}}break}if(l|!(g&1)){break e}l=F[j+12>>2]-4|0;g=F[l>>2];d=F[a+56>>2]+(g>>>3&536870908)|0;c=F[d>>2];o=d,p=oi(g)&c,F[o>>2]=p;F[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;Wc(a,-1);break a}na();v()}oa();v()}F[((b<<2)+a|0)+44>>2]=k;b=F[j+12>>2];i=F[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=F[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=F[l+i>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;g=F[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=F[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(c)&a,F[o>>2]=p}}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=F[a+48>>2];F[a+52>>2]=f;a:{if((f|0)!=F[a+56>>2]){F[f>>2]=b;F[a+52>>2]=f+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!f){break a}ja(f)}e=-1;d=F[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=F[F[d>>2]+(i<<2)>>2]}b:{h=b-L(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=F[F[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;g=F[f>>2];d=1<<e;if(!(g&d)){F[f>>2]=d|g;Ka(a+8|0,e,i);c=F[a+36>>2]}g=(j>>>3&536870908)+c|0;d=F[g>>2];c=1<<j;if(!(d&c)){F[g>>2]=c|d;Ka(a+8|0,j,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=F[a+24>>2]+(d>>>3&268435452)|0;g=F[f>>2];d=1<<d;if(g&d){break d}F[f>>2]=d|g;while(1){i=F[a+4>>2];e=F[F[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=F[a+36>>2]+(e>>>3&536870908)|0;f=F[h>>2];g=1<<e;if(f&g){break f}g:{d=F[F[i+24>>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=F[F[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}F[h>>2]=f|g;Ka(j,e,b);break f}F[h>>2]=f|g;Ka(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;e=F[a+24>>2];f=c>>>5|0;i=F[e+(f<<2)>>2];break e}c=-1;g=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=F[e+(f<<2)>>2];d=1<<d;if(!(i&d)){break k}}if(!g){d=1<<h;e=F[a+24>>2];f=h>>>5|0;i=F[e+(f<<2)>>2];if(!(d&i)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(g){b=c;break e}if(F[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=F[a+52>>2];F[e-4>>2]=b;if(F[a+56>>2]!=(e|0)){F[e>>2]=c;c=e+4|0;break d}l:{h=F[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=ka(f<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;F[b>>2]=F[e>>2];if((e|0)!=(h|0)){continue}break}}F[a+56>>2]=d+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!h){break c}ja(h);c=F[a+52>>2];break c}na();v()}oa();v()}F[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function uh(a){a=a|0;var b=0,c=0,d=0,e=0;c=F[a+32>>2];d=F[c+16>>2];e=F[c+12>>2];b=F[c+20>>2];if(I[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=G[F[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;F[c+16>>2]=d;F[c+20>>2]=b;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=ka(384);F[b>>2]=8284;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 2:break d;default:break b}}b=ka(440);F[b>>2]=8336;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}$[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=$[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function ei(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function Vh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ka(b<<2);F[h+24>>2]=b;F[h+20>>2]=0;F[h+16>>2]=c;b=F[a>>2];F[h+12>>2]=0;F[h+8>>2]=b;c=F[a+4>>2];F[h+4>>2]=c&31;F[h>>2]=b+(c>>>3&536870908);e=Z-32|0;Z=e;i=F[h+4>>2];g=F[h+12>>2];j=F[h>>2];d=F[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=F[h+20>>2];c=b+f|0;F[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){F[F[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=F[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<<g&-1>>>i-f;F[c>>2]=F[c>>2]&(i^-1)|i&F[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){pa(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;F[g>>2]=F[g>>2]&(b^-1)|b&F[c+d>>2];break c}F[e+28>>2]=g;F[e+24>>2]=d;F[e+20>>2]=i;F[e+16>>2]=j;F[e+12>>2]=f;F[e+8>>2]=c;b=F[e+28>>2];c=F[e+24>>2];g=(F[e+20>>2]-b|0)+(F[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=F[e+12>>2];d=F[e+8>>2];break d}e:{if(!b){b=F[e+12>>2];break e}d=F[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=F[e+8>>2];m=F[l>>2]&(-1<<d&-1>>>j-i^-1);j=F[c>>2]&(-1<<b&-1>>>k-f);F[l>>2]=m|(b>>>0<d>>>0?j<<d-b:j>>>b-d|0);c=d+i|0;b=c&31;F[e+12>>2]=b;d=l+(c>>>3&536870908)|0;F[e+8>>2]=d;c=f-i|0;if((c|0)>0){F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|j>>>i+F[e+28>>2];F[e+12>>2]=c;b=c}g=g-f|0;c=F[e+24>>2]+4|0;F[e+24>>2]=c}i=-1<<b;f=32-b|0;if((g|0)>=32){j=i^-1;while(1){d=F[e+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<<b;F[e+8>>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>f;c=F[e+24>>2]+4|0;F[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=F[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=F[d>>2]&(i&-1>>>j-f^-1);i=F[c>>2]&-1>>>32-g;F[d>>2]=j|i<<b;b=b+f|0;c=b&31;F[e+12>>2]=c;d=(b>>>3&536870908)+d|0;F[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}F[d>>2]=F[d>>2]&(-1>>>32-b^-1)|i>>>f;F[e+12>>2]=b}F[e+4>>2]=b;F[e>>2]=d}Z=e+32|0;b=F[a>>2];F[a>>2]=F[h+16>>2];F[h+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[h+20>>2];F[h+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[h+24>>2];F[h+24>>2]=c;if(!b){break b}ja(b)}Z=h+32|0;return}na();v()}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=$[F[F[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=F[b+4>>2]-F[b>>2]>>2;e=Z+-64|0;Z=e;f=kb(e);d=L(F[2541],n);cc(f,F[F[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=bc(ka(96),f);D[f+84|0]=1;F[f+72>>2]=F[f+68>>2];ac(f,i);F[f+60>>2]=F[F[a+8>>2]+60>>2];d=F[a+16>>2];F[a+16>>2]=f;if(d){xa(d)}Z=e- -64|0;h=F[a+16>>2];if(!F[h+80>>2]){break a}j=F[F[h>>2]>>2];if(!j){break a}m=F[c+12>>2];e=m;d=F[c+20>>2];g=F[c+8>>2];k=F[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=L(i,n);i=j+F[h+48>>2]|0;h=F[c>>2];j=G[h+k|0];e=k+1|0;f=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=f;b:{c:{if(j){if(mc(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=G[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;d=F[F[a+16>>2]+64>>2];d=F[d+4>>2]-F[d>>2]|0;if((g|0)==F[2541]){e=l<<2;if(e>>>0>d>>>0){break a}g=F[c+8>>2];k=F[c+12>>2];j=F[c+20>>2];d=F[c+16>>2];f=e+d|0;j=f>>>0<e>>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}la(i,d+F[c>>2]|0,e);f=F[c+20>>2];d=e+F[c+16>>2]|0;f=d>>>0<e>>>0?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;break c}if(d>>>0<L(g,l)>>>0){break a}d=F[c+8>>2];f=F[c+16>>2];e=d-f|0;m=d>>>0<f>>>0;d=F[c+20>>2];k=F[c+12>>2]-(m+d|0)|0;m=ki(g,0,l,0)>>>0>e>>>0;e=_;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=F[c+8>>2];j=F[c+12>>2];e=f+g|0;d=e>>>0<g>>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}la(i+(h<<2)|0,F[c>>2]+f|0,g);d=F[c+20>>2];f=g+F[c+16>>2]|0;d=f>>>0<g>>>0?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=F[a+20>>2];if(d){e=0;if($[F[F[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=F[e+i>>2];F[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=F[d+i>>2];F[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=F[d+i>>2];F[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=F[a+20>>2];e:{if(!f){break e}if(!($[F[F[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=F[a+20>>2];if(!($[F[F[a>>2]+44>>2]](a,i,i,l,n,F[b>>2])|0)){break a}}o=1}return o|0}function Lh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<<d;d=-2-e|0;F[a+84>>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Hh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<<d;d=-2-e|0;F[a+84>>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:{if(!H[b+38>>1]){break a}if(!Ta(1,a+12|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];g=d-e|0;f=F[a+12>>2];d=F[b+12>>2]-(F[b+20>>2]+(d>>>0<e>>>0)|0)|0;if(g>>>0<f>>>6>>>0&(d|0)<=0|(d|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;b:{if(c>>>0<f>>>0){qa(a,f-c|0);f=F[a+12>>2];break b}if(c>>>0<=f>>>0){break b}F[a+4>>2]=d+(f<<2)}if(!f){return 1}d=F[b+16>>2];c=F[b+20>>2];l=F[a>>2];j=F[b+8>>2];i=F[b+12>>2];g=0;while(1){if((c|0)>=(i|0)&d>>>0>=j>>>0|(c|0)>(i|0)){return 0}m=F[b>>2];k=G[m+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=k>>>2|0;h=0;c:{d:{e:{f:{n=k&3;switch(n|0){case 3:break f;case 0:break d;default:break e}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ma(l+(g<<2)|0,0,(k&252)+4|0);g=e;break c}while(1){if((d|0)==(j|0)&(c|0)==(i|0)){break a}f=G[d+m|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[l+(g<<2)>>2]=e}f=F[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;g:{if(c>>>0<=16383){qa(b,4096-(c>>>2|0)|0);break g}if((c|0)==16384){break g}F[a+20>>2]=d+16384}c=a+28|0;g=F[c>>2];d=F[a+32>>2]-g>>3;h:{if(d>>>0<f>>>0){_a(c,f-d|0);g=F[c>>2];break h}if(d>>>0>f>>>0){F[a+32>>2]=(f<<3)+g}if(!f){break a}}d=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];e=a;i=(b<<3)+g|0;F[i+4>>2]=a;F[i>>2]=h;c=F[c>>2];a=c+a|0;if(a>>>0>4096){break a}i:{if(a>>>0<=e>>>0){break i}h=0;i=c&7;if(i){while(1){F[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break i}while(1){c=d+(e<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=Z-32|0;Z=f;e=f+8|0;c=Z-80|0;Z=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;jc(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}ra(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}ja(F[c+12>>2]);break a}if(D[c+23|0]<0){ja(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=ka(32);D[b+26|0]=0;a=G[1475]|G[1476]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;F[c+8>>2]=-1;a=c+8|4;ra(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];ja(b);break a}ra(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){ja(F[c+12>>2])}ja(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}Z=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){ja(F[f+12>>2])}Z=f+32|0;return a|0}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-32|0;Z=e;a:{if((c|0)!=3){break a}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if(($[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];b:{if(($[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break b}g=$[F[F[c>>2]+36>>2]](c)|0;a=$[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break b}f=$[F[F[c>>2]+40>>2]](c,f)|0;c:{if(f){if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=5928;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=6492;a=d+96|0;break c}if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=6932;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7352;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=ka(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=7764}Z=e+32|0;return d|0}function $c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=Z-80|0;Z=f;a:{if(!Wb(1,f+76|0,b)){break a}k=F[f+76>>2];if(!k){break a}c=F[b+8>>2];e=F[b+16>>2];c=ki(c-e|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0<e>>>0)|0)|0,5,0);e=_;if(c>>>0<k>>>0&(e|0)<=0|(e|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;b:{if(d>>>0<k>>>0){qa(a+4|0,k-d|0);break b}if(d>>>0<=k>>>0){break b}F[a+8>>2]=c+(k<<2)}p=a+16|0;l=F[a+32>>2];while(1){g=F[b+12>>2];c=g;d=F[b+20>>2];h=F[b+8>>2];e=F[b+16>>2];if((c|0)<=(d|0)&h>>>0<=e>>>0|(c|0)<(d|0)){d=0;break a}m=F[b>>2];q=G[m+e|0];c=d;i=e+1|0;c=i?c:c+1|0;F[b+16>>2]=i;F[b+20>>2]=c;if(h>>>0<=i>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}i=G[i+m|0];c=d;j=e+2|0;c=j>>>0<2?c+1|0:c;F[b+16>>2]=j;F[b+20>>2]=c;if(h>>>0<=j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}j=G[j+m|0];c=d;n=e+3|0;c=n>>>0<3?c+1|0:c;F[b+16>>2]=n;F[b+20>>2]=c;if(h>>>0<=n>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}h=G[m+n|0];c=d;d=e+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(q>>>0>4){d=0;break a}if((i-12&255)>>>0<245){d=0;break a}if(!j){d=0;break a}c=kb(f+8|0);g=(h|0)!=0;d=i-1|0;if(d>>>0<=10){d=F[(d<<2)+10148>>2]}else{d=-1}d=L(d,j);cc(c,q,j,i,g,d,d>>31);if(Wb(1,f+4|0,b)){e=F[f+4>>2];F[f+68>>2]=e;d=bc(ka(96),c);$[F[F[l>>2]+8>>2]](l,F[l+12>>2]-F[l+8>>2]>>2,d);d=(F[l+12>>2]-F[l+8>>2]>>2)-1|0;h=d<<2;F[F[h+F[l+8>>2]>>2]+60>>2]=e;F[F[a+4>>2]+(o<<2)>>2]=d;c=F[a+16>>2];e=F[a+20>>2]-c>>2;c:{if((e|0)>(d|0)){break c}F[f>>2]=-1;d=d+1|0;if(d>>>0>e>>>0){Fa(p,d-e|0,f);c=F[p>>2];break c}if(d>>>0>=e>>>0){break c}F[a+20>>2]=(d<<2)+c}F[c+h>>2]=o;d=1;o=o+1|0;if((o|0)!=(k|0)){continue}break a}break}d=0}Z=f+80|0;return d|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;F[k+8>>2]=c;h=F[a+12>>2];d=F[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=F[a+16>>2];d=F[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ma(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{m=F[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ma(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;h=h-4|0;F[h>>2]=f;if((d|0)!=(m|0)){continue}break}F[a+16>>2]=e;e=F[a+12>>2];F[a+12>>2]=g;d=F[a+8>>2];F[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=F[e>>2];F[e>>2]=0;if(f){xa(f)}if((d|0)!=(e|0)){continue}break}break b}na();v()}oa();v()}F[a+16>>2]=e;F[a+12>>2]=g;F[a+8>>2]=i}if(d){ja(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=F[h>>2];F[h>>2]=0;if(c){xa(c)}if((d|0)!=(h|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}j=L(d,12)+a|0;d=F[j+24>>2];if((d|0)!=F[j+28>>2]){F[d>>2]=b;F[j+24>>2]=d+4;break g}i=F[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=ka(e<<2)}else{d=0}f=d+(f<<2)|0;F[f>>2]=b;d=pa(d,i,g);F[j+20>>2]=d;F[j+24>>2]=f+4;F[j+28>>2]=d+(e<<2);if(!i){break g}ja(i)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;a=a+(b<<2)|0;b=F[a>>2];F[a>>2]=c;if(b){xa(b)}a=F[k+8>>2];F[k+8>>2]=0;if(a){xa(a)}Z=k+16|0;return}na();v()}oa();v()}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(F[a+12>>2]==(b|0)){break a}a=b;b=F[d+4>>2];e=F[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(D[b-1|0]<0){ja(F[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}F[d+12>>2]=a;F[d+4>>2]=e;c=F[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=F[d+4>>2];b:{if((a|0)!=F[d+8>>2]){c:{if(D[c+27|0]>=0){b=F[c+20>>2];F[a>>2]=F[c+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[c+24>>2];break c}ra(a,F[c+16>>2],F[c+20>>2])}F[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=F[d+4>>2];e=F[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(F[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0<k>>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=ka(L(b,12))}h=L(b,12);b=L(f,12)+g|0;g:{if(D[c+27|0]>=0){f=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=f;F[b+8>>2]=F[c+24>>2];break g}ra(b,F[c+16>>2],F[c+20>>2]);e=F[d>>2];a=F[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=F[a+4>>2];b=b-12|0;F[b>>2]=F[a>>2];F[b+4>>2]=h;F[b+8>>2]=F[a+8>>2];F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}F[d+8>>2]=g;a=F[d+4>>2];F[d+4>>2]=f;e=F[d>>2];F[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(D[a-1|0]<0){ja(F[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}na();v()}oa();v()}F[d+8>>2]=g;F[d+4>>2]=f;F[d>>2]=b}if(e){ja(e)}}b=F[c+4>>2];h:{if(b){while(1){a=b;b=F[b>>2];if(b){continue}break h}}while(1){a=F[c+8>>2];b=F[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=F[d>>2];if((F[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+L(i,12)|0;a=D[a+11|0]<0?F[a>>2]:a}return a|0}function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=Z-16|0;Z=i;F[i>>2]=b;f=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}f=b+1|0;F[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}F[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=F[(l<<2)+i>>2];if((j|0)!=-1){f=F[F[F[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=F[a+216>>2];if((g|0)==F[a+220>>2]){break e}while(1){g=L(f,144)+g|0;d=F[g+136>>2];c=F[g+140>>2];g:{if(d>>>0<c>>>0){F[d>>2]=j;F[g+136>>2]=d+4;break g}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break g}ja(d)}f=f+1|0;g=F[a+216>>2];if(f>>>0<(F[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0<n>>>0){break e}f=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!wa(F[a+368>>2]+(f<<4)|0)){break h}g=F[a+216>>2]+L(f,144)|0;d=F[g+136>>2];c=F[g+140>>2];if(d>>>0<c>>>0){F[d>>2]=j;F[g+136>>2]=d+4;break h}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break h}ja(d)}f=f+1|0;if(f>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}Z=i+16|0;return 1}na();v()}oa();v()}na();v()}function Bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-16|0;Z=h;m=-1;a:{b:{c:{if(!Da(1,h+12|0,b)){break c}j=F[h+12>>2];if(j){c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0<j>>>0){break c}while(1){if(!Da(1,h+8|0,b)){break c}c=F[h+8>>2];if(!Da(1,h+8|0,b)){break c}g=c+g|0;c=F[h+8>>2];if(g>>>0<c>>>0){break c}e=g-c|0;c=F[a+40>>2];d:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=g;F[c>>2]=e;F[a+40>>2]=c+12;j=F[h+12>>2];break d}d=c;c=F[a+36>>2];l=d-c|0;d=(l|0)/12|0;f=d+1|0;if(f>>>0>=357913942){break b}i=d<<1;f=d>>>0>=178956970?357913941:f>>>0<i>>>0?i:f;if(f){if(f>>>0>=357913942){break a}i=ka(L(f,12))}else{i=0}d=i+L(d,12)|0;F[d+4>>2]=g;F[d>>2]=e;e=pa(d+L((l|0)/-12|0,12)|0,c,l);F[a+44>>2]=i+L(f,12);F[a+40>>2]=d+12;F[a+36>>2]=e;if(!c){break d}ja(c)}k=k+1|0;if(k>>>0<j>>>0){continue}break}g=0;hc(b,0,0);if(j){while(1){c=G[b+36|0];d=H[F[a+4>>2]+36>>1];e:{f:{if(((d<<8|d>>>8)&65535)>>>0<=513){if(!c){break e}e=0;d=F[b+32>>2];k=d>>>3|0;f=F[b+24>>2];c=k+f|0;i=F[b+28>>2];g:{if(c>>>0>=i>>>0){c=d;break g}e=G[c|0];c=d+1|0;F[b+32>>2]=c;k=c>>>3|0;e=e>>>(d&7)&1}if(i>>>0>f+k>>>0){break f}break e}if(!c){break e}e=0;c=F[b+32>>2];d=F[b+24>>2]+(c>>>3|0)|0;if(d>>>0>=I[b+28>>2]){break e}e=G[d|0]>>>(c&7)&1}F[b+32>>2]=c+1}c=F[a+36>>2]+L(g,12)|0;D[c+8|0]=G[c+8|0]&254|e&1;g=g+1|0;if((j|0)!=(g|0)){continue}break}}D[b+36|0]=0;d=F[b+20>>2];a=0;e=F[b+32>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;c=e+F[b+16>>2]|0;a=(a>>>3|0)+d|0;F[b+16>>2]=c;F[b+20>>2]=c>>>0<e>>>0?a+1|0:a}m=F[b+16>>2]}Z=h+16|0;return m}na();v()}oa();v()}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Cb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Bb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function Jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=F[b+16>>2];h=F[c+4>>2]-k|0;e=F[c>>2]-k|0;F[c>>2]=e;f=h;F[c+4>>2]=f;l=F[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=L(j,l);f=(e<<1)-n|0;i=(L(g,j)|0)>=0;e=L(g,l);f=((i?0-f|0:f)+e|0)/2|0;F[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;F[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}F[c>>2]=f;F[c+4>>2]=g;j=0}e=F[d>>2]+f|0;h=F[b+16>>2];k:{if((e|0)>(h|0)){e=e-F[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=F[b+4>>2]+e|0}c=F[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-F[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=L(f,h);d=d-e|0;f=(L(c,f)|0)>=0;g=f?0-d|0:d;d=L(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;F[b>>2]=e+k;F[b+4>>2]=c+k}function Uh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0<e>>>0){qa(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ma(ka(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ja(n);return 1}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[b+80>>2];b=G[c+24|0];g=L(j,b);a:{if(!b){break a}h=b<<2;f=ka(h);a=f;k=b&7;if(k){while(1){F[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=F[d>>2];a=F[d+4>>2]-e>>2;b:{if(a>>>0<g>>>0){qa(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}F[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!lb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!lb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break e}m=F[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;J[g>>2]=J[h+f>>2];J[g+4>>2]=J[(h|4)+f>>2];J[g+8>>2]=J[(h|8)+f>>2];J[g+12>>2]=J[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){J[(e<<2)+m>>2]=J[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}ja(f)}return i|0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;c=F[b+20>>2];d=F[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=F[b+12>>2];a:{if(I[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((h|0)<0){break a}Na(a+76|0,h);c=k;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!Aa(c,b)){break b}if(h){g=1;while(1){d=1<<i;e=wa(c);f=F[a+76>>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=F[f>>2]&(d^-1)}else{d=d|F[f>>2]}g=e^1;F[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=F[b+8>>2];e=F[b+12>>2];f=e;e=F[b+20>>2];g=e;l=F[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=F[b>>2];d=m+l|0;j=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((d|0)<(j|0)){break b}F[a+16>>2]=d;F[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0<j>>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;F[a+20>>2]=c;b=c>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(c&1){break b}F[a+24>>2]=b-1}}Z=k+16|0;return i|0}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!xb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!xb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!yb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!yb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!Ab(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!Ab(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!zb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!zb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function kc(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)==-1?-1:F[F[F[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Dg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=F[a+32>>2];f=F[b+8>>2];h=F[b+12>>2];g=F[b+20>>2];c=F[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=G[F[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;F[e+16>>2]=c;F[e+20>>2]=b;c:{if(!f){break c}while(1){if($[F[F[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=F[a+8>>2];b=F[a+12>>2];if((d|0)!=(b|0)){while(1){c=F[d>>2];if(!($[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=F[F[a+8>>2]+(d<<2)>>2];if(!($[F[F[b>>2]+12>>2]](b,F[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=F[j+F[a+8>>2]>>2];k=$[F[F[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=F[F[a+8>>2]+j>>2];c=$[F[F[c>>2]+20>>2]](c,d)|0;e=F[a+20>>2];g=F[a+24>>2]-e>>2;e:{if(c>>>0<g>>>0){break e}h=c+1|0;if(h>>>0>g>>>0){qa(i,h-g|0);e=F[i>>2];break e}if(g>>>0<=h>>>0){break e}F[a+24>>2]=(h<<2)+e}F[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!($[F[F[a>>2]+28>>2]](a)|0)){break b}e=$[F[F[a>>2]+32>>2]](a)|0}return e|0}return 0}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Oc(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{b=c;c=F[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0<h>>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=pa(j,c,i);F[a+88>>2]=f;F[a+84>>2]=b;F[a+92>>2]=b+(e<<2);if(c){ja(c)}break b}na();v()}oa();v()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function ab(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=ka(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){F[d>>2]=F[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;F[f>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[a+8>>2]=(h<<2)+k;F[a+4>>2]=g;F[a>>2]=f;if(i){ja(i)}return}na();v()}oa();v()}function Xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){f=F[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){F[d>>2]=F[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){F[f>>2]=F[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=ka(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;g=b&7;if(g){while(1){F[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}na();v()}function Ka(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=F[(F[F[a+8>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2];a:{h=F[F[a+12>>2]+4>>2];e=F[h+4>>2];if((e|0)!=F[h+8>>2]){F[e>>2]=j;F[h+4>>2]=e+4;break a}b:{i=F[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=ka(g<<2)}else{f=0}d=k+f|0;F[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=j;F[h>>2]=d;if(i){ja(i)}break a}na();v()}oa();v()}c:{d:{h=F[a+4>>2];e=F[h+4>>2];e:{if((e|0)!=F[h+8>>2]){F[e>>2]=c;F[h+4>>2]=e+4;break e}i=F[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=ka(g<<2)}else{f=0}d=f+(j<<2)|0;F[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=c;F[h>>2]=d;if(!i){break e}ja(i)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}na();v()}oa();v()}function pb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=F[a+8>>2];i=F[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}k=F[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=ka(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=la(g,c,h)+h|0}d=pa(e,k,j);c=i-b|0;b=pa(g,b,c);F[a+8>>2]=e+f;F[a+4>>2]=b+c;F[a>>2]=d;if(k){ja(k)}return}na();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;pa(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function la(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){Y(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0<e>>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0<c>>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0<a>>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0<e>>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function sd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=8336;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;ja(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;ja(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;ja(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;ja(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];ja(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Fa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=ka(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=pa(k,i,j);F[a+4>>2]=e;F[a>>2]=b;F[a+8>>2]=b+(g<<2);if(i){ja(i)}return}na();v()}oa();v()}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}if(d>>>0<b>>>0){h=Z-16|0;Z=h;b=b-d|0;if(b){g=G[a+11|0]>>>7|0?(F[a+8>>2]&2147483647)-1|0:10;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}i=d+b|0;if(g-d>>>0<b>>>0){a:{e=Z-16|0;Z=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(G[a+11|0]>>>7|0){f=F[a>>2]}else{f=a}if(g>>>0<1073741799){F[e+12>>2]=g<<1;F[e>>2]=c+g;c=Z-16|0;Z=c;Z=c+16|0;c=e+12|0;c=F[(I[e>>2]<I[c>>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(e,c);c=F[e>>2];if(d){db(c,f,d)}if((g|0)!=10){ja(f)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;Z=e+16|0;break a}za();v()}}f=d;if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=f+d|0;e=Z-16|0;Z=e;D[e+15|0]=0;while(1){if(b){D[f|0]=G[e+15|0];b=b-1|0;f=f+1|0;continue}break}Z=e+16|0;Ic(a,i);D[h+15|0]=0;D[d+i|0]=G[h+15|0]}Z=h+16|0;return}if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=Z-16|0;Z=f;Ic(a,b);D[f+15|0]=0;D[b+d|0]=G[f+15|0];Z=f+16|0}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;d=F[a+84>>2];F[a+84>>2]=0;if(d){ja(d)}F[a+76>>2]=0;F[a+80>>2]=0;d=F[a+72>>2];F[a+72>>2]=0;if(d){ja(d)}d=F[b>>2];c=F[b+4>>2];D[g+15|0]=0;Ea(a,c-d>>2,g+15|0);d=F[b+28>>2];c=F[b+24>>2];D[g+14|0]=0;Ea(a+12|0,d-c>>2,g+14|0);Xb(a+28|0,F[b+4>>2]-F[b>>2]>>2,10284);c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+52>>2];c:{if(f>>>0<=F[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=F[a+56>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+60>>2]=f;F[a+56>>2]=h;F[a+52>>2]=c;if(!e){break c}ja(e)}c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+40>>2];d:{if(f>>>0<=F[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=F[a+44>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+48>>2]=f;F[a+44>>2]=h;F[a+40>>2]=c;if(!e){break d}ja(e)}D[a+24|0]=1;F[a+64>>2]=b}Z=g+16|0;return}na();v()}na();v()}function nb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function mi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=O(d)-O(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}_=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>ji(d)|0;_=0;break a}if(!(c-1&c)){break f}h=(O(c)+33|0)-O(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}_=0;a=(b>>>0)/(d>>>0)|0;break a}e=O(d)-O(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=ji(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<<c)-1&b)<<32-c|a>>>c}_=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<<f)-1&b)<<32-f|a>>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<<f;a=0}else{b=(1<<f)-1&a>>>32-f|b<<f;a=a<<f}if(h){f=d-1|0;g=c-1|0;m=(g|0)!=-1?f+1|0:f;while(1){j=e<<1|i>>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0<k>>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}_=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}_=b}return a}function yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){e=F[c+8>>2];F[a+4>>2]=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);f=a+8|0;d=G[b+24|0];h=F[a+8>>2];g=F[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){qa(f,d-g|0);d=G[b+24|0];e=F[c+8>>2];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=F[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;F[g+f>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[f+(g|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[f+(g|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[f+(g|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;F[f+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;F[d+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);d=1}return d|0}function Yg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=h;F[e>>2]=c;if(!d){break b}ja(d)}b=F[a+12>>2];c=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=F[d>>2];c=F[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Fa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){c=1;break d}b=0;while(1){c=rd(e,F[(b<<2)+d>>2]);if(!c){break d}f=F[a+116>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break d}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=rd(e,L(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}Z=g+16|0;return c|0}na();v()}function md(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=F[a+4>>2];b=F[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=F[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ma(f,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0<e>>>0?e:c;e=ka(f);ma(e+d|0,0,g);d=pa(e,b,d);F[a+8>>2]=d+f;F[a+4>>2]=c+d;F[a>>2]=d;if(!b){break c}ja(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=F[a+4>>2];f=F[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=F[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ma(e,0,d)+d|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=ka(e);ma(h+g|0,0,d);d=pa(h,f,g);F[a+8>>2]=d+e;F[a+4>>2]=c+d;F[a>>2]=d;if(!f){break d}ja(f);break d}if(c>>>0>=g>>>0){break d}F[a+4>>2]=c+f}if(!c){break c}pa(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;g=1;break a}na();v()}return g}function Lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;n=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0<d>>>0){ab(n,d-e|0,9124);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[n>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=Z-48|0;Z=e;a=F[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<<a;F[e+20>>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;k=F[F[b>>2]>>2];l=F[b+48>>2];f=F[b+40>>2];i=F[b+44>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=ki(f,i,g,0);i=g;g=g+l|0;la(h,g+k|0,f);Kc(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+j>>2]=F[e+12>>2];F[(f|4)+j>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0<F[c+4>>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=F[F[b>>2]>>2];i=F[b+48>>2];c=F[b+40>>2];f=ki(c,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;la(k,f+l|0,c);Kc(e+16|0,k,e+12|0,e+8|0);c=d<<2;F[c+j>>2]=F[e+12>>2];F[(c|4)+j>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}Z=e+48|0;return m>>>0<29|0}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+108>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){ab(m,e-f|0,9124);d=F[a+108>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+112>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=Z-16|0;Z=k;if(F[c+28>>2]==9){d=F[a+4>>2];h=G[c+24|0];e=h<<2;f=ka(e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<<d^-1;if((d|0)>0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}if(h){p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=F[a+8>>2];i=J[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;J[g+f>>2]=M(i*M(F[q>>2]))+J[g+m>>2];g=g|4;J[g+f>>2]=M(i*M(F[q+4>>2]))+J[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;J[d+f>>2]=M(i*M(F[(b<<2)+p>>2]))+J[d+m>>2];b=b+1|0}la(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){la(F[F[c+64>>2]>>2]+b|0,f,e);b=b+e|0;la(b+F[F[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}la(F[F[c+64>>2]>>2]+b|0,f,e)}ja(f)}Z=k+16|0;return o|0}function Rg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+68>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){ab(m,e-f|0,9124);d=F[a+68>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+72>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Na(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=Z-16|0;Z=d;a:{f=F[a+4>>2];b:{if(f>>>0<b>>>0){e=b-f|0;c=F[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){F[a+4>>2]=b;h=f&31;b=F[a>>2]+(f>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0<c>>>0?c:b}else{b=2147483647}$a(d,b);f=F[a+4>>2];F[d+4>>2]=f+e;i=F[a>>2];b=F[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){pa(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[i+g>>2]&c}i=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=i;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!i){break c}ja(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0<e>>>0?c:e;F[b>>2]=F[b>>2]&(-1<<h&-1>>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ma(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(e&31)^-1);break b}F[a+4>>2]=b}Z=d+16|0;return}na();v()}function Aa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=Z-16|0;Z=i;f=F[b+20>>2];h=F[b+12>>2];c=F[b+16>>2];a:{if((f|0)>=(h|0)&c>>>0>=I[b+8>>2]|(f|0)>(h|0)){break a}D[a+12|0]=G[c+F[b>>2]|0];c=F[b+20>>2];f=F[b+16>>2]+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;if(!Qd(1,i+12|0,b)){break a}h=F[b+8>>2];f=F[b+16>>2];g=h-f|0;c=F[i+12>>2];d=f>>>0>h>>>0;h=F[b+20>>2];e=F[b+12>>2]-(d+h|0)|0;if(g>>>0<c>>>0&(e|0)<=0|(e|0)<0|(c|0)<=0){break a}g=f+F[b>>2]|0;F[a>>2]=g;b:{c:{e=c-1|0;j=e+g|0;d=G[j|0];d:{if(d>>>0<=63){F[a+4>>2]=e;d=G[j|0]&63;break d}e:{switch((d>>>6|0)-1|0){case 1:break c;case 0:break e;default:break a}}if(c>>>0<2){break a}e=c-2|0;F[a+4>>2]=e;g=g+e|0;d=G[g+1|0]<<8&16128|G[g|0]}F[a+8>>2]=d+4096;break b}if(c>>>0<3){break a}e=c-3|0;F[a+4>>2]=e;d=a;a=g+e|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[d+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=h;d=c;c=c+f|0;a=d>>>0>c>>>0?a+1|0:a;F[b+16>>2]=c;F[b+20>>2]=a;k=1}Z=i+16|0;return k}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[a+12>>2];i=F[a+8>>2];d=e-i>>2;b=G[b+24|0];a:{if(d>>>0<b>>>0){qa(a+8|0,b-d|0);i=F[a+8>>2];e=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;F[a+12>>2]=e}b=0;f=F[c+8>>2];h=F[c+12>>2];j=F[c+20>>2];e=e-i|0;d=F[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0<g>>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}la(i,d+F[c>>2]|0,e);d=F[c+20>>2];g=e;e=e+F[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;f=F[c+8>>2];h=F[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0<g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=d;f=d;e=F[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;h=F[c+12>>2];if((f|0)>=(h|0)&d>>>0>=I[c+8>>2]|(f|0)>(h|0)){break b}f=G[d+F[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;if(f-1>>>0>29){break b}F[a+4>>2]=f;b=1}return b|0}function Kc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!$c(a,b)){break a}h=a+36|0;g=$[F[F[a>>2]+24>>2]](a)|0;e=F[a+40>>2];d=F[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Pb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){$[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=F[b+20>>2];f=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(f|0)&d>>>0>=I[b+8>>2]|(c|0)>(f|0)){break c}f=G[F[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;d=$[F[F[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+F[a+36>>2]|0;c=F[i>>2];F[i>>2]=d;if(c){$[F[F[c>>2]+4>>2]](c)}c=F[F[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=$[F[F[a>>2]+28>>2]](a)|0,m=$[F[F[a>>2]+20>>2]](a,e)|0,j=F[F[c>>2]+8>>2],$[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=F[a>>2];c=g+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<<b;f=F[a+64>>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=F[F[f>>2]+(c<<2)>>2]}c=F[a+12>>2];h=(d>>>3&536870908)+c|0;F[h>>2]=F[h>>2]|1<<d;b:{c:{if(!e){d:{e:{if((b>>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=F[F[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;F[e>>2]=F[e>>2]|1<<d;d=-1;b=F[F[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+g|0;F[a>>2]=F[a>>2]|1<<b;a=b+1|0;a=(a>>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=F[F[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<<d;f:{g:{if((b>>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=F[F[f>>2]+(b<<2)>>2]}b=1<<a;a=c+(a>>>3&536870908)|0;c=F[a>>2];break c}a=c+536870908|0;b=F[c+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-2>>>0>28){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<<a)-2|0));c=F[F[c>>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f<M(0)?h:n));e=M(e+(e<M(0)?h:n));h=M(M(f*f)+M(M(i*i)+M(e*e)));if(!(+h<1e-6)){g=M(M(1)/M(U(h)));m=M(f*g);l=M(e*g);g=M(i*g)}a=a+8|0;d=(w(m),y(2));D[c+8|0]=d;D[c+9|0]=d>>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(w(l),y(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(w(g),y(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=Z-16|0;Z=g;a:{if(!Sa(1,g+8|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];f=d-e|0;h=F[g+12>>2];c=d>>>0<e>>>0;d=F[b+20>>2];i=F[b+12>>2]-(c+d|0)|0;c=F[g+8>>2];if((h|0)==(i|0)&c>>>0>f>>>0|h>>>0>i>>>0){break a}d=d+h|0;f=c+e|0;d=f>>>0<e>>>0?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if((c|0)<=0){break a}b=F[b>>2]+e|0;F[a+40>>2]=b;e=c-1|0;d=b+e|0;f=G[d|0];b:{if(f>>>0<=63){F[a+44>>2]=e;b=G[d|0]&63;break b}c:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8&16128|G[b|0];break b;case 1:if(c>>>0<3){break a}c=c-3|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break b;default:break c}}c=c-4|0;F[a+44>>2]=c;b=b+c|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[a+48>>2]=b+16384;j=b>>>0<4177920}Z=g+16|0;return j}function Tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=Z-32|0;Z=a;e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;g=e+f|0;break c}D[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}la(f,c,e)}D[g|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=Ya(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];e=F[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){qa(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];la(e,b,F[c+32>>2]-b|0);break d}ta();v()}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}}function ud(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=8284;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;i=c>>>0<a>>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?F[b+16>>2]:b+16|0;j=sa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=sa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function lc(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0<c>>>0){if(d){ja(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}pa(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0<c>>>0){if(d){ja(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}pa(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}na();v()}na();v()}function nc(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Od(a){var b=0,c=0,d=0;b=ka(32);D[b+26|0]=0;c=G[1475]|G[1476]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b)}function Kg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+56>>2]-F[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=od(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=od(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function Qg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=pd(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=pd(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function pa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return la(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0<b>>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=ka(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ma(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}na();v()}oa();v()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){ja(c)}}function Yd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];k=d;h=F[b+16>>2];c=h+4|0;d=c>>>0<4?d+1|0:d;i=c;a:{if(c>>>0>e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=d;c=e;e=k;d=h+8|0;e=d>>>0<8?e+1|0:e;if(c>>>0<d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0<f>>>0)|0)|0;e=c-f|0;if(!d&e>>>0>2147483646|d){break a}d=e+1|0;F[a+20>>2]=d;e=d>>>1|0;F[a+24>>2]=e;F[a+28>>2]=0-e;if(!(d&1)){F[a+24>>2]=e-1}l=Aa(a+112|0,b)}return l|0}function Wc(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Fc(a,b){var c=0,d=0,e=0;c=Z+-64|0;Z=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=11020;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(La(e,b,0)){F[c+56>>2]=1;$[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}$[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}Z=c- -64|0;return d}function ma(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}D[a|0]=b;d=a+c|0;D[d-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[d-3|0]=b;D[d-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=L(b&255,16843009);F[e>>2]=b;d=c-d&-4;c=d+e|0;F[c-4>>2]=b;if(d>>>0<9){break a}F[e+8>>2]=b;F[e+4>>2]=b;F[c-8>>2]=b;F[c-12>>2]=b;if(d>>>0<25){break a}F[e+24>>2]=b;F[e+20>>2]=b;F[e+16>>2]=b;F[e+12>>2]=b;F[c-16>>2]=b;F[c-20>>2]=b;F[c-24>>2]=b;F[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=ki(b,0,1,1);f=_;b=e+g|0;while(1){F[b+24>>2]=d;F[b+28>>2]=f;F[b+16>>2]=d;F[b+20>>2]=f;F[b+8>>2]=d;F[b+12>>2]=f;F[b>>2]=d;F[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=F[b+8>>2];e=F[b+12>>2];g=e;e=F[b+20>>2];k=e;h=F[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0<e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0<f>>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;F[a+20>>2]=d;b=d>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(d&1){break a}F[a+24>>2]=b-1}return l|0}function Uc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Z-16|0;Z=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=Sc(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(sa(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}ja(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}Z=d+16|0;return l}function gb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=F[a+8>>2];e=F[a>>2];if(h>>>0<=d-e>>2>>>0){d=F[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0<h>>>0?f:c;if((g|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){F[d>>2]=F[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=ka(e);F[a>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=la(d,c,b)+b|0}F[a+4>>2]=d;return}na();v()}function Ea(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;F[a+4>>2]=0;a:{b:{if(!b){break b}f=F[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){F[a+4>>2]=b;break c}F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0<f>>>0?f:d}else{d=2147483647}$a(e,d);f=F[a>>2];F[a>>2]=F[e>>2];F[e>>2]=f;d=F[a+4>>2];F[a+4>>2]=b;F[e+4>>2]=d;d=F[a+8>>2];F[a+8>>2]=F[e+8>>2];F[e+8>>2]=d;if(!f){break c}ja(f)}d=b>>>5|0;a=F[a>>2];if(G[c|0]){if(b>>>0>=32){ma(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ma(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}Z=e+16|0;return}na();v()}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z-32|0;Z=e;a:{b:{f=ya(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=ka(a);F[e+24>>2]=a|-2147483648;F[e+16>>2]=g;F[e+20>>2]=f;a=f+g|0;break d}D[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}la(g,c,f)}D[a|0]=0;c=ya(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=ka(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;g=a+c|0;break f}D[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}la(a,d,c)}D[g|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=Uc(c,e+16|0,e);a=-1;if(!c){break g}a=Pc(b,F[c+24>>2])}if(D[e+11|0]<0){ja(F[e>>2])}if(D[e+27|0]<0){ja(F[e+16>>2])}Z=e+32|0;break a}za();v()}za();v()}return a|0}function ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];f=h;e=F[c+20>>2];j=F[c+8>>2];g=F[c+16>>2];a:{if((f|0)<=(e|0)&j>>>0<=g>>>0|(e|0)>(f|0)){break a}k=F[c>>2];i=D[k+g|0];d=e;f=g+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;if((i-7&255)>>>0<247){break a}b:{if((i|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=j>>>0|(d|0)>(h|0)){break a}d=D[f+k|0];g=g+2|0;e=g>>>0<2?e+1|0:e;F[c+16>>2]=g;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=$[F[F[a>>2]+40>>2]](a,i,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}$[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!($[F[F[a>>2]+28>>2]](a,d)|0)){break a}}l=$[F[F[a>>2]+36>>2]](a,b,c)|0}return l|0}function se(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=ka(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;return a|0;case 1:a=ka(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;return a|0;case 2:a=ka(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1624;F[a>>2]=7948;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=ka(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1032;F[a>>2]=5812;F[a+28>>2]=-1;break;default:break a}}return a|0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=F[b>>2];b=F[b+4>>2];d=F[F[a+8>>2]+40>>2];j=d;m=ka((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=F[c+16>>2];k=d;f=g+d|0;d=0+F[c+20>>2]|0;d=f>>>0<k>>>0?d+1|0:d;h=F[c+12>>2];e=0;if(I[c+8>>2]<f>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=la(m,F[c>>2]+g|0,j);F[c+16>>2]=f;F[c+20>>2]=d;la(F[F[F[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+F[c+20>>2]|0;g=F[c+16>>2];f=k+g|0;d=f>>>0<k>>>0?d+1|0:d;h=F[c+12>>2];if((d|0)<=(h|0)&I[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}ja(m);return e|0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){Db(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0<F[a+12>>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Db(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function mb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){e=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=e;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{g=F[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0<f>>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=ka(L(f,12))}else{e=0}d=e+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=F[c+4>>2];d=d-12|0;F[d>>2]=F[c>>2];F[d+4>>2]=h;F[d+8>>2]=F[c+8>>2];if((c|0)!=(g|0)){continue}break}c=F[a>>2]}F[a+8>>2]=e+L(f,12);F[a+4>>2]=b;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function Bf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Gh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Z-32|0;Z=f;h=e>>>0>1073741823?-1:e<<2;h=ma(ka(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;Jb(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Jb(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ja(h);Z=f+32|0;return 1}function Sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=Z-32|0;Z=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+16>>2]=e|-2147483648;F[a+8>>2]=f;F[a+12>>2]=d;e=d+f|0;break c}D[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;c=b+4|0;b=Ya(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){ja(F[a+8>>2])}Z=a+32|0;break a}za();v()}return+g}function Gc(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=Z-16|0;Z=h;if((b^-1)+2147483631>>>0>=c>>>0){if(G[a+11|0]>>>7|0){i=F[a>>2]}else{i=a}if(b>>>0<1073741799){F[h+12>>2]=b<<1;F[h>>2]=b+c;c=Z-16|0;Z=c;Z=c+16|0;c=h+12|0;c=F[(I[h>>2]<I[c>>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(h,c);c=F[h>>2];if(f){db(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){db(c+f|0,e+i|0,g)}if((b|0)!=10){ja(i)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[h+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[h+12|0]=0;D[a+c|0]=G[h+12|0];Z=h+16|0;return}za();v()}function _c(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=L(b,3);Xb(a,b,10224);Xb(a+12|0,b,10228);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=F[a+28>>2];e=c<<2;c=ka(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+32>>2]=e;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}ja(d)}F[a+80>>2]=0;F[a+84>>2]=0;b=F[a+76>>2];F[a+76>>2]=0;if(b){ja(b)}F[a+68>>2]=0;F[a+72>>2]=0;b=a- -64|0;a=F[b>>2];F[b>>2]=0;if(!a){break b}ja(a)}return f}na();v()}function yd(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=ka(c>>>0>268435455?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ja(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=Aa(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)<F[a+140>>2]){continue}break}}return f}\nfunction Sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=F[b+8>>2];c=F[b+12>>2];g=c;c=F[b+20>>2];i=c;h=F[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;a:{if(d>>>0<f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;f=d;d=i;c=h+8|0;d=c>>>0<8?d+1|0:d;if(c>>>0>f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}F[b+16>>2]=c;F[b+20>>2]=d;if(!(e&1)){break a}d=O(e)^31;if(d-1>>>0>28){break a}F[a+8>>2]=d+1;d=-2<<d;c=d^-2;F[a+16>>2]=c;F[a+12>>2]=d^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0);j=Aa(a+96|0,b)}return j|0}function bc(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function ac(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=ka(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}ja(d)}d=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){c=F[(c<<2)+10148>>2]}else{c=-1}c=L(c,G[a+24|0]);f=c>>31;g=md(d,0,ki(c,f,b,0),_);if(g){d=F[a+64>>2];F[a>>2]=d;e=F[d+20>>2];F[a+8>>2]=F[d+16>>2];F[a+12>>2]=e;e=F[d+24>>2];d=F[d+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=c;F[a+44>>2]=f;F[a+16>>2]=e;F[a+20>>2]=d;F[a+80>>2]=b}return g}function Af(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function Kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];i=d;h=F[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0<f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}F[b+16>>2]=d;F[b+20>>2]=c;if(!(e&1)){break a}b=O(e)^31;if(b-1>>>0>28){break a}j=1;F[a+8>>2]=b+1;b=-2<<b;c=b^-2;F[a+16>>2]=c;F[a+12>>2]=b^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0)}return j|0}function Ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;g=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=f;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=sa(c?F[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0<d>>>0?c:d;if(e){a=sa(g,a?F[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Oe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(La(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];$[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function Ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=ka(64);c=ka(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=9968;F[c+4>>2]=0;f=yc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Pb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){$[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}$[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function we(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!($[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=$[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[($[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=$[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!($[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=$[F[F[a>>2]+44>>2]](a)|0}return d|0}function Id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+8>>2];d=F[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ma(d,0,b)+b|0}F[a+4>>2]=d;return}a:{f=F[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=ka(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ma(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(f|0)){continue}break}}F[a+8>>2]=(e<<2)+i;F[a+4>>2]=b;F[a>>2]=c;if(f){ja(f)}return}na();v()}oa();v()}function bb(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){ab(b+68|0,c-e|0,2004);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0<F[d+72>>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z+-64|0;Z=e;f=Ja(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Pd(b,a,f,d);F[a+24>>2]=F[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=G[e+63|0];d=g<<24>>24;if(D[a+39|0]>=0){if((d|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[e+52>>2],F[e+56>>2]);break a}a=(d|0)<0;rb(b,a?F[e+52>>2]:c,a?F[e+56>>2]:g)}if(D[e+63|0]<0){ja(F[e+52>>2])}Z=e- -64|0;return f|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=Z-32|0;Z=a;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+24>>2]=e|-2147483648;F[a+16>>2]=f;F[a+20>>2]=d;e=d+f|0;break c}D[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=Uc(d,a,a+16|0);c=-1;if(!d){break d}c=Pc(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){ja(F[a>>2])}if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}return b|0}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=Z-16|0;Z=d;F[d+12>>2]=0;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;a=Ya(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;d=Z+-64|0;Z=d;e=Ja(d+8|0);F[e+16>>2]=0;F[e+20>>2]=0;F[e>>2]=b;F[e+8>>2]=c;F[e+12>>2]=0;b=d+48|0;Od(b);F[a+24>>2]=F[d+48>>2];f=a+24|0;a:{if((b|0)==(f|0)){break a}b=a+28|0;c=d+48|4;g=G[d+63|0];e=g<<24>>24;if(D[a+39|0]>=0){if((e|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+52>>2],F[d+56>>2]);break a}a=(e|0)<0;rb(b,a?F[d+52>>2]:c,a?F[d+56>>2]:g)}if(D[d+63|0]<0){ja(F[d+52>>2])}Z=d- -64|0;return f|0}function Ce(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if(($[F[F[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Qc(F[F[a+4>>2]+4>>2],$[F[F[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}g=F[a+4>>2];c=0;b:{if((d|0)<0){break b}h=F[g+4>>2];if((d|0)>=F[h+12>>2]-F[h+8>>2]>>2){break b}c=F[F[g+8>>2]+(F[F[g+20>>2]+(d<<2)>>2]<<2)>>2];c=$[F[F[c>>2]+32>>2]](c,d)|0}if(!c){break a}if(!($[F[F[b>>2]+28>>2]](b,c)|0)){break a}e=1;f=f+1|0;if(($[F[F[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];e=F[a>>2];d=c-e|0;b:{if(d>>>0<b>>>0){g=b-d|0;f=F[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ma(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<f>>>0?f:b;f=ka(c);ma(f+d|0,0,g);d=pa(f,e,d);F[a+8>>2]=d+c;F[a+4>>2]=b+d;F[a>>2]=d;if(!e){break b}ja(e);break b}if(b>>>0>=d>>>0){break b}F[a+4>>2]=b+e}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;e=b?c:d;F[a+24>>2]=b;F[a+28>>2]=e;return}na();v()}function Ma(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+4>>2];if((e|0)!=F[a+8>>2]){F[e>>2]=F[b>>2];F[a+4>>2]=e+4;return}a:{g=F[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=ka(c<<2)}else{f=0}d=h+f|0;F[d>>2]=F[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(g|0)){continue}break}}F[a+8>>2]=f+(c<<2);F[a+4>>2]=b;F[a>>2]=d;if(g){ja(g)}return}na();v()}oa();v()}function va(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Hb(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0<b>>>0){qa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=ka(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;F[b>>2]=F[d>>2];if((c|0)!=(d|0)){continue}break}}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}ja(c)}return}na();v()}function tb(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10300;b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;ja(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){xa(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;ja(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){ic(b)}return a|0}function qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=ka(d<<2)}b=b<<2;e=ma((h<<2)+i|0,0,b);f=d<<2;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function gc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=Ya(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function Qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=F[a>>2];c=F[a+4>>2];e=F[a+8>>2];if(c>>>0<e>>>0){F[c>>2]=F[b>>2];F[a+4>>2]=c+4;return}a:{d=c;c=F[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0<d>>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=ka(f<<2)}else{e=0}d=h+e|0;F[d>>2]=F[b>>2];b=pa(e,c,g);F[a+8>>2]=b+(f<<2);F[a+4>>2]=d+4;F[a>>2]=b;if(c){ja(c)}return}na();v()}oa();v()}function db(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=Z-16|0;Z=f;d=Z-32|0;Z=d;e=Z-16|0;Z=e;F[e+12>>2]=b;F[e+8>>2]=b+c;F[d+24>>2]=F[e+12>>2];F[d+28>>2]=F[e+8>>2];Z=e+16|0;c=Z-16|0;Z=c;h=F[d+28>>2];e=F[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){pa(a,e,g)}F[c+12>>2]=e+g;F[c+8>>2]=a+g;F[d+16>>2]=F[c+12>>2];F[d+20>>2]=F[c+8>>2];Z=c+16|0;F[d+12>>2]=(F[d+16>>2]-b|0)+b;F[d+8>>2]=(F[d+20>>2]-a|0)+a;F[f+8>>2]=F[d+12>>2];F[f+12>>2]=F[d+8>>2];Z=d+32|0;Z=f+16|0}function _a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=ka(d<<3)}b=b<<3;e=ma((h<<3)+i|0,0,b);f=d<<3;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function re(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function qe(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}ja(a)}function Eg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0<b>>>0){nd(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ta();v()}function fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=Z-16|0;Z=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],d+15|0,d+16|0)}Z=d+16|0;return(e|0)!=-1|0}function kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0<e>>>0?e:d;if(d){if((d|0)<0){break a}h=ka(d<<1)}b=b<<1;e=ma((f<<1)+h|0,0,b);f=d<<1;d=pa(h,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;Pd(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=G[d+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+4>>2],F[d+8>>2]);break a}a=(g|0)<0;rb(b,a?F[d+4>>2]:c,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ja(F[d+4>>2])}Z=d+16|0;return e|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;a:{b:{if(c>>>0<11){d=a;D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}sb(g,d+1|0);d=F[e+8>>2];F[a>>2]=d;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;F[a+4>>2]=c}db(d,b,c+1|0);Z=e+16|0;return}za();v()}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;b=Z-16|0;Z=b;Od(b);F[a+24>>2]=F[b>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}c=a+28|0;d=b|4;f=G[b+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[d+4>>2];F[c>>2]=F[d>>2];F[c+4>>2]=a;F[c+8>>2]=F[d+8>>2];break a}qb(c,F[b+4>>2],F[b+8>>2]);break a}a=(g|0)<0;rb(c,a?F[b+4>>2]:d,a?F[b+8>>2]:f)}if(D[b+15|0]<0){ja(F[b+4>>2])}Z=b+16|0;return e|0}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;g=e+f|0;break c}D[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}la(f,c,e)}D[g|0]=0;f=a+16|0;c=Sc(b,d,f);b=F[a+16>>2];a=D[a+27|0];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;a=c?(a|0)<0?b:f:0;break a}za();v()}return a|0}function Yb(a,b){var c=0,d=0,e=0;c=F[a+4>>2];d=c+b|0;F[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){F[F[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=F[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;F[a>>2]=F[a>>2]&(-1<<c&-1>>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ma(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}}function ld(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!ld(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Sa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!Sa(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Ne(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!La(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function jg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z+-64|0;Z=e;d=$[F[F[a>>2]+44>>2]](a,b)|0;a=$[F[F[a>>2]+40>>2]](a,b)|0;f=kb(e);g=F[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+10148>>2]}else{a=-1}d=L(a,d);cc(f,g,h,i,0,d,d>>31);a=bc(ka(96),f);ac(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];Z=e- -64|0;return a|0}function rh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function Dc(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function qh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=Z+-64|0;Z=e;d=1;a:{if(La(a,b,0)){break a}d=0;if(!b){break a}b=Fc(b,11068);d=0;if(!b){break a}d=e+8|0;ma(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;$[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}Z=e- -64|0;return d|0}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function zf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=Z-16|0;Z=a;f=D[b+24|0];e=F[2555];F[a+8>>2]=F[2554];F[a+12>>2]=e;e=F[2553];F[a>>2]=F[2552];F[a+4>>2]=e;e=lb(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=ka(c);g=la(b,a,c)+c|0}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}Z=a+16|0;return e|0}function wd(a,b){var c=0,d=0;a:{c=F[a+4>>2];d=F[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}$a(a,c);c=F[a+4>>2]}F[a+4>>2]=c+1;d=1<<c;a=F[a>>2]+(c>>>3&536870908)|0;if(G[b|0]){F[a>>2]=d|F[a>>2];return}F[a>>2]=F[a>>2]&(d^-1);return}na();v()}function Zb(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function bh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!fb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Wb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Wb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Ta(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ta(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Qd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qd(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Oa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Oa(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Da(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Da(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function sa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function td(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;ja(e)}}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function ic(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;ja(b)}Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function $g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function _g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function wh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[F[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0<h>>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function La(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Gg(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ah(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Tc(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ka(c);c=ma(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}la(e,c,a-c|0);return}na();v()}function Dd(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Xg(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Za(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;ja(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function Gb(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;ja(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;ja(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;ja(b)}b=F[a+12>>2];if(b){ja(b)}a=F[a>>2];if(a){ja(a)}}function Lc(a,b,c){var d=0,e=0,f=0,g=0;f=Z-16|0;Z=f;d=Z-16|0;Z=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=I[F[d+12>>2]>>2]<I[c>>2];b=e?g:b;a=e?F[d+12>>2]+4|0:a;continue}break}Z=d+16|0;Z=f+16|0;return a}function id(a,b){var c=0,d=0;d=ka(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;$[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}return 1}function ya(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function wa(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0<d>>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function yc(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1776;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2016;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function Eb(a,b){var c=0,d=0,e=0;c=ya(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=ka(d);F[a+8>>2]=d|-2147483648;F[a>>2]=e;F[a+4>>2]=c;d=c+e|0;break b}D[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}pa(e,b,c)}D[d|0]=0;return a}za();v()}function Of(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){ja(F[a+16>>2])}b=F[a>>2];if(b){c=b;d=F[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(D[d-1|0]<0){ja(F[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=F[a>>2]}F[a+4>>2]=b;ja(c)}ja(a)}}function xa(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;ja(c)}ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;ja(c)}ja(b)}ja(a)}}function Ib(a,b){var c=0,d=0,e=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2]-c|0;e=b<<2;b=pa(ka(e),c,d);F[a+8>>2]=b+e;F[a+4>>2]=b+d;F[a>>2]=b;if(!c){break b}ja(c)}return}na();v()}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=ka(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function Ah(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function li(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0<e>>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=mi(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;_=(g^_)-((a>>>0<f>>>0)+g|0)|0;return b}function zh(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function rb(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;db(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];Gc(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}Z=e+16|0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0;c=Z-16|0;Z=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}pb(b,F[b+4>>2],c+15|0,c+16|0)}Z=c+16|0;return(a|0)!=-1|0}function ki(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;_=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function qb(a,b,c){var d=0,e=0;d=Z-16|0;Z=d;a:{if(c>>>0<=10){D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;db(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0]&127;Gc(e,10,c-10|0,a,a,c,b)}Z=d+16|0}function Ec(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function vg(){var a=0;a=kb(ka(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function jh(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function ge(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function ci(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Cg(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=$[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Pc(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function fe(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function bi(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Sc(a,b,c){var d=0,e=0;d=a+4|0;a=Ya(a,b);a:{if((d|0)==(a|0)){break a}b=F[a+32>>2];d=F[a+28>>2];if((b|0)==(d|0)){break a}Sb(c,b-d|0);c=Tb(c);b=F[a+28>>2];la(c,b,F[a+32>>2]-b|0);e=1}return e}function Kd(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=10032;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;F[a+44>>2]=0;F[a>>2]=8080;return a}function kb(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function pe(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=bb(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function Nf(){var a=0,b=0;a=ka(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function Xe(a,b){a=a|0;b=b|0;var c=0,d=0;Nc(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;pa(c,b,d-b|0);F[a+88>>2]=d-4}}function eb(a){var b=0,c=0;b=F[2909];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>aa()<<16>>>0){if(!(X(a|0)|0)){break a}}F[2909]=a;return b}F[2940]=48;return-1}function Th(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Tg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ng(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(!G[d+24|0]){break a}if(!ac(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=$[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ca(a,b){if(b){Ca(a,F[b>>2]);Ca(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Sg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Mg(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Hc(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=11356;F[a>>2]=11468;c=ya(b);d=ka(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=la(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function hc(a,b,c){a:{if(b){b=0;if(!ld(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;F[a+28>>2]=c+(F[a+8>>2]-b|0);b=1}return b}function Ue(a,b){a=a|0;b=b|0;var c=0;a:{if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=$[F[F[a>>2]+44>>2]](a)|0}return c|0}function _d(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function ii(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function wc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Ud(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function Ug(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Ed(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function vc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function yg(){var a=0,b=0;b=ka(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function eh(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Og(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Ja(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e);return}a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!($[F[F[a>>2]+52>>2]](a)|0)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function hg(){var a=0;a=Rc(ka(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=10240;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Qc(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function cc(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function Sh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!uc(a+24|0,bb(a),c)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function _e(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}return tb(a)|0}function Tb(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]&127}if(!b){sc(1222);v()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function Ze(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}ja(tb(a))}function ce(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function _h(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ba(a,b){if(b){Ba(a,F[b>>2]);Ba(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Wf(){var a=0;a=ka(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function We(a){a=a|0;var b=0;F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function fg(){var a=0,b=0;a=ka(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d);return}a=F[a+8>>2];$[F[F[a>>2]+28>>2]](a,b,c,d)}function be(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Zh(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function ka(a){var b=0;a=a?a:1;a:{while(1){b=Ub(a);if(b){break a}b=F[3065];if(b){$[b|0]();continue}break}V();v()}return b}function ib(a,b){if(b){ib(a,F[b>>2]);ib(a,F[b+4>>2]);if(D[b+39|0]<0){ja(F[b+28>>2])}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Cc(a){a=a|0;var b=0,c=0;F[a>>2]=11468;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){ja(b)}return a|0}function ng(){var a=0;a=ka(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1624;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function pc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function Ic(a,b){if(G[a+11|0]>>>7|0){F[a+4>>2]=b;return}D[a+11|0]=G[a+11|0]&128|b;D[a+11|0]=G[a+11|0]&127}function gi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Xh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function nf(a){a=a|0;if(a){if(D[a+39|0]<0){ja(F[a+28>>2])}$b(a+12|0,F[a+16>>2]);ib(a,F[a+4>>2]);ja(a)}}function dh(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Wg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function ob(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function oc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function fi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Wh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function zg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function ch(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Zd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function Vg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Td(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Le(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e)}}function oa(){var a=0;a=Rb(4);F[a>>2]=11356;F[a>>2]=11316;F[a>>2]=11336;W(a|0,11448,14);v()}function je(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ae(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Pg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}return a|0}function Ch(a){a=a|0;var b=0;b=bb(a);return qd(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function ze(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function Ob(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Hg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}function oe(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}function $b(a,b){if(b){$b(a,F[b>>2]);$b(a,F[b+4>>2]);ib(b+20|0,F[b+24>>2]);ja(b)}}function xg(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}}function xh(a){a=a|0;if(!F[a+44>>2]){return 0}return $[F[F[a>>2]+48>>2]](a)|0}function ni(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d)}}function vh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+20>>2]](a,b)|0}function oi(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<<b|(-1<<a&-2)>>>a}\nfunction oh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+12>>2]](a,b)|0}function nh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+16>>2]](a,b)|0}function Xa(){var a=0;a=ka(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function Wa(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function mf(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function eg(a){a=a|0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function Lb(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0}function Fg(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function kg(){var a=0;a=ka(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function th(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+24>>2]](a)|0}function sh(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+28>>2]](a)|0}function ph(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+36>>2]](a)|0}function Rh(a,b){a=a|0;b=b|0;return zc(a+24|0,bb(a),F[a+8>>2])|0}function Bh(a,b){a=a|0;b=b|0;return xd(a+24|0,bb(a),F[a+8>>2])|0}function bg(a){a=a|0;if(a){if(D[a+15|0]<0){ja(F[a+4>>2])}ja(a)}}function Ke(a){a=a|0;if(!a){return 0}return(Fc(a,11164)|0)!=0|0}function Fe(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function hd(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+12>>2]](a,b)|0}function Dh(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+56>>2]](a,b)|0}function sc(a){a=Hc(Rb(8),a);F[a>>2]=11568;W(a|0,11600,1);v()}function mg(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function Rd(a){a=Hc(Rb(8),a);F[a>>2]=11516;W(a|0,11548,1);v()}function $f(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function gg(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function cg(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function Re(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function dd(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function Yf(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Xf(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;return xc(a,b,c)|0}function sb(a,b){var c=0;c=ka(b);F[a+4>>2]=b;F[a>>2]=c}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;return Qc(b,c)|0}function Rc(a){F[a>>2]=10300;ma(a+4|0,0,80);return a}function ji(a){if(a){return 31-O(a-1^a)|0}return 32}function gd(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function _f(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Zf(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function Ie(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function wb(a){a=a|0;if(a){$[F[F[a>>2]+4>>2]](a)}}function Jd(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function ed(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function dc(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function fd(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function ke(a){a=a|0;return G[F[a+8>>2]+24|0]}function Qf(a,b){a=a|0;b=b|0;return F[b+8>>2]}function Ff(a,b){a=a|0;b=b|0;return F[b+4>>2]}function De(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Bg(a,b){a=a|0;b=b|0;return G[b+24|0]}function Oh(a){a=a|0;F[a>>2]=5928;return a|0}function Jh(a){a=a|0;F[a>>2]=6932;return a|0}function lg(a){a=a|0;return M(J[a+20>>2])}function Nh(a){a=a|0;F[a>>2]=5928;ja(a)}function Ih(a){a=a|0;F[a>>2]=6932;ja(a)}function ug(a){a=a|0;return F[a+88>>2]}function tg(a){a=a|0;return F[a+56>>2]}function qg(a){a=a|0;return F[a+40>>2]}function pg(a){a=a|0;return F[a+48>>2]}function og(a){a=a|0;return F[a+60>>2]}function ec(a){a=a|0;return F[a+80>>2]}function cb(a){a=a|0;return F[a+28>>2]}function vd(a){a=a|0;return F[a+8>>2]}function tc(a,b){a=a|0;b=b|0;return-1}function sg(a){a=a|0;return D[a+24|0]}function rg(a){a=a|0;return G[a+32|0]}function dg(a){a=a|0;return!F[a>>2]|0}function Wd(a,b){a=a|0;b=b|0;return 6}function Va(a){a=a|0;return F[a+4>>2]}function Rb(a){return Ub(a+80|0)+80|0}function Qh(a,b){a=a|0;b=b|0;return 2}function Ia(a,b){a=a|0;b=b|0;return 0}function Bc(a,b){a=a|0;b=b|0;return 1}function jd(a){a=a|0;return F[a>>2]}function wg(){return kb(ka(64))|0}function ig(){return Rc(ka(84))|0}function fc(a){a=a|0;if(a){ja(a)}}function Ag(){return Ja(ka(40))|0}function Qb(a){a=a|0;Cc(a);ja(a)}function Je(a){a=a|0;return 1161}function He(a){a=a|0;return 1235}function Ge(a){a=a|0;return 1201}function Pa(a){a=a|0;return a|0}function hh(a){a=a|0;ja(ud(a))}function gh(a){a=a|0;ja(sd(a))}function Ve(a){a=a|0;ja(tb(a))}function ua(a){a=a|0;return 1}function rc(a){a=a|0;return 4}function qc(a){a=a|0;return 5}function Xd(a){a=a|0;return 2}function Ua(a){a=a|0;return 0}function Nb(a){a=a|0;return 6}function Mh(a){a=a|0;return 3}function za(){Rd(1222);v()}function ta(){sc(1154);v()}function na(){Rd(1154);v()}function Ha(a){a=a|0;ja(a)}function Ra(a){a=a|0;v()}function ff(){return 10}function ef(){return 11}function df(){return 12}function vb(){return-1}function ub(){return 1}function lf(){return 5}function kf(){return 6}function jf(){return 7}function jb(){return 0}function hf(){return 8}function gf(){return 9}function cf(){return-2}function bf(){return-3}function bd(){return 3}function af(){return-4}function ad(){return 4}function _b(){return 2}function $e(){return-5}function Te(){V();v()}function Jc(a){a=a|0}function ae(){}\n// EMSCRIPTEN_END_FUNCS\ne=G;p(q);var $=c([null,Cc,Pa,Ha,Xd,ii,jh,ag,zc,xe,uc,jg,Wd,Qh,Pa,Pg,Hg,ua,yh,mh,kh,xd,fh,qd,Wd,Bg,We,Ra,mf,$c,Ue,Re,Ie,cb,Ia,Te,Bc,ua,Ae,ze,Ac,Fe,Ee,De,Bc,Ce,Be,re,qe,ye,we,pe,ve,ue,te,se,wc,vc,Ac,oe,ne,xc,me,ke,le,je,Ob,ua,Va,ob,Ua,tc,Ia,Ua,ua,ie,he,Ra,Ra,ge,fe,rc,ob,ee,de,ce,be,qc,pc,ua,Ia,oc,$d,hi,gi,fi,Nb,_d,ua,Ia,Zd,Yd,ei,Pa,Ha,Lb,cb,Mb,Ra,Ob,ua,ob,di,Ra,ci,bi,rc,ob,ai,$h,_h,Zh,qc,pc,ua,Ia,oc,$d,Yh,Xh,Wh,Nb,_d,ua,Ia,Zd,Yd,Vh,Pa,Ha,Lb,cb,Kb,Ra,Ob,Ua,ua,Uh,wc,vc,Th,Sh,Vd,Ph,Xd,Rh,Oh,Nh,Nb,Va,Ud,ua,Ia,Td,ua,Mh,Sd,Lh,Pa,Ha,Lb,cb,Mb,Jh,Ih,Nb,Ud,ua,Ia,Td,Sd,Hh,Pa,Ha,Lb,cb,Kb,Pa,Ha,Ua,ua,Ua,tc,Ia,Kh,Gh,Ah,zh,Fh,Eh,Vd,Dh,Ch,Bh,wh,Ra,ua,ua,xh,Dg,Cg,ua,Ua,Ia,Ia,rh,qh,uh,vh,sh,ph,oh,nh,th,ud,hh,Jd,Id,Hd,Gd,lh,ua,Va,vd,sd,gh,Jd,Id,Hd,Gd,ih,ua,Va,vd,Ed,eh,Fd,dh,ch,$g,_g,Zg,Yg,ah,Xg,bh,Wg,Vg,Tg,Sg,Rg,Qg,Ug,Og,Ng,Mg,Lg,Kg,Gg,Ig,Jg,Pa,Ha,Fg,Eg,Ra,Ua,ua,_e,Ze,Ye,Xe,tb,Ve,Oc,Nc,Pa,Ha,Jc,Jc,Se,Le,Ne,Qe,Ha,Me,Oe,Pe,Ha,He,Ha,Ge,Ha,Je,Qb,Va,Qb,Qb]);function aa(){return C.byteLength/65536|0}function fa(ga){ga=ga|0;var ba=aa()|0;var ca=ba+ga|0;if(ba<ca&&ca<65536){var da=new ArrayBuffer(L(ca,65536));var ea=new Int8Array(da);ea.set(D);D=new Int8Array(da);E=new Int16Array(da);F=new Int32Array(da);G=new Uint8Array(da);H=new Uint16Array(da);I=new Uint32Array(da);J=new Float32Array(da);K=new Float64Array(da);C=da;B.buffer=C;e=G}return ba}return{\"f\":ae,\"g\":$,\"h\":fc,\"i\":Ag,\"j\":zg,\"k\":fc,\"l\":yg,\"m\":jd,\"n\":xg,\"o\":wg,\"p\":fc,\"q\":vg,\"r\":ec,\"s\":ug,\"t\":tg,\"u\":cb,\"v\":sg,\"w\":rg,\"x\":qg,\"y\":pg,\"z\":og,\"A\":xa,\"B\":ng,\"C\":hd,\"D\":Va,\"E\":mg,\"F\":lg,\"G\":wb,\"H\":kg,\"I\":hd,\"J\":Va,\"K\":wb,\"L\":ig,\"M\":gd,\"N\":ec,\"O\":wb,\"P\":hg,\"Q\":gg,\"R\":gd,\"S\":ec,\"T\":wb,\"U\":fg,\"V\":eg,\"W\":jd,\"X\":dg,\"Y\":cg,\"Z\":bg,\"_\":Xa,\"$\":$f,\"aa\":dc,\"ba\":Wa,\"ca\":Xa,\"da\":_f,\"ea\":fd,\"fa\":Wa,\"ga\":Xa,\"ha\":Zf,\"ia\":fd,\"ja\":Wa,\"ka\":Xa,\"la\":Yf,\"ma\":ed,\"na\":Wa,\"oa\":Xa,\"pa\":Xf,\"qa\":ed,\"ra\":Wa,\"sa\":Xa,\"ta\":dd,\"ua\":dc,\"va\":Wa,\"wa\":Xa,\"xa\":dd,\"ya\":dc,\"za\":Wa,\"Aa\":Wf,\"Ba\":Vf,\"Ca\":Uf,\"Da\":Tf,\"Ea\":Sf,\"Fa\":Rf,\"Ga\":Qf,\"Ha\":Pf,\"Ia\":Of,\"Ja\":Nf,\"Ka\":Mf,\"La\":Lf,\"Ma\":Kf,\"Na\":Jf,\"Oa\":If,\"Pa\":Hf,\"Qa\":Gf,\"Ra\":Ff,\"Sa\":Ef,\"Ta\":Df,\"Ua\":Cf,\"Va\":Bf,\"Wa\":Af,\"Xa\":zf,\"Ya\":yf,\"Za\":cd,\"_a\":xf,\"$a\":wf,\"ab\":vf,\"bb\":uf,\"cb\":cd,\"db\":tf,\"eb\":sf,\"fb\":rf,\"gb\":qf,\"hb\":pf,\"ib\":of,\"jb\":nf,\"kb\":vb,\"lb\":jb,\"mb\":ub,\"nb\":_b,\"ob\":vb,\"pb\":jb,\"qb\":ub,\"rb\":_b,\"sb\":bd,\"tb\":ad,\"ub\":vb,\"vb\":jb,\"wb\":ub,\"xb\":jb,\"yb\":ub,\"zb\":_b,\"Ab\":bd,\"Bb\":ad,\"Cb\":lf,\"Db\":kf,\"Eb\":jf,\"Fb\":hf,\"Gb\":gf,\"Hb\":ff,\"Ib\":ef,\"Jb\":df,\"Kb\":jb,\"Lb\":vb,\"Mb\":cf,\"Nb\":bf,\"Ob\":af,\"Pb\":$e,\"Qb\":Ub,\"Rb\":ja,\"Sb\":Ke}}return ha(ia)}\n// EMSCRIPTEN_END_ASM\n\n\n)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({\"instance\":new WebAssembly.Instance(module,info)})}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;assert(INITIAL_MEMORY>=65536,\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+INITIAL_MEMORY+\"! (STACK_SIZE=\"+65536+\")\");if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"draco_decoder_gltf.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"g\"];addOnInit(Module[\"asm\"][\"f\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob==\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==\"boolean\"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,\"base64\");return new Uint8Array(buf[\"buffer\"],buf[\"byteOffset\"],buf[\"byteLength\"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmImports={\"c\":___cxa_throw,\"b\":_abort,\"e\":_emscripten_memcpy_big,\"d\":_emscripten_resize_heap,\"a\":wasmMemory};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"f\"]).apply(null,arguments)};var _emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=function(){return(_emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=function(){return(_emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=function(){return(_emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=function(){return(_emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=function(){return(_emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=function(){return(_emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=Module[\"asm\"][\"m\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=function(){return(_emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=function(){return(_emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=function(){return(_emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=function(){return(_emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=function(){return(_emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=function(){return(_emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=function(){return(_emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=function(){return(_emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=function(){return(_emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=function(){return(_emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=function(){return(_emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=function(){return(_emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=function(){return(_emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=function(){return(_emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=function(){return(_emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=function(){return(_emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=function(){return(_emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=function(){return(_emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=function(){return(_emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=function(){return(_emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=function(){return(_emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=function(){return(_emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=function(){return(_emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=function(){return(_emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=function(){return(_emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=function(){return(_emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=function(){return(_emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=function(){return(_emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=function(){return(_emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=function(){return(_emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=function(){return(_emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=function(){return(_emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=function(){return(_emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=function(){return(_emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=function(){return(_emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=function(){return(_emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=function(){return(_emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=function(){return(_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=function(){return(_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=function(){return(_emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=function(){return(_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=function(){return(_emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=function(){return(_emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=Module[\"asm\"][\"Db\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=Module[\"asm\"][\"Eb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=Module[\"asm\"][\"Fb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=Module[\"asm\"][\"Gb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=Module[\"asm\"][\"Hb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=function(){return(_emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=Module[\"asm\"][\"Ib\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=function(){return(_emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=Module[\"asm\"][\"Jb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=function(){return(_emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=Module[\"asm\"][\"Kb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=Module[\"asm\"][\"Lb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=Module[\"asm\"][\"Mb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=function(){return(_emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=Module[\"asm\"][\"Nb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=Module[\"asm\"][\"Ob\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=Module[\"asm\"][\"Pb\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Qb\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Rb\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Sb\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=11660;var ___stop_em_js=Module[\"___stop_em_js\"]=11758;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module[\"WrapperObject\"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module[\"getCache\"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module[\"wrapPointer\"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module[\"castObject\"]=castObject;Module[\"NULL\"]=wrapPointer(0);function destroy(obj){if(!obj[\"__destroy__\"])throw\"Error: Cannot destroy object. (Did you create it yourself?)\";obj[\"__destroy__\"]();delete getCache(obj.__class__)[obj.ptr]}Module[\"destroy\"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module[\"compare\"]=compare;function getPointer(obj){return obj.ptr}Module[\"getPointer\"]=getPointer;function getClass(obj){return obj.__class__}Module[\"getClass\"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module[\"_free\"](ensureCache.temps[i])}ensureCache.temps.length=0;Module[\"_free\"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module[\"_malloc\"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0},alloc:function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module[\"_malloc\"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i<array.length;i++){view[offset+i]=array[i]}}};function ensureString(value){if(typeof value===\"string\"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function VoidPtr(){throw\"cannot construct a VoidPtr, no constructor in IDL\"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module[\"VoidPtr\"]=VoidPtr;VoidPtr.prototype[\"__destroy__\"]=VoidPtr.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)};function DecoderBuffer(){this.ptr=_emscripten_bind_DecoderBuffer_DecoderBuffer_0();getCache(DecoderBuffer)[this.ptr]=this}DecoderBuffer.prototype=Object.create(WrapperObject.prototype);DecoderBuffer.prototype.constructor=DecoderBuffer;DecoderBuffer.prototype.__class__=DecoderBuffer;DecoderBuffer.__cache__={};Module[\"DecoderBuffer\"]=DecoderBuffer;DecoderBuffer.prototype[\"Init\"]=DecoderBuffer.prototype.Init=function(data,data_size){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;_emscripten_bind_DecoderBuffer_Init_2(self,data,data_size)};DecoderBuffer.prototype[\"__destroy__\"]=DecoderBuffer.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DecoderBuffer___destroy___0(self)};function AttributeTransformData(){this.ptr=_emscripten_bind_AttributeTransformData_AttributeTransformData_0();getCache(AttributeTransformData)[this.ptr]=this}AttributeTransformData.prototype=Object.create(WrapperObject.prototype);AttributeTransformData.prototype.constructor=AttributeTransformData;AttributeTransformData.prototype.__class__=AttributeTransformData;AttributeTransformData.__cache__={};Module[\"AttributeTransformData\"]=AttributeTransformData;AttributeTransformData.prototype[\"transform_type\"]=AttributeTransformData.prototype.transform_type=function(){var self=this.ptr;return _emscripten_bind_AttributeTransformData_transform_type_0(self)};AttributeTransformData.prototype[\"__destroy__\"]=AttributeTransformData.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeTransformData___destroy___0(self)};function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module[\"GeometryAttribute\"]=GeometryAttribute;GeometryAttribute.prototype[\"__destroy__\"]=GeometryAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)};function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module[\"PointAttribute\"]=PointAttribute;PointAttribute.prototype[\"size\"]=PointAttribute.prototype.size=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)};PointAttribute.prototype[\"GetAttributeTransformData\"]=PointAttribute.prototype.GetAttributeTransformData=function(){var self=this.ptr;return wrapPointer(_emscripten_bind_PointAttribute_GetAttributeTransformData_0(self),AttributeTransformData)};PointAttribute.prototype[\"attribute_type\"]=PointAttribute.prototype.attribute_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)};PointAttribute.prototype[\"data_type\"]=PointAttribute.prototype.data_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)};PointAttribute.prototype[\"num_components\"]=PointAttribute.prototype.num_components=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)};PointAttribute.prototype[\"normalized\"]=PointAttribute.prototype.normalized=function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)};PointAttribute.prototype[\"byte_stride\"]=PointAttribute.prototype.byte_stride=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)};PointAttribute.prototype[\"byte_offset\"]=PointAttribute.prototype.byte_offset=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)};PointAttribute.prototype[\"unique_id\"]=PointAttribute.prototype.unique_id=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)};PointAttribute.prototype[\"__destroy__\"]=PointAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)};function AttributeQuantizationTransform(){this.ptr=_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0();getCache(AttributeQuantizationTransform)[this.ptr]=this}AttributeQuantizationTransform.prototype=Object.create(WrapperObject.prototype);AttributeQuantizationTransform.prototype.constructor=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype.__class__=AttributeQuantizationTransform;AttributeQuantizationTransform.__cache__={};Module[\"AttributeQuantizationTransform\"]=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype[\"InitFromAttribute\"]=AttributeQuantizationTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1(self,att)};AttributeQuantizationTransform.prototype[\"quantization_bits\"]=AttributeQuantizationTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0(self)};AttributeQuantizationTransform.prototype[\"min_value\"]=AttributeQuantizationTransform.prototype.min_value=function(axis){var self=this.ptr;if(axis&&typeof axis===\"object\")axis=axis.ptr;return _emscripten_bind_AttributeQuantizationTransform_min_value_1(self,axis)};AttributeQuantizationTransform.prototype[\"range\"]=AttributeQuantizationTransform.prototype.range=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_range_0(self)};AttributeQuantizationTransform.prototype[\"__destroy__\"]=AttributeQuantizationTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeQuantizationTransform___destroy___0(self)};function AttributeOctahedronTransform(){this.ptr=_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0();getCache(AttributeOctahedronTransform)[this.ptr]=this}AttributeOctahedronTransform.prototype=Object.create(WrapperObject.prototype);AttributeOctahedronTransform.prototype.constructor=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype.__class__=AttributeOctahedronTransform;AttributeOctahedronTransform.__cache__={};Module[\"AttributeOctahedronTransform\"]=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype[\"InitFromAttribute\"]=AttributeOctahedronTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1(self,att)};AttributeOctahedronTransform.prototype[\"quantization_bits\"]=AttributeOctahedronTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0(self)};AttributeOctahedronTransform.prototype[\"__destroy__\"]=AttributeOctahedronTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeOctahedronTransform___destroy___0(self)};function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module[\"PointCloud\"]=PointCloud;PointCloud.prototype[\"num_attributes\"]=PointCloud.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)};PointCloud.prototype[\"num_points\"]=PointCloud.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)};PointCloud.prototype[\"__destroy__\"]=PointCloud.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)};function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module[\"Mesh\"]=Mesh;Mesh.prototype[\"num_faces\"]=Mesh.prototype.num_faces=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)};Mesh.prototype[\"num_attributes\"]=Mesh.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)};Mesh.prototype[\"num_points\"]=Mesh.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)};Mesh.prototype[\"__destroy__\"]=Mesh.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)};function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module[\"Metadata\"]=Metadata;Metadata.prototype[\"__destroy__\"]=Metadata.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)};function Status(){throw\"cannot construct a Status, no constructor in IDL\"}Status.prototype=Object.create(WrapperObject.prototype);Status.prototype.constructor=Status;Status.prototype.__class__=Status;Status.__cache__={};Module[\"Status\"]=Status;Status.prototype[\"code\"]=Status.prototype.code=function(){var self=this.ptr;return _emscripten_bind_Status_code_0(self)};Status.prototype[\"ok\"]=Status.prototype.ok=function(){var self=this.ptr;return!!_emscripten_bind_Status_ok_0(self)};Status.prototype[\"error_msg\"]=Status.prototype.error_msg=function(){var self=this.ptr;return UTF8ToString(_emscripten_bind_Status_error_msg_0(self))};Status.prototype[\"__destroy__\"]=Status.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Status___destroy___0(self)};function DracoFloat32Array(){this.ptr=_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0();getCache(DracoFloat32Array)[this.ptr]=this}DracoFloat32Array.prototype=Object.create(WrapperObject.prototype);DracoFloat32Array.prototype.constructor=DracoFloat32Array;DracoFloat32Array.prototype.__class__=DracoFloat32Array;DracoFloat32Array.__cache__={};Module[\"DracoFloat32Array\"]=DracoFloat32Array;DracoFloat32Array.prototype[\"GetValue\"]=DracoFloat32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoFloat32Array_GetValue_1(self,index)};DracoFloat32Array.prototype[\"size\"]=DracoFloat32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoFloat32Array_size_0(self)};DracoFloat32Array.prototype[\"__destroy__\"]=DracoFloat32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoFloat32Array___destroy___0(self)};function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module[\"DracoInt8Array\"]=DracoInt8Array;DracoInt8Array.prototype[\"GetValue\"]=DracoInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,index)};DracoInt8Array.prototype[\"size\"]=DracoInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)};DracoInt8Array.prototype[\"__destroy__\"]=DracoInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)};function DracoUInt8Array(){this.ptr=_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0();getCache(DracoUInt8Array)[this.ptr]=this}DracoUInt8Array.prototype=Object.create(WrapperObject.prototype);DracoUInt8Array.prototype.constructor=DracoUInt8Array;DracoUInt8Array.prototype.__class__=DracoUInt8Array;DracoUInt8Array.__cache__={};Module[\"DracoUInt8Array\"]=DracoUInt8Array;DracoUInt8Array.prototype[\"GetValue\"]=DracoUInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt8Array_GetValue_1(self,index)};DracoUInt8Array.prototype[\"size\"]=DracoUInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt8Array_size_0(self)};DracoUInt8Array.prototype[\"__destroy__\"]=DracoUInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt8Array___destroy___0(self)};function DracoInt16Array(){this.ptr=_emscripten_bind_DracoInt16Array_DracoInt16Array_0();getCache(DracoInt16Array)[this.ptr]=this}DracoInt16Array.prototype=Object.create(WrapperObject.prototype);DracoInt16Array.prototype.constructor=DracoInt16Array;DracoInt16Array.prototype.__class__=DracoInt16Array;DracoInt16Array.__cache__={};Module[\"DracoInt16Array\"]=DracoInt16Array;DracoInt16Array.prototype[\"GetValue\"]=DracoInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt16Array_GetValue_1(self,index)};DracoInt16Array.prototype[\"size\"]=DracoInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt16Array_size_0(self)};DracoInt16Array.prototype[\"__destroy__\"]=DracoInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt16Array___destroy___0(self)};function DracoUInt16Array(){this.ptr=_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0();getCache(DracoUInt16Array)[this.ptr]=this}DracoUInt16Array.prototype=Object.create(WrapperObject.prototype);DracoUInt16Array.prototype.constructor=DracoUInt16Array;DracoUInt16Array.prototype.__class__=DracoUInt16Array;DracoUInt16Array.__cache__={};Module[\"DracoUInt16Array\"]=DracoUInt16Array;DracoUInt16Array.prototype[\"GetValue\"]=DracoUInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt16Array_GetValue_1(self,index)};DracoUInt16Array.prototype[\"size\"]=DracoUInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt16Array_size_0(self)};DracoUInt16Array.prototype[\"__destroy__\"]=DracoUInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt16Array___destroy___0(self)};function DracoInt32Array(){this.ptr=_emscripten_bind_DracoInt32Array_DracoInt32Array_0();getCache(DracoInt32Array)[this.ptr]=this}DracoInt32Array.prototype=Object.create(WrapperObject.prototype);DracoInt32Array.prototype.constructor=DracoInt32Array;DracoInt32Array.prototype.__class__=DracoInt32Array;DracoInt32Array.__cache__={};Module[\"DracoInt32Array\"]=DracoInt32Array;DracoInt32Array.prototype[\"GetValue\"]=DracoInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt32Array_GetValue_1(self,index)};DracoInt32Array.prototype[\"size\"]=DracoInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt32Array_size_0(self)};DracoInt32Array.prototype[\"__destroy__\"]=DracoInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt32Array___destroy___0(self)};function DracoUInt32Array(){this.ptr=_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0();getCache(DracoUInt32Array)[this.ptr]=this}DracoUInt32Array.prototype=Object.create(WrapperObject.prototype);DracoUInt32Array.prototype.constructor=DracoUInt32Array;DracoUInt32Array.prototype.__class__=DracoUInt32Array;DracoUInt32Array.__cache__={};Module[\"DracoUInt32Array\"]=DracoUInt32Array;DracoUInt32Array.prototype[\"GetValue\"]=DracoUInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt32Array_GetValue_1(self,index)};DracoUInt32Array.prototype[\"size\"]=DracoUInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt32Array_size_0(self)};DracoUInt32Array.prototype[\"__destroy__\"]=DracoUInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt32Array___destroy___0(self)};function MetadataQuerier(){this.ptr=_emscripten_bind_MetadataQuerier_MetadataQuerier_0();getCache(MetadataQuerier)[this.ptr]=this}MetadataQuerier.prototype=Object.create(WrapperObject.prototype);MetadataQuerier.prototype.constructor=MetadataQuerier;MetadataQuerier.prototype.__class__=MetadataQuerier;MetadataQuerier.__cache__={};Module[\"MetadataQuerier\"]=MetadataQuerier;MetadataQuerier.prototype[\"HasEntry\"]=MetadataQuerier.prototype.HasEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return!!_emscripten_bind_MetadataQuerier_HasEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntry\"]=MetadataQuerier.prototype.GetIntEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetIntEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntryArray\"]=MetadataQuerier.prototype.GetIntEntryArray=function(metadata,entry_name,out_values){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;_emscripten_bind_MetadataQuerier_GetIntEntryArray_3(self,metadata,entry_name,out_values)};MetadataQuerier.prototype[\"GetDoubleEntry\"]=MetadataQuerier.prototype.GetDoubleEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetDoubleEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetStringEntry\"]=MetadataQuerier.prototype.GetStringEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return UTF8ToString(_emscripten_bind_MetadataQuerier_GetStringEntry_2(self,metadata,entry_name))};MetadataQuerier.prototype[\"NumEntries\"]=MetadataQuerier.prototype.NumEntries=function(metadata){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return _emscripten_bind_MetadataQuerier_NumEntries_1(self,metadata)};MetadataQuerier.prototype[\"GetEntryName\"]=MetadataQuerier.prototype.GetEntryName=function(metadata,entry_id){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_id&&typeof entry_id===\"object\")entry_id=entry_id.ptr;return UTF8ToString(_emscripten_bind_MetadataQuerier_GetEntryName_2(self,metadata,entry_id))};MetadataQuerier.prototype[\"__destroy__\"]=MetadataQuerier.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MetadataQuerier___destroy___0(self)};function Decoder(){this.ptr=_emscripten_bind_Decoder_Decoder_0();getCache(Decoder)[this.ptr]=this}Decoder.prototype=Object.create(WrapperObject.prototype);Decoder.prototype.constructor=Decoder;Decoder.prototype.__class__=Decoder;Decoder.__cache__={};Module[\"Decoder\"]=Decoder;Decoder.prototype[\"DecodeArrayToPointCloud\"]=Decoder.prototype.DecodeArrayToPointCloud=function(data,data_size,out_point_cloud){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3(self,data,data_size,out_point_cloud),Status)};Decoder.prototype[\"DecodeArrayToMesh\"]=Decoder.prototype.DecodeArrayToMesh=function(data,data_size,out_mesh){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToMesh_3(self,data,data_size,out_mesh),Status)};Decoder.prototype[\"GetAttributeId\"]=Decoder.prototype.GetAttributeId=function(pc,type){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;return _emscripten_bind_Decoder_GetAttributeId_2(self,pc,type)};Decoder.prototype[\"GetAttributeIdByName\"]=Decoder.prototype.GetAttributeIdByName=function(pc,name){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);return _emscripten_bind_Decoder_GetAttributeIdByName_2(self,pc,name)};Decoder.prototype[\"GetAttributeIdByMetadataEntry\"]=Decoder.prototype.GetAttributeIdByMetadataEntry=function(pc,name,value){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);if(value&&typeof value===\"object\")value=value.ptr;else value=ensureString(value);return _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3(self,pc,name,value)};Decoder.prototype[\"GetAttribute\"]=Decoder.prototype.GetAttribute=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttribute_2(self,pc,att_id),PointAttribute)};Decoder.prototype[\"GetAttributeByUniqueId\"]=Decoder.prototype.GetAttributeByUniqueId=function(pc,unique_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(unique_id&&typeof unique_id===\"object\")unique_id=unique_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeByUniqueId_2(self,pc,unique_id),PointAttribute)};Decoder.prototype[\"GetMetadata\"]=Decoder.prototype.GetMetadata=function(pc){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;return wrapPointer(_emscripten_bind_Decoder_GetMetadata_1(self,pc),Metadata)};Decoder.prototype[\"GetAttributeMetadata\"]=Decoder.prototype.GetAttributeMetadata=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeMetadata_2(self,pc,att_id),Metadata)};Decoder.prototype[\"GetFaceFromMesh\"]=Decoder.prototype.GetFaceFromMesh=function(m,face_id,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(face_id&&typeof face_id===\"object\")face_id=face_id.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetFaceFromMesh_3(self,m,face_id,out_values)};Decoder.prototype[\"GetTriangleStripsFromMesh\"]=Decoder.prototype.GetTriangleStripsFromMesh=function(m,strip_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(strip_values&&typeof strip_values===\"object\")strip_values=strip_values.ptr;return _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2(self,m,strip_values)};Decoder.prototype[\"GetTrianglesUInt16Array\"]=Decoder.prototype.GetTrianglesUInt16Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt16Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetTrianglesUInt32Array\"]=Decoder.prototype.GetTrianglesUInt32Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt32Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetAttributeFloat\"]=Decoder.prototype.GetAttributeFloat=function(pa,att_index,out_values){var self=this.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(att_index&&typeof att_index===\"object\")att_index=att_index.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloat_3(self,pa,att_index,out_values)};Decoder.prototype[\"GetAttributeFloatForAllPoints\"]=Decoder.prototype.GetAttributeFloatForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeIntForAllPoints\"]=Decoder.prototype.GetAttributeIntForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt8ForAllPoints\"]=Decoder.prototype.GetAttributeInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt8ForAllPoints\"]=Decoder.prototype.GetAttributeUInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt16ForAllPoints\"]=Decoder.prototype.GetAttributeInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt16ForAllPoints\"]=Decoder.prototype.GetAttributeUInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt32ForAllPoints\"]=Decoder.prototype.GetAttributeInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt32ForAllPoints\"]=Decoder.prototype.GetAttributeUInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeDataArrayForAllPoints\"]=Decoder.prototype.GetAttributeDataArrayForAllPoints=function(pc,pa,data_type,out_size,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(data_type&&typeof data_type===\"object\")data_type=data_type.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5(self,pc,pa,data_type,out_size,out_values)};Decoder.prototype[\"SkipAttributeTransform\"]=Decoder.prototype.SkipAttributeTransform=function(att_type){var self=this.ptr;if(att_type&&typeof att_type===\"object\")att_type=att_type.ptr;_emscripten_bind_Decoder_SkipAttributeTransform_1(self,att_type)};Decoder.prototype[\"GetEncodedGeometryType_Deprecated\"]=Decoder.prototype.GetEncodedGeometryType_Deprecated=function(in_buffer){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;return _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1(self,in_buffer)};Decoder.prototype[\"DecodeBufferToPointCloud\"]=Decoder.prototype.DecodeBufferToPointCloud=function(in_buffer,out_point_cloud){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2(self,in_buffer,out_point_cloud),Status)};Decoder.prototype[\"DecodeBufferToMesh\"]=Decoder.prototype.DecodeBufferToMesh=function(in_buffer,out_mesh){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToMesh_2(self,in_buffer,out_mesh),Status)};Decoder.prototype[\"__destroy__\"]=Decoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Decoder___destroy___0(self)};(function(){function setupEnums(){Module[\"ATTRIBUTE_INVALID_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM();Module[\"ATTRIBUTE_NO_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM();Module[\"ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM();Module[\"ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM();Module[\"INVALID\"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module[\"POSITION\"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module[\"NORMAL\"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module[\"COLOR\"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module[\"TEX_COORD\"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module[\"GENERIC\"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC();Module[\"INVALID_GEOMETRY_TYPE\"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module[\"POINT_CLOUD\"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module[\"TRIANGULAR_MESH\"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module[\"DT_INVALID\"]=_emscripten_enum_draco_DataType_DT_INVALID();Module[\"DT_INT8\"]=_emscripten_enum_draco_DataType_DT_INT8();Module[\"DT_UINT8\"]=_emscripten_enum_draco_DataType_DT_UINT8();Module[\"DT_INT16\"]=_emscripten_enum_draco_DataType_DT_INT16();Module[\"DT_UINT16\"]=_emscripten_enum_draco_DataType_DT_UINT16();Module[\"DT_INT32\"]=_emscripten_enum_draco_DataType_DT_INT32();Module[\"DT_UINT32\"]=_emscripten_enum_draco_DataType_DT_UINT32();Module[\"DT_INT64\"]=_emscripten_enum_draco_DataType_DT_INT64();Module[\"DT_UINT64\"]=_emscripten_enum_draco_DataType_DT_UINT64();Module[\"DT_FLOAT32\"]=_emscripten_enum_draco_DataType_DT_FLOAT32();Module[\"DT_FLOAT64\"]=_emscripten_enum_draco_DataType_DT_FLOAT64();Module[\"DT_BOOL\"]=_emscripten_enum_draco_DataType_DT_BOOL();Module[\"DT_TYPES_COUNT\"]=_emscripten_enum_draco_DataType_DT_TYPES_COUNT();Module[\"OK\"]=_emscripten_enum_draco_StatusCode_OK();Module[\"DRACO_ERROR\"]=_emscripten_enum_draco_StatusCode_DRACO_ERROR();Module[\"IO_ERROR\"]=_emscripten_enum_draco_StatusCode_IO_ERROR();Module[\"INVALID_PARAMETER\"]=_emscripten_enum_draco_StatusCode_INVALID_PARAMETER();Module[\"UNSUPPORTED_VERSION\"]=_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION();Module[\"UNKNOWN_VERSION\"]=_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION()}if(runtimeInitialized)setupEnums();else addOnInit(setupEnums)})();if(typeof Module[\"onModuleParsed\"]===\"function\"){Module[\"onModuleParsed\"]()}Module[\"Decoder\"].prototype.GetEncodedGeometryType=function(array){if(array.__class__&&array.__class__===Module.DecoderBuffer){return Module.Decoder.prototype.GetEncodedGeometryType_Deprecated(array)}if(array.byteLength<8)return Module.INVALID_GEOMETRY_TYPE;switch(array[7]){case 0:return Module.POINT_CLOUD;case 1:return Module.TRIANGULAR_MESH;default:return Module.INVALID_GEOMETRY_TYPE}};\n\n\n  return DracoDecoderModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DracoDecoderModule;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DracoDecoderModule; });\nelse if (typeof exports === 'object')\n  exports[\"DracoDecoderModule\"] = DracoDecoderModule;\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/draco_encoder.js",
    "content": "\nvar DracoEncoderModule = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DracoEncoderModule = {})  {\n\nvar Module=typeof DracoEncoderModule!=\"undefined\"?DracoEncoderModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module[\"onRuntimeInitialized\"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};Module[\"onModuleParsed\"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!==\"string\")return false;const version=versionString.split(\".\");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module[\"isVersionSupported\"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts[\"initial\"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(\n// EMSCRIPTEN_START_ASM\nfunction instantiate(ma){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]==\"=\")-(o[j-1]==\"=\");for(;a<j;a+=4){g=f[o.charCodeAt(a+1)];h=f[o.charCodeAt(a+2)];m[i++]=f[o.charCodeAt(a)]<<2|g>>4;if(i<k)m[i++]=g<<4|h>>2;if(i<k)m[i++]=h<<6|f[o.charCodeAt(a+3)]}}function p(q){l(e,1028,\"YAQAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAE41ZHJhY28yOEF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1FAAD4SAAAOAQAAHgIAABjb21wcmVzc19jb25uZWN0aXZpdHkAaW5maW5pdHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABfX25leHRfcHJpbWUgb3ZlcmZsb3cAc3RvcmVfbnVtYmVyX29mX2VuY29kZWRfcG9pbnRzAHF1YW50aXphdGlvbl9iaXRzAHNwbGl0X21lc2hfb25fc2VhbXMAc3RvcmVfbnVtYmVyX29mX2VuY29kZWRfZmFjZXMAdmVjdG9yAHByZWRpY3RpdmVfZWRnZWJyZWFrZXIAc3RhbmRhcmRfZWRnZWJyZWFrZXIAc3RkOjpleGNlcHRpb24AdXNlX2J1aWx0X2luX2F0dHJpYnV0ZV9jb21wcmVzc2lvbgBxdWFudGl6YXRpb25fb3JpZ2luAG5hbgBzeW1ib2xfZW5jb2RpbmdfY29tcHJlc3Npb25fbGV2ZWwAYmFkX2FycmF5X25ld19sZW5ndGgAYmFzaWNfc3RyaW5nAGluZgAlZgBwcmVkaWN0aW9uX3NjaGVtZQBxdWFudGl6YXRpb25fcmFuZ2UAZWRnZWJyZWFrZXJfbWV0aG9kAHN5bWJvbF9lbmNvZGluZ19tZXRob2QAZW5jb2Rpbmdfc3BlZWQAZGVjb2Rpbmdfc3BlZWQAc3RkOjpiYWRfYWxsb2MARFJBQ08ATkFOAElORgBJbnZhbGlkIGlucHV0IGdlb21ldHJ5LgBGYWlsZWQgdG8gZW5jb2RlIG1lc2ggY29tcG9uZW50LgBGYWlsZWQgdG8gZW5jb2RlIHBvaW50IGF0dHJpYnV0ZXMuAEZhaWxlZCB0byBwcm9jZXNzIG1lc2ggaG9sZXMuAEZhaWxlZCB0byBpbml0aWFsaXplIGVuY29kZXIuAEFsbCB0cmlhbmdsZXMgYXJlIGRlZ2VuZXJhdGUuAEludmFsaWQgZW5jb2RpbmcgbWV0aG9kLgBGYWlsZWQgdG8gZW5jb2RlIG1ldGFkYXRhLgBGYWlsZWQgdG8gZW5jb2RlIHNwbGl0IGRhdGEuAEZhaWxlZCB0byBlbmNvZGUgaW50ZXJuYWwgZGF0YS4ARmFpbGVkIHRvIGluaXRpYWxpemUgYXR0cmlidXRlIGRhdGEuAChudWxsKQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQAgAAAAAAAAAEwIAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAALAAAAGAAAABkAAABONWRyYWNvMzBBdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1FAAAAAPhIAAAgCAAAeAgAAE41ZHJhY28xOEF0dHJpYnV0ZVRyYW5zZm9ybUUAAAAA0EgAAFgIAAD/////AAAAANwIAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAAB4AAAAlAAAATjVkcmFjbzE3QXR0cmlidXRlc0VuY29kZXJFANBIAADACAAAAAAAAEQJAAAmAAAAJwAAABwAAAAdAAAAKAAAAB8AAAAgAAAAIQAAACIAAAAjAAAAKQAAACoAAAArAAAATjVkcmFjbzIzS2RUcmVlQXR0cmlidXRlc0VuY29kZXJFAAAA+EgAACAJAADcCAAAAAAAALAJAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAABONWRyYWNvMjZTZXF1ZW50aWFsQXR0cmlidXRlRW5jb2RlckUAAAAA0EgAAIgJAAAAAAAALAoAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAE41ZHJhY28zN1NlcXVlbnRpYWxBdHRyaWJ1dGVFbmNvZGVyc0NvbnRyb2xsZXJFAPhIAAD8CQAA3AgAAAAAAACkCgAARwAAAEgAAABJAAAALwAAAEoAAAAxAAAAMgAAADMAAABLAAAANQAAADYAAABMAAAATQAAAE4AAABONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZUVuY29kZXJFAPhIAAB4CgAAsAkAAP////8AAAAANA0AAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjNQcmVkaWN0aW9uU2NoZW1lRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVFRQBONWRyYWNvMzdQcmVkaWN0aW9uU2NoZW1lVHlwZWRFbmNvZGVySW50ZXJmYWNlSWlpRUUATjVkcmFjbzMyUHJlZGljdGlvblNjaGVtZUVuY29kZXJJbnRlcmZhY2VFAE41ZHJhY28yNVByZWRpY3Rpb25TY2hlbWVJbnRlcmZhY2VFANBIAADYDAAA+EgAAK0MAAD8DAAA+EgAAHkMAAAEDQAA+EgAACUMAAAQDQAA+EgAAI8LAAAcDQAA+EgAAOwKAAAoDQAAAAAAACgNAABPAAAAWwAAAB4AAABSAAAAHgAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAB4AAAAAAAAAHA0AAE8AAABcAAAAHgAAAFIAAAAeAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAHgAAAAAAAACcDgAAXQAAAF4AAABfAAAAUgAAAGAAAABUAAAAVQAAAFYAAABXAAAAWAAAAGEAAABiAAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAA+EgAAOgNAAAoDQAAAAAAAIgPAABjAAAAZAAAAGUAAABSAAAAZgAAAGcAAABoAAAAaQAAAFcAAABYAAAAagAAAGsAAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAD4SAAA4A4AACgNAAAAAAAAdBAAAGwAAABtAAAAbgAAAFIAAABvAAAAcAAAAHEAAAByAAAAVwAAAFgAAABzAAAAdAAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAAAPhIAADMDwAAKA0AAAAAAAD8EQAAdQAAAHYAAAB3AAAAeAAAAHkAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAANBIAABHEQAA+EgAAJwQAAD0EQAAAAAAAPQRAAB1AAAAegAAAB4AAAB4AAAAHgAAAAAAAACIEwAATwAAAHsAAAB8AAAAUgAAAH0AAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAAB+AAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAA+EgAAPISAAAcDQAA+EgAAFwSAAB8EwAAAAAAAHwTAABPAAAAfwAAAB4AAABSAAAAHgAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAB4AAAAAAAAArBQAAIAAAACBAAAAggAAAFIAAACDAAAAVAAAAFUAAABWAAAAVwAAAFgAAACEAAAAhQAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAPhIAAAEFAAAfBMAAAAAAACMFQAAhgAAAIcAAACIAAAAUgAAAIkAAACKAAAAiwAAAIwAAABXAAAAWAAAAI0AAACOAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAA+EgAAPAUAAB8EwAAAAAAAGgWAACPAAAAkAAAAJEAAABSAAAAkgAAAJMAAACUAAAAlQAAAFcAAABYAAAAlgAAAJcAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbEVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAPhIAADQFQAAfBMAAAAAAADUFwAAmAAAAJkAAACaAAAAmwAAAJwAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA0EgAAC4XAAD4SAAAkBYAAMwXAAAAAAAAzBcAAJgAAACdAAAAHgAAAJsAAAAeAAAAAAAAAJAYAABPAAAAngAAAJ8AAABSAAAAoAAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAKEAAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAAAAAPhIAAA0GAAAHA0AAAAAAAAIGQAAogAAAKMAAACkAAAALwAAAEoAAAAxAAAApQAAAKYAAACnAAAANQAAADYAAABMAAAAqAAAAKkAAABONWRyYWNvMzJTZXF1ZW50aWFsTm9ybWFsQXR0cmlidXRlRW5jb2RlckUAAPhIAADcGAAApAoAAAAAAAA8GwAAqgAAAKsAAACsAAAArQAAAK4AAACvAAAAsAAAALEAAACyAAAAswAAALQAAAC1AAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRUVFAAAAAPhIAAC1GgAAEA0AAPhIAAAHGgAAJBsAAPhIAABMGQAAMBsAAAAAAABMHAAAtgAAALcAAAC4AAAArQAAALkAAACvAAAAsAAAALEAAACyAAAAswAAALoAAAC7AAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAA+EgAAIAbAAAwGwAAAAAAAFAdAAC8AAAAvQAAAL4AAACtAAAAvwAAAMAAAADBAAAAwgAAALIAAACzAAAAwwAAAMQAAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAD4SAAAkBwAADAbAAAAAAAAVB4AAMUAAADGAAAAxwAAAK0AAADIAAAAyQAAAMoAAADLAAAAsgAAALMAAADMAAAAzQAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAAAPhIAACUHQAAMBsAAAAAAAAMIAAAzgAAAM8AAADQAAAA0QAAANIAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAANBIAAA/HwAA+EgAAHweAAAEIAAAAAAAAKwhAACqAAAA0wAAANQAAACtAAAA1QAAAK8AAACwAAAAsQAAALIAAACzAAAAtAAAANYAAABONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAD4SAAA/iAAACQbAAD4SAAAUCAAAKAhAAAAAAAAsCIAANcAAADYAAAA2QAAAK0AAADaAAAArwAAALAAAACxAAAAsgAAALMAAADbAAAA3AAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAPhIAADwIQAAoCEAAAAAAACoIwAA3QAAAN4AAADfAAAArQAAAOAAAADhAAAA4gAAAOMAAACyAAAAswAAAOQAAADlAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAA+EgAAPQiAACgIQAAAAAAAJwkAADmAAAA5wAAAOgAAACtAAAA6QAAAOoAAADrAAAA7AAAALIAAACzAAAA7QAAAO4AAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbEVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAPhIAADsIwAAoCEAAAAAAAA4JgAA7wAAAPAAAADxAAAA8gAAAPMAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA0EgAAHolAAD4SAAAxCQAADAmAAAAAAAA8CYAAKoAAAD0AAAA9QAAAK0AAAD2AAAArwAAALAAAACxAAAAsgAAALMAAAC0AAAA9wAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFRUUAAAAA+EgAAHwmAAAkGwAAAAAAAHAnAAD4AAAA+QAAAPoAAAAvAAAASgAAADEAAAD7AAAA/AAAAP0AAAA1AAAANgAAAEwAAABNAAAA/gAAAE41ZHJhY28zOFNlcXVlbnRpYWxRdWFudGl6YXRpb25BdHRyaWJ1dGVFbmNvZGVyRQAAAAD4SAAAPCcAAKQKAAAAAAAA/CcAAP8AAAAAAQAAAQEAAAIBAABONWRyYWNvN0VuY29kZXJFAE41ZHJhY28xMUVuY29kZXJCYXNlSU5TXzE4RW5jb2Rlck9wdGlvbnNCYXNlSU5TXzE3R2VvbWV0cnlBdHRyaWJ1dGU0VHlwZUVFRUVFAADQSAAApScAAPhIAACUJwAA9CcAAAAAAABMKAAAAwEAAAQBAABONWRyYWNvMTFFbmNvZGVyQmFzZUlOU18xOEVuY29kZXJPcHRpb25zQmFzZUlpRUVFRQAA0EgAABgoAAAAAAAA9CcAAP8AAAAFAQ==\");l(e,10348,\"kCgAAAMBAAAGAQAATjVkcmFjbzEzRXhwZXJ0RW5jb2RlckUA+EgAAHgoAABMKAAAAAAAABApAAAHAQAACAEAAAkBAAAKAQAACwEAAAwBAAANAQAADgEAAA8BAAAQAQAAEQEAABIBAAATAQAAFAEAABUBAAAWAQAAFwEAABgBAABONWRyYWNvMjJNZXNoRWRnZWJyZWFrZXJFbmNvZGVyRQAAAAD4SAAA7CgAAOQvAAAAAAAACCoAABkBAAAaAQAAGwEAABwBAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAAAAAAGgqAAAkAQAAJQEAACYBAAAnAQAAKAEAACkBAAAqAQAAKwEAACwBAAAtAQAALgEAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckVuY29kZXJJbXBsSU5TXzMxTWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsRW5jb2RlckVFRQBONWRyYWNvMzVNZXNoRWRnZWJyZWFrZXJFbmNvZGVySW1wbEludGVyZmFjZUUAAADQSAAA0CkAAPhIAACEKQAAACoAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckVuY29kZXJJbXBsSU5TXzM4TWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsVmFsZW5jZUVuY29kZXJFRUUAAPhIAAAUKgAAACoAAAAAAABkKwAALwEAADABAAAxAQAATjVkcmFjbzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMV9FRUVFAE41ZHJhY28xM1RyYXZlcnNlckJhc2VJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQDQSAAA9SoAAPhIAACIKgAAXCsAAAAAAABcKwAAMgEAADMBAAAxAQ==\");l(e,11152,\"AQAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAQAAAAUAAAACAAAABQAAAAMAAAAFAAAABAAAAAAAAACULAAANAEAADUBAAA2AQAANwEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAE41ZHJhY28xNVBvaW50c1NlcXVlbmNlckUAAAAA0EgAAG8sAAD4SAAA6CsAAIwsAAD/////AAAAAIQtAAA4AQAAOQEAADoBAABONWRyYWNvMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAA0EgAACEtAAD4SAAAuCwAAHwtAAAAAAAAfC0AADsBAAA8AQAAOgEAAAAAAAA8LgAAPQEAAD4BAAA/AQAAQAEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAAAA+EgAALwtAACMLAAAAAAAALwuAABBAQAAQgEAADoBAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQD4SAAAXC4AAHwtAAAAAAAAbC8AAEMBAABEAQAARQEAAEYBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMl9FRUVFRUUAAPhIAADgLgAAjCw=\");l(e,12160,\"5C8AAEcBAABIAQAACQEAAB4AAABJAQAADAEAAA0BAAAOAQAADwEAAB4AAABKAQAAEgEAAB4AAABLAQAATAEAAE0BAAAeAAAAHgAAAE41ZHJhY28xMU1lc2hFbmNvZGVyRQAAAPhIAADMLwAABDEAAAAAAABgMAAARwEAAE4BAAAJAQAATwEAAEkBAAAMAQAADQEAAA4BAAAPAQAAUAEAAEoBAAASAQAAUQEAAEsBAABMAQAATQEAAFIBAABTAQAATjVkcmFjbzIxTWVzaFNlcXVlbnRpYWxFbmNvZGVyRQD4SAAAQDAAAOQvAAAAAAAAoDAAAFQBAABVAQAAVgEAAFcBAABONWRyYWNvMTVMaW5lYXJTZXF1ZW5jZXJFAAAA+EgAAIQwAACMLAAAAAAAAAQxAABHAQAAWAEAAFkBAAAeAAAASQEAAAwBAABaAQAADgEAAA8BAAAeAAAASgEAABIBAAAeAAAATjVkcmFjbzE3UG9pbnRDbG91ZEVuY29kZXJFANBIAADoMAAAAAAAAGwxAABHAQAAWwEAAFkBAABcAQAASQEAAAwBAABdAQAADgEAAA8BAABeAQAASgEAABIBAABfAQAATjVkcmFjbzIzUG9pbnRDbG91ZEtkVHJlZUVuY29kZXJFAAAA+EgAAEgxAAAEMQAAAAAAANwxAABHAQAAYAEAAFkBAABhAQAASQEAAAwBAABiAQAADgEAAA8BAABjAQAASgEAABIBAABkAQAATjVkcmFjbzI3UG9pbnRDbG91ZFNlcXVlbnRpYWxFbmNvZGVyRQAAAPhIAAC0MQAABDE=\");l(e,12804,\"AQAAAFZVVVUCAAAAAAAAAAIAAACamZmZAwAAAFZVVVUDAAAAJUmSJAMAAAAAAAAAAwAAAMhxHMcEAAAAmpmZmQQAAABGF110BAAAAFZVVVUEAAAAPLETOwQAAAAlSZIkBAAAABIREREEAAAAAAAAAAQAAADi4eHhBQAAAMhxHMcFAAAAy2sorwUAAACamZmZBQAAAIdhGIYFAAAARhdddAUAAACRhSxkBQAAAFZVVVUFAAAAexSuRwUAAAA8sRM7BQAAANtLaC8FAAAAJUmSJAUAAAASlnsaBQAAABIREREFAAAAhRBCCAUAAAAAAAAABQAAAAgffPAGAAAA4uHh4QYAAADVQR3UBgAAAMhxHMcGAAAATZHPugYAAADLayivBgAAAKVBGqQGAAAAmpmZmQYAAAD6GJyPBgAAAIdhGIYGAAAAGPQFfQYAAABGF110BgAAAG3BFmwGAAAAkYUsZAYAAAC6gphcBgAAAFZVVVUGAAAAcwpeTgYAAAB7FK5HBgAAAEJBQUEGAAAAPLETOwYAAACzzyE1BgAAANtLaC8GAAAAnxLkKQYAAAAlSZIkBgAAAN1HcB8GAAAAEpZ7GgYAAAD45bEVBgAAABIREREGAAAA/BSXDAYAAACFEEIIBgAAAAVBEAQGAAAAAAAAAAYAAAD5gR/4BwAAAAgffPAHAAAAwBoT6QcAAADi4eHhBwAAAGwH5toHAAAA1UEd1AcAAACRaIXNBwAAAMhxHMcHAAAAOXDgwAcAAABNkc+6BwAAAE8b6LQHAAAAy2sorwcAAAAH9o6pBwAAAKVBGqQHAAAAUunIngcAAACamZmZBwAAAM4Pi5QHAAAA+hicjwcAAAD3kMuKBwAAAIdhGIYHAAAAgoGBgQcAAAAY9AV9BwAAABjIpHgHAAAARhdddAcAAADBBS5wBwAAAG3BFmwHAAAAaYEWaAcAAACRhSxkBwAAAAYWWGAHAAAAuoKYXAcAAAAJI+1YBwAAAFZVVVUHAAAAr37QUQcAAABzCl5OBwAAAAZq/UoHAAAAexSuRwcAAABXhm9EBwAAAEJBQUEHAAAAz8siPgcAAAA8sRM7BwAAADmBEzgHAAAAs88hNQcAAACjND4yBwAAANtLaC8HAAAA2bSfLAcAAACfEuQpBwAAAIkLNScHAAAAJUmSJAcAAAATePshBwAAAN1HcB8HAAAA22rwHAcAAAASlnsaBwAAABmBERgHAAAA+OWxFQcAAAAUgVwTBwAAABIREREHAAAAv1bPDgcAAAD8FJcMBwAAAKcQaAoHAAAAhRBCCAcAAAAw3SQGBwAAAAVBEAQHAAAAEQgEAgcAAAAAAAAABwAAACDwB/wIAAAA+YEf+AgAAADlWUb0CAAAAAgffPAIAAAAMXvA7AgAAADAGhPpCAAAAJGsc+UIAAAA4uHh4QgAAABAbl3eCAAAAGwH5toIAAAATGV71wgAAADVQR3UCAAAAPdYy9AIAAAAkWiFzQgAAABWMEvKCAAAAMhxHMcIAAAAHfD4wwgAAAA5cODACAAAAJq40r0IAAAATZHPuggAAADew9a3CAAAAE8b6LQIAAAAB2QDsggAAADLayivCAAAAK0BV6wIAAAAB/aOqQgAAABuGtCmCAAAAKVBGqQIAAAAmD9toQgAAABS6cieCAAAAO8ULZwIAAAAmpmZmQgAAACBTw6XCAAAAM4Pi5QIAAAAnrQPkggAAAD6GJyPCAAAANQYMI0IAAAA95DLiggAAAALX26ICAAAAIdhGIYIAAAArHfJgwgAAACCgYGBCAAAANFfQH8IAAAAGPQFfQgAAACPINJ6CAAAABjIpHgIAAAARM59dggAAABGF110CAAAAPWHQnIIAAAAwQUucAgAAAC1dh9uCAAAAG3BFmwIAAAAFs0TaggAAABpgRZoCAAAAKbGHmYIAAAAkYUsZAgAAABxpz9iCAAAAAYWWGAIAAAAjrt1XggAAAC6gphcCAAAALFWwFoIAAAACSPtWAgAAADG0x5XCAAAAFZVVVUIAAAAkJSQUwgAAACvftBRCAAAAFEBFVAIAAAAcwpeTggAAABziKtMCAAAAAZq/UoIAAAAPJ5TSQgAAAB7FK5HCAAAAIC8DEYIAAAAV4ZvRAgAAABeYtZCCAAAAEJBQUEIAAAA/BOwPwgAAADPyyI+CAAAAEhamTwIAAAAPLETOwgAAADCwpE5CAAAADmBEzgIAAAAPt+YNggAAACzzyE1CAAAALZFrjMIAAAAozQ+MggAAAAUkNEwCAAAANtLaC8IAAAABVwCLggAAADZtJ8sCAAAANFKQCsIAAAAnxLkKQgAAAApAYsoCAAAAIkLNScIAAAACSfiJQgAAAAlSZIkCAAAAIpnRSMIAAAAE3j7IQgAAADHcLQgCAAAAN1HcB8IAAAAtPMuHggAAADbavAcCAAAAAWktBsIAAAAEpZ7GggAAAAJOEUZCAAAABmBERgIAAAAlWjgFggAAAD45bEVCAAAAOHwhRQIAAAAFIFcEwgAAAB2jjUSCAAAABIREREIAAAAEAHvDwgAAAC/Vs8OCAAAAIkKsg0IAAAA/BSXDAgAAADDbn4LCAAAAKcQaAoIAAAAkfNTCQgAAACFEEIICAAAAKVgMgcIAAAAMN0kBggAAAB+fxkFCAAAAAVBEAQIAAAAUhsJAwgAAAARCAQCCAAAAAIBAQEIAAAAAQAAAAEAAAACAAAAAgAAAAQAAAAEAAAACAAAAAgAAAAEAAAACAAAAAEAAAAAAAAA/////wAAAABYOgAAZQEAAGYBAABnAQAAaAEAAGkBAABqAQAAawEAAE41ZHJhY280TWVzaEUAAAD4SAAASDoAAKg6AAD/////AAAAAAAAAACoOgAAbAEAAG0BAABuAQAAbwEAAGkBAABqAQAAcAEAAE41ZHJhY28xMFBvaW50Q2xvdWRFAAAAANBIAACQOgAA/////wAAAAAAACBlRxX3PwCi7y78Bec9OYMrZUcV57++BDrcCcfeP/svcGRHFde/SEwDUGx30j+8kuoos8fOvy75F+ElYso//oIrZUcV57/3AzrcCcfePz98K2VHFde/5FvwUGx30j/lj3bdCcfOvzbnxB52Yco/m6dkvD8Vx79KG/BU0YTEPzw4LKfkicK/Zu5aKC+zwD/4rLFrKCT3PwCwze5fCeG/oczSZvfh9j8A0Ha9lITgv4rUMA49ofY/APjorkMB4L+FbNAy7GH2PwBACzbF/t6/+JgRlfoj9j8A4Lca2f3dv2wCz6Rb5/U/AJDHDK7/3L+4TyFaBaz1PwCg/RE4BNy/Hm4WD+1x9T8A4DoyZwvbvzX4C1kJOfU/ALAtWi8V2r/drWHtTwH1PwBg+Fp/Idm/0HtIjrjK9D8AkHGwTTDYv+5PM7Q5lfQ/AOCp+YlB179p1a/fy2D0PwCQGbUrVda/U7nkTmYt9D8AEJuiI2vVv6bYHREB+/M/AKBfD2WD1L82WAy3lcnzPwCg9jfpndO/Sv22ShyZ8z8AYI1TobrSv7WZ4AyOafM/AEDKQIPZ0b+y5xOC5DrzPwDgQDqF+tC/sb2FGRkN8z8AMOcynB3Qv9dxssol4PI/AGD6on2Fzr+CzRPPBLTyPwCAPWPI08y/UMt8LLCI8j8AoBRMAybLv+VNlGMiXvI/AOBPLxx8yb+xFYY9VjTyPwAAgD8C1se/OK8+40YL8j8A4AUapzPGv92jzf3u4vE/AABX6fWUxL8wOQtYSrvxPwCg4CTk+cK/ACJ/hFOU8T8AwP1aWWLBvzzX1cAGbvE/AIC9dZqcv7/C5LdHX0jxPwDA+VtXe7y/0YUArVgj8T8AgPQPxmC5vyciUw/w/vA/AAC2R+JMtr+POtB3INvwPwBAAbJ4P7O/2YBZ1ua38D8AwEIafTiwv41Ae/4+lfA/AAC1CJJvqr+DO8XKJXPwPwAAd0+VeqS/XBsN5JdR8D8AAAzFqCOdv6KOIMGRMPA/AAB4KSZqkb8hfrMlEBDwPwAA6Nj4IHe/a6fK+X7A7z8AAFCxU/6GP4Tx9tNlRO8/AIAP4cwcoT9/EISfB8zuPwCAi4z8Taw/6FqXmTpX7j8AQFceMqqzP+Y9vfDW5e0/AICL0KAYuT+zOP+BtnftPwBABNrpcr4/Q+lNcrUM7T8AYH9Q0tzBP2N1DtyypOw/AKDeA6t2xD9Ry9bojj/sPwAg4ndDB8c/TAwCTyvd6z8AQKmL3o7JP8oVYABsfes/AODSargNzD+PMy5uNiDrPwDgzq8KhM4/OVApJnDF6j8AgGe0CnnQP90xJ7wBbeo/AMABaAWs0T+L8T+80xbqPwDg/tQR29I/rf5nSdHC6T8AgMVORgbUPwKZfPTkcOk/APA6Cb4t1T/yvII5+yDpPwDQUCCQUdY/8Vn3hwHT6D8A8OrN0nHXP232uevlhug/AJB9hZyO2D+UuVi2lzzoPwBg4VUBqNk/IhDG/wX05z8A0NNuGL7aP8oVFBgirec/AOCgrvLQ2z+M/5753GfnPwBAvz2k4Nw/jgq5EgAg5j8FtkQGqwSJPKY0VwQAYOY/qfdi6pv/YTzF8iXD/5/mP7qQPMvPfoI8BFq5OADg5j8mk3NWiP+IPOOUmeD/H+c/sYJfJ0D9ijwQDlkVAGDnP0GDI7R1/XK81VtlEgCg5z92KyR85gh4PKbpWTIA4Oc/tyL2JuQIYrzSsrTt/x/oPy/JpR5GAoS8w/z6LQBg6D8fmvKi9PdtPFBrjPf/n+g//ZVJCVMEjrxmFWc5AODoP0V7x77zBIq8RRe/4v8f6T88IA5ANPp3vNGfXMz/X+k/XWmgBYD/drxnR7o7AKDpPwN+7MTE+HA8pS255//f6T8CRoxH2X+OPK/9Ltf/H+o/fq7NTVUMaryV/wTe/1/qP2uy6YypfYY8K41eyv+f6j/eE0y1yYSCvOoDrd3/3+o/PC5g6sgSWDxNPQ3x/x/rP5x4J63d+o68WhYhzv9f6z83EsYZF8tTPHTmUNn/n+s/AM6UQdn3czyvqJwTAODrP8CbXSHECnU8md9GWwAg7D/JwelTpu5rPK73uUAAYOw/1nBKJ58HfLyK/VViAKDsPx9M6HZAC3q8XQlM2f/f7D/XtZr5M/mIPM/Wdfn/H+0/vuFfZggsWLyTHFai/1/tP/OV0psoBHu8DIsinf+f7T82og80UQKHPBZ+vGUA4O0/DNikFh4BdbyRR/YCACDuP+Bi7wkvgIk82KbXVwBg7j/69wxYdQt+vAzA7ScAoO4/EZhFCYOEjLx8y/VsAODuP/R2FZUngI+8zH0reAAg7z+PU3Ry2YGPvApFDCYAYO8/3P8nJwBxQLwz1Yzo/5/vP7Co/eHcG1i8iYYP1f/f7z9ujpHLGvmHPGcjKQQAIPA/gUYyZfN/mzxo1uPj/1/wP3uVrt0I+oY8V6eFCgCg8D+R+9OA3uJXvMw/XxoA4PA/FPDFBTOCkbz1uq/4/x/xP8K6gGa7+ou8rZFN5f9f8T/v5zcXEn+dvOE2rBEAoPE///UWBQoAnDxIQsgZAODxP6Bd2uT7gpC8bl7+DwAg8j9D+5xM0P2IvJHYnyYAYPI/gtGUeSr+jDza5qYpAKDyP8WLXnFzAnC8OT4p4P/f8j/5prLaOXybPILw3Pf/H/M/VFLcbjPxfTxgi1rw/1/zP+sxzUxWA568zK4OLgCg8z93pNNL5/B1PDayOwQA4PM/M4idFMt9nDz/h9ECACD0Pyg9Lc+vCH48sXw4DQBg9D+mmWWFNwiCPImfVgQAoPQ/0rxPkFz6ibzzQzUEAOD0PylTF+0lEXi8D38CzP8f9T/cVHeE2IOYPG+zh/3/X/U/ByjQMecJh7y69x3y/5/1PwJ7cmif94c8gTT86//f9T8+6TAukICRvAAAAAAAAAAA0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAAZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQ==\");l(e,17393,\"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO\");l(e,17451,\"DA==\");l(e,17463,\"EwAAAAATAAAAAAkMAAAAAAAMAAAM\");l(e,17509,\"EA==\");l(e,17521,\"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ\");l(e,17567,\"Eg==\");l(e,17579,\"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa\");l(e,17634,\"GgAAABoaGgAAAAAAAAk=\");l(e,17683,\"FA==\");l(e,17695,\"FwAAAAAXAAAAAAkUAAAAAAAUAAAU\");l(e,17741,\"Fg==\");l(e,17753,\"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAAAAAAIAAAADAAAABQAAAAcAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAH8AAACDAAAAiQAAAIsAAACVAAAAlwAAAJ0AAACjAAAApwAAAK0AAACzAAAAtQAAAL8AAADBAAAAxQAAAMcAAADTAAAAAQAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAeQAAAH8AAACDAAAAiQAAAIsAAACPAAAAlQAAAJcAAACdAAAAowAAAKcAAACpAAAArQAAALMAAAC1AAAAuwAAAL8AAADBAAAAxQAAAMcAAADR\");l(e,18196,\"CgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUAypo7AAAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OU4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAPhIAAAISAAAjEoAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAPhIAAA4SAAALEgAAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAPhIAABoSAAALEgAAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAPhIAACYSAAAjEgAAAAAAABcSAAAdAEAAHUBAAB2AQAAdwEAAHgBAAB5AQAAegEAAHsBAAAAAAAAQEkAAHQBAAB8AQAAdgEAAHcBAAB4AQAAfQEAAH4BAAB/AQAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAPhIAAAYSQAAXEgAAAAAAACwSQAADgAAAIABAACBAQAAAAAAANhJAAAOAAAAggEAAIMBAAAAAAAAmEkAAA4AAACEAQAAhQEAAFN0OWV4Y2VwdGlvbgAAAADQSAAAiEkAAFN0OWJhZF9hbGxvYwAAAAD4SAAAoEkAAJhJAABTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAA+EgAALxJAACwSQAAAAAAAAhKAAABAAAAhgEAAIcBAABTdDExbG9naWNfZXJyb3IA+EgAAPhJAACYSQAAAAAAADxKAAABAAAAiAEAAIcBAABTdDEybGVuZ3RoX2Vycm9yAAAAAPhIAAAoSgAACEoAAAAAAABwSgAAAQAAAIkBAACHAQAAU3QxMm91dF9vZl9yYW5nZQAAAAD4SAAAXEoAAAhKAABTdDl0eXBlX2luZm8AAAAA0EgAAHxK\");l(e,19092,\"wE0B\")}var r=new ArrayBuffer(16);var s=new Int32Array(r);var t=new Float32Array(r);var u=new Float64Array(r);function v(w){return s[w]}function x(w,y){s[w]=y}function z(){return u[0]}function A(y){u[0]=y}function B(){throw new Error(\"abort\")}function C(y){t[2]=y}function D(){return t[2]}function la(q){var E=q.a;var F=E.a;var G=F.buffer;F.grow=ja;var H=new Int8Array(G);var I=new Int16Array(G);var J=new Int32Array(G);var K=new Uint8Array(G);var L=new Uint16Array(G);var M=new Uint32Array(G);var N=new Float32Array(G);var O=new Float64Array(G);var P=Math.imul;var Q=Math.fround;var R=Math.abs;var S=Math.clz32;var T=Math.min;var U=Math.max;var V=Math.floor;var W=Math.ceil;var X=Math.trunc;var Y=Math.sqrt;var Z=E.b;var _=E.c;var $=E.d;var aa=E.e;var ba=85440;var ca=0;\n// EMSCRIPTEN_START_FUNCS\nfunction ee(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0;C=ba-48|0;ba=C;a:{b:{if((b|0)<0){break b}if(!b){h=1;break b}J[C+40>>2]=0;J[C+32>>2]=0;J[C+36>>2]=0;c:{d:{if(b>>>0<1073741824){g=b<<2;n=oa(g);J[C+36>>2]=n;J[C+32>>2]=n;j=g+n|0;u=(c|0)<=1?1:c;c=u-1|0;v=c&-4;l=c&3;r=u-2>>>0>2;F=n;g=n;e:{f:{g:{while(1){h=J[(s<<2)+a>>2];h:{if(u>>>0<2){break h}m=0;c=1;if(r){while(1){q=(c+s<<2)+a|0;k=J[q>>2];h=h>>>0>k>>>0?h:k;k=J[q+4>>2];h=h>>>0>k>>>0?h:k;k=J[q+8>>2];h=h>>>0>k>>>0?h:k;q=J[q+12>>2];h=h>>>0>q>>>0?h:q;c=c+4|0;m=m+4|0;if((v|0)!=(m|0)){continue}break}}k=0;if(!l){break h}while(1){m=J[(c+s<<2)+a>>2];h=h>>>0>m>>>0?h:m;c=c+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}c=h?(S(h)^31)+1|0:1;i:{if(g>>>0<j>>>0){J[g>>2]=c;g=g+4|0;J[C+36>>2]=g;break i}m=g-F|0;q=m>>2;g=q+1|0;if(g>>>0>=1073741824){break g}j=j-F|0;k=j>>>1|0;j=j>>>0>=2147483644?1073741823:g>>>0<k>>>0?k:g;if(j){if(j>>>0>=1073741824){break f}n=oa(j<<2)}else{n=0}g=n+(q<<2)|0;J[g>>2]=c;c=ta(n,F,m);g=g+4|0;J[C+36>>2]=g;j=c+(j<<2)|0;if(F){na(F)}F=c}p=h>>>0>p>>>0?h:p;s=s+u|0;if((s|0)<(b|0)){continue}break}J[C+40>>2]=j;J[C+32>>2]=n;c=0;J[C+24>>2]=0;J[C+16>>2]=0;J[C+20>>2]=0;j:{if((g|0)==(F|0)){k=0;break j}c=g-F|0;if((c|0)<0){break e}k=oa(c);J[C+16>>2]=k;J[C+24>>2]=(c&-4)+k;c=F;h=k;while(1){J[h>>2]=J[c>>2];h=h+4|0;c=c+4|0;if((g|0)!=(c|0)){continue}break}J[C+20>>2]=h;c=h-k>>2;if((h|0)==(k|0)){break j}g=c>>>0<=1?1:c;q=g&3;s=0;k:{if(g-1>>>0<3){h=0;break k}n=g&-4;h=0;m=0;while(1){g=f;f=h<<2;l=J[f+k>>2];g=g+l|0;j=i;j=g>>>0<l>>>0?j+1|0:j;l=J[(f|4)+k>>2];i=l+g|0;g=j;g=l>>>0>i>>>0?g+1|0:g;j=J[(f|8)+k>>2];i=j+i|0;g=j>>>0>i>>>0?g+1|0:g;l=i;i=J[(f|12)+k>>2];f=l+i|0;i=f>>>0<i>>>0?g+1|0:g;h=h+4|0;m=m+4|0;if((n|0)!=(m|0)){continue}break}}if(!q){break j}while(1){j=J[(h<<2)+k>>2];f=j+f|0;g=i;i=f>>>0<j>>>0?g+1|0:g;h=h+1|0;s=s+1|0;if((q|0)!=(s|0)){continue}break}}c=Lg(k,c,32,C);v=ca;r=J[C>>2];if(k){J[C+20>>2]=k;na(k)}m=Lg(a,b,p,C);s=ca;k=J[C>>2];G=(p-k|0)/64|0;if(d){g=oa(32);H[g+22|0]=0;h=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);j=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[g+14|0]=j;H[g+15|0]=j>>>8;H[g+16|0]=j>>>16;H[g+17|0]=j>>>24;H[g+18|0]=h;H[g+19|0]=h>>>8;H[g+20|0]=h>>>16;H[g+21|0]=h>>>24;h=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);j=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[g+8|0]=j;H[g+9|0]=j>>>8;H[g+10|0]=j>>>16;H[g+11|0]=j>>>24;H[g+12|0]=h;H[g+13|0]=h>>>8;H[g+14|0]=h>>>16;H[g+15|0]=h>>>24;h=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);j=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[g|0]=j;H[g+1|0]=j>>>8;H[g+2|0]=j>>>16;H[g+3|0]=j>>>24;H[g+4|0]=h;H[g+5|0]=h>>>8;H[g+6|0]=h>>>16;H[g+7|0]=h>>>24;h=J[d+4>>2];if(h){while(1){j=K[h+27|0];q=j<<24>>24<0;j=q?J[h+20>>2]:j;n=j>>>0<22;l:{m:{n:{o:{p:{q:{l=n?j:22;if(l){q=q?J[h+16>>2]:h+16|0;t=Ba(g,q,l);if(t){break q}if(j>>>0<=22){break p}break l}if(j>>>0<=22){break o}break l}if((t|0)<0){break l}}j=Ba(q,g,l);if(j){break n}}if(n){break m}break d}if((j|0)>=0){break d}}h=h+4|0}h=J[h>>2];if(h){continue}break}}na(g)}if((S(p>>>0<=1?1:p)^30)>>>0<18){g=c;c=Hl(f,i,u,0);f=g+c|0;g=ca+v|0;g=c>>>0>f>>>0?g+1|0:g;c=r<<3;q=c>>31<<1|c>>>31;i=f;f=c<<1;c=i+f|0;j=g+q|0;j=c>>>0<f>>>0?j+1|0:j;f=c;c=k+G<<3;i=c;h=c>>31;c=m;g=k<<3;m=g;c=c+g|0;g=(g>>31)+s|0;h=(c>>>0<m>>>0?g+1|0:g)+h|0;g=c;c=c+i|0;h=g>>>0>c>>>0?h+1|0:h;c=(h|0)<=(j|0)&c>>>0<=f>>>0|(h|0)<(j|0)}else{c=0}break c}J[C+40>>2]=j;J[C+32>>2]=n;break a}J[C+32>>2]=n;xa();B()}break a}break a}na(g);c=oa(32);J[C>>2]=c;J[C+4>>2]=22;J[C+8>>2]=-2147483616;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);i=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+14|0]=i;H[c+15|0]=i>>>8;H[c+16|0]=i>>>16;H[c+17|0]=i>>>24;H[c+18|0]=f;H[c+19|0]=f>>>8;H[c+20|0]=f>>>16;H[c+21|0]=f>>>24;f=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);i=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);i=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+22|0]=0;c=Mf(d,C);if(H[C+11|0]>=0){break c}na(J[C>>2])}H[C|0]=c;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],C,C+1|0)}h=0;r:{s:{switch(c|0){case 0:p=0;k=ba-336|0;ba=k;pa(k+80|0,0,256);d=J[C+36>>2];c=J[C+32>>2];t:{if((d|0)==(c|0)){break t}d=d-c>>2;d=d>>>0<=1?1:d;i=d&3;if(d-1>>>0>=3){n=d&-4;while(1){f=k+80|0;d=p<<2;g=f+(J[d+c>>2]<<3)|0;j=g;m=J[g>>2];g=J[g+4>>2];m=m+1|0;g=m?g:g+1|0;J[j>>2]=m;J[j+4>>2]=g;g=f+(J[c+(d|4)>>2]<<3)|0;j=J[g>>2];q=J[g+4>>2];j=j+1|0;q=j?q:q+1|0;J[g>>2]=j;J[g+4>>2]=q;g=f+(J[c+(d|8)>>2]<<3)|0;j=J[g>>2];m=J[g+4>>2];j=j+1|0;m=j?m:m+1|0;J[g>>2]=j;J[g+4>>2]=m;d=f+(J[c+(d|12)>>2]<<3)|0;f=J[d>>2];g=J[d+4>>2];f=f+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;p=p+4|0;h=h+4|0;if((n|0)!=(h|0)){continue}break}}if(!i){break t}h=0;while(1){d=(k+80|0)+(J[c+(p<<2)>>2]<<3)|0;f=J[d>>2];q=J[d+4>>2];f=f+1|0;q=f?q:q+1|0;J[d>>2]=f;J[d+4>>2]=q;p=p+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}l=k+48|0;J[l>>2]=0;J[l+4>>2]=0;H[l+24|0]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+8>>2]=0;J[l+12>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;Jg(k,k+80|0,32,e);d=J[k+16>>2];f=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;q=f<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?q+1|0:q;d=c+((m&7)<<29|d>>>3)|0;g=m>>>3|0;g=c>>>0>d>>>0?g+1|0:g;c=d+8|0;Ia(e,c);c=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=16384;J[k+24>>2]=c+J[k+40>>2];Fd(l,b<<5,b>>31<<5|b>>>27,0);b=b-u|0;if((b|0)>=0){j=(u|0)<=0;c=b;while(1){p=J[k+32>>2];n=J[C+32>>2];f=J[k>>2]+(J[n+((c|0)/(u|0)<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(p>>>0>=i>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=p;p=J[k+32>>2]>>>8|0;J[k+32>>2]=p;if(i>>>0<=p>>>0){continue}break}n=J[C+32>>2]}g=J[f+4>>2];f=(p>>>0)/(d>>>0)|0;J[k+32>>2]=g+((f<<12)+(p-P(d,f)|0)|0);m=b-c|0;g=(m|0)/(u|0)|0;u:{if(j){break u}d=J[l+20>>2];i=d;f=J[l+16>>2];if(!f&(d|0)<=0|(d|0)<0){break u}g=J[(g<<2)+n>>2];n=0;while(1){if(!(!f&(i|0)<=0|(i|0)<0|(g|0)<=0)){f=J[(n+m<<2)+a>>2];d=J[l+12>>2];F=J[d+4>>2];h=0;while(1){i=F>>>3|0;q=i+J[d>>2]|0;v=K[q|0];D=q;q=F&7;I=D,L=Ll(q)&v,H[I|0]=L;i=i+J[d>>2]|0;H[i|0]=K[i|0]|(f>>>h&1)<<q;F=J[d+4>>2]+1|0;J[d+4>>2]=F;h=h+1|0;if((g|0)!=(h|0)){continue}break}}n=n+1|0;if((u|0)==(n|0)){break u}f=J[l+16>>2];i=J[l+20>>2];continue}}c=c-u|0;if((c|0)>=0){continue}break}}yb(k,e);Ed(l);a=J[e+20>>2];if(!J[e+16>>2]&(a|0)<=0|(a|0)<0){sa(e,J[e+4>>2],J[l>>2],J[l+4>>2])}a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[l+12>>2];J[l+12>>2]=0;if(a){na(a)}a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}ba=k+336|0;h=1;F=J[C+32>>2];break r;case 1:break s;default:break r}}G=ba-32|0;ba=G;n=1;v:{if((k|0)>0){c=S(k);if((c^30)>>>0>17){break v}n=32-c|0}w:{if(!d){break w}c=oa(48);H[c+33|0]=0;H[c+32|0]=K[1470];f=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);i=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=i;H[c+25|0]=i>>>8;H[c+26|0]=i>>>16;H[c+27|0]=i>>>24;H[c+28|0]=f;H[c+29|0]=f>>>8;H[c+30|0]=f>>>16;H[c+31|0]=f>>>24;f=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);i=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=i;H[c+17|0]=i>>>8;H[c+18|0]=i>>>16;H[c+19|0]=i>>>24;H[c+20|0]=f;H[c+21|0]=f>>>8;H[c+22|0]=f>>>16;H[c+23|0]=f>>>24;f=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);i=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);i=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;x:{h=J[d+4>>2];if(h){while(1){f=K[h+27|0];i=f<<24>>24<0;f=i?J[h+20>>2]:f;g=f>>>0<33;y:{z:{A:{B:{C:{D:{j=g?f:33;if(j){i=i?J[h+16>>2]:h+16|0;m=Ba(c,i,j);if(m){break D}if(f>>>0<=33){break C}break y}if(f>>>0<=33){break B}break y}if((m|0)<0){break y}}f=Ba(i,c,j);if(f){break A}}if(g){break z}break x}if((f|0)>=0){break x}}h=h+4|0}h=J[h>>2];if(h){continue}break}}na(c);break w}na(c);c=oa(48);J[G+16>>2]=c;J[G+20>>2]=33;J[G+24>>2]=-2147483600;H[c+32|0]=K[1470];f=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);i=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=i;H[c+25|0]=i>>>8;H[c+26|0]=i>>>16;H[c+27|0]=i>>>24;H[c+28|0]=f;H[c+29|0]=f>>>8;H[c+30|0]=f>>>16;H[c+31|0]=f>>>24;f=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);i=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=i;H[c+17|0]=i>>>8;H[c+18|0]=i>>>16;H[c+19|0]=i>>>24;H[c+20|0]=f;H[c+21|0]=f>>>8;H[c+22|0]=f>>>16;H[c+23|0]=f>>>24;f=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);i=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);i=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+33|0]=0;c=Mf(d,G+16|0);if(H[G+27|0]<0){na(J[G+16>>2])}if((c|0)<=3){n=n-2|0;break w}if(c>>>0<=5){n=n-1|0;break w}if(c>>>0>=10){n=n+2|0;break w}n=(c>>>0>7)+n|0}c=(n|0)<=1?1:n;c=(c|0)>=18?18:c;H[G+15|0]=c;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],G+15|0,G+16|0)}h=0;E:{switch(c-1|0){case 0:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;F:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}G:{if((b|0)<=0){break G}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];q=J[c+4>>2];d=d+1|0;q=d?q:q+1|0;J[c>>2]=d;J[c+4>>2]=q;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break G}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;H:{if((a|0)<=0){break H}A=a&3;I:{if(a>>>0<4){a=0;break I}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;g=i+D|0;f=f+x|0;q=(f>>>0<x>>>0?g+1|0:g)+m|0;g=f;f=f+p|0;g=(g>>>0>f>>>0?q+1|0:q)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break H}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0<e>>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;J:{if(a>>>0<g>>>0){Wa(l,g-a|0);break J}if(a>>>0<=g>>>0){break J}J[l+4>>2]=e+(g<<3)}k=0;K:{L:{M:{N:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;O:{if(o<4294967296&o>=0){e=~~o>>>0;break O}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break N}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;P:{if(!g){break P}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break P}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Q:{R:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break R}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}gc(s,p,t+24|0,e,0,0);break Q}gc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break M}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){S:{T:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));U:{if(R(w)<2147483648){i=~~w;break U}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break T}k=4096;break S}if((d|0)!=(e|0)){break S}a=1;break M}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break M}a=0;if(k>>>0<4097){break M}while(1)continue}if((d|0)<0){break K}break L}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break K}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break K}a=0;o=0;V:{if((d|0)<0){break V}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break V}a=a<<3;d=J[a+f>>2];if(!d){break V}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);W:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break W}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;g=d>>>0<39?g+1|0:g;d=a+((g&7)<<29|d>>>3)|0;h=g>>>3|0;j=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break F}h=1;break v;case 1:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;X:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Y:{if((b|0)<=0){break Y}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Y}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Z:{if((a|0)<=0){break Z}A=a&3;_:{if(a>>>0<4){a=0;break _}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=h;h=g;j=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?j+1|0:j)+m|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+p|0;q=(g>>>0>f>>>0?h+1|0:h)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?q+1|0:q;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Z}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;g=g+i|0;f=e+f|0;i=f>>>0<e>>>0?g+1|0:g;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;$:{if(a>>>0<g>>>0){Wa(l,g-a|0);break $}if(a>>>0<=g>>>0){break $}J[l+4>>2]=e+(g<<3)}k=0;aa:{ba:{ca:{da:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;ea:{if(o<4294967296&o>=0){e=~~o>>>0;break ea}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break da}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;fa:{if(!g){break fa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break fa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ga:{ha:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break ha}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}fc(s,p,t+24|0,e,0,0);break ga}fc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ca}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){ia:{ja:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));ka:{if(R(w)<2147483648){i=~~w;break ka}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break ja}k=4096;break ia}if((d|0)!=(e|0)){break ia}a=1;break ca}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break ca}a=0;if(k>>>0<4097){break ca}while(1)continue}if((d|0)<0){break aa}break ba}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break aa}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break aa}a=0;o=0;la:{if((d|0)<0){break la}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break la}a=a<<3;d=J[a+f>>2];if(!d){break la}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);ma:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break ma}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;h=e<<1|d>>>31;d=(d<<1)+39|0;j=h;j=d>>>0<39?j+1|0:j;d=a+((j&7)<<29|d>>>3)|0;q=j>>>3|0;m=a>>>0>d>>>0?q+1|0:q;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break X}h=1;break v;case 2:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;na:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}oa:{if((b|0)<=0){break oa}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|4)>>2]<<3)+n|0;h=J[d>>2];j=J[d+4>>2];h=h+1|0;j=h?j:j+1|0;J[d>>2]=h;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];h=J[c+4>>2];d=d+1|0;h=d?h:h+1|0;J[c>>2]=d;J[c+4>>2]=h;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break oa}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;pa:{if((a|0)<=0){break pa}x=a&3;qa:{if(a>>>0<4){a=0;break qa}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;h=m;m=i+E|0;f=f+p|0;h=(f>>>0<p>>>0?m+1|0:m)+h|0;m=f;f=g+f|0;q=(m>>>0>f>>>0?h+1|0:h)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?q+1|0:q)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break pa}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0<e>>>0?j+1|0:j;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ra:{if(a>>>0<g>>>0){Wa(l,g-a|0);break ra}if(a>>>0<=g>>>0){break ra}J[l+4>>2]=e+(g<<3)}k=0;sa:{ta:{ua:{va:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;wa:{if(o<4294967296&o>=0){e=~~o>>>0;break wa}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break va}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;xa:{if(!g){break xa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break xa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ya:{za:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break za}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}ec(s,p,t+24|0,e,0,0);break ya}ec(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ua}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Aa:{Ba:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Ca:{if(R(w)<2147483648){i=~~w;break Ca}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Ba}k=4096;break Aa}if((d|0)!=(e|0)){break Aa}a=1;break ua}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break ua}a=0;if(k>>>0<4097){break ua}while(1)continue}if((d|0)<0){break sa}break ta}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break sa}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break sa}a=0;o=0;Da:{if((d|0)<0){break Da}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Da}a=a<<3;d=J[a+f>>2];if(!d){break Da}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Ea:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Ea}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;q=e<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?q+1|0:q;d=a+((m&7)<<29|d>>>3)|0;g=m>>>3|0;g=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break na}h=1;break v;case 3:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Fa:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ga:{if((b|0)<=0){break Ga}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];q=J[c+4>>2];d=d+1|0;q=d?q:q+1|0;J[c>>2]=d;J[c+4>>2]=q;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ga}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Ha:{if((a|0)<=0){break Ha}A=a&3;Ia:{if(a>>>0<4){a=0;break Ia}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;g=i+D|0;f=f+x|0;q=(f>>>0<x>>>0?g+1|0:g)+m|0;g=f;f=f+p|0;g=(g>>>0>f>>>0?q+1|0:q)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Ha}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0<e>>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Ja:{if(a>>>0<g>>>0){Wa(l,g-a|0);break Ja}if(a>>>0<=g>>>0){break Ja}J[l+4>>2]=e+(g<<3)}k=0;Ka:{La:{Ma:{Na:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;Oa:{if(o<4294967296&o>=0){e=~~o>>>0;break Oa}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Na}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Pa:{if(!g){break Pa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Pa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Qa:{Ra:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ra}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}dc(s,p,t+24|0,e,0,0);break Qa}dc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ma}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Sa:{Ta:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Ua:{if(R(w)<2147483648){i=~~w;break Ua}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Ta}k=4096;break Sa}if((d|0)!=(e|0)){break Sa}a=1;break Ma}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Ma}a=0;if(k>>>0<4097){break Ma}while(1)continue}if((d|0)<0){break Ka}break La}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Ka}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Ka}a=0;o=0;Va:{if((d|0)<0){break Va}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Va}a=a<<3;d=J[a+f>>2];if(!d){break Va}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Wa:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Wa}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;g=d>>>0<39?g+1|0:g;d=a+((g&7)<<29|d>>>3)|0;h=g>>>3|0;j=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Fa}h=1;break v;case 4:c=0;k=0;n=0;r=0;i=ba+-64|0;ba=i;J[i+56>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;Xa:{d=p+1|0;if(d){if(d>>>0>=536870912){break a}d=d<<3;c=oa(d);J[i+48>>2]=c;k=pa(c,0,(p<<3)+8|0)+d|0}Ya:{if((b|0)<=0){break Ya}p=0;if(b>>>0>=4){h=b&-4;while(1){d=p<<2;f=(J[d+a>>2]<<3)+c|0;j=J[f>>2];g=J[f+4>>2];j=j+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|4)+a>>2]<<3)+c|0;j=J[f>>2];g=J[f+4>>2];j=j+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|8)+a>>2]<<3)+c|0;g=J[f>>2];j=J[f+4>>2];g=g+1|0;j=g?j:j+1|0;J[f>>2]=g;J[f+4>>2]=j;d=(J[(d|12)+a>>2]<<3)+c|0;f=J[d>>2];g=J[d+4>>2];f=f+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;p=p+4|0;n=n+4|0;if((h|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ya}while(1){d=(J[(p<<2)+a>>2]<<3)+c|0;h=J[d>>2];g=J[d+4>>2];h=h+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;p=p+1|0;r=r+1|0;if((f|0)!=(r|0)){continue}break}}J[i+8>>2]=0;J[i+12>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i>>2]=0;J[i+4>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;Jg(i,c,k-c>>3,e);d=J[i+16>>2];f=J[i+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[i+40>>2]=c;J[i+44>>2]=0;g=f<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=c+((j&7)<<29|d>>>3)|0;g=j>>>3|0;q=c>>>0>d>>>0?g+1|0:g;c=d+8|0;Ia(e,c);c=J[e>>2];J[i+28>>2]=0;J[i+32>>2]=16384;J[i+24>>2]=c+J[i+40>>2];if((b|0)>0){p=16384;while(1){c=b-1|0;f=J[i>>2]+(J[(c<<2)+a>>2]<<3)|0;d=J[f>>2];g=d<<10;if(g>>>0<=p>>>0){while(1){h=J[i+28>>2];J[i+28>>2]=h+1;H[h+J[i+24>>2]|0]=p;p=J[i+32>>2]>>>8|0;J[i+32>>2]=p;if(g>>>0<=p>>>0){continue}break}}g=J[f+4>>2];f=(p>>>0)/(d>>>0)|0;p=g+((f<<12)+(p-P(d,f)|0)|0)|0;J[i+32>>2]=p;d=(b|0)>1;b=c;if(d){continue}break}}yb(i,e);a=J[i>>2];if(a){J[i+4>>2]=a;na(a)}a=J[i+48>>2];if(a){na(a)}ba=i- -64|0;break Xa}h=1;break v;case 5:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Za:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}_a:{if((b|0)<=0){break _a}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break _a}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;$a:{if((a|0)<=0){break $a}A=a&3;ab:{if(a>>>0<4){a=0;break ab}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;q=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break $a}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0<e>>>0?j+1|0:j;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;bb:{if(a>>>0<g>>>0){Wa(l,g-a|0);break bb}if(a>>>0<=g>>>0){break bb}J[l+4>>2]=e+(g<<3)}k=0;cb:{db:{eb:{fb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;gb:{if(o<4294967296&o>=0){e=~~o>>>0;break gb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break fb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;hb:{if(!g){break hb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break hb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ib:{jb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break jb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}cc(s,p,t+24|0,e,0,0);break ib}cc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break eb}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){kb:{lb:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));mb:{if(R(w)<2147483648){i=~~w;break mb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break lb}k=4096;break kb}if((d|0)!=(e|0)){break kb}a=1;break eb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break eb}a=0;if(k>>>0<4097){break eb}while(1)continue}if((d|0)<0){break cb}break db}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break cb}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break cb}a=0;o=0;nb:{if((d|0)<0){break nb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break nb}a=a<<3;d=J[a+f>>2];if(!d){break nb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);ob:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break ob}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;h=q>>>3|0;m=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Za}h=1;break v;case 6:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;pb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}qb:{if((b|0)<=0){break qb}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break qb}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;rb:{if((a|0)<=0){break rb}x=a&3;sb:{if(a>>>0<4){a=0;break sb}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;h=g;g=m;m=i+E|0;f=f+p|0;g=(f>>>0<p>>>0?m+1|0:m)+g|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?h+1|0:h)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break rb}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0<e>>>0?q+1|0:q;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;tb:{if(a>>>0<g>>>0){Wa(l,g-a|0);break tb}if(a>>>0<=g>>>0){break tb}J[l+4>>2]=e+(g<<3)}k=0;ub:{vb:{wb:{xb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;yb:{if(o<4294967296&o>=0){e=~~o>>>0;break yb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break xb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;zb:{if(!g){break zb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break zb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Ab:{Bb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Bb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}bc(s,p,t+24|0,e,0,0);break Ab}bc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break wb}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Cb:{Db:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Eb:{if(R(w)<2147483648){i=~~w;break Eb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Db}k=4096;break Cb}if((d|0)!=(e|0)){break Cb}a=1;break wb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break wb}a=0;if(k>>>0<4097){break wb}while(1)continue}if((d|0)<0){break ub}break vb}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break ub}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break ub}a=0;o=0;Fb:{if((d|0)<0){break Fb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Fb}a=a<<3;d=J[a+f>>2];if(!d){break Fb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Gb:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Gb}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;h=e<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?h+1|0:h;g=m>>>3|0;d=a+((m&7)<<29|d>>>3)|0;j=d>>>0<a>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break pb}h=1;break v;case 7:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Hb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ib:{if((b|0)<=0){break Ib}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|4)>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];j=J[d+4>>2];h=h+1|0;j=h?j:j+1|0;J[d>>2]=h;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];h=J[c+4>>2];d=d+1|0;h=d?h:h+1|0;J[c>>2]=d;J[c+4>>2]=h;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ib}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Jb:{if((a|0)<=0){break Jb}A=a&3;Kb:{if(a>>>0<4){a=0;break Kb}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=h;j=i+D|0;f=f+x|0;h=(f>>>0<x>>>0?j+1|0:j)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?h+1|0:h)+q|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+v|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Jb}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0<e>>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Lb:{if(a>>>0<g>>>0){Wa(l,g-a|0);break Lb}if(a>>>0<=g>>>0){break Lb}J[l+4>>2]=e+(g<<3)}k=0;Mb:{Nb:{Ob:{Pb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;Qb:{if(o<4294967296&o>=0){e=~~o>>>0;break Qb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Pb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Rb:{if(!g){break Rb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Rb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Sb:{Tb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Tb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}ac(s,p,t+24|0,e,0,0);break Sb}ac(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ob}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Ub:{Vb:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Wb:{if(R(w)<2147483648){i=~~w;break Wb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Vb}k=4096;break Ub}if((d|0)!=(e|0)){break Ub}a=1;break Ob}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Ob}a=0;if(k>>>0<4097){break Ob}while(1)continue}if((d|0)<0){break Mb}break Nb}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Mb}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Mb}a=0;o=0;Xb:{if((d|0)<0){break Xb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Xb}a=a<<3;d=J[a+f>>2];if(!d){break Xb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Yb:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Yb}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;g=j>>>3|0;q=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Hb}h=1;break v;case 8:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Zb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}_b:{if((b|0)<=0){break _b}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break _b}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;$b:{if((a|0)<=0){break $b}A=a&3;ac:{if(a>>>0<4){a=0;break ac}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;v=g;q=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=f+v|0;g=(m>>>0>f>>>0?g+1|0:g)+u|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break $b}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;j=g+i|0;f=d+f|0;i=f>>>0<d>>>0?j+1|0:j;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;bc:{if(a>>>0<g>>>0){Wa(k,g-a|0);break bc}if(a>>>0<=g>>>0){break bc}J[k+4>>2]=d+(g<<3)}n=0;cc:{dc:{ec:{fc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*8192+.5;gc:{if(o<4294967296&o>=0){d=~~o>>>0;break gc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==8192){break fc}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;hc:{if(!g){break hc}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break hc}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;ic:{jc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break jc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}$b(s,p,t+24|0,d,0,0);break ic}$b(s,p,t+24|0,d,f,a);na(f)}if((n|0)<8192){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)- -8192;a=0;break ec}if((c|0)>0){h=J[k>>2];p=n+-8192|0;while(1){o=8192/+(n|0);d=c;while(1){kc:{lc:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));mc:{if(R(w)<2147483648){i=~~w;break mc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=8192){break lc}n=8192;break kc}if((c|0)!=(d|0)){break kc}a=1;break ec}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break ec}a=0;if(n>>>0<8193){break ec}while(1)continue}if((c|0)<0){break cc}break dc}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break cc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=8192){break cc}a=0;o=0;nc:{if((c|0)<0){break nc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.0001220703125)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.0001220703125)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break nc}a=a<<3;c=J[a+f>>2];if(!c){break nc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*.0001220703125)+o}o=W(-o);oc:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break oc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;h=q>>>3|0;m=a>>>0>c>>>0?h+1|0:h;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=32768;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=32768;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<13)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-32768|0;pc:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break pc}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+49152>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break pc}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;f=b+8355840|0;H[d+2|0]=f>>>16;H[d+1|0]=f>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break pc}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1073774592|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=f>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break pc}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break Zb}h=1;break v;case 9:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;qc:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}rc:{if((b|0)<=0){break rc}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=J[g>>2];m=J[g+4>>2];h=h+1|0;m=h?m:m+1|0;J[g>>2]=h;J[g+4>>2]=m;g=(J[l+(c|4)>>2]<<3)+r|0;m=J[g>>2];h=J[g+4>>2];m=m+1|0;h=m?h:h+1|0;J[g>>2]=m;J[g+4>>2]=h;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break rc}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;v=ba-32|0;ba=v;a=n-r>>3;sc:{if((a|0)<=0){break sc}x=a&3;tc:{if(a>>>0<4){a=0;break tc}A=a&-4;a=0;while(1){g=(a<<3)+r|0;t=J[g>>2];m=J[g+4>>2];E=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;D=(u<<3)+r|0;h=J[D>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|t?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[D+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;q=i+E|0;f=f+t|0;m=(f>>>0<t>>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+u|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+n|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((A|0)!=(d|0)){continue}break}}if(!x){break sc}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;h=g+i|0;f=d+f|0;i=f>>>0<d>>>0?h+1|0:h;p=p+1|0;if((x|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;uc:{if(a>>>0<g>>>0){Wa(k,g-a|0);break uc}if(a>>>0<=g>>>0){break uc}J[k+4>>2]=d+(g<<3)}n=0;vc:{wc:{xc:{yc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*32768+.5;zc:{if(o<4294967296&o>=0){d=~~o>>>0;break zc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==32768){break yc}}J[v+16>>2]=0;J[v+8>>2]=0;J[v+12>>2]=0;p=0;Ac:{if(!g){break Ac}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[v+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Ac}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[v+24>>2]=k;a=p-s|0;d=a>>2;Bc:{Cc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Cc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}_b(s,p,v+24|0,d,0,0);break Bc}_b(s,p,v+24|0,d,f,a);na(f)}if((n|0)<32768){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+32768;a=0;break xc}if((c|0)>0){h=J[k>>2];p=n-32768|0;while(1){o=32768/+(n|0);d=c;while(1){Dc:{Ec:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Fc:{if(R(w)<2147483648){i=~~w;break Fc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=32768){break Ec}n=32768;break Dc}if((c|0)!=(d|0)){break Dc}a=1;break xc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break xc}a=0;if(n>>>0<32769){break xc}while(1)continue}if((c|0)<0){break vc}break wc}d=J[v+8>>2];if(d){na(d)}if((c|0)<0|a){break vc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=32768){break vc}a=0;o=0;Gc:{if((c|0)<0){break Gc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*30517578125e-15)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*30517578125e-15)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Gc}a=a<<3;c=J[a+f>>2];if(!c){break Gc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*30517578125e-15)+o}o=W(-o);Hc:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Hc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=v+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;g=q>>>3|0;j=a>>>0>c>>>0?g+1|0:g;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=131072;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=131072;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<15)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-131072|0;Ic:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break Ic}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break Ic}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+8257536>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break Ic}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1073872896|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break Ic}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break qc}h=1;break v;case 10:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Jc:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}Kc:{if((b|0)<=0){break Kc}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|4)>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break Kc}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;Lc:{if((a|0)<=0){break Lc}A=a&3;Mc:{if(a>>>0<4){a=0;break Mc}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=j;v=q;q=i+D|0;f=f+x|0;j=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?j+1|0:j)+v|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+u|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break Lc}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;g=g+i|0;f=d+f|0;i=f>>>0<d>>>0?g+1|0:g;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;Nc:{if(a>>>0<g>>>0){Wa(k,g-a|0);break Nc}if(a>>>0<=g>>>0){break Nc}J[k+4>>2]=d+(g<<3)}n=0;Oc:{Pc:{Qc:{Rc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*65536+.5;Sc:{if(o<4294967296&o>=0){d=~~o>>>0;break Sc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==65536){break Rc}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Tc:{if(!g){break Tc}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Tc}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;Uc:{Vc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Vc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Zb(s,p,t+24|0,d,0,0);break Uc}Zb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<65536){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+65536;a=0;break Qc}if((c|0)>0){h=J[k>>2];p=n-65536|0;while(1){o=65536/+(n|0);d=c;while(1){Wc:{Xc:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Yc:{if(R(w)<2147483648){i=~~w;break Yc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=65536){break Xc}n=65536;break Wc}if((c|0)!=(d|0)){break Wc}a=1;break Qc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break Qc}a=0;if(n>>>0<65537){break Qc}while(1)continue}if((c|0)<0){break Oc}break Pc}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break Oc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=65536){break Oc}a=0;o=0;Zc:{if((c|0)<0){break Zc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*152587890625e-16)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*152587890625e-16)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Zc}a=a<<3;c=J[a+f>>2];if(!c){break Zc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*152587890625e-16)+o}o=W(-o);_c:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break _c}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;m=q>>>3|0;h=a>>>0>c>>>0?m+1|0:m;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=262144;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=262144;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<16)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-262144|0;$c:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break $c}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break $c}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+8126464>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break $c}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1074003968|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break $c}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break Jc}h=1;break v;case 11:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;ad:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}bd:{if((b|0)<=0){break bd}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;m=J[g>>2];h=J[g+4>>2];m=m+1|0;h=m?h:h+1|0;J[g>>2]=m;J[g+4>>2]=h;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];m=J[g+4>>2];h=h+1|0;m=h?m:m+1|0;J[g>>2]=h;J[g+4>>2]=m;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break bd}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;cd:{if((a|0)<=0){break cd}A=a&3;dd:{if(a>>>0<4){a=0;break dd}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=j;j=h;v=q;q=i+D|0;f=f+x|0;h=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?h+1|0:h)+v|0;m=f;f=f+j|0;j=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+u|0;i=g>>>0>f>>>0?j+1|0:j;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break cd}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;m=g+i|0;f=d+f|0;i=f>>>0<d>>>0?m+1|0:m;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;ed:{if(a>>>0<g>>>0){Wa(k,g-a|0);break ed}if(a>>>0<=g>>>0){break ed}J[k+4>>2]=d+(g<<3)}n=0;fd:{gd:{hd:{id:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*262144+.5;jd:{if(o<4294967296&o>=0){d=~~o>>>0;break jd}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==262144){break id}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;kd:{if(!g){break kd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break kd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;ld:{md:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break md}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Yb(s,p,t+24|0,d,0,0);break ld}Yb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<262144){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+262144;a=0;break hd}if((c|0)>0){h=J[k>>2];p=n-262144|0;while(1){o=262144/+(n|0);d=c;while(1){nd:{od:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));pd:{if(R(w)<2147483648){i=~~w;break pd}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=262144){break od}n=262144;break nd}if((c|0)!=(d|0)){break nd}a=1;break hd}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break hd}a=0;if(n>>>0<262145){break hd}while(1)continue}if((c|0)<0){break fd}break gd}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break fd}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=262144){break fd}a=0;o=0;qd:{if((c|0)<0){break qd}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*3814697265625e-18)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*3814697265625e-18)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break qd}a=a<<3;c=J[a+f>>2];if(!c){break qd}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*3814697265625e-18)+o}o=W(-o);rd:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break rd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;j=q>>>3|0;g=a>>>0>c>>>0?j+1|0:j;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=1048576;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=1048576;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<18)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b+-1048576|0;sd:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break sd}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break sd}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+7340032>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break sd}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1074790400|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break sd}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break ad}h=1;break v;case 12:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;td:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}ud:{if((b|0)<=0){break ud}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break ud}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;vd:{if((a|0)<=0){break vd}A=a&3;wd:{if(a>>>0<4){a=0;break wd}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;v=g;q=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?q+1|0:q)+m|0;m=f;f=f+v|0;g=(m>>>0>f>>>0?g+1|0:g)+u|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break vd}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;j=g+i|0;f=d+f|0;i=f>>>0<d>>>0?j+1|0:j;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;xd:{if(a>>>0<g>>>0){Wa(k,g-a|0);break xd}if(a>>>0<=g>>>0){break xd}J[k+4>>2]=d+(g<<3)}n=0;yd:{zd:{Ad:{Bd:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*524288+.5;Cd:{if(o<4294967296&o>=0){d=~~o>>>0;break Cd}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==524288){break Bd}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Dd:{if(!g){break Dd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Dd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;Ed:{Fd:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Fd}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Xb(s,p,t+24|0,d,0,0);break Ed}Xb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<524288){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+524288;a=0;break Ad}if((c|0)>0){h=J[k>>2];p=n-524288|0;while(1){o=524288/+(n|0);d=c;while(1){Gd:{Hd:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Id:{if(R(w)<2147483648){i=~~w;break Id}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=524288){break Hd}n=524288;break Gd}if((c|0)!=(d|0)){break Gd}a=1;break Ad}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break Ad}a=0;if(n>>>0<524289){break Ad}while(1)continue}if((c|0)<0){break yd}break zd}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break yd}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=524288){break yd}a=0;o=0;Jd:{if((c|0)<0){break Jd}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*19073486328125e-19)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*19073486328125e-19)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Jd}a=a<<3;c=J[a+f>>2];if(!c){break Jd}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*19073486328125e-19)+o}o=W(-o);Kd:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Kd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;h=q>>>3|0;m=a>>>0>c>>>0?h+1|0:h;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=2097152;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=2097152;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<19)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-2097152|0;Ld:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break Ld}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break Ld}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+6291456>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break Ld}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1075838976|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break Ld}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break td}h=1;break v;case 13:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Md:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Nd:{if((b|0)<=0){break Nd}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];q=J[d+4>>2];h=h+1|0;q=h?q:q+1|0;J[d>>2]=h;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];m=J[c+4>>2];d=d+1|0;m=d?m:m+1|0;J[c>>2]=d;J[c+4>>2]=m;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Nd}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Od:{if((a|0)<=0){break Od}x=a&3;Pd:{if(a>>>0<4){a=0;break Pd}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;q=i+E|0;f=f+p|0;m=(f>>>0<p>>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+v|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break Od}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;h=g+i|0;f=e+f|0;i=f>>>0<e>>>0?h+1|0:h;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Qd:{if(a>>>0<g>>>0){Wa(l,g-a|0);break Qd}if(a>>>0<=g>>>0){break Qd}J[l+4>>2]=e+(g<<3)}k=0;Rd:{Sd:{Td:{Ud:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;Vd:{if(o<4294967296&o>=0){e=~~o>>>0;break Vd}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ud}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Wd:{if(!g){break Wd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Wd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Xd:{Yd:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Yd}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Wb(s,p,t+24|0,e,0,0);break Xd}Wb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Td}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){Zd:{_d:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));$d:{if(R(w)<2147483648){i=~~w;break $d}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break _d}k=1048576;break Zd}if((d|0)!=(e|0)){break Zd}a=1;break Td}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Td}a=0;if(k>>>0<1048577){break Td}while(1)continue}if((d|0)<0){break Rd}break Sd}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Rd}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Rd}a=0;o=0;ae:{if((d|0)<0){break ae}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break ae}a=a<<3;d=J[a+f>>2];if(!d){break ae}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);be:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break be}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;g=q>>>3|0;j=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Md}h=1;break v;case 14:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;ce:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}de:{if((b|0)<=0){break de}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break de}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;ee:{if((a|0)<=0){break ee}A=a&3;fe:{if(a>>>0<4){a=0;break fe}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=g;j=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?j+1|0:j)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+q|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break ee}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0<e>>>0?q+1|0:q;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ge:{if(a>>>0<g>>>0){Wa(l,g-a|0);break ge}if(a>>>0<=g>>>0){break ge}J[l+4>>2]=e+(g<<3)}k=0;he:{ie:{je:{ke:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;le:{if(o<4294967296&o>=0){e=~~o>>>0;break le}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break ke}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;me:{if(!g){break me}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break me}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ne:{oe:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break oe}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Vb(s,p,t+24|0,e,0,0);break ne}Vb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break je}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){pe:{qe:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));re:{if(R(w)<2147483648){i=~~w;break re}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break qe}k=1048576;break pe}if((d|0)!=(e|0)){break pe}a=1;break je}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break je}a=0;if(k>>>0<1048577){break je}while(1)continue}if((d|0)<0){break he}break ie}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break he}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break he}a=0;o=0;se:{if((d|0)<0){break se}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break se}a=a<<3;d=J[a+f>>2];if(!d){break se}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);te:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break te}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;m=j>>>3|0;h=a>>>0>d>>>0?m+1|0:m;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break ce}h=1;break v;case 15:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;ue:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}ve:{if((b|0)<=0){break ve}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];g=J[d+4>>2];h=h+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];h=J[d+4>>2];g=g+1|0;h=g?h:h+1|0;J[d>>2]=g;J[d+4>>2]=h;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((m|0)!=(r|0)){continue}break}}d=b&3;if(!d){break ve}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;we:{if((a|0)<=0){break we}A=a&3;xe:{if(a>>>0<4){a=0;break xe}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;p=g;h=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?h+1|0:h)+m|0;m=f;f=f+p|0;m=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?m+1|0:m)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break we}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0<e>>>0?j+1|0:j;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ye:{if(a>>>0<g>>>0){Wa(l,g-a|0);break ye}if(a>>>0<=g>>>0){break ye}J[l+4>>2]=e+(g<<3)}k=0;ze:{Ae:{Be:{Ce:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;De:{if(o<4294967296&o>=0){e=~~o>>>0;break De}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ce}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Ee:{if(!g){break Ee}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Ee}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Fe:{Ge:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ge}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Ub(s,p,t+24|0,e,0,0);break Fe}Ub(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Be}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){He:{Ie:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Je:{if(R(w)<2147483648){i=~~w;break Je}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break Ie}k=1048576;break He}if((d|0)!=(e|0)){break He}a=1;break Be}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Be}a=0;if(k>>>0<1048577){break Be}while(1)continue}if((d|0)<0){break ze}break Ae}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break ze}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break ze}a=0;o=0;Ke:{if((d|0)<0){break Ke}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Ke}a=a<<3;d=J[a+f>>2];if(!d){break Ke}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);Le:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Le}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;m=e<<1|d>>>31;d=(d<<1)+39|0;h=m;h=d>>>0<39?h+1|0:h;g=h>>>3|0;d=a+((h&7)<<29|d>>>3)|0;q=d>>>0<a>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break ue}h=1;break v;case 16:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Me:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ne:{if((b|0)<=0){break Ne}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];q=J[d+4>>2];h=h+1|0;q=h?q:q+1|0;J[d>>2]=h;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];m=J[c+4>>2];d=d+1|0;m=d?m:m+1|0;J[c>>2]=d;J[c+4>>2]=m;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ne}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Oe:{if((a|0)<=0){break Oe}x=a&3;Pe:{if(a>>>0<4){a=0;break Pe}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;q=i+E|0;f=f+p|0;m=(f>>>0<p>>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+v|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break Oe}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;h=g+i|0;f=e+f|0;i=f>>>0<e>>>0?h+1|0:h;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Qe:{if(a>>>0<g>>>0){Wa(l,g-a|0);break Qe}if(a>>>0<=g>>>0){break Qe}J[l+4>>2]=e+(g<<3)}k=0;Re:{Se:{Te:{Ue:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;Ve:{if(o<4294967296&o>=0){e=~~o>>>0;break Ve}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ue}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;We:{if(!g){break We}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break We}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Xe:{Ye:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ye}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Tb(s,p,t+24|0,e,0,0);break Xe}Tb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Te}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){Ze:{_e:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));$e:{if(R(w)<2147483648){i=~~w;break $e}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break _e}k=1048576;break Ze}if((d|0)!=(e|0)){break Ze}a=1;break Te}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Te}a=0;if(k>>>0<1048577){break Te}while(1)continue}if((d|0)<0){break Re}break Se}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Re}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Re}a=0;o=0;af:{if((d|0)<0){break af}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break af}a=a<<3;d=J[a+f>>2];if(!d){break af}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);bf:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break bf}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;g=q>>>3|0;j=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Me}h=1;break v;case 17:break E;default:break v}}u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;cf:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}df:{if((b|0)<=0){break df}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break df}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;ef:{if((a|0)<=0){break ef}A=a&3;ff:{if(a>>>0<4){a=0;break ff}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=g;j=i+D|0;f=f+x|0;g=(f>>>0<x>>>0?j+1|0:j)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+q|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break ef}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0<e>>>0?q+1|0:q;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;gf:{if(a>>>0<g>>>0){Wa(l,g-a|0);break gf}if(a>>>0<=g>>>0){break gf}J[l+4>>2]=e+(g<<3)}k=0;hf:{jf:{kf:{lf:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;mf:{if(o<4294967296&o>=0){e=~~o>>>0;break mf}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break lf}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;nf:{if(!g){break nf}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break nf}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;of:{pf:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break pf}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Sb(s,p,t+24|0,e,0,0);break of}Sb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break kf}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){qf:{rf:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));sf:{if(R(w)<2147483648){i=~~w;break sf}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break rf}k=1048576;break qf}if((d|0)!=(e|0)){break qf}a=1;break kf}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break kf}a=0;if(k>>>0<1048577){break kf}while(1)continue}if((d|0)<0){break hf}break jf}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break hf}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break hf}a=0;o=0;tf:{if((d|0)<0){break tf}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break tf}a=a<<3;d=J[a+f>>2];if(!d){break tf}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);uf:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break uf}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;m=j>>>3|0;h=a>>>0>d>>>0?m+1|0:m;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break cf}h=1}ba=G+32|0}if(!F){break b}J[C+36>>2]=F;na(F)}ba=C+48|0;return h}qa();B()}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=Q(0),x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,T=0,U=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;d=ba-1680|0;ba=d;c=10-cb(J[J[a+28>>2]+48>>2])|0;c=(c|0)>=6?6:c;f=J[a+72>>2];H[d+1679|0]=(c&255)==6?(f|0)>15?5:c:c;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+1679|0,d+1680|0);f=J[a+72>>2]}y=J[J[J[a+28>>2]+4>>2]+80>>2];J[d+1668>>2]=0;J[d+1660>>2]=0;J[d+1664>>2]=0;J[d+1648>>2]=y;J[d+1652>>2]=f;J[d+1656>>2]=f<<2;a:{b:{c:{d:{g=P(f,y);if(g){if(g>>>0>=1073741824){break d}c=g<<2;h=oa(c);J[d+1660>>2]=h;k=c+h|0;J[d+1668>>2]=k;pa(h,0,c);J[d+1664>>2]=k}J[d+1672>>2]=h;k=J[a+4>>2];if((k|0)!=J[a+8>>2]){while(1){e=J[J[J[J[a+28>>2]+4>>2]+8>>2]+(J[(i<<2)+k>>2]<<2)>>2];c=J[e+28>>2];if(c-1>>>0>=6){if((c|0)!=9){break a}e=J[J[a+60>>2]+(p<<2)>>2];if(!e){break a}p=p+1|0;c=J[e+28>>2]}e:{f:{g:{switch(c-1|0){case 5:if(!y){break e}k=0;while(1){f=(J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],k)<<2)|0;h=J[J[e>>2]>>2];g=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],K[e+84|0]?k:J[J[e+68>>2]+(k<<2)>>2],0);j=c;c=c+g|0;ua(f,c+h|0,K[e+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break};break e;case 0:case 2:case 4:c=K[e+24|0];h:{if(!c){g=0;h=0;break h}h=0;c=c<<2;g=oa(c);pa(g,0,c);c=K[e+24|0];if(!c){break h}c=c<<2;h=oa(c);pa(h,0,c)}if(y){f=0;while(1){$c(e,K[e+84|0]?f:J[J[e+68>>2]+(f<<2)>>2],H[e+24|0],g);j=K[e+24|0];i:{if(!j){break i}l=J[a+48>>2];k=0;if((j|0)!=1){n=j&254;c=0;while(1){r=k<<2;J[r+h>>2]=J[g+r>>2]-J[l+(k+q<<2)>>2];r=k|1;v=r<<2;J[v+h>>2]=J[g+v>>2]-J[l+(q+r<<2)>>2];k=k+2|0;c=c+2|0;if((n|0)!=(c|0)){continue}break}}if(!(j&1)){break i}c=k<<2;J[c+h>>2]=J[c+g>>2]-J[l+(k+q<<2)>>2]}ua((J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],f)<<2)|0,h,j<<2);f=f+1|0;if((y|0)!=(f|0)){continue}break}}c=K[e+24|0];if(h){na(h)}q=c+q|0;if(g){break f}break e;default:break g}}c=K[e+24|0];j:{if(!c){g=0;break j}c=c<<2;g=oa(c);pa(g,0,c)}if(y){k=0;while(1){c=K[e+84|0]?k:J[J[e+68>>2]+(k<<2)>>2];j=K[e+24|0];l=0;k:{if(!g){break k}l:{m:{switch(J[e+28>>2]-1|0){case 0:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=H[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 1:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=K[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 2:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=I[f>>1];f=f+2|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 3:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=L[f>>1];f=f+2|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 4:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=J[f>>2];f=f+4|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 5:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=J[f>>2];f=f+4|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 6:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;n=J[h+4>>2];while(1){if(f>>>0>=n>>>0){break k}c=J[f>>2];if(J[f+4>>2]){break k}J[(l<<2)+g>>2]=c;f=f+8|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 7:h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;n=J[h+4>>2];while(1){if(f>>>0>=n>>>0){break k}c=J[f>>2];if(J[f+4>>2]){break k}J[(l<<2)+g>>2]=c;f=f+8|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}break l;case 8:n:{o:{h=K[e+24|0];if(!(h>>>0<j>>>0?h:j)){break o}f=J[e>>2];h=J[f>>2];l=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+l|0;l=c+h|0;n=J[f+4>>2];f=n-h|0;if(!K[e+32|0]){if((c|0)>=(f|0)){break n}f=0;while(1){w=N[l>>2];if(w>=Q(4294967296)|w<Q(0)|(Q(R(w))==Q(Infinity)|w!=w)){break n}m=(f<<2)+g|0;if(w<Q(4294967296)&w>=Q(0)){c=~~w>>>0}else{c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0<j>>>0?h:j)>>>0){break o}l=l+4|0;if(n>>>0>l>>>0){continue}break}break n}if((c|0)>=(f|0)){break n}f=0;while(1){w=N[l>>2];if(w>=Q(4294967296)|w<Q(0)|(Q(R(w))==Q(Infinity)|w!=w)){break n}if(w>Q(1)){break n}m=(f<<2)+g|0;t=V(+w*4294967295+.5);p:{if(t<4294967296&t>=0){c=~~t>>>0;break p}c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0<j>>>0?h:j)>>>0){break o}l=l+4|0;if(n>>>0>l>>>0){continue}break}break n}if(h>>>0>=j>>>0){break n}pa((h<<2)+g|0,0,j-h<<2)}break k;case 9:q:{r:{h=K[e+24|0];if(!(h>>>0<j>>>0?h:j)){break r}f=J[e>>2];h=J[f>>2];l=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+l|0;l=c+h|0;n=J[f+4>>2];f=n-h|0;if(!K[e+32|0]){if((c|0)>=(f|0)){break q}f=0;while(1){t=O[l>>3];if(t>=4294967295|t<0|(R(t)==Infinity|t!=t)){break q}m=(f<<2)+g|0;if(t<4294967296&t>=0){c=~~t>>>0}else{c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0<j>>>0?h:j)>>>0){break r}l=l+8|0;if(n>>>0>l>>>0){continue}break}break q}if((c|0)>=(f|0)){break q}f=0;while(1){t=O[l>>3];if(t>=4294967295|t<0|(R(t)==Infinity|t!=t)){break q}if(t>1){break q}m=(f<<2)+g|0;t=V(t*4294967295+.5);s:{if(t<4294967296&t>=0){c=~~t>>>0;break s}c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0<j>>>0?h:j)>>>0){break r}l=l+8|0;if(n>>>0>l>>>0){continue}break}break q}if(h>>>0>=j>>>0){break q}pa((h<<2)+g|0,0,j-h<<2)}break k;case 10:break m;default:break k}}h=K[e+24|0];if(h>>>0<j>>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=K[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0<j>>>0?h:j)>>>0){continue}break}}if(h>>>0>=j>>>0){break k}pa((h<<2)+g|0,0,j-h<<2);break k}if(h>>>0>=j>>>0){break k}pa((h<<2)+g|0,0,j-h<<2)}ua((J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],k)<<2)|0,g,K[e+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break}}if(!g){break e}}na(g)}o=K[e+24|0]+o|0;i=i+1|0;k=J[a+4>>2];if(i>>>0<J[a+8>>2]-k>>2>>>0){continue}break}f=J[a+72>>2];g=P(y,f);h=J[d+1672>>2]}k=0;if((g|0)<=0){break b}c=g&1;if((g|0)==1){g=0;break c}e=g&-2;g=0;a=0;while(1){j=g<<2;l=J[j+h>>2];if(l){l=S(l);k=(l^31)<(k|0)?k:32-l|0}j=J[(j|4)+h>>2];if(j){j=S(j);k=(j^31)<(k|0)?k:32-j|0}g=g+2|0;a=a+2|0;if((e|0)!=(a|0)){continue}break}break c}qa();B()}if(!c){break b}a=J[(g<<2)+h>>2];if(!a){break b}a=S(a);k=(a^31)<(k|0)?k:32-a|0}t:{u:{switch(K[d+1679|0]){case 6:p=Zc(d+456|0,f);a=J[d+1652>>2];J[d+448>>2]=a;J[d+432>>2]=a;J[d+32>>2]=a;J[d+16>>2]=a;J[d+440>>2]=0;J[d+424>>2]=J[d+1648>>2];a=d+1648|0;J[d+444>>2]=a;c=J[d+444>>2];J[d+24>>2]=J[d+440>>2];J[d+28>>2]=c;J[d+428>>2]=a;J[d+420>>2]=k;a=J[d+428>>2];J[d+8>>2]=J[d+424>>2];J[d+12>>2]=a;n=ba-32|0;ba=n;J[p>>2]=J[d+420>>2];a=J[d+8>>2]-J[d+24>>2]|0;J[p+4>>2]=a;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){a=p+4|0;sa(b,J[b+4>>2],p,a);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],a,p+8|0)}a=J[a>>2]}if(a){W=p+12|0;te(W);X=p+1068|0;a=X;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Y=p+1088|0;a=Y;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Z=p+1108|0;a=Z;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];J[n+24>>2]=J[d+32>>2];a=J[d+28>>2];J[n+16>>2]=J[d+24>>2];J[n+20>>2]=a;J[n+8>>2]=J[d+16>>2];a=J[d+12>>2];J[n>>2]=J[d+8>>2];J[n+4>>2]=a;c=0;g=0;i=ba+-64|0;ba=i;e=J[p+8>>2];J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;v:{w:{if(e){if(e>>>0>=1073741824){break w}a=e<<2;c=oa(a);J[i+40>>2]=c;g=a+c|0;J[i+48>>2]=g;pa(c,0,a);J[i+44>>2]=g}a=J[p+1164>>2];k=J[a>>2];if(k){J[a+4>>2]=k;na(k);e=J[p+8>>2];g=J[i+44>>2];c=J[i+40>>2]}J[a+4>>2]=g;J[a>>2]=c;J[a+8>>2]=J[i+48>>2];c=0;J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;a=0;x:{if(e){if(e>>>0>=1073741824){break x}k=e<<2;a=oa(k);J[i+40>>2]=a;c=a+k|0;J[i+48>>2]=c;pa(a,0,k);J[i+44>>2]=c}k=J[p+1176>>2];f=J[k>>2];if(f){J[k+4>>2]=f;na(f);c=J[i+44>>2];a=J[i+40>>2]}J[k+4>>2]=c;J[k>>2]=a;J[k+8>>2]=J[i+48>>2];h=J[n+20>>2];l=J[n+24>>2];f=J[n+4>>2];y=J[n+8>>2];c=J[n>>2];k=J[n+16>>2];J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;fb(i+40|0);a=J[i+56>>2]+J[i+60>>2]|0;e=(a>>>0)/113|0;a=J[J[i+44>>2]+(e<<2)>>2]+P(a-P(e,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=c-k;J[a+24>>2]=0;J[a+16>>2]=f;J[a+20>>2]=y;J[a+12>>2]=c;J[a+4>>2]=h;J[a+8>>2]=l;J[a>>2]=k;e=J[i+60>>2]+1|0;J[i+60>>2]=e;if(e){a=l;aa=a&-4;_=a&3;ca=p+1068|0;$=p+12|0;da=p+1108|0;ea=a>>>0<4;while(1){a=J[i+44>>2];g=J[i+56>>2];o=e-1|0;c=g+o|0;k=(c>>>0)/113|0;c=J[a+(k<<2)>>2]+P(c-P(k,113)|0,36)|0;T=J[c+32>>2];j=J[c+12>>2];k=J[c>>2];J[i+60>>2]=o;c=J[i+48>>2];if((((a|0)!=(c|0)?P(c-a>>2,113)-1|0:0)-(e+g|0)|0)+1>>>0>=226){na(J[c-4>>2]);J[i+48>>2]=J[i+48>>2]-4}J[n+16>>2]=k;J[n>>2]=j;a=J[p+1164>>2];c=J[p+1176>>2];J[i+32>>2]=J[n+24>>2];e=J[n+20>>2];J[i+24>>2]=J[n+16>>2];J[i+28>>2]=e;J[i+16>>2]=J[n+8>>2];e=J[n+4>>2];J[i+8>>2]=J[n>>2];J[i+12>>2]=e;U=P(T,12);v=a+U|0;q=v;D=c+U|0;a=D;e=0;g=J[p+8>>2];y:{z:{A:{B:{s=J[i+8>>2];o=J[i+24>>2];u=s-o|0;if(u>>>0>=64){if(!g){break z}E=J[p+1140>>2];F=J[a>>2];G=J[p+1128>>2];if((o|0)!=(s|0)){break B}g=0;while(1){a=g<<2;c=a+G|0;J[c>>2]=0;q=a+E|0;e=J[p>>2];a=J[a+F>>2];J[q>>2]=e-a;if((a|0)!=(e|0)){q=c;a=J[c>>2];c=u-a|0;J[q>>2]=a>>>0<c>>>0?c:a}c=J[p+8>>2];g=g+1|0;if(c>>>0>g>>>0){continue}break}break A}if(g>>>0<2){break y}o=g-1|0;q=o&3;c=J[a>>2];a=0;C:{if(g-2>>>0<3){g=1;break C}r=o&-4;g=1;o=0;while(1){s=g+3|0;u=g+2|0;x=g+1|0;e=M[c+(e<<2)>>2]>M[c+(g<<2)>>2]?g:e;e=M[c+(e<<2)>>2]>M[c+(x<<2)>>2]?x:e;e=M[c+(e<<2)>>2]>M[c+(u<<2)>>2]?u:e;e=M[c+(e<<2)>>2]>M[c+(s<<2)>>2]?s:e;g=g+4|0;o=o+4|0;if((r|0)!=(o|0)){continue}break}}if(!q){break y}while(1){e=M[c+(e<<2)>>2]>M[c+(g<<2)>>2]?g:e;g=g+1|0;a=a+1|0;if((q|0)!=(a|0)){continue}break}break y}z=J[i+28>>2];C=J[q>>2];fa=u&1;q=o+1|0;ga=(q|0)!=(s|0);m=J[i+32>>2];ha=P(m,o)<<2;while(1){a=e<<2;r=a+G|0;J[r>>2]=0;c=J[p>>2];g=J[a+F>>2];x=c-g|0;J[a+E>>2]=x;if((c|0)!=(g|0)){x=J[a+C>>2]+(1<<x-1)|0;A=a+J[z+24>>2]|0;c=J[r>>2];if(fa){c=(x>>>0>M[A+ha>>2])+c|0;J[r>>2]=c;a=q}else{a=o}g=a;if(ga){while(1){a=(x>>>0>M[A+(P(g,m)<<2)>>2])+c|0;J[r>>2]=a;c=a+(x>>>0>M[A+(P(m,g+1|0)<<2)>>2])|0;J[r>>2]=c;g=g+2|0;if((s|0)!=(g|0)){continue}break}}a=u-c|0;J[r>>2]=a>>>0>c>>>0?a:c}c=J[p+8>>2];e=e+1|0;if(c>>>0>e>>>0){continue}break}}if(!c){e=0;break z}u=c&1;q=J[p+1128>>2];r=J[p+1140>>2];D:{if((c|0)==1){g=0;c=0;e=0;break D}x=c&-2;g=0;c=0;e=0;o=0;while(1){a=g<<2;E:{if(!J[a+r>>2]){a=c;break E}s=J[a+q>>2];a=c>>>0>s>>>0?c:s;e=c>>>0<s>>>0?g:e}A=g|1;c=A<<2;F:{if(!J[c+r>>2]){c=a;break F}s=J[c+q>>2];c=a>>>0>s>>>0?a:s;e=a>>>0<s>>>0?A:e}g=g+2|0;o=o+2|0;if((x|0)!=(o|0)){continue}break}}if(!u){break z}a=g<<2;if(!J[a+r>>2]){break z}e=M[a+q>>2]>c>>>0?g:e}Ib(p+1088|0,4,e)}c=J[p>>2];q=e<<2;g=J[q+J[D>>2]>>2];G:{H:{if((c|0)==(g|0)){break H}I:{J:{x=j-k|0;if(x>>>0<=2){g=J[p+1152>>2];J[g>>2]=e;c=1;a=J[p+8>>2];if(a>>>0>1){break J}break I}a=J[p+1164>>2];F=T+1|0;A=P(F,12);o=a+A|0;if((o|0)!=(v|0)){bb(o,J[v>>2],J[v+4>>2]);a=J[p+1164>>2]}a=q+J[a+A>>2]|0;r=J[a>>2]+(1<<c+(g^-1))|0;J[a>>2]=r;a=k;K:{if((j|0)==(a|0)){break K}G=J[h+24>>2];D=G+q|0;a=j;c=k;if(!l){if(r>>>0>M[D>>2]){break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}if(r>>>0<=M[(q+J[f+24>>2]|0)+(P(a,y)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(a|0)){continue}break}break K}while(1){g=P(c,l)<<2;if(r>>>0>M[g+D>>2]){c=c+1|0;if((c|0)!=(a|0)){continue}break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}v=J[f+24>>2]+(P(a,y)<<2)|0;if(r>>>0<=M[v+q>>2]){continue}break}s=g+G|0;E=0;g=0;o=0;if(!ea){while(1){u=g<<2;m=u+s|0;z=J[m>>2];C=m;m=v+u|0;J[C>>2]=J[m>>2];J[m>>2]=z;m=u|4;z=m+s|0;C=J[z>>2];m=v+m|0;J[z>>2]=J[m>>2];J[m>>2]=C;m=u|8;z=m+s|0;C=J[z>>2];m=v+m|0;J[z>>2]=J[m>>2];J[m>>2]=C;u=u|12;m=u+s|0;z=J[m>>2];u=v+u|0;J[m>>2]=J[u>>2];J[u>>2]=z;g=g+4|0;o=o+4|0;if((aa|0)!=(o|0)){continue}break}}if(_){while(1){o=g<<2;u=o+s|0;m=J[u>>2];o=o+v|0;J[u>>2]=J[o>>2];J[o>>2]=m;g=g+1|0;E=E+1|0;if((_|0)!=(E|0)){continue}break}}c=c+1|0;if((c|0)!=(a|0)){continue}break}}o=a-k|0;r=j-a|0;if((o|0)!=(r|0)){xc(da,o>>>0<r>>>0)}c=S(x);v=c^31;g=x>>>1|0;L:{if(o>>>0<r>>>0){if(!v){break L}s=g-o|0;c=1<<30-c;g=0;while(1){Ca((g<<5)+$|0,(c&s)!=0);c=c>>>1|0;g=g+1|0;if((v|0)!=(g|0)){continue}break}break L}if(!v){break L}s=g-r|0;c=1<<30-c;g=0;while(1){Ca((g<<5)+$|0,(c&s)!=0);c=c>>>1|0;g=g+1|0;if((v|0)!=(g|0)){continue}break}}m=q;c=J[p+1176>>2];g=c+U|0;q=J[g>>2];v=m+q|0;J[v>>2]=J[v>>2]+1;bb(c+A|0,q,J[g+4>>2]);if((a|0)!=(k|0)){g=J[i+60>>2]+J[i+56>>2]|0;q=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(q|0)?P(q-c>>2,113)-1|0:0)|0)){fb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;q=J[i+44>>2]}else{q=c}c=(g>>>0)/113|0;c=J[q+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=T;J[c+28>>2]=o;J[c+24>>2]=e;J[c+16>>2]=h;J[c+12>>2]=a;J[c+4>>2]=h;J[c+8>>2]=l;J[c>>2]=k;J[c+20>>2]=l;J[i+60>>2]=J[i+60>>2]+1}if((a|0)==(j|0)){break H}g=J[i+60>>2]+J[i+56>>2]|0;k=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(k|0)?P(k-c>>2,113)-1|0:0)|0)){fb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;q=J[i+44>>2]}else{q=c}c=(g>>>0)/113|0;c=J[q+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=F;J[c+28>>2]=r;J[c+24>>2]=e;J[c+16>>2]=f;J[c+20>>2]=y;J[c+12>>2]=j;J[c+4>>2]=h;J[c>>2]=a;J[c+8>>2]=l;e=J[i+60>>2]+1|0;J[i+60>>2]=e;break G}while(1){e=(a-1|0)!=(e|0)?e+1|0:0;J[g+(c<<2)>>2]=e;a=J[p+8>>2];c=c+1|0;if(a>>>0>c>>>0){continue}break}}g=0;c=a;if((j|0)==(k|0)){break H}while(1){M:{if(!c){c=0;break M}j=J[h+24>>2]+(P(J[h+4>>2],g+k|0)<<2)|0;e=0;while(1){c=J[p>>2];o=J[J[p+1152>>2]+(e<<2)>>2]<<2;q=J[o+J[D>>2]>>2];if((c|0)!=(q|0)){Ib(ca,c-q|0,J[j+o>>2]);a=J[p+8>>2]}c=a;e=e+1|0;if(c>>>0>e>>>0){continue}break}}g=g+1|0;if((x|0)!=(g|0)){continue}break}}e=J[i+60>>2]}if(e){continue}break}}J[i+60>>2]=0;f=J[i+48>>2];e=J[i+44>>2];a=f-e|0;if(a>>>0>=9){while(1){na(J[e>>2]);e=J[i+44>>2]+4|0;J[i+44>>2]=e;f=J[i+48>>2];a=f-e|0;if(a>>>0>8){continue}break}}c=56;N:{switch((a>>>2|0)-1|0){case 1:c=113;case 0:J[i+56>>2]=c;break;default:break N}}O:{if((e|0)==(f|0)){break O}while(1){na(J[e>>2]);e=e+4|0;if((f|0)!=(e|0)){continue}break}a=J[i+48>>2];c=J[i+44>>2];if((a|0)==(c|0)){break O}J[i+48>>2]=a+((c-a|0)+3&-4)}a=J[i+40>>2];if(a){na(a)}ba=i- -64|0;break v}qa();B()}qa();B()}se(W,b);eb(X,b);eb(Y,b);eb(Z,b)}ba=n+32|0;_c(p);break t;case 5:c=Zc(d+456|0,f);a=J[d+1652>>2];J[d+416>>2]=a;J[d+400>>2]=a;J[d- -64>>2]=a;J[d+48>>2]=a;J[d+408>>2]=0;J[d+392>>2]=J[d+1648>>2];a=d+1648|0;J[d+412>>2]=a;f=J[d+412>>2];J[d+56>>2]=J[d+408>>2];J[d+60>>2]=f;J[d+396>>2]=a;J[d+420>>2]=k;a=J[d+396>>2];J[d+40>>2]=J[d+392>>2];J[d+44>>2]=a;a=Ae(c,d+56|0,d+40|0,d+420|0,b);_c(c);if(a){break t}break a;case 4:c=Zc(d+456|0,f);a=J[d+1652>>2];J[d+384>>2]=a;J[d+368>>2]=a;J[d+96>>2]=a;J[d+80>>2]=a;J[d+376>>2]=0;J[d+360>>2]=J[d+1648>>2];a=d+1648|0;J[d+380>>2]=a;f=J[d+380>>2];J[d+88>>2]=J[d+376>>2];J[d+92>>2]=f;J[d+364>>2]=a;J[d+420>>2]=k;a=J[d+364>>2];J[d+72>>2]=J[d+360>>2];J[d+76>>2]=a;a=Ae(c,d+88|0,d+72|0,d+420|0,b);_c(c);if(a){break t}break a;case 3:c=ze(d+456|0,f);a=J[d+1652>>2];J[d+352>>2]=a;J[d+336>>2]=a;J[d+128>>2]=a;J[d+112>>2]=a;J[d+344>>2]=0;J[d+328>>2]=J[d+1648>>2];a=d+1648|0;J[d+348>>2]=a;f=J[d+348>>2];J[d+120>>2]=J[d+344>>2];J[d+124>>2]=f;J[d+332>>2]=a;J[d+420>>2]=k;a=J[d+332>>2];J[d+104>>2]=J[d+328>>2];J[d+108>>2]=a;a=ye(c,d+120|0,d+104|0,d+420|0,b);xe(c);if(a){break t}break a;case 2:c=ze(d+456|0,f);a=J[d+1652>>2];J[d+320>>2]=a;J[d+304>>2]=a;J[d+160>>2]=a;J[d+144>>2]=a;J[d+312>>2]=0;J[d+296>>2]=J[d+1648>>2];a=d+1648|0;J[d+316>>2]=a;f=J[d+316>>2];J[d+152>>2]=J[d+312>>2];J[d+156>>2]=f;J[d+300>>2]=a;J[d+420>>2]=k;a=J[d+300>>2];J[d+136>>2]=J[d+296>>2];J[d+140>>2]=a;a=ye(c,d+152|0,d+136|0,d+420|0,b);xe(c);if(a){break t}break a;case 1:c=we(d+456|0,f);a=J[d+1652>>2];J[d+288>>2]=a;J[d+272>>2]=a;J[d+192>>2]=a;J[d+176>>2]=a;J[d+280>>2]=0;J[d+264>>2]=J[d+1648>>2];a=d+1648|0;J[d+284>>2]=a;f=J[d+284>>2];J[d+184>>2]=J[d+280>>2];J[d+188>>2]=f;J[d+268>>2]=a;J[d+420>>2]=k;a=J[d+268>>2];J[d+168>>2]=J[d+264>>2];J[d+172>>2]=a;a=ve(c,d+184|0,d+168|0,d+420|0,b);ue(c);if(a){break t}break a;case 0:break u;default:break a}}c=we(d+456|0,f);a=J[d+1652>>2];J[d+256>>2]=a;J[d+240>>2]=a;J[d+224>>2]=a;J[d+208>>2]=a;J[d+248>>2]=0;J[d+232>>2]=J[d+1648>>2];a=d+1648|0;J[d+252>>2]=a;f=J[d+252>>2];J[d+216>>2]=J[d+248>>2];J[d+220>>2]=f;J[d+236>>2]=a;J[d+420>>2]=k;a=J[d+236>>2];J[d+200>>2]=J[d+232>>2];J[d+204>>2]=a;a=ve(c,d+216|0,d+200|0,d+420|0,b);ue(c);if(!a){break a}}s=1}a=J[d+1660>>2];if(a){J[d+1664>>2]=a;na(a)}ba=d+1680|0;return s|0}function Xe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0;w=ba-160|0;ba=w;J[w+60>>2]=b;J[w+20>>2]=b;J[w+24>>2]=-1;h=w+16|0;J[h+112>>2]=0;J[h+116>>2]=0;n=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=n;J[h+124>>2]=n>>31;J[h+104>>2]=J[h+8>>2];s=ba-48|0;ba=s;if(d>>>0<=2){a:{d=d<<2;D=J[d+17292>>2];E=J[d+17280>>2];while(1){d=J[h+4>>2];b:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break b}d=La(h)}if((d|0)==32|d-9>>>0<5){continue}break}n=1;c:{d:{switch(d-43|0){case 0:case 2:break d;default:break c}}n=(d|0)==45?-1:1;d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break c}d=La(h)}e:{f:{while(1){if(H[g+1154|0]==(d|32)){g:{if(g>>>0>6){break g}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break g}d=La(h)}g=g+1|0;if((g|0)!=8){continue}break f}break}if((g|0)!=3){if((g|0)==8){break f}if(g>>>0<4){break e}if((g|0)==8){break f}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g>>>0<4){break f}d=(d|0)<0;while(1){if(!d){J[h+4>>2]=J[h+4>>2]-1}g=g-1|0;if(g>>>0>3){continue}break}}m=ba-16|0;ba=m;r=(C(Q(Q(n|0)*Q(Infinity))),v(2));d=r&2147483647;h:{if(d-8388608>>>0<=2130706431){l=(d>>>7|0)+1065353216|0;j=d<<25;break h}l=r>>>7|2147418112;j=r<<25;if(d>>>0>=2139095040){break h}l=0;j=0;if(!d){break h}g=d;d=S(d);Pa(m,g,0,0,0,d+81|0);i=J[m>>2];k=J[m+4>>2];l=J[m+12>>2]^65536|16265-d<<16;j=J[m+8>>2]}J[s>>2]=i;J[s+4>>2]=k;J[s+8>>2]=j;J[s+12>>2]=r&-2147483648|l;ba=m+16|0;i=J[s+8>>2];k=J[s+12>>2];j=J[s>>2];m=J[s+4>>2];break a}i:{j:{k:{if(g){break k}g=0;while(1){if(H[g+1434|0]!=(d|32)){break k}l:{if(g>>>0>1){break l}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break l}d=La(h)}g=g+1|0;if((g|0)!=3){continue}break}break j}m:{switch(g|0){case 0:n:{if((d|0)!=48){break n}g=J[h+4>>2];o:{if((g|0)!=J[h+104>>2]){J[h+4>>2]=g+1;g=K[g|0];break o}g=La(h)}if((g&-33)==88){f=ba-432|0;ba=f;d=J[h+4>>2];p:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break p}g=La(h)}q:{r:{while(1){if((g|0)!=48){s:{if((g|0)!=46){break q}d=J[h+4>>2];if((d|0)==J[h+104>>2]){break s}J[h+4>>2]=d+1;g=K[d|0];break r}}else{d=J[h+4>>2];if((d|0)!=J[h+104>>2]){x=1;J[h+4>>2]=d+1;g=K[d|0]}else{x=1;g=La(h)}continue}break}g=La(h)}e=1;if((g|0)!=48){break q}while(1){d=r;r=d-1|0;t=t-!d|0;d=J[h+4>>2];t:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break t}g=La(h)}if((g|0)==48){continue}break}x=1}m=1073676288;while(1){u:{d=g|32;v:{w:{F=g-48|0;if(F>>>0<10){break w}if((g|0)!=46&d-97>>>0>=6){break u}if((g|0)!=46){break w}if(e){break u}e=1;r=i;t=k;break v}d=(g|0)>57?d-87|0:F;x:{if((k|0)<=0&i>>>0<=7|(k|0)<0){p=d+(p<<4)|0;break x}if(!k&i>>>0<=28){$a(f+48|0,d);Ea(f+32|0,A,B,j,m,0,0,0,1073414144);A=J[f+32>>2];B=J[f+36>>2];j=J[f+40>>2];m=J[f+44>>2];Ea(f+16|0,J[f+48>>2],J[f+52>>2],J[f+56>>2],J[f+60>>2],A,B,j,m);_a(f,J[f+16>>2],J[f+20>>2],J[f+24>>2],J[f+28>>2],l,o,y,z);y=J[f+8>>2];z=J[f+12>>2];l=J[f>>2];o=J[f+4>>2];break x}if(G|!d){break x}Ea(f+80|0,A,B,j,m,0,0,0,1073610752);_a(f- -64|0,J[f+80>>2],J[f+84>>2],J[f+88>>2],J[f+92>>2],l,o,y,z);y=J[f+72>>2];z=J[f+76>>2];G=1;l=J[f+64>>2];o=J[f+68>>2]}i=i+1|0;k=i?k:k+1|0;x=1}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0]}else{g=La(h)}continue}break}y:{if(!x){d=J[h+116>>2];if((d|0)>0|(d|0)>=0){z:{d=J[h+4>>2];J[h+4>>2]=d-1;J[h+4>>2]=d-2;if(!e){break z}J[h+4>>2]=d-3}}qb(f+96|0,+(n|0)*0);l=J[f+96>>2];o=J[f+100>>2];i=J[f+108>>2];d=J[f+104>>2];break y}if((k|0)<=0&i>>>0<=7|(k|0)<0){j=i;m=k;while(1){p=p<<4;j=j+1|0;m=j?m:m+1|0;if((j|0)!=8|m){continue}break}}A:{B:{C:{if((g&-33)==80){j=Ye(h);d=ca;m=d;if(j|(d|0)!=-2147483648){break A}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){break C}break B}j=0;m=0;if(J[h+116>>2]<0){break A}}J[h+4>>2]=J[h+4>>2]-1}j=0;m=0}if(!p){qb(f+112|0,+(n|0)*0);l=J[f+112>>2];o=J[f+116>>2];i=J[f+124>>2];d=J[f+120>>2];break y}d=e?r:i;k=(e?t:k)<<2|d>>>30;d=j+(d<<2)|0;g=k+m|0;g=d>>>0<j>>>0?g+1|0:g;i=d-32|0;k=g-(d>>>0<32)|0;d=k;if(i>>>0>0-D>>>0&(d|0)>=0|(d|0)>0){J[4804]=68;$a(f+160|0,n);Ea(f+144|0,J[f+160>>2],J[f+164>>2],J[f+168>>2],J[f+172>>2],-1,-1,-1,2147418111);Ea(f+128|0,J[f+144>>2],J[f+148>>2],J[f+152>>2],J[f+156>>2],-1,-1,-1,2147418111);l=J[f+128>>2];o=J[f+132>>2];i=J[f+140>>2];d=J[f+136>>2];break y}d=D-226|0;j=d>>31;if((k|0)>=(j|0)&d>>>0<=i>>>0|(j|0)<(k|0)){if((p|0)>=0){while(1){_a(f+416|0,l,o,y,z,0,0,0,-1073807360);d=Oe(l,o,y,z,1073610752);j=(d|0)>=0;d=j;_a(f+400|0,l,o,y,z,d?J[f+416>>2]:l,d?J[f+420>>2]:o,d?J[f+424>>2]:y,d?J[f+428>>2]:z);d=i;i=d-1|0;k=k-!d|0;y=J[f+408>>2];z=J[f+412>>2];l=J[f+400>>2];o=J[f+404>>2];p=j|p<<1;if((p|0)>=0){continue}break}}g=k-((D>>31)+(i>>>0<D>>>0)|0)|0;d=(i-D|0)+32|0;g=d>>>0<32?g+1|0:g;j=d>>>0<E>>>0&(g|0)<=0|(g|0)<0?(d|0)>0?d:0:E;D:{if((j|0)>=113){$a(f+384|0,n);r=J[f+392>>2];t=J[f+396>>2];A=J[f+384>>2];B=J[f+388>>2];g=0;d=0;break D}qb(f+352|0,pd(144-j|0));$a(f+336|0,n);A=J[f+336>>2];B=J[f+340>>2];r=J[f+344>>2];t=J[f+348>>2];$e(f+368|0,J[f+352>>2],J[f+356>>2],J[f+360>>2],J[f+364>>2],A,B,r,t);q=J[f+376>>2];u=J[f+380>>2];g=J[f+372>>2];d=J[f+368>>2]}k=!(p&1)&((Hb(l,o,y,z,0,0,0,0)|0)!=0&(j|0)<32);Lb(f+320|0,k+p|0);Ea(f+304|0,A,B,r,t,J[f+320>>2],J[f+324>>2],J[f+328>>2],J[f+332>>2]);j=d;_a(f+272|0,J[f+304>>2],J[f+308>>2],J[f+312>>2],J[f+316>>2],d,g,q,u);d=k;Ea(f+288|0,A,B,r,t,d?0:l,d?0:o,d?0:y,d?0:z);_a(f+256|0,J[f+288>>2],J[f+292>>2],J[f+296>>2],J[f+300>>2],J[f+272>>2],J[f+276>>2],J[f+280>>2],J[f+284>>2]);od(f+240|0,J[f+256>>2],J[f+260>>2],J[f+264>>2],J[f+268>>2],j,g,q,u);d=J[f+240>>2];l=J[f+244>>2];j=J[f+248>>2];r=J[f+252>>2];if(!Hb(d,l,j,r,0,0,0,0)){J[4804]=68}_e(f+224|0,d,l,j,r,i);l=J[f+224>>2];o=J[f+228>>2];i=J[f+236>>2];d=J[f+232>>2];break y}J[4804]=68;$a(f+208|0,n);Ea(f+192|0,J[f+208>>2],J[f+212>>2],J[f+216>>2],J[f+220>>2],0,0,0,65536);Ea(f+176|0,J[f+192>>2],J[f+196>>2],J[f+200>>2],J[f+204>>2],0,0,0,65536);l=J[f+176>>2];o=J[f+180>>2];i=J[f+188>>2];d=J[f+184>>2]}J[s+16>>2]=l;J[s+20>>2]=o;J[s+24>>2]=d;J[s+28>>2]=i;ba=f+432|0;i=J[s+24>>2];k=J[s+28>>2];j=J[s+16>>2];m=J[s+20>>2];break a}if(J[h+116>>2]<0){break n}J[h+4>>2]=J[h+4>>2]-1}g=h;f=n;h=0;e=ba-8976|0;ba=e;G=0-D|0;F=G-E|0;E:{F:{while(1){if((d|0)!=48){G:{if((d|0)!=46){break E}d=J[g+4>>2];if((d|0)==J[g+104>>2]){break G}J[g+4>>2]=d+1;d=K[d|0];break F}}else{d=J[g+4>>2];if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0]}else{d=La(g)}h=1;continue}break}d=La(g)}q=1;if((d|0)!=48){break E}while(1){d=i;i=d-1|0;k=k-!d|0;d=J[g+4>>2];H:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break H}d=La(g)}if((d|0)==48){continue}break}h=1}J[e+784>>2]=0;I:{J:{n=(d|0)==46;l=d-48|0;K:{L:{if(n|l>>>0<=9){while(1){M:{if(n&1){if(!q){i=j;k=m;q=1;break M}n=!h;break L}j=j+1|0;m=j?m:m+1|0;if((p|0)<=2044){x=(d|0)==48?x:j;n=(e+784|0)+(p<<2)|0;if(u){l=(P(J[n>>2],10)+d|0)-48|0}J[n>>2]=l;h=1;l=u+1|0;d=(l|0)==9;u=d?0:l;p=d+p|0;break M}if((d|0)==48){break M}J[e+8960>>2]=J[e+8960>>2]|1;x=18396}d=J[g+4>>2];N:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break N}d=La(g)}n=(d|0)==46;l=d-48|0;if(n|l>>>0<10){continue}break}}i=q?i:j;k=q?k:m;if(!(!h|(d&-33)!=69)){l=Ye(g);d=ca;o=d;O:{if(l|(d|0)!=-2147483648){break O}l=0;o=0;if(J[g+116>>2]<0){break O}J[g+4>>2]=J[g+4>>2]-1}k=k+o|0;i=i+l|0;k=i>>>0<l>>>0?k+1|0:k;break J}n=!h;if((d|0)<0){break K}}if(J[g+116>>2]<0){break K}J[g+4>>2]=J[g+4>>2]-1}if(!n){break J}J[4804]=28;j=0;m=0;J[g+112>>2]=0;J[g+116>>2]=0;d=J[g+44>>2]-J[g+4>>2]|0;J[g+120>>2]=d;J[g+124>>2]=d>>31;J[g+104>>2]=J[g+8>>2];i=0;d=0;break I}d=J[e+784>>2];if(!d){qb(e,+(f|0)*0);j=J[e>>2];m=J[e+4>>2];i=J[e+12>>2];d=J[e+8>>2];break I}if(!(j>>>0>9&(m|0)>=0|(m|0)>0|((i|0)!=(j|0)|(k|0)!=(m|0))|(d>>>E|0?(E|0)<=30:0))){$a(e+48|0,f);Lb(e+32|0,d);Ea(e+16|0,J[e+48>>2],J[e+52>>2],J[e+56>>2],J[e+60>>2],J[e+32>>2],J[e+36>>2],J[e+40>>2],J[e+44>>2]);j=J[e+16>>2];m=J[e+20>>2];i=J[e+28>>2];d=J[e+24>>2];break I}if(i>>>0>G>>>1>>>0&(k|0)>=0|(k|0)>0){J[4804]=68;$a(e+96|0,f);Ea(e+80|0,J[e+96>>2],J[e+100>>2],J[e+104>>2],J[e+108>>2],-1,-1,-1,2147418111);Ea(e- -64|0,J[e+80>>2],J[e+84>>2],J[e+88>>2],J[e+92>>2],-1,-1,-1,2147418111);j=J[e+64>>2];m=J[e+68>>2];i=J[e+76>>2];d=J[e+72>>2];break I}d=D-226|0;g=i>>>0<d>>>0;d=d>>31;if(g&(k|0)<=(d|0)|(d|0)>(k|0)){J[4804]=68;$a(e+144|0,f);Ea(e+128|0,J[e+144>>2],J[e+148>>2],J[e+152>>2],J[e+156>>2],0,0,0,65536);Ea(e+112|0,J[e+128>>2],J[e+132>>2],J[e+136>>2],J[e+140>>2],0,0,0,65536);j=J[e+112>>2];m=J[e+116>>2];i=J[e+124>>2];d=J[e+120>>2];break I}if(u){if((u|0)<=8){d=(e+784|0)+(p<<2)|0;g=J[d>>2];while(1){g=P(g,10);u=u+1|0;if((u|0)!=9){continue}break}J[d>>2]=g}p=p+1|0}P:{q=i;if((x|0)>(i|0)|(x|0)>=9|(i|0)>17){break P}if((q|0)==9){$a(e+192|0,f);Lb(e+176|0,J[e+784>>2]);Ea(e+160|0,J[e+192>>2],J[e+196>>2],J[e+200>>2],J[e+204>>2],J[e+176>>2],J[e+180>>2],J[e+184>>2],J[e+188>>2]);j=J[e+160>>2];m=J[e+164>>2];i=J[e+172>>2];d=J[e+168>>2];break I}if((q|0)<=8){$a(e+272|0,f);Lb(e+256|0,J[e+784>>2]);Ea(e+240|0,J[e+272>>2],J[e+276>>2],J[e+280>>2],J[e+284>>2],J[e+256>>2],J[e+260>>2],J[e+264>>2],J[e+268>>2]);$a(e+224|0,J[(0-q<<2)+17280>>2]);Ne(e+208|0,J[e+240>>2],J[e+244>>2],J[e+248>>2],J[e+252>>2],J[e+224>>2],J[e+228>>2],J[e+232>>2],J[e+236>>2]);j=J[e+208>>2];m=J[e+212>>2];i=J[e+220>>2];d=J[e+216>>2];break I}d=(P(q,-3)+E|0)+27|0;i=J[e+784>>2];if(i>>>d|0?(d|0)<=30:0){break P}$a(e+352|0,f);Lb(e+336|0,i);Ea(e+320|0,J[e+352>>2],J[e+356>>2],J[e+360>>2],J[e+364>>2],J[e+336>>2],J[e+340>>2],J[e+344>>2],J[e+348>>2]);$a(e+304|0,J[(q<<2)+17208>>2]);Ea(e+288|0,J[e+320>>2],J[e+324>>2],J[e+328>>2],J[e+332>>2],J[e+304>>2],J[e+308>>2],J[e+312>>2],J[e+316>>2]);j=J[e+288>>2];m=J[e+292>>2];i=J[e+300>>2];d=J[e+296>>2];break I}while(1){d=p;p=d-1|0;if(!J[(e+784|0)+(p<<2)>>2]){continue}break}u=0;i=(q|0)%9|0;Q:{if(!i){n=0;break Q}n=0;i=(q|0)<0?i+9|0:i;R:{if(!d){d=0;break R}j=J[(0-i<<2)+17280>>2];k=1e9/(j|0)|0;l=0;g=0;while(1){m=(e+784|0)+(g<<2)|0;h=J[m>>2];p=(h>>>0)/(j>>>0)|0;l=p+l|0;J[m>>2]=l;l=!l&(g|0)==(n|0);n=l?n+1&2047:n;q=l?q-9|0:q;l=P(k,h-P(j,p)|0);g=g+1|0;if((g|0)!=(d|0)){continue}break}if(!l){break R}J[(e+784|0)+(d<<2)>>2]=l;d=d+1|0}q=(q-i|0)+9|0}while(1){x=(e+784|0)+(n<<2)|0;S:{while(1){if(((q|0)!=36|M[x>>2]>=10384593)&(q|0)>=36){break S}p=d+2047|0;l=0;h=d;while(1){d=h;o=p&2047;h=(e+784|0)+(o<<2)|0;i=J[h>>2];m=i>>>3|0;j=i<<29;i=j+l|0;g=m;k=i>>>0<j>>>0?g+1|0:g;if(!k&i>>>0<1000000001){l=0}else{l=Jl(i,k,1e9,0);i=i-Hl(l,ca,1e9,0)|0}J[h>>2]=i;h=(o|0)!=(d-1&2047)?d:(n|0)==(o|0)?d:i?d:o;p=o-1|0;if((n|0)!=(o|0)){continue}break}u=u-29|0;if(!l){continue}break}n=n-1&2047;if((n|0)==(h|0)){i=e+784|0;d=i+((h+2046&2047)<<2)|0;g=d;k=J[d>>2];d=h-1&2047;J[g>>2]=k|J[i+(d<<2)>>2]}q=q+9|0;J[(e+784|0)+(n<<2)>>2]=l;continue}break}T:{U:while(1){i=d+1&2047;l=(e+784|0)+((d-1&2047)<<2)|0;while(1){j=(q|0)>45?9:1;V:{while(1){h=n;g=0;W:{while(1){X:{k=g+h&2047;if((k|0)==(d|0)){break X}k=J[(e+784|0)+(k<<2)>>2];m=J[(g<<2)+17232>>2];if(k>>>0<m>>>0){break X}if(k>>>0>m>>>0){break W}g=g+1|0;if((g|0)!=4){continue}}break}if((q|0)!=36){break W}i=0;k=0;g=0;j=0;m=0;while(1){l=g+h&2047;if((l|0)==(d|0)){d=d+1&2047;J[(e+(d<<2)|0)+780>>2]=0}Lb(e+768|0,J[(e+784|0)+(l<<2)>>2]);Ea(e+752|0,i,k,j,m,0,0,1342177280,1075633366);_a(e+736|0,J[e+752>>2],J[e+756>>2],J[e+760>>2],J[e+764>>2],J[e+768>>2],J[e+772>>2],J[e+776>>2],J[e+780>>2]);j=J[e+744>>2];m=J[e+748>>2];i=J[e+736>>2];k=J[e+740>>2];g=g+1|0;if((g|0)!=4){continue}break}$a(e+720|0,f);Ea(e+704|0,i,k,j,m,J[e+720>>2],J[e+724>>2],J[e+728>>2],J[e+732>>2]);j=J[e+712>>2];m=J[e+716>>2];i=0;k=0;l=J[e+704>>2];o=J[e+708>>2];x=u+113|0;n=x-D|0;q=(n|0)<(E|0);g=q?(n|0)>0?n:0:E;if((g|0)<=112){break V}break T}u=j+u|0;n=d;if((d|0)==(h|0)){continue}break}m=1e9>>>j|0;p=-1<<j^-1;g=0;n=h;while(1){k=g;g=(e+784|0)+(h<<2)|0;o=J[g>>2];k=k+(o>>>j|0)|0;J[g>>2]=k;k=!k&(h|0)==(n|0);n=k?n+1&2047:n;q=k?q-9|0:q;g=P(m,o&p);h=h+1&2047;if((h|0)!=(d|0)){continue}break}if(!g){continue}if((i|0)!=(n|0)){J[(e+784|0)+(d<<2)>>2]=g;d=i;continue U}J[l>>2]=J[l>>2]|1;continue}break}break}qb(e+656|0,pd(225-g|0));$e(e+688|0,J[e+656>>2],J[e+660>>2],J[e+664>>2],J[e+668>>2],l,o,j,m);y=J[e+696>>2];z=J[e+700>>2];A=J[e+688>>2];B=J[e+692>>2];qb(e+640|0,pd(113-g|0));Ze(e+672|0,l,o,j,m,J[e+640>>2],J[e+644>>2],J[e+648>>2],J[e+652>>2]);i=J[e+672>>2];k=J[e+676>>2];r=J[e+680>>2];t=J[e+684>>2];od(e+624|0,l,o,j,m,i,k,r,t);_a(e+608|0,A,B,y,z,J[e+624>>2],J[e+628>>2],J[e+632>>2],J[e+636>>2]);j=J[e+616>>2];m=J[e+620>>2];l=J[e+608>>2];o=J[e+612>>2]}p=h+4&2047;Y:{if((p|0)==(d|0)){break Y}p=J[(e+784|0)+(p<<2)>>2];Z:{if(p>>>0<=499999999){if(!p&(h+5&2047)==(d|0)){break Z}qb(e+496|0,+(f|0)*.25);_a(e+480|0,i,k,r,t,J[e+496>>2],J[e+500>>2],J[e+504>>2],J[e+508>>2]);r=J[e+488>>2];t=J[e+492>>2];i=J[e+480>>2];k=J[e+484>>2];break Z}if((p|0)!=5e8){qb(e+592|0,+(f|0)*.75);_a(e+576|0,i,k,r,t,J[e+592>>2],J[e+596>>2],J[e+600>>2],J[e+604>>2]);r=J[e+584>>2];t=J[e+588>>2];i=J[e+576>>2];k=J[e+580>>2];break Z}I=+(f|0);if((h+5&2047)==(d|0)){qb(e+528|0,I*.5);_a(e+512|0,i,k,r,t,J[e+528>>2],J[e+532>>2],J[e+536>>2],J[e+540>>2]);r=J[e+520>>2];t=J[e+524>>2];i=J[e+512>>2];k=J[e+516>>2];break Z}qb(e+560|0,I*.75);_a(e+544|0,i,k,r,t,J[e+560>>2],J[e+564>>2],J[e+568>>2],J[e+572>>2]);r=J[e+552>>2];t=J[e+556>>2];i=J[e+544>>2];k=J[e+548>>2]}if((g|0)>111){break Y}Ze(e+464|0,i,k,r,t,0,0,0,1073676288);if(Hb(J[e+464>>2],J[e+468>>2],J[e+472>>2],J[e+476>>2],0,0,0,0)){break Y}_a(e+448|0,i,k,r,t,0,0,0,1073676288);r=J[e+456>>2];t=J[e+460>>2];i=J[e+448>>2];k=J[e+452>>2]}_a(e+432|0,l,o,j,m,i,k,r,t);od(e+416|0,J[e+432>>2],J[e+436>>2],J[e+440>>2],J[e+444>>2],A,B,y,z);j=J[e+424>>2];m=J[e+428>>2];l=J[e+416>>2];o=J[e+420>>2];_:{if((F-2|0)>=(x&2147483647)){break _}J[e+408>>2]=j;J[e+412>>2]=m&2147483647;J[e+400>>2]=l;J[e+404>>2]=o;Ea(e+384|0,l,o,j,m,0,0,0,1073610752);d=Oe(J[e+400>>2],J[e+404>>2],J[e+408>>2],J[e+412>>2],1081081856);d=(d|0)>=0;j=d?J[e+392>>2]:j;m=d?J[e+396>>2]:m;l=d?J[e+384>>2]:l;o=d?J[e+388>>2]:o;u=d+u|0;if(!((Hb(i,k,r,t,0,0,0,0)|0)!=0&(d?q&(g|0)!=(n|0):q))&(u+110|0)<=(F|0)){break _}J[4804]=68}_e(e+368|0,l,o,j,m,u);j=J[e+368>>2];m=J[e+372>>2];i=J[e+380>>2];d=J[e+376>>2]}J[s+40>>2]=d;J[s+44>>2]=i;J[s+32>>2]=j;J[s+36>>2]=m;ba=e+8976|0;i=J[s+40>>2];k=J[s+44>>2];j=J[s+32>>2];m=J[s+36>>2];break a;case 3:break j;default:break m}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}J[4804]=28;break i}$:{d=J[h+4>>2];aa:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break aa}d=La(h)}if((d|0)==40){g=1;break $}k=2147450880;if(J[h+116>>2]<0){break a}J[h+4>>2]=J[h+4>>2]-1;break a}while(1){ba:{d=J[h+4>>2];ca:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break ca}d=La(h)}if(!(d-48>>>0<10|d-65>>>0<26|(d|0)==95)){if(d-97>>>0>=26){break ba}}g=g+1|0;continue}break}k=2147450880;if((d|0)==41){break a}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(!g){break a}while(1){g=g-1|0;if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g){continue}break}break a}J[h+112>>2]=0;J[h+116>>2]=0;d=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=d;J[h+124>>2]=d>>31;J[h+104>>2]=J[h+8>>2]}}J[w>>2]=j;J[w+4>>2]=m;J[w+8>>2]=i;J[w+12>>2]=k;ba=s+48|0;d=J[w+8>>2];j=J[w+12>>2];i=J[w>>2];l=J[w+4>>2];if(c){J[c>>2]=((J[w+20>>2]+J[w+136>>2]|0)-J[w+60>>2]|0)+b}J[a+8>>2]=d;J[a+12>>2]=j;J[a>>2]=i;J[a+4>>2]=l;ba=w+160|0}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=ba-32|0;ba=l;d=J[b+8>>2];a:{b:{if(K[b+352|0]){d=jf(d);f=J[b+12>>2];J[b+12>>2]=d;if(f){break b}break a}d=kf(d);f=J[b+12>>2];J[b+12>>2]=d;if(!f){break a}}qc(f)}c:{d=J[b+12>>2];d:{if(!(J[d+40>>2]!=((J[d+4>>2]-J[d>>2]>>2>>>0)/3|0)?d:0)){b=oa(32);H[b+29|0]=0;d=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);c=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=c;H[b+22|0]=c>>>8;H[b+23|0]=c>>>16;H[b+24|0]=c>>>24;H[b+25|0]=d;H[b+26|0]=d>>>8;H[b+27|0]=d>>>16;H[b+28|0]=d>>>24;d=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);c=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;H[b+20|0]=d;H[b+21|0]=d>>>8;H[b+22|0]=d>>>16;H[b+23|0]=d>>>24;d=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);c=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=c;H[b+9|0]=c>>>8;H[b+10|0]=c>>>16;H[b+11|0]=c>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);c=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=c;H[b+1|0]=c>>>8;H[b+2|0]=c>>>16;H[b+3|0]=c>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break d}j=b+200|0;d=j;J[d+128>>2]=2;J[d+132>>2]=7;J[d+64>>2]=b;c=da[J[J[b>>2]+32>>2]](b)|0;J[d+88>>2]=c;c=J[c+28>>2]-J[c+24>>2]>>2;e=J[d+108>>2];h=J[d+104>>2];d=e-h>>2;e:{if(c>>>0>d>>>0){Fa(j+104|0,c-d|0);h=J[j+104>>2];e=J[j+108>>2];break e}if(c>>>0>=d>>>0){break e}e=(c<<2)+h|0;J[j+108>>2]=e}if((e|0)!=(h|0)){h=0;while(1){n=J[j+104>>2];q=n+(h<<2)|0;d=J[j+88>>2];f=-1;f:{if((h|0)==-1){break f}f=0;c=J[J[d+24>>2]+(h<<2)>>2];if((c|0)==-1){break f}k=J[d+12>>2];g=1;d=c;while(1){f=f+1|0;e=g;g:{if(e&255){g=0;i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;if((d|0)==-1){d=c;break g}i=J[k+(d<<2)>>2];if((i|0)==-1){d=c;break g}d=c;p=i+1|0;i=(p>>>0)%3|0?p:i-2|0;if((i|0)==-1){break g}g=e;d=i;if((c|0)!=(d|0)){break g}break f}h:{if((d>>>0)%3|0){d=d-1|0;break h}d=d+2|0;if((d|0)==-1){break f}}d=J[k+(d<<2)>>2];if((d|0)==-1){break f}d=(d>>>0)%3|0?d-1|0:d+2|0;g=0}if((d|0)!=-1){continue}break}}J[q>>2]=f;h=h+1|0;if(h>>>0<J[j+108>>2]-n>>2>>>0){continue}break}}c=j+92|0;h=J[j+88>>2];e=J[h>>2];d=J[h+4>>2]-e>>2;f=J[j+92>>2];g=J[j+96>>2]-f>>2;i:{if(d>>>0>g>>>0){Ld(c,d-g|0);h=J[j+88>>2];e=J[h>>2];break i}if(d>>>0>=g>>>0){break i}J[j+96>>2]=f+(d<<2)}d=J[h+4>>2];j:{if((d|0)==(e|0)){break j}d=d-e>>2;g=d>>>0<=1?1:d;i=g&3;d=J[c>>2];h=0;if(g-1>>>0>=3){g=g&-4;f=0;while(1){c=h<<2;J[c+d>>2]=J[c+e>>2];k=c|4;J[k+d>>2]=J[e+k>>2];k=c|8;J[k+d>>2]=J[e+k>>2];c=c|12;J[c+d>>2]=J[c+e>>2];h=h+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}if(!i){break j}while(1){c=h<<2;J[c+d>>2]=J[c+e>>2];h=h+1|0;m=m+1|0;if((i|0)!=(m|0)){continue}break}}c=(J[j+132>>2]-J[j+128>>2]|0)+1|0;e=J[j+140>>2];d=J[j+136>>2];g=(e-d|0)/12|0;k:{if(c>>>0>g>>>0){h=0;c=c-g|0;f=J[j+144>>2];d=J[j+140>>2];if(c>>>0<=(f-d|0)/12>>>0){if(c){e=d;d=P(c,12)-12|0;d=(d-((d>>>0)%12|0)|0)+12|0;d=pa(e,0,d)+d|0}J[j+140>>2]=d;break k}l:{m:{n:{e=J[j+136>>2];i=(d-e|0)/12|0;g=i+c|0;if(g>>>0<357913942){f=(f-e|0)/12|0;m=f<<1;f=f>>>0>=178956970?357913941:g>>>0<m>>>0?m:g;if(f){if(f>>>0>=357913942){break n}h=oa(P(f,12))}g=P(i,12)+h|0;c=P(c,12)-12|0;i=(c-((c>>>0)%12|0)|0)+12|0;c=pa(g,0,i);i=c+i|0;f=P(f,12)+h|0;if((d|0)==(e|0)){break m}while(1){g=g-12|0;d=d-12|0;J[g>>2]=J[d>>2];J[g+4>>2]=J[d+4>>2];J[g+8>>2]=J[d+8>>2];J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if((d|0)!=(e|0)){continue}break}J[j+144>>2]=f;e=J[j+140>>2];J[j+140>>2]=i;d=J[j+136>>2];J[j+136>>2]=g;if((d|0)==(e|0)){break l}while(1){c=e-12|0;g=J[c>>2];if(g){J[e-8>>2]=g;na(g)}e=c;if((c|0)!=(d|0)){continue}break}break l}break c}xa();B()}J[j+144>>2]=f;J[j+140>>2]=i;J[j+136>>2]=c}if(d){na(d)}break k}if(c>>>0<g>>>0){c=d+P(c,12)|0;if((c|0)!=(e|0)){while(1){d=e-12|0;g=J[d>>2];if(g){J[e-8>>2]=g;na(g)}e=d;if((d|0)!=(c|0)){continue}break}}J[j+140>>2]=c}}d=J[b+12>>2];Aa((J[d+28>>2]-J[d+24>>2]>>2)-J[d+44>>2]|0,J[J[b+4>>2]+44>>2]);d=J[b+12>>2];Aa(((J[d+4>>2]-J[d>>2]>>2>>>0)/3|0)-J[d+40>>2]|0,J[J[b+4>>2]+44>>2]);d=J[b+8>>2];c=J[d+100>>2];d=J[d+96>>2];H[l+16|0]=0;m=b+28|0;c=(c-d|0)/12|0;d=l+16|0;Na(m,c,d);c=J[b+12>>2];e=J[c+28>>2];c=J[c+24>>2];J[l+16>>2]=-1;wb(b+52|0,e-c>>2,d);d=J[b+40>>2];J[b+44>>2]=d;g=J[b+12>>2];c=J[g+4>>2]-J[g>>2]>>2;c=c-((c>>>0)%3|0)|0;o:{if(c>>>0<=J[b+48>>2]-d>>2>>>0){break o}if(c>>>0>=1073741824){break c}e=c<<2;c=oa(e);J[b+44>>2]=c;J[b+40>>2]=c;J[b+48>>2]=c+e;if(!d){break o}na(d);g=J[b+12>>2]}d=J[g+28>>2];c=J[g+24>>2];H[l+16|0]=0;Na(b+84|0,d-c>>2,l+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){g=J[b+128>>2];if(g){while(1){d=J[g>>2];na(g);g=d;if(d){continue}break}}g=0;J[b+128>>2]=0;d=J[b+124>>2];p:{if(!d){break p}if(d>>>0>=4){f=d&-4;e=0;while(1){c=g<<2;J[c+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(c|4)>>2]=0;J[J[b+120>>2]+(c|8)>>2]=0;J[J[b+120>>2]+(c|12)>>2]=0;g=g+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}d=d&3;if(!d){break p}f=0;while(1){J[J[b+120>>2]+(g<<2)>>2]=0;g=g+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;d=J[b+12>>2];c=J[d+28>>2];d=J[d+24>>2];J[l+16>>2]=-1;wb(b+152|0,c-d>>2,l+16|0);d=J[b+72>>2];J[b+76>>2]=d;q=b+72|0;c=J[b+12>>2];c=J[c+4>>2]-J[c>>2]|0;e=(c>>2>>>0)/3|0;q:{if(e>>>0<=J[b+80>>2]-d>>2>>>0){break q}if((c|0)<0){break c}e=e<<2;c=oa(e);J[b+76>>2]=c;J[b+72>>2]=c;J[b+80>>2]=c+e;if(!d){break q}na(d)}J[b- -64>>2]=0;if(!kg(b)){b=oa(32);H[b+29|0]=0;d=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);c=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=c;H[b+22|0]=c>>>8;H[b+23|0]=c>>>16;H[b+24|0]=c>>>24;H[b+25|0]=d;H[b+26|0]=d>>>8;H[b+27|0]=d>>>16;H[b+28|0]=d>>>24;d=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);c=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;H[b+20|0]=d;H[b+21|0]=d>>>8;H[b+22|0]=d>>>16;H[b+23|0]=d>>>24;d=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);c=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=c;H[b+9|0]=c>>>8;H[b+10|0]=c>>>16;H[b+11|0]=c>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);c=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=c;H[b+1|0]=c>>>8;H[b+2|0]=c>>>16;H[b+3|0]=c>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break d}g=0;c=b;r:{if(K[b+352|0]){break r}b=J[c+8>>2];e=J[b+12>>2]-J[b+8>>2]|0;f=e>>2;b=f-1|0;d=J[c+176>>2];h=J[c+172>>2];i=(d-h|0)/136|0;s:{if(b>>>0>i>>>0){cg(c+172|0,b-i|0);break s}if(b>>>0>=i>>>0){break s}i=h+P(b,136)|0;if((i|0)!=(d|0)){while(1){b=d-136|0;h=J[b+116>>2];if(h){J[d-16>>2]=h;na(h)}h=J[d-32>>2];if(h){J[d-28>>2]=h;na(h)}pc(d-132|0);d=b;if((b|0)!=(i|0)){continue}break}}J[c+176>>2]=i}if((e|0)==4|(e|0)<=0){break r}i=(f|0)<=1?1:f;d=0;t:{while(1){h=J[J[J[c+8>>2]+8>>2]+(d<<2)>>2];if(J[h+56>>2]){k=P(g,136);b=k+J[c+172>>2]|0;J[b>>2]=d;e=J[b+104>>2];J[b+108>>2]=e;f=J[c+12>>2];f=J[f+4>>2]-J[f>>2]|0;n=f>>2;u:{if(n>>>0<=J[b+112>>2]-e>>2>>>0){break u}if((f|0)<0){break t}f=oa(f);J[b+108>>2]=f;J[b+104>>2]=f;J[b+112>>2]=f+(n<<2);if(!e){break u}na(e)}b=k+J[c+172>>2]|0;J[b+128>>2]=0;lf(b+4|0,J[c+8>>2],J[c+12>>2],h);g=g+1|0}d=d+1|0;if((i|0)!=(d|0)){continue}break}break r}break c}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[l+31|0]=b;d=J[J[c+4>>2]+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){sa(d,J[d+4>>2],l+31|0,l+32|0);b=K[l+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];g=J[b>>2];b=J[b+4>>2];ig(j);e=0;J[l+24>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;d=0;v:{w:{x:{b=b-g|0;if((b|0)>0){b=b>>>2|0;p=b>>>0<=1?1:b;g=0;while(1){b=(g>>>0)/3|0;s=b>>>5<<2;t=1<<b;y:{if(J[s+J[m>>2]>>2]&t){break y}if(Fc(J[c+12>>2],b)){break y}J[l+8>>2]=0;b=hg(c,b,l+8|0);Ca(j,b);i=J[l+8>>2];if(b){h=-1;f=-1;k=-1;z:{if((i|0)==-1){break z}n=J[J[c+12>>2]>>2];b=n+(i<<2)|0;h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)!=-1){f=J[n+(h<<2)>>2]}h=J[b>>2];A:{if((i>>>0)%3|0){b=i-1|0;break A}b=i+2|0;k=-1;if((b|0)==-1){break z}}k=J[n+(b<<2)>>2]}b=J[c+84>>2];n=b+(h>>>3&536870908)|0;J[n>>2]=J[n>>2]|1<<h;h=b+(f>>>3&536870908)|0;J[h>>2]=J[h>>2]|1<<f;b=b+(k>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<k;b=J[c+100>>2];h=J[c+104>>2];B:{if(b>>>0<h>>>0){J[b>>2]=1;J[c+100>>2]=b+4;break B}k=b;b=J[c+96>>2];k=k-b|0;n=k>>2;f=n+1|0;if(f>>>0>=1073741824){break c}r=n<<2;h=h-b|0;n=h>>>1|0;f=h>>>0>=2147483644?1073741823:f>>>0<n>>>0?n:f;if(f){if(f>>>0>=1073741824){break x}h=oa(f<<2)}else{h=0}n=r+h|0;J[n>>2]=1;r=f<<2;f=ta(h,b,k);J[c+104>>2]=r+f;J[c+100>>2]=n+4;J[c+96>>2]=f;if(!b){break B}na(b)}b=s+J[m>>2]|0;J[b>>2]=t|J[b>>2];h=-1;if((i|0)!=-1){b=i+1|0;h=(b>>>0)%3|0?b:i-2|0}C:{if(e>>>0<o>>>0){J[e>>2]=h;e=e+4|0;J[l+20>>2]=e;break C}f=e-d>>2;b=f+1|0;if(b>>>0>=1073741824){break c}k=o-d|0;o=k>>>1|0;b=k>>>0>=2147483644?1073741823:b>>>0<o>>>0?o:b;if(b){if(b>>>0>=1073741824){break x}k=oa(b<<2)}else{k=0}f=k+(f<<2)|0;J[f>>2]=h;o=k+(b<<2)|0;b=f+4|0;if((d|0)!=(e|0)){while(1){f=f-4|0;e=e-4|0;J[f>>2]=J[e>>2];if((d|0)!=(e|0)){continue}break}}J[l+24>>2]=o;J[l+20>>2]=b;J[l+16>>2]=f;if(d){na(d)}d=f;e=b}if((i|0)==-1){break y}b=i+1|0;b=(b>>>0)%3|0?b:i-2|0;if((b|0)==-1){break y}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break y}f=(b>>>0)/3|0;if(J[J[m>>2]+(f>>>3&268435452)>>2]>>>f&1){break y}if(_f(c,b)){break y}break w}if((i|0)!=-1){b=i+1|0;b=(b>>>0)%3|0?b:i-2|0}else{b=-1}Hc(c,b,1);if(!_f(c,J[l+8>>2])){break w}}g=g+1|0;if((p|0)!=(g|0)){continue}break}}g=J[c+72>>2];b=J[c+76>>2];D:{if((g|0)==(b|0)){break D}f=b-4|0;if(g>>>0>=f>>>0){break D}while(1){i=J[g>>2];J[g>>2]=J[f>>2];J[f>>2]=i;f=f-4|0;g=g+4|0;if(f>>>0>g>>>0){continue}break}}fg(q,b,d,e);E:{if(J[c+172>>2]==J[c+176>>2]){break E}b=J[c+8>>2];e=J[b+100>>2];b=J[b+96>>2];H[l+8|0]=0;Na(m,(e-b|0)/12|0,l+8|0);g=J[c+72>>2];b=J[c+76>>2];if((g|0)==(b|0)){break E}while(1){eg(c,J[g>>2]);g=g+4|0;if((b|0)!=(g|0)){continue}break}}m=0;g=0;b=j+32|0;ya(j,b);if(!(!J[j+80>>2]|J[j+84>>2]<=0)){while(1){ya(J[j+80>>2]+(m<<5)|0,b);m=m+1|0;if((m|0)<J[j+84>>2]){continue}break}}m=J[j+136>>2];if((m|0)!=J[j+140>>2]){while(1){e=P(g,12);f=e+m|0;Aa(J[f+4>>2]-J[f>>2]>>2,b);m=J[j+136>>2];e=e+m|0;f=J[e+4>>2];e=J[e>>2];if((f|0)!=(e|0)){ee(e,f-e>>2,1,0,b);m=J[j+136>>2]}g=g+1|0;if(g>>>0<(J[j+140>>2]-m|0)/12>>>0){continue}break}}Aa(J[c+324>>2],J[J[c+4>>2]+44>>2]);Aa(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!dg(c)){b=oa(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);e=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=e;H[b+17|0]=e>>>8;H[b+18|0]=e>>>16;H[b+19|0]=e>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);e=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);e=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,28);na(b);break v}b=J[J[c+4>>2]+44>>2];e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){sa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break v}xa();B()}b=oa(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);e=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=e;H[b+25|0]=e>>>8;H[b+26|0]=e>>>16;H[b+27|0]=e>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);e=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=e;H[b+17|0]=e>>>8;H[b+18|0]=e>>>16;H[b+19|0]=e>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);e=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);e=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,32);na(b)}if(!d){break d}na(d)}ba=l+32|0;return}qa();B()}function el(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;i=ba-224|0;ba=i;J[a+8>>2]=e;C=a+32|0;h=J[C>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){Fa(C,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;s=f&1;d:{if((d|0)==2){d=g;break d}y=f&-2;d=g;while(1){j=(h<<2)+b|0;f=J[j+4>>2];j=J[j>>2];l=(j|0)<(d|0);d=l?j:d;t=(d|0)>(f|0);d=t?f:d;j=l?g:(g|0)<(j|0)?j:g;g=t?j:(f|0)>(j|0)?f:j;h=h+2|0;k=k+2|0;if((y|0)!=(k|0)){continue}break}}if(!s){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=g-d|0;d=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;if(!d&f>>>0>2147483646|d){break b}d=f+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];z=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=oa(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;pa(f,0,d);J[i+132>>2]=h;d=0}A=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0<e>>>0){Fa(A,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0<f>>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;s=0;if(d){break l}}d=e<<2;q=oa(d);s=pa(q,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}L=e&-2;M=e&1;_=e&-4;S=e&3;N=e-1|0;U=e<<2;O=a+112|0;y=d>>>2|0;Q=s-q|0;D=Q>>2;X=(Q-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{t=y-1|0;if(t>>>0<J[f+4>>2]-d>>2>>>0){f=0;j=0;k=J[d+(t<<2)>>2];p:{if((k|0)==-1){break p}o=1;d=k+2|0;j=(k>>>0)%3|0;u=j?k-1|0:d;E=1<<u;l=J[z>>2];G=l+(u>>>3&536870908)|0;h=0;I=(j|0)!=0|(d|0)!=-1;d=k;while(1){q:{if(J[l+(d>>>3&536870908)>>2]>>>d&1){break q}j=J[J[J[z+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break q}n=J[Z>>2];g=J[z+28>>2];m=J[n+(J[g+(j<<2)>>2]<<2)>>2];if((m|0)>=(t|0)){break q}p=j+1|0;p=J[n+(J[g+(((p>>>0)%3|0?p:j-2|0)<<2)>>2]<<2)>>2];if((p|0)>=(t|0)){break q}g=J[n+(J[g+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(t|0)){break q}r:{if(!e){break r}j=J[(i+144|0)+P(h,12)>>2];n=P(e,g);p=P(e,p);x=P(e,m);g=0;m=0;if(N){while(1){J[j+(g<<2)>>2]=(J[(g+n<<2)+b>>2]+J[(g+p<<2)+b>>2]|0)-J[(g+x<<2)+b>>2];w=g|1;J[j+(w<<2)>>2]=(J[(n+w<<2)+b>>2]+J[(p+w<<2)+b>>2]|0)-J[(x+w<<2)+b>>2];g=g+2|0;m=m+2|0;if((L|0)!=(m|0)){continue}break}}if(!M){break r}J[j+(g<<2)>>2]=(J[(g+n<<2)+b>>2]+J[(g+p<<2)+b>>2]|0)-J[(g+x<<2)+b>>2]}j=4;h=h+1|0;if((h|0)==4){break p}}s:{if(o&1){g=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:g;if((j|0)==-1|J[l+(j>>>3&536870908)>>2]>>>j&1){break s}j=J[J[J[z+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break s}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break s}t:{if((d>>>0)%3|0){g=d-1|0;break t}g=d+2|0;d=-1;if((g|0)==-1){break s}}d=-1;if(J[l+(g>>>3&536870908)>>2]>>>g&1){break s}j=J[J[J[z+64>>2]+12>>2]+(g<<2)>>2];if((j|0)==-1){break s}if((j>>>0)%3|0){d=j-1|0;break s}d=j+2|0}if((d|0)==(k|0)){j=h;break p}if((d|0)==-1&o){if(!I){j=h;break p}if(E&J[G>>2]){j=h;break p}d=J[J[J[z+64>>2]+12>>2]+(u<<2)>>2];if((d|0)==-1){j=h;break p}o=0;d=(d>>>0)%3|0?d-1|0:d+2|0}j=h;if((d|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;I=P(e,t)<<2;x=I+b|0;k=(P(y-2|0,e)<<2)+b|0;l=J[A>>2];d=0;if(e){while(1){g=f<<2;h=J[g+k>>2]-J[g+x>>2]|0;J[g+q>>2]=h;J[g+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=d;d=h>>31;d=g+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Db(f,O,l,e);l=Cb(f);h=J[f+12>>2];f=J[f+16>>2];h=(((h-f|0)+1|0)/64|0)+f<<3;n=f<<3;f=h+n|0;h=(h>>31)+(n>>31)|0;g=ca+(f>>>0<n>>>0?h+1|0:h)|0;h=f;f=f+l|0;h=h>>>0>f>>>0?g+1|0:g;E=(j|0)<=0;if(!E){o=(j<<3)-8|0;g=o+(i+48|0)|0;n=g;l=J[g>>2];g=J[g+4>>2];l=j+l|0;g=l>>>0<j>>>0?g+1|0:g;J[n>>2]=l;J[n+4>>2]=g;v=W(Eb(l,J[o+(i+80|0)>>2])*(+(l>>>0)+ +(g|0)*4294967296));u:{if(R(v)<0x8000000000000000){l=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;g=~~v>>>0;break u}l=-2147483648;g=0}f=f+g|0;h=f}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=f;J[i+12>>2]=d;tc(aa,k,k+U|0);bb($,q,s);v:{w:{x:{if(E){break x}n=(i+124|0)+j|0;l=n-1|0;Y=j<<3;d=Y-8|0;G=d+(i+48|0)|0;da=d+(i+80|0)|0;o=1;w=0;while(1){d=i+124|0;pa(d,1,j);w=w+1|0;pa(d,0,w);y:{z:while(1){if(e){pa(J[i+128>>2],0,U)}m=0;d=J[i+128>>2];u=0;while(1){if(!K[(i+124|0)+m|0]){A:{if(!e){break A}f=J[(i+144|0)+P(m,12)>>2];h=0;g=0;k=0;if(e>>>0>3){while(1){p=g<<2;r=p+d|0;J[r>>2]=J[r>>2]+J[f+p>>2];r=p|4;F=r+d|0;J[F>>2]=J[F>>2]+J[f+r>>2];r=p|8;F=r+d|0;J[F>>2]=J[F>>2]+J[f+r>>2];p=p|12;r=p+d|0;J[r>>2]=J[r>>2]+J[f+p>>2];g=g+4|0;k=k+4|0;if((_|0)!=(k|0)){continue}break}}if(!S){break A}while(1){k=g<<2;p=k+d|0;J[p>>2]=J[p>>2]+J[f+k>>2];g=g+1|0;h=h+1|0;if((S|0)!=(h|0)){continue}break}}u=1<<m|u}m=m+1|0;if((m|0)!=(j|0)){continue}break}f=J[i+128>>2];B:{C:{D:{if(e){g=0;d=0;if(N){break D}break C}k=J[A>>2];h=0;break B}while(1){h=g<<2;k=h+f|0;J[k>>2]=J[k>>2]/(o|0);h=(h|4)+f|0;J[h>>2]=J[h>>2]/(o|0);g=g+2|0;d=d+2|0;if((L|0)!=(d|0)){continue}break}}if(M){d=(g<<2)+f|0;J[d>>2]=J[d>>2]/(o|0)}k=J[A>>2];f=J[i+128>>2];d=0;h=0;if(!e){break B}while(1){m=d<<2;g=J[m+f>>2]-J[m+x>>2]|0;J[m+q>>2]=g;J[k+m>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;m=h;h=g>>31;h=m+((h^g)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=i+200|0;Db(d,O,k,e);k=Cb(d);g=J[d+12>>2];d=J[d+16>>2];g=(((g-d|0)+1|0)/64|0)+d<<3;m=d<<3;d=g+m|0;d=d+k|0;k=J[G+4>>2];g=J[G>>2];v=W(Eb(g,J[da>>2]+o|0)*(+(g>>>0)+ +(k|0)*4294967296));E:{if(R(v)<0x8000000000000000){g=~~v>>>0;break E}g=0}d=g+d|0;g=J[i+8>>2];if(!((d|0)>=(g|0)&((d|0)>(g|0)|(h|0)>=J[i+12>>2]))){J[i+20>>2]=o;H[i+16|0]=u;J[i+8>>2]=d;J[i+12>>2]=h;k=J[i+132>>2];m=k-f|0;g=m>>2;d=J[i+32>>2];h=J[i+24>>2];F:{if(g>>>0<=d-h>>2>>>0){m=J[i+28>>2]-h|0;d=m+f|0;u=m>>2;m=u>>>0<g>>>0?d:k;p=m-f|0;if((f|0)!=(m|0)){ta(h,f,p)}if(g>>>0>u>>>0){g=J[i+28>>2];if((k|0)==(m|0)){break F}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((k|0)!=(d|0)){continue}break}break F}g=h+p|0;break F}if(h){J[i+28>>2]=h;na(h);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((m|0)<0){break w}h=d>>>1|0;d=d>>>0>=2147483644?1073741823:g>>>0<h>>>0?h:g;if(d>>>0>=1073741824){break w}d=d<<2;g=oa(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((f|0)==(k|0)){break F}d=(m-4&-4)+4|0;g=ua(g,f,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];G:{if(d-f>>2>>>0>=D>>>0){h=J[i+40>>2]-f|0;d=h+q|0;k=h>>2;h=k>>>0<D>>>0?d:s;g=h-q|0;if((h|0)!=(q|0)){ta(f,q,g)}if(k>>>0<D>>>0){g=J[i+40>>2];if((h|0)==(s|0)){break G}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((s|0)!=(d|0)){continue}break}break G}g=f+g|0;break G}if(f){J[i+40>>2]=f;na(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((Q|0)<0){break v}f=d>>>1|0;d=d>>>0>=2147483644?1073741823:f>>>0>D>>>0?f:D;if(d>>>0>=1073741824){break v}d=d<<2;g=oa(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((q|0)==(s|0)){break G}g=ua(g,q,X)+X|0}J[i+40>>2]=g}if((l|0)==(i+124|0)){break y}g=K[l|0];d=-1;while(1){k=g&255;f=d-1|0;h=f+n|0;g=K[h|0];if(k>>>0>g>>>0){f=n;while(1){f=f-1|0;k=K[f|0];if(k>>>0<=g>>>0){continue}break}H[h|0]=k;H[f|0]=g;if((d|0)==-1){continue z}g=d+n|0;d=l;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue z}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=l;if(f>>>0>=d>>>0){break y}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}o=o+1|0;if((j|0)!=(w|0)){continue}break}if((j|0)<=0){break x}h=J[i+20>>2];g=h;d=i+Y|0;f=g+J[d+72>>2]|0;h=J[d+76>>2]+(g>>31)|0;J[d+72>>2]=f;J[d+76>>2]=f>>>0<g>>>0?h+1|0:h}if(!e){break n}d=J[A>>2];g=0;f=J[i+36>>2];k=0;if(!N){break o}while(1){l=g<<2;h=J[l+f>>2];J[d+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;l=l|4;h=J[l+f>>2];J[d+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=g+2|0;k=k+2|0;if((L|0)!=(k|0)){continue}break}break o}qa();B()}qa();B()}ra();B()}if(!M){break n}h=g<<2;f=J[h+f>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(i+200|0,O,J[A>>2],e);H:{if(E){break H}g=P(j,12)+a|0;d=0;while(1){I:{k=J[g+56>>2];l=k<<5;f=J[g+52>>2];J:{if(!(K[i+16|0]>>>d&1)){h=f;K:{if((f|0)!=(l|0)){break K}if((f+1|0)<0){break I}L:{if(f>>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;l=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=l>>>0){break K}if((l|0)>=0){break L}break I}l=2147483647;h=-1;if(f>>>0>=2147483647){break K}}l=(l-1>>>5|0)+1|0;h=oa(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;M:{N:{if(!f){break N}n=f>>>5|0;if(f>>>0>=32){ta(h,k,n<<2)}o=f&31;if(!o){break N}n=n<<2;m=n+h|0;o=-1>>>32-o|0;J[m>>2]=J[m>>2]&(o^-1)|o&J[k+n>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;break M}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break K}}na(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<<h;break J}h=f;O:{if((f|0)!=(l|0)){break O}if((f+1|0)<0){break I}P:{if(f>>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;l=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=l>>>0){break O}if((l|0)<0){break I}break P}l=2147483647;h=-1;if(f>>>0>=2147483647){break O}}l=(l-1>>>5|0)+1|0;h=oa(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;Q:{R:{if(!f){break R}n=f>>>5|0;if(f>>>0>=32){ta(h,k,n<<2)}o=f&31;if(!o){break R}n=n<<2;m=n+h|0;o=-1>>>32-o|0;J[m>>2]=J[m>>2]&(o^-1)|o&J[k+n>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;break Q}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break O}}na(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;k=J[f>>2];ea=f,fa=Ll(h)&k,J[ea>>2]=fa}d=d+1|0;if((j|0)!=(d|0)){continue}break H}break}qa();B()}g=J[a+8>>2];if((g|0)>0){n=c+I|0;d=J[C>>2];l=0;k=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){f=g<<2;j=J[f+k>>2];o=J[a+16>>2];S:{if((j|0)>(o|0)){J[f+h>>2]=o;break S}f=f+h|0;o=J[a+12>>2];if((o|0)>(j|0)){J[f>>2]=o;break S}J[f>>2]=j}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}j=l<<2;f=j+n|0;j=J[j+x>>2]-J[h+j>>2]|0;J[f>>2]=j;T:{if((j|0)<J[a+28>>2]){g=j+J[a+20>>2]|0}else{if((j|0)<=J[a+24>>2]){break T}g=j-J[a+20>>2]|0}J[f>>2]=g}k=h;g=J[a+8>>2];l=l+1|0;if((g|0)>(l|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;na(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;na(d)}d=(y|0)>2;y=t;if(d){continue}break}break h}qa();B()}if((e|0)>0){pa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];l=0;k=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){e=g<<2;f=J[e+k>>2];j=J[a+16>>2];U:{if((f|0)>(j|0)){J[e+h>>2]=j;break U}e=e+h|0;j=J[a+12>>2];if((j|0)>(f|0)){J[e>>2]=j;break U}J[e>>2]=f}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}f=l<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;V:{if((f|0)<J[a+28>>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break V}f=f-J[a+20>>2]|0}J[e>>2]=f}k=h;g=J[a+8>>2];l=l+1|0;if((g|0)>(l|0)){continue}break}}if(q){na(q)}a=J[i+128>>2];if(a){J[i+132>>2]=a;na(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;na(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;na(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;na(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;na(a)}ba=i+224|0;return 1}function Wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;i=ba-224|0;ba=i;J[a+8>>2]=e;z=a+32|0;h=J[z>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){Fa(z,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;w=f&1;d:{if((d|0)==2){d=g;break d}u=f&-2;d=g;while(1){j=(h<<2)+b|0;f=J[j+4>>2];j=J[j>>2];l=(j|0)<(d|0);d=l?j:d;m=(d|0)>(f|0);d=m?f:d;j=l?g:(g|0)<(j|0)?j:g;g=m?j:(f|0)>(j|0)?f:j;h=h+2|0;k=k+2|0;if((u|0)!=(k|0)){continue}break}}if(!w){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=g-d|0;d=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;if(!d&f>>>0>2147483646|d){break b}d=f+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];N=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=oa(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;pa(f,0,d);J[i+132>>2]=h;d=0}x=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0<e>>>0){Fa(x,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0<f>>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;u=0;if(d){break l}}d=e<<2;r=oa(d);u=pa(r,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}F=e&-2;G=e&1;_=e&-4;O=e&3;I=e-1|0;Q=e<<2;L=a+112|0;E=d>>>2|0;M=u-r|0;A=M>>2;S=(M-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{w=E-1|0;if(w>>>0<J[f+4>>2]-d>>2>>>0){f=0;l=0;d=J[d+(w<<2)>>2];p:{if((d|0)==-1){break p}m=J[N+12>>2];h=d+2|0;l=(d>>>0)%3|0;y=m+((l?d-1|0:h)<<2)|0;j=0;C=(l|0)!=0|(h|0)!=-1;q=1;h=d;while(1){l=J[m+(h<<2)>>2];q:{if((l|0)==-1){break q}k=-1;p=J[Z>>2];n=J[N>>2];g=p+(J[n+(l<<2)>>2]<<2)|0;o=l+1|0;o=(o>>>0)%3|0?o:l-2|0;if((o|0)!=-1){k=J[n+(o<<2)>>2]}o=J[g>>2];r:{s:{if((l>>>0)%3|0){g=l-1|0;break s}g=l+2|0;s=-1;if((g|0)==-1){break r}}s=J[n+(g<<2)>>2]}if((o|0)>=(w|0)){break q}g=J[p+(k<<2)>>2];if((g|0)>=(w|0)){break q}k=J[p+(s<<2)>>2];if((k|0)>=(w|0)){break q}l=J[(i+144|0)+P(j,12)>>2];t:{if(!e){break t}k=P(e,k);n=P(e,g);o=P(e,o);g=0;p=0;if(I){while(1){J[l+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+o<<2)+b>>2];s=g|1;J[l+(s<<2)>>2]=(J[(k+s<<2)+b>>2]+J[(n+s<<2)+b>>2]|0)-J[(o+s<<2)+b>>2];g=g+2|0;p=p+2|0;if((F|0)!=(p|0)){continue}break}}if(!G){break t}J[l+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+o<<2)+b>>2]}l=4;j=j+1|0;if((j|0)==4){break p}}u:{if(q&1){g=h+1|0;h=(g>>>0)%3|0?g:h-2|0;l=-1;if((h|0)==-1){break u}h=J[m+(h<<2)>>2];l=-1;if((h|0)==-1){break u}l=h+1|0;l=(l>>>0)%3|0?l:h-2|0;break u}v:{if((h>>>0)%3|0){g=h-1|0;break v}g=h+2|0;l=-1;if((g|0)==-1){break u}}h=J[m+(g<<2)>>2];l=-1;if((h|0)==-1){break u}l=h-1|0;if((h>>>0)%3|0){break u}l=h+2|0}h=l;if((d|0)==(h|0)){l=j;break p}if((h|0)==-1&q){if(!C){l=j;break p}h=J[y>>2];if((h|0)==-1){l=j;break p}q=0;h=(h>>>0)%3|0?h-1|0:h+2|0}l=j;if((h|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;U=P(e,w)<<2;s=U+b|0;k=(P(E-2|0,e)<<2)+b|0;g=J[x>>2];d=0;if(e){while(1){j=f<<2;h=J[j+k>>2]-J[j+s>>2]|0;J[j+r>>2]=h;J[g+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=d;d=h>>31;d=j+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Db(f,L,g,e);j=Cb(f);h=J[f+12>>2];f=J[f+16>>2];h=(((h-f|0)+1|0)/64|0)+f<<3;m=f<<3;f=h+m|0;h=(h>>31)+(m>>31)|0;g=ca+(f>>>0<m>>>0?h+1|0:h)|0;h=f;f=f+j|0;h=h>>>0>f>>>0?g+1|0:g;C=(l|0)<=0;if(!C){n=(l<<3)-8|0;j=n+(i+48|0)|0;m=j;g=J[j>>2];j=J[j+4>>2];g=g+l|0;j=g>>>0<l>>>0?j+1|0:j;J[m>>2]=g;J[m+4>>2]=j;v=W(Eb(g,J[n+(i+80|0)>>2])*(+(g>>>0)+ +(j|0)*4294967296));w:{if(R(v)<0x8000000000000000){g=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;j=~~v>>>0;break w}g=-2147483648;j=0}f=f+j|0;h=f}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=f;J[i+12>>2]=d;tc(aa,k,k+Q|0);bb($,r,u);x:{y:{z:{if(C){break z}n=(i+124|0)+l|0;m=n-1|0;X=l<<3;d=X-8|0;Y=d+(i+48|0)|0;da=d+(i+80|0)|0;q=1;y=0;while(1){d=i+124|0;pa(d,1,l);y=y+1|0;pa(d,0,y);A:{B:while(1){if(e){pa(J[i+128>>2],0,Q)}p=0;d=J[i+128>>2];j=0;while(1){if(!K[(i+124|0)+p|0]){C:{if(!e){break C}f=J[(i+144|0)+P(p,12)>>2];h=0;g=0;k=0;if(e>>>0>3){while(1){o=g<<2;t=o+d|0;J[t>>2]=J[t>>2]+J[f+o>>2];t=o|4;D=t+d|0;J[D>>2]=J[D>>2]+J[f+t>>2];t=o|8;D=t+d|0;J[D>>2]=J[D>>2]+J[f+t>>2];o=o|12;t=o+d|0;J[t>>2]=J[t>>2]+J[f+o>>2];g=g+4|0;k=k+4|0;if((_|0)!=(k|0)){continue}break}}if(!O){break C}while(1){k=g<<2;o=k+d|0;J[o>>2]=J[o>>2]+J[f+k>>2];g=g+1|0;h=h+1|0;if((O|0)!=(h|0)){continue}break}}j=1<<p|j}p=p+1|0;if((p|0)!=(l|0)){continue}break}f=J[i+128>>2];D:{E:{F:{if(e){g=0;d=0;if(I){break F}break E}k=J[x>>2];h=0;break D}while(1){h=g<<2;k=h+f|0;J[k>>2]=J[k>>2]/(q|0);h=(h|4)+f|0;J[h>>2]=J[h>>2]/(q|0);g=g+2|0;d=d+2|0;if((F|0)!=(d|0)){continue}break}}if(G){d=(g<<2)+f|0;J[d>>2]=J[d>>2]/(q|0)}k=J[x>>2];f=J[i+128>>2];d=0;h=0;if(!e){break D}while(1){p=d<<2;g=J[p+f>>2]-J[p+s>>2]|0;J[p+r>>2]=g;J[k+p>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;o=h;h=g>>31;h=o+((h^g)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=i+200|0;Db(d,L,k,e);k=Cb(d);g=J[d+12>>2];d=J[d+16>>2];g=(((g-d|0)+1|0)/64|0)+d<<3;p=d<<3;d=g+p|0;d=d+k|0;k=J[Y+4>>2];g=J[Y>>2];v=W(Eb(g,J[da>>2]+q|0)*(+(g>>>0)+ +(k|0)*4294967296));G:{if(R(v)<0x8000000000000000){g=~~v>>>0;break G}g=0}d=g+d|0;g=J[i+8>>2];if(!((d|0)>=(g|0)&((d|0)>(g|0)|(h|0)>=J[i+12>>2]))){J[i+20>>2]=q;H[i+16|0]=j;J[i+8>>2]=d;J[i+12>>2]=h;j=J[i+132>>2];k=j-f|0;g=k>>2;d=J[i+32>>2];h=J[i+24>>2];H:{if(g>>>0<=d-h>>2>>>0){k=J[i+28>>2]-h|0;d=k+f|0;o=k>>2;k=o>>>0<g>>>0?d:j;p=k-f|0;if((f|0)!=(k|0)){ta(h,f,p)}if(g>>>0>o>>>0){g=J[i+28>>2];if((j|0)==(k|0)){break H}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}break H}g=h+p|0;break H}if(h){J[i+28>>2]=h;na(h);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((k|0)<0){break y}h=d>>>1|0;d=d>>>0>=2147483644?1073741823:g>>>0<h>>>0?h:g;if(d>>>0>=1073741824){break y}d=d<<2;g=oa(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((f|0)==(j|0)){break H}d=(k-4&-4)+4|0;g=ua(g,f,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];I:{if(d-f>>2>>>0>=A>>>0){h=J[i+40>>2]-f|0;d=h+r|0;g=h>>2;h=g>>>0<A>>>0?d:u;j=h-r|0;if((h|0)!=(r|0)){ta(f,r,j)}if(g>>>0<A>>>0){g=J[i+40>>2];if((h|0)==(u|0)){break I}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((u|0)!=(d|0)){continue}break}break I}g=f+j|0;break I}if(f){J[i+40>>2]=f;na(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((M|0)<0){break x}f=d>>>1|0;d=d>>>0>=2147483644?1073741823:f>>>0>A>>>0?f:A;if(d>>>0>=1073741824){break x}d=d<<2;g=oa(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((r|0)==(u|0)){break I}g=ua(g,r,S)+S|0}J[i+40>>2]=g}if((m|0)==(i+124|0)){break A}g=K[m|0];d=-1;while(1){j=g&255;f=d-1|0;h=f+n|0;g=K[h|0];if(j>>>0>g>>>0){f=n;while(1){f=f-1|0;j=K[f|0];if(j>>>0<=g>>>0){continue}break}H[h|0]=j;H[f|0]=g;if((d|0)==-1){continue B}g=d+n|0;d=m;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue B}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=m;if(f>>>0>=d>>>0){break A}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}q=q+1|0;if((l|0)!=(y|0)){continue}break}if((l|0)<=0){break z}h=J[i+20>>2];j=h;d=i+X|0;f=h+J[d+72>>2]|0;h=J[d+76>>2]+(h>>31)|0;J[d+72>>2]=f;J[d+76>>2]=f>>>0<j>>>0?h+1|0:h}if(!e){break n}d=J[x>>2];g=0;f=J[i+36>>2];k=0;if(!I){break o}while(1){j=g<<2;h=J[j+f>>2];J[d+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=j|4;h=J[j+f>>2];J[d+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=g+2|0;k=k+2|0;if((F|0)!=(k|0)){continue}break}break o}qa();B()}qa();B()}ra();B()}if(!G){break n}h=g<<2;f=J[h+f>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(i+200|0,L,J[x>>2],e);J:{if(C){break J}g=P(l,12)+a|0;d=0;while(1){K:{j=J[g+56>>2];k=j<<5;f=J[g+52>>2];L:{if(!(K[i+16|0]>>>d&1)){h=f;M:{if((f|0)!=(k|0)){break M}if((f+1|0)<0){break K}N:{if(f>>>0<=1073741822){j=j<<6;k=(f&-32)+32|0;j=j>>>0>k>>>0?j:k;h=f;if(f>>>0>=j>>>0){break M}if((j|0)>=0){break N}break K}j=2147483647;h=-1;if(f>>>0>=2147483647){break M}}k=(j-1>>>5|0)+1|0;h=oa(k<<2);j=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;O:{P:{if(!f){break P}m=f>>>5|0;if(f>>>0>=32){ta(h,j,m<<2)}n=f&31;if(!n){break P}m=m<<2;q=m+h|0;n=-1>>>32-n|0;J[q>>2]=J[q>>2]&(n^-1)|n&J[j+m>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;break O}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;h=f;if(!j){break M}}na(j);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<<h;break L}h=f;Q:{if((f|0)!=(k|0)){break Q}if((f+1|0)<0){break K}R:{if(f>>>0<=1073741822){j=j<<6;k=(f&-32)+32|0;j=j>>>0>k>>>0?j:k;h=f;if(f>>>0>=j>>>0){break Q}if((j|0)<0){break K}break R}j=2147483647;h=-1;if(f>>>0>=2147483647){break Q}}k=(j-1>>>5|0)+1|0;h=oa(k<<2);j=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;S:{T:{if(!f){break T}m=f>>>5|0;if(f>>>0>=32){ta(h,j,m<<2)}n=f&31;if(!n){break T}m=m<<2;q=m+h|0;n=-1>>>32-n|0;J[q>>2]=J[q>>2]&(n^-1)|n&J[j+m>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;break S}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;h=f;if(!j){break Q}}na(j);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;j=J[f>>2];ea=f,fa=Ll(h)&j,J[ea>>2]=fa}d=d+1|0;if((l|0)!=(d|0)){continue}break J}break}qa();B()}g=J[a+8>>2];if((g|0)>0){m=c+U|0;d=J[z>>2];j=0;k=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[z>>2];g=0;while(1){f=g<<2;l=J[f+k>>2];n=J[a+16>>2];U:{if((l|0)>(n|0)){J[f+h>>2]=n;break U}f=f+h|0;n=J[a+12>>2];if((n|0)>(l|0)){J[f>>2]=n;break U}J[f>>2]=l}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}l=j<<2;f=l+m|0;l=J[l+s>>2]-J[h+l>>2]|0;J[f>>2]=l;V:{if((l|0)<J[a+28>>2]){g=l+J[a+20>>2]|0}else{if((l|0)<=J[a+24>>2]){break V}g=l-J[a+20>>2]|0}J[f>>2]=g}k=h;g=J[a+8>>2];j=j+1|0;if((g|0)>(j|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;na(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;na(d)}d=(E|0)>2;E=w;if(d){continue}break}break h}qa();B()}if((e|0)>0){pa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];j=0;k=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[z>>2];g=0;while(1){e=g<<2;f=J[e+k>>2];l=J[a+16>>2];W:{if((f|0)>(l|0)){J[e+h>>2]=l;break W}e=e+h|0;l=J[a+12>>2];if((l|0)>(f|0)){J[e>>2]=l;break W}J[e>>2]=f}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}f=j<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;X:{if((f|0)<J[a+28>>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break X}f=f-J[a+20>>2]|0}J[e>>2]=f}k=h;g=J[a+8>>2];j=j+1|0;if((g|0)>(j|0)){continue}break}}if(r){na(r)}a=J[i+128>>2];if(a){J[i+132>>2]=a;na(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;na(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;na(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;na(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;na(a)}ba=i+224|0;return 1}function Fk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;g=ba-240|0;ba=g;Z=J[a+36>>2];C=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);i=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-i>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+i;break a}Fa(g+144|12,e-d|0)}d=J[g+168>>2];f=J[g+172>>2]-d>>2;b:{if(f>>>0>=e>>>0){if(e>>>0>=f>>>0){break b}J[g+172>>2]=d+(e<<2);break b}Fa(g+168|0,e-f|0)}c:{d:{d=J[g+180>>2];f=J[g+184>>2]-d>>2;e:{f:{if(f>>>0>=e>>>0){if(e>>>0<f>>>0){J[g+184>>2]=d+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-f|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}j=e<<2;f=oa(j);J[g+128>>2]=f;d=f+j|0;J[g+136>>2]=d;pa(f,0,j);J[g+132>>2]=d;d=0}D=a+136|0;f=J[a+136>>2];j=J[a+140>>2]-f>>2;g:{h:{if(j>>>0<e>>>0){Fa(D,e-j|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0<j>>>0){J[a+140>>2]=f+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;f=0;if(d){break g}}d=e<<2;t=oa(d);f=pa(t,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}M=e&-2;N=e&1;_=e&-4;U=e&3;O=e-1|0;X=e<<2;$=a+8|0;Q=a+96|0;G=d>>>2|0;E=f;S=f-t|0;F=S>>2;Y=(S-4&-4)+4|0;aa=g+36|0;da=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{z=G-1|0;if(z>>>0<J[d+4>>2]-f>>2>>>0){d=0;j=0;l=J[f+(z<<2)>>2];k:{if((l|0)==-1){break k}u=1;h=l+2|0;j=(l>>>0)%3|0;A=j?l-1|0:h;r=1<<A;s=J[C>>2];q=s+(A>>>3&536870908)|0;f=0;n=(j|0)!=0|(h|0)!=-1;h=l;while(1){l:{if(J[s+(h>>>3&536870908)>>2]>>>h&1){break l}o=J[J[J[C+64>>2]+12>>2]+(h<<2)>>2];if((o|0)==-1){break l}w=J[Z>>2];x=J[C+28>>2];k=J[w+(J[x+(o<<2)>>2]<<2)>>2];if((k|0)>=(z|0)){break l}j=o+1|0;m=J[w+(J[x+(((j>>>0)%3|0?j:o-2|0)<<2)>>2]<<2)>>2];if((m|0)>=(z|0)){break l}j=J[w+(J[x+(o+((o>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((j|0)>=(z|0)){break l}m:{if(!e){break m}o=J[(g+144|0)+P(f,12)>>2];x=P(e,j);w=P(e,m);m=P(e,k);i=0;p=0;if(O){while(1){J[o+(i<<2)>>2]=(J[(i+x<<2)+b>>2]+J[(i+w<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];j=i|1;J[o+(j<<2)>>2]=(J[(j+x<<2)+b>>2]+J[(j+w<<2)+b>>2]|0)-J[(j+m<<2)+b>>2];i=i+2|0;p=p+2|0;if((M|0)!=(p|0)){continue}break}}if(!N){break m}J[o+(i<<2)>>2]=(J[(i+x<<2)+b>>2]+J[(i+w<<2)+b>>2]|0)-J[(i+m<<2)+b>>2]}j=4;f=f+1|0;if((f|0)==4){break k}}n:{if(u&1){j=h-2|0;m=h+1|0;h=-1;j=(m>>>0)%3|0?m:j;if((j|0)==-1|J[s+(j>>>3&536870908)>>2]>>>j&1){break n}m=J[J[J[C+64>>2]+12>>2]+(j<<2)>>2];if((m|0)==-1){break n}j=m+1|0;h=(j>>>0)%3|0?j:m-2|0;break n}o:{if((h>>>0)%3|0){i=h-1|0;break o}i=h+2|0;h=-1;if((i|0)==-1){break n}}h=-1;if(J[s+(i>>>3&536870908)>>2]>>>i&1){break n}j=J[J[J[C+64>>2]+12>>2]+(i<<2)>>2];if((j|0)==-1){break n}if((j>>>0)%3|0){h=j-1|0;break n}h=j+2|0}if((h|0)==(l|0)){j=f;break k}if((h|0)==-1&u){if(!n){j=f;break k}if(r&J[q>>2]){j=f;break k}j=J[J[J[C+64>>2]+12>>2]+(A<<2)>>2];if((j|0)==-1){j=f;break k}u=0;h=(j>>>0)%3|0?j-1|0:j+2|0}j=f;if((h|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;w=P(e,z)<<2;I=w+b|0;q=(P(G-2|0,e)<<2)+b|0;l=J[D>>2];h=0;if(e){while(1){f=d<<2;m=J[f+q>>2]-J[f+I>>2]|0;J[f+t>>2]=m;J[f+l>>2]=(m|0)<0?(m^-1)<<1|1:m<<1;f=m>>31;h=((f^m)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Db(d,Q,l,e);m=Cb(d);f=J[d+12>>2];d=J[d+16>>2];f=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;n=f+d|0;f=(f>>31)+(d>>31)|0;k=ca+(d>>>0>n>>>0?f+1|0:f)|0;f=m+n|0;d=f>>>0<n>>>0?k+1|0:k;A=(j|0)<=0;if(!A){k=(j<<3)-8|0;l=k+(g+48|0)|0;n=l;m=J[l>>2];l=J[l+4>>2];m=j+m|0;l=m>>>0<j>>>0?l+1|0:l;J[n>>2]=m;J[n+4>>2]=l;y=W(Eb(m,J[k+(g+80|0)>>2])*(+(m>>>0)+ +(l|0)*4294967296));p:{if(R(y)<0x8000000000000000){m=~~y>>>0;l=R(y)>=1?~~(y>0?T(V(y*2.3283064365386963e-10),4294967295):W((y-+(~~y>>>0>>>0))*2.3283064365386963e-10))>>>0:0;break p}m=0;l=-2147483648}f=f+m|0;d=f}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=f;J[g+12>>2]=h;tc(da,q,q+X|0);bb(aa,t,E);q:{r:{s:{if(A){break s}m=(g+124|0)+j|0;l=m-1|0;r=j<<3;d=r-8|0;x=d+(g+48|0)|0;q=d+(g+80|0)|0;u=1;L=0;while(1){d=g+124|0;pa(d,1,j);L=L+1|0;pa(d,0,L);t:{u:while(1){if(e){pa(J[g+128>>2],0,X)}p=0;o=J[g+128>>2];s=0;while(1){if(!K[(g+124|0)+p|0]){v:{if(!e){break v}n=J[(g+144|0)+P(p,12)>>2];f=0;i=0;v=0;if(e>>>0>3){while(1){k=i<<2;d=k+o|0;J[d>>2]=J[d>>2]+J[k+n>>2];h=k|4;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];h=k|8;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];h=k|12;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];i=i+4|0;v=v+4|0;if((_|0)!=(v|0)){continue}break}}if(!U){break v}while(1){h=i<<2;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];i=i+1|0;f=f+1|0;if((U|0)!=(f|0)){continue}break}}s=1<<p|s}p=p+1|0;if((p|0)!=(j|0)){continue}break}d=J[g+128>>2];w:{x:{y:{if(e){i=0;h=0;if(O){break y}break x}v=J[D>>2];f=0;break w}while(1){k=i<<2;f=k+d|0;J[f>>2]=J[f>>2]/(u|0);f=(k|4)+d|0;J[f>>2]=J[f>>2]/(u|0);i=i+2|0;h=h+2|0;if((M|0)!=(h|0)){continue}break}}if(N){d=(i<<2)+d|0;J[d>>2]=J[d>>2]/(u|0)}v=J[D>>2];d=J[g+128>>2];h=0;f=0;if(!e){break w}while(1){k=h<<2;n=J[k+d>>2]-J[k+I>>2]|0;J[k+t>>2]=n;J[k+v>>2]=(n|0)<0?(n^-1)<<1|1:n<<1;i=f;f=n>>31;f=i+((f^n)-f|0)|0;h=h+1|0;if((h|0)!=(e|0)){continue}break}}h=g+200|0;Db(h,Q,v,e);n=Cb(h);i=J[h+12>>2];h=J[h+16>>2];k=(((i-h|0)+1|0)/64|0)+h<<3;h=h<<3;o=k+h|0;h=n+o|0;k=J[x+4>>2];n=J[x>>2];y=W(Eb(n,J[q>>2]+u|0)*(+(n>>>0)+ +(k|0)*4294967296));z:{if(R(y)<0x8000000000000000){i=~~y>>>0;break z}i=0}k=i+h|0;h=J[g+8>>2];if(!((k|0)>=(h|0)&((h|0)<(k|0)|(f|0)>=J[g+12>>2]))){J[g+20>>2]=u;H[g+16|0]=s;J[g+8>>2]=k;J[g+12>>2]=f;s=J[g+132>>2];k=s-d|0;o=k>>2;h=J[g+32>>2];p=J[g+24>>2];A:{if(o>>>0<=h-p>>2>>>0){f=J[g+28>>2]-p|0;h=f+d|0;f=f>>2;n=f>>>0<o>>>0?h:s;k=n-d|0;if((d|0)!=(n|0)){ta(p,d,k)}if(f>>>0<o>>>0){i=J[g+28>>2];if((n|0)==(s|0)){break A}while(1){J[i>>2]=J[h>>2];i=i+4|0;h=h+4|0;if((s|0)!=(h|0)){continue}break}break A}i=k+p|0;break A}if(p){J[g+28>>2]=p;na(p);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;h=0}if((k|0)<0){break r}f=h>>>1|0;f=h>>>0>=2147483644?1073741823:f>>>0>o>>>0?f:o;if(f>>>0>=1073741824){break r}f=f<<2;i=oa(f);J[g+24>>2]=i;J[g+32>>2]=f+i;if((d|0)==(s|0)){break A}f=d;d=(k-4&-4)+4|0;i=ua(i,f,d)+d|0}J[g+28>>2]=i;h=J[g+44>>2];n=J[g+36>>2];B:{if(h-n>>2>>>0>=F>>>0){d=J[g+40>>2]-n|0;h=d+t|0;d=d>>2;k=d>>>0<F>>>0?h:E;f=k-t|0;if((k|0)!=(t|0)){ta(n,t,f)}if(d>>>0<F>>>0){i=J[g+40>>2];if((k|0)==(E|0)){break B}while(1){J[i>>2]=J[h>>2];i=i+4|0;h=h+4|0;if((E|0)!=(h|0)){continue}break}break B}i=f+n|0;break B}if(n){J[g+40>>2]=n;na(n);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;h=0}if((S|0)<0){break q}d=h>>>1|0;d=h>>>0>=2147483644?1073741823:d>>>0>F>>>0?d:F;if(d>>>0>=1073741824){break q}d=d<<2;i=oa(d);J[g+36>>2]=i;J[g+44>>2]=d+i;if((t|0)==(E|0)){break B}i=ua(i,t,Y)+Y|0}J[g+40>>2]=i}if((l|0)==(g+124|0)){break t}i=K[l|0];h=-1;while(1){f=i&255;d=h-1|0;k=d+m|0;i=K[k|0];if(f>>>0>i>>>0){d=m;while(1){d=d-1|0;f=K[d|0];if(f>>>0<=i>>>0){continue}break}H[k|0]=f;H[d|0]=i;if((h|0)==-1){continue u}i=h+m|0;h=l;while(1){d=K[i|0];H[i|0]=K[h|0];H[h|0]=d;i=i+1|0;h=h-1|0;if(i>>>0<h>>>0){continue}break}continue u}h=d;if((k|0)!=(g+124|0)){continue}break}break}d=g+124|0;i=d;h=l;if(d>>>0>=h>>>0){break t}while(1){d=K[i|0];H[i|0]=K[h|0];H[h|0]=d;i=i+1|0;h=h-1|0;if(i>>>0<h>>>0){continue}break}}u=u+1|0;if((j|0)!=(L|0)){continue}break}if((j|0)<=0){break s}d=J[g+20>>2];f=d;l=g+r|0;h=d+J[l+72>>2]|0;d=J[l+76>>2]+(d>>31)|0;J[l+72>>2]=h;J[l+76>>2]=f>>>0>h>>>0?d+1|0:d}if(!e){break i}l=J[D>>2];i=0;h=J[g+36>>2];v=0;if(!O){break j}while(1){d=i<<2;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;d=d|4;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=i+2|0;v=v+2|0;if((M|0)!=(v|0)){continue}break}break j}qa();B()}qa();B()}ra();B()}if(!N){break i}d=i<<2;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(g+200|0,Q,J[D>>2],e);C:{if(A){break C}l=P(j,12)+a|0;h=0;while(1){D:{k=J[l+40>>2];m=k<<5;d=J[l+36>>2];E:{if(!(K[g+16|0]>>>h&1)){f=d;F:{if((d|0)!=(m|0)){break F}if((d+1|0)<0){break D}G:{if(d>>>0<=1073741822){k=k<<6;m=(d&-32)+32|0;i=k>>>0>m>>>0?k:m;f=d;if(d>>>0>=i>>>0){break F}if((i|0)>=0){break G}break D}i=2147483647;f=-1;if(d>>>0>=2147483647){break F}}n=(i-1>>>5|0)+1|0;r=oa(n<<2);q=J[l+32>>2];J[r+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;H:{I:{if(!d){break I}f=d>>>5|0;if(d>>>0>=32){ta(r,q,f<<2)}k=d&31;if(!k){break I}m=f<<2;f=m+r|0;i=f;o=J[f>>2];f=-1>>>32-k|0;J[i>>2]=o&(f^-1)|f&J[m+q>>2];J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;break H}J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;f=d;if(!q){break F}}na(q);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<<f;break E}f=d;J:{if((d|0)!=(m|0)){break J}if((d+1|0)<0){break D}K:{if(d>>>0<=1073741822){k=k<<6;m=(d&-32)+32|0;i=k>>>0>m>>>0?k:m;f=d;if(d>>>0>=i>>>0){break J}if((i|0)<0){break D}break K}i=2147483647;f=-1;if(d>>>0>=2147483647){break J}}n=(i-1>>>5|0)+1|0;r=oa(n<<2);q=J[l+32>>2];J[r+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;L:{M:{if(!d){break M}f=d>>>5|0;if(d>>>0>=32){ta(r,q,f<<2)}k=d&31;if(!k){break M}m=f<<2;f=m+r|0;i=f;o=J[f>>2];f=-1>>>32-k|0;J[i>>2]=o&(f^-1)|f&J[m+q>>2];J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;break L}J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;f=d;if(!q){break J}}na(q);f=J[l+36>>2]}J[l+36>>2]=f+1;m=J[l+32>>2]+(f>>>3&536870908)|0;d=J[m>>2];ea=m,fa=Ll(f)&d,J[ea>>2]=fa}h=h+1|0;if((j|0)!=(h|0)){continue}break C}break}qa();B()}d=J[g+24>>2];j=J[d>>2];f=J[d+4>>2];d=J[I+4>>2];J[g+232>>2]=J[I>>2];J[g+236>>2]=d;J[g+224>>2]=j;J[g+228>>2]=f;Ya(g+200|0,$,g+232|0,g+224|0);d=c+w|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;na(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;na(d)}d=(G|0)>2;G=z;if(d){continue}break}break c}qa();B()}d=J[g+144>>2];if((e|0)>0){pa(d,0,e<<2)}f=J[d>>2];e=J[d+4>>2];d=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=d;J[g+232>>2]=f;J[g+236>>2]=e;Ya(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(t){na(t)}a=J[g+128>>2];if(a){J[g+132>>2]=a;na(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;na(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;na(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;na(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;na(a)}ba=g+240|0;return 1}function tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;g=ba-240|0;ba=g;Y=J[a+36>>2];M=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);h=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+h;break a}Fa(g+144|12,e-d|0)}f=J[g+168>>2];d=J[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}J[g+172>>2]=f+(e<<2);break b}Fa(g+168|0,e-d|0)}c:{d:{f=J[g+180>>2];d=J[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[g+184>>2]=f+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-d|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=oa(d);J[g+128>>2]=f;i=d+f|0;J[g+136>>2]=i;pa(f,0,d);J[g+132>>2]=i;d=0}x=a+136|0;i=J[a+136>>2];f=J[a+140>>2]-i>>2;g:{h:{if(f>>>0<e>>>0){Fa(x,e-f|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0<f>>>0){J[a+140>>2]=i+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;v=0;if(d){break g}}d=e<<2;r=oa(d);v=pa(r,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}E=e&-2;F=e&1;Z=e&-4;N=e&3;G=e-1|0;O=e<<2;_=a+8|0;I=a+96|0;D=d>>>2|0;L=v-r|0;z=L>>2;Q=(L-4&-4)+4|0;$=g+36|0;aa=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{w=D-1|0;if(w>>>0<J[d+4>>2]-f>>2>>>0){d=0;k=0;l=J[f+(w<<2)>>2];k:{if((l|0)==-1){break k}j=J[M+12>>2];i=l+2|0;k=(l>>>0)%3|0;y=j+((k?l-1|0:i)<<2)|0;f=0;A=(k|0)!=0|(i|0)!=-1;p=1;i=l;while(1){k=J[j+(i<<2)>>2];l:{if((k|0)==-1){break l}m=J[Y>>2];n=J[M>>2];s=J[m+(J[n+(k<<2)>>2]<<2)>>2];h=k+1|0;h=(h>>>0)%3|0?h:k-2|0;if((h|0)!=-1){o=J[n+(h<<2)>>2]}else{o=-1}m:{n:{if((k>>>0)%3|0){h=k-1|0;break n}h=k+2|0;q=-1;if((h|0)==-1){break m}}q=J[n+(h<<2)>>2]}if((s|0)>=(w|0)){break l}h=J[(o<<2)+m>>2];if((h|0)>=(w|0)){break l}n=J[m+(q<<2)>>2];if((n|0)>=(w|0)){break l}k=J[(g+144|0)+P(f,12)>>2];o:{if(!e){break o}n=P(e,n);o=P(e,h);s=P(e,s);h=0;m=0;if(G){while(1){J[k+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2];q=h|1;J[k+(q<<2)>>2]=(J[(n+q<<2)+b>>2]+J[(o+q<<2)+b>>2]|0)-J[(q+s<<2)+b>>2];h=h+2|0;m=m+2|0;if((E|0)!=(m|0)){continue}break}}if(!F){break o}J[k+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2]}k=4;f=f+1|0;if((f|0)==4){break k}}p:{if(p&1){h=i+1|0;i=(h>>>0)%3|0?h:i-2|0;k=-1;if((i|0)==-1){break p}i=J[j+(i<<2)>>2];k=-1;if((i|0)==-1){break p}k=i+1|0;k=(k>>>0)%3|0?k:i-2|0;break p}q:{if((i>>>0)%3|0){h=i-1|0;break q}h=i+2|0;k=-1;if((h|0)==-1){break p}}i=J[j+(h<<2)>>2];k=-1;if((i|0)==-1){break p}k=i-1|0;if((i>>>0)%3|0){break p}k=i+2|0}i=k;if((l|0)==(i|0)){k=f;break k}if((i|0)==-1&p){if(!A){k=f;break k}i=J[y>>2];if((i|0)==-1){k=f;break k}p=0;i=(i>>>0)%3|0?i-1|0:i+2|0}k=f;if((i|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;S=P(e,w)<<2;s=S+b|0;l=(P(D-2|0,e)<<2)+b|0;j=J[x>>2];h=0;if(e){while(1){i=d<<2;f=J[i+l>>2]-J[i+s>>2]|0;J[i+r>>2]=f;J[i+j>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=f;f=f>>31;h=((i^f)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Db(d,I,j,e);f=Cb(d);i=J[d+12>>2];d=J[d+16>>2];i=(((i-d|0)+1|0)/64|0)+d<<3;n=d<<3;d=i+n|0;i=(i>>31)+(n>>31)|0;j=ca+(d>>>0<n>>>0?i+1|0:i)|0;i=d;d=d+f|0;f=i>>>0>d>>>0?j+1|0:j;A=(k|0)<=0;if(!A){p=(k<<3)-8|0;i=p+(g+48|0)|0;n=i;j=J[i>>2];i=J[i+4>>2];j=j+k|0;i=j>>>0<k>>>0?i+1|0:i;J[n>>2]=j;J[n+4>>2]=i;u=W(Eb(j,J[p+(g+80|0)>>2])*(+(j>>>0)+ +(i|0)*4294967296));r:{if(R(u)<0x8000000000000000){j=R(u)>=1?~~(u>0?T(V(u*2.3283064365386963e-10),4294967295):W((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;i=~~u>>>0;break r}j=-2147483648;i=0}d=d+i|0;f=d}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=d;J[g+12>>2]=h;tc(aa,l,l+O|0);bb($,r,v);s:{t:{u:{if(A){break u}n=(g+124|0)+k|0;l=n-1|0;U=k<<3;d=U-8|0;X=d+(g+48|0)|0;da=d+(g+80|0)|0;p=1;y=0;while(1){d=g+124|0;pa(d,1,k);y=y+1|0;pa(d,0,y);v:{w:while(1){if(e){pa(J[g+128>>2],0,O)}m=0;d=J[g+128>>2];f=0;while(1){if(!K[(g+124|0)+m|0]){x:{if(!e){break x}o=J[(g+144|0)+P(m,12)>>2];i=0;h=0;j=0;if(e>>>0>3){while(1){q=h<<2;t=q+d|0;J[t>>2]=J[t>>2]+J[o+q>>2];t=q|4;C=t+d|0;J[C>>2]=J[C>>2]+J[o+t>>2];t=q|8;C=t+d|0;J[C>>2]=J[C>>2]+J[o+t>>2];q=q|12;t=q+d|0;J[t>>2]=J[t>>2]+J[o+q>>2];h=h+4|0;j=j+4|0;if((Z|0)!=(j|0)){continue}break}}if(!N){break x}while(1){j=h<<2;q=j+d|0;J[q>>2]=J[q>>2]+J[j+o>>2];h=h+1|0;i=i+1|0;if((N|0)!=(i|0)){continue}break}}f=1<<m|f}m=m+1|0;if((m|0)!=(k|0)){continue}break}d=J[g+128>>2];y:{z:{A:{if(e){h=0;i=0;if(G){break A}break z}j=J[x>>2];i=0;break y}while(1){j=h<<2;m=j+d|0;J[m>>2]=J[m>>2]/(p|0);j=(j|4)+d|0;J[j>>2]=J[j>>2]/(p|0);h=h+2|0;i=i+2|0;if((E|0)!=(i|0)){continue}break}}if(F){d=(h<<2)+d|0;J[d>>2]=J[d>>2]/(p|0)}j=J[x>>2];d=J[g+128>>2];h=0;i=0;if(!e){break y}while(1){o=h<<2;m=J[o+d>>2]-J[o+s>>2]|0;J[o+r>>2]=m;J[j+o>>2]=(m|0)<0?(m^-1)<<1|1:m<<1;o=i;i=m>>31;i=o+((i^m)-i|0)|0;h=h+1|0;if((h|0)!=(e|0)){continue}break}}h=g+200|0;Db(h,I,j,e);m=Cb(h);o=J[h+12>>2];h=J[h+16>>2];j=(((o-h|0)+1|0)/64|0)+h<<3;o=h<<3;h=j+o|0;h=h+m|0;m=J[X+4>>2];j=J[X>>2];u=W(Eb(j,J[da>>2]+p|0)*(+(j>>>0)+ +(m|0)*4294967296));B:{if(R(u)<0x8000000000000000){o=~~u>>>0;break B}o=0}h=o+h|0;j=J[g+8>>2];if(!((h|0)>=(j|0)&((h|0)>(j|0)|(i|0)>=J[g+12>>2]))){J[g+20>>2]=p;H[g+16|0]=f;J[g+8>>2]=h;J[g+12>>2]=i;j=J[g+132>>2];m=j-d|0;h=m>>2;i=J[g+32>>2];f=J[g+24>>2];C:{if(h>>>0<=i-f>>2>>>0){m=J[g+28>>2]-f|0;i=m+d|0;q=m>>2;m=q>>>0<h>>>0?i:j;o=m-d|0;if((d|0)!=(m|0)){ta(f,d,o)}if(h>>>0>q>>>0){h=J[g+28>>2];if((j|0)==(m|0)){break C}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((j|0)!=(i|0)){continue}break}break C}h=f+o|0;break C}if(f){J[g+28>>2]=f;na(f);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;i=0}if((m|0)<0){break t}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:f>>>0>h>>>0?f:h;if(f>>>0>=1073741824){break t}f=f<<2;h=oa(f);J[g+24>>2]=h;J[g+32>>2]=f+h;if((d|0)==(j|0)){break C}f=d;d=(m-4&-4)+4|0;h=ua(h,f,d)+d|0}J[g+28>>2]=h;i=J[g+44>>2];d=J[g+36>>2];D:{if(i-d>>2>>>0>=z>>>0){f=J[g+40>>2]-d|0;i=f+r|0;j=f>>2;f=j>>>0<z>>>0?i:v;h=f-r|0;if((f|0)!=(r|0)){ta(d,r,h)}if(j>>>0<z>>>0){h=J[g+40>>2];if((f|0)==(v|0)){break D}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((v|0)!=(i|0)){continue}break}break D}h=d+h|0;break D}if(d){J[g+40>>2]=d;na(d);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;i=0}if((L|0)<0){break s}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>z>>>0?d:z;if(d>>>0>=1073741824){break s}d=d<<2;h=oa(d);J[g+36>>2]=h;J[g+44>>2]=d+h;if((r|0)==(v|0)){break D}h=ua(h,r,Q)+Q|0}J[g+40>>2]=h}if((l|0)==(g+124|0)){break v}h=K[l|0];i=-1;while(1){j=h&255;d=i-1|0;f=d+n|0;h=K[f|0];if(j>>>0>h>>>0){d=n;while(1){d=d-1|0;j=K[d|0];if(j>>>0<=h>>>0){continue}break}H[f|0]=j;H[d|0]=h;if((i|0)==-1){continue w}h=i+n|0;i=l;while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0<i>>>0){continue}break}continue w}i=d;if((f|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=l;if(d>>>0>=i>>>0){break v}while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0<i>>>0){continue}break}}p=p+1|0;if((k|0)!=(y|0)){continue}break}if((k|0)<=0){break u}f=J[g+20>>2];l=f;d=g+U|0;i=f+J[d+72>>2]|0;f=J[d+76>>2]+(f>>31)|0;J[d+72>>2]=i;J[d+76>>2]=i>>>0<l>>>0?f+1|0:f}if(!e){break i}d=J[x>>2];h=0;f=J[g+36>>2];j=0;if(!G){break j}while(1){l=h<<2;i=J[l+f>>2];J[d+l>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;l=l|4;i=J[l+f>>2];J[d+l>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;j=j+2|0;if((E|0)!=(j|0)){continue}break}break j}qa();B()}qa();B()}ra();B()}if(!F){break i}i=h<<2;f=J[i+f>>2];J[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(g+200|0,I,J[x>>2],e);E:{if(A){break E}l=P(k,12)+a|0;i=0;while(1){F:{h=J[l+40>>2];j=h<<5;d=J[l+36>>2];G:{if(!(K[g+16|0]>>>i&1)){f=d;H:{if((d|0)!=(j|0)){break H}if((d+1|0)<0){break F}I:{if(d>>>0<=1073741822){h=h<<6;j=(d&-32)+32|0;h=h>>>0>j>>>0?h:j;f=d;if(d>>>0>=h>>>0){break H}if((h|0)>=0){break I}break F}h=2147483647;f=-1;if(d>>>0>=2147483647){break H}}j=(h-1>>>5|0)+1|0;f=oa(j<<2);h=J[l+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;J:{K:{if(!d){break K}n=d>>>5|0;if(d>>>0>=32){ta(f,h,n<<2)}p=d&31;if(!p){break K}n=n<<2;m=n+f|0;p=-1>>>32-p|0;J[m>>2]=J[m>>2]&(p^-1)|p&J[h+n>>2];J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;break J}J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;f=d;if(!h){break H}}na(h);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<<f;break G}f=d;L:{if((d|0)!=(j|0)){break L}if((d+1|0)<0){break F}M:{if(d>>>0<=1073741822){h=h<<6;j=(d&-32)+32|0;h=h>>>0>j>>>0?h:j;f=d;if(d>>>0>=h>>>0){break L}if((h|0)<0){break F}break M}h=2147483647;f=-1;if(d>>>0>=2147483647){break L}}j=(h-1>>>5|0)+1|0;f=oa(j<<2);h=J[l+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;N:{O:{if(!d){break O}n=d>>>5|0;if(d>>>0>=32){ta(f,h,n<<2)}p=d&31;if(!p){break O}n=n<<2;m=n+f|0;p=-1>>>32-p|0;J[m>>2]=J[m>>2]&(p^-1)|p&J[h+n>>2];J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;break N}J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;f=d;if(!h){break L}}na(h);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;h=J[d>>2];ea=d,fa=Ll(f)&h,J[ea>>2]=fa}i=i+1|0;if((k|0)!=(i|0)){continue}break E}break}qa();B()}d=J[g+24>>2];f=J[d>>2];d=J[d+4>>2];i=J[s+4>>2];J[g+232>>2]=J[s>>2];J[g+236>>2]=i;J[g+224>>2]=f;J[g+228>>2]=d;Ya(g+200|0,_,g+232|0,g+224|0);d=c+S|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;na(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;na(d)}d=(D|0)>2;D=w;if(d){continue}break}break c}qa();B()}d=J[g+144>>2];if((e|0)>0){pa(d,0,e<<2)}e=J[d>>2];d=J[d+4>>2];f=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=f;J[g+232>>2]=e;J[g+236>>2]=d;Ya(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(r){na(r)}a=J[g+128>>2];if(a){J[g+132>>2]=a;na(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;na(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;na(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;na(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;na(a)}ba=g+240|0;return 1}function Nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=ba-32|0;ba=i;c=J[b+8>>2];a:{b:{if(K[b+288|0]){c=jf(c);e=J[b+12>>2];J[b+12>>2]=c;if(e){break b}break a}c=kf(c);e=J[b+12>>2];J[b+12>>2]=c;if(!e){break a}}qc(e)}c=J[b+12>>2];c:{if(!(J[c+40>>2]!=((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)?c:0)){b=oa(32);H[b+29|0]=0;c=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);d=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);d=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);d=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);d=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break c}J[b+264>>2]=b;Aa((J[c+28>>2]-J[c+24>>2]>>2)-J[c+44>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+12>>2];Aa(((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)-J[c+40>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+8>>2];d=J[c+100>>2];c=J[c+96>>2];H[i+16|0]=0;o=b+28|0;j=(d-c|0)/12|0;c=i+16|0;Na(o,j,c);d=J[b+12>>2];e=J[d+28>>2];d=J[d+24>>2];J[i+16>>2]=-1;wb(b+52|0,e-d>>2,c);c=J[b+40>>2];J[b+44>>2]=c;d:{e:{f:{g:{h:{i:{j:{d=J[b+12>>2];e=J[d+4>>2]-J[d>>2]>>2;e=e-((e>>>0)%3|0)|0;k:{if(e>>>0<=J[b+48>>2]-c>>2>>>0){break k}if(e>>>0>=1073741824){break j}g=e<<2;e=oa(g);J[b+44>>2]=e;J[b+40>>2]=e;J[b+48>>2]=e+g;if(!c){break k}na(c);d=J[b+12>>2]}c=J[d+28>>2];d=J[d+24>>2];H[i+16|0]=0;Na(b+84|0,c-d>>2,i+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){d=J[b+128>>2];if(d){while(1){c=J[d>>2];na(d);d=c;if(c){continue}break}}d=0;J[b+128>>2]=0;c=J[b+124>>2];l:{if(!c){break l}if(c>>>0>=4){k=c&-4;g=0;while(1){e=d<<2;J[e+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(e|4)>>2]=0;J[J[b+120>>2]+(e|8)>>2]=0;J[J[b+120>>2]+(e|12)>>2]=0;d=d+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}c=c&3;if(!c){break l}e=0;while(1){J[J[b+120>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;c=J[b+12>>2];d=J[c+28>>2];c=J[c+24>>2];J[i+16>>2]=-1;wb(b+152|0,d-c>>2,i+16|0);c=J[b+72>>2];J[b+76>>2]=c;s=b+72|0;d=J[b+12>>2];d=J[d+4>>2]-J[d>>2]|0;e=(d>>2>>>0)/3|0;m:{if(e>>>0<=J[b+80>>2]-c>>2>>>0){break m}if((d|0)<0){break i}e=e<<2;d=oa(e);J[b+76>>2]=d;J[b+72>>2]=d;J[b+80>>2]=d+e;if(!c){break m}na(c)}J[b- -64>>2]=0;if(!kg(b)){b=oa(32);H[b+29|0]=0;c=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);d=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);d=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);d=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);d=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break c}c=b;n:{if(K[b+288|0]){break n}b=J[c+8>>2];e=J[b+12>>2]-J[b+8>>2]|0;g=e>>2;d=g-1|0;b=J[c+176>>2];f=J[c+172>>2];k=(b-f|0)/136|0;o:{if(d>>>0>k>>>0){cg(c+172|0,d-k|0);break o}if(d>>>0>=k>>>0){break o}k=f+P(d,136)|0;if((k|0)!=(b|0)){while(1){d=b-136|0;f=J[d+116>>2];if(f){J[b-16>>2]=f;na(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;na(f)}pc(b-132|0);b=d;if((k|0)!=(b|0)){continue}break}}J[c+176>>2]=k}if((e|0)==4|(e|0)<=0){break n}k=(g|0)<=1?1:g;b=0;p:{while(1){f=J[J[J[c+8>>2]+8>>2]+(b<<2)>>2];if(J[f+56>>2]){h=P(n,136);d=h+J[c+172>>2]|0;J[d>>2]=b;e=J[d+104>>2];J[d+108>>2]=e;g=J[c+12>>2];g=J[g+4>>2]-J[g>>2]|0;j=g>>2;q:{if(j>>>0<=J[d+112>>2]-e>>2>>>0){break q}if((g|0)<0){break p}g=oa(g);J[d+108>>2]=g;J[d+104>>2]=g;J[d+112>>2]=g+(j<<2);if(!e){break q}na(e)}d=h+J[c+172>>2]|0;J[d+128>>2]=0;lf(d+4|0,J[c+8>>2],J[c+12>>2],f);n=n+1|0}b=b+1|0;if((k|0)!=(b|0)){continue}break}break n}qa();B()}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[i+31|0]=b;d=J[J[c+4>>2]+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){sa(d,J[d+4>>2],i+31|0,i+32|0);b=K[i+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];d=J[b>>2];b=J[b+4>>2];n=c+200|0;ig(n);g=0;J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;k=0;b=b-d|0;if((b|0)>0){b=b>>>2|0;t=b>>>0<=1?1:b;d=0;while(1){b=(d>>>0)/3|0;p=b>>>5<<2;r=1<<b;r:{if(r&J[J[o>>2]+p>>2]){break r}if(Fc(J[c+12>>2],b)){break r}J[i+8>>2]=0;b=hg(c,b,i+8|0);Ca(n,b);f=J[i+8>>2];if(b){h=-1;e=-1;j=-1;s:{if((f|0)==-1){break s}l=J[J[c+12>>2]>>2];b=l+(f<<2)|0;h=f+1|0;h=(h>>>0)%3|0?h:f-2|0;if((h|0)!=-1){e=J[l+(h<<2)>>2]}h=J[b>>2];t:{if((f>>>0)%3|0){b=f-1|0;break t}b=f+2|0;j=-1;if((b|0)==-1){break s}}j=J[l+(b<<2)>>2]}b=J[c+84>>2];l=b+(h>>>3&536870908)|0;J[l>>2]=J[l>>2]|1<<h;h=b+(e>>>3&536870908)|0;J[h>>2]=J[h>>2]|1<<e;b=b+(j>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<j;b=J[c+100>>2];h=J[c+104>>2];u:{if(b>>>0<h>>>0){J[b>>2]=1;J[c+100>>2]=b+4;break u}j=b;b=J[c+96>>2];j=j-b|0;l=j>>2;e=l+1|0;if(e>>>0>=1073741824){break h}q=l<<2;h=h-b|0;l=h>>>1|0;e=h>>>0>=2147483644?1073741823:e>>>0<l>>>0?l:e;if(e){if(e>>>0>=1073741824){break g}h=oa(e<<2)}else{h=0}l=q+h|0;J[l>>2]=1;q=e<<2;e=ta(h,b,j);J[c+104>>2]=q+e;J[c+100>>2]=l+4;J[c+96>>2]=e;if(!b){break u}na(b)}b=J[o>>2]+p|0;J[b>>2]=J[b>>2]|r;h=-1;if((f|0)!=-1){b=f+1|0;h=(b>>>0)%3|0?b:f-2|0}v:{if(g>>>0<m>>>0){J[g>>2]=h;g=g+4|0;J[i+20>>2]=g;break v}e=g-k>>2;b=e+1|0;if(b>>>0>=1073741824){break f}j=m-k|0;m=j>>>1|0;b=j>>>0>=2147483644?1073741823:b>>>0<m>>>0?m:b;if(b){if(b>>>0>=1073741824){break g}j=oa(b<<2)}else{j=0}e=j+(e<<2)|0;J[e>>2]=h;m=j+(b<<2)|0;b=e+4|0;if((g|0)!=(k|0)){while(1){e=e-4|0;g=g-4|0;J[e>>2]=J[g>>2];if((g|0)!=(k|0)){continue}break}}J[i+24>>2]=m;J[i+20>>2]=b;J[i+16>>2]=e;if(k){na(k)}k=e;g=b}if((f|0)==-1){break r}b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if((b|0)==-1){break r}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break r}e=(b>>>0)/3|0;if(J[J[o>>2]+(e>>>3&268435452)>>2]>>>e&1){break r}if(gg(c,b)){break r}break e}if((f|0)!=-1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0}else{b=-1}Hc(c,b,1);if(!gg(c,J[i+8>>2])){break e}}d=d+1|0;if((t|0)!=(d|0)){continue}break}}d=J[c+72>>2];b=J[c+76>>2];w:{if((d|0)==(b|0)){break w}e=b-4|0;if(e>>>0<=d>>>0){break w}while(1){f=J[d>>2];J[d>>2]=J[e>>2];J[e>>2]=f;d=d+4|0;e=e-4|0;if(d>>>0<e>>>0){continue}break}}fg(s,b,k,g);x:{if(J[c+172>>2]==J[c+176>>2]){break x}b=J[c+8>>2];d=J[b+100>>2];b=J[b+96>>2];H[i+8|0]=0;Na(o,(d-b|0)/12|0,i+8|0);d=J[c+72>>2];b=J[c+76>>2];if((d|0)==(b|0)){break x}while(1){eg(c,J[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}}e=n;h=e+32|0;b=J[e+64>>2];b=J[(da[J[J[b>>2]+40>>2]](b)|0)+56>>2];Fd(h,P((J[b+100>>2]-J[b+96>>2]|0)/12|0,3),0,1);b=J[e+72>>2]-J[e+68>>2]|0;y:{if((b|0)<=0){break y}d=J[e+52>>2];if(!J[e+48>>2]&(d|0)<=0|(d|0)<0){break y}b=b>>>2|0;while(1){g=b;b=b-1|0;d=J[e+52>>2];z:{if(!J[e+48>>2]&(d|0)<=0|(d|0)<0){break z}o=J[J[e+68>>2]+(b<<2)>>2];if(!(171>>>o&1)){break z}j=J[(o<<2)+11152>>2];f=J[e+44>>2];d=J[f+4>>2];n=0;while(1){m=d>>>3|0;p=m+J[f>>2]|0;l=K[p|0];d=d&7;u=p,v=Ll(d)&l,H[u|0]=v;m=m+J[f>>2]|0;H[m|0]=K[m|0]|(o>>>n&1)<<d;d=J[f+4>>2]+1|0;J[f+4>>2]=d;n=n+1|0;if((j|0)!=(n|0)){continue}break}}if((g|0)>1){continue}break}}Ed(h);b=c+232|0;ya(e,b);if(!(!J[c+280>>2]|J[c+284>>2]<=0)){d=0;while(1){ya(J[c+280>>2]+(d<<5)|0,b);d=d+1|0;if((d|0)<J[c+284>>2]){continue}break}}Aa(J[c+272>>2]-J[c+268>>2]>>2,J[J[c+4>>2]+44>>2]);Aa(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!dg(c)){b=oa(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);d=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);d=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);d=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,28);na(b);break d}b=J[J[c+4>>2]+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break d}qa();B()}qa();B()}qa();B()}xa();B()}qa();B()}b=oa(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);d=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=d;H[b+25|0]=d>>>8;H[b+26|0]=d>>>16;H[b+27|0]=d>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);d=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);d=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);d=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,32);na(b)}if(!k){break c}na(k)}ba=i+32|0}function lf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ba-16|0;ba=f;a:{b:{if(c){J[a+88>>2]=0;J[a+92>>2]=0;e=J[a+84>>2];J[a+84>>2]=0;if(e){na(e)}J[a+76>>2]=0;J[a+80>>2]=0;e=J[a+72>>2];J[a+72>>2]=0;if(e){na(e)}e=J[c>>2];g=J[c+4>>2];H[f+15|0]=0;Na(a,g-e>>2,f+15|0);e=J[c+28>>2];g=J[c+24>>2];H[f+14|0]=0;Na(a+12|0,e-g>>2,f+14|0);wb(a+28|0,J[c+4>>2]-J[c>>2]>>2,14948);g=J[c+28>>2]-J[c+24>>2]|0;h=g>>2;j=J[a+52>>2];c:{if(h>>>0<=J[a+60>>2]-j>>2>>>0){break c}if((g|0)<0){break a}e=J[a+56>>2];g=oa(g);h=g+(h<<2)|0;i=g+(e-j&-4)|0;g=i;if((e|0)!=(j|0)){while(1){g=g-4|0;e=e-4|0;J[g>>2]=J[e>>2];if((e|0)!=(j|0)){continue}break}}J[a+60>>2]=h;J[a+56>>2]=i;J[a+52>>2]=g;if(!j){break c}na(j)}g=J[c+28>>2]-J[c+24>>2]|0;h=g>>2;j=J[a+40>>2];d:{if(h>>>0<=J[a+48>>2]-j>>2>>>0){break d}if((g|0)<0){break a}e=J[a+44>>2];g=oa(g);h=g+(h<<2)|0;i=g+(e-j&-4)|0;g=i;if((e|0)!=(j|0)){while(1){g=g-4|0;e=e-4|0;J[g>>2]=J[e>>2];if((e|0)!=(j|0)){continue}break}}J[a+48>>2]=h;J[a+44>>2]=i;J[a+40>>2]=g;if(!j){break d}na(j)}H[a+24|0]=1;J[a+64>>2]=c}ba=f+16|0;c=(c|0)!=0;break b}if(c){J[a+88>>2]=0;J[a+92>>2]=0;c=J[a+84>>2];J[a+84>>2]=0;if(c){na(c)}J[a+76>>2]=0;J[a+80>>2]=0;c=J[a+72>>2];J[a+72>>2]=0;if(c){na(c)}h=J[a+64>>2];if(J[h+4>>2]!=J[h>>2]){c=0;while(1){m=(c>>>0)/3|0;f=Fc(h,m);h=J[a+64>>2];e:{if(f){break e}j=J[J[h+12>>2]+(c<<2)>>2];f:{g:{if((j|0)==-1){f=J[a>>2]+(c>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<<c;e=-1;f=c+1|0;f=(f>>>0)%3|0?f:c-2|0;if((f|0)!=-1){e=J[J[h>>2]+(f<<2)>>2]}f=J[a+12>>2];g=f+(e>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<<e;if((c>>>0)%3|0){e=c-1|0;break g}g=-1;e=c+2|0;if((e|0)!=-1){break g}break f}if(c>>>0>j>>>0){break e}e=-1;k=K[d+84|0];g=-1;l=c+1|0;n=c-2|0;i=(l>>>0)%3|0?l:n;if((i|0)>=0){f=(i>>>0)/3|0;g=J[(J[b+96>>2]+P(f,12)|0)+(i-P(f,3)<<2)>>2]}f=j+((j>>>0)%3|0?-1:2)|0;if((f|0)>=0){e=(f>>>0)/3|0;e=J[(J[b+96>>2]+P(e,12)|0)+(f-P(e,3)<<2)>>2]}if(!k){o=J[d+68>>2];e=J[o+(e<<2)>>2];g=J[(g<<2)+o>>2]}if((e|0)==(g|0)){e=-1;g=-1;if((i|0)!=-1){g=i+1|0;g=(g>>>0)%3|0?g:i-2|0}h:{if((f|0)==-1){break h}if((f>>>0)%3|0){e=f-1|0;break h}e=f+2|0}f=-1;i=-1;if((g|0)>=0){i=(g>>>0)/3|0;i=J[(J[b+96>>2]+P(i,12)|0)+(g-P(i,3)<<2)>>2]}if((e|0)>=0){f=(e>>>0)/3|0;f=J[(J[b+96>>2]+P(f,12)|0)+(e-P(f,3)<<2)>>2]}if(!k){e=J[d+68>>2];f=J[e+(f<<2)>>2];i=J[e+(i<<2)>>2]}if((f|0)==(i|0)){break e}}H[a+24|0]=0;f=J[a>>2];e=f+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<<c;f=f+(j>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<<j;i=-1;f=(l>>>0)%3|0?l:n;if((f|0)!=-1){i=J[J[h>>2]+(f<<2)>>2]}f=J[a+12>>2];e=f+(i>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<<i;i:{j:{if((P(m,3)|0)!=(c|0)){e=c-1|0;break j}e=c+2|0;g=-1;if((e|0)==-1){break i}}g=J[J[h>>2]+(e<<2)>>2]}e=(g>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<<g;g=-1;e=j+1|0;e=(e>>>0)%3|0?e:j-2|0;if((e|0)!=-1){g=J[J[h>>2]+(e<<2)>>2]}e=(g>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<<g;if((j>>>0)%3|0){e=j-1|0;break g}g=-1;e=j+2|0;if((e|0)==-1){break f}}g=J[J[h>>2]+(e<<2)>>2]}f=(g>>>3&536870908)+f|0;J[f>>2]=J[f>>2]|1<<g}c=c+1|0;if(c>>>0<J[h+4>>2]-J[h>>2]>>2>>>0){continue}break}}if(!(!b|!d)){h=b;j=d;b=0;l=0;e=a;J[e+56>>2]=J[e+52>>2];J[e+44>>2]=J[e+40>>2];k:{d=J[e+64>>2];f=J[d+24>>2];if((f|0)==J[d+28>>2]){break k}l:{m:{while(1){a=b;b=J[(l<<2)+f>>2];n:{if((b|0)==-1){b=a;break n}if((b|0)<0){c=-1}else{c=(b>>>0)/3|0;c=J[(J[h+96>>2]+P(c,12)|0)+(b-P(c,3)<<2)>>2]}c=K[j+84|0]?c:J[J[j+68>>2]+(c<<2)>>2];d=J[e+56>>2];g=J[e+60>>2];o:{if(d>>>0<g>>>0){J[d>>2]=c;J[e+56>>2]=d+4;break o}i=J[e+52>>2];m=d-i>>2;f=m+1|0;if(f>>>0>=1073741824){break a}g=g-i|0;k=g>>>1|0;k=g>>>0>=2147483644?1073741823:f>>>0<k>>>0?k:f;if(k){if(k>>>0>=1073741824){break m}g=oa(k<<2)}else{g=0}f=g+(m<<2)|0;J[f>>2]=c;c=f+4|0;if((d|0)!=(i|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(i|0)){continue}break}}J[e+60>>2]=g+(k<<2);J[e+56>>2]=c;J[e+52>>2]=f;if(!i){break o}na(i)}p:{q:{if(!(J[J[e+12>>2]+(l>>>3&536870908)>>2]>>>l&1)){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break q}c=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break q}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1){break q}g=J[e+64>>2];i=J[e>>2];while(1){c=d;d=-1;f=c+1|0;f=(f>>>0)%3|0?f:c-2|0;r:{if((f|0)==-1|J[i+(f>>>3&536870908)>>2]>>>f&1){break r}f=J[J[g+12>>2]+(f<<2)>>2];if((f|0)==-1){break r}d=f+1|0;d=(d>>>0)%3|0?d:f-2|0}if((b|0)!=(d|0)){if((d|0)==-1){break p}continue}break}break k}c=b}J[J[e+28>>2]+(c<<2)>>2]=a;d=J[e+44>>2];s:{if((d|0)!=J[e+48>>2]){J[d>>2]=c;J[e+44>>2]=d+4;break s}g=J[e+40>>2];b=d-g|0;k=b>>2;f=k+1|0;if(f>>>0>=1073741824){break l}i=b>>>1|0;i=b>>>0>=2147483644?1073741823:f>>>0<i>>>0?i:f;if(i){if(i>>>0>=1073741824){break m}b=oa(i<<2)}else{b=0}f=b+(k<<2)|0;J[f>>2]=c;k=f+4|0;if((d|0)!=(g|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+48>>2]=b+(i<<2);J[e+44>>2]=k;J[e+40>>2]=f;if(!g){break s}na(g)}b=a+1|0;d=J[e+64>>2];if((c|0)==-1){break n}t:{if((c>>>0)%3|0){f=c-1|0;break t}f=c+2|0;if((f|0)==-1){break n}}f=J[J[d+12>>2]+(f<<2)>>2];if((f|0)==-1){break n}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1|(c|0)==(i|0)){break n}while(1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0;if(J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){g=(i|0)<0?-1:J[(J[h+96>>2]+P((i>>>0)/3|0,12)|0)+((i>>>0)%3<<2)>>2];g=K[j+84|0]?g:J[J[j+68>>2]+(g<<2)>>2];d=J[e+56>>2];f=J[e+60>>2];u:{if(d>>>0<f>>>0){J[d>>2]=g;J[e+56>>2]=d+4;break u}k=J[e+52>>2];n=d-k>>2;a=n+1|0;if(a>>>0>=1073741824){break a}f=f-k|0;m=f>>>1|0;m=f>>>0>=2147483644?1073741823:a>>>0<m>>>0?m:a;if(m){if(m>>>0>=1073741824){break m}a=oa(m<<2)}else{a=0}f=a+(n<<2)|0;J[f>>2]=g;g=f+4|0;if((d|0)!=(k|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(k|0)){continue}break}}J[e+60>>2]=a+(m<<2);J[e+56>>2]=g;J[e+52>>2]=f;if(!k){break u}na(k)}g=b+1|0;d=J[e+44>>2];v:{if((d|0)!=J[e+48>>2]){J[d>>2]=i;J[e+44>>2]=d+4;break v}k=J[e+40>>2];a=d-k|0;n=a>>2;f=n+1|0;if(f>>>0>=1073741824){break l}m=a>>>1|0;m=a>>>0>=2147483644?1073741823:f>>>0<m>>>0?m:f;if(m){if(m>>>0>=1073741824){break m}a=oa(m<<2)}else{a=0}f=a+(n<<2)|0;J[f>>2]=i;n=f+4|0;if((d|0)!=(k|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(k|0)){continue}break}}J[e+48>>2]=a+(m<<2);J[e+44>>2]=n;J[e+40>>2]=f;if(!k){break v}na(k)}a=b;b=g}J[J[e+28>>2]+(i<<2)>>2]=a;d=J[e+64>>2];w:{if((i>>>0)%3|0){f=i-1|0;break w}f=i+2|0;if((f|0)==-1){break n}}f=J[J[d+12>>2]+(f<<2)>>2];if((f|0)==-1){break n}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1){break n}if((c|0)!=(i|0)){continue}break}}l=l+1|0;f=J[d+24>>2];if(l>>>0<J[d+28>>2]-f>>2>>>0){continue}break}break k}xa();B()}break a}return}b=0;f=0;e=a;J[e+56>>2]=J[e+52>>2];J[e+44>>2]=J[e+40>>2];x:{d=J[e+64>>2];h=J[d+24>>2];if((h|0)==J[d+28>>2]){break x}y:{z:{while(1){a=b;b=J[(f<<2)+h>>2];A:{if((b|0)==-1){b=a;break A}d=J[e+56>>2];B:{if((d|0)!=J[e+60>>2]){J[d>>2]=a;J[e+56>>2]=d+4;break B}g=J[e+52>>2];c=d-g|0;h=c>>2;j=h+1|0;if(j>>>0>=1073741824){break a}i=c>>>1|0;j=c>>>0>=2147483644?1073741823:i>>>0>j>>>0?i:j;if(j){if(j>>>0>=1073741824){break z}c=oa(j<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=a;i=h+4|0;if((d|0)!=(g|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+60>>2]=c+(j<<2);J[e+56>>2]=i;J[e+52>>2]=h;if(!g){break B}na(g)}C:{D:{if(!(J[J[e+12>>2]+(f>>>3&536870908)>>2]>>>f&1)){break D}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break D}c=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break D}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1){break D}j=J[e+64>>2];h=J[e>>2];while(1){c=d;d=-1;g=c+1|0;g=(g>>>0)%3|0?g:c-2|0;E:{if((g|0)==-1|J[h+(g>>>3&536870908)>>2]>>>g&1){break E}g=J[J[j+12>>2]+(g<<2)>>2];if((g|0)==-1){break E}d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((b|0)!=(d|0)){if((d|0)==-1){break C}continue}break}break x}c=b}J[J[e+28>>2]+(c<<2)>>2]=a;d=J[e+44>>2];F:{if((d|0)!=J[e+48>>2]){J[d>>2]=c;J[e+44>>2]=d+4;break F}g=J[e+40>>2];b=d-g|0;h=b>>2;j=h+1|0;if(j>>>0>=1073741824){break y}i=b>>>1|0;j=b>>>0>=2147483644?1073741823:i>>>0>j>>>0?i:j;if(j){if(j>>>0>=1073741824){break z}b=oa(j<<2)}else{b=0}h=b+(h<<2)|0;J[h>>2]=c;i=h+4|0;if((d|0)!=(g|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+48>>2]=b+(j<<2);J[e+44>>2]=i;J[e+40>>2]=h;if(!g){break F}na(g)}b=a+1|0;d=J[e+64>>2];if((c|0)==-1){break A}G:{if((c>>>0)%3|0){h=c-1|0;break G}h=c+2|0;if((h|0)==-1){break A}}g=J[J[d+12>>2]+(h<<2)>>2];if((g|0)==-1){break A}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1|(c|0)==(g|0)){break A}while(1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if(J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){d=J[e+56>>2];H:{if((d|0)!=J[e+60>>2]){J[d>>2]=b;J[e+56>>2]=d+4;break H}j=J[e+52>>2];a=d-j|0;l=a>>2;h=l+1|0;if(h>>>0>=1073741824){break a}i=a>>>1|0;i=a>>>0>=2147483644?1073741823:i>>>0>h>>>0?i:h;if(i){if(i>>>0>=1073741824){break z}a=oa(i<<2)}else{a=0}h=a+(l<<2)|0;J[h>>2]=b;l=h+4|0;if((d|0)!=(j|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(j|0)){continue}break}}J[e+60>>2]=a+(i<<2);J[e+56>>2]=l;J[e+52>>2]=h;if(!j){break H}na(j)}j=b+1|0;d=J[e+44>>2];I:{if((d|0)!=J[e+48>>2]){J[d>>2]=g;J[e+44>>2]=d+4;break I}i=J[e+40>>2];a=d-i|0;k=a>>2;h=k+1|0;if(h>>>0>=1073741824){break y}l=a>>>1|0;l=a>>>0>=2147483644?1073741823:h>>>0<l>>>0?l:h;if(l){if(l>>>0>=1073741824){break z}a=oa(l<<2)}else{a=0}h=a+(k<<2)|0;J[h>>2]=g;k=h+4|0;if((d|0)!=(i|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(i|0)){continue}break}}J[e+48>>2]=a+(l<<2);J[e+44>>2]=k;J[e+40>>2]=h;if(!i){break I}na(i)}a=b;b=j}J[J[e+28>>2]+(g<<2)>>2]=a;d=J[e+64>>2];J:{if((g>>>0)%3|0){h=g-1|0;break J}h=g+2|0;if((h|0)==-1){break A}}g=J[J[d+12>>2]+(h<<2)>>2];if((g|0)==-1){break A}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1){break A}if((c|0)!=(g|0)){continue}break}}f=f+1|0;h=J[d+24>>2];if(f>>>0<J[d+28>>2]-h>>2>>>0){continue}break}break x}xa();B()}break a}}return}qa();B()}function mf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;z=ba-16|0;ba=z;b=oa(88);J[b>>2]=0;J[b+4>>2]=0;J[b+56>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;c=b- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+60>>2]=b;c=a;w=ba-16|0;ba=w;J[b+80>>2]=0;J[b+84>>2]=0;d=J[b+76>>2];a=b;J[b+76>>2]=0;if(d){na(d)}J[a+68>>2]=0;J[a+72>>2]=0;b=a- -64|0;d=J[b>>2];J[b>>2]=0;if(d){na(d)}f=J[c+4>>2];d=J[c>>2];b=(f-d|0)/12|0;l=P(b,3);i=J[a>>2];e=J[a+4>>2]-i>>2;a:{if(l>>>0>e>>>0){Ld(a,l-e|0);f=J[c+4>>2];d=J[c>>2];b=(f-d|0)/12|0;break a}if(e>>>0<=l>>>0){break a}J[a+4>>2]=i+(l<<2)}b:{if((d|0)==(f|0)){break b}f=b>>>0<=1?1:b;e=f&1;g=J[a>>2];c=0;if(b>>>0>=2){i=f&-2;b=0;while(1){j=P(c,12);f=j+g|0;l=d+j|0;J[f>>2]=J[l>>2];J[g+(j|4)>>2]=J[l+4>>2];J[f+8>>2]=J[l+8>>2];f=P(c|1,12);l=f+g|0;f=d+f|0;J[l>>2]=J[f>>2];J[l+4>>2]=J[f+4>>2];J[l+8>>2]=J[f+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!e){break b}c=P(c,12);b=c+g|0;c=c+d|0;J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2]}J[w+12>>2]=-1;c=0;f=0;g=0;o=ba-32|0;ba=o;c:{s=w+12|0;d:{if(!s){break d}b=J[a+4>>2];j=J[a>>2];e=b-j|0;m=e>>2;d=J[a+12>>2];i=J[a+16>>2]-d>>2;e:{if(m>>>0>i>>>0){Ma(a+12|0,m-i|0,14880);b=J[a+4>>2];j=J[a>>2];e=b-j|0;m=e>>2;break e}if(i>>>0<=m>>>0){break e}J[a+16>>2]=d+(m<<2)}J[o+24>>2]=0;J[o+16>>2]=0;J[o+20>>2]=0;d=(b|0)==(j|0);if(!d){if((e|0)<0){break c}f=oa(e);J[o+20>>2]=f;J[o+16>>2]=f;J[o+24>>2]=(m<<2)+f}f:{g:{h:{i:{j:{if(e){while(1){d=J[(c<<2)+j>>2];e=J[o+20>>2]-f>>2;k:{if(d>>>0<e>>>0){break k}J[o>>2]=0;i=d+1|0;if(i>>>0>e>>>0){jc(o+16|0,i-e|0,o);j=J[a>>2];b=J[a+4>>2];f=J[o+16>>2];break k}if(e>>>0<=i>>>0){break k}J[o+20>>2]=(i<<2)+f}d=(d<<2)+f|0;J[d>>2]=J[d>>2]+1;c=c+1|0;e=b-j|0;m=e>>2;if(c>>>0<m>>>0){continue}break}break j}e=0;if(!d){break i}break h}if((b|0)==(j|0)){e=0;break h}if(e>>>0>=2147483645){break g}}e=oa(e<<1);pa(e,255,m<<3)}J[o+8>>2]=0;J[o>>2]=0;J[o+4>>2]=0;c=J[o+20>>2];b=c-f|0;y=b>>2;l:{m:{if((c|0)==(f|0)){break m}if((b|0)<0){break l}v=oa(b);J[o>>2]=v;J[o+8>>2]=(y<<2)+v;q=pa(v,0,b);J[o+4>>2]=q+b;b=y>>>0<=1?1:y;l=b&3;c=0;if(b-1>>>0>=3){i=b&-4;while(1){p=g<<2;J[p+q>>2]=c;b=p|4;c=J[f+p>>2]+c|0;J[b+q>>2]=c;d=p|8;c=c+J[b+f>>2]|0;J[d+q>>2]=c;b=p|12;c=c+J[d+f>>2]|0;J[b+q>>2]=c;c=c+J[b+f>>2]|0;g=g+4|0;h=h+4|0;if((i|0)!=(h|0)){continue}break}}if(!l){break m}while(1){b=g<<2;J[b+q>>2]=c;g=g+1|0;c=J[b+f>>2]+c|0;r=r+1|0;if((l|0)!=(r|0)){continue}break}}if(!m){break f}u=J[a+40>>2];k=J[a+12>>2];l=0;while(1){q=l<<2;d=q+j|0;r=-1;b=l+1|0;c=(b>>>0)%3|0?b:l-2|0;if((c|0)!=-1){r=J[(c<<2)+j>>2]}p=J[d>>2];n:{o:{if(!((l>>>0)%3|0)){h=-1;c=l+2|0;if((c|0)!=-1){h=J[(c<<2)+j>>2]}if(!((p|0)==(r|0)|(h|0)==(p|0))&(h|0)!=(r|0)){break o}u=u+1|0;J[a+40>>2]=u;b=l+3|0;break n}h=J[d-4>>2]}c=h<<2;t=J[c+f>>2];p:{q:{if((t|0)<=0){break q}c=J[c+v>>2];g=0;while(1){i=(c<<3)+e|0;d=J[i>>2];if((d|0)==-1){break q}r:{if((d|0)!=(r|0)){break r}n=J[i+4>>2];if((n|0)!=-1){d=J[(n<<2)+j>>2]}else{d=-1}if((d|0)==(p|0)){break r}while(1){s:{d=c;g=g+1|0;if((t|0)<=(g|0)){break s}c=d+1|0;p=(c<<3)+e|0;x=J[p>>2];i=(d<<3)+e|0;J[i+4>>2]=J[p+4>>2];J[i>>2]=x;if((x|0)!=-1){continue}}break}J[(d<<3)+e>>2]=-1;if((n|0)==-1){break q}J[k+q>>2]=n;J[k+(n<<2)>>2]=l;break p}c=c+1|0;g=g+1|0;if((t|0)!=(g|0)){continue}break}}c=r<<2;d=J[c+f>>2];if((d|0)<=0){break p}c=J[c+v>>2];g=0;while(1){i=(c<<3)+e|0;if(J[i>>2]==-1){J[i>>2]=h;J[i+4>>2]=l;break p}c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}}l=b;if(l>>>0<m>>>0){continue}break}break f}break c}ke(1313);B()}J[s>>2]=y;if(v){na(v)}if(e){na(e)}c=J[o+16>>2];if(!c){break d}J[o+20>>2]=c;na(c)}ba=o+32|0;x=(s|0)!=0;if(x){n=ba-32|0;ba=n;c=J[a>>2];g=J[a+4>>2];J[n+24>>2]=0;J[n+16>>2]=0;J[n+20>>2]=0;if((c|0)==(g|0)){b=g}else{c=g-c|0;if((c|0)<0){break c}d=c>>2;b=(d-1>>>5|0)+1|0;c=oa(b<<2);J[n+24>>2]=b;J[n+20>>2]=0;J[n+16>>2]=c;mc(n+16|0,d);g=J[a>>2];b=J[a+4>>2]}J[n+8>>2]=0;J[n>>2]=0;while(1){t:{k=0;m=0;if((b|0)==(g|0)){break t}while(1){e=J[n+16>>2];u:{if(J[e+(m>>>3&536870908)>>2]>>>m&1){break u}b=J[n>>2];J[n+4>>2]=b;f=J[a+12>>2];c=m;while(1){v:{d=c+1|0;i=c;c=(d>>>0)%3|0?d:c-2|0;if((c|0)==-1){break v}d=J[f+(c<<2)>>2];if((d|0)==-1){break v}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((m|0)==(c|0)|(c|0)==-1){break v}if(!(J[e+(c>>>3&536870908)>>2]>>>c&1)){continue}}break}j=i;w:{x:{y:{while(1){c=J[n+16>>2]+(j>>>3&536870908)|0;J[c>>2]=J[c>>2]|1<<j;c=j+1|0;e=(c>>>0)%3|0?c:j-2|0;g=J[a>>2];q=(j>>>0)%3|0;d=(q?-1:2)+j|0;l=J[n>>2];p=(l|0)==(b|0);z:{if(p){break z}t=J[(e<<2)+g>>2];s=J[a+12>>2];c=l;if((d|0)!=-1){f=s+(d<<2)|0;while(1){A:{if((t|0)!=J[c>>2]){break A}u=J[f>>2];h=J[c+4>>2];if((u|0)==(h|0)){break A}f=d;b=-1;c=-1;if((h|0)==-1){break w}break x}c=c+8|0;if((b|0)!=(c|0)){continue}break}break z}while(1){if((t|0)==J[c>>2]){u=-1;f=-1;h=J[c+4>>2];if((h|0)!=-1){break x}}c=c+8|0;if((b|0)!=(c|0)){continue}break}}g=J[(d<<2)+g>>2];B:{if(J[n+8>>2]!=(b|0)){J[b>>2]=g;J[b+4>>2]=e;b=b+8|0;J[n+4>>2]=b;break B}h=b-l|0;d=h>>3;f=d+1|0;if(f>>>0>=536870912){break c}c=h>>>2|0;h=h>>>0>=2147483640?536870911:c>>>0>f>>>0?c:f;if(h){if(h>>>0>=536870912){break y}f=oa(h<<3)}else{f=0}c=f+(d<<3)|0;J[c>>2]=g;J[c+4>>2]=e;d=c+8|0;if(!p){while(1){b=b-8|0;e=J[b+4>>2];c=c-8|0;J[c>>2]=J[b>>2];J[c+4>>2]=e;if((b|0)!=(l|0)){continue}break}b=J[n>>2]}J[n+8>>2]=f+(h<<3);J[n+4>>2]=d;J[n>>2]=c;if(b){na(b)}b=d}C:{D:{if(q){c=j-1|0;break D}c=j+2|0;if((c|0)==-1){break C}}c=J[J[a+12>>2]+(c<<2)>>2];if((c|0)==-1){break C}j=c+((c>>>0)%3|0?-1:2)|0;if((i|0)==(j|0)){break C}if((j|0)!=-1){continue}}break}g=J[a>>2];break u}xa();B()}b=J[s+(h<<2)>>2];d=f;c=h}if((u|0)!=-1){J[s+(u<<2)>>2]=-1}if((b|0)!=-1){J[s+(b<<2)>>2]=-1}J[s+(d<<2)>>2]=-1;J[s+(c<<2)>>2]=-1;k=1}m=m+1|0;b=J[a+4>>2];if(m>>>0<b-g>>2>>>0){continue}break}if(k){continue}}break}c=J[n>>2];if(c){na(c)}c=J[n+16>>2];if(c){na(c)}ba=n+32|0;l=0;k=ba-32|0;ba=k;f=J[w+12>>2];J[a+36>>2]=f;t=a+24|0;c=J[a+24>>2];b=J[a+28>>2]-c>>2;E:{F:{if(b>>>0<f>>>0){Ma(t,f-b|0,14880);J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;break F}if(b>>>0>f>>>0){J[a+28>>2]=c+(f<<2)}J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;if(!f){break E}}if((f|0)<0){break c}b=(f-1>>>5|0)+1|0;c=oa(b<<2);J[k+24>>2]=b;J[k+20>>2]=0;J[k+16>>2]=c;mc(k+16|0,f)}c=J[a>>2];d=J[a+4>>2];J[k+8>>2]=0;J[k>>2]=0;J[k+4>>2]=0;G:{if((c|0)==(d|0)){c=d}else{c=d-c|0;if((c|0)<0){break c}d=c>>2;b=(d-1>>>5|0)+1|0;c=oa(b<<2);J[k+8>>2]=b;J[k+4>>2]=0;J[k>>2]=c;mc(k,d);d=J[a>>2];c=J[a+4>>2]}if(c-d>>>0<12){break G}H:{while(1){q=P(l,3);e=(q<<2)+d|0;h=J[e>>2];b=-1;i=q+1|0;if((i|0)!=-1){b=J[(i<<2)+d>>2]}I:{if((b|0)==(h|0)){break I}i=J[e+8>>2];if((i|0)==(h|0)|(b|0)==(i|0)){break I}r=0;m=J[k>>2];while(1){i=q+r|0;if(!(J[(i>>>3&536870908)+m>>2]>>>i&1)){c=J[(i<<2)+d>>2];b=1<<c;e=J[k+16>>2];d=c>>>5|0;m=J[e+(d<<2)>>2];p=b&m;if(p){b=J[a+28>>2];J:{if((b|0)!=J[a+32>>2]){J[b>>2]=-1;J[a+28>>2]=b+4;break J}g=J[t>>2];j=b-g|0;e=j>>2;h=e+1|0;if(h>>>0>=1073741824){break c}d=j>>>1|0;j=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(j){if(j>>>0>=1073741824){break H}d=oa(j<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=-1;h=e+4|0;if((b|0)!=(g|0)){while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[a+32>>2]=d+(j<<2);J[a+28>>2]=h;J[a+24>>2]=e;if(!g){break J}na(g)}b=J[a+52>>2];K:{if((b|0)!=J[a+56>>2]){J[b>>2]=c;J[a+52>>2]=b+4;break K}g=J[a+48>>2];j=b-g|0;e=j>>2;h=e+1|0;if(h>>>0>=1073741824){break c}d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break H}d=oa(h<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=c;c=e+4|0;if((b|0)!=(g|0)){while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[a+56>>2]=d+(h<<2);J[a+52>>2]=c;J[a+48>>2]=e;if(!g){break K}na(g)}b=J[k+20>>2];c=J[k+24>>2];if((b|0)==c<<5){if((b+1|0)<0){break c}e=k+16|0;if(b>>>0<=1073741822){d=c<<6;c=(b&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}wc(e,c);b=J[k+20>>2]}J[k+20>>2]=b+1;e=J[k+16>>2];d=e+(b>>>3&536870908)|0;c=J[d>>2];A=d,C=Ll(b)&c,J[A>>2]=C;b=1<<f;d=f>>>5|0;m=J[(d<<2)+e>>2];c=f;f=c+1|0}J[(d<<2)+e>>2]=b|m;j=J[a+24>>2]+(c<<2)|0;g=J[a+12>>2];d=J[a>>2];m=J[k>>2];b=i;L:{M:{N:{while(1){if((b|0)==-1){break N}e=(b>>>3&536870908)+m|0;J[e>>2]=J[e>>2]|1<<b;J[j>>2]=b;if(p){J[(b<<2)+d>>2]=c}h=b+1|0;b=(h>>>0)%3|0?h:b-2|0;e=-1;O:{if((b|0)==-1){break O}h=J[g+(b<<2)>>2];e=-1;if((h|0)==-1){break O}b=h+1|0;e=(b>>>0)%3|0?b:h-2|0}b=e;if((i|0)!=(b|0)){continue}break}if((i|0)!=-1){break L}b=1;break M}if((i>>>0)%3|0){b=i-1|0;break M}b=i+2|0;if((b|0)==-1){break L}}b=J[g+(b<<2)>>2];if((b|0)==-1){break L}P:{if((b>>>0)%3|0){b=b-1|0;break P}b=b+2|0;if((b|0)==-1){break L}}e=J[a+12>>2];d=J[a>>2];while(1){i=(b>>>3&536870908)+m|0;J[i>>2]=J[i>>2]|1<<b;if(p){J[(b<<2)+d>>2]=c}Q:{if((b>>>0)%3|0){b=b-1|0;break Q}b=b+2|0;if((b|0)==-1){break L}}b=J[e+(b<<2)>>2];if((b|0)==-1){break L}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}break}}}r=r+1|0;if((r|0)!=3){continue}break}d=J[a>>2];c=J[a+4>>2]}l=l+1|0;if(l>>>0<(c-d>>2>>>0)/3>>>0){continue}break}break G}xa();B()}b=0;J[a+44>>2]=0;c=J[k+16>>2];d=J[k+20>>2];if(d){i=d&31;f=(d>>>3&536870908)+c|0;e=c;m=0;while(1){if(!(J[e>>2]>>>b&1)){m=m+1|0;J[a+44>>2]=m}d=(b|0)==31;b=d?0:b+1|0;e=(d<<2)+e|0;if((f|0)!=(e|0)|(b|0)!=(i|0)){continue}break}}b=J[k>>2];if(b){na(b);c=J[k+16>>2]}if(c){na(c)}ba=k+32|0}ba=w+16|0;if(!x){J[z+8>>2]=0;qc(a);a=0}ba=z+16|0;return a}qa();B()}function nd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ba-16|0;ba=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=J[4849];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+19436|0;d=J[a+19444>>2];a=J[d+8>>2];j:{if((b|0)==(a|0)){m=19396,n=Ll(c)&g,J[m>>2]=n;break j}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[4851];if(k>>>0>=h>>>0){break i}if(b){a=2<<c;a=(0-a|a)&b<<c;d=Gl(0-a&a);a=d<<3;b=a+19436|0;e=J[a+19444>>2];a=J[e+8>>2];k:{if((b|0)==(a|0)){g=Ll(d)&g;J[4849]=g;break k}J[a+12>>2]=b;J[b+8>>2]=a}J[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+e>>2]=d;if(k){b=(k&-8)+19436|0;f=J[4854];a=1<<(k>>>3);l:{if(!(a&g)){J[4849]=a|g;a=b;break l}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=e+8|0;J[4854]=c;J[4851]=d;break a}j=J[4850];if(!j){break i}c=J[(Gl(0-j&j)<<2)+19700>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break m}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0<f>>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=J[4850];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=S(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=J[(g<<2)+19700>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(J[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<<g;a=(0-a|a)&j;if(!a){break i}a=J[(Gl(a&0-a)<<2)+19700>>2]}if(!a){break o}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0<f>>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[4851]-h>>>0<=f>>>0){break i}g=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[e>>2]=0;break c}a=J[4851];if(a>>>0>=h>>>0){d=J[4854];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;J[c+4>>2]=b|1;J[a+d>>2]=b;J[d+4>>2]=h|3;break s}J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;c=0;b=0}J[4851]=b;J[4854]=c;a=d+8|0;break a}i=J[4852];if(i>>>0>h>>>0){b=i-h|0;J[4852]=b;c=J[4855];a=c+h|0;J[4855]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[4967]){c=J[4969]}else{J[4970]=-1;J[4971]=-1;J[4968]=4096;J[4969]=4096;J[4967]=l+12&-16^1431655768;J[4972]=0;J[4960]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=J[4959];if(d){c=J[4957];g=c+b|0;if(d>>>0<g>>>0|c>>>0>=g>>>0){break a}}t:{if(!(K[19840]&4)){u:{v:{w:{x:{d=J[4855];if(d){a=19844;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0<c+J[a+4>>2]>>>0){break x}a=J[a+8>>2];if(a){continue}break}}c=Kb(0);if((c|0)==-1){break u}g=b;d=J[4968];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=J[4959];if(d){a=J[4957];f=a+g|0;if(d>>>0<f>>>0|a>>>0>=f>>>0){break u}}a=Kb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=Kb(g);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=J[4969];c=c+(j-g|0)&0-c;if((Kb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}J[4960]=J[4960]|4}c=Kb(b);a=Kb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=J[4957]+g|0;J[4957]=a;if(a>>>0>M[4958]){J[4958]=a}y:{e=J[4855];if(e){a=19844;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break y}a=J[a+8>>2];if(a){continue}break}break f}a=J[4853];if(!(a>>>0<=c>>>0?a:0)){J[4853]=c}a=0;J[4962]=g;J[4961]=c;J[4857]=-1;J[4858]=J[4967];J[4964]=0;while(1){d=a<<3;b=d+19436|0;J[d+19444>>2]=b;J[d+19448>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4852]=b;a=a+c|0;J[4855]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4856]=J[4971];break e}if(K[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}J[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;J[4855]=c;b=J[4852]+g|0;a=b-a|0;J[4852]=a;J[c+4>>2]=a|1;J[(b+e|0)+4>>2]=40;J[4856]=J[4971];break e}d=0;break b}c=0;break c}if(M[4853]>c>>>0){J[4853]=c}b=c+g|0;a=19844;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break E}break}if(!(K[a+12|0]&8)){break D}}a=19844;while(1){b=J[a>>2];if(b>>>0<=e>>>0){f=b+J[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){J[4855]=i;a=J[4852]+a|0;J[4852]=a;J[i+4>>2]=a|1;break A}if(J[4854]==(g|0)){J[4854]=i;a=J[4851]+a|0;J[4851]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break A}f=J[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=J[g+8>>2];b=f>>>3|0;c=J[g+12>>2];if((c|0)==(d|0)){m=19396,n=J[4849]&Ll(b),J[m>>2]=n;break F}J[d+12>>2]=c;J[c+8>>2]=d;break F}h=J[g+24>>2];c=J[g+12>>2];G:{if((g|0)!=(c|0)){b=J[g+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break G}H:{f=g+20|0;b=J[f>>2];if(b){break H}f=g+16|0;b=J[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=J[f>>2];if(b){continue}f=c+16|0;b=J[c+16>>2];if(b){continue}break}J[d>>2]=0}if(!h){break F}d=J[g+28>>2];b=(d<<2)+19700|0;I:{if(J[b>>2]==(g|0)){J[b>>2]=c;if(c){break I}m=19400,n=J[4850]&Ll(d),J[m>>2]=n;break F}J[h+(J[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}J[c+24>>2]=h;b=J[g+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[g+20>>2];if(!b){break F}J[c+20>>2]=b;J[b+24>>2]=c}g=e+g|0;f=J[g+4>>2];a=a+e|0}J[g+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+19436|0;c=J[4849];a=1<<(a>>>3);J:{if(!(c&a)){J[4849]=a|c;a=b;break J}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=S(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+19700|0;d=J[4850];c=1<<f;K:{if(!(d&c)){J[4850]=c|d;J[b>>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4852]=b;a=a+c|0;J[4855]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4856]=J[4971];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0<e+16>>>0?e:a;J[d+4>>2]=27;a=J[4964];J[d+16>>2]=J[4963];J[d+20>>2]=a;a=J[4962];J[d+8>>2]=J[4961];J[d+12>>2]=a;J[4963]=d+8;J[4962]=g;J[4961]=c;J[4964]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0<f>>>0){continue}break}if((d|0)==(e|0)){break e}J[d+4>>2]=J[d+4>>2]&-2;f=d-e|0;J[e+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+19436|0;c=J[4849];a=1<<(f>>>3);L:{if(!(c&a)){J[4849]=a|c;a=b;break L}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19700|0;d=J[4850];c=1<<a;M:{if(!(d&c)){J[4850]=c|d;J[b>>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break e}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=J[4852];if(a>>>0<=h>>>0){break d}b=a-h|0;J[4852]=b;c=J[4855];a=c+h|0;J[4855]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[4804]=48;a=0;break a}N:{if(!g){break N}b=J[d+28>>2];a=(b<<2)+19700|0;O:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break O}j=Ll(b)&j;J[4850]=j;break N}J[g+(J[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}J[c+24>>2]=g;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break N}J[c+20>>2]=a;J[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break P}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+19436|0;c=J[4849];a=1<<(f>>>3);Q:{if(!(c&a)){J[4849]=a|c;a=b;break Q}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19700|0;R:{c=1<<a;S:{if(!(c&j)){J[4850]=c|j;J[b>>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break P}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=J[c+28>>2];a=(b<<2)+19700|0;U:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break U}m=19400,n=Ll(b)&j,J[m>>2]=n;break T}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break T}J[d+20>>2]=a;J[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break V}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+19436|0;e=J[4854];a=1<<(k>>>3);W:{if(!(a&g)){J[4849]=a|g;a=b;break W}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a}J[4854]=d;J[4851]=f}a=c+8|0}ba=l+16|0;return a|0}function Kh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0);e=ba+-64|0;ba=e;c=J[a+4>>2];i=J[a+8>>2];a:{if((c|0)==(i|0)){J[a+72>>2]=0;b=1;break a}d=i-c>>2;m=d>>>0<=1?1:d;j=m&3;h=J[J[a+28>>2]+4>>2];d=J[h+8>>2];if(m-1>>>0>=3){m=m&-4;while(1){l=g;g=b<<2;g=(((l+K[J[d+(J[g+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|4)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|8)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|12)+c>>2]<<2)>>2]+24|0]|0;b=b+4|0;k=k+4|0;if((m|0)!=(k|0)){continue}break}}if(j){while(1){g=K[J[d+(J[(b<<2)+c>>2]<<2)>>2]+24|0]+g|0;b=b+1|0;f=f+1|0;if((j|0)!=(f|0)){continue}break}}o=J[h+80>>2];J[a+72>>2]=g;if((c|0)==(i|0)){b=1;break a}m=0;while(1){b=J[(m<<2)+c>>2];J[e+60>>2]=b;b:{c:{d:{e:{f:{c=J[a+28>>2];i=J[J[J[c+4>>2]+8>>2]+(b<<2)>>2];switch(J[i+28>>2]-1|0){case 0:case 2:case 4:break e;case 8:break f;default:break b}}J[e+36>>2]=-1;J[e+32>>2]=2032;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;g=J[c+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;g=jb(g,e+60|0,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}g:{if((g|0)<=0){break g}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;d=0;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;h:{if(!yc(j,e+60|0,e+16|0)){break h}f=J[J[a+28>>2]+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);d=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);d=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;d=yc(f,e+60|0,e);if(H[e+11|0]>=0){break h}na(J[e>>2])}if(H[e+27|0]<0){na(J[e+16>>2])}i:{if(d){b=K[i+24|0];j:{if(!b){d=0;break j}b=b<<2;d=oa(b);pa(d,0,b)}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;De(j,e+60|0,e+16|0,K[i+24|0],d);if(H[e+27|0]<0){na(J[e+16>>2])}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=18;J[e+24>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);f=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);f=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;p=Ce(j,e+60|0,e+16|0);if(H[e+27|0]<0){na(J[e+16>>2])}ch(e+32|0,g,d,K[i+24|0],p);if(!d){break i}na(d);break i}if(!_g(e+32|0,i,g)){break g}}d=J[a+40>>2];k:{if((d|0)!=J[a+44>>2]){J[d>>2]=2032;b=J[e+36>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[d+4>>2]=b;b=J[e+44>>2];c=J[e+40>>2];if((b|0)!=(c|0)){b=b-c|0;if((b|0)<0){break d}c=oa(b);J[d+12>>2]=c;J[d+8>>2]=c;J[d+16>>2]=(b&-4)+c;b=J[e+40>>2];g=J[e+44>>2];if((b|0)!=(g|0)){while(1){N[c>>2]=N[b>>2];c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}J[d+12>>2]=c}N[d+20>>2]=N[e+52>>2];J[a+40>>2]=d+24;break k}f=0;l:{m:{n:{o:{b=J[a+40>>2];j=J[a+36>>2];d=(b-j|0)/24|0;c=d+1|0;if(c>>>0<178956971){g=(J[a+44>>2]-j|0)/24|0;h=g<<1;h=g>>>0>=89478485?178956970:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=178956971){break o}f=oa(P(h,24))}c=P(d,24)+f|0;J[c>>2]=2032;d=J[e+36>>2];J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+4>>2]=d;g=J[e+40>>2];k=J[e+44>>2];if((g|0)!=(k|0)){l=k-g|0;if((l|0)<0){break n}d=oa(l);J[c+8>>2]=d;J[c+16>>2]=(l&-4)+d;while(1){N[d>>2]=N[g>>2];d=d+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}J[c+12>>2]=d}d=P(h,24)+f|0;N[c+20>>2]=N[e+52>>2];g=c+24|0;if((b|0)==(j|0)){break m}while(1){c=c-24|0;J[c>>2]=2032;b=b-24|0;J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;N[c+20>>2]=N[b+20>>2];if((b|0)!=(j|0)){continue}break}J[a+44>>2]=d;d=J[a+40>>2];J[a+40>>2]=g;b=J[a+36>>2];J[a+36>>2]=c;if((b|0)==(d|0)){break l}while(1){d=d-24|0;da[J[J[d>>2]>>2]](d)|0;if((b|0)!=(d|0)){continue}break}break l}qa();B()}xa();B()}qa();B()}J[a+44>>2]=d;J[a+40>>2]=g;J[a+36>>2]=c}if(b){na(b)}}b=e+32|0;c=Mc(b,i,o);J[e>>2]=c;J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;je(b,i,e+16|0,c);b=J[e+16>>2];if(b){J[e+20>>2]=b;na(b)}b=J[a+64>>2];p:{if(b>>>0<M[a+68>>2]){c=J[e>>2];J[e>>2]=0;J[b>>2]=c;J[a+64>>2]=b+4;break p}c=0;q:{r:{s:{d=J[a+60>>2];g=J[a+64>>2]-d>>2;b=g+1|0;if(b>>>0<1073741824){d=J[a+68>>2]-d|0;i=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<i>>>0?i:b;if(d){if(d>>>0>=1073741824){break s}c=oa(d<<2)}i=J[e>>2];J[e>>2]=0;b=(g<<2)+c|0;J[b>>2]=i;d=(d<<2)+c|0;g=b+4|0;c=J[a+64>>2];i=J[a+60>>2];if((c|0)==(i|0)){break r}while(1){c=c-4|0;f=J[c>>2];J[c>>2]=0;b=b-4|0;J[b>>2]=f;if((c|0)!=(i|0)){continue}break}J[a+68>>2]=d;d=J[a+64>>2];J[a+64>>2]=g;c=J[a+60>>2];J[a+60>>2]=b;if((c|0)==(d|0)){break q}while(1){d=d-4|0;b=J[d>>2];J[d>>2]=0;if(b){Ka(b)}if((c|0)!=(d|0)){continue}break}break q}qa();B()}xa();B()}J[a+68>>2]=d;J[a+64>>2]=g;J[a+60>>2]=b}if(c){na(c)}}b=J[e>>2];J[e>>2]=0;if(b){Ka(b)}J[e+32>>2]=2032;b=J[e+40>>2];if(!b){break b}J[e+44>>2]=b;na(b);break b}J[e+32>>2]=2032;a=J[e+40>>2];if(a){J[e+44>>2]=a;na(a)}b=0;break a}j=0;t:{u:{g=K[i+24|0];v:{if(!g){d=0;break v}b=0;f=g<<2;d=oa(f);c=d;h=g&7;if(h){while(1){J[c>>2]=2147483647;c=c+4|0;b=b+1|0;if((h|0)!=(b|0)){continue}break}}if((g-1&1073741823)>>>0>=7){b=d+f|0;while(1){J[c+24>>2]=2147483647;J[c+28>>2]=2147483647;J[c+16>>2]=2147483647;J[c+20>>2]=2147483647;J[c+8>>2]=2147483647;J[c+12>>2]=2147483647;J[c>>2]=2147483647;J[c+4>>2]=2147483647;c=c+32|0;if((b|0)!=(c|0)){continue}break}}b=K[i+24|0];if(b){break u}}g=0;b=0;break t}b=b<<2;g=oa(b);pa(g,0,b);b=K[i+24|0]}if(!J[i+80>>2]){break c}while(1){$c(i,j,b<<24>>24,g);b=K[i+24|0];w:{if(!b){break w}c=0;if((b|0)!=1){l=b&254;f=0;while(1){h=c<<2;k=h+d|0;n=J[g+h>>2];if((n|0)<J[k>>2]){J[k>>2]=n}h=h|4;k=h+d|0;h=J[g+h>>2];if(J[k>>2]>(h|0)){J[k>>2]=h}c=c+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!(b&1)){break w}c=c<<2;f=c+d|0;c=J[c+g>>2];if(J[f>>2]<=(c|0)){break w}J[f>>2]=c}j=j+1|0;if(j>>>0<M[i+80>>2]){continue}break}break c}qa();B()}c=0;x:{if(!b){break x}y:{while(1){z:{k=(c<<2)+d|0;b=J[a+52>>2];A:{if((b|0)!=J[a+56>>2]){J[b>>2]=J[k>>2];J[a+52>>2]=b+4;break A}h=b;b=J[a+48>>2];f=h-b|0;l=f>>2;j=l+1|0;if(j>>>0>=1073741824){break z}h=f>>>1|0;j=f>>>0>=2147483644?1073741823:j>>>0<h>>>0?h:j;if(j){if(j>>>0>=1073741824){break y}h=oa(j<<2)}else{h=0}l=h+(l<<2)|0;J[l>>2]=J[k>>2];f=ta(h,b,f);J[a+56>>2]=f+(j<<2);J[a+52>>2]=l+4;J[a+48>>2]=f;if(!b){break A}na(b)}c=c+1|0;if(c>>>0<K[i+24|0]){continue}break x}break}qa();B()}xa();B()}if(g){na(g)}if(!d){break b}na(d)}b=1;m=m+1|0;c=J[a+4>>2];if(m>>>0<J[a+8>>2]-c>>2>>>0){continue}break}}ba=e- -64|0;return b|0}function ml(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ba-48|0;ba=i;h=J[a+4>>2];e=J[a+12>>2];J[i+40>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;l=J[J[J[h+4>>2]+8>>2]+(e<<2)>>2];d=i+8|0;if((b|0)==-1){b=bh(e,h)}a:{if((b|0)==-2){break a}if((da[J[J[h>>2]+8>>2]](h)|0)==1){j=ba-32|0;ba=j;k=J[J[J[h+4>>2]+8>>2]+(e<<2)>>2];b:{c:{d:{if((da[J[J[h>>2]+8>>2]](h)|0)!=1|b-1>>>0>5){break d}f=da[J[J[h>>2]+52>>2]](h)|0;g=da[J[J[h>>2]+60>>2]](h,e)|0;if(!f|!g){break d}c=da[J[J[h>>2]+56>>2]](h,e)|0;if(c){a=J[h+56>>2];J[j+20>>2]=c;J[j+16>>2]=a;J[j+28>>2]=g;J[j+24>>2]=g+12;e=j+16|0;a=0;e:{f:{switch(b-1|0){case 0:b=oa(60);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b>>2]=2748;a=b;break e;case 3:b=oa(168);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3512;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break e;case 4:b=oa(104);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b>>2]=3760;a=J[e+4>>2];J[b+88>>2]=J[e>>2];J[b+92>>2]=a;a=J[e+12>>2];J[b+96>>2]=J[e+8>>2];J[b+100>>2]=a;a=b;break e;case 5:break f;default:break e}}a=oa(144);J[a+4>>2]=k;J[a>>2]=3456;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;g:{h:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break h}b=oa(c);J[a+36>>2]=b;J[a+32>>2]=b;J[a+40>>2]=(c&-4)+b;c=J[d+24>>2];f=J[d+28>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+36>>2]=b}J[a>>2]=3400;b=J[e+4>>2];J[a+44>>2]=J[e>>2];J[a+48>>2]=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=4624;J[a>>2]=3996;b=J[e+4>>2];J[a+72>>2]=J[e>>2];J[a+76>>2]=b;b=J[e+12>>2];J[a+80>>2]=J[e+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=4232;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break g}qa();B()}break e}c=a;break d}a=J[h+56>>2];J[j+20>>2]=f;J[j+16>>2]=a;J[j+28>>2]=g;J[j+24>>2]=g+12;e=j+16|0;a=0;i:{j:{switch(b-1|0){case 0:b=oa(60);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b>>2]=4652;a=b;break i;case 3:b=oa(168);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5076;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break i;case 4:b=oa(104);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b>>2]=5312;a=J[e+4>>2];J[b+88>>2]=J[e>>2];J[b+92>>2]=a;a=J[e+12>>2];J[b+96>>2]=J[e+8>>2];J[b+100>>2]=a;a=b;break i;case 5:break j;default:break i}}a=oa(144);J[a+4>>2]=k;J[a>>2]=3456;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;k:{l:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break l}b=oa(c);J[a+36>>2]=b;J[a+32>>2]=b;J[a+40>>2]=(c&-4)+b;c=J[d+24>>2];f=J[d+28>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+36>>2]=b}J[a>>2]=5020;b=J[e+4>>2];J[a+44>>2]=J[e>>2];J[a+48>>2]=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=6120;J[a>>2]=5536;b=J[e+4>>2];J[a+72>>2]=J[e>>2];J[a+76>>2]=b;b=J[e+12>>2];J[a+80>>2]=J[e+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=5756;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break k}qa();B()}break i}c=a}ba=j+32|0;break b}qa();B()}if(c){break a}}c=oa(44);J[c+4>>2]=l;J[c>>2]=3456;a=J[d+4>>2];J[c+8>>2]=J[d>>2];J[c+12>>2]=a;a=J[d+12>>2];J[c+16>>2]=J[d+8>>2];J[c+20>>2]=a;a=J[d+20>>2];J[c+24>>2]=J[d+16>>2];J[c+28>>2]=a;J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;m:{a=J[d+24>>2];l=J[d+28>>2];if((a|0)!=(l|0)){f=l-a|0;if((f|0)<0){break m}b=oa(f);J[c+32>>2]=b;J[c+40>>2]=(f&-4)+b;while(1){J[b>>2]=J[a>>2];b=b+4|0;a=a+4|0;if((l|0)!=(a|0)){continue}break}J[c+36>>2]=b}J[c>>2]=6148;break a}qa();B()}a=J[i+32>>2];if(a){J[i+36>>2]=a;na(a)}ba=i+48|0;return c|0}function Ne(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,P=0;k=ba-336|0;ba=k;n=h;p=i&65535;o=d;m=e&65535;u=(e^i)&-2147483648;s=i>>>16&32767;q=e>>>16&32767;a:{b:{if(s-32767>>>0>4294934529&q-32767>>>0>=4294934530){break b}j=e&2147483647;if(!(!d&(j|0)==2147418112?!(b|c):j>>>0<2147418112)){r=d;u=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){r=h;u=i|32768;b=f;c=g;break a}if(!(b|d|(j^2147418112|c))){if(!(f|h|(e^2147418112|g))){b=0;c=0;u=2147450880;break a}u=u|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){b=0;c=0;break a}if(!(b|d|(c|j))){b=!(f|h|(e|g));r=b?0:r;u=b?2147450880:u;b=0;c=0;break a}if(!(f|h|(e|g))){u=u|2147418112;b=0;c=0;break a}if((j|0)==65535|j>>>0<65535){d=!(m|o);i=d;j=d?b:o;d=d<<6;h=d;i=S(i?c:m);d=d+((i|0)==32?S(j)+32|0:i)|0;Pa(k+320|0,b,c,o,m,d-15|0);v=16-d|0;o=J[k+328>>2];m=J[k+332>>2];c=J[k+324>>2];b=J[k+320>>2]}if(e>>>0>65535){break b}d=!(n|p);h=d;i=d?f:n;d=d<<6;e=d;h=S(h?g:p);d=d+((h|0)==32?S(i)+32|0:h)|0;Pa(k+304|0,f,g,n,p,d-15|0);v=(d+v|0)-16|0;n=J[k+312>>2];p=J[k+316>>2];f=J[k+304>>2];g=J[k+308>>2]}e=p|65536;A=e;B=n;d=n;j=e<<15|d>>>17;e=d<<15|g>>>17;d=e;i=0-d|0;h=j;j=1963258675-(j+((d|0)!=0)|0)|0;Xa(k+288|0,d,h,0,0,i,j,0,0);d=J[k+296>>2];Xa(k+272|0,0-d|0,0-(J[k+300>>2]+((d|0)!=0)|0)|0,0,0,i,j,0,0);d=J[k+280>>2];i=d<<1|J[k+276>>2]>>>31;d=J[k+284>>2]<<1|d>>>31;Xa(k+256|0,i,d,0,0,e,h,0,0);j=J[k+264>>2];Xa(k+240|0,i,d,0,0,0-j|0,0-(J[k+268>>2]+((j|0)!=0)|0)|0,0,0);i=J[k+248>>2];j=i<<1|J[k+244>>2]>>>31;d=J[k+252>>2]<<1|i>>>31;Xa(k+224|0,j,d,0,0,e,h,0,0);i=J[k+232>>2];Xa(k+208|0,j,d,0,0,0-i|0,0-(J[k+236>>2]+((i|0)!=0)|0)|0,0,0);d=J[k+216>>2];i=d<<1|J[k+212>>2]>>>31;d=J[k+220>>2]<<1|d>>>31;Xa(k+192|0,i,d,0,0,e,h,0,0);j=J[k+200>>2];Xa(k+176|0,i,d,0,0,0-j|0,0-(J[k+204>>2]+((j|0)!=0)|0)|0,0,0);i=e;e=J[k+184>>2];d=h;n=e<<1|J[k+180>>2]>>>31;h=n-1|0;e=(J[k+188>>2]<<1|e>>>31)-!n|0;Xa(k+160|0,i,d,0,0,h,e,0,0);d=h;Xa(k+144|0,f<<15,g<<15|f>>>17,0,0,d,e,0,0);t=k+112|0;y=J[k+168>>2];h=J[k+172>>2];n=J[k+160>>2];i=J[k+152>>2];l=n+i|0;p=J[k+164>>2];j=p+J[k+156>>2]|0;j=i>>>0>l>>>0?j+1|0:j;i=j;j=(p|0)==(j|0)&l>>>0<n>>>0|j>>>0<p>>>0;p=j+y|0;j=j>>>0>p>>>0?h+1|0:h;n=!i&l>>>0>1|(i|0)!=0;h=n+p|0;j=n>>>0>h>>>0?j+1|0:j;Xa(t,d,e,0,0,0-h|0,0-(((h|0)!=0)+j|0)|0,0,0);Xa(k+128|0,1-l|0,0-((l>>>0>1)+i|0)|0,0,0,d,e,0,0);H=(q-s|0)+v|0;e=J[k+116>>2];t=e;d=J[k+112>>2];j=e<<1|d>>>31;n=d<<1;q=j;d=j;h=J[k+140>>2];z=h;e=J[k+136>>2];j=h<<1|e>>>31;i=e<<1|J[k+132>>2]>>>31;h=i+n|0;d=d+j|0;d=h>>>0<i>>>0?d+1|0:d;e=d;d=d-(h>>>0<13927)|0;x=d;y=d;l=0;j=m|65536;I=j;K=o;d=o;j=j<<1|d>>>31;N=d<<1;O=j;D=j;d=Hl(x,l,j,0);j=ca;E=d;w=j;v=b<<1;d=c<<1|b>>>31;s=d;j=0;p=j;i=h-13927|0;x=(e|0)==(x|0)&i>>>0<h>>>0|e>>>0>x>>>0;e=(e|0)==(q|0)&h>>>0<n>>>0|e>>>0<q>>>0;d=J[k+120>>2];h=J[k+124>>2]<<1|d>>>31;d=d<<1|t>>>31;j=h;l=z>>>31|0;d=l+d|0;j=d>>>0<l>>>0?j+1|0:j;h=d;d=d+e|0;l=h>>>0>d>>>0?j+1|0:j;e=d;d=d+x|0;l=e>>>0>d>>>0?l+1|0:l;e=d-1|0;x=l-!d|0;q=0;j=Hl(s,p,x,q);d=j+E|0;h=ca+w|0;h=d>>>0<j>>>0?h+1|0:h;t=(w|0)==(h|0)&d>>>0<E>>>0|h>>>0<w>>>0;j=0;z=e;L=c>>>31|0;C=L|o<<1;w=0;e=Hl(e,j,C,w);o=e+d|0;j=ca+h|0;l=0;j=e>>>0>o>>>0?j+1|0:j;n=j;d=(j|0)==(h|0)&d>>>0>o>>>0|h>>>0>j>>>0;e=d;d=d+t|0;l=e>>>0>d>>>0?1:l;e=Hl(D,p,x,q);d=e+d|0;j=ca+l|0;t=d;d=d>>>0<e>>>0?j+1|0:j;e=Hl(D,p,z,w);m=ca;h=e;e=Hl(C,w,x,q);l=h+e|0;j=ca+m|0;j=e>>>0>l>>>0?j+1|0:j;e=j;j=(m|0)==(j|0)&h>>>0>l>>>0|j>>>0<m>>>0;m=t+e|0;d=d+j|0;d=m>>>0<e>>>0?d+1|0:d;t=m;m=d;e=0;d=e+o|0;j=l+n|0;j=d>>>0<e>>>0?j+1|0:j;e=j;h=(j|0)==(n|0)&d>>>0<o>>>0|j>>>0<n>>>0;j=m;l=h;h=h+t|0;j=l>>>0>h>>>0?j+1|0:j;F=h;l=j;t=d;m=d;o=e;E=i;d=Hl(i,0,C,w);h=ca;e=d;i=Hl(y,r,s,r);d=d+i|0;j=ca+h|0;j=d>>>0<i>>>0?j+1|0:j;i=(h|0)==(j|0)&d>>>0<e>>>0|h>>>0>j>>>0;h=j;G=v&-2;e=Hl(z,w,G,0);n=e+d|0;j=ca+j|0;j=e>>>0>n>>>0?j+1|0:j;e=j;d=(j|0)==(h|0)&d>>>0>n>>>0|h>>>0>j>>>0;h=0;i=d+i|0;d=(i>>>0<d>>>0?1:h)+o|0;j=l;m=i+m|0;d=m>>>0<i>>>0?d+1|0:d;i=d;d=(d|0)==(o|0)&m>>>0<t>>>0|d>>>0<o>>>0;h=d;d=d+F|0;j=h>>>0>d>>>0?j+1|0:j;P=d;t=j;d=Hl(D,p,E,r);F=ca;D=d;h=Hl(x,q,G,r);d=d+h|0;j=ca+F|0;o=d;p=Hl(y,r,C,w);l=d+p|0;h=d>>>0<h>>>0?j+1|0:j;d=h+ca|0;d=l>>>0<p>>>0?d+1|0:d;q=l;j=Hl(s,r,z,w);p=l+j|0;l=ca+d|0;l=j>>>0>p>>>0?l+1|0:l;z=0;C=(d|0)==(l|0)&p>>>0<q>>>0|d>>>0>l>>>0;j=(h|0)==(F|0)&o>>>0<D>>>0|h>>>0<F>>>0;d=(d|0)==(h|0)&o>>>0>q>>>0|d>>>0<h>>>0;d=d+j|0;d=d+C|0;h=l;q=h+m|0;j=(d|z)+i|0;j=h>>>0>q>>>0?j+1|0:j;o=j;d=(i|0)==(j|0)&m>>>0>q>>>0|i>>>0>j>>>0;j=t;h=d;d=d+P|0;j=h>>>0>d>>>0?j+1|0:j;z=d;i=j;d=Hl(y,r,G,r);y=ca;m=d;h=Hl(s,r,E,r);d=d+h|0;j=ca+y|0;j=d>>>0<h>>>0?j+1|0:j;t=0;h=(j|0)==(y|0)&d>>>0<m>>>0|j>>>0<y>>>0;m=j;d=j+n|0;j=(h|t)+e|0;j=d>>>0<m>>>0?j+1|0:j;h=j;m=(e|0)==(j|0)&d>>>0<n>>>0|e>>>0>j>>>0;j=p;p=0;n=p+d|0;l=h+j|0;j=0;l=n>>>0<p>>>0?l+1|0:l;d=(h|0)==(l|0)&d>>>0>n>>>0|h>>>0>l>>>0;e=d;d=d+m|0;j=(e>>>0>d>>>0?1:j)+o|0;l=i;e=d;d=d+q|0;j=e>>>0>d>>>0?j+1|0:j;e=j;h=(o|0)==(j|0)&d>>>0<q>>>0|j>>>0<o>>>0;i=h;h=h+z|0;l=i>>>0>h>>>0?l+1|0:l;i=l;c:{if((l|0)==131071|l>>>0<131071){K=N|L;I=w|O;Xa(k+80|0,d,e,h,i,f,g,B,A);l=J[k+84>>2];p=l;j=b<<17;n=0;m=J[k+88>>2];c=n-m|0;b=J[k+80>>2];l=(l|b)!=0;o=c-l|0;m=(j-(J[k+92>>2]+(m>>>0>n>>>0)|0)|0)-(c>>>0<l>>>0)|0;n=0-b|0;p=0-(((b|0)!=0)+p|0)|0;b=H+16382|0;break c}d=(e&1)<<31|d>>>1;e=h<<31|e>>>1;h=(i&1)<<31|h>>>1;i=i>>>1|0;Xa(k+96|0,d,e,h,i,f,g,B,A);o=J[k+100>>2];s=o;v=J[k+104>>2];n=0-v|0;l=J[k+96>>2];m=(o|l)!=0;o=n-m|0;m=((b<<16)-(J[k+108>>2]+(p>>>0<v>>>0)|0)|0)-(m>>>0>n>>>0)|0;n=0-l|0;p=0-(((l|0)!=0)+s|0)|0;v=b;s=c;b=H+16383|0}if((b|0)>=32767){u=u|2147418112;b=0;c=0;break a}d:{if((b|0)>0){l=m<<1|o>>>31;o=o<<1|p>>>31;m=l;v=h;s=i&65535|b<<16;l=p<<1|n>>>31;i=n<<1;break d}if((b|0)<=-113){b=0;c=0;break a}Gb(k- -64|0,d,e,h,i,1-b|0);Pa(k+48|0,v,s,K,I,b+112|0);d=J[k+64>>2];e=J[k+68>>2];v=J[k+72>>2];s=J[k+76>>2];Xa(k+32|0,f,g,B,A,d,e,v,s);b=J[k+40>>2];c=J[k+56>>2];l=J[k+36>>2];o=b<<1|l>>>31;n=c-o|0;m=J[k+60>>2]-((J[k+44>>2]<<1|b>>>31)+(c>>>0<o>>>0)|0)|0;b=J[k+32>>2];h=l<<1|b>>>31;j=b<<1;i=J[k+52>>2];c=J[k+48>>2];b=(h|0)==(i|0)&j>>>0>c>>>0|h>>>0>i>>>0;o=n-b|0;m=m-(b>>>0>n>>>0)|0;l=i-((c>>>0<j>>>0)+h|0)|0;i=c-j|0}b=i;Xa(k+16|0,f,g,B,A,3,0,0,0);Xa(k,f,g,B,A,5,0,0,0);c=0;h=l+c|0;j=d&1;b=b+j|0;h=i>>>0>b>>>0?h+1|0:h;i=b;g=(g|0)==(h|0)&b>>>0>f>>>0|g>>>0<h>>>0;l=m;b=(c|0)==(h|0)&b>>>0<j>>>0|c>>>0>h>>>0;f=b+o|0;l=b>>>0>f>>>0?l+1|0:l;j=e;b=(l|0)==(A|0);b=b&(f|0)==(B|0)?g:b&f>>>0>B>>>0|l>>>0>A>>>0;c=b;b=b+d|0;j=c>>>0>b>>>0?j+1|0:j;c=j;d=(e|0)==(j|0)&b>>>0<d>>>0|e>>>0>j>>>0;j=s;e=d;d=d+v|0;j=e>>>0>d>>>0?j+1|0:j;g=d;e=J[k+20>>2];m=(e|0)==(h|0)&M[k+16>>2]<i>>>0|e>>>0<h>>>0;e=J[k+28>>2];d=J[k+24>>2];e=j>>>0<2147418112&((d|0)==(f|0)&(e|0)==(l|0)?m:(e|0)==(l|0)&d>>>0<f>>>0|e>>>0<l>>>0);d=c;m=e;e=b+e|0;d=m>>>0>e>>>0?d+1|0:d;b=(c|0)==(d|0)&b>>>0>e>>>0|c>>>0>d>>>0;c=b;b=b+g|0;j=c>>>0>b>>>0?j+1|0:j;g=b;c=J[k+4>>2];h=(c|0)==(h|0)&M[k>>2]<i>>>0|c>>>0<h>>>0;c=J[k+12>>2];b=J[k+8>>2];b=j>>>0<2147418112&((b|0)==(f|0)&(c|0)==(l|0)?h:(c|0)==(l|0)&b>>>0<f>>>0|c>>>0<l>>>0);c=b;b=b+e|0;l=c>>>0>b>>>0?d+1|0:d;c=l;e=(d|0)==(l|0)&b>>>0<e>>>0|d>>>0>l>>>0;d=j;f=e;e=e+g|0;d=f>>>0>e>>>0?d+1|0:d;r=e|r;u=d|u}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=r;J[a+12>>2]=u;ba=k+336|0}function ye(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;s=ba-32|0;ba=s;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;t=J[e+20>>2];if(!J[e+16>>2]&(t|0)<=0|(t|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);t=J[e+20>>2];if(!J[e+16>>2]&(t|0)<=0|(t|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){F=a+12|0;za(F);G=a+44|0;d=G;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];H=a- -64|0;d=H;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];I=a+84|0;d=I;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[s+24>>2]=J[b+8>>2];d=J[b+4>>2];J[s+16>>2]=J[b>>2];J[s+20>>2]=d;J[s+8>>2]=J[c+8>>2];b=J[c+4>>2];J[s>>2]=J[c>>2];J[s+4>>2]=b;c=0;b=0;f=ba-32|0;ba=f;o=a;i=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(i){if(i>>>0>=1073741824){break b}a=i<<2;c=oa(a);J[f+8>>2]=c;b=a+c|0;J[f+16>>2]=b;pa(c,0,a);J[f+12>>2]=b}a=J[o+140>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);i=J[o+8>>2];c=J[f+8>>2];b=J[f+12>>2]}J[a+4>>2]=b;J[a>>2]=c;J[a+8>>2]=J[f+16>>2];c=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;b=0;c:{if(i){if(i>>>0>=1073741824){break c}a=i<<2;b=oa(a);J[f+8>>2]=b;c=a+b|0;J[f+16>>2]=c;pa(b,0,a);J[f+12>>2]=c}a=J[o+152>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);c=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=c;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];t=J[s+20>>2];z=J[s+24>>2];d=J[s+4>>2];C=J[s+8>>2];b=J[s>>2];c=J[s+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;v=(a>>>0)/113|0;a=J[J[f+12>>2]+(v<<2)>>2]+P(a-P(v,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=C;J[a+12>>2]=b;J[a+4>>2]=t;J[a+8>>2]=z;J[a>>2]=c;i=J[f+28>>2]+1|0;J[f+28>>2]=i;if(i){a=z;L=a&-4;K=a&3;N=o+44|0;m=o+12|0;O=o+84|0;Q=a>>>0<4;while(1){b=J[f+12>>2];h=J[f+24>>2];g=i-1|0;a=h+g|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;E=J[a+32>>2];c=J[a+24>>2];v=J[a+12>>2];a=J[a>>2];J[f+28>>2]=g;g=J[f+16>>2];if((((b|0)!=(g|0)?P(g-b>>2,113)-1|0:0)-(h+i|0)|0)+1>>>0>=226){na(J[g-4>>2]);J[f+16>>2]=J[f+16>>2]-4}g=J[o>>2];i=(c|0)!=(J[o+8>>2]-1|0)?c+1|0:0;q=i<<2;D=P(E,12);h=D+J[o+152>>2]|0;c=J[q+J[h>>2]>>2];d:{e:{if((g|0)==(c|0)){break e}f:{g:{j=v-a|0;if(j>>>0<=2){g=J[o+128>>2];J[g>>2]=i;c=1;b=J[o+8>>2];if(b>>>0>1){break g}break f}h=J[o+140>>2];b=h+D|0;n=h;h=D+12|0;bb(n+h|0,J[b>>2],J[b+4>>2]);b=J[h+J[o+140>>2]>>2]+q|0;g=J[b>>2]+(1<<g+(c^-1))|0;J[b>>2]=g;b=a;h:{if((a|0)==(v|0)){break h}y=J[t+24>>2];n=y+q|0;b=v;c=a;if(!z){if(g>>>0>M[n>>2]){break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}if(g>>>0<=M[(J[d+24>>2]+q|0)+(P(b,C)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(b|0)){continue}break}break h}while(1){h=P(c,z)<<2;if(g>>>0>M[h+n>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}r=J[d+24>>2]+(P(b,C)<<2)|0;if(g>>>0<=M[r+q>>2]){continue}break}w=h+y|0;u=0;h=0;p=0;if(!Q){while(1){k=h<<2;l=k+w|0;x=J[l>>2];A=l;l=k+r|0;J[A>>2]=J[l>>2];J[l>>2]=x;l=k|4;x=l+w|0;A=J[x>>2];l=l+r|0;J[x>>2]=J[l>>2];J[l>>2]=A;l=k|8;x=l+w|0;A=J[x>>2];l=l+r|0;J[x>>2]=J[l>>2];J[l>>2]=A;k=k|12;l=k+w|0;x=J[l>>2];k=k+r|0;J[l>>2]=J[k>>2];J[k>>2]=x;h=h+4|0;p=p+4|0;if((L|0)!=(p|0)){continue}break}}if(K){while(1){k=h<<2;p=k+w|0;l=J[p>>2];k=k+r|0;J[p>>2]=J[k>>2];J[k>>2]=l;h=h+1|0;u=u+1|0;if((K|0)!=(u|0)){continue}break}}c=c+1|0;if((c|0)!=(b|0)){continue}break}}r=b-a|0;w=v-b|0;if((r|0)!=(w|0)){xc(O,r>>>0<w>>>0)}c=J[m>>2];n=J[c+8>>2];g=J[c+12>>2];h=(j>>>1|0)-(r>>>0<w>>>0?r:w)|0;h=h<<24|(h&65280)<<8|(h>>>8&65280|h>>>24);h=h>>>4&252645135|(h&252645135)<<4;h=h>>>2&858993459|(h&858993459)<<2;l=h>>>1&1431655765|(h&1431655765)<<1;h=S(j)^31;p=32-h|0;k=l>>>p|0;j=Kl(k);n=j+n|0;g=j>>>0>n>>>0?g+1|0:g;J[c+8>>2]=n;J[c+12>>2]=g;g=h-j|0;n=g;j=g+J[c>>2]|0;g=J[c+4>>2]+(g>>31)|0;J[c>>2]=j;J[c+4>>2]=j>>>0<n>>>0?g+1|0:g;i:{j:{k:{l:{c=J[m+28>>2];u=32-c|0;m:{if((u|0)>=(h|0)){g=c+h|0;J[m+28>>2]=g;n=J[m+24>>2]&(-1>>>p<<c^-1)|k<<c;J[m+24>>2]=n;if((g|0)!=32){break i}c=J[m+16>>2];if((c|0)!=J[m+20>>2]){J[c>>2]=n;J[m+16>>2]=c+4;h=0;c=0;break m}g=c;c=J[m+12>>2];k=g-c|0;u=k>>2;j=u+1|0;if(j>>>0>=1073741824){break l}h=0;g=0;p=k>>>1|0;j=k>>>0>=2147483644?1073741823:j>>>0<p>>>0?p:j;if(j){if(j>>>0>=1073741824){break k}g=oa(j<<2)}u=(u<<2)+g|0;J[u>>2]=n;g=ta(g,c,k);J[m+20>>2]=g+(j<<2);J[m+16>>2]=u+4;J[m+12>>2]=g;if(!c){c=0;break m}na(c);c=0;break m}p=J[m+24>>2]&(-1<<c^-1)|k<<c;J[m+24>>2]=p;c=J[m+16>>2];n:{if((c|0)!=J[m+20>>2]){J[c>>2]=p;J[m+16>>2]=c+4;break n}g=c;c=J[m+12>>2];g=g-c|0;y=g>>2;j=y+1|0;if(j>>>0>=1073741824){break j}n=g>>>1|0;j=g>>>0>=2147483644?1073741823:j>>>0<n>>>0?n:j;if(j){if(j>>>0>=1073741824){break k}n=oa(j<<2)}else{n=0}y=n+(y<<2)|0;J[y>>2]=p;g=ta(n,c,g);J[m+20>>2]=g+(j<<2);J[m+16>>2]=y+4;J[m+12>>2]=g;if(!c){break n}na(c)}c=h-u|0;h=-1>>>32-c&k>>>u}J[m+28>>2]=c;J[m+24>>2]=h;break i}qa();B()}xa();B()}qa();B()}c=J[o+152>>2];g=c+D|0;h=J[g>>2];q=h+q|0;J[q>>2]=J[q>>2]+1;q=E+1|0;bb(c+P(q,12)|0,h,J[g+4>>2]);if((a|0)!=(b|0)){h=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];g=J[f+12>>2];if((h|0)==(((c|0)!=(g|0)?P(c-g>>2,113)-1|0:0)|0)){fb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;g=J[f+12>>2]}c=(h>>>0)/113|0;c=J[g+(c<<2)>>2]+P(h-P(c,113)|0,36)|0;J[c+32>>2]=E;J[c+28>>2]=r;J[c+24>>2]=i;J[c+16>>2]=t;J[c+12>>2]=b;J[c+4>>2]=t;J[c+8>>2]=z;J[c>>2]=a;J[c+20>>2]=z;J[f+28>>2]=J[f+28>>2]+1}if((b|0)==(v|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;a=J[f+16>>2];c=J[f+12>>2];if((g|0)==(((a|0)!=(c|0)?P(a-c>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}a=(g>>>0)/113|0;a=J[c+(a<<2)>>2]+P(g-P(a,113)|0,36)|0;J[a+32>>2]=q;J[a+28>>2]=w;J[a+24>>2]=i;J[a+16>>2]=d;J[a+20>>2]=C;J[a+12>>2]=v;J[a+4>>2]=t;J[a>>2]=b;J[a+8>>2]=z;i=J[f+28>>2]+1|0;J[f+28>>2]=i;break d}while(1){i=(b-1|0)!=(i|0)?i+1|0:0;J[g+(c<<2)>>2]=i;b=J[o+8>>2];c=c+1|0;if(b>>>0>c>>>0){continue}break}}if(!b|(a|0)==(v|0)){break e}g=0;c=1;while(1){i=0;o:{if(!c){c=0;break o}v=J[t+24>>2]+(P(J[t+4>>2],a+g|0)<<2)|0;while(1){c=J[o>>2];q=J[J[o+128>>2]+(i<<2)>>2]<<2;r=J[q+J[h>>2]>>2];if((c|0)!=(r|0)){Ib(N,c-r|0,J[v+q>>2]);b=J[o+8>>2]}c=b;i=i+1|0;if(c>>>0>i>>>0){continue}break}}g=g+1|0;if((j|0)!=(g|0)){continue}break}}i=J[f+28>>2]}if(i){continue}break}}J[f+28>>2]=0;a=J[f+16>>2];i=J[f+12>>2];b=a-i|0;if(b>>>0>=9){while(1){na(J[i>>2]);i=J[f+12>>2]+4|0;J[f+12>>2]=i;a=J[f+16>>2];b=a-i|0;if(b>>>0>8){continue}break}}c=56;p:{switch((b>>>2|0)-1|0){case 1:c=113;case 0:J[f+24>>2]=c;break;default:break p}}q:{if((a|0)==(i|0)){break q}while(1){na(J[i>>2]);i=i+4|0;if((i|0)!=(a|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break q}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}ya(F,e);eb(G,e);eb(H,e);eb(I,e)}ba=s+32|0;return 1}function Re(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,B=0,C=0;m=ba-560|0;ba=m;J[m+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;y=1173;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;y=1176;break a}s=e&1;y=s?1179:1174;z=!s}b:{if((g&2146435072)==2146435072){g=s+3|0;Qa(a,32,c,g,e&-65537);Oa(a,y,s);d=f&32;Oa(a,b!=b?d?1434:1643:d?1506:1647,3);Qa(a,32,c,g,e^8192);n=(c|0)<(g|0)?g:c;break b}u=m+16|0;c:{d:{e:{b=Ve(b,m+44|0);b=b+b;if(b!=0){g=J[m+44>>2];J[m+44>>2]=g-1;w=f|32;if((w|0)!=97){break e}break c}w=f|32;if((w|0)==97){break c}k=J[m+44>>2];l=(d|0)<0?6:d;break d}k=g-29|0;J[m+44>>2]=k;b=b*268435456;l=(d|0)<0?6:d}q=(m+48|0)+((k|0)>=0?288:0)|0;h=q;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}J[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;i=q;break f}i=q;d=k;while(1){o=(d|0)>=29?29:d;g=h-4|0;g:{if(i>>>0>g>>>0){break g}d=0;while(1){j=J[g>>2];x=d;d=o&31;if((o&63)>>>0>=32){n=j<<d;d=0}else{n=(1<<d)-1&j>>>32-d;d=j<<d}x=x+d|0;j=n+p|0;d=Jl(x,d>>>0>x>>>0?j+1|0:j,1e9,0);B=g,C=x-Hl(d,ca,1e9,0)|0,J[B>>2]=C;g=g-4|0;if(i>>>0<=g>>>0){continue}break}if(!d){break g}i=i-4|0;J[i>>2]=d}while(1){g=h;if(i>>>0<g>>>0){h=g-4|0;if(!J[h>>2]){continue}}break}d=J[m+44>>2]-o|0;J[m+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((l+25>>>0)/9|0)+1|0;p=(w|0)==102;while(1){d=0-d|0;n=(d|0)>=9?9:d;h:{if(g>>>0<=i>>>0){h=J[i>>2];break h}o=1e9>>>n|0;j=-1<<n^-1;d=0;h=i;while(1){x=d;d=J[h>>2];J[h>>2]=x+(d>>>n|0);d=P(o,d&j);h=h+4|0;if(h>>>0<g>>>0){continue}break}h=J[i>>2];if(!d){break h}J[g>>2]=d;g=g+4|0}d=n+J[m+44>>2]|0;J[m+44>>2]=d;i=(!h<<2)+i|0;h=p?q:i;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=i>>>0){break i}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break i}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=(l-((w|0)!=102?d:0)|0)-((w|0)==103&(l|0)!=0)|0;if((h|0)<(P(g-q>>2,9)-9|0)){o=h+9216|0;j=(o|0)/9|0;k=((((k|0)<0?4:292)+m|0)+(j<<2)|0)-4048|0;h=10;n=o-P(j,9)|0;if((n|0)<=7){while(1){h=P(h,10);n=n+1|0;if((n|0)!=8){continue}break}}o=J[k>>2];t=(o>>>0)/(h>>>0)|0;p=o-P(h,t)|0;j=k+4|0;j:{if(!p&(j|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(H[k-4|0]&1)|((h|0)!=1e9|i>>>0>=k>>>0)){break k}}b=9007199254740994}r=(g|0)==(j|0)?1:1.5;j=h>>>1|0;r=j>>>0>p>>>0?.5:(j|0)==(p|0)?r:1.5;if(!(K[y|0]!=45|z)){r=-r;b=-b}j=o-p|0;J[k>>2]=j;if(b+r==b){break j}d=h+j|0;J[k>>2]=d;if(d>>>0>=1e9){while(1){J[k>>2]=0;k=k-4|0;if(k>>>0<i>>>0){i=i-4|0;J[i>>2]=0}d=J[k>>2]+1|0;J[k>>2]=d;if(d>>>0>999999999){continue}break}}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break j}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){j=g;o=g>>>0<=i>>>0;if(!o){g=j-4|0;if(!J[g>>2]){continue}}break}l:{if((w|0)!=103){k=e&8;break l}h=l?l:1;g=(h|0)>(d|0)&(d|0)>-5;l=(g?d^-1:-1)+h|0;f=(g?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(o){break m}k=J[j-4>>2];if(!k){break m}n=10;g=0;if((k>>>0)%10|0){break m}while(1){h=g;g=g+1|0;n=P(n,10);if(!((k>>>0)%(n>>>0)|0)){continue}break}g=h^-1}h=P(j-q>>2,9);if((f&-33)==70){k=0;g=(g+h|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g;break l}k=0;g=((d+h|0)+g|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g}n=-1;o=k|l;if(((o?2147483645:2147483646)|0)<(l|0)){break b}p=(((o|0)!=0)+l|0)+1|0;h=f&-33;n:{if((h|0)==70){if((p^2147483647)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Mb((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;H[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;H[t|0]=f;H[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(p^2147483647)){break b}}d=g+p|0;if((d|0)>(s^2147483647)){break b}p=d+s|0;Qa(a,32,c,p,e);Oa(a,y,s);Qa(a,48,c,p,e^65536);o:{p:{q:{if((h|0)==70){f=m+16|0;d=f|8;k=f|9;h=i>>>0>q>>>0?q:i;i=h;while(1){g=Mb(J[i>>2],0,k);r:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break r}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}break r}if((g|0)!=(k|0)){break r}H[m+24|0]=48;g=d}Oa(a,g,k-g|0);i=i+4|0;if(q>>>0>=i>>>0){continue}break}if(o){Oa(a,1981,1)}if((l|0)<=0|i>>>0>=j>>>0){break q}while(1){g=Mb(J[i>>2],0,k);if(g>>>0>m+16>>>0){while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}}Oa(a,g,(l|0)>=9?9:l);g=l-9|0;i=i+4|0;if(j>>>0<=i>>>0){break p}d=(l|0)>9;l=g;if(d){continue}break}break p}s:{if((l|0)<0){break s}q=i>>>0<j>>>0?j:i+4|0;f=m+16|0;d=f|8;j=f|9;h=i;while(1){g=Mb(J[h>>2],0,j);if((j|0)==(g|0)){H[m+24|0]=48;g=d}t:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break t}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}break t}Oa(a,g,1);g=g+1|0;if(!(k|l)){break t}Oa(a,1981,1)}f=j-g|0;Oa(a,g,(f|0)>(l|0)?l:f);l=l-f|0;h=h+4|0;if(q>>>0<=h>>>0){break s}if((l|0)>=0){continue}break}}Qa(a,48,l+18|0,18,0);Oa(a,t,u-t|0);break o}g=l}Qa(a,48,g+9|0,9,0)}Qa(a,32,c,p,e^8192);n=(c|0)<(p|0)?p:c;break b}k=(f<<26>>31&9)+y|0;u:{if(d>>>0>11){break u}g=12-d|0;r=16;while(1){r=r*16;g=g-1|0;if(g){continue}break}if(K[k|0]==45){b=-(r+(-b-r));break u}b=b+r-r}g=J[m+44>>2];h=g>>31;g=Mb((g^h)-h|0,0,u);if((u|0)==(g|0)){H[m+15|0]=48;g=m+15|0}q=s|2;i=f&32;h=J[m+44>>2];l=g-2|0;H[l|0]=f+15;H[g-1|0]=(h|0)<0?45:43;g=e&8;h=m+16|0;while(1){f=h;if(R(b)<2147483648){j=~~b}else{j=-2147483648}H[h|0]=i|K[j+17776|0];b=(b-+(j|0))*16;h=f+1|0;if(!(!((d|0)>0|g)&b==0|(h-(m+16|0)|0)!=1)){H[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}n=-1;g=u-l|0;f=g+q|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}i=h-(m+16|0)|0;if((i-2|0)>=(d|0)){break w}d=d+2|0;break v}i=h-(m+16|0)|0;d=i}f=d+f|0;Qa(a,32,c,f,e);Oa(a,k,q);Qa(a,48,c,f,e^65536);Oa(a,m+16|0,i);Qa(a,48,d-i|0,0,0);Oa(a,l,g);Qa(a,32,c,f,e^8192);n=(c|0)<(f|0)?f:c}ba=m+560|0;return n|0}function Ae(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;o=ba-32|0;ba=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;te(C);D=a+1068|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+1088|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+1108|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;b=0;f=ba-32|0;ba=f;l=a;h=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=oa(a);J[f+8>>2]=b;g=a+b|0;J[f+16>>2]=g;pa(b,0,a);J[f+12>>2]=g}a=J[l+1164>>2];c=J[a>>2];if(c){J[a+4>>2]=c;na(c);h=J[l+8>>2];g=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=g;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];b=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=oa(c);J[f+8>>2]=a;b=a+c|0;J[f+16>>2]=b;pa(a,0,c);J[f+12>>2]=b}c=J[l+1176>>2];d=J[c>>2];if(d){J[c+4>>2]=d;na(d);b=J[f+12>>2];a=J[f+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[f+16>>2];p=J[o+20>>2];u=J[o+24>>2];d=J[o+4>>2];x=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;r=(a>>>0)/113|0;a=J[J[f+12>>2]+(r<<2)>>2]+P(a-P(r,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=x;J[a+12>>2]=b;J[a+4>>2]=p;J[a+8>>2]=u;J[a>>2]=c;h=J[f+28>>2]+1|0;J[f+28>>2]=h;if(h){a=u;L=a&-4;G=a&3;N=l+1068|0;H=l+12|0;O=l+1108|0;Q=a>>>0<4;while(1){b=J[f+12>>2];m=J[f+24>>2];j=h-1|0;a=m+j|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];g=J[a+24>>2];r=J[a+12>>2];c=J[a>>2];J[f+28>>2]=j;a=J[f+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(h+m|0)|0)+1>>>0>=226){na(J[a-4>>2]);J[f+16>>2]=J[f+16>>2]-4}b=J[l>>2];h=(g|0)!=(J[l+8>>2]-1|0)?g+1|0:0;m=h<<2;y=P(z,12);j=y+J[l+1176>>2]|0;g=J[m+J[j>>2]>>2];d:{e:{if((b|0)==(g|0)){break e}f:{g:{t=r-c|0;if(t>>>0<=2){g=J[l+1152>>2];J[g>>2]=h;b=1;a=J[l+8>>2];if(a>>>0>1){break g}break f}j=J[l+1164>>2];a=j+y|0;i=j;j=y+12|0;bb(i+j|0,J[a>>2],J[a+4>>2]);a=m+J[j+J[l+1164>>2]>>2]|0;j=J[a>>2]+(1<<b+(g^-1))|0;J[a>>2]=j;a=c;h:{if((r|0)==(a|0)){break h}I=J[p+24>>2];K=m+I|0;a=r;b=c;if(!u){if(j>>>0>M[K>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=M[(m+J[d+24>>2]|0)+(P(a,x)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){g=P(b,u)<<2;if(j>>>0>M[g+K>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}n=J[d+24>>2]+(P(a,x)<<2)|0;if(j>>>0<=M[n+m>>2]){continue}break}q=g+I|0;A=0;g=0;v=0;if(!Q){while(1){k=g<<2;i=k+q|0;s=J[i>>2];w=i;i=k+n|0;J[w>>2]=J[i>>2];J[i>>2]=s;i=k|4;s=i+q|0;w=J[s>>2];i=i+n|0;J[s>>2]=J[i>>2];J[i>>2]=w;i=k|8;s=i+q|0;w=J[s>>2];i=i+n|0;J[s>>2]=J[i>>2];J[i>>2]=w;k=k|12;i=k+q|0;s=J[i>>2];k=k+n|0;J[i>>2]=J[k>>2];J[k>>2]=s;g=g+4|0;v=v+4|0;if((L|0)!=(v|0)){continue}break}}if(G){while(1){k=g<<2;v=k+q|0;i=J[v>>2];k=k+n|0;J[v>>2]=J[k>>2];J[k>>2]=i;g=g+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;n=r-a|0;if((j|0)!=(n|0)){xc(O,j>>>0<n>>>0)}k=z+1|0;b=S(t);q=b^31;g=t>>>1|0;i:{if(j>>>0<n>>>0){if(!q){break i}t=g-j|0;b=1<<30-b;g=0;while(1){Ca((g<<5)+H|0,(b&t)!=0);b=b>>>1|0;g=g+1|0;if((q|0)!=(g|0)){continue}break}break i}if(!q){break i}t=g-n|0;b=1<<30-b;g=0;while(1){Ca((g<<5)+H|0,(b&t)!=0);b=b>>>1|0;g=g+1|0;if((q|0)!=(g|0)){continue}break}}i=m;b=J[l+1176>>2];g=b+y|0;m=J[g>>2];q=i+m|0;J[q>>2]=J[q>>2]+1;bb(b+P(k,12)|0,m,J[g+4>>2]);if((a|0)!=(c|0)){g=J[f+28>>2]+J[f+24>>2]|0;m=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(m|0)?P(m-b>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;i=J[f+12>>2]}else{i=b}b=(g>>>0)/113|0;b=J[i+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=z;J[b+28>>2]=j;J[b+24>>2]=h;J[b+16>>2]=p;J[b+12>>2]=a;J[b+4>>2]=p;J[b+8>>2]=u;J[b>>2]=c;J[b+20>>2]=u;J[f+28>>2]=J[f+28>>2]+1}if((a|0)==(r|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}else{c=b}b=(g>>>0)/113|0;b=J[c+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=k;J[b+28>>2]=n;J[b+24>>2]=h;J[b+16>>2]=d;J[b+20>>2]=x;J[b+12>>2]=r;J[b+4>>2]=p;J[b>>2]=a;J[b+8>>2]=u;h=J[f+28>>2]+1|0;J[f+28>>2]=h;break d}while(1){h=(a-1|0)!=(h|0)?h+1|0:0;J[g+(b<<2)>>2]=h;a=J[l+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}g=0;b=a;if((c|0)==(r|0)){break e}while(1){j:{if(!b){b=0;break j}r=J[p+24>>2]+(P(J[p+4>>2],c+g|0)<<2)|0;h=0;while(1){b=J[l>>2];m=J[J[l+1152>>2]+(h<<2)>>2]<<2;n=J[m+J[j>>2]>>2];if((b|0)!=(n|0)){Ib(N,b-n|0,J[m+r>>2]);a=J[l+8>>2]}b=a;h=h+1|0;if(h>>>0<a>>>0){continue}break}}g=g+1|0;if((t|0)!=(g|0)){continue}break}}h=J[f+28>>2]}if(h){continue}break}}J[f+28>>2]=0;c=J[f+16>>2];h=J[f+12>>2];a=c-h|0;if(a>>>0>=9){while(1){na(J[h>>2]);h=J[f+12>>2]+4|0;J[f+12>>2]=h;c=J[f+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;k:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[f+24>>2]=b;break;default:break k}}l:{if((c|0)==(h|0)){break l}while(1){na(J[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break l}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}se(C,e);eb(D,e);eb(E,e);eb(F,e)}ba=o+32|0;return 1}function Ue(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;l=1510;g=ba-80|0;ba=g;J[g+76>>2]=1510;w=g+55|0;r=g+56|0;a:{b:{c:{d:{e:while(1){h=l;if((n^2147483647)<(e|0)){break d}n=e+n|0;f:{g:{h:{e=h;f=K[e|0];if(f){while(1){i:{f=f&255;j:{if(!f){l=e;break j}if((f|0)!=37){break i}f=e;while(1){if(K[f+1|0]!=37){l=f;break j}e=e+1|0;k=K[f+2|0];l=f+2|0;f=l;if((k|0)==37){continue}break}}e=e-h|0;v=n^2147483647;if((e|0)>(v|0)){break d}if(a){Oa(a,h,e)}if(e){continue e}J[g+76>>2]=l;e=l+1|0;o=-1;if(!(K[l+2|0]!=36|H[l+1|0]-48>>>0>=10)){o=H[l+1|0]-48|0;s=1;e=l+3|0}J[g+76>>2]=e;m=0;f=H[e|0];l=f-32|0;k:{if(l>>>0>31){i=e;break k}i=e;l=1<<l;if(!(l&75913)){break k}while(1){i=e+1|0;J[g+76>>2]=i;m=m|l;f=H[e+1|0];l=f-32|0;if(l>>>0>=32){break k}e=i;l=1<<l;if(l&75913){continue}break}}l:{if((f|0)==42){m:{if(!(K[i+2|0]!=36|H[i+1|0]-48>>>0>=10)){J[((H[i+1|0]<<2)+d|0)-192>>2]=10;f=i+3|0;s=1;e=J[((H[i+1|0]<<3)+c|0)-384>>2];break m}if(s){break h}f=i+1|0;if(!a){J[g+76>>2]=f;s=0;p=0;break l}e=J[b>>2];J[b>>2]=e+4;s=0;e=J[e>>2]}J[g+76>>2]=f;p=e;if((e|0)>=0){break l}p=0-p|0;m=m|8192;break l}p=Te(g+76|0);if((p|0)<0){break d}f=J[g+76>>2]}e=0;j=-1;n:{if(K[f|0]!=46){l=f;f=0;break n}if(K[f+1|0]==42){o:{if(!(K[f+3|0]!=36|H[f+2|0]-48>>>0>=10)){J[((H[f+2|0]<<2)+d|0)-192>>2]=10;l=f+4|0;j=J[((H[f+2|0]<<3)+c|0)-384>>2];break o}if(s){break h}l=f+2|0;j=0;if(!a){break o}f=J[b>>2];J[b>>2]=f+4;j=J[f>>2]}J[g+76>>2]=l;f=(j^-1)>>>31|0;break n}J[g+76>>2]=f+1;j=Te(g+76|0);l=J[g+76>>2];f=1}t=f;while(1){q=e;i=28;k=l;e=H[k|0];if(e-123>>>0<4294967238){break c}l=k+1|0;e=K[(e+P(q,58)|0)+17247|0];if(e-1>>>0<8){continue}break}J[g+76>>2]=l;p:{q:{if((e|0)!=27){if(!e){break c}if((o|0)>=0){J[(o<<2)+d>>2]=e;f=(o<<3)+c|0;e=J[f+4>>2];J[g+64>>2]=J[f>>2];J[g+68>>2]=e;break q}if(!a){break f}Se(g- -64|0,e,b);break p}if((o|0)>=0){break c}}e=0;if(!a){continue e}}f=m&-65537;m=m&8192?f:m;o=0;u=1163;i=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{e=H[k|0];e=q?(e&15)==3?e&-33:e:e;switch(e-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(e-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((e|0)==83){break w}break g}f=J[g+64>>2];k=J[g+68>>2];e=1163;break z}e=0;I:{switch(q&255){case 0:J[J[g+64>>2]>>2]=n;continue e;case 1:J[J[g+64>>2]>>2]=n;continue e;case 2:h=J[g+64>>2];J[h>>2]=n;J[h+4>>2]=n>>31;continue e;case 3:I[J[g+64>>2]>>1]=n;continue e;case 4:H[J[g+64>>2]]=n;continue e;case 6:J[J[g+64>>2]>>2]=n;continue e;case 7:break I;default:continue e}}h=J[g+64>>2];J[h>>2]=n;J[h+4>>2]=n>>31;continue e}j=j>>>0<=8?8:j;m=m|8;e=120}h=r;f=J[g+64>>2];k=J[g+68>>2];if(f|k){x=e&32;while(1){h=h-1|0;H[h|0]=x|K[(f&15)+17776|0];y=!k&f>>>0>15|(k|0)!=0;q=k;k=k>>>4|0;f=(q&15)<<28|f>>>4;if(y){continue}break}}if(!(J[g+64>>2]|J[g+68>>2])|!(m&8)){break y}u=(e>>>4|0)+1163|0;o=2;break y}e=r;h=J[g+68>>2];k=h;f=J[g+64>>2];if(h|f){while(1){e=e-1|0;H[e|0]=f&7|48;q=!k&f>>>0>7|(k|0)!=0;h=k;k=h>>>3|0;f=(h&7)<<29|f>>>3;if(q){continue}break}}h=e;if(!(m&8)){break y}e=r-h|0;j=(e|0)<(j|0)?j:e+1|0;break y}f=J[g+64>>2];e=J[g+68>>2];k=e;if((e|0)<0){h=0-(k+((f|0)!=0)|0)|0;k=h;f=0-f|0;J[g+64>>2]=f;J[g+68>>2]=h;o=1;e=1163;break z}if(m&2048){o=1;e=1164;break z}o=m&1;e=o?1165:1163}u=e;h=Mb(f,k,r)}if((j|0)<0?t:0){break d}m=t?m&-65537:m;e=J[g+64>>2];f=J[g+68>>2];if(!(j|(e|f)!=0)){h=r;j=0;break g}e=!(e|f)+(r-h|0)|0;j=(e|0)<(j|0)?j:e;break g}q=j>>>0>=2147483647?2147483647:j;i=q;m=(i|0)!=0;e=J[g+64>>2];h=e?e:1983;e=h;J:{K:{L:{M:{if(!(e&3)|!i){break M}while(1){if(!K[e|0]){break L}i=i-1|0;m=(i|0)!=0;e=e+1|0;if(!(e&3)){break M}if(i){continue}break}}if(!m){break K}if(!(!K[e|0]|i>>>0<4)){while(1){k=J[e>>2];if((k^-1)&k-16843009&-2139062144){break L}e=e+4|0;i=i-4|0;if(i>>>0>3){continue}break}}if(!i){break K}}while(1){if(!K[e|0]){break J}e=e+1|0;i=i-1|0;if(i){continue}break}}e=0}e=e?e-h|0:q;i=e+h|0;if((j|0)>=0){m=f;j=e;break g}m=f;j=e;if(K[i|0]){break d}break g}if(j){f=J[g+64>>2];break u}e=0;Qa(a,32,p,0,m);break t}J[g+12>>2]=0;J[g+8>>2]=J[g+64>>2];f=g+8|0;J[g+64>>2]=f;j=-1}e=0;N:{while(1){h=J[f>>2];if(!h){break N}k=Pe(g+4|0,h);h=(k|0)<0;if(!(h|k>>>0>j-e>>>0)){f=f+4|0;e=e+k|0;if(j>>>0>e>>>0){continue}break N}break}if(h){break b}}i=61;if((e|0)<0){break c}Qa(a,32,p,e,m);if(!e){e=0;break t}i=0;f=J[g+64>>2];while(1){h=J[f>>2];if(!h){break t}h=Pe(g+4|0,h);i=h+i|0;if(i>>>0>e>>>0){break t}Oa(a,g+4|0,h);f=f+4|0;if(e>>>0>i>>>0){continue}break}}Qa(a,32,p,e,m^8192);e=(e|0)<(p|0)?p:e;continue e}if((j|0)<0?t:0){break d}i=61;e=Re(a,O[g+64>>3],p,j,m,e);if((e|0)>=0){continue e}break c}H[g+55|0]=J[g+64>>2];j=1;h=w;m=f;break g}f=K[e+1|0];e=e+1|0;continue}}if(a){break a}if(!s){break f}e=1;while(1){a=J[(e<<2)+d>>2];if(a){Se((e<<3)+c|0,a,b);n=1;e=e+1|0;if((e|0)!=10){continue}break a}break}n=1;if(e>>>0>=10){break a}while(1){if(J[(e<<2)+d>>2]){break h}e=e+1|0;if((e|0)!=10){continue}break}break a}i=28;break c}k=i-h|0;f=(j|0)>(k|0)?j:k;if((f|0)>(o^2147483647)){break d}i=61;j=f+o|0;e=(j|0)<(p|0)?p:j;if((v|0)<(e|0)){break c}Qa(a,32,e,j,m);Oa(a,u,o);Qa(a,48,e,j,m^65536);Qa(a,48,f,k,0);Oa(a,h,k);Qa(a,32,e,j,m^8192);continue}break}n=0;break a}i=61}J[4804]=i}n=-1}ba=g+80|0;return n}function Qf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=ba-16|0;ba=g;J[b+44>>2]=d;J[b+48>>2]=c;d=J[b+12>>2];f=J[b+8>>2];if((d|0)!=(f|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){da[J[J[e>>2]+4>>2]](e)}if((d|0)!=(f|0)){continue}break}}J[b+12>>2]=f;J[b+24>>2]=J[b+20>>2];J[b+36>>2]=J[b+32>>2];a:{if(!J[b+4>>2]){b=oa(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);d=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=d;H[b+16|0]=d>>>8;H[b+17|0]=d>>>16;H[b+18|0]=d>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);d=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);d=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,23);na(b);break a}d=ba-16|0;ba=d;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],1637,1642)}e=da[J[J[b>>2]+8>>2]](b)|0;H[d+15|0]=e;H[d+14|0]=2;H[d+13|0]=e&255?2:3;e=J[b+44>>2];f=J[e+20>>2];b:{if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+14|0,d+15|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+13|0,d+14|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+15|0,d+16|0);e=J[b+44>>2]}j=d,k=da[J[J[b>>2]+12>>2]](b)|0,H[j+12|0]=k;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],d+12|0,d+13|0)}I[d+10>>1]=(J[J[b+4>>2]+4>>2]!=0)<<15;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],d+10|0,d+12|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=d+16|0;if(J[a>>2]){break a}if(H[a+15|0]<0){na(J[a+4>>2])}d=J[J[b+4>>2]+4>>2];c:{if(!d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}e=J[b+44>>2];if(d){Aa(J[d+28>>2]-J[d+24>>2]>>2,e);f=J[d+24>>2];i=J[d+28>>2];if((f|0)!=(i|0)){while(1){h=J[f>>2];if(h){Aa(J[h+24>>2],e);td(g,e,h)}f=f+4|0;if((i|0)!=(f|0)){continue}break}}td(g,e,d)}if(d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}d=oa(32);H[d+26|0]=0;e=K[1882]|K[1883]<<8;H[d+24|0]=e;H[d+25|0]=e>>>8;e=K[1878]|K[1879]<<8|(K[1880]<<16|K[1881]<<24);f=K[1874]|K[1875]<<8|(K[1876]<<16|K[1877]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1870]|K[1871]<<8|(K[1872]<<16|K[1873]<<24);f=K[1866]|K[1867]<<8|(K[1868]<<16|K[1869]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1862]|K[1863]<<8|(K[1864]<<16|K[1865]<<24);f=K[1858]|K[1859]<<8|(K[1860]<<16|K[1861]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;J[a>>2]=-1;Ga(a+4|0,d,26);na(d);if(J[a>>2]){break a}if(H[a+15|0]>=0){break c}na(J[a+4>>2])}if(!(da[J[J[b>>2]+16>>2]](b)|0)){b=oa(32);H[b+29|0]=0;c=K[1798]|K[1799]<<8|(K[1800]<<16|K[1801]<<24);d=K[1794]|K[1795]<<8|(K[1796]<<16|K[1797]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1793]|K[1794]<<8|(K[1795]<<16|K[1796]<<24);d=K[1789]|K[1790]<<8|(K[1791]<<16|K[1792]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1785]|K[1786]<<8|(K[1787]<<16|K[1788]<<24);d=K[1781]|K[1782]<<8|(K[1783]<<16|K[1784]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1777]|K[1778]<<8|(K[1779]<<16|K[1780]<<24);d=K[1773]|K[1774]<<8|(K[1775]<<16|K[1776]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break a}if(!(da[J[J[b>>2]+20>>2]](b)|0)){b=oa(32);H[b+31|0]=0;c=K[1941]|K[1942]<<8|(K[1943]<<16|K[1944]<<24);d=K[1937]|K[1938]<<8|(K[1939]<<16|K[1940]<<24);H[b+23|0]=d;H[b+24|0]=d>>>8;H[b+25|0]=d>>>16;H[b+26|0]=d>>>24;H[b+27|0]=c;H[b+28|0]=c>>>8;H[b+29|0]=c>>>16;H[b+30|0]=c>>>24;c=K[1934]|K[1935]<<8|(K[1936]<<16|K[1937]<<24);d=K[1930]|K[1931]<<8|(K[1932]<<16|K[1933]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1926]|K[1927]<<8|(K[1928]<<16|K[1929]<<24);d=K[1922]|K[1923]<<8|(K[1924]<<16|K[1925]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1918]|K[1919]<<8|(K[1920]<<16|K[1921]<<24);d=K[1914]|K[1915]<<8|(K[1916]<<16|K[1917]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,31);na(b);break a}da[J[J[b>>2]+24>>2]](a,b);if(J[a>>2]){break a}if(H[a+15|0]<0){na(J[a+4>>2])}if(!(da[J[J[b>>2]+28>>2]](b)|0)){b=Pc(g,1708);J[a>>2]=-1;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break a}Ga(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break a}na(J[b>>2]);break a}d=c;c=Pc(g,1214);d=Pb(d,c,0);if(H[c+11|0]<0){na(J[c>>2])}if(d){da[J[J[b>>2]+48>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ba=g+16|0}function ve(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;o=ba-32|0;ba=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;d=C;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];D=a+32|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+52|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+72|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;c=0;b=0;f=ba-32|0;ba=f;l=a;g=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(g){if(g>>>0>=1073741824){break b}a=g<<2;c=oa(a);J[f+8>>2]=c;b=a+c|0;J[f+16>>2]=b;pa(c,0,a);J[f+12>>2]=b}a=J[l+128>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);g=J[l+8>>2];c=J[f+8>>2];b=J[f+12>>2]}J[a+4>>2]=b;J[a>>2]=c;J[a+8>>2]=J[f+16>>2];c=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;b=0;c:{if(g){if(g>>>0>=1073741824){break c}a=g<<2;b=oa(a);J[f+8>>2]=b;c=a+b|0;J[f+16>>2]=c;pa(b,0,a);J[f+12>>2]=c}a=J[l+140>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);c=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=c;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];p=J[o+20>>2];t=J[o+24>>2];d=J[o+4>>2];w=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;q=(a>>>0)/113|0;a=J[J[f+12>>2]+(q<<2)>>2]+P(a-P(q,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=w;J[a+12>>2]=b;J[a+4>>2]=p;J[a+8>>2]=t;J[a>>2]=c;g=J[f+28>>2]+1|0;J[f+28>>2]=g;if(g){a=t;K=a&-4;G=a&3;L=l+32|0;N=l+12|0;O=l+72|0;Q=a>>>0<4;while(1){b=J[f+12>>2];i=J[f+24>>2];h=g-1|0;a=i+h|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];c=J[a+24>>2];q=J[a+12>>2];a=J[a>>2];J[f+28>>2]=h;h=J[f+16>>2];if((((b|0)!=(h|0)?P(h-b>>2,113)-1|0:0)-(g+i|0)|0)+1>>>0>=226){na(J[h-4>>2]);J[f+16>>2]=J[f+16>>2]-4}i=J[l>>2];g=(c|0)!=(J[l+8>>2]-1|0)?c+1|0:0;h=g<<2;x=P(z,12);k=x+J[l+140>>2]|0;c=J[h+J[k>>2]>>2];d:{e:{if((i|0)==(c|0)){break e}f:{g:{y=q-a|0;if(y>>>0<=2){h=J[l+116>>2];J[h>>2]=g;c=1;b=J[l+8>>2];if(b>>>0>1){break g}break f}k=J[l+128>>2];b=k+x|0;j=k;k=x+12|0;bb(j+k|0,J[b>>2],J[b+4>>2]);b=h+J[k+J[l+128>>2]>>2]|0;k=J[b>>2]+(1<<i+(c^-1))|0;J[b>>2]=k;b=a;h:{if((a|0)==(q|0)){break h}H=J[p+24>>2];I=h+H|0;b=q;c=a;if(!t){if(k>>>0>M[I>>2]){break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}if(k>>>0<=M[(h+J[d+24>>2]|0)+(P(b,w)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(b|0)){continue}break}break h}while(1){i=P(c,t)<<2;if(k>>>0>M[i+I>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}n=J[d+24>>2]+(P(b,w)<<2)|0;if(k>>>0<=M[n+h>>2]){continue}break}r=i+H|0;A=0;i=0;u=0;if(!Q){while(1){m=i<<2;j=m+r|0;s=J[j>>2];v=j;j=n+m|0;J[v>>2]=J[j>>2];J[j>>2]=s;j=m|4;s=j+r|0;v=J[s>>2];j=j+n|0;J[s>>2]=J[j>>2];J[j>>2]=v;j=m|8;s=j+r|0;v=J[s>>2];j=j+n|0;J[s>>2]=J[j>>2];J[j>>2]=v;m=m|12;j=m+r|0;s=J[j>>2];m=n+m|0;J[j>>2]=J[m>>2];J[m>>2]=s;i=i+4|0;u=u+4|0;if((K|0)!=(u|0)){continue}break}}if(G){while(1){m=i<<2;u=m+r|0;j=J[u>>2];m=n+m|0;J[u>>2]=J[m>>2];J[m>>2]=j;i=i+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}c=c+1|0;if((c|0)!=(b|0)){continue}break}}k=b-a|0;n=q-b|0;if((k|0)!=(n|0)){xc(O,k>>>0<n>>>0)}Ib(N,S(y)^31,(y>>>1|0)-(k>>>0<n>>>0?k:n)|0);j=h;c=J[l+140>>2];h=c+x|0;i=J[h>>2];r=j+i|0;J[r>>2]=J[r>>2]+1;r=z+1|0;bb(c+P(r,12)|0,i,J[h+4>>2]);if((a|0)!=(b|0)){i=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];h=J[f+12>>2];if((i|0)==(((c|0)!=(h|0)?P(c-h>>2,113)-1|0:0)|0)){fb(f+8|0);i=J[f+24>>2]+J[f+28>>2]|0;h=J[f+12>>2]}c=(i>>>0)/113|0;c=J[h+(c<<2)>>2]+P(i-P(c,113)|0,36)|0;J[c+32>>2]=z;J[c+28>>2]=k;J[c+24>>2]=g;J[c+16>>2]=p;J[c+12>>2]=b;J[c+4>>2]=p;J[c+8>>2]=t;J[c>>2]=a;J[c+20>>2]=t;J[f+28>>2]=J[f+28>>2]+1}if((b|0)==(q|0)){break e}h=J[f+28>>2]+J[f+24>>2]|0;a=J[f+16>>2];c=J[f+12>>2];if((h|0)==(((a|0)!=(c|0)?P(a-c>>2,113)-1|0:0)|0)){fb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}a=(h>>>0)/113|0;a=J[c+(a<<2)>>2]+P(h-P(a,113)|0,36)|0;J[a+32>>2]=r;J[a+28>>2]=n;J[a+24>>2]=g;J[a+16>>2]=d;J[a+20>>2]=w;J[a+12>>2]=q;J[a+4>>2]=p;J[a>>2]=b;J[a+8>>2]=t;g=J[f+28>>2]+1|0;J[f+28>>2]=g;break d}while(1){g=(b-1|0)!=(g|0)?g+1|0:0;J[h+(c<<2)>>2]=g;b=J[l+8>>2];c=c+1|0;if(b>>>0>c>>>0){continue}break}}if(!b|(a|0)==(q|0)){break e}h=0;c=1;while(1){g=0;i:{if(!c){c=0;break i}q=J[p+24>>2]+(P(J[p+4>>2],a+h|0)<<2)|0;while(1){c=J[l>>2];i=J[J[l+116>>2]+(g<<2)>>2]<<2;n=J[i+J[k>>2]>>2];if((c|0)!=(n|0)){Ib(L,c-n|0,J[i+q>>2]);b=J[l+8>>2]}c=b;g=g+1|0;if(c>>>0>g>>>0){continue}break}}h=h+1|0;if((y|0)!=(h|0)){continue}break}}g=J[f+28>>2]}if(g){continue}break}}J[f+28>>2]=0;a=J[f+16>>2];g=J[f+12>>2];b=a-g|0;if(b>>>0>=9){while(1){na(J[g>>2]);g=J[f+12>>2]+4|0;J[f+12>>2]=g;a=J[f+16>>2];b=a-g|0;if(b>>>0>8){continue}break}}c=56;j:{switch((b>>>2|0)-1|0){case 1:c=113;case 0:J[f+24>>2]=c;break;default:break j}}k:{if((a|0)==(g|0)){break k}while(1){na(J[g>>2]);g=g+4|0;if((g|0)!=(a|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break k}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}eb(C,e);eb(D,e);eb(E,e);eb(F,e)}ba=o+32|0;return 1}function gg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ba-32|0;ba=l;d=J[a+16>>2];J[a+20>>2]=d;a:{b:{c:{d:{e:{f:{g:{h:{if((d|0)!=J[a+24>>2]){J[d>>2]=b;b=d+4|0;J[a+20>>2]=b;e=d;break h}e=oa(4);J[e>>2]=b;b=e+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=e;if(d){break g}}d=J[a+8>>2];d=J[d+100>>2]-J[d+96>>2]|0;break f}na(d);b=J[a+20>>2];e=J[a+16>>2];if((b|0)==(e|0)){break e}d=J[a+8>>2];d=J[d+100>>2]-J[d+96>>2]|0}if((d|0)>0){q=a+120|0;d=(d|0)/12|0;r=(d|0)<=1?1:d;while(1){i:{j:{e=b-4|0;b=J[e>>2];if((b|0)==-1){break j}d=(b>>>0)/3|0;if(J[J[a+28>>2]+(d>>>3&268435452)>>2]>>>d&1){break j}m=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;g=(b>>>0)/3|0;f=(b|0)==-1;n=f?-1:g;b=J[a+28>>2]+(n>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<n;b=J[a+76>>2];k:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break k}i=J[a+72>>2];j=b-i|0;c=j>>2;k=c+1|0;if(k>>>0>1073741823){break d}d=j>>>1|0;k=j>>>0>=2147483644?1073741823:d>>>0>k>>>0?d:k;if(k){if(k>>>0>1073741823){break a}d=oa(k<<2)}else{d=0}h=d+(c<<2)|0;J[h>>2]=e;c=h+4|0;if((b|0)!=(i|0)){while(1){h=h-4|0;b=b-4|0;J[h>>2]=J[b>>2];if((b|0)!=(i|0)){continue}break}}J[a+80>>2]=d+(k<<2);J[a+76>>2]=c;J[a+72>>2]=h;if(!i){break k}na(i)}b=-1;h=J[a+12>>2];b=(e|0)!=-1?J[J[h>>2]+(e<<2)>>2]:b;k=b<<2;p=J[k+J[a+152>>2]>>2];l:{m:{c=J[a+84>>2]+(b>>>3&536870908)|0;d=J[c>>2];b=1<<b;if(!(d&b)){J[c>>2]=b|d;if((p|0)==-1){break m}}n:{if(f){break n}b=-1;d=e+1|0;f=(d>>>0)%3|0?d:e-2|0;if((f|0)!=-1){b=J[J[h+12>>2]+(f<<2)>>2]}i=e-P(g,3)|0;o:{p:{if(i){c=e-1|0;break p}c=e+2|0;d=-1;if((c|0)==-1){break o}}d=J[J[h+12>>2]+(c<<2)>>2]}o=(d|0)==-1;j=o?-1:(d>>>0)/3|0;q:{if((f|0)==-1){break q}g=J[h+12>>2];c=J[g+(f<<2)>>2];if((c|0)==-1){break q}f=J[a+28>>2];c=(c>>>0)/3|0;if(J[f+(c>>>3&268435452)>>2]>>>c&1){break q}r:{s:{if(i){h=e-1|0;break s}h=e+2|0;if((h|0)==-1){break r}}c=J[(h<<2)+g>>2];if((c|0)==-1){break r}c=(c>>>0)/3|0;if(J[f+(c>>>3&268435452)>>2]>>>c&1){break r}c=J[a+272>>2];t:{if((c|0)!=J[a+276>>2]){J[c>>2]=1;J[a+272>>2]=c+4;break t}i=J[a+268>>2];j=c-i|0;f=j>>2;g=f+1|0;if(g>>>0>1073741823){break c}c=j>>>1|0;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>1073741823){break a}c=oa(g<<2)}else{c=0}f=c+(f<<2)|0;J[f>>2]=1;c=ta(c,i,j);J[a+276>>2]=c+(g<<2);J[a+272>>2]=f+4;J[a+268>>2]=c;if(!i){break t}na(i)}J[a+168>>2]=J[a+168>>2]+1;u:{if((p|0)==-1){break u}c=J[J[a+152>>2]+k>>2];if(J[J[a+140>>2]+(c>>>3&536870908)>>2]>>>c&1){break u}Hc(a,e,0)}c=J[a+164>>2];J[l+4>>2]=n;e=l+4|0;J[l+16>>2]=e;bg(l+24|0,q,e,l+16|0);J[J[l+24>>2]+12>>2]=c;h=J[a+20>>2];J[h-4>>2]=d;if(J[a+24>>2]!=(h|0)){J[h>>2]=b;J[a+20>>2]=h+4;break i}g=J[a+16>>2];f=h-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break b}d=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<d>>>0?d:c;if(c){if(c>>>0>1073741823){break a}d=oa(c<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=b;b=e+4|0;if((g|0)!=(h|0)){while(1){e=e-4|0;h=h-4|0;J[e>>2]=J[h>>2];if((g|0)!=(h|0)){continue}break}}J[a+24>>2]=d+(c<<2);J[a+20>>2]=b;J[a+16>>2]=e;if(!g){break i}na(g);break i}if(!o){Qb(a,J[a+164>>2],0,j)}d=J[a+272>>2];if((d|0)!=J[a+276>>2]){J[d>>2]=3;J[a+272>>2]=d+4;break l}g=J[a+268>>2];f=d-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break c}d=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<d>>>0?d:c;if(c){if(c>>>0>1073741823){break a}d=oa(c<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=3;d=ta(d,g,f);J[a+276>>2]=d+(c<<2);J[a+272>>2]=e+4;J[a+268>>2]=d;if(!g){break l}na(g);break l}c=(b|0)==-1;if(!c){Qb(a,J[a+164>>2],1,c?-1:(b>>>0)/3|0)}v:{w:{if(i){b=e-1|0;break w}b=e+2|0;if((b|0)==-1){break v}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break v}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break v}b=J[a+272>>2];if((b|0)!=J[a+276>>2]){J[b>>2]=5;J[a+272>>2]=b+4;b=d;break l}g=J[a+268>>2];f=b-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break c}b=f>>>1|0;c=f>>>0>=2147483644?1073741823:b>>>0>c>>>0?b:c;if(c){if(c>>>0>1073741823){break a}b=oa(c<<2)}else{b=0}e=b+(e<<2)|0;J[e>>2]=5;b=ta(b,g,f);J[a+276>>2]=b+(c<<2);J[a+272>>2]=e+4;J[a+268>>2]=b;if(!g){b=d;break l}na(g);b=d;break l}if(o){break n}Qb(a,J[a+164>>2],0,j)}b=J[a+272>>2];x:{if((b|0)!=J[a+276>>2]){J[b>>2]=7;J[a+272>>2]=b+4;break x}f=J[a+268>>2];c=b-f|0;d=c>>2;e=d+1|0;if(e>>>0>1073741823){break c}b=c>>>1|0;e=c>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(e){if(e>>>0>1073741823){break a}b=oa(e<<2)}else{b=0}d=b+(d<<2)|0;J[d>>2]=7;b=ta(b,f,c);J[a+276>>2]=b+(e<<2);J[a+272>>2]=d+4;J[a+268>>2]=b;if(!f){break x}na(f)}J[a+20>>2]=J[a+20>>2]-4;break i}b=J[a+272>>2];y:{if((b|0)!=J[a+276>>2]){J[b>>2]=0;J[a+272>>2]=b+4;break y}g=J[a+268>>2];f=b-g|0;d=f>>2;c=d+1|0;if(c>>>0>1073741823){break c}b=f>>>1|0;c=f>>>0>=2147483644?1073741823:b>>>0>c>>>0?b:c;if(c){if(c>>>0>1073741823){break a}b=oa(c<<2)}else{b=0}d=b+(d<<2)|0;J[d>>2]=0;b=ta(b,g,f);J[a+276>>2]=b+(c<<2);J[a+272>>2]=d+4;J[a+268>>2]=b;if(!g){break y}na(g)}b=-1;if((e|0)==-1){break l}d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)==-1){break l}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2]}m=m+1|0;if((r|0)!=(m|0)){continue}break}break i}J[a+20>>2]=e}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break e}f=J[a+28>>2];while(1){d=b-4|0;c=J[d>>2];z:{if((c|0)!=-1){c=(c>>>0)/3|0;if(!(J[f+(c>>>3&268435452)>>2]>>>c&1)){break z}}J[a+20>>2]=d;b=d}if((b|0)!=(e|0)){continue}break}}ba=l+32|0;return 1}qa();B()}qa();B()}qa();B()}xa();B()}function $c(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=H[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=I[b>>1];b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=L[b>>1];b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=J[b>>2];b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=J[b>>2];if((e|0)<0){break b}J[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=J[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=J[b+4>>2];e=J[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}J[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=J[b+4>>2];e=J[b>>2];if(!k&e>>>0>2147483647|k){break b}J[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=J[a>>2];j=J[e>>2];g=j;f=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=J[e+4>>2];e=f-j|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=N[g>>2];if(m>=Q(2147483648)|m<Q(-2147483648)|m!=m){break d}n=Q(R(m));if(n==Q(Infinity)){break d}e=(b<<2)+d|0;if(n<Q(2147483648)){i=~~m}else{i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=N[g>>2];if(m>=Q(2147483648)|m<Q(-2147483648)|(Q(R(m))==Q(Infinity)|m!=m)){break d}if(m<Q(0)|m>Q(1)){break d}e=(b<<2)+d|0;l=V(+m*2147483647+.5);f:{if(R(l)<2147483648){i=~~l;break f}i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}pa((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=J[a>>2];j=J[e>>2];g=j;f=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=J[e+4>>2];e=f-j|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=O[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=R(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=O[g>>3];if(l>=2147483647|l<-2147483648|(R(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=V(l*2147483647+.5);i:{if(R(l)<2147483648){i=~~l;break i}i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}pa((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}pa((e<<2)+d|0,0,(c&255)-e<<2)}return j}pa((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fe(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=J[b+48>>2];if(!g){b=oa(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);e=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=e;H[b+16|0]=e>>>8;H[b+17|0]=e>>>16;H[b+18|0]=e>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);e=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);e=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,23);na(b);return}h=J[b+52>>2];if(!h){e=ba-32|0;ba=e;d=oa(16);J[e+16>>2]=d;J[e+20>>2]=15;J[e+24>>2]=-2147483632;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);h=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[d+7|0]=h;H[d+8|0]=h>>>8;H[d+9|0]=h>>>16;H[d+10|0]=h>>>24;H[d+11|0]=f;H[d+12|0]=f>>>8;H[d+13|0]=f>>>16;H[d+14|0]=f>>>24;f=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);h=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[d|0]=h;H[d+1|0]=h>>>8;H[d+2|0]=h>>>16;H[d+3|0]=h>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+15|0]=0;h=b+4|0;j=Bb(h,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}a:{b:{c:{d:{e:{switch(j+1|0){case 1:d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672;break c;case 0:break e;default:break d}}if((cb(h)|0)!=10){break d}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672;break c}J[e+12>>2]=0;f:{i=J[g+12>>2];f=J[g+8>>2];if((i-f|0)>0){d=0;while(1){k=J[J[(d<<2)+f>>2]+28>>2];if(k-1>>>0>=6){if((k|0)!=9){break f}d=oa(32);J[e+16>>2]=d;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[d+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[d+8|0]=i;H[d+9|0]=i>>>8;H[d+10|0]=i>>>16;H[d+11|0]=i>>>24;H[d+12|0]=f;H[d+13|0]=f>>>8;H[d+14|0]=f>>>16;H[d+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[d|0]=i;H[d+1|0]=i>>>8;H[d+2|0]=i>>>16;H[d+3|0]=i>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+17|0]=0;d=jb(h,e+12|0,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}if((d|0)<=0){break f}f=J[g+8>>2];i=J[g+12>>2];d=J[e+12>>2]}d=d+1|0;J[e+12>>2]=d;if(i-f>>2>(d|0)){continue}break}}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12564;break c}if((j|0)==1){break b}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672}J[d+4>>2]=g;Qf(a,d,h,c);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}c=J[d+52>>2];J[b+44>>2]=0;J[b+40>>2]=c;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}da[J[J[d>>2]+4>>2]](d);break a}b=oa(32);H[b+24|0]=0;c=K[1853]|K[1854]<<8|(K[1855]<<16|K[1856]<<24);d=K[1849]|K[1850]<<8|(K[1851]<<16|K[1852]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1845]|K[1846]<<8|(K[1847]<<16|K[1848]<<24);d=K[1841]|K[1842]<<8|(K[1843]<<16|K[1844]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1837]|K[1838]<<8|(K[1839]<<16|K[1840]<<24);d=K[1833]|K[1834]<<8|(K[1835]<<16|K[1836]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,24);na(b)}ba=e+32|0;return}d=ba-16|0;ba=d;e=oa(16);J[d>>2]=e;J[d+4>>2]=15;J[d+8>>2]=-2147483632;g=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);f=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[e+7|0]=f;H[e+8|0]=f>>>8;H[e+9|0]=f>>>16;H[e+10|0]=f>>>24;H[e+11|0]=g;H[e+12|0]=g>>>8;H[e+13|0]=g>>>16;H[e+14|0]=g>>>24;g=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);f=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[e|0]=f;H[e+1|0]=f>>>8;H[e+2|0]=f>>>16;H[e+3|0]=f>>>24;H[e+4|0]=g;H[e+5|0]=g>>>8;H[e+6|0]=g>>>16;H[e+7|0]=g>>>24;H[e+15|0]=0;g=b+4|0;e=Bb(g,d,-1);if(H[d+11|0]<0){na(J[d>>2])}g:{h:{i:{switch(e+1|0){case 0:if((cb(g)|0)==10){break h}break;case 2:break i;default:break h}}e=Tf(oa(68));J[e+64>>2]=0;J[e>>2]=10404;break g}e=Tf(oa(64));J[e>>2]=12280}J[e+56>>2]=h;J[e+4>>2]=h;Qf(a,e,g,c);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}J[b+40>>2]=J[e+52>>2];J[b+44>>2]=J[e+60>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}da[J[J[e>>2]+4>>2]](e);ba=d+16|0}function ci(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=Q(0),u=0,v=0,w=0,x=0,y=Q(0),z=0,A=0;c=ba+-64|0;ba=c;f=J[a+80>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+56>>2]=a;J[c+48>>2]=a;J[c+32>>2]=0;J[c+36>>2]=0;J[c+52>>2]=1065353216;df(c+32|0,f);f=J[a+80>>2];J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;a:{b:{c:{d:{if(!f){break d}if(f>>>0>=1073741824){break a}f=f<<2;s=oa(f);J[c+16>>2]=s;b=f+s|0;J[c+24>>2]=b;pa(s,0,f);J[c+20>>2]=b;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;z=c+40|0;f=0;while(1){e=0;b=J[c+48>>2];m=J[b+8>>2];n=J[b+12>>2]-m|0;v=(n|0)<=0;e:{if(v){break e}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;h=0;if(n>>>0>=8){g=b&1073741822;b=0;while(1){j=h<<2;d=J[j+m>>2];if(K[d+84|0]){d=f}else{d=J[J[d+68>>2]+(f<<2)>>2]}h=h+2|0;l=d<<3^e<<2;e=J[m+(j|4)>>2];if(K[e+84|0]){d=f}else{d=J[J[e+68>>2]+(f<<2)>>2]}e=l^d<<2;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!i){break e}b=J[m+(h<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}e=b<<2^e<<1}f:{g:{j=J[c+36>>2];if(!j){break g}g=J[c+32>>2];i=Kl(j)>>>0>1;b=j-1&e;h:{if(!i){break h}b=e;if(b>>>0<j>>>0){break h}b=(e>>>0)%(j>>>0)|0}d=b;b=J[g+(d<<2)>>2];if(!b){break g}k=J[b>>2];if(!k){break g}p=J[c+56>>2];i:{j:{if(!i){w=j-1|0;while(1){b=J[k+4>>2];k:{if((b|0)!=(e|0)){if((d|0)==(b&w)){break k}break g}x=J[p+8>>2];b=J[p+12>>2]-x|0;if((b|0)<4){break i}i=J[k+8>>2];o=b>>2;A=(o|0)<=1?1:o;l=0;h=0;while(1){b=f;g=J[x+(h<<2)>>2];if(K[g+84|0]){g=i}else{g=J[g+68>>2];b=J[g+(f<<2)>>2];g=J[g+(i<<2)>>2]}if((b|0)==(g|0)){h=h+1|0;l=(o|0)<=(h|0);if((h|0)!=(A|0)){continue}}break}if(l){break j}}k=J[k>>2];if(k){continue}break}break g}while(1){b=J[k+4>>2];l:{if((b|0)!=(e|0)){if(b>>>0>=j>>>0){b=(b>>>0)%(j>>>0)|0}if((b|0)==(d|0)){break l}break g}w=J[p+8>>2];b=J[p+12>>2]-w|0;if((b|0)<4){break i}i=J[k+8>>2];o=b>>2;x=(o|0)<=1?1:o;l=0;h=0;while(1){b=f;g=J[w+(h<<2)>>2];if(K[g+84|0]){g=i}else{g=J[g+68>>2];b=J[g+(f<<2)>>2];g=J[g+(i<<2)>>2]}if((b|0)==(g|0)){h=h+1|0;l=(o|0)<=(h|0);if((h|0)!=(x|0)){continue}}break}if(l){break j}}k=J[k>>2];if(k){continue}break}break g}if(!k){break g}}J[(f<<2)+s>>2]=J[k+12>>2];break f}m:{if(v){e=0;break m}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;e=0;h=0;if(n>>>0>=8){g=b&1073741822;b=0;while(1){l=h<<2;d=J[l+m>>2];if(K[d+84|0]){d=f}else{d=J[J[d+68>>2]+(f<<2)>>2]}h=h+2|0;n=d<<3^e<<2;e=J[m+(l|4)>>2];if(K[e+84|0]){d=f}else{d=J[J[e+68>>2]+(f<<2)>>2]}e=n^d<<2;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!i){break m}b=J[m+(h<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}e=b<<2^e<<1}n:{o:{if(!j){break o}m=j-1|0;if(m&j){k=e>>>0>=j>>>0?(e>>>0)%(j>>>0)|0:e;g=J[J[c+32>>2]+(k<<2)>>2];if(!g){break o}m=J[c+56>>2];while(1){g=J[g>>2];if(!g){break o}b=J[g+4>>2];if((b|0)!=(e|0)){if(b>>>0>=j>>>0){b=(b>>>0)%(j>>>0)|0}if((b|0)!=(k|0)){break o}}p=J[m+8>>2];b=J[m+12>>2]-p|0;if((b|0)<4){break n}d=J[g+8>>2];n=b>>2;o=(n|0)<=1?1:n;l=0;h=0;while(1){b=f;i=J[p+(h<<2)>>2];if(K[i+84|0]){i=d}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(d<<2)>>2]}if((b|0)==(i|0)){h=h+1|0;l=(n|0)<=(h|0);if((h|0)!=(o|0)){continue}}break}if(!l){continue}break}break n}k=e&m;g=J[J[c+32>>2]+(k<<2)>>2];if(!g){break o}n=J[c+56>>2];while(1){g=J[g>>2];if(!g){break o}b=J[g+4>>2];if((b|0)!=(e|0)&(b&m)!=(k|0)){break o}o=J[n+8>>2];b=J[n+12>>2]-o|0;if((b|0)<4){break n}d=J[g+8>>2];p=b>>2;v=(p|0)<=1?1:p;l=0;h=0;while(1){b=f;i=J[o+(h<<2)>>2];if(K[i+84|0]){i=d}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(d<<2)>>2]}if((b|0)==(i|0)){h=h+1|0;l=(p|0)<=(h|0);if((h|0)!=(v|0)){continue}}break}if(!l){continue}break}break n}d=oa(16);J[d+8>>2]=f;J[d+4>>2]=e;J[d>>2]=0;J[d+12>>2]=u;y=Q(J[c+44>>2]+1>>>0);t=N[c+52>>2];p:{if(y>Q(t*Q(j>>>0))?0:j){break p}g=c+32|0;i=(j-1&j)!=0|j>>>0<3|j<<1;t=Q(W(Q(y/t)));q:{if(t<Q(4294967296)&t>=Q(0)){b=~~t>>>0;break q}b=0}df(g,b>>>0<i>>>0?i:b);j=J[c+36>>2];b=j-1|0;if(!(b&j)){k=b&e;break p}if(e>>>0<j>>>0){k=e;break p}k=(e>>>0)%(j>>>0)|0}e=J[c+32>>2]+(k<<2)|0;b=J[e>>2];r:{s:{if(!b){J[d>>2]=J[c+40>>2];J[c+40>>2]=d;J[e>>2]=z;b=J[d>>2];if(!b){break r}b=J[b+4>>2];e=j-1|0;t:{if(!(e&j)){b=b&e;break t}if(b>>>0<j>>>0){break t}b=(b>>>0)%(j>>>0)|0}b=J[c+32>>2]+(b<<2)|0;break s}J[d>>2]=J[b>>2]}J[b>>2]=d}J[c+44>>2]=J[c+44>>2]+1;q=J[c+8>>2];r=J[c+4>>2];s=J[c+16>>2]}J[(f<<2)+s>>2]=u;u=u+1|0;if((q|0)!=(r|0)){J[r>>2]=f;r=r+4|0;J[c+4>>2]=r;break f}e=J[c>>2];b=q-e|0;i=b>>2;d=i+1|0;if(d>>>0>=1073741824){break c}g=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(d){if(d>>>0>=1073741824){break b}b=oa(d<<2)}else{b=0}h=b+(i<<2)|0;J[h>>2]=f;r=h+4|0;if((e|0)!=(q|0)){while(1){h=h-4|0;q=q-4|0;J[h>>2]=J[q>>2];if((e|0)!=(q|0)){continue}break}}q=b+(d<<2)|0;J[c+8>>2]=q;J[c+4>>2]=r;J[c>>2]=h;if(e){na(e)}}f=f+1|0;b=J[a+80>>2];if(f>>>0<b>>>0){continue}break}if((b|0)!=(u|0)){da[J[J[a>>2]+24>>2]](a,c+16|0,c);J[a+80>>2]=u}a=J[c>>2];if(!a){break d}J[c+4>>2]=a;na(a)}a=J[c+16>>2];if(a){J[c+20>>2]=a;na(a)}f=J[c+40>>2];if(f){while(1){a=J[f>>2];na(f);f=a;if(f){continue}break}}a=J[c+32>>2];J[c+32>>2]=0;if(a){na(a)}ba=c- -64|0;return}qa();B()}xa();B()}qa();B()}function hb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=0,n=Q(0),o=0;a:{if(!d){break a}b:{c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b|0];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=I[b>>1];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=L[b>>1];J[e+4>>2]=0;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=J[b>>2];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=0;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=J[b+4>>2];e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=J[b>>2];i=J[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;J[j>>2]=e;J[j+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=K[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break d}if(K[a+32|0]){break a}e=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+e|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=N[g>>2];if(k>=Q(0x8000000000000000)|k<Q(-0x8000000000000000)|k!=k){break a}n=Q(R(k));if(n==Q(Infinity)){break a}e=(b<<3)+d|0;e:{if(n<Q(0x8000000000000000)){j=Q(R(k))>=Q(1)?~~(k>Q(0)?Q(T(Q(V(Q(k*Q(2.3283064365386963e-10)))),Q(4294967296))):Q(W(Q(Q(k-Q(~~k>>>0>>>0))*Q(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=j;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=K[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break f}if(K[a+32|0]){break a}e=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+e|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=O[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=R(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=R(l)>=1?~~(l>0?T(V(l*2.3283064365386963e-10),4294967295):W((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=j;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=K[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}pa(d,0,a<<3)}}function ak(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=ba-16|0;ba=e;f=J[a+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=20;J[e+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);d=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);d=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;f=Lf(f+24|0,e);if(H[e+11|0]<0){na(J[e>>2])}g=J[a+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=22;J[e+8>>2]=-2147483616;c=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);d=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[b+14|0]=d;H[b+15|0]=d>>>8;H[b+16|0]=d>>>16;H[b+17|0]=d>>>24;H[b+18|0]=c;H[b+19|0]=c>>>8;H[b+20|0]=c>>>16;H[b+21|0]=c>>>24;c=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);d=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);d=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+22|0]=0;g=Lf(g+24|0,e);if(H[e+11|0]<0){na(J[e>>2])}b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}b=J[a+56>>2];h=J[b+100>>2];i=J[a+48>>2];j=J[b+96>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1566]|K[1567]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1562]|K[1563]<<8|(K[1564]<<16|K[1565]<<24);d=K[1558]|K[1559]<<8|(K[1560]<<16|K[1561]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1554]|K[1555]<<8|(K[1556]<<16|K[1557]<<24);d=K[1550]|K[1551]<<8|(K[1552]<<16|K[1553]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;b=Bb(i,e,-1);if(H[e+11|0]<0){na(J[e>>2])}c=(h-j|0)/12|0;a:{b:{c:{d:{e:{f:{g:{h:{switch(b+1|0){case 1:break f;case 3:break g;case 0:break h;default:break c}}if(!f){break g}if(c>>>0<1e3|(cb(J[a+48>>2])|0)>4|g^1){break e}}b=J[a+44>>2];H[e|0]=2;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],e,e+1|0)}b=oa(360);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10584;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[b+304>>2]=0;J[b+308>>2]=0;J[b+296>>2]=0;J[b+300>>2]=0;J[b+288>>2]=0;J[b+292>>2]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0;H[b+352|0]=0;J[b+344>>2]=0;J[b+336>>2]=0;J[b+340>>2]=0;J[b+328>>2]=2;J[b+332>>2]=7;J[b+320>>2]=-1;J[b+324>>2]=0;J[b+312>>2]=0;J[b+316>>2]=-1;break d}if(!f){break c}}b=J[a+44>>2];H[e|0]=0;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],e,e+1|0)}b=oa(296);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10532;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;H[b+288|0]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0}c=J[a+64>>2];J[a+64>>2]=b;if(!c){break b}da[J[J[c>>2]+4>>2]](c)}b=J[a+64>>2];if(b){break b}a=0;break a}a=da[J[J[b>>2]+8>>2]](b,a)|0}ba=e+16|0;return a|0}function qh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=ba-80|0;ba=i;f=-1;h=-1;a:{if((b|0)==-1){break a}h=b+1|0;f=(h>>>0)%3|0?h:b-2|0;h=b-1|0;if((b>>>0)%3|0){break a}h=b+2|0}e=J[a+36>>2];b=J[e>>2];b:{c:{d:{e:{f:{g:{e=J[e+4>>2]-b>>2;g=f<<2;f=J[J[a+32>>2]+28>>2];g=J[g+f>>2];if(e>>>0<=g>>>0){break g}h=J[f+(h<<2)>>2];if(h>>>0>=e>>>0){break g}h:{j=J[b+(h<<2)>>2];g=J[b+(g<<2)>>2];if((j|0)>=(d|0)|(g|0)>=(d|0)){break h}b=(j<<3)+c|0;z=J[b+4>>2];f=(g<<3)+c|0;h=J[f+4>>2];f=J[f>>2];C=J[b>>2];if(!((f|0)!=(C|0)|(h|0)!=(z|0))){J[a+8>>2]=f;J[a+12>>2]=h;break c}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;e=i- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+56|0);b=J[J[a+4>>2]+(g<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+32|0);b=J[J[a+4>>2]+(j<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+8|0);b=J[i+16>>2];p=J[i+40>>2];u=b-p|0;N=J[i+44>>2];b=J[i+20>>2]-(N+(b>>>0<p>>>0)|0)|0;I=b;e=Hl(u,b,u,b);j=ca;b=J[i+8>>2];x=J[i+32>>2];D=b-x|0;O=J[i+36>>2];b=J[i+12>>2]-(O+(b>>>0<x>>>0)|0)|0;L=b;k=e;e=Hl(D,b,D,b);b=k+e|0;k=ca+j|0;k=b>>>0<e>>>0?k+1|0:k;e=J[i+24>>2];E=J[i+48>>2];F=e-E|0;P=J[i+52>>2];e=J[i+28>>2]-(P+(e>>>0<E>>>0)|0)|0;M=e;m=b;b=Hl(F,e,F,e);o=m+b|0;e=ca+k|0;q=b>>>0>o>>>0?e+1|0:e;if(!(q|o)){break h}b=0;v=Jl(-1,2147483647,o,q);e=f;f=e>>31;G=f;r=e;e=f>>31;g=e;l=r^e;e=l-e|0;f=(f^g)-((g>>>0>l>>>0)+g|0)|0;g=f;f=h>>31;Q=f;s=h;h=f>>31;l=s^h;n=l-h|0;k=f>>31;h=(k^f)-((h>>>0>l>>>0)+k|0)|0;f=(h|0)==(g|0)&e>>>0>n>>>0|g>>>0>h>>>0;e=f?e:n;j=ca;h=f?g:h;if((j|0)==(h|0)&e>>>0>v>>>0|h>>>0>j>>>0){break b}j=J[i+64>>2];R=J[i+68>>2];h=Hl(j-p|0,R-((j>>>0<p>>>0)+N|0)|0,u,I);f=ca;l=J[i+56>>2];S=J[i+60>>2];e=Hl(l-x|0,S-((l>>>0<x>>>0)+O|0)|0,D,L);h=e+h|0;g=ca+f|0;g=e>>>0>h>>>0?g+1|0:g;f=h;n=J[i+72>>2];T=J[i+76>>2];h=Hl(n-E|0,T-((n>>>0<E>>>0)+P|0)|0,F,M);t=f+h|0;f=ca+g|0;f=h>>>0>t>>>0?f+1|0:f;v=f;e=f>>31;k=e^t;h=k-e|0;k=(e^f)-((e>>>0>k>>>0)+e|0)|0;f=C;C=f-r|0;f=(f>>31)-((f>>>0<r>>>0)+G|0)|0;U=f;A=f>>31;m=A^C;g=m-A|0;e=f>>31;f=(e^f)-((m>>>0<A>>>0)+e|0)|0;m=f;A=z-s|0;f=(z>>31)-((s>>>0>z>>>0)+Q|0)|0;z=f;e=g;W=e;w=f>>31;y=w^A;V=y-w|0;g=f>>31;f=(g^f)-((w>>>0>y>>>0)+g|0)|0;e=(m|0)==(f|0)&e>>>0>V>>>0|f>>>0<m>>>0;f=Jl(-1,2147483647,e?W:V,e?m:f);e=ca;if((e|0)==(k|0)&f>>>0<h>>>0|e>>>0<k>>>0){break b}f=h;h=k;e=L>>31;g=e;m=e^D;e=m-e|0;g=(g^L)-((g>>>0>m>>>0)+g|0)|0;k=I>>31;w=k^u;y=w-k|0;k=(k^I)-((k>>>0>w>>>0)+k|0)|0;m=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=m?e:y;g=m?g:k;k=M>>31;m=e;w=k^F;y=w-k|0;k=(k^M)-((k>>>0>w>>>0)+k|0)|0;e=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=Jl(-1,2147483647,e?m:y,e?g:k);g=ca;if((g|0)==(h|0)&e>>>0<f>>>0|g>>>0<h>>>0){break b}b=Hl(t,v,A,z);h=ca;f=Hl(o,q,s,Q);s=f+b|0;b=ca+h|0;k=f>>>0>s>>>0?b+1|0:b;b=Hl(t,v,C,U);h=ca;f=b;b=Hl(r,G,o,q);r=f+b|0;e=ca+h|0;G=b>>>0>r>>>0?e+1|0:e;h=1;b=0;g=Il(Hl(t,v,u,I),ca,o,q);e=g+p|0;f=ca+N|0;f=e>>>0<g>>>0?f+1|0:f;g=j-e|0;f=R-((e>>>0>j>>>0)+f|0)|0;j=Hl(g,f,g,f);p=ca;e=Il(Hl(t,v,D,L),ca,o,q);f=e+x|0;g=ca+O|0;g=e>>>0>f>>>0?g+1|0:g;e=l-f|0;f=S-((f>>>0>l>>>0)+g|0)|0;g=Hl(e,f,e,f);f=g+j|0;e=ca+p|0;e=f>>>0<g>>>0?e+1|0:e;l=f;j=Il(Hl(t,v,F,M),ca,o,q);g=j+E|0;f=ca+P|0;f=g>>>0<j>>>0?f+1|0:f;j=n-g|0;f=T-((g>>>0>n>>>0)+f|0)|0;j=Hl(j,f,j,f);f=j+l|0;g=ca+e|0;f=Hl(f,f>>>0<j>>>0?g+1|0:g,o,q);e=ca;j=e;if(!e&f>>>0<=1){break f}l=f;while(1){g=b<<1|h>>>31;h=h<<1;b=g;n=!e&l>>>0>7|(e|0)!=0;l=(e&3)<<30|l>>>2;e=e>>>2|0;if(n){continue}break}break e}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break c}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2];break c}ra();B()}b=j;h=f;if(f-1|0){break d}}while(1){e=Jl(f,j,h,b);b=b+ca|0;g=h;h=e+h|0;b=g>>>0>h>>>0?b+1|0:b;h=(b&1)<<31|h>>>1;b=b>>>1|0;e=Hl(h,b,h,b);g=ca;if((j|0)==(g|0)&e>>>0>f>>>0|g>>>0>j>>>0){continue}break}}t=a+16|0;j=(d<<3)+c|0;d=J[j+4>>2];g=Hl(h,b,C,U);p=ca;c=Il(s-g|0,k-(p+(g>>>0>s>>>0)|0)|0,o,q);f=d-c|0;e=d>>31;l=e-(ca+(c>>>0>d>>>0)|0)|0;n=Hl(f,l,f,l);u=ca;j=J[j>>2];f=j>>31;v=f;l=Hl(h,b,A,z);x=ca;b=G+x|0;h=l+r|0;b=h>>>0<r>>>0?b+1|0:b;m=n;h=Il(h,b,o,q);b=j-h|0;f=f-(ca+(h>>>0>j>>>0)|0)|0;n=Hl(b,f,b,f);b=m+n|0;f=ca+u|0;u=b;n=b>>>0<n>>>0?f+1|0:f;f=e;e=k+p|0;b=g+s|0;e=b>>>0<s>>>0?e+1|0:e;b=Il(b,e,o,q);e=d-b|0;d=f-(ca+(b>>>0>d>>>0)|0)|0;e=Hl(e,d,e,d);p=ca;d=Il(r-l|0,G-((l>>>0>r>>>0)+x|0)|0,o,q);f=j-d|0;g=v-(ca+(d>>>0>j>>>0)|0)|0;j=Hl(f,g,f,g);g=j+e|0;f=ca+p|0;f=g>>>0<j>>>0?f+1|0:f;i:{if((f|0)==(n|0)&g>>>0>u>>>0|f>>>0>n>>>0){H[i+7|0]=1;Wc(t,i+7|0);break i}H[i+7|0]=0;Wc(t,i+7|0);c=b;h=d}J[a+8>>2]=h;J[a+12>>2]=c}b=1}ba=i+80|0;return b}function lh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=ba-80|0;ba=i;h=-1;a:{if((b|0)==-1){break a}f=J[a+32>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){h=J[J[f>>2]+(e<<2)>>2]}e=((b>>>0)%3|0?-1:2)+b|0;b=-1;b=(e|0)!=-1?J[J[f>>2]+(e<<2)>>2]:b;e=J[a+36>>2];f=J[e>>2];e=J[e+4>>2]-f>>2;if(e>>>0<=h>>>0|b>>>0>=e>>>0){break a}b:{c:{d:{e:{f:{g:{j=J[f+(b<<2)>>2];g=J[f+(h<<2)>>2];if((j|0)>=(d|0)|(g|0)>=(d|0)){break g}b=(j<<3)+c|0;z=J[b+4>>2];f=(g<<3)+c|0;h=J[f+4>>2];f=J[f>>2];C=J[b>>2];if(!((f|0)!=(C|0)|(h|0)!=(z|0))){J[a+8>>2]=f;J[a+12>>2]=h;break c}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;e=i- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+56|0);b=J[J[a+4>>2]+(g<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+32|0);b=J[J[a+4>>2]+(j<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+8|0);b=J[i+16>>2];p=J[i+40>>2];u=b-p|0;N=J[i+44>>2];b=J[i+20>>2]-(N+(b>>>0<p>>>0)|0)|0;I=b;e=Hl(u,b,u,b);j=ca;b=J[i+8>>2];x=J[i+32>>2];D=b-x|0;O=J[i+36>>2];b=J[i+12>>2]-(O+(b>>>0<x>>>0)|0)|0;L=b;k=e;e=Hl(D,b,D,b);b=k+e|0;k=ca+j|0;k=b>>>0<e>>>0?k+1|0:k;e=J[i+24>>2];E=J[i+48>>2];F=e-E|0;P=J[i+52>>2];e=J[i+28>>2]-(P+(e>>>0<E>>>0)|0)|0;M=e;m=b;b=Hl(F,e,F,e);o=m+b|0;e=ca+k|0;q=b>>>0>o>>>0?e+1|0:e;if(!(q|o)){break g}b=0;v=Jl(-1,2147483647,o,q);e=f;f=e>>31;G=f;r=e;e=f>>31;g=e;l=r^e;e=l-e|0;f=(f^g)-((g>>>0>l>>>0)+g|0)|0;g=f;f=h>>31;Q=f;s=h;h=f>>31;l=s^h;n=l-h|0;k=f>>31;h=(k^f)-((h>>>0>l>>>0)+k|0)|0;f=(h|0)==(g|0)&e>>>0>n>>>0|g>>>0>h>>>0;e=f?e:n;j=ca;h=f?g:h;if((j|0)==(h|0)&e>>>0>v>>>0|h>>>0>j>>>0){break b}j=J[i+64>>2];R=J[i+68>>2];h=Hl(j-p|0,R-((j>>>0<p>>>0)+N|0)|0,u,I);f=ca;l=J[i+56>>2];S=J[i+60>>2];e=Hl(l-x|0,S-((l>>>0<x>>>0)+O|0)|0,D,L);h=e+h|0;g=ca+f|0;g=e>>>0>h>>>0?g+1|0:g;f=h;n=J[i+72>>2];T=J[i+76>>2];h=Hl(n-E|0,T-((n>>>0<E>>>0)+P|0)|0,F,M);t=f+h|0;f=ca+g|0;f=h>>>0>t>>>0?f+1|0:f;v=f;e=f>>31;k=e^t;h=k-e|0;k=(e^f)-((e>>>0>k>>>0)+e|0)|0;f=C;C=f-r|0;f=(f>>31)-((f>>>0<r>>>0)+G|0)|0;U=f;A=f>>31;m=A^C;g=m-A|0;e=f>>31;f=(e^f)-((m>>>0<A>>>0)+e|0)|0;m=f;A=z-s|0;f=(z>>31)-((s>>>0>z>>>0)+Q|0)|0;z=f;e=g;W=e;w=f>>31;y=w^A;V=y-w|0;g=f>>31;f=(g^f)-((w>>>0>y>>>0)+g|0)|0;e=(m|0)==(f|0)&e>>>0>V>>>0|f>>>0<m>>>0;f=Jl(-1,2147483647,e?W:V,e?m:f);e=ca;if((e|0)==(k|0)&f>>>0<h>>>0|e>>>0<k>>>0){break b}f=h;h=k;e=L>>31;g=e;m=e^D;e=m-e|0;g=(g^L)-((g>>>0>m>>>0)+g|0)|0;k=I>>31;w=k^u;y=w-k|0;k=(k^I)-((k>>>0>w>>>0)+k|0)|0;m=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=m?e:y;g=m?g:k;k=M>>31;m=e;w=k^F;y=w-k|0;k=(k^M)-((k>>>0>w>>>0)+k|0)|0;e=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=Jl(-1,2147483647,e?m:y,e?g:k);g=ca;if((g|0)==(h|0)&e>>>0<f>>>0|g>>>0<h>>>0){break b}b=Hl(t,v,A,z);h=ca;f=Hl(o,q,s,Q);s=f+b|0;b=ca+h|0;k=f>>>0>s>>>0?b+1|0:b;b=Hl(t,v,C,U);h=ca;f=b;b=Hl(r,G,o,q);r=f+b|0;e=ca+h|0;G=b>>>0>r>>>0?e+1|0:e;h=1;b=0;g=Il(Hl(t,v,u,I),ca,o,q);e=g+p|0;f=ca+N|0;f=e>>>0<g>>>0?f+1|0:f;g=j-e|0;f=R-((e>>>0>j>>>0)+f|0)|0;j=Hl(g,f,g,f);p=ca;e=Il(Hl(t,v,D,L),ca,o,q);f=e+x|0;g=ca+O|0;g=e>>>0>f>>>0?g+1|0:g;e=l-f|0;f=S-((f>>>0>l>>>0)+g|0)|0;g=Hl(e,f,e,f);f=g+j|0;e=ca+p|0;e=f>>>0<g>>>0?e+1|0:e;l=f;j=Il(Hl(t,v,F,M),ca,o,q);g=j+E|0;f=ca+P|0;f=g>>>0<j>>>0?f+1|0:f;j=n-g|0;f=T-((g>>>0>n>>>0)+f|0)|0;j=Hl(j,f,j,f);f=j+l|0;g=ca+e|0;f=Hl(f,f>>>0<j>>>0?g+1|0:g,o,q);e=ca;j=e;if(!e&f>>>0<=1){break f}l=f;while(1){g=b<<1|h>>>31;h=h<<1;b=g;n=!e&l>>>0>7|(e|0)!=0;l=(e&3)<<30|l>>>2;e=e>>>2|0;if(n){continue}break}break e}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break c}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2];break c}b=j;h=f;if(f-1|0){break d}}while(1){e=Jl(f,j,h,b);b=b+ca|0;g=h;h=e+h|0;b=g>>>0>h>>>0?b+1|0:b;h=(b&1)<<31|h>>>1;b=b>>>1|0;e=Hl(h,b,h,b);g=ca;if((j|0)==(g|0)&e>>>0>f>>>0|g>>>0>j>>>0){continue}break}}t=a+16|0;j=(d<<3)+c|0;d=J[j+4>>2];g=Hl(h,b,C,U);p=ca;c=Il(s-g|0,k-(p+(g>>>0>s>>>0)|0)|0,o,q);f=d-c|0;e=d>>31;l=e-(ca+(c>>>0>d>>>0)|0)|0;n=Hl(f,l,f,l);u=ca;j=J[j>>2];f=j>>31;v=f;l=Hl(h,b,A,z);x=ca;b=G+x|0;h=l+r|0;b=h>>>0<r>>>0?b+1|0:b;m=n;h=Il(h,b,o,q);b=j-h|0;f=f-(ca+(h>>>0>j>>>0)|0)|0;n=Hl(b,f,b,f);b=m+n|0;f=ca+u|0;u=b;n=b>>>0<n>>>0?f+1|0:f;f=e;e=k+p|0;b=g+s|0;e=b>>>0<s>>>0?e+1|0:e;b=Il(b,e,o,q);e=d-b|0;d=f-(ca+(b>>>0>d>>>0)|0)|0;e=Hl(e,d,e,d);p=ca;d=Il(r-l|0,G-((l>>>0>r>>>0)+x|0)|0,o,q);f=j-d|0;g=v-(ca+(d>>>0>j>>>0)|0)|0;j=Hl(f,g,f,g);g=j+e|0;f=ca+p|0;f=g>>>0<j>>>0?f+1|0:f;h:{if((f|0)==(n|0)&g>>>0>u>>>0|f>>>0>n>>>0){H[i+7|0]=1;Wc(t,i+7|0);break h}H[i+7|0]=0;Wc(t,i+7|0);c=b;h=d}J[a+8>>2]=h;J[a+12>>2]=c}b=1}ba=i+80|0;return b}ra();B()}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=ba-16|0;ba=e;J[a+8>>2]=b;J[a>>2]=0;d=a+12|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=d+32|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+96|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+128|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+160|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+192|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+224|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+256|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+288|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+320|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+352|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+384|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+416|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+448|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+480|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+512|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+544|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+576|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+608|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+640|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+672|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+704|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+736|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+768|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+800|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+832|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+864|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+896|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+928|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+960|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;d=d+992|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1036|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1068|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1088|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1108|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[a+1136>>2]=0;J[a+1128>>2]=0;J[a+1132>>2]=0;h=a+1164|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+1140>>2]=0;J[a+1144>>2]=0;d=a+1156|0;J[d>>2]=0;J[d+4>>2]=0;d=a+1148|0;J[d>>2]=0;J[d+4>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;d=1;break a}d=b<<2;c=oa(d);J[a+1128>>2]=c;f=c+d|0;J[a+1136>>2]=f;pa(c,0,d);g=a+1148|0;J[g>>2]=0;J[a+1140>>2]=0;J[a+1144>>2]=0;J[a+1132>>2]=f;c=oa(d);J[a+1140>>2]=c;f=c+d|0;J[g>>2]=f;pa(c,0,d);g=a+1160|0;J[g>>2]=0;J[a+1152>>2]=0;J[a+1156>>2]=0;J[a+1144>>2]=f;c=oa(d);J[a+1152>>2]=c;f=c+d|0;J[g>>2]=f;pa(c,0,d);J[a+1156>>2]=f;c=oa(d);J[e>>2]=c;f=c+d|0;J[e+8>>2]=f;pa(c,0,d);J[e+4>>2]=f;d=b<<5|1}Jb(h,d,e);c=J[e>>2];if(c){J[e+4>>2]=c;na(c)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;c=oa(b);J[e>>2]=c;f=b+c|0;J[e+8>>2]=f;pa(c,0,b);J[e+4>>2]=f}Jb(a+1176|0,d,e);b=J[e>>2];if(b){J[e+4>>2]=b;na(b)}ba=e+16|0;return a}function Xf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(J[a+92>>2]==J[a+88>>2]){break e}c=J[a+52>>2];f:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break f}h=J[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0<e>>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}f=e+(d<<2)|0;J[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;J[f>>2]=J[c>>2];if((c|0)!=(h|0)){continue}break}}J[a+56>>2]=e+(g<<2);J[a+52>>2]=d;J[a+48>>2]=f;if(!h){break f}na(h)}J[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=J[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=J[J[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=J[J[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=J[a+36>>2];h=d+(c>>>3&536870908)|0;g=J[h>>2];f=1<<c;if(!(g&f)){J[h>>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}mb(f,c,d);d=J[a+36>>2]}f=d+i|0;d=J[f>>2];c=1<<e;if(!(d&c)){J[f>>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}mb(d,e,c)}c=-1;c=(b|0)!=-1?J[J[J[a+4>>2]>>2]+(b<<2)>>2]:c;f=J[a+36>>2]+(c>>>3&536870908)|0;d=J[f>>2];e=1<<c;if(!(d&e)){J[f>>2]=d|e;mb(a+8|0,c,b)}d=J[a+84>>2];if((d|0)>2){break e}while(1){e=P(d,12)+a|0;b=J[e+52>>2];if((b|0)==J[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=J[b>>2];J[e+52>>2]=b;J[a+84>>2]=d;if((c|0)==-1){break e}f=J[a+24>>2];b=(c>>>0)/3|0;j:{if(J[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;J[b>>2]=J[b>>2]|1<<k;d=-1;l:{m:{n:{o:{p:{q:{r:{s:{d=(c|0)!=-1?J[J[J[a+4>>2]>>2]+(c<<2)>>2]:d;f=J[a+36>>2]+(d>>>3&536870908)|0;e=J[f>>2];b=1<<d;if(!(e&b)){J[f>>2]=b|e;i=J[(J[J[a+16>>2]+96>>2]+P(k,12)|0)+((c>>>0)%3<<2)>>2];l=J[J[a+20>>2]+4>>2];f=J[l+4>>2];t:{if((f|0)!=J[l+8>>2]){J[f>>2]=i;J[l+4>>2]=f+4;break t}j=J[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=oa(h<<2)}else{e=0}b=e+(g<<2)|0;J[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;J[b>>2]=J[f>>2];if((f|0)!=(j|0)){continue}break}}J[l+8>>2]=e+(h<<2);J[l+4>>2]=g;J[l>>2]=b;if(!j){break t}na(j)}j=J[a+12>>2];f=J[j+4>>2];u:{if((f|0)!=J[j+8>>2]){J[f>>2]=c;J[j+4>>2]=f+4;break u}i=J[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=oa(h<<2)}else{e=0}b=e+(g<<2)|0;J[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;J[b>>2]=J[f>>2];if((f|0)!=(i|0)){continue}break}}J[j+8>>2]=e+(h<<2);J[j+4>>2]=g;J[j>>2]=b;if(!i){break u}na(i)}b=J[a+12>>2];J[J[b+12>>2]+(d<<2)>>2]=J[b+24>>2];J[b+24>>2]=J[b+24>>2]+1}if((c|0)==-1){break k}g=J[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=J[J[g+12>>2]+(b<<2)>>2]}v:{w:{if((P(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=J[J[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=J[J[a+24>>2]+(b>>>3&268435452)>>2]&1<<b;if(d){break q}l=(b|0)!=0;break p}l=1;if(!d){break p}break k}qa();B()}qa();B()}if(!b){break o}break k}b=d?-1:e;x:{if(J[J[a+24>>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=J[J[g>>2]+(c<<2)>>2];if(!(J[J[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=J[a+88>>2]+(b<<2)|0;e=J[b>>2];J[b>>2]=e+1;k=(e|0)<=0?2:1}if(J[a+84>>2]>=(k|0)&l){break m}j=P(k,12)+a|0;b=J[j+52>>2];y:{if((b|0)!=J[j+56>>2]){J[b>>2]=c;J[j+52>>2]=b+4;break y}i=J[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}d=e+(d<<2)|0;J[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;J[d>>2]=J[b>>2];if((b|0)!=(i|0)){continue}break}}J[j+48>>2]=d;J[j+52>>2]=c;J[j+56>>2]=e+(g<<2);if(!i){break y}na(i)}if(J[a+84>>2]<=(k|0)){break x}J[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=J[J[J[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(J[J[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=J[a+88>>2]+(c<<2)|0;c=J[b>>2];J[b>>2]=c+1;b=(c|0)<=0?2:1}if(J[a+84>>2]<(b|0)){break l}c=f}f=J[a+24>>2];continue}break}k=P(b,12)+a|0;c=J[k+52>>2];z:{if((c|0)!=J[k+56>>2]){J[c>>2]=f;J[k+52>>2]=c+4;break z}i=J[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}d=e+(d<<2)|0;J[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;J[d>>2]=J[c>>2];if((c|0)!=(i|0)){continue}break}}J[k+48>>2]=d;J[k+52>>2]=f;J[k+56>>2]=e+(g<<2);if(!i){break z}na(i)}d=J[a+84>>2];if((d|0)<=(b|0)){break j}J[a+84>>2]=b;d=b;break j}d=J[a+84>>2]}if((d|0)<3){continue}break}}return 1}xa();B()}qa();B()}qa();B()}qa();B()}function Ha(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;J[e+12>>2]=a;a:{if(a>>>0<=211){d=J[Ke(17792,17984,e+12|0)>>2];break a}if(a>>>0>=4294967292){Z();B()}f=(a>>>0)/210|0;d=P(f,210);J[e+8>>2]=a-d;g=Ke(17984,18176,e+8|0)-17984>>2;while(1){d=J[(g<<2)+17984>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0<a>>>0){break a}if((P(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((P(b,c)|0)!=(d|0)){continue}break}break b}b=J[(a<<2)+17792>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((P(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=P(f,210);continue}}ba=e+16|0;return d}function Hd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);f=ba-112|0;ba=f;J[f+88>>2]=0;J[f+92>>2]=0;J[f+80>>2]=0;J[f+84>>2]=0;J[f+96>>2]=1065353216;c=J[a+80>>2];J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}h=c<<2;l=oa(h);J[f+32>>2]=l;c=h+l|0;J[f+40>>2]=c;pa(l,0,h);J[f+36>>2]=c;while(1){d=J[J[b>>2]>>2];h=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],o,0);j=c;c=c+h|0;e=c+d|0;c=K[e+12|0]|K[e+13|0]<<8|(K[e+14|0]<<16|K[e+15|0]<<24);J[f+72>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+76>>2]=c;c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[f+64>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+68>>2]=c;k=K[e+12|0]|K[e+13|0]<<8|(K[e+14|0]<<16|K[e+15|0]<<24);h=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+56>>2]=h;J[f+60>>2]=k;d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);c=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+48>>2]=c;J[f+52>>2]=d;J[f+16>>2]=h;J[f+20>>2]=k;J[f+8>>2]=c;J[f+12>>2]=d;J[f+24>>2]=q;c=0;m=f+8|0;h=J[m+12>>2]^(J[m+8>>2]^(J[m+4>>2]^(J[m>>2]^318)+239)+239)+239;b:{c:{n=f+80|0;j=J[n+4>>2];if(!j){break c}d=Kl(j);d:{if(d>>>0>=2){c=h;if(c>>>0>=j>>>0){c=(h>>>0)%(j>>>0)|0}i=J[J[n>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}k=J[m+12>>2];r=J[m+8>>2];s=J[m+4>>2];e=J[m>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(h|0)){if(d>>>0>=j>>>0){d=(d>>>0)%(j>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[i+8>>2];e:{if((d|0)!=(e|0)){d=(d|0)==(e|0);break e}d=J[i+12>>2];if((d|0)!=(s|0)){d=(d|0)==(s|0);break e}d=J[i+16>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=(k|0)==J[i+20>>2]}if(!d){continue}break}c=0;break b}c=h&j-1;i=J[J[n>>2]+(c<<2)>>2];if(!i){break c}}e=j-1|0;k=J[m+12>>2];t=J[m+8>>2];r=J[m+4>>2];s=J[m>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(h|0)&(d&e)!=(c|0)){break c}d=J[i+8>>2];f:{if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=J[i+12>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=J[i+16>>2];if((d|0)!=(t|0)){d=(d|0)==(t|0);break f}d=(k|0)==J[i+20>>2]}if(!d){continue}break}c=0;break b}i=oa(28);d=J[m+12>>2];J[i+16>>2]=J[m+8>>2];J[i+20>>2]=d;d=J[m+4>>2];J[i+8>>2]=J[m>>2];J[i+12>>2]=d;d=J[m+16>>2];J[i>>2]=0;J[i+4>>2]=h;J[i+24>>2]=d;p=Q(J[n+12>>2]+1>>>0);u=N[n+16>>2];g:{if(p>Q(u*Q(j>>>0))?0:j){break g}c=2;d=(j-1&j)!=0|j>>>0<3|j<<1;p=Q(W(Q(p/u)));h:{if(p<Q(4294967296)&p>=Q(0)){k=~~p>>>0;break h}k=0}d=d>>>0>k>>>0?d:k;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);j=J[n+4>>2]}j:{if(c>>>0<=j>>>0){if(c>>>0>=j>>>0){break j}k=j>>>0<3;p=Q(W(Q(Q(M[n+12>>2])/N[n+16>>2])));k:{if(p<Q(4294967296)&p>=Q(0)){d=~~p>>>0;break k}d=0}l:{m:{if(k){break m}if(Kl(j)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(j>>>0<=c>>>0){break j}}db(n,c)}j=J[n+4>>2];c=j-1|0;if(!(c&j)){c=c&h;break g}if(h>>>0<j>>>0){c=h;break g}c=(h>>>0)%(j>>>0)|0}h=J[n>>2]+(c<<2)|0;c=J[h>>2];n:{o:{if(!c){c=n+8|0;J[i>>2]=J[c>>2];J[n+8>>2]=i;J[h>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];h=j-1|0;p:{if(!(h&j)){c=c&h;break p}if(c>>>0<j>>>0){break p}c=(c>>>0)%(j>>>0)|0}c=J[n>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[n+12>>2]=J[n+12>>2]+1;c=1}H[f+108|0]=c;J[f+104>>2]=i;q:{if(!K[f+108|0]){J[(o<<2)+l>>2]=J[J[f+104>>2]+24>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,f- -64|0,c);l=J[f+32>>2];J[l+(o<<2)>>2]=q;q=q+1|0}o=o+1|0;g=o?g:g+1|0;e=J[a+80>>2];if(!g&o>>>0<e>>>0){continue}break}if((e|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];e=J[a+68>>2];if((b|0)==(e|0)){break r}b=b-e>>2;g=b>>>0<=1?1:b;h=g&3;c=0;b=0;if(g-1>>>0>=3){o=g&-4;k=0;while(1){d=b<<2;g=d+e|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|4)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|8)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|12)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];b=b+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}if(!h){break r}while(1){g=e+(b<<2)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];b=b+1|0;c=c+1|0;if((h|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;g=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<e>>>0){Ma(g,e-c|0,2176);e=J[a+80>>2];break s}if(c>>>0<=e>>>0){break s}J[a+72>>2]=b+(e<<2)}if(!e){break r}d=J[g>>2];c=0;b=0;if(e>>>0>=4){o=e&-4;k=0;while(1){h=b<<2;J[h+d>>2]=J[h+l>>2];g=h|4;J[g+d>>2]=J[g+l>>2];g=h|8;J[g+d>>2]=J[g+l>>2];g=h|12;J[g+d>>2]=J[g+l>>2];b=b+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}o=e&3;if(!o){break r}while(1){g=b<<2;J[g+d>>2]=J[g+l>>2];b=b+1|0;c=c+1|0;if((o|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(l)}b=J[f+88>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[f+80>>2];J[f+80>>2]=0;if(a){na(a)}ba=f+112|0;return q}qa();B()}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ba-32|0;ba=h;a:{b:{if(!J[J[a+8>>2]+80>>2]){e=1;break b}H[h+31|0]=254;d=J[a+36>>2];if(d){if(!(da[J[J[a>>2]+40>>2]](a,d)|0)){break b}d=J[a+36>>2];n=h,o=da[J[J[d>>2]+8>>2]](d)|0,H[n+31|0]=o}d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],h+31|0,h+32|0)}d=J[a+36>>2];c:{if(!d){break c}n=h,o=da[J[J[d>>2]+36>>2]](d)|0,H[n+16|0]=o;d=J[c+20>>2];if(!!J[c+16>>2]&(d|0)>=0|(d|0)>0){break c}sa(c,J[c+4>>2],h+16|0,h+17|0)}d=J[a+32>>2];e=J[d+48>>2];f=J[J[d>>2]>>2];g=J[d+80>>2];k=K[d+24|0];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;g=P(g,k);if(g){if(g>>>0>=1073741824){break a}d=g<<2;i=oa(d);pa(i,0,d)}d=e+f|0;f=J[a+36>>2];d:{e:{f:{if(!f){break f}e=0;if(!(da[J[J[f>>2]+44>>2]](f,d,i,g,k,J[b>>2])|0)){break d}e=J[a+36>>2];if(!e){break f}if(da[J[J[e>>2]+32>>2]](e)|0){break e}d=J[a+36>>2]?i:d}e=0;f=0;g:{if((g|0)<=0){break g}if((g|0)!=1){m=g&-2;while(1){l=e<<2;j=J[l+d>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=l|4;j=J[l+d>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;e=e+2|0;f=f+2|0;if((m|0)!=(f|0)){continue}break}}if(!(g&1)){break g}e=e<<2;d=J[e+d>>2];J[e+i>>2]=(d|0)<0?(d^-1)<<1|1:d<<1}}h:{i:{j:{k:{d=J[a+4>>2];if(!d){break k}j=J[d+48>>2];d=oa(48);J[h>>2]=d;J[h+4>>2]=34;J[h+8>>2]=-2147483600;e=K[1411]|K[1412]<<8;H[d+32|0]=e;H[d+33|0]=e>>>8;e=K[1407]|K[1408]<<8|(K[1409]<<16|K[1410]<<24);f=K[1403]|K[1404]<<8|(K[1405]<<16|K[1406]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=e;H[d+29|0]=e>>>8;H[d+30|0]=e>>>16;H[d+31|0]=e>>>24;e=K[1399]|K[1400]<<8|(K[1401]<<16|K[1402]<<24);f=K[1395]|K[1396]<<8|(K[1397]<<16|K[1398]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1391]|K[1392]<<8|(K[1393]<<16|K[1394]<<24);f=K[1387]|K[1388]<<8|(K[1389]<<16|K[1390]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1383]|K[1384]<<8|(K[1385]<<16|K[1386]<<24);f=K[1379]|K[1380]<<8|(K[1381]<<16|K[1382]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+34|0]=0;d=Pb(j,h,1);if(H[h+11|0]<0){na(J[h>>2])}if(d){break k}if(!g){break j}d=0;e=0;b=0;if(g>>>0>=4){j=g&-4;f=0;while(1){k=e<<2;b=J[(k|12)+i>>2]|(J[(k|8)+i>>2]|(J[(k|4)+i>>2]|(J[i+k>>2]|b)));e=e+4|0;f=f+4|0;if((j|0)!=(f|0)){continue}break}}f=g&3;if(f){while(1){b=J[(e<<2)+i>>2]|b;e=e+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(!b){break j}d=4-(S(b)>>>3|0)|0;break i}H[h|0]=1;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],h,h+1|0)}J[h>>2]=h|4;J[h+4>>2]=0;J[h+8>>2]=0;d=J[a+4>>2];if(d){j=10-cb(J[d+48>>2])|0;e=ba-16|0;ba=e;l:{if(j>>>0>10){break l}d=oa(48);J[e>>2]=d;J[e+4>>2]=33;J[e+8>>2]=-2147483600;H[d+32|0]=K[1470];g=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);f=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=g;H[d+29|0]=g>>>8;H[d+30|0]=g>>>16;H[d+31|0]=g>>>24;g=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);f=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=g;H[d+21|0]=g>>>8;H[d+22|0]=g>>>16;H[d+23|0]=g>>>24;g=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);f=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=g;H[d+13|0]=g>>>8;H[d+14|0]=g>>>16;H[d+15|0]=g>>>24;g=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);f=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+33|0]=0;vb(h,e,j);if(H[e+11|0]>=0){break l}na(J[e>>2])}ba=e+16|0}b=ee(i,P(k,J[b+4>>2]-J[b>>2]>>2),k,h,c);Da(h,J[h+4>>2]);e=0;if(b){break h}break d}d=1}H[h|0]=0;b=J[c+20>>2];m:{if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break m}e=h+1|0;sa(c,J[c+4>>2],h,e);f=J[c+16>>2];b=J[c+20>>2];H[h|0]=d;if(!!f&(b|0)>=0|(b|0)>0){break m}sa(c,J[c+4>>2],h,e)}n:{if((d|0)!=J[3712]){if(!g){break h}e=J[c+20>>2];f=e;b=J[c+16>>2];if(!!b&(e|0)>=0|(e|0)>0){break h}e=0;break n}b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break h}sa(c,J[c+4>>2],i,(g<<2)+i|0);break h}while(1){if(!b&(f|0)<=0|(f|0)<0){b=(e<<2)+i|0;sa(c,J[c+4>>2],b,b+d|0)}e=e+1|0;if((g|0)==(e|0)){break h}b=J[c+16>>2];f=J[c+20>>2];continue}}e=1;a=J[a+36>>2];if(!a){break d}da[J[J[a>>2]+40>>2]](a,c)|0}if(!i){break b}na(i)}ba=h+32|0;return e|0}qa();B()}function Ea(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=ba-96|0;ba=k;u=i&65535;o=(e^i)&-2147483648;q=e&65535;z=q;Q=i>>>16&32767;R=e>>>16&32767;a:{b:{if(Q-32767>>>0>4294934529&R-32767>>>0>=4294934530){break b}s=e&2147483647;r=s;j=d;if(!(!d&(r|0)==2147418112?!(b|c):r>>>0<2147418112)){m=d;o=e|32768;break a}s=i&2147483647;p=s;e=h;if(!(!e&(p|0)==2147418112?!(f|g):p>>>0<2147418112)){m=h;o=i|32768;b=f;c=g;break a}if(!(b|j|(r^2147418112|c))){if(!(e|f|(g|p))){o=2147450880;b=0;c=0;break a}o=o|2147418112;b=0;c=0;break a}if(!(e|f|(p^2147418112|g))){e=b|j;d=c|r;b=0;c=0;if(!(d|e)){o=2147450880;break a}o=o|2147418112;break a}if(!(b|j|(c|r))){b=0;c=0;break a}if(!(e|f|(g|p))){b=0;c=0;break a}if((r|0)==65535|r>>>0<65535){j=!(d|q);i=j?b:d;s=j<<6;e=S(i)+32|0;i=S(j?c:q);i=s+((i|0)==32?e:i)|0;Pa(k+80|0,b,c,d,q,i-15|0);t=16-i|0;d=J[k+88>>2];z=J[k+92>>2];c=J[k+84>>2];b=J[k+80>>2]}if(p>>>0>65535){break b}i=!(h|u);e=i?f:h;q=i<<6;j=S(e)+32|0;e=S(i?g:u);e=q+((e|0)==32?j:e)|0;Pa(k- -64|0,f,g,h,u,e-15|0);t=(t-e|0)+16|0;h=J[k+72>>2];u=J[k+76>>2];f=J[k+64>>2];g=J[k+68>>2]}e=f;f=g<<15|f>>>17;i=e<<15;e=0;v=i&-32768;K=c;s=Hl(v,e,c,0);e=ca;y=e;L=f;r=b;b=Hl(f,0,b,0);i=b+s|0;f=ca+e|0;c=b>>>0>i>>>0?f+1|0:f;j=0;b=Hl(r,l,v,l);p=j+b|0;f=i;e=f+ca|0;e=b>>>0>p>>>0?e+1|0:e;q=e;M=(f|0)==(e|0)&j>>>0>p>>>0|e>>>0<f>>>0;N=d;w=Hl(v,l,d,0);O=ca;b=Hl(K,l,L,l);x=b+w|0;j=ca+O|0;j=b>>>0>x>>>0?j+1|0:j;b=u<<15|h>>>17;A=h<<15|g>>>17;d=Hl(A,0,r,l);B=d+x|0;f=ca+j|0;f=d>>>0>B>>>0?f+1|0:f;C=f;d=(c|0)==(y|0)&i>>>0<s>>>0|c>>>0<y>>>0;D=c+B|0;f=d+f|0;f=c>>>0>D>>>0?f+1|0:f;u=f;g=D;c=f;E=z|65536;z=Hl(v,l,E,n);P=ca;d=Hl(N,m,L,l);F=d+z|0;e=ca+P|0;e=d>>>0>F>>>0?e+1|0:e;i=e;G=b|-2147483648;b=Hl(G,0,r,l);H=b+F|0;f=ca+e|0;f=b>>>0>H>>>0?f+1|0:f;b=Hl(A,m,K,l);y=b+H|0;I=f;f=f+ca|0;s=b>>>0>y>>>0?f+1|0:f;b=0;r=b+g|0;e=c+y|0;v=b>>>0>r>>>0?e+1|0:e;f=v;b=r+M|0;c=b>>>0<r>>>0?f+1|0:f;t=((R+Q|0)+t|0)-16383|0;d=Hl(G,m,K,l);h=ca;e=Hl(E,m,L,l);g=e+d|0;f=ca+h|0;f=e>>>0>g>>>0?f+1|0:f;n=(h|0)==(f|0)&d>>>0>g>>>0|f>>>0<h>>>0;h=f;e=Hl(A,m,N,m);d=e+g|0;f=ca+f|0;f=d>>>0<e>>>0?f+1|0:f;e=f;g=(f|0)==(h|0)&d>>>0<g>>>0|f>>>0<h>>>0;f=0;h=g;g=g+n|0;f=h>>>0>g>>>0?1:f;h=g;g=Hl(G,m,E,m);h=h+g|0;f=ca+f|0;M=h;g=g>>>0>h>>>0?f+1|0:f;h=d;l=e;e=(j|0)==(O|0)&w>>>0>x>>>0|j>>>0<O>>>0;f=0;j=(j|0)==(C|0)&x>>>0>B>>>0|j>>>0>C>>>0;n=j;j=e+j|0;e=(n>>>0>j>>>0?1:f)+l|0;f=g;d=d+j|0;e=d>>>0<j>>>0?e+1|0:e;n=e;w=d;d=(e|0)==(l|0)&d>>>0<h>>>0|e>>>0<l>>>0;e=d;d=d+M|0;f=e>>>0>d>>>0?f+1|0:f;j=d;g=f;e=Hl(A,m,E,m);l=ca;d=Hl(G,m,N,m);h=d+e|0;f=ca+l|0;f=d>>>0>h>>>0?f+1|0:f;d=f;f=(l|0)==(f|0)&e>>>0>h>>>0|f>>>0<l>>>0;x=d+j|0;e=f+g|0;e=d>>>0>x>>>0?e+1|0:e;l=x;g=e;e=0;d=e+w|0;f=h+n|0;f=d>>>0<e>>>0?f+1|0:f;e=f;h=(n|0)==(f|0)&d>>>0<w>>>0|f>>>0<n>>>0;f=g;g=h+l|0;f=g>>>0<h>>>0?f+1|0:f;w=g;g=f;h=d;j=e;e=(s|0)==(I|0)&y>>>0<H>>>0|s>>>0<I>>>0;d=(i|0)==(P|0)&z>>>0>F>>>0|i>>>0<P>>>0;i=(i|0)==(I|0)&F>>>0>H>>>0|i>>>0>I>>>0;d=d+i|0;d=d+e|0;n=s;i=n+h|0;e=d+j|0;f=g;d=i;e=d>>>0<n>>>0?e+1|0:e;h=(e|0)==(j|0)&h>>>0>d>>>0|e>>>0<j>>>0;g=h+w|0;f=h>>>0>g>>>0?f+1|0:f;j=g;g=f;h=d;f=0;i=e;n=(u|0)==(v|0)&r>>>0<D>>>0|u>>>0>v>>>0;l=n;n=n+((u|0)==(C|0)&B>>>0>D>>>0|u>>>0<C>>>0)|0;e=e+(l>>>0>n>>>0?1:f)|0;f=g;d=d+n|0;e=d>>>0<n>>>0?e+1|0:e;h=(e|0)==(i|0)&d>>>0<h>>>0|e>>>0<i>>>0;g=h;h=h+j|0;f=g>>>0>h>>>0?f+1|0:f;i=f;c:{if(f&65536){t=t+1|0;break c}j=q>>>31|0;g=0;f=i<<1|h>>>31;h=h<<1|e>>>31;i=f;f=e<<1|d>>>31;d=d<<1|c>>>31;e=f;f=q<<1|p>>>31;p=p<<1;q=f;f=c<<1|b>>>31;b=b<<1|j;c=f|g}if((t|0)>=32767){o=o|2147418112;b=0;c=0;break a}d:{if((t|0)<=0){g=1-t|0;if(g>>>0<=127){f=t+127|0;Pa(k+48|0,p,q,b,c,f);Pa(k+32|0,d,e,h,i,f);Gb(k+16|0,p,q,b,c,g);Gb(k,d,e,h,i,g);p=J[k+32>>2]|J[k+16>>2]|(J[k+48>>2]|J[k+56>>2]|(J[k+52>>2]|J[k+60>>2]))!=0;q=J[k+36>>2]|J[k+20>>2];b=J[k+40>>2]|J[k+24>>2];c=J[k+44>>2]|J[k+28>>2];d=J[k>>2];e=J[k+4>>2];g=J[k+8>>2];f=J[k+12>>2];break d}b=0;c=0;break a}g=h;f=i&65535|t<<16}m=g|m;o=f|o;if(!(!b&(c|0)==-2147483648?!(p|q):(c|0)>0|(c|0)>=0)){b=d+1|0;c=b?e:e+1|0;d=(e|0)==(c|0)&b>>>0<d>>>0|c>>>0<e>>>0;e=o;m=d+m|0;o=m>>>0<d>>>0?e+1|0:e;break a}if(b|p|(c^-2147483648|q)){b=d;c=e;break a}j=o;f=e;b=d&1;c=b;b=b+d|0;c=c>>>0>b>>>0?f+1|0:f;d=(f|0)==(c|0)&b>>>0<d>>>0|c>>>0<f>>>0;m=d+m|0;o=d>>>0>m>>>0?j+1|0:j}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=m;J[a+12>>2]=o;ba=k+96|0}function ej(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=ba-16|0;ba=o;a:{if(!(da[J[J[a>>2]+32>>2]](a)|0)){break a}e=J[a+44>>2];c=J[a+12>>2];b=J[a+8>>2];H[o+15|0]=c-b>>>2;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],o+15|0,o+16|0);c=J[a+12>>2];b=J[a+8>>2]}if((b|0)!=(c|0)){while(1){e=J[b>>2];if(!(da[J[J[e>>2]+8>>2]](e,a,J[a+4>>2])|0)){break a}b=b+4|0;if((c|0)!=(b|0)){continue}break}}f=ba-48|0;ba=f;e=a;q=a+32|0;g=J[a+12>>2];a=J[a+8>>2];d=g-a|0;c=d>>2;h=J[e+32>>2];b=J[e+36>>2]-h>>2;b:{if(c>>>0>b>>>0){Fa(q,c-b|0);g=J[e+12>>2];a=J[e+8>>2];d=g-a|0;c=d>>2;break b}if(b>>>0<=c>>>0){break b}J[e+36>>2]=h+(c<<2)}J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;b=a;c:{d:{if((a|0)!=(g|0)){if((d|0)<0){break d}a=(c-1>>>5|0)+1|0;b=oa(a<<2);J[f+40>>2]=a;J[f+36>>2]=0;J[f+32>>2]=b;mc(f+32|0,c);b=J[e+12>>2];a=J[e+8>>2]}e:{while(1){f:{c=b-a>>2;if(k>>>0<c>>>0){g=(a|0)!=(b|0);m=0;b=a;d=0;if(!g){break f}while(1){i=J[f+32>>2];n=d>>>5<<2;h=J[i+n>>2];p=1<<d;g:{if(h&p){break g}b=0;j=1;l=d<<2;g=J[l+a>>2];c=J[g+4>>2];if((c|0)!=J[g+8>>2]){while(1){a=0;c=J[(b<<2)+c>>2];h:{if((da[J[J[g>>2]+24>>2]](g,c)|0)<=0){break h}while(1){i:{g=J[l+J[e+8>>2]>>2];g=da[J[J[g>>2]+28>>2]](g,c,a)|0;if((g|0)==(d|0)){break i}g=J[J[e+20>>2]+(g<<2)>>2];if(J[J[f+32>>2]+(g>>>3&536870908)>>2]>>>g&1){break i}j=0;break h}g=J[l+J[e+8>>2]>>2];a=a+1|0;if((da[J[J[g>>2]+24>>2]](g,c)|0)>(a|0)){continue}break}}a=J[e+8>>2];g=J[l+a>>2];c=J[g+4>>2];b=b+1|0;if(b>>>0<J[g+8>>2]-c>>2>>>0){continue}break}if(!j){break g}i=J[f+32>>2];h=J[n+i>>2]}J[J[q>>2]+(k<<2)>>2]=d;J[i+n>>2]=h|p;m=1;k=k+1|0}b=J[e+12>>2];c=b-a>>2;d=d+1|0;if(c>>>0>d>>>0){continue}break}break f}m=0;J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;d=J[e+4>>2];c=J[d+12>>2];d=J[d+8>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;j:{k:{l:{if((c|0)!=(d|0)){a=c-d|0;if((a|0)<0){break l}a=a>>2;b=(a-1>>>5|0)+1|0;c=oa(b<<2);J[f+8>>2]=b;J[f+4>>2]=0;J[f>>2]=c;mc(f,a);b=J[e+12>>2];a=J[e+8>>2]}m:{if((a|0)==(b|0)){b=1;break m}while(1){g=J[J[q>>2]+(m<<2)>>2]<<2;b=J[g+a>>2];b=J[b+8>>2]-J[b+4>>2]|0;n:{if((b|0)<8){break n}c=b>>2;b=J[f+16>>2];a=J[f+20>>2]-b>>2;o:{if(c>>>0>a>>>0){Fa(f+16|0,c-a|0);break o}if(a>>>0<=c>>>0){break o}J[f+20>>2]=b+(c<<2)}i=(c|0)<=1?1:c;h=0;p:{while(1){if((c|0)<=(h|0)){break p}b=0;d=J[f>>2];j=0;while(1){p=1<<b;n=b>>>5<<2;q:{if(p&J[n+d>>2]){break q}a=0;d=J[g+J[e+8>>2]>>2];k=J[J[d+4>>2]+(b<<2)>>2];if((da[J[J[d>>2]+24>>2]](d,k)|0)>0){while(1){d=J[g+J[e+8>>2]>>2];l=da[J[J[d>>2]+28>>2]](d,k,a)|0;d=J[f>>2];if(!(J[d+(l>>>3&536870908)>>2]>>>l&1)){break q}d=J[g+J[e+8>>2]>>2];a=a+1|0;if((da[J[J[d>>2]+24>>2]](d,k)|0)>(a|0)){continue}break}}J[J[f+16>>2]+(h<<2)>>2]=b;d=J[f>>2];a=n+d|0;J[a>>2]=p|J[a>>2];j=1;h=h+1|0}b=b+1|0;if((i|0)!=(b|0)){continue}break}if((c|0)<=(h|0)|j){continue}break}b=0;break m}a=J[e+8>>2];b=J[g+a>>2];d=J[b+4>>2];J[b+8>>2]=d;J[b+20>>2]=J[b+16>>2];g=J[f+16>>2];l=J[f+20>>2];if((g|0)==(l|0)){break n}k=b+16|0;c=d;while(1){a=J[g>>2];r:{if(J[b+12>>2]!=(c|0)){J[c>>2]=a;J[b+8>>2]=c+4;break r}c=c-d|0;i=c>>2;h=i+1|0;if(h>>>0>=1073741824){break k}j=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<j>>>0?j:h;if(h){if(h>>>0>=1073741824){break j}j=oa(h<<2)}else{j=0}i=j+(i<<2)|0;J[i>>2]=a;c=ta(j,d,c);J[b+12>>2]=c+(h<<2);J[b+8>>2]=i+4;J[b+4>>2]=c;if(!d){break r}na(d)}c=J[b+16>>2];d=J[b+20>>2]-c>>2;s:{if((d|0)>(a|0)){break s}J[f+44>>2]=-1;h=a+1|0;if(h>>>0>d>>>0){jc(k,h-d|0,f+44|0);c=J[k>>2];break s}if(d>>>0<=h>>>0){break s}J[b+20>>2]=(h<<2)+c}a=(a<<2)+c|0;c=J[b+8>>2];d=J[b+4>>2];J[a>>2]=(c-d>>2)-1;g=g+4|0;if((l|0)!=(g|0)){continue}break}a=J[e+8>>2]}b=1;m=m+1|0;if(m>>>0<J[e+12>>2]-a>>2>>>0){continue}break}}a=J[f>>2];if(a){na(a)}a=J[f+16>>2];if(!a){break e}J[f+20>>2]=a;na(a);break e}qa();B()}qa();B()}xa();B()}if(m&1|c>>>0<=k>>>0){continue}break}b=0}a=J[f+32>>2];if(a){na(a)}ba=f+48|0;break c}qa();B()}if(!b){break a}b=J[e+32>>2];a=J[e+36>>2];t:{if((b|0)==(a|0)){break t}while(1){if(!(da[J[J[e>>2]+40>>2]](e,J[b>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}b=J[e+32>>2];a=J[e+36>>2];if((b|0)==(a|0)){break t}while(1){c=J[J[e+8>>2]+(J[b>>2]<<2)>>2];if(!(da[J[J[c>>2]+12>>2]](c,J[e+44>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}}r=da[J[J[e>>2]+44>>2]](e)|0}ba=o+16|0;return r|0}function Id(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);f=ba-96|0;ba=f;J[f+72>>2]=0;J[f+76>>2]=0;J[f+64>>2]=0;J[f+68>>2]=0;J[f+80>>2]=1065353216;c=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;k=oa(e);J[f+16>>2]=k;c=e+k|0;J[f+24>>2]=c;pa(k,0,e);J[f+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+e|0;e=c+d|0;J[f+56>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[f+48>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+52>>2]=c;c=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+40>>2]=c;d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+32>>2]=e;J[f+36>>2]=d;J[f+8>>2]=c;J[f>>2]=e;J[f+4>>2]=d;J[f+12>>2]=p;c=0;e=J[f+8>>2]^(J[f+4>>2]^(J[f>>2]^318)+239)+239;b:{c:{m=f- -64|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=e;if(e>>>0>=h>>>0){c=(e>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}l=J[f+8>>2];q=J[f+4>>2];j=J[f>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(e|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[i+8>>2];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=J[i+12>>2];if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=(l|0)==J[i+16>>2]}if(!d){continue}break}c=0;break b}c=e&h-1;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;l=J[f+8>>2];r=J[f+4>>2];q=J[f>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(e|0)&(d&j)!=(c|0)){break c}d=J[i+8>>2];f:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=J[i+12>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==J[i+16>>2]}if(!d){continue}break}c=0;break b}i=oa(24);J[i+16>>2]=J[f+8>>2];d=J[f+4>>2];J[i+8>>2]=J[f>>2];J[i+12>>2]=d;d=J[f+12>>2];J[i>>2]=0;J[i+4>>2]=e;J[i+20>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&e;break g}if(e>>>0<h>>>0){c=e;break g}c=(e>>>0)%(h>>>0)|0}e=J[m>>2]+(c<<2)|0;c=J[e>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[e>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];e=h-1|0;p:{if(!(e&h)){c=c&e;break p}if(c>>>0<h>>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[f+92|0]=c;J[f+88>>2]=i;q:{if(!K[f+92|0]){J[(n<<2)+k>>2]=J[J[f+88>>2]+20>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,f+48|0,c);k=J[f+16>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;g=n?g:g+1|0;j=J[a+80>>2];if(!g&n>>>0<j>>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;g=b>>>0<=1?1:b;e=g&3;c=0;b=0;if(g-1>>>0>=3){n=g&-4;l=0;while(1){d=b<<2;g=d+j|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|4)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|8)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|12)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!e){break r}while(1){g=j+(b<<2)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;g=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(g,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[g>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];g=e|4;J[g+d>>2]=J[g+k>>2];g=e|8;J[g+d>>2]=J[g+k>>2];g=e|12;J[g+d>>2]=J[g+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[f+72>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[f+64>>2];J[f+64>>2]=0;if(a){na(a)}ba=f+96|0;return p}qa();B()}function jj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ba-16|0;ba=j;c=J[b+56>>2];f=J[c+100>>2];e=J[c+96>>2];d=(f-e|0)/12|0;Aa(d,J[b+44>>2]);Aa(J[J[b+56>>2]+80>>2],J[b+44>>2]);k=J[b+48>>2];c=oa(32);J[j>>2]=c;J[j+4>>2]=21;J[j+8>>2]=-2147483616;g=K[1149]|K[1150]<<8|(K[1151]<<16|K[1152]<<24);i=K[1145]|K[1146]<<8|(K[1147]<<16|K[1148]<<24);H[c+13|0]=i;H[c+14|0]=i>>>8;H[c+15|0]=i>>>16;H[c+16|0]=i>>>24;H[c+17|0]=g;H[c+18|0]=g>>>8;H[c+19|0]=g>>>16;H[c+20|0]=g>>>24;g=K[1144]|K[1145]<<8|(K[1146]<<16|K[1147]<<24);i=K[1140]|K[1141]<<8|(K[1142]<<16|K[1143]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=g;H[c+13|0]=g>>>8;H[c+14|0]=g>>>16;H[c+15|0]=g>>>24;g=K[1136]|K[1137]<<8|(K[1138]<<16|K[1139]<<24);i=K[1132]|K[1133]<<8|(K[1134]<<16|K[1135]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=g;H[c+5|0]=g>>>8;H[c+6|0]=g>>>16;H[c+7|0]=g>>>24;H[c+21|0]=0;g=Pb(k,j,0);if(H[j+11|0]<0){na(J[j>>2])}c=J[b+44>>2];a:{if(g){H[j|0]=0;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],j,j+1|0)}e=0;c=0;g=ba-16|0;ba=g;J[g>>2]=0;J[g+4>>2]=0;d=J[b+56>>2];f=J[d+100>>2];d=J[d+96>>2];if((f|0)!=(d|0)){c=(f-d|0)/12|0;p=c>>>0<=1?1:c;c=0;d=J[g>>2];b:{c:{while(1){d:{i=J[J[b+56>>2]+96>>2]+P(n,12)|0;l=J[i>>2];f=l-m|0;k=f>>31;k=(f^k)-k<<1|f>>>31;e:{if((e|0)!=(h|0)){J[e>>2]=k;e=e+4|0;J[g+4>>2]=e;break e}f=e-c|0;m=f>>2;h=m+1|0;if(h>>>0>=1073741824){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}d=oa(h<<2)}else{d=0}e=d+(m<<2)|0;J[e>>2]=k;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}o=J[i+4>>2];f=o-l|0;k=f>>31;k=(f^k)-k<<1|f>>>31;f:{if((e|0)!=(h|0)){J[e>>2]=k;e=e+4|0;J[g+4>>2]=e;break f}f=e-c|0;l=f>>2;h=l+1|0;if(h>>>0>1073741823){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>1073741823){break c}d=oa(h<<2)}else{d=0}e=d+(l<<2)|0;J[e>>2]=k;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}m=J[i+8>>2];f=m-o|0;i=f>>31;i=(f^i)-i<<1|f>>>31;g:{if((e|0)!=(h|0)){J[e>>2]=i;e=e+4|0;J[g+4>>2]=e;break g}f=e-c|0;k=f>>2;h=k+1|0;if(h>>>0>1073741823){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>1073741823){break c}d=oa(h<<2)}else{d=0}e=d+(k<<2)|0;J[e>>2]=i;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}n=n+1|0;if((p|0)!=(n|0)){continue}break b}break}J[g+8>>2]=e;J[g>>2]=d;qa();B()}J[g>>2]=d;xa();B()}J[g>>2]=d}ee(c,e-c>>2,1,0,J[b+44>>2]);if(c){na(c)}ba=g+16|0;break a}H[j|0]=1;g=J[c+20>>2];if(!J[c+16>>2]&(g|0)<=0|(g|0)<0){sa(c,J[c+4>>2],j,j+1|0)}c=J[J[b+56>>2]+80>>2];if(c>>>0<=255){if((f|0)==(e|0)){break a}h=d>>>0<=1?1:d;f=j+1|0;c=0;while(1){d=J[b+44>>2];e=J[J[b+56>>2]+96>>2]+P(c,12)|0;H[j|0]=J[e>>2];g=J[d+20>>2];h:{if(!!J[d+16>>2]&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];H[j|0]=J[e+4>>2];if(!!i&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];H[j|0]=J[e+8>>2];if(!!i&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if(c>>>0<=65535){if((f|0)==(e|0)){break a}h=d>>>0<=1?1:d;f=j+2|0;c=0;while(1){d=J[b+44>>2];e=J[J[b+56>>2]+96>>2]+P(c,12)|0;I[j>>1]=J[e>>2];g=J[d+20>>2];i:{if(!!J[d+16>>2]&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];I[j>>1]=J[e+4>>2];if(!!i&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];I[j>>1]=J[e+8>>2];if(!!i&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if(c>>>0>=2097152){if((f|0)==(e|0)){break a}c=J[b+44>>2];f=!!J[c+16>>2];c=J[c+20>>2];if(f&(c|0)>=0|(c|0)>0){break a}f=d>>>0<=1?1:d;c=0;while(1){d=J[b+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){e=d;g=J[d+4>>2];d=J[J[b+56>>2]+96>>2]+P(c,12)|0;sa(e,g,d,d+12|0)}c=c+1|0;if((f|0)!=(c|0)){continue}break}break a}if((f|0)==(e|0)){break a}f=d>>>0<=1?1:d;c=0;while(1){d=J[J[b+56>>2]+96>>2]+P(c,12)|0;Aa(J[d>>2],J[b+44>>2]);Aa(J[d+4>>2],J[b+44>>2]);Aa(J[d+8>>2],J[b+44>>2]);c=c+1|0;if((f|0)!=(c|0)){continue}break}}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=j+16|0}function vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=0,t=0,u=0,v=Q(0);i=ba-80|0;ba=i;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+64>>2]=1065353216;c=J[a+80>>2];J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[i+24>>2]=k;c=f+k|0;J[i+32>>2]=c;pa(k,0,f);J[i+28>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);c=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[i+40>>2]=f;J[i+44>>2]=c;J[i+16>>2]=p;J[i+8>>2]=f;J[i+12>>2]=c;c=0;m=i+8|0;f=L[m+6>>1]^(L[m+4>>1]^(L[m+2>>1]^(L[m>>1]^318)+239)+239)+239;b:{c:{l=i+48|0;g=J[l+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}h=J[J[l>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<2){break d}q=L[m>>1];r=L[m+2>>1];t=L[m+4>>1];j=L[m+6>>1];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[h+8>>1];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=L[h+10>>1];if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=L[h+12>>1];if((d|0)!=(t|0)){d=(d|0)==(t|0);break e}d=(j|0)==L[h+14>>1]}if(!d){continue}break}c=0;break b}c=f&g-1;h=J[J[l>>2]+(c<<2)>>2];if(!h){break c}}t=g-1|0;u=L[m>>1];q=L[m+2>>1];r=L[m+4>>1];j=L[m+6>>1];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)&(d&t)!=(c|0)){break c}d=L[h+8>>1];f:{if((d|0)!=(u|0)){d=(d|0)==(u|0);break f}d=L[h+10>>1];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=L[h+12>>1];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(j|0)==L[h+14>>1]}if(!d){continue}break}c=0;break b}h=oa(20);d=J[m+4>>2];J[h+8>>2]=J[m>>2];J[h+12>>2]=d;d=J[m+8>>2];J[h+4>>2]=f;J[h+16>>2]=d;J[h>>2]=0;o=Q(J[l+12>>2]+1>>>0);v=N[l+16>>2];g:{if(o>Q(v*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/v)));h:{if(o<Q(4294967296)&o>=Q(0)){j=~~o>>>0;break h}j=0}d=d>>>0>j>>>0?d:j;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[l+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}j=g>>>0<3;o=Q(W(Q(Q(M[l+12>>2])/N[l+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(j){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(l,c)}g=J[l+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[l>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=l+8|0;J[h>>2]=J[c>>2];J[l+8>>2]=h;J[f>>2]=c;c=J[h>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[l>>2]+(c<<2)|0;break o}J[h>>2]=J[c>>2]}J[c>>2]=h}J[l+12>>2]=J[l+12>>2]+1;c=1}H[i+76|0]=c;J[i+72>>2]=h;q:{if(!K[i+76|0]){J[(n<<2)+k>>2]=J[J[i+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,i+40|0,c);k=J[i+24>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0<j>>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[i+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[i+48>>2];J[i+48>>2]=0;if(a){na(a)}ba=i+80|0;return p}qa();B()}function wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);e=ba-80|0;ba=e;J[e+56>>2]=0;J[e+60>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e+64>>2]=1065353216;c=J[a+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;k=oa(g);J[e+16>>2]=k;c=g+k|0;J[e+24>>2]=c;pa(k,0,g);J[e+20>>2]=c;while(1){d=J[J[b>>2]>>2];g=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+g|0;c=c+d|0;I[e+44>>1]=K[c+4|0]|K[c+5|0]<<8;J[e+40>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);g=K[c+4|0]|K[c+5|0]<<8;I[e+36>>1]=g;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+32>>2]=c;I[e+4>>1]=g;J[e>>2]=c;J[e+8>>2]=p;c=0;g=L[e+4>>1]^(L[e+2>>1]^(L[e>>1]^318)+239)+239;b:{c:{m=e+48|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=g;if(c>>>0>=h>>>0){c=(g>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}q=L[e>>1];j=L[e+2>>1];l=L[e+4>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[i+8>>1];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=L[i+10>>1];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==L[i+12>>1]}if(!d){continue}break}c=0;break b}c=g&h+262143;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;r=L[e>>1];q=L[e+2>>1];l=L[e+4>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)&(d&j)!=(c|0)){break c}d=L[i+8>>1];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=L[i+10>>1];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=(l|0)==L[i+12>>1]}if(!d){continue}break}c=0;break b}i=oa(20);I[i+12>>1]=L[e+4>>1];J[i+8>>2]=J[e>>2];d=J[e+8>>2];J[i>>2]=0;J[i+4>>2]=g;J[i+16>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&g;break g}if(g>>>0<h>>>0){c=g;break g}c=(g>>>0)%(h>>>0)|0}g=J[m>>2]+(c<<2)|0;c=J[g>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[g>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];g=h-1|0;p:{if(!(g&h)){c=c&g;break p}if(c>>>0<h>>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[e+76|0]=c;J[e+72>>2]=i;q:{if(!K[e+76|0]){J[(n<<2)+k>>2]=J[J[e+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,e+40|0,c);k=J[e+16>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;f=n?f:f+1|0;j=J[a+80>>2];if(!f&n>>>0<j>>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;f=b>>>0<=1?1:b;g=f&3;c=0;b=0;if(f-1>>>0>=3){n=f&-4;l=0;while(1){d=b<<2;f=d+j|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|4)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|8)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|12)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!g){break r}while(1){f=j+(b<<2)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;f=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(f,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[f>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];f=g|4;J[f+d>>2]=J[f+k>>2];f=g|8;J[f+d>>2]=J[f+k>>2];f=g|12;J[f+d>>2]=J[f+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[e+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[e+48>>2];J[e+48>>2]=0;if(a){na(a)}ba=e+80|0;return p}qa();B()}function If(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);i=ba+-64|0;ba=i;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;J[i+48>>2]=1065353216;c=J[a+80>>2];J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[i+16>>2]=k;c=f+k|0;J[i+24>>2]=c;pa(k,0,f);J[i+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],o,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[i+28>>2]=c;J[i+12>>2]=q;J[i+8>>2]=c;c=0;n=i+8|0;f=K[n+3|0]^(K[n+2|0]^(K[n+1|0]^(K[n|0]^318)+239)+239)+239;b:{c:{m=i+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}h=J[J[m>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<2){break d}r=K[n|0];s=K[n+1|0];j=K[n+2|0];l=K[n+3|0];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[h+8|0];e:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=K[h+9|0];if((d|0)!=(s|0)){d=(d|0)==(s|0);break e}d=K[h+10|0];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[h+11|0]}if(!d){continue}break}c=0;break b}c=f&g-1;h=J[J[m>>2]+(c<<2)>>2];if(!h){break c}}j=g-1|0;t=K[n|0];r=K[n+1|0];s=K[n+2|0];l=K[n+3|0];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=K[h+8|0];f:{if((d|0)!=(t|0)){d=(d|0)==(t|0);break f}d=K[h+9|0];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=K[h+10|0];if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=(l|0)==K[h+11|0]}if(!d){continue}break}c=0;break b}h=oa(16);J[h+8>>2]=J[n>>2];d=J[n+4>>2];J[h+4>>2]=f;J[h+12>>2]=d;J[h>>2]=0;p=Q(J[m+12>>2]+1>>>0);u=N[m+16>>2];g:{if(p>Q(u*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;p=Q(W(Q(p/u)));h:{if(p<Q(4294967296)&p>=Q(0)){l=~~p>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;p=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(p<Q(4294967296)&p>=Q(0)){d=~~p>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[h>>2]=J[c>>2];J[m+8>>2]=h;J[f>>2]=c;c=J[h>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[h>>2]=J[c>>2]}J[c>>2]=h}J[m+12>>2]=J[m+12>>2]+1;c=1}H[i+60|0]=c;J[i+56>>2]=h;q:{if(!K[i+60|0]){J[(o<<2)+k>>2]=J[J[i+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,i+28|0,c);k=J[i+16>>2];J[k+(o<<2)>>2]=q;q=q+1|0}o=o+1|0;e=o?e:e+1|0;j=J[a+80>>2];if(!e&o>>>0<j>>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){o=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((o|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){o=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((o|0)!=(l|0)){continue}break}}o=j&3;if(!o){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((o|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[i+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[i+32>>2];J[i+32>>2]=0;if(a){na(a)}ba=i- -64|0;return q}qa();B()}function Tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=ba-96|0;ba=e;f=J[a+16>>2];H[e+92|0]=1;J[e+88>>2]=b;J[e+84>>2]=b;J[e+80>>2]=f;j=J[a+20>>2];d=J[j>>2];a:{b:{f=J[J[f+28>>2]+(b<<2)>>2];if(f>>>0<J[j+4>>2]-d>>2>>>0){d=J[J[a+8>>2]+(J[d+(f<<2)>>2]<<2)>>2];f=J[a+4>>2];if(!K[f+84|0]){d=J[J[f+68>>2]+(d<<2)>>2]}J[e+72>>2]=0;J[e+76>>2]=0;j=e- -64|0;J[j>>2]=0;J[j+4>>2]=0;J[e+56>>2]=0;J[e+60>>2]=0;hb(f,d,H[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!J[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=J[a+20>>2];b=J[n>>2];d=J[J[J[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=J[n+4>>2]-b>>2>>>0){break b}d=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;hb(b,d,H[b+24|0],e+32|0);d=J[a+20>>2];b=J[d>>2];f=J[J[J[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=J[d+4>>2]-b>>2>>>0){break a}d=J[J[a+8>>2]+(J[b+(f<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;hb(b,d,H[b+24|0],e+8|0);g=J[e+8>>2];b=J[e+56>>2];d=g-b|0;p=J[e+60>>2];t=J[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=J[e+40>>2];f=J[e+64>>2];n=h-f|0;u=J[e+68>>2];x=J[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Hl(d,t,n,x);v=o-g|0;w=i-(ca+(g>>>0>o>>>0)|0)|0;i=v;h=J[e+16>>2];g=h-f|0;u=J[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=J[e+32>>2];h=k-b|0;v=J[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Hl(g,u,h,v);o=i+b|0;i=ca+w|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=J[e+48>>2];f=J[e+72>>2];d=k-f|0;t=J[e+76>>2];w=J[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Hl(l,p,d,w);k=b+l|0;b=ca+q|0;b=k>>>0<l>>>0?b+1|0:b;l=J[e+24>>2];p=l-f|0;f=J[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Hl(p,f,h,v);l=k-q|0;q=b-(ca+(k>>>0<q>>>0)|0)|0;b=Hl(g,u,d,w);d=r-b|0;b=s-(ca+(b>>>0>r>>>0)|0)|0;s=Hl(p,f,n,x);r=s+d|0;b=ca+b|0;s=r>>>0<s>>>0?b+1|0:b;b=J[e+88>>2];f=J[e+80>>2];d:{if(K[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}J[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[e+88>>2]=b;if((b|0)!=-1){break e}}b=J[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}H[e+92|0]=0;J[e+88>>2]=d;break d}if((b|0)!=J[e+84>>2]){break d}J[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}J[e+88>>2]=d}b=J[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!J[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0<f>>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0<a>>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Il(o,n,a,b);l=Il(l,q,a,b);r=Il(r,s,a,b)}J[c+8>>2]=o;J[c+4>>2]=l;J[c>>2]=r;ba=e+96|0;return}ra();B()}ra();B()}ra();B()}function Kf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);e=ba+-64|0;ba=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;c=J[a+80>>2];J[e+16>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;k=oa(g);J[e+8>>2]=k;c=g+k|0;J[e+16>>2]=c;pa(k,0,g);J[e+12>>2]=c;while(1){d=J[J[b>>2]>>2];g=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+g|0;c=c+d|0;H[e+30|0]=K[c+2|0];I[e+28>>1]=K[c|0]|K[c+1|0]<<8;g=K[c+2|0];H[e+26|0]=g;c=K[c|0]|K[c+1|0]<<8;I[e+24>>1]=c;H[e+2|0]=g;I[e>>1]=c;J[e+4>>2]=p;c=0;g=K[e+2|0]^(K[e+1|0]^(K[e|0]^318)+239)+239;b:{c:{m=e+32|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=g;if(c>>>0>=h>>>0){c=(g>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}q=K[e|0];j=K[e+1|0];l=K[e+2|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[i+8|0];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=K[i+9|0];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[i+10|0]}if(!d){continue}break}c=0;break b}c=g&h-1;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;r=K[e|0];q=K[e+1|0];l=K[e+2|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)&(d&j)!=(c|0)){break c}d=K[i+8|0];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=K[i+9|0];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=(l|0)==K[i+10|0]}if(!d){continue}break}c=0;break b}i=oa(16);H[i+10|0]=K[e+2|0];I[i+8>>1]=L[e>>1];d=J[e+4>>2];J[i>>2]=0;J[i+4>>2]=g;J[i+12>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&g;break g}if(g>>>0<h>>>0){c=g;break g}c=(g>>>0)%(h>>>0)|0}g=J[m>>2]+(c<<2)|0;c=J[g>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[g>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];g=h-1|0;p:{if(!(g&h)){c=c&g;break p}if(c>>>0<h>>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[e+60|0]=c;J[e+56>>2]=i;q:{if(!K[e+60|0]){J[(n<<2)+k>>2]=J[J[e+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,e+28|0,c);k=J[e+8>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;f=n?f:f+1|0;j=J[a+80>>2];if(!f&n>>>0<j>>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;f=b>>>0<=1?1:b;g=f&3;c=0;b=0;if(f-1>>>0>=3){n=f&-4;l=0;while(1){d=b<<2;f=d+j|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|4)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|8)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|12)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!g){break r}while(1){f=j+(b<<2)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;f=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(f,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[f>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];f=g|4;J[f+d>>2]=J[f+k>>2];f=g|8;J[f+d>>2]=J[f+k>>2];f=g|12;J[f+d>>2]=J[f+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[e+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[e+32>>2];J[e+32>>2]=0;if(a){na(a)}ba=e- -64|0;return p}qa();B()}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ba-96|0;ba=f;d=J[a+16>>2];H[f+92|0]=1;J[f+88>>2]=b;J[f+84>>2]=b;J[f+80>>2]=d;a:{if((b|0)==-1){break a}j=J[a+20>>2];e=J[j>>2];d=J[J[d>>2]+(b<<2)>>2];if(d>>>0>=J[j+4>>2]-e>>2>>>0){break a}e=J[J[a+8>>2]+(J[e+(d<<2)>>2]<<2)>>2];d=J[a+4>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}J[f+72>>2]=0;J[f+76>>2]=0;j=f- -64|0;J[j>>2]=0;J[j+4>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;hb(d,e,H[d+24|0],f+56|0);d=b+1|0;j=(d>>>0)%3|0?d:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=j;d=m;d:{if(!J[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}n=J[a+20>>2];b=J[n>>2];e=J[J[J[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=J[n+4>>2]-b>>2>>>0){break b}e=J[J[a+8>>2]+(J[b+(e<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;hb(b,e,H[b+24|0],f+32|0);if((d|0)==-1){break c}e=J[a+20>>2];b=J[e>>2];d=J[J[J[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=J[e+4>>2]-b>>2>>>0){break c}e=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;hb(b,e,H[b+24|0],f+8|0);g=J[f+8>>2];b=J[f+56>>2];e=g-b|0;p=J[f+60>>2];t=J[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=J[f+40>>2];d=J[f+64>>2];n=h-d|0;u=J[f+68>>2];x=J[f+44>>2]-(u+(d>>>0>h>>>0)|0)|0;g=Hl(e,t,n,x);v=o-g|0;w=i-(ca+(g>>>0>o>>>0)|0)|0;i=v;h=J[f+16>>2];g=h-d|0;u=J[f+20>>2]-((d>>>0>h>>>0)+u|0)|0;k=J[f+32>>2];h=k-b|0;v=J[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Hl(g,u,h,v);o=i+b|0;i=ca+w|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=e;p=t;k=J[f+48>>2];d=J[f+72>>2];e=k-d|0;t=J[f+76>>2];w=J[f+52>>2]-(t+(d>>>0>k>>>0)|0)|0;l=Hl(l,p,e,w);k=b+l|0;b=ca+q|0;b=k>>>0<l>>>0?b+1|0:b;l=J[f+24>>2];p=l-d|0;d=J[f+28>>2]-((d>>>0>l>>>0)+t|0)|0;q=Hl(p,d,h,v);l=k-q|0;q=b-(ca+(k>>>0<q>>>0)|0)|0;b=Hl(g,u,e,w);e=r-b|0;b=s-(ca+(b>>>0>r>>>0)|0)|0;s=Hl(p,d,n,x);r=s+e|0;b=ca+b|0;s=r>>>0<s>>>0?b+1|0:b;b=J[f+88>>2];e=J[f+80>>2];e:{if(K[f+92|0]){f:{g:{h:{i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break i}b=J[J[e+12>>2]+(b<<2)>>2];if((b|0)!=-1){break h}}J[f+88>>2]=-1;break g}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[f+88>>2]=b;if((b|0)!=-1){break f}}b=J[f+84>>2];d=-1;j:{if((b|0)==-1){break j}k:{if((b>>>0)%3|0){b=b-1|0;break k}b=b+2|0;d=-1;if((b|0)==-1){break j}}b=J[J[e+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break j}d=b-1|0;if((b>>>0)%3|0){break j}d=b+2|0}H[f+92|0]=0;J[f+88>>2]=d;break e}if((b|0)!=J[f+84>>2]){break e}J[f+88>>2]=-1;break e}d=-1;l:{if((b|0)==-1){break l}m:{if((b>>>0)%3|0){b=b-1|0;break m}b=b+2|0;d=-1;if((b|0)==-1){break l}}b=J[J[e+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break l}d=b-1|0;if((b>>>0)%3|0){break l}d=b+2|0}J[f+88>>2]=d}b=J[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;d=b^r;e=d-b|0;b=(b^s)-((b>>>0>d>>>0)+b|0)|0;m=-1;d=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;n:{o:{if(!J[a+28>>2]){if((b|0)==(g|0)&e>>>0>k>>>0|b>>>0>g>>>0){break n}b=b+h|0;a=e+j|0;b=a>>>0<j>>>0?b+1|0:b;d=a;g=i;a=g>>31;e=a;m=e^o;a=m-e|0;i=a;e=(e^g)-((e>>>0>m>>>0)+e|0)|0;a=a+d|0;e=e^2147483647;i=(e|0)==(b|0)&(i^-1)>>>0<d>>>0|b>>>0>e>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break n}b=0;a=a>>>29|0;break o}p:{if((b|0)==(g|0)&e>>>0>k>>>0|b>>>0>g>>>0){break p}b=b+h|0;a=e+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;e=i>>31;h=e^o;i=h-e|0;j=(e^k)-((e>>>0>h>>>0)+e|0)|0;g=j^2147483647;e=a;a=i;if((g|0)==(b|0)&e>>>0>(a^-1)>>>0|b>>>0>g>>>0){break p}b=b+j|0;m=a+e|0;b=m>>>0<a>>>0?b+1|0:b;d=b;if(!b&m>>>0<536870913){break n}}b=d>>>29|0;a=(d&536870911)<<3|m>>>29}o=Il(o,n,a,b);l=Il(l,q,a,b);r=Il(r,s,a,b)}J[c+8>>2]=o;J[c+4>>2]=l;J[c>>2]=r;ba=f+96|0;return}ra();B()}ra();B()}ra();B()}function Jd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=Q(0),o=0,p=0,q=0,r=0,s=0,t=Q(0);h=ba-80|0;ba=h;J[h+56>>2]=0;J[h+60>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;J[h+64>>2]=1065353216;c=J[a+80>>2];J[h+32>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+24>>2]=k;c=f+k|0;J[h+32>>2]=c;pa(k,0,f);J[h+28>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);g=c;c=c+f|0;c=c+d|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);c=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[h+40>>2]=f;J[h+44>>2]=c;J[h+16>>2]=p;J[h+8>>2]=f;J[h+12>>2]=c;c=0;o=h+8|0;f=J[o+4>>2]^(J[o>>2]^318)+239;b:{c:{l=h+48|0;g=J[l+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}j=J[J[l>>2]+(c<<2)>>2];if(!j){break c}if(d>>>0<2){break d}i=J[o+4>>2];r=J[o>>2];while(1){j=J[j>>2];if(!j){break c}d=J[j+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[j+8>>2];e:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=(i|0)==J[j+12>>2]}if(!d){continue}break}c=0;break b}c=f&g-1;j=J[J[l>>2]+(c<<2)>>2];if(!j){break c}}r=g-1|0;i=J[o+4>>2];s=J[o>>2];while(1){j=J[j>>2];if(!j){break c}d=J[j+4>>2];if((d|0)!=(f|0)&(d&r)!=(c|0)){break c}d=J[j+8>>2];f:{if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=(i|0)==J[j+12>>2]}if(!d){continue}break}c=0;break b}j=oa(20);d=J[o+4>>2];J[j+8>>2]=J[o>>2];J[j+12>>2]=d;d=J[o+8>>2];J[j+4>>2]=f;J[j+16>>2]=d;J[j>>2]=0;n=Q(J[l+12>>2]+1>>>0);t=N[l+16>>2];g:{if(n>Q(t*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;n=Q(W(Q(n/t)));h:{if(n<Q(4294967296)&n>=Q(0)){i=~~n>>>0;break h}i=0}d=d>>>0>i>>>0?d:i;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[l+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}i=g>>>0<3;n=Q(W(Q(Q(M[l+12>>2])/N[l+16>>2])));k:{if(n<Q(4294967296)&n>=Q(0)){d=~~n>>>0;break k}d=0}l:{m:{if(i){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(l,c)}g=J[l+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[l>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=l+8|0;J[j>>2]=J[c>>2];J[l+8>>2]=j;J[f>>2]=c;c=J[j>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[l>>2]+(c<<2)|0;break o}J[j>>2]=J[c>>2]}J[c>>2]=j}J[l+12>>2]=J[l+12>>2]+1;c=1}H[h+76|0]=c;J[h+72>>2]=j;q:{if(!K[h+76|0]){J[(m<<2)+k>>2]=J[J[h+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,h+40|0,c);k=J[h+24>>2];J[k+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;e=m?e:e+1|0;i=J[a+80>>2];if(!e&m>>>0<i>>>0){continue}break}if((i|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];i=J[a+68>>2];if((b|0)==(i|0)){break r}b=b-i>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){m=e&-4;while(1){d=b<<2;e=d+i|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;q=q+4|0;if((m|0)!=(q|0)){continue}break}}if(!f){break r}while(1){e=i+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<i>>>0){Ma(e,i-c|0,2176);i=J[a+80>>2];break s}if(c>>>0<=i>>>0){break s}J[a+72>>2]=b+(i<<2)}if(!i){break r}d=J[e>>2];c=0;b=0;if(i>>>0>=4){m=i&-4;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;q=q+4|0;if((m|0)!=(q|0)){continue}break}}m=i&3;if(!m){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((m|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[h+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+48>>2];J[h+48>>2]=0;if(a){na(a)}ba=h+80|0;return p}qa();B()}function fb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ba-32|0;ba=f;a:{b=J[a+16>>2];b:{if(b>>>0>=113){J[a+16>>2]=b-113;b=J[a+4>>2];j=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];c:{if((b|0)!=J[a+12>>2]){d=b;break c}k=J[a>>2];if(k>>>0<c>>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=ta(e+c|0,c,b)+b|0;J[a+8>>2]=d;J[a+4>>2]=e+J[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=oa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=h;if(!k){break c}na(k);d=J[a+8>>2]}J[d>>2]=j;J[a+8>>2]=J[a+8>>2]+4;break b}c=J[a+8>>2];b=J[a+4>>2];l=c-b|0;h=l>>2;g=J[a+12>>2];d=J[a>>2];e=g-d|0;if(h>>>0<e>>2>>>0){if((c|0)!=(g|0)){n=f,o=oa(4068),J[n+8>>2]=o;d=a;f:{g:{b=J[a+8>>2];h:{if((b|0)!=J[a+12>>2]){e=b;break h}c=J[d+4>>2];h=J[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=ta(g+c|0,c,a)+a|0;J[d+8>>2]=e;J[d+4>>2]=g+J[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=oa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}J[d+12>>2]=l;J[d+8>>2]=e;J[d+4>>2]=a;J[d>>2]=j;if(!h){break h}na(h);e=J[d+8>>2]}J[e>>2]=J[f+8>>2];J[d+8>>2]=J[d+8>>2]+4;break f}xa();B()}break b}n=f,o=oa(4068),J[n+8>>2]=o;qe(a,f+8|0);b=J[a+4>>2];j=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];k:{if((b|0)!=J[a+12>>2]){d=b;break k}k=J[a>>2];if(k>>>0<c>>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=ta(e+c|0,c,b)+b|0;J[a+8>>2]=d;J[a+4>>2]=e+J[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=oa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=h;if(!k){break k}na(k);d=J[a+8>>2]}J[d>>2]=j;J[a+8>>2]=J[a+8>>2]+4;break b}J[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=oa(e);J[f+8>>2]=g;j=e+g|0;J[f+20>>2]=j;d=(h<<2)+g|0;J[f+12>>2]=d;i=oa(4068);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;J[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=oa(b);J[f+8>>2]=e;j=b+e|0;J[f+20>>2]=j;d=e+(d&-4)|0;J[f+12>>2]=d;na(g);b=J[a+4>>2];c=J[a+8>>2];g=e}J[d>>2]=i;i=d+4|0;J[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qe(f+8|0,c);if(J[a+4>>2]!=(c|0)){continue}break}j=J[f+20>>2];i=J[f+16>>2];d=J[f+12>>2];g=J[f+8>>2];e=c;b=J[a+8>>2]}c=J[a>>2];J[a>>2]=g;J[f+8>>2]=c;J[a+4>>2]=d;J[f+12>>2]=e;J[a+8>>2]=i;J[f+16>>2]=b;d=J[a+12>>2];J[a+12>>2]=j;J[f+20>>2]=d;if((b|0)!=(e|0)){J[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}na(c)}ba=f+32|0;return}xa();B()}function _k(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=ba-48|0;ba=k;J[a+68>>2]=f;o=a+112|0;za(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[k+40>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Tc(p,J[d+(n<<2)>>2],k+32|0);f=J[k+36>>2];d=f>>31;g=J[k+32>>2];e=g>>31;i=(d^f)-d+((e^g)-e)|0;h=J[k+40>>2];d=h>>31;e=(d^h)-d|0;d=0;m=e;e=e+i|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+108>>2];i=j;break b}j=J[a+108>>2];i=j>>31;f=Il(Hl(j,i,f,f>>31),ca,e,d);l=f>>31;i=Il(Hl(j,i,g,g>>31),ca,e,d);d=i>>31;d=(f^l)-l+((d^i)-d)|0;h=(h|0)<0?d-j|0:j-d|0}c:{if((i|0)>=0){e=f+j|0;l=h+j|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;l=(d^f)-d|0;break c}d=f>>31;l=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|l)){break e}if(!((d|0)!=(l|0)|e)){m=l;g=l;break e}if(!((d|0)!=(e|0)|l)){m=e;g=e;break e}if(!((j|0)>=(l|0)|e)){m=(j<<1)-l|0;g=0;break e}if(!((d|0)!=(e|0)|(j|0)<=(l|0))){m=(j<<1)-l|0;g=e;break e}if(!((d|0)!=(l|0)|(e|0)>=(j|0))){m=l;g=(j<<1)-e|0;break e}if(l){m=l;g=e;break e}m=0;g=e;if((e|0)<=(j|0)){break e}g=(j<<1)-e|0}J[k+28>>2]=m;J[k+24>>2]=g;J[k+40>>2]=0-h;J[k+36>>2]=0-f;J[k+32>>2]=0-i;f:{if((i|0)<=0){i=j-h|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;i=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|i)){i=d;break g}if(!((d|0)!=(i|0)|e)){i=d;break g}f=(d|0)!=(e|0);if(!(i|f)){i=d;break g}if(!((i|0)<=(j|0)|e)){i=(j<<1)-i|0;d=0;break g}if(!((i|0)>=(j|0)|f)){i=(j<<1)-i|0;break g}if(!((d|0)!=(i|0)|(e|0)>=(j|0))){i=d;d=(j<<1)-e|0;break g}if(i){d=e;break g}i=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}J[k+20>>2]=i;J[k+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}l=(n<<3)+b|0;i=J[a+32>>2];e=0;g=k+24|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+j>>2]=h;break i}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(k+8|0)|0;g=J[f+l>>2]-J[f+j>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}i=J[a+32>>2];e=0;g=k+16|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+j>>2]=h;break k}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+k|0;g=J[g+l>>2]-J[j+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[k+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[k+8>>2]=f;h=J[k+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[k+12>>2]=h;d=J[k>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[k>>2]=d;i=J[k+4>>2];p:{if((e|0)<(i|0)){i=i-J[a+96>>2]|0;break p}if((0-e|0)<=(i|0)){break p}i=J[a+96>>2]+i|0}J[k+4>>2]=i;e=h>>31;e=(e^h)-e|0;l=f>>31;l=(l^f)-l|0;m=l>>>0>(e^2147483647)>>>0?2147483647:e+l|0;e=i>>31;e=(e^i)-e|0;l=d>>31;l=(l^d)-l|0;e=m>>>0>=(l>>>0>(e^2147483647)>>>0?2147483647:e+l|0)>>>0;Ca(o,e);g=g<<2;d=e?d:f;J[g+c>>2]=(J[a+96>>2]&d>>31)+d;d=e?i:h;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=ba-48|0;ba=k;J[a+68>>2]=f;o=a+112|0;za(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[k+40>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(p,J[d+(n<<2)>>2],k+32|0);f=J[k+36>>2];d=f>>31;g=J[k+32>>2];e=g>>31;i=(d^f)-d+((e^g)-e)|0;h=J[k+40>>2];d=h>>31;e=(d^h)-d|0;d=0;m=e;e=e+i|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+108>>2];i=j;break b}j=J[a+108>>2];i=j>>31;f=Il(Hl(j,i,f,f>>31),ca,e,d);l=f>>31;i=Il(Hl(j,i,g,g>>31),ca,e,d);d=i>>31;d=(f^l)-l+((d^i)-d)|0;h=(h|0)<0?d-j|0:j-d|0}c:{if((i|0)>=0){e=f+j|0;l=h+j|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;l=(d^f)-d|0;break c}d=f>>31;l=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|l)){break e}if(!((d|0)!=(l|0)|e)){m=l;g=l;break e}if(!((d|0)!=(e|0)|l)){m=e;g=e;break e}if(!((j|0)>=(l|0)|e)){m=(j<<1)-l|0;g=0;break e}if(!((d|0)!=(e|0)|(j|0)<=(l|0))){m=(j<<1)-l|0;g=e;break e}if(!((d|0)!=(l|0)|(e|0)>=(j|0))){m=l;g=(j<<1)-e|0;break e}if(l){m=l;g=e;break e}m=0;g=e;if((e|0)<=(j|0)){break e}g=(j<<1)-e|0}J[k+28>>2]=m;J[k+24>>2]=g;J[k+40>>2]=0-h;J[k+36>>2]=0-f;J[k+32>>2]=0-i;f:{if((i|0)<=0){i=j-h|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;i=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|i)){i=d;break g}if(!((d|0)!=(i|0)|e)){i=d;break g}f=(d|0)!=(e|0);if(!(i|f)){i=d;break g}if(!((i|0)<=(j|0)|e)){i=(j<<1)-i|0;d=0;break g}if(!((i|0)>=(j|0)|f)){i=(j<<1)-i|0;break g}if(!((d|0)!=(i|0)|(e|0)>=(j|0))){i=d;d=(j<<1)-e|0;break g}if(i){d=e;break g}i=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}J[k+20>>2]=i;J[k+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}l=(n<<3)+b|0;i=J[a+32>>2];e=0;g=k+24|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+j>>2]=h;break i}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(k+8|0)|0;g=J[f+l>>2]-J[f+j>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}i=J[a+32>>2];e=0;g=k+16|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+j>>2]=h;break k}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+k|0;g=J[g+l>>2]-J[j+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[k+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[k+8>>2]=f;h=J[k+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[k+12>>2]=h;d=J[k>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[k>>2]=d;i=J[k+4>>2];p:{if((e|0)<(i|0)){i=i-J[a+96>>2]|0;break p}if((0-e|0)<=(i|0)){break p}i=J[a+96>>2]+i|0}J[k+4>>2]=i;e=h>>31;e=(e^h)-e|0;l=f>>31;l=(l^f)-l|0;m=l>>>0>(e^2147483647)>>>0?2147483647:e+l|0;e=i>>31;e=(e^i)-e|0;l=d>>31;l=(l^d)-l|0;e=m>>>0>=(l>>>0>(e^2147483647)>>>0?2147483647:e+l|0)>>>0;Ca(o,e);g=g<<2;d=e?d:f;J[g+c>>2]=(J[a+96>>2]&d>>31)+d;d=e?i:h;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Ef(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);h=ba+-64|0;ba=h;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+48>>2]=1065353216;c=J[a+80>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+16>>2]=k;c=f+k|0;J[h+24>>2]=c;pa(k,0,f);J[h+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[h+28>>2]=c;J[h+12>>2]=q;J[h+8>>2]=c;c=0;p=h+8|0;f=L[p+2>>1]^(L[p>>1]^318)+239;b:{c:{m=h+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}j=L[p>>1];l=L[p+2>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[i+8>>1];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==L[i+10>>1]}if(!d){continue}break}c=0;break b}c=f&g+131071;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=g-1|0;r=L[p>>1];l=L[p+2>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=L[i+8>>1];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==L[i+10>>1]}if(!d){continue}break}c=0;break b}i=oa(16);J[i+8>>2]=J[p>>2];d=J[p+4>>2];J[i+4>>2]=f;J[i+12>>2]=d;J[i>>2]=0;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[f>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[h+60|0]=c;J[h+56>>2]=i;q:{if(!K[h+60|0]){J[(n<<2)+k>>2]=J[J[h+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,h+28|0,c);k=J[h+16>>2];J[k+(n<<2)>>2]=q;q=q+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0<j>>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[h+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+32>>2];J[h+32>>2]=0;if(a){na(a)}ba=h- -64|0;return q}qa();B()}function Jg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;p=ba-32|0;ba=p;a:{if((c|0)<=0){break a}t=c&3;b:{if(c>>>0<4){c=0;break b}z=c&-4;c=0;while(1){g=(c<<3)+b|0;s=J[g>>2];u=J[g+4>>2];v=c|1;g=(v<<3)+b|0;i=J[g>>2];w=c|2;h=(w<<3)+b|0;m=J[h>>2];x=c|3;j=(x<<3)+b|0;y=J[j>>2];g=J[g+4>>2];h=J[h+4>>2];j=J[j+4>>2];n=j|y?x:h|m?w:g|i?v:s|u?c:n;f=f+u|0;e=e+s|0;f=(e>>>0<s>>>0?f+1|0:f)+g|0;g=e;e=e+i|0;f=(g>>>0>e>>>0?f+1|0:f)+h|0;g=e;e=e+m|0;f=(g>>>0>e>>>0?f+1|0:f)+j|0;g=e;e=e+y|0;f=g>>>0>e>>>0?f+1|0:f;c=c+4|0;l=l+4|0;if((z|0)!=(l|0)){continue}break}}if(!t){break a}while(1){g=(c<<3)+b|0;i=J[g>>2];g=J[g+4>>2];n=i|g?c:n;c=c+1|0;f=f+g|0;e=e+i|0;f=e>>>0<i>>>0?f+1|0:f;o=o+1|0;if((t|0)!=(o|0)){continue}break}}m=n+1|0;J[a+12>>2]=m;c=J[a>>2];g=J[a+4>>2]-c>>3;c:{if(g>>>0<m>>>0){Wa(a,m-g|0);break c}if(g>>>0<=m>>>0){break c}J[a+4>>2]=c+(m<<3)}j=0;d:{e:{f:{g:{h:{if((n|0)>=0){k=+(e>>>0)+ +(f>>>0)*4294967296;i=J[a>>2];c=0;while(1){f=c<<3;e=f+b|0;h=J[e>>2];e=J[e+4>>2];g=(h|e)!=0;l=f+i|0;r=(+(h>>>0)+ +(e>>>0)*4294967296)/k*4096+.5;i:{if(r<4294967296&r>=0){e=~~r>>>0;break i}e=0}e=e?e:g?1:e;J[l>>2]=e;j=e+j|0;e=(c|0)==(n|0);c=c+1|0;if(!e){continue}break}if((j|0)==4096){break h}}J[p+16>>2]=0;J[p+8>>2]=0;J[p+12>>2]=0;i=0;j:{if(!m){break j}if(m>>>0>=1073741824){break g}g=m<<2;q=oa(g);J[p+8>>2]=q;l=0;h=pa(q,0,g);c=0;if(n>>>0>=7){f=m&-8;while(1){J[h+(c<<2)>>2]=c;e=c|1;J[h+(e<<2)>>2]=e;e=c|2;J[h+(e<<2)>>2]=e;e=c|3;J[h+(e<<2)>>2]=e;e=c|4;J[h+(e<<2)>>2]=e;e=c|5;J[h+(e<<2)>>2]=e;e=c|6;J[h+(e<<2)>>2]=e;e=c|7;J[h+(e<<2)>>2]=e;c=c+8|0;i=i+8|0;if((f|0)!=(i|0)){continue}break}}i=h+g|0;e=m&7;if(!e){break j}while(1){J[h+(c<<2)>>2]=c;c=c+1|0;l=l+1|0;if((e|0)!=(l|0)){continue}break}}J[p+24>>2]=a;c=i-q|0;e=c>>2;k:{l:{if((c|0)>=513){c=e;while(1){f=oa(c<<2);if(f){break l}f=c>>>0>1;c=c>>>1|0;if(f){continue}break}}hc(q,i,p+24|0,e,0,0);break k}hc(q,i,p+24|0,e,f,c);na(f)}if((j|0)<4096){c=J[a>>2]+(J[i-4>>2]<<3)|0;J[c>>2]=(J[c>>2]-j|0)+4096;c=0;break f}if((n|0)>0){f=J[a>>2];o=j-4096|0;while(1){r=4096/+(j|0);l=n;while(1){m:{n:{e=f+(J[(l<<2)+q>>2]<<3)|0;c=J[e>>2];if(c>>>0>=2){h=e;i=c;k=V(r*+(c>>>0));o:{if(R(k)<2147483648){g=~~k;break o}g=-2147483648}e=(c|0)==(g|0)?1:c-g|0;c=(c|0)>(e|0)?e:c-1|0;c=(c|0)<(o|0)?c:o;J[h>>2]=i-c;o=o-c|0;j=j-c|0;if((j|0)!=4096){break n}j=4096;break m}if((n|0)!=(l|0)){break m}c=1;break f}c=(l|0)>1;l=l-1|0;if(c){continue}}break}c=0;if((o|0)>0){continue}break}break f}c=0;if(j>>>0<4097){break f}while(1)continue}if((n|0)<0){break d}break e}qa();B()}e=J[p+8>>2];if(e){na(e)}if((n|0)<0|c){break d}}h=J[a>>2];j=0;o=0;c=0;if(n>>>0>=3){g=m&-4;q=0;while(1){i=o<<3;f=i+h|0;J[f+4>>2]=c;e=h+(i|8)|0;c=J[f>>2]+c|0;J[e+4>>2]=c;f=h+(i|16)|0;c=c+J[e>>2]|0;J[f+4>>2]=c;e=h+(i|24)|0;c=c+J[f>>2]|0;J[e+4>>2]=c;c=c+J[e>>2]|0;o=o+4|0;q=q+4|0;if((g|0)!=(q|0)){continue}break}}f=m&3;if(f){while(1){e=h+(o<<3)|0;J[e+4>>2]=c;o=o+1|0;c=J[e>>2]+c|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}if((c|0)!=4096){break d}c=0;k=0;p:{if((n|0)<0){break p}h=J[a>>2];if(n){i=m&-2;l=0;while(1){e=c<<3;g=J[e+h>>2];if(g){f=b+e|0;k=(+M[f>>2]+ +M[f+4>>2]*4294967296)*va(+(g>>>0)*.000244140625)+k}e=(c|1)<<3;g=J[e+h>>2];if(g){f=b+e|0;k=(+M[f>>2]+ +M[f+4>>2]*4294967296)*va(+(g>>>0)*.000244140625)+k}c=c+2|0;l=l+2|0;if((i|0)!=(l|0)){continue}break}}if(!(m&1)){break p}c=c<<3;e=J[c+h>>2];if(!e){break p}c=b+c|0;k=(+M[c>>2]+ +M[c+4>>2]*4294967296)*va(+(e>>>0)*.000244140625)+k}k=W(-k);q:{if(k<0x10000000000000000&k>=0){c=~~k>>>0;b=R(k)>=1?~~(k>0?T(V(k*2.3283064365386963e-10),4294967295):W((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;break q}c=0;b=0}J[a+16>>2]=c;J[a+20>>2]=b;Va(a,d)}ba=p+32|0}function Kk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=ba-48|0;ba=b;g=J[J[a+4>>2]+48>>2];J[b+8>>2]=J[a+12>>2];c=oa(32);J[b+24>>2]=c;J[b+28>>2]=17;J[b+32>>2]=-2147483616;H[c+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=jb(g,b+8|0,b+24|0,-1);if(H[b+35|0]<0){na(J[b+24>>2])}J[b+32>>2]=-1;J[b+36>>2]=1065353216;J[b+24>>2]=-1;J[b+28>>2]=-1;J[b+40>>2]=-1;c=-1<<c^-1;a:{if(!(c&1)){break a}c=S(c)^31;if(c-1>>>0>28){break a}J[b+24>>2]=c+1;c=-2<<c;J[b+28>>2]=c^-1;c=c^-2;J[b+32>>2]=c;J[b+40>>2]=c>>1;N[b+36>>2]=Q(2)/Q(c|0)}g=bh(J[a+12>>2],J[a+4>>2]);h=J[J[a+4>>2]+48>>2];J[b+20>>2]=J[a+12>>2];c=oa(32);J[b+8>>2]=c;J[b+12>>2]=17;J[b+16>>2]=-2147483616;H[c+16|0]=K[1529];f=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=jb(h,b+20|0,b+8|0,g);if(H[b+19|0]<0){na(J[b+8>>2])}b:{c:{d:{switch(c|0){case 6:e=J[a+4>>2];h=J[a+12>>2];a=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];if((da[J[J[e>>2]+8>>2]](e)|0)!=1){break c}c=b+24|0;f=ba-32|0;ba=f;i=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];e:{if((da[J[J[e>>2]+8>>2]](e)|0)!=1){break e}j=da[J[J[e>>2]+52>>2]](e)|0;g=da[J[J[e>>2]+60>>2]](e,h)|0;if(!j|!g){break e}d=da[J[J[e>>2]+56>>2]](e,h)|0;if(d){e=J[e+56>>2];J[f+20>>2]=d;J[f+16>>2]=e;J[f+28>>2]=g;J[f+24>>2]=g+12;d=oa(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=7524;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=7784;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;break e}d=J[e+56>>2];J[f+20>>2]=j;J[f+16>>2]=d;J[f+28>>2]=g;J[f+24>>2]=g+12;d=oa(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=9148;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=9392;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0}ba=f+32|0;if(!d){break c}break b;case 0:break d;default:break b}}c=J[a+4>>2];a=J[J[J[c+4>>2]+8>>2]+(J[a+12>>2]<<2)>>2];if((da[J[J[c>>2]+8>>2]](c)|0)!=1){break c}da[J[J[c>>2]+8>>2]](c)|0}d=oa(28);J[d+4>>2]=a;a=J[b+28>>2];J[d+8>>2]=J[b+24>>2];J[d+12>>2]=a;a=J[b+36>>2];J[d+16>>2]=J[b+32>>2];J[d+20>>2]=a;J[d+24>>2]=J[b+40>>2];J[d>>2]=9804}ba=b+48|0;return d|0}function Nf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);h=ba+-64|0;ba=h;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+48>>2]=1065353216;c=J[a+80>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+16>>2]=k;c=f+k|0;J[h+24>>2]=c;pa(k,0,f);J[h+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8;I[h+30>>1]=c;J[h+12>>2]=q;I[h+8>>1]=c;c=0;p=h+8|0;f=K[p+1|0]^(K[p|0]^318)+239;b:{c:{m=h+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}j=K[p|0];l=K[p+1|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[i+8|0];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[i+9|0]}if(!d){continue}break}c=0;break b}c=f&g+1023;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=g-1|0;r=K[p|0];l=K[p+1|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=K[i+8|0];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==K[i+9|0]}if(!d){continue}break}c=0;break b}i=oa(16);I[i+8>>1]=L[p>>1];d=J[p+4>>2];J[i+4>>2]=f;J[i+12>>2]=d;J[i>>2]=0;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/s)));h:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0<g>>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[f>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0<g>>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[h+60|0]=c;J[h+56>>2]=i;q:{if(!K[h+60|0]){J[(n<<2)+k>>2]=J[J[h+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,h+30|0,c);k=J[h+16>>2];J[k+(n<<2)>>2]=q;q=q+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0<j>>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0<j>>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[h+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+32>>2];J[h+32>>2]=0;if(a){na(a)}ba=h- -64|0;return q}qa();B()}function Vg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0,l=0;h=ba-16|0;ba=h;J[h+12>>2]=b;b=oa(32);J[h>>2]=b;J[h+4>>2]=17;J[h+8>>2]=-2147483616;H[b+16|0]=K[1261];g=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=i;H[b+9|0]=i>>>8;H[b+10|0]=i>>>16;H[b+11|0]=i>>>24;H[b+12|0]=g;H[b+13|0]=g>>>8;H[b+14|0]=g>>>16;H[b+15|0]=g>>>24;g=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=i;H[b+1|0]=i>>>8;H[b+2|0]=i>>>16;H[b+3|0]=i>>>24;H[b+4|0]=g;H[b+5|0]=g>>>8;H[b+6|0]=g>>>16;H[b+7|0]=g>>>24;H[b+17|0]=0;i=a+4|0;Wg(i,h+12|0,h,c);if(H[h+11|0]<0){na(J[h>>2])}a=oa(32);J[h>>2]=a;J[h+4>>2]=19;J[h+8>>2]=-2147483616;b=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[a+15|0]=b;H[a+16|0]=b>>>8;H[a+17|0]=b>>>16;H[a+18|0]=b>>>24;b=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);c=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);c=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+19|0]=0;g=ba-48|0;ba=g;j=J[h+12>>2];a=i+16|0;c=J[a>>2];a:{b:{if(!c){break b}b=a;while(1){k=(j|0)>J[c+16>>2];b=k?b:c;c=J[(k?c+4|0:c)>>2];if(c){continue}break}if((a|0)==(b|0)){break b}if((j|0)>=J[b+16>>2]){break a}}J[g+28>>2]=0;J[g+32>>2]=0;c=g+24|0;J[g+24>>2]=c|4;a=g+16|0;J[a>>2]=0;J[a+4>>2]=0;J[g+8>>2]=j;J[g+12>>2]=a;a=g+8|0;Oc(g+40|0,i+12|0,a,a);b=J[g+40>>2];Da(a|4,J[g+16>>2]);Da(c,J[g+28>>2])}b=b+20|0;a=ba-48|0;ba=a;J[a+24>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c:{if((d|0)<=0){break c}gd(a,N[e>>2]);c=K[a+11|0];j=c<<24>>24<0;jd(a+16|0,j?J[a>>2]:a,j?J[a+4>>2]:c);if(H[a+11|0]<0){na(J[a>>2])}c=1;if((d|0)==1){break c}while(1){j=a+16|0;jd(j,2020,rb(2020));gd(a,N[(c<<2)+e>>2]);l=j;j=K[a+11|0];k=j<<24>>24<0;jd(l,k?J[a>>2]:a,k?J[a+4>>2]:j);if(H[a+11|0]<0){na(J[a>>2])}c=c+1|0;if((d|0)!=(c|0)){continue}break}}J[a+40>>2]=h;ge(a,b,h,a+40|0);d=J[a>>2];b=d+28|0;d:{if((b|0)==(a+16|0)){break d}e=K[a+27|0];c=e<<24>>24;if(H[d+39|0]>=0){if((c|0)>=0){c=J[a+20>>2];J[b>>2]=J[a+16>>2];J[b+4>>2]=c;J[b+8>>2]=J[a+24>>2];break d}hd(b,J[a+16>>2],J[a+20>>2]);break d}d=b;b=(c|0)<0;id(d,b?J[a+16>>2]:a+16|0,b?J[a+20>>2]:e)}if(H[a+27|0]<0){na(J[a+16>>2])}ba=a+48|0;ba=g+48|0;if(H[h+11|0]<0){na(J[h>>2])}a=oa(32);J[h>>2]=a;J[h+4>>2]=18;J[h+8>>2]=-2147483616;b=K[1547]|K[1548]<<8;H[a+16|0]=b;H[a+17|0]=b>>>8;b=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);c=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);c=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+18|0]=0;b=ba-48|0;ba=b;c=J[h+12>>2];a=i+16|0;e=J[a>>2];e:{f:{if(!e){break f}d=a;while(1){g=(c|0)>J[e+16>>2];d=g?d:e;e=J[(g?e+4|0:e)>>2];if(e){continue}break}if((a|0)==(d|0)){break f}if((c|0)>=J[d+16>>2]){break e}}J[b+28>>2]=0;J[b+32>>2]=0;e=b+24|0;J[b+24>>2]=e|4;a=b+16|0;J[a>>2]=0;J[a+4>>2]=0;J[b+8>>2]=c;J[b+12>>2]=a;a=b+8|0;Oc(b+40|0,i+12|0,a,a);d=J[b+40>>2];Da(a|4,J[b+16>>2]);Da(e,J[b+28>>2])}a=ba-48|0;ba=a;gd(a+8|0,f);J[a+32>>2]=h;ge(a+40|0,d+20|0,h,a+32|0);c=J[a+40>>2];if(H[c+39|0]<0){na(J[c+28>>2])}d=J[a+12>>2];J[c+28>>2]=J[a+8>>2];J[c+32>>2]=d;J[c+36>>2]=J[a+16>>2];ba=a+48|0;ba=b+48|0;if(H[h+11|0]<0){na(J[h>>2])}ba=h+16|0}function lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0);f=ba-32|0;ba=f;J[f+28>>2]=c;a:{if(!me(a,b,c)){break a}i=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];if(J[i+28>>2]!=9){break a}g=J[b+48>>2];c=oa(32);J[f+16>>2]=c;J[f+20>>2]=17;J[f+24>>2]=-2147483616;H[c+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);h=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=h;H[c+9|0]=h>>>8;H[c+10|0]=h>>>16;H[c+11|0]=h>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);h=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=h;H[c+1|0]=h>>>8;H[c+2|0]=h>>>16;H[c+3|0]=h>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+17|0]=0;h=jb(g,f+28|0,f+16|0,-1);if(H[f+27|0]<0){na(J[f+16>>2])}if((h|0)<=0){break a}j=J[b+48>>2];c=oa(32);J[f+16>>2]=c;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[c+15|0]=e;H[c+16|0]=e>>>8;H[c+17|0]=e>>>16;H[c+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+19|0]=0;b:{if(!yc(j,f+28|0,f+16|0)){break b}g=J[b+48>>2];c=oa(32);J[f>>2]=c;J[f+4>>2]=18;J[f+8>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[c+16|0]=d;H[c+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+18|0]=0;d=yc(g,f+28|0,f);if(H[f+11|0]>=0){break b}na(J[f>>2])}if(H[f+27|0]<0){na(J[f+16>>2])}c:{if(d){c=0;d=K[i+24|0];if(d){d=d<<2;c=oa(d);pa(c,0,d)}j=J[b+48>>2];d=oa(32);J[f+16>>2]=d;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[d+15|0]=e;H[d+16|0]=e>>>8;H[d+17|0]=e>>>16;H[d+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[d+8|0]=g;H[d+9|0]=g>>>8;H[d+10|0]=g>>>16;H[d+11|0]=g>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[d|0]=g;H[d+1|0]=g>>>8;H[d+2|0]=g>>>16;H[d+3|0]=g>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+19|0]=0;De(j,f+28|0,f+16|0,K[i+24|0],c);if(H[f+27|0]<0){na(J[f+16>>2])}g=J[b+48>>2];b=oa(32);J[f+16>>2]=b;J[f+20>>2]=18;J[f+24>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[b+16|0]=d;H[b+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;H[b+18|0]=0;k=Ce(g,f+28|0,f+16|0);if(H[f+27|0]<0){na(J[f+16>>2])}a=ch(a+40|0,h,c,K[i+24|0],k);if(c){na(c)}d=0;if(a){break c}break a}d=0;if(!_g(a+40|0,i,h)){break a}}d=1}ba=f+32|0;return d|0}function _f(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-32|0;ba=k;c=J[a+16>>2];J[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{if((c|0)!=J[a+24>>2]){J[c>>2]=b;b=c+4|0;J[a+20>>2]=b;d=c;break g}d=oa(4);J[d>>2]=b;b=d+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=d;if(c){break f}}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0;break e}na(c);b=J[a+20>>2];d=J[a+16>>2];if((b|0)==(d|0)){break d}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0}if((c|0)>0){r=a+120|0;m=a+200|0;c=(c|0)/12|0;s=(c|0)<=1?1:c;while(1){h:{i:{d=b-4|0;b=J[d>>2];if((b|0)==-1){break i}c=(b>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break i}n=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;h=(b>>>0)/3|0;g=(b|0)==-1;o=g?-1:h;b=J[a+28>>2]+(o>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<o;b=J[a+76>>2];j:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break j}j=J[a+72>>2];l=b-j|0;d=l>>2;i=d+1|0;if(i>>>0>1073741823){break c}c=l>>>1|0;i=l>>>0>=2147483644?1073741823:c>>>0>i>>>0?c:i;if(i){if(i>>>0>1073741823){break a}c=oa(i<<2)}else{c=0}f=c+(d<<2)|0;J[f>>2]=e;d=f+4|0;if((b|0)!=(j|0)){while(1){f=f-4|0;b=b-4|0;J[f>>2]=J[b>>2];if((b|0)!=(j|0)){continue}break}}J[a+80>>2]=c+(i<<2);J[a+76>>2]=d;J[a+72>>2]=f;if(!j){break j}na(j)}J[a+320>>2]=e;b=-1;f=J[a+12>>2];b=(e|0)!=-1?J[J[f>>2]+(e<<2)>>2]:b;i=b<<2;q=J[i+J[a+152>>2]>>2];k:{l:{d=J[a+84>>2]+(b>>>3&536870908)|0;c=J[d>>2];b=1<<b;if(!(c&b)){J[d>>2]=b|c;if((q|0)==-1){break l}}m:{if(g){break m}b=-1;c=e+1|0;g=(c>>>0)%3|0?c:e-2|0;if((g|0)!=-1){b=J[J[f+12>>2]+(g<<2)>>2]}j=e-P(h,3)|0;n:{o:{if(j){d=e-1|0;break o}d=e+2|0;c=-1;if((d|0)==-1){break n}}c=J[J[f+12>>2]+(d<<2)>>2]}p=(c|0)==-1;l=p?-1:(c>>>0)/3|0;p:{if((g|0)==-1){break p}h=J[f+12>>2];d=J[h+(g<<2)>>2];if((d|0)==-1){break p}g=J[a+28>>2];d=(d>>>0)/3|0;if(J[g+(d>>>3&268435452)>>2]>>>d&1){break p}q:{r:{if(j){f=e-1|0;break r}f=e+2|0;if((f|0)==-1){break q}}d=J[(f<<2)+h>>2];if((d|0)==-1){break q}d=(d>>>0)/3|0;if(J[g+(d>>>3&268435452)>>2]>>>d&1){break q}oc(m,1);J[a+168>>2]=J[a+168>>2]+1;s:{if((q|0)==-1){break s}d=J[J[a+152>>2]+i>>2];if(J[J[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break s}Hc(a,e,0)}e=J[a+164>>2];J[k+4>>2]=o;d=k+4|0;J[k+16>>2]=d;bg(k+24|0,r,d,k+16|0);J[J[k+24>>2]+12>>2]=e;f=J[a+20>>2];J[f-4>>2]=c;if(J[a+24>>2]!=(f|0)){J[f>>2]=b;J[a+20>>2]=f+4;break h}h=J[a+16>>2];g=f-h|0;d=g>>2;e=d+1|0;if(e>>>0>1073741823){break b}c=g>>>1|0;e=g>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>1073741823){break a}c=oa(e<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=b;b=d+4|0;if((f|0)!=(h|0)){while(1){d=d-4|0;f=f-4|0;J[d>>2]=J[f>>2];if((f|0)!=(h|0)){continue}break}}J[a+24>>2]=c+(e<<2);J[a+20>>2]=b;J[a+16>>2]=d;if(!h){break h}na(h);break h}if(!p){Qb(a,J[a+164>>2],0,l)}oc(m,3);break k}d=(b|0)==-1;if(!d){Qb(a,J[a+164>>2],1,d?-1:(b>>>0)/3|0)}t:{u:{if(j){b=e-1|0;break u}b=e+2|0;if((b|0)==-1){break t}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break t}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break t}oc(m,5);b=c;break k}if(p){break m}Qb(a,J[a+164>>2],0,l)}oc(m,7);J[a+20>>2]=J[a+20>>2]-4;break h}oc(m,0);b=-1;if((e|0)==-1){break k}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)==-1){break k}b=J[J[J[a+12>>2]+12>>2]+(c<<2)>>2]}n=n+1|0;if((s|0)!=(n|0)){continue}break}break h}J[a+20>>2]=d}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break d}g=J[a+28>>2];while(1){c=b-4|0;e=J[c>>2];v:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(J[g+(e>>>3&268435452)>>2]>>>e&1)){break v}}J[a+20>>2]=c;b=c}if((b|0)!=(d|0)){continue}break}}ba=k+32|0;return 1}qa();B()}qa();B()}xa();B()}function Ff(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=Q(0);g=ba+-64|0;ba=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;c=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;j=oa(e);J[g+16>>2]=j;c=e+j|0;J[g+24>>2]=c;pa(j,0,e);J[g+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);f=c;c=c+e|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8;I[g+30>>1]=c;J[g+12>>2]=p;I[g+8>>1]=c;c=0;q=g+8|0;n=L[q>>1];e=n^318;b:{c:{k=g+32|0;f=J[k+4>>2];if(!f){break c}d=Kl(f);d:{if(d>>>0>=2){c=e;if(f>>>0<=c>>>0){c=(e>>>0)%(f>>>0)|0}h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<=1){break d}while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(e|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break c}}if(L[h+8>>1]!=(n|0)){continue}break}c=0;break b}c=e&f-1;h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}}l=f-1|0;while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((e|0)!=(d|0)&(d&l)!=(c|0)){break c}if(L[h+8>>1]!=(n|0)){continue}break}c=0;break b}h=oa(16);I[h+8>>1]=L[q>>1];d=J[q+4>>2];J[h+4>>2]=e;J[h+12>>2]=d;J[h>>2]=0;o=Q(J[k+12>>2]+1>>>0);r=N[k+16>>2];e:{if(o>Q(r*Q(f>>>0))?0:f){break e}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(o/r)));f:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break f}l=0}d=d>>>0>l>>>0?d:l;g:{if((d|0)==1){break g}if(!(d&d-1)){c=d;break g}c=Ha(d);f=J[k+4>>2]}h:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break h}l=f>>>0<3;o=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));i:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break i}d=0}j:{k:{if(l){break k}if(Kl(f)>>>0>1){break k}d=d>>>0<2?d:1<<32-S(d-1|0);break j}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break h}}db(k,c)}f=J[k+4>>2];c=f-1|0;if(!(c&f)){c=c&e;break e}if(e>>>0<f>>>0){c=e;break e}c=(e>>>0)%(f>>>0)|0}e=J[k>>2]+(c<<2)|0;c=J[e>>2];l:{m:{if(!c){c=k+8|0;J[h>>2]=J[c>>2];J[k+8>>2]=h;J[e>>2]=c;c=J[h>>2];if(!c){break l}c=J[c+4>>2];e=f-1|0;n:{if(!(e&f)){c=c&e;break n}if(c>>>0<f>>>0){break n}c=(c>>>0)%(f>>>0)|0}c=J[k>>2]+(c<<2)|0;break m}J[h>>2]=J[c>>2]}J[c>>2]=h}J[k+12>>2]=J[k+12>>2]+1;c=1}H[g+60|0]=c;J[g+56>>2]=h;o:{if(!K[g+60|0]){J[(m<<2)+j>>2]=J[J[g+56>>2]+12>>2];break o}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,g+30|0,c);j=J[g+16>>2];J[j+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;i=m?i:i+1|0;c=J[a+80>>2];if(!i&m>>>0<c>>>0){continue}break}if((c|0)!=(p|0)){p:{if(!K[a+84|0]){b=J[a+72>>2];d=J[a+68>>2];if((b|0)==(d|0)){break p}b=b-d>>2;c=b>>>0<=1?1:b;m=c&3;n=0;b=0;if(c-1>>>0>=3){i=c&-4;l=0;while(1){e=b<<2;c=e+d|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|4)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|8)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|12)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}if(!m){break p}while(1){c=d+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}break p}H[a+84|0]=0;m=a+68|0;b=J[a+68>>2];i=J[a+72>>2]-b>>2;q:{if(i>>>0<c>>>0){Ma(m,c-i|0,2176);c=J[a+80>>2];break q}if(c>>>0>=i>>>0){break q}J[a+72>>2]=b+(c<<2)}if(!c){break p}d=J[m>>2];n=0;b=0;if(c>>>0>=4){m=c&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+j>>2];i=e|4;J[i+d>>2]=J[j+i>>2];i=e|8;J[i+d>>2]=J[j+i>>2];i=e|12;J[i+d>>2]=J[j+i>>2];b=b+4|0;l=l+4|0;if((m|0)!=(l|0)){continue}break}}i=c&3;if(!i){break p}while(1){c=b<<2;J[c+d>>2]=J[c+j>>2];b=b+1|0;n=n+1|0;if((i|0)!=(n|0)){continue}break}}J[a+80>>2]=p}na(j)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){na(a)}ba=g- -64|0;return p}qa();B()}function Yk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0<e>>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;p=J[i+4>>2];k=J[i>>2];j=(k|0)<(h|0);h=j?k:h;i=(h|0)>(p|0);h=i?p:h;g=j?g:(g|0)<(k|0)?k:g;g=i?g:(g|0)<(p|0)?p:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0<h>>>0)|0)|0;d=g-h|0;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}s=e<<2;d=e>>>0>1073741823?-1:s;h=pa(oa(d),0,d);d=J[a+56>>2];t=J[d>>2];d=J[d+4>>2]-t|0;if((d|0)>=5){w=J[a+52>>2];u=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+t>>2];if((d|0)==-1){break f}g=J[J[u+12>>2]+(d<<2)>>2];if((g|0)==-1){break f}j=J[w>>2];k=J[u>>2];i=J[j+(J[k+(g<<2)>>2]<<2)>>2];d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if((d|0)!=-1){f=J[k+(d<<2)>>2]}else{f=-1}g:{h:{if((g>>>0)%3|0){g=g-1|0;break h}g=g+2|0;d=-1;if((g|0)==-1){break g}}d=J[k+(g<<2)>>2]}if((i|0)>=(l|0)){break f}f=J[(f<<2)+j>>2];if((f|0)>=(l|0)){break f}d=J[j+(d<<2)>>2];if((d|0)>=(l|0)){break f}i:{if((e|0)<=0){break i}k=P(d,e);j=P(e,f);i=P(e,i);g=0;d=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2];f=g|1;J[h+(f<<2)>>2]=(J[(f+k<<2)+b>>2]+J[(f+j<<2)+b>>2]|0)-J[(f+i<<2)+b>>2];g=g+2|0;d=d+2|0;if((x|0)!=(d|0)){continue}break}}if(!y){break i}J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;i=J[q>>2];m=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}break e}ra();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];m=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];l:{if((r|0)>(j|0)){J[f+n>>2]=j;break l}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break l}J[n>>2]=r}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){pa(h,0,s)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];m=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];n:{if((l|0)>(i|0)){J[f+o>>2]=i;break n}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break n}J[o>>2]=l}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=m<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;o:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break o}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}na(h);return 1}function Rf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=Q(0);g=ba+-64|0;ba=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;c=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;j=oa(e);J[g+16>>2]=j;c=e+j|0;J[g+24>>2]=c;pa(j,0,e);J[g+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);f=c;c=c+e|0;c=K[c+d|0];H[g+31|0]=c;J[g+12>>2]=p;H[g+8|0]=c;c=0;q=g+8|0;n=K[q|0];e=n^318;b:{c:{k=g+32|0;f=J[k+4>>2];if(!f){break c}d=Kl(f);d:{if(d>>>0>=2){c=e;if(f>>>0<=c>>>0){c=(e>>>0)%(f>>>0)|0}h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<=1){break d}while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(e|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break c}}if(K[h+8|0]!=(n|0)){continue}break}c=0;break b}c=e&f-1;h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}}l=f-1|0;while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((e|0)!=(d|0)&(d&l)!=(c|0)){break c}if(K[h+8|0]!=(n|0)){continue}break}c=0;break b}h=oa(16);H[h+8|0]=K[q|0];d=J[q+4>>2];J[h+4>>2]=e;J[h+12>>2]=d;J[h>>2]=0;o=Q(J[k+12>>2]+1>>>0);r=N[k+16>>2];e:{if(o>Q(r*Q(f>>>0))?0:f){break e}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(o/r)));f:{if(o<Q(4294967296)&o>=Q(0)){l=~~o>>>0;break f}l=0}d=d>>>0>l>>>0?d:l;g:{if((d|0)==1){break g}if(!(d&d-1)){c=d;break g}c=Ha(d);f=J[k+4>>2]}h:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break h}l=f>>>0<3;o=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));i:{if(o<Q(4294967296)&o>=Q(0)){d=~~o>>>0;break i}d=0}j:{k:{if(l){break k}if(Kl(f)>>>0>1){break k}d=d>>>0<2?d:1<<32-S(d-1|0);break j}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break h}}db(k,c)}f=J[k+4>>2];c=f-1|0;if(!(c&f)){c=c&e;break e}if(e>>>0<f>>>0){c=e;break e}c=(e>>>0)%(f>>>0)|0}e=J[k>>2]+(c<<2)|0;c=J[e>>2];l:{m:{if(!c){c=k+8|0;J[h>>2]=J[c>>2];J[k+8>>2]=h;J[e>>2]=c;c=J[h>>2];if(!c){break l}c=J[c+4>>2];e=f-1|0;n:{if(!(e&f)){c=c&e;break n}if(c>>>0<f>>>0){break n}c=(c>>>0)%(f>>>0)|0}c=J[k>>2]+(c<<2)|0;break m}J[h>>2]=J[c>>2]}J[c>>2]=h}J[k+12>>2]=J[k+12>>2]+1;c=1}H[g+60|0]=c;J[g+56>>2]=h;o:{if(!K[g+60|0]){J[(m<<2)+j>>2]=J[J[g+56>>2]+12>>2];break o}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,g+31|0,c);j=J[g+16>>2];J[j+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;i=m?i:i+1|0;c=J[a+80>>2];if(!i&m>>>0<c>>>0){continue}break}if((c|0)!=(p|0)){p:{if(!K[a+84|0]){b=J[a+72>>2];d=J[a+68>>2];if((b|0)==(d|0)){break p}b=b-d>>2;c=b>>>0<=1?1:b;m=c&3;n=0;b=0;if(c-1>>>0>=3){i=c&-4;l=0;while(1){e=b<<2;c=e+d|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|4)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|8)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|12)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}if(!m){break p}while(1){c=d+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}break p}H[a+84|0]=0;m=a+68|0;b=J[a+68>>2];i=J[a+72>>2]-b>>2;q:{if(i>>>0<c>>>0){Ma(m,c-i|0,2176);c=J[a+80>>2];break q}if(c>>>0>=i>>>0){break q}J[a+72>>2]=b+(c<<2)}if(!c){break p}d=J[m>>2];n=0;b=0;if(c>>>0>=4){m=c&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+j>>2];i=e|4;J[i+d>>2]=J[j+i>>2];i=e|8;J[i+d>>2]=J[j+i>>2];i=e|12;J[i+d>>2]=J[j+i>>2];b=b+4|0;l=l+4|0;if((m|0)!=(l|0)){continue}break}}i=c&3;if(!i){break p}while(1){c=b<<2;J[c+d>>2]=J[c+j>>2];b=b+1|0;n=n+1|0;if((i|0)!=(n|0)){continue}break}}J[a+80>>2]=p}na(j)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){na(a)}ba=g- -64|0;return p}qa();B()}function gl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0<e>>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;m=J[i+4>>2];p=J[i>>2];j=(p|0)<(h|0);h=j?p:h;i=(h|0)>(m|0);h=i?m:h;g=j?g:(g|0)<(p|0)?p:g;g=i?g:(g|0)<(m|0)?m:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0<h>>>0)|0)|0;d=g-h|0;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}t=e<<2;d=e>>>0>1073741823?-1:t;h=pa(oa(d),0,d);d=J[a+56>>2];u=J[d>>2];d=J[d+4>>2]-u|0;if((d|0)>=5){w=J[a+52>>2];s=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+u>>2];if((d|0)==-1|J[J[s>>2]+(d>>>3&536870908)>>2]>>>d&1){break f}m=J[J[J[s+64>>2]+12>>2]+(d<<2)>>2];if((m|0)==-1){break f}i=J[w>>2];j=J[s+28>>2];g=J[i+(J[j+(m<<2)>>2]<<2)>>2];if((g|0)>=(l|0)){break f}d=m+1|0;f=J[i+(J[j+(((d>>>0)%3|0?d:m-2|0)<<2)>>2]<<2)>>2];if((f|0)>=(l|0)){break f}d=J[i+(J[j+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((d|0)>=(l|0)){break f}g:{if((e|0)<=0){break g}j=P(d,e);i=P(e,f);f=P(e,g);g=0;k=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2];d=g|1;J[h+(d<<2)>>2]=(J[(d+j<<2)+b>>2]+J[(d+i<<2)+b>>2]|0)-J[(d+f<<2)+b>>2];g=g+2|0;k=k+2|0;if((x|0)!=(k|0)){continue}break}}if(!y){break g}J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;i=J[q>>2];k=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];h:{if((r|0)>(j|0)){J[f+n>>2]=j;break h}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break h}J[n>>2]=r}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;i:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break i}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}break e}ra();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];k=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){pa(h,0,t)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];k=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];l:{if((l|0)>(i|0)){J[f+o>>2]=i;break l}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break l}J[o>>2]=l}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}g=k<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)<J[a+28>>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}na(h);return 1}function je(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(J[c>>2]==J[c+4>>2]){m=J[d+80>>2];u=ba-16|0;ba=u;g=J[a+4>>2];k=K[b+24|0];h=J[d+48>>2];n=J[J[d>>2]>>2];c=u+8|0;J[c>>2]=1065353216;d=c;N[c>>2]=Q(-1<<g^-1)/N[a+20>>2];c=oa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=N[d>>2];n=J[a+8>>2];v=J[b>>2];d=J[b+48>>2];g=J[b+40>>2];w=J[b+44>>2];if(!K[b+84|0]){f=J[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=J[v>>2];l=Hl(g,w,J[f+(i<<2)>>2],0)+d|0;h=ua(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=Q(V(Q(Q(o*Q(N[j+h>>2]-N[n+j>>2]))+Q(.5))));b:{if(Q(R(e))<Q(2147483648)){r=~~e;break b}r=-2147483648}J[l>>2]=r;j=j|4;e=Q(V(Q(Q(o*Q(N[j+h>>2]-N[n+j>>2]))+Q(.5))));c:{if(Q(R(e))<Q(2147483648)){j=~~e;break c}j=-2147483648}J[l+4>>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+h>>2]-N[b+n>>2]))+Q(.5))));d:{if(Q(R(e))<Q(2147483648)){b=~~e;break d}b=-2147483648}J[l>>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=J[v>>2];h=Hl(g,w,i,l)+d|0;j=ua(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+j>>2]-N[f+n>>2]))+Q(.5))));e:{if(Q(R(e))<Q(2147483648)){r=~~e;break e}r=-2147483648}J[h>>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+j>>2]-N[f+n>>2]))+Q(.5))));f:{if(Q(R(e))<Q(2147483648)){f=~~e;break f}f=-2147483648}J[h+4>>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+j>>2]-N[b+n>>2]))+Q(.5))));g:{if(Q(R(e))<Q(2147483648)){b=~~e;break g}b=-2147483648}J[h>>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}na(c);ba=u+16|0;return 1}j=ba-16|0;ba=j;m=J[a+4>>2];i=K[b+24|0];g=J[d+48>>2];h=J[J[d>>2]>>2];d=j+8|0;J[d>>2]=1065353216;l=d;N[d>>2]=Q(-1<<m^-1)/N[a+20>>2];d=oa(i<<2);m=J[c+4>>2];q=J[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=N[l>>2];h=J[a+8>>2];v=J[b>>2];l=J[b+48>>2];m=J[b+40>>2];w=J[b+44>>2];if(K[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=J[v>>2];g=Hl(m,w,J[q+(c<<2)>>2],0)+l|0;p=ua(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));i:{if(Q(R(e))<Q(2147483648)){r=~~e;break i}r=-2147483648}J[g>>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));j:{if(Q(R(e))<Q(2147483648)){f=~~e;break j}f=-2147483648}J[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+p>>2]-N[b+h>>2]))+Q(.5))));k:{if(Q(R(e))<Q(2147483648)){b=~~e;break k}b=-2147483648}J[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=J[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=J[v>>2];g=Hl(m,w,J[s+(J[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=ua(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));l:{if(Q(R(e))<Q(2147483648)){r=~~e;break l}r=-2147483648}J[g>>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));m:{if(Q(R(e))<Q(2147483648)){f=~~e;break m}f=-2147483648}J[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+p>>2]-N[b+h>>2]))+Q(.5))));n:{if(Q(R(e))<Q(2147483648)){b=~~e;break n}b=-2147483648}J[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}na(d);ba=j+16|0;return 1}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0);c=1;a:{if(!J[a+80>>2]){break a}f=J[a+8>>2];if((J[a+12>>2]-f|0)<4){break a}while(1){b=J[(n<<2)+f>>2];k=0;l=0;j=0;c=0;f=0;e=-1;b:{c:{d:{e:{switch(J[b+28>>2]-1|0){case 8:f:{switch(K[b+24|0]-1|0){case 0:e=ba+-64|0;ba=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;g=J[b+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;g:{h:{if(g){if(g>>>0>=1073741824){break h}d=g<<2;g=oa(d);J[e+16>>2]=g;h=d+g|0;J[e+24>>2]=h;pa(g,0,d);J[e+20>>2]=h;while(1){d=J[J[b>>2]>>2];h=J[b+48>>2];m=Hl(J[b+40>>2],J[b+44>>2],c,0);h=h+m|0;d=d+h|0;o=(x(2,K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24)),D());N[e+28>>2]=o;J[e+12>>2]=k;N[e+8>>2]=o;d=e+8|0;qf(e+56|0,e+32|0,d,d);i:{if(!K[e+60|0]){J[(c<<2)+g>>2]=J[J[e+56>>2]+12>>2];break i}g=J[b+40>>2];ua(J[J[b>>2]>>2]+P(g,k)|0,e+28|0,g);g=J[e+16>>2];J[g+(c<<2)>>2]=k;k=k+1|0}c=c+1|0;f=c?f:f+1|0;d=J[b+80>>2];if(!f&c>>>0<d>>>0){continue}break}if((d|0)!=(k|0)){j:{if(!K[b+84|0]){c=J[b+72>>2];f=J[b+68>>2];if((c|0)==(f|0)){break j}c=c-f>>2;d=c>>>0<=1?1:c;h=d&3;c=0;if(d-1>>>0>=3){m=d&-4;while(1){d=c<<2;i=d+f|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];i=f+(d|4)|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];i=f+(d|8)|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];d=f+(d|12)|0;J[d>>2]=J[(J[d>>2]<<2)+g>>2];c=c+4|0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}if(!h){break j}while(1){d=f+(c<<2)|0;J[d>>2]=J[(J[d>>2]<<2)+g>>2];c=c+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}break j}H[b+84|0]=0;c=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;k:{if(f>>>0<d>>>0){Ma(c,d-f|0,2176);d=J[b+80>>2];break k}if(d>>>0>=f>>>0){break k}J[b+72>>2]=h+(d<<2)}if(!d){break j}f=J[c>>2];c=0;if(d>>>0>=4){m=d&-4;while(1){h=c<<2;J[h+f>>2]=J[g+h>>2];i=h|4;J[i+f>>2]=J[g+i>>2];i=h|8;J[i+f>>2]=J[g+i>>2];h=h|12;J[h+f>>2]=J[g+h>>2];c=c+4|0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}d=d&3;if(!d){break j}while(1){j=c<<2;J[j+f>>2]=J[g+j>>2];c=c+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}J[b+80>>2]=k}na(g)}c=J[e+40>>2];if(c){while(1){f=J[c>>2];na(c);c=f;if(c){continue}break}}c=J[e+32>>2];J[e+32>>2]=0;if(c){na(c)}ba=e- -64|0;c=k;break g}qa();B()}break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break f;default:break c}}c=Hd(b,b);break d;case 0:l:{switch(K[b+24|0]-1|0){case 0:c=Rf(b,b);break d;case 1:c=Nf(b,b);break d;case 2:c=Kf(b,b);break d;case 3:break l;default:break c}}c=If(b,b);break d;case 1:case 10:m:{switch(K[b+24|0]-1|0){case 0:c=Rf(b,b);break d;case 1:c=Nf(b,b);break d;case 2:c=Kf(b,b);break d;case 3:break m;default:break c}}c=If(b,b);break d;case 3:n:{switch(K[b+24|0]-1|0){case 0:c=Ff(b,b);break d;case 1:c=Ef(b,b);break d;case 2:c=wf(b,b);break d;case 3:break n;default:break c}}c=vf(b,b);break d;case 2:o:{switch(K[b+24|0]-1|0){case 0:c=Ff(b,b);break d;case 1:c=Ef(b,b);break d;case 2:c=wf(b,b);break d;case 3:break o;default:break c}}c=vf(b,b);break d;case 5:p:{switch(K[b+24|0]-1|0){case 0:c=uf(b,b);break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break p;default:break c}}c=Hd(b,b);break d;case 4:break e;default:break b}}q:{switch(K[b+24|0]-1|0){case 0:c=uf(b,b);break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break q;default:break c}}c=Hd(b,b)}e=c;if(e){break b}}e=-1}c=(e|0)!=0;if(!e){break a}n=n+1|0;f=J[a+8>>2];if((n|0)<J[a+12>>2]-f>>2){continue}break}}return c|0}function ic(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ba-16|0;ba=k;a:{if(!J[a+8>>2]){break a}e=J[a>>2];J[a>>2]=a+4;J[J[a+4>>2]+8>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;f=J[e+4>>2];e=f?f:e;if(!e){Da(a,e);break a}h=J[e+8>>2];b:{if(!h){break b}f=J[h>>2];if((f|0)==(e|0)){J[h>>2]=0;d=h;f=J[d+4>>2];if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break b}J[h+4>>2]=0;d=h;if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}c:{if((b|0)==(c|0)){h=e;break c}f=b;while(1){h=d;J[k+12>>2]=e+28;J[k+8>>2]=e+16;b=f+16|0;d=J[k+8>>2];d:{if((b|0)==(d|0)){break d}i=K[b+11|0];g=i<<24>>24;if(H[d+11|0]>=0){if((g|0)>=0){g=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=g;J[d+8>>2]=J[b+8>>2];break d}hd(d,J[b>>2],J[b+4>>2]);break d}l=d;d=(g|0)<0;id(l,d?J[b>>2]:b,d?J[b+4>>2]:i)}d=J[k+12>>2];g=b+12|0;if((d|0)!=(g|0)){e:{j=K[b+23|0];i=j<<24>>24;if(H[d+11|0]>=0){if((i|0)>=0){b=J[g+4>>2];J[d>>2]=J[g>>2];J[d+4>>2]=b;J[d+8>>2]=J[g+8>>2];break e}hd(d,J[b+12>>2],J[b+16>>2]);break e}l=d;d=(i|0)<0;id(l,d?J[b+12>>2]:g,d?J[b+16>>2]:j)}}g=J[a+4>>2];f:{if(!g){b=a+4|0;d=b;break f}b=K[e+27|0];d=b<<24>>24<0;j=d?J[e+16>>2]:e+16|0;i=d?J[e+20>>2]:b;while(1){b=g;g=K[b+27|0];d=g<<24>>24<0;g:{h:{i:{g=d?J[b+20>>2]:g;l=g>>>0<i>>>0?g:i;if(l){d=Ba(j,d?J[b+16>>2]:b+16|0,l);if(d){break i}}if(g>>>0>i>>>0){break h}break g}if((d|0)>=0){break g}}d=b;g=J[b>>2];if(g){continue}break f}g=J[b+4>>2];if(g){continue}break}d=b+4|0}J[e+8>>2]=b;J[e>>2]=0;J[e+4>>2]=0;J[d>>2]=e;b=e;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;b=J[d>>2]}sb(J[a+4>>2],b);J[a+8>>2]=J[a+8>>2]+1;d=0;j:{if(!h){break j}e=J[h+8>>2];if(!e){break j}b=J[e>>2];if((h|0)==(b|0)){J[e>>2]=0;d=e;b=J[d+4>>2];if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}break j}J[e+4>>2]=0;d=e;if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}}e=J[f+4>>2];k:{if(e){while(1){b=e;e=J[b>>2];if(e){continue}break k}}while(1){b=J[f+8>>2];e=J[b>>2]!=(f|0);f=b;if(e){continue}break}}if(!h){break c}f=b;e=h;if((b|0)!=(c|0)){continue}break}}Da(a,h);if(!d){break a}while(1){e=J[d+8>>2];if(e){d=e;continue}break}Da(a,d)}if((b|0)!=(c|0)){while(1){f=oa(40);g=f+16|0;l:{if(H[b+27|0]>=0){d=J[b+20>>2];J[g>>2]=J[b+16>>2];J[g+4>>2]=d;J[g+8>>2]=J[b+24>>2];break l}Ga(g,J[b+16>>2],J[b+20>>2])}d=a+4|0;e=f+28|0;m:{if(H[b+39|0]>=0){h=J[b+32>>2];J[e>>2]=J[b+28>>2];J[e+4>>2]=h;J[e+8>>2]=J[b+36>>2];break m}Ga(e,J[b+28>>2],J[b+32>>2])}e=d;h=J[d>>2];n:{if(!h){break n}e=K[f+27|0];d=e<<24>>24<0;i=d?J[f+20>>2]:e;g=d?J[f+16>>2]:g;while(1){d=h;h=K[d+27|0];e=h<<24>>24<0;o:{p:{q:{h=e?J[d+20>>2]:h;j=h>>>0<i>>>0?h:i;if(j){e=Ba(g,e?J[d+16>>2]:d+16|0,j);if(e){break q}}if(h>>>0>i>>>0){break p}break o}if((e|0)>=0){break o}}e=d;h=J[d>>2];if(h){continue}break n}h=J[d+4>>2];if(h){continue}break}e=d+4|0}J[f+8>>2]=d;J[f>>2]=0;J[f+4>>2]=0;J[e>>2]=f;d=f;f=J[J[a>>2]>>2];if(f){J[a>>2]=f;d=J[e>>2]}sb(J[a+4>>2],d);J[a+8>>2]=J[a+8>>2]+1;f=J[b+4>>2];r:{if(f){while(1){e=f;f=J[e>>2];if(f){continue}break r}}while(1){e=J[b+8>>2];d=J[e>>2]!=(b|0);b=e;if(d){continue}break}}b=e;if((c|0)!=(b|0)){continue}break}}ba=k+16|0}function ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=J[a+12>>2];d=J[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=J[d>>2];i=J[e+60>>2];f=J[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=J[e>>2];J[e>>2]=0;g=J[d>>2];J[d>>2]=h;if(g){Ka(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=J[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=J[c>>2];J[c>>2]=0;if(e){Ka(e)}if((c|0)!=(d|0)){continue}break}}J[a+12>>2]=d;g=J[a+4>>2];b:{if(!g|(i|0)<0){break b}c=J[g+24>>2];d=J[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==J[J[c>>2]+24>>2]){d=c+4|0;i=J[g+28>>2];if((d|0)!=(i|0)){while(1){h=J[d>>2];J[d>>2]=0;e=J[c>>2];J[c>>2]=h;if(e){lb(e+12|0,J[e+16>>2]);kb(e,J[e+4>>2]);na(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=J[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){lb(e+12|0,J[e+16>>2]);kb(e,J[e+4>>2]);na(e)}if((c|0)!=(d|0)){continue}break}}J[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=P(f,12)+a|0;c=J[e+20>>2];d=J[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(J[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;ta(f,c,d-c|0);J[e+24>>2]=d-4}c=J[a+24>>2];d=J[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break e}J[c>>2]=d-1}c=J[a+36>>2];d=J[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break f}J[c>>2]=d-1}c=J[a+48>>2];d=J[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break g}J[c>>2]=d-1}c=J[a+60>>2];d=J[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break h}J[c>>2]=d-1}c=J[a+72>>2];a=J[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}i=a+(i|4)|0;f=J[i>>2];if((f|0)>(b|0)){J[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=J[a>>2];if((f|0)>=(b|0)){break a}J[a>>2]=b-1}}function _a(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ba-112|0;ba=j;k=i&2147483647;a:{b:{l=e&2147483647;m=!(b|c);if(!(d|l?l-2147418112>>>0<2147549184:m)){o=k-2147418112|0;if(!h&(o|0)==-2147418112?f|g:(o|0)==-2147418112&(h|0)!=0|o>>>0>2147549184){break b}}if(!(!d&(l|0)==2147418112?m:l>>>0<2147418112)){h=d;i=e|32768;f=b;g=c;break a}if(!(!h&(k|0)==2147418112?!(f|g):k>>>0<2147418112)){i=i|32768;break a}if(!(b|d|(l^2147418112|c))){n=d;d=!(b^f|d^h|(c^g|e^i^-2147483648));h=d?0:n;i=d?2147450880:e;f=d?0:b;g=d?0:c;break a}if(!(f|h|(k^2147418112|g))){break a}if(!(b|d|(c|l))){if(f|h|(g|k)){break a}f=b&f;g=c&g;h=d&h;i=e&i;break a}if(f|h|(g|k)){break b}f=b;g=c;h=d;i=e;break a}n=(k|0)==(l|0);r=n&(d|0)==(h|0)?(c|0)==(g|0)&b>>>0<f>>>0|c>>>0<g>>>0:n&d>>>0<h>>>0|k>>>0>l>>>0;m=r;l=m?f:b;o=m?g:c;n=m?i:e;s=n;m=m?h:d;q=n&65535;d=r?d:h;e=r?e:i;t=e;n=e>>>16&32767;p=s>>>16&32767;if(!p){e=!(m|q);i=e;k=e?l:m;e=e<<6;h=e;i=S(i?o:q);e=e+((i|0)==32?S(k)+32|0:i)|0;Pa(j+96|0,l,o,m,q,e-15|0);m=J[j+104>>2];q=J[j+108>>2];o=J[j+100>>2];p=16-e|0;l=J[j+96>>2]}f=r?b:f;g=r?c:g;h=d;i=t&65535;if(!n){b=!(h|i);e=b;k=b?f:h;b=b<<6;c=b;e=S(e?g:i);b=b+((e|0)==32?S(k)+32|0:e)|0;Pa(j+80|0,f,g,h,i,b-15|0);n=16-b|0;h=J[j+88>>2];i=J[j+92>>2];g=J[j+84>>2];f=J[j+80>>2]}c=i<<3|h>>>29;b=h<<3|g>>>29;c=c|524288;h=m<<3|o>>>29;i=q<<3|m>>>29;r=s^t;e=g<<3|f>>>29;d=f<<3;c:{if((n|0)==(p|0)){break c}f=p-n|0;if(f>>>0>127){b=0;c=0;e=0;d=1;break c}Pa(j- -64|0,d,e,b,c,128-f|0);Gb(j+48|0,d,e,b,c,f);b=J[j+56>>2];c=J[j+60>>2];e=J[j+52>>2];d=J[j+48>>2]|(J[j+64>>2]|J[j+72>>2]|(J[j+68>>2]|J[j+76>>2]))!=0}m=d;k=e;n=h;q=i|524288;e=o<<3|l>>>29;o=l<<3;l=e;d:{if((r|0)<0){f=0;g=0;h=0;i=0;if(!(m^o|b^n|(k^l|c^q))){break a}d=o-m|0;e=l-((m>>>0>o>>>0)+k|0)|0;f=n-b|0;g=(k|0)==(l|0)&m>>>0>o>>>0|k>>>0>l>>>0;h=f-g|0;b=(q-((b>>>0>n>>>0)+c|0)|0)-(f>>>0<g>>>0)|0;i=b;if(b>>>0>524287){break d}b=!(h|i);f=b;g=b?d:h;b=b<<6;c=b;f=S(f?e:i);b=b+((f|0)==32?S(g)+32|0:f)|0;b=b-12|0;Pa(j+32|0,d,e,h,i,b);p=p-b|0;h=J[j+40>>2];i=J[j+44>>2];d=J[j+32>>2];e=J[j+36>>2];break d}e=k+l|0;d=m+o|0;e=d>>>0<o>>>0?e+1|0:e;f=(k|0)==(e|0)&d>>>0<m>>>0|e>>>0<k>>>0;k=c+q|0;b=b+n|0;k=b>>>0<n>>>0?k+1|0:k;h=b+f|0;i=h>>>0<b>>>0?k+1|0:k;if(!(i&1048576)){break d}d=m&1|((e&1)<<31|d>>>1);e=h<<31|e>>>1;p=p+1|0;h=(i&1)<<31|h>>>1;i=i>>>1|0}c=0;l=s&-2147483648;if((p|0)>=32767){h=c;i=l|2147418112;f=0;g=0;break a}n=0;e:{if((p|0)>0){n=p;break e}Pa(j+16|0,d,e,h,i,p+127|0);Gb(j,d,e,h,i,1-p|0);d=J[j>>2]|(J[j+16>>2]|J[j+24>>2]|(J[j+20>>2]|J[j+28>>2]))!=0;e=J[j+4>>2];h=J[j+8>>2];i=J[j+12>>2]}o=d&7;d=(e&7)<<29|d>>>3;f=(o>>>0>4)+d|0;b=h<<29|e>>>3;g=d>>>0>f>>>0?b+1|0:b;d=(b|0)==(g|0)&d>>>0>f>>>0|b>>>0>g>>>0;b=c|((i&7)<<29|h>>>3);h=d+b|0;i=l|(i>>>3&65535|n<<16);i=b>>>0>h>>>0?i+1|0:i;f:{if((o|0)==4){b=0;k=g+b|0;d=f;c=f&1;f=f+c|0;g=d>>>0>f>>>0?k+1|0:k;b=(b|0)==(g|0)&c>>>0>f>>>0|b>>>0>g>>>0;h=b+h|0;i=b>>>0>h>>>0?i+1|0:i;break f}if(!o){break a}}}J[a>>2]=f;J[a+4>>2]=g;J[a+8>>2]=h;J[a+12>>2]=i;ba=j+112|0}function na(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0<M[4853]){break a}a=a+b|0;if(J[4854]!=(d|0)){if(b>>>0<=255){e=J[d+8>>2];b=b>>>3|0;c=J[d+12>>2];if((c|0)==(e|0)){i=19396,j=J[4849]&Ll(b),J[i>>2]=j;break b}J[e+12>>2]=c;J[c+8>>2]=e;break b}h=J[d+24>>2];b=J[d+12>>2];c:{if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}d:{e=d+20|0;c=J[e>>2];if(c){break d}e=d+16|0;c=J[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break b}e=J[d+28>>2];c=(e<<2)+19700|0;e:{if(J[c>>2]==(d|0)){J[c>>2]=b;if(b){break e}i=19400,j=J[4850]&Ll(e),J[i>>2]=j;break b}J[h+(J[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=h;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b;break b}b=J[f+4>>2];if((b&3)!=3){break b}J[4851]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(J[4855]==(f|0)){J[4855]=d;a=J[4852]+a|0;J[4852]=a;J[d+4>>2]=a|1;if(J[4854]!=(d|0)){break a}J[4851]=0;J[4854]=0;return}if(J[4854]==(f|0)){J[4854]=d;a=J[4851]+a|0;J[4851]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=J[f+8>>2];b=b>>>3|0;c=J[f+12>>2];if((c|0)==(e|0)){i=19396,j=J[4849]&Ll(b),J[i>>2]=j;break g}J[e+12>>2]=c;J[c+8>>2]=e;break g}h=J[f+24>>2];b=J[f+12>>2];h:{if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}i:{e=f+20|0;c=J[e>>2];if(c){break i}e=f+16|0;c=J[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break g}e=J[f+28>>2];c=(e<<2)+19700|0;j:{if(J[c>>2]==(f|0)){J[c>>2]=b;if(b){break j}i=19400,j=J[4850]&Ll(e),J[i>>2]=j;break g}J[h+(J[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=h;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[4854]!=(d|0)){break f}J[4851]=a;return}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+19436|0;c=J[4849];a=1<<(a>>>3);k:{if(!(c&a)){J[4849]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=S(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}J[d+28>>2]=e;J[d+16>>2]=0;J[d+20>>2]=0;g=(e<<2)+19700|0;l:{m:{c=J[4850];b=1<<e;n:{if(!(c&b)){J[4850]=b|c;J[g>>2]=d;J[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=J[g>>2];while(1){c=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=J[g+16>>2];if(b){continue}break}J[g+16>>2]=d;J[d+24>>2]=c}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[c+8>>2];J[a+12>>2]=d;J[c+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=c;J[d+8>>2]=a}a=J[4857]-1|0;J[4857]=a?a:-1}}function xk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-48|0;ba=k;d=J[a+8>>2];if(d-2>>>0<=28){J[a+76>>2]=d;e=-1<<d;d=-2-e|0;J[a+84>>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;za(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Tc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;i=J[k+8>>2];e=i>>31;g=(d^f)-d+((e^i)-e)|0;l=J[k+16>>2];d=l>>31;e=(d^l)-d|0;d=0;m=e;e=e+g|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+92>>2];g=j;break b}j=J[a+92>>2];g=j>>31;f=Il(Hl(j,g,f,f>>31),ca,e,d);h=f>>31;g=Il(Hl(j,g,i,i>>31),ca,e,d);d=g>>31;d=(f^h)-h+((d^g)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((g|0)>=0){i=f+j|0;h=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;h=(d^f)-d|0;break c}d=f>>31;h=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(h|i)){break e}if(!((d|0)!=(h|0)|i)){m=h;e=h;break e}if(!((d|0)!=(i|0)|h)){m=i;e=i;break e}if(!((h|0)<=(j|0)|i)){m=(j<<1)-h|0;e=0;break e}if(!((d|0)!=(i|0)|(h|0)>=(j|0))){m=(j<<1)-h|0;e=i;break e}if(!((d|0)!=(h|0)|(j|0)<=(i|0))){m=h;e=(j<<1)-i|0;break e}if(h){m=h;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-g;f:{if((g|0)<=0){g=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;g=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|g)){g=d;break g}if(!((d|0)!=(g|0)|e)){g=d;break g}f=(d|0)!=(e|0);if(!(g|f)){g=d;break g}if(!((g|0)<=(j|0)|e)){g=(j<<1)-g|0;d=0;break g}if(!((g|0)>=(j|0)|f)){g=(j<<1)-g|0;break g}if(!((d|0)!=(g|0)|(e|0)>=(j|0))){g=d;d=(j<<1)-e|0;break g}if(g){d=e;break g}g=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];h=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=h;i=k+40|0;h=k+32|0;m=k+24|0;Ya(i,p,h,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=g;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Ya(i,p,h,m);d=J[k+44>>2];g=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(g|0)){g=g-J[a+80>>2]|0;break j}if((0-e|0)<=(g|0)){break j}g=J[a+80>>2]+g|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;h=l>>31;h=(h^l)-h|0;m=h>>>0>(e^2147483647)>>>0?2147483647:e+h|0;e=d>>31;e=(e^d)-e|0;h=g>>31;h=(h^g)-h|0;e=m>>>0>=(h>>>0>(e^2147483647)>>>0?2147483647:e+h|0)>>>0;Ca(o,e);i=i<<2;g=e?g:l;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?d:f;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function nk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-48|0;ba=k;d=J[a+8>>2];if(d-2>>>0<=28){J[a+76>>2]=d;e=-1<<d;d=-2-e|0;J[a+84>>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;za(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;i=J[k+8>>2];e=i>>31;g=(d^f)-d+((e^i)-e)|0;l=J[k+16>>2];d=l>>31;e=(d^l)-d|0;d=0;m=e;e=e+g|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+92>>2];g=j;break b}j=J[a+92>>2];g=j>>31;f=Il(Hl(j,g,f,f>>31),ca,e,d);h=f>>31;g=Il(Hl(j,g,i,i>>31),ca,e,d);d=g>>31;d=(f^h)-h+((d^g)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((g|0)>=0){i=f+j|0;h=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;h=(d^f)-d|0;break c}d=f>>31;h=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(h|i)){break e}if(!((d|0)!=(h|0)|i)){m=h;e=h;break e}if(!((d|0)!=(i|0)|h)){m=i;e=i;break e}if(!((h|0)<=(j|0)|i)){m=(j<<1)-h|0;e=0;break e}if(!((d|0)!=(i|0)|(h|0)>=(j|0))){m=(j<<1)-h|0;e=i;break e}if(!((d|0)!=(h|0)|(j|0)<=(i|0))){m=h;e=(j<<1)-i|0;break e}if(h){m=h;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-g;f:{if((g|0)<=0){g=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;g=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|g)){g=d;break g}if(!((d|0)!=(g|0)|e)){g=d;break g}f=(d|0)!=(e|0);if(!(g|f)){g=d;break g}if(!((g|0)<=(j|0)|e)){g=(j<<1)-g|0;d=0;break g}if(!((g|0)>=(j|0)|f)){g=(j<<1)-g|0;break g}if(!((d|0)!=(g|0)|(e|0)>=(j|0))){g=d;d=(j<<1)-e|0;break g}if(g){d=e;break g}g=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];h=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=h;i=k+40|0;h=k+32|0;m=k+24|0;Ya(i,p,h,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=g;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Ya(i,p,h,m);d=J[k+44>>2];g=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(g|0)){g=g-J[a+80>>2]|0;break j}if((0-e|0)<=(g|0)){break j}g=J[a+80>>2]+g|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;h=l>>31;h=(h^l)-h|0;m=h>>>0>(e^2147483647)>>>0?2147483647:e+h|0;e=d>>31;e=(e^d)-e|0;h=g>>31;h=(h^g)-h|0;e=m>>>0>=(h>>>0>(e^2147483647)>>>0?2147483647:e+h|0)>>>0;Ca(o,e);i=i<<2;g=e?g:l;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?d:f;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=J[a+48>>2];J[a+52>>2]=e;a:{if((e|0)!=J[a+56>>2]){J[e>>2]=b;J[a+52>>2]=e+4;break a}d=oa(4);J[d>>2]=b;c=d+4|0;J[a+56>>2]=c;J[a+52>>2]=c;J[a+48>>2]=d;if(!e){break a}na(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=J[J[a+4>>2]+28>>2];k=J[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-P(g,3)|0?-1:2)+b|0;j=J[c+(e<<2)>>2];if((j|0)==-1){return 0}b=J[a+36>>2];g=b+(k>>>3&536870908)|0;d=J[g>>2];c=1<<k;if(!(d&c)){J[g>>2]=c|d;mb(a+8|0,k,i);b=J[a+36>>2]}d=(j>>>3&536870908)+b|0;c=J[d>>2];b=1<<j;if(!(c&b)){J[d>>2]=b|c;mb(a+8|0,j,e)}f=J[a+52>>2];if((f|0)==J[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=J[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=J[a+24>>2]+(c>>>3&268435452)|0;d=J[g>>2];c=1<<c;if(d&c){break c}J[g>>2]=c|d;h=J[a+4>>2];c=J[J[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=J[a+36>>2]+(c>>>3&536870908)|0;i=J[j>>2];e=1<<c;if(i&e){break e}f:{g=J[J[h+40>>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|J[J[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=J[J[J[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}J[j>>2]=e|i;mb(k,c,d);h=J[a+4>>2];break e}J[j>>2]=e|i;mb(k,c,d);h=J[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|J[J[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=J[J[J[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;f=J[a+24>>2];e=c>>>5|0;j=J[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|J[J[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=J[J[J[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(J[J[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=J[J[J[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=J[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=J[f+(e<<2)>>2];d=1<<d;if(!(j&d)){break i}}if(g){break j}d=1<<i;f=J[a+24>>2];e=i>>>5|0;j=J[f+(e<<2)>>2];if(!(d&j)){break d}}f=J[a+52>>2]-4|0;J[a+52>>2]=f;break b}if(g){b=c;break d}if(J[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=J[a+52>>2];J[h-4>>2]=b;if(J[a+56>>2]!=(h|0)){J[h>>2]=c;f=h+4|0;break c}m:{i=J[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=oa(e<<2)}else{d=0}b=d+(g<<2)|0;J[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;J[b>>2]=J[h>>2];if((h|0)!=(i|0)){continue}break}}J[a+56>>2]=d+(e<<2);J[a+52>>2]=f;J[a+48>>2]=b;if(!i){break b}na(i);f=J[a+52>>2];break b}qa();B()}xa();B()}J[(e<<2)+f>>2]=d|j;c=J[J[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}J[a+52>>2]=f}if(J[a+48>>2]!=(f|0)){continue}break}}return 1}function cg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=J[a+8>>2];d=J[a+4>>2];if((h-d|0)/136>>>0>=b>>>0){a:{if(!b){break a}c=d;f=b&7;if(f){while(1){Ra(c);c=c+136|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}d=P(b,136)+d|0;if((b-1&536870911)>>>0<7){break a}while(1){Ra(c);Ra(c+136|0);Ra(c+272|0);Ra(c+408|0);Ra(c+544|0);Ra(c+680|0);Ra(c+816|0);Ra(c+952|0);c=c+1088|0;if((c|0)!=(d|0)){continue}break}}J[a+4>>2]=d;return}b:{c:{d:{c=J[a>>2];f=(d-c|0)/136|0;g=f+b|0;if(g>>>0<31580642){d=(h-c|0)/136|0;c=d<<1;g=d>>>0>=15790320?31580641:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=31580642){break d}i=oa(P(g,136))}d=P(f,136)+i|0;c=d;f=b&7;if(f){while(1){Ra(c);c=c+136|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}h=P(b,136)+d|0;if((b-1&536870911)>>>0>=7){while(1){Ra(c);Ra(c+136|0);Ra(c+272|0);Ra(c+408|0);Ra(c+544|0);Ra(c+680|0);Ra(c+816|0);Ra(c+952|0);c=c+1088|0;if((h|0)!=(c|0)){continue}break}}f=P(g,136)+i|0;c=J[a+4>>2];e=J[a>>2];if((c|0)==(e|0)){break c}while(1){d=d-136|0;c=c-136|0;J[d>>2]=J[c>>2];J[d+4>>2]=J[c+4>>2];J[d+8>>2]=J[c+8>>2];J[d+12>>2]=J[c+12>>2];J[c+12>>2]=0;J[c+4>>2]=0;J[c+8>>2]=0;J[d+16>>2]=J[c+16>>2];J[d+20>>2]=J[c+20>>2];J[d+24>>2]=J[c+24>>2];J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;b=K[c+28|0];J[d+40>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;H[d+28|0]=b;J[d+32>>2]=J[c+32>>2];J[d+36>>2]=J[c+36>>2];J[d+40>>2]=J[c+40>>2];J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[d+52>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+44>>2]=J[c+44>>2];J[d+48>>2]=J[c+48>>2];J[d+52>>2]=J[c+52>>2];J[c+52>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;b=d- -64|0;J[b>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+56>>2]=J[c+56>>2];J[d+60>>2]=J[c+60>>2];i=b;b=c- -64|0;J[i>>2]=J[b>>2];J[b>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[d+68>>2]=J[c+68>>2];b=J[c+72>>2];J[d+84>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+72>>2]=b;J[d+76>>2]=J[c+76>>2];J[d+80>>2]=J[c+80>>2];J[d+84>>2]=J[c+84>>2];J[c+84>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[d+96>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+88>>2]=J[c+88>>2];J[d+92>>2]=J[c+92>>2];J[d+96>>2]=J[c+96>>2];J[c+96>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;b=K[c+100|0];J[d+112>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;H[d+100|0]=b;J[d+104>>2]=J[c+104>>2];J[d+108>>2]=J[c+108>>2];J[d+112>>2]=J[c+112>>2];J[c+112>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[d+124>>2]=0;J[d+116>>2]=0;J[d+120>>2]=0;J[d+116>>2]=J[c+116>>2];J[d+120>>2]=J[c+120>>2];J[d+124>>2]=J[c+124>>2];J[c+124>>2]=0;J[c+116>>2]=0;J[c+120>>2]=0;J[d+128>>2]=J[c+128>>2];J[d+132>>2]=J[c+132>>2];if((c|0)!=(e|0)){continue}break}J[a+8>>2]=f;e=J[a+4>>2];J[a+4>>2]=h;c=J[a>>2];J[a>>2]=d;if((c|0)==(e|0)){break b}while(1){a=e-136|0;b=J[a+116>>2];if(b){J[e-16>>2]=b;na(b)}b=J[e-32>>2];if(b){J[e-28>>2]=b;na(b)}pc(e-132|0);e=a;if((a|0)!=(c|0)){continue}break}break b}qa();B()}xa();B()}J[a+8>>2]=f;J[a+4>>2]=h;J[a>>2]=d}if(c){na(c)}}function Qj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ba+-64|0;ba=e;a:{b:{c:{d:{if(!K[a+288|0]){break d}c=1;h=da[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(da[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+288|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;wb(d+116|0,f-c>>2,e);c=oa(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Na(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Na(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Kc(c+8|0,e);Rb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;na(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){na(d)}d=J[e+24>>2];if(d){na(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;g=d;d=P(h,136);g=g+d|0;wb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}j:{k:{if(cb(J[(da[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(K[a+288|0]){d=J[a+8>>2];if((J[d+12>>2]-J[d+8>>2]|0)>4){break k}}d=1;c=ng(a,c);break j}d=0;c=mg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=pe(oa(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}c=b;b=J[a+184>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=h;c=ta(f,b,c);J[a+192>>2]=c+(d<<2);J[a+188>>2]=g+4;J[a+184>>2]=c;if(!b){break l}na(b)}a=da[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0<M[a+16>>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Ic(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}c=1}ba=e- -64|0;return c|0}qa();B()}xa();B()}function Lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ba+-64|0;ba=e;a:{b:{c:{d:{if(!K[a+352|0]){break d}c=1;h=da[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(da[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+352|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;wb(d+116|0,f-c>>2,e);c=oa(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Na(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Na(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Kc(c+8|0,e);Rb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;na(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){na(d)}d=J[e+24>>2];if(d){na(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;g=d;d=P(h,136);g=g+d|0;wb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}j:{k:{if(cb(J[(da[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(K[a+352|0]){d=J[a+8>>2];if((J[d+12>>2]-J[d+8>>2]|0)>4){break k}}d=1;c=ng(a,c);break j}d=0;c=mg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=pe(oa(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}c=b;b=J[a+184>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=h;c=ta(f,b,c);J[a+192>>2]=c+(d<<2);J[a+188>>2]=g+4;J[a+184>>2]=c;if(!b){break l}na(b)}a=da[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0<M[a+16>>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Ic(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}c=1}ba=e- -64|0;return c|0}qa();B()}xa();B()}function oc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=ba-16|0;ba=j;J[a+124>>2]=J[a+124>>2]+1;h=-1;d=J[a+120>>2];c=-1;a:{if((d|0)==-1){break a}c=d+1|0;h=(c>>>0)%3|0?c:d-2|0;c=d-1|0;if((d>>>0)%3|0){break a}c=d+2|0}e=J[a+104>>2];f=J[a+92>>2];g=f+(h<<2)|0;k=e+(J[g>>2]<<2)|0;i=J[k>>2];b:{c:{switch(b|0){case 0:case 1:J[k>>2]=i-1;d=(J[(c<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;if((b|0)!=1){break b}g=0;d:{if((c|0)==-1){d=0;break d}d=0;c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}while(1){e:{e=J[a+64>>2];if(da[J[J[e>>2]+36>>2]](e,(c>>>0)/3|0)|0){break e}d=d+1|0;e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break e}c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}}break}e=J[a+104>>2];f=J[a+92>>2]}J[(J[(J[a+120>>2]<<2)+f>>2]<<2)+e>>2]=d+1;f:{if((h|0)==-1){break f}c=J[J[J[a+88>>2]+12>>2]+(h<<2)>>2];if((c|0)==-1){break f}e=J[a+108>>2]-e>>2;while(1){f=J[a+64>>2];d=(c>>>0)/3|0;if(da[J[J[f>>2]+36>>2]](f,d)|0){break f}f=c+1|0;J[J[a+92>>2]+(((f>>>0)%3|0?f:c-2|0)<<2)>>2]=e;g=g+1|0;f=J[a+88>>2];g:{if((P(d,3)|0)!=(c|0)){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break f}}c=J[J[f+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}break}}J[j+12>>2]=g+1;h:{c=J[a+108>>2];f=J[a+112>>2];if(c>>>0<f>>>0){J[c>>2]=J[j+12>>2];J[a+108>>2]=c+4;break h}i:{d=c;c=J[a+104>>2];d=d-c|0;h=d>>2;e=h+1|0;if(e>>>0<1073741824){f=f-c|0;g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0<g>>>0?g:e;if(e){if(e>>>0>=1073741824){break i}f=oa(e<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=J[j+12>>2];g=e<<2;e=ta(f,c,d);J[a+112>>2]=g+e;J[a+108>>2]=h+4;J[a+104>>2]=e;if(c){na(c)}break h}qa();B()}xa();B()}break b;case 5:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2;break b;case 3:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-1;break b;case 7:break c;default:break b}}d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2}j:{k:{c=J[a+116>>2];l:{if((c|0)==-1){break l}h=J[(c<<2)+11184>>2];c=J[a+132>>2];d=(c|0)>(i|0)?i:c;c=J[a+128>>2];c=J[a+136>>2]+P((c|0)<=(i|0)?d-c|0:0,12)|0;e=J[c+4>>2];d=J[c+8>>2];if(e>>>0<d>>>0){J[e>>2]=h;J[c+4>>2]=e+4;break l}f=e;e=J[c>>2];i=f-e|0;g=i>>2;f=g+1|0;if(f>>>0>=1073741824){break k}d=d-e|0;k=d>>>1|0;f=d>>>0>=2147483644?1073741823:f>>>0<k>>>0?k:f;if(f){if(f>>>0>=1073741824){break j}d=oa(f<<2)}else{d=0}g=d+(g<<2)|0;J[g>>2]=h;d=ta(d,e,i);J[c>>2]=d;J[c+4>>2]=g+4;J[c+8>>2]=d+(f<<2);if(!e){break l}na(e)}J[a+116>>2]=b;ba=j+16|0;return}qa();B()}xa();B()}function Wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=J[a+48>>2];J[a+52>>2]=f;a:{if((f|0)!=J[a+56>>2]){J[f>>2]=b;J[a+52>>2]=f+4;break a}d=oa(4);J[d>>2]=b;c=d+4|0;J[a+56>>2]=c;J[a+52>>2]=c;J[a+48>>2]=d;if(!f){break a}na(f)}e=-1;d=J[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=J[J[d>>2]+(i<<2)>>2]}b:{h=b-P(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=J[J[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=J[a+36>>2];f=c+(e>>>3&536870908)|0;g=J[f>>2];d=1<<e;if(!(g&d)){J[f>>2]=d|g;mb(a+8|0,e,i);c=J[a+36>>2]}g=(j>>>3&536870908)+c|0;d=J[g>>2];c=1<<j;if(!(d&c)){J[g>>2]=c|d;mb(a+8|0,j,(h?-1:2)+b|0)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=J[a+24>>2]+(d>>>3&268435452)|0;g=J[f>>2];d=1<<d;if(g&d){break d}J[f>>2]=d|g;while(1){i=J[a+4>>2];e=J[J[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=J[a+36>>2]+(e>>>3&536870908)|0;f=J[h>>2];g=1<<e;if(f&g){break f}g:{d=J[J[i+24>>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=J[J[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}J[h>>2]=f|g;mb(j,e,b);break f}J[h>>2]=f|g;mb(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=J[J[J[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;e=J[a+24>>2];f=c>>>5|0;i=J[e+(f<<2)>>2];break e}c=-1;g=J[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=J[J[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=J[J[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=J[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=J[e+(f<<2)>>2];d=1<<d;if(!(i&d)){break k}}if(!g){d=1<<h;e=J[a+24>>2];f=h>>>5|0;i=J[e+(f<<2)>>2];if(!(d&i)){break e}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break c}if(g){b=c;break e}if(J[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=J[a+52>>2];J[e-4>>2]=b;if(J[a+56>>2]!=(e|0)){J[e>>2]=c;c=e+4|0;break d}l:{h=J[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=oa(f<<2)}else{d=0}b=d+(g<<2)|0;J[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];if((e|0)!=(h|0)){continue}break}}J[a+56>>2]=d+(f<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!h){break c}na(h);c=J[a+52>>2];break c}qa();B()}xa();B()}J[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function Mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+4|0;if((d|0)!=(b|0)){ic(d,J[b>>2],b+4|0);f=J[b+12>>2];k=b+16|0;d=0;h=a+16|0;a:{if(!J[h+8>>2]){break a}e=J[h>>2];j=h+4|0;J[h>>2]=j;J[J[h+4>>2]+8>>2]=0;J[h+4>>2]=0;J[h+8>>2]=0;c=J[e+4>>2];g=c?c:e;if(!g){nb(h,g);break a}e=J[g+8>>2];b:{if(!e){break b}c=J[e>>2];if((g|0)==(c|0)){J[e>>2]=0;d=e;c=J[e+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}break b}J[e+4>>2]=0;d=e;if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}}c:{if((f|0)==(k|0)){i=g;break c}c=f;while(1){i=d;J[g+16>>2]=J[c+16>>2];if((c|0)!=(g|0)){ic(g+20|0,J[c+20>>2],c+24|0)}f=j;d=f;e=J[d>>2];d:{if(!e){break d}l=J[g+16>>2];while(1){f=e;if((l|0)<J[e+16>>2]){d=f;e=J[d>>2];if(e){continue}break d}e=J[f+4>>2];if(e){continue}break}d=f+4|0}J[g+8>>2]=f;J[g>>2]=0;J[g+4>>2]=0;J[d>>2]=g;f=J[J[h>>2]>>2];if(f){J[h>>2]=f;g=J[d>>2]}sb(J[h+4>>2],g);J[h+8>>2]=J[h+8>>2]+1;d=0;e:{if(!i){break e}e=J[i+8>>2];if(!e){break e}f=J[e>>2];if((i|0)==(f|0)){J[e>>2]=0;d=e;f=J[e+4>>2];if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break e}J[e+4>>2]=0;d=e;if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}e=J[c+4>>2];f:{if(e){while(1){f=e;e=J[e>>2];if(e){continue}break f}}while(1){f=J[c+8>>2];e=J[f>>2]!=(c|0);c=f;if(e){continue}break}}if(!i){break c}g=i;c=f;if((k|0)!=(c|0)){continue}break}}nb(h,i);if(!d){break a}while(1){c=J[d+8>>2];if(c){d=c;continue}break}nb(h,d)}if((f|0)!=(k|0)){while(1){n=ba-16|0;ba=n;i=oa(32);g=f+16|0;d=J[g>>2];m=i+24|0;J[m>>2]=0;J[m+4>>2]=0;J[i+16>>2]=d;l=i+20|0;J[l>>2]=m;e=h+4|0;c=J[g+4>>2];j=g+8|0;if((c|0)!=(j|0)){while(1){d=c+16|0;Qg(n+8|0,l,m,d,d);g=J[c+4>>2];g:{if(g){while(1){d=g;g=J[d>>2];if(g){continue}break g}}while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}}c=d;if((j|0)!=(c|0)){continue}break}}c=e;d=J[c>>2];h:{if(!d){break h}g=J[i+16>>2];while(1){e=d;if((g|0)<J[e+16>>2]){c=e;d=J[c>>2];if(d){continue}break h}d=J[e+4>>2];if(d){continue}break}c=e+4|0}J[i+8>>2]=e;J[i>>2]=0;J[i+4>>2]=0;J[c>>2]=i;d=i;e=J[J[h>>2]>>2];if(e){J[h>>2]=e;d=J[c>>2]}sb(J[h+4>>2],d);J[h+8>>2]=J[h+8>>2]+1;ba=n+16|0;e=J[f+4>>2];i:{if(e){while(1){c=e;e=J[c>>2];if(e){continue}break i}}while(1){c=J[f+8>>2];d=J[c>>2]!=(f|0);f=c;if(d){continue}break}}f=c;if((c|0)!=(k|0)){continue}break}}ic(a+28|0,J[b+24>>2],b+28|0)}}function nl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=ba-16|0;ba=m;f=J[a+4>>2];a:{b:{if(f){if(da[J[J[a>>2]+52>>2]](a,b,J[J[f+4>>2]+80>>2])|0){break b}break a}if(!(da[J[J[a>>2]+52>>2]](a,b,0)|0)){break a}}n=1;if(!K[a+28|0]){break a}d=J[a+32>>2];i=J[a+8>>2];c=J[i+80>>2];f=0;J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;c:{d:{e:{if(c){if(c>>>0>=1073741824){break e}c=c<<2;f=oa(c);pa(f,0,c)}e=J[b+4>>2];c=J[b>>2];f:{if((e|0)==(c|0)){break f}b=e-c>>2;if(K[i+84|0]){e=b>>>0<=1?1:b;h=e&3;b=0;if(e-1>>>0>=3){j=e&-4;e=0;while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;k=b|1;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|2;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|3;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}if(!h){break f}while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}break f}g=b>>>0<=1?1:b;j=g&3;h=J[i+68>>2];e=0;b=0;if(g-1>>>0>=3){k=g&-4;g=0;while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;l=b|1;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|2;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|3;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;b=b+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}if(!j){break f}while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;b=b+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}b=J[a+4>>2];g:{if(!K[d+84|0]){break g}c=J[J[b+4>>2]+80>>2];H[d+84|0]=0;g=J[d+68>>2];e=J[d+72>>2]-g>>2;if(e>>>0<c>>>0){Ma(d+68|0,c-e|0,2736);b=J[a+4>>2];break g}if(c>>>0>=e>>>0){break g}J[d+72>>2]=g+(c<<2)}h=J[J[b+4>>2]+80>>2];if(!h){break d}c=J[d+68>>2];if(K[i+84|0]){a=0;b=0;if(h>>>0>=4){g=h&-4;e=0;while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];i=d|4;J[i+c>>2]=J[f+i>>2];i=d|8;J[i+c>>2]=J[f+i>>2];d=d|12;J[d+c>>2]=J[f+d>>2];b=b+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}e=h&3;if(!e){break c}while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];b=b+1|0;a=a+1|0;if((e|0)!=(a|0)){continue}break}break c}a=J[i+68>>2];e=0;b=0;if(h>>>0>=4){i=h&-4;g=0;while(1){d=b<<2;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];j=d|4;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];j=d|8;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];d=d|12;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];b=b+4|0;g=g+4|0;if((i|0)!=(g|0)){continue}break}}d=h&3;if(!d){break c}while(1){g=b<<2;J[g+c>>2]=J[(J[a+g>>2]<<2)+f>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}break c}qa();B()}if(!f){break a}}na(f)}ba=m+16|0;return n|0}function Pg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{i=a+4|0;g:{if((i|0)==(b|0)){break g}f=K[b+27|0];g=f<<24>>24<0;h=K[e+11|0];j=h<<24>>24;k=(j|0)<0;f=g?J[b+20>>2]:f;h=k?J[e+4>>2]:h;l=f>>>0<h>>>0;m=l?f:h;if(m){k=k?J[e>>2]:e;g=g?J[b+16>>2]:b+16|0;n=Ba(k,g,m);if(!n){if(f>>>0>h>>>0){break g}break f}if((n|0)>=0){break f}break g}if(f>>>0<=h>>>0){break e}}d=J[b>>2];h:{f=b;i:{if((f|0)==J[a>>2]){break i}j:{if(!d){a=b;while(1){f=J[a+8>>2];h=J[f>>2]==(a|0);a=f;if(h){continue}break}break j}a=d;while(1){f=a;a=J[f+4>>2];if(a){continue}break}}a=K[e+11|0];k=a<<24>>24;h=(k|0)<0;j=K[f+27|0];g=j<<24>>24<0;k:{a=h?J[e+4>>2]:a;j=g?J[f+20>>2]:j;l=a>>>0<j>>>0?a:j;if(l){h=Ba(g?J[f+16>>2]:f+16|0,h?J[e>>2]:e,l);if(h){break k}}if(a>>>0>j>>>0){break i}break h}if((h|0)>=0){break h}}if(!d){J[c>>2]=b;return b}J[c>>2]=f;return f+4|0}d=J[i>>2];if(!d){J[c>>2]=i;return i}e=(k|0)<0?J[e>>2]:e;b=i;while(1){f=d;d=K[f+27|0];i=d<<24>>24<0;d=i?J[f+20>>2]:d;h=d>>>0<a>>>0;l:{m:{n:{o:{g=h?d:a;p:{if(g){i=i?J[f+16>>2]:f+16|0;j=Ba(e,i,g);if(!j){if(a>>>0<d>>>0){break p}break o}if((j|0)>=0){break o}break p}if(a>>>0>=d>>>0){break n}}b=f;d=J[f>>2];if(d){continue}break b}d=Ba(i,e,g);if(d){break m}}if(h){break l}break b}if((d|0)>=0){break b}}b=f+4|0;d=J[f+4>>2];if(d){continue}break}break b}a=Ba(g,k,m);if(a){break d}}if(l){break c}break a}if((a|0)>=0){break a}}d=J[b+4>>2];q:{if(!d){a=b;while(1){f=J[a+8>>2];g=J[f>>2]!=(a|0);a=f;if(g){continue}break}break q}a=d;while(1){f=a;a=J[f>>2];if(a){continue}break}}r:{s:{if((f|0)==(i|0)){break s}g=K[f+27|0];a=g<<24>>24<0;t:{g=a?J[f+20>>2]:g;k=h>>>0>g>>>0?g:h;if(k){a=Ba((j|0)<0?J[e>>2]:e,a?J[f+16>>2]:f+16|0,k);if(a){break t}}if(h>>>0<g>>>0){break s}break r}if((a|0)>=0){break r}}if(!d){J[c>>2]=b;return b+4|0}J[c>>2]=f;return f}a=J[i>>2];if(!a){J[c>>2]=i;return i}d=(j|0)<0?J[e>>2]:e;b=i;while(1){f=a;a=K[f+27|0];e=a<<24>>24<0;a=e?J[f+20>>2]:a;i=a>>>0<h>>>0;u:{v:{w:{x:{g=i?a:h;y:{if(g){e=e?J[f+16>>2]:f+16|0;j=Ba(d,e,g);if(!j){if(a>>>0>h>>>0){break y}break x}if((j|0)>=0){break x}break y}if(a>>>0<=h>>>0){break w}}b=f;a=J[f>>2];if(a){continue}break b}a=Ba(e,d,g);if(a){break v}}if(i){break u}break b}if((a|0)>=0){break b}}b=f+4|0;a=J[f+4>>2];if(a){continue}break}}J[c>>2]=f;return b}J[c>>2]=b;J[d>>2]=b;return d}function Dc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{d=b;g=J[b>>2];if(g){c=J[b+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}break}}g=J[d+4>>2];if(g){break b}g=0;e=1;break a}J[g+8>>2]=J[d+8>>2];e=0}f=J[d+8>>2];c=J[f>>2];c:{if((d|0)==(c|0)){J[f>>2]=g;if((a|0)==(d|0)){c=0;a=g;break c}c=J[f+4>>2];break c}J[f+4>>2]=g}h=!K[d+12|0];if((b|0)!=(d|0)){f=J[b+8>>2];J[d+8>>2]=f;J[f+((J[J[b+8>>2]>>2]!=(b|0))<<2)>>2]=d;f=J[b>>2];J[d>>2]=f;J[f+8>>2]=d;f=J[b+4>>2];J[d+4>>2]=f;if(f){J[f+8>>2]=d}H[d+12|0]=K[b+12|0];a=(a|0)==(b|0)?d:a}if(!(h|!a)){if(e){while(1){b=K[c+12|0];d:{e=J[c+8>>2];if(J[e>>2]!=(c|0)){if(!b){H[c+12|0]=1;H[e+12|0]=0;d=J[e+4>>2];b=J[d>>2];J[e+4>>2]=b;if(b){J[b+8>>2]=e}J[d+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=d;J[d>>2]=e;J[e+8>>2]=d;b=J[c>>2];a=(b|0)==(a|0)?c:a;c=J[b+4>>2]}e:{f:{d=J[c>>2];g:{if(!(K[d+12|0]?0:d)){b=J[c+4>>2];if(K[b+12|0]?0:b){break g}H[c+12|0]=0;c=J[c+8>>2];h:{if((c|0)==(a|0)){c=a;break h}if(K[c+12|0]){break d}}H[c+12|0]=1;return}b=J[c+4>>2];if(!b){break f}}if(K[b+12|0]){break f}d=c;break e}H[d+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c+4>>2];a=J[b>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b>>2]=c;J[c+8>>2]=b;return}if(!b){H[c+12|0]=1;H[e+12|0]=0;b=J[c+4>>2];J[e>>2]=b;if(b){J[b+8>>2]=e}J[c+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=c;J[c+4>>2]=e;J[e+8>>2]=c;a=(a|0)==(e|0)?c:a;c=J[e>>2]}b=J[c>>2];i:{if(!(!b|K[b+12|0])){d=c;break i}d=J[c+4>>2];if(!(K[d+12|0]?0:d)){H[c+12|0]=0;c=J[c+8>>2];if((a|0)!=(c|0)?K[c+12|0]:0){break d}H[c+12|0]=1;return}if(b){if(!K[b+12|0]){d=c;break i}d=J[c+4>>2]}H[d+12|0]=1;H[c+12|0]=0;a=J[d>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c>>2];a=J[b+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b+4>>2]=c;J[c+8>>2]=b;return}b=J[c+8>>2];c=J[((J[b>>2]==(c|0))<<2)+b>>2];continue}}H[g+12|0]=1}}function wc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ba-32|0;ba=h;a:{b:{if(J[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=oa(b<<2);J[h+24>>2]=b;J[h+20>>2]=0;J[h+16>>2]=c;b=J[a>>2];J[h+12>>2]=0;J[h+8>>2]=b;c=J[a+4>>2];J[h+4>>2]=c&31;J[h>>2]=b+(c>>>3&536870908);e=ba-32|0;ba=e;i=J[h+4>>2];g=J[h+12>>2];j=J[h>>2];d=J[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=J[h+20>>2];c=b+f|0;J[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){J[J[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=J[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<<g&-1>>>i-f;J[c>>2]=J[c>>2]&(i^-1)|i&J[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){ta(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;J[g>>2]=J[g>>2]&(b^-1)|b&J[c+d>>2];break c}J[e+28>>2]=g;J[e+24>>2]=d;J[e+20>>2]=i;J[e+16>>2]=j;J[e+12>>2]=f;J[e+8>>2]=c;b=J[e+28>>2];c=J[e+24>>2];g=(J[e+20>>2]-b|0)+(J[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=J[e+12>>2];d=J[e+8>>2];break d}e:{if(!b){b=J[e+12>>2];break e}d=J[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=J[e+8>>2];m=J[l>>2]&(-1<<d&-1>>>j-i^-1);j=J[c>>2]&(-1<<b&-1>>>k-f);J[l>>2]=m|(b>>>0<d>>>0?j<<d-b:j>>>b-d|0);c=d+i|0;b=c&31;J[e+12>>2]=b;d=l+(c>>>3&536870908)|0;J[e+8>>2]=d;c=f-i|0;if((c|0)>0){J[d>>2]=J[d>>2]&(-1>>>32-c^-1)|j>>>i+J[e+28>>2];J[e+12>>2]=c;b=c}g=g-f|0;c=J[e+24>>2]+4|0;J[e+24>>2]=c}i=-1<<b;f=32-b|0;if((g|0)>=32){j=i^-1;while(1){d=J[e+8>>2];c=J[c>>2];J[d>>2]=j&J[d>>2]|c<<b;J[e+8>>2]=d+4;J[d+4>>2]=i&J[d+4>>2]|c>>>f;c=J[e+24>>2]+4|0;J[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=J[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=J[d>>2]&(i&-1>>>j-f^-1);i=J[c>>2]&-1>>>32-g;J[d>>2]=j|i<<b;b=b+f|0;c=b&31;J[e+12>>2]=c;d=(b>>>3&536870908)+d|0;J[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}J[d>>2]=J[d>>2]&(-1>>>32-b^-1)|i>>>f;J[e+12>>2]=b}J[e+4>>2]=b;J[e>>2]=d}ba=e+32|0;b=J[a>>2];J[a>>2]=J[h+16>>2];J[h+16>>2]=b;c=J[a+4>>2];J[a+4>>2]=J[h+20>>2];J[h+20>>2]=c;c=J[a+8>>2];J[a+8>>2]=J[h+24>>2];J[h+24>>2]=c;if(!b){break b}na(b)}ba=h+32|0;return}qa();B()}function Yj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=ba-16|0;ba=g;b=J[a+64>>2];a:{if(!b){break a}i=da[J[J[b>>2]+32>>2]](b)|0;if(!i){break a}n=(J[i+28>>2]-J[i+24>>2]>>2)-J[i+44>>2]|0;b=J[a+56>>2];d=J[b+8>>2];b:{if((J[b+12>>2]-d|0)<5){break b}J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;c:{d:{while(1){e:{f:{if(!J[J[(c<<2)+d>>2]+56>>2]){break f}j=da[J[J[a>>2]+56>>2]](a,c)|0;if(!j){break f}if(J[g+8>>2]!=(f|0)){J[f>>2]=j;f=f+4|0;J[g+4>>2]=f;break f}b=J[g>>2];h=f-b|0;f=h>>2;d=f+1|0;if(d>>>0>=1073741824){break e}e=h>>>1|0;d=h>>>0>=2147483644?1073741823:d>>>0<e>>>0?e:d;if(d){if(d>>>0>=1073741824){break d}e=oa(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=j;h=ta(e,b,h);J[g+8>>2]=h+(d<<2);f=f+4|0;J[g+4>>2]=f;J[g>>2]=h;if(!b){break f}na(b)}m=J[a+56>>2];d=J[m+8>>2];c=c+1|0;if((c|0)<J[m+12>>2]-d>>2){continue}break c}break}qa();B()}xa();B()}j=J[g>>2];o=J[i+24>>2];b=J[i+28>>2];if((o|0)!=(b|0)){b=b-o>>2;q=b>>>0<=1?1:b;b=f-j>>2;r=b>>>0<=1?1:b;while(1){e=J[(p<<2)+o>>2];if((e|0)!=-1){g:{if((e|0)<0){c=(e>>>0)%3|0;b=-1;break g}b=(e>>>0)/3|0;c=e-P(b,3)|0;b=J[(J[m+96>>2]+P(b,12)|0)+(c<<2)>>2]}h:{i:{if(c){c=e-1|0;break i}c=e+2|0;if((c|0)!=-1){break i}l=0;break h}l=0;c=J[J[i+12>>2]+(c<<2)>>2];if((c|0)==-1){break h}j:{if((c>>>0)%3|0){d=c-1|0;break j}d=c+2|0;if((d|0)==-1){break h}}h=e;while(1){c=(d|0)<0?-1:J[(J[m+96>>2]+P((d>>>0)/3|0,12)|0)+((d>>>0)%3<<2)>>2];k:{if((b|0)==(c|0)){c=0;if((f|0)==(j|0)){c=b;break k}l:{while(1){k=J[J[(c<<2)+j>>2]+28>>2];if(J[k+(d<<2)>>2]!=J[k+(h<<2)>>2]){break l}c=c+1|0;if((r|0)!=(c|0)){continue}break}c=b;break k}c=b}l=l+1|0}if((d|0)==(e|0)|(d|0)==-1){break h}m:{if((d>>>0)%3|0){b=d-1|0;break m}b=d+2|0;if((b|0)==-1){break h}}k=J[J[i+12>>2]+(b<<2)>>2];if((k|0)==-1){break h}b=c;h=d;c=k+((k>>>0)%3|0?-1:2)|0;d=c;if((c|0)!=-1){continue}break}}c=1;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;n:{if((b|0)==-1){break n}b=J[J[i+12>>2]+(b<<2)>>2];if((b|0)==-1){break n}c=b+1|0;c=(((c>>>0)%3|0?c:b-2|0)|0)==-1}n=(l+n|0)-((c^-1)&(l|0)!=0)|0}p=p+1|0;if((q|0)!=(p|0)){continue}break}}if(!j){break b}na(j)}J[a+52>>2]=n}ba=g+16|0}function Ze(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ba-128|0;ba=j;a:{b:{c:{if(!Hb(f,g,h,i,0,0,0,0)){break c}l=i&65535;n=i>>>16&32767;d:{e:{if((n|0)!=32767){k=4;if(n){break e}k=f|h|(g|l)?3:2;break d}k=!(f|h|(g|l))}}s=e>>>16|0;o=s&32767;if((o|0)==32767){break c}if(k){break b}}Ea(j+16|0,b,c,d,e,f,g,h,i);b=J[j+16>>2];d=J[j+20>>2];e=J[j+24>>2];c=J[j+28>>2];Ne(j,b,d,e,c,b,d,e,c);d=J[j+8>>2];e=J[j+12>>2];h=J[j>>2];i=J[j+4>>2];break a}k=d;p=e&2147483647;n=h;m=i&2147483647;if((Hb(b,c,k,p,f,g,h,m)|0)<=0){if(Hb(b,c,k,p,f,g,n,m)){h=b;i=c;break a}Ea(j+112|0,b,c,d,e,0,0,0,0);d=J[j+120>>2];e=J[j+124>>2];h=J[j+112>>2];i=J[j+116>>2];break a}q=i>>>16&32767;if(o){i=c;h=b}else{Ea(j+96|0,b,c,k,p,0,0,0,1081540608);k=J[j+104>>2];h=J[j+108>>2];p=h;o=(h>>>16|0)-120|0;i=J[j+100>>2];h=J[j+96>>2]}if(!q){Ea(j+80|0,f,g,n,m,0,0,0,1081540608);n=J[j+88>>2];f=J[j+92>>2];m=f;q=(f>>>16|0)-120|0;g=J[j+84>>2];f=J[j+80>>2]}r=n;t=m&65535|65536;p=p&65535|65536;if((o|0)>(q|0)){while(1){m=k-r|0;l=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=m-l|0;l=(p-((k>>>0<r>>>0)+t|0)|0)-(l>>>0>m>>>0)|0;f:{if((l|0)>0|(l|0)>=0){k=h;h=h-f|0;i=i-((f>>>0>k>>>0)+g|0)|0;if(!(h|n|(i|l))){Ea(j+32|0,b,c,d,e,0,0,0,0);d=J[j+40>>2];e=J[j+44>>2];h=J[j+32>>2];i=J[j+36>>2];break a}l=l<<1|n>>>31;k=n<<1|i>>>31;break f}l=p<<1|k>>>31;k=k<<1|i>>>31}p=l;l=i<<1|h>>>31;h=h<<1;i=l;o=o-1|0;if((o|0)>(q|0)){continue}break}o=q}m=k-r|0;l=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=m-l|0;l=(p-((k>>>0<r>>>0)+t|0)|0)-(l>>>0>m>>>0)|0;m=l;g:{if((l|0)<0){n=k;m=p;break g}k=h;h=h-f|0;i=i-((f>>>0>k>>>0)+g|0)|0;if(h|n|(i|m)){break g}Ea(j+48|0,b,c,d,e,0,0,0,0);d=J[j+56>>2];e=J[j+60>>2];h=J[j+48>>2];i=J[j+52>>2];break a}if((m|0)==65535|m>>>0<65535){while(1){b=i>>>31|0;o=o-1|0;p=i<<1|h>>>31;h=h<<1;i=p;c=b;b=m<<1|n>>>31;n=c|n<<1;m=b;if(b>>>0<65536){continue}break}}b=s&32768;if((o|0)<=0){Ea(j- -64|0,h,i,n,m&65535|(b|o+120)<<16,0,0,0,1065811968);d=J[j+72>>2];e=J[j+76>>2];h=J[j+64>>2];i=J[j+68>>2];break a}d=n;e=m&65535|(b|o)<<16}J[a>>2]=h;J[a+4>>2]=i;J[a+8>>2]=d;J[a+12>>2]=e;ba=j+128|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ba+-64|0;ba=f;a:{b:{c:{d:{e:{f:{if(!b){break f}e=rb(c);if(e>>>0>=2147483632){break e}g:{h:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+56>>2]=a|-2147483648;J[f+48>>2]=g;a=e+g|0;break h}H[f+59|0]=e;g=f+48|0;a=e+g|0;if(!e){break g}}ua(g,c,e)}H[a|0]=0;e=rb(d);if(e>>>0>=2147483632){break d}i:{j:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+40>>2]=a|-2147483648;J[f+32>>2]=g;a=e+g|0;break j}H[f+43|0]=e;g=f+32|0;a=e+g|0;if(!e){break i}}ua(g,d,e)}H[a|0]=0;e=rb(c);if(e>>>0>=2147483632){break c}k:{l:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+24>>2]=a|-2147483648;J[f+16>>2]=g;J[f+20>>2]=e;a=e+g|0;break l}H[f+27|0]=e;g=f+16|0;a=e+g|0;if(!e){break k}}ua(g,c,e)}H[a|0]=0;c=rb(d);if(c>>>0>=2147483632){break b}m:{n:{if(c>>>0>=11){e=(c|15)+1|0;a=oa(e);J[f+8>>2]=e|-2147483648;J[f>>2]=a;J[f+4>>2]=c;g=a+c|0;break n}H[f+11|0]=c;g=c+f|0;a=f;if(!c){break m}}ua(a,d,c)}H[g|0]=0;e=ba-48|0;ba=e;d=ob(b,f+16|0);if((d|0)!=(b+4|0)){a=J[d+4>>2];o:{if(!a){a=d;while(1){c=J[a+8>>2];g=J[c>>2]!=(a|0);a=c;if(g){continue}break}break o}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;na(a)}if(H[d+27|0]<0){na(J[d+16>>2])}na(d)}g=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=K[f+11|0];d=c<<24>>24;p:{q:{h=J[f+4>>2];a=(d|0)<0?h:c;if(a){if((a|0)<0){break q}c=a;g=oa(a);a=pa(g,0,a);c=c+a|0;J[e+8>>2]=c;J[e+4>>2]=c;J[e>>2]=a;h=J[f+4>>2];c=K[f+11|0];d=c}a=d<<24>>24<0;ua(g,a?J[f>>2]:f,a?h:c);break p}qa();B()}r:{if(H[f+27|0]>=0){J[e+24>>2]=J[f+24>>2];a=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=a;break r}Ga(e+16|0,J[f+16>>2],J[f+20>>2])}Ob(e+28|0,e);a=e+16|0;Cc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;na(a)}ba=e+48|0;if(H[f+11|0]<0){na(J[f>>2])}if(H[f+27|0]<0){na(J[f+16>>2])}if(H[f+43|0]<0){na(J[f+32>>2])}if(H[f+59|0]>=0){break f}na(J[f+48>>2])}ba=f- -64|0;a=(b|0)!=0;break a}gb();B()}gb();B()}gb();B()}gb();B()}return a|0}function nf(a,b){var c=0,d=0,e=0,f=0;f=ba-16|0;ba=f;e=oa(32);J[f>>2]=e;J[f+4>>2]=30;J[f+8>>2]=-2147483616;c=K[1240]|K[1241]<<8|(K[1242]<<16|K[1243]<<24);d=K[1236]|K[1237]<<8|(K[1238]<<16|K[1239]<<24);H[e+22|0]=d;H[e+23|0]=d>>>8;H[e+24|0]=d>>>16;H[e+25|0]=d>>>24;H[e+26|0]=c;H[e+27|0]=c>>>8;H[e+28|0]=c>>>16;H[e+29|0]=c>>>24;c=K[1234]|K[1235]<<8|(K[1236]<<16|K[1237]<<24);d=K[1230]|K[1231]<<8|(K[1232]<<16|K[1233]<<24);H[e+16|0]=d;H[e+17|0]=d>>>8;H[e+18|0]=d>>>16;H[e+19|0]=d>>>24;H[e+20|0]=c;H[e+21|0]=c>>>8;H[e+22|0]=c>>>16;H[e+23|0]=c>>>24;c=K[1226]|K[1227]<<8|(K[1228]<<16|K[1229]<<24);d=K[1222]|K[1223]<<8|(K[1224]<<16|K[1225]<<24);H[e+8|0]=d;H[e+9|0]=d>>>8;H[e+10|0]=d>>>16;H[e+11|0]=d>>>24;H[e+12|0]=c;H[e+13|0]=c>>>8;H[e+14|0]=c>>>16;H[e+15|0]=c>>>24;c=K[1218]|K[1219]<<8|(K[1220]<<16|K[1221]<<24);d=K[1214]|K[1215]<<8|(K[1216]<<16|K[1217]<<24);H[e|0]=d;H[e+1|0]=d>>>8;H[e+2|0]=d>>>16;H[e+3|0]=d>>>24;H[e+4|0]=c;H[e+5|0]=c>>>8;H[e+6|0]=c>>>16;H[e+7|0]=c>>>24;H[e+30|0]=0;e=a+4|0;vb(e,f,b);if(H[f+11|0]<0){na(J[f>>2])}a=oa(32);J[f>>2]=a;J[f+4>>2]=29;J[f+8>>2]=-2147483616;c=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);d=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[a+21|0]=d;H[a+22|0]=d>>>8;H[a+23|0]=d>>>16;H[a+24|0]=d>>>24;H[a+25|0]=c;H[a+26|0]=c>>>8;H[a+27|0]=c>>>16;H[a+28|0]=c>>>24;c=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);d=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[a+16|0]=d;H[a+17|0]=d>>>8;H[a+18|0]=d>>>16;H[a+19|0]=d>>>24;H[a+20|0]=c;H[a+21|0]=c>>>8;H[a+22|0]=c>>>16;H[a+23|0]=c>>>24;c=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);d=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=c;H[a+13|0]=c>>>8;H[a+14|0]=c>>>16;H[a+15|0]=c>>>24;c=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);d=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;H[a+29|0]=0;vb(e,f,b);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function sd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=ba-32|0;ba=j;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;J[c>>2]=0;J[c+4>>2]=0;i=a+4|0;J[a>>2]=i;J[a+12>>2]=c;f=J[b>>2];k=b+4|0;if((f|0)!=(k|0)){while(1){g=ba-16|0;ba=g;c=f+16|0;h=Pg(a,i,g+12|0,g+8|0,c);d=J[h>>2];if(d){c=0}else{d=oa(40);e=d+16|0;a:{if(H[c+11|0]>=0){l=J[c+4>>2];J[e>>2]=J[c>>2];J[e+4>>2]=l;J[e+8>>2]=J[c+8>>2];break a}Ga(e,J[c>>2],J[c+4>>2])}Ob(d+28|0,c+12|0);J[d+8>>2]=J[g+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[h>>2]=d;c=d;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;c=J[h>>2]}sb(J[a+4>>2],c);J[a+8>>2]=J[a+8>>2]+1;c=1}H[j+28|0]=c;J[j+24>>2]=d;ba=g+16|0;c=J[f+4>>2];b:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break b}}while(1){c=f;f=J[f+8>>2];if((c|0)!=J[f>>2]){continue}break}}if((f|0)!=(k|0)){continue}break}}f=J[b+12>>2];l=b+16|0;if((f|0)!=(l|0)){g=a+12|0;while(1){m=oa(24);sd(m,J[f+28>>2]);b=f+16|0;J[j+16>>2]=b;c:{d:{c=J[g+4>>2];e:{if(!c){d=g+4|0;b=d;break e}d=K[b+11|0];e=d<<24>>24<0;h=e?J[b>>2]:b;e=e?J[b+4>>2]:d;while(1){b=c;i=K[c+27|0];d=i<<24>>24<0;c=d?J[c+20>>2]:i;i=c>>>0<e>>>0;f:{g:{h:{i:{k=i?c:e;j:{if(k){d=d?J[b+16>>2]:b+16|0;n=Ba(h,d,k);if(!n){if(c>>>0>e>>>0){break j}break i}if((n|0)>=0){break i}break j}if(c>>>0<=e>>>0){break h}}d=b;c=J[b>>2];if(c){continue}break e}c=Ba(d,h,k);if(c){break g}}if(i){break f}break d}if((c|0)>=0){break d}}c=J[b+4>>2];if(c){continue}break}d=b+4|0}c=oa(32);h=c+16|0;e=J[j+16>>2];k:{if(H[e+11|0]>=0){i=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=i;J[h+8>>2]=J[e+8>>2];break k}Ga(h,J[e>>2],J[e+4>>2])}J[c+8>>2]=b;J[c>>2]=0;J[c+4>>2]=0;J[c+28>>2]=0;J[d>>2]=c;b=c;e=J[J[g>>2]>>2];if(e){J[g>>2]=e;b=J[d>>2]}sb(J[g+4>>2],b);J[g+8>>2]=J[g+8>>2]+1;b=1;break c}c=b;b=0}H[j+28|0]=b;J[j+24>>2]=c;c=J[j+24>>2];b=J[c+28>>2];J[c+28>>2]=m;if(b){lb(b+12|0,J[b+16>>2]);kb(b,J[b+4>>2]);na(b)}c=J[f+4>>2];l:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break l}}while(1){b=f;f=J[f+8>>2];if((b|0)!=J[f>>2]){continue}break}}if((f|0)!=(l|0)){continue}break}}ba=j+32|0;return a}function Pk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;J[a+8>>2]=e;m=a+32|0;g=J[m>>2];f=J[a+36>>2]-g>>2;a:{if(f>>>0<e>>>0){Fa(m,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=g+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){i=g;break c}f=1;i=d-1|0;q=i&1;d:{if((d|0)==2){i=g;break d}o=i&-2;i=g;while(1){j=(f<<2)+b|0;k=J[j+4>>2];j=J[j>>2];l=(j|0)<(i|0);i=l?j:i;p=(i|0)>(k|0);i=p?k:i;g=l?g:(g|0)<(j|0)?j:g;g=p?g:(g|0)<(k|0)?k:g;f=f+2|0;h=h+2|0;if((o|0)!=(h|0)){continue}break}}if(!q){break c}f=J[(f<<2)+b>>2];h=(f|0)<(i|0);i=h?f:i;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=i;f=g-i|0;g=(g>>31)-((i>>31)+(g>>>0<i>>>0)|0)|0;if(!g&f>>>0>2147483646|g){break b}f=f+1|0;J[a+20>>2]=f;g=f>>>1|0;J[a+24>>2]=g;J[a+28>>2]=0-g;if(f&1){break b}J[a+24>>2]=g-1}k=d-e|0;g=J[a+8>>2];if(!((k|0)<=0|(g|0)<=0)){p=0-e<<2;while(1){if((g|0)>0){d=k<<2;q=d+c|0;o=b+d|0;h=o+p|0;d=J[m>>2];i=0;while(1){f=d;if((g|0)>0){f=J[m>>2];g=0;while(1){j=g<<2;l=J[j+h>>2];n=J[a+16>>2];e:{if((l|0)>(n|0)){J[f+j>>2]=n;break e}j=f+j|0;n=J[a+12>>2];if((n|0)>(l|0)){J[j>>2]=n;break e}J[j>>2]=l}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}h=i<<2;g=h+q|0;h=J[h+o>>2]-J[f+h>>2]|0;J[g>>2]=h;f:{if((h|0)<J[a+28>>2]){h=h+J[a+20>>2]|0}else{if((h|0)<=J[a+24>>2]){break f}h=h-J[a+20>>2]|0}J[g>>2]=h}h=f;g=J[a+8>>2];i=i+1|0;if((g|0)>(i|0)){continue}break}}k=k-e|0;if((k|0)>0){continue}break}}i=0;d=e>>>0>1073741823?-1:e<<2;d=pa(oa(d),0,d);if((g|0)>0){e=J[a+32>>2];h=d;while(1){f=e;if((g|0)>0){f=J[m>>2];g=0;while(1){k=g<<2;j=J[k+h>>2];l=J[a+16>>2];g:{if((j|0)>(l|0)){J[f+k>>2]=l;break g}k=f+k|0;l=J[a+12>>2];if((l|0)>(j|0)){J[k>>2]=l;break g}J[k>>2]=j}g=g+1|0;if((g|0)<J[a+8>>2]){continue}break}}h=i<<2;g=h+c|0;h=J[b+h>>2]-J[f+h>>2]|0;J[g>>2]=h;h:{if((h|0)<J[a+28>>2]){h=h+J[a+20>>2]|0}else{if((h|0)<=J[a+24>>2]){break h}h=h-J[a+20>>2]|0}J[g>>2]=h}h=f;g=J[a+8>>2];i=i+1|0;if((g|0)>(i|0)){continue}break}}na(d);return 1}function uf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ba+-64|0;ba=d;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+48>>2]=1065353216;e=J[a+80>>2];J[d+24>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;a:{if(e){if(e>>>0>=1073741824){break a}c=e<<2;e=oa(c);J[d+16>>2]=e;g=c+e|0;J[d+24>>2]=g;pa(e,0,c);J[d+20>>2]=g;while(1){c=J[J[b>>2]>>2];g=J[b+48>>2];h=Hl(J[b+40>>2],J[b+44>>2],f,0);g=g+h|0;c=c+g|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[d+28>>2]=c;J[d+12>>2]=k;J[d+8>>2]=c;c=d+8|0;qf(d+56|0,d+32|0,c,c);b:{if(!K[d+60|0]){J[(f<<2)+e>>2]=J[J[d+56>>2]+12>>2];break b}e=J[a+40>>2];ua(J[J[a>>2]>>2]+P(e,k)|0,d+28|0,e);e=J[d+16>>2];J[e+(f<<2)>>2]=k;k=k+1|0}f=f+1|0;i=f?i:i+1|0;c=J[a+80>>2];if(!i&f>>>0<c>>>0){continue}break}if((c|0)!=(k|0)){c:{if(!K[a+84|0]){b=J[a+72>>2];f=J[a+68>>2];if((b|0)==(f|0)){break c}b=b-f>>2;c=b>>>0<=1?1:b;h=c&3;i=0;b=0;if(c-1>>>0>=3){l=c&-4;g=0;while(1){c=b<<2;j=c+f|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];j=f+(c|4)|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];j=f+(c|8)|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];c=f+(c|12)|0;J[c>>2]=J[(J[c>>2]<<2)+e>>2];b=b+4|0;g=g+4|0;if((l|0)!=(g|0)){continue}break}}if(!h){break c}while(1){c=f+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+e>>2];b=b+1|0;i=i+1|0;if((h|0)!=(i|0)){continue}break}break c}H[a+84|0]=0;b=a+68|0;i=J[a+68>>2];f=J[a+72>>2]-i>>2;d:{if(f>>>0<c>>>0){Ma(b,c-f|0,2176);c=J[a+80>>2];break d}if(c>>>0>=f>>>0){break d}J[a+72>>2]=i+(c<<2)}if(!c){break c}f=J[b>>2];i=0;b=0;if(c>>>0>=4){l=c&-4;g=0;while(1){h=b<<2;J[h+f>>2]=J[e+h>>2];j=h|4;J[j+f>>2]=J[e+j>>2];j=h|8;J[j+f>>2]=J[e+j>>2];h=h|12;J[h+f>>2]=J[e+h>>2];b=b+4|0;g=g+4|0;if((l|0)!=(g|0)){continue}break}}c=c&3;if(!c){break c}while(1){g=b<<2;J[g+f>>2]=J[e+g>>2];b=b+1|0;i=i+1|0;if((c|0)!=(i|0)){continue}break}}J[a+80>>2]=k}na(e)}b=J[d+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[d+32>>2];J[d+32>>2]=0;if(a){na(a)}ba=d- -64|0;return k}qa();B()}function Rj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=oa(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ba(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ba(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}na(c);if((cb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+288|0]=1;break a}H[a+288|0]=0;break a}na(c);e=J[J[a+4>>2]+48>>2];b=oa(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Pb(e,f,0),H[j+288|0]=k;if(H[f+11|0]>=0){break a}na(J[f>>2])}ba=f+16|0;return 1}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=oa(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ba(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ba(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}na(c);if((cb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+352|0]=1;break a}H[a+352|0]=0;break a}na(c);e=J[J[a+4>>2]+48>>2];b=oa(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Pb(e,f,0),H[j+352|0]=k;if(H[f+11|0]>=0){break a}na(J[f>>2])}ba=f+16|0;return 1}function uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-32|0;ba=c;d=a- -64|0;Aa(J[d>>2],b);if(J[d>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+64>>2];if((d|0)>0){while(1){f=d-1|0;Ca(c,J[J[a+60>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+76>>2],b);if(J[a+76>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+76>>2];if((d|0)>=2){while(1){f=d-2|0;Ca(c,J[J[a+72>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ca(c,J[J[a+72>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+88>>2],b);if(J[a+88>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+88>>2];if((d|0)>=3){while(1){f=d-3|0;Ca(c,J[J[a+84>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ca(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+100>>2],b);if(J[a+100>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+100>>2];if((d|0)>=4){while(1){f=d-4|0;Ca(c,J[J[a+96>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}ya(c,b);wa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;sa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c,f)}ba=c+32|0;return 1}function jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-32|0;ba=c;Aa(J[a+48>>2],b);if(J[a+48>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+48>>2];if((d|0)>0){while(1){f=d-1|0;Ca(c,J[J[a+44>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+60>>2],b);if(J[a+60>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+60>>2];if((d|0)>=2){while(1){f=d-2|0;Ca(c,J[J[a+56>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ca(c,J[J[a+56>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+72>>2],b);if(J[a+72>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+72>>2];if((d|0)>=3){while(1){f=d-3|0;Ca(c,J[J[a+68>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ca(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+84>>2],b);if(J[a+84>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+84>>2];if((d|0)>=4){while(1){f=d-4|0;Ca(c,J[J[a+80>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}ya(c,b);wa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;sa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c,f)}ba=c+32|0;return 1}function wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ba-32|0;ba=d;o=e<<2;f=e>>>0>1073741823?-1:o;l=pa(oa(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];p=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1){break b}g=J[J[p+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[p>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];i=g+1|0;i=(i>>>0)%3|0?i:g-2|0;if((i|0)!=-1){i=J[h+(i<<2)>>2]}else{i=-1}c:{d:{if((g>>>0)%3|0){g=g-1|0;break d}g=g+2|0;n=-1;if((g|0)==-1){break c}}n=J[h+(g<<2)>>2]}if((j|0)<=(m|0)){break b}g=J[(i<<2)+k>>2];if((g|0)>=(j|0)){break b}h=J[k+(n<<2)>>2];if((h|0)>=(j|0)){break b}e:{if((e|0)<=0){break e}h=P(e,h);k=P(e,g);m=P(e,m);g=0;n=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(!s){break e}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}ra();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Ya(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){pa(l,0,o)}e=J[l>>2];f=J[l+4>>2];g=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=g;J[d+8>>2]=e;J[d+12>>2]=f;Ya(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];na(l);ba=d+32|0;return 1}function fg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=J[a>>2];n=b-k|0;h=(n&-4)+k|0;i=d-c|0;if((i|0)<=0){return}a:{l=i>>2;g=J[a+8>>2];j=J[a+4>>2];if((l|0)<=g-j>>2){f=j-h|0;g=f>>2;if((g|0)>=(l|0)){b=j;g=d;break a}b=j;g=(g<<2)+c|0;if((g|0)!=(d|0)){e=g;while(1){J[b>>2]=J[e>>2];b=b+4|0;e=e+4|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=b;if((f|0)>0){break a}return}b:{f=l+(j-k>>2)|0;if(f>>>0<1073741824){e=g-k|0;g=e>>>1|0;m=e>>>0>=2147483644?1073741823:f>>>0<g>>>0?g:f;if(m){if(m>>>0>=1073741824){break b}g=oa(m<<2)}else{g=0}e=g+(n&-4)|0;f=e;if((c|0)!=(d|0)){f=ua(e,c,i&-4)+(l<<2)|0}c:{if((b|0)==(k|0)){break c}i=n-4|0;d=(i>>>2|0)+1&3;d:{if(!d){b=h;break d}c=0;b=h;while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];c=c+1|0;if((d|0)!=(c|0)){continue}break}}if(i>>>0<12){break c}while(1){J[e-4>>2]=J[b-4>>2];J[e-8>>2]=J[b-8>>2];J[e-12>>2]=J[b-12>>2];e=e-16|0;b=b-16|0;J[e>>2]=J[b>>2];if((b|0)!=(k|0)){continue}break}}if((h|0)!=(j|0)){while(1){J[f>>2]=J[h>>2];f=f+4|0;h=h+4|0;if((j|0)!=(h|0)){continue}break}}J[a+8>>2]=(m<<2)+g;J[a+4>>2]=f;J[a>>2]=e;if(k){na(k)}return}qa();B()}xa();B()}d=l<<2;i=d+h|0;f=b;e=b-d|0;if(j>>>0>e>>>0){d=e;while(1){J[f>>2]=J[d>>2];f=f+4|0;d=d+4|0;if(j>>>0>d>>>0){continue}break}}J[a+4>>2]=f;e:{if((b|0)==(i|0)){break e}d=(b-i|0)-4|0;a=(d>>>2|0)+1&3;if(a){f=0;while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];f=f+1|0;if((a|0)!=(f|0)){continue}break}}if(d>>>0<12){break e}while(1){J[b-4>>2]=J[e-4>>2];J[b-8>>2]=J[e-8>>2];J[b-12>>2]=J[e-12>>2];b=b-16|0;e=e-16|0;J[b>>2]=J[e>>2];if((e|0)!=(h|0)){continue}break}}if((c|0)==(g|0)){return}b=h;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((g|0)!=(c|0)){continue}break}}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ba-16|0;ba=k;J[k+8>>2]=c;h=J[a+12>>2];d=J[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=J[a+16>>2];d=J[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=pa(e,0,d)+d|0}J[a+12>>2]=d;break a}b:{c:{d:{m=J[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=oa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=pa(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=J[d>>2];J[d>>2]=0;h=h-4|0;J[h>>2]=f;if((d|0)!=(m|0)){continue}break}J[a+16>>2]=e;e=J[a+12>>2];J[a+12>>2]=g;d=J[a+8>>2];J[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=J[e>>2];J[e>>2]=0;if(f){Ka(f)}if((d|0)!=(e|0)){continue}break}break b}qa();B()}xa();B()}J[a+16>>2]=e;J[a+12>>2]=g;J[a+8>>2]=i}if(d){na(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=J[h>>2];J[h>>2]=0;if(c){Ka(c)}if((d|0)!=(h|0)){continue}break}c=J[k+8>>2]}J[a+12>>2]=d}e:{f:{d=J[c+56>>2];g:{if((d|0)>4){break g}j=P(d,12)+a|0;d=J[j+24>>2];if((d|0)!=J[j+28>>2]){J[d>>2]=b;J[j+24>>2]=d+4;break g}i=J[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=oa(e<<2)}else{d=0}f=d+(f<<2)|0;J[f>>2]=b;d=ta(d,i,g);J[j+20>>2]=d;J[j+24>>2]=f+4;J[j+28>>2]=d+(e<<2);if(!i){break g}na(i)}J[c+60>>2]=b;a=J[a+8>>2];J[k+8>>2]=0;a=a+(b<<2)|0;b=J[a>>2];J[a>>2]=c;if(b){Ka(b)}a=J[k+8>>2];J[k+8>>2]=0;if(a){Ka(a)}ba=k+16|0;return}qa();B()}xa();B()}function qf(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=Q(0);j=J[c>>2];g=j^318;a:{b:{f=J[b+4>>2];if(!f){break b}h=Kl(f);c:{if(h>>>0>=2){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}if(h>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}h=J[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&g;c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=J[c>>2];if(!c){break b}k=J[c+4>>2];if((k|0)!=(g|0)&(h&k)!=(e|0)){break b}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=oa(16);J[c+8>>2]=J[d>>2];d=J[d+4>>2];J[c+4>>2]=g;J[c+12>>2]=d;J[c>>2]=0;i=Q(J[b+12>>2]+1>>>0);l=N[b+16>>2];d:{if(i>Q(l*Q(f>>>0))?0:f){break d}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=Q(W(Q(i/l)));e:{if(i<Q(4294967296)&i>=Q(0)){e=~~i>>>0;break e}e=0}e=e>>>0<h>>>0?h:e;f:{if((e|0)==1){break f}if(!(e&e-1)){d=e;break f}d=Ha(e);f=J[b+4>>2]}g:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break g}h=f>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i<Q(4294967296)&i>=Q(0)){e=~~i>>>0;break h}e=0}i:{j:{if(h){break j}if(Kl(f)>>>0>1){break j}e=e>>>0<2?e:1<<32-S(e-1|0);break i}e=Ha(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break g}}db(b,d)}f=J[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break d}if(f>>>0>g>>>0){e=g;break d}e=(g>>>0)%(f>>>0)|0}g=J[b>>2]+(e<<2)|0;d=J[g>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[g>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];g=f-1|0;m:{if(!(g&f)){d=d&g;break m}if(d>>>0<f>>>0){break m}d=(d>>>0)%(f>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function bl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0<e>>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=f-d|0;f=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=g;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>=4){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=qh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)<J[a+8>>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)<J[a+28>>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}ra();B()}function Tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0<e>>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=f-d|0;f=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=g;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>=4){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=lh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)<J[a+8>>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)<J[a+28>>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}ra();B()}function bg(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=Q(0);h=J[c>>2];a:{b:{e=J[b+4>>2];if(!e){break b}g=Kl(e);c:{if(g>>>0>=2){f=h;if(f>>>0>=e>>>0){f=(h>>>0)%(e>>>0)|0}c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}g=J[c+4>>2];if((g|0)!=(h|0)){if(e>>>0<=g>>>0){g=(g>>>0)%(e>>>0)|0}if((f|0)!=(g|0)){break b}}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}f=e-1&h;c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}}g=e-1|0;while(1){c=J[c>>2];if(!c){break b}j=J[c+4>>2];if((j|0)!=(h|0)&(g&j)!=(f|0)){break b}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}c=oa(16);d=J[J[d>>2]>>2];J[c+12>>2]=0;J[c+8>>2]=d;J[c+4>>2]=h;J[c>>2]=0;k=Q(J[b+12>>2]+1>>>0);i=N[b+16>>2];d:{if(k>Q(i*Q(e>>>0))?0:e){break d}f=2;g=(e-1&e)!=0|e>>>0<3|e<<1;i=Q(W(Q(k/i)));e:{if(i<Q(4294967296)&i>=Q(0)){d=~~i>>>0;break e}d=0}d=d>>>0<g>>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){f=d;break f}f=Ha(d);e=J[b+4>>2]}g:{if(e>>>0>=f>>>0){if(e>>>0<=f>>>0){break g}g=e>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i<Q(4294967296)&i>=Q(0)){d=~~i>>>0;break h}d=0}i:{j:{if(g){break j}if(Kl(e)>>>0>1){break j}d=d>>>0<2?d:1<<32-S(d-1|0);break i}d=Ha(d)}f=d>>>0<f>>>0?f:d;if(f>>>0>=e>>>0){break g}}db(b,f)}e=J[b+4>>2];d=e-1|0;if(!(d&e)){f=d&h;break d}if(e>>>0>h>>>0){f=h;break d}f=(h>>>0)%(e>>>0)|0}f=J[b>>2]+(f<<2)|0;d=J[f>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[f>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];f=e-1|0;m:{if(!(f&e)){d=d&f;break m}if(d>>>0<e>>>0){break m}d=(d>>>0)%(e>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function Ik(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ba-32|0;ba=d;p=e<<2;f=e>>>0>1073741823?-1:p;l=pa(oa(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];n=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1|J[J[n>>2]+(g>>>3&536870908)>>2]>>>g&1){break b}g=J[J[J[n+64>>2]+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[n+28>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];if((m|0)>=(j|0)){break b}i=g+1|0;i=J[k+(J[h+(((i>>>0)%3|0?i:g-2|0)<<2)>>2]<<2)>>2];if((i|0)>=(j|0)){break b}g=J[k+(J[h+(g+((g>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(j|0)){break b}c:{if((e|0)<=0){break c}h=P(e,g);k=P(e,i);m=P(e,m);g=0;o=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;o=o+2|0;if((r|0)!=(o|0)){continue}break}}if(!s){break c}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}ra();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Ya(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){pa(l,0,p)}e=J[l>>2];f=J[l+4>>2];g=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=g;J[d+8>>2]=e;J[d+12>>2]=f;Ya(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];na(l);ba=d+32|0;return 1}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ba-32|0;ba=g;e=J[a>>2];d=J[e>>2];c=J[e+4>>2];k=+(d>>>0)+ +(c>>>0)*4294967296;c=J[e+12>>2]+c|0;i=d;d=J[e+8>>2];e=i+d|0;c=e>>>0<d>>>0?c+1|0:c;i=e;e=!(c|e);k=k/(+((e?1:i)>>>0)+ +((e?0:c)>>>0)*4294967296)*256+.5;a:{if(k<4294967296&k>=0){c=~~k>>>0;break a}c=0}c=c>>>0>=255?255:c;l=!c+c|0;H[g+23|0]=l;j=J[a+16>>2];p=J[a+12>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;b:{c:{c=(j-p<<1)- -64|0;if(c){if((c|0)<0){break c}h=oa(c);pa(h,0,c)}c=J[a+28>>2]-1|0;if((c|0)<0){d=4096;break b}m=0-l|0;q=m&255;i=J[a+24>>2];d=4096;while(1){n=i&1<<c;e=(n?m:l)&255;if(e<<12>>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}o=(e<<3)+12784|0;Hl(J[o>>2],0,d,0);d=((n?0:q)+d|0)+P(256-e|0,ca+d>>>J[o+4>>2]|0)|0;c=c-1|0;if((c|0)>=0){continue}break}break b}qa();B()}if((j|0)!=(p|0)){m=0-l|0;q=m&255;while(1){j=j-4|0;i=J[j>>2];c=31;while(1){e=c;n=i&1<<c;c=(n?m:l)&255;if(c<<12>>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}o=(c<<3)+12784|0;Hl(J[o>>2],0,d,0);d=((n?0:q)+d|0)+P(256-c|0,ca+d>>>J[o+4>>2]|0)|0;c=e-1|0;if(e){continue}break}if((j|0)!=(p|0)){continue}break}}c=d-4096|0;d:{if(c>>>0<=63){H[f+h|0]=d;f=f+1|0;break d}if(c>>>0<=16383){c=f+h|0;H[c|0]=d;H[c+1|0]=d+12288>>>8;f=f+2|0;break d}if(c>>>0>4194303){break d}c=f+h|0;H[c|0]=d;e=d+8384512|0;H[c+2|0]=e>>>16;H[c+1|0]=e>>>8;f=f+3|0}c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],g+23|0,g+24|0)}Aa(f,b);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],h,f+h|0)}J[g+24>>2]=0;J[g+28>>2]=0;ie(a,g+24|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];if(h){na(h)}ba=g+32|0}function he(a){var b=0,c=0,d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;b=c;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;b=a+28|0;J[b>>2]=0;J[b+4>>2]=0;J[a+12>>2]=c;J[a+24>>2]=b;b=oa(32);J[d>>2]=b;J[d+4>>2]=20;J[d+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);e=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);e=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;e=a+24|0;vb(e,d,1);if(H[d+11|0]<0){na(J[d>>2])}a=oa(32);J[d>>2]=a;J[d+4>>2]=22;J[d+8>>2]=-2147483616;b=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);c=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[a+14|0]=c;H[a+15|0]=c>>>8;H[a+16|0]=c>>>16;H[a+17|0]=c>>>24;H[a+18|0]=b;H[a+19|0]=b>>>8;H[a+20|0]=b>>>16;H[a+21|0]=b>>>24;b=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);c=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);c=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+22|0]=0;vb(e,d,1);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0}function of(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=J[a+8>>2];e=J[a+4>>2];if((f-e|0)/12>>>0>=b>>>0){a:{if(!b){break a}d=e;g=P(b,12)-12|0;h=((g>>>0)/12|0)+1&3;if(h){while(1){f=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=f;J[d+8>>2]=J[c+8>>2];d=d+12|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}e=P(b,12)+e|0;if(g>>>0<36){break a}while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{d=J[a>>2];h=(e-d|0)/12|0;g=h+b|0;if(g>>>0<357913942){f=(f-d|0)/12|0;d=f<<1;k=f>>>0>=178956970?357913941:d>>>0>g>>>0?d:g;if(k){if(k>>>0>=357913942){break b}l=oa(P(k,12))}i=P(h,12)+l|0;d=i;g=P(b,12);h=g-12|0;f=((h>>>0)/12|0)+1&3;if(f){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];d=d+12|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}f=g+i|0;if(h>>>0>=36){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((f|0)!=(d|0)){continue}break}}c=J[a>>2];if((c|0)!=(e|0)){while(1){e=e-12|0;b=J[e+4>>2];i=i-12|0;d=i;J[d>>2]=J[e>>2];J[d+4>>2]=b;J[d+8>>2]=J[e+8>>2];if((c|0)!=(e|0)){continue}break}e=J[a>>2]}J[a+8>>2]=P(k,12)+l;J[a+4>>2]=f;J[a>>2]=i;if(e){na(e)}return}qa();B()}xa();B()}function ng(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=ba-112|0;ba=c;d=oa(120);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11224;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+8>>2]=11436;e=d- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+116>>2]=0;J[d+112>>2]=b;J[d+108>>2]=i;J[d+104>>2]=0;J[d+96>>2]=0;J[d+100>>2]=0;g=J[a+12>>2];J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;f=c+32|0;e=f;J[e>>2]=0;J[e+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;e=c- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+104>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+8>>2]=11436;J[c+96>>2]=0;J[c+100>>2]=0;J[c+12>>2]=g;h=J[g>>2];e=J[g+4>>2];H[c+111|0]=0;j=f;f=c+111|0;Na(j,(e-h>>2>>>0)/3|0,f);e=J[c+12>>2];h=J[e+28>>2];e=J[e+24>>2];H[c+111|0]=0;Na(c+44|0,h-e>>2,f);J[c+28>>2]=d;J[c+24>>2]=i;J[c+20>>2]=b;J[c+16>>2]=g;J[d+116>>2]=a+72;a=d+8|0;b=c+8|0;Kc(a,b);a:{if((a|0)==(b|0)){J[d+92>>2]=J[b+84>>2];break a}Rb(d+56|0,J[b+48>>2],J[b+52>>2]);Rb(d+68|0,J[b+60>>2],J[b- -64>>2]);Rb(d+80|0,J[b+72>>2],J[b+76>>2]);J[d+92>>2]=J[b+84>>2];bb(d+96|0,J[b+88>>2],J[b+92>>2])}J[c+8>>2]=11436;a=J[c+96>>2];if(a){J[c+100>>2]=a;na(a)}a=J[c+80>>2];if(a){J[c+84>>2]=a;na(a)}a=J[c+68>>2];if(a){J[c+72>>2]=a;na(a)}a=J[c+56>>2];if(a){J[c+60>>2]=a;na(a)}J[c+8>>2]=11672;a=J[c+44>>2];if(a){na(a)}a=J[c+32>>2];if(a){na(a)}ba=c+112|0;return d}function vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ba-48|0;ba=g;f=ba-32|0;ba=f;h=f+21|0;d=h;l=f+32|0;e=l;if(!((d|0)==(e|0)|(c|0)>=0)){H[d|0]=45;d=d+1|0;c=0-c|0}i=e-d|0;a:{if((i|0)<=9){j=P(32-S(c|1)|0,1233)>>12;k=61;if((i|0)<((M[(j<<2)+18192>>2]<=c>>>0)+j|0)){break a}}b:{if(c>>>0<=999999){if(c>>>0<=9999){if(c>>>0<=99){if(c>>>0<=9){H[d|0]=c+48;e=d+1|0;break b}e=Fb(d,c);break b}if(c>>>0<=999){e=(c>>>0)/100|0;H[d|0]=e+48;e=Fb(d+1|0,c-P(e,100)|0);break b}e=fd(d,c);break b}if(c>>>0<=99999){e=(c>>>0)/1e4|0;H[d|0]=e+48;e=fd(d+1|0,c-P(e,1e4)|0);break b}e=ed(d,c);break b}if(c>>>0<=99999999){if(c>>>0<=9999999){e=(c>>>0)/1e6|0;H[d|0]=e+48;e=ed(d+1|0,c-P(e,1e6)|0);break b}e=dd(d,c);break b}if(c>>>0<=999999999){e=(c>>>0)/1e8|0;H[d|0]=e+48;e=dd(d+1|0,c-P(e,1e8)|0);break b}e=d;d=(c>>>0)/1e8|0;e=dd(Fb(e,d),c-P(d,1e8)|0)}k=0}J[f+12>>2]=k;J[f+8>>2]=e;j=ba-16|0;ba=j;e=ba-16|0;ba=e;c=g+8|0;c:{i=J[f+8>>2];f=i-h|0;if(f>>>0<=2147483631){d:{if(f>>>0<11){H[c+11|0]=f|K[c+11|0]&128;H[c+11|0]=K[c+11|0]&127;d=c;break d}k=e+8|0;if(f>>>0>=11){m=f+16&-16;d=m-1|0;d=(d|0)==11?m:d}else{d=10}Ac(k,d+1|0);d=J[e+8>>2];J[c>>2]=d;J[c+8>>2]=J[c+8>>2]&-2147483648|J[e+12>>2]&2147483647;J[c+8>>2]=J[c+8>>2]|-2147483648;J[c+4>>2]=f}while(1){if((h|0)!=(i|0)){H[d|0]=K[h|0];d=d+1|0;h=h+1|0;continue}break}H[e+7|0]=0;H[d|0]=K[e+7|0];ba=e+16|0;break c}gb();B()}ba=j+16|0;ba=l;J[g+32>>2]=b;ge(g+40|0,a,b,g+32|0);a=J[g+40>>2];if(H[a+39|0]<0){na(J[a+28>>2])}b=J[g+12>>2];J[a+28>>2]=J[g+8>>2];J[a+32>>2]=b;J[a+36>>2]=J[g+16>>2];ba=g+48|0}function df(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=Q(0);a:{b:{c:{d:{d=2;e:{if((b|0)==1){break e}d=b;if(!(b-1&b)){break e}d=Ha(b)}b=J[a+4>>2];if(d>>>0<=b>>>0){if(b>>>0<=d>>>0){break a}e=b>>>0<3;i=Q(W(Q(Q(M[a+12>>2])/N[a+20>>2])));f:{if(i<Q(4294967296)&i>=Q(0)){c=~~i>>>0;break f}c=0}g:{h:{if(e){break h}if(Kl(b)>>>0>1){break h}c=c>>>0<2?c:1<<32-S(c-1|0);break g}c=Ha(c)}d=c>>>0<d>>>0?d:c;if(b>>>0<=d>>>0){break a}if(!d){break d}}if(d>>>0>=1073741824){break c}c=oa(d<<2);b=J[a>>2];J[a>>2]=c;if(b){na(b)}J[a+4>>2]=d;e=0;b=0;if(d-1>>>0>=3){g=d&-4;while(1){c=b<<2;J[c+J[a>>2]>>2]=0;J[J[a>>2]+(c|4)>>2]=0;J[J[a>>2]+(c|8)>>2]=0;J[J[a>>2]+(c|12)>>2]=0;b=b+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}c=d&3;if(c){while(1){J[J[a>>2]+(b<<2)>>2]=0;b=b+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}b=J[a+8>>2];if(!b){break a}c=a+8|0;f=J[b+4>>2];e=d-1|0;if(!(e&d)){break b}f=d>>>0<=f>>>0?(f>>>0)%(d>>>0)|0:f;J[J[a>>2]+(f<<2)>>2]=c;while(1){c=J[b>>2];if(!c){break a}e=J[c+4>>2];if(e>>>0>=d>>>0){e=(e>>>0)%(d>>>0)|0}if((e|0)==(f|0)){b=c;continue}g=e<<2;h=g+J[a>>2]|0;if(J[h>>2]){J[b>>2]=J[c>>2];J[c>>2]=J[J[g+J[a>>2]>>2]>>2];J[J[g+J[a>>2]>>2]>>2]=c}else{J[h>>2]=b;b=c;f=e}continue}}b=J[a>>2];J[a>>2]=0;if(b){na(b)}J[a+4>>2]=0;break a}xa();B()}f=e&f;J[J[a>>2]+(f<<2)>>2]=c;while(1){c=J[b>>2];if(!c){break a}d=e&J[c+4>>2];if((d|0)==(f|0)){b=c;continue}g=d<<2;h=g+J[a>>2]|0;if(J[h>>2]){J[b>>2]=J[c>>2];J[c>>2]=J[J[g+J[a>>2]>>2]>>2];J[J[g+J[a>>2]>>2]>>2]=c}else{J[h>>2]=b;b=c;f=d}continue}}}function Be(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=ba-32|0;ba=h;e=a+4|0;a=ob(a,b);a:{if((e|0)==(a|0)){break a}b:{if(H[a+39|0]>=0){J[h+24>>2]=J[a+36>>2];b=J[a+32>>2];J[h+16>>2]=J[a+28>>2];J[h+20>>2]=b;break b}Ga(h+16|0,J[a+28>>2],J[a+32>>2])}b=K[h+27|0];a=b<<24>>24;if(!(!((a|0)<0?J[h+20>>2]:b)|(c|0)<=0)){b=0;a=(a|0)<0?J[h+16>>2]:h+16|0;while(1){c:{l=ba-16|0;ba=l;Xe(l,a,h+12|0,0);j=J[l>>2];k=J[l+4>>2];i=ba-32|0;ba=i;n=J[l+12>>2];g=n&2147483647;e=g-1065418752|0;m=g-1082064896|0;f=J[l+8>>2];d:{if((e|0)==(m|0)&f>>>0<f>>>0|e>>>0<m>>>0){g=(n&33554431)<<7|f>>>25;e=0;m=e;f=f&33554431;if(!(!e&(f|0)==16777216?!(j|k):!e&f>>>0<16777216)){e=g+1073741825|0;break d}e=g+1073741824|0;if(f^16777216|j|(k|m)){break d}e=(g&1)+e|0;break d}if(!(!f&(g|0)==2147418112?!(j|k):g>>>0<2147418112)){e=((n&33554431)<<7|f>>>25)&4194303|2143289344;break d}e=2139095040;if(g>>>0>1082064895){break d}e=0;g=g>>>16|0;if(g>>>0<16145){break d}e=n&65535|65536;Pa(i+16|0,j,k,f,e,g-16129|0);Gb(i,j,k,f,e,16257-g|0);f=J[i+8>>2];e=(J[i+12>>2]&33554431)<<7|f>>>25;g=J[i>>2]|(J[i+16>>2]|J[i+24>>2]|(J[i+20>>2]|J[i+28>>2]))!=0;k=J[i+4>>2];j=0;f=f&33554431;if(!(!j&(f|0)==16777216?!(g|k):!j&f>>>0<16777216)){e=e+1|0;break d}if(f^16777216|g|(j|k)){break d}e=(e&1)+e|0}ba=i+32|0;ba=l+16|0;m=a;a=J[h+12>>2];if((m|0)==(a|0)){break c}J[(b<<2)+d>>2]=n&-2147483648|e;b=b+1|0;if((c|0)!=(b|0)){continue}}break}a=K[h+27|0]}if(a<<24>>24>=0){break a}na(J[h+16>>2])}ba=h+32|0}function bh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=J[b+48>>2];d=ba-32|0;ba=d;J[d+28>>2]=a;a=0;a:{if((cb(f)|0)>9){break a}if((da[J[J[b>>2]+8>>2]](b)|0)!=1){break a}a=oa(32);J[d+16>>2]=a;J[d+20>>2]=17;J[d+24>>2]=-2147483616;H[a+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);c=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=e;H[a+13|0]=e>>>8;H[a+14|0]=e>>>16;H[a+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);c=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+17|0]=0;a=jb(f,d+28|0,d+16|0,-1);if(H[d+27|0]<0){na(J[d+16>>2])}c=J[b+4>>2];e=J[J[c+8>>2]+(J[d+28>>2]<<2)>>2];b:{if((a|0)==-1|J[e+56>>2]!=3|K[e+24|0]!=2){break b}c=rd(c);if(!c){break b}c=J[c+28>>2];if(!(2558>>>c&c>>>0<12)){h=d,i=Nb(J[b+4>>2],0),J[h+12>>2]=i;c=Pc(d+16|0,1245);g=jb(f,d+12|0,c,-1);if(H[c+11|0]<0){na(J[c>>2])}if((a+(g<<1)|0)>63|g-1>>>0>20){break b}}a=5;if((cb(f)|0)<4){break a}}a=J[e+56>>2];e=cb(f);if((a|0)==1){c:{if((e|0)>3){break c}h=d,i=Nb(J[b+4>>2],0),J[h+12>>2]=i;a=rd(J[b+4>>2]);if(!a){break c}a=J[a+28>>2];if(2558>>>a&a>>>0<12){a=6;break a}a=Pc(d+16|0,1245);b=jb(f,d+12|0,a,-1);if(H[a+11|0]<0){na(J[a>>2])}a=6;if((b|0)>0){break a}}a=0;break a}a=0;if((e|0)>7){break a}a=1;if((cb(f)|0)>1){break a}a=M[J[b+4>>2]+80>>2]<40?1:4}ba=d+32|0;return a}function hc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ig(a,i,c,h,e);f=b;b=e+j|0;Ig(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}hc(a,i,c,h,e,f);hc(i,b,c,g,e,f);de(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function gc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Hg(a,i,c,h,e);f=b;b=e+j|0;Hg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}gc(a,i,c,h,e,f);gc(i,b,c,g,e,f);ce(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function fc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Gg(a,i,c,h,e);f=b;b=e+j|0;Gg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}fc(a,i,c,h,e,f);fc(i,b,c,g,e,f);be(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ec(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Fg(a,i,c,h,e);f=b;b=e+j|0;Fg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}ec(a,i,c,h,e,f);ec(i,b,c,g,e,f);ae(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function dc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Eg(a,i,c,h,e);f=b;b=e+j|0;Eg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}dc(a,i,c,h,e,f);dc(i,b,c,g,e,f);$d(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function cc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Dg(a,i,c,h,e);f=b;b=e+j|0;Dg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}cc(a,i,c,h,e,f);cc(i,b,c,g,e,f);_d(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function bc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Cg(a,i,c,h,e);f=b;b=e+j|0;Cg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}bc(a,i,c,h,e,f);bc(i,b,c,g,e,f);Zd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ac(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Bg(a,i,c,h,e);f=b;b=e+j|0;Bg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}ac(a,i,c,h,e,f);ac(i,b,c,g,e,f);Yd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function _b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){zg(a,i,c,h,e);f=b;b=e+j|0;zg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}_b(a,i,c,h,e,f);_b(i,b,c,g,e,f);Wd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Zb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){yg(a,i,c,h,e);f=b;b=e+j|0;yg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Zb(a,i,c,h,e,f);Zb(i,b,c,g,e,f);Vd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Yb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){wg(a,i,c,h,e);f=b;b=e+j|0;wg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Yb(a,i,c,h,e,f);Yb(i,b,c,g,e,f);Ud(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Xb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){vg(a,i,c,h,e);f=b;b=e+j|0;vg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Xb(a,i,c,h,e,f);Xb(i,b,c,g,e,f);Td(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Wb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){ug(a,i,c,h,e);f=b;b=e+j|0;ug(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Wb(a,i,c,h,e,f);Wb(i,b,c,g,e,f);Sd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Vb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){tg(a,i,c,h,e);f=b;b=e+j|0;tg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Vb(a,i,c,h,e,f);Vb(i,b,c,g,e,f);Rd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ub(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){sg(a,i,c,h,e);f=b;b=e+j|0;sg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Ub(a,i,c,h,e,f);Ub(i,b,c,g,e,f);Qd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Tb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){rg(a,i,c,h,e);f=b;b=e+j|0;rg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Tb(a,i,c,h,e,f);Tb(i,b,c,g,e,f);Pd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Sb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){qg(a,i,c,h,e);f=b;b=e+j|0;qg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Sb(a,i,c,h,e,f);Sb(i,b,c,g,e,f);Od(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function $b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ag(a,i,c,h,e);f=b;b=e+j|0;Ag(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}$b(a,i,c,h,e,f);$b(i,b,c,g,e,f);Xd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ii(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=ba-32|0;ba=a;a:{b:{c:{d:{if(!b){break d}f=rb(c);if(f>>>0>=2147483632){break c}e:{f:{if(f>>>0>=11){g=(f|15)+1|0;h=oa(g);J[a+24>>2]=g|-2147483648;J[a+16>>2]=h;J[a+20>>2]=f;g=f+h|0;break f}H[a+27|0]=f;h=a+16|0;g=f+h|0;if(!f){break e}}ua(h,c,f)}H[g|0]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;if(e){if((e|0)<0){break b}c=e<<2;e=oa(c);J[a>>2]=e;f=c+e|0;J[a+8>>2]=f;ua(e,d,c);J[a+4>>2]=f}f=ba-48|0;ba=f;e=ob(b,a+16|0);if((e|0)!=(b+4|0)){c=J[e+4>>2];g:{if(!c){c=e;while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}break g}while(1){d=c;c=J[c>>2];if(c){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=d}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],e);c=J[e+28>>2];if(c){J[e+32>>2]=c;na(c)}if(H[e+27|0]<0){na(J[e+16>>2])}na(e)}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;c=J[a+4>>2];d=J[a>>2];e=c-d|0;g=0;h:{i:{if((c|0)!=(d|0)){if((e|0)<0){break i}g=oa(e);c=pa(g,0,e);h=c+e|0;J[f+8>>2]=h;J[f+4>>2]=h;J[f>>2]=c;c=d}ua(g,c,e);j:{if(H[a+27|0]>=0){J[f+24>>2]=J[a+24>>2];c=J[a+20>>2];J[f+16>>2]=J[a+16>>2];J[f+20>>2]=c;break j}Ga(f+16|0,J[a+16>>2],J[a+20>>2])}Ob(f+28|0,f);c=f+16|0;Cc(f+40|0,b,c,c);c=J[f+28>>2];if(c){J[f+32>>2]=c;na(c)}if(H[f+27|0]<0){na(J[f+16>>2])}c=J[f>>2];if(c){J[f+4>>2]=c;na(c)}ba=f+48|0;break h}qa();B()}c=J[a>>2];if(c){J[a+4>>2]=c;na(c)}if(H[a+27|0]>=0){break d}na(J[a+16>>2])}ba=a+32|0;a=(b|0)!=0;break a}gb();B()}qa();B()}return a|0}function gd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=ba-16|0;ba=d;g=ba-16|0;ba=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;ba=g+16|0;md(d,K[d+11|0]>>>7|0?(J[d+8>>2]&2147483647)-1|0:10);i=ba-16|0;ba=i;l=+b;if(K[d+11|0]>>>7|0){g=J[d+4>>2]}else{g=K[d+11|0]&127}while(1){a:{if(K[d+11|0]>>>7|0){e=J[d>>2]}else{e=d}O[i>>3]=l;k=ba-16|0;ba=k;J[k+12>>2]=i;c=ba-160|0;ba=c;f=g+1|0;h=f?e:c+158|0;J[c+144>>2]=h;e=-1;j=f-1|0;J[c+148>>2]=f>>>0>=j>>>0?j:0;c=pa(c,0,144);J[c+76>>2]=-1;J[c+36>>2]=371;J[c+80>>2]=-1;J[c+44>>2]=c+159;J[c+84>>2]=c+144;b:{if((f|0)<0){J[4804]=61;break b}H[h|0]=0;h=0;f=ba-208|0;ba=f;J[f+204>>2]=i;e=f+160|0;pa(e,0,40);J[f+200>>2]=J[f+204>>2];c:{if((Ue(0,f+200|0,f+80|0,e)|0)<0){e=-1;break c}m=J[c+76>>2]>=0;j=J[c>>2];if(J[c+72>>2]<=0){J[c>>2]=j&-33}d:{e:{f:{if(!J[c+48>>2]){J[c+48>>2]=80;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;h=J[c+44>>2];J[c+44>>2]=f;break f}if(J[c+16>>2]){break e}}e=-1;if(We(c)){break d}}e=Ue(c,f+200|0,f+80|0,f+160|0)}if(h){da[J[c+36>>2]](c,0,0)|0;J[c+48>>2]=0;J[c+44>>2]=h;J[c+28>>2]=0;h=J[c+20>>2];J[c+16>>2]=0;J[c+20>>2]=0;e=h?e:-1}h=J[c>>2];J[c>>2]=h|j&32;e=h&32?-1:e;if(!m){break c}}ba=f+208|0}ba=c+160|0;ba=k+16|0;g:{if((e|0)>=0){if(e>>>0<=g>>>0){break a}g=e;break g}g=g<<1|1}md(d,g);continue}break}md(d,e);g=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=g;J[a+8>>2]=J[d+8>>2];J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;ba=i+16|0;if(K[d+11|0]>>>7|0){na(J[d>>2])}ba=d+16|0}function tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;b=J[J[a+4>>2]+(b<<2)>>2];J[c+12>>2]=b;a=J[a+28>>2];e=J[J[J[a+4>>2]+8>>2]+(b<<2)>>2];b=J[e+28>>2];a:{if(b-1>>>0>=6){b:{if((b|0)!=9){break b}f=J[a+48>>2];a=oa(32);J[c>>2]=a;J[c+4>>2]=17;J[c+8>>2]=-2147483616;H[a+16|0]=K[1261];b=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+17|0]=0;a=jb(f,c+12|0,c,-1);if(H[c+11|0]<0){na(J[c>>2])}if((a|0)<=0){break b}if(J[e+56>>2]==1){a=oa(48);J[a>>2]=0;J[a+4>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;a=ne(a);J[a+40>>2]=1032;J[a>>2]=6308;J[a+44>>2]=-1;break a}a=ne(oa(64));J[a+40>>2]=2032;J[a>>2]=9988;J[a+48>>2]=0;J[a+52>>2]=0;J[a+44>>2]=-1;J[a+56>>2]=0;J[a+60>>2]=0;break a}a=oa(36);J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;break a}a=ne(oa(40))}ba=c+16|0;return a|0}function ul(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+8>>2]-J[a+4>>2]>>2;b=J[a+40>>2];d=J[a+36>>2];c=b-d>>2;a:{if(e>>>0>c>>>0){g=e-c|0;d=J[a+44>>2];b=J[a+40>>2];if(g>>>0<=d-b>>2>>>0){if(g){i=b;b=g<<2;b=pa(i,0,b)+b|0}J[a+40>>2]=b;break a}b:{c:{d:{j=J[a+36>>2];e=b-j>>2;f=e+g|0;if(f>>>0<1073741824){c=d-j|0;d=c>>>1|0;c=c>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(c){if(c>>>0>=1073741824){break d}i=oa(c<<2)}h=(e<<2)+i|0;d=g<<2;f=pa(h,0,d);e=d+f|0;c=(c<<2)+i|0;if((b|0)==(j|0)){break c}while(1){b=b-4|0;d=J[b>>2];J[b>>2]=0;h=h-4|0;J[h>>2]=d;if((b|0)!=(j|0)){continue}break}J[a+44>>2]=c;c=J[a+40>>2];J[a+40>>2]=e;b=J[a+36>>2];J[a+36>>2]=h;if((b|0)==(c|0)){break b}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){da[J[J[d>>2]+4>>2]](d)}if((b|0)!=(c|0)){continue}break}break b}qa();B()}xa();B()}J[a+44>>2]=c;J[a+40>>2]=e;J[a+36>>2]=f}if(b){na(b)}break a}if(c>>>0<=e>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(b|0)){while(1){b=b-4|0;c=J[b>>2];J[b>>2]=0;if(c){da[J[J[c>>2]+4>>2]](c)}if((b|0)!=(d|0)){continue}break}}J[a+40>>2]=d}if(J[a+8>>2]==J[a+4>>2]){return 1}b=0;while(1){e=da[J[J[a>>2]+56>>2]](a,b)|0;c=b<<2;d=c+J[a+36>>2]|0;f=J[d>>2];J[d>>2]=e;if(f){da[J[J[f>>2]+4>>2]](f)}c=J[c+J[a+36>>2]>>2];d=(c|0)!=0;if(c){if(!(!(J[J[a+48>>2]+(b>>>3&536870908)>>2]>>>b&1)|M[a+52>>2]<=b>>>0)){H[c+28|0]=1}b=b+1|0;if(b>>>0<J[a+8>>2]-J[a+4>>2]>>2>>>0){continue}}break}return d|0}function Yf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;J[a>>2]=10584;c=a+200|0;d=J[c+136>>2];if(d){b=d;e=J[c+140>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=J[b>>2];if(f){J[e-8>>2]=f;na(f)}e=b;if((b|0)!=(d|0)){continue}break}b=J[c+136>>2]}J[c+140>>2]=d;na(b)}b=J[c+104>>2];if(b){J[c+108>>2]=b;na(b)}b=J[c+92>>2];if(b){J[c+96>>2]=b;na(b)}d=J[c+80>>2];J[c+80>>2]=0;if(d){e=d-4|0;b=J[e>>2];if(b){b=d+(b<<5)|0;while(1){b=wa(b-32|0);if((d|0)!=(b|0)){continue}break}}na(e)}b=J[c+68>>2];if(b){J[c+72>>2]=b;na(b)}b=J[c+44>>2];J[c+44>>2]=0;if(b){na(b)}b=J[c+32>>2];if(b){J[c+36>>2]=b;na(b)}wa(c);b=J[a+184>>2];if(b){J[a+188>>2]=b;na(b)}d=J[a+172>>2];if(d){b=J[a+176>>2];e=d;if((b|0)!=(d|0)){while(1){e=b-136|0;f=J[e+116>>2];if(f){J[b-16>>2]=f;na(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;na(f)}pc(b-132|0);b=e;if((d|0)!=(b|0)){continue}break}e=J[a+172>>2]}J[a+176>>2]=d;na(e)}b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+140>>2];if(b){na(b)}b=J[a+128>>2];if(b){while(1){e=J[b>>2];na(b);b=e;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){na(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){na(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){qc(b)}return a|0}function Xd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Xd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Xd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}\nfunction de(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}de(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}de(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function ce(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}ce(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}ce(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function be(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}be(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}be(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function ae(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}ae(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}ae(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function _d(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}_d(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}_d(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Zd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Zd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Zd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Yd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Yd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Yd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Wd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Wd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Wd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Vd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Vd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Vd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Ud(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Ud(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Ud(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Td(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Td(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Td(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Sd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Sd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Sd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Rd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Rd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Rd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Qd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Qd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Qd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Pd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Pd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Pd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Od(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Od(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Od(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function $d(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0<M[(k<<3)+o>>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0<M[(r<<3)+o>>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]<M[q>>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}$d(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}$d(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Kg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=ba-16|0;ba=m;f=J[b+28>>2];g=J[b+24>>2];J[a+8>>2]=g;J[a+12>>2]=f;f=J[b+20>>2];J[a>>2]=J[b+16>>2];J[a+4>>2]=f;f=J[b+36>>2];J[a+16>>2]=J[b+32>>2];J[a+20>>2]=f;J[a+8>>2]=d+g;a:{b:{if((d|0)>0){j=J[b>>2];f=J[a+12>>2];n=J[a+16>>2];o=O[a>>3];while(1){i=J[b+4>>2]-j>>2;g=J[(h<<2)+c>>2];c:{if(i>>>0>g>>>0){break c}J[m+12>>2]=0;k=g+1|0;if(k>>>0>i>>>0){jc(b,k-i|0,m+12|0);j=J[b>>2];break c}if(i>>>0<=k>>>0){break c}J[b+4>>2]=(k<<2)+j}k=(g<<2)+j|0;i=J[k>>2];d:{if((i|0)>=2){l=+(i|0);l=va(l)*l;break d}l=0;if(i){break d}n=n+1|0;J[a+16>>2]=n;if(f>>>0>=g>>>0){break d}J[a+12>>2]=g;f=g}g=i+1|0;J[k>>2]=g;p=+(g|0);o=va(p)*p-l+o;O[a>>3]=o;h=h+1|0;if((h|0)!=(d|0)){continue}break}if(e){break b}if((d|0)<=0){break a}a=J[b>>2];j=0;h=0;if(d>>>0>=4){g=d&-4;e=0;while(1){b=h<<2;f=a+(J[b+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;f=a+(J[(b|4)+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;f=a+(J[(b|8)+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;b=a+(J[(b|12)+c>>2]<<2)|0;J[b>>2]=J[b>>2]-1;h=h+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=a+(J[(h<<2)+c>>2]<<2)|0;J[d>>2]=J[d>>2]-1;h=h+1|0;j=j+1|0;if((b|0)!=(j|0)){continue}break}break a}if(!e){break a}}c=J[a+4>>2];J[b+16>>2]=J[a>>2];J[b+20>>2]=c;J[b+32>>2]=J[a+16>>2];c=J[a+12>>2];J[b+24>>2]=J[a+8>>2];J[b+28>>2]=c}ba=m+16|0}function Ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=J[b+16>>2];f=J[c+4>>2]-e|0;J[c>>2]=0|J[c>>2]-e;J[c+4>>2]=f;f=J[d+4>>2]-e|0;e=J[d>>2]-e|0;J[d>>2]=g|e;J[d+4>>2]=f;i=J[b+16>>2];g=f>>31;h=(g^f)-g|0;g=e>>31;if(i>>>0<h+((g^e)-g|0)>>>0){j=J[c+4>>2];k=J[c>>2];a:{b:{if((k|0)>=0){h=1;g=1;if((j|0)>=0){break a}e=1;h=-1;g=-1;if(k){break b}break a}e=-1;h=-1;g=-1;if((j|0)<=0){break a}}h=(j|0)<=0?-1:1;g=e}f=1;e=-1;l=k<<1;k=P(g,i);l=l-k|0;g=(P(g,h)|0)>=0;h=P(h,i);J[c+4>>2]=((g?0-l|0:l)+h|0)/2;h=(j<<1)-h|0;J[c>>2]=(k+(g?0-h|0:h)|0)/2;g=J[d+4>>2];h=J[d>>2];c:{d:{if((h|0)>=0){e=1;if((g|0)>=0){break c}if(h){break d}f=-1;e=-1;break c}f=-1;if((g|0)<=0){break c}}f=(g|0)<=0?-1:1}i=h<<1;h=J[b+16>>2];j=P(h,e);i=i-j|0;e=(P(f,e)|0)>=0;h=P(f,h);f=((e?0-i|0:i)+h|0)/2|0;J[d+4>>2]=f;g=(g<<1)-h|0;e=(j+(e?0-g|0:g)|0)/2|0;J[d>>2]=e}e:{f:{g:{h:{i:{j:{if(e){if((e|0)>=0){break j}if((f|0)>0){break h}break e}if(f){break i}f=0;e=0;break e}if((f|0)<0){break g}f=0-J[c+4>>2]|0;J[c>>2]=0-J[c>>2];J[c+4>>2]=f;e=0-J[d>>2]|0;f=0-J[d+4>>2]|0;break f}if((f|0)<=0){break g}}f=J[c>>2];J[c>>2]=0-J[c+4>>2];J[c+4>>2]=f;e=0-J[d+4>>2]|0;f=J[d>>2];break f}f=0-J[c>>2]|0;J[c>>2]=J[c+4>>2];J[c+4>>2]=f;e=J[d+4>>2];f=0-J[d>>2]|0}J[d>>2]=e;J[d+4>>2]=f}d=J[c>>2];b=J[b+4>>2];c=J[c+4>>2]-f|0;J[a+4>>2]=(b&c>>31)+c;c=a;a=d-e|0;J[c>>2]=(b&a>>31)+a}function eg(a,b){var c=0,d=0,e=0,f=0,g=0;e=-1;c=(b|0)==-1;d=-1;a:{if(c){break a}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}f=c?-1:(b>>>0)/3|0;g=J[a+28>>2]+(f>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<<f;b:{if(c){break b}c=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((c|0)==-1){break b}c=(c>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break b}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break b}f=1<<b;g=b>>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(f&J[g+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}c:{if((e|0)==-1){break c}b=J[J[J[a+12>>2]+12>>2]+(e<<2)>>2];if((b|0)==-1){break c}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break c}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break c}f=1<<e;e=e>>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(f&J[e+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}d:{if((d|0)==-1){break d}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2];if((b|0)==-1){break d}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break d}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break d}e=1<<d;d=d>>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(e&J[d+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a=0;a:{if(!d|(!b|(c|0)<0)){break a}f=J[b+8>>2];if(J[b+12>>2]-f>>2<=(c|0)){break a}if(!J[b+4>>2]){a=oa(36);J[a+4>>2]=0;J[a+8>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;e=a+16|0;J[e>>2]=0;J[e+4>>2]=0;J[a>>2]=a+4;J[a+32>>2]=0;J[a+12>>2]=e;J[b+4>>2]=a}a=J[J[f+(c<<2)>>2]+60>>2];d=sd(oa(28),d);J[d+24>>2]=a;a=J[b+4>>2];c=ba-16|0;ba=c;J[c+8>>2]=d;b:{if(!d){break b}b=J[a+28>>2];c:{if(b>>>0<M[a+32>>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+28>>2]=b+4;break c}b=0;d:{e:{f:{e=J[a+24>>2];f=J[a+28>>2]-e>>2;d=f+1|0;if(d>>>0<1073741824){e=J[a+32>>2]-e|0;g=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(e){if(e>>>0>=1073741824){break f}b=oa(e<<2)}g=J[c+8>>2];J[c+8>>2]=0;d=(f<<2)+b|0;J[d>>2]=g;e=(e<<2)+b|0;f=d+4|0;b=J[a+28>>2];g=J[a+24>>2];if((b|0)==(g|0)){break e}while(1){b=b-4|0;h=J[b>>2];J[b>>2]=0;d=d-4|0;J[d>>2]=h;if((b|0)!=(g|0)){continue}break}J[a+32>>2]=e;e=J[a+28>>2];J[a+28>>2]=f;b=J[a+24>>2];J[a+24>>2]=d;if((b|0)==(e|0)){break d}while(1){e=e-4|0;a=J[e>>2];J[e>>2]=0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}if((b|0)!=(e|0)){continue}break}break d}qa();B()}xa();B()}J[a+32>>2]=e;J[a+28>>2]=f;J[a+24>>2]=d}if(b){na(b)}}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break b}lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}ba=c+16|0;a=1}return a|0}function pl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}h=J[e+(b<<2)>>2];if((h|0)<0){break a}if(M[a+52>>2]<=h>>>0){b:{b=ba-16|0;ba=b;c:{f=J[a+52>>2];c=h+1|0;d:{if(f>>>0<c>>>0){e=c-f|0;g=J[a+56>>2];d=g<<5;e:{if(!(e>>>0>d>>>0|f>>>0>d-e>>>0)){J[a+52>>2]=c;d=f&31;c=J[a+48>>2]+(f>>>3&536870908)|0;break e}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;if((c|0)<0){break c}if(d>>>0<=1073741822){d=g<<6;c=c+31&-32;c=c>>>0<d>>>0?d:c}else{c=2147483647}wc(b,c);d=J[a+52>>2];J[b+4>>2]=d+e;f=J[a+48>>2];c=J[b>>2];f:{if((d|0)<=0){d=0;break f}g=d>>>5|0;if(d>>>0>=32){ta(c,f,g<<2)}g=g<<2;c=g+c|0;d=d&31;if(d){i=-1>>>32-d|0;J[c>>2]=J[c>>2]&(i^-1)|J[f+g>>2]&i}f=J[a+48>>2]}J[a+48>>2]=J[b>>2];J[b>>2]=f;g=J[a+52>>2];J[a+52>>2]=J[b+4>>2];J[b+4>>2]=g;g=J[a+56>>2];J[a+56>>2]=J[b+8>>2];J[b+8>>2]=g;if(!f){break e}na(f)}if(!e){break d}if(d){f=32-d|0;g=e>>>0>f>>>0?f:e;J[c>>2]=J[c>>2]&(-1<<d&-1>>>f-g^-1);e=e-g|0;c=c+4|0}d=e>>>5|0;if(e>>>0>=32){pa(c,0,d<<2)}if((e&-32)==(e|0)){break d}c=(d<<2)+c|0;J[c>>2]=J[c>>2]&(-1>>>32-(e&31)^-1);break d}J[a+52>>2]=c}ba=b+16|0;break b}qa();B()}}c=1;b=J[a+48>>2]+(h>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<h;b=J[a+40>>2];a=J[a+36>>2];if(b-a>>2>>>0<=h>>>0){break a}H[J[a+(h<<2)>>2]+28|0]=1}return c|0}function Va(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ba-16|0;ba=g;Aa(J[a+12>>2],b);a:{if(!J[a+12>>2]){break a}n=g+15|0;o=g+16|0;while(1){b:{c:{e=J[a>>2];j=J[e+(h<<3)>>2];c=j>>>0<64;if(!c){d=1;if(j>>>0<16384){break c}d=2;if(j>>>0<=4194303){break c}break a}d=0;if(j){break c}while(1){d:{if(J[(e+(d+h<<3)|0)+8>>2]){c=d;break d}c=d+1|0;if(J[(e+(h+c<<3)|0)+8>>2]){break d}c=d+2|0;if(J[(e+(h+c<<3)|0)+8>>2]){break d}c=63;d=d+3|0;if((d|0)!=63){continue}}break}H[g+15|0]=c<<2|3;d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],g+15|0,o)}h=c+h|0;break b}H[g+14|0]=j<<2|d;e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){sa(b,J[b+4>>2],g+14|0,n)}if(c){break b}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break b}p=d>>>0<=1?1:d;d=0;while(1){d=d+1|0;e:{c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break e}m=j>>>(d<<3)-2|0;f=J[b+8>>2];e=J[b+4>>2];if((f-e|0)>0){H[e|0]=m;J[b+4>>2]=e+1;break e}k=J[b>>2];c=e-k|0;i=c+1|0;if((i|0)>=0){f=f-k|0;l=f<<1;f=f>>>0>=1073741823?2147483647:i>>>0<l>>>0?l:i;if(f){i=oa(f)}else{i=0}l=i+c|0;H[l|0]=m;c=ta(i,k,c);e=ta(l+1|0,e,0);J[b+8>>2]=c+f;J[b+4>>2]=e;J[b>>2]=c;if(!k){break e}na(k);break e}qa();B()}if((d|0)!=(p|0)){continue}break}}h=h+1|0;if(h>>>0<M[a+12>>2]){continue}break}}ba=g+16|0}function Ye(a){var b=0,c=0,d=0,e=0,f=0;a:{b:{c:{d:{e:{b=J[a+4>>2];f:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break f}b=La(a)}switch(b-43|0){case 0:case 2:break e;default:break d}}f=(b|0)==45;b=J[a+4>>2];g:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break g}b=La(a)}e=b-58|0;if(e>>>0>4294967285){break c}if(J[a+116>>2]<0){break b}J[a+4>>2]=J[a+4>>2]-1;break b}e=b-58|0}if(e>>>0<4294967286){break b}e=b-48|0;if(e>>>0<10){while(1){d=(P(d,10)+b|0)-48|0;c=(d|0)<214748364;b=J[a+4>>2];h:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break h}b=La(a)}e=b-48|0;if(c&e>>>0<=9){continue}break}c=d>>31}i:{if(e>>>0>=10){break i}while(1){d=Hl(d,c,10,0);b=d+b|0;c=ca;c=b>>>0<d>>>0?c+1|0:c;d=b-48|0;c=c-(b>>>0<48)|0;b=J[a+4>>2];j:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break j}b=La(a)}e=b-48|0;if(e>>>0>9){break i}if(d>>>0<2061584302&(c|0)<=21474836|(c|0)<21474836){continue}break}}if(e>>>0<10){while(1){b=J[a+4>>2];k:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break k}b=La(a)}if(b-48>>>0<10){continue}break}}b=J[a+116>>2];if((b|0)>0|(b|0)>=0){J[a+4>>2]=J[a+4>>2]-1}a=d;d=f?0-a|0:a;c=f?0-(((a|0)!=0)+c|0)|0:c;break a}c=-2147483648;if(J[a+116>>2]<0){break a}J[a+4>>2]=J[a+4>>2]-1;ca=-2147483648;return 0}ca=c;return d}function Hi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,g=0,h=0,i=0;g=ba-16|0;ba=g;a:{b:{c:{if(!b){break c}e=rb(c);if(e>>>0>=2147483632){break b}d:{e:{if(e>>>0>=11){f=(e|15)+1|0;a=oa(f);J[g+8>>2]=f|-2147483648;J[g>>2]=a;J[g+4>>2]=e;f=a+e|0;break e}H[g+11|0]=e;f=e+g|0;a=g;if(!e){break d}}ua(a,c,e)}H[f|0]=0;h=ba-16|0;ba=h;O[h+8>>3]=d;f=ba-48|0;ba=f;e=ob(b,g);if((e|0)!=(b+4|0)){a=J[e+4>>2];f:{if(!a){a=e;while(1){c=J[a+8>>2];i=J[c>>2]!=(a|0);a=c;if(i){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],e);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}na(e)}a=oa(8);J[f>>2]=a;c=a+8|0;J[f+8>>2]=c;J[f+4>>2]=c;c=J[h+12>>2];e=J[h+8>>2];H[a|0]=e;H[a+1|0]=e>>>8;H[a+2|0]=e>>>16;H[a+3|0]=e>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;g:{if(H[g+11|0]>=0){J[f+24>>2]=J[g+8>>2];a=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=a;break g}Ga(f+16|0,J[g>>2],J[g+4>>2])}Ob(f+28|0,f);a=f+16|0;Cc(f+40|0,b,a,a);a=J[f+28>>2];if(a){J[f+32>>2]=a;na(a)}if(H[f+27|0]<0){na(J[f+16>>2])}a=J[f>>2];if(a){J[f+4>>2]=a;na(a)}ba=f+48|0;ba=h+16|0;if(H[g+11|0]>=0){break c}na(J[g>>2])}ba=g+16|0;a=(b|0)!=0;break a}gb();B()}return a|0}function ze(a,b){var c=0,d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;J[a+8>>2]=b;J[a>>2]=0;c=a+12|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+60>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;c=a- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;g=a+140|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+116>>2]=0;J[a+120>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=1;break a}c=b<<2;d=oa(c);J[a+104>>2]=d;f=c+d|0;J[a+112>>2]=f;pa(d,0,c);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;d=oa(c);J[a+116>>2]=d;f=c+d|0;J[a+124>>2]=f;pa(d,0,c);J[a+136>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=f;d=oa(c);J[a+128>>2]=d;f=c+d|0;J[a+136>>2]=f;pa(d,0,c);J[a+132>>2]=f;d=oa(c);J[e>>2]=d;f=c+d|0;J[e+8>>2]=f;pa(d,0,c);J[e+4>>2]=f;c=b<<5|1}Jb(g,c,e);d=J[e>>2];if(d){J[e+4>>2]=d;na(d)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;d=oa(b);J[e>>2]=d;f=b+d|0;J[e+8>>2]=f;pa(d,0,b);J[e+4>>2]=f}Jb(a+152|0,c,e);b=J[e>>2];if(b){J[e+4>>2]=b;na(b)}ba=e+16|0;return a}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;da[J[J[b>>2]+64>>2]](a,b);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}g=J[b+48>>2];c=oa(32);J[f>>2]=c;J[f+4>>2]=29;J[f+8>>2]=-2147483616;d=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);e=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[c+21|0]=e;H[c+22|0]=e>>>8;H[c+23|0]=e>>>16;H[c+24|0]=e>>>24;H[c+25|0]=d;H[c+26|0]=d>>>8;H[c+27|0]=d>>>16;H[c+28|0]=d>>>24;d=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);e=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);e=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);e=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+29|0]=0;c=Pb(g,f,0);if(H[f+11|0]<0){na(J[f>>2])}if(c){da[J[J[b>>2]+68>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ba=f+16|0}function db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{c:{d:{if(b){if(b>>>0>=1073741824){break d}d=oa(b<<2);c=J[a>>2];J[a>>2]=d;if(c){na(c)}J[a+4>>2]=b;c=0;if(b>>>0>=4){d=b&-4;while(1){g=c<<2;J[g+J[a>>2]>>2]=0;J[J[a>>2]+(g|4)>>2]=0;J[J[a>>2]+(g|8)>>2]=0;J[J[a>>2]+(g|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=b&3;if(d){while(1){J[J[a>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}d=J[a+8>>2];if(!d){break a}c=a+8|0;f=J[d+4>>2];e=Kl(b);if(e>>>0<2){break c}f=b>>>0<=f>>>0?(f>>>0)%(b>>>0)|0:f;J[J[a>>2]+(f<<2)>>2]=c;c=J[d>>2];if(!c){break a}if(e>>>0<=1){break b}while(1){e=J[c+4>>2];if(e>>>0>=b>>>0){e=(e>>>0)%(b>>>0)|0}e:{if((f|0)==(e|0)){d=c;break e}h=e<<2;g=h+J[a>>2]|0;if(!J[g>>2]){J[g>>2]=d;d=c;f=e;break e}J[d>>2]=J[c>>2];J[c>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c}c=J[d>>2];if(c){continue}break}break a}b=J[a>>2];J[a>>2]=0;if(b){na(b)}J[a+4>>2]=0;break a}xa();B()}f=b-1&f;J[J[a>>2]+(f<<2)>>2]=c;c=J[d>>2];if(!c){break a}}g=b-1|0;while(1){b=g&J[c+4>>2];f:{if((b|0)==(f|0)){d=c;break f}h=b<<2;e=h+J[a>>2]|0;if(J[e>>2]){J[d>>2]=J[c>>2];J[c>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c;break f}J[e>>2]=d;d=c;f=b}c=J[d>>2];if(c){continue}break}}}function cb(a){var b=0,c=0,d=0,e=0,f=0;e=ba-16|0;ba=e;b=oa(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);d=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);d=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;f=Bb(a,e,-1);if(H[e+11|0]<0){na(J[e>>2])}b=oa(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);d=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);d=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;a=Bb(a,e,-1);if(H[e+11|0]<0){na(J[e>>2])}ba=e+16|0;a=(a|0)<(f|0)?f:a;return(a|0)==-1?5:a}function ei(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;ff(a,b,c);c=J[a+84>>2];d=J[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=J[a+92>>2];c=J[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){J[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}J[a+88>>2]=c;break b}d:{b=c;c=J[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0<h>>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=oa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){J[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=ta(j,c,i);J[a+88>>2]=f;J[a+84>>2]=b;J[a+92>>2]=b+(e<<2);if(c){na(c)}break b}qa();B()}xa();B()}return}if(b>>>0>=d>>>0){break a}J[a+88>>2]=c+(b<<2)}}function ie(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=J[a+8>>2];e=J[a>>2];if(c-e>>3>>>0>=2){f=J[a+4>>2];h=f-e>>3;d=h>>>0>=2?2:h;b:{if(!d){break b}c=e;g=d;i=d&7;if(i){while(1){k=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=k;g=g-1|0;c=c+8|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(d>>>0<8){break b}while(1){d=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=d;d=J[b+4>>2];J[c+8>>2]=J[b>>2];J[c+12>>2]=d;d=J[b+4>>2];J[c+16>>2]=J[b>>2];J[c+20>>2]=d;d=J[b+4>>2];J[c+24>>2]=J[b>>2];J[c+28>>2]=d;d=J[b+4>>2];J[c+32>>2]=J[b>>2];J[c+36>>2]=d;d=J[b+4>>2];J[c+40>>2]=J[b>>2];J[c+44>>2]=d;d=J[b+4>>2];J[c+48>>2]=J[b>>2];J[c+52>>2]=d;d=J[b+4>>2];J[c+56>>2]=J[b>>2];J[c+60>>2]=d;c=c- -64|0;g=g-8|0;if(g){continue}break}}if(h>>>0<2){c=(2-h<<3)+f|0;while(1){e=J[b+4>>2];J[f>>2]=J[b>>2];J[f+4>>2]=e;f=f+8|0;if((c|0)!=(f|0)){continue}break}J[a+4>>2]=c;return}break a}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;c=0}e=c>>>2|0;e=c>>>0>=2147483640?536870911:e>>>0<=2?2:e;if(e>>>0<536870912){c=e<<3;e=oa(c);J[a>>2]=e;J[a+8>>2]=c+e;d=J[b>>2];g=J[b+4>>2];c=e;b=0;while(1){J[c>>2]=d;J[c+4>>2]=g;c=c+8|0;b=b+1|0;if((b|0)!=2){continue}break}break a}qa();B()}J[a+4>>2]=e+16}function we(a,b){var c=0,d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;J[a+8>>2]=b;J[a>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+28>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+48>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+68>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+88>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;g=a+128|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+104>>2]=0;J[a+108>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;e=1;break a}e=b<<2;c=oa(e);J[a+92>>2]=c;f=c+e|0;J[a+100>>2]=f;pa(c,0,e);J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+96>>2]=f;c=oa(e);J[a+104>>2]=c;f=c+e|0;J[a+112>>2]=f;pa(c,0,e);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;c=oa(e);J[a+116>>2]=c;f=c+e|0;J[a+124>>2]=f;pa(c,0,e);J[a+120>>2]=f;c=oa(e);J[d>>2]=c;f=c+e|0;J[d+8>>2]=f;pa(c,0,e);J[d+4>>2]=f;e=b<<5|1}Jb(g,e,d);c=J[d>>2];if(c){J[d+4>>2]=c;na(c)}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if(b){b=b<<2;c=oa(b);J[d>>2]=c;f=b+c|0;J[d+8>>2]=f;pa(c,0,b);J[d+4>>2]=f}Jb(a+140|0,e,d);b=J[d>>2];if(b){J[d+4>>2]=b;na(b)}ba=d+16|0;return a}function Ji(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ba-16|0;ba=f;a:{b:{c:{if(!b){break c}e=rb(c);if(e>>>0>=2147483632){break b}d:{e:{if(e>>>0>=11){g=(e|15)+1|0;a=oa(g);J[f+8>>2]=g|-2147483648;J[f>>2]=a;J[f+4>>2]=e;g=a+e|0;break e}H[f+11|0]=e;g=e+f|0;a=f;if(!e){break d}}ua(a,c,e)}H[g|0]=0;g=ba-16|0;ba=g;J[g+12>>2]=d;e=ba-48|0;ba=e;d=ob(b,f);if((d|0)!=(b+4|0)){a=J[d+4>>2];f:{if(!a){a=d;while(1){c=J[a+8>>2];h=J[c>>2]!=(a|0);a=c;if(h){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;na(a)}if(H[d+27|0]<0){na(J[d+16>>2])}na(d)}a=oa(4);J[e>>2]=a;c=a+4|0;J[e+8>>2]=c;J[e+4>>2]=c;c=J[g+12>>2];H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;g:{if(H[f+11|0]>=0){J[e+24>>2]=J[f+8>>2];a=J[f+4>>2];J[e+16>>2]=J[f>>2];J[e+20>>2]=a;break g}Ga(e+16|0,J[f>>2],J[f+4>>2])}Ob(e+28|0,e);a=e+16|0;Cc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;na(a)}ba=e+48|0;ba=g+16|0;if(H[f+11|0]>=0){break c}na(J[f>>2])}ba=f+16|0;a=(b|0)!=0;break a}gb();B()}return a|0}function wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a>>2];if(d-e>>2>>>0>=b>>>0){f=J[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){J[d>>2]=J[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){J[f>>2]=J[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}J[a+4>>2]=b;return}J[a+4>>2]=e+(b<<2);return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=oa(d);J[a>>2]=e;J[a+8>>2]=d+e;c=J[c>>2];d=e;g=b&7;if(g){while(1){J[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d+28>>2]=c;J[d+24>>2]=c;J[d+20>>2]=c;J[d+16>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}qa();B()}function Ma(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){J[d>>2]=J[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{i=J[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=oa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){J[d>>2]=J[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;J[f>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[a+8>>2]=(h<<2)+k;J[a+4>>2]=g;J[a>>2]=f;if(i){na(i)}return}qa();B()}xa();B()}function kg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b=J[a+12>>2];c=J[b+4>>2];b=J[b>>2];if((c|0)!=(b|0)){b=c-b>>2;j=b>>>0<=1?1:b;k=a+140|0;while(1){b:{if(Fc(J[a+12>>2],(e>>>0)/3|0)){break b}b=J[a+12>>2];if(J[J[b+12>>2]+(e<<2)>>2]!=-1){break b}f=J[a+152>>2];d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)!=-1){b=J[J[b>>2]+(d<<2)>>2]}else{b=-1}c=b<<2;if(J[f+c>>2]!=-1){break b}g=-1;h=J[a+144>>2];b=h;d=J[a+148>>2];if((b|0)==d<<5){if((h+1|0)<0){break a}if(h>>>0<=1073741822){b=d<<6;d=(h&-32)+32|0;b=b>>>0>d>>>0?b:d}else{b=2147483647}wc(k,b);f=J[a+152>>2];g=J[c+f>>2];b=J[a+144>>2]}J[a+144>>2]=b+1;d=J[a+140>>2]+(b>>>3&536870908)|0;i=J[d>>2];m=d,n=Ll(b)&i,J[m>>2]=n;if((g|0)!=-1){break b}c=c+f|0;i=J[a+12>>2];b=e;while(1){d=b;J[c>>2]=h;b=-1;g=-1;c:{if((d|0)==-1){break c}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break c}l=J[i+12>>2];while(1){d=J[(c<<2)+l>>2];if((d|0)!=-1){c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)!=-1){continue}break c}break}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){g=J[J[i>>2]+(b<<2)>>2]}b=c}c=(g<<2)+f|0;if(J[c>>2]==-1){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}}return 1}qa();B()}function mb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=J[(J[J[a+8>>2]+96>>2]+P(f,12)|0)+(c-P(f,3)<<2)>>2];a:{h=J[J[a+12>>2]+4>>2];e=J[h+4>>2];if((e|0)!=J[h+8>>2]){J[e>>2]=j;J[h+4>>2]=e+4;break a}b:{i=J[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=oa(g<<2)}else{f=0}d=k+f|0;J[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[h+8>>2]=f+(g<<2);J[h+4>>2]=j;J[h>>2]=d;if(i){na(i)}break a}qa();B()}xa();B()}c:{d:{h=J[a+4>>2];e=J[h+4>>2];e:{if((e|0)!=J[h+8>>2]){J[e>>2]=c;J[h+4>>2]=e+4;break e}i=J[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=oa(g<<2)}else{f=0}d=f+(j<<2)|0;J[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[h+8>>2]=f+(g<<2);J[h+4>>2]=c;J[h>>2]=d;if(!i){break e}na(i)}a=J[a+4>>2];J[J[a+12>>2]+(b<<2)>>2]=J[a+24>>2];J[a+24>>2]=J[a+24>>2]+1;return}qa();B()}xa();B()}function $g(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ba-16|0;ba=i;J[a+4>>2]=0;J[a+8>>2]=0;d=a+16|0;J[d>>2]=0;J[d+4>>2]=0;J[a>>2]=a+4;g=a+28|0;J[g>>2]=0;J[g+4>>2]=0;J[a+12>>2]=d;J[a+24>>2]=g;if((b+4|0)!=(a|0)){ic(a,J[b+4>>2],b+8|0)}d=a+24|0;if((d|0)!=(b+28|0)){ic(d,J[b+28>>2],b+32|0)}J[i+12>>2]=0;h=J[c+12>>2];f=J[c+8>>2];a:{if((h-f|0)<=0){break a}g=b+20|0;if(!J[g>>2]){break a}while(1){b=J[g>>2];b:{if(!b){break b}j=J[J[(e<<2)+f>>2]+56>>2];d=g;while(1){k=(j|0)>J[b+16>>2];d=k?d:b;b=J[(k?b+4|0:b)>>2];if(b){continue}break}if((d|0)==(g|0)|(j|0)<J[d+16>>2]){break b}h=d+20|0;e=ba-48|0;ba=e;j=J[i+12>>2];d=a+16|0;f=J[d>>2];c:{d:{if(!f){break d}b=d;while(1){k=(j|0)>J[f+16>>2];b=k?b:f;f=J[(k?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(d|0)){break d}if((j|0)>=J[b+16>>2]){break c}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=j;J[e+12>>2]=b;d=e+8|0;Oc(e+40|0,a+12|0,d,d);b=J[e+40>>2];Da(d|4,J[e+16>>2]);Da(f,J[e+28>>2])}b=b+20|0;if((b|0)!=(h|0)){ic(b,J[h>>2],h+4|0)}ba=e+48|0;f=J[c+8>>2];h=J[c+12>>2];e=J[i+12>>2]}e=e+1|0;J[i+12>>2]=e;if(h-f>>2>(e|0)){continue}break}}ba=i+16|0}function Yg(a,b,c){var d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;d=oa(16);J[f>>2]=d;J[f+4>>2]=14;J[f+8>>2]=-2147483632;g=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);e=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[d+6|0]=e;H[d+7|0]=e>>>8;H[d+8|0]=e>>>16;H[d+9|0]=e>>>24;H[d+10|0]=g;H[d+11|0]=g>>>8;H[d+12|0]=g>>>16;H[d+13|0]=g>>>24;g=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);e=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[d|0]=e;H[d+1|0]=e>>>8;H[d+2|0]=e>>>16;H[d+3|0]=e>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+14|0]=0;d=a+4|0;vb(d,f,b);if(H[f+11|0]<0){na(J[f>>2])}a=oa(16);J[f>>2]=a;J[f+4>>2]=14;J[f+8>>2]=-2147483632;e=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);b=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[a+6|0]=b;H[a+7|0]=b>>>8;H[a+8|0]=b>>>16;H[a+9|0]=b>>>24;H[a+10|0]=e;H[a+11|0]=e>>>8;H[a+12|0]=e>>>16;H[a+13|0]=e>>>24;e=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);b=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[a|0]=b;H[a+1|0]=b>>>8;H[a+2|0]=b>>>16;H[a+3|0]=b>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+14|0]=0;vb(d,f,c);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=J[a+8>>2];i=J[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){H[f|0]=K[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=f;if((j|0)>0){break a}return}k=J[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=oa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=ua(g,c,h)+h|0}d=ta(e,k,j);c=i-b|0;b=ta(g,b,c);J[a+8>>2]=e+f;J[a+4>>2]=b+c;J[a>>2]=d;if(k){na(k)}return}qa();B()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){H[e|0]=K[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}J[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;ta(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){H[e|0]=K[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){H[e|0]=K[c|0];H[e+1|0]=K[c+1|0];H[e+2|0]=K[c+2|0];H[e+3|0]=K[c+3|0];H[e+4|0]=K[c+4|0];H[e+5|0]=K[c+5|0];H[e+6|0]=K[c+6|0];H[e+7|0]=K[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function La(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=J[a+112>>2];e=J[a+116>>2];h=(b|e)!=0;c=b;d=J[a+4>>2];g=J[a+44>>2];b=d-g|0;i=b;f=b+J[a+120>>2]|0;b=J[a+124>>2]+(b>>31)|0;a:{b=f>>>0<i>>>0?b+1|0:b;if(!((c>>>0<=f>>>0&(b|0)>=(e|0)|(b|0)>(e|0))&h)){e=ba-16|0;ba=e;d=-1;c=J[a+72>>2];J[a+72>>2]=c-1|c;if(J[a+20>>2]!=J[a+28>>2]){da[J[a+36>>2]](a,0,0)|0}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c=J[a>>2];b:{if(c&4){J[a>>2]=c|32;c=-1;break b}g=J[a+44>>2]+J[a+48>>2]|0;J[a+8>>2]=g;J[a+4>>2]=g;c=c<<27>>31}c:{if(c){break c}if((da[J[a+32>>2]](a,e+15|0,1)|0)!=1){break c}d=K[e+15|0]}ba=e+16|0;e=d;if((d|0)>=0){break a}g=J[a+44>>2];d=J[a+4>>2]}J[a+112>>2]=-1;J[a+116>>2]=-1;J[a+104>>2]=d;e=g-d|0;d=e+f|0;b=(e>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0<e>>>0?b+1|0:b;return-1}d=f+1|0;b=d?b:b+1|0;h=J[a+4>>2];g=J[a+8>>2];c=J[a+116>>2];i=c;f=J[a+112>>2];d:{if(!(c|f)){break d}c=f-d|0;f=i-(b+(d>>>0>f>>>0)|0)|0;j=g-h|0;i=j>>31;if((f|0)>=(i|0)&c>>>0>=j>>>0|(f|0)>(i|0)){break d}g=c+h|0}J[a+104>>2]=g;f=J[a+44>>2];c=f-h|0;d=c+d|0;b=(c>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0<c>>>0?b+1|0:b;if(f>>>0>=h>>>0){H[h-1|0]=e}return e}function yc(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{b:{f=a+16|0;d=J[f>>2];if(!d){break b}g=J[b>>2];b=f;while(1){e=(g|0)>J[d+16>>2];b=e?b:d;d=J[(e?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(f|0)|(g|0)<J[b+16>>2]){break b}d=J[b+24>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0<a>>>0;c:{d:{e:{f:{g:{h:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ba(f,c,e);if(h){break h}if(a>>>0>=b>>>0){break g}break c}if(a>>>0>=b>>>0){break f}break c}if((h|0)<0){break c}}b=Ba(c,f,e);if(b){break e}}if(g){break d}return 1}if((b|0)<0){break d}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}break a}d=J[a+4>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0<a>>>0;i:{j:{k:{l:{m:{n:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ba(f,c,e);if(h){break n}if(a>>>0>=b>>>0){break m}break i}if(a>>>0>=b>>>0){break l}break i}if((h|0)<0){break i}}b=Ba(c,f,e);if(b){break k}}if(g){break j}return 1}if((b|0)<0){break j}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}}return 0}function ua(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){aa(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0<e>>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0<c>>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0<a>>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0<e>>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Zf(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=10532;c=J[a+280>>2];J[a+280>>2]=0;if(c){d=c-4|0;b=J[d>>2];if(b){b=c+(b<<5)|0;while(1){b=wa(b-32|0);if((c|0)!=(b|0)){continue}break}}na(d)}b=J[a+268>>2];if(b){J[a+272>>2]=b;na(b)}b=J[a+244>>2];J[a+244>>2]=0;if(b){na(b)}b=J[a+232>>2];if(b){J[a+236>>2]=b;na(b)}wa(a+200|0);b=J[a+184>>2];if(b){J[a+188>>2]=b;na(b)}c=J[a+172>>2];if(c){d=c;b=J[a+176>>2];if((c|0)!=(b|0)){while(1){d=b-136|0;e=J[d+116>>2];if(e){J[b-16>>2]=e;na(e)}e=J[b-32>>2];if(e){J[b-28>>2]=e;na(e)}pc(b-132|0);b=d;if((c|0)!=(b|0)){continue}break}d=J[a+172>>2]}J[a+176>>2]=c;na(d)}b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+140>>2];if(b){na(b)}b=J[a+128>>2];if(b){while(1){c=J[b>>2];na(b);b=c;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){na(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){na(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){qc(b)}return a|0}function Hc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=-1;a:{if((b|0)==-1){h=J[a+12>>2];d=1;g=-1;break a}h=J[a+12>>2];b:{c:{if((b>>>0)%3|0){e=b-1|0;break c}e=b+2|0;if((e|0)!=-1){break c}d=1;break b}g=J[h+12>>2];while(1){f=e;d=J[g+(e<<2)>>2];if((d|0)!=-1){f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){continue}}break}d=(d|0)!=-1;g=-1;if((b|0)==-1){break a}}g=J[J[h>>2]+(b<<2)>>2]}b=0;if(c){b=J[a+84>>2]+(g>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<<g;b=1}c=J[J[a+152>>2]+(g<<2)>>2];e=J[a+140>>2]+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<<c;c=-1;d:{if(d){break d}e:{if((f>>>0)%3|0){e=f-1|0;break e}e=f+2|0;c=-1;if((e|0)==-1){break d}}c=J[J[h>>2]+(e<<2)>>2]}if((g|0)!=(c|0)){i=J[a+84>>2];while(1){a=f;f=(c>>>3&536870908)+i|0;J[f>>2]=J[f>>2]|1<<c;f=-1;c=-1;f:{if((a|0)==-1){break f}d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)==-1){break f}e=J[h+12>>2];while(1){a=J[e+(d<<2)>>2];if((a|0)!=-1){d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)!=-1){continue}break f}break}g:{if((d>>>0)%3|0){e=d-1|0;break g}e=d+2|0;if((e|0)!=-1){break g}f=-3;break f}c=J[J[h>>2]+(e<<2)>>2];f=d}b=b+1|0;if((c|0)!=(g|0)){continue}break}}}function Qb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{g=J[a+124>>2];c:{if(!g){break c}e=J[a+120>>2];i=Kl(g);h=g-1&d;d:{if(i>>>0<=1){break d}h=d;if(d>>>0<g>>>0){break d}h=(d>>>0)%(g>>>0)|0}e=J[e+(h<<2)>>2];if(!e){break c}f=J[e>>2];if(!f){break c}e:{if(i>>>0<=1){e=g-1|0;while(1){g=J[f+4>>2];f:{if((g|0)!=(d|0)){if((h|0)==(e&g)){break f}break c}if(J[f+8>>2]==(d|0)){break e}}f=J[f>>2];if(f){continue}break}break c}while(1){e=J[f+4>>2];g:{if((e|0)!=(d|0)){if(e>>>0>=g>>>0){e=(e>>>0)%(g>>>0)|0}if((e|0)==(h|0)){break g}break c}if(J[f+8>>2]==(d|0)){break e}}f=J[f>>2];if(f){continue}break}break c}f=J[f+12>>2];if((f|0)==-1){break c}g=c&1;c=J[a+112>>2];if((c|0)!=J[a+116>>2]){H[c+8|0]=g;J[c+4>>2]=b;J[c>>2]=f;J[a+112>>2]=c+12;return}d=J[a+108>>2];i=c-d|0;c=(i|0)/12|0;e=c+1|0;if(e>>>0>=357913942){break b}h=c<<1;e=c>>>0>=178956970?357913941:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=357913942){break a}h=oa(P(e,12))}else{h=0}c=h+P(c,12)|0;H[c+8|0]=g;J[c+4>>2]=b;J[c>>2]=f;b=ta(c+P((i|0)/-12|0,12)|0,d,i);J[a+116>>2]=h+P(e,12);J[a+112>>2]=c+12;J[a+108>>2]=b;if(!d){break c}na(d)}return}qa();B()}xa();B()}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{i=J[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=oa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=ta(k,i,j);J[a+4>>2]=e;J[a>>2]=b;J[a+8>>2]=b+(g<<2);if(i){na(i)}return}qa();B()}xa();B()}function cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=J[c>>2];m=J[c+4>>2];a:{if((f|0)==(m|0)){h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;c=0;break a}o=J[b>>2];h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;if((i|0)<=0){c=0;while(1){e=J[(J[f>>2]<<2)+o>>2];c=c>>>0>e>>>0?c:e+1|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}break a}c=i>>>2|0;c=c>>>0<=1?1:c;q=c&1073741822;r=c&1;c=0;s=i>>>0<8;while(1){e=J[f>>2];k=e<<2;l=J[o+k>>2];if(l>>>0>=c>>>0){c=0;j=0;if(!s){while(1){p=c<<2;d=J[p+b>>2];g=J[d+68>>2];d=K[d+84|0]?e:J[g+k>>2];n=g;g=l<<2;J[n+g>>2]=d;n=g;d=J[(p|4)+b>>2];g=J[d+68>>2];J[n+g>>2]=K[d+84|0]?e:J[g+k>>2];c=c+2|0;j=j+2|0;if((q|0)!=(j|0)){continue}break}}if(r){c=J[(c<<2)+b>>2];d=J[c+68>>2];j=d+(l<<2)|0;if(!K[c+84|0]){e=J[d+k>>2]}J[j>>2]=e}c=l+1|0}f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=0;if((i|0)>0){while(1){b=J[(d<<2)+b>>2];H[b+84|0]=0;f=J[b+68>>2];e=J[b+72>>2]-f>>2;b:{if(e>>>0<c>>>0){Ma(b+68|0,c-e|0,15024);h=J[a+12>>2];break b}if(c>>>0>=e>>>0){break b}J[b+72>>2]=f+(c<<2)}d=d+1|0;b=J[a+8>>2];if((d|0)<h-b>>2){continue}break}}}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+4>>2]=b;d=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=d;a:{if((da[J[J[a>>2]+32>>2]](a)|0)==1&J[J[a+8>>2]+28>>2]-1>>>0>5){break a}f=J[b+48>>2];d=ba-16|0;ba=d;J[d+12>>2]=c;b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1529];c=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=jb(f,d+12|0,d,-1);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0;c=da[J[J[a>>2]+48>>2]](a,(b|0)==-1?-1:b>>>0>6?-2:b)|0;b=J[a+36>>2];J[a+36>>2]=c;e=1;if(b){da[J[J[b>>2]+4>>2]](b);c=J[a+36>>2]}if(!c){break a}if(da[J[J[a>>2]+36>>2]](a,c)|0){break a}b=J[a+36>>2];J[a+36>>2]=0;if(!b){break a}da[J[J[b>>2]+4>>2]](b)}return e|0}function md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]&127}if(e>>>0<b>>>0){h=ba-16|0;ba=h;g=b-e|0;if(g){f=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){b=J[a+4>>2]}else{b=K[a+11|0]&127}i=b+g|0;if(f-b>>>0<g>>>0){b:{d=ba-16|0;ba=d;c=i-f|0;if(c>>>0<=2147483631-f>>>0){if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}if(f>>>0<1073741799){J[d+12>>2]=f<<1;J[d>>2]=c+f;c=ba-16|0;ba=c;ba=c+16|0;c=d+12|0;c=J[(M[d>>2]<M[c>>2]?c:d)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Ac(d,c);c=J[d>>2];if(b){Ab(c,e,b)}if((f|0)!=10){na(e)}J[a>>2]=c;J[a+8>>2]=J[a+8>>2]&-2147483648|J[d+4>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;ba=d+16|0;break b}gb();B()}}if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}b=e+b|0;d=ba-16|0;ba=d;H[d+15|0]=0;while(1){if(g){H[b|0]=K[d+15|0];g=g-1|0;b=b+1|0;continue}break}ba=d+16|0;ld(a,i);H[h+15|0]=0;H[e+i|0]=K[h+15|0]}ba=h+16|0;break a}if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}d=ba-16|0;ba=d;ld(a,b);H[d+15|0]=0;H[b+e|0]=K[d+15|0];ba=d+16|0}}function kf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;a:{d=rd(a);b:{if(!d){a=0;break b}e=J[a+100>>2];g=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=e-g|0;c=(b|0)/12|0;c:{if((e|0)==(g|0)){break c}if(c>>>0>=357913942){break a}e=oa(b);J[f>>2]=e;J[f+8>>2]=e+P(c,12);a=0;h=e;e=b-12|0;b=(e-((e>>>0)%12|0)|0)+12|0;e=pa(h,0,b);J[f+4>>2]=b+e;if(K[d+84|0]){d=c>>>0<=1?1:c;i=d&1;if(c>>>0>=2){j=d&-2;c=0;while(1){b=P(a,12);d=b+g|0;h=J[d>>2];k=J[d+4>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=h;J[b+4>>2]=k;b=P(a|1,12);d=b+g|0;h=J[d>>2];k=J[d+4>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=h;J[b+4>>2]=k;a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break c}c=P(a,12);a=c+g|0;g=J[a+4>>2];d=J[a>>2];c=c+e|0;J[c+8>>2]=J[a+8>>2];J[c>>2]=d;J[c+4>>2]=g;break c}i=c>>>0<=1?1:c;a=J[d+68>>2];c=0;while(1){b=P(c,12);d=b+g|0;j=J[a+(J[d>>2]<<2)>>2];h=J[a+(J[d+4>>2]<<2)>>2];b=b+e|0;J[b+8>>2]=J[a+(J[d+8>>2]<<2)>>2];J[b+4>>2]=h;J[b>>2]=j;c=c+1|0;if((i|0)!=(c|0)){continue}break}}a=mf(f);c=J[f>>2];if(!c){break b}J[f+4>>2]=c;na(c)}ba=f+16|0;return a}qa();B()}function Kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(J[a+64>>2]){break a}c=oa(32);J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;d=J[a+64>>2];J[a+64>>2]=c;if(!d){break a}c=J[d>>2];if(c){J[d+4>>2]=c;na(c)}na(d)}d=J[a+64>>2];c=J[a+28>>2]-1|0;if(c>>>0<=10){i=J[(c<<2)+14832>>2]}else{i=-1}c=P(i,K[a+24|0]);i=c;k=c>>31;c=Hl(c,k,b,0);b:{if((ca|0)<0){break b}c:{f=J[d+4>>2];e=J[d>>2];g=f-e|0;d:{if(c>>>0>g>>>0){j=c-g|0;h=J[d+8>>2];if(j>>>0<=h-f>>>0){l=d,m=pa(f,0,j)+j|0,J[l+4>>2]=m;break d}if((c|0)<0){break c}f=h-e|0;h=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=oa(f);pa(h+g|0,0,j);g=ta(h,e,g);J[d+8>>2]=g+f;J[d+4>>2]=c+g;J[d>>2]=g;if(!e){break d}na(e);break d}if(c>>>0>=g>>>0){break d}J[d+4>>2]=c+e}c=J[d+28>>2];e=J[d+24>>2]+1|0;c=e?c:c+1|0;J[d+24>>2]=e;J[d+28>>2]=c;e=1;break b}qa();B()}if(e){c=J[a+64>>2];J[a>>2]=c;d=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=d;d=J[c+24>>2];c=J[c+28>>2];J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=i;J[a+44>>2]=k;J[a+16>>2]=d;J[a+20>>2]=c;J[a+80>>2]=b}}function _g(a,b,c){var d=0,e=Q(0),f=0,g=Q(0),h=0,i=0,j=Q(0),k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!(J[a+4>>2]!=-1|c-1>>>0>29)){J[a+4>>2]=c;h=K[b+24|0];c=0;J[a+20>>2]=0;if(h){d=h<<2;c=oa(d);f=pa(c,0,d)+d|0}d=J[a+8>>2];if(d){J[a+12>>2]=d;na(d)}J[a+8>>2]=c;J[a+16>>2]=f;J[a+12>>2]=f;d=h<<2;k=oa(d);o=oa(d);d=J[b+40>>2];s=J[b+44>>2];p=d;l=J[b+48>>2];m=J[b>>2];ua(c,l+J[m>>2]|0,d);n=ua(k,l+J[m>>2]|0,d);b=J[b+80>>2];a:{if(!(!h|b>>>0<2)){k=b;d=1;c=0;while(1){b=J[m>>2];f=Hl(d,c,p,s)+l|0;t=ua(o,b+f|0,p);u=J[a+8>>2];f=0;b=0;while(1){i=b<<2;q=t+i|0;e=N[q>>2];if(e!=e){break a}r=i+u|0;if(N[r>>2]>e){N[r>>2]=e;e=N[q>>2]}i=i+n|0;if(N[i>>2]<e){N[i>>2]=e}b=b+1|0;if((h|0)!=(b|0)){continue}break}d=d+1|0;c=d?c:c+1|0;if((d|0)!=(k|0)|c){continue}break}}e=N[a+20>>2];if(h){c=J[a+8>>2];f=0;b=0;while(1){d=b<<2;g=N[d+c>>2];if(g!=g|Q(R(g))==Q(Infinity)){break a}j=N[d+n>>2];if(j!=j|Q(R(j))==Q(Infinity)){break a}g=Q(j-g);if(g>e){N[a+20>>2]=g;e=g}b=b+1|0;if((h|0)!=(b|0)){continue}break}}f=1;if(e!=Q(0)){break a}J[a+20>>2]=1065353216}na(o);na(n)}return f}function va(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;A(+a);d=v(1)|0;b=v(0)|0;c=d>>>16|0;f=d-1072604335|0;if((f|0)==135337|f>>>0<135337){if(!b&(d|0)==1072693248){return 0}g=O[1879];a=a+-1;A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);h=+z();i=g*h;e=a*a;j=e*(a*O[1888]+O[1887]);k=i+j;l=e*e;return k+(l*(l*(e*(a*O[1896]+O[1895])+(a*O[1894]+O[1893]))+(e*(a*O[1892]+O[1891])+(a*O[1890]+O[1889])))+((a-h)*g+a*O[1880]+(j+(i-k))))}a:{if(c-32752>>>0<=4294934559){if(!(d&2147483647|b)){b=ba-16|0;O[b+8>>3]=-1;return O[b+8>>3]/0}if(!b&(d|0)==2146435072){break a}if(!(!(c&32768)&(c&32752)!=32752)){a=a-a;return a/a}A(+(a*4503599627370496));d=v(1)|0;b=v(0)|0;d=d-54525952|0}c=d-1072037888|0;f=c;c=(c>>>14&63)<<4;g=O[c+15184>>3]+ +(f>>20);h=O[1879];a=O[c+15176>>3];x(0,b-0|0);x(1,d-((f&-1048576)+(b>>>0<m>>>0)|0)|0);a=a*(+z()-O[c+16200>>3]-O[c+16208>>3]);A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);i=+z();j=h*i;k=g+j;e=a*a;a=k+(e*(e*e*(a*O[1886]+O[1885])+(e*(a*O[1884]+O[1883])+(a*O[1882]+O[1881])))+((a-i)*h+O[1880]*a+(j+(g-k))))}return a}function Ib(a,b,c){var d=0,e=0,f=0,g=0,h=0;e=32-b|0;c=c<<e;a:{b:{d=J[a+16>>2];f=32-d|0;c:{if((f|0)>=(b|0)){b=b+d|0;J[a+16>>2]=b;f=J[a+12>>2]|c>>>d;J[a+12>>2]=f;if((b|0)!=32){break c}b=J[a+4>>2];d:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break d}c=b;b=J[a>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<e>>>0?e:d;if(d){if(d>>>0>=1073741824){break a}e=oa(d<<2)}else{e=0}g=e+(g<<2)|0;J[g>>2]=f;c=ta(e,b,c);J[a+8>>2]=c+(d<<2);J[a+4>>2]=g+4;J[a>>2]=c;if(!b){break d}na(b)}J[a+12>>2]=0;J[a+16>>2]=0;return}b=b-f|0;J[a+16>>2]=b;g=c>>>e|0;f=J[a+12>>2]|g>>>b;J[a+12>>2]=f;b=J[a+4>>2];e:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break e}c=b;b=J[a>>2];c=c-b|0;h=c>>2;d=h+1|0;if(d>>>0>=1073741824){break b}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<e>>>0?e:d;if(d){if(d>>>0>=1073741824){break a}e=oa(d<<2)}else{e=0}h=e+(h<<2)|0;J[h>>2]=f;c=ta(e,b,c);J[a+8>>2]=c+(d<<2);J[a+4>>2]=h+4;J[a>>2]=c;if(!b){break e}na(b)}J[a+12>>2]=g<<32-J[a+16>>2]}return}qa();B()}xa();B()}function sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);H[b+12|0]=c;a:{if(c){break a}while(1){d=J[b+8>>2];if(K[d+12|0]){break a}b:{c=J[d+8>>2];e=J[c>>2];if((e|0)==(d|0)){e=J[c+4>>2];if(!(!e|K[e+12|0])){break b}c:{if(J[d>>2]==(b|0)){b=d;break c}b=J[d+4>>2];a=J[b>>2];J[d+4>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b>>2]=d;J[d+8>>2]=b;c=J[b+8>>2];d=J[c>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;return}if(!(K[e+12|0]|!e)){break b}d:{if(J[d>>2]!=(b|0)){b=d;break d}a=J[b+4>>2];J[d>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b+4>>2]=d;J[d+8>>2]=b;c=J[b+8>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[c+4>>2];b=J[a>>2];J[c+4>>2]=b;if(b){J[b+8>>2]=c}J[a+8>>2]=J[c+8>>2];b=J[c+8>>2];J[((J[b>>2]!=(c|0))<<2)+b>>2]=a;J[a>>2]=c;J[c+8>>2]=a;break a}H[d+12|0]=1;H[c+12|0]=(a|0)==(c|0);H[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Jl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=S(d)-S(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}ca=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Gl(d)|0;ca=0;break a}if(!(c-1&c)){break f}h=(S(c)+33|0)-S(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}ca=0;a=(b>>>0)/(d>>>0)|0;break a}e=S(d)-S(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Gl(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<<c)-1&b)<<32-c|a>>>c}ca=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<<f)-1&b)<<32-f|a>>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<<f;a=0}else{b=(1<<f)-1&a>>>32-f|b<<f;a=a<<f}if(h){f=d-1|0;g=c-1|0;m=(g|0)!=-1?f+1|0:f;while(1){j=e<<1|i>>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0<k>>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}ca=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ca=b}return a}function Lg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=ba-16|0;ba=j;J[j+8>>2]=0;J[j>>2]=0;J[j+4>>2]=0;a:{b:{e=c+1|0;if(e){if(e>>>0>=1073741824){break b}h=oa(e<<2);pa(h,0,(c<<2)+4|0)}c:{if((b|0)<=0){break c}e=0;if(b>>>0>=4){k=b&-4;while(1){f=e<<2;i=(J[f+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|4)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|8)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;f=(J[(f|12)+a>>2]<<2)+h|0;J[f>>2]=J[f>>2]+1;e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=b&3;if(!f){break c}while(1){k=(J[(e<<2)+a>>2]<<2)+h|0;J[k>>2]=J[k>>2]+1;e=e+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}e=0;if((c|0)<0){a=0;break a}o=+(b|0);a=0;while(1){b=J[(e<<2)+h>>2];if((b|0)>0){n=+(b|0);g=n*va(n/o)+g;a=a+1|0}b=(c|0)==(e|0);e=e+1|0;if(!b){continue}break}break a}qa();B()}if(d){J[d>>2]=a}if(h){na(h)}g=-g;d:{if(R(g)<0x8000000000000000){b=R(g)>=1?~~(g>0?T(V(g*2.3283064365386963e-10),4294967295):W((g-+(~~g>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~g>>>0;break d}b=-2147483648;a=0}ba=j+16|0;ca=b;return a}function Ig(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;hc(a,h,c,g,e,g);d=d-g|0;hc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}\nfunction zg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;_b(a,h,c,g,e,g);d=d-g|0;_b(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function yg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Zb(a,h,c,g,e,g);d=d-g|0;Zb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function wg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Yb(a,h,c,g,e,g);d=d-g|0;Yb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function vg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Xb(a,h,c,g,e,g);d=d-g|0;Xb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ug(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Wb(a,h,c,g,e,g);d=d-g|0;Wb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function tg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Vb(a,h,c,g,e,g);d=d-g|0;Vb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function sg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Ub(a,h,c,g,e,g);d=d-g|0;Ub(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function rg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Tb(a,h,c,g,e,g);d=d-g|0;Tb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function qg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Sb(a,h,c,g,e,g);d=d-g|0;Sb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Hg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;gc(a,h,c,g,e,g);d=d-g|0;gc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Gg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;fc(a,h,c,g,e,g);d=d-g|0;fc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Fg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;ec(a,h,c,g,e,g);d=d-g|0;ec(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Eg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;dc(a,h,c,g,e,g);d=d-g|0;dc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Dg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;cc(a,h,c,g,e,g);d=d-g|0;cc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Cg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;bc(a,h,c,g,e,g);d=d-g|0;bc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Bg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;ac(a,h,c,g,e,g);d=d-g|0;ac(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Ag(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]<M[c+(d<<3)>>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;$b(a,h,c,g,e,g);d=d-g|0;$b(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0<g>>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function zj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ba-16|0;ba=g;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+28>>2]-J[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=h;J[e>>2]=c;if(!d){break b}na(d)}b=J[a+12>>2];c=J[b+28>>2];b=J[b+24>>2];J[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=J[d>>2];c=J[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){jc(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}J[a+100>>2]=e+(b<<2)}e=a+8|0;b=J[a+116>>2];d:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){c=1;break d}b=0;while(1){c=Xf(e,J[(b<<2)+d>>2]);if(!c){break d}f=J[a+116>>2];d=J[f>>2];b=b+1|0;if(b>>>0<J[f+4>>2]-d>>2>>>0){continue}break}break d}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=Xf(e,P(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ba=g+16|0;return c|0}qa();B()}function Zk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[b+88>>2];if(!(!c|J[c>>2]!=1)){e=J[c+8>>2];J[a+4>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);f=a+8|0;d=K[b+24|0];h=J[a+8>>2];g=J[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){Fa(f,d-g|0);d=K[b+24|0];e=J[c+8>>2];break a}if(d>>>0>=g>>>0){break a}J[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=J[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;J[g+f>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[f+(g|4)>>2]=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[f+(g|8)>>2]=K[c+8|0]|K[c+9|0]<<8|(K[c+10|0]<<16|K[c+11|0]<<24);J[f+(g|12)>>2]=K[c+12|0]|K[c+13|0]<<8|(K[c+14|0]<<16|K[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;J[f+(d<<2)>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;J[d+20>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);d=1}return d|0}function Le(a,b,c,d){var e=0,f=0,g=0,h=0;g=ba-32|0;ba=g;e=d&2147483647;h=e;f=e-1006698496|0;e=e-1140785152|0;a:{if((f|0)==(e|0)&0|e>>>0>f>>>0){e=c<<4|b>>>28;c=d<<4|c>>>28;b=b&268435455;if((b|0)==134217728&(a|0)!=0|b>>>0>134217728){f=c+1073741824|0;e=e+1|0;f=e?f:f+1|0;break a}f=c+1073741824|0;if(a|(b|0)!=134217728){break a}a=e&1;e=a+e|0;f=a>>>0>e>>>0?f+1|0:f;break a}if(!(!c&(h|0)==2147418112?!(a|b):h>>>0<2147418112)){a=d<<4|c>>>28;e=c<<4|b>>>28;f=a&524287|2146959360;break a}e=0;f=2146435072;if(h>>>0>1140785151){break a}f=0;h=h>>>16|0;if(h>>>0<15249){break a}e=d&65535|65536;Pa(g+16|0,a,b,c,e,h-15233|0);Gb(g,a,b,c,e,15361-h|0);b=J[g+8>>2];e=b<<4;b=J[g+12>>2]<<4|b>>>28;c=J[g>>2];f=J[g+4>>2];h=f;e=f>>>28|e;f=b;a=h&268435455;b=c|(J[g+16>>2]|J[g+24>>2]|(J[g+20>>2]|J[g+28>>2]))!=0;if((a|0)==134217728&(b|0)!=0|a>>>0>134217728){e=e+1|0;f=e?f:f+1|0;break a}if(b|(a|0)!=134217728){break a}a=e;e=e+(e&1)|0;f=a>>>0>e>>>0?f+1|0:f}ba=g+32|0;x(0,e|0);x(1,d&-2147483648|f);return+z()}function nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;n=b+68|0;i=J[b+68>>2];e=J[b+72>>2]-i>>2;a:{if(e>>>0<d>>>0){Ma(n,d-e|0,11424);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=e>>>0){break a}J[b+72>>2]=i+(d<<2)}b=J[c+100>>2];e=J[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=J[k+28>>2];f=J[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=J[c>>2];if(g>>>0>=d>>>0){break b}j=J[J[a+72>>2]+12>>2];h=J[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=J[n>>2];J[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=J[g+4>>2];if((h|0)==-1){break b}l=J[c+4>>2];if(l>>>0>=d>>>0){break b}h=J[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}J[f+(l<<2)>>2]=h;g=J[g+8>>2];if((g|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}j=J[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}J[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+P(b,12)|0;l=P(b,3);f=J[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=J[d+80>>2];e=ba-48|0;ba=e;a=J[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=J[J[d>>2]>>2]+J[d+48>>2]|0;J[e+16>>2]=a;a=-1<<a;J[e+20>>2]=a^-1;a=-2-a|0;J[e+24>>2]=a;J[e+32>>2]=(a|0)/2;N[e+28>>2]=Q(2)/Q(a|0);f=J[c>>2];if((f|0)!=J[c+4>>2]){a=0;d=0;while(1){g=J[(d<<2)+f>>2];h=e+36|0;k=J[J[b>>2]>>2];l=J[b+48>>2];f=J[b+40>>2];i=J[b+44>>2];if(!K[b+84|0]){g=J[J[b+68>>2]+(g<<2)>>2]}g=Hl(f,i,g,0);i=g;g=g+l|0;ua(h,g+k|0,f);Uf(e+16|0,h,e+12|0,e+8|0);f=a<<2;J[f+j>>2]=J[e+12>>2];J[(f|4)+j>>2]=J[e+8>>2];a=a+2|0;d=d+1|0;f=J[c>>2];if(d>>>0<J[c+4>>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=J[J[b>>2]>>2];i=J[b+48>>2];c=J[b+40>>2];f=Hl(c,J[b+44>>2],K[b+84|0]?a:J[J[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;ua(k,f+l|0,c);Uf(e+16|0,k,e+12|0,e+8|0);c=d<<2;J[c+j>>2]=J[e+12>>2];J[(c|4)+j>>2]=J[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ba=e+48|0;return m>>>0<29|0}function yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ba-16|0;ba=k;if(J[c+28>>2]==9){d=J[a+4>>2];h=K[c+24|0];e=h<<2;f=oa(e);l=k+8|0;J[l>>2]=1065353216;i=N[a+20>>2];d=-1<<d^-1;if((d|0)>0){N[l>>2]=i/Q(d|0)}o=(d|0)>0;a:{if(!o){break a}j=J[c+80>>2];if(!j){break a}if(h){p=J[J[b>>2]>>2]+J[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=J[a+8>>2];i=N[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;N[g+f>>2]=Q(i*Q(J[q>>2]))+N[g+m>>2];g=g|4;N[g+f>>2]=Q(i*Q(J[q+4>>2]))+N[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;N[d+f>>2]=Q(i*Q(J[(b<<2)+p>>2]))+N[d+m>>2];b=b+1|0}ua(J[J[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){ua(J[J[c+64>>2]>>2]+b|0,f,e);b=b+e|0;ua(b+J[J[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}ua(J[J[c+64>>2]>>2]+b|0,f,e)}na(f)}ba=k+16|0;return o|0}function Aj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[a+12>>2];d=J[a+108>>2];e=J[d+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){Ma(m,e-f|0,11424);d=J[a+108>>2];e=J[d+80>>2];break a}if(e>>>0>=f>>>0){break a}J[b+72>>2]=h+(e<<2)}b=J[d+100>>2];f=J[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=J[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=J[c>>2];if((i|0)==-1){break b}g=J[d>>2];if(g>>>0>=e>>>0){break b}l=J[J[a+112>>2]+12>>2];j=J[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=j;g=J[c+4>>2];if((g|0)==-1){break b}j=J[d+4>>2];if(j>>>0>=e>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}J[i+(j<<2)>>2]=g;c=J[c+8>>2];if((c|0)==-1){break b}d=J[d+8>>2];if(d>>>0>=e>>>0){break b}c=J[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}J[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=P(b,3);d=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function sj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[a+12>>2];d=J[a+68>>2];e=J[d+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){Ma(m,e-f|0,11424);d=J[a+68>>2];e=J[d+80>>2];break a}if(e>>>0>=f>>>0){break a}J[b+72>>2]=h+(e<<2)}b=J[d+100>>2];f=J[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=J[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=J[c>>2];if((i|0)==-1){break b}g=J[d>>2];if(g>>>0>=e>>>0){break b}l=J[J[a+72>>2]+12>>2];j=J[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=j;g=J[c+4>>2];if((g|0)==-1){break b}j=J[d+4>>2];if(j>>>0>=e>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}J[i+(j<<2)>>2]=g;c=J[c+8>>2];if((c|0)==-1){break b}d=J[d+8>>2];if(d>>>0>=e>>>0){break b}c=J[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}J[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=P(b,3);d=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ba+-64|0;ba=c;d=oa(80);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11692;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+76>>2]=0;J[d+72>>2]=b;J[d+68>>2]=i;J[d- -64>>2]=0;j=d+56|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[d+8>>2]=11856;e=J[a+12>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;f=c+24|0;J[f>>2]=0;J[f+4>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c>>2]=11856;J[c+4>>2]=e;g=J[e>>2];h=J[e+4>>2];H[c+63|0]=0;k=f;f=c+63|0;Na(k,(h-g>>2>>>0)/3|0,f);g=J[c+4>>2];h=J[g+28>>2];g=J[g+24>>2];H[c+63|0]=0;Na(c+36|0,h-g>>2,f);J[c+20>>2]=d;J[c+16>>2]=i;J[c+12>>2]=b;J[c+8>>2]=e;J[d+76>>2]=a+72;Kc(d+8|0,c);Rb(j,J[c+48>>2],J[c+52>>2]);J[c>>2]=11856;a=J[c+48>>2];if(a){J[c+52>>2]=a;na(a)}J[c>>2]=11672;a=J[c+36>>2];if(a){na(a)}a=J[c+24>>2];if(a){na(a)}ba=c- -64|0;return d}function Sa(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;a:{b:{if((e|0)<=(f|0)){if((a|0)==(b|0)){break b}f=g;e=a;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(b|0)){continue}break}if((f|0)==(g|0)){break b}d=J[d>>2];while(1){if((b|0)==(c|0)){ta(a,g,f-g|0);return}c:{e=J[d>>2];h=J[d+4>>2]-e>>3;i=J[b>>2];if(h>>>0<=i>>>0){break c}j=h;h=J[g>>2];if(j>>>0<=h>>>0){break c}j=h;k=i;i=J[e+(i<<3)>>2];e=J[e+(h<<3)>>2];h=i>>>0>=e>>>0;J[a>>2]=h?j:k;b=((e>>>0>i>>>0)<<2)+b|0;a=a+4|0;g=(h<<2)+g|0;if((g|0)!=(f|0)){continue}break b}break}ra();B()}if((b|0)==(c|0)){break b}f=g;e=b;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}if((f|0)==(g|0)){break b}while(1){if((a|0)==(b|0)){a=f-g|0;ta(c-a|0,g,a);return}i=J[d>>2];e=J[i>>2];h=J[i+4>>2]-e>>3;k=f-4|0;i=J[k>>2];if(h>>>0<=i>>>0){break a}j=h;l=b-4|0;h=J[l>>2];if(j>>>0<=h>>>0){break a}c=c-4|0;e=M[e+(i<<3)>>2]<M[e+(h<<3)>>2];J[c>>2]=e?h:i;b=e?l:b;f=e?f:k;if((g|0)!=(f|0)){continue}break}}return}ra();B()}function _c(a){var b=0,c=0,d=0,e=0;c=J[a+1176>>2];if(c){d=c;b=J[a+1180>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1176>>2]}J[a+1180>>2]=c;na(d)}c=J[a+1164>>2];if(c){d=c;b=J[a+1168>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1164>>2]}J[a+1168>>2]=c;na(d)}b=J[a+1152>>2];if(b){J[a+1156>>2]=b;na(b)}b=J[a+1140>>2];if(b){J[a+1144>>2]=b;na(b)}b=J[a+1128>>2];if(b){J[a+1132>>2]=b;na(b)}tb(a+1108|0);tb(a+1088|0);tb(a+1068|0);wa(a+1036|0);a=a+12|0;wa(a+992|0);wa(a+960|0);wa(a+928|0);wa(a+896|0);wa(a+864|0);wa(a+832|0);wa(a+800|0);wa(a+768|0);wa(a+736|0);wa(a+704|0);wa(a+672|0);wa(a+640|0);wa(a+608|0);wa(a+576|0);wa(a+544|0);wa(a+512|0);wa(a+480|0);wa(a+448|0);wa(a+416|0);wa(a+384|0);wa(a+352|0);wa(a+320|0);wa(a+288|0);wa(a+256|0);wa(a+224|0);wa(a+192|0);wa(a+160|0);wa(a+128|0);wa(a+96|0);wa(a- -64|0);wa(a+32|0);wa(a)}function Ed(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ba-32|0;ba=d;a:{b=J[a+16>>2];c=J[a+20>>2];if(!!b&(c|0)>=0|(c|0)>0){e=J[J[a+12>>2]+4>>2]+7|0;f=e>>>0<7?1:f;c=f>>>3|0;f=f<<29|e>>>3;if(K[a+24|0]){e=J[a+4>>2];J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;xb(f,c,d);c=e-b|0;e=c-8|0;b=J[d+4>>2]-J[d>>2]|0;ta(e+b|0,c,f);ua(e,J[d>>2],b);c=8-b|0;b=J[a+20>>2];e=c;c=c+J[a+16>>2]|0;b=e>>>0>c>>>0?b+1|0:b;J[a+16>>2]=c;J[a+20>>2]=b;b=J[d+12>>2];J[d+12>>2]=0;if(b){na(b)}b=J[d>>2];if(b){J[d+4>>2]=b;na(b)}b=J[a+16>>2]}b=f-b|0;g=J[a+4>>2];f=J[a>>2];e=g-f|0;c=b+e|0;b:{if(c>>>0>e>>>0){h=J[a+8>>2];if(h-g>>>0>=b>>>0){i=a,j=pa(g,0,b)+b|0,J[i+4>>2]=j;break b}if((c|0)<0){break a}g=h-f|0;h=g<<1;g=g>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=oa(g);pa(h+e|0,0,b);b=ta(h,f,e);J[a+8>>2]=b+g;J[a+4>>2]=b+c;J[a>>2]=b;if(!f){break b}na(f);break b}if(c>>>0>=e>>>0){break b}J[a+4>>2]=c+f}J[a+16>>2]=0;J[a+20>>2]=0}ba=d+32|0;return}qa();B()}function dj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=J[a+4>>2];b=J[b+12>>2]-J[b+8>>2]|0;a:{if((b|0)>3){b=0;while(1){if(da[J[J[a>>2]+36>>2]](a,b)|0){b=b+1|0;c=J[a+4>>2];c=J[c+12>>2]-J[c+8>>2]>>2;if((b|0)<(c|0)){continue}break a}break}return 0}c=b>>2}b=a+20|0;d=J[a+20>>2];e=J[a+24>>2]-d>>2;b:{if(e>>>0<c>>>0){Fa(b,c-e|0);break b}if(c>>>0>=e>>>0){break b}J[a+24>>2]=d+(c<<2)}f=J[a+8>>2];a=J[a+12>>2];if((f|0)==(a|0)){return 1}a=a-f>>2;j=a>>>0<=1?1:a;e=J[b>>2];b=0;while(1){a=J[(b<<2)+f>>2];d=J[a+8>>2];c=J[a+4>>2];c:{if((d|0)==(c|0)){break c}a=d-c>>2;d=a>>>0<=1?1:a;i=d&3;g=0;a=0;if(d-1>>>0>=3){k=d&-4;h=0;while(1){d=a<<2;J[e+(J[d+c>>2]<<2)>>2]=b;J[e+(J[c+(d|4)>>2]<<2)>>2]=b;J[e+(J[c+(d|8)>>2]<<2)>>2]=b;J[e+(J[c+(d|12)>>2]<<2)>>2]=b;a=a+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}if(!i){break c}while(1){J[e+(J[c+(a<<2)>>2]<<2)>>2]=b;a=a+1|0;g=g+1|0;if((g|0)!=(i|0)){continue}break}}b=b+1|0;if((j|0)!=(b|0)){continue}break}return 1}function ek(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+12>>2];i=J[a+8>>2];d=e-i>>2;b=K[b+24|0];a:{if(d>>>0<b>>>0){Fa(a+8|0,b-d|0);i=J[a+8>>2];e=J[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;J[a+12>>2]=e}b=0;f=J[c+8>>2];h=J[c+12>>2];j=J[c+20>>2];e=e-i|0;d=J[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0<g>>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}ua(i,d+J[c>>2]|0,e);d=J[c+20>>2];g=e;e=e+J[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;J[c+16>>2]=e;J[c+20>>2]=d;f=J[c+8>>2];h=J[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0<g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+J[c>>2]|0;J[a+20>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);d=J[c+20>>2];g=d;f=d;e=J[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;J[c+16>>2]=d;J[c+20>>2]=f;h=J[c+12>>2];if((f|0)>=(h|0)&d>>>0>=M[c+8>>2]|(f|0)>(h|0)){break b}f=K[d+J[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;J[c+16>>2]=e;J[c+20>>2]=d;if(f-1>>>0>29){break b}J[a+4>>2]=f;b=1}return b|0}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=J[a+4>>2];b:{if((f|0)!=J[a>>2]){c=f;break b}g=J[a+8>>2];c=J[a+12>>2];if(g>>>0<c>>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;ta(c,f,d);f=J[a+8>>2]}J[a+4>>2]=c;J[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=oa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){J[e>>2]=J[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=J[d+12>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=J[d+20>>2];J[e+24>>2]=J[d+24>>2];J[e+28>>2]=J[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=h;J[a+4>>2]=c;J[a>>2]=i;if(!f){break b}na(f);c=J[a+4>>2]}J[c-4>>2]=J[b>>2];J[a+4>>2]=J[a+4>>2]-4;return}xa();B()}function vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=c-b|0;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>>0){h=J[a+4>>2]-d|0;e=h+b|0;g=f>>>0>h>>>0?e:c;a:{if((g|0)==(b|0)){break a}k=(b^-1)+g|0;i=g-b&7;if(i){while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){H[d|0]=K[b|0];H[d+1|0]=K[b+1|0];H[d+2|0]=K[b+2|0];H[d+3|0]=K[b+3|0];H[d+4|0]=K[b+4|0];H[d+5|0]=K[b+5|0];H[d+6|0]=K[b+6|0];H[d+7|0]=K[b+7|0];d=d+8|0;b=b+8|0;if((g|0)!=(b|0)){continue}break}}if(f>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(g|0)){while(1){H[b|0]=K[e|0];b=b+1|0;e=e+1|0;if((e|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=d;return}if(d){J[a+4>>2]=d;na(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}b:{if((f|0)<0){break b}d=e<<1;e=e>>>0>=1073741823?2147483647:d>>>0>f>>>0?d:f;if((e|0)<0){break b}d=oa(e);J[a+4>>2]=d;J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=ua(d,b,f)+f|0}J[a+4>>2]=d;return}qa();B()}function Uf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+N[b>>2];k=+N[b+4>>2];l=+N[b+8>>2];g=R(j)+R(k)+R(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=J[a+16>>2];l=+(h|0);g=V(j*l+.5);b:{if(R(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=V(k*l+.5);c:{if(R(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=J[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=J[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}J[c>>2]=a;J[d>>2]=b}function ge(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;i=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;h=K[e+27|0];f=h<<24>>24<0;e=f?J[e+20>>2]:h;h=e>>>0<g>>>0;d:{e:{f:{g:{j=h?e:g;h:{if(j){f=f?J[c+16>>2]:c+16|0;k=Ba(i,f,j);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ba(f,i,j);if(e){break e}}if(h){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=oa(40);g=e+16|0;d=J[d>>2];i:{if(H[d+11|0]>=0){i=J[d+4>>2];J[g>>2]=J[d>>2];J[g+4>>2]=i;J[g+8>>2]=J[d+8>>2];break i}Ga(g,J[d>>2],J[d+4>>2])}J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[e+36>>2]=0;J[e+28>>2]=0;J[e+32>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}sb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function rc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ba-32|0;ba=d;h=J[b>>2]+J[a+40>>2]|0;e=J[a+32>>2];c=e-4194304|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=e;g=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c+1|0]=e+16384>>>8;H[c|0]=e;g=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){c=J[a+24>>2]+J[a+28>>2]|0;H[c+2|0]=e+4194304>>>16;H[c+1|0]=e>>>8;H[c|0]=e;g=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){f=J[a+24>>2]+J[a+28>>2]|0;c=e-1077936128|0;H[f+3|0]=c>>>24;H[f+2|0]=c>>>16;H[f+1|0]=e>>>8;H[f|0]=e;g=J[a+28>>2]+4|0;break a}g=J[a+28>>2]}f=g;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=f>>31;xb(f,c,d);e=J[d+4>>2]-J[d>>2]|0;ta(e+h|0,h,f);ua(h,J[d>>2],e);h=J[a+40>>2];a=J[a+44>>2];f=e+f|0;c=a+(g>>>0>f>>>0?c+1|0:c)|0;a=f+h|0;Ia(b,a);a=J[d+12>>2];J[d+12>>2]=0;if(a){na(a)}a=J[d>>2];if(a){J[d+4>>2]=a;na(a)}ba=d+32|0}function yb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ba-32|0;ba=d;h=J[b>>2]+J[a+40>>2]|0;f=J[a+32>>2];c=f-16384|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=f;g=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c|0]=f;H[c+1|0]=f>>>8;g=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){e=J[a+24>>2]+J[a+28>>2]|0;c=f+8372224|0;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;g=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){e=J[a+24>>2]+J[a+28>>2]|0;c=f-1073758208|0;H[e+3|0]=c>>>24;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;g=J[a+28>>2]+4|0;break a}g=J[a+28>>2]}e=g;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=e>>31;xb(e,c,d);f=J[d+4>>2]-J[d>>2]|0;ta(f+h|0,h,e);ua(h,J[d>>2],f);h=J[a+40>>2];a=J[a+44>>2];e=e+f|0;c=a+(g>>>0>e>>>0?c+1|0:c)|0;a=e+h|0;Ia(b,a);a=J[d+12>>2];J[d+12>>2]=0;if(a){na(a)}a=J[d>>2];if(a){J[d+4>>2]=a;na(a)}ba=d+32|0}function ii(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0;a:{if(J[c+28>>2]!=9|K[c+24|0]!=3){break a}a=J[a+4>>2];if(a-2>>>0>28){break a}o=1;j=J[c+80>>2];if(!j){break a}k=Q(Q(2)/Q((1<<a)-2|0));c=J[J[c>>2]>>2]+J[c+48>>2]|0;a=J[J[b>>2]>>2]+J[b+48>>2]|0;b=0;while(1){g=Q(0);l=Q(0);m=Q(0);e=Q(Q(Q(J[a>>2])*k)+Q(-1));f=Q(Q(Q(J[a+4>>2])*k)+Q(-1));i=Q(Q(Q(1)-Q(R(e)))-Q(R(f)));h=Q(U(Q(-i),Q(0)));n=Q(-h);f=Q(f+(f<Q(0)?h:n));e=Q(e+(e<Q(0)?h:n));h=Q(Q(f*f)+Q(Q(i*i)+Q(e*e)));if(!(+h<1e-6)){g=Q(Q(1)/Q(Y(h)));m=Q(f*g);l=Q(e*g);g=Q(i*g)}a=a+8|0;d=(C(m),v(2));H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;d=(C(l),v(2));H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;d=(C(g),v(2));H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;b=J[J[a+184>>2]+(b<<2)>>2];H[c+15|0]=b;e=J[J[a+4>>2]+44>>2];d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],c+15|0,c+16|0);b=K[c+15|0]}a:{b:{c:{if(b<<24>>24<0){e=J[a+68>>2];break c}b=J[J[a+172>>2]+P(b&255,136)>>2];d=da[J[J[a>>2]+40>>2]](a)|0;f=J[a+172>>2]+P(H[c+15|0],136)|0;e=J[f+132>>2];d:{switch(J[J[J[d+56>>2]+84>>2]+(b<<2)>>2]){case 0:break c;case 1:break d;default:break b}}if(!K[f+28|0]){break b}}b=J[J[a+4>>2]+44>>2];H[c+14|0]=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+14|0,c+15|0);break a}b=J[J[a+4>>2]+44>>2];H[c+13|0]=1;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+13|0,c+14|0)}a=J[J[a+4>>2]+44>>2];H[c+12|0]=e;b=J[a+20>>2];if(!J[a+16>>2]&(b|0)<=0|(b|0)<0){sa(a,J[a+4>>2],c+12|0,c+13|0)}ba=c+16|0;return 1}function Cc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;h=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;e=K[e+27|0];f=e<<24>>24<0;e=f?J[c+20>>2]:e;j=e>>>0<g>>>0;d:{e:{f:{g:{i=j?e:g;h:{if(i){f=f?J[c+16>>2]:c+16|0;k=Ba(h,f,i);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ba(f,h,i);if(e){break e}}if(j){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=oa(40);J[e+24>>2]=J[d+8>>2];g=J[d+4>>2];h=J[d>>2];J[e+16>>2]=h;J[e+20>>2]=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;Ob(e+28|0,d+12|0);J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}sb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function El(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=1;a:{b:{c:{if((da[J[J[b>>2]+20>>2]](b)|0)<=0){break c}while(1){e=Nb(J[J[a+4>>2]+4>>2],da[J[J[b>>2]+24>>2]](b,i)|0);j=(e|0)!=-1;if((e|0)==-1){break c}c=J[a+20>>2];d:{if((c|0)!=J[a+24>>2]){J[c>>2]=e;J[a+20>>2]=c+4;break d}f=c;c=J[a+16>>2];d=f-c|0;h=d>>2;g=h+1|0;if(g>>>0>=1073741824){break b}f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0<f>>>0?f:g;if(g){if(g>>>0>=1073741824){break a}f=oa(g<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=e;d=ta(f,c,d);J[a+24>>2]=d+(g<<2);J[a+20>>2]=h+4;J[a+16>>2]=d;if(!c){break d}na(c)}c=J[a+4>>2];e:{if((e|0)<0){break e}d=J[c+4>>2];if(J[d+12>>2]-J[d+8>>2]>>2<=(e|0)){break e}c=J[J[c+8>>2]+(J[J[c+20>>2]+(e<<2)>>2]<<2)>>2];da[J[J[c>>2]+32>>2]](c,e)|0}i=i+1|0;if((da[J[J[b>>2]+20>>2]](b)|0)>(i|0)){continue}break}}return j|0}qa();B()}xa();B()}function Ta(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==(c|0)){J[a+4>>2]=d;J[a>>2]=d;return}if((c|0)==(d|0)){J[a+4>>2]=c;J[a>>2]=b;return}a:{if((b+4|0)==(c|0)){f=J[b>>2];e=b;b=d-c|0;c=ta(e,c,b)+b|0;J[c>>2]=f;break a}if((c+4|0)==(d|0)){f=d-4|0;e=J[f>>2];c=d;if((b|0)!=(f|0)){f=f-b|0;c=d-f|0;ta(c,b,f)}J[b>>2]=e;break a}g=c-b>>2;h=d-c>>2;if((g|0)==(h|0)){e=c;while(1){f=J[b>>2];J[b>>2]=J[e>>2];J[e>>2]=f;b=b+4|0;if((c|0)==(b|0)){break a}e=e+4|0;if((e|0)!=(d|0)){continue}break}break a}e=h;f=g;while(1){c=f;f=e;e=(c|0)%(e|0)|0;if(e){continue}break}if(f){e=(f<<2)+b|0;while(1){e=e-4|0;j=g<<2;c=e+j|0;k=J[e>>2];f=e;while(1){i=f;f=c;J[i>>2]=J[c>>2];i=c+j|0;c=d-c>>2;c=(c|0)>(g|0)?i:(g-c<<2)+b|0;if((e|0)!=(c|0)){continue}break}J[f>>2]=k;if((b|0)!=(e|0)){continue}break}}c=(h<<2)+b|0}J[a+4>>2]=d;J[a>>2]=c}function Kc(a,b){var c=0,d=0;c=J[b+8>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=c;J[a+20>>2]=J[b+20>>2];c=J[b+16>>2];J[a+12>>2]=J[b+12>>2];J[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=J[b+28>>2];if(c){d=J[a+24>>2];if(J[a+32>>2]<<5>>>0<c>>>0){if(d){na(d);J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;c=J[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=oa(c<<2);J[a+32>>2]=c;J[a+28>>2]=0;J[a+24>>2]=d;c=J[b+28>>2]}ta(d,J[b+24>>2],(c-1>>>3&536870908)+4|0);c=J[b+28>>2]}else{c=0}J[a+28>>2]=c;c=J[b+40>>2];if(c){d=J[a+36>>2];if(J[a+44>>2]<<5>>>0<c>>>0){if(d){na(d);J[a+44>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;c=J[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=oa(c<<2);J[a+44>>2]=c;J[a+40>>2]=0;J[a+36>>2]=d;c=J[b+40>>2]}ta(d,J[b+36>>2],(c-1>>>3&536870908)+4|0);b=J[b+40>>2]}else{b=0}J[a+40>>2]=b}return}qa();B()}qa();B()}function jf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;d=J[a+100>>2];e=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=d-e|0;g=(b|0)/12|0;a:{b:{if((d|0)==(e|0)){break b}if(g>>>0>=357913942){break a}d=oa(b);J[f>>2]=d;J[f+8>>2]=d+P(g,12);a=0;c=d;d=b-12|0;b=(d-((d>>>0)%12|0)|0)+12|0;d=pa(c,0,b);J[f+4>>2]=b+d;b=g>>>0<=1?1:g;j=b&1;if(g>>>0>=2){k=b&-2;g=0;while(1){c=P(a,12);b=c+e|0;h=J[b>>2];i=J[b+4>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=h;J[c+4>>2]=i;c=P(a|1,12);b=c+e|0;h=J[b>>2];i=J[b+4>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=h;J[c+4>>2]=i;a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break b}c=e;e=P(a,12);a=c+e|0;g=J[a+4>>2];b=J[a>>2];e=d+e|0;J[e+8>>2]=J[a+8>>2];J[e>>2]=b;J[e+4>>2]=g}e=mf(f);a=J[f>>2];if(a){J[f+4>>2]=a;na(a)}ba=f+16|0;return e}qa();B()}function dg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+112>>2];b=J[a+108>>2];c=(d-b|0)/12|0;Aa(c,J[J[a+4>>2]+44>>2]);if((b|0)!=(d|0)){f=c>>>0<=1?1:c;d=0;while(1){b=J[a+108>>2]+P(d,12)|0;Aa(J[b+4>>2]-g|0,J[J[a+4>>2]+44>>2]);Aa(J[b+4>>2]-J[b>>2]|0,J[J[a+4>>2]+44>>2]);g=J[b+4>>2];d=d+1|0;if((f|0)!=(d|0)){continue}break}d=0;Fd(J[J[a+4>>2]+44>>2],c,0,0);b=J[J[a+4>>2]+44>>2];e=!!J[b+16>>2];b=J[b+20>>2];if(e&(b|0)>=0|(b|0)>0){f=c>>>0<=1?1:c;while(1){c=J[J[a+4>>2]+44>>2];b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){g=K[(J[a+108>>2]+P(d,12)|0)+8|0];c=J[c+12>>2];e=J[c+4>>2];b=e>>>3|0;h=b+J[c>>2]|0;i=K[h|0];e=e&7;j=h,k=Ll(e)&i,H[j|0]=k;b=b+J[c>>2]|0;H[b|0]=K[b|0]|(g&1)<<e;J[c+4>>2]=J[c+4>>2]+1}d=d+1|0;if((f|0)!=(d|0)){continue}break}}Ed(J[J[a+4>>2]+44>>2])}return 1}function mj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+56>>2]-J[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=g;J[e>>2]=c;if(!d){break b}na(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Vf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0<J[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=J[J[a+12>>2]+64>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Vf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();B()}function rj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+28>>2]-J[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=g;J[e>>2]=c;if(!d){break b}na(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Wf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0<J[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Wf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();B()}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;J[d+12>>2]=c;a:{if(!me(a,b,c)|K[J[a+8>>2]+24|0]!=3){break a}f=J[b+48>>2];b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=jb(f,d+12|0,d,-1);if(H[d+11|0]<0){na(J[d>>2])}if((b|0)<=0){break a}J[a+44>>2]=b;g=1}ba=d+16|0;return g|0}function Oc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ba-16|0;ba=i;e=J[b+4>>2];a:{b:{if(!e){h=b+4|0;g=h;break b}f=J[c>>2];while(1){g=e;c=J[e+16>>2];if((c|0)>(f|0)){h=g;e=J[g>>2];if(e){continue}break b}if((c|0)>=(f|0)){f=g;b=0;break a}e=J[g+4>>2];if(e){continue}break}h=g+4|0}f=oa(32);c=J[d>>2];j=f+24|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[f+16>>2]=c;k=f+20|0;J[k>>2]=e;e=J[d+4>>2];d=d+8|0;if((e|0)!=(d|0)){while(1){c=e+16|0;Qg(i+8|0,k,j,c,c);c=J[e+4>>2];c:{if(c){while(1){e=c;c=J[e>>2];if(c){continue}break c}}while(1){c=e;e=J[e+8>>2];if((c|0)!=J[e>>2]){continue}break}}if((d|0)!=(e|0)){continue}break}}J[f+8>>2]=g;J[f>>2]=0;J[f+4>>2]=0;J[h>>2]=f;e=f;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[h>>2]}sb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=f;ba=i+16|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ba-16|0;ba=c;Aa(J[a+8>>2]-J[a+4>>2]>>2,b);e=J[a+4>>2];if((e|0)!=J[a+8>>2]){h=c+13|0;i=c+14|0;j=c+15|0;k=c+16|0;while(1){e=J[J[J[a+32>>2]+8>>2]+(J[(g<<2)+e>>2]<<2)>>2];H[c+15|0]=J[e+56>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+15|0,k);d=J[b+20>>2];f=J[b+16>>2];H[c+14|0]=J[e+28>>2];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+14|0,j);d=J[b+20>>2];f=J[b+16>>2];H[c+13|0]=K[e+24|0];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+13|0,i);d=J[b+20>>2];f=J[b+16>>2];H[c+12|0]=K[e+32|0];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,h)}Aa(J[e+60>>2],b);g=g+1|0;e=J[a+4>>2];if(g>>>0<J[a+8>>2]-e>>2>>>0){continue}break}}ba=c+16|0;return 1}function eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;g=ba-16|0;ba=g;a:{b:{c=J[a+4>>2];c:{if((c|0)!=J[a+8>>2]){J[c>>2]=J[a+12>>2];c=c+4|0;J[a+4>>2]=c;break c}e=J[a>>2];c=c-e|0;h=c>>2;d=h+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=J[a+12>>2];i=d<<2;d=ta(f,e,c);J[a+8>>2]=i+d;c=h+4|0;J[a+4>>2]=c;J[a>>2]=d;if(!e){break c}na(e);c=J[a+4>>2]}f=c;c=J[a>>2];J[g+12>>2]=f-c;e=J[b+20>>2];d:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break d}sa(b,J[b+4>>2],g+12|0,g+16|0);c=J[a>>2];e=J[b+20>>2];if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break d}sa(b,J[b+4>>2],c,J[g+12>>2]+c|0);c=J[a>>2]}J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=c;ba=g+16|0;return}qa();B()}xa();B()}function ta(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return ua(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0<b>>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}H[d|0]=K[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;H[d|0]=K[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;J[c+a>>2]=J[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;H[c+a|0]=K[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){J[d>>2]=J[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function hg(a,b,c){var d=0,e=0,f=0,g=0;a:{b=P(b,3);if((b|0)==-1){break a}b:{e=J[a+12>>2];f=J[e+12>>2];d=b<<2;c:{if(J[f+d>>2]==-1){break c}a=J[a+152>>2];e=J[e>>2];if(J[a+(J[e+d>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}g=1;a=b+1|0;b=(a>>>0)%3|0?a:b-2|0}J[c>>2]=b;return g}while(1){d:{a=b;e:{if((b>>>0)%3|0){b=a-1|0;break e}b=a+2|0;if((b|0)==-1){break d}}b=J[(b<<2)+f>>2];if((b|0)==-1){break d}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}}break}J[c>>2]=a+((a>>>0)%3|0?-1:2);return 0}J[c>>2]=-1;return 0}function Se(a,b,c){a:{switch(b-9|0){case 0:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];return;case 6:b=J[c>>2];J[c>>2]=b+4;b=I[b>>1];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 7:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=L[b>>1];J[a+4>>2]=0;return;case 8:b=J[c>>2];J[c>>2]=b+4;b=H[b|0];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 9:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=K[b|0];J[a+4>>2]=0;return;case 16:b=J[c>>2]+7&-8;J[c>>2]=b+8;O[a>>3]=O[b>>3];return;case 17:Qe(a,c);default:return;case 1:case 4:case 14:b=J[c>>2];J[c>>2]=b+4;b=J[b>>2];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];J[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=J[c>>2]+7&-8;J[c>>2]=b+8;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c}function _e(a,b,c,d,e,f){var g=0;g=ba-80|0;ba=g;a:{if((f|0)>=16384){Ea(g+32|0,b,c,d,e,0,0,0,2147352576);d=J[g+40>>2];e=J[g+44>>2];b=J[g+32>>2];c=J[g+36>>2];if(f>>>0<32767){f=f-16383|0;break a}Ea(g+16|0,b,c,d,e,0,0,0,2147352576);f=((f|0)>=49149?49149:f)-32766|0;d=J[g+24>>2];e=J[g+28>>2];b=J[g+16>>2];c=J[g+20>>2];break a}if((f|0)>-16383){break a}Ea(g- -64|0,b,c,d,e,0,0,0,7471104);d=J[g+72>>2];e=J[g+76>>2];b=J[g+64>>2];c=J[g+68>>2];if(f>>>0>4294934644){f=f+16269|0;break a}Ea(g+48|0,b,c,d,e,0,0,0,7471104);f=((f|0)<=-48920?-48920:f)+32538|0;d=J[g+56>>2];e=J[g+60>>2];b=J[g+48>>2];c=J[g+52>>2]}Ea(g,b,c,d,e,0,0,0,f+16383<<16);b=J[g+12>>2];J[a+8>>2]=J[g+8>>2];J[a+12>>2]=b;b=J[g+4>>2];J[a>>2]=J[g>>2];J[a+4>>2]=b;ba=g+80|0}function bd(a,b,c){var d=0,e=0,f=0;d=ba+-64|0;ba=d;f=J[a>>2];e=J[f-4>>2];f=J[f-8>>2];J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;H[d+55|0]=0;H[d+56|0]=0;H[d+57|0]=0;H[d+58|0]=0;H[d+59|0]=0;H[d+60|0]=0;H[d+61|0]=0;H[d+62|0]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+20>>2]=0;J[d+16>>2]=b;J[d+12>>2]=a;J[d+8>>2]=c;a=a+f|0;b=0;a:{if(pb(e,c,0)){J[d+56>>2]=1;da[J[J[e>>2]+20>>2]](e,d+8|0,a,a,1,0);b=J[d+32>>2]==1?a:0;break a}da[J[J[e>>2]+24>>2]](e,d+8|0,a,1,0);b:{switch(J[d+44>>2]){case 0:b=J[d+48>>2]==1?J[d+36>>2]==1?J[d+40>>2]==1?J[d+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[d+32>>2]!=1){if(J[d+48>>2]|J[d+36>>2]!=1|J[d+40>>2]!=1){break a}}b=J[d+24>>2]}ba=d- -64|0;return b}function Ca(a,b){var c=0,d=0,e=0,f=0;c=J[a>>2];a:{if(b){b=J[c+12>>2];d=J[c+8>>2]+1|0;b=d?b:b+1|0;J[c+8>>2]=d;J[c+12>>2]=b;b=J[a+28>>2];J[a+24>>2]=J[a+24>>2]|1<<b;break a}b=J[c+4>>2];d=J[c>>2]+1|0;b=d?b:b+1|0;J[c>>2]=d;J[c+4>>2]=b;b=J[a+28>>2]}b=b+1|0;J[a+28>>2]=b;b:{c:{if((b|0)==32){b=J[a+16>>2];d:{if((b|0)!=J[a+20>>2]){J[b>>2]=J[a+24>>2];J[a+16>>2]=b+4;break d}e=b;b=J[a+12>>2];c=e-b|0;f=c>>2;d=f+1|0;if(d>>>0>=1073741824){break c}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0<e>>>0?e:d;if(d){if(d>>>0>=1073741824){break b}e=oa(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=J[a+24>>2];c=ta(e,b,c);J[a+20>>2]=c+(d<<2);J[a+16>>2]=f+4;J[a+12>>2]=c;if(!b){break d}na(b)}J[a+24>>2]=0;J[a+28>>2]=0}return}qa();B()}xa();B()}function pa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}H[a|0]=b;d=a+c|0;H[d-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[d-3|0]=b;H[d-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=P(b&255,16843009);J[e>>2]=b;d=c-d&-4;c=d+e|0;J[c-4>>2]=b;if(d>>>0<9){break a}J[e+8>>2]=b;J[e+4>>2]=b;J[c-8>>2]=b;J[c-12>>2]=b;if(d>>>0<25){break a}J[e+24>>2]=b;J[e+20>>2]=b;J[e+16>>2]=b;J[e+12>>2]=b;J[c-16>>2]=b;J[c-20>>2]=b;J[c-24>>2]=b;J[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Hl(b,0,1,1);f=ca;b=e+g|0;while(1){J[b+24>>2]=d;J[b+28>>2]=f;J[b+16>>2]=d;J[b+20>>2]=f;J[b+8>>2]=d;J[b+12>>2]=f;J[b>>2]=d;J[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function De(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{g=a+16|0;f=J[g>>2];b:{if(!f){break b}i=J[b>>2];b=g;while(1){h=(i|0)>J[f+16>>2];b=h?b:f;f=J[(h?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(g|0)|(i|0)<J[b+16>>2]){break b}f=J[b+24>>2];if(!f){break b}m=b+20|0;b=K[c+11|0];g=b<<24>>24<0;i=g?J[c>>2]:c;b=g?J[c+4>>2]:b;while(1){g=K[f+27|0];h=g<<24>>24<0;g=h?J[f+20>>2]:g;k=g>>>0<b>>>0;c:{d:{e:{f:{g:{h:{j=k?g:b;if(j){h=h?J[f+16>>2]:f+16|0;l=Ba(i,h,j);if(l){break h}if(b>>>0>=g>>>0){break g}break c}if(b>>>0>=g>>>0){break f}break c}if((l|0)<0){break c}}g=Ba(h,i,j);if(g){break e}}if(k){break d}break a}if((g|0)<0){break d}break a}f=f+4|0}f=J[f>>2];if(f){continue}break}}Be(a,c,d,e);return}Be(m,c,d,e)}function jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+16|0;e=J[f>>2];a:{if(!e){break a}g=J[b>>2];b=f;while(1){h=(g|0)>J[e+16>>2];b=h?b:e;e=J[(h?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(f|0)|(g|0)<J[b+16>>2]){break a}e=J[b+24>>2];if(!e){break a}g=b+20|0;b=K[c+11|0];f=b<<24>>24<0;h=f?J[c>>2]:c;b=f?J[c+4>>2]:b;while(1){f=K[e+27|0];i=f<<24>>24<0;f=i?J[e+20>>2]:f;k=f>>>0<b>>>0;b:{c:{d:{e:{f:{g:{j=k?f:b;if(j){i=i?J[e+16>>2]:e+16|0;l=Ba(h,i,j);if(l){break g}if(b>>>0>=f>>>0){break f}break b}if(b>>>0>=f>>>0){break e}break b}if((l|0)<0){break b}}f=Ba(i,h,j);if(f){break d}}if(k){break c}return Bb(g,c,d)}if((f|0)<0){break c}return Bb(g,c,d)}e=e+4|0}e=J[e>>2];if(e){continue}break}}return Bb(a,c,d)}function Fd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{e=J[a+20>>2];b:{if(!((!J[a+16>>2]&(e|0)<=0|(e|0)<0)&(!!b&(c|0)>=0|(c|0)>0))){break b}H[a+24|0]=d;e=b+7|0;c=e>>>0<7?c+1|0:c;e=(c&7)<<29|e>>>3;J[a+16>>2]=e;J[a+20>>2]=c>>>3;f=J[a+4>>2];h=J[a>>2];c=f-h|0;b=c+8|0;d=d?b:c;b=d+e|0;c:{if(b>>>0>c>>>0){e=b-c|0;g=J[a+8>>2];if(e>>>0<=g-f>>>0){i=a,j=pa(f,0,e)+e|0,J[i+4>>2]=j;break c}if((b|0)<0){break a}f=g-h|0;g=f<<1;f=f>>>0>=1073741823?2147483647:b>>>0<g>>>0?g:b;g=oa(f);pa(g+c|0,0,e);c=ta(g,h,c);J[a+8>>2]=c+f;J[a+4>>2]=b+c;J[a>>2]=c;if(!h){break c}na(h);break c}if(b>>>0>=c>>>0){break c}J[a+4>>2]=b+h}c=J[a>>2];b=oa(8);J[b+4>>2]=0;J[b>>2]=c+d;c=J[a+12>>2];J[a+12>>2]=b;if(!c){break b}na(c)}return}qa();B()}function Ce(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=J[e>>2];a:{if(!d){break a}f=J[b>>2];b=e;while(1){g=(f|0)>J[d+16>>2];b=g?b:d;d=J[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)<J[b+16>>2]){break a}d=J[b+24>>2];if(!d){break a}f=b+20|0;b=K[c+11|0];e=b<<24>>24<0;g=e?J[c>>2]:c;b=e?J[c+4>>2]:b;while(1){e=K[d+27|0];h=e<<24>>24<0;e=h?J[d+20>>2]:e;j=e>>>0<b>>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?J[d+16>>2]:d+16|0;k=Ba(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Ba(h,g,i);if(e){break d}}if(j){break c}return Dd(f,c)}if((e|0)<0){break c}return Dd(f,c)}d=d+4|0}d=J[d>>2];if(d){continue}break}}return Dd(a,c)}function td(a,b,c){var d=0,e=0,f=0,g=0;Aa(J[c+8>>2],b);e=J[c>>2];g=c+4|0;if((e|0)!=(g|0)){while(1){if(!hf(b,e+16|0)){return}d=J[e+32>>2]-J[e+28>>2]|0;Aa(d,b);f=J[b+20>>2];if(!J[b+16>>2]&(f|0)<=0|(f|0)<0){f=J[e+28>>2];sa(b,J[b+4>>2],f,d+f|0)}f=J[e+4>>2];a:{if(f){while(1){d=f;f=J[d>>2];if(f){continue}break a}}while(1){d=J[e+8>>2];f=J[d>>2]!=(e|0);e=d;if(f){continue}break}}e=d;if((d|0)!=(g|0)){continue}break}}Aa(J[c+20>>2],b);d=J[c+12>>2];c=c+16|0;if((d|0)==(c|0)){return}while(1){if(!hf(b,d+16|0)){return}td(a,b,J[d+28>>2]);f=d;e=J[d+4>>2];b:{if(e){while(1){d=e;e=J[d>>2];if(e){continue}break b}}while(1){d=J[f+8>>2];e=J[d>>2]!=(f|0);f=d;if(e){continue}break}}if((c|0)!=(d|0)){continue}break}}function kl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=J[b+4>>2]-J[b>>2]>>2;f=J[a+8>>2];i=K[f+24|0];d=i;g=ba+-64|0;ba=g;e=Lc(g);h=P(d,J[3712]);Nd(e,J[J[a+8>>2]+56>>2],0,d,5,h,h>>31);e=jg(oa(96),e);Kd(e,j);d=J[a+32>>2];J[a+32>>2]=e;if(d){Ka(d)}a:{if(!c){break a}d=J[a+32>>2];H[d+84|0]=0;h=J[d+68>>2];e=J[d+72>>2]-h>>2;if(e>>>0<c>>>0){Ma(d+68|0,c-e|0,2736);break a}if(c>>>0>=e>>>0){break a}J[d+72>>2]=h+(c<<2)}ba=g- -64|0;c=J[b>>2];d=J[b+4>>2];if((c|0)==(d|0)){return 1}a=J[a+32>>2];g=J[J[a>>2]>>2]+J[a+48>>2]|0;b=0;while(1){a=J[c>>2];if(!K[f+84|0]){a=J[J[f+68>>2]+(a<<2)>>2]}a=$c(f,a,H[f+24|0],g+(b<<2)|0);if(a){b=b+i|0;c=c+4|0;if((d|0)!=(c|0)){continue}}break}return a|0}function Rb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=J[a+8>>2];e=J[a>>2];if(h>>>0<=d-e>>2>>>0){d=J[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0<h>>>0?f:c;if((g|0)!=(b|0)){while(1){J[e>>2]=J[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){J[d>>2]=J[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}J[a+4>>2]=d;return}J[a+4>>2]=e;return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ua(d,c,b)+b|0}J[a+4>>2]=d;return}qa();B()}function Na(a,b,c){var d=0,e=0,f=0;e=ba-16|0;ba=e;J[a+4>>2]=0;a:{b:{if(!b){break b}f=J[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){J[a+4>>2]=b;break c}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0<f>>>0?f:d}else{d=2147483647}wc(e,d);f=J[a>>2];J[a>>2]=J[e>>2];J[e>>2]=f;d=J[a+4>>2];J[a+4>>2]=b;J[e+4>>2]=d;d=J[a+8>>2];J[a+8>>2]=J[e+8>>2];J[e+8>>2]=d;if(!f){break c}na(f)}d=b>>>5|0;a=J[a>>2];if(K[c|0]){if(b>>>0>=32){pa(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){pa(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}ba=e+16|0;return}qa();B()}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=ba-16|0;ba=h;a:{b:{c=J[a+8>>2];c:{if((c|0)!=J[a+12>>2]){J[c>>2]=b;J[a+8>>2]=c+4;break c}f=c;c=J[a+4>>2];e=f-c|0;g=e>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=b;e=ta(f,c,e);J[a+12>>2]=e+(d<<2);J[a+8>>2]=g+4;J[a+4>>2]=e;if(!c){break c}na(c)}c=J[a+16>>2];e=J[a+20>>2]-c>>2;d:{if((e|0)>(b|0)){break d}J[h+12>>2]=-1;d=b+1|0;if(d>>>0>e>>>0){jc(a+16|0,d-e|0,h+12|0);c=J[a+16>>2];break d}if(d>>>0>=e>>>0){break d}J[a+20>>2]=(d<<2)+c}J[(b<<2)+c>>2]=(J[a+8>>2]-J[a+4>>2]>>2)-1;ba=h+16|0;return}qa();B()}xa();B()}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ba-48|0;ba=d;J[d+40>>2]=J[a- -64>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+60>>2]+(e>>>3&536870908)>>2]>>>e|0;Ca(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)<J[d+40>>2]){continue}break}}ya(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;sa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+24>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}sa(b,J[b+4>>2],d+44|0,f)}wa(c);ba=d+48|0;return 1}function rh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ba-48|0;ba=d;J[d+40>>2]=J[a+80>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+76>>2]+(e>>>3&536870908)>>2]>>>e|0;Ca(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)<J[d+40>>2]){continue}break}}ya(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;sa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+16>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}sa(b,J[b+4>>2],d+44|0,f)}wa(c);ba=d+48|0;return 1}function Ic(a,b){var c=0,d=0,e=0,f=0,g=0;a:{b:{c:{e=J[a>>2];f=J[a+4>>2]-e>>2;c=f+1|0;if(c>>>0<1073741824){e=J[a+8>>2]-e|0;g=e>>>1|0;c=e>>>0>=2147483644?1073741823:c>>>0<g>>>0?g:c;if(c){if(c>>>0>=1073741824){break c}d=oa(c<<2)}e=J[b>>2];J[b>>2]=0;b=(f<<2)+d|0;J[b>>2]=e;c=(c<<2)+d|0;e=b+4|0;d=J[a+4>>2];f=J[a>>2];if((d|0)==(f|0)){break b}while(1){d=d-4|0;g=J[d>>2];J[d>>2]=0;b=b-4|0;J[b>>2]=g;if((d|0)!=(f|0)){continue}break}J[a+8>>2]=c;c=J[a+4>>2];J[a+4>>2]=e;d=J[a>>2];J[a>>2]=b;if((c|0)==(d|0)){break a}while(1){c=c-4|0;a=J[c>>2];J[c>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}if((c|0)!=(d|0)){continue}break}break a}qa();B()}xa();B()}J[a+8>>2]=c;J[a+4>>2]=e;J[a>>2]=b}if(d){na(d)}}function kd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0;i=ba-16|0;ba=i;if((b^-1)+2147483631>>>0>=c>>>0){if(K[a+11|0]>>>7|0){k=J[a>>2]}else{k=a}if(b>>>0<1073741799){J[i+12>>2]=b<<1;J[i>>2]=b+c;c=ba-16|0;ba=c;ba=c+16|0;c=i+12|0;c=J[(M[i>>2]<M[c>>2]?c:i)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Ac(i,c);c=J[i>>2];if(e){Ab(c,k,e)}if(g){Ab(c+e|0,h,g)}j=e+f|0;h=d-j|0;if((d|0)!=(j|0)){Ab((c+e|0)+g|0,(e+k|0)+f|0,h)}if((b|0)!=10){na(k)}J[a>>2]=c;J[a+8>>2]=J[a+8>>2]&-2147483648|J[i+4>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;b=a;a=h+(e+g|0)|0;J[b+4>>2]=a;H[i+12|0]=0;H[a+c|0]=K[i+12|0];ba=i+16|0;return}gb();B()}function Lk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;J[b>>2]=1;f=b+8|0;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Gc(f,d+4|0);c=J[f>>2]}c=c+d|0;d=J[a+4>>2];H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=J[a+8>>2];if((c|0)!=J[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=J[b+8>>2];e=J[b+12>>2]-c|0;if(e>>>0<=4294967291){Gc(f,e+4|0);c=J[f>>2]}c=c+e|0;e=J[g>>2];H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;d=d+1|0;c=J[a+8>>2];if(d>>>0<J[a+12>>2]-c>>2>>>0){continue}break}}c=J[b+12>>2];b=J[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Gc(f,c+4|0);b=J[f>>2]}b=b+c|0;a=J[a+20>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function bb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){f=J[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0<g>>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){ta(e,b,i)}if(g>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=e+i;return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ua(d,c,b)+b|0}J[a+4>>2]=d;return}qa();B()}function Xg(a,b,c){var d=0,e=0,f=0;d=ba-16|0;ba=d;J[d+12>>2]=b;b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);f=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=e;H[b+13|0]=e>>>8;H[b+14|0]=e>>>16;H[b+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);f=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=e;H[b+5|0]=e>>>8;H[b+6|0]=e>>>16;H[b+7|0]=e>>>24;H[b+17|0]=0;Wg(a+4|0,d+12|0,d,c);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0}function Ua(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{if((a|0)==(b|0)){break b}J[c>>2]=J[a>>2];e=a+4|0;if((e|0)==(b|0)){break b}a=J[d>>2];g=J[a>>2];i=J[a+4>>2]-g>>3;a=c;while(1){d=J[e>>2];if(d>>>0>=i>>>0){break a}f=J[a>>2];if(f>>>0>=i>>>0){break a}j=a+4|0;c:{if(M[(d<<3)+g>>2]<M[(f<<3)+g>>2]){J[a+4>>2]=f;h=c;d:{if((a|0)==(c|0)){break d}while(1){k=J[e>>2];if(k>>>0>=i>>>0){break a}f=a-4|0;d=J[f>>2];if(d>>>0>=i>>>0){break a}h=a;if(M[(k<<3)+g>>2]>=M[(d<<3)+g>>2]){break d}J[a>>2]=d;a=f;if((c|0)!=(a|0)){continue}break}h=c}J[h>>2]=J[e>>2];break c}J[j>>2]=d}a=j;e=e+4|0;if((e|0)!=(b|0)){continue}break}}return}ra();B()}function mk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=ba-32|0;ba=f;d=d-e|0;if((d|0)>0){i=a+8|0;k=0-e<<2;while(1){j=d<<2;g=j+b|0;h=g+k|0;l=J[h>>2];h=J[h+4>>2];m=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=m;J[f+8>>2]=l;J[f+12>>2]=h;Ya(f+24|0,i,f+16|0,f+8|0);g=c+j|0;J[g>>2]=J[f+24>>2];J[g+4>>2]=J[f+28>>2];d=d-e|0;if((d|0)>0){continue}break}}d=e>>>0>1073741823?-1:e<<2;d=pa(oa(d),0,d);e=J[d>>2];g=J[d+4>>2];i=J[b+4>>2];J[f+16>>2]=J[b>>2];J[f+20>>2]=i;J[f+8>>2]=e;J[f+12>>2]=g;Ya(f+24|0,a+8|0,f+16|0,f+8|0);J[c>>2]=J[f+24>>2];J[c+4>>2]=J[f+28>>2];na(d);ba=f+32|0;return 1}function qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ba-32|0;ba=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<4){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=lh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Ya(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ba=g+32|0;return i|0}ra();B()}function Ck(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ba-32|0;ba=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<4){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=qh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Ya(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ba=g+32|0;return i|0}ra();B()}function hi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;cf(a,b,c);e=J[a+96>>2];a=J[a+100>>2];a:{if((e|0)==(a|0)){break a}d=(a-e|0)/12|0;f=d>>>0<=1?1:d;g=f&1;a=J[b>>2];c=0;if(d>>>0>=2){f=f&-2;d=0;while(1){b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];b=P(c|1,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!g){break a}b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2]}}function Tg(a,b){var c=0,d=0,e=0,f=0;f=ba-16|0;ba=f;c=oa(16);J[f>>2]=c;J[f+4>>2]=15;J[f+8>>2]=-2147483632;d=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);e=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+7|0]=e;H[c+8|0]=e>>>8;H[c+9|0]=e>>>16;H[c+10|0]=e>>>24;H[c+11|0]=d;H[c+12|0]=d>>>8;H[c+13|0]=d>>>16;H[c+14|0]=d>>>24;d=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);e=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+15|0]=0;vb(a+4|0,f,b);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function Gi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=ba-16|0;ba=a;a:{if(!b){break a}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;h=b+96|0;g=J[b+96>>2];e=(J[b+100>>2]-g|0)/12|0;b:{if(e>>>0<c>>>0){of(h,c-e|0,a);break b}if(c>>>0<e>>>0){J[b+100>>2]=g+P(c,12)}if(!c){break a}}g=J[h>>2];e=0;while(1){i=P(e,12);f=i+d|0;j=J[f>>2];k=J[f+8>>2];l=J[f+4>>2];f=(J[b+100>>2]-g|0)/12|0;c:{if(f>>>0>e>>>0){e=e+1|0;break c}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=e+1|0;of(h,e-f|0,a);g=J[h>>2]}f=g+i|0;J[f+8>>2]=k;J[f+4>>2]=l;J[f>>2]=j;if((c|0)!=(e|0)){continue}break}}ba=a+16|0;return(b|0)!=0|0}function Hb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=1;j=d&2147483647;l=j;k=(j|0)==2147418112;a:{if(k&!c?a|b:k&(c|0)!=0|j>>>0>2147418112){break a}j=h&2147483647;k=(j|0)==2147418112;if(k&!g?e|f:k&(g|0)!=0|j>>>0>2147418112){break a}if(!(a|e|(c|g)|(b|f|(j|l)))){return 0}i=d&h;if((i|0)>0|(i|0)>=0){i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0<e>>>0|b>>>0<f>>>0:c>>>0<g>>>0&(d|0)<=(h|0)|(d|0)<(h|0)){break a}return(a^e|c^g|(b^f|d^h))!=0}i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>e>>>0|b>>>0>f>>>0:c>>>0>g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}i=(a^e|c^g|(b^f|d^h))!=0}return i}function Jb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=P(b,12);d=oa(b);J[a+4>>2]=d;J[a>>2]=d;e=b+d|0;J[a+8>>2]=e;f=J[c+4>>2];g=J[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;pa(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;b=oa(h);J[d>>2]=b;J[d+8>>2]=b+i;c=g;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}J[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e}return}qa();B()}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;qa();B()}function tc(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;e=J[a+8>>2];d=J[a>>2];if(g>>>0<=e-d>>2>>>0){e=J[a+4>>2]-d|0;f=e>>2;e=f>>>0<g>>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){ta(d,b,h)}if(f>>>0<g>>>0){b=c-e|0;d=J[a+4>>2];if((c|0)!=(e|0)){ta(d,e,b)}J[a+4>>2]=b+d;return}J[a+4>>2]=d+h;return}if(d){J[a+4>>2]=d;na(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}a:{if((f|0)<0){break a}d=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a+4>>2]=d;J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){ua(d,b,f)}J[a+4>>2]=d+(g<<2);return}qa();B()}function jg(a,b){var c=0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=c;c=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;J[a+88>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=J[a+4>>2];a:{b:{if(!a){break b}d=K[b+11|0];c=d<<24>>24<0;g=c?J[b>>2]:b;d=c?J[b+4>>2]:d;b=f;while(1){e=K[a+27|0];c=e<<24>>24<0;e=c?J[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Ba(c?J[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=J[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=K[b+27|0];a=c<<24>>24<0;d:{c=a?J[b+20>>2]:c;e=c>>>0<d>>>0?c:d;if(e){a=Ba(g,a?J[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function xe(a){var b=0,c=0,d=0,e=0;c=J[a+152>>2];if(c){d=c;b=J[a+156>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+152>>2]}J[a+156>>2]=c;na(d)}c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;na(d)}b=J[a+128>>2];if(b){J[a+132>>2]=b;na(b)}b=J[a+116>>2];if(b){J[a+120>>2]=b;na(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;na(b)}tb(a+84|0);tb(a- -64|0);tb(a+44|0);wa(a+12|0)}function Uh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(pb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(pb(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];da[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];da[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function xc(a,b){var c=0,d=0,e=0,f=0;c=J[a+16>>2];if(b){J[a+12>>2]=J[a+12>>2]|-2147483648>>>c}b=c+1|0;J[a+16>>2]=b;a:{b:{if((b|0)==32){b=J[a+4>>2];c:{if((b|0)!=J[a+8>>2]){J[b>>2]=J[a+12>>2];J[a+4>>2]=b+4;break c}d=b;b=J[a>>2];c=d-b|0;f=c>>2;e=f+1|0;if(e>>>0>=1073741824){break b}d=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<d>>>0?d:e;if(e){if(e>>>0>=1073741824){break a}d=oa(e<<2)}else{d=0}f=d+(f<<2)|0;J[f>>2]=J[a+12>>2];c=ta(d,b,c);J[a+8>>2]=c+(e<<2);J[a+4>>2]=f+4;J[a>>2]=c;if(!b){break c}na(b)}J[a+12>>2]=0;J[a+16>>2]=0}return}qa();B()}xa();B()}function ue(a){var b=0,c=0,d=0,e=0;c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;na(d)}c=J[a+128>>2];if(c){d=c;b=J[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+128>>2]}J[a+132>>2]=c;na(d)}b=J[a+116>>2];if(b){J[a+120>>2]=b;na(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;na(b)}b=J[a+92>>2];if(b){J[a+96>>2]=b;na(b)}tb(a+72|0);tb(a+52|0);tb(a+32|0);tb(a+12|0)}function Qg(a,b,c,d,e){var f=0,g=0,h=0;f=ba-16|0;ba=f;g=Pg(b,c,f+12|0,f+8|0,d);d=J[g>>2];if(d){b=0}else{d=oa(40);c=d+16|0;a:{if(H[e+11|0]>=0){h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break a}Ga(c,J[e>>2],J[e+4>>2])}c=d+28|0;b:{if(H[e+23|0]>=0){e=e+12|0;h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break b}Ga(c,J[e+12>>2],J[e+16>>2])}J[d+8>>2]=J[f+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[g>>2]=d;e=d;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[g>>2]}sb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=d;ba=f+16|0}function ig(a){var b=0,c=0,d=0,e=0;za(a);c=J[a+84>>2];a:{if((c|0)<=0){break a}b=c<<5;d=oa(c>>>0>134217727?-1:b|4);J[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){J[b>>2]=0;J[b+4>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;b=b+32|0;if((c|0)!=(b|0)){continue}break}e=J[a+80>>2];J[a+80>>2]=d;if(e){c=e-4|0;d=J[c>>2];if(d){b=(d<<5)+e|0;while(1){b=wa(b-32|0);if((e|0)!=(b|0)){continue}break}}na(c)}if(J[a+84>>2]<=0){break a}b=0;while(1){za(J[a+80>>2]+(b<<5)|0);b=b+1|0;if((b|0)<J[a+84>>2]){continue}break}}}function qb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ba-16|0;ba=f;A(+b);g=v(1)|0;d=v(0)|0;c=g&2147483647;e=c+-1048576|0;a:{if((e|0)==2145386495|e>>>0<2145386495){h=d<<28;e=c>>>4|0;c=(c&15)<<28|d>>>4;d=e+1006632960|0;break a}if((c|0)==2146435072|c>>>0>2146435072){h=d<<28;c=(g&15)<<28|d>>>4;d=g>>>4|2147418112;break a}if(!(c|d)){c=0;d=0;break a}e=c;c=c?S(c):S(d)+32|0;Pa(f,d,e,0,0,c+49|0);i=J[f>>2];h=J[f+4>>2];e=15372-c<<16;c=J[f+8>>2];d=e|J[f+12>>2]^65536}J[a>>2]=i;J[a+4>>2]=h;J[a+8>>2]=c;J[a+12>>2]=g&-2147483648|d;ba=f+16|0}function yi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=ba-48|0;ba=f;a:{if(!b){a=0;break a}e=f+16|0;J[e>>2]=0;J[e+4>>2]=0;H[e+24|0]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;g=0;b:{if((Nb(b,0)|0)==-1){break b}if(c){g=0;if(!(da[J[J[b>>2]+16>>2]](b)|0)){break b}da[J[J[b>>2]+20>>2]](b)}ah(f,a,b,e);a=J[f>>2];if(H[f+15|0]<0){na(J[f+4>>2])}g=0;if(a){break b}vd(d,J[e>>2],J[e+4>>2]);g=J[e+4>>2]-J[e>>2]|0}a=g;b=J[e+12>>2];J[e+12>>2]=0;if(b){na(b)}b=J[e>>2];if(!b){break a}J[e+4>>2]=b;na(b)}ba=f+48|0;return a|0}function re(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2284;d=J[a+60>>2];if(d){b=d;c=J[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){Ka(b)}if((c|0)!=(d|0)){continue}break}b=J[a+60>>2]}J[a+64>>2]=d;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}d=J[a+36>>2];if(d){b=d;c=J[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;da[J[J[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;na(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Ld(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=J[a+8>>2];d=J[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=pa(d,0,b)+b|0}J[a+4>>2]=d;return}a:{f=J[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=oa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=pa(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;J[c>>2]=J[d>>2];if((d|0)!=(f|0)){continue}break}}J[a+8>>2]=(e<<2)+i;J[a+4>>2]=b;J[a>>2]=c;if(f){na(f)}return}qa();B()}xa();B()}function zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ba-48|0;ba=e;a:{if(!b){a=0;break a}d=e+16|0;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=0;b:{if((Nb(b,0)|0)==-1){break b}f=0;if(!(da[J[J[b>>2]+16>>2]](b)|0)){break b}da[J[J[b>>2]+20>>2]](b);Zg(e,a,b,d);a=J[e>>2];if(H[e+15|0]<0){na(J[e+4>>2])}f=0;if(a){break b}vd(c,J[d>>2],J[d+4>>2]);f=J[d+4>>2]-J[d>>2]|0}a=f;b=J[d+12>>2];J[d+12>>2]=0;if(b){na(b)}b=J[d>>2];if(!b){break a}J[d+4>>2]=b;na(b)}ba=e+48|0;return a|0}function Gb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0;a:{if(f&64){c=f+-64|0;b=c&31;if((c&63)>>>0>=32){c=0;b=e>>>b|0}else{c=e>>>b|0;b=((1<<b)-1&e)<<32-b|d>>>b}d=0;e=0;break a}if(!f){break a}i=d;h=64-f|0;g=h&31;if((h&63)>>>0>=32){h=i<<g;j=0}else{h=(1<<g)-1&i>>>32-g|e<<g;j=i<<g}i=b;b=f&31;if((f&63)>>>0>=32){g=0;b=c>>>b|0}else{g=c>>>b|0;b=((1<<b)-1&c)<<32-b|i>>>b}b=j|b;c=g|h;g=d;d=f&31;if((f&63)>>>0>=32){h=0;d=e>>>d|0}else{h=e>>>d|0;d=((1<<d)-1&e)<<32-d|g>>>d}e=h}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function hf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=ba-16|0;ba=c;e=K[b+11|0];e=e<<24>>24<0?J[b+4>>2]:e;a:{if(e>>>0>255){break a}if(!e){H[c+15|0]=0;b=J[a+20>>2];if(!!J[a+16>>2]&(b|0)>=0|(b|0)>0){break a}sa(a,J[a+4>>2],c+15|0,c+16|0);break a}H[c+14|0]=e;d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(a,J[a+4>>2],c+14|0,c+15|0);d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}g=a;h=J[a+4>>2];a=K[b+11|0];d=a<<24>>24<0;f=d?J[b>>2]:b;sa(g,h,f,(d?J[b+4>>2]:a)+f|0)}ba=c+16|0;return e>>>0<256}function Gc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];e=J[a>>2];d=c-e|0;b:{if(d>>>0<b>>>0){g=b-d|0;f=J[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=pa(c,0,g)+g|0,J[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<f>>>0?f:b;f=oa(c);pa(f+d|0,0,g);d=ta(f,e,d);J[a+8>>2]=d+c;J[a+4>>2]=b+d;J[a>>2]=d;if(!e){break b}na(e);break b}if(b>>>0>=d>>>0){break b}J[a+4>>2]=b+e}b=J[a+28>>2];c=b;d=b+1|0;b=J[a+24>>2]+1|0;e=b?c:d;J[a+24>>2]=b;J[a+28>>2]=e;return}qa();B()}function pi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ba-48|0;ba=d;e=J[a+4>>2];a:{if(!e){break a}if(b){if(!(da[J[J[e>>2]+16>>2]](e)|0)){break a}b=J[a+4>>2];da[J[J[b>>2]+20>>2]](b)}b=d+16|0;J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;fe(d,J[a>>2],b);a=J[d>>2];if(H[d+15|0]<0){na(J[d+4>>2])}if(!a){vd(c,J[b>>2],J[b+4>>2]);f=J[b+4>>2]-J[b>>2]|0}a=J[b+12>>2];J[b+12>>2]=0;if(a){na(a)}a=J[b>>2];if(!a){break a}J[b+4>>2]=a;na(a)}ba=d+48|0;return f|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if((da[J[J[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Nb(J[J[a+4>>2]+4>>2],da[J[J[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}c=J[a+4>>2];g=0;b:{if((d|0)<0){break b}h=J[c+4>>2];if(J[h+12>>2]-J[h+8>>2]>>2<=(d|0)){break b}c=J[J[c+8>>2]+(J[J[c+20>>2]+(d<<2)>>2]<<2)>>2];g=da[J[J[c>>2]+36>>2]](c,d)|0}if(!(da[J[J[b>>2]+28>>2]](b,g)|0)){break a}e=1;f=f+1|0;if((da[J[J[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Pa(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(f&64){d=b;e=f+-64|0;b=e&31;if((e&63)>>>0>=32){e=d<<b;d=0}else{e=(1<<b)-1&d>>>32-b|c<<b;d=d<<b}b=0;c=0;break a}if(!f){break a}g=d;d=f&31;if((f&63)>>>0>=32){h=g<<d;i=0}else{h=(1<<d)-1&g>>>32-d|e<<d;i=g<<d}g=b;e=64-f|0;d=e&31;if((e&63)>>>0>=32){e=0;b=c>>>d|0}else{e=c>>>d|0;b=((1<<d)-1&c)<<32-d|g>>>d}d=i|b;e=e|h;b=f&31;if((f&63)>>>0>=32){h=g<<b;b=0}else{h=(1<<b)-1&g>>>32-b|c<<b;b=g<<b}c=h}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function se(a,b){ya(a,b);ya(a+32|0,b);ya(a- -64|0,b);ya(a+96|0,b);ya(a+128|0,b);ya(a+160|0,b);ya(a+192|0,b);ya(a+224|0,b);ya(a+256|0,b);ya(a+288|0,b);ya(a+320|0,b);ya(a+352|0,b);ya(a+384|0,b);ya(a+416|0,b);ya(a+448|0,b);ya(a+480|0,b);ya(a+512|0,b);ya(a+544|0,b);ya(a+576|0,b);ya(a+608|0,b);ya(a+640|0,b);ya(a+672|0,b);ya(a+704|0,b);ya(a+736|0,b);ya(a+768|0,b);ya(a+800|0,b);ya(a+832|0,b);ya(a+864|0,b);ya(a+896|0,b);ya(a+928|0,b);ya(a+960|0,b);ya(a+992|0,b);ya(a+1024|0,b)}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=J[J[a+8>>2]+40>>2];h=oa((d|0)<0?-1:d);g=J[b>>2];i=J[b+4>>2];if((g|0)!=(i|0)){k=d+h|0;while(1){e=J[(j<<2)+g>>2];f=J[a+8>>2];if(!K[f+84|0]){e=J[J[f+68>>2]+(e<<2)>>2]}l=J[J[f>>2]>>2];d=J[f+40>>2];e=J[f+48>>2]+Hl(d,J[f+44>>2],e,0)|0;e=ua(h,e+l|0,d);d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],e,k);g=J[b>>2];i=J[b+4>>2]}j=j+1|0;if(j>>>0<i-g>>2>>>0){continue}break}}na(h);return 1}function Pe(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!J[J[4843]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){H[a+1|0]=b&63|128;H[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){H[a+2|0]=b&63|128;H[a|0]=b>>>12|224;H[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){H[a+3|0]=b&63|128;H[a|0]=b>>>18|240;H[a+2|0]=b>>>6&63|128;H[a+1|0]=b>>>12&63|128;a=4;break a}}J[4804]=25;a=-1}else{a=1}break a}H[a|0]=b;a=1}return a}function Je(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ba-16|0;ba=f;d=ba-32|0;ba=d;e=ba-16|0;ba=e;J[e+12>>2]=a;J[e+8>>2]=a+b;J[d+24>>2]=J[e+12>>2];J[d+28>>2]=J[e+8>>2];ba=e+16|0;b=ba-16|0;ba=b;h=J[d+28>>2];e=J[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){ta(c,e,g)}J[b+12>>2]=e+g;J[b+8>>2]=c+g;J[d+16>>2]=J[b+12>>2];J[d+20>>2]=J[b+8>>2];ba=b+16|0;J[d+12>>2]=(J[d+16>>2]-a|0)+a;J[d+8>>2]=(J[d+20>>2]-c|0)+c;J[f+8>>2]=J[d+12>>2];J[f+12>>2]=J[d+8>>2];ba=d+32|0;ba=f+16|0;return J[f+12>>2]}function aj(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;d=J[a+8>>2];a:{if((d|0)==J[a+12>>2]){b=bf(oa(76),b);J[b+36>>2]=0;J[b+40>>2]=0;J[b>>2]=2284;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+68>>2]=0;J[b+72>>2]=0;J[c+8>>2]=b;d=J[a+12>>2];b:{if(d>>>0<M[a+16>>2]){J[c+8>>2]=0;J[d>>2]=b;J[a+12>>2]=d+4;break b}Ic(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}da[J[J[a>>2]+4>>2]](a);break a}kc(J[d>>2],b)}ba=c+16|0;return 1}function Wg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;e=ba-48|0;ba=e;h=J[b>>2];f=a+16|0;b=J[f>>2];a:{b:{if(!b){break b}g=f;while(1){i=J[b+16>>2]<(h|0);g=i?g:b;b=J[(i?b+4|0:b)>>2];if(b){continue}break}if((g|0)==(f|0)){break b}if(J[g+16>>2]<=(h|0)){break a}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=h;J[e+12>>2]=b;b=a+12|0;a=e+8|0;Oc(e+40|0,b,a,a);g=J[e+40>>2];Da(a|4,J[e+16>>2]);Da(f,J[e+28>>2])}vb(g+20|0,c,d);ba=e+48|0}function Ec(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=14964;b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}b=J[a+44>>2];if(b){J[a+48>>2]=b;na(b)}b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}b=J[a+8>>2];if(b){d=b;c=J[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Ka(d)}if((b|0)!=(c|0)){continue}break}d=J[a+8>>2]}J[a+12>>2]=b;na(d)}b=J[a+4>>2];J[a+4>>2]=0;if(b){pf(b)}return a|0}function Ah(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2496;b=J[a+72>>2];J[a+72>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){na(b)}d=J[a+36>>2];if(d){c=J[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;na(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Ra(a){J[a>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;H[a+28|0]=1;J[a+20>>2]=0;J[a+24>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+72>>2]=a+4;J[a+104>>2]=0;J[a+108>>2]=0;H[a+100|0]=1;J[a+112>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0}function Fa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=pa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=c;c=J[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=oa(d<<2)}b=b<<2;e=pa((h<<2)+i|0,0,b);f=d<<2;d=ta(i,c,g);J[a+8>>2]=f+d;J[a+4>>2]=b+e;J[a>>2]=d;if(c){na(c)}return}qa();B()}xa();B()}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=pa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=c;c=J[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=oa(d<<3)}b=b<<3;e=pa((h<<3)+i|0,0,b);f=d<<3;d=ta(i,c,g);J[a+8>>2]=f+d;J[a+4>>2]=b+e;J[a>>2]=d;if(c){na(c)}return}qa();B()}xa();B()}function Oe(a,b,c,d,e){var f=0,g=0,h=0;h=-1;g=d&2147483647;f=(g|0)==2147418112;a:{if(f&!c?a|b:f&(c|0)!=0|g>>>0>2147418112){break a}f=e&2147483647;if(((f|0)==2147418112&0|f>>>0>2147418112)&(f|0)!=2147418112){break a}if(!(a|c|(f|g|b))){return 0}f=d&e;if((f|0)>0|(f|0)>=0){if(((c|0)!=0|(d|0)!=(e|0))&(d|0)<(e|0)){break a}return(a|c|(d^e|b))!=0}if(!c&(d|0)==(e|0)?a|b:(c|0)!=0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}h=(a|c|(d^e|b))!=0}return h}function Xa(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0;i=Hl(b,c,h,i);h=ca;e=Hl(d,e,f,g);i=e+i|0;d=ca+h|0;h=e>>>0>i>>>0?d+1|0:d;j=g;e=0;k=c;d=0;c=Hl(g,e,c,d);g=c+i|0;i=ca+h|0;l=g;c=c>>>0>g>>>0?i+1|0:i;g=Hl(f,0,b,0);h=ca;i=0;d=Hl(f,i,k,d);h=h+d|0;f=ca+i|0;f=d>>>0>h>>>0?f+1|0:f;i=f+l|0;d=c;f=f>>>0>i>>>0?d+1|0:d;c=Hl(b,m,j,e)+h|0;e=ca;e=c>>>0<h>>>0?e+1|0:e;h=e+i|0;i=f;J[a+8>>2]=h;J[a+12>>2]=e>>>0>h>>>0?i+1|0:i;J[a>>2]=g;J[a+4>>2]=c}function Ia(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];f=J[a>>2];d=c-f|0;b:{if(d>>>0<b>>>0){g=b-d|0;e=J[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=pa(c,0,g)+g|0,J[h+4>>2]=i;return}if((b|0)<0){break a}c=e-f|0;e=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<e>>>0?e:b;e=oa(c);pa(e+d|0,0,g);d=ta(e,f,d);J[a+8>>2]=d+c;J[a+4>>2]=b+d;J[a>>2]=d;if(!f){break b}na(f);return}if(b>>>0>=d>>>0){break b}J[a+4>>2]=b+f}return}qa();B()}function Ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ba-16|0;ba=d;e=J[a+4>>2];a:{if((e|0)==-1){break a}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],J[a+8>>2],J[a+12>>2]);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],a+20|0,a+24|0);c=J[b+20>>2];f=J[b+16>>2];H[d+15|0]=J[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],d+15|0,d+16|0)}ba=d+16|0;return(e|0)!=-1|0}function fj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=J[a+8>>2];b:{if((b|0)<0){break b}c=J[a+4>>2];e=J[c>>2];d=J[c+4>>2]-e>>2;c:{if(d>>>0<b>>>0){Ld(c,b-d|0);f=J[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}J[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=J[a+4>>2];c=J[a>>2];e=J[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}J[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ra();B()}function te(a){za(a);za(a+32|0);za(a- -64|0);za(a+96|0);za(a+128|0);za(a+160|0);za(a+192|0);za(a+224|0);za(a+256|0);za(a+288|0);za(a+320|0);za(a+352|0);za(a+384|0);za(a+416|0);za(a+448|0);za(a+480|0);za(a+512|0);za(a+544|0);za(a+576|0);za(a+608|0);za(a+640|0);za(a+672|0);za(a+704|0);za(a+736|0);za(a+768|0);za(a+800|0);za(a+832|0);za(a+864|0);za(a+896|0);za(a+928|0);za(a+960|0);za(a+992|0);za(a+1024|0)}function Ga(a,b,c){var d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;a:{b:{if(c>>>0<11){d=a;H[a+11|0]=K[a+11|0]&128|c;H[a+11|0]=K[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Ac(g,d+1|0);d=J[e+8>>2];J[a>>2]=d;J[a+8>>2]=J[a+8>>2]&-2147483648|J[e+12>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;J[a+4>>2]=c}Ab(d,b,c+1|0);ba=e+16|0;return}gb();B()}function Zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ba-96|0;ba=e;f=Ng(e+40|0,c);$g(e,b,c);Mg(f,e);Da(e+24|0,J[e+28>>2]);nb(e+12|0,J[e+16>>2]);Da(e,J[e+4>>2]);fe(a,f,d);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}J[b+40>>2]=J[f+40>>2];J[b+44>>2]=J[f+44>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}J[f>>2]=10256;Da(f+28|0,J[f+32>>2]);nb(f+16|0,J[f+20>>2]);Da(f+4|0,J[f+8>>2]);ba=e+96|0}function mc(a,b){var c=0,d=0,e=0;c=J[a+4>>2];d=c+b|0;J[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){J[J[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=J[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;J[a>>2]=J[a>>2]&(-1<<c&-1>>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){pa(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}}function Oa(a,b,c){var d=0,e=0,f=0;if(!(K[a|0]&32)){a:{d=b;b=a;a=J[b+16>>2];b:{if(!a){if(We(b)){break b}a=J[b+16>>2]}f=J[b+20>>2];if(a-f>>>0<c>>>0){da[J[b+36>>2]](b,d,c)|0;break a}c:{if(J[b+80>>2]<0){break c}a=c;while(1){e=a;if(!a){break c}a=e-1|0;if(K[d+a|0]!=10){continue}break}if(da[J[b+36>>2]](b,d,e)>>>0<e>>>0){break b}d=d+e|0;c=c-e|0;f=J[b+20>>2]}ua(f,d,c);J[b+20>>2]=J[b+20>>2]+c}}}}function Wj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}return a|0}function zl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ba-16|0;ba=d;f=Me(a,b);a:{if(!f){break a}c=J[a+36>>2];if((c|0)==J[a+40>>2]){break a}g=d+16|0;while(1){c=J[(e<<2)+c>>2];h=d,i=da[J[J[c>>2]+32>>2]](c)|0,H[h+15|0]=i;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+15|0,g)}e=e+1|0;c=J[a+36>>2];if(e>>>0<J[a+40>>2]-c>>2>>>0){continue}break}}ba=d+16|0;return f|0}function Vj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}na(a)}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+176>>2];d=J[a+172>>2];e=(c-d|0)/136|0;a:{if((c|0)==(d|0)){break a}c=0;b:{c:{d:{if(J[d>>2]==(b|0)){b=1}else{f=e>>>0<=1?1:e;while(1){c=c+1|0;if((f|0)==(c|0)){break d}if(J[P(c,136)+d>>2]!=(b|0)){continue}break}b=c>>>0<e>>>0}if(b){break c}break a}if(c>>>0<e>>>0){break b}break a}d=(P(c,136)+d|0)+104|0}return d|0}return a+40|0}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;a:{if(!b){d=oa(76);b=oa(12);J[b+8>>2]=J[J[a+4>>2]+80>>2];J[b>>2]=12404;J[b+4>>2]=0;d=pe(d,b,0);J[c+8>>2]=d;b=J[a+12>>2];b:{if(b>>>0<M[a+16>>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+12>>2]=b+4;break b}Ic(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}da[J[J[a>>2]+4>>2]](a);break a}kc(J[J[a+8>>2]>>2],b)}ba=c+16|0;return 1}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+36>>2];if((c|0)!=J[a+40>>2]){while(1){c=P(d,24)+c|0;da[J[J[c>>2]+28>>2]](c,b)|0;d=d+1|0;c=J[a+36>>2];if(d>>>0<(J[a+40>>2]-c|0)/24>>>0){continue}break}}c=J[a+48>>2];if((c|0)!=J[a+52>>2]){d=0;while(1){c=J[(d<<2)+c>>2];Aa((c|0)<0?(c^-1)<<1|1:c<<1,b);d=d+1|0;c=J[a+48>>2];if(d>>>0<J[a+52>>2]-c>>2>>>0){continue}break}}return 1}function ud(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<2)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function rf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<1)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function sf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,P(d,h)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Th(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(pb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!pb(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function Mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ba+-64|0;ba=e;d=da[J[J[a>>2]+44>>2]](a,b)|0;a=da[J[J[a>>2]+40>>2]](a,b)|0;f=Lc(e);g=J[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=J[(a<<2)+14832>>2]}else{a=-1}d=P(a,d);Nd(f,g,0,h,i,d,d>>31);a=jg(oa(96),f);Kd(a,c);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2];J[a+60>>2]=J[b+60>>2];ba=e- -64|0;return a|0}function Md(a,b,c,d,e){var f=0,g=0,h=0;f=oa(32);J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;g=J[a+64>>2];J[a+64>>2]=f;if(g){f=J[g>>2];if(f){J[g+4>>2]=f;na(f)}na(g);f=J[a+64>>2]}h=c&255;g=d-1|0;if(g>>>0<=10){g=J[(g<<2)+14832>>2]}else{g=-1}c=P(g,c);Nd(a,b,f,h,d,c,c>>31);Kd(a,e);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2]}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;e=J[a+84>>2];f=J[e>>2];d=J[e+4>>2];h=J[a+28>>2];g=J[a+20>>2]-h|0;g=d>>>0<g>>>0?d:g;if(g){ua(f,h,g);f=g+J[e>>2]|0;J[e>>2]=f;d=J[e+4>>2]-g|0;J[e+4>>2]=d}d=c>>>0>d>>>0?d:c;if(d){ua(f,b,d);f=d+J[e>>2]|0;J[e>>2]=f;J[e+4>>2]=J[e+4>>2]-d}H[f|0]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;return c|0}function xb(a,b,c){var d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;H[d+15|0]=a&127;a:{if(!b&a>>>0>=128|b){H[d+15|0]=a|128;e=J[c+20>>2];if(!!J[c+16>>2]&(e|0)>=0|(e|0)>0){break a}sa(c,J[c+4>>2],d+15|0,d+16|0);f=xb((b&127)<<25|a>>>7,b>>>7|0,c);break a}a=J[c+20>>2];if(!!J[c+16>>2]&(a|0)>=0|(a|0)>0){break a}g=1;sa(c,J[c+4>>2],d+15|0,d+16|0)}ba=d+16|0;return g|f}function Fe(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function Fc(a,b){var c=0,d=0,e=0,f=0;d=1;a:{if((b|0)==-1){break a}b=P(b,3);if((b|0)==-1){break a}d=-1;e=J[a>>2];a=e+(b<<2)|0;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){d=J[(c<<2)+e>>2]}a=J[a>>2];f=(a|0)==(d|0);b:{c:{if((b>>>0)%3|0){b=b-1|0;break c}b=b+2|0;c=-1;if((b|0)==-1){break b}}c=J[(b<<2)+e>>2]}d=f|(c|0)==(a|0)|(d|0)==(c|0)}return d}function jd(a,b,c){var d=0,e=0,f=0;f=ba-16|0;ba=f;d=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]&127}a:{if(d-e>>>0>=c>>>0){if(!c){break a}if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}Ab(d+e|0,b,c);b=a;a=c+e|0;ld(b,a);H[f+15|0]=0;H[a+d|0]=K[f+15|0];break a}kd(a,d,(c+e|0)-d|0,e,e,0,c,b)}ba=f+16|0}function Xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba+-64|0;ba=e;d=1;a:{if(pb(a,b,0)){break a}d=0;if(!b){break a}b=bd(b,18476,18524);d=0;if(!b){break a}d=e+8|0;pa(d|4,0,52);J[e+56>>2]=1;J[e+20>>2]=-1;J[e+16>>2]=a;J[e+8>>2]=b;da[J[J[b>>2]+28>>2]](b,d,J[c>>2],1);a=J[e+32>>2];if((a|0)==1){J[c>>2]=J[e+24>>2]}d=(a|0)==1}ba=e- -64|0;return d|0}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+32>>2]=c;J[a+28>>2]=b;a:{if(!(da[J[J[a>>2]+52>>2]](a)|0)){break a}e=J[a+4>>2];if((e|0)==J[a+8>>2]){return 1}c=0;while(1){d=c<<2;f=J[d+J[a+36>>2]>>2];d=da[J[J[f>>2]+8>>2]](f,b,J[d+e>>2])|0;if(!d){break a}c=c+1|0;e=J[a+4>>2];if(c>>>0<J[a+8>>2]-e>>2>>>0){continue}break}}return d|0}function Pj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=b;b=J[b+64>>2];e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Na(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+56>>2];b=J[b+52>>2];H[d+14|0]=0;Na(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ba=d+16|0}function Aa(a,b){var c=0,d=0,e=0;c=ba-16|0;ba=c;H[c+15|0]=a&127;a:{if(a>>>0>=128){H[c+15|0]=a|128;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){a=0;break a}sa(b,J[b+4>>2],c+15|0,c+16|0);a=Aa(a>>>7|0,b);break a}a=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}e=1;sa(b,J[b+4>>2],c+15|0,c+16|0)}ba=c+16|0;return a|e}function Wc(a,b){var c=0,d=0;a:{c=J[a+4>>2];d=J[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}wc(a,c);c=J[a+4>>2]}J[a+4>>2]=c+1;d=1<<c;a=J[a>>2]+(c>>>3&536870908)|0;if(K[b|0]){J[a>>2]=d|J[a>>2];return}J[a>>2]=J[a>>2]&(d^-1);return}qa();B()}function Ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=b;e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Na(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+28>>2];b=J[b+24>>2];H[d+14|0]=0;Na(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ba=d+16|0}function Bc(a){var b=0,c=0,d=0,e=0;while(1){b=a;a=b+1|0;c=H[b|0];if((c|0)==32|c-9>>>0<5){continue}break}a:{b:{c:{c=H[b|0];switch(c-43|0){case 0:break b;case 2:break c;default:break a}}e=1}c=H[a|0];b=a}if(c-48>>>0<10){while(1){d=(P(d,10)-H[b|0]|0)+48|0;a=H[b+1|0];b=b+1|0;if(a-48>>>0<10){continue}break}}return e?d:0-d|0}function kj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}return a|0}function Gd(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}na(a)}function nh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ya(a+112|0,b);ba=c+16|0;return 1}function pd(a){var b=0;b=1;a:{if((a|0)>=1024){b=898846567431158e293;if(a>>>0<2047){a=a-1023|0;break a}b=Infinity;a=((a|0)>=3069?3069:a)-2046|0;break a}if((a|0)>-1023){break a}b=2004168360008973e-307;if(a>>>0>4294965304){a=a+969|0;break a}b=0;a=((a|0)<=-2960?-2960:a)+1938|0}x(0,0);x(1,a+1023<<20);return b*+z()}function dh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ya(a+96|0,b);ba=c+16|0;return 1}function hl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ba=c+16|0;return 1}function Jk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ba=c+16|0;return 1}function Ba(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(J[a>>2]!=J[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=K[a|0];e=K[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function $a(a,b){var c=0,d=0,e=0,f=0;d=ba-16|0;ba=d;a:{if(!b){b=0;break a}c=b>>31;e=(c^b)-c|0;c=S(e);Pa(d,e,0,0,0,c+81|0);e=0+J[d+8>>2]|0;c=(J[d+12>>2]^65536)+(16414-c<<16)|0;c=e>>>0<f>>>0?c+1|0:c;f=b&-2147483648|c;c=J[d+4>>2];b=J[d>>2]}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=e;J[a+12>>2]=f;ba=d+16|0}function Cj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function pf(a){var b=0,c=0,d=0;if(a){d=J[a+24>>2];if(d){b=d;c=J[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){lb(b+12|0,J[b+16>>2]);kb(b,J[b+4>>2]);na(b)}if((c|0)!=(d|0)){continue}break}b=J[a+24>>2]}J[a+28>>2]=d;na(b)}lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}}function vh(a){a=a|0;var b=0;J[a>>2]=3512;b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;na(b)}b=J[a+96>>2];if(b){na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){na(b)}b=J[a+60>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function mh(a){a=a|0;var b=0;J[a>>2]=5076;b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;na(b)}b=J[a+96>>2];if(b){na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){na(b)}b=J[a+60>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Bj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function Hh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=J[c+8>>2];e=J[c+16>>2];g=J[c+12>>2];f=g;d=J[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=K[J[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;J[c+16>>2]=i;J[c+20>>2]=f;J[a+4>>2]=b}return e>>>0<h>>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function pb(a,b,c){var d=0;if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}d=J[a+4>>2];a=K[d|0];c=J[b+4>>2];b=K[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=K[c+1|0];a=K[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Cb(a){var b=0,c=0;c=J[a+8>>2];if((c|0)>=2){b=+(c|0);b=W(b*va(b)-O[a>>3]);if(R(b)<0x8000000000000000){ca=R(b)>=1?~~(b>0?T(V(b*2.3283064365386963e-10),4294967295):W((b-+(~~b>>>0>>>0))*2.3283064365386963e-10))>>>0:0;return~~b>>>0}a=-2147483648}else{a=0}ca=a;return 0}function Dj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Ob(a,b){var c=0,d=0,e=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{c=J[b+4>>2];d=J[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=oa(c);c=pa(e,0,c);d=d+c|0;J[a+8>>2]=d;J[a+4>>2]=d;J[a>>2]=c;c=J[b>>2];a=J[b+4>>2]}ua(e,c,a-c|0);return}qa();B()}function yj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function vi(a){a=a|0;var b=0,c=0;b=oa(8);J[b+4>>2]=a;J[b>>2]=0;a:{b:{c:{if(!a){break c}c=bd(a,15016,14936);if(!c){break c}c=Ng(oa(56),c);a=J[b>>2];J[b>>2]=c;if(a){break b}break a}c=Og(oa(56),a);a=J[b>>2];J[b>>2]=c;if(!a){break a}}da[J[J[a>>2]+4>>2]](a)}return b|0}function ik(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function ah(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ba-96|0;ba=e;f=Og(e+40|0,c);$g(e,b,c);Mg(f,e);Da(e+24|0,J[e+28>>2]);nb(e+12|0,J[e+16>>2]);Da(e,J[e+4>>2]);fe(a,f,d);J[f>>2]=10256;Da(f+28|0,J[f+32>>2]);nb(f+16|0,J[f+20>>2]);Da(f+4|0,J[f+8>>2]);ba=e+96|0}function qc(a){var b=0;if(a){b=J[a+76>>2];if(b){J[a+80>>2]=b;na(b)}b=J[a- -64>>2];if(b){J[a+68>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;na(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}na(a)}}function Ke(a,b,c){var d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;d=ba-16|0;ba=d;b=b-a>>2;while(1){if(b){J[d+12>>2]=a;e=b>>>1|0;J[d+12>>2]=J[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=M[J[d+12>>2]>>2]<M[c>>2];b=e?g:b;a=e?J[d+12>>2]+4|0:a;continue}break}ba=d+16|0;ba=f+16|0;return a}function pc(a){var b=0;b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){J[a+32>>2]=b;na(b)}b=J[a+12>>2];if(b){na(b)}a=J[a>>2];if(a){na(a)}}function Lb(a,b){var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;a:{if(!b){b=0;break a}d=b;b=S(b);Pa(c,d,0,0,0,b+81|0);d=0+J[c+8>>2]|0;b=(J[c+12>>2]^65536)+(16414-b<<16)|0;f=e>>>0>d>>>0?b+1|0:b;e=J[c+4>>2];b=J[c>>2]}J[a>>2]=b;J[a+4>>2]=e;J[a+8>>2]=d;J[a+12>>2]=f;ba=c+16|0}function hk(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function Mb(a,b,c){var d=0,e=0,f=0,g=0;if(b){while(1){c=c-1|0;e=a;a=Jl(a,b,10,0);d=ca;f=c,g=e-Hl(a,d,10,0)|48,H[f|0]=g;e=b>>>0>9;b=d;if(e){continue}break}}if(a){while(1){c=c-1|0;b=(a>>>0)/10|0;H[c|0]=a-P(b,10)|48;d=a>>>0>9;a=b;if(d){continue}break}}return c}function yl(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+72>>2];a:{if(!c){break a}J[c+4>>2]=a+60;if(!(da[J[J[c>>2]+12>>2]](c)|0)){break a}if(!(da[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(da[J[J[a>>2]+44>>2]](a,b)|0)){break a}d=da[J[J[a>>2]+48>>2]](a,b)|0}return d|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+172>>2];a=J[a+176>>2];if((c|0)!=(a|0)){a=(a-c|0)/136|0;d=a>>>0<=1?1:a;a=0;while(1){if(J[P(a,136)+c>>2]==(b|0)){a=P(a,136)+c|0;return(K[a+100|0]?a+4|0:0)|0}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return 0}function jk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba-16|0;ba=e;d=a+40|0;c=Mc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=je(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Ka(b);break a}J[e+8>>2]=0;if(!c){break a}Ka(c)}ba=e+16|0;return d|0}function Mk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba-16|0;ba=e;d=a+40|0;c=Mc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=xg(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Ka(b);break a}J[e+8>>2]=0;if(!c){break a}Ka(c)}ba=e+16|0;return d|0}function rb(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!K[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=J[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(K[b|0]){continue}break}}return b-a|0}function Nd(a,b,c,d,e,f,g){var h=0;J[a>>2]=c;if(c){h=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=h;h=J[c+28>>2];J[a+16>>2]=J[c+24>>2];J[a+20>>2]=h}J[a+56>>2]=b;J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=f;J[a+44>>2]=g;H[a+32|0]=0;J[a+28>>2]=e;H[a+24|0]=d}function Ve(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=Ve(a*0x10000000000000000,b);c=J[b>>2]+-64|0}J[b>>2]=c;return a}J[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function wl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}f=a+60|0;while(1){c=J[(d<<2)+c>>2];e=da[J[J[c>>2]+20>>2]](c,f,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0<J[a+40>>2]-c>>2>>>0){continue}}break}return e|0}function Pc(a,b){var c=0,d=0,e=0;c=rb(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=oa(d);J[a+8>>2]=d|-2147483648;J[a>>2]=e;J[a+4>>2]=c;d=c+e|0;break b}H[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}ta(e,b,c)}H[d|0]=0;return a}gb();B()}function ne(a){J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;J[a+36>>2]=0;J[a>>2]=2624;return a}function xl(a){a=a|0;var b=0,c=0,d=0,e=0;b=J[a+36>>2];if((b|0)==J[a+40>>2]){return 1}e=a+60|0;while(1){b=J[(c<<2)+b>>2];d=da[J[J[b>>2]+16>>2]](b,e)|0;if(d){c=c+1|0;b=J[a+36>>2];if(c>>>0<J[a+40>>2]-b>>2>>>0){continue}}break}return d|0}function vk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}return a|0}function Pf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;J[c+12>>2]=J[J[b+4>>2]+80>>2];b=J[b+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],c+12|0,c+16|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=c+16|0}function Hk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}return a|0}function Ka(a){a=a|0;var b=0,c=0;if(a){b=J[a+88>>2];J[a+88>>2]=0;if(b){c=J[b+8>>2];if(c){J[b+12>>2]=c;na(c)}na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+64>>2];J[a+64>>2]=0;if(b){c=J[b>>2];if(c){J[b+4>>2]=c;na(c)}na(b)}na(a)}}function Te(a){var b=0,c=0,d=0;if(H[J[a>>2]]-48>>>0>=10){return 0}while(1){d=J[a>>2];c=-1;if(b>>>0<=214748364){c=H[d|0]-48|0;b=P(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}J[a>>2]=d+1;b=c;if(H[d+1|0]-48>>>0<10){continue}break}return b}function vl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}while(1){c=J[(d<<2)+c>>2];e=da[J[J[c>>2]+24>>2]](c,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0<J[a+40>>2]-c>>2>>>0){continue}}break}return e|0}function uk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}na(a)}function Gk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}na(a)}function cj(a){a=a|0;var b=0,c=0,d=0;b=J[a+32>>2];d=J[a+36>>2];if((b|0)==(d|0)){return 1}while(1){c=J[J[a+8>>2]+(J[b>>2]<<2)>>2];c=da[J[J[c>>2]+20>>2]](c,J[a+44>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Il(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0<e>>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Jl(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ca=(g^ca)-((a>>>0<f>>>0)+g|0)|0;return b}function id(a,b,c){var d=0,e=0,f=0;e=ba-16|0;ba=e;d=J[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=J[a>>2];J[a+4>>2]=c;Ab(d,b,c);H[e+15|0]=0;H[c+d|0]=K[e+15|0];break a}f=a;a=J[a+4>>2];kd(f,d-1|0,(c-d|0)+1|0,a,0,a,c,b)}ba=e+16|0}function Ge(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;a=J[a+4>>2];a:{if((a|0)==-1){break a}H[c+15|0]=a;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+15|0,c+16|0)}ba=c+16|0;return(a|0)!=-1|0}\nfunction hd(a,b,c){var d=0,e=0;d=ba-16|0;ba=d;a:{if(c>>>0<=10){H[a+11|0]=K[a+11|0]&128|c;H[a+11|0]=K[a+11|0]&127;Ab(a,b,c);H[d+15|0]=0;H[a+c|0]=K[d+15|0];break a}e=a;a=K[a+11|0]&127;kd(e,10,c-10|0,a,0,a,c,b)}ba=d+16|0}function Hl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;ca=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function He(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function zk(a,b){a=a|0;b=b|0;var c=0,d=0;J[b>>2]=2;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Gc(b+8|0,d+4|0);c=J[b+8>>2]}b=c+d|0;a=J[a+4>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function Qa(a,b,c,d,e){var f=0;f=ba-256|0;ba=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;pa(f,b&255,c?d:256);if(!c){while(1){Oa(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Oa(a,f,d)}ba=f+256|0}function Dd(a,b){var c=0,d=Q(0),e=0;b=ob(a,b);if((b|0)!=(a+4|0)){a=ba-16|0;ba=a;c=b+28|0;Xe(a,H[b+39|0]<0?J[c>>2]:c,0,1);e=Le(J[a>>2],J[a+4>>2],J[a+8>>2],J[a+12>>2]);ba=a+16|0;d=Q(e)}else{d=Q(1)}return d}function ol(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];b=J[a+32>>2];c=b?b:J[a+8>>2]}return c|0}function rl(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];c=J[a+20>>2]-J[a+16>>2]>>2}return c|0}function ql(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=-1;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}b=J[(b<<2)+e>>2];if((b|0)<0){break a}d=J[J[J[J[a+36>>2]+(b<<2)>>2]+16>>2]+(c<<2)>>2]}return d|0}function yh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function wa(a){var b=0,c=0;c=ba-16|0;ba=c;J[c+8>>2]=0;J[c+12>>2]=0;ie(a,c+8|0);J[a+24>>2]=0;J[a+28>>2]=0;b=J[a+12>>2];J[a+16>>2]=b;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=c+16|0;return a}function Jc(a){a=Lc(a);J[a+64>>2]=0;J[a+68>>2]=0;J[a+88>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function xh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function nc(a){J[a+52>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=12468;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;return a}function We(a){var b=0;b=J[a+72>>2];J[a+72>>2]=b-1|b;b=J[a>>2];if(b&8){J[a>>2]=b|32;return-1}J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];return 0}function Lc(a){J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+28>>2]=9;H[a+24|0]=1;J[a+56>>2]=-1;J[a+60>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;return a}function od(a,b,c,d,e,f,g,h,i){var j=0;j=ba-16|0;ba=j;_a(j,b,c,d,e,f,g,h,i^-2147483648);d=J[j>>2];c=J[j+4>>2];b=J[j+12>>2];J[a+8>>2]=J[j+8>>2];J[a+12>>2]=b;J[a>>2]=d;J[a+4>>2]=c;ba=j+16|0}function yd(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(J[b+4>>2]|!b){break a}a=sd(oa(36),c);J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;c=J[b+4>>2];J[b+4>>2]=a;a=1;if(!c){break a}pf(c)}return a|0}function pe(a,b,c){a=bf(a,c);J[a+36>>2]=0;J[a+40>>2]=0;J[a>>2]=2496;J[a+72>>2]=b;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;return a}function di(a,b){a=a|0;b=b|0;var c=0,d=0;ef(a,b);a:{if((b|0)<0){break a}d=J[a+88>>2];c=J[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;ta(c,b,d-b|0);J[a+88>>2]=d-4}}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=0;a:{if(!b|(c|0)<0){break a}e=J[b+12>>2];b=J[b+8>>2];if(e-b>>2<=(c|0)){break a}H[J[b+(c<<2)>>2]+32|0]=d;a=1}return a|0}function uj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function pj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function Kb(a){var b=0,c=0;b=J[4773];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ea()<<16>>>0){if(!($(a|0)|0)){break a}}J[4773]=a;return b}J[4804]=48;return-1}function tj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function oj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function lb(a,b){if(b){lb(a,J[b>>2]);lb(a,J[b+4>>2]);a=J[b+28>>2];J[b+28>>2]=0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function Ie(a,b){var c=0,d=0,e=0,f=0;J[a>>2]=18812;J[a>>2]=18924;c=rb(b);d=oa(c+13|0);J[d+8>>2]=0;J[d+4>>2]=c;J[d>>2]=c;e=a,f=ua(d+12|0,b,c+1|0),J[e+4>>2]=f;return a}function Nh(a,b){a=a|0;b=b|0;var c=0;a:{if(!(da[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(da[J[J[a>>2]+44>>2]](a,b)|0)){break a}c=da[J[J[a>>2]+48>>2]](a,b)|0}return c|0}function Xj(a){a=a|0;var b=0;a:{b=J[a+64>>2];if(!b){break a}b=da[J[J[b>>2]+32>>2]](b)|0;if(!b){break a}J[a+60>>2]=((J[b+4>>2]-J[b>>2]>>2>>>0)/3|0)-J[b+40>>2]}}function Fl(a,b){a=a|0;b=b|0;var c=0;b=J[b+88>>2];if(!(!b|J[b>>2]!=2)){c=a;a=J[b+8>>2];J[c+4>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);c=1}return c|0}function vj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Oj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Lf(a,b){var c=0;a:{c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){break a}b=a+28|0;a=Bc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}return(a|0)!=0}return 0}function Pb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);a:{if((d|0)==(a|0)){break a}b=a+28|0;a=Bc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}c=(a|0)!=0}return c}function qj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function Hj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function bf(a,b){J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2188;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;kc(a,b);return a}function Sh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(pb(a,J[b+8>>2],f)){Fe(b,c,d,e);return}a=J[a+8>>2];da[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function ph(a){a=a|0;var b=0;a:{if(!J[a- -64>>2]|!J[a+68>>2]|(!J[a+44>>2]|!J[a+48>>2])){break a}if(!J[a+52>>2]){break a}b=J[a+56>>2]!=0}return b|0}function fh(a){a=a|0;var b=0;a:{if(!J[a+48>>2]|!J[a+52>>2]|(!J[a+28>>2]|!J[a+32>>2])){break a}if(!J[a+36>>2]){break a}b=J[a+40>>2]!=0}return b|0}function rd(a){var b=0,c=0;b=J[a+20>>2];a:{if((J[a+24>>2]-b|0)<=0){break a}b=J[b>>2];if((b|0)==-1){break a}c=J[J[a+8>>2]+(b<<2)>>2]}return c}function Ti(){var a=0;a=gf(oa(108));J[a+84>>2]=0;J[a+88>>2]=0;J[a>>2]=14892;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;return a|0}function Nb(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=P(b,12)+a|0;a=J[b+20>>2];if((J[b+24>>2]-a|0)<=0){break a}c=J[a>>2]}return c}function Qe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=b;b=J[b>>2]+7&-8;J[c>>2]=b+16;d=a,e=Le(J[b>>2],J[b+4>>2],J[b+8>>2],J[b+12>>2]),O[d>>3]=e}function gi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}return Ec(a)|0}function za(a){var b=0;b=ba-16|0;ba=b;J[b+8>>2]=0;J[b+12>>2]=0;ie(a,b+8|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];ba=b+16|0}function fi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}na(Ec(a))}function kb(a,b){if(b){kb(a,J[b>>2]);kb(a,J[b+4>>2]);a=J[b+28>>2];if(a){J[b+32>>2]=a;na(a)}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function dl(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Vk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Cl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function Zh(a){a=a|0;var b=0;J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Vh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(pb(a,J[b+8>>2],0)){He(b,c,d);return}a=J[a+8>>2];da[J[J[a>>2]+28>>2]](a,b,c,d)}function Qi(){var a=0,b=0;a=oa(24);J[a+4>>2]=0;J[a+8>>2]=0;b=a+16|0;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;J[a+12>>2]=b;return a|0}function cl(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Uk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Bl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function oa(a){var b=0;a=a?a:1;a:{while(1){b=nd(a);if(b){break a}b=J[4973];if(b){da[b|0]();continue}break}Z();B()}return b}function Da(a,b){if(b){Da(a,J[b>>2]);Da(a,J[b+4>>2]);if(H[b+39|0]<0){na(J[b+28>>2])}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function Ee(a){a=a|0;var b=0,c=0;J[a>>2]=18924;b=J[a+4>>2]-12|0;c=J[b+8>>2]-1|0;J[b+8>>2]=c;if((c|0)<0){na(b)}return a|0}function ch(a,b,c,d,e){var f=0;f=b-1|0;if(f>>>0<=29){J[a+4>>2]=b;tc(a+8|0,c,(d<<2)+c|0);N[a+20>>2]=e}return f>>>0<30}function al(a){a=a|0;var b=0;J[a>>2]=3996;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Sk(a){a=a|0;var b=0;J[a>>2]=5536;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Og(a,b){J[a>>2]=10256;he(a+4|0);J[a+52>>2]=0;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Ng(a,b){J[a>>2]=10256;he(a+4|0);J[a+52>>2]=b;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;J[a+4>>2]=b;b=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=b;return 1}function $e(a,b,c,d,e,f,g,h,i){J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e&65535|(i>>>16&32768|e>>>16&32767)<<16}function th(a){a=a|0;var b=0;if(!(!J[a+60>>2]|!J[a+44>>2]|(!J[a+48>>2]|!J[a+52>>2]))){b=J[a+56>>2]!=0}return b|0}function ih(a){a=a|0;var b=0;if(!(!J[a+44>>2]|!J[a+28>>2]|(!J[a+32>>2]|!J[a+36>>2]))){b=J[a+40>>2]!=0}return b|0}function wi(a){a=a|0;if(a){J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}}function Rk(a){a=a|0;var b=0;J[a>>2]=5536;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Mf(a,b){var c=0;c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){return-1}b=a+28|0;return Bc(H[a+39|0]<0?J[b>>2]:b)}function Eb(a,b){var c=0,d=0;if(!(!a|!b|(a|0)==(b|0))){c=+(b>>>0)/+(a>>>0);d=1-c;c=-(c*va(c)+d*va(d))}return c}function $k(a){a=a|0;var b=0;J[a>>2]=3996;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function gk(a){a=a|0;J[a>>2]=10256;Da(a+28|0,J[a+32>>2]);nb(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);return a|0}function fk(a){a=a|0;J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);return a|0}function Bb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);if((d|0)!=(a|0)){b=a+28|0;c=Bc(H[a+39|0]<0?J[b>>2]:b)}return c}function ld(a,b){if(K[a+11|0]>>>7|0){J[a+4>>2]=b;return}H[a+11|0]=K[a+11|0]&128|b;H[a+11|0]=K[a+11|0]&127}function Fi(){var a=0;a=oa(48);J[a>>2]=10332;he(a+4|0);J[a>>2]=10116;J[a+40>>2]=0;J[a+44>>2]=0;return a|0}function Sg(a){a=a|0;J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}function Rg(a){a=a|0;J[a>>2]=10256;Da(a+28|0,J[a+32>>2]);nb(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}function xj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Gj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function qd(a,b){da[J[J[a>>2]+8>>2]](a,J[a+12>>2]-J[a+8>>2]>>2,b);return(J[a+12>>2]-J[a+8>>2]>>2)-1|0}function Yc(a){a=a|0;var b=0;if(!(!J[a+52>>2]|(!J[a+44>>2]|!J[a+48>>2]))){b=J[a+56>>2]!=0}return b|0}function Qc(a){a=a|0;var b=0;if(!(!J[a+36>>2]|(!J[a+28>>2]|!J[a+32>>2]))){b=J[a+40>>2]!=0}return b|0}function wj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function Fj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function oh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a- -64>>2]=b;c=1}return c|0}function sh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+60>>2]=b;c=1}return c|0}function hh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+44>>2]=b;c=1}return c|0}function eh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+48>>2]=b;c=1}return c|0}function Rh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(pb(a,J[b+8>>2],f)){Fe(b,c,d,e)}}function xa(){var a=0;a=cd(4);J[a>>2]=18812;J[a>>2]=18772;J[a>>2]=18792;_(a|0,18904,14);B()}function mi(a){a=a|0;var b=0;if(a){b=J[a>>2];J[a>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}na(a)}}function il(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function dk(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;na(b)}return a|0}function tb(a){var b=0;J[a+12>>2]=0;J[a+16>>2]=0;b=a;a=J[a>>2];J[b+4>>2]=a;if(a){na(a)}}function hj(a){a=a|0;var b=0;b=a;a=J[a+56>>2];J[b+60>>2]=(J[a+100>>2]-J[a+96>>2]|0)/12}function zf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,6)|0}function zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,5)|0}function le(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Df(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sf(b,c,d,e,f,1)|0}function Cf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sf(b,c,d,e,f,2)|0}function Bf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rf(b,c,d,e,f,3)|0}function Af(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rf(b,c,d,e,f,4)|0}function Ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,9)|0}function ck(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;na(b)}na(a)}function si(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Vg(J[a>>2],b,c,d,e,f)}function sc(a,b){if(b){sc(a,J[b>>2]);sc(a,J[b+4>>2]);Da(b+20|0,J[b+24>>2]);na(b)}}function nb(a,b){if(b){nb(a,J[b>>2]);nb(a,J[b+4>>2]);Da(b+20|0,J[b+24>>2]);na(b)}}function Zj(a,b){a=a|0;b=b|0;var c=0;c=a;a=J[b+64>>2];da[J[J[a>>2]+28>>2]](c,a)}function Ek(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){na(b)}return a|0}\nfunction sk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){na(b)}return a|0}function Wh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(pb(a,J[b+8>>2],0)){He(b,c,d)}}function Kl(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Ci(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Vg(a,b,c,d,e,f)}function fd(a,b){var c=0;c=a;a=(b>>>0)/100|0;return Fb(Fb(c,a),b-P(a,100)|0)}function ed(a,b){var c=0;c=a;a=(b>>>0)/1e4|0;return fd(Fb(c,a),b-P(a,1e4)|0)}function dd(a,b){var c=0;c=a;a=(b>>>0)/1e6|0;return ed(Fb(c,a),b-P(a,1e6)|0)}function _j(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+24>>2]](a,b)|0}function Tj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+12>>2]](a,b)|0}function Sj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+16>>2]](a,b)|0}function $j(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+20>>2]](a,b)|0}function $f(a,b){a=a|0;b=b|0;return J[J[a+28>>2]+(b>>>3&536870908)>>2]>>>b&1}function bj(a,b){a=a|0;b=b|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}function Oi(){var a=0;a=oa(12);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;return a|0}function Ll(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<<b|(-1<<a&-2)>>>a}\nfunction Li(a){a=a|0;var b=0;if(a){b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}na(a)}}function Dh(a,b,c){a=a|0;b=b|0;c=c|0;return da[J[J[a>>2]+44>>2]](a,b,c)|0}function rk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){na(b)}na(a)}function Dk(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){na(b)}na(a)}function ra(){var a=0;a=Ie(cd(8),1313);J[a>>2]=19024;_(a|0,19056,1);B()}function gj(a,b){a=a|0;b=b|0;H[b+84|0]=1;J[b+72>>2]=J[b+68>>2];return 1}function Tf(a){a=nc(a);J[a+56>>2]=0;J[a+60>>2]=0;J[a>>2]=12164;return a}function Sc(a,b){a=a|0;b=b|0;if(b>>>0<=1){J[a+28>>2]=b}return b>>>0<2|0}function Pi(a){a=a|0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}}function $h(a,b,c){a=a|0;b=b|0;c=c|0;J[a+32>>2]=c;J[a+28>>2]=b;return 1}function Qh(a){a=a|0;if(!a){return 0}return(bd(a,18476,18620)|0)!=0|0}function Uj(a){a=a|0;a=J[a+64>>2];return da[J[J[a>>2]+32>>2]](a)|0}function Eh(a,b){a=a|0;b=b|0;J[a+12>>2]=-1;J[a+8>>2]=b;return 1}function ke(a){a=Ie(cd(8),a);J[a>>2]=18972;_(a|0,19004,1);B()}function Si(a){a=a|0;return(J[a+100>>2]-J[a+96>>2]|0)/12|0}function pk(a){a=a|0;J[a>>2]=9148;wa(a+96|0);return a|0}function Bk(a){a=a|0;J[a>>2]=7524;wa(a+96|0);return a|0}function Ac(a,b){var c=0;c=oa(b);J[a+4>>2]=b;J[a>>2]=c}function ti(a,b,c){a=a|0;b=b|0;c=c|0;Xg(J[a>>2],b,c)}function ri(a,b,c){a=a|0;b=b|0;c=c|0;Yg(J[a>>2],b,c)}function gf(a){J[a>>2]=14964;pa(a+4|0,0,80);return a}function ij(a){a=a|0;J[a+52>>2]=J[J[a+56>>2]+80>>2]}function Hf(a){a=a|0;return J[a+12>>2]-J[a+8>>2]>>2}function Gl(a){if(a){return 31-S(a-1^a)|0}return 32}function ok(a){a=a|0;J[a>>2]=9148;wa(a+96|0);na(a)}function kk(a,b){a=a|0;b=b|0;return Ug(a+40|0,b)|0}function Of(a){a=a|0;J[a+52>>2]=J[J[a+4>>2]+80>>2]}function Nk(a,b){a=a|0;b=b|0;return Ge(a+40|0,b)|0}function Ni(a,b){a=a|0;b=b|0;return H[J[a>>2]+b|0]}function Gf(a){a=a|0;if(a){da[J[J[a>>2]+4>>2]](a)}}function Ak(a){a=a|0;J[a>>2]=7524;wa(a+96|0);na(a)}function Mi(a){a=a|0;return J[a+4>>2]-J[a>>2]|0}function Fb(a,b){return Je((b<<1)+18240|0,2,a)}function Di(a,b,c){a=a|0;b=b|0;c=c|0;Xg(a,b,c)}function Bi(a,b,c){a=a|0;b=b|0;c=c|0;Yg(a,b,c)}function bk(a,b){a=a|0;b=b|0;return K[b+24|0]}function Lh(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function oi(a){a=a|0;return J[J[a>>2]+40>>2]}function ni(a){a=a|0;return J[J[a>>2]+44>>2]}function ui(a,b){a=a|0;b=b|0;Tg(J[a>>2],b)}function qi(a,b){a=a|0;b=b|0;nf(J[a>>2],b)}function Ri(a,b){a=a|0;b=b|0;J[a+80>>2]=b}function xi(a){a=a|0;return J[a+44>>2]}function uc(a){a=a|0;return J[a+28>>2]}function ag(a){a=a|0;return J[a+12>>2]}function Zi(a){a=a|0;return J[a+56>>2]}function Wi(a){a=a|0;return J[a+48>>2]}function Vi(a){a=a|0;return J[a+60>>2]}function Jf(a){a=a|0;return J[a+40>>2]}function Cd(a){a=a|0;return J[a+80>>2]}function Bh(){J[4843]=19252;J[4825]=42}function zh(a,b){a=a|0;b=b|0;return 6}function zc(a,b){a=a|0;b=b|0;return 1}function wh(a,b){a=a|0;b=b|0;return-1}function vc(a){a=a|0;return J[a+4>>2]}function jl(a,b){a=a|0;b=b|0;return 2}function cd(a){return nd(a+80|0)+80|0}function Za(a,b){a=a|0;b=b|0;return 0}function Yi(a){a=a|0;return H[a+24|0]}function Xi(a){a=a|0;return K[a+32|0]}function Ei(a,b){a=a|0;b=b|0;Tg(a,b)}function Ai(a,b){a=a|0;b=b|0;nf(a,b)}function Nc(a,b,c,d){Kg(a,b,c,d,1)}function Db(a,b,c,d){Kg(a,b,c,d,0)}function lc(a){a=a|0;if(a){na(a)}}function _i(){return Jc(oa(96))|0}function Ui(){return gf(oa(84))|0}function $i(){return Lc(oa(64))|0}function ad(a){a=a|0;Ee(a);na(a)}function Ph(a){a=a|0;return 1364}function Oh(a){a=a|0;return 1622}function Mh(a){a=a|0;return 1472}function ub(a){a=a|0;return a|0}function sl(a){a=a|0;na(Ah(a))}function fl(a){a=a|0;na(vh(a))}function ai(a){a=a|0;na(Ec(a))}function Xk(a){a=a|0;na(mh(a))}function Jj(a){a=a|0;na(Zf(a))}function Ij(a){a=a|0;na(Yf(a))}function Gh(a){a=a|0;na(re(a))}function oe(a){a=a|0;return 2}function kh(a){a=a|0;return 3}function ib(a){a=a|0;return 0}function Xc(a){a=a|0;return 4}function Vc(a){a=a|0;return 5}function Uc(a){a=a|0;return 6}function Ja(a){a=a|0;return 1}function Bd(){return oa(1)|0}function Ab(a,b,c){Je(b,c,a)}function qa(){ke(1313);B()}function gb(){ke(1493);B()}function ab(a){a=a|0;na(a)}function zb(a){a=a|0;B()}function xd(){return 0}function wd(){return 1}function tf(){return-1}function li(){return 2}function ki(){return 3}function ji(){return 4}function Yh(){Z();B()}function af(a){a=a|0}\n// EMSCRIPTEN_END_FUNCS\ne=K;p(q);var da=c([null,Ee,ub,ab,oe,Fl,zk,xg,ii,Ge,Hh,Mc,zh,jl,ub,dk,ck,Ja,Zk,Lk,je,yk,Ug,ek,zh,bk,Zh,zb,$h,Me,Yh,Nh,Za,Lh,Za,Za,Ja,zc,re,Gh,oe,Kh,Ih,Jh,Cl,Bl,Fh,Eh,zc,Dh,zc,ib,ib,El,Dl,Ch,Ah,sl,Al,zl,ib,yl,rl,ql,pl,ol,xl,wl,vl,ul,tl,yh,xh,me,nl,Ja,ll,ml,kl,il,le,Ja,vc,Yc,ib,wh,Za,ib,Ja,hl,gl,zb,zb,vh,fl,Xc,Yc,uh,el,dl,cl,Vc,th,Ja,Za,sh,rh,bl,al,$k,Uc,ph,Ja,Za,oh,nh,_k,ub,ab,Sc,uc,Tc,zb,le,Ja,Yc,Yk,zb,mh,Xk,Xc,Yc,uh,Wk,Vk,Uk,Vc,th,Ja,Za,sh,rh,Tk,Sk,Rk,Uc,ph,Ja,Za,oh,nh,Qk,ub,ab,Sc,uc,Rc,zb,le,ib,Ja,Pk,yh,xh,Ok,Nk,Ja,kh,Kk,Mk,ub,ab,Ja,vc,Qc,ib,wh,Za,Ja,kh,Jk,Ik,Hk,Gk,Xc,Qc,jh,Fk,Ek,Dk,Vc,ih,Ja,Za,hh,gh,Ck,Bk,Ak,Uc,fh,Ja,Za,eh,dh,xk,ub,ab,Sc,uc,Tc,ab,Ja,Qc,wk,vk,uk,Xc,Qc,jh,tk,sk,rk,Vc,ih,Ja,Za,hh,gh,qk,pk,ok,Uc,fh,Ja,Za,eh,dh,nk,ub,ab,Sc,uc,Rc,ab,ib,Ja,mk,ik,hk,lk,kk,Ja,oe,jk,fk,Sg,ah,Zg,gk,Rg,Sg,Rg,Wj,Vj,Ja,Ja,ak,Ja,lj,ej,dj,$j,_j,cj,Yj,Uj,Tj,Sj,Zj,Xj,Zf,Jj,Rj,pg,og,Qj,lg,Nj,ag,$f,vc,Yf,Ij,Mj,pg,og,Lj,lg,Kj,ag,$f,vc,Oj,Hj,Pj,Gj,Fj,Cj,Bj,Aj,zj,Dj,yj,Ej,xj,wj,uj,tj,sj,rj,vj,qj,pj,oj,nj,mj,kj,zb,Ja,zc,ib,Za,Za,Gd,ib,Sf,ij,jj,hj,ub,ab,gj,fj,zb,ib,bj,Gd,Ja,Pf,aj,Of,Gd,ib,Pf,Sf,Of,gi,fi,ei,di,bi,ci,hi,Ec,ai,ff,ef,cf,Re,Qe,_h,ub,ab,af,af,Xh,Rh,Th,Wh,ab,Sh,Uh,Vh,ab,Oh,ab,Mh,ab,Ph,ad,vc,ad,ad]);function ea(){return G.byteLength/65536|0}function ja(ka){ka=ka|0;var fa=ea()|0;var ga=fa+ka|0;if(fa<ga&&ga<65536){var ha=new ArrayBuffer(P(ga,65536));var ia=new Int8Array(ha);ia.set(H);H=new Int8Array(ha);I=new Int16Array(ha);J=new Int32Array(ha);K=new Uint8Array(ha);L=new Uint16Array(ha);M=new Uint32Array(ha);N=new Float32Array(ha);O=new Float64Array(ha);G=ha;F.buffer=G;e=K}return fa}return{\"f\":Bh,\"g\":da,\"h\":lc,\"i\":$i,\"j\":lc,\"k\":_i,\"l\":Cd,\"m\":Zi,\"n\":uc,\"o\":Yi,\"p\":Xi,\"q\":Jf,\"r\":Wi,\"s\":Vi,\"t\":Ka,\"u\":Ui,\"v\":Hf,\"w\":Cd,\"x\":Gf,\"y\":Ti,\"z\":Si,\"A\":Hf,\"B\":Cd,\"C\":Ri,\"D\":Gf,\"E\":Qi,\"F\":Pi,\"G\":Oi,\"H\":Ni,\"I\":Mi,\"J\":Li,\"K\":Bd,\"L\":Ki,\"M\":Ji,\"N\":Ii,\"O\":Hi,\"P\":lc,\"Q\":Bd,\"R\":Ad,\"S\":Df,\"T\":Cf,\"U\":Bf,\"V\":Af,\"W\":zd,\"X\":zf,\"Y\":yd,\"Z\":yf,\"_\":xf,\"$\":lc,\"aa\":Bd,\"ba\":Gi,\"ca\":Ad,\"da\":zd,\"ea\":yd,\"fa\":Ad,\"ga\":Df,\"ha\":Cf,\"ia\":Bf,\"ja\":Af,\"ka\":zd,\"la\":zf,\"ma\":yd,\"na\":yf,\"oa\":xf,\"pa\":lc,\"qa\":Fi,\"ra\":Ei,\"sa\":Di,\"ta\":Ci,\"ua\":Bi,\"va\":Ai,\"wa\":zi,\"xa\":yi,\"ya\":Jf,\"za\":xi,\"Aa\":wi,\"Ba\":vi,\"Ca\":ui,\"Da\":ti,\"Ea\":si,\"Fa\":ri,\"Ga\":qi,\"Ha\":pi,\"Ia\":oi,\"Ja\":ni,\"Ka\":mi,\"La\":tf,\"Ma\":xd,\"Na\":wd,\"Oa\":li,\"Pa\":ki,\"Qa\":ji,\"Ra\":tf,\"Sa\":xd,\"Ta\":wd,\"Ua\":xd,\"Va\":wd,\"Wa\":nd,\"Xa\":na,\"Ya\":Qh}}return la(ma)}\n// EMSCRIPTEN_END_ASM\n\n\n)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({\"instance\":new WebAssembly.Instance(module,info)})}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;assert(INITIAL_MEMORY>=65536,\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+INITIAL_MEMORY+\"! (STACK_SIZE=\"+65536+\")\");if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"draco_encoder.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"g\"];addOnInit(Module[\"asm\"][\"f\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob==\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==\"boolean\"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,\"base64\");return new Uint8Array(buf[\"buffer\"],buf[\"byteOffset\"],buf[\"byteLength\"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmImports={\"c\":___cxa_throw,\"b\":_abort,\"e\":_emscripten_memcpy_big,\"d\":_emscripten_resize_heap,\"a\":wasmMemory};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"f\"]).apply(null,arguments)};var _emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=function(){return(_emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=function(){return(_emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=function(){return(_emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=function(){return(_emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=function(){return(_emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=function(){return(_emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=Module[\"asm\"][\"m\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=function(){return(_emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=function(){return(_emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=function(){return(_emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=function(){return(_emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=function(){return(_emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=function(){return(_emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=function(){return(_emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=function(){return(_emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=function(){return(_emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=function(){return(_emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=function(){return(_emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=function(){return(_emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=function(){return(_emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _emscripten_bind_Mesh_set_num_points_1=Module[\"_emscripten_bind_Mesh_set_num_points_1\"]=function(){return(_emscripten_bind_Mesh_set_num_points_1=Module[\"_emscripten_bind_Mesh_set_num_points_1\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=function(){return(_emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=function(){return(_emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=function(){return(_emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=function(){return(_emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_MetadataBuilder_0=Module[\"_emscripten_bind_MetadataBuilder_MetadataBuilder_0\"]=function(){return(_emscripten_bind_MetadataBuilder_MetadataBuilder_0=Module[\"_emscripten_bind_MetadataBuilder_MetadataBuilder_0\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_AddStringEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddStringEntry_3\"]=function(){return(_emscripten_bind_MetadataBuilder_AddStringEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddStringEntry_3\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_AddIntEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntry_3\"]=function(){return(_emscripten_bind_MetadataBuilder_AddIntEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntry_3\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_AddIntEntryArray_4=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4\"]=function(){return(_emscripten_bind_MetadataBuilder_AddIntEntryArray_4=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder_AddDoubleEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3\"]=function(){return(_emscripten_bind_MetadataBuilder_AddDoubleEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _emscripten_bind_MetadataBuilder___destroy___0=Module[\"_emscripten_bind_MetadataBuilder___destroy___0\"]=function(){return(_emscripten_bind_MetadataBuilder___destroy___0=Module[\"_emscripten_bind_MetadataBuilder___destroy___0\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=Module[\"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0\"]=function(){return(_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=Module[\"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_AddMetadata_2=Module[\"_emscripten_bind_PointCloudBuilder_AddMetadata_2\"]=function(){return(_emscripten_bind_PointCloudBuilder_AddMetadata_2=Module[\"_emscripten_bind_PointCloudBuilder_AddMetadata_2\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3\"]=function(){return(_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3\"]=function(){return(_emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _emscripten_bind_PointCloudBuilder___destroy___0=Module[\"_emscripten_bind_PointCloudBuilder___destroy___0\"]=function(){return(_emscripten_bind_PointCloudBuilder___destroy___0=Module[\"_emscripten_bind_PointCloudBuilder___destroy___0\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_MeshBuilder_0=Module[\"_emscripten_bind_MeshBuilder_MeshBuilder_0\"]=function(){return(_emscripten_bind_MeshBuilder_MeshBuilder_0=Module[\"_emscripten_bind_MeshBuilder_MeshBuilder_0\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddFacesToMesh_3=Module[\"_emscripten_bind_MeshBuilder_AddFacesToMesh_3\"]=function(){return(_emscripten_bind_MeshBuilder_AddFacesToMesh_3=Module[\"_emscripten_bind_MeshBuilder_AddFacesToMesh_3\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddMetadataToMesh_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2\"]=function(){return(_emscripten_bind_MeshBuilder_AddMetadataToMesh_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttribute_5\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt8Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt8Attribute_5\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt16Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt16Attribute_5\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32Attribute_5\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5\"]=function(){return(_emscripten_bind_MeshBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_AddMetadata_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadata_2\"]=function(){return(_emscripten_bind_MeshBuilder_AddMetadata_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadata_2\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3\"]=function(){return(_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3\"]=function(){return(_emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _emscripten_bind_MeshBuilder___destroy___0=Module[\"_emscripten_bind_MeshBuilder___destroy___0\"]=function(){return(_emscripten_bind_MeshBuilder___destroy___0=Module[\"_emscripten_bind_MeshBuilder___destroy___0\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_Encoder_0=Module[\"_emscripten_bind_Encoder_Encoder_0\"]=function(){return(_emscripten_bind_Encoder_Encoder_0=Module[\"_emscripten_bind_Encoder_Encoder_0\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetEncodingMethod_1=Module[\"_emscripten_bind_Encoder_SetEncodingMethod_1\"]=function(){return(_emscripten_bind_Encoder_SetEncodingMethod_1=Module[\"_emscripten_bind_Encoder_SetEncodingMethod_1\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_Encoder_SetAttributeQuantization_2\"]=function(){return(_emscripten_bind_Encoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_Encoder_SetAttributeQuantization_2\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5\"]=function(){return(_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetSpeedOptions_2=Module[\"_emscripten_bind_Encoder_SetSpeedOptions_2\"]=function(){return(_emscripten_bind_Encoder_SetSpeedOptions_2=Module[\"_emscripten_bind_Encoder_SetSpeedOptions_2\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _emscripten_bind_Encoder_SetTrackEncodedProperties_1=Module[\"_emscripten_bind_Encoder_SetTrackEncodedProperties_1\"]=function(){return(_emscripten_bind_Encoder_SetTrackEncodedProperties_1=Module[\"_emscripten_bind_Encoder_SetTrackEncodedProperties_1\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=Module[\"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2\"]=function(){return(_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=Module[\"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=Module[\"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3\"]=function(){return(_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=Module[\"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=Module[\"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0\"]=function(){return(_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=Module[\"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=Module[\"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0\"]=function(){return(_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=Module[\"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _emscripten_bind_Encoder___destroy___0=Module[\"_emscripten_bind_Encoder___destroy___0\"]=function(){return(_emscripten_bind_Encoder___destroy___0=Module[\"_emscripten_bind_Encoder___destroy___0\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_ExpertEncoder_1=Module[\"_emscripten_bind_ExpertEncoder_ExpertEncoder_1\"]=function(){return(_emscripten_bind_ExpertEncoder_ExpertEncoder_1=Module[\"_emscripten_bind_ExpertEncoder_ExpertEncoder_1\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetEncodingMethod_1=Module[\"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1\"]=function(){return(_emscripten_bind_ExpertEncoder_SetEncodingMethod_1=Module[\"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2\"]=function(){return(_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5\"]=function(){return(_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetSpeedOptions_2=Module[\"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2\"]=function(){return(_emscripten_bind_ExpertEncoder_SetSpeedOptions_2=Module[\"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=Module[\"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1\"]=function(){return(_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=Module[\"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=Module[\"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2\"]=function(){return(_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=Module[\"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=Module[\"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0\"]=function(){return(_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=Module[\"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=Module[\"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0\"]=function(){return(_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=Module[\"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _emscripten_bind_ExpertEncoder___destroy___0=Module[\"_emscripten_bind_ExpertEncoder___destroy___0\"]=function(){return(_emscripten_bind_ExpertEncoder___destroy___0=Module[\"_emscripten_bind_ExpertEncoder___destroy___0\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING\"]=function(){return(_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING\"]=function(){return(_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=19116;var ___stop_em_js=Module[\"___stop_em_js\"]=19214;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module[\"WrapperObject\"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module[\"getCache\"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module[\"wrapPointer\"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module[\"castObject\"]=castObject;Module[\"NULL\"]=wrapPointer(0);function destroy(obj){if(!obj[\"__destroy__\"])throw\"Error: Cannot destroy object. (Did you create it yourself?)\";obj[\"__destroy__\"]();delete getCache(obj.__class__)[obj.ptr]}Module[\"destroy\"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module[\"compare\"]=compare;function getPointer(obj){return obj.ptr}Module[\"getPointer\"]=getPointer;function getClass(obj){return obj.__class__}Module[\"getClass\"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module[\"_free\"](ensureCache.temps[i])}ensureCache.temps.length=0;Module[\"_free\"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module[\"_malloc\"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0},alloc:function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module[\"_malloc\"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i<array.length;i++){view[offset+i]=array[i]}}};function ensureString(value){if(typeof value===\"string\"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function ensureInt16(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP16);ensureCache.copy(value,HEAP16,offset);return offset}return value}function ensureInt32(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP32);ensureCache.copy(value,HEAP32,offset);return offset}return value}function ensureFloat32(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAPF32);ensureCache.copy(value,HEAPF32,offset);return offset}return value}function VoidPtr(){throw\"cannot construct a VoidPtr, no constructor in IDL\"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module[\"VoidPtr\"]=VoidPtr;VoidPtr.prototype[\"__destroy__\"]=VoidPtr.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)};function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module[\"GeometryAttribute\"]=GeometryAttribute;GeometryAttribute.prototype[\"__destroy__\"]=GeometryAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)};function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module[\"PointAttribute\"]=PointAttribute;PointAttribute.prototype[\"size\"]=PointAttribute.prototype.size=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)};PointAttribute.prototype[\"attribute_type\"]=PointAttribute.prototype.attribute_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)};PointAttribute.prototype[\"data_type\"]=PointAttribute.prototype.data_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)};PointAttribute.prototype[\"num_components\"]=PointAttribute.prototype.num_components=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)};PointAttribute.prototype[\"normalized\"]=PointAttribute.prototype.normalized=function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)};PointAttribute.prototype[\"byte_stride\"]=PointAttribute.prototype.byte_stride=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)};PointAttribute.prototype[\"byte_offset\"]=PointAttribute.prototype.byte_offset=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)};PointAttribute.prototype[\"unique_id\"]=PointAttribute.prototype.unique_id=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)};PointAttribute.prototype[\"__destroy__\"]=PointAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)};function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module[\"PointCloud\"]=PointCloud;PointCloud.prototype[\"num_attributes\"]=PointCloud.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)};PointCloud.prototype[\"num_points\"]=PointCloud.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)};PointCloud.prototype[\"__destroy__\"]=PointCloud.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)};function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module[\"Mesh\"]=Mesh;Mesh.prototype[\"num_faces\"]=Mesh.prototype.num_faces=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)};Mesh.prototype[\"num_attributes\"]=Mesh.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)};Mesh.prototype[\"num_points\"]=Mesh.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)};Mesh.prototype[\"set_num_points\"]=Mesh.prototype.set_num_points=function(num_points){var self=this.ptr;if(num_points&&typeof num_points===\"object\")num_points=num_points.ptr;_emscripten_bind_Mesh_set_num_points_1(self,num_points)};Mesh.prototype[\"__destroy__\"]=Mesh.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)};function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module[\"Metadata\"]=Metadata;Metadata.prototype[\"__destroy__\"]=Metadata.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)};function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module[\"DracoInt8Array\"]=DracoInt8Array;DracoInt8Array.prototype[\"GetValue\"]=DracoInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,index)};DracoInt8Array.prototype[\"size\"]=DracoInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)};DracoInt8Array.prototype[\"__destroy__\"]=DracoInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)};function MetadataBuilder(){this.ptr=_emscripten_bind_MetadataBuilder_MetadataBuilder_0();getCache(MetadataBuilder)[this.ptr]=this}MetadataBuilder.prototype=Object.create(WrapperObject.prototype);MetadataBuilder.prototype.constructor=MetadataBuilder;MetadataBuilder.prototype.__class__=MetadataBuilder;MetadataBuilder.__cache__={};Module[\"MetadataBuilder\"]=MetadataBuilder;MetadataBuilder.prototype[\"AddStringEntry\"]=MetadataBuilder.prototype.AddStringEntry=function(metadata,entry_name,entry_value){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(entry_value&&typeof entry_value===\"object\")entry_value=entry_value.ptr;else entry_value=ensureString(entry_value);return!!_emscripten_bind_MetadataBuilder_AddStringEntry_3(self,metadata,entry_name,entry_value)};MetadataBuilder.prototype[\"AddIntEntry\"]=MetadataBuilder.prototype.AddIntEntry=function(metadata,entry_name,entry_value){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(entry_value&&typeof entry_value===\"object\")entry_value=entry_value.ptr;return!!_emscripten_bind_MetadataBuilder_AddIntEntry_3(self,metadata,entry_name,entry_value)};MetadataBuilder.prototype[\"AddIntEntryArray\"]=MetadataBuilder.prototype.AddIntEntryArray=function(metadata,entry_name,att_values,num_values){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}if(num_values&&typeof num_values===\"object\")num_values=num_values.ptr;return!!_emscripten_bind_MetadataBuilder_AddIntEntryArray_4(self,metadata,entry_name,att_values,num_values)};MetadataBuilder.prototype[\"AddDoubleEntry\"]=MetadataBuilder.prototype.AddDoubleEntry=function(metadata,entry_name,entry_value){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(entry_value&&typeof entry_value===\"object\")entry_value=entry_value.ptr;return!!_emscripten_bind_MetadataBuilder_AddDoubleEntry_3(self,metadata,entry_name,entry_value)};MetadataBuilder.prototype[\"__destroy__\"]=MetadataBuilder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MetadataBuilder___destroy___0(self)};function PointCloudBuilder(){this.ptr=_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0();getCache(PointCloudBuilder)[this.ptr]=this}PointCloudBuilder.prototype=Object.create(WrapperObject.prototype);PointCloudBuilder.prototype.constructor=PointCloudBuilder;PointCloudBuilder.prototype.__class__=PointCloudBuilder;PointCloudBuilder.__cache__={};Module[\"PointCloudBuilder\"]=PointCloudBuilder;PointCloudBuilder.prototype[\"AddFloatAttribute\"]=PointCloudBuilder.prototype.AddFloatAttribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureFloat32(att_values)}return _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddInt8Attribute\"]=PointCloudBuilder.prototype.AddInt8Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt8(att_values)}return _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddUInt8Attribute\"]=PointCloudBuilder.prototype.AddUInt8Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt8(att_values)}return _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddInt16Attribute\"]=PointCloudBuilder.prototype.AddInt16Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt16(att_values)}return _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddUInt16Attribute\"]=PointCloudBuilder.prototype.AddUInt16Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt16(att_values)}return _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddInt32Attribute\"]=PointCloudBuilder.prototype.AddInt32Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddUInt32Attribute\"]=PointCloudBuilder.prototype.AddUInt32Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5(self,pc,type,num_vertices,num_components,att_values)};PointCloudBuilder.prototype[\"AddMetadata\"]=PointCloudBuilder.prototype.AddMetadata=function(pc,metadata){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_PointCloudBuilder_AddMetadata_2(self,pc,metadata)};PointCloudBuilder.prototype[\"SetMetadataForAttribute\"]=PointCloudBuilder.prototype.SetMetadataForAttribute=function(pc,attribute_id,metadata){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(attribute_id&&typeof attribute_id===\"object\")attribute_id=attribute_id.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3(self,pc,attribute_id,metadata)};PointCloudBuilder.prototype[\"SetNormalizedFlagForAttribute\"]=PointCloudBuilder.prototype.SetNormalizedFlagForAttribute=function(pc,attribute_id,normalized){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(attribute_id&&typeof attribute_id===\"object\")attribute_id=attribute_id.ptr;if(normalized&&typeof normalized===\"object\")normalized=normalized.ptr;return!!_emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3(self,pc,attribute_id,normalized)};PointCloudBuilder.prototype[\"__destroy__\"]=PointCloudBuilder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloudBuilder___destroy___0(self)};function MeshBuilder(){this.ptr=_emscripten_bind_MeshBuilder_MeshBuilder_0();getCache(MeshBuilder)[this.ptr]=this}MeshBuilder.prototype=Object.create(WrapperObject.prototype);MeshBuilder.prototype.constructor=MeshBuilder;MeshBuilder.prototype.__class__=MeshBuilder;MeshBuilder.__cache__={};Module[\"MeshBuilder\"]=MeshBuilder;MeshBuilder.prototype[\"AddFacesToMesh\"]=MeshBuilder.prototype.AddFacesToMesh=function(mesh,num_faces,faces){var self=this.ptr;ensureCache.prepare();if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(num_faces&&typeof num_faces===\"object\")num_faces=num_faces.ptr;if(typeof faces==\"object\"){faces=ensureInt32(faces)}return!!_emscripten_bind_MeshBuilder_AddFacesToMesh_3(self,mesh,num_faces,faces)};MeshBuilder.prototype[\"AddFloatAttributeToMesh\"]=MeshBuilder.prototype.AddFloatAttributeToMesh=function(mesh,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureFloat32(att_values)}return _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5(self,mesh,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddInt32AttributeToMesh\"]=MeshBuilder.prototype.AddInt32AttributeToMesh=function(mesh,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5(self,mesh,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddMetadataToMesh\"]=MeshBuilder.prototype.AddMetadataToMesh=function(mesh,metadata){var self=this.ptr;if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_MeshBuilder_AddMetadataToMesh_2(self,mesh,metadata)};MeshBuilder.prototype[\"AddFloatAttribute\"]=MeshBuilder.prototype.AddFloatAttribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureFloat32(att_values)}return _emscripten_bind_MeshBuilder_AddFloatAttribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddInt8Attribute\"]=MeshBuilder.prototype.AddInt8Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt8(att_values)}return _emscripten_bind_MeshBuilder_AddInt8Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddUInt8Attribute\"]=MeshBuilder.prototype.AddUInt8Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt8(att_values)}return _emscripten_bind_MeshBuilder_AddUInt8Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddInt16Attribute\"]=MeshBuilder.prototype.AddInt16Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt16(att_values)}return _emscripten_bind_MeshBuilder_AddInt16Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddUInt16Attribute\"]=MeshBuilder.prototype.AddUInt16Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt16(att_values)}return _emscripten_bind_MeshBuilder_AddUInt16Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddInt32Attribute\"]=MeshBuilder.prototype.AddInt32Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_MeshBuilder_AddInt32Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddUInt32Attribute\"]=MeshBuilder.prototype.AddUInt32Attribute=function(pc,type,num_vertices,num_components,att_values){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(num_vertices&&typeof num_vertices===\"object\")num_vertices=num_vertices.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof att_values==\"object\"){att_values=ensureInt32(att_values)}return _emscripten_bind_MeshBuilder_AddUInt32Attribute_5(self,pc,type,num_vertices,num_components,att_values)};MeshBuilder.prototype[\"AddMetadata\"]=MeshBuilder.prototype.AddMetadata=function(pc,metadata){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_MeshBuilder_AddMetadata_2(self,pc,metadata)};MeshBuilder.prototype[\"SetMetadataForAttribute\"]=MeshBuilder.prototype.SetMetadataForAttribute=function(pc,attribute_id,metadata){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(attribute_id&&typeof attribute_id===\"object\")attribute_id=attribute_id.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return!!_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3(self,pc,attribute_id,metadata)};MeshBuilder.prototype[\"SetNormalizedFlagForAttribute\"]=MeshBuilder.prototype.SetNormalizedFlagForAttribute=function(pc,attribute_id,normalized){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(attribute_id&&typeof attribute_id===\"object\")attribute_id=attribute_id.ptr;if(normalized&&typeof normalized===\"object\")normalized=normalized.ptr;return!!_emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3(self,pc,attribute_id,normalized)};MeshBuilder.prototype[\"__destroy__\"]=MeshBuilder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MeshBuilder___destroy___0(self)};function Encoder(){this.ptr=_emscripten_bind_Encoder_Encoder_0();getCache(Encoder)[this.ptr]=this}Encoder.prototype=Object.create(WrapperObject.prototype);Encoder.prototype.constructor=Encoder;Encoder.prototype.__class__=Encoder;Encoder.__cache__={};Module[\"Encoder\"]=Encoder;Encoder.prototype[\"SetEncodingMethod\"]=Encoder.prototype.SetEncodingMethod=function(method){var self=this.ptr;if(method&&typeof method===\"object\")method=method.ptr;_emscripten_bind_Encoder_SetEncodingMethod_1(self,method)};Encoder.prototype[\"SetAttributeQuantization\"]=Encoder.prototype.SetAttributeQuantization=function(type,quantization_bits){var self=this.ptr;if(type&&typeof type===\"object\")type=type.ptr;if(quantization_bits&&typeof quantization_bits===\"object\")quantization_bits=quantization_bits.ptr;_emscripten_bind_Encoder_SetAttributeQuantization_2(self,type,quantization_bits)};Encoder.prototype[\"SetAttributeExplicitQuantization\"]=Encoder.prototype.SetAttributeExplicitQuantization=function(type,quantization_bits,num_components,origin,range){var self=this.ptr;ensureCache.prepare();if(type&&typeof type===\"object\")type=type.ptr;if(quantization_bits&&typeof quantization_bits===\"object\")quantization_bits=quantization_bits.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof origin==\"object\"){origin=ensureFloat32(origin)}if(range&&typeof range===\"object\")range=range.ptr;_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5(self,type,quantization_bits,num_components,origin,range)};Encoder.prototype[\"SetSpeedOptions\"]=Encoder.prototype.SetSpeedOptions=function(encoding_speed,decoding_speed){var self=this.ptr;if(encoding_speed&&typeof encoding_speed===\"object\")encoding_speed=encoding_speed.ptr;if(decoding_speed&&typeof decoding_speed===\"object\")decoding_speed=decoding_speed.ptr;_emscripten_bind_Encoder_SetSpeedOptions_2(self,encoding_speed,decoding_speed)};Encoder.prototype[\"SetTrackEncodedProperties\"]=Encoder.prototype.SetTrackEncodedProperties=function(flag){var self=this.ptr;if(flag&&typeof flag===\"object\")flag=flag.ptr;_emscripten_bind_Encoder_SetTrackEncodedProperties_1(self,flag)};Encoder.prototype[\"EncodeMeshToDracoBuffer\"]=Encoder.prototype.EncodeMeshToDracoBuffer=function(mesh,encoded_data){var self=this.ptr;if(mesh&&typeof mesh===\"object\")mesh=mesh.ptr;if(encoded_data&&typeof encoded_data===\"object\")encoded_data=encoded_data.ptr;return _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2(self,mesh,encoded_data)};Encoder.prototype[\"EncodePointCloudToDracoBuffer\"]=Encoder.prototype.EncodePointCloudToDracoBuffer=function(pc,deduplicate_values,encoded_data){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(deduplicate_values&&typeof deduplicate_values===\"object\")deduplicate_values=deduplicate_values.ptr;if(encoded_data&&typeof encoded_data===\"object\")encoded_data=encoded_data.ptr;return _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3(self,pc,deduplicate_values,encoded_data)};Encoder.prototype[\"GetNumberOfEncodedPoints\"]=Encoder.prototype.GetNumberOfEncodedPoints=function(){var self=this.ptr;return _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0(self)};Encoder.prototype[\"GetNumberOfEncodedFaces\"]=Encoder.prototype.GetNumberOfEncodedFaces=function(){var self=this.ptr;return _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0(self)};Encoder.prototype[\"__destroy__\"]=Encoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Encoder___destroy___0(self)};function ExpertEncoder(pc){if(pc&&typeof pc===\"object\")pc=pc.ptr;this.ptr=_emscripten_bind_ExpertEncoder_ExpertEncoder_1(pc);getCache(ExpertEncoder)[this.ptr]=this}ExpertEncoder.prototype=Object.create(WrapperObject.prototype);ExpertEncoder.prototype.constructor=ExpertEncoder;ExpertEncoder.prototype.__class__=ExpertEncoder;ExpertEncoder.__cache__={};Module[\"ExpertEncoder\"]=ExpertEncoder;ExpertEncoder.prototype[\"SetEncodingMethod\"]=ExpertEncoder.prototype.SetEncodingMethod=function(method){var self=this.ptr;if(method&&typeof method===\"object\")method=method.ptr;_emscripten_bind_ExpertEncoder_SetEncodingMethod_1(self,method)};ExpertEncoder.prototype[\"SetAttributeQuantization\"]=ExpertEncoder.prototype.SetAttributeQuantization=function(att_id,quantization_bits){var self=this.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;if(quantization_bits&&typeof quantization_bits===\"object\")quantization_bits=quantization_bits.ptr;_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2(self,att_id,quantization_bits)};ExpertEncoder.prototype[\"SetAttributeExplicitQuantization\"]=ExpertEncoder.prototype.SetAttributeExplicitQuantization=function(att_id,quantization_bits,num_components,origin,range){var self=this.ptr;ensureCache.prepare();if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;if(quantization_bits&&typeof quantization_bits===\"object\")quantization_bits=quantization_bits.ptr;if(num_components&&typeof num_components===\"object\")num_components=num_components.ptr;if(typeof origin==\"object\"){origin=ensureFloat32(origin)}if(range&&typeof range===\"object\")range=range.ptr;_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5(self,att_id,quantization_bits,num_components,origin,range)};ExpertEncoder.prototype[\"SetSpeedOptions\"]=ExpertEncoder.prototype.SetSpeedOptions=function(encoding_speed,decoding_speed){var self=this.ptr;if(encoding_speed&&typeof encoding_speed===\"object\")encoding_speed=encoding_speed.ptr;if(decoding_speed&&typeof decoding_speed===\"object\")decoding_speed=decoding_speed.ptr;_emscripten_bind_ExpertEncoder_SetSpeedOptions_2(self,encoding_speed,decoding_speed)};ExpertEncoder.prototype[\"SetTrackEncodedProperties\"]=ExpertEncoder.prototype.SetTrackEncodedProperties=function(flag){var self=this.ptr;if(flag&&typeof flag===\"object\")flag=flag.ptr;_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1(self,flag)};ExpertEncoder.prototype[\"EncodeToDracoBuffer\"]=ExpertEncoder.prototype.EncodeToDracoBuffer=function(deduplicate_values,encoded_data){var self=this.ptr;if(deduplicate_values&&typeof deduplicate_values===\"object\")deduplicate_values=deduplicate_values.ptr;if(encoded_data&&typeof encoded_data===\"object\")encoded_data=encoded_data.ptr;return _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2(self,deduplicate_values,encoded_data)};ExpertEncoder.prototype[\"GetNumberOfEncodedPoints\"]=ExpertEncoder.prototype.GetNumberOfEncodedPoints=function(){var self=this.ptr;return _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0(self)};ExpertEncoder.prototype[\"GetNumberOfEncodedFaces\"]=ExpertEncoder.prototype.GetNumberOfEncodedFaces=function(){var self=this.ptr;return _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0(self)};ExpertEncoder.prototype[\"__destroy__\"]=ExpertEncoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_ExpertEncoder___destroy___0(self)};(function(){function setupEnums(){Module[\"INVALID\"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module[\"POSITION\"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module[\"NORMAL\"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module[\"COLOR\"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module[\"TEX_COORD\"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module[\"GENERIC\"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC();Module[\"INVALID_GEOMETRY_TYPE\"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module[\"POINT_CLOUD\"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module[\"TRIANGULAR_MESH\"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module[\"MESH_SEQUENTIAL_ENCODING\"]=_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING();Module[\"MESH_EDGEBREAKER_ENCODING\"]=_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING()}if(runtimeInitialized)setupEnums();else addOnInit(setupEnums)})();if(typeof Module[\"onModuleParsed\"]===\"function\"){Module[\"onModuleParsed\"]()}\n\n\n  return DracoEncoderModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DracoEncoderModule;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DracoEncoderModule; });\nelse if (typeof exports === 'object')\n  exports[\"DracoEncoderModule\"] = DracoEncoderModule;\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/draco_encoder_wrapper.js",
    "content": "var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(l){var p=0;return function(){return p<l.length?{done:!1,value:l[p++]}:{done:!0}}};$jscomp.arrayIterator=function(l){return{next:$jscomp.arrayIteratorImpl(l)}};$jscomp.makeIterator=function(l){var p=\"undefined\"!=typeof Symbol&&Symbol.iterator&&l[Symbol.iterator];return p?p.call(l):$jscomp.arrayIterator(l)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(l){l=[\"object\"==typeof globalThis&&globalThis,l,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var p=0;p<l.length;++p){var m=l[p];if(m&&m.Math==Math)return m}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(l,p,m){if(l==Array.prototype||l==Object.prototype)return l;l[p]=m.value;return l};$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";\nvar $jscomp$lookupPolyfilledValue=function(l,p){var m=$jscomp.propertyToPolyfillSymbol[p];if(null==m)return l[p];m=l[m];return void 0!==m?m:l[p]};$jscomp.polyfill=function(l,p,m,r){p&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(l,p,m,r):$jscomp.polyfillUnisolated(l,p,m,r))};\n$jscomp.polyfillUnisolated=function(l,p,m,r){m=$jscomp.global;l=l.split(\".\");for(r=0;r<l.length-1;r++){var k=l[r];if(!(k in m))return;m=m[k]}l=l[l.length-1];r=m[l];p=p(r);p!=r&&null!=p&&$jscomp.defineProperty(m,l,{configurable:!0,writable:!0,value:p})};\n$jscomp.polyfillIsolated=function(l,p,m,r){var k=l.split(\".\");l=1===k.length;r=k[0];r=!l&&r in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var C=0;C<k.length-1;C++){var h=k[C];if(!(h in r))return;r=r[h]}k=k[k.length-1];m=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===m?r[k]:null;p=p(m);null!=p&&(l?$jscomp.defineProperty($jscomp.polyfills,k,{configurable:!0,writable:!0,value:p}):p!==m&&(void 0===$jscomp.propertyToPolyfillSymbol[k]&&(m=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE?\n$jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+\"$\"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))};\n$jscomp.polyfill(\"Promise\",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,w){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&\"undefined\"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf(\"[native code]\")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)};\nvar r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q<h.length;++q){var w=h[q];h[q]=null;try{w()}catch(B){this.asyncThrow_(B)}}}this.batch_=null};p.prototype.asyncThrow_=function(h){this.asyncExecuteFunction(function(){throw h;})};var k=function(h){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();\ntry{h(q.resolve,q.reject)}catch(w){q.reject(w)}};k.prototype.createResolveAndReject_=function(){function h(B){return function(v){w||(w=!0,B.call(q,v))}}var q=this,w=!1;return{resolve:h(this.resolveTo_),reject:h(this.reject_)}};k.prototype.resolveTo_=function(h){if(h===this)this.reject_(new TypeError(\"A Promise cannot resolve to itself\"));else if(h instanceof k)this.settleSameAsPromise_(h);else{a:switch(typeof h){case \"object\":var q=null!=h;break a;case \"function\":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(h):\nthis.fulfill_(h)}};k.prototype.resolveToNonPromiseObj_=function(h){var q=void 0;try{q=h.then}catch(w){this.reject_(w);return}\"function\"==typeof q?this.settleSameAsThenable_(q,h):this.fulfill_(h)};k.prototype.reject_=function(h){this.settle_(2,h)};k.prototype.fulfill_=function(h){this.settle_(1,h)};k.prototype.settle_=function(h,q){if(0!=this.state_)throw Error(\"Cannot settle(\"+h+\", \"+q+\"): Promise already settled in state\"+this.state_);this.state_=h;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();\nthis.executeOnSettledCallbacks_()};k.prototype.scheduleUnhandledRejectionCheck_=function(){var h=this;r(function(){if(h.notifyUnhandledRejection_()){var q=$jscomp.global.console;\"undefined\"!==typeof q&&q.error(h.result_)}},1)};k.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var h=$jscomp.global.CustomEvent,q=$jscomp.global.Event,w=$jscomp.global.dispatchEvent;if(\"undefined\"===typeof w)return!0;\"function\"===typeof h?h=new h(\"unhandledrejection\",{cancelable:!0}):\n\"function\"===typeof q?h=new q(\"unhandledrejection\",{cancelable:!0}):(h=$jscomp.global.document.createEvent(\"CustomEvent\"),h.initCustomEvent(\"unhandledrejection\",!1,!0,h));h.promise=this;h.reason=this.result_;return w(h)};k.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var h=0;h<this.onSettledCallbacks_.length;++h)C.asyncExecute(this.onSettledCallbacks_[h]);this.onSettledCallbacks_=null}};var C=new p;k.prototype.settleSameAsPromise_=function(h){var q=this.createResolveAndReject_();\nh.callWhenSettled_(q.resolve,q.reject)};k.prototype.settleSameAsThenable_=function(h,q){var w=this.createResolveAndReject_();try{h.call(q,w.resolve,w.reject)}catch(B){w.reject(B)}};k.prototype.then=function(h,q){function w(I,J){return\"function\"==typeof I?function(Q){try{B(I(Q))}catch(R){v(R)}}:J}var B,v,D=new k(function(I,J){B=I;v=J});this.callWhenSettled_(w(h,B),w(q,v));return D};k.prototype.catch=function(h){return this.then(void 0,h)};k.prototype.callWhenSettled_=function(h,q){function w(){switch(B.state_){case 1:h(B.result_);\nbreak;case 2:q(B.result_);break;default:throw Error(\"Unexpected state: \"+B.state_);}}var B=this;null==this.onSettledCallbacks_?C.asyncExecute(w):this.onSettledCallbacks_.push(w);this.isRejectionHandled_=!0};k.resolve=m;k.reject=function(h){return new k(function(q,w){w(h)})};k.race=function(h){return new k(function(q,w){for(var B=$jscomp.makeIterator(h),v=B.next();!v.done;v=B.next())m(v.value).callWhenSettled_(q,w)})};k.all=function(h){var q=$jscomp.makeIterator(h),w=q.next();return w.done?m([]):new k(function(B,\nv){function D(Q){return function(R){I[Q]=R;J--;0==J&&B(I)}}var I=[],J=0;do I.push(void 0),J++,m(w.value).callWhenSettled_(D(I.length-1),v),w=q.next();while(!w.done)})};return k},\"es6\",\"es3\");$jscomp.owns=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&\"function\"==typeof Object.assign?Object.assign:function(l,p){for(var m=1;m<arguments.length;m++){var r=arguments[m];if(r)for(var k in r)$jscomp.owns(r,k)&&(l[k]=r[k])}return l};\n$jscomp.polyfill(\"Object.assign\",function(l){return l||$jscomp.assign},\"es6\",\"es3\");$jscomp.checkStringArgs=function(l,p,m){if(null==l)throw new TypeError(\"The 'this' value for String.prototype.\"+m+\" must not be null or undefined\");if(p instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+m+\" must not be a regular expression\");return l+\"\"};\n$jscomp.polyfill(\"String.prototype.startsWith\",function(l){return l?l:function(p,m){var r=$jscomp.checkStringArgs(this,p,\"startsWith\");p+=\"\";var k=r.length,C=p.length;m=Math.max(0,Math.min(m|0,r.length));for(var h=0;h<C&&m<k;)if(r[m++]!=p[h++])return!1;return h>=C}},\"es6\",\"es3\");\n$jscomp.polyfill(\"Array.prototype.copyWithin\",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(m<r)for(;r<k;)r in this?this[m++]=this[r++]:(delete this[m++],r++);else for(k=Math.min(k,C+r-m),m+=k-r;k>r;)--k in this?this[--m]=this[k]:delete this[--m];return this}},\"es6\",\"es3\");\n$jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill(\"Int8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8ClampedArray.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\n$jscomp.polyfill(\"Uint16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float64Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\nvar DracoEncoderModule=function(){var l=\"undefined\"!==typeof document&&document.currentScript?document.currentScript.src:void 0;\"undefined\"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(){var f=ba.buffer;a.HEAP8=O=new Int8Array(f);a.HEAP16=ea=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=fa=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ha=new Float32Array(f);a.HEAPF64=\nnew Float64Array(f)}function k(f){if(a.onAbort)a.onAbort(f);f=\"Aborted(\"+f+\")\";W(f);na=!0;f=new WebAssembly.RuntimeError(f+\". Build with -sASSERTIONS for more info.\");ca(f);throw f;}function C(f){try{if(f==K&&X)return new Uint8Array(X);if(ia)return ia(f);throw\"both async and sync fetching of the wasm failed\";}catch(b){k(b)}}function h(){if(!X&&(oa||Y)){if(\"function\"==typeof fetch&&!K.startsWith(\"file://\"))return fetch(K,{credentials:\"same-origin\"}).then(function(f){if(!f.ok)throw\"failed to load wasm binary file at '\"+\nK+\"'\";return f.arrayBuffer()}).catch(function(){return C(K)});if(ja)return new Promise(function(f,b){ja(K,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(K)})}function q(f){for(;0<f.length;)f.shift()(a)}function w(f){this.excPtr=f;this.ptr=f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=\nfunction(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>\n2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(){function f(){if(!da&&(da=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift());\nq(sa)}}if(!(0<U)){if(a.preRun)for(\"function\"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ta.unshift(a.preRun.shift());q(ta);0<U||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){a.setStatus(\"\")},1);f()},1)):f())}}function v(){}function D(f){return(f||v).__cache__}function I(f,b){var c=D(b),d=c[f];if(d)return d;d=Object.create((b||v).prototype);d.ptr=f;return c[f]=d}function J(f){if(\"string\"===typeof f){for(var b=0,c=0;c<f.length;++c){var d=f.charCodeAt(c);\n127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var e=0;e<f.length;++e){var g=f.charCodeAt(e);if(55296<=g&&57343>=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f}\nfunction Q(f){if(\"object\"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if(\"object\"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if(\"object\"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if(\"object\"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw\"cannot construct a VoidPtr, no constructor in IDL\";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va();\nD(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&\"object\"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=void 0===p?{}:p;var a=\n\"undefined\"!=typeof p?p:{},ra,ca;a.ready=new Promise(function(f,b){ra=f;ca=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if(\"string\"!==typeof f)return!1;f=f.split(\".\");return 2>f.length||3<f.length?!1:1==f[0]&&0<=f[1]&&5>=f[1]?!0:0!=f[0]||10<f[1]?!1:!0};var Ha=Object.assign({},a),oa=\"object\"==\ntypeof window,Y=\"function\"==typeof importScripts,Ia=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,L=\"\";if(Ia){var Ja=require(\"fs\"),la=require(\"path\");L=Y?la.dirname(L)+\"/\":__dirname+\"/\";var Ka=function(f,b){f=f.startsWith(\"file://\")?new URL(f):la.normalize(f);return Ja.readFileSync(f,b?void 0:\"utf8\")};var ia=function(f){f=Ka(f,!0);f.buffer||(f=new Uint8Array(f));return f};var ja=function(f,b,c){f=f.startsWith(\"file://\")?new URL(f):la.normalize(f);\nJa.readFile(f,function(d,e){d?c(d):b(e.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\/g,\"/\");process.argv.slice(2);a.inspect=function(){return\"[Emscripten Module object]\"}}else if(oa||Y)Y?L=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(L=document.currentScript.src),l&&(L=l),L=0!==L.indexOf(\"blob:\")?L.substr(0,L.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",Ka=function(f){var b=new XMLHttpRequest;b.open(\"GET\",f,!1);b.send(null);return b.responseText},Y&&(ia=\nfunction(f){var b=new XMLHttpRequest;b.open(\"GET\",f,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)}),ja=function(f,b,c){var d=new XMLHttpRequest;d.open(\"GET\",f,!0);d.responseType=\"arraybuffer\";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var W=a.printErr||console.warn.bind(console);Object.assign(a,Ha);Ha=null;var X;a.wasmBinary&&(X=a.wasmBinary);\"object\"!=typeof WebAssembly&&\nk(\"no native wasm support detected\");var ba,na=!1,O,fa,ea,S,T,ha,ta=[],ka=[],sa=[],qa=!1,U=0,ma=null,aa=null;var K=\"draco_encoder.wasm\";K.startsWith(\"data:application/octet-stream;base64,\")||(K=m(K));var pc=0,qc={b:function(f,b,c){(new w(f)).init(b,c);pc++;throw f;},a:function(){k(\"\")},d:function(f,b,c){fa.copyWithin(f,b,b+c)},c:function(f){var b=fa.length;f>>>=0;if(2147483648<f)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,\nd+(65536-d%65536)%65536);a:{d=ba.buffer;try{ba.grow(e-d.byteLength+65535>>>16);r();var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;ba=a.asm.e;r();ka.unshift(a.asm.f);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==ma&&(clearInterval(ma),ma=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W(\"failed to asynchronously prepare wasm: \"+\ng);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W(\"Module.instantiateWasm callback failed with error: \"+e),ca(e)}(function(){return X||\"function\"!=typeof WebAssembly.instantiateStreaming||K.startsWith(\"data:application/octet-stream;base64,\")||K.startsWith(\"file://\")||Ia||\"function\"!=typeof fetch?c(b):fetch(K,{credentials:\"same-origin\"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,\nfunction(g){W(\"wasm streaming compile failed: \"+g);W(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ca);return{}})();var La=a._emscripten_bind_VoidPtr___destroy___0=function(){return(La=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.i).apply(null,arguments)},Ma=a._emscripten_bind_GeometryAttribute___destroy___0=\nfunction(){return(Ma=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.j).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.k).apply(null,arguments)},Na=a._emscripten_bind_PointAttribute_size_0=function(){return(Na=a._emscripten_bind_PointAttribute_size_0=a.asm.l).apply(null,arguments)},Oa=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Oa=a._emscripten_bind_PointAttribute_attribute_type_0=\na.asm.m).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Pa=a._emscripten_bind_PointAttribute_data_type_0=a.asm.n).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Qa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.o).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ra=a._emscripten_bind_PointAttribute_normalized_0=a.asm.p).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_byte_stride_0=\nfunction(){return(Sa=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.q).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Ta=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.r).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Ua=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.s).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute___destroy___0=function(){return(Va=a._emscripten_bind_PointAttribute___destroy___0=\na.asm.t).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.u).apply(null,arguments)},Wa=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Wa=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.v).apply(null,arguments)},Xa=a._emscripten_bind_PointCloud_num_points_0=function(){return(Xa=a._emscripten_bind_PointCloud_num_points_0=a.asm.w).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud___destroy___0=\nfunction(){return(Ya=a._emscripten_bind_PointCloud___destroy___0=a.asm.x).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.y).apply(null,arguments)},Za=a._emscripten_bind_Mesh_num_faces_0=function(){return(Za=a._emscripten_bind_Mesh_num_faces_0=a.asm.z).apply(null,arguments)},$a=a._emscripten_bind_Mesh_num_attributes_0=function(){return($a=a._emscripten_bind_Mesh_num_attributes_0=a.asm.A).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_points_0=\nfunction(){return(ab=a._emscripten_bind_Mesh_num_points_0=a.asm.B).apply(null,arguments)},bb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(bb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.C).apply(null,arguments)},cb=a._emscripten_bind_Mesh___destroy___0=function(){return(cb=a._emscripten_bind_Mesh___destroy___0=a.asm.D).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0=a.asm.E).apply(null,arguments)},db=a._emscripten_bind_Metadata___destroy___0=\nfunction(){return(db=a._emscripten_bind_Metadata___destroy___0=a.asm.F).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.G).apply(null,arguments)},eb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(eb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.H).apply(null,arguments)},fb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(fb=a._emscripten_bind_DracoInt8Array_size_0=\na.asm.I).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(gb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.J).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.K).apply(null,arguments)},hb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(hb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.L).apply(null,arguments)},\nib=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ib=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.M).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.N).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.O).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder___destroy___0=\nfunction(){return(lb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.P).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.Q).apply(null,arguments)},mb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(mb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.R).apply(null,arguments)},nb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=\nfunction(){return(nb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.S).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.T).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.U).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=\nfunction(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.V).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.W).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.X).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=\nfunction(){return(tb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Y).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(ub=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm.Z).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=function(){return(vb=a._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=a.asm._).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder___destroy___0=\nfunction(){return(wb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},xb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(xb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=\na.asm.ca).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,\narguments)},Cb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=\nfunction(){return(Fb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddMetadata_2=\na.asm.ma).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Jb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=a.asm.oa).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0=\na.asm.pa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.qa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.ra).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.sa).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=\nfunction(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.ta).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ua).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.va).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb=\na._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.wa).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.xa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.ya).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub=\na._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.za).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.Aa).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Ba).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=\na.asm.Ca).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Da).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Ea).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=\na.asm.Fa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Ga).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ha).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=\na.asm.Ia).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ja).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ka).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.La).apply(null,\narguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.Ma).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Na).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Oa).apply(null,\narguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Pa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Qa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=\na.asm.Ra).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Sa).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ta).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=\na.asm.Ua).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Va).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Wa).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Xa).apply(null,arguments)};var pa=function(){return(pa=a.asm.Ya).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var da;aa=function b(){da||B();\nda||(aa=b)};if(a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();B();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=v;a.getCache=D;a.wrapPointer=I;a.castObject=function(b,c){return I(b.ptr,c)};a.NULL=I(0);a.destroy=function(b){if(!b.__destroy__)throw\"Error: Cannot destroy object. (Did you create it yourself?)\";b.__destroy__();delete D(b.__class__)[b.ptr]};a.compare=function(b,\nc){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var b=0;b<n.temps.length;b++)a._free(n.temps[b]);n.temps.length=0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),n.buffer||k(void 0));n.pos=0},alloc:function(b,c){n.buffer||k(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;n.pos+b>=n.size?(0<b||k(void 0),\nn.needed+=b,c=a._malloc(b),n.temps.push(c)):(c=n.buffer+n.pos,n.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e<b.length;e++)c[d+e]=b[e]}};P.prototype=Object.create(v.prototype);P.prototype.constructor=P;P.prototype.__class__=P;P.__cache__={};a.VoidPtr=P;P.prototype.__destroy__=P.prototype.__destroy__=function(){La(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=\nM;M.__cache__={};a.GeometryAttribute=M;M.prototype.__destroy__=M.prototype.__destroy__=function(){Ma(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.PointAttribute=z;z.prototype.size=z.prototype.size=function(){return Na(this.ptr)};z.prototype.attribute_type=z.prototype.attribute_type=function(){return Oa(this.ptr)};z.prototype.data_type=z.prototype.data_type=function(){return Pa(this.ptr)};z.prototype.num_components=z.prototype.num_components=\nfunction(){return Qa(this.ptr)};z.prototype.normalized=z.prototype.normalized=function(){return!!Ra(this.ptr)};z.prototype.byte_stride=z.prototype.byte_stride=function(){return Sa(this.ptr)};z.prototype.byte_offset=z.prototype.byte_offset=function(){return Ta(this.ptr)};z.prototype.unique_id=z.prototype.unique_id=function(){return Ua(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){Va(this.ptr)};G.prototype=Object.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=\nG;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Wa(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Xa(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Ya(this.ptr)};E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Za(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=\nfunction(){return $a(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return ab(this.ptr)};E.prototype.set_num_points=E.prototype.set_num_points=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);bb(c,b)};E.prototype.__destroy__=E.prototype.__destroy__=function(){cb(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.Metadata=N;N.prototype.__destroy__=N.prototype.__destroy__=function(){db(this.ptr)};H.prototype=\nObject.create(v.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoInt8Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return eb(c,b)};H.prototype.size=H.prototype.size=function(){return fb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){gb(this.ptr)};F.prototype=Object.create(v.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.MetadataBuilder=F;F.prototype.AddStringEntry=\nF.prototype.AddStringEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:J(c);d=d&&\"object\"===typeof d?d.ptr:J(d);return!!hb(e,b,c,d)};F.prototype.AddIntEntry=F.prototype.AddIntEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:J(c);d&&\"object\"===typeof d&&(d=d.ptr);return!!ib(e,b,c,d)};F.prototype.AddIntEntryArray=F.prototype.AddIntEntryArray=function(b,c,d,e){var g=this.ptr;\nn.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:J(c);\"object\"==typeof d&&(d=V(d));e&&\"object\"===typeof e&&(e=e.ptr);return!!jb(g,b,c,d,e)};F.prototype.AddDoubleEntry=F.prototype.AddDoubleEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:J(c);d&&\"object\"===typeof d&&(d=d.ptr);return!!kb(e,b,c,d)};F.prototype.__destroy__=F.prototype.__destroy__=function(){lb(this.ptr)};x.prototype=Object.create(v.prototype);\nx.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.PointCloudBuilder=x;x.prototype.AddFloatAttribute=x.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Z(g));return mb(t,b,c,d,e,g)};x.prototype.AddInt8Attribute=x.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===\ntypeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Q(g));return nb(t,b,c,d,e,g)};x.prototype.AddUInt8Attribute=x.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Q(g));return ob(t,b,c,d,e,g)};x.prototype.AddInt16Attribute=\nx.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=R(g));return pb(t,b,c,d,e,g)};x.prototype.AddUInt16Attribute=x.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&\n(e=e.ptr);\"object\"==typeof g&&(g=R(g));return qb(t,b,c,d,e,g)};x.prototype.AddInt32Attribute=x.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return rb(t,b,c,d,e,g)};x.prototype.AddUInt32Attribute=x.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);\nc&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return sb(t,b,c,d,e,g)};x.prototype.AddMetadata=x.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return!!tb(d,b,c)};x.prototype.SetMetadataForAttribute=x.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===\ntypeof d&&(d=d.ptr);return!!ub(e,b,c,d)};x.prototype.SetNormalizedFlagForAttribute=x.prototype.SetNormalizedFlagForAttribute=function(b,c,d){var e=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!vb(e,b,c,d)};x.prototype.__destroy__=x.prototype.__destroy__=function(){wb(this.ptr)};u.prototype=Object.create(v.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.MeshBuilder=u;u.prototype.AddFacesToMesh=u.prototype.AddFacesToMesh=\nfunction(b,c,d){var e=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);\"object\"==typeof d&&(d=V(d));return!!xb(e,b,c,d)};u.prototype.AddFloatAttributeToMesh=u.prototype.AddFloatAttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Z(g));return yb(t,b,c,d,e,g)};u.prototype.AddInt32AttributeToMesh=\nu.prototype.AddInt32AttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return zb(t,b,c,d,e,g)};u.prototype.AddMetadataToMesh=u.prototype.AddMetadataToMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return!!Ab(d,b,c)};u.prototype.AddFloatAttribute=u.prototype.AddFloatAttribute=\nfunction(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Z(g));return Bb(t,b,c,d,e,g)};u.prototype.AddInt8Attribute=u.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Q(g));\nreturn Cb(t,b,c,d,e,g)};u.prototype.AddUInt8Attribute=u.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=Q(g));return Db(t,b,c,d,e,g)};u.prototype.AddInt16Attribute=u.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===\ntypeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=R(g));return Eb(t,b,c,d,e,g)};u.prototype.AddUInt16Attribute=u.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=R(g));return Fb(t,b,c,d,e,g)};u.prototype.AddInt32Attribute=u.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return Gb(t,b,c,d,e,g)};u.prototype.AddUInt32Attribute=u.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);e&&\"object\"===typeof e&&(e=e.ptr);\"object\"==typeof g&&(g=V(g));return Hb(t,b,c,d,e,g)};u.prototype.AddMetadata=\nu.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return!!Ib(d,b,c)};u.prototype.SetMetadataForAttribute=u.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Jb(e,b,c,d)};u.prototype.SetNormalizedFlagForAttribute=u.prototype.SetNormalizedFlagForAttribute=function(b,c,d){var e=this.ptr;b&&\"object\"===typeof b&&\n(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Kb(e,b,c,d)};u.prototype.__destroy__=u.prototype.__destroy__=function(){Lb(this.ptr)};y.prototype=Object.create(v.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.Encoder=y;y.prototype.SetEncodingMethod=y.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Mb(c,b)};y.prototype.SetAttributeQuantization=y.prototype.SetAttributeQuantization=function(b,\nc){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);Nb(d,b,c)};y.prototype.SetAttributeExplicitQuantization=y.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);\"object\"==typeof e&&(e=Z(e));g&&\"object\"===typeof g&&(g=g.ptr);Ob(t,b,c,d,e,g)};y.prototype.SetSpeedOptions=y.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);Pb(d,b,c)};y.prototype.SetTrackEncodedProperties=y.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Qb(c,b)};y.prototype.EncodeMeshToDracoBuffer=y.prototype.EncodeMeshToDracoBuffer=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return Rb(d,b,c)};y.prototype.EncodePointCloudToDracoBuffer=y.prototype.EncodePointCloudToDracoBuffer=function(b,\nc,d){var e=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return Sb(e,b,c,d)};y.prototype.GetNumberOfEncodedPoints=y.prototype.GetNumberOfEncodedPoints=function(){return Tb(this.ptr)};y.prototype.GetNumberOfEncodedFaces=y.prototype.GetNumberOfEncodedFaces=function(){return Ub(this.ptr)};y.prototype.__destroy__=y.prototype.__destroy__=function(){Vb(this.ptr)};A.prototype=Object.create(v.prototype);A.prototype.constructor=A;A.prototype.__class__=\nA;A.__cache__={};a.ExpertEncoder=A;A.prototype.SetEncodingMethod=A.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Wb(c,b)};A.prototype.SetAttributeQuantization=A.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);Xb(d,b,c)};A.prototype.SetAttributeExplicitQuantization=A.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&\"object\"===typeof b&&\n(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);\"object\"==typeof e&&(e=Z(e));g&&\"object\"===typeof g&&(g=g.ptr);Yb(t,b,c,d,e,g)};A.prototype.SetSpeedOptions=A.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);Zb(d,b,c)};A.prototype.SetTrackEncodedProperties=A.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);$b(c,b)};A.prototype.EncodeToDracoBuffer=A.prototype.EncodeToDracoBuffer=\nfunction(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return ac(d,b,c)};A.prototype.GetNumberOfEncodedPoints=A.prototype.GetNumberOfEncodedPoints=function(){return bc(this.ptr)};A.prototype.GetNumberOfEncodedFaces=A.prototype.GetNumberOfEncodedFaces=function(){return cc(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=function(){dc(this.ptr)};(function(){function b(){a.INVALID=ec();a.POSITION=fc();a.NORMAL=gc();a.COLOR=hc();a.TEX_COORD=ic();a.GENERIC=\njc();a.INVALID_GEOMETRY_TYPE=kc();a.POINT_CLOUD=lc();a.TRIANGULAR_MESH=mc();a.MESH_SEQUENTIAL_ENCODING=nc();a.MESH_EDGEBREAKER_ENCODING=oc()}qa?b():ka.unshift(b)})();if(\"function\"===typeof a.onModuleParsed)a.onModuleParsed();return p.ready}}();\"object\"===typeof exports&&\"object\"===typeof module?module.exports=DracoEncoderModule:\"function\"===typeof define&&define.amd?define([],function(){return DracoEncoderModule}):\"object\"===typeof exports&&(exports.DracoEncoderModule=DracoEncoderModule);\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/draco_wasm_wrapper.js",
    "content": "var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(k){var n=0;return function(){return n<k.length?{done:!1,value:k[n++]}:{done:!0}}};$jscomp.arrayIterator=function(k){return{next:$jscomp.arrayIteratorImpl(k)}};$jscomp.makeIterator=function(k){var n=\"undefined\"!=typeof Symbol&&Symbol.iterator&&k[Symbol.iterator];return n?n.call(k):$jscomp.arrayIterator(k)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(k){k=[\"object\"==typeof globalThis&&globalThis,k,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var n=0;n<k.length;++n){var l=k[n];if(l&&l.Math==Math)return l}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(k,n,l){if(k==Array.prototype||k==Object.prototype)return k;k[n]=l.value;return k};$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";\nvar $jscomp$lookupPolyfilledValue=function(k,n){var l=$jscomp.propertyToPolyfillSymbol[n];if(null==l)return k[n];l=k[l];return void 0!==l?l:k[n]};$jscomp.polyfill=function(k,n,l,p){n&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,n,l,p):$jscomp.polyfillUnisolated(k,n,l,p))};\n$jscomp.polyfillUnisolated=function(k,n,l,p){l=$jscomp.global;k=k.split(\".\");for(p=0;p<k.length-1;p++){var h=k[p];if(!(h in l))return;l=l[h]}k=k[k.length-1];p=l[k];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(l,k,{configurable:!0,writable:!0,value:n})};\n$jscomp.polyfillIsolated=function(k,n,l,p){var h=k.split(\".\");k=1===h.length;p=h[0];p=!k&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var A=0;A<h.length-1;A++){var f=h[A];if(!(f in p))return;p=p[f]}h=h[h.length-1];l=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===l?p[h]:null;n=n(l);null!=n&&(k?$jscomp.defineProperty($jscomp.polyfills,h,{configurable:!0,writable:!0,value:n}):n!==l&&(void 0===$jscomp.propertyToPolyfillSymbol[h]&&(l=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[h]=$jscomp.IS_SYMBOL_NATIVE?\n$jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+\"$\"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))};\n$jscomp.polyfill(\"Promise\",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&\"undefined\"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf(\"[native code]\")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};\nvar p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var v=f[q];f[q]=null;try{v()}catch(z){this.asyncThrow_(z)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var h=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();\ntry{f(q.resolve,q.reject)}catch(v){q.reject(v)}};h.prototype.createResolveAndReject_=function(){function f(z){return function(O){v||(v=!0,z.call(q,O))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};h.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError(\"A Promise cannot resolve to itself\"));else if(f instanceof h)this.settleSameAsPromise_(f);else{a:switch(typeof f){case \"object\":var q=null!=f;break a;case \"function\":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):\nthis.fulfill_(f)}};h.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(v){this.reject_(v);return}\"function\"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};h.prototype.reject_=function(f){this.settle_(2,f)};h.prototype.fulfill_=function(f){this.settle_(1,f)};h.prototype.settle_=function(f,q){if(0!=this.state_)throw Error(\"Cannot settle(\"+f+\", \"+q+\"): Promise already settled in state\"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();\nthis.executeOnSettledCallbacks_()};h.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;\"undefined\"!==typeof q&&q.error(f.result_)}},1)};h.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if(\"undefined\"===typeof v)return!0;\"function\"===typeof f?f=new f(\"unhandledrejection\",{cancelable:!0}):\n\"function\"===typeof q?f=new q(\"unhandledrejection\",{cancelable:!0}):(f=$jscomp.global.document.createEvent(\"CustomEvent\"),f.initCustomEvent(\"unhandledrejection\",!1,!0,f));f.promise=this;f.reason=this.result_;return v(f)};h.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)A.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var A=new n;h.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();\nf.callWhenSettled_(q.resolve,q.reject)};h.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(z){v.reject(z)}};h.prototype.then=function(f,q){function v(t,x){return\"function\"==typeof t?function(D){try{z(t(D))}catch(R){O(R)}}:x}var z,O,ba=new h(function(t,x){z=t;O=x});this.callWhenSettled_(v(f,z),v(q,O));return ba};h.prototype.catch=function(f){return this.then(void 0,f)};h.prototype.callWhenSettled_=function(f,q){function v(){switch(z.state_){case 1:f(z.result_);\nbreak;case 2:q(z.result_);break;default:throw Error(\"Unexpected state: \"+z.state_);}}var z=this;null==this.onSettledCallbacks_?A.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};h.resolve=l;h.reject=function(f){return new h(function(q,v){v(f)})};h.race=function(f){return new h(function(q,v){for(var z=$jscomp.makeIterator(f),O=z.next();!O.done;O=z.next())l(O.value).callWhenSettled_(q,v)})};h.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?l([]):new h(function(z,\nO){function ba(D){return function(R){t[D]=R;x--;0==x&&z(t)}}var t=[],x=0;do t.push(void 0),x++,l(v.value).callWhenSettled_(ba(t.length-1),O),v=q.next();while(!v.done)})};return h},\"es6\",\"es3\");$jscomp.owns=function(k,n){return Object.prototype.hasOwnProperty.call(k,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&\"function\"==typeof Object.assign?Object.assign:function(k,n){for(var l=1;l<arguments.length;l++){var p=arguments[l];if(p)for(var h in p)$jscomp.owns(p,h)&&(k[h]=p[h])}return k};\n$jscomp.polyfill(\"Object.assign\",function(k){return k||$jscomp.assign},\"es6\",\"es3\");$jscomp.checkStringArgs=function(k,n,l){if(null==k)throw new TypeError(\"The 'this' value for String.prototype.\"+l+\" must not be null or undefined\");if(n instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+l+\" must not be a regular expression\");return k+\"\"};\n$jscomp.polyfill(\"String.prototype.startsWith\",function(k){return k?k:function(n,l){var p=$jscomp.checkStringArgs(this,n,\"startsWith\");n+=\"\";var h=p.length,A=n.length;l=Math.max(0,Math.min(l|0,p.length));for(var f=0;f<A&&l<h;)if(p[l++]!=n[f++])return!1;return f>=A}},\"es6\",\"es3\");\n$jscomp.polyfill(\"Array.prototype.copyWithin\",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(l<p)for(;p<h;)p in this?this[l++]=this[p++]:(delete this[l++],p++);else for(h=Math.min(h,A+p-l),l+=h-p;h>p;)--h in this?this[--l]=this[h]:delete this[--l];return this}},\"es6\",\"es3\");\n$jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill(\"Int8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8ClampedArray.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\n$jscomp.polyfill(\"Uint16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float64Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\nvar DracoDecoderModule=function(){var k=\"undefined\"!==typeof document&&document.currentScript?document.currentScript.src:void 0;\"undefined\"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16<c-b&&e.buffer&&va)return va.decode(e.subarray(b,c));for(d=\"\";b<c;){var g=e[b++];if(g&128){var u=e[b++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|u);else{var X=e[b++]&63;g=224==\n(g&240)?(g&15)<<12|u<<6|X:(g&7)<<18|u<<12|X<<6|e[b++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):\"\"}function A(){var e=ja.buffer;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e);\ne=\"Aborted(\"+e+\")\";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+\". Build with -sASSERTIONS for more info.\");ka(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw\"both async and sync fetching of the wasm failed\";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if(\"function\"==typeof fetch&&!P.startsWith(\"file://\"))return fetch(P,{credentials:\"same-origin\"}).then(function(e){if(!e.ok)throw\"failed to load wasm binary file at '\"+P+\"'\";return e.arrayBuffer()}).catch(function(){return q(P)});\nif(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0<e.length;)e.shift()(a)}function O(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+\n12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+\n16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(){function e(){if(!la&&(la=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0<aa)){if(a.preRun)for(\"function\"==\ntypeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Ca.unshift(a.preRun.shift());z(Ca);0<aa||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){a.setStatus(\"\")},1);e()},1)):e())}}function t(){}function x(e){return(e||t).__cache__}function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||t).prototype);d.ptr=e;return c[e]=d}function R(e){if(\"string\"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=\nd?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var u=e.charCodeAt(g);if(55296<=u&&57343>=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if(\"object\"===typeof e){var b=\nr.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw\"cannot construct a VoidPtr, no constructor in IDL\";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr=\nLa();x(T)[this.ptr]=this}function B(){throw\"cannot construct a Status, no constructor in IDL\";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]=\nthis}n=void 0===n?{}:n;var a=\"undefined\"!=typeof n?n:{},Aa,ka;a.ready=new Promise(function(e,b){Aa=e;ka=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if(\"string\"!==typeof e)return!1;e=e.split(\".\");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var Xa=\nObject.assign({},a),xa=\"object\"==typeof window,ha=\"function\"==typeof importScripts,Ya=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,U=\"\";if(Ya){var Za=require(\"fs\"),qa=require(\"path\");U=ha?qa.dirname(U)+\"/\":__dirname+\"/\";var $a=function(e,b){e=e.startsWith(\"file://\")?new URL(e):qa.normalize(e);return Za.readFileSync(e,b?void 0:\"utf8\")};var ma=function(e){e=$a(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,b,c){e=e.startsWith(\"file://\")?\nnew URL(e):qa.normalize(e);Za.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\/g,\"/\");process.argv.slice(2);a.inspect=function(){return\"[Emscripten Module object]\"}}else if(xa||ha)ha?U=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(U=document.currentScript.src),k&&(U=k),U=0!==U.indexOf(\"blob:\")?U.substr(0,U.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",$a=function(e){var b=new XMLHttpRequest;b.open(\"GET\",e,!1);b.send(null);\nreturn b.responseText},ha&&(ma=function(e){var b=new XMLHttpRequest;b.open(\"GET\",e,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open(\"GET\",e,!0);d.responseType=\"arraybuffer\";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var ud=a.print||console.log.bind(console),da=a.printErr||console.warn.bind(console);Object.assign(a,Xa);Xa=null;var fa;a.wasmBinary&&(fa=a.wasmBinary);\n\"object\"!=typeof WebAssembly&&f(\"no native wasm support detected\");var ja,wa=!1,va=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0,Y,ea,ca,V,Ca=[],oa=[],Ba=[],za=!1,aa=0,ra=null,ia=null;var P=\"draco_decoder.wasm\";P.startsWith(\"data:application/octet-stream;base64,\")||(P=l(P));var vd=0,wd=[null,[],[]],xd={b:function(e,b,c){(new O(e)).init(b,c);vd++;throw e;},a:function(){f(\"\")},g:function(e,b,c){ea.copyWithin(e,b,b+c)},e:function(e){var b=ea.length;e>>>=0;if(2147483648<e)return!1;for(var c=\n1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);A();var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},f:function(e){return 52},d:function(e,b,c,d,g){return 70},c:function(e,b,c,d){for(var g=0,u=0;u<c;u++){var X=V[b>>2],ab=V[b+4>>2];b+=8;for(var sa=0;sa<ab;sa++){var ta=ea[X+sa],ua=wd[e];0===ta||10===ta?((1===e?ud:da)(p(ua,0)),ua.length=0):ua.push(ta)}g+=\nab}V[d>>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;ja=a.asm.h;A();oa.unshift(a.asm.i);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==ra&&(clearInterval(ra),ra=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da(\"failed to asynchronously prepare wasm: \"+u);f(u)})}var d={a:xd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa);\nif(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da(\"Module.instantiateWasm callback failed with error: \"+g),ka(g)}(function(){return fa||\"function\"!=typeof WebAssembly.instantiateStreaming||P.startsWith(\"data:application/octet-stream;base64,\")||P.startsWith(\"file://\")||Ya||\"function\"!=typeof fetch?c(b):fetch(P,{credentials:\"same-origin\"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da(\"wasm streaming compile failed: \"+u);da(\"falling back to ArrayBuffer instantiation\");\nreturn c(b)})})})().catch(ka);return{}})();var bb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(bb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.k).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.l).apply(null,arguments)},cb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(cb=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.m).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer___destroy___0=\nfunction(){return(db=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.n).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.o).apply(null,arguments)},eb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(eb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.p).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData___destroy___0=\nfunction(){return(fb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.q).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.r).apply(null,arguments)},gb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(gb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.s).apply(null,arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga=\na._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.t).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_size_0=function(){return(hb=a._emscripten_bind_PointAttribute_size_0=a.asm.u).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.v).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(jb=a._emscripten_bind_PointAttribute_attribute_type_0=\na.asm.w).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(kb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.x).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(lb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.y).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(mb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.z).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_byte_stride_0=\nfunction(){return(nb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.A).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.B).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(pb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.C).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(qb=a._emscripten_bind_PointAttribute___destroy___0=\na.asm.D).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.E).apply(null,arguments)},rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.F).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=\nfunction(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.G).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.H).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.I).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=\nfunction(){return(vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.J).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.K).apply(null,arguments)},wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.L).apply(null,\narguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.M).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.N).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.O).apply(null,\narguments)},zb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(zb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.P).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_points_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_points_0=a.asm.Q).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloud___destroy___0=a.asm.R).apply(null,arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka=\na._emscripten_bind_Mesh_Mesh_0=a.asm.S).apply(null,arguments)},Cb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Cb=a._emscripten_bind_Mesh_num_faces_0=a.asm.T).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Db=a._emscripten_bind_Mesh_num_attributes_0=a.asm.U).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_points_0=function(){return(Eb=a._emscripten_bind_Mesh_num_points_0=a.asm.V).apply(null,arguments)},Fb=a._emscripten_bind_Mesh___destroy___0=function(){return(Fb=\na._emscripten_bind_Mesh___destroy___0=a.asm.W).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.X).apply(null,arguments)},Gb=a._emscripten_bind_Metadata___destroy___0=function(){return(Gb=a._emscripten_bind_Metadata___destroy___0=a.asm.Y).apply(null,arguments)},Hb=a._emscripten_bind_Status_code_0=function(){return(Hb=a._emscripten_bind_Status_code_0=a.asm.Z).apply(null,arguments)},Ib=a._emscripten_bind_Status_ok_0=function(){return(Ib=\na._emscripten_bind_Status_ok_0=a.asm._).apply(null,arguments)},Jb=a._emscripten_bind_Status_error_msg_0=function(){return(Jb=a._emscripten_bind_Status_error_msg_0=a.asm.$).apply(null,arguments)},Kb=a._emscripten_bind_Status___destroy___0=function(){return(Kb=a._emscripten_bind_Status___destroy___0=a.asm.aa).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ba).apply(null,arguments)},\nLb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.ca).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.da).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ea).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=\nfunction(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.fa).apply(null,arguments)},Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ga).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ha).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoInt8Array___destroy___0=\na.asm.ia).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ja).apply(null,arguments)},Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ka).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.la).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=\nfunction(){return(Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ma).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.na).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.oa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt16Array_size_0=\na.asm.pa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.qa).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.ra).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.sa).apply(null,arguments)},\nYb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ta).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ua).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.va).apply(null,arguments)},$b=a._emscripten_bind_DracoInt32Array_GetValue_1=\nfunction(){return($b=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.wa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt32Array_size_0=a.asm.xa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.ya).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=\na.asm.za).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Aa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ba).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(ec=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Ca).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=\nfunction(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Da).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ea).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Fa).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=\na.asm.Ga).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ha).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ia).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ja).apply(null,arguments)},\nlc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ka).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(mc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.La).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ma).apply(null,arguments)},nc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(nc=\na._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Na).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Oa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Pa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=\na.asm.Qa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Ra).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Sa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ta).apply(null,arguments)},\nuc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(uc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ua).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Va).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Wa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=\nfunction(){return(xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Xa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Ya).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Za).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ac=\na._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm._a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.$a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.ab).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Dc=\na._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.bb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.db).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=\nfunction(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.fb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=\nfunction(){return(Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.hb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.ib).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.jb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=\nfunction(){return(Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.kb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.lb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder___destroy___0=function(){return(Oc=a._emscripten_bind_Decoder___destroy___0=a.asm.mb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=\na.asm.nb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.ob).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.pb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=\nfunction(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.qb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.rb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.sb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=\nfunction(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.tb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.ub).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.vb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=\nfunction(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.wb).apply(null,arguments)},Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.xb).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.yb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=\nfunction(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.zb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Ab).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Bb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_UINT8=\na.asm.Cb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Db).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Eb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Fb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT32=\nfunction(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Gb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Hb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Ib).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Jb).apply(null,\narguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Kb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(md=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Lb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Mb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_OK=function(){return(od=\na._emscripten_enum_draco_StatusCode_OK=a.asm.Nb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Ob).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Pb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=\na.asm.Qb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Rb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Sb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Tb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Ub).apply(null,arguments)};\nvar ya=function(){return(ya=a.asm.Vb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var la;ia=function b(){la||ba();la||(ia=b)};if(a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();ba();t.prototype=Object.create(t.prototype);t.prototype.constructor=t;t.prototype.__class__=t;t.__cache__={};a.WrapperObject=t;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw\"Error: Cannot destroy object. (Did you create it yourself?)\";\nb.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||f(void 0));r.pos=0},alloc:function(b,c){r.buffer||f(void 0);b=\nb.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||f(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};Z.prototype=Object.create(t.prototype);Z.prototype.constructor=Z;Z.prototype.__class__=Z;Z.__cache__={};a.VoidPtr=Z;Z.prototype.__destroy__=Z.prototype.__destroy__=function(){bb(this.ptr)};S.prototype=\nObject.create(t.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();\"object\"==typeof b&&(b=pa(b));c&&\"object\"===typeof c&&(c=c.ptr);cb(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){db(this.ptr)};Q.prototype=Object.create(t.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=\nfunction(){return eb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){fb(this.ptr)};W.prototype=Object.create(t.prototype);W.prototype.constructor=W;W.prototype.__class__=W;W.__cache__={};a.GeometryAttribute=W;W.prototype.__destroy__=W.prototype.__destroy__=function(){gb(this.ptr)};w.prototype=Object.create(t.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return hb(this.ptr)};w.prototype.GetAttributeTransformData=\nw.prototype.GetAttributeTransformData=function(){return D(ib(this.ptr),Q)};w.prototype.attribute_type=w.prototype.attribute_type=function(){return jb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return kb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return lb(this.ptr)};w.prototype.normalized=w.prototype.normalized=function(){return!!mb(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return nb(this.ptr)};w.prototype.byte_offset=\nw.prototype.byte_offset=function(){return ob(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=function(){return pb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){qb(this.ptr)};C.prototype=Object.create(t.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!rb(c,b)};C.prototype.quantization_bits=\nC.prototype.quantization_bits=function(){return sb(this.ptr)};C.prototype.min_value=C.prototype.min_value=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return tb(c,b)};C.prototype.range=C.prototype.range=function(){return ub(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){vb(this.ptr)};F.prototype=Object.create(t.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.AttributeOctahedronTransform=F;F.prototype.InitFromAttribute=F.prototype.InitFromAttribute=\nfunction(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!wb(c,b)};F.prototype.quantization_bits=F.prototype.quantization_bits=function(){return xb(this.ptr)};F.prototype.__destroy__=F.prototype.__destroy__=function(){yb(this.ptr)};G.prototype=Object.create(t.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return zb(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Ab(this.ptr)};\nG.prototype.__destroy__=G.prototype.__destroy__=function(){Bb(this.ptr)};E.prototype=Object.create(t.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Cb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Db(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Eb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Fb(this.ptr)};T.prototype=\nObject.create(t.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Gb(this.ptr)};B.prototype=Object.create(t.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Hb(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!Ib(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return h(Jb(this.ptr))};\nB.prototype.__destroy__=B.prototype.__destroy__=function(){Kb(this.ptr)};H.prototype=Object.create(t.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoFloat32Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Lb(c,b)};H.prototype.size=H.prototype.size=function(){return Mb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){Nb(this.ptr)};I.prototype=Object.create(t.prototype);I.prototype.constructor=\nI;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Ob(c,b)};I.prototype.size=I.prototype.size=function(){return Pb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Qb(this.ptr)};J.prototype=Object.create(t.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoUInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=\nthis.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Rb(c,b)};J.prototype.size=J.prototype.size=function(){return Sb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Tb(this.ptr)};K.prototype=Object.create(t.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoInt16Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Ub(c,b)};K.prototype.size=K.prototype.size=function(){return Vb(this.ptr)};\nK.prototype.__destroy__=K.prototype.__destroy__=function(){Wb(this.ptr)};L.prototype=Object.create(t.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoUInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Xb(c,b)};L.prototype.size=L.prototype.size=function(){return Yb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Zb(this.ptr)};M.prototype=Object.create(t.prototype);M.prototype.constructor=\nM;M.prototype.__class__=M;M.__cache__={};a.DracoInt32Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return $b(c,b)};M.prototype.size=M.prototype.size=function(){return ac(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){bc(this.ptr)};N.prototype=Object.create(t.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoUInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=\nthis.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return cc(c,b)};N.prototype.size=N.prototype.size=function(){return dc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){ec(this.ptr)};y.prototype=Object.create(t.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.MetadataQuerier=y;y.prototype.HasEntry=y.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return!!fc(d,b,c)};y.prototype.GetIntEntry=\ny.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return gc(d,b,c)};y.prototype.GetIntEntryArray=y.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);d&&\"object\"===typeof d&&(d=d.ptr);hc(g,b,c,d)};y.prototype.GetDoubleEntry=y.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=\nc&&\"object\"===typeof c?c.ptr:R(c);return ic(d,b,c)};y.prototype.GetStringEntry=y.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return h(jc(d,b,c))};y.prototype.NumEntries=y.prototype.NumEntries=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return kc(c,b)};y.prototype.GetEntryName=y.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=\nc.ptr);return h(lc(d,b,c))};y.prototype.__destroy__=y.prototype.__destroy__=function(){mc(this.ptr)};m.prototype=Object.create(t.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();\"object\"==typeof b&&(b=pa(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return D(nc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=\nfunction(b,c,d){var g=this.ptr;r.prepare();\"object\"==typeof b&&(b=pa(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return D(oc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return pc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?\nc.ptr:R(c);return qc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);d=d&&\"object\"===typeof d?d.ptr:R(d);return rc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(sc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=\nfunction(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(tc(d,b,c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return D(uc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(vc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,\nc,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!wc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return xc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);\nd&&\"object\"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=\nm.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=\nfunction(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&\n(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,u){var X=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\n\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);g&&\"object\"===typeof g&&(g=g.ptr);u&&\"object\"===typeof u&&(u=u.ptr);return!!Jc(X,b,c,d,g,u)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Kc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Lc(c,b)};m.prototype.DecodeBufferToPointCloud=\nm.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(Mc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return D(Nc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Oc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Pc();a.ATTRIBUTE_NO_TRANSFORM=Qc();\na.ATTRIBUTE_QUANTIZATION_TRANSFORM=Rc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Sc();a.INVALID=Tc();a.POSITION=Uc();a.NORMAL=Vc();a.COLOR=Wc();a.TEX_COORD=Xc();a.GENERIC=Yc();a.INVALID_GEOMETRY_TYPE=Zc();a.POINT_CLOUD=$c();a.TRIANGULAR_MESH=ad();a.DT_INVALID=bd();a.DT_INT8=cd();a.DT_UINT8=dd();a.DT_INT16=ed();a.DT_UINT16=fd();a.DT_INT32=gd();a.DT_UINT32=hd();a.DT_INT64=id();a.DT_UINT64=jd();a.DT_FLOAT32=kd();a.DT_FLOAT64=ld();a.DT_BOOL=md();a.DT_TYPES_COUNT=nd();a.OK=od();a.DRACO_ERROR=pd();a.IO_ERROR=qd();\na.INVALID_PARAMETER=rd();a.UNSUPPORTED_VERSION=sd();a.UNKNOWN_VERSION=td()}za?b():oa.unshift(b)})();if(\"function\"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();\n\"object\"===typeof exports&&\"object\"===typeof module?module.exports=DracoDecoderModule:\"function\"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):\"object\"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/draco_wasm_wrapper_gltf.js",
    "content": "var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(h){var n=0;return function(){return n<h.length?{done:!1,value:h[n++]}:{done:!0}}};$jscomp.arrayIterator=function(h){return{next:$jscomp.arrayIteratorImpl(h)}};$jscomp.makeIterator=function(h){var n=\"undefined\"!=typeof Symbol&&Symbol.iterator&&h[Symbol.iterator];return n?n.call(h):$jscomp.arrayIterator(h)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(h){h=[\"object\"==typeof globalThis&&globalThis,h,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var n=0;n<h.length;++n){var k=h[n];if(k&&k.Math==Math)return k}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(h,n,k){if(h==Array.prototype||h==Object.prototype)return h;h[n]=k.value;return h};$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";\nvar $jscomp$lookupPolyfilledValue=function(h,n){var k=$jscomp.propertyToPolyfillSymbol[n];if(null==k)return h[n];k=h[k];return void 0!==k?k:h[n]};$jscomp.polyfill=function(h,n,k,p){n&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(h,n,k,p):$jscomp.polyfillUnisolated(h,n,k,p))};\n$jscomp.polyfillUnisolated=function(h,n,k,p){k=$jscomp.global;h=h.split(\".\");for(p=0;p<h.length-1;p++){var l=h[p];if(!(l in k))return;k=k[l]}h=h[h.length-1];p=k[h];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(k,h,{configurable:!0,writable:!0,value:n})};\n$jscomp.polyfillIsolated=function(h,n,k,p){var l=h.split(\".\");h=1===l.length;p=l[0];p=!h&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var y=0;y<l.length-1;y++){var f=l[y];if(!(f in p))return;p=p[f]}l=l[l.length-1];k=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===k?p[l]:null;n=n(k);null!=n&&(h?$jscomp.defineProperty($jscomp.polyfills,l,{configurable:!0,writable:!0,value:n}):n!==k&&(void 0===$jscomp.propertyToPolyfillSymbol[l]&&(k=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE?\n$jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+\"$\"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))};\n$jscomp.polyfill(\"Promise\",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&\"undefined\"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf(\"[native code]\")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};\nvar p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var u=f[q];f[q]=null;try{u()}catch(A){this.asyncThrow_(A)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var l=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();\ntry{f(q.resolve,q.reject)}catch(u){q.reject(u)}};l.prototype.createResolveAndReject_=function(){function f(A){return function(F){u||(u=!0,A.call(q,F))}}var q=this,u=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};l.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError(\"A Promise cannot resolve to itself\"));else if(f instanceof l)this.settleSameAsPromise_(f);else{a:switch(typeof f){case \"object\":var q=null!=f;break a;case \"function\":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):\nthis.fulfill_(f)}};l.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(u){this.reject_(u);return}\"function\"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};l.prototype.reject_=function(f){this.settle_(2,f)};l.prototype.fulfill_=function(f){this.settle_(1,f)};l.prototype.settle_=function(f,q){if(0!=this.state_)throw Error(\"Cannot settle(\"+f+\", \"+q+\"): Promise already settled in state\"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();\nthis.executeOnSettledCallbacks_()};l.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;\"undefined\"!==typeof q&&q.error(f.result_)}},1)};l.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,u=$jscomp.global.dispatchEvent;if(\"undefined\"===typeof u)return!0;\"function\"===typeof f?f=new f(\"unhandledrejection\",{cancelable:!0}):\n\"function\"===typeof q?f=new q(\"unhandledrejection\",{cancelable:!0}):(f=$jscomp.global.document.createEvent(\"CustomEvent\"),f.initCustomEvent(\"unhandledrejection\",!1,!0,f));f.promise=this;f.reason=this.result_;return u(f)};l.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)y.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var y=new n;l.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();\nf.callWhenSettled_(q.resolve,q.reject)};l.prototype.settleSameAsThenable_=function(f,q){var u=this.createResolveAndReject_();try{f.call(q,u.resolve,u.reject)}catch(A){u.reject(A)}};l.prototype.then=function(f,q){function u(w,B){return\"function\"==typeof w?function(R){try{A(w(R))}catch(Z){F(Z)}}:B}var A,F,v=new l(function(w,B){A=w;F=B});this.callWhenSettled_(u(f,A),u(q,F));return v};l.prototype.catch=function(f){return this.then(void 0,f)};l.prototype.callWhenSettled_=function(f,q){function u(){switch(A.state_){case 1:f(A.result_);\nbreak;case 2:q(A.result_);break;default:throw Error(\"Unexpected state: \"+A.state_);}}var A=this;null==this.onSettledCallbacks_?y.asyncExecute(u):this.onSettledCallbacks_.push(u);this.isRejectionHandled_=!0};l.resolve=k;l.reject=function(f){return new l(function(q,u){u(f)})};l.race=function(f){return new l(function(q,u){for(var A=$jscomp.makeIterator(f),F=A.next();!F.done;F=A.next())k(F.value).callWhenSettled_(q,u)})};l.all=function(f){var q=$jscomp.makeIterator(f),u=q.next();return u.done?k([]):new l(function(A,\nF){function v(R){return function(Z){w[R]=Z;B--;0==B&&A(w)}}var w=[],B=0;do w.push(void 0),B++,k(u.value).callWhenSettled_(v(w.length-1),F),u=q.next();while(!u.done)})};return l},\"es6\",\"es3\");$jscomp.owns=function(h,n){return Object.prototype.hasOwnProperty.call(h,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&\"function\"==typeof Object.assign?Object.assign:function(h,n){for(var k=1;k<arguments.length;k++){var p=arguments[k];if(p)for(var l in p)$jscomp.owns(p,l)&&(h[l]=p[l])}return h};\n$jscomp.polyfill(\"Object.assign\",function(h){return h||$jscomp.assign},\"es6\",\"es3\");$jscomp.checkStringArgs=function(h,n,k){if(null==h)throw new TypeError(\"The 'this' value for String.prototype.\"+k+\" must not be null or undefined\");if(n instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+k+\" must not be a regular expression\");return h+\"\"};\n$jscomp.polyfill(\"String.prototype.startsWith\",function(h){return h?h:function(n,k){var p=$jscomp.checkStringArgs(this,n,\"startsWith\");n+=\"\";var l=p.length,y=n.length;k=Math.max(0,Math.min(k|0,p.length));for(var f=0;f<y&&k<l;)if(p[k++]!=n[f++])return!1;return f>=y}},\"es6\",\"es3\");\n$jscomp.polyfill(\"Array.prototype.copyWithin\",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(k<p)for(;p<l;)p in this?this[k++]=this[p++]:(delete this[k++],p++);else for(l=Math.min(l,y+p-k),k+=l-p;l>p;)--l in this?this[--k]=this[l]:delete this[--k];return this}},\"es6\",\"es3\");\n$jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill(\"Int8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8ClampedArray.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\n$jscomp.polyfill(\"Uint16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float64Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\nvar DracoDecoderModule=function(){var h=\"undefined\"!==typeof document&&document.currentScript?document.currentScript.src:void 0;\"undefined\"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16<b-e&&c.buffer&&ra)c=ra.decode(c.subarray(e,b));else{for(d=\"\";e<b;){var g=c[e++];if(g&128){var t=c[e++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|t);else{var aa=c[e++]&\n63;g=224==(g&240)?(g&15)<<12|t<<6|aa:(g&7)<<18|t<<12|aa<<6|c[e++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c=\"\";return c}function l(){var e=ja.buffer;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e);\ne=\"Aborted(\"+e+\")\";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+\". Build with -sASSERTIONS for more info.\");ka(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw\"both async and sync fetching of the wasm failed\";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if(\"function\"==typeof fetch&&!P.startsWith(\"file://\"))return fetch(P,{credentials:\"same-origin\"}).then(function(e){if(!e.ok)throw\"failed to load wasm binary file at '\"+P+\"'\";return e.arrayBuffer()}).catch(function(){return f(P)});\nif(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0<e.length;)e.shift()(a)}function A(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+\n12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+\n16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(){function e(){if(!la&&(la=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0<ba)){if(a.preRun)for(\"function\"==\ntypeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ya.unshift(a.preRun.shift());u(ya);0<ba||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){a.setStatus(\"\")},1);e()},1)):e())}}function v(){}function w(e){return(e||v).__cache__}function B(e,b){var c=w(b),d=c[e];if(d)return d;d=Object.create((b||v).prototype);d.ptr=e;return c[e]=d}function R(e){if(\"string\"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=\nd?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var t=e.charCodeAt(g);if(55296<=t&&57343>=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if(\"object\"===\ntypeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw\"cannot construct a VoidPtr, no constructor in IDL\";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]=\nthis}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw\"cannot construct a Status, no constructor in IDL\";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr=\nQa();w(m)[this.ptr]=this}n=void 0===n?{}:n;var a=\"undefined\"!=typeof n?n:{},wa,ka;a.ready=new Promise(function(e,b){wa=e;ka=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if(\"string\"!==typeof e)return!1;e=e.split(\".\");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<\ne[1]?!1:!0};var Ta=Object.assign({},a),ta=\"object\"==typeof window,fa=\"function\"==typeof importScripts,Ua=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,U=\"\";if(Ua){var Va=require(\"fs\"),pa=require(\"path\");U=fa?pa.dirname(U)+\"/\":__dirname+\"/\";var Wa=function(e,b){e=e.startsWith(\"file://\")?new URL(e):pa.normalize(e);return Va.readFileSync(e,b?void 0:\"utf8\")};var ma=function(e){e=Wa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,\nb,c){e=e.startsWith(\"file://\")?new URL(e):pa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\/g,\"/\");process.argv.slice(2);a.inspect=function(){return\"[Emscripten Module object]\"}}else if(ta||fa)fa?U=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(U=document.currentScript.src),h&&(U=h),U=0!==U.indexOf(\"blob:\")?U.substr(0,U.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",Wa=function(e){var b=new XMLHttpRequest;b.open(\"GET\",\ne,!1);b.send(null);return b.responseText},fa&&(ma=function(e){var b=new XMLHttpRequest;b.open(\"GET\",e,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open(\"GET\",e,!0);d.responseType=\"arraybuffer\";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var da=a.printErr||console.warn.bind(console);Object.assign(a,Ta);Ta=null;var ea;a.wasmBinary&&\n(ea=a.wasmBinary);\"object\"!=typeof WebAssembly&&y(\"no native wasm support detected\");var ja,sa=!1,ra=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0,W,ia,ca,Y,ya=[],oa=[],xa=[],va=!1,ba=0,qa=null,ha=null;var P=\"draco_decoder_gltf.wasm\";P.startsWith(\"data:application/octet-stream;base64,\")||(P=k(P));var pd=0,qd={b:function(e,b,c){(new A(e)).init(b,c);pd++;throw e;},a:function(){y(\"\")},d:function(e,b,c){ia.copyWithin(e,b,b+c)},c:function(e){var b=ia.length;e>>>=0;if(2147483648<e)return!1;\nfor(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);l();var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;ja=a.asm.e;l();oa.unshift(a.asm.f);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==qa&&(clearInterval(qa),qa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}\nfunction c(g){return q().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da(\"failed to asynchronously prepare wasm: \"+t);y(t)})}var d={a:qd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da(\"Module.instantiateWasm callback failed with error: \"+g),ka(g)}(function(){return ea||\"function\"!=typeof WebAssembly.instantiateStreaming||P.startsWith(\"data:application/octet-stream;base64,\")||\nP.startsWith(\"file://\")||Ua||\"function\"!=typeof fetch?c(b):fetch(P,{credentials:\"same-origin\"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da(\"wasm streaming compile failed: \"+t);da(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ka);return{}})();var Xa=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Xa=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=\nfunction(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.i).apply(null,arguments)},Ya=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(Ya=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.j).apply(null,arguments)},Za=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Za=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.k).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=\na.asm.l).apply(null,arguments)},$a=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return($a=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.m).apply(null,arguments)},ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(ab=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.n).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=\na.asm.o).apply(null,arguments)},bb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(bb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.p).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.q).apply(null,arguments)},cb=a._emscripten_bind_PointAttribute_size_0=function(){return(cb=a._emscripten_bind_PointAttribute_size_0=a.asm.r).apply(null,arguments)},db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=\nfunction(){return(db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.s).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(eb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.t).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(fb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.u).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(gb=a._emscripten_bind_PointAttribute_num_components_0=\na.asm.v).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(hb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.w).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ib=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.x).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(jb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.y).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_unique_id_0=\nfunction(){return(kb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.z).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(lb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.A).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.B).apply(null,arguments)},mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=\nfunction(){return(mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.C).apply(null,arguments)},nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.D).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.E).apply(null,arguments)},pb=\na._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.F).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=\na.asm.H).apply(null,arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.I).apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.J).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(tb=\na._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.L).apply(null,arguments)},ub=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(ub=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.M).apply(null,arguments)},vb=a._emscripten_bind_PointCloud_num_points_0=function(){return(vb=a._emscripten_bind_PointCloud_num_points_0=a.asm.N).apply(null,\narguments)},wb=a._emscripten_bind_PointCloud___destroy___0=function(){return(wb=a._emscripten_bind_PointCloud___destroy___0=a.asm.O).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.P).apply(null,arguments)},xb=a._emscripten_bind_Mesh_num_faces_0=function(){return(xb=a._emscripten_bind_Mesh_num_faces_0=a.asm.Q).apply(null,arguments)},yb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(yb=a._emscripten_bind_Mesh_num_attributes_0=\na.asm.R).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_points_0=function(){return(zb=a._emscripten_bind_Mesh_num_points_0=a.asm.S).apply(null,arguments)},Ab=a._emscripten_bind_Mesh___destroy___0=function(){return(Ab=a._emscripten_bind_Mesh___destroy___0=a.asm.T).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.U).apply(null,arguments)},Bb=a._emscripten_bind_Metadata___destroy___0=function(){return(Bb=a._emscripten_bind_Metadata___destroy___0=\na.asm.V).apply(null,arguments)},Cb=a._emscripten_bind_Status_code_0=function(){return(Cb=a._emscripten_bind_Status_code_0=a.asm.W).apply(null,arguments)},Db=a._emscripten_bind_Status_ok_0=function(){return(Db=a._emscripten_bind_Status_ok_0=a.asm.X).apply(null,arguments)},Eb=a._emscripten_bind_Status_error_msg_0=function(){return(Eb=a._emscripten_bind_Status_error_msg_0=a.asm.Y).apply(null,arguments)},Fb=a._emscripten_bind_Status___destroy___0=function(){return(Fb=a._emscripten_bind_Status___destroy___0=\na.asm.Z).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm._).apply(null,arguments)},Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.$).apply(null,arguments)},Hb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Hb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.aa).apply(null,arguments)},Ib=\na._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ib=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ba).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ca).apply(null,arguments)},Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.da).apply(null,arguments)},Kb=a._emscripten_bind_DracoInt8Array_size_0=\nfunction(){return(Kb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ea).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Lb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.fa).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ga).apply(null,arguments)},Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=\na.asm.ha).apply(null,arguments)},Nb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Nb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ia).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.ka).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=\nfunction(){return(Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.la).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.ma).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.na).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=\na.asm.oa).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.qa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=\nfunction(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.sa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ta).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ua).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt32Array___destroy___0=\na.asm.va).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.wa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.ya).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array___destroy___0=\nfunction(){return($b=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Aa).apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ba).apply(null,arguments)},bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=\na.asm.Ca).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Da).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ea).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Fa).apply(null,\narguments)},fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ga).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ha).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(hc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ia).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0=\nfunction(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.La).apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(kc=a._emscripten_bind_Decoder_GetAttributeId_2=\na.asm.Ma).apply(null,arguments)},lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Na).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Pa).apply(null,arguments)},\noc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(pc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=\nfunction(){return(rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ua).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Va).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(uc=\na._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Wa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Xa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Ya).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=\na.asm.Za).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm._a).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=\na.asm.ab).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.cb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=\na.asm.db).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.eb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.fb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=\na.asm.gb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.hb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.ib).apply(null,arguments)},Jc=a._emscripten_bind_Decoder___destroy___0=function(){return(Jc=a._emscripten_bind_Decoder___destroy___0=a.asm.jb).apply(null,arguments)},Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=\nfunction(){return(Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.kb).apply(null,arguments)},Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.lb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=\na.asm.mb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.nb).apply(null,arguments)},Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.ob).apply(null,arguments)},Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=\na.asm.pb).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.qb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.rb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=\na.asm.sb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.tb).apply(null,arguments)},Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.ub).apply(null,arguments)},Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=\na.asm.vb).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.wb).apply(null,arguments)},Xc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Xc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.xb).apply(null,arguments)},Yc=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(Yc=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.yb).apply(null,arguments)},Zc=\na._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.zb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT16=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Ab).apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Bb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT32=\na.asm.Cb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Db).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Eb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Fb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=\nfunction(){return(fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Gb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Hb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(hd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Ib).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=\na.asm.Jb).apply(null,arguments)},jd=a._emscripten_enum_draco_StatusCode_OK=function(){return(jd=a._emscripten_enum_draco_StatusCode_OK=a.asm.Kb).apply(null,arguments)},kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Lb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Mb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=\nfunction(){return(md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Nb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Ob).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Pb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Qb).apply(null,arguments)};\na._free=function(){return(a._free=a.asm.Rb).apply(null,arguments)};var ua=function(){return(ua=a.asm.Sb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var la;ha=function b(){la||F();la||(ha=b)};if(a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();F();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=v;a.getCache=w;a.wrapPointer=B;a.castObject=function(b,\nc){return B(b.ptr,c)};a.NULL=B(0);a.destroy=function(b){if(!b.__destroy__)throw\"Error: Cannot destroy object. (Did you create it yourself?)\";b.__destroy__();delete w(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=\nr.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||y(void 0));r.pos=0},alloc:function(b,c){r.buffer||y(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||y(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};X.prototype=Object.create(v.prototype);X.prototype.constructor=\nX;X.prototype.__class__=X;X.__cache__={};a.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){Xa(this.ptr)};S.prototype=Object.create(v.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);Ya(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){Za(this.ptr)};Q.prototype=Object.create(v.prototype);\nQ.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=function(){return $a(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){ab(this.ptr)};V.prototype=Object.create(v.prototype);V.prototype.constructor=V;V.prototype.__class__=V;V.__cache__={};a.GeometryAttribute=V;V.prototype.__destroy__=V.prototype.__destroy__=function(){bb(this.ptr)};x.prototype=Object.create(v.prototype);x.prototype.constructor=\nx;x.prototype.__class__=x;x.__cache__={};a.PointAttribute=x;x.prototype.size=x.prototype.size=function(){return cb(this.ptr)};x.prototype.GetAttributeTransformData=x.prototype.GetAttributeTransformData=function(){return B(db(this.ptr),Q)};x.prototype.attribute_type=x.prototype.attribute_type=function(){return eb(this.ptr)};x.prototype.data_type=x.prototype.data_type=function(){return fb(this.ptr)};x.prototype.num_components=x.prototype.num_components=function(){return gb(this.ptr)};x.prototype.normalized=\nx.prototype.normalized=function(){return!!hb(this.ptr)};x.prototype.byte_stride=x.prototype.byte_stride=function(){return ib(this.ptr)};x.prototype.byte_offset=x.prototype.byte_offset=function(){return jb(this.ptr)};x.prototype.unique_id=x.prototype.unique_id=function(){return kb(this.ptr)};x.prototype.__destroy__=x.prototype.__destroy__=function(){lb(this.ptr)};D.prototype=Object.create(v.prototype);D.prototype.constructor=D;D.prototype.__class__=D;D.__cache__={};a.AttributeQuantizationTransform=\nD;D.prototype.InitFromAttribute=D.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!mb(c,b)};D.prototype.quantization_bits=D.prototype.quantization_bits=function(){return nb(this.ptr)};D.prototype.min_value=D.prototype.min_value=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return ob(c,b)};D.prototype.range=D.prototype.range=function(){return pb(this.ptr)};D.prototype.__destroy__=D.prototype.__destroy__=function(){qb(this.ptr)};G.prototype=\nObject.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.AttributeOctahedronTransform=G;G.prototype.InitFromAttribute=G.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!rb(c,b)};G.prototype.quantization_bits=G.prototype.quantization_bits=function(){return sb(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){tb(this.ptr)};H.prototype=Object.create(v.prototype);H.prototype.constructor=H;H.prototype.__class__=\nH;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return ub(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return vb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){wb(this.ptr)};E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return xb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=\nfunction(){return yb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return zb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Ab(this.ptr)};T.prototype=Object.create(v.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Bb(this.ptr)};C.prototype=Object.create(v.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.Status=C;C.prototype.code=\nC.prototype.code=function(){return Cb(this.ptr)};C.prototype.ok=C.prototype.ok=function(){return!!Db(this.ptr)};C.prototype.error_msg=C.prototype.error_msg=function(){return p(Eb(this.ptr))};C.prototype.__destroy__=C.prototype.__destroy__=function(){Fb(this.ptr)};I.prototype=Object.create(v.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoFloat32Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Gb(c,\nb)};I.prototype.size=I.prototype.size=function(){return Hb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Ib(this.ptr)};J.prototype=Object.create(v.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Jb(c,b)};J.prototype.size=J.prototype.size=function(){return Kb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Lb(this.ptr)};\nK.prototype=Object.create(v.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoUInt8Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Mb(c,b)};K.prototype.size=K.prototype.size=function(){return Nb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Ob(this.ptr)};L.prototype=Object.create(v.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoInt16Array=\nL;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Pb(c,b)};L.prototype.size=L.prototype.size=function(){return Qb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Rb(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoUInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Sb(c,b)};\nM.prototype.size=M.prototype.size=function(){return Tb(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){Ub(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Vb(c,b)};N.prototype.size=N.prototype.size=function(){return Wb(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){Xb(this.ptr)};\nO.prototype=Object.create(v.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoUInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Yb(c,b)};O.prototype.size=O.prototype.size=function(){return Zb(this.ptr)};O.prototype.__destroy__=O.prototype.__destroy__=function(){$b(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.MetadataQuerier=\nz;z.prototype.HasEntry=z.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return!!ac(d,b,c)};z.prototype.GetIntEntry=z.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return bc(d,b,c)};z.prototype.GetIntEntryArray=z.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===\ntypeof c?c.ptr:R(c);d&&\"object\"===typeof d&&(d=d.ptr);cc(g,b,c,d)};z.prototype.GetDoubleEntry=z.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return dc(d,b,c)};z.prototype.GetStringEntry=z.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return p(ec(d,b,c))};z.prototype.NumEntries=z.prototype.NumEntries=function(b){var c=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);return fc(c,b)};z.prototype.GetEntryName=z.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return p(gc(d,b,c))};z.prototype.__destroy__=z.prototype.__destroy__=function(){hc(this.ptr)};m.prototype=Object.create(v.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=\nthis.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return B(ic(g,b,c,d),C)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return B(jc(g,b,c,d),C)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&\n(c=c.ptr);return kc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return lc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);d=d&&\"object\"===typeof d?d.ptr:R(d);return mc(g,b,c,d)};m.prototype.GetAttribute=\nm.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(nc(d,b,c),x)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(oc(d,b,c),x)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return B(pc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=\nfunction(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(qc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!rc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);\nreturn sc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!tc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!uc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=\nfunction(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!vc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!wc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!xc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=\nb.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&\n(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===\ntypeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,t){var aa=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);g&&\"object\"===typeof g&&(g=g.ptr);t&&\"object\"===typeof t&&(t=t.ptr);return!!Ec(aa,b,c,d,g,t)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Fc(c,\nb)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Gc(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(Hc(d,b,c),C)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===\ntypeof c&&(c=c.ptr);return B(Ic(d,b,c),C)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Jc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Kc();a.ATTRIBUTE_NO_TRANSFORM=Lc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Mc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Nc();a.INVALID=Oc();a.POSITION=Pc();a.NORMAL=Qc();a.COLOR=Rc();a.TEX_COORD=Sc();a.GENERIC=Tc();a.INVALID_GEOMETRY_TYPE=Uc();a.POINT_CLOUD=Vc();a.TRIANGULAR_MESH=Wc();a.DT_INVALID=Xc();a.DT_INT8=Yc();a.DT_UINT8=Zc();a.DT_INT16=\n$c();a.DT_UINT16=ad();a.DT_INT32=bd();a.DT_UINT32=cd();a.DT_INT64=dd();a.DT_UINT64=ed();a.DT_FLOAT32=fd();a.DT_FLOAT64=gd();a.DT_BOOL=hd();a.DT_TYPES_COUNT=id();a.OK=jd();a.DRACO_ERROR=kd();a.IO_ERROR=ld();a.INVALID_PARAMETER=md();a.UNSUPPORTED_VERSION=nd();a.UNKNOWN_VERSION=od()}va?b():oa.unshift(b)})();if(\"function\"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);\nif(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();\"object\"===typeof exports&&\"object\"===typeof module?module.exports=DracoDecoderModule:\"function\"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):\"object\"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/gltf/draco_decoder.js",
    "content": "\nvar DracoDecoderModule = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DracoDecoderModule = {})  {\n\nvar Module=typeof DracoDecoderModule!=\"undefined\"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module[\"onRuntimeInitialized\"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};Module[\"onModuleParsed\"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!==\"string\")return false;const version=versionString.split(\".\");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module[\"isVersionSupported\"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts[\"initial\"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(\n// EMSCRIPTEN_START_ASM\nfunction instantiate(ia){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]==\"=\")-(o[j-1]==\"=\");for(;a<j;a+=4){g=f[o.charCodeAt(a+1)];h=f[o.charCodeAt(a+2)];m[i++]=f[o.charCodeAt(a)]<<2|g>>4;if(i<k)m[i++]=g<<4|h>>2;if(i<k)m[i++]=h<<6|f[o.charCodeAt(a+3)]}}function p(q){l(e,1028,\"YAQAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAE41ZHJhY28yOEF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1FAADYKwAAOAQAAOAGAABfX25leHRfcHJpbWUgb3ZlcmZsb3cAdmVjdG9yAHN0ZDo6ZXhjZXB0aW9uAHNraXBfYXR0cmlidXRlX3RyYW5zZm9ybQBiYWRfYXJyYXlfbmV3X2xlbmd0aABiYXNpY19zdHJpbmcAc3RkOjpiYWRfYWxsb2MARFJBQ08AVXNpbmcgaW5jb21wYXRpYmxlIGRlY29kZXIgZm9yIHRoZSBpbnB1dCBnZW9tZXRyeS4ARmFpbGVkIHRvIGRlY29kZSBwb2ludCBhdHRyaWJ1dGVzLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZGVjb2Rlci4AVW5zdXBwb3J0ZWQgbWlub3IgdmVyc2lvbi4AVW5zdXBwb3J0ZWQgbWFqb3IgdmVyc2lvbi4ASW5wdXQgaXMgbm90IGEgbWVzaC4AVW5zdXBwb3J0ZWQgZ2VvbWV0cnkgdHlwZS4ATm90IGEgRHJhY28gZmlsZS4AVW5zdXBwb3J0ZWQgZW5jb2RpbmcgbWV0aG9kLgBGYWlsZWQgdG8gZGVjb2RlIG1ldGFkYXRhLgBGYWlsZWQgdG8gZGVjb2RlIGdlb21ldHJ5IGRhdGEuAFB1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxsZWQhAAAAAAAAALQGAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAALAAAAGAAAABkAAABONWRyYWNvMzBBdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1FAAAAANgrAACIBgAA4AYAAE41ZHJhY28xOEF0dHJpYnV0ZVRyYW5zZm9ybUUAAAAAsCsAAMAGAAAAAAAAbAcAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAAE41ZHJhY28xN0F0dHJpYnV0ZXNEZWNvZGVyRQBONWRyYWNvMjZBdHRyaWJ1dGVzRGVjb2RlckludGVyZmFjZUUAAAAAsCsAADwHAADYKwAAIAcAAGQHAAAAAAAAzAcAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAE41ZHJhY28yNlNlcXVlbnRpYWxBdHRyaWJ1dGVEZWNvZGVyRQAAAACwKwAApAcAAP////8AAAAARAgAAC8AAAAwAAAAHAAAADEAAAAyAAAAHwAAACAAAAAhAAAAMwAAADQAAAA1AAAANgAAADcAAABONWRyYWNvMzdTZXF1ZW50aWFsQXR0cmlidXRlRGVjb2RlcnNDb250cm9sbGVyRQDYKwAAFAgAAGwHAAAAAAAAuAgAADgAAAA5AAAAOgAAACkAAAAqAAAAKwAAADsAAAAtAAAAPAAAAD0AAAA+AAAAPwAAAEAAAABONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZURlY29kZXJFANgrAACMCAAAzAcAAAAAAABECwAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRUVFAE41ZHJhY28zN1ByZWRpY3Rpb25TY2hlbWVUeXBlZERlY29kZXJJbnRlcmZhY2VJaWlFRQBONWRyYWNvMzJQcmVkaWN0aW9uU2NoZW1lRGVjb2RlckludGVyZmFjZUUATjVkcmFjbzI1UHJlZGljdGlvblNjaGVtZUludGVyZmFjZUUAsCsAAOgKAADYKwAAvQoAAAwLAADYKwAAiQoAABQLAADYKwAANQoAACALAADYKwAAnwkAACwLAADYKwAA/AgAADgLAAAAAAAAOAsAAEEAAABNAAAAIwAAAEQAAAAjAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAIwAAAAAAAAAsCwAAQQAAAE4AAAAjAAAARAAAACMAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAAAjAAAAAAAAAKwMAABPAAAAUAAAAFEAAABEAAAAUgAAAEYAAABHAAAASAAAAEkAAABKAAAAUwAAAFQAAABONWRyYWNvNTZNZXNoUHJlZGljdGlvblNjaGVtZUNvbnN0cmFpbmVkTXVsdGlQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAADYKwAA+AsAADgLAAAAAAAAmA0AAFUAAABWAAAAVwAAAEQAAABYAAAAWQAAAFoAAABbAAAASQAAAEoAAABcAAAAXQAAAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAANgrAADwDAAAOAsAAAAAAACEDgAAXgAAAF8AAABgAAAARAAAAGEAAABiAAAAYwAAAGQAAABJAAAASgAAAGUAAABmAAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAAAA2CsAANwNAAA4CwAAAAAAAAwQAABnAAAAaAAAAGkAAABqAAAAawAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAAsCsAAFcPAADYKwAArA4AAAQQAAAAAAAABBAAAGcAAABsAAAAIwAAAGoAAAAjAAAAAAAAAJgRAABBAAAAbQAAAG4AAABEAAAAbwAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAHAAAABONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1EZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAADYKwAAAhEAACwLAADYKwAAbBAAAIwRAAAAAAAAjBEAAEEAAABxAAAAIwAAAEQAAAAjAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAIwAAAAAAAAC8EgAAcgAAAHMAAAB0AAAARAAAAHUAAABGAAAARwAAAEgAAABJAAAASgAAAHYAAAB3AAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAA2CsAABQSAACMEQAAAAAAAJwTAAB4AAAAeQAAAHoAAABEAAAAewAAAHwAAAB9AAAAfgAAAEkAAABKAAAAfwAAAIAAAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAAADYKwAAABMAAIwRAAAAAAAAeBQAAIEAAACCAAAAgwAAAEQAAACEAAAAhQAAAIYAAACHAAAASQAAAEoAAACIAAAAiQAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA2CsAAOATAACMEQAAAAAAAOQVAACKAAAAiwAAAIwAAACNAAAAjgAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQCwKwAAPhUAANgrAACgFAAA3BUAAAAAAADcFQAAigAAAI8AAAAjAAAAjQAAACMAAAAAAAAAoBYAAEEAAACQAAAAkQAAAEQAAACSAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAkwAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFRUUAAAAA2CsAAEQWAAAsCwAAAAAAABQXAACUAAAAlQAAAJYAAAApAAAAKgAAAJcAAAA7AAAALQAAADwAAACYAAAAmQAAAJoAAACbAAAATjVkcmFjbzMyU2VxdWVudGlhbE5vcm1hbEF0dHJpYnV0ZURlY29kZXJFAADYKwAA6BYAALgIAAAAAAAASBkAAJwAAACdAAAAngAAAJ8AAACgAAAAoQAAAKIAAACjAAAApAAAAKUAAACmAAAApwAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRUVFAADYKwAAwxgAACALAADYKwAAFRgAADAZAADYKwAAWBcAADwZAAAAAAAAABsAAKgAAACpAAAAqgAAAKsAAACsAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAACwKwAAMxoAANgrAABwGQAA+BoAAAAAAACkHAAArQAAAK4AAACvAAAAnwAAALAAAACxAAAAsgAAALMAAACkAAAApQAAALQAAAC1AAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAAANgrAAD0GwAAMBkAANgrAABEGwAAmBwAAAAAAABAHgAAtgAAALcAAAC4AAAAuQAAALoAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAsCsAAIIdAADYKwAAzBwAADgeAAAAAAAA+B4AALsAAAC8AAAAvQAAAJ8AAAC+AAAAvwAAAMAAAADBAAAApAAAAKUAAADCAAAAwwAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUAAAAA2CsAAIQeAAAwGQAAAAAAAHwfAADEAAAAxQAAAMYAAAApAAAAKgAAAMcAAAA7AAAALQAAADwAAADIAAAAPgAAAD8AAADJAAAAygAAAMsAAABONWRyYWNvMzhTZXF1ZW50aWFsUXVhbnRpemF0aW9uQXR0cmlidXRlRGVjb2RlckUAAAAA2CsAAEgfAAC4CAAAAAAAANwfAADMAAAAzQAAAM4AAADPAAAAIwAAANAAAADRAAAA0gAAANMAAADUAAAA1QAAANYAAAAjAAAATjVkcmFjbzExTWVzaERlY29kZXJFAAAA2CsAAMQfAACcJwAAAAAAAEggAADXAAAA2AAAAM4AAADZAAAA2gAAANAAAADRAAAA0gAAANsAAADcAAAA3QAAAN4AAADfAAAATjVkcmFjbzIyTWVzaEVkZ2VicmVha2VyRGVjb2RlckUAAAAA2CsAACQgAADcHwAAAAAAADwhAADgAAAA4QAAAOIAAADjAAAA5AAAAOUAAADmAAAA5wAAAOgAAADpAAAA/////wAAAACcIQAA6gAAAOsAAADsAAAA7QAAAO4AAADvAAAA8AAAAPEAAADyAAAA8wAAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckRlY29kZXJJbXBsSU5TXzMxTWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsRGVjb2RlckVFRQBONWRyYWNvMzVNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbEludGVyZmFjZUUAAACwKwAABCEAANgrAAC4IAAANCEAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckRlY29kZXJJbXBsSU5TXzM4TWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsVmFsZW5jZURlY29kZXJFRUUAANgrAABIIQAANCEAAAAAAACYIgAA9AAAAPUAAAD2AAAATjVkcmFjbzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMV9FRUVFAE41ZHJhY28xM1RyYXZlcnNlckJhc2VJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQCwKwAAKSIAANgrAAC8IQAAkCIAAAAAAACQIgAA9wAAAPgAAAD2\");l(e,8900,\"AQAAAAMAAAAFAAAABwAAAAAAAACYIwAA+QAAAPoAAAD7AAAA/AAAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAE41ZHJhY28xNVBvaW50c1NlcXVlbmNlckUAAAAAsCsAAHMjAADYKwAA7CIAAJAjAAD/////AAAAAIgkAAD9AAAA/gAAAP8AAABONWRyYWNvMjhNYXhQcmVkaWN0aW9uRGVncmVlVHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQAAsCsAACUkAADYKwAAvCMAAIAkAAAAAAAAgCQAAAABAAABAQAA/wAAAAAAAABAJQAAAgEAAAMBAAAEAQAABQEAAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAAAA2CsAAMAkAACQIwAAAAAAAMAlAAAGAQAABwEAAP8AAABONWRyYWNvMTlEZXB0aEZpcnN0VHJhdmVyc2VySU5TXzExQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQDYKwAAYCUAAIAkAAAAAAAAcCYAAAgBAAAJAQAACgEAAAsBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTMl9FRUVFRUUAANgrAADkJQAAkCM=\");l(e,9860,\"3CYAAMwAAAAMAQAAzgAAAM8AAAANAQAA0AAAANEAAADSAAAA0wAAANQAAADVAAAA1gAAAA4BAABONWRyYWNvMjFNZXNoU2VxdWVudGlhbERlY29kZXJFANgrAAC8JgAA3B8AAAAAAAAcJwAADwEAABABAAARAQAAEgEAAE41ZHJhY28xNUxpbmVhclNlcXVlbmNlckUAAADYKwAAACcAAJAjAAAAAAAAnCcAAMwAAAATAQAAFAEAAM8AAAAjAAAAFQEAANEAAADSAAAA0w==\");l(e,10080,\"RmFpbGVkIHRvIHBhcnNlIERyYWNvIGhlYWRlci4ATjVkcmFjbzE3UG9pbnRDbG91ZERlY29kZXJFAAAAsCsAAH4nAAABAAAAAQAAAAIAAAACAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAAAQ==\");l(e,10211,\"wAAAAMAAAADAAAAAwP//////////AAAAACAoAAAWAQAAFwEAABgBAAAZAQAATjVkcmFjbzRNZXNoRQAAANgrAAAQKAAAZCgAAP////8AAAAAAAAAAGQoAAAaAQAAGwEAABwBAAAdAQAATjVkcmFjbzEwUG9pbnRDbG91ZEUAAAAAsCsAAEwo\");l(e,10356,\"AgAAAAMAAAAFAAAABwAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAfwAAAIMAAACJAAAAiwAAAJUAAACXAAAAnQAAAKMAAACnAAAArQAAALMAAAC1AAAAvwAAAMEAAADFAAAAxwAAANMAAAABAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB5AAAAfwAAAIMAAACJAAAAiwAAAI8AAACVAAAAlwAAAJ0AAACjAAAApwAAAKkAAACtAAAAswAAALUAAAC7AAAAvwAAAMEAAADFAAAAxwAAANEAAAAAAAAACgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUAypo7AAAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OU4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAANgrAADoKgAAbC0AAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAANgrAAAYKwAADCsAAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAANgrAABIKwAADCsAAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FANgrAAB4KwAAbCsAAAAAAAA8KwAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAAAAAAAICwAAB4BAAAmAQAAIAEAACEBAAAiAQAAJwEAACgBAAApAQAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAANgrAAD4KwAAPCsAAAAAAACQLAAADgAAACoBAAArAQAAAAAAALgsAAAOAAAALAEAAC0BAAAAAAAAeCwAAA4AAAAuAQAALwEAAFN0OWV4Y2VwdGlvbgAAAACwKwAAaCwAAFN0OWJhZF9hbGxvYwAAAADYKwAAgCwAAHgsAABTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAA2CsAAJwsAACQLAAAAAAAAOgsAAABAAAAMAEAADEBAABTdDExbG9naWNfZXJyb3IA2CsAANgsAAB4LAAAAAAAABwtAAABAAAAMgEAADEBAABTdDEybGVuZ3RoX2Vycm9yAAAAANgrAAAILQAA6CwAAAAAAABQLQAAAQAAADMBAAAxAQAAU3QxMm91dF9vZl9yYW5nZQAAAADYKwAAPC0AAOgsAABTdDl0eXBlX2luZm8AAAAAsCsAAFwt\");l(e,11636,\"8C8B\")}var r=new ArrayBuffer(16);var s=new Int32Array(r);var t=new Float32Array(r);var u=new Float64Array(r);function v(){throw new Error(\"abort\")}function w(x){t[2]=x}function y(z){return s[z]}function ha(q){var A=q.a;var B=A.a;var C=B.buffer;B.grow=fa;var D=new Int8Array(C);var E=new Int16Array(C);var F=new Int32Array(C);var G=new Uint8Array(C);var H=new Uint16Array(C);var I=new Uint32Array(C);var J=new Float32Array(C);var K=new Float64Array(C);var L=Math.imul;var M=Math.fround;var N=Math.abs;var O=Math.clz32;var P=Math.min;var Q=Math.max;var R=Math.floor;var S=Math.ceil;var T=Math.trunc;var U=Math.sqrt;var V=A.b;var W=A.c;var X=A.d;var Y=A.e;var Z=77808;var _=0;\n// EMSCRIPTEN_START_FUNCS\nfunction mc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!a){return 1}e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];a:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break a}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;b:{switch(o|0){case 0:e=a;f=b;g=d;a=0;d=0;j=Z+-64|0;Z=j;F[j+56>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+32>>2]=0;F[j+36>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;F[j+8>>2]=0;F[j+12>>2]=0;c:{if(!Nd(j+8|0,c)){break c}if(!Md(j+8|0,c)|(F[j+20>>2]?0:e)){break c}hc(c,0,0);if(e){s=f<<2;t=F[j+36>>2];u=F[j+48>>2];x=F[j+24>>2];l=F[j+56>>2];i=F[j+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((i|0)<=0){break d}i=i-1|0;F[j+52>>2]=i;l=G[i+u|0]|l<<8;F[j+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=F[(a<<2)+x>>2];b=(r<<3)+t|0;l=(L(F[b>>2],l>>>12|0)+a|0)-F[b+4>>2]|0;F[j+56>>2]=l;if((f|0)>0){a=0;if(!G[c+36|0]|r>>>0>32){break c}o=d+f|0;e:{if(!r){ma(g+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=F[c+32>>2];h=F[c+28>>2];q=F[c+24>>2];while(1){k=0;a=b;m=0;n=0;if((r|0)!=1){while(1){p=q+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=G[p|0];b=a+1|0;F[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<<k|m;m=0;v=q+(a>>>3|0)|0;if(v>>>0<h>>>0){m=G[v|0];b=a+1|0;F[c+32>>2]=b;m=m>>>(a&7)&1;a=b}v=k|1;k=k+2|0;m=p|m<<v;n=n+2|0;if((y|0)!=(n|0)){continue}break}}n=g+(d<<2)|0;if(z){p=q+(a>>>3|0)|0;if(p>>>0<h>>>0){p=G[p|0];b=a+1|0;F[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}m=a<<k|m}F[n>>2]=m;d=d+1|0;if((o|0)!=(d|0)){continue}break}}d=o}w=f+w|0;if(e>>>0>w>>>0){continue}break}}D[c+36|0]=0;f=F[c+20>>2];a=0;m=F[c+32>>2]+7|0;a=m>>>0<7?1:a;m=a<<29|m>>>3;b=m+F[c+16>>2]|0;a=(a>>>3|0)+f|0;F[c+16>>2]=b;F[c+20>>2]=b>>>0<m>>>0?a+1|0:a;a=1}b=F[j+36>>2];if(b){F[j+40>>2]=b;ja(b)}b=F[j+24>>2];if(b){F[j+28>>2]=b;ja(b)}b=F[j+8>>2];if(b){F[j+12>>2]=b;ja(b)}Z=j- -64|0;return a;case 1:break b;default:break a}}b=0;e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];g:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break g}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;h:{switch(o-1|0){case 8:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;i:{j:{if(!H[c+38>>1]){break j}if(!Ta(1,h+12|0,c)){break j}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break j}b=F[h>>2];a=F[h+4>>2]-b>>2;k:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break k}if(a>>>0<=i>>>0){break k}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break i}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break i}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;l:{m:{n:{o:{t=p&3;switch(t|0){case 0:break m;case 3:break o;default:break n}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break i}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break l}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break j}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;p:{if(b>>>0<=32767){qa(a,8192-(b>>>2|0)|0);break p}if((b|0)==32768){break p}F[h+20>>2]=d+32768}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;q:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break q}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break j}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>8192){break j}r:{if(a>>>0>=d>>>0){break r}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break r}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==8192}g=k}s:{if(!g|(F[e+20>>2]?0:o)){break s}d=0;k=Z-16|0;Z=k;t:{if(!Sa(1,k+8|0,c)){break t}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0<b>>>0|a>>>0<j>>>0){break t}a=i+j|0;g=b+f|0;a=g>>>0<f>>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break t}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];u:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break u}v:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break t}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break u;case 1:if(b>>>0<3){break t}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break u;default:break v}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+32768;d=a>>>0<8355840}Z=k+16|0;if(!d){break s}if(!o){m=1;break s}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){w:{if(a>>>0>32767){break w}while(1){if((b|0)<=0){break w}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<32768){continue}break}}m=a&8191;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>13|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 9:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;x:{y:{if(!H[c+38>>1]){break y}if(!Ta(1,h+12|0,c)){break y}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break y}b=F[h>>2];a=F[h+4>>2]-b>>2;z:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break z}if(a>>>0<=i>>>0){break z}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break x}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break x}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;A:{B:{C:{D:{e=p&3;switch(e|0){case 0:break B;case 3:break D;default:break C}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break x}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break A}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break y}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;E:{if(b>>>0<=131071){qa(a,32768-(b>>>2|0)|0);break E}if((b|0)==131072){break E}F[h+20>>2]=d+131072}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;F:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break F}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break y}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>32768){break y}G:{if(a>>>0>=d>>>0){break G}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break G}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==32768}e=k}H:{if(!e|(F[g+20>>2]?0:o)){break H}d=0;f=Z-16|0;Z=f;I:{if(!Sa(1,f+8|0,c)){break I}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0<a>>>0|e>>>0<j>>>0){break I}e=i+j|0;k=a+b|0;e=k>>>0<b>>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break I}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];J:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break J}K:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break I}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break J;case 1:if(a>>>0<3){break I}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break J;default:break K}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+131072;d=a>>>0<33423360}Z=f+16|0;if(!d){break H}if(!o){m=1;break H}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){L:{if(a>>>0>131071){break L}while(1){if((b|0)<=0){break L}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<131072){continue}break}}m=a&32767;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>15|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 10:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;M:{N:{if(!H[c+38>>1]){break N}if(!Ta(1,h+12|0,c)){break N}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break N}b=F[h>>2];a=F[h+4>>2]-b>>2;O:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break O}if(a>>>0<=i>>>0){break O}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break M}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break M}t=F[c>>2];p=G[t+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;P:{Q:{R:{S:{u=p&3;switch(u|0){case 0:break Q;case 3:break S;default:break R}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break M}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break P}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break N}i=G[f+t|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=i<<(l<<3|6)|a;l=l+1|0;if((u|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;T:{if(b>>>0<=262143){qa(a,65536-(b>>>2|0)|0);break T}if((b|0)==262144){break T}F[h+20>>2]=d+262144}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;U:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break U}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break N}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>65536){break N}V:{if(a>>>0>=d>>>0){break V}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break V}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==65536}e=k}W:{if(!e|(F[g+20>>2]?0:o)){break W}d=0;e=Z-16|0;Z=e;X:{if(!Sa(1,e+8|0,c)){break X}a=F[c+8>>2];f=F[c+16>>2];k=a-f|0;j=F[e+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[e+8>>2];if((j|0)==(a|0)&k>>>0<b>>>0|a>>>0<j>>>0){break X}a=i+j|0;k=b+f|0;a=k>>>0<f>>>0?a+1|0:a;F[c+16>>2]=k;F[c+20>>2]=a;if((b|0)<=0){break X}a=f+F[c>>2]|0;F[g+48>>2]=a;c=b-1|0;f=c+a|0;k=G[f|0];Y:{if(k>>>0<=63){F[g+52>>2]=c;a=G[f|0]&63;break Y}Z:{switch((k>>>6|0)-1|0){case 0:if(b>>>0<2){break X}b=b-2|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Y;case 1:if(b>>>0<3){break X}b=b-3|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Y;default:break Z}}b=b-4|0;F[g+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+262144;d=a>>>0<66846720}Z=e+16|0;if(!d){break W}if(!o){m=1;break W}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){_:{if(a>>>0>262143){break _}while(1){if((b|0)<=0){break _}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<262144){continue}break}}m=a&65535;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>16|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 11:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;$:{aa:{if(!H[c+38>>1]){break aa}if(!Ta(1,h+12|0,c)){break aa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break aa}b=F[h>>2];a=F[h+4>>2]-b>>2;ba:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break ba}if(a>>>0<=i>>>0){break ba}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break $}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break $}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;ca:{da:{ea:{fa:{e=p&3;switch(e|0){case 0:break da;case 3:break fa;default:break ea}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break $}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ca}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break aa}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;ga:{if(b>>>0<=1048575){qa(a,262144-(b>>>2|0)|0);break ga}if((b|0)==1048576){break ga}F[h+20>>2]=d- -1048576}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;ha:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break ha}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break aa}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>262144){break aa}ia:{if(a>>>0>=d>>>0){break ia}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break ia}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==262144}e=k}ja:{if(!e|(F[g+20>>2]?0:o)){break ja}d=0;f=Z-16|0;Z=f;ka:{if(!Sa(1,f+8|0,c)){break ka}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0<a>>>0|e>>>0<j>>>0){break ka}e=i+j|0;k=a+b|0;e=k>>>0<b>>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break ka}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];la:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break la}ma:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break ka}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break la;case 1:if(a>>>0<3){break ka}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break la;default:break ma}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a- -1048576;d=a>>>0<267386880}Z=f+16|0;if(!d){break ja}if(!o){m=1;break ja}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){na:{if(a>>>0>1048575){break na}while(1){if((b|0)<=0){break na}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<1048576){continue}break}}m=a&262143;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>18|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 12:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;oa:{pa:{if(!H[c+38>>1]){break pa}if(!Ta(1,h+12|0,c)){break pa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0<d>>>0)|0)|0;if(f>>>0<i>>>6>>>0&(b|0)<=0|(b|0)<0){break pa}b=F[h>>2];a=F[h+4>>2]-b>>2;qa:{if(a>>>0<i>>>0){qa(h,i-a|0);i=F[h+12>>2];break qa}if(a>>>0<=i>>>0){break qa}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break oa}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break oa}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;ra:{sa:{ta:{ua:{t=p&3;switch(t|0){case 0:break sa;case 3:break ua;default:break ta}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break oa}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ra}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break pa}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0<i>>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;va:{if(b>>>0<=2097151){qa(a,524288-(b>>>2|0)|0);break va}if((b|0)==2097152){break va}F[h+20>>2]=d+2097152}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;wa:{if(f>>>0<i>>>0){_a(d,i-f|0);b=F[d>>2];break wa}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break pa}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>524288){break pa}xa:{if(a>>>0>=d>>>0){break xa}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break xa}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==524288}g=k}ya:{if(!g|(F[e+20>>2]?0:o)){break ya}d=0;k=Z-16|0;Z=k;za:{if(!Sa(1,k+8|0,c)){break za}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0<f>>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0<b>>>0|a>>>0<j>>>0){break za}a=i+j|0;g=b+f|0;a=g>>>0<f>>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break za}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];Aa:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break Aa}Ba:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break za}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Aa;case 1:if(b>>>0<3){break za}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Aa;default:break Ba}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+2097152;d=a>>>0<534773760}Z=k+16|0;if(!d){break ya}if(!o){m=1;break ya}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){Ca:{if(a>>>0>2097151){break Ca}while(1){if((b|0)<=0){break Ca}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<2097152){continue}break}}m=a&524287;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>19|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 17:b=Ld(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=Z+-64|0;Z=b;F[b+56>>2]=0;F[b+48>>2]=0;F[b+52>>2]=0;F[b+40>>2]=0;F[b+44>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b+12>>2]=0;Da:{if(!Nd(b+8|0,c)|(F[b+20>>2]?0:a)){break Da}if(!Md(b+8|0,c)){break Da}if(!a){f=1;break Da}m=F[b+52>>2];c=F[b+56>>2];e=F[b+36>>2];g=F[b+48>>2];o=F[b+24>>2];while(1){Ea:{if(c>>>0>16383){break Ea}while(1){if((m|0)<=0){break Ea}m=m-1|0;F[b+52>>2]=m;c=G[g+m|0]|c<<8;F[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;j=F[o+(f<<2)>>2];r=e+(j<<3)|0;c=(L(F[r>>2],c>>>12|0)+f|0)-F[r+4>>2]|0;F[b+56>>2]=c;F[(k<<2)+d>>2]=j;f=1;k=k+1|0;if((k|0)!=(a|0)){continue}break}}a=F[b+36>>2];if(a){F[b+40>>2]=a;ja(a)}a=F[b+24>>2];if(a){F[b+28>>2]=a;ja(a)}a=F[b+8>>2];if(a){F[b+12>>2]=a;ja(a)}Z=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Ld(a,c,d)}f=b}return f}function ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0,P=0;u=Z+-64|0;Z=u;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){f=F[b>>2];ja(b);b=f;if(b){continue}break}}b=0;F[a+144>>2]=0;f=F[a+140>>2];a:{if(!f){break a}if(f>>>0>=4){c=f&-4;while(1){e=b<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;b=b+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}f=f&3;if(!f){break a}d=0;while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}F[a+148>>2]=0}b:{c:{if(!Da(1,u+60|0,F[F[a+4>>2]+32>>2])){break c}F[a+156>>2]=F[u+60>>2];if(!Da(1,u+56|0,F[F[a+4>>2]+32>>2])){break c}e=F[u+56>>2];if(e>>>0>1431655765|I[a+156>>2]>L(e,3)>>>0){break c}b=F[F[a+4>>2]+32>>2];c=F[b+8>>2];k=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];if((k|0)<=(d|0)&f>>>0>=c>>>0|(d|0)>(k|0)){break c}k=G[f+F[b>>2]|0];f=f+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;if(!Da(1,u+52|0,b)){break c}q=F[u+52>>2];if(q>>>0>e>>>0|e>>>0>q+((q>>>0)/3|0)>>>0){break c}if(!Da(1,u+48|0,F[F[a+4>>2]+32>>2])){break c}d=F[u+48>>2];if(d>>>0>q>>>0){break c}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;Dd(A);Cd(A,k);if(!_c(F[a+8>>2],e,d+F[a+156>>2]|0)){break c}b=F[a+156>>2];D[u+8|0]=1;Ea(a+120|0,b+d|0,u+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break c}c=a+232|0;b=c;F[b+144>>2]=a;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f>>2]+F[f+16>>2]|0;e=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];e=F[e+8>>2]-F[e+16>>2]|0;O=b,P=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[O+38>>1]=P;F[b>>2]=f;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=e;F[b+12>>2]=0;O=b,P=$[F[F[a>>2]+36>>2]](a)|0,F[O+148>>2]=P;F[a+372>>2]=k;F[a+384>>2]=d+F[a+156>>2];K=Ja(u+8|0);k=K;f=0;j=Z-16|0;Z=j;d:{if(!Aa(b+80|0,b)){break d}if(!yd(c)){break d}b=F[c+4>>2];F[k>>2]=F[c>>2];F[k+4>>2]=b;b=F[c+36>>2];F[k+32>>2]=F[c+32>>2];F[k+36>>2]=b;b=F[c+28>>2];F[k+24>>2]=F[c+24>>2];F[k+28>>2]=b;b=F[c+20>>2];F[k+16>>2]=F[c+16>>2];F[k+20>>2]=b;b=F[c+12>>2];F[k+8>>2]=F[c+8>>2];F[k+12>>2]=b;F[c+176>>2]=2;F[c+180>>2]=7;b=F[c+152>>2];if((b|0)<0){break d}F[j+12>>2]=0;f=2;h=F[c+156>>2];e=F[c+160>>2]-h>>2;e:{if(e>>>0<b>>>0){Fa(c+156|0,b-e|0,j+12|0);f=F[c+176>>2];d=F[c+180>>2];break e}d=7;if(b>>>0>=e>>>0){break e}F[c+160>>2]=h+(b<<2)}e=c+184|0;d=(d-f|0)+1|0;b=F[c+188>>2];f=F[c+184>>2];s=(b-f|0)/12|0;f:{if(d>>>0>s>>>0){h=0;b=d-s|0;o=F[e+8>>2];f=F[e+4>>2];g:{if(b>>>0<=(o-f|0)/12>>>0){if(b){b=L(b,12)-12|0;b=(b-((b>>>0)%12|0)|0)+12|0;f=ma(f,0,b)+b|0}F[e+4>>2]=f;break g}h:{i:{j:{s=F[e>>2];g=(f-s|0)/12|0;d=g+b|0;if(d>>>0<357913942){o=(o-s|0)/12|0;i=o<<1;o=o>>>0>=178956970?357913941:d>>>0<i>>>0?i:d;if(o){if(o>>>0>=357913942){break j}h=ka(L(o,12))}d=L(g,12)+h|0;b=L(b,12)-12|0;g=(b-((b>>>0)%12|0)|0)+12|0;b=ma(d,0,g);g=b+g|0;h=L(o,12)+h|0;if((f|0)==(s|0)){break i}while(1){d=d-12|0;f=f-12|0;F[d>>2]=F[f>>2];F[d+4>>2]=F[f+4>>2];F[d+8>>2]=F[f+8>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((f|0)!=(s|0)){continue}break}F[e+8>>2]=h;b=F[e+4>>2];F[e+4>>2]=g;f=F[e>>2];F[e>>2]=d;if((b|0)==(f|0)){break h}while(1){d=b-12|0;h=F[d>>2];if(h){F[b-8>>2]=h;ja(h)}b=d;if((f|0)!=(b|0)){continue}break}break h}break b}oa();v()}F[e+8>>2]=h;F[e+4>>2]=g;F[e>>2]=b}if(f){ja(f)}}d=F[c+188>>2];break f}if(d>>>0>=s>>>0){d=b;break f}d=f+L(d,12)|0;if((d|0)!=(b|0)){while(1){f=b-12|0;h=F[f>>2];if(h){F[b-8>>2]=h;ja(h)}b=f;if((d|0)!=(b|0)){continue}break}}F[c+188>>2]=d}s=c+196|0;f=F[c+184>>2];b=(d-f|0)/12|0;o=F[c+196>>2];h=F[c+200>>2]-o>>2;k:{if(b>>>0>h>>>0){qa(s,b-h|0);f=F[c+184>>2];d=F[c+188>>2];break k}if(b>>>0>=h>>>0){break k}F[c+200>>2]=o+(b<<2)}if((d|0)==(f|0)){f=1;break d}b=0;while(1){l:{if(!Da(1,j+8|0,k)){break l}f=F[j+8>>2];d=F[c+148>>2];if(f>>>0>(F[d+4>>2]-F[d>>2]>>2>>>0)/3>>>0){break l}if(f){g=L(b,12);h=g+F[e>>2]|0;d=F[h>>2];o=F[h+4>>2]-d>>2;m:{if(o>>>0<f>>>0){qa(h,f-o|0);d=F[g+F[e>>2]>>2];break m}if(f>>>0>=o>>>0){break m}F[h+4>>2]=(f<<2)+d}mc(f,1,k,d);F[F[s>>2]+(b<<2)>>2]=f}f=1;b=b+1|0;if(b>>>0<(F[c+188>>2]-F[c+184>>2]|0)/12>>>0){continue}break d}break}f=0}Z=j+16|0;n:{if(!f){break n}e=0;c=0;d=0;b=0;k=0;f=0;s=0;o=0;l=Z-96|0;Z=l;F[l+72>>2]=0;F[l+64>>2]=0;F[l+68>>2]=0;F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+56>>2]=1065353216;F[l+32>>2]=0;F[l+24>>2]=0;F[l+28>>2]=0;j=a;C=F[a+124>>2];o:{p:{q:{r:{s:{if((q|0)<=0){break s}J=j+232|0;M=F[j+216>>2]!=F[j+220>>2];B=1;t:{while(1){h=s;s=h+1|0;u:{v:{w:{g=F[j+404>>2];if((g|0)==-1){F[j+400>>2]=7;break w}a=-1;i=F[j+428>>2]+(g<<2)|0;m=F[i>>2];g=m-1|0;F[i>>2]=g;if((m|0)<=0){break r}g=F[F[F[j+416>>2]+L(F[j+404>>2],12)>>2]+(g<<2)>>2];if(g>>>0>4){break r}i=F[(g<<2)+8896>>2];F[j+400>>2]=i;if(!g){if((b|0)==(c|0)){break r}i=-1;m=F[j+8>>2];B=F[m+24>>2];t=c-4|0;e=F[t>>2];g=-1;x:{if((e|0)==-1){break x}p=e+1|0;p=(p>>>0)%3|0?p:e-2|0;g=-1;if((p|0)==-1){break x}g=F[F[m>>2]+(p<<2)>>2]}n=F[B+(g<<2)>>2];if((n|0)!=-1){i=n+1|0;i=(i>>>0)%3|0?i:n-2|0}if((e|0)!=-1&F[F[m+12>>2]+(e<<2)>>2]!=-1|(e|0)==(i|0)){break r}n=F[m+12>>2];if((i|0)!=-1&F[n+(i<<2)>>2]!=-1){break r}p=L(h,3);h=p+1|0;F[n+(e<<2)>>2]=h;x=h<<2;F[x+n>>2]=e;r=p+2|0;F[n+(i<<2)>>2]=r;w=r<<2;F[w+n>>2]=i;n=-1;h=-1;y:{if((e|0)==-1){break y}z:{if((e>>>0)%3|0){e=e-1|0;break z}e=e+2|0;h=-1;if((e|0)==-1){break y}}h=F[F[m>>2]+(e<<2)>>2]}e=h;A:{if((i|0)==-1){break A}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break A}n=F[F[m>>2]+(h<<2)>>2]}if((e|0)==(g|0)|(g|0)==(n|0)){break r}a=F[m>>2];F[a+(p<<2)>>2]=g;F[a+x>>2]=n;F[a+w>>2]=e;if((e|0)!=-1){F[B+(e<<2)>>2]=r}a=F[j+120>>2]+(g>>>3&536870908)|0;e=F[a>>2];O=a,P=oi(g)&e,F[O>>2]=P;F[t>>2]=p;e=b;kc(J,p);break u}B:{switch(i-1|0){case 2:case 4:if((b|0)==(c|0)){break r}r=c-4|0;e=F[r>>2];i=F[j+8>>2];m=F[i+12>>2];if((e|0)!=-1&F[m+(e<<2)>>2]!=-1){break r}c=L(h,3);n=(g|0)==3;g=c+(n?2:1)|0;t=g<<2;F[t+m>>2]=e;F[m+(e<<2)>>2]=g;Ma(i+24|0,8324);p=F[j+8>>2];m=F[p+24>>2];if(F[p+28>>2]-m>>2>(C|0)){break r}a=F[p>>2];w=a+t|0;p=F[i+28>>2];i=F[i+24>>2];t=(p-i>>2)-1|0;F[w>>2]=t;if((i|0)!=(p|0)){F[m+(t<<2)>>2]=g}g=n?c:c+2|0;w=a+(c+n<<2)|0;C:{if((e|0)==-1){F[a+(g<<2)>>2]=-1;i=-1;break C}D:{E:{F:{if((e>>>0)%3|0){i=e-1|0;break F}i=e+2|0;if((i|0)==-1){break E}}i=F[a+(i<<2)>>2];F[a+(g<<2)>>2]=i;if((i|0)==-1){break D}F[m+(i<<2)>>2]=g;break D}F[a+(g<<2)>>2]=-1}i=e+1|0;e=(i>>>0)%3|0?i:e-2|0;i=-1;if((e|0)==-1){break C}i=F[a+(e<<2)>>2]}F[w>>2]=i;F[r>>2]=c;e=b;break v;case 6:break w;case 0:break B;default:break r}}if((e|0)==(c|0)){break r}f=c-4|0;m=F[f>>2];F[l+68>>2]=f;n=F[l+44>>2];G:{if(!n){break G}g=F[l+40>>2];p=ni(n)>>>0>1;a=h&n+2147483647;H:{if(!p){break H}a=h;if(a>>>0<n>>>0){break H}a=(h>>>0)%(n>>>0)|0}i=a;a=F[g+(i<<2)>>2];if(!a){break G}a=F[a>>2];if(!a){break G}I:{if(!p){g=n-1|0;while(1){n=F[a+4>>2];J:{if((n|0)!=(h|0)){if((i|0)==(g&n)){break J}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}while(1){g=F[a+4>>2];K:{if((g|0)!=(h|0)){if(g>>>0>=n>>>0){g=(g>>>0)%(n>>>0)|0}if((g|0)==(i|0)){break K}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}if((f|0)!=(k|0)){F[f>>2]=F[a+12>>2];F[l+68>>2]=c;f=c;break G}b=k-e|0;c=b>>2;d=c+1|0;if(d>>>0>=1073741824){break b}f=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break p}f=ka(d<<2)}else{f=0}b=f+(c<<2)|0;F[b>>2]=F[a+12>>2];d=f+(d<<2)|0;f=b+4|0;if((e|0)!=(k|0)){while(1){b=b-4|0;k=k-4|0;F[b>>2]=F[k>>2];if((e|0)!=(k|0)){continue}break}}F[l+72>>2]=d;F[l+68>>2]=f;F[l+64>>2]=b;if(e){ja(e)}e=b;k=d}if((e|0)==(f|0)){break t}x=f-4|0;a=F[x>>2];if((a|0)==(m|0)){break t}i=(a|0)==-1;g=F[j+8>>2];if(!i&F[F[g+12>>2]+(a<<2)>>2]!=-1){break t}n=F[g+12>>2];if((m|0)!=-1&F[n+(m<<2)>>2]!=-1){break t}p=L(h,3);t=p+2|0;F[n+(a<<2)>>2]=t;c=t<<2;F[c+n>>2]=a;h=p+1|0;F[n+(m<<2)>>2]=h;w=h<<2;F[w+n>>2]=m;L:{M:{N:{if(!i){if((a>>>0)%3|0){h=a-1|0;break N}h=a+2|0;if((h|0)!=-1){break N}i=F[g>>2];h=-1;break M}h=-1;i=F[g>>2];F[i+(p<<2)>>2]=-1;r=-1;break L}i=F[g>>2];h=F[i+(h<<2)>>2]}F[(p<<2)+i>>2]=h;r=a+1|0;a=(r>>>0)%3|0?r:a-2|0;r=-1;if((a|0)==-1){break L}r=F[(a<<2)+i>>2]}F[i+w>>2]=r;O:{if((m|0)==-1){F[c+i>>2]=-1;r=-1;c=-1;break O}P:{Q:{R:{if((m>>>0)%3|0){a=m-1|0;break R}a=m+2|0;if((a|0)==-1){break Q}}a=F[(a<<2)+i>>2];F[c+i>>2]=a;if((a|0)==-1){break P}F[F[g+24>>2]+(a<<2)>>2]=t;break P}F[c+i>>2]=-1}r=-1;a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;c=-1;if((a|0)==-1){break O}r=F[(a<<2)+i>>2];c=a}a=F[j+388>>2];t=h<<2;m=a+t|0;w=a;a=r<<2;F[m>>2]=F[m>>2]+F[w+a>>2];w=a;a=F[g+24>>2];m=w+a|0;if((h|0)!=-1){F[a+t>>2]=F[m>>2]}a=c;while(1){if((a|0)!=-1){F[(a<<2)+i>>2]=h;t=a+1|0;a=(t>>>0)%3|0?t:a-2|0;g=-1;S:{if((a|0)==-1){break S}a=F[n+(a<<2)>>2];g=-1;if((a|0)==-1){break S}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((c|0)!=(a|0)){continue}break t}break}F[m>>2]=-1;T:{U:{if(M){break U}if((y|0)!=(z|0)){F[z>>2]=r;z=z+4|0;F[l+28>>2]=z;break U}a=y-o|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break T}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=1073741824){break p}c=ka(h<<2)}else{c=0}a=c+(g<<2)|0;F[a>>2]=r;z=a+4|0;if((o|0)!=(y|0)){while(1){a=a-4|0;y=y-4|0;F[a>>2]=F[y>>2];if((o|0)!=(y|0)){continue}break}}y=c+(h<<2)|0;F[l+32>>2]=y;F[l+28>>2]=z;F[l+24>>2]=a;if(o){ja(o)}o=a}F[x>>2]=p;c=f;kc(J,p);break u}break b}g=F[j+8>>2];Ma(g+24|0,8324);a=-1;k=F[j+8>>2];f=L(h,3);i=F[g+28>>2];m=F[g+24>>2];n=i-m|0;g=n>>2;p=g-1|0;F[F[k>>2]+(f<<2)>>2]=p;Ma(k+24|0,8324);r=f+1|0;F[F[k>>2]+(r<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;k=F[j+8>>2];Ma(k+24|0,8324);t=f+2|0;F[F[k>>2]+(t<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;x=F[j+8>>2];k=F[x+24>>2];if(F[x+28>>2]-k>>2>(C|0)){break r}V:{W:{if((i|0)!=(m|0)){F[k+(p<<2)>>2]=f;a=0;if((n|0)==-4){break W}}F[k+(g<<2)>>2]=r;a=g+1|0;if((a|0)==-1){break V}}F[k+(a<<2)>>2]=t}if((d|0)!=(c|0)){F[c>>2]=f;f=c+4|0;F[l+68>>2]=f;k=d;break v}a=d-b|0;k=a>>2;e=k+1|0;if(e>>>0>=1073741824){break b}c=a>>>1|0;a=a>>>0>=2147483644?1073741823:e>>>0<c>>>0?c:e;if(a){if(a>>>0>=1073741824){break p}c=ka(a<<2)}else{c=0}e=c+(k<<2)|0;F[e>>2]=f;k=c+(a<<2)|0;f=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((b|0)!=(d|0)){continue}break}}F[l+72>>2]=k;F[l+68>>2]=f;F[l+64>>2]=e;if(b){ja(b)}d=k;b=e}kc(J,F[f-4>>2]);a=F[j+40>>2];X:{if((a|0)==F[j+36>>2]){break X}c=a-12|0;g=F[c+4>>2];h=q+(h^-1)|0;if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}m=f-4|0;a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Y:{if(i&1){c=-1;if((a|0)==-1){break Y}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Y}c=-1;if((a|0)==-1){break Y}c=a-1|0;if((a>>>0)%3|0){break Y}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)==F[j+36>>2]){break X}while(1){c=a-12|0;g=F[c+4>>2];if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Z:{if(i&1){c=-1;if((a|0)==-1){break Z}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Z}c=-1;if((a|0)==-1){break Z}c=a-1|0;if((a>>>0)%3|0){break Z}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)!=F[j+36>>2]){continue}break}}c=f}B=(q|0)>(s|0);if((q|0)!=(s|0)){continue}break}s=q;break s}a=-1;if(B){break r}}a=-1;c=F[j+8>>2];if(F[c+28>>2]-F[c+24>>2]>>2>(C|0)){break r}if((b|0)!=(f|0)){m=j+72|0;k=j+60|0;n=j+312|0;while(1){f=f-4|0;q=F[f>>2];F[l+68>>2]=f;_:{if(wa(n)){g=F[j+8>>2];o=F[g>>2];if(((F[g+4>>2]-o>>2>>>0)/3|0)<=(s|0)){a=-1;break r}b=-1;i=F[g+24>>2];a=-1;$:{if((q|0)==-1){break $}e=q+1|0;e=(e>>>0)%3|0?e:q-2|0;a=-1;if((e|0)==-1){break $}a=F[o+(e<<2)>>2]}e=a;a=F[i+(e<<2)>>2];aa:{if((a|0)==-1){h=1;c=-1;break aa}h=1;c=-1;d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break aa}h=0;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){c=F[o+(b<<2)>>2]}b=a}a=-1;d=-1;i=F[i+(c<<2)>>2];if((i|0)!=-1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0}if((b|0)==(q|0)|(d|0)==(q|0)|((q|0)!=-1&F[F[g+12>>2]+(q<<2)>>2]!=-1|(b|0)==(d|0))){break r}if(!h&F[F[g+12>>2]+(b<<2)>>2]!=-1){break r}h=-1;g=F[g+12>>2];i=-1;ba:{if((d|0)==-1){break ba}if(F[g+(d<<2)>>2]!=-1){break r}a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;i=-1;if((a|0)==-1){break ba}i=F[o+(a<<2)>>2]}a=L(s,3);F[l>>2]=a;F[g+(a<<2)>>2]=q;F[g+(q<<2)>>2]=a;a=F[l>>2]+1|0;F[g+(a<<2)>>2]=b;F[g+(b<<2)>>2]=a;a=F[l>>2]+2|0;F[g+(a<<2)>>2]=d;F[g+(d<<2)>>2]=a;a=F[l>>2];F[o+(a<<2)>>2]=c;b=a+1|0;d=o+(b<<2)|0;F[d>>2]=i;q=a+2|0;o=o+(q<<2)|0;F[o>>2]=e;a=F[j+120>>2];e=b?c:-1;c=a+(e>>>3&536870908)|0;g=F[c>>2];O=c,P=oi(e)&g,F[O>>2]=P;h=(b|0)!=-1?F[d>>2]:h;b=a+(h>>>3&536870908)|0;d=F[b>>2];O=b,P=oi(h)&d,F[O>>2]=P;d=-1;d=(q|0)!=-1?F[o>>2]:d;a=a+(d>>>3&536870908)|0;b=F[a>>2];O=a,P=oi(d)&b,F[O>>2]=P;D[l+88|0]=1;wd(k,l+88|0);Ma(m,l);s=s+1|0;b=F[l+64>>2];break _}d=F[j+64>>2];a=F[j+68>>2];if((d|0)==a<<5){if((d+1|0)<0){break b}if(d>>>0<=1073741822){a=a<<6;d=(d&-32)+32|0;a=a>>>0>d>>>0?a:d}else{a=2147483647}$a(k,a);d=F[j+64>>2]}F[j+64>>2]=d+1;a=F[j+60>>2]+(d>>>3&536870908)|0;e=F[a>>2];O=a,P=oi(d)&e,F[O>>2]=P;d=F[j+76>>2];if((d|0)!=F[j+80>>2]){F[d>>2]=q;F[j+76>>2]=d+4;break _}c=F[m>>2];a=d-c|0;o=a>>2;e=o+1|0;if(e>>>0>=1073741824){break b}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(h){if(h>>>0>=1073741824){break p}a=ka(h<<2)}else{a=0}e=a+(o<<2)|0;F[e>>2]=q;q=e+4|0;if((d|0)!=(c|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((d|0)!=(c|0)){continue}break}}F[j+80>>2]=a+(h<<2);F[j+76>>2]=q;F[j+72>>2]=e;if(!c){break _}ja(c)}if((b|0)!=(f|0)){continue}break}c=F[j+8>>2]}a=-1;if(((F[c+4>>2]-F[c>>2]>>2>>>0)/3|0)!=(s|0)){break r}a=F[c+28>>2]-F[c+24>>2]>>2;f=F[l+24>>2];h=F[l+28>>2];if((f|0)==(h|0)){break q}while(1){b=F[f>>2];k=F[c+24>>2];d=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){while(1){d=a-2|0;a=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){continue}break}}if(b>>>0<=d>>>0){F[l>>2]=c;e=F[e>>2];D[l+12|0]=1;F[l+8>>2]=e;F[l+4>>2]=e;if((e|0)!=-1){while(1){e=F[F[j+8>>2]>>2]+(e<<2)|0;if(F[e>>2]!=(d|0)){a=-1;break r}F[e>>2]=b;nc(l);e=F[l+8>>2];if((e|0)!=-1){continue}break}c=F[j+8>>2]}k=F[c+24>>2];e=k+(d<<2)|0;if((b|0)!=-1){F[k+(b<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<<b;k=F[j+120>>2];b=k+(b>>>3&536870908)|0;k=k+(d>>>3&536870908)|0;d=1<<d;if(F[k>>2]&d){e=e|F[b>>2]}else{e=F[b>>2]&(e^-1)}F[b>>2]=e;F[k>>2]=F[k>>2]&(d^-1);a=a-1|0}f=f+4|0;if((h|0)!=(f|0)){continue}break}}f=F[l+24>>2]}if(f){ja(f)}b=F[l+48>>2];if(b){while(1){d=F[b>>2];ja(b);b=d;if(b){continue}break}}b=F[l+40>>2];F[l+40>>2]=0;if(b){ja(b)}b=F[l+64>>2];if(b){F[l+68>>2]=b;ja(b)}Z=l+96|0;break o}oa();v()}f=a;if((a|0)==-1){break n}a=K;b=F[a+16>>2];d=b+F[a>>2]|0;b=F[a+8>>2]-b|0;a=F[F[j+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=d;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=b;F[a+12>>2]=0;ca:{if(F[j+216>>2]==F[j+220>>2]){break ca}a=F[j+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}b=0;while(1){if(Ad(j,b)){b=b+3|0;a=F[j+8>>2];if(b>>>0<F[a+4>>2]-F[a>>2]>>2>>>0){continue}break ca}break}break n}if(G[j+308|0]){D[j+308|0]=0;d=F[j+292>>2];a=0;e=F[j+304>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;b=e+F[j+288>>2]|0;a=(a>>>3|0)+d|0;F[j+288>>2]=b;F[j+292>>2]=b>>>0<e>>>0?a+1|0:a}b=F[j+216>>2];if((b|0)!=F[j+220>>2]){a=0;while(1){e=L(a,144);Zc((e+b|0)+4|0,F[j+8>>2]);d=F[A>>2];c=d+e|0;b=F[c+132>>2];c=F[c+136>>2];if((b|0)!=(c|0)){while(1){Xc((e+F[A>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((c|0)!=(b|0)){continue}break}d=F[A>>2]}if(!Yc((d+e|0)+4|0)){break n}a=a+1|0;b=F[j+216>>2];if(a>>>0<(F[j+220>>2]-b|0)/144>>>0){continue}break}}a=F[j+8>>2];Hb(j+184|0,F[a+28>>2]-F[a+24>>2]>>2);d=F[j+216>>2];if((d|0)!=F[j+220>>2]){b=0;while(1){a=L(b,144)+d|0;d=F[a+60>>2]-F[a+56>>2]>>2;c=a+104|0;a=F[j+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(c,(a|0)<(d|0)?d:a);b=b+1|0;d=F[j+216>>2];if(b>>>0<(F[j+220>>2]-d|0)/144>>>0){continue}break}}N=zd(j,f)}}Z=u- -64|0;return N|0}na();v()}function lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0;t=Z+-64|0;Z=t;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}c=0;F[a+144>>2]=0;b=F[a+140>>2];a:{if(!b){break a}if(b>>>0>=4){h=b&-4;while(1){e=c<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;c=c+4|0;g=g+4|0;if((h|0)!=(g|0)){continue}break}}b=b&3;if(!b){break a}g=0;while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((b|0)!=(g|0)){continue}break}}F[a+148>>2]=0}b:{if(!Da(1,t+60|0,F[F[a+4>>2]+32>>2])){break b}F[a+156>>2]=F[t+60>>2];if(!Da(1,t+56|0,F[F[a+4>>2]+32>>2])){break b}e=F[t+56>>2];if(e>>>0>1431655765|I[a+156>>2]>L(e,3)>>>0){break b}c=F[F[a+4>>2]+32>>2];h=F[c+8>>2];m=F[c+12>>2];b=F[c+20>>2];g=F[c+16>>2];if((m|0)<=(b|0)&g>>>0>=h>>>0|(b|0)>(m|0)){break b}h=G[g+F[c>>2]|0];g=g+1|0;b=g?b:b+1|0;F[c+16>>2]=g;F[c+20>>2]=b;if(!Da(1,t+52|0,c)){break b}n=F[t+52>>2];if(n>>>0>e>>>0|e>>>0>n+((n>>>0)/3|0)>>>0){break b}if(!Da(1,t+48|0,F[F[a+4>>2]+32>>2])){break b}c=F[t+48>>2];if(c>>>0>n>>>0){break b}F[a+28>>2]=F[a+24>>2];g=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=g;if(b){Za(b);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];y=a+216|0;Dd(y);Cd(y,h);if(!_c(F[a+8>>2],e,c+F[a+156>>2]|0)){break b}b=F[a+156>>2];D[t+8|0]=1;Ea(a+120|0,b+c|0,t+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break b}c=a+232|0;F[c+144>>2]=a;b=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];b=F[b>>2]+F[b+16>>2]|0;g=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];g=F[g+8>>2]-F[g+16>>2]|0;M=c,N=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[M+38>>1]=N;F[c>>2]=b;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=g;F[c+12>>2]=0;F[a+372>>2]=h;C=Ja(t+8|0);h=C;m=0;d=Z-16|0;Z=d;b=F[c+4>>2];F[c+40>>2]=F[c>>2];F[c+44>>2]=b;b=F[c+36>>2];F[c+72>>2]=F[c+32>>2];F[c+76>>2]=b;g=F[c+28>>2];b=c- -64|0;F[b>>2]=F[c+24>>2];F[b+4>>2]=g;b=F[c+20>>2];F[c+56>>2]=F[c+16>>2];F[c+60>>2]=b;b=F[c+12>>2];F[c+48>>2]=F[c+8>>2];F[c+52>>2]=b;c:{d:{if(hc(c+40|0,1,d+8|0)){b=F[c+44>>2];F[c>>2]=F[c+40>>2];F[c+4>>2]=b;b=F[c+76>>2];F[c+32>>2]=F[c+72>>2];F[c+36>>2]=b;b=F[c+68>>2];F[c+24>>2]=F[c+64>>2];F[c+28>>2]=b;g=F[c+60>>2];f=g;b=F[c+56>>2];F[c+16>>2]=b;F[c+20>>2]=g;e=F[c+52>>2];g=F[c+48>>2];F[c+8>>2]=g;F[c+12>>2]=e;k=F[d+12>>2];i=e-((b>>>0>g>>>0)+f|0)|0;e=g-b|0;g=F[d+8>>2];if((k|0)==(i|0)&e>>>0>=g>>>0|i>>>0>k>>>0){break d}}break c}e=f+k|0;b=b+g|0;e=b>>>0<g>>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if(!Aa(c+80|0,c)){break c}if(!yd(c)){break c}b=F[c+4>>2];F[h>>2]=F[c>>2];F[h+4>>2]=b;b=F[c+36>>2];F[h+32>>2]=F[c+32>>2];F[h+36>>2]=b;b=F[c+28>>2];F[h+24>>2]=F[c+24>>2];F[h+28>>2]=b;b=F[c+20>>2];F[h+16>>2]=F[c+16>>2];F[h+20>>2]=b;b=F[c+12>>2];F[h+8>>2]=F[c+8>>2];F[h+12>>2]=b;m=1}Z=d+16|0;e:{if(!m){break e}b=0;c=0;g=0;m=0;j=Z-96|0;Z=j;F[j+72>>2]=0;F[j+64>>2]=0;F[j+68>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+56>>2]=1065353216;F[j+32>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;h=a;B=F[a+124>>2];f:{g:{h:{i:{j:{k:{l:{m:{if((n|0)<=0){break m}J=F[h+216>>2]!=F[h+220>>2];z=1;while(1){e=m;m=e+1|0;n:{o:{p:{q:{r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{if(!G[h+308|0]){break B}k=F[h+296>>2];d=F[h+304>>2];a=k+(d>>>3|0)|0;l=F[h+300>>2];if(a>>>0>=l>>>0){break B}f=G[a|0];a=d+1|0;F[h+304>>2]=a;p=f>>>(d&7)&1;if(!p){break B}i=0;f=a>>>3|0;r=k+f|0;C:{if(r>>>0>=l>>>0){d=a;a=0;break C}r=G[r|0];d=d+2|0;F[h+304>>2]=d;f=d>>>3|0;a=r>>>(a&7)&1}f=f+k|0;if(f>>>0<l>>>0){f=G[f|0];F[h+304>>2]=d+1;i=f>>>(d&7)<<1&2}f=-1;i=p|(a|i)<<1;switch(i-1|0){case 6:break y;case 0:break z;case 2:case 4:break A;default:break l}}if((c|0)==(g|0)){f=-1;break l}d=-1;i=F[h+8>>2];z=F[i+24>>2];r=c-4|0;b=F[r>>2];a=-1;D:{if((b|0)==-1){break D}k=b+1|0;k=(k>>>0)%3|0?k:b-2|0;a=-1;if((k|0)==-1){break D}a=F[F[i>>2]+(k<<2)>>2]}f=F[z+(a<<2)>>2];if((f|0)!=-1){d=f+1|0;d=(d>>>0)%3|0?d:f-2|0}if((b|0)==(d|0)){f=-1;break l}if((b|0)!=-1){f=-1;if(F[F[i+12>>2]+(b<<2)>>2]!=-1){break l}}k=F[i+12>>2];if((d|0)!=-1){f=-1;if(F[k+(d<<2)>>2]!=-1){break l}}l=L(e,3);e=l+1|0;F[k+(b<<2)>>2]=e;s=e<<2;F[s+k>>2]=b;p=l+2|0;F[k+(d<<2)>>2]=p;u=p<<2;F[u+k>>2]=d;k=-1;e=-1;E:{if((b|0)==-1){break E}F:{if((b>>>0)%3|0){b=b-1|0;break F}b=b+2|0;e=-1;if((b|0)==-1){break E}}e=F[F[i>>2]+(b<<2)>>2]}b=e;G:{if((d|0)==-1){break G}e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)==-1){break G}k=F[F[i>>2]+(e<<2)>>2]}f=-1;if((a|0)==(b|0)|(a|0)==(k|0)){break l}e=F[i>>2];F[e+(l<<2)>>2]=a;F[e+s>>2]=k;F[e+u>>2]=b;if((b|0)!=-1){F[z+(b<<2)>>2]=p}b=F[h+120>>2]+(a>>>3&536870908)|0;e=F[b>>2];M=b,N=oi(a)&e,F[M>>2]=N;F[r>>2]=l;b=g;break n}if((c|0)==(g|0)){break l}r=c-4|0;b=F[r>>2];a=F[h+8>>2];d=F[a+12>>2];if((b|0)!=-1&F[d+(b<<2)>>2]!=-1){break l}l=(i|0)==5;i=L(e,3);p=(l?2:1)+i|0;s=p<<2;F[s+d>>2]=b;F[d+(b<<2)>>2]=p;Ma(a+24|0,8324);d=F[h+8>>2];k=F[d+24>>2];if(F[d+28>>2]-k>>2>(B|0)){break l}d=F[d>>2];u=d+s|0;f=F[a+28>>2];a=F[a+24>>2];s=(f-a>>2)-1|0;F[u>>2]=s;if((a|0)!=(f|0)){F[k+(s<<2)>>2]=p}f=l?i:i+2|0;l=d+(i+l<<2)|0;H:{if((b|0)==-1){F[d+(f<<2)>>2]=-1;a=-1;break H}I:{J:{K:{if((b>>>0)%3|0){a=b-1|0;break K}a=b+2|0;if((a|0)==-1){break J}}a=F[d+(a<<2)>>2];F[d+(f<<2)>>2]=a;if((a|0)==-1){break I}F[k+(a<<2)>>2]=f;break I}F[d+(f<<2)>>2]=-1}f=b+1|0;b=(f>>>0)%3|0?f:b-2|0;a=-1;if((b|0)==-1){break H}a=F[d+(b<<2)>>2]}F[l>>2]=a;F[r>>2]=i;b=g;break t}if((b|0)==(c|0)){break l}a=c-4|0;k=F[a>>2];F[j+68>>2]=a;l=F[j+44>>2];L:{if(!l){c=a;break L}f=F[j+40>>2];p=ni(l)>>>0>1;d=e&l+2147483647;M:{if(!p){break M}d=e;if(d>>>0<l>>>0){break M}d=(e>>>0)%(l>>>0)|0}i=d;d=F[f+(i<<2)>>2];if(!d){c=a;break L}d=F[d>>2];if(!d){c=a;break L}N:{if(!p){f=l-1|0;while(1){l=F[d+4>>2];O:{if((l|0)!=(e|0)){if((i|0)==(f&l)){break O}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}while(1){f=F[d+4>>2];P:{if((f|0)!=(e|0)){if(f>>>0>=l>>>0){f=(f>>>0)%(l>>>0)|0}if((f|0)==(i|0)){break P}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}if((a|0)!=(q|0)){F[a>>2]=F[d+12>>2];F[j+68>>2]=c;break L}a=q-b|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break x}f=a>>>1|0;f=a>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break j}a=ka(f<<2)}else{a=0}g=a+(g<<2)|0;F[g>>2]=F[d+12>>2];c=g+4|0;if((b|0)!=(q|0)){while(1){g=g-4|0;q=q-4|0;F[g>>2]=F[q>>2];if((b|0)!=(q|0)){continue}break}}q=a+(f<<2)|0;F[j+72>>2]=q;F[j+68>>2]=c;F[j+64>>2]=g;if(b){ja(b)}}if((c|0)==(g|0)){break p}s=c-4|0;b=F[s>>2];if((b|0)==(k|0)){break p}a=(b|0)==-1;f=F[h+8>>2];if(!a&F[F[f+12>>2]+(b<<2)>>2]!=-1){break p}l=F[f+12>>2];if((k|0)!=-1&F[l+(k<<2)>>2]!=-1){break p}p=L(e,3);r=p+2|0;F[l+(b<<2)>>2]=r;e=r<<2;F[e+l>>2]=b;d=p+1|0;F[l+(k<<2)>>2]=d;u=d<<2;F[u+l>>2]=k;if(a){break w}if((b>>>0)%3|0){d=b-1|0;break s}d=b+2|0;if((d|0)!=-1){break s}a=F[f>>2];d=-1;break r}i=F[h+8>>2];Ma(i+24|0,8324);d=F[h+8>>2];a=L(e,3);k=F[i+28>>2];l=F[i+24>>2];p=k-l|0;i=p>>2;r=i-1|0;F[F[d>>2]+(a<<2)>>2]=r;Ma(d+24|0,8324);s=a+1|0;F[F[d>>2]+(s<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;d=F[h+8>>2];Ma(d+24|0,8324);u=a+2|0;F[F[d>>2]+(u<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;A=F[h+8>>2];d=F[A+24>>2];if(F[A+28>>2]-d>>2>(B|0)){break l}Q:{R:{if((k|0)!=(l|0)){F[d+(r<<2)>>2]=a;f=0;if((p|0)==-4){break R}}F[d+(i<<2)>>2]=s;f=i+1|0;if((f|0)==-1){break Q}}F[d+(f<<2)>>2]=u}if((c|0)!=(q|0)){F[c>>2]=a;c=c+4|0;F[j+68>>2]=c;break t}g=c-b|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break v}f=g>>>1|0;d=g>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break j}f=ka(d<<2)}else{f=0}g=f+(i<<2)|0;F[g>>2]=a;q=f+(d<<2)|0;a=g+4|0;if((b|0)!=(c|0)){while(1){g=g-4|0;c=c-4|0;F[g>>2]=F[c>>2];if((b|0)!=(c|0)){continue}break}}F[j+72>>2]=q;F[j+68>>2]=a;F[j+64>>2]=g;if(!b){break u}ja(b);break u}na();v()}d=-1;a=F[f>>2];F[a+(p<<2)>>2]=-1;i=-1;break q}na();v()}c=a;b=g}a=F[h+40>>2];if((a|0)==F[h+36>>2]){break n}d=a-12|0;i=F[d+4>>2];f=n+(e^-1)|0;if(i>>>0>f>>>0){break p}if((f|0)!=(i|0)){break n}i=G[a-4|0];e=F[d>>2];F[h+40>>2]=d;if((e|0)<0){break p}k=c-4|0;a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);d=F[j>>2];S:{if(i&1){e=-1;if((a|0)==-1){break S}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break S}e=-1;if((a|0)==-1){break S}e=a-1|0;if((a>>>0)%3|0){break S}e=a+2|0}F[d+12>>2]=e;d=F[h+40>>2];if((d|0)==F[h+36>>2]){break n}while(1){a=d-12|0;e=F[a+4>>2];if(e>>>0>f>>>0){break p}if((f|0)!=(e|0)){break n}d=G[d-4|0];e=F[a>>2];F[h+40>>2]=a;if((e|0)<0){break p}a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);i=F[j>>2];T:{if(d&1){e=-1;if((a|0)==-1){break T}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break T}e=-1;if((a|0)==-1){break T}e=a-1|0;if((a>>>0)%3|0){break T}e=a+2|0}F[i+12>>2]=e;d=F[h+40>>2];if((d|0)!=F[h+36>>2]){continue}break}break n}a=F[f>>2];d=F[a+(d<<2)>>2]}F[(p<<2)+a>>2]=d;A=b+1|0;b=(A>>>0)%3|0?A:b-2|0;i=-1;if((b|0)==-1){break q}i=F[(b<<2)+a>>2]}F[a+u>>2]=i;U:{if((k|0)==-1){F[a+e>>2]=-1;i=-1;e=-1;break U}V:{W:{X:{if((k>>>0)%3|0){b=k-1|0;break X}b=k+2|0;if((b|0)==-1){break W}}b=F[(b<<2)+a>>2];F[a+e>>2]=b;if((b|0)==-1){break V}F[F[f+24>>2]+(b<<2)>>2]=r;break V}F[a+e>>2]=-1}i=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;e=-1;if((b|0)==-1){break U}i=F[(b<<2)+a>>2];e=b}b=F[f+24>>2];k=b+(i<<2)|0;if((d|0)!=-1){F[b+(d<<2)>>2]=F[k>>2]}b=e;while(1){if((b|0)==-1){break o}F[(b<<2)+a>>2]=d;r=b+1|0;b=(r>>>0)%3|0?r:b-2|0;f=-1;Y:{if((b|0)==-1){break Y}b=F[l+(b<<2)>>2];f=-1;if((b|0)==-1){break Y}f=b+1|0;f=(f>>>0)%3|0?f:b-2|0}b=f;if((e|0)!=(b|0)){continue}break}}f=-1;if(!z){break m}break l}F[k>>2]=-1;Z:{if(J){break Z}if((w|0)!=(x|0)){F[x>>2]=i;x=x+4|0;F[j+28>>2]=x;break Z}a=w-o|0;d=a>>2;b=d+1|0;if(b>>>0>=1073741824){break i}e=a>>>1|0;e=a>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(e){if(e>>>0>=1073741824){break j}a=ka(e<<2)}else{a=0}b=a+(d<<2)|0;F[b>>2]=i;x=b+4|0;if((o|0)!=(w|0)){while(1){b=b-4|0;w=w-4|0;F[b>>2]=F[w>>2];if((o|0)!=(w|0)){continue}break}}w=a+(e<<2)|0;F[j+32>>2]=w;F[j+28>>2]=x;F[j+24>>2]=b;if(o){ja(o)}o=b}F[s>>2]=p;b=g}z=(m|0)<(n|0);if((m|0)!=(n|0)){continue}break}m=n}f=-1;a=F[h+8>>2];if(F[a+28>>2]-F[a+24>>2]>>2>(B|0)){break l}if((c|0)!=(g|0)){l=h+72|0;e=h+60|0;w=h+312|0;while(1){c=c-4|0;i=F[c>>2];F[j+68>>2]=c;_:{if(wa(w)){q=F[h+8>>2];k=F[q>>2];if(((F[q+4>>2]-k>>2>>>0)/3|0)<=(m|0)){f=-1;break l}a=-1;f=-1;b=-1;x=F[q+24>>2];g=-1;$:{if((i|0)==-1){break $}n=i+1|0;n=(n>>>0)%3|0?n:i-2|0;g=-1;if((n|0)==-1){break $}g=F[k+(n<<2)>>2]}n=g;o=F[x+(n<<2)>>2];aa:{if((o|0)==-1){d=1;g=-1;break aa}d=1;p=o+1|0;o=(p>>>0)%3|0?p:o-2|0;g=-1;if((o|0)==-1){break aa}d=0;a=o;g=a+1|0;g=(g>>>0)%3|0?g:a-2|0;if((g|0)!=-1){g=F[k+(g<<2)>>2]}else{g=-1}}o=F[(g<<2)+x>>2];if((o|0)!=-1){b=o+1|0;b=(b>>>0)%3|0?b:o-2|0}if((a|0)==(i|0)|(b|0)==(i|0)|((i|0)!=-1&F[F[q+12>>2]+(i<<2)>>2]!=-1|(a|0)==(b|0))){break l}if(!d&F[F[q+12>>2]+(a<<2)>>2]!=-1){break l}d=-1;o=F[q+12>>2];q=-1;ba:{if((b|0)==-1){break ba}if(F[o+(b<<2)>>2]!=-1){break l}f=b+1|0;f=(f>>>0)%3|0?f:b-2|0;q=-1;if((f|0)==-1){break ba}q=F[k+(f<<2)>>2]}f=L(m,3);F[j>>2]=f;F[o+(f<<2)>>2]=i;F[o+(i<<2)>>2]=f;f=F[j>>2]+1|0;F[o+(f<<2)>>2]=a;F[o+(a<<2)>>2]=f;a=F[j>>2]+2|0;F[o+(a<<2)>>2]=b;F[o+(b<<2)>>2]=a;a=F[j>>2];F[k+(a<<2)>>2]=g;b=a+1|0;f=k+(b<<2)|0;F[f>>2]=q;o=a+2|0;i=k+(o<<2)|0;F[i>>2]=n;a=F[h+120>>2];g=b?g:-1;n=a+(g>>>3&536870908)|0;k=F[n>>2];M=n,N=oi(g)&k,F[M>>2]=N;d=(b|0)!=-1?F[f>>2]:d;b=a+(d>>>3&536870908)|0;g=F[b>>2];M=b,N=oi(d)&g,F[M>>2]=N;b=-1;b=(o|0)!=-1?F[i>>2]:b;a=a+(b>>>3&536870908)|0;g=F[a>>2];M=a,N=oi(b)&g,F[M>>2]=N;D[j+88|0]=1;wd(e,j+88|0);Ma(l,j);m=m+1|0;g=F[j+64>>2];break _}b=F[h+64>>2];a=F[h+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break h}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}$a(e,a);b=F[h+64>>2]}F[h+64>>2]=b+1;a=F[h+60>>2]+(b>>>3&536870908)|0;d=F[a>>2];M=a,N=oi(b)&d,F[M>>2]=N;b=F[h+76>>2];if((b|0)!=F[h+80>>2]){F[b>>2]=i;F[h+76>>2]=b+4;break _}f=F[l>>2];a=b-f|0;o=a>>2;d=o+1|0;if(d>>>0>=1073741824){break g}n=a>>>1|0;n=a>>>0>=2147483644?1073741823:d>>>0<n>>>0?n:d;if(n){if(n>>>0>=1073741824){break j}a=ka(n<<2)}else{a=0}d=a+(o<<2)|0;F[d>>2]=i;o=d+4|0;if((b|0)!=(f|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(f|0)){continue}break}}F[h+80>>2]=a+(n<<2);F[h+76>>2]=o;F[h+72>>2]=d;if(!f){break _}ja(f)}if((c|0)!=(g|0)){continue}break}a=F[h+8>>2]}f=-1;if(((F[a+4>>2]-F[a>>2]>>2>>>0)/3|0)!=(m|0)){break l}f=F[a+28>>2]-F[a+24>>2]>>2;c=F[j+24>>2];n=F[j+28>>2];if((c|0)==(n|0)){break k}while(1){g=F[c>>2];e=F[a+24>>2];b=f-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){while(1){b=f-2|0;f=f-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){continue}break}}if(b>>>0>=g>>>0){F[j>>2]=a;d=F[d>>2];D[j+12|0]=1;F[j+8>>2]=d;F[j+4>>2]=d;if((d|0)!=-1){while(1){a=F[F[h+8>>2]>>2]+(d<<2)|0;if(F[a>>2]!=(b|0)){f=-1;break l}F[a>>2]=g;nc(j);d=F[j+8>>2];if((d|0)!=-1){continue}break}a=F[h+8>>2]}m=F[a+24>>2];e=m+(b<<2)|0;if((g|0)!=-1){F[m+(g<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<<g;m=F[h+120>>2];g=m+(g>>>3&536870908)|0;d=1<<b;m=m+(b>>>3&536870908)|0;if(d&F[m>>2]){b=e|F[g>>2]}else{b=F[g>>2]&(e^-1)}F[g>>2]=b;F[m>>2]=F[m>>2]&(d^-1);f=f-1|0}c=c+4|0;if((n|0)!=(c|0)){continue}break}}c=F[j+24>>2]}if(c){ja(c)}a=F[j+48>>2];if(a){while(1){c=F[a>>2];ja(a);a=c;if(a){continue}break}}a=F[j+40>>2];F[j+40>>2]=0;if(a){ja(a)}a=F[j+64>>2];if(a){F[j+68>>2]=a;ja(a)}Z=j+96|0;a=f;break f}oa();v()}na();v()}na();v()}na();v()}b=a;if((a|0)==-1){break e}a=C;c=F[a+16>>2];g=c+F[a>>2]|0;c=F[a+8>>2]-c|0;a=F[F[h+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=g;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;ca:{if(F[h+216>>2]==F[h+220>>2]){break ca}a=F[h+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}c=0;while(1){if(Ad(h,c)){c=c+3|0;a=F[h+8>>2];if(c>>>0<F[a+4>>2]-F[a>>2]>>2>>>0){continue}break ca}break}break e}if(G[h+308|0]){D[h+308|0]=0;g=F[h+292>>2];a=0;e=F[h+304>>2]+7|0;a=e>>>0<7?1:a;c=a>>>3|0;m=a<<29|e>>>3;a=m+F[h+288>>2]|0;e=c+g|0;F[h+288>>2]=a;F[h+292>>2]=a>>>0<m>>>0?e+1|0:e}c=F[h+216>>2];if((c|0)!=F[h+220>>2]){a=0;while(1){e=L(a,144);Zc((e+c|0)+4|0,F[h+8>>2]);g=F[y>>2];m=g+e|0;c=F[m+132>>2];m=F[m+136>>2];if((c|0)!=(m|0)){while(1){Xc((e+F[y>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((m|0)!=(c|0)){continue}break}g=F[y>>2]}if(!Yc((g+e|0)+4|0)){break e}a=a+1|0;c=F[h+216>>2];if(a>>>0<(F[h+220>>2]-c|0)/144>>>0){continue}break}}a=F[h+8>>2];Hb(h+184|0,F[a+28>>2]-F[a+24>>2]>>2);g=F[h+216>>2];if((g|0)!=F[h+220>>2]){c=0;while(1){a=L(c,144)+g|0;g=F[a+60>>2]-F[a+56>>2]>>2;e=a+104|0;a=F[h+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(e,(a|0)<(g|0)?g:a);c=c+1|0;g=F[h+216>>2];if(c>>>0<(F[h+220>>2]-g|0)/144>>>0){continue}break}}K=zd(h,b)}}Z=t- -64|0;return K|0}function Cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0;B=c;c=0;m=Z-96|0;Z=m;l=m+16|0;ma(l,0,76);F[m+92>>2]=-1;F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;r=Z-16|0;Z=r;F[l+68>>2]=0;F[l+72>>2]=0;F[l>>2]=b;s=Z-16|0;Z=s;u=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[u+100>>2];e=F[u+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=ka(f);F[s>>2]=d;F[s+8>>2]=d+L(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ma(n,0,d);F[s+4>>2]=d+f;if(G[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=L(a,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;d=L(a|1,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=L(a,12);a=b+e|0;c=F[a+4>>2];e=F[a>>2];b=b+f|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=e;F[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=F[c+68>>2];c=0;while(1){d=L(c,12);b=d+e|0;g=F[a+(F[b>>2]<<2)>>2];i=F[a+(F[b+4>>2]<<2)>>2];d=d+f|0;F[d+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[d+4>>2]=i;F[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;H=Z-16|0;Z=H;h=ka(88);Zb(h);C=Z-16|0;Z=C;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){ja(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){ja(a)}g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;a=L(c,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){nd(h,a-e|0);g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=F[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=L(d,12);j=e+a|0;f=b+e|0;F[j>>2]=F[f>>2];F[a+(e|4)>>2]=F[f+4>>2];F[j+8>>2]=F[f+8>>2];f=L(d|1,12);e=f+a|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=L(d,12);a=c+a|0;b=b+c|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[C+12>>2]=-1;a=0;e=0;g=0;f=Z-32|0;Z=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;n=F[h+12>>2];b=F[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){ab(h+12|0,i-b|0,10228);c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}F[h+16>>2]=n+(i<<2)}F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=ka(d);F[f+20>>2]=e;F[f+16>>2]=e;F[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=F[(a<<2)+j>>2];b=F[f+20>>2]-e>>2;q:{if(i>>>0<b>>>0){break q}F[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Fa(f+16|0,d-b|0,f);j=F[h>>2];c=F[h+4>>2];e=F[f+16>>2];break q}if(b>>>0<=d>>>0){break q}F[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;F[b>>2]=F[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0<i>>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=ka(d<<1);ma(d,255,i<<3)}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=F[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=ka(a);F[f>>2]=q;F[f+8>>2]=(t<<2)+q;b=ma(q,0,a);F[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;F[c+b>>2]=a;x=c|4;a=F[c+e>>2]+a|0;F[x+b>>2]=a;y=c|8;a=a+F[e+x>>2]|0;F[y+b>>2]=a;c=c|12;a=a+F[e+y>>2]|0;F[c+b>>2]=a;a=a+F[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;F[c+b>>2]=a;g=g+1|0;a=F[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=F[h+40>>2];y=F[h+12>>2];n=0;while(1){I=n<<2;a=I+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=F[(b<<2)+j>>2]}b=F[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=F[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;F[h+40>>2]=x;c=n+3|0;break t}p=F[a-4>>2]}a=p<<2;A=F[a+e>>2];v:{w:{if((A|0)<=0){break w}a=F[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=F[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=F[o+4>>2];if((o|0)!=-1){z=F[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=F[J>>2];K=(b<<3)+d|0;F[K+4>>2]=F[J+4>>2];F[K>>2]=z;if((z|0)!=-1){continue}}break}F[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}F[y+I>>2]=o;F[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=F[a+e>>2];if((k|0)<=0){break v}a=F[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0<i>>>0){continue}break}break l}break i}na();v()}F[w>>2]=t;if(q){ja(q)}if(d){ja(d)}a=F[f+16>>2];if(!a){break j}F[f+20>>2]=a;ja(a)}Z=f+32|0;x=(w|0)!=0;if(x){k=Z-32|0;Z=k;a=F[h>>2];g=F[h+4>>2];F[k+24>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[k+24>>2]=b;F[k+20>>2]=0;F[k+16>>2]=c;Yb(k+16|0,a);g=F[h>>2];c=F[h+4>>2]}F[k+8>>2]=0;F[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=F[k+16>>2];A:{if(F[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=F[k>>2];F[k+4>>2]=c;e=F[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=F[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=F[k+16>>2]+(j>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<<j;a=j+1|0;f=(a>>>0)%3|0?a:j-2|0;g=F[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=F[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=F[(f<<2)+g>>2];q=F[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=F[a>>2]){break G}p=F[a+4>>2];t=F[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==F[a>>2]){t=-1;e=-1;p=F[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=F[(b<<2)+g>>2];H:{if(F[k+8>>2]!=(c|0)){F[c>>2]=b;F[c+4>>2]=f;c=c+8|0;F[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0<g>>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=ka(g<<3)}else{e=0}a=e+(p<<3)|0;F[a>>2]=b;F[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=F[c+4>>2];a=a-8|0;F[a>>2]=F[c>>2];F[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=F[k>>2]}F[k+8>>2]=e+(g<<3);F[k+4>>2]=b;F[k>>2]=a;if(c){ja(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=F[h>>2];break A}oa();v()}c=F[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){F[q+(t<<2)>>2]=-1}if((c|0)!=-1){F[q+(c<<2)>>2]=-1}F[q+(b<<2)>>2]=-1;F[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=F[h+4>>2];if(i>>>0<c-g>>2>>>0){continue}break}if(o){continue}}break}a=F[k>>2];if(a){ja(a)}a=F[k+16>>2];if(a){ja(a)}Z=k+32|0;n=0;g=Z-32|0;Z=g;e=F[C+12>>2];F[h+36>>2]=e;p=h+24|0;b=F[h+24>>2];a=F[h+28>>2]-b>>2;K:{L:{if(a>>>0<e>>>0){ab(p,e-a|0,10228);F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;break L}if(a>>>0>e>>>0){F[h+28>>2]=b+(e<<2)}F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=ka(a<<2);F[g+24>>2]=a;F[g+20>>2]=0;F[g+16>>2]=b;Yb(g+16|0,e)}a=F[h>>2];b=F[h+4>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[g+8>>2]=b;F[g+4>>2]=0;F[g>>2]=c;Yb(g,a);b=F[h>>2];a=F[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=L(n,3);d=(q<<2)+b|0;f=F[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=F[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=F[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=F[g>>2];while(1){f=k+q|0;if(!(F[(f>>>3&536870908)+i>>2]>>>f&1)){a=F[(f<<2)+b>>2];c=1<<a;d=F[g+16>>2];b=a>>>5|0;i=F[d+(b<<2)>>2];t=c&i;if(t){c=F[h+28>>2];P:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break P}i=F[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+32>>2]=b+(j<<2);F[h+28>>2]=o;F[h+24>>2]=d;if(!i){break P}ja(i)}c=F[h+52>>2];Q:{if((c|0)!=F[h+56>>2]){F[c>>2]=a;F[h+52>>2]=c+4;break Q}i=F[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0<j>>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+56>>2]=b+(j<<2);F[h+52>>2]=a;F[h+48>>2]=d;if(!i){break Q}ja(i)}c=F[g+20>>2];a=F[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}$a(b,a);c=F[g+20>>2]}F[g+20>>2]=c+1;d=F[g+16>>2];a=d+(c>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(c)&b,F[N>>2]=O;c=1<<e;b=e>>>5|0;i=F[(b<<2)+d>>2];a=e;e=a+1|0}F[(b<<2)+d>>2]=c|i;o=F[h+24>>2]+(a<<2)|0;j=F[h+12>>2];b=F[h>>2];i=F[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<<c;F[o>>2]=c;if(t){F[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=F[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=F[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=F[h+12>>2];b=F[h>>2];while(1){d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<<c;if(t){F[(c<<2)+b>>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=F[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=F[h>>2];a=F[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}oa();v()}c=0;F[h+44>>2]=0;a=F[g+16>>2];b=F[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(F[d>>2]>>>c&1)){i=i+1|0;F[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=F[g>>2];if(b){ja(b);a=F[g+16>>2]}if(a){ja(a)}Z=g+32|0}Z=C+16|0;if(!x){F[H+8>>2]=0;Za(h);h=0}Z=H+16|0;a=h;break h}na();v()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;ja(b)}Z=s+16|0;break b}na();v()}c=F[l+4>>2];b=a;F[l+4>>2]=a;if(c){Za(c);b=F[l+4>>2]}X:{if(!b){break X}a=F[u+100>>2];c=F[u+96>>2];D[r+12|0]=0;Ea(l+56|0,(a-c|0)/12|0,r+12|0);a=F[u+100>>2];c=F[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(F[F[l+56>>2]+(E>>>3&536870908)>>2]>>>E&1)){a=L(E,3);Vb(l,0,a);c=F[l+8>>2];e=F[l+12>>2];Vb(l,1,a+1|0);f=F[l+20>>2];d=F[l+24>>2];Vb(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=F[l+36>>2]-F[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(F[l+68>>2]<=0){break Y}F[r+12>>2]=F[l+76>>2];F[r+8>>2]=m;Qa(r+8|0,r+12|0);a=F[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=F[(F[F[l>>2]+96>>2]+L(e,12)|0)+(a-L(e,3)<<2)>>2]}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);e=F[l+72>>2];F[l+72>>2]=e+2;if(!(e&1)){break Y}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);F[l+72>>2]=F[l+72>>2]+1}d=0;e=Z-16|0;Z=e;F[l+68>>2]=F[l+68>>2]+1;a=L(c,12)+l|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=F[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=F[l+56>>2]+(g>>>3&536870908)|0;F[i>>2]=F[i>>2]|1<<g;F[l+72>>2]=F[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){F[e+12>>2]=F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[e+8>>2]=m;Qa(e+8|0,e+12|0);break ca}F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=F[(F[F[l>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}else{f=-1}F[e+12>>2]=f;F[e+8>>2]=m;Qa(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=F[(F[F[l>>2]+96>>2]+L(c,12)|0)+(f-L(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((L(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=F[F[F[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}Z=e+16|0;c=F[u+96>>2];a=F[u+100>>2]}E=E+1|0;if(E>>>0<(a-c|0)/12>>>0){continue}break}}Z=r+16|0;da:{if(b){a=F[B>>2];if(a){F[B+4>>2]=a;ja(a)}F[B>>2]=F[m>>2];F[B+4>>2]=F[m+4>>2];F[B+8>>2]=F[m+8>>2];M=F[m+84>>2];break da}a=F[m>>2];if(!a){break da}F[m+4>>2]=a;ja(a)}a=F[m+72>>2];if(a){ja(a)}a=F[m+48>>2];if(a){F[m+52>>2]=a;ja(a)}a=F[m+36>>2];if(a){F[m+40>>2]=a;ja(a)}a=F[m+24>>2];if(a){F[m+28>>2]=a;ja(a)}a=F[m+20>>2];F[m+20>>2]=0;if(a){Za(a)}Z=m+96|0;return M|0}function sf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=F[i+80>>2];h=G[c+24|0];c:{if((L(j,h)|0)!=(e|0)){break c}d=F[c+28>>2]!=1;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break c}if(h){a=ka(h);ma(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break d}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!Cb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break d}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}ja(a)}break a;case 2:n=G[c+24|0];l=n<<1;j=F[i+80>>2];e:{if((L(l,j)|0)!=(e|0)){break e}i=F[c+28>>2]!=3;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=ka(l);ma(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}ja(e)}b=a;break a;case 4:l=G[c+24|0];o=l<<2;j=F[i+80>>2];h:{if((L(o,j)|0)!=(e|0)){break h}i=F[c+28>>2]!=5;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=ka(o);ma(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}ja(e)}break a;case 1:j=F[i+80>>2];h=G[c+24|0];k:{if((L(j,h)|0)!=(e|0)){break k}d=F[c+28>>2]!=2;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break k}if(h){a=ka(h);ma(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break l}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!Bb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break l}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}ja(a)}break a;case 3:n=G[c+24|0];l=n<<1;j=F[i+80>>2];m:{if((L(l,j)|0)!=(e|0)){break m}i=F[c+28>>2]!=4;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=ka(l);ma(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}ja(e)}b=a;break a;case 5:l=G[c+24|0];o=l<<2;j=F[i+80>>2];p:{if((L(o,j)|0)!=(e|0)){break p}i=F[c+28>>2]!=6;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=ka(o);ma(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}ja(e)}break a;case 8:p=G[c+24|0];q=p<<2;k=F[i+80>>2];s:{if((L(q,k)|0)!=(e|0)){break s}i=F[c+28>>2];t:{if(!p){break t}a=ka(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){F[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){F[d+24>>2]=-1073741824;F[d+28>>2]=-1073741824;F[d+16>>2]=-1073741824;F[d+20>>2]=-1073741824;F[d+8>>2]=-1073741824;F[d+12>>2]=-1073741824;F[d>>2]=-1073741824;F[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=F[c+68>>2];l=F[c>>2];i=F[c+48>>2];s=G[c+84|0];m=F[c+44>>2];c=F[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=F[l>>2];b=ki(c,m,s?d:F[r+(d<<2)>>2],0)+i|0;la(h,la(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=F[l>>2];g=d<<2;j=ki(c,m,F[g+r>>2],0)+i|0;h=la(a,h+j|0,o);j=F[l>>2];g=ki(c,m,F[r+(g|4)>>2],0)+i|0;la(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=F[l>>2];c=ki(c,m,F[r+(d<<2)>>2],0)+i|0;la(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=F[l>>2];e=ki(g,h,c,m)+i|0;d=la(a,d+e|0,o);e=F[l>>2];p=ki(c,m,g|1,h)+i|0;la(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=F[l>>2];c=ki(g,h,c,m)+i|0;la(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}la((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}ja(a)}a=b;break;default:break b}}b=a}return b|0}function Pd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=Z-80|0;Z=h;e=F[c+36>>2];F[h+72>>2]=F[c+32>>2];F[h+76>>2]=e;f=F[c+28>>2];e=h- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=f;e=F[c+20>>2];F[h+56>>2]=F[c+16>>2];F[h+60>>2]=e;e=F[c+12>>2];F[h+48>>2]=F[c+8>>2];F[h+52>>2]=e;e=F[c+4>>2];F[h+40>>2]=F[c>>2];F[h+44>>2]=e;jc(a,h+40|0,h+24|0);a:{if(F[a>>2]){break a}if(D[a+15|0]<0){ja(F[a+4>>2])}if(G[h+31|0]!=1){b=ka(32);D[b+20|0]=0;c=G[1446]|G[1447]<<8|(G[1448]<<16|G[1449]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1442]|G[1443]<<8|(G[1444]<<16|G[1445]<<24);d=G[1438]|G[1439]<<8|(G[1440]<<16|G[1441]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1434]|G[1435]<<8|(G[1436]<<16|G[1437]<<24);d=G[1430]|G[1431]<<8|(G[1432]<<16|G[1433]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,20);ja(b);break a}j=Z-16|0;Z=j;b:{c:{switch(G[h+32|0]){case 0:e=Kd(ka(48));F[e>>2]=9864;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;case 1:e=Kd(ka(52));F[e+48>>2]=0;F[e>>2]=8176;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;default:break c}}f=ka(32);D[f+28|0]=0;e=G[1520]|G[1521]<<8|(G[1522]<<16|G[1523]<<24);D[f+24|0]=e;D[f+25|0]=e>>>8;D[f+26|0]=e>>>16;D[f+27|0]=e>>>24;e=G[1516]|G[1517]<<8|(G[1518]<<16|G[1519]<<24);g=G[1512]|G[1513]<<8|(G[1514]<<16|G[1515]<<24);D[f+16|0]=g;D[f+17|0]=g>>>8;D[f+18|0]=g>>>16;D[f+19|0]=g>>>24;D[f+20|0]=e;D[f+21|0]=e>>>8;D[f+22|0]=e>>>16;D[f+23|0]=e>>>24;e=G[1508]|G[1509]<<8|(G[1510]<<16|G[1511]<<24);g=G[1504]|G[1505]<<8|(G[1506]<<16|G[1507]<<24);D[f+8|0]=g;D[f+9|0]=g>>>8;D[f+10|0]=g>>>16;D[f+11|0]=g>>>24;D[f+12|0]=e;D[f+13|0]=e>>>8;D[f+14|0]=e>>>16;D[f+15|0]=e>>>24;e=G[1500]|G[1501]<<8|(G[1502]<<16|G[1503]<<24);g=G[1496]|G[1497]<<8|(G[1498]<<16|G[1499]<<24);D[f|0]=g;D[f+1|0]=g>>>8;D[f+2|0]=g>>>16;D[f+3|0]=g>>>24;D[f+4|0]=e;D[f+5|0]=e>>>8;D[f+6|0]=e>>>16;D[f+7|0]=e>>>24;F[j>>2]=-1;e=j|4;ra(e,f,28);k=D[j+15|0];F[h>>2]=F[j>>2];g=h+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[g>>2]=F[e>>2];F[g+4>>2]=k;F[g+8>>2]=F[e+8>>2];F[h+16>>2]=0;break d}ra(g,F[j+4>>2],F[j+8>>2]);e=D[j+15|0];F[h+16>>2]=0;if((e|0)>=0){break d}ja(F[j+4>>2])}ja(f)}Z=j+16|0;e=F[h>>2];e:{if(e){F[a>>2]=e;a=a+4|0;if(D[h+15|0]>=0){b=h|4;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break e}ra(a,F[h+4>>2],F[h+8>>2]);break e}e=F[h+16>>2];F[h+16>>2]=0;F[e+44>>2]=d;f=Z-32|0;Z=f;F[e+32>>2]=c;F[e+40>>2]=b;F[e+4>>2]=d;jc(a,c,f+16|0);f:{if(F[a>>2]){break f}if(D[a+15|0]<0){ja(F[a+4>>2])}b=G[f+23|0];if(($[F[F[e>>2]+8>>2]](e)|0)!=(b|0)){b=ka(64);D[b+50|0]=0;c=G[1304]|G[1305]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1300]|G[1301]<<8|(G[1302]<<16|G[1303]<<24);d=G[1296]|G[1297]<<8|(G[1298]<<16|G[1299]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1292]|G[1293]<<8|(G[1294]<<16|G[1295]<<24);d=G[1288]|G[1289]<<8|(G[1290]<<16|G[1291]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1284]|G[1285]<<8|(G[1286]<<16|G[1287]<<24);d=G[1280]|G[1281]<<8|(G[1282]<<16|G[1283]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1276]|G[1277]<<8|(G[1278]<<16|G[1279]<<24);d=G[1272]|G[1273]<<8|(G[1274]<<16|G[1275]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1268]|G[1269]<<8|(G[1270]<<16|G[1271]<<24);d=G[1264]|G[1265]<<8|(G[1266]<<16|G[1267]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1260]|G[1261]<<8|(G[1262]<<16|G[1263]<<24);d=G[1256]|G[1257]<<8|(G[1258]<<16|G[1259]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,50);ja(b);break f}c=G[f+21|0];D[e+36|0]=c;d=G[f+22|0];D[e+37|0]=d;if((c|0)!=2){b=ka(32);D[b+26|0]=0;c=G[1427]|G[1428]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);d=G[1419]|G[1420]<<8|(G[1421]<<16|G[1422]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1415]|G[1416]<<8|(G[1417]<<16|G[1418]<<24);d=G[1411]|G[1412]<<8|(G[1413]<<16|G[1414]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1407]|G[1408]<<8|(G[1409]<<16|G[1410]<<24);d=G[1403]|G[1404]<<8|(G[1405]<<16|G[1406]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}b=b?2:3;if((b|0)!=(d|0)){b=ka(32);D[b+26|0]=0;c=G[1400]|G[1401]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1396]|G[1397]<<8|(G[1398]<<16|G[1399]<<24);d=G[1392]|G[1393]<<8|(G[1394]<<16|G[1395]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1388]|G[1389]<<8|(G[1390]<<16|G[1391]<<24);d=G[1384]|G[1385]<<8|(G[1386]<<16|G[1387]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}E[F[e+32>>2]+38>>1]=b|512;g:{if(E[f+26>>1]>=0){break g}j=Z-16|0;Z=j;d=ka(36);b=d;F[b+4>>2]=0;F[b+8>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;b=b+16|0;F[b>>2]=0;F[b+4>>2]=0;F[d>>2]=d+4;F[d+32>>2]=0;F[d+12>>2]=b;F[j>>2]=0;c=F[e+32>>2];k=Z-16|0;Z=k;b=0;h:{if(!d){break h}F[j>>2]=c;F[k+12>>2]=0;b=0;if(!fb(1,k+12|0,c)){break h}n=F[k+12>>2];if(n){while(1){i:{if(fb(1,k+8|0,F[j>>2])){b=ka(28);F[b+4>>2]=0;F[b+8>>2]=0;c=b+16|0;F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=b+4;F[b+12>>2]=c;F[b+24>>2]=F[k+8>>2];if(Vc(j,b)){break i}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}b=0;break h}g=Z-16|0;Z=g;F[g+8>>2]=b;j:{if(!b){break j}c=F[d+28>>2];k:{if(c>>>0<I[d+32>>2]){F[g+8>>2]=0;F[c>>2]=b;F[d+28>>2]=c+4;break k}c=0;l:{m:{n:{i=F[d+24>>2];m=F[d+28>>2]-i>>2;b=m+1|0;if(b>>>0<1073741824){i=F[d+32>>2]-i|0;l=i>>>1|0;i=i>>>0>=2147483644?1073741823:b>>>0<l>>>0?l:b;if(i){if(i>>>0>=1073741824){break n}c=ka(i<<2)}l=F[g+8>>2];F[g+8>>2]=0;b=(m<<2)+c|0;F[b>>2]=l;i=(i<<2)+c|0;m=b+4|0;c=F[d+28>>2];l=F[d+24>>2];if((c|0)==(l|0)){break m}while(1){c=c-4|0;p=F[c>>2];F[c>>2]=0;b=b-4|0;F[b>>2]=p;if((c|0)!=(l|0)){continue}break}F[d+32>>2]=i;i=F[d+28>>2];F[d+28>>2]=m;c=F[d+24>>2];F[d+24>>2]=b;if((c|0)==(i|0)){break l}while(1){i=i-4|0;b=F[i>>2];F[i>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(i|0)){continue}break}break l}na();v()}oa();v()}F[d+32>>2]=i;F[d+28>>2]=m;F[d+24>>2]=b}if(c){ja(c)}}b=F[g+8>>2];F[g+8>>2]=0;if(!b){break j}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}Z=g+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}b=Vc(j,d)}Z=k+16|0;o:{if(b){c=F[e+4>>2];b=F[c+4>>2];F[c+4>>2]=d;if(b){ic(b)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break o}b=ka(32);D[b+26|0]=0;c=G[1549]|G[1550]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1545]|G[1546]<<8|(G[1547]<<16|G[1548]<<24);g=G[1541]|G[1542]<<8|(G[1543]<<16|G[1544]<<24);D[b+16|0]=g;D[b+17|0]=g>>>8;D[b+18|0]=g>>>16;D[b+19|0]=g>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1537]|G[1538]<<8|(G[1539]<<16|G[1540]<<24);g=G[1533]|G[1534]<<8|(G[1535]<<16|G[1536]<<24);D[b+8|0]=g;D[b+9|0]=g>>>8;D[b+10|0]=g>>>16;D[b+11|0]=g>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1529]|G[1530]<<8|(G[1531]<<16|G[1532]<<24);g=G[1525]|G[1526]<<8|(G[1527]<<16|G[1528]<<24);D[b|0]=g;D[b+1|0]=g>>>8;D[b+2|0]=g>>>16;D[b+3|0]=g>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b);F[j+8>>2]=0;ic(d)}Z=j+16|0;if(F[a>>2]){break f}if(D[a+15|0]>=0){break g}ja(F[a+4>>2])}if(!($[F[F[e>>2]+12>>2]](e)|0)){b=ka(48);D[b+33|0]=0;D[b+32|0]=G[1374];c=G[1370]|G[1371]<<8|(G[1372]<<16|G[1373]<<24);d=G[1366]|G[1367]<<8|(G[1368]<<16|G[1369]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1362]|G[1363]<<8|(G[1364]<<16|G[1365]<<24);d=G[1358]|G[1359]<<8|(G[1360]<<16|G[1361]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1354]|G[1355]<<8|(G[1356]<<16|G[1357]<<24);d=G[1350]|G[1351]<<8|(G[1352]<<16|G[1353]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1346]|G[1347]<<8|(G[1348]<<16|G[1349]<<24);d=G[1342]|G[1343]<<8|(G[1344]<<16|G[1345]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,33);ja(b);break f}if(!($[F[F[e>>2]+20>>2]](e)|0)){b=Eb(f,1552);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}if(!($[F[F[e>>2]+24>>2]](e)|0)){b=Eb(f,1307);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}Z=f+32|0;if(!F[a>>2]){if(D[a+15|0]<0){ja(F[a+4>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}$[F[F[e>>2]+4>>2]](e)}a=F[h+16>>2];F[h+16>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if(D[h+15|0]>=0){break a}ja(F[h+4>>2])}Z=h+80|0}function Ub(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Z-16|0;Z=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=F[2941];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+11804|0;d=F[a+11812>>2];a=F[d+8>>2];j:{if((b|0)==(a|0)){m=11764,n=oi(c)&g,F[m>>2]=n;break j}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[2943];if(k>>>0>=h>>>0){break i}if(b){a=2<<c;a=(0-a|a)&b<<c;d=ji(0-a&a);a=d<<3;b=a+11804|0;e=F[a+11812>>2];a=F[e+8>>2];k:{if((b|0)==(a|0)){g=oi(d)&g;F[2941]=g;break k}F[a+12>>2]=b;F[b+8>>2]=a}F[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+e>>2]=d;if(k){b=(k&-8)+11804|0;f=F[2946];a=1<<(k>>>3);l:{if(!(a&g)){F[2941]=a|g;a=b;break l}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=e+8|0;F[2946]=c;F[2943]=d;break a}j=F[2942];if(!j){break i}c=F[(ji(0-j&j)<<2)+12068>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break m}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0<f>>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=F[2942];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=O(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=F[(g<<2)+12068>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(F[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<<g;a=(0-a|a)&j;if(!a){break i}a=F[(ji(a&0-a)<<2)+12068>>2]}if(!a){break o}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0<f>>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[2943]-h>>>0<=f>>>0){break i}g=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[e>>2]=0;break c}a=F[2943];if(a>>>0>=h>>>0){d=F[2946];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;F[c+4>>2]=b|1;F[a+d>>2]=b;F[d+4>>2]=h|3;break s}F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;c=0;b=0}F[2943]=b;F[2946]=c;a=d+8|0;break a}i=F[2944];if(i>>>0>h>>>0){b=i-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[3059]){c=F[3061]}else{F[3062]=-1;F[3063]=-1;F[3060]=4096;F[3061]=4096;F[3059]=l+12&-16^1431655768;F[3064]=0;F[3052]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=F[3051];if(d){c=F[3049];g=c+b|0;if(d>>>0<g>>>0|c>>>0>=g>>>0){break a}}t:{if(!(G[12208]&4)){u:{v:{w:{x:{d=F[2947];if(d){a=12212;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0<c+F[a+4>>2]>>>0){break x}a=F[a+8>>2];if(a){continue}break}}c=eb(0);if((c|0)==-1){break u}g=b;d=F[3060];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=F[3051];if(d){a=F[3049];f=a+g|0;if(d>>>0<f>>>0|a>>>0>=f>>>0){break u}}a=eb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=eb(g);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=F[3061];c=c+(j-g|0)&0-c;if((eb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}F[3052]=F[3052]|4}c=eb(b);a=eb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=F[3049]+g|0;F[3049]=a;if(a>>>0>I[3050]){F[3050]=a}y:{e=F[2947];if(e){a=12212;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break y}a=F[a+8>>2];if(a){continue}break}break f}a=F[2945];if(!(a>>>0<=c>>>0?a:0)){F[2945]=c}a=0;F[3054]=g;F[3053]=c;F[2949]=-1;F[2950]=F[3059];F[3056]=0;while(1){d=a<<3;b=d+11804|0;F[d+11812>>2]=b;F[d+11816>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];break e}if(G[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}F[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;F[2947]=c;b=F[2944]+g|0;a=b-a|0;F[2944]=a;F[c+4>>2]=a|1;F[(b+e|0)+4>>2]=40;F[2948]=F[3063];break e}d=0;break b}c=0;break c}if(I[2945]>c>>>0){F[2945]=c}b=c+g|0;a=12212;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break E}break}if(!(G[a+12|0]&8)){break D}}a=12212;while(1){b=F[a>>2];if(b>>>0<=e>>>0){f=b+F[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){F[2947]=i;a=F[2944]+a|0;F[2944]=a;F[i+4>>2]=a|1;break A}if(F[2946]==(g|0)){F[2946]=i;a=F[2943]+a|0;F[2943]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break A}f=F[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=F[g+8>>2];b=f>>>3|0;c=F[g+12>>2];if((c|0)==(d|0)){m=11764,n=F[2941]&oi(b),F[m>>2]=n;break F}F[d+12>>2]=c;F[c+8>>2]=d;break F}h=F[g+24>>2];c=F[g+12>>2];G:{if((g|0)!=(c|0)){b=F[g+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break G}H:{f=g+20|0;b=F[f>>2];if(b){break H}f=g+16|0;b=F[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break F}d=F[g+28>>2];b=(d<<2)+12068|0;I:{if(F[b>>2]==(g|0)){F[b>>2]=c;if(c){break I}m=11768,n=F[2942]&oi(d),F[m>>2]=n;break F}F[h+(F[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}F[c+24>>2]=h;b=F[g+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[g+20>>2];if(!b){break F}F[c+20>>2]=b;F[b+24>>2]=c}g=e+g|0;f=F[g+4>>2];a=a+e|0}F[g+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);J:{if(!(c&a)){F[2941]=a|c;a=b;break J}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=O(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+12068|0;d=F[2942];c=1<<f;K:{if(!(d&c)){F[2942]=c|d;F[b>>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=F[b>>2];while(1){b=c;if((F[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0<e+16>>>0?e:a;F[d+4>>2]=27;a=F[3056];F[d+16>>2]=F[3055];F[d+20>>2]=a;a=F[3054];F[d+8>>2]=F[3053];F[d+12>>2]=a;F[3055]=d+8;F[3054]=g;F[3053]=c;F[3056]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0<f>>>0){continue}break}if((d|0)==(e|0)){break e}F[d+4>>2]=F[d+4>>2]&-2;f=d-e|0;F[e+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);L:{if(!(c&a)){F[2941]=a|c;a=b;break L}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;d=F[2942];c=1<<a;M:{if(!(d&c)){F[2942]=c|d;F[b>>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break e}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=F[2944];if(a>>>0<=h>>>0){break d}b=a-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[2940]=48;a=0;break a}N:{if(!g){break N}b=F[d+28>>2];a=(b<<2)+12068|0;O:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break O}j=oi(b)&j;F[2942]=j;break N}F[g+(F[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}F[c+24>>2]=g;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break N}F[c+20>>2]=a;F[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break P}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);Q:{if(!(c&a)){F[2941]=a|c;a=b;break Q}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;R:{c=1<<a;S:{if(!(c&j)){F[2942]=c|j;F[b>>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break P}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=F[c+28>>2];a=(b<<2)+12068|0;U:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break U}m=11768,n=oi(b)&j,F[m>>2]=n;break T}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break T}F[d+20>>2]=a;F[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break V}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+11804|0;e=F[2946];a=1<<(k>>>3);W:{if(!(a&g)){F[2941]=a|g;a=b;break W}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a}F[2946]=d;F[2943]=f}a=c+8|0}Z=l+16|0;return a|0}function Vc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-32|0;Z=m;o=ka(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];t=F[b>>2];if(t){if((w|0)>1e3){break a}F[m+24>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;d=1;c=F[a>>2];e=F[c+8>>2];h=F[c+12>>2];g=F[c+20>>2];f=F[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=G[f+F[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;F[h+16>>2]=f;F[h+20>>2]=c;Sb(m+16|0,e);if(e){c=F[a>>2];n=Tb(m+16|0);p=F[c+8>>2];g=F[c+12>>2];h=F[c+20>>2];f=F[c+16>>2];k=f+e|0;h=k>>>0<e>>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}la(n,f+F[c>>2]|0,e);d=F[c+20>>2];f=e;e=e+F[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d}j=ka(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=Z-32|0;Z=e;h=t+12|0;c=m+16|0;u=Ya(h,c);i=t+16|0;e:{if((u|0)==(i|0)){F[e+16>>2]=c;f:{g:{d=F[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=G[c+11|0];g=f<<24>>24<0;n=g?F[c>>2]:c;g=g?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;p=d>>>0<g>>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?F[c+16>>2]:c+16|0;q=sa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=F[c>>2];if(d){continue}break h}d=sa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=ka(32);n=d+16|0;g=F[e+16>>2];n:{if(D[g+11|0]>=0){p=F[g+4>>2];F[n>>2]=F[g>>2];F[n+4>>2]=p;F[n+8>>2]=F[g+8>>2];break n}ra(n,F[g>>2],F[g+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;g=F[F[h>>2]>>2];if(g){F[h>>2]=g;c=F[f>>2]}nb(F[h+4>>2],c);F[h+8>>2]=F[h+8>>2]+1;c=1;break f}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break e}Ca(c+12|0,F[c+16>>2]);Ba(c,F[c+4>>2]);ja(c);break e}if(!j){break e}Ca(j+12|0,F[j+16>>2]);Ba(j,F[j+4>>2]);ja(j)}Z=e+32|0;d=(i|0)!=(u|0)}if(D[m+27|0]<0){ja(F[m+16>>2])}if(d){break a}}if(!j){break a}F[m+16>>2]=0;if(!fb(1,m+16|0,F[a>>2])){break a}q=0;x=F[m+16>>2];if(x){while(1){d=0;i=Z-32|0;Z=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;c=F[a>>2];f=F[c+8>>2];o:{p:{h=F[c+12>>2];g=F[c+20>>2];e=F[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=G[e+F[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;F[h+16>>2]=e;F[h+20>>2]=c;Sb(i+16|0,f);if(f){e=F[a>>2];n=Tb(i+16|0);p=F[e+8>>2];g=F[e+12>>2];c=F[e+20>>2];h=F[e+16>>2];k=h+f|0;c=k>>>0<f>>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}la(n,h+F[e>>2]|0,f);c=F[e+20>>2];g=f;f=f+F[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;F[e+16>>2]=f;F[e+20>>2]=c}F[i+12>>2]=0;if(!fb(1,i+12|0,F[a>>2])){break q}f=F[i+12>>2];if(!f){break q}e=F[a>>2];c=F[e+8>>2];h=F[e+16>>2];g=c-h|0;c=F[e+12>>2]-(F[e+20>>2]+(c>>>0<h>>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((f|0)<0){break p}d=ka(f);F[i>>2]=d;c=d+f|0;F[i+8>>2]=c;l=ma(d,0,f);F[i+4>>2]=c;h=F[e+12>>2];y=h;p=F[e+8>>2];c=F[e+20>>2];k=F[e+16>>2];g=f+k|0;c=g>>>0<f>>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){la(l,F[e>>2]+k|0,f);d=F[e+20>>2];c=f+F[e+16>>2]|0;d=c>>>0<f>>>0?d+1|0:d;F[e+16>>2]=c;F[e+20>>2]=d;h=Z-48|0;Z=h;e=Ya(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];s:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];t:{u:{g=e;d=e;e=F[d>>2];if(e){c=F[g+4>>2];if(!c){break u}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break u}e=0;k=1;break t}F[e+8>>2]=F[d+8>>2];k=0}l=F[d+8>>2];c=F[l>>2];v:{if((d|0)==(c|0)){F[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=F[l+4>>2];break v}F[l+4>>2]=e}r=!G[d+12|0];if((d|0)!=(g|0)){l=F[g+8>>2];F[d+8>>2]=l;F[l+(((g|0)!=F[F[g+8>>2]>>2])<<2)>>2]=d;l=F[g>>2];F[d>>2]=l;F[l+8>>2]=d;l=F[g+4>>2];F[d+4>>2]=l;if(l){F[l+8>>2]=d}D[d+12|0]=G[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=G[c+12|0];x:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];k=F[e>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}F[e+8>>2]=F[d+8>>2];k=F[d+8>>2];F[(((d|0)!=F[k>>2])<<2)+k>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}y:{z:{d=F[c>>2];A:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break A}D[c+12|0]=0;c=F[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(G[c+12|0]){break x}}D[c+12|0]=1;break w}e=F[c+4>>2];if(!e){break z}}if(G[e+12|0]){break z}d=c;break y}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break w}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];C:{if(!(!e|G[e+12|0])){d=c;break C}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break x}D[c+12|0]=1;break w}if(e){if(!G[e+12|0]){d=c;break C}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break w}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[g+28>>2];if(c){F[g+32>>2]=c;ja(c)}if(D[g+27|0]<0){ja(F[g+16>>2])}ja(g)}F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=ka(f);c=ma(e,0,f);g=c+f|0;F[h+8>>2]=g;F[h+4>>2]=g;F[h>>2]=c;c=d}la(e,c,f);F:{if(D[i+27|0]>=0){F[h+24>>2]=F[i+24>>2];c=F[i+20>>2];F[h+16>>2]=F[i+16>>2];F[h+20>>2]=c;break F}ra(h+16|0,F[i+16>>2],F[i+20>>2])}Tc(h+28|0,h);f=h+16|0;c=f;G:{H:{d=F[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=G[c+11|0];g=e<<24>>24<0;k=g?F[c>>2]:c;g=g?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;l=d>>>0<g>>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?F[c+16>>2]:c+16|0;z=sa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=F[c>>2];if(d){continue}break I}d=sa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=ka(40);F[d+24>>2]=F[f+8>>2];g=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=g;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;Tc(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}nb(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break G}d=c;c=0}D[h+44|0]=c;F[h+40>>2]=d;c=F[h+28>>2];if(c){F[h+32>>2]=c;ja(c)}if(D[h+27|0]<0){ja(F[h+16>>2])}c=F[h>>2];if(c){F[h+4>>2]=c;ja(c)}Z=h+48|0;break D}na();v()}d=F[i>>2];if(!d){break r}}F[i+4>>2]=d;ja(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(D[i+27|0]<0){ja(F[i+16>>2])}Z=i+32|0;break o}na();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}F[m+12>>2]=0;if(!fb(1,m+12|0,F[a>>2])){break a}c=F[a>>2];e=F[c+8>>2];f=F[c+16>>2];h=e-f|0;d=F[m+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(e>>>0<f>>>0)|0)|0;if(h>>>0<d>>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0<s>>>0){F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;d=F[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0<f>>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=ka(L(e,12))}else{f=0}b=f+L(g,12)|0;F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;c=pa(b+L((c|0)/-12|0,12)|0,o,c);s=f+L(e,12)|0;b=b+12|0;if(o){ja(o)}o=c}q=q+1|0;if(q>>>0<d>>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}na();v()}oa();v()}if(o){ja(o)}Z=m+32|0;return A}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Z-48|0;Z=h;a:{if((c|0)!=1){break a}i=F[a+4>>2];c=F[a+12>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;d=h+8|0;b:{if((b|0)==-2){break b}k=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];if(($[F[F[i>>2]+8>>2]](i)|0)==1){j=Z-32|0;Z=j;l=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];c:{d:{e:{if(($[F[F[i>>2]+8>>2]](i)|0)!=1|b-1>>>0>5){break e}g=$[F[F[i>>2]+36>>2]](i)|0;f=$[F[F[i>>2]+44>>2]](i,c)|0;if(!g|!f){break e}c=$[F[F[i>>2]+40>>2]](i,c)|0;if(c){a=F[i+44>>2];F[j+12>>2]=c;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;f:{g:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=2252;a=b;break f;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3016;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break f;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3264;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break f;case 5:break g;default:break f}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;h:{i:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break i}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=2904;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4128;F[a>>2]=3500;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=3736;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break h}na();v()}break f}e=a;break e}a=F[i+44>>2];F[j+12>>2]=g;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;j:{k:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=4156;a=b;break j;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4580;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break j;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4816;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break j;case 5:break k;default:break j}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;l:{m:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break m}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=4524;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=5624;F[a>>2]=5040;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=5260;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break l}na();v()}break j}e=a}Z=j+32|0;break c}na();v()}if(e){break b}}e=ka(44);F[e+4>>2]=k;F[e>>2]=2960;a=F[d+4>>2];F[e+8>>2]=F[d>>2];F[e+12>>2]=a;a=F[d+12>>2];F[e+16>>2]=F[d+8>>2];F[e+20>>2]=a;a=F[d+20>>2];F[e+24>>2]=F[d+16>>2];F[e+28>>2]=a;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;n:{c=F[d+24>>2];b=F[d+28>>2];if((c|0)!=(b|0)){a=b-c|0;if((a|0)<0){break n}k=ka(a);F[e+32>>2]=k;F[e+40>>2]=(a&-4)+k;while(1){F[k>>2]=F[c>>2];k=k+4|0;c=c+4|0;if((b|0)!=(c|0)){continue}break}F[e+36>>2]=k}F[e>>2]=5652;break b}na();v()}k=e;a=F[h+32>>2];if(!a){break a}F[h+36>>2]=a;ja(a)}Z=h+48|0;return k|0}function rf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-16|0;Z=m;F[m+12>>2]=b;b=ka(32);F[m>>2]=b;F[m+4>>2]=24;F[m+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);d=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);d=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);d=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+24|0]=0;l=Z-48|0;Z=l;f=F[m+12>>2];d=a;a=a+16|0;b=F[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>F[b+16>>2];c=e?c:b;b=F[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=F[c+16>>2]){break a}}F[l+28>>2]=0;F[l+32>>2]=0;y=l+24|0;F[l+24>>2]=y|4;a=l+16|0;F[a>>2]=0;F[a+4>>2]=0;F[l+8>>2]=f;F[l+12>>2]=a;t=l+8|0;a=t;x=Z-16|0;Z=x;u=d+12|0;c=F[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=F[a>>2];while(1){d=c;b=F[c+16>>2];if((b|0)>(a|0)){o=d;c=F[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=F[d+4>>2];if(c){continue}break}o=d+4|0}g=ka(32);b=F[t>>2];q=g+24|0;a=q;F[a>>2]=0;F[a+4>>2]=0;F[g+16>>2]=b;r=g+20|0;F[r>>2]=a;c=F[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=Z-16|0;Z=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=G[f+27|0];h=b<<24>>24<0;i=G[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?F[k+4>>2]:i;b=h?F[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?F[k>>2]:k;h=h?F[f+16>>2]:f+16|0;A=sa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=F[f>>2];m:{a=f;n:{if((a|0)==F[r>>2]){break n}o:{if(!h){b=f;while(1){a=F[b+8>>2];i=F[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=F[b+4>>2];if(b){continue}break}}i=G[k+11|0];s=i<<24>>24;b=(s|0)<0;j=G[a+27|0];n=j<<24>>24<0;p:{i=b?F[k+4>>2]:i;j=n?F[a+20>>2]:j;w=i>>>0<j>>>0?i:j;if(w){b=sa(n?F[a+16>>2]:a+16|0,b?F[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){F[p+12>>2]=f;a=f;break e}F[p+12>>2]=a;a=a+4|0;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(s|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0<i>>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}break g}b=sa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=F[f+4>>2];v:{if(!h){b=f;while(1){a=F[b+8>>2];j=F[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=F[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=G[a+27|0];b=j<<24>>24<0;y:{j=b?F[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=sa((n|0)<0?F[k>>2]:k,b?F[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0<j>>>0){break x}break w}if((b|0)>=0){break w}}if(!h){F[p+12>>2]=f;a=f+4|0;break e}F[p+12>>2]=a;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(n|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0<i>>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}}F[p+12>>2]=a;a=f;break e}F[p+12>>2]=f;F[a>>2]=f}f=a;a=F[a>>2];if(a){b=0}else{a=ka(40);b=a+16|0;E:{if(D[c+27|0]>=0){e=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+24>>2];break E}ra(b,F[c+16>>2],F[c+20>>2])}b=a+28|0;F:{if(D[c+39|0]>=0){e=F[c+32>>2];F[b>>2]=F[c+28>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+36>>2];break F}ra(b,F[c+28>>2],F[c+32>>2])}F[a+8>>2]=F[p+12>>2];F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;b=a;e=F[F[r>>2]>>2];if(e){F[r>>2]=e;b=F[f>>2]}nb(F[r+4>>2],b);F[r+8>>2]=F[r+8>>2]+1;b=1}D[x+12|0]=b;F[x+8>>2]=a;Z=p+16|0;b=F[c+4>>2];G:{if(b){while(1){c=b;b=F[b>>2];if(b){continue}break G}}while(1){a=c;c=F[c+8>>2];if((a|0)!=F[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}F[g+8>>2]=d;F[g>>2]=0;F[g+4>>2]=0;F[o>>2]=g;c=g;a=F[F[u>>2]>>2];if(a){F[u>>2]=a;c=F[o>>2]}nb(F[u+4>>2],c);F[u+8>>2]=F[u+8>>2]+1;a=1}D[l+44|0]=a;F[l+40>>2]=g;Z=x+16|0;c=F[l+40>>2];ib(t|4,F[l+16>>2]);ib(y,F[l+28>>2])}f=Z-48|0;Z=f;d=f+8|0;g=Z-32|0;Z=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(I[2684]<=1|0)){break I}}D[a|0]=49;b=a+1|0;h=0}F[g+12>>2]=h;F[g+8>>2]=b;h=Z-16|0;Z=h;e=Z-16|0;Z=e;J:{q=F[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){D[d+11|0]=g|G[d+11|0]&128;D[d+11|0]=G[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}sb(t,b+1|0);b=F[e+8>>2];F[d>>2]=b;F[d+8>>2]=F[d+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[d+8>>2]=F[d+8>>2]|-2147483648;F[d+4>>2]=g}while(1){if((a|0)!=(q|0)){D[b|0]=G[a|0];b=b+1|0;a=a+1|0;continue}break}D[e+7|0]=0;D[b|0]=G[e+7|0];Z=e+16|0;break J}za();v()}Z=h+16|0;Z=o;F[f+32>>2]=m;L:{M:{a=c+20|0;d=F[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=G[m+11|0];c=b<<24>>24<0;e=c?F[m>>2]:m;b=c?F[m+4>>2]:b;while(1){c=d;d=G[c+27|0];g=d<<24>>24<0;d=g?F[c+20>>2]:d;o=d>>>0<b>>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?F[c+16>>2]:c+16|0;q=sa(e,g,h);if(!q){if(b>>>0<d>>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=F[c>>2];if(d){continue}break N}d=sa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=F[c+4>>2];if(d){continue}break}g=c+4|0}d=ka(40);e=d+16|0;b=F[f+32>>2];T:{if(D[b+11|0]>=0){o=F[b+4>>2];F[e>>2]=F[b>>2];F[e+4>>2]=o;F[e+8>>2]=F[b+8>>2];break T}ra(e,F[b>>2],F[b+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+36>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[g>>2]=d;c=d;b=F[F[a>>2]>>2];if(b){F[a>>2]=b;c=F[g>>2]}nb(F[a+4>>2],c);F[a+8>>2]=F[a+8>>2]+1;a=1;break L}d=c;a=0}D[f+44|0]=a;F[f+40>>2]=d;a=F[f+40>>2];if(D[a+39|0]<0){ja(F[a+28>>2])}b=F[f+12>>2];F[a+28>>2]=F[f+8>>2];F[a+32>>2]=b;F[a+36>>2]=F[f+16>>2];Z=f+48|0;Z=l+48|0;if(D[m+11|0]<0){ja(F[m>>2])}Z=m+16|0}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=Z-32|0;Z=h;g=F[F[a+4>>2]+44>>2];c=F[a+8>>2];d=F[c>>2];c=F[c+4>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=F[g+96>>2];f=(F[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=F[g+104>>2];c=F[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=L(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=l;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=L(e,12)+c|0;if(f>>>0<36){break b}while(1){f=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=f;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];f=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=f;F[d+32>>2]=F[h+24>>2];f=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=f;f=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=f;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}F[g+100>>2]=c;break a}c:{f=F[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0<i>>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=ka(L(i,12))}f=L(n,12)+l|0;d=f;e=L(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=r;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=j;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];j=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=j;F[d+32>>2]=F[h+24>>2];j=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=j;j=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=j;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=F[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=F[c+4>>2];f=f-12|0;d=f;F[d>>2]=F[c>>2];F[d+4>>2]=n;F[d+8>>2]=F[c+8>>2];if((c|0)!=(j|0)){continue}break}c=F[g+96>>2]}F[g+104>>2]=L(i,12)+l;F[g+100>>2]=e;F[g+96>>2]=f;if(c){ja(c)}break a}na();v()}oa();v()}if(d>>>0>=f>>>0){break a}F[g+100>>2]=c+L(d,12)}d:{if(F[a+216>>2]==F[a+220>>2]){j=F[a+4>>2];c=F[j+44>>2];d=F[c+100>>2];f=F[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=F[a+8>>2];i=f+L(c,12)|0;g=L(c,3);e:{f:{if((g|0)==-1){e=F[(F[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=F[F[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=F[F[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=F[F[d>>2]+(g<<2)>>2]}F[i+8>>2]=m;F[i+4>>2]=e;F[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}F[F[j+4>>2]+80>>2]=b;c=1;break d}d=0;F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;l=F[a+8>>2];c=F[l>>2];g=F[l+4>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=ka(c);F[h>>2]=b;F[h+8>>2]=(c&-4)+b;u=h,w=ma(b,0,c)+c|0,F[u+4>>2]=w}c=F[l+24>>2];if((F[l+28>>2]-c|0)<4){break h}f=0;while(1){g=F[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(F[F[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=F[a+216>>2];c=F[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=L(j,144)+n|0;c=F[s+F[F[i+68>>2]>>2]>>2];o:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=F[F[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=F[i+32>>2];i=F[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=F[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=F[F[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;F[(g<<2)+b>>2]=e;s:{if(k>>>0<o>>>0){F[k>>2]=g;k=k+4|0;F[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=ka(c<<2)}else{d=0}e=d+(e<<2)|0;F[e>>2]=g;m=c<<2;c=pa(d,f,i);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(f){ja(f);l=F[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=F[a+220>>2];j=F[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=F[(j+L(c,144)|0)+32>>2];r=i<<2;if(F[q+r>>2]==F[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;F[b+r>>2]=e;if(k>>>0<o>>>0){F[k>>2]=i;k=k+4|0;F[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0<k>>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=ka(c<<2)}else{f=0}e=f+(e<<2)|0;F[e>>2]=i;m=c<<2;c=pa(f,d,j);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(!d){d=c;break u}ja(d);l=F[a+8>>2];d=c;break u}F[(i<<2)+b>>2]=F[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=F[l+24>>2];if((p|0)<F[l+28>>2]-c>>2){continue}break}break h}na();v()}na();v()}oa();v()}na();v()}i=F[a+4>>2];a=F[i+44>>2];c=F[a+100>>2];a=F[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=L(c,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;e=L(c|1,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=L(c,12);c=g+b|0;f=F[c>>2];e=F[c+4>>2];a=a+g|0;F[a+8>>2]=F[c+8>>2];F[a>>2]=f;F[a+4>>2]=e}F[F[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){ja(b)}if(!d){break d}F[h+20>>2]=d;ja(d)}Z=h+32|0;return c}function de(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0;g=Z+-64|0;Z=g;F[a+8>>2]=e;y=a+32|0;f=F[y>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){qa(y,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}Fa(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}Fa(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}Fa(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}Fa(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}H=F[a+52>>2];t=F[a+48>>2];z=ka(16);d=z;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=ka(d);F[g>>2]=r;F[g+8>>2]=d+r;ma(r,0,d)}A=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<<x;n=F[t>>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(F[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=F[F[F[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=F[H>>2];h=F[t+28>>2];p=F[l+(F[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=F[l+(F[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=F[l+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];l=L(e,h);q=L(e,q);p=L(e,p);h=0;o=0;if(G){while(1){F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2];u=h|1;F[j+(u<<2)>>2]=(F[(l+u<<2)+c>>2]+F[(q+u<<2)+c>>2]|0)-F[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&F[O>>2]){break v}d=F[F[F[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ma(r,0,M)}d=j-1|0;q=(d<<2)+z|0;d=L(d,12)+a|0;u=d;x=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[q>>2];F[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(F[F[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(!N){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];o=l|4;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];o=l|8;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];l=l|12;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[l+n>>2]+F[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(G){break n}break m}i=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];n=F[a+16>>2];x:{if((f|0)>(n|0)){F[d+j>>2]=n;break x}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}break k}ta();v()}while(1){j=h<<2;k=j+r|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+r|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+r>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[g>>2];if(a){ja(a)}ja(z);a=F[g+52>>2];if(a){F[g+56>>2]=a;ja(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;ja(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;ja(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;ja(a)}Z=g- -64|0;return A|0}na();v()}function $h(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;h=Z+-64|0;Z=h;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0<e>>>0){qa(x,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}Fa(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}Fa(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}Fa(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}Fa(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}H=F[a+52>>2];A=F[a+48>>2];y=ka(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=ka(d);F[h>>2]=t;F[h+8>>2]=d+t;ma(t,0,d)}z=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}n=F[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[H>>2];r=F[A>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(G){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ma(t,0,M)}d=g-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(!N){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];q=n|4;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];q=n|8;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];n=n|12;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[j+n>>2]+F[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(G){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}break k}ta();v()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[h>>2];if(a){ja(a)}ja(y);a=F[h+52>>2];if(a){F[h+56>>2]=a;ja(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;ja(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;ja(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;ja(a)}Z=h- -64|0;return z|0}na();v()}function Yh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;M=a+32|0;e=F[M>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(M,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}i=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;X=d>>>0<=1?1:d;Y=a+68|0;d=0;while(1){f=F[a+56>>2];e=F[f>>2];if(F[f+4>>2]-e>>2>>>0<=d>>>0){break a}k=Z-80|0;Z=k;f=-1;d:{e:{e=F[e+(d<<2)>>2];if((e|0)==-1){break e}i=F[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=F[F[i>>2]+(g<<2)>>2]}p=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){p=F[F[i>>2]+(e<<2)>>2]}i=F[o+36>>2];e=F[i>>2];i=F[i+4>>2]-e>>2;if(i>>>0<=f>>>0|i>>>0<=p>>>0){break e}f:{g:{h:{i:{j:{k:{j=F[e+(p<<2)>>2];f=F[e+(f<<2)>>2];if((j|0)>=(d|0)|(f|0)>=(d|0)){break k}i=(j<<3)+c|0;w=F[i+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];l=F[i>>2];i=F[g>>2];if(!((l|0)!=(i|0)|(e|0)!=(w|0))){F[o+8>>2]=i;F[o+12>>2]=e;break j}p=F[F[o+4>>2]+(d<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;g=k- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+56|0);p=F[F[o+4>>2]+(f<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+32|0);p=F[F[o+4>>2]+(j<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+8|0);g=F[k+16>>2];n=F[k+40>>2];x=g-n|0;N=F[k+44>>2];g=F[k+20>>2]-(N+(g>>>0<n>>>0)|0)|0;H=g;j=ki(x,g,x,g);q=_;g=F[k+8>>2];z=F[k+32>>2];A=g-z|0;O=F[k+36>>2];g=F[k+12>>2]-(O+(g>>>0<z>>>0)|0)|0;I=g;h=j;j=ki(A,g,A,g);g=h+j|0;h=_+q|0;h=g>>>0<j>>>0?h+1|0:h;j=F[k+24>>2];B=F[k+48>>2];C=j-B|0;P=F[k+52>>2];j=F[k+28>>2]-(P+(j>>>0<B>>>0)|0)|0;J=j;m=g;g=ki(C,j,C,j);r=m+g|0;h=_+h|0;s=g>>>0>r>>>0?h+1|0:h;if(!(s|r)){break k}p=0;E=mi(-1,2147483647,r,s);f=i>>31;R=f;h=f>>31;Q=i;g=h;q=i^g;i=q-g|0;f=(f^g)-((g>>>0>q>>>0)+g|0)|0;g=f;f=e>>31;S=f;K=e;e=f>>31;q=K^e;m=q-e|0;h=f>>31;e=(h^f)-((e>>>0>q>>>0)+h|0)|0;f=(g|0)==(e|0)&i>>>0>m>>>0|e>>>0<g>>>0;i=f?i:m;j=_;e=f?g:e;if((j|0)==(e|0)&i>>>0>E>>>0|e>>>0>j>>>0){break f}i=F[k+64>>2];T=F[k+68>>2];e=ki(i-n|0,T-((i>>>0<n>>>0)+N|0)|0,x,H);f=_;g=F[k+56>>2];U=F[k+60>>2];j=ki(g-z|0,U-((g>>>0<z>>>0)+O|0)|0,A,I);e=j+e|0;h=_+f|0;h=e>>>0<j>>>0?h+1|0:h;f=e;m=F[k+72>>2];V=F[k+76>>2];e=ki(m-B|0,V-((m>>>0<B>>>0)+P|0)|0,C,J);j=f+e|0;f=_+h|0;q=e>>>0>j>>>0?f+1|0:f;e=l;E=e-Q|0;e=(e>>31)-((e>>>0<Q>>>0)+R|0)|0;W=e;l=e>>31;y=l^E;f=y-l|0;h=e>>31;e=(h^e)-((l>>>0>y>>>0)+h|0)|0;h=e;y=w-K|0;e=(w>>31)-((w>>>0<K>>>0)+S|0)|0;w=e;l=f;t=e>>31;u=t^y;L=u-t|0;f=e>>31;e=(f^e)-((t>>>0>u>>>0)+f|0)|0;f=(h|0)==(e|0)&l>>>0>L>>>0|e>>>0<h>>>0;f=mi(-1,2147483647,f?l:L,f?h:e)>>>0<j>>>0;e=_;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break f}e=I>>31;f=e;l=e^A;e=l-e|0;f=(f^I)-((f>>>0>l>>>0)+f|0)|0;h=H>>31;t=h^x;u=t-h|0;l=(h^H)-((h>>>0>t>>>0)+h|0)|0;h=(f|0)==(l|0)&e>>>0>u>>>0|f>>>0>l>>>0;e=h?e:u;f=h?f:l;h=J>>31;L=e;t=h^C;u=t-h|0;l=(h^J)-((h>>>0>t>>>0)+h|0)|0;e=(f|0)==(l|0)&e>>>0>u>>>0|f>>>0>l>>>0;f=mi(-1,2147483647,e?L:u,e?f:l)>>>0<j>>>0;e=_;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break f}l=1;e=0;f=n;n=li(ki(j,q,x,H),_,r,s);f=f+n|0;h=_+N|0;h=f>>>0<n>>>0?h+1|0:h;n=i-f|0;f=T-((f>>>0>i>>>0)+h|0)|0;n=ki(n,f,n,f);x=_;f=g;h=li(ki(j,q,A,I),_,r,s);i=h+z|0;g=_+O|0;g=h>>>0>i>>>0?g+1|0:g;h=f-i|0;f=U-((f>>>0<i>>>0)+g|0)|0;g=ki(h,f,h,f);i=g+n|0;f=_+x|0;f=g>>>0>i>>>0?f+1|0:f;n=i;g=li(ki(j,q,C,J),_,r,s);i=g+B|0;h=_+P|0;h=g>>>0>i>>>0?h+1|0:h;g=m-i|0;i=V-((i>>>0>m>>>0)+h|0)|0;m=ki(g,i,g,i);i=m+n|0;g=_+f|0;f=ki(i,i>>>0<m>>>0?g+1|0:g,r,s);i=_;m=i;if(!i&f>>>0<=1){break i}h=f;while(1){g=e<<1|l>>>31;l=l<<1;e=g;n=!i&h>>>0>7|(i|0)!=0;h=(i&3)<<30|h>>>2;i=i>>>2|0;if(n){continue}break}break h}if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[o+8>>2]=F[e>>2];F[o+12>>2]=F[e+4>>2]}p=1;break f}e=m;l=f;if(f-1|0){break g}}while(1){i=mi(f,m,l,e);h=e+_|0;e=i+l|0;h=e>>>0<l>>>0?h+1|0:h;l=(h&1)<<31|e>>>1;e=h>>>1|0;i=ki(l,e,l,e);g=_;if((m|0)==(g|0)&f>>>0<i>>>0|g>>>0>m>>>0){continue}break}}f=F[o+20>>2];if(!f){break f}g=f-1|0;h=F[F[o+16>>2]+(g>>>3&536870908)>>2];F[o+20>>2]=g;p=1;f=ki(j,q,y,w);i=_;n=ki(r,s,K,S);m=n+f|0;f=_+i|0;f=m>>>0<n>>>0?f+1|0:f;i=ki(l,e,E,W);g=h>>>g&1;h=g?0-i|0:i;m=h+m|0;n=f;f=_;i=n+(g?0-(f+((i|0)!=0)|0)|0:f)|0;$=o,aa=li(m,h>>>0>m>>>0?i+1|0:i,r,s),F[$+12>>2]=aa;f=ki(j,q,E,W);i=_;j=ki(r,s,Q,R);f=j+f|0;h=_+i|0;e=ki(l,e,y,w);i=0-e|0;l=_;h=(f>>>0<j>>>0?h+1|0:h)+(g?l:0-(((e|0)!=0)+l|0)|0)|0;i=g?e:i;f=i+f|0;$=o,aa=li(f,f>>>0<i>>>0?h+1|0:h,r,s),F[$+8>>2]=aa}Z=k+80|0;e=p;break d}ta();v()}i=e;if(!e){return 0}l:{if(F[a+8>>2]<=0){break l}l=F[M>>2];e=0;while(1){f=e<<2;g=F[f+Y>>2];j=F[a+16>>2];m:{if((g|0)>(j|0)){F[f+l>>2]=j;break m}f=f+l|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break m}F[f>>2]=g}e=e+1|0;g=F[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;j=e+c|0;q=b+e|0;while(1){g=f<<2;e=g+j|0;g=F[g+q>>2]+F[g+l>>2]|0;F[e>>2]=g;n:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break n}g=g+F[a+20>>2]|0}F[e>>2]=g}f=f+1|0;if((f|0)<F[a+8>>2]){continue}break}}d=d+1|0;if((X|0)!=(d|0)){continue}break}}return i|0}ta();v()}function hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;M=a+32|0;e=F[M>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(M,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}p=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;X=d>>>0<=1?1:d;Y=a+68|0;d=0;while(1){e=F[a+56>>2];h=F[e>>2];if(F[e+4>>2]-h>>2>>>0<=d>>>0){break a}k=Z-80|0;Z=k;f=-1;h=F[h+(d<<2)>>2];e=-1;d:{if((h|0)==-1){break d}e=h+1|0;f=(e>>>0)%3|0?e:h-2|0;e=h-1|0;if((h>>>0)%3|0){break d}e=h+2|0}g=F[o+36>>2];h=F[g>>2];e:{f:{g:{h:{i:{g=F[g+4>>2]-h>>2;i=f<<2;f=F[F[o+32>>2]+28>>2];j=F[i+f>>2];if(g>>>0<=j>>>0){break i}e=F[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}j:{k:{l=F[h+(e<<2)>>2];f=F[h+(j<<2)>>2];if((l|0)>=(d|0)|(f|0)>=(d|0)){break k}h=(l<<3)+c|0;w=F[h+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];j=F[h>>2];h=F[g>>2];if(!((j|0)!=(h|0)|(e|0)!=(w|0))){F[o+8>>2]=h;F[o+12>>2]=e;break j}p=F[F[o+4>>2]+(d<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;g=k- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+56|0);p=F[F[o+4>>2]+(f<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+32|0);p=F[F[o+4>>2]+(l<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+8|0);g=F[k+16>>2];n=F[k+40>>2];x=g-n|0;N=F[k+44>>2];g=F[k+20>>2]-(N+(g>>>0<n>>>0)|0)|0;H=g;l=ki(x,g,x,g);q=_;g=F[k+8>>2];z=F[k+32>>2];A=g-z|0;O=F[k+36>>2];g=F[k+12>>2]-(O+(g>>>0<z>>>0)|0)|0;I=g;i=l;l=ki(A,g,A,g);g=i+l|0;i=_+q|0;i=g>>>0<l>>>0?i+1|0:i;l=F[k+24>>2];B=F[k+48>>2];C=l-B|0;P=F[k+52>>2];l=F[k+28>>2]-(P+(l>>>0<B>>>0)|0)|0;J=l;m=g;g=ki(C,l,C,l);r=m+g|0;i=_+i|0;s=g>>>0>r>>>0?i+1|0:i;if(!(s|r)){break k}p=0;E=mi(-1,2147483647,r,s);f=h>>31;R=f;i=f>>31;Q=h;g=i;q=h^g;h=q-g|0;f=(f^g)-((g>>>0>q>>>0)+g|0)|0;g=f;f=e>>31;S=f;K=e;e=f>>31;q=K^e;m=q-e|0;i=f>>31;e=(i^f)-((e>>>0>q>>>0)+i|0)|0;f=(g|0)==(e|0)&h>>>0>m>>>0|e>>>0<g>>>0;h=f?h:m;l=_;e=f?g:e;if((l|0)==(e|0)&h>>>0>E>>>0|e>>>0>l>>>0){break e}h=F[k+64>>2];T=F[k+68>>2];e=ki(h-n|0,T-((h>>>0<n>>>0)+N|0)|0,x,H);f=_;g=F[k+56>>2];U=F[k+60>>2];l=ki(g-z|0,U-((g>>>0<z>>>0)+O|0)|0,A,I);e=l+e|0;i=_+f|0;i=e>>>0<l>>>0?i+1|0:i;f=e;m=F[k+72>>2];V=F[k+76>>2];e=ki(m-B|0,V-((m>>>0<B>>>0)+P|0)|0,C,J);l=f+e|0;f=_+i|0;q=e>>>0>l>>>0?f+1|0:f;e=j;E=e-Q|0;e=(e>>31)-((e>>>0<Q>>>0)+R|0)|0;W=e;j=e>>31;y=j^E;f=y-j|0;i=e>>31;e=(i^e)-((j>>>0>y>>>0)+i|0)|0;i=e;y=w-K|0;e=(w>>31)-((w>>>0<K>>>0)+S|0)|0;w=e;j=f;t=e>>31;u=t^y;L=u-t|0;f=e>>31;e=(f^e)-((t>>>0>u>>>0)+f|0)|0;f=(i|0)==(e|0)&j>>>0>L>>>0|e>>>0<i>>>0;f=mi(-1,2147483647,f?j:L,f?i:e)>>>0<l>>>0;e=_;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break e}e=I>>31;f=e;j=e^A;e=j-e|0;f=(f^I)-((f>>>0>j>>>0)+f|0)|0;i=H>>31;t=i^x;u=t-i|0;j=(i^H)-((i>>>0>t>>>0)+i|0)|0;i=(f|0)==(j|0)&e>>>0>u>>>0|f>>>0>j>>>0;e=i?e:u;f=i?f:j;i=J>>31;L=e;t=i^C;u=t-i|0;j=(i^J)-((i>>>0>t>>>0)+i|0)|0;e=(f|0)==(j|0)&e>>>0>u>>>0|f>>>0>j>>>0;f=mi(-1,2147483647,e?L:u,e?f:j)>>>0<l>>>0;e=_;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break e}j=1;e=0;f=n;n=li(ki(l,q,x,H),_,r,s);f=f+n|0;i=_+N|0;i=f>>>0<n>>>0?i+1|0:i;n=h-f|0;f=T-((f>>>0>h>>>0)+i|0)|0;n=ki(n,f,n,f);x=_;f=g;i=li(ki(l,q,A,I),_,r,s);h=i+z|0;g=_+O|0;g=h>>>0<i>>>0?g+1|0:g;i=f-h|0;f=U-((f>>>0<h>>>0)+g|0)|0;g=ki(i,f,i,f);h=g+n|0;f=_+x|0;f=h>>>0<g>>>0?f+1|0:f;n=h;g=li(ki(l,q,C,J),_,r,s);h=g+B|0;i=_+P|0;i=h>>>0<g>>>0?i+1|0:i;g=m-h|0;h=V-((h>>>0>m>>>0)+i|0)|0;m=ki(g,h,g,h);h=m+n|0;g=_+f|0;f=ki(h,h>>>0<m>>>0?g+1|0:g,r,s);h=_;m=h;if(!h&f>>>0<=1){break h}i=f;while(1){g=e<<1|j>>>31;j=j<<1;e=g;n=!h&i>>>0>7|(h|0)!=0;i=(h&3)<<30|i>>>2;h=h>>>2|0;if(n){continue}break}break g}if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[o+8>>2]=F[e>>2];F[o+12>>2]=F[e+4>>2]}p=1;break e}ta();v()}e=m;j=f;if(f-1|0){break f}}while(1){h=mi(f,m,j,e);i=e+_|0;e=h+j|0;i=e>>>0<j>>>0?i+1|0:i;j=(i&1)<<31|e>>>1;e=i>>>1|0;h=ki(j,e,j,e);g=_;if((m|0)==(g|0)&f>>>0<h>>>0|g>>>0>m>>>0){continue}break}}f=F[o+20>>2];if(!f){break e}g=f-1|0;i=F[F[o+16>>2]+(g>>>3&536870908)>>2];F[o+20>>2]=g;p=1;f=ki(l,q,y,w);h=_;n=ki(r,s,K,S);m=n+f|0;f=_+h|0;f=m>>>0<n>>>0?f+1|0:f;h=ki(j,e,E,W);g=i>>>g&1;i=g?0-h|0:h;m=i+m|0;n=f;f=_;h=n+(g?0-(f+((h|0)!=0)|0)|0:f)|0;$=o,aa=li(m,i>>>0>m>>>0?h+1|0:h,r,s),F[$+12>>2]=aa;f=ki(l,q,E,W);h=_;l=ki(r,s,Q,R);f=l+f|0;i=_+h|0;e=ki(j,e,y,w);h=0-e|0;j=_;i=(f>>>0<l>>>0?i+1|0:i)+(g?j:0-(((e|0)!=0)+j|0)|0)|0;h=g?e:h;f=h+f|0;$=o,aa=li(f,f>>>0<h>>>0?i+1|0:i,r,s),F[$+8>>2]=aa}Z=k+80|0;if(!p){return 0}l:{if(F[a+8>>2]<=0){break l}g=F[M>>2];e=0;while(1){f=e<<2;h=F[f+Y>>2];j=F[a+16>>2];m:{if((h|0)>(j|0)){F[f+g>>2]=j;break m}f=f+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[f>>2]=j;break m}F[f>>2]=h}e=e+1|0;h=F[a+8>>2];if((e|0)<(h|0)){continue}break}f=0;if((h|0)<=0){break l}e=d<<3;j=e+c|0;l=b+e|0;while(1){h=f<<2;e=h+j|0;h=F[h+l>>2]+F[h+g>>2]|0;F[e>>2]=h;n:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break n}i=h+F[a+20>>2]|0}F[e>>2]=i}f=f+1|0;if((f|0)<F[a+8>>2]){continue}break}}d=d+1|0;if((X|0)!=(d|0)){continue}break}}return p|0}ta();v()}function Gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=Z-96|0;Z=n;m=F[a+4>>2];d=F[m+32>>2];j=F[d+8>>2];i=F[d+12>>2];e=i;c=F[d+20>>2];f=F[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=j>>>0|(c|0)>(e|0)){break a}o=F[d>>2];h=G[o+f|0];g=f+1|0;e=g?c:c+1|0;F[d+16>>2]=g;F[d+20>>2]=e;if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}p=G[g+o|0];g=f+2|0;e=g>>>0<2?c+1|0:c;F[d+16>>2]=g;F[d+20>>2]=e;l=h<<24>>24;b:{if((l|0)>=0){k=F[a+216>>2];if(h>>>0>=(F[a+220>>2]-k|0)/144>>>0){break a}k=k+L(h,144)|0;if(F[k>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}k=a+212|0}F[k>>2]=b;c:{d:{e:{f:{g:{h:{k=H[m+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}e=G[g+o|0];f=f+3|0;c=f>>>0<3?c+1|0:c;F[d+16>>2]=f;F[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!p){break i}if(!d){break h}break a}if(p){break g}d=0}if((l|0)<0){e=a+184|0}else{c=F[a+216>>2]+L(h,144)|0;D[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=Z-112|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(120);F[d>>2]=8924;F[d+4>>2]=0;F[d+116>>2]=0;F[d+112>>2]=e;F[d+108>>2]=g;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[d+8>>2]=9136;f=d- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[d+72>>2]=0;F[d+76>>2]=0;F[d+80>>2]=0;F[d+84>>2]=0;F[d+88>>2]=0;F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=F[a+8>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;j=c+32|0;F[j>>2]=0;F[j+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;h=c- -64|0;F[h>>2]=0;F[h+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=9136;F[c+96>>2]=0;F[c+100>>2]=0;F[c+12>>2]=f;h=F[f>>2];i=F[f+4>>2];D[c+111|0]=0;k=j;j=c+111|0;Ea(k,(i-h>>2>>>0)/3|0,j);h=F[c+12>>2];i=F[h+28>>2];h=F[h+24>>2];D[c+111|0]=0;Ea(c+44|0,i-h>>2,j);F[c+28>>2]=d;F[c+24>>2]=g;F[c+20>>2]=e;F[c+16>>2]=f;f=d+8|0;e=c+8|0;lc(f,e);j:{if((e|0)==(f|0)){F[d+92>>2]=F[e+84>>2];break j}gb(d+56|0,F[e+48>>2],F[e+52>>2]);gb(d+68|0,F[e+60>>2],F[e- -64>>2]);gb(d+80|0,F[e+72>>2],F[e+76>>2]);F[d+92>>2]=F[e+84>>2];k:{h=F[e+92>>2];j=F[e+88>>2];i=h-j|0;e=i>>2;f=F[d+104>>2];g=F[d+96>>2];if(e>>>0<=f-g>>2>>>0){i=F[d+100>>2]-g|0;f=i+j|0;m=i>>2;i=e>>>0>m>>>0?f:h;l=i-j|0;if((i|0)!=(j|0)){pa(g,j,l)}if(e>>>0>m>>>0){e=F[d+100>>2];if((h|0)!=(i|0)){while(1){F[e>>2]=F[f>>2];e=e+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}F[d+100>>2]=e;break k}F[d+100>>2]=g+l;break k}if(g){F[d+100>>2]=g;ja(g);F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=0}l:{if((i|0)<0){break l}g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0<g>>>0?g:e;if(e>>>0>=1073741824){break l}f=e<<2;e=ka(f);F[d+96>>2]=e;F[d+104>>2]=e+f;if((h|0)!=(j|0)){f=e;e=(i-4&-4)+4|0;e=la(f,j,e)+e|0}F[d+100>>2]=e;break k}na();v()}}F[c+8>>2]=9136;e=F[c+96>>2];if(e){F[c+100>>2]=e;ja(e)}e=F[c+80>>2];if(e){F[c+84>>2]=e;ja(e)}e=F[c+68>>2];if(e){F[c+72>>2]=e;ja(e)}e=F[c+56>>2];if(e){F[c+60>>2]=e;ja(e)}F[c+8>>2]=9372;e=F[c+44>>2];if(e){ja(e)}e=F[c+32>>2];if(e){ja(e)}Z=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=F[a+216>>2];c=F[m+44>>2];d=ka(80);F[d>>2]=9684;F[d+4>>2]=0;F[d+76>>2]=0;F[d+68>>2]=c;F[d+8>>2]=8624;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;e=e+L(h,144)|0;f=e+104|0;F[d+72>>2]=f;F[d- -64>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[n+24>>2]=c;c=n;F[c+68>>2]=0;F[c+72>>2]=0;F[c+60>>2]=0;F[c+64>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+28>>2]=d;g=F[c+28>>2];F[c+8>>2]=F[c+24>>2];F[c+12>>2]=g;F[c+20>>2]=f;f=e+4|0;F[c+16>>2]=f;F[c+36>>2]=0;F[c+40>>2]=0;F[c+32>>2]=8624;e=F[c+20>>2];F[c>>2]=F[c+16>>2];F[c+4>>2]=e;e=c+32|0;Fd(e,f,c);c=d+8|0;lc(c,e);if((c|0)!=(e|0)){gb(d+56|0,F[e+48>>2],F[e+52>>2])}Ed(e);break c}c=Z+-64|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(80);F[d>>2]=9392;F[d+4>>2]=0;F[d+76>>2]=0;F[d+72>>2]=e;F[d+68>>2]=g;F[d+8>>2]=9556;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d- -64>>2]=0;j=d+56|0;f=j;F[f>>2]=0;F[f+4>>2]=0;f=F[a+8>>2];F[c+40>>2]=0;F[c+44>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;h=c+24|0;F[h>>2]=0;F[h+4>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+8>>2]=0;F[c+12>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c>>2]=9556;F[c+4>>2]=f;i=F[f>>2];l=F[f+4>>2];D[c+63|0]=0;k=h;h=c+63|0;Ea(k,(l-i>>2>>>0)/3|0,h);i=F[c+4>>2];l=F[i+28>>2];i=F[i+24>>2];D[c+63|0]=0;Ea(c+36|0,l-i>>2,h);F[c+20>>2]=d;F[c+16>>2]=g;F[c+12>>2]=e;F[c+8>>2]=f;lc(d+8|0,c);gb(j,F[c+48>>2],F[c+52>>2]);F[c>>2]=9556;e=F[c+48>>2];if(e){F[c+52>>2]=e;ja(e)}F[c>>2]=9372;e=F[c+36>>2];if(e){ja(e)}e=F[c+24>>2];if(e){ja(e)}Z=c- -64|0}if(!d){break a}}d=yc(ka(64),d);c=F[a+4>>2];a=d;d=b;m:{n:{if((d|0)>=0){g=c+8|0;b=F[c+12>>2];j=F[c+8>>2];e=b-j>>2;o:{if((e|0)>(d|0)){break o}f=d+1|0;if(d>>>0>=e>>>0){Pb(g,f-e|0);break o}if(e>>>0<=f>>>0){break o}f=j+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=F[b>>2];F[b>>2]=0;if(e){$[F[F[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}F[c+12>>2]=f}c=F[g>>2]+(d<<2)|0;b=F[c>>2];F[c>>2]=a;if(b){break n}break m}b=a;if(!a){break m}}$[F[F[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}Z=n+96|0;return q|0}function Ab(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e+32768>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>32767){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>32767|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m<M(-32768)|m!=m){break d}n=M(N(m));if(n==M(Infinity)){break d}e=(b<<1)+d|0;if(n<M(2147483648)){i=~~m}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m<M(-32768)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m<M(0)|m>M(1)){break d}e=(b<<1)+d|0;l=R(+m*32767+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=R(l*32767+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return j}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b>>2];if((e|0)<0){break b}F[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>2147483647|k){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m<M(-2147483648)|m!=m){break d}n=M(N(m));if(n==M(Infinity)){break d}e=(b<<2)+d|0;if(n<M(2147483648)){i=~~m}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m<M(-2147483648)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m<M(0)|m>M(1)){break d}e=(b<<2)+d|0;l=R(+m*2147483647+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=R(l*2147483647+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return j}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=D[b|0];if((e|0)<0){break b}E[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}e=(b<<1)+d|0;if(m<M(4294967296)&m>=M(0)){i=~~m>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m>M(1)){break d}e=(b<<1)+d|0;j=R(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=R(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return l}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Ga(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0),o=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=D[b|0];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=E[b>>1];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b>>2];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=F[b+4>>2];e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];i=F[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;F[j>>2]=e;F[j+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=G[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break d}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=J[g>>2];if(k>=M(0x8000000000000000)|k<M(-0x8000000000000000)|k!=k){break a}n=M(N(k));if(n==M(Infinity)){break a}e=(b<<3)+d|0;e:{if(n<M(0x8000000000000000)){j=M(N(k))>=M(1)?~~(k>M(0)?M(P(M(R(M(k*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(k-M(~~k>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=G[a+24|0];f=c&255;if(!(e>>>0<f>>>0?e:f)){break f}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=K[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=N(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=N(l)>=1?~~(l>0?P(R(l*2.3283064365386963e-10),4294967295):S((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0<h>>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ma(d,0,a<<3)}}function le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i)}ja(c);c=1}return c|0}function xb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}e=(b<<2)+d|0;if(m<M(4294967296)&m>=M(0)){i=~~m>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m<M(0)|(M(N(m))==M(Infinity)|m!=m)){break d}if(m>M(1)){break d}e=(b<<2)+d|0;j=R(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=R(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return k}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function rd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}h=F[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0<e>>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}f=e+(d<<2)|0;F[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((c|0)!=(h|0)){continue}break}}F[a+56>>2]=e+(g<<2);F[a+52>>2]=d;F[a+48>>2]=f;if(!h){break f}ja(h)}F[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=F[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=F[F[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=F[F[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=F[a+36>>2];h=d+(c>>>3&536870908)|0;g=F[h>>2];f=1<<c;if(!(g&f)){F[h>>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ka(f,c,d);d=F[a+36>>2]}f=d+i|0;d=F[f>>2];c=1<<e;if(!(d&c)){F[f>>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ka(d,e,c)}c=-1;c=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:c;f=F[a+36>>2]+(c>>>3&536870908)|0;d=F[f>>2];e=1<<c;if(!(d&e)){F[f>>2]=d|e;Ka(a+8|0,c,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){e=L(d,12)+a|0;b=F[e+52>>2];if((b|0)==F[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=F[b>>2];F[e+52>>2]=b;F[a+84>>2]=d;if((c|0)==-1){break e}f=F[a+24>>2];b=(c>>>0)/3|0;j:{if(F[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;F[b>>2]=F[b>>2]|1<<k;d=-1;l:{m:{n:{o:{p:{q:{r:{s:{d=(c|0)!=-1?F[F[F[a+4>>2]>>2]+(c<<2)>>2]:d;f=F[a+36>>2]+(d>>>3&536870908)|0;e=F[f>>2];b=1<<d;if(!(e&b)){F[f>>2]=b|e;i=F[(F[F[a+16>>2]+96>>2]+L(k,12)|0)+((c>>>0)%3<<2)>>2];l=F[F[a+20>>2]+4>>2];f=F[l+4>>2];t:{if((f|0)!=F[l+8>>2]){F[f>>2]=i;F[l+4>>2]=f+4;break t}j=F[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(j|0)){continue}break}}F[l+8>>2]=e+(h<<2);F[l+4>>2]=g;F[l>>2]=b;if(!j){break t}ja(j)}j=F[a+12>>2];f=F[j+4>>2];u:{if((f|0)!=F[j+8>>2]){F[f>>2]=c;F[j+4>>2]=f+4;break u}i=F[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(i|0)){continue}break}}F[j+8>>2]=e+(h<<2);F[j+4>>2]=g;F[j>>2]=b;if(!i){break u}ja(i)}b=F[a+12>>2];F[F[b+12>>2]+(d<<2)>>2]=F[b+24>>2];F[b+24>>2]=F[b+24>>2]+1}if((c|0)==-1){break k}g=F[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=F[F[g+12>>2]+(b<<2)>>2]}v:{w:{if((L(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=F[F[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=F[F[a+24>>2]+(b>>>3&268435452)>>2]&1<<b;if(d){break q}l=(b|0)!=0;break p}l=1;if(!d){break p}break k}na();v()}na();v()}if(!b){break o}break k}b=d?-1:e;x:{if(F[F[a+24>>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=F[F[g>>2]+(c<<2)>>2];if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;e=F[b>>2];F[b>>2]=e+1;k=(e|0)<=0?2:1}if(F[a+84>>2]>=(k|0)&l){break m}j=L(k,12)+a|0;b=F[j+52>>2];y:{if((b|0)!=F[j+56>>2]){F[b>>2]=c;F[j+52>>2]=b+4;break y}i=F[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(i|0)){continue}break}}F[j+48>>2]=d;F[j+52>>2]=c;F[j+56>>2]=e+(g<<2);if(!i){break y}ja(i)}if(F[a+84>>2]<=(k|0)){break x}F[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=F[a+88>>2]+(c<<2)|0;c=F[b>>2];F[b>>2]=c+1;b=(c|0)<=0?2:1}if(F[a+84>>2]<(b|0)){break l}c=f}f=F[a+24>>2];continue}break}k=L(b,12)+a|0;c=F[k+52>>2];z:{if((c|0)!=F[k+56>>2]){F[c>>2]=f;F[k+52>>2]=c+4;break z}i=F[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[k+48>>2]=d;F[k+52>>2]=f;F[k+56>>2]=e+(g<<2);if(!i){break z}ja(i)}d=F[a+84>>2];if((d|0)<=(b|0)){break j}F[a+84>>2]=b;d=b;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}oa();v()}na();v()}na();v()}na();v()}function Mc(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[Lc(10352,10544,e+12|0)>>2];break a}if(a>>>0>=4294967292){V();v()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=Lc(10544,10736,e+8|0)-10544>>2;while(1){d=F[(g<<2)+10544>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0<a>>>0){break a}if((L(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break b}b=F[(a<<2)+10352>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}}Z=e+16|0;return d}function lb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(D[b|0]);J[(h<<2)+d>>2]=i?M(j/M(127)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(G[b|0]);J[(h<<2)+d>>2]=i?M(j/M(255)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(E[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(32767)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(H[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(65535)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(F[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(I[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +F[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +I[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=K[b>>3];b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ma(d,0,a<<2)}return l}function Cb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e+128&65535)>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e+128>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>127|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(127)|l<M(-128)|l!=l){break d}m=M(N(l));if(m==M(Infinity)){break d}e=d+g|0;e:{f:{if(G[a+32|0]){if(l<M(0)|l>M(1)){break d}j=R(+l*127+.5);if(!(N(j)<2147483648)){break f}h=~~j;break e}if(!(m<M(2147483648))){break f}h=~~l;break e}h=-2147483648}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=127|j<-128|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j<0|j>1){break b}j=R(j*127+.5)}g:{if(N(j)<2147483648){h=~~j;break g}h=-2147483648}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function Bb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(255)|l<M(0)|(M(N(l))==M(Infinity)|l!=l)){break d}e=d+g|0;e:{f:{if(G[a+32|0]){if(l>M(1)){break d}j=R(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l<M(4294967296)&l>=M(0))){break f}h=~~l>>>0;break e}h=0}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=255|j<0|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j>1){break b}j=R(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0<f>>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0<f>>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-48|0;Z=e;f=H[5053]|H[5054]<<16;d=H[5051]|H[5052]<<16;E[e+38>>1]=d;E[e+40>>1]=d>>>16;E[e+42>>1]=f;E[e+44>>1]=f>>>16;d=F[2525];F[e+32>>2]=F[2524];F[e+36>>2]=d;d=F[2523];F[e+24>>2]=F[2522];F[e+28>>2]=d;d=F[2521];F[e+16>>2]=F[2520];F[e+20>>2]=d;g=F[b+8>>2];i=F[b+12>>2];h=F[b+20>>2];d=F[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0<f>>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break d}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}f=d+F[b>>2]|0;d=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;D[c+4|0]=G[f+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(sa(c,1250,5)){d=ka(32);D[d+17|0]=0;D[d+16|0]=G[1494];c=G[1490]|G[1491]<<8|(G[1492]<<16|G[1493]<<24);b=G[1486]|G[1487]<<8|(G[1488]<<16|G[1489]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1482]|G[1483]<<8|(G[1484]<<16|G[1485]<<24);b=G[1478]|G[1479]<<8|(G[1480]<<16|G[1481]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,d,17);ja(d);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break f}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+5|0]=G[f+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break h}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+6|0]=G[d+F[b>>2]|0];h=F[b+20>>2];d=F[b+16>>2]+1|0;h=d?h:h+1|0;F[b+16>>2]=d;F[b+20>>2]=h;f=F[b+12>>2];if((f|0)<=(h|0)&I[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break j}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+7|0]=G[d+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}D[c+8|0]=G[d+F[b>>2]|0];d=F[b+20>>2];g=F[b+16>>2];f=g+1|0;i=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=i;i=F[b+8>>2];h=F[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}d=c;c=F[b>>2]+f|0;E[d+10>>1]=G[c|0]|G[c+1|0]<<8;g=F[b+20>>2];c=F[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;F[b+16>>2]=c;F[b+20>>2]=g;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}Z=e+48|0;return}za();v()}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=Z-96|0;Z=e;f=F[a+16>>2];D[e+92|0]=1;F[e+88>>2]=b;F[e+84>>2]=b;F[e+80>>2]=f;j=F[a+20>>2];d=F[j>>2];a:{b:{f=F[F[f+28>>2]+(b<<2)>>2];if(f>>>0<F[j+4>>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(f<<2)>>2]<<2)>>2];f=F[a+4>>2];if(!G[f+84|0]){d=F[F[f+68>>2]+(d<<2)>>2]}F[e+72>>2]=0;F[e+76>>2]=0;j=e- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[e+56>>2]=0;F[e+60>>2]=0;Ga(f,d,D[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!F[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=F[a+20>>2];b=F[n>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[n+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;Ga(b,d,D[b+24|0],e+32|0);d=F[a+20>>2];b=F[d>>2];f=F[F[F[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(f<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ga(b,d,D[b+24|0],e+8|0);g=F[e+8>>2];b=F[e+56>>2];d=g-b|0;p=F[e+60>>2];t=F[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=F[e+40>>2];f=F[e+64>>2];n=h-f|0;u=F[e+68>>2];y=F[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=ki(d,t,n,y);w=o-g|0;x=i-(_+(g>>>0>o>>>0)|0)|0;i=w;h=F[e+16>>2];g=h-f|0;u=F[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=F[e+32>>2];h=k-b|0;w=F[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,h,w);o=i+b|0;i=_+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=F[e+48>>2];f=F[e+72>>2];d=k-f|0;t=F[e+76>>2];x=F[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0<l>>>0?b+1|0:b;l=F[e+24>>2];p=l-f|0;f=F[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=ki(p,f,h,w);l=k-q|0;q=b-(_+(k>>>0<q>>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,f,n,y);r=s+d|0;b=_+b|0;s=r>>>0<s>>>0?b+1|0:b;b=F[e+88>>2];f=F[e+80>>2];d:{if(G[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[e+88>>2]=b;if((b|0)!=-1){break e}}b=F[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[e+92|0]=0;F[e+88>>2]=d;break d}if((b|0)!=F[e+84>>2]){break d}F[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[e+88>>2]=d}b=F[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0<g>>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0<f>>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0<a>>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=li(o,n,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=e+96|0;return}ta();v()}ta();v()}ta();v()}function te(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=Z-16|0;Z=g;f=1;m=$[F[F[a>>2]+24>>2]](a)|0;a:{if((m|0)<=0){break a}r=a+48|0;f=0;while(1){b:{c:{if(!F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}o=l<<2;d=F[o+F[a+36>>2]>>2];c=F[d+8>>2];e=bb(d);if(!e){break c}h=F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[g+12>>2]=F[c+56>>2];d=ka(32);F[g>>2]=d;F[g+4>>2]=24;F[g+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);b=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[d+16|0]=b;D[d+17|0]=b>>>8;D[d+18|0]=b>>>16;D[d+19|0]=b>>>24;D[d+20|0]=c;D[d+21|0]=c>>>8;D[d+22|0]=c>>>16;D[d+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);b=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);b=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;D[d+24|0]=0;c=h+16|0;b=F[c>>2];d:{e:{if(!b){break e}i=F[g+12>>2];d=c;while(1){k=(i|0)>F[b+16>>2];d=k?d:b;b=F[(k?b+4|0:b)>>2];if(b){continue}break}if((c|0)==(d|0)|(i|0)<F[d+16>>2]){break e}b=F[d+24>>2];if(!b){break e}i=d+20|0;d=G[g+11|0];c=d<<24>>24<0;k=c?F[g>>2]:g;d=c?F[g+4>>2]:d;while(1){c=G[b+27|0];j=c<<24>>24<0;c=j?F[b+20>>2]:c;p=c>>>0<d>>>0;f:{g:{h:{i:{j:{k:{n=p?c:d;if(n){j=j?F[b+16>>2]:b+16|0;q=sa(k,j,n);if(q){break k}if(c>>>0<=d>>>0){break j}break f}if(c>>>0<=d>>>0){break i}break f}if((q|0)<0){break f}}c=sa(j,k,n);if(c){break h}}if(p){break g}d=gc(i,g);break d}if((c|0)<0){break g}d=gc(i,g);break d}b=b+4|0}b=F[b>>2];if(b){continue}break}}d=gc(h,g)}if(D[g+11|0]<0){ja(F[g>>2])}if(!d){break c}d=0;c=F[F[o+F[a+36>>2]>>2]+8>>2];if(!F[c+64>>2]){b=ka(32);F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;f=F[c+64>>2];F[c+64>>2]=b;if(f){b=F[f>>2];if(b){F[f+4>>2]=b;ja(b)}ja(f);b=F[c+64>>2]}F[c>>2]=b;f=F[b+20>>2];F[c+8>>2]=F[b+16>>2];F[c+12>>2]=f;f=F[b+24>>2];b=F[b+28>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+16>>2]=f;F[c+20>>2]=b}l:{D[c+24|0]=G[e+24|0];F[c+28>>2]=F[e+28>>2];D[c+32|0]=G[e+32|0];b=F[e+44>>2];F[c+40>>2]=F[e+40>>2];F[c+44>>2]=b;b=F[e+52>>2];F[c+48>>2]=F[e+48>>2];F[c+52>>2]=b;F[c+56>>2]=F[e+56>>2];b=F[e+12>>2];F[c+8>>2]=F[e+8>>2];F[c+12>>2]=b;b=F[e+20>>2];F[c+16>>2]=F[e+16>>2];F[c+20>>2]=b;F[c+60>>2]=F[e+60>>2];f=F[e>>2];m:{if(!f){F[c>>2]=0;b=1;break m}h=F[c>>2];b=0;if(!h){break m}b=F[f>>2];f=F[f+4>>2]-b|0;md(h,b,f,0);b=1}if(!b){break l}D[c+84|0]=G[e+84|0];F[c+80>>2]=F[e+80>>2];if((c|0)!=(e|0)){gb(c+68|0,F[e+68>>2],F[e+72>>2])}n:{h=F[e+88>>2];o:{if(h){f=ka(40);e=F[h>>2];F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=e;e=F[h+12>>2];b=F[h+8>>2];if((e|0)!=(b|0)){b=e-b|0;if((b|0)<0){break n}e=ka(b);F[f+12>>2]=e;F[f+8>>2]=e;F[f+16>>2]=b+e;b=F[h+8>>2];i=F[h+12>>2];p:{if((b|0)==(i|0)){break p}k=i+(b^-1)|0;j=i-b&7;if(j){while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}}if(k>>>0<7){break p}while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((i|0)!=(b|0)){continue}break}}F[f+12>>2]=e}d=F[h+36>>2];F[f+32>>2]=F[h+32>>2];F[f+36>>2]=d;d=F[h+28>>2];F[f+24>>2]=F[h+24>>2];F[f+28>>2]=d;e=F[c+88>>2];F[c+88>>2]=f;if(e){break o}break l}e=F[c+88>>2];F[c+88>>2]=0;if(!e){break l}}d=F[e+8>>2];if(d){F[e+12>>2]=d;ja(d)}ja(e);break l}na();v()}break b}d=F[F[a+36>>2]+(l<<2)>>2];if(!($[F[F[d>>2]+24>>2]](d,r)|0)){break a}}l=l+1|0;f=(m|0)<=(l|0);if((l|0)!=(m|0)){continue}break}}Z=g+16|0;return f|0}function Jg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Z-32|0;Z=f;a:{if(!hb(1,f+28|0,F[a+32>>2])){break a}if(!hb(1,f+24|0,F[a+32>>2])){break a}l=F[f+28>>2];if(l>>>0>1431655765){break a}d=F[a+32>>2];c=d;i=F[c+8>>2];b=F[c+16>>2];h=F[c+12>>2];c=F[c+20>>2];g=li(i-b|0,h-(c+(b>>>0>i>>>0)|0)|0,3,0);if(!_&g>>>0<l>>>0){break a}n=F[f+24>>2];g=ki(l,0,3,0);if(!_&g>>>0<n>>>0|((c|0)>=(h|0)&b>>>0>=i>>>0|(c|0)>(h|0))){break a}i=G[b+F[d>>2]|0];b=b+1|0;c=b?c:c+1|0;F[d+16>>2]=b;F[d+20>>2]=c;b:{c:{if(!i){d=0;c=Z-32|0;Z=c;F[c+24>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;d:{e:{b=L(l,3);if(b){if(b>>>0>=1073741824){break e}i=L(l,12);d=ka(i);ma(d,0,i)}b=mc(b,1,F[a+32>>2],d);f:{g:{if(!(!l|!b)){i=0;while(1){h:{g=e;b=(i<<2)+d|0;h=F[b>>2];e=h>>>1|0;h=g+(h&1?0-e|0:e)|0;if((h|0)<0){break h}F[c>>2]=h;e=F[b+4>>2];g=e>>>1|0;h=h+(e&1?0-g|0:g)|0;if((h|0)<0){break h}F[c+4>>2]=h;b=F[b+8>>2];e=b>>>1|0;e=h+(b&1?0-e|0:e)|0;if((e|0)<0){break h}F[c+8>>2]=e;mb(F[a+44>>2]+96|0,c);i=i+3|0;b=1;j=j+1|0;if((j|0)!=(l|0)){continue}break g}break}b=0;break g}if(!d){break f}}ja(d)}Z=c+32|0;break d}na();v()}if(b){break c}break a}if(n>>>0<=255){if(!l){break c}while(1){i:{F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;d=F[a+32>>2];b=d;i=F[b+16>>2];e=F[b+8>>2];c=F[b+20>>2];g=F[b+12>>2];b=g;if(e>>>0<=i>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break i}j=F[d>>2];m=G[j+i|0];b=c;h=i+1|0;b=h?b:b+1|0;F[d+16>>2]=h;F[d+20>>2]=b;F[f+8>>2]=m;m=e>>>0<i>>>0&(c|0)>=(g|0)|(c|0)>(g|0);e=m?i:e;g=m?c:g;if((e|0)==(h|0)&(g|0)==(b|0)){break i}m=G[h+j|0];b=c;h=i+2|0;b=h>>>0<2?b+1|0:b;F[d+16>>2]=h;F[d+20>>2]=b;F[f+12>>2]=m;if((e|0)==(h|0)&(b|0)==(g|0)){break i}h=G[h+j|0];b=c;c=i+3|0;b=c>>>0<3?b+1|0:b;F[d+16>>2]=c;F[d+20>>2]=b;F[f+16>>2]=h;mb(F[a+44>>2]+96|0,f+8|0);k=k+1|0;if((l|0)!=(k|0)){continue}break c}break}k=0;break a}if(n>>>0<=65535){if(!l){break c}while(1){j:{F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];i=b;e=h+2|0;b=e>>>0<2?b+1|0:b;if(c>>>0<e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break j}m=F[j>>2];g=m+h|0;g=G[g|0]|G[g+1|0]<<8;F[j+16>>2]=e;F[j+20>>2]=b;F[f+8>>2]=g;b=i;g=h+4|0;b=g>>>0<4?b+1|0:b;if(c>>>0<g>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break j}e=e+m|0;e=G[e|0]|G[e+1|0]<<8;F[j+16>>2]=g;F[j+20>>2]=b;F[f+12>>2]=e;e=c;b=i;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break j}d=g+m|0;d=G[d|0]|G[d+1|0]<<8;F[j+16>>2]=c;F[j+20>>2]=b;F[f+16>>2]=d;mb(F[a+44>>2]+96|0,f+8|0);k=k+1|0;if((l|0)!=(k|0)){continue}break c}break}k=0;break a}k:{if(n>>>0>2097151){break k}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break k}if(!l){break c}while(1){l:{F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;if(!hb(1,f+4|0,F[a+32>>2])){break l}F[f+8>>2]=F[f+4>>2];if(!hb(1,f+4|0,F[a+32>>2])){break l}F[f+12>>2]=F[f+4>>2];if(!hb(1,f+4|0,F[a+32>>2])){break l}F[f+16>>2]=F[f+4>>2];mb(F[a+44>>2]+96|0,f+8|0);k=k+1|0;if((l|0)!=(k|0)){continue}break c}break}k=0;break a}if(!l){break c}while(1){F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];i=b;e=h+4|0;b=e>>>0<4?b+1|0:b;if(c>>>0<e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}m=F[j>>2];g=m+h|0;g=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[j+16>>2]=e;F[j+20>>2]=b;F[f+8>>2]=g;b=i;g=h+8|0;b=g>>>0<8?b+1|0:b;if(c>>>0<g>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}e=e+m|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[j+16>>2]=g;F[j+20>>2]=b;F[f+12>>2]=e;e=c;b=i;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}d=g+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+16>>2]=c;F[j+20>>2]=b;F[f+16>>2]=d;mb(F[a+44>>2]+96|0,f+8|0);k=k+1|0;if((l|0)!=(k|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;k=1;break a}k=0}Z=f+32|0;return k|0}function Ld(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a:{b:{if(!H[b+38>>1]){break b}if(!Ta(1,h+12|0,b)){break b}e=F[b+8>>2];f=F[b+16>>2];j=e-f|0;k=F[h+12>>2];e=F[b+12>>2]-(F[b+20>>2]+(e>>>0<f>>>0)|0)|0;if(j>>>0<k>>>6>>>0&(e|0)<=0|(e|0)<0){break b}e=F[h>>2];d=F[h+4>>2]-e>>2;c:{if(d>>>0<k>>>0){qa(h,k-d|0);k=F[h+12>>2];break c}if(d>>>0<=k>>>0){break c}F[h+4>>2]=e+(k<<2)}i=1;if(!k){break a}e=F[b+16>>2];d=F[b+20>>2];r=F[h>>2];l=F[b+8>>2];o=F[b+12>>2];j=0;while(1){i=0;if((d|0)>=(o|0)&e>>>0>=l>>>0|(d|0)>(o|0)){break a}i=F[b>>2];p=G[i+e|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=p>>>2|0;m=0;d:{e:{f:{g:{s=p&3;switch(s|0){case 3:break g;case 0:break e;default:break f}}f=f+j|0;i=0;if(f>>>0>=k>>>0){break a}ma(r+(j<<2)|0,0,(p&252)+4|0);j=f;break d}while(1){if((e|0)==(l|0)&(d|0)==(o|0)){break b}k=G[e+i|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=k<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}F[r+(j<<2)>>2]=f}j=j+1|0;k=F[h+12>>2];if(j>>>0<k>>>0){continue}break}d=h+16|0;o=F[h>>2];f=F[h+16>>2];e=F[h+20>>2]-f|0;h:{if(e>>>0<=4194303){qa(d,1048576-(e>>>2|0)|0);break h}if((e|0)==4194304){break h}F[h+20>>2]=f+4194304}e=h+28|0;j=F[e>>2];f=F[h+32>>2]-j>>3;i:{if(f>>>0<k>>>0){_a(e,k-f|0);j=F[e>>2];break i}if(f>>>0>k>>>0){F[h+32>>2]=(k<<3)+j}if(!k){break b}}l=F[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;h=F[e>>2];m=(d<<3)+j|0;f=i;F[m+4>>2]=f;F[m>>2]=h;e=F[e>>2];i=e+f|0;if(i>>>0>1048576){break b}j:{if(f>>>0>=i>>>0){break j}m=0;h=e&7;if(h){while(1){F[l+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((h|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break j}while(1){e=l+(f<<2)|0;F[e>>2]=d;F[e+28>>2]=d;F[e+24>>2]=d;F[e+20>>2]=d;F[e+16>>2]=d;F[e+12>>2]=d;F[e+8>>2]=d;F[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((k|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}k:{if(!i|(F[g+20>>2]?0:a)){break k}i=0;j=Z-16|0;Z=j;l:{if(!Sa(1,j+8|0,b)){break l}d=F[b+8>>2];f=F[b+16>>2];l=d-f|0;n=F[j+12>>2];h=F[b+20>>2];d=F[b+12>>2]-(h+(d>>>0<f>>>0)|0)|0;e=F[j+8>>2];if((n|0)==(d|0)&e>>>0>l>>>0|d>>>0<n>>>0){break l}d=h+n|0;l=e+f|0;d=l>>>0<f>>>0?d+1|0:d;F[b+16>>2]=l;F[b+20>>2]=d;if((e|0)<=0){break l}b=f+F[b>>2]|0;F[g+48>>2]=b;d=e-1|0;f=d+b|0;l=G[f|0];m:{if(l>>>0<=63){F[g+52>>2]=d;b=G[f|0]&63;break m}n:{switch((l>>>6|0)-1|0){case 0:if(e>>>0<2){break l}d=e-2|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8&16128|G[b|0];break m;case 1:if(e>>>0<3){break l}d=e-3|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break m;default:break n}}d=e-4|0;F[g+52>>2]=d;b=b+d|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[g+56>>2]=b+4194304;i=b>>>0<1069547520}Z=j+16|0;if(!i){break k}if(!a){t=1;break k}b=F[g+52>>2];f=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];j=F[g+24>>2];while(1){o:{if(f>>>0>4194303){break o}while(1){if((b|0)<=0){break o}b=b-1|0;F[g+52>>2]=b;f=G[b+e|0]|f<<8;F[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;l=F[j+(i<<2)>>2];n=d+(l<<3)|0;f=(L(F[n>>2],f>>>20|0)+i|0)-F[n+4>>2]|0;F[g+56>>2]=f;F[(q<<2)+c>>2]=l;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;return t}function kh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=M(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){m=F[d+80>>2];u=Z-16|0;Z=u;g=F[a+4>>2];k=G[b+24|0];h=F[d+48>>2];n=F[F[d>>2]>>2];c=u+8|0;F[c>>2]=1065353216;d=c;J[c>>2]=M(-1<<g^-1)/J[a+20>>2];c=ka(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=J[d>>2];n=F[a+8>>2];v=F[b>>2];d=F[b+48>>2];g=F[b+40>>2];w=F[b+44>>2];if(!G[b+84|0]){f=F[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=F[v>>2];l=ki(g,w,F[f+(i<<2)>>2],0)+d|0;h=la(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));b:{if(M(N(e))<M(2147483648)){r=~~e;break b}r=-2147483648}F[l>>2]=r;j=j|4;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));c:{if(M(N(e))<M(2147483648)){j=~~e;break c}j=-2147483648}F[l+4>>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+h>>2]-J[b+n>>2]))+M(.5))));d:{if(M(N(e))<M(2147483648)){b=~~e;break d}b=-2147483648}F[l>>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=F[v>>2];h=ki(g,w,i,l)+d|0;j=la(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));e:{if(M(N(e))<M(2147483648)){r=~~e;break e}r=-2147483648}F[h>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));f:{if(M(N(e))<M(2147483648)){f=~~e;break f}f=-2147483648}F[h+4>>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+j>>2]-J[b+n>>2]))+M(.5))));g:{if(M(N(e))<M(2147483648)){b=~~e;break g}b=-2147483648}F[h>>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}ja(c);Z=u+16|0;return 1}j=Z-16|0;Z=j;m=F[a+4>>2];i=G[b+24|0];g=F[d+48>>2];h=F[F[d>>2]>>2];d=j+8|0;F[d>>2]=1065353216;l=d;J[d>>2]=M(-1<<m^-1)/J[a+20>>2];d=ka(i<<2);m=F[c+4>>2];q=F[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=J[l>>2];h=F[a+8>>2];v=F[b>>2];l=F[b+48>>2];m=F[b+40>>2];w=F[b+44>>2];if(G[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[q+(c<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));i:{if(M(N(e))<M(2147483648)){r=~~e;break i}r=-2147483648}F[g>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));j:{if(M(N(e))<M(2147483648)){f=~~e;break j}f=-2147483648}F[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));k:{if(M(N(e))<M(2147483648)){b=~~e;break k}b=-2147483648}F[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=F[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[s+(F[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));l:{if(M(N(e))<M(2147483648)){r=~~e;break l}r=-2147483648}F[g>>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));m:{if(M(N(e))<M(2147483648)){f=~~e;break m}f=-2147483648}F[g+4>>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));n:{if(M(N(e))<M(2147483648)){b=~~e;break n}b=-2147483648}F[g>>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}ja(d);Z=j+16|0;return 1}\nfunction Cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+4>>2];e=F[a>>2];f=(c-e|0)/144|0;if(f>>>0<b>>>0){e=a;b=b-f|0;h=F[a+8>>2];c=F[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){va(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=L(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}F[e+4>>2]=c;break a}c:{d:{e:{a=c;c=F[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0<f>>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=ka(L(f,144))}c=L(i,144)+g|0;a=c;h=b&7;if(h){while(1){va(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=L(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=L(f,144)+g|0;d=F[e+4>>2];f=F[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;F[c>>2]=F[a>>2];F[c+4>>2]=F[a+4>>2];F[c+8>>2]=F[a+8>>2];F[c+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[c+16>>2]=F[a+16>>2];F[c+20>>2]=F[a+20>>2];F[c+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;g=G[a+28|0];F[c+40>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;D[c+28|0]=g;F[c+32>>2]=F[a+32>>2];F[c+36>>2]=F[a+36>>2];F[c+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[c+52>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+44>>2]=F[a+44>>2];F[c+48>>2]=F[a+48>>2];F[c+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;g=c- -64|0;F[g>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+56>>2]=F[a+56>>2];F[c+60>>2]=F[a+60>>2];i=g;g=a- -64|0;F[i>>2]=F[g>>2];F[g>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[c+68>>2]=F[a+68>>2];g=F[a+72>>2];F[c+84>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+72>>2]=g;F[c+76>>2]=F[a+76>>2];F[c+80>>2]=F[a+80>>2];F[c+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[c+96>>2]=0;F[c+88>>2]=0;F[c+92>>2]=0;F[c+88>>2]=F[a+88>>2];F[c+92>>2]=F[a+92>>2];F[c+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;g=G[a+100|0];F[c+112>>2]=0;F[c+104>>2]=0;F[c+108>>2]=0;D[c+100|0]=g;F[c+104>>2]=F[a+104>>2];F[c+108>>2]=F[a+108>>2];F[c+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[c+124>>2]=0;F[c+116>>2]=0;F[c+120>>2]=0;F[c+116>>2]=F[a+116>>2];F[c+120>>2]=F[a+120>>2];F[c+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;g=F[a+128>>2];F[c+140>>2]=0;F[c+132>>2]=0;F[c+136>>2]=0;F[c+128>>2]=g;F[c+132>>2]=F[a+132>>2];F[c+136>>2]=F[a+136>>2];F[c+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}F[e+8>>2]=b;a=F[e+4>>2];F[e+4>>2]=h;d=F[e>>2];F[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;ja(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;ja(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;ja(c)}Gb(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}na();v()}oa();v()}F[e+8>>2]=b;F[e+4>>2]=h;F[e>>2]=c}if(d){ja(d)}}return}if(b>>>0<f>>>0){e=e+L(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=F[b+132>>2];if(d){F[c-8>>2]=d;ja(d)}d=F[c-28>>2];if(d){F[c-24>>2]=d;ja(d)}d=F[c-40>>2];if(d){F[c-36>>2]=d;ja(d)}Gb(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}F[a+4>>2]=e}}function Yc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];b=F[a+64>>2];c=F[b+24>>2];if((c|0)==F[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=F[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=g;F[a+56>>2]=b+4;break e}d=F[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=ka(f<<2)}else{e=0}c=e+(h<<2)|0;F[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=e+(f<<2);F[a+56>>2]=h;F[a+52>>2]=c;if(!d){break e}ja(d)}f:{g:{if(!(F[F[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|F[F[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=F[F[F[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=F[a+64>>2];f=F[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|F[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=F[F[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}F[F[a+28>>2]+(e<<2)>>2]=g;b=F[a+44>>2];i:{if((b|0)!=F[a+48>>2]){F[b>>2]=e;F[a+44>>2]=b+4;break i}d=F[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0<f>>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=ka(f<<2)}else{i=0}c=i+(h<<2)|0;F[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+48>>2]=i+(f<<2);F[a+44>>2]=h;F[a+40>>2]=c;if(!d){break i}ja(d)}i=g+1|0;b=F[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=F[a+56>>2];k:{if((b|0)!=F[a+60>>2]){F[b>>2]=i;F[a+56>>2]=b+4;break k}d=F[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0<h>>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=ka(h<<2)}else{g=0}c=g+(j<<2)|0;F[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=g+(h<<2);F[a+56>>2]=j;F[a+52>>2]=c;if(!d){break k}ja(d)}d=i+1|0;b=F[a+44>>2];l:{if((b|0)!=F[a+48>>2]){F[b>>2]=f;F[a+44>>2]=b+4;break l}h=F[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0<j>>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=ka(j<<2)}else{g=0}c=g+(l<<2)|0;F[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(h|0)){continue}break}}F[a+48>>2]=g+(j<<2);F[a+44>>2]=l;F[a+40>>2]=c;if(!h){break l}ja(h)}g=i;i=d}F[F[a+28>>2]+(f<<2)>>2]=g;b=F[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=F[b+24>>2];if(k>>>0<F[b+28>>2]-c>>2>>>0){continue}break}return 1}na();v()}oa();v()}na();v()}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=Z-96|0;Z=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;a:{if((b|0)==-1){break a}j=F[a+20>>2];d=F[j>>2];e=F[F[e>>2]+(b<<2)>>2];if(e>>>0>=F[j+4>>2]-d>>2>>>0){break a}e=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];d=F[a+4>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;j=f- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Ga(d,e,D[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!F[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=F[a+20>>2];b=F[m>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[m+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[(d<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Ga(b,d,D[b+24|0],f+32|0);if((e|0)==-1){break c}d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break c}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Ga(b,d,D[b+24|0],f+8|0);g=F[f+8>>2];b=F[f+56>>2];d=g-b|0;p=F[f+60>>2];t=F[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=F[f+40>>2];e=F[f+64>>2];m=i-e|0;u=F[f+68>>2];y=F[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=ki(d,t,m,y);w=o-g|0;x=h-(_+(g>>>0>o>>>0)|0)|0;h=w;i=F[f+16>>2];g=i-e|0;u=F[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=F[f+32>>2];i=k-b|0;w=F[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,i,w);o=h+b|0;h=_+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=F[f+48>>2];e=F[f+72>>2];d=k-e|0;t=F[f+76>>2];x=F[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0<l>>>0?b+1|0:b;l=F[f+24>>2];p=l-e|0;e=F[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=ki(p,e,i,w);l=k-q|0;q=b-(_+(k>>>0<q>>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,e,m,y);r=s+d|0;b=_+b|0;s=r>>>0<s>>>0?b+1|0:b;nc(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0<g>>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0<e>>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0<j>>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0<a>>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=li(o,m,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=f+96|0;return}ta();v()}ta();v()}ta();v()}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=F[d>>2];i=F[e+60>>2];f=F[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=F[e>>2];F[e>>2]=0;g=F[d>>2];F[d>>2]=h;if(g){xa(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=F[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=F[c>>2];F[c>>2]=0;if(e){xa(e)}if((c|0)!=(d|0)){continue}break}}F[a+12>>2]=d;g=F[a+4>>2];b:{if(!g|(i|0)<0){break b}c=F[g+24>>2];d=F[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==F[F[c>>2]+24>>2]){d=c+4|0;i=F[g+28>>2];if((d|0)!=(i|0)){while(1){h=F[d>>2];F[d>>2]=0;e=F[c>>2];F[c>>2]=h;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=F[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=F[d>>2];F[d>>2]=0;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}if((c|0)!=(d|0)){continue}break}}F[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=L(f,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(F[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;pa(f,c,d-c|0);F[e+24>>2]=d-4}c=F[a+24>>2];d=F[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break e}F[c>>2]=d-1}c=F[a+36>>2];d=F[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break f}F[c>>2]=d-1}c=F[a+48>>2];d=F[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+60>>2];d=F[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}i=a+(i|4)|0;f=F[i>>2];if((f|0)>(b|0)){F[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=F[a>>2];if((f|0)>=(b|0)){break a}F[a>>2]=b-1}}function ja(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0<I[2945]){break a}a=a+b|0;if(F[2946]!=(d|0)){if(b>>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+12068|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[2943]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[2947]==(f|0)){F[2947]=d;a=F[2944]+a|0;F[2944]=a;F[d+4>>2]=a|1;if(F[2946]!=(d|0)){break a}F[2943]=0;F[2946]=0;return}if(F[2946]==(f|0)){F[2946]=d;a=F[2943]+a|0;F[2943]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+12068|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[2946]!=(d|0)){break f}F[2943]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);k:{if(!(c&a)){F[2941]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=O(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+12068|0;l:{m:{c=F[2942];b=1<<e;n:{if(!(c&b)){F[2942]=b|c;F[g>>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[2949]-1|0;F[2949]=a?a:-1}}function di(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){qa(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(m);return 1}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=F[a+48>>2];F[a+52>>2]=e;a:{if((e|0)!=F[a+56>>2]){F[e>>2]=b;F[a+52>>2]=e+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!e){break a}ja(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=F[F[a+4>>2]+28>>2];k=F[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-L(g,3)|0?-1:2)+b|0;j=F[c+(e<<2)>>2];if((j|0)==-1){return 0}b=F[a+36>>2];g=b+(k>>>3&536870908)|0;d=F[g>>2];c=1<<k;if(!(d&c)){F[g>>2]=c|d;Ka(a+8|0,k,i);b=F[a+36>>2]}d=(j>>>3&536870908)+b|0;c=F[d>>2];b=1<<j;if(!(c&b)){F[d>>2]=b|c;Ka(a+8|0,j,e)}f=F[a+52>>2];if((f|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=F[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=F[a+24>>2]+(c>>>3&268435452)|0;d=F[g>>2];c=1<<c;if(d&c){break c}F[g>>2]=c|d;h=F[a+4>>2];c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=F[a+36>>2]+(c>>>3&536870908)|0;i=F[j>>2];e=1<<c;if(i&e){break e}f:{g=F[F[h+40>>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];break e}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|F[F[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=F[F[F[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;f=F[a+24>>2];e=c>>>5|0;j=F[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(F[F[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=F[F[F[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=F[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=F[f+(e<<2)>>2];d=1<<d;if(!(j&d)){break i}}if(g){break j}d=1<<i;f=F[a+24>>2];e=i>>>5|0;j=F[f+(e<<2)>>2];if(!(d&j)){break d}}f=F[a+52>>2]-4|0;F[a+52>>2]=f;break b}if(g){b=c;break d}if(F[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=F[a+52>>2];F[h-4>>2]=b;if(F[a+56>>2]!=(h|0)){F[h>>2]=c;f=h+4|0;break c}m:{i=F[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=ka(e<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;F[b>>2]=F[h>>2];if((h|0)!=(i|0)){continue}break}}F[a+56>>2]=d+(e<<2);F[a+52>>2]=f;F[a+48>>2]=b;if(!i){break b}ja(i);f=F[a+52>>2];break b}na();v()}oa();v()}F[(e<<2)+f>>2]=d|j;c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}F[a+52>>2]=f}if(F[a+48>>2]!=(f|0)){continue}break}}return 1}function he(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0<e>>>0){qa(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(l);return 1}function Fb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0);i=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}g=ni(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=ka(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=i;F[c>>2]=0;m=M(F[b+12>>2]+1>>>0);j=J[b+16>>2];d:{if(m>M(j*M(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=M(S(M(m/j)));e:{if(j<M(4294967296)&j>=M(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Mc(d);f=F[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=M(S(M(M(I[b+12>>2])/J[b+16>>2])));h:{if(j<M(4294967296)&j>=M(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(ni(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-O(d-1|0);break i}d=Mc(d)}e=d>>>0<e>>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=ka(h<<2);e=F[b>>2];F[b>>2]=d;if(e){ja(e)}F[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;F[k+F[b>>2]>>2]=0;F[F[b>>2]+(k|4)>>2]=0;F[F[b>>2]+(k|8)>>2]=0;F[F[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){F[F[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=F[b+8>>2];if(!e){break k}d=b+8|0;f=F[e+4>>2];g=ni(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=F[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+F[b>>2]|0;if(!F[k>>2]){F[k>>2]=e;e=d;f=g;break o}F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d}d=F[e>>2];if(d){continue}break}break k}d=F[b>>2];F[b>>2]=0;if(d){ja(d)}F[b+4>>2]=0;break k}oa();v()}f=h-1&f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&F[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+F[b>>2]|0;if(F[h>>2]){F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d;break p}F[h>>2]=e;e=d;f=g}d=F[e>>2];if(d){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];q:{r:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break q}d=F[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0<f>>>0){break s}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break r}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function Vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=L(b,12)+a|0;F[j+12>>2]=F[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((Wc(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=F[a+56>>2]+(m>>>3&536870908)|0;h=F[d>>2];e=1<<m;if(h&e){break e}f=0;while(1){F[d>>2]=e|h;d=F[j+12>>2];f:{if((d|0)!=F[j+16>>2]){F[d>>2]=m;F[j+12>>2]=d+4;break f}n=F[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0<g>>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=ka(i<<2)}else{g=0}h=g+(e<<2)|0;F[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;F[h>>2]=F[d>>2];if((d|0)!=(n|0)){continue}break}}F[j+8>>2]=h;F[j+12>>2]=e;F[j+16>>2]=g+(i<<2);if(!n){break f}ja(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=F[(F[F[a>>2]+96>>2]+L(e,12)|0)+(i-L(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=F[a+56>>2]+(m>>>3&268435452)|0;h=F[d>>2];e=1<<m;if(!(h&e)){continue}}break}if(l|!(g&1)){break e}l=F[j+12>>2]-4|0;g=F[l>>2];d=F[a+56>>2]+(g>>>3&536870908)|0;c=F[d>>2];o=d,p=oi(g)&c,F[o>>2]=p;F[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;Wc(a,-1);break a}na();v()}oa();v()}F[((b<<2)+a|0)+44>>2]=k;b=F[j+12>>2];i=F[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=F[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=F[l+i>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;g=F[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=F[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(c)&a,F[o>>2]=p}}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=F[a+48>>2];F[a+52>>2]=f;a:{if((f|0)!=F[a+56>>2]){F[f>>2]=b;F[a+52>>2]=f+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!f){break a}ja(f)}e=-1;d=F[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=F[F[d>>2]+(i<<2)>>2]}b:{h=b-L(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=F[F[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;g=F[f>>2];d=1<<e;if(!(g&d)){F[f>>2]=d|g;Ka(a+8|0,e,i);c=F[a+36>>2]}g=(j>>>3&536870908)+c|0;d=F[g>>2];c=1<<j;if(!(d&c)){F[g>>2]=c|d;Ka(a+8|0,j,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=F[a+24>>2]+(d>>>3&268435452)|0;g=F[f>>2];d=1<<d;if(g&d){break d}F[f>>2]=d|g;while(1){i=F[a+4>>2];e=F[F[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=F[a+36>>2]+(e>>>3&536870908)|0;f=F[h>>2];g=1<<e;if(f&g){break f}g:{d=F[F[i+24>>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=F[F[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}F[h>>2]=f|g;Ka(j,e,b);break f}F[h>>2]=f|g;Ka(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<<c;e=F[a+24>>2];f=c>>>5|0;i=F[e+(f<<2)>>2];break e}c=-1;g=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=F[e+(f<<2)>>2];d=1<<d;if(!(i&d)){break k}}if(!g){d=1<<h;e=F[a+24>>2];f=h>>>5|0;i=F[e+(f<<2)>>2];if(!(d&i)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(g){b=c;break e}if(F[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=F[a+52>>2];F[e-4>>2]=b;if(F[a+56>>2]!=(e|0)){F[e>>2]=c;c=e+4|0;break d}l:{h=F[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=ka(f<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;F[b>>2]=F[e>>2];if((e|0)!=(h|0)){continue}break}}F[a+56>>2]=d+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!h){break c}ja(h);c=F[a+52>>2];break c}na();v()}oa();v()}F[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+60>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+72>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+84>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<<e;j=wa(c);g=F[a+96>>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0<j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0<l>>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function uh(a){a=a|0;var b=0,c=0,d=0,e=0;c=F[a+32>>2];d=F[c+16>>2];e=F[c+12>>2];b=F[c+20>>2];if(I[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=G[F[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;F[c+16>>2]=d;F[c+20>>2]=b;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=ka(384);F[b>>2]=8284;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 2:break d;default:break b}}b=ka(440);F[b>>2]=8336;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}$[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=$[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function ei(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function Vh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)<F[a+8>>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ka(b<<2);F[h+24>>2]=b;F[h+20>>2]=0;F[h+16>>2]=c;b=F[a>>2];F[h+12>>2]=0;F[h+8>>2]=b;c=F[a+4>>2];F[h+4>>2]=c&31;F[h>>2]=b+(c>>>3&536870908);e=Z-32|0;Z=e;i=F[h+4>>2];g=F[h+12>>2];j=F[h>>2];d=F[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=F[h+20>>2];c=b+f|0;F[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){F[F[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=F[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<<g&-1>>>i-f;F[c>>2]=F[c>>2]&(i^-1)|i&F[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){pa(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;F[g>>2]=F[g>>2]&(b^-1)|b&F[c+d>>2];break c}F[e+28>>2]=g;F[e+24>>2]=d;F[e+20>>2]=i;F[e+16>>2]=j;F[e+12>>2]=f;F[e+8>>2]=c;b=F[e+28>>2];c=F[e+24>>2];g=(F[e+20>>2]-b|0)+(F[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=F[e+12>>2];d=F[e+8>>2];break d}e:{if(!b){b=F[e+12>>2];break e}d=F[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=F[e+8>>2];m=F[l>>2]&(-1<<d&-1>>>j-i^-1);j=F[c>>2]&(-1<<b&-1>>>k-f);F[l>>2]=m|(b>>>0<d>>>0?j<<d-b:j>>>b-d|0);c=d+i|0;b=c&31;F[e+12>>2]=b;d=l+(c>>>3&536870908)|0;F[e+8>>2]=d;c=f-i|0;if((c|0)>0){F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|j>>>i+F[e+28>>2];F[e+12>>2]=c;b=c}g=g-f|0;c=F[e+24>>2]+4|0;F[e+24>>2]=c}i=-1<<b;f=32-b|0;if((g|0)>=32){j=i^-1;while(1){d=F[e+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<<b;F[e+8>>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>f;c=F[e+24>>2]+4|0;F[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=F[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=F[d>>2]&(i&-1>>>j-f^-1);i=F[c>>2]&-1>>>32-g;F[d>>2]=j|i<<b;b=b+f|0;c=b&31;F[e+12>>2]=c;d=(b>>>3&536870908)+d|0;F[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}F[d>>2]=F[d>>2]&(-1>>>32-b^-1)|i>>>f;F[e+12>>2]=b}F[e+4>>2]=b;F[e>>2]=d}Z=e+32|0;b=F[a>>2];F[a>>2]=F[h+16>>2];F[h+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[h+20>>2];F[h+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[h+24>>2];F[h+24>>2]=c;if(!b){break b}ja(b)}Z=h+32|0;return}na();v()}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=$[F[F[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=F[b+4>>2]-F[b>>2]>>2;e=Z+-64|0;Z=e;f=kb(e);d=L(F[2541],n);cc(f,F[F[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=bc(ka(96),f);D[f+84|0]=1;F[f+72>>2]=F[f+68>>2];ac(f,i);F[f+60>>2]=F[F[a+8>>2]+60>>2];d=F[a+16>>2];F[a+16>>2]=f;if(d){xa(d)}Z=e- -64|0;h=F[a+16>>2];if(!F[h+80>>2]){break a}j=F[F[h>>2]>>2];if(!j){break a}m=F[c+12>>2];e=m;d=F[c+20>>2];g=F[c+8>>2];k=F[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=L(i,n);i=j+F[h+48>>2]|0;h=F[c>>2];j=G[h+k|0];e=k+1|0;f=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=f;b:{c:{if(j){if(mc(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=G[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;d=F[F[a+16>>2]+64>>2];d=F[d+4>>2]-F[d>>2]|0;if((g|0)==F[2541]){e=l<<2;if(e>>>0>d>>>0){break a}g=F[c+8>>2];k=F[c+12>>2];j=F[c+20>>2];d=F[c+16>>2];f=e+d|0;j=f>>>0<e>>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}la(i,d+F[c>>2]|0,e);f=F[c+20>>2];d=e+F[c+16>>2]|0;f=d>>>0<e>>>0?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;break c}if(d>>>0<L(g,l)>>>0){break a}d=F[c+8>>2];f=F[c+16>>2];e=d-f|0;m=d>>>0<f>>>0;d=F[c+20>>2];k=F[c+12>>2]-(m+d|0)|0;m=ki(g,0,l,0)>>>0>e>>>0;e=_;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=F[c+8>>2];j=F[c+12>>2];e=f+g|0;d=e>>>0<g>>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}la(i+(h<<2)|0,F[c>>2]+f|0,g);d=F[c+20>>2];f=g+F[c+16>>2]|0;d=f>>>0<g>>>0?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=F[a+20>>2];if(d){e=0;if($[F[F[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=F[e+i>>2];F[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=F[d+i>>2];F[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=F[d+i>>2];F[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=F[a+20>>2];e:{if(!f){break e}if(!($[F[F[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=F[a+20>>2];if(!($[F[F[a>>2]+44>>2]](a,i,i,l,n,F[b>>2])|0)){break a}}o=1}return o|0}function Lh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<<d;d=-2-e|0;F[a+84>>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Hh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<<d;d=-2-e|0;F[a+84>>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:{if(!H[b+38>>1]){break a}if(!Ta(1,a+12|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];g=d-e|0;f=F[a+12>>2];d=F[b+12>>2]-(F[b+20>>2]+(d>>>0<e>>>0)|0)|0;if(g>>>0<f>>>6>>>0&(d|0)<=0|(d|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;b:{if(c>>>0<f>>>0){qa(a,f-c|0);f=F[a+12>>2];break b}if(c>>>0<=f>>>0){break b}F[a+4>>2]=d+(f<<2)}if(!f){return 1}d=F[b+16>>2];c=F[b+20>>2];l=F[a>>2];j=F[b+8>>2];i=F[b+12>>2];g=0;while(1){if((c|0)>=(i|0)&d>>>0>=j>>>0|(c|0)>(i|0)){return 0}m=F[b>>2];k=G[m+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=k>>>2|0;h=0;c:{d:{e:{f:{n=k&3;switch(n|0){case 3:break f;case 0:break d;default:break e}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ma(l+(g<<2)|0,0,(k&252)+4|0);g=e;break c}while(1){if((d|0)==(j|0)&(c|0)==(i|0)){break a}f=G[d+m|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[l+(g<<2)>>2]=e}f=F[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;g:{if(c>>>0<=16383){qa(b,4096-(c>>>2|0)|0);break g}if((c|0)==16384){break g}F[a+20>>2]=d+16384}c=a+28|0;g=F[c>>2];d=F[a+32>>2]-g>>3;h:{if(d>>>0<f>>>0){_a(c,f-d|0);g=F[c>>2];break h}if(d>>>0>f>>>0){F[a+32>>2]=(f<<3)+g}if(!f){break a}}d=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];e=a;i=(b<<3)+g|0;F[i+4>>2]=a;F[i>>2]=h;c=F[c>>2];a=c+a|0;if(a>>>0>4096){break a}i:{if(a>>>0<=e>>>0){break i}h=0;i=c&7;if(i){while(1){F[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break i}while(1){c=d+(e<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=Z-32|0;Z=f;e=f+8|0;c=Z-80|0;Z=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;jc(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}ra(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}ja(F[c+12>>2]);break a}if(D[c+23|0]<0){ja(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=ka(32);D[b+26|0]=0;a=G[1475]|G[1476]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;F[c+8>>2]=-1;a=c+8|4;ra(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];ja(b);break a}ra(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){ja(F[c+12>>2])}ja(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}Z=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){ja(F[f+12>>2])}Z=f+32|0;return a|0}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-32|0;Z=e;a:{if((c|0)!=3){break a}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if(($[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];b:{if(($[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break b}g=$[F[F[c>>2]+36>>2]](c)|0;a=$[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break b}f=$[F[F[c>>2]+40>>2]](c,f)|0;c:{if(f){if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=5928;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=6492;a=d+96|0;break c}if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=6932;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7352;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=ka(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=7764}Z=e+32|0;return d|0}function $c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=Z-80|0;Z=f;a:{if(!Wb(1,f+76|0,b)){break a}k=F[f+76>>2];if(!k){break a}c=F[b+8>>2];e=F[b+16>>2];c=ki(c-e|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0<e>>>0)|0)|0,5,0);e=_;if(c>>>0<k>>>0&(e|0)<=0|(e|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;b:{if(d>>>0<k>>>0){qa(a+4|0,k-d|0);break b}if(d>>>0<=k>>>0){break b}F[a+8>>2]=c+(k<<2)}p=a+16|0;l=F[a+32>>2];while(1){g=F[b+12>>2];c=g;d=F[b+20>>2];h=F[b+8>>2];e=F[b+16>>2];if((c|0)<=(d|0)&h>>>0<=e>>>0|(c|0)<(d|0)){d=0;break a}m=F[b>>2];q=G[m+e|0];c=d;i=e+1|0;c=i?c:c+1|0;F[b+16>>2]=i;F[b+20>>2]=c;if(h>>>0<=i>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}i=G[i+m|0];c=d;j=e+2|0;c=j>>>0<2?c+1|0:c;F[b+16>>2]=j;F[b+20>>2]=c;if(h>>>0<=j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}j=G[j+m|0];c=d;n=e+3|0;c=n>>>0<3?c+1|0:c;F[b+16>>2]=n;F[b+20>>2]=c;if(h>>>0<=n>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}h=G[m+n|0];c=d;d=e+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(q>>>0>4){d=0;break a}if((i-12&255)>>>0<245){d=0;break a}if(!j){d=0;break a}c=kb(f+8|0);g=(h|0)!=0;d=i-1|0;if(d>>>0<=10){d=F[(d<<2)+10148>>2]}else{d=-1}d=L(d,j);cc(c,q,j,i,g,d,d>>31);if(Wb(1,f+4|0,b)){e=F[f+4>>2];F[f+68>>2]=e;d=bc(ka(96),c);$[F[F[l>>2]+8>>2]](l,F[l+12>>2]-F[l+8>>2]>>2,d);d=(F[l+12>>2]-F[l+8>>2]>>2)-1|0;h=d<<2;F[F[h+F[l+8>>2]>>2]+60>>2]=e;F[F[a+4>>2]+(o<<2)>>2]=d;c=F[a+16>>2];e=F[a+20>>2]-c>>2;c:{if((e|0)>(d|0)){break c}F[f>>2]=-1;d=d+1|0;if(d>>>0>e>>>0){Fa(p,d-e|0,f);c=F[p>>2];break c}if(d>>>0>=e>>>0){break c}F[a+20>>2]=(d<<2)+c}F[c+h>>2]=o;d=1;o=o+1|0;if((o|0)!=(k|0)){continue}break a}break}d=0}Z=f+80|0;return d|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;F[k+8>>2]=c;h=F[a+12>>2];d=F[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=F[a+16>>2];d=F[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ma(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{m=F[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ma(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;h=h-4|0;F[h>>2]=f;if((d|0)!=(m|0)){continue}break}F[a+16>>2]=e;e=F[a+12>>2];F[a+12>>2]=g;d=F[a+8>>2];F[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=F[e>>2];F[e>>2]=0;if(f){xa(f)}if((d|0)!=(e|0)){continue}break}break b}na();v()}oa();v()}F[a+16>>2]=e;F[a+12>>2]=g;F[a+8>>2]=i}if(d){ja(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=F[h>>2];F[h>>2]=0;if(c){xa(c)}if((d|0)!=(h|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}j=L(d,12)+a|0;d=F[j+24>>2];if((d|0)!=F[j+28>>2]){F[d>>2]=b;F[j+24>>2]=d+4;break g}i=F[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=ka(e<<2)}else{d=0}f=d+(f<<2)|0;F[f>>2]=b;d=pa(d,i,g);F[j+20>>2]=d;F[j+24>>2]=f+4;F[j+28>>2]=d+(e<<2);if(!i){break g}ja(i)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;a=a+(b<<2)|0;b=F[a>>2];F[a>>2]=c;if(b){xa(b)}a=F[k+8>>2];F[k+8>>2]=0;if(a){xa(a)}Z=k+16|0;return}na();v()}oa();v()}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(F[a+12>>2]==(b|0)){break a}a=b;b=F[d+4>>2];e=F[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(D[b-1|0]<0){ja(F[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}F[d+12>>2]=a;F[d+4>>2]=e;c=F[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=F[d+4>>2];b:{if((a|0)!=F[d+8>>2]){c:{if(D[c+27|0]>=0){b=F[c+20>>2];F[a>>2]=F[c+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[c+24>>2];break c}ra(a,F[c+16>>2],F[c+20>>2])}F[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=F[d+4>>2];e=F[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(F[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0<k>>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=ka(L(b,12))}h=L(b,12);b=L(f,12)+g|0;g:{if(D[c+27|0]>=0){f=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=f;F[b+8>>2]=F[c+24>>2];break g}ra(b,F[c+16>>2],F[c+20>>2]);e=F[d>>2];a=F[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=F[a+4>>2];b=b-12|0;F[b>>2]=F[a>>2];F[b+4>>2]=h;F[b+8>>2]=F[a+8>>2];F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}F[d+8>>2]=g;a=F[d+4>>2];F[d+4>>2]=f;e=F[d>>2];F[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(D[a-1|0]<0){ja(F[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}na();v()}oa();v()}F[d+8>>2]=g;F[d+4>>2]=f;F[d>>2]=b}if(e){ja(e)}}b=F[c+4>>2];h:{if(b){while(1){a=b;b=F[b>>2];if(b){continue}break h}}while(1){a=F[c+8>>2];b=F[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=F[d>>2];if((F[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+L(i,12)|0;a=D[a+11|0]<0?F[a>>2]:a}return a|0}function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=Z-16|0;Z=i;F[i>>2]=b;f=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}f=b+1|0;F[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}F[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=F[(l<<2)+i>>2];if((j|0)!=-1){f=F[F[F[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=F[a+216>>2];if((g|0)==F[a+220>>2]){break e}while(1){g=L(f,144)+g|0;d=F[g+136>>2];c=F[g+140>>2];g:{if(d>>>0<c>>>0){F[d>>2]=j;F[g+136>>2]=d+4;break g}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break g}ja(d)}f=f+1|0;g=F[a+216>>2];if(f>>>0<(F[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0<n>>>0){break e}f=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!wa(F[a+368>>2]+(f<<4)|0)){break h}g=F[a+216>>2]+L(f,144)|0;d=F[g+136>>2];c=F[g+140>>2];if(d>>>0<c>>>0){F[d>>2]=j;F[g+136>>2]=d+4;break h}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0<e>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break h}ja(d)}f=f+1|0;if(f>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}Z=i+16|0;return 1}na();v()}oa();v()}na();v()}function Bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-16|0;Z=h;m=-1;a:{b:{c:{if(!Da(1,h+12|0,b)){break c}j=F[h+12>>2];if(j){c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0<j>>>0){break c}while(1){if(!Da(1,h+8|0,b)){break c}c=F[h+8>>2];if(!Da(1,h+8|0,b)){break c}g=c+g|0;c=F[h+8>>2];if(g>>>0<c>>>0){break c}e=g-c|0;c=F[a+40>>2];d:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=g;F[c>>2]=e;F[a+40>>2]=c+12;j=F[h+12>>2];break d}d=c;c=F[a+36>>2];l=d-c|0;d=(l|0)/12|0;f=d+1|0;if(f>>>0>=357913942){break b}i=d<<1;f=d>>>0>=178956970?357913941:f>>>0<i>>>0?i:f;if(f){if(f>>>0>=357913942){break a}i=ka(L(f,12))}else{i=0}d=i+L(d,12)|0;F[d+4>>2]=g;F[d>>2]=e;e=pa(d+L((l|0)/-12|0,12)|0,c,l);F[a+44>>2]=i+L(f,12);F[a+40>>2]=d+12;F[a+36>>2]=e;if(!c){break d}ja(c)}k=k+1|0;if(k>>>0<j>>>0){continue}break}g=0;hc(b,0,0);if(j){while(1){c=G[b+36|0];d=H[F[a+4>>2]+36>>1];e:{f:{if(((d<<8|d>>>8)&65535)>>>0<=513){if(!c){break e}e=0;d=F[b+32>>2];k=d>>>3|0;f=F[b+24>>2];c=k+f|0;i=F[b+28>>2];g:{if(c>>>0>=i>>>0){c=d;break g}e=G[c|0];c=d+1|0;F[b+32>>2]=c;k=c>>>3|0;e=e>>>(d&7)&1}if(i>>>0>f+k>>>0){break f}break e}if(!c){break e}e=0;c=F[b+32>>2];d=F[b+24>>2]+(c>>>3|0)|0;if(d>>>0>=I[b+28>>2]){break e}e=G[d|0]>>>(c&7)&1}F[b+32>>2]=c+1}c=F[a+36>>2]+L(g,12)|0;D[c+8|0]=G[c+8|0]&254|e&1;g=g+1|0;if((j|0)!=(g|0)){continue}break}}D[b+36|0]=0;d=F[b+20>>2];a=0;e=F[b+32>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;c=e+F[b+16>>2]|0;a=(a>>>3|0)+d|0;F[b+16>>2]=c;F[b+20>>2]=c>>>0<e>>>0?a+1|0:a}m=F[b+16>>2]}Z=h+16|0;return m}na();v()}oa();v()}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Cb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0<a>>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0<j>>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Bb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function Jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=F[b+16>>2];h=F[c+4>>2]-k|0;e=F[c>>2]-k|0;F[c>>2]=e;f=h;F[c+4>>2]=f;l=F[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=L(j,l);f=(e<<1)-n|0;i=(L(g,j)|0)>=0;e=L(g,l);f=((i?0-f|0:f)+e|0)/2|0;F[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;F[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}F[c>>2]=f;F[c+4>>2]=g;j=0}e=F[d>>2]+f|0;h=F[b+16>>2];k:{if((e|0)>(h|0)){e=e-F[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=F[b+4>>2]+e|0}c=F[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-F[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=L(f,h);d=d-e|0;f=(L(c,f)|0)>=0;g=f?0-d|0:d;d=L(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;F[b>>2]=e+k;F[b+4>>2]=c+k}function Uh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0<e>>>0){qa(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ma(ka(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ja(n);return 1}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[b+80>>2];b=G[c+24|0];g=L(j,b);a:{if(!b){break a}h=b<<2;f=ka(h);a=f;k=b&7;if(k){while(1){F[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=F[d>>2];a=F[d+4>>2]-e>>2;b:{if(a>>>0<g>>>0){qa(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}F[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!lb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!lb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break e}m=F[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;J[g>>2]=J[h+f>>2];J[g+4>>2]=J[(h|4)+f>>2];J[g+8>>2]=J[(h|8)+f>>2];J[g+12>>2]=J[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){J[(e<<2)+m>>2]=J[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}ja(f)}return i|0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;c=F[b+20>>2];d=F[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=F[b+12>>2];a:{if(I[b+8>>2]<e>>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((h|0)<0){break a}Na(a+76|0,h);c=k;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!Aa(c,b)){break b}if(h){g=1;while(1){d=1<<i;e=wa(c);f=F[a+76>>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=F[f>>2]&(d^-1)}else{d=d|F[f>>2]}g=e^1;F[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=F[b+8>>2];e=F[b+12>>2];f=e;e=F[b+20>>2];g=e;l=F[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=F[b>>2];d=m+l|0;j=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0<e>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((d|0)<(j|0)){break b}F[a+16>>2]=d;F[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0<j>>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;F[a+20>>2]=c;b=c>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(c&1){break b}F[a+24>>2]=b-1}}Z=k+16|0;return i|0}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!xb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!xb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0<b>>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!yb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!yb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!Ab(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!Ab(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0<b>>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!zb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!zb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function kc(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)==-1?-1:F[F[F[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Dg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=F[a+32>>2];f=F[b+8>>2];h=F[b+12>>2];g=F[b+20>>2];c=F[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=G[F[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;F[e+16>>2]=c;F[e+20>>2]=b;c:{if(!f){break c}while(1){if($[F[F[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=F[a+8>>2];b=F[a+12>>2];if((d|0)!=(b|0)){while(1){c=F[d>>2];if(!($[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=F[F[a+8>>2]+(d<<2)>>2];if(!($[F[F[b>>2]+12>>2]](b,F[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=F[j+F[a+8>>2]>>2];k=$[F[F[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=F[F[a+8>>2]+j>>2];c=$[F[F[c>>2]+20>>2]](c,d)|0;e=F[a+20>>2];g=F[a+24>>2]-e>>2;e:{if(c>>>0<g>>>0){break e}h=c+1|0;if(h>>>0>g>>>0){qa(i,h-g|0);e=F[i>>2];break e}if(g>>>0<=h>>>0){break e}F[a+24>>2]=(h<<2)+e}F[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!($[F[F[a>>2]+28>>2]](a)|0)){break b}e=$[F[F[a>>2]+32>>2]](a)|0}return e|0}return 0}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Oc(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{b=c;c=F[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0<h>>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=pa(j,c,i);F[a+88>>2]=f;F[a+84>>2]=b;F[a+92>>2]=b+(e<<2);if(c){ja(c)}break b}na();v()}oa();v()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function ab(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=ka(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){F[d>>2]=F[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;F[f>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[a+8>>2]=(h<<2)+k;F[a+4>>2]=g;F[a>>2]=f;if(i){ja(i)}return}na();v()}oa();v()}function Xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){f=F[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){F[d>>2]=F[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){F[f>>2]=F[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0<e>>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=ka(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;g=b&7;if(g){while(1){F[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}na();v()}function Ka(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=F[(F[F[a+8>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2];a:{h=F[F[a+12>>2]+4>>2];e=F[h+4>>2];if((e|0)!=F[h+8>>2]){F[e>>2]=j;F[h+4>>2]=e+4;break a}b:{i=F[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=ka(g<<2)}else{f=0}d=k+f|0;F[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=j;F[h>>2]=d;if(i){ja(i)}break a}na();v()}oa();v()}c:{d:{h=F[a+4>>2];e=F[h+4>>2];e:{if((e|0)!=F[h+8>>2]){F[e>>2]=c;F[h+4>>2]=e+4;break e}i=F[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0<g>>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=ka(g<<2)}else{f=0}d=f+(j<<2)|0;F[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=c;F[h>>2]=d;if(!i){break e}ja(i)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}na();v()}oa();v()}function pb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=F[a+8>>2];i=F[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}k=F[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=ka(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=la(g,c,h)+h|0}d=pa(e,k,j);c=i-b|0;b=pa(g,b,c);F[a+8>>2]=e+f;F[a+4>>2]=b+c;F[a>>2]=d;if(k){ja(k)}return}na();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;pa(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function la(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){Y(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0<e>>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0<c>>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0<a>>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0<e>>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function sd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=8336;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;ja(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;ja(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;ja(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;ja(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];ja(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Fa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=ka(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=pa(k,i,j);F[a+4>>2]=e;F[a>>2]=b;F[a+8>>2]=b+(g<<2);if(i){ja(i)}return}na();v()}oa();v()}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}if(d>>>0<b>>>0){h=Z-16|0;Z=h;b=b-d|0;if(b){g=G[a+11|0]>>>7|0?(F[a+8>>2]&2147483647)-1|0:10;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}i=d+b|0;if(g-d>>>0<b>>>0){a:{e=Z-16|0;Z=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(G[a+11|0]>>>7|0){f=F[a>>2]}else{f=a}if(g>>>0<1073741799){F[e+12>>2]=g<<1;F[e>>2]=c+g;c=Z-16|0;Z=c;Z=c+16|0;c=e+12|0;c=F[(I[e>>2]<I[c>>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(e,c);c=F[e>>2];if(d){db(c,f,d)}if((g|0)!=10){ja(f)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;Z=e+16|0;break a}za();v()}}f=d;if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=f+d|0;e=Z-16|0;Z=e;D[e+15|0]=0;while(1){if(b){D[f|0]=G[e+15|0];b=b-1|0;f=f+1|0;continue}break}Z=e+16|0;Ic(a,i);D[h+15|0]=0;D[d+i|0]=G[h+15|0]}Z=h+16|0;return}if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=Z-16|0;Z=f;Ic(a,b);D[f+15|0]=0;D[b+d|0]=G[f+15|0];Z=f+16|0}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;d=F[a+84>>2];F[a+84>>2]=0;if(d){ja(d)}F[a+76>>2]=0;F[a+80>>2]=0;d=F[a+72>>2];F[a+72>>2]=0;if(d){ja(d)}d=F[b>>2];c=F[b+4>>2];D[g+15|0]=0;Ea(a,c-d>>2,g+15|0);d=F[b+28>>2];c=F[b+24>>2];D[g+14|0]=0;Ea(a+12|0,d-c>>2,g+14|0);Xb(a+28|0,F[b+4>>2]-F[b>>2]>>2,10284);c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+52>>2];c:{if(f>>>0<=F[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=F[a+56>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+60>>2]=f;F[a+56>>2]=h;F[a+52>>2]=c;if(!e){break c}ja(e)}c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+40>>2];d:{if(f>>>0<=F[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=F[a+44>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+48>>2]=f;F[a+44>>2]=h;F[a+40>>2]=c;if(!e){break d}ja(e)}D[a+24|0]=1;F[a+64>>2]=b}Z=g+16|0;return}na();v()}na();v()}function nb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function mi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=O(d)-O(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}_=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>ji(d)|0;_=0;break a}if(!(c-1&c)){break f}h=(O(c)+33|0)-O(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}_=0;a=(b>>>0)/(d>>>0)|0;break a}e=O(d)-O(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=ji(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<<c)-1&b)<<32-c|a>>>c}_=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<<f)-1&b)<<32-f|a>>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<<f;a=0}else{b=(1<<f)-1&a>>>32-f|b<<f;a=a<<f}if(h){f=d-1|0;g=c-1|0;m=(g|0)!=-1?f+1|0:f;while(1){j=e<<1|i>>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0<k>>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}_=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}_=b}return a}function yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){e=F[c+8>>2];F[a+4>>2]=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);f=a+8|0;d=G[b+24|0];h=F[a+8>>2];g=F[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){qa(f,d-g|0);d=G[b+24|0];e=F[c+8>>2];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=F[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;F[g+f>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[f+(g|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[f+(g|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[f+(g|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;F[f+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;F[d+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);d=1}return d|0}function Yg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=h;F[e>>2]=c;if(!d){break b}ja(d)}b=F[a+12>>2];c=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=F[d>>2];c=F[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Fa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){c=1;break d}b=0;while(1){c=rd(e,F[(b<<2)+d>>2]);if(!c){break d}f=F[a+116>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break d}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=rd(e,L(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}Z=g+16|0;return c|0}na();v()}function md(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=F[a+4>>2];b=F[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=F[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ma(f,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0<e>>>0?e:c;e=ka(f);ma(e+d|0,0,g);d=pa(e,b,d);F[a+8>>2]=d+f;F[a+4>>2]=c+d;F[a>>2]=d;if(!b){break c}ja(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=F[a+4>>2];f=F[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=F[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ma(e,0,d)+d|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0<h>>>0?h:c;h=ka(e);ma(h+g|0,0,d);d=pa(h,f,g);F[a+8>>2]=d+e;F[a+4>>2]=c+d;F[a>>2]=d;if(!f){break d}ja(f);break d}if(c>>>0>=g>>>0){break d}F[a+4>>2]=c+f}if(!c){break c}pa(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;g=1;break a}na();v()}return g}function Lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;n=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0<d>>>0){ab(n,d-e|0,9124);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[n>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=Z-48|0;Z=e;a=F[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<<a;F[e+20>>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;k=F[F[b>>2]>>2];l=F[b+48>>2];f=F[b+40>>2];i=F[b+44>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=ki(f,i,g,0);i=g;g=g+l|0;la(h,g+k|0,f);Kc(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+j>>2]=F[e+12>>2];F[(f|4)+j>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0<F[c+4>>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=F[F[b>>2]>>2];i=F[b+48>>2];c=F[b+40>>2];f=ki(c,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;la(k,f+l|0,c);Kc(e+16|0,k,e+12|0,e+8|0);c=d<<2;F[c+j>>2]=F[e+12>>2];F[(c|4)+j>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}Z=e+48|0;return m>>>0<29|0}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+108>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){ab(m,e-f|0,9124);d=F[a+108>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+112>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=Z-16|0;Z=k;if(F[c+28>>2]==9){d=F[a+4>>2];h=G[c+24|0];e=h<<2;f=ka(e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<<d^-1;if((d|0)>0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}if(h){p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=F[a+8>>2];i=J[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;J[g+f>>2]=M(i*M(F[q>>2]))+J[g+m>>2];g=g|4;J[g+f>>2]=M(i*M(F[q+4>>2]))+J[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;J[d+f>>2]=M(i*M(F[(b<<2)+p>>2]))+J[d+m>>2];b=b+1|0}la(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){la(F[F[c+64>>2]>>2]+b|0,f,e);b=b+e|0;la(b+F[F[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}la(F[F[c+64>>2]>>2]+b|0,f,e)}ja(f)}Z=k+16|0;return o|0}function Rg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+68>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0<e>>>0){ab(m,e-f|0,9124);d=F[a+68>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+72>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Na(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=Z-16|0;Z=d;a:{f=F[a+4>>2];b:{if(f>>>0<b>>>0){e=b-f|0;c=F[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){F[a+4>>2]=b;h=f&31;b=F[a>>2]+(f>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0<c>>>0?c:b}else{b=2147483647}$a(d,b);f=F[a+4>>2];F[d+4>>2]=f+e;i=F[a>>2];b=F[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){pa(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[i+g>>2]&c}i=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=i;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!i){break c}ja(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0<e>>>0?c:e;F[b>>2]=F[b>>2]&(-1<<h&-1>>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ma(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(e&31)^-1);break b}F[a+4>>2]=b}Z=d+16|0;return}na();v()}function Aa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=Z-16|0;Z=i;f=F[b+20>>2];h=F[b+12>>2];c=F[b+16>>2];a:{if((f|0)>=(h|0)&c>>>0>=I[b+8>>2]|(f|0)>(h|0)){break a}D[a+12|0]=G[c+F[b>>2]|0];c=F[b+20>>2];f=F[b+16>>2]+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;if(!Qd(1,i+12|0,b)){break a}h=F[b+8>>2];f=F[b+16>>2];g=h-f|0;c=F[i+12>>2];d=f>>>0>h>>>0;h=F[b+20>>2];e=F[b+12>>2]-(d+h|0)|0;if(g>>>0<c>>>0&(e|0)<=0|(e|0)<0|(c|0)<=0){break a}g=f+F[b>>2]|0;F[a>>2]=g;b:{c:{e=c-1|0;j=e+g|0;d=G[j|0];d:{if(d>>>0<=63){F[a+4>>2]=e;d=G[j|0]&63;break d}e:{switch((d>>>6|0)-1|0){case 1:break c;case 0:break e;default:break a}}if(c>>>0<2){break a}e=c-2|0;F[a+4>>2]=e;g=g+e|0;d=G[g+1|0]<<8&16128|G[g|0]}F[a+8>>2]=d+4096;break b}if(c>>>0<3){break a}e=c-3|0;F[a+4>>2]=e;d=a;a=g+e|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[d+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=h;d=c;c=c+f|0;a=d>>>0>c>>>0?a+1|0:a;F[b+16>>2]=c;F[b+20>>2]=a;k=1}Z=i+16|0;return k}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[a+12>>2];i=F[a+8>>2];d=e-i>>2;b=G[b+24|0];a:{if(d>>>0<b>>>0){qa(a+8|0,b-d|0);i=F[a+8>>2];e=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;F[a+12>>2]=e}b=0;f=F[c+8>>2];h=F[c+12>>2];j=F[c+20>>2];e=e-i|0;d=F[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0<g>>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}la(i,d+F[c>>2]|0,e);d=F[c+20>>2];g=e;e=e+F[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;f=F[c+8>>2];h=F[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0<g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=d;f=d;e=F[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;h=F[c+12>>2];if((f|0)>=(h|0)&d>>>0>=I[c+8>>2]|(f|0)>(h|0)){break b}f=G[d+F[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;if(f-1>>>0>29){break b}F[a+4>>2]=f;b=1}return b|0}function Kc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!$c(a,b)){break a}h=a+36|0;g=$[F[F[a>>2]+24>>2]](a)|0;e=F[a+40>>2];d=F[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Pb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){$[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=F[b+20>>2];f=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(f|0)&d>>>0>=I[b+8>>2]|(c|0)>(f|0)){break c}f=G[F[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;d=$[F[F[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+F[a+36>>2]|0;c=F[i>>2];F[i>>2]=d;if(c){$[F[F[c>>2]+4>>2]](c)}c=F[F[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=$[F[F[a>>2]+28>>2]](a)|0,m=$[F[F[a>>2]+20>>2]](a,e)|0,j=F[F[c>>2]+8>>2],$[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=F[a>>2];c=g+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<<b;f=F[a+64>>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=F[F[f>>2]+(c<<2)>>2]}c=F[a+12>>2];h=(d>>>3&536870908)+c|0;F[h>>2]=F[h>>2]|1<<d;b:{c:{if(!e){d:{e:{if((b>>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=F[F[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;F[e>>2]=F[e>>2]|1<<d;d=-1;b=F[F[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+g|0;F[a>>2]=F[a>>2]|1<<b;a=b+1|0;a=(a>>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=F[F[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<<d;f:{g:{if((b>>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=F[F[f>>2]+(b<<2)>>2]}b=1<<a;a=c+(a>>>3&536870908)|0;c=F[a>>2];break c}a=c+536870908|0;b=F[c+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-2>>>0>28){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<<a)-2|0));c=F[F[c>>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f<M(0)?h:n));e=M(e+(e<M(0)?h:n));h=M(M(f*f)+M(M(i*i)+M(e*e)));if(!(+h<1e-6)){g=M(M(1)/M(U(h)));m=M(f*g);l=M(e*g);g=M(i*g)}a=a+8|0;d=(w(m),y(2));D[c+8|0]=d;D[c+9|0]=d>>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(w(l),y(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(w(g),y(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=Z-16|0;Z=g;a:{if(!Sa(1,g+8|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];f=d-e|0;h=F[g+12>>2];c=d>>>0<e>>>0;d=F[b+20>>2];i=F[b+12>>2]-(c+d|0)|0;c=F[g+8>>2];if((h|0)==(i|0)&c>>>0>f>>>0|h>>>0>i>>>0){break a}d=d+h|0;f=c+e|0;d=f>>>0<e>>>0?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if((c|0)<=0){break a}b=F[b>>2]+e|0;F[a+40>>2]=b;e=c-1|0;d=b+e|0;f=G[d|0];b:{if(f>>>0<=63){F[a+44>>2]=e;b=G[d|0]&63;break b}c:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8&16128|G[b|0];break b;case 1:if(c>>>0<3){break a}c=c-3|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break b;default:break c}}c=c-4|0;F[a+44>>2]=c;b=b+c|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[a+48>>2]=b+16384;j=b>>>0<4177920}Z=g+16|0;return j}function Tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=Z-32|0;Z=a;e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;g=e+f|0;break c}D[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}la(f,c,e)}D[g|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=Ya(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];e=F[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){qa(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];la(e,b,F[c+32>>2]-b|0);break d}ta();v()}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}}function ud(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=8284;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;i=c>>>0<a>>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?F[b+16>>2]:b+16|0;j=sa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=sa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function lc(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0<c>>>0){if(d){ja(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}pa(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0<c>>>0){if(d){ja(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}pa(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}na();v()}na();v()}function nc(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Od(a){var b=0,c=0,d=0;b=ka(32);D[b+26|0]=0;c=G[1475]|G[1476]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b)}function Kg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+56>>2]-F[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=od(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=od(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function Qg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=pd(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0<F[f+4>>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=pd(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function pa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return la(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0<b>>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=ka(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ma(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}na();v()}oa();v()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){ja(c)}}function Yd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];k=d;h=F[b+16>>2];c=h+4|0;d=c>>>0<4?d+1|0:d;i=c;a:{if(c>>>0>e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=d;c=e;e=k;d=h+8|0;e=d>>>0<8?e+1|0:e;if(c>>>0<d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0<f>>>0)|0)|0;e=c-f|0;if(!d&e>>>0>2147483646|d){break a}d=e+1|0;F[a+20>>2]=d;e=d>>>1|0;F[a+24>>2]=e;F[a+28>>2]=0-e;if(!(d&1)){F[a+24>>2]=e-1}l=Aa(a+112|0,b)}return l|0}function Wc(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Fc(a,b){var c=0,d=0,e=0;c=Z+-64|0;Z=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=11020;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(La(e,b,0)){F[c+56>>2]=1;$[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}$[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}Z=c- -64|0;return d}function ma(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}D[a|0]=b;d=a+c|0;D[d-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[d-3|0]=b;D[d-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=L(b&255,16843009);F[e>>2]=b;d=c-d&-4;c=d+e|0;F[c-4>>2]=b;if(d>>>0<9){break a}F[e+8>>2]=b;F[e+4>>2]=b;F[c-8>>2]=b;F[c-12>>2]=b;if(d>>>0<25){break a}F[e+24>>2]=b;F[e+20>>2]=b;F[e+16>>2]=b;F[e+12>>2]=b;F[c-16>>2]=b;F[c-20>>2]=b;F[c-24>>2]=b;F[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=ki(b,0,1,1);f=_;b=e+g|0;while(1){F[b+24>>2]=d;F[b+28>>2]=f;F[b+16>>2]=d;F[b+20>>2]=f;F[b+8>>2]=d;F[b+12>>2]=f;F[b>>2]=d;F[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=F[b+8>>2];e=F[b+12>>2];g=e;e=F[b+20>>2];k=e;h=F[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0<e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0<f>>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;F[a+20>>2]=d;b=d>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(d&1){break a}F[a+24>>2]=b-1}return l|0}function Uc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Z-16|0;Z=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=Sc(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(sa(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}ja(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}Z=d+16|0;return l}function gb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=F[a+8>>2];e=F[a>>2];if(h>>>0<=d-e>>2>>>0){d=F[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0<h>>>0?f:c;if((g|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){F[d>>2]=F[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=ka(e);F[a>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=la(d,c,b)+b|0}F[a+4>>2]=d;return}na();v()}function Ea(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;F[a+4>>2]=0;a:{b:{if(!b){break b}f=F[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){F[a+4>>2]=b;break c}F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0<f>>>0?f:d}else{d=2147483647}$a(e,d);f=F[a>>2];F[a>>2]=F[e>>2];F[e>>2]=f;d=F[a+4>>2];F[a+4>>2]=b;F[e+4>>2]=d;d=F[a+8>>2];F[a+8>>2]=F[e+8>>2];F[e+8>>2]=d;if(!f){break c}ja(f)}d=b>>>5|0;a=F[a>>2];if(G[c|0]){if(b>>>0>=32){ma(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ma(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}Z=e+16|0;return}na();v()}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z-32|0;Z=e;a:{b:{f=ya(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=ka(a);F[e+24>>2]=a|-2147483648;F[e+16>>2]=g;F[e+20>>2]=f;a=f+g|0;break d}D[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}la(g,c,f)}D[a|0]=0;c=ya(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=ka(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;g=a+c|0;break f}D[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}la(a,d,c)}D[g|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=Uc(c,e+16|0,e);a=-1;if(!c){break g}a=Pc(b,F[c+24>>2])}if(D[e+11|0]<0){ja(F[e>>2])}if(D[e+27|0]<0){ja(F[e+16>>2])}Z=e+32|0;break a}za();v()}za();v()}return a|0}function se(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=ka(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;return a|0;case 1:a=ka(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;return a|0;case 2:a=ka(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1624;F[a>>2]=7948;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=ka(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1032;F[a>>2]=5812;F[a+28>>2]=-1;break;default:break a}}return a|0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=F[b>>2];b=F[b+4>>2];d=F[F[a+8>>2]+40>>2];j=d;m=ka((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=F[c+16>>2];k=d;f=g+d|0;d=0+F[c+20>>2]|0;d=f>>>0<k>>>0?d+1|0:d;h=F[c+12>>2];e=0;if(I[c+8>>2]<f>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=la(m,F[c>>2]+g|0,j);F[c+16>>2]=f;F[c+20>>2]=d;la(F[F[F[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+F[c+20>>2]|0;g=F[c+16>>2];f=k+g|0;d=f>>>0<k>>>0?d+1|0:d;h=F[c+12>>2];if((d|0)<=(h|0)&I[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}ja(m);return e|0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){Db(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0<F[a+12>>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Db(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function mb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){e=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=e;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{g=F[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0<f>>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=ka(L(f,12))}else{e=0}d=e+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=F[c+4>>2];d=d-12|0;F[d>>2]=F[c>>2];F[d+4>>2]=h;F[d+8>>2]=F[c+8>>2];if((c|0)!=(g|0)){continue}break}c=F[a>>2]}F[a+8>>2]=e+L(f,12);F[a+4>>2]=b;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];f=h;e=F[c+20>>2];i=F[c+8>>2];g=F[c+16>>2];a:{if((f|0)<=(e|0)&i>>>0<=g>>>0|(e|0)>(f|0)){break a}j=F[c>>2];k=D[j+g|0];d=e;f=g+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=i>>>0|(d|0)>(h|0)){break a}d=D[f+j|0];g=g+2|0;e=g>>>0<2?e+1|0:e;F[c+16>>2]=g;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=$[F[F[a>>2]+40>>2]](a,k,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}$[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!($[F[F[a>>2]+28>>2]](a,d)|0)){break a}}l=$[F[F[a>>2]+36>>2]](a,b,c)|0}return l|0}function Bf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Gh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Z-32|0;Z=f;h=e>>>0>1073741823?-1:e<<2;h=ma(ka(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;Jb(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Jb(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ja(h);Z=f+32|0;return 1}function Sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=Z-32|0;Z=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+16>>2]=e|-2147483648;F[a+8>>2]=f;F[a+12>>2]=d;e=d+f|0;break c}D[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;c=b+4|0;b=Ya(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){ja(F[a+8>>2])}Z=a+32|0;break a}za();v()}return+g}function Gc(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=Z-16|0;Z=h;if((b^-1)+2147483631>>>0>=c>>>0){if(G[a+11|0]>>>7|0){i=F[a>>2]}else{i=a}if(b>>>0<1073741799){F[h+12>>2]=b<<1;F[h>>2]=b+c;c=Z-16|0;Z=c;Z=c+16|0;c=h+12|0;c=F[(I[h>>2]<I[c>>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(h,c);c=F[h>>2];if(f){db(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){db(c+f|0,e+i|0,g)}if((b|0)!=10){ja(i)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[h+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[h+12|0]=0;D[a+c|0]=G[h+12|0];Z=h+16|0;return}za();v()}function _c(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=L(b,3);Xb(a,b,10224);Xb(a+12|0,b,10228);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=F[a+28>>2];e=c<<2;c=ka(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+32>>2]=e;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}ja(d)}F[a+80>>2]=0;F[a+84>>2]=0;b=F[a+76>>2];F[a+76>>2]=0;if(b){ja(b)}F[a+68>>2]=0;F[a+72>>2]=0;b=a- -64|0;a=F[b>>2];F[b>>2]=0;if(!a){break b}ja(a)}return f}na();v()}function yd(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=ka(c>>>0>268435455?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ja(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=Aa(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)<F[a+140>>2]){continue}break}}return f}\nfunction Sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=F[b+8>>2];c=F[b+12>>2];g=c;c=F[b+20>>2];i=c;h=F[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;a:{if(d>>>0<f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;f=d;d=i;c=h+8|0;d=c>>>0<8?d+1|0:d;if(c>>>0>f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}F[b+16>>2]=c;F[b+20>>2]=d;if(!(e&1)){break a}d=O(e)^31;if(d-1>>>0>28){break a}F[a+8>>2]=d+1;d=-2<<d;c=d^-2;F[a+16>>2]=c;F[a+12>>2]=d^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0);j=Aa(a+96|0,b)}return j|0}function bc(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function ac(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=ka(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}ja(d)}d=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){c=F[(c<<2)+10148>>2]}else{c=-1}c=L(c,G[a+24|0]);f=c>>31;g=md(d,0,ki(c,f,b,0),_);if(g){d=F[a+64>>2];F[a>>2]=d;e=F[d+20>>2];F[a+8>>2]=F[d+16>>2];F[a+12>>2]=e;e=F[d+24>>2];d=F[d+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=c;F[a+44>>2]=f;F[a+16>>2]=e;F[a+20>>2]=d;F[a+80>>2]=b}return g}function Af(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function Kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];i=d;h=F[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0<f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}F[b+16>>2]=d;F[b+20>>2]=c;if(!(e&1)){break a}b=O(e)^31;if(b-1>>>0>28){break a}j=1;F[a+8>>2]=b+1;b=-2<<b;c=b^-2;F[a+16>>2]=c;F[a+12>>2]=b^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0)}return j|0}function Ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;g=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=f;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=sa(c?F[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0<d>>>0?c:d;if(e){a=sa(g,a?F[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Oe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(La(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];$[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function Ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=ka(64);c=ka(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=9968;F[c+4>>2]=0;f=yc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Pb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){$[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}$[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function we(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!($[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=$[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[($[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=$[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!($[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=$[F[F[a>>2]+44>>2]](a)|0}return d|0}function Id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+8>>2];d=F[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ma(d,0,b)+b|0}F[a+4>>2]=d;return}a:{f=F[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0<h>>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=ka(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ma(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(f|0)){continue}break}}F[a+8>>2]=(e<<2)+i;F[a+4>>2]=b;F[a>>2]=c;if(f){ja(f)}return}na();v()}oa();v()}function bb(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){ab(b+68|0,c-e|0,2004);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0<F[d+72>>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z+-64|0;Z=e;f=Ja(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Pd(b,a,f,d);F[a+24>>2]=F[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=G[e+63|0];d=g<<24>>24;if(D[a+39|0]>=0){if((d|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[e+52>>2],F[e+56>>2]);break a}a=(d|0)<0;rb(b,a?F[e+52>>2]:c,a?F[e+56>>2]:g)}if(D[e+63|0]<0){ja(F[e+52>>2])}Z=e- -64|0;return f|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=Z-32|0;Z=a;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+24>>2]=e|-2147483648;F[a+16>>2]=f;F[a+20>>2]=d;e=d+f|0;break c}D[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=Uc(d,a,a+16|0);c=-1;if(!d){break d}c=Pc(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){ja(F[a>>2])}if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}return b|0}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=Z-16|0;Z=d;F[d+12>>2]=0;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;a=Ya(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;d=Z+-64|0;Z=d;e=Ja(d+8|0);F[e+16>>2]=0;F[e+20>>2]=0;F[e>>2]=b;F[e+8>>2]=c;F[e+12>>2]=0;b=d+48|0;Od(b);F[a+24>>2]=F[d+48>>2];f=a+24|0;a:{if((b|0)==(f|0)){break a}b=a+28|0;c=d+48|4;g=G[d+63|0];e=g<<24>>24;if(D[a+39|0]>=0){if((e|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+52>>2],F[d+56>>2]);break a}a=(e|0)<0;rb(b,a?F[d+52>>2]:c,a?F[d+56>>2]:g)}if(D[d+63|0]<0){ja(F[d+52>>2])}Z=d- -64|0;return f|0}function Ce(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if(($[F[F[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Qc(F[F[a+4>>2]+4>>2],$[F[F[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}g=F[a+4>>2];c=0;b:{if((d|0)<0){break b}h=F[g+4>>2];if((d|0)>=F[h+12>>2]-F[h+8>>2]>>2){break b}c=F[F[g+8>>2]+(F[F[g+20>>2]+(d<<2)>>2]<<2)>>2];c=$[F[F[c>>2]+32>>2]](c,d)|0}if(!c){break a}if(!($[F[F[b>>2]+28>>2]](b,c)|0)){break a}e=1;f=f+1|0;if(($[F[F[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];e=F[a>>2];d=c-e|0;b:{if(d>>>0<b>>>0){g=b-d|0;f=F[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ma(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0<f>>>0?f:b;f=ka(c);ma(f+d|0,0,g);d=pa(f,e,d);F[a+8>>2]=d+c;F[a+4>>2]=b+d;F[a>>2]=d;if(!e){break b}ja(e);break b}if(b>>>0>=d>>>0){break b}F[a+4>>2]=b+e}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;e=b?c:d;F[a+24>>2]=b;F[a+28>>2]=e;return}na();v()}function Ma(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+4>>2];if((e|0)!=F[a+8>>2]){F[e>>2]=F[b>>2];F[a+4>>2]=e+4;return}a:{g=F[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=ka(c<<2)}else{f=0}d=h+f|0;F[d>>2]=F[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(g|0)){continue}break}}F[a+8>>2]=f+(c<<2);F[a+4>>2]=b;F[a>>2]=d;if(g){ja(g)}return}na();v()}oa();v()}function va(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Hb(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0<b>>>0){qa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=ka(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;F[b>>2]=F[d>>2];if((c|0)!=(d|0)){continue}break}}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}ja(c)}return}na();v()}function tb(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10300;b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;ja(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){xa(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;ja(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){ic(b)}return a|0}function qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=ka(d<<2)}b=b<<2;e=ma((h<<2)+i|0,0,b);f=d<<2;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function gc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=Ya(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function Qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=F[a>>2];c=F[a+4>>2];e=F[a+8>>2];if(c>>>0<e>>>0){F[c>>2]=F[b>>2];F[a+4>>2]=c+4;return}a:{d=c;c=F[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0<d>>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=ka(f<<2)}else{e=0}d=h+e|0;F[d>>2]=F[b>>2];b=pa(e,c,g);F[a+8>>2]=b+(f<<2);F[a+4>>2]=d+4;F[a>>2]=b;if(c){ja(c)}return}na();v()}oa();v()}function db(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=Z-16|0;Z=f;d=Z-32|0;Z=d;e=Z-16|0;Z=e;F[e+12>>2]=b;F[e+8>>2]=b+c;F[d+24>>2]=F[e+12>>2];F[d+28>>2]=F[e+8>>2];Z=e+16|0;c=Z-16|0;Z=c;h=F[d+28>>2];e=F[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){pa(a,e,g)}F[c+12>>2]=e+g;F[c+8>>2]=a+g;F[d+16>>2]=F[c+12>>2];F[d+20>>2]=F[c+8>>2];Z=c+16|0;F[d+12>>2]=(F[d+16>>2]-b|0)+b;F[d+8>>2]=(F[d+20>>2]-a|0)+a;F[f+8>>2]=F[d+12>>2];F[f+12>>2]=F[d+8>>2];Z=d+32|0;Z=f+16|0}function _a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0<f>>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=ka(d<<3)}b=b<<3;e=ma((h<<3)+i|0,0,b);f=d<<3;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function re(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function qe(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}ja(a)}function Eg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0<b>>>0){nd(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ta();v()}function fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=Z-16|0;Z=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],d+15|0,d+16|0)}Z=d+16|0;return(e|0)!=-1|0}function kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0<e>>>0?e:d;if(d){if((d|0)<0){break a}h=ka(d<<1)}b=b<<1;e=ma((f<<1)+h|0,0,b);f=d<<1;d=pa(h,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;Pd(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=G[d+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+4>>2],F[d+8>>2]);break a}a=(g|0)<0;rb(b,a?F[d+4>>2]:c,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ja(F[d+4>>2])}Z=d+16|0;return e|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;a:{b:{if(c>>>0<11){d=a;D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}sb(g,d+1|0);d=F[e+8>>2];F[a>>2]=d;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;F[a+4>>2]=c}db(d,b,c+1|0);Z=e+16|0;return}za();v()}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;b=Z-16|0;Z=b;Od(b);F[a+24>>2]=F[b>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}c=a+28|0;d=b|4;f=G[b+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[d+4>>2];F[c>>2]=F[d>>2];F[c+4>>2]=a;F[c+8>>2]=F[d+8>>2];break a}qb(c,F[b+4>>2],F[b+8>>2]);break a}a=(g|0)<0;rb(c,a?F[b+4>>2]:d,a?F[b+8>>2]:f)}if(D[b+15|0]<0){ja(F[b+4>>2])}Z=b+16|0;return e|0}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;g=e+f|0;break c}D[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}la(f,c,e)}D[g|0]=0;f=a+16|0;c=Sc(b,d,f);b=F[a+16>>2];a=D[a+27|0];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;a=c?(a|0)<0?b:f:0;break a}za();v()}return a|0}function Yb(a,b){var c=0,d=0,e=0;c=F[a+4>>2];d=c+b|0;F[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){F[F[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=F[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;F[a>>2]=F[a>>2]&(-1<<c&-1>>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ma(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}}function ld(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!ld(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Sa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!Sa(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Ne(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!La(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function jg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z+-64|0;Z=e;d=$[F[F[a>>2]+44>>2]](a,b)|0;a=$[F[F[a>>2]+40>>2]](a,b)|0;f=kb(e);g=F[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+10148>>2]}else{a=-1}d=L(a,d);cc(f,g,h,i,0,d,d>>31);a=bc(ka(96),f);ac(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];Z=e- -64|0;return a|0}function rh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function Dc(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function qh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=Z+-64|0;Z=e;d=1;a:{if(La(a,b,0)){break a}d=0;if(!b){break a}b=Fc(b,11068);d=0;if(!b){break a}d=e+8|0;ma(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;$[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}Z=e- -64|0;return d|0}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function zf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=Z-16|0;Z=a;f=D[b+24|0];e=F[2555];F[a+8>>2]=F[2554];F[a+12>>2]=e;e=F[2553];F[a>>2]=F[2552];F[a+4>>2]=e;e=lb(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=ka(c);g=la(b,a,c)+c|0}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}Z=a+16|0;return e|0}function wd(a,b){var c=0,d=0;a:{c=F[a+4>>2];d=F[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0<d>>>0?d:c}else{c=2147483647}$a(a,c);c=F[a+4>>2]}F[a+4>>2]=c+1;d=1<<c;a=F[a>>2]+(c>>>3&536870908)|0;if(G[b|0]){F[a>>2]=d|F[a>>2];return}F[a>>2]=F[a>>2]&(d^-1);return}na();v()}function Zb(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function bh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!fb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Wb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Wb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Ta(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ta(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Qd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qd(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Oa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Oa(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Da(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Da(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function sa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function td(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;ja(e)}}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function ic(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;ja(b)}Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function $g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function _g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function wh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[F[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0<h>>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function La(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Gg(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ah(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Tc(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ka(c);c=ma(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}la(e,c,a-c|0);return}na();v()}function Dd(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Xg(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Za(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;ja(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function Gb(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;ja(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;ja(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;ja(b)}b=F[a+12>>2];if(b){ja(b)}a=F[a>>2];if(a){ja(a)}}function Lc(a,b,c){var d=0,e=0,f=0,g=0;f=Z-16|0;Z=f;d=Z-16|0;Z=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=I[F[d+12>>2]>>2]<I[c>>2];b=e?g:b;a=e?F[d+12>>2]+4|0:a;continue}break}Z=d+16|0;Z=f+16|0;return a}function id(a,b){var c=0,d=0;d=ka(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;$[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}return 1}function ya(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function wa(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0<d>>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function yc(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1776;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2016;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function Eb(a,b){var c=0,d=0,e=0;c=ya(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=ka(d);F[a+8>>2]=d|-2147483648;F[a>>2]=e;F[a+4>>2]=c;d=c+e|0;break b}D[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}pa(e,b,c)}D[d|0]=0;return a}za();v()}function Of(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){ja(F[a+16>>2])}b=F[a>>2];if(b){c=b;d=F[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(D[d-1|0]<0){ja(F[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=F[a>>2]}F[a+4>>2]=b;ja(c)}ja(a)}}function xa(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;ja(c)}ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;ja(c)}ja(b)}ja(a)}}function Ib(a,b){var c=0,d=0,e=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2]-c|0;e=b<<2;b=pa(ka(e),c,d);F[a+8>>2]=b+e;F[a+4>>2]=b+d;F[a>>2]=b;if(!c){break b}ja(c)}return}na();v()}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=ka(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function Ah(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function li(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0<e>>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=mi(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;_=(g^_)-((a>>>0<f>>>0)+g|0)|0;return b}function zh(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function rb(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;db(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];Gc(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}Z=e+16|0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0;c=Z-16|0;Z=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}pb(b,F[b+4>>2],c+15|0,c+16|0)}Z=c+16|0;return(a|0)!=-1|0}function ki(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;_=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function qb(a,b,c){var d=0,e=0;d=Z-16|0;Z=d;a:{if(c>>>0<=10){D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;db(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0]&127;Gc(e,10,c-10|0,a,a,c,b)}Z=d+16|0}function Ec(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function vg(){var a=0;a=kb(ka(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function jh(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function ge(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function ci(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Cg(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=$[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Pc(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function fe(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function bi(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Sc(a,b,c){var d=0,e=0;d=a+4|0;a=Ya(a,b);a:{if((d|0)==(a|0)){break a}b=F[a+32>>2];d=F[a+28>>2];if((b|0)==(d|0)){break a}Sb(c,b-d|0);c=Tb(c);b=F[a+28>>2];la(c,b,F[a+32>>2]-b|0);e=1}return e}function Kd(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=10032;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;F[a+44>>2]=0;F[a>>2]=8080;return a}function kb(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function pe(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=bb(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function Nf(){var a=0,b=0;a=ka(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function Xe(a,b){a=a|0;b=b|0;var c=0,d=0;Nc(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;pa(c,b,d-b|0);F[a+88>>2]=d-4}}function eb(a){var b=0,c=0;b=F[2909];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>aa()<<16>>>0){if(!(X(a|0)|0)){break a}}F[2909]=a;return b}F[2940]=48;return-1}function Th(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Tg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ng(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(!G[d+24|0]){break a}if(!ac(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=$[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ca(a,b){if(b){Ca(a,F[b>>2]);Ca(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Sg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Mg(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Hc(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=11356;F[a>>2]=11468;c=ya(b);d=ka(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=la(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function hc(a,b,c){a:{if(b){b=0;if(!ld(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;F[a+28>>2]=c+(F[a+8>>2]-b|0);b=1}return b}function Ue(a,b){a=a|0;b=b|0;var c=0;a:{if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=$[F[F[a>>2]+44>>2]](a)|0}return c|0}function _d(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function ii(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function wc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Ud(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function Ug(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Ed(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function vc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function yg(){var a=0,b=0;b=ka(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function eh(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Og(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Ja(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e);return}a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!($[F[F[a>>2]+52>>2]](a)|0)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function hg(){var a=0;a=Rc(ka(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=10240;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Qc(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function cc(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function Sh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!uc(a+24|0,bb(a),c)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function _e(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}return tb(a)|0}function Tb(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]&127}if(!b){sc(1222);v()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function Ze(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}ja(tb(a))}function ce(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function _h(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ba(a,b){if(b){Ba(a,F[b>>2]);Ba(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Wf(){var a=0;a=ka(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function We(a){a=a|0;var b=0;F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function fg(){var a=0,b=0;a=ka(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d);return}a=F[a+8>>2];$[F[F[a>>2]+28>>2]](a,b,c,d)}function be(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Zh(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function ka(a){var b=0;a=a?a:1;a:{while(1){b=Ub(a);if(b){break a}b=F[3065];if(b){$[b|0]();continue}break}V();v()}return b}function ib(a,b){if(b){ib(a,F[b>>2]);ib(a,F[b+4>>2]);if(D[b+39|0]<0){ja(F[b+28>>2])}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Cc(a){a=a|0;var b=0,c=0;F[a>>2]=11468;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){ja(b)}return a|0}function ng(){var a=0;a=ka(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1624;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function pc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function Ic(a,b){if(G[a+11|0]>>>7|0){F[a+4>>2]=b;return}D[a+11|0]=G[a+11|0]&128|b;D[a+11|0]=G[a+11|0]&127}function gi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Xh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function nf(a){a=a|0;if(a){if(D[a+39|0]<0){ja(F[a+28>>2])}$b(a+12|0,F[a+16>>2]);ib(a,F[a+4>>2]);ja(a)}}function dh(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Wg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function ob(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function oc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function fi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Wh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function zg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function ch(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Zd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function Vg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Td(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Le(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e)}}function oa(){var a=0;a=Rb(4);F[a>>2]=11356;F[a>>2]=11316;F[a>>2]=11336;W(a|0,11448,14);v()}function je(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ae(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Pg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}return a|0}function Ch(a){a=a|0;var b=0;b=bb(a);return qd(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function ze(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function Ob(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Hg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}function oe(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}function $b(a,b){if(b){$b(a,F[b>>2]);$b(a,F[b+4>>2]);ib(b+20|0,F[b+24>>2]);ja(b)}}function xg(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}}function xh(a){a=a|0;if(!F[a+44>>2]){return 0}return $[F[F[a>>2]+48>>2]](a)|0}function ni(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d)}}function vh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+20>>2]](a,b)|0}function oi(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<<b|(-1<<a&-2)>>>a}\nfunction oh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+12>>2]](a,b)|0}function nh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+16>>2]](a,b)|0}function Xa(){var a=0;a=ka(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function Wa(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function mf(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function eg(a){a=a|0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function Lb(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0}function Fg(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function kg(){var a=0;a=ka(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function th(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+24>>2]](a)|0}function sh(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+28>>2]](a)|0}function ph(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+36>>2]](a)|0}function Rh(a,b){a=a|0;b=b|0;return zc(a+24|0,bb(a),F[a+8>>2])|0}function Bh(a,b){a=a|0;b=b|0;return xd(a+24|0,bb(a),F[a+8>>2])|0}function bg(a){a=a|0;if(a){if(D[a+15|0]<0){ja(F[a+4>>2])}ja(a)}}function Ke(a){a=a|0;if(!a){return 0}return(Fc(a,11164)|0)!=0|0}function Fe(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function hd(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+12>>2]](a,b)|0}function Dh(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+56>>2]](a,b)|0}function sc(a){a=Hc(Rb(8),a);F[a>>2]=11568;W(a|0,11600,1);v()}function mg(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function Rd(a){a=Hc(Rb(8),a);F[a>>2]=11516;W(a|0,11548,1);v()}function $f(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function gg(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function cg(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function Re(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function dd(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function Yf(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Xf(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;return xc(a,b,c)|0}function sb(a,b){var c=0;c=ka(b);F[a+4>>2]=b;F[a>>2]=c}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;return Qc(b,c)|0}function Rc(a){F[a>>2]=10300;ma(a+4|0,0,80);return a}function ji(a){if(a){return 31-O(a-1^a)|0}return 32}function gd(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function _f(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Zf(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function Ie(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function wb(a){a=a|0;if(a){$[F[F[a>>2]+4>>2]](a)}}function Jd(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function ed(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function dc(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function fd(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function ke(a){a=a|0;return G[F[a+8>>2]+24|0]}function Qf(a,b){a=a|0;b=b|0;return F[b+8>>2]}function Ff(a,b){a=a|0;b=b|0;return F[b+4>>2]}function De(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Bg(a,b){a=a|0;b=b|0;return G[b+24|0]}function Oh(a){a=a|0;F[a>>2]=5928;return a|0}function Jh(a){a=a|0;F[a>>2]=6932;return a|0}function lg(a){a=a|0;return M(J[a+20>>2])}function Nh(a){a=a|0;F[a>>2]=5928;ja(a)}function Ih(a){a=a|0;F[a>>2]=6932;ja(a)}function ug(a){a=a|0;return F[a+88>>2]}function tg(a){a=a|0;return F[a+56>>2]}function qg(a){a=a|0;return F[a+40>>2]}function pg(a){a=a|0;return F[a+48>>2]}function og(a){a=a|0;return F[a+60>>2]}function ec(a){a=a|0;return F[a+80>>2]}function cb(a){a=a|0;return F[a+28>>2]}function vd(a){a=a|0;return F[a+8>>2]}function tc(a,b){a=a|0;b=b|0;return-1}function sg(a){a=a|0;return D[a+24|0]}function rg(a){a=a|0;return G[a+32|0]}function dg(a){a=a|0;return!F[a>>2]|0}function Wd(a,b){a=a|0;b=b|0;return 6}function Va(a){a=a|0;return F[a+4>>2]}function Rb(a){return Ub(a+80|0)+80|0}function Qh(a,b){a=a|0;b=b|0;return 2}function Ia(a,b){a=a|0;b=b|0;return 0}function Bc(a,b){a=a|0;b=b|0;return 1}function jd(a){a=a|0;return F[a>>2]}function wg(){return kb(ka(64))|0}function ig(){return Rc(ka(84))|0}function fc(a){a=a|0;if(a){ja(a)}}function Ag(){return Ja(ka(40))|0}function Qb(a){a=a|0;Cc(a);ja(a)}function Je(a){a=a|0;return 1161}function He(a){a=a|0;return 1235}function Ge(a){a=a|0;return 1201}function Pa(a){a=a|0;return a|0}function hh(a){a=a|0;ja(ud(a))}function gh(a){a=a|0;ja(sd(a))}function Ve(a){a=a|0;ja(tb(a))}function ua(a){a=a|0;return 1}function rc(a){a=a|0;return 4}function qc(a){a=a|0;return 5}function Xd(a){a=a|0;return 2}function Ua(a){a=a|0;return 0}function Nb(a){a=a|0;return 6}function Mh(a){a=a|0;return 3}function za(){Rd(1222);v()}function ta(){sc(1154);v()}function na(){Rd(1154);v()}function Ha(a){a=a|0;ja(a)}function Ra(a){a=a|0;v()}function ff(){return 10}function ef(){return 11}function df(){return 12}function vb(){return-1}function ub(){return 1}function lf(){return 5}function kf(){return 6}function jf(){return 7}function jb(){return 0}function hf(){return 8}function gf(){return 9}function cf(){return-2}function bf(){return-3}function bd(){return 3}function af(){return-4}function ad(){return 4}function _b(){return 2}function $e(){return-5}function Te(){V();v()}function Jc(a){a=a|0}function ae(){}\n// EMSCRIPTEN_END_FUNCS\ne=G;p(q);var $=c([null,Cc,Pa,Ha,Xd,ii,jh,ag,zc,xe,uc,jg,Wd,Qh,Pa,Pg,Hg,ua,yh,mh,kh,xd,fh,qd,Wd,Bg,We,Ra,mf,$c,Ue,Re,Ie,cb,Ia,Te,Bc,ua,Ae,ze,Ac,Fe,Ee,De,Bc,Ce,Be,re,qe,ye,we,pe,ve,ue,te,se,wc,vc,Ac,oe,ne,xc,me,ke,le,je,Ob,ua,Va,ob,Ua,tc,Ia,Ua,ua,ie,he,Ra,Ra,ge,fe,rc,ob,ee,de,ce,be,qc,pc,ua,Ia,oc,$d,hi,gi,fi,Nb,_d,ua,Ia,Zd,Yd,ei,Pa,Ha,Lb,cb,Mb,Ra,Ob,ua,ob,di,Ra,ci,bi,rc,ob,ai,$h,_h,Zh,qc,pc,ua,Ia,oc,$d,Yh,Xh,Wh,Nb,_d,ua,Ia,Zd,Yd,Vh,Pa,Ha,Lb,cb,Kb,Ra,Ob,Ua,ua,Uh,wc,vc,Th,Sh,Vd,Ph,Xd,Rh,Oh,Nh,Nb,Va,Ud,ua,Ia,Td,ua,Mh,Sd,Lh,Pa,Ha,Lb,cb,Mb,Jh,Ih,Nb,Ud,ua,Ia,Td,Sd,Hh,Pa,Ha,Lb,cb,Kb,Pa,Ha,Ua,ua,Ua,tc,Ia,Kh,Gh,Ah,zh,Fh,Eh,Vd,Dh,Ch,Bh,wh,Ra,ua,ua,xh,Dg,Cg,ua,Ua,Ia,Ia,rh,qh,uh,vh,sh,ph,oh,nh,th,ud,hh,Jd,Id,Hd,Gd,lh,ua,Va,vd,sd,gh,Jd,Id,Hd,Gd,ih,ua,Va,vd,Ed,eh,Fd,dh,ch,$g,_g,Zg,Yg,ah,Xg,bh,Wg,Vg,Tg,Sg,Rg,Qg,Ug,Og,Ng,Mg,Lg,Kg,Gg,Ig,Jg,Pa,Ha,Fg,Eg,Ra,Ua,ua,_e,Ze,Ye,Xe,tb,Ve,Oc,Nc,Pa,Ha,Jc,Jc,Se,Le,Ne,Qe,Ha,Me,Oe,Pe,Ha,He,Ha,Ge,Ha,Je,Qb,Va,Qb,Qb]);function aa(){return C.byteLength/65536|0}function fa(ga){ga=ga|0;var ba=aa()|0;var ca=ba+ga|0;if(ba<ca&&ca<65536){var da=new ArrayBuffer(L(ca,65536));var ea=new Int8Array(da);ea.set(D);D=new Int8Array(da);E=new Int16Array(da);F=new Int32Array(da);G=new Uint8Array(da);H=new Uint16Array(da);I=new Uint32Array(da);J=new Float32Array(da);K=new Float64Array(da);C=da;B.buffer=C;e=G}return ba}return{\"f\":ae,\"g\":$,\"h\":fc,\"i\":Ag,\"j\":zg,\"k\":fc,\"l\":yg,\"m\":jd,\"n\":xg,\"o\":wg,\"p\":fc,\"q\":vg,\"r\":ec,\"s\":ug,\"t\":tg,\"u\":cb,\"v\":sg,\"w\":rg,\"x\":qg,\"y\":pg,\"z\":og,\"A\":xa,\"B\":ng,\"C\":hd,\"D\":Va,\"E\":mg,\"F\":lg,\"G\":wb,\"H\":kg,\"I\":hd,\"J\":Va,\"K\":wb,\"L\":ig,\"M\":gd,\"N\":ec,\"O\":wb,\"P\":hg,\"Q\":gg,\"R\":gd,\"S\":ec,\"T\":wb,\"U\":fg,\"V\":eg,\"W\":jd,\"X\":dg,\"Y\":cg,\"Z\":bg,\"_\":Xa,\"$\":$f,\"aa\":dc,\"ba\":Wa,\"ca\":Xa,\"da\":_f,\"ea\":fd,\"fa\":Wa,\"ga\":Xa,\"ha\":Zf,\"ia\":fd,\"ja\":Wa,\"ka\":Xa,\"la\":Yf,\"ma\":ed,\"na\":Wa,\"oa\":Xa,\"pa\":Xf,\"qa\":ed,\"ra\":Wa,\"sa\":Xa,\"ta\":dd,\"ua\":dc,\"va\":Wa,\"wa\":Xa,\"xa\":dd,\"ya\":dc,\"za\":Wa,\"Aa\":Wf,\"Ba\":Vf,\"Ca\":Uf,\"Da\":Tf,\"Ea\":Sf,\"Fa\":Rf,\"Ga\":Qf,\"Ha\":Pf,\"Ia\":Of,\"Ja\":Nf,\"Ka\":Mf,\"La\":Lf,\"Ma\":Kf,\"Na\":Jf,\"Oa\":If,\"Pa\":Hf,\"Qa\":Gf,\"Ra\":Ff,\"Sa\":Ef,\"Ta\":Df,\"Ua\":Cf,\"Va\":Bf,\"Wa\":Af,\"Xa\":zf,\"Ya\":yf,\"Za\":cd,\"_a\":xf,\"$a\":wf,\"ab\":vf,\"bb\":uf,\"cb\":cd,\"db\":tf,\"eb\":sf,\"fb\":rf,\"gb\":qf,\"hb\":pf,\"ib\":of,\"jb\":nf,\"kb\":vb,\"lb\":jb,\"mb\":ub,\"nb\":_b,\"ob\":vb,\"pb\":jb,\"qb\":ub,\"rb\":_b,\"sb\":bd,\"tb\":ad,\"ub\":vb,\"vb\":jb,\"wb\":ub,\"xb\":jb,\"yb\":ub,\"zb\":_b,\"Ab\":bd,\"Bb\":ad,\"Cb\":lf,\"Db\":kf,\"Eb\":jf,\"Fb\":hf,\"Gb\":gf,\"Hb\":ff,\"Ib\":ef,\"Jb\":df,\"Kb\":jb,\"Lb\":vb,\"Mb\":cf,\"Nb\":bf,\"Ob\":af,\"Pb\":$e,\"Qb\":Ub,\"Rb\":ja,\"Sb\":Ke}}return ha(ia)}\n// EMSCRIPTEN_END_ASM\n\n\n)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({\"instance\":new WebAssembly.Instance(module,info)})}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;assert(INITIAL_MEMORY>=65536,\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+INITIAL_MEMORY+\"! (STACK_SIZE=\"+65536+\")\");if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"draco_decoder_gltf.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"g\"];addOnInit(Module[\"asm\"][\"f\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob==\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==\"boolean\"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,\"base64\");return new Uint8Array(buf[\"buffer\"],buf[\"byteOffset\"],buf[\"byteLength\"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmImports={\"c\":___cxa_throw,\"b\":_abort,\"e\":_emscripten_memcpy_big,\"d\":_emscripten_resize_heap,\"a\":wasmMemory};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"f\"]).apply(null,arguments)};var _emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=function(){return(_emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=function(){return(_emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module[\"_emscripten_bind_DecoderBuffer_DecoderBuffer_0\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=function(){return(_emscripten_bind_DecoderBuffer_Init_2=Module[\"_emscripten_bind_DecoderBuffer_Init_2\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=function(){return(_emscripten_bind_DecoderBuffer___destroy___0=Module[\"_emscripten_bind_DecoderBuffer___destroy___0\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=function(){return(_emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module[\"_emscripten_bind_AttributeTransformData_AttributeTransformData_0\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=function(){return(_emscripten_bind_AttributeTransformData_transform_type_0=Module[\"_emscripten_bind_AttributeTransformData_transform_type_0\"]=Module[\"asm\"][\"m\"]).apply(null,arguments)};var _emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=function(){return(_emscripten_bind_AttributeTransformData___destroy___0=Module[\"_emscripten_bind_AttributeTransformData___destroy___0\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=function(){return(_emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=function(){return(_emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=function(){return(_emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=function(){return(_emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=function(){return(_emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module[\"_emscripten_bind_PointAttribute_GetAttributeTransformData_0\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=function(){return(_emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=function(){return(_emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=function(){return(_emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=function(){return(_emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=function(){return(_emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=function(){return(_emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=function(){return(_emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_min_value_1=Module[\"_emscripten_bind_AttributeQuantizationTransform_min_value_1\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform_range_0=Module[\"_emscripten_bind_AttributeQuantizationTransform_range_0\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeQuantizationTransform___destroy___0=Module[\"_emscripten_bind_AttributeQuantizationTransform___destroy___0\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module[\"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module[\"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=function(){return(_emscripten_bind_AttributeOctahedronTransform___destroy___0=Module[\"_emscripten_bind_AttributeOctahedronTransform___destroy___0\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=function(){return(_emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=function(){return(_emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=function(){return(_emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=function(){return(_emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=function(){return(_emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=function(){return(_emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=function(){return(_emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=function(){return(_emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=function(){return(_emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=function(){return(_emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=function(){return(_emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=function(){return(_emscripten_bind_Status_code_0=Module[\"_emscripten_bind_Status_code_0\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=function(){return(_emscripten_bind_Status_ok_0=Module[\"_emscripten_bind_Status_ok_0\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=function(){return(_emscripten_bind_Status_error_msg_0=Module[\"_emscripten_bind_Status_error_msg_0\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=function(){return(_emscripten_bind_Status___destroy___0=Module[\"_emscripten_bind_Status___destroy___0\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module[\"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoFloat32Array_GetValue_1=Module[\"_emscripten_bind_DracoFloat32Array_GetValue_1\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=function(){return(_emscripten_bind_DracoFloat32Array_size_0=Module[\"_emscripten_bind_DracoFloat32Array_size_0\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoFloat32Array___destroy___0=Module[\"_emscripten_bind_DracoFloat32Array___destroy___0\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=function(){return(_emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module[\"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt8Array_GetValue_1\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt8Array_size_0=Module[\"_emscripten_bind_DracoUInt8Array_size_0\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt8Array___destroy___0=Module[\"_emscripten_bind_DracoUInt8Array___destroy___0\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=function(){return(_emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module[\"_emscripten_bind_DracoInt16Array_DracoInt16Array_0\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoInt16Array_GetValue_1\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoInt16Array_size_0=Module[\"_emscripten_bind_DracoInt16Array_size_0\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt16Array___destroy___0=Module[\"_emscripten_bind_DracoInt16Array___destroy___0\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module[\"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt16Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt16Array_GetValue_1\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt16Array_size_0=Module[\"_emscripten_bind_DracoUInt16Array_size_0\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt16Array___destroy___0=Module[\"_emscripten_bind_DracoUInt16Array___destroy___0\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=function(){return(_emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module[\"_emscripten_bind_DracoInt32Array_DracoInt32Array_0\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoInt32Array_GetValue_1\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoInt32Array_size_0=Module[\"_emscripten_bind_DracoInt32Array_size_0\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoInt32Array___destroy___0=Module[\"_emscripten_bind_DracoInt32Array___destroy___0\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module[\"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=function(){return(_emscripten_bind_DracoUInt32Array_GetValue_1=Module[\"_emscripten_bind_DracoUInt32Array_GetValue_1\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=function(){return(_emscripten_bind_DracoUInt32Array_size_0=Module[\"_emscripten_bind_DracoUInt32Array_size_0\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=function(){return(_emscripten_bind_DracoUInt32Array___destroy___0=Module[\"_emscripten_bind_DracoUInt32Array___destroy___0\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=function(){return(_emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module[\"_emscripten_bind_MetadataQuerier_MetadataQuerier_0\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_HasEntry_2=Module[\"_emscripten_bind_MetadataQuerier_HasEntry_2\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntry_2\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=function(){return(_emscripten_bind_MetadataQuerier_GetIntEntryArray_3=Module[\"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetStringEntry_2=Module[\"_emscripten_bind_MetadataQuerier_GetStringEntry_2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=function(){return(_emscripten_bind_MetadataQuerier_NumEntries_1=Module[\"_emscripten_bind_MetadataQuerier_NumEntries_1\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=function(){return(_emscripten_bind_MetadataQuerier_GetEntryName_2=Module[\"_emscripten_bind_MetadataQuerier_GetEntryName_2\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=function(){return(_emscripten_bind_MetadataQuerier___destroy___0=Module[\"_emscripten_bind_MetadataQuerier___destroy___0\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=function(){return(_emscripten_bind_Decoder_Decoder_0=Module[\"_emscripten_bind_Decoder_Decoder_0\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=function(){return(_emscripten_bind_Decoder_DecodeArrayToMesh_3=Module[\"_emscripten_bind_Decoder_DecodeArrayToMesh_3\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeId_2=Module[\"_emscripten_bind_Decoder_GetAttributeId_2\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByName_2=Module[\"_emscripten_bind_Decoder_GetAttributeIdByName_2\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module[\"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=function(){return(_emscripten_bind_Decoder_GetAttribute_2=Module[\"_emscripten_bind_Decoder_GetAttribute_2\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module[\"_emscripten_bind_Decoder_GetAttributeByUniqueId_2\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=function(){return(_emscripten_bind_Decoder_GetMetadata_1=Module[\"_emscripten_bind_Decoder_GetMetadata_1\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=function(){return(_emscripten_bind_Decoder_GetAttributeMetadata_2=Module[\"_emscripten_bind_Decoder_GetAttributeMetadata_2\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=function(){return(_emscripten_bind_Decoder_GetFaceFromMesh_3=Module[\"_emscripten_bind_Decoder_GetFaceFromMesh_3\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=function(){return(_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module[\"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt16Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=function(){return(_emscripten_bind_Decoder_GetTrianglesUInt32Array_3=Module[\"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloat_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloat_3\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=function(){return(_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module[\"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=function(){return(_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=Module[\"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=function(){return(_emscripten_bind_Decoder_SkipAttributeTransform_1=Module[\"_emscripten_bind_Decoder_SkipAttributeTransform_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=function(){return(_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=Module[\"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=function(){return(_emscripten_bind_Decoder_DecodeBufferToMesh_2=Module[\"_emscripten_bind_Decoder_DecodeBufferToMesh_2\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=function(){return(_emscripten_bind_Decoder___destroy___0=Module[\"_emscripten_bind_Decoder___destroy___0\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=function(){return(_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module[\"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=function(){return(_emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=function(){return(_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=function(){return(_emscripten_enum_draco_DataType_DT_INVALID=Module[\"_emscripten_enum_draco_DataType_DT_INVALID\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT8=Module[\"_emscripten_enum_draco_DataType_DT_INT8\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT8=Module[\"_emscripten_enum_draco_DataType_DT_UINT8\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT16=Module[\"_emscripten_enum_draco_DataType_DT_INT16\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT16=Module[\"_emscripten_enum_draco_DataType_DT_UINT16\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT32=Module[\"_emscripten_enum_draco_DataType_DT_INT32\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT32=Module[\"_emscripten_enum_draco_DataType_DT_UINT32\"]=Module[\"asm\"][\"Db\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_INT64=Module[\"_emscripten_enum_draco_DataType_DT_INT64\"]=Module[\"asm\"][\"Eb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_UINT64=Module[\"_emscripten_enum_draco_DataType_DT_UINT64\"]=Module[\"asm\"][\"Fb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT32=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT32\"]=Module[\"asm\"][\"Gb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=function(){return(_emscripten_enum_draco_DataType_DT_FLOAT64=Module[\"_emscripten_enum_draco_DataType_DT_FLOAT64\"]=Module[\"asm\"][\"Hb\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=function(){return(_emscripten_enum_draco_DataType_DT_BOOL=Module[\"_emscripten_enum_draco_DataType_DT_BOOL\"]=Module[\"asm\"][\"Ib\"]).apply(null,arguments)};var _emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=function(){return(_emscripten_enum_draco_DataType_DT_TYPES_COUNT=Module[\"_emscripten_enum_draco_DataType_DT_TYPES_COUNT\"]=Module[\"asm\"][\"Jb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=function(){return(_emscripten_enum_draco_StatusCode_OK=Module[\"_emscripten_enum_draco_StatusCode_OK\"]=Module[\"asm\"][\"Kb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_DRACO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_DRACO_ERROR\"]=Module[\"asm\"][\"Lb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=function(){return(_emscripten_enum_draco_StatusCode_IO_ERROR=Module[\"_emscripten_enum_draco_StatusCode_IO_ERROR\"]=Module[\"asm\"][\"Mb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=function(){return(_emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module[\"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER\"]=Module[\"asm\"][\"Nb\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION\"]=Module[\"asm\"][\"Ob\"]).apply(null,arguments)};var _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=function(){return(_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module[\"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION\"]=Module[\"asm\"][\"Pb\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Qb\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Rb\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Sb\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=11660;var ___stop_em_js=Module[\"___stop_em_js\"]=11758;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module[\"WrapperObject\"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module[\"getCache\"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module[\"wrapPointer\"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module[\"castObject\"]=castObject;Module[\"NULL\"]=wrapPointer(0);function destroy(obj){if(!obj[\"__destroy__\"])throw\"Error: Cannot destroy object. (Did you create it yourself?)\";obj[\"__destroy__\"]();delete getCache(obj.__class__)[obj.ptr]}Module[\"destroy\"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module[\"compare\"]=compare;function getPointer(obj){return obj.ptr}Module[\"getPointer\"]=getPointer;function getClass(obj){return obj.__class__}Module[\"getClass\"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module[\"_free\"](ensureCache.temps[i])}ensureCache.temps.length=0;Module[\"_free\"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module[\"_malloc\"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0},alloc:function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module[\"_malloc\"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i<array.length;i++){view[offset+i]=array[i]}}};function ensureString(value){if(typeof value===\"string\"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function VoidPtr(){throw\"cannot construct a VoidPtr, no constructor in IDL\"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module[\"VoidPtr\"]=VoidPtr;VoidPtr.prototype[\"__destroy__\"]=VoidPtr.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)};function DecoderBuffer(){this.ptr=_emscripten_bind_DecoderBuffer_DecoderBuffer_0();getCache(DecoderBuffer)[this.ptr]=this}DecoderBuffer.prototype=Object.create(WrapperObject.prototype);DecoderBuffer.prototype.constructor=DecoderBuffer;DecoderBuffer.prototype.__class__=DecoderBuffer;DecoderBuffer.__cache__={};Module[\"DecoderBuffer\"]=DecoderBuffer;DecoderBuffer.prototype[\"Init\"]=DecoderBuffer.prototype.Init=function(data,data_size){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;_emscripten_bind_DecoderBuffer_Init_2(self,data,data_size)};DecoderBuffer.prototype[\"__destroy__\"]=DecoderBuffer.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DecoderBuffer___destroy___0(self)};function AttributeTransformData(){this.ptr=_emscripten_bind_AttributeTransformData_AttributeTransformData_0();getCache(AttributeTransformData)[this.ptr]=this}AttributeTransformData.prototype=Object.create(WrapperObject.prototype);AttributeTransformData.prototype.constructor=AttributeTransformData;AttributeTransformData.prototype.__class__=AttributeTransformData;AttributeTransformData.__cache__={};Module[\"AttributeTransformData\"]=AttributeTransformData;AttributeTransformData.prototype[\"transform_type\"]=AttributeTransformData.prototype.transform_type=function(){var self=this.ptr;return _emscripten_bind_AttributeTransformData_transform_type_0(self)};AttributeTransformData.prototype[\"__destroy__\"]=AttributeTransformData.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeTransformData___destroy___0(self)};function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module[\"GeometryAttribute\"]=GeometryAttribute;GeometryAttribute.prototype[\"__destroy__\"]=GeometryAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)};function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module[\"PointAttribute\"]=PointAttribute;PointAttribute.prototype[\"size\"]=PointAttribute.prototype.size=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)};PointAttribute.prototype[\"GetAttributeTransformData\"]=PointAttribute.prototype.GetAttributeTransformData=function(){var self=this.ptr;return wrapPointer(_emscripten_bind_PointAttribute_GetAttributeTransformData_0(self),AttributeTransformData)};PointAttribute.prototype[\"attribute_type\"]=PointAttribute.prototype.attribute_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)};PointAttribute.prototype[\"data_type\"]=PointAttribute.prototype.data_type=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)};PointAttribute.prototype[\"num_components\"]=PointAttribute.prototype.num_components=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)};PointAttribute.prototype[\"normalized\"]=PointAttribute.prototype.normalized=function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)};PointAttribute.prototype[\"byte_stride\"]=PointAttribute.prototype.byte_stride=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)};PointAttribute.prototype[\"byte_offset\"]=PointAttribute.prototype.byte_offset=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)};PointAttribute.prototype[\"unique_id\"]=PointAttribute.prototype.unique_id=function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)};PointAttribute.prototype[\"__destroy__\"]=PointAttribute.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)};function AttributeQuantizationTransform(){this.ptr=_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0();getCache(AttributeQuantizationTransform)[this.ptr]=this}AttributeQuantizationTransform.prototype=Object.create(WrapperObject.prototype);AttributeQuantizationTransform.prototype.constructor=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype.__class__=AttributeQuantizationTransform;AttributeQuantizationTransform.__cache__={};Module[\"AttributeQuantizationTransform\"]=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype[\"InitFromAttribute\"]=AttributeQuantizationTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1(self,att)};AttributeQuantizationTransform.prototype[\"quantization_bits\"]=AttributeQuantizationTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0(self)};AttributeQuantizationTransform.prototype[\"min_value\"]=AttributeQuantizationTransform.prototype.min_value=function(axis){var self=this.ptr;if(axis&&typeof axis===\"object\")axis=axis.ptr;return _emscripten_bind_AttributeQuantizationTransform_min_value_1(self,axis)};AttributeQuantizationTransform.prototype[\"range\"]=AttributeQuantizationTransform.prototype.range=function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_range_0(self)};AttributeQuantizationTransform.prototype[\"__destroy__\"]=AttributeQuantizationTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeQuantizationTransform___destroy___0(self)};function AttributeOctahedronTransform(){this.ptr=_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0();getCache(AttributeOctahedronTransform)[this.ptr]=this}AttributeOctahedronTransform.prototype=Object.create(WrapperObject.prototype);AttributeOctahedronTransform.prototype.constructor=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype.__class__=AttributeOctahedronTransform;AttributeOctahedronTransform.__cache__={};Module[\"AttributeOctahedronTransform\"]=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype[\"InitFromAttribute\"]=AttributeOctahedronTransform.prototype.InitFromAttribute=function(att){var self=this.ptr;if(att&&typeof att===\"object\")att=att.ptr;return!!_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1(self,att)};AttributeOctahedronTransform.prototype[\"quantization_bits\"]=AttributeOctahedronTransform.prototype.quantization_bits=function(){var self=this.ptr;return _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0(self)};AttributeOctahedronTransform.prototype[\"__destroy__\"]=AttributeOctahedronTransform.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_AttributeOctahedronTransform___destroy___0(self)};function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module[\"PointCloud\"]=PointCloud;PointCloud.prototype[\"num_attributes\"]=PointCloud.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)};PointCloud.prototype[\"num_points\"]=PointCloud.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)};PointCloud.prototype[\"__destroy__\"]=PointCloud.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)};function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module[\"Mesh\"]=Mesh;Mesh.prototype[\"num_faces\"]=Mesh.prototype.num_faces=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)};Mesh.prototype[\"num_attributes\"]=Mesh.prototype.num_attributes=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)};Mesh.prototype[\"num_points\"]=Mesh.prototype.num_points=function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)};Mesh.prototype[\"__destroy__\"]=Mesh.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)};function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module[\"Metadata\"]=Metadata;Metadata.prototype[\"__destroy__\"]=Metadata.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)};function Status(){throw\"cannot construct a Status, no constructor in IDL\"}Status.prototype=Object.create(WrapperObject.prototype);Status.prototype.constructor=Status;Status.prototype.__class__=Status;Status.__cache__={};Module[\"Status\"]=Status;Status.prototype[\"code\"]=Status.prototype.code=function(){var self=this.ptr;return _emscripten_bind_Status_code_0(self)};Status.prototype[\"ok\"]=Status.prototype.ok=function(){var self=this.ptr;return!!_emscripten_bind_Status_ok_0(self)};Status.prototype[\"error_msg\"]=Status.prototype.error_msg=function(){var self=this.ptr;return UTF8ToString(_emscripten_bind_Status_error_msg_0(self))};Status.prototype[\"__destroy__\"]=Status.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Status___destroy___0(self)};function DracoFloat32Array(){this.ptr=_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0();getCache(DracoFloat32Array)[this.ptr]=this}DracoFloat32Array.prototype=Object.create(WrapperObject.prototype);DracoFloat32Array.prototype.constructor=DracoFloat32Array;DracoFloat32Array.prototype.__class__=DracoFloat32Array;DracoFloat32Array.__cache__={};Module[\"DracoFloat32Array\"]=DracoFloat32Array;DracoFloat32Array.prototype[\"GetValue\"]=DracoFloat32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoFloat32Array_GetValue_1(self,index)};DracoFloat32Array.prototype[\"size\"]=DracoFloat32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoFloat32Array_size_0(self)};DracoFloat32Array.prototype[\"__destroy__\"]=DracoFloat32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoFloat32Array___destroy___0(self)};function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module[\"DracoInt8Array\"]=DracoInt8Array;DracoInt8Array.prototype[\"GetValue\"]=DracoInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,index)};DracoInt8Array.prototype[\"size\"]=DracoInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)};DracoInt8Array.prototype[\"__destroy__\"]=DracoInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)};function DracoUInt8Array(){this.ptr=_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0();getCache(DracoUInt8Array)[this.ptr]=this}DracoUInt8Array.prototype=Object.create(WrapperObject.prototype);DracoUInt8Array.prototype.constructor=DracoUInt8Array;DracoUInt8Array.prototype.__class__=DracoUInt8Array;DracoUInt8Array.__cache__={};Module[\"DracoUInt8Array\"]=DracoUInt8Array;DracoUInt8Array.prototype[\"GetValue\"]=DracoUInt8Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt8Array_GetValue_1(self,index)};DracoUInt8Array.prototype[\"size\"]=DracoUInt8Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt8Array_size_0(self)};DracoUInt8Array.prototype[\"__destroy__\"]=DracoUInt8Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt8Array___destroy___0(self)};function DracoInt16Array(){this.ptr=_emscripten_bind_DracoInt16Array_DracoInt16Array_0();getCache(DracoInt16Array)[this.ptr]=this}DracoInt16Array.prototype=Object.create(WrapperObject.prototype);DracoInt16Array.prototype.constructor=DracoInt16Array;DracoInt16Array.prototype.__class__=DracoInt16Array;DracoInt16Array.__cache__={};Module[\"DracoInt16Array\"]=DracoInt16Array;DracoInt16Array.prototype[\"GetValue\"]=DracoInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt16Array_GetValue_1(self,index)};DracoInt16Array.prototype[\"size\"]=DracoInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt16Array_size_0(self)};DracoInt16Array.prototype[\"__destroy__\"]=DracoInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt16Array___destroy___0(self)};function DracoUInt16Array(){this.ptr=_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0();getCache(DracoUInt16Array)[this.ptr]=this}DracoUInt16Array.prototype=Object.create(WrapperObject.prototype);DracoUInt16Array.prototype.constructor=DracoUInt16Array;DracoUInt16Array.prototype.__class__=DracoUInt16Array;DracoUInt16Array.__cache__={};Module[\"DracoUInt16Array\"]=DracoUInt16Array;DracoUInt16Array.prototype[\"GetValue\"]=DracoUInt16Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt16Array_GetValue_1(self,index)};DracoUInt16Array.prototype[\"size\"]=DracoUInt16Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt16Array_size_0(self)};DracoUInt16Array.prototype[\"__destroy__\"]=DracoUInt16Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt16Array___destroy___0(self)};function DracoInt32Array(){this.ptr=_emscripten_bind_DracoInt32Array_DracoInt32Array_0();getCache(DracoInt32Array)[this.ptr]=this}DracoInt32Array.prototype=Object.create(WrapperObject.prototype);DracoInt32Array.prototype.constructor=DracoInt32Array;DracoInt32Array.prototype.__class__=DracoInt32Array;DracoInt32Array.__cache__={};Module[\"DracoInt32Array\"]=DracoInt32Array;DracoInt32Array.prototype[\"GetValue\"]=DracoInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoInt32Array_GetValue_1(self,index)};DracoInt32Array.prototype[\"size\"]=DracoInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoInt32Array_size_0(self)};DracoInt32Array.prototype[\"__destroy__\"]=DracoInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoInt32Array___destroy___0(self)};function DracoUInt32Array(){this.ptr=_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0();getCache(DracoUInt32Array)[this.ptr]=this}DracoUInt32Array.prototype=Object.create(WrapperObject.prototype);DracoUInt32Array.prototype.constructor=DracoUInt32Array;DracoUInt32Array.prototype.__class__=DracoUInt32Array;DracoUInt32Array.__cache__={};Module[\"DracoUInt32Array\"]=DracoUInt32Array;DracoUInt32Array.prototype[\"GetValue\"]=DracoUInt32Array.prototype.GetValue=function(index){var self=this.ptr;if(index&&typeof index===\"object\")index=index.ptr;return _emscripten_bind_DracoUInt32Array_GetValue_1(self,index)};DracoUInt32Array.prototype[\"size\"]=DracoUInt32Array.prototype.size=function(){var self=this.ptr;return _emscripten_bind_DracoUInt32Array_size_0(self)};DracoUInt32Array.prototype[\"__destroy__\"]=DracoUInt32Array.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_DracoUInt32Array___destroy___0(self)};function MetadataQuerier(){this.ptr=_emscripten_bind_MetadataQuerier_MetadataQuerier_0();getCache(MetadataQuerier)[this.ptr]=this}MetadataQuerier.prototype=Object.create(WrapperObject.prototype);MetadataQuerier.prototype.constructor=MetadataQuerier;MetadataQuerier.prototype.__class__=MetadataQuerier;MetadataQuerier.__cache__={};Module[\"MetadataQuerier\"]=MetadataQuerier;MetadataQuerier.prototype[\"HasEntry\"]=MetadataQuerier.prototype.HasEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return!!_emscripten_bind_MetadataQuerier_HasEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntry\"]=MetadataQuerier.prototype.GetIntEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetIntEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetIntEntryArray\"]=MetadataQuerier.prototype.GetIntEntryArray=function(metadata,entry_name,out_values){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;_emscripten_bind_MetadataQuerier_GetIntEntryArray_3(self,metadata,entry_name,out_values)};MetadataQuerier.prototype[\"GetDoubleEntry\"]=MetadataQuerier.prototype.GetDoubleEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return _emscripten_bind_MetadataQuerier_GetDoubleEntry_2(self,metadata,entry_name)};MetadataQuerier.prototype[\"GetStringEntry\"]=MetadataQuerier.prototype.GetStringEntry=function(metadata,entry_name){var self=this.ptr;ensureCache.prepare();if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_name&&typeof entry_name===\"object\")entry_name=entry_name.ptr;else entry_name=ensureString(entry_name);return UTF8ToString(_emscripten_bind_MetadataQuerier_GetStringEntry_2(self,metadata,entry_name))};MetadataQuerier.prototype[\"NumEntries\"]=MetadataQuerier.prototype.NumEntries=function(metadata){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;return _emscripten_bind_MetadataQuerier_NumEntries_1(self,metadata)};MetadataQuerier.prototype[\"GetEntryName\"]=MetadataQuerier.prototype.GetEntryName=function(metadata,entry_id){var self=this.ptr;if(metadata&&typeof metadata===\"object\")metadata=metadata.ptr;if(entry_id&&typeof entry_id===\"object\")entry_id=entry_id.ptr;return UTF8ToString(_emscripten_bind_MetadataQuerier_GetEntryName_2(self,metadata,entry_id))};MetadataQuerier.prototype[\"__destroy__\"]=MetadataQuerier.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_MetadataQuerier___destroy___0(self)};function Decoder(){this.ptr=_emscripten_bind_Decoder_Decoder_0();getCache(Decoder)[this.ptr]=this}Decoder.prototype=Object.create(WrapperObject.prototype);Decoder.prototype.constructor=Decoder;Decoder.prototype.__class__=Decoder;Decoder.__cache__={};Module[\"Decoder\"]=Decoder;Decoder.prototype[\"DecodeArrayToPointCloud\"]=Decoder.prototype.DecodeArrayToPointCloud=function(data,data_size,out_point_cloud){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToPointCloud_3(self,data,data_size,out_point_cloud),Status)};Decoder.prototype[\"DecodeArrayToMesh\"]=Decoder.prototype.DecodeArrayToMesh=function(data,data_size,out_mesh){var self=this.ptr;ensureCache.prepare();if(typeof data==\"object\"){data=ensureInt8(data)}if(data_size&&typeof data_size===\"object\")data_size=data_size.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeArrayToMesh_3(self,data,data_size,out_mesh),Status)};Decoder.prototype[\"GetAttributeId\"]=Decoder.prototype.GetAttributeId=function(pc,type){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(type&&typeof type===\"object\")type=type.ptr;return _emscripten_bind_Decoder_GetAttributeId_2(self,pc,type)};Decoder.prototype[\"GetAttributeIdByName\"]=Decoder.prototype.GetAttributeIdByName=function(pc,name){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);return _emscripten_bind_Decoder_GetAttributeIdByName_2(self,pc,name)};Decoder.prototype[\"GetAttributeIdByMetadataEntry\"]=Decoder.prototype.GetAttributeIdByMetadataEntry=function(pc,name,value){var self=this.ptr;ensureCache.prepare();if(pc&&typeof pc===\"object\")pc=pc.ptr;if(name&&typeof name===\"object\")name=name.ptr;else name=ensureString(name);if(value&&typeof value===\"object\")value=value.ptr;else value=ensureString(value);return _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3(self,pc,name,value)};Decoder.prototype[\"GetAttribute\"]=Decoder.prototype.GetAttribute=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttribute_2(self,pc,att_id),PointAttribute)};Decoder.prototype[\"GetAttributeByUniqueId\"]=Decoder.prototype.GetAttributeByUniqueId=function(pc,unique_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(unique_id&&typeof unique_id===\"object\")unique_id=unique_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeByUniqueId_2(self,pc,unique_id),PointAttribute)};Decoder.prototype[\"GetMetadata\"]=Decoder.prototype.GetMetadata=function(pc){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;return wrapPointer(_emscripten_bind_Decoder_GetMetadata_1(self,pc),Metadata)};Decoder.prototype[\"GetAttributeMetadata\"]=Decoder.prototype.GetAttributeMetadata=function(pc,att_id){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(att_id&&typeof att_id===\"object\")att_id=att_id.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeMetadata_2(self,pc,att_id),Metadata)};Decoder.prototype[\"GetFaceFromMesh\"]=Decoder.prototype.GetFaceFromMesh=function(m,face_id,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(face_id&&typeof face_id===\"object\")face_id=face_id.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetFaceFromMesh_3(self,m,face_id,out_values)};Decoder.prototype[\"GetTriangleStripsFromMesh\"]=Decoder.prototype.GetTriangleStripsFromMesh=function(m,strip_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(strip_values&&typeof strip_values===\"object\")strip_values=strip_values.ptr;return _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2(self,m,strip_values)};Decoder.prototype[\"GetTrianglesUInt16Array\"]=Decoder.prototype.GetTrianglesUInt16Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt16Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetTrianglesUInt32Array\"]=Decoder.prototype.GetTrianglesUInt32Array=function(m,out_size,out_values){var self=this.ptr;if(m&&typeof m===\"object\")m=m.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetTrianglesUInt32Array_3(self,m,out_size,out_values)};Decoder.prototype[\"GetAttributeFloat\"]=Decoder.prototype.GetAttributeFloat=function(pa,att_index,out_values){var self=this.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(att_index&&typeof att_index===\"object\")att_index=att_index.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloat_3(self,pa,att_index,out_values)};Decoder.prototype[\"GetAttributeFloatForAllPoints\"]=Decoder.prototype.GetAttributeFloatForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeIntForAllPoints\"]=Decoder.prototype.GetAttributeIntForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt8ForAllPoints\"]=Decoder.prototype.GetAttributeInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt8ForAllPoints\"]=Decoder.prototype.GetAttributeUInt8ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt16ForAllPoints\"]=Decoder.prototype.GetAttributeInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt16ForAllPoints\"]=Decoder.prototype.GetAttributeUInt16ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeInt32ForAllPoints\"]=Decoder.prototype.GetAttributeInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeUInt32ForAllPoints\"]=Decoder.prototype.GetAttributeUInt32ForAllPoints=function(pc,pa,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3(self,pc,pa,out_values)};Decoder.prototype[\"GetAttributeDataArrayForAllPoints\"]=Decoder.prototype.GetAttributeDataArrayForAllPoints=function(pc,pa,data_type,out_size,out_values){var self=this.ptr;if(pc&&typeof pc===\"object\")pc=pc.ptr;if(pa&&typeof pa===\"object\")pa=pa.ptr;if(data_type&&typeof data_type===\"object\")data_type=data_type.ptr;if(out_size&&typeof out_size===\"object\")out_size=out_size.ptr;if(out_values&&typeof out_values===\"object\")out_values=out_values.ptr;return!!_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5(self,pc,pa,data_type,out_size,out_values)};Decoder.prototype[\"SkipAttributeTransform\"]=Decoder.prototype.SkipAttributeTransform=function(att_type){var self=this.ptr;if(att_type&&typeof att_type===\"object\")att_type=att_type.ptr;_emscripten_bind_Decoder_SkipAttributeTransform_1(self,att_type)};Decoder.prototype[\"GetEncodedGeometryType_Deprecated\"]=Decoder.prototype.GetEncodedGeometryType_Deprecated=function(in_buffer){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;return _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1(self,in_buffer)};Decoder.prototype[\"DecodeBufferToPointCloud\"]=Decoder.prototype.DecodeBufferToPointCloud=function(in_buffer,out_point_cloud){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_point_cloud&&typeof out_point_cloud===\"object\")out_point_cloud=out_point_cloud.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2(self,in_buffer,out_point_cloud),Status)};Decoder.prototype[\"DecodeBufferToMesh\"]=Decoder.prototype.DecodeBufferToMesh=function(in_buffer,out_mesh){var self=this.ptr;if(in_buffer&&typeof in_buffer===\"object\")in_buffer=in_buffer.ptr;if(out_mesh&&typeof out_mesh===\"object\")out_mesh=out_mesh.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToMesh_2(self,in_buffer,out_mesh),Status)};Decoder.prototype[\"__destroy__\"]=Decoder.prototype.__destroy__=function(){var self=this.ptr;_emscripten_bind_Decoder___destroy___0(self)};(function(){function setupEnums(){Module[\"ATTRIBUTE_INVALID_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM();Module[\"ATTRIBUTE_NO_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM();Module[\"ATTRIBUTE_QUANTIZATION_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM();Module[\"ATTRIBUTE_OCTAHEDRON_TRANSFORM\"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM();Module[\"INVALID\"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module[\"POSITION\"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module[\"NORMAL\"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module[\"COLOR\"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module[\"TEX_COORD\"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module[\"GENERIC\"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC();Module[\"INVALID_GEOMETRY_TYPE\"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module[\"POINT_CLOUD\"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module[\"TRIANGULAR_MESH\"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module[\"DT_INVALID\"]=_emscripten_enum_draco_DataType_DT_INVALID();Module[\"DT_INT8\"]=_emscripten_enum_draco_DataType_DT_INT8();Module[\"DT_UINT8\"]=_emscripten_enum_draco_DataType_DT_UINT8();Module[\"DT_INT16\"]=_emscripten_enum_draco_DataType_DT_INT16();Module[\"DT_UINT16\"]=_emscripten_enum_draco_DataType_DT_UINT16();Module[\"DT_INT32\"]=_emscripten_enum_draco_DataType_DT_INT32();Module[\"DT_UINT32\"]=_emscripten_enum_draco_DataType_DT_UINT32();Module[\"DT_INT64\"]=_emscripten_enum_draco_DataType_DT_INT64();Module[\"DT_UINT64\"]=_emscripten_enum_draco_DataType_DT_UINT64();Module[\"DT_FLOAT32\"]=_emscripten_enum_draco_DataType_DT_FLOAT32();Module[\"DT_FLOAT64\"]=_emscripten_enum_draco_DataType_DT_FLOAT64();Module[\"DT_BOOL\"]=_emscripten_enum_draco_DataType_DT_BOOL();Module[\"DT_TYPES_COUNT\"]=_emscripten_enum_draco_DataType_DT_TYPES_COUNT();Module[\"OK\"]=_emscripten_enum_draco_StatusCode_OK();Module[\"DRACO_ERROR\"]=_emscripten_enum_draco_StatusCode_DRACO_ERROR();Module[\"IO_ERROR\"]=_emscripten_enum_draco_StatusCode_IO_ERROR();Module[\"INVALID_PARAMETER\"]=_emscripten_enum_draco_StatusCode_INVALID_PARAMETER();Module[\"UNSUPPORTED_VERSION\"]=_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION();Module[\"UNKNOWN_VERSION\"]=_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION()}if(runtimeInitialized)setupEnums();else addOnInit(setupEnums)})();if(typeof Module[\"onModuleParsed\"]===\"function\"){Module[\"onModuleParsed\"]()}Module[\"Decoder\"].prototype.GetEncodedGeometryType=function(array){if(array.__class__&&array.__class__===Module.DecoderBuffer){return Module.Decoder.prototype.GetEncodedGeometryType_Deprecated(array)}if(array.byteLength<8)return Module.INVALID_GEOMETRY_TYPE;switch(array[7]){case 0:return Module.POINT_CLOUD;case 1:return Module.TRIANGULAR_MESH;default:return Module.INVALID_GEOMETRY_TYPE}};\n\n\n  return DracoDecoderModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DracoDecoderModule;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DracoDecoderModule; });\nelse if (typeof exports === 'object')\n  exports[\"DracoDecoderModule\"] = DracoDecoderModule;\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/gltf/draco_encoder.js",
    "content": "var DracoEncoderModule = function(DracoEncoderModule) {\n  DracoEncoderModule = DracoEncoderModule || {};\n\nvar Module=typeof DracoEncoderModule!==\"undefined\"?DracoEncoderModule:{};var isRuntimeInitialized=false;var isModuleParsed=false;Module[\"onRuntimeInitialized\"]=(function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}});Module[\"onModuleParsed\"]=(function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module[\"onModuleLoaded\"]===\"function\"){Module[\"onModuleLoaded\"](Module)}}});function isVersionSupported(versionString){if(typeof versionString!==\"string\")return false;const version=versionString.split(\".\");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=3)return true;if(version[0]!=0||version[1]>10)return false;return true}Module[\"isVersionSupported\"]=isVersionSupported;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module[\"ENVIRONMENT\"]){if(Module[\"ENVIRONMENT\"]===\"WEB\"){ENVIRONMENT_IS_WEB=true}else if(Module[\"ENVIRONMENT\"]===\"WORKER\"){ENVIRONMENT_IS_WORKER=true}else if(Module[\"ENVIRONMENT\"]===\"NODE\"){ENVIRONMENT_IS_NODE=true}else if(Module[\"ENVIRONMENT\"]===\"SHELL\"){ENVIRONMENT_IS_SHELL=true}else{throw new Error(\"Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.\")}}else{ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename)}return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module[\"readBinary\"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module[\"read\"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module[\"readAsync\"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}Module[\"print\"]=typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null;Module[\"printErr\"]=typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||Module[\"print\"];Module.print=Module[\"print\"];Module.printErr=Module[\"printErr\"];for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){assert(!staticSealed);var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}function getNativeTypeSize(type){switch(type){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:{if(type[type.length-1]===\"*\"){return 4}else if(type[0]===\"i\"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;Module.printErr(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module[\"dynCall_\"+sig].apply(null,[ptr].concat(args))}else{return Module[\"dynCall_\"+sig].call(null,ptr)}}var GLOBAL_BASE=8;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}var JSfuncs={\"stackSave\":(function(){stackSave()}),\"stackRestore\":(function(){stackRestore()}),\"arrayToC\":(function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),\"stringToC\":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={\"string\":JSfuncs[\"stringToC\"],\"array\":JSfuncs[\"arrayToC\"]};function ccall(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType===\"string\")ret=Pointer_stringify(ret);if(returnType===\"boolean\")ret=Boolean(ret);if(stack!==0){stackRestore(stack)}return ret}function setValue(ptr,value,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":HEAP8[ptr>>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab===\"number\"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types===\"string\"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc===\"function\"?_malloc:staticAlloc,stackAlloc,staticAlloc,dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType===\"i8\"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];type=singleType||types[i];if(type===0){i++;continue}if(type==\"i64\")type=\"i32\";setValue(ret+i,curr,type);if(previousType!==type){typeSize=getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function demangle(func){return func}function demangleAll(text){var regex=/__Z[\\w\\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+\" [\"+y+\"]\"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return\"(no stack trace available)\"}}return err.stack.toString()}var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY<HEAP32[DYNAMICTOP_PTR>>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr(\"TOTAL_MEMORY should be larger than TOTAL_STACK, was \"+TOTAL_MEMORY+\"! (TOTAL_STACK=\"+TOTAL_STACK+\")\");if(Module[\"buffer\"]){buffer=Module[\"buffer\"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}Module[\"buffer\"]=buffer}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw\"Runtime error: expected the system to be little-endian!\";function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_max=Math.max;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var memoryInitializer=null;var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+19728;__ATINIT__.push();memoryInitializer=\"data:application/octet-stream;base64,HBwAAGQcAAAYAAAAAAAAAPQbAACLHAAAHBwAAKgcAAAYAAAAAAAAAPQbAADRHAAAHBwAAO0cAAAwAAAAAAAAAPQbAAAPHQAAHBwAADQdAAAwAAAAAAAAABwcAADsKQAASAAAAAAAAAAcHAAAZB0AAIAAAAAAAAAAHBwAAL0dAACQAAAAAAAAABwcAAARHgAAoAAAAAAAAAAcHAAARR4AALAAAAAAAAAA9BsAAHAeAAAcHAAAlB4AAMgAAAAAAAAA9BsAADIfAAAcHAAA0B8AAOAAAAAAAAAAHBwAAGggAACAAAAAAAAAABwcAADxIAAA4AAAAAAAAAAcHAAAiyEAAOAAAAAAAAAAHBwAAB0iAADgAAAAAAAAABwcAADDIgAA4AAAAAAAAAAcHAAAXiMAAOAAAAAAAAAAHBwAAPQjAABQAQAAAAAAAPQbAACfJAAAHBwAAEolAABoAQAAAAAAABwcAADvJQAAgAAAAAAAAAAcHAAAhSYAAGgBAAAAAAAAHBwAACwnAABoAQAAAAAAABwcAADLJwAAaAEAAAAAAAAcHAAAfigAAGgBAAAAAAAAHBwAACYpAABoAQAAAAAAABwcAADaNwAAYAAAAAAAAAAcHAAAGCoAAOgBAAAAAAAAHBwAAIkqAACQAAAAAAAAABwcAAD1KgAACAIAAAAAAAD0GwAAqysAABwcAABhLAAAIAIAAAAAAAAcHAAAES0AAOgBAAAAAAAAHBwAALItAAAgAgAAAAAAABwcAABkLgAAIAIAAAAAAAAcHAAADi8AACACAAAAAAAAHBwAAMwvAAAgAgAAAAAAABwcAAB/MAAAIAIAAAAAAAAcHAAALTEAAJACAAAAAAAA9BsAAPAxAAAcHAAAszIAAKgCAAAAAAAAHBwAAHAzAADoAQAAAAAAABwcAAAeNAAAqAIAAAAAAAAcHAAA3TQAAKgCAAAAAAAAHBwAAJQ1AACoAgAAAAAAABwcAABfNgAAqAIAAAAAAAAcHAAAHzcAAKgCAAAAAAAAHBwAAAU4AABgAAAAAAAAABwcAAAJOQAAmAMAAAAAAAAcHAAACzwAAIADAAAAAAAA9BsAACo5AAAcHAAAcjkAAFADAAAAAAAA9BsAADw6AAD0GwAAVjoAABwcAACROgAAUAMAAAAAAAAcHAAATjsAAFADAAAAAAAA9BsAAFc8AAAcHAAAhTwAAIADAAAAAAAAHBwAANg8AADIAwAAAAAAABwcAAAePQAAmAMAAAAAAAAcHAAABD0AAFADAAAAAAAA9BsAAD49AAAcHAAAFD4AAMgDAAAAAAAAHBwAADY+AADIAwAAAAAAABwcAACVPgAAAAQAAAAAAAD0GwAA5z4AAPQbAAAWSQAAHBwAAHZJAAAgBAAAAAAAABwcAAAjSQAAMAQAAAAAAAD0GwAAREkAABwcAABRSQAAEAQAAAAAAAAcHAAAWEoAAAgEAAAAAAAAHBwAAGhKAABIBAAAAAAAABwcAACdSgAAIAQAAAAAAAAcHAAAeUoAAGgEAAAAAAAAAAAAAAgAAAABAAAAAgAAAAEAAAABAAAAAQAAAAAAAAAgAAAAAwAAAAQAAAACAAAAAgAAAAIAAAD//////////wAAAAAwAAAABQAAAAYAAAABAAAAAwAAAAEAAAAEAAAABQAAAAIAAAAGAAAABwAAAAMAAAABAAAACAAAAAAAAAA4AAAABwAAAAgAAAABAAAAAwAAAAQAAAAEAAAABQAAAAIAAAAGAAAABwAAAAUAAAAJAAAACgAAAAAAAABIAAAACQAAAAoAAAADAAAACwAAAAwAAAAEAAAADQAAAAYAAAAHAAAADgAAAA8AAAAFAAAAAAAAAFAAAAALAAAADAAAAAYAAAAQAAAACAAAABEAAAASAAAABwAAABMAAAAUAAAACQAAABUAAAAWAAAACgAAAAEAAAAAAAAAYAAAAA0AAAAOAAAACAAAAAsAAAAXAAAABAAAAA0AAAAGAAAACwAAAA4AAAAPAAAACQAAAAIAAAAKAAAA/////wAAAACAAAAADwAAABAAAAABAAAADAAAAAEAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAABAAAAAAAAAHAAAAAPAAAAEQAAABAAAAAMAAAAEQAAAA0AAAAYAAAAGQAAAA4AAAAPAAAAGgAAAAEAAAAAAAAAMAEAAA8AAAASAAAAEgAAAAwAAAATAAAADQAAABgAAAAZAAAADgAAAA8AAAAaAAAAAgAAAAAAAAAgAQAADwAAABMAAAAUAAAADAAAABUAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAADAAAAAAAAAAABAAAUAAAAFQAAABYAAAAMAAAAFwAAABgAAAAbAAAAHAAAAA4AAAAPAAAAHQAAAAQAAAAAAAAA8AAAABYAAAAXAAAAGQAAAAwAAAAaAAAAGwAAAB4AAAAfAAAADgAAAA8AAAAgAAAABQAAAAAAAADQAAAAGAAAABkAAAAcAAAADAAAAB0AAAAeAAAAIQAAACIAAAAOAAAADwAAACMAAAAGAAAAAAAAALgAAAAaAAAAGwAAACQAAAAfAAAAAwAAAAAAAADgAAAADwAAABwAAAABAAAADAAAAAEAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAABAAAAAAAAABABAAAdAAAAHgAAACAAAAAMAAAAIQAAAA0AAAAYAAAAGQAAAA4AAAAPAAAAJQAAAAcAAAAAAAAAuAEAAA8AAAAfAAAAIgAAAAwAAAAjAAAADQAAABgAAAAZAAAADgAAAA8AAAAaAAAACAAAAAAAAACoAQAADwAAACAAAAAkAAAADAAAACUAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAAJAAAAAAAAAIgBAAAhAAAAIgAAACYAAAAMAAAAJwAAACgAAAAmAAAAJwAAAA4AAAAPAAAAKAAAAAoAAAAAAAAAeAEAACMAAAAkAAAAKQAAAAwAAAAqAAAAKwAAACkAAAAqAAAADgAAAA8AAAArAAAACwAAAAAAAABYAQAAJQAAACYAAAAsAAAADAAAAC0AAAAuAAAALAAAAC0AAAAOAAAADwAAAC4AAAAMAAAAAAAAAEABAAAnAAAAKAAAAC8AAAAvAAAABAAAAAAAAABoAQAADwAAACkAAAABAAAADAAAAAEAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAABAAAAAAAAAJgBAAAqAAAAKwAAADAAAAAMAAAAMQAAAA0AAAAYAAAAGQAAAA4AAAAPAAAAMAAAAA0AAAAAAAAAyAEAACwAAAAtAAAACwAAAAsAAAAXAAAABAAAADEAAAAyAAAAMwAAAA4AAAAPAAAACQAAAAUAAAAMAAAAAAAAANgBAAAuAAAALwAAADQAAAA1AAAANgAAADcAAAAyAAAAMwAAADgAAAA5AAAANAAAAA4AAAAAAAAAcAIAAC4AAAAwAAAAOgAAADUAAAA7AAAANwAAADIAAAAzAAAAOAAAADkAAAA0AAAADwAAAAAAAABgAgAALgAAADEAAAA8AAAANQAAAD0AAAA3AAAAMgAAADMAAAA4AAAAOQAAADQAAAAQAAAAAAAAAFACAAAyAAAAMwAAAD4AAAA1AAAAPwAAADcAAAAyAAAAMwAAADgAAAA5AAAANQAAABEAAAAAAAAAQAIAADQAAAA1AAAAQAAAADUAAABBAAAAQgAAADYAAAA3AAAAOAAAADkAAAA4AAAAEgAAAAAAAAAwAgAANgAAADcAAABDAAAANQAAAEQAAABFAAAAOQAAADoAAAA4AAAAOQAAADsAAAATAAAAAAAAABACAAA4AAAAOQAAAEYAAAA1AAAARwAAAEgAAAA8AAAAPQAAADgAAAA5AAAAPgAAABQAAAAAAAAA+AEAADoAAAA7AAAAPwAAAEkAAAAGAAAAAAAAAPgCAAAuAAAAPAAAAEoAAAA1AAAASwAAADcAAAAyAAAAMwAAADgAAAA5AAAANAAAABUAAAAAAAAA6AIAAC4AAAA9AAAATAAAADUAAABNAAAANwAAADIAAAAzAAAAOAAAADkAAAA0AAAAFgAAAAAAAADYAgAAPgAAAD8AAABOAAAANQAAAE8AAAA3AAAAMgAAADMAAAA4AAAAOQAAAEAAAAAXAAAAAAAAAMgCAABAAAAAQQAAAFAAAAA1AAAAUQAAAFIAAABBAAAAQgAAADgAAAA5AAAAQwAAABgAAAAAAAAAuAIAAEIAAABDAAAAUwAAADUAAABUAAAAVQAAAEQAAABFAAAAOAAAADkAAABGAAAAGQAAAAAAAACYAgAARAAAAEUAAABWAAAANQAAAFcAAABYAAAARwAAAEgAAAA4AAAAOQAAAEkAAAAaAAAAAAAAAIACAABGAAAARwAAAEoAAABZAAAABwAAAAAAAAAIAwAASAAAAEkAAAANAAAACwAAABcAAAAEAAAASwAAAFoAAABbAAAADgAAAA8AAAAJAAAAAgAAAA4AAAAAAAAAGAMAAEoAAABLAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAYgAAAEwAAABNAAAAYwAAAGQAAABOAAAATwAAAGUAAAAAAAAAKAMAAEwAAABNAAAAUAAAAFEAAABSAAAAUwAAAFQAAABmAAAAZwAAAFUAAABoAAAAAQAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAQAMAAE4AAABPAAAAVgAAAGkAAAAAAAAAOAMAAFAAAABRAAAAUgAAAP////8AAAAAYAMAAFMAAABUAAAAVwAAAGoAAAAAAAAAWAMAAFUAAABWAAAAVwAAAAAAAABwAwAAWAAAAFkAAABYAAAAawAAAAAAAACIAwAAWgAAAFsAAABZAAAAWgAAAFsAAABcAAAAXQAAAGwAAABtAAAAXgAAAG4AAAAAAAAAAQAAAAUAAAACAAAABQAAAAMAAAAFAAAABAAAAAAAAACYAwAAXAAAAF0AAABcAAAAAQAAAG8AAABfAAAAYAAAAGEAAABiAAAAAQAAAF8AAABjAAAAcAAAAGAAAABhAAAAAQAAAAAAAACoAwAAXAAAAF4AAABcAAAAcQAAAG8AAABfAAAAYAAAAGEAAABiAAAAYgAAAF8AAABjAAAAcAAAAGAAAABhAAAAcgAAAAAAAAC4AwAAXwAAAGAAAABjAAAAcwAAAAAAAADIAwAAXAAAAGEAAAB0AAAAAQAAAG8AAABfAAAAdQAAAGEAAABiAAAAAQAAAF8AAABjAAAAAAAAANADAABcAAAAYgAAAHQAAAB2AAAAbwAAAF8AAAB3AAAAYQAAAGIAAABkAAAAXwAAAGMAAAAAAAAA4AMAAFwAAABjAAAAdAAAAHgAAABvAAAAXwAAAHkAAABhAAAAYgAAAGUAAABfAAAAYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAFZVVVUCAAAAAAAAAAIAAACamZmZAwAAAFZVVVUDAAAAJUmSJAMAAAAAAAAAAwAAAMhxHMcEAAAAmpmZmQQAAABGF110BAAAAFZVVVUEAAAAPLETOwQAAAAlSZIkBAAAABIREREEAAAAAAAAAAQAAADi4eHhBQAAAMhxHMcFAAAAy2sorwUAAACamZmZBQAAAIdhGIYFAAAARhdddAUAAACRhSxkBQAAAFZVVVUFAAAAexSuRwUAAAA8sRM7BQAAANtLaC8FAAAAJUmSJAUAAAASlnsaBQAAABIREREFAAAAhRBCCAUAAAAAAAAABQAAAAgffPAGAAAA4uHh4QYAAADVQR3UBgAAAMhxHMcGAAAATZHPugYAAADLayivBgAAAKVBGqQGAAAAmpmZmQYAAAD6GJyPBgAAAIdhGIYGAAAAGPQFfQYAAABGF110BgAAAG3BFmwGAAAAkYUsZAYAAAC6gphcBgAAAFZVVVUGAAAAcwpeTgYAAAB7FK5HBgAAAEJBQUEGAAAAPLETOwYAAACzzyE1BgAAANtLaC8GAAAAnxLkKQYAAAAlSZIkBgAAAN1HcB8GAAAAEpZ7GgYAAAD45bEVBgAAABIREREGAAAA/BSXDAYAAACFEEIIBgAAAAVBEAQGAAAAAAAAAAYAAAD5gR/4BwAAAAgffPAHAAAAwBoT6QcAAADi4eHhBwAAAGwH5toHAAAA1UEd1AcAAACRaIXNBwAAAMhxHMcHAAAAOXDgwAcAAABNkc+6BwAAAE8b6LQHAAAAy2sorwcAAAAH9o6pBwAAAKVBGqQHAAAAUunIngcAAACamZmZBwAAAM4Pi5QHAAAA+hicjwcAAAD3kMuKBwAAAIdhGIYHAAAAgoGBgQcAAAAY9AV9BwAAABjIpHgHAAAARhdddAcAAADBBS5wBwAAAG3BFmwHAAAAaYEWaAcAAACRhSxkBwAAAAYWWGAHAAAAuoKYXAcAAAAJI+1YBwAAAFZVVVUHAAAAr37QUQcAAABzCl5OBwAAAAZq/UoHAAAAexSuRwcAAABXhm9EBwAAAEJBQUEHAAAAz8siPgcAAAA8sRM7BwAAADmBEzgHAAAAs88hNQcAAACjND4yBwAAANtLaC8HAAAA2bSfLAcAAACfEuQpBwAAAIkLNScHAAAAJUmSJAcAAAATePshBwAAAN1HcB8HAAAA22rwHAcAAAASlnsaBwAAABmBERgHAAAA+OWxFQcAAAAUgVwTBwAAABIREREHAAAAv1bPDgcAAAD8FJcMBwAAAKcQaAoHAAAAhRBCCAcAAAAw3SQGBwAAAAVBEAQHAAAAEQgEAgcAAAAAAAAABwAAACDwB/wIAAAA+YEf+AgAAADlWUb0CAAAAAgffPAIAAAAMXvA7AgAAADAGhPpCAAAAJGsc+UIAAAA4uHh4QgAAABAbl3eCAAAAGwH5toIAAAATGV71wgAAADVQR3UCAAAAPdYy9AIAAAAkWiFzQgAAABWMEvKCAAAAMhxHMcIAAAAHfD4wwgAAAA5cODACAAAAJq40r0IAAAATZHPuggAAADew9a3CAAAAE8b6LQIAAAAB2QDsggAAADLayivCAAAAK0BV6wIAAAAB/aOqQgAAABuGtCmCAAAAKVBGqQIAAAAmD9toQgAAABS6cieCAAAAO8ULZwIAAAAmpmZmQgAAACBTw6XCAAAAM4Pi5QIAAAAnrQPkggAAAD6GJyPCAAAANQYMI0IAAAA95DLiggAAAALX26ICAAAAIdhGIYIAAAArHfJgwgAAACCgYGBCAAAANFfQH8IAAAAGPQFfQgAAACPINJ6CAAAABjIpHgIAAAARM59dggAAABGF110CAAAAPWHQnIIAAAAwQUucAgAAAC1dh9uCAAAAG3BFmwIAAAAFs0TaggAAABpgRZoCAAAAKbGHmYIAAAAkYUsZAgAAABxpz9iCAAAAAYWWGAIAAAAjrt1XggAAAC6gphcCAAAALFWwFoIAAAACSPtWAgAAADG0x5XCAAAAFZVVVUIAAAAkJSQUwgAAACvftBRCAAAAFEBFVAIAAAAcwpeTggAAABziKtMCAAAAAZq/UoIAAAAPJ5TSQgAAAB7FK5HCAAAAIC8DEYIAAAAV4ZvRAgAAABeYtZCCAAAAEJBQUEIAAAA/BOwPwgAAADPyyI+CAAAAEhamTwIAAAAPLETOwgAAADCwpE5CAAAADmBEzgIAAAAPt+YNggAAACzzyE1CAAAALZFrjMIAAAAozQ+MggAAAAUkNEwCAAAANtLaC8IAAAABVwCLggAAADZtJ8sCAAAANFKQCsIAAAAnxLkKQgAAAApAYsoCAAAAIkLNScIAAAACSfiJQgAAAAlSZIkCAAAAIpnRSMIAAAAE3j7IQgAAADHcLQgCAAAAN1HcB8IAAAAtPMuHggAAADbavAcCAAAAAWktBsIAAAAEpZ7GggAAAAJOEUZCAAAABmBERgIAAAAlWjgFggAAAD45bEVCAAAAOHwhRQIAAAAFIFcEwgAAAB2jjUSCAAAABIREREIAAAAEAHvDwgAAAC/Vs8OCAAAAIkKsg0IAAAA/BSXDAgAAADDbn4LCAAAAKcQaAoIAAAAkfNTCQgAAACFEEIICAAAAKVgMgcIAAAAMN0kBggAAAB+fxkFCAAAAAVBEAQIAAAAUhsJAwgAAAARCAQCCAAAAAIBAQEIAAAA/////wAAAADwAwAAZAAAAGUAAAAIAAAAAwAAAHoAAABmAAAACQAAAP////8AAAAAAAQAAGcAAABoAAAACgAAAAQAAAB6AAAAZgAAAAsAAAD/////VBgAAAUAAAAAAAAAAAAAAHsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAQAAAACE0AAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFX3CJAP8JLw8AAAAAAgAAAAMAAAAFAAAABwAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAfwAAAIMAAACJAAAAiwAAAJUAAACXAAAAnQAAAKMAAACnAAAArQAAALMAAAC1AAAAvwAAAMEAAADFAAAAxwAAANMAAAABAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB5AAAAfwAAAIMAAACJAAAAiwAAAI8AAACVAAAAlwAAAJ0AAACjAAAApwAAAKkAAACtAAAAswAAALUAAAC7AAAAvwAAAMEAAADFAAAAxwAAANEAAAACAAAAAAAAABAEAABpAAAAagAAAGsAAABsAAAAEgAAAAEAAAABAAAAAQAAAAAAAAA4BAAAaQAAAG0AAABrAAAAbAAAABIAAAACAAAAAgAAAAIAAAAAAAAASAQAAG4AAABvAAAAfAAAAAAAAABYBAAAbgAAAHAAAAB8AAAATjVkcmFjbzI4QXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybUUATjVkcmFjbzE4QXR0cmlidXRlVHJhbnNmb3JtRQBONWRyYWNvMzBBdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1FAE41ZHJhY28xN0F0dHJpYnV0ZXNFbmNvZGVyRQBONWRyYWNvMjNLZFRyZWVBdHRyaWJ1dGVzRW5jb2RlckUATjVkcmFjbzI2U2VxdWVudGlhbEF0dHJpYnV0ZUVuY29kZXJFAE41ZHJhY28zN1NlcXVlbnRpYWxBdHRyaWJ1dGVFbmNvZGVyc0NvbnRyb2xsZXJFAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFRUUATjVkcmFjbzM3UHJlZGljdGlvblNjaGVtZVR5cGVkRW5jb2RlckludGVyZmFjZUlpaUVFAE41ZHJhY28zMlByZWRpY3Rpb25TY2hlbWVFbmNvZGVySW50ZXJmYWNlRQBONWRyYWNvMjVQcmVkaWN0aW9uU2NoZW1lSW50ZXJmYWNlRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMzZNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc0VuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDVNZXNoUHJlZGljdGlvblNjaGVtZU11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzM2TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDVNZXNoUHJlZGljdGlvblNjaGVtZU11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAdXNlX2J1aWx0X2luX2F0dHJpYnV0ZV9jb21wcmVzc2lvbgBONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZUVuY29kZXJFAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzM2TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNTZNZXNoUHJlZGljdGlvblNjaGVtZUNvbnN0cmFpbmVkTXVsdGlQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ1TWVzaFByZWRpY3Rpb25TY2hlbWVNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbEVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28zNk1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ1TWVzaFByZWRpY3Rpb25TY2hlbWVNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28zMlNlcXVlbnRpYWxOb3JtYWxBdHRyaWJ1dGVFbmNvZGVyRQBONWRyYWNvMzhTZXF1ZW50aWFsUXVhbnRpemF0aW9uQXR0cmlidXRlRW5jb2RlckUAcHJlZGljdGlvbl9zY2hlbWUAZW5jb2Rpbmdfc3BlZWQAZGVjb2Rpbmdfc3BlZWQAcXVhbnRpemF0aW9uX29yaWdpbgBxdWFudGl6YXRpb25fcmFuZ2UAIABlbmNvZGluZ19tZXRob2QAcXVhbnRpemF0aW9uX2JpdHMASW52YWxpZCBlbmNvZGluZyBtZXRob2QuAHN0YW5kYXJkX2VkZ2VicmVha2VyAHByZWRpY3RpdmVfZWRnZWJyZWFrZXIAZWRnZWJyZWFrZXJfbWV0aG9kAE41ZHJhY28yMk1lc2hFZGdlQnJlYWtlckVuY29kZXJFAE41ZHJhY28yOUNvcm5lclRhYmxlVHJhdmVyc2FsUHJvY2Vzc29ySU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjBFZGdlQnJlYWtlclRyYXZlcnNlcklOU18yOUNvcm5lclRhYmxlVHJhdmVyc2FsUHJvY2Vzc29ySU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzNfRUVOU18xOUVkZ2VCcmVha2VyT2JzZXJ2ZXJFRUVFRQBONWRyYWNvMTVQb2ludHNTZXF1ZW5jZXJFAE41ZHJhY28yOUNvcm5lclRhYmxlVHJhdmVyc2FsUHJvY2Vzc29ySU5TXzExQ29ybmVyVGFibGVFRUUATjVkcmFjbzIyTWVzaFRyYXZlcnNhbFNlcXVlbmNlcklOU18yMEVkZ2VCcmVha2VyVHJhdmVyc2VySU5TXzI5Q29ybmVyVGFibGVUcmF2ZXJzYWxQcm9jZXNzb3JJTlNfMTFDb3JuZXJUYWJsZUVFRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMzX0VFTlNfMTlFZGdlQnJlYWtlck9ic2VydmVyRUVFRUUATjVkcmFjbzIyTWVzaFRyYXZlcnNhbFNlcXVlbmNlcklOU18yNVByZWRpY3Rpb25EZWdyZWVUcmF2ZXJzZXJJTlNfMjlDb3JuZXJUYWJsZVRyYXZlcnNhbFByb2Nlc3NvcklOU18xMUNvcm5lclRhYmxlRUVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzNfRUVFRUVFAHNwbGl0X21lc2hfb25fc2VhbXMATjVkcmFjbzI2TWVzaEVkZ2VCcmVha2VyRW5jb2RlckltcGxJTlNfMzFNZXNoRWRnZUJyZWFrZXJUcmF2ZXJzYWxFbmNvZGVyRUVFAE41ZHJhY28zNU1lc2hFZGdlQnJlYWtlckVuY29kZXJJbXBsSW50ZXJmYWNlRQBONWRyYWNvMjZNZXNoRWRnZUJyZWFrZXJFbmNvZGVySW1wbElOU18zOE1lc2hFZGdlQnJlYWtlclRyYXZlcnNhbFZhbGVuY2VFbmNvZGVyRUVFAE41ZHJhY28xMU1lc2hFbmNvZGVyRQBjb21wcmVzc19jb25uZWN0aXZpdHkATjVkcmFjbzE1TGluZWFyU2VxdWVuY2VyRQBONWRyYWNvMjFNZXNoU2VxdWVudGlhbEVuY29kZXJFAE41ZHJhY28xN1BvaW50Q2xvdWRFbmNvZGVyRQBJbnZhbGlkIGlucHV0IGdlb21ldHJ5LgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBlbmNvZGVyLgBGYWlsZWQgdG8gZW5jb2RlIGludGVybmFsIGRhdGEuAEZhaWxlZCB0byBlbmNvZGUgZ2VvbWV0cnkgZGF0YS4ARmFpbGVkIHRvIGVuY29kZSBwb2ludCBhdHRyaWJ1dGVzLgBGYWlsZWQgdG8gZW5jb2RlIG1ldGFkYXRhLgBEUkFDTwBONWRyYWNvMjNQb2ludENsb3VkS2RUcmVlRW5jb2RlckUATjVkcmFjbzI3UG9pbnRDbG91ZFNlcXVlbnRpYWxFbmNvZGVyRQBzeW1ib2xfZW5jb2RpbmdfbWV0aG9kAHN5bWJvbF9lbmNvZGluZ19jb21wcmVzc2lvbl9sZXZlbABONWRyYWNvNE1lc2hFAGFsbG9jYXRvcjxUPjo6YWxsb2NhdGUoc2l6ZV90IG4pICduJyBleGNlZWRzIG1heGltdW0gc3VwcG9ydGVkIHNpemUATjVkcmFjbzEwUG9pbnRDbG91ZEUAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAETCQsLAAAJBgsAAAsABhEAAAAREREAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAABA0AAAAACQ4AAAAAAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASEhIAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAoAAAAACQsAAAAAAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAtKyAgIDBYMHgAKG51bGwpAC0wWCswWCAwWC0weCsweCAweABpbmYASU5GAE5BTgAwMTIzNDU2Nzg5QUJDREVGLgBUISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wASWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAGluZmluaXR5AG5hbgAlZAAlZgB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHB0aHJlYWRfb25jZSBmYWlsdXJlIGluIF9fY3hhX2dldF9nbG9iYWxzX2Zhc3QoKQBjYW5ub3QgY3JlYXRlIHB0aHJlYWQga2V5IGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAGNhbm5vdCB6ZXJvIG91dCB0aHJlYWQgdmFsdWUgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAFN0MTFsb2dpY19lcnJvcgBTdDEybGVuZ3RoX2Vycm9yAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQ==\";var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___cxa_allocate_exception(size){return _malloc(size)}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr+\" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.\"}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module[\"___cxa_can_catch\"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+\" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.\"}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],\"i8\",ALLOC_STATIC);function ___gxx_personality_v0(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function flush_NO_FILESYSTEM(){var fflush=Module[\"_fflush\"];if(fflush)fflush(0);var printChar=___syscall146.printChar;if(!printChar)return;var buffers=___syscall146.buffers;if(buffers[1].length)printChar(1,10);if(buffers[2].length)printChar(2,10)}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module[\"print\"]:Module[\"printErr\"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){___syscall146.printChar(stream,HEAPU8[ptr+j])}ret+=len}return ret}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _abort(){Module[\"abort\"]()}var _llvm_ceil_f64=Math_ceil;var _llvm_fabs_f64=Math_abs;var _llvm_floor_f64=Math_floor;function _llvm_trap(){abort(\"trap!\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,\"Character code \"+chr+\" (\"+String.fromCharCode(chr)+\")  at offset \"+i+\" not in 0x00-0xFF.\")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}var decodeBase64=typeof atob===\"function\"?atob:(function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output});function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE===\"boolean\"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,\"base64\")}catch(_){buf=new Buffer(s,\"base64\")}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength)}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}function invoke_ii(index,a1){try{return Module[\"dynCall_ii\"](index,a1)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module[\"dynCall_iiiiiii\"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){try{Module[\"dynCall_v\"](index)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){try{Module[\"dynCall_vi\"](index,a1)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module[\"dynCall_viiiiii\"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={\"Math\":Math,\"Int8Array\":Int8Array,\"Int16Array\":Int16Array,\"Int32Array\":Int32Array,\"Uint8Array\":Uint8Array,\"Uint16Array\":Uint16Array,\"Uint32Array\":Uint32Array,\"Float32Array\":Float32Array,\"Float64Array\":Float64Array,\"NaN\":NaN,\"Infinity\":Infinity,\"byteLength\":byteLength};Module.asmLibraryArg={\"abort\":abort,\"assert\":assert,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiiiii\":invoke_iiiiiii,\"invoke_v\":invoke_v,\"invoke_vi\":invoke_vi,\"invoke_vii\":invoke_vii,\"invoke_viii\":invoke_viii,\"invoke_viiii\":invoke_viiii,\"invoke_viiiii\":invoke_viiiii,\"invoke_viiiiii\":invoke_viiiiii,\"__ZSt18uncaught_exceptionv\":__ZSt18uncaught_exceptionv,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_find_matching_catch\":___cxa_find_matching_catch,\"___cxa_pure_virtual\":___cxa_pure_virtual,\"___cxa_throw\":___cxa_throw,\"___gxx_personality_v0\":___gxx_personality_v0,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall6\":___syscall6,\"_abort\":_abort,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_llvm_ceil_f64\":_llvm_ceil_f64,\"_llvm_fabs_f64\":_llvm_fabs_f64,\"_llvm_floor_f64\":_llvm_floor_f64,\"_llvm_trap\":_llvm_trap,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"flush_NO_FILESYSTEM\":flush_NO_FILESYSTEM,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"tempDoublePtr\":tempDoublePtr,\"ABORT\":ABORT,\"STACKTOP\":STACKTOP,\"STACK_MAX\":STACK_MAX,\"cttz_i8\":cttz_i8};// EMSCRIPTEN_START_ASM\nvar asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {\n\"almost asm\";var a=global.Int8Array;var b=new a(buffer);var c=global.Int16Array;var d=new c(buffer);var e=global.Int32Array;var f=new e(buffer);var g=global.Uint8Array;var h=new g(buffer);var i=global.Uint16Array;var j=new i(buffer);var k=global.Uint32Array;var l=new k(buffer);var m=global.Float32Array;var n=new m(buffer);var o=global.Float64Array;var p=new o(buffer);var q=global.byteLength;var r=env.DYNAMICTOP_PTR|0;var s=env.tempDoublePtr|0;var t=env.ABORT|0;var u=env.STACKTOP|0;var v=env.STACK_MAX|0;var w=env.cttz_i8|0;var x=0;var y=0;var z=0;var A=0;var B=global.NaN,C=global.Infinity;var D=0,E=0,F=0,G=0,H=0.0;var I=0;var J=global.Math.floor;var K=global.Math.abs;var L=global.Math.sqrt;var M=global.Math.pow;var N=global.Math.cos;var O=global.Math.sin;var P=global.Math.tan;var Q=global.Math.acos;var R=global.Math.asin;var S=global.Math.atan;var T=global.Math.atan2;var U=global.Math.exp;var V=global.Math.log;var W=global.Math.ceil;var X=global.Math.imul;var Y=global.Math.min;var Z=global.Math.max;var _=global.Math.clz32;var $=global.Math.fround;var aa=env.abort;var ba=env.assert;var ca=env.enlargeMemory;var da=env.getTotalMemory;var ea=env.abortOnCannotGrowMemory;var fa=env.invoke_ii;var ga=env.invoke_iii;var ha=env.invoke_iiii;var ia=env.invoke_iiiiiii;var ja=env.invoke_v;var ka=env.invoke_vi;var la=env.invoke_vii;var ma=env.invoke_viii;var na=env.invoke_viiii;var oa=env.invoke_viiiii;var pa=env.invoke_viiiiii;var qa=env.__ZSt18uncaught_exceptionv;var ra=env.___cxa_allocate_exception;var sa=env.___cxa_begin_catch;var ta=env.___cxa_find_matching_catch;var ua=env.___cxa_pure_virtual;var va=env.___cxa_throw;var wa=env.___gxx_personality_v0;var xa=env.___resumeException;var ya=env.___setErrNo;var za=env.___syscall140;var Aa=env.___syscall146;var Ba=env.___syscall6;var Ca=env._abort;var Da=env._emscripten_memcpy_big;var Ea=env._llvm_ceil_f64;var Fa=env._llvm_fabs_f64;var Ga=env._llvm_floor_f64;var Ha=env._llvm_trap;var Ia=env._pthread_getspecific;var Ja=env._pthread_key_create;var Ka=env._pthread_once;var La=env._pthread_setspecific;var Ma=env.flush_NO_FILESYSTEM;var Na=$(0);const Oa=$(0);function Pa(newBuffer){if(q(newBuffer)&16777215||q(newBuffer)<=16777215||q(newBuffer)>2147483648)return false;b=new a(newBuffer);d=new c(newBuffer);f=new e(newBuffer);h=new g(newBuffer);j=new i(newBuffer);l=new k(newBuffer);n=new m(newBuffer);p=new o(newBuffer);buffer=newBuffer;return true}\n// EMSCRIPTEN_START_FUNCS\nfunction be(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=u;u=u+16|0;i=h+4|0;j=h;f[a+72>>2]=e;f[a+64>>2]=g;g=Lq(e>>>0>1073741823?-1:e<<2)|0;k=a+68|0;l=f[k>>2]|0;f[k>>2]=g;if(l|0)Mq(l);l=a+8|0;Mh(l,b,d,e);d=a+56|0;g=f[d>>2]|0;m=f[g+4>>2]|0;n=f[g>>2]|0;o=m-n|0;if((o|0)<=0){u=h;return 1}p=(o>>>2)+-1|0;o=a+16|0;q=a+32|0;r=a+12|0;s=a+28|0;t=a+20|0;v=a+24|0;if(m-n>>2>>>0>p>>>0){w=p;x=n}else{y=g;aq(y)}while(1){f[j>>2]=f[x+(w<<2)>>2];f[i>>2]=f[j>>2];Cc(a,i,b,w);g=X(w,e)|0;n=b+(g<<2)|0;p=c+(g<<2)|0;g=f[l>>2]|0;if((g|0)>0){m=0;z=f[k>>2]|0;A=g;while(1){if((A|0)>0){g=0;do{B=f[z+(g<<2)>>2]|0;C=f[o>>2]|0;if((B|0)>(C|0)){D=f[q>>2]|0;f[D+(g<<2)>>2]=C;E=D}else{D=f[r>>2]|0;C=f[q>>2]|0;f[C+(g<<2)>>2]=(B|0)<(D|0)?D:B;E=C}g=g+1|0}while((g|0)<(f[l>>2]|0));F=E}else F=f[q>>2]|0;g=(f[n+(m<<2)>>2]|0)-(f[F+(m<<2)>>2]|0)|0;C=p+(m<<2)|0;f[C>>2]=g;if((g|0)>=(f[s>>2]|0)){if((g|0)>(f[v>>2]|0)){G=g-(f[t>>2]|0)|0;H=21}}else{G=(f[t>>2]|0)+g|0;H=21}if((H|0)==21){H=0;f[C>>2]=G}m=m+1|0;A=f[l>>2]|0;if((m|0)>=(A|0))break;else z=F}}w=w+-1|0;if((w|0)<=-1){H=5;break}z=f[d>>2]|0;x=f[z>>2]|0;if((f[z+4>>2]|0)-x>>2>>>0<=w>>>0){y=z;H=6;break}}if((H|0)==5){u=h;return 1}else if((H|0)==6)aq(y);return 0}function ce(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Uc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function de(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Vc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ee(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Wc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function fe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Xc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ge(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Yc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function he(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Zc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=2097152;if(d){d=c;c=2097152;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<19)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Nf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ie(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;_c(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=1048576;if(d){d=c;c=1048576;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<18)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Of(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=Oa,t=Oa,u=Oa,v=0,w=0,x=0,y=0,z=0;c=f[b>>2]|0;b=a+4|0;d=f[b>>2]|0;e=(d|0)==0;a:do if(!e){g=d+-1|0;h=(g&d|0)==0;if(!h)if(c>>>0<d>>>0)i=c;else i=(c>>>0)%(d>>>0)|0;else i=g&c;j=f[(f[a>>2]|0)+(i<<2)>>2]|0;if(!j)k=i;else{if(h){h=j;while(1){l=f[h>>2]|0;if(!l){k=i;break a}m=f[l+4>>2]|0;if(!((m|0)==(c|0)|(m&g|0)==(i|0))){k=i;break a}if((f[l+8>>2]|0)==(c|0)){o=l;break}else h=l}p=o+12|0;return p|0}else q=j;while(1){h=f[q>>2]|0;if(!h){k=i;break a}g=f[h+4>>2]|0;if((g|0)!=(c|0)){if(g>>>0<d>>>0)r=g;else r=(g>>>0)%(d>>>0)|0;if((r|0)!=(i|0)){k=i;break a}}if((f[h+8>>2]|0)==(c|0)){o=h;break}else q=h}p=o+12|0;return p|0}}else k=0;while(0);q=ln(16)|0;f[q+8>>2]=c;f[q+12>>2]=0;f[q+4>>2]=c;f[q>>2]=0;i=a+12|0;s=$(((f[i>>2]|0)+1|0)>>>0);t=$(d>>>0);u=$(n[a+16>>2]);do if(e|$(u*t)<s){r=d<<1|(d>>>0<3|(d+-1&d|0)!=0)&1;j=~~$(W($(s/u)))>>>0;Hi(a,r>>>0<j>>>0?j:r);r=f[b>>2]|0;j=r+-1|0;if(!(j&r)){v=r;w=j&c;break}if(c>>>0<r>>>0){v=r;w=c}else{v=r;w=(c>>>0)%(r>>>0)|0}}else{v=d;w=k}while(0);k=(f[a>>2]|0)+(w<<2)|0;w=f[k>>2]|0;if(!w){d=a+8|0;f[q>>2]=f[d>>2];f[d>>2]=q;f[k>>2]=d;d=f[q>>2]|0;if(d|0){k=f[d+4>>2]|0;d=v+-1|0;if(d&v)if(k>>>0<v>>>0)x=k;else x=(k>>>0)%(v>>>0)|0;else x=k&d;y=(f[a>>2]|0)+(x<<2)|0;z=30}}else{f[q>>2]=f[w>>2];y=w;z=30}if((z|0)==30)f[y>>2]=q;f[i>>2]=(f[i>>2]|0)+1;o=q;p=o+12|0;return p|0}function ke(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;$c(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=262144;if(d){d=c;c=262144;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<16)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Rf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function le(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;ad(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=131072;if(d){d=c;c=131072;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<15)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Sf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function me(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;bd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=32768;if(d){d=c;c=32768;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<13)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Uf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ne(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;cd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function oe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;dd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function pe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;ed(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function qe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;fd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function re(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;gd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function se(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;hd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function te(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;id(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ue(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;jd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0<r>>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0<r>>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;c=u;u=u+16|0;d=c+4|0;e=c;f[a+64>>2]=b;g=a+128|0;f[g>>2]=2;h=a+132|0;f[h>>2]=7;i=Qa[f[(f[b>>2]|0)+32>>2]&127](b)|0;b=a+88|0;f[b>>2]=i;j=a+104|0;k=(f[i+28>>2]|0)-(f[i+24>>2]|0)>>2;i=a+108|0;l=f[i>>2]|0;m=f[j>>2]|0;n=l-m>>2;o=m;p=l;if(k>>>0<=n>>>0)if(k>>>0<n>>>0?(q=o+(k<<2)|0,(q|0)!=(p|0)):0){o=p+(~((p+-4-q|0)>>>2)<<2)|0;f[i>>2]=o;r=o;s=m}else{r=l;s=m}else{Ci(j,k-n|0);r=f[i>>2]|0;s=f[j>>2]|0}if((r|0)!=(s|0)){s=0;do{r=f[b>>2]|0;f[e>>2]=s;f[d>>2]=f[e>>2];n=hh(r,d)|0;r=f[j>>2]|0;f[r+(s<<2)>>2]=n;s=s+1|0}while(s>>>0<(f[i>>2]|0)-r>>2>>>0)}i=a+92|0;s=f[b>>2]|0;j=f[s>>2]|0;d=(f[s+4>>2]|0)-j>>2;e=a+96|0;r=f[e>>2]|0;n=f[i>>2]|0;k=r-n>>2;m=n;n=r;if(d>>>0<=k>>>0)if(d>>>0<k>>>0?(r=m+(d<<2)|0,(r|0)!=(n|0)):0){f[e>>2]=n+(~((n+-4-r|0)>>>2)<<2);t=s;v=j}else{t=s;v=j}else{Ci(i,d-k|0);k=f[b>>2]|0;t=k;v=f[k>>2]|0}k=f[t+4>>2]|0;if((k|0)!=(v|0)){v=f[i>>2]|0;i=f[t>>2]|0;t=k-i>>2;k=0;do{f[v+(k<<2)>>2]=f[i+(k<<2)>>2];k=k+1|0}while(k>>>0<t>>>0)}t=(f[h>>2]|0)-(f[g>>2]|0)+1|0;g=a+136|0;h=a+140|0;a=f[h>>2]|0;k=f[g>>2]|0;i=(a-k|0)/12|0;v=a;if(t>>>0>i>>>0){Kf(g,t-i|0);u=c;return 1}if(t>>>0>=i>>>0){u=c;return 1}i=k+(t*12|0)|0;if((i|0)==(v|0)){u=c;return 1}else w=v;while(1){v=w+-12|0;f[h>>2]=v;t=f[v>>2]|0;if(!t)x=v;else{v=w+-8|0;k=f[v>>2]|0;if((k|0)!=(t|0))f[v>>2]=k+(~((k+-4-t|0)>>>2)<<2);Oq(t);x=f[h>>2]|0}if((x|0)==(i|0))break;else w=x}u=c;return 1}function we(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=f[b>>2]|0;g=f[b+4>>2]|0;h=((f[c>>2]|0)-e<<3)+(f[c+4>>2]|0)-g|0;c=e;if((h|0)<=0){i=d+4|0;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}if(!g){e=d+4|0;m=h;n=e;o=f[e>>2]|0;p=c}else{e=32-g|0;q=(h|0)<(e|0)?h:e;r=-1>>>(e-q|0)&-1<<g&f[c>>2];e=d+4|0;s=f[e>>2]|0;t=32-s|0;u=t>>>0<q>>>0?t:q;v=f[d>>2]|0;w=f[v>>2]&~(-1>>>(t-u|0)&-1<<s);f[v>>2]=w;s=f[e>>2]|0;f[v>>2]=(s>>>0>g>>>0?r<<s-g:r>>>(g-s|0))|w;w=(f[e>>2]|0)+u|0;s=v+(w>>>5<<2)|0;f[d>>2]=s;v=w&31;f[e>>2]=v;w=q-u|0;if((w|0)>0){f[s>>2]=f[s>>2]&~(-1>>>(32-w|0))|r>>>(g+u|0);f[e>>2]=w;x=w}else x=v;v=c+4|0;f[b>>2]=v;m=h-q|0;n=e;o=x;p=v}v=32-o|0;x=-1<<o;if((m|0)>31){o=~x;e=f[d>>2]|0;q=~m;h=m+((q|0)>-64?q:-64)+32|0;q=(h>>>5)+1|0;c=m+-32-(h&-32)|0;h=m;w=p;u=f[e>>2]|0;g=e;while(1){r=f[w>>2]|0;s=u&o;f[g>>2]=s;f[g>>2]=s|r<<f[n>>2];g=g+4|0;u=f[g>>2]&x|r>>>v;f[g>>2]=u;if((h|0)<=63)break;else{h=h+-32|0;w=w+4|0}}w=p+(q<<2)|0;f[b>>2]=w;f[d>>2]=e+(q<<2);y=c;z=w}else{y=m;z=p}if((y|0)<=0){i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}p=f[z>>2]&-1>>>(32-y|0);z=(v|0)<(y|0)?v:y;m=f[d>>2]|0;w=f[m>>2]&~(-1<<f[n>>2]&-1>>>(v-z|0));f[m>>2]=w;f[m>>2]=w|p<<f[n>>2];w=(f[n>>2]|0)+z|0;v=m+(w>>>5<<2)|0;f[d>>2]=v;f[n>>2]=w&31;w=y-z|0;if((w|0)<=0){i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}f[v>>2]=f[v>>2]&~(-1>>>(32-w|0))|p>>>z;f[n>>2]=w;i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}function xe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=f[b>>2]|0;g=b+4|0;h=f[g>>2]|0;i=((f[c>>2]|0)-e<<3)+(f[c+4>>2]|0)-h|0;c=e;if((i|0)<=0){j=d+4|0;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}if(!h){e=d+4|0;n=i;o=e;p=c;q=f[e>>2]|0}else{e=32-h|0;r=(i|0)<(e|0)?i:e;s=-1>>>(e-r|0)&-1<<h&f[c>>2];c=d+4|0;h=f[c>>2]|0;e=32-h|0;t=e>>>0<r>>>0?e:r;u=f[d>>2]|0;v=f[u>>2]&~(-1>>>(e-t|0)&-1<<h);f[u>>2]=v;h=f[c>>2]|0;e=f[g>>2]|0;f[u>>2]=(h>>>0>e>>>0?s<<h-e:s>>>(e-h|0))|v;v=(f[c>>2]|0)+t|0;h=u+(v>>>5<<2)|0;f[d>>2]=h;u=v&31;f[c>>2]=u;v=r-t|0;if((v|0)>0){e=f[h>>2]&~(-1>>>(32-v|0));f[h>>2]=e;f[h>>2]=e|s>>>((f[g>>2]|0)+t|0);f[c>>2]=v;w=v}else w=u;u=(f[b>>2]|0)+4|0;f[b>>2]=u;n=i-r|0;o=c;p=u;q=w}w=32-q|0;u=-1<<q;if((n|0)>31){q=~u;c=~n;r=n+((c|0)>-64?c:-64)+32&-32;c=n;i=p;while(1){v=f[i>>2]|0;t=f[d>>2]|0;g=f[t>>2]&q;f[t>>2]=g;f[t>>2]=g|v<<f[o>>2];g=t+4|0;f[d>>2]=g;f[g>>2]=f[g>>2]&u|v>>>w;i=(f[b>>2]|0)+4|0;f[b>>2]=i;if((c|0)<=63)break;else c=c+-32|0}x=n+-32-r|0;y=i}else{x=n;y=p}if((x|0)<=0){j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}p=f[y>>2]&-1>>>(32-x|0);y=(w|0)<(x|0)?w:x;n=f[d>>2]|0;i=f[n>>2]&~(-1<<f[o>>2]&-1>>>(w-y|0));f[n>>2]=i;f[n>>2]=i|p<<f[o>>2];i=(f[o>>2]|0)+y|0;w=n+(i>>>5<<2)|0;f[d>>2]=w;f[o>>2]=i&31;i=x-y|0;if((i|0)<=0){j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}f[w>>2]=f[w>>2]&~(-1>>>(32-i|0))|p>>>y;f[o>>2]=i;j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}function ye(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+9|0;i=d+8|0;j=f[(f[a+184>>2]|0)+(c<<2)>>2]&255;b[h>>0]=j;c=a+4|0;k=f[(f[c>>2]|0)+44>>2]|0;l=k+16|0;m=f[l+4>>2]|0;if((m|0)>0|(m|0)==0&(f[l>>2]|0)>>>0>0)n=j;else{f[g>>2]=f[k+4>>2];f[e>>2]=f[g>>2];Me(k,e,h,h+1|0)|0;n=b[h>>0]|0}a:do if(n<<24>>24>-1){k=a+172|0;j=f[(f[k>>2]|0)+((n<<24>>24)*136|0)>>2]|0;l=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+52|0;m=b[h>>0]|0;o=f[k>>2]|0;k=f[o+(m*136|0)+132>>2]|0;switch(f[(f[(f[l>>2]|0)+84>>2]|0)+(j<<2)>>2]|0){case 0:{p=k;q=7;break a;break}case 1:{if(b[o+(m*136|0)+28>>0]|0){p=k;q=7;break a}break}default:{}}m=f[(f[c>>2]|0)+44>>2]|0;b[i>>0]=1;o=m+16|0;j=f[o+4>>2]|0;if(!((j|0)>0|(j|0)==0&(f[o>>2]|0)>>>0>0)){f[g>>2]=f[m+4>>2];f[e>>2]=f[g>>2];Me(m,e,i,i+1|0)|0}r=k}else{p=f[a+68>>2]|0;q=7}while(0);if((q|0)==7){q=f[(f[c>>2]|0)+44>>2]|0;b[i>>0]=0;a=q+16|0;h=f[a+4>>2]|0;if(!((h|0)>0|(h|0)==0&(f[a>>2]|0)>>>0>0)){f[g>>2]=f[q+4>>2];f[e>>2]=f[g>>2];Me(q,e,i,i+1|0)|0}r=p}p=f[(f[c>>2]|0)+44>>2]|0;b[i>>0]=r;r=p+16|0;c=f[r+4>>2]|0;if((c|0)>0|(c|0)==0&(f[r>>2]|0)>>>0>0){u=d;return 1}f[g>>2]=f[p+4>>2];f[e>>2]=f[g>>2];Me(p,e,i,i+1|0)|0;u=d;return 1}function ze(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=u;u=u+16|0;i=h+4|0;j=h;k=a+60|0;f[a+64>>2]=g;g=a+8|0;Mh(g,b,d,e);d=a+56|0;l=f[d>>2]|0;m=f[l+4>>2]|0;n=f[l>>2]|0;o=m-n|0;if((o|0)<=0){u=h;return 1}p=(o>>>2)+-1|0;o=a+68|0;q=a+16|0;r=a+32|0;s=a+12|0;t=a+28|0;v=a+20|0;w=a+24|0;if(m-n>>2>>>0>p>>>0){x=p;y=n}else{z=l;aq(z)}while(1){f[j>>2]=f[y+(x<<2)>>2];f[i>>2]=f[j>>2];ub(k,i,b,x);l=X(x,e)|0;n=b+(l<<2)|0;p=c+(l<<2)|0;l=f[g>>2]|0;if((l|0)>0){m=0;a=o;A=l;while(1){if((A|0)>0){l=0;do{B=f[a+(l<<2)>>2]|0;C=f[q>>2]|0;if((B|0)>(C|0)){D=f[r>>2]|0;f[D+(l<<2)>>2]=C;E=D}else{D=f[s>>2]|0;C=f[r>>2]|0;f[C+(l<<2)>>2]=(B|0)<(D|0)?D:B;E=C}l=l+1|0}while((l|0)<(f[g>>2]|0));F=E}else F=f[r>>2]|0;l=(f[n+(m<<2)>>2]|0)-(f[F+(m<<2)>>2]|0)|0;C=p+(m<<2)|0;f[C>>2]=l;if((l|0)>=(f[t>>2]|0)){if((l|0)>(f[w>>2]|0)){G=l-(f[v>>2]|0)|0;H=18}}else{G=(f[v>>2]|0)+l|0;H=18}if((H|0)==18){H=0;f[C>>2]=G}m=m+1|0;A=f[g>>2]|0;if((m|0)>=(A|0))break;else a=F}}x=x+-1|0;if((x|0)<=-1){H=3;break}a=f[d>>2]|0;y=f[a>>2]|0;if((f[a+4>>2]|0)-y>>2>>>0<=x>>>0){z=a;H=4;break}}if((H|0)==3){u=h;return 1}else if((H|0)==4)aq(z);return 0}function Ae(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=u;u=u+16|0;i=h+4|0;j=h;k=a+60|0;f[a+64>>2]=g;g=a+8|0;Mh(g,b,d,e);d=a+56|0;l=f[d>>2]|0;m=f[l+4>>2]|0;n=f[l>>2]|0;o=m-n|0;if((o|0)<=0){u=h;return 1}p=(o>>>2)+-1|0;o=a+68|0;q=a+16|0;r=a+32|0;s=a+12|0;t=a+28|0;v=a+20|0;w=a+24|0;if(m-n>>2>>>0>p>>>0){x=p;y=n}else{z=l;aq(z)}while(1){f[j>>2]=f[y+(x<<2)>>2];f[i>>2]=f[j>>2];tb(k,i,b,x);l=X(x,e)|0;n=b+(l<<2)|0;p=c+(l<<2)|0;l=f[g>>2]|0;if((l|0)>0){m=0;a=o;A=l;while(1){if((A|0)>0){l=0;do{B=f[a+(l<<2)>>2]|0;C=f[q>>2]|0;if((B|0)>(C|0)){D=f[r>>2]|0;f[D+(l<<2)>>2]=C;E=D}else{D=f[s>>2]|0;C=f[r>>2]|0;f[C+(l<<2)>>2]=(B|0)<(D|0)?D:B;E=C}l=l+1|0}while((l|0)<(f[g>>2]|0));F=E}else F=f[r>>2]|0;l=(f[n+(m<<2)>>2]|0)-(f[F+(m<<2)>>2]|0)|0;C=p+(m<<2)|0;f[C>>2]=l;if((l|0)>=(f[t>>2]|0)){if((l|0)>(f[w>>2]|0)){G=l-(f[v>>2]|0)|0;H=18}}else{G=(f[v>>2]|0)+l|0;H=18}if((H|0)==18){H=0;f[C>>2]=G}m=m+1|0;A=f[g>>2]|0;if((m|0)>=(A|0))break;else a=F}}x=x+-1|0;if((x|0)<=-1){H=3;break}a=f[d>>2]|0;y=f[a>>2]|0;if((f[a+4>>2]|0)-y>>2>>>0<=x>>>0){z=a;H=4;break}}if((H|0)==3){u=h;return 1}else if((H|0)==4)aq(z);return 0}function Be(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+12|0;g=f[e>>2]|0;h=(f[g+4>>2]|0)-(f[g>>2]|0)>>2;if(!h){u=b;return 1}i=a+152|0;j=a+140|0;k=a+144|0;l=a+148|0;a=0;m=g;while(1){f[d>>2]=(a>>>0)/3|0;f[c>>2]=f[d>>2];if(!(_j(m,c)|0)?(g=f[e>>2]|0,(f[(f[g+12>>2]|0)+(a<<2)>>2]|0)==-1):0){n=a+1|0;o=((n>>>0)%3|0|0)==0?a+-2|0:n;if((o|0)==-1)p=-1;else p=f[(f[g>>2]|0)+(o<<2)>>2]|0;o=f[i>>2]|0;if((f[o+(p<<2)>>2]|0)==-1){g=f[k>>2]|0;n=f[l>>2]|0;if((g|0)==(n<<5|0)){if((g+1|0)<0){q=11;break}r=n<<6;n=g+32&-32;vi(j,g>>>0<1073741823?(r>>>0<n>>>0?n:r):2147483647);s=f[k>>2]|0;t=f[i>>2]|0}else{s=g;t=o}f[k>>2]=s+1;o=(f[j>>2]|0)+(s>>>5<<2)|0;f[o>>2]=f[o>>2]&~(1<<(s&31));o=t+(p<<2)|0;if((f[o>>2]|0)==-1){r=a;n=o;while(1){f[n>>2]=g;o=r+1|0;a:do if((r|0)!=-1?(v=((o>>>0)%3|0|0)==0?r+-2|0:o,(v|0)!=-1):0){w=f[e>>2]|0;x=f[w+12>>2]|0;y=v;while(1){v=f[x+(y<<2)>>2]|0;if((v|0)==-1)break;z=v+1|0;A=((z>>>0)%3|0|0)==0?v+-2|0:z;if((A|0)==-1){B=-1;C=-1;break a}else y=A}x=y+1|0;A=((x>>>0)%3|0|0)==0?y+-2|0:x;if((A|0)==-1){B=y;C=-1}else{B=y;C=f[(f[w>>2]|0)+(A<<2)>>2]|0}}else{B=-1;C=-1}while(0);n=t+(C<<2)|0;if((f[n>>2]|0)!=-1)break;else r=B}}}}r=a+1|0;if(r>>>0>=h>>>0){q=3;break}a=r;m=f[e>>2]|0}if((q|0)==3){u=b;return 1}else if((q|0)==11)aq(j);return 0}function Ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=u;u=u+32|0;e=d+8|0;g=d;h=a+4|0;i=f[h>>2]|0;if(i>>>0>=b>>>0){f[h>>2]=b;u=d;return}j=a+8|0;k=f[j>>2]|0;l=k<<5;m=b-i|0;if(l>>>0<m>>>0|i>>>0>(l-m|0)>>>0){f[e>>2]=0;n=e+4|0;f[n>>2]=0;o=e+8|0;f[o>>2]=0;if((b|0)<0)aq(a);p=k<<6;k=b+31&-32;vi(e,l>>>0<1073741823?(p>>>0<k>>>0?k:p):2147483647);p=f[h>>2]|0;f[n>>2]=p+m;k=f[a>>2]|0;l=k;q=f[e>>2]|0;r=(l+(p>>>5<<2)-k<<3)+(p&31)|0;if((r|0)>0){p=r>>>5;im(q|0,k|0,p<<2|0)|0;k=r&31;r=q+(p<<2)|0;s=r;if(!k){t=0;v=s}else{w=-1>>>(32-k|0);f[r>>2]=f[r>>2]&~w|f[l+(p<<2)>>2]&w;t=k;v=s}}else{t=0;v=q}f[g>>2]=v;f[g+4>>2]=t;t=g;g=f[t>>2]|0;v=f[t+4>>2]|0;t=f[a>>2]|0;f[a>>2]=f[e>>2];f[e>>2]=t;e=f[h>>2]|0;f[h>>2]=f[n>>2];f[n>>2]=e;e=f[j>>2]|0;f[j>>2]=f[o>>2];f[o>>2]=e;if(t|0)Oq(t);x=g;y=v}else{v=(f[a>>2]|0)+(i>>>5<<2)|0;f[h>>2]=b;x=v;y=i&31}if(!m){u=d;return}i=(y|0)==0;v=x;if(c){if(i){z=m;A=x;B=v}else{c=32-y|0;b=c>>>0>m>>>0?m:c;f[v>>2]=f[v>>2]|-1>>>(c-b|0)&-1<<y;c=v+4|0;z=m-b|0;A=c;B=c}c=z>>>5;sj(A|0,-1,c<<2|0)|0;A=z&31;z=B+(c<<2)|0;if(!A){u=d;return}f[z>>2]=f[z>>2]|-1>>>(32-A|0);u=d;return}else{if(i){C=m;D=x;E=v}else{x=32-y|0;i=x>>>0>m>>>0?m:x;f[v>>2]=f[v>>2]&~(-1>>>(x-i|0)&-1<<y);y=v+4|0;C=m-i|0;D=y;E=y}y=C>>>5;sj(D|0,0,y<<2|0)|0;D=C&31;C=E+(y<<2)|0;if(!D){u=d;return}f[C>>2]=f[C>>2]&~(-1>>>(32-D|0));u=d;return}}function De(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;a=u;u=u+48|0;g=a+36|0;h=a+24|0;i=a+12|0;j=a;if(!c){k=0;u=a;return k|0}f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;l=Gj(d)|0;if(l>>>0>4294967279)aq(g);if(l>>>0<11){b[g+11>>0]=l;if(!l)m=g;else{n=g;o=7}}else{p=l+16&-16;q=ln(p)|0;f[g>>2]=q;f[g+8>>2]=p|-2147483648;f[g+4>>2]=l;n=q;o=7}if((o|0)==7){kh(n|0,d|0,l|0)|0;m=n}b[m+l>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;l=Gj(e)|0;if(l>>>0>4294967279)aq(h);if(l>>>0<11){b[h+11>>0]=l;if(!l)r=h;else{s=h;o=13}}else{m=l+16&-16;n=ln(m)|0;f[h>>2]=n;f[h+8>>2]=m|-2147483648;f[h+4>>2]=l;s=n;o=13}if((o|0)==13){kh(s|0,e|0,l|0)|0;r=s}b[r+l>>0]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;l=Gj(d)|0;if(l>>>0>4294967279)aq(i);if(l>>>0<11){b[i+11>>0]=l;if(!l)t=i;else{v=i;o=19}}else{r=l+16&-16;s=ln(r)|0;f[i>>2]=s;f[i+8>>2]=r|-2147483648;f[i+4>>2]=l;v=s;o=19}if((o|0)==19){kh(v|0,d|0,l|0)|0;t=v}b[t+l>>0]=0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;l=Gj(e)|0;if(l>>>0>4294967279)aq(j);if(l>>>0<11){b[j+11>>0]=l;if(!l)w=j;else{x=j;o=25}}else{t=l+16&-16;v=ln(t)|0;f[j>>2]=v;f[j+8>>2]=t|-2147483648;f[j+4>>2]=l;x=v;o=25}if((o|0)==25){kh(x|0,e|0,l|0)|0;w=x}b[w+l>>0]=0;mn(c,i,j);if((b[j+11>>0]|0)<0)Oq(f[j>>2]|0);if((b[i+11>>0]|0)<0)Oq(f[i>>2]|0);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);k=1;u=a;return k|0}function Ee(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;f[a>>2]=f[c>>2];d=c+4|0;f[a+4>>2]=f[d>>2];e=c+8|0;f[a+8>>2]=f[e>>2];g=c+12|0;f[a+12>>2]=f[g>>2];f[d>>2]=0;f[e>>2]=0;f[g>>2]=0;g=c+16|0;f[a+16>>2]=f[g>>2];e=c+20|0;f[a+20>>2]=f[e>>2];d=c+24|0;f[a+24>>2]=f[d>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;b[a+28>>0]=b[c+28>>0]|0;d=a+32|0;e=c+32|0;f[d>>2]=0;g=a+36|0;f[g>>2]=0;f[a+40>>2]=0;f[d>>2]=f[e>>2];d=c+36|0;f[g>>2]=f[d>>2];g=c+40|0;f[a+40>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;e=a+44|0;d=c+44|0;f[e>>2]=0;g=a+48|0;f[g>>2]=0;f[a+52>>2]=0;f[e>>2]=f[d>>2];e=c+48|0;f[g>>2]=f[e>>2];g=c+52|0;f[a+52>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+56|0;e=c+56|0;f[d>>2]=0;g=a+60|0;f[g>>2]=0;f[a+64>>2]=0;f[d>>2]=f[e>>2];d=c+60|0;f[g>>2]=f[d>>2];g=c+64|0;f[a+64>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;f[a+68>>2]=f[c+68>>2];f[a+72>>2]=f[c+72>>2];e=a+76|0;d=c+76|0;f[e>>2]=0;g=a+80|0;f[g>>2]=0;f[a+84>>2]=0;f[e>>2]=f[d>>2];e=c+80|0;f[g>>2]=f[e>>2];g=c+84|0;f[a+84>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+88|0;e=c+88|0;f[d>>2]=0;g=a+92|0;f[g>>2]=0;f[a+96>>2]=0;f[d>>2]=f[e>>2];d=c+92|0;f[g>>2]=f[d>>2];g=c+96|0;f[a+96>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;b[a+100>>0]=b[c+100>>0]|0;e=a+104|0;d=c+104|0;f[e>>2]=0;g=a+108|0;f[g>>2]=0;f[a+112>>2]=0;f[e>>2]=f[d>>2];e=c+108|0;f[g>>2]=f[e>>2];g=c+112|0;f[a+112>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+116|0;e=c+116|0;f[d>>2]=0;g=a+120|0;f[g>>2]=0;f[a+124>>2]=0;f[d>>2]=f[e>>2];d=c+120|0;f[g>>2]=f[d>>2];g=c+124|0;f[a+124>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;f[a+128>>2]=f[c+128>>2];f[a+132>>2]=f[c+132>>2];return}function Fe(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;h=u;u=u+48|0;i=h+36|0;j=h+24|0;k=h+8|0;l=h+4|0;m=h;n=e+4|0;Rh(i,c,(f[n>>2]|0)-(f[e>>2]|0)>>2,2,g,d,1);g=f[i>>2]|0;o=(f[f[g>>2]>>2]|0)+(f[g+48>>2]|0)|0;f[k>>2]=-1;f[k+4>>2]=-1;f[k+8>>2]=-1;f[k+12>>2]=-1;p=f[c+4>>2]|0;if((p+-2|0)>>>0<=28){f[k>>2]=p;c=1<<p;f[k+4>>2]=c+-1;p=c+-2|0;f[k+8>>2]=p;f[k+12>>2]=(p|0)/2|0;p=f[e>>2]|0;if((f[n>>2]|0)==(p|0))q=g;else{c=d+84|0;r=d+68|0;s=d+48|0;t=d+40|0;v=0;w=0;x=p;while(1){p=f[x+(v<<2)>>2]|0;if(!(b[c>>0]|0))y=f[(f[r>>2]|0)+(p<<2)>>2]|0;else y=p;p=s;z=f[p>>2]|0;A=f[p+4>>2]|0;p=t;B=f[p>>2]|0;C=un(B|0,f[p+4>>2]|0,y|0,0)|0;p=Vn(C|0,I|0,z|0,A|0)|0;kh(j|0,(f[f[d>>2]>>2]|0)+p|0,B|0)|0;rf(k,j,l,m);f[o+(w<<2)>>2]=f[l>>2];f[o+((w|1)<<2)>>2]=f[m>>2];v=v+1|0;x=f[e>>2]|0;if(v>>>0>=(f[n>>2]|0)-x>>2>>>0)break;else w=w+2|0}q=f[i>>2]|0}f[a>>2]=q;f[i>>2]=0;u=h;return}f[a>>2]=0;f[i>>2]=0;if(!g){u=h;return}i=g+88|0;a=f[i>>2]|0;f[i>>2]=0;if(a|0){i=f[a+8>>2]|0;if(i|0){q=a+12|0;if((f[q>>2]|0)!=(i|0))f[q>>2]=i;Oq(i)}Oq(a)}a=f[g+68>>2]|0;if(a|0){i=g+72|0;q=f[i>>2]|0;if((q|0)!=(a|0))f[i>>2]=q+(~((q+-4-a|0)>>>2)<<2);Oq(a)}a=g+64|0;q=f[a>>2]|0;f[a>>2]=0;if(q|0){a=f[q>>2]|0;if(a|0){i=q+4|0;if((f[i>>2]|0)!=(a|0))f[i>>2]=a;Oq(a)}Oq(q)}Oq(g);u=h;return}function Ge(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;if(((e-h|0)/136|0)>>>0>=c>>>0){i=c;j=h;do{f[j>>2]=-1;Ok(j+4|0);b[j+100>>0]=1;k=j+104|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[k+24>>2]=0;j=(f[g>>2]|0)+136|0;f[g>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=f[a>>2]|0;j=(h-i|0)/136|0;h=j+c|0;if(h>>>0>31580641)aq(a);k=(e-i|0)/136|0;i=k<<1;e=k>>>0<15790320?(i>>>0<h>>>0?h:i):31580641;do if(e)if(e>>>0>31580641){i=ra(8)|0;Oo(i,16035);f[i>>2]=7256;va(i|0,1112,110)}else{l=ln(e*136|0)|0;break}else l=0;while(0);i=l+(j*136|0)|0;j=i;h=l+(e*136|0)|0;e=c;c=j;l=i;do{f[l>>2]=-1;Ok(l+4|0);b[l+100>>0]=1;k=l+104|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[k+24>>2]=0;l=c+136|0;c=l;e=e+-1|0}while((e|0)!=0);e=f[a>>2]|0;l=f[g>>2]|0;if((l|0)==(e|0)){m=j;n=e;o=e}else{k=l;l=j;j=i;do{k=k+-136|0;Ee(j+-136|0,k);j=l+-136|0;l=j}while((k|0)!=(e|0));m=l;n=f[a>>2]|0;o=f[g>>2]|0}f[a>>2]=m;f[g>>2]=c;f[d>>2]=h;h=n;if((o|0)!=(h|0)){d=o;do{o=f[d+-20>>2]|0;if(o|0){c=d+-16|0;g=f[c>>2]|0;if((g|0)!=(o|0))f[c>>2]=g+(~((g+-4-o|0)>>>2)<<2);Oq(o)}o=f[d+-32>>2]|0;if(o|0){g=d+-28|0;c=f[g>>2]|0;if((c|0)!=(o|0))f[g>>2]=c+(~((c+-4-o|0)>>>2)<<2);Oq(o)}Mi(d+-132|0);d=d+-136|0}while((d|0)!=(h|0))}if(!n)return;Oq(n);return}function He(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=f[b>>2]|0;b=a+12|0;d=(c|0)==-1;e=c+1|0;do if(!d){g=((e>>>0)%3|0|0)==0?c+-2|0:e;if(!((c>>>0)%3|0)){h=g;i=c+2|0;break}else{h=g;i=c+-1|0;break}}else{h=-1;i=-1}while(0);e=d?-1:(c>>>0)/3|0;g=a+28|0;j=(f[g>>2]|0)+(e>>>5<<2)|0;f[j>>2]=1<<(e&31)|f[j>>2];j=a+172|0;e=a+176|0;k=a+280|0;if(((!d?(d=f[(f[(f[b>>2]|0)+12>>2]|0)+(c<<2)>>2]|0,(d|0)!=-1):0)?(a=(d>>>0)/3|0,(f[(f[g>>2]|0)+(a>>>5<<2)>>2]&1<<(a&31)|0)==0):0)?(a=f[j>>2]|0,(f[e>>2]|0)!=(a|0)):0){d=c>>>5;l=1<<(c&31);c=0;m=a;do{a=(f[k>>2]|0)+(c<<5)|0;if(!(l&f[(f[m+(c*136|0)+4>>2]|0)+(d<<2)>>2]))fj(a,0);else fj(a,1);c=c+1|0;m=f[j>>2]|0}while(c>>>0<(((f[e>>2]|0)-m|0)/136|0)>>>0)}if((((h|0)!=-1?(m=f[(f[(f[b>>2]|0)+12>>2]|0)+(h<<2)>>2]|0,(m|0)!=-1):0)?(c=(m>>>0)/3|0,(f[(f[g>>2]|0)+(c>>>5<<2)>>2]&1<<(c&31)|0)==0):0)?(c=f[j>>2]|0,(f[e>>2]|0)!=(c|0)):0){m=h>>>5;d=1<<(h&31);h=0;l=c;do{c=(f[k>>2]|0)+(h<<5)|0;if(!(d&f[(f[l+(h*136|0)+4>>2]|0)+(m<<2)>>2]))fj(c,0);else fj(c,1);h=h+1|0;l=f[j>>2]|0}while(h>>>0<(((f[e>>2]|0)-l|0)/136|0)>>>0)}if((i|0)==-1)return 1;l=f[(f[(f[b>>2]|0)+12>>2]|0)+(i<<2)>>2]|0;if((l|0)==-1)return 1;b=(l>>>0)/3|0;if(f[(f[g>>2]|0)+(b>>>5<<2)>>2]&1<<(b&31)|0)return 1;b=f[j>>2]|0;if((f[e>>2]|0)==(b|0))return 1;g=i>>>5;l=1<<(i&31);i=0;h=b;do{b=(f[k>>2]|0)+(i<<5)|0;if(!(l&f[(f[h+(i*136|0)+4>>2]|0)+(g<<2)>>2]))fj(b,0);else fj(b,1);i=i+1|0;h=f[j>>2]|0}while(i>>>0<(((f[e>>2]|0)-h|0)/136|0)>>>0);return 1}function Ie(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;i=a+4|0;j=a+8|0;ci((f[j>>2]|0)-(f[i>>2]|0)>>2,c)|0;k=f[i>>2]|0;if((f[j>>2]|0)==(k|0)){u=d;return 1}l=a+32|0;a=c+16|0;m=c+4|0;n=h+1|0;o=h+1|0;p=h+1|0;q=h+1|0;r=0;s=k;do{k=f[(f[(f[l>>2]|0)+8>>2]|0)+(f[s+(r<<2)>>2]<<2)>>2]|0;b[h>>0]=f[k+56>>2];t=a;v=f[t>>2]|0;w=f[t+4>>2]|0;if((w|0)>0|(w|0)==0&v>>>0>0){x=w;y=v}else{f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,q)|0;v=a;x=f[v+4>>2]|0;y=f[v>>2]|0}b[h>>0]=f[k+28>>2];if((x|0)>0|(x|0)==0&y>>>0>0){z=x;A=y}else{f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,p)|0;v=a;z=f[v+4>>2]|0;A=f[v>>2]|0}b[h>>0]=b[k+24>>0]|0;if((z|0)>0|(z|0)==0&A>>>0>0){B=z;C=A}else{f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,o)|0;v=a;B=f[v+4>>2]|0;C=f[v>>2]|0}b[h>>0]=b[k+32>>0]|0;if(!((B|0)>0|(B|0)==0&C>>>0>0)){f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,n)|0}ci(f[k+60>>2]|0,c)|0;r=r+1|0;s=f[i>>2]|0}while(r>>>0<(f[j>>2]|0)-s>>2>>>0);u=d;return 1}function Je(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=Oa,D=Oa,E=Oa,F=Oa;h=u;u=u+16|0;i=h;j=e+4|0;k=b[d+24>>0]|0;l=k<<24>>24;Rh(a,c,(f[j>>2]|0)-(f[e>>2]|0)>>2,l,g,d,1);g=f[a>>2]|0;a=(f[f[g>>2]>>2]|0)+(f[g+48>>2]|0)|0;g=f[c+4>>2]|0;Ap(i);Ko(i,$(n[c+20>>2]),(1<<g)+-1|0);g=Lq(l>>>0>1073741823?-1:l<<2)|0;m=f[j>>2]|0;j=f[e>>2]|0;e=j;if((m|0)==(j|0)){Mq(g);u=h;return}o=d+68|0;p=d+48|0;q=d+40|0;r=c+8|0;c=i+4|0;s=(b[d+84>>0]|0)==0;t=m-j>>2;if(k<<24>>24>0){v=0;w=0}else{k=0;do{j=f[e+(k<<2)>>2]|0;if(s)x=f[(f[o>>2]|0)+(j<<2)>>2]|0;else x=j;j=p;m=f[j>>2]|0;y=f[j+4>>2]|0;j=q;z=f[j>>2]|0;A=un(z|0,f[j+4>>2]|0,x|0,0)|0;j=Vn(A|0,I|0,m|0,y|0)|0;kh(g|0,(f[f[d>>2]>>2]|0)+j|0,z|0)|0;k=k+1|0}while(k>>>0<t>>>0);Mq(g);u=h;return}while(1){k=f[e+(v<<2)>>2]|0;if(s)B=f[(f[o>>2]|0)+(k<<2)>>2]|0;else B=k;k=p;x=f[k>>2]|0;z=f[k+4>>2]|0;k=q;j=f[k>>2]|0;y=un(j|0,f[k+4>>2]|0,B|0,0)|0;k=Vn(y|0,I|0,x|0,z|0)|0;kh(g|0,(f[f[d>>2]>>2]|0)+k|0,j|0)|0;j=f[r>>2]|0;C=$(n[i>>2]);k=0;z=w;while(1){D=$(n[g+(k<<2)>>2]);E=$(D-$(n[j+(k<<2)>>2]));x=E<$(0.0);D=$(-E);F=$((x?D:E)/C);y=~~$(J($($(F*$(f[c>>2]|0))+$(.5))));f[a+(z<<2)>>2]=x?0-y|0:y;k=k+1|0;if((k|0)==(l|0))break;else z=z+1|0}v=v+1|0;if(v>>>0>=t>>>0)break;else w=w+l|0}Mq(g);u=h;return}function Ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;d=u;u=u+32|0;e=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;lp(a);f[a+16>>2]=0;f[a+20>>2]=0;f[a+12>>2]=a+16;k=a+24|0;lp(k);if((a|0)!=(b|0)){f[h>>2]=f[b>>2];f[i>>2]=b+4;f[g>>2]=f[h>>2];f[e>>2]=f[i>>2];Oc(a,g,e)}l=b+24|0;if((k|0)!=(l|0)){f[h>>2]=f[l>>2];f[i>>2]=b+28;f[g>>2]=f[h>>2];f[e>>2]=f[i>>2];Oc(k,g,e)}f[j>>2]=0;k=c+8|0;l=c+12|0;c=f[l>>2]|0;m=f[k>>2]|0;if((c-m|0)<=0){u=d;return}n=b+16|0;b=m;m=c;c=0;while(1){o=f[(f[b+(c<<2)>>2]|0)+56>>2]|0;p=f[n>>2]|0;if(p){q=n;r=p;a:while(1){p=r;while(1){if((f[p+16>>2]|0)>=(o|0))break;s=f[p+4>>2]|0;if(!s){t=q;break a}else p=s}r=f[p>>2]|0;if(!r){t=p;break}else q=p}if((t|0)!=(n|0)?(o|0)>=(f[t+16>>2]|0):0){q=t+20|0;r=Hd(a,j)|0;if((r|0)!=(q|0)){f[h>>2]=f[q>>2];f[i>>2]=t+24;f[g>>2]=f[h>>2];f[e>>2]=f[i>>2];Oc(r,g,e)}v=f[j>>2]|0;w=f[k>>2]|0;x=f[l>>2]|0}else{v=c;w=b;x=m}}else{v=c;w=b;x=m}c=v+1|0;f[j>>2]=c;if((c|0)>=(x-w>>2|0))break;else{b=w;m=x}}u=d;return}function Le(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;i=a+12|0;ci(f[i>>2]|0,c)|0;if(!(f[i>>2]|0)){j=1;u=d;return j|0}k=c+16|0;l=c+4|0;m=h+1|0;n=h+1|0;o=h+1|0;p=0;while(1){q=f[a>>2]|0;r=f[q+(p<<3)>>2]|0;if(r>>>0>63)if(r>>>0>16383)if(r>>>0>4194303){j=0;s=20;break}else{t=2;s=13}else{t=1;s=13}else if(!r){v=p+1|0;w=0;while(1){if(f[q+(v+w<<3)>>2]|0){x=w;break}y=w+1|0;if(y>>>0<63)w=y;else{x=y;break}}b[h>>0]=x<<2|3;w=k;v=f[w+4>>2]|0;if(!((v|0)>0|(v|0)==0&(f[w>>2]|0)>>>0>0)){f[g>>2]=f[l>>2];f[e>>2]=f[g>>2];Me(c,e,h,o)|0}z=x+p|0}else{t=0;s=13}if((s|0)==13){s=0;b[h>>0]=t|r<<2;w=k;v=f[w+4>>2]|0;if(!((v|0)>0|(v|0)==0&(f[w>>2]|0)>>>0>0)){f[g>>2]=f[l>>2];f[e>>2]=f[g>>2];Me(c,e,h,n)|0}if(!t)z=p;else{w=0;do{w=w+1|0;b[h>>0]=r>>>((w<<3)+-2|0);v=k;q=f[v+4>>2]|0;if(!((q|0)>0|(q|0)==0&(f[v>>2]|0)>>>0>0)){f[g>>2]=f[l>>2];f[e>>2]=f[g>>2];Me(c,e,h,m)|0}}while((w|0)<(t|0));z=p}}p=z+1|0;if(p>>>0>=(f[i>>2]|0)>>>0){j=1;s=20;break}}if((s|0)==20){u=d;return j|0}return 0}function Me(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=f[a>>2]|0;h=g;i=(f[c>>2]|0)-h|0;c=g+i|0;j=e-d|0;if((j|0)<=0){k=c;return k|0}l=a+8|0;m=f[l>>2]|0;n=a+4|0;o=f[n>>2]|0;p=o;if((j|0)<=(m-p|0)){q=p-c|0;if((j|0)>(q|0)){r=d+q|0;if((r|0)==(e|0))s=o;else{t=r;u=o;while(1){b[u>>0]=b[t>>0]|0;t=t+1|0;v=(f[n>>2]|0)+1|0;f[n>>2]=v;if((t|0)==(e|0)){s=v;break}else u=v}}if((q|0)>0){w=r;x=s}else{k=c;return k|0}}else{w=e;x=o}s=x-(c+j)|0;r=c+s|0;if(r>>>0<o>>>0){q=r;r=x;do{b[r>>0]=b[q>>0]|0;q=q+1|0;r=(f[n>>2]|0)+1|0;f[n>>2]=r}while((q|0)!=(o|0))}if(s|0)im(x+(0-s)|0,c|0,s|0)|0;if((w|0)==(d|0)){k=c;return k|0}else{y=d;z=c}while(1){b[z>>0]=b[y>>0]|0;y=y+1|0;if((y|0)==(w|0)){k=c;break}else z=z+1|0}return k|0}z=p-h+j|0;if((z|0)<0)aq(a);j=m-h|0;h=j<<1;m=j>>>0<1073741823?(h>>>0<z>>>0?z:h):2147483647;h=c;if(!m)A=0;else A=ln(m)|0;z=A+i|0;i=z;j=A+m|0;if((d|0)==(e|0)){B=i;C=g}else{g=d;d=i;i=z;do{b[i>>0]=b[g>>0]|0;i=d+1|0;d=i;g=g+1|0}while((g|0)!=(e|0));B=d;C=f[a>>2]|0}d=h-C|0;e=z+(0-d)|0;if((d|0)>0)kh(e|0,C|0,d|0)|0;d=(f[n>>2]|0)-h|0;if((d|0)>0){h=B;kh(h|0,c|0,d|0)|0;D=h+d|0;E=f[a>>2]|0}else{D=B;E=C}f[a>>2]=e;f[n>>2]=D;f[l>>2]=j;if(!E){k=z;return k|0}Oq(E);k=z;return k|0}function Ne(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+16|0;g=e;h=f[(f[c+4>>2]|0)+(d<<2)>>2]|0;d=f[c+28>>2]|0;c=f[(f[(f[d+4>>2]|0)+8>>2]|0)+(h<<2)>>2]|0;switch(f[c+28>>2]|0){case 5:case 6:case 3:case 4:case 1:case 2:{i=ln(40)|0;zo(i);j=i;k=j;f[a>>2]=k;u=e;return}case 9:{l=3;break}default:{}}if((l|0)==3){i=f[d+48>>2]|0;d=ln(32)|0;f[g>>2]=d;f[g+8>>2]=-2147483616;f[g+4>>2]=17;m=d;n=14495;o=m+17|0;do{b[m>>0]=b[n>>0]|0;m=m+1|0;n=n+1|0}while((m|0)<(o|0));b[d+17>>0]=0;d=i+16|0;n=f[d>>2]|0;if(n){p=d;q=n;a:while(1){n=q;while(1){if((f[n+16>>2]|0)>=(h|0))break;r=f[n+4>>2]|0;if(!r){s=p;break a}else n=r}q=f[n>>2]|0;if(!q){s=n;break}else p=n}if(((s|0)!=(d|0)?(h|0)>=(f[s+16>>2]|0):0)?(h=s+20|0,(Jh(h,g)|0)!=0):0)t=Hk(h,g,-1)|0;else l=12}else l=12;if((l|0)==12)t=Hk(i,g,-1)|0;if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if((t|0)>0)if((f[c+56>>2]|0)==1){c=ln(48)|0;m=c;o=m+48|0;do{f[m>>2]=0;m=m+4|0}while((m|0)<(o|0));zo(c);f[c>>2]=2496;f[c+40>>2]=1168;f[c+44>>2]=-1;j=c;k=j;f[a>>2]=k;u=e;return}else{c=ln(64)|0;ym(c);j=c;k=j;f[a>>2]=k;u=e;return}}c=ln(36)|0;Hm(c);j=c;k=j;f[a>>2]=k;u=e;return}function Oe(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=(c|0)==(a|0);b[c+12>>0]=d&1;if(d)return;else e=c;while(1){g=e+8|0;h=f[g>>2]|0;c=h+12|0;if(b[c>>0]|0){i=23;break}j=h+8|0;k=f[j>>2]|0;d=f[k>>2]|0;if((d|0)==(h|0)){l=f[k+4>>2]|0;if(!l){i=7;break}m=l+12|0;if(!(b[m>>0]|0))n=m;else{i=7;break}}else{if(!d){i=16;break}m=d+12|0;if(!(b[m>>0]|0))n=m;else{i=16;break}}b[c>>0]=1;c=(k|0)==(a|0);b[k+12>>0]=c&1;b[n>>0]=1;if(c){i=23;break}else e=k}if((i|0)==7){if((f[h>>2]|0)==(e|0)){o=h;p=k}else{n=h+4|0;a=f[n>>2]|0;c=f[a>>2]|0;f[n>>2]=c;if(!c)q=k;else{f[c+8>>2]=h;q=f[j>>2]|0}f[a+8>>2]=q;q=f[j>>2]|0;f[((f[q>>2]|0)==(h|0)?q:q+4|0)>>2]=a;f[a>>2]=h;f[j>>2]=a;o=a;p=f[a+8>>2]|0}b[o+12>>0]=1;b[p+12>>0]=0;o=f[p>>2]|0;a=o+4|0;q=f[a>>2]|0;f[p>>2]=q;if(q|0)f[q+8>>2]=p;q=p+8|0;f[o+8>>2]=f[q>>2];c=f[q>>2]|0;f[((f[c>>2]|0)==(p|0)?c:c+4|0)>>2]=o;f[a>>2]=p;f[q>>2]=o;return}else if((i|0)==16){if((f[h>>2]|0)==(e|0)){o=e+4|0;q=f[o>>2]|0;f[h>>2]=q;if(!q)r=k;else{f[q+8>>2]=h;r=f[j>>2]|0}f[g>>2]=r;r=f[j>>2]|0;f[((f[r>>2]|0)==(h|0)?r:r+4|0)>>2]=e;f[o>>2]=h;f[j>>2]=e;s=e;t=f[e+8>>2]|0}else{s=h;t=k}b[s+12>>0]=1;b[t+12>>0]=0;s=t+4|0;k=f[s>>2]|0;h=f[k>>2]|0;f[s>>2]=h;if(h|0)f[h+8>>2]=t;h=t+8|0;f[k+8>>2]=f[h>>2];s=f[h>>2]|0;f[((f[s>>2]|0)==(t|0)?s:s+4|0)>>2]=k;f[k>>2]=t;f[h>>2]=k;return}else if((i|0)==23)return}function Pe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=f[b>>2]|0;b=a+12|0;e=(d|0)==-1;do if(e){g=1;h=-1;i=-1}else{j=d+(((d>>>0)%3|0|0)==0?2:-1)|0;if((j|0)!=-1){k=f[(f[b>>2]|0)+12>>2]|0;l=j;while(1){j=f[k+(l<<2)>>2]|0;if((j|0)==-1){m=0;n=l;break}o=j+1|0;l=((o>>>0)%3|0|0)==0?j+-2|0:o;if((l|0)==-1){m=1;n=-1;break}}if(e){g=m;h=-1;i=n;break}else{p=m;q=n}}else{p=1;q=-1}g=p;h=f[(f[f[b>>2]>>2]|0)+(d<<2)>>2]|0;i=q}while(0);if(c){c=(f[a+84>>2]|0)+(h>>>5<<2)|0;f[c>>2]=f[c>>2]|1<<(h&31);r=1}else r=0;c=f[(f[a+152>>2]|0)+(h<<2)>>2]|0;q=(f[a+140>>2]|0)+(c>>>5<<2)|0;f[q>>2]=f[q>>2]|1<<(c&31);if(!g){g=(((i>>>0)%3|0|0)==0?2:-1)+i|0;if((g|0)==-1){s=-1;t=i}else{s=f[(f[f[b>>2]>>2]|0)+(g<<2)>>2]|0;t=i}}else{s=-1;t=-1}if((s|0)==(h|0)){u=r;return u|0}i=f[a+84>>2]|0;a=r;r=s;s=t;while(1){t=i+(r>>>5<<2)|0;f[t>>2]=f[t>>2]|1<<(r&31);t=a+1|0;g=s+1|0;a:do if((s|0)!=-1?(c=((g>>>0)%3|0|0)==0?s+-2|0:g,(c|0)!=-1):0){q=f[b>>2]|0;d=f[q+12>>2]|0;p=c;while(1){c=f[d+(p<<2)>>2]|0;if((c|0)==-1)break;n=c+1|0;m=((n>>>0)%3|0|0)==0?c+-2|0:n;if((m|0)==-1){v=-1;w=-1;break a}else p=m}d=(((p>>>0)%3|0|0)==0?2:-1)+p|0;if((d|0)==-1){v=-1;w=p}else{v=f[(f[q>>2]|0)+(d<<2)>>2]|0;w=p}}else{v=-1;w=-1}while(0);if((v|0)==(h|0)){u=t;break}else{a=t;r=v;s=w}}return u|0}function Qe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=Oa,C=Oa,D=Oa,E=Oa;g=u;u=u+16|0;h=g;i=b[d+24>>0]|0;j=i<<24>>24;Rh(a,c,e,j,0,d,1);k=f[a>>2]|0;a=(f[f[k>>2]>>2]|0)+(f[k+48>>2]|0)|0;k=f[c+4>>2]|0;Ap(h);Ko(h,$(n[c+20>>2]),(1<<k)+-1|0);k=Lq(j>>>0>1073741823?-1:j<<2)|0;if(!e){Mq(k);u=g;return}l=d+68|0;m=d+48|0;o=d+40|0;p=c+8|0;c=h+4|0;q=(b[d+84>>0]|0)==0;if(i<<24>>24>0){r=0;s=0}else{i=0;do{if(q)t=f[(f[l>>2]|0)+(i<<2)>>2]|0;else t=i;v=m;w=f[v>>2]|0;x=f[v+4>>2]|0;v=o;y=f[v>>2]|0;z=un(y|0,f[v+4>>2]|0,t|0,0)|0;v=Vn(z|0,I|0,w|0,x|0)|0;kh(k|0,(f[f[d>>2]>>2]|0)+v|0,y|0)|0;i=i+1|0}while((i|0)!=(e|0));Mq(k);u=g;return}while(1){if(q)A=f[(f[l>>2]|0)+(s<<2)>>2]|0;else A=s;i=m;t=f[i>>2]|0;y=f[i+4>>2]|0;i=o;v=f[i>>2]|0;x=un(v|0,f[i+4>>2]|0,A|0,0)|0;i=Vn(x|0,I|0,t|0,y|0)|0;kh(k|0,(f[f[d>>2]>>2]|0)+i|0,v|0)|0;v=f[p>>2]|0;B=$(n[h>>2]);i=0;y=r;while(1){C=$(n[k+(i<<2)>>2]);D=$(C-$(n[v+(i<<2)>>2]));t=D<$(0.0);C=$(-D);E=$((t?C:D)/B);x=~~$(J($($(E*$(f[c>>2]|0))+$(.5))));f[a+(y<<2)>>2]=t?0-x|0:x;i=i+1|0;if((i|0)==(j|0))break;else y=y+1|0}s=s+1|0;if((s|0)==(e|0))break;else r=r+j|0}Mq(k);u=g;return}function Re(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;c=a+4|0;d=f[c>>2]|0;e=a+100|0;if(d>>>0<(f[e>>2]|0)>>>0){f[c>>2]=d+1;g=h[d>>0]|0}else g=Si(a)|0;switch(g|0){case 43:case 45:{d=(g|0)==45&1;i=f[c>>2]|0;if(i>>>0<(f[e>>2]|0)>>>0){f[c>>2]=i+1;j=h[i>>0]|0}else j=Si(a)|0;if((b|0)!=0&(j+-48|0)>>>0>9?(f[e>>2]|0)!=0:0){f[c>>2]=(f[c>>2]|0)+-1;k=d;l=j}else{k=d;l=j}break}default:{k=0;l=g}}if((l+-48|0)>>>0>9)if(!(f[e>>2]|0)){m=-2147483648;n=0}else{f[c>>2]=(f[c>>2]|0)+-1;m=-2147483648;n=0}else{g=0;j=l;while(1){g=j+-48+(g*10|0)|0;l=f[c>>2]|0;if(l>>>0<(f[e>>2]|0)>>>0){f[c>>2]=l+1;o=h[l>>0]|0}else o=Si(a)|0;if(!((o+-48|0)>>>0<10&(g|0)<214748364))break;else j=o}j=((g|0)<0)<<31>>31;if((o+-48|0)>>>0<10){l=o;d=g;b=j;while(1){i=un(d|0,b|0,10,0)|0;p=I;q=Vn(l|0,((l|0)<0)<<31>>31|0,-48,-1)|0;r=Vn(q|0,I|0,i|0,p|0)|0;p=I;i=f[c>>2]|0;if(i>>>0<(f[e>>2]|0)>>>0){f[c>>2]=i+1;s=h[i>>0]|0}else s=Si(a)|0;if((s+-48|0)>>>0<10&((p|0)<21474836|(p|0)==21474836&r>>>0<2061584302)){l=s;d=r;b=p}else{t=s;u=r;v=p;break}}}else{t=o;u=g;v=j}if((t+-48|0)>>>0<10)do{t=f[c>>2]|0;if(t>>>0<(f[e>>2]|0)>>>0){f[c>>2]=t+1;w=h[t>>0]|0}else w=Si(a)|0}while((w+-48|0)>>>0<10);if(f[e>>2]|0)f[c>>2]=(f[c>>2]|0)+-1;c=(k|0)!=0;k=Xn(0,0,u|0,v|0)|0;m=c?I:v;n=c?k:u}I=m;return n|0}function Se(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=a+1176|0;c=f[b>>2]|0;if(c|0){d=a+1180|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;while(1){e=h+-12|0;f[d>>2]=e;i=f[e>>2]|0;if(!i)j=e;else{e=h+-8|0;k=f[e>>2]|0;if((k|0)!=(i|0))f[e>>2]=k+(~((k+-4-i|0)>>>2)<<2);Oq(i);j=f[d>>2]|0}if((j|0)==(c|0))break;else h=j}g=f[b>>2]|0}Oq(g)}g=a+1164|0;b=f[g>>2]|0;if(b|0){j=a+1168|0;h=f[j>>2]|0;if((h|0)==(b|0))l=b;else{c=h;while(1){h=c+-12|0;f[j>>2]=h;d=f[h>>2]|0;if(!d)m=h;else{h=c+-8|0;i=f[h>>2]|0;if((i|0)!=(d|0))f[h>>2]=i+(~((i+-4-d|0)>>>2)<<2);Oq(d);m=f[j>>2]|0}if((m|0)==(b|0))break;else c=m}l=f[g>>2]|0}Oq(l)}l=f[a+1152>>2]|0;if(l|0){g=a+1156|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+1140>>2]|0;if(l|0){m=a+1144|0;g=f[m>>2]|0;if((g|0)!=(l|0))f[m>>2]=g+(~((g+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+1128>>2]|0;if(!l){n=a+1108|0;jl(n);o=a+1088|0;jl(o);p=a+1068|0;jl(p);q=a+1036|0;Fj(q);r=a+12|0;Nh(r);return}g=a+1132|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l);n=a+1108|0;jl(n);o=a+1088|0;jl(o);p=a+1068|0;jl(p);q=a+1036|0;Fj(q);r=a+12|0;Nh(r);return}function Te(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=u;u=u+16|0;e=d;g=a+4|0;h=f[g>>2]|0;i=f[(f[a>>2]|0)+52>>2]|0;if(!h){if(!(Sa[i&31](a,c,0)|0)){j=0;u=d;return j|0}}else if(!(Sa[i&31](a,c,f[(f[h+4>>2]|0)+80>>2]|0)|0)){j=0;u=d;return j|0}if(!(b[a+28>>0]|0)){j=1;u=d;return j|0}h=f[a+8>>2]|0;i=f[a+32>>2]|0;a=f[h+80>>2]|0;f[e>>2]=0;k=e+4|0;f[k>>2]=0;f[e+8>>2]=0;do if(a)if(a>>>0>1073741823)aq(e);else{l=a<<2;m=ln(l)|0;f[e>>2]=m;n=m+(a<<2)|0;f[e+8>>2]=n;sj(m|0,0,l|0)|0;f[k>>2]=n;o=m;p=n;q=m;break}else{o=0;p=0;q=0}while(0);e=f[c+4>>2]|0;a=f[c>>2]|0;c=a;a:do if((e|0)!=(a|0)){m=e-a>>2;if(b[h+84>>0]|0){n=0;while(1){f[o+(f[c+(n<<2)>>2]<<2)>>2]=n;n=n+1|0;if(n>>>0>=m>>>0)break a}}n=f[h+68>>2]|0;l=0;do{f[o+(f[n+(f[c+(l<<2)>>2]<<2)>>2]<<2)>>2]=l;l=l+1|0}while(l>>>0<m>>>0)}while(0);c=f[(f[(f[g>>2]|0)+4>>2]|0)+80>>2]|0;b:do if(c|0){g=f[i+68>>2]|0;if(b[h+84>>0]|0){a=0;while(1){f[g+(a<<2)>>2]=f[o+(a<<2)>>2];a=a+1|0;if(a>>>0>=c>>>0)break b}}a=f[h+68>>2]|0;e=0;do{f[g+(e<<2)>>2]=f[o+(f[a+(e<<2)>>2]<<2)>>2];e=e+1|0}while(e>>>0<c>>>0)}while(0);if(o|0){if((p|0)!=(o|0))f[k>>2]=p+(~((p+-4-o|0)>>>2)<<2);Oq(q)}j=1;u=d;return j|0}function Ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+8>>2]=b;Oh(a+12|0);wn(a+1036|0);vo(a+1068|0);vo(a+1088|0);vo(a+1108|0);e=a+1128|0;f[e>>2]=0;g=a+1132|0;f[g>>2]=0;f[a+1136>>2]=0;h=(b|0)==0;do if(!h)if(b>>>0>1073741823)aq(e);else{i=b<<2;j=ln(i)|0;f[e>>2]=j;k=j+(b<<2)|0;f[a+1136>>2]=k;sj(j|0,0,i|0)|0;f[g>>2]=k;break}while(0);g=a+1140|0;f[g>>2]=0;e=a+1144|0;f[e>>2]=0;f[a+1148>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+1148>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=a+1152|0;f[g>>2]=0;e=a+1156|0;f[e>>2]=0;f[a+1160>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+1160>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=b<<5|1;f[d>>2]=0;e=d+4|0;f[e>>2]=0;f[d+8>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[d>>2]=i;j=i+(b<<2)|0;f[d+8>>2]=j;sj(i|0,0,k|0)|0;f[e>>2]=j}lk(a+1164|0,g,d);j=f[d>>2]|0;if(j|0){k=f[e>>2]|0;if((k|0)!=(j|0))f[e>>2]=k+(~((k+-4-j|0)>>>2)<<2);Oq(j)}f[d>>2]=0;j=d+4|0;f[j>>2]=0;f[d+8>>2]=0;if(!h){h=b<<2;k=ln(h)|0;f[d>>2]=k;e=k+(b<<2)|0;f[d+8>>2]=e;sj(k|0,0,h|0)|0;f[j>>2]=e}lk(a+1176|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}d=f[j>>2]|0;if((d|0)!=(g|0))f[j>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g);u=c;return}function Ve(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0.0;g=u;u=u+16|0;h=g;i=b+16|0;f[a>>2]=f[i>>2];f[a+4>>2]=f[i+4>>2];f[a+8>>2]=f[i+8>>2];f[a+12>>2]=f[i+12>>2];f[a+16>>2]=f[i+16>>2];f[a+20>>2]=f[i+20>>2];j=a+8|0;f[j>>2]=(f[j>>2]|0)+d;j=(d|0)>0;if(j){k=b+4|0;l=a+16|0;m=a+12|0;n=f[b>>2]|0;o=n;q=0;r=o;s=n;n=o;while(1){o=f[c+(q<<2)>>2]|0;t=f[k>>2]|0;if(t-s>>2>>>0>o>>>0){v=r;w=n}else{x=o+1|0;f[h>>2]=0;y=t-s>>2;z=s;A=t;if(x>>>0<=y>>>0)if(x>>>0<y>>>0?(t=z+(x<<2)|0,(t|0)!=(A|0)):0){f[k>>2]=A+(~((A+-4-t|0)>>>2)<<2);B=r}else B=r;else{Ch(b,x-y|0,h);B=f[b>>2]|0}v=B;w=B}y=w+(o<<2)|0;x=f[y>>2]|0;s=w;if((x|0)<=1)if((x|0)==0?(f[l>>2]=(f[l>>2]|0)+1,o>>>0>(f[m>>2]|0)>>>0):0){f[m>>2]=o;C=0.0}else C=0.0;else{D=+(x|0);C=+Zg(D)*D}x=(f[y>>2]|0)+1|0;f[y>>2]=x;D=+(x|0);E=+Zg(D)*D-C;p[a>>3]=+p[a>>3]+E;q=q+1|0;if((q|0)==(d|0))break;else{r=v;n=w}}}if(e){f[i>>2]=f[a>>2];f[i+4>>2]=f[a+4>>2];f[i+8>>2]=f[a+8>>2];f[i+12>>2]=f[a+12>>2];f[i+16>>2]=f[a+16>>2];u=g;return}if(!j){u=g;return}j=f[b>>2]|0;b=0;do{a=j+(f[c+(b<<2)>>2]<<2)|0;f[a>>2]=(f[a>>2]|0)+-1;b=b+1|0}while((b|0)!=(d|0));u=g;return}function We(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;f[a>>2]=e;break a;break}case 10:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;e=a;f[e>>2]=d;f[e+4>>2]=((d|0)<0)<<31>>31;break a;break}case 11:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;d=a;f[d>>2]=e;f[d+4>>2]=0;break a;break}case 12:{d=(f[c>>2]|0)+(8-1)&~(8-1);e=d;g=f[e>>2]|0;h=f[e+4>>2]|0;f[c>>2]=d+8;d=a;f[d>>2]=g;f[d+4>>2]=h;break a;break}case 13:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&65535)<<16>>16;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 14:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&65535;f[h+4>>2]=0;break a;break}case 15:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&255)<<24>>24;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 16:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&255;f[h+4>>2]=0;break a;break}case 17:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}case 18:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}default:break a}while(0);while(0);return}function Xe(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;c=u;u=u+16|0;d=c+4|0;e=c;g=c+8|0;if(!(Qa[f[(f[a>>2]|0)+32>>2]&127](a)|0)){h=0;u=c;return h|0}i=a+44|0;j=f[i>>2]|0;k=a+8|0;l=a+12|0;m=f[l>>2]|0;n=f[k>>2]|0;b[g>>0]=(m-n|0)>>>2;o=j+16|0;p=f[o+4>>2]|0;if((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0){q=k;r=n;s=m}else{f[e>>2]=f[j+4>>2];f[d>>2]=f[e>>2];Me(j,d,g,g+1|0)|0;q=k;r=f[k>>2]|0;s=f[l>>2]|0}a:do if((r|0)!=(s|0)){l=a+4|0;k=r;while(1){g=f[k>>2]|0;k=k+4|0;if(!(Sa[f[(f[g>>2]|0)+8>>2]&31](g,a,f[l>>2]|0)|0)){h=0;break}if((k|0)==(s|0))break a}u=c;return h|0}while(0);if(!(xc(a)|0)){h=0;u=c;return h|0}s=a+32|0;r=f[s>>2]|0;k=a+36|0;l=f[k>>2]|0;b:do if((r|0)!=(l|0)){g=r;do{if(!(Ra[f[(f[a>>2]|0)+40>>2]&127](a,f[g>>2]|0)|0)){h=0;t=18;break}g=g+4|0}while((g|0)!=(l|0));if((t|0)==18){u=c;return h|0}g=f[s>>2]|0;d=f[k>>2]|0;if((g|0)!=(d|0)){j=g;while(1){g=f[(f[q>>2]|0)+(f[j>>2]<<2)>>2]|0;j=j+4|0;if(!(Ra[f[(f[g>>2]|0)+12>>2]&127](g,f[i>>2]|0)|0)){h=0;break}if((j|0)==(d|0))break b}u=c;return h|0}}while(0);h=Qa[f[(f[a>>2]|0)+44>>2]&127](a)|0;u=c;return h|0}function Ye(a,b){a=a|0;b=b|0;ld(a,b);ld(a+32|0,b);ld(a+64|0,b);ld(a+96|0,b);ld(a+128|0,b);ld(a+160|0,b);ld(a+192|0,b);ld(a+224|0,b);ld(a+256|0,b);ld(a+288|0,b);ld(a+320|0,b);ld(a+352|0,b);ld(a+384|0,b);ld(a+416|0,b);ld(a+448|0,b);ld(a+480|0,b);ld(a+512|0,b);ld(a+544|0,b);ld(a+576|0,b);ld(a+608|0,b);ld(a+640|0,b);ld(a+672|0,b);ld(a+704|0,b);ld(a+736|0,b);ld(a+768|0,b);ld(a+800|0,b);ld(a+832|0,b);ld(a+864|0,b);ld(a+896|0,b);ld(a+928|0,b);ld(a+960|0,b);ld(a+992|0,b);ld(a+1024|0,b);return}function Ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0;c=u;u=u+32|0;d=c;e=a+4|0;g=f[a>>2]|0;h=(f[e>>2]|0)-g>>2;i=h+1|0;if(i>>>0>1073741823)aq(a);j=a+8|0;k=(f[j>>2]|0)-g|0;g=k>>1;l=k>>2>>>0<536870911?(g>>>0<i>>>0?i:g):1073741823;f[d+12>>2]=0;f[d+16>>2]=a+8;do if(l)if(l>>>0>1073741823){g=ra(8)|0;Oo(g,16035);f[g>>2]=7256;va(g|0,1112,110)}else{m=ln(l<<2)|0;break}else m=0;while(0);f[d>>2]=m;g=m+(h<<2)|0;h=d+8|0;i=d+4|0;f[i>>2]=g;k=m+(l<<2)|0;l=d+12|0;f[l>>2]=k;m=f[b>>2]|0;f[b>>2]=0;f[g>>2]=m;m=g+4|0;f[h>>2]=m;b=f[a>>2]|0;n=f[e>>2]|0;if((n|0)==(b|0)){o=g;p=l;q=h;r=b;s=m;t=n;v=k;w=o;f[a>>2]=w;f[i>>2]=r;f[e>>2]=s;f[q>>2]=t;x=f[j>>2]|0;f[j>>2]=v;f[p>>2]=x;f[d>>2]=r;ki(d);u=c;return}else{y=n;z=g}do{y=y+-4|0;g=f[y>>2]|0;f[y>>2]=0;f[z+-4>>2]=g;z=(f[i>>2]|0)+-4|0;f[i>>2]=z}while((y|0)!=(b|0));o=z;p=l;q=h;r=f[a>>2]|0;s=f[h>>2]|0;t=f[e>>2]|0;v=f[l>>2]|0;w=o;f[a>>2]=w;f[i>>2]=r;f[e>>2]=s;f[q>>2]=t;x=f[j>>2]|0;f[j>>2]=v;f[p>>2]=x;f[d>>2]=r;ki(d);u=c;return}function _e(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+32|0;e=d+12|0;g=d;h=nl(c,0)|0;if(!h){f[a>>2]=0;u=d;return}i=f[c+100>>2]|0;j=f[c+96>>2]|0;c=i-j|0;k=(c|0)/12|0;f[e>>2]=0;l=e+4|0;f[l>>2]=0;f[e+8>>2]=0;m=j;do if(c)if(k>>>0>357913941)aq(e);else{n=ln(c)|0;f[e>>2]=n;f[e+8>>2]=n+(k*12|0);sj(n|0,0,c|0)|0;f[l>>2]=n+c;o=n;break}else o=0;while(0);f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;a:do if((i|0)!=(j|0)){c=g+4|0;n=g+8|0;if(b[h+84>>0]|0){p=0;while(1){q=m+(p*12|0)|0;f[g>>2]=f[q>>2];f[g+4>>2]=f[q+4>>2];f[g+8>>2]=f[q+8>>2];f[o+(p*12|0)>>2]=f[g>>2];f[o+(p*12|0)+4>>2]=f[c>>2];f[o+(p*12|0)+8>>2]=f[n>>2];p=p+1|0;if(p>>>0>=k>>>0)break a}}p=f[h+68>>2]|0;q=0;do{r=f[p+(f[m+(q*12|0)>>2]<<2)>>2]|0;f[g>>2]=r;s=f[p+(f[m+(q*12|0)+4>>2]<<2)>>2]|0;f[c>>2]=s;t=f[p+(f[m+(q*12|0)+8>>2]<<2)>>2]|0;f[n>>2]=t;f[o+(q*12|0)>>2]=r;f[o+(q*12|0)+4>>2]=s;f[o+(q*12|0)+8>>2]=t;q=q+1|0}while(q>>>0<k>>>0)}while(0);Kj(a,e);a=f[e>>2]|0;if(a|0){e=f[l>>2]|0;if((e|0)!=(a|0))f[l>>2]=e+(~(((e+-12-a|0)>>>0)/12|0)*12|0);Oq(a)}u=d;return}function $e(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+8>>2]=b;wn(a+12|0);vo(a+44|0);vo(a+64|0);vo(a+84|0);e=a+104|0;f[e>>2]=0;g=a+108|0;f[g>>2]=0;f[a+112>>2]=0;h=(b|0)==0;do if(!h)if(b>>>0>1073741823)aq(e);else{i=b<<2;j=ln(i)|0;f[e>>2]=j;k=j+(b<<2)|0;f[a+112>>2]=k;sj(j|0,0,i|0)|0;f[g>>2]=k;break}while(0);g=a+116|0;f[g>>2]=0;e=a+120|0;f[e>>2]=0;f[a+124>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+124>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=a+128|0;f[g>>2]=0;e=a+132|0;f[e>>2]=0;f[a+136>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+136>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=b<<5|1;f[d>>2]=0;e=d+4|0;f[e>>2]=0;f[d+8>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[d>>2]=i;j=i+(b<<2)|0;f[d+8>>2]=j;sj(i|0,0,k|0)|0;f[e>>2]=j}lk(a+140|0,g,d);j=f[d>>2]|0;if(j|0){k=f[e>>2]|0;if((k|0)!=(j|0))f[e>>2]=k+(~((k+-4-j|0)>>>2)<<2);Oq(j)}f[d>>2]=0;j=d+4|0;f[j>>2]=0;f[d+8>>2]=0;if(!h){h=b<<2;k=ln(h)|0;f[d>>2]=k;e=k+(b<<2)|0;f[d+8>>2]=e;sj(k|0,0,h|0)|0;f[j>>2]=e}lk(a+152|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}d=f[j>>2]|0;if((d|0)!=(g|0))f[j>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g);u=c;return}function af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+8>>2]=b;vo(a+12|0);vo(a+32|0);vo(a+52|0);vo(a+72|0);e=a+92|0;f[e>>2]=0;g=a+96|0;f[g>>2]=0;f[a+100>>2]=0;h=(b|0)==0;do if(!h)if(b>>>0>1073741823)aq(e);else{i=b<<2;j=ln(i)|0;f[e>>2]=j;k=j+(b<<2)|0;f[a+100>>2]=k;sj(j|0,0,i|0)|0;f[g>>2]=k;break}while(0);g=a+104|0;f[g>>2]=0;e=a+108|0;f[e>>2]=0;f[a+112>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+112>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=a+116|0;f[g>>2]=0;e=a+120|0;f[e>>2]=0;f[a+124>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+124>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=b<<5|1;f[d>>2]=0;e=d+4|0;f[e>>2]=0;f[d+8>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[d>>2]=i;j=i+(b<<2)|0;f[d+8>>2]=j;sj(i|0,0,k|0)|0;f[e>>2]=j}lk(a+128|0,g,d);j=f[d>>2]|0;if(j|0){k=f[e>>2]|0;if((k|0)!=(j|0))f[e>>2]=k+(~((k+-4-j|0)>>>2)<<2);Oq(j)}f[d>>2]=0;j=d+4|0;f[j>>2]=0;f[d+8>>2]=0;if(!h){h=b<<2;k=ln(h)|0;f[d>>2]=k;e=k+(b<<2)|0;f[d+8>>2]=e;sj(k|0,0,h|0)|0;f[j>>2]=e}lk(a+140|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}d=f[j>>2]|0;if((d|0)!=(g|0))f[j>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g);u=c;return}function bf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=ln(40)|0;e=d+16|0;pj(e,c);pj(d+28|0,c+12|0);c=a+4|0;g=f[c>>2]|0;do if(g){h=b[d+27>>0]|0;i=h<<24>>24<0;j=i?f[d+20>>2]|0:h&255;h=i?f[e>>2]|0:e;i=g;while(1){k=i+16|0;l=b[k+11>>0]|0;m=l<<24>>24<0;n=m?f[i+20>>2]|0:l&255;l=n>>>0<j>>>0?n:j;if((l|0)!=0?(o=Vk(h,m?f[k>>2]|0:k,l)|0,(o|0)!=0):0)if((o|0)<0)p=7;else p=9;else if(j>>>0<n>>>0)p=7;else p=9;if((p|0)==7){p=0;n=f[i>>2]|0;if(!n){p=8;break}else q=n}else if((p|0)==9){p=0;r=i+4|0;n=f[r>>2]|0;if(!n){p=11;break}else q=n}i=q}if((p|0)==8){s=i;t=i;break}else if((p|0)==11){s=i;t=r;break}}else{s=c;t=c}while(0);f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=s;f[t>>2]=d;s=f[f[a>>2]>>2]|0;if(!s){u=d;v=a+4|0;w=f[v>>2]|0;Oe(w,u);x=a+8|0;y=f[x>>2]|0;z=y+1|0;f[x>>2]=z;return d|0}f[a>>2]=s;u=f[t>>2]|0;v=a+4|0;w=f[v>>2]|0;Oe(w,u);x=a+8|0;y=f[x>>2]|0;z=y+1|0;f[x>>2]=z;return d|0}function cf(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3680;wi(a+200|0);b=f[a+184>>2]|0;if(b|0){c=a+188|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}kj(a+172|0);b=f[a+152>>2]|0;if(b|0){d=a+156|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+140>>2]|0;if(b|0)Oq(b);b=f[a+128>>2]|0;if(b|0){c=b;do{b=c;c=f[c>>2]|0;Oq(b)}while((c|0)!=0)}c=a+120|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0)Oq(b);b=f[a+108>>2]|0;if(b|0){c=a+112|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~(((d+-12-b|0)>>>0)/12|0)*12|0);Oq(b)}b=f[a+96>>2]|0;if(b|0){d=a+100|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+84>>2]|0;if(b|0)Oq(b);b=f[a+72>>2]|0;if(b|0){c=a+76|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+52>>2]|0;if(b|0){d=a+56|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+40>>2]|0;if(b|0){c=a+44|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+28>>2]|0;if(b|0)Oq(b);b=f[a+16>>2]|0;if(b|0){d=a+20|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=a+12|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;Ii(a);Oq(a);return}function df(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=a+140|0;c=f[b>>2]|0;if(c|0){d=a+144|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;while(1){e=h+-12|0;f[d>>2]=e;i=f[e>>2]|0;if(!i)j=e;else{e=h+-8|0;k=f[e>>2]|0;if((k|0)!=(i|0))f[e>>2]=k+(~((k+-4-i|0)>>>2)<<2);Oq(i);j=f[d>>2]|0}if((j|0)==(c|0))break;else h=j}g=f[b>>2]|0}Oq(g)}g=a+128|0;b=f[g>>2]|0;if(b|0){j=a+132|0;h=f[j>>2]|0;if((h|0)==(b|0))l=b;else{c=h;while(1){h=c+-12|0;f[j>>2]=h;d=f[h>>2]|0;if(!d)m=h;else{h=c+-8|0;i=f[h>>2]|0;if((i|0)!=(d|0))f[h>>2]=i+(~((i+-4-d|0)>>>2)<<2);Oq(d);m=f[j>>2]|0}if((m|0)==(b|0))break;else c=m}l=f[g>>2]|0}Oq(l)}l=f[a+116>>2]|0;if(l|0){g=a+120|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+104>>2]|0;if(l|0){m=a+108|0;g=f[m>>2]|0;if((g|0)!=(l|0))f[m>>2]=g+(~((g+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+92>>2]|0;if(!l){n=a+72|0;jl(n);o=a+52|0;jl(o);p=a+32|0;jl(p);q=a+12|0;jl(q);return}g=a+96|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l);n=a+72|0;jl(n);o=a+52|0;jl(o);p=a+32|0;jl(p);q=a+12|0;jl(q);return}function ef(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=a+152|0;c=f[b>>2]|0;if(c|0){d=a+156|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;while(1){e=h+-12|0;f[d>>2]=e;i=f[e>>2]|0;if(!i)j=e;else{e=h+-8|0;k=f[e>>2]|0;if((k|0)!=(i|0))f[e>>2]=k+(~((k+-4-i|0)>>>2)<<2);Oq(i);j=f[d>>2]|0}if((j|0)==(c|0))break;else h=j}g=f[b>>2]|0}Oq(g)}g=a+140|0;b=f[g>>2]|0;if(b|0){j=a+144|0;h=f[j>>2]|0;if((h|0)==(b|0))l=b;else{c=h;while(1){h=c+-12|0;f[j>>2]=h;d=f[h>>2]|0;if(!d)m=h;else{h=c+-8|0;i=f[h>>2]|0;if((i|0)!=(d|0))f[h>>2]=i+(~((i+-4-d|0)>>>2)<<2);Oq(d);m=f[j>>2]|0}if((m|0)==(b|0))break;else c=m}l=f[g>>2]|0}Oq(l)}l=f[a+128>>2]|0;if(l|0){g=a+132|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+116>>2]|0;if(l|0){m=a+120|0;g=f[m>>2]|0;if((g|0)!=(l|0))f[m>>2]=g+(~((g+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+104>>2]|0;if(!l){n=a+84|0;jl(n);o=a+64|0;jl(o);p=a+44|0;jl(p);q=a+12|0;Fj(q);return}g=a+108|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l);n=a+84|0;jl(n);o=a+64|0;jl(o);p=a+44|0;jl(p);q=a+12|0;Fj(q);return}function ff(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3480;uj(a+200|0);b=f[a+184>>2]|0;if(b|0){c=a+188|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}kj(a+172|0);b=f[a+152>>2]|0;if(b|0){d=a+156|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+140>>2]|0;if(b|0)Oq(b);b=f[a+128>>2]|0;if(b|0){c=b;do{b=c;c=f[c>>2]|0;Oq(b)}while((c|0)!=0)}c=a+120|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0)Oq(b);b=f[a+108>>2]|0;if(b|0){c=a+112|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~(((d+-12-b|0)>>>0)/12|0)*12|0);Oq(b)}b=f[a+96>>2]|0;if(b|0){d=a+100|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+84>>2]|0;if(b|0)Oq(b);b=f[a+72>>2]|0;if(b|0){c=a+76|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+52>>2]|0;if(b|0){d=a+56|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+40>>2]|0;if(b|0){c=a+44|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+28>>2]|0;if(b|0)Oq(b);b=f[a+16>>2]|0;if(b|0){d=a+20|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=a+12|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;Ii(a);Oq(a);return}function gf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=u;u=u+144|0;g=e+136|0;h=e+104|0;i=e;j=ln(124)|0;k=f[c+8>>2]|0;f[j+4>>2]=0;f[j>>2]=3656;f[j+12>>2]=3636;f[j+100>>2]=0;f[j+104>>2]=0;f[j+108>>2]=0;l=j+16|0;m=l+80|0;do{f[l>>2]=0;l=l+4|0}while((l|0)<(m|0));f[j+112>>2]=k;f[j+116>>2]=d;n=j+120|0;f[n>>2]=0;o=j;f[h>>2]=3636;p=h+4|0;q=p+4|0;f[q>>2]=0;f[q+4>>2]=0;f[q+8>>2]=0;f[q+12>>2]=0;f[q+16>>2]=0;f[q+20>>2]=0;q=f[c+12>>2]|0;f[i+4>>2]=3636;f[i+92>>2]=0;f[i+96>>2]=0;f[i+100>>2]=0;l=i+8|0;m=l+80|0;do{f[l>>2]=0;l=l+4|0}while((l|0)<(m|0));l=q;f[p>>2]=l;m=((f[l+4>>2]|0)-(f[q>>2]|0)>>2>>>0)/3|0;b[g>>0]=0;qh(h+8|0,m,g);Va[f[(f[h>>2]|0)+8>>2]&127](h);f[i>>2]=f[p>>2];fg(i+4|0,h)|0;f[i+36>>2]=q;f[i+40>>2]=d;f[i+44>>2]=k;f[i+48>>2]=j;f[n>>2]=c+72;Sg(j,i);f[a>>2]=o;Qi(i);f[h>>2]=3636;i=f[h+20>>2]|0;if(i|0)Oq(i);i=f[h+8>>2]|0;if(!i){u=e;return}Oq(i);u=e;return}function hf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+48|0;d=c+44|0;e=c+40|0;g=c+36|0;h=c+32|0;i=c;f[h>>2]=f[a+60>>2];j=b+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)){f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,h,h+4|0)|0}wn(i);tk(i);if((f[h>>2]|0)>0){k=a+56|0;l=1;m=0;do{n=l;l=(f[(f[k>>2]|0)+(m>>>5<<2)>>2]&1<<(m&31)|0)!=0;fj(i,n^l^1);m=m+1|0}while((m|0)<(f[h>>2]|0))}ld(i,b);f[g>>2]=f[a+12>>2];h=j;m=f[h>>2]|0;l=f[h+4>>2]|0;if((l|0)>0|(l|0)==0&m>>>0>0){o=l;p=m}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;m=j;o=f[m+4>>2]|0;p=f[m>>2]|0}f[g>>2]=f[a+20>>2];if((o|0)>0|(o|0)==0&p>>>0>0){Fj(i);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;Fj(i);u=c;return 1}function jf(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=u;u=u+16|0;h=g;if((f[c+56>>2]|0)==-1){i=-1;u=g;return i|0}j=ln(96)|0;tl(j,c);f[h>>2]=j;j=vh(a,h)|0;c=f[h>>2]|0;f[h>>2]=0;if(c|0){h=c+88|0;k=f[h>>2]|0;f[h>>2]=0;if(k|0){h=f[k+8>>2]|0;if(h|0){l=k+12|0;if((f[l>>2]|0)!=(h|0))f[l>>2]=h;Oq(h)}Oq(k)}k=f[c+68>>2]|0;if(k|0){h=c+72|0;l=f[h>>2]|0;if((l|0)!=(k|0))f[h>>2]=l+(~((l+-4-k|0)>>>2)<<2);Oq(k)}k=c+64|0;l=f[k>>2]|0;f[k>>2]=0;if(l|0){k=f[l>>2]|0;if(k|0){h=l+4|0;if((f[h>>2]|0)!=(k|0))f[h>>2]=k;Oq(k)}Oq(l)}Oq(c)}c=a+8|0;l=(f[c>>2]|0)+(j<<2)|0;k=f[l>>2]|0;do if(!d){h=f[a+80>>2]|0;b[k+84>>0]=0;m=k+68|0;n=k+72|0;o=f[n>>2]|0;p=f[m>>2]|0;q=o-p>>2;r=o;if(h>>>0>q>>>0){Ch(m,h-q|0,6220);break}if(h>>>0<q>>>0?(q=p+(h<<2)|0,(q|0)!=(r|0)):0)f[n>>2]=r+(~((r+-4-q|0)>>>2)<<2)}else{b[k+84>>0]=1;q=f[k+68>>2]|0;r=k+72|0;n=f[r>>2]|0;if((n|0)==(q|0))s=k;else{f[r>>2]=n+(~((n+-4-q|0)>>>2)<<2);s=f[l>>2]|0}f[s+80>>2]=f[a+80>>2]}while(0);if(!e){i=j;u=g;return i|0}Bj(f[(f[c>>2]|0)+(j<<2)>>2]|0,e)|0;i=j;u=g;return i|0}function kf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+32|0;h=d+24|0;i=d+16|0;j=d;k=d+8|0;f[a+52>>2]=e;f[a+44>>2]=g;g=Lq(e>>>0>1073741823?-1:e<<2)|0;l=a+48|0;m=f[l>>2]|0;f[l>>2]=g;if(m|0)Mq(m);m=a+36|0;g=f[m>>2]|0;n=f[g+4>>2]|0;o=f[g>>2]|0;p=n-o|0;if((p|0)<=0){u=d;return 1}q=(p>>>2)+-1|0;p=a+8|0;r=i+4|0;s=j+4|0;t=h+4|0;if(n-o>>2>>>0>q>>>0){v=q;w=o}else{x=g;aq(x)}while(1){f[k>>2]=f[w+(v<<2)>>2];f[h>>2]=f[k>>2];Bc(a,h,b,v);g=X(v,e)|0;o=b+(g<<2)|0;q=f[l>>2]|0;n=c+(g<<2)|0;g=f[o+4>>2]|0;y=f[q>>2]|0;z=f[q+4>>2]|0;f[i>>2]=f[o>>2];f[r>>2]=g;f[j>>2]=y;f[s>>2]=z;Od(h,p,i,j);f[n>>2]=f[h>>2];f[n+4>>2]=f[t>>2];v=v+-1|0;if((v|0)<=-1){A=5;break}n=f[m>>2]|0;w=f[n>>2]|0;if((f[n+4>>2]|0)-w>>2>>>0<=v>>>0){x=n;A=6;break}}if((A|0)==5){u=d;return 1}else if((A|0)==6)aq(x);return 0}function lf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=f[c>>2]|0;c=f[d>>2]|0;e=f[a+4>>2]|0;g=f[d+4>>2]|0;h=e+-1|0;i=(h&e|0)==0;if(!i)if(g>>>0<e>>>0)j=g;else j=(g>>>0)%(e>>>0)|0;else j=h&g;g=(f[a>>2]|0)+(j<<2)|0;k=f[g>>2]|0;while(1){l=f[k>>2]|0;if((l|0)==(d|0))break;else k=l}if((k|0)!=(a+8|0)){l=f[k+4>>2]|0;if(!i)if(l>>>0<e>>>0)m=l;else m=(l>>>0)%(e>>>0)|0;else m=l&h;if((m|0)==(j|0)){n=c;o=21}else o=13}else o=13;do if((o|0)==13){if(c|0){m=f[c+4>>2]|0;if(!i)if(m>>>0<e>>>0)p=m;else p=(m>>>0)%(e>>>0)|0;else p=m&h;if((p|0)==(j|0)){q=c;r=c;o=22;break}}f[g>>2]=0;n=f[d>>2]|0;o=21}while(0);if((o|0)==21){g=n;if(!n)s=g;else{q=n;r=g;o=22}}if((o|0)==22){o=f[q+4>>2]|0;if(!i)if(o>>>0<e>>>0)t=o;else t=(o>>>0)%(e>>>0)|0;else t=o&h;if((t|0)==(j|0))s=r;else{f[(f[a>>2]|0)+(t<<2)>>2]=k;s=f[d>>2]|0}}f[k>>2]=s;f[d>>2]=0;s=a+12|0;f[s>>2]=(f[s>>2]|0)+-1;if(!d)return c|0;s=d+8|0;a=f[d+20>>2]|0;if(a|0){k=d+24|0;if((f[k>>2]|0)!=(a|0))f[k>>2]=a;Oq(a)}if((b[s+11>>0]|0)<0)Oq(f[s>>2]|0);Oq(d);return c|0}function mf(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;b=u;u=u+16|0;c=b+4|0;d=b;f[c>>2]=0;e=c+4|0;f[e>>2]=0;f[c+8>>2]=0;g=a+52|0;h=f[g>>2]|0;i=(f[h+100>>2]|0)-(f[h+96>>2]|0)|0;j=(i|0)/12|0;if(!i){k=0;l=0}else{i=c+8|0;m=0;n=0;o=h;h=0;p=0;while(1){q=f[o+96>>2]|0;r=f[q+(n*12|0)>>2]|0;s=r-m|0;t=((s|0)>-1?s:0-s|0)<<1|s>>>31;f[d>>2]=t;if((h|0)==(p|0)){Ri(c,d);v=f[e>>2]|0;w=f[i>>2]|0}else{f[h>>2]=t;t=h+4|0;f[e>>2]=t;v=t;w=p}t=f[q+(n*12|0)+4>>2]|0;s=t-r|0;r=((s|0)>-1?s:0-s|0)<<1|s>>>31;f[d>>2]=r;if((v|0)==(w|0)){Ri(c,d);x=f[e>>2]|0;y=f[i>>2]|0}else{f[v>>2]=r;r=v+4|0;f[e>>2]=r;x=r;y=w}r=f[q+(n*12|0)+8>>2]|0;q=r-t|0;t=((q|0)>-1?q:0-q|0)<<1|q>>>31;f[d>>2]=t;if((x|0)==(y|0))Ri(c,d);else{f[x>>2]=t;f[e>>2]=x+4}t=n+1|0;if(t>>>0>=j>>>0)break;m=r;n=t;o=f[g>>2]|0;h=f[e>>2]|0;p=f[i>>2]|0}k=f[c>>2]|0;l=f[e>>2]|0}Mc(k,l-k>>2,1,0,f[a+44>>2]|0)|0;a=f[c>>2]|0;if(!a){u=b;return 1}c=f[e>>2]|0;if((c|0)!=(a|0))f[e>>2]=c+(~((c+-4-a|0)>>>2)<<2);Oq(a);u=b;return 1}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+48|0;d=c+44|0;e=c+40|0;g=c+36|0;h=c+32|0;i=c;f[h>>2]=f[a+80>>2];j=b+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)){f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,h,h+4|0)|0}wn(i);tk(i);if((f[h>>2]|0)>0){k=a+76|0;l=1;m=0;do{n=l;l=(f[(f[k>>2]|0)+(m>>>5<<2)>>2]&1<<(m&31)|0)!=0;fj(i,n^l^1);m=m+1|0}while((m|0)<(f[h>>2]|0))}ld(i,b);f[g>>2]=f[a+12>>2];h=j;m=f[h>>2]|0;l=f[h+4>>2]|0;if((l|0)>0|(l|0)==0&m>>>0>0){o=l;p=m}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;m=j;o=f[m+4>>2]|0;p=f[m>>2]|0}f[g>>2]=f[a+16>>2];if((o|0)>0|(o|0)==0&p>>>0>0){Fj(i);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;Fj(i);u=c;return 1}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=u;u=u+16|0;d=c+12|0;e=c+8|0;g=c+4|0;h=c;if(!b){i=ln(76)|0;j=ln(12)|0;k=f[(f[a+4>>2]|0)+80>>2]|0;f[j+4>>2]=0;f[j>>2]=3908;f[j+8>>2]=k;f[h>>2]=j;rl(i,h,0);j=i;f[g>>2]=j;i=a+12|0;k=f[i>>2]|0;if(k>>>0<(f[a+16>>2]|0)>>>0){f[g>>2]=0;f[k>>2]=j;f[i>>2]=k+4;l=g}else{Qg(a+8|0,g);l=g}g=f[l>>2]|0;f[l>>2]=0;if(g|0)Va[f[(f[g>>2]|0)+4>>2]&127](g);g=f[h>>2]|0;f[h>>2]=0;if(!g){u=c;return 1}Va[f[(f[g>>2]|0)+4>>2]&127](g);u=c;return 1}g=f[f[a+8>>2]>>2]|0;f[d>>2]=b;a=g+4|0;h=g+8|0;l=f[h>>2]|0;if((l|0)==(f[g+12>>2]|0))Ri(a,d);else{f[l>>2]=b;f[h>>2]=l+4}l=f[d>>2]|0;b=g+16|0;k=g+20|0;g=f[k>>2]|0;i=f[b>>2]|0;j=g-i>>2;m=i;if((l|0)<(j|0)){n=m;o=l}else{i=l+1|0;f[e>>2]=-1;p=g;if(i>>>0<=j>>>0)if(i>>>0<j>>>0?(g=m+(i<<2)|0,(g|0)!=(p|0)):0){f[k>>2]=p+(~((p+-4-g|0)>>>2)<<2);q=l;r=m}else{q=l;r=m}else{Ch(b,i-j|0,e);q=f[d>>2]|0;r=f[b>>2]|0}n=r;o=q}f[n+(o<<2)>>2]=((f[h>>2]|0)-(f[a>>2]|0)>>2)+-1;u=c;return 1}function pf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+32|0;h=d+24|0;i=d+16|0;j=d;k=d+8|0;f[a+52>>2]=e;f[a+44>>2]=g;g=Lq(e>>>0>1073741823?-1:e<<2)|0;l=a+48|0;m=f[l>>2]|0;f[l>>2]=g;if(m|0)Mq(m);m=a+36|0;g=f[m>>2]|0;n=f[g+4>>2]|0;o=f[g>>2]|0;p=n-o|0;if((p|0)<=0){u=d;return 1}q=(p>>>2)+-1|0;p=a+8|0;r=i+4|0;s=j+4|0;t=h+4|0;if(n-o>>2>>>0>q>>>0){v=q;w=o}else{x=g;aq(x)}while(1){f[k>>2]=f[w+(v<<2)>>2];f[h>>2]=f[k>>2];Ac(a,h,b,v);g=X(v,e)|0;o=b+(g<<2)|0;q=f[l>>2]|0;n=c+(g<<2)|0;g=f[o+4>>2]|0;y=f[q>>2]|0;z=f[q+4>>2]|0;f[i>>2]=f[o>>2];f[r>>2]=g;f[j>>2]=y;f[s>>2]=z;Od(h,p,i,j);f[n>>2]=f[h>>2];f[n+4>>2]=f[t>>2];v=v+-1|0;if((v|0)<=-1){A=5;break}n=f[m>>2]|0;w=f[n>>2]|0;if((f[n+4>>2]|0)-w>>2>>>0<=v>>>0){x=n;A=6;break}}if((A|0)==5){u=d;return 1}else if((A|0)==6)aq(x);return 0}function qf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=a+8|0;e=f[d>>2]|0;g=f[a>>2]|0;h=g;do if(e-g>>3>>>0>=b>>>0){i=a+4|0;j=f[i>>2]|0;k=j-g>>3;l=k>>>0<b>>>0;m=l?k:b;n=j;if(m|0){j=m;m=h;while(1){o=c;p=f[o+4>>2]|0;q=m;f[q>>2]=f[o>>2];f[q+4>>2]=p;j=j+-1|0;if(!j)break;else m=m+8|0}}if(!l){m=h+(b<<3)|0;if((m|0)==(n|0))return;else{r=i;s=n+(~((n+-8-m|0)>>>3)<<3)|0;break}}else{m=b-k|0;j=m;p=n;while(1){q=c;o=f[q+4>>2]|0;t=p;f[t>>2]=f[q>>2];f[t+4>>2]=o;j=j+-1|0;if(!j)break;else p=p+8|0}r=i;s=n+(m<<3)|0;break}}else{p=g;if(!g)u=e;else{j=a+4|0;k=f[j>>2]|0;if((k|0)!=(h|0))f[j>>2]=k+(~((k+-8-g|0)>>>3)<<3);Oq(p);f[d>>2]=0;f[j>>2]=0;f[a>>2]=0;u=0}if(b>>>0>536870911)aq(a);j=u>>2;p=u>>3>>>0<268435455?(j>>>0<b>>>0?b:j):536870911;if(p>>>0>536870911)aq(a);j=ln(p<<3)|0;k=a+4|0;f[k>>2]=j;f[a>>2]=j;f[d>>2]=j+(p<<3);p=b;l=j;while(1){o=c;t=f[o+4>>2]|0;q=l;f[q>>2]=f[o>>2];f[q+4>>2]=t;p=p+-1|0;if(!p)break;else l=l+8|0}r=k;s=j+(b<<3)|0}while(0);f[r>>2]=s;return}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=+$(n[b>>2]);g=+K(+e);h=+$(n[b+4>>2]);i=g+ +K(+h);g=+$(n[b+8>>2]);j=i+ +K(+g);b=j>1.0e-06;i=1.0/j;k=f[a+12>>2]|0;j=+(k|0);l=~~+J(+((b?i*e:1.0)*j+.5));m=~~+J(+((b?i*h:0.0)*j+.5));o=(l|0)>-1;p=k-(o?l:0-l|0)-((m|0)>-1?m:0-m|0)|0;l=(p|0)<0;q=(l?((m|0)>0?p:0-p|0):0)+m|0;m=l?0:p;p=(b?i*g:0.0)<0.0?0-m|0:m;do if(!o){if((q|0)<0)r=(p|0)>-1?p:0-p|0;else r=(f[a+8>>2]|0)-((p|0)>-1?p:0-p|0)|0;if((p|0)<0){s=(q|0)>-1?q:0-q|0;t=r;break}else{s=(f[a+8>>2]|0)-((q|0)>-1?q:0-q|0)|0;t=r;break}}else{s=k+p|0;t=k+q|0}while(0);q=(t|0)==0;p=(s|0)==0;r=f[a+8>>2]|0;if(!(s|t)){u=r;v=r;f[c>>2]=u;f[d>>2]=v;return}a=(r|0)==(s|0);if(q&a){u=s;v=s;f[c>>2]=u;f[d>>2]=v;return}o=(r|0)==(t|0);if(p&o){u=t;v=t;f[c>>2]=u;f[d>>2]=v;return}if(q&(k|0)<(s|0)){u=0;v=(k<<1)-s|0;f[c>>2]=u;f[d>>2]=v;return}if(o&(k|0)>(s|0)){u=t;v=(k<<1)-s|0;f[c>>2]=u;f[d>>2]=v;return}if(a&(k|0)>(t|0)){u=(k<<1)-t|0;v=s;f[c>>2]=u;f[d>>2]=v;return}if(!p){u=t;v=s;f[c>>2]=u;f[d>>2]=v;return}u=(k|0)<(t|0)?(k<<1)-t|0:t;v=0;f[c>>2]=u;f[d>>2]=v;return}function sf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+32|0;h=g+12|0;i=g;f[a>>2]=f[d>>2];d=a+4|0;f[d>>2]=(f[c>>2]|0)-(f[b>>2]|0);j=e+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)?(k=e+4|0,f[i>>2]=f[k>>2],f[h>>2]=f[i>>2],Me(e,h,a,a+4|0)|0,l=j,j=f[l+4>>2]|0,!((j|0)>0|(j|0)==0&(f[l>>2]|0)>>>0>0)):0){f[i>>2]=f[k>>2];f[h>>2]=f[i>>2];Me(e,h,d,d+4|0)|0;m=i}else m=i;if(!(f[d>>2]|0)){u=g;return 1}d=a+12|0;Gg(d);m=a+1068|0;Mm(m);k=a+1088|0;Mm(k);l=a+1108|0;Mm(l);f[i>>2]=f[b>>2];f[i+4>>2]=f[b+4>>2];f[i+8>>2]=f[b+8>>2];f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];ib(a,i,h);Ye(d,e);Bg(m,e);Bg(k,e);Bg(l,e);u=g;return 1}function tf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+32|0;h=g+12|0;i=g;f[a>>2]=f[d>>2];d=a+4|0;f[d>>2]=(f[c>>2]|0)-(f[b>>2]|0);j=e+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)?(k=e+4|0,f[i>>2]=f[k>>2],f[h>>2]=f[i>>2],Me(e,h,a,a+4|0)|0,l=j,j=f[l+4>>2]|0,!((j|0)>0|(j|0)==0&(f[l>>2]|0)>>>0>0)):0){f[i>>2]=f[k>>2];f[h>>2]=f[i>>2];Me(e,h,d,d+4|0)|0;m=i}else m=i;if(!(f[d>>2]|0)){u=g;return 1}d=a+12|0;Gg(d);m=a+1068|0;Mm(m);k=a+1088|0;Mm(k);l=a+1108|0;Mm(l);f[i>>2]=f[b>>2];f[i+4>>2]=f[b+4>>2];f[i+8>>2]=f[b+8>>2];f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];kb(a,i,h);Ye(d,e);Bg(m,e);Bg(k,e);Bg(l,e);u=g;return 1}function uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;c=u;u=u+32|0;d=c;e=a+8|0;g=f[e>>2]|0;h=a+4|0;i=f[h>>2]|0;j=i;if(g-i>>2>>>0>=b>>>0){sj(i|0,0,b<<2|0)|0;f[h>>2]=i+(b<<2);u=c;return}k=f[a>>2]|0;l=i-k>>2;m=l+b|0;n=k;if(m>>>0>1073741823)aq(a);o=g-k|0;p=o>>1;q=o>>2>>>0<536870911?(p>>>0<m>>>0?m:p):1073741823;f[d+12>>2]=0;f[d+16>>2]=a+8;do if(q)if(q>>>0>1073741823){p=ra(8)|0;Oo(p,16035);f[p>>2]=7256;va(p|0,1112,110)}else{r=ln(q<<2)|0;break}else r=0;while(0);f[d>>2]=r;p=r+(l<<2)|0;l=d+8|0;m=d+4|0;f[m>>2]=p;o=r+(q<<2)|0;q=d+12|0;f[q>>2]=o;r=p+(b<<2)|0;sj(p|0,0,b<<2|0)|0;f[l>>2]=r;if((j|0)==(n|0)){s=p;t=q;v=l;w=k;x=r;y=i;z=o;A=g}else{g=j;j=p;do{g=g+-4|0;p=f[g>>2]|0;f[g>>2]=0;f[j+-4>>2]=p;j=(f[m>>2]|0)+-4|0;f[m>>2]=j}while((g|0)!=(n|0));s=j;t=q;v=l;w=f[a>>2]|0;x=f[l>>2]|0;y=f[h>>2]|0;z=f[q>>2]|0;A=f[e>>2]|0}f[a>>2]=s;f[m>>2]=w;f[h>>2]=x;f[v>>2]=y;f[e>>2]=z;f[t>>2]=A;f[d>>2]=w;ki(d);u=c;return}function vf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=f[a+8>>2]|0;e=a+76|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[j>>2]|0;l=f[i>>2]|0;m=k-l>>2;n=l;l=k;if(h>>>0<=m>>>0)if(h>>>0<m>>>0?(k=n+(h<<2)|0,(k|0)!=(l|0)):0){f[j>>2]=l+(~((l+-4-k|0)>>>2)<<2);o=g;p=h}else{o=g;p=h}else{Ch(i,h-m|0,3600);m=f[e>>2]|0;o=m;p=f[m+80>>2]|0}m=(f[o+100>>2]|0)-(f[o+96>>2]|0)|0;e=(m|0)/12|0;if(!m){q=1;return q|0}m=a+80|0;a=c+68|0;c=f[o+96>>2]|0;o=0;while(1){h=o*3|0;if((h|0)==-1)r=-1;else r=f[(f[d>>2]|0)+(h<<2)>>2]|0;i=f[(f[m>>2]|0)+12>>2]|0;g=f[i+(r<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}k=f[a>>2]|0;f[k+(f[c+(o*12|0)>>2]<<2)>>2]=g;g=h+1|0;if((g|0)==-1)t=-1;else t=f[(f[d>>2]|0)+(g<<2)>>2]|0;g=f[i+(t<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}f[k+(f[c+(o*12|0)+4>>2]<<2)>>2]=g;g=h+2|0;if((g|0)==-1)u=-1;else u=f[(f[d>>2]|0)+(g<<2)>>2]|0;g=f[i+(u<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}f[k+(f[c+(o*12|0)+8>>2]<<2)>>2]=g;o=o+1|0;if(o>>>0>=e>>>0){q=1;s=12;break}}if((s|0)==12)return q|0;return 0}function wf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=f[a+8>>2]|0;e=a+112|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[j>>2]|0;l=f[i>>2]|0;m=k-l>>2;n=l;l=k;if(h>>>0<=m>>>0)if(h>>>0<m>>>0?(k=n+(h<<2)|0,(k|0)!=(l|0)):0){f[j>>2]=l+(~((l+-4-k|0)>>>2)<<2);o=g;p=h}else{o=g;p=h}else{Ch(i,h-m|0,3600);m=f[e>>2]|0;o=m;p=f[m+80>>2]|0}m=(f[o+100>>2]|0)-(f[o+96>>2]|0)|0;e=(m|0)/12|0;if(!m){q=1;return q|0}m=a+116|0;a=c+68|0;c=f[o+96>>2]|0;o=0;while(1){h=o*3|0;if((h|0)==-1)r=-1;else r=f[(f[d>>2]|0)+(h<<2)>>2]|0;i=f[(f[m>>2]|0)+12>>2]|0;g=f[i+(r<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}k=f[a>>2]|0;f[k+(f[c+(o*12|0)>>2]<<2)>>2]=g;g=h+1|0;if((g|0)==-1)t=-1;else t=f[(f[d>>2]|0)+(g<<2)>>2]|0;g=f[i+(t<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}f[k+(f[c+(o*12|0)+4>>2]<<2)>>2]=g;g=h+2|0;if((g|0)==-1)u=-1;else u=f[(f[d>>2]|0)+(g<<2)>>2]|0;g=f[i+(u<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}f[k+(f[c+(o*12|0)+8>>2]<<2)>>2]=g;o=o+1|0;if(o>>>0>=e>>>0){q=1;s=12;break}}if((s|0)==12)return q|0;return 0}function xf(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=u;u=u+16|0;h=d;i=f[a+124>>2]|0;if(!i){u=d;return}j=i+-1|0;k=(j&i|0)==0;if(!k)if(i>>>0>g>>>0)l=g;else l=(g>>>0)%(i>>>0)|0;else l=j&g;m=f[(f[a+120>>2]|0)+(l<<2)>>2]|0;if(!m){u=d;return}n=f[m>>2]|0;if(!n){u=d;return}a:do if(k){m=n;while(1){o=f[m+4>>2]|0;p=(o|0)==(g|0);if(!(p|(o&j|0)==(l|0))){q=24;break}if(p?(f[m+8>>2]|0)==(g|0):0){r=m;break a}m=f[m>>2]|0;if(!m){q=24;break}}if((q|0)==24){u=d;return}}else{m=n;while(1){p=f[m+4>>2]|0;if((p|0)==(g|0)){if((f[m+8>>2]|0)==(g|0)){r=m;break a}}else{if(p>>>0<i>>>0)s=p;else s=(p>>>0)%(i>>>0)|0;if((s|0)!=(l|0)){q=24;break}}m=f[m>>2]|0;if(!m){q=24;break}}if((q|0)==24){u=d;return}}while(0);q=f[r+12>>2]|0;if((q|0)==-1){u=d;return}f[h>>2]=q;f[h+4>>2]=c;b[h+8>>0]=e&1;e=a+112|0;c=f[e>>2]|0;if((c|0)==(f[a+116>>2]|0))yi(a+108|0,h);else{f[c>>2]=f[h>>2];f[c+4>>2]=f[h+4>>2];f[c+8>>2]=f[h+8>>2];f[e>>2]=(f[e>>2]|0)+12}u=d;return}function yf(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=d[b>>1]|0;e=d[b+2>>1]|0;g=d[b+4>>1]|0;h=d[b+6>>1]|0;b=((((c^318)&65535)+239^e&65535)+239^g&65535)+239^h&65535;i=f[a+4>>2]|0;if(!i){j=0;return j|0}k=i+-1|0;l=(k&i|0)==0;if(!l)if(b>>>0<i>>>0)m=b;else m=(b>>>0)%(i>>>0)|0;else m=b&k;n=f[(f[a>>2]|0)+(m<<2)>>2]|0;if(!n){j=0;return j|0}a=f[n>>2]|0;if(!a){j=0;return j|0}if(l){l=a;while(1){n=f[l+4>>2]|0;o=(n|0)==(b|0);if(!(o|(n&k|0)==(m|0))){j=0;p=25;break}if((((o?(o=l+8|0,(d[o>>1]|0)==c<<16>>16):0)?(d[o+2>>1]|0)==e<<16>>16:0)?(d[l+12>>1]|0)==g<<16>>16:0)?(d[o+6>>1]|0)==h<<16>>16:0){j=l;p=25;break}l=f[l>>2]|0;if(!l){j=0;p=25;break}}if((p|0)==25)return j|0}else q=a;while(1){a=f[q+4>>2]|0;if((a|0)==(b|0)){l=q+8|0;if((((d[l>>1]|0)==c<<16>>16?(d[l+2>>1]|0)==e<<16>>16:0)?(d[q+12>>1]|0)==g<<16>>16:0)?(d[l+6>>1]|0)==h<<16>>16:0){j=q;p=25;break}}else{if(a>>>0<i>>>0)r=a;else r=(a>>>0)%(i>>>0)|0;if((r|0)!=(m|0)){j=0;p=25;break}}q=f[q>>2]|0;if(!q){j=0;p=25;break}}if((p|0)==25)return j|0;return 0}function zf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+32|0;h=g+12|0;i=g;f[a>>2]=f[d>>2];d=a+4|0;f[d>>2]=(f[c>>2]|0)-(f[b>>2]|0);j=e+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)?(k=e+4|0,f[i>>2]=f[k>>2],f[h>>2]=f[i>>2],Me(e,h,a,a+4|0)|0,l=j,j=f[l+4>>2]|0,!((j|0)>0|(j|0)==0&(f[l>>2]|0)>>>0>0)):0){f[i>>2]=f[k>>2];f[h>>2]=f[i>>2];Me(e,h,d,d+4|0)|0;m=i}else m=i;if(!(f[d>>2]|0)){u=g;return 1}d=a+12|0;Mm(d);m=a+32|0;Mm(m);k=a+52|0;Mm(k);l=a+72|0;Mm(l);f[i>>2]=f[b>>2];f[i+4>>2]=f[b+4>>2];f[i+8>>2]=f[b+8>>2];f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];hb(a,i,h);Bg(d,e);Bg(m,e);Bg(k,e);Bg(l,e);u=g;return 1}function Af(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+32|0;h=g+12|0;i=g;f[a>>2]=f[d>>2];d=a+4|0;f[d>>2]=(f[c>>2]|0)-(f[b>>2]|0);j=e+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)?(k=e+4|0,f[i>>2]=f[k>>2],f[h>>2]=f[i>>2],Me(e,h,a,a+4|0)|0,l=j,j=f[l+4>>2]|0,!((j|0)>0|(j|0)==0&(f[l>>2]|0)>>>0>0)):0){f[i>>2]=f[k>>2];f[h>>2]=f[i>>2];Me(e,h,d,d+4|0)|0;m=i}else m=i;if(!(f[d>>2]|0)){u=g;return 1}d=a+12|0;tk(d);m=a+44|0;Mm(m);k=a+64|0;Mm(k);l=a+84|0;Mm(l);f[i>>2]=f[b>>2];f[i+4>>2]=f[b+4>>2];f[i+8>>2]=f[b+8>>2];f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];lb(a,i,h);ld(d,e);Bg(m,e);Bg(k,e);Bg(l,e);u=g;return 1}function Bf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;a=u;u=u+16|0;e=a+4|0;g=a;h=a+8|0;i=d+11|0;j=b[i>>0]|0;k=j<<24>>24<0;if(k){l=f[d+4>>2]|0;if(l>>>0>255){m=0;u=a;return m|0}else n=l}else n=j&255;if(!n){b[h>>0]=0;n=c+16|0;l=f[n+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[n>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}m=1;u=a;return m|0}n=d+4|0;l=f[n>>2]|0;b[h>>0]=k?l:j&255;k=c+16|0;o=k;p=f[o>>2]|0;q=f[o+4>>2]|0;if((q|0)>0|(q|0)==0&p>>>0>0){r=j;s=q;t=p;v=l}else{f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0;h=k;r=b[i>>0]|0;s=f[h+4>>2]|0;t=f[h>>2]|0;v=f[n>>2]|0}n=r<<24>>24<0;h=n?f[d>>2]|0:d;if(!((s|0)>0|(s|0)==0&t>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+(n?v:r&255)|0)|0}m=1;u=a;return m|0}function Cf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=a+4|0;d=f[a>>2]|0;e=((f[c>>2]|0)-d|0)/24|0;g=e+1|0;if(g>>>0>178956970)aq(a);h=a+8|0;i=((f[h>>2]|0)-d|0)/24|0;d=i<<1;j=i>>>0<89478485?(d>>>0<g>>>0?g:d):178956970;do if(j)if(j>>>0>178956970){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{k=ln(j*24|0)|0;break}else k=0;while(0);d=k+(e*24|0)|0;g=d;i=k+(j*24|0)|0;f[d>>2]=1196;f[k+(e*24|0)+4>>2]=f[b+4>>2];fk(k+(e*24|0)+8|0,b+8|0);f[k+(e*24|0)+20>>2]=f[b+20>>2];b=d+24|0;e=f[a>>2]|0;k=f[c>>2]|0;if((k|0)==(e|0)){l=g;m=e;n=e}else{j=k;k=g;g=d;do{f[g+-24>>2]=1196;f[g+-20>>2]=f[j+-20>>2];d=g+-16|0;o=j+-16|0;f[d>>2]=0;p=g+-12|0;f[p>>2]=0;f[g+-8>>2]=0;f[d>>2]=f[o>>2];d=j+-12|0;f[p>>2]=f[d>>2];p=j+-8|0;f[g+-8>>2]=f[p>>2];f[p>>2]=0;f[d>>2]=0;f[o>>2]=0;f[g+-4>>2]=f[j+-4>>2];j=j+-24|0;g=k+-24|0;k=g}while((j|0)!=(e|0));l=k;m=f[a>>2]|0;n=f[c>>2]|0}f[a>>2]=l;f[c>>2]=b;f[h>>2]=i;i=m;if((n|0)!=(i|0)){h=n;do{h=h+-24|0;Va[f[f[h>>2]>>2]&127](h)}while((h|0)!=(i|0))}if(!m)return;Oq(m);return}function Df(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+32|0;d=c+24|0;e=c+16|0;g=c+8|0;h=c;f[a>>2]=3588;f[a+4>>2]=f[b+4>>2];i=a+8|0;j=b+8|0;f[i>>2]=0;k=a+12|0;f[k>>2]=0;l=a+16|0;f[l>>2]=0;m=b+12|0;n=f[m>>2]|0;do if(n|0)if((n|0)<0)aq(i);else{o=((n+-1|0)>>>5)+1|0;p=ln(o<<2)|0;f[i>>2]=p;f[k>>2]=0;f[l>>2]=o;o=f[j>>2]|0;f[g>>2]=o;f[g+4>>2]=0;p=f[m>>2]|0;f[h>>2]=o+(p>>>5<<2);f[h+4>>2]=p&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];Tf(i,e,d);break}while(0);i=a+20|0;f[i>>2]=0;m=a+24|0;f[m>>2]=0;j=a+28|0;f[j>>2]=0;a=b+24|0;l=f[a>>2]|0;if(!l){u=c;return}if((l|0)<0)aq(i);k=((l+-1|0)>>>5)+1|0;l=ln(k<<2)|0;f[i>>2]=l;f[m>>2]=0;f[j>>2]=k;k=f[b+20>>2]|0;f[g>>2]=k;f[g+4>>2]=0;b=f[a>>2]|0;f[h>>2]=k+(b>>>5<<2);f[h+4>>2]=b&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];Tf(i,e,d);u=c;return}function Ef(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=b[c>>0]|0;e=b[c+1>>0]|0;g=b[c+2>>0]|0;h=b[c+3>>0]|0;c=(((d&255^318)+239^e&255)+239^g&255)+239^h&255;i=f[a+4>>2]|0;if(!i){j=0;return j|0}k=i+-1|0;l=(k&i|0)==0;if(!l)if(c>>>0<i>>>0)m=c;else m=(c>>>0)%(i>>>0)|0;else m=c&k;n=f[(f[a>>2]|0)+(m<<2)>>2]|0;if(!n){j=0;return j|0}a=f[n>>2]|0;if(!a){j=0;return j|0}if(l){l=a;while(1){n=f[l+4>>2]|0;o=(n|0)==(c|0);if(!(o|(n&k|0)==(m|0))){j=0;p=25;break}if((((o?(o=l+8|0,(b[o>>0]|0)==d<<24>>24):0)?(b[o+1>>0]|0)==e<<24>>24:0)?(b[o+2>>0]|0)==g<<24>>24:0)?(b[o+3>>0]|0)==h<<24>>24:0){j=l;p=25;break}l=f[l>>2]|0;if(!l){j=0;p=25;break}}if((p|0)==25)return j|0}else q=a;while(1){a=f[q+4>>2]|0;if((a|0)==(c|0)){l=q+8|0;if((((b[l>>0]|0)==d<<24>>24?(b[l+1>>0]|0)==e<<24>>24:0)?(b[l+2>>0]|0)==g<<24>>24:0)?(b[l+3>>0]|0)==h<<24>>24:0){j=q;p=25;break}}else{if(a>>>0<i>>>0)r=a;else r=(a>>>0)%(i>>>0)|0;if((r|0)!=(m|0)){j=0;p=25;break}}q=f[q>>2]|0;if(!q){j=0;p=25;break}}if((p|0)==25)return j|0;return 0}function Ff(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+32|0;d=c+24|0;e=c+16|0;g=c+8|0;h=c;f[a>>2]=3636;f[a+4>>2]=f[b+4>>2];i=a+8|0;j=b+8|0;f[i>>2]=0;k=a+12|0;f[k>>2]=0;l=a+16|0;f[l>>2]=0;m=b+12|0;n=f[m>>2]|0;do if(n|0)if((n|0)<0)aq(i);else{o=((n+-1|0)>>>5)+1|0;p=ln(o<<2)|0;f[i>>2]=p;f[k>>2]=0;f[l>>2]=o;o=f[j>>2]|0;f[g>>2]=o;f[g+4>>2]=0;p=f[m>>2]|0;f[h>>2]=o+(p>>>5<<2);f[h+4>>2]=p&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];Tf(i,e,d);break}while(0);i=a+20|0;f[i>>2]=0;m=a+24|0;f[m>>2]=0;j=a+28|0;f[j>>2]=0;a=b+24|0;l=f[a>>2]|0;if(!l){u=c;return}if((l|0)<0)aq(i);k=((l+-1|0)>>>5)+1|0;l=ln(k<<2)|0;f[i>>2]=l;f[m>>2]=0;f[j>>2]=k;k=f[b+20>>2]|0;f[g>>2]=k;f[g+4>>2]=0;b=f[a>>2]|0;f[h>>2]=k+(b>>>5<<2);f[h+4>>2]=b&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];Tf(i,e,d);u=c;return}function Gf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+32|0;h=d+24|0;i=d+16|0;j=d;k=d+8|0;l=a+40|0;f[a+44>>2]=g;g=a+36|0;m=f[g>>2]|0;n=f[m+4>>2]|0;o=f[m>>2]|0;p=n-o|0;if((p|0)<=0){u=d;return 1}q=(p>>>2)+-1|0;p=a+8|0;r=a+48|0;s=a+52|0;a=i+4|0;t=j+4|0;v=h+4|0;if(n-o>>2>>>0>q>>>0){w=q;x=o}else{y=m;aq(y)}while(1){f[k>>2]=f[x+(w<<2)>>2];f[h>>2]=f[k>>2];ub(l,h,b,w);m=X(w,e)|0;o=b+(m<<2)|0;q=c+(m<<2)|0;m=f[o+4>>2]|0;n=f[r>>2]|0;z=f[s>>2]|0;f[i>>2]=f[o>>2];f[a>>2]=m;f[j>>2]=n;f[t>>2]=z;Od(h,p,i,j);f[q>>2]=f[h>>2];f[q+4>>2]=f[v>>2];w=w+-1|0;if((w|0)<=-1){A=3;break}q=f[g>>2]|0;x=f[q>>2]|0;if((f[q+4>>2]|0)-x>>2>>>0<=w>>>0){y=q;A=4;break}}if((A|0)==3){u=d;return 1}else if((A|0)==4)aq(y);return 0}function Hf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=u;u=u+32|0;i=h;j=h+16|0;k=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;do if((c+-1|0)>>>0<6&(Qa[f[(f[b>>2]|0)+8>>2]&127](b)|0)==1){l=Qa[f[(f[b>>2]|0)+48>>2]&127](b)|0;m=Ra[f[(f[b>>2]|0)+56>>2]&127](b,d)|0;if((l|0)==0|(m|0)==0){f[a>>2]=0;u=h;return}n=Ra[f[(f[b>>2]|0)+52>>2]&127](b,d)|0;if(!n){f[i>>2]=f[b+52>>2];f[i+4>>2]=l;f[i+12>>2]=m;f[i+8>>2]=m+12;Cd(a,j,c,k,e,i,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}else{f[i>>2]=f[b+52>>2];f[i+4>>2]=n;f[i+12>>2]=m;f[i+8>>2]=m+12;Ad(a,j,c,k,e,i,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}}while(0);f[a>>2]=0;u=h;return}function If(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+32|0;h=d+24|0;i=d+16|0;j=d;k=d+8|0;l=a+40|0;f[a+44>>2]=g;g=a+36|0;m=f[g>>2]|0;n=f[m+4>>2]|0;o=f[m>>2]|0;p=n-o|0;if((p|0)<=0){u=d;return 1}q=(p>>>2)+-1|0;p=a+8|0;r=a+48|0;s=a+52|0;a=i+4|0;t=j+4|0;v=h+4|0;if(n-o>>2>>>0>q>>>0){w=q;x=o}else{y=m;aq(y)}while(1){f[k>>2]=f[x+(w<<2)>>2];f[h>>2]=f[k>>2];tb(l,h,b,w);m=X(w,e)|0;o=b+(m<<2)|0;q=c+(m<<2)|0;m=f[o+4>>2]|0;n=f[r>>2]|0;z=f[s>>2]|0;f[i>>2]=f[o>>2];f[a>>2]=m;f[j>>2]=n;f[t>>2]=z;Od(h,p,i,j);f[q>>2]=f[h>>2];f[q+4>>2]=f[v>>2];w=w+-1|0;if((w|0)<=-1){A=3;break}q=f[g>>2]|0;x=f[q>>2]|0;if((f[q+4>>2]|0)-x>>2>>>0<=w>>>0){y=q;A=4;break}}if((A|0)==3){u=d;return 1}else if((A|0)==4)aq(y);return 0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=f[b>>2]|0;b=f[c>>2]|0;e=b-d>>2;g=a+8|0;h=f[g>>2]|0;i=f[a>>2]|0;j=i;k=b;if(e>>>0<=h-i>>2>>>0){l=a+4|0;m=(f[l>>2]|0)-i>>2;n=e>>>0>m>>>0;o=n?d+(m<<2)|0:b;b=o-d|0;m=b>>2;if(m|0)im(i|0,d|0,b|0)|0;b=j+(m<<2)|0;if(!n){n=f[l>>2]|0;if((n|0)==(b|0))return;f[l>>2]=n+(~((n+-4-b|0)>>>2)<<2);return}b=f[c>>2]|0;c=o;if((b|0)==(c|0))return;n=f[l>>2]|0;m=b+-4-o|0;o=c;c=n;while(1){f[c>>2]=f[o>>2];o=o+4|0;if((o|0)==(b|0))break;else c=c+4|0}f[l>>2]=n+((m>>>2)+1<<2);return}m=i;if(!i)p=h;else{h=a+4|0;n=f[h>>2]|0;if((n|0)!=(j|0))f[h>>2]=n+(~((n+-4-i|0)>>>2)<<2);Oq(m);f[g>>2]=0;f[h>>2]=0;f[a>>2]=0;p=0}if(e>>>0>1073741823)aq(a);h=p>>1;m=p>>2>>>0<536870911?(h>>>0<e>>>0?e:h):1073741823;if(m>>>0>1073741823)aq(a);h=ln(m<<2)|0;e=a+4|0;f[e>>2]=h;f[a>>2]=h;f[g>>2]=h+(m<<2);m=d;if((k|0)==(m|0))return;g=k+-4-d|0;d=m;m=h;while(1){f[m>>2]=f[d>>2];d=d+4|0;if((d|0)==(k|0))break;else m=m+4|0}f[e>>2]=h+((g>>>2)+1<<2);return}function Kf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(((d-g|0)/12|0)>>>0>=b>>>0){sj(g|0,0,b*12|0)|0;f[e>>2]=h+(b*12|0);return}i=f[a>>2]|0;j=(g-i|0)/12|0;g=j+b|0;k=i;if(g>>>0>357913941)aq(a);l=(d-i|0)/12|0;d=l<<1;m=l>>>0<178956970?(d>>>0<g>>>0?g:d):357913941;do if(m)if(m>>>0>357913941){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{n=ln(m*12|0)|0;break}else n=0;while(0);d=n+(j*12|0)|0;j=d;g=n+(m*12|0)|0;sj(d|0,0,b*12|0)|0;m=d+(b*12|0)|0;if((h|0)==(k|0)){o=j;p=i;q=h}else{i=h;h=j;j=d;do{d=j+-12|0;b=i;i=i+-12|0;f[d>>2]=0;n=j+-8|0;f[n>>2]=0;f[j+-4>>2]=0;f[d>>2]=f[i>>2];d=b+-8|0;f[n>>2]=f[d>>2];n=b+-4|0;f[j+-4>>2]=f[n>>2];f[n>>2]=0;f[d>>2]=0;f[i>>2]=0;j=h+-12|0;h=j}while((i|0)!=(k|0));o=h;p=f[a>>2]|0;q=f[e>>2]|0}f[a>>2]=o;f[e>>2]=m;f[c>>2]=g;g=p;if((q|0)!=(g|0)){c=q;do{q=c;c=c+-12|0;m=f[c>>2]|0;if(m|0){e=q+-8|0;q=f[e>>2]|0;if((q|0)!=(m|0))f[e>>2]=q+(~((q+-4-m|0)>>>2)<<2);Oq(m)}}while((c|0)!=(g|0))}if(!p)return;Oq(p);return}function Lf(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;gk(f[a+4>>2]|0,(f[g+28>>2]|0)-(f[g+24>>2]|0)>>2);g=a+100|0;h=f[e>>2]|0;i=(f[h+28>>2]|0)-(f[h+24>>2]|0)>>2;f[c>>2]=0;h=a+104|0;j=f[h>>2]|0;k=f[g>>2]|0;l=j-k>>2;m=k;k=j;if(i>>>0<=l>>>0){if(i>>>0<l>>>0?(j=m+(i<<2)|0,(j|0)!=(k|0)):0)f[h>>2]=k+(~((k+-4-j|0)>>>2)<<2)}else Ch(g,i-l|0,c);l=a+120|0;a=f[l>>2]|0;if(!a){i=f[e>>2]|0;g=(f[i+4>>2]|0)-(f[i>>2]|0)>>2;i=(g>>>0)/3|0;if(g>>>0<=2){u=b;return 1}g=0;do{f[d>>2]=g*3;f[c>>2]=f[d>>2];wb(e,c);g=g+1|0}while((g|0)<(i|0));u=b;return 1}else{i=f[a>>2]|0;if((f[a+4>>2]|0)==(i|0)){u=b;return 1}a=0;g=i;do{f[d>>2]=f[g+(a<<2)>>2];f[c>>2]=f[d>>2];wb(e,c);a=a+1|0;i=f[l>>2]|0;g=f[i>>2]|0}while(a>>>0<(f[i+4>>2]|0)-g>>2>>>0);u=b;return 1}return 0}function Mf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-4194304|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-4177920|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+4194304|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1077936128|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Nf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-2097152|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-2080768|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+6291456|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1075838976|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Of(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-1048576|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1032192|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+7340032|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1074790400|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Pf(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;a=u;u=u+96|0;j=a;if(!c){k=-1;u=a;return k|0}Tm(j);Jj(j,d,0,g&255,i,0,g<<1,0,0,0);i=jf(c,j,1,e)|0;d=f[(f[c+8>>2]|0)+(i<<2)>>2]|0;if(e|0){l=d+84|0;m=d+68|0;n=d+40|0;o=d+64|0;d=0;do{if(!(b[l>>0]|0))p=f[(f[m>>2]|0)+(d<<2)>>2]|0;else p=d;q=h+((X(d,g)|0)<<1)|0;r=n;s=f[r>>2]|0;t=un(s|0,f[r+4>>2]|0,p|0,0)|0;kh((f[f[o>>2]>>2]|0)+t|0,q|0,s|0)|0;d=d+1|0}while((d|0)!=(e|0))}d=c+80|0;c=f[d>>2]|0;if(c)if((c|0)==(e|0))v=10;else w=-1;else{f[d>>2]=e;v=10}if((v|0)==10)w=i;i=j+88|0;v=f[i>>2]|0;f[i>>2]=0;if(v|0){i=f[v+8>>2]|0;if(i|0){e=v+12|0;if((f[e>>2]|0)!=(i|0))f[e>>2]=i;Oq(i)}Oq(v)}v=f[j+68>>2]|0;if(v|0){i=j+72|0;e=f[i>>2]|0;if((e|0)!=(v|0))f[i>>2]=e+(~((e+-4-v|0)>>>2)<<2);Oq(v)}v=j+64|0;j=f[v>>2]|0;f[v>>2]=0;if(j|0){v=f[j>>2]|0;if(v|0){e=j+4|0;if((f[e>>2]|0)!=(v|0))f[e>>2]=v;Oq(v)}Oq(j)}k=w;u=a;return k|0}function Qf(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;a=u;u=u+96|0;j=a;if(!c){k=-1;u=a;return k|0}Tm(j);Jj(j,d,0,g&255,i,0,g<<2,0,0,0);i=jf(c,j,1,e)|0;d=f[(f[c+8>>2]|0)+(i<<2)>>2]|0;if(e|0){l=d+84|0;m=d+68|0;n=d+40|0;o=d+64|0;d=0;do{if(!(b[l>>0]|0))p=f[(f[m>>2]|0)+(d<<2)>>2]|0;else p=d;q=h+((X(d,g)|0)<<2)|0;r=n;s=f[r>>2]|0;t=un(s|0,f[r+4>>2]|0,p|0,0)|0;kh((f[f[o>>2]>>2]|0)+t|0,q|0,s|0)|0;d=d+1|0}while((d|0)!=(e|0))}d=c+80|0;c=f[d>>2]|0;if(c)if((c|0)==(e|0))v=10;else w=-1;else{f[d>>2]=e;v=10}if((v|0)==10)w=i;i=j+88|0;v=f[i>>2]|0;f[i>>2]=0;if(v|0){i=f[v+8>>2]|0;if(i|0){e=v+12|0;if((f[e>>2]|0)!=(i|0))f[e>>2]=i;Oq(i)}Oq(v)}v=f[j+68>>2]|0;if(v|0){i=j+72|0;e=f[i>>2]|0;if((e|0)!=(v|0))f[i>>2]=e+(~((e+-4-v|0)>>>2)<<2);Oq(v)}v=j+64|0;j=f[v>>2]|0;f[v>>2]=0;if(j|0){v=f[j>>2]|0;if(v|0){e=j+4|0;if((f[e>>2]|0)!=(v|0))f[e>>2]=v;Oq(v)}Oq(j)}k=w;u=a;return k|0}function Rf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-262144|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-245760|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+8126464|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1074003968|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Sf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-131072|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-114688|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+8257536|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1073872896|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;d=u;u=u+48|0;e=d+40|0;g=d+32|0;h=d+8|0;i=d;j=d+24|0;k=d+16|0;l=a+4|0;m=f[l>>2]|0;n=b;b=f[n>>2]|0;o=f[n+4>>2]|0;n=c;c=f[n>>2]|0;p=f[n+4>>2]|0;n=c-b<<3;f[l>>2]=m-o+p+n;l=(f[a>>2]|0)+(m>>>5<<2)|0;a=m&31;m=l;if((a|0)!=(o|0)){q=h;f[q>>2]=b;f[q+4>>2]=o;q=i;f[q>>2]=c;f[q+4>>2]=p;f[j>>2]=m;f[j+4>>2]=a;f[g>>2]=f[h>>2];f[g+4>>2]=f[h+4>>2];f[e>>2]=f[i>>2];f[e+4>>2]=f[i+4>>2];we(k,g,e,j);u=d;return}j=p-o+n|0;n=b;if((j|0)>0){if(!o){r=j;s=0;t=l;v=b;w=n}else{b=32-o|0;p=(j|0)<(b|0)?j:b;e=-1>>>(b-p|0)&-1<<o;f[l>>2]=f[l>>2]&~e|f[n>>2]&e;e=p+o|0;b=n+4|0;r=j-p|0;s=e&31;t=l+(e>>>5<<2)|0;v=b;w=b}b=(r|0)/32|0;im(t|0,v|0,b<<2|0)|0;v=r-(b<<5)|0;r=t+(b<<2)|0;t=r;if((v|0)>0){e=-1>>>(32-v|0);f[r>>2]=f[r>>2]&~e|f[w+(b<<2)>>2]&e;x=v;y=t}else{x=s;y=t}}else{x=o;y=m}f[k>>2]=y;f[k+4>>2]=x;u=d;return}function Uf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-32768|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-16384|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+8355840|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1073774592|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Vf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=f[b>>2]|0;d=f[b+4>>2]|0;e=f[b+8>>2]|0;g=f[b+12>>2]|0;b=(((c^318)+239^d)+239^e)+239^g;h=f[a+4>>2]|0;if(!h){i=0;return i|0}j=h+-1|0;k=(j&h|0)==0;if(!k)if(b>>>0<h>>>0)l=b;else l=(b>>>0)%(h>>>0)|0;else l=b&j;m=f[(f[a>>2]|0)+(l<<2)>>2]|0;if(!m){i=0;return i|0}a=f[m>>2]|0;if(!a){i=0;return i|0}if(k){k=a;while(1){m=f[k+4>>2]|0;n=(m|0)==(b|0);if(!(n|(m&j|0)==(l|0))){i=0;o=25;break}if((((n?(f[k+8>>2]|0)==(c|0):0)?(f[k+12>>2]|0)==(d|0):0)?(f[k+16>>2]|0)==(e|0):0)?(f[k+20>>2]|0)==(g|0):0){i=k;o=25;break}k=f[k>>2]|0;if(!k){i=0;o=25;break}}if((o|0)==25)return i|0}else p=a;while(1){a=f[p+4>>2]|0;if((a|0)==(b|0)){if((((f[p+8>>2]|0)==(c|0)?(f[p+12>>2]|0)==(d|0):0)?(f[p+16>>2]|0)==(e|0):0)?(f[p+20>>2]|0)==(g|0):0){i=p;o=25;break}}else{if(a>>>0<h>>>0)q=a;else q=(a>>>0)%(h>>>0)|0;if((q|0)!=(l|0)){i=0;o=25;break}}p=f[p>>2]|0;if(!p){i=0;o=25;break}}if((o|0)==25)return i|0;return 0}function Wf(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;a=u;u=u+96|0;j=a;if(!c){k=-1;u=a;return k|0}Tm(j);Jj(j,d,0,g&255,i,0,g,0,0,0);i=jf(c,j,1,e)|0;d=f[(f[c+8>>2]|0)+(i<<2)>>2]|0;if(e|0){l=d+84|0;m=d+68|0;n=d+40|0;o=d+64|0;d=0;do{if(!(b[l>>0]|0))p=f[(f[m>>2]|0)+(d<<2)>>2]|0;else p=d;q=h+(X(d,g)|0)|0;r=n;s=f[r>>2]|0;t=un(s|0,f[r+4>>2]|0,p|0,0)|0;kh((f[f[o>>2]>>2]|0)+t|0,q|0,s|0)|0;d=d+1|0}while((d|0)!=(e|0))}d=c+80|0;c=f[d>>2]|0;if(c)if((c|0)==(e|0))v=10;else w=-1;else{f[d>>2]=e;v=10}if((v|0)==10)w=i;i=j+88|0;v=f[i>>2]|0;f[i>>2]=0;if(v|0){i=f[v+8>>2]|0;if(i|0){e=v+12|0;if((f[e>>2]|0)!=(i|0))f[e>>2]=i;Oq(i)}Oq(v)}v=f[j+68>>2]|0;if(v|0){i=j+72|0;e=f[i>>2]|0;if((e|0)!=(v|0))f[i>>2]=e+(~((e+-4-v|0)>>>2)<<2);Oq(v)}v=j+64|0;j=f[v>>2]|0;f[v>>2]=0;if(j|0){v=f[j>>2]|0;if(v|0){e=j+4|0;if((f[e>>2]|0)!=(v|0))f[e>>2]=v;Oq(v)}Oq(j)}k=w;u=a;return k|0}function Xf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=u;u=u+32|0;i=h;j=h+16|0;k=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;do if((c+-1|0)>>>0<6&(Qa[f[(f[b>>2]|0)+8>>2]&127](b)|0)==1){l=Qa[f[(f[b>>2]|0)+48>>2]&127](b)|0;m=Ra[f[(f[b>>2]|0)+56>>2]&127](b,d)|0;if((l|0)==0|(m|0)==0){f[a>>2]=0;u=h;return}n=Ra[f[(f[b>>2]|0)+52>>2]&127](b,d)|0;if(!n){f[i>>2]=f[b+52>>2];f[i+4>>2]=l;f[i+12>>2]=m;f[i+8>>2]=m+12;qd(a,j,c,k,e,i,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}else{f[i>>2]=f[b+52>>2];f[i+4>>2]=n;f[i+12>>2]=m;f[i+8>>2]=m+12;pd(a,j,c,k,e,i,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}}while(0);f[a>>2]=0;u=h;return}function Yf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=f[d>>2]|0;g=f[d+4>>2]|0;if((e|0)==(g|0)){h=0;i=a+12|0;j=a+8|0}else{d=f[c>>2]|0;c=a+8|0;k=a+12|0;a=0;l=e;while(1){e=f[l>>2]|0;m=f[d+(e<<2)>>2]|0;if(m>>>0<a>>>0)n=a;else{o=f[c>>2]|0;p=(f[k>>2]|0)-o|0;q=o;if((p|0)>0){o=p>>>2;p=0;do{r=f[q+(p<<2)>>2]|0;s=f[r+68>>2]|0;if(!(b[r+84>>0]|0))t=f[s+(e<<2)>>2]|0;else t=e;f[s+(m<<2)>>2]=t;p=p+1|0}while((p|0)<(o|0))}n=m+1|0}l=l+4|0;if((l|0)==(g|0)){h=n;i=k;j=c;break}else a=n}}n=f[i>>2]|0;a=f[j>>2]|0;if((n-a|0)>0){u=0;v=a;w=n}else return;while(1){n=f[v+(u<<2)>>2]|0;b[n+84>>0]=0;a=n+68|0;c=n+72|0;n=f[c>>2]|0;k=f[a>>2]|0;g=n-k>>2;l=k;k=n;if(h>>>0<=g>>>0)if(h>>>0<g>>>0?(n=l+(h<<2)|0,(n|0)!=(k|0)):0){f[c>>2]=k+(~((k+-4-n|0)>>>2)<<2);x=v;y=w}else{x=v;y=w}else{Ch(a,h-g|0,6220);x=f[j>>2]|0;y=f[i>>2]|0}u=u+1|0;if((u|0)>=(y-x>>2|0))break;else{v=x;w=y}}return}function Zf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=b;e=c-d>>2;g=a+8|0;h=f[g>>2]|0;i=f[a>>2]|0;j=i;if(e>>>0<=h-i>>2>>>0){k=a+4|0;l=(f[k>>2]|0)-i>>2;m=e>>>0>l>>>0;n=b+(l<<2)|0;l=m?n:c;o=l;p=o-d|0;q=p>>2;if(q|0)im(i|0,b|0,p|0)|0;p=j+(q<<2)|0;if(!m){m=f[k>>2]|0;if((m|0)==(p|0))return;f[k>>2]=m+(~((m+-4-p|0)>>>2)<<2);return}if((l|0)==(c|0))return;l=f[k>>2]|0;p=((c+-4-o|0)>>>2)+1|0;o=n;n=l;while(1){f[n>>2]=f[o>>2];o=o+4|0;if((o|0)==(c|0))break;else n=n+4|0}f[k>>2]=l+(p<<2);return}p=i;if(!i)r=h;else{h=a+4|0;l=f[h>>2]|0;if((l|0)!=(j|0))f[h>>2]=l+(~((l+-4-i|0)>>>2)<<2);Oq(p);f[g>>2]=0;f[h>>2]=0;f[a>>2]=0;r=0}if(e>>>0>1073741823)aq(a);h=r>>1;p=r>>2>>>0<536870911?(h>>>0<e>>>0?e:h):1073741823;if(p>>>0>1073741823)aq(a);h=ln(p<<2)|0;e=a+4|0;f[e>>2]=h;f[a>>2]=h;f[g>>2]=h+(p<<2);if((b|0)==(c|0))return;p=((c+-4-d|0)>>>2)+1|0;d=b;b=h;while(1){f[b>>2]=f[d>>2];d=d+4|0;if((d|0)==(c|0))break;else b=b+4|0}f[e>>2]=h+(p<<2);return}function _f(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-16384|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;b[m>>0]=j;b[m+1>>0]=j>>>8;n=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;o=j+8372224|0;b[m>>0]=o;b[m+1>>0]=o>>>8;b[m+2>>0]=o>>>16;n=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;o=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+-1073758208|0;b[o>>0]=m;b[o+1>>0]=m>>>8;b[o+2>>0]=m>>>16;b[o+3>>0]=m>>>24;n=(f[l>>2]|0)+4|0;break}else{n=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;n=(f[l>>2]|0)+1|0}while(0);k=((n|0)<0)<<31>>31;Gn(e);yh(n,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,n|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,n|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function $f(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=b;e=c-d>>2;g=a+8|0;h=f[g>>2]|0;i=f[a>>2]|0;j=i;if(e>>>0<=h-i>>2>>>0){k=a+4|0;l=(f[k>>2]|0)-i>>2;m=e>>>0>l>>>0;n=b+(l<<2)|0;l=m?n:c;o=l;p=o-d|0;q=p>>2;if(q|0)im(i|0,b|0,p|0)|0;p=j+(q<<2)|0;if(!m){m=f[k>>2]|0;if((m|0)==(p|0))return;f[k>>2]=m+(~((m+-4-p|0)>>>2)<<2);return}if((l|0)==(c|0))return;l=f[k>>2]|0;p=c+-4-o|0;o=n;n=l;while(1){f[n>>2]=f[o>>2];o=o+4|0;if((o|0)==(c|0))break;else n=n+4|0}f[k>>2]=l+((p>>>2)+1<<2);return}p=i;if(!i)r=h;else{h=a+4|0;l=f[h>>2]|0;if((l|0)!=(j|0))f[h>>2]=l+(~((l+-4-i|0)>>>2)<<2);Oq(p);f[g>>2]=0;f[h>>2]=0;f[a>>2]=0;r=0}if(e>>>0>1073741823)aq(a);h=r>>1;p=r>>2>>>0<536870911?(h>>>0<e>>>0?e:h):1073741823;if(p>>>0>1073741823)aq(a);h=ln(p<<2)|0;e=a+4|0;f[e>>2]=h;f[a>>2]=h;f[g>>2]=h+(p<<2);if((b|0)==(c|0))return;p=c+-4-d|0;d=b;b=h;while(1){f[b>>2]=f[d>>2];d=d+4|0;if((d|0)==(c|0))break;else b=b+4|0}f[e>>2]=h+((p>>>2)+1<<2);return}function ag(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;g=u;u=u+80|0;h=g;i=g+64|0;Il(h);j=f[(f[a+8>>2]|0)+56>>2]|0;k=X(Vl(5)|0,d)|0;Jj(h,j,0,d&255,5,0,k,((k|0)<0)<<31>>31,0,0);k=ln(96)|0;tl(k,h);Bj(k,c)|0;f[i>>2]=k;gj(a,i);k=f[i>>2]|0;f[i>>2]=0;if(k|0){i=k+88|0;c=f[i>>2]|0;f[i>>2]=0;if(c|0){i=f[c+8>>2]|0;if(i|0){h=c+12|0;if((f[h>>2]|0)!=(i|0))f[h>>2]=i;Oq(i)}Oq(c)}c=f[k+68>>2]|0;if(c|0){i=k+72|0;h=f[i>>2]|0;if((h|0)!=(c|0))f[i>>2]=h+(~((h+-4-c|0)>>>2)<<2);Oq(c)}c=k+64|0;h=f[c>>2]|0;f[c>>2]=0;if(h|0){c=f[h>>2]|0;if(c|0){i=h+4|0;if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c)}Oq(h)}Oq(k)}if(!e){u=g;return}k=f[a+32>>2]|0;b[k+84>>0]=0;a=k+68|0;h=k+72|0;k=f[h>>2]|0;c=f[a>>2]|0;i=k-c>>2;d=k;if(i>>>0<e>>>0){Ch(a,e-i|0,1532);u=g;return}if(i>>>0<=e>>>0){u=g;return}i=c+(e<<2)|0;if((i|0)==(d|0)){u=g;return}f[h>>2]=d+(~((d+-4-i|0)>>>2)<<2);u=g;return}function bg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;c=u;u=u+16|0;d=c+4|0;e=c;g=a+4|0;h=f[g>>2]|0;i=a+8|0;j=f[i>>2]|0;if((j|0)==(h|0))k=h;else{l=j+(~((j+-4-h|0)>>>2)<<2)|0;f[i>>2]=l;k=l}l=a+16|0;h=f[l>>2]|0;j=a+20|0;m=f[j>>2]|0;n=h;if((m|0)!=(h|0))f[j>>2]=m+(~((m+-4-n|0)>>>2)<<2);m=f[b>>2]|0;h=f[b+4>>2]|0;if((m|0)==(h|0)){u=c;return}b=a+12|0;a=m;m=k;k=n;while(1){n=f[a>>2]|0;f[d>>2]=n;if((m|0)==(f[b>>2]|0)){Ri(g,d);o=f[l>>2]|0}else{f[m>>2]=n;f[i>>2]=m+4;o=k}n=f[d>>2]|0;p=f[j>>2]|0;q=p-o>>2;r=o;if((n|0)<(q|0)){s=r;t=n;v=o}else{w=n+1|0;f[e>>2]=-1;x=p;if(w>>>0<=q>>>0)if(w>>>0<q>>>0?(p=r+(w<<2)|0,(p|0)!=(x|0)):0){f[j>>2]=x+(~((x+-4-p|0)>>>2)<<2);y=n;z=r;A=o}else{y=n;z=r;A=o}else{Ch(l,w-q|0,e);q=f[l>>2]|0;y=f[d>>2]|0;z=q;A=q}s=z;t=y;v=A}m=f[i>>2]|0;f[s+(t<<2)>>2]=(m-(f[g>>2]|0)>>2)+-1;a=a+4|0;if((a|0)==(h|0))break;else k=v}u=c;return}function cg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;c=u;u=u+16|0;d=c;e=a+76|0;g=f[e>>2]|0;h=a+80|0;i=f[h>>2]|0;if((i|0)!=(g|0))f[h>>2]=i+(~((i+-4-g|0)>>>2)<<2);f[e>>2]=0;f[h>>2]=0;f[a+84>>2]=0;if(g|0)Oq(g);g=a+64|0;h=f[g>>2]|0;e=a+68|0;if((f[e>>2]|0)!=(h|0))f[e>>2]=h;f[g>>2]=0;f[e>>2]=0;f[a+72>>2]=0;if(h|0)Oq(h);h=b+4|0;e=f[h>>2]|0;g=f[b>>2]|0;i=((e-g|0)/12|0)*3|0;j=a+4|0;k=f[j>>2]|0;l=f[a>>2]|0;m=k-l>>2;n=l;l=k;k=g;if(i>>>0<=m>>>0)if(i>>>0<m>>>0?(o=n+(i<<2)|0,(o|0)!=(l|0)):0){f[j>>2]=l+(~((l+-4-o|0)>>>2)<<2);p=e;q=g;r=k}else{p=e;q=g;r=k}else{Ci(a,i-m|0);m=f[b>>2]|0;p=f[h>>2]|0;q=m;r=m}if((p|0)!=(q|0)){q=f[a>>2]|0;m=(p-r|0)/12|0;p=0;do{h=p*3|0;f[q+(h<<2)>>2]=f[r+(p*12|0)>>2];f[q+(h+1<<2)>>2]=f[r+(p*12|0)+4>>2];f[q+(h+2<<2)>>2]=f[r+(p*12|0)+8>>2];p=p+1|0}while(p>>>0<m>>>0)}f[d>>2]=-1;if(!(rc(a,d)|0)){s=0;u=c;return s|0}eb(a,f[d>>2]|0)|0;s=1;u=c;return s|0}function dg(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=d[b>>1]|0;e=d[b+2>>1]|0;g=d[b+4>>1]|0;b=(((c^318)&65535)+239^e&65535)+239^g&65535;h=f[a+4>>2]|0;if(!h){i=0;return i|0}j=h+-1|0;k=(j&h|0)==0;if(!k)if(b>>>0<h>>>0)l=b;else l=(b>>>0)%(h>>>0)|0;else l=b&j;m=f[(f[a>>2]|0)+(l<<2)>>2]|0;if(!m){i=0;return i|0}a=f[m>>2]|0;if(!a){i=0;return i|0}if(k){k=a;while(1){m=f[k+4>>2]|0;n=(m|0)==(b|0);if(!(n|(m&j|0)==(l|0))){i=0;o=23;break}if(((n?(n=k+8|0,(d[n>>1]|0)==c<<16>>16):0)?(d[n+2>>1]|0)==e<<16>>16:0)?(d[k+12>>1]|0)==g<<16>>16:0){i=k;o=23;break}k=f[k>>2]|0;if(!k){i=0;o=23;break}}if((o|0)==23)return i|0}else p=a;while(1){a=f[p+4>>2]|0;if((a|0)==(b|0)){k=p+8|0;if(((d[k>>1]|0)==c<<16>>16?(d[k+2>>1]|0)==e<<16>>16:0)?(d[p+12>>1]|0)==g<<16>>16:0){i=p;o=23;break}}else{if(a>>>0<h>>>0)q=a;else q=(a>>>0)%(h>>>0)|0;if((q|0)!=(l|0)){i=0;o=23;break}}p=f[p>>2]|0;if(!p){i=0;o=23;break}}if((o|0)==23)return i|0;return 0}function eg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=u;u=u+32|0;d=c;e=a+16|0;g=e;h=f[g>>2]|0;i=f[g+4>>2]|0;if(!((i|0)>0|(i|0)==0&h>>>0>0)){u=c;return}g=Vn(f[(f[a+12>>2]|0)+4>>2]|0,0,7,0)|0;j=Yn(g|0,I|0,3)|0;g=I;if(!(b[a+24>>0]|0)){k=a+4|0;l=k;m=k;n=h;o=i}else{k=f[a>>2]|0;p=a+4|0;q=k+((f[p>>2]|0)-k)|0;k=Vn(h|0,i|0,8,0)|0;i=q+(0-k)|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;b[d+24>>0]=0;yh(j,g,d)|0;k=d+4|0;q=(f[k>>2]|0)-(f[d>>2]|0)|0;im(i+q|0,i+8|0,j|0)|0;kh(i|0,f[d>>2]|0,q|0)|0;i=e;h=Vn(f[i>>2]|0,f[i+4>>2]|0,8-q|0,0)|0;q=e;f[q>>2]=h;f[q+4>>2]=I;q=d+12|0;h=f[q>>2]|0;f[q>>2]=0;if(h|0)Oq(h);h=f[d>>2]|0;if(h|0){if((f[k>>2]|0)!=(h|0))f[k>>2]=h;Oq(h)}h=e;l=p;m=p;n=f[h>>2]|0;o=f[h+4>>2]|0}h=f[l>>2]|0;l=f[a>>2]|0;p=h-l|0;k=Xn(j|0,g|0,n|0,o|0)|0;o=Vn(k|0,I|0,p|0,0)|0;k=l;l=h;if(p>>>0>=o>>>0){if(p>>>0>o>>>0?(h=k+o|0,(h|0)!=(l|0)):0)f[m>>2]=h}else Fi(a,o-p|0);p=e;f[p>>2]=0;f[p+4>>2]=0;u=c;return}function fg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f[a+4>>2]=f[b+4>>2];c=a+8|0;d=b+8|0;if((a|0)==(b|0))return a|0;e=b+12|0;g=f[e>>2]|0;if(!g)h=0;else{i=a+16|0;do if(g>>>0>f[i>>2]<<5>>>0){j=f[c>>2]|0;if(!j)k=g;else{Oq(j);f[c>>2]=0;f[i>>2]=0;f[a+12>>2]=0;k=f[e>>2]|0}if((k|0)<0)aq(c);else{j=((k+-1|0)>>>5)+1|0;l=ln(j<<2)|0;f[c>>2]=l;f[a+12>>2]=0;f[i>>2]=j;m=f[e>>2]|0;n=l;break}}else{m=g;n=f[c>>2]|0}while(0);im(n|0,f[d>>2]|0,((m+-1|0)>>>5<<2)+4|0)|0;h=f[e>>2]|0}f[a+12>>2]=h;h=a+20|0;e=b+20|0;m=b+24|0;b=f[m>>2]|0;if(!b)o=0;else{d=a+28|0;do if(b>>>0>f[d>>2]<<5>>>0){n=f[h>>2]|0;if(!n)p=b;else{Oq(n);f[h>>2]=0;f[d>>2]=0;f[a+24>>2]=0;p=f[m>>2]|0}if((p|0)<0)aq(h);else{n=((p+-1|0)>>>5)+1|0;c=ln(n<<2)|0;f[h>>2]=c;f[a+24>>2]=0;f[d>>2]=n;q=f[m>>2]|0;r=c;break}}else{q=b;r=f[h>>2]|0}while(0);im(r|0,f[e>>2]|0,((q+-1|0)>>>5<<2)+4|0)|0;o=f[m>>2]|0}f[a+24>>2]=o;return a|0}function gg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f[c>>2]=1;d=a+4|0;e=c+8|0;g=c+12|0;c=f[e>>2]|0;i=(f[g>>2]|0)-c|0;if(i>>>0<4294967292){Lk(e,i+4|0,0);j=f[e>>2]|0}else j=c;c=j+i|0;i=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[c>>0]=i;b[c+1>>0]=i>>8;b[c+2>>0]=i>>16;b[c+3>>0]=i>>24;i=a+8|0;c=a+12|0;d=f[i>>2]|0;if((f[c>>2]|0)!=(d|0)){j=0;k=d;do{d=k+(j<<2)|0;l=f[e>>2]|0;m=(f[g>>2]|0)-l|0;if(m>>>0<4294967292){Lk(e,m+4|0,0);n=f[e>>2]|0}else n=l;l=n+m|0;m=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[l>>0]=m;b[l+1>>0]=m>>8;b[l+2>>0]=m>>16;b[l+3>>0]=m>>24;j=j+1|0;k=f[i>>2]|0}while(j>>>0<(f[c>>2]|0)-k>>2>>>0)}k=a+20|0;a=f[e>>2]|0;c=(f[g>>2]|0)-a|0;if(c>>>0<4294967292){Lk(e,c+4|0,0);o=f[e>>2]|0;p=o+c|0;q=h[k>>0]|h[k+1>>0]<<8|h[k+2>>0]<<16|h[k+3>>0]<<24;b[p>>0]=q;b[p+1>>0]=q>>8;b[p+2>>0]=q>>16;b[p+3>>0]=q>>24;return}else{o=a;p=o+c|0;q=h[k>>0]|h[k+1>>0]<<8|h[k+2>>0]<<16|h[k+3>>0]<<24;b[p>>0]=q;b[p+1>>0]=q>>8;b[p+2>>0]=q>>16;b[p+3>>0]=q>>24;return}}function hg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=a+8|0;e=f[d>>2]|0;g=f[a>>2]|0;h=g;do if(e-g>>2>>>0>=b>>>0){i=a+4|0;j=f[i>>2]|0;k=j-g>>2;l=k>>>0<b>>>0;m=l?k:b;n=j;if(m|0){j=m;m=h;while(1){f[m>>2]=f[c>>2];j=j+-1|0;if(!j)break;else m=m+4|0}}if(!l){m=h+(b<<2)|0;if((m|0)==(n|0))return;else{o=i;p=n+(~((n+-4-m|0)>>>2)<<2)|0;break}}else{m=b-k|0;j=m;q=n;while(1){f[q>>2]=f[c>>2];j=j+-1|0;if(!j)break;else q=q+4|0}o=i;p=n+(m<<2)|0;break}}else{q=g;if(!g)r=e;else{j=a+4|0;k=f[j>>2]|0;if((k|0)!=(h|0))f[j>>2]=k+(~((k+-4-g|0)>>>2)<<2);Oq(q);f[d>>2]=0;f[j>>2]=0;f[a>>2]=0;r=0}if(b>>>0>1073741823)aq(a);j=r>>1;q=r>>2>>>0<536870911?(j>>>0<b>>>0?b:j):1073741823;if(q>>>0>1073741823)aq(a);j=ln(q<<2)|0;k=a+4|0;f[k>>2]=j;f[a>>2]=j;f[d>>2]=j+(q<<2);q=b;l=j;while(1){f[l>>2]=f[c>>2];q=q+-1|0;if(!q)break;else l=l+4|0}o=k;p=j+(b<<2)|0}while(0);f[o>>2]=p;return}function ig(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=jh(a,b,c,d,g)|0;i=f[e>>2]|0;j=f[d>>2]|0;k=f[g>>2]|0;g=f[k>>2]|0;l=(f[k+4>>2]|0)-g>>3;if(l>>>0<=i>>>0)aq(k);m=g;if(l>>>0<=j>>>0)aq(k);if((f[m+(i<<3)>>2]|0)>>>0>=(f[m+(j<<3)>>2]|0)>>>0){n=h;return n|0}f[d>>2]=i;f[e>>2]=j;j=f[d>>2]|0;e=f[c>>2]|0;if(l>>>0<=j>>>0)aq(k);if(l>>>0<=e>>>0)aq(k);if((f[m+(j<<3)>>2]|0)>>>0>=(f[m+(e<<3)>>2]|0)>>>0){n=h+1|0;return n|0}f[c>>2]=j;f[d>>2]=e;e=f[c>>2]|0;d=f[b>>2]|0;if(l>>>0<=e>>>0)aq(k);if(l>>>0<=d>>>0)aq(k);if((f[m+(e<<3)>>2]|0)>>>0>=(f[m+(d<<3)>>2]|0)>>>0){n=h+2|0;return n|0}f[b>>2]=e;f[c>>2]=d;d=f[b>>2]|0;c=f[a>>2]|0;if(l>>>0<=d>>>0)aq(k);if(l>>>0<=c>>>0)aq(k);if((f[m+(d<<3)>>2]|0)>>>0>=(f[m+(c<<3)>>2]|0)>>>0){n=h+3|0;return n|0}f[a>>2]=d;f[b>>2]=c;n=h+4|0;return n|0}function jg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=b[c>>0]|0;e=b[c+1>>0]|0;g=b[c+2>>0]|0;c=((d&255^318)+239^e&255)+239^g&255;h=f[a+4>>2]|0;if(!h){i=0;return i|0}j=h+-1|0;k=(j&h|0)==0;if(!k)if(c>>>0<h>>>0)l=c;else l=(c>>>0)%(h>>>0)|0;else l=c&j;m=f[(f[a>>2]|0)+(l<<2)>>2]|0;if(!m){i=0;return i|0}a=f[m>>2]|0;if(!a){i=0;return i|0}if(k){k=a;while(1){m=f[k+4>>2]|0;n=(m|0)==(c|0);if(!(n|(m&j|0)==(l|0))){i=0;o=23;break}if(((n?(n=k+8|0,(b[n>>0]|0)==d<<24>>24):0)?(b[n+1>>0]|0)==e<<24>>24:0)?(b[n+2>>0]|0)==g<<24>>24:0){i=k;o=23;break}k=f[k>>2]|0;if(!k){i=0;o=23;break}}if((o|0)==23)return i|0}else p=a;while(1){a=f[p+4>>2]|0;if((a|0)==(c|0)){k=p+8|0;if(((b[k>>0]|0)==d<<24>>24?(b[k+1>>0]|0)==e<<24>>24:0)?(b[k+2>>0]|0)==g<<24>>24:0){i=p;o=23;break}}else{if(a>>>0<h>>>0)q=a;else q=(a>>>0)%(h>>>0)|0;if((q|0)!=(l|0)){i=0;o=23;break}}p=f[p>>2]|0;if(!p){i=0;o=23;break}}if((o|0)==23)return i|0;return 0}function kg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;b=u;u=u+16|0;c=b;d=a+36|0;e=a+4|0;g=a+8|0;h=(f[g>>2]|0)-(f[e>>2]|0)>>2;i=a+40|0;j=f[i>>2]|0;k=f[d>>2]|0;l=j-k>>2;m=k;k=j;if(h>>>0<=l>>>0){if(h>>>0<l>>>0?(j=m+(h<<2)|0,(j|0)!=(k|0)):0){m=k;do{k=m+-4|0;f[i>>2]=k;n=f[k>>2]|0;f[k>>2]=0;if(n|0)Va[f[(f[n>>2]|0)+4>>2]&127](n);m=f[i>>2]|0}while((m|0)!=(j|0))}}else Eg(d,h-l|0);if((f[g>>2]|0)==(f[e>>2]|0)){o=1;u=b;return o|0}l=a+52|0;h=a+48|0;j=0;while(1){Xa[f[(f[a>>2]|0)+56>>2]&15](c,a,j);m=(f[d>>2]|0)+(j<<2)|0;i=f[c>>2]|0;f[c>>2]=0;n=f[m>>2]|0;f[m>>2]=i;if(n|0)Va[f[(f[n>>2]|0)+4>>2]&127](n);n=f[c>>2]|0;f[c>>2]=0;if(n|0)Va[f[(f[n>>2]|0)+4>>2]&127](n);n=f[(f[d>>2]|0)+(j<<2)>>2]|0;if(!n){o=0;p=19;break}if(j>>>0<(f[l>>2]|0)>>>0?f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0:0)Bp(n);j=j+1|0;if(j>>>0>=(f[g>>2]|0)-(f[e>>2]|0)>>2>>>0){o=1;p=19;break}}if((p|0)==19){u=b;return o|0}return 0}function lg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=u;u=u+16|0;e=d+4|0;g=d;ci(f[c+12>>2]|0,b)|0;h=f[c+8>>2]|0;a:do if(h|0){i=b+16|0;j=b+4|0;k=h;while(1){l=k;if(!(Bf(0,b,l+8|0)|0)){m=0;break}n=l+20|0;o=(f[l+24>>2]|0)-(f[n>>2]|0)|0;ci(o,b)|0;l=f[n>>2]|0;n=i;p=f[n+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[n>>2]|0)>>>0>0)){f[g>>2]=f[j>>2];f[e>>2]=f[g>>2];Me(b,e,l,l+o|0)|0}k=f[k>>2]|0;if(!k)break a}u=d;return m|0}while(0);ci(f[c+32>>2]|0,b)|0;e=f[c+28>>2]|0;if(!e){m=1;u=d;return m|0}else q=e;while(1){e=q;if(!(Bf(0,b,e+8|0)|0)){m=0;r=10;break}lg(a,b,f[e+20>>2]|0)|0;q=f[q>>2]|0;if(!q){m=1;r=10;break}}if((r|0)==10){u=d;return m|0}return 0}function mg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;h=a+8|0;i=a+12|0;j=f[h>>2]|0;if((f[i>>2]|0)==(j|0)){k=ln(76)|0;vn(k,b);l=k;f[g>>2]=l;k=f[i>>2]|0;if(k>>>0<(f[a+16>>2]|0)>>>0){f[g>>2]=0;f[k>>2]=l;f[i>>2]=k+4;m=g}else{Qg(h,g);m=g}g=f[m>>2]|0;f[m>>2]=0;if(!g){u=c;return 1}Va[f[(f[g>>2]|0)+4>>2]&127](g);u=c;return 1}g=f[j>>2]|0;f[d>>2]=b;j=g+4|0;m=g+8|0;h=f[m>>2]|0;if((h|0)==(f[g+12>>2]|0))Ri(j,d);else{f[h>>2]=b;f[m>>2]=h+4}h=f[d>>2]|0;b=g+16|0;k=g+20|0;g=f[k>>2]|0;i=f[b>>2]|0;l=g-i>>2;a=i;if((h|0)<(l|0)){n=a;o=h}else{i=h+1|0;f[e>>2]=-1;p=g;if(i>>>0<=l>>>0)if(i>>>0<l>>>0?(g=a+(i<<2)|0,(g|0)!=(p|0)):0){f[k>>2]=p+(~((p+-4-g|0)>>>2)<<2);q=h;r=a}else{q=h;r=a}else{Ch(b,i-l|0,e);q=f[d>>2]|0;r=f[b>>2]|0}n=r;o=q}f[n+(o<<2)>>2]=((f[m>>2]|0)-(f[j>>2]|0)>>2)+-1;u=c;return 1}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=c;e=b;g=d-e|0;h=g>>2;i=a+8|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(h>>>0>j-k>>2>>>0){m=k;if(!k)n=j;else{j=a+4|0;o=f[j>>2]|0;if((o|0)!=(l|0))f[j>>2]=o+(~((o+-4-k|0)>>>2)<<2);Oq(m);f[i>>2]=0;f[j>>2]=0;f[a>>2]=0;n=0}if(h>>>0>1073741823)aq(a);j=n>>1;m=n>>2>>>0<536870911?(j>>>0<h>>>0?h:j):1073741823;if(m>>>0>1073741823)aq(a);j=ln(m<<2)|0;n=a+4|0;f[n>>2]=j;f[a>>2]=j;f[i>>2]=j+(m<<2);if((g|0)<=0)return;kh(j|0,b|0,g|0)|0;f[n>>2]=j+(g>>>2<<2);return}g=a+4|0;a=f[g>>2]|0;j=a-k>>2;k=h>>>0>j>>>0;h=k?b+(j<<2)|0:c;c=a;j=a;if((h|0)==(b|0))p=l;else{a=h+-4-e|0;e=b;b=l;while(1){f[b>>2]=f[e>>2];e=e+4|0;if((e|0)==(h|0))break;else b=b+4|0}p=l+((a>>>2)+1<<2)|0}if(k){k=d-h|0;if((k|0)<=0)return;kh(j|0,h|0,k|0)|0;f[g>>2]=(f[g>>2]|0)+(k>>>2<<2);return}else{if((p|0)==(c|0))return;f[g>>2]=c+(~((c+-4-p|0)>>>2)<<2);return}}function og(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=f[a+8>>2]|0;e=a+76|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[j>>2]|0;l=f[i>>2]|0;m=k-l>>2;n=l;l=k;if(h>>>0<=m>>>0)if(h>>>0<m>>>0?(k=n+(h<<2)|0,(k|0)!=(l|0)):0){f[j>>2]=l+(~((l+-4-k|0)>>>2)<<2);o=g;p=h}else{o=g;p=h}else{Ch(i,h-m|0,3600);m=f[e>>2]|0;o=m;p=f[m+80>>2]|0}m=(f[o+100>>2]|0)-(f[o+96>>2]|0)|0;e=(m|0)/12|0;if(!m){q=1;return q|0}m=c+68|0;c=f[o+96>>2]|0;o=f[d+28>>2]|0;d=f[(f[a+80>>2]|0)+12>>2]|0;a=0;while(1){h=a*3|0;i=f[d+(f[o+(h<<2)>>2]<<2)>>2]|0;if(i>>>0>=p>>>0){q=0;r=10;break}g=f[m>>2]|0;f[g+(f[c+(a*12|0)>>2]<<2)>>2]=i;i=f[d+(f[o+(h+1<<2)>>2]<<2)>>2]|0;if(i>>>0>=p>>>0){q=0;r=10;break}f[g+(f[c+(a*12|0)+4>>2]<<2)>>2]=i;i=f[d+(f[o+(h+2<<2)>>2]<<2)>>2]|0;if(i>>>0>=p>>>0){q=0;r=10;break}f[g+(f[c+(a*12|0)+8>>2]<<2)>>2]=i;a=a+1|0;if(a>>>0>=e>>>0){q=1;r=10;break}}if((r|0)==10)return q|0;return 0}function pg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=u;u=u+16|0;g=e;if(!(xh(a,c,d)|0)){h=0;u=e;return h|0}if((b[(f[a+8>>2]|0)+24>>0]|0)!=3){h=0;u=e;return h|0}i=f[c+48>>2]|0;c=ln(32)|0;f[g>>2]=c;f[g+8>>2]=-2147483616;f[g+4>>2]=17;j=c;k=14495;l=j+17|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[c+17>>0]=0;c=i+16|0;k=f[c>>2]|0;if(k){j=c;l=k;a:while(1){k=l;while(1){if((f[k+16>>2]|0)>=(d|0))break;m=f[k+4>>2]|0;if(!m){n=j;break a}else k=m}l=f[k>>2]|0;if(!l){n=k;break}else j=k}if(((n|0)!=(c|0)?(f[n+16>>2]|0)<=(d|0):0)?(d=n+20|0,(Jh(d,g)|0)!=0):0)o=Hk(d,g,-1)|0;else p=12}else p=12;if((p|0)==12)o=Hk(i,g,-1)|0;if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if((o|0)<1){h=0;u=e;return h|0}ip(a+40|0,o);h=1;u=e;return h|0}function qg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=f[b>>2]|0;d=f[b+4>>2]|0;e=f[b+8>>2]|0;b=((c^318)+239^d)+239^e;g=f[a+4>>2]|0;if(!g){h=0;return h|0}i=g+-1|0;j=(i&g|0)==0;if(!j)if(b>>>0<g>>>0)k=b;else k=(b>>>0)%(g>>>0)|0;else k=b&i;l=f[(f[a>>2]|0)+(k<<2)>>2]|0;if(!l){h=0;return h|0}a=f[l>>2]|0;if(!a){h=0;return h|0}if(j){j=a;while(1){l=f[j+4>>2]|0;m=(l|0)==(b|0);if(!(m|(l&i|0)==(k|0))){h=0;n=23;break}if(((m?(f[j+8>>2]|0)==(c|0):0)?(f[j+12>>2]|0)==(d|0):0)?(f[j+16>>2]|0)==(e|0):0){h=j;n=23;break}j=f[j>>2]|0;if(!j){h=0;n=23;break}}if((n|0)==23)return h|0}else o=a;while(1){a=f[o+4>>2]|0;if((a|0)==(b|0)){if(((f[o+8>>2]|0)==(c|0)?(f[o+12>>2]|0)==(d|0):0)?(f[o+16>>2]|0)==(e|0):0){h=o;n=23;break}}else{if(a>>>0<g>>>0)p=a;else p=(a>>>0)%(g>>>0)|0;if((p|0)!=(k|0)){h=0;n=23;break}}o=f[o>>2]|0;if(!o){h=0;n=23;break}}if((n|0)==23)return h|0;return 0}function rg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=c;g=d-e|0;h=a+8|0;i=f[h>>2]|0;j=f[a>>2]|0;k=j;if(g>>>0>(i-j|0)>>>0){if(!j)l=i;else{i=a+4|0;if((f[i>>2]|0)!=(k|0))f[i>>2]=k;Oq(k);f[h>>2]=0;f[i>>2]=0;f[a>>2]=0;l=0}if((g|0)<0)aq(a);i=l<<1;m=l>>>0<1073741823?(i>>>0<g>>>0?g:i):2147483647;if((m|0)<0)aq(a);i=ln(m)|0;l=a+4|0;f[l>>2]=i;f[a>>2]=i;f[h>>2]=i+m;if((c|0)==(d|0))return;else{n=c;o=i}do{b[o>>0]=b[n>>0]|0;n=n+1|0;o=(f[l>>2]|0)+1|0;f[l>>2]=o}while((n|0)!=(d|0));return}n=a+4|0;a=(f[n>>2]|0)-j|0;j=g>>>0>a>>>0;g=c+a|0;a=j?g:d;if((a|0)==(c|0))p=k;else{o=c;c=k;while(1){b[c>>0]=b[o>>0]|0;o=o+1|0;if((o|0)==(a|0))break;else c=c+1|0}p=k+(a-e)|0}if(!j){if((f[n>>2]|0)==(p|0))return;f[n>>2]=p;return}if((a|0)==(d|0))return;a=g;g=f[n>>2]|0;do{b[g>>0]=b[a>>0]|0;a=a+1|0;g=(f[n>>2]|0)+1|0;f[n>>2]=g}while((a|0)!=(d|0));return}function sg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=c>>>1&1431655765|c<<1&-1431655766;c=d>>>2&858993459|d<<2&-858993460;d=c>>>4&252645135|c<<4&-252645136;c=d>>>8&16711935|d<<8&-16711936;d=32-b|0;e=(c>>>16|c<<16)>>>d;c=e-(e>>>1&1431655765)|0;g=(c>>>2&858993459)+(c&858993459)|0;c=(X((g>>>4)+g&252645135,16843009)|0)>>>24;g=b-c|0;h=f[a>>2]|0;i=h;j=Vn(f[i>>2]|0,f[i+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;g=h;f[g>>2]=j;f[g+4>>2]=I;g=h+8|0;h=g;j=Vn(f[h>>2]|0,f[h+4>>2]|0,c|0,0)|0;c=g;f[c>>2]=j;f[c+4>>2]=I;c=a+28|0;j=f[c>>2]|0;g=32-j|0;h=a+24|0;do if((g|0)>=(b|0)){i=-1>>>d<<j;k=f[h>>2]&~i|i&e<<j;f[h>>2]=k;i=j+b|0;f[c>>2]=i;if((i|0)!=32)return;i=a+16|0;l=f[i>>2]|0;if((l|0)==(f[a+20>>2]|0)){Ri(a+12|0,h);m=0;n=0;break}else{f[l>>2]=k;f[i>>2]=l+4;m=0;n=0;break}}else{l=-1>>>j<<j;i=f[h>>2]&~l|l&e<<j;f[h>>2]=i;l=a+16|0;k=f[l>>2]|0;if((k|0)==(f[a+20>>2]|0))Ri(a+12|0,h);else{f[k>>2]=i;f[l>>2]=k+4}k=b-g|0;m=k;n=-1>>>(32-k|0)&e>>>g}while(0);f[h>>2]=n;f[c>>2]=m;return}function tg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=c&255;g=(d|0)!=0;a:do if(g&(a&3|0)!=0){h=c&255;i=a;j=d;while(1){if((b[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=a;r=d;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=q;u=0}b:do if((m|0)==6){q=c&255;if((b[k>>0]|0)==q<<24>>24){t=k;u=l}else{r=X(e,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){d=f[s>>2]^r;if((d&-2139062144^-2139062144)&d+-16843009|0)break;d=s+4|0;a=g+-4|0;if(a>>>0>3){s=d;g=a}else{v=d;w=a;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!w){t=v;u=0;break}else{x=v;y=w}while(1){if((b[x>>0]|0)==q<<24>>24){t=x;u=y;break b}r=x+1|0;y=y+-1|0;if(!y){t=r;u=0;break}else x=r}}}while(0);return (u|0?t:0)|0}function ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=e;do if((d|0)==(e|0)){h=a+8|0;i=f[h>>2]|0;j=a+12|0;k=f[j>>2]|0;l=k;if(i>>>0<k>>>0){k=i;m=((l-k>>2)+1|0)/2|0;n=i+(m<<2)|0;o=k-d|0;k=o>>2;p=n+(0-k<<2)|0;if(!k){q=n;r=i}else{im(p|0,d|0,o|0)|0;q=p;r=f[h>>2]|0}f[c>>2]=q;f[h>>2]=r+(m<<2);s=q;break}m=l-g>>1;l=(m|0)==0?1:m;if(l>>>0>1073741823){m=ra(8)|0;Oo(m,16035);f[m>>2]=7256;va(m|0,1112,110)}m=ln(l<<2)|0;p=m;o=m+((l+3|0)>>>2<<2)|0;n=o;k=m+(l<<2)|0;if((d|0)==(i|0)){t=n;u=d}else{l=o;m=n;v=d;do{f[l>>2]=f[v>>2];l=m+4|0;m=l;v=v+4|0}while((v|0)!=(i|0));t=m;u=f[a>>2]|0}f[a>>2]=p;f[c>>2]=n;f[h>>2]=t;f[j>>2]=k;if(!u)s=o;else{Oq(u);s=f[c>>2]|0}}else s=d;while(0);f[s+-4>>2]=f[b>>2];f[c>>2]=(f[c>>2]|0)+-4;return}function vg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;i=a+4|0;if((f[i>>2]|0)==-1){j=0;u=d;return j|0}k=f[a+8>>2]|0;l=c+16|0;m=l;n=f[m>>2]|0;o=f[m+4>>2]|0;if(!((o|0)>0|(o|0)==0&n>>>0>0)){m=(f[a+12>>2]|0)-k|0;p=c+4|0;f[g>>2]=f[p>>2];f[e>>2]=f[g>>2];Me(c,e,k,k+m|0)|0;m=l;k=f[m>>2]|0;q=f[m+4>>2]|0;m=a+20|0;if((q|0)>0|(q|0)==0&k>>>0>0){r=q;s=k;t=g}else{f[g>>2]=f[p>>2];f[e>>2]=f[g>>2];Me(c,e,m,m+4|0)|0;m=l;r=f[m+4>>2]|0;s=f[m>>2]|0;t=g}}else{r=o;s=n;t=g}b[h>>0]=f[i>>2];if(!((r|0)>0|(r|0)==0&s>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}j=1;u=d;return j|0}function wg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;e=u;u=u+16|0;g=e+4|0;h=e;i=a+8|0;a=f[i>>2]|0;j=f[a+40>>2]|0;k=Lq((j|0)>-1?j:-1)|0;l=c+4|0;m=f[l>>2]|0;n=f[c>>2]|0;if((m|0)==(n|0)){Mq(k);u=e;return 1}o=d+16|0;p=d+4|0;q=k+j|0;j=0;r=n;n=a;s=a;a=m;while(1){m=f[r+(j<<2)>>2]|0;if(!(b[n+84>>0]|0))t=f[(f[n+68>>2]|0)+(m<<2)>>2]|0;else t=m;m=s+48|0;v=f[m>>2]|0;w=f[m+4>>2]|0;m=s+40|0;x=f[m>>2]|0;y=un(x|0,f[m+4>>2]|0,t|0,0)|0;m=Vn(y|0,I|0,v|0,w|0)|0;kh(k|0,(f[f[s>>2]>>2]|0)+m|0,x|0)|0;x=o;m=f[x+4>>2]|0;if((m|0)>0|(m|0)==0&(f[x>>2]|0)>>>0>0){z=r;A=a}else{f[h>>2]=f[p>>2];f[g>>2]=f[h>>2];Me(d,g,k,q)|0;z=f[c>>2]|0;A=f[l>>2]|0}x=j+1|0;if(x>>>0>=A-z>>2>>>0)break;m=f[i>>2]|0;j=x;r=z;n=m;s=m;a=A}Mq(k);u=e;return 1}function xg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=(f[b>>2]|0)*3|0;if((d|0)==-1){e=0;g=-1;f[c>>2]=g;return e|0}b=f[a+12>>2]|0;h=f[b+12>>2]|0;if((f[h+(d<<2)>>2]|0)==-1){e=0;g=d;f[c>>2]=g;return e|0}i=f[b>>2]|0;b=f[a+152>>2]|0;if((f[b+(f[i+(d<<2)>>2]<<2)>>2]|0)==-1){a=d+1|0;j=((a>>>0)%3|0|0)==0?d+-2|0:a;if((j|0)==-1){e=0;g=-1;f[c>>2]=g;return e|0}if((f[h+(j<<2)>>2]|0)==-1){e=0;g=j;f[c>>2]=g;return e|0}if((f[b+(f[i+(j<<2)>>2]<<2)>>2]|0)==-1){a=j+1|0;k=((a>>>0)%3|0|0)==0?j+-2|0:a;if((k|0)==-1){e=0;g=-1;f[c>>2]=g;return e|0}if((f[h+(k<<2)>>2]|0)==-1){e=0;g=k;f[c>>2]=g;return e|0}if((f[b+(f[i+(k<<2)>>2]<<2)>>2]|0)==-1){i=k+1|0;e=1;g=((i>>>0)%3|0|0)==0?k+-2|0:i;f[c>>2]=g;return e|0}else l=k}else l=j}else l=d;while(1){d=(((l>>>0)%3|0|0)==0?2:-1)+l|0;if((d|0)==-1)break;j=f[h+(d<<2)>>2]|0;if((j|0)==-1)break;d=j+(((j>>>0)%3|0|0)==0?2:-1)|0;if((d|0)==-1)break;else l=d}e=0;g=(((l>>>0)%3|0|0)==0?2:-1)+l|0;f[c>>2]=g;return e|0}function yg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=a+4|0;g=f[e>>2]|0;if(!g){f[c>>2]=e;h=e;return h|0}e=b[d+11>>0]|0;i=e<<24>>24<0;j=i?f[d+4>>2]|0:e&255;e=i?f[d>>2]|0:d;d=a+4|0;a=g;while(1){g=a+16|0;i=b[g+11>>0]|0;k=i<<24>>24<0;l=k?f[a+20>>2]|0:i&255;i=l>>>0<j>>>0;m=i?l:j;if((m|0)!=0?(n=Vk(e,k?f[g>>2]|0:g,m)|0,(n|0)!=0):0)if((n|0)<0)o=8;else o=10;else if(j>>>0<l>>>0)o=8;else o=10;if((o|0)==8){o=0;n=f[a>>2]|0;if(!n){o=9;break}else{p=a;q=n}}else if((o|0)==10){o=0;n=j>>>0<l>>>0?j:l;if((n|0)!=0?(l=Vk(k?f[g>>2]|0:g,e,n)|0,(l|0)!=0):0){if((l|0)>=0){o=16;break}}else o=12;if((o|0)==12?(o=0,!i):0){o=16;break}r=a+4|0;i=f[r>>2]|0;if(!i){o=15;break}else{p=r;q=i}}d=p;a=q}if((o|0)==9){f[c>>2]=a;h=a;return h|0}else if((o|0)==15){f[c>>2]=a;h=r;return h|0}else if((o|0)==16){f[c>>2]=a;h=d;return h|0}return 0}function zg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;d=u;u=u+32|0;e=d+24|0;g=d+16|0;h=d+8|0;i=d;j=a+4|0;k=f[j>>2]|0;l=f[b>>2]|0;m=f[b+4>>2]|0;b=f[c>>2]|0;n=f[c+4>>2]|0;c=b-l<<3;f[j>>2]=k-m+n+c;j=(f[a>>2]|0)+(k>>>5<<2)|0;a=k&31;k=j;if((m|0)!=(a|0)){f[e>>2]=l;f[e+4>>2]=m;f[g>>2]=b;f[g+4>>2]=n;f[h>>2]=k;f[h+4>>2]=a;xe(i,e,g,h);u=d;return}h=n-m+c|0;c=l;if((h|0)>0){if(!m){o=h;p=j;q=0;r=l;s=c}else{l=32-m|0;n=(h|0)<(l|0)?h:l;g=-1>>>(l-n|0)&-1<<m;f[j>>2]=f[j>>2]&~g|f[c>>2]&g;g=n+m|0;l=c+4|0;o=h-n|0;p=j+(g>>>5<<2)|0;q=g&31;r=l;s=l}l=(o|0)/32|0;im(p|0,r|0,l<<2|0)|0;r=o-(l<<5)|0;o=p+(l<<2)|0;p=o;if((r|0)>0){g=-1>>>(32-r|0);f[o>>2]=f[o>>2]&~g|f[s+(l<<2)>>2]&g;t=r;v=p}else{t=q;v=p}}else{t=m;v=k}f[i>>2]=v;f[i+4>>2]=t;u=d;return}function Ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;c=a+8|0;d=f[c>>2]|0;e=a+12|0;g=f[e>>2]|0;h=g;do if((d|0)==(g|0)){i=a+4|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(j>>>0>k>>>0){m=j;n=((m-l>>2)+1|0)/-2|0;o=j+(n<<2)|0;p=d-m|0;m=p>>2;if(!m)q=j;else{im(o|0,j|0,p|0)|0;q=f[i>>2]|0}p=o+(m<<2)|0;f[c>>2]=p;f[i>>2]=q+(n<<2);r=p;break}p=h-l>>1;l=(p|0)==0?1:p;if(l>>>0>1073741823){p=ra(8)|0;Oo(p,16035);f[p>>2]=7256;va(p|0,1112,110)}p=ln(l<<2)|0;n=p;m=p+(l>>>2<<2)|0;o=m;s=p+(l<<2)|0;if((j|0)==(d|0)){t=o;u=k}else{k=m;m=o;l=j;do{f[k>>2]=f[l>>2];k=m+4|0;m=k;l=l+4|0}while((l|0)!=(d|0));t=m;u=f[a>>2]|0}f[a>>2]=n;f[i>>2]=o;f[c>>2]=t;f[e>>2]=s;if(!u)r=t;else{Oq(u);r=f[c>>2]|0}}else r=d;while(0);f[r>>2]=f[b>>2];f[c>>2]=(f[c>>2]|0)+4;return}function Bg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;h=a+12|0;i=a+4|0;j=f[i>>2]|0;if((j|0)==(f[a+8>>2]|0)){Ri(a,h);k=f[i>>2]|0}else{f[j>>2]=f[h>>2];l=j+4|0;f[i>>2]=l;k=l}l=f[a>>2]|0;f[g>>2]=k-l;k=b+16|0;j=k;m=f[j+4>>2]|0;if(!((m|0)>0|(m|0)==0&(f[j>>2]|0)>>>0>0)){f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=f[a>>2]|0;m=f[g>>2]|0;g=k;k=f[g+4>>2]|0;if((k|0)>0|(k|0)==0&(f[g>>2]|0)>>>0>0){n=j;o=e}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,j,j+m|0)|0;n=f[a>>2]|0;o=e}}else{n=l;o=e}e=f[i>>2]|0;if((e|0)==(n|0)){f[h>>2]=0;p=a+16|0;f[p>>2]=0;u=c;return}f[i>>2]=e+(~((e+-4-n|0)>>>2)<<2);f[h>>2]=0;p=a+16|0;f[p>>2]=0;u=c;return}function Cg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=c;g=d-e|0;h=a+8|0;i=f[h>>2]|0;j=f[a>>2]|0;k=j;if(g>>>0>(i-j|0)>>>0){if(!j)l=i;else{i=a+4|0;if((f[i>>2]|0)!=(k|0))f[i>>2]=k;Oq(k);f[h>>2]=0;f[i>>2]=0;f[a>>2]=0;l=0}if((g|0)<0)aq(a);i=l<<1;m=l>>>0<1073741823?(i>>>0<g>>>0?g:i):2147483647;if((m|0)<0)aq(a);i=ln(m)|0;l=a+4|0;f[l>>2]=i;f[a>>2]=i;f[h>>2]=i+m;if((c|0)==(d|0))return;else{n=c;o=i}do{b[o>>0]=b[n>>0]|0;n=n+1|0;o=(f[l>>2]|0)+1|0;f[l>>2]=o}while((n|0)!=(d|0));return}else{n=a+4|0;a=(f[n>>2]|0)-j|0;j=g>>>0>a>>>0;g=c+a|0;a=j?g:d;o=a-e|0;if(o|0)im(k|0,c|0,o|0)|0;c=k+o|0;if(!j){if((f[n>>2]|0)==(c|0))return;f[n>>2]=c;return}if((a|0)==(d|0))return;a=g;g=f[n>>2]|0;do{b[g>>0]=b[a>>0]|0;a=a+1|0;g=(f[n>>2]|0)+1|0;f[n>>2]=g}while((a|0)!=(d|0));return}}function Dg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+16|0;d=c;if(b[a+352>>0]|0){u=c;return 1}e=a+8|0;g=f[e>>2]|0;h=(f[g+12>>2]|0)-(f[g+8>>2]|0)|0;g=h>>2;i=a+172|0;Gi(i,g+-1|0);if(!((g|0)!=1&(h|0)>0)){u=c;return 1}h=a+12|0;a=0;j=0;while(1){k=f[(f[(f[e>>2]|0)+8>>2]|0)+(a<<2)>>2]|0;if(!(f[k+56>>2]|0))l=j;else{m=f[i>>2]|0;f[m+(j*136|0)>>2]=a;n=f[m+(j*136|0)+104>>2]|0;o=m+(j*136|0)+108|0;p=f[o>>2]|0;if((p|0)!=(n|0))f[o>>2]=p+(~((p+-4-n|0)>>>2)<<2);n=f[h>>2]|0;gk(m+(j*136|0)+104|0,(f[n+4>>2]|0)-(f[n>>2]|0)>>2);n=(f[i>>2]|0)+(j*136|0)+116|0;m=f[h>>2]|0;p=(f[m+4>>2]|0)-(f[m>>2]|0)>>2;f[d>>2]=-1;hg(n,p,d);p=f[i>>2]|0;f[p+(j*136|0)+128>>2]=0;Gc(p+(j*136|0)+4|0,f[e>>2]|0,f[h>>2]|0,k)|0;l=j+1|0}a=a+1|0;if((a|0)>=(g|0))break;else j=l}u=c;return 1}function Eg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(d-g>>2>>>0>=b>>>0){sj(g|0,0,b<<2|0)|0;f[e>>2]=g+(b<<2);return}i=f[a>>2]|0;j=g-i>>2;g=j+b|0;k=i;if(g>>>0>1073741823)aq(a);l=d-i|0;d=l>>1;m=l>>2>>>0<536870911?(d>>>0<g>>>0?g:d):1073741823;do if(m)if(m>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{n=ln(m<<2)|0;break}else n=0;while(0);d=n+(j<<2)|0;sj(d|0,0,b<<2|0)|0;b=d;j=n+(m<<2)|0;m=n+(g<<2)|0;if((h|0)==(k|0)){o=b;p=i;q=h}else{i=h;h=b;b=d;do{i=i+-4|0;d=f[i>>2]|0;f[i>>2]=0;f[b+-4>>2]=d;b=h+-4|0;h=b}while((i|0)!=(k|0));o=h;p=f[a>>2]|0;q=f[e>>2]|0}f[a>>2]=o;f[e>>2]=m;f[c>>2]=j;j=p;if((q|0)!=(j|0)){c=q;do{c=c+-4|0;q=f[c>>2]|0;f[c>>2]=0;if(q|0)Va[f[(f[q>>2]|0)+4>>2]&127](q)}while((c|0)!=(j|0))}if(!p)return;Oq(p);return}function Fg(a,c,d,e,g,h){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=$(h);var i=0,j=0,k=0,l=0,m=0,n=0;i=u;u=u+16|0;j=i;k=i+4|0;f[j>>2]=c;c=ln(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=17;l=c;m=14495;n=l+17|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[c+17>>0]=0;Xj(Hd(a,j)|0,k,d);if((b[k+11>>0]|0)<0)Oq(f[k>>2]|0);d=ln(32)|0;f[k>>2]=d;f[k+8>>2]=-2147483616;f[k+4>>2]=19;l=d;m=14438;n=l+19|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[d+19>>0]=0;si(Hd(a,j)|0,k,g,e);if((b[k+11>>0]|0)<0)Oq(f[k>>2]|0);e=ln(32)|0;f[k>>2]=e;f[k+8>>2]=-2147483616;f[k+4>>2]=18;l=e;m=14458;n=l+18|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[e+18>>0]=0;Tj(Hd(a,j)|0,k,h);if((b[k+11>>0]|0)>=0){u=i;return}Oq(f[k>>2]|0);u=i;return}function Gg(a){a=a|0;tk(a);tk(a+32|0);tk(a+64|0);tk(a+96|0);tk(a+128|0);tk(a+160|0);tk(a+192|0);tk(a+224|0);tk(a+256|0);tk(a+288|0);tk(a+320|0);tk(a+352|0);tk(a+384|0);tk(a+416|0);tk(a+448|0);tk(a+480|0);tk(a+512|0);tk(a+544|0);tk(a+576|0);tk(a+608|0);tk(a+640|0);tk(a+672|0);tk(a+704|0);tk(a+736|0);tk(a+768|0);tk(a+800|0);tk(a+832|0);tk(a+864|0);tk(a+896|0);tk(a+928|0);tk(a+960|0);tk(a+992|0);tk(a+1024|0);return}function Hg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+16|0;d=c;if(b[a+288>>0]|0){u=c;return 1}e=a+8|0;g=f[e>>2]|0;h=(f[g+12>>2]|0)-(f[g+8>>2]|0)|0;g=h>>2;i=a+172|0;Gi(i,g+-1|0);if(!((g|0)!=1&(h|0)>0)){u=c;return 1}h=a+12|0;a=0;j=0;while(1){k=f[(f[(f[e>>2]|0)+8>>2]|0)+(a<<2)>>2]|0;if(!(f[k+56>>2]|0))l=j;else{m=f[i>>2]|0;f[m+(j*136|0)>>2]=a;n=f[m+(j*136|0)+104>>2]|0;o=m+(j*136|0)+108|0;p=f[o>>2]|0;if((p|0)!=(n|0))f[o>>2]=p+(~((p+-4-n|0)>>>2)<<2);n=f[h>>2]|0;gk(m+(j*136|0)+104|0,(f[n+4>>2]|0)-(f[n>>2]|0)>>2);n=(f[i>>2]|0)+(j*136|0)+116|0;m=f[h>>2]|0;p=(f[m+4>>2]|0)-(f[m>>2]|0)>>2;f[d>>2]=-1;hg(n,p,d);p=f[i>>2]|0;f[p+(j*136|0)+128>>2]=0;Gc(p+(j*136|0)+4|0,f[e>>2]|0,f[h>>2]|0,k)|0;l=j+1|0}a=a+1|0;if((a|0)>=(g|0))break;else j=l}u=c;return 1}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=c;e=b;g=d-e|0;h=g>>2;i=a+8|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(h>>>0<=j-k>>2>>>0){m=a+4|0;n=(f[m>>2]|0)-k>>2;o=h>>>0>n>>>0;p=o?b+(n<<2)|0:c;c=p;n=c-e|0;e=n>>2;if(e|0)im(k|0,b|0,n|0)|0;n=l+(e<<2)|0;if(o){o=d-c|0;if((o|0)<=0)return;kh(f[m>>2]|0,p|0,o|0)|0;f[m>>2]=(f[m>>2]|0)+(o>>>2<<2);return}else{o=f[m>>2]|0;if((o|0)==(n|0))return;f[m>>2]=o+(~((o+-4-n|0)>>>2)<<2);return}}n=k;if(!k)q=j;else{j=a+4|0;o=f[j>>2]|0;if((o|0)!=(l|0))f[j>>2]=o+(~((o+-4-k|0)>>>2)<<2);Oq(n);f[i>>2]=0;f[j>>2]=0;f[a>>2]=0;q=0}if(h>>>0>1073741823)aq(a);j=q>>1;n=q>>2>>>0<536870911?(j>>>0<h>>>0?h:j):1073741823;if(n>>>0>1073741823)aq(a);j=ln(n<<2)|0;h=a+4|0;f[h>>2]=j;f[a>>2]=j;f[i>>2]=j+(n<<2);if((g|0)<=0)return;kh(j|0,b|0,g|0)|0;f[h>>2]=j+(g>>>2<<2);return}function Jg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0,v=0.0;e=u;u=u+16|0;g=e;h=c+1|0;f[g>>2]=0;i=g+4|0;f[i>>2]=0;f[g+8>>2]=0;do if(h)if(h>>>0>1073741823)aq(g);else{j=ln(h<<2)|0;f[g>>2]=j;k=j+(h<<2)|0;f[g+8>>2]=k;sj(j|0,0,(c<<2)+4|0)|0;f[i>>2]=k;l=j;m=k;n=j;break}else{l=0;m=0;n=0}while(0);if((b|0)>0){g=0;do{j=l+(f[a+(g<<2)>>2]<<2)|0;f[j>>2]=(f[j>>2]|0)+1;g=g+1|0}while((g|0)!=(b|0))}o=+(b|0);if((c|0)<0){p=0;q=0.0}else{c=0;r=0.0;b=0;while(1){g=f[l+(b<<2)>>2]|0;s=+(g|0);if((g|0)>0){t=c+1|0;v=r+ +Zg(s/o)*s}else{t=c;v=r}b=b+1|0;if((b|0)==(h|0)){p=t;q=v;break}else{c=t;r=v}}}if(d|0)f[d>>2]=p;v=-q;p=~~v>>>0;d=+K(v)>=1.0?(v>0.0?~~+Y(+J(v/4294967296.0),4294967295.0)>>>0:~~+W((v-+(~~v>>>0))/4294967296.0)>>>0):0;if(!l){I=d;u=e;return p|0}if((m|0)!=(l|0))f[i>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(n);I=d;u=e;return p|0}function Kg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=u;u=u+16|0;g=e+4|0;h=e;i=ln(32)|0;f[a>>2]=i;f[a+4>>2]=c+4;c=a+8|0;b[c>>0]=0;f[i+16>>2]=f[d>>2];a=i+20|0;f[i+24>>2]=0;f[i+28>>2]=0;j=i+24|0;f[a>>2]=j;i=f[d+4>>2]|0;k=d+8|0;if((i|0)==(k|0)){b[c>>0]=1;u=e;return}d=j;j=i;while(1){i=j+16|0;f[h>>2]=d;f[g>>2]=f[h>>2];ph(a,g,i,i)|0;i=f[j+4>>2]|0;if(!i){l=j+8|0;m=f[l>>2]|0;if((f[m>>2]|0)==(j|0))n=m;else{m=l;do{l=f[m>>2]|0;m=l+8|0;o=f[m>>2]|0}while((f[o>>2]|0)!=(l|0));n=o}}else{m=i;while(1){o=f[m>>2]|0;if(!o)break;else m=o}n=m}if((n|0)==(k|0))break;else j=n}b[c>>0]=1;u=e;return}function Lg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+16|0;e=d;f[e>>2]=b;g=a+8|0;if(((f[a+12>>2]|0)-(f[g>>2]|0)>>2|0)<=(b|0))Bh(g,b+1|0);h=f[(f[c>>2]|0)+56>>2]|0;do if((h|0)<5){i=a+20+(h*12|0)+4|0;j=f[i>>2]|0;if((j|0)==(f[a+20+(h*12|0)+8>>2]|0)){Ri(a+20+(h*12|0)|0,e);break}else{f[j>>2]=b;f[i>>2]=j+4;break}}while(0);b=f[c>>2]|0;h=f[e>>2]|0;f[b+60>>2]=h;e=(f[g>>2]|0)+(h<<2)|0;f[c>>2]=0;c=f[e>>2]|0;f[e>>2]=b;if(!c){u=d;return}b=c+88|0;e=f[b>>2]|0;f[b>>2]=0;if(e|0){b=f[e+8>>2]|0;if(b|0){h=e+12|0;if((f[h>>2]|0)!=(b|0))f[h>>2]=b;Oq(b)}Oq(e)}e=f[c+68>>2]|0;if(e|0){b=c+72|0;h=f[b>>2]|0;if((h|0)!=(e|0))f[b>>2]=h+(~((h+-4-e|0)>>>2)<<2);Oq(e)}e=c+64|0;h=f[e>>2]|0;f[e>>2]=0;if(h|0){e=f[h>>2]|0;if(e|0){b=h+4|0;if((f[b>>2]|0)!=(e|0))f[b>>2]=e;Oq(e)}Oq(h)}Oq(c);u=d;return}function Mg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;gk(f[a+4>>2]|0,(f[g+56>>2]|0)-(f[g+52>>2]|0)>>2);g=a+84|0;a=f[g>>2]|0;if(!a){h=f[(f[e>>2]|0)+64>>2]|0;i=(f[h+4>>2]|0)-(f[h>>2]|0)>>2;h=(i>>>0)/3|0;if(i>>>0<=2){u=b;return 1}i=0;do{f[d>>2]=i*3;f[c>>2]=f[d>>2];Zb(e,c);i=i+1|0}while((i|0)<(h|0));u=b;return 1}else{h=f[a>>2]|0;if((f[a+4>>2]|0)==(h|0)){u=b;return 1}a=0;i=h;do{f[d>>2]=f[i+(a<<2)>>2];f[c>>2]=f[d>>2];Zb(e,c);a=a+1|0;h=f[g>>2]|0;i=f[h>>2]|0}while(a>>>0<(f[h+4>>2]|0)-i>>2>>>0);u=b;return 1}return 0}function Ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;d=u;u=u+48|0;e=d+16|0;g=d;h=d+32|0;i=a+28|0;j=f[i>>2]|0;f[h>>2]=j;k=a+20|0;l=(f[k>>2]|0)-j|0;f[h+4>>2]=l;f[h+8>>2]=b;f[h+12>>2]=c;b=l+c|0;l=a+60|0;f[g>>2]=f[l>>2];f[g+4>>2]=h;f[g+8>>2]=2;j=to(Aa(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;m=b;n=h;o=j;while(1){if((o|0)<0)break;m=m-o|0;p=f[n+4>>2]|0;q=o>>>0>p>>>0;r=q?n+8|0:n;s=g+(q<<31>>31)|0;t=o-(q?p:0)|0;f[r>>2]=(f[r>>2]|0)+t;p=r+4|0;f[p>>2]=(f[p>>2]|0)-t;f[e>>2]=f[l>>2];f[e+4>>2]=r;f[e+8>>2]=s;o=to(Aa(146,e|0)|0)|0;if((m|0)==(o|0)){v=3;break a}else{g=s;n=r}}f[a+16>>2]=0;f[i>>2]=0;f[k>>2]=0;f[a>>2]=f[a>>2]|32;if((g|0)==2)w=0;else w=c-(f[n+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=f[a+44>>2]|0;f[a+16>>2]=v+(f[a+48>>2]|0);a=v;f[i>>2]=a;f[k>>2]=a;w=c}u=d;return w|0}function Og(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=6192;b=f[a+68>>2]|0;if(b|0){c=a+72|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+56>>2]|0;if(b|0){d=a+60|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+44>>2]|0;if(b|0){c=a+48|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+32>>2]|0;if(b|0){d=a+36|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+20>>2]|0;if(b|0){c=a+24|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}hi(a+8|0);b=a+4|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;b=a+40|0;d=f[b>>2]|0;if(d|0){c=a+44|0;e=f[c>>2]|0;if((e|0)==(d|0))g=d;else{h=e;do{e=h+-4|0;f[c>>2]=e;i=f[e>>2]|0;f[e>>2]=0;if(i|0){bj(i);Oq(i)}h=f[c>>2]|0}while((h|0)!=(d|0));g=f[b>>2]|0}Oq(g)}bj(a);Oq(a);return}function Pg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a+12|0;d=f[a>>2]|0;e=a+8|0;g=f[e>>2]|0;h=(g|0)==-1;if(!(b[c>>0]|0)){do if(((!h?(i=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(i|0)!=-1):0)?(f[(f[d>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)==0:0)?(j=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(i<<2)>>2]|0,(j|0)!=-1):0)if(!((j>>>0)%3|0)){k=j+2|0;break}else{k=j+-1|0;break}else k=-1;while(0);f[e>>2]=k;return}k=g+1|0;if(((!h?(h=((k>>>0)%3|0|0)==0?g+-2|0:k,(h|0)!=-1):0)?(f[(f[d>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)==0:0)?(k=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(h<<2)>>2]|0,h=k+1|0,(k|0)!=-1):0){g=((h>>>0)%3|0|0)==0?k+-2|0:h;f[e>>2]=g;if((g|0)!=-1){if((g|0)!=(f[a+4>>2]|0))return;f[e>>2]=-1;return}}else f[e>>2]=-1;g=f[a+4>>2]|0;do if((((g|0)!=-1?(a=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(a|0)!=-1):0)?(f[(f[d>>2]|0)+(a>>>5<<2)>>2]&1<<(a&31)|0)==0:0)?(h=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(a<<2)>>2]|0,(h|0)!=-1):0)if(!((h>>>0)%3|0)){l=h+2|0;break}else{l=h+-1|0;break}else l=-1;while(0);f[e>>2]=l;b[c>>0]=0;return}function Qg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d>>2;g=e+1|0;if(g>>>0>1073741823)aq(a);h=a+8|0;i=(f[h>>2]|0)-d|0;d=i>>1;j=i>>2>>>0<536870911?(d>>>0<g>>>0?g:d):1073741823;do if(j)if(j>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{k=ln(j<<2)|0;break}else k=0;while(0);d=k+(e<<2)|0;e=d;g=k+(j<<2)|0;j=f[b>>2]|0;f[b>>2]=0;f[d>>2]=j;j=d+4|0;b=f[a>>2]|0;k=f[c>>2]|0;if((k|0)==(b|0)){l=e;m=b;n=b}else{i=k;k=e;e=d;do{i=i+-4|0;d=f[i>>2]|0;f[i>>2]=0;f[e+-4>>2]=d;e=k+-4|0;k=e}while((i|0)!=(b|0));l=k;m=f[a>>2]|0;n=f[c>>2]|0}f[a>>2]=l;f[c>>2]=j;f[h>>2]=g;g=m;if((n|0)!=(g|0)){h=n;do{h=h+-4|0;n=f[h>>2]|0;f[h>>2]=0;if(n|0)Va[f[(f[n>>2]|0)+4>>2]&127](n)}while((h|0)!=(g|0))}if(!m)return;Oq(m);return}function Rg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=a+4|0;a=f[d>>2]|0;do if(a|0){e=b[c+11>>0]|0;g=e<<24>>24<0;h=g?f[c+4>>2]|0:e&255;e=g?f[c>>2]|0:c;g=d;i=a;a:while(1){j=i;while(1){k=j+16|0;l=b[k+11>>0]|0;m=l<<24>>24<0;n=m?f[j+20>>2]|0:l&255;l=h>>>0<n>>>0?h:n;if((l|0)!=0?(o=Vk(m?f[k>>2]|0:k,e,l)|0,(o|0)!=0):0){if((o|0)>=0)break}else p=6;if((p|0)==6?(p=0,n>>>0>=h>>>0):0)break;n=f[j+4>>2]|0;if(!n){q=g;break a}else j=n}i=f[j>>2]|0;if(!i){q=j;break}else g=j}if((q|0)!=(d|0)){g=q+16|0;i=b[g+11>>0]|0;n=i<<24>>24<0;o=n?f[q+20>>2]|0:i&255;i=o>>>0<h>>>0?o:h;if(i|0?(l=Vk(e,n?f[g>>2]|0:g,i)|0,l|0):0){if((l|0)<0)break;else r=q;return r|0}if(h>>>0>=o>>>0){r=q;return r|0}}}while(0);r=d;return r|0}function Sg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=a+8|0;f[c>>2]=f[b>>2];fg(a+12|0,b+4|0)|0;d=a+44|0;e=b+36|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];if((c|0)==(b|0)){f[a+96>>2]=f[b+88>>2];return}else{ng(a+60|0,f[b+52>>2]|0,f[b+56>>2]|0);ng(a+72|0,f[b+64>>2]|0,f[b+68>>2]|0);ng(a+84|0,f[b+76>>2]|0,f[b+80>>2]|0);f[a+96>>2]=f[b+88>>2];Ig(a+100|0,f[b+92>>2]|0,f[b+96>>2]|0);return}}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;if(((e-h|0)/12|0)>>>0>=b>>>0){i=b;j=h;do{f[j>>2]=f[c>>2];f[j+4>>2]=f[c+4>>2];f[j+8>>2]=f[c+8>>2];j=(f[g>>2]|0)+12|0;f[g>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=f[a>>2]|0;j=(h-i|0)/12|0;h=j+b|0;if(h>>>0>357913941)aq(a);k=(e-i|0)/12|0;i=k<<1;e=k>>>0<178956970?(i>>>0<h>>>0?h:i):357913941;do if(e)if(e>>>0>357913941){i=ra(8)|0;Oo(i,16035);f[i>>2]=7256;va(i|0,1112,110)}else{l=ln(e*12|0)|0;break}else l=0;while(0);i=l+(j*12|0)|0;j=l+(e*12|0)|0;e=b;b=i;l=i;do{f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];b=l+12|0;l=b;e=e+-1|0}while((e|0)!=0);e=f[a>>2]|0;b=(f[g>>2]|0)-e|0;c=i+(((b|0)/-12|0)*12|0)|0;if((b|0)>0)kh(c|0,e|0,b|0)|0;f[a>>2]=c;f[g>>2]=l;f[d>>2]=j;if(!e)return;Oq(e);return}function Ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d>>2;g=e+1|0;if(g>>>0>1073741823)aq(a);h=a+8|0;i=(f[h>>2]|0)-d|0;d=i>>1;j=i>>2>>>0<536870911?(d>>>0<g>>>0?g:d):1073741823;do if(j)if(j>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{k=ln(j<<2)|0;break}else k=0;while(0);d=k+(e<<2)|0;e=d;g=k+(j<<2)|0;j=f[b>>2]|0;f[b>>2]=0;f[d>>2]=j;j=d+4|0;b=f[a>>2]|0;k=f[c>>2]|0;if((k|0)==(b|0)){l=e;m=b;n=b}else{i=k;k=e;e=d;do{i=i+-4|0;d=f[i>>2]|0;f[i>>2]=0;f[e+-4>>2]=d;e=k+-4|0;k=e}while((i|0)!=(b|0));l=k;m=f[a>>2]|0;n=f[c>>2]|0}f[a>>2]=l;f[c>>2]=j;f[h>>2]=g;g=m;if((n|0)!=(g|0)){h=n;do{h=h+-4|0;n=f[h>>2]|0;f[h>>2]=0;if(n|0){bj(n);Oq(n)}}while((h|0)!=(g|0))}if(!m)return;Oq(m);return}function Vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=f[b>>2]|0;g=f[a>>2]|0;h=f[d>>2]|0;d=f[h>>2]|0;i=(f[h+4>>2]|0)-d>>3;if(i>>>0<=e>>>0)aq(h);j=d;if(i>>>0<=g>>>0)aq(h);d=f[j+(e<<3)>>2]|0;k=f[c>>2]|0;if(i>>>0<=k>>>0)aq(h);l=j+(g<<3)|0;m=(f[j+(k<<3)>>2]|0)>>>0<d>>>0;if(d>>>0<(f[l>>2]|0)>>>0){if(m){f[a>>2]=k;f[c>>2]=g;n=1;return n|0}f[a>>2]=e;f[b>>2]=g;d=f[c>>2]|0;if(i>>>0<=d>>>0)aq(h);if((f[j+(d<<3)>>2]|0)>>>0>=(f[l>>2]|0)>>>0){n=1;return n|0}f[b>>2]=d;f[c>>2]=g;n=2;return n|0}if(!m){n=0;return n|0}f[b>>2]=k;f[c>>2]=e;e=f[b>>2]|0;c=f[a>>2]|0;if(i>>>0<=e>>>0)aq(h);if(i>>>0<=c>>>0)aq(h);if((f[j+(e<<3)>>2]|0)>>>0>=(f[j+(c<<3)>>2]|0)>>>0){n=1;return n|0}f[a>>2]=e;f[b>>2]=c;n=2;return n|0}function Wg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;gk(f[a+4>>2]|0,(f[g+28>>2]|0)-(f[g+24>>2]|0)>>2);g=a+84|0;a=f[g>>2]|0;if(!a){h=f[e>>2]|0;i=(f[h+4>>2]|0)-(f[h>>2]|0)>>2;h=(i>>>0)/3|0;if(i>>>0<=2){u=b;return 1}i=0;do{f[d>>2]=i*3;f[c>>2]=f[d>>2];dc(e,c);i=i+1|0}while((i|0)<(h|0));u=b;return 1}else{h=f[a>>2]|0;if((f[a+4>>2]|0)==(h|0)){u=b;return 1}a=0;i=h;do{f[d>>2]=f[i+(a<<2)>>2];f[c>>2]=f[d>>2];dc(e,c);a=a+1|0;h=f[g>>2]|0;i=f[h>>2]|0}while(a>>>0<(f[h+4>>2]|0)-i>>2>>>0);u=b;return 1}return 0}function Xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a=u;u=u+16|0;e=a;if(!b){g=0;u=a;return g|0}h=b+96|0;i=b+100|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;b=f[i>>2]|0;j=f[h>>2]|0;k=(b-j|0)/12|0;l=j;j=b;if(k>>>0>=c>>>0){if(k>>>0>c>>>0?(b=l+(c*12|0)|0,(b|0)!=(j|0)):0)f[i>>2]=j+(~(((j+-12-b|0)>>>0)/12|0)*12|0);if(!c){g=1;u=a;return g|0}}else Tg(h,c-k|0,e);k=0;b=f[h>>2]|0;while(1){j=k*3|0;l=f[d+(j<<2)>>2]|0;m=f[d+(j+1<<2)>>2]|0;n=f[d+(j+2<<2)>>2]|0;j=((f[i>>2]|0)-b|0)/12|0;o=k;k=k+1|0;if(o>>>0<j>>>0){p=b;q=b}else{f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;Tg(h,k-j|0,e);j=f[h>>2]|0;p=j;q=j}f[p+(o*12|0)>>2]=l;f[p+(o*12|0)+4>>2]=m;f[p+(o*12|0)+8>>2]=n;if((k|0)==(c|0)){g=1;break}else b=q}u=a;return g|0}function Yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=u;u=u+80|0;g=e+36|0;h=e;ao(g,c);Ke(h,b,c);Ph(g,h);Ej(h+24|0,f[h+28>>2]|0);Oj(h+12|0,f[h+16>>2]|0);Ej(h,f[h+4>>2]|0);cj(a,g,d);Ej(g+24|0,f[g+28>>2]|0);Oj(g+12|0,f[g+16>>2]|0);Ej(g,f[g+4>>2]|0);u=e;return}function Zg(a){a=+a;var b=0,c=0,d=0,e=0.0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,q=0.0,r=0.0,t=0.0;p[s>>3]=a;b=f[s>>2]|0;c=f[s+4>>2]|0;d=(c|0)<0;do if(d|c>>>0<1048576){if((b|0)==0&(c&2147483647|0)==0){e=-1.0/(a*a);break}if(d){e=(a-a)/0.0;break}else{p[s>>3]=a*18014398509481984.0;g=f[s+4>>2]|0;h=-1077;i=g;j=f[s>>2]|0;k=g;l=9;break}}else if(c>>>0<=2146435071)if((b|0)==0&0==0&(c|0)==1072693248)e=0.0;else{h=-1023;i=c;j=b;k=c;l=9}else e=a;while(0);if((l|0)==9){l=i+614242|0;f[s>>2]=j;f[s+4>>2]=(l&1048575)+1072079006;a=+p[s>>3]+-1.0;m=a*a*.5;n=a/(a+2.0);o=n*n;q=o*o;p[s>>3]=a-m;j=f[s+4>>2]|0;f[s>>2]=0;f[s+4>>2]=j;r=+p[s>>3];t=a-r-m+n*(m+(q*(q*(q*.15313837699209373+.22222198432149784)+.3999999999940942)+o*(q*(q*(q*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));q=r*1.4426950407214463;o=+(h+(l>>>20)|0);m=q+o;e=m+(q+(o-m)+(t*1.4426950407214463+(t+r)*1.6751713164886512e-10))}return +e}function _g(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=u;u=u+16|0;e=d;g=ln(32)|0;f[e>>2]=g;f[e+8>>2]=-2147483616;f[e+4>>2]=17;h=g;i=14390;j=h+17|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+17>>0]=0;g=c+16|0;i=f[g>>2]|0;if(i){h=g;j=i;a:while(1){i=j;while(1){if((f[i+16>>2]|0)>=(a|0))break;k=f[i+4>>2]|0;if(!k){l=h;break a}else i=k}j=f[i>>2]|0;if(!j){l=i;break}else h=i}if(((l|0)!=(g|0)?(f[l+16>>2]|0)<=(a|0):0)?(a=l+20|0,(Jh(a,e)|0)!=0):0)m=a;else n=10}else n=10;if((n|0)==10)m=c;c=Hk(m,e,-1)|0;if((b[e+11>>0]|0)>=0){o=(c|0)==-1;p=c>>>0>6;q=p?-2:c;r=o?-1:q;u=d;return r|0}Oq(f[e>>2]|0);o=(c|0)==-1;p=c>>>0>6;q=p?-2:c;r=o?-1:q;u=d;return r|0}function $g(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=u;u=u+16|0;e=d;g=f[c>>2]|0;f[c>>2]=0;f[e>>2]=g;Lg(a,b,e);g=f[e>>2]|0;f[e>>2]=0;if(g|0){e=g+88|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0){e=f[c+8>>2]|0;if(e|0){h=c+12|0;if((f[h>>2]|0)!=(e|0))f[h>>2]=e;Oq(e)}Oq(c)}c=f[g+68>>2]|0;if(c|0){e=g+72|0;h=f[e>>2]|0;if((h|0)!=(c|0))f[e>>2]=h+(~((h+-4-c|0)>>>2)<<2);Oq(c)}c=g+64|0;h=f[c>>2]|0;f[c>>2]=0;if(h|0){c=f[h>>2]|0;if(c|0){e=h+4|0;if((f[e>>2]|0)!=(c|0))f[e>>2]=c;Oq(c)}Oq(h)}Oq(g)}g=a+84|0;h=a+88|0;a=f[h>>2]|0;c=f[g>>2]|0;e=a-c>>2;if((e|0)>(b|0)){u=d;return}i=b+1|0;b=a;if(i>>>0>e>>>0){Fh(g,i-e|0);u=d;return}if(i>>>0>=e>>>0){u=d;return}e=c+(i<<2)|0;if((e|0)==(b|0)){u=d;return}f[h>>2]=b+(~((b+-4-e|0)>>>2)<<2);u=d;return}function ah(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;g=a+4|0;f[g>>2]=c;f[a+8>>2]=f[c+52>>2];h=f[a+184>>2]|0;i=a+188|0;j=f[i>>2]|0;if((j|0)!=(h|0))f[i>>2]=j+(~((j+-4-h|0)>>>2)<<2);h=f[c+48>>2]|0;c=ln(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=19;j=c;i=15351;k=j+19|0;do{b[j>>0]=b[i>>0]|0;j=j+1|0;i=i+1|0}while((j|0)<(k|0));b[c+19>>0]=0;c=(Jh(h,e)|0)==0;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);h=f[(f[g>>2]|0)+48>>2]|0;if(c){c=(mi(h)|0)>5&1;b[a+352>>0]=c;u=d;return 1}c=ln(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=19;j=c;i=15351;k=j+19|0;do{b[j>>0]=b[i>>0]|0;j=j+1|0;i=i+1|0}while((j|0)<(k|0));b[c+19>>0]=0;c=(Yj(h,e,0)|0)&1;b[a+352>>0]=c;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);u=d;return 1}function bh(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0;c=a+108|0;d=(f[a+112>>2]|0)-(f[c>>2]|0)|0;e=(d|0)/12|0;g=a+4|0;ci(e,f[(f[g>>2]|0)+44>>2]|0)|0;if(!d)return 1;d=0;a=0;while(1){i=f[c>>2]|0;j=i+(d*12|0)+4|0;ci((f[j>>2]|0)-a|0,f[(f[g>>2]|0)+44>>2]|0)|0;ci((f[j>>2]|0)-(f[i+(d*12|0)>>2]|0)|0,f[(f[g>>2]|0)+44>>2]|0)|0;d=d+1|0;if(d>>>0>=e>>>0)break;else a=f[j>>2]|0}zi(f[(f[g>>2]|0)+44>>2]|0,e,0,0)|0;a=0;do{d=f[(f[g>>2]|0)+44>>2]|0;j=d+16|0;i=f[j+4>>2]|0;if((i|0)>0|(i|0)==0&(f[j>>2]|0)>>>0>0){j=f[d+12>>2]|0;d=j+4|0;i=f[d>>2]|0;k=b[(f[c>>2]|0)+(a*12|0)+8>>0]&1;l=i>>>3;m=i&7;i=(f[j>>2]|0)+l|0;b[i>>0]=(1<<m^255)&(h[i>>0]|0);i=(f[j>>2]|0)+l|0;b[i>>0]=k<<m|(h[i>>0]|0);f[d>>2]=(f[d>>2]|0)+1}a=a+1|0}while(a>>>0<e>>>0);eg(f[(f[g>>2]|0)+44>>2]|0);return 1}function ch(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=u;u=u+80|0;g=e+36|0;h=e;io(g,c);Ke(h,b,c);Ph(g,h);Ej(h+24|0,f[h+28>>2]|0);Oj(h+12|0,f[h+16>>2]|0);Ej(h,f[h+4>>2]|0);cj(a,g,d);Ej(g+24|0,f[g+28>>2]|0);Oj(g+12|0,f[g+16>>2]|0);Ej(g,f[g+4>>2]|0);u=e;return}function dh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;g=a+4|0;f[g>>2]=c;f[a+8>>2]=f[c+52>>2];h=f[a+184>>2]|0;i=a+188|0;j=f[i>>2]|0;if((j|0)!=(h|0))f[i>>2]=j+(~((j+-4-h|0)>>>2)<<2);h=f[c+48>>2]|0;c=ln(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=19;j=c;i=15351;k=j+19|0;do{b[j>>0]=b[i>>0]|0;j=j+1|0;i=i+1|0}while((j|0)<(k|0));b[c+19>>0]=0;c=(Jh(h,e)|0)==0;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);h=f[(f[g>>2]|0)+48>>2]|0;if(c){c=(mi(h)|0)>5&1;b[a+288>>0]=c;u=d;return 1}c=ln(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=19;j=c;i=15351;k=j+19|0;do{b[j>>0]=b[i>>0]|0;j=j+1|0;i=i+1|0}while((j|0)<(k|0));b[c+19>>0]=0;c=(Yj(h,e,0)|0)&1;b[a+288>>0]=c;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);u=d;return 1}function eh(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=u;u=u+32|0;h=g+16|0;i=g+8|0;j=g;k=d-e|0;d=a+8|0;if((k|0)>0){a=0-e|0;l=i+4|0;m=j+4|0;n=h+4|0;o=k;do{k=b+(o<<2)|0;p=k+(a<<2)|0;q=c+(o<<2)|0;r=f[k+4>>2]|0;s=f[p>>2]|0;t=f[p+4>>2]|0;f[i>>2]=f[k>>2];f[l>>2]=r;f[j>>2]=s;f[m>>2]=t;Od(h,d,i,j);f[q>>2]=f[h>>2];f[q+4>>2]=f[n>>2];o=o-e|0}while((o|0)>0)}o=e>>>0>1073741823?-1:e<<2;e=Lq(o)|0;sj(e|0,0,o|0)|0;o=f[b+4>>2]|0;n=f[e>>2]|0;m=f[e+4>>2]|0;f[i>>2]=f[b>>2];f[i+4>>2]=o;f[j>>2]=n;f[j+4>>2]=m;Od(h,d,i,j);f[c>>2]=f[h>>2];f[c+4>>2]=f[h+4>>2];Mq(e);u=g;return 1}function fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+32|0;d=c+12|0;e=c;g=f[b+100>>2]|0;h=f[b+96>>2]|0;b=g-h|0;i=(b|0)/12|0;f[d>>2]=0;j=d+4|0;f[j>>2]=0;f[d+8>>2]=0;k=h;do if(b)if(i>>>0>357913941)aq(d);else{l=ln(b)|0;f[d>>2]=l;f[d+8>>2]=l+(i*12|0);sj(l|0,0,b|0)|0;f[j>>2]=l+b;m=l;break}else m=0;while(0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;if((g|0)!=(h|0)){h=e+4|0;g=e+8|0;b=0;do{l=k+(b*12|0)|0;f[e>>2]=f[l>>2];f[e+4>>2]=f[l+4>>2];f[e+8>>2]=f[l+8>>2];f[m+(b*12|0)>>2]=f[e>>2];f[m+(b*12|0)+4>>2]=f[h>>2];f[m+(b*12|0)+8>>2]=f[g>>2];b=b+1|0}while(b>>>0<i>>>0)}Kj(a,d);a=f[d>>2]|0;if(!a){u=c;return}d=f[j>>2]|0;if((d|0)!=(a|0))f[j>>2]=d+(~(((d+-12-a|0)>>>0)/12|0)*12|0);Oq(a);u=c;return}function gh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;if(c>>>0>4294967279)aq(a);d=a+11|0;e=b[d>>0]|0;g=e<<24>>24<0;if(g){h=f[a+4>>2]|0;i=(f[a+8>>2]&2147483647)+-1|0}else{h=e&255;i=10}j=h>>>0>c>>>0?h:c;c=j>>>0<11;k=c?10:(j+16&-16)+-1|0;do if((k|0)!=(i|0)){do if(c){j=f[a>>2]|0;if(g){l=0;m=j;n=a;o=13}else{Fo(a,j,(e&255)+1|0)|0;Oq(j);o=16}}else{j=k+1|0;p=ln(j)|0;if(g){l=1;m=f[a>>2]|0;n=p;o=13;break}else{Fo(p,a,(e&255)+1|0)|0;q=p;r=j;s=a+4|0;o=15;break}}while(0);if((o|0)==13){j=a+4|0;Fo(n,m,(f[j>>2]|0)+1|0)|0;Oq(m);if(l){q=n;r=k+1|0;s=j;o=15}else o=16}if((o|0)==15){f[a+8>>2]=r|-2147483648;f[s>>2]=h;f[a>>2]=q;break}else if((o|0)==16){b[d>>0]=h;break}}while(0);return}function hh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=f[b>>2]|0;if((c|0)==-1){d=-1;return d|0}b=f[(f[a+24>>2]|0)+(c<<2)>>2]|0;if((b|0)==-1){d=0;return d|0}c=a+12|0;a=0;e=0;g=b;a:while(1){b:do if(e){h=a+1|0;i=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((i|0)==-1){d=h;j=15;break a}k=f[(f[c>>2]|0)+(i<<2)>>2]|0;if((k|0)==-1){d=h;j=15;break a}if(!((k>>>0)%3|0)){l=k+2|0;m=h;break}else{l=k+-1|0;m=h;break}}else{h=a;k=g;while(1){i=h+1|0;n=k+1|0;o=((n>>>0)%3|0|0)==0?k+-2|0:n;if((o|0)==-1){l=b;m=i;break b}n=f[(f[c>>2]|0)+(o<<2)>>2]|0;o=n+1|0;if((n|0)==-1){l=b;m=i;break b}k=((o>>>0)%3|0|0)==0?n+-2|0:o;if((k|0)==-1){l=b;m=i;break b}if((k|0)==(b|0)){d=i;j=15;break a}else h=i}}while(0);if((l|0)==-1){d=m;j=15;break}else{a=m;e=1;g=l}}if((j|0)==15)return d|0;return 0}function ih(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=a+8|0;Vg(a,a+4|0,d,c)|0;e=a+12|0;if((e|0)==(b|0))return;g=f[c>>2]|0;c=f[g>>2]|0;h=(f[g+4>>2]|0)-c>>3;i=c;c=e;e=d;a:while(1){d=f[c>>2]|0;j=f[e>>2]|0;if(h>>>0<=d>>>0){k=5;break}if(h>>>0<=j>>>0){k=7;break}l=i+(d<<3)|0;if((f[l>>2]|0)>>>0<(f[i+(j<<3)>>2]|0)>>>0){m=e;n=c;o=j;while(1){f[n>>2]=o;if((m|0)==(a|0)){p=a;break}j=m+-4|0;o=f[j>>2]|0;if(h>>>0<=o>>>0){k=11;break a}if((f[l>>2]|0)>>>0>=(f[i+(o<<3)>>2]|0)>>>0){p=m;break}else{q=m;m=j;n=q}}f[p>>2]=d}n=c+4|0;if((n|0)==(b|0)){k=3;break}else{m=c;c=n;e=m}}if((k|0)==3)return;else if((k|0)==5)aq(g);else if((k|0)==7)aq(g);else if((k|0)==11)aq(g)}function jh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=Vg(a,b,c,e)|0;h=f[d>>2]|0;i=f[c>>2]|0;j=f[e>>2]|0;e=f[j>>2]|0;k=(f[j+4>>2]|0)-e>>3;if(k>>>0<=h>>>0)aq(j);l=e;if(k>>>0<=i>>>0)aq(j);if((f[l+(h<<3)>>2]|0)>>>0>=(f[l+(i<<3)>>2]|0)>>>0){m=g;return m|0}f[c>>2]=h;f[d>>2]=i;i=f[c>>2]|0;d=f[b>>2]|0;if(k>>>0<=i>>>0)aq(j);if(k>>>0<=d>>>0)aq(j);if((f[l+(i<<3)>>2]|0)>>>0>=(f[l+(d<<3)>>2]|0)>>>0){m=g+1|0;return m|0}f[b>>2]=i;f[c>>2]=d;d=f[b>>2]|0;c=f[a>>2]|0;if(k>>>0<=d>>>0)aq(j);if(k>>>0<=c>>>0)aq(j);if((f[l+(d<<3)>>2]|0)>>>0>=(f[l+(c<<3)>>2]|0)>>>0){m=g+2|0;return m|0}f[a>>2]=d;f[b>>2]=c;m=g+3|0;return m|0}function kh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((d|0)>=8192)return Da(a|0,c|0,d|0)|0;e=a|0;g=a+d|0;if((a&3)==(c&3)){while(a&3){if(!d)return e|0;b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0;d=d-1|0}h=g&-4|0;d=h-64|0;while((a|0)<=(d|0)){f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];f[a+12>>2]=f[c+12>>2];f[a+16>>2]=f[c+16>>2];f[a+20>>2]=f[c+20>>2];f[a+24>>2]=f[c+24>>2];f[a+28>>2]=f[c+28>>2];f[a+32>>2]=f[c+32>>2];f[a+36>>2]=f[c+36>>2];f[a+40>>2]=f[c+40>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=f[c+48>>2];f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];a=a+64|0;c=c+64|0}while((a|0)<(h|0)){f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}}else{h=g-4|0;while((a|0)<(h|0)){b[a>>0]=b[c>>0]|0;b[a+1>>0]=b[c+1>>0]|0;b[a+2>>0]=b[c+2>>0]|0;b[a+3>>0]=b[c+3>>0]|0;a=a+4|0;c=c+4|0}}while((a|0)<(g|0)){b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0}return e|0}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;c=u;u=u+16|0;d=c+4|0;e=c;f[a>>2]=1232;g=a+4|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;f[g+24>>2]=0;f[g+28>>2]=0;f[d>>2]=b;b=a+4|0;g=a+8|0;Ri(b,d);h=f[d>>2]|0;i=a+20|0;j=f[i>>2]|0;k=a+16|0;a=f[k>>2]|0;l=j-a>>2;m=a;if((h|0)<(l|0)){n=m;o=h;p=f[g>>2]|0;q=f[b>>2]|0;r=p-q|0;s=r>>2;t=s+-1|0;v=n+(o<<2)|0;f[v>>2]=t;u=c;return}a=h+1|0;f[e>>2]=-1;w=j;if(a>>>0<=l>>>0)if(a>>>0<l>>>0?(j=m+(a<<2)|0,(j|0)!=(w|0)):0){f[i>>2]=w+(~((w+-4-j|0)>>>2)<<2);x=h;y=m}else{x=h;y=m}else{Ch(k,a-l|0,e);x=f[d>>2]|0;y=f[k>>2]|0}n=y;o=x;p=f[g>>2]|0;q=f[b>>2]|0;r=p-q|0;s=r>>2;t=s+-1|0;v=n+(o<<2)|0;f[v>>2]=t;u=c;return}function mh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;b=a+4|0;c=f[b>>2]|0;d=(f[c+12>>2]|0)-(f[c+8>>2]|0)|0;c=d>>2;a:do if((d|0)>0){e=0;while(1){if(!(Ra[f[(f[a>>2]|0)+36>>2]&127](a,e)|0)){g=0;break}e=e+1|0;h=f[b>>2]|0;i=(f[h+12>>2]|0)-(f[h+8>>2]|0)>>2;if((e|0)>=(i|0)){j=i;break a}}return g|0}else j=c;while(0);c=a+20|0;b=a+24|0;d=f[b>>2]|0;e=f[c>>2]|0;i=d-e>>2;h=e;e=d;if(j>>>0<=i>>>0){if(j>>>0<i>>>0?(d=h+(j<<2)|0,(d|0)!=(e|0)):0)f[b>>2]=e+(~((e+-4-d|0)>>>2)<<2)}else Ci(c,j-i|0);i=f[a+12>>2]|0;j=f[a+8>>2]|0;a=j;if((i|0)==(j|0)){g=1;return g|0}d=i-j>>2;j=0;do{i=f[a+(j<<2)>>2]|0;e=f[i+8>>2]|0;b=f[i+4>>2]|0;i=b;if((e|0)!=(b|0)?(h=f[c>>2]|0,k=e-b>>2,f[h+(f[i>>2]<<2)>>2]=j,k>>>0>1):0){b=1;do{f[h+(f[i+(b<<2)>>2]<<2)>>2]=j;b=b+1|0}while(b>>>0<k>>>0)}j=j+1|0}while(j>>>0<d>>>0);g=1;return g|0}function nh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=f[c+88>>2]|0;if(!d){e=0;return e|0}if((f[d>>2]|0)!=1){e=0;return e|0}g=d+8|0;d=f[g>>2]|0;f[a+4>>2]=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;i=a+8|0;j=c+24|0;c=b[j>>0]|0;k=c<<24>>24;l=a+12|0;m=f[l>>2]|0;n=f[i>>2]|0;o=m-n>>2;p=n;n=m;if(o>>>0>=k>>>0)if(o>>>0>k>>>0?(m=p+(k<<2)|0,(m|0)!=(n|0)):0){f[l>>2]=n+(~((n+-4-m|0)>>>2)<<2);q=c;r=d}else{q=c;r=d}else{Ci(i,k-o|0);q=b[j>>0]|0;r=f[g>>2]|0}g=r+4|0;j=h[g>>0]|h[g+1>>0]<<8|h[g+2>>0]<<16|h[g+3>>0]<<24;if(q<<24>>24>0){g=f[i>>2]|0;i=q<<24>>24;q=j;o=4;k=0;while(1){f[g+(k<<2)>>2]=q;o=o+4|0;k=k+1|0;d=r+o|0;c=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;if((k|0)>=(i|0)){s=c;break}else q=c}}else s=j;f[a+20>>2]=s;e=1;return e|0}function oh(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;do if(!(fp(a,f[c+8>>2]|0,g)|0)){if(!(fp(a,f[c>>2]|0,g)|0)){h=f[a+8>>2]|0;Za[f[(f[h>>2]|0)+24>>2]&3](h,c,d,e,g);break}if((f[c+16>>2]|0)!=(d|0)?(h=c+20|0,(f[h>>2]|0)!=(d|0)):0){f[c+32>>2]=e;i=c+44|0;if((f[i>>2]|0)==4)break;j=c+52|0;b[j>>0]=0;k=c+53|0;b[k>>0]=0;l=f[a+8>>2]|0;_a[f[(f[l>>2]|0)+20>>2]&3](l,c,d,d,1,g);if(b[k>>0]|0)if(!(b[j>>0]|0)){m=3;n=11}else o=3;else{m=4;n=11}if((n|0)==11){f[h>>2]=d;h=c+40|0;f[h>>2]=(f[h>>2]|0)+1;if((f[c+36>>2]|0)==1?(f[c+24>>2]|0)==2:0){b[c+54>>0]=1;o=m}else o=m}f[i>>2]=o;break}if((e|0)==1)f[c+32>>2]=1}else Vm(0,c,d,e);while(0);return}function ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e+12|0;h=e+8|0;i=e;f[i>>2]=f[b>>2];f[g>>2]=f[i>>2];i=Kd(a,g,h,e+4|0,c)|0;c=f[i>>2]|0;if(c|0){j=c;u=e;return j|0}c=ln(40)|0;pj(c+16|0,d);pj(c+28|0,d+12|0);d=f[h>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[i>>2]=c;d=f[f[a>>2]>>2]|0;if(!d)k=c;else{f[a>>2]=d;k=f[i>>2]|0}Oe(f[a+4>>2]|0,k);k=a+8|0;f[k>>2]=(f[k>>2]|0)+1;j=c;u=e;return j|0}function qh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=u;u=u+16|0;g=e;h=a+4|0;f[h>>2]=0;if(!c){u=e;return}i=a+8|0;j=f[i>>2]|0;k=j<<5;if(k>>>0<c>>>0){f[g>>2]=0;l=g+4|0;f[l>>2]=0;m=g+8|0;f[m>>2]=0;if((c|0)<0)aq(a);n=j<<6;j=c+31&-32;vi(g,k>>>0<1073741823?(n>>>0<j>>>0?j:n):2147483647);n=f[a>>2]|0;f[a>>2]=f[g>>2];f[g>>2]=n;g=f[h>>2]|0;f[h>>2]=c;f[l>>2]=g;g=f[i>>2]|0;f[i>>2]=f[m>>2];f[m>>2]=g;if(n|0)Oq(n);o=a}else{f[h>>2]=c;o=a}a=f[o>>2]|0;o=a;h=a;a=c>>>5;n=a<<2;if(!(b[d>>0]|0)){sj(h|0,0,n|0)|0;d=c&31;g=o+(a<<2)|0;if(!d){u=e;return}f[g>>2]=f[g>>2]&~(-1>>>(32-d|0));u=e;return}else{sj(h|0,-1,n|0)|0;n=c&31;c=o+(a<<2)|0;if(!n){u=e;return}f[c>>2]=f[c>>2]|-1>>>(32-n|0);u=e;return}}function rh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;f[g>>2]=f[a+12>>2];h=b+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if((k|0)>0|(k|0)==0&j>>>0>0){l=k;m=j}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=h;l=f[j+4>>2]|0;m=f[j>>2]|0}f[g>>2]=f[a+20>>2];if((l|0)>0|(l|0)==0&m>>>0>0){n=a+88|0;ld(n,b);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;n=a+88|0;ld(n,b);u=c;return 1}function sh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;f[g>>2]=f[a+12>>2];h=b+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if((k|0)>0|(k|0)==0&j>>>0>0){l=k;m=j}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=h;l=f[j+4>>2]|0;m=f[j>>2]|0}f[g>>2]=f[a+16>>2];if((l|0)>0|(l|0)==0&m>>>0>0){n=a+108|0;ld(n,b);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;n=a+108|0;ld(n,b);u=c;return 1}function th(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=a+32|0;d=f[a+64>>2]|0;e=(Qa[f[(f[d>>2]|0)+40>>2]&127](d)|0)+52|0;d=f[e>>2]|0;zi(c,(((f[d+100>>2]|0)-(f[d+96>>2]|0)|0)/12|0)*3|0,0,1)|0;d=a+68|0;e=f[d>>2]|0;g=(f[a+72>>2]|0)-e|0;if((g|0)<=0){eg(c);return}i=a+48|0;j=a+44|0;a=(g>>>2)+-1|0;g=e;while(1){e=f[g+(a<<2)>>2]|0;k=f[3524+(e<<2)>>2]|0;l=i;m=f[l+4>>2]|0;if((m|0)>0|(m|0)==0&(f[l>>2]|0)>>>0>0?(l=f[j>>2]|0,171>>>e&1|0):0){m=l+4|0;n=0;o=f[m>>2]|0;do{p=o>>>3;q=o&7;r=(f[l>>2]|0)+p|0;b[r>>0]=(1<<q^255)&(h[r>>0]|0);r=(f[l>>2]|0)+p|0;b[r>>0]=(e>>>n&1)<<q|(h[r>>0]|0);o=(f[m>>2]|0)+1|0;f[m>>2]=o;n=n+1|0}while((n|0)!=(k|0))}k=a+-1|0;if((k|0)<=-1)break;a=k;g=f[d>>2]|0}eg(c);return}function uh(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+48|0;h=g;i=g+32|0;if(!c){j=0;u=g;return j|0}Gn(h);do if((dm(c,0)|0)!=-1){if(d){if(!(Qa[f[(f[c>>2]|0)+16>>2]&127](c)|0)){k=0;break}Va[f[(f[c>>2]|0)+20>>2]&127](c)}Yg(i,a,c,h);l=(f[i>>2]|0)==0;m=i+4|0;if((b[m+11>>0]|0)<0)Oq(f[m>>2]|0);if(l){l=f[h>>2]|0;m=h+4|0;rg(e,l,l+((f[m>>2]|0)-l)|0);k=(f[m>>2]|0)-(f[h>>2]|0)|0}else k=0}else k=0;while(0);e=h+12|0;i=f[e>>2]|0;f[e>>2]=0;if(i|0)Oq(i);i=f[h>>2]|0;if(i|0){e=h+4|0;if((f[e>>2]|0)!=(i|0))f[e>>2]=i;Oq(i)}j=k;u=g;return j|0}function vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=u;u=u+16|0;d=c;e=f[(f[a>>2]|0)+8>>2]|0;g=a+8|0;h=a+12|0;i=(f[h>>2]|0)-(f[g>>2]|0)>>2;j=f[b>>2]|0;f[b>>2]=0;f[d>>2]=j;Xa[e&15](a,i,d);i=f[d>>2]|0;f[d>>2]=0;if(!i){k=f[h>>2]|0;l=f[g>>2]|0;m=k-l|0;n=m>>2;o=n+-1|0;u=c;return o|0}d=i+88|0;a=f[d>>2]|0;f[d>>2]=0;if(a|0){d=f[a+8>>2]|0;if(d|0){e=a+12|0;if((f[e>>2]|0)!=(d|0))f[e>>2]=d;Oq(d)}Oq(a)}a=f[i+68>>2]|0;if(a|0){d=i+72|0;e=f[d>>2]|0;if((e|0)!=(a|0))f[d>>2]=e+(~((e+-4-a|0)>>>2)<<2);Oq(a)}a=i+64|0;e=f[a>>2]|0;f[a>>2]=0;if(e|0){a=f[e>>2]|0;if(a|0){d=e+4|0;if((f[d>>2]|0)!=(a|0))f[d>>2]=a;Oq(a)}Oq(e)}Oq(i);k=f[h>>2]|0;l=f[g>>2]|0;m=k-l|0;n=m>>2;o=n+-1|0;u=c;return o|0}function wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;if(d-g>>3>>>0>=b>>>0){h=b;i=g;do{j=i;f[j>>2]=0;f[j+4>>2]=0;i=(f[e>>2]|0)+8|0;f[e>>2]=i;h=h+-1|0}while((h|0)!=0);return}h=f[a>>2]|0;i=g-h>>3;g=i+b|0;if(g>>>0>536870911)aq(a);j=d-h|0;h=j>>2;d=j>>3>>>0<268435455?(h>>>0<g>>>0?g:h):536870911;do if(d)if(d>>>0>536870911){h=ra(8)|0;Oo(h,16035);f[h>>2]=7256;va(h|0,1112,110)}else{k=ln(d<<3)|0;break}else k=0;while(0);h=k+(i<<3)|0;i=k+(d<<3)|0;d=b;b=h;k=h;do{g=b;f[g>>2]=0;f[g+4>>2]=0;b=k+8|0;k=b;d=d+-1|0}while((d|0)!=0);d=f[a>>2]|0;b=(f[e>>2]|0)-d|0;g=h+(0-(b>>3)<<3)|0;if((b|0)>0)kh(g|0,d|0,b|0)|0;f[a>>2]=g;f[e>>2]=k;f[c>>2]=i;if(!d)return;Oq(d);return}function xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=u;u=u+16|0;e=d;if(!(bn(a,b,c)|0)){g=0;u=d;return g|0}if((Qa[f[(f[a>>2]|0)+32>>2]&127](a)|0)<<24>>24==1?((f[(f[a+8>>2]|0)+28>>2]|0)+-1|0)>>>0>=6:0){g=0;u=d;return g|0}h=_g(c,f[b+48>>2]|0)|0;Xa[f[(f[a>>2]|0)+48>>2]&15](e,a,h);h=a+36|0;b=f[e>>2]|0;f[e>>2]=0;c=f[h>>2]|0;f[h>>2]=b;if(!c){f[e>>2]=0;i=b}else{Va[f[(f[c>>2]|0)+4>>2]&127](c);c=f[e>>2]|0;f[e>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);i=f[h>>2]|0}if(!i){g=1;u=d;return g|0}if(Ra[f[(f[a>>2]|0)+36>>2]&127](a,i)|0){g=1;u=d;return g|0}i=f[h>>2]|0;f[h>>2]=0;if(!i){g=1;u=d;return g|0}Va[f[(f[i>>2]|0)+4>>2]&127](i);g=1;u=d;return g|0}function yh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=u;u=u+16|0;g=e+4|0;h=e;i=e+8|0;j=a&255;b[i>>0]=j&127;do if(c>>>0>0|(c|0)==0&a>>>0>127){b[i>>0]=j|-128;k=d+16|0;l=f[k+4>>2]|0;if((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0){m=0;break}else{f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,i,i+1|0)|0;k=Yn(a|0,c|0,7)|0;m=yh(k,I,d)|0;break}}else{k=d+16|0;l=f[k+4>>2]|0;if((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0){m=0;break}f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,i,i+1|0)|0;n=1;u=e;return n|0}while(0);n=m;u=e;return n|0}function zh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;g=f[(f[(f[d+4>>2]|0)+8>>2]|0)+(c<<2)>>2]|0;if((b|0)==-1)h=Xi(c,d)|0;else h=b;if((h|0)==-2)i=0;else{do if((Qa[f[(f[d>>2]|0)+8>>2]&127](d)|0)==1){Xf(a,d,h,c,e,514);if(!(f[a>>2]|0)){f[a>>2]=0;break}else return}while(0);c=ln(44)|0;f[c>>2]=1544;f[c+4>>2]=g;g=c+8|0;f[g>>2]=f[e>>2];f[g+4>>2]=f[e+4>>2];f[g+8>>2]=f[e+8>>2];f[g+12>>2]=f[e+12>>2];f[g+16>>2]=f[e+16>>2];f[g+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);f[c>>2]=1600;i=c}f[a>>2]=i;return}function Ah(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+224|0;g=e+120|0;h=e+80|0;i=e;j=e+136|0;k=h;l=k+40|0;do{f[k>>2]=0;k=k+4|0}while((k|0)<(l|0));f[g>>2]=f[d>>2];if((qb(0,c,g,i,h)|0)<0)m=-1;else{if((f[a+76>>2]|0)>-1)n=Tq(a)|0;else n=0;d=f[a>>2]|0;k=d&32;if((b[a+74>>0]|0)<1)f[a>>2]=d&-33;d=a+48|0;if(!(f[d>>2]|0)){l=a+44|0;o=f[l>>2]|0;f[l>>2]=j;p=a+28|0;f[p>>2]=j;q=a+20|0;f[q>>2]=j;f[d>>2]=80;r=a+16|0;f[r>>2]=j+80;j=qb(a,c,g,i,h)|0;if(!o)s=j;else{Sa[f[a+36>>2]&31](a,0,0)|0;t=(f[q>>2]|0)==0?-1:j;f[l>>2]=o;f[d>>2]=0;f[r>>2]=0;f[p>>2]=0;f[q>>2]=0;s=t}}else s=qb(a,c,g,i,h)|0;h=f[a>>2]|0;f[a>>2]=h|k;if(n|0)Sq(a);m=(h&32|0)==0?s:-1}u=e;return m|0}function Bh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=d-e>>2;h=d;if(g>>>0<b>>>0){uf(a,b-g|0);return}if(g>>>0<=b>>>0)return;g=e+(b<<2)|0;if((g|0)==(h|0))return;else i=h;do{h=i+-4|0;f[c>>2]=h;b=f[h>>2]|0;f[h>>2]=0;if(b|0){h=b+88|0;e=f[h>>2]|0;f[h>>2]=0;if(e|0){h=f[e+8>>2]|0;if(h|0){a=e+12|0;if((f[a>>2]|0)!=(h|0))f[a>>2]=h;Oq(h)}Oq(e)}e=f[b+68>>2]|0;if(e|0){h=b+72|0;a=f[h>>2]|0;if((a|0)!=(e|0))f[h>>2]=a+(~((a+-4-e|0)>>>2)<<2);Oq(e)}e=b+64|0;a=f[e>>2]|0;f[e>>2]=0;if(a|0){e=f[a>>2]|0;if(e|0){h=a+4|0;if((f[h>>2]|0)!=(e|0))f[h>>2]=e;Oq(e)}Oq(a)}Oq(b)}i=f[c>>2]|0}while((i|0)!=(g|0));return}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;i=h;if(e-h>>2>>>0>=b>>>0){j=b;k=i;while(1){f[k>>2]=f[c>>2];j=j+-1|0;if(!j)break;else k=k+4|0}f[g>>2]=i+(b<<2);return}i=f[a>>2]|0;k=h-i|0;h=k>>2;j=h+b|0;if(j>>>0>1073741823)aq(a);l=e-i|0;e=l>>1;m=l>>2>>>0<536870911?(e>>>0<j>>>0?j:e):1073741823;do if(m)if(m>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}else{e=ln(m<<2)|0;n=e;o=e;break}else{n=0;o=0}while(0);e=n+(h<<2)|0;h=n+(m<<2)|0;m=b;j=e;while(1){f[j>>2]=f[c>>2];m=m+-1|0;if(!m)break;else j=j+4|0}if((k|0)>0)kh(o|0,i|0,k|0)|0;f[a>>2]=n;f[g>>2]=e+(b<<2);f[d>>2]=h;if(!i)return;Oq(i);return}function Dh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=(f[a>>2]|0)+1794895138|0;g=gp(f[a+8>>2]|0,e)|0;h=gp(f[a+12>>2]|0,e)|0;i=gp(f[a+16>>2]|0,e)|0;a:do if((g>>>0<c>>>2>>>0?(j=c-(g<<2)|0,h>>>0<j>>>0&i>>>0<j>>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=gp(f[a+(q<<2)>>2]|0,e)|0;s=gp(f[a+(q+1<<2)>>2]|0,e)|0;if(!(s>>>0<c>>>0&r>>>0<(c-s|0)>>>0)){t=0;break a}if(b[a+(s+r)>>0]|0){t=0;break a}r=hl(d,a+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}else{l=s?l:o;m=s?n:m-n|0}}m=p+k|0;l=gp(f[a+(m<<2)>>2]|0,e)|0;j=gp(f[a+(m+1<<2)>>2]|0,e)|0;if(j>>>0<c>>>0&l>>>0<(c-j|0)>>>0)t=(b[a+(j+l)>>0]|0)==0?a+j|0:0;else t=0}else t=0;while(0);return t|0}function Eh(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=u;u=u+64|0;i=h;j=f[a>>2]|0;k=a+(f[j+-8>>2]|0)|0;l=f[j+-4>>2]|0;f[i>>2]=e;f[i+4>>2]=a;f[i+8>>2]=c;f[i+12>>2]=g;g=i+16|0;c=i+20|0;a=i+24|0;j=i+28|0;m=i+32|0;n=i+40|0;o=g;p=o+36|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));d[g+36>>1]=0;b[g+38>>0]=0;a:do if(fp(l,e,0)|0){f[i+48>>2]=1;_a[f[(f[l>>2]|0)+20>>2]&3](l,i,k,k,1,0);q=(f[a>>2]|0)==1?k:0}else{Za[f[(f[l>>2]|0)+24>>2]&3](l,i,k,1,0);switch(f[i+36>>2]|0){case 0:{q=(f[n>>2]|0)==1&(f[j>>2]|0)==1&(f[m>>2]|0)==1?f[c>>2]|0:0;break a;break}case 1:break;default:{q=0;break a}}if((f[a>>2]|0)!=1?!((f[n>>2]|0)==0&(f[j>>2]|0)==1&(f[m>>2]|0)==1):0){q=0;break}q=f[g>>2]|0}while(0);u=h;return q|0}function Fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(d-g>>2>>>0>=b>>>0){i=b;j=h;while(1){f[j>>2]=1;i=i+-1|0;if(!i)break;else j=j+4|0}f[e>>2]=h+(b<<2);return}h=f[a>>2]|0;j=g-h|0;g=j>>2;i=g+b|0;if(i>>>0>1073741823)aq(a);k=d-h|0;d=k>>1;l=k>>2>>>0<536870911?(d>>>0<i>>>0?i:d):1073741823;do if(l)if(l>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{d=ln(l<<2)|0;m=d;n=d;break}else{m=0;n=0}while(0);d=m+(g<<2)|0;g=m+(l<<2)|0;l=b;i=d;while(1){f[i>>2]=1;l=l+-1|0;if(!l)break;else i=i+4|0}if((j|0)>0)kh(n|0,h|0,j|0)|0;f[a>>2]=m;f[e>>2]=d+(b<<2);f[c>>2]=g;if(!h)return;Oq(h);return}function Gh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;if(!c){g=0;u=d;return g|0}h=a+84|0;i=f[h>>2]|0;j=a+88|0;k=f[j>>2]|0;if((k|0)!=(i|0))f[j>>2]=k+(~((k+-4-i|0)>>>2)<<2);f[h>>2]=0;f[j>>2]=0;f[a+92>>2]=0;if(i|0)Oq(i);i=a+72|0;j=f[i>>2]|0;h=a+76|0;if((f[h>>2]|0)!=(j|0))f[h>>2]=j;f[i>>2]=0;f[h>>2]=0;f[a+80>>2]=0;if(j|0)Oq(j);j=c+4|0;h=(f[j>>2]|0)-(f[c>>2]|0)>>2;b[e>>0]=0;qh(a,h,e);h=c+24|0;i=c+28|0;k=(f[i>>2]|0)-(f[h>>2]|0)>>2;b[e>>0]=0;qh(a+12|0,k,e);hg(a+28|0,(f[j>>2]|0)-(f[c>>2]|0)>>2,6180);gk(a+52|0,(f[i>>2]|0)-(f[h>>2]|0)>>2);gk(a+40|0,(f[i>>2]|0)-(f[h>>2]|0)>>2);f[a+64>>2]=c;b[a+24>>0]=1;g=1;u=d;return g|0}function Hh(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a+12|0;d=f[a>>2]|0;e=a+8|0;g=f[e>>2]|0;h=(g|0)==-1;if(!(b[c>>0]|0)){do if((!h?(i=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(i|0)!=-1):0)?(j=f[(f[d+12>>2]|0)+(i<<2)>>2]|0,(j|0)!=-1):0)if(!((j>>>0)%3|0)){k=j+2|0;break}else{k=j+-1|0;break}else k=-1;while(0);f[e>>2]=k;return}k=g+1|0;if((!h?(h=((k>>>0)%3|0|0)==0?g+-2|0:k,(h|0)!=-1):0)?(k=f[(f[d+12>>2]|0)+(h<<2)>>2]|0,h=k+1|0,(k|0)!=-1):0){g=((h>>>0)%3|0|0)==0?k+-2|0:h;f[e>>2]=g;if((g|0)!=-1){if((g|0)!=(f[a+4>>2]|0))return;f[e>>2]=-1;return}}else f[e>>2]=-1;g=f[a+4>>2]|0;do if(((g|0)!=-1?(a=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(a|0)!=-1):0)?(h=f[(f[d+12>>2]|0)+(a<<2)>>2]|0,(h|0)!=-1):0)if(!((h>>>0)%3|0)){l=h+2|0;break}else{l=h+-1|0;break}else l=-1;while(0);f[e>>2]=l;b[c>>0]=0;return}function Ih(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Td(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+20>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;Td(a,e);return}function Jh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=f[a+4>>2]|0;if(!d){e=0;return e|0}a=b[c+11>>0]|0;g=a<<24>>24<0;h=g?f[c+4>>2]|0:a&255;a=g?f[c>>2]|0:c;c=d;while(1){d=c+16|0;g=b[d+11>>0]|0;i=g<<24>>24<0;j=i?f[c+20>>2]|0:g&255;g=j>>>0<h>>>0;k=g?j:h;if((k|0)!=0?(l=Vk(a,i?f[d>>2]|0:d,k)|0,(l|0)!=0):0)if((l|0)<0)m=7;else m=8;else if(h>>>0<j>>>0)m=7;else m=8;if((m|0)==7){m=0;n=c}else if((m|0)==8){m=0;l=h>>>0<j>>>0?h:j;if((l|0)!=0?(j=Vk(i?f[d>>2]|0:d,a,l)|0,(j|0)!=0):0){if((j|0)>=0){e=1;m=14;break}}else m=10;if((m|0)==10?(m=0,!g):0){e=1;m=14;break}n=c+4|0}c=f[n>>2]|0;if(!c){e=0;m=14;break}}if((m|0)==14)return e|0;return 0}function Kh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=u;u=u+16|0;g=e+4|0;h=e;i=f[a+8>>2]|0;j=i+24|0;k=b[j>>0]|0;l=c+4|0;ag(a,(f[l>>2]|0)-(f[c>>2]|0)>>2,k,d);d=f[a+32>>2]|0;a=(f[f[d>>2]>>2]|0)+(f[d+48>>2]|0)|0;d=f[c>>2]|0;c=f[l>>2]|0;if((d|0)==(c|0)){m=1;u=e;return m|0}l=i+84|0;n=i+68|0;o=0;p=d;while(1){d=f[p>>2]|0;if(!(b[l>>0]|0))q=f[(f[n>>2]|0)+(d<<2)>>2]|0;else q=d;f[h>>2]=q;d=b[j>>0]|0;f[g>>2]=f[h>>2];if(!(Qb(i,g,d,a+(o<<2)|0)|0)){m=0;r=7;break}p=p+4|0;if((p|0)==(c|0)){m=1;r=7;break}else o=o+k|0}if((r|0)==7){u=e;return m|0}return 0}function Lh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=1408;b=a+72|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);c=f[a+60>>2]|0;if(c|0){b=a+64|0;d=f[b>>2]|0;if((d|0)!=(c|0))f[b>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c)}c=f[a+48>>2]|0;if(c|0)Oq(c);c=a+36|0;d=f[c>>2]|0;if(d|0){b=a+40|0;e=f[b>>2]|0;if((e|0)==(d|0))g=d;else{h=e;do{e=h+-4|0;f[b>>2]=e;i=f[e>>2]|0;f[e>>2]=0;if(i|0)Va[f[(f[i>>2]|0)+4>>2]&127](i);h=f[b>>2]|0}while((h|0)!=(d|0));g=f[c>>2]|0}Oq(g)}f[a>>2]=1232;g=f[a+16>>2]|0;if(g|0){c=a+20|0;d=f[c>>2]|0;if((d|0)!=(g|0))f[c>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g)}g=f[a+4>>2]|0;if(!g)return;d=a+8|0;a=f[d>>2]|0;if((a|0)!=(g|0))f[d>>2]=a+(~((a+-4-g|0)>>>2)<<2);Oq(g);return}function Mh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f[a>>2]=d;e=a+24|0;g=a+28|0;h=f[g>>2]|0;i=f[e>>2]|0;j=h-i>>2;k=i;i=h;if(j>>>0>=d>>>0){if(j>>>0>d>>>0?(h=k+(d<<2)|0,(h|0)!=(i|0)):0)f[g>>2]=i+(~((i+-4-h|0)>>>2)<<2)}else Ci(e,d-j|0);if(!c)return;j=f[b>>2]|0;if((c|0)>1){d=j;e=j;h=1;while(1){i=f[b+(h<<2)>>2]|0;g=(i|0)<(e|0);k=g?i:e;l=g?d:(i|0)>(d|0)?i:d;h=h+1|0;if((h|0)==(c|0)){m=l;n=k;break}else{d=l;e=k}}}else{m=j;n=j}f[a+4>>2]=n;f[a+8>>2]=m;j=Xn(m|0,((m|0)<0)<<31>>31|0,n|0,((n|0)<0)<<31>>31|0)|0;n=I;if(!(n>>>0<0|(n|0)==0&j>>>0<2147483647))return;n=j+1|0;f[a+12>>2]=n;j=(n|0)/2|0;m=a+16|0;f[m>>2]=j;f[a+20>>2]=0-j;if(n&1|0)return;f[m>>2]=j+-1;return}function Nh(a){a=a|0;Fj(a+992|0);Fj(a+960|0);Fj(a+928|0);Fj(a+896|0);Fj(a+864|0);Fj(a+832|0);Fj(a+800|0);Fj(a+768|0);Fj(a+736|0);Fj(a+704|0);Fj(a+672|0);Fj(a+640|0);Fj(a+608|0);Fj(a+576|0);Fj(a+544|0);Fj(a+512|0);Fj(a+480|0);Fj(a+448|0);Fj(a+416|0);Fj(a+384|0);Fj(a+352|0);Fj(a+320|0);Fj(a+288|0);Fj(a+256|0);Fj(a+224|0);Fj(a+192|0);Fj(a+160|0);Fj(a+128|0);Fj(a+96|0);Fj(a+64|0);Fj(a+32|0);Fj(a);return}function Oh(a){a=a|0;wn(a);wn(a+32|0);wn(a+64|0);wn(a+96|0);wn(a+128|0);wn(a+160|0);wn(a+192|0);wn(a+224|0);wn(a+256|0);wn(a+288|0);wn(a+320|0);wn(a+352|0);wn(a+384|0);wn(a+416|0);wn(a+448|0);wn(a+480|0);wn(a+512|0);wn(a+544|0);wn(a+576|0);wn(a+608|0);wn(a+640|0);wn(a+672|0);wn(a+704|0);wn(a+736|0);wn(a+768|0);wn(a+800|0);wn(a+832|0);wn(a+864|0);wn(a+896|0);wn(a+928|0);wn(a+960|0);wn(a+992|0);return}function Ph(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=u;u=u+16|0;d=c+12|0;e=c+8|0;g=c+4|0;h=c;i=(a|0)==(b|0);if(!i){f[g>>2]=f[b>>2];f[h>>2]=b+4;f[e>>2]=f[g>>2];f[d>>2]=f[h>>2];Oc(a,e,d)}if(!i){f[g>>2]=f[b+12>>2];f[h>>2]=b+16;f[e>>2]=f[g>>2];f[d>>2]=f[h>>2];Hc(a+12|0,e,d)}if(i){u=c;return}f[g>>2]=f[b+24>>2];f[h>>2]=b+28;f[e>>2]=f[g>>2];f[d>>2]=f[h>>2];Oc(a+24|0,e,d);u=c;return}function Qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;a=u;u=u+16|0;e=a;if((c|0)<0|((b|0)==0|(d|0)==0)){g=0;u=a;return g|0}h=f[b+8>>2]|0;if(((f[b+12>>2]|0)-h>>2|0)<=(c|0)){g=0;u=a;return g|0}i=b+4|0;if(!(f[i>>2]|0)){j=ln(52)|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;n[j+16>>2]=$(1.0);k=j+20|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;n[j+36>>2]=$(1.0);f[j+40>>2]=0;f[j+44>>2]=0;f[j+48>>2]=0;f[b+4>>2]=j}j=f[(f[h+(c<<2)>>2]|0)+60>>2]|0;c=ln(44)|0;Ub(c,d);f[c+40>>2]=j;j=f[i>>2]|0;f[e>>2]=c;mk(j,e)|0;j=f[e>>2]|0;f[e>>2]=0;if(!j){g=1;u=a;return g|0}bj(j);Oq(j);g=1;u=a;return g|0}function Rh(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;c=u;u=u+64|0;j=c;k=i?6:5;Il(j);i=f[h+56>>2]|0;h=X(Vl(k)|0,e)|0;Jj(j,i,0,e&255,k,0,h,((h|0)<0)<<31>>31,0,0);h=ln(96)|0;tl(h,j);f[a>>2]=h;Bj(h,d)|0;d=h+84|0;if(!g){b[d>>0]=1;a=f[h+68>>2]|0;j=h+72|0;k=f[j>>2]|0;if((k|0)==(a|0)){u=c;return}f[j>>2]=k+(~((k+-4-a|0)>>>2)<<2);u=c;return}b[d>>0]=0;d=h+68|0;a=h+72|0;h=f[a>>2]|0;k=f[d>>2]|0;j=h-k>>2;e=h;if(j>>>0<g>>>0){Ch(d,g-j|0,1216);u=c;return}if(j>>>0<=g>>>0){u=c;return}j=k+(g<<2)|0;if((j|0)==(e|0)){u=c;return}f[a>>2]=e+(~((e+-4-j|0)>>>2)<<2);u=c;return}function Sh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){rd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;rd(a,e);return}function Th(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){vd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;vd(a,e);return}function Uh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Fd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;Fd(a,e);return}function Vh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Pd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;Pd(a,e);return}function Wh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){ud(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;ud(a,e);return}function Xh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){zd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;zd(a,e);return}function Yh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Jd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;Jd(a,e);return}function Zh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){sd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;sd(a,e);return}function _h(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){wd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;wd(a,e);return}function $h(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Gd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;Gd(a,e);return}function ai(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Qd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;Qd(a,e);return}function bi(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=u;u=u+16|0;h=g;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;i=ln(16)|0;f[h>>2]=i;f[h+8>>2]=-2147483632;f[h+4>>2]=15;j=i;k=14479;l=j+15|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[i+15>>0]=0;i=Hk(c,h,-1)|0;if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);switch(i|0){case -1:{if((mi(c)|0)==10)m=6;else m=5;break}case 1:{m=5;break}default:m=6}if((m|0)==5){i=ln(60)|0;Lo(i);n=i}else if((m|0)==6){m=ln(56)|0;tp(m);n=m}xo(n,d);Md(a,n,c,e);Va[f[(f[n>>2]|0)+4>>2]&127](n);u=g;return}function ci(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;b[h>>0]=a&127;do if(a>>>0>127){b[h>>0]=a|128;i=c+16|0;j=f[i+4>>2]|0;if((j|0)>0|(j|0)==0&(f[i>>2]|0)>>>0>0){k=0;break}else{f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0;k=ci(a>>>7,c)|0;break}}else{i=c+16|0;j=f[i+4>>2]|0;if((j|0)>0|(j|0)==0&(f[i>>2]|0)>>>0>0){k=0;break}f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0;l=1;u=d;return l|0}while(0);l=k;u=d;return l|0}\nfunction vc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;e=u;u=u+32|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;switch(f[c+28>>2]|0){case 9:{l=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=l;f[g>>2]=f[h>>2];m=hc(a,c,g)|0;break}case 2:{f[i>>2]=l;f[g>>2]=f[i>>2];m=Wb(a,c,g)|0;break}case 3:{f[j>>2]=l;f[g>>2]=f[j>>2];m=uc(a,c,g)|0;break}case 4:{f[k>>2]=l;f[g>>2]=f[k>>2];m=mc(a,c,g)|0;break}default:m=0}n=m;break}case 1:{m=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=m;f[g>>2]=f[h>>2];o=gc(a,c,g)|0;break}case 2:{f[i>>2]=m;f[g>>2]=f[i>>2];o=Xb(a,c,g)|0;break}case 3:{f[j>>2]=m;f[g>>2]=f[j>>2];o=sc(a,c,g)|0;break}case 4:{f[k>>2]=m;f[g>>2]=f[k>>2];o=lc(a,c,g)|0;break}default:o=0}n=o;break}case 11:case 2:{o=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=o;f[g>>2]=f[h>>2];p=gc(a,c,g)|0;break}case 2:{f[i>>2]=o;f[g>>2]=f[i>>2];p=Xb(a,c,g)|0;break}case 3:{f[j>>2]=o;f[g>>2]=f[j>>2];p=sc(a,c,g)|0;break}case 4:{f[k>>2]=o;f[g>>2]=f[k>>2];p=lc(a,c,g)|0;break}default:p=0}n=p;break}case 4:{p=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=p;f[g>>2]=f[h>>2];q=ec(a,c,g)|0;break}case 2:{f[i>>2]=p;f[g>>2]=f[i>>2];q=Vb(a,c,g)|0;break}case 3:{f[j>>2]=p;f[g>>2]=f[j>>2];q=nc(a,c,g)|0;break}case 4:{f[k>>2]=p;f[g>>2]=f[k>>2];q=jc(a,c,g)|0;break}default:q=0}n=q;break}case 3:{q=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=q;f[g>>2]=f[h>>2];r=ec(a,c,g)|0;break}case 2:{f[i>>2]=q;f[g>>2]=f[i>>2];r=Vb(a,c,g)|0;break}case 3:{f[j>>2]=q;f[g>>2]=f[j>>2];r=nc(a,c,g)|0;break}case 4:{f[k>>2]=q;f[g>>2]=f[k>>2];r=jc(a,c,g)|0;break}default:r=0}n=r;break}case 6:{r=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=r;f[g>>2]=f[h>>2];s=hc(a,c,g)|0;break}case 2:{f[i>>2]=r;f[g>>2]=f[i>>2];s=Wb(a,c,g)|0;break}case 3:{f[j>>2]=r;f[g>>2]=f[j>>2];s=uc(a,c,g)|0;break}case 4:{f[k>>2]=r;f[g>>2]=f[k>>2];s=mc(a,c,g)|0;break}default:s=0}n=s;break}case 5:{s=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=s;f[g>>2]=f[h>>2];t=hc(a,c,g)|0;break}case 2:{f[i>>2]=s;f[g>>2]=f[i>>2];t=Wb(a,c,g)|0;break}case 3:{f[j>>2]=s;f[g>>2]=f[j>>2];t=uc(a,c,g)|0;break}case 4:{f[k>>2]=s;f[g>>2]=f[k>>2];t=mc(a,c,g)|0;break}default:t=0}n=t;break}default:{v=-1;u=e;return v|0}}v=(n|0)==0?-1:n;u=e;return v|0}function wc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;e=u;u=u+32|0;g=e+16|0;h=e+12|0;i=e+29|0;j=e;k=e+28|0;if(!(f[(f[a+8>>2]|0)+80>>2]|0)){l=1;u=e;return l|0}b[i>>0]=-2;m=a+36|0;n=f[m>>2]|0;if(n)if(Ra[f[(f[a>>2]|0)+40>>2]&127](a,n)|0){n=f[m>>2]|0;o=(Qa[f[(f[n>>2]|0)+8>>2]&127](n)|0)&255;b[i>>0]=o;p=5}else q=0;else p=5;if((p|0)==5){o=d+16|0;n=o;r=f[n+4>>2]|0;if(!((r|0)>0|(r|0)==0&(f[n>>2]|0)>>>0>0)){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,i,i+1|0)|0}i=f[m>>2]|0;if(i|0?(n=(Qa[f[(f[i>>2]|0)+36>>2]&127](i)|0)&255,b[j>>0]=n,n=o,i=f[n+4>>2]|0,!((i|0)>0|(i|0)==0&(f[n>>2]|0)>>>0>0)):0){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,j,j+1|0)|0}n=f[a+32>>2]|0;i=b[n+24>>0]|0;r=X(f[n+80>>2]|0,i)|0;s=(f[f[n>>2]>>2]|0)+(f[n+48>>2]|0)|0;f[j>>2]=0;n=j+4|0;f[n>>2]=0;f[j+8>>2]=0;t=(r|0)==0;do if(!t)if(r>>>0>1073741823)aq(j);else{v=r<<2;w=ln(v)|0;f[j>>2]=w;x=w+(r<<2)|0;f[j+8>>2]=x;sj(w|0,0,v|0)|0;f[n>>2]=x;y=w;break}else y=0;while(0);w=f[m>>2]|0;do if(w){Ta[f[(f[w>>2]|0)+44>>2]&31](w,s,y,r,i,f[c>>2]|0)|0;x=f[m>>2]|0;if(!x){z=s;A=f[j>>2]|0;p=20;break}if(!(Qa[f[(f[x>>2]|0)+32>>2]&127](x)|0)){x=f[j>>2]|0;z=f[m>>2]|0?x:s;A=x;p=20}}else{z=s;A=y;p=20}while(0);if((p|0)==20)xm(z,r,A);A=a+4|0;a=f[A>>2]|0;do if(a){z=f[a+48>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;y=ln(48)|0;f[g>>2]=y;f[g+8>>2]=-2147483600;f[g+4>>2]=34;s=y;w=10697;x=s+34|0;do{b[s>>0]=b[w>>0]|0;s=s+1|0;w=w+1|0}while((s|0)<(x|0));b[y+34>>0]=0;w=Yj(z,g,1)|0;if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if(!w){if(!t){w=f[j>>2]|0;s=0;x=0;do{x=f[w+(s<<2)>>2]|x;s=s+1|0}while((s|0)!=(r|0));if(x)B=((_(x|0)|0)>>>3^3)+1|0;else B=1}else B=1;b[k>>0]=0;s=o;w=f[s>>2]|0;z=f[s+4>>2]|0;if((z|0)>0|(z|0)==0&w>>>0>0){C=z;D=w}else{f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,k,k+1|0)|0;w=o;C=f[w+4>>2]|0;D=f[w>>2]|0}b[k>>0]=B;if(!((C|0)>0|(C|0)==0&D>>>0>0)){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,k,k+1|0)|0}if((B|0)==(Vl(5)|0)){w=f[j>>2]|0;z=o;s=f[z+4>>2]|0;if(!((s|0)>0|(s|0)==0&(f[z>>2]|0)>>>0>0)){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,w,w+(r<<2)|0)|0}p=48;break}if(t)p=48;else{w=d+4|0;z=0;do{s=(f[j>>2]|0)+(z<<2)|0;y=o;v=f[y+4>>2]|0;if(!((v|0)>0|(v|0)==0&(f[y>>2]|0)>>>0>0)){f[h>>2]=f[w>>2];f[g>>2]=f[h>>2];Me(d,g,s,s+B|0)|0}z=z+1|0}while(z>>>0<r>>>0);p=48}}else p=27}else p=27;while(0);if((p|0)==27){b[k>>0]=1;r=o;o=f[r+4>>2]|0;if(!((o|0)>0|(o|0)==0&(f[r>>2]|0)>>>0>0)){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,k,k+1|0)|0}lp(g);k=f[A>>2]|0;if(k|0)Zj(g,10-(mi(f[k+48>>2]|0)|0)|0)|0;k=Mc(f[j>>2]|0,X((f[c+4>>2]|0)-(f[c>>2]|0)>>2,i)|0,i,g,d)|0;Ej(g,f[g+4>>2]|0);if(k)p=48;else E=0}if((p|0)==48){p=f[m>>2]|0;if(!p)E=1;else{Ra[f[(f[p>>2]|0)+40>>2]&127](p,d)|0;E=1}}d=f[j>>2]|0;if(d|0){j=f[n>>2]|0;if((j|0)!=(d|0))f[n>>2]=j+(~((j+-4-d|0)>>>2)<<2);Oq(d)}q=E}l=q;u=e;return l|0}function xc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;b=u;u=u+48|0;c=b+24|0;d=b+12|0;e=b;g=a+32|0;h=a+8|0;i=a+12|0;j=f[i>>2]|0;k=f[h>>2]|0;l=j-k>>2;m=a+36|0;n=f[m>>2]|0;o=f[g>>2]|0;p=n-o>>2;q=o;o=n;n=k;if(l>>>0<=p>>>0)if(l>>>0<p>>>0?(r=q+(l<<2)|0,(r|0)!=(o|0)):0){f[m>>2]=o+(~((o+-4-r|0)>>>2)<<2);s=n;t=k;v=j}else{s=n;t=k;v=j}else{Ci(g,l-p|0);p=f[h>>2]|0;s=p;t=p;v=f[i>>2]|0}p=v-t|0;l=p>>2;f[c>>2]=0;j=c+4|0;f[j>>2]=0;k=c+8|0;f[k>>2]=0;if(l|0){if((p|0)<0)aq(c);p=((l+-1|0)>>>5)+1|0;n=ln(p<<2)|0;f[c>>2]=n;f[k>>2]=p;f[j>>2]=l;j=l>>>5;sj(n|0,0,j<<2|0)|0;p=l&31;l=n+(j<<2)|0;if(p|0)f[l>>2]=f[l>>2]&~(-1>>>(32-p|0))}p=a+20|0;l=0;j=s;s=t;t=v;while(1){if(l>>>0<t-s>>2>>>0){w=0;x=0;y=l;z=s;A=j}else{B=25;break}while(1){v=x>>>5;n=1<<(x&31);do if(!(f[(f[c>>2]|0)+(v<<2)>>2]&n)){k=f[A+(x<<2)>>2]|0;if((f[k+8>>2]|0)!=(f[k+4>>2]|0)){r=0;o=1;m=A;q=k;while(1){k=f[(f[q+4>>2]|0)+(r<<2)>>2]|0;C=0;D=m;while(1){E=f[D+(x<<2)>>2]|0;if((C|0)>=(Ra[f[(f[E>>2]|0)+24>>2]&127](E,k)|0)){F=o;break}E=f[(f[h>>2]|0)+(x<<2)>>2]|0;G=Sa[f[(f[E>>2]|0)+28>>2]&31](E,k,C)|0;if((G|0)!=(x|0)?(E=f[(f[p>>2]|0)+(G<<2)>>2]|0,(1<<(E&31)&f[(f[c>>2]|0)+(E>>>5<<2)>>2]|0)==0):0){F=0;break}C=C+1|0;D=f[h>>2]|0}r=r+1|0;m=f[h>>2]|0;q=f[m+(x<<2)>>2]|0;if(r>>>0>=(f[q+8>>2]|0)-(f[q+4>>2]|0)>>2>>>0)break;else o=F}o=m;if(F)H=o;else{I=w;J=y;K=o;break}}else H=z;f[(f[g>>2]|0)+(y<<2)>>2]=x;o=(f[c>>2]|0)+(v<<2)|0;f[o>>2]=f[o>>2]|n;I=1;J=y+1|0;K=H}else{I=w;J=y;K=z}while(0);x=x+1|0;L=f[i>>2]|0;M=L-K>>2;A=K;if(x>>>0>=M>>>0)break;else{w=I;y=J;z=K}}if(J>>>0<M>>>0&(I^1)){N=0;break}else{l=J;j=A;s=K;t=L}}if((B|0)==25){f[d>>2]=0;B=d+4|0;f[B>>2]=0;f[d+8>>2]=0;L=f[a+4>>2]|0;a=(f[L+12>>2]|0)-(f[L+8>>2]|0)|0;L=a>>2;f[e>>2]=0;K=e+4|0;f[K>>2]=0;A=e+8|0;f[A>>2]=0;if(L|0){if((a|0)<0)aq(e);a=((L+-1|0)>>>5)+1|0;J=ln(a<<2)|0;f[e>>2]=J;f[A>>2]=a;f[K>>2]=L;K=L>>>5;sj(J|0,0,K<<2|0)|0;a=L&31;L=J+(K<<2)|0;if(a|0)f[L>>2]=f[L>>2]&~(-1>>>(32-a|0))}a:do if((t|0)==(s|0))O=1;else{a=0;L=j;K=s;J=t;while(1){A=f[(f[g>>2]|0)+(a<<2)>>2]|0;l=f[L+(A<<2)>>2]|0;I=(f[l+8>>2]|0)-(f[l+4>>2]|0)|0;l=I>>2;if((I|0)<8){P=K;Q=J}else{I=f[B>>2]|0;M=f[d>>2]|0;z=I-M>>2;y=M;M=I;if(l>>>0<=z>>>0)if(l>>>0<z>>>0?(I=y+(l<<2)|0,(I|0)!=(M|0)):0){f[B>>2]=M+(~((M+-4-I|0)>>>2)<<2);R=0}else R=0;else{Ci(d,l-z|0);R=0}while(1){if((R|0)<(l|0)){S=0;T=0;U=R}else break;while(1){z=f[(f[h>>2]|0)+(A<<2)>>2]|0;I=f[(f[z+4>>2]|0)+(S<<2)>>2]|0;M=S>>>5;y=1<<(S&31);if(!(f[(f[e>>2]|0)+(M<<2)>>2]&y)){w=0;x=1;H=z;while(1){if((w|0)>=(Ra[f[(f[H>>2]|0)+24>>2]&127](H,I)|0)){V=x;break}z=f[(f[h>>2]|0)+(A<<2)>>2]|0;F=Sa[f[(f[z>>2]|0)+28>>2]&31](z,I,w)|0;z=(f[(f[e>>2]|0)+(F>>>5<<2)>>2]&1<<(F&31)|0)!=0;F=x&z;if(!z){V=F;break}w=w+1|0;x=F;H=f[(f[h>>2]|0)+(A<<2)>>2]|0}if(V){f[(f[d>>2]|0)+(U<<2)>>2]=S;H=(f[e>>2]|0)+(M<<2)|0;f[H>>2]=f[H>>2]|y;W=1;X=U+1|0}else{W=T;X=U}}else{W=T;X=U}S=S+1|0;if((S|0)>=(l|0))break;else{T=W;U=X}}if(W|(X|0)>=(l|0))R=X;else{O=0;break a}}bg(f[(f[h>>2]|0)+(A<<2)>>2]|0,d);P=f[h>>2]|0;Q=f[i>>2]|0}a=a+1|0;if(a>>>0>=Q-P>>2>>>0){O=1;break}else{L=P;K=P;J=Q}}}while(0);Q=f[e>>2]|0;if(Q|0)Oq(Q);Q=f[d>>2]|0;if(Q|0){d=f[B>>2]|0;if((d|0)!=(Q|0))f[B>>2]=d+(~((d+-4-Q|0)>>>2)<<2);Oq(Q)}N=O}O=f[c>>2]|0;if(!O){u=b;return N|0}Oq(O);u=b;return N|0}function yc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!a)return;b=a+-8|0;c=f[4788]|0;d=f[a+-4>>2]|0;a=d&-8;e=b+a|0;do if(!(d&1)){g=f[b>>2]|0;if(!(d&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0<c>>>0)return;if((f[4789]|0)==(h|0)){j=e+4|0;k=f[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break}f[4786]=i;f[j>>2]=k&-2;f[h+4>>2]=i|1;f[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=f[h+8>>2]|0;j=f[h+12>>2]|0;if((j|0)==(g|0)){f[4784]=f[4784]&~(1<<k);l=h;m=i;n=h;break}else{f[g+12>>2]=j;f[j+8>>2]=g;l=h;m=i;n=h;break}}g=f[h+24>>2]|0;j=f[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=f[o>>2]|0;if(!p){q=f[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}while(1){o=s+20|0;p=f[o>>2]|0;if(p|0){s=p;t=o;continue}o=s+16|0;p=f[o>>2]|0;if(!p)break;else{s=p;t=o}}f[t>>2]=0;r=s}else{o=f[h+8>>2]|0;f[o+12>>2]=j;f[j+8>>2]=o;r=j}while(0);if(g){j=f[h+28>>2]|0;o=19440+(j<<2)|0;if((f[o>>2]|0)==(h|0)){f[o>>2]=r;if(!r){f[4785]=f[4785]&~(1<<j);l=h;m=i;n=h;break}}else{f[g+16+(((f[g+16>>2]|0)!=(h|0)&1)<<2)>>2]=r;if(!r){l=h;m=i;n=h;break}}f[r+24>>2]=g;j=h+16|0;o=f[j>>2]|0;if(o|0){f[r+16>>2]=o;f[o+24>>2]=r}o=f[j+4>>2]|0;if(o){f[r+20>>2]=o;f[o+24>>2]=r;l=h;m=i;n=h}else{l=h;m=i;n=h}}else{l=h;m=i;n=h}}else{l=b;m=a;n=b}while(0);if(n>>>0>=e>>>0)return;b=e+4|0;a=f[b>>2]|0;if(!(a&1))return;if(!(a&2)){if((f[4790]|0)==(e|0)){r=(f[4787]|0)+m|0;f[4787]=r;f[4790]=l;f[l+4>>2]=r|1;if((l|0)!=(f[4789]|0))return;f[4789]=0;f[4786]=0;return}if((f[4789]|0)==(e|0)){r=(f[4786]|0)+m|0;f[4786]=r;f[4789]=n;f[l+4>>2]=r|1;f[n+r>>2]=r;return}r=(a&-8)+m|0;s=a>>>3;do if(a>>>0<256){t=f[e+8>>2]|0;c=f[e+12>>2]|0;if((c|0)==(t|0)){f[4784]=f[4784]&~(1<<s);break}else{f[t+12>>2]=c;f[c+8>>2]=t;break}}else{t=f[e+24>>2]|0;c=f[e+12>>2]|0;do if((c|0)==(e|0)){d=e+16|0;o=d+4|0;j=f[o>>2]|0;if(!j){p=f[d>>2]|0;if(!p){u=0;break}else{v=p;w=d}}else{v=j;w=o}while(1){o=v+20|0;j=f[o>>2]|0;if(j|0){v=j;w=o;continue}o=v+16|0;j=f[o>>2]|0;if(!j)break;else{v=j;w=o}}f[w>>2]=0;u=v}else{o=f[e+8>>2]|0;f[o+12>>2]=c;f[c+8>>2]=o;u=c}while(0);if(t|0){c=f[e+28>>2]|0;h=19440+(c<<2)|0;if((f[h>>2]|0)==(e|0)){f[h>>2]=u;if(!u){f[4785]=f[4785]&~(1<<c);break}}else{f[t+16+(((f[t+16>>2]|0)!=(e|0)&1)<<2)>>2]=u;if(!u)break}f[u+24>>2]=t;c=e+16|0;h=f[c>>2]|0;if(h|0){f[u+16>>2]=h;f[h+24>>2]=u}h=f[c+4>>2]|0;if(h|0){f[u+20>>2]=h;f[h+24>>2]=u}}}while(0);f[l+4>>2]=r|1;f[n+r>>2]=r;if((l|0)==(f[4789]|0)){f[4786]=r;return}else x=r}else{f[b>>2]=a&-2;f[l+4>>2]=m|1;f[n+m>>2]=m;x=m}m=x>>>3;if(x>>>0<256){n=19176+(m<<1<<2)|0;a=f[4784]|0;b=1<<m;if(!(a&b)){f[4784]=a|b;y=n;z=n+8|0}else{b=n+8|0;y=f[b>>2]|0;z=b}f[z>>2]=l;f[y+12>>2]=l;f[l+8>>2]=y;f[l+12>>2]=n;return}n=x>>>8;if(n)if(x>>>0>16777215)A=31;else{y=(n+1048320|0)>>>16&8;z=n<<y;n=(z+520192|0)>>>16&4;b=z<<n;z=(b+245760|0)>>>16&2;a=14-(n|y|z)+(b<<z>>>15)|0;A=x>>>(a+7|0)&1|a<<1}else A=0;a=19440+(A<<2)|0;f[l+28>>2]=A;f[l+20>>2]=0;f[l+16>>2]=0;z=f[4785]|0;b=1<<A;do if(z&b){y=x<<((A|0)==31?0:25-(A>>>1)|0);n=f[a>>2]|0;while(1){if((f[n+4>>2]&-8|0)==(x|0)){B=73;break}C=n+16+(y>>>31<<2)|0;m=f[C>>2]|0;if(!m){B=72;break}else{y=y<<1;n=m}}if((B|0)==72){f[C>>2]=l;f[l+24>>2]=n;f[l+12>>2]=l;f[l+8>>2]=l;break}else if((B|0)==73){y=n+8|0;t=f[y>>2]|0;f[t+12>>2]=l;f[y>>2]=l;f[l+8>>2]=t;f[l+12>>2]=n;f[l+24>>2]=0;break}}else{f[4785]=z|b;f[a>>2]=l;f[l+24>>2]=a;f[l+12>>2]=l;f[l+8>>2]=l}while(0);l=(f[4792]|0)+-1|0;f[4792]=l;if(!l)D=19592;else return;while(1){l=f[D>>2]|0;if(!l)break;else D=l+8|0}f[4792]=-1;return}function zc(a){a=a|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;c=u;u=u+32|0;e=c+4|0;g=c;h=c+16|0;i=a+52|0;j=f[i>>2]|0;k=(f[j+100>>2]|0)-(f[j+96>>2]|0)|0;j=(k|0)/12|0;l=a+44|0;ci(j,f[l>>2]|0)|0;ci(f[(f[i>>2]|0)+80>>2]|0,f[l>>2]|0)|0;m=f[a+48>>2]|0;n=ln(32)|0;f[e>>2]=n;f[e+8>>2]=-2147483616;f[e+4>>2]=21;o=n;p=15598;q=o+21|0;do{b[o>>0]=b[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(q|0));b[n+21>>0]=0;n=Yj(m,e,0)|0;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);m=f[l>>2]|0;if(n){b[h>>0]=0;n=m+16|0;p=f[n+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[n>>2]|0)>>>0>0)){f[g>>2]=f[m+4>>2];f[e>>2]=f[g>>2];Me(m,e,h,h+1|0)|0}mf(a)|0;u=c;return 1}b[h>>0]=1;a=m+16|0;n=f[a+4>>2]|0;if(!((n|0)>0|(n|0)==0&(f[a>>2]|0)>>>0>0)){f[g>>2]=f[m+4>>2];f[e>>2]=f[g>>2];Me(m,e,h,h+1|0)|0}m=f[i>>2]|0;a=f[m+80>>2]|0;if(a>>>0<256){if(!k){u=c;return 1}n=h+1|0;p=h+1|0;o=h+1|0;q=0;r=m;while(1){s=f[r+96>>2]|0;t=f[l>>2]|0;b[h>>0]=f[s+(q*12|0)>>2];v=t+16|0;w=f[v>>2]|0;x=f[v+4>>2]|0;if((x|0)>0|(x|0)==0&w>>>0>0){y=w;z=t;A=x}else{f[g>>2]=f[t+4>>2];f[e>>2]=f[g>>2];Me(t,e,h,o)|0;t=f[l>>2]|0;x=t+16|0;y=f[x>>2]|0;z=t;A=f[x+4>>2]|0}b[h>>0]=f[s+(q*12|0)+4>>2];if((A|0)>0|(A|0)==0&y>>>0>0){B=A;C=y;D=z}else{f[g>>2]=f[z+4>>2];f[e>>2]=f[g>>2];Me(z,e,h,p)|0;x=f[l>>2]|0;t=x+16|0;B=f[t+4>>2]|0;C=f[t>>2]|0;D=x}b[h>>0]=f[s+(q*12|0)+8>>2];if(!((B|0)>0|(B|0)==0&C>>>0>0)){f[g>>2]=f[D+4>>2];f[e>>2]=f[g>>2];Me(D,e,h,n)|0}s=q+1|0;if(s>>>0>=j>>>0)break;q=s;r=f[i>>2]|0}u=c;return 1}if(a>>>0<65536){if(!k){u=c;return 1}r=h+2|0;q=h+2|0;n=h+2|0;D=0;C=m;while(1){B=f[C+96>>2]|0;p=f[l>>2]|0;d[h>>1]=f[B+(D*12|0)>>2];z=p+16|0;y=f[z>>2]|0;A=f[z+4>>2]|0;if((A|0)>0|(A|0)==0&y>>>0>0){E=A;F=y;G=p}else{f[g>>2]=f[p+4>>2];f[e>>2]=f[g>>2];Me(p,e,h,n)|0;p=f[l>>2]|0;y=p+16|0;E=f[y+4>>2]|0;F=f[y>>2]|0;G=p}d[h>>1]=f[B+(D*12|0)+4>>2];if((E|0)>0|(E|0)==0&F>>>0>0){H=E;I=F;J=G}else{f[g>>2]=f[G+4>>2];f[e>>2]=f[g>>2];Me(G,e,h,q)|0;p=f[l>>2]|0;y=p+16|0;H=f[y+4>>2]|0;I=f[y>>2]|0;J=p}d[h>>1]=f[B+(D*12|0)+8>>2];if(!((H|0)>0|(H|0)==0&I>>>0>0)){f[g>>2]=f[J+4>>2];f[e>>2]=f[g>>2];Me(J,e,h,r)|0}B=D+1|0;if(B>>>0>=j>>>0)break;D=B;C=f[i>>2]|0}u=c;return 1}C=(k|0)!=0;if(a>>>0<2097152){if(C){K=0;L=m}else{u=c;return 1}while(1){a=f[L+96>>2]|0;ci(f[a+(K*12|0)>>2]|0,f[l>>2]|0)|0;ci(f[a+(K*12|0)+4>>2]|0,f[l>>2]|0)|0;ci(f[a+(K*12|0)+8>>2]|0,f[l>>2]|0)|0;a=K+1|0;if(a>>>0>=j>>>0)break;K=a;L=f[i>>2]|0}u=c;return 1}if(!C){u=c;return 1}C=0;L=m;while(1){m=(f[L+96>>2]|0)+(C*12|0)|0;K=f[l>>2]|0;a=K+16|0;k=f[a+4>>2]|0;if(!((k|0)>0|(k|0)==0&(f[a>>2]|0)>>>0>0)){f[g>>2]=f[K+4>>2];f[e>>2]=f[g>>2];Me(K,e,m,m+12|0)|0}m=C+1|0;if(m>>>0>=j>>>0)break;C=m;L=f[i>>2]|0}u=c;return 1}function Ac(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=Oa,w=Oa,x=Oa,y=Oa,z=0,A=0,B=0,C=Oa,D=Oa,E=Oa,F=Oa,G=Oa,H=Oa,I=Oa,K=Oa,M=Oa,N=Oa,O=Oa,P=0,Q=Oa,R=Oa,S=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+28|0;o=f[c>>2]|0;c=o+1|0;if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;c=o+(((o>>>0)%3|0|0)==0?2:-1)|0;if((p|0)==-1)q=-1;else q=f[(f[f[m>>2]>>2]|0)+(p<<2)>>2]|0;if((c|0)==-1){r=-1;s=q}else{r=f[(f[f[m>>2]>>2]|0)+(c<<2)>>2]|0;s=q}}else{r=-1;s=-1}q=f[a+32>>2]|0;c=f[q>>2]|0;m=(f[q+4>>2]|0)-c>>2;if(m>>>0<=s>>>0)aq(q);p=c;c=f[p+(s<<2)>>2]|0;if(m>>>0<=r>>>0)aq(q);q=f[p+(r<<2)>>2]|0;r=(c|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r)t=c;else{if((e|0)>0){t=e+-1|0;break}p=a+52|0;if((f[p>>2]|0)<=0){u=g;return}m=f[a+48>>2]|0;s=0;do{f[m+(s<<2)>>2]=0;s=s+1|0}while((s|0)<(f[p>>2]|0));u=g;return}while(0);r=a+52|0;p=f[r>>2]|0;s=X(p,t)|0;if((p|0)<=0){u=g;return}p=f[a+48>>2]|0;t=0;do{f[p+(t<<2)>>2]=f[d+(t+s<<2)>>2];t=t+1|0}while((t|0)<(f[r>>2]|0));u=g;return}r=a+52|0;t=f[r>>2]|0;s=X(t,c)|0;v=$(f[d+(s<<2)>>2]|0);w=$(f[d+(s+1<<2)>>2]|0);s=X(t,q)|0;x=$(f[d+(s<<2)>>2]|0);y=$(f[d+(s+1<<2)>>2]|0);if(!(x!=v|y!=w)){s=f[a+48>>2]|0;f[s>>2]=~~x;f[s+4>>2]=~~y;u=g;return}s=a+44|0;t=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;p=a+40|0;m=f[p>>2]|0;if(!(b[m+84>>0]|0))z=f[(f[m+68>>2]|0)+(t<<2)>>2]|0;else z=t;f[i>>2]=z;z=b[m+24>>0]|0;f[h>>2]=f[i>>2];mb(m,h,z,j)|0;z=f[(f[s>>2]|0)+(c<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;c=f[p>>2]|0;if(!(b[c+84>>0]|0))A=f[(f[c+68>>2]|0)+(z<<2)>>2]|0;else A=z;f[i>>2]=A;A=b[c+24>>0]|0;f[h>>2]=f[i>>2];mb(c,h,A,k)|0;A=f[(f[s>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[p>>2]|0;if(!(b[q+84>>0]|0))B=f[(f[q+68>>2]|0)+(A<<2)>>2]|0;else B=A;f[i>>2]=B;B=b[q+24>>0]|0;f[h>>2]=f[i>>2];mb(q,h,B,l)|0;C=$(n[l>>2]);D=$(n[k>>2]);E=$(C-D);C=$(n[l+4>>2]);F=$(n[k+4>>2]);G=$(C-F);C=$(n[l+8>>2]);H=$(n[k+8>>2]);I=$(C-H);C=$($(n[j>>2])-D);D=$($(n[j+4>>2])-F);F=$($(n[j+8>>2])-H);H=$($($($(E*E)+$(0.0))+$(G*G))+$(I*I));if(H>$(0.0)){K=$($($($($(E*C)+$(0.0))+$(G*D))+$(I*F))/H);M=$(C-$(E*K));E=$(D-$(G*K));G=$(F-$(I*K));N=K;O=$(L($($($(G*G)+$($(E*E)+$($(M*M)+$(0.0))))/H)))}else{N=$(0.0);O=$(0.0)}H=$(x-v);x=$(y-w);y=$($(H*N)+v);v=$(H*O);H=$($(x*N)+w);w=$(x*O);O=$(y-w);x=$(H+v);N=$(y+w);w=$(H-v);j=X(f[r>>2]|0,e)|0;v=$(f[d+(j<<2)>>2]|0);H=$(f[d+(j+1<<2)>>2]|0);y=$(v-O);M=$(H-x);E=$(v-N);v=$(H-w);j=$($($(y*y)+$(0.0))+$(M*M))<$($($(E*E)+$(0.0))+$(v*v));d=a+56|0;e=a+60|0;r=f[e>>2]|0;k=f[a+64>>2]|0;l=(r|0)==(k<<5|0);if(j){do if(l)if((r+1|0)<0)aq(d);else{j=k<<6;B=r+32&-32;vi(d,r>>>0<1073741823?(j>>>0<B>>>0?B:j):2147483647);P=f[e>>2]|0;break}else P=r;while(0);f[e>>2]=P+1;j=(f[d>>2]|0)+(P>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(P&31);Q=O;R=x}else{do if(l)if((r+1|0)<0)aq(d);else{P=k<<6;j=r+32&-32;vi(d,r>>>0<1073741823?(P>>>0<j>>>0?j:P):2147483647);S=f[e>>2]|0;break}else S=r;while(0);f[e>>2]=S+1;e=(f[d>>2]|0)+(S>>>5<<2)|0;f[e>>2]=f[e>>2]&~(1<<(S&31));Q=N;R=w}S=~~+J(+(+Q+.5));e=f[a+48>>2]|0;f[e>>2]=S;S=~~+J(+(+R+.5));f[e+4>>2]=S;u=g;return}function Bc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=Oa,v=Oa,w=Oa,x=Oa,y=0,z=0,A=0,B=Oa,C=Oa,D=Oa,E=Oa,F=Oa,G=Oa,H=Oa,I=Oa,K=Oa,M=Oa,N=Oa,O=0,P=Oa,Q=Oa,R=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+28|0;o=f[c>>2]|0;c=o+1|0;do if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;if(!((o>>>0)%3|0)){q=o+2|0;r=p;break}else{q=o+-1|0;r=p;break}}else{q=-1;r=-1}while(0);o=f[(f[m>>2]|0)+28>>2]|0;m=f[o+(r<<2)>>2]|0;r=f[o+(q<<2)>>2]|0;q=f[a+32>>2]|0;o=f[q>>2]|0;c=(f[q+4>>2]|0)-o>>2;if(c>>>0<=m>>>0)aq(q);p=o;o=f[p+(m<<2)>>2]|0;if(c>>>0<=r>>>0)aq(q);q=f[p+(r<<2)>>2]|0;r=(o|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r)s=o;else{if((e|0)>0){s=e+-1|0;break}p=a+52|0;if((f[p>>2]|0)<=0){u=g;return}c=f[a+48>>2]|0;m=0;do{f[c+(m<<2)>>2]=0;m=m+1|0}while((m|0)<(f[p>>2]|0));u=g;return}while(0);r=a+52|0;p=f[r>>2]|0;m=X(p,s)|0;if((p|0)<=0){u=g;return}p=f[a+48>>2]|0;s=0;do{f[p+(s<<2)>>2]=f[d+(s+m<<2)>>2];s=s+1|0}while((s|0)<(f[r>>2]|0));u=g;return}r=a+52|0;s=f[r>>2]|0;m=X(s,o)|0;t=$(f[d+(m<<2)>>2]|0);v=$(f[d+(m+1<<2)>>2]|0);m=X(s,q)|0;w=$(f[d+(m<<2)>>2]|0);x=$(f[d+(m+1<<2)>>2]|0);if(!(w!=t|x!=v)){m=f[a+48>>2]|0;f[m>>2]=~~w;f[m+4>>2]=~~x;u=g;return}m=a+44|0;s=f[(f[m>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;p=a+40|0;c=f[p>>2]|0;if(!(b[c+84>>0]|0))y=f[(f[c+68>>2]|0)+(s<<2)>>2]|0;else y=s;f[i>>2]=y;y=b[c+24>>0]|0;f[h>>2]=f[i>>2];mb(c,h,y,j)|0;y=f[(f[m>>2]|0)+(o<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;o=f[p>>2]|0;if(!(b[o+84>>0]|0))z=f[(f[o+68>>2]|0)+(y<<2)>>2]|0;else z=y;f[i>>2]=z;z=b[o+24>>0]|0;f[h>>2]=f[i>>2];mb(o,h,z,k)|0;z=f[(f[m>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[p>>2]|0;if(!(b[q+84>>0]|0))A=f[(f[q+68>>2]|0)+(z<<2)>>2]|0;else A=z;f[i>>2]=A;A=b[q+24>>0]|0;f[h>>2]=f[i>>2];mb(q,h,A,l)|0;B=$(n[l>>2]);C=$(n[k>>2]);D=$(B-C);B=$(n[l+4>>2]);E=$(n[k+4>>2]);F=$(B-E);B=$(n[l+8>>2]);G=$(n[k+8>>2]);H=$(B-G);B=$($(n[j>>2])-C);C=$($(n[j+4>>2])-E);E=$($(n[j+8>>2])-G);G=$($($($(D*D)+$(0.0))+$(F*F))+$(H*H));if(G>$(0.0)){I=$($($($($(D*B)+$(0.0))+$(F*C))+$(H*E))/G);K=$(B-$(D*I));D=$(C-$(F*I));F=$(E-$(H*I));M=I;N=$(L($($($(F*F)+$($(D*D)+$($(K*K)+$(0.0))))/G)))}else{M=$(0.0);N=$(0.0)}G=$(w-t);w=$(x-v);x=$($(G*M)+t);t=$(G*N);G=$($(w*M)+v);v=$(w*N);N=$(x-v);w=$(G+t);M=$(x+v);v=$(G-t);j=X(f[r>>2]|0,e)|0;t=$(f[d+(j<<2)>>2]|0);G=$(f[d+(j+1<<2)>>2]|0);x=$(t-N);K=$(G-w);D=$(t-M);t=$(G-v);j=$($($(x*x)+$(0.0))+$(K*K))<$($($(D*D)+$(0.0))+$(t*t));d=a+56|0;e=a+60|0;r=f[e>>2]|0;k=f[a+64>>2]|0;l=(r|0)==(k<<5|0);if(j){do if(l)if((r+1|0)<0)aq(d);else{j=k<<6;A=r+32&-32;vi(d,r>>>0<1073741823?(j>>>0<A>>>0?A:j):2147483647);O=f[e>>2]|0;break}else O=r;while(0);f[e>>2]=O+1;j=(f[d>>2]|0)+(O>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(O&31);P=N;Q=w}else{do if(l)if((r+1|0)<0)aq(d);else{O=k<<6;j=r+32&-32;vi(d,r>>>0<1073741823?(O>>>0<j>>>0?j:O):2147483647);R=f[e>>2]|0;break}else R=r;while(0);f[e>>2]=R+1;e=(f[d>>2]|0)+(R>>>5<<2)|0;f[e>>2]=f[e>>2]&~(1<<(R&31));P=M;Q=v}R=~~+J(+(+P+.5));e=f[a+48>>2]|0;f[e>>2]=R;R=~~+J(+(+Q+.5));f[e+4>>2]=R;u=g;return}function Cc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=Oa,w=Oa,x=Oa,y=Oa,z=0,A=0,B=0,C=Oa,D=Oa,E=Oa,F=Oa,G=Oa,H=Oa,I=Oa,K=Oa,M=Oa,N=Oa,O=Oa,P=0,Q=Oa,R=Oa,S=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+48|0;o=f[c>>2]|0;c=o+1|0;if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;c=o+(((o>>>0)%3|0|0)==0?2:-1)|0;if((p|0)==-1)q=-1;else q=f[(f[f[m>>2]>>2]|0)+(p<<2)>>2]|0;if((c|0)==-1){r=-1;s=q}else{r=f[(f[f[m>>2]>>2]|0)+(c<<2)>>2]|0;s=q}}else{r=-1;s=-1}q=f[a+52>>2]|0;c=f[q>>2]|0;m=(f[q+4>>2]|0)-c>>2;if(m>>>0<=s>>>0)aq(q);p=c;c=f[p+(s<<2)>>2]|0;if(m>>>0<=r>>>0)aq(q);q=f[p+(r<<2)>>2]|0;r=(c|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r)t=c;else{if((e|0)>0){t=e+-1|0;break}p=a+72|0;if((f[p>>2]|0)<=0){u=g;return}m=f[a+68>>2]|0;s=0;do{f[m+(s<<2)>>2]=0;s=s+1|0}while((s|0)<(f[p>>2]|0));u=g;return}while(0);r=a+72|0;p=f[r>>2]|0;s=X(p,t)|0;if((p|0)<=0){u=g;return}p=f[a+68>>2]|0;t=0;do{f[p+(t<<2)>>2]=f[d+(t+s<<2)>>2];t=t+1|0}while((t|0)<(f[r>>2]|0));u=g;return}r=a+72|0;t=f[r>>2]|0;s=X(t,c)|0;v=$(f[d+(s<<2)>>2]|0);w=$(f[d+(s+1<<2)>>2]|0);s=X(t,q)|0;x=$(f[d+(s<<2)>>2]|0);y=$(f[d+(s+1<<2)>>2]|0);if(!(x!=v|y!=w)){s=f[a+68>>2]|0;f[s>>2]=~~x;f[s+4>>2]=~~y;u=g;return}s=a+64|0;t=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;p=a+60|0;m=f[p>>2]|0;if(!(b[m+84>>0]|0))z=f[(f[m+68>>2]|0)+(t<<2)>>2]|0;else z=t;f[i>>2]=z;z=b[m+24>>0]|0;f[h>>2]=f[i>>2];mb(m,h,z,j)|0;z=f[(f[s>>2]|0)+(c<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;c=f[p>>2]|0;if(!(b[c+84>>0]|0))A=f[(f[c+68>>2]|0)+(z<<2)>>2]|0;else A=z;f[i>>2]=A;A=b[c+24>>0]|0;f[h>>2]=f[i>>2];mb(c,h,A,k)|0;A=f[(f[s>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[p>>2]|0;if(!(b[q+84>>0]|0))B=f[(f[q+68>>2]|0)+(A<<2)>>2]|0;else B=A;f[i>>2]=B;B=b[q+24>>0]|0;f[h>>2]=f[i>>2];mb(q,h,B,l)|0;C=$(n[l>>2]);D=$(n[k>>2]);E=$(C-D);C=$(n[l+4>>2]);F=$(n[k+4>>2]);G=$(C-F);C=$(n[l+8>>2]);H=$(n[k+8>>2]);I=$(C-H);C=$($(n[j>>2])-D);D=$($(n[j+4>>2])-F);F=$($(n[j+8>>2])-H);H=$($($($(E*E)+$(0.0))+$(G*G))+$(I*I));if(H>$(0.0)){K=$($($($($(E*C)+$(0.0))+$(G*D))+$(I*F))/H);M=$(C-$(E*K));E=$(D-$(G*K));G=$(F-$(I*K));N=K;O=$(L($($($(G*G)+$($(E*E)+$($(M*M)+$(0.0))))/H)))}else{N=$(0.0);O=$(0.0)}H=$(x-v);x=$(y-w);y=$($(H*N)+v);v=$(H*O);H=$($(x*N)+w);w=$(x*O);O=$(y-w);x=$(H+v);N=$(y+w);w=$(H-v);j=X(f[r>>2]|0,e)|0;v=$(f[d+(j<<2)>>2]|0);H=$(f[d+(j+1<<2)>>2]|0);y=$(v-O);M=$(H-x);E=$(v-N);v=$(H-w);j=$($($(y*y)+$(0.0))+$(M*M))<$($($(E*E)+$(0.0))+$(v*v));d=a+76|0;e=a+80|0;r=f[e>>2]|0;k=f[a+84>>2]|0;l=(r|0)==(k<<5|0);if(j){do if(l)if((r+1|0)<0)aq(d);else{j=k<<6;B=r+32&-32;vi(d,r>>>0<1073741823?(j>>>0<B>>>0?B:j):2147483647);P=f[e>>2]|0;break}else P=r;while(0);f[e>>2]=P+1;j=(f[d>>2]|0)+(P>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(P&31);Q=O;R=x}else{do if(l)if((r+1|0)<0)aq(d);else{P=k<<6;j=r+32&-32;vi(d,r>>>0<1073741823?(P>>>0<j>>>0?j:P):2147483647);S=f[e>>2]|0;break}else S=r;while(0);f[e>>2]=S+1;e=(f[d>>2]|0)+(S>>>5<<2)|0;f[e>>2]=f[e>>2]&~(1<<(S&31));Q=N;R=w}S=~~+J(+(+Q+.5));e=f[a+68>>2]|0;f[e>>2]=S;S=~~+J(+(+R+.5));f[e+4>>2]=S;u=g;return}function Dc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=Oa,v=Oa,w=Oa,x=Oa,y=0,z=0,A=0,B=Oa,C=Oa,D=Oa,E=Oa,F=Oa,G=Oa,H=Oa,I=Oa,K=Oa,M=Oa,N=Oa,O=0,P=Oa,Q=Oa,R=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+48|0;o=f[c>>2]|0;c=o+1|0;do if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;if(!((o>>>0)%3|0)){q=o+2|0;r=p;break}else{q=o+-1|0;r=p;break}}else{q=-1;r=-1}while(0);o=f[(f[m>>2]|0)+28>>2]|0;m=f[o+(r<<2)>>2]|0;r=f[o+(q<<2)>>2]|0;q=f[a+52>>2]|0;o=f[q>>2]|0;c=(f[q+4>>2]|0)-o>>2;if(c>>>0<=m>>>0)aq(q);p=o;o=f[p+(m<<2)>>2]|0;if(c>>>0<=r>>>0)aq(q);q=f[p+(r<<2)>>2]|0;r=(o|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r)s=o;else{if((e|0)>0){s=e+-1|0;break}p=a+72|0;if((f[p>>2]|0)<=0){u=g;return}c=f[a+68>>2]|0;m=0;do{f[c+(m<<2)>>2]=0;m=m+1|0}while((m|0)<(f[p>>2]|0));u=g;return}while(0);r=a+72|0;p=f[r>>2]|0;m=X(p,s)|0;if((p|0)<=0){u=g;return}p=f[a+68>>2]|0;s=0;do{f[p+(s<<2)>>2]=f[d+(s+m<<2)>>2];s=s+1|0}while((s|0)<(f[r>>2]|0));u=g;return}r=a+72|0;s=f[r>>2]|0;m=X(s,o)|0;t=$(f[d+(m<<2)>>2]|0);v=$(f[d+(m+1<<2)>>2]|0);m=X(s,q)|0;w=$(f[d+(m<<2)>>2]|0);x=$(f[d+(m+1<<2)>>2]|0);if(!(w!=t|x!=v)){m=f[a+68>>2]|0;f[m>>2]=~~w;f[m+4>>2]=~~x;u=g;return}m=a+64|0;s=f[(f[m>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;p=a+60|0;c=f[p>>2]|0;if(!(b[c+84>>0]|0))y=f[(f[c+68>>2]|0)+(s<<2)>>2]|0;else y=s;f[i>>2]=y;y=b[c+24>>0]|0;f[h>>2]=f[i>>2];mb(c,h,y,j)|0;y=f[(f[m>>2]|0)+(o<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;o=f[p>>2]|0;if(!(b[o+84>>0]|0))z=f[(f[o+68>>2]|0)+(y<<2)>>2]|0;else z=y;f[i>>2]=z;z=b[o+24>>0]|0;f[h>>2]=f[i>>2];mb(o,h,z,k)|0;z=f[(f[m>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[p>>2]|0;if(!(b[q+84>>0]|0))A=f[(f[q+68>>2]|0)+(z<<2)>>2]|0;else A=z;f[i>>2]=A;A=b[q+24>>0]|0;f[h>>2]=f[i>>2];mb(q,h,A,l)|0;B=$(n[l>>2]);C=$(n[k>>2]);D=$(B-C);B=$(n[l+4>>2]);E=$(n[k+4>>2]);F=$(B-E);B=$(n[l+8>>2]);G=$(n[k+8>>2]);H=$(B-G);B=$($(n[j>>2])-C);C=$($(n[j+4>>2])-E);E=$($(n[j+8>>2])-G);G=$($($($(D*D)+$(0.0))+$(F*F))+$(H*H));if(G>$(0.0)){I=$($($($($(D*B)+$(0.0))+$(F*C))+$(H*E))/G);K=$(B-$(D*I));D=$(C-$(F*I));F=$(E-$(H*I));M=I;N=$(L($($($(F*F)+$($(D*D)+$($(K*K)+$(0.0))))/G)))}else{M=$(0.0);N=$(0.0)}G=$(w-t);w=$(x-v);x=$($(G*M)+t);t=$(G*N);G=$($(w*M)+v);v=$(w*N);N=$(x-v);w=$(G+t);M=$(x+v);v=$(G-t);j=X(f[r>>2]|0,e)|0;t=$(f[d+(j<<2)>>2]|0);G=$(f[d+(j+1<<2)>>2]|0);x=$(t-N);K=$(G-w);D=$(t-M);t=$(G-v);j=$($($(x*x)+$(0.0))+$(K*K))<$($($(D*D)+$(0.0))+$(t*t));d=a+76|0;e=a+80|0;r=f[e>>2]|0;k=f[a+84>>2]|0;l=(r|0)==(k<<5|0);if(j){do if(l)if((r+1|0)<0)aq(d);else{j=k<<6;A=r+32&-32;vi(d,r>>>0<1073741823?(j>>>0<A>>>0?A:j):2147483647);O=f[e>>2]|0;break}else O=r;while(0);f[e>>2]=O+1;j=(f[d>>2]|0)+(O>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(O&31);P=N;Q=w}else{do if(l)if((r+1|0)<0)aq(d);else{O=k<<6;j=r+32&-32;vi(d,r>>>0<1073741823?(O>>>0<j>>>0?j:O):2147483647);R=f[e>>2]|0;break}else R=r;while(0);f[e>>2]=R+1;e=(f[d>>2]|0)+(R>>>5<<2)|0;f[e>>2]=f[e>>2]&~(1<<(R&31));P=M;Q=v}R=~~+J(+(+P+.5));e=f[a+68>>2]|0;f[e>>2]=R;R=~~+J(+(+Q+.5));f[e+4>>2]=R;u=g;return}function Ec(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=Oa,F=Oa,G=Oa,H=0,I=0,J=0,K=0;d=b[c+11>>0]|0;e=d<<24>>24<0;g=e?f[c>>2]|0:c;i=e?f[c+4>>2]|0:d&255;if(i>>>0>3){d=g;e=i;j=i;while(1){k=X(h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24,1540483477)|0;e=(X(k>>>24^k,1540483477)|0)^(X(e,1540483477)|0);j=j+-4|0;if(j>>>0<=3)break;else d=d+4|0}d=i+-4|0;j=d&-4;l=d-j|0;m=g+(j+4)|0;o=e}else{l=i;m=g;o=i}switch(l|0){case 3:{p=h[m+2>>0]<<16^o;q=6;break}case 2:{p=o;q=6;break}case 1:{r=o;q=7;break}default:s=o}if((q|0)==6){r=h[m+1>>0]<<8^p;q=7}if((q|0)==7)s=X(r^h[m>>0],1540483477)|0;m=X(s>>>13^s,1540483477)|0;s=m>>>15^m;m=a+4|0;r=f[m>>2]|0;p=(r|0)==0;a:do if(!p){o=r+-1|0;l=(o&r|0)==0;if(!l)if(s>>>0<r>>>0)t=s;else t=(s>>>0)%(r>>>0)|0;else t=s&o;e=f[(f[a>>2]|0)+(t<<2)>>2]|0;if((e|0)!=0?(j=f[e>>2]|0,(j|0)!=0):0){e=(i|0)==0;if(l){if(e){l=j;while(1){d=f[l+4>>2]|0;if(!((d|0)==(s|0)|(d&o|0)==(t|0))){u=t;break a}d=b[l+8+11>>0]|0;if(!((d<<24>>24<0?f[l+12>>2]|0:d&255)|0)){v=l;break}l=f[l>>2]|0;if(!l){u=t;break a}}w=v+20|0;return w|0}else x=j;b:while(1){l=f[x+4>>2]|0;if(!((l|0)==(s|0)|(l&o|0)==(t|0))){u=t;break a}l=x+8|0;d=b[l+11>>0]|0;k=d<<24>>24<0;y=d&255;do if(((k?f[x+12>>2]|0:y)|0)==(i|0)){d=f[l>>2]|0;if(k)if(!(Vk(d,g,i)|0)){v=x;q=63;break b}else break;if((b[g>>0]|0)==(d&255)<<24>>24){d=l;z=y;A=g;do{z=z+-1|0;d=d+1|0;if(!z){v=x;q=63;break b}A=A+1|0}while((b[d>>0]|0)==(b[A>>0]|0))}}while(0);x=f[x>>2]|0;if(!x){u=t;break a}}if((q|0)==63){w=v+20|0;return w|0}}if(e){o=j;while(1){y=f[o+4>>2]|0;if((y|0)!=(s|0)){if(y>>>0<r>>>0)B=y;else B=(y>>>0)%(r>>>0)|0;if((B|0)!=(t|0)){u=t;break a}}y=b[o+8+11>>0]|0;if(!((y<<24>>24<0?f[o+12>>2]|0:y&255)|0)){v=o;break}o=f[o>>2]|0;if(!o){u=t;break a}}w=v+20|0;return w|0}else C=j;c:while(1){o=f[C+4>>2]|0;if((o|0)!=(s|0)){if(o>>>0<r>>>0)D=o;else D=(o>>>0)%(r>>>0)|0;if((D|0)!=(t|0)){u=t;break a}}o=C+8|0;e=b[o+11>>0]|0;y=e<<24>>24<0;l=e&255;do if(((y?f[C+12>>2]|0:l)|0)==(i|0)){e=f[o>>2]|0;if(y)if(!(Vk(e,g,i)|0)){v=C;q=63;break c}else break;if((b[g>>0]|0)==(e&255)<<24>>24){e=o;k=l;A=g;do{k=k+-1|0;e=e+1|0;if(!k){v=C;q=63;break c}A=A+1|0}while((b[e>>0]|0)==(b[A>>0]|0))}}while(0);C=f[C>>2]|0;if(!C){u=t;break a}}if((q|0)==63){w=v+20|0;return w|0}}else u=t}else u=0;while(0);t=ln(24)|0;pj(t+8|0,c);f[t+20>>2]=0;f[t+4>>2]=s;f[t>>2]=0;c=a+12|0;E=$(((f[c>>2]|0)+1|0)>>>0);F=$(r>>>0);G=$(n[a+16>>2]);do if(p|$(G*F)<E){C=r<<1|(r>>>0<3|(r+-1&r|0)!=0)&1;g=~~$(W($(E/G)))>>>0;ei(a,C>>>0<g>>>0?g:C);C=f[m>>2]|0;g=C+-1|0;if(!(g&C)){H=C;I=g&s;break}if(s>>>0<C>>>0){H=C;I=s}else{H=C;I=(s>>>0)%(C>>>0)|0}}else{H=r;I=u}while(0);u=(f[a>>2]|0)+(I<<2)|0;I=f[u>>2]|0;if(!I){r=a+8|0;f[t>>2]=f[r>>2];f[r>>2]=t;f[u>>2]=r;r=f[t>>2]|0;if(r|0){u=f[r+4>>2]|0;r=H+-1|0;if(r&H)if(u>>>0<H>>>0)J=u;else J=(u>>>0)%(H>>>0)|0;else J=u&r;K=(f[a>>2]|0)+(J<<2)|0;q=61}}else{f[t>>2]=f[I>>2];K=I;q=61}if((q|0)==61)f[K>>2]=t;f[c>>2]=(f[c>>2]|0)+1;v=t;w=v+20|0;return w|0}function Fc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0,Q=0.0,R=0.0,S=0,T=0.0,U=0,V=0,W=0,X=0.0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0.0,da=0,ea=0.0;g=a+4|0;i=f[g>>2]|0;j=a+100|0;if(i>>>0<(f[j>>2]|0)>>>0){f[g>>2]=i+1;k=h[i>>0]|0;l=0}else{k=Si(a)|0;l=0}a:while(1){switch(k|0){case 46:{m=8;break a;break}case 48:break;default:{n=0;o=0;p=1.0;q=0.0;r=0;s=k;t=l;u=0;v=0;w=0;x=0;break a}}i=f[g>>2]|0;if(i>>>0<(f[j>>2]|0)>>>0){f[g>>2]=i+1;k=h[i>>0]|0;l=1;continue}else{k=Si(a)|0;l=1;continue}}if((m|0)==8){k=f[g>>2]|0;if(k>>>0<(f[j>>2]|0)>>>0){f[g>>2]=k+1;y=h[k>>0]|0}else y=Si(a)|0;if((y|0)==48){k=0;i=0;while(1){z=f[g>>2]|0;if(z>>>0<(f[j>>2]|0)>>>0){f[g>>2]=z+1;A=h[z>>0]|0}else A=Si(a)|0;z=Vn(k|0,i|0,-1,-1)|0;B=I;if((A|0)==48){k=z;i=B}else{n=1;o=0;p=1.0;q=0.0;r=0;s=A;t=1;u=0;v=0;w=z;x=B;break}}}else{n=1;o=0;p=1.0;q=0.0;r=0;s=y;t=l;u=0;v=0;w=0;x=0}}while(1){l=s+-48|0;y=s|32;if(l>>>0>=10){A=(s|0)==46;if(!(A|(y+-97|0)>>>0<6)){C=s;break}if(A)if(!n){D=1;E=o;F=p;G=q;H=r;J=t;K=v;L=u;M=v;N=u}else{C=46;break}else m=20}else m=20;if((m|0)==20){m=0;A=(s|0)>57?y+-87|0:l;do if(!((u|0)<0|(u|0)==0&v>>>0<8))if((u|0)<0|(u|0)==0&v>>>0<14){O=p*.0625;P=o;Q=O;R=q+O*+(A|0);S=r;break}else{l=(o|0)!=0|(A|0)==0;P=l?o:1;Q=p;R=l?q:q+p*.5;S=r;break}else{P=o;Q=p;R=q;S=A+(r<<4)|0}while(0);A=Vn(v|0,u|0,1,0)|0;D=n;E=P;F=Q;G=R;H=S;J=1;K=w;L=x;M=A;N=I}A=f[g>>2]|0;if(A>>>0<(f[j>>2]|0)>>>0){f[g>>2]=A+1;n=D;o=E;p=F;q=G;r=H;s=h[A>>0]|0;t=J;u=N;v=M;w=K;x=L;continue}else{n=D;o=E;p=F;q=G;r=H;s=Si(a)|0;t=J;u=N;v=M;w=K;x=L;continue}}do if(!t){L=(f[j>>2]|0)==0;if(!L)f[g>>2]=(f[g>>2]|0)+-1;if(e){if(!L)f[g>>2]=(f[g>>2]|0)+-1;if(!((n|0)==0|L))f[g>>2]=(f[g>>2]|0)+-1}else Ym(a,0);T=+(d|0)*0.0}else{L=(n|0)==0;K=L?v:w;M=L?u:x;if((u|0)<0|(u|0)==0&v>>>0<8){L=r;N=v;J=u;while(1){s=L<<4;H=N;N=Vn(N|0,J|0,1,0)|0;if(!((J|0)<0|(J|0)==0&H>>>0<7)){U=s;break}else{L=s;J=I}}}else U=r;if((C|32|0)==112){J=Re(a,e)|0;L=I;if((J|0)==0&(L|0)==-2147483648){if(!e){Ym(a,0);T=0.0;break}if(!(f[j>>2]|0)){V=0;W=0}else{f[g>>2]=(f[g>>2]|0)+-1;V=0;W=0}}else{V=J;W=L}}else if(!(f[j>>2]|0)){V=0;W=0}else{f[g>>2]=(f[g>>2]|0)+-1;V=0;W=0}L=Tn(K|0,M|0,2)|0;J=Vn(L|0,I|0,-32,-1)|0;L=Vn(J|0,I|0,V|0,W|0)|0;J=I;if(!U){T=+(d|0)*0.0;break}N=0-c|0;s=((N|0)<0)<<31>>31;if((J|0)>(s|0)|(J|0)==(s|0)&L>>>0>N>>>0){N=Vq()|0;f[N>>2]=34;T=+(d|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}N=c+-106|0;s=((N|0)<0)<<31>>31;if((J|0)<(s|0)|(J|0)==(s|0)&L>>>0<N>>>0){N=Vq()|0;f[N>>2]=34;T=+(d|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((U|0)>-1){G=q;N=U;s=L;H=J;while(1){E=!(G>=.5);o=N<<1|(E^1)&1;F=G+(E?G:G+-1.0);E=Vn(s|0,H|0,-1,-1)|0;D=I;if((o|0)>-1){G=F;N=o;s=E;H=D}else{X=F;Y=o;Z=E;_=D;break}}}else{X=q;Y=U;Z=L;_=J}H=((b|0)<0)<<31>>31;s=Xn(32,0,c|0,((c|0)<0)<<31>>31|0)|0;N=Vn(s|0,I|0,Z|0,_|0)|0;s=I;if((s|0)<(H|0)|(s|0)==(H|0)&N>>>0<b>>>0)if((N|0)>0){$=N;m=59}else{aa=0;ba=84;m=61}else{$=b;m=59}if((m|0)==59)if(($|0)<53){aa=$;ba=84-$|0;m=61}else{ca=0.0;da=$;ea=+(d|0)}if((m|0)==61){G=+(d|0);ca=+rq(+bk(1.0,ba),G);da=aa;ea=G}N=(Y&1|0)==0&(X!=0.0&(da|0)<32);G=(N?0.0:X)*ea+(ca+ea*+((Y+(N&1)|0)>>>0))-ca;if(!(G!=0.0)){N=Vq()|0;f[N>>2]=34}T=+sq(G,Z)}while(0);return +T}function Gc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;g=u;u=u+16|0;h=g+4|0;i=g;if(!(Gh(a,d)|0)){j=0;u=g;return j|0}d=a+84|0;k=f[d>>2]|0;l=a+88|0;m=f[l>>2]|0;if((m|0)!=(k|0))f[l>>2]=m+(~((m+-4-k|0)>>>2)<<2);f[d>>2]=0;f[l>>2]=0;f[a+92>>2]=0;if(k|0)Oq(k);k=a+72|0;l=f[k>>2]|0;d=a+76|0;if((f[d>>2]|0)!=(l|0))f[d>>2]=l;f[k>>2]=0;f[d>>2]=0;f[a+80>>2]=0;if(l|0)Oq(l);l=a+64|0;d=f[l>>2]|0;if((f[d+4>>2]|0)!=(f[d>>2]|0)){k=a+12|0;m=e+84|0;n=e+68|0;o=c+96|0;p=a+24|0;q=0;r=d;do{f[i>>2]=(q>>>0)/3|0;f[h>>2]=f[i>>2];d=_j(r,h)|0;r=f[l>>2]|0;do if(!d){s=f[(f[r+12>>2]|0)+(q<<2)>>2]|0;if((s|0)==-1){t=(f[a>>2]|0)+(q>>>5<<2)|0;f[t>>2]=f[t>>2]|1<<(q&31);t=q+1|0;v=((t>>>0)%3|0|0)==0?q+-2|0:t;if((v|0)==-1)w=-1;else w=f[(f[r>>2]|0)+(v<<2)>>2]|0;v=(f[k>>2]|0)+(w>>>5<<2)|0;f[v>>2]=f[v>>2]|1<<(w&31);v=(((q>>>0)%3|0|0)==0?2:-1)+q|0;if((v|0)==-1)x=-1;else x=f[(f[r>>2]|0)+(v<<2)>>2]|0;v=(f[k>>2]|0)+(x>>>5<<2)|0;f[v>>2]=f[v>>2]|1<<(x&31);break}if(s>>>0>=q>>>0){v=q+1|0;t=((v>>>0)%3|0|0)==0?q+-2|0:v;y=s+(((s>>>0)%3|0|0)==0?2:-1)|0;z=(t|0)==-1;if(!(b[m>>0]|0)){if(z)A=-1;else A=f[(f[o>>2]|0)+(((t|0)/3|0)*12|0)+(((t|0)%3|0)<<2)>>2]|0;B=(y|0)==-1;if(B)C=-1;else C=f[(f[o>>2]|0)+(((y|0)/3|0)*12|0)+(((y|0)%3|0)<<2)>>2]|0;D=f[n>>2]|0;if((f[D+(A<<2)>>2]|0)==(f[D+(C<<2)>>2]|0)){E=t+1|0;if(z)F=-1;else F=((E>>>0)%3|0|0)==0?t+-2|0:E;do if(!B)if(!((y>>>0)%3|0)){G=y+2|0;break}else{G=y+-1|0;break}else G=-1;while(0);if((F|0)==-1)H=-1;else H=f[(f[o>>2]|0)+(((F|0)/3|0)*12|0)+(((F|0)%3|0)<<2)>>2]|0;if((G|0)==-1)I=-1;else I=f[(f[o>>2]|0)+(((G|0)/3|0)*12|0)+(((G|0)%3|0)<<2)>>2]|0;if((f[D+(H<<2)>>2]|0)==(f[D+(I<<2)>>2]|0))break}}else{if(z)J=-1;else J=f[(f[o>>2]|0)+(((t|0)/3|0)*12|0)+(((t|0)%3|0)<<2)>>2]|0;B=(y|0)==-1;if(B)K=-1;else K=f[(f[o>>2]|0)+(((y|0)/3|0)*12|0)+(((y|0)%3|0)<<2)>>2]|0;if((J|0)==(K|0)){E=t+1|0;if(z)L=-1;else L=((E>>>0)%3|0|0)==0?t+-2|0:E;do if(!B)if(!((y>>>0)%3|0)){M=y+2|0;break}else{M=y+-1|0;break}else M=-1;while(0);if((L|0)==-1)N=-1;else N=f[(f[o>>2]|0)+(((L|0)/3|0)*12|0)+(((L|0)%3|0)<<2)>>2]|0;if((M|0)==-1)O=-1;else O=f[(f[o>>2]|0)+(((M|0)/3|0)*12|0)+(((M|0)%3|0)<<2)>>2]|0;if((N|0)==(O|0))break}}b[p>>0]=0;y=f[a>>2]|0;B=y+(q>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(q&31);B=y+(s>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(s&31);B=((v>>>0)%3|0|0)==0?q+-2|0:v;if((B|0)==-1)P=-1;else P=f[(f[r>>2]|0)+(B<<2)>>2]|0;B=(f[k>>2]|0)+(P>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(P&31);B=(((q>>>0)%3|0|0)==0?2:-1)+q|0;if((B|0)==-1)Q=-1;else Q=f[(f[r>>2]|0)+(B<<2)>>2]|0;B=(f[k>>2]|0)+(Q>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(Q&31);B=s+1|0;y=((B>>>0)%3|0|0)==0?s+-2|0:B;if((y|0)==-1)R=-1;else R=f[(f[r>>2]|0)+(y<<2)>>2]|0;y=(f[k>>2]|0)+(R>>>5<<2)|0;f[y>>2]=f[y>>2]|1<<(R&31);y=(((s>>>0)%3|0|0)==0?2:-1)+s|0;if((y|0)==-1)S=-1;else S=f[(f[r>>2]|0)+(y<<2)>>2]|0;y=(f[k>>2]|0)+(S>>>5<<2)|0;f[y>>2]=f[y>>2]|1<<(S&31)}}while(0);q=q+1|0}while(q>>>0<(f[r+4>>2]|0)-(f[r>>2]|0)>>2>>>0)}if((c|0)!=0&(e|0)!=0){Qc(a,c,e);j=1;u=g;return j|0}else{md(a,0,0);j=1;u=g;return j|0}return 0}function Hc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;d=u;u=u+32|0;e=d+12|0;g=d+8|0;h=d+4|0;i=d;j=a+8|0;a:do if(f[j>>2]|0?(k=f[a>>2]|0,l=a+4|0,f[a>>2]=l,f[(f[l>>2]|0)+8>>2]=0,f[l>>2]=0,f[j>>2]=0,m=f[k+4>>2]|0,n=(m|0)==0?k:m,n|0):0){m=a+4|0;k=n;n=f[b>>2]|0;while(1){if((n|0)==(f[c>>2]|0))break;o=k+16|0;f[o>>2]=f[n+16>>2];if((k|0)!=(n|0)){f[h>>2]=f[n+20>>2];f[i>>2]=n+24;f[g>>2]=f[h>>2];f[e>>2]=f[i>>2];Oc(k+20|0,g,e)}p=k+8|0;q=f[p>>2]|0;do if(q){r=f[q>>2]|0;if((r|0)==(k|0)){f[q>>2]=0;s=f[q+4>>2]|0;if(!s){t=q;break}else v=s;while(1){s=f[v>>2]|0;if(s|0){v=s;continue}s=f[v+4>>2]|0;if(!s)break;else v=s}t=v;break}else{f[q+4>>2]=0;if(!r){t=q;break}else w=r;while(1){s=f[w>>2]|0;if(s|0){w=s;continue}s=f[w+4>>2]|0;if(!s)break;else w=s}t=w;break}}else t=0;while(0);q=f[l>>2]|0;do if(q){r=f[o>>2]|0;s=q;while(1){if((r|0)<(f[s+16>>2]|0)){x=f[s>>2]|0;if(!x){y=22;break}else z=x}else{A=s+4|0;x=f[A>>2]|0;if(!x){y=25;break}else z=x}s=z}if((y|0)==22){y=0;B=s;C=s;break}else if((y|0)==25){y=0;B=s;C=A;break}}else{B=l;C=l}while(0);f[k>>2]=0;f[k+4>>2]=0;f[p>>2]=B;f[C>>2]=k;q=f[f[a>>2]>>2]|0;if(!q)D=k;else{f[a>>2]=q;D=f[C>>2]|0}Oe(f[m>>2]|0,D);f[j>>2]=(f[j>>2]|0)+1;q=f[n+4>>2]|0;if(!q){o=n+8|0;r=f[o>>2]|0;if((f[r>>2]|0)==(n|0))E=r;else{r=o;do{o=f[r>>2]|0;r=o+8|0;x=f[r>>2]|0}while((f[x>>2]|0)!=(o|0));E=x}}else{r=q;while(1){p=f[r>>2]|0;if(!p)break;else r=p}E=r}f[b>>2]=E;if(!t)break a;else{k=t;n=E}}n=f[k+8>>2]|0;if(!n)F=k;else{m=n;while(1){n=f[m+8>>2]|0;if(!n)break;else m=n}F=m}Oj(a,F)}while(0);F=f[b>>2]|0;E=f[c>>2]|0;if((F|0)==(E|0)){u=d;return}c=a+4|0;t=a+4|0;D=F;while(1){Kg(e,a,D+16|0);F=f[c>>2]|0;do if(F){C=f[e>>2]|0;B=f[C+16>>2]|0;A=F;while(1){if((B|0)<(f[A+16>>2]|0)){z=f[A>>2]|0;if(!z){y=43;break}else G=z}else{H=A+4|0;z=f[H>>2]|0;if(!z){y=46;break}else G=z}A=G}if((y|0)==43){y=0;I=A;J=A;K=C;break}else if((y|0)==46){y=0;I=A;J=H;K=C;break}}else{I=c;J=c;K=f[e>>2]|0}while(0);f[K>>2]=0;f[K+4>>2]=0;f[K+8>>2]=I;f[J>>2]=K;F=f[f[a>>2]>>2]|0;if(!F)L=K;else{f[a>>2]=F;L=f[J>>2]|0}Oe(f[t>>2]|0,L);f[j>>2]=(f[j>>2]|0)+1;F=f[D+4>>2]|0;if(!F){m=D+8|0;B=f[m>>2]|0;if((f[B>>2]|0)==(D|0))M=B;else{B=m;do{m=f[B>>2]|0;B=m+8|0;r=f[B>>2]|0}while((f[r>>2]|0)!=(m|0));M=r}}else{B=F;while(1){r=f[B>>2]|0;if(!r)break;else B=r}M=B}f[b>>2]=M;if((M|0)==(E|0))break;else D=M}u=d;return}function Ic(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;g=u;u=u+32|0;d=g+16|0;h=g+8|0;i=g;j=f[a+28>>2]|0;k=f[a+32>>2]|0;l=e>>>0>1073741823?-1:e<<2;m=Lq(l)|0;sj(m|0,0,l|0)|0;n=Lq(l)|0;sj(n|0,0,l|0)|0;l=a+36|0;o=f[l>>2]|0;p=f[o+4>>2]|0;q=f[o>>2]|0;r=p-q|0;a:do if((r|0)>4){s=r>>2;t=(e|0)>0;v=a+8|0;w=h+4|0;x=i+4|0;y=d+4|0;z=m+4|0;A=h+4|0;B=i+4|0;C=d+4|0;D=j+12|0;E=e<<2;F=s+-1|0;if(p-q>>2>>>0>F>>>0){G=s;H=F;I=q}else{J=o;aq(J)}while(1){F=f[I+(H<<2)>>2]|0;if(t)sj(m|0,0,E|0)|0;if((F|0)!=-1){s=f[D>>2]|0;K=0;L=F;while(1){M=f[s+(L<<2)>>2]|0;if((M|0)!=-1){N=f[j>>2]|0;O=f[k>>2]|0;P=f[O+(f[N+(M<<2)>>2]<<2)>>2]|0;Q=M+1|0;R=((Q>>>0)%3|0|0)==0?M+-2|0:Q;if((R|0)==-1)S=-1;else S=f[N+(R<<2)>>2]|0;R=f[O+(S<<2)>>2]|0;Q=(((M>>>0)%3|0|0)==0?2:-1)+M|0;if((Q|0)==-1)T=-1;else T=f[N+(Q<<2)>>2]|0;Q=f[O+(T<<2)>>2]|0;if((P|0)<(H|0)&(R|0)<(H|0)&(Q|0)<(H|0)){O=X(P,e)|0;P=X(R,e)|0;R=X(Q,e)|0;if(t){Q=0;do{f[n+(Q<<2)>>2]=(f[b+(Q+R<<2)>>2]|0)+(f[b+(Q+P<<2)>>2]|0)-(f[b+(Q+O<<2)>>2]|0);Q=Q+1|0}while((Q|0)!=(e|0));if(t){Q=0;do{O=m+(Q<<2)|0;f[O>>2]=(f[O>>2]|0)+(f[n+(Q<<2)>>2]|0);Q=Q+1|0}while((Q|0)!=(e|0))}}U=K+1|0}else U=K}else U=K;Q=(((L>>>0)%3|0|0)==0?2:-1)+L|0;do if((Q|0)!=-1?(O=f[s+(Q<<2)>>2]|0,(O|0)!=-1):0)if(!((O>>>0)%3|0)){V=O+2|0;break}else{V=O+-1|0;break}else V=-1;while(0);L=(V|0)==(F|0)?-1:V;if((L|0)==-1)break;else K=U}K=X(H,e)|0;if(!U){W=K;Y=30}else{if(t){L=0;do{F=m+(L<<2)|0;f[F>>2]=(f[F>>2]|0)/(U|0)|0;L=L+1|0}while((L|0)!=(e|0))}L=b+(K<<2)|0;F=c+(K<<2)|0;s=f[L+4>>2]|0;Q=f[m>>2]|0;O=f[z>>2]|0;f[h>>2]=f[L>>2];f[A>>2]=s;f[i>>2]=Q;f[B>>2]=O;Od(d,v,h,i);f[F>>2]=f[d>>2];f[F+4>>2]=f[C>>2]}}else{W=X(H,e)|0;Y=30}if((Y|0)==30){Y=0;F=b+(W<<2)|0;O=b+((X(G+-2|0,e)|0)<<2)|0;Q=c+(W<<2)|0;s=f[F+4>>2]|0;L=f[O>>2]|0;P=f[O+4>>2]|0;f[h>>2]=f[F>>2];f[w>>2]=s;f[i>>2]=L;f[x>>2]=P;Od(d,v,h,i);f[Q>>2]=f[d>>2];f[Q+4>>2]=f[y>>2]}if((G|0)<=2)break a;Q=f[l>>2]|0;I=f[Q>>2]|0;P=H+-1|0;if((f[Q+4>>2]|0)-I>>2>>>0<=P>>>0){J=Q;break}else{Q=H;H=P;G=Q}}aq(J)}while(0);if((e|0)<=0){Z=a+8|0;_=b+4|0;$=f[b>>2]|0;aa=f[_>>2]|0;ba=m+4|0;ca=f[m>>2]|0;da=f[ba>>2]|0;f[h>>2]=$;ea=h+4|0;f[ea>>2]=aa;f[i>>2]=ca;fa=i+4|0;f[fa>>2]=da;Od(d,Z,h,i);ga=f[d>>2]|0;f[c>>2]=ga;ha=d+4|0;ia=f[ha>>2]|0;ja=c+4|0;f[ja>>2]=ia;Mq(n);Mq(m);u=g;return 1}sj(m|0,0,e<<2|0)|0;Z=a+8|0;_=b+4|0;$=f[b>>2]|0;aa=f[_>>2]|0;ba=m+4|0;ca=f[m>>2]|0;da=f[ba>>2]|0;f[h>>2]=$;ea=h+4|0;f[ea>>2]=aa;f[i>>2]=ca;fa=i+4|0;f[fa>>2]=da;Od(d,Z,h,i);ga=f[d>>2]|0;f[c>>2]=ga;ha=d+4|0;ia=f[ha>>2]|0;ja=c+4|0;f[ja>>2]=ia;Mq(n);Mq(m);u=g;return 1}function Jc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;g=a+8|0;Mh(g,b,d,e);d=e>>>0>1073741823?-1:e<<2;h=Lq(d)|0;sj(h|0,0,d|0)|0;d=f[a+48>>2]|0;i=f[a+56>>2]|0;j=f[i>>2]|0;k=(f[i+4>>2]|0)-j|0;l=k>>2;a:do if((k|0)>4){m=f[a+52>>2]|0;n=a+16|0;o=a+32|0;p=a+12|0;q=a+28|0;r=a+20|0;s=a+24|0;t=d+12|0;u=(e|0)>0;v=j;w=l;while(1){x=w;w=w+-1|0;if(l>>>0<=w>>>0)break;y=f[v+(w<<2)>>2]|0;z=X(w,e)|0;if((y|0)!=-1?(A=f[(f[t>>2]|0)+(y<<2)>>2]|0,(A|0)!=-1):0){y=f[d>>2]|0;B=f[m>>2]|0;C=f[B+(f[y+(A<<2)>>2]<<2)>>2]|0;D=A+1|0;E=((D>>>0)%3|0|0)==0?A+-2|0:D;if((E|0)==-1)F=-1;else F=f[y+(E<<2)>>2]|0;E=f[B+(F<<2)>>2]|0;D=(((A>>>0)%3|0|0)==0?2:-1)+A|0;if((D|0)==-1)G=-1;else G=f[y+(D<<2)>>2]|0;D=f[B+(G<<2)>>2]|0;if((C|0)<(w|0)&(E|0)<(w|0)&(D|0)<(w|0)){B=X(C,e)|0;C=X(E,e)|0;E=X(D,e)|0;if(u){D=0;do{f[h+(D<<2)>>2]=(f[b+(D+E<<2)>>2]|0)+(f[b+(D+C<<2)>>2]|0)-(f[b+(D+B<<2)>>2]|0);D=D+1|0}while((D|0)!=(e|0))}D=b+(z<<2)|0;B=c+(z<<2)|0;C=f[g>>2]|0;if((C|0)>0){E=0;y=h;A=C;while(1){if((A|0)>0){C=0;do{H=f[y+(C<<2)>>2]|0;I=f[n>>2]|0;if((H|0)>(I|0)){J=f[o>>2]|0;f[J+(C<<2)>>2]=I;K=J}else{J=f[p>>2]|0;I=f[o>>2]|0;f[I+(C<<2)>>2]=(H|0)<(J|0)?J:H;K=I}C=C+1|0}while((C|0)<(f[g>>2]|0));L=K}else L=f[o>>2]|0;C=(f[D+(E<<2)>>2]|0)-(f[L+(E<<2)>>2]|0)|0;I=B+(E<<2)|0;f[I>>2]=C;if((C|0)>=(f[q>>2]|0)){if((C|0)>(f[s>>2]|0)){M=C-(f[r>>2]|0)|0;N=42}}else{M=(f[r>>2]|0)+C|0;N=42}if((N|0)==42){N=0;f[I>>2]=M}E=E+1|0;A=f[g>>2]|0;if((E|0)>=(A|0))break;else y=L}}}else N=16}else N=16;if((N|0)==16?(N=0,y=b+(z<<2)|0,A=c+(z<<2)|0,E=f[g>>2]|0,(E|0)>0):0){B=0;D=b+((X(x+-2|0,e)|0)<<2)|0;I=E;while(1){if((I|0)>0){E=0;do{C=f[D+(E<<2)>>2]|0;H=f[n>>2]|0;if((C|0)>(H|0)){J=f[o>>2]|0;f[J+(E<<2)>>2]=H;O=J}else{J=f[p>>2]|0;H=f[o>>2]|0;f[H+(E<<2)>>2]=(C|0)<(J|0)?J:C;O=H}E=E+1|0}while((E|0)<(f[g>>2]|0));P=O}else P=f[o>>2]|0;E=(f[y+(B<<2)>>2]|0)-(f[P+(B<<2)>>2]|0)|0;H=A+(B<<2)|0;f[H>>2]=E;if((E|0)>=(f[q>>2]|0)){if((E|0)>(f[s>>2]|0)){Q=E-(f[r>>2]|0)|0;N=29}}else{Q=(f[r>>2]|0)+E|0;N=29}if((N|0)==29){N=0;f[H>>2]=Q}B=B+1|0;I=f[g>>2]|0;if((B|0)>=(I|0))break;else D=P}}if((x|0)<=2)break a}aq(i)}while(0);if((e|0)>0)sj(h|0,0,e<<2|0)|0;e=f[g>>2]|0;if((e|0)<=0){Mq(h);return 1}i=a+16|0;P=a+32|0;Q=a+12|0;O=a+28|0;L=a+20|0;M=a+24|0;a=0;K=h;G=e;while(1){if((G|0)>0){e=0;do{F=f[K+(e<<2)>>2]|0;d=f[i>>2]|0;if((F|0)>(d|0)){l=f[P>>2]|0;f[l+(e<<2)>>2]=d;R=l}else{l=f[Q>>2]|0;d=f[P>>2]|0;f[d+(e<<2)>>2]=(F|0)<(l|0)?l:F;R=d}e=e+1|0}while((e|0)<(f[g>>2]|0));S=R}else S=f[P>>2]|0;e=(f[b+(a<<2)>>2]|0)-(f[S+(a<<2)>>2]|0)|0;d=c+(a<<2)|0;f[d>>2]=e;if((e|0)>=(f[O>>2]|0)){if((e|0)>(f[M>>2]|0)){T=e-(f[L>>2]|0)|0;N=56}}else{T=(f[L>>2]|0)+e|0;N=56}if((N|0)==56){N=0;f[d>>2]=T}a=a+1|0;G=f[g>>2]|0;if((a|0)>=(G|0))break;else K=S}Mq(h);return 1}function Kc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;g=u;u=u+32|0;d=g+16|0;h=g+8|0;i=g;j=f[a+28>>2]|0;k=f[a+32>>2]|0;l=e>>>0>1073741823?-1:e<<2;m=Lq(l)|0;sj(m|0,0,l|0)|0;n=Lq(l)|0;sj(n|0,0,l|0)|0;l=a+36|0;o=f[l>>2]|0;p=f[o+4>>2]|0;q=f[o>>2]|0;r=p-q|0;a:do if((r|0)>4){s=r>>2;t=(e|0)>0;v=a+8|0;w=h+4|0;x=i+4|0;y=d+4|0;z=m+4|0;A=h+4|0;B=i+4|0;C=d+4|0;D=j+64|0;E=j+28|0;F=e<<2;G=s+-1|0;if(p-q>>2>>>0>G>>>0){H=s;I=G;J=q}else{K=o;aq(K)}while(1){G=f[J+(I<<2)>>2]|0;if(t)sj(m|0,0,F|0)|0;if((G|0)!=-1){s=f[j>>2]|0;L=0;M=G;while(1){if(((f[s+(M>>>5<<2)>>2]&1<<(M&31)|0)==0?(N=f[(f[(f[D>>2]|0)+12>>2]|0)+(M<<2)>>2]|0,(N|0)!=-1):0)?(O=f[E>>2]|0,P=f[k>>2]|0,Q=f[P+(f[O+(N<<2)>>2]<<2)>>2]|0,R=N+1|0,S=f[P+(f[O+((((R>>>0)%3|0|0)==0?N+-2|0:R)<<2)>>2]<<2)>>2]|0,R=f[P+(f[O+((((N>>>0)%3|0|0)==0?2:-1)+N<<2)>>2]<<2)>>2]|0,(Q|0)<(I|0)&(S|0)<(I|0)&(R|0)<(I|0)):0){N=X(Q,e)|0;Q=X(S,e)|0;S=X(R,e)|0;if(t){R=0;do{f[n+(R<<2)>>2]=(f[b+(R+S<<2)>>2]|0)+(f[b+(R+Q<<2)>>2]|0)-(f[b+(R+N<<2)>>2]|0);R=R+1|0}while((R|0)!=(e|0));if(t){R=0;do{N=m+(R<<2)|0;f[N>>2]=(f[N>>2]|0)+(f[n+(R<<2)>>2]|0);R=R+1|0}while((R|0)!=(e|0))}}T=L+1|0}else T=L;R=(((M>>>0)%3|0|0)==0?2:-1)+M|0;do if(((R|0)!=-1?(f[s+(R>>>5<<2)>>2]&1<<(R&31)|0)==0:0)?(N=f[(f[(f[D>>2]|0)+12>>2]|0)+(R<<2)>>2]|0,(N|0)!=-1):0)if(!((N>>>0)%3|0)){U=N+2|0;break}else{U=N+-1|0;break}else U=-1;while(0);M=(U|0)==(G|0)?-1:U;if((M|0)==-1)break;else L=T}L=X(I,e)|0;if(!T){V=L;W=28}else{if(t){M=0;do{G=m+(M<<2)|0;f[G>>2]=(f[G>>2]|0)/(T|0)|0;M=M+1|0}while((M|0)!=(e|0))}M=b+(L<<2)|0;G=c+(L<<2)|0;s=f[M+4>>2]|0;R=f[m>>2]|0;N=f[z>>2]|0;f[h>>2]=f[M>>2];f[A>>2]=s;f[i>>2]=R;f[B>>2]=N;Od(d,v,h,i);f[G>>2]=f[d>>2];f[G+4>>2]=f[C>>2]}}else{V=X(I,e)|0;W=28}if((W|0)==28){W=0;G=b+(V<<2)|0;N=b+((X(H+-2|0,e)|0)<<2)|0;R=c+(V<<2)|0;s=f[G+4>>2]|0;M=f[N>>2]|0;Q=f[N+4>>2]|0;f[h>>2]=f[G>>2];f[w>>2]=s;f[i>>2]=M;f[x>>2]=Q;Od(d,v,h,i);f[R>>2]=f[d>>2];f[R+4>>2]=f[y>>2]}if((H|0)<=2)break a;R=f[l>>2]|0;J=f[R>>2]|0;Q=I+-1|0;if((f[R+4>>2]|0)-J>>2>>>0<=Q>>>0){K=R;break}else{R=I;I=Q;H=R}}aq(K)}while(0);if((e|0)<=0){Y=a+8|0;Z=b+4|0;_=f[b>>2]|0;$=f[Z>>2]|0;aa=m+4|0;ba=f[m>>2]|0;ca=f[aa>>2]|0;f[h>>2]=_;da=h+4|0;f[da>>2]=$;f[i>>2]=ba;ea=i+4|0;f[ea>>2]=ca;Od(d,Y,h,i);fa=f[d>>2]|0;f[c>>2]=fa;ga=d+4|0;ha=f[ga>>2]|0;ia=c+4|0;f[ia>>2]=ha;Mq(n);Mq(m);u=g;return 1}sj(m|0,0,e<<2|0)|0;Y=a+8|0;Z=b+4|0;_=f[b>>2]|0;$=f[Z>>2]|0;aa=m+4|0;ba=f[m>>2]|0;ca=f[aa>>2]|0;f[h>>2]=_;da=h+4|0;f[da>>2]=$;f[i>>2]=ba;ea=i+4|0;f[ea>>2]=ca;Od(d,Y,h,i);fa=f[d>>2]|0;f[c>>2]=fa;ga=d+4|0;ha=f[ga>>2]|0;ia=c+4|0;f[ia>>2]=ha;Mq(n);Mq(m);u=g;return 1}function Lc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;g=a+8|0;Mh(g,b,d,e);d=e>>>0>1073741823?-1:e<<2;h=Lq(d)|0;sj(h|0,0,d|0)|0;d=f[a+48>>2]|0;i=f[a+56>>2]|0;j=f[i>>2]|0;k=(f[i+4>>2]|0)-j|0;l=k>>2;a:do if((k|0)>4){m=f[a+52>>2]|0;n=a+16|0;o=a+32|0;p=a+12|0;q=a+28|0;r=a+20|0;s=a+24|0;t=d+64|0;u=d+28|0;v=(e|0)>0;w=j;x=l;while(1){y=x;x=x+-1|0;if(l>>>0<=x>>>0)break;z=f[w+(x<<2)>>2]|0;A=X(x,e)|0;if((((z|0)!=-1?(f[(f[d>>2]|0)+(z>>>5<<2)>>2]&1<<(z&31)|0)==0:0)?(B=f[(f[(f[t>>2]|0)+12>>2]|0)+(z<<2)>>2]|0,(B|0)!=-1):0)?(z=f[u>>2]|0,C=f[m>>2]|0,D=f[C+(f[z+(B<<2)>>2]<<2)>>2]|0,E=B+1|0,F=f[C+(f[z+((((E>>>0)%3|0|0)==0?B+-2|0:E)<<2)>>2]<<2)>>2]|0,E=f[C+(f[z+((((B>>>0)%3|0|0)==0?2:-1)+B<<2)>>2]<<2)>>2]|0,(D|0)<(x|0)&(F|0)<(x|0)&(E|0)<(x|0)):0){B=X(D,e)|0;D=X(F,e)|0;F=X(E,e)|0;if(v){E=0;do{f[h+(E<<2)>>2]=(f[b+(E+F<<2)>>2]|0)+(f[b+(E+D<<2)>>2]|0)-(f[b+(E+B<<2)>>2]|0);E=E+1|0}while((E|0)!=(e|0))}E=b+(A<<2)|0;B=c+(A<<2)|0;D=f[g>>2]|0;if((D|0)>0){F=0;z=h;C=D;while(1){if((C|0)>0){D=0;do{G=f[z+(D<<2)>>2]|0;H=f[n>>2]|0;if((G|0)>(H|0)){I=f[o>>2]|0;f[I+(D<<2)>>2]=H;J=I}else{I=f[p>>2]|0;H=f[o>>2]|0;f[H+(D<<2)>>2]=(G|0)<(I|0)?I:G;J=H}D=D+1|0}while((D|0)<(f[g>>2]|0));K=J}else K=f[o>>2]|0;D=(f[E+(F<<2)>>2]|0)-(f[K+(F<<2)>>2]|0)|0;H=B+(F<<2)|0;f[H>>2]=D;if((D|0)>=(f[q>>2]|0)){if((D|0)>(f[s>>2]|0)){L=D-(f[r>>2]|0)|0;M=39}}else{L=(f[r>>2]|0)+D|0;M=39}if((M|0)==39){M=0;f[H>>2]=L}F=F+1|0;C=f[g>>2]|0;if((F|0)>=(C|0))break;else z=K}}}else M=13;if((M|0)==13?(M=0,z=b+(A<<2)|0,C=c+(A<<2)|0,F=f[g>>2]|0,(F|0)>0):0){B=0;E=b+((X(y+-2|0,e)|0)<<2)|0;H=F;while(1){if((H|0)>0){F=0;do{D=f[E+(F<<2)>>2]|0;G=f[n>>2]|0;if((D|0)>(G|0)){I=f[o>>2]|0;f[I+(F<<2)>>2]=G;N=I}else{I=f[p>>2]|0;G=f[o>>2]|0;f[G+(F<<2)>>2]=(D|0)<(I|0)?I:D;N=G}F=F+1|0}while((F|0)<(f[g>>2]|0));O=N}else O=f[o>>2]|0;F=(f[z+(B<<2)>>2]|0)-(f[O+(B<<2)>>2]|0)|0;G=C+(B<<2)|0;f[G>>2]=F;if((F|0)>=(f[q>>2]|0)){if((F|0)>(f[s>>2]|0)){P=F-(f[r>>2]|0)|0;M=26}}else{P=(f[r>>2]|0)+F|0;M=26}if((M|0)==26){M=0;f[G>>2]=P}B=B+1|0;H=f[g>>2]|0;if((B|0)>=(H|0))break;else E=O}}if((y|0)<=2)break a}aq(i)}while(0);if((e|0)>0)sj(h|0,0,e<<2|0)|0;e=f[g>>2]|0;if((e|0)<=0){Mq(h);return 1}i=a+16|0;O=a+32|0;P=a+12|0;N=a+28|0;K=a+20|0;L=a+24|0;a=0;J=h;d=e;while(1){if((d|0)>0){e=0;do{l=f[J+(e<<2)>>2]|0;j=f[i>>2]|0;if((l|0)>(j|0)){k=f[O>>2]|0;f[k+(e<<2)>>2]=j;Q=k}else{k=f[P>>2]|0;j=f[O>>2]|0;f[j+(e<<2)>>2]=(l|0)<(k|0)?k:l;Q=j}e=e+1|0}while((e|0)<(f[g>>2]|0));R=Q}else R=f[O>>2]|0;e=(f[b+(a<<2)>>2]|0)-(f[R+(a<<2)>>2]|0)|0;j=c+(a<<2)|0;f[j>>2]=e;if((e|0)>=(f[N>>2]|0)){if((e|0)>(f[L>>2]|0)){S=e-(f[K>>2]|0)|0;M=53}}else{S=(f[K>>2]|0)+e|0;M=53}if((M|0)==53){M=0;f[j>>2]=S}a=a+1|0;d=f[g>>2]|0;if((a|0)>=(d|0))break;else J=R}Mq(h);return 1}function Mc(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0;h=u;u=u+48|0;i=h+28|0;j=h+24|0;k=h;l=h+12|0;m=h+40|0;if((c|0)<0){n=0;u=h;return n|0}if(!c){n=1;u=h;return n|0}o=(d|0)>1;p=o?d:1;f[k>>2]=0;d=k+4|0;f[d>>2]=0;f[k+8>>2]=0;gk(k,c);q=k+8|0;if(o){o=0;r=0;while(1){s=1;t=f[a+(r<<2)>>2]|0;do{v=f[a+(s+r<<2)>>2]|0;t=t>>>0<v>>>0?v:t;s=s+1|0}while((s|0)!=(p|0));s=(_(t|0)|0)^31;v=t>>>0>o>>>0?t:o;w=(t|0)==0?1:s+1|0;f[i>>2]=w;s=f[d>>2]|0;if(s>>>0<(f[q>>2]|0)>>>0){f[s>>2]=w;f[d>>2]=s+4}else Ri(k,i);r=r+p|0;if((r|0)>=(c|0)){x=v;break}else o=v}}else{o=0;r=0;while(1){v=f[a+(o<<2)>>2]|0;s=(_(v|0)|0)^31;w=v>>>0>r>>>0?v:r;y=(v|0)==0?1:s+1|0;f[i>>2]=y;s=f[d>>2]|0;if(s>>>0<(f[q>>2]|0)>>>0){f[s>>2]=y;f[d>>2]=s+4}else Ri(k,i);o=o+p|0;if((o|0)>=(c|0)){x=w;break}else r=w}}f[l>>2]=0;r=l+4|0;f[r>>2]=0;f[l+8>>2]=0;o=f[k>>2]|0;q=(f[d>>2]|0)-o|0;w=q>>2;if(w){if(w>>>0>1073741823)aq(l);s=ln(q)|0;f[r>>2]=s;f[l>>2]=s;f[l+8>>2]=s+(w<<2);w=s;if((q|0)>0){y=s+(q>>>2<<2)|0;kh(s|0,o|0,q|0)|0;f[r>>2]=y;q=y-w>>2;if((y|0)==(s|0)){z=q;A=s;B=0;C=0}else{y=0;o=0;v=0;while(1){D=Vn(o|0,v|0,f[s+(y<<2)>>2]|0,0)|0;E=I;y=y+1|0;if(y>>>0>=q>>>0){z=q;A=s;B=D;C=E;break}else{o=D;v=E}}}}else{F=w;G=18}}else{F=0;G=18}if((G|0)==18){z=0;A=F;B=0;C=0}F=Jg(A,z,32,i)|0;z=I;A=f[i>>2]<<3;w=Tn(A|0,((A|0)<0)<<31>>31|0,1)|0;A=I;v=un(B|0,C|0,p|0,0)|0;C=Vn(F|0,z|0,v|0,I|0)|0;v=Vn(C|0,I|0,w|0,A|0)|0;A=I;w=f[l>>2]|0;if(w|0){l=f[r>>2]|0;if((l|0)!=(w|0))f[r>>2]=l+(~((l+-4-w|0)>>>2)<<2);Oq(w)}w=Jg(a,c,x,i)|0;l=f[i>>2]|0;r=((x-l|0)/64|0)+l<<3;C=l<<3;z=Vn(w|0,I|0,C|0,((C|0)<0)<<31>>31|0)|0;C=Vn(z|0,I|0,r|0,((r|0)<0)<<31>>31|0)|0;r=I;z=(_((x>>>0>1?x:1)|0)|0)^30;if(e){f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;w=ln(32)|0;f[i>>2]=w;f[i+8>>2]=-2147483616;f[i+4>>2]=22;F=w;B=15964;o=F+22|0;do{b[F>>0]=b[B>>0]|0;F=F+1|0;B=B+1|0}while((F|0)<(o|0));b[w+22>>0]=0;w=(Jh(e,i)|0)==0;if((b[i+11>>0]|0)<0)Oq(f[i>>2]|0);if(!w){f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;w=ln(32)|0;f[i>>2]=w;f[i+8>>2]=-2147483616;f[i+4>>2]=22;F=w;B=15964;o=F+22|0;do{b[F>>0]=b[B>>0]|0;F=F+1|0;B=B+1|0}while((F|0)<(o|0));b[w+22>>0]=0;w=Mk(e,i)|0;if((b[i+11>>0]|0)<0)Oq(f[i>>2]|0);H=w}else G=32}else G=32;if((G|0)==32)H=z>>>0<18&((A|0)>(r|0)|(A|0)==(r|0)&v>>>0>=C>>>0)&1;b[m>>0]=H;C=g+16|0;v=f[C+4>>2]|0;if(!((v|0)>0|(v|0)==0&(f[C>>2]|0)>>>0>0)){f[j>>2]=f[g+4>>2];f[i>>2]=f[j>>2];Me(g,i,m,m+1|0)|0}switch(H|0){case 0:{J=td(a,c,p,k,g)|0;break}case 1:{J=Tc(a,c,x,l,e,g)|0;break}default:J=0}g=f[k>>2]|0;if(g|0){k=f[d>>2]|0;if((k|0)!=(g|0))f[d>>2]=k+(~((k+-4-g|0)>>>2)<<2);Oq(g)}n=J;u=h;return n|0}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;if((b|0)<0)return;c=a+12|0;d=f[c>>2]|0;e=f[a+8>>2]|0;g=e;h=d;if(d-e>>2>>>0<=b>>>0)return;e=g+(b<<2)|0;d=f[(f[e>>2]|0)+56>>2]|0;i=f[(f[g+(b<<2)>>2]|0)+60>>2]|0;g=e+4|0;if((g|0)!=(h|0)){j=g;g=e;do{k=f[j>>2]|0;f[j>>2]=0;l=f[g>>2]|0;f[g>>2]=k;if(l|0){k=l+88|0;m=f[k>>2]|0;f[k>>2]=0;if(m|0){k=f[m+8>>2]|0;if(k|0){n=m+12|0;if((f[n>>2]|0)!=(k|0))f[n>>2]=k;Oq(k)}Oq(m)}m=f[l+68>>2]|0;if(m|0){k=l+72|0;n=f[k>>2]|0;if((n|0)!=(m|0))f[k>>2]=n+(~((n+-4-m|0)>>>2)<<2);Oq(m)}m=l+64|0;n=f[m>>2]|0;f[m>>2]=0;if(n|0){m=f[n>>2]|0;if(m|0){k=n+4|0;if((f[k>>2]|0)!=(m|0))f[k>>2]=m;Oq(m)}Oq(n)}Oq(l)}j=j+4|0;g=g+4|0}while((j|0)!=(h|0));j=f[c>>2]|0;if((j|0)!=(g|0)){o=g;p=j;q=24}}else{o=e;p=h;q=24}if((q|0)==24){q=p;do{p=q+-4|0;f[c>>2]=p;h=f[p>>2]|0;f[p>>2]=0;if(h|0){p=h+88|0;e=f[p>>2]|0;f[p>>2]=0;if(e|0){p=f[e+8>>2]|0;if(p|0){j=e+12|0;if((f[j>>2]|0)!=(p|0))f[j>>2]=p;Oq(p)}Oq(e)}e=f[h+68>>2]|0;if(e|0){p=h+72|0;j=f[p>>2]|0;if((j|0)!=(e|0))f[p>>2]=j+(~((j+-4-e|0)>>>2)<<2);Oq(e)}e=h+64|0;j=f[e>>2]|0;f[e>>2]=0;if(j|0){e=f[j>>2]|0;if(e|0){p=j+4|0;if((f[p>>2]|0)!=(e|0))f[p>>2]=e;Oq(e)}Oq(j)}Oq(h)}q=f[c>>2]|0}while((q|0)!=(o|0))}o=f[a+4>>2]|0;a:do if(o|0){q=o+44|0;c=f[q>>2]|0;h=f[o+40>>2]|0;while(1){if((h|0)==(c|0))break a;r=h+4|0;if((f[(f[h>>2]|0)+40>>2]|0)==(i|0))break;else h=r}if((r|0)!=(c|0)){j=r;e=h;do{p=f[j>>2]|0;f[j>>2]=0;g=f[e>>2]|0;f[e>>2]=p;if(g|0){bj(g);Oq(g)}j=j+4|0;e=e+4|0}while((j|0)!=(c|0));j=f[q>>2]|0;if((j|0)==(e|0))break;else{s=e;t=j}}else{s=h;t=c}j=t;do{g=j+-4|0;f[q>>2]=g;p=f[g>>2]|0;f[g>>2]=0;if(p|0){bj(p);Oq(p)}j=f[q>>2]|0}while((j|0)!=(s|0))}while(0);b:do if((d|0)<5){s=f[a+20+(d*12|0)>>2]|0;t=a+20+(d*12|0)+4|0;r=f[t>>2]|0;i=r;c:do if((s|0)==(r|0))u=s;else{o=s;while(1){if((f[o>>2]|0)==(b|0)){u=o;break c}o=o+4|0;if((o|0)==(r|0))break b}}while(0);if((u|0)!=(r|0)){s=u+4|0;o=i-s|0;j=o>>2;if(!j)v=r;else{im(u|0,s|0,o|0)|0;v=f[t>>2]|0}o=u+(j<<2)|0;if((v|0)!=(o|0))f[t>>2]=v+(~((v+-4-o|0)>>>2)<<2)}}while(0);v=f[a+24>>2]|0;u=f[a+20>>2]|0;d=u;if((v|0)!=(u|0)){o=v-u>>2;u=0;do{v=d+(u<<2)|0;j=f[v>>2]|0;if((j|0)>(b|0))f[v>>2]=j+-1;u=u+1|0}while(u>>>0<o>>>0)}o=f[a+36>>2]|0;u=f[a+32>>2]|0;d=u;if((o|0)!=(u|0)){j=o-u>>2;u=0;do{o=d+(u<<2)|0;v=f[o>>2]|0;if((v|0)>(b|0))f[o>>2]=v+-1;u=u+1|0}while(u>>>0<j>>>0)}j=f[a+48>>2]|0;u=f[a+44>>2]|0;d=u;if((j|0)!=(u|0)){v=j-u>>2;u=0;do{j=d+(u<<2)|0;o=f[j>>2]|0;if((o|0)>(b|0))f[j>>2]=o+-1;u=u+1|0}while(u>>>0<v>>>0)}v=f[a+60>>2]|0;u=f[a+56>>2]|0;d=u;if((v|0)!=(u|0)){o=v-u>>2;u=0;do{v=d+(u<<2)|0;j=f[v>>2]|0;if((j|0)>(b|0))f[v>>2]=j+-1;u=u+1|0}while(u>>>0<o>>>0)}o=f[a+72>>2]|0;u=f[a+68>>2]|0;a=u;if((o|0)==(u|0))return;d=o-u>>2;u=0;do{o=a+(u<<2)|0;j=f[o>>2]|0;if((j|0)>(b|0))f[o>>2]=j+-1;u=u+1|0}while(u>>>0<d>>>0);return}function Oc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;e=a+8|0;a:do if(f[e>>2]|0?(g=f[a>>2]|0,h=a+4|0,f[a>>2]=h,f[(f[h>>2]|0)+8>>2]=0,f[h>>2]=0,f[e>>2]=0,i=f[g+4>>2]|0,j=(i|0)==0?g:i,j|0):0){i=a+4|0;g=j;j=f[c>>2]|0;while(1){if((j|0)==(f[d>>2]|0))break;k=g+16|0;am(k,j+16|0)|0;am(g+28|0,j+28|0)|0;l=g+8|0;m=f[l>>2]|0;do if(m){n=f[m>>2]|0;if((n|0)==(g|0)){f[m>>2]=0;o=f[m+4>>2]|0;if(!o){p=m;break}else q=o;while(1){o=f[q>>2]|0;if(o|0){q=o;continue}o=f[q+4>>2]|0;if(!o)break;else q=o}p=q;break}else{f[m+4>>2]=0;if(!n){p=m;break}else r=n;while(1){o=f[r>>2]|0;if(o|0){r=o;continue}o=f[r+4>>2]|0;if(!o)break;else r=o}p=r;break}}else p=0;while(0);m=f[h>>2]|0;do if(m){n=b[k+11>>0]|0;o=n<<24>>24<0;s=o?f[g+20>>2]|0:n&255;n=o?f[k>>2]|0:k;o=m;while(1){t=o+16|0;u=b[t+11>>0]|0;v=u<<24>>24<0;w=v?f[o+20>>2]|0:u&255;u=w>>>0<s>>>0?w:s;if((u|0)!=0?(x=Vk(n,v?f[t>>2]|0:t,u)|0,(x|0)!=0):0)if((x|0)<0)y=22;else y=24;else if(s>>>0<w>>>0)y=22;else y=24;if((y|0)==22){y=0;w=f[o>>2]|0;if(!w){y=23;break}else z=w}else if((y|0)==24){y=0;A=o+4|0;w=f[A>>2]|0;if(!w){y=26;break}else z=w}o=z}if((y|0)==23){y=0;B=o;C=o;break}else if((y|0)==26){y=0;B=A;C=o;break}}else{B=h;C=h}while(0);f[g>>2]=0;f[g+4>>2]=0;f[l>>2]=C;f[B>>2]=g;m=f[f[a>>2]>>2]|0;if(!m)D=g;else{f[a>>2]=m;D=f[B>>2]|0}Oe(f[i>>2]|0,D);f[e>>2]=(f[e>>2]|0)+1;m=f[j+4>>2]|0;if(!m){k=j+8|0;s=f[k>>2]|0;if((f[s>>2]|0)==(j|0))E=s;else{s=k;do{k=f[s>>2]|0;s=k+8|0;n=f[s>>2]|0}while((f[n>>2]|0)!=(k|0));E=n}}else{s=m;while(1){l=f[s>>2]|0;if(!l)break;else s=l}E=s}f[c>>2]=E;if(!p)break a;else{g=p;j=E}}j=f[g+8>>2]|0;if(!j)F=g;else{i=j;while(1){j=f[i+8>>2]|0;if(!j)break;else i=j}F=i}Ej(a,F)}while(0);F=f[c>>2]|0;E=f[d>>2]|0;if((F|0)==(E|0))return;else G=F;while(1){bf(a,G+16|0)|0;F=f[G+4>>2]|0;if(!F){d=G+8|0;p=f[d>>2]|0;if((f[p>>2]|0)==(G|0))H=p;else{p=d;do{d=f[p>>2]|0;p=d+8|0;e=f[p>>2]|0}while((f[e>>2]|0)!=(d|0));H=e}}else{p=F;while(1){i=f[p>>2]|0;if(!i)break;else p=i}H=p}f[c>>2]=H;if((H|0)==(E|0))break;else G=H}return}function Pc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;b=u;u=u+32|0;c=b+4|0;d=b;e=a+16|0;g=f[e>>2]|0;if(g>>>0>112){f[e>>2]=g+-113;g=a+4|0;e=f[g>>2]|0;h=f[e>>2]|0;i=e+4|0;f[g>>2]=i;e=a+8|0;j=f[e>>2]|0;k=a+12|0;l=f[k>>2]|0;m=l;do if((j|0)==(l|0)){n=f[a>>2]|0;o=n;if(i>>>0>n>>>0){p=i;q=((p-o>>2)+1|0)/-2|0;r=i+(q<<2)|0;s=j-p|0;p=s>>2;if(!p)t=i;else{im(r|0,i|0,s|0)|0;t=f[g>>2]|0}s=r+(p<<2)|0;f[e>>2]=s;f[g>>2]=t+(q<<2);v=s;break}s=m-o>>1;o=(s|0)==0?1:s;if(o>>>0>1073741823){s=ra(8)|0;Oo(s,16035);f[s>>2]=7256;va(s|0,1112,110)}s=ln(o<<2)|0;q=s;p=s+(o>>>2<<2)|0;r=p;w=s+(o<<2)|0;if((i|0)==(j|0)){x=r;y=n}else{n=p;p=r;o=i;do{f[n>>2]=f[o>>2];n=p+4|0;p=n;o=o+4|0}while((o|0)!=(j|0));x=p;y=f[a>>2]|0}f[a>>2]=q;f[g>>2]=r;f[e>>2]=x;f[k>>2]=w;if(!y)v=x;else{Oq(y);v=f[e>>2]|0}}else v=j;while(0);f[v>>2]=h;f[e>>2]=(f[e>>2]|0)+4;u=b;return}e=a+8|0;h=f[e>>2]|0;v=a+4|0;j=h-(f[v>>2]|0)|0;y=a+12|0;x=f[y>>2]|0;k=x-(f[a>>2]|0)|0;if(j>>>0>=k>>>0){g=k>>1;k=(g|0)==0?1:g;f[c+12>>2]=0;f[c+16>>2]=a+12;if(k>>>0>1073741823){g=ra(8)|0;Oo(g,16035);f[g>>2]=7256;va(g|0,1112,110)}g=ln(k<<2)|0;f[c>>2]=g;i=g+(j>>2<<2)|0;j=c+8|0;f[j>>2]=i;m=c+4|0;f[m>>2]=i;i=c+12|0;f[i>>2]=g+(k<<2);k=ln(4068)|0;f[d>>2]=k;Ag(c,d);d=f[e>>2]|0;while(1){z=f[v>>2]|0;if((d|0)==(z|0))break;k=d+-4|0;ug(c,k);d=k}k=z;z=f[a>>2]|0;f[a>>2]=f[c>>2];f[c>>2]=z;f[v>>2]=f[m>>2];f[m>>2]=k;m=f[e>>2]|0;f[e>>2]=f[j>>2];f[j>>2]=m;g=f[y>>2]|0;f[y>>2]=f[i>>2];f[i>>2]=g;g=m;if((d|0)!=(g|0))f[j>>2]=g+(~((g+-4-k|0)>>>2)<<2);if(z|0)Oq(z);u=b;return}if((x|0)!=(h|0)){h=ln(4068)|0;f[c>>2]=h;Ag(a,c);u=b;return}h=ln(4068)|0;f[c>>2]=h;ug(a,c);c=f[v>>2]|0;h=f[c>>2]|0;x=c+4|0;f[v>>2]=x;c=f[e>>2]|0;z=f[y>>2]|0;k=z;do if((c|0)==(z|0)){g=f[a>>2]|0;j=g;if(x>>>0>g>>>0){d=x;m=((d-j>>2)+1|0)/-2|0;i=x+(m<<2)|0;t=c-d|0;d=t>>2;if(!d)A=x;else{im(i|0,x|0,t|0)|0;A=f[v>>2]|0}t=i+(d<<2)|0;f[e>>2]=t;f[v>>2]=A+(m<<2);B=t;break}t=k-j>>1;j=(t|0)==0?1:t;if(j>>>0>1073741823){t=ra(8)|0;Oo(t,16035);f[t>>2]=7256;va(t|0,1112,110)}t=ln(j<<2)|0;m=t;d=t+(j>>>2<<2)|0;i=d;l=t+(j<<2)|0;if((x|0)==(c|0)){C=i;D=g}else{g=d;d=i;j=x;do{f[g>>2]=f[j>>2];g=d+4|0;d=g;j=j+4|0}while((j|0)!=(c|0));C=d;D=f[a>>2]|0}f[a>>2]=m;f[v>>2]=i;f[e>>2]=C;f[y>>2]=l;if(!D)B=C;else{Oq(D);B=f[e>>2]|0}}else B=c;while(0);f[B>>2]=h;f[e>>2]=(f[e>>2]|0)+4;u=b;return}function Qc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;e=u;u=u+16|0;g=e+8|0;h=e+4|0;i=e;j=a+64|0;k=f[j>>2]|0;if((f[k+28>>2]|0)==(f[k+24>>2]|0)){u=e;return}l=c+96|0;c=a+52|0;m=d+84|0;n=d+68|0;d=a+56|0;o=a+60|0;p=a+12|0;q=a+28|0;r=a+40|0;s=a+44|0;t=a+48|0;v=0;w=0;x=k;while(1){k=f[(f[x+24>>2]|0)+(w<<2)>>2]|0;if((k|0)==-1){y=v;z=x}else{A=v+1|0;B=f[(f[l>>2]|0)+(((k|0)/3|0)*12|0)+(((k|0)%3|0)<<2)>>2]|0;if(!(b[m>>0]|0))C=f[(f[n>>2]|0)+(B<<2)>>2]|0;else C=B;f[g>>2]=C;B=f[d>>2]|0;if(B>>>0<(f[o>>2]|0)>>>0){f[B>>2]=C;f[d>>2]=B+4}else Ri(c,g);f[g>>2]=k;f[h>>2]=0;a:do if(!(f[(f[p>>2]|0)+(w>>>5<<2)>>2]&1<<(w&31)))D=k;else{B=k+1|0;E=((B>>>0)%3|0|0)==0?k+-2|0:B;if(((E|0)!=-1?(f[(f[a>>2]|0)+(E>>>5<<2)>>2]&1<<(E&31)|0)==0:0)?(B=f[(f[(f[j>>2]|0)+12>>2]|0)+(E<<2)>>2]|0,E=B+1|0,(B|0)!=-1):0){F=((E>>>0)%3|0|0)==0?B+-2|0:E;f[h>>2]=F;if((F|0)==-1){D=k;break}else G=F;while(1){f[g>>2]=G;F=G+1|0;E=((F>>>0)%3|0|0)==0?G+-2|0:F;if((E|0)==-1)break;if(f[(f[a>>2]|0)+(E>>>5<<2)>>2]&1<<(E&31)|0)break;F=f[(f[(f[j>>2]|0)+12>>2]|0)+(E<<2)>>2]|0;E=F+1|0;if((F|0)==-1)break;B=((E>>>0)%3|0|0)==0?F+-2|0:E;f[h>>2]=B;if((B|0)==-1){D=G;break a}else G=B}f[h>>2]=-1;D=G;break}f[h>>2]=-1;D=k}while(0);f[(f[q>>2]|0)+(D<<2)>>2]=v;k=f[s>>2]|0;if((k|0)==(f[t>>2]|0))Ri(r,g);else{f[k>>2]=f[g>>2];f[s>>2]=k+4}k=f[j>>2]|0;B=f[g>>2]|0;b:do if(((B|0)!=-1?(E=(((B>>>0)%3|0|0)==0?2:-1)+B|0,(E|0)!=-1):0)?(F=f[(f[k+12>>2]|0)+(E<<2)>>2]|0,(F|0)!=-1):0){E=F+(((F>>>0)%3|0|0)==0?2:-1)|0;f[h>>2]=E;if((E|0)!=-1&(E|0)!=(B|0)){F=A;H=v;I=E;while(1){E=I+1|0;J=((E>>>0)%3|0|0)==0?I+-2|0:E;do if(f[(f[a>>2]|0)+(J>>>5<<2)>>2]&1<<(J&31)){E=F+1|0;K=f[(f[l>>2]|0)+(((I|0)/3|0)*12|0)+(((I|0)%3|0)<<2)>>2]|0;if(!(b[m>>0]|0))L=f[(f[n>>2]|0)+(K<<2)>>2]|0;else L=K;f[i>>2]=L;K=f[d>>2]|0;if(K>>>0<(f[o>>2]|0)>>>0){f[K>>2]=L;f[d>>2]=K+4}else Ri(c,i);K=f[s>>2]|0;if((K|0)==(f[t>>2]|0)){Ri(r,h);M=E;N=F;break}else{f[K>>2]=f[h>>2];f[s>>2]=K+4;M=E;N=F;break}}else{M=F;N=H}while(0);f[(f[q>>2]|0)+(f[h>>2]<<2)>>2]=N;O=f[j>>2]|0;J=f[h>>2]|0;if((J|0)==-1)break;E=(((J>>>0)%3|0|0)==0?2:-1)+J|0;if((E|0)==-1)break;J=f[(f[O+12>>2]|0)+(E<<2)>>2]|0;if((J|0)==-1)break;I=J+(((J>>>0)%3|0|0)==0?2:-1)|0;f[h>>2]=I;if(!((I|0)!=-1?(I|0)!=(f[g>>2]|0):0)){P=M;Q=O;break b}else{F=M;H=N}}f[h>>2]=-1;P=M;Q=O}else{P=A;Q=k}}else R=28;while(0);if((R|0)==28){R=0;f[h>>2]=-1;P=A;Q=k}y=P;z=Q}w=w+1|0;if(w>>>0>=(f[z+28>>2]|0)-(f[z+24>>2]|0)>>2>>>0)break;else{v=y;x=z}}u=e;return}function Rc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,D=0,E=0,F=0;switch(c|0){case 0:{e=-149;g=24;i=4;break}case 1:{e=-1074;g=53;i=4;break}case 2:{e=-1074;g=53;i=4;break}default:j=0.0}a:do if((i|0)==4){c=a+4|0;k=a+100|0;do{l=f[c>>2]|0;if(l>>>0<(f[k>>2]|0)>>>0){f[c>>2]=l+1;m=h[l>>0]|0}else m=Si(a)|0}while((eq(m)|0)!=0);b:do switch(m|0){case 43:case 45:{l=1-(((m|0)==45&1)<<1)|0;n=f[c>>2]|0;if(n>>>0<(f[k>>2]|0)>>>0){f[c>>2]=n+1;o=h[n>>0]|0;p=l;break b}else{o=Si(a)|0;p=l;break b}break}default:{o=m;p=1}}while(0);l=0;n=o;while(1){if((n|32|0)!=(b[18546+l>>0]|0)){q=l;r=n;break}do if(l>>>0<7){s=f[c>>2]|0;if(s>>>0<(f[k>>2]|0)>>>0){f[c>>2]=s+1;t=h[s>>0]|0;break}else{t=Si(a)|0;break}}else t=n;while(0);s=l+1|0;if(s>>>0<8){l=s;n=t}else{q=s;r=t;break}}c:do switch(q|0){case 8:break;case 3:{i=23;break}default:{n=(d|0)!=0;if(n&q>>>0>3)if((q|0)==8)break c;else{i=23;break c}d:do if(!q){l=0;s=r;while(1){if((s|32|0)!=(b[18555+l>>0]|0)){u=l;v=s;break d}do if(l>>>0<2){w=f[c>>2]|0;if(w>>>0<(f[k>>2]|0)>>>0){f[c>>2]=w+1;x=h[w>>0]|0;break}else{x=Si(a)|0;break}}else x=s;while(0);w=l+1|0;if(w>>>0<3){l=w;s=x}else{u=w;v=x;break}}}else{u=q;v=r}while(0);switch(u|0){case 3:{s=f[c>>2]|0;if(s>>>0<(f[k>>2]|0)>>>0){f[c>>2]=s+1;y=h[s>>0]|0}else y=Si(a)|0;if((y|0)==40)z=1;else{if(!(f[k>>2]|0)){j=B;break a}f[c>>2]=(f[c>>2]|0)+-1;j=B;break a}while(1){s=f[c>>2]|0;if(s>>>0<(f[k>>2]|0)>>>0){f[c>>2]=s+1;A=h[s>>0]|0}else A=Si(a)|0;if(!((A+-48|0)>>>0<10|(A+-65|0)>>>0<26)?!((A|0)==95|(A+-97|0)>>>0<26):0)break;z=z+1|0}if((A|0)==41){j=B;break a}s=(f[k>>2]|0)==0;if(!s)f[c>>2]=(f[c>>2]|0)+-1;if(!n){l=Vq()|0;f[l>>2]=22;Ym(a,0);j=0.0;break a}if(!z){j=B;break a}else D=z;while(1){D=D+-1|0;if(!s)f[c>>2]=(f[c>>2]|0)+-1;if(!D){j=B;break a}}break}case 0:{if((v|0)==48){s=f[c>>2]|0;if(s>>>0<(f[k>>2]|0)>>>0){f[c>>2]=s+1;E=h[s>>0]|0}else E=Si(a)|0;if((E|32|0)==120){j=+Fc(a,g,e,p,d);break a}if(!(f[k>>2]|0))F=48;else{f[c>>2]=(f[c>>2]|0)+-1;F=48}}else F=v;j=+nb(a,F,g,e,p,d);break a;break}default:{if(f[k>>2]|0)f[c>>2]=(f[c>>2]|0)+-1;s=Vq()|0;f[s>>2]=22;Ym(a,0);j=0.0;break a}}}}while(0);if((i|0)==23){s=(f[k>>2]|0)==0;if(!s)f[c>>2]=(f[c>>2]|0)+-1;if((d|0)!=0&q>>>0>3){n=q;do{if(!s)f[c>>2]=(f[c>>2]|0)+-1;n=n+-1|0}while(n>>>0>3)}}j=+$($(p|0)*$(C))}while(0);return +j}function Sc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;g=u;u=u+16|0;h=g;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;i=ln(16)|0;f[h>>2]=i;f[h+8>>2]=-2147483632;f[h+4>>2]=15;j=i;k=14479;l=j+15|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[i+15>>0]=0;i=Hk(c,h,-1)|0;if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);switch(i|0){case 0:{m=ln(52)|0;j=m;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));Zn(m);n=4044;o=m;break}case -1:{if((mi(c)|0)==10){m=ln(52)|0;j=m;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));Zn(m);n=4044;o=m}else p=6;break}default:p=6}a:do if((p|0)==6){m=d+8|0;q=d+12|0;r=f[q>>2]|0;s=f[m>>2]|0;b:do if((r-s|0)>0){t=h+8|0;v=h+4|0;w=c+16|0;x=h+11|0;y=0;z=s;A=r;c:while(1){B=f[(f[z+(y<<2)>>2]|0)+28>>2]|0;switch(B|0){case 9:{p=12;break}case 6:case 5:case 4:case 2:{C=z;D=A;break}default:{if((B|2|0)!=3)break c;if((B|0)==9)p=12;else{C=z;D=A}}}if((p|0)==12){p=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;B=ln(32)|0;f[h>>2]=B;f[t>>2]=-2147483616;f[v>>2]=17;j=B;k=14495;l=j+17|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[B+17>>0]=0;E=f[w>>2]|0;if(E){F=w;G=E;d:while(1){E=G;while(1){if((f[E+16>>2]|0)>=0)break;H=f[E+4>>2]|0;if(!H){I=F;break d}else E=H}G=f[E>>2]|0;if(!G){I=E;break}else F=E}if(((I|0)!=(w|0)?(f[I+16>>2]|0)<=0:0)?(F=I+20|0,(Jh(F,h)|0)!=0):0)J=Hk(F,h,-1)|0;else p=21}else p=21;if((p|0)==21){p=0;J=Hk(c,h,-1)|0}if((b[x>>0]|0)<0)Oq(f[h>>2]|0);if((J|0)<1)break;C=f[m>>2]|0;D=f[q>>2]|0}y=y+1|0;if((y|0)>=(D-C>>2|0))break b;else{z=C;A=D}}if((i|0)!=1){A=ln(52)|0;j=A;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));Zn(A);n=4044;o=A;break a}f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;z=ln(32)|0;f[h>>2]=z;f[h+8>>2]=-2147483616;f[h+4>>2]=24;j=z;k=14513;l=j+24|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[z+24>>0]=0;f[a>>2]=-1;pj(a+4|0,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}while(0);q=ln(52)|0;j=q;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));Zn(q);n=3988;o=q}while(0);f[o>>2]=n;ip(o,d);Md(a,o,c,e);Va[f[(f[o>>2]|0)+4>>2]&127](o);u=g;return}function Tc(a,c,d,e,g,h){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=u;u=u+32|0;j=i+4|0;k=i;l=i+16|0;m=(_(e|0)|0)^31;if((e|0)>0)if(m>>>0>17){n=0;u=i;return n|0}else o=m+1|0;else o=1;do if(g){m=ln(48)|0;f[j>>2]=m;f[j+8>>2]=-2147483600;f[j+4>>2]=33;e=m;p=15987;q=e+33|0;do{b[e>>0]=b[p>>0]|0;e=e+1|0;p=p+1|0}while((e|0)<(q|0));b[m+33>>0]=0;r=(Jh(g,j)|0)==0;if((b[j+11>>0]|0)<0)Oq(f[j>>2]|0);if(!r){r=ln(48)|0;f[j>>2]=r;f[j+8>>2]=-2147483600;f[j+4>>2]=33;e=r;p=15987;q=e+33|0;do{b[e>>0]=b[p>>0]|0;e=e+1|0;p=p+1|0}while((e|0)<(q|0));b[r+33>>0]=0;p=Mk(g,j)|0;if((b[j+11>>0]|0)<0)Oq(f[j>>2]|0);if((p|0)<4){s=o+-2|0;break}if((p|0)<6){s=o+-1|0;break}if((p|0)>9){s=o+2|0;break}else{s=o+((p|0)>7&1)|0;break}}else s=o}else s=o;while(0);o=(s|0)>1?s:1;s=(o|0)<18?o:18;b[l>>0]=s;o=h+16|0;g=f[o+4>>2]|0;if(!((g|0)>0|(g|0)==0&(f[o>>2]|0)>>>0>0)){f[k>>2]=f[h+4>>2];f[j>>2]=f[k>>2];Me(h,j,l,l+1|0)|0}do switch(s&31){case 1:case 0:{n=ue(a,c,d,h)|0;u=i;return n|0}case 2:{n=te(a,c,d,h)|0;u=i;return n|0}case 3:{n=se(a,c,d,h)|0;u=i;return n|0}case 4:{n=re(a,c,d,h)|0;u=i;return n|0}case 5:{n=qe(a,c,d,h)|0;u=i;return n|0}case 6:{n=pe(a,c,d,h)|0;u=i;return n|0}case 7:{n=oe(a,c,d,h)|0;u=i;return n|0}case 8:{n=ne(a,c,d,h)|0;u=i;return n|0}case 9:{n=me(a,c,d,h)|0;u=i;return n|0}case 10:{n=le(a,c,d,h)|0;u=i;return n|0}case 11:{n=ke(a,c,d,h)|0;u=i;return n|0}case 12:{n=ie(a,c,d,h)|0;u=i;return n|0}case 13:{n=he(a,c,d,h)|0;u=i;return n|0}case 14:{n=ge(a,c,d,h)|0;u=i;return n|0}case 15:{n=fe(a,c,d,h)|0;u=i;return n|0}case 16:{n=ee(a,c,d,h)|0;u=i;return n|0}case 17:{n=de(a,c,d,h)|0;u=i;return n|0}case 18:{n=ce(a,c,d,h)|0;u=i;return n|0}default:{n=0;u=i;return n|0}}while(0);return 0}function Uc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;xb(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;yb(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Wc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;zb(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Xc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Ab(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Yc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Fb(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*524288.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==524288){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Bb(z,A,g);a:do if((x|0)<524288){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=524288-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>524288;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-524288|0;m=x;while(1){v=524288.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==524288){C=p;D=524288;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=524288){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*1.9073486328125e-06)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function _c(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*262144.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==262144){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Cb(z,A,g);a:do if((x|0)<262144){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=262144-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>262144;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-262144|0;m=x;while(1){v=262144.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==262144){C=p;D=262144;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=262144){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*3.814697265625e-06)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function $c(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*65536.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==65536){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Db(z,A,g);a:do if((x|0)<65536){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=65536-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>65536;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-65536|0;m=x;while(1){v=65536.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==65536){C=p;D=65536;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=65536){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.0000152587890625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*32768.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==32768){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Eb(z,A,g);a:do if((x|0)<32768){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=32768-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>32768;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-32768|0;m=x;while(1){v=32768.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==32768){C=p;D=32768;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=32768){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000030517578125)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*8192.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==8192){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Gb(z,A,g);a:do if((x|0)<8192){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=8192-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>8192;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-8192|0;m=x;while(1){v=8192.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==8192){C=p;D=8192;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=8192){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.0001220703125)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Hb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function dd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Ib(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function ed(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Jb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function fd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Kb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Lb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Mb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Nb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0<j>>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Ob(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function kd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;g=u;u=u+32|0;d=g+16|0;h=g+8|0;i=g;j=e>>>0>1073741823?-1:e<<2;k=Lq(j)|0;sj(k|0,0,j|0)|0;j=f[a+28>>2]|0;l=a+36|0;m=f[l>>2]|0;n=f[m+4>>2]|0;o=f[m>>2]|0;p=n-o|0;a:do if((p|0)>4){q=p>>2;r=f[a+32>>2]|0;s=a+8|0;t=h+4|0;v=i+4|0;w=d+4|0;x=j+12|0;y=(e|0)>0;z=k+4|0;A=h+4|0;B=i+4|0;C=d+4|0;D=q+-1|0;if(n-o>>2>>>0>D>>>0){E=q;F=D;G=o}else{H=m;aq(H)}while(1){D=f[G+(F<<2)>>2]|0;q=X(F,e)|0;if((D|0)!=-1?(I=f[(f[x>>2]|0)+(D<<2)>>2]|0,(I|0)!=-1):0){D=f[j>>2]|0;J=f[r>>2]|0;K=f[J+(f[D+(I<<2)>>2]<<2)>>2]|0;L=I+1|0;M=((L>>>0)%3|0|0)==0?I+-2|0:L;if((M|0)==-1)N=-1;else N=f[D+(M<<2)>>2]|0;M=f[J+(N<<2)>>2]|0;L=(((I>>>0)%3|0|0)==0?2:-1)+I|0;if((L|0)==-1)O=-1;else O=f[D+(L<<2)>>2]|0;L=f[J+(O<<2)>>2]|0;if((K|0)<(F|0)&(M|0)<(F|0)&(L|0)<(F|0)){J=X(K,e)|0;K=X(M,e)|0;M=X(L,e)|0;if(y){L=0;do{f[k+(L<<2)>>2]=(f[b+(L+M<<2)>>2]|0)+(f[b+(L+K<<2)>>2]|0)-(f[b+(L+J<<2)>>2]|0);L=L+1|0}while((L|0)!=(e|0))}L=b+(q<<2)|0;J=c+(q<<2)|0;K=f[L+4>>2]|0;M=f[k>>2]|0;D=f[z>>2]|0;f[h>>2]=f[L>>2];f[A>>2]=K;f[i>>2]=M;f[B>>2]=D;Od(d,s,h,i);f[J>>2]=f[d>>2];f[J+4>>2]=f[C>>2]}else P=15}else P=15;if((P|0)==15){P=0;J=b+(q<<2)|0;D=b+((X(E+-2|0,e)|0)<<2)|0;M=c+(q<<2)|0;K=f[J+4>>2]|0;L=f[D>>2]|0;I=f[D+4>>2]|0;f[h>>2]=f[J>>2];f[t>>2]=K;f[i>>2]=L;f[v>>2]=I;Od(d,s,h,i);f[M>>2]=f[d>>2];f[M+4>>2]=f[w>>2]}if((E|0)<=2)break a;M=f[l>>2]|0;G=f[M>>2]|0;I=F+-1|0;if((f[M+4>>2]|0)-G>>2>>>0<=I>>>0){H=M;break}else{M=F;F=I;E=M}}aq(H)}while(0);if((e|0)<=0){Q=a+8|0;R=b+4|0;S=f[b>>2]|0;T=f[R>>2]|0;U=k+4|0;V=f[k>>2]|0;W=f[U>>2]|0;f[h>>2]=S;Y=h+4|0;f[Y>>2]=T;f[i>>2]=V;Z=i+4|0;f[Z>>2]=W;Od(d,Q,h,i);_=f[d>>2]|0;f[c>>2]=_;$=d+4|0;aa=f[$>>2]|0;ba=c+4|0;f[ba>>2]=aa;Mq(k);u=g;return 1}sj(k|0,0,e<<2|0)|0;Q=a+8|0;R=b+4|0;S=f[b>>2]|0;T=f[R>>2]|0;U=k+4|0;V=f[k>>2]|0;W=f[U>>2]|0;f[h>>2]=S;Y=h+4|0;f[Y>>2]=T;f[i>>2]=V;Z=i+4|0;f[Z>>2]=W;Od(d,Q,h,i);_=f[d>>2]|0;f[c>>2]=_;$=d+4|0;aa=f[$>>2]|0;ba=c+4|0;f[ba>>2]=aa;Mq(k);u=g;return 1}function ld(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0;d=u;u=u+32|0;e=d;g=d+20|0;h=d+24|0;i=d+8|0;j=f[a>>2]|0;k=j+8|0;l=j;j=f[l>>2]|0;m=f[l+4>>2]|0;l=Vn(j|0,m|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=I;n=Vn(l|0,k|0,(l|0)==0&(k|0)==0&1|0,0)|0;k=~~((+(j>>>0)+4294967296.0*+(m>>>0))/(+(n>>>0)+4294967296.0*+(I>>>0))*256.0+.5)>>>0;n=k>>>0<255?k:255;k=n+((n|0)==0&1)&255;b[h>>0]=k;n=a+12|0;m=a+16|0;j=((f[m>>2]|0)-(f[n>>2]|0)<<1)+64|0;f[i>>2]=0;l=i+4|0;f[l>>2]=0;f[i+8>>2]=0;if(!j)o=0;else{if((j|0)<0)aq(i);p=ln(j)|0;f[l>>2]=p;f[i>>2]=p;f[i+8>>2]=p+j;q=j;j=p;do{b[j>>0]=0;j=(f[l>>2]|0)+1|0;f[l>>2]=j;q=q+-1|0}while((q|0)!=0);o=f[i>>2]|0}q=a+28|0;j=(f[q>>2]|0)+-1|0;a:do if((j|0)>-1){p=a+24|0;r=j;s=4096;t=0;v=k;while(1){w=(f[p>>2]&1<<r|0)!=0;x=(w?0-(v&255)&255:v)&255;if(s>>>0<x<<12>>>0){y=t;z=s}else{b[o+t>>0]=s;y=t+1|0;z=s>>>8}un(f[4092+(x<<3)>>2]|0,0,z|0,0)|0;A=z+(w?0:0-v&255)+(X((z+I|0)>>>(f[4092+(x<<3)+4>>2]|0),256-x|0)|0)|0;x=r+-1|0;if((x|0)<=-1){B=A;C=y;break a}r=x;s=A;t=y;v=b[h>>0]|0}}else{B=4096;C=0}while(0);y=f[m>>2]|0;if((f[n>>2]|0)==(y|0)){D=B;E=C}else{z=B;B=C;C=y;while(1){C=C+-4|0;y=f[C>>2]|0;k=31;j=z;v=B;while(1){t=b[h>>0]|0;s=(1<<k&y|0)!=0;r=(s?0-(t&255)&255:t)&255;if(j>>>0<r<<12>>>0){F=v;G=j}else{b[o+v>>0]=j;F=v+1|0;G=j>>>8}un(f[4092+(r<<3)>>2]|0,0,G|0,0)|0;j=G+(s?0:0-t&255)+(X((G+I|0)>>>(f[4092+(r<<3)+4>>2]|0),256-r|0)|0)|0;if((k|0)<=0)break;else{k=k+-1|0;v=F}}if((f[n>>2]|0)==(C|0)){D=j;E=F;break}else{z=j;B=F}}}F=D+-4096|0;do if(F>>>0>=64){if(F>>>0<16384){B=o+E|0;z=D+12288|0;b[B>>0]=z;H=2;J=z>>>8;K=B+1|0;L=25;break}if(F>>>0<4194304){B=o+E|0;z=D+8384512|0;b[B>>0]=z;b[B+1>>0]=z>>>8;H=3;J=z>>>16;K=B+2|0;L=25}else M=E}else{H=1;J=F;K=o+E|0;L=25}while(0);if((L|0)==25){b[K>>0]=J;M=H+E|0}E=c+16|0;H=E;J=f[H+4>>2]|0;if(!((J|0)>0|(J|0)==0&(f[H>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}ci(M,c)|0;h=f[i>>2]|0;H=E;E=f[H+4>>2]|0;if(!((E|0)>0|(E|0)==0&(f[H>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+M|0)|0}M=e;f[M>>2]=0;f[M+4>>2]=0;qf(a,2,e);e=f[a+12>>2]|0;M=f[m>>2]|0;if((M|0)!=(e|0))f[m>>2]=M+(~((M+-4-e|0)>>>2)<<2);f[a+24>>2]=0;f[q>>2]=0;q=f[i>>2]|0;if(!q){u=d;return}if((f[l>>2]|0)!=(q|0))f[l>>2]=q;Oq(q);u=d;return}function md(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;c=u;u=u+16|0;b=c+8|0;d=c+4|0;e=c;g=a+64|0;h=f[g>>2]|0;if((f[h+28>>2]|0)==(f[h+24>>2]|0)){u=c;return}i=a+52|0;j=a+56|0;k=a+60|0;l=a+12|0;m=a+28|0;n=a+40|0;o=a+44|0;p=a+48|0;q=0;r=0;s=h;while(1){h=f[(f[s+24>>2]|0)+(r<<2)>>2]|0;if((h|0)==-1){t=q;v=s}else{w=q+1|0;f[b>>2]=q;x=f[j>>2]|0;if((x|0)==(f[k>>2]|0))Ri(i,b);else{f[x>>2]=q;f[j>>2]=x+4}f[d>>2]=h;f[e>>2]=0;a:do if(!(f[(f[l>>2]|0)+(r>>>5<<2)>>2]&1<<(r&31)))y=h;else{x=h+1|0;z=((x>>>0)%3|0|0)==0?h+-2|0:x;if(((z|0)!=-1?(f[(f[a>>2]|0)+(z>>>5<<2)>>2]&1<<(z&31)|0)==0:0)?(x=f[(f[(f[g>>2]|0)+12>>2]|0)+(z<<2)>>2]|0,z=x+1|0,(x|0)!=-1):0){A=((z>>>0)%3|0|0)==0?x+-2|0:z;f[e>>2]=A;if((A|0)==-1){y=h;break}else B=A;while(1){f[d>>2]=B;A=B+1|0;z=((A>>>0)%3|0|0)==0?B+-2|0:A;if((z|0)==-1)break;if(f[(f[a>>2]|0)+(z>>>5<<2)>>2]&1<<(z&31)|0)break;A=f[(f[(f[g>>2]|0)+12>>2]|0)+(z<<2)>>2]|0;z=A+1|0;if((A|0)==-1)break;x=((z>>>0)%3|0|0)==0?A+-2|0:z;f[e>>2]=x;if((x|0)==-1){y=B;break a}else B=x}f[e>>2]=-1;y=B;break}f[e>>2]=-1;y=h}while(0);f[(f[m>>2]|0)+(y<<2)>>2]=f[b>>2];h=f[o>>2]|0;if((h|0)==(f[p>>2]|0))Ri(n,d);else{f[h>>2]=f[d>>2];f[o>>2]=h+4}h=f[g>>2]|0;x=f[d>>2]|0;b:do if(((x|0)!=-1?(z=(((x>>>0)%3|0|0)==0?2:-1)+x|0,(z|0)!=-1):0)?(A=f[(f[h+12>>2]|0)+(z<<2)>>2]|0,(A|0)!=-1):0){z=A+(((A>>>0)%3|0|0)==0?2:-1)|0;f[e>>2]=z;if((z|0)!=-1&(z|0)!=(x|0)){A=w;C=z;while(1){z=C+1|0;D=((z>>>0)%3|0|0)==0?C+-2|0:z;do if(f[(f[a>>2]|0)+(D>>>5<<2)>>2]&1<<(D&31)){z=A+1|0;f[b>>2]=A;E=f[j>>2]|0;if((E|0)==(f[k>>2]|0))Ri(i,b);else{f[E>>2]=A;f[j>>2]=E+4}E=f[o>>2]|0;if((E|0)==(f[p>>2]|0)){Ri(n,e);F=z;break}else{f[E>>2]=f[e>>2];f[o>>2]=E+4;F=z;break}}else F=A;while(0);f[(f[m>>2]|0)+(f[e>>2]<<2)>>2]=f[b>>2];G=f[g>>2]|0;D=f[e>>2]|0;if((D|0)==-1)break;z=(((D>>>0)%3|0|0)==0?2:-1)+D|0;if((z|0)==-1)break;D=f[(f[G+12>>2]|0)+(z<<2)>>2]|0;if((D|0)==-1)break;C=D+(((D>>>0)%3|0|0)==0?2:-1)|0;f[e>>2]=C;if(!((C|0)!=-1?(C|0)!=(f[d>>2]|0):0)){H=F;I=G;break b}else A=F}f[e>>2]=-1;H=F;I=G}else{H=w;I=h}}else J=26;while(0);if((J|0)==26){J=0;f[e>>2]=-1;H=w;I=h}t=H;v=I}r=r+1|0;if(r>>>0>=(f[v+28>>2]|0)-(f[v+24>>2]|0)>>2>>>0)break;else{q=t;s=v}}u=c;return}function nd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;h=a+124|0;f[h>>2]=(f[h>>2]|0)+1;h=a+88|0;i=a+120|0;j=f[i>>2]|0;k=j+1|0;do if((j|0)!=-1){l=((k>>>0)%3|0|0)==0?j+-2|0:k;if(!((j>>>0)%3|0)){m=j+2|0;n=l;break}else{m=j+-1|0;n=l;break}}else{m=-1;n=-1}while(0);k=a+104|0;l=a+92|0;o=f[l>>2]|0;p=o+(n<<2)|0;q=f[k>>2]|0;r=q+(f[p>>2]<<2)|0;s=f[r>>2]|0;switch(b|0){case 1:case 0:{f[r>>2]=s+-1;r=q+(f[o+(m<<2)>>2]<<2)|0;f[r>>2]=(f[r>>2]|0)+-1;if((b|0)==1){if((m|0)!=-1?(r=f[(f[(f[h>>2]|0)+12>>2]|0)+(m<<2)>>2]|0,(r|0)!=-1):0){t=a+64|0;v=1;w=r;while(1){r=f[t>>2]|0;x=f[(f[r>>2]|0)+36>>2]|0;f[e>>2]=(w>>>0)/3|0;f[d>>2]=f[e>>2];if(Ra[x&127](r,d)|0){y=v;break}r=w+1|0;x=((r>>>0)%3|0|0)==0?w+-2|0:r;if((x|0)==-1){z=12;break}w=f[(f[(f[h>>2]|0)+12>>2]|0)+(x<<2)>>2]|0;x=v+1|0;if((w|0)==-1){y=x;break}else v=x}if((z|0)==12)y=v+1|0;A=y;B=f[k>>2]|0;C=f[l>>2]|0}else{A=1;B=q;C=o}f[B+(f[C+(f[i>>2]<<2)>>2]<<2)>>2]=A;A=a+108|0;i=f[A>>2]|0;C=i-B>>2;B=i;if((n|0)!=-1?(i=f[(f[(f[h>>2]|0)+12>>2]|0)+(n<<2)>>2]|0,(i|0)!=-1):0){n=a+64|0;y=1;v=i;while(1){i=f[n>>2]|0;w=f[(f[i>>2]|0)+36>>2]|0;f[g>>2]=(v>>>0)/3|0;f[d>>2]=f[g>>2];if(Ra[w&127](i,d)|0){D=y;break}i=v+1|0;f[(f[l>>2]|0)+((((i>>>0)%3|0|0)==0?v+-2|0:i)<<2)>>2]=C;i=(((v>>>0)%3|0|0)==0?2:-1)+v|0;if((i|0)==-1){z=20;break}v=f[(f[(f[h>>2]|0)+12>>2]|0)+(i<<2)>>2]|0;i=y+1|0;if((v|0)==-1){D=i;break}else y=i}if((z|0)==20)D=y+1|0;E=D;F=f[A>>2]|0}else{E=1;F=B}f[d>>2]=E;if(F>>>0<(f[a+112>>2]|0)>>>0){f[F>>2]=E;f[A>>2]=F+4}else Ri(k,d)}break}case 5:{k=q+(f[o+(j<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-1;k=q+(f[p>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-1;k=q+(f[o+(m<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;break}case 3:{k=q+(f[o+(j<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-1;k=q+(f[p>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;k=q+(f[o+(m<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-1;break}case 7:{k=q+(f[o+(j<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;k=q+(f[p>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;k=q+(f[o+(m<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;break}default:{}}k=a+116|0;m=f[k>>2]|0;if((m|0)==-1){f[k>>2]=b;u=c;return}o=f[a+128>>2]|0;if((s|0)<(o|0))G=o;else{q=f[a+132>>2]|0;G=(s|0)>(q|0)?q:s}s=G-o|0;o=f[a+136>>2]|0;a=f[3724+(m<<2)>>2]|0;f[d>>2]=a;m=o+(s*12|0)+4|0;G=f[m>>2]|0;if(G>>>0<(f[o+(s*12|0)+8>>2]|0)>>>0){f[G>>2]=a;f[m>>2]=G+4}else Ri(o+(s*12|0)|0,d);f[k>>2]=b;u=c;return}function od(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0;g=u;u=u+32|0;d=g+16|0;h=g+8|0;i=g;j=e>>>0>1073741823?-1:e<<2;k=Lq(j)|0;sj(k|0,0,j|0)|0;j=f[a+28>>2]|0;l=a+36|0;m=f[l>>2]|0;n=f[m+4>>2]|0;o=f[m>>2]|0;p=n-o|0;a:do if((p|0)>4){q=p>>2;r=f[a+32>>2]|0;s=a+8|0;t=h+4|0;v=i+4|0;w=d+4|0;x=j+64|0;y=j+28|0;z=(e|0)>0;A=k+4|0;B=h+4|0;C=i+4|0;D=d+4|0;E=q+-1|0;if(n-o>>2>>>0>E>>>0){F=q;G=E;H=o}else{I=m;aq(I)}while(1){E=f[H+(G<<2)>>2]|0;q=X(G,e)|0;if((((E|0)!=-1?(f[(f[j>>2]|0)+(E>>>5<<2)>>2]&1<<(E&31)|0)==0:0)?(J=f[(f[(f[x>>2]|0)+12>>2]|0)+(E<<2)>>2]|0,(J|0)!=-1):0)?(E=f[y>>2]|0,K=f[r>>2]|0,L=f[K+(f[E+(J<<2)>>2]<<2)>>2]|0,M=J+1|0,N=f[K+(f[E+((((M>>>0)%3|0|0)==0?J+-2|0:M)<<2)>>2]<<2)>>2]|0,M=f[K+(f[E+((((J>>>0)%3|0|0)==0?2:-1)+J<<2)>>2]<<2)>>2]|0,(L|0)<(G|0)&(N|0)<(G|0)&(M|0)<(G|0)):0){J=X(L,e)|0;L=X(N,e)|0;N=X(M,e)|0;if(z){M=0;do{f[k+(M<<2)>>2]=(f[b+(M+N<<2)>>2]|0)+(f[b+(M+L<<2)>>2]|0)-(f[b+(M+J<<2)>>2]|0);M=M+1|0}while((M|0)!=(e|0))}M=b+(q<<2)|0;J=c+(q<<2)|0;L=f[M+4>>2]|0;N=f[k>>2]|0;E=f[A>>2]|0;f[h>>2]=f[M>>2];f[B>>2]=L;f[i>>2]=N;f[C>>2]=E;Od(d,s,h,i);f[J>>2]=f[d>>2];f[J+4>>2]=f[D>>2]}else{J=b+(q<<2)|0;E=b+((X(F+-2|0,e)|0)<<2)|0;N=c+(q<<2)|0;L=f[J+4>>2]|0;M=f[E>>2]|0;K=f[E+4>>2]|0;f[h>>2]=f[J>>2];f[t>>2]=L;f[i>>2]=M;f[v>>2]=K;Od(d,s,h,i);f[N>>2]=f[d>>2];f[N+4>>2]=f[w>>2]}if((F|0)<=2)break a;N=f[l>>2]|0;H=f[N>>2]|0;K=G+-1|0;if((f[N+4>>2]|0)-H>>2>>>0<=K>>>0){I=N;break}else{N=G;G=K;F=N}}aq(I)}while(0);if((e|0)<=0){O=a+8|0;P=b+4|0;Q=f[b>>2]|0;R=f[P>>2]|0;S=k+4|0;T=f[k>>2]|0;U=f[S>>2]|0;f[h>>2]=Q;V=h+4|0;f[V>>2]=R;f[i>>2]=T;W=i+4|0;f[W>>2]=U;Od(d,O,h,i);Y=f[d>>2]|0;f[c>>2]=Y;Z=d+4|0;_=f[Z>>2]|0;$=c+4|0;f[$>>2]=_;Mq(k);u=g;return 1}sj(k|0,0,e<<2|0)|0;O=a+8|0;P=b+4|0;Q=f[b>>2]|0;R=f[P>>2]|0;S=k+4|0;T=f[k>>2]|0;U=f[S>>2]|0;f[h>>2]=Q;V=h+4|0;f[V>>2]=R;f[i>>2]=T;W=i+4|0;f[W>>2]=U;Od(d,O,h,i);Y=f[d>>2]|0;f[c>>2]=Y;Z=d+4|0;_=f[Z>>2]|0;$=c+4|0;f[$>>2]=_;Mq(k);u=g;return 1}function pd(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0;switch(c|0){case 1:{c=ln(60)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2076;i=c;f[a>>2]=i;return}case 2:{c=ln(60)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2132;i=c;f[a>>2]=i;return}case 4:{c=ln(168)|0;Ti(c,d,e,g);i=c;f[a>>2]=i;return}case 3:{c=ln(88)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2188;h=c+60|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;i=c;f[a>>2]=i;return}case 5:{c=ln(104)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2244;f[c+60>>2]=0;f[c+64>>2]=0;f[c+76>>2]=0;f[c+80>>2]=0;f[c+84>>2]=0;h=c+88|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];i=c;f[a>>2]=i;return}case 6:{c=ln(140)|0;f[c>>2]=1544;f[c+4>>2]=d;d=c+8|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];f[d+16>>2]=f[e+16>>2];f[d+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);e=c+44|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c>>2]=2300;f[c+64>>2]=0;f[c+68>>2]=0;e=c+72|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c+60>>2]=2356;f[c+88>>2]=1;g=c+92|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;wn(c+108|0);i=c;f[a>>2]=i;return}default:{i=0;f[a>>2]=i;return}}}function qd(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0;switch(c|0){case 1:{c=ln(60)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=1656;i=c;f[a>>2]=i;return}case 2:{c=ln(60)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=1712;i=c;f[a>>2]=i;return}case 4:{c=ln(168)|0;Ui(c,d,e,g);i=c;f[a>>2]=i;return}case 3:{c=ln(88)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=1768;h=c+60|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;i=c;f[a>>2]=i;return}case 5:{c=ln(104)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=1824;f[c+60>>2]=0;f[c+64>>2]=0;f[c+76>>2]=0;f[c+80>>2]=0;f[c+84>>2]=0;h=c+88|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];i=c;f[a>>2]=i;return}case 6:{c=ln(140)|0;f[c>>2]=1544;f[c+4>>2]=d;d=c+8|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];f[d+16>>2]=f[e+16>>2];f[d+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);e=c+44|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c>>2]=1880;f[c+64>>2]=0;f[c+68>>2]=0;e=c+72|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c+60>>2]=1936;f[c+88>>2]=1;g=c+92|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;wn(c+108|0);i=c;f[a>>2]=i;return}default:{i=0;f[a>>2]=i;return}}}function rd(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;c=a+4|0;if(!b){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[c>>2]=0;return}if(b>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(b<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;g=f[c>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=b+-1|0;i=(h&b|0)==0;if(!i)if(e>>>0<b>>>0)j=e;else j=(e>>>0)%(b>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=c;c=f[g>>2]|0;if(!c)return;else{k=j;l=g;m=c;n=g}a:while(1){g=l;c=m;j=n;b:while(1){c:do if(i){e=c;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=q+2|0;v=e+12|0;w=q+6|0;x=f[e>>2]|0;d:do if(!x)y=e;else{z=d[q>>1]|0;A=e;B=x;while(1){C=B+8|0;if(z<<16>>16!=(d[C>>1]|0)){y=A;break d}if((d[u>>1]|0)!=(d[C+2>>1]|0)){y=A;break d}if((d[v>>1]|0)!=(d[B+12>>1]|0)){y=A;break d}if((d[w>>1]|0)!=(d[C+6>>1]|0)){y=A;break d}C=f[B>>2]|0;if(!C){y=B;break}else{D=B;B=C;A=D}}}while(0);f[j>>2]=f[y>>2];f[y>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){E=43;break a}}}else{e=c;while(1){w=f[e+4>>2]|0;if(w>>>0<b>>>0)F=w;else F=(w>>>0)%(b>>>0)|0;if((F|0)==(k|0)){p=e;break c}w=(f[a>>2]|0)+(F<<2)|0;if(!(f[w>>2]|0)){r=e;s=F;t=w;break b}w=e+8|0;v=w+2|0;u=e+12|0;x=w+6|0;q=f[e>>2]|0;e:do if(!q)G=e;else{A=d[w>>1]|0;B=e;z=q;while(1){D=z+8|0;if(A<<16>>16!=(d[D>>1]|0)){G=B;break e}if((d[v>>1]|0)!=(d[D+2>>1]|0)){G=B;break e}if((d[u>>1]|0)!=(d[z+12>>1]|0)){G=B;break e}if((d[x>>1]|0)!=(d[D+6>>1]|0)){G=B;break e}D=f[z>>2]|0;if(!D){G=z;break}else{C=z;z=D;B=C}}}while(0);f[j>>2]=f[G>>2];f[G>>2]=f[f[(f[a>>2]|0)+(F<<2)>>2]>>2];f[f[(f[a>>2]|0)+(F<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){E=43;break a}}}while(0);c=f[p>>2]|0;if(!c){E=43;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){E=43;break}else{k=s;l=r;n=r}}if((E|0)==43)return}function sd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0<c>>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){g=l;d=m;j=n;b:while(1){c:do if(i){e=d;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=q+1|0;v=q+2|0;w=q+3|0;x=f[e>>2]|0;d:do if(!x)y=e;else{z=b[q>>0]|0;A=e;B=x;while(1){C=B+8|0;if(z<<24>>24!=(b[C>>0]|0)){y=A;break d}if((b[u>>0]|0)!=(b[C+1>>0]|0)){y=A;break d}if((b[v>>0]|0)!=(b[C+2>>0]|0)){y=A;break d}if((b[w>>0]|0)!=(b[C+3>>0]|0)){y=A;break d}C=f[B>>2]|0;if(!C){y=B;break}else{D=B;B=C;A=D}}}while(0);f[j>>2]=f[y>>2];f[y>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){E=43;break a}}}else{e=d;while(1){w=f[e+4>>2]|0;if(w>>>0<c>>>0)F=w;else F=(w>>>0)%(c>>>0)|0;if((F|0)==(k|0)){p=e;break c}w=(f[a>>2]|0)+(F<<2)|0;if(!(f[w>>2]|0)){r=e;s=F;t=w;break b}w=e+8|0;v=w+1|0;u=w+2|0;x=w+3|0;q=f[e>>2]|0;e:do if(!q)G=e;else{A=b[w>>0]|0;B=e;z=q;while(1){D=z+8|0;if(A<<24>>24!=(b[D>>0]|0)){G=B;break e}if((b[v>>0]|0)!=(b[D+1>>0]|0)){G=B;break e}if((b[u>>0]|0)!=(b[D+2>>0]|0)){G=B;break e}if((b[x>>0]|0)!=(b[D+3>>0]|0)){G=B;break e}D=f[z>>2]|0;if(!D){G=z;break}else{C=z;z=D;B=C}}}while(0);f[j>>2]=f[G>>2];f[G>>2]=f[f[(f[a>>2]|0)+(F<<2)>>2]>>2];f[f[(f[a>>2]|0)+(F<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){E=43;break a}}}while(0);d=f[p>>2]|0;if(!d){E=43;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){E=43;break}else{k=s;l=r;n=r}}if((E|0)==43)return}function td(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0;i=u;u=u+352|0;j=i+340|0;k=i+336|0;l=i+80|0;m=i+48|0;n=i;sj(l|0,0,256)|0;o=f[e+4>>2]|0;p=f[e>>2]|0;q=p;if((o|0)!=(p|0)){r=o-p>>2;p=0;do{o=l+(f[q+(p<<2)>>2]<<3)|0;s=o;t=Vn(f[s>>2]|0,f[s+4>>2]|0,1,0)|0;s=o;f[s>>2]=t;f[s+4>>2]=I;p=p+1|0}while(p>>>0<r>>>0)}Gn(m);r=Tn(c|0,((c|0)<0)<<31>>31|0,5)|0;p=I;q=n+40|0;s=q;f[s>>2]=0;f[s+4>>2]=0;f[n>>2]=0;f[n+4>>2]=0;f[n+8>>2]=0;f[n+12>>2]=0;f[n+16>>2]=0;f[n+20>>2]=0;fd(n,l,32,g)|0;l=n+16|0;s=Tn(f[l>>2]|0,f[l+4>>2]|0,1)|0;l=g+4|0;t=(f[l>>2]|0)-(f[g>>2]|0)|0;o=q;f[o>>2]=t;f[o+4>>2]=0;o=Vn(s|0,I|0,39,0)|0;s=Yn(o|0,I|0,3)|0;o=Vn(s|0,I|0,8,0)|0;s=Vn(o|0,I|0,t|0,0)|0;Cl(g,s,I);s=n+24|0;f[s>>2]=(f[g>>2]|0)+(f[q>>2]|0);q=n+28|0;f[q>>2]=0;t=n+32|0;f[t>>2]=16384;zi(m,r,p,0)|0;p=c-d|0;if((p|0)>-1){c=(d|0)>0;r=m+16|0;o=m+12|0;v=p;do{w=f[e>>2]|0;x=f[w+(((v|0)/(d|0)|0)<<2)>>2]|0;y=f[n>>2]|0;z=f[y+(x<<3)>>2]|0;A=f[t>>2]|0;B=z<<10;if(A>>>0<B>>>0){C=A;D=w}else{w=A;do{A=f[s>>2]|0;E=f[q>>2]|0;f[q>>2]=E+1;b[A+E>>0]=w;w=(f[t>>2]|0)>>>8;f[t>>2]=w}while(w>>>0>=B>>>0);C=w;D=f[e>>2]|0}f[t>>2]=(((C>>>0)/(z>>>0)|0)<<12)+((C>>>0)%(z>>>0)|0)+(f[y+(x<<3)+4>>2]|0);B=p-v|0;E=f[D+(((B|0)/(d|0)|0)<<2)>>2]|0;if(c&(E|0)>0){A=0;do{F=f[a+(A+B<<2)>>2]|0;G=r;H=f[G+4>>2]|0;if((H|0)>0|(H|0)==0&(f[G>>2]|0)>>>0>0){G=f[o>>2]|0;H=G+4|0;J=0;K=f[H>>2]|0;do{L=K>>>3;M=K&7;N=(f[G>>2]|0)+L|0;b[N>>0]=(1<<M^255)&(h[N>>0]|0);N=(f[G>>2]|0)+L|0;b[N>>0]=(F>>>J&1)<<M|(h[N>>0]|0);K=(f[H>>2]|0)+1|0;f[H>>2]=K;J=J+1|0}while((J|0)!=(E|0))}A=A+1|0}while((A|0)!=(d|0))}v=v-d|0}while((v|0)>-1)}_f(n,g);eg(m);v=f[m>>2]|0;d=m+4|0;o=g+16|0;r=f[o+4>>2]|0;if(!((r|0)>0|(r|0)==0&(f[o>>2]|0)>>>0>0)){o=(f[d>>2]|0)-v|0;f[k>>2]=f[l>>2];f[j>>2]=f[k>>2];Me(g,j,v,v+o|0)|0}o=f[n>>2]|0;if(o|0){v=n+4|0;n=f[v>>2]|0;if((n|0)!=(o|0))f[v>>2]=n+(~((n+-8-o|0)>>>3)<<3);Oq(o)}o=m+12|0;n=f[o>>2]|0;f[o>>2]=0;if(n|0)Oq(n);n=f[m>>2]|0;if(!n){u=i;return 1}if((f[d>>2]|0)!=(n|0))f[d>>2]=n;Oq(n);u=i;return 1}function ud(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Oq(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}d=ln(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Oq(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0<b>>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;else{j=i;k=e;l=c;m=e}a:while(1){e=k;c=l;i=m;b:while(1){c:do if(h){d=c;while(1){n=f[d+4>>2]&g;if((n|0)==(j|0)){o=d;break c}p=(f[a>>2]|0)+(n<<2)|0;if(!(f[p>>2]|0)){q=d;r=n;s=p;break b}p=d+12|0;t=d+16|0;u=d+20|0;v=f[d>>2]|0;d:do if(!v)w=d;else{x=f[d+8>>2]|0;y=d;z=v;while(1){if((x|0)!=(f[z+8>>2]|0)){w=y;break d}if((f[p>>2]|0)!=(f[z+12>>2]|0)){w=y;break d}if((f[t>>2]|0)!=(f[z+16>>2]|0)){w=y;break d}if((f[u>>2]|0)!=(f[z+20>>2]|0)){w=y;break d}A=f[z>>2]|0;if(!A){w=z;break}else{B=z;z=A;y=B}}}while(0);f[i>>2]=f[w>>2];f[w>>2]=f[f[(f[a>>2]|0)+(n<<2)>>2]>>2];f[f[(f[a>>2]|0)+(n<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){C=43;break a}}}else{d=c;while(1){u=f[d+4>>2]|0;if(u>>>0<b>>>0)D=u;else D=(u>>>0)%(b>>>0)|0;if((D|0)==(j|0)){o=d;break c}u=(f[a>>2]|0)+(D<<2)|0;if(!(f[u>>2]|0)){q=d;r=D;s=u;break b}u=d+12|0;t=d+16|0;p=d+20|0;v=f[d>>2]|0;e:do if(!v)E=d;else{y=f[d+8>>2]|0;z=d;x=v;while(1){if((y|0)!=(f[x+8>>2]|0)){E=z;break e}if((f[u>>2]|0)!=(f[x+12>>2]|0)){E=z;break e}if((f[t>>2]|0)!=(f[x+16>>2]|0)){E=z;break e}if((f[p>>2]|0)!=(f[x+20>>2]|0)){E=z;break e}B=f[x>>2]|0;if(!B){E=x;break}else{A=x;x=B;z=A}}}while(0);f[i>>2]=f[E>>2];f[E>>2]=f[f[(f[a>>2]|0)+(D<<2)>>2]>>2];f[f[(f[a>>2]|0)+(D<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){C=43;break a}}}while(0);c=f[o>>2]|0;if(!c){C=43;break a}else{e=o;i=o}}f[s>>2]=i;l=f[q>>2]|0;if(!l){C=43;break}else{j=r;k=q;m=q}}if((C|0)==43)return}function vd(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;c=a+4|0;if(!b){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[c>>2]=0;return}if(b>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(b<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;g=f[c>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=b+-1|0;i=(h&b|0)==0;if(!i)if(e>>>0<b>>>0)j=e;else j=(e>>>0)%(b>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=c;c=f[g>>2]|0;if(!c)return;else{k=j;l=g;m=c;n=g}a:while(1){g=l;c=m;j=n;b:while(1){c:do if(i){e=c;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=e+12|0;v=f[e>>2]|0;d:do if(!v)w=e;else{x=d[q>>1]|0;y=q+2|0;z=e;A=v;while(1){B=A+8|0;if(x<<16>>16!=(d[B>>1]|0)){w=z;break d}if((d[y>>1]|0)!=(d[B+2>>1]|0)){w=z;break d}if((d[u>>1]|0)!=(d[A+12>>1]|0)){w=z;break d}B=f[A>>2]|0;if(!B){w=A;break}else{C=A;A=B;z=C}}}while(0);f[j>>2]=f[w>>2];f[w>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){D=41;break a}}}else{e=c;while(1){u=f[e+4>>2]|0;if(u>>>0<b>>>0)E=u;else E=(u>>>0)%(b>>>0)|0;if((E|0)==(k|0)){p=e;break c}u=(f[a>>2]|0)+(E<<2)|0;if(!(f[u>>2]|0)){r=e;s=E;t=u;break b}u=e+8|0;v=e+12|0;q=f[e>>2]|0;e:do if(!q)F=e;else{z=d[u>>1]|0;A=u+2|0;y=e;x=q;while(1){C=x+8|0;if(z<<16>>16!=(d[C>>1]|0)){F=y;break e}if((d[A>>1]|0)!=(d[C+2>>1]|0)){F=y;break e}if((d[v>>1]|0)!=(d[x+12>>1]|0)){F=y;break e}C=f[x>>2]|0;if(!C){F=x;break}else{B=x;x=C;y=B}}}while(0);f[j>>2]=f[F>>2];f[F>>2]=f[f[(f[a>>2]|0)+(E<<2)>>2]>>2];f[f[(f[a>>2]|0)+(E<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){D=41;break a}}}while(0);c=f[p>>2]|0;if(!c){D=41;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){D=41;break}else{k=s;l=r;n=r}}if((D|0)==41)return}function wd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0<c>>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){g=l;d=m;j=n;b:while(1){c:do if(i){e=d;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=q+1|0;v=q+2|0;w=f[e>>2]|0;d:do if(!w)x=e;else{y=b[q>>0]|0;z=e;A=w;while(1){B=A+8|0;if(y<<24>>24!=(b[B>>0]|0)){x=z;break d}if((b[u>>0]|0)!=(b[B+1>>0]|0)){x=z;break d}if((b[v>>0]|0)!=(b[B+2>>0]|0)){x=z;break d}B=f[A>>2]|0;if(!B){x=A;break}else{C=A;A=B;z=C}}}while(0);f[j>>2]=f[x>>2];f[x>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){D=41;break a}}}else{e=d;while(1){v=f[e+4>>2]|0;if(v>>>0<c>>>0)E=v;else E=(v>>>0)%(c>>>0)|0;if((E|0)==(k|0)){p=e;break c}v=(f[a>>2]|0)+(E<<2)|0;if(!(f[v>>2]|0)){r=e;s=E;t=v;break b}v=e+8|0;u=v+1|0;w=v+2|0;q=f[e>>2]|0;e:do if(!q)F=e;else{z=b[v>>0]|0;A=e;y=q;while(1){C=y+8|0;if(z<<24>>24!=(b[C>>0]|0)){F=A;break e}if((b[u>>0]|0)!=(b[C+1>>0]|0)){F=A;break e}if((b[w>>0]|0)!=(b[C+2>>0]|0)){F=A;break e}C=f[y>>2]|0;if(!C){F=y;break}else{B=y;y=C;A=B}}}while(0);f[j>>2]=f[F>>2];f[F>>2]=f[f[(f[a>>2]|0)+(E<<2)>>2]>>2];f[f[(f[a>>2]|0)+(E<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){D=41;break a}}}while(0);d=f[p>>2]|0;if(!d){D=41;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){D=41;break}else{k=s;l=r;n=r}}if((D|0)==41)return}function xd(a,b){a=+a;b=+b;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;p[s>>3]=b;e=f[s>>2]|0;g=f[s+4>>2]|0;h=Yn(c|0,d|0,52)|0;i=h&2047;h=Yn(e|0,g|0,52)|0;j=h&2047;h=d&-2147483648;k=Tn(e|0,g|0,1)|0;l=I;a:do if(!((k|0)==0&(l|0)==0)?(m=yo(b)|0,n=I&2147483647,!((i|0)==2047|(n>>>0>2146435072|(n|0)==2146435072&m>>>0>0))):0){m=Tn(c|0,d|0,1)|0;n=I;if(!(n>>>0>l>>>0|(n|0)==(l|0)&m>>>0>k>>>0))return +((m|0)==(k|0)&(n|0)==(l|0)?a*0.0:a);if(!i){n=Tn(c|0,d|0,12)|0;m=I;if((m|0)>-1|(m|0)==-1&n>>>0>4294967295){o=0;q=n;n=m;while(1){m=o+-1|0;q=Tn(q|0,n|0,1)|0;n=I;if(!((n|0)>-1|(n|0)==-1&q>>>0>4294967295)){r=m;break}else o=m}}else r=0;o=Tn(c|0,d|0,1-r|0)|0;t=r;u=o;v=I}else{t=i;u=c;v=d&1048575|1048576}if(!j){o=Tn(e|0,g|0,12)|0;q=I;if((q|0)>-1|(q|0)==-1&o>>>0>4294967295){n=0;m=o;o=q;while(1){q=n+-1|0;m=Tn(m|0,o|0,1)|0;o=I;if(!((o|0)>-1|(o|0)==-1&m>>>0>4294967295)){w=q;break}else n=q}}else w=0;n=Tn(e|0,g|0,1-w|0)|0;x=w;y=n;z=I}else{x=j;y=e;z=g&1048575|1048576}n=Xn(u|0,v|0,y|0,z|0)|0;m=I;o=(m|0)>-1|(m|0)==-1&n>>>0>4294967295;b:do if((t|0)>(x|0)){q=t;A=m;B=o;C=u;D=v;E=n;while(1){if(B)if((E|0)==0&(A|0)==0)break;else{F=E;G=A}else{F=C;G=D}H=Tn(F|0,G|0,1)|0;J=I;K=q+-1|0;L=Xn(H|0,J|0,y|0,z|0)|0;M=I;N=(M|0)>-1|(M|0)==-1&L>>>0>4294967295;if((K|0)>(x|0)){q=K;A=M;B=N;C=H;D=J;E=L}else{O=K;P=N;Q=L;R=M;S=H;T=J;break b}}U=a*0.0;break a}else{O=t;P=o;Q=n;R=m;S=u;T=v}while(0);if(P)if((Q|0)==0&(R|0)==0){U=a*0.0;break}else{V=R;W=Q}else{V=T;W=S}if(V>>>0<1048576|(V|0)==1048576&W>>>0<0){m=O;n=W;o=V;while(1){E=Tn(n|0,o|0,1)|0;D=I;C=m+-1|0;if(D>>>0<1048576|(D|0)==1048576&E>>>0<0){m=C;n=E;o=D}else{X=C;Y=E;Z=D;break}}}else{X=O;Y=W;Z=V}if((X|0)>0){o=Vn(Y|0,Z|0,0,-1048576)|0;n=I;m=Tn(X|0,0,52)|0;_=n|I;$=o|m}else{m=Yn(Y|0,Z|0,1-X|0)|0;_=I;$=m}f[s>>2]=$;f[s+4>>2]=_|h;U=+p[s>>3]}else aa=3;while(0);if((aa|0)==3){ba=a*b;U=ba/ba}return +U}function yd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;d=u;u=u+32|0;e=d+8|0;g=d;h=c+4|0;i=f[(f[h>>2]|0)+48>>2]|0;j=c+12|0;c=f[j>>2]|0;k=ln(32)|0;f[e>>2]=k;f[e+8>>2]=-2147483616;f[e+4>>2]=17;l=k;m=14495;n=l+17|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[k+17>>0]=0;k=i+16|0;m=f[k>>2]|0;if(m){l=k;n=m;a:while(1){m=n;while(1){if((f[m+16>>2]|0)>=(c|0))break;o=f[m+4>>2]|0;if(!o){p=l;break a}else m=o}n=f[m>>2]|0;if(!n){p=m;break}else l=m}if(((p|0)!=(k|0)?(c|0)>=(f[p+16>>2]|0):0)?(c=p+20|0,(Jh(c,e)|0)!=0):0)q=Hk(c,e,-1)|0;else r=10}else r=10;if((r|0)==10)q=Hk(i,e,-1)|0;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);f[e>>2]=-1;f[e+4>>2]=-1;f[e+8>>2]=-1;f[e+12>>2]=-1;i=(_((1<<q)+-1|0)|0)^31;if((i+-1|0)>>>0<=28){f[e>>2]=i+1;q=2<<i;f[e+4>>2]=q+-1;i=q+-2|0;f[e+8>>2]=i;f[e+12>>2]=(i|0)/2|0}switch(Xi(f[j>>2]|0,f[h>>2]|0)|0){case 6:{i=f[j>>2]|0;q=f[h>>2]|0;c=f[(f[(f[q+4>>2]|0)+8>>2]|0)+(i<<2)>>2]|0;do if((Qa[f[(f[q>>2]|0)+8>>2]&127](q)|0)==1){Hf(g,q,6,i,e,514);p=f[g>>2]|0;if(!p){f[g>>2]=0;s=g;r=21;break}else{t=g;v=p;break}}else{s=g;r=21}while(0);if((r|0)==21){i=ln(24)|0;f[i+4>>2]=c;c=i+8|0;f[c>>2]=f[e>>2];f[c+4>>2]=f[e+4>>2];f[c+8>>2]=f[e+8>>2];f[c+12>>2]=f[e+12>>2];f[i>>2]=2560;c=i;f[g>>2]=c;t=s;v=c}f[a>>2]=v;f[t>>2]=0;u=d;return}case 0:{t=f[j>>2]|0;j=f[h>>2]|0;h=f[(f[(f[j+4>>2]|0)+8>>2]|0)+(t<<2)>>2]|0;do if((Qa[f[(f[j>>2]|0)+8>>2]&127](j)|0)==1){Hf(g,j,0,t,e,514);v=f[g>>2]|0;if(!v){f[g>>2]=0;w=g;r=28;break}else{x=g;y=v;break}}else{w=g;r=28}while(0);if((r|0)==28){r=ln(24)|0;f[r+4>>2]=h;h=r+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[r>>2]=2560;e=r;f[g>>2]=e;x=w;y=e}f[a>>2]=y;f[x>>2]=0;u=d;return}default:{f[a>>2]=0;u=d;return}}}function zd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Oq(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}d=ln(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Oq(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0<b>>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;else{j=i;k=e;l=c;m=e}a:while(1){e=k;c=l;i=m;b:while(1){c:do if(h){d=c;while(1){n=f[d+4>>2]&g;if((n|0)==(j|0)){o=d;break c}p=(f[a>>2]|0)+(n<<2)|0;if(!(f[p>>2]|0)){q=d;r=n;s=p;break b}p=d+12|0;t=d+16|0;u=f[d>>2]|0;d:do if(!u)v=d;else{w=f[d+8>>2]|0;x=d;y=u;while(1){if((w|0)!=(f[y+8>>2]|0)){v=x;break d}if((f[p>>2]|0)!=(f[y+12>>2]|0)){v=x;break d}if((f[t>>2]|0)!=(f[y+16>>2]|0)){v=x;break d}z=f[y>>2]|0;if(!z){v=y;break}else{A=y;y=z;x=A}}}while(0);f[i>>2]=f[v>>2];f[v>>2]=f[f[(f[a>>2]|0)+(n<<2)>>2]>>2];f[f[(f[a>>2]|0)+(n<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){B=41;break a}}}else{d=c;while(1){t=f[d+4>>2]|0;if(t>>>0<b>>>0)C=t;else C=(t>>>0)%(b>>>0)|0;if((C|0)==(j|0)){o=d;break c}t=(f[a>>2]|0)+(C<<2)|0;if(!(f[t>>2]|0)){q=d;r=C;s=t;break b}t=d+12|0;p=d+16|0;u=f[d>>2]|0;e:do if(!u)D=d;else{x=f[d+8>>2]|0;y=d;w=u;while(1){if((x|0)!=(f[w+8>>2]|0)){D=y;break e}if((f[t>>2]|0)!=(f[w+12>>2]|0)){D=y;break e}if((f[p>>2]|0)!=(f[w+16>>2]|0)){D=y;break e}A=f[w>>2]|0;if(!A){D=w;break}else{z=w;w=A;y=z}}}while(0);f[i>>2]=f[D>>2];f[D>>2]=f[f[(f[a>>2]|0)+(C<<2)>>2]>>2];f[f[(f[a>>2]|0)+(C<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){B=41;break a}}}while(0);c=f[o>>2]|0;if(!c){B=41;break a}else{e=o;i=o}}f[s>>2]=i;l=f[q>>2]|0;if(!l){B=41;break}else{j=r;k=q;m=q}}if((B|0)==41)return}function Ad(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0;switch(c|0){case 1:{c=ln(40)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2980;i=c;f[a>>2]=i;return}case 2:{c=ln(40)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=3036;i=c;f[a>>2]=i;return}case 4:{c=ln(152)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=3092;h=c+96|0;b=c+40|0;j=b+52|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(j|0));Zm(h);f[c+136>>2]=0;f[c+140>>2]=0;f[c+144>>2]=0;i=c;f[a>>2]=i;return}case 3:{c=ln(68)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=3148;h=c+40|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;i=c;f[a>>2]=i;return}case 5:{c=ln(84)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=3204;f[c+40>>2]=0;f[c+44>>2]=0;f[c+56>>2]=0;f[c+60>>2]=0;f[c+64>>2]=0;h=c+68|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];i=c;f[a>>2]=i;return}case 6:{c=ln(120)|0;f[c+4>>2]=d;d=c+8|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];e=c+24|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c>>2]=3260;f[c+44>>2]=0;f[c+48>>2]=0;e=c+52|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c+40>>2]=3316;f[c+68>>2]=1;g=c+72|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;wn(c+88|0);i=c;f[a>>2]=i;return}default:{i=0;f[a>>2]=i;return}}}function Bd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0<c>>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){g=l;d=m;j=n;b:while(1){o=d;while(1){e=f[o+4>>2]|0;if(!i)if(e>>>0<c>>>0)p=e;else p=(e>>>0)%(c>>>0)|0;else p=e&h;if((p|0)==(k|0))break;q=(f[a>>2]|0)+(p<<2)|0;if(!(f[q>>2]|0))break b;e=f[o>>2]|0;c:do if(!e)r=o;else{s=o+8|0;t=b[s+11>>0]|0;u=t<<24>>24<0;v=t&255;t=u?f[o+12>>2]|0:v;w=(t|0)==0;if(u){u=o;x=e;while(1){y=x+8|0;z=b[y+11>>0]|0;A=z<<24>>24<0;if((t|0)!=((A?f[x+12>>2]|0:z&255)|0)){r=u;break c}if(!w?Vk(f[s>>2]|0,A?f[y>>2]|0:y,t)|0:0){r=u;break c}y=f[x>>2]|0;if(!y){r=x;break c}else{A=x;x=y;u=A}}}if(w){u=o;x=e;while(1){A=b[x+8+11>>0]|0;if((A<<24>>24<0?f[x+12>>2]|0:A&255)|0){r=u;break c}A=f[x>>2]|0;if(!A){r=x;break c}else{y=x;x=A;u=y}}}u=o;x=e;while(1){w=x+8|0;y=b[w+11>>0]|0;A=y<<24>>24<0;if((t|0)!=((A?f[x+12>>2]|0:y&255)|0)){r=u;break c}y=A?f[w>>2]|0:w;if((b[y>>0]|0)==(f[s>>2]&255)<<24>>24){B=s;C=v;D=y}else{r=u;break c}while(1){C=C+-1|0;B=B+1|0;if(!C)break;D=D+1|0;if((b[B>>0]|0)!=(b[D>>0]|0)){r=u;break c}}y=f[x>>2]|0;if(!y){r=x;break}else{w=x;x=y;u=w}}}while(0);f[j>>2]=f[r>>2];f[r>>2]=f[f[(f[a>>2]|0)+(p<<2)>>2]>>2];f[f[(f[a>>2]|0)+(p<<2)>>2]>>2]=o;e=f[g>>2]|0;if(!e){E=43;break a}else o=e}d=f[o>>2]|0;if(!d){E=43;break a}else{g=o;j=o}}f[q>>2]=j;m=f[o>>2]|0;if(!m){E=43;break}else{k=p;l=o;n=o}}if((E|0)==43)return}function Cd(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0;switch(c|0){case 1:{c=ln(40)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2616;i=c;f[a>>2]=i;return}case 2:{c=ln(40)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2672;i=c;f[a>>2]=i;return}case 4:{c=ln(152)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2728;h=c+96|0;b=c+40|0;j=b+52|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(j|0));Zm(h);f[c+136>>2]=0;f[c+140>>2]=0;f[c+144>>2]=0;i=c;f[a>>2]=i;return}case 3:{c=ln(68)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2784;h=c+40|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;i=c;f[a>>2]=i;return}case 5:{c=ln(84)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2840;f[c+40>>2]=0;f[c+44>>2]=0;f[c+56>>2]=0;f[c+60>>2]=0;f[c+64>>2]=0;h=c+68|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];i=c;f[a>>2]=i;return}case 6:{c=ln(120)|0;f[c+4>>2]=d;d=c+8|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];e=c+24|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c>>2]=2896;f[c+44>>2]=0;f[c+48>>2]=0;e=c+52|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c+40>>2]=2952;f[c+68>>2]=1;g=c+72|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;wn(c+88|0);i=c;f[a>>2]=i;return}default:{i=0;f[a>>2]=i;return}}}function Dd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+48|0;d=c+8|0;e=c+4|0;g=c;h=a+44|0;ci(f[h>>2]|0,b)|0;if(f[h>>2]|0){wn(d);tk(d);i=(f[h>>2]|0)+-1|0;if((i|0)>-1){h=a+40|0;j=i;do{fj(d,(f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);j=j+-1|0}while((j|0)>-1)}ld(d,b);Fj(d)}j=a+56|0;ci(f[j>>2]|0,b)|0;if(f[j>>2]|0){wn(d);tk(d);h=(f[j>>2]|0)+-2|0;if((h|0)>-1){j=a+52|0;i=h;do{fj(d,(f[(f[j>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);h=i+1|0;fj(d,(f[(f[j>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0);i=i+-2|0}while((i|0)>-1)}ld(d,b);Fj(d)}i=a+68|0;ci(f[i>>2]|0,b)|0;if(f[i>>2]|0){wn(d);tk(d);j=(f[i>>2]|0)+-3|0;if((j|0)>-1){i=a+64|0;h=j;do{fj(d,(f[(f[i>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0);j=h+1|0;fj(d,(f[(f[i>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);j=h+2|0;fj(d,(f[(f[i>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);h=h+-3|0}while((h|0)>-1)}ld(d,b);Fj(d)}h=a+80|0;ci(f[h>>2]|0,b)|0;if(f[h>>2]|0){wn(d);tk(d);i=(f[h>>2]|0)+-4|0;if((i|0)>-1){h=a+76|0;j=i;do{fj(d,(f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);i=j+1|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);i=j+2|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);i=j+3|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);j=j+-4|0}while((j|0)>-1)}ld(d,b);Fj(d)}f[g>>2]=f[a+12>>2];j=b+16|0;h=j;i=f[h>>2]|0;k=f[h+4>>2]|0;if((k|0)>0|(k|0)==0&i>>>0>0){l=k;m=i}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;i=j;l=f[i+4>>2]|0;m=f[i>>2]|0}f[g>>2]=f[a+20>>2];if((l|0)>0|(l|0)==0&m>>>0>0){u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;u=c;return 1}function Ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+48|0;d=c+8|0;e=c+4|0;g=c;h=a+64|0;ci(f[h>>2]|0,b)|0;if(f[h>>2]|0){wn(d);tk(d);i=(f[h>>2]|0)+-1|0;if((i|0)>-1){h=a+60|0;j=i;do{fj(d,(f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);j=j+-1|0}while((j|0)>-1)}ld(d,b);Fj(d)}j=a+76|0;ci(f[j>>2]|0,b)|0;if(f[j>>2]|0){wn(d);tk(d);h=(f[j>>2]|0)+-2|0;if((h|0)>-1){j=a+72|0;i=h;do{fj(d,(f[(f[j>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);h=i+1|0;fj(d,(f[(f[j>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0);i=i+-2|0}while((i|0)>-1)}ld(d,b);Fj(d)}i=a+88|0;ci(f[i>>2]|0,b)|0;if(f[i>>2]|0){wn(d);tk(d);j=(f[i>>2]|0)+-3|0;if((j|0)>-1){i=a+84|0;h=j;do{fj(d,(f[(f[i>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0);j=h+1|0;fj(d,(f[(f[i>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);j=h+2|0;fj(d,(f[(f[i>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);h=h+-3|0}while((h|0)>-1)}ld(d,b);Fj(d)}h=a+100|0;ci(f[h>>2]|0,b)|0;if(f[h>>2]|0){wn(d);tk(d);i=(f[h>>2]|0)+-4|0;if((i|0)>-1){h=a+96|0;j=i;do{fj(d,(f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);i=j+1|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);i=j+2|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);i=j+3|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);j=j+-4|0}while((j|0)>-1)}ld(d,b);Fj(d)}f[g>>2]=f[a+12>>2];j=b+16|0;h=j;i=f[h>>2]|0;k=f[h+4>>2]|0;if((k|0)>0|(k|0)==0&i>>>0>0){l=k;m=i}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;i=j;l=f[i+4>>2]|0;m=f[i>>2]|0}f[g>>2]=f[a+16>>2];if((l|0)>0|(l|0)==0&m>>>0>0){u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;u=c;return 1}function Fd(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;c=a+4|0;if(!b){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[c>>2]=0;return}if(b>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(b<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;g=f[c>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=b+-1|0;i=(h&b|0)==0;if(!i)if(e>>>0<b>>>0)j=e;else j=(e>>>0)%(b>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=c;c=f[g>>2]|0;if(!c)return;else{k=j;l=g;m=c;n=g}a:while(1){g=l;c=m;j=n;b:while(1){c:do if(i){e=c;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=f[e>>2]|0;d:do if(!u)v=e;else{w=d[q>>1]|0;x=q+2|0;y=e;z=u;while(1){A=z+8|0;if(w<<16>>16!=(d[A>>1]|0)){v=y;break d}if((d[x>>1]|0)!=(d[A+2>>1]|0)){v=y;break d}A=f[z>>2]|0;if(!A){v=z;break}else{B=z;z=A;y=B}}}while(0);f[j>>2]=f[v>>2];f[v>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){C=39;break a}}}else{e=c;while(1){u=f[e+4>>2]|0;if(u>>>0<b>>>0)D=u;else D=(u>>>0)%(b>>>0)|0;if((D|0)==(k|0)){p=e;break c}u=(f[a>>2]|0)+(D<<2)|0;if(!(f[u>>2]|0)){r=e;s=D;t=u;break b}u=e+8|0;q=f[e>>2]|0;e:do if(!q)E=e;else{y=d[u>>1]|0;z=u+2|0;x=e;w=q;while(1){B=w+8|0;if(y<<16>>16!=(d[B>>1]|0)){E=x;break e}if((d[z>>1]|0)!=(d[B+2>>1]|0)){E=x;break e}B=f[w>>2]|0;if(!B){E=w;break}else{A=w;w=B;x=A}}}while(0);f[j>>2]=f[E>>2];f[E>>2]=f[f[(f[a>>2]|0)+(D<<2)>>2]>>2];f[f[(f[a>>2]|0)+(D<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){C=39;break a}}}while(0);c=f[p>>2]|0;if(!c){C=39;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){C=39;break}else{k=s;l=r;n=r}}if((C|0)==39)return}function Gd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0<c>>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){g=l;d=m;j=n;b:while(1){c:do if(i){e=d;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=f[e>>2]|0;d:do if(!u)v=e;else{w=b[q>>0]|0;x=q+1|0;y=e;z=u;while(1){A=z+8|0;if(w<<24>>24!=(b[A>>0]|0)){v=y;break d}if((b[x>>0]|0)!=(b[A+1>>0]|0)){v=y;break d}A=f[z>>2]|0;if(!A){v=z;break}else{B=z;z=A;y=B}}}while(0);f[j>>2]=f[v>>2];f[v>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){C=39;break a}}}else{e=d;while(1){u=f[e+4>>2]|0;if(u>>>0<c>>>0)D=u;else D=(u>>>0)%(c>>>0)|0;if((D|0)==(k|0)){p=e;break c}u=(f[a>>2]|0)+(D<<2)|0;if(!(f[u>>2]|0)){r=e;s=D;t=u;break b}u=e+8|0;q=f[e>>2]|0;e:do if(!q)E=e;else{y=b[u>>0]|0;z=u+1|0;x=e;w=q;while(1){B=w+8|0;if(y<<24>>24!=(b[B>>0]|0)){E=x;break e}if((b[z>>0]|0)!=(b[B+1>>0]|0)){E=x;break e}B=f[w>>2]|0;if(!B){E=w;break}else{A=w;w=B;x=A}}}while(0);f[j>>2]=f[E>>2];f[E>>2]=f[f[(f[a>>2]|0)+(D<<2)>>2]>>2];f[f[(f[a>>2]|0)+(D<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){C=39;break a}}}while(0);d=f[p>>2]|0;if(!d){C=39;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){C=39;break}else{k=s;l=r;n=r}}if((C|0)==39)return}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;c=u;u=u+48|0;d=c+32|0;e=c+28|0;g=c+16|0;h=c;i=a+16|0;j=f[i>>2]|0;if(j|0){k=f[b>>2]|0;l=i;m=j;a:while(1){j=m;while(1){if((f[j+16>>2]|0)>=(k|0))break;n=f[j+4>>2]|0;if(!n){o=l;break a}else j=n}m=f[j>>2]|0;if(!m){o=j;break}else l=j}if((o|0)!=(i|0)?(k|0)>=(f[o+16>>2]|0):0){p=o;q=p+20|0;u=c;return q|0}}lp(g);f[h>>2]=f[b>>2];b=h+4|0;f[h+8>>2]=0;o=h+12|0;f[o>>2]=0;k=h+8|0;f[b>>2]=k;l=f[g>>2]|0;m=g+4|0;if((l|0)!=(m|0)){n=k;r=l;while(1){l=r+16|0;f[e>>2]=n;f[d>>2]=f[e>>2];ph(b,d,l,l)|0;l=f[r+4>>2]|0;if(!l){s=r+8|0;t=f[s>>2]|0;if((f[t>>2]|0)==(r|0))v=t;else{t=s;do{s=f[t>>2]|0;t=s+8|0;w=f[t>>2]|0}while((f[w>>2]|0)!=(s|0));v=w}}else{t=l;while(1){j=f[t>>2]|0;if(!j)break;else t=j}v=t}if((v|0)==(m|0))break;else r=v}}v=a+12|0;r=f[i>>2]|0;do if(r){d=f[h>>2]|0;e=a+16|0;n=r;while(1){l=f[n+16>>2]|0;if((d|0)<(l|0)){j=f[n>>2]|0;if(!j){x=23;break}else{y=n;z=j}}else{if((l|0)>=(d|0)){x=27;break}A=n+4|0;l=f[A>>2]|0;if(!l){x=26;break}else{y=A;z=l}}e=y;n=z}if((x|0)==23){B=n;C=n;break}else if((x|0)==26){B=n;C=A;break}else if((x|0)==27){B=n;C=e;break}}else{B=i;C=i}while(0);i=f[C>>2]|0;if(!i){x=ln(32)|0;f[x+16>>2]=f[h>>2];A=x+20|0;f[A>>2]=f[b>>2];z=x+24|0;y=f[h+8>>2]|0;f[z>>2]=y;r=f[o>>2]|0;f[x+28>>2]=r;if(!r)f[A>>2]=z;else{f[y+8>>2]=z;f[b>>2]=k;f[k>>2]=0;f[o>>2]=0}f[x>>2]=0;f[x+4>>2]=0;f[x+8>>2]=B;f[C>>2]=x;B=f[f[v>>2]>>2]|0;if(!B)D=x;else{f[v>>2]=B;D=f[C>>2]|0}Oe(f[a+16>>2]|0,D);D=a+20|0;f[D>>2]=(f[D>>2]|0)+1;E=x}else E=i;Ej(h+4|0,f[k>>2]|0);Ej(g,f[m>>2]|0);p=E;q=p+20|0;u=c;return q|0}function Id(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=b[c+11>>0]|0;e=d<<24>>24<0;g=e?f[c>>2]|0:c;i=e?f[c+4>>2]|0:d&255;if(i>>>0>3){d=g;c=i;e=i;while(1){j=X(h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24,1540483477)|0;c=(X(j>>>24^j,1540483477)|0)^(X(c,1540483477)|0);e=e+-4|0;if(e>>>0<=3)break;else d=d+4|0}d=i+-4|0;e=d&-4;k=d-e|0;l=g+(e+4)|0;m=c}else{k=i;l=g;m=i}switch(k|0){case 3:{n=h[l+2>>0]<<16^m;o=6;break}case 2:{n=m;o=6;break}case 1:{p=m;o=7;break}default:q=m}if((o|0)==6){p=h[l+1>>0]<<8^n;o=7}if((o|0)==7)q=X(p^h[l>>0],1540483477)|0;l=X(q>>>13^q,1540483477)|0;q=l>>>15^l;l=f[a+4>>2]|0;if(!l){r=0;return r|0}p=l+-1|0;n=(p&l|0)==0;if(!n)if(q>>>0<l>>>0)s=q;else s=(q>>>0)%(l>>>0)|0;else s=q&p;m=f[(f[a>>2]|0)+(s<<2)>>2]|0;if(!m){r=0;return r|0}a=f[m>>2]|0;if(!a){r=0;return r|0}m=(i|0)==0;if(n){n=a;a:while(1){k=f[n+4>>2]|0;c=(k|0)==(q|0);if(!(c|(k&p|0)==(s|0))){r=0;o=40;break}do if(c?(k=n+8|0,e=b[k+11>>0]|0,d=e<<24>>24<0,j=e&255,((d?f[n+12>>2]|0:j)|0)==(i|0)):0){e=f[k>>2]|0;t=d?e:k;if(d){if(m){r=n;o=40;break a}if(!(Vk(t,g,i)|0)){r=n;o=40;break a}else break}if(m){r=n;o=40;break a}if((b[g>>0]|0)==(e&255)<<24>>24){e=k;k=j;j=g;do{k=k+-1|0;e=e+1|0;if(!k){r=n;o=40;break a}j=j+1|0}while((b[e>>0]|0)==(b[j>>0]|0))}}while(0);n=f[n>>2]|0;if(!n){r=0;o=40;break}}if((o|0)==40)return r|0}else u=a;b:while(1){a=f[u+4>>2]|0;do if((a|0)==(q|0)){n=u+8|0;p=b[n+11>>0]|0;c=p<<24>>24<0;j=p&255;if(((c?f[u+12>>2]|0:j)|0)==(i|0)){p=f[n>>2]|0;e=c?p:n;if(c){if(m){r=u;o=40;break b}if(!(Vk(e,g,i)|0)){r=u;o=40;break b}else break}if(m){r=u;o=40;break b}if((b[g>>0]|0)==(p&255)<<24>>24){p=n;n=j;j=g;do{n=n+-1|0;p=p+1|0;if(!n){r=u;o=40;break b}j=j+1|0}while((b[p>>0]|0)==(b[j>>0]|0))}}}else{if(a>>>0<l>>>0)v=a;else v=(a>>>0)%(l>>>0)|0;if((v|0)!=(s|0)){r=0;o=40;break b}}while(0);u=f[u>>2]|0;if(!u){r=0;o=40;break}}if((o|0)==40)return r|0;return 0}function Jd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Oq(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}d=ln(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Oq(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0<b>>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;else{j=i;k=e;l=c;m=e}a:while(1){e=k;c=l;i=m;b:while(1){c:do if(h){d=c;while(1){n=f[d+4>>2]&g;if((n|0)==(j|0)){o=d;break c}p=(f[a>>2]|0)+(n<<2)|0;if(!(f[p>>2]|0)){q=d;r=n;s=p;break b}p=d+12|0;t=f[d>>2]|0;d:do if(!t)u=d;else{v=f[d+8>>2]|0;w=d;x=t;while(1){if((v|0)!=(f[x+8>>2]|0)){u=w;break d}if((f[p>>2]|0)!=(f[x+12>>2]|0)){u=w;break d}y=f[x>>2]|0;if(!y){u=x;break}else{z=x;x=y;w=z}}}while(0);f[i>>2]=f[u>>2];f[u>>2]=f[f[(f[a>>2]|0)+(n<<2)>>2]>>2];f[f[(f[a>>2]|0)+(n<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){A=39;break a}}}else{d=c;while(1){p=f[d+4>>2]|0;if(p>>>0<b>>>0)B=p;else B=(p>>>0)%(b>>>0)|0;if((B|0)==(j|0)){o=d;break c}p=(f[a>>2]|0)+(B<<2)|0;if(!(f[p>>2]|0)){q=d;r=B;s=p;break b}p=d+12|0;t=f[d>>2]|0;e:do if(!t)C=d;else{w=f[d+8>>2]|0;x=d;v=t;while(1){if((w|0)!=(f[v+8>>2]|0)){C=x;break e}if((f[p>>2]|0)!=(f[v+12>>2]|0)){C=x;break e}z=f[v>>2]|0;if(!z){C=v;break}else{y=v;v=z;x=y}}}while(0);f[i>>2]=f[C>>2];f[C>>2]=f[f[(f[a>>2]|0)+(B<<2)>>2]>>2];f[f[(f[a>>2]|0)+(B<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){A=39;break a}}}while(0);c=f[o>>2]|0;if(!c){A=39;break a}else{e=o;i=o}}f[s>>2]=i;l=f[q>>2]|0;if(!l){A=39;break}else{j=r;k=q;m=q}}if((A|0)==39)return}function Kd(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=a+4|0;i=f[c>>2]|0;c=i;do if((i|0)!=(h|0)){j=i+16|0;k=b[j+11>>0]|0;l=k<<24>>24<0;m=l?f[i+20>>2]|0:k&255;k=b[g+11>>0]|0;n=k<<24>>24<0;o=n?f[g+4>>2]|0:k&255;k=m>>>0<o>>>0;p=k?m:o;if((p|0)!=0?(q=Vk(n?f[g>>2]|0:g,l?f[j>>2]|0:j,p)|0,(q|0)!=0):0){if((q|0)<0)break}else r=4;if((r|0)==4?o>>>0<m>>>0:0)break;q=o>>>0<m>>>0?o:m;if((q|0)!=0?(m=Vk(l?f[j>>2]|0:j,n?f[g>>2]|0:g,q)|0,(m|0)!=0):0){if((m|0)>=0)r=37}else r=21;if((r|0)==21?!k:0)r=37;if((r|0)==37){f[d>>2]=c;f[e>>2]=c;s=e;return s|0}k=f[i+4>>2]|0;m=(k|0)==0;if(m){q=i+8|0;j=f[q>>2]|0;if((f[j>>2]|0)==(i|0))t=j;else{j=q;do{q=f[j>>2]|0;j=q+8|0;l=f[j>>2]|0}while((f[l>>2]|0)!=(q|0));t=l}}else{j=k;while(1){l=f[j>>2]|0;if(!l)break;else j=l}t=j}do if((t|0)!=(h|0)){k=t+16|0;l=b[k+11>>0]|0;q=l<<24>>24<0;p=q?f[t+20>>2]|0:l&255;l=p>>>0<o>>>0?p:o;if((l|0)!=0?(u=Vk(n?f[g>>2]|0:g,q?f[k>>2]|0:k,l)|0,(u|0)!=0):0){if((u|0)<0)break}else r=31;if((r|0)==31?o>>>0<p>>>0:0)break;s=yg(a,d,g)|0;return s|0}while(0);if(m){f[d>>2]=c;s=i+4|0;return s|0}else{f[d>>2]=t;s=t;return s|0}}while(0);t=f[i>>2]|0;do if((f[a>>2]|0)==(i|0))v=c;else{if(!t){h=i;while(1){e=f[h+8>>2]|0;if((f[e>>2]|0)==(h|0))h=e;else{w=e;break}}}else{h=t;while(1){m=f[h+4>>2]|0;if(!m){w=h;break}else h=m}}h=w;m=w+16|0;e=b[g+11>>0]|0;o=e<<24>>24<0;n=o?f[g+4>>2]|0:e&255;e=b[m+11>>0]|0;j=e<<24>>24<0;p=j?f[w+20>>2]|0:e&255;e=n>>>0<p>>>0?n:p;if((e|0)!=0?(u=Vk(j?f[m>>2]|0:m,o?f[g>>2]|0:g,e)|0,(u|0)!=0):0){if((u|0)<0){v=h;break}}else r=13;if((r|0)==13?p>>>0<n>>>0:0){v=h;break}s=yg(a,d,g)|0;return s|0}while(0);if(!t){f[d>>2]=i;s=i;return s|0}else{f[d>>2]=v;s=v+4|0;return s|0}return 0}function Ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=a;h=b;i=h;j=c;k=d;l=k;if(!i){m=(e|0)!=0;if(!l){if(m){f[e>>2]=(g>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (I=n,o)|0}else{if(!m){n=0;o=0;return (I=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;n=0;o=0;return (I=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(_(l|0)|0)-(_(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if(!e){n=0;o=0;return (I=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (I=n,o)|0}r=j-1|0;if(r&j|0){s=(_(j|0)|0)+33-(_(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<<p|g>>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(z>>>0))&y|g<<p&s-33>>31;break}if(e|0){f[e>>2]=r&g;f[e+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (I=n,o)|0}else{r=vm(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (I=n,o)|0}}else{if(m){if(e|0){f[e>>2]=(i>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (I=n,o)|0}if(!g){if(e|0){f[e>>2]=0;f[e+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (I=n,o)|0}r=l-1|0;if(!(r&l)){if(e|0){f[e>>2]=a|0;f[e+4>>2]=r&i|b&0}n=0;o=i>>>((vm(l|0)|0)>>>0);return (I=n,o)|0}r=(_(l|0)|0)-(_(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if(!e){n=0;o=0;return (I=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (I=n,o)|0}while(0);if(!t){B=x;C=w;D=v;E=u;F=0;G=0}else{b=c|0|0;c=k|d&0;d=Vn(b|0,c|0,-1,-1)|0;k=I;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Xn(d|0,k|0,g|0,a|0)|0;i=I;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Xn(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&c|0)|0;w=I;u=u-1|0}while((u|0)!=0);B=h;C=x;D=w;E=v;F=0;G=t}t=C;C=0;if(e|0){f[e>>2]=E;f[e+4>>2]=D}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|F;o=(t<<1|0>>>31)&-2|G;return (I=n,o)|0}function Md(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=u;u=u+16|0;h=g;f[c+48>>2]=d;f[c+44>>2]=e;e=f[c+8>>2]|0;d=c+12|0;i=f[d>>2]|0;if((i|0)!=(e|0)){j=i;do{i=j+-4|0;f[d>>2]=i;k=f[i>>2]|0;f[i>>2]=0;if(k|0)Va[f[(f[k>>2]|0)+4>>2]&127](k);j=f[d>>2]|0}while((j|0)!=(e|0))}e=f[c+20>>2]|0;j=c+24|0;d=f[j>>2]|0;if((d|0)!=(e|0))f[j>>2]=d+(~((d+-4-e|0)>>>2)<<2);e=f[c+32>>2]|0;d=c+36|0;j=f[d>>2]|0;if((j|0)!=(e|0))f[d>>2]=j+(~((j+-4-e|0)>>>2)<<2);if(!(f[c+4>>2]|0)){e=ln(32)|0;f[h>>2]=e;f[h+8>>2]=-2147483616;f[h+4>>2]=23;l=e;m=15706;n=l+23|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[e+23>>0]=0;f[a>>2]=-1;pj(a+4|0,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}Ud(a,c);if(f[a>>2]|0){u=g;return}e=a+4|0;j=e+11|0;if((b[j>>0]|0)<0)Oq(f[e>>2]|0);Wi(a,c);if(f[a>>2]|0){u=g;return}if((b[j>>0]|0)<0)Oq(f[e>>2]|0);if(!(Qa[f[(f[c>>2]|0)+16>>2]&127](c)|0)){j=ln(32)|0;f[h>>2]=j;f[h+8>>2]=-2147483616;f[h+4>>2]=29;l=j;m=15730;n=l+29|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+29>>0]=0;f[a>>2]=-1;pj(e,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}if(!(Qa[f[(f[c>>2]|0)+20>>2]&127](c)|0)){j=ln(32)|0;f[h>>2]=j;f[h+8>>2]=-2147483616;f[h+4>>2]=31;l=j;m=15760;n=l+31|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+31>>0]=0;f[a>>2]=-1;pj(e,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}if(!(Qa[f[(f[c>>2]|0)+24>>2]&127](c)|0)){j=ln(32)|0;f[h>>2]=j;f[h+8>>2]=-2147483616;f[h+4>>2]=31;l=j;m=15792;n=l+31|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+31>>0]=0;f[a>>2]=-1;pj(e,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}if(Qa[f[(f[c>>2]|0)+28>>2]&127](c)|0){f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=g;return}c=ln(48)|0;f[h>>2]=c;f[h+8>>2]=-2147483600;f[h+4>>2]=34;l=c;m=15824;n=l+34|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[c+34>>0]=0;f[a>>2]=-1;pj(e,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}function Nd(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;c=u;u=u+32|0;d=c+4|0;e=c;g=c+16|0;h=a+48|0;i=f[h>>2]|0;j=ln(32)|0;f[d>>2]=j;f[d+8>>2]=-2147483616;f[d+4>>2]=20;k=j;l=14538;m=k+20|0;do{b[k>>0]=b[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));b[j+20>>0]=0;j=Fk(i+24|0,d)|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);i=f[h>>2]|0;n=ln(32)|0;f[d>>2]=n;f[d+8>>2]=-2147483616;f[d+4>>2]=22;k=n;l=14559;m=k+22|0;do{b[k>>0]=b[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));b[n+22>>0]=0;n=Fk(i+24|0,d)|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);i=a+56|0;o=f[i>>2]|0;f[i>>2]=0;if(o|0)Va[f[(f[o>>2]|0)+4>>2]&127](o);o=f[a+52>>2]|0;p=(((f[o+100>>2]|0)-(f[o+96>>2]|0)|0)/12|0)>>>0<1e3;o=f[h>>2]|0;q=ln(32)|0;f[d>>2]=q;f[d+8>>2]=-2147483616;f[d+4>>2]=18;k=q;l=14582;m=k+18|0;do{b[k>>0]=b[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));b[q+18>>0]=0;q=Hk(o,d,-1)|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);switch(q|0){case -1:{if(j?p|((mi(f[h>>2]|0)|0)>4|n^1):0)r=13;else r=17;break}case 0:{if(j)r=13;else r=21;break}case 2:{r=17;break}default:r=21}if((r|0)==13){j=f[a+44>>2]|0;b[g>>0]=0;n=j+16|0;h=f[n+4>>2]|0;if(!((h|0)>0|(h|0)==0&(f[n>>2]|0)>>>0>0)){f[e>>2]=f[j+4>>2];f[d>>2]=f[e>>2];Me(j,d,g,g+1|0)|0}j=ln(296)|0;_i(j);n=f[i>>2]|0;f[i>>2]=j;if(!n)s=j;else{Va[f[(f[n>>2]|0)+4>>2]&127](n);r=21}}else if((r|0)==17){n=f[a+44>>2]|0;b[g>>0]=2;j=n+16|0;h=f[j+4>>2]|0;if(!((h|0)>0|(h|0)==0&(f[j>>2]|0)>>>0>0)){f[e>>2]=f[n+4>>2];f[d>>2]=f[e>>2];Me(n,d,g,g+1|0)|0}g=ln(360)|0;xi(g);d=f[i>>2]|0;f[i>>2]=g;if(!d)s=g;else{Va[f[(f[d>>2]|0)+4>>2]&127](d);r=21}}if((r|0)==21){r=f[i>>2]|0;if(!r){t=0;u=c;return t|0}else s=r}t=Ra[f[(f[s>>2]|0)+8>>2]&127](s,a)|0;u=c;return t|0}function Od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=b+12|0;g=f[e>>2]|0;h=c+4|0;i=(f[h>>2]|0)-g|0;j=c;f[j>>2]=(f[c>>2]|0)-g;f[j+4>>2]=i;i=(f[d>>2]|0)-g|0;j=d+4|0;k=(f[j>>2]|0)-g|0;g=d;f[g>>2]=i;f[g+4>>2]=k;g=f[e>>2]|0;if((((k|0)>-1?k:0-k|0)+((i|0)>-1?i:0-i|0)|0)>(g|0)){l=f[c>>2]|0;m=f[h>>2]|0;if((l|0)>-1)if((m|0)<=-1)if((l|0)<1){n=-1;o=-1}else p=6;else{n=1;o=1}else if((m|0)<1){n=-1;o=-1}else p=6;if((p|0)==6){n=(l|0)>0?1:-1;o=(m|0)>0?1:-1}q=X(g,n)|0;r=X(g,o)|0;g=(l<<1)-q|0;f[c>>2]=g;l=(m<<1)-r|0;f[h>>2]=l;if((X(n,o)|0)>-1){o=0-l|0;f[c>>2]=o;s=0-g|0;t=o}else{f[c>>2]=l;s=g;t=l}f[c>>2]=(t+q|0)/2|0;f[h>>2]=(s+r|0)/2|0;r=f[d>>2]|0;s=f[j>>2]|0;if((r|0)>-1)if((s|0)<=-1)if((r|0)<1){u=-1;v=-1}else p=14;else{u=1;v=1}else if((s|0)<1){u=-1;v=-1}else p=14;if((p|0)==14){u=(r|0)>0?1:-1;v=(s|0)>0?1:-1}q=f[e>>2]|0;e=X(q,u)|0;t=X(q,v)|0;q=(r<<1)-e|0;f[d>>2]=q;r=(s<<1)-t|0;f[j>>2]=r;if((X(u,v)|0)>-1){v=0-r|0;f[d>>2]=v;w=0-q|0;x=v}else{f[d>>2]=r;w=q;x=r}r=(x+e|0)/2|0;f[d>>2]=r;e=(w+t|0)/2|0;f[j>>2]=e;y=r;z=e}else{y=i;z=k}if(!y)if(!z){A=y;B=z}else p=22;else if((y|0)<0&(z|0)<1){A=y;B=z}else p=22;if((p|0)==22){if(!y)C=(z|0)==0?0:(z|0)>0?3:1;else C=(y|0)>0?(z>>31)+2|0:(z|0)<1?0:3;z=f[c>>2]|0;y=f[h>>2]|0;switch(C|0){case 1:{C=c;f[C>>2]=y;f[C+4>>2]=0-z;D=f[j>>2]|0;E=0-(f[d>>2]|0)|0;break}case 2:{C=c;f[C>>2]=0-z;f[C+4>>2]=0-y;D=0-(f[d>>2]|0)|0;E=0-(f[j>>2]|0)|0;break}case 3:{C=c;f[C>>2]=0-y;f[C+4>>2]=z;D=0-(f[j>>2]|0)|0;E=f[d>>2]|0;break}default:{C=c;f[C>>2]=z;f[C+4>>2]=y;D=f[d>>2]|0;E=f[j>>2]|0}}j=d;f[j>>2]=D;f[j+4>>2]=E;A=D;B=E}E=(f[c>>2]|0)-A|0;f[a>>2]=E;A=(f[h>>2]|0)-B|0;B=a+4|0;f[B>>2]=A;if((E|0)<0)F=(f[b+4>>2]|0)+E|0;else F=E;f[a>>2]=F;if((A|0)>=0){G=A;f[B>>2]=G;return}G=(f[b+4>>2]|0)+A|0;f[B>>2]=G;return}function Pd(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;c=a+4|0;if(!b){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[c>>2]=0;return}if(b>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(b<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;g=f[c>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=b+-1|0;i=(h&b|0)==0;if(!i)if(e>>>0<b>>>0)j=e;else j=(e>>>0)%(b>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=c;c=f[g>>2]|0;if(!c)return;else{k=j;l=g;m=c;n=g}a:while(1){b:do if(i){g=l;c=m;j=n;while(1){e=c;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0))break;p=(f[a>>2]|0)+(o<<2)|0;if(!(f[p>>2]|0)){q=e;r=j;s=o;t=p;break b}p=e+8|0;u=e;while(1){v=f[u>>2]|0;if(!v)break;if((d[p>>1]|0)==(d[v+8>>1]|0))u=v;else break}f[j>>2]=v;f[u>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;p=f[g>>2]|0;if(!p){w=37;break a}else e=p}c=f[e>>2]|0;if(!c){w=37;break a}else{g=e;j=e}}}else{j=l;g=m;c=n;while(1){p=g;while(1){x=f[p+4>>2]|0;if(x>>>0<b>>>0)y=x;else y=(x>>>0)%(b>>>0)|0;if((y|0)==(k|0))break;x=(f[a>>2]|0)+(y<<2)|0;if(!(f[x>>2]|0)){q=p;r=c;s=y;t=x;break b}x=p+8|0;z=p;while(1){A=f[z>>2]|0;if(!A)break;if((d[x>>1]|0)==(d[A+8>>1]|0))z=A;else break}f[c>>2]=A;f[z>>2]=f[f[(f[a>>2]|0)+(y<<2)>>2]>>2];f[f[(f[a>>2]|0)+(y<<2)>>2]>>2]=p;x=f[j>>2]|0;if(!x){w=37;break a}else p=x}g=f[p>>2]|0;if(!g){w=37;break a}else{j=p;c=p}}}while(0);f[t>>2]=r;m=f[q>>2]|0;if(!m){w=37;break}else{k=s;l=q;n=q}}if((w|0)==37)return}function Qd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0<c>>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){b:do if(i){g=l;d=m;j=n;while(1){e=d;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0))break;p=(f[a>>2]|0)+(o<<2)|0;if(!(f[p>>2]|0)){q=e;r=j;s=o;t=p;break b}p=e+8|0;u=e;while(1){v=f[u>>2]|0;if(!v)break;if((b[p>>0]|0)==(b[v+8>>0]|0))u=v;else break}f[j>>2]=v;f[u>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;p=f[g>>2]|0;if(!p){w=37;break a}else e=p}d=f[e>>2]|0;if(!d){w=37;break a}else{g=e;j=e}}}else{j=l;g=m;d=n;while(1){p=g;while(1){x=f[p+4>>2]|0;if(x>>>0<c>>>0)y=x;else y=(x>>>0)%(c>>>0)|0;if((y|0)==(k|0))break;x=(f[a>>2]|0)+(y<<2)|0;if(!(f[x>>2]|0)){q=p;r=d;s=y;t=x;break b}x=p+8|0;z=p;while(1){A=f[z>>2]|0;if(!A)break;if((b[x>>0]|0)==(b[A+8>>0]|0))z=A;else break}f[d>>2]=A;f[z>>2]=f[f[(f[a>>2]|0)+(y<<2)>>2]>>2];f[f[(f[a>>2]|0)+(y<<2)>>2]>>2]=p;x=f[j>>2]|0;if(!x){w=37;break a}else p=x}g=f[p>>2]|0;if(!g){w=37;break a}else{j=p;d=p}}}while(0);f[t>>2]=r;m=f[q>>2]|0;if(!m){w=37;break}else{k=s;l=q;n=q}}if((w|0)==37)return}function Rd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;g=f[c>>2]|0;c=f[b>>2]|0;h=g-c|0;i=a+8|0;j=f[i>>2]|0;if(h>>>0<64){if(j>>>0<=1){k=0;return k|0}l=f[e>>2]|0;m=0;n=1;while(1){o=(f[l+(m<<2)>>2]|0)>>>0>(f[l+(n<<2)>>2]|0)>>>0?n:m;n=n+1|0;if(n>>>0>=j>>>0){k=o;break}else m=o}return k|0}if(j){j=f[a+1128>>2]|0;m=f[e>>2]|0;e=f[a+1140>>2]|0;n=f[d>>2]|0;d=b+4|0;l=b+8|0;if((g|0)==(c|0)){b=0;do{o=j+(b<<2)|0;f[o>>2]=0;p=(f[a>>2]|0)-(f[m+(b<<2)>>2]|0)|0;f[e+(b<<2)>>2]=p;if(p|0){p=f[o>>2]|0;q=h-p|0;f[o>>2]=q>>>0<p>>>0?p:q}b=b+1|0;q=f[i>>2]|0}while(b>>>0<q>>>0);r=q}else{b=0;do{q=j+(b<<2)|0;f[q>>2]=0;p=(f[a>>2]|0)-(f[m+(b<<2)>>2]|0)|0;f[e+(b<<2)>>2]=p;if(p|0){o=(f[n+(b<<2)>>2]|0)+(1<<p+-1)|0;p=f[l>>2]|0;s=f[(f[d>>2]|0)+24>>2]|0;t=c;u=f[q>>2]|0;do{v=s+((X(t,p)|0)<<2)+(b<<2)|0;u=u+((f[v>>2]|0)>>>0<o>>>0&1)|0;f[q>>2]=u;t=t+1|0}while((t|0)!=(g|0));t=h-u|0;f[q>>2]=t>>>0<u>>>0?u:t}b=b+1|0;t=f[i>>2]|0}while(b>>>0<t>>>0);r=t}if(r){b=f[a+1140>>2]|0;i=a+1128|0;h=0;g=0;c=0;while(1){if(!(f[b+(g<<2)>>2]|0)){w=h;x=c}else{d=f[(f[i>>2]|0)+(g<<2)>>2]|0;l=h>>>0<d>>>0;w=l?d:h;x=l?g:c}g=g+1|0;if(g>>>0>=r>>>0){y=x;break}else{h=w;c=x}}}else y=0}else y=0;x=a+1088|0;c=a+1104|0;w=f[c>>2]|0;h=32-w|0;if((h|0)<4){r=y&15;g=4-h|0;f[c>>2]=g;h=a+1100|0;i=f[h>>2]|r>>>g;f[h>>2]=i;g=a+1092|0;b=f[g>>2]|0;if((b|0)==(f[a+1096>>2]|0))Ri(x,h);else{f[b>>2]=i;f[g>>2]=b+4}f[h>>2]=r<<32-(f[c>>2]|0);k=y;return k|0}r=a+1100|0;h=f[r>>2]|y<<28>>>w;f[r>>2]=h;b=w+4|0;f[c>>2]=b;if((b|0)!=32){k=y;return k|0}b=a+1092|0;w=f[b>>2]|0;if((w|0)==(f[a+1096>>2]|0))Ri(x,r);else{f[w>>2]=h;f[b>>2]=w+4}f[r>>2]=0;f[c>>2]=0;k=y;return k|0}function Sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Oq(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}d=ln(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Oq(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0<b>>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;else{j=i;k=e;l=c;m=e}a:while(1){b:do if(h){e=k;c=l;i=m;while(1){d=c;while(1){n=f[d+4>>2]&g;if((n|0)==(j|0))break;o=(f[a>>2]|0)+(n<<2)|0;if(!(f[o>>2]|0)){p=d;q=i;r=n;s=o;break b}o=d+8|0;t=d;while(1){u=f[t>>2]|0;if(!u)break;if((f[o>>2]|0)==(f[u+8>>2]|0))t=u;else break}f[i>>2]=u;f[t>>2]=f[f[(f[a>>2]|0)+(n<<2)>>2]>>2];f[f[(f[a>>2]|0)+(n<<2)>>2]>>2]=d;o=f[e>>2]|0;if(!o){v=37;break a}else d=o}c=f[d>>2]|0;if(!c){v=37;break a}else{e=d;i=d}}}else{i=k;e=l;c=m;while(1){o=e;while(1){w=f[o+4>>2]|0;if(w>>>0<b>>>0)x=w;else x=(w>>>0)%(b>>>0)|0;if((x|0)==(j|0))break;w=(f[a>>2]|0)+(x<<2)|0;if(!(f[w>>2]|0)){p=o;q=c;r=x;s=w;break b}w=o+8|0;y=o;while(1){z=f[y>>2]|0;if(!z)break;if((f[w>>2]|0)==(f[z+8>>2]|0))y=z;else break}f[c>>2]=z;f[y>>2]=f[f[(f[a>>2]|0)+(x<<2)>>2]>>2];f[f[(f[a>>2]|0)+(x<<2)>>2]>>2]=o;w=f[i>>2]|0;if(!w){v=37;break a}else o=w}e=f[o>>2]|0;if(!e){v=37;break a}else{i=o;c=o}}}while(0);f[s>>2]=q;l=f[p>>2]|0;if(!l){v=37;break}else{j=r;k=p;m=p}}if((v|0)==37)return}function Td(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0<c>>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;e=a+24|0;k=j;j=g;l=d;d=g;a:while(1){g=j;m=l;n=d;b:while(1){o=m;while(1){p=f[o+4>>2]|0;if(!i)if(p>>>0<c>>>0)q=p;else q=(p>>>0)%(c>>>0)|0;else q=p&h;if((q|0)==(k|0))break;r=(f[a>>2]|0)+(q<<2)|0;if(!(f[r>>2]|0))break b;p=f[o>>2]|0;c:do if(!p)s=o;else{t=f[o+8>>2]|0;u=f[e>>2]|0;v=f[u+8>>2]|0;w=(f[u+12>>2]|0)-v|0;u=v;v=w>>>2;if((w|0)>0){x=o;y=p}else{w=p;while(1){z=f[w>>2]|0;if(!z){s=w;break c}else w=z}}while(1){w=f[y+8>>2]|0;z=0;do{A=f[u+(z<<2)>>2]|0;if(!(b[A+84>>0]|0)){B=f[A+68>>2]|0;C=f[B+(w<<2)>>2]|0;D=f[B+(t<<2)>>2]|0}else{C=w;D=t}z=z+1|0;if((D|0)!=(C|0)){s=x;break c}}while((z|0)<(v|0));z=f[y>>2]|0;if(!z){s=y;break}else{w=y;y=z;x=w}}}while(0);f[n>>2]=f[s>>2];f[s>>2]=f[f[(f[a>>2]|0)+(q<<2)>>2]>>2];f[f[(f[a>>2]|0)+(q<<2)>>2]>>2]=o;p=f[g>>2]|0;if(!p){E=38;break a}else o=p}m=f[o>>2]|0;if(!m){E=38;break a}else{g=o;n=o}}f[r>>2]=n;l=f[o>>2]|0;if(!l){E=38;break}else{k=q;j=o;d=o}}if((E|0)==38)return}function Ud(a,c){a=a|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;e=u;u=u+16|0;g=e+4|0;h=e;i=e+12|0;j=e+11|0;k=e+10|0;l=e+8|0;m=c+44|0;n=f[m>>2]|0;o=n+16|0;p=f[o+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0)){f[h>>2]=f[n+4>>2];f[g>>2]=f[h>>2];Me(n,g,15886,15891)|0}n=Qa[f[(f[c>>2]|0)+8>>2]&127](c)|0;b[i>>0]=n;b[j>>0]=2;b[k>>0]=(n&255|0)==0?3:2;n=f[m>>2]|0;o=n+16|0;p=f[o+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0)){f[h>>2]=f[n+4>>2];f[g>>2]=f[h>>2];Me(n,g,j,j+1|0)|0;j=f[m>>2]|0;o=j+16|0;p=f[o+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0)){f[h>>2]=f[j+4>>2];f[g>>2]=f[h>>2];Me(j,g,k,k+1|0)|0;k=f[m>>2]|0;o=k+16|0;p=f[o+4>>2]|0;if((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0){q=h;r=k}else{f[h>>2]=f[k+4>>2];f[g>>2]=f[h>>2];Me(k,g,i,i+1|0)|0;q=h;r=f[m>>2]|0}}else{s=h;t=j;v=6}}else{s=h;t=n;v=6}if((v|0)==6){q=h;r=t}t=Qa[f[(f[c>>2]|0)+12>>2]&127](c)|0;b[l>>0]=t;t=r+16|0;q=f[t+4>>2]|0;if(!((q|0)>0|(q|0)==0&(f[t>>2]|0)>>>0>0)){f[h>>2]=f[r+4>>2];f[g>>2]=f[h>>2];Me(r,g,l,l+1|0)|0}d[l>>1]=(f[(f[c+4>>2]|0)+4>>2]|0)==0?0:-32768;c=f[m>>2]|0;m=c+16|0;r=f[m+4>>2]|0;if((r|0)>0|(r|0)==0&(f[m>>2]|0)>>>0>0){f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=e;return}f[h>>2]=f[c+4>>2];f[g>>2]=f[h>>2];Me(c,g,l,l+2|0)|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=e;return}function Vd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;e=u;u=u+176|0;g=e+136|0;h=e+104|0;i=e;j=e+72|0;k=ln(88)|0;l=f[c+8>>2]|0;f[k+4>>2]=0;f[k>>2]=3612;m=k+12|0;f[m>>2]=3636;n=k+64|0;f[n>>2]=0;f[k+68>>2]=0;f[k+72>>2]=0;o=k+16|0;p=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));f[k+76>>2]=l;f[k+80>>2]=d;q=k+84|0;f[q>>2]=0;r=k;f[h>>2]=3636;s=h+4|0;t=s+4|0;f[t>>2]=0;f[t+4>>2]=0;f[t+8>>2]=0;f[t+12>>2]=0;f[t+16>>2]=0;f[t+20>>2]=0;t=f[c+12>>2]|0;v=i+4|0;f[v>>2]=3636;w=i+56|0;f[w>>2]=0;x=i+60|0;f[x>>2]=0;f[i+64>>2]=0;o=i+8|0;p=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));o=t;f[s>>2]=o;s=((f[o+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0;b[g>>0]=0;qh(h+8|0,s,g);Va[f[(f[h>>2]|0)+8>>2]&127](h);Ff(j,h);Ff(g,j);f[i>>2]=f[g+4>>2];s=i+4|0;fg(s,g)|0;f[g>>2]=3636;o=f[g+20>>2]|0;if(o|0)Oq(o);o=f[g+8>>2]|0;if(o|0)Oq(o);f[i+36>>2]=t;f[i+40>>2]=d;f[i+44>>2]=l;f[i+48>>2]=k;f[j>>2]=3636;l=f[j+20>>2]|0;if(l|0)Oq(l);l=f[j+8>>2]|0;if(l|0)Oq(l);f[q>>2]=c+72;f[k+8>>2]=f[i>>2];fg(m,s)|0;s=k+44|0;k=i+36|0;f[s>>2]=f[k>>2];f[s+4>>2]=f[k+4>>2];f[s+8>>2]=f[k+8>>2];f[s+12>>2]=f[k+12>>2];b[s+16>>0]=b[k+16>>0]|0;ng(n,f[w>>2]|0,f[x>>2]|0);f[a>>2]=r;r=f[w>>2]|0;if(r|0){w=f[x>>2]|0;if((w|0)!=(r|0))f[x>>2]=w+(~((w+-4-r|0)>>>2)<<2);Oq(r)}f[v>>2]=3636;v=f[i+24>>2]|0;if(v|0)Oq(v);v=f[i+12>>2]|0;if(v|0)Oq(v);f[h>>2]=3636;v=f[h+20>>2]|0;if(v|0)Oq(v);v=f[h+8>>2]|0;if(!v){u=e;return}Oq(v);u=e;return}function Wd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=Oa,x=0,y=Oa,z=Oa,A=Oa;e=u;u=u+16|0;g=e;h=a+4|0;if((f[h>>2]|0)!=-1){i=0;u=e;return i|0}f[h>>2]=d;d=b[c+24>>0]|0;h=d<<24>>24;j=a+20|0;n[j>>2]=$(0.0);f[g>>2]=0;k=g+4|0;f[k>>2]=0;f[g+8>>2]=0;do if(d<<24>>24)if(d<<24>>24<0)aq(g);else{l=h<<2;m=ln(l)|0;f[g>>2]=m;o=m+(h<<2)|0;f[g+8>>2]=o;sj(m|0,0,l|0)|0;l=m+(h<<2)|0;f[k>>2]=l;p=m;q=l;r=o;break}else{p=0;q=0;r=0}while(0);k=a+8|0;g=f[k>>2]|0;o=a+12|0;if(!g)s=a+16|0;else{l=f[o>>2]|0;if((l|0)!=(g|0))f[o>>2]=l+(~((l+-4-g|0)>>>2)<<2);Oq(g);g=a+16|0;f[g>>2]=0;f[o>>2]=0;f[k>>2]=0;s=g}f[k>>2]=p;f[o>>2]=q;f[s>>2]=r;r=h>>>0>1073741823?-1:h<<2;s=Lq(r)|0;q=Lq(r)|0;r=c+48|0;o=f[r>>2]|0;g=c+40|0;a=f[g>>2]|0;l=f[c>>2]|0;kh(q|0,(f[l>>2]|0)+o|0,a|0)|0;kh(p|0,(f[l>>2]|0)+o|0,a|0)|0;a=r;r=f[a>>2]|0;o=f[a+4>>2]|0;a=g;g=f[a>>2]|0;l=f[a+4>>2]|0;a=f[c>>2]|0;kh(s|0,(f[a>>2]|0)+r|0,g|0)|0;p=f[c+80>>2]|0;a:do if(p>>>0>1){if(d<<24>>24<=0){c=1;while(1){m=un(g|0,l|0,c|0,0)|0;t=Vn(m|0,I|0,r|0,o|0)|0;kh(q|0,(f[a>>2]|0)+t|0,g|0)|0;c=c+1|0;if(c>>>0>=p>>>0)break a}}c=f[k>>2]|0;t=1;do{m=un(g|0,l|0,t|0,0)|0;v=Vn(m|0,I|0,r|0,o|0)|0;kh(q|0,(f[a>>2]|0)+v|0,g|0)|0;v=0;do{m=c+(v<<2)|0;w=$(n[m>>2]);x=q+(v<<2)|0;y=$(n[x>>2]);if(w>y){n[m>>2]=y;z=$(n[x>>2])}else z=y;x=s+(v<<2)|0;if($(n[x>>2])<z)n[x>>2]=z;v=v+1|0}while((v|0)!=(h|0));t=t+1|0}while(t>>>0<p>>>0)}while(0);if(d<<24>>24>0){d=f[k>>2]|0;k=0;z=$(n[j>>2]);while(1){y=$(n[s+(k<<2)>>2]);w=$(y-$(n[d+(k<<2)>>2]));if(w>z){n[j>>2]=w;A=w}else A=z;k=k+1|0;if((k|0)==(h|0))break;else z=A}}Mq(q);Mq(s);i=1;u=e;return i|0}function Xd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=a+8|0;Mh(g,b,d,e);h=d-e|0;if((h|0)>0){d=0-e|0;i=a+16|0;j=a+32|0;k=a+12|0;l=a+28|0;m=a+20|0;n=a+24|0;o=h;h=f[g>>2]|0;while(1){p=b+(o<<2)|0;q=c+(o<<2)|0;if((h|0)>0){r=0;s=p+(d<<2)|0;t=h;while(1){if((t|0)>0){u=0;do{v=f[s+(u<<2)>>2]|0;w=f[i>>2]|0;if((v|0)>(w|0)){x=f[j>>2]|0;f[x+(u<<2)>>2]=w;y=x}else{x=f[k>>2]|0;w=f[j>>2]|0;f[w+(u<<2)>>2]=(v|0)<(x|0)?x:v;y=w}u=u+1|0}while((u|0)<(f[g>>2]|0));z=y}else z=f[j>>2]|0;u=(f[p+(r<<2)>>2]|0)-(f[z+(r<<2)>>2]|0)|0;w=q+(r<<2)|0;f[w>>2]=u;if((u|0)>=(f[l>>2]|0)){if((u|0)>(f[n>>2]|0)){A=u-(f[m>>2]|0)|0;B=31}}else{A=(f[m>>2]|0)+u|0;B=31}if((B|0)==31){B=0;f[w>>2]=A}r=r+1|0;w=f[g>>2]|0;if((r|0)>=(w|0)){C=w;break}else{s=z;t=w}}}else C=h;o=o-e|0;if((o|0)<=0){D=C;break}else h=C}}else D=f[g>>2]|0;C=e>>>0>1073741823?-1:e<<2;e=Lq(C)|0;sj(e|0,0,C|0)|0;if((D|0)<=0){Mq(e);return 1}C=a+16|0;h=a+32|0;o=a+12|0;z=a+28|0;A=a+20|0;m=a+24|0;a=0;n=e;l=D;while(1){if((l|0)>0){D=0;do{j=f[n+(D<<2)>>2]|0;y=f[C>>2]|0;if((j|0)>(y|0)){k=f[h>>2]|0;f[k+(D<<2)>>2]=y;E=k}else{k=f[o>>2]|0;y=f[h>>2]|0;f[y+(D<<2)>>2]=(j|0)<(k|0)?k:j;E=y}D=D+1|0}while((D|0)<(f[g>>2]|0));F=E}else F=f[h>>2]|0;D=(f[b+(a<<2)>>2]|0)-(f[F+(a<<2)>>2]|0)|0;y=c+(a<<2)|0;f[y>>2]=D;if((D|0)>=(f[z>>2]|0)){if((D|0)>(f[m>>2]|0)){G=D-(f[A>>2]|0)|0;B=16}}else{G=(f[A>>2]|0)+D|0;B=16}if((B|0)==16){B=0;f[y>>2]=G}a=a+1|0;l=f[g>>2]|0;if((a|0)>=(l|0))break;else n=F}Mq(e);return 1}function Yd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;e=f[a>>2]|0;g=e;h=(f[b>>2]|0)-g|0;b=e+(h>>2<<2)|0;i=f[c>>2]|0;c=f[d>>2]|0;d=c-i|0;j=d>>2;k=i;l=c;if((d|0)<=0){m=b;return m|0}d=a+8|0;n=f[d>>2]|0;o=a+4|0;p=f[o>>2]|0;q=p;if((j|0)<=(n-q>>2|0)){r=b;s=q-r|0;t=s>>2;if((j|0)>(t|0)){u=k+(t<<2)|0;t=u;if((u|0)==(l|0))v=p;else{w=l+-4-t|0;x=u;u=p;while(1){f[u>>2]=f[x>>2];x=x+4|0;if((x|0)==(l|0))break;else u=u+4|0}u=p+((w>>>2)+1<<2)|0;f[o>>2]=u;v=u}if((s|0)>0){y=t;z=v}else{m=b;return m|0}}else{y=c;z=p}c=z-(b+(j<<2))>>2;v=b+(c<<2)|0;if(v>>>0<p>>>0){t=(p+(0-c<<2)+~r|0)>>>2;r=v;s=z;while(1){f[s>>2]=f[r>>2];r=r+4|0;if(r>>>0>=p>>>0)break;else s=s+4|0}f[o>>2]=z+(t+1<<2)}if(c|0){c=v;v=z;do{c=c+-4|0;v=v+-4|0;f[v>>2]=f[c>>2]}while((c|0)!=(b|0))}c=y;if((k|0)==(c|0)){m=b;return m|0}else{A=b;B=k}while(1){f[A>>2]=f[B>>2];B=B+4|0;if((B|0)==(c|0)){m=b;break}else A=A+4|0}return m|0}A=(q-g>>2)+j|0;if(A>>>0>1073741823)aq(a);j=n-g|0;g=j>>1;n=j>>2>>>0<536870911?(g>>>0<A>>>0?A:g):1073741823;g=b;A=h>>2;do if(n)if(n>>>0>1073741823){j=ra(8)|0;Oo(j,16035);f[j>>2]=7256;va(j|0,1112,110)}else{j=ln(n<<2)|0;C=j;D=j;break}else{C=0;D=0}while(0);j=D+(A<<2)|0;A=D+(n<<2)|0;if((l|0)==(k|0))E=j;else{n=((l+-4-i|0)>>>2)+1|0;i=k;k=j;while(1){f[k>>2]=f[i>>2];i=i+4|0;if((i|0)==(l|0))break;else k=k+4|0}E=j+(n<<2)|0}if((h|0)>0)kh(C|0,e|0,h|0)|0;h=q-g|0;if((h|0)>0){kh(E|0,b|0,h|0)|0;F=E+(h>>>2<<2)|0}else F=E;f[a>>2]=D;f[o>>2]=F;f[d>>2]=A;if(!e){m=j;return m|0}Oq(e);m=j;return m|0}function Zd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;c=u;u=u+48|0;d=c+40|0;e=c+36|0;g=c+32|0;h=c;i=a+60|0;ci(f[i>>2]|0,b)|0;wn(h);tk(h);j=f[a+56>>2]|0;k=f[i>>2]|0;i=k>>>5;l=j+(i<<2)|0;m=k&31;k=(i|0)!=0;a:do if(i|m|0){if(!m){n=1;o=j;p=k;while(1){if(p){q=n;r=0;while(1){s=(f[o>>2]&1<<r|0)!=0;fj(h,q^s^1);if((r|0)==31){t=s;break}else{q=s;r=r+1|0}}}else{r=n;q=0;while(1){s=(f[o>>2]&1<<q|0)!=0;fj(h,r^s^1);if((q|0)==31){t=s;break}else{r=s;q=q+1|0}}}o=o+4|0;if((l|0)==(o|0))break a;else{n=t;p=1}}}if(k){p=1;n=j;while(1){o=p;q=0;while(1){r=o;o=(f[n>>2]&1<<q|0)!=0;fj(h,r^o^1);if((q|0)==31)break;else q=q+1|0}q=n+4|0;if((l|0)==(q|0)){v=o;w=q;break}else{p=o;n=q}}}else{v=1;w=j}n=v;p=0;do{q=n;n=(f[w>>2]&1<<p|0)!=0;fj(h,q^n^1);p=p+1|0}while((p|0)!=(m|0))}while(0);ld(h,b);f[g>>2]=f[a+12>>2];m=b+16|0;w=m;v=f[w>>2]|0;j=f[w+4>>2]|0;if((j|0)>0|(j|0)==0&v>>>0>0){x=j;y=v}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;v=m;x=f[v+4>>2]|0;y=f[v>>2]|0}f[g>>2]=f[a+20>>2];if((x|0)>0|(x|0)==0&y>>>0>0){Fj(h);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;Fj(h);u=c;return 1}function _d(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;switch(b-a>>2|0){case 2:{d=b+-4|0;e=f[d>>2]|0;g=f[a>>2]|0;h=f[c>>2]|0;i=f[h>>2]|0;j=(f[h+4>>2]|0)-i>>3;if(j>>>0<=e>>>0)aq(h);k=i;if(j>>>0<=g>>>0)aq(h);if((f[k+(e<<3)>>2]|0)>>>0>=(f[k+(g<<3)>>2]|0)>>>0){l=1;return l|0}f[a>>2]=e;f[d>>2]=g;l=1;return l|0}case 3:{Vg(a,a+4|0,b+-4|0,c)|0;l=1;return l|0}case 4:{jh(a,a+4|0,a+8|0,b+-4|0,c)|0;l=1;return l|0}case 5:{ig(a,a+4|0,a+8|0,a+12|0,b+-4|0,c)|0;l=1;return l|0}case 1:case 0:{l=1;return l|0}default:{g=a+8|0;Vg(a,a+4|0,g,c)|0;d=a+12|0;a:do if((d|0)!=(b|0)){e=f[c>>2]|0;k=f[e>>2]|0;h=(f[e+4>>2]|0)-k>>3;j=k;k=d;i=0;m=g;b:while(1){n=f[k>>2]|0;o=f[m>>2]|0;if(h>>>0<=n>>>0){p=14;break}if(h>>>0<=o>>>0){p=16;break}q=j+(n<<3)|0;if((f[q>>2]|0)>>>0<(f[j+(o<<3)>>2]|0)>>>0){r=m;s=k;t=o;while(1){f[s>>2]=t;if((r|0)==(a|0)){u=a;break}o=r+-4|0;t=f[o>>2]|0;if(h>>>0<=t>>>0){p=20;break b}if((f[q>>2]|0)>>>0>=(f[j+(t<<3)>>2]|0)>>>0){u=r;break}else{v=r;r=o;s=v}}f[u>>2]=n;s=i+1|0;if((s|0)==8){w=0;x=(k+4|0)==(b|0);break a}else y=s}else y=i;s=k+4|0;if((s|0)==(b|0)){w=1;x=0;break a}else{r=k;k=s;i=y;m=r}}if((p|0)==14)aq(e);else if((p|0)==16)aq(e);else if((p|0)==20)aq(e)}else{w=1;x=0}while(0);l=x|w;return l|0}}return 0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;c=u;u=u+48|0;d=c+40|0;e=c+36|0;g=c+32|0;h=c;i=a+80|0;ci(f[i>>2]|0,b)|0;wn(h);tk(h);j=f[a+76>>2]|0;k=f[i>>2]|0;i=k>>>5;l=j+(i<<2)|0;m=k&31;k=(i|0)!=0;a:do if(i|m|0){if(!m){n=1;o=j;p=k;while(1){if(p){q=n;r=0;while(1){s=(f[o>>2]&1<<r|0)!=0;fj(h,q^s^1);if((r|0)==31){t=s;break}else{q=s;r=r+1|0}}}else{r=n;q=0;while(1){s=(f[o>>2]&1<<q|0)!=0;fj(h,r^s^1);if((q|0)==31){t=s;break}else{r=s;q=q+1|0}}}o=o+4|0;if((l|0)==(o|0))break a;else{n=t;p=1}}}if(k){p=1;n=j;while(1){o=p;q=0;while(1){r=o;o=(f[n>>2]&1<<q|0)!=0;fj(h,r^o^1);if((q|0)==31)break;else q=q+1|0}q=n+4|0;if((l|0)==(q|0)){v=o;w=q;break}else{p=o;n=q}}}else{v=1;w=j}n=v;p=0;do{q=n;n=(f[w>>2]&1<<p|0)!=0;fj(h,q^n^1);p=p+1|0}while((p|0)!=(m|0))}while(0);ld(h,b);f[g>>2]=f[a+12>>2];m=b+16|0;w=m;v=f[w>>2]|0;j=f[w+4>>2]|0;if((j|0)>0|(j|0)==0&v>>>0>0){x=j;y=v}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;v=m;x=f[v+4>>2]|0;y=f[v>>2]|0}f[g>>2]=f[a+16>>2];if((x|0)>0|(x|0)==0&y>>>0>0){Fj(h);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;Fj(h);u=c;return 1}function ae(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=u;u=u+16|0;i=h+4|0;j=h;f[a+72>>2]=e;f[a+64>>2]=g;g=Lq(e>>>0>1073741823?-1:e<<2)|0;k=a+68|0;l=f[k>>2]|0;f[k>>2]=g;if(l|0)Mq(l);l=a+8|0;Mh(l,b,d,e);d=a+56|0;g=f[d>>2]|0;m=f[g+4>>2]|0;n=f[g>>2]|0;o=m-n|0;if((o|0)<=0){u=h;return 1}p=(o>>>2)+-1|0;o=a+16|0;q=a+32|0;r=a+12|0;s=a+28|0;t=a+20|0;v=a+24|0;if(m-n>>2>>>0>p>>>0){w=p;x=n}else{y=g;aq(y)}while(1){f[j>>2]=f[x+(w<<2)>>2];f[i>>2]=f[j>>2];Dc(a,i,b,w);g=X(w,e)|0;n=b+(g<<2)|0;p=c+(g<<2)|0;g=f[l>>2]|0;if((g|0)>0){m=0;z=f[k>>2]|0;A=g;while(1){if((A|0)>0){g=0;do{B=f[z+(g<<2)>>2]|0;C=f[o>>2]|0;if((B|0)>(C|0)){D=f[q>>2]|0;f[D+(g<<2)>>2]=C;E=D}else{D=f[r>>2]|0;C=f[q>>2]|0;f[C+(g<<2)>>2]=(B|0)<(D|0)?D:B;E=C}g=g+1|0}while((g|0)<(f[l>>2]|0));F=E}else F=f[q>>2]|0;g=(f[n+(m<<2)>>2]|0)-(f[F+(m<<2)>>2]|0)|0;C=p+(m<<2)|0;f[C>>2]=g;if((g|0)>=(f[s>>2]|0)){if((g|0)>(f[v>>2]|0)){G=g-(f[t>>2]|0)|0;H=21}}else{G=(f[t>>2]|0)+g|0;H=21}if((H|0)==21){H=0;f[C>>2]=G}m=m+1|0;A=f[l>>2]|0;if((m|0)>=(A|0))break;else z=F}}w=w+-1|0;if((w|0)<=-1){H=5;break}z=f[d>>2]|0;x=f[z>>2]|0;if((f[z+4>>2]|0)-x>>2>>>0<=w>>>0){y=z;H=6;break}}if((H|0)==5){u=h;return 1}else if((H|0)==6)aq(y);return 0}\nfunction $a(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;b=u;u=u+16|0;c=b;do if(a>>>0<245){d=a>>>0<11?16:a+11&-8;e=d>>>3;g=f[4784]|0;h=g>>>e;if(h&3|0){i=(h&1^1)+e|0;j=19176+(i<<1<<2)|0;k=j+8|0;l=f[k>>2]|0;m=l+8|0;n=f[m>>2]|0;if((n|0)==(j|0))f[4784]=g&~(1<<i);else{f[n+12>>2]=j;f[k>>2]=n}n=i<<3;f[l+4>>2]=n|3;i=l+n+4|0;f[i>>2]=f[i>>2]|1;o=m;u=b;return o|0}m=f[4786]|0;if(d>>>0>m>>>0){if(h|0){i=2<<e;n=h<<e&(i|0-i);i=(n&0-n)+-1|0;n=i>>>12&16;e=i>>>n;i=e>>>5&8;h=e>>>i;e=h>>>2&4;l=h>>>e;h=l>>>1&2;k=l>>>h;l=k>>>1&1;j=(i|n|e|h|l)+(k>>>l)|0;l=19176+(j<<1<<2)|0;k=l+8|0;h=f[k>>2]|0;e=h+8|0;n=f[e>>2]|0;if((n|0)==(l|0)){i=g&~(1<<j);f[4784]=i;p=i}else{f[n+12>>2]=l;f[k>>2]=n;p=g}n=j<<3;j=n-d|0;f[h+4>>2]=d|3;k=h+d|0;f[k+4>>2]=j|1;f[h+n>>2]=j;if(m|0){n=f[4789]|0;h=m>>>3;l=19176+(h<<1<<2)|0;i=1<<h;if(!(p&i)){f[4784]=p|i;q=l;r=l+8|0}else{i=l+8|0;q=f[i>>2]|0;r=i}f[r>>2]=n;f[q+12>>2]=n;f[n+8>>2]=q;f[n+12>>2]=l}f[4786]=j;f[4789]=k;o=e;u=b;return o|0}e=f[4785]|0;if(e){k=(e&0-e)+-1|0;j=k>>>12&16;l=k>>>j;k=l>>>5&8;n=l>>>k;l=n>>>2&4;i=n>>>l;n=i>>>1&2;h=i>>>n;i=h>>>1&1;s=f[19440+((k|j|l|n|i)+(h>>>i)<<2)>>2]|0;i=(f[s+4>>2]&-8)-d|0;h=f[s+16+(((f[s+16>>2]|0)==0&1)<<2)>>2]|0;if(!h){t=s;v=i}else{n=s;s=i;i=h;while(1){h=(f[i+4>>2]&-8)-d|0;l=h>>>0<s>>>0;j=l?h:s;h=l?i:n;i=f[i+16+(((f[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){t=h;v=j;break}else{n=h;s=j}}}s=t+d|0;if(s>>>0>t>>>0){n=f[t+24>>2]|0;i=f[t+12>>2]|0;do if((i|0)==(t|0)){j=t+20|0;h=f[j>>2]|0;if(!h){l=t+16|0;k=f[l>>2]|0;if(!k){w=0;break}else{x=k;y=l}}else{x=h;y=j}while(1){j=x+20|0;h=f[j>>2]|0;if(h|0){x=h;y=j;continue}j=x+16|0;h=f[j>>2]|0;if(!h)break;else{x=h;y=j}}f[y>>2]=0;w=x}else{j=f[t+8>>2]|0;f[j+12>>2]=i;f[i+8>>2]=j;w=i}while(0);do if(n|0){i=f[t+28>>2]|0;j=19440+(i<<2)|0;if((t|0)==(f[j>>2]|0)){f[j>>2]=w;if(!w){f[4785]=e&~(1<<i);break}}else{f[n+16+(((f[n+16>>2]|0)!=(t|0)&1)<<2)>>2]=w;if(!w)break}f[w+24>>2]=n;i=f[t+16>>2]|0;if(i|0){f[w+16>>2]=i;f[i+24>>2]=w}i=f[t+20>>2]|0;if(i|0){f[w+20>>2]=i;f[i+24>>2]=w}}while(0);if(v>>>0<16){n=v+d|0;f[t+4>>2]=n|3;e=t+n+4|0;f[e>>2]=f[e>>2]|1}else{f[t+4>>2]=d|3;f[s+4>>2]=v|1;f[s+v>>2]=v;if(m|0){e=f[4789]|0;n=m>>>3;i=19176+(n<<1<<2)|0;j=1<<n;if(!(g&j)){f[4784]=g|j;z=i;A=i+8|0}else{j=i+8|0;z=f[j>>2]|0;A=j}f[A>>2]=e;f[z+12>>2]=e;f[e+8>>2]=z;f[e+12>>2]=i}f[4786]=v;f[4789]=s}o=t+8|0;u=b;return o|0}else B=d}else B=d}else B=d}else if(a>>>0<=4294967231){i=a+11|0;e=i&-8;j=f[4785]|0;if(j){n=0-e|0;h=i>>>8;if(h)if(e>>>0>16777215)C=31;else{i=(h+1048320|0)>>>16&8;l=h<<i;h=(l+520192|0)>>>16&4;k=l<<h;l=(k+245760|0)>>>16&2;D=14-(h|i|l)+(k<<l>>>15)|0;C=e>>>(D+7|0)&1|D<<1}else C=0;D=f[19440+(C<<2)>>2]|0;a:do if(!D){E=0;F=0;G=n;H=57}else{l=0;k=n;i=D;h=e<<((C|0)==31?0:25-(C>>>1)|0);I=0;while(1){J=(f[i+4>>2]&-8)-e|0;if(J>>>0<k>>>0)if(!J){K=0;L=i;M=i;H=61;break a}else{N=i;O=J}else{N=l;O=k}J=f[i+20>>2]|0;i=f[i+16+(h>>>31<<2)>>2]|0;P=(J|0)==0|(J|0)==(i|0)?I:J;J=(i|0)==0;if(J){E=P;F=N;G=O;H=57;break}else{l=N;k=O;h=h<<((J^1)&1);I=P}}}while(0);if((H|0)==57){if((E|0)==0&(F|0)==0){D=2<<C;n=j&(D|0-D);if(!n){B=e;break}D=(n&0-n)+-1|0;n=D>>>12&16;d=D>>>n;D=d>>>5&8;s=d>>>D;d=s>>>2&4;g=s>>>d;s=g>>>1&2;m=g>>>s;g=m>>>1&1;Q=0;R=f[19440+((D|n|d|s|g)+(m>>>g)<<2)>>2]|0}else{Q=F;R=E}if(!R){S=Q;T=G}else{K=G;L=R;M=Q;H=61}}if((H|0)==61)while(1){H=0;g=(f[L+4>>2]&-8)-e|0;m=g>>>0<K>>>0;s=m?g:K;g=m?L:M;L=f[L+16+(((f[L+16>>2]|0)==0&1)<<2)>>2]|0;if(!L){S=g;T=s;break}else{K=s;M=g;H=61}}if((S|0)!=0?T>>>0<((f[4786]|0)-e|0)>>>0:0){g=S+e|0;if(g>>>0<=S>>>0){o=0;u=b;return o|0}s=f[S+24>>2]|0;m=f[S+12>>2]|0;do if((m|0)==(S|0)){d=S+20|0;n=f[d>>2]|0;if(!n){D=S+16|0;I=f[D>>2]|0;if(!I){U=0;break}else{V=I;W=D}}else{V=n;W=d}while(1){d=V+20|0;n=f[d>>2]|0;if(n|0){V=n;W=d;continue}d=V+16|0;n=f[d>>2]|0;if(!n)break;else{V=n;W=d}}f[W>>2]=0;U=V}else{d=f[S+8>>2]|0;f[d+12>>2]=m;f[m+8>>2]=d;U=m}while(0);do if(s){m=f[S+28>>2]|0;d=19440+(m<<2)|0;if((S|0)==(f[d>>2]|0)){f[d>>2]=U;if(!U){d=j&~(1<<m);f[4785]=d;X=d;break}}else{f[s+16+(((f[s+16>>2]|0)!=(S|0)&1)<<2)>>2]=U;if(!U){X=j;break}}f[U+24>>2]=s;d=f[S+16>>2]|0;if(d|0){f[U+16>>2]=d;f[d+24>>2]=U}d=f[S+20>>2]|0;if(d){f[U+20>>2]=d;f[d+24>>2]=U;X=j}else X=j}else X=j;while(0);do if(T>>>0>=16){f[S+4>>2]=e|3;f[g+4>>2]=T|1;f[g+T>>2]=T;j=T>>>3;if(T>>>0<256){s=19176+(j<<1<<2)|0;d=f[4784]|0;m=1<<j;if(!(d&m)){f[4784]=d|m;Y=s;Z=s+8|0}else{m=s+8|0;Y=f[m>>2]|0;Z=m}f[Z>>2]=g;f[Y+12>>2]=g;f[g+8>>2]=Y;f[g+12>>2]=s;break}s=T>>>8;if(s)if(T>>>0>16777215)_=31;else{m=(s+1048320|0)>>>16&8;d=s<<m;s=(d+520192|0)>>>16&4;j=d<<s;d=(j+245760|0)>>>16&2;n=14-(s|m|d)+(j<<d>>>15)|0;_=T>>>(n+7|0)&1|n<<1}else _=0;n=19440+(_<<2)|0;f[g+28>>2]=_;d=g+16|0;f[d+4>>2]=0;f[d>>2]=0;d=1<<_;if(!(X&d)){f[4785]=X|d;f[n>>2]=g;f[g+24>>2]=n;f[g+12>>2]=g;f[g+8>>2]=g;break}d=T<<((_|0)==31?0:25-(_>>>1)|0);j=f[n>>2]|0;while(1){if((f[j+4>>2]&-8|0)==(T|0)){H=97;break}$=j+16+(d>>>31<<2)|0;n=f[$>>2]|0;if(!n){H=96;break}else{d=d<<1;j=n}}if((H|0)==96){f[$>>2]=g;f[g+24>>2]=j;f[g+12>>2]=g;f[g+8>>2]=g;break}else if((H|0)==97){d=j+8|0;n=f[d>>2]|0;f[n+12>>2]=g;f[d>>2]=g;f[g+8>>2]=n;f[g+12>>2]=j;f[g+24>>2]=0;break}}else{n=T+e|0;f[S+4>>2]=n|3;d=S+n+4|0;f[d>>2]=f[d>>2]|1}while(0);o=S+8|0;u=b;return o|0}else B=e}else B=e}else B=-1;while(0);S=f[4786]|0;if(S>>>0>=B>>>0){T=S-B|0;$=f[4789]|0;if(T>>>0>15){_=$+B|0;f[4789]=_;f[4786]=T;f[_+4>>2]=T|1;f[$+S>>2]=T;f[$+4>>2]=B|3}else{f[4786]=0;f[4789]=0;f[$+4>>2]=S|3;T=$+S+4|0;f[T>>2]=f[T>>2]|1}o=$+8|0;u=b;return o|0}$=f[4787]|0;if($>>>0>B>>>0){T=$-B|0;f[4787]=T;S=f[4790]|0;_=S+B|0;f[4790]=_;f[_+4>>2]=T|1;f[S+4>>2]=B|3;o=S+8|0;u=b;return o|0}if(!(f[4902]|0)){f[4904]=4096;f[4903]=4096;f[4905]=-1;f[4906]=-1;f[4907]=0;f[4895]=0;f[4902]=c&-16^1431655768;aa=4096}else aa=f[4904]|0;c=B+48|0;S=B+47|0;T=aa+S|0;_=0-aa|0;aa=T&_;if(aa>>>0<=B>>>0){o=0;u=b;return o|0}X=f[4894]|0;if(X|0?(Y=f[4892]|0,Z=Y+aa|0,Z>>>0<=Y>>>0|Z>>>0>X>>>0):0){o=0;u=b;return o|0}b:do if(!(f[4895]&4)){X=f[4790]|0;c:do if(X){Z=19584;while(1){Y=f[Z>>2]|0;if(Y>>>0<=X>>>0?(ba=Z+4|0,(Y+(f[ba>>2]|0)|0)>>>0>X>>>0):0)break;Y=f[Z+8>>2]|0;if(!Y){H=118;break c}else Z=Y}j=T-$&_;if(j>>>0<2147483647){Y=Nl(j|0)|0;if((Y|0)==((f[Z>>2]|0)+(f[ba>>2]|0)|0))if((Y|0)==(-1|0))ca=j;else{da=j;ea=Y;H=135;break b}else{fa=Y;ga=j;H=126}}else ca=0}else H=118;while(0);do if((H|0)==118){X=Nl(0)|0;if((X|0)!=(-1|0)?(e=X,j=f[4903]|0,Y=j+-1|0,U=((Y&e|0)==0?0:(Y+e&0-j)-e|0)+aa|0,e=f[4892]|0,j=U+e|0,U>>>0>B>>>0&U>>>0<2147483647):0){Y=f[4894]|0;if(Y|0?j>>>0<=e>>>0|j>>>0>Y>>>0:0){ca=0;break}Y=Nl(U|0)|0;if((Y|0)==(X|0)){da=U;ea=X;H=135;break b}else{fa=Y;ga=U;H=126}}else ca=0}while(0);do if((H|0)==126){U=0-ga|0;if(!(c>>>0>ga>>>0&(ga>>>0<2147483647&(fa|0)!=(-1|0))))if((fa|0)==(-1|0)){ca=0;break}else{da=ga;ea=fa;H=135;break b}Y=f[4904]|0;X=S-ga+Y&0-Y;if(X>>>0>=2147483647){da=ga;ea=fa;H=135;break b}if((Nl(X|0)|0)==(-1|0)){Nl(U|0)|0;ca=0;break}else{da=X+ga|0;ea=fa;H=135;break b}}while(0);f[4895]=f[4895]|4;ha=ca;H=133}else{ha=0;H=133}while(0);if(((H|0)==133?aa>>>0<2147483647:0)?(ca=Nl(aa|0)|0,aa=Nl(0)|0,fa=aa-ca|0,ga=fa>>>0>(B+40|0)>>>0,!((ca|0)==(-1|0)|ga^1|ca>>>0<aa>>>0&((ca|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){da=ga?fa:ha;ea=ca;H=135}if((H|0)==135){ca=(f[4892]|0)+da|0;f[4892]=ca;if(ca>>>0>(f[4893]|0)>>>0)f[4893]=ca;ca=f[4790]|0;do if(ca){ha=19584;while(1){ia=f[ha>>2]|0;ja=ha+4|0;ka=f[ja>>2]|0;if((ea|0)==(ia+ka|0)){H=143;break}fa=f[ha+8>>2]|0;if(!fa)break;else ha=fa}if(((H|0)==143?(f[ha+12>>2]&8|0)==0:0)?ea>>>0>ca>>>0&ia>>>0<=ca>>>0:0){f[ja>>2]=ka+da;fa=(f[4787]|0)+da|0;ga=ca+8|0;aa=(ga&7|0)==0?0:0-ga&7;ga=ca+aa|0;S=fa-aa|0;f[4790]=ga;f[4787]=S;f[ga+4>>2]=S|1;f[ca+fa+4>>2]=40;f[4791]=f[4906];break}if(ea>>>0<(f[4788]|0)>>>0)f[4788]=ea;fa=ea+da|0;S=19584;while(1){if((f[S>>2]|0)==(fa|0)){H=151;break}ga=f[S+8>>2]|0;if(!ga){la=19584;break}else S=ga}if((H|0)==151)if(!(f[S+12>>2]&8)){f[S>>2]=ea;ha=S+4|0;f[ha>>2]=(f[ha>>2]|0)+da;ha=ea+8|0;ga=ea+((ha&7|0)==0?0:0-ha&7)|0;ha=fa+8|0;aa=fa+((ha&7|0)==0?0:0-ha&7)|0;ha=ga+B|0;c=aa-ga-B|0;f[ga+4>>2]=B|3;do if((ca|0)!=(aa|0)){if((f[4789]|0)==(aa|0)){ba=(f[4786]|0)+c|0;f[4786]=ba;f[4789]=ha;f[ha+4>>2]=ba|1;f[ha+ba>>2]=ba;break}ba=f[aa+4>>2]|0;if((ba&3|0)==1){_=ba&-8;$=ba>>>3;d:do if(ba>>>0<256){T=f[aa+8>>2]|0;X=f[aa+12>>2]|0;if((X|0)==(T|0)){f[4784]=f[4784]&~(1<<$);break}else{f[T+12>>2]=X;f[X+8>>2]=T;break}}else{T=f[aa+24>>2]|0;X=f[aa+12>>2]|0;do if((X|0)==(aa|0)){U=aa+16|0;Y=U+4|0;j=f[Y>>2]|0;if(!j){e=f[U>>2]|0;if(!e){ma=0;break}else{na=e;oa=U}}else{na=j;oa=Y}while(1){Y=na+20|0;j=f[Y>>2]|0;if(j|0){na=j;oa=Y;continue}Y=na+16|0;j=f[Y>>2]|0;if(!j)break;else{na=j;oa=Y}}f[oa>>2]=0;ma=na}else{Y=f[aa+8>>2]|0;f[Y+12>>2]=X;f[X+8>>2]=Y;ma=X}while(0);if(!T)break;X=f[aa+28>>2]|0;Y=19440+(X<<2)|0;do if((f[Y>>2]|0)!=(aa|0)){f[T+16+(((f[T+16>>2]|0)!=(aa|0)&1)<<2)>>2]=ma;if(!ma)break d}else{f[Y>>2]=ma;if(ma|0)break;f[4785]=f[4785]&~(1<<X);break d}while(0);f[ma+24>>2]=T;X=aa+16|0;Y=f[X>>2]|0;if(Y|0){f[ma+16>>2]=Y;f[Y+24>>2]=ma}Y=f[X+4>>2]|0;if(!Y)break;f[ma+20>>2]=Y;f[Y+24>>2]=ma}while(0);pa=aa+_|0;qa=_+c|0}else{pa=aa;qa=c}$=pa+4|0;f[$>>2]=f[$>>2]&-2;f[ha+4>>2]=qa|1;f[ha+qa>>2]=qa;$=qa>>>3;if(qa>>>0<256){ba=19176+($<<1<<2)|0;Z=f[4784]|0;Y=1<<$;if(!(Z&Y)){f[4784]=Z|Y;ra=ba;sa=ba+8|0}else{Y=ba+8|0;ra=f[Y>>2]|0;sa=Y}f[sa>>2]=ha;f[ra+12>>2]=ha;f[ha+8>>2]=ra;f[ha+12>>2]=ba;break}ba=qa>>>8;do if(!ba)ta=0;else{if(qa>>>0>16777215){ta=31;break}Y=(ba+1048320|0)>>>16&8;Z=ba<<Y;$=(Z+520192|0)>>>16&4;X=Z<<$;Z=(X+245760|0)>>>16&2;j=14-($|Y|Z)+(X<<Z>>>15)|0;ta=qa>>>(j+7|0)&1|j<<1}while(0);ba=19440+(ta<<2)|0;f[ha+28>>2]=ta;_=ha+16|0;f[_+4>>2]=0;f[_>>2]=0;_=f[4785]|0;j=1<<ta;if(!(_&j)){f[4785]=_|j;f[ba>>2]=ha;f[ha+24>>2]=ba;f[ha+12>>2]=ha;f[ha+8>>2]=ha;break}j=qa<<((ta|0)==31?0:25-(ta>>>1)|0);_=f[ba>>2]|0;while(1){if((f[_+4>>2]&-8|0)==(qa|0)){H=192;break}ua=_+16+(j>>>31<<2)|0;ba=f[ua>>2]|0;if(!ba){H=191;break}else{j=j<<1;_=ba}}if((H|0)==191){f[ua>>2]=ha;f[ha+24>>2]=_;f[ha+12>>2]=ha;f[ha+8>>2]=ha;break}else if((H|0)==192){j=_+8|0;ba=f[j>>2]|0;f[ba+12>>2]=ha;f[j>>2]=ha;f[ha+8>>2]=ba;f[ha+12>>2]=_;f[ha+24>>2]=0;break}}else{ba=(f[4787]|0)+c|0;f[4787]=ba;f[4790]=ha;f[ha+4>>2]=ba|1}while(0);o=ga+8|0;u=b;return o|0}else la=19584;while(1){ha=f[la>>2]|0;if(ha>>>0<=ca>>>0?(va=ha+(f[la+4>>2]|0)|0,va>>>0>ca>>>0):0)break;la=f[la+8>>2]|0}ga=va+-47|0;ha=ga+8|0;c=ga+((ha&7|0)==0?0:0-ha&7)|0;ha=ca+16|0;ga=c>>>0<ha>>>0?ca:c;c=ga+8|0;aa=da+-40|0;fa=ea+8|0;S=(fa&7|0)==0?0:0-fa&7;fa=ea+S|0;ba=aa-S|0;f[4790]=fa;f[4787]=ba;f[fa+4>>2]=ba|1;f[ea+aa+4>>2]=40;f[4791]=f[4906];aa=ga+4|0;f[aa>>2]=27;f[c>>2]=f[4896];f[c+4>>2]=f[4897];f[c+8>>2]=f[4898];f[c+12>>2]=f[4899];f[4896]=ea;f[4897]=da;f[4899]=0;f[4898]=c;c=ga+24|0;do{ba=c;c=c+4|0;f[c>>2]=7}while((ba+8|0)>>>0<va>>>0);if((ga|0)!=(ca|0)){c=ga-ca|0;f[aa>>2]=f[aa>>2]&-2;f[ca+4>>2]=c|1;f[ga>>2]=c;ba=c>>>3;if(c>>>0<256){fa=19176+(ba<<1<<2)|0;S=f[4784]|0;j=1<<ba;if(!(S&j)){f[4784]=S|j;wa=fa;xa=fa+8|0}else{j=fa+8|0;wa=f[j>>2]|0;xa=j}f[xa>>2]=ca;f[wa+12>>2]=ca;f[ca+8>>2]=wa;f[ca+12>>2]=fa;break}fa=c>>>8;if(fa)if(c>>>0>16777215)ya=31;else{j=(fa+1048320|0)>>>16&8;S=fa<<j;fa=(S+520192|0)>>>16&4;ba=S<<fa;S=(ba+245760|0)>>>16&2;Z=14-(fa|j|S)+(ba<<S>>>15)|0;ya=c>>>(Z+7|0)&1|Z<<1}else ya=0;Z=19440+(ya<<2)|0;f[ca+28>>2]=ya;f[ca+20>>2]=0;f[ha>>2]=0;S=f[4785]|0;ba=1<<ya;if(!(S&ba)){f[4785]=S|ba;f[Z>>2]=ca;f[ca+24>>2]=Z;f[ca+12>>2]=ca;f[ca+8>>2]=ca;break}ba=c<<((ya|0)==31?0:25-(ya>>>1)|0);S=f[Z>>2]|0;while(1){if((f[S+4>>2]&-8|0)==(c|0)){H=213;break}za=S+16+(ba>>>31<<2)|0;Z=f[za>>2]|0;if(!Z){H=212;break}else{ba=ba<<1;S=Z}}if((H|0)==212){f[za>>2]=ca;f[ca+24>>2]=S;f[ca+12>>2]=ca;f[ca+8>>2]=ca;break}else if((H|0)==213){ba=S+8|0;c=f[ba>>2]|0;f[c+12>>2]=ca;f[ba>>2]=ca;f[ca+8>>2]=c;f[ca+12>>2]=S;f[ca+24>>2]=0;break}}}else{c=f[4788]|0;if((c|0)==0|ea>>>0<c>>>0)f[4788]=ea;f[4896]=ea;f[4897]=da;f[4899]=0;f[4793]=f[4902];f[4792]=-1;f[4797]=19176;f[4796]=19176;f[4799]=19184;f[4798]=19184;f[4801]=19192;f[4800]=19192;f[4803]=19200;f[4802]=19200;f[4805]=19208;f[4804]=19208;f[4807]=19216;f[4806]=19216;f[4809]=19224;f[4808]=19224;f[4811]=19232;f[4810]=19232;f[4813]=19240;f[4812]=19240;f[4815]=19248;f[4814]=19248;f[4817]=19256;f[4816]=19256;f[4819]=19264;f[4818]=19264;f[4821]=19272;f[4820]=19272;f[4823]=19280;f[4822]=19280;f[4825]=19288;f[4824]=19288;f[4827]=19296;f[4826]=19296;f[4829]=19304;f[4828]=19304;f[4831]=19312;f[4830]=19312;f[4833]=19320;f[4832]=19320;f[4835]=19328;f[4834]=19328;f[4837]=19336;f[4836]=19336;f[4839]=19344;f[4838]=19344;f[4841]=19352;f[4840]=19352;f[4843]=19360;f[4842]=19360;f[4845]=19368;f[4844]=19368;f[4847]=19376;f[4846]=19376;f[4849]=19384;f[4848]=19384;f[4851]=19392;f[4850]=19392;f[4853]=19400;f[4852]=19400;f[4855]=19408;f[4854]=19408;f[4857]=19416;f[4856]=19416;f[4859]=19424;f[4858]=19424;c=da+-40|0;ba=ea+8|0;ha=(ba&7|0)==0?0:0-ba&7;ba=ea+ha|0;ga=c-ha|0;f[4790]=ba;f[4787]=ga;f[ba+4>>2]=ga|1;f[ea+c+4>>2]=40;f[4791]=f[4906]}while(0);ea=f[4787]|0;if(ea>>>0>B>>>0){da=ea-B|0;f[4787]=da;ea=f[4790]|0;ca=ea+B|0;f[4790]=ca;f[ca+4>>2]=da|1;f[ea+4>>2]=B|3;o=ea+8|0;u=b;return o|0}}ea=Vq()|0;f[ea>>2]=12;o=0;u=b;return o|0}function ab(a,c,d,e,g,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0;i=u;u=u+240|0;j=i+104|0;k=i+224|0;l=i+176|0;m=i+160|0;n=i+228|0;o=i+72|0;p=i+40|0;q=i+132|0;r=i;s=i+172|0;t=i+156|0;v=i+152|0;w=i+148|0;x=i+144|0;y=i+128|0;z=a+8|0;Mh(z,c,e,g);e=f[a+48>>2]|0;A=f[a+52>>2]|0;B=l;C=B+48|0;do{f[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(!g){D=0;E=0}else{Ci(l,g);D=f[l+12>>2]|0;E=f[l+16>>2]|0}B=l+16|0;C=E-D>>2;F=D;D=E;if(C>>>0>=g>>>0){if(C>>>0>g>>>0?(E=F+(g<<2)|0,(E|0)!=(D|0)):0)f[B>>2]=D+(~((D+-4-E|0)>>>2)<<2)}else Ci(l+12|0,g-C|0);C=l+24|0;E=l+28|0;D=f[E>>2]|0;B=f[C>>2]|0;F=D-B>>2;G=B;B=D;if(F>>>0>=g>>>0){if(F>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[E>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(C,g-F|0);F=l+36|0;C=l+40|0;D=f[C>>2]|0;B=f[F>>2]|0;E=D-B>>2;G=B;B=D;if(E>>>0>=g>>>0){if(E>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[C>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(F,g-E|0);f[m>>2]=0;E=m+4|0;f[E>>2]=0;f[m+8>>2]=0;F=(g|0)==0;do if(!F)if(g>>>0>1073741823)aq(m);else{D=g<<2;B=ln(D)|0;f[m>>2]=B;C=B+(g<<2)|0;f[m+8>>2]=C;sj(B|0,0,D|0)|0;f[E>>2]=C;break}while(0);C=a+152|0;D=a+156|0;B=f[D>>2]|0;G=f[C>>2]|0;H=B-G>>2;L=G;G=B;if(H>>>0>=g>>>0){if(H>>>0>g>>>0?(B=L+(g<<2)|0,(B|0)!=(G|0)):0)f[D>>2]=G+(~((G+-4-B|0)>>>2)<<2)}else Ci(C,g-H|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;f[o+24>>2]=0;f[o+28>>2]=0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[p+24>>2]=0;f[p+28>>2]=0;f[q>>2]=0;H=q+4|0;f[H>>2]=0;f[q+8>>2]=0;if(F){M=0;N=0;O=0;P=0}else{F=g<<2;B=ln(F)|0;f[q>>2]=B;G=B+(g<<2)|0;f[q+8>>2]=G;sj(B|0,0,F|0)|0;f[H>>2]=G;M=B;N=G;O=G;P=B}B=a+56|0;G=f[B>>2]|0;F=f[G+4>>2]|0;D=f[G>>2]|0;L=F-D|0;a:do if((L|0)>4){Q=L>>2;R=e+64|0;S=e+28|0;T=(g|0)>0;U=r+4|0;V=r+8|0;Z=r+12|0;_=a+152|0;$=a+112|0;aa=r+16|0;ba=r+28|0;ca=a+16|0;da=a+32|0;ea=a+12|0;fa=a+28|0;ga=a+20|0;ha=a+24|0;ia=r+28|0;ja=r+16|0;ka=r+20|0;la=r+32|0;ma=n+1|0;na=g<<2;oa=(g|0)==1;pa=Q+-1|0;if(F-D>>2>>>0>pa>>>0){qa=Q;ra=pa;sa=D;ta=P;ua=O;va=M;wa=M;xa=N;ya=M;za=N}else{Aa=G;aq(Aa)}b:while(1){pa=f[sa+(ra<<2)>>2]|0;Q=(((pa>>>0)%3|0|0)==0?2:-1)+pa|0;Ba=Q>>>5;Ca=1<<(Q&31);Da=(pa|0)==-1|(Q|0)==-1;Ea=1;Fa=0;Ga=pa;c:while(1){Ha=Ea^1;Ia=Fa;Ja=Ga;while(1){if((Ja|0)==-1){Ka=Ia;break c}La=f[l+(Ia*12|0)>>2]|0;if(((f[(f[e>>2]|0)+(Ja>>>5<<2)>>2]&1<<(Ja&31)|0)==0?(Ma=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ja<<2)>>2]|0,(Ma|0)!=-1):0)?(Na=f[S>>2]|0,Oa=f[A>>2]|0,Pa=f[Oa+(f[Na+(Ma<<2)>>2]<<2)>>2]|0,Qa=Ma+1|0,Ra=f[Oa+(f[Na+((((Qa>>>0)%3|0|0)==0?Ma+-2|0:Qa)<<2)>>2]<<2)>>2]|0,Qa=f[Oa+(f[Na+((((Ma>>>0)%3|0|0)==0?2:-1)+Ma<<2)>>2]<<2)>>2]|0,(Pa|0)<(ra|0)&(Ra|0)<(ra|0)&(Qa|0)<(ra|0)):0){Ma=X(Pa,g)|0;Pa=X(Ra,g)|0;Ra=X(Qa,g)|0;if(T){Qa=0;do{f[La+(Qa<<2)>>2]=(f[c+(Qa+Ra<<2)>>2]|0)+(f[c+(Qa+Pa<<2)>>2]|0)-(f[c+(Qa+Ma<<2)>>2]|0);Qa=Qa+1|0}while((Qa|0)!=(g|0))}Qa=Ia+1|0;if((Qa|0)==4){Ka=4;break c}else Sa=Qa}else Sa=Ia;do if(Ea){Qa=Ja+1|0;Ma=((Qa>>>0)%3|0|0)==0?Ja+-2|0:Qa;if(((Ma|0)!=-1?(f[(f[e>>2]|0)+(Ma>>>5<<2)>>2]&1<<(Ma&31)|0)==0:0)?(Qa=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ma<<2)>>2]|0,Ma=Qa+1|0,(Qa|0)!=-1):0)Ta=((Ma>>>0)%3|0|0)==0?Qa+-2|0:Ma;else Ta=-1}else{Ma=(((Ja>>>0)%3|0|0)==0?2:-1)+Ja|0;if(((Ma|0)!=-1?(f[(f[e>>2]|0)+(Ma>>>5<<2)>>2]&1<<(Ma&31)|0)==0:0)?(Qa=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ma<<2)>>2]|0,(Qa|0)!=-1):0)if(!((Qa>>>0)%3|0)){Ta=Qa+2|0;break}else{Ta=Qa+-1|0;break}else Ta=-1}while(0);if((Ta|0)==(pa|0)){Ka=Sa;break c}if((Ta|0)!=-1|Ha){Ia=Sa;Ja=Ta}else break}if(Da){Ea=0;Fa=Sa;Ga=-1;continue}if(f[(f[e>>2]|0)+(Ba<<2)>>2]&Ca|0){Ea=0;Fa=Sa;Ga=-1;continue}Ja=f[(f[(f[R>>2]|0)+12>>2]|0)+(Q<<2)>>2]|0;if((Ja|0)==-1){Ea=0;Fa=Sa;Ga=-1;continue}if(!((Ja>>>0)%3|0)){Ea=0;Fa=Sa;Ga=Ja+2|0;continue}else{Ea=0;Fa=Sa;Ga=Ja+-1|0;continue}}Ga=X(ra,g)|0;f[r>>2]=0;f[U>>2]=0;b[V>>0]=0;f[Z>>2]=0;f[Z+4>>2]=0;f[Z+8>>2]=0;f[Z+12>>2]=0;f[Z+16>>2]=0;f[Z+20>>2]=0;f[Z+24>>2]=0;Fa=Ka+-1|0;Ea=p+(Fa<<3)|0;Q=Ea;Ca=Vn(f[Q>>2]|0,f[Q+4>>2]|0,Ka|0,((Ka|0)<0)<<31>>31|0)|0;Q=I;Ba=Ea;f[Ba>>2]=Ca;f[Ba+4>>2]=Q;Ba=c+((X(qa+-2|0,g)|0)<<2)|0;Ea=c+(Ga<<2)|0;Da=f[_>>2]|0;if(T){pa=0;Ja=0;while(1){Ia=(f[Ba+(pa<<2)>>2]|0)-(f[Ea+(pa<<2)>>2]|0)|0;Ha=((Ia|0)>-1?Ia:0-Ia|0)+Ja|0;f[va+(pa<<2)>>2]=Ia;f[Da+(pa<<2)>>2]=Ia<<1^Ia>>31;pa=pa+1|0;if((pa|0)==(g|0)){Ua=Ha;break}else Ja=Ha}}else Ua=0;mo(j,$,Da,g);Ja=Zk(j)|0;pa=I;Ha=Bm(j)|0;Ia=I;Qa=o+(Fa<<3)|0;Ma=Qa;Pa=f[Ma>>2]|0;Ra=f[Ma+4>>2]|0;Va=+wm(Ca,Pa);Ma=Vn(Ha|0,Ia|0,Ja|0,pa|0)|0;Wa=+(Ca>>>0)+4294967296.0*+(Q|0);Xa=+W(+(Va*Wa));pa=Vn(Ma|0,I|0,~~Xa>>>0|0,(+K(Xa)>=1.0?(Xa>0.0?~~+Y(+J(Xa/4294967296.0),4294967295.0)>>>0:~~+W((Xa-+(~~Xa>>>0))/4294967296.0)>>>0):0)|0)|0;Ma=r;f[Ma>>2]=pa;f[Ma+4>>2]=Ua;b[V>>0]=0;f[Z>>2]=0;$f(aa,Ba,Ba+(g<<2)|0);f[s>>2]=ta;f[t>>2]=ua;f[k>>2]=f[s>>2];f[j>>2]=f[t>>2];Jf(ba,k,j);if((Ka|0)<1){Ya=za;Za=ya;_a=xa;$a=wa;ab=ua;bb=ta;cb=ta}else{Ma=n+Ka|0;pa=f[q>>2]|0;Ja=pa;Ia=f[H>>2]|0;Ha=Ma+-1|0;La=(Ha|0)==(n|0);Na=Ma+-2|0;Oa=ma>>>0<Na>>>0;db=~Ka;eb=Ka+2+((db|0)>-2?db:-2)|0;db=Ia;fb=Ha>>>0>n>>>0;gb=0;hb=1;while(1){gb=gb+1|0;sj(n|0,1,eb|0)|0;sj(n|0,0,gb|0)|0;ib=Vn(Pa|0,Ra|0,hb|0,0)|0;d:while(1){if(T){sj(f[m>>2]|0,0,na|0)|0;jb=f[m>>2]|0;kb=0;lb=0;while(1){if(!(b[n+kb>>0]|0)){mb=f[l+(kb*12|0)>>2]|0;nb=0;do{ob=jb+(nb<<2)|0;f[ob>>2]=(f[ob>>2]|0)+(f[mb+(nb<<2)>>2]|0);nb=nb+1|0}while((nb|0)!=(g|0));pb=(1<<kb|lb&255)&255}else pb=lb;kb=kb+1|0;if((kb|0)==(Ka|0)){qb=pb;break}else lb=pb}}else{lb=0;kb=0;while(1){if(!(b[n+lb>>0]|0))rb=(1<<lb|kb&255)&255;else rb=kb;lb=lb+1|0;if((lb|0)==(Ka|0)){qb=rb;break}else kb=rb}}kb=f[m>>2]|0;do if(T){f[kb>>2]=(f[kb>>2]|0)/(hb|0)|0;if(!oa){lb=1;do{jb=kb+(lb<<2)|0;f[jb>>2]=(f[jb>>2]|0)/(hb|0)|0;lb=lb+1|0}while((lb|0)!=(g|0));lb=f[_>>2]|0;if(T)sb=lb;else{tb=0;ub=lb;break}}else sb=f[_>>2]|0;lb=0;jb=0;while(1){nb=(f[kb+(lb<<2)>>2]|0)-(f[Ea+(lb<<2)>>2]|0)|0;mb=((nb|0)>-1?nb:0-nb|0)+jb|0;f[pa+(lb<<2)>>2]=nb;f[sb+(lb<<2)>>2]=nb<<1^nb>>31;lb=lb+1|0;if((lb|0)==(g|0)){tb=mb;ub=sb;break}else jb=mb}}else{tb=0;ub=f[_>>2]|0}while(0);mo(j,$,ub,g);kb=Zk(j)|0;jb=I;lb=Bm(j)|0;mb=I;Xa=+wm(Ca,ib);nb=Vn(lb|0,mb|0,kb|0,jb|0)|0;Va=+W(+(Xa*Wa));jb=Vn(nb|0,I|0,~~Va>>>0|0,(+K(Va)>=1.0?(Va>0.0?~~+Y(+J(Va/4294967296.0),4294967295.0)>>>0:~~+W((Va-+(~~Va>>>0))/4294967296.0)>>>0):0)|0)|0;nb=f[r>>2]|0;if(!((nb|0)<=(jb|0)?!((nb|0)>=(jb|0)?(tb|0)<(f[U>>2]|0):0):0)){nb=r;f[nb>>2]=jb;f[nb+4>>2]=tb;b[V>>0]=qb;f[Z>>2]=hb;f[v>>2]=f[m>>2];f[w>>2]=f[E>>2];f[k>>2]=f[v>>2];f[j>>2]=f[w>>2];Jf(aa,k,j);f[x>>2]=Ja;f[y>>2]=Ia;f[k>>2]=f[x>>2];f[j>>2]=f[y>>2];Jf(ba,k,j)}if(La)break;vb=b[Ha>>0]|0;nb=-1;jb=vb;while(1){kb=nb+-1|0;wb=Ma+kb|0;mb=jb;jb=b[wb>>0]|0;if((jb&255)<(mb&255))break;if((wb|0)==(n|0)){xb=84;break d}else nb=kb}kb=Ma+nb|0;if((jb&255)<(vb&255)){yb=Ha;zb=vb}else{mb=Ma;lb=Ha;while(1){ob=lb+-1|0;if((jb&255)<(h[mb+-2>>0]|0)){yb=ob;zb=1;break}else{Ab=lb;lb=ob;mb=Ab}}}b[wb>>0]=zb;b[yb>>0]=jb;if((nb|0)<-1){Bb=kb;Cb=Ha}else continue;while(1){mb=b[Bb>>0]|0;b[Bb>>0]=b[Cb>>0]|0;b[Cb>>0]=mb;mb=Bb+1|0;lb=Cb+-1|0;if(mb>>>0<lb>>>0){Bb=mb;Cb=lb}else continue d}}if(((xb|0)==84?(xb=0,fb):0)?(ib=b[n>>0]|0,b[n>>0]=vb,b[Ha>>0]=ib,Oa):0){ib=Na;kb=ma;do{nb=b[kb>>0]|0;b[kb>>0]=b[ib>>0]|0;b[ib>>0]=nb;kb=kb+1|0;ib=ib+-1|0}while(kb>>>0<ib>>>0)}if((hb|0)>=(Ka|0)){Ya=db;Za=pa;_a=db;$a=pa;ab=Ia;bb=Ja;cb=pa;break}else hb=hb+1|0}}hb=f[Z>>2]|0;pa=Vn(Pa|0,Ra|0,hb|0,((hb|0)<0)<<31>>31|0)|0;hb=Qa;f[hb>>2]=pa;f[hb+4>>2]=I;if(T){hb=f[ba>>2]|0;pa=f[C>>2]|0;Ja=0;do{Ia=f[hb+(Ja<<2)>>2]|0;f[pa+(Ja<<2)>>2]=Ia<<1^Ia>>31;Ja=Ja+1|0}while((Ja|0)!=(g|0));Db=pa}else Db=f[C>>2]|0;lo(j,$,Db,g);if((Ka|0)>0){Eb=a+60+(Fa*12|0)|0;pa=a+60+(Fa*12|0)+4|0;Ja=a+60+(Fa*12|0)+8|0;hb=0;do{Qa=f[pa>>2]|0;Ra=f[Ja>>2]|0;Pa=(Qa|0)==(Ra<<5|0);if(!(1<<hb&h[V>>0])){if(Pa){if((Qa+1|0)<0){xb=108;break b}Ia=Ra<<6;db=Qa+32&-32;vi(Eb,Qa>>>0<1073741823?(Ia>>>0<db>>>0?db:Ia):2147483647);Fb=f[pa>>2]|0}else Fb=Qa;f[pa>>2]=Fb+1;Ia=(f[Eb>>2]|0)+(Fb>>>5<<2)|0;f[Ia>>2]=f[Ia>>2]|1<<(Fb&31)}else{if(Pa){if((Qa+1|0)<0){xb=113;break b}Pa=Ra<<6;Ra=Qa+32&-32;vi(Eb,Qa>>>0<1073741823?(Pa>>>0<Ra>>>0?Ra:Pa):2147483647);Gb=f[pa>>2]|0}else Gb=Qa;f[pa>>2]=Gb+1;Qa=(f[Eb>>2]|0)+(Gb>>>5<<2)|0;f[Qa>>2]=f[Qa>>2]&~(1<<(Gb&31))}hb=hb+1|0}while((hb|0)<(Ka|0))}hb=d+(Ga<<2)|0;pa=f[z>>2]|0;if((pa|0)>0){Ja=0;Fa=f[aa>>2]|0;Qa=pa;while(1){if((Qa|0)>0){pa=0;do{Pa=f[Fa+(pa<<2)>>2]|0;Ra=f[ca>>2]|0;if((Pa|0)>(Ra|0)){Ia=f[da>>2]|0;f[Ia+(pa<<2)>>2]=Ra;Hb=Ia}else{Ia=f[ea>>2]|0;Ra=f[da>>2]|0;f[Ra+(pa<<2)>>2]=(Pa|0)<(Ia|0)?Ia:Pa;Hb=Ra}pa=pa+1|0}while((pa|0)<(f[z>>2]|0));Ib=Hb}else Ib=f[da>>2]|0;pa=(f[Ea+(Ja<<2)>>2]|0)-(f[Ib+(Ja<<2)>>2]|0)|0;Ra=hb+(Ja<<2)|0;f[Ra>>2]=pa;do if((pa|0)<(f[fa>>2]|0)){Jb=(f[ga>>2]|0)+pa|0;xb=103}else{if((pa|0)<=(f[ha>>2]|0))break;Jb=pa-(f[ga>>2]|0)|0;xb=103}while(0);if((xb|0)==103){xb=0;f[Ra>>2]=Jb}Ja=Ja+1|0;Qa=f[z>>2]|0;if((Ja|0)>=(Qa|0))break;else Fa=Ib}}Fa=f[ia>>2]|0;if(Fa|0){Qa=f[la>>2]|0;if((Qa|0)!=(Fa|0))f[la>>2]=Qa+(~((Qa+-4-Fa|0)>>>2)<<2);Oq(Fa)}Fa=f[ja>>2]|0;if(Fa|0){Qa=f[ka>>2]|0;if((Qa|0)!=(Fa|0))f[ka>>2]=Qa+(~((Qa+-4-Fa|0)>>>2)<<2);Oq(Fa)}if((qa|0)<=2){Kb=$a;Lb=_a;break a}Fa=f[B>>2]|0;sa=f[Fa>>2]|0;Qa=ra+-1|0;if((f[Fa+4>>2]|0)-sa>>2>>>0<=Qa>>>0){Aa=Fa;xb=18;break}else{Fa=ra;ra=Qa;ta=bb;ua=ab;va=cb;wa=$a;xa=_a;ya=Za;za=Ya;qa=Fa}}if((xb|0)==18)aq(Aa);else if((xb|0)==108)aq(Eb);else if((xb|0)==113)aq(Eb)}else{Kb=M;Lb=N}while(0);N=f[l>>2]|0;if((g|0)>0?(f[N>>2]=0,(g|0)!=1):0){M=1;do{f[N+(M<<2)>>2]=0;M=M+1|0}while((M|0)!=(g|0))}g=f[z>>2]|0;if((g|0)>0){M=a+16|0;Eb=a+32|0;Aa=a+12|0;qa=a+28|0;Ya=a+20|0;za=a+24|0;a=0;Za=N;N=g;while(1){if((N|0)>0){g=0;do{ya=f[Za+(g<<2)>>2]|0;_a=f[M>>2]|0;if((ya|0)>(_a|0)){xa=f[Eb>>2]|0;f[xa+(g<<2)>>2]=_a;Mb=xa}else{xa=f[Aa>>2]|0;_a=f[Eb>>2]|0;f[_a+(g<<2)>>2]=(ya|0)<(xa|0)?xa:ya;Mb=_a}g=g+1|0}while((g|0)<(f[z>>2]|0));Nb=Mb}else Nb=f[Eb>>2]|0;g=(f[c+(a<<2)>>2]|0)-(f[Nb+(a<<2)>>2]|0)|0;_a=d+(a<<2)|0;f[_a>>2]=g;if((g|0)>=(f[qa>>2]|0)){if((g|0)>(f[za>>2]|0)){Ob=g-(f[Ya>>2]|0)|0;xb=139}}else{Ob=(f[Ya>>2]|0)+g|0;xb=139}if((xb|0)==139){xb=0;f[_a>>2]=Ob}a=a+1|0;N=f[z>>2]|0;if((a|0)>=(N|0))break;else Za=Nb}}if(Kb|0){if((Lb|0)!=(Kb|0))f[H>>2]=Lb+(~((Lb+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[m>>2]|0;if(Kb|0){m=f[E>>2]|0;if((m|0)!=(Kb|0))f[E>>2]=m+(~((m+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[l+36>>2]|0;if(Kb|0){m=l+40|0;E=f[m>>2]|0;if((E|0)!=(Kb|0))f[m>>2]=E+(~((E+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[l+24>>2]|0;if(Kb|0){E=l+28|0;m=f[E>>2]|0;if((m|0)!=(Kb|0))f[E>>2]=m+(~((m+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[l+12>>2]|0;if(Kb|0){m=l+16|0;E=f[m>>2]|0;if((E|0)!=(Kb|0))f[m>>2]=E+(~((E+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[l>>2]|0;if(!Kb){u=i;return 1}E=l+4|0;l=f[E>>2]|0;if((l|0)!=(Kb|0))f[E>>2]=l+(~((l+-4-Kb|0)>>>2)<<2);Oq(Kb);u=i;return 1}function bb(a,c,d,e,g,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0;i=u;u=u+240|0;j=i+104|0;k=i+224|0;l=i+176|0;m=i+160|0;n=i+228|0;o=i+72|0;p=i+40|0;q=i+132|0;r=i;s=i+172|0;t=i+156|0;v=i+152|0;w=i+148|0;x=i+144|0;y=i+128|0;z=a+8|0;Mh(z,c,e,g);e=f[a+48>>2]|0;A=f[a+52>>2]|0;B=l;C=B+48|0;do{f[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(!g){D=0;E=0}else{Ci(l,g);D=f[l+12>>2]|0;E=f[l+16>>2]|0}B=l+16|0;C=E-D>>2;F=D;D=E;if(C>>>0>=g>>>0){if(C>>>0>g>>>0?(E=F+(g<<2)|0,(E|0)!=(D|0)):0)f[B>>2]=D+(~((D+-4-E|0)>>>2)<<2)}else Ci(l+12|0,g-C|0);C=l+24|0;E=l+28|0;D=f[E>>2]|0;B=f[C>>2]|0;F=D-B>>2;G=B;B=D;if(F>>>0>=g>>>0){if(F>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[E>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(C,g-F|0);F=l+36|0;C=l+40|0;D=f[C>>2]|0;B=f[F>>2]|0;E=D-B>>2;G=B;B=D;if(E>>>0>=g>>>0){if(E>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[C>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(F,g-E|0);f[m>>2]=0;E=m+4|0;f[E>>2]=0;f[m+8>>2]=0;F=(g|0)==0;do if(!F)if(g>>>0>1073741823)aq(m);else{D=g<<2;B=ln(D)|0;f[m>>2]=B;C=B+(g<<2)|0;f[m+8>>2]=C;sj(B|0,0,D|0)|0;f[E>>2]=C;break}while(0);C=a+152|0;D=a+156|0;B=f[D>>2]|0;G=f[C>>2]|0;H=B-G>>2;L=G;G=B;if(H>>>0>=g>>>0){if(H>>>0>g>>>0?(B=L+(g<<2)|0,(B|0)!=(G|0)):0)f[D>>2]=G+(~((G+-4-B|0)>>>2)<<2)}else Ci(C,g-H|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;f[o+24>>2]=0;f[o+28>>2]=0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[p+24>>2]=0;f[p+28>>2]=0;f[q>>2]=0;H=q+4|0;f[H>>2]=0;f[q+8>>2]=0;if(F){M=0;N=0;O=0;P=0}else{F=g<<2;B=ln(F)|0;f[q>>2]=B;G=B+(g<<2)|0;f[q+8>>2]=G;sj(B|0,0,F|0)|0;f[H>>2]=G;M=B;N=G;O=G;P=B}B=a+56|0;G=f[B>>2]|0;F=f[G+4>>2]|0;D=f[G>>2]|0;L=F-D|0;a:do if((L|0)>4){Q=L>>2;R=e+12|0;S=(g|0)>0;T=r+4|0;U=r+8|0;V=r+12|0;Z=a+152|0;_=a+112|0;$=r+16|0;aa=r+28|0;ba=a+16|0;ca=a+32|0;da=a+12|0;ea=a+28|0;fa=a+20|0;ga=a+24|0;ha=r+28|0;ia=r+16|0;ja=r+20|0;ka=r+32|0;la=n+1|0;ma=g<<2;na=(g|0)==1;oa=Q+-1|0;if(F-D>>2>>>0>oa>>>0){pa=Q;qa=oa;ra=D;sa=P;ta=O;ua=M;va=M;wa=N;xa=M;ya=N}else{za=G;aq(za)}b:while(1){oa=f[ra+(qa<<2)>>2]|0;Q=(((oa>>>0)%3|0|0)==0?2:-1)+oa|0;Aa=(oa|0)==-1|(Q|0)==-1;Ba=1;Ca=0;Da=oa;c:while(1){Ea=Ba^1;Fa=Ca;Ga=Da;while(1){if((Ga|0)==-1){Ha=Fa;break c}Ia=f[l+(Fa*12|0)>>2]|0;Ja=f[R>>2]|0;Ka=f[Ja+(Ga<<2)>>2]|0;if((Ka|0)!=-1){La=f[e>>2]|0;Ma=f[A>>2]|0;Na=f[Ma+(f[La+(Ka<<2)>>2]<<2)>>2]|0;Oa=Ka+1|0;Pa=((Oa>>>0)%3|0|0)==0?Ka+-2|0:Oa;if((Pa|0)==-1)Qa=-1;else Qa=f[La+(Pa<<2)>>2]|0;Pa=f[Ma+(Qa<<2)>>2]|0;Oa=(((Ka>>>0)%3|0|0)==0?2:-1)+Ka|0;if((Oa|0)==-1)Ra=-1;else Ra=f[La+(Oa<<2)>>2]|0;Oa=f[Ma+(Ra<<2)>>2]|0;if((Na|0)<(qa|0)&(Pa|0)<(qa|0)&(Oa|0)<(qa|0)){Ma=X(Na,g)|0;Na=X(Pa,g)|0;Pa=X(Oa,g)|0;if(S){Oa=0;do{f[Ia+(Oa<<2)>>2]=(f[c+(Oa+Pa<<2)>>2]|0)+(f[c+(Oa+Na<<2)>>2]|0)-(f[c+(Oa+Ma<<2)>>2]|0);Oa=Oa+1|0}while((Oa|0)!=(g|0))}Oa=Fa+1|0;if((Oa|0)==4){Ha=4;break c}else Sa=Oa}else Sa=Fa}else Sa=Fa;do if(Ba){Oa=Ga+1|0;Ma=((Oa>>>0)%3|0|0)==0?Ga+-2|0:Oa;if((Ma|0)!=-1?(Oa=f[Ja+(Ma<<2)>>2]|0,Ma=Oa+1|0,(Oa|0)!=-1):0)Ta=((Ma>>>0)%3|0|0)==0?Oa+-2|0:Ma;else Ta=-1}else{Ma=(((Ga>>>0)%3|0|0)==0?2:-1)+Ga|0;if((Ma|0)!=-1?(Oa=f[Ja+(Ma<<2)>>2]|0,(Oa|0)!=-1):0)if(!((Oa>>>0)%3|0)){Ta=Oa+2|0;break}else{Ta=Oa+-1|0;break}else Ta=-1}while(0);if((Ta|0)==(oa|0)){Ha=Sa;break c}if((Ta|0)!=-1|Ea){Fa=Sa;Ga=Ta}else break}if(Aa){Ba=0;Ca=Sa;Da=-1;continue}Ga=f[Ja+(Q<<2)>>2]|0;if((Ga|0)==-1){Ba=0;Ca=Sa;Da=-1;continue}if(!((Ga>>>0)%3|0)){Ba=0;Ca=Sa;Da=Ga+2|0;continue}else{Ba=0;Ca=Sa;Da=Ga+-1|0;continue}}Da=X(qa,g)|0;f[r>>2]=0;f[T>>2]=0;b[U>>0]=0;f[V>>2]=0;f[V+4>>2]=0;f[V+8>>2]=0;f[V+12>>2]=0;f[V+16>>2]=0;f[V+20>>2]=0;f[V+24>>2]=0;Ca=Ha+-1|0;Ba=p+(Ca<<3)|0;Q=Ba;Aa=Vn(f[Q>>2]|0,f[Q+4>>2]|0,Ha|0,((Ha|0)<0)<<31>>31|0)|0;Q=I;oa=Ba;f[oa>>2]=Aa;f[oa+4>>2]=Q;oa=c+((X(pa+-2|0,g)|0)<<2)|0;Ba=c+(Da<<2)|0;Ga=f[Z>>2]|0;if(S){Fa=0;Ea=0;while(1){Oa=(f[oa+(Fa<<2)>>2]|0)-(f[Ba+(Fa<<2)>>2]|0)|0;Ma=((Oa|0)>-1?Oa:0-Oa|0)+Ea|0;f[ua+(Fa<<2)>>2]=Oa;f[Ga+(Fa<<2)>>2]=Oa<<1^Oa>>31;Fa=Fa+1|0;if((Fa|0)==(g|0)){Ua=Ma;break}else Ea=Ma}}else Ua=0;mo(j,_,Ga,g);Ea=Zk(j)|0;Fa=I;Ma=Bm(j)|0;Oa=I;Na=o+(Ca<<3)|0;Pa=Na;Ia=f[Pa>>2]|0;La=f[Pa+4>>2]|0;Va=+wm(Aa,Ia);Pa=Vn(Ma|0,Oa|0,Ea|0,Fa|0)|0;Wa=+(Aa>>>0)+4294967296.0*+(Q|0);Xa=+W(+(Va*Wa));Fa=Vn(Pa|0,I|0,~~Xa>>>0|0,(+K(Xa)>=1.0?(Xa>0.0?~~+Y(+J(Xa/4294967296.0),4294967295.0)>>>0:~~+W((Xa-+(~~Xa>>>0))/4294967296.0)>>>0):0)|0)|0;Pa=r;f[Pa>>2]=Fa;f[Pa+4>>2]=Ua;b[U>>0]=0;f[V>>2]=0;$f($,oa,oa+(g<<2)|0);f[s>>2]=sa;f[t>>2]=ta;f[k>>2]=f[s>>2];f[j>>2]=f[t>>2];Jf(aa,k,j);if((Ha|0)<1){Ya=ya;Za=xa;_a=wa;$a=va;ab=ta;bb=sa;cb=sa}else{Pa=n+Ha|0;Fa=f[q>>2]|0;Ea=Fa;Oa=f[H>>2]|0;Ma=Pa+-1|0;Ka=(Ma|0)==(n|0);db=Pa+-2|0;eb=la>>>0<db>>>0;fb=~Ha;gb=Ha+2+((fb|0)>-2?fb:-2)|0;fb=Oa;hb=Ma>>>0>n>>>0;ib=0;jb=1;while(1){ib=ib+1|0;sj(n|0,1,gb|0)|0;sj(n|0,0,ib|0)|0;kb=Vn(Ia|0,La|0,jb|0,0)|0;d:while(1){if(S){sj(f[m>>2]|0,0,ma|0)|0;lb=f[m>>2]|0;mb=0;nb=0;while(1){if(!(b[n+mb>>0]|0)){ob=f[l+(mb*12|0)>>2]|0;pb=0;do{qb=lb+(pb<<2)|0;f[qb>>2]=(f[qb>>2]|0)+(f[ob+(pb<<2)>>2]|0);pb=pb+1|0}while((pb|0)!=(g|0));rb=(1<<mb|nb&255)&255}else rb=nb;mb=mb+1|0;if((mb|0)==(Ha|0)){sb=rb;break}else nb=rb}}else{nb=0;mb=0;while(1){if(!(b[n+nb>>0]|0))tb=(1<<nb|mb&255)&255;else tb=mb;nb=nb+1|0;if((nb|0)==(Ha|0)){sb=tb;break}else mb=tb}}mb=f[m>>2]|0;do if(S){f[mb>>2]=(f[mb>>2]|0)/(jb|0)|0;if(!na){nb=1;do{lb=mb+(nb<<2)|0;f[lb>>2]=(f[lb>>2]|0)/(jb|0)|0;nb=nb+1|0}while((nb|0)!=(g|0));nb=f[Z>>2]|0;if(S)ub=nb;else{vb=0;wb=nb;break}}else ub=f[Z>>2]|0;nb=0;lb=0;while(1){pb=(f[mb+(nb<<2)>>2]|0)-(f[Ba+(nb<<2)>>2]|0)|0;ob=((pb|0)>-1?pb:0-pb|0)+lb|0;f[Fa+(nb<<2)>>2]=pb;f[ub+(nb<<2)>>2]=pb<<1^pb>>31;nb=nb+1|0;if((nb|0)==(g|0)){vb=ob;wb=ub;break}else lb=ob}}else{vb=0;wb=f[Z>>2]|0}while(0);mo(j,_,wb,g);mb=Zk(j)|0;lb=I;nb=Bm(j)|0;ob=I;Xa=+wm(Aa,kb);pb=Vn(nb|0,ob|0,mb|0,lb|0)|0;Va=+W(+(Xa*Wa));lb=Vn(pb|0,I|0,~~Va>>>0|0,(+K(Va)>=1.0?(Va>0.0?~~+Y(+J(Va/4294967296.0),4294967295.0)>>>0:~~+W((Va-+(~~Va>>>0))/4294967296.0)>>>0):0)|0)|0;pb=f[r>>2]|0;if(!((pb|0)<=(lb|0)?!((pb|0)>=(lb|0)?(vb|0)<(f[T>>2]|0):0):0)){pb=r;f[pb>>2]=lb;f[pb+4>>2]=vb;b[U>>0]=sb;f[V>>2]=jb;f[v>>2]=f[m>>2];f[w>>2]=f[E>>2];f[k>>2]=f[v>>2];f[j>>2]=f[w>>2];Jf($,k,j);f[x>>2]=Ea;f[y>>2]=Oa;f[k>>2]=f[x>>2];f[j>>2]=f[y>>2];Jf(aa,k,j)}if(Ka)break;xb=b[Ma>>0]|0;pb=-1;lb=xb;while(1){mb=pb+-1|0;yb=Pa+mb|0;ob=lb;lb=b[yb>>0]|0;if((lb&255)<(ob&255))break;if((yb|0)==(n|0)){zb=84;break d}else pb=mb}mb=Pa+pb|0;if((lb&255)<(xb&255)){Ab=Ma;Bb=xb}else{ob=Pa;nb=Ma;while(1){qb=nb+-1|0;if((lb&255)<(h[ob+-2>>0]|0)){Ab=qb;Bb=1;break}else{Cb=nb;nb=qb;ob=Cb}}}b[yb>>0]=Bb;b[Ab>>0]=lb;if((pb|0)<-1){Db=mb;Eb=Ma}else continue;while(1){ob=b[Db>>0]|0;b[Db>>0]=b[Eb>>0]|0;b[Eb>>0]=ob;ob=Db+1|0;nb=Eb+-1|0;if(ob>>>0<nb>>>0){Db=ob;Eb=nb}else continue d}}if(((zb|0)==84?(zb=0,hb):0)?(kb=b[n>>0]|0,b[n>>0]=xb,b[Ma>>0]=kb,eb):0){kb=db;mb=la;do{pb=b[mb>>0]|0;b[mb>>0]=b[kb>>0]|0;b[kb>>0]=pb;mb=mb+1|0;kb=kb+-1|0}while(mb>>>0<kb>>>0)}if((jb|0)>=(Ha|0)){Ya=fb;Za=Fa;_a=fb;$a=Fa;ab=Oa;bb=Ea;cb=Fa;break}else jb=jb+1|0}}jb=f[V>>2]|0;Fa=Vn(Ia|0,La|0,jb|0,((jb|0)<0)<<31>>31|0)|0;jb=Na;f[jb>>2]=Fa;f[jb+4>>2]=I;if(S){jb=f[aa>>2]|0;Fa=f[C>>2]|0;Ea=0;do{Oa=f[jb+(Ea<<2)>>2]|0;f[Fa+(Ea<<2)>>2]=Oa<<1^Oa>>31;Ea=Ea+1|0}while((Ea|0)!=(g|0));Fb=Fa}else Fb=f[C>>2]|0;lo(j,_,Fb,g);if((Ha|0)>0){Gb=a+60+(Ca*12|0)|0;Fa=a+60+(Ca*12|0)+4|0;Ea=a+60+(Ca*12|0)+8|0;jb=0;do{Na=f[Fa>>2]|0;La=f[Ea>>2]|0;Ia=(Na|0)==(La<<5|0);if(!(1<<jb&h[U>>0])){if(Ia){if((Na+1|0)<0){zb=108;break b}Oa=La<<6;fb=Na+32&-32;vi(Gb,Na>>>0<1073741823?(Oa>>>0<fb>>>0?fb:Oa):2147483647);Hb=f[Fa>>2]|0}else Hb=Na;f[Fa>>2]=Hb+1;Oa=(f[Gb>>2]|0)+(Hb>>>5<<2)|0;f[Oa>>2]=f[Oa>>2]|1<<(Hb&31)}else{if(Ia){if((Na+1|0)<0){zb=113;break b}Ia=La<<6;La=Na+32&-32;vi(Gb,Na>>>0<1073741823?(Ia>>>0<La>>>0?La:Ia):2147483647);Ib=f[Fa>>2]|0}else Ib=Na;f[Fa>>2]=Ib+1;Na=(f[Gb>>2]|0)+(Ib>>>5<<2)|0;f[Na>>2]=f[Na>>2]&~(1<<(Ib&31))}jb=jb+1|0}while((jb|0)<(Ha|0))}jb=d+(Da<<2)|0;Fa=f[z>>2]|0;if((Fa|0)>0){Ea=0;Ca=f[$>>2]|0;Na=Fa;while(1){if((Na|0)>0){Fa=0;do{Ia=f[Ca+(Fa<<2)>>2]|0;La=f[ba>>2]|0;if((Ia|0)>(La|0)){Oa=f[ca>>2]|0;f[Oa+(Fa<<2)>>2]=La;Jb=Oa}else{Oa=f[da>>2]|0;La=f[ca>>2]|0;f[La+(Fa<<2)>>2]=(Ia|0)<(Oa|0)?Oa:Ia;Jb=La}Fa=Fa+1|0}while((Fa|0)<(f[z>>2]|0));Kb=Jb}else Kb=f[ca>>2]|0;Fa=(f[Ba+(Ea<<2)>>2]|0)-(f[Kb+(Ea<<2)>>2]|0)|0;La=jb+(Ea<<2)|0;f[La>>2]=Fa;do if((Fa|0)<(f[ea>>2]|0)){Lb=(f[fa>>2]|0)+Fa|0;zb=103}else{if((Fa|0)<=(f[ga>>2]|0))break;Lb=Fa-(f[fa>>2]|0)|0;zb=103}while(0);if((zb|0)==103){zb=0;f[La>>2]=Lb}Ea=Ea+1|0;Na=f[z>>2]|0;if((Ea|0)>=(Na|0))break;else Ca=Kb}}Ca=f[ha>>2]|0;if(Ca|0){Na=f[ka>>2]|0;if((Na|0)!=(Ca|0))f[ka>>2]=Na+(~((Na+-4-Ca|0)>>>2)<<2);Oq(Ca)}Ca=f[ia>>2]|0;if(Ca|0){Na=f[ja>>2]|0;if((Na|0)!=(Ca|0))f[ja>>2]=Na+(~((Na+-4-Ca|0)>>>2)<<2);Oq(Ca)}if((pa|0)<=2){Mb=$a;Nb=_a;break a}Ca=f[B>>2]|0;ra=f[Ca>>2]|0;Na=qa+-1|0;if((f[Ca+4>>2]|0)-ra>>2>>>0<=Na>>>0){za=Ca;zb=18;break}else{Ca=qa;qa=Na;sa=bb;ta=ab;ua=cb;va=$a;wa=_a;xa=Za;ya=Ya;pa=Ca}}if((zb|0)==18)aq(za);else if((zb|0)==108)aq(Gb);else if((zb|0)==113)aq(Gb)}else{Mb=M;Nb=N}while(0);N=f[l>>2]|0;if((g|0)>0?(f[N>>2]=0,(g|0)!=1):0){M=1;do{f[N+(M<<2)>>2]=0;M=M+1|0}while((M|0)!=(g|0))}g=f[z>>2]|0;if((g|0)>0){M=a+16|0;Gb=a+32|0;za=a+12|0;pa=a+28|0;Ya=a+20|0;ya=a+24|0;a=0;Za=N;N=g;while(1){if((N|0)>0){g=0;do{xa=f[Za+(g<<2)>>2]|0;_a=f[M>>2]|0;if((xa|0)>(_a|0)){wa=f[Gb>>2]|0;f[wa+(g<<2)>>2]=_a;Ob=wa}else{wa=f[za>>2]|0;_a=f[Gb>>2]|0;f[_a+(g<<2)>>2]=(xa|0)<(wa|0)?wa:xa;Ob=_a}g=g+1|0}while((g|0)<(f[z>>2]|0));Pb=Ob}else Pb=f[Gb>>2]|0;g=(f[c+(a<<2)>>2]|0)-(f[Pb+(a<<2)>>2]|0)|0;_a=d+(a<<2)|0;f[_a>>2]=g;if((g|0)>=(f[pa>>2]|0)){if((g|0)>(f[ya>>2]|0)){Qb=g-(f[Ya>>2]|0)|0;zb=139}}else{Qb=(f[Ya>>2]|0)+g|0;zb=139}if((zb|0)==139){zb=0;f[_a>>2]=Qb}a=a+1|0;N=f[z>>2]|0;if((a|0)>=(N|0))break;else Za=Pb}}if(Mb|0){if((Nb|0)!=(Mb|0))f[H>>2]=Nb+(~((Nb+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[m>>2]|0;if(Mb|0){m=f[E>>2]|0;if((m|0)!=(Mb|0))f[E>>2]=m+(~((m+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[l+36>>2]|0;if(Mb|0){m=l+40|0;E=f[m>>2]|0;if((E|0)!=(Mb|0))f[m>>2]=E+(~((E+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[l+24>>2]|0;if(Mb|0){E=l+28|0;m=f[E>>2]|0;if((m|0)!=(Mb|0))f[E>>2]=m+(~((m+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[l+12>>2]|0;if(Mb|0){m=l+16|0;E=f[m>>2]|0;if((E|0)!=(Mb|0))f[m>>2]=E+(~((E+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[l>>2]|0;if(!Mb){u=i;return 1}E=l+4|0;l=f[E>>2]|0;if((l|0)!=(Mb|0))f[E>>2]=l+(~((l+-4-Mb|0)>>>2)<<2);Oq(Mb);u=i;return 1}function cb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;b=u;u=u+16|0;c=b;d=b+8|0;e=b+4|0;f[d>>2]=a;do if(a>>>0>=212){g=(a>>>0)/210|0;h=g*210|0;f[e>>2]=a-h;i=0;j=g;g=(Hl(6952,7144,e,c)|0)-6952>>2;k=h;a:while(1){l=(f[6952+(g<<2)>>2]|0)+k|0;h=5;while(1){if(h>>>0>=47){m=211;n=i;o=8;break}p=f[6760+(h<<2)>>2]|0;q=(l>>>0)/(p>>>0)|0;if(q>>>0<p>>>0){o=106;break a}if((l|0)==(X(q,p)|0)){r=i;break}else h=h+1|0}b:do if((o|0)==8){c:while(1){o=0;h=(l>>>0)/(m>>>0)|0;do if(h>>>0>=m>>>0)if((l|0)!=(X(h,m)|0)){p=m+10|0;q=(l>>>0)/(p>>>0)|0;if(q>>>0>=p>>>0)if((l|0)!=(X(q,p)|0)){q=m+12|0;s=(l>>>0)/(q>>>0)|0;if(s>>>0>=q>>>0)if((l|0)!=(X(s,q)|0)){s=m+16|0;t=(l>>>0)/(s>>>0)|0;if(t>>>0>=s>>>0)if((l|0)!=(X(t,s)|0)){t=m+18|0;v=(l>>>0)/(t>>>0)|0;if(v>>>0>=t>>>0)if((l|0)!=(X(v,t)|0)){v=m+22|0;w=(l>>>0)/(v>>>0)|0;if(w>>>0>=v>>>0)if((l|0)!=(X(w,v)|0)){w=m+28|0;x=(l>>>0)/(w>>>0)|0;if(x>>>0>=w>>>0)if((l|0)==(X(x,w)|0)){y=w;z=9;A=n}else{x=m+30|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+36|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+40|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+42|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+46|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+52|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+58|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+60|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+66|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+70|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+72|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+78|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+82|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+88|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+96|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+100|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+102|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+106|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+108|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+112|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+120|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+126|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+130|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+136|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+138|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+142|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+148|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+150|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+156|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+162|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+166|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+168|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+172|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+178|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+180|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+186|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+190|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+192|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+196|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+198|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+208|0;B=(l>>>0)/(x>>>0)|0;C=B>>>0<x>>>0;D=(l|0)==(X(B,x)|0);y=C|D?x:m+210|0;z=C?1:D?9:0;A=C?l:n}else{y=w;z=1;A=l}}else{y=v;z=9;A=n}else{y=v;z=1;A=l}}else{y=t;z=9;A=n}else{y=t;z=1;A=l}}else{y=s;z=9;A=n}else{y=s;z=1;A=l}}else{y=q;z=9;A=n}else{y=q;z=1;A=l}}else{y=p;z=9;A=n}else{y=p;z=1;A=l}}else{y=m;z=9;A=n}else{y=m;z=1;A=l}while(0);switch(z&15){case 9:{r=A;break b;break}case 0:{m=y;n=A;o=8;break}default:break c}}if(!z)r=A;else{o=107;break a}}while(0);h=g+1|0;p=(h|0)==48;q=j+(p&1)|0;i=r;j=q;g=p?0:h;k=q*210|0}if((o|0)==106){f[d>>2]=l;E=l;break}else if((o|0)==107){f[d>>2]=l;E=A;break}}else{k=Hl(6760,6952,d,c)|0;E=f[k>>2]|0}while(0);u=b;return E|0}function db(a,c,d,e,g,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0;i=u;u=u+256|0;e=i+104|0;j=i+240|0;k=i+224|0;l=i+160|0;m=i+140|0;n=i+248|0;o=i+72|0;p=i+40|0;q=i+128|0;r=i;s=i+232|0;t=i+220|0;v=i+216|0;w=i+212|0;x=i+208|0;y=i+152|0;z=f[a+28>>2]|0;A=f[a+32>>2]|0;B=l;C=B+48|0;do{f[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(!g){D=0;E=0}else{Ci(l,g);D=f[l+12>>2]|0;E=f[l+16>>2]|0}B=l+16|0;C=E-D>>2;F=D;D=E;if(C>>>0>=g>>>0){if(C>>>0>g>>>0?(E=F+(g<<2)|0,(E|0)!=(D|0)):0)f[B>>2]=D+(~((D+-4-E|0)>>>2)<<2)}else Ci(l+12|0,g-C|0);C=l+24|0;E=l+28|0;D=f[E>>2]|0;B=f[C>>2]|0;F=D-B>>2;G=B;B=D;if(F>>>0>=g>>>0){if(F>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[E>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(C,g-F|0);F=l+36|0;C=l+40|0;D=f[C>>2]|0;B=f[F>>2]|0;E=D-B>>2;G=B;B=D;if(E>>>0>=g>>>0){if(E>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[C>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(F,g-E|0);f[m>>2]=0;E=m+4|0;f[E>>2]=0;f[m+8>>2]=0;F=(g|0)==0;do if(!F)if(g>>>0>1073741823)aq(m);else{D=g<<2;B=ln(D)|0;f[m>>2]=B;C=B+(g<<2)|0;f[m+8>>2]=C;sj(B|0,0,D|0)|0;f[E>>2]=C;break}while(0);C=a+136|0;D=a+140|0;B=f[D>>2]|0;G=f[C>>2]|0;H=B-G>>2;L=G;G=B;if(H>>>0>=g>>>0){if(H>>>0>g>>>0?(B=L+(g<<2)|0,(B|0)!=(G|0)):0)f[D>>2]=G+(~((G+-4-B|0)>>>2)<<2)}else Ci(C,g-H|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;f[o+24>>2]=0;f[o+28>>2]=0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[p+24>>2]=0;f[p+28>>2]=0;f[q>>2]=0;H=q+4|0;f[H>>2]=0;f[q+8>>2]=0;if(F){M=0;N=0;O=0;P=0}else{F=g<<2;B=ln(F)|0;f[q>>2]=B;G=B+(g<<2)|0;f[q+8>>2]=G;sj(B|0,0,F|0)|0;f[H>>2]=G;M=B;N=G;O=G;P=B}B=a+36|0;G=f[B>>2]|0;F=f[G+4>>2]|0;D=f[G>>2]|0;L=F-D|0;a:do if((L|0)>4){Q=L>>2;R=z+64|0;S=z+28|0;T=(g|0)>0;U=r+4|0;V=r+8|0;Z=r+12|0;_=a+136|0;$=a+96|0;aa=r+16|0;ba=r+28|0;ca=a+8|0;da=j+4|0;ea=k+4|0;fa=e+4|0;ga=r+28|0;ha=r+16|0;ia=r+20|0;ja=r+32|0;ka=n+1|0;la=g<<2;ma=(g|0)==1;na=Q+-1|0;if(F-D>>2>>>0>na>>>0){oa=Q;pa=na;qa=D;ra=P;sa=O;ta=M;ua=M;va=N;wa=M;xa=N}else{ya=G;aq(ya)}b:while(1){na=f[qa+(pa<<2)>>2]|0;Q=(((na>>>0)%3|0|0)==0?2:-1)+na|0;za=Q>>>5;Aa=1<<(Q&31);Ba=(na|0)==-1|(Q|0)==-1;Ca=1;Da=0;Ea=na;c:while(1){Fa=Ca^1;Ga=Da;Ha=Ea;while(1){if((Ha|0)==-1){Ia=Ga;break c}Ja=f[l+(Ga*12|0)>>2]|0;if(((f[(f[z>>2]|0)+(Ha>>>5<<2)>>2]&1<<(Ha&31)|0)==0?(Ka=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ha<<2)>>2]|0,(Ka|0)!=-1):0)?(La=f[S>>2]|0,Ma=f[A>>2]|0,Na=f[Ma+(f[La+(Ka<<2)>>2]<<2)>>2]|0,Oa=Ka+1|0,Pa=f[Ma+(f[La+((((Oa>>>0)%3|0|0)==0?Ka+-2|0:Oa)<<2)>>2]<<2)>>2]|0,Oa=f[Ma+(f[La+((((Ka>>>0)%3|0|0)==0?2:-1)+Ka<<2)>>2]<<2)>>2]|0,(Na|0)<(pa|0)&(Pa|0)<(pa|0)&(Oa|0)<(pa|0)):0){Ka=X(Na,g)|0;Na=X(Pa,g)|0;Pa=X(Oa,g)|0;if(T){Oa=0;do{f[Ja+(Oa<<2)>>2]=(f[c+(Oa+Pa<<2)>>2]|0)+(f[c+(Oa+Na<<2)>>2]|0)-(f[c+(Oa+Ka<<2)>>2]|0);Oa=Oa+1|0}while((Oa|0)!=(g|0))}Oa=Ga+1|0;if((Oa|0)==4){Ia=4;break c}else Qa=Oa}else Qa=Ga;do if(Ca){Oa=Ha+1|0;Ka=((Oa>>>0)%3|0|0)==0?Ha+-2|0:Oa;if(((Ka|0)!=-1?(f[(f[z>>2]|0)+(Ka>>>5<<2)>>2]&1<<(Ka&31)|0)==0:0)?(Oa=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ka<<2)>>2]|0,Ka=Oa+1|0,(Oa|0)!=-1):0)Ra=((Ka>>>0)%3|0|0)==0?Oa+-2|0:Ka;else Ra=-1}else{Ka=(((Ha>>>0)%3|0|0)==0?2:-1)+Ha|0;if(((Ka|0)!=-1?(f[(f[z>>2]|0)+(Ka>>>5<<2)>>2]&1<<(Ka&31)|0)==0:0)?(Oa=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ka<<2)>>2]|0,(Oa|0)!=-1):0)if(!((Oa>>>0)%3|0)){Ra=Oa+2|0;break}else{Ra=Oa+-1|0;break}else Ra=-1}while(0);if((Ra|0)==(na|0)){Ia=Qa;break c}if((Ra|0)!=-1|Fa){Ga=Qa;Ha=Ra}else break}if(Ba){Ca=0;Da=Qa;Ea=-1;continue}if(f[(f[z>>2]|0)+(za<<2)>>2]&Aa|0){Ca=0;Da=Qa;Ea=-1;continue}Ha=f[(f[(f[R>>2]|0)+12>>2]|0)+(Q<<2)>>2]|0;if((Ha|0)==-1){Ca=0;Da=Qa;Ea=-1;continue}if(!((Ha>>>0)%3|0)){Ca=0;Da=Qa;Ea=Ha+2|0;continue}else{Ca=0;Da=Qa;Ea=Ha+-1|0;continue}}Ea=X(pa,g)|0;f[r>>2]=0;f[U>>2]=0;b[V>>0]=0;f[Z>>2]=0;f[Z+4>>2]=0;f[Z+8>>2]=0;f[Z+12>>2]=0;f[Z+16>>2]=0;f[Z+20>>2]=0;f[Z+24>>2]=0;Da=Ia+-1|0;Ca=p+(Da<<3)|0;Q=Ca;Aa=Vn(f[Q>>2]|0,f[Q+4>>2]|0,Ia|0,((Ia|0)<0)<<31>>31|0)|0;Q=I;za=Ca;f[za>>2]=Aa;f[za+4>>2]=Q;za=c+((X(oa+-2|0,g)|0)<<2)|0;Ca=c+(Ea<<2)|0;Ba=f[_>>2]|0;if(T){na=0;Ha=0;while(1){Ga=(f[za+(na<<2)>>2]|0)-(f[Ca+(na<<2)>>2]|0)|0;Fa=((Ga|0)>-1?Ga:0-Ga|0)+Ha|0;f[ta+(na<<2)>>2]=Ga;f[Ba+(na<<2)>>2]=Ga<<1^Ga>>31;na=na+1|0;if((na|0)==(g|0)){Sa=Fa;break}else Ha=Fa}}else Sa=0;mo(e,$,Ba,g);Ha=Zk(e)|0;na=I;Fa=Bm(e)|0;Ga=I;Oa=o+(Da<<3)|0;Ka=Oa;Na=f[Ka>>2]|0;Pa=f[Ka+4>>2]|0;Ta=+wm(Aa,Na);Ka=Vn(Fa|0,Ga|0,Ha|0,na|0)|0;Ua=+(Aa>>>0)+4294967296.0*+(Q|0);Va=+W(+(Ta*Ua));na=Vn(Ka|0,I|0,~~Va>>>0|0,(+K(Va)>=1.0?(Va>0.0?~~+Y(+J(Va/4294967296.0),4294967295.0)>>>0:~~+W((Va-+(~~Va>>>0))/4294967296.0)>>>0):0)|0)|0;Ka=r;f[Ka>>2]=na;f[Ka+4>>2]=Sa;b[V>>0]=0;f[Z>>2]=0;$f(aa,za,za+(g<<2)|0);f[s>>2]=ra;f[t>>2]=sa;f[j>>2]=f[s>>2];f[e>>2]=f[t>>2];Jf(ba,j,e);if((Ia|0)<1){Wa=xa;Xa=wa;Ya=va;Za=ua;_a=sa;$a=ra;ab=ra}else{Ka=n+Ia|0;na=f[q>>2]|0;Ha=na;Ga=f[H>>2]|0;Fa=Ka+-1|0;Ja=(Fa|0)==(n|0);La=Ka+-2|0;Ma=ka>>>0<La>>>0;bb=~Ia;cb=Ia+2+((bb|0)>-2?bb:-2)|0;bb=Ga;db=Fa>>>0>n>>>0;eb=0;fb=1;while(1){eb=eb+1|0;sj(n|0,1,cb|0)|0;sj(n|0,0,eb|0)|0;gb=Vn(Na|0,Pa|0,fb|0,0)|0;d:while(1){if(T){sj(f[m>>2]|0,0,la|0)|0;hb=f[m>>2]|0;ib=0;jb=0;while(1){if(!(b[n+ib>>0]|0)){kb=f[l+(ib*12|0)>>2]|0;lb=0;do{mb=hb+(lb<<2)|0;f[mb>>2]=(f[mb>>2]|0)+(f[kb+(lb<<2)>>2]|0);lb=lb+1|0}while((lb|0)!=(g|0));nb=(1<<ib|jb&255)&255}else nb=jb;ib=ib+1|0;if((ib|0)==(Ia|0)){ob=nb;break}else jb=nb}}else{jb=0;ib=0;while(1){if(!(b[n+jb>>0]|0))pb=(1<<jb|ib&255)&255;else pb=ib;jb=jb+1|0;if((jb|0)==(Ia|0)){ob=pb;break}else ib=pb}}ib=f[m>>2]|0;do if(T){f[ib>>2]=(f[ib>>2]|0)/(fb|0)|0;if(!ma){jb=1;do{hb=ib+(jb<<2)|0;f[hb>>2]=(f[hb>>2]|0)/(fb|0)|0;jb=jb+1|0}while((jb|0)!=(g|0));jb=f[_>>2]|0;if(T)qb=jb;else{rb=0;sb=jb;break}}else qb=f[_>>2]|0;jb=0;hb=0;while(1){lb=(f[ib+(jb<<2)>>2]|0)-(f[Ca+(jb<<2)>>2]|0)|0;kb=((lb|0)>-1?lb:0-lb|0)+hb|0;f[na+(jb<<2)>>2]=lb;f[qb+(jb<<2)>>2]=lb<<1^lb>>31;jb=jb+1|0;if((jb|0)==(g|0)){rb=kb;sb=qb;break}else hb=kb}}else{rb=0;sb=f[_>>2]|0}while(0);mo(e,$,sb,g);ib=Zk(e)|0;hb=I;jb=Bm(e)|0;kb=I;Va=+wm(Aa,gb);lb=Vn(jb|0,kb|0,ib|0,hb|0)|0;Ta=+W(+(Va*Ua));hb=Vn(lb|0,I|0,~~Ta>>>0|0,(+K(Ta)>=1.0?(Ta>0.0?~~+Y(+J(Ta/4294967296.0),4294967295.0)>>>0:~~+W((Ta-+(~~Ta>>>0))/4294967296.0)>>>0):0)|0)|0;lb=f[r>>2]|0;if(!((lb|0)<=(hb|0)?!((lb|0)>=(hb|0)?(rb|0)<(f[U>>2]|0):0):0)){lb=r;f[lb>>2]=hb;f[lb+4>>2]=rb;b[V>>0]=ob;f[Z>>2]=fb;f[v>>2]=f[m>>2];f[w>>2]=f[E>>2];f[j>>2]=f[v>>2];f[e>>2]=f[w>>2];Jf(aa,j,e);f[x>>2]=Ha;f[y>>2]=Ga;f[j>>2]=f[x>>2];f[e>>2]=f[y>>2];Jf(ba,j,e)}if(Ja)break;tb=b[Fa>>0]|0;lb=-1;hb=tb;while(1){ib=lb+-1|0;ub=Ka+ib|0;kb=hb;hb=b[ub>>0]|0;if((hb&255)<(kb&255))break;if((ub|0)==(n|0)){vb=84;break d}else lb=ib}ib=Ka+lb|0;if((hb&255)<(tb&255)){wb=Fa;xb=tb}else{kb=Ka;jb=Fa;while(1){mb=jb+-1|0;if((hb&255)<(h[kb+-2>>0]|0)){wb=mb;xb=1;break}else{yb=jb;jb=mb;kb=yb}}}b[ub>>0]=xb;b[wb>>0]=hb;if((lb|0)<-1){zb=ib;Ab=Fa}else continue;while(1){kb=b[zb>>0]|0;b[zb>>0]=b[Ab>>0]|0;b[Ab>>0]=kb;kb=zb+1|0;jb=Ab+-1|0;if(kb>>>0<jb>>>0){zb=kb;Ab=jb}else continue d}}if(((vb|0)==84?(vb=0,db):0)?(gb=b[n>>0]|0,b[n>>0]=tb,b[Fa>>0]=gb,Ma):0){gb=La;ib=ka;do{lb=b[ib>>0]|0;b[ib>>0]=b[gb>>0]|0;b[gb>>0]=lb;ib=ib+1|0;gb=gb+-1|0}while(ib>>>0<gb>>>0)}if((fb|0)>=(Ia|0)){Wa=bb;Xa=na;Ya=bb;Za=na;_a=Ga;$a=Ha;ab=na;break}else fb=fb+1|0}}fb=f[Z>>2]|0;na=Vn(Na|0,Pa|0,fb|0,((fb|0)<0)<<31>>31|0)|0;fb=Oa;f[fb>>2]=na;f[fb+4>>2]=I;if(T){fb=f[ba>>2]|0;na=f[C>>2]|0;Ha=0;do{Ga=f[fb+(Ha<<2)>>2]|0;f[na+(Ha<<2)>>2]=Ga<<1^Ga>>31;Ha=Ha+1|0}while((Ha|0)!=(g|0));Bb=na}else Bb=f[C>>2]|0;lo(e,$,Bb,g);if((Ia|0)>0){Cb=a+40+(Da*12|0)|0;na=a+40+(Da*12|0)+4|0;Ha=a+40+(Da*12|0)+8|0;fb=0;do{Oa=f[na>>2]|0;Pa=f[Ha>>2]|0;Na=(Oa|0)==(Pa<<5|0);if(!(1<<fb&h[V>>0])){if(Na){if((Oa+1|0)<0){vb=95;break b}Ga=Pa<<6;bb=Oa+32&-32;vi(Cb,Oa>>>0<1073741823?(Ga>>>0<bb>>>0?bb:Ga):2147483647);Db=f[na>>2]|0}else Db=Oa;f[na>>2]=Db+1;Ga=(f[Cb>>2]|0)+(Db>>>5<<2)|0;f[Ga>>2]=f[Ga>>2]|1<<(Db&31)}else{if(Na){if((Oa+1|0)<0){vb=100;break b}Na=Pa<<6;Pa=Oa+32&-32;vi(Cb,Oa>>>0<1073741823?(Na>>>0<Pa>>>0?Pa:Na):2147483647);Eb=f[na>>2]|0}else Eb=Oa;f[na>>2]=Eb+1;Oa=(f[Cb>>2]|0)+(Eb>>>5<<2)|0;f[Oa>>2]=f[Oa>>2]&~(1<<(Eb&31))}fb=fb+1|0}while((fb|0)<(Ia|0))}fb=f[aa>>2]|0;na=d+(Ea<<2)|0;Ha=f[Ca+4>>2]|0;Da=f[fb>>2]|0;Oa=f[fb+4>>2]|0;f[j>>2]=f[Ca>>2];f[da>>2]=Ha;f[k>>2]=Da;f[ea>>2]=Oa;Od(e,ca,j,k);f[na>>2]=f[e>>2];f[na+4>>2]=f[fa>>2];na=f[ga>>2]|0;if(na|0){Oa=f[ja>>2]|0;if((Oa|0)!=(na|0))f[ja>>2]=Oa+(~((Oa+-4-na|0)>>>2)<<2);Oq(na)}na=f[ha>>2]|0;if(na|0){Oa=f[ia>>2]|0;if((Oa|0)!=(na|0))f[ia>>2]=Oa+(~((Oa+-4-na|0)>>>2)<<2);Oq(na)}if((oa|0)<=2){Fb=Za;Gb=Ya;break a}na=f[B>>2]|0;qa=f[na>>2]|0;Oa=pa+-1|0;if((f[na+4>>2]|0)-qa>>2>>>0<=Oa>>>0){ya=na;vb=18;break}else{na=pa;pa=Oa;ra=$a;sa=_a;ta=ab;ua=Za;va=Ya;wa=Xa;xa=Wa;oa=na}}if((vb|0)==18)aq(ya);else if((vb|0)==95)aq(Cb);else if((vb|0)==100)aq(Cb)}else{Fb=M;Gb=N}while(0);if((g|0)>0)sj(f[l>>2]|0,0,g<<2|0)|0;g=f[l>>2]|0;N=f[c+4>>2]|0;M=f[g>>2]|0;Cb=f[g+4>>2]|0;f[j>>2]=f[c>>2];f[j+4>>2]=N;f[k>>2]=M;f[k+4>>2]=Cb;Od(e,a+8|0,j,k);f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];if(Fb|0){if((Gb|0)!=(Fb|0))f[H>>2]=Gb+(~((Gb+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[m>>2]|0;if(Fb|0){m=f[E>>2]|0;if((m|0)!=(Fb|0))f[E>>2]=m+(~((m+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[l+36>>2]|0;if(Fb|0){m=l+40|0;E=f[m>>2]|0;if((E|0)!=(Fb|0))f[m>>2]=E+(~((E+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[l+24>>2]|0;if(Fb|0){E=l+28|0;m=f[E>>2]|0;if((m|0)!=(Fb|0))f[E>>2]=m+(~((m+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[l+12>>2]|0;if(Fb|0){m=l+16|0;E=f[m>>2]|0;if((E|0)!=(Fb|0))f[m>>2]=E+(~((E+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[l>>2]|0;if(!Fb){u=i;return 1}E=l+4|0;l=f[E>>2]|0;if((l|0)!=(Fb|0))f[E>>2]=l+(~((l+-4-Fb|0)>>>2)<<2);Oq(Fb);u=i;return 1}function eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0;c=u;u=u+32|0;d=c+16|0;e=c+4|0;g=c;f[a+36>>2]=b;h=a+24|0;i=a+28|0;j=f[i>>2]|0;k=f[h>>2]|0;l=j-k>>2;m=k;k=j;if(l>>>0>=b>>>0){if(l>>>0>b>>>0?(j=m+(b<<2)|0,(j|0)!=(k|0)):0)f[i>>2]=k+(~((k+-4-j|0)>>>2)<<2)}else Ch(h,b-l|0,6140);f[d>>2]=0;l=d+4|0;f[l>>2]=0;j=d+8|0;f[j>>2]=0;if(b){if((b|0)<0)aq(d);k=((b+-1|0)>>>5)+1|0;m=ln(k<<2)|0;f[d>>2]=m;f[j>>2]=k;f[l>>2]=b;k=b>>>5;sj(m|0,0,k<<2|0)|0;n=b&31;o=m+(k<<2)|0;k=m;if(!n){p=b;q=k;r=m}else{f[o>>2]=f[o>>2]&~(-1>>>(32-n|0));p=b;q=k;r=m}}else{p=0;q=0;r=0}m=a+4|0;k=f[a>>2]|0;n=(f[m>>2]|0)-k|0;o=n>>2;f[e>>2]=0;s=e+4|0;f[s>>2]=0;t=e+8|0;f[t>>2]=0;do if(o){if((n|0)<0)aq(e);v=((o+-1|0)>>>5)+1|0;w=ln(v<<2)|0;f[e>>2]=w;f[t>>2]=v;f[s>>2]=o;v=o>>>5;sj(w|0,0,v<<2|0)|0;x=o&31;y=w+(v<<2)|0;if(x|0)f[y>>2]=f[y>>2]&~(-1>>>(32-x|0));if(o>>>0>2){x=a+12|0;y=a+32|0;v=a+52|0;w=a+56|0;z=a+48|0;A=b;B=k;C=0;D=q;E=r;a:while(1){F=B;G=C*3|0;if((G|0)!=-1){H=f[F+(G<<2)>>2]|0;I=G+1|0;J=((I>>>0)%3|0|0)==0?G+-2|0:I;if((J|0)==-1)K=-1;else K=f[F+(J<<2)>>2]|0;J=(((G>>>0)%3|0|0)==0?2:-1)+G|0;if((J|0)==-1)L=-1;else L=f[F+(J<<2)>>2]|0;if((H|0)!=(K|0)?!((H|0)==(L|0)|(K|0)==(L|0)):0){H=0;J=A;F=E;I=D;while(1){M=H+G|0;if(!(f[(f[e>>2]|0)+(M>>>5<<2)>>2]&1<<(M&31))){N=f[(f[a>>2]|0)+(M<<2)>>2]|0;f[g>>2]=N;if(!(f[F+(N>>>5<<2)>>2]&1<<(N&31))){O=0;P=J;Q=N}else{N=f[i>>2]|0;if((N|0)==(f[y>>2]|0))Ri(h,6140);else{f[N>>2]=-1;f[i>>2]=N+4}N=f[v>>2]|0;if((N|0)==(f[w>>2]|0))Ri(z,g);else{f[N>>2]=f[g>>2];f[v>>2]=N+4}N=f[l>>2]|0;R=f[j>>2]|0;if((N|0)==(R<<5|0)){if((N+1|0)<0){S=50;break a}T=R<<6;R=N+32&-32;vi(d,N>>>0<1073741823?(T>>>0<R>>>0?R:T):2147483647);U=f[l>>2]|0}else U=N;f[l>>2]=U+1;N=(f[d>>2]|0)+(U>>>5<<2)|0;f[N>>2]=f[N>>2]&~(1<<(U&31));f[g>>2]=J;O=1;P=J+1|0;Q=J}N=f[d>>2]|0;T=N+(Q>>>5<<2)|0;f[T>>2]=f[T>>2]|1<<(Q&31);T=N;b:do if(O){R=M;while(1){if((R|0)==-1){S=64;break b}V=(f[e>>2]|0)+(R>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(R&31);V=f[g>>2]|0;f[(f[h>>2]|0)+(V<<2)>>2]=R;f[(f[a>>2]|0)+(R<<2)>>2]=V;V=R+1|0;W=((V>>>0)%3|0|0)==0?R+-2|0:V;do if((W|0)==-1)X=-1;else{V=f[(f[x>>2]|0)+(W<<2)>>2]|0;Y=V+1|0;if((V|0)==-1){X=-1;break}X=((Y>>>0)%3|0|0)==0?V+-2|0:Y}while(0);if((X|0)==(M|0))break;else R=X}}else{R=M;while(1){if((R|0)==-1){S=64;break b}W=(f[e>>2]|0)+(R>>>5<<2)|0;f[W>>2]=f[W>>2]|1<<(R&31);f[(f[h>>2]|0)+(f[g>>2]<<2)>>2]=R;W=R+1|0;Y=((W>>>0)%3|0|0)==0?R+-2|0:W;do if((Y|0)==-1)Z=-1;else{W=f[(f[x>>2]|0)+(Y<<2)>>2]|0;V=W+1|0;if((W|0)==-1){Z=-1;break}Z=((V>>>0)%3|0|0)==0?W+-2|0:V}while(0);if((Z|0)==(M|0))break;else R=Z}}while(0);c:do if((S|0)==64){S=0;if((M|0)==-1)break;R=(((M>>>0)%3|0|0)==0?2:-1)+M|0;if((R|0)==-1)break;Y=f[(f[x>>2]|0)+(R<<2)>>2]|0;if((Y|0)==-1)break;R=Y+(((Y>>>0)%3|0|0)==0?2:-1)|0;if((R|0)==-1)break;if(!O){Y=R;while(1){V=(f[e>>2]|0)+(Y>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(Y&31);V=(((Y>>>0)%3|0|0)==0?2:-1)+Y|0;if((V|0)==-1)break c;W=f[(f[x>>2]|0)+(V<<2)>>2]|0;if((W|0)==-1)break c;Y=W+(((W>>>0)%3|0|0)==0?2:-1)|0;if((Y|0)==-1)break c}}Y=f[a>>2]|0;W=R;do{V=(f[e>>2]|0)+(W>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(W&31);f[Y+(W<<2)>>2]=f[g>>2];V=(((W>>>0)%3|0|0)==0?2:-1)+W|0;if((V|0)==-1)break c;_=f[(f[x>>2]|0)+(V<<2)>>2]|0;if((_|0)==-1)break c;W=_+(((_>>>0)%3|0|0)==0?2:-1)|0}while((W|0)!=-1)}while(0);$=P;aa=T;ba=N}else{$=J;aa=I;ba=F}if((H|0)<2){H=H+1|0;J=$;F=ba;I=aa}else{ca=$;da=aa;ea=ba;break}}}else{ca=A;da=D;ea=E}}else{ca=A;da=D;ea=E}C=C+1|0;B=f[a>>2]|0;if(C>>>0>=(((f[m>>2]|0)-B>>2>>>0)/3|0)>>>0){S=18;break}else{A=ca;D=da;E=ea}}if((S|0)==18){fa=da;ga=f[l>>2]|0;break}else if((S|0)==50)aq(d)}else{fa=q;ga=p}}else{fa=q;ga=p}while(0);p=a+44|0;f[p>>2]=0;a=fa;fa=ga>>>5;q=a+(fa<<2)|0;S=ga&31;ga=(fa|0)!=0;d:do if(fa|S|0)if(!S){l=a;da=0;ea=ga;while(1){e:do if(ea){if(!(f[l>>2]&1)){ca=da+1|0;f[p>>2]=ca;ha=ca}else ha=da;if(!(f[l>>2]&2)){ca=ha+1|0;f[p>>2]=ca;ia=ca}else ia=ha;if(!(f[l>>2]&4)){ca=ia+1|0;f[p>>2]=ca;ja=ca}else ja=ia;if(!(f[l>>2]&8)){ca=ja+1|0;f[p>>2]=ca;ka=ca}else ka=ja;if(!(f[l>>2]&16)){ca=ka+1|0;f[p>>2]=ca;la=ca}else la=ka;if(!(f[l>>2]&32)){ca=la+1|0;f[p>>2]=ca;ma=ca}else ma=la;if(!(f[l>>2]&64)){ca=ma+1|0;f[p>>2]=ca;na=ca}else na=ma;if(!(f[l>>2]&128)){ca=na+1|0;f[p>>2]=ca;oa=ca}else oa=na;if(!(f[l>>2]&256)){ca=oa+1|0;f[p>>2]=ca;pa=ca}else pa=oa;if(!(f[l>>2]&512)){ca=pa+1|0;f[p>>2]=ca;qa=ca}else qa=pa;if(!(f[l>>2]&1024)){ca=qa+1|0;f[p>>2]=ca;ra=ca}else ra=qa;if(!(f[l>>2]&2048)){ca=ra+1|0;f[p>>2]=ca;sa=ca}else sa=ra;if(!(f[l>>2]&4096)){ca=sa+1|0;f[p>>2]=ca;ta=ca}else ta=sa;if(!(f[l>>2]&8192)){ca=ta+1|0;f[p>>2]=ca;ua=ca}else ua=ta;if(!(f[l>>2]&16384)){ca=ua+1|0;f[p>>2]=ca;va=ca}else va=ua;if(!(f[l>>2]&32768)){ca=va+1|0;f[p>>2]=ca;wa=ca}else wa=va;if(!(f[l>>2]&65536)){ca=wa+1|0;f[p>>2]=ca;xa=ca}else xa=wa;if(!(f[l>>2]&131072)){ca=xa+1|0;f[p>>2]=ca;ya=ca}else ya=xa;if(!(f[l>>2]&262144)){ca=ya+1|0;f[p>>2]=ca;za=ca}else za=ya;if(!(f[l>>2]&524288)){ca=za+1|0;f[p>>2]=ca;Aa=ca}else Aa=za;if(!(f[l>>2]&1048576)){ca=Aa+1|0;f[p>>2]=ca;Ba=ca}else Ba=Aa;if(!(f[l>>2]&2097152)){ca=Ba+1|0;f[p>>2]=ca;Ca=ca}else Ca=Ba;if(!(f[l>>2]&4194304)){ca=Ca+1|0;f[p>>2]=ca;Da=ca}else Da=Ca;if(!(f[l>>2]&8388608)){ca=Da+1|0;f[p>>2]=ca;Ea=ca}else Ea=Da;if(!(f[l>>2]&16777216)){ca=Ea+1|0;f[p>>2]=ca;Fa=ca}else Fa=Ea;if(!(f[l>>2]&33554432)){ca=Fa+1|0;f[p>>2]=ca;Ga=ca}else Ga=Fa;if(!(f[l>>2]&67108864)){ca=Ga+1|0;f[p>>2]=ca;Ha=ca}else Ha=Ga;if(!(f[l>>2]&134217728)){ca=Ha+1|0;f[p>>2]=ca;Ia=ca}else Ia=Ha;if(!(f[l>>2]&268435456)){ca=Ia+1|0;f[p>>2]=ca;Ja=ca}else Ja=Ia;if(!(f[l>>2]&536870912)){ca=Ja+1|0;f[p>>2]=ca;Ka=ca}else Ka=Ja;if(!(f[l>>2]&1073741824)){ca=Ka+1|0;f[p>>2]=ca;La=ca}else La=Ka;if((f[l>>2]|0)<=-1){Ma=La;break}ca=La+1|0;f[p>>2]=ca;Ma=ca}else{ca=0;m=da;while(1){if(!(f[l>>2]&1<<ca)){ba=m+1|0;f[p>>2]=ba;Na=ba}else Na=m;if((ca|0)==31){Ma=Na;break e}ca=ca+1|0;if(!ca)break d;else m=Na}}while(0);l=l+4|0;if((q|0)==(l|0))break;else{da=Ma;ea=1}}}else{if(ga){ea=0;da=a;l=0;while(1){if(!(f[da>>2]&1)){m=l+1|0;f[p>>2]=m;Oa=m;Pa=m}else{Oa=l;Pa=ea}if(!(f[da>>2]&2)){m=Oa+1|0;f[p>>2]=m;Qa=m;Ra=m}else{Qa=Oa;Ra=Pa}if(!(f[da>>2]&4)){m=Qa+1|0;f[p>>2]=m;Sa=m;Ta=m}else{Sa=Qa;Ta=Ra}if(!(f[da>>2]&8)){m=Sa+1|0;f[p>>2]=m;Ua=m;Va=m}else{Ua=Sa;Va=Ta}if(!(f[da>>2]&16)){m=Ua+1|0;f[p>>2]=m;Wa=m;Xa=m}else{Wa=Ua;Xa=Va}if(!(f[da>>2]&32)){m=Wa+1|0;f[p>>2]=m;Ya=m;Za=m}else{Ya=Wa;Za=Xa}if(!(f[da>>2]&64)){m=Ya+1|0;f[p>>2]=m;_a=m;$a=m}else{_a=Ya;$a=Za}if(!(f[da>>2]&128)){m=_a+1|0;f[p>>2]=m;ab=m;bb=m}else{ab=_a;bb=$a}if(!(f[da>>2]&256)){m=ab+1|0;f[p>>2]=m;cb=m;db=m}else{cb=ab;db=bb}if(!(f[da>>2]&512)){m=cb+1|0;f[p>>2]=m;eb=m;fb=m}else{eb=cb;fb=db}if(!(f[da>>2]&1024)){m=eb+1|0;f[p>>2]=m;gb=m;hb=m}else{gb=eb;hb=fb}if(!(f[da>>2]&2048)){m=gb+1|0;f[p>>2]=m;ib=m;jb=m}else{ib=gb;jb=hb}if(!(f[da>>2]&4096)){m=ib+1|0;f[p>>2]=m;kb=m;lb=m}else{kb=ib;lb=jb}if(!(f[da>>2]&8192)){m=kb+1|0;f[p>>2]=m;mb=m;nb=m}else{mb=kb;nb=lb}if(!(f[da>>2]&16384)){m=mb+1|0;f[p>>2]=m;ob=m;pb=m}else{ob=mb;pb=nb}if(!(f[da>>2]&32768)){m=ob+1|0;f[p>>2]=m;qb=m;rb=m}else{qb=ob;rb=pb}if(!(f[da>>2]&65536)){m=qb+1|0;f[p>>2]=m;sb=m;tb=m}else{sb=qb;tb=rb}if(!(f[da>>2]&131072)){m=sb+1|0;f[p>>2]=m;ub=m;vb=m}else{ub=sb;vb=tb}if(!(f[da>>2]&262144)){m=ub+1|0;f[p>>2]=m;wb=m;xb=m}else{wb=ub;xb=vb}if(!(f[da>>2]&524288)){m=wb+1|0;f[p>>2]=m;yb=m;zb=m}else{yb=wb;zb=xb}if(!(f[da>>2]&1048576)){m=yb+1|0;f[p>>2]=m;Ab=m;Bb=m}else{Ab=yb;Bb=zb}if(!(f[da>>2]&2097152)){m=Ab+1|0;f[p>>2]=m;Cb=m;Db=m}else{Cb=Ab;Db=Bb}if(!(f[da>>2]&4194304)){m=Cb+1|0;f[p>>2]=m;Eb=m;Fb=m}else{Eb=Cb;Fb=Db}if(!(f[da>>2]&8388608)){m=Eb+1|0;f[p>>2]=m;Gb=m;Hb=m}else{Gb=Eb;Hb=Fb}if(!(f[da>>2]&16777216)){m=Gb+1|0;f[p>>2]=m;Ib=m;Jb=m}else{Ib=Gb;Jb=Hb}if(!(f[da>>2]&33554432)){m=Ib+1|0;f[p>>2]=m;Kb=m;Lb=m}else{Kb=Ib;Lb=Jb}if(!(f[da>>2]&67108864)){m=Kb+1|0;f[p>>2]=m;Mb=m;Nb=m}else{Mb=Kb;Nb=Lb}if(!(f[da>>2]&134217728)){m=Mb+1|0;f[p>>2]=m;Ob=m;Pb=m}else{Ob=Mb;Pb=Nb}if(!(f[da>>2]&268435456)){m=Ob+1|0;f[p>>2]=m;Qb=m;Rb=m}else{Qb=Ob;Rb=Pb}if(!(f[da>>2]&536870912)){m=Qb+1|0;f[p>>2]=m;Sb=m;Tb=m}else{Sb=Qb;Tb=Rb}if(!(f[da>>2]&1073741824)){m=Sb+1|0;f[p>>2]=m;Ub=m;Vb=m}else{Ub=Sb;Vb=Tb}if((f[da>>2]|0)>-1){m=Ub+1|0;f[p>>2]=m;Wb=m;Xb=m}else{Wb=Ub;Xb=Vb}m=da+4|0;if((q|0)==(m|0)){Yb=m;Zb=Xb;break}else{ea=Xb;da=m;l=Wb}}}else{Yb=a;Zb=0}l=0;da=Zb;while(1){if(!(f[Yb>>2]&1<<l)){ea=da+1|0;f[p>>2]=ea;_b=ea}else _b=da;l=l+1|0;if((l|0)==(S|0))break;else da=_b}}while(0);_b=f[e>>2]|0;if(_b|0)Oq(_b);_b=f[d>>2]|0;if(!_b){u=c;return 1}Oq(_b);u=c;return 1}function fb(a,c,d,e,g,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0;i=u;u=u+256|0;e=i+104|0;j=i+240|0;k=i+224|0;l=i+160|0;m=i+140|0;n=i+248|0;o=i+72|0;p=i+40|0;q=i+128|0;r=i;s=i+232|0;t=i+220|0;v=i+216|0;w=i+212|0;x=i+208|0;y=i+152|0;z=f[a+28>>2]|0;A=f[a+32>>2]|0;B=l;C=B+48|0;do{f[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(!g){D=0;E=0}else{Ci(l,g);D=f[l+12>>2]|0;E=f[l+16>>2]|0}B=l+16|0;C=E-D>>2;F=D;D=E;if(C>>>0>=g>>>0){if(C>>>0>g>>>0?(E=F+(g<<2)|0,(E|0)!=(D|0)):0)f[B>>2]=D+(~((D+-4-E|0)>>>2)<<2)}else Ci(l+12|0,g-C|0);C=l+24|0;E=l+28|0;D=f[E>>2]|0;B=f[C>>2]|0;F=D-B>>2;G=B;B=D;if(F>>>0>=g>>>0){if(F>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[E>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(C,g-F|0);F=l+36|0;C=l+40|0;D=f[C>>2]|0;B=f[F>>2]|0;E=D-B>>2;G=B;B=D;if(E>>>0>=g>>>0){if(E>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[C>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(F,g-E|0);f[m>>2]=0;E=m+4|0;f[E>>2]=0;f[m+8>>2]=0;F=(g|0)==0;do if(!F)if(g>>>0>1073741823)aq(m);else{D=g<<2;B=ln(D)|0;f[m>>2]=B;C=B+(g<<2)|0;f[m+8>>2]=C;sj(B|0,0,D|0)|0;f[E>>2]=C;break}while(0);C=a+136|0;D=a+140|0;B=f[D>>2]|0;G=f[C>>2]|0;H=B-G>>2;L=G;G=B;if(H>>>0>=g>>>0){if(H>>>0>g>>>0?(B=L+(g<<2)|0,(B|0)!=(G|0)):0)f[D>>2]=G+(~((G+-4-B|0)>>>2)<<2)}else Ci(C,g-H|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;f[o+24>>2]=0;f[o+28>>2]=0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[p+24>>2]=0;f[p+28>>2]=0;f[q>>2]=0;H=q+4|0;f[H>>2]=0;f[q+8>>2]=0;if(F){M=0;N=0;O=0;P=0}else{F=g<<2;B=ln(F)|0;f[q>>2]=B;G=B+(g<<2)|0;f[q+8>>2]=G;sj(B|0,0,F|0)|0;f[H>>2]=G;M=B;N=G;O=G;P=B}B=a+36|0;G=f[B>>2]|0;F=f[G+4>>2]|0;D=f[G>>2]|0;L=F-D|0;a:do if((L|0)>4){Q=L>>2;R=z+12|0;S=(g|0)>0;T=r+4|0;U=r+8|0;V=r+12|0;Z=a+136|0;_=a+96|0;$=r+16|0;aa=r+28|0;ba=a+8|0;ca=j+4|0;da=k+4|0;ea=e+4|0;fa=r+28|0;ga=r+16|0;ha=r+20|0;ia=r+32|0;ja=n+1|0;ka=g<<2;la=(g|0)==1;ma=Q+-1|0;if(F-D>>2>>>0>ma>>>0){na=Q;oa=ma;pa=P;qa=O;ra=M;sa=M;ta=N;ua=M;va=N;wa=D}else{xa=G;aq(xa)}b:while(1){ma=f[wa+(oa<<2)>>2]|0;Q=(((ma>>>0)%3|0|0)==0?2:-1)+ma|0;ya=(ma|0)==-1|(Q|0)==-1;za=1;Aa=0;Ba=ma;c:while(1){Ca=za^1;Da=Aa;Ea=Ba;while(1){if((Ea|0)==-1){Fa=Da;break c}Ga=f[l+(Da*12|0)>>2]|0;Ha=f[R>>2]|0;Ia=f[Ha+(Ea<<2)>>2]|0;if((Ia|0)!=-1){Ja=f[z>>2]|0;Ka=f[A>>2]|0;La=f[Ka+(f[Ja+(Ia<<2)>>2]<<2)>>2]|0;Ma=Ia+1|0;Na=((Ma>>>0)%3|0|0)==0?Ia+-2|0:Ma;if((Na|0)==-1)Oa=-1;else Oa=f[Ja+(Na<<2)>>2]|0;Na=f[Ka+(Oa<<2)>>2]|0;Ma=(((Ia>>>0)%3|0|0)==0?2:-1)+Ia|0;if((Ma|0)==-1)Pa=-1;else Pa=f[Ja+(Ma<<2)>>2]|0;Ma=f[Ka+(Pa<<2)>>2]|0;if((La|0)<(oa|0)&(Na|0)<(oa|0)&(Ma|0)<(oa|0)){Ka=X(La,g)|0;La=X(Na,g)|0;Na=X(Ma,g)|0;if(S){Ma=0;do{f[Ga+(Ma<<2)>>2]=(f[c+(Ma+Na<<2)>>2]|0)+(f[c+(Ma+La<<2)>>2]|0)-(f[c+(Ma+Ka<<2)>>2]|0);Ma=Ma+1|0}while((Ma|0)!=(g|0))}Ma=Da+1|0;if((Ma|0)==4){Fa=4;break c}else Qa=Ma}else Qa=Da}else Qa=Da;do if(za){Ma=Ea+1|0;Ka=((Ma>>>0)%3|0|0)==0?Ea+-2|0:Ma;if((Ka|0)!=-1?(Ma=f[Ha+(Ka<<2)>>2]|0,Ka=Ma+1|0,(Ma|0)!=-1):0)Ra=((Ka>>>0)%3|0|0)==0?Ma+-2|0:Ka;else Ra=-1}else{Ka=(((Ea>>>0)%3|0|0)==0?2:-1)+Ea|0;if((Ka|0)!=-1?(Ma=f[Ha+(Ka<<2)>>2]|0,(Ma|0)!=-1):0)if(!((Ma>>>0)%3|0)){Ra=Ma+2|0;break}else{Ra=Ma+-1|0;break}else Ra=-1}while(0);if((Ra|0)==(ma|0)){Fa=Qa;break c}if((Ra|0)!=-1|Ca){Da=Qa;Ea=Ra}else break}if(ya){za=0;Aa=Qa;Ba=-1;continue}Ea=f[Ha+(Q<<2)>>2]|0;if((Ea|0)==-1){za=0;Aa=Qa;Ba=-1;continue}if(!((Ea>>>0)%3|0)){za=0;Aa=Qa;Ba=Ea+2|0;continue}else{za=0;Aa=Qa;Ba=Ea+-1|0;continue}}Ba=X(oa,g)|0;f[r>>2]=0;f[T>>2]=0;b[U>>0]=0;f[V>>2]=0;f[V+4>>2]=0;f[V+8>>2]=0;f[V+12>>2]=0;f[V+16>>2]=0;f[V+20>>2]=0;f[V+24>>2]=0;Aa=Fa+-1|0;za=p+(Aa<<3)|0;Q=za;ya=Vn(f[Q>>2]|0,f[Q+4>>2]|0,Fa|0,((Fa|0)<0)<<31>>31|0)|0;Q=I;ma=za;f[ma>>2]=ya;f[ma+4>>2]=Q;ma=c+((X(na+-2|0,g)|0)<<2)|0;za=c+(Ba<<2)|0;Ea=f[Z>>2]|0;if(S){Da=0;Ca=0;while(1){Ma=(f[ma+(Da<<2)>>2]|0)-(f[za+(Da<<2)>>2]|0)|0;Ka=((Ma|0)>-1?Ma:0-Ma|0)+Ca|0;f[ra+(Da<<2)>>2]=Ma;f[Ea+(Da<<2)>>2]=Ma<<1^Ma>>31;Da=Da+1|0;if((Da|0)==(g|0)){Sa=Ka;break}else Ca=Ka}}else Sa=0;mo(e,_,Ea,g);Ca=Zk(e)|0;Da=I;Ka=Bm(e)|0;Ma=I;La=o+(Aa<<3)|0;Na=La;Ga=f[Na>>2]|0;Ja=f[Na+4>>2]|0;Ta=+wm(ya,Ga);Na=Vn(Ka|0,Ma|0,Ca|0,Da|0)|0;Ua=+(ya>>>0)+4294967296.0*+(Q|0);Va=+W(+(Ta*Ua));Da=Vn(Na|0,I|0,~~Va>>>0|0,(+K(Va)>=1.0?(Va>0.0?~~+Y(+J(Va/4294967296.0),4294967295.0)>>>0:~~+W((Va-+(~~Va>>>0))/4294967296.0)>>>0):0)|0)|0;Na=r;f[Na>>2]=Da;f[Na+4>>2]=Sa;b[U>>0]=0;f[V>>2]=0;$f($,ma,ma+(g<<2)|0);f[s>>2]=pa;f[t>>2]=qa;f[j>>2]=f[s>>2];f[e>>2]=f[t>>2];Jf(aa,j,e);if((Fa|0)<1){Wa=va;Xa=ua;Ya=ta;Za=sa;_a=qa;$a=pa;ab=pa}else{Na=n+Fa|0;Da=f[q>>2]|0;Ca=Da;Ma=f[H>>2]|0;Ka=Na+-1|0;Ia=(Ka|0)==(n|0);bb=Na+-2|0;cb=ja>>>0<bb>>>0;db=~Fa;eb=Fa+2+((db|0)>-2?db:-2)|0;db=Ma;fb=Ka>>>0>n>>>0;gb=0;hb=1;while(1){gb=gb+1|0;sj(n|0,1,eb|0)|0;sj(n|0,0,gb|0)|0;ib=Vn(Ga|0,Ja|0,hb|0,0)|0;d:while(1){if(S){sj(f[m>>2]|0,0,ka|0)|0;jb=f[m>>2]|0;kb=0;lb=0;while(1){if(!(b[n+kb>>0]|0)){mb=f[l+(kb*12|0)>>2]|0;nb=0;do{ob=jb+(nb<<2)|0;f[ob>>2]=(f[ob>>2]|0)+(f[mb+(nb<<2)>>2]|0);nb=nb+1|0}while((nb|0)!=(g|0));pb=(1<<kb|lb&255)&255}else pb=lb;kb=kb+1|0;if((kb|0)==(Fa|0)){qb=pb;break}else lb=pb}}else{lb=0;kb=0;while(1){if(!(b[n+lb>>0]|0))rb=(1<<lb|kb&255)&255;else rb=kb;lb=lb+1|0;if((lb|0)==(Fa|0)){qb=rb;break}else kb=rb}}kb=f[m>>2]|0;do if(S){f[kb>>2]=(f[kb>>2]|0)/(hb|0)|0;if(!la){lb=1;do{jb=kb+(lb<<2)|0;f[jb>>2]=(f[jb>>2]|0)/(hb|0)|0;lb=lb+1|0}while((lb|0)!=(g|0));lb=f[Z>>2]|0;if(S)sb=lb;else{tb=0;ub=lb;break}}else sb=f[Z>>2]|0;lb=0;jb=0;while(1){nb=(f[kb+(lb<<2)>>2]|0)-(f[za+(lb<<2)>>2]|0)|0;mb=((nb|0)>-1?nb:0-nb|0)+jb|0;f[Da+(lb<<2)>>2]=nb;f[sb+(lb<<2)>>2]=nb<<1^nb>>31;lb=lb+1|0;if((lb|0)==(g|0)){tb=mb;ub=sb;break}else jb=mb}}else{tb=0;ub=f[Z>>2]|0}while(0);mo(e,_,ub,g);kb=Zk(e)|0;jb=I;lb=Bm(e)|0;mb=I;Va=+wm(ya,ib);nb=Vn(lb|0,mb|0,kb|0,jb|0)|0;Ta=+W(+(Va*Ua));jb=Vn(nb|0,I|0,~~Ta>>>0|0,(+K(Ta)>=1.0?(Ta>0.0?~~+Y(+J(Ta/4294967296.0),4294967295.0)>>>0:~~+W((Ta-+(~~Ta>>>0))/4294967296.0)>>>0):0)|0)|0;nb=f[r>>2]|0;if(!((nb|0)<=(jb|0)?!((nb|0)>=(jb|0)?(tb|0)<(f[T>>2]|0):0):0)){nb=r;f[nb>>2]=jb;f[nb+4>>2]=tb;b[U>>0]=qb;f[V>>2]=hb;f[v>>2]=f[m>>2];f[w>>2]=f[E>>2];f[j>>2]=f[v>>2];f[e>>2]=f[w>>2];Jf($,j,e);f[x>>2]=Ca;f[y>>2]=Ma;f[j>>2]=f[x>>2];f[e>>2]=f[y>>2];Jf(aa,j,e)}if(Ia)break;vb=b[Ka>>0]|0;nb=-1;jb=vb;while(1){kb=nb+-1|0;wb=Na+kb|0;mb=jb;jb=b[wb>>0]|0;if((jb&255)<(mb&255))break;if((wb|0)==(n|0)){xb=84;break d}else nb=kb}kb=Na+nb|0;if((jb&255)<(vb&255)){yb=Ka;zb=vb}else{mb=Na;lb=Ka;while(1){ob=lb+-1|0;if((jb&255)<(h[mb+-2>>0]|0)){yb=ob;zb=1;break}else{Ab=lb;lb=ob;mb=Ab}}}b[wb>>0]=zb;b[yb>>0]=jb;if((nb|0)<-1){Bb=kb;Cb=Ka}else continue;while(1){mb=b[Bb>>0]|0;b[Bb>>0]=b[Cb>>0]|0;b[Cb>>0]=mb;mb=Bb+1|0;lb=Cb+-1|0;if(mb>>>0<lb>>>0){Bb=mb;Cb=lb}else continue d}}if(((xb|0)==84?(xb=0,fb):0)?(ib=b[n>>0]|0,b[n>>0]=vb,b[Ka>>0]=ib,cb):0){ib=bb;kb=ja;do{nb=b[kb>>0]|0;b[kb>>0]=b[ib>>0]|0;b[ib>>0]=nb;kb=kb+1|0;ib=ib+-1|0}while(kb>>>0<ib>>>0)}if((hb|0)>=(Fa|0)){Wa=db;Xa=Da;Ya=db;Za=Da;_a=Ma;$a=Ca;ab=Da;break}else hb=hb+1|0}}hb=f[V>>2]|0;Da=Vn(Ga|0,Ja|0,hb|0,((hb|0)<0)<<31>>31|0)|0;hb=La;f[hb>>2]=Da;f[hb+4>>2]=I;if(S){hb=f[aa>>2]|0;Da=f[C>>2]|0;Ca=0;do{Ma=f[hb+(Ca<<2)>>2]|0;f[Da+(Ca<<2)>>2]=Ma<<1^Ma>>31;Ca=Ca+1|0}while((Ca|0)!=(g|0));Db=Da}else Db=f[C>>2]|0;lo(e,_,Db,g);if((Fa|0)>0){Eb=a+40+(Aa*12|0)|0;Da=a+40+(Aa*12|0)+4|0;Ca=a+40+(Aa*12|0)+8|0;hb=0;do{La=f[Da>>2]|0;Ja=f[Ca>>2]|0;Ga=(La|0)==(Ja<<5|0);if(!(1<<hb&h[U>>0])){if(Ga){if((La+1|0)<0){xb=95;break b}Ma=Ja<<6;db=La+32&-32;vi(Eb,La>>>0<1073741823?(Ma>>>0<db>>>0?db:Ma):2147483647);Fb=f[Da>>2]|0}else Fb=La;f[Da>>2]=Fb+1;Ma=(f[Eb>>2]|0)+(Fb>>>5<<2)|0;f[Ma>>2]=f[Ma>>2]|1<<(Fb&31)}else{if(Ga){if((La+1|0)<0){xb=100;break b}Ga=Ja<<6;Ja=La+32&-32;vi(Eb,La>>>0<1073741823?(Ga>>>0<Ja>>>0?Ja:Ga):2147483647);Gb=f[Da>>2]|0}else Gb=La;f[Da>>2]=Gb+1;La=(f[Eb>>2]|0)+(Gb>>>5<<2)|0;f[La>>2]=f[La>>2]&~(1<<(Gb&31))}hb=hb+1|0}while((hb|0)<(Fa|0))}hb=f[$>>2]|0;Da=d+(Ba<<2)|0;Ca=f[za+4>>2]|0;Aa=f[hb>>2]|0;La=f[hb+4>>2]|0;f[j>>2]=f[za>>2];f[ca>>2]=Ca;f[k>>2]=Aa;f[da>>2]=La;Od(e,ba,j,k);f[Da>>2]=f[e>>2];f[Da+4>>2]=f[ea>>2];Da=f[fa>>2]|0;if(Da|0){La=f[ia>>2]|0;if((La|0)!=(Da|0))f[ia>>2]=La+(~((La+-4-Da|0)>>>2)<<2);Oq(Da)}Da=f[ga>>2]|0;if(Da|0){La=f[ha>>2]|0;if((La|0)!=(Da|0))f[ha>>2]=La+(~((La+-4-Da|0)>>>2)<<2);Oq(Da)}if((na|0)<=2){Hb=Za;Ib=Ya;break a}Da=f[B>>2]|0;wa=f[Da>>2]|0;La=oa+-1|0;if((f[Da+4>>2]|0)-wa>>2>>>0<=La>>>0){xa=Da;xb=18;break}else{Da=oa;oa=La;pa=$a;qa=_a;ra=ab;sa=Za;ta=Ya;ua=Xa;va=Wa;na=Da}}if((xb|0)==18)aq(xa);else if((xb|0)==95)aq(Eb);else if((xb|0)==100)aq(Eb)}else{Hb=M;Ib=N}while(0);if((g|0)>0)sj(f[l>>2]|0,0,g<<2|0)|0;g=f[l>>2]|0;N=f[c+4>>2]|0;M=f[g>>2]|0;Eb=f[g+4>>2]|0;f[j>>2]=f[c>>2];f[j+4>>2]=N;f[k>>2]=M;f[k+4>>2]=Eb;Od(e,a+8|0,j,k);f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];if(Hb|0){if((Ib|0)!=(Hb|0))f[H>>2]=Ib+(~((Ib+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[m>>2]|0;if(Hb|0){m=f[E>>2]|0;if((m|0)!=(Hb|0))f[E>>2]=m+(~((m+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[l+36>>2]|0;if(Hb|0){m=l+40|0;E=f[m>>2]|0;if((E|0)!=(Hb|0))f[m>>2]=E+(~((E+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[l+24>>2]|0;if(Hb|0){E=l+28|0;m=f[E>>2]|0;if((m|0)!=(Hb|0))f[E>>2]=m+(~((m+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[l+12>>2]|0;if(Hb|0){m=l+16|0;E=f[m>>2]|0;if((E|0)!=(Hb|0))f[m>>2]=E+(~((E+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[l>>2]|0;if(!Hb){u=i;return 1}E=l+4|0;l=f[E>>2]|0;if((l|0)!=(Hb|0))f[E>>2]=l+(~((l+-4-Hb|0)>>>2)<<2);Oq(Hb);u=i;return 1}function gb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=Oa,La=0,Ma=0,Na=0,Pa=0,Qa=Oa,Ra=0,Sa=0,Ta=0,Ua=0,Va=0;c=u;u=u+80|0;d=c+60|0;e=c+48|0;g=c+24|0;h=c+12|0;i=c;j=a+28|0;k=f[j>>2]|0;l=f[k+4>>2]|0;m=f[l+80>>2]|0;o=a+4|0;p=a+8|0;q=f[p>>2]|0;r=f[o>>2]|0;s=(q|0)==(r|0);t=r;if(s){f[a+72>>2]=0;v=1;u=c;return v|0}w=f[l+8>>2]|0;x=q-r>>2;r=0;q=0;do{r=r+(b[(f[w+(f[t+(q<<2)>>2]<<2)>>2]|0)+24>>0]|0)|0;q=q+1|0}while(q>>>0<x>>>0);f[a+72>>2]=r;if(s){v=1;u=c;return v|0}s=g+4|0;r=g+8|0;x=d+8|0;q=d+4|0;w=d+11|0;y=g+12|0;z=d+8|0;A=d+4|0;B=d+11|0;C=h+4|0;D=h+8|0;E=i+8|0;F=i+4|0;G=d+11|0;H=d+4|0;I=i+11|0;J=d+8|0;K=d+4|0;L=d+11|0;M=d+11|0;N=d+4|0;O=h+8|0;P=a+40|0;Q=a+44|0;R=a+36|0;S=a+64|0;T=a+68|0;U=a+60|0;V=g+8|0;W=g+20|0;X=e+8|0;Y=e+4|0;Z=e+11|0;_=g+4|0;aa=g+8|0;ba=h+4|0;ca=h+8|0;da=h+8|0;ea=a+52|0;fa=a+56|0;ga=a+48|0;a=g+8|0;ha=0;ia=t;t=l;l=k;a:while(1){k=f[ia+(ha<<2)>>2]|0;ja=f[(f[t+8>>2]|0)+(k<<2)>>2]|0;switch(f[ja+28>>2]|0){case 9:{f[g>>2]=1196;f[s>>2]=-1;f[r>>2]=0;f[r+4>>2]=0;f[r+8>>2]=0;f[r+12>>2]=0;ka=f[l+48>>2]|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;la=ln(32)|0;f[d>>2]=la;f[x>>2]=-2147483616;f[q>>2]=17;ma=la;na=14495;oa=ma+17|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[la+17>>0]=0;pa=ka+16|0;qa=f[pa>>2]|0;if(qa){ra=pa;sa=qa;b:while(1){qa=sa;while(1){if((f[qa+16>>2]|0)>=(k|0))break;ta=f[qa+4>>2]|0;if(!ta){ua=ra;break b}else qa=ta}sa=f[qa>>2]|0;if(!sa){ua=qa;break}else ra=qa}if(((ua|0)!=(pa|0)?(k|0)>=(f[ua+16>>2]|0):0)?(ra=ua+20|0,(Jh(ra,d)|0)!=0):0)va=Hk(ra,d,-1)|0;else wa=17}else wa=17;if((wa|0)==17){wa=0;va=Hk(ka,d,-1)|0}if((b[w>>0]|0)<0)Oq(f[d>>2]|0);if((va|0)<1)xa=1;else{ra=f[(f[j>>2]|0)+48>>2]|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;sa=ln(32)|0;f[d>>2]=sa;f[z>>2]=-2147483616;f[A>>2]=19;ma=sa;na=14438;oa=ma+19|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[sa+19>>0]=0;ka=ra+16|0;pa=f[ka>>2]|0;if(pa){la=ka;ta=pa;c:while(1){pa=ta;while(1){if((f[pa+16>>2]|0)>=(k|0))break;ya=f[pa+4>>2]|0;if(!ya){za=la;break c}else pa=ya}ta=f[pa>>2]|0;if(!ta){za=pa;break}else la=pa}if((za|0)!=(ka|0)?(k|0)>=(f[za+16>>2]|0):0)Aa=za+20|0;else wa=29}else wa=29;if((wa|0)==29){wa=0;Aa=ra}if(!(Jh(Aa,d)|0))Ba=0;else{la=f[(f[j>>2]|0)+48>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;ta=ln(32)|0;f[e>>2]=ta;f[X>>2]=-2147483616;f[Y>>2]=18;ma=ta;na=14458;oa=ma+18|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[ta+18>>0]=0;ra=la+16|0;ka=f[ra>>2]|0;if(ka){sa=ra;qa=ka;d:while(1){ka=qa;while(1){if((f[ka+16>>2]|0)>=(k|0))break;ya=f[ka+4>>2]|0;if(!ya){Ca=sa;break d}else ka=ya}qa=f[ka>>2]|0;if(!qa){Ca=ka;break}else sa=ka}if((Ca|0)!=(ra|0)?(k|0)>=(f[Ca+16>>2]|0):0)Da=Ca+20|0;else wa=39}else wa=39;if((wa|0)==39){wa=0;Da=la}sa=(Jh(Da,e)|0)!=0;if((b[Z>>0]|0)<0)Oq(f[e>>2]|0);Ba=sa}if((b[B>>0]|0)<0)Oq(f[d>>2]|0);if(Ba){sa=ja+24|0;qa=b[sa>>0]|0;ta=qa<<24>>24;f[h>>2]=0;f[C>>2]=0;f[D>>2]=0;if(!(qa<<24>>24))Ea=0;else{if(qa<<24>>24<0){wa=48;break a}qa=ta<<2;pa=ln(qa)|0;f[h>>2]=pa;ya=pa+(ta<<2)|0;f[O>>2]=ya;sj(pa|0,0,qa|0)|0;f[C>>2]=ya;Ea=pa}pa=f[(f[j>>2]|0)+48>>2]|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;ya=ln(32)|0;f[i>>2]=ya;f[E>>2]=-2147483616;f[F>>2]=19;ma=ya;na=14438;oa=ma+19|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[ya+19>>0]=0;la=b[sa>>0]|0;ra=la<<24>>24;qa=pa+16|0;ta=f[qa>>2]|0;if(ta){Fa=qa;Ga=ta;e:while(1){ta=Ga;while(1){if((f[ta+16>>2]|0)>=(k|0))break;Ha=f[ta+4>>2]|0;if(!Ha){Ia=Fa;break e}else ta=Ha}Ga=f[ta>>2]|0;if(!Ga){Ia=ta;break}else Fa=ta}if(((Ia|0)!=(qa|0)?(k|0)>=(f[Ia+16>>2]|0):0)?(Fa=Ia+20|0,(Jh(Fa,i)|0)!=0):0){Ga=Rg(Fa,i)|0;if((Ga|0)!=(Ia+24|0)){pj(d,Ga+28|0);Ga=b[M>>0]|0;Fa=Ga<<24>>24<0;if(!((Fa?f[N>>2]|0:Ga&255)|0))Ja=Ga;else{if(la<<24>>24>0){ya=Fa?f[d>>2]|0:d;Fa=0;do{Ka=$(bq(ya,e));ka=ya;ya=f[e>>2]|0;if((ka|0)==(ya|0))break;n[Ea+(Fa<<2)>>2]=Ka;Fa=Fa+1|0}while((Fa|0)<(ra|0));La=b[M>>0]|0}else La=Ga;Ja=La}if(Ja<<24>>24<0)Oq(f[d>>2]|0)}}else wa=69}else wa=69;if((wa|0)==69?(wa=0,Fa=Rg(pa,i)|0,(Fa|0)!=(pa+4|0)):0){pj(d,Fa+28|0);Fa=b[G>>0]|0;ya=Fa<<24>>24<0;if(!((ya?f[H>>2]|0:Fa&255)|0))Ma=Fa;else{if(la<<24>>24>0){qa=ya?f[d>>2]|0:d;ya=0;do{Ka=$(bq(qa,e));ka=qa;qa=f[e>>2]|0;if((ka|0)==(qa|0))break;n[Ea+(ya<<2)>>2]=Ka;ya=ya+1|0}while((ya|0)<(ra|0));Na=b[G>>0]|0}else Na=Fa;Ma=Na}if(Ma<<24>>24<0)Oq(f[d>>2]|0)}if((b[I>>0]|0)<0)Oq(f[i>>2]|0);ra=f[(f[j>>2]|0)+48>>2]|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;ya=ln(32)|0;f[d>>2]=ya;f[J>>2]=-2147483616;f[K>>2]=18;ma=ya;na=14458;oa=ma+18|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[ya+18>>0]=0;na=ra+16|0;ma=f[na>>2]|0;do if(ma){oa=na;Fa=ma;f:while(1){qa=Fa;while(1){if((f[qa+16>>2]|0)>=(k|0))break;la=f[qa+4>>2]|0;if(!la){Pa=oa;break f}else qa=la}Fa=f[qa>>2]|0;if(!Fa){Pa=qa;break}else oa=qa}if((Pa|0)!=(na|0)?(k|0)>=(f[Pa+16>>2]|0):0){oa=Pa+20|0;if(!(Jh(oa,d)|0)){wa=91;break}Qa=$(sk(oa,d,$(1.0)))}else wa=91}else wa=91;while(0);if((wa|0)==91){wa=0;Qa=$(sk(ra,d,$(1.0)))}if((b[L>>0]|0)<0)Oq(f[d>>2]|0);Dl(g,va,f[h>>2]|0,b[sa>>0]|0,Qa);k=f[h>>2]|0;if(k|0){na=f[C>>2]|0;if((na|0)!=(k|0))f[C>>2]=na+(~((na+-4-k|0)>>>2)<<2);Oq(k)}}else Wd(g,ja,va)|0;k=f[P>>2]|0;if((k|0)==(f[Q>>2]|0))Cf(R,g);else{f[k>>2]=1196;f[k+4>>2]=f[s>>2];Ra=k+8|0;f[Ra>>2]=0;na=k+12|0;f[na>>2]=0;f[k+16>>2]=0;ma=(f[y>>2]|0)-(f[V>>2]|0)|0;ya=ma>>2;if(ya|0){if(ya>>>0>1073741823){wa=103;break a}oa=ln(ma)|0;f[na>>2]=oa;f[Ra>>2]=oa;f[k+16>>2]=oa+(ya<<2);ya=f[V>>2]|0;ma=(f[y>>2]|0)-ya|0;if((ma|0)>0){kh(oa|0,ya|0,ma|0)|0;f[na>>2]=oa+(ma>>>2<<2)}}f[k+20>>2]=f[W>>2];f[P>>2]=(f[P>>2]|0)+24}Qe(d,g,ja,m);k=f[S>>2]|0;if(k>>>0<(f[T>>2]|0)>>>0){ma=f[d>>2]|0;f[d>>2]=0;f[k>>2]=ma;f[S>>2]=k+4}else Ze(U,d);k=f[d>>2]|0;f[d>>2]=0;if(k|0){ma=k+88|0;oa=f[ma>>2]|0;f[ma>>2]=0;if(oa|0){ma=f[oa+8>>2]|0;if(ma|0){na=oa+12|0;if((f[na>>2]|0)!=(ma|0))f[na>>2]=ma;Oq(ma)}Oq(oa)}oa=f[k+68>>2]|0;if(oa|0){ma=k+72|0;na=f[ma>>2]|0;if((na|0)!=(oa|0))f[ma>>2]=na+(~((na+-4-oa|0)>>>2)<<2);Oq(oa)}oa=k+64|0;na=f[oa>>2]|0;f[oa>>2]=0;if(na|0){oa=f[na>>2]|0;if(oa|0){ma=na+4|0;if((f[ma>>2]|0)!=(oa|0))f[ma>>2]=oa;Oq(oa)}Oq(na)}Oq(k)}xa=0}f[g>>2]=1196;k=f[r>>2]|0;if(k|0){na=f[y>>2]|0;if((na|0)!=(k|0))f[y>>2]=na+(~((na+-4-k|0)>>>2)<<2);Oq(k)}if(xa|0){v=0;wa=169;break a}break}case 1:case 3:case 5:{k=ja+24|0;na=b[k>>0]|0;oa=na<<24>>24;f[g>>2]=0;f[_>>2]=0;f[aa>>2]=0;if(!(na<<24>>24))Sa=0;else{if(na<<24>>24<0){wa=137;break a}na=ln(oa<<2)|0;f[_>>2]=na;f[g>>2]=na;ma=na+(oa<<2)|0;f[a>>2]=ma;ya=oa;oa=na;while(1){f[oa>>2]=2147483647;ya=ya+-1|0;if(!ya)break;else oa=oa+4|0}f[_>>2]=ma;Sa=b[k>>0]|0}oa=Sa<<24>>24;f[h>>2]=0;f[ba>>2]=0;f[ca>>2]=0;if(!(Sa<<24>>24))Ta=0;else{if(Sa<<24>>24<0){wa=144;break a}ya=oa<<2;sa=ln(ya)|0;f[h>>2]=sa;ra=sa+(oa<<2)|0;f[da>>2]=ra;sj(sa|0,0,ya|0)|0;f[ba>>2]=ra;Ta=sa}sa=ja+80|0;ra=b[k>>0]|0;g:do if(!(f[sa>>2]|0))Ua=ra;else{ya=0;oa=ra;na=Ta;while(1){f[e>>2]=ya;f[d>>2]=f[e>>2];Qb(ja,d,oa,na)|0;Fa=b[k>>0]|0;if(Fa<<24>>24>0){ta=f[g>>2]|0;la=f[h>>2]|0;pa=Fa<<24>>24;Ga=0;do{ka=ta+(Ga<<2)|0;Ha=f[la+(Ga<<2)>>2]|0;if((f[ka>>2]|0)>(Ha|0))f[ka>>2]=Ha;Ga=Ga+1|0}while((Ga|0)<(pa|0))}pa=ya+1|0;if(pa>>>0>=(f[sa>>2]|0)>>>0){Ua=Fa;break g}ya=pa;oa=Fa;na=f[h>>2]|0}}while(0);if(Ua<<24>>24>0){sa=0;ja=Ua;while(1){ra=(f[g>>2]|0)+(sa<<2)|0;ma=f[ea>>2]|0;if((ma|0)==(f[fa>>2]|0)){Ri(ga,ra);Va=b[k>>0]|0}else{f[ma>>2]=f[ra>>2];f[ea>>2]=ma+4;Va=ja}sa=sa+1|0;if((sa|0)>=(Va<<24>>24|0))break;else ja=Va}}ja=f[h>>2]|0;if(ja|0){sa=f[ba>>2]|0;if((sa|0)!=(ja|0))f[ba>>2]=sa+(~((sa+-4-ja|0)>>>2)<<2);Oq(ja)}ja=f[g>>2]|0;if(ja|0){sa=f[_>>2]|0;if((sa|0)!=(ja|0))f[_>>2]=sa+(~((sa+-4-ja|0)>>>2)<<2);Oq(ja)}break}default:{}}ja=ha+1|0;sa=f[o>>2]|0;if(ja>>>0>=(f[p>>2]|0)-sa>>2>>>0){v=1;wa=169;break}k=f[j>>2]|0;ha=ja;ia=sa;t=f[k+4>>2]|0;l=k}if((wa|0)==48)aq(h);else if((wa|0)==103)aq(Ra);else if((wa|0)==137)aq(g);else if((wa|0)==144)aq(h);else if((wa|0)==169){u=c;return v|0}return 0}function hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0;d=u;u=u+32|0;e=d;g=a+8|0;h=f[g>>2]|0;f[e>>2]=0;i=e+4|0;f[i>>2]=0;f[e+8>>2]=0;do if(h)if(h>>>0>1073741823)aq(e);else{j=h<<2;k=ln(j)|0;f[e>>2]=k;l=k+(h<<2)|0;f[e+8>>2]=l;sj(k|0,0,j|0)|0;f[i>>2]=l;m=l;n=k;break}else{m=0;n=0}while(0);k=a+128|0;l=f[k>>2]|0;j=f[l>>2]|0;o=l+4|0;if(!j){p=l+8|0;q=n;r=m;s=h}else{h=f[o>>2]|0;if((h|0)!=(j|0))f[o>>2]=h+(~((h+-4-j|0)>>>2)<<2);Oq(j);j=l+8|0;f[j>>2]=0;f[o>>2]=0;f[l>>2]=0;p=j;q=f[e>>2]|0;r=f[i>>2]|0;s=f[g>>2]|0}f[l>>2]=q;f[o>>2]=r;f[p>>2]=f[e+8>>2];f[e>>2]=0;p=e+4|0;f[p>>2]=0;f[e+8>>2]=0;do if(s)if(s>>>0>1073741823)aq(e);else{r=s<<2;o=ln(r)|0;f[e>>2]=o;q=o+(s<<2)|0;f[e+8>>2]=q;sj(o|0,0,r|0)|0;f[p>>2]=q;t=q;v=o;break}else{t=0;v=0}while(0);s=a+140|0;o=f[s>>2]|0;q=f[o>>2]|0;r=o+4|0;if(!q){w=o+8|0;x=v;y=t}else{t=f[r>>2]|0;if((t|0)!=(q|0))f[r>>2]=t+(~((t+-4-q|0)>>>2)<<2);Oq(q);q=o+8|0;f[q>>2]=0;f[r>>2]=0;f[o>>2]=0;w=q;x=f[e>>2]|0;y=f[p>>2]|0}f[o>>2]=x;f[r>>2]=y;f[w>>2]=f[e+8>>2];w=f[b>>2]|0;y=b+4|0;r=f[y>>2]|0;x=f[y+4>>2]|0;y=f[c>>2]|0;o=c+4|0;p=f[o>>2]|0;q=f[o+4>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;o=e+8|0;t=e+4|0;v=e+16|0;l=e+20|0;i=r;Pc(e);j=f[t>>2]|0;h=(f[l>>2]|0)+(f[v>>2]|0)|0;if((f[o>>2]|0)==(j|0))z=0;else z=(f[j+(((h>>>0)/113|0)<<2)>>2]|0)+(((h>>>0)%113|0)*36|0)|0;f[z>>2]=w;h=z+4|0;f[h>>2]=r;f[h+4>>2]=x;f[z+12>>2]=y;h=z+16|0;f[h>>2]=p;f[h+4>>2]=q;f[z+24>>2]=0;f[z+28>>2]=y-w;f[z+32>>2]=0;z=(f[l>>2]|0)+1|0;f[l>>2]=z;if(z|0){w=a+116|0;y=a+48|0;h=a+44|0;j=a+36|0;m=a+40|0;n=a+32|0;A=b+8|0;B=c+8|0;C=a+28|0;D=a+24|0;E=a+16|0;F=a+20|0;G=a+12|0;H=a+88|0;I=a+84|0;J=a+76|0;K=a+80|0;L=a+72|0;M=i+4|0;N=i+24|0;O=i+24|0;P=p+24|0;Q=z;while(1){z=f[v>>2]|0;R=Q+-1|0;S=R+z|0;T=f[t>>2]|0;U=f[T+(((S>>>0)/113|0)<<2)>>2]|0;V=(S>>>0)%113|0;S=f[U+(V*36|0)>>2]|0;W=f[U+(V*36|0)+12>>2]|0;Y=f[U+(V*36|0)+24>>2]|0;Z=f[U+(V*36|0)+32>>2]|0;f[l>>2]=R;R=f[o>>2]|0;V=R-T>>2;if((1-Q-z+((V|0)==0?0:(V*113|0)+-1|0)|0)>>>0>225){Oq(f[R+-4>>2]|0);f[o>>2]=(f[o>>2]|0)+-4}f[b>>2]=S;f[c>>2]=W;R=f[k>>2]|0;V=((f[g>>2]|0)+-1|0)==(Y|0)?0:Y+1|0;Y=(f[s>>2]|0)+(Z*12|0)|0;z=W-S|0;T=(f[a>>2]|0)-(f[(f[Y>>2]|0)+(V<<2)>>2]|0)|0;a:do if(T){if(z>>>0<3){U=f[w>>2]|0;f[U>>2]=V;$=f[g>>2]|0;if($>>>0>1){aa=1;ba=$;ca=V;while(1){ca=(ca|0)==(ba+-1|0)?0:ca+1|0;f[U+(aa<<2)>>2]=ca;aa=aa+1|0;da=f[g>>2]|0;if(aa>>>0>=da>>>0){ea=da;break}else ba=da}}else ea=$;if(!z){fa=99;break}else{ga=0;ha=ea}while(1){ba=(f[N>>2]|0)+((X(f[M>>2]|0,S+ga|0)|0)<<2)|0;if(!ha)ia=0;else{aa=0;do{ca=f[(f[w>>2]|0)+(aa<<2)>>2]|0;U=(f[a>>2]|0)-(f[(f[Y>>2]|0)+(ca<<2)>>2]|0)|0;do if(U|0){da=f[y>>2]|0;ja=32-da|0;ka=32-U|0;la=f[ba+(ca<<2)>>2]<<ka;if((U|0)>(ja|0)){ma=la>>>ka;ka=U-ja|0;f[y>>2]=ka;ja=f[h>>2]|ma>>>ka;f[h>>2]=ja;ka=f[j>>2]|0;if((ka|0)==(f[m>>2]|0))Ri(n,h);else{f[ka>>2]=ja;f[j>>2]=ka+4}f[h>>2]=ma<<32-(f[y>>2]|0);break}ma=f[h>>2]|la>>>da;f[h>>2]=ma;la=da+U|0;f[y>>2]=la;if((la|0)!=32)break;la=f[j>>2]|0;if((la|0)==(f[m>>2]|0))Ri(n,h);else{f[la>>2]=ma;f[j>>2]=la+4}f[h>>2]=0;f[y>>2]=0}while(0);aa=aa+1|0;U=f[g>>2]|0}while(aa>>>0<U>>>0);ia=U}ga=ga+1|0;if(ga>>>0>=z>>>0){fa=99;break a}else ha=ia}}$=Z+1|0;Ig(R+($*12|0)|0,f[R+(Z*12|0)>>2]|0,f[R+(Z*12|0)+4>>2]|0);aa=(f[(f[k>>2]|0)+($*12|0)>>2]|0)+(V<<2)|0;ba=(f[aa>>2]|0)+(1<<T+-1)|0;f[aa>>2]=ba;aa=f[A>>2]|0;U=f[B>>2]|0;b:do if((W|0)==(S|0))na=S;else{ca=f[O>>2]|0;if(!aa){if((f[ca+(V<<2)>>2]|0)>>>0<ba>>>0){na=W;break}else{oa=W;pa=S}while(1){la=oa;do{la=la+-1|0;if((pa|0)==(la|0)){na=pa;break b}ma=(f[P>>2]|0)+((X(la,U)|0)<<2)+(V<<2)|0}while((f[ma>>2]|0)>>>0>=ba>>>0);pa=pa+1|0;if((pa|0)==(la|0)){na=la;break b}else oa=la}}else{qa=W;ra=S}while(1){ma=ra;while(1){sa=ca+((X(ma,aa)|0)<<2)|0;if((f[sa+(V<<2)>>2]|0)>>>0>=ba>>>0){ta=qa;break}da=ma+1|0;if((da|0)==(qa|0)){na=qa;break b}else ma=da}while(1){ta=ta+-1|0;if((ma|0)==(ta|0)){na=ma;break b}ua=(f[P>>2]|0)+((X(ta,U)|0)<<2)|0;if((f[ua+(V<<2)>>2]|0)>>>0<ba>>>0){va=0;break}}do{la=sa+(va<<2)|0;da=ua+(va<<2)|0;ka=f[la>>2]|0;f[la>>2]=f[da>>2];f[da>>2]=ka;va=va+1|0}while((va|0)!=(aa|0));ra=ma+1|0;if((ra|0)==(ta|0)){na=ta;break}else qa=ta}}while(0);ba=(_(z|0)|0)^31;U=na-S|0;ca=W-na|0;ka=U>>>0<ca>>>0;if((U|0)!=(ca|0)){da=f[H>>2]|0;if(ka)f[I>>2]=f[I>>2]|1<<31-da;la=da+1|0;f[H>>2]=la;if((la|0)==32){la=f[J>>2]|0;if((la|0)==(f[K>>2]|0))Ri(L,I);else{f[la>>2]=f[I>>2];f[J>>2]=la+4}f[H>>2]=0;f[I>>2]=0}}la=z>>>1;do if(ka){da=f[C>>2]|0;ja=32-da|0;wa=32-ba|0;xa=la-U<<wa;if((ba|0)>(ja|0)){ya=xa>>>wa;wa=ba-ja|0;f[C>>2]=wa;ja=f[D>>2]|ya>>>wa;f[D>>2]=ja;wa=f[E>>2]|0;if((wa|0)==(f[F>>2]|0))Ri(G,D);else{f[wa>>2]=ja;f[E>>2]=wa+4}f[D>>2]=ya<<32-(f[C>>2]|0);break}ya=f[D>>2]|xa>>>da;f[D>>2]=ya;xa=da+ba|0;f[C>>2]=xa;if((xa|0)==32){xa=f[E>>2]|0;if((xa|0)==(f[F>>2]|0))Ri(G,D);else{f[xa>>2]=ya;f[E>>2]=xa+4}f[D>>2]=0;f[C>>2]=0}}else{xa=f[C>>2]|0;ya=32-xa|0;da=32-ba|0;wa=la-ca<<da;if((ba|0)>(ya|0)){ja=wa>>>da;da=ba-ya|0;f[C>>2]=da;ya=f[D>>2]|ja>>>da;f[D>>2]=ya;da=f[E>>2]|0;if((da|0)==(f[F>>2]|0))Ri(G,D);else{f[da>>2]=ya;f[E>>2]=da+4}f[D>>2]=ja<<32-(f[C>>2]|0);break}ja=f[D>>2]|wa>>>xa;f[D>>2]=ja;wa=xa+ba|0;f[C>>2]=wa;if((wa|0)==32){wa=f[E>>2]|0;if((wa|0)==(f[F>>2]|0))Ri(G,D);else{f[wa>>2]=ja;f[E>>2]=wa+4}f[D>>2]=0;f[C>>2]=0}}while(0);ba=f[s>>2]|0;la=f[ba+(Z*12|0)>>2]|0;ka=la+(V<<2)|0;f[ka>>2]=(f[ka>>2]|0)+1;Ig(ba+($*12|0)|0,la,f[ba+(Z*12|0)+4>>2]|0);if((na|0)!=(S|0)){ba=f[o>>2]|0;la=f[t>>2]|0;ka=ba-la>>2;wa=f[v>>2]|0;ja=f[l>>2]|0;if((((ka|0)==0?0:(ka*113|0)+-1|0)|0)==(ja+wa|0)){Pc(e);za=f[v>>2]|0;Aa=f[l>>2]|0;Ba=f[o>>2]|0;Ca=f[t>>2]|0}else{za=wa;Aa=ja;Ba=ba;Ca=la}la=Aa+za|0;if((Ba|0)==(Ca|0))Da=0;else Da=(f[Ca+(((la>>>0)/113|0)<<2)>>2]|0)+(((la>>>0)%113|0)*36|0)|0;f[Da>>2]=S;la=Da+4|0;f[la>>2]=r;f[la+4>>2]=x;f[Da+12>>2]=na;f[Da+16>>2]=i;f[Da+20>>2]=aa;f[Da+24>>2]=V;f[Da+28>>2]=U;f[Da+32>>2]=Z;f[l>>2]=(f[l>>2]|0)+1}if((W|0)!=(na|0)){la=f[o>>2]|0;ba=f[t>>2]|0;ja=la-ba>>2;wa=f[v>>2]|0;ka=f[l>>2]|0;if((((ja|0)==0?0:(ja*113|0)+-1|0)|0)==(ka+wa|0)){Pc(e);Ea=f[v>>2]|0;Fa=f[l>>2]|0;Ga=f[o>>2]|0;Ha=f[t>>2]|0}else{Ea=wa;Fa=ka;Ga=la;Ha=ba}ba=Fa+Ea|0;if((Ga|0)==(Ha|0))Ia=0;else Ia=(f[Ha+(((ba>>>0)/113|0)<<2)>>2]|0)+(((ba>>>0)%113|0)*36|0)|0;f[Ia>>2]=na;f[Ia+4>>2]=i;f[Ia+8>>2]=aa;f[Ia+12>>2]=W;ba=Ia+16|0;f[ba>>2]=p;f[ba+4>>2]=q;f[Ia+24>>2]=V;f[Ia+28>>2]=ca;f[Ia+32>>2]=$;ba=(f[l>>2]|0)+1|0;f[l>>2]=ba;Ja=ba}else fa=99}else fa=99;while(0);if((fa|0)==99){fa=0;Ja=f[l>>2]|0}if(!Ja)break;else Q=Ja}}Ja=f[t>>2]|0;Q=f[v>>2]|0;Ia=Ja+(((Q>>>0)/113|0)<<2)|0;q=f[o>>2]|0;p=q;i=Ja;if((q|0)==(Ja|0)){Ka=0;La=0}else{na=(f[Ia>>2]|0)+(((Q>>>0)%113|0)*36|0)|0;Ka=na;La=na}na=Ia;Ia=La;c:while(1){La=Ia;do{Q=La;if((Ka|0)==(Q|0))break c;La=Q+36|0}while((La-(f[na>>2]|0)|0)!=4068);La=na+4|0;na=La;Ia=f[La>>2]|0}f[l>>2]=0;l=p-i>>2;if(l>>>0>2){i=Ja;do{Oq(f[i>>2]|0);i=(f[t>>2]|0)+4|0;f[t>>2]=i;Ma=f[o>>2]|0;Na=Ma-i>>2}while(Na>>>0>2);Oa=Na;Pa=i;Qa=Ma}else{Oa=l;Pa=Ja;Qa=q}switch(Oa|0){case 1:{Ra=56;fa=113;break}case 2:{Ra=113;fa=113;break}default:{}}if((fa|0)==113)f[v>>2]=Ra;if((Pa|0)!=(Qa|0)){Ra=Pa;do{Oq(f[Ra>>2]|0);Ra=Ra+4|0}while((Ra|0)!=(Qa|0));Qa=f[t>>2]|0;t=f[o>>2]|0;if((t|0)!=(Qa|0))f[o>>2]=t+(~((t+-4-Qa|0)>>>2)<<2)}Qa=f[e>>2]|0;if(!Qa){u=d;return}Oq(Qa);u=d;return}function ib(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0;d=u;u=u+48|0;e=d+36|0;g=d+24|0;h=d;i=a+8|0;j=f[i>>2]|0;f[e>>2]=0;k=e+4|0;f[k>>2]=0;f[e+8>>2]=0;do if(j)if(j>>>0>1073741823)aq(e);else{l=j<<2;m=ln(l)|0;f[e>>2]=m;n=m+(j<<2)|0;f[e+8>>2]=n;sj(m|0,0,l|0)|0;f[k>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+1164|0;n=f[m>>2]|0;l=f[n>>2]|0;q=n+4|0;if(!l){r=n+8|0;s=p;t=o;v=j}else{j=f[q>>2]|0;if((j|0)!=(l|0))f[q>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oq(l);l=n+8|0;f[l>>2]=0;f[q>>2]=0;f[n>>2]=0;r=l;s=f[e>>2]|0;t=f[k>>2]|0;v=f[i>>2]|0}f[n>>2]=s;f[q>>2]=t;f[r>>2]=f[e+8>>2];f[e>>2]=0;r=e+4|0;f[r>>2]=0;f[e+8>>2]=0;do if(v)if(v>>>0>1073741823)aq(e);else{t=v<<2;q=ln(t)|0;f[e>>2]=q;s=q+(v<<2)|0;f[e+8>>2]=s;sj(q|0,0,t|0)|0;f[r>>2]=s;w=s;x=q;break}else{w=0;x=0}while(0);v=a+1176|0;q=f[v>>2]|0;s=f[q>>2]|0;t=q+4|0;if(!s){y=q+8|0;z=x;A=w}else{w=f[t>>2]|0;if((w|0)!=(s|0))f[t>>2]=w+(~((w+-4-s|0)>>>2)<<2);Oq(s);s=q+8|0;f[s>>2]=0;f[t>>2]=0;f[q>>2]=0;y=s;z=f[e>>2]|0;A=f[r>>2]|0}f[q>>2]=z;f[t>>2]=A;f[y>>2]=f[e+8>>2];y=f[b>>2]|0;A=b+4|0;t=f[A>>2]|0;z=f[A+4>>2]|0;A=f[c>>2]|0;q=c+4|0;r=f[q>>2]|0;s=f[q+4>>2]|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;q=h+8|0;w=h+4|0;x=h+16|0;n=h+20|0;k=t;Pc(h);l=f[w>>2]|0;j=(f[n>>2]|0)+(f[x>>2]|0)|0;if((f[q>>2]|0)==(l|0))B=0;else B=(f[l+(((j>>>0)/113|0)<<2)>>2]|0)+(((j>>>0)%113|0)*36|0)|0;f[B>>2]=y;j=B+4|0;f[j>>2]=t;f[j+4>>2]=z;f[B+12>>2]=A;j=B+16|0;f[j>>2]=r;f[j+4>>2]=s;f[B+24>>2]=0;f[B+28>>2]=A-y;f[B+32>>2]=0;B=(f[n>>2]|0)+1|0;f[n>>2]=B;if(B|0){y=a+1152|0;A=a+1084|0;j=a+1080|0;l=a+1072|0;o=a+1076|0;p=a+1068|0;C=b+8|0;D=c+8|0;E=a+1124|0;F=a+1120|0;G=a+1112|0;H=a+1116|0;I=a+1108|0;J=k+4|0;K=k+24|0;L=k+24|0;M=r+24|0;N=B;while(1){B=f[x>>2]|0;O=N+-1|0;P=O+B|0;Q=f[w>>2]|0;R=f[Q+(((P>>>0)/113|0)<<2)>>2]|0;S=(P>>>0)%113|0;P=f[R+(S*36|0)>>2]|0;T=f[R+(S*36|0)+12>>2]|0;U=f[R+(S*36|0)+24>>2]|0;V=f[R+(S*36|0)+32>>2]|0;f[n>>2]=O;O=f[q>>2]|0;S=O-Q>>2;if((1-N-B+((S|0)==0?0:(S*113|0)+-1|0)|0)>>>0>225){Oq(f[O+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}f[b>>2]=P;f[c>>2]=T;O=f[m>>2]|0;S=O+(V*12|0)|0;B=(f[v>>2]|0)+(V*12|0)|0;f[g>>2]=f[b>>2];f[g+4>>2]=f[b+4>>2];f[g+8>>2]=f[b+8>>2];f[e>>2]=f[c>>2];f[e+4>>2]=f[c+4>>2];f[e+8>>2]=f[c+8>>2];Q=Rd(a,g,e,S,B,U)|0;U=T-P|0;R=(f[a>>2]|0)-(f[(f[B>>2]|0)+(Q<<2)>>2]|0)|0;a:do if(R){if(U>>>0<3){W=f[y>>2]|0;f[W>>2]=Q;Y=f[i>>2]|0;if(Y>>>0>1){Z=1;$=Y;aa=Q;while(1){aa=(aa|0)==($+-1|0)?0:aa+1|0;f[W+(Z<<2)>>2]=aa;Z=Z+1|0;ba=f[i>>2]|0;if(Z>>>0>=ba>>>0){ca=ba;break}else $=ba}}else ca=Y;if(!U){da=87;break}else{ea=0;fa=ca}while(1){$=(f[K>>2]|0)+((X(f[J>>2]|0,P+ea|0)|0)<<2)|0;if(!fa)ga=0;else{Z=0;do{aa=f[(f[y>>2]|0)+(Z<<2)>>2]|0;W=(f[a>>2]|0)-(f[(f[B>>2]|0)+(aa<<2)>>2]|0)|0;do if(W|0){ba=f[A>>2]|0;ha=32-ba|0;ia=32-W|0;ja=f[$+(aa<<2)>>2]<<ia;if((W|0)>(ha|0)){ka=ja>>>ia;ia=W-ha|0;f[A>>2]=ia;ha=f[j>>2]|ka>>>ia;f[j>>2]=ha;ia=f[l>>2]|0;if((ia|0)==(f[o>>2]|0))Ri(p,j);else{f[ia>>2]=ha;f[l>>2]=ia+4}f[j>>2]=ka<<32-(f[A>>2]|0);break}ka=f[j>>2]|ja>>>ba;f[j>>2]=ka;ja=ba+W|0;f[A>>2]=ja;if((ja|0)!=32)break;ja=f[l>>2]|0;if((ja|0)==(f[o>>2]|0))Ri(p,j);else{f[ja>>2]=ka;f[l>>2]=ja+4}f[j>>2]=0;f[A>>2]=0}while(0);Z=Z+1|0;W=f[i>>2]|0}while(Z>>>0<W>>>0);ga=W}ea=ea+1|0;if(ea>>>0>=U>>>0){da=87;break a}else fa=ga}}Y=V+1|0;Z=f[m>>2]|0;$=Z+(Y*12|0)|0;if(($|0)==(S|0))la=Z;else{Ig($,f[S>>2]|0,f[O+(V*12|0)+4>>2]|0);la=f[m>>2]|0}$=(f[la+(Y*12|0)>>2]|0)+(Q<<2)|0;Z=(f[$>>2]|0)+(1<<R+-1)|0;f[$>>2]=Z;$=f[C>>2]|0;W=f[D>>2]|0;b:do if((T|0)==(P|0))ma=P;else{aa=f[L>>2]|0;if(!$){if((f[aa+(Q<<2)>>2]|0)>>>0<Z>>>0){ma=T;break}else{na=T;oa=P}while(1){ja=na;do{ja=ja+-1|0;if((oa|0)==(ja|0)){ma=oa;break b}ka=(f[M>>2]|0)+((X(ja,W)|0)<<2)+(Q<<2)|0}while((f[ka>>2]|0)>>>0>=Z>>>0);oa=oa+1|0;if((oa|0)==(ja|0)){ma=ja;break b}else na=ja}}else{pa=T;qa=P}while(1){ka=qa;while(1){ra=aa+((X(ka,$)|0)<<2)|0;if((f[ra+(Q<<2)>>2]|0)>>>0>=Z>>>0){sa=pa;break}ba=ka+1|0;if((ba|0)==(pa|0)){ma=pa;break b}else ka=ba}while(1){sa=sa+-1|0;if((ka|0)==(sa|0)){ma=ka;break b}ta=(f[M>>2]|0)+((X(sa,W)|0)<<2)|0;if((f[ta+(Q<<2)>>2]|0)>>>0<Z>>>0){ua=0;break}}do{ja=ra+(ua<<2)|0;ba=ta+(ua<<2)|0;ia=f[ja>>2]|0;f[ja>>2]=f[ba>>2];f[ba>>2]=ia;ua=ua+1|0}while((ua|0)!=($|0));qa=ka+1|0;if((qa|0)==(sa|0)){ma=sa;break}else pa=sa}}while(0);Z=(_(U|0)|0)^31;W=ma-P|0;aa=T-ma|0;ia=W>>>0<aa>>>0;if((W|0)!=(aa|0)){ba=f[E>>2]|0;if(ia)f[F>>2]=f[F>>2]|1<<31-ba;ja=ba+1|0;f[E>>2]=ja;if((ja|0)==32){ja=f[G>>2]|0;if((ja|0)==(f[H>>2]|0))Ri(I,F);else{f[ja>>2]=f[F>>2];f[G>>2]=ja+4}f[E>>2]=0;f[F>>2]=0}}ja=U>>>1;if(ia){ia=ja-W|0;if(Z|0){ba=0;ha=1<<Z+-1;while(1){fj(a+12+(ba<<5)|0,(ha&ia|0)!=0);ba=ba+1|0;if((ba|0)==(Z|0))break;else ha=ha>>>1}}}else{ha=ja-aa|0;if(Z|0){ba=0;ia=1<<Z+-1;while(1){fj(a+12+(ba<<5)|0,(ia&ha|0)!=0);ba=ba+1|0;if((ba|0)==(Z|0))break;else ia=ia>>>1}}}ia=f[v>>2]|0;Z=f[ia+(V*12|0)>>2]|0;ba=Z+(Q<<2)|0;f[ba>>2]=(f[ba>>2]|0)+1;Ig(ia+(Y*12|0)|0,Z,f[ia+(V*12|0)+4>>2]|0);if((ma|0)!=(P|0)){ia=f[q>>2]|0;Z=f[w>>2]|0;ba=ia-Z>>2;ha=f[x>>2]|0;ja=f[n>>2]|0;if((((ba|0)==0?0:(ba*113|0)+-1|0)|0)==(ja+ha|0)){Pc(h);va=f[x>>2]|0;wa=f[n>>2]|0;xa=f[q>>2]|0;ya=f[w>>2]|0}else{va=ha;wa=ja;xa=ia;ya=Z}Z=wa+va|0;if((xa|0)==(ya|0))za=0;else za=(f[ya+(((Z>>>0)/113|0)<<2)>>2]|0)+(((Z>>>0)%113|0)*36|0)|0;f[za>>2]=P;Z=za+4|0;f[Z>>2]=t;f[Z+4>>2]=z;f[za+12>>2]=ma;f[za+16>>2]=k;f[za+20>>2]=$;f[za+24>>2]=Q;f[za+28>>2]=W;f[za+32>>2]=V;f[n>>2]=(f[n>>2]|0)+1}if((T|0)!=(ma|0)){Z=f[q>>2]|0;ia=f[w>>2]|0;ja=Z-ia>>2;ha=f[x>>2]|0;ba=f[n>>2]|0;if((((ja|0)==0?0:(ja*113|0)+-1|0)|0)==(ba+ha|0)){Pc(h);Aa=f[x>>2]|0;Ba=f[n>>2]|0;Ca=f[q>>2]|0;Da=f[w>>2]|0}else{Aa=ha;Ba=ba;Ca=Z;Da=ia}ia=Ba+Aa|0;if((Ca|0)==(Da|0))Ea=0;else Ea=(f[Da+(((ia>>>0)/113|0)<<2)>>2]|0)+(((ia>>>0)%113|0)*36|0)|0;f[Ea>>2]=ma;f[Ea+4>>2]=k;f[Ea+8>>2]=$;f[Ea+12>>2]=T;ia=Ea+16|0;f[ia>>2]=r;f[ia+4>>2]=s;f[Ea+24>>2]=Q;f[Ea+28>>2]=aa;f[Ea+32>>2]=Y;ia=(f[n>>2]|0)+1|0;f[n>>2]=ia;Fa=ia}else da=87}else da=87;while(0);if((da|0)==87){da=0;Fa=f[n>>2]|0}if(!Fa)break;else N=Fa}}Fa=f[w>>2]|0;N=f[x>>2]|0;Ea=Fa+(((N>>>0)/113|0)<<2)|0;s=f[q>>2]|0;r=s;k=Fa;if((s|0)==(Fa|0)){Ga=0;Ha=0}else{ma=(f[Ea>>2]|0)+(((N>>>0)%113|0)*36|0)|0;Ga=ma;Ha=ma}ma=Ea;Ea=Ha;c:while(1){Ha=Ea;do{N=Ha;if((Ga|0)==(N|0))break c;Ha=N+36|0}while((Ha-(f[ma>>2]|0)|0)!=4068);Ha=ma+4|0;ma=Ha;Ea=f[Ha>>2]|0}f[n>>2]=0;n=r-k>>2;if(n>>>0>2){k=Fa;do{Oq(f[k>>2]|0);k=(f[w>>2]|0)+4|0;f[w>>2]=k;Ia=f[q>>2]|0;Ja=Ia-k>>2}while(Ja>>>0>2);Ka=Ja;La=k;Ma=Ia}else{Ka=n;La=Fa;Ma=s}switch(Ka|0){case 1:{Na=56;da=101;break}case 2:{Na=113;da=101;break}default:{}}if((da|0)==101)f[x>>2]=Na;if((La|0)!=(Ma|0)){Na=La;do{Oq(f[Na>>2]|0);Na=Na+4|0}while((Na|0)!=(Ma|0));Ma=f[w>>2]|0;w=f[q>>2]|0;if((w|0)!=(Ma|0))f[q>>2]=w+(~((w+-4-Ma|0)>>>2)<<2)}Ma=f[h>>2]|0;if(!Ma){u=d;return}Oq(Ma);u=d;return}function jb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;d=u;u=u+1424|0;e=d+1408|0;g=d+1396|0;h=d+1420|0;i=d+1200|0;j=d+12|0;k=d;l=d+1384|0;m=d+1372|0;n=d+1360|0;o=d+1348|0;p=d+1336|0;q=d+1324|0;r=d+1312|0;s=d+1300|0;t=d+1288|0;v=d+1276|0;w=d+1264|0;x=d+1252|0;y=d+1240|0;z=d+1228|0;A=a+28|0;B=10-(mi(f[(f[A>>2]|0)+48>>2]|0)|0)|0;C=(B|0)<6?B:6;b[h>>0]=C;if((C&255|0)==6?(f[a+72>>2]|0)>15:0)b[h>>0]=5;C=c+16|0;B=f[C+4>>2]|0;if(!((B|0)>0|(B|0)==0&(f[C>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}C=f[A>>2]|0;B=f[(f[C+4>>2]|0)+80>>2]|0;D=a+72|0;E=f[D>>2]|0;f[i>>2]=B;F=i+4|0;f[F>>2]=E;f[i+8>>2]=E<<2;G=i+12|0;H=X(E,B)|0;f[G>>2]=0;J=i+16|0;f[J>>2]=0;f[i+20>>2]=0;do if(H)if(H>>>0>1073741823)aq(G);else{K=H<<2;L=ln(K)|0;f[G>>2]=L;M=L+(H<<2)|0;f[i+20>>2]=M;sj(L|0,0,K|0)|0;f[J>>2]=M;N=L;break}else N=0;while(0);H=i+24|0;f[H>>2]=N;G=a+4|0;L=a+8|0;M=f[G>>2]|0;a:do if((f[L>>2]|0)!=(M|0)){K=j+4|0;O=j+8|0;P=j+8|0;Q=(B|0)==0;R=j+4|0;S=j+8|0;T=k+4|0;U=k+8|0;V=k+8|0;W=a+48|0;Y=j+8|0;Z=a+60|0;$=0;aa=0;ba=0;ca=0;da=M;ea=C;b:while(1){fa=f[(f[(f[ea+4>>2]|0)+8>>2]|0)+(f[da+(ca<<2)>>2]<<2)>>2]|0;switch(f[fa+28>>2]|0){case 1:case 3:case 5:case 2:case 4:case 6:{ga=fa;ha=aa;break}case 9:{ga=f[(f[Z>>2]|0)+(aa<<2)>>2]|0;ha=aa+1|0;break}default:{ia=0;break a}}if(!ga){ia=0;break a}c:do switch(f[ga+28>>2]|0){case 6:{if(Q){ja=ba;ka=ga+24|0;break c}fa=ga+84|0;la=ga+68|0;ma=ga+48|0;na=ga+40|0;oa=ga+24|0;pa=0;do{if(!(b[fa>>0]|0))qa=f[(f[la>>2]|0)+(pa<<2)>>2]|0;else qa=pa;ra=ma;sa=f[ra>>2]|0;ta=f[ra+4>>2]|0;ra=na;ua=un(f[ra>>2]|0,f[ra+4>>2]|0,qa|0,0)|0;ra=Vn(ua|0,I|0,sa|0,ta|0)|0;kh((f[H>>2]|0)+((X(f[F>>2]|0,pa)|0)<<2)+($<<2)|0,(f[f[ga>>2]>>2]|0)+ra|0,b[oa>>0]<<2|0)|0;pa=pa+1|0}while((pa|0)!=(B|0));ja=ba;ka=oa;break}case 1:case 3:case 5:{oa=ga+24|0;pa=b[oa>>0]|0;na=pa<<24>>24;f[j>>2]=0;f[R>>2]=0;f[S>>2]=0;if(!(pa<<24>>24))va=0;else{if(pa<<24>>24<0){wa=24;break b}pa=na<<2;ma=ln(pa)|0;f[j>>2]=ma;la=ma+(na<<2)|0;f[Y>>2]=la;sj(ma|0,0,pa|0)|0;f[R>>2]=la;va=b[oa>>0]|0}la=va<<24>>24;f[k>>2]=0;f[T>>2]=0;f[U>>2]=0;if(!(va<<24>>24)){xa=0;ya=0}else{if(va<<24>>24<0){wa=30;break b}pa=la<<2;ma=ln(pa)|0;f[k>>2]=ma;na=ma+(la<<2)|0;f[V>>2]=na;sj(ma|0,0,pa|0)|0;f[T>>2]=na;xa=ma;ya=ma}if(Q){za=ya;Aa=xa}else{ma=ga+84|0;na=ga+68|0;pa=0;do{if(!(b[ma>>0]|0))Ba=f[(f[na>>2]|0)+(pa<<2)>>2]|0;else Ba=pa;la=f[j>>2]|0;f[g>>2]=Ba;fa=b[oa>>0]|0;f[e>>2]=f[g>>2];Qb(ga,e,fa,la)|0;la=b[oa>>0]|0;fa=la<<24>>24;if(la<<24>>24>0){la=f[j>>2]|0;ra=f[W>>2]|0;ta=f[k>>2]|0;sa=0;do{f[ta+(sa<<2)>>2]=(f[la+(sa<<2)>>2]|0)-(f[ra+(sa+ba<<2)>>2]|0);sa=sa+1|0}while((sa|0)<(fa|0));Ca=ta}else Ca=f[k>>2]|0;kh((f[H>>2]|0)+((X(f[F>>2]|0,pa)|0)<<2)+($<<2)|0,Ca|0,fa<<2|0)|0;pa=pa+1|0}while(pa>>>0<B>>>0);pa=f[k>>2]|0;za=pa;Aa=pa}pa=ba+(b[oa>>0]|0)|0;if(za|0){na=f[T>>2]|0;if((na|0)!=(za|0))f[T>>2]=na+(~((na+-4-za|0)>>>2)<<2);Oq(Aa)}na=f[j>>2]|0;if(na|0){ma=f[R>>2]|0;if((ma|0)!=(na|0))f[R>>2]=ma+(~((ma+-4-na|0)>>>2)<<2);Oq(na)}ja=pa;ka=oa;break}default:{pa=ga+24|0;na=b[pa>>0]|0;ma=na<<24>>24;f[j>>2]=0;f[K>>2]=0;f[O>>2]=0;if(!(na<<24>>24)){Da=0;Ea=0}else{if(na<<24>>24<0){wa=53;break b}na=ma<<2;ta=ln(na)|0;f[j>>2]=ta;sa=ta+(ma<<2)|0;f[P>>2]=sa;sj(ta|0,0,na|0)|0;f[K>>2]=sa;Da=ta;Ea=ta}if(Q){Fa=Ea;Ga=Da}else{ta=ga+84|0;sa=ga+68|0;na=0;do{if(!(b[ta>>0]|0))Ha=f[(f[sa>>2]|0)+(na<<2)>>2]|0;else Ha=na;ma=f[j>>2]|0;f[g>>2]=Ha;ra=b[pa>>0]|0;f[e>>2]=f[g>>2];Pb(ga,e,ra,ma)|0;kh((f[H>>2]|0)+((X(f[F>>2]|0,na)|0)<<2)+($<<2)|0,f[j>>2]|0,b[pa>>0]<<2|0)|0;na=na+1|0}while(na>>>0<B>>>0);na=f[j>>2]|0;Fa=na;Ga=na}if(Fa|0){na=f[K>>2]|0;if((na|0)!=(Fa|0))f[K>>2]=na+(~((na+-4-Fa|0)>>>2)<<2);Oq(Ga)}ja=ba;ka=pa}}while(0);na=ca+1|0;sa=f[G>>2]|0;if(na>>>0>=(f[L>>2]|0)-sa>>2>>>0){wa=66;break}$=$+(b[ka>>0]|0)|0;aa=ha;ba=ja;ca=na;da=sa;ea=f[A>>2]|0}if((wa|0)==24)aq(j);else if((wa|0)==30)aq(k);else if((wa|0)==53)aq(j);else if((wa|0)==66){Ia=f[D>>2]|0;Ja=f[H>>2]|0;wa=67;break}}else{Ia=E;Ja=N;wa=67}while(0);d:do if((wa|0)==67){N=X(Ia,B)|0;if((N|0)>0){E=0;H=0;while(1){D=f[Ja+(E<<2)>>2]|0;if(!D)Ka=H;else{A=(_(D|0)|0)^31;Ka=(A|0)<(H|0)?H:A+1|0}E=E+1|0;if((E|0)>=(N|0)){La=Ka;break}else H=Ka}}else La=0;switch(b[h>>0]|0){case 6:{Ue(j,Ia);f[l>>2]=0;f[l+4>>2]=i;H=f[F>>2]|0;f[l+8>>2]=H;f[m>>2]=f[i>>2];f[m+4>>2]=i;f[m+8>>2]=H;f[k>>2]=La;f[g>>2]=f[l>>2];f[g+4>>2]=f[l+4>>2];f[g+8>>2]=f[l+8>>2];f[e>>2]=f[m>>2];f[e+4>>2]=f[m+4>>2];f[e+8>>2]=f[m+8>>2];H=sf(j,g,e,k,c)|0;Se(j);if(!H){ia=0;break d}break}case 5:{Ue(j,Ia);f[n>>2]=0;f[n+4>>2]=i;H=f[F>>2]|0;f[n+8>>2]=H;f[o>>2]=f[i>>2];f[o+4>>2]=i;f[o+8>>2]=H;f[k>>2]=La;f[g>>2]=f[n>>2];f[g+4>>2]=f[n+4>>2];f[g+8>>2]=f[n+8>>2];f[e>>2]=f[o>>2];f[e+4>>2]=f[o+4>>2];f[e+8>>2]=f[o+8>>2];H=tf(j,g,e,k,c)|0;Se(j);if(!H){ia=0;break d}break}case 4:{Ue(j,Ia);f[p>>2]=0;f[p+4>>2]=i;H=f[F>>2]|0;f[p+8>>2]=H;f[q>>2]=f[i>>2];f[q+4>>2]=i;f[q+8>>2]=H;f[k>>2]=La;f[g>>2]=f[p>>2];f[g+4>>2]=f[p+4>>2];f[g+8>>2]=f[p+8>>2];f[e>>2]=f[q>>2];f[e+4>>2]=f[q+4>>2];f[e+8>>2]=f[q+8>>2];H=tf(j,g,e,k,c)|0;Se(j);if(!H){ia=0;break d}break}case 3:{$e(j,Ia);f[r>>2]=0;f[r+4>>2]=i;H=f[F>>2]|0;f[r+8>>2]=H;f[s>>2]=f[i>>2];f[s+4>>2]=i;f[s+8>>2]=H;f[k>>2]=La;f[g>>2]=f[r>>2];f[g+4>>2]=f[r+4>>2];f[g+8>>2]=f[r+8>>2];f[e>>2]=f[s>>2];f[e+4>>2]=f[s+4>>2];f[e+8>>2]=f[s+8>>2];H=Af(j,g,e,k,c)|0;ef(j);if(!H){ia=0;break d}break}case 2:{$e(j,Ia);f[t>>2]=0;f[t+4>>2]=i;H=f[F>>2]|0;f[t+8>>2]=H;f[v>>2]=f[i>>2];f[v+4>>2]=i;f[v+8>>2]=H;f[k>>2]=La;f[g>>2]=f[t>>2];f[g+4>>2]=f[t+4>>2];f[g+8>>2]=f[t+8>>2];f[e>>2]=f[v>>2];f[e+4>>2]=f[v+4>>2];f[e+8>>2]=f[v+8>>2];H=Af(j,g,e,k,c)|0;ef(j);if(!H){ia=0;break d}break}case 1:{af(j,Ia);f[w>>2]=0;f[w+4>>2]=i;H=f[F>>2]|0;f[w+8>>2]=H;f[x>>2]=f[i>>2];f[x+4>>2]=i;f[x+8>>2]=H;f[k>>2]=La;f[g>>2]=f[w>>2];f[g+4>>2]=f[w+4>>2];f[g+8>>2]=f[w+8>>2];f[e>>2]=f[x>>2];f[e+4>>2]=f[x+4>>2];f[e+8>>2]=f[x+8>>2];H=zf(j,g,e,k,c)|0;df(j);if(!H){ia=0;break d}break}case 0:{af(j,Ia);f[y>>2]=0;f[y+4>>2]=i;H=f[F>>2]|0;f[y+8>>2]=H;f[z>>2]=f[i>>2];f[z+4>>2]=i;f[z+8>>2]=H;f[k>>2]=La;f[g>>2]=f[y>>2];f[g+4>>2]=f[y+4>>2];f[g+8>>2]=f[y+8>>2];f[e>>2]=f[z>>2];f[e+4>>2]=f[z+4>>2];f[e+8>>2]=f[z+8>>2];H=zf(j,g,e,k,c)|0;df(j);if(!H){ia=0;break d}break}default:{ia=0;break d}}ia=1}while(0);j=f[i+12>>2]|0;if(!j){u=d;return ia|0}i=f[J>>2]|0;if((i|0)!=(j|0))f[J>>2]=i+(~((i+-4-j|0)>>>2)<<2);Oq(j);u=d;return ia|0}function kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;d=u;u=u+32|0;e=d;g=a+8|0;h=f[g>>2]|0;f[e>>2]=0;i=e+4|0;f[i>>2]=0;f[e+8>>2]=0;do if(h)if(h>>>0>1073741823)aq(e);else{j=h<<2;k=ln(j)|0;f[e>>2]=k;l=k+(h<<2)|0;f[e+8>>2]=l;sj(k|0,0,j|0)|0;f[i>>2]=l;m=l;n=k;break}else{m=0;n=0}while(0);k=a+1164|0;l=f[k>>2]|0;j=f[l>>2]|0;o=l+4|0;if(!j){p=l+8|0;q=n;r=m;s=h}else{h=f[o>>2]|0;if((h|0)!=(j|0))f[o>>2]=h+(~((h+-4-j|0)>>>2)<<2);Oq(j);j=l+8|0;f[j>>2]=0;f[o>>2]=0;f[l>>2]=0;p=j;q=f[e>>2]|0;r=f[i>>2]|0;s=f[g>>2]|0}f[l>>2]=q;f[o>>2]=r;f[p>>2]=f[e+8>>2];f[e>>2]=0;p=e+4|0;f[p>>2]=0;f[e+8>>2]=0;do if(s)if(s>>>0>1073741823)aq(e);else{r=s<<2;o=ln(r)|0;f[e>>2]=o;q=o+(s<<2)|0;f[e+8>>2]=q;sj(o|0,0,r|0)|0;f[p>>2]=q;t=q;v=o;break}else{t=0;v=0}while(0);s=a+1176|0;o=f[s>>2]|0;q=f[o>>2]|0;r=o+4|0;if(!q){w=o+8|0;x=v;y=t}else{t=f[r>>2]|0;if((t|0)!=(q|0))f[r>>2]=t+(~((t+-4-q|0)>>>2)<<2);Oq(q);q=o+8|0;f[q>>2]=0;f[r>>2]=0;f[o>>2]=0;w=q;x=f[e>>2]|0;y=f[p>>2]|0}f[o>>2]=x;f[r>>2]=y;f[w>>2]=f[e+8>>2];w=f[b>>2]|0;y=b+4|0;r=f[y>>2]|0;x=f[y+4>>2]|0;y=f[c>>2]|0;o=c+4|0;p=f[o>>2]|0;q=f[o+4>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;o=e+8|0;t=e+4|0;v=e+16|0;l=e+20|0;i=r;Pc(e);j=f[t>>2]|0;h=(f[l>>2]|0)+(f[v>>2]|0)|0;if((f[o>>2]|0)==(j|0))z=0;else z=(f[j+(((h>>>0)/113|0)<<2)>>2]|0)+(((h>>>0)%113|0)*36|0)|0;f[z>>2]=w;h=z+4|0;f[h>>2]=r;f[h+4>>2]=x;f[z+12>>2]=y;h=z+16|0;f[h>>2]=p;f[h+4>>2]=q;f[z+24>>2]=0;f[z+28>>2]=y-w;f[z+32>>2]=0;z=(f[l>>2]|0)+1|0;f[l>>2]=z;if(z|0){w=a+1152|0;y=a+1084|0;h=a+1080|0;j=a+1072|0;m=a+1076|0;n=a+1068|0;A=b+8|0;B=c+8|0;C=a+1124|0;D=a+1120|0;E=a+1112|0;F=a+1116|0;G=a+1108|0;H=i+4|0;I=i+24|0;J=i+24|0;K=p+24|0;L=z;while(1){z=f[v>>2]|0;M=L+-1|0;N=M+z|0;O=f[t>>2]|0;P=f[O+(((N>>>0)/113|0)<<2)>>2]|0;Q=(N>>>0)%113|0;N=f[P+(Q*36|0)>>2]|0;R=f[P+(Q*36|0)+12>>2]|0;S=f[P+(Q*36|0)+24>>2]|0;T=f[P+(Q*36|0)+32>>2]|0;f[l>>2]=M;M=f[o>>2]|0;Q=M-O>>2;if((1-L-z+((Q|0)==0?0:(Q*113|0)+-1|0)|0)>>>0>225){Oq(f[M+-4>>2]|0);f[o>>2]=(f[o>>2]|0)+-4}f[b>>2]=N;f[c>>2]=R;M=f[k>>2]|0;Q=((f[g>>2]|0)+-1|0)==(S|0)?0:S+1|0;S=(f[s>>2]|0)+(T*12|0)|0;z=R-N|0;O=(f[a>>2]|0)-(f[(f[S>>2]|0)+(Q<<2)>>2]|0)|0;a:do if(O){if(z>>>0<3){P=f[w>>2]|0;f[P>>2]=Q;U=f[g>>2]|0;if(U>>>0>1){V=1;W=U;Y=Q;while(1){Y=(Y|0)==(W+-1|0)?0:Y+1|0;f[P+(V<<2)>>2]=Y;V=V+1|0;Z=f[g>>2]|0;if(V>>>0>=Z>>>0){$=Z;break}else W=Z}}else $=U;if(!z){aa=85;break}else{ba=0;ca=$}while(1){W=(f[I>>2]|0)+((X(f[H>>2]|0,N+ba|0)|0)<<2)|0;if(!ca)da=0;else{V=0;do{Y=f[(f[w>>2]|0)+(V<<2)>>2]|0;P=(f[a>>2]|0)-(f[(f[S>>2]|0)+(Y<<2)>>2]|0)|0;do if(P|0){Z=f[y>>2]|0;ea=32-Z|0;fa=32-P|0;ga=f[W+(Y<<2)>>2]<<fa;if((P|0)>(ea|0)){ha=ga>>>fa;fa=P-ea|0;f[y>>2]=fa;ea=f[h>>2]|ha>>>fa;f[h>>2]=ea;fa=f[j>>2]|0;if((fa|0)==(f[m>>2]|0))Ri(n,h);else{f[fa>>2]=ea;f[j>>2]=fa+4}f[h>>2]=ha<<32-(f[y>>2]|0);break}ha=f[h>>2]|ga>>>Z;f[h>>2]=ha;ga=Z+P|0;f[y>>2]=ga;if((ga|0)!=32)break;ga=f[j>>2]|0;if((ga|0)==(f[m>>2]|0))Ri(n,h);else{f[ga>>2]=ha;f[j>>2]=ga+4}f[h>>2]=0;f[y>>2]=0}while(0);V=V+1|0;P=f[g>>2]|0}while(V>>>0<P>>>0);da=P}ba=ba+1|0;if(ba>>>0>=z>>>0){aa=85;break a}else ca=da}}U=T+1|0;Ig(M+(U*12|0)|0,f[M+(T*12|0)>>2]|0,f[M+(T*12|0)+4>>2]|0);V=(f[(f[k>>2]|0)+(U*12|0)>>2]|0)+(Q<<2)|0;W=(f[V>>2]|0)+(1<<O+-1)|0;f[V>>2]=W;V=f[A>>2]|0;P=f[B>>2]|0;b:do if((R|0)==(N|0))ia=N;else{Y=f[J>>2]|0;if(!V){if((f[Y+(Q<<2)>>2]|0)>>>0<W>>>0){ia=R;break}else{ja=R;ka=N}while(1){ga=ja;do{ga=ga+-1|0;if((ka|0)==(ga|0)){ia=ka;break b}ha=(f[K>>2]|0)+((X(ga,P)|0)<<2)+(Q<<2)|0}while((f[ha>>2]|0)>>>0>=W>>>0);ka=ka+1|0;if((ka|0)==(ga|0)){ia=ga;break b}else ja=ga}}else{la=R;ma=N}while(1){ha=ma;while(1){na=Y+((X(ha,V)|0)<<2)|0;if((f[na+(Q<<2)>>2]|0)>>>0>=W>>>0){oa=la;break}Z=ha+1|0;if((Z|0)==(la|0)){ia=la;break b}else ha=Z}while(1){oa=oa+-1|0;if((ha|0)==(oa|0)){ia=ha;break b}pa=(f[K>>2]|0)+((X(oa,P)|0)<<2)|0;if((f[pa+(Q<<2)>>2]|0)>>>0<W>>>0){qa=0;break}}do{ga=na+(qa<<2)|0;Z=pa+(qa<<2)|0;fa=f[ga>>2]|0;f[ga>>2]=f[Z>>2];f[Z>>2]=fa;qa=qa+1|0}while((qa|0)!=(V|0));ma=ha+1|0;if((ma|0)==(oa|0)){ia=oa;break}else la=oa}}while(0);W=(_(z|0)|0)^31;P=ia-N|0;Y=R-ia|0;fa=P>>>0<Y>>>0;if((P|0)!=(Y|0)){Z=f[C>>2]|0;if(fa)f[D>>2]=f[D>>2]|1<<31-Z;ga=Z+1|0;f[C>>2]=ga;if((ga|0)==32){ga=f[E>>2]|0;if((ga|0)==(f[F>>2]|0))Ri(G,D);else{f[ga>>2]=f[D>>2];f[E>>2]=ga+4}f[C>>2]=0;f[D>>2]=0}}ga=z>>>1;if(fa){fa=ga-P|0;if(W|0){Z=0;ea=1<<W+-1;while(1){fj(a+12+(Z<<5)|0,(ea&fa|0)!=0);Z=Z+1|0;if((Z|0)==(W|0))break;else ea=ea>>>1}}}else{ea=ga-Y|0;if(W|0){Z=0;fa=1<<W+-1;while(1){fj(a+12+(Z<<5)|0,(fa&ea|0)!=0);Z=Z+1|0;if((Z|0)==(W|0))break;else fa=fa>>>1}}}fa=f[s>>2]|0;W=f[fa+(T*12|0)>>2]|0;Z=W+(Q<<2)|0;f[Z>>2]=(f[Z>>2]|0)+1;Ig(fa+(U*12|0)|0,W,f[fa+(T*12|0)+4>>2]|0);if((ia|0)!=(N|0)){fa=f[o>>2]|0;W=f[t>>2]|0;Z=fa-W>>2;ea=f[v>>2]|0;ga=f[l>>2]|0;if((((Z|0)==0?0:(Z*113|0)+-1|0)|0)==(ga+ea|0)){Pc(e);ra=f[v>>2]|0;sa=f[l>>2]|0;ta=f[o>>2]|0;ua=f[t>>2]|0}else{ra=ea;sa=ga;ta=fa;ua=W}W=sa+ra|0;if((ta|0)==(ua|0))va=0;else va=(f[ua+(((W>>>0)/113|0)<<2)>>2]|0)+(((W>>>0)%113|0)*36|0)|0;f[va>>2]=N;W=va+4|0;f[W>>2]=r;f[W+4>>2]=x;f[va+12>>2]=ia;f[va+16>>2]=i;f[va+20>>2]=V;f[va+24>>2]=Q;f[va+28>>2]=P;f[va+32>>2]=T;f[l>>2]=(f[l>>2]|0)+1}if((R|0)!=(ia|0)){W=f[o>>2]|0;fa=f[t>>2]|0;ga=W-fa>>2;ea=f[v>>2]|0;Z=f[l>>2]|0;if((((ga|0)==0?0:(ga*113|0)+-1|0)|0)==(Z+ea|0)){Pc(e);wa=f[v>>2]|0;xa=f[l>>2]|0;ya=f[o>>2]|0;za=f[t>>2]|0}else{wa=ea;xa=Z;ya=W;za=fa}fa=xa+wa|0;if((ya|0)==(za|0))Aa=0;else Aa=(f[za+(((fa>>>0)/113|0)<<2)>>2]|0)+(((fa>>>0)%113|0)*36|0)|0;f[Aa>>2]=ia;f[Aa+4>>2]=i;f[Aa+8>>2]=V;f[Aa+12>>2]=R;fa=Aa+16|0;f[fa>>2]=p;f[fa+4>>2]=q;f[Aa+24>>2]=Q;f[Aa+28>>2]=Y;f[Aa+32>>2]=U;fa=(f[l>>2]|0)+1|0;f[l>>2]=fa;Ba=fa}else aa=85}else aa=85;while(0);if((aa|0)==85){aa=0;Ba=f[l>>2]|0}if(!Ba)break;else L=Ba}}Ba=f[t>>2]|0;L=f[v>>2]|0;Aa=Ba+(((L>>>0)/113|0)<<2)|0;q=f[o>>2]|0;p=q;i=Ba;if((q|0)==(Ba|0)){Ca=0;Da=0}else{ia=(f[Aa>>2]|0)+(((L>>>0)%113|0)*36|0)|0;Ca=ia;Da=ia}ia=Aa;Aa=Da;c:while(1){Da=Aa;do{L=Da;if((Ca|0)==(L|0))break c;Da=L+36|0}while((Da-(f[ia>>2]|0)|0)!=4068);Da=ia+4|0;ia=Da;Aa=f[Da>>2]|0}f[l>>2]=0;l=p-i>>2;if(l>>>0>2){i=Ba;do{Oq(f[i>>2]|0);i=(f[t>>2]|0)+4|0;f[t>>2]=i;Ea=f[o>>2]|0;Fa=Ea-i>>2}while(Fa>>>0>2);Ga=Fa;Ha=i;Ia=Ea}else{Ga=l;Ha=Ba;Ia=q}switch(Ga|0){case 1:{Ja=56;aa=99;break}case 2:{Ja=113;aa=99;break}default:{}}if((aa|0)==99)f[v>>2]=Ja;if((Ha|0)!=(Ia|0)){Ja=Ha;do{Oq(f[Ja>>2]|0);Ja=Ja+4|0}while((Ja|0)!=(Ia|0));Ia=f[t>>2]|0;t=f[o>>2]|0;if((t|0)!=(Ia|0))f[o>>2]=t+(~((t+-4-Ia|0)>>>2)<<2)}Ia=f[e>>2]|0;if(!Ia){u=d;return}Oq(Ia);u=d;return}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0;d=u;u=u+32|0;e=d;g=a+8|0;h=f[g>>2]|0;f[e>>2]=0;i=e+4|0;f[i>>2]=0;f[e+8>>2]=0;do if(h)if(h>>>0>1073741823)aq(e);else{j=h<<2;k=ln(j)|0;f[e>>2]=k;l=k+(h<<2)|0;f[e+8>>2]=l;sj(k|0,0,j|0)|0;f[i>>2]=l;m=l;n=k;break}else{m=0;n=0}while(0);k=a+140|0;l=f[k>>2]|0;j=f[l>>2]|0;o=l+4|0;if(!j){p=l+8|0;q=n;r=m;s=h}else{h=f[o>>2]|0;if((h|0)!=(j|0))f[o>>2]=h+(~((h+-4-j|0)>>>2)<<2);Oq(j);j=l+8|0;f[j>>2]=0;f[o>>2]=0;f[l>>2]=0;p=j;q=f[e>>2]|0;r=f[i>>2]|0;s=f[g>>2]|0}f[l>>2]=q;f[o>>2]=r;f[p>>2]=f[e+8>>2];f[e>>2]=0;p=e+4|0;f[p>>2]=0;f[e+8>>2]=0;do if(s)if(s>>>0>1073741823)aq(e);else{r=s<<2;o=ln(r)|0;f[e>>2]=o;q=o+(s<<2)|0;f[e+8>>2]=q;sj(o|0,0,r|0)|0;f[p>>2]=q;t=q;v=o;break}else{t=0;v=0}while(0);s=a+152|0;o=f[s>>2]|0;q=f[o>>2]|0;r=o+4|0;if(!q){w=o+8|0;x=v;y=t}else{t=f[r>>2]|0;if((t|0)!=(q|0))f[r>>2]=t+(~((t+-4-q|0)>>>2)<<2);Oq(q);q=o+8|0;f[q>>2]=0;f[r>>2]=0;f[o>>2]=0;w=q;x=f[e>>2]|0;y=f[p>>2]|0}f[o>>2]=x;f[r>>2]=y;f[w>>2]=f[e+8>>2];w=f[b>>2]|0;y=b+4|0;r=f[y>>2]|0;x=f[y+4>>2]|0;y=f[c>>2]|0;o=c+4|0;p=f[o>>2]|0;q=f[o+4>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;o=e+8|0;t=e+4|0;v=e+16|0;l=e+20|0;i=r;Pc(e);j=f[t>>2]|0;h=(f[l>>2]|0)+(f[v>>2]|0)|0;if((f[o>>2]|0)==(j|0))z=0;else z=(f[j+(((h>>>0)/113|0)<<2)>>2]|0)+(((h>>>0)%113|0)*36|0)|0;f[z>>2]=w;h=z+4|0;f[h>>2]=r;f[h+4>>2]=x;f[z+12>>2]=y;h=z+16|0;f[h>>2]=p;f[h+4>>2]=q;f[z+24>>2]=0;f[z+28>>2]=y-w;f[z+32>>2]=0;z=(f[l>>2]|0)+1|0;f[l>>2]=z;if(z|0){w=a+128|0;y=a+60|0;h=a+56|0;j=a+48|0;m=a+52|0;n=a+44|0;A=b+8|0;B=c+8|0;C=a+12|0;D=a+100|0;E=a+96|0;F=a+88|0;G=a+92|0;H=a+84|0;I=i+4|0;J=i+24|0;K=i+24|0;L=p+24|0;M=z;while(1){z=f[v>>2]|0;N=M+-1|0;O=N+z|0;P=f[t>>2]|0;Q=f[P+(((O>>>0)/113|0)<<2)>>2]|0;R=(O>>>0)%113|0;O=f[Q+(R*36|0)>>2]|0;S=f[Q+(R*36|0)+12>>2]|0;T=f[Q+(R*36|0)+24>>2]|0;U=f[Q+(R*36|0)+32>>2]|0;f[l>>2]=N;N=f[o>>2]|0;R=N-P>>2;if((1-M-z+((R|0)==0?0:(R*113|0)+-1|0)|0)>>>0>225){Oq(f[N+-4>>2]|0);f[o>>2]=(f[o>>2]|0)+-4}f[b>>2]=O;f[c>>2]=S;N=f[k>>2]|0;R=((f[g>>2]|0)+-1|0)==(T|0)?0:T+1|0;T=(f[s>>2]|0)+(U*12|0)|0;z=S-O|0;P=(f[a>>2]|0)-(f[(f[T>>2]|0)+(R<<2)>>2]|0)|0;a:do if(P){if(z>>>0<3){Q=f[w>>2]|0;f[Q>>2]=R;V=f[g>>2]|0;if(V>>>0>1){W=1;Y=V;Z=R;while(1){Z=(Z|0)==(Y+-1|0)?0:Z+1|0;f[Q+(W<<2)>>2]=Z;W=W+1|0;$=f[g>>2]|0;if(W>>>0>=$>>>0){aa=$;break}else Y=$}}else aa=V;if(!z){ba=81;break}else{ca=0;da=aa}while(1){Y=(f[J>>2]|0)+((X(f[I>>2]|0,O+ca|0)|0)<<2)|0;if(!da)ea=0;else{W=0;do{Z=f[(f[w>>2]|0)+(W<<2)>>2]|0;Q=(f[a>>2]|0)-(f[(f[T>>2]|0)+(Z<<2)>>2]|0)|0;do if(Q|0){$=f[y>>2]|0;fa=32-$|0;ga=32-Q|0;ha=f[Y+(Z<<2)>>2]<<ga;if((Q|0)>(fa|0)){ia=ha>>>ga;ga=Q-fa|0;f[y>>2]=ga;fa=f[h>>2]|ia>>>ga;f[h>>2]=fa;ga=f[j>>2]|0;if((ga|0)==(f[m>>2]|0))Ri(n,h);else{f[ga>>2]=fa;f[j>>2]=ga+4}f[h>>2]=ia<<32-(f[y>>2]|0);break}ia=f[h>>2]|ha>>>$;f[h>>2]=ia;ha=$+Q|0;f[y>>2]=ha;if((ha|0)!=32)break;ha=f[j>>2]|0;if((ha|0)==(f[m>>2]|0))Ri(n,h);else{f[ha>>2]=ia;f[j>>2]=ha+4}f[h>>2]=0;f[y>>2]=0}while(0);W=W+1|0;Q=f[g>>2]|0}while(W>>>0<Q>>>0);ea=Q}ca=ca+1|0;if(ca>>>0>=z>>>0){ba=81;break a}else da=ea}}V=U+1|0;Ig(N+(V*12|0)|0,f[N+(U*12|0)>>2]|0,f[N+(U*12|0)+4>>2]|0);W=(f[(f[k>>2]|0)+(V*12|0)>>2]|0)+(R<<2)|0;Y=(f[W>>2]|0)+(1<<P+-1)|0;f[W>>2]=Y;W=f[A>>2]|0;Q=f[B>>2]|0;b:do if((S|0)==(O|0))ja=O;else{Z=f[K>>2]|0;if(!W){if((f[Z+(R<<2)>>2]|0)>>>0<Y>>>0){ja=S;break}else{ka=S;la=O}while(1){ha=ka;do{ha=ha+-1|0;if((la|0)==(ha|0)){ja=la;break b}ia=(f[L>>2]|0)+((X(ha,Q)|0)<<2)+(R<<2)|0}while((f[ia>>2]|0)>>>0>=Y>>>0);la=la+1|0;if((la|0)==(ha|0)){ja=ha;break b}else ka=ha}}else{ma=S;na=O}while(1){ia=na;while(1){oa=Z+((X(ia,W)|0)<<2)|0;if((f[oa+(R<<2)>>2]|0)>>>0>=Y>>>0){pa=ma;break}$=ia+1|0;if(($|0)==(ma|0)){ja=ma;break b}else ia=$}while(1){pa=pa+-1|0;if((ia|0)==(pa|0)){ja=ia;break b}qa=(f[L>>2]|0)+((X(pa,Q)|0)<<2)|0;if((f[qa+(R<<2)>>2]|0)>>>0<Y>>>0){ra=0;break}}do{ha=oa+(ra<<2)|0;$=qa+(ra<<2)|0;ga=f[ha>>2]|0;f[ha>>2]=f[$>>2];f[$>>2]=ga;ra=ra+1|0}while((ra|0)!=(W|0));na=ia+1|0;if((na|0)==(pa|0)){ja=pa;break}else ma=pa}}while(0);Y=(_(z|0)|0)^31;Q=ja-O|0;Z=S-ja|0;ga=Q>>>0<Z>>>0;if((Q|0)!=(Z|0)){$=f[D>>2]|0;if(ga)f[E>>2]=f[E>>2]|1<<31-$;ha=$+1|0;f[D>>2]=ha;if((ha|0)==32){ha=f[F>>2]|0;if((ha|0)==(f[G>>2]|0))Ri(H,E);else{f[ha>>2]=f[E>>2];f[F>>2]=ha+4}f[D>>2]=0;f[E>>2]=0}}ha=z>>>1;if(ga)sg(C,Y,ha-Q|0);else sg(C,Y,ha-Z|0);ha=f[s>>2]|0;Y=f[ha+(U*12|0)>>2]|0;ga=Y+(R<<2)|0;f[ga>>2]=(f[ga>>2]|0)+1;Ig(ha+(V*12|0)|0,Y,f[ha+(U*12|0)+4>>2]|0);if((ja|0)!=(O|0)){ha=f[o>>2]|0;Y=f[t>>2]|0;ga=ha-Y>>2;$=f[v>>2]|0;fa=f[l>>2]|0;if((((ga|0)==0?0:(ga*113|0)+-1|0)|0)==(fa+$|0)){Pc(e);sa=f[v>>2]|0;ta=f[l>>2]|0;ua=f[o>>2]|0;va=f[t>>2]|0}else{sa=$;ta=fa;ua=ha;va=Y}Y=ta+sa|0;if((ua|0)==(va|0))wa=0;else wa=(f[va+(((Y>>>0)/113|0)<<2)>>2]|0)+(((Y>>>0)%113|0)*36|0)|0;f[wa>>2]=O;Y=wa+4|0;f[Y>>2]=r;f[Y+4>>2]=x;f[wa+12>>2]=ja;f[wa+16>>2]=i;f[wa+20>>2]=W;f[wa+24>>2]=R;f[wa+28>>2]=Q;f[wa+32>>2]=U;f[l>>2]=(f[l>>2]|0)+1}if((S|0)!=(ja|0)){Q=f[o>>2]|0;Y=f[t>>2]|0;ha=Q-Y>>2;fa=f[v>>2]|0;$=f[l>>2]|0;if((((ha|0)==0?0:(ha*113|0)+-1|0)|0)==($+fa|0)){Pc(e);xa=f[v>>2]|0;ya=f[l>>2]|0;za=f[o>>2]|0;Aa=f[t>>2]|0}else{xa=fa;ya=$;za=Q;Aa=Y}Y=ya+xa|0;if((za|0)==(Aa|0))Ba=0;else Ba=(f[Aa+(((Y>>>0)/113|0)<<2)>>2]|0)+(((Y>>>0)%113|0)*36|0)|0;f[Ba>>2]=ja;f[Ba+4>>2]=i;f[Ba+8>>2]=W;f[Ba+12>>2]=S;Y=Ba+16|0;f[Y>>2]=p;f[Y+4>>2]=q;f[Ba+24>>2]=R;f[Ba+28>>2]=Z;f[Ba+32>>2]=V;Z=(f[l>>2]|0)+1|0;f[l>>2]=Z;Ca=Z}else ba=81}else ba=81;while(0);if((ba|0)==81){ba=0;Ca=f[l>>2]|0}if(!Ca)break;else M=Ca}}Ca=f[t>>2]|0;M=f[v>>2]|0;Ba=Ca+(((M>>>0)/113|0)<<2)|0;q=f[o>>2]|0;p=q;i=Ca;if((q|0)==(Ca|0)){Da=0;Ea=0}else{ja=(f[Ba>>2]|0)+(((M>>>0)%113|0)*36|0)|0;Da=ja;Ea=ja}ja=Ba;Ba=Ea;c:while(1){Ea=Ba;do{M=Ea;if((Da|0)==(M|0))break c;Ea=M+36|0}while((Ea-(f[ja>>2]|0)|0)!=4068);Ea=ja+4|0;ja=Ea;Ba=f[Ea>>2]|0}f[l>>2]=0;l=p-i>>2;if(l>>>0>2){i=Ca;do{Oq(f[i>>2]|0);i=(f[t>>2]|0)+4|0;f[t>>2]=i;Fa=f[o>>2]|0;Ga=Fa-i>>2}while(Ga>>>0>2);Ha=Ga;Ia=i;Ja=Fa}else{Ha=l;Ia=Ca;Ja=q}switch(Ha|0){case 1:{Ka=56;ba=95;break}case 2:{Ka=113;ba=95;break}default:{}}if((ba|0)==95)f[v>>2]=Ka;if((Ia|0)!=(Ja|0)){Ka=Ia;do{Oq(f[Ka>>2]|0);Ka=Ka+4|0}while((Ka|0)!=(Ja|0));Ja=f[t>>2]|0;t=f[o>>2]|0;if((t|0)!=(Ja|0))f[o>>2]=t+(~((t+-4-Ja|0)>>>2)<<2)}Ja=f[e>>2]|0;if(!Ja){u=d;return}Oq(Ja);u=d;return}function mb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=Oa,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;if(!(b[a+32>>0]|0)){r=o;m=0;while(1){s=$(b[r>>0]|0);n[g+(m<<2)>>2]=s;m=m+1|0;q=b[k>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){t=q;break}else r=r+1|0}}else{r=o;m=0;while(1){s=$($(b[r>>0]|0)/$(127.0));n[g+(m<<2)>>2]=s;m=m+1|0;q=b[k>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){t=q;break}else r=r+1|0}}}else t=l;r=t<<24>>24;if(t<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 2:{r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){k=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;u=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=k+u|0;if(!(b[a+32>>0]|0)){u=o;k=0;while(1){s=$(h[u>>0]|0);n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){v=q;break}else u=u+1|0}}else{u=o;k=0;while(1){s=$($(h[u>>0]|0)/$(255.0));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){v=l;break}else u=u+1|0}}}else v=m;u=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 3:{u=a+48|0;k=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,k|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;l=0;while(1){s=$(d[u>>1]|0);n[g+(l<<2)>>2]=s;l=l+1|0;q=b[r>>0]|0;if((l|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){w=q;break}else u=u+2|0}}else{u=o;l=0;while(1){s=$($(d[u>>1]|0)/$(32767.0));n[g+(l<<2)>>2]=s;l=l+1|0;m=b[r>>0]|0;if((l|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else u=u+2|0}}else w=k;u=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 4:{u=a+48|0;l=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,l|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;l=b[r>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;m=0;while(1){s=$(j[u>>1]|0);n[g+(m<<2)>>2]=s;m=m+1|0;q=b[r>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){x=q;break}else u=u+2|0}}else{u=o;m=0;while(1){s=$($(j[u>>1]|0)/$(65535.0));n[g+(m<<2)>>2]=s;m=m+1|0;k=b[r>>0]|0;if((m|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){x=k;break}else u=u+2|0}}else x=l;u=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 5:{u=a+48|0;m=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,m|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;k=0;while(1){s=$(f[u>>2]|0);n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){y=q;break}else u=u+4|0}}else{u=o;k=0;while(1){s=$($(f[u>>2]|0)*$(4.65661287e-10));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){y=l;break}else u=u+4|0}}else y=m;u=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 6:{u=a+48|0;k=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,k|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;l=0;while(1){s=$((f[u>>2]|0)>>>0);n[g+(l<<2)>>2]=s;l=l+1|0;q=b[r>>0]|0;if((l|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){z=q;break}else u=u+4|0}}else{u=o;l=0;while(1){s=$($((f[u>>2]|0)>>>0)*$(2.32830644e-10));n[g+(l<<2)>>2]=s;l=l+1|0;m=b[r>>0]|0;if((l|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){z=m;break}else u=u+4|0}}else z=k;u=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 7:{u=a+48|0;l=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,l|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;l=b[r>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;m=0;while(1){q=u;s=$(+((f[q>>2]|0)>>>0)+4294967296.0*+(f[q+4>>2]|0));n[g+(m<<2)>>2]=s;m=m+1|0;q=b[r>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else u=u+8|0}}else{u=o;m=0;while(1){k=u;s=$($(+((f[k>>2]|0)>>>0)+4294967296.0*+(f[k+4>>2]|0))*$(1.08420217e-19));n[g+(m<<2)>>2]=s;m=m+1|0;k=b[r>>0]|0;if((m|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){A=k;break}else u=u+8|0}}else A=l;u=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 8:{u=a+48|0;m=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,m|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;k=0;while(1){q=u;s=$(+((f[q>>2]|0)>>>0)+4294967296.0*+((f[q+4>>2]|0)>>>0));n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){B=q;break}else u=u+8|0}}else{u=o;k=0;while(1){l=u;s=$($(+((f[l>>2]|0)>>>0)+4294967296.0*+((f[l+4>>2]|0)>>>0))*$(5.42101086e-20));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){B=l;break}else u=u+8|0}}else B=m;u=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 9:{u=a+24|0;k=b[u>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){r=f[f[a>>2]>>2]|0;o=a+40|0;l=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;q=Vn(l|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=r+q|0;q=0;while(1){f[g+(q<<2)>>2]=f[o>>2];q=q+1|0;r=b[u>>0]|0;if((q|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){C=r;break}else o=o+4|0}}else C=k;o=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 10:{o=a+24|0;q=b[o>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){u=f[f[a>>2]>>2]|0;m=a+40|0;r=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;l=Vn(r|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=u+l|0;l=0;while(1){s=$(+p[m>>3]);n[g+(l<<2)>>2]=s;l=l+1|0;u=b[o>>0]|0;if((l|0)>=((u<<24>>24>e<<24>>24?e:u)<<24>>24|0)){D=u;break}else m=m+8|0}}else D=q;m=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 11:{m=a+24|0;l=b[m>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){o=f[f[a>>2]>>2]|0;k=a+40|0;u=un(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;r=Vn(u|0,I|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=o+r|0;r=0;while(1){s=$((b[k>>0]|0)!=0&1);n[g+(r<<2)>>2]=s;r=r+1|0;o=b[m>>0]|0;if((r|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){E=o;break}else k=k+1|0}}else E=l;k=E<<24>>24;if(E<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function nb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0.0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0.0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0.0,kb=0.0,lb=0.0,mb=0.0,nb=0.0,ob=0.0,pb=0.0,qb=0.0,rb=0.0,sb=0.0,tb=0;i=u;u=u+512|0;j=i;k=d+c|0;l=0-k|0;m=a+4|0;n=a+100|0;o=b;b=0;a:while(1){switch(o|0){case 46:{p=6;break a;break}case 48:break;default:{q=0;r=o;s=b;t=0;v=0;break a}}w=f[m>>2]|0;if(w>>>0<(f[n>>2]|0)>>>0){f[m>>2]=w+1;o=h[w>>0]|0;b=1;continue}else{o=Si(a)|0;b=1;continue}}if((p|0)==6){o=f[m>>2]|0;if(o>>>0<(f[n>>2]|0)>>>0){f[m>>2]=o+1;x=h[o>>0]|0}else x=Si(a)|0;if((x|0)==48){o=0;w=0;while(1){y=Vn(o|0,w|0,-1,-1)|0;z=I;A=f[m>>2]|0;if(A>>>0<(f[n>>2]|0)>>>0){f[m>>2]=A+1;B=h[A>>0]|0}else B=Si(a)|0;if((B|0)==48){o=y;w=z}else{q=1;r=B;s=1;t=y;v=z;break}}}else{q=1;r=x;s=b;t=0;v=0}}f[j>>2]=0;b=r+-48|0;x=(r|0)==46;b:do if(x|b>>>0<10){B=j+496|0;w=0;o=0;z=0;y=q;A=s;C=r;D=x;E=b;F=t;G=v;H=0;J=0;c:while(1){do if(D)if(!y){L=w;M=o;N=1;O=z;P=A;Q=H;R=J;S=H;T=J}else break c;else{U=Vn(H|0,J|0,1,0)|0;V=I;W=(C|0)!=48;if((o|0)>=125){if(!W){L=w;M=o;N=y;O=z;P=A;Q=F;R=G;S=U;T=V;break}f[B>>2]=f[B>>2]|1;L=w;M=o;N=y;O=z;P=A;Q=F;R=G;S=U;T=V;break}Y=j+(o<<2)|0;if(!w)Z=E;else Z=C+-48+((f[Y>>2]|0)*10|0)|0;f[Y>>2]=Z;Y=w+1|0;_=(Y|0)==9;L=_?0:Y;M=o+(_&1)|0;N=y;O=W?U:z;P=1;Q=F;R=G;S=U;T=V}while(0);V=f[m>>2]|0;if(V>>>0<(f[n>>2]|0)>>>0){f[m>>2]=V+1;$=h[V>>0]|0}else $=Si(a)|0;E=$+-48|0;D=($|0)==46;if(!(D|E>>>0<10)){aa=L;ba=M;ca=O;da=N;ea=$;fa=P;ga=S;ha=Q;ia=T;ja=R;p=29;break b}else{w=L;o=M;z=O;y=N;A=P;C=$;F=Q;G=R;H=S;J=T}}ka=w;la=o;ma=z;na=H;oa=J;pa=F;qa=G;ra=(A|0)!=0;p=37}else{aa=0;ba=0;ca=0;da=q;ea=r;fa=s;ga=0;ha=t;ia=0;ja=v;p=29}while(0);do if((p|0)==29){v=(da|0)==0;t=v?ga:ha;s=v?ia:ja;v=(fa|0)!=0;if(!(v&(ea|32|0)==101))if((ea|0)>-1){ka=aa;la=ba;ma=ca;na=ga;oa=ia;pa=t;qa=s;ra=v;p=37;break}else{sa=aa;ta=ba;ua=ca;va=ga;wa=ia;xa=v;ya=t;za=s;p=39;break}v=Re(a,g)|0;r=I;if((v|0)==0&(r|0)==-2147483648){if(!g){Ym(a,0);Aa=0.0;break}if(!(f[n>>2]|0)){Ba=0;Ca=0}else{f[m>>2]=(f[m>>2]|0)+-1;Ba=0;Ca=0}}else{Ba=v;Ca=r}r=Vn(Ba|0,Ca|0,t|0,s|0)|0;Da=aa;Ea=ba;Fa=ca;Ga=r;Ha=ga;Ia=I;Ja=ia;p=41}while(0);if((p|0)==37)if(f[n>>2]|0){f[m>>2]=(f[m>>2]|0)+-1;if(ra){Da=ka;Ea=la;Fa=ma;Ga=pa;Ha=na;Ia=qa;Ja=oa;p=41}else p=40}else{sa=ka;ta=la;ua=ma;va=na;wa=oa;xa=ra;ya=pa;za=qa;p=39}if((p|0)==39)if(xa){Da=sa;Ea=ta;Fa=ua;Ga=ya;Ha=va;Ia=za;Ja=wa;p=41}else p=40;do if((p|0)==40){wa=Vq()|0;f[wa>>2]=22;Ym(a,0);Aa=0.0}else if((p|0)==41){wa=f[j>>2]|0;if(!wa){Aa=+(e|0)*0.0;break}if(((Ja|0)<0|(Ja|0)==0&Ha>>>0<10)&((Ga|0)==(Ha|0)&(Ia|0)==(Ja|0))?(c|0)>30|(wa>>>c|0)==0:0){Aa=+(e|0)*+(wa>>>0);break}wa=(d|0)/-2|0;za=((wa|0)<0)<<31>>31;if((Ia|0)>(za|0)|(Ia|0)==(za|0)&Ga>>>0>wa>>>0){wa=Vq()|0;f[wa>>2]=34;Aa=+(e|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}wa=d+-106|0;za=((wa|0)<0)<<31>>31;if((Ia|0)<(za|0)|(Ia|0)==(za|0)&Ga>>>0<wa>>>0){wa=Vq()|0;f[wa>>2]=34;Aa=+(e|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(!Da)Ka=Ea;else{if((Da|0)<9){wa=j+(Ea<<2)|0;za=Da;va=f[wa>>2]|0;while(1){va=va*10|0;if((za|0)>=8)break;else za=za+1|0}f[wa>>2]=va}Ka=Ea+1|0}if((Fa|0)<9?(Fa|0)<=(Ga|0)&(Ga|0)<18:0){if((Ga|0)==9){Aa=+(e|0)*+((f[j>>2]|0)>>>0);break}if((Ga|0)<9){Aa=+(e|0)*+((f[j>>2]|0)>>>0)/+(f[6720+(8-Ga<<2)>>2]|0);break}za=c+27+(X(Ga,-3)|0)|0;A=f[j>>2]|0;if((za|0)>30|(A>>>za|0)==0){Aa=+(e|0)*+(A>>>0)*+(f[6720+(Ga+-10<<2)>>2]|0);break}}A=(Ga|0)%9|0;if(!A){La=0;Ma=Ka;Na=0;Oa=Ga}else{za=(Ga|0)>-1?A:A+9|0;A=f[6720+(8-za<<2)>>2]|0;if(Ka){G=1e9/(A|0)|0;F=0;J=0;H=Ga;z=0;do{o=j+(z<<2)|0;w=f[o>>2]|0;ya=((w>>>0)/(A>>>0)|0)+F|0;f[o>>2]=ya;F=X(G,(w>>>0)%(A>>>0)|0)|0;w=(z|0)==(J|0)&(ya|0)==0;H=w?H+-9|0:H;J=w?J+1&127:J;z=z+1|0}while((z|0)!=(Ka|0));if(!F){Pa=J;Qa=Ka;Ra=H}else{f[j+(Ka<<2)>>2]=F;Pa=J;Qa=Ka+1|0;Ra=H}}else{Pa=0;Qa=0;Ra=Ga}La=0;Ma=Qa;Na=Pa;Oa=9-za+Ra|0}d:while(1){z=(Oa|0)<18;A=(Oa|0)==18;G=j+(Na<<2)|0;va=La;wa=Ma;while(1){if(!z){if(!A){Sa=va;Ta=Na;Ua=Oa;Va=wa;break d}if((f[G>>2]|0)>>>0>=9007199){Sa=va;Ta=Na;Ua=18;Va=wa;break d}}w=0;Wa=wa;ya=wa+127|0;while(1){o=ya&127;ua=j+(o<<2)|0;ta=Tn(f[ua>>2]|0,0,29)|0;sa=Vn(ta|0,I|0,w|0,0)|0;ta=I;if(ta>>>0>0|(ta|0)==0&sa>>>0>1e9){xa=jp(sa|0,ta|0,1e9,0)|0;qa=hn(sa|0,ta|0,1e9,0)|0;Xa=xa;Ya=qa}else{Xa=0;Ya=sa}f[ua>>2]=Ya;ua=(o|0)==(Na|0);Wa=(Ya|0)==0&(((o|0)!=(Wa+127&127|0)|ua)^1)?o:Wa;if(ua)break;else{w=Xa;ya=o+-1|0}}va=va+-29|0;if(Xa|0)break;else wa=Wa}wa=Na+127&127;G=Wa+127&127;A=j+((Wa+126&127)<<2)|0;if((wa|0)==(Wa|0)){f[A>>2]=f[A>>2]|f[j+(G<<2)>>2];Za=G}else Za=Wa;f[j+(wa<<2)>>2]=Xa;La=va;Ma=Za;Na=wa;Oa=Oa+9|0}e:while(1){za=Va+1&127;H=j+((Va+127&127)<<2)|0;J=Sa;F=Ta;wa=Ua;while(1){G=(wa|0)==18;A=(wa|0)>27?9:1;_a=J;$a=F;while(1){z=0;while(1){ya=z+$a&127;if((ya|0)==(Va|0)){ab=2;p=88;break}w=f[j+(ya<<2)>>2]|0;ya=f[6752+(z<<2)>>2]|0;if(w>>>0<ya>>>0){ab=2;p=88;break}if(w>>>0>ya>>>0)break;ya=z+1|0;if((z|0)<1)z=ya;else{ab=ya;p=88;break}}if((p|0)==88?(p=0,G&(ab|0)==2):0){bb=0.0;cb=0;db=Va;break e}eb=A+_a|0;if(($a|0)==(Va|0)){_a=eb;$a=Va}else break}G=(1<<A)+-1|0;z=1e9>>>A;fb=0;gb=$a;hb=wa;ya=$a;do{w=j+(ya<<2)|0;o=f[w>>2]|0;ua=(o>>>A)+fb|0;f[w>>2]=ua;fb=X(o&G,z)|0;o=(ya|0)==(gb|0)&(ua|0)==0;hb=o?hb+-9|0:hb;gb=o?gb+1&127:gb;ya=ya+1&127}while((ya|0)!=(Va|0));if(!fb){J=eb;F=gb;wa=hb;continue}if((za|0)!=(gb|0))break;f[H>>2]=f[H>>2]|1;J=eb;F=gb;wa=hb}f[j+(Va<<2)>>2]=fb;Sa=eb;Ta=gb;Ua=hb;Va=za}while(1){wa=cb+$a&127;F=db+1&127;if((wa|0)==(db|0)){f[j+(F+-1<<2)>>2]=0;ib=F}else ib=db;bb=bb*1.0e9+ +((f[j+(wa<<2)>>2]|0)>>>0);cb=cb+1|0;if((cb|0)==2)break;else db=ib}jb=+(e|0);kb=bb*jb;wa=_a+53|0;F=wa-d|0;J=(F|0)<(c|0);H=J?((F|0)>0?F:0):c;if((H|0)<53){lb=+rq(+bk(1.0,105-H|0),kb);mb=+Dq(kb,+bk(1.0,53-H|0));nb=lb;ob=mb;pb=lb+(kb-mb)}else{nb=0.0;ob=0.0;pb=kb}va=$a+2&127;if((va|0)!=(ib|0)){ya=f[j+(va<<2)>>2]|0;do if(ya>>>0>=5e8){if((ya|0)!=5e8){qb=jb*.75+ob;break}if(($a+3&127|0)==(ib|0)){qb=jb*.5+ob;break}else{qb=jb*.75+ob;break}}else{if((ya|0)==0?($a+3&127|0)==(ib|0):0){qb=ob;break}qb=jb*.25+ob}while(0);if((53-H|0)>1?!(+Dq(qb,1.0)!=0.0):0)rb=qb+1.0;else rb=qb}else rb=ob;jb=pb+rb-nb;do if((wa&2147483647|0)>(-2-k|0)){ya=!(+K(+jb)>=9007199254740992.0);va=_a+((ya^1)&1)|0;kb=ya?jb:jb*.5;if((va+50|0)<=(l|0)?!(rb!=0.0&(J&((H|0)!=(F|0)|ya))):0){sb=kb;tb=va;break}ya=Vq()|0;f[ya>>2]=34;sb=kb;tb=va}else{sb=jb;tb=_a}while(0);Aa=+sq(sb,tb)}while(0);u=i;return +Aa}function ob(a,c,d,e,g,i){a=a|0;c=+c;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0.0,E=0,F=0,G=0,H=0.0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0.0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;j=u;u=u+560|0;k=j+8|0;l=j;m=j+524|0;n=m;o=j+512|0;f[l>>2]=0;p=o+12|0;yo(c)|0;if((I|0)<0){q=-c;r=1;s=16605}else{q=c;r=(g&2049|0)!=0&1;s=(g&2048|0)==0?((g&1|0)==0?16606:16611):16608}yo(q)|0;do if(0==0&(I&2146435072|0)==2146435072){t=(i&32|0)!=0;v=r+3|0;Qk(a,32,d,v,g&-65537);Xo(a,s,r);Xo(a,q!=q|0.0!=0.0?(t?18555:16632):t?16624:16628,3);Qk(a,32,d,v,g^8192);w=v}else{c=+tq(q,l)*2.0;v=c!=0.0;if(v)f[l>>2]=(f[l>>2]|0)+-1;t=i|32;if((t|0)==97){x=i&32;y=(x|0)==0?s:s+9|0;z=r|2;A=12-e|0;do if(!(e>>>0>11|(A|0)==0)){B=8.0;C=A;do{C=C+-1|0;B=B*16.0}while((C|0)!=0);if((b[y>>0]|0)==45){D=-(B+(-c-B));break}else{D=c+B-B;break}}else D=c;while(0);A=f[l>>2]|0;C=(A|0)<0?0-A|0:A;E=Rj(C,((C|0)<0)<<31>>31,p)|0;if((E|0)==(p|0)){C=o+11|0;b[C>>0]=48;F=C}else F=E;b[F+-1>>0]=(A>>31&2)+43;A=F+-2|0;b[A>>0]=i+15;E=(e|0)<1;C=(g&8|0)==0;G=m;H=D;while(1){J=~~H;K=G+1|0;b[G>>0]=x|h[16636+J>>0];H=(H-+(J|0))*16.0;if((K-n|0)==1?!(C&(E&H==0.0)):0){b[K>>0]=46;L=G+2|0}else L=K;if(!(H!=0.0))break;else G=L}G=L;if((e|0)!=0?(-2-n+G|0)<(e|0):0){M=G-n|0;N=e+2|0}else{E=G-n|0;M=E;N=E}E=p-A|0;G=E+z+N|0;Qk(a,32,d,G,g);Xo(a,y,z);Qk(a,48,d,G,g^65536);Xo(a,m,M);Qk(a,48,N-M|0,0,0);Xo(a,A,E);Qk(a,32,d,G,g^8192);w=G;break}G=(e|0)<0?6:e;if(v){E=(f[l>>2]|0)+-28|0;f[l>>2]=E;O=c*268435456.0;P=E}else{O=c;P=f[l>>2]|0}E=(P|0)<0?k:k+288|0;C=E;H=O;do{x=~~H>>>0;f[C>>2]=x;C=C+4|0;H=(H-+(x>>>0))*1.0e9}while(H!=0.0);if((P|0)>0){v=E;A=C;z=P;while(1){y=(z|0)<29?z:29;x=A+-4|0;if(x>>>0>=v>>>0){K=x;x=0;do{J=Tn(f[K>>2]|0,0,y|0)|0;Q=Vn(J|0,I|0,x|0,0)|0;J=I;R=hn(Q|0,J|0,1e9,0)|0;f[K>>2]=R;x=jp(Q|0,J|0,1e9,0)|0;K=K+-4|0}while(K>>>0>=v>>>0);if(x){K=v+-4|0;f[K>>2]=x;S=K}else S=v}else S=v;K=A;while(1){if(K>>>0<=S>>>0)break;J=K+-4|0;if(!(f[J>>2]|0))K=J;else break}x=(f[l>>2]|0)-y|0;f[l>>2]=x;if((x|0)>0){v=S;A=K;z=x}else{T=S;U=K;V=x;break}}}else{T=E;U=C;V=P}if((V|0)<0){z=((G+25|0)/9|0)+1|0;A=(t|0)==102;v=T;x=U;J=V;while(1){Q=0-J|0;R=(Q|0)<9?Q:9;if(v>>>0<x>>>0){Q=(1<<R)+-1|0;W=1e9>>>R;Y=0;Z=v;do{_=f[Z>>2]|0;f[Z>>2]=(_>>>R)+Y;Y=X(_&Q,W)|0;Z=Z+4|0}while(Z>>>0<x>>>0);Z=(f[v>>2]|0)==0?v+4|0:v;if(!Y){$=Z;aa=x}else{f[x>>2]=Y;$=Z;aa=x+4|0}}else{$=(f[v>>2]|0)==0?v+4|0:v;aa=x}Z=A?E:$;W=(aa-Z>>2|0)>(z|0)?Z+(z<<2)|0:aa;J=(f[l>>2]|0)+R|0;f[l>>2]=J;if((J|0)>=0){ba=$;ca=W;break}else{v=$;x=W}}}else{ba=T;ca=U}x=E;if(ba>>>0<ca>>>0){v=(x-ba>>2)*9|0;J=f[ba>>2]|0;if(J>>>0<10)da=v;else{z=v;v=10;while(1){v=v*10|0;A=z+1|0;if(J>>>0<v>>>0){da=A;break}else z=A}}}else da=0;z=(t|0)==103;v=(G|0)!=0;J=G-((t|0)!=102?da:0)+((v&z)<<31>>31)|0;if((J|0)<(((ca-x>>2)*9|0)+-9|0)){A=J+9216|0;J=E+4+(((A|0)/9|0)+-1024<<2)|0;C=(A|0)%9|0;if((C|0)<8){A=C;C=10;while(1){W=C*10|0;if((A|0)<7){A=A+1|0;C=W}else{ea=W;break}}}else ea=10;C=f[J>>2]|0;A=(C>>>0)%(ea>>>0)|0;t=(J+4|0)==(ca|0);if(!(t&(A|0)==0)){B=(((C>>>0)/(ea>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;W=(ea|0)/2|0;H=A>>>0<W>>>0?.5:t&(A|0)==(W|0)?1.0:1.5;if(!r){fa=H;ga=B}else{W=(b[s>>0]|0)==45;fa=W?-H:H;ga=W?-B:B}W=C-A|0;f[J>>2]=W;if(ga+fa!=ga){A=W+ea|0;f[J>>2]=A;if(A>>>0>999999999){A=ba;W=J;while(1){C=W+-4|0;f[W>>2]=0;if(C>>>0<A>>>0){t=A+-4|0;f[t>>2]=0;ha=t}else ha=A;t=(f[C>>2]|0)+1|0;f[C>>2]=t;if(t>>>0>999999999){A=ha;W=C}else{ia=ha;ja=C;break}}}else{ia=ba;ja=J}W=(x-ia>>2)*9|0;A=f[ia>>2]|0;if(A>>>0<10){ka=ja;la=W;ma=ia}else{C=W;W=10;while(1){W=W*10|0;t=C+1|0;if(A>>>0<W>>>0){ka=ja;la=t;ma=ia;break}else C=t}}}else{ka=J;la=da;ma=ba}}else{ka=J;la=da;ma=ba}C=ka+4|0;na=la;oa=ca>>>0>C>>>0?C:ca;pa=ma}else{na=da;oa=ca;pa=ba}C=oa;while(1){if(C>>>0<=pa>>>0){qa=0;break}W=C+-4|0;if(!(f[W>>2]|0))C=W;else{qa=1;break}}J=0-na|0;do if(z){W=G+((v^1)&1)|0;if((W|0)>(na|0)&(na|0)>-5){ra=i+-1|0;sa=W+-1-na|0}else{ra=i+-2|0;sa=W+-1|0}W=g&8;if(!W){if(qa?(A=f[C+-4>>2]|0,(A|0)!=0):0)if(!((A>>>0)%10|0)){t=0;Z=10;while(1){Z=Z*10|0;Q=t+1|0;if((A>>>0)%(Z>>>0)|0|0){ta=Q;break}else t=Q}}else ta=0;else ta=9;t=((C-x>>2)*9|0)+-9|0;if((ra|32|0)==102){Z=t-ta|0;A=(Z|0)>0?Z:0;ua=ra;va=(sa|0)<(A|0)?sa:A;wa=0;break}else{A=t+na-ta|0;t=(A|0)>0?A:0;ua=ra;va=(sa|0)<(t|0)?sa:t;wa=0;break}}else{ua=ra;va=sa;wa=W}}else{ua=i;va=G;wa=g&8}while(0);G=va|wa;x=(G|0)!=0&1;v=(ua|32|0)==102;if(v){xa=0;ya=(na|0)>0?na:0}else{z=(na|0)<0?J:na;t=Rj(z,((z|0)<0)<<31>>31,p)|0;z=p;if((z-t|0)<2){A=t;while(1){Z=A+-1|0;b[Z>>0]=48;if((z-Z|0)<2)A=Z;else{za=Z;break}}}else za=t;b[za+-1>>0]=(na>>31&2)+43;A=za+-2|0;b[A>>0]=ua;xa=A;ya=z-A|0}A=r+1+va+x+ya|0;Qk(a,32,d,A,g);Xo(a,s,r);Qk(a,48,d,A,g^65536);if(v){J=pa>>>0>E>>>0?E:pa;Z=m+9|0;R=Z;Y=m+8|0;Q=J;do{K=Rj(f[Q>>2]|0,0,Z)|0;if((Q|0)==(J|0))if((K|0)==(Z|0)){b[Y>>0]=48;Aa=Y}else Aa=K;else if(K>>>0>m>>>0){sj(m|0,48,K-n|0)|0;y=K;while(1){_=y+-1|0;if(_>>>0>m>>>0)y=_;else{Aa=_;break}}}else Aa=K;Xo(a,Aa,R-Aa|0);Q=Q+4|0}while(Q>>>0<=E>>>0);if(G|0)Xo(a,16652,1);if(Q>>>0<C>>>0&(va|0)>0){E=va;R=Q;while(1){Y=Rj(f[R>>2]|0,0,Z)|0;if(Y>>>0>m>>>0){sj(m|0,48,Y-n|0)|0;J=Y;while(1){v=J+-1|0;if(v>>>0>m>>>0)J=v;else{Ba=v;break}}}else Ba=Y;Xo(a,Ba,(E|0)<9?E:9);R=R+4|0;J=E+-9|0;if(!(R>>>0<C>>>0&(E|0)>9)){Ca=J;break}else E=J}}else Ca=va;Qk(a,48,Ca+9|0,9,0)}else{E=qa?C:pa+4|0;if((va|0)>-1){R=m+9|0;Z=(wa|0)==0;Q=R;G=0-n|0;J=m+8|0;K=va;v=pa;while(1){x=Rj(f[v>>2]|0,0,R)|0;if((x|0)==(R|0)){b[J>>0]=48;Da=J}else Da=x;do if((v|0)==(pa|0)){x=Da+1|0;Xo(a,Da,1);if(Z&(K|0)<1){Ea=x;break}Xo(a,16652,1);Ea=x}else{if(Da>>>0<=m>>>0){Ea=Da;break}sj(m|0,48,Da+G|0)|0;x=Da;while(1){z=x+-1|0;if(z>>>0>m>>>0)x=z;else{Ea=z;break}}}while(0);Y=Q-Ea|0;Xo(a,Ea,(K|0)>(Y|0)?Y:K);x=K-Y|0;v=v+4|0;if(!(v>>>0<E>>>0&(x|0)>-1)){Fa=x;break}else K=x}}else Fa=va;Qk(a,48,Fa+18|0,18,0);Xo(a,xa,p-xa|0)}Qk(a,32,d,A,g^8192);w=A}while(0);u=j;return ((w|0)<(d|0)?d:w)|0}function pb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;c=u;u=u+64|0;d=c+56|0;e=c+52|0;g=c+48|0;h=c+60|0;i=c;j=c+44|0;k=c+40|0;l=c+36|0;m=c+32|0;n=c+28|0;o=c+24|0;p=c+20|0;q=c+16|0;r=c+12|0;if(!(b[a+288>>0]|0)){_e(d,f[a+8>>2]|0);s=a+12|0;t=f[d>>2]|0;f[d>>2]=0;v=f[s>>2]|0;f[s>>2]=t;if(v){Ii(v);Oq(v);v=f[d>>2]|0;f[d>>2]=0;if(v|0){Ii(v);Oq(v)}}else f[d>>2]=0}else{fh(d,f[a+8>>2]|0);v=a+12|0;t=f[d>>2]|0;f[d>>2]=0;s=f[v>>2]|0;f[v>>2]=t;if(s){Ii(s);Oq(s);s=f[d>>2]|0;f[d>>2]=0;if(s|0){Ii(s);Oq(s)}}else f[d>>2]=0}s=a+12|0;t=f[s>>2]|0;if(!t){w=0;u=c;return w|0}if((((f[t+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0|0)==(f[t+40>>2]|0)){w=0;u=c;return w|0}v=a+200|0;f[a+264>>2]=a;x=a+4|0;ci(((f[t+28>>2]|0)-(f[t+24>>2]|0)>>2)-(f[t+44>>2]|0)|0,f[(f[x>>2]|0)+44>>2]|0)|0;t=f[s>>2]|0;ci((((f[t+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0)-(f[t+40>>2]|0)|0,f[(f[x>>2]|0)+44>>2]|0)|0;t=a+28|0;y=a+8|0;z=f[y>>2]|0;A=((f[z+100>>2]|0)-(f[z+96>>2]|0)|0)/12|0;b[d>>0]=0;qh(t,A,d);A=f[s>>2]|0;z=(f[A+28>>2]|0)-(f[A+24>>2]|0)>>2;f[d>>2]=-1;hg(a+52|0,z,d);z=a+40|0;A=f[z>>2]|0;B=a+44|0;C=f[B>>2]|0;if((C|0)!=(A|0))f[B>>2]=C+(~((C+-4-A|0)>>>2)<<2);A=f[s>>2]|0;C=(f[A+4>>2]|0)-(f[A>>2]|0)>>2;gk(z,C-((C>>>0)%3|0)|0);C=a+84|0;z=f[s>>2]|0;A=(f[z+28>>2]|0)-(f[z+24>>2]|0)>>2;b[d>>0]=0;qh(C,A,d);A=a+96|0;z=f[A>>2]|0;B=a+100|0;D=f[B>>2]|0;if((D|0)!=(z|0))f[B>>2]=D+(~((D+-4-z|0)>>>2)<<2);f[a+164>>2]=-1;z=a+168|0;f[z>>2]=0;D=f[a+108>>2]|0;E=a+112|0;F=f[E>>2]|0;if((F|0)!=(D|0))f[E>>2]=F+(~(((F+-12-D|0)>>>0)/12|0)*12|0);D=a+132|0;if(f[D>>2]|0){F=a+128|0;E=f[F>>2]|0;if(E|0){G=E;do{E=G;G=f[G>>2]|0;Oq(E)}while((G|0)!=0)}f[F>>2]=0;F=f[a+124>>2]|0;if(F|0){G=a+120|0;E=0;do{f[(f[G>>2]|0)+(E<<2)>>2]=0;E=E+1|0}while((E|0)!=(F|0))}f[D>>2]=0}f[a+144>>2]=0;D=f[s>>2]|0;F=(f[D+28>>2]|0)-(f[D+24>>2]|0)>>2;f[d>>2]=-1;hg(a+152|0,F,d);F=a+72|0;D=f[F>>2]|0;E=a+76|0;G=f[E>>2]|0;if((G|0)!=(D|0))f[E>>2]=G+(~((G+-4-D|0)>>>2)<<2);D=f[s>>2]|0;gk(F,((f[D+4>>2]|0)-(f[D>>2]|0)>>2>>>0)/3|0);f[a+64>>2]=0;if(!(Be(a)|0)){w=0;u=c;return w|0}if(!(Hg(a)|0)){w=0;u=c;return w|0}D=a+172|0;G=a+176|0;H=(((f[G>>2]|0)-(f[D>>2]|0)|0)/136|0)&255;b[h>>0]=H;I=f[(f[x>>2]|0)+44>>2]|0;J=I+16|0;K=f[J+4>>2]|0;if((K|0)>0|(K|0)==0&(f[J>>2]|0)>>>0>0)L=H;else{f[e>>2]=f[I+4>>2];f[d>>2]=f[e>>2];Me(I,d,h,h+1|0)|0;L=b[h>>0]|0}h=a+284|0;f[h>>2]=L&255;L=f[s>>2]|0;I=(f[L+4>>2]|0)-(f[L>>2]|0)|0;L=I>>2;dj(v);f[i>>2]=0;H=i+4|0;f[H>>2]=0;f[i+8>>2]=0;a:do if((I|0)>0){J=a+104|0;K=i+8|0;M=0;b:while(1){N=(M>>>0)/3|0;O=N>>>5;P=1<<(N&31);if((f[(f[t>>2]|0)+(O<<2)>>2]&P|0)==0?(Q=f[s>>2]|0,f[j>>2]=N,f[d>>2]=f[j>>2],!(_j(Q,d)|0)):0){f[e>>2]=0;f[k>>2]=N;f[d>>2]=f[k>>2];N=xg(a,d,e)|0;fj(v,N);Q=f[e>>2]|0;R=(Q|0)==-1;do if(N){do if(R){S=-1;T=-1;U=-1}else{V=f[f[s>>2]>>2]|0;W=f[V+(Q<<2)>>2]|0;X=Q+1|0;Y=((X>>>0)%3|0|0)==0?Q+-2|0:X;if((Y|0)==-1)Z=-1;else Z=f[V+(Y<<2)>>2]|0;Y=(((Q>>>0)%3|0|0)==0?2:-1)+Q|0;if((Y|0)==-1){S=W;T=-1;U=Z;break}S=W;T=f[V+(Y<<2)>>2]|0;U=Z}while(0);Y=f[C>>2]|0;V=Y+(S>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(S&31);V=Y+(U>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(U&31);V=Y+(T>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(T&31);f[d>>2]=1;V=f[B>>2]|0;if(V>>>0<(f[J>>2]|0)>>>0){f[V>>2]=1;f[B>>2]=V+4}else Ri(A,d);V=(f[t>>2]|0)+(O<<2)|0;f[V>>2]=f[V>>2]|P;V=Q+1|0;if(R)_=-1;else _=((V>>>0)%3|0|0)==0?Q+-2|0:V;f[d>>2]=_;Y=f[H>>2]|0;if(Y>>>0<(f[K>>2]|0)>>>0){f[Y>>2]=_;f[H>>2]=Y+4}else Ri(i,d);if(R)break;Y=((V>>>0)%3|0|0)==0?Q+-2|0:V;if((Y|0)==-1)break;V=f[(f[(f[s>>2]|0)+12>>2]|0)+(Y<<2)>>2]|0;Y=(V|0)==-1;W=Y?-1:(V>>>0)/3|0;if(Y)break;if(f[(f[t>>2]|0)+(W>>>5<<2)>>2]&1<<(W&31)|0)break;f[l>>2]=V;f[d>>2]=f[l>>2];if(!(kc(a,d)|0))break b}else{V=Q+1|0;if(R)$=-1;else $=((V>>>0)%3|0|0)==0?Q+-2|0:V;f[m>>2]=$;f[d>>2]=f[m>>2];Pe(a,d,1)|0;f[n>>2]=f[e>>2];f[d>>2]=f[n>>2];if(!(kc(a,d)|0))break b}while(0)}M=M+1|0;if((M|0)>=(L|0)){aa=62;break a}}ba=0}else aa=62;while(0);if((aa|0)==62){aa=f[F>>2]|0;L=f[E>>2]|0;n=L;if((aa|0)!=(L|0)?(m=L+-4|0,aa>>>0<m>>>0):0){L=aa;aa=m;do{m=f[L>>2]|0;f[L>>2]=f[aa>>2];f[aa>>2]=m;L=L+4|0;aa=aa+-4|0}while(L>>>0<aa>>>0)}f[o>>2]=n;f[p>>2]=f[i>>2];f[q>>2]=f[H>>2];f[g>>2]=f[o>>2];f[e>>2]=f[p>>2];f[d>>2]=f[q>>2];Yd(F,g,e,d)|0;if((f[G>>2]|0)!=(f[D>>2]|0)?(D=f[y>>2]|0,y=((f[D+100>>2]|0)-(f[D+96>>2]|0)|0)/12|0,b[d>>0]=0,qh(t,y,d),y=f[F>>2]|0,F=f[E>>2]|0,(y|0)!=(F|0)):0){E=y;do{f[r>>2]=f[E>>2];f[d>>2]=f[r>>2];He(a,d)|0;E=E+4|0}while((E|0)!=(F|0))}th(v);F=a+232|0;ld(v,F);v=a+280|0;E=f[v>>2]|0;if((E|0?(f[h>>2]|0)>0:0)?(ld(E,F),(f[h>>2]|0)>1):0){E=1;do{ld((f[v>>2]|0)+(E<<5)|0,F);E=E+1|0}while((E|0)<(f[h>>2]|0))}ci((f[a+272>>2]|0)-(f[a+268>>2]|0)>>2,f[(f[x>>2]|0)+44>>2]|0)|0;ci(f[z>>2]|0,f[(f[x>>2]|0)+44>>2]|0)|0;if(bh(a)|0){z=f[(f[x>>2]|0)+44>>2]|0;x=f[F>>2]|0;F=z+16|0;h=f[F+4>>2]|0;if(!((h|0)>0|(h|0)==0&(f[F>>2]|0)>>>0>0)){F=(f[a+236>>2]|0)-x|0;f[e>>2]=f[z+4>>2];f[d>>2]=f[e>>2];Me(z,d,x,x+F|0)|0}ba=1}else ba=0}F=f[i>>2]|0;if(F|0){i=f[H>>2]|0;if((i|0)!=(F|0))f[H>>2]=i+(~((i+-4-F|0)>>>2)<<2);Oq(F)}w=ba;u=c;return w|0}function qb(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;i=u;u=u+64|0;j=i+16|0;k=i;l=i+24|0;m=i+8|0;n=i+20|0;f[j>>2]=c;c=(a|0)!=0;o=l+40|0;q=o;r=l+39|0;l=m+4|0;s=0;t=0;v=0;a:while(1){do if((t|0)>-1)if((s|0)>(2147483647-t|0)){w=Vq()|0;f[w>>2]=75;x=-1;break}else{x=s+t|0;break}else x=t;while(0);w=f[j>>2]|0;y=b[w>>0]|0;if(!(y<<24>>24)){z=88;break}else{A=y;B=w}b:while(1){switch(A<<24>>24){case 37:{C=B;D=B;z=9;break b;break}case 0:{E=B;break b;break}default:{}}y=B+1|0;f[j>>2]=y;A=b[y>>0]|0;B=y}c:do if((z|0)==9)while(1){z=0;if((b[D+1>>0]|0)!=37){E=C;break c}y=C+1|0;D=D+2|0;f[j>>2]=D;if((b[D>>0]|0)!=37){E=y;break}else{C=y;z=9}}while(0);y=E-w|0;if(c)Xo(a,w,y);if(y|0){s=y;t=x;continue}y=(Aq(b[(f[j>>2]|0)+1>>0]|0)|0)==0;F=f[j>>2]|0;if(!y?(b[F+2>>0]|0)==36:0){G=(b[F+1>>0]|0)+-48|0;H=1;J=3}else{G=-1;H=v;J=1}y=F+J|0;f[j>>2]=y;F=b[y>>0]|0;K=(F<<24>>24)+-32|0;if(K>>>0>31|(1<<K&75913|0)==0){L=0;M=F;N=y}else{K=0;O=F;F=y;while(1){y=1<<(O<<24>>24)+-32|K;P=F+1|0;f[j>>2]=P;Q=b[P>>0]|0;R=(Q<<24>>24)+-32|0;if(R>>>0>31|(1<<R&75913|0)==0){L=y;M=Q;N=P;break}else{K=y;O=Q;F=P}}}if(M<<24>>24==42){if((Aq(b[N+1>>0]|0)|0)!=0?(F=f[j>>2]|0,(b[F+2>>0]|0)==36):0){O=F+1|0;f[h+((b[O>>0]|0)+-48<<2)>>2]=10;S=f[g+((b[O>>0]|0)+-48<<3)>>2]|0;T=1;U=F+3|0}else{if(H|0){V=-1;break}if(c){F=(f[e>>2]|0)+(4-1)&~(4-1);O=f[F>>2]|0;f[e>>2]=F+4;W=O}else W=0;S=W;T=0;U=(f[j>>2]|0)+1|0}f[j>>2]=U;O=(S|0)<0;X=O?0-S|0:S;Y=O?L|8192:L;Z=T;_=U}else{O=Ll(j)|0;if((O|0)<0){V=-1;break}X=O;Y=L;Z=H;_=f[j>>2]|0}do if((b[_>>0]|0)==46){if((b[_+1>>0]|0)!=42){f[j>>2]=_+1;O=Ll(j)|0;$=O;aa=f[j>>2]|0;break}if(Aq(b[_+2>>0]|0)|0?(O=f[j>>2]|0,(b[O+3>>0]|0)==36):0){F=O+2|0;f[h+((b[F>>0]|0)+-48<<2)>>2]=10;K=f[g+((b[F>>0]|0)+-48<<3)>>2]|0;F=O+4|0;f[j>>2]=F;$=K;aa=F;break}if(Z|0){V=-1;break a}if(c){F=(f[e>>2]|0)+(4-1)&~(4-1);K=f[F>>2]|0;f[e>>2]=F+4;ba=K}else ba=0;K=(f[j>>2]|0)+2|0;f[j>>2]=K;$=ba;aa=K}else{$=-1;aa=_}while(0);K=0;F=aa;while(1){if(((b[F>>0]|0)+-65|0)>>>0>57){V=-1;break a}O=F;F=F+1|0;f[j>>2]=F;ca=b[(b[O>>0]|0)+-65+(16124+(K*58|0))>>0]|0;da=ca&255;if((da+-1|0)>>>0>=8)break;else K=da}if(!(ca<<24>>24)){V=-1;break}O=(G|0)>-1;do if(ca<<24>>24==19)if(O){V=-1;break a}else z=50;else{if(O){f[h+(G<<2)>>2]=da;P=g+(G<<3)|0;Q=f[P+4>>2]|0;y=k;f[y>>2]=f[P>>2];f[y+4>>2]=Q;z=50;break}if(!c){V=0;break a}We(k,da,e);ea=f[j>>2]|0}while(0);if((z|0)==50){z=0;if(c)ea=F;else{s=0;t=x;v=Z;continue}}O=b[ea+-1>>0]|0;Q=(K|0)!=0&(O&15|0)==3?O&-33:O;O=Y&-65537;y=(Y&8192|0)==0?Y:O;d:do switch(Q|0){case 110:{switch((K&255)<<24>>24){case 0:{f[f[k>>2]>>2]=x;s=0;t=x;v=Z;continue a;break}case 1:{f[f[k>>2]>>2]=x;s=0;t=x;v=Z;continue a;break}case 2:{P=f[k>>2]|0;f[P>>2]=x;f[P+4>>2]=((x|0)<0)<<31>>31;s=0;t=x;v=Z;continue a;break}case 3:{d[f[k>>2]>>1]=x;s=0;t=x;v=Z;continue a;break}case 4:{b[f[k>>2]>>0]=x;s=0;t=x;v=Z;continue a;break}case 6:{f[f[k>>2]>>2]=x;s=0;t=x;v=Z;continue a;break}case 7:{P=f[k>>2]|0;f[P>>2]=x;f[P+4>>2]=((x|0)<0)<<31>>31;s=0;t=x;v=Z;continue a;break}default:{s=0;t=x;v=Z;continue a}}break}case 112:{fa=120;ga=$>>>0>8?$:8;ha=y|8;z=62;break}case 88:case 120:{fa=Q;ga=$;ha=y;z=62;break}case 111:{P=k;R=f[P>>2]|0;ia=f[P+4>>2]|0;P=Ol(R,ia,o)|0;ja=q-P|0;ka=P;la=0;ma=16588;na=(y&8|0)==0|($|0)>(ja|0)?$:ja+1|0;oa=y;pa=R;qa=ia;z=68;break}case 105:case 100:{ia=k;R=f[ia>>2]|0;ja=f[ia+4>>2]|0;if((ja|0)<0){ia=Xn(0,0,R|0,ja|0)|0;P=I;ra=k;f[ra>>2]=ia;f[ra+4>>2]=P;sa=1;ta=16588;ua=ia;va=P;z=67;break d}else{sa=(y&2049|0)!=0&1;ta=(y&2048|0)==0?((y&1|0)==0?16588:16590):16589;ua=R;va=ja;z=67;break d}break}case 117:{ja=k;sa=0;ta=16588;ua=f[ja>>2]|0;va=f[ja+4>>2]|0;z=67;break}case 99:{b[r>>0]=f[k>>2];wa=r;xa=0;ya=16588;za=o;Aa=1;Ba=O;break}case 109:{ja=Vq()|0;Ca=$o(f[ja>>2]|0)|0;z=72;break}case 115:{ja=f[k>>2]|0;Ca=ja|0?ja:16598;z=72;break}case 67:{f[m>>2]=f[k>>2];f[l>>2]=0;f[k>>2]=m;Da=-1;Ea=m;z=76;break}case 83:{ja=f[k>>2]|0;if(!$){Qk(a,32,X,0,y);Fa=0;z=85}else{Da=$;Ea=ja;z=76}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{s=ob(a,+p[k>>3],X,$,y,Q)|0;t=x;v=Z;continue a;break}default:{wa=w;xa=0;ya=16588;za=o;Aa=$;Ba=y}}while(0);e:do if((z|0)==62){z=0;w=k;Q=f[w>>2]|0;K=f[w+4>>2]|0;w=ul(Q,K,o,fa&32)|0;F=(ha&8|0)==0|(Q|0)==0&(K|0)==0;ka=w;la=F?0:2;ma=F?16588:16588+(fa>>4)|0;na=ga;oa=ha;pa=Q;qa=K;z=68}else if((z|0)==67){z=0;ka=Rj(ua,va,o)|0;la=sa;ma=ta;na=$;oa=y;pa=ua;qa=va;z=68}else if((z|0)==72){z=0;K=tg(Ca,0,$)|0;Q=(K|0)==0;wa=Ca;xa=0;ya=16588;za=Q?Ca+$|0:K;Aa=Q?$:K-Ca|0;Ba=O}else if((z|0)==76){z=0;K=Ea;Q=0;F=0;while(1){w=f[K>>2]|0;if(!w){Ga=Q;Ha=F;break}ja=Po(n,w)|0;if((ja|0)<0|ja>>>0>(Da-Q|0)>>>0){Ga=Q;Ha=ja;break}w=ja+Q|0;if(Da>>>0>w>>>0){K=K+4|0;Q=w;F=ja}else{Ga=w;Ha=ja;break}}if((Ha|0)<0){V=-1;break a}Qk(a,32,X,Ga,y);if(!Ga){Fa=0;z=85}else{F=Ea;Q=0;while(1){K=f[F>>2]|0;if(!K){Fa=Ga;z=85;break e}ja=Po(n,K)|0;Q=ja+Q|0;if((Q|0)>(Ga|0)){Fa=Ga;z=85;break e}Xo(a,n,ja);if(Q>>>0>=Ga>>>0){Fa=Ga;z=85;break}else F=F+4|0}}}while(0);if((z|0)==68){z=0;O=(pa|0)!=0|(qa|0)!=0;F=(na|0)!=0|O;Q=q-ka+((O^1)&1)|0;wa=F?ka:o;xa=la;ya=ma;za=o;Aa=F?((na|0)>(Q|0)?na:Q):na;Ba=(na|0)>-1?oa&-65537:oa}else if((z|0)==85){z=0;Qk(a,32,X,Fa,y^8192);s=(X|0)>(Fa|0)?X:Fa;t=x;v=Z;continue}Q=za-wa|0;F=(Aa|0)<(Q|0)?Q:Aa;O=F+xa|0;ja=(X|0)<(O|0)?O:X;Qk(a,32,ja,O,Ba);Xo(a,ya,xa);Qk(a,48,ja,O,Ba^65536);Qk(a,48,F,Q,0);Xo(a,wa,Q);Qk(a,32,ja,O,Ba^8192);s=ja;t=x;v=Z}f:do if((z|0)==88)if(!a)if(v){Z=1;while(1){t=f[h+(Z<<2)>>2]|0;if(!t){Ia=Z;break}We(g+(Z<<3)|0,t,e);t=Z+1|0;if((Z|0)<9)Z=t;else{Ia=t;break}}if((Ia|0)<10){Z=Ia;while(1){if(f[h+(Z<<2)>>2]|0){V=-1;break f}if((Z|0)<9)Z=Z+1|0;else{V=1;break}}}else V=1}else V=0;else V=x;while(0);u=i;return V|0}function rb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;c=u;u=u+64|0;d=c+56|0;e=c+52|0;g=c+48|0;h=c+60|0;i=c;j=c+44|0;k=c+40|0;l=c+36|0;m=c+32|0;n=c+28|0;o=c+24|0;p=c+20|0;q=c+16|0;r=c+12|0;if(!(b[a+352>>0]|0)){_e(d,f[a+8>>2]|0);s=a+12|0;t=f[d>>2]|0;f[d>>2]=0;v=f[s>>2]|0;f[s>>2]=t;if(v){Ii(v);Oq(v);v=f[d>>2]|0;f[d>>2]=0;if(v|0){Ii(v);Oq(v)}}else f[d>>2]=0}else{fh(d,f[a+8>>2]|0);v=a+12|0;t=f[d>>2]|0;f[d>>2]=0;s=f[v>>2]|0;f[v>>2]=t;if(s){Ii(s);Oq(s);s=f[d>>2]|0;f[d>>2]=0;if(s|0){Ii(s);Oq(s)}}else f[d>>2]=0}s=a+12|0;t=f[s>>2]|0;if(!t){w=0;u=c;return w|0}if((((f[t+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0|0)==(f[t+40>>2]|0)){w=0;u=c;return w|0}t=a+200|0;ve(t,a)|0;v=f[s>>2]|0;x=a+4|0;ci(((f[v+28>>2]|0)-(f[v+24>>2]|0)>>2)-(f[v+44>>2]|0)|0,f[(f[x>>2]|0)+44>>2]|0)|0;v=f[s>>2]|0;ci((((f[v+4>>2]|0)-(f[v>>2]|0)>>2>>>0)/3|0)-(f[v+40>>2]|0)|0,f[(f[x>>2]|0)+44>>2]|0)|0;v=a+28|0;y=a+8|0;z=f[y>>2]|0;A=((f[z+100>>2]|0)-(f[z+96>>2]|0)|0)/12|0;b[d>>0]=0;qh(v,A,d);A=f[s>>2]|0;z=(f[A+28>>2]|0)-(f[A+24>>2]|0)>>2;f[d>>2]=-1;hg(a+52|0,z,d);z=a+40|0;A=f[z>>2]|0;B=a+44|0;C=f[B>>2]|0;if((C|0)!=(A|0))f[B>>2]=C+(~((C+-4-A|0)>>>2)<<2);A=f[s>>2]|0;C=(f[A+4>>2]|0)-(f[A>>2]|0)>>2;gk(z,C-((C>>>0)%3|0)|0);C=a+84|0;z=f[s>>2]|0;A=(f[z+28>>2]|0)-(f[z+24>>2]|0)>>2;b[d>>0]=0;qh(C,A,d);A=a+96|0;z=f[A>>2]|0;B=a+100|0;D=f[B>>2]|0;if((D|0)!=(z|0))f[B>>2]=D+(~((D+-4-z|0)>>>2)<<2);f[a+164>>2]=-1;z=a+168|0;f[z>>2]=0;D=f[a+108>>2]|0;E=a+112|0;F=f[E>>2]|0;if((F|0)!=(D|0))f[E>>2]=F+(~(((F+-12-D|0)>>>0)/12|0)*12|0);D=a+132|0;if(f[D>>2]|0){F=a+128|0;E=f[F>>2]|0;if(E|0){G=E;do{E=G;G=f[G>>2]|0;Oq(E)}while((G|0)!=0)}f[F>>2]=0;F=f[a+124>>2]|0;if(F|0){G=a+120|0;E=0;do{f[(f[G>>2]|0)+(E<<2)>>2]=0;E=E+1|0}while((E|0)!=(F|0))}f[D>>2]=0}f[a+144>>2]=0;D=f[s>>2]|0;F=(f[D+28>>2]|0)-(f[D+24>>2]|0)>>2;f[d>>2]=-1;hg(a+152|0,F,d);F=a+72|0;D=f[F>>2]|0;E=a+76|0;G=f[E>>2]|0;if((G|0)!=(D|0))f[E>>2]=G+(~((G+-4-D|0)>>>2)<<2);D=f[s>>2]|0;gk(F,((f[D+4>>2]|0)-(f[D>>2]|0)>>2>>>0)/3|0);f[a+64>>2]=0;if(!(Be(a)|0)){w=0;u=c;return w|0}if(!(Dg(a)|0)){w=0;u=c;return w|0}D=a+172|0;G=a+176|0;H=(((f[G>>2]|0)-(f[D>>2]|0)|0)/136|0)&255;b[h>>0]=H;I=f[(f[x>>2]|0)+44>>2]|0;J=I+16|0;K=f[J+4>>2]|0;if((K|0)>0|(K|0)==0&(f[J>>2]|0)>>>0>0)L=H;else{f[e>>2]=f[I+4>>2];f[d>>2]=f[e>>2];Me(I,d,h,h+1|0)|0;L=b[h>>0]|0}f[a+284>>2]=L&255;L=f[s>>2]|0;h=(f[L+4>>2]|0)-(f[L>>2]|0)|0;L=h>>2;dj(t);f[i>>2]=0;I=i+4|0;f[I>>2]=0;f[i+8>>2]=0;a:do if((h|0)>0){H=a+104|0;J=i+8|0;K=0;b:while(1){M=(K>>>0)/3|0;N=M>>>5;O=1<<(M&31);if((f[(f[v>>2]|0)+(N<<2)>>2]&O|0)==0?(P=f[s>>2]|0,f[j>>2]=M,f[d>>2]=f[j>>2],!(_j(P,d)|0)):0){f[e>>2]=0;f[k>>2]=M;f[d>>2]=f[k>>2];M=xg(a,d,e)|0;fj(t,M);P=f[e>>2]|0;Q=(P|0)==-1;do if(M){do if(Q){R=-1;S=-1;T=-1}else{U=f[f[s>>2]>>2]|0;V=f[U+(P<<2)>>2]|0;W=P+1|0;X=((W>>>0)%3|0|0)==0?P+-2|0:W;if((X|0)==-1)Y=-1;else Y=f[U+(X<<2)>>2]|0;X=(((P>>>0)%3|0|0)==0?2:-1)+P|0;if((X|0)==-1){R=-1;S=Y;T=V;break}R=f[U+(X<<2)>>2]|0;S=Y;T=V}while(0);V=f[C>>2]|0;X=V+(T>>>5<<2)|0;f[X>>2]=f[X>>2]|1<<(T&31);X=V+(S>>>5<<2)|0;f[X>>2]=f[X>>2]|1<<(S&31);X=V+(R>>>5<<2)|0;f[X>>2]=f[X>>2]|1<<(R&31);f[d>>2]=1;X=f[B>>2]|0;if(X>>>0<(f[H>>2]|0)>>>0){f[X>>2]=1;f[B>>2]=X+4}else Ri(A,d);X=(f[v>>2]|0)+(N<<2)|0;f[X>>2]=f[X>>2]|O;X=P+1|0;if(Q)Z=-1;else Z=((X>>>0)%3|0|0)==0?P+-2|0:X;f[d>>2]=Z;V=f[I>>2]|0;if(V>>>0<(f[J>>2]|0)>>>0){f[V>>2]=Z;f[I>>2]=V+4}else Ri(i,d);if(Q)break;V=((X>>>0)%3|0|0)==0?P+-2|0:X;if((V|0)==-1)break;X=f[(f[(f[s>>2]|0)+12>>2]|0)+(V<<2)>>2]|0;V=(X|0)==-1;U=V?-1:(X>>>0)/3|0;if(V)break;if(f[(f[v>>2]|0)+(U>>>5<<2)>>2]&1<<(U&31)|0)break;f[l>>2]=X;f[d>>2]=f[l>>2];if(!(Yb(a,d)|0))break b}else{X=P+1|0;if(Q)_=-1;else _=((X>>>0)%3|0|0)==0?P+-2|0:X;f[m>>2]=_;f[d>>2]=f[m>>2];Pe(a,d,1)|0;f[n>>2]=f[e>>2];f[d>>2]=f[n>>2];if(!(Yb(a,d)|0))break b}while(0)}K=K+1|0;if((K|0)>=(L|0)){$=62;break a}}aa=0}else $=62;while(0);if(($|0)==62){$=f[F>>2]|0;L=f[E>>2]|0;n=L;if(($|0)!=(L|0)?(m=L+-4|0,$>>>0<m>>>0):0){L=$;$=m;do{m=f[L>>2]|0;f[L>>2]=f[$>>2];f[$>>2]=m;L=L+4|0;$=$+-4|0}while(L>>>0<$>>>0)}f[o>>2]=n;f[p>>2]=f[i>>2];f[q>>2]=f[I>>2];f[g>>2]=f[o>>2];f[e>>2]=f[p>>2];f[d>>2]=f[q>>2];Yd(F,g,e,d)|0;if((f[G>>2]|0)!=(f[D>>2]|0)?(D=f[y>>2]|0,y=((f[D+100>>2]|0)-(f[D+96>>2]|0)|0)/12|0,b[d>>0]=0,qh(v,y,d),y=f[F>>2]|0,F=f[E>>2]|0,(y|0)!=(F|0)):0){E=y;do{f[r>>2]=f[E>>2];f[d>>2]=f[r>>2];He(a,d)|0;E=E+4|0}while((E|0)!=(F|0))}pi(t);ci(f[a+324>>2]|0,f[(f[x>>2]|0)+44>>2]|0)|0;ci(f[z>>2]|0,f[(f[x>>2]|0)+44>>2]|0)|0;if(bh(a)|0){z=f[(f[x>>2]|0)+44>>2]|0;x=f[a+232>>2]|0;t=z+16|0;F=f[t+4>>2]|0;if(!((F|0)>0|(F|0)==0&(f[t>>2]|0)>>>0>0)){t=(f[a+236>>2]|0)-x|0;f[e>>2]=f[z+4>>2];f[d>>2]=f[e>>2];Me(z,d,x,x+t|0)|0}aa=1}else aa=0}t=f[i>>2]|0;if(t|0){i=f[I>>2]|0;if((i|0)!=(t|0))f[I>>2]=i+(~((i+-4-t|0)>>>2)<<2);Oq(t)}w=aa;u=c;return w|0}function sb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=Oa,ma=Oa,na=Oa,oa=0,pa=0,qa=0,ra=0,sa=0;c=u;u=u+64|0;d=c+28|0;e=c+16|0;g=c+4|0;h=c;i=a;j=a+80|0;k=f[j>>2]|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=i;l=d+20|0;n[l>>2]=$(1.0);f[d+24>>2]=i;Ih(d,k);k=f[j>>2]|0;f[e>>2]=0;i=e+4|0;f[i>>2]=0;f[e+8>>2]=0;m=(k|0)==0;do if(!m)if(k>>>0>1073741823)aq(e);else{o=k<<2;p=ln(o)|0;f[e>>2]=p;q=p+(k<<2)|0;f[e+8>>2]=q;sj(p|0,0,o|0)|0;f[i>>2]=q;break}while(0);f[g>>2]=0;k=g+4|0;f[k>>2]=0;f[g+8>>2]=0;f[h>>2]=0;if(!m){m=d+16|0;q=d+4|0;o=d+12|0;p=d+8|0;r=g+8|0;s=d+24|0;t=0;v=0;while(1){w=f[m>>2]|0;x=f[w+8>>2]|0;y=(f[w+12>>2]|0)-x|0;w=(y|0)>0;z=x;if(w){x=y>>>2;A=0;B=0;while(1){C=f[z+(A<<2)>>2]|0;if(!(b[C+84>>0]|0))D=f[(f[C+68>>2]|0)+(v<<2)>>2]|0;else D=v;C=D+239^B;A=A+1|0;if((A|0)>=(x|0)){E=C;break}else B=C}}else E=0;B=f[q>>2]|0;x=(B|0)==0;a:do if(!x){A=B+-1|0;C=(A&B|0)==0;if(!C)if(E>>>0<B>>>0)F=E;else F=(E>>>0)%(B>>>0)|0;else F=A&E;G=f[(f[d>>2]|0)+(F<<2)>>2]|0;if((G|0)!=0?(H=f[G>>2]|0,(H|0)!=0):0){G=f[s>>2]|0;I=G+8|0;J=G+12|0;b:do if(C){G=H;while(1){K=f[G+4>>2]|0;L=(K|0)==(E|0);if(!(L|(K&A|0)==(F|0))){M=44;break a}c:do if(L){K=f[G+8>>2]|0;N=f[I>>2]|0;O=(f[J>>2]|0)-N|0;P=N;if((O|0)<=0){Q=G;break b}N=O>>>2;O=0;while(1){R=f[P+(O<<2)>>2]|0;if(!(b[R+84>>0]|0)){S=f[R+68>>2]|0;T=f[S+(v<<2)>>2]|0;U=f[S+(K<<2)>>2]|0}else{T=v;U=K}O=O+1|0;if((U|0)!=(T|0))break c;if((O|0)>=(N|0)){V=G;M=42;break b}}}while(0);G=f[G>>2]|0;if(!G){M=44;break a}}}else{G=H;while(1){L=f[G+4>>2]|0;d:do if((L|0)!=(E|0)){if(L>>>0<B>>>0)X=L;else X=(L>>>0)%(B>>>0)|0;if((X|0)!=(F|0)){M=44;break a}}else{N=f[G+8>>2]|0;O=f[I>>2]|0;K=(f[J>>2]|0)-O|0;P=O;if((K|0)<=0){Q=G;break b}O=K>>>2;K=0;while(1){S=f[P+(K<<2)>>2]|0;if(!(b[S+84>>0]|0)){R=f[S+68>>2]|0;Y=f[R+(v<<2)>>2]|0;Z=f[R+(N<<2)>>2]|0}else{Y=v;Z=N}K=K+1|0;if((Z|0)!=(Y|0))break d;if((K|0)>=(O|0)){V=G;M=42;break b}}}while(0);G=f[G>>2]|0;if(!G){M=44;break a}}}while(0);if((M|0)==42){M=0;if(!V){M=44;break}else Q=V}f[(f[e>>2]|0)+(v<<2)>>2]=f[Q+12>>2];_=t}else M=44}else M=44;while(0);do if((M|0)==44){M=0;if(w){J=y>>>2;I=0;H=0;while(1){A=f[z+(I<<2)>>2]|0;if(!(b[A+84>>0]|0))aa=f[(f[A+68>>2]|0)+(v<<2)>>2]|0;else aa=v;A=aa+239^H;I=I+1|0;if((I|0)>=(J|0)){ba=A;break}else H=A}}else ba=0;e:do if(!x){H=B+-1|0;J=(H&B|0)==0;if(!J)if(ba>>>0<B>>>0)ca=ba;else ca=(ba>>>0)%(B>>>0)|0;else ca=H&ba;I=f[(f[d>>2]|0)+(ca<<2)>>2]|0;if((I|0)!=0?(A=f[I>>2]|0,(A|0)!=0):0){I=f[s>>2]|0;C=I+8|0;G=I+12|0;if(J){J=A;while(1){I=f[J+4>>2]|0;if(!((I|0)==(ba|0)|(I&H|0)==(ca|0))){da=ca;M=76;break e}I=f[J+8>>2]|0;L=f[C>>2]|0;O=(f[G>>2]|0)-L|0;K=L;if((O|0)<=0){ea=v;break e}L=O>>>2;O=0;while(1){N=f[K+(O<<2)>>2]|0;if(!(b[N+84>>0]|0)){P=f[N+68>>2]|0;fa=f[P+(v<<2)>>2]|0;ga=f[P+(I<<2)>>2]|0}else{fa=v;ga=I}O=O+1|0;if((ga|0)!=(fa|0))break;if((O|0)>=(L|0)){ea=v;break e}}J=f[J>>2]|0;if(!J){da=ca;M=76;break e}}}else ha=A;while(1){J=f[ha+4>>2]|0;if((J|0)!=(ba|0)){if(J>>>0<B>>>0)ia=J;else ia=(J>>>0)%(B>>>0)|0;if((ia|0)!=(ca|0)){da=ca;M=76;break e}}J=f[ha+8>>2]|0;H=f[C>>2]|0;L=(f[G>>2]|0)-H|0;O=H;if((L|0)<=0){ea=v;break e}H=L>>>2;L=0;while(1){I=f[O+(L<<2)>>2]|0;if(!(b[I+84>>0]|0)){K=f[I+68>>2]|0;ja=f[K+(v<<2)>>2]|0;ka=f[K+(J<<2)>>2]|0}else{ja=v;ka=J}L=L+1|0;if((ka|0)!=(ja|0))break;if((L|0)>=(H|0)){ea=v;break e}}ha=f[ha>>2]|0;if(!ha){da=ca;M=76;break}}}else{da=ca;M=76}}else{da=0;M=76}while(0);if((M|0)==76){M=0;G=ln(16)|0;f[G+8>>2]=v;f[G+12>>2]=t;f[G+4>>2]=ba;f[G>>2]=0;la=$(((f[o>>2]|0)+1|0)>>>0);ma=$(B>>>0);na=$(n[l>>2]);do if(x|$(na*ma)<la){C=B<<1|(B>>>0<3|(B+-1&B|0)!=0)&1;A=~~$(W($(la/na)))>>>0;Ih(d,C>>>0<A>>>0?A:C);C=f[q>>2]|0;A=C+-1|0;if(!(A&C)){oa=C;pa=A&ba;break}if(ba>>>0<C>>>0){oa=C;pa=ba}else{oa=C;pa=(ba>>>0)%(C>>>0)|0}}else{oa=B;pa=da}while(0);C=(f[d>>2]|0)+(pa<<2)|0;A=f[C>>2]|0;if(!A){f[G>>2]=f[p>>2];f[p>>2]=G;f[C>>2]=p;C=f[G>>2]|0;if(C|0){H=f[C+4>>2]|0;C=oa+-1|0;if(C&oa)if(H>>>0<oa>>>0)qa=H;else qa=(H>>>0)%(oa>>>0)|0;else qa=H&C;ra=(f[d>>2]|0)+(qa<<2)|0;M=89}}else{f[G>>2]=f[A>>2];ra=A;M=89}if((M|0)==89){M=0;f[ra>>2]=G}f[o>>2]=(f[o>>2]|0)+1;ea=f[h>>2]|0}A=t+1|0;f[(f[e>>2]|0)+(ea<<2)>>2]=t;C=f[k>>2]|0;if((C|0)==(f[r>>2]|0)){Ri(g,h);_=A;break}else{f[C>>2]=f[h>>2];f[k>>2]=C+4;_=A;break}}while(0);v=(f[h>>2]|0)+1|0;f[h>>2]=v;sa=f[j>>2]|0;if(v>>>0>=sa>>>0)break;else t=_}if((_|0)!=(sa|0)){Xa[f[(f[a>>2]|0)+24>>2]&15](a,e,g);f[j>>2]=_}}_=f[g>>2]|0;if(_|0){g=f[k>>2]|0;if((g|0)!=(_|0))f[k>>2]=g+(~((g+-4-_|0)>>>2)<<2);Oq(_)}_=f[e>>2]|0;if(_|0){e=f[i>>2]|0;if((e|0)!=(_|0))f[i>>2]=e+(~((e+-4-_|0)>>>2)<<2);Oq(_)}_=f[d+8>>2]|0;if(_|0){e=_;do{_=e;e=f[e>>2]|0;Oq(_)}while((e|0)!=0)}e=f[d>>2]|0;f[d>>2]=0;if(!e){u=c;return}Oq(e);u=c;return}function tb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;g=u;u=u+80|0;h=g+76|0;i=g+72|0;j=g+48|0;k=g+24|0;l=g;m=a+32|0;n=f[c>>2]|0;c=n+1|0;if((n|0)!=-1){o=((c>>>0)%3|0|0)==0?n+-2|0:c;c=(((n>>>0)%3|0|0)==0?2:-1)+n|0;if((o|0)==-1)p=-1;else p=f[(f[f[m>>2]>>2]|0)+(o<<2)>>2]|0;if((c|0)==-1){q=p;r=-1}else{q=p;r=f[(f[f[m>>2]>>2]|0)+(c<<2)>>2]|0}}else{q=-1;r=-1}c=f[a+36>>2]|0;m=f[c>>2]|0;p=(f[c+4>>2]|0)-m>>2;if(p>>>0<=q>>>0)aq(c);o=m;m=f[o+(q<<2)>>2]|0;if(p>>>0<=r>>>0)aq(c);c=f[o+(r<<2)>>2]|0;r=(m|0)<(e|0);do if(r&(c|0)<(e|0)){o=m<<1;p=f[d+(o<<2)>>2]|0;q=((p|0)<0)<<31>>31;n=f[d+((o|1)<<2)>>2]|0;o=((n|0)<0)<<31>>31;s=c<<1;t=f[d+(s<<2)>>2]|0;v=f[d+((s|1)<<2)>>2]|0;if(!((t|0)!=(p|0)|(v|0)!=(n|0))){f[a+8>>2]=p;f[a+12>>2]=n;u=g;return}s=a+4|0;w=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;x=f[a>>2]|0;if(!(b[x+84>>0]|0))y=f[(f[x+68>>2]|0)+(w<<2)>>2]|0;else y=w;f[i>>2]=y;w=b[x+24>>0]|0;f[h>>2]=f[i>>2];vb(x,h,w,j)|0;w=f[(f[s>>2]|0)+(m<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;x=f[a>>2]|0;if(!(b[x+84>>0]|0))z=f[(f[x+68>>2]|0)+(w<<2)>>2]|0;else z=w;f[i>>2]=z;w=b[x+24>>0]|0;f[h>>2]=f[i>>2];vb(x,h,w,k)|0;w=f[(f[s>>2]|0)+(c<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;s=f[a>>2]|0;if(!(b[s+84>>0]|0))A=f[(f[s+68>>2]|0)+(w<<2)>>2]|0;else A=w;f[i>>2]=A;w=b[s+24>>0]|0;f[h>>2]=f[i>>2];vb(s,h,w,l)|0;w=l;s=k;x=f[s>>2]|0;B=f[s+4>>2]|0;s=Xn(f[w>>2]|0,f[w+4>>2]|0,x|0,B|0)|0;w=I;C=l+8|0;D=k+8|0;E=f[D>>2]|0;F=f[D+4>>2]|0;D=Xn(f[C>>2]|0,f[C+4>>2]|0,E|0,F|0)|0;C=I;G=l+16|0;H=k+16|0;J=f[H>>2]|0;K=f[H+4>>2]|0;H=Xn(f[G>>2]|0,f[G+4>>2]|0,J|0,K|0)|0;G=I;L=un(s|0,w|0,s|0,w|0)|0;M=I;N=un(D|0,C|0,D|0,C|0)|0;O=Vn(N|0,I|0,L|0,M|0)|0;M=I;L=un(H|0,G|0,H|0,G|0)|0;N=Vn(O|0,M|0,L|0,I|0)|0;L=I;if((N|0)==0&(L|0)==0)break;M=j;O=Xn(f[M>>2]|0,f[M+4>>2]|0,x|0,B|0)|0;B=I;x=j+8|0;M=Xn(f[x>>2]|0,f[x+4>>2]|0,E|0,F|0)|0;F=I;E=j+16|0;x=Xn(f[E>>2]|0,f[E+4>>2]|0,J|0,K|0)|0;K=I;J=un(O|0,B|0,s|0,w|0)|0;E=I;P=un(M|0,F|0,D|0,C|0)|0;Q=Vn(P|0,I|0,J|0,E|0)|0;E=I;J=un(x|0,K|0,H|0,G|0)|0;P=Vn(Q|0,E|0,J|0,I|0)|0;J=I;E=Xn(t|0,((t|0)<0)<<31>>31|0,p|0,q|0)|0;t=I;Q=Xn(v|0,((v|0)<0)<<31>>31|0,n|0,o|0)|0;v=I;R=un(N|0,L|0,p|0,q|0)|0;q=I;p=un(N|0,L|0,n|0,o|0)|0;o=I;n=un(P|0,J|0,E|0,t|0)|0;S=I;T=un(P|0,J|0,Q|0,v|0)|0;U=I;V=Vn(n|0,S|0,R|0,q|0)|0;q=I;R=Vn(T|0,U|0,p|0,o|0)|0;o=I;p=un(P|0,J|0,s|0,w|0)|0;w=I;s=un(P|0,J|0,D|0,C|0)|0;C=I;D=un(P|0,J|0,H|0,G|0)|0;G=I;H=Ik(p|0,w|0,N|0,L|0)|0;w=I;p=Ik(s|0,C|0,N|0,L|0)|0;C=I;s=Ik(D|0,G|0,N|0,L|0)|0;G=I;D=Xn(O|0,B|0,H|0,w|0)|0;w=I;H=Xn(M|0,F|0,p|0,C|0)|0;C=I;p=Xn(x|0,K|0,s|0,G|0)|0;G=I;s=un(D|0,w|0,D|0,w|0)|0;w=I;D=un(H|0,C|0,H|0,C|0)|0;C=Vn(D|0,I|0,s|0,w|0)|0;w=I;s=un(p|0,G|0,p|0,G|0)|0;G=Vn(C|0,w|0,s|0,I|0)|0;s=I;w=Xn(0,0,E|0,t|0)|0;t=I;E=un(G|0,s|0,N|0,L|0)|0;s=I;switch(E|0){case 0:{if(!s){W=0;X=0}else{Y=1;Z=0;_=E;$=s;aa=23}break}case 1:{if(!s){ba=1;ca=0;aa=24}else{Y=1;Z=0;_=E;$=s;aa=23}break}default:{Y=1;Z=0;_=E;$=s;aa=23}}if((aa|0)==23)while(1){aa=0;G=Tn(Y|0,Z|0,1)|0;C=I;p=_;_=Yn(_|0,$|0,2)|0;if(!($>>>0>0|($|0)==0&p>>>0>7)){ba=G;ca=C;aa=24;break}else{Y=G;Z=C;$=I;aa=23}}if((aa|0)==24)while(1){aa=0;C=jp(E|0,s|0,ba|0,ca|0)|0;G=Vn(C|0,I|0,ba|0,ca|0)|0;C=Yn(G|0,I|0,1)|0;G=I;p=un(C|0,G|0,C|0,G|0)|0;D=I;if(D>>>0>s>>>0|(D|0)==(s|0)&p>>>0>E>>>0){ba=C;ca=G;aa=24}else{W=C;X=G;break}}E=un(W|0,X|0,Q|0,v|0)|0;s=I;G=un(W|0,X|0,w|0,t|0)|0;C=I;p=Vn(E|0,s|0,V|0,q|0)|0;D=I;H=Vn(G|0,C|0,R|0,o|0)|0;K=I;x=Ik(p|0,D|0,N|0,L|0)|0;D=I;p=Ik(H|0,K|0,N|0,L|0)|0;K=I;H=Xn(V|0,q|0,E|0,s|0)|0;s=I;E=Xn(R|0,o|0,G|0,C|0)|0;C=I;G=Ik(H|0,s|0,N|0,L|0)|0;s=I;H=Ik(E|0,C|0,N|0,L|0)|0;C=I;E=e<<1;F=f[d+(E<<2)>>2]|0;M=((F|0)<0)<<31>>31;B=f[d+((E|1)<<2)>>2]|0;E=((B|0)<0)<<31>>31;O=Xn(F|0,M|0,x|0,D|0)|0;J=I;P=Xn(B|0,E|0,p|0,K|0)|0;U=I;T=un(O|0,J|0,O|0,J|0)|0;J=I;O=un(P|0,U|0,P|0,U|0)|0;U=Vn(O|0,I|0,T|0,J|0)|0;J=I;T=Xn(F|0,M|0,G|0,s|0)|0;M=I;F=Xn(B|0,E|0,H|0,C|0)|0;E=I;B=un(T|0,M|0,T|0,M|0)|0;M=I;T=un(F|0,E|0,F|0,E|0)|0;E=Vn(T|0,I|0,B|0,M|0)|0;M=I;B=a+16|0;T=a+20|0;F=f[T>>2]|0;O=f[a+24>>2]|0;P=(F|0)==(O<<5|0);if(J>>>0<M>>>0|(J|0)==(M|0)&U>>>0<E>>>0){do if(P)if((F+1|0)<0)aq(B);else{E=O<<6;U=F+32&-32;vi(B,F>>>0<1073741823?(E>>>0<U>>>0?U:E):2147483647);da=f[T>>2]|0;break}else da=F;while(0);f[T>>2]=da+1;L=(f[B>>2]|0)+(da>>>5<<2)|0;f[L>>2]=f[L>>2]|1<<(da&31);ea=x;fa=p;ga=K;ha=D}else{do if(P)if((F+1|0)<0)aq(B);else{L=O<<6;N=F+32&-32;vi(B,F>>>0<1073741823?(L>>>0<N>>>0?N:L):2147483647);ia=f[T>>2]|0;break}else ia=F;while(0);f[T>>2]=ia+1;F=(f[B>>2]|0)+(ia>>>5<<2)|0;f[F>>2]=f[F>>2]&~(1<<(ia&31));ea=G;fa=H;ga=C;ha=s}f[a+8>>2]=ea;f[a+12>>2]=fa;u=g;return}while(0);do if(r)ja=m<<1;else{if((e|0)>0){ja=(e<<1)+-2|0;break}fa=a+8|0;f[fa>>2]=0;f[fa+4>>2]=0;u=g;return}while(0);f[a+8>>2]=f[d+(ja<<2)>>2];f[a+12>>2]=f[d+(ja+1<<2)>>2];u=g;return}function ub(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;g=u;u=u+80|0;h=g+76|0;i=g+72|0;j=g+48|0;k=g+24|0;l=g;m=a+32|0;n=f[c>>2]|0;c=n+1|0;do if((n|0)!=-1){o=((c>>>0)%3|0|0)==0?n+-2|0:c;if(!((n>>>0)%3|0)){p=n+2|0;q=o;break}else{p=n+-1|0;q=o;break}}else{p=-1;q=-1}while(0);n=f[(f[m>>2]|0)+28>>2]|0;m=f[n+(q<<2)>>2]|0;q=f[n+(p<<2)>>2]|0;p=f[a+36>>2]|0;n=f[p>>2]|0;c=(f[p+4>>2]|0)-n>>2;if(c>>>0<=m>>>0)aq(p);o=n;n=f[o+(m<<2)>>2]|0;if(c>>>0<=q>>>0)aq(p);p=f[o+(q<<2)>>2]|0;q=(n|0)<(e|0);do if(q&(p|0)<(e|0)){o=n<<1;c=f[d+(o<<2)>>2]|0;m=((c|0)<0)<<31>>31;r=f[d+((o|1)<<2)>>2]|0;o=((r|0)<0)<<31>>31;s=p<<1;t=f[d+(s<<2)>>2]|0;v=f[d+((s|1)<<2)>>2]|0;if(!((t|0)!=(c|0)|(v|0)!=(r|0))){f[a+8>>2]=c;f[a+12>>2]=r;u=g;return}s=a+4|0;w=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;x=f[a>>2]|0;if(!(b[x+84>>0]|0))y=f[(f[x+68>>2]|0)+(w<<2)>>2]|0;else y=w;f[i>>2]=y;w=b[x+24>>0]|0;f[h>>2]=f[i>>2];vb(x,h,w,j)|0;w=f[(f[s>>2]|0)+(n<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;x=f[a>>2]|0;if(!(b[x+84>>0]|0))z=f[(f[x+68>>2]|0)+(w<<2)>>2]|0;else z=w;f[i>>2]=z;w=b[x+24>>0]|0;f[h>>2]=f[i>>2];vb(x,h,w,k)|0;w=f[(f[s>>2]|0)+(p<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;s=f[a>>2]|0;if(!(b[s+84>>0]|0))A=f[(f[s+68>>2]|0)+(w<<2)>>2]|0;else A=w;f[i>>2]=A;w=b[s+24>>0]|0;f[h>>2]=f[i>>2];vb(s,h,w,l)|0;w=l;s=k;x=f[s>>2]|0;B=f[s+4>>2]|0;s=Xn(f[w>>2]|0,f[w+4>>2]|0,x|0,B|0)|0;w=I;C=l+8|0;D=k+8|0;E=f[D>>2]|0;F=f[D+4>>2]|0;D=Xn(f[C>>2]|0,f[C+4>>2]|0,E|0,F|0)|0;C=I;G=l+16|0;H=k+16|0;J=f[H>>2]|0;K=f[H+4>>2]|0;H=Xn(f[G>>2]|0,f[G+4>>2]|0,J|0,K|0)|0;G=I;L=un(s|0,w|0,s|0,w|0)|0;M=I;N=un(D|0,C|0,D|0,C|0)|0;O=Vn(N|0,I|0,L|0,M|0)|0;M=I;L=un(H|0,G|0,H|0,G|0)|0;N=Vn(O|0,M|0,L|0,I|0)|0;L=I;if((N|0)==0&(L|0)==0)break;M=j;O=Xn(f[M>>2]|0,f[M+4>>2]|0,x|0,B|0)|0;B=I;x=j+8|0;M=Xn(f[x>>2]|0,f[x+4>>2]|0,E|0,F|0)|0;F=I;E=j+16|0;x=Xn(f[E>>2]|0,f[E+4>>2]|0,J|0,K|0)|0;K=I;J=un(O|0,B|0,s|0,w|0)|0;E=I;P=un(M|0,F|0,D|0,C|0)|0;Q=Vn(P|0,I|0,J|0,E|0)|0;E=I;J=un(x|0,K|0,H|0,G|0)|0;P=Vn(Q|0,E|0,J|0,I|0)|0;J=I;E=Xn(t|0,((t|0)<0)<<31>>31|0,c|0,m|0)|0;t=I;Q=Xn(v|0,((v|0)<0)<<31>>31|0,r|0,o|0)|0;v=I;R=un(N|0,L|0,c|0,m|0)|0;m=I;c=un(N|0,L|0,r|0,o|0)|0;o=I;r=un(P|0,J|0,E|0,t|0)|0;S=I;T=un(P|0,J|0,Q|0,v|0)|0;U=I;V=Vn(r|0,S|0,R|0,m|0)|0;m=I;R=Vn(T|0,U|0,c|0,o|0)|0;o=I;c=un(P|0,J|0,s|0,w|0)|0;w=I;s=un(P|0,J|0,D|0,C|0)|0;C=I;D=un(P|0,J|0,H|0,G|0)|0;G=I;H=Ik(c|0,w|0,N|0,L|0)|0;w=I;c=Ik(s|0,C|0,N|0,L|0)|0;C=I;s=Ik(D|0,G|0,N|0,L|0)|0;G=I;D=Xn(O|0,B|0,H|0,w|0)|0;w=I;H=Xn(M|0,F|0,c|0,C|0)|0;C=I;c=Xn(x|0,K|0,s|0,G|0)|0;G=I;s=un(D|0,w|0,D|0,w|0)|0;w=I;D=un(H|0,C|0,H|0,C|0)|0;C=Vn(D|0,I|0,s|0,w|0)|0;w=I;s=un(c|0,G|0,c|0,G|0)|0;G=Vn(C|0,w|0,s|0,I|0)|0;s=I;w=Xn(0,0,E|0,t|0)|0;t=I;E=un(G|0,s|0,N|0,L|0)|0;s=I;switch(E|0){case 0:{if(!s){W=0;X=0}else{Y=1;Z=0;_=E;$=s;aa=22}break}case 1:{if(!s){ba=1;ca=0;aa=23}else{Y=1;Z=0;_=E;$=s;aa=22}break}default:{Y=1;Z=0;_=E;$=s;aa=22}}if((aa|0)==22)while(1){aa=0;G=Tn(Y|0,Z|0,1)|0;C=I;c=_;_=Yn(_|0,$|0,2)|0;if(!($>>>0>0|($|0)==0&c>>>0>7)){ba=G;ca=C;aa=23;break}else{Y=G;Z=C;$=I;aa=22}}if((aa|0)==23)while(1){aa=0;C=jp(E|0,s|0,ba|0,ca|0)|0;G=Vn(C|0,I|0,ba|0,ca|0)|0;C=Yn(G|0,I|0,1)|0;G=I;c=un(C|0,G|0,C|0,G|0)|0;D=I;if(D>>>0>s>>>0|(D|0)==(s|0)&c>>>0>E>>>0){ba=C;ca=G;aa=23}else{W=C;X=G;break}}E=un(W|0,X|0,Q|0,v|0)|0;s=I;G=un(W|0,X|0,w|0,t|0)|0;C=I;c=Vn(E|0,s|0,V|0,m|0)|0;D=I;H=Vn(G|0,C|0,R|0,o|0)|0;K=I;x=Ik(c|0,D|0,N|0,L|0)|0;D=I;c=Ik(H|0,K|0,N|0,L|0)|0;K=I;H=Xn(V|0,m|0,E|0,s|0)|0;s=I;E=Xn(R|0,o|0,G|0,C|0)|0;C=I;G=Ik(H|0,s|0,N|0,L|0)|0;s=I;H=Ik(E|0,C|0,N|0,L|0)|0;C=I;E=e<<1;F=f[d+(E<<2)>>2]|0;M=((F|0)<0)<<31>>31;B=f[d+((E|1)<<2)>>2]|0;E=((B|0)<0)<<31>>31;O=Xn(F|0,M|0,x|0,D|0)|0;J=I;P=Xn(B|0,E|0,c|0,K|0)|0;U=I;T=un(O|0,J|0,O|0,J|0)|0;J=I;O=un(P|0,U|0,P|0,U|0)|0;U=Vn(O|0,I|0,T|0,J|0)|0;J=I;T=Xn(F|0,M|0,G|0,s|0)|0;M=I;F=Xn(B|0,E|0,H|0,C|0)|0;E=I;B=un(T|0,M|0,T|0,M|0)|0;M=I;T=un(F|0,E|0,F|0,E|0)|0;E=Vn(T|0,I|0,B|0,M|0)|0;M=I;B=a+16|0;T=a+20|0;F=f[T>>2]|0;O=f[a+24>>2]|0;P=(F|0)==(O<<5|0);if(J>>>0<M>>>0|(J|0)==(M|0)&U>>>0<E>>>0){do if(P)if((F+1|0)<0)aq(B);else{E=O<<6;U=F+32&-32;vi(B,F>>>0<1073741823?(E>>>0<U>>>0?U:E):2147483647);da=f[T>>2]|0;break}else da=F;while(0);f[T>>2]=da+1;L=(f[B>>2]|0)+(da>>>5<<2)|0;f[L>>2]=f[L>>2]|1<<(da&31);ea=x;fa=c;ga=K;ha=D}else{do if(P)if((F+1|0)<0)aq(B);else{L=O<<6;N=F+32&-32;vi(B,F>>>0<1073741823?(L>>>0<N>>>0?N:L):2147483647);ia=f[T>>2]|0;break}else ia=F;while(0);f[T>>2]=ia+1;F=(f[B>>2]|0)+(ia>>>5<<2)|0;f[F>>2]=f[F>>2]&~(1<<(ia&31));ea=G;fa=H;ga=C;ha=s}f[a+8>>2]=ea;f[a+12>>2]=fa;u=g;return}while(0);do if(q)ja=n<<1;else{if((e|0)>0){ja=(e<<1)+-2|0;break}fa=a+8|0;f[fa>>2]=0;f[fa+4>>2]=0;u=g;return}while(0);f[a+8>>2]=f[d+(ja<<2)>>2];f[a+12>>2]=f[d+(ja+1<<2)>>2];u=g;return}function vb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=Oa,D=0,E=0.0,F=0,G=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){m=b[o>>0]|0;q=g+(r<<3)|0;f[q>>2]=m;f[q+4>>2]=((m|0)<0)<<31>>31;r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<3)|0,0,(e<<24>>24)-o<<3|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=g+(t<<3)|0;f[k>>2]=h[m>>0];f[k+4>>2]=0;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<3)|0,0,(e<<24>>24)-m<<3|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){o=d[l>>1]|0;k=g+(q<<3)|0;f[k>>2]=o;f[k+4>>2]=((o|0)<0)<<31>>31;q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<3)|0,0,(e<<24>>24)-l<<3|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){m=g+(k<<3)|0;f[m>>2]=j[r>>1];f[m+4>>2]=0;k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<3)|0,0,(e<<24>>24)-r<<3|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=un(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=Vn(m|0,I|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){l=f[t>>2]|0;m=g+(o<<3)|0;f[m>>2]=l;f[m+4>>2]=((l|0)<0)<<31>>31;o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(t<<3)|0,0,(e<<24>>24)-t<<3|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=un(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=Vn(l|0,I|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){r=g+(m<<3)|0;f[r>>2]=f[q>>2];f[r+4>>2]=0;m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(q<<3)|0,0,(e<<24>>24)-q<<3|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=un(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=Vn(r|0,I|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){t=k;r=f[t+4>>2]|0;z=g+(l<<3)|0;f[z>>2]=f[t>>2];f[z+4>>2]=r;l=l+1|0;r=b[q>>0]|0;if((l|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){A=r;break}else k=k+8|0}}else A=m;k=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(k<<3)|0,0,(e<<24>>24)-k<<3|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;r=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;z=Vn(r|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+z|0;z=0;while(1){q=o;r=f[q+4>>2]|0;t=g+(z<<3)|0;f[t>>2]=f[q>>2];f[t+4>>2]=r;z=z+1|0;r=b[k>>0]|0;if((z|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){B=r;break}else o=o+8|0}}else B=l;o=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<3)|0,0,(e<<24>>24)-o<<3|0)|0;i=1;return i|0}case 9:{o=a+24|0;z=b[o>>0]|0;if((z<<24>>24>e<<24>>24?e:z)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;r=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(r|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){C=$(n[m>>2]);k=+K(+C)>=1.0?(+C>0.0?~~+Y(+J(+C/4294967296.0),4294967295.0)>>>0:~~+W((+C-+(~~+C>>>0))/4294967296.0)>>>0):0;r=g+(t<<3)|0;f[r>>2]=~~+C>>>0;f[r+4>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){D=k;break}else m=m+4|0}}else D=z;m=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<3)|0,0,(e<<24>>24)-m<<3|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;r=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+r|0;r=0;while(1){E=+p[l>>3];o=+K(E)>=1.0?(E>0.0?~~+Y(+J(E/4294967296.0),4294967295.0)>>>0:~~+W((E-+(~~E>>>0))/4294967296.0)>>>0):0;k=g+(r<<3)|0;f[k>>2]=~~E>>>0;f[k+4>>2]=o;r=r+1|0;o=b[m>>0]|0;if((r|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){F=o;break}else l=l+8|0}}else F=t;l=F<<24>>24;if(F<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<3)|0,0,(e<<24>>24)-l<<3|0)|0;i=1;return i|0}case 11:{l=a+24|0;r=b[l>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){m=f[f[a>>2]>>2]|0;z=a+40|0;o=un(f[z>>2]|0,f[z+4>>2]|0,f[c>>2]|0,0)|0;z=a+48|0;k=Vn(o|0,I|0,f[z>>2]|0,f[z+4>>2]|0)|0;z=m+k|0;k=0;while(1){m=g+(k<<3)|0;f[m>>2]=h[z>>0];f[m+4>>2]=0;k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){G=m;break}else z=z+1|0}}else G=r;z=G<<24>>24;if(G<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(z<<3)|0,0,(e<<24>>24)-z<<3|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function wb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;c=u;u=u+16|0;d=c+8|0;e=c;if((f[a+96>>2]|0)==(f[a+92>>2]|0)){u=c;return}g=a+56|0;h=f[g>>2]|0;if((h|0)==(f[a+60>>2]|0)){Ri(a+52|0,b);i=b}else{f[h>>2]=f[b>>2];f[g>>2]=h+4;i=b}b=a+88|0;f[b>>2]=0;h=f[a>>2]|0;g=f[i>>2]|0;j=g+1|0;if((g|0)!=-1){k=((j>>>0)%3|0|0)==0?g+-2|0:j;if((k|0)==-1)l=-1;else l=f[(f[h>>2]|0)+(k<<2)>>2]|0;k=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((k|0)==-1){m=l;n=-1}else{m=l;n=f[(f[h>>2]|0)+(k<<2)>>2]|0}}else{m=-1;n=-1}k=a+24|0;h=f[k>>2]|0;l=h+(m>>>5<<2)|0;g=1<<(m&31);j=f[l>>2]|0;if(!(j&g)){f[l>>2]=j|g;g=f[i>>2]|0;j=g+1|0;if((g|0)==-1)o=-1;else o=((j>>>0)%3|0|0)==0?g+-2|0:j;f[e>>2]=o;j=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((o>>>0)/3|0)*12|0)+(((o>>>0)%3|0)<<2)>>2]|0;o=f[a+48>>2]|0;f[d>>2]=j;g=f[o+4>>2]|0;o=g+4|0;l=f[o>>2]|0;if((l|0)==(f[g+8>>2]|0))Ri(g,d);else{f[l>>2]=j;f[o>>2]=l+4}l=a+40|0;o=f[l>>2]|0;j=o+4|0;g=f[j>>2]|0;if((g|0)==(f[o+8>>2]|0)){Ri(o,e);p=f[l>>2]|0}else{f[g>>2]=f[e>>2];f[j>>2]=g+4;p=o}o=p+24|0;f[(f[p+12>>2]|0)+(m<<2)>>2]=f[o>>2];f[o>>2]=(f[o>>2]|0)+1;q=f[k>>2]|0}else q=h;h=q+(n>>>5<<2)|0;q=1<<(n&31);o=f[h>>2]|0;if(!(o&q)){f[h>>2]=o|q;q=f[i>>2]|0;do if((q|0)!=-1)if(!((q>>>0)%3|0)){r=q+2|0;break}else{r=q+-1|0;break}else r=-1;while(0);f[e>>2]=r;q=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((r>>>0)/3|0)*12|0)+(((r>>>0)%3|0)<<2)>>2]|0;r=f[a+48>>2]|0;f[d>>2]=q;o=f[r+4>>2]|0;r=o+4|0;h=f[r>>2]|0;if((h|0)==(f[o+8>>2]|0))Ri(o,d);else{f[h>>2]=q;f[r>>2]=h+4}h=a+40|0;r=f[h>>2]|0;q=r+4|0;o=f[q>>2]|0;if((o|0)==(f[r+8>>2]|0)){Ri(r,e);s=f[h>>2]|0}else{f[o>>2]=f[e>>2];f[q>>2]=o+4;s=r}r=s+24|0;f[(f[s+12>>2]|0)+(n<<2)>>2]=f[r>>2];f[r>>2]=(f[r>>2]|0)+1}r=f[i>>2]|0;if((r|0)==-1)t=-1;else t=f[(f[f[a>>2]>>2]|0)+(r<<2)>>2]|0;r=(f[k>>2]|0)+(t>>>5<<2)|0;n=1<<(t&31);s=f[r>>2]|0;if(!(n&s)){f[r>>2]=s|n;n=f[i>>2]|0;f[e>>2]=n;s=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((n>>>0)/3|0)*12|0)+(((n>>>0)%3|0)<<2)>>2]|0;n=f[a+48>>2]|0;f[d>>2]=s;r=f[n+4>>2]|0;n=r+4|0;o=f[n>>2]|0;if((o|0)==(f[r+8>>2]|0))Ri(r,d);else{f[o>>2]=s;f[n>>2]=o+4}o=a+40|0;n=f[o>>2]|0;s=n+4|0;r=f[s>>2]|0;if((r|0)==(f[n+8>>2]|0)){Ri(n,e);v=f[o>>2]|0}else{f[r>>2]=f[e>>2];f[s>>2]=r+4;v=n}n=v+24|0;f[(f[v+12>>2]|0)+(t<<2)>>2]=f[n>>2];f[n>>2]=(f[n>>2]|0)+1}n=f[b>>2]|0;a:do if((n|0)<3){t=a+12|0;v=a+44|0;r=a+48|0;s=a+40|0;o=a+92|0;q=n;while(1){h=q;while(1){w=a+52+(h*12|0)+4|0;x=f[w>>2]|0;if((f[a+52+(h*12|0)>>2]|0)!=(x|0))break;if((h|0)<2)h=h+1|0;else break a}m=x+-4|0;p=f[m>>2]|0;f[w>>2]=m;f[b>>2]=h;f[i>>2]=p;if((p|0)==-1)break;m=(p>>>0)/3|0;g=f[t>>2]|0;do if(!(f[g+(m>>>5<<2)>>2]&1<<(m&31))){j=p;l=g;b:while(1){y=(j>>>0)/3|0;z=l+(y>>>5<<2)|0;f[z>>2]=1<<(y&31)|f[z>>2];z=f[i>>2]|0;if((z|0)==-1)A=-1;else A=f[(f[f[a>>2]>>2]|0)+(z<<2)>>2]|0;y=(f[k>>2]|0)+(A>>>5<<2)|0;B=1<<(A&31);C=f[y>>2]|0;if(!(B&C)){f[y>>2]=C|B;B=f[i>>2]|0;f[e>>2]=B;C=f[(f[(f[v>>2]|0)+96>>2]|0)+(((B>>>0)/3|0)*12|0)+(((B>>>0)%3|0)<<2)>>2]|0;B=f[r>>2]|0;f[d>>2]=C;y=f[B+4>>2]|0;B=y+4|0;D=f[B>>2]|0;if((D|0)==(f[y+8>>2]|0))Ri(y,d);else{f[D>>2]=C;f[B>>2]=D+4}D=f[s>>2]|0;B=D+4|0;C=f[B>>2]|0;if((C|0)==(f[D+8>>2]|0)){Ri(D,e);E=f[s>>2]|0}else{f[C>>2]=f[e>>2];f[B>>2]=C+4;E=D}D=E+24|0;f[(f[E+12>>2]|0)+(A<<2)>>2]=f[D>>2];f[D>>2]=(f[D>>2]|0)+1;F=f[i>>2]|0}else F=z;z=f[a>>2]|0;if((F|0)==-1){G=93;break}D=F+1|0;C=((D>>>0)%3|0|0)==0?F+-2|0:D;if((C|0)==-1)H=-1;else H=f[(f[z+12>>2]|0)+(C<<2)>>2]|0;C=(((F>>>0)%3|0|0)==0?2:-1)+F|0;if((C|0)==-1)I=-1;else I=f[(f[z+12>>2]|0)+(C<<2)>>2]|0;C=(H|0)==-1;D=C?-1:(H>>>0)/3|0;B=(I|0)==-1;y=B?-1:(I>>>0)/3|0;if(C)J=1;else J=(f[(f[t>>2]|0)+(D>>>5<<2)>>2]&1<<(D&31)|0)!=0;do if(B)if(J){G=93;break b}else G=82;else{if(f[(f[t>>2]|0)+(y>>>5<<2)>>2]&1<<(y&31)|0)if(J){G=93;break b}else{G=82;break}D=f[(f[z>>2]|0)+(I<<2)>>2]|0;if(!(1<<(D&31)&f[(f[k>>2]|0)+(D>>>5<<2)>>2])){K=(f[o>>2]|0)+(D<<2)|0;D=f[K>>2]|0;f[K>>2]=D+1;L=(D|0)>0?1:2}else L=0;if(J?(L|0)<=(f[b>>2]|0):0){M=I;break}f[d>>2]=I;D=a+52+(L*12|0)+4|0;K=f[D>>2]|0;if((K|0)==(f[a+52+(L*12|0)+8>>2]|0))Ri(a+52+(L*12|0)|0,d);else{f[K>>2]=I;f[D>>2]=K+4}if((f[b>>2]|0)>(L|0))f[b>>2]=L;if(J){G=93;break b}else G=82}while(0);if((G|0)==82){G=0;if(C)N=-1;else N=f[(f[f[a>>2]>>2]|0)+(H<<2)>>2]|0;if(!(1<<(N&31)&f[(f[k>>2]|0)+(N>>>5<<2)>>2])){z=(f[o>>2]|0)+(N<<2)|0;y=f[z>>2]|0;f[z>>2]=y+1;O=(y|0)>0?1:2}else O=0;if((O|0)>(f[b>>2]|0))break;else M=H}f[i>>2]=M;j=M;l=f[t>>2]|0}if((G|0)==93){G=0;P=f[b>>2]|0;break}f[d>>2]=H;l=a+52+(O*12|0)+4|0;j=f[l>>2]|0;if((j|0)==(f[a+52+(O*12|0)+8>>2]|0))Ri(a+52+(O*12|0)|0,d);else{f[j>>2]=H;f[l>>2]=j+4}j=f[b>>2]|0;if((j|0)>(O|0)){f[b>>2]=O;Q=O}else Q=j;P=Q}else P=h;while(0);if((P|0)<3)q=P;else break a}u=c;return}while(0);f[i>>2]=-1;u=c;return}function xb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}xb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;xb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function yb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}yb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;yb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function zb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}zb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;zb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Ab(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Ab(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Ab(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}\nfunction Bb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Bb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Bb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Cb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Cb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Cb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Db(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Db(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Db(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Eb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Eb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Eb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Fb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Fb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Fb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Gb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Gb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Gb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Hb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Hb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Ib(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Ib(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Ib(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Jb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Jb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Jb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Kb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Kb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Lb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Lb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Mb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Mb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Nb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Nb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Ob(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0<s>>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0<s>>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0<t>>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Ob(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Ob(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Pb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){f[g+(r<<2)>>2]=b[o>>0];r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){f[g+(t<<2)>>2]=h[m>>0];t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=d[l>>1];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=j[r>>1];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=un(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=Vn(m|0,I|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){f[g+(o<<2)>>2]=f[t>>2];o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(t<<2)|0,0,(e<<24>>24)-t<<2|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=un(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=Vn(l|0,I|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){f[g+(m<<2)>>2]=f[q>>2];m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(q<<2)|0,0,(e<<24>>24)-q<<2|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=un(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=Vn(r|0,I|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){f[g+(l<<2)>>2]=f[k>>2];l=l+1|0;t=b[q>>0]|0;if((l|0)>=((t<<24>>24>e<<24>>24?e:t)<<24>>24|0)){z=t;break}else k=k+8|0}}else z=m;k=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;t=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(t|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+r|0;r=0;while(1){f[g+(r<<2)>>2]=f[o>>2];r=r+1|0;q=b[k>>0]|0;if((r|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else o=o+8|0}}else A=l;o=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 9:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=~~$(n[m>>2])>>>0;f[g+(t<<2)>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){B=k;break}else m=m+4|0}}else B=r;m=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=~~+p[l>>3]>>>0;q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){C=o;break}else l=l+8|0}}else C=t;l=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 11:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=h[r>>0];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){D=m;break}else r=r+1|0}}else D=q;r=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function Qb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){f[g+(r<<2)>>2]=b[o>>0];r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){f[g+(t<<2)>>2]=h[m>>0];t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=d[l>>1];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=j[r>>1];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=un(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=Vn(m|0,I|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){f[g+(o<<2)>>2]=f[t>>2];o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(t<<2)|0,0,(e<<24>>24)-t<<2|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=un(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=Vn(l|0,I|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){f[g+(m<<2)>>2]=f[q>>2];m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(q<<2)|0,0,(e<<24>>24)-q<<2|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=un(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=Vn(r|0,I|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){f[g+(l<<2)>>2]=f[k>>2];l=l+1|0;t=b[q>>0]|0;if((l|0)>=((t<<24>>24>e<<24>>24?e:t)<<24>>24|0)){z=t;break}else k=k+8|0}}else z=m;k=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;t=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(t|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+r|0;r=0;while(1){f[g+(r<<2)>>2]=f[o>>2];r=r+1|0;q=b[k>>0]|0;if((r|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else o=o+8|0}}else A=l;o=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 9:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=~~$(n[m>>2]);f[g+(t<<2)>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){B=k;break}else m=m+4|0}}else B=r;m=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=~~+p[l>>3];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){C=o;break}else l=l+8|0}}else C=t;l=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 11:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=h[r>>0];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){D=m;break}else r=r+1|0}}else D=q;r=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function Rb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=Oa,J=0,K=0,L=0,M=0,N=Oa;e=u;u=u+48|0;g=e+36|0;h=e+24|0;i=e+12|0;j=e;if(!(xh(a,c,d)|0)){k=0;u=e;return k|0}l=f[(f[(f[c+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;if((f[l+28>>2]|0)!=9){k=0;u=e;return k|0}m=c+48|0;c=f[m>>2]|0;o=ln(32)|0;f[g>>2]=o;f[g+8>>2]=-2147483616;f[g+4>>2]=17;p=o;q=14495;r=p+17|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[o+17>>0]=0;o=c+16|0;s=f[o>>2]|0;if(s){t=o;v=s;a:while(1){s=v;while(1){if((f[s+16>>2]|0)>=(d|0))break;w=f[s+4>>2]|0;if(!w){x=t;break a}else s=w}v=f[s>>2]|0;if(!v){x=s;break}else t=s}if(((x|0)!=(o|0)?(f[x+16>>2]|0)<=(d|0):0)?(o=x+20|0,(Jh(o,g)|0)!=0):0)y=Hk(o,g,-1)|0;else z=12}else z=12;if((z|0)==12)y=Hk(c,g,-1)|0;if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if((y|0)<1){k=0;u=e;return k|0}c=f[m>>2]|0;o=ln(32)|0;f[g>>2]=o;f[g+8>>2]=-2147483616;f[g+4>>2]=19;p=o;q=14438;r=p+19|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[o+19>>0]=0;o=c+16|0;x=f[o>>2]|0;if(x){t=o;v=x;b:while(1){x=v;while(1){if((f[x+16>>2]|0)>=(d|0))break;w=f[x+4>>2]|0;if(!w){A=t;break b}else x=w}v=f[x>>2]|0;if(!v){A=x;break}else t=x}if((A|0)!=(o|0)?(f[A+16>>2]|0)<=(d|0):0)B=A+20|0;else z=24}else z=24;if((z|0)==24)B=c;if(!(Jh(B,g)|0))C=0;else{B=f[m>>2]|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;c=ln(32)|0;f[h>>2]=c;f[h+8>>2]=-2147483616;f[h+4>>2]=18;p=c;q=14458;r=p+18|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[c+18>>0]=0;c=B+16|0;A=f[c>>2]|0;if(A){o=c;t=A;c:while(1){A=t;while(1){if((f[A+16>>2]|0)>=(d|0))break;v=f[A+4>>2]|0;if(!v){D=o;break c}else A=v}t=f[A>>2]|0;if(!t){D=A;break}else o=A}if((D|0)!=(c|0)?(f[D+16>>2]|0)<=(d|0):0)E=D+20|0;else z=34}else z=34;if((z|0)==34)E=B;B=(Jh(E,h)|0)!=0;if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);C=B}if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if(!C){Wd(a+40|0,l,y)|0;k=1;u=e;return k|0}C=l+24|0;l=b[C>>0]|0;B=l<<24>>24;f[i>>2]=0;E=i+4|0;f[E>>2]=0;f[i+8>>2]=0;do if(l<<24>>24)if(l<<24>>24<0)aq(i);else{D=B<<2;c=ln(D)|0;f[i>>2]=c;o=c+(B<<2)|0;f[i+8>>2]=o;sj(c|0,0,D|0)|0;f[E>>2]=o;F=c;break}else F=0;while(0);B=f[m>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;l=ln(32)|0;f[j>>2]=l;f[j+8>>2]=-2147483616;f[j+4>>2]=19;p=l;q=14438;r=p+19|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[l+19>>0]=0;l=b[C>>0]|0;c=l<<24>>24;o=B+16|0;D=f[o>>2]|0;if(D){t=o;x=D;d:while(1){D=x;while(1){if((f[D+16>>2]|0)>=(d|0))break;v=f[D+4>>2]|0;if(!v){G=t;break d}else D=v}x=f[D>>2]|0;if(!x){G=D;break}else t=D}if(((G|0)!=(o|0)?(f[G+16>>2]|0)<=(d|0):0)?(o=G+20|0,(Jh(o,j)|0)!=0):0){t=Rg(o,j)|0;if((t|0)!=(G+24|0)){pj(g,t+28|0);t=g+11|0;G=b[t>>0]|0;o=G<<24>>24<0;if(!((o?f[g+4>>2]|0:G&255)|0))H=G;else{if(l<<24>>24>0){x=o?f[g>>2]|0:g;o=0;do{I=$(bq(x,h));A=x;x=f[h>>2]|0;if((A|0)==(x|0))break;n[F+(o<<2)>>2]=I;o=o+1|0}while((o|0)<(c|0));J=b[t>>0]|0}else J=G;H=J}if(H<<24>>24<0)Oq(f[g>>2]|0)}}else z=64}else z=64;if((z|0)==64?(H=Rg(B,j)|0,(H|0)!=(B+4|0)):0){pj(g,H+28|0);H=g+11|0;B=b[H>>0]|0;J=B<<24>>24<0;if(!((J?f[g+4>>2]|0:B&255)|0))K=B;else{if(l<<24>>24>0){l=J?f[g>>2]|0:g;J=0;do{I=$(bq(l,h));G=l;l=f[h>>2]|0;if((G|0)==(l|0))break;n[F+(J<<2)>>2]=I;J=J+1|0}while((J|0)<(c|0));L=b[H>>0]|0}else L=B;K=L}if(K<<24>>24<0)Oq(f[g>>2]|0)}if((b[j+11>>0]|0)<0)Oq(f[j>>2]|0);j=f[m>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;m=ln(32)|0;f[g>>2]=m;f[g+8>>2]=-2147483616;f[g+4>>2]=18;p=m;q=14458;r=p+18|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[m+18>>0]=0;m=j+16|0;q=f[m>>2]|0;if(q){p=m;r=q;e:while(1){q=r;while(1){if((f[q+16>>2]|0)>=(d|0))break;K=f[q+4>>2]|0;if(!K){M=p;break e}else q=K}r=f[q>>2]|0;if(!r){M=q;break}else p=q}if(((M|0)!=(m|0)?(f[M+16>>2]|0)<=(d|0):0)?(d=M+20|0,(Jh(d,g)|0)!=0):0)N=$(sk(d,g,$(1.0)));else z=86}else z=86;if((z|0)==86)N=$(sk(j,g,$(1.0)));if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);Dl(a+40|0,y,f[i>>2]|0,b[C>>0]|0,N);C=f[i>>2]|0;if(C|0){i=f[E>>2]|0;if((i|0)!=(C|0))f[E>>2]=i+(~((i+-4-C|0)>>>2)<<2);Oq(C)}k=1;u=e;return k|0}function Sb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;e=u;u=u+64|0;d=e+48|0;h=e+36|0;i=e+24|0;j=e+16|0;k=e+8|0;l=e;m=e+32|0;n=a+60|0;f[a+68>>2]=g;g=a+108|0;tk(g);o=a+56|0;p=f[o>>2]|0;q=(f[p+4>>2]|0)-(f[p>>2]|0)|0;r=q>>2;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;s=i;f[s>>2]=0;f[s+4>>2]=0;s=j;f[s>>2]=0;f[s+4>>2]=0;s=k;f[s>>2]=0;f[s+4>>2]=0;s=l;f[s>>2]=0;f[s+4>>2]=0;if((q|0)<=0){u=e;return 1}q=h+4|0;s=h+8|0;t=a+104|0;v=i+4|0;w=a+100|0;x=j+4|0;y=a+8|0;z=a+16|0;A=a+32|0;B=a+12|0;C=a+28|0;D=a+20|0;E=a+24|0;F=a+96|0;a=k+4|0;G=l+4|0;H=f[p>>2]|0;if((f[p+4>>2]|0)==(H|0)){J=p;aq(J)}else{K=0;L=H}while(1){f[m>>2]=f[L+(K<<2)>>2];f[d>>2]=f[m>>2];ic(n,d,h);H=f[h>>2]|0;p=(H|0)>-1?H:0-H|0;M=f[q>>2]|0;N=(M|0)>-1?M:0-M|0;O=Vn(N|0,((N|0)<0)<<31>>31|0,p|0,((p|0)<0)<<31>>31|0)|0;p=f[s>>2]|0;N=(p|0)>-1;P=N?p:0-p|0;p=Vn(O|0,I|0,P|0,((P|0)<0)<<31>>31|0)|0;P=I;if((p|0)==0&(P|0)==0){O=f[t>>2]|0;Q=O;R=h;S=M;T=O}else{O=f[t>>2]|0;U=((O|0)<0)<<31>>31;V=un(O|0,U|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Ik(V|0,I|0,p|0,P|0)|0;f[h>>2]=H;V=un(O|0,U|0,M|0,((M|0)<0)<<31>>31|0)|0;M=Ik(V|0,I|0,p|0,P|0)|0;f[q>>2]=M;P=O-((H|0)>-1?H:0-H|0)-((M|0)>-1?M:0-M|0)|0;Q=N?P:0-P|0;R=s;S=M;T=O}f[R>>2]=Q;O=f[h>>2]|0;do if((O|0)<=-1){if((S|0)<0){M=f[s>>2]|0;W=(M|0)>-1?M:0-M|0;X=M}else{M=f[s>>2]|0;W=(f[w>>2]|0)-((M|0)>-1?M:0-M|0)|0;X=M}if((X|0)<0){Y=(S|0)>-1?S:0-S|0;Z=W;_=X;break}else{Y=(f[w>>2]|0)-((S|0)>-1?S:0-S|0)|0;Z=W;_=X;break}}else{M=f[s>>2]|0;Y=M+T|0;Z=T+S|0;_=M}while(0);M=(Z|0)==0;P=(Y|0)==0;N=f[w>>2]|0;do if(Y|Z){H=(N|0)==(Y|0);if(!(M&H)){p=(N|0)==(Z|0);if(!(P&p)){if(M&(T|0)<(Y|0)){$=0;aa=(T<<1)-Y|0;break}if(p&(T|0)>(Y|0)){$=Z;aa=(T<<1)-Y|0;break}if(H&(T|0)>(Z|0)){$=(T<<1)-Z|0;aa=Y;break}if(P){$=(T|0)<(Z|0)?(T<<1)-Z|0:Z;aa=0}else{$=Z;aa=Y}}else{$=Z;aa=Z}}else{$=Y;aa=Y}}else{$=N;aa=N}while(0);f[i>>2]=$;f[v>>2]=aa;P=0-S|0;M=0-_|0;f[h>>2]=0-O;f[q>>2]=P;f[s>>2]=M;if((O|0)<1){ba=T-_|0;ca=T-S|0}else{H=(_|0)<1?M:_;M=(S|0)<1?P:S;ba=(_|0)>0?M:N-M|0;ca=(S|0)>0?H:N-H|0}H=(ca|0)==0;M=(ba|0)==0;do if(((ba|ca|0)!=0?(P=(N|0)==(ba|0),!(H&P)):0)?(p=(N|0)==(ca|0),!(M&p)):0){if(H&(T|0)<(ba|0)){da=0;ea=(T<<1)-ba|0;break}if(p&(T|0)>(ba|0)){da=N;ea=(T<<1)-ba|0;break}if(P&(T|0)>(ca|0)){da=(T<<1)-ca|0;ea=N;break}if(M){da=(T|0)<(ca|0)?(T<<1)-ca|0:ca;ea=0}else{da=ca;ea=ba}}else{da=N;ea=N}while(0);f[j>>2]=da;f[x>>2]=ea;N=K<<1;M=b+(N<<2)|0;H=f[y>>2]|0;if((H|0)>0){O=0;P=i;p=H;while(1){if((p|0)>0){H=0;do{V=f[P+(H<<2)>>2]|0;U=f[z>>2]|0;if((V|0)>(U|0)){fa=f[A>>2]|0;f[fa+(H<<2)>>2]=U;ga=fa}else{fa=f[B>>2]|0;U=f[A>>2]|0;f[U+(H<<2)>>2]=(V|0)<(fa|0)?fa:V;ga=U}H=H+1|0;U=f[y>>2]|0}while((H|0)<(U|0));ha=ga;ia=U}else{ha=f[A>>2]|0;ia=p}H=(f[M+(O<<2)>>2]|0)-(f[ha+(O<<2)>>2]|0)|0;U=k+(O<<2)|0;f[U>>2]=H;ja=f[C>>2]|0;if((H|0)>=(ja|0)){if((H|0)>(f[E>>2]|0)){ka=H-(f[D>>2]|0)|0;la=52}}else{ka=(f[D>>2]|0)+H|0;la=52}if((la|0)==52){la=0;f[U>>2]=ka}O=O+1|0;if((O|0)>=(ia|0))break;else{P=ha;p=ia}}if((ia|0)>0){p=0;P=j;O=ia;U=ja;while(1){if((O|0)>0){H=0;do{V=f[P+(H<<2)>>2]|0;fa=f[z>>2]|0;if((V|0)>(fa|0))f[ha+(H<<2)>>2]=fa;else{fa=f[B>>2]|0;f[ha+(H<<2)>>2]=(V|0)<(fa|0)?fa:V}H=H+1|0;ma=f[y>>2]|0}while((H|0)<(ma|0));na=f[C>>2]|0;oa=ma}else{na=U;oa=O}H=(f[M+(p<<2)>>2]|0)-(f[ha+(p<<2)>>2]|0)|0;V=l+(p<<2)|0;f[V>>2]=H;if((H|0)>=(na|0)){if((H|0)>(f[E>>2]|0)){pa=H-(f[D>>2]|0)|0;la=65}}else{pa=(f[D>>2]|0)+H|0;la=65}if((la|0)==65){la=0;f[V>>2]=pa}p=p+1|0;if((p|0)>=(oa|0))break;else{P=ha;O=oa;U=na}}}}U=f[k>>2]|0;O=f[t>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))qa=(f[F>>2]|0)+U|0;else qa=U;else qa=U-(f[F>>2]|0)|0;f[k>>2]=qa;U=f[a>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))ra=(f[F>>2]|0)+U|0;else ra=U;else ra=U-(f[F>>2]|0)|0;f[a>>2]=ra;U=f[l>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))sa=(f[F>>2]|0)+U|0;else sa=U;else sa=U-(f[F>>2]|0)|0;f[l>>2]=sa;U=f[G>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))ta=(f[F>>2]|0)+U|0;else ta=U;else ta=U-(f[F>>2]|0)|0;f[G>>2]=ta;if((((ra|0)>-1?ra:0-ra|0)+((qa|0)>-1?qa:0-qa|0)|0)<(((sa|0)>-1?sa:0-sa|0)+((ta|0)>-1?ta:0-ta|0)|0)){fj(g,0);ua=k}else{fj(g,1);ua=l}U=f[ua>>2]|0;if((U|0)<0)va=(f[F>>2]|0)+U|0;else va=U;U=c+(N<<2)|0;f[U>>2]=va;O=f[ua+4>>2]|0;if((O|0)<0)wa=(f[F>>2]|0)+O|0;else wa=O;f[U+4>>2]=wa;K=K+1|0;if((K|0)>=(r|0)){la=3;break}U=f[o>>2]|0;L=f[U>>2]|0;if((f[U+4>>2]|0)-L>>2>>>0<=K>>>0){J=U;la=4;break}}if((la|0)==3){u=e;return 1}else if((la|0)==4)aq(J);return 0}function Tb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;e=u;u=u+64|0;d=e+48|0;h=e+36|0;i=e+24|0;j=e+16|0;k=e+8|0;l=e;m=e+32|0;n=a+60|0;f[a+68>>2]=g;g=a+108|0;tk(g);o=a+56|0;p=f[o>>2]|0;q=(f[p+4>>2]|0)-(f[p>>2]|0)|0;r=q>>2;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;s=i;f[s>>2]=0;f[s+4>>2]=0;s=j;f[s>>2]=0;f[s+4>>2]=0;s=k;f[s>>2]=0;f[s+4>>2]=0;s=l;f[s>>2]=0;f[s+4>>2]=0;if((q|0)<=0){u=e;return 1}q=h+4|0;s=h+8|0;t=a+104|0;v=i+4|0;w=a+100|0;x=j+4|0;y=a+8|0;z=a+16|0;A=a+32|0;B=a+12|0;C=a+28|0;D=a+20|0;E=a+24|0;F=a+96|0;a=k+4|0;G=l+4|0;H=f[p>>2]|0;if((f[p+4>>2]|0)==(H|0)){J=p;aq(J)}else{K=0;L=H}while(1){f[m>>2]=f[L+(K<<2)>>2];f[d>>2]=f[m>>2];$b(n,d,h);H=f[h>>2]|0;p=(H|0)>-1?H:0-H|0;M=f[q>>2]|0;N=(M|0)>-1?M:0-M|0;O=Vn(N|0,((N|0)<0)<<31>>31|0,p|0,((p|0)<0)<<31>>31|0)|0;p=f[s>>2]|0;N=(p|0)>-1;P=N?p:0-p|0;p=Vn(O|0,I|0,P|0,((P|0)<0)<<31>>31|0)|0;P=I;if((p|0)==0&(P|0)==0){O=f[t>>2]|0;Q=O;R=h;S=M;T=O}else{O=f[t>>2]|0;U=((O|0)<0)<<31>>31;V=un(O|0,U|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Ik(V|0,I|0,p|0,P|0)|0;f[h>>2]=H;V=un(O|0,U|0,M|0,((M|0)<0)<<31>>31|0)|0;M=Ik(V|0,I|0,p|0,P|0)|0;f[q>>2]=M;P=O-((H|0)>-1?H:0-H|0)-((M|0)>-1?M:0-M|0)|0;Q=N?P:0-P|0;R=s;S=M;T=O}f[R>>2]=Q;O=f[h>>2]|0;do if((O|0)<=-1){if((S|0)<0){M=f[s>>2]|0;W=(M|0)>-1?M:0-M|0;X=M}else{M=f[s>>2]|0;W=(f[w>>2]|0)-((M|0)>-1?M:0-M|0)|0;X=M}if((X|0)<0){Y=(S|0)>-1?S:0-S|0;Z=W;_=X;break}else{Y=(f[w>>2]|0)-((S|0)>-1?S:0-S|0)|0;Z=W;_=X;break}}else{M=f[s>>2]|0;Y=M+T|0;Z=T+S|0;_=M}while(0);M=(Z|0)==0;P=(Y|0)==0;N=f[w>>2]|0;do if(Y|Z){H=(N|0)==(Y|0);if(!(M&H)){p=(N|0)==(Z|0);if(!(P&p)){if(M&(T|0)<(Y|0)){$=0;aa=(T<<1)-Y|0;break}if(p&(T|0)>(Y|0)){$=Z;aa=(T<<1)-Y|0;break}if(H&(T|0)>(Z|0)){$=(T<<1)-Z|0;aa=Y;break}if(P){$=(T|0)<(Z|0)?(T<<1)-Z|0:Z;aa=0}else{$=Z;aa=Y}}else{$=Z;aa=Z}}else{$=Y;aa=Y}}else{$=N;aa=N}while(0);f[i>>2]=$;f[v>>2]=aa;P=0-S|0;M=0-_|0;f[h>>2]=0-O;f[q>>2]=P;f[s>>2]=M;if((O|0)<1){ba=T-_|0;ca=T-S|0}else{H=(_|0)<1?M:_;M=(S|0)<1?P:S;ba=(_|0)>0?M:N-M|0;ca=(S|0)>0?H:N-H|0}H=(ca|0)==0;M=(ba|0)==0;do if(((ba|ca|0)!=0?(P=(N|0)==(ba|0),!(H&P)):0)?(p=(N|0)==(ca|0),!(M&p)):0){if(H&(T|0)<(ba|0)){da=0;ea=(T<<1)-ba|0;break}if(p&(T|0)>(ba|0)){da=N;ea=(T<<1)-ba|0;break}if(P&(T|0)>(ca|0)){da=(T<<1)-ca|0;ea=N;break}if(M){da=(T|0)<(ca|0)?(T<<1)-ca|0:ca;ea=0}else{da=ca;ea=ba}}else{da=N;ea=N}while(0);f[j>>2]=da;f[x>>2]=ea;N=K<<1;M=b+(N<<2)|0;H=f[y>>2]|0;if((H|0)>0){O=0;P=i;p=H;while(1){if((p|0)>0){H=0;do{V=f[P+(H<<2)>>2]|0;U=f[z>>2]|0;if((V|0)>(U|0)){fa=f[A>>2]|0;f[fa+(H<<2)>>2]=U;ga=fa}else{fa=f[B>>2]|0;U=f[A>>2]|0;f[U+(H<<2)>>2]=(V|0)<(fa|0)?fa:V;ga=U}H=H+1|0;U=f[y>>2]|0}while((H|0)<(U|0));ha=ga;ia=U}else{ha=f[A>>2]|0;ia=p}H=(f[M+(O<<2)>>2]|0)-(f[ha+(O<<2)>>2]|0)|0;U=k+(O<<2)|0;f[U>>2]=H;ja=f[C>>2]|0;if((H|0)>=(ja|0)){if((H|0)>(f[E>>2]|0)){ka=H-(f[D>>2]|0)|0;la=52}}else{ka=(f[D>>2]|0)+H|0;la=52}if((la|0)==52){la=0;f[U>>2]=ka}O=O+1|0;if((O|0)>=(ia|0))break;else{P=ha;p=ia}}if((ia|0)>0){p=0;P=j;O=ia;U=ja;while(1){if((O|0)>0){H=0;do{V=f[P+(H<<2)>>2]|0;fa=f[z>>2]|0;if((V|0)>(fa|0))f[ha+(H<<2)>>2]=fa;else{fa=f[B>>2]|0;f[ha+(H<<2)>>2]=(V|0)<(fa|0)?fa:V}H=H+1|0;ma=f[y>>2]|0}while((H|0)<(ma|0));na=f[C>>2]|0;oa=ma}else{na=U;oa=O}H=(f[M+(p<<2)>>2]|0)-(f[ha+(p<<2)>>2]|0)|0;V=l+(p<<2)|0;f[V>>2]=H;if((H|0)>=(na|0)){if((H|0)>(f[E>>2]|0)){pa=H-(f[D>>2]|0)|0;la=65}}else{pa=(f[D>>2]|0)+H|0;la=65}if((la|0)==65){la=0;f[V>>2]=pa}p=p+1|0;if((p|0)>=(oa|0))break;else{P=ha;O=oa;U=na}}}}U=f[k>>2]|0;O=f[t>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))qa=(f[F>>2]|0)+U|0;else qa=U;else qa=U-(f[F>>2]|0)|0;f[k>>2]=qa;U=f[a>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))ra=(f[F>>2]|0)+U|0;else ra=U;else ra=U-(f[F>>2]|0)|0;f[a>>2]=ra;U=f[l>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))sa=(f[F>>2]|0)+U|0;else sa=U;else sa=U-(f[F>>2]|0)|0;f[l>>2]=sa;U=f[G>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))ta=(f[F>>2]|0)+U|0;else ta=U;else ta=U-(f[F>>2]|0)|0;f[G>>2]=ta;if((((ra|0)>-1?ra:0-ra|0)+((qa|0)>-1?qa:0-qa|0)|0)<(((sa|0)>-1?sa:0-sa|0)+((ta|0)>-1?ta:0-ta|0)|0)){fj(g,0);ua=k}else{fj(g,1);ua=l}U=f[ua>>2]|0;if((U|0)<0)va=(f[F>>2]|0)+U|0;else va=U;U=c+(N<<2)|0;f[U>>2]=va;O=f[ua+4>>2]|0;if((O|0)<0)wa=(f[F>>2]|0)+O|0;else wa=O;f[U+4>>2]=wa;K=K+1|0;if((K|0)>=(r|0)){la=3;break}U=f[o>>2]|0;L=f[U>>2]|0;if((f[U+4>>2]|0)-L>>2>>>0<=K>>>0){J=U;la=4;break}}if((la|0)==3){u=e;return 1}else if((la|0)==4)aq(J);return 0}function Ub(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=Oa,V=Oa,Y=Oa,Z=0,_=0,aa=0,ba=0;d=u;u=u+16|0;e=d;g=a+16|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;n[g>>2]=$(1.0);i=a+20|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[a+36>>2]=$(1.0);j=f[c+8>>2]|0;a:do if(j|0){k=a+4|0;l=a+12|0;m=a+8|0;o=j;p=j;while(1){q=o+8|0;r=b[q+11>>0]|0;s=r<<24>>24<0;t=s?f[q>>2]|0:q;v=s?f[o+12>>2]|0:r&255;if(v>>>0>3){r=t;s=v;w=v;while(1){x=X(h[r>>0]|h[r+1>>0]<<8|h[r+2>>0]<<16|h[r+3>>0]<<24,1540483477)|0;s=(X(x>>>24^x,1540483477)|0)^(X(s,1540483477)|0);w=w+-4|0;if(w>>>0<=3)break;else r=r+4|0}r=v+-4|0;w=r&-4;y=r-w|0;z=t+(w+4)|0;A=s}else{y=v;z=t;A=v}switch(y|0){case 3:{B=h[z+2>>0]<<16^A;C=8;break}case 2:{B=A;C=8;break}case 1:{D=A;C=9;break}default:E=A}if((C|0)==8){C=0;D=h[z+1>>0]<<8^B;C=9}if((C|0)==9){C=0;E=X(D^h[z>>0],1540483477)|0}w=X(E>>>13^E,1540483477)|0;r=w>>>15^w;w=f[k>>2]|0;x=(w|0)==0;b:do if(!x){F=w+-1|0;G=(F&w|0)==0;if(!G)if(r>>>0<w>>>0)H=r;else H=(r>>>0)%(w>>>0)|0;else H=r&F;I=f[(f[a>>2]|0)+(H<<2)>>2]|0;if((I|0)!=0?(J=f[I>>2]|0,(J|0)!=0):0){I=(v|0)==0;if(G){if(I){G=J;while(1){K=f[G+4>>2]|0;if(!((K|0)==(r|0)|(K&F|0)==(H|0))){L=H;C=50;break b}K=b[G+8+11>>0]|0;if(!((K<<24>>24<0?f[G+12>>2]|0:K&255)|0))break b;G=f[G>>2]|0;if(!G){L=H;C=50;break b}}}else M=J;while(1){G=f[M+4>>2]|0;if(!((G|0)==(r|0)|(G&F|0)==(H|0))){L=H;C=50;break b}G=M+8|0;K=b[G+11>>0]|0;N=K<<24>>24<0;O=K&255;do if(((N?f[M+12>>2]|0:O)|0)==(v|0)){K=f[G>>2]|0;if(N)if(!(Vk(K,t,v)|0))break b;else break;if((b[t>>0]|0)==(K&255)<<24>>24){K=G;P=O;Q=t;do{P=P+-1|0;K=K+1|0;if(!P)break b;Q=Q+1|0}while((b[K>>0]|0)==(b[Q>>0]|0))}}while(0);M=f[M>>2]|0;if(!M){L=H;C=50;break b}}}if(I){F=J;while(1){O=f[F+4>>2]|0;if((O|0)!=(r|0)){if(O>>>0<w>>>0)R=O;else R=(O>>>0)%(w>>>0)|0;if((R|0)!=(H|0)){L=H;C=50;break b}}O=b[F+8+11>>0]|0;if(!((O<<24>>24<0?f[F+12>>2]|0:O&255)|0))break b;F=f[F>>2]|0;if(!F){L=H;C=50;break b}}}else S=J;while(1){F=f[S+4>>2]|0;if((F|0)!=(r|0)){if(F>>>0<w>>>0)T=F;else T=(F>>>0)%(w>>>0)|0;if((T|0)!=(H|0)){L=H;C=50;break b}}F=S+8|0;I=b[F+11>>0]|0;O=I<<24>>24<0;G=I&255;do if(((O?f[S+12>>2]|0:G)|0)==(v|0)){I=f[F>>2]|0;if(O)if(!(Vk(I,t,v)|0))break b;else break;if((b[t>>0]|0)==(I&255)<<24>>24){I=F;N=G;Q=t;do{N=N+-1|0;I=I+1|0;if(!N)break b;Q=Q+1|0}while((b[I>>0]|0)==(b[Q>>0]|0))}}while(0);S=f[S>>2]|0;if(!S){L=H;C=50;break}}}else{L=H;C=50}}else{L=0;C=50}while(0);if((C|0)==50){C=0;Di(e,a,r,q);U=$(((f[l>>2]|0)+1|0)>>>0);V=$(w>>>0);Y=$(n[g>>2]);do if(x|$(Y*V)<U){t=w<<1|(w>>>0<3|(w+-1&w|0)!=0)&1;v=~~$(W($(U/Y)))>>>0;ei(a,t>>>0<v>>>0?v:t);t=f[k>>2]|0;v=t+-1|0;if(!(v&t)){Z=t;_=v&r;break}if(r>>>0<t>>>0){Z=t;_=r}else{Z=t;_=(r>>>0)%(t>>>0)|0}}else{Z=w;_=L}while(0);w=f[(f[a>>2]|0)+(_<<2)>>2]|0;if(!w){f[f[e>>2]>>2]=f[m>>2];f[m>>2]=f[e>>2];f[(f[a>>2]|0)+(_<<2)>>2]=m;r=f[e>>2]|0;x=f[r>>2]|0;if(x|0){q=f[x+4>>2]|0;x=Z+-1|0;if(x&Z)if(q>>>0<Z>>>0)aa=q;else aa=(q>>>0)%(Z>>>0)|0;else aa=q&x;f[(f[a>>2]|0)+(aa<<2)>>2]=r}}else{f[f[e>>2]>>2]=f[w>>2];f[w>>2]=f[e>>2]}f[l>>2]=(f[l>>2]|0)+1}w=f[p>>2]|0;if(!w)break a;else{o=w;p=w}}}while(0);e=f[c+28>>2]|0;if(!e){u=d;return}else ba=e;do{e=ba;c=ln(40)|0;Ub(c,f[e+20>>2]|0);aa=Ec(i,e+8|0)|0;e=f[aa>>2]|0;f[aa>>2]=c;if(e|0){c=f[e+28>>2]|0;if(c|0){aa=c;do{c=aa;aa=f[aa>>2]|0;ri(c+8|0);Oq(c)}while((aa|0)!=0)}aa=e+20|0;c=f[aa>>2]|0;f[aa>>2]=0;if(c|0)Oq(c);c=f[e+8>>2]|0;if(c|0){aa=c;do{c=aa;aa=f[aa>>2]|0;a=c+8|0;Z=f[c+20>>2]|0;if(Z|0){_=c+24|0;if((f[_>>2]|0)!=(Z|0))f[_>>2]=Z;Oq(Z)}if((b[a+11>>0]|0)<0)Oq(f[a>>2]|0);Oq(c)}while((aa|0)!=0)}aa=f[e>>2]|0;f[e>>2]=0;if(aa|0)Oq(aa);Oq(e)}ba=f[ba>>2]|0}while((ba|0)!=0);u=d;return}function Vb(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=Oa,fa=Oa,ga=Oa,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;g=u;u=u+48|0;i=g+16|0;j=g+12|0;k=g;l=i+16|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=c+48|0;q=c+40|0;o=i+4|0;t=i+12|0;v=i+8|0;w=a+40|0;x=a+64|0;y=f[e>>2]|0;e=r;z=0;A=0;B=r;C=r;D=0;E=r;while(1){r=s;F=f[r>>2]|0;G=f[r+4>>2]|0;r=q;H=un(f[r>>2]|0,f[r+4>>2]|0,y+z|0,0)|0;r=Vn(H|0,I|0,F|0,G|0)|0;G=(f[f[c>>2]>>2]|0)+r|0;r=h[G>>0]|h[G+1>>0]<<8|h[G+2>>0]<<16|h[G+3>>0]<<24;f[j>>2]=r;G=r&65535;F=r>>>16;H=F&65535;J=(r&65535^318)+239^F;F=(D|0)==0;a:do if(!F){K=D+-1|0;L=(K&D|0)==0;if(!L)if(J>>>0<D>>>0)M=J;else M=(J>>>0)%(D>>>0)|0;else M=J&K;N=f[(f[i>>2]|0)+(M<<2)>>2]|0;do if(N|0?(O=f[N>>2]|0,O|0):0){b:do if(L){P=O;while(1){Q=f[P+4>>2]|0;R=(Q|0)==(J|0);if(!(R|(Q&K|0)==(M|0))){S=27;break b}if((R?(R=P+8|0,(d[R>>1]|0)==G<<16>>16):0)?(d[R+2>>1]|0)==H<<16>>16:0){T=P;S=26;break b}P=f[P>>2]|0;if(!P){S=27;break}}}else{P=O;while(1){R=f[P+4>>2]|0;if((R|0)==(J|0)){Q=P+8|0;if((d[Q>>1]|0)==G<<16>>16?(d[Q+2>>1]|0)==H<<16>>16:0){T=P;S=26;break b}}else{if(R>>>0<D>>>0)U=R;else U=(R>>>0)%(D>>>0)|0;if((U|0)!=(M|0)){S=27;break b}}P=f[P>>2]|0;if(!P){S=27;break}}}while(0);if((S|0)==26){S=0;f[E+(z<<2)>>2]=f[T+12>>2];V=e;X=A;Y=C;Z=B;_=E;break a}else if((S|0)==27){S=0;if(F){aa=0;S=46;break a}else break}}while(0);K=D+-1|0;L=(K&D|0)==0;if(!L)if(J>>>0<D>>>0)ba=J;else ba=(J>>>0)%(D>>>0)|0;else ba=K&J;N=f[(f[i>>2]|0)+(ba<<2)>>2]|0;if((N|0)!=0?(O=f[N>>2]|0,(O|0)!=0):0){if(L){L=O;while(1){N=f[L+4>>2]|0;if(!((N|0)==(J|0)|(N&K|0)==(ba|0))){aa=ba;S=46;break a}N=L+8|0;if((d[N>>1]|0)==G<<16>>16?(d[N+2>>1]|0)==H<<16>>16:0){S=61;break a}L=f[L>>2]|0;if(!L){aa=ba;S=46;break a}}}else ca=O;while(1){L=f[ca+4>>2]|0;if((L|0)!=(J|0)){if(L>>>0<D>>>0)da=L;else da=(L>>>0)%(D>>>0)|0;if((da|0)!=(ba|0)){aa=ba;S=46;break a}}L=ca+8|0;if((d[L>>1]|0)==G<<16>>16?(d[L+2>>1]|0)==H<<16>>16:0){S=61;break a}ca=f[ca>>2]|0;if(!ca){aa=ba;S=46;break}}}else{aa=ba;S=46}}else{aa=0;S=46}while(0);if((S|0)==46){S=0;H=ln(16)|0;G=H+8|0;d[G>>1]=r;d[G+2>>1]=r>>>16;f[H+12>>2]=A;f[H+4>>2]=J;f[H>>2]=0;ea=$(((f[t>>2]|0)+1|0)>>>0);fa=$(D>>>0);ga=$(n[l>>2]);do if(F|$(ga*fa)<ea){G=D<<1|(D>>>0<3|(D+-1&D|0)!=0)&1;O=~~$(W($(ea/ga)))>>>0;Uh(i,G>>>0<O>>>0?O:G);G=f[o>>2]|0;O=G+-1|0;if(!(O&G)){ha=G;ia=O&J;break}if(J>>>0<G>>>0){ha=G;ia=J}else{ha=G;ia=(J>>>0)%(G>>>0)|0}}else{ha=D;ia=aa}while(0);J=(f[i>>2]|0)+(ia<<2)|0;F=f[J>>2]|0;if(!F){f[H>>2]=f[v>>2];f[v>>2]=H;f[J>>2]=v;J=f[H>>2]|0;if(J|0){r=f[J+4>>2]|0;J=ha+-1|0;if(J&ha)if(r>>>0<ha>>>0)ja=r;else ja=(r>>>0)%(ha>>>0)|0;else ja=r&J;ka=(f[i>>2]|0)+(ja<<2)|0;S=59}}else{f[H>>2]=f[F>>2];ka=F;S=59}if((S|0)==59){S=0;f[ka>>2]=H}f[t>>2]=(f[t>>2]|0)+1;S=61}if((S|0)==61){S=0;F=w;J=f[F>>2]|0;r=un(J|0,f[F+4>>2]|0,A|0,0)|0;kh((f[f[x>>2]>>2]|0)+r|0,j|0,J|0)|0;J=f[k>>2]|0;f[J+(z<<2)>>2]=A;V=J;X=A+1|0;Y=J;Z=J;_=J}J=z+1|0;la=f[m>>2]|0;if(J>>>0>=la>>>0)break;e=V;z=J;A=X;B=Z;C=Y;D=f[o>>2]|0;E=_}if((X|0)==(la|0))ma=Z;else{Z=a+84|0;if(!(b[Z>>0]|0)){_=f[a+72>>2]|0;E=f[a+68>>2]|0;o=E;if((_|0)==(E|0))na=V;else{D=_-E>>2;E=0;do{_=o+(E<<2)|0;f[_>>2]=f[Y+(f[_>>2]<<2)>>2];E=E+1|0}while(E>>>0<D>>>0);na=V}}else{b[Z>>0]=0;Z=a+68|0;V=a+72|0;D=f[V>>2]|0;E=f[Z>>2]|0;Y=D-E>>2;o=E;E=D;if(la>>>0<=Y>>>0)if(la>>>0<Y>>>0?(D=o+(la<<2)|0,(D|0)!=(E|0)):0){f[V>>2]=E+(~((E+-4-D|0)>>>2)<<2);oa=la}else oa=la;else{Ch(Z,la-Y|0,1220);oa=f[m>>2]|0}Y=f[k>>2]|0;if(!oa)na=Y;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[Y+(a<<2)>>2];a=a+1|0}while(a>>>0<oa>>>0);na=Y}}f[m>>2]=X;ma=na}if(!ma)pa=X;else{na=f[p>>2]|0;if((na|0)!=(ma|0))f[p>>2]=na+(~((na+-4-ma|0)>>>2)<<2);Oq(ma);pa=X}}else pa=0;X=f[i+8>>2]|0;if(X|0){ma=X;do{X=ma;ma=f[ma>>2]|0;Oq(X)}while((ma|0)!=0)}ma=f[i>>2]|0;f[i>>2]=0;if(!ma){u=g;return pa|0}Oq(ma);u=g;return pa|0}function Wb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=Oa,da=Oa,ea=Oa,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;e=u;u=u+48|0;g=e+20|0;i=e;j=e+8|0;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=c+48|0;p=c+40|0;m=g+4|0;s=g+12|0;t=g+8|0;v=a+40|0;w=a+64|0;x=f[d>>2]|0;d=q;y=0;z=0;A=q;B=q;C=q;q=0;while(1){D=r;E=f[D>>2]|0;F=f[D+4>>2]|0;D=p;G=un(f[D>>2]|0,f[D+4>>2]|0,x+y|0,0)|0;D=Vn(G|0,I|0,E|0,F|0)|0;F=(f[f[c>>2]>>2]|0)+D|0;D=F;E=h[D>>0]|h[D+1>>0]<<8|h[D+2>>0]<<16|h[D+3>>0]<<24;D=F+4|0;F=h[D>>0]|h[D+1>>0]<<8|h[D+2>>0]<<16|h[D+3>>0]<<24;D=i;f[D>>2]=E;f[D+4>>2]=F;D=(E^318)+239^F;G=(q|0)==0;a:do if(!G){H=q+-1|0;J=(H&q|0)==0;if(!J)if(D>>>0<q>>>0)K=D;else K=(D>>>0)%(q>>>0)|0;else K=D&H;L=f[(f[g>>2]|0)+(K<<2)>>2]|0;do if(L|0?(M=f[L>>2]|0,M|0):0){b:do if(J){N=M;while(1){O=f[N+4>>2]|0;P=(O|0)==(D|0);if(!(P|(O&H|0)==(K|0))){Q=27;break b}if((P?(f[N+8>>2]|0)==(E|0):0)?(f[N+12>>2]|0)==(F|0):0){R=N;Q=26;break b}N=f[N>>2]|0;if(!N){Q=27;break}}}else{N=M;while(1){P=f[N+4>>2]|0;if((P|0)==(D|0)){if((f[N+8>>2]|0)==(E|0)?(f[N+12>>2]|0)==(F|0):0){R=N;Q=26;break b}}else{if(P>>>0<q>>>0)S=P;else S=(P>>>0)%(q>>>0)|0;if((S|0)!=(K|0)){Q=27;break b}}N=f[N>>2]|0;if(!N){Q=27;break}}}while(0);if((Q|0)==26){Q=0;f[A+(y<<2)>>2]=f[R+16>>2];T=d;U=z;V=C;X=B;Y=A;break a}else if((Q|0)==27){Q=0;if(G){Z=0;Q=46;break a}else break}}while(0);H=q+-1|0;J=(H&q|0)==0;if(!J)if(D>>>0<q>>>0)_=D;else _=(D>>>0)%(q>>>0)|0;else _=H&D;L=f[(f[g>>2]|0)+(_<<2)>>2]|0;if((L|0)!=0?(M=f[L>>2]|0,(M|0)!=0):0){if(J){J=M;while(1){L=f[J+4>>2]|0;if(!((L|0)==(D|0)|(L&H|0)==(_|0))){Z=_;Q=46;break a}if((f[J+8>>2]|0)==(E|0)?(f[J+12>>2]|0)==(F|0):0){Q=61;break a}J=f[J>>2]|0;if(!J){Z=_;Q=46;break a}}}else aa=M;while(1){J=f[aa+4>>2]|0;if((J|0)!=(D|0)){if(J>>>0<q>>>0)ba=J;else ba=(J>>>0)%(q>>>0)|0;if((ba|0)!=(_|0)){Z=_;Q=46;break a}}if((f[aa+8>>2]|0)==(E|0)?(f[aa+12>>2]|0)==(F|0):0){Q=61;break a}aa=f[aa>>2]|0;if(!aa){Z=_;Q=46;break}}}else{Z=_;Q=46}}else{Z=0;Q=46}while(0);if((Q|0)==46){Q=0;M=ln(20)|0;J=M+8|0;f[J>>2]=E;f[J+4>>2]=F;f[M+16>>2]=z;f[M+4>>2]=D;f[M>>2]=0;ca=$(((f[s>>2]|0)+1|0)>>>0);da=$(q>>>0);ea=$(n[k>>2]);do if(G|$(ea*da)<ca){J=q<<1|(q>>>0<3|(q+-1&q|0)!=0)&1;H=~~$(W($(ca/ea)))>>>0;Yh(g,J>>>0<H>>>0?H:J);J=f[m>>2]|0;H=J+-1|0;if(!(H&J)){fa=J;ga=H&D;break}if(D>>>0<J>>>0){fa=J;ga=D}else{fa=J;ga=(D>>>0)%(J>>>0)|0}}else{fa=q;ga=Z}while(0);D=(f[g>>2]|0)+(ga<<2)|0;G=f[D>>2]|0;if(!G){f[M>>2]=f[t>>2];f[t>>2]=M;f[D>>2]=t;D=f[M>>2]|0;if(D|0){F=f[D+4>>2]|0;D=fa+-1|0;if(D&fa)if(F>>>0<fa>>>0)ha=F;else ha=(F>>>0)%(fa>>>0)|0;else ha=F&D;ia=(f[g>>2]|0)+(ha<<2)|0;Q=59}}else{f[M>>2]=f[G>>2];ia=G;Q=59}if((Q|0)==59){Q=0;f[ia>>2]=M}f[s>>2]=(f[s>>2]|0)+1;Q=61}if((Q|0)==61){Q=0;G=v;D=f[G>>2]|0;F=un(D|0,f[G+4>>2]|0,z|0,0)|0;kh((f[f[w>>2]>>2]|0)+F|0,i|0,D|0)|0;D=f[j>>2]|0;f[D+(y<<2)>>2]=z;T=D;U=z+1|0;V=D;X=D;Y=D}D=y+1|0;ja=f[l>>2]|0;if(D>>>0>=ja>>>0)break;d=T;y=D;z=U;A=Y;B=X;C=V;q=f[m>>2]|0}if((U|0)==(ja|0))ka=X;else{X=a+84|0;if(!(b[X>>0]|0)){m=f[a+72>>2]|0;q=f[a+68>>2]|0;C=q;if((m|0)==(q|0))la=T;else{B=m-q>>2;q=0;do{m=C+(q<<2)|0;f[m>>2]=f[V+(f[m>>2]<<2)>>2];q=q+1|0}while(q>>>0<B>>>0);la=T}}else{b[X>>0]=0;X=a+68|0;T=a+72|0;B=f[T>>2]|0;q=f[X>>2]|0;V=B-q>>2;C=q;q=B;if(ja>>>0<=V>>>0)if(ja>>>0<V>>>0?(B=C+(ja<<2)|0,(B|0)!=(q|0)):0){f[T>>2]=q+(~((q+-4-B|0)>>>2)<<2);ma=ja}else ma=ja;else{Ch(X,ja-V|0,1220);ma=f[l>>2]|0}V=f[j>>2]|0;if(!ma)la=V;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[V+(a<<2)>>2];a=a+1|0}while(a>>>0<ma>>>0);la=V}}f[l>>2]=U;ka=la}if(!ka)na=U;else{la=f[o>>2]|0;if((la|0)!=(ka|0))f[o>>2]=la+(~((la+-4-ka|0)>>>2)<<2);Oq(ka);na=U}}else na=0;U=f[g+8>>2]|0;if(U|0){ka=U;do{U=ka;ka=f[ka>>2]|0;Oq(U)}while((ka|0)!=0)}ka=f[g>>2]|0;f[g>>2]=0;if(!ka){u=e;return na|0}Oq(ka);u=e;return na|0}function Xb(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=Oa,fa=Oa,ga=Oa,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;g=u;u=u+48|0;i=g+12|0;j=g+32|0;k=g;l=i+16|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=c+48|0;q=c+40|0;o=i+4|0;t=i+12|0;v=i+8|0;w=a+40|0;x=a+64|0;y=f[e>>2]|0;e=r;z=0;A=0;B=r;C=r;D=0;E=r;while(1){r=s;F=f[r>>2]|0;G=f[r+4>>2]|0;r=q;H=un(f[r>>2]|0,f[r+4>>2]|0,y+z|0,0)|0;r=Vn(H|0,I|0,F|0,G|0)|0;G=(f[f[c>>2]>>2]|0)+r|0;r=h[G>>0]|h[G+1>>0]<<8;d[j>>1]=r;G=r&255;F=(r&65535)>>>8;H=F&255;J=((r&255^318)+239<<16>>16^F)&65535;F=(D|0)==0;a:do if(!F){K=D+-1|0;L=(K&D|0)==0;if(!L)if(D>>>0>J>>>0)M=J;else M=(J>>>0)%(D>>>0)|0;else M=K&J;N=f[(f[i>>2]|0)+(M<<2)>>2]|0;do if(N|0?(O=f[N>>2]|0,O|0):0){b:do if(L){P=O;while(1){Q=f[P+4>>2]|0;R=(Q|0)==(J|0);if(!(R|(Q&K|0)==(M|0))){S=27;break b}if((R?(R=P+8|0,(b[R>>0]|0)==G<<24>>24):0)?(b[R+1>>0]|0)==H<<24>>24:0){T=P;S=26;break b}P=f[P>>2]|0;if(!P){S=27;break}}}else{P=O;while(1){R=f[P+4>>2]|0;if((R|0)==(J|0)){Q=P+8|0;if((b[Q>>0]|0)==G<<24>>24?(b[Q+1>>0]|0)==H<<24>>24:0){T=P;S=26;break b}}else{if(R>>>0<D>>>0)U=R;else U=(R>>>0)%(D>>>0)|0;if((U|0)!=(M|0)){S=27;break b}}P=f[P>>2]|0;if(!P){S=27;break}}}while(0);if((S|0)==26){S=0;f[E+(z<<2)>>2]=f[T+12>>2];V=e;X=A;Y=C;Z=B;_=E;break a}else if((S|0)==27){S=0;if(F){aa=0;S=46;break a}else break}}while(0);K=D+-1|0;L=(K&D|0)==0;if(!L)if(D>>>0>J>>>0)ba=J;else ba=(J>>>0)%(D>>>0)|0;else ba=K&J;N=f[(f[i>>2]|0)+(ba<<2)>>2]|0;if((N|0)!=0?(O=f[N>>2]|0,(O|0)!=0):0){if(L){L=O;while(1){N=f[L+4>>2]|0;if(!((N|0)==(J|0)|(N&K|0)==(ba|0))){aa=ba;S=46;break a}N=L+8|0;if((b[N>>0]|0)==G<<24>>24?(b[N+1>>0]|0)==H<<24>>24:0){S=61;break a}L=f[L>>2]|0;if(!L){aa=ba;S=46;break a}}}else ca=O;while(1){L=f[ca+4>>2]|0;if((L|0)!=(J|0)){if(L>>>0<D>>>0)da=L;else da=(L>>>0)%(D>>>0)|0;if((da|0)!=(ba|0)){aa=ba;S=46;break a}}L=ca+8|0;if((b[L>>0]|0)==G<<24>>24?(b[L+1>>0]|0)==H<<24>>24:0){S=61;break a}ca=f[ca>>2]|0;if(!ca){aa=ba;S=46;break}}}else{aa=ba;S=46}}else{aa=0;S=46}while(0);if((S|0)==46){S=0;H=ln(16)|0;G=H+8|0;b[G>>0]=r;b[G+1>>0]=r>>8;f[H+12>>2]=A;f[H+4>>2]=J;f[H>>2]=0;ea=$(((f[t>>2]|0)+1|0)>>>0);fa=$(D>>>0);ga=$(n[l>>2]);do if(F|$(ga*fa)<ea){G=D<<1|(D>>>0<3|(D+-1&D|0)!=0)&1;O=~~$(W($(ea/ga)))>>>0;$h(i,G>>>0<O>>>0?O:G);G=f[o>>2]|0;O=G+-1|0;if(!(O&G)){ha=G;ia=O&J;break}if(G>>>0>J>>>0){ha=G;ia=J}else{ha=G;ia=(J>>>0)%(G>>>0)|0}}else{ha=D;ia=aa}while(0);J=(f[i>>2]|0)+(ia<<2)|0;F=f[J>>2]|0;if(!F){f[H>>2]=f[v>>2];f[v>>2]=H;f[J>>2]=v;J=f[H>>2]|0;if(J|0){r=f[J+4>>2]|0;J=ha+-1|0;if(J&ha)if(r>>>0<ha>>>0)ja=r;else ja=(r>>>0)%(ha>>>0)|0;else ja=r&J;ka=(f[i>>2]|0)+(ja<<2)|0;S=59}}else{f[H>>2]=f[F>>2];ka=F;S=59}if((S|0)==59){S=0;f[ka>>2]=H}f[t>>2]=(f[t>>2]|0)+1;S=61}if((S|0)==61){S=0;F=w;J=f[F>>2]|0;r=un(J|0,f[F+4>>2]|0,A|0,0)|0;kh((f[f[x>>2]>>2]|0)+r|0,j|0,J|0)|0;J=f[k>>2]|0;f[J+(z<<2)>>2]=A;V=J;X=A+1|0;Y=J;Z=J;_=J}J=z+1|0;la=f[m>>2]|0;if(J>>>0>=la>>>0)break;e=V;z=J;A=X;B=Z;C=Y;D=f[o>>2]|0;E=_}if((X|0)==(la|0))ma=Z;else{Z=a+84|0;if(!(b[Z>>0]|0)){_=f[a+72>>2]|0;E=f[a+68>>2]|0;o=E;if((_|0)==(E|0))na=V;else{D=_-E>>2;E=0;do{_=o+(E<<2)|0;f[_>>2]=f[Y+(f[_>>2]<<2)>>2];E=E+1|0}while(E>>>0<D>>>0);na=V}}else{b[Z>>0]=0;Z=a+68|0;V=a+72|0;D=f[V>>2]|0;E=f[Z>>2]|0;Y=D-E>>2;o=E;E=D;if(la>>>0<=Y>>>0)if(la>>>0<Y>>>0?(D=o+(la<<2)|0,(D|0)!=(E|0)):0){f[V>>2]=E+(~((E+-4-D|0)>>>2)<<2);oa=la}else oa=la;else{Ch(Z,la-Y|0,1220);oa=f[m>>2]|0}Y=f[k>>2]|0;if(!oa)na=Y;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[Y+(a<<2)>>2];a=a+1|0}while(a>>>0<oa>>>0);na=Y}}f[m>>2]=X;ma=na}if(!ma)pa=X;else{na=f[p>>2]|0;if((na|0)!=(ma|0))f[p>>2]=na+(~((na+-4-ma|0)>>>2)<<2);Oq(ma);pa=X}}else pa=0;X=f[i+8>>2]|0;if(X|0){ma=X;do{X=ma;ma=f[ma>>2]|0;Oq(X)}while((ma|0)!=0)}ma=f[i>>2]|0;f[i>>2]=0;if(!ma){u=g;return pa|0}Oq(ma);u=g;return pa|0}function Yb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;c=u;u=u+16|0;d=c+8|0;e=c;g=c+4|0;h=a+16|0;i=f[h>>2]|0;j=a+20|0;k=f[j>>2]|0;if((k|0)==(i|0))l=i;else{m=k+(~((k+-4-i|0)>>>2)<<2)|0;f[j>>2]=m;l=m}m=a+24|0;if((l|0)==(f[m>>2]|0)){Ri(h,b);n=f[h>>2]|0;o=f[j>>2]|0}else{f[l>>2]=f[b>>2];k=l+4|0;f[j>>2]=k;n=i;o=k}k=f[a+8>>2]|0;i=(f[k+100>>2]|0)-(f[k+96>>2]|0)|0;k=(i|0)/12|0;if((n|0)==(o|0)){u=c;return 1}n=a+28|0;l=(i|0)>0;i=a+164|0;p=a+12|0;q=a+76|0;r=a+80|0;s=a+72|0;t=a+200|0;v=a+320|0;w=a+152|0;x=a+84|0;y=a+324|0;z=a+292|0;A=a+304|0;B=a+316|0;C=a+328|0;D=a+336|0;E=a+332|0;F=a+168|0;G=a+140|0;H=a+120|0;I=o;do{o=f[I+-4>>2]|0;f[b>>2]=o;a:do if((o|0)!=-1?(J=(o>>>0)/3|0,K=f[n>>2]|0,(f[K+(J>>>5<<2)>>2]&1<<(J&31)|0)==0):0){if(l){J=0;L=K;b:while(1){K=J+1|0;f[i>>2]=(f[i>>2]|0)+1;M=f[b>>2]|0;N=(M|0)==-1?-1:(M>>>0)/3|0;M=L+(N>>>5<<2)|0;f[M>>2]=1<<(N&31)|f[M>>2];M=f[q>>2]|0;if((M|0)==(f[r>>2]|0))Ri(s,b);else{f[M>>2]=f[b>>2];f[q>>2]=M+4}f[v>>2]=f[b>>2];M=f[b>>2]|0;if((M|0)==-1)O=-1;else O=f[(f[f[p>>2]>>2]|0)+(M<<2)>>2]|0;P=(f[(f[w>>2]|0)+(O<<2)>>2]|0)!=-1;Q=(f[x>>2]|0)+(O>>>5<<2)|0;R=1<<(O&31);S=f[Q>>2]|0;do if(!(S&R)){f[Q>>2]=S|R;if(P){T=f[b>>2]|0;U=38;break}f[y>>2]=(f[y>>2]|0)+1;V=f[v>>2]|0;W=V+1|0;do if((V|0)!=-1){X=((W>>>0)%3|0|0)==0?V+-2|0:W;if(!((V>>>0)%3|0)){Y=V+2|0;Z=X;break}else{Y=V+-1|0;Z=X;break}}else{Y=-1;Z=-1}while(0);V=f[z>>2]|0;W=f[A>>2]|0;X=W+(f[V+(Z<<2)>>2]<<2)|0;_=f[X>>2]|0;f[X>>2]=_+-1;X=W+(f[V+(Y<<2)>>2]<<2)|0;f[X>>2]=(f[X>>2]|0)+-1;X=f[B>>2]|0;if((X|0)!=-1){V=f[C>>2]|0;if((_|0)<(V|0))$=V;else{W=f[E>>2]|0;$=(_|0)>(W|0)?W:_}_=$-V|0;V=f[D>>2]|0;W=f[3724+(X<<2)>>2]|0;f[d>>2]=W;X=V+(_*12|0)+4|0;aa=f[X>>2]|0;if(aa>>>0<(f[V+(_*12|0)+8>>2]|0)>>>0){f[aa>>2]=W;f[X>>2]=aa+4}else Ri(V+(_*12|0)|0,d)}f[B>>2]=0;_=f[b>>2]|0;V=_+1|0;if((_|0)!=-1?(aa=((V>>>0)%3|0|0)==0?_+-2|0:V,(aa|0)!=-1):0)ba=f[(f[(f[p>>2]|0)+12>>2]|0)+(aa<<2)>>2]|0;else ba=-1;f[b>>2]=ba}else{T=M;U=38}while(0);if((U|0)==38){U=0;M=T+1|0;if((T|0)==-1){U=43;break}R=((M>>>0)%3|0|0)==0?T+-2|0:M;if((R|0)==-1)ca=-1;else ca=f[(f[(f[p>>2]|0)+12>>2]|0)+(R<<2)>>2]|0;f[e>>2]=ca;R=(((T>>>0)%3|0|0)==0?2:-1)+T|0;if((R|0)==-1)da=-1;else da=f[(f[(f[p>>2]|0)+12>>2]|0)+(R<<2)>>2]|0;R=(ca|0)==-1;S=R?-1:(ca>>>0)/3|0;ea=(da|0)==-1;fa=ea?-1:(da>>>0)/3|0;Q=((M>>>0)%3|0|0)==0?T+-2|0:M;if(((Q|0)!=-1?(M=f[(f[p>>2]|0)+12>>2]|0,aa=f[M+(Q<<2)>>2]|0,(aa|0)!=-1):0)?(Q=(aa>>>0)/3|0,aa=f[n>>2]|0,(f[aa+(Q>>>5<<2)>>2]&1<<(Q&31)|0)==0):0){Q=(((T>>>0)%3|0|0)==0?2:-1)+T|0;do if((Q|0)!=-1){V=f[M+(Q<<2)>>2]|0;if((V|0)==-1)break;_=(V>>>0)/3|0;if(!(f[aa+(_>>>5<<2)>>2]&1<<(_&31))){U=62;break b}}while(0);if(!ea)xf(a,f[i>>2]|0,N,0,fa);nd(t,3);ga=f[e>>2]|0}else{if(!R){xf(a,f[i>>2]|0,N,1,S);aa=f[b>>2]|0;if((aa|0)==-1){U=52;break}else ha=aa}else ha=T;aa=(((ha>>>0)%3|0|0)==0?2:-1)+ha|0;if((aa|0)==-1){U=52;break}Q=f[(f[(f[p>>2]|0)+12>>2]|0)+(aa<<2)>>2]|0;if((Q|0)==-1){U=52;break}aa=(Q>>>0)/3|0;if(f[(f[n>>2]|0)+(aa>>>5<<2)>>2]&1<<(aa&31)|0){U=52;break}nd(t,5);ga=da}f[b>>2]=ga}if((K|0)>=(k|0))break a;J=K;L=f[n>>2]|0}do if((U|0)==43){U=0;f[e>>2]=-1;U=54}else if((U|0)==52){U=0;if(ea)U=54;else{xf(a,f[i>>2]|0,N,0,fa);U=54}}else if((U|0)==62){U=0;nd(t,1);f[F>>2]=(f[F>>2]|0)+1;if(P?(L=f[(f[w>>2]|0)+(O<<2)>>2]|0,(1<<(L&31)&f[(f[G>>2]|0)+(L>>>5<<2)>>2]|0)==0):0){f[g>>2]=f[b>>2];f[d>>2]=f[g>>2];Pe(a,d,0)|0}L=f[i>>2]|0;f[d>>2]=N;J=je(H,d)|0;f[J>>2]=L;L=f[j>>2]|0;f[L+-4>>2]=da;if((L|0)==(f[m>>2]|0)){Ri(h,e);break}else{f[L>>2]=f[e>>2];f[j>>2]=L+4;break}}while(0);if((U|0)==54){U=0;nd(t,7);f[j>>2]=(f[j>>2]|0)+-4}}}else U=11;while(0);if((U|0)==11){U=0;f[j>>2]=I+-4}I=f[j>>2]|0}while((f[h>>2]|0)!=(I|0));u=c;return 1}function Zb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;c=u;u=u+16|0;d=c+8|0;e=c;g=f[b>>2]|0;if((g|0)==-1){u=c;return}h=(g>>>0)/3|0;i=a+12|0;if(f[(f[i>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0){u=c;return}h=a+56|0;j=f[h>>2]|0;k=a+60|0;l=f[k>>2]|0;if((l|0)==(j|0))m=j;else{n=l+(~((l+-4-j|0)>>>2)<<2)|0;f[k>>2]=n;m=n}n=a+64|0;if((m|0)==(f[n>>2]|0))Ri(h,b);else{f[m>>2]=g;f[k>>2]=m+4}m=f[a>>2]|0;g=f[b>>2]|0;j=g+1|0;do if((g|0)!=-1){l=f[m+28>>2]|0;o=f[l+((((j>>>0)%3|0|0)==0?g+-2|0:j)<<2)>>2]|0;if(!((g>>>0)%3|0)){p=o;q=g+2|0;r=l;break}else{p=o;q=g+-1|0;r=l;break}}else{l=f[m+28>>2]|0;p=f[l+-4>>2]|0;q=-1;r=l}while(0);m=f[r+(q<<2)>>2]|0;q=a+24|0;r=f[q>>2]|0;g=r+(p>>>5<<2)|0;j=1<<(p&31);l=f[g>>2]|0;if(!(l&j)){f[g>>2]=l|j;j=f[b>>2]|0;l=j+1|0;if((j|0)==-1)s=-1;else s=((l>>>0)%3|0|0)==0?j+-2|0:l;f[e>>2]=s;l=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((s>>>0)/3|0)*12|0)+(((s>>>0)%3|0)<<2)>>2]|0;s=f[a+48>>2]|0;f[d>>2]=l;j=f[s+4>>2]|0;s=j+4|0;g=f[s>>2]|0;if((g|0)==(f[j+8>>2]|0))Ri(j,d);else{f[g>>2]=l;f[s>>2]=g+4}g=a+40|0;s=f[g>>2]|0;l=s+4|0;j=f[l>>2]|0;if((j|0)==(f[s+8>>2]|0)){Ri(s,e);t=f[g>>2]|0}else{f[j>>2]=f[e>>2];f[l>>2]=j+4;t=s}s=t+24|0;f[(f[t+12>>2]|0)+(p<<2)>>2]=f[s>>2];f[s>>2]=(f[s>>2]|0)+1;v=f[q>>2]|0}else v=r;r=v+(m>>>5<<2)|0;v=1<<(m&31);s=f[r>>2]|0;if(!(s&v)){f[r>>2]=s|v;v=f[b>>2]|0;do if((v|0)!=-1)if(!((v>>>0)%3|0)){w=v+2|0;break}else{w=v+-1|0;break}else w=-1;while(0);f[e>>2]=w;v=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((w>>>0)/3|0)*12|0)+(((w>>>0)%3|0)<<2)>>2]|0;w=f[a+48>>2]|0;f[d>>2]=v;s=f[w+4>>2]|0;w=s+4|0;r=f[w>>2]|0;if((r|0)==(f[s+8>>2]|0))Ri(s,d);else{f[r>>2]=v;f[w>>2]=r+4}r=a+40|0;w=f[r>>2]|0;v=w+4|0;s=f[v>>2]|0;if((s|0)==(f[w+8>>2]|0)){Ri(w,e);x=f[r>>2]|0}else{f[s>>2]=f[e>>2];f[v>>2]=s+4;x=w}w=x+24|0;f[(f[x+12>>2]|0)+(m<<2)>>2]=f[w>>2];f[w>>2]=(f[w>>2]|0)+1}w=f[h>>2]|0;m=f[k>>2]|0;if((w|0)==(m|0)){u=c;return}x=a+44|0;s=a+48|0;v=a+40|0;r=m;m=w;while(1){w=f[r+-4>>2]|0;f[b>>2]=w;p=(w>>>0)/3|0;if((w|0)!=-1?(w=f[i>>2]|0,(f[w+(p>>>5<<2)>>2]&1<<(p&31)|0)==0):0){t=p;p=w;w=f[a>>2]|0;a:while(1){j=p+(t>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(t&31);j=f[b>>2]|0;l=f[(f[w+28>>2]|0)+(j<<2)>>2]|0;g=(f[q>>2]|0)+(l>>>5<<2)|0;o=1<<(l&31);y=f[g>>2]|0;if(!(o&y)){z=f[(f[w+40>>2]|0)+(l<<2)>>2]|0;if((z|0)==-1)A=1;else{B=f[(f[f[w+64>>2]>>2]|0)+(z<<2)>>2]|0;A=(1<<(B&31)&f[(f[w+12>>2]|0)+(B>>>5<<2)>>2]|0)!=0}f[g>>2]=y|o;o=f[b>>2]|0;f[e>>2]=o;y=f[(f[(f[x>>2]|0)+96>>2]|0)+(((o>>>0)/3|0)*12|0)+(((o>>>0)%3|0)<<2)>>2]|0;o=f[s>>2]|0;f[d>>2]=y;g=f[o+4>>2]|0;o=g+4|0;B=f[o>>2]|0;if((B|0)==(f[g+8>>2]|0))Ri(g,d);else{f[B>>2]=y;f[o>>2]=B+4}B=f[v>>2]|0;o=B+4|0;y=f[o>>2]|0;if((y|0)==(f[B+8>>2]|0)){Ri(B,e);C=f[v>>2]|0}else{f[y>>2]=f[e>>2];f[o>>2]=y+4;C=B}B=C+24|0;f[(f[C+12>>2]|0)+(l<<2)>>2]=f[B>>2];f[B>>2]=(f[B>>2]|0)+1;B=f[a>>2]|0;l=f[b>>2]|0;if(A){D=l;E=B;F=57}else{y=l+1|0;do if((l|0)==-1)G=-1;else{o=((y>>>0)%3|0|0)==0?l+-2|0:y;if((o|0)==-1){G=-1;break}if(f[(f[B>>2]|0)+(o>>>5<<2)>>2]&1<<(o&31)|0){G=-1;break}G=f[(f[(f[B+64>>2]|0)+12>>2]|0)+(o<<2)>>2]|0}while(0);f[b>>2]=G;H=(G>>>0)/3|0;I=B}}else{D=j;E=w;F=57}if((F|0)==57){F=0;y=D+1|0;if((D|0)==-1){F=58;break}l=((y>>>0)%3|0|0)==0?D+-2|0:y;if((l|0)!=-1?(f[(f[E>>2]|0)+(l>>>5<<2)>>2]&1<<(l&31)|0)==0:0)J=f[(f[(f[E+64>>2]|0)+12>>2]|0)+(l<<2)>>2]|0;else J=-1;f[d>>2]=J;l=(((D>>>0)%3|0|0)==0?2:-1)+D|0;if((l|0)!=-1?(f[(f[E>>2]|0)+(l>>>5<<2)>>2]&1<<(l&31)|0)==0:0)K=f[(f[(f[E+64>>2]|0)+12>>2]|0)+(l<<2)>>2]|0;else K=-1;l=(J|0)==-1;y=(J>>>0)/3|0;o=l?-1:y;g=(K|0)==-1;z=(K>>>0)/3|0;L=g?-1:z;do if(!l){M=f[i>>2]|0;if(f[M+(o>>>5<<2)>>2]&1<<(o&31)|0){F=67;break}if(g){N=J;O=y;break}if(!(f[M+(L>>>5<<2)>>2]&1<<(L&31))){F=72;break a}else{N=J;O=y}}else F=67;while(0);if((F|0)==67){F=0;if(g){F=69;break}if(!(f[(f[i>>2]|0)+(L>>>5<<2)>>2]&1<<(L&31))){N=K;O=z}else{F=69;break}}f[b>>2]=N;H=O;I=E}t=H;p=f[i>>2]|0;w=I}do if((F|0)==58){F=0;f[d>>2]=-1;F=69}else if((F|0)==72){F=0;w=f[k>>2]|0;f[w+-4>>2]=K;if((w|0)==(f[n>>2]|0)){Ri(h,d);P=f[k>>2]|0;break}else{f[w>>2]=f[d>>2];p=w+4|0;f[k>>2]=p;P=p;break}}while(0);if((F|0)==69){F=0;p=(f[k>>2]|0)+-4|0;f[k>>2]=p;P=p}Q=f[h>>2]|0;R=P}else{p=r+-4|0;f[k>>2]=p;Q=m;R=p}if((Q|0)==(R|0))break;else{r=R;m=Q}}u=c;return}function _b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=Oa,K=Oa,L=Oa,M=0,N=0,O=0,P=0;e=u;u=u+64|0;g=e+40|0;i=e+16|0;j=e;k=Id(a,c)|0;if(k|0){f[i>>2]=k;f[g>>2]=f[i>>2];lf(a,g)|0}f[j>>2]=0;k=j+4|0;f[k>>2]=0;f[j+8>>2]=0;Fi(j,8);l=d;d=l;m=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;d=l+4|0;l=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;d=f[j>>2]|0;o=d;b[o>>0]=m;b[o+1>>0]=m>>8;b[o+2>>0]=m>>16;b[o+3>>0]=m>>24;m=d+4|0;b[m>>0]=l;b[m+1>>0]=l>>8;b[m+2>>0]=l>>16;b[m+3>>0]=l>>24;pj(i,c);c=i+12|0;f[c>>2]=0;l=i+16|0;f[l>>2]=0;f[i+20>>2]=0;m=f[k>>2]|0;d=f[j>>2]|0;o=m-d|0;if(!o){p=d;q=m;r=0}else{Fi(c,o);p=f[j>>2]|0;q=f[k>>2]|0;r=f[c>>2]|0}kh(r|0,p|0,q-p|0)|0;p=i+11|0;q=b[p>>0]|0;r=q<<24>>24<0;c=r?f[i>>2]|0:i;o=r?f[i+4>>2]|0:q&255;if(o>>>0>3){q=c;r=o;m=o;while(1){d=X(h[q>>0]|h[q+1>>0]<<8|h[q+2>>0]<<16|h[q+3>>0]<<24,1540483477)|0;r=(X(d>>>24^d,1540483477)|0)^(X(r,1540483477)|0);m=m+-4|0;if(m>>>0<=3)break;else q=q+4|0}q=o+-4|0;m=q&-4;s=q-m|0;t=c+(m+4)|0;v=r}else{s=o;t=c;v=o}switch(s|0){case 3:{w=h[t+2>>0]<<16^v;x=10;break}case 2:{w=v;x=10;break}case 1:{y=v;x=11;break}default:z=v}if((x|0)==10){y=h[t+1>>0]<<8^w;x=11}if((x|0)==11)z=X(y^h[t>>0],1540483477)|0;t=X(z>>>13^z,1540483477)|0;z=t>>>15^t;t=a+4|0;y=f[t>>2]|0;w=(y|0)==0;a:do if(!w){v=y+-1|0;s=(v&y|0)==0;if(!s)if(z>>>0<y>>>0)A=z;else A=(z>>>0)%(y>>>0)|0;else A=z&v;r=f[(f[a>>2]|0)+(A<<2)>>2]|0;if((r|0)!=0?(m=f[r>>2]|0,(m|0)!=0):0){r=(o|0)==0;if(s){if(r){s=m;while(1){q=f[s+4>>2]|0;if(!((q|0)==(z|0)|(q&v|0)==(A|0))){B=A;x=52;break a}q=b[s+8+11>>0]|0;if(!((q<<24>>24<0?f[s+12>>2]|0:q&255)|0))break a;s=f[s>>2]|0;if(!s){B=A;x=52;break a}}}else C=m;while(1){s=f[C+4>>2]|0;if(!((s|0)==(z|0)|(s&v|0)==(A|0))){B=A;x=52;break a}s=C+8|0;q=b[s+11>>0]|0;d=q<<24>>24<0;D=q&255;do if(((d?f[C+12>>2]|0:D)|0)==(o|0)){q=f[s>>2]|0;if(d)if(!(Vk(q,c,o)|0))break a;else break;if((b[c>>0]|0)==(q&255)<<24>>24){q=s;E=D;F=c;do{E=E+-1|0;q=q+1|0;if(!E)break a;F=F+1|0}while((b[q>>0]|0)==(b[F>>0]|0))}}while(0);C=f[C>>2]|0;if(!C){B=A;x=52;break a}}}if(r){v=m;while(1){D=f[v+4>>2]|0;if((D|0)!=(z|0)){if(D>>>0<y>>>0)G=D;else G=(D>>>0)%(y>>>0)|0;if((G|0)!=(A|0)){B=A;x=52;break a}}D=b[v+8+11>>0]|0;if(!((D<<24>>24<0?f[v+12>>2]|0:D&255)|0))break a;v=f[v>>2]|0;if(!v){B=A;x=52;break a}}}else H=m;while(1){v=f[H+4>>2]|0;if((v|0)!=(z|0)){if(v>>>0<y>>>0)I=v;else I=(v>>>0)%(y>>>0)|0;if((I|0)!=(A|0)){B=A;x=52;break a}}v=H+8|0;r=b[v+11>>0]|0;D=r<<24>>24<0;s=r&255;do if(((D?f[H+12>>2]|0:s)|0)==(o|0)){r=f[v>>2]|0;if(D)if(!(Vk(r,c,o)|0))break a;else break;if((b[c>>0]|0)==(r&255)<<24>>24){r=v;d=s;F=c;do{d=d+-1|0;r=r+1|0;if(!d)break a;F=F+1|0}while((b[r>>0]|0)==(b[F>>0]|0))}}while(0);H=f[H>>2]|0;if(!H){B=A;x=52;break}}}else{B=A;x=52}}else{B=0;x=52}while(0);if((x|0)==52){oi(g,a,z,i);x=a+12|0;J=$(((f[x>>2]|0)+1|0)>>>0);K=$(y>>>0);L=$(n[a+16>>2]);do if(w|$(L*K)<J){A=y<<1|(y>>>0<3|(y+-1&y|0)!=0)&1;H=~~$(W($(J/L)))>>>0;ei(a,A>>>0<H>>>0?H:A);A=f[t>>2]|0;H=A+-1|0;if(!(H&A)){M=A;N=H&z;break}if(z>>>0<A>>>0){M=A;N=z}else{M=A;N=(z>>>0)%(A>>>0)|0}}else{M=y;N=B}while(0);B=f[(f[a>>2]|0)+(N<<2)>>2]|0;if(!B){y=a+8|0;f[f[g>>2]>>2]=f[y>>2];f[y>>2]=f[g>>2];f[(f[a>>2]|0)+(N<<2)>>2]=y;y=f[g>>2]|0;N=f[y>>2]|0;if(!N)O=g;else{z=f[N+4>>2]|0;N=M+-1|0;if(N&M)if(z>>>0<M>>>0)P=z;else P=(z>>>0)%(M>>>0)|0;else P=z&N;f[(f[a>>2]|0)+(P<<2)>>2]=y;O=g}}else{f[f[g>>2]>>2]=f[B>>2];f[B>>2]=f[g>>2];O=g}f[x>>2]=(f[x>>2]|0)+1;f[O>>2]=0}O=f[i+12>>2]|0;if(O|0){if((f[l>>2]|0)!=(O|0))f[l>>2]=O;Oq(O)}if((b[p>>0]|0)<0)Oq(f[i>>2]|0);i=f[j>>2]|0;if(!i){u=e;return}if((f[k>>2]|0)!=(i|0))f[k>>2]=i;Oq(i);u=e;return}function $b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;e=u;u=u+96|0;g=e+92|0;h=e+88|0;i=e+72|0;j=e+48|0;k=e+24|0;l=e;m=a+16|0;n=f[m>>2]|0;o=f[c>>2]|0;f[i>>2]=n;f[i+4>>2]=o;c=i+8|0;f[c>>2]=o;b[i+12>>0]=1;p=(o|0)==-1;if(p)q=-1;else q=f[(f[n>>2]|0)+(o<<2)>>2]|0;n=a+20|0;r=f[n>>2]|0;s=f[r>>2]|0;if((f[r+4>>2]|0)-s>>2>>>0<=q>>>0)aq(r);r=a+8|0;t=f[(f[r>>2]|0)+(f[s+(q<<2)>>2]<<2)>>2]|0;q=a+4|0;s=f[q>>2]|0;if(!(b[s+84>>0]|0))v=f[(f[s+68>>2]|0)+(t<<2)>>2]|0;else v=t;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[h>>2]=v;v=b[s+24>>0]|0;f[g>>2]=f[h>>2];vb(s,g,v,j)|0;v=a+28|0;a=(f[v>>2]|0)==0;a:do if(!p){s=k+8|0;t=j+8|0;w=k+16|0;x=j+16|0;y=l+8|0;z=l+16|0;A=o;B=o;C=0;D=0;E=0;F=0;G=0;H=0;J=a;K=o;while(1){do if(J){L=K+1|0;if((K|0)==-1){M=A;N=-1;O=-1;P=-1;break}Q=((L>>>0)%3|0|0)==0?K+-2|0:L;if((A|0)!=-1)if(!((A>>>0)%3|0)){R=A;S=A+2|0;T=Q;U=A;V=19;break}else{R=A;S=A+-1|0;T=Q;U=A;V=19;break}else{R=-1;S=-1;T=Q;U=-1;V=19}}else{Q=B+1|0;L=((Q>>>0)%3|0|0)==0?B+-2|0:Q;if(!((B>>>0)%3|0)){R=A;S=B+2|0;T=L;U=K;V=19;break}else{R=A;S=B+-1|0;T=L;U=K;V=19;break}}while(0);if((V|0)==19){V=0;if((T|0)==-1){M=R;N=-1;O=S;P=U}else{M=R;N=f[(f[f[m>>2]>>2]|0)+(T<<2)>>2]|0;O=S;P=U}}W=f[n>>2]|0;L=f[W>>2]|0;if((f[W+4>>2]|0)-L>>2>>>0<=N>>>0){V=22;break}Q=f[(f[r>>2]|0)+(f[L+(N<<2)>>2]<<2)>>2]|0;L=f[q>>2]|0;if(!(b[L+84>>0]|0))X=f[(f[L+68>>2]|0)+(Q<<2)>>2]|0;else X=Q;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[h>>2]=X;Q=b[L+24>>0]|0;f[g>>2]=f[h>>2];vb(L,g,Q,k)|0;if((O|0)==-1)Y=-1;else Y=f[(f[f[m>>2]>>2]|0)+(O<<2)>>2]|0;Z=f[n>>2]|0;Q=f[Z>>2]|0;if((f[Z+4>>2]|0)-Q>>2>>>0<=Y>>>0){V=28;break}L=f[(f[r>>2]|0)+(f[Q+(Y<<2)>>2]<<2)>>2]|0;Q=f[q>>2]|0;if(!(b[Q+84>>0]|0))_=f[(f[Q+68>>2]|0)+(L<<2)>>2]|0;else _=L;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;f[h>>2]=_;L=b[Q+24>>0]|0;f[g>>2]=f[h>>2];vb(Q,g,L,l)|0;L=k;Q=j;$=f[Q>>2]|0;aa=f[Q+4>>2]|0;Q=Xn(f[L>>2]|0,f[L+4>>2]|0,$|0,aa|0)|0;L=I;ba=s;ca=t;da=f[ca>>2]|0;ea=f[ca+4>>2]|0;ca=Xn(f[ba>>2]|0,f[ba+4>>2]|0,da|0,ea|0)|0;ba=I;fa=w;ga=x;ha=f[ga>>2]|0;ia=f[ga+4>>2]|0;ga=Xn(f[fa>>2]|0,f[fa+4>>2]|0,ha|0,ia|0)|0;fa=I;ja=l;ka=Xn(f[ja>>2]|0,f[ja+4>>2]|0,$|0,aa|0)|0;aa=I;$=y;ja=Xn(f[$>>2]|0,f[$+4>>2]|0,da|0,ea|0)|0;ea=I;da=z;$=Xn(f[da>>2]|0,f[da+4>>2]|0,ha|0,ia|0)|0;ia=I;ha=un($|0,ia|0,ca|0,ba|0)|0;da=I;la=un(ja|0,ea|0,ga|0,fa|0)|0;ma=I;na=un(ka|0,aa|0,ga|0,fa|0)|0;fa=I;ga=un($|0,ia|0,Q|0,L|0)|0;ia=I;$=un(ja|0,ea|0,Q|0,L|0)|0;L=I;Q=un(ka|0,aa|0,ca|0,ba|0)|0;ba=I;ca=Xn(C|0,D|0,la|0,ma|0)|0;ma=Vn(ca|0,I|0,ha|0,da|0)|0;da=I;ha=Vn(na|0,fa|0,E|0,F|0)|0;fa=Xn(ha|0,I|0,ga|0,ia|0)|0;ia=I;ga=Xn(G|0,H|0,Q|0,ba|0)|0;ba=Vn(ga|0,I|0,$|0,L|0)|0;L=I;Hh(i);B=f[c>>2]|0;$=(f[v>>2]|0)==0;if((B|0)==-1){oa=$;pa=da;qa=ma;ra=ia;sa=fa;ta=L;ua=ba;break a}else{A=M;C=ma;D=da;E=fa;F=ia;G=ba;H=L;J=$;K=P}}if((V|0)==22)aq(W);else if((V|0)==28)aq(Z)}else{oa=a;pa=0;qa=0;ra=0;sa=0;ta=0;ua=0}while(0);a=(pa|0)>-1|(pa|0)==-1&qa>>>0>4294967295;Z=Xn(0,0,qa|0,pa|0)|0;V=a?pa:I;W=(ra|0)>-1|(ra|0)==-1&sa>>>0>4294967295;P=Xn(0,0,sa|0,ra|0)|0;M=W?ra:I;v=(ta|0)>-1|(ta|0)==-1&ua>>>0>4294967295;c=Xn(0,0,ua|0,ta|0)|0;i=Vn((W?sa:P)|0,M|0,(v?ua:c)|0,(v?ta:I)|0)|0;v=Vn(i|0,I|0,(a?qa:Z)|0,V|0)|0;V=I;if(oa){if((v|0)<=536870912){va=qa;wa=sa;xa=ua;f[d>>2]=va;ya=d+4|0;f[ya>>2]=wa;za=d+8|0;f[za>>2]=xa;u=e;return}oa=Yn(v|0,V|0,29)|0;Z=oa&7;oa=Ik(qa|0,pa|0,Z|0,0)|0;a=Ik(sa|0,ra|0,Z|0,0)|0;i=Ik(ua|0,ta|0,Z|0,0)|0;va=oa;wa=a;xa=i;f[d>>2]=va;ya=d+4|0;f[ya>>2]=wa;za=d+8|0;f[za>>2]=xa;u=e;return}else{if(!((V|0)>0|(V|0)==0&v>>>0>536870912)){va=qa;wa=sa;xa=ua;f[d>>2]=va;ya=d+4|0;f[ya>>2]=wa;za=d+8|0;f[za>>2]=xa;u=e;return}i=Yn(v|0,V|0,29)|0;V=I;v=Ik(qa|0,pa|0,i|0,V|0)|0;pa=Ik(sa|0,ra|0,i|0,V|0)|0;ra=Ik(ua|0,ta|0,i|0,V|0)|0;va=v;wa=pa;xa=ra;f[d>>2]=va;ya=d+4|0;f[ya>>2]=wa;za=d+8|0;f[za>>2]=xa;u=e;return}}function ac(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=Oa,M=Oa,N=Oa,O=0,P=0,Q=0,R=0;e=u;u=u+64|0;g=e+40|0;i=e+16|0;j=e;k=Id(a,c)|0;if(k|0){f[i>>2]=k;f[g>>2]=f[i>>2];lf(a,g)|0}f[j>>2]=0;k=j+4|0;f[k>>2]=0;f[j+8>>2]=0;l=d+11|0;m=b[l>>0]|0;o=d+4|0;p=f[o>>2]|0;q=m<<24>>24<0?p:m&255;if(!q){r=m;s=p;t=0}else{Fi(j,q);r=b[l>>0]|0;s=f[o>>2]|0;t=f[j>>2]|0}o=r<<24>>24<0;kh(t|0,(o?f[d>>2]|0:d)|0,(o?s:r&255)|0)|0;pj(i,c);c=i+12|0;f[c>>2]=0;r=i+16|0;f[r>>2]=0;f[i+20>>2]=0;s=f[k>>2]|0;o=f[j>>2]|0;d=s-o|0;if(!d){v=o;w=s;x=0}else{Fi(c,d);v=f[j>>2]|0;w=f[k>>2]|0;x=f[c>>2]|0}kh(x|0,v|0,w-v|0)|0;v=i+11|0;w=b[v>>0]|0;x=w<<24>>24<0;c=x?f[i>>2]|0:i;d=x?f[i+4>>2]|0:w&255;if(d>>>0>3){w=c;x=d;s=d;while(1){o=X(h[w>>0]|h[w+1>>0]<<8|h[w+2>>0]<<16|h[w+3>>0]<<24,1540483477)|0;x=(X(o>>>24^o,1540483477)|0)^(X(x,1540483477)|0);s=s+-4|0;if(s>>>0<=3)break;else w=w+4|0}w=d+-4|0;s=w&-4;y=w-s|0;z=c+(s+4)|0;A=x}else{y=d;z=c;A=d}switch(y|0){case 3:{B=h[z+2>>0]<<16^A;C=12;break}case 2:{B=A;C=12;break}case 1:{D=A;C=13;break}default:E=A}if((C|0)==12){D=h[z+1>>0]<<8^B;C=13}if((C|0)==13)E=X(D^h[z>>0],1540483477)|0;z=X(E>>>13^E,1540483477)|0;E=z>>>15^z;z=a+4|0;D=f[z>>2]|0;B=(D|0)==0;a:do if(!B){A=D+-1|0;y=(A&D|0)==0;if(!y)if(E>>>0<D>>>0)F=E;else F=(E>>>0)%(D>>>0)|0;else F=E&A;x=f[(f[a>>2]|0)+(F<<2)>>2]|0;if((x|0)!=0?(s=f[x>>2]|0,(s|0)!=0):0){x=(d|0)==0;if(y){if(x){y=s;while(1){w=f[y+4>>2]|0;if(!((w|0)==(E|0)|(w&A|0)==(F|0))){G=F;C=54;break a}w=b[y+8+11>>0]|0;if(!((w<<24>>24<0?f[y+12>>2]|0:w&255)|0))break a;y=f[y>>2]|0;if(!y){G=F;C=54;break a}}}else H=s;while(1){y=f[H+4>>2]|0;if(!((y|0)==(E|0)|(y&A|0)==(F|0))){G=F;C=54;break a}y=H+8|0;w=b[y+11>>0]|0;o=w<<24>>24<0;t=w&255;do if(((o?f[H+12>>2]|0:t)|0)==(d|0)){w=f[y>>2]|0;if(o)if(!(Vk(w,c,d)|0))break a;else break;if((b[c>>0]|0)==(w&255)<<24>>24){w=y;l=t;q=c;do{l=l+-1|0;w=w+1|0;if(!l)break a;q=q+1|0}while((b[w>>0]|0)==(b[q>>0]|0))}}while(0);H=f[H>>2]|0;if(!H){G=F;C=54;break a}}}if(x){A=s;while(1){t=f[A+4>>2]|0;if((t|0)!=(E|0)){if(t>>>0<D>>>0)I=t;else I=(t>>>0)%(D>>>0)|0;if((I|0)!=(F|0)){G=F;C=54;break a}}t=b[A+8+11>>0]|0;if(!((t<<24>>24<0?f[A+12>>2]|0:t&255)|0))break a;A=f[A>>2]|0;if(!A){G=F;C=54;break a}}}else J=s;while(1){A=f[J+4>>2]|0;if((A|0)!=(E|0)){if(A>>>0<D>>>0)K=A;else K=(A>>>0)%(D>>>0)|0;if((K|0)!=(F|0)){G=F;C=54;break a}}A=J+8|0;x=b[A+11>>0]|0;t=x<<24>>24<0;y=x&255;do if(((t?f[J+12>>2]|0:y)|0)==(d|0)){x=f[A>>2]|0;if(t)if(!(Vk(x,c,d)|0))break a;else break;if((b[c>>0]|0)==(x&255)<<24>>24){x=A;o=y;q=c;do{o=o+-1|0;x=x+1|0;if(!o)break a;q=q+1|0}while((b[x>>0]|0)==(b[q>>0]|0))}}while(0);J=f[J>>2]|0;if(!J){G=F;C=54;break}}}else{G=F;C=54}}else{G=0;C=54}while(0);if((C|0)==54){oi(g,a,E,i);C=a+12|0;L=$(((f[C>>2]|0)+1|0)>>>0);M=$(D>>>0);N=$(n[a+16>>2]);do if(B|$(N*M)<L){F=D<<1|(D>>>0<3|(D+-1&D|0)!=0)&1;J=~~$(W($(L/N)))>>>0;ei(a,F>>>0<J>>>0?J:F);F=f[z>>2]|0;J=F+-1|0;if(!(J&F)){O=F;P=J&E;break}if(E>>>0<F>>>0){O=F;P=E}else{O=F;P=(E>>>0)%(F>>>0)|0}}else{O=D;P=G}while(0);G=f[(f[a>>2]|0)+(P<<2)>>2]|0;if(!G){D=a+8|0;f[f[g>>2]>>2]=f[D>>2];f[D>>2]=f[g>>2];f[(f[a>>2]|0)+(P<<2)>>2]=D;D=f[g>>2]|0;P=f[D>>2]|0;if(!P)Q=g;else{E=f[P+4>>2]|0;P=O+-1|0;if(P&O)if(E>>>0<O>>>0)R=E;else R=(E>>>0)%(O>>>0)|0;else R=E&P;f[(f[a>>2]|0)+(R<<2)>>2]=D;Q=g}}else{f[f[g>>2]>>2]=f[G>>2];f[G>>2]=f[g>>2];Q=g}f[C>>2]=(f[C>>2]|0)+1;f[Q>>2]=0}Q=f[i+12>>2]|0;if(Q|0){if((f[r>>2]|0)!=(Q|0))f[r>>2]=Q;Oq(Q)}if((b[v>>0]|0)<0)Oq(f[i>>2]|0);i=f[j>>2]|0;if(!i){u=e;return}if((f[k>>2]|0)!=(i|0))f[k>>2]=i;Oq(i);u=e;return}function bc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;d=u;u=u+192|0;e=d+152|0;g=d+144|0;h=d+72|0;i=d;j=d+112|0;k=d+108|0;l=d+104|0;m=a+352|0;if(b[m>>0]|0?(n=Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0,((f[n+12>>2]|0)-(f[n+8>>2]|0)|0)>0):0){n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+8|0;o=f[f[n>>2]>>2]|0;f[e>>2]=c;n=o+4|0;p=o+8|0;q=f[p>>2]|0;if((q|0)==(f[o+12>>2]|0))Ri(n,e);else{f[q>>2]=c;f[p>>2]=q+4}q=f[e>>2]|0;r=o+16|0;s=o+20|0;o=f[s>>2]|0;t=f[r>>2]|0;v=o-t>>2;w=t;if((q|0)<(v|0)){x=w;y=q}else{t=q+1|0;f[g>>2]=-1;z=o;if(t>>>0<=v>>>0)if(t>>>0<v>>>0?(o=w+(t<<2)|0,(o|0)!=(z|0)):0){f[s>>2]=z+(~((z+-4-o|0)>>>2)<<2);A=q;B=w}else{A=q;B=w}else{Ch(r,t-v|0,g);A=f[e>>2]|0;B=f[r>>2]|0}x=B;y=A}f[x+(y<<2)>>2]=((f[p>>2]|0)-(f[n>>2]|0)>>2)+-1;C=1;u=d;return C|0}n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+52|0;p=f[(f[(f[n>>2]|0)+84>>2]|0)+(c<<2)>>2]|0;n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+4|0;y=f[(f[(f[n>>2]|0)+8>>2]|0)+(c<<2)>>2]|0;f[g>>2]=-1;n=a+172|0;x=f[a+176>>2]|0;A=f[n>>2]|0;B=A;a:do if((x|0)==(A|0))D=-1;else{r=(x-A|0)/136|0;v=0;while(1){if((f[B+(v*136|0)>>2]|0)==(c|0))break;t=v+1|0;if(t>>>0<r>>>0)v=t;else{D=-1;break a}}f[g>>2]=v;D=v}while(0);b:do if(!(b[m>>0]|0)){A=(f[y+56>>2]|0)==0;do if(!((p|0)==0|A)){if((p|0)==1?b[B+(D*136|0)+28>>0]|0:0)break;x=ln(88)|0;r=f[a+8>>2]|0;t=B+(D*136|0)+104|0;f[x+4>>2]=0;f[x>>2]=3564;w=x+12|0;f[w>>2]=3588;q=x+64|0;f[q>>2]=0;f[x+68>>2]=0;f[x+72>>2]=0;o=x+16|0;z=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(z|0));f[x+76>>2]=r;f[x+80>>2]=t;s=x+84|0;f[s>>2]=0;f[h>>2]=3588;E=h+4|0;F=E+4|0;f[F>>2]=0;f[F+4>>2]=0;f[F+8>>2]=0;f[F+12>>2]=0;f[F+16>>2]=0;f[F+20>>2]=0;F=B+(D*136|0)+4|0;G=i+4|0;f[G>>2]=3588;H=i+56|0;f[H>>2]=0;I=i+60|0;f[I>>2]=0;f[i+64>>2]=0;o=i+8|0;z=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(z|0));f[E>>2]=F;o=f[B+(D*136|0)+68>>2]|0;z=((f[o+4>>2]|0)-(f[o>>2]|0)>>2>>>0)/3|0;b[e>>0]=0;qh(h+8|0,z,e);Va[f[(f[h>>2]|0)+8>>2]&127](h);Df(j,h);Df(e,j);f[i>>2]=f[e+4>>2];z=i+4|0;fg(z,e)|0;f[e>>2]=3588;o=f[e+20>>2]|0;if(o|0)Oq(o);o=f[e+8>>2]|0;if(o|0)Oq(o);f[i+36>>2]=F;f[i+40>>2]=t;f[i+44>>2]=r;f[i+48>>2]=x;f[j>>2]=3588;o=f[j+20>>2]|0;if(o|0)Oq(o);o=f[j+8>>2]|0;if(o|0)Oq(o);f[s>>2]=a+72;f[x+8>>2]=f[i>>2];fg(w,z)|0;z=x+44|0;o=i+36|0;f[z>>2]=f[o>>2];f[z+4>>2]=f[o+4>>2];f[z+8>>2]=f[o+8>>2];f[z+12>>2]=f[o+12>>2];b[z+16>>0]=b[o+16>>0]|0;ng(q,f[H>>2]|0,f[I>>2]|0);o=x;z=f[H>>2]|0;if(z|0){J=f[I>>2]|0;if((J|0)!=(z|0))f[I>>2]=J+(~((J+-4-z|0)>>>2)<<2);Oq(z)}f[G>>2]=3588;z=f[i+24>>2]|0;if(z|0)Oq(z);z=f[i+12>>2]|0;if(z|0)Oq(z);f[h>>2]=3588;z=f[h+20>>2]|0;if(z|0)Oq(z);z=f[h+8>>2]|0;if(z|0)Oq(z);K=0;L=o;M=54;break b}while(0);if(!A){b[B+(D*136|0)+100>>0]=0;N=B+(D*136|0)+104|0;M=26}else M=24}else M=24;while(0);if((M|0)==24){N=a+40|0;M=26}if((M|0)==26){D=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+48|0;do if((mi(f[D>>2]|0)|0)==0?(f[y+56>>2]|0)==0:0){if(b[m>>0]|0?(B=f[a+8>>2]|0,((f[B+12>>2]|0)-(f[B+8>>2]|0)|0)>4):0){M=31;break}gf(e,a,N);O=1;P=f[e>>2]|0}else M=31;while(0);if((M|0)==31){Vd(e,a,N);O=0;P=f[e>>2]|0}if(!P)Q=0;else{K=O;L=P;M=54}}if((M|0)==54){M=f[g>>2]|0;if((M|0)==-1)R=a+68|0;else R=(f[n>>2]|0)+(M*136|0)+132|0;f[R>>2]=K;K=ln(76)|0;f[k>>2]=L;rl(K,k,c);c=K;K=f[k>>2]|0;f[k>>2]=0;if(K|0)Va[f[(f[K>>2]|0)+4>>2]&127](K);K=a+188|0;k=f[K>>2]|0;if((k|0)==(f[a+192>>2]|0))Ri(a+184|0,g);else{f[k>>2]=f[g>>2];f[K>>2]=k+4}k=Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0;f[l>>2]=c;a=k+12|0;K=f[a>>2]|0;if(K>>>0<(f[k+16>>2]|0)>>>0){f[l>>2]=0;f[K>>2]=c;f[a>>2]=K+4;S=l}else{Qg(k+8|0,l);S=l}l=f[S>>2]|0;f[S>>2]=0;if(!l)Q=1;else{Va[f[(f[l>>2]|0)+4>>2]&127](l);Q=1}}C=Q;u=d;return C|0}function cc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;d=u;u=u+192|0;e=d+152|0;g=d+144|0;h=d+72|0;i=d;j=d+112|0;k=d+108|0;l=d+104|0;m=a+288|0;if(b[m>>0]|0?(n=Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0,((f[n+12>>2]|0)-(f[n+8>>2]|0)|0)>0):0){n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+8|0;o=f[f[n>>2]>>2]|0;f[e>>2]=c;n=o+4|0;p=o+8|0;q=f[p>>2]|0;if((q|0)==(f[o+12>>2]|0))Ri(n,e);else{f[q>>2]=c;f[p>>2]=q+4}q=f[e>>2]|0;r=o+16|0;s=o+20|0;o=f[s>>2]|0;t=f[r>>2]|0;v=o-t>>2;w=t;if((q|0)<(v|0)){x=w;y=q}else{t=q+1|0;f[g>>2]=-1;z=o;if(t>>>0<=v>>>0)if(t>>>0<v>>>0?(o=w+(t<<2)|0,(o|0)!=(z|0)):0){f[s>>2]=z+(~((z+-4-o|0)>>>2)<<2);A=q;B=w}else{A=q;B=w}else{Ch(r,t-v|0,g);A=f[e>>2]|0;B=f[r>>2]|0}x=B;y=A}f[x+(y<<2)>>2]=((f[p>>2]|0)-(f[n>>2]|0)>>2)+-1;C=1;u=d;return C|0}n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+52|0;p=f[(f[(f[n>>2]|0)+84>>2]|0)+(c<<2)>>2]|0;n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+4|0;y=f[(f[(f[n>>2]|0)+8>>2]|0)+(c<<2)>>2]|0;f[g>>2]=-1;n=a+172|0;x=f[a+176>>2]|0;A=f[n>>2]|0;B=A;a:do if((x|0)==(A|0))D=-1;else{r=(x-A|0)/136|0;v=0;while(1){if((f[B+(v*136|0)>>2]|0)==(c|0))break;t=v+1|0;if(t>>>0<r>>>0)v=t;else{D=-1;break a}}f[g>>2]=v;D=v}while(0);b:do if(!(b[m>>0]|0)){A=(f[y+56>>2]|0)==0;do if(!((p|0)==0|A)){if((p|0)==1?b[B+(D*136|0)+28>>0]|0:0)break;x=ln(88)|0;r=f[a+8>>2]|0;t=B+(D*136|0)+104|0;f[x+4>>2]=0;f[x>>2]=3564;w=x+12|0;f[w>>2]=3588;q=x+64|0;f[q>>2]=0;f[x+68>>2]=0;f[x+72>>2]=0;o=x+16|0;z=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(z|0));f[x+76>>2]=r;f[x+80>>2]=t;s=x+84|0;f[s>>2]=0;f[h>>2]=3588;E=h+4|0;F=E+4|0;f[F>>2]=0;f[F+4>>2]=0;f[F+8>>2]=0;f[F+12>>2]=0;f[F+16>>2]=0;f[F+20>>2]=0;F=B+(D*136|0)+4|0;G=i+4|0;f[G>>2]=3588;H=i+56|0;f[H>>2]=0;I=i+60|0;f[I>>2]=0;f[i+64>>2]=0;o=i+8|0;z=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(z|0));f[E>>2]=F;o=f[B+(D*136|0)+68>>2]|0;z=((f[o+4>>2]|0)-(f[o>>2]|0)>>2>>>0)/3|0;b[e>>0]=0;qh(h+8|0,z,e);Va[f[(f[h>>2]|0)+8>>2]&127](h);Df(j,h);Df(e,j);f[i>>2]=f[e+4>>2];z=i+4|0;fg(z,e)|0;f[e>>2]=3588;o=f[e+20>>2]|0;if(o|0)Oq(o);o=f[e+8>>2]|0;if(o|0)Oq(o);f[i+36>>2]=F;f[i+40>>2]=t;f[i+44>>2]=r;f[i+48>>2]=x;f[j>>2]=3588;o=f[j+20>>2]|0;if(o|0)Oq(o);o=f[j+8>>2]|0;if(o|0)Oq(o);f[s>>2]=a+72;f[x+8>>2]=f[i>>2];fg(w,z)|0;z=x+44|0;o=i+36|0;f[z>>2]=f[o>>2];f[z+4>>2]=f[o+4>>2];f[z+8>>2]=f[o+8>>2];f[z+12>>2]=f[o+12>>2];b[z+16>>0]=b[o+16>>0]|0;ng(q,f[H>>2]|0,f[I>>2]|0);o=x;z=f[H>>2]|0;if(z|0){J=f[I>>2]|0;if((J|0)!=(z|0))f[I>>2]=J+(~((J+-4-z|0)>>>2)<<2);Oq(z)}f[G>>2]=3588;z=f[i+24>>2]|0;if(z|0)Oq(z);z=f[i+12>>2]|0;if(z|0)Oq(z);f[h>>2]=3588;z=f[h+20>>2]|0;if(z|0)Oq(z);z=f[h+8>>2]|0;if(z|0)Oq(z);K=0;L=o;M=54;break b}while(0);if(!A){b[B+(D*136|0)+100>>0]=0;N=B+(D*136|0)+104|0;M=26}else M=24}else M=24;while(0);if((M|0)==24){N=a+40|0;M=26}if((M|0)==26){D=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+48|0;do if((mi(f[D>>2]|0)|0)==0?(f[y+56>>2]|0)==0:0){if(b[m>>0]|0?(B=f[a+8>>2]|0,((f[B+12>>2]|0)-(f[B+8>>2]|0)|0)>4):0){M=31;break}gf(e,a,N);O=1;P=f[e>>2]|0}else M=31;while(0);if((M|0)==31){Vd(e,a,N);O=0;P=f[e>>2]|0}if(!P)Q=0;else{K=O;L=P;M=54}}if((M|0)==54){M=f[g>>2]|0;if((M|0)==-1)R=a+68|0;else R=(f[n>>2]|0)+(M*136|0)+132|0;f[R>>2]=K;K=ln(76)|0;f[k>>2]=L;rl(K,k,c);c=K;K=f[k>>2]|0;f[k>>2]=0;if(K|0)Va[f[(f[K>>2]|0)+4>>2]&127](K);K=a+188|0;k=f[K>>2]|0;if((k|0)==(f[a+192>>2]|0))Ri(a+184|0,g);else{f[k>>2]=f[g>>2];f[K>>2]=k+4}k=Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0;f[l>>2]=c;a=k+12|0;K=f[a>>2]|0;if(K>>>0<(f[k+16>>2]|0)>>>0){f[l>>2]=0;f[K>>2]=c;f[a>>2]=K+4;S=l}else{Qg(k+8|0,l);S=l}l=f[S>>2]|0;f[S>>2]=0;if(!l)Q=1;else{Va[f[(f[l>>2]|0)+4>>2]&127](l);Q=1}}C=Q;u=d;return C|0}function dc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;c=u;u=u+16|0;d=c+8|0;e=c;g=f[b>>2]|0;if((g|0)==-1){u=c;return}h=(g>>>0)/3|0;i=a+12|0;if(f[(f[i>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0){u=c;return}h=a+56|0;j=f[h>>2]|0;k=a+60|0;l=f[k>>2]|0;if((l|0)==(j|0))m=j;else{n=l+(~((l+-4-j|0)>>>2)<<2)|0;f[k>>2]=n;m=n}n=a+64|0;if((m|0)==(f[n>>2]|0))Ri(h,b);else{f[m>>2]=g;f[k>>2]=m+4}m=f[a>>2]|0;g=f[b>>2]|0;j=g+1|0;if((g|0)!=-1){l=((j>>>0)%3|0|0)==0?g+-2|0:j;if((l|0)==-1)o=-1;else o=f[(f[m>>2]|0)+(l<<2)>>2]|0;l=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((l|0)==-1){p=o;q=-1}else{p=o;q=f[(f[m>>2]|0)+(l<<2)>>2]|0}}else{p=-1;q=-1}l=a+24|0;m=f[l>>2]|0;o=m+(p>>>5<<2)|0;g=1<<(p&31);j=f[o>>2]|0;if(!(j&g)){f[o>>2]=j|g;g=f[b>>2]|0;j=g+1|0;if((g|0)==-1)r=-1;else r=((j>>>0)%3|0|0)==0?g+-2|0:j;f[e>>2]=r;j=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((r>>>0)/3|0)*12|0)+(((r>>>0)%3|0)<<2)>>2]|0;r=f[a+48>>2]|0;f[d>>2]=j;g=f[r+4>>2]|0;r=g+4|0;o=f[r>>2]|0;if((o|0)==(f[g+8>>2]|0))Ri(g,d);else{f[o>>2]=j;f[r>>2]=o+4}o=a+40|0;r=f[o>>2]|0;j=r+4|0;g=f[j>>2]|0;if((g|0)==(f[r+8>>2]|0)){Ri(r,e);s=f[o>>2]|0}else{f[g>>2]=f[e>>2];f[j>>2]=g+4;s=r}r=s+24|0;f[(f[s+12>>2]|0)+(p<<2)>>2]=f[r>>2];f[r>>2]=(f[r>>2]|0)+1;t=f[l>>2]|0}else t=m;m=t+(q>>>5<<2)|0;t=1<<(q&31);r=f[m>>2]|0;if(!(r&t)){f[m>>2]=r|t;t=f[b>>2]|0;do if((t|0)!=-1)if(!((t>>>0)%3|0)){v=t+2|0;break}else{v=t+-1|0;break}else v=-1;while(0);f[e>>2]=v;t=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((v>>>0)/3|0)*12|0)+(((v>>>0)%3|0)<<2)>>2]|0;v=f[a+48>>2]|0;f[d>>2]=t;r=f[v+4>>2]|0;v=r+4|0;m=f[v>>2]|0;if((m|0)==(f[r+8>>2]|0))Ri(r,d);else{f[m>>2]=t;f[v>>2]=m+4}m=a+40|0;v=f[m>>2]|0;t=v+4|0;r=f[t>>2]|0;if((r|0)==(f[v+8>>2]|0)){Ri(v,e);w=f[m>>2]|0}else{f[r>>2]=f[e>>2];f[t>>2]=r+4;w=v}v=w+24|0;f[(f[w+12>>2]|0)+(q<<2)>>2]=f[v>>2];f[v>>2]=(f[v>>2]|0)+1}v=f[h>>2]|0;q=f[k>>2]|0;if((v|0)==(q|0)){u=c;return}w=a+44|0;r=a+48|0;t=a+40|0;m=q;q=v;while(1){v=f[m+-4>>2]|0;f[b>>2]=v;p=(v>>>0)/3|0;if((v|0)!=-1?(v=f[i>>2]|0,(f[v+(p>>>5<<2)>>2]&1<<(p&31)|0)==0):0){s=p;p=v;a:while(1){v=p+(s>>>5<<2)|0;f[v>>2]=f[v>>2]|1<<(s&31);v=f[b>>2]|0;if((v|0)==-1)x=-1;else x=f[(f[f[a>>2]>>2]|0)+(v<<2)>>2]|0;g=(f[l>>2]|0)+(x>>>5<<2)|0;j=1<<(x&31);o=f[g>>2]|0;do if(!(j&o)){y=f[a>>2]|0;z=f[(f[y+24>>2]|0)+(x<<2)>>2]|0;A=z+1|0;if(((z|0)!=-1?(B=((A>>>0)%3|0|0)==0?z+-2|0:A,(B|0)!=-1):0)?(A=f[(f[y+12>>2]|0)+(B<<2)>>2]|0,B=A+1|0,(A|0)!=-1):0)C=((((B>>>0)%3|0|0)==0?A+-2|0:B)|0)==-1;else C=1;f[g>>2]=o|j;B=f[b>>2]|0;f[e>>2]=B;A=f[(f[(f[w>>2]|0)+96>>2]|0)+(((B>>>0)/3|0)*12|0)+(((B>>>0)%3|0)<<2)>>2]|0;B=f[r>>2]|0;f[d>>2]=A;y=f[B+4>>2]|0;B=y+4|0;z=f[B>>2]|0;if((z|0)==(f[y+8>>2]|0))Ri(y,d);else{f[z>>2]=A;f[B>>2]=z+4}z=f[t>>2]|0;B=z+4|0;A=f[B>>2]|0;if((A|0)==(f[z+8>>2]|0)){Ri(z,e);D=f[t>>2]|0}else{f[A>>2]=f[e>>2];f[B>>2]=A+4;D=z}z=D+24|0;f[(f[D+12>>2]|0)+(x<<2)>>2]=f[z>>2];f[z>>2]=(f[z>>2]|0)+1;if(C){E=f[b>>2]|0;F=60;break}z=f[a>>2]|0;A=f[b>>2]|0;do if((A|0)==-1)G=-1;else{B=A+1|0;y=((B>>>0)%3|0|0)==0?A+-2|0:B;if((y|0)==-1){G=-1;break}G=f[(f[z+12>>2]|0)+(y<<2)>>2]|0}while(0);f[b>>2]=G;H=(G>>>0)/3|0}else{E=v;F=60}while(0);if((F|0)==60){F=0;v=f[a>>2]|0;if((E|0)==-1){F=61;break}j=E+1|0;o=((j>>>0)%3|0|0)==0?E+-2|0:j;if((o|0)==-1)I=-1;else I=f[(f[v+12>>2]|0)+(o<<2)>>2]|0;f[d>>2]=I;o=(((E>>>0)%3|0|0)==0?2:-1)+E|0;if((o|0)==-1)J=-1;else J=f[(f[v+12>>2]|0)+(o<<2)>>2]|0;o=(I|0)==-1;v=(I>>>0)/3|0;j=o?-1:v;g=(J|0)==-1;z=(J>>>0)/3|0;A=g?-1:z;do if(!o){y=f[i>>2]|0;if(f[y+(j>>>5<<2)>>2]&1<<(j&31)|0){F=68;break}if(g){K=I;L=v;break}if(!(f[y+(A>>>5<<2)>>2]&1<<(A&31))){F=73;break a}else{K=I;L=v}}else F=68;while(0);if((F|0)==68){F=0;if(g){F=70;break}if(!(f[(f[i>>2]|0)+(A>>>5<<2)>>2]&1<<(A&31))){K=J;L=z}else{F=70;break}}f[b>>2]=K;H=L}s=H;p=f[i>>2]|0}do if((F|0)==61){F=0;f[d>>2]=-1;F=70}else if((F|0)==73){F=0;p=f[k>>2]|0;f[p+-4>>2]=J;if((p|0)==(f[n>>2]|0)){Ri(h,d);M=f[k>>2]|0;break}else{f[p>>2]=f[d>>2];s=p+4|0;f[k>>2]=s;M=s;break}}while(0);if((F|0)==70){F=0;s=(f[k>>2]|0)+-4|0;f[k>>2]=s;M=s}N=f[h>>2]|0;O=M}else{s=m+-4|0;f[k>>2]=s;N=q;O=s}if((N|0)==(O|0))break;else{m=O;q=N}}u=c;return}function ec(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=Oa,fa=Oa,ga=Oa,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;g=u;u=u+48|0;i=g+12|0;j=g+32|0;k=g;l=i+16|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=c+48|0;q=c+40|0;o=i+4|0;t=i+12|0;v=i+8|0;w=a+40|0;x=a+64|0;y=f[e>>2]|0;e=0;z=r;A=0;B=0;C=r;D=r;E=r;while(1){r=s;F=f[r>>2]|0;G=f[r+4>>2]|0;r=q;H=un(f[r>>2]|0,f[r+4>>2]|0,y+A|0,0)|0;r=Vn(H|0,I|0,F|0,G|0)|0;G=(f[f[c>>2]>>2]|0)+r|0;r=h[G>>0]|h[G+1>>0]<<8;d[j>>1]=r;G=(r^318)&65535;a:do if(e){F=e+-1|0;H=(F&e|0)==0;if(!H)if(e>>>0>G>>>0)J=G;else J=(G>>>0)%(e>>>0)|0;else J=F&G;K=f[i>>2]|0;L=f[K+(J<<2)>>2]|0;b:do if(L|0?(M=f[L>>2]|0,M|0):0){c:do if(H){N=M;while(1){O=f[N+4>>2]|0;P=(O|0)==(G|0);if(!(P|(O&F|0)==(J|0)))break b;if(P?(d[N+8>>1]|0)==r<<16>>16:0){Q=N;break c}N=f[N>>2]|0;if(!N)break b}}else{N=M;while(1){P=f[N+4>>2]|0;if((P|0)==(G|0)){if((d[N+8>>1]|0)==r<<16>>16){Q=N;break c}}else{if(P>>>0<e>>>0)R=P;else R=(P>>>0)%(e>>>0)|0;if((R|0)!=(J|0))break b}N=f[N>>2]|0;if(!N)break b}}while(0);f[E+(A<<2)>>2]=f[Q+12>>2];S=z;T=B;U=D;V=C;X=E;break a}while(0);if(!H)if(e>>>0>G>>>0)Y=G;else Y=(G>>>0)%(e>>>0)|0;else Y=F&G;L=f[K+(Y<<2)>>2]|0;if(!L){Z=Y;_=e;aa=0;ba=40}else{if(H){M=L;while(1){M=f[M>>2]|0;if(!M){Z=Y;_=e;aa=0;ba=40;break a}N=f[M+4>>2]|0;if(!((N|0)==(G|0)|(N&F|0)==(Y|0))){Z=Y;_=e;aa=0;ba=40;break a}if((d[M+8>>1]|0)==r<<16>>16){ba=55;break a}}}else ca=L;while(1){ca=f[ca>>2]|0;if(!ca){Z=Y;_=e;aa=0;ba=40;break a}M=f[ca+4>>2]|0;if((M|0)!=(G|0)){if(M>>>0<e>>>0)da=M;else da=(M>>>0)%(e>>>0)|0;if((da|0)!=(Y|0)){Z=Y;_=e;aa=0;ba=40;break a}}if((d[ca+8>>1]|0)==r<<16>>16){ba=55;break}}}}else{Z=0;_=0;aa=1;ba=40}while(0);if((ba|0)==40){ba=0;L=ln(16)|0;d[L+8>>1]=r;f[L+12>>2]=B;f[L+4>>2]=G;f[L>>2]=0;ea=$(((f[t>>2]|0)+1|0)>>>0);fa=$(_>>>0);ga=$(n[l>>2]);do if(aa|$(ga*fa)<ea){M=_<<1|(_>>>0<3|(_+-1&_|0)!=0)&1;F=~~$(W($(ea/ga)))>>>0;Vh(i,M>>>0<F>>>0?F:M);M=f[o>>2]|0;F=M+-1|0;if(!(F&M)){ha=M;ia=F&G;break}if(M>>>0>G>>>0){ha=M;ia=G}else{ha=M;ia=(G>>>0)%(M>>>0)|0}}else{ha=_;ia=Z}while(0);G=(f[i>>2]|0)+(ia<<2)|0;r=f[G>>2]|0;if(!r){f[L>>2]=f[v>>2];f[v>>2]=L;f[G>>2]=v;G=f[L>>2]|0;if(G|0){M=f[G+4>>2]|0;G=ha+-1|0;if(G&ha)if(M>>>0<ha>>>0)ja=M;else ja=(M>>>0)%(ha>>>0)|0;else ja=M&G;ka=(f[i>>2]|0)+(ja<<2)|0;ba=53}}else{f[L>>2]=f[r>>2];ka=r;ba=53}if((ba|0)==53){ba=0;f[ka>>2]=L}f[t>>2]=(f[t>>2]|0)+1;ba=55}if((ba|0)==55){ba=0;r=w;G=f[r>>2]|0;M=un(G|0,f[r+4>>2]|0,B|0,0)|0;kh((f[f[x>>2]>>2]|0)+M|0,j|0,G|0)|0;G=f[k>>2]|0;f[G+(A<<2)>>2]=B;S=G;T=B+1|0;U=G;V=G;X=G}G=A+1|0;la=f[m>>2]|0;if(G>>>0>=la>>>0)break;e=f[o>>2]|0;z=S;A=G;B=T;C=V;D=U;E=X}if((T|0)==(la|0))ma=V;else{V=a+84|0;if(!(b[V>>0]|0)){X=f[a+72>>2]|0;E=f[a+68>>2]|0;D=E;if((X|0)==(E|0))na=S;else{C=X-E>>2;E=0;do{X=D+(E<<2)|0;f[X>>2]=f[U+(f[X>>2]<<2)>>2];E=E+1|0}while(E>>>0<C>>>0);na=S}}else{b[V>>0]=0;V=a+68|0;S=a+72|0;C=f[S>>2]|0;E=f[V>>2]|0;U=C-E>>2;D=E;E=C;if(la>>>0<=U>>>0)if(la>>>0<U>>>0?(C=D+(la<<2)|0,(C|0)!=(E|0)):0){f[S>>2]=E+(~((E+-4-C|0)>>>2)<<2);oa=la}else oa=la;else{Ch(V,la-U|0,1220);oa=f[m>>2]|0}U=f[k>>2]|0;if(!oa)na=U;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[U+(a<<2)>>2];a=a+1|0}while(a>>>0<oa>>>0);na=U}}f[m>>2]=T;ma=na}if(!ma)pa=T;else{na=f[p>>2]|0;if((na|0)!=(ma|0))f[p>>2]=na+(~((na+-4-ma|0)>>>2)<<2);Oq(ma);pa=T}}else pa=0;T=f[i+8>>2]|0;if(T|0){ma=T;do{T=ma;ma=f[ma>>2]|0;Oq(T)}while((ma|0)!=0)}ma=f[i>>2]|0;f[i>>2]=0;if(!ma){u=g;return pa|0}Oq(ma);u=g;return pa|0}function fc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=Oa,K=Oa,L=Oa,M=0,N=0,O=0,P=0;e=u;u=u+64|0;g=e+40|0;i=e+16|0;j=e;k=Id(a,c)|0;if(k|0){f[i>>2]=k;f[g>>2]=f[i>>2];lf(a,g)|0}f[j>>2]=0;k=j+4|0;f[k>>2]=0;f[j+8>>2]=0;Fi(j,4);l=f[j>>2]|0;m=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[l>>0]=m;b[l+1>>0]=m>>8;b[l+2>>0]=m>>16;b[l+3>>0]=m>>24;pj(i,c);c=i+12|0;f[c>>2]=0;m=i+16|0;f[m>>2]=0;f[i+20>>2]=0;l=f[k>>2]|0;d=f[j>>2]|0;o=l-d|0;if(!o){p=d;q=l;r=0}else{Fi(c,o);p=f[j>>2]|0;q=f[k>>2]|0;r=f[c>>2]|0}kh(r|0,p|0,q-p|0)|0;p=i+11|0;q=b[p>>0]|0;r=q<<24>>24<0;c=r?f[i>>2]|0:i;o=r?f[i+4>>2]|0:q&255;if(o>>>0>3){q=c;r=o;l=o;while(1){d=X(h[q>>0]|h[q+1>>0]<<8|h[q+2>>0]<<16|h[q+3>>0]<<24,1540483477)|0;r=(X(d>>>24^d,1540483477)|0)^(X(r,1540483477)|0);l=l+-4|0;if(l>>>0<=3)break;else q=q+4|0}q=o+-4|0;l=q&-4;s=q-l|0;t=c+(l+4)|0;v=r}else{s=o;t=c;v=o}switch(s|0){case 3:{w=h[t+2>>0]<<16^v;x=10;break}case 2:{w=v;x=10;break}case 1:{y=v;x=11;break}default:z=v}if((x|0)==10){y=h[t+1>>0]<<8^w;x=11}if((x|0)==11)z=X(y^h[t>>0],1540483477)|0;t=X(z>>>13^z,1540483477)|0;z=t>>>15^t;t=a+4|0;y=f[t>>2]|0;w=(y|0)==0;a:do if(!w){v=y+-1|0;s=(v&y|0)==0;if(!s)if(z>>>0<y>>>0)A=z;else A=(z>>>0)%(y>>>0)|0;else A=z&v;r=f[(f[a>>2]|0)+(A<<2)>>2]|0;if((r|0)!=0?(l=f[r>>2]|0,(l|0)!=0):0){r=(o|0)==0;if(s){if(r){s=l;while(1){q=f[s+4>>2]|0;if(!((q|0)==(z|0)|(q&v|0)==(A|0))){B=A;x=52;break a}q=b[s+8+11>>0]|0;if(!((q<<24>>24<0?f[s+12>>2]|0:q&255)|0))break a;s=f[s>>2]|0;if(!s){B=A;x=52;break a}}}else C=l;while(1){s=f[C+4>>2]|0;if(!((s|0)==(z|0)|(s&v|0)==(A|0))){B=A;x=52;break a}s=C+8|0;q=b[s+11>>0]|0;d=q<<24>>24<0;D=q&255;do if(((d?f[C+12>>2]|0:D)|0)==(o|0)){q=f[s>>2]|0;if(d)if(!(Vk(q,c,o)|0))break a;else break;if((b[c>>0]|0)==(q&255)<<24>>24){q=s;E=D;F=c;do{E=E+-1|0;q=q+1|0;if(!E)break a;F=F+1|0}while((b[q>>0]|0)==(b[F>>0]|0))}}while(0);C=f[C>>2]|0;if(!C){B=A;x=52;break a}}}if(r){v=l;while(1){D=f[v+4>>2]|0;if((D|0)!=(z|0)){if(D>>>0<y>>>0)G=D;else G=(D>>>0)%(y>>>0)|0;if((G|0)!=(A|0)){B=A;x=52;break a}}D=b[v+8+11>>0]|0;if(!((D<<24>>24<0?f[v+12>>2]|0:D&255)|0))break a;v=f[v>>2]|0;if(!v){B=A;x=52;break a}}}else H=l;while(1){v=f[H+4>>2]|0;if((v|0)!=(z|0)){if(v>>>0<y>>>0)I=v;else I=(v>>>0)%(y>>>0)|0;if((I|0)!=(A|0)){B=A;x=52;break a}}v=H+8|0;r=b[v+11>>0]|0;D=r<<24>>24<0;s=r&255;do if(((D?f[H+12>>2]|0:s)|0)==(o|0)){r=f[v>>2]|0;if(D)if(!(Vk(r,c,o)|0))break a;else break;if((b[c>>0]|0)==(r&255)<<24>>24){r=v;d=s;F=c;do{d=d+-1|0;r=r+1|0;if(!d)break a;F=F+1|0}while((b[r>>0]|0)==(b[F>>0]|0))}}while(0);H=f[H>>2]|0;if(!H){B=A;x=52;break}}}else{B=A;x=52}}else{B=0;x=52}while(0);if((x|0)==52){oi(g,a,z,i);x=a+12|0;J=$(((f[x>>2]|0)+1|0)>>>0);K=$(y>>>0);L=$(n[a+16>>2]);do if(w|$(L*K)<J){A=y<<1|(y>>>0<3|(y+-1&y|0)!=0)&1;H=~~$(W($(J/L)))>>>0;ei(a,A>>>0<H>>>0?H:A);A=f[t>>2]|0;H=A+-1|0;if(!(H&A)){M=A;N=H&z;break}if(z>>>0<A>>>0){M=A;N=z}else{M=A;N=(z>>>0)%(A>>>0)|0}}else{M=y;N=B}while(0);B=f[(f[a>>2]|0)+(N<<2)>>2]|0;if(!B){y=a+8|0;f[f[g>>2]>>2]=f[y>>2];f[y>>2]=f[g>>2];f[(f[a>>2]|0)+(N<<2)>>2]=y;y=f[g>>2]|0;N=f[y>>2]|0;if(!N)O=g;else{z=f[N+4>>2]|0;N=M+-1|0;if(N&M)if(z>>>0<M>>>0)P=z;else P=(z>>>0)%(M>>>0)|0;else P=z&N;f[(f[a>>2]|0)+(P<<2)>>2]=y;O=g}}else{f[f[g>>2]>>2]=f[B>>2];f[B>>2]=f[g>>2];O=g}f[x>>2]=(f[x>>2]|0)+1;f[O>>2]=0}O=f[i+12>>2]|0;if(O|0){if((f[m>>2]|0)!=(O|0))f[m>>2]=O;Oq(O)}if((b[p>>0]|0)<0)Oq(f[i>>2]|0);i=f[j>>2]|0;if(!i){u=e;return}if((f[k>>2]|0)!=(i|0))f[k>>2]=i;Oq(i);u=e;return}function gc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=Oa,da=Oa,ea=Oa,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;e=u;u=u+48|0;g=e+12|0;h=e+32|0;i=e;j=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[j>>2]=$(1.0);k=a+80|0;l=f[k>>2]|0;f[i>>2]=0;m=i+4|0;f[m>>2]=0;f[i+8>>2]=0;if(l){if(l>>>0>1073741823)aq(i);o=l<<2;p=ln(o)|0;f[i>>2]=p;q=p+(l<<2)|0;f[i+8>>2]=q;sj(p|0,0,o|0)|0;f[m>>2]=q;q=c+48|0;o=c+40|0;l=g+4|0;r=g+12|0;s=g+8|0;t=a+40|0;v=a+64|0;w=f[d>>2]|0;d=0;x=p;y=0;z=0;A=p;B=p;C=p;while(1){p=q;D=f[p>>2]|0;E=f[p+4>>2]|0;p=o;F=un(f[p>>2]|0,f[p+4>>2]|0,w+y|0,0)|0;p=Vn(F|0,I|0,D|0,E|0)|0;E=b[(f[f[c>>2]>>2]|0)+p>>0]|0;b[h>>0]=E;p=E&255^318;a:do if(d){D=d+-1|0;F=(D&d|0)==0;if(!F)if(p>>>0<d>>>0)G=p;else G=(p>>>0)%(d>>>0)|0;else G=D&p;H=f[g>>2]|0;J=f[H+(G<<2)>>2]|0;b:do if(J|0?(K=f[J>>2]|0,K|0):0){c:do if(F){L=K;while(1){M=f[L+4>>2]|0;N=(M|0)==(p|0);if(!(N|(M&D|0)==(G|0)))break b;if(N?(b[L+8>>0]|0)==E<<24>>24:0){O=L;break c}L=f[L>>2]|0;if(!L)break b}}else{L=K;while(1){N=f[L+4>>2]|0;if((N|0)==(p|0)){if((b[L+8>>0]|0)==E<<24>>24){O=L;break c}}else{if(N>>>0<d>>>0)P=N;else P=(N>>>0)%(d>>>0)|0;if((P|0)!=(G|0))break b}L=f[L>>2]|0;if(!L)break b}}while(0);f[C+(y<<2)>>2]=f[O+12>>2];Q=x;R=z;S=B;T=A;U=C;break a}while(0);if(!F)if(p>>>0<d>>>0)V=p;else V=(p>>>0)%(d>>>0)|0;else V=D&p;J=f[H+(V<<2)>>2]|0;if(!J){X=V;Y=d;Z=0;_=40}else{if(F){K=J;while(1){K=f[K>>2]|0;if(!K){X=V;Y=d;Z=0;_=40;break a}L=f[K+4>>2]|0;if(!((L|0)==(p|0)|(L&D|0)==(V|0))){X=V;Y=d;Z=0;_=40;break a}if((b[K+8>>0]|0)==E<<24>>24){_=55;break a}}}else aa=J;while(1){aa=f[aa>>2]|0;if(!aa){X=V;Y=d;Z=0;_=40;break a}K=f[aa+4>>2]|0;if((K|0)!=(p|0)){if(K>>>0<d>>>0)ba=K;else ba=(K>>>0)%(d>>>0)|0;if((ba|0)!=(V|0)){X=V;Y=d;Z=0;_=40;break a}}if((b[aa+8>>0]|0)==E<<24>>24){_=55;break}}}}else{X=0;Y=0;Z=1;_=40}while(0);if((_|0)==40){_=0;J=ln(16)|0;b[J+8>>0]=E;f[J+12>>2]=z;f[J+4>>2]=p;f[J>>2]=0;ca=$(((f[r>>2]|0)+1|0)>>>0);da=$(Y>>>0);ea=$(n[j>>2]);do if(Z|$(ea*da)<ca){K=Y<<1|(Y>>>0<3|(Y+-1&Y|0)!=0)&1;D=~~$(W($(ca/ea)))>>>0;ai(g,K>>>0<D>>>0?D:K);K=f[l>>2]|0;D=K+-1|0;if(!(D&K)){fa=K;ga=D&p;break}if(p>>>0<K>>>0){fa=K;ga=p}else{fa=K;ga=(p>>>0)%(K>>>0)|0}}else{fa=Y;ga=X}while(0);p=(f[g>>2]|0)+(ga<<2)|0;E=f[p>>2]|0;if(!E){f[J>>2]=f[s>>2];f[s>>2]=J;f[p>>2]=s;p=f[J>>2]|0;if(p|0){K=f[p+4>>2]|0;p=fa+-1|0;if(p&fa)if(K>>>0<fa>>>0)ha=K;else ha=(K>>>0)%(fa>>>0)|0;else ha=K&p;ia=(f[g>>2]|0)+(ha<<2)|0;_=53}}else{f[J>>2]=f[E>>2];ia=E;_=53}if((_|0)==53){_=0;f[ia>>2]=J}f[r>>2]=(f[r>>2]|0)+1;_=55}if((_|0)==55){_=0;E=t;p=f[E>>2]|0;K=un(p|0,f[E+4>>2]|0,z|0,0)|0;kh((f[f[v>>2]>>2]|0)+K|0,h|0,p|0)|0;p=f[i>>2]|0;f[p+(y<<2)>>2]=z;Q=p;R=z+1|0;S=p;T=p;U=p}p=y+1|0;ja=f[k>>2]|0;if(p>>>0>=ja>>>0)break;d=f[l>>2]|0;x=Q;y=p;z=R;A=T;B=S;C=U}if((R|0)==(ja|0))ka=T;else{T=a+84|0;if(!(b[T>>0]|0)){U=f[a+72>>2]|0;C=f[a+68>>2]|0;B=C;if((U|0)==(C|0))la=Q;else{A=U-C>>2;C=0;do{U=B+(C<<2)|0;f[U>>2]=f[S+(f[U>>2]<<2)>>2];C=C+1|0}while(C>>>0<A>>>0);la=Q}}else{b[T>>0]=0;T=a+68|0;Q=a+72|0;A=f[Q>>2]|0;C=f[T>>2]|0;S=A-C>>2;B=C;C=A;if(ja>>>0<=S>>>0)if(ja>>>0<S>>>0?(A=B+(ja<<2)|0,(A|0)!=(C|0)):0){f[Q>>2]=C+(~((C+-4-A|0)>>>2)<<2);ma=ja}else ma=ja;else{Ch(T,ja-S|0,1220);ma=f[k>>2]|0}S=f[i>>2]|0;if(!ma)la=S;else{i=f[a+68>>2]|0;a=0;do{f[i+(a<<2)>>2]=f[S+(a<<2)>>2];a=a+1|0}while(a>>>0<ma>>>0);la=S}}f[k>>2]=R;ka=la}if(!ka)na=R;else{la=f[m>>2]|0;if((la|0)!=(ka|0))f[m>>2]=la+(~((la+-4-ka|0)>>>2)<<2);Oq(ka);na=R}}else na=0;R=f[g+8>>2]|0;if(R|0){ka=R;do{R=ka;ka=f[ka>>2]|0;Oq(R)}while((ka|0)!=0)}ka=f[g>>2]|0;f[g>>2]=0;if(!ka){u=e;return na|0}Oq(ka);u=e;return na|0}function hc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=Oa,ea=Oa,fa=Oa,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0;e=u;u=u+48|0;g=e+16|0;i=e+12|0;j=e;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=c+48|0;p=c+40|0;m=g+4|0;s=g+12|0;t=g+8|0;v=a+40|0;w=a+64|0;x=f[d>>2]|0;d=0;y=q;z=0;A=0;B=q;C=q;D=q;while(1){q=r;E=f[q>>2]|0;F=f[q+4>>2]|0;q=p;G=un(f[q>>2]|0,f[q+4>>2]|0,x+z|0,0)|0;q=Vn(G|0,I|0,E|0,F|0)|0;F=(f[f[c>>2]>>2]|0)+q|0;q=h[F>>0]|h[F+1>>0]<<8|h[F+2>>0]<<16|h[F+3>>0]<<24;f[i>>2]=q;F=q^318;a:do if(d){E=d+-1|0;G=(E&d|0)==0;if(!G)if(F>>>0<d>>>0)H=F;else H=(F>>>0)%(d>>>0)|0;else H=E&F;J=f[g>>2]|0;K=f[J+(H<<2)>>2]|0;b:do if(K|0?(L=f[K>>2]|0,L|0):0){c:do if(G){M=L;while(1){N=f[M+4>>2]|0;O=(N|0)==(F|0);if(!(O|(N&E|0)==(H|0)))break b;if(O?(f[M+8>>2]|0)==(q|0):0){P=M;break c}M=f[M>>2]|0;if(!M)break b}}else{M=L;while(1){O=f[M+4>>2]|0;if((O|0)==(F|0)){if((f[M+8>>2]|0)==(q|0)){P=M;break c}}else{if(O>>>0<d>>>0)Q=O;else Q=(O>>>0)%(d>>>0)|0;if((Q|0)!=(H|0))break b}M=f[M>>2]|0;if(!M)break b}}while(0);f[D+(z<<2)>>2]=f[P+12>>2];R=y;S=A;T=C;U=B;V=D;break a}while(0);if(!G)if(F>>>0<d>>>0)X=F;else X=(F>>>0)%(d>>>0)|0;else X=E&F;K=f[J+(X<<2)>>2]|0;if(!K){Y=X;Z=d;_=0;aa=40}else{if(G){L=K;while(1){L=f[L>>2]|0;if(!L){Y=X;Z=d;_=0;aa=40;break a}M=f[L+4>>2]|0;if(!((M|0)==(F|0)|(M&E|0)==(X|0))){Y=X;Z=d;_=0;aa=40;break a}if((f[L+8>>2]|0)==(q|0)){aa=55;break a}}}else ba=K;while(1){ba=f[ba>>2]|0;if(!ba){Y=X;Z=d;_=0;aa=40;break a}L=f[ba+4>>2]|0;if((L|0)!=(F|0)){if(L>>>0<d>>>0)ca=L;else ca=(L>>>0)%(d>>>0)|0;if((ca|0)!=(X|0)){Y=X;Z=d;_=0;aa=40;break a}}if((f[ba+8>>2]|0)==(q|0)){aa=55;break}}}}else{Y=0;Z=0;_=1;aa=40}while(0);if((aa|0)==40){aa=0;K=ln(16)|0;f[K+8>>2]=q;f[K+12>>2]=A;f[K+4>>2]=F;f[K>>2]=0;da=$(((f[s>>2]|0)+1|0)>>>0);ea=$(Z>>>0);fa=$(n[k>>2]);do if(_|$(fa*ea)<da){L=Z<<1|(Z>>>0<3|(Z+-1&Z|0)!=0)&1;E=~~$(W($(da/fa)))>>>0;Hi(g,L>>>0<E>>>0?E:L);L=f[m>>2]|0;E=L+-1|0;if(!(E&L)){ga=L;ha=E&F;break}if(F>>>0<L>>>0){ga=L;ha=F}else{ga=L;ha=(F>>>0)%(L>>>0)|0}}else{ga=Z;ha=Y}while(0);F=(f[g>>2]|0)+(ha<<2)|0;q=f[F>>2]|0;if(!q){f[K>>2]=f[t>>2];f[t>>2]=K;f[F>>2]=t;F=f[K>>2]|0;if(F|0){L=f[F+4>>2]|0;F=ga+-1|0;if(F&ga)if(L>>>0<ga>>>0)ia=L;else ia=(L>>>0)%(ga>>>0)|0;else ia=L&F;ja=(f[g>>2]|0)+(ia<<2)|0;aa=53}}else{f[K>>2]=f[q>>2];ja=q;aa=53}if((aa|0)==53){aa=0;f[ja>>2]=K}f[s>>2]=(f[s>>2]|0)+1;aa=55}if((aa|0)==55){aa=0;q=v;F=f[q>>2]|0;L=un(F|0,f[q+4>>2]|0,A|0,0)|0;kh((f[f[w>>2]>>2]|0)+L|0,i|0,F|0)|0;F=f[j>>2]|0;f[F+(z<<2)>>2]=A;R=F;S=A+1|0;T=F;U=F;V=F}F=z+1|0;ka=f[l>>2]|0;if(F>>>0>=ka>>>0)break;d=f[m>>2]|0;y=R;z=F;A=S;B=U;C=T;D=V}if((S|0)==(ka|0))la=U;else{U=a+84|0;if(!(b[U>>0]|0)){V=f[a+72>>2]|0;D=f[a+68>>2]|0;C=D;if((V|0)==(D|0))ma=R;else{B=V-D>>2;D=0;do{V=C+(D<<2)|0;f[V>>2]=f[T+(f[V>>2]<<2)>>2];D=D+1|0}while(D>>>0<B>>>0);ma=R}}else{b[U>>0]=0;U=a+68|0;R=a+72|0;B=f[R>>2]|0;D=f[U>>2]|0;T=B-D>>2;C=D;D=B;if(ka>>>0<=T>>>0)if(ka>>>0<T>>>0?(B=C+(ka<<2)|0,(B|0)!=(D|0)):0){f[R>>2]=D+(~((D+-4-B|0)>>>2)<<2);na=ka}else na=ka;else{Ch(U,ka-T|0,1220);na=f[l>>2]|0}T=f[j>>2]|0;if(!na)ma=T;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[T+(a<<2)>>2];a=a+1|0}while(a>>>0<na>>>0);ma=T}}f[l>>2]=S;la=ma}if(!la)oa=S;else{ma=f[o>>2]|0;if((ma|0)!=(la|0))f[o>>2]=ma+(~((ma+-4-la|0)>>>2)<<2);Oq(la);oa=S}}else oa=0;S=f[g+8>>2]|0;if(S|0){la=S;do{S=la;la=f[la>>2]|0;Oq(S)}while((la|0)!=0)}la=f[g>>2]|0;f[g>>2]=0;if(!la){u=e;return oa|0}Oq(la);u=e;return oa|0}function ic(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0;e=u;u=u+96|0;g=e+92|0;h=e+88|0;i=e+72|0;j=e+48|0;k=e+24|0;l=e;m=a+16|0;n=f[m>>2]|0;o=f[c>>2]|0;f[i>>2]=n;f[i+4>>2]=o;c=i+8|0;f[c>>2]=o;b[i+12>>0]=1;p=f[(f[n+28>>2]|0)+(o<<2)>>2]|0;n=a+20|0;q=f[n>>2]|0;r=f[q>>2]|0;if((f[q+4>>2]|0)-r>>2>>>0<=p>>>0)aq(q);q=a+8|0;s=f[(f[q>>2]|0)+(f[r+(p<<2)>>2]<<2)>>2]|0;p=a+4|0;r=f[p>>2]|0;if(!(b[r+84>>0]|0))t=f[(f[r+68>>2]|0)+(s<<2)>>2]|0;else t=s;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[h>>2]=t;t=b[r+24>>0]|0;f[g>>2]=f[h>>2];vb(r,g,t,j)|0;t=a+28|0;a=(f[t>>2]|0)==0;a:do if((o|0)!=-1){r=k+8|0;s=j+8|0;v=k+16|0;w=j+16|0;x=l+8|0;y=l+16|0;z=o;A=o;B=0;C=0;D=0;E=0;F=0;G=0;H=a;J=o;while(1){do if(H){K=J+1|0;if((J|0)!=-1){L=((K>>>0)%3|0|0)==0?J+-2|0:K;if((z|0)!=-1)if(!((z>>>0)%3|0)){M=z;N=z+2|0;O=L;P=z;break}else{M=z;N=z+-1|0;O=L;P=z;break}else{M=-1;N=-1;O=L;P=-1}}else{M=z;N=-1;O=-1;P=-1}}else{L=A+1|0;K=((L>>>0)%3|0|0)==0?A+-2|0:L;if(!((A>>>0)%3|0)){M=z;N=A+2|0;O=K;P=J;break}else{M=z;N=A+-1|0;O=K;P=J;break}}while(0);K=f[(f[(f[m>>2]|0)+28>>2]|0)+(O<<2)>>2]|0;Q=f[n>>2]|0;L=f[Q>>2]|0;if((f[Q+4>>2]|0)-L>>2>>>0<=K>>>0){R=17;break}S=f[(f[q>>2]|0)+(f[L+(K<<2)>>2]<<2)>>2]|0;K=f[p>>2]|0;if(!(b[K+84>>0]|0))T=f[(f[K+68>>2]|0)+(S<<2)>>2]|0;else T=S;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[h>>2]=T;S=b[K+24>>0]|0;f[g>>2]=f[h>>2];vb(K,g,S,k)|0;S=f[(f[(f[m>>2]|0)+28>>2]|0)+(N<<2)>>2]|0;U=f[n>>2]|0;K=f[U>>2]|0;if((f[U+4>>2]|0)-K>>2>>>0<=S>>>0){R=21;break}L=f[(f[q>>2]|0)+(f[K+(S<<2)>>2]<<2)>>2]|0;S=f[p>>2]|0;if(!(b[S+84>>0]|0))V=f[(f[S+68>>2]|0)+(L<<2)>>2]|0;else V=L;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;f[h>>2]=V;L=b[S+24>>0]|0;f[g>>2]=f[h>>2];vb(S,g,L,l)|0;L=k;S=j;K=f[S>>2]|0;W=f[S+4>>2]|0;S=Xn(f[L>>2]|0,f[L+4>>2]|0,K|0,W|0)|0;L=I;X=r;Y=s;Z=f[Y>>2]|0;_=f[Y+4>>2]|0;Y=Xn(f[X>>2]|0,f[X+4>>2]|0,Z|0,_|0)|0;X=I;$=v;aa=w;ba=f[aa>>2]|0;ca=f[aa+4>>2]|0;aa=Xn(f[$>>2]|0,f[$+4>>2]|0,ba|0,ca|0)|0;$=I;da=l;ea=Xn(f[da>>2]|0,f[da+4>>2]|0,K|0,W|0)|0;W=I;K=x;da=Xn(f[K>>2]|0,f[K+4>>2]|0,Z|0,_|0)|0;_=I;Z=y;K=Xn(f[Z>>2]|0,f[Z+4>>2]|0,ba|0,ca|0)|0;ca=I;ba=un(K|0,ca|0,Y|0,X|0)|0;Z=I;fa=un(da|0,_|0,aa|0,$|0)|0;ga=I;ha=un(ea|0,W|0,aa|0,$|0)|0;$=I;aa=un(K|0,ca|0,S|0,L|0)|0;ca=I;K=un(da|0,_|0,S|0,L|0)|0;L=I;S=un(ea|0,W|0,Y|0,X|0)|0;X=I;Y=Xn(B|0,C|0,fa|0,ga|0)|0;ga=Vn(Y|0,I|0,ba|0,Z|0)|0;Z=I;ba=Vn(ha|0,$|0,D|0,E|0)|0;$=Xn(ba|0,I|0,aa|0,ca|0)|0;ca=I;aa=Xn(F|0,G|0,S|0,X|0)|0;X=Vn(aa|0,I|0,K|0,L|0)|0;L=I;Pg(i);A=f[c>>2]|0;K=(f[t>>2]|0)==0;if((A|0)==-1){ia=K;ja=Z;ka=ga;la=ca;ma=$;na=L;oa=X;break a}else{z=M;B=ga;C=Z;D=$;E=ca;F=X;G=L;H=K;J=P}}if((R|0)==17)aq(Q);else if((R|0)==21)aq(U)}else{ia=a;ja=0;ka=0;la=0;ma=0;na=0;oa=0}while(0);a=(ja|0)>-1|(ja|0)==-1&ka>>>0>4294967295;U=Xn(0,0,ka|0,ja|0)|0;R=a?ja:I;Q=(la|0)>-1|(la|0)==-1&ma>>>0>4294967295;P=Xn(0,0,ma|0,la|0)|0;M=Q?la:I;t=(na|0)>-1|(na|0)==-1&oa>>>0>4294967295;c=Xn(0,0,oa|0,na|0)|0;i=Vn((Q?ma:P)|0,M|0,(t?oa:c)|0,(t?na:I)|0)|0;t=Vn(i|0,I|0,(a?ka:U)|0,R|0)|0;R=I;if(ia){if((t|0)<=536870912){pa=ka;qa=ma;ra=oa;f[d>>2]=pa;sa=d+4|0;f[sa>>2]=qa;ta=d+8|0;f[ta>>2]=ra;u=e;return}ia=Yn(t|0,R|0,29)|0;U=ia&7;ia=Ik(ka|0,ja|0,U|0,0)|0;a=Ik(ma|0,la|0,U|0,0)|0;i=Ik(oa|0,na|0,U|0,0)|0;pa=ia;qa=a;ra=i;f[d>>2]=pa;sa=d+4|0;f[sa>>2]=qa;ta=d+8|0;f[ta>>2]=ra;u=e;return}else{if(!((R|0)>0|(R|0)==0&t>>>0>536870912)){pa=ka;qa=ma;ra=oa;f[d>>2]=pa;sa=d+4|0;f[sa>>2]=qa;ta=d+8|0;f[ta>>2]=ra;u=e;return}i=Yn(t|0,R|0,29)|0;R=I;t=Ik(ka|0,ja|0,i|0,R|0)|0;ja=Ik(ma|0,la|0,i|0,R|0)|0;la=Ik(oa|0,na|0,i|0,R|0)|0;pa=t;qa=ja;ra=la;f[d>>2]=pa;sa=d+4|0;f[sa>>2]=qa;ta=d+8|0;f[ta>>2]=ra;u=e;return}}function jc(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=Oa,V=Oa,X=Oa,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;g=u;u=u+48|0;i=g+28|0;j=g+8|0;k=g;l=g+16|0;m=i+16|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[m>>2]=$(1.0);o=a+80|0;p=f[o>>2]|0;f[l>>2]=0;q=l+4|0;f[q>>2]=0;f[l+8>>2]=0;if(p){if(p>>>0>1073741823)aq(l);r=p<<2;s=ln(r)|0;f[l>>2]=s;t=s+(p<<2)|0;f[l+8>>2]=t;sj(s|0,0,r|0)|0;f[q>>2]=t;t=f[e>>2]|0;e=c+48|0;r=c+40|0;s=i+4|0;p=i+12|0;v=i+8|0;w=a+40|0;x=a+64|0;y=0;z=0;while(1){A=e;B=f[A>>2]|0;C=f[A+4>>2]|0;A=r;D=un(f[A>>2]|0,f[A+4>>2]|0,t+y|0,0)|0;A=Vn(D|0,I|0,B|0,C|0)|0;C=(f[f[c>>2]>>2]|0)+A|0;A=C;B=h[A>>0]|h[A+1>>0]<<8|h[A+2>>0]<<16|h[A+3>>0]<<24;A=C+4|0;C=h[A>>0]|h[A+1>>0]<<8|h[A+2>>0]<<16|h[A+3>>0]<<24;A=j;f[A>>2]=B;f[A+4>>2]=C;A=k;f[A>>2]=B;f[A+4>>2]=C;C=yf(i,k)|0;if(!C){A=k;B=f[A>>2]|0;D=f[A+4>>2]|0;A=B&65535;E=Yn(B|0,D|0,16)|0;F=E&65535;G=D&65535;H=Yn(B|0,D|0,48)|0;J=H&65535;K=((((A^318)&65535)+239^E&65535)+239^D&65535)+239^H&65535;H=f[s>>2]|0;E=(H|0)==0;a:do if(!E){L=H+-1|0;M=(L&H|0)==0;if(!M)if(K>>>0<H>>>0)N=K;else N=(K>>>0)%(H>>>0)|0;else N=K&L;O=f[(f[i>>2]|0)+(N<<2)>>2]|0;if((O|0)!=0?(P=f[O>>2]|0,(P|0)!=0):0){if(M){M=P;while(1){O=f[M+4>>2]|0;if(!((O|0)==(K|0)|(O&L|0)==(N|0))){Q=N;R=31;break a}O=M+8|0;if((((d[O>>1]|0)==A<<16>>16?(d[O+2>>1]|0)==F<<16>>16:0)?(d[M+12>>1]|0)==G<<16>>16:0)?(d[O+6>>1]|0)==J<<16>>16:0)break a;M=f[M>>2]|0;if(!M){Q=N;R=31;break a}}}else S=P;while(1){M=f[S+4>>2]|0;if((M|0)!=(K|0)){if(M>>>0<H>>>0)T=M;else T=(M>>>0)%(H>>>0)|0;if((T|0)!=(N|0)){Q=N;R=31;break a}}M=S+8|0;if((((d[M>>1]|0)==A<<16>>16?(d[M+2>>1]|0)==F<<16>>16:0)?(d[S+12>>1]|0)==G<<16>>16:0)?(d[M+6>>1]|0)==J<<16>>16:0)break a;S=f[S>>2]|0;if(!S){Q=N;R=31;break}}}else{Q=N;R=31}}else{Q=0;R=31}while(0);if((R|0)==31){R=0;J=ln(20)|0;G=J+8|0;F=G;d[F>>1]=B;d[F+2>>1]=B>>>16;F=G+4|0;d[F>>1]=D;d[F+2>>1]=D>>>16;f[J+16>>2]=z;f[J+4>>2]=K;f[J>>2]=0;U=$(((f[p>>2]|0)+1|0)>>>0);V=$(H>>>0);X=$(n[m>>2]);do if(E|$(X*V)<U){F=H<<1|(H>>>0<3|(H+-1&H|0)!=0)&1;G=~~$(W($(U/X)))>>>0;Sh(i,F>>>0<G>>>0?G:F);F=f[s>>2]|0;G=F+-1|0;if(!(G&F)){Y=F;Z=G&K;break}if(K>>>0<F>>>0){Y=F;Z=K}else{Y=F;Z=(K>>>0)%(F>>>0)|0}}else{Y=H;Z=Q}while(0);H=(f[i>>2]|0)+(Z<<2)|0;K=f[H>>2]|0;if(!K){f[J>>2]=f[v>>2];f[v>>2]=J;f[H>>2]=v;H=f[J>>2]|0;if(H|0){E=f[H+4>>2]|0;H=Y+-1|0;if(H&Y)if(E>>>0<Y>>>0)_=E;else _=(E>>>0)%(Y>>>0)|0;else _=E&H;aa=(f[i>>2]|0)+(_<<2)|0;R=44}}else{f[J>>2]=f[K>>2];aa=K;R=44}if((R|0)==44){R=0;f[aa>>2]=J}f[p>>2]=(f[p>>2]|0)+1}K=w;H=f[K>>2]|0;E=un(H|0,f[K+4>>2]|0,z|0,0)|0;kh((f[f[x>>2]>>2]|0)+E|0,j|0,H|0)|0;H=f[l>>2]|0;f[H+(y<<2)>>2]=z;ba=z+1|0;ca=H}else{H=f[l>>2]|0;f[H+(y<<2)>>2]=f[C+16>>2];ba=z;ca=H}y=y+1|0;da=f[o>>2]|0;if(y>>>0>=da>>>0)break;else z=ba}if((ba|0)==(da|0))ea=ca;else{z=a+84|0;if(!(b[z>>0]|0)){y=f[a+72>>2]|0;j=f[a+68>>2]|0;x=j;if((y|0)==(j|0))fa=ca;else{w=y-j>>2;j=0;do{y=x+(j<<2)|0;f[y>>2]=f[ca+(f[y>>2]<<2)>>2];j=j+1|0}while(j>>>0<w>>>0);fa=ca}}else{b[z>>0]=0;z=a+68|0;ca=a+72|0;w=f[ca>>2]|0;j=f[z>>2]|0;x=w-j>>2;y=j;j=w;if(da>>>0<=x>>>0)if(da>>>0<x>>>0?(w=y+(da<<2)|0,(w|0)!=(j|0)):0){f[ca>>2]=j+(~((j+-4-w|0)>>>2)<<2);ga=da}else ga=da;else{Ch(z,da-x|0,1220);ga=f[o>>2]|0}x=f[l>>2]|0;if(!ga)fa=x;else{l=f[a+68>>2]|0;a=0;do{f[l+(a<<2)>>2]=f[x+(a<<2)>>2];a=a+1|0}while(a>>>0<ga>>>0);fa=x}}f[o>>2]=ba;ea=fa}if(!ea)ha=ba;else{fa=f[q>>2]|0;if((fa|0)!=(ea|0))f[q>>2]=fa+(~((fa+-4-ea|0)>>>2)<<2);Oq(ea);ha=ba}}else ha=0;ba=f[i+8>>2]|0;if(ba|0){ea=ba;do{ba=ea;ea=f[ea>>2]|0;Oq(ba)}while((ea|0)!=0)}ea=f[i>>2]|0;f[i>>2]=0;if(!ea){u=g;return ha|0}Oq(ea);u=g;return ha|0}function kc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;c=u;u=u+16|0;d=c+8|0;e=c;g=c+4|0;h=a+16|0;i=f[h>>2]|0;j=a+20|0;k=f[j>>2]|0;if((k|0)==(i|0))l=i;else{m=k+(~((k+-4-i|0)>>>2)<<2)|0;f[j>>2]=m;l=m}m=a+24|0;if((l|0)==(f[m>>2]|0)){Ri(h,b);n=f[h>>2]|0;o=f[j>>2]|0}else{f[l>>2]=f[b>>2];k=l+4|0;f[j>>2]=k;n=i;o=k}k=f[a+8>>2]|0;i=(f[k+100>>2]|0)-(f[k+96>>2]|0)|0;k=(i|0)/12|0;if((n|0)==(o|0)){u=c;return 1}n=a+28|0;l=(i|0)>0;i=a+164|0;p=a+12|0;q=a+76|0;r=a+80|0;s=a+72|0;t=a+152|0;v=a+84|0;w=a+272|0;x=a+276|0;y=a+268|0;z=a+168|0;A=a+140|0;B=a+120|0;C=o;do{o=f[C+-4>>2]|0;f[b>>2]=o;a:do if((o|0)!=-1?(D=(o>>>0)/3|0,E=f[n>>2]|0,(f[E+(D>>>5<<2)>>2]&1<<(D&31)|0)==0):0){if(l){D=0;F=E;b:while(1){E=D+1|0;f[i>>2]=(f[i>>2]|0)+1;G=f[b>>2]|0;H=(G|0)==-1?-1:(G>>>0)/3|0;G=F+(H>>>5<<2)|0;f[G>>2]=1<<(H&31)|f[G>>2];G=f[q>>2]|0;if((G|0)==(f[r>>2]|0))Ri(s,b);else{f[G>>2]=f[b>>2];f[q>>2]=G+4}G=f[b>>2]|0;if((G|0)==-1)I=-1;else I=f[(f[f[p>>2]>>2]|0)+(G<<2)>>2]|0;J=(f[(f[t>>2]|0)+(I<<2)>>2]|0)!=-1;K=(f[v>>2]|0)+(I>>>5<<2)|0;L=1<<(I&31);M=f[K>>2]|0;do if(!(M&L)){f[K>>2]=M|L;if(J){N=f[b>>2]|0;O=30;break}f[d>>2]=0;P=f[w>>2]|0;if((P|0)==(f[x>>2]|0))Ri(y,d);else{f[P>>2]=0;f[w>>2]=P+4}P=f[b>>2]|0;Q=P+1|0;if((P|0)!=-1?(R=((Q>>>0)%3|0|0)==0?P+-2|0:Q,(R|0)!=-1):0)S=f[(f[(f[p>>2]|0)+12>>2]|0)+(R<<2)>>2]|0;else S=-1;f[b>>2]=S}else{N=G;O=30}while(0);if((O|0)==30){O=0;G=N+1|0;if((N|0)==-1){O=35;break}L=((G>>>0)%3|0|0)==0?N+-2|0:G;if((L|0)==-1)T=-1;else T=f[(f[(f[p>>2]|0)+12>>2]|0)+(L<<2)>>2]|0;f[e>>2]=T;L=(((N>>>0)%3|0|0)==0?2:-1)+N|0;if((L|0)==-1)U=-1;else U=f[(f[(f[p>>2]|0)+12>>2]|0)+(L<<2)>>2]|0;L=(T|0)==-1;M=L?-1:(T>>>0)/3|0;V=(U|0)==-1;W=V?-1:(U>>>0)/3|0;K=((G>>>0)%3|0|0)==0?N+-2|0:G;if(((K|0)!=-1?(G=f[(f[p>>2]|0)+12>>2]|0,R=f[G+(K<<2)>>2]|0,(R|0)!=-1):0)?(K=(R>>>0)/3|0,R=f[n>>2]|0,(f[R+(K>>>5<<2)>>2]&1<<(K&31)|0)==0):0){K=(((N>>>0)%3|0|0)==0?2:-1)+N|0;do if((K|0)!=-1){Q=f[G+(K<<2)>>2]|0;if((Q|0)==-1)break;P=(Q>>>0)/3|0;if(!(f[R+(P>>>5<<2)>>2]&1<<(P&31))){O=63;break b}}while(0);if(!V)xf(a,f[i>>2]|0,H,0,W);f[d>>2]=3;R=f[w>>2]|0;if((R|0)==(f[x>>2]|0))Ri(y,d);else{f[R>>2]=3;f[w>>2]=R+4}X=f[e>>2]|0}else{if(!L){xf(a,f[i>>2]|0,H,1,M);R=f[b>>2]|0;if((R|0)==-1){O=44;break}else Y=R}else Y=N;R=(((Y>>>0)%3|0|0)==0?2:-1)+Y|0;if((R|0)==-1){O=44;break}K=f[(f[(f[p>>2]|0)+12>>2]|0)+(R<<2)>>2]|0;if((K|0)==-1){O=44;break}R=(K>>>0)/3|0;if(f[(f[n>>2]|0)+(R>>>5<<2)>>2]&1<<(R&31)|0){O=44;break}f[d>>2]=5;R=f[w>>2]|0;if((R|0)==(f[x>>2]|0))Ri(y,d);else{f[R>>2]=5;f[w>>2]=R+4}X=U}f[b>>2]=X}if((E|0)>=(k|0))break a;D=E;F=f[n>>2]|0}do if((O|0)==35){O=0;f[e>>2]=-1;O=46}else if((O|0)==44){O=0;if(V)O=46;else{xf(a,f[i>>2]|0,H,0,W);O=46}}else if((O|0)==63){O=0;f[d>>2]=1;F=f[w>>2]|0;if((F|0)==(f[x>>2]|0))Ri(y,d);else{f[F>>2]=1;f[w>>2]=F+4}f[z>>2]=(f[z>>2]|0)+1;if(J?(F=f[(f[t>>2]|0)+(I<<2)>>2]|0,(1<<(F&31)&f[(f[A>>2]|0)+(F>>>5<<2)>>2]|0)==0):0){f[g>>2]=f[b>>2];f[d>>2]=f[g>>2];Pe(a,d,0)|0}F=f[i>>2]|0;f[d>>2]=H;D=je(B,d)|0;f[D>>2]=F;F=f[j>>2]|0;f[F+-4>>2]=U;if((F|0)==(f[m>>2]|0)){Ri(h,e);break}else{f[F>>2]=f[e>>2];f[j>>2]=F+4;break}}while(0);if((O|0)==46){O=0;f[d>>2]=7;F=f[w>>2]|0;if((F|0)==(f[x>>2]|0))Ri(y,d);else{f[F>>2]=7;f[w>>2]=F+4}f[j>>2]=(f[j>>2]|0)+-4}}}else O=11;while(0);if((O|0)==11){O=0;f[j>>2]=C+-4}C=f[j>>2]|0}while((f[h>>2]|0)!=(C|0));u=c;return 1}function lc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=Oa,V=Oa,X=Oa,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;e=u;u=u+48|0;g=e+20|0;i=e+16|0;j=e+12|0;k=e;l=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=f[d>>2]|0;d=c+48|0;q=c+40|0;r=g+4|0;o=g+12|0;t=g+8|0;v=a+40|0;w=a+64|0;x=0;y=0;while(1){z=d;A=f[z>>2]|0;B=f[z+4>>2]|0;z=q;C=un(f[z>>2]|0,f[z+4>>2]|0,s+x|0,0)|0;z=Vn(C|0,I|0,A|0,B|0)|0;B=(f[f[c>>2]>>2]|0)+z|0;z=h[B>>0]|h[B+1>>0]<<8|h[B+2>>0]<<16|h[B+3>>0]<<24;f[i>>2]=z;f[j>>2]=z;z=Ef(g,j)|0;if(!z){B=f[j>>2]|0;A=B&255;C=B>>>8;D=C&255;E=B>>>16;F=E&255;G=B>>>24;H=G&255;J=C&255;C=E&255;E=(((B&255^318)+239^J)+239^C)+239^G;G=f[r>>2]|0;K=(G|0)==0;a:do if(!K){L=G+-1|0;M=(L&G|0)==0;if(!M)if(E>>>0<G>>>0)N=E;else N=(E>>>0)%(G>>>0)|0;else N=E&L;O=f[(f[g>>2]|0)+(N<<2)>>2]|0;if((O|0)!=0?(P=f[O>>2]|0,(P|0)!=0):0){if(M){M=P;while(1){O=f[M+4>>2]|0;if(!((O|0)==(E|0)|(O&L|0)==(N|0))){Q=N;R=31;break a}O=M+8|0;if((((b[O>>0]|0)==A<<24>>24?(b[O+1>>0]|0)==D<<24>>24:0)?(b[O+2>>0]|0)==F<<24>>24:0)?(b[O+3>>0]|0)==H<<24>>24:0)break a;M=f[M>>2]|0;if(!M){Q=N;R=31;break a}}}else S=P;while(1){M=f[S+4>>2]|0;if((M|0)!=(E|0)){if(M>>>0<G>>>0)T=M;else T=(M>>>0)%(G>>>0)|0;if((T|0)!=(N|0)){Q=N;R=31;break a}}M=S+8|0;if((((b[M>>0]|0)==A<<24>>24?(b[M+1>>0]|0)==D<<24>>24:0)?(b[M+2>>0]|0)==F<<24>>24:0)?(b[M+3>>0]|0)==H<<24>>24:0)break a;S=f[S>>2]|0;if(!S){Q=N;R=31;break}}}else{Q=N;R=31}}else{Q=0;R=31}while(0);if((R|0)==31){R=0;H=ln(16)|0;F=H+8|0;D=B&-16776961|C<<16|J<<8;b[F>>0]=D;b[F+1>>0]=D>>8;b[F+2>>0]=D>>16;b[F+3>>0]=D>>24;f[H+12>>2]=y;f[H+4>>2]=E;f[H>>2]=0;U=$(((f[o>>2]|0)+1|0)>>>0);V=$(G>>>0);X=$(n[l>>2]);do if(K|$(X*V)<U){D=G<<1|(G>>>0<3|(G+-1&G|0)!=0)&1;F=~~$(W($(U/X)))>>>0;Zh(g,D>>>0<F>>>0?F:D);D=f[r>>2]|0;F=D+-1|0;if(!(F&D)){Y=D;Z=F&E;break}if(E>>>0<D>>>0){Y=D;Z=E}else{Y=D;Z=(E>>>0)%(D>>>0)|0}}else{Y=G;Z=Q}while(0);G=(f[g>>2]|0)+(Z<<2)|0;E=f[G>>2]|0;if(!E){f[H>>2]=f[t>>2];f[t>>2]=H;f[G>>2]=t;G=f[H>>2]|0;if(G|0){K=f[G+4>>2]|0;G=Y+-1|0;if(G&Y)if(K>>>0<Y>>>0)_=K;else _=(K>>>0)%(Y>>>0)|0;else _=K&G;aa=(f[g>>2]|0)+(_<<2)|0;R=44}}else{f[H>>2]=f[E>>2];aa=E;R=44}if((R|0)==44){R=0;f[aa>>2]=H}f[o>>2]=(f[o>>2]|0)+1}E=v;G=f[E>>2]|0;K=un(G|0,f[E+4>>2]|0,y|0,0)|0;kh((f[f[w>>2]>>2]|0)+K|0,i|0,G|0)|0;G=f[k>>2]|0;f[G+(x<<2)>>2]=y;ba=y+1|0;ca=G}else{G=f[k>>2]|0;f[G+(x<<2)>>2]=f[z+12>>2];ba=y;ca=G}x=x+1|0;da=f[m>>2]|0;if(x>>>0>=da>>>0)break;else y=ba}if((ba|0)==(da|0))ea=ca;else{y=a+84|0;if(!(b[y>>0]|0)){x=f[a+72>>2]|0;i=f[a+68>>2]|0;w=i;if((x|0)==(i|0))fa=ca;else{v=x-i>>2;i=0;do{x=w+(i<<2)|0;f[x>>2]=f[ca+(f[x>>2]<<2)>>2];i=i+1|0}while(i>>>0<v>>>0);fa=ca}}else{b[y>>0]=0;y=a+68|0;ca=a+72|0;v=f[ca>>2]|0;i=f[y>>2]|0;w=v-i>>2;x=i;i=v;if(da>>>0<=w>>>0)if(da>>>0<w>>>0?(v=x+(da<<2)|0,(v|0)!=(i|0)):0){f[ca>>2]=i+(~((i+-4-v|0)>>>2)<<2);ga=da}else ga=da;else{Ch(y,da-w|0,1220);ga=f[m>>2]|0}w=f[k>>2]|0;if(!ga)fa=w;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[w+(a<<2)>>2];a=a+1|0}while(a>>>0<ga>>>0);fa=w}}f[m>>2]=ba;ea=fa}if(!ea)ha=ba;else{fa=f[p>>2]|0;if((fa|0)!=(ea|0))f[p>>2]=fa+(~((fa+-4-ea|0)>>>2)<<2);Oq(ea);ha=ba}}else ha=0;ba=f[g+8>>2]|0;if(ba|0){ea=ba;do{ba=ea;ea=f[ea>>2]|0;Oq(ba)}while((ea|0)!=0)}ea=f[g>>2]|0;f[g>>2]=0;if(!ea){u=e;return ha|0}Oq(ea);u=e;return ha|0}function mc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=Oa,V=Oa,X=Oa,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;e=u;u=u+80|0;g=e+48|0;h=e+32|0;i=e+16|0;j=e;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=f[d>>2]|0;d=c+48|0;p=c+40|0;q=i+4|0;m=i+8|0;s=i+12|0;t=g+4|0;v=g+12|0;w=g+8|0;x=a+40|0;y=a+64|0;z=0;A=0;while(1){B=d;C=f[B>>2]|0;D=f[B+4>>2]|0;B=p;E=un(f[B>>2]|0,f[B+4>>2]|0,r+A|0,0)|0;B=Vn(E|0,I|0,C|0,D|0)|0;D=(f[f[c>>2]>>2]|0)+B|0;B=h;C=D;E=B+16|0;do{b[B>>0]=b[C>>0]|0;B=B+1|0;C=C+1|0}while((B|0)<(E|0));im(i|0,D|0,16)|0;C=Vf(g,i)|0;if(!C){B=f[i>>2]|0;E=f[q>>2]|0;F=f[m>>2]|0;G=f[s>>2]|0;H=(((B^318)+239^E)+239^F)+239^G;J=f[t>>2]|0;K=(J|0)==0;a:do if(!K){L=J+-1|0;M=(L&J|0)==0;if(!M)if(H>>>0<J>>>0)N=H;else N=(H>>>0)%(J>>>0)|0;else N=H&L;O=f[(f[g>>2]|0)+(N<<2)>>2]|0;if((O|0)!=0?(P=f[O>>2]|0,(P|0)!=0):0){if(M){M=P;while(1){O=f[M+4>>2]|0;if(!((O|0)==(H|0)|(O&L|0)==(N|0))){Q=N;R=31;break a}if((((f[M+8>>2]|0)==(B|0)?(f[M+12>>2]|0)==(E|0):0)?(f[M+16>>2]|0)==(F|0):0)?(f[M+20>>2]|0)==(G|0):0)break a;M=f[M>>2]|0;if(!M){Q=N;R=31;break a}}}else S=P;while(1){M=f[S+4>>2]|0;if((M|0)!=(H|0)){if(M>>>0<J>>>0)T=M;else T=(M>>>0)%(J>>>0)|0;if((T|0)!=(N|0)){Q=N;R=31;break a}}if((((f[S+8>>2]|0)==(B|0)?(f[S+12>>2]|0)==(E|0):0)?(f[S+16>>2]|0)==(F|0):0)?(f[S+20>>2]|0)==(G|0):0)break a;S=f[S>>2]|0;if(!S){Q=N;R=31;break}}}else{Q=N;R=31}}else{Q=0;R=31}while(0);if((R|0)==31){R=0;D=ln(28)|0;f[D+8>>2]=B;f[D+12>>2]=E;f[D+16>>2]=F;f[D+20>>2]=G;f[D+24>>2]=z;f[D+4>>2]=H;f[D>>2]=0;U=$(((f[v>>2]|0)+1|0)>>>0);V=$(J>>>0);X=$(n[k>>2]);do if(K|$(X*V)<U){P=J<<1|(J>>>0<3|(J+-1&J|0)!=0)&1;M=~~$(W($(U/X)))>>>0;Wh(g,P>>>0<M>>>0?M:P);P=f[t>>2]|0;M=P+-1|0;if(!(M&P)){Y=P;Z=M&H;break}if(H>>>0<P>>>0){Y=P;Z=H}else{Y=P;Z=(H>>>0)%(P>>>0)|0}}else{Y=J;Z=Q}while(0);J=(f[g>>2]|0)+(Z<<2)|0;H=f[J>>2]|0;if(!H){f[D>>2]=f[w>>2];f[w>>2]=D;f[J>>2]=w;J=f[D>>2]|0;if(J|0){K=f[J+4>>2]|0;J=Y+-1|0;if(J&Y)if(K>>>0<Y>>>0)_=K;else _=(K>>>0)%(Y>>>0)|0;else _=K&J;aa=(f[g>>2]|0)+(_<<2)|0;R=44}}else{f[D>>2]=f[H>>2];aa=H;R=44}if((R|0)==44){R=0;f[aa>>2]=D}f[v>>2]=(f[v>>2]|0)+1}H=x;J=f[H>>2]|0;K=un(J|0,f[H+4>>2]|0,z|0,0)|0;kh((f[f[y>>2]>>2]|0)+K|0,h|0,J|0)|0;J=f[j>>2]|0;f[J+(A<<2)>>2]=z;ba=z+1|0;ca=J}else{J=f[j>>2]|0;f[J+(A<<2)>>2]=f[C+24>>2];ba=z;ca=J}A=A+1|0;da=f[l>>2]|0;if(A>>>0>=da>>>0)break;else z=ba}if((ba|0)==(da|0))ea=ca;else{z=a+84|0;if(!(b[z>>0]|0)){A=f[a+72>>2]|0;h=f[a+68>>2]|0;y=h;if((A|0)==(h|0))fa=ca;else{x=A-h>>2;h=0;do{A=y+(h<<2)|0;f[A>>2]=f[ca+(f[A>>2]<<2)>>2];h=h+1|0}while(h>>>0<x>>>0);fa=ca}}else{b[z>>0]=0;z=a+68|0;ca=a+72|0;x=f[ca>>2]|0;h=f[z>>2]|0;y=x-h>>2;A=h;h=x;if(da>>>0<=y>>>0)if(da>>>0<y>>>0?(x=A+(da<<2)|0,(x|0)!=(h|0)):0){f[ca>>2]=h+(~((h+-4-x|0)>>>2)<<2);ga=da}else ga=da;else{Ch(z,da-y|0,1220);ga=f[l>>2]|0}y=f[j>>2]|0;if(!ga)fa=y;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[y+(a<<2)>>2];a=a+1|0}while(a>>>0<ga>>>0);fa=y}}f[l>>2]=ba;ea=fa}if(!ea)ha=ba;else{fa=f[o>>2]|0;if((fa|0)!=(ea|0))f[o>>2]=fa+(~((fa+-4-ea|0)>>>2)<<2);Oq(ea);ha=ba}}else ha=0;ba=f[g+8>>2]|0;if(ba|0){ea=ba;do{ba=ea;ea=f[ea>>2]|0;Oq(ba)}while((ea|0)!=0)}ea=f[g>>2]|0;f[g>>2]=0;if(!ea){u=e;return ha|0}Oq(ea);u=e;return ha|0}function nc(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=Oa,T=Oa,U=Oa,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0;g=u;u=u+48|0;h=g+12|0;i=g+38|0;j=g+32|0;k=g;l=h+16|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=f[e>>2]|0;e=c+48|0;q=c+40|0;r=j+2|0;o=j+4|0;t=h+4|0;v=h+12|0;w=h+8|0;x=a+40|0;y=a+64|0;z=0;A=0;while(1){B=e;C=f[B>>2]|0;D=f[B+4>>2]|0;B=q;E=un(f[B>>2]|0,f[B+4>>2]|0,s+A|0,0)|0;B=Vn(E|0,I|0,C|0,D|0)|0;D=(f[f[c>>2]>>2]|0)+B|0;b[i>>0]=b[D>>0]|0;b[i+1>>0]=b[D+1>>0]|0;b[i+2>>0]=b[D+2>>0]|0;b[i+3>>0]=b[D+3>>0]|0;b[i+4>>0]=b[D+4>>0]|0;b[i+5>>0]=b[D+5>>0]|0;im(j|0,D|0,6)|0;D=dg(h,j)|0;if(!D){B=d[j>>1]|0;C=d[r>>1]|0;E=d[o>>1]|0;F=(((B^318)&65535)+239^C&65535)+239^E&65535;G=f[t>>2]|0;H=(G|0)==0;a:do if(!H){J=G+-1|0;K=(J&G|0)==0;if(!K)if(F>>>0<G>>>0)L=F;else L=(F>>>0)%(G>>>0)|0;else L=F&J;M=f[(f[h>>2]|0)+(L<<2)>>2]|0;if((M|0)!=0?(N=f[M>>2]|0,(N|0)!=0):0){if(K){K=N;while(1){M=f[K+4>>2]|0;if(!((M|0)==(F|0)|(M&J|0)==(L|0))){O=L;P=29;break a}M=K+8|0;if(((d[M>>1]|0)==B<<16>>16?(d[M+2>>1]|0)==C<<16>>16:0)?(d[K+12>>1]|0)==E<<16>>16:0)break a;K=f[K>>2]|0;if(!K){O=L;P=29;break a}}}else Q=N;while(1){K=f[Q+4>>2]|0;if((K|0)!=(F|0)){if(K>>>0<G>>>0)R=K;else R=(K>>>0)%(G>>>0)|0;if((R|0)!=(L|0)){O=L;P=29;break a}}K=Q+8|0;if(((d[K>>1]|0)==B<<16>>16?(d[K+2>>1]|0)==C<<16>>16:0)?(d[Q+12>>1]|0)==E<<16>>16:0)break a;Q=f[Q>>2]|0;if(!Q){O=L;P=29;break}}}else{O=L;P=29}}else{O=0;P=29}while(0);if((P|0)==29){P=0;N=ln(20)|0;d[N+8>>1]=B;d[N+10>>1]=C;d[N+12>>1]=E;f[N+16>>2]=z;f[N+4>>2]=F;f[N>>2]=0;S=$(((f[v>>2]|0)+1|0)>>>0);T=$(G>>>0);U=$(n[l>>2]);do if(H|$(U*T)<S){K=G<<1|(G>>>0<3|(G+-1&G|0)!=0)&1;J=~~$(W($(S/U)))>>>0;Th(h,K>>>0<J>>>0?J:K);K=f[t>>2]|0;J=K+-1|0;if(!(J&K)){V=K;X=J&F;break}if(F>>>0<K>>>0){V=K;X=F}else{V=K;X=(F>>>0)%(K>>>0)|0}}else{V=G;X=O}while(0);G=(f[h>>2]|0)+(X<<2)|0;F=f[G>>2]|0;if(!F){f[N>>2]=f[w>>2];f[w>>2]=N;f[G>>2]=w;G=f[N>>2]|0;if(G|0){H=f[G+4>>2]|0;G=V+-1|0;if(G&V)if(H>>>0<V>>>0)Y=H;else Y=(H>>>0)%(V>>>0)|0;else Y=H&G;Z=(f[h>>2]|0)+(Y<<2)|0;P=42}}else{f[N>>2]=f[F>>2];Z=F;P=42}if((P|0)==42){P=0;f[Z>>2]=N}f[v>>2]=(f[v>>2]|0)+1}F=x;G=f[F>>2]|0;H=un(G|0,f[F+4>>2]|0,z|0,0)|0;kh((f[f[y>>2]>>2]|0)+H|0,i|0,G|0)|0;G=f[k>>2]|0;f[G+(A<<2)>>2]=z;_=z+1|0;aa=G}else{G=f[k>>2]|0;f[G+(A<<2)>>2]=f[D+16>>2];_=z;aa=G}A=A+1|0;ba=f[m>>2]|0;if(A>>>0>=ba>>>0)break;else z=_}if((_|0)==(ba|0))ca=aa;else{z=a+84|0;if(!(b[z>>0]|0)){A=f[a+72>>2]|0;i=f[a+68>>2]|0;y=i;if((A|0)==(i|0))da=aa;else{x=A-i>>2;i=0;do{A=y+(i<<2)|0;f[A>>2]=f[aa+(f[A>>2]<<2)>>2];i=i+1|0}while(i>>>0<x>>>0);da=aa}}else{b[z>>0]=0;z=a+68|0;aa=a+72|0;x=f[aa>>2]|0;i=f[z>>2]|0;y=x-i>>2;A=i;i=x;if(ba>>>0<=y>>>0)if(ba>>>0<y>>>0?(x=A+(ba<<2)|0,(x|0)!=(i|0)):0){f[aa>>2]=i+(~((i+-4-x|0)>>>2)<<2);ea=ba}else ea=ba;else{Ch(z,ba-y|0,1220);ea=f[m>>2]|0}y=f[k>>2]|0;if(!ea)da=y;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[y+(a<<2)>>2];a=a+1|0}while(a>>>0<ea>>>0);da=y}}f[m>>2]=_;ca=da}if(!ca)fa=_;else{da=f[p>>2]|0;if((da|0)!=(ca|0))f[p>>2]=da+(~((da+-4-ca|0)>>>2)<<2);Oq(ca);fa=_}}else fa=0;_=f[h+8>>2]|0;if(_|0){ca=_;do{_=ca;ca=f[ca>>2]|0;Oq(_)}while((ca|0)!=0)}ca=f[h>>2]|0;f[h>>2]=0;if(!ca){u=g;return fa|0}Oq(ca);u=g;return fa|0}function oc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0;g=a+8|0;Mh(g,b,d,e);d=f[a+48>>2]|0;h=f[a+52>>2]|0;i=e>>>0>1073741823?-1:e<<2;j=Lq(i)|0;sj(j|0,0,i|0)|0;k=Lq(i)|0;sj(k|0,0,i|0)|0;i=f[a+56>>2]|0;l=i+4|0;m=f[l>>2]|0;n=f[i>>2]|0;o=m-n|0;a:do if((o|0)>4){p=o>>2;q=(e|0)>0;r=a+16|0;s=a+32|0;t=a+12|0;u=a+28|0;v=a+20|0;w=a+24|0;x=d+12|0;y=e<<2;z=p+-1|0;if(m-n>>2>>>0>z>>>0){A=p;B=z;C=n}else aq(i);while(1){z=f[C+(B<<2)>>2]|0;if(q)sj(j|0,0,y|0)|0;if((z|0)!=-1){p=f[x>>2]|0;D=0;E=z;while(1){F=f[p+(E<<2)>>2]|0;if((F|0)!=-1){G=f[d>>2]|0;H=f[h>>2]|0;I=f[H+(f[G+(F<<2)>>2]<<2)>>2]|0;J=F+1|0;K=((J>>>0)%3|0|0)==0?F+-2|0:J;if((K|0)==-1)L=-1;else L=f[G+(K<<2)>>2]|0;K=f[H+(L<<2)>>2]|0;J=(((F>>>0)%3|0|0)==0?2:-1)+F|0;if((J|0)==-1)M=-1;else M=f[G+(J<<2)>>2]|0;J=f[H+(M<<2)>>2]|0;if((I|0)<(B|0)&(K|0)<(B|0)&(J|0)<(B|0)){H=X(I,e)|0;I=X(K,e)|0;K=X(J,e)|0;if(q){J=0;do{f[k+(J<<2)>>2]=(f[b+(J+K<<2)>>2]|0)+(f[b+(J+I<<2)>>2]|0)-(f[b+(J+H<<2)>>2]|0);J=J+1|0}while((J|0)!=(e|0));if(q){J=0;do{H=j+(J<<2)|0;f[H>>2]=(f[H>>2]|0)+(f[k+(J<<2)>>2]|0);J=J+1|0}while((J|0)!=(e|0))}}N=D+1|0}else N=D}else N=D;J=(((E>>>0)%3|0|0)==0?2:-1)+E|0;do if((J|0)!=-1?(H=f[p+(J<<2)>>2]|0,(H|0)!=-1):0)if(!((H>>>0)%3|0)){O=H+2|0;break}else{O=H+-1|0;break}else O=-1;while(0);E=(O|0)==(z|0)?-1:O;if((E|0)==-1)break;else D=N}D=X(B,e)|0;if(N){if(q){E=0;do{z=j+(E<<2)|0;f[z>>2]=(f[z>>2]|0)/(N|0)|0;E=E+1|0}while((E|0)!=(e|0))}E=b+(D<<2)|0;z=c+(D<<2)|0;p=f[g>>2]|0;if((p|0)>0){J=0;H=j;I=p;while(1){if((I|0)>0){p=0;do{K=f[H+(p<<2)>>2]|0;G=f[r>>2]|0;if((K|0)>(G|0)){F=f[s>>2]|0;f[F+(p<<2)>>2]=G;P=F}else{F=f[t>>2]|0;G=f[s>>2]|0;f[G+(p<<2)>>2]=(K|0)<(F|0)?F:K;P=G}p=p+1|0}while((p|0)<(f[g>>2]|0));Q=P}else Q=f[s>>2]|0;p=(f[E+(J<<2)>>2]|0)-(f[Q+(J<<2)>>2]|0)|0;G=z+(J<<2)|0;f[G>>2]=p;if((p|0)>=(f[u>>2]|0)){if((p|0)>(f[w>>2]|0)){R=p-(f[v>>2]|0)|0;S=57}}else{R=(f[v>>2]|0)+p|0;S=57}if((S|0)==57){S=0;f[G>>2]=R}J=J+1|0;I=f[g>>2]|0;if((J|0)>=(I|0))break;else H=Q}}}else{T=D;S=30}}else{T=X(B,e)|0;S=30}if((S|0)==30?(S=0,H=b+(T<<2)|0,I=c+(T<<2)|0,J=f[g>>2]|0,(J|0)>0):0){z=0;E=b+((X(A+-2|0,e)|0)<<2)|0;G=J;while(1){if((G|0)>0){J=0;do{p=f[E+(J<<2)>>2]|0;K=f[r>>2]|0;if((p|0)>(K|0)){F=f[s>>2]|0;f[F+(J<<2)>>2]=K;U=F}else{F=f[t>>2]|0;K=f[s>>2]|0;f[K+(J<<2)>>2]=(p|0)<(F|0)?F:p;U=K}J=J+1|0}while((J|0)<(f[g>>2]|0));V=U}else V=f[s>>2]|0;J=(f[H+(z<<2)>>2]|0)-(f[V+(z<<2)>>2]|0)|0;K=I+(z<<2)|0;f[K>>2]=J;if((J|0)>=(f[u>>2]|0)){if((J|0)>(f[w>>2]|0)){W=J-(f[v>>2]|0)|0;S=42}}else{W=(f[v>>2]|0)+J|0;S=42}if((S|0)==42){S=0;f[K>>2]=W}z=z+1|0;G=f[g>>2]|0;if((z|0)>=(G|0))break;else E=V}}if((A|0)<=2)break a;C=f[i>>2]|0;E=B+-1|0;if((f[l>>2]|0)-C>>2>>>0<=E>>>0)break;else{G=B;B=E;A=G}}aq(i)}while(0);if((e|0)>0)sj(j|0,0,e<<2|0)|0;e=f[g>>2]|0;if((e|0)<=0){Mq(k);Mq(j);return 1}i=a+16|0;A=a+32|0;B=a+12|0;C=a+28|0;l=a+20|0;V=a+24|0;a=0;W=j;U=e;while(1){if((U|0)>0){e=0;do{T=f[W+(e<<2)>>2]|0;Q=f[i>>2]|0;if((T|0)>(Q|0)){R=f[A>>2]|0;f[R+(e<<2)>>2]=Q;Y=R}else{R=f[B>>2]|0;Q=f[A>>2]|0;f[Q+(e<<2)>>2]=(T|0)<(R|0)?R:T;Y=Q}e=e+1|0}while((e|0)<(f[g>>2]|0));Z=Y}else Z=f[A>>2]|0;e=(f[b+(a<<2)>>2]|0)-(f[Z+(a<<2)>>2]|0)|0;Q=c+(a<<2)|0;f[Q>>2]=e;if((e|0)>=(f[C>>2]|0)){if((e|0)>(f[V>>2]|0)){_=e-(f[l>>2]|0)|0;S=72}}else{_=(f[l>>2]|0)+e|0;S=72}if((S|0)==72){S=0;f[Q>>2]=_}a=a+1|0;U=f[g>>2]|0;if((a|0)>=(U|0))break;else W=Z}Mq(k);Mq(j);return 1}function pc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0;g=a+8|0;Mh(g,b,d,e);d=f[a+48>>2]|0;h=f[a+52>>2]|0;i=e>>>0>1073741823?-1:e<<2;j=Lq(i)|0;sj(j|0,0,i|0)|0;k=Lq(i)|0;sj(k|0,0,i|0)|0;i=f[a+56>>2]|0;l=i+4|0;m=f[l>>2]|0;n=f[i>>2]|0;o=m-n|0;a:do if((o|0)>4){p=o>>2;q=(e|0)>0;r=a+16|0;s=a+32|0;t=a+12|0;u=a+28|0;v=a+20|0;w=a+24|0;x=d+64|0;y=d+28|0;z=e<<2;A=p+-1|0;if(m-n>>2>>>0>A>>>0){B=p;C=A;D=n}else aq(i);while(1){A=f[D+(C<<2)>>2]|0;if(q)sj(j|0,0,z|0)|0;if((A|0)!=-1){p=f[d>>2]|0;E=0;F=A;while(1){if(((f[p+(F>>>5<<2)>>2]&1<<(F&31)|0)==0?(G=f[(f[(f[x>>2]|0)+12>>2]|0)+(F<<2)>>2]|0,(G|0)!=-1):0)?(H=f[y>>2]|0,I=f[h>>2]|0,J=f[I+(f[H+(G<<2)>>2]<<2)>>2]|0,K=G+1|0,L=f[I+(f[H+((((K>>>0)%3|0|0)==0?G+-2|0:K)<<2)>>2]<<2)>>2]|0,K=f[I+(f[H+((((G>>>0)%3|0|0)==0?2:-1)+G<<2)>>2]<<2)>>2]|0,(J|0)<(C|0)&(L|0)<(C|0)&(K|0)<(C|0)):0){G=X(J,e)|0;J=X(L,e)|0;L=X(K,e)|0;if(q){K=0;do{f[k+(K<<2)>>2]=(f[b+(K+L<<2)>>2]|0)+(f[b+(K+J<<2)>>2]|0)-(f[b+(K+G<<2)>>2]|0);K=K+1|0}while((K|0)!=(e|0));if(q){K=0;do{G=j+(K<<2)|0;f[G>>2]=(f[G>>2]|0)+(f[k+(K<<2)>>2]|0);K=K+1|0}while((K|0)!=(e|0))}}M=E+1|0}else M=E;K=(((F>>>0)%3|0|0)==0?2:-1)+F|0;do if(((K|0)!=-1?(f[p+(K>>>5<<2)>>2]&1<<(K&31)|0)==0:0)?(G=f[(f[(f[x>>2]|0)+12>>2]|0)+(K<<2)>>2]|0,(G|0)!=-1):0)if(!((G>>>0)%3|0)){N=G+2|0;break}else{N=G+-1|0;break}else N=-1;while(0);F=(N|0)==(A|0)?-1:N;if((F|0)==-1)break;else E=M}E=X(C,e)|0;if(M){if(q){F=0;do{A=j+(F<<2)|0;f[A>>2]=(f[A>>2]|0)/(M|0)|0;F=F+1|0}while((F|0)!=(e|0))}F=b+(E<<2)|0;A=c+(E<<2)|0;p=f[g>>2]|0;if((p|0)>0){K=0;G=j;J=p;while(1){if((J|0)>0){p=0;do{L=f[G+(p<<2)>>2]|0;H=f[r>>2]|0;if((L|0)>(H|0)){I=f[s>>2]|0;f[I+(p<<2)>>2]=H;O=I}else{I=f[t>>2]|0;H=f[s>>2]|0;f[H+(p<<2)>>2]=(L|0)<(I|0)?I:L;O=H}p=p+1|0}while((p|0)<(f[g>>2]|0));P=O}else P=f[s>>2]|0;p=(f[F+(K<<2)>>2]|0)-(f[P+(K<<2)>>2]|0)|0;H=A+(K<<2)|0;f[H>>2]=p;if((p|0)>=(f[u>>2]|0)){if((p|0)>(f[w>>2]|0)){Q=p-(f[v>>2]|0)|0;R=55}}else{Q=(f[v>>2]|0)+p|0;R=55}if((R|0)==55){R=0;f[H>>2]=Q}K=K+1|0;J=f[g>>2]|0;if((K|0)>=(J|0))break;else G=P}}}else{S=E;R=28}}else{S=X(C,e)|0;R=28}if((R|0)==28?(R=0,G=b+(S<<2)|0,J=c+(S<<2)|0,K=f[g>>2]|0,(K|0)>0):0){A=0;F=b+((X(B+-2|0,e)|0)<<2)|0;H=K;while(1){if((H|0)>0){K=0;do{p=f[F+(K<<2)>>2]|0;L=f[r>>2]|0;if((p|0)>(L|0)){I=f[s>>2]|0;f[I+(K<<2)>>2]=L;T=I}else{I=f[t>>2]|0;L=f[s>>2]|0;f[L+(K<<2)>>2]=(p|0)<(I|0)?I:p;T=L}K=K+1|0}while((K|0)<(f[g>>2]|0));U=T}else U=f[s>>2]|0;K=(f[G+(A<<2)>>2]|0)-(f[U+(A<<2)>>2]|0)|0;L=J+(A<<2)|0;f[L>>2]=K;if((K|0)>=(f[u>>2]|0)){if((K|0)>(f[w>>2]|0)){V=K-(f[v>>2]|0)|0;R=40}}else{V=(f[v>>2]|0)+K|0;R=40}if((R|0)==40){R=0;f[L>>2]=V}A=A+1|0;H=f[g>>2]|0;if((A|0)>=(H|0))break;else F=U}}if((B|0)<=2)break a;D=f[i>>2]|0;F=C+-1|0;if((f[l>>2]|0)-D>>2>>>0<=F>>>0)break;else{H=C;C=F;B=H}}aq(i)}while(0);if((e|0)>0)sj(j|0,0,e<<2|0)|0;e=f[g>>2]|0;if((e|0)<=0){Mq(k);Mq(j);return 1}i=a+16|0;B=a+32|0;C=a+12|0;D=a+28|0;l=a+20|0;U=a+24|0;a=0;V=j;T=e;while(1){if((T|0)>0){e=0;do{S=f[V+(e<<2)>>2]|0;P=f[i>>2]|0;if((S|0)>(P|0)){Q=f[B>>2]|0;f[Q+(e<<2)>>2]=P;W=Q}else{Q=f[C>>2]|0;P=f[B>>2]|0;f[P+(e<<2)>>2]=(S|0)<(Q|0)?Q:S;W=P}e=e+1|0}while((e|0)<(f[g>>2]|0));Y=W}else Y=f[B>>2]|0;e=(f[b+(a<<2)>>2]|0)-(f[Y+(a<<2)>>2]|0)|0;P=c+(a<<2)|0;f[P>>2]=e;if((e|0)>=(f[D>>2]|0)){if((e|0)>(f[U>>2]|0)){Z=e-(f[l>>2]|0)|0;R=70}}else{Z=(f[l>>2]|0)+e|0;R=70}if((R|0)==70){R=0;f[P>>2]=Z}a=a+1|0;T=f[g>>2]|0;if((a|0)>=(T|0))break;else V=Y}Mq(k);Mq(j);return 1}function qc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;e=u;u=u+64|0;d=e+48|0;h=e+40|0;i=e+32|0;j=e+16|0;k=e+8|0;l=e;m=e+28|0;n=a+8|0;o=f[n>>2]|0;if((o+-2|0)>>>0<=28){f[a+72>>2]=o;p=1<<o;f[a+76>>2]=p+-1;o=p+-2|0;f[a+80>>2]=o;f[a+84>>2]=(o|0)/2|0}o=a+40|0;f[a+48>>2]=g;g=a+88|0;tk(g);p=a+36|0;q=f[p>>2]|0;r=(f[q+4>>2]|0)-(f[q>>2]|0)|0;s=r>>2;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;t=k;f[t>>2]=0;f[t+4>>2]=0;t=l;f[t>>2]=0;f[t+4>>2]=0;if((r|0)<=0){u=e;return 1}r=j+4|0;t=j+8|0;v=a+84|0;w=a+80|0;x=h+4|0;y=i+4|0;z=d+4|0;A=k+4|0;B=h+4|0;C=i+4|0;D=d+4|0;E=l+4|0;F=a+76|0;a=k+4|0;G=l+4|0;H=f[q>>2]|0;if((f[q+4>>2]|0)==(H|0)){J=q;aq(J)}else{K=0;L=H}while(1){f[m>>2]=f[L+(K<<2)>>2];f[d>>2]=f[m>>2];ic(o,d,j);H=f[j>>2]|0;q=(H|0)>-1?H:0-H|0;M=f[r>>2]|0;N=(M|0)>-1?M:0-M|0;O=Vn(N|0,((N|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;q=f[t>>2]|0;N=(q|0)>-1;P=N?q:0-q|0;q=Vn(O|0,I|0,P|0,((P|0)<0)<<31>>31|0)|0;P=I;if((q|0)==0&(P|0)==0){O=f[v>>2]|0;Q=O;R=j;S=M;T=O}else{O=f[v>>2]|0;U=((O|0)<0)<<31>>31;V=un(O|0,U|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Ik(V|0,I|0,q|0,P|0)|0;f[j>>2]=H;V=un(O|0,U|0,M|0,((M|0)<0)<<31>>31|0)|0;M=Ik(V|0,I|0,q|0,P|0)|0;f[r>>2]=M;P=O-((H|0)>-1?H:0-H|0)-((M|0)>-1?M:0-M|0)|0;Q=N?P:0-P|0;R=t;S=M;T=O}f[R>>2]=Q;O=f[j>>2]|0;do if((O|0)<=-1){if((S|0)<0){M=f[t>>2]|0;W=(M|0)>-1?M:0-M|0;X=M}else{M=f[t>>2]|0;W=(f[w>>2]|0)-((M|0)>-1?M:0-M|0)|0;X=M}if((X|0)<0){Y=(S|0)>-1?S:0-S|0;Z=W;_=X;break}else{Y=(f[w>>2]|0)-((S|0)>-1?S:0-S|0)|0;Z=W;_=X;break}}else{M=f[t>>2]|0;Y=M+T|0;Z=T+S|0;_=M}while(0);M=(Z|0)==0;P=(Y|0)==0;N=f[w>>2]|0;do if(Y|Z){H=(N|0)==(Y|0);if(!(M&H)){q=(N|0)==(Z|0);if(!(P&q)){if(M&(T|0)<(Y|0)){$=0;aa=(T<<1)-Y|0;break}if(q&(T|0)>(Y|0)){$=Z;aa=(T<<1)-Y|0;break}if(H&(T|0)>(Z|0)){$=(T<<1)-Z|0;aa=Y;break}if(P){$=(T|0)<(Z|0)?(T<<1)-Z|0:Z;aa=0}else{$=Z;aa=Y}}else{$=Z;aa=Z}}else{$=Y;aa=Y}}else{$=N;aa=N}while(0);P=0-S|0;M=0-_|0;f[j>>2]=0-O;f[r>>2]=P;f[t>>2]=M;if((O|0)<1){ba=T-_|0;ca=T-S|0}else{H=(_|0)<1?M:_;M=(S|0)<1?P:S;ba=(_|0)>0?M:N-M|0;ca=(S|0)>0?H:N-H|0}H=(ca|0)==0;M=(ba|0)==0;do if(((ba|ca|0)!=0?(P=(N|0)==(ba|0),!(H&P)):0)?(q=(N|0)==(ca|0),!(M&q)):0){if(H&(T|0)<(ba|0)){da=0;ea=(T<<1)-ba|0;break}if(q&(T|0)>(ba|0)){da=N;ea=(T<<1)-ba|0;break}if(P&(T|0)>(ca|0)){da=(T<<1)-ca|0;ea=N;break}if(M){da=(T|0)<(ca|0)?(T<<1)-ca|0:ca;ea=0}else{da=ca;ea=ba}}else{da=N;ea=N}while(0);N=K<<1;M=b+(N<<2)|0;H=M+4|0;O=f[H>>2]|0;f[h>>2]=f[M>>2];f[x>>2]=O;f[i>>2]=$;f[y>>2]=aa;Od(d,n,h,i);O=f[d>>2]|0;f[k>>2]=O;P=f[z>>2]|0;f[A>>2]=P;q=f[H>>2]|0;f[h>>2]=f[M>>2];f[B>>2]=q;f[i>>2]=da;f[C>>2]=ea;Od(d,n,h,i);q=f[d>>2]|0;f[l>>2]=q;M=f[D>>2]|0;f[E>>2]=M;H=f[v>>2]|0;if((H|0)>=(O|0))if((O|0)<(0-H|0))fa=(f[F>>2]|0)+O|0;else fa=O;else fa=O-(f[F>>2]|0)|0;f[k>>2]=fa;if((H|0)>=(P|0))if((P|0)<(0-H|0))ga=(f[F>>2]|0)+P|0;else ga=P;else ga=P-(f[F>>2]|0)|0;f[a>>2]=ga;if((H|0)>=(q|0))if((q|0)<(0-H|0))ha=(f[F>>2]|0)+q|0;else ha=q;else ha=q-(f[F>>2]|0)|0;f[l>>2]=ha;if((H|0)>=(M|0))if((M|0)<(0-H|0))ia=(f[F>>2]|0)+M|0;else ia=M;else ia=M-(f[F>>2]|0)|0;f[G>>2]=ia;if((((ga|0)>-1?ga:0-ga|0)+((fa|0)>-1?fa:0-fa|0)|0)<(((ha|0)>-1?ha:0-ha|0)+((ia|0)>-1?ia:0-ia|0)|0)){fj(g,0);ja=k}else{fj(g,1);ja=l}M=f[ja>>2]|0;if((M|0)<0)ka=(f[F>>2]|0)+M|0;else ka=M;M=c+(N<<2)|0;f[M>>2]=ka;N=f[ja+4>>2]|0;if((N|0)<0)la=(f[F>>2]|0)+N|0;else la=N;f[M+4>>2]=la;K=K+1|0;if((K|0)>=(s|0)){ma=5;break}M=f[p>>2]|0;L=f[M>>2]|0;if((f[M+4>>2]|0)-L>>2>>>0<=K>>>0){J=M;ma=6;break}}if((ma|0)==5){u=e;return 1}else if((ma|0)==6)aq(J);return 0}function rc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;c=u;u=u+48|0;d=c+24|0;e=c+12|0;g=c;if(!b){h=0;u=c;return h|0}i=a+12|0;j=a+4|0;k=f[j>>2]|0;l=f[a>>2]|0;m=k-l>>2;n=a+16|0;o=f[n>>2]|0;p=f[i>>2]|0;q=o-p>>2;r=p;p=o;if(m>>>0<=q>>>0)if(m>>>0<q>>>0?(o=r+(m<<2)|0,(o|0)!=(p|0)):0){f[n>>2]=p+(~((p+-4-o|0)>>>2)<<2);s=l;t=k}else{s=l;t=k}else{Ch(i,m-q|0,6140);s=f[a>>2]|0;t=f[j>>2]|0}f[d>>2]=0;q=d+4|0;f[q>>2]=0;f[d+8>>2]=0;gk(d,t-s>>2);s=f[j>>2]|0;t=f[a>>2]|0;if((s|0)==(t|0)){v=s;w=s}else{m=f[d>>2]|0;k=m;l=k;o=0;p=s;s=k;k=t;t=m;while(1){m=f[k+(o<<2)>>2]|0;n=f[q>>2]|0;if(m>>>0<n-t>>2>>>0){x=l;y=s;z=k;A=p}else{r=m+1|0;f[e>>2]=0;B=n-t>>2;C=t;D=n;if(r>>>0<=B>>>0)if(r>>>0<B>>>0?(n=C+(r<<2)|0,(n|0)!=(D|0)):0){f[q>>2]=D+(~((D+-4-n|0)>>>2)<<2);E=l;F=p;G=k}else{E=l;F=p;G=k}else{Ch(d,r-B|0,e);E=f[d>>2]|0;F=f[j>>2]|0;G=f[a>>2]|0}x=E;y=E;z=G;A=F}B=y+(m<<2)|0;f[B>>2]=(f[B>>2]|0)+1;o=o+1|0;if(o>>>0>=A-z>>2>>>0){v=z;w=A;break}else{l=x;p=A;s=y;k=z;t=y}}}y=w-v|0;v=y>>2;f[e>>2]=0;w=e+4|0;f[w>>2]=0;f[e+8>>2]=0;if(!v){H=0;I=0}else{if(v>>>0>536870911)aq(e);t=ln(y<<1)|0;f[w>>2]=t;f[e>>2]=t;y=t+(v<<3)|0;f[e+8>>2]=y;z=v;v=t;k=t;while(1){s=v;f[s>>2]=-1;f[s+4>>2]=-1;s=k+8|0;A=z+-1|0;if(!A)break;else{z=A;v=s;k=s}}f[w>>2]=y;H=t;I=t}t=f[q>>2]|0;y=f[d>>2]|0;k=t-y|0;v=k>>2;f[g>>2]=0;z=g+4|0;f[z>>2]=0;f[g+8>>2]=0;s=y;do if(v)if(v>>>0>1073741823)aq(g);else{A=ln(k)|0;f[g>>2]=A;p=A+(v<<2)|0;f[g+8>>2]=p;sj(A|0,0,k|0)|0;f[z>>2]=p;J=A;K=p;L=A;break}else{J=0;K=0;L=0}while(0);if((t|0)!=(y|0)){y=0;t=0;while(1){f[J+(t<<2)>>2]=y;k=t+1|0;if(k>>>0<v>>>0){y=(f[s+(t<<2)>>2]|0)+y|0;t=k}else break}}t=f[j>>2]|0;j=f[a>>2]|0;y=j;if((t|0)!=(j|0)){k=a+40|0;a=t-j>>2;j=H;t=H;g=H;A=H;p=H;x=H;l=0;o=J;while(1){F=f[y+(l<<2)>>2]|0;G=l+1|0;E=((G>>>0)%3|0|0)==0?l+-2|0:G;if((E|0)==-1)M=-1;else M=f[y+(E<<2)>>2]|0;E=((l>>>0)%3|0|0)==0;G=(E?2:-1)+l|0;if((G|0)==-1)N=-1;else N=f[y+(G<<2)>>2]|0;if(E?(M|0)==(N|0)|((F|0)==(M|0)|(F|0)==(N|0)):0){f[k>>2]=(f[k>>2]|0)+1;O=j;P=t;Q=g;R=A;S=p;T=x;U=l+2|0;V=o}else W=51;a:do if((W|0)==51){W=0;E=f[s+(N<<2)>>2]|0;b:do if((E|0)>0){G=0;B=f[o+(N<<2)>>2]|0;while(1){m=f[p+(B<<3)>>2]|0;if((m|0)==-1){X=j;Y=t;Z=A;_=p;break b}if((m|0)==(M|0)){m=f[p+(B<<3)+4>>2]|0;if((m|0)==-1)$=-1;else $=f[y+(m<<2)>>2]|0;if((F|0)!=($|0))break}m=G+1|0;if((m|0)<(E|0)){G=m;B=B+1|0}else{X=j;Y=t;Z=A;_=p;break b}}m=f[A+(B<<3)+4>>2]|0;r=G;n=B;D=t;while(1){r=r+1|0;if((r|0)>=(E|0))break;C=n+1|0;f[D+(n<<3)>>2]=f[D+(C<<3)>>2];f[D+(n<<3)+4>>2]=f[D+(C<<3)+4>>2];if((f[j+(n<<3)>>2]|0)==-1)break;else{n=C;D=j}}f[g+(n<<3)>>2]=-1;if((m|0)==-1){X=g;Y=g;Z=g;_=g}else{D=f[i>>2]|0;f[D+(l<<2)>>2]=m;f[D+(m<<2)>>2]=l;O=g;P=g;Q=g;R=g;S=g;T=x;U=l;V=o;break a}}else{X=j;Y=t;Z=A;_=p}while(0);E=f[s+(M<<2)>>2]|0;if((E|0)>0){D=0;r=f[J+(M<<2)>>2]|0;while(1){aa=x+(r<<3)|0;if((f[aa>>2]|0)==-1)break;D=D+1|0;if((D|0)>=(E|0)){O=x;P=x;Q=x;R=x;S=x;T=x;U=l;V=J;break a}else r=r+1|0}f[aa>>2]=N;f[H+(r<<3)+4>>2]=l;O=H;P=H;Q=H;R=H;S=H;T=H;U=l;V=J}else{O=X;P=Y;Q=g;R=Z;S=_;T=x;U=l;V=o}}while(0);l=U+1|0;if(l>>>0>=a>>>0)break;else{j=O;t=P;g=Q;A=R;p=S;x=T;o=V}}}f[b>>2]=v;if(!J){ba=H;ca=I}else{if((K|0)!=(J|0))f[z>>2]=K+(~((K+-4-J|0)>>>2)<<2);Oq(L);L=f[e>>2]|0;ba=L;ca=L}if(ba|0){L=f[w>>2]|0;if((L|0)!=(ba|0))f[w>>2]=L+(~((L+-8-ba|0)>>>3)<<3);Oq(ca)}ca=f[d>>2]|0;if(ca|0){d=f[q>>2]|0;if((d|0)!=(ca|0))f[q>>2]=d+(~((d+-4-ca|0)>>>2)<<2);Oq(ca)}h=1;u=c;return h|0}function sc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=Oa,S=Oa,T=Oa,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0;e=u;u=u+48|0;g=e+12|0;h=e+35|0;i=e+32|0;j=e;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=f[d>>2]|0;d=c+48|0;p=c+40|0;q=i+1|0;m=i+2|0;s=g+4|0;t=g+12|0;v=g+8|0;w=a+40|0;x=a+64|0;y=0;z=0;while(1){A=d;B=f[A>>2]|0;C=f[A+4>>2]|0;A=p;D=un(f[A>>2]|0,f[A+4>>2]|0,r+y|0,0)|0;A=Vn(D|0,I|0,B|0,C|0)|0;C=(f[f[c>>2]>>2]|0)+A|0;b[h>>0]=b[C>>0]|0;b[h+1>>0]=b[C+1>>0]|0;b[h+2>>0]=b[C+2>>0]|0;im(i|0,C|0,3)|0;C=jg(g,i)|0;if(!C){A=b[i>>0]|0;B=b[q>>0]|0;D=b[m>>0]|0;E=((A&255^318)+239^B&255)+239^D&255;F=f[s>>2]|0;G=(F|0)==0;a:do if(!G){H=F+-1|0;J=(H&F|0)==0;if(!J)if(E>>>0<F>>>0)K=E;else K=(E>>>0)%(F>>>0)|0;else K=E&H;L=f[(f[g>>2]|0)+(K<<2)>>2]|0;if((L|0)!=0?(M=f[L>>2]|0,(M|0)!=0):0){if(J){J=M;while(1){L=f[J+4>>2]|0;if(!((L|0)==(E|0)|(L&H|0)==(K|0))){N=K;O=29;break a}L=J+8|0;if(((b[L>>0]|0)==A<<24>>24?(b[L+1>>0]|0)==B<<24>>24:0)?(b[L+2>>0]|0)==D<<24>>24:0)break a;J=f[J>>2]|0;if(!J){N=K;O=29;break a}}}else P=M;while(1){J=f[P+4>>2]|0;if((J|0)!=(E|0)){if(J>>>0<F>>>0)Q=J;else Q=(J>>>0)%(F>>>0)|0;if((Q|0)!=(K|0)){N=K;O=29;break a}}J=P+8|0;if(((b[J>>0]|0)==A<<24>>24?(b[J+1>>0]|0)==B<<24>>24:0)?(b[J+2>>0]|0)==D<<24>>24:0)break a;P=f[P>>2]|0;if(!P){N=K;O=29;break}}}else{N=K;O=29}}else{N=0;O=29}while(0);if((O|0)==29){O=0;M=ln(16)|0;b[M+8>>0]=A;b[M+9>>0]=B;b[M+10>>0]=D;f[M+12>>2]=z;f[M+4>>2]=E;f[M>>2]=0;R=$(((f[t>>2]|0)+1|0)>>>0);S=$(F>>>0);T=$(n[k>>2]);do if(G|$(T*S)<R){J=F<<1|(F>>>0<3|(F+-1&F|0)!=0)&1;H=~~$(W($(R/T)))>>>0;_h(g,J>>>0<H>>>0?H:J);J=f[s>>2]|0;H=J+-1|0;if(!(H&J)){U=J;V=H&E;break}if(E>>>0<J>>>0){U=J;V=E}else{U=J;V=(E>>>0)%(J>>>0)|0}}else{U=F;V=N}while(0);F=(f[g>>2]|0)+(V<<2)|0;E=f[F>>2]|0;if(!E){f[M>>2]=f[v>>2];f[v>>2]=M;f[F>>2]=v;F=f[M>>2]|0;if(F|0){G=f[F+4>>2]|0;F=U+-1|0;if(F&U)if(G>>>0<U>>>0)X=G;else X=(G>>>0)%(U>>>0)|0;else X=G&F;Y=(f[g>>2]|0)+(X<<2)|0;O=42}}else{f[M>>2]=f[E>>2];Y=E;O=42}if((O|0)==42){O=0;f[Y>>2]=M}f[t>>2]=(f[t>>2]|0)+1}E=w;F=f[E>>2]|0;G=un(F|0,f[E+4>>2]|0,z|0,0)|0;kh((f[f[x>>2]>>2]|0)+G|0,h|0,F|0)|0;F=f[j>>2]|0;f[F+(y<<2)>>2]=z;Z=z+1|0;_=F}else{F=f[j>>2]|0;f[F+(y<<2)>>2]=f[C+12>>2];Z=z;_=F}y=y+1|0;aa=f[l>>2]|0;if(y>>>0>=aa>>>0)break;else z=Z}if((Z|0)==(aa|0))ba=_;else{z=a+84|0;if(!(b[z>>0]|0)){y=f[a+72>>2]|0;h=f[a+68>>2]|0;x=h;if((y|0)==(h|0))ca=_;else{w=y-h>>2;h=0;do{y=x+(h<<2)|0;f[y>>2]=f[_+(f[y>>2]<<2)>>2];h=h+1|0}while(h>>>0<w>>>0);ca=_}}else{b[z>>0]=0;z=a+68|0;_=a+72|0;w=f[_>>2]|0;h=f[z>>2]|0;x=w-h>>2;y=h;h=w;if(aa>>>0<=x>>>0)if(aa>>>0<x>>>0?(w=y+(aa<<2)|0,(w|0)!=(h|0)):0){f[_>>2]=h+(~((h+-4-w|0)>>>2)<<2);da=aa}else da=aa;else{Ch(z,aa-x|0,1220);da=f[l>>2]|0}x=f[j>>2]|0;if(!da)ca=x;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[x+(a<<2)>>2];a=a+1|0}while(a>>>0<da>>>0);ca=x}}f[l>>2]=Z;ba=ca}if(!ba)ea=Z;else{ca=f[o>>2]|0;if((ca|0)!=(ba|0))f[o>>2]=ca+(~((ca+-4-ba|0)>>>2)<<2);Oq(ba);ea=Z}}else ea=0;Z=f[g+8>>2]|0;if(Z|0){ba=Z;do{Z=ba;ba=f[ba>>2]|0;Oq(Z)}while((ba|0)!=0)}ba=f[g>>2]|0;f[g>>2]=0;if(!ba){u=e;return ea|0}Oq(ba);u=e;return ea|0}function tc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;e=u;u=u+64|0;d=e+48|0;h=e+40|0;i=e+32|0;j=e+16|0;k=e+8|0;l=e;m=e+28|0;n=a+8|0;o=f[n>>2]|0;if((o+-2|0)>>>0<=28){f[a+72>>2]=o;p=1<<o;f[a+76>>2]=p+-1;o=p+-2|0;f[a+80>>2]=o;f[a+84>>2]=(o|0)/2|0}o=a+40|0;f[a+48>>2]=g;g=a+88|0;tk(g);p=a+36|0;q=f[p>>2]|0;r=(f[q+4>>2]|0)-(f[q>>2]|0)|0;s=r>>2;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;t=k;f[t>>2]=0;f[t+4>>2]=0;t=l;f[t>>2]=0;f[t+4>>2]=0;if((r|0)<=0){u=e;return 1}r=j+4|0;t=j+8|0;v=a+84|0;w=a+80|0;x=h+4|0;y=i+4|0;z=d+4|0;A=k+4|0;B=h+4|0;C=i+4|0;D=d+4|0;E=l+4|0;F=a+76|0;a=k+4|0;G=l+4|0;H=f[q>>2]|0;if((f[q+4>>2]|0)==(H|0)){J=q;aq(J)}else{K=0;L=H}while(1){f[m>>2]=f[L+(K<<2)>>2];f[d>>2]=f[m>>2];$b(o,d,j);H=f[j>>2]|0;q=(H|0)>-1?H:0-H|0;M=f[r>>2]|0;N=(M|0)>-1?M:0-M|0;O=Vn(N|0,((N|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;q=f[t>>2]|0;N=(q|0)>-1;P=N?q:0-q|0;q=Vn(O|0,I|0,P|0,((P|0)<0)<<31>>31|0)|0;P=I;if((q|0)==0&(P|0)==0){O=f[v>>2]|0;Q=O;R=j;S=M;T=O}else{O=f[v>>2]|0;U=((O|0)<0)<<31>>31;V=un(O|0,U|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Ik(V|0,I|0,q|0,P|0)|0;f[j>>2]=H;V=un(O|0,U|0,M|0,((M|0)<0)<<31>>31|0)|0;M=Ik(V|0,I|0,q|0,P|0)|0;f[r>>2]=M;P=O-((H|0)>-1?H:0-H|0)-((M|0)>-1?M:0-M|0)|0;Q=N?P:0-P|0;R=t;S=M;T=O}f[R>>2]=Q;O=f[j>>2]|0;do if((O|0)<=-1){if((S|0)<0){M=f[t>>2]|0;W=(M|0)>-1?M:0-M|0;X=M}else{M=f[t>>2]|0;W=(f[w>>2]|0)-((M|0)>-1?M:0-M|0)|0;X=M}if((X|0)<0){Y=(S|0)>-1?S:0-S|0;Z=W;_=X;break}else{Y=(f[w>>2]|0)-((S|0)>-1?S:0-S|0)|0;Z=W;_=X;break}}else{M=f[t>>2]|0;Y=M+T|0;Z=T+S|0;_=M}while(0);M=(Z|0)==0;P=(Y|0)==0;N=f[w>>2]|0;do if(Y|Z){H=(N|0)==(Y|0);if(!(M&H)){q=(N|0)==(Z|0);if(!(P&q)){if(M&(T|0)<(Y|0)){$=0;aa=(T<<1)-Y|0;break}if(q&(T|0)>(Y|0)){$=Z;aa=(T<<1)-Y|0;break}if(H&(T|0)>(Z|0)){$=(T<<1)-Z|0;aa=Y;break}if(P){$=(T|0)<(Z|0)?(T<<1)-Z|0:Z;aa=0}else{$=Z;aa=Y}}else{$=Z;aa=Z}}else{$=Y;aa=Y}}else{$=N;aa=N}while(0);P=0-S|0;M=0-_|0;f[j>>2]=0-O;f[r>>2]=P;f[t>>2]=M;if((O|0)<1){ba=T-_|0;ca=T-S|0}else{H=(_|0)<1?M:_;M=(S|0)<1?P:S;ba=(_|0)>0?M:N-M|0;ca=(S|0)>0?H:N-H|0}H=(ca|0)==0;M=(ba|0)==0;do if(((ba|ca|0)!=0?(P=(N|0)==(ba|0),!(H&P)):0)?(q=(N|0)==(ca|0),!(M&q)):0){if(H&(T|0)<(ba|0)){da=0;ea=(T<<1)-ba|0;break}if(q&(T|0)>(ba|0)){da=N;ea=(T<<1)-ba|0;break}if(P&(T|0)>(ca|0)){da=(T<<1)-ca|0;ea=N;break}if(M){da=(T|0)<(ca|0)?(T<<1)-ca|0:ca;ea=0}else{da=ca;ea=ba}}else{da=N;ea=N}while(0);N=K<<1;M=b+(N<<2)|0;H=M+4|0;O=f[H>>2]|0;f[h>>2]=f[M>>2];f[x>>2]=O;f[i>>2]=$;f[y>>2]=aa;Od(d,n,h,i);O=f[d>>2]|0;f[k>>2]=O;P=f[z>>2]|0;f[A>>2]=P;q=f[H>>2]|0;f[h>>2]=f[M>>2];f[B>>2]=q;f[i>>2]=da;f[C>>2]=ea;Od(d,n,h,i);q=f[d>>2]|0;f[l>>2]=q;M=f[D>>2]|0;f[E>>2]=M;H=f[v>>2]|0;if((H|0)>=(O|0))if((O|0)<(0-H|0))fa=(f[F>>2]|0)+O|0;else fa=O;else fa=O-(f[F>>2]|0)|0;f[k>>2]=fa;if((H|0)>=(P|0))if((P|0)<(0-H|0))ga=(f[F>>2]|0)+P|0;else ga=P;else ga=P-(f[F>>2]|0)|0;f[a>>2]=ga;if((H|0)>=(q|0))if((q|0)<(0-H|0))ha=(f[F>>2]|0)+q|0;else ha=q;else ha=q-(f[F>>2]|0)|0;f[l>>2]=ha;if((H|0)>=(M|0))if((M|0)<(0-H|0))ia=(f[F>>2]|0)+M|0;else ia=M;else ia=M-(f[F>>2]|0)|0;f[G>>2]=ia;if((((ga|0)>-1?ga:0-ga|0)+((fa|0)>-1?fa:0-fa|0)|0)<(((ha|0)>-1?ha:0-ha|0)+((ia|0)>-1?ia:0-ia|0)|0)){fj(g,0);ja=k}else{fj(g,1);ja=l}M=f[ja>>2]|0;if((M|0)<0)ka=(f[F>>2]|0)+M|0;else ka=M;M=c+(N<<2)|0;f[M>>2]=ka;N=f[ja+4>>2]|0;if((N|0)<0)la=(f[F>>2]|0)+N|0;else la=N;f[M+4>>2]=la;K=K+1|0;if((K|0)>=(s|0)){ma=5;break}M=f[p>>2]|0;L=f[M>>2]|0;if((f[M+4>>2]|0)-L>>2>>>0<=K>>>0){J=M;ma=6;break}}if((ma|0)==5){u=e;return 1}else if((ma|0)==6)aq(J);return 0}function uc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=Oa,T=Oa,U=Oa,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0;e=u;u=u+64|0;g=e+36|0;h=e+24|0;i=e+12|0;j=e;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=f[d>>2]|0;d=c+48|0;p=c+40|0;q=i+4|0;m=i+8|0;s=g+4|0;t=g+12|0;v=g+8|0;w=a+40|0;x=a+64|0;y=0;z=0;while(1){A=d;B=f[A>>2]|0;C=f[A+4>>2]|0;A=p;D=un(f[A>>2]|0,f[A+4>>2]|0,r+z|0,0)|0;A=Vn(D|0,I|0,B|0,C|0)|0;C=(f[f[c>>2]>>2]|0)+A|0;A=h;B=C;D=A+12|0;do{b[A>>0]=b[B>>0]|0;A=A+1|0;B=B+1|0}while((A|0)<(D|0));im(i|0,C|0,12)|0;B=qg(g,i)|0;if(!B){A=f[i>>2]|0;D=f[q>>2]|0;E=f[m>>2]|0;F=((A^318)+239^D)+239^E;G=f[s>>2]|0;H=(G|0)==0;a:do if(!H){J=G+-1|0;K=(J&G|0)==0;if(!K)if(F>>>0<G>>>0)L=F;else L=(F>>>0)%(G>>>0)|0;else L=F&J;M=f[(f[g>>2]|0)+(L<<2)>>2]|0;if((M|0)!=0?(N=f[M>>2]|0,(N|0)!=0):0){if(K){K=N;while(1){M=f[K+4>>2]|0;if(!((M|0)==(F|0)|(M&J|0)==(L|0))){O=L;P=29;break a}if(((f[K+8>>2]|0)==(A|0)?(f[K+12>>2]|0)==(D|0):0)?(f[K+16>>2]|0)==(E|0):0)break a;K=f[K>>2]|0;if(!K){O=L;P=29;break a}}}else Q=N;while(1){K=f[Q+4>>2]|0;if((K|0)!=(F|0)){if(K>>>0<G>>>0)R=K;else R=(K>>>0)%(G>>>0)|0;if((R|0)!=(L|0)){O=L;P=29;break a}}if(((f[Q+8>>2]|0)==(A|0)?(f[Q+12>>2]|0)==(D|0):0)?(f[Q+16>>2]|0)==(E|0):0)break a;Q=f[Q>>2]|0;if(!Q){O=L;P=29;break}}}else{O=L;P=29}}else{O=0;P=29}while(0);if((P|0)==29){P=0;C=ln(24)|0;f[C+8>>2]=A;f[C+12>>2]=D;f[C+16>>2]=E;f[C+20>>2]=y;f[C+4>>2]=F;f[C>>2]=0;S=$(((f[t>>2]|0)+1|0)>>>0);T=$(G>>>0);U=$(n[k>>2]);do if(H|$(U*T)<S){N=G<<1|(G>>>0<3|(G+-1&G|0)!=0)&1;K=~~$(W($(S/U)))>>>0;Xh(g,N>>>0<K>>>0?K:N);N=f[s>>2]|0;K=N+-1|0;if(!(K&N)){V=N;X=K&F;break}if(F>>>0<N>>>0){V=N;X=F}else{V=N;X=(F>>>0)%(N>>>0)|0}}else{V=G;X=O}while(0);G=(f[g>>2]|0)+(X<<2)|0;F=f[G>>2]|0;if(!F){f[C>>2]=f[v>>2];f[v>>2]=C;f[G>>2]=v;G=f[C>>2]|0;if(G|0){H=f[G+4>>2]|0;G=V+-1|0;if(G&V)if(H>>>0<V>>>0)Y=H;else Y=(H>>>0)%(V>>>0)|0;else Y=H&G;Z=(f[g>>2]|0)+(Y<<2)|0;P=42}}else{f[C>>2]=f[F>>2];Z=F;P=42}if((P|0)==42){P=0;f[Z>>2]=C}f[t>>2]=(f[t>>2]|0)+1}F=w;G=f[F>>2]|0;H=un(G|0,f[F+4>>2]|0,y|0,0)|0;kh((f[f[x>>2]>>2]|0)+H|0,h|0,G|0)|0;G=f[j>>2]|0;f[G+(z<<2)>>2]=y;_=y+1|0;aa=G}else{G=f[j>>2]|0;f[G+(z<<2)>>2]=f[B+20>>2];_=y;aa=G}z=z+1|0;ba=f[l>>2]|0;if(z>>>0>=ba>>>0)break;else y=_}if((_|0)==(ba|0))ca=aa;else{y=a+84|0;if(!(b[y>>0]|0)){z=f[a+72>>2]|0;h=f[a+68>>2]|0;x=h;if((z|0)==(h|0))da=aa;else{w=z-h>>2;h=0;do{z=x+(h<<2)|0;f[z>>2]=f[aa+(f[z>>2]<<2)>>2];h=h+1|0}while(h>>>0<w>>>0);da=aa}}else{b[y>>0]=0;y=a+68|0;aa=a+72|0;w=f[aa>>2]|0;h=f[y>>2]|0;x=w-h>>2;z=h;h=w;if(ba>>>0<=x>>>0)if(ba>>>0<x>>>0?(w=z+(ba<<2)|0,(w|0)!=(h|0)):0){f[aa>>2]=h+(~((h+-4-w|0)>>>2)<<2);ea=ba}else ea=ba;else{Ch(y,ba-x|0,1220);ea=f[l>>2]|0}x=f[j>>2]|0;if(!ea)da=x;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[x+(a<<2)>>2];a=a+1|0}while(a>>>0<ea>>>0);da=x}}f[l>>2]=_;ca=da}if(!ca)fa=_;else{da=f[o>>2]|0;if((da|0)!=(ca|0))f[o>>2]=da+(~((da+-4-ca|0)>>>2)<<2);Oq(ca);fa=_}}else fa=0;_=f[g+8>>2]|0;if(_|0){ca=_;do{_=ca;ca=f[ca>>2]|0;Oq(_)}while((ca|0)!=0)}ca=f[g>>2]|0;f[g>>2]=0;if(!ca){u=e;return fa|0}Oq(ca);u=e;return fa|0}\nfunction di(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;Je(e,a+40|0,f[a+8>>2]|0,b,c);gj(a,e);a=f[e>>2]|0;f[e>>2]=0;if(!a){u=d;return 1}e=a+88|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0){e=f[c+8>>2]|0;if(e|0){b=c+12|0;if((f[b>>2]|0)!=(e|0))f[b>>2]=e;Oq(e)}Oq(c)}c=f[a+68>>2]|0;if(c|0){e=a+72|0;b=f[e>>2]|0;if((b|0)!=(c|0))f[e>>2]=b+(~((b+-4-c|0)>>>2)<<2);Oq(c)}c=a+64|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0){c=f[b>>2]|0;if(c|0){e=b+4|0;if((f[e>>2]|0)!=(c|0))f[e>>2]=c;Oq(c)}Oq(b)}Oq(a);u=d;return 1}function ei(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Bd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;Bd(a,e);return}function fi(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=u;u=u+48|0;g=e;h=e+32|0;if(!c){i=0;u=e;return i|0}Gn(g);if((dm(c,0)|0)!=-1?Qa[f[(f[c>>2]|0)+16>>2]&127](c)|0:0){Va[f[(f[c>>2]|0)+20>>2]&127](c);ch(h,a,c,g);c=(f[h>>2]|0)==0;a=h+4|0;if((b[a+11>>0]|0)<0)Oq(f[a>>2]|0);if(c){c=f[g>>2]|0;a=g+4|0;rg(d,c,c+((f[a>>2]|0)-c)|0);j=(f[a>>2]|0)-(f[g>>2]|0)|0}else j=0}else j=0;a=g+12|0;c=f[a>>2]|0;f[a>>2]=0;if(c|0)Oq(c);c=f[g>>2]|0;if(c|0){a=g+4|0;if((f[a>>2]|0)!=(c|0))f[a>>2]=c;Oq(c)}i=j;u=e;return i|0}function gi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;Fe(e,a+40|0,f[a+8>>2]|0,b,c);gj(a,e);a=f[e>>2]|0;f[e>>2]=0;if(!a){u=d;return 1}e=a+88|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0){e=f[c+8>>2]|0;if(e|0){b=c+12|0;if((f[b>>2]|0)!=(e|0))f[b>>2]=e;Oq(e)}Oq(c)}c=f[a+68>>2]|0;if(c|0){e=a+72|0;b=f[e>>2]|0;if((b|0)!=(c|0))f[e>>2]=b+(~((b+-4-c|0)>>>2)<<2);Oq(c)}c=a+64|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0){c=f[b>>2]|0;if(c|0){e=b+4|0;if((f[e>>2]|0)!=(c|0))f[e>>2]=c;Oq(c)}Oq(b)}Oq(a);u=d;return 1}function hi(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;d=f[c>>2]|0;if((d|0)==(b|0))e=b;else{g=d;do{d=g+-4|0;f[c>>2]=d;h=f[d>>2]|0;f[d>>2]=0;if(h|0){d=h+88|0;i=f[d>>2]|0;f[d>>2]=0;if(i|0){d=f[i+8>>2]|0;if(d|0){j=i+12|0;if((f[j>>2]|0)!=(d|0))f[j>>2]=d;Oq(d)}Oq(i)}i=f[h+68>>2]|0;if(i|0){d=h+72|0;j=f[d>>2]|0;if((j|0)!=(i|0))f[d>>2]=j+(~((j+-4-i|0)>>>2)<<2);Oq(i)}i=h+64|0;j=f[i>>2]|0;f[i>>2]=0;if(j|0){i=f[j>>2]|0;if(i|0){d=j+4|0;if((f[d>>2]|0)!=(i|0))f[d>>2]=i;Oq(i)}Oq(j)}Oq(h)}g=f[c>>2]|0}while((g|0)!=(b|0));e=f[a>>2]|0}Oq(e);return}function ii(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;if(!(Ie(a,c)|0)){i=0;u=d;return i|0}j=a+36|0;k=a+40|0;a=f[j>>2]|0;if((f[k>>2]|0)==(a|0)){i=1;u=d;return i|0}l=c+16|0;m=c+4|0;n=h+1|0;o=0;p=a;do{a=f[p+(o<<2)>>2]|0;q=Qa[f[(f[a>>2]|0)+32>>2]&127](a)|0;b[h>>0]=q;q=l;a=f[q+4>>2]|0;if(!((a|0)>0|(a|0)==0&(f[q>>2]|0)>>>0>0)){f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,n)|0}o=o+1|0;p=f[j>>2]|0}while(o>>>0<(f[k>>2]|0)-p>>2>>>0);i=1;u=d;return i|0}function ji(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=u;u=u+16|0;d=c;lp(a);f[a+16>>2]=0;f[a+20>>2]=0;f[a+12>>2]=a+16;e=a+24|0;lp(e);f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=ln(32)|0;f[d>>2]=a;f[d+8>>2]=-2147483616;f[d+4>>2]=20;g=a;h=14538;i=g+20|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[a+20>>0]=0;Vj(e,d,1);if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=ln(32)|0;f[d>>2]=a;f[d+8>>2]=-2147483616;f[d+4>>2]=22;g=a;h=14559;i=g+22|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[a+22>>0]=0;Vj(e,d,1);if((b[d+11>>0]|0)>=0){u=c;return}Oq(f[d>>2]|0);u=c;return}function ki(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a+4>>2]|0;c=a+8|0;d=f[c>>2]|0;if((d|0)!=(b|0)){e=d;do{d=e+-4|0;f[c>>2]=d;g=f[d>>2]|0;f[d>>2]=0;if(g|0){d=g+88|0;h=f[d>>2]|0;f[d>>2]=0;if(h|0){d=f[h+8>>2]|0;if(d|0){i=h+12|0;if((f[i>>2]|0)!=(d|0))f[i>>2]=d;Oq(d)}Oq(h)}h=f[g+68>>2]|0;if(h|0){d=g+72|0;i=f[d>>2]|0;if((i|0)!=(h|0))f[d>>2]=i+(~((i+-4-h|0)>>>2)<<2);Oq(h)}h=g+64|0;i=f[h>>2]|0;f[h>>2]=0;if(i|0){h=f[i>>2]|0;if(h|0){d=i+4|0;if((f[d>>2]|0)!=(h|0))f[d>>2]=h;Oq(h)}Oq(i)}Oq(g)}e=f[c>>2]|0}while((e|0)!=(b|0))}b=f[a>>2]|0;if(!b)return;Oq(b);return}function li(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;f[g>>2]=f[a+12>>2];h=b+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if((k|0)>0|(k|0)==0&j>>>0>0){l=k;m=j}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=h;l=f[j+4>>2]|0;m=f[j>>2]|0}f[g>>2]=f[a+20>>2];if((l|0)>0|(l|0)==0&m>>>0>0){u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;u=c;return 1}function mi(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=u;u=u+16|0;d=c;e=ln(16)|0;f[d>>2]=e;f[d+8>>2]=-2147483632;f[d+4>>2]=14;g=e;h=14408;i=g+14|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[e+14>>0]=0;e=Hk(a,d,-1)|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);j=ln(16)|0;f[d>>2]=j;f[d+8>>2]=-2147483632;f[d+4>>2]=14;g=j;h=14423;i=g+14|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+14>>0]=0;j=Hk(a,d,-1)|0;if((b[d+11>>0]|0)>=0){k=(e|0)<(j|0);l=k?j:e;m=(l|0)==-1;n=m?5:l;u=c;return n|0}Oq(f[d>>2]|0);k=(e|0)<(j|0);l=k?j:e;m=(l|0)==-1;n=m?5:l;u=c;return n|0}function ni(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;f[g>>2]=f[a+12>>2];h=b+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if((k|0)>0|(k|0)==0&j>>>0>0){l=k;m=j}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=h;l=f[j+4>>2]|0;m=f[j>>2]|0}f[g>>2]=f[a+16>>2];if((l|0)>0|(l|0)==0&m>>>0>0){u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;u=c;return 1}function oi(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=ln(32)|0;f[a>>2]=g;f[a+4>>2]=c+8;c=a+8|0;b[c>>0]=0;h=g+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;h=g+20|0;i=e+12|0;f[h>>2]=0;f[g+24>>2]=0;f[g+28>>2]=0;g=e+16|0;e=f[g>>2]|0;j=f[i>>2]|0;k=e-j|0;if(!k){l=j;m=e;n=0}else{Fi(h,k);l=f[i>>2]|0;m=f[g>>2]|0;n=f[h>>2]|0}kh(n|0,l|0,m-l|0)|0;b[c>>0]=1;c=f[a>>2]|0;f[c+4>>2]=d;f[c>>2]=0;return}function pi(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;b=a+32|0;ld(a,b);c=a+80|0;d=f[c>>2]|0;if((d|0?(e=a+84|0,(f[e>>2]|0)>0):0)?(ld(d,b),(f[e>>2]|0)>1):0){d=1;do{ld((f[c>>2]|0)+(d<<5)|0,b);d=d+1|0}while((d|0)<(f[e>>2]|0))}e=a+136|0;d=a+140|0;a=f[e>>2]|0;if((f[d>>2]|0)==(a|0))return;c=0;g=a;while(1){a=g;ci((f[a+(c*12|0)+4>>2]|0)-(f[a+(c*12|0)>>2]|0)>>2,b)|0;a=f[e>>2]|0;h=f[a+(c*12|0)>>2]|0;i=(f[a+(c*12|0)+4>>2]|0)-h>>2;if(!i)j=a;else{Mc(h,i,1,0,b)|0;j=f[e>>2]|0}c=c+1|0;if(c>>>0>=(((f[d>>2]|0)-j|0)/12|0)>>>0)break;else g=j}return}function qi(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=d+16|0;g=f[e>>2]|0;if(!g)if(!(vl(d)|0)){h=f[e>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=d+20|0;e=f[g>>2]|0;k=e;if((h-e|0)>>>0<c>>>0){j=Sa[f[d+36>>2]&31](d,a,c)|0;break}b:do if((b[d+75>>0]|0)>-1){e=c;while(1){if(!e){l=0;m=a;n=c;o=k;break b}p=e+-1|0;if((b[a+p>>0]|0)==10)break;else e=p}p=Sa[f[d+36>>2]&31](d,a,e)|0;if(p>>>0<e>>>0){j=p;break a}l=e;m=a+e|0;n=c-e|0;o=f[g>>2]|0}else{l=0;m=a;n=c;o=k}while(0);kh(o|0,m|0,n|0)|0;f[g>>2]=(f[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function ri(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+12|0;d=f[c>>2]|0;f[c>>2]=0;if(d|0){c=f[d+28>>2]|0;if(c|0){e=c;do{c=e;e=f[e>>2]|0;ri(c+8|0);Oq(c)}while((e|0)!=0)}e=d+20|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0)Oq(c);c=f[d+8>>2]|0;if(c|0){e=c;do{c=e;e=f[e>>2]|0;g=c+8|0;h=f[c+20>>2]|0;if(h|0){i=c+24|0;if((f[i>>2]|0)!=(h|0))f[i>>2]=h;Oq(h)}if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);Oq(c)}while((e|0)!=0)}e=f[d>>2]|0;f[d>>2]=0;if(e|0)Oq(e);Oq(d)}if((b[a+11>>0]|0)>=0)return;Oq(f[a>>2]|0);return}function si(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0;g=u;u=u+32|0;h=g+12|0;i=g;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if((e|0)>0){j=i+11|0;k=i+4|0;l=0;do{if((l|0)>0)An(h,14477)|0;il(i,$(n[d+(l<<2)>>2]));m=b[j>>0]|0;o=m<<24>>24<0;lj(h,o?f[i>>2]|0:i,o?f[k>>2]|0:m&255)|0;if((b[j>>0]|0)<0)Oq(f[i>>2]|0);l=l+1|0}while((l|0)<(e|0))}am(Ai(a,c)|0,h)|0;if((b[h+11>>0]|0)>=0){u=g;return}Oq(f[h>>2]|0);u=g;return}function ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+16|0;d=c;if((Qa[f[(f[b>>2]|0)+20>>2]&127](b)|0)<=0){e=1;u=c;return e|0}g=a+4|0;h=a+20|0;i=a+24|0;j=a+16|0;a=0;while(1){k=f[(f[g>>2]|0)+4>>2]|0;l=dm(k,Ra[f[(f[b>>2]|0)+24>>2]&127](b,a)|0)|0;f[d>>2]=l;if((l|0)==-1)break;k=f[h>>2]|0;if((k|0)==(f[i>>2]|0))Ri(j,d);else{f[k>>2]=l;f[h>>2]=k+4}gl(f[g>>2]|0,f[d>>2]|0)|0;a=a+1|0;if((a|0)>=(Qa[f[(f[b>>2]|0)+20>>2]&127](b)|0)){e=1;m=9;break}}if((m|0)==9){u=c;return e|0}e=0;u=c;return e|0}function ui(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=1292;hi(a+60|0);b=f[a+48>>2]|0;if(b|0){c=a+52|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=a+36|0;d=f[b>>2]|0;if(d|0){c=a+40|0;e=f[c>>2]|0;if((e|0)==(d|0))g=d;else{h=e;do{e=h+-24|0;f[c>>2]=e;Va[f[f[e>>2]>>2]&127](e);h=f[c>>2]|0}while((h|0)!=(d|0));g=f[b>>2]|0}Oq(g)}f[a>>2]=1232;g=f[a+16>>2]|0;if(g|0){b=a+20|0;d=f[b>>2]|0;if((d|0)!=(g|0))f[b>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g)}g=f[a+4>>2]|0;if(!g)return;d=a+8|0;a=f[d>>2]|0;if((a|0)!=(g|0))f[d>>2]=a+(~((a+-4-g|0)>>>2)<<2);Oq(g);return}function vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=u;u=u+32|0;d=c+16|0;e=c+8|0;g=c;h=a+8|0;if(f[h>>2]<<5>>>0>=b>>>0){u=c;return}f[d>>2]=0;i=d+4|0;f[i>>2]=0;j=d+8|0;f[j>>2]=0;if((b|0)<0)aq(d);k=((b+-1|0)>>>5)+1|0;b=ln(k<<2)|0;f[d>>2]=b;f[i>>2]=0;f[j>>2]=k;k=f[a>>2]|0;f[e>>2]=k;f[e+4>>2]=0;b=a+4|0;l=f[b>>2]|0;f[g>>2]=k+(l>>>5<<2);f[g+4>>2]=l&31;zg(d,e,g);g=f[a>>2]|0;f[a>>2]=f[d>>2];f[d>>2]=g;d=f[b>>2]|0;f[b>>2]=f[i>>2];f[i>>2]=d;d=f[h>>2]|0;f[h>>2]=f[j>>2];f[j>>2]=d;if(g|0)Oq(g);u=c;return}function wi(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;b=a+136|0;c=f[b>>2]|0;if(c|0){d=a+140|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;while(1){e=h+-12|0;f[d>>2]=e;i=f[e>>2]|0;if(!i)j=e;else{e=h+-8|0;k=f[e>>2]|0;if((k|0)!=(i|0))f[e>>2]=k+(~((k+-4-i|0)>>>2)<<2);Oq(i);j=f[d>>2]|0}if((j|0)==(c|0))break;else h=j}g=f[b>>2]|0}Oq(g)}g=f[a+104>>2]|0;if(g|0){b=a+108|0;j=f[b>>2]|0;if((j|0)!=(g|0))f[b>>2]=j+(~((j+-4-g|0)>>>2)<<2);Oq(g)}g=f[a+92>>2]|0;if(!g){uj(a);return}j=a+96|0;b=f[j>>2]|0;if((b|0)!=(g|0))f[j>>2]=b+(~((b+-4-g|0)>>>2)<<2);Oq(g);uj(a);return}function xi(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=3680;c=a+72|0;d=a+136|0;e=a+4|0;g=e+64|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));e=c;g=e+64|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));n[d>>2]=$(1.0);d=a+140|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[a+164>>2]=-1;d=a+168|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[d+24>>2]=0;wn(a+200|0);Gn(a+232|0);d=a+316|0;e=a+264|0;g=e+52|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));f[d>>2]=-1;f[a+320>>2]=-1;f[a+324>>2]=0;f[a+328>>2]=2;f[a+332>>2]=7;f[a+336>>2]=0;f[a+340>>2]=0;f[a+344>>2]=0;b[a+352>>0]=0;return}function yi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d|0;g=(e|0)/12|0;h=g+1|0;if(h>>>0>357913941)aq(a);i=a+8|0;j=((f[i>>2]|0)-d|0)/12|0;k=j<<1;l=j>>>0<178956970?(k>>>0<h>>>0?h:k):357913941;do if(l)if(l>>>0>357913941){k=ra(8)|0;Oo(k,16035);f[k>>2]=7256;va(k|0,1112,110)}else{m=ln(l*12|0)|0;break}else m=0;while(0);k=m+(g*12|0)|0;f[k>>2]=f[b>>2];f[k+4>>2]=f[b+4>>2];f[k+8>>2]=f[b+8>>2];b=k+(((e|0)/-12|0)*12|0)|0;if((e|0)>0)kh(b|0,d|0,e|0)|0;f[a>>2]=b;f[c>>2]=k+12;f[i>>2]=m+(l*12|0);if(!d)return;Oq(d);return}function zi(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=a+16|0;h=g;i=f[h+4>>2]|0;if((d|0)<0|(d|0)==0&c>>>0<1|((i|0)>0|(i|0)==0&(f[h>>2]|0)>>>0>0)){j=0;return j|0}b[a+24>>0]=e&1;h=Vn(c|0,d|0,7,0)|0;d=Ik(h|0,I|0,8,0)|0;h=I;c=g;f[c>>2]=d;f[c+4>>2]=h;c=a+4|0;g=f[c>>2]|0;i=f[a>>2]|0;k=g-i|0;l=Vn(k|0,0,8,0)|0;m=e?l:k;l=Vn(m|0,(e?I:0)|0,d|0,h|0)|0;h=i;i=g;if(k>>>0>=l>>>0)if(k>>>0>l>>>0?(g=h+l|0,(g|0)!=(i|0)):0){f[c>>2]=g;n=h}else n=h;else{Fi(a,l-k|0);n=f[a>>2]|0}k=ln(8)|0;f[k>>2]=n+m;f[k+4>>2]=0;m=a+12|0;a=f[m>>2]|0;f[m>>2]=k;if(!a){j=1;return j|0}Oq(a);j=1;return j|0}function Ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=u;u=u+16|0;d=c;e=yg(a,d,b)|0;g=f[e>>2]|0;if(g|0){h=g;i=h+28|0;u=c;return i|0}g=ln(40)|0;pj(g+16|0,b);b=g+28|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;b=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=b;f[e>>2]=g;b=f[f[a>>2]>>2]|0;if(!b)j=g;else{f[a>>2]=b;j=f[e>>2]|0}Oe(f[a+4>>2]|0,j);j=a+8|0;f[j>>2]=(f[j>>2]|0)+1;h=g;i=h+28|0;u=c;return i|0}function Bi(a,c,d,e,g,h,i,j){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;k=u;u=u+16|0;l=k;if((-18-c|0)>>>0<d>>>0)aq(a);if((b[a+11>>0]|0)<0)m=f[a>>2]|0;else m=a;if(c>>>0<2147483623){n=d+c|0;d=c<<1;o=n>>>0<d>>>0?d:n;p=o>>>0<11?11:o+16&-16}else p=-17;o=ln(p)|0;if(g|0)Fo(o,m,g)|0;if(i|0)Fo(o+g|0,j,i)|0;j=e-h|0;e=j-g|0;if(e|0)Fo(o+g+i|0,m+g+h|0,e)|0;if((c|0)!=10)Oq(m);f[a>>2]=o;f[a+8>>2]=p|-2147483648;p=j+i|0;f[a+4>>2]=p;b[l>>0]=0;up(o+p|0,l);u=k;return}function Ci(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;if(d-g>>2>>>0>=b>>>0){sj(g|0,0,b<<2|0)|0;f[e>>2]=g+(b<<2);return}h=f[a>>2]|0;i=g-h|0;g=i>>2;j=g+b|0;if(j>>>0>1073741823)aq(a);k=d-h|0;d=k>>1;l=k>>2>>>0<536870911?(d>>>0<j>>>0?j:d):1073741823;do if(l)if(l>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{d=ln(l<<2)|0;m=d;n=d;break}else{m=0;n=0}while(0);d=m+(g<<2)|0;sj(d|0,0,b<<2|0)|0;if((i|0)>0)kh(n|0,h|0,i|0)|0;f[a>>2]=m;f[e>>2]=d+(b<<2);f[c>>2]=m+(l<<2);if(!h)return;Oq(h);return}function Di(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=ln(32)|0;f[a>>2]=g;f[a+4>>2]=c+8;c=a+8|0;b[c>>0]=0;pj(g+8|0,e);h=g+20|0;i=e+12|0;f[h>>2]=0;f[g+24>>2]=0;f[g+28>>2]=0;g=e+16|0;e=f[g>>2]|0;j=f[i>>2]|0;k=e-j|0;if(!k){l=j;m=e;n=0}else{Fi(h,k);l=f[i>>2]|0;m=f[g>>2]|0;n=f[h>>2]|0}kh(n|0,l|0,m-l|0)|0;b[c>>0]=1;c=f[a>>2]|0;f[c+4>>2]=d;f[c>>2]=0;return}function Ei(a,c,d){a=a|0;c=c|0;d=$(d);var e=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0;e=u;u=u+16|0;g=e;h=c+11|0;i=b[h>>0]|0;if(i<<24>>24<0)j=f[c+4>>2]|0;else j=i&255;k=+d;l=j;j=i;while(1){if(j<<24>>24<0)m=f[c>>2]|0;else m=c;p[g>>3]=k;n=Bn(m,l+1|0,18562,g)|0;if((n|0)>-1)if(n>>>0>l>>>0)o=n;else break;else o=l<<1|1;Hj(c,o,0);l=o;j=b[h>>0]|0}Hj(c,n,0);f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];a=0;while(1){if((a|0)==3)break;f[c+(a<<2)>>2]=0;a=a+1|0}u=e;return}function Fi(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;if((e-h|0)>>>0>=c>>>0){i=c;j=h;do{b[j>>0]=0;j=(f[g>>2]|0)+1|0;f[g>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=f[a>>2]|0;j=h-i|0;h=j+c|0;if((h|0)<0)aq(a);k=e-i|0;i=k<<1;e=k>>>0<1073741823?(i>>>0<h>>>0?h:i):2147483647;if(!e)l=0;else l=ln(e)|0;i=l+j|0;j=l+e|0;e=c;c=i;l=i;do{b[l>>0]=0;l=c+1|0;c=l;e=e+-1|0}while((e|0)!=0);e=f[a>>2]|0;l=(f[g>>2]|0)-e|0;h=i+(0-l)|0;if((l|0)>0)kh(h|0,e|0,l|0)|0;f[a>>2]=h;f[g>>2]=c;f[d>>2]=j;if(!e)return;Oq(e);return}function Gi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=(d-e|0)/136|0;h=d;if(g>>>0<b>>>0){Ge(a,b-g|0);return}if(g>>>0<=b>>>0)return;g=e+(b*136|0)|0;if((g|0)==(h|0))return;else i=h;do{f[c>>2]=i+-136;h=f[i+-20>>2]|0;if(h|0){b=i+-16|0;e=f[b>>2]|0;if((e|0)!=(h|0))f[b>>2]=e+(~((e+-4-h|0)>>>2)<<2);Oq(h)}h=f[i+-32>>2]|0;if(h|0){e=i+-28|0;b=f[e>>2]|0;if((b|0)!=(h|0))f[e>>2]=b+(~((b+-4-h|0)>>>2)<<2);Oq(h)}Mi(i+-132|0);i=f[c>>2]|0}while((i|0)!=(g|0));return}function Hi(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Sd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0<g>>>0?g:c;if(e>>>0>=b>>>0)return;Sd(a,e);return}function Ii(a){a=a|0;var b=0,c=0,d=0;b=f[a+76>>2]|0;if(b|0){c=a+80|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+64>>2]|0;if(b|0){d=a+68|0;if((f[d>>2]|0)!=(b|0))f[d>>2]=b;Oq(b)}b=f[a+48>>2]|0;if(b|0){d=a+52|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+24>>2]|0;if(b|0){c=a+28|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+12>>2]|0;if(b|0){d=a+16|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a>>2]|0;if(!b)return;c=a+4|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Ji(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=u;u=u+16|0;g=e;h=c+11|0;i=b[h>>0]|0;if(i<<24>>24<0)j=f[c+4>>2]|0;else j=i&255;k=j;j=i;while(1){if(j<<24>>24<0)l=f[c>>2]|0;else l=c;f[g>>2]=d;m=Bn(l,k+1|0,18559,g)|0;if((m|0)>-1)if(m>>>0>k>>>0)n=m;else break;else n=k<<1|1;Hj(c,n,0);k=n;j=b[h>>0]|0}Hj(c,m,0);f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];a=0;while(1){if((a|0)==3)break;f[c+(a<<2)>>2]=0;a=a+1|0}u=e;return}function Ki(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=a+8|0;c=f[b>>2]|0;if((c|0)<0){d=0;return d|0}e=a+4|0;a=f[e>>2]|0;g=a+4|0;h=f[g>>2]|0;i=f[a>>2]|0;j=h-i>>2;k=i;i=h;if(c>>>0<=j>>>0)if(c>>>0<j>>>0?(h=k+(c<<2)|0,(h|0)!=(i|0)):0){f[g>>2]=i+(~((i+-4-h|0)>>>2)<<2);l=c}else l=c;else{Ci(a,c-j|0);l=f[b>>2]|0}if((l|0)<=0){d=1;return d|0}b=f[e>>2]|0;e=f[b>>2]|0;j=(f[b+4>>2]|0)-e>>2;c=e;e=0;while(1){if(j>>>0<=e>>>0){m=10;break}f[c+(e<<2)>>2]=e;e=e+1|0;if((e|0)>=(l|0)){d=1;m=12;break}}if((m|0)==10)aq(b);else if((m|0)==12)return d|0;return 0}function Li(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e;h=ln(16)|0;f[g>>2]=h;f[g+8>>2]=-2147483632;f[g+4>>2]=14;i=h;j=14408;k=i+14|0;do{b[i>>0]=b[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));b[h+14>>0]=0;Xj(a,g,c);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);c=ln(16)|0;f[g>>2]=c;f[g+8>>2]=-2147483632;f[g+4>>2]=14;i=c;j=14423;k=i+14|0;do{b[i>>0]=b[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));b[c+14>>0]=0;Xj(a,g,d);if((b[g+11>>0]|0)>=0){u=e;return}Oq(f[g>>2]|0);u=e;return}function Mi(a){a=a|0;var b=0,c=0,d=0;b=f[a+84>>2]|0;if(b|0){c=a+88|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+72>>2]|0;if(b|0){d=a+76|0;if((f[d>>2]|0)!=(b|0))f[d>>2]=b;Oq(b)}b=f[a+52>>2]|0;if(b|0){d=a+56|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+40>>2]|0;if(b|0){c=a+44|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+28>>2]|0;if(b|0){d=a+32|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+12>>2]|0;if(b|0)Oq(b);b=f[a>>2]|0;if(!b)return;Oq(b);return}function Ni(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=1352;b=a+32|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=c+88|0;d=f[b>>2]|0;f[b>>2]=0;if(d|0){b=f[d+8>>2]|0;if(b|0){e=d+12|0;if((f[e>>2]|0)!=(b|0))f[e>>2]=b;Oq(b)}Oq(d)}d=f[c+68>>2]|0;if(d|0){b=c+72|0;e=f[b>>2]|0;if((e|0)!=(d|0))f[b>>2]=e+(~((e+-4-d|0)>>>2)<<2);Oq(d)}d=c+64|0;e=f[d>>2]|0;f[d>>2]=0;if(e|0){d=f[e>>2]|0;if(d|0){b=e+4|0;if((f[b>>2]|0)!=(d|0))f[b>>2]=d;Oq(d)}Oq(e)}Oq(c)}c=f[a+16>>2]|0;if(!c)return;e=a+20|0;a=f[e>>2]|0;if((a|0)!=(c|0))f[e>>2]=a+(~((a+-4-c|0)>>>2)<<2);Oq(c);return}function Oi(){var a=0,b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;a=u;u=u+48|0;b=a+32|0;c=a+24|0;d=a+16|0;e=a;g=a+36|0;a=sn()|0;if(a|0?(h=f[a>>2]|0,h|0):0){a=h+48|0;i=f[a>>2]|0;j=f[a+4>>2]|0;if(!((i&-256|0)==1126902528&(j|0)==1129074247)){f[c>>2]=18701;Hn(18651,c)}if((i|0)==1126902529&(j|0)==1129074247)k=f[h+44>>2]|0;else k=h+80|0;f[g>>2]=k;k=f[h>>2]|0;h=f[k+4>>2]|0;if(Sa[f[(f[258]|0)+16>>2]&31](1032,k,g)|0){k=f[g>>2]|0;g=Qa[f[(f[k>>2]|0)+8>>2]&127](k)|0;f[e>>2]=18701;f[e+4>>2]=h;f[e+8>>2]=g;Hn(18565,e)}else{f[d>>2]=18701;f[d+4>>2]=h;Hn(18610,d)}}Hn(18689,b)}function Pi(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;do if(a){if(c>>>0<128){b[a>>0]=c;e=1;break}d=(Jq()|0)+188|0;if(!(f[f[d>>2]>>2]|0))if((c&-128|0)==57216){b[a>>0]=c;e=1;break}else{d=Vq()|0;f[d>>2]=84;e=-1;break}if(c>>>0<2048){b[a>>0]=c>>>6|192;b[a+1>>0]=c&63|128;e=2;break}if(c>>>0<55296|(c&-8192|0)==57344){b[a>>0]=c>>>12|224;b[a+1>>0]=c>>>6&63|128;b[a+2>>0]=c&63|128;e=3;break}if((c+-65536|0)>>>0<1048576){b[a>>0]=c>>>18|240;b[a+1>>0]=c>>>12&63|128;b[a+2>>0]=c>>>6&63|128;b[a+3>>0]=c&63|128;e=4;break}else{d=Vq()|0;f[d>>2]=84;e=-1;break}}else e=1;while(0);return e|0}function Qi(a){a=a|0;var b=0,c=0,d=0;b=f[a+92>>2]|0;if(b|0){c=a+96|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+76>>2]|0;if(b|0){d=a+80|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+52>>2]|0;if(b|0){d=a+56|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}f[a+4>>2]=3636;b=f[a+24>>2]|0;if(b|0)Oq(b);b=f[a+12>>2]|0;if(!b)return;Oq(b);return}function Ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d|0;g=e>>2;h=g+1|0;if(h>>>0>1073741823)aq(a);i=a+8|0;j=(f[i>>2]|0)-d|0;k=j>>1;l=j>>2>>>0<536870911?(k>>>0<h>>>0?h:k):1073741823;do if(l)if(l>>>0>1073741823){k=ra(8)|0;Oo(k,16035);f[k>>2]=7256;va(k|0,1112,110)}else{k=ln(l<<2)|0;m=k;n=k;break}else{m=0;n=0}while(0);k=m+(g<<2)|0;f[k>>2]=f[b>>2];if((e|0)>0)kh(n|0,d|0,e|0)|0;f[a>>2]=m;f[c>>2]=k+4;f[i>>2]=m+(l<<2);if(!d)return;Oq(d);return}function Si(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=a+104|0;d=f[c>>2]|0;if((d|0)!=0?(f[a+108>>2]|0)>=(d|0):0)e=4;else{d=Wm(a)|0;if((d|0)>=0){g=f[c>>2]|0;c=a+8|0;if(g){i=f[c>>2]|0;j=f[a+4>>2]|0;k=g-(f[a+108>>2]|0)|0;g=i;if((i-j|0)<(k|0)){l=g;m=g}else{l=j+(k+-1)|0;m=g}}else{g=f[c>>2]|0;l=g;m=g}f[a+100>>2]=l;l=a+4|0;if(!m)n=f[l>>2]|0;else{g=f[l>>2]|0;l=a+108|0;f[l>>2]=m+1-g+(f[l>>2]|0);n=g}g=n+-1|0;if((d|0)==(h[g>>0]|0|0))o=d;else{b[g>>0]=d;o=d}}else e=4}if((e|0)==4){f[a+100>>2]=0;o=-1}return o|0}function Ti(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=1544;f[a+4>>2]=b;b=a+8|0;f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];f[b+12>>2]=f[c+12>>2];f[b+16>>2]=f[c+16>>2];f[b+20>>2]=f[c+20>>2];fk(a+32|0,c+24|0);f[a>>2]=2384;c=a+44|0;f[c>>2]=f[d>>2];f[c+4>>2]=f[d+4>>2];f[c+8>>2]=f[d+8>>2];f[c+12>>2]=f[d+12>>2];f[a>>2]=2440;d=a+112|0;c=a+60|0;b=c+52|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(b|0));Zm(d);f[a+152>>2]=0;f[a+156>>2]=0;f[a+160>>2]=0;return}function Ui(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=1544;f[a+4>>2]=b;b=a+8|0;f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];f[b+12>>2]=f[c+12>>2];f[b+16>>2]=f[c+16>>2];f[b+20>>2]=f[c+20>>2];fk(a+32|0,c+24|0);f[a>>2]=1964;c=a+44|0;f[c>>2]=f[d>>2];f[c+4>>2]=f[d+4>>2];f[c+8>>2]=f[d+8>>2];f[c+12>>2]=f[d+12>>2];f[a>>2]=2020;d=a+112|0;c=a+60|0;b=c+52|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(b|0));Zm(d);f[a+152>>2]=0;f[a+156>>2]=0;f[a+160>>2]=0;return}function Vi(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2440;b=f[a+152>>2]|0;if(b|0){c=a+156|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+112>>2]|0;if(b|0){d=a+116|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+96>>2]|0;if(b|0)Oq(b);b=f[a+84>>2]|0;if(b|0)Oq(b);b=f[a+72>>2]|0;if(b|0)Oq(b);b=f[a+60>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Wi(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=u;u=u+16|0;e=d;g=f[(f[c+4>>2]|0)+4>>2]|0;if(!g){f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=d;return}if(!(Dj(d+12|0,f[c+44>>2]|0,g)|0)){g=ln(32)|0;f[e>>2]=g;f[e+8>>2]=-2147483616;f[e+4>>2]=26;c=g;h=15859;i=c+26|0;do{b[c>>0]=b[h>>0]|0;c=c+1|0;h=h+1|0}while((c|0)<(i|0));b[g+26>>0]=0;f[a>>2]=-1;pj(a+4|0,e);if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0)}else{f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0}u=d;return}function Xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=b+48|0;if((mi(f[c>>2]|0)|0)>9){d=0;return d|0}if((Qa[f[(f[b>>2]|0)+8>>2]&127](b)|0)!=1){d=0;return d|0}e=b+4|0;b=(f[(f[(f[e>>2]|0)+8>>2]|0)+(a<<2)>>2]|0)+56|0;a=f[b>>2]|0;do if((a|0)==3)if((mi(f[c>>2]|0)|0)<4){d=5;return d|0}else{g=f[b>>2]|0;break}else g=a;while(0);a=mi(f[c>>2]|0)|0;if((g|0)==1){d=(a|0)<4?6:0;return d|0}if((a|0)>7){d=0;return d|0}if((mi(f[c>>2]|0)|0)>1){d=1;return d|0}else return ((f[(f[e>>2]|0)+80>>2]|0)>>>0<40?1:4)|0;return 0}function Yi(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2020;b=f[a+152>>2]|0;if(b|0){c=a+156|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+112>>2]|0;if(b|0){d=a+116|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+96>>2]|0;if(b|0)Oq(b);b=f[a+84>>2]|0;if(b|0)Oq(b);b=f[a+72>>2]|0;if(b|0)Oq(b);b=f[a+60>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Zi(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=u;u=u+128|0;h=g+124|0;i=g;j=i;k=6596;l=j+124|0;do{f[j>>2]=f[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(l|0));if((c+-1|0)>>>0>2147483646)if(!c){m=h;n=1;o=4}else{h=Vq()|0;f[h>>2]=75;p=-1}else{m=a;n=c;o=4}if((o|0)==4){o=-2-m|0;c=n>>>0>o>>>0?o:n;f[i+48>>2]=c;n=i+20|0;f[n>>2]=m;f[i+44>>2]=m;o=m+c|0;m=i+16|0;f[m>>2]=o;f[i+28>>2]=o;o=Ah(i,d,e)|0;if(!c)p=o;else{c=f[n>>2]|0;b[c+(((c|0)==(f[m>>2]|0))<<31>>31)>>0]=0;p=o}}u=g;return p|0}function _i(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=3480;c=a+72|0;d=a+136|0;e=a+4|0;g=e+64|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));e=c;g=e+64|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));n[d>>2]=$(1.0);d=a+140|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[a+164>>2]=-1;d=a+168|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[d+24>>2]=0;wn(a+200|0);Gn(a+232|0);d=a+264|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;b[d+24>>0]=0;return}function $i(a,c,d,e){a=a|0;c=c|0;d=d|0;e=+e;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=u;u=u+16|0;g=a;if(!c){h=0;u=a;return h|0}f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;i=Gj(d)|0;if(i>>>0>4294967279)aq(g);if(i>>>0<11){b[g+11>>0]=i;if(!i)j=g;else{k=g;l=7}}else{m=i+16&-16;n=ln(m)|0;f[g>>2]=n;f[g+8>>2]=m|-2147483648;f[g+4>>2]=i;k=n;l=7}if((l|0)==7){kh(k|0,d|0,i|0)|0;j=k}b[j+i>>0]=0;Zl(c,g,e);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);h=1;u=a;return h|0}function aj(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=u;u=u+16|0;g=a;if(!c){h=0;u=a;return h|0}f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;i=Gj(d)|0;if(i>>>0>4294967279)aq(g);if(i>>>0<11){b[g+11>>0]=i;if(!i)j=g;else{k=g;l=7}}else{m=i+16&-16;n=ln(m)|0;f[g>>2]=n;f[g+8>>2]=m|-2147483648;f[g+4>>2]=i;k=n;l=7}if((l|0)==7){kh(k|0,d|0,i|0)|0;j=k}b[j+i>>0]=0;$l(c,g,e);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);h=1;u=a;return h|0}function bj(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;c=f[a+28>>2]|0;if(c|0){d=c;do{c=d;d=f[d>>2]|0;e=c+8|0;g=c+20|0;h=f[g>>2]|0;f[g>>2]=0;if(h|0){bj(h);Oq(h)}if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);Oq(c)}while((d|0)!=0)}d=a+20|0;c=f[d>>2]|0;f[d>>2]=0;if(c|0)Oq(c);c=f[a+8>>2]|0;if(c|0){d=c;do{c=d;d=f[d>>2]|0;e=c+8|0;h=f[c+20>>2]|0;if(h|0){g=c+24|0;if((f[g>>2]|0)!=(h|0))f[g>>2]=h;Oq(h)}if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);Oq(c)}while((d|0)!=0)}d=f[a>>2]|0;f[a>>2]=0;if(!d)return;Oq(d);return}function cj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;e=u;u=u+16|0;g=e;h=f[c+36>>2]|0;if(!h){i=ln(32)|0;f[g>>2]=i;f[g+8>>2]=-2147483616;f[g+4>>2]=23;j=i;k=15706;l=j+23|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[i+23>>0]=0;f[a>>2]=-1;pj(a+4|0,g);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);u=e;return}g=f[c+40>>2]|0;if(!g){Sc(a,c,h,d);u=e;return}else{bi(a,c,g,d);u=e;return}}function dj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;tk(a);b=a+84|0;c=f[b>>2]|0;if((c|0)<=0)return;d=c<<5;e=Lq(c>>>0>134217727|d>>>0>4294967291?-1:d+4|0)|0;f[e>>2]=c;d=e+4|0;e=d+(c<<5)|0;c=d;do{wn(c);c=c+32|0}while((c|0)!=(e|0));e=a+80|0;a=f[e>>2]|0;f[e>>2]=d;if(a|0){d=a+-4|0;c=f[d>>2]|0;if(c|0){g=a+(c<<5)|0;do{g=g+-32|0;Fj(g)}while((g|0)!=(a|0))}Mq(d)}if((f[b>>2]|0)>0)h=0;else return;do{tk((f[e>>2]|0)+(h<<5)|0);h=h+1|0}while((h|0)<(f[b>>2]|0));return}function ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;if(!b){d=0;return d|0}if(f[b+4>>2]|0){d=0;return d|0}a=ln(52)|0;Ub(a,c);f[a+40>>2]=0;f[a+44>>2]=0;f[a+48>>2]=0;c=b+4|0;b=f[c>>2]|0;f[c>>2]=a;if(!b){d=1;return d|0}a=b+40|0;c=f[a>>2]|0;if(c|0){e=b+44|0;g=f[e>>2]|0;if((g|0)==(c|0))h=c;else{i=g;do{g=i+-4|0;f[e>>2]=g;j=f[g>>2]|0;f[g>>2]=0;if(j|0){bj(j);Oq(j)}i=f[e>>2]|0}while((i|0)!=(c|0));h=f[a>>2]|0}Oq(h)}bj(b);Oq(b);d=1;return d|0}function fj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=f[a>>2]|0;if(b){b=c+8|0;d=b;e=Vn(f[d>>2]|0,f[d+4>>2]|0,1,0)|0;d=b;f[d>>2]=e;f[d+4>>2]=I;d=a+28|0;e=f[d>>2]|0;b=a+24|0;f[b>>2]=f[b>>2]|1<<e;g=d;h=e}else{e=c;d=Vn(f[e>>2]|0,f[e+4>>2]|0,1,0)|0;e=c;f[e>>2]=d;f[e+4>>2]=I;e=a+28|0;g=e;h=f[e>>2]|0}e=h+1|0;f[g>>2]=e;if((e|0)!=32)return;e=a+24|0;h=a+16|0;d=f[h>>2]|0;if((d|0)==(f[a+20>>2]|0))Ri(a+12|0,e);else{f[d>>2]=f[e>>2];f[h>>2]=d+4}f[g>>2]=0;f[e>>2]=0;return}function gj(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+32|0;a=f[b>>2]|0;f[b>>2]=0;b=f[c>>2]|0;f[c>>2]=a;if(!b)return;a=b+88|0;c=f[a>>2]|0;f[a>>2]=0;if(c|0){a=f[c+8>>2]|0;if(a|0){d=c+12|0;if((f[d>>2]|0)!=(a|0))f[d>>2]=a;Oq(a)}Oq(c)}c=f[b+68>>2]|0;if(c|0){a=b+72|0;d=f[a>>2]|0;if((d|0)!=(c|0))f[a>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c)}c=b+64|0;d=f[c>>2]|0;f[c>>2]=0;if(d|0){c=f[d>>2]|0;if(c|0){a=d+4|0;if((f[a>>2]|0)!=(c|0))f[a>>2]=c;Oq(c)}Oq(d)}Oq(b);return}function hj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=u;u=u+16|0;g=e;if(c|0){h=a+11|0;i=b[h>>0]|0;if(i<<24>>24<0){j=f[a+4>>2]|0;k=(f[a+8>>2]&2147483647)+-1|0}else{j=i&255;k=10}if((k-j|0)>>>0<c>>>0){xj(a,k,c-k+j|0,j,j,0,0);l=b[h>>0]|0}else l=i;if(l<<24>>24<0)m=f[a>>2]|0;else m=a;Qn(m+j|0,c,d)|0;d=j+c|0;if((b[h>>0]|0)<0)f[a+4>>2]=d;else b[h>>0]=d;b[g>>0]=0;up(m+d|0,g)}u=e;return a|0}function ij(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+48|0;e=d+4|0;g=d;h=f[b+12>>2]|0;i=f[b+4>>2]|0;b=e;j=b+36|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(j|0));zh(g,c,h,i,e);i=f[e+24>>2]|0;if(!i){k=f[g>>2]|0;f[a>>2]=k;u=d;return}h=e+28|0;e=f[h>>2]|0;if((e|0)!=(i|0))f[h>>2]=e+(~((e+-4-i|0)>>>2)<<2);Oq(i);k=f[g>>2]|0;f[a>>2]=k;u=d;return}function jj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=u;u=u+16|0;g=e;h=a+11|0;i=b[h>>0]|0;j=i<<24>>24<0;if(j)k=(f[a+8>>2]&2147483647)+-1|0;else k=10;do if(k>>>0>=d>>>0){if(j)l=f[a>>2]|0;else l=a;Eo(l,c,d)|0;b[g>>0]=0;up(l+d|0,g);if((b[h>>0]|0)<0){f[a+4>>2]=d;break}else{b[h>>0]=d;break}}else{if(j)m=f[a+4>>2]|0;else m=i&255;Bi(a,k,d-k|0,m,0,m,d,c)}while(0);u=e;return a|0}function kj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;d=f[c>>2]|0;if((d|0)==(b|0))e=b;else{g=d;do{f[c>>2]=g+-136;d=f[g+-20>>2]|0;if(d|0){h=g+-16|0;i=f[h>>2]|0;if((i|0)!=(d|0))f[h>>2]=i+(~((i+-4-d|0)>>>2)<<2);Oq(d)}d=f[g+-32>>2]|0;if(d|0){i=g+-28|0;h=f[i>>2]|0;if((h|0)!=(d|0))f[i>>2]=h+(~((h+-4-d|0)>>>2)<<2);Oq(d)}Mi(g+-132|0);g=f[c>>2]|0}while((g|0)!=(b|0));e=f[a>>2]|0}Oq(e);return}function lj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=u;u=u+16|0;g=e;h=a+11|0;i=b[h>>0]|0;j=i<<24>>24<0;if(j){k=f[a+4>>2]|0;l=(f[a+8>>2]&2147483647)+-1|0}else{k=i&255;l=10}if((l-k|0)>>>0>=d>>>0){if(d|0){if(j)m=f[a>>2]|0;else m=a;Fo(m+k|0,c,d)|0;j=k+d|0;if((b[h>>0]|0)<0)f[a+4>>2]=j;else b[h>>0]=j;b[g>>0]=0;up(m+j|0,g)}}else Bi(a,l,d-l+k|0,k,k,0,d,c);u=e;return a|0}function mj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=3932;b=f[a+32>>2]|0;if(b|0){c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+20>>2]|0;if(b|0){d=a+24|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=a+8|0;c=f[b>>2]|0;if(!c)return;d=a+12|0;a=f[d>>2]|0;if((a|0)==(c|0))e=c;else{g=a;do{a=g+-4|0;f[d>>2]=a;h=f[a>>2]|0;f[a>>2]=0;if(h|0)Va[f[(f[h>>2]|0)+4>>2]&127](h);g=f[d>>2]|0}while((g|0)!=(c|0));e=f[b>>2]|0}Oq(e);return}function nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+4|0;if((Qa[f[(f[b>>2]|0)+20>>2]&127](b)|0)<=0){d=1;return d|0}a=0;while(1){e=f[(f[c>>2]|0)+4>>2]|0;g=dm(e,Ra[f[(f[b>>2]|0)+24>>2]&127](b,a)|0)|0;if((g|0)==-1){d=0;h=6;break}e=f[(f[b>>2]|0)+28>>2]|0;i=fl(f[c>>2]|0,g)|0;a=a+1|0;if(!(Ra[e&127](b,i)|0)){d=0;h=6;break}if((a|0)>=(Qa[f[(f[b>>2]|0)+20>>2]&127](b)|0)){d=1;h=6;break}}if((h|0)==6)return d|0;return 0}function oj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;if(!(ho(a,b,c)|0)){d=0;return d|0}if(!(Qa[f[(f[a>>2]|0)+52>>2]&127](a)|0)){d=0;return d|0}c=a+4|0;e=a+8|0;g=f[c>>2]|0;if((f[e>>2]|0)==(g|0)){d=1;return d|0}h=a+36|0;a=0;i=g;while(1){g=f[(f[h>>2]|0)+(a<<2)>>2]|0;if(!(Sa[f[(f[g>>2]|0)+8>>2]&31](g,b,f[i+(a<<2)>>2]|0)|0)){d=0;j=7;break}a=a+1|0;i=f[c>>2]|0;if(a>>>0>=(f[e>>2]|0)-i>>2>>>0){d=1;j=7;break}}if((j|0)==7)return d|0;return 0}function pj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;if((b[c+11>>0]|0)<0){g=f[c>>2]|0;h=f[c+4>>2]|0;if(h>>>0>4294967279)aq(a);if(h>>>0<11){b[a+11>>0]=h;i=a}else{j=h+16&-16;k=ln(j)|0;f[a>>2]=k;f[a+8>>2]=j|-2147483648;f[a+4>>2]=h;i=k}Fo(i,g,h)|0;b[e>>0]=0;up(i+h|0,e)}else{f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2]}u=d;return}function qj(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0;b[c+53>>0]=1;do if((f[c+4>>2]|0)==(e|0)){b[c+52>>0]=1;a=c+16|0;h=f[a>>2]|0;if(!h){f[a>>2]=d;f[c+24>>2]=g;f[c+36>>2]=1;if(!((g|0)==1?(f[c+48>>2]|0)==1:0))break;b[c+54>>0]=1;break}if((h|0)!=(d|0)){h=c+36|0;f[h>>2]=(f[h>>2]|0)+1;b[c+54>>0]=1;break}h=c+24|0;a=f[h>>2]|0;if((a|0)==2){f[h>>2]=g;i=g}else i=a;if((i|0)==1?(f[c+48>>2]|0)==1:0)b[c+54>>0]=1}while(0);return}function rj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=a+36|0;d=a+40|0;e=f[c>>2]|0;if((f[d>>2]|0)!=(e|0)){g=0;h=e;do{vg(h+(g*24|0)|0,b)|0;g=g+1|0;h=f[c>>2]|0}while(g>>>0<(((f[d>>2]|0)-h|0)/24|0)>>>0)}h=a+48|0;d=a+52|0;a=f[h>>2]|0;if((f[d>>2]|0)==(a|0))return 1;else{i=0;j=a}do{a=f[j+(i<<2)>>2]|0;ci(a<<1^a>>31,b)|0;i=i+1|0;j=f[h>>2]|0}while(i>>>0<(f[d>>2]|0)-j>>2>>>0);return 1}function sj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=a+d|0;c=c&255;if((d|0)>=67){while(a&3){b[a>>0]=c;a=a+1|0}g=e&-4|0;h=g-64|0;i=c|c<<8|c<<16|c<<24;while((a|0)<=(h|0)){f[a>>2]=i;f[a+4>>2]=i;f[a+8>>2]=i;f[a+12>>2]=i;f[a+16>>2]=i;f[a+20>>2]=i;f[a+24>>2]=i;f[a+28>>2]=i;f[a+32>>2]=i;f[a+36>>2]=i;f[a+40>>2]=i;f[a+44>>2]=i;f[a+48>>2]=i;f[a+52>>2]=i;f[a+56>>2]=i;f[a+60>>2]=i;a=a+64|0}while((a|0)<(g|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(e|0)){b[a>>0]=c;a=a+1|0}return e-d|0}function tj(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0;do if(!(fp(a,f[c+8>>2]|0,g)|0)){if(fp(a,f[c>>2]|0,g)|0){if((f[c+16>>2]|0)!=(d|0)?(h=c+20|0,(f[h>>2]|0)!=(d|0)):0){f[c+32>>2]=e;f[h>>2]=d;h=c+40|0;f[h>>2]=(f[h>>2]|0)+1;if((f[c+36>>2]|0)==1?(f[c+24>>2]|0)==2:0)b[c+54>>0]=1;f[c+44>>2]=4;break}if((e|0)==1)f[c+32>>2]=1}}else Vm(0,c,d,e);while(0);return}function uj(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+80|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=c+-4|0;d=f[b>>2]|0;if(d|0){e=c+(d<<5)|0;do{e=e+-32|0;Fj(e)}while((e|0)!=(c|0))}Mq(b)}b=f[a+68>>2]|0;if(b|0){c=a+72|0;e=f[c>>2]|0;if((e|0)!=(b|0))f[c>>2]=e+(~((e+-4-b|0)>>>2)<<2);Oq(b)}b=a+44|0;e=f[b>>2]|0;f[b>>2]=0;if(e|0)Oq(e);e=f[a+32>>2]|0;if(!e){Fj(a);return}b=a+36|0;if((f[b>>2]|0)!=(e|0))f[b>>2]=e;Oq(e);Fj(a);return}function vj(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3092;b=f[a+136>>2]|0;if(b|0){c=a+140|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+96>>2]|0;if(b|0){d=a+100|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+76>>2]|0;if(b|0)Oq(b);b=f[a+64>>2]|0;if(b|0)Oq(b);b=f[a+52>>2]|0;if(b|0)Oq(b);b=f[a+40>>2]|0;if(!b)return;Oq(b);return}function wj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;if((d|0)<0){e=0;return e|0}do if(!b){d=a+4|0;g=f[d>>2]|0;h=f[a>>2]|0;i=g-h|0;if(i>>>0<c>>>0){Fi(a,c-i|0);break}if(i>>>0>c>>>0?(i=h+c|0,(i|0)!=(g|0)):0)f[d>>2]=i}else Cg(a,b,b+c|0);while(0);c=a+24|0;a=c;b=Vn(f[a>>2]|0,f[a+4>>2]|0,1,0)|0;a=c;f[a>>2]=b;f[a+4>>2]=I;e=1;return e|0}function xj(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if((-17-c|0)>>>0<d>>>0)aq(a);if((b[a+11>>0]|0)<0)j=f[a>>2]|0;else j=a;if(c>>>0<2147483623){k=d+c|0;d=c<<1;l=k>>>0<d>>>0?d:k;m=l>>>0<11?11:l+16&-16}else m=-17;l=ln(m)|0;if(g|0)Fo(l,j,g)|0;k=e-h-g|0;if(k|0)Fo(l+g+i|0,j+g+h|0,k)|0;if((c|0)!=10)Oq(j);f[a>>2]=l;f[a+8>>2]=m|-2147483648;return}function yj(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2728;b=f[a+136>>2]|0;if(b|0){c=a+140|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+96>>2]|0;if(b|0){d=a+100|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+76>>2]|0;if(b|0)Oq(b);b=f[a+64>>2]|0;if(b|0)Oq(b);b=f[a+52>>2]|0;if(b|0)Oq(b);b=f[a+40>>2]|0;if(!b)return;Oq(b);return}function zj(a,b){a=a|0;b=b|0;if(!b)return;else{zj(a,f[b>>2]|0);zj(a,f[b+4>>2]|0);Ej(b+20|0,f[b+24>>2]|0);Oq(b);return}}function Aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;Yf(a,b,c);c=f[a+100>>2]|0;d=f[a+96>>2]|0;a=d;if((c|0)==(d|0))return;e=f[b>>2]|0;b=(c-d|0)/12|0;d=0;do{c=a+(d*12|0)|0;f[c>>2]=f[e+(f[c>>2]<<2)>>2];c=a+(d*12|0)+4|0;f[c>>2]=f[e+(f[c>>2]<<2)>>2];c=a+(d*12|0)+8|0;f[c>>2]=f[e+(f[c>>2]<<2)>>2];d=d+1|0}while(d>>>0<b>>>0);return}function Bj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=a+64|0;if((f[d>>2]|0)==0?(e=ln(32)|0,yn(e),g=f[d>>2]|0,f[d>>2]=e,g|0):0){e=f[g>>2]|0;if(e|0){h=g+4|0;if((f[h>>2]|0)!=(e|0))f[h>>2]=e;Oq(e)}Oq(g)}g=Vl(f[a+28>>2]|0)|0;e=X(g,b[a+24>>0]|0)|0;g=((e|0)<0)<<31>>31;h=f[d>>2]|0;i=un(e|0,g|0,c|0,0)|0;if(!(wj(h,0,i,I)|0)){j=0;return j|0}Kk(a,f[d>>2]|0,e,g,0,0);f[a+80>>2]=c;j=1;return j|0}function Cj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+64|0;e=d;if(!(fp(a,b,0)|0))if((b|0)!=0?(g=Eh(b,1056,1040,0)|0,(g|0)!=0):0){b=e+4|0;h=b+52|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(h|0));f[e>>2]=g;f[e+8>>2]=a;f[e+12>>2]=-1;f[e+48>>2]=1;Ya[f[(f[g>>2]|0)+28>>2]&3](g,e,f[c>>2]|0,1);if((f[e+24>>2]|0)==1){f[c>>2]=f[e+16>>2];i=1}else i=0;j=i}else j=0;else j=1;u=d;return j|0}function Dj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;if(!c){d=0;return d|0}e=c+40|0;g=c+44|0;ci((f[g>>2]|0)-(f[e>>2]|0)>>2,b)|0;h=f[e>>2]|0;e=f[g>>2]|0;if((h|0)!=(e|0)){g=h;do{h=f[g>>2]|0;if(h|0){ci(f[h+40>>2]|0,b)|0;lg(a,b,h)|0}g=g+4|0}while((g|0)!=(e|0))}lg(a,b,c)|0;d=1;return d|0}function Ej(a,c){a=a|0;c=c|0;var d=0;if(!c)return;Ej(a,f[c>>2]|0);Ej(a,f[c+4>>2]|0);a=c+16|0;d=c+28|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);if((b[a+11>>0]|0)<0)Oq(f[a>>2]|0);Oq(c);return}function Fj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=u;u=u+16|0;c=b;d=c;f[d>>2]=0;f[d+4>>2]=0;qf(a,2,c);c=f[a+12>>2]|0;d=a+16|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e+(~((e+-4-c|0)>>>2)<<2)|0;f[d>>2]=h;g=h}f[a+24>>2]=0;f[a+28>>2]=0;if(c|0){if((g|0)!=(c|0))f[d>>2]=g+(~((g+-4-c|0)>>>2)<<2);Oq(c)}c=f[a>>2]|0;if(!c){u=b;return}g=a+4|0;a=f[g>>2]|0;if((a|0)!=(c|0))f[g>>2]=a+(~((a+-8-c|0)>>>3)<<3);Oq(c);u=b;return}function Gj(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a;a:do if(!(c&3)){d=a;e=4}else{g=a;h=c;while(1){if(!(b[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){d=j;e=4;break}else g=j}}while(0);if((e|0)==4){e=d;while(1){k=f[e>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))e=e+4|0;else break}if(!((k&255)<<24>>24))l=e;else{k=e;while(1){e=k+1|0;if(!(b[e>>0]|0)){l=e;break}else k=e}}i=l}return i-c|0}function Hj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e;h=a+11|0;i=b[h>>0]|0;j=i<<24>>24<0;if(j)k=f[a+4>>2]|0;else k=i&255;do if(k>>>0>=c>>>0)if(j){i=(f[a>>2]|0)+c|0;b[g>>0]=0;up(i,g);f[a+4>>2]=c;break}else{b[g>>0]=0;up(a+c|0,g);b[h>>0]=c;break}else hj(a,c-k|0,d)|0;while(0);u=e;return}function Ij(a){a=a|0;var b=0,c=0,d=0;if(!a)return;b=a+88|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=f[c+8>>2]|0;if(b|0){d=c+12|0;if((f[d>>2]|0)!=(b|0))f[d>>2]=b;Oq(b)}Oq(c)}c=f[a+68>>2]|0;if(c|0){b=a+72|0;d=f[b>>2]|0;if((d|0)!=(c|0))f[b>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c)}c=a+64|0;d=f[c>>2]|0;f[c>>2]=0;if(d|0){c=f[d>>2]|0;if(c|0){b=d+4|0;if((f[b>>2]|0)!=(c|0))f[b>>2]=c;Oq(c)}Oq(d)}Oq(a);return}function Jj(a,c,d,e,g,h,i,j,k,l){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;f[a>>2]=d;if(d|0){m=d+16|0;n=f[m+4>>2]|0;o=a+8|0;f[o>>2]=f[m>>2];f[o+4>>2]=n;n=d+24|0;d=f[n+4>>2]|0;o=a+16|0;f[o>>2]=f[n>>2];f[o+4>>2]=d}b[a+24>>0]=e;f[a+28>>2]=g;b[a+32>>0]=h&1;h=a+40|0;f[h>>2]=i;f[h+4>>2]=j;j=a+48|0;f[j>>2]=k;f[j+4>>2]=l;f[a+56>>2]=c;return}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=ln(88)|0;d=c+60|0;e=c;g=e+60|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));f[d>>2]=c;d=c+64|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;d=cg(c,b)|0;f[a>>2]=d?c:0;a=d?0:c;if(d)return;Ii(a);Oq(a);return}function Lj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;if((f[c+76>>2]|0)>=0?(Tq(c)|0)!=0:0){d=a&255;e=a&255;if((e|0)!=(b[c+75>>0]|0)?(g=c+20|0,h=f[g>>2]|0,h>>>0<(f[c+16>>2]|0)>>>0):0){f[g>>2]=h+1;b[h>>0]=d;i=e}else i=Nj(c,a)|0;Sq(c);j=i}else k=3;do if((k|0)==3){i=a&255;e=a&255;if((e|0)!=(b[c+75>>0]|0)?(d=c+20|0,h=f[d>>2]|0,h>>>0<(f[c+16>>2]|0)>>>0):0){f[d>>2]=h+1;b[h>>0]=i;j=e;break}j=Nj(c,a)|0}while(0);return j|0}function Mj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;i=f[a+4>>2]|0;if((i|0)==-1){j=0;u=d;return j|0}b[h>>0]=i;i=c+16|0;a=f[i+4>>2]|0;if(!((a|0)>0|(a|0)==0&(f[i>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}j=1;u=d;return j|0}function Nj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;d=u;u=u+16|0;e=d;g=c&255;b[e>>0]=g;i=a+16|0;j=f[i>>2]|0;if(!j)if(!(vl(a)|0)){k=f[i>>2]|0;l=4}else m=-1;else{k=j;l=4}do if((l|0)==4){j=a+20|0;i=f[j>>2]|0;if(i>>>0<k>>>0?(n=c&255,(n|0)!=(b[a+75>>0]|0)):0){f[j>>2]=i+1;b[i>>0]=g;m=n;break}if((Sa[f[a+36>>2]&31](a,e,1)|0)==1)m=h[e>>0]|0;else m=-1}while(0);u=d;return m|0}function Oj(a,b){a=a|0;b=b|0;if(!b)return;else{Oj(a,f[b>>2]|0);Oj(a,f[b+4>>2]|0);Ej(b+20|0,f[b+24>>2]|0);Oq(b);return}}function Pj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e;h=e+4|0;f[g>>2]=c;c=ln(32)|0;f[h>>2]=c;f[h+8>>2]=-2147483616;f[h+4>>2]=17;i=c;j=14495;k=i+17|0;do{b[i>>0]=b[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));b[c+17>>0]=0;Xj(Hd(a,g)|0,h,d);if((b[h+11>>0]|0)>=0){u=e;return}Oq(f[h>>2]|0);u=e;return}function Qj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[a+16>>2]|0;if(((f[a+20>>2]|0)-c>>2|0)<=(b|0)){d=0;return d|0}e=f[c+(b<<2)>>2]|0;if((e|0)<0){d=0;return d|0}b=a+48|0;if((f[a+52>>2]|0)>>>0<=e>>>0)Ce(b,e+1|0,0);c=(f[b>>2]|0)+(e>>>5<<2)|0;f[c>>2]=f[c>>2]|1<<(e&31);c=f[a+36>>2]|0;if((f[a+40>>2]|0)-c>>2>>>0<=e>>>0){d=1;return d|0}Bp(f[c+(e<<2)>>2]|0);d=1;return d|0}function Rj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(c>>>0>0|(c|0)==0&a>>>0>4294967295){e=d;f=a;g=c;while(1){c=hn(f|0,g|0,10,0)|0;e=e+-1|0;b[e>>0]=c&255|48;c=f;f=jp(f|0,g|0,10,0)|0;if(!(g>>>0>9|(g|0)==9&c>>>0>4294967295))break;else g=I}h=f;i=e}else{h=a;i=d}if(!h)j=i;else{d=h;h=i;while(1){i=h+-1|0;b[i>>0]=(d>>>0)%10|0|48;if(d>>>0<10){j=i;break}else{d=(d>>>0)/10|0;h=i}}}return j|0}function Sj(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=a;while(1){d=c+1|0;if(!(eq(b[c>>0]|0)|0))break;else c=d}a=b[c>>0]|0;switch(a<<24>>24|0){case 45:{e=1;f=5;break}case 43:{e=0;f=5;break}default:{g=0;h=c;i=a}}if((f|0)==5){g=e;h=d;i=b[d>>0]|0}if(!(Aq(i<<24>>24)|0))j=0;else{i=0;d=h;while(1){h=(i*10|0)+48-(b[d>>0]|0)|0;d=d+1|0;if(!(Aq(b[d>>0]|0)|0)){j=h;break}else i=h}}return (g|0?j:0-j|0)|0}function Tj(a,c,d){a=a|0;c=c|0;d=$(d);var e=0,g=0,h=0;e=u;u=u+16|0;g=e;il(g,d);h=Ai(a,c)|0;c=h+11|0;if((b[c>>0]|0)<0){b[f[h>>2]>>0]=0;f[h+4>>2]=0}else{b[h>>0]=0;b[c>>0]=0}gh(h,0);f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];u=e;return}function Uj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=u;u=u+16|0;c=b+8|0;d=b+4|0;e=b;f[e>>2]=f[(f[a+4>>2]|0)+80>>2];g=f[a+44>>2]|0;a=g+16|0;h=f[a+4>>2]|0;if((h|0)>0|(h|0)==0&(f[a>>2]|0)>>>0>0){u=b;return 1}f[d>>2]=f[g+4>>2];f[c>>2]=f[d>>2];Me(g,c,e,e+4|0)|0;u=b;return 1}function Vj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;ll(g,d&1);d=Ai(a,c)|0;c=d+11|0;if((b[c>>0]|0)<0){b[f[d>>2]>>0]=0;f[d+4>>2]=0}else{b[d>>0]=0;b[c>>0]=0}gh(d,0);f[d>>2]=f[g>>2];f[d+4>>2]=f[g+4>>2];f[d+8>>2]=f[g+8>>2];u=e;return}function Wj(a){a=a|0;if(!a)return;Ej(a+24|0,f[a+28>>2]|0);zj(a+12|0,f[a+16>>2]|0);Ej(a,f[a+4>>2]|0);Oq(a);return}function Xj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;ll(g,d);d=Ai(a,c)|0;c=d+11|0;if((b[c>>0]|0)<0){b[f[d>>2]>>0]=0;f[d+4>>2]=0}else{b[d>>0]=0;b[c>>0]=0}gh(d,0);f[d>>2]=f[g>>2];f[d+4>>2]=f[g+4>>2];f[d+8>>2]=f[g+8>>2];u=e;return}function Yj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=Rg(a,c)|0;if((e|0)==(a+4|0)){g=-1;h=(g|0)==-1;i=(g|0)!=0;j=h?d:i;return j|0}a=e+28|0;if((b[a+11>>0]|0)<0)k=f[a>>2]|0;else k=a;g=Sj(k)|0;h=(g|0)==-1;i=(g|0)!=0;j=h?d:i;return j|0}function Zj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;if(c>>>0>10){g=0;u=d;return g|0}h=ln(48)|0;f[e>>2]=h;f[e+8>>2]=-2147483600;f[e+4>>2]=33;i=h;j=15987;k=i+33|0;do{b[i>>0]=b[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));b[h+33>>0]=0;Xj(a,e,c);if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);g=1;u=d;return g|0}function _j(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=f[b>>2]|0;if((c|0)==-1)return 1;b=c*3|0;if((b|0)==-1)return 1;c=f[a>>2]|0;a=f[c+(b<<2)>>2]|0;d=b+1|0;e=((d>>>0)%3|0|0)==0?b+-2|0:d;if((e|0)==-1)g=-1;else g=f[c+(e<<2)>>2]|0;e=(((b>>>0)%3|0|0)==0?2:-1)+b|0;if((e|0)==-1)h=-1;else h=f[c+(e<<2)>>2]|0;if((a|0)==(g|0))return 1;else return (a|0)==(h|0)|(g|0)==(h|0)|0;return 0}function $j(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0;d=0;while(1){if((h[16654+d>>0]|0)==(a|0)){e=2;break}g=d+1|0;if((g|0)==87){i=16742;j=87;e=5;break}else d=g}if((e|0)==2)if(!d)k=16742;else{i=16742;j=d;e=5}if((e|0)==5)while(1){e=0;d=i;do{a=d;d=d+1|0}while((b[a>>0]|0)!=0);j=j+-1|0;if(!j){k=d;break}else{i=d;e=5}}return jq(k,f[c+20>>2]|0)|0}function ak(a,b){a=+a;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0,j=0.0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;e=Yn(c|0,d|0,52)|0;switch(e&2047){case 0:{if(a!=0.0){g=+ak(a*18446744073709551616.0,b);h=g;i=(f[b>>2]|0)+-64|0}else{h=a;i=0}f[b>>2]=i;j=h;break}case 2047:{j=a;break}default:{f[b>>2]=(e&2047)+-1022;f[s>>2]=c;f[s+4>>2]=d&-2146435073|1071644672;j=+p[s>>3]}}return +j}function bk(a,b){a=+a;b=b|0;var c=0.0,d=0,e=0,g=0.0,h=0;if((b|0)<=1023)if((b|0)<-1022){c=a*2.2250738585072014e-308;d=(b|0)<-2044;e=b+2044|0;g=d?c*2.2250738585072014e-308:c;h=d?((e|0)>-1022?e:-1022):b+1022|0}else{g=a;h=b}else{c=a*8988465674311579538646525.0e283;e=(b|0)>2046;d=b+-2046|0;g=e?c*8988465674311579538646525.0e283:c;h=e?((d|0)<1023?d:1023):b+-1023|0}b=Tn(h+1023|0,0,52)|0;h=I;f[s>>2]=b;f[s+4>>2]=h;return +(g*+p[s>>3])}function ck(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;if(!(f[a+80>>2]|0)){b=0;return b|0}c=a+8|0;d=a+12|0;a=f[c>>2]|0;if(((f[d>>2]|0)-a|0)>0){e=0;g=a}else{b=1;return b|0}while(1){a=f[g+(e<<2)>>2]|0;e=e+1|0;if(!(Gl(a,a)|0)){b=0;h=5;break}g=f[c>>2]|0;if((e|0)>=((f[d>>2]|0)-g>>2|0)){b=1;h=5;break}}if((h|0)==5)return b|0;return 0}function dk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=a+36|0;d=a+40|0;e=f[c>>2]|0;if((f[d>>2]|0)==(e|0)){g=1;return g|0}h=a+60|0;a=0;i=e;while(1){e=f[i+(a<<2)>>2]|0;a=a+1|0;if(!(Sa[f[(f[e>>2]|0)+20>>2]&31](e,h,b)|0)){g=0;j=5;break}i=f[c>>2]|0;if(a>>>0>=(f[d>>2]|0)-i>>2>>>0){g=1;j=5;break}}if((j|0)==5)return g|0;return 0}function ek(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+36|0;d=a+40|0;a=f[c>>2]|0;if((f[d>>2]|0)==(a|0)){e=1;return e|0}else{g=0;h=a}while(1){a=f[h+(g<<2)>>2]|0;g=g+1|0;if(!(Ra[f[(f[a>>2]|0)+24>>2]&127](a,b)|0)){e=0;i=4;break}h=f[c>>2]|0;if(g>>>0>=(f[d>>2]|0)-h>>2>>>0){e=1;i=4;break}}if((i|0)==4)return e|0;return 0}function fk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;f[a>>2]=0;c=a+4|0;f[c>>2]=0;f[a+8>>2]=0;d=b+4|0;e=(f[d>>2]|0)-(f[b>>2]|0)|0;g=e>>2;if(!g)return;if(g>>>0>1073741823)aq(a);h=ln(e)|0;f[c>>2]=h;f[a>>2]=h;f[a+8>>2]=h+(g<<2);g=f[b>>2]|0;b=(f[d>>2]|0)-g|0;if((b|0)<=0)return;kh(h|0,g|0,b|0)|0;f[c>>2]=h+(b>>>2<<2);return}function gk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+8|0;d=f[a>>2]|0;if((f[c>>2]|0)-d>>2>>>0>=b>>>0)return;e=a+4|0;if(b>>>0>1073741823){g=ra(8)|0;Oo(g,16035);f[g>>2]=7256;va(g|0,1112,110)}g=(f[e>>2]|0)-d|0;h=ln(b<<2)|0;if((g|0)>0)kh(h|0,d|0,g|0)|0;f[a>>2]=h;f[e>>2]=h+(g>>2<<2);f[c>>2]=h+(b<<2);if(!d)return;Oq(d);return}function hk(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=a+36|0;c=a+40|0;d=f[b>>2]|0;if((f[c>>2]|0)==(d|0)){e=1;return e|0}g=a+60|0;a=0;h=d;while(1){d=f[h+(a<<2)>>2]|0;a=a+1|0;if(!(Ra[f[(f[d>>2]|0)+16>>2]&127](d,g)|0)){e=0;i=5;break}h=f[b>>2]|0;if(a>>>0>=(f[c>>2]|0)-h>>2>>>0){e=1;i=5;break}}if((i|0)==5)return e|0;return 0}function ik(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;d=f[a+176>>2]|0;e=f[a+172>>2]|0;a=e;if((d|0)==(e|0))return 0;g=(d-e|0)/136|0;e=0;while(1){if((f[a+(e*136|0)>>2]|0)==(c|0)){h=4;break}d=e+1|0;if(d>>>0<g>>>0)e=d;else{h=6;break}}if((h|0)==4)return ((b[a+(e*136|0)+100>>0]|0)==0?0:a+(e*136|0)+4|0)|0;else if((h|0)==6)return 0;return 0}function jk(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+16|0;e=d;g=ln(16)|0;f[e>>2]=g;f[e+8>>2]=-2147483632;f[e+4>>2]=15;h=g;i=14479;j=h+15|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+15>>0]=0;Xj(a,e,c);if((b[e+11>>0]|0)>=0){u=d;return}Oq(f[e>>2]|0);u=d;return}function kk(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+72>>2]|0;if(!c){d=0;return d|0}f[c+4>>2]=a+60;if(!(Qa[f[(f[c>>2]|0)+12>>2]&127](c)|0)){d=0;return d|0}if(!(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)){d=0;return d|0}if(!(Ra[f[(f[a>>2]|0)+44>>2]&127](a,b)|0)){d=0;return d|0}d=Ra[f[(f[a>>2]|0)+48>>2]&127](a,b)|0;return d|0}function lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;f[a>>2]=0;d=a+4|0;f[d>>2]=0;f[a+8>>2]=0;if(!b)return;if(b>>>0>357913941)aq(a);e=ln(b*12|0)|0;f[d>>2]=e;f[a>>2]=e;f[a+8>>2]=e+(b*12|0);a=b;b=e;do{fk(b,c);b=(f[d>>2]|0)+12|0;f[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function mk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[b>>2]|0;if(!c){d=0;return d|0}e=a+44|0;g=f[e>>2]|0;if(g>>>0<(f[a+48>>2]|0)>>>0){f[b>>2]=0;f[g>>2]=c;f[e>>2]=(f[e>>2]|0)+4;d=1;return d|0}else{Ug(a+40|0,b);d=1;return d|0}return 0}function nk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3564;b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a+12>>2]=3588;b=f[a+32>>2]|0;if(b|0)Oq(b);b=f[a+20>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function ok(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3344;f[a+40>>2]=1196;b=f[a+48>>2]|0;if(b|0){c=a+52|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a>>2]=1476;b=a+36|0;d=f[b>>2]|0;f[b>>2]=0;if(!d){Ni(a);Oq(a);return}Va[f[(f[d>>2]|0)+4>>2]&127](d);Ni(a);Oq(a);return}function pk(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0;f[c>>2]=2;d=a+4|0;a=c+8|0;e=f[a>>2]|0;g=(f[c+12>>2]|0)-e|0;if(g>>>0<4294967292){Lk(a,g+4|0,0);i=f[a>>2]|0}else i=e;e=i+g|0;g=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[e>>0]=g;b[e+1>>0]=g>>8;b[e+2>>0]=g>>16;b[e+3>>0]=g>>24;return}function qk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3612;b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a+12>>2]=3636;b=f[a+32>>2]|0;if(b|0)Oq(b);b=f[a+20>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function rk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2188;b=f[a+76>>2]|0;if(b|0)Oq(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Mq(c);f[a>>2]=1544;c=f[a+32>>2]|0;if(!c){Oq(a);return}b=a+36|0;d=f[b>>2]|0;if((d|0)!=(c|0))f[b>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c);Oq(a);return}function sk(a,c,d){a=a|0;c=c|0;d=$(d);var e=0,g=Oa,h=0;e=Rg(a,c)|0;if((e|0)==(a+4|0)){g=d;return $(g)}a=e+28|0;if((b[a+11>>0]|0)<0)h=f[a>>2]|0;else h=a;g=$(+Iq(h));return $(g)}function tk(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=u;u=u+16|0;c=b;d=c;f[d>>2]=0;f[d+4>>2]=0;qf(a,2,c);c=f[a+12>>2]|0;d=a+16|0;e=f[d>>2]|0;if((e|0)==(c|0)){g=a+24|0;f[g>>2]=0;h=a+28|0;f[h>>2]=0;u=b;return}f[d>>2]=e+(~((e+-4-c|0)>>>2)<<2);g=a+24|0;f[g>>2]=0;h=a+28|0;f[h>>2]=0;u=b;return}function uk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=f[a+176>>2]|0;d=f[a+172>>2]|0;e=d;a:do if((c|0)!=(d|0)){g=(c-d|0)/136|0;h=0;while(1){if((f[e+(h*136|0)>>2]|0)==(b|0))break;i=h+1|0;if(i>>>0<g>>>0)h=i;else break a}j=e+(h*136|0)+104|0;return j|0}while(0);j=a+40|0;return j|0}function vk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3564;b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a+12>>2]=3588;b=f[a+32>>2]|0;if(b|0)Oq(b);b=f[a+20>>2]|0;if(!b)return;Oq(b);return}function wk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1768;b=f[a+76>>2]|0;if(b|0)Oq(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Mq(c);f[a>>2]=1544;c=f[a+32>>2]|0;if(!c){Oq(a);return}b=a+36|0;d=f[b>>2]|0;if((d|0)!=(c|0))f[b>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c);Oq(a);return}function xk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3344;f[a+40>>2]=1196;b=f[a+48>>2]|0;if(b|0){c=a+52|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a>>2]=1476;b=a+36|0;d=f[b>>2]|0;f[b>>2]=0;if(!d){Ni(a);return}Va[f[(f[d>>2]|0)+4>>2]&127](d);Ni(a);return}function yk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;Nc(a,b);if((b|0)<=-1)return;c=a+88|0;d=f[c>>2]|0;e=f[a+84>>2]|0;if((d-e>>2|0)<=(b|0))return;a=e+(b<<2)|0;b=a+4|0;e=d-b|0;g=e>>2;if(!g)h=d;else{im(a|0,b|0,e|0)|0;h=f[c>>2]|0}e=a+(g<<2)|0;if((h|0)==(e|0))return;f[c>>2]=h+(~((h+-4-e|0)>>>2)<<2);return}function zk(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=f[a+32>>2]|0;c=f[a+36>>2]|0;if((b|0)==(c|0)){d=1;return d|0}e=a+8|0;g=a+44|0;a=b;while(1){b=f[(f[e>>2]|0)+(f[a>>2]<<2)>>2]|0;a=a+4|0;if(!(Ra[f[(f[b>>2]|0)+20>>2]&127](b,f[g>>2]|0)|0)){d=0;h=5;break}if((a|0)==(c|0)){d=1;h=5;break}}if((h|0)==5)return d|0;return 0}function Ak(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3612;b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a+12>>2]=3636;b=f[a+32>>2]|0;if(b|0)Oq(b);b=f[a+20>>2]|0;if(!b)return;Oq(b);return}function Bk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0;d=u;u=u+128|0;e=d;g=e;h=g+124|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(h|0));g=e+4|0;f[g>>2]=a;h=e+8|0;f[h>>2]=-1;f[e+44>>2]=a;f[e+76>>2]=-1;Ym(e,0);i=+Rc(e,c,1);c=(f[g>>2]|0)-(f[h>>2]|0)+(f[e+108>>2]|0)|0;if(b|0)f[b>>2]=c|0?a+c|0:a;u=d;return +i}function Ck(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0;a=c+16|0;g=f[a>>2]|0;do if(g){if((g|0)!=(d|0)){h=c+36|0;f[h>>2]=(f[h>>2]|0)+1;f[c+24>>2]=2;b[c+54>>0]=1;break}h=c+24|0;if((f[h>>2]|0)==2)f[h>>2]=e}else{f[a>>2]=d;f[c+24>>2]=e;f[c+36>>2]=1}while(0);return}function Dk(a){a=a|0;var b=0,c=0;f[a>>2]=2188;b=f[a+76>>2]|0;if(b|0)Oq(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Mq(c);f[a>>2]=1544;c=f[a+32>>2]|0;if(!c)return;b=a+36|0;a=f[b>>2]|0;if((a|0)!=(c|0))f[b>>2]=a+(~((a+-4-c|0)>>>2)<<2);Oq(c);return}function Ek(a){a=a|0;var c=0,d=0,e=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;d=a+20|0;c=a+28|0;if((f[d>>2]|0)>>>0>(f[c>>2]|0)>>>0)Sa[f[a+36>>2]&31](a,0,0)|0;f[a+16>>2]=0;f[c>>2]=0;f[d>>2]=0;d=f[a>>2]|0;if(!(d&4)){c=(f[a+44>>2]|0)+(f[a+48>>2]|0)|0;f[a+8>>2]=c;f[a+4>>2]=c;e=d<<27>>31}else{f[a>>2]=d|32;e=-1}return e|0}function Fk(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;d=Rg(a,c)|0;if((d|0)==(a+4|0)){e=0;return e|0}a=d+28|0;if((b[a+11>>0]|0)<0)g=f[a>>2]|0;else g=a;e=((Sj(g)|0)+1|0)>>>0>1;return e|0}function Gk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=6152;b=f[a+96>>2]|0;if(b|0){c=a+100|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~(((d+-12-b|0)>>>0)/12|0)*12|0);Oq(b)}b=f[a+84>>2]|0;if(!b){Og(a);Oq(a);return}d=a+88|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b);Og(a);Oq(a);return}function Hk(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=Rg(a,c)|0;if((e|0)==(a+4|0)){g=d;return g|0}d=e+28|0;if((b[d+11>>0]|0)<0)h=f[d>>2]|0;else h=d;g=Sj(h)|0;return g|0}function Ik(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=Xn(e^a|0,f^b|0,e|0,f|0)|0;b=I;a=g^e;e=h^f;return Xn((Ld(i,b,Xn(g^c|0,h^d|0,g|0,h|0)|0,I,0)|0)^a|0,I^e|0,a|0,e|0)|0}function Jk(a){a=a|0;var b=0,c=0;f[a>>2]=1768;b=f[a+76>>2]|0;if(b|0)Oq(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Mq(c);f[a>>2]=1544;c=f[a+32>>2]|0;if(!c)return;b=a+36|0;a=f[b>>2]|0;if((a|0)!=(c|0))f[b>>2]=a+(~((a+-4-c|0)>>>2)<<2);Oq(c);return}function Kk(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0;f[a>>2]=b;h=b+16|0;i=f[h+4>>2]|0;j=a+8|0;f[j>>2]=f[h>>2];f[j+4>>2]=i;i=b+24|0;b=f[i+4>>2]|0;j=a+16|0;f[j>>2]=f[i>>2];f[j+4>>2]=b;b=a+40|0;f[b>>2]=c;f[b+4>>2]=d;d=a+48|0;f[d>>2]=e;f[d+4>>2]=g;return}function Lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=d-e|0;h=e;e=d;if(g>>>0>=b>>>0){if(g>>>0>b>>>0?(d=h+b|0,(d|0)!=(e|0)):0)f[c>>2]=d}else Fi(a,b-g|0);g=a+24|0;a=g;b=Vn(f[a>>2]|0,f[a+4>>2]|0,1,0)|0;a=g;f[a>>2]=b;f[a+4>>2]=I;return}function Mk(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;d=Rg(a,c)|0;if((d|0)==(a+4|0)){e=-1;return e|0}a=d+28|0;if((b[a+11>>0]|0)<0)g=f[a>>2]|0;else g=a;e=Sj(g)|0;return e|0}function Nk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=6152;b=f[a+96>>2]|0;if(b|0){c=a+100|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~(((d+-12-b|0)>>>0)/12|0)*12|0);Oq(b)}b=f[a+84>>2]|0;if(!b){Og(a);return}d=a+88|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b);Og(a);return}function Ok(a){a=a|0;var c=0,d=0,e=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;b[a+24>>0]=1;c=a+68|0;d=a+28|0;e=d+40|0;do{f[d>>2]=0;d=d+4|0}while((d|0)<(e|0));f[c>>2]=a;c=a+72|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;return}function Pk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2244;b=f[a+76>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Qk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=u;u=u+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;sj(g|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Xo(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Xo(a,g,h)}u=f;return}function Rk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1824;b=f[a+76>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Sk(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0;if(fp(a,f[b+8>>2]|0,g)|0)qj(0,b,c,d,e);else{h=f[a+8>>2]|0;_a[f[(f[h>>2]|0)+20>>2]&3](h,b,c,d,e,g)}return}function Tk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2300;Fj(a+108|0);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Uk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1880;Fj(a+108|0);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Vk(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=a;g=d;h=c;while(1){i=b[f>>0]|0;j=b[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}function Wk(a){a=a|0;if(!(f[a+44>>2]|0))return 0;if(!(f[a+48>>2]|0))return 0;if(!(f[a+24>>2]|0))return 0;if(!(f[a+28>>2]|0))return 0;if(!(f[a+32>>2]|0))return 0;else return (f[a+36>>2]|0)!=0|0;return 0}function Xk(a){a=a|0;var b=0,c=0;f[a>>2]=2244;b=f[a+76>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Yk(a){a=a|0;var c=0,d=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;c=0;while(1){if((c|0)==3)break;f[a+(c<<2)>>2]=0;c=c+1|0}if((b[a+11>>0]|0)<0)d=(f[a+8>>2]&2147483647)+-1|0;else d=10;Hj(a,d,0);return}function Zk(a){a=a|0;var b=0,c=0,d=0,e=0.0,g=0.0;b=f[a+8>>2]|0;if((b|0)<2){c=0;d=0;I=c;return d|0}e=+(b|0);g=+Zg(e)*e;e=+W(+(g-+p[a>>3]));c=+K(e)>=1.0?(e>0.0?~~+Y(+J(e/4294967296.0),4294967295.0)>>>0:~~+W((e-+(~~e>>>0))/4294967296.0)>>>0):0;d=~~e>>>0;I=c;return d|0}function _k(a){a=a|0;var b=0,c=0;f[a>>2]=1824;b=f[a+76>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function $k(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[a+16>>2]|0;if(((f[a+20>>2]|0)-c>>2|0)<=(b|0)){d=0;return d|0}e=f[c+(b<<2)>>2]|0;if((e|0)<0){d=0;return d|0}b=f[(f[a+36>>2]|0)+(e<<2)>>2]|0;e=f[b+32>>2]|0;if(e|0){d=e;return d|0}d=f[b+8>>2]|0;return d|0}function al(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1232;b=f[a+16>>2]|0;if(b|0){c=a+20|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+4>>2]|0;if(!b)return;d=a+8|0;a=f[d>>2]|0;if((a|0)!=(b|0))f[d>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function bl(a){a=a|0;var b=0,c=0;f[a>>2]=2300;Fj(a+108|0);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function cl(a){a=a|0;if(!(f[a+64>>2]|0))return 0;if(!(f[a+68>>2]|0))return 0;if(!(f[a+44>>2]|0))return 0;if(!(f[a+48>>2]|0))return 0;if(!(f[a+52>>2]|0))return 0;else return (f[a+56>>2]|0)!=0|0;return 0}function dl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if(fp(a,f[b+8>>2]|0,0)|0)Ck(0,b,c,d);else{e=f[a+8>>2]|0;Ya[f[(f[e>>2]|0)+28>>2]&3](e,b,c,d)}return}function el(a){a=a|0;var b=0,c=0;f[a>>2]=1880;Fj(a+108|0);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function fl(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)<0){c=0;return c|0}d=f[a+4>>2]|0;if(((f[d+12>>2]|0)-(f[d+8>>2]|0)>>2|0)<=(b|0)){c=0;return c|0}d=f[(f[a+8>>2]|0)+(f[(f[a+20>>2]|0)+(b<<2)>>2]<<2)>>2]|0;c=Ra[f[(f[d>>2]|0)+36>>2]&127](d,b)|0;return c|0}function gl(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)<0){c=0;return c|0}d=f[a+4>>2]|0;if(((f[d+12>>2]|0)-(f[d+8>>2]|0)>>2|0)<=(b|0)){c=0;return c|0}d=f[(f[a+8>>2]|0)+(f[(f[a+20>>2]|0)+(b<<2)>>2]<<2)>>2]|0;c=Ra[f[(f[d>>2]|0)+32>>2]&127](d,b)|0;return c|0}function hl(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=b[a>>0]|0;e=b[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=a;do{c=c+1|0;d=d+1|0;a=b[c>>0]|0;e=b[d>>0]|0}while(!(a<<24>>24==0?1:a<<24>>24!=e<<24>>24));f=e;g=a}return (g&255)-(f&255)|0}function il(a,b){a=a|0;b=$(b);var c=0,d=0;c=u;u=u+16|0;d=c;Yk(d);Ei(a,d,b);Bo(d);u=c;return}function jl(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;b=f[a>>2]|0;c=a+4|0;d=f[c>>2]|0;if((d|0)==(b|0))e=b;else{g=d+(~((d+-4-b|0)>>>2)<<2)|0;f[c>>2]=g;e=g}f[a+12>>2]=0;f[a+16>>2]=0;if(!b)return;if((e|0)!=(b|0))f[c>>2]=e+(~((e+-4-b|0)>>>2)<<2);Oq(b);return}function kl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=f[a+16>>2]|0;if(((f[a+20>>2]|0)-d>>2|0)<=(b|0)){e=-1;return e|0}g=f[d+(b<<2)>>2]|0;if((g|0)<0){e=-1;return e|0}e=f[(f[(f[(f[a+36>>2]|0)+(g<<2)>>2]|0)+16>>2]|0)+(c<<2)>>2]|0;return e|0}function ll(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;Yk(d);Ji(a,d,b);Bo(d);u=c;return}function ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=u;u=u+32|0;e=d;g=d+20|0;f[e>>2]=f[a+60>>2];f[e+4>>2]=0;f[e+8>>2]=b;f[e+12>>2]=g;f[e+16>>2]=c;if((to(za(140,e|0)|0)|0)<0){f[g>>2]=-1;h=-1}else h=f[g>>2]|0;u=d;return h|0}function nl(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)==-1|(b|0)>4){c=0;return c|0}d=f[a+20+(b*12|0)>>2]|0;if(((f[a+20+(b*12|0)+4>>2]|0)-d|0)<=0){c=0;return c|0}b=f[d>>2]|0;if((b|0)==-1){c=0;return c|0}c=f[(f[a+8>>2]|0)+(b<<2)>>2]|0;return c|0}function ol(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[a+16>>2]|0;if(((f[a+20>>2]|0)-c>>2|0)<=(b|0)){d=0;return d|0}e=f[c+(b<<2)>>2]|0;if((e|0)<0){d=0;return d|0}b=f[(f[a+36>>2]|0)+(e<<2)>>2]|0;d=(f[b+20>>2]|0)-(f[b+16>>2]|0)>>2;return d|0}function pl(a){a=a|0;if(!(f[a+40>>2]|0))return 0;if(!(f[a+24>>2]|0))return 0;if(!(f[a+28>>2]|0))return 0;if(!(f[a+32>>2]|0))return 0;else return (f[a+36>>2]|0)!=0|0;return 0}function ql(a){a=a|0;var b=0;if(!(f[a+24>>2]|0)){b=0;return b|0}if(!(f[a+28>>2]|0)){b=0;return b|0}if(!(f[a+32>>2]|0)){b=0;return b|0}b=(f[a+36>>2]|0)!=0;return b|0}function rl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;lh(a,c);f[a>>2]=1408;c=a+72|0;d=a+36|0;a=d+36|0;do{f[d>>2]=0;d=d+4|0}while((d|0)<(a|0));d=f[b>>2]|0;f[b>>2]=0;f[c>>2]=d;return}function sl(a){a=a|0;var b=0,c=0;f[a>>2]=3148;b=f[a+56>>2]|0;if(b|0)Oq(b);b=a+48|0;c=f[b>>2]|0;f[b>>2]=0;if(!c){Oq(a);return}Mq(c);Oq(a);return}function tl(a,c){a=a|0;c=c|0;var d=0,e=0;d=a;e=c;c=d+64|0;do{f[d>>2]=f[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(c|0));e=a+64|0;f[a+88>>2]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;b[e+20>>0]=0;return}function ul(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if((a|0)==0&(c|0)==0)f=d;else{g=d;d=c;c=a;while(1){a=g+-1|0;b[a>>0]=h[16636+(c&15)>>0]|0|e;c=Yn(c|0,d|0,4)|0;d=I;if((c|0)==0&(d|0)==0){f=a;break}else g=a}}return f|0}function vl(a){a=a|0;var c=0,d=0,e=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;d=f[a>>2]|0;if(!(d&8)){f[a+8>>2]=0;f[a+4>>2]=0;c=f[a+44>>2]|0;f[a+28>>2]=c;f[a+20>>2]=c;f[a+16>>2]=c+(f[a+48>>2]|0);e=0}else{f[a>>2]=d|32;e=-1}return e|0}function wl(a){a=a|0;if(!(f[a+60>>2]|0))return 0;if(!(f[a+44>>2]|0))return 0;if(!(f[a+48>>2]|0))return 0;if(!(f[a+52>>2]|0))return 0;else return (f[a+56>>2]|0)!=0|0;return 0}function xl(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+88>>2]|0;if(!c){d=0;return d|0}if((f[c>>2]|0)!=2){d=0;return d|0}b=f[c+8>>2]|0;f[a+4>>2]=h[b>>0]|h[b+1>>0]<<8|h[b+2>>0]<<16|h[b+3>>0]<<24;d=1;return d|0}function yl(a){a=a|0;var b=0;if(!(f[a+44>>2]|0)){b=0;return b|0}if(!(f[a+48>>2]|0)){b=0;return b|0}if(!(f[a+52>>2]|0)){b=0;return b|0}b=(f[a+56>>2]|0)!=0;return b|0}function zl(a){a=a|0;vj(a);Oq(a);return}function Al(a){a=a|0;var b=0,c=0;f[a>>2]=2784;b=f[a+56>>2]|0;if(b|0)Oq(b);b=a+48|0;c=f[b>>2]|0;f[b>>2]=0;if(!c){Oq(a);return}Mq(c);Oq(a);return}function Bl(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+44>>2]=c;d=1;return d|0}function Cl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=d-e|0;if(g>>>0<b>>>0){Fi(a,b-g|0);return}if(g>>>0<=b>>>0)return;g=e+b|0;if((g|0)==(d|0))return;f[c>>2]=g;return}function Dl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=$(e);f[a+4>>2]=b;Zf(a+8|0,c,c+(d<<2)|0);n[a+20>>2]=e;return}function El(a,b){a=a|0;b=b|0;var c=0;if(!(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)){c=0;return c|0}if(!(Ra[f[(f[a>>2]|0)+44>>2]&127](a,b)|0)){c=0;return c|0}c=Ra[f[(f[a>>2]|0)+48>>2]&127](a,b)|0;return c|0}function Fl(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+40>>2]=c;d=1;return d|0}function Gl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=u;u=u+16|0;d=c+4|0;e=c;f[e>>2]=0;f[d>>2]=f[e>>2];e=vc(a,b,d)|0;u=c;return e|0}function Hl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;d=f[c>>2]|0;c=a;e=b-a>>2;while(1){if(!e)break;a=(e|0)/2|0;b=c+(a<<2)|0;g=(f[b>>2]|0)>>>0<d>>>0;c=g?b+4|0:c;e=g?e+-1-a|0:a}return c|0}function Il(a){a=a|0;var c=0;f[a>>2]=0;c=a+8|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;b[a+24>>0]=1;f[a+28>>2]=9;c=a+40|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+56>>2]=-1;f[a+60>>2]=0;return}function Jl(a){a=a|0;yj(a);Oq(a);return}function Kl(a){a=a|0;var b=0;f[a>>2]=3148;b=f[a+56>>2]|0;if(b|0)Oq(b);b=a+48|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;Mq(a);return}function Ll(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;if(!(Aq(b[f[a>>2]>>0]|0)|0))c=0;else{d=0;while(1){e=f[a>>2]|0;g=(d*10|0)+-48+(b[e>>0]|0)|0;h=e+1|0;f[a>>2]=h;if(!(Aq(b[h>>0]|0)|0)){c=g;break}else d=g}}return c|0}function Ml(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+64>>2]=c;d=1;return d|0}function Nl(a){a=a|0;var b=0,c=0;b=f[r>>2]|0;c=b+a|0;if((a|0)>0&(c|0)<(b|0)|(c|0)<0){ea()|0;ya(12);return -1}f[r>>2]=c;if((c|0)>(da()|0)?(ca()|0)==0:0){f[r>>2]=b;ya(12);return -1}return b|0}function Ol(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;if((a|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=a;while(1){a=f+-1|0;b[a>>0]=c&7|48;c=Yn(c|0,d|0,3)|0;d=I;if((c|0)==0&(d|0)==0){e=a;break}else f=a}}return e|0}function Pl(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+60>>2]=c;d=1;return d|0}function Ql(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Rl(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;if(fp(a,f[b+8>>2]|0,g)|0)qj(0,b,c,d,e);return}function Sl(a){a=a|0;var b=0;f[a>>2]=2784;b=f[a+56>>2]|0;if(b|0)Oq(b);b=a+48|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;Mq(a);return}function Tl(a){a=a|0;var c=0,d=0,e=0,g=0;c=u;u=u+16|0;d=c;e=f[a+4>>2]|0;g=(f[e+56>>2]|0)-(f[e+52>>2]|0)>>2;b[d>>0]=0;qh(a+20|0,g,d);u=c;return}function Ul(a){a=a|0;Vi(a);Oq(a);return}function Vl(a){a=a|0;var b=0;switch(a|0){case 11:case 2:case 1:{b=1;break}case 4:case 3:{b=2;break}case 6:case 5:{b=4;break}case 8:case 7:{b=8;break}case 9:{b=4;break}case 10:{b=8;break}default:b=-1}return b|0}function Wl(a){a=a|0;var c=0,d=0,e=0,g=0;c=u;u=u+16|0;d=c;e=f[a+4>>2]|0;g=(f[e+28>>2]|0)-(f[e+24>>2]|0)>>2;b[d>>0]=0;qh(a+20|0,g,d);u=c;return}function Xl(){var a=0,b=0;a=ln(40)|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;n[a+16>>2]=$(1.0);b=a+20|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;n[a+36>>2]=$(1.0);return a|0}function Yl(a,b){a=+a;b=+b;var c=0,d=0,e=0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;p[s>>3]=b;e=f[s+4>>2]&-2147483648|d&2147483647;f[s>>2]=c;f[s+4>>2]=e;return +(+p[s>>3])}function Zl(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0;d=u;u=u+16|0;e=d;p[e>>3]=c;_b(a,b,e);u=d;return}function _l(a){a=a|0;f[a>>2]=3656;Qi(a+8|0);Oq(a);return}function $l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;f[e>>2]=c;fc(a,b,e);u=d;return}function am(a,c){a=a|0;c=c|0;var d=0,e=0;if((a|0)!=(c|0)){d=b[c+11>>0]|0;e=d<<24>>24<0;jj(a,e?f[c>>2]|0:c,e?f[c+4>>2]|0:d&255)|0}return a|0}function bm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=X(d,c)|0;f=a>>>16;a=(e>>>16)+(X(d,f)|0)|0;d=b>>>16;b=X(d,c)|0;return (I=(a>>>16)+(X(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function cm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=Gj(b)|0;d=ln(c+13|0)|0;f[d>>2]=c;f[d+4>>2]=c;f[d+8>>2]=0;e=Fp(d)|0;kh(e|0,b|0,c+1|0)|0;f[a>>2]=e;return}function dm(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)==-1|(b|0)>4){c=-1;return c|0}d=f[a+20+(b*12|0)>>2]|0;if(((f[a+20+(b*12|0)+4>>2]|0)-d|0)<=0){c=-1;return c|0}c=f[d>>2]|0;return c|0}function em(a){a=a|0;Yi(a);Oq(a);return}function fm(a){a=a|0;f[a>>2]=3656;Qi(a+8|0);return}function gm(a){a=a|0;var b=0,c=0;f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function hm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(fp(a,f[b+8>>2]|0,0)|0)Ck(0,b,c,d);return}function im(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if((c|0)<(a|0)&(a|0)<(c+d|0)){e=a;c=c+d|0;a=a+d|0;while((d|0)>0){a=a-1|0;c=c-1|0;d=d-1|0;b[a>>0]=b[c>>0]|0}a=e}else kh(a,c,d)|0;return a|0}function jm(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1196;b=f[a+8>>2]|0;if(!b){Oq(a);return}c=a+12|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function km(a){a=a|0;var b=0;f[a>>2]=3204;b=f[a+56>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function lm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=u;u=u+16|0;e=d;f[e>>2]=f[c>>2];g=Sa[f[(f[a>>2]|0)+16>>2]&31](a,b,e)|0;if(g)f[c>>2]=f[e>>2];u=d;return g&1|0}function mm(a,b){a=a|0;b=b|0;var c=0;if(b>>>0>=2){c=0;return c|0}f[a+28>>2]=b;c=1;return c|0}function nm(a){a=a|0;var b=0,c=0;f[a>>2]=3408;b=a+56|0;c=f[b>>2]|0;f[b>>2]=0;if(!c){mj(a);return}Va[f[(f[c>>2]|0)+4>>2]&127](c);mj(a);return}function om(){var a=0,b=0;a=sn()|0;if((a|0?(b=f[a>>2]|0,b|0):0)?(a=b+48|0,(f[a>>2]&-256|0)==1126902528?(f[a+4>>2]|0)==1129074247:0):0)Ho(f[b+12>>2]|0);Ho(Qp()|0)}function pm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Qf(a,b,c,d,e,f,6)|0}function qm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Pf(a,b,c,d,e,f,4)|0}function rm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Wf(a,b,c,d,e,f,2)|0}function sm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Pf(a,b,c,d,e,f,3)|0}function tm(a){a=a|0;var b=0;f[a>>2]=2840;b=f[a+56>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function um(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Wf(a,b,c,d,e,f,1)|0}function vm(a){a=a|0;var c=0;c=b[w+(a&255)>>0]|0;if((c|0)<8)return c|0;c=b[w+(a>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=b[w+(a>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (b[w+(a>>>24)>>0]|0)+24|0}function wm(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0;if(!a){c=0.0;return +c}if((b|0)==0|(a|0)==(b|0)){c=0.0;return +c}d=+(b>>>0)/+(a>>>0);e=1.0-d;f=d*+Zg(d);c=-(f+e*+Zg(e));return +c}function xm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if((b|0)>0)d=0;else return;do{e=f[a+(d<<2)>>2]|0;f[c+(d<<2)>>2]=e<<1^e>>31;d=d+1|0}while((d|0)!=(b|0));return}function ym(a){a=a|0;var b=0;zo(a);f[a>>2]=3344;f[a+40>>2]=1196;f[a+44>>2]=-1;b=a+48|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;return}function zm(a,c){a=a|0;c=c|0;var d=0;b[c+84>>0]=1;a=f[c+68>>2]|0;d=c+72|0;c=f[d>>2]|0;if((c|0)==(a|0))return 1;f[d>>2]=c+(~((c+-4-a|0)>>>2)<<2);return 1}function Am(a){a=a|0;var b=0,c=0;if(pq(a)|0?(b=Mp(f[a>>2]|0)|0,a=b+8|0,c=f[a>>2]|0,f[a>>2]=c+-1,(c+-1|0)<0):0)Oq(b);return}function Bm(a){a=a|0;var b=0,c=0;b=f[a+16>>2]|0;c=(((f[a+12>>2]|0)+1-b|0)/64|0)+b<<3;a=b<<3;b=Vn(c|0,((c|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;return b|0}function Cm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Qf(a,b,c,d,e,f,5)|0}function Dm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Qf(a,b,c,d,e,f,9)|0}function Em(a){a=a|0;var b=0;f[a>>2]=3204;b=f[a+56>>2]|0;if(!b)return;Oq(b);return}function Fm(a){a=a|0;var b=0,c=0;f[a>>2]=1476;b=a+36|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);Ni(a);Oq(a);return}function Gm(a){a=a|0;var b=0,c=0;f[a>>2]=1196;b=f[a+8>>2]|0;if(!b)return;c=a+12|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Hm(a){a=a|0;var c=0;f[a>>2]=1352;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=-1;c=a+16|0;f[a+32>>2]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;b[c+12>>0]=0;return}function Im(a){a=a|0;var b=0;f[a>>2]=2840;b=f[a+56>>2]|0;if(!b)return;Oq(b);return}function Jm(a){a=a|0;var b=0,c=0;f[a>>2]=1476;b=a+36|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);Ni(a);return}function Km(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=$(f);Fg(a,b,c,d,e,f);return}function Lm(a){a=a|0;var b=0,c=0;f[a>>2]=3408;b=a+56|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);mj(a);Oq(a);return}function Mm(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;c=a+4|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);f[a+12>>2]=0;f[a+16>>2]=0;return}function Nm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=a+20|0;e=f[d>>2]|0;g=(f[a+16>>2]|0)-e|0;a=g>>>0>c>>>0?c:g;kh(e|0,b|0,a|0)|0;f[d>>2]=(f[d>>2]|0)+a;return c|0}function Om(a){a=a|0;var b=0;f[a>>2]=3588;b=f[a+20>>2]|0;if(b|0)Oq(b);b=f[a+8>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function Pm(a){a=a|0;var b=0,c=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-8-b|0)>>>3)<<3);Oq(b);return}function Qm(a){a=a|0;var b=0,c=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Rm(a,b){a=a|0;b=b|0;var c=0;c=f[b>>2]|0;return (1<<(c&31)&f[(f[a+28>>2]|0)+(c>>>5<<2)>>2]|0)!=0|0}function Sm(a,b,c){a=a|0;b=b|0;c=c|0;return Sa[f[(f[a>>2]|0)+44>>2]&31](a,b,c)|0}function Tm(a){a=a|0;var c=0;Il(a);c=a+64|0;f[a+88>>2]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;b[c+20>>0]=0;return}function Um(a){a=a|0;f[a>>2]=3260;Fj(a+88|0);Oq(a);return}function Vm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((f[b+4>>2]|0)==(c|0)?(c=b+28|0,(f[c>>2]|0)!=1):0)f[c>>2]=d;return}function Wm(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;c=b;if((Ek(a)|0)==0?(Sa[f[a+32>>2]&31](a,c,1)|0)==1:0)d=h[c>>0]|0;else d=-1;u=b;return d|0}function Xm(a){a=a|0;var b=0;f[a>>2]=3636;b=f[a+20>>2]|0;if(b|0)Oq(b);b=f[a+8>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function Ym(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;f[a+104>>2]=b;c=f[a+8>>2]|0;d=f[a+4>>2]|0;e=c-d|0;f[a+108>>2]=e;f[a+100>>2]=(b|0)!=0&(e|0)>(b|0)?d+b|0:c;return}function Zm(a){a=a|0;var b=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;b=a+16|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;return}function _m(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=$(f);Km(a,b,c,d,e,f);return}function $m(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return pm(a,b,c,d,e,f)|0}function an(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return qm(a,b,c,d,e,f)|0}function bn(a,b,c){a=a|0;b=b|0;c=c|0;f[a+4>>2]=b;f[a+8>>2]=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(c<<2)>>2];f[a+12>>2]=c;return 1}function cn(a){a=a|0;var b=0,c=0;if(!a)return;b=f[a>>2]|0;if(b|0){c=a+4|0;if((f[c>>2]|0)!=(b|0))f[c>>2]=b;Oq(b)}Oq(a);return}function dn(a){a=a|0;f[a>>2]=2896;Fj(a+88|0);Oq(a);return}function en(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rm(a,b,c,d,e,f)|0}function fn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sm(a,b,c,d,e,f)|0}function gn(a){a=a|0;f[a>>2]=3260;Fj(a+88|0);return}function hn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e|0;Ld(a,b,c,d,g)|0;u=e;return (I=f[g+4>>2]|0,f[g>>2]|0)|0}function jn(a){a=a|0;var b=0;eo(a);f[a>>2]=6152;b=a+84|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;return}function kn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return um(a,b,c,d,e,f)|0}function ln(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){a=$a(b)|0;if(a|0){c=a;break}a=Op()|0;if(!a){c=0;break}Ua[a&3]()}return c|0}function mn(a,b,c){a=a|0;b=b|0;c=c|0;ac(a,b,c);return}function nn(a){a=a|0;var b=0;f[a>>2]=3588;b=f[a+20>>2]|0;if(b|0)Oq(b);b=f[a+8>>2]|0;if(!b)return;Oq(b);return}function on(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Cm(a,b,c,d,e,f)|0}function pn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Dm(a,b,c,d,e,f)|0}function qn(a){a=a|0;f[a>>2]=2896;Fj(a+88|0);return}function rn(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;c=b;d=Qq(f[a+60>>2]|0)|0;f[c>>2]=d;d=to(Ba(6,c|0)|0)|0;u=b;return d|0}function sn(){var a=0,b=0;a=u;u=u+16|0;if(!(Ka(19700,3)|0)){b=Ia(f[4926]|0)|0;u=a;return b|0}else Hn(18840,a);return 0}function tn(a){a=a|0;var b=0;f[a>>2]=3636;b=f[a+20>>2]|0;if(b|0)Oq(b);b=f[a+8>>2]|0;if(!b)return;Oq(b);return}function un(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=bm(e,a)|0;f=I;return (I=(X(b,a)|0)+(X(d,e)|0)+f|f&0,c|0|0)|0}function vn(a,b){a=a|0;b=b|0;lh(a,b);f[a>>2]=1292;b=a+36|0;a=b+40|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function wn(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;f[a+24>>2]=0;f[a+28>>2]=0;return}function xn(a){a=a|0;var b=0;b=u;u=u+16|0;yc(a);if(!(La(f[4926]|0,0)|0)){u=b;return}else Hn(18939,b)}function yn(a){a=a|0;var b=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;b=a+16|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;return}function zn(a,b){a=a|0;b=b|0;return vg(a+40|0,b)|0}function An(a,b){a=a|0;b=b|0;return lj(a,b,lq(b)|0)|0}function Bn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;f[g>>2]=d;d=Zi(a,b,c,g)|0;u=e;return d|0}function Cn(a,b){a=a|0;b=b|0;return Mj(a+40|0,b)|0}function Dn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qh(a,b,c,d)|0}function En(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return uh(a,b,c,d)|0}function Fn(a,b){a=a|0;b=b|0;var c=0;c=f[a+56>>2]|0;return Ra[f[(f[c>>2]|0)+24>>2]&127](c,b)|0}function Gn(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;b[a+24>>0]=0;return}function Hn(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;f[d>>2]=b;b=f[1556]|0;Ah(b,a,d)|0;Lj(10,b)|0;Ca()}function In(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ta[a&31](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Jn(a,b){a=a|0;b=b|0;var c=0;c=f[a+56>>2]|0;return Ra[f[(f[c>>2]|0)+16>>2]&127](c,b)|0}function Kn(a,b){a=a|0;b=b|0;var c=0;c=f[a+56>>2]|0;return Ra[f[(f[c>>2]|0)+20>>2]&127](c,b)|0}function Ln(a,b){a=a|0;b=b|0;var c=0;c=f[a+56>>2]|0;return Ra[f[(f[c>>2]|0)+12>>2]&127](c,b)|0}function Mn(){var a=0;a=u;u=u+16|0;if(!(Ja(19704,113)|0)){u=a;return}else Hn(18889,a)}function Nn(a,b,c){a=a|0;b=b|0;c=c|0;Pj(a,b,c);return}function On(a){a=a|0;cf(a);Oq(a);return}function Pn(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;_a[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Qn(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)sj(a|0,(kq(c)|0)&255|0,b|0)|0;return a|0}function Rn(a){a=a|0;return 4}function Sn(a,b,c){a=a|0;b=b|0;c=c|0;return ej(0,b,c)|0}function Tn(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}I=a<<c-32;return 0}function Un(){}function Vn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (I=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function Wn(a,b){a=a|0;b=b|0;var c=0;if(!b)c=0;else c=Dh(f[b>>2]|0,f[b+4>>2]|0,a)|0;return (c|0?c:a)|0}function Xn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (I=e,a-c>>>0|0)|0}function Yn(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}I=0;return b>>>c-32|0}function Zn(a){a=a|0;var b=0;f[a>>2]=3932;b=a+4|0;a=b+44|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function _n(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return De(a,b,c,d)|0}function $n(a){a=a|0;ff(a);Oq(a);return}function ao(a,b){a=a|0;b=b|0;ji(a);f[a+36>>2]=b;f[a+40>>2]=0;return}function bo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return $i(a,b,c,d)|0}function co(a){a=a|0;return 5}function eo(a){a=a|0;var b=0;f[a>>2]=6192;b=a+4|0;a=b+80|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function fo(a){a=a|0;return 6}function go(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return aj(a,b,c,d)|0}function ho(a,b,c){a=a|0;b=b|0;c=c|0;f[a+28>>2]=b;f[a+32>>2]=c;return 1}function io(a,b){a=a|0;b=b|0;ji(a);f[a+36>>2]=b;f[a+40>>2]=b;return}function jo(a,b,c){a=a|0;b=b|0;c=c|0;Nn(a,b,c);return}function ko(a){a=a|0;var b=0;b=f[a+56>>2]|0;return Qa[f[(f[b>>2]|0)+28>>2]&127](b)|0}function lo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ve(a,b,c,d,1);return}function mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ve(a,b,c,d,0);return}function no(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Xg(a,b,c,d)|0}function oo(a,b,c){a=a|0;b=b|0;c=c|0;return fi(a,b,c)|0}function po(a){a=a|0;var b=0;b=f[a+56>>2]|0;return Qa[f[(f[b>>2]|0)+32>>2]&127](b)|0}function qo(a,b,c){a=a|0;b=b|0;c=c|0;return ej(a,b,c)|0}function ro(a,b,c){a=a|0;b=b|0;c=c|0;return Sn(a,b,c)|0}function so(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Za[a&3](b|0,c|0,d|0,e|0,f|0)}function to(a){a=a|0;var b=0,c=0;if(a>>>0>4294963200){b=Vq()|0;f[b>>2]=0-a;c=-1}else c=a;return c|0}function uo(a,b,c){a=a|0;b=b|0;c=c|0;Li(a,b,c);return}function vo(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function wo(a,b){a=a|0;b=b|0;f[a+8>>2]=b;f[a+12>>2]=-1;return 1}function xo(a,b){a=a|0;b=b|0;f[a+52>>2]=b;ip(a,b);return}function yo(a){a=+a;var b=0;p[s>>3]=a;b=f[s>>2]|0;I=f[s+4>>2]|0;return b|0}function zo(a){a=a|0;Hm(a);f[a>>2]=1476;f[a+36>>2]=0;return}function Ao(a){a=a|0;var b=0;if(!a)b=0;else b=(Eh(a,1056,1144,0)|0)!=0&1;return b|0}function Bo(a){a=a|0;if((b[a+11>>0]|0)<0)Oq(f[a>>2]|0);return}function Co(a){a=a|0;if(!a)return;Va[f[(f[a>>2]|0)+4>>2]&127](a);return}function Do(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ya[a&3](b|0,c|0,d|0,e|0)}function Eo(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)im(a|0,b|0,c|0)|0;return a|0}function Fo(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)kh(a|0,b|0,c|0)|0;return a|0}function Go(a,b){a=a|0;b=b|0;return -1}function Ho(a){a=a|0;var b=0;b=u;u=u+16|0;Ua[a&3]();Hn(18992,b)}function Io(a){a=a|0;Lh(a);Oq(a);return}function Jo(a,b,c){a=a|0;b=b|0;c=c|0;Ro(a,b,c);return}function Ko(a,b,c){a=a|0;b=$(b);c=c|0;f[a+4>>2]=c;n[a>>2]=b;return}function Lo(a){a=a|0;To(a);f[a>>2]=3408;f[a+56>>2]=0;return}function Mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Sa[a&31](b|0,c|0,d|0)|0}function No(a,b){a=a|0;b=b|0;return (wp(a,b)|0)<<24>>24|0}function Oo(a,b){a=a|0;b=b|0;f[a>>2]=7236;cm(a+4|0,b);return}function Po(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Pi(a,b,0)|0;return c|0}function Qo(a){a=a|0;return f[a+12>>2]|0}function Ro(a,b,c){a=a|0;b=b|0;c=c|0;uo(a,b,c);return}function So(){var a=0;a=ln(64)|0;Il(a);return a|0}function To(a){a=a|0;Zn(a);f[a>>2]=3764;f[a+52>>2]=0;return}function Uo(a){a=a|0;if(!a)return;bj(a);Oq(a);return}function Vo(a){a=a|0;return Qa[f[(f[a>>2]|0)+60>>2]&127](a)|0}function Wo(a){a=a|0;return f[a+4>>2]|0}function Xo(a,b,c){a=a|0;b=b|0;c=c|0;if(!(f[a>>2]&32))qi(b,c,a)|0;return}function Yo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Xa[a&15](b|0,c|0,d|0)}function Zo(){var a=0;a=ln(96)|0;Tm(a);return a|0}function _o(a){a=a|0;var b=0;b=u;u=u+a|0;u=u+15&-16;return b|0}function $o(a){a=a|0;var b=0;b=(Jq()|0)+188|0;return $j(a,f[b>>2]|0)|0}function ap(a){a=a|0;return ((f[a+100>>2]|0)-(f[a+96>>2]|0)|0)/12|0|0}function bp(a,b){a=a|0;b=b|0;kp(a,b);return}function cp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(3);return 0}function dp(){var a=0;a=ln(12)|0;op(a);return a|0}function ep(a){a=a|0;Ni(a);Oq(a);return}function fp(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function gp(a,b){a=a|0;b=b|0;var c=0;c=sp(a|0)|0;return ((b|0)==0?a:c)|0}function hp(a){a=a|0;return (f[a+12>>2]|0)-(f[a+8>>2]|0)>>2|0}function ip(a,b){a=a|0;b=b|0;f[a+4>>2]=b;return}function jp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ld(a,b,c,d,0)|0}function kp(a,b){a=a|0;b=b|0;jk(a,b);return}function lp(a){a=a|0;f[a+4>>2]=0;f[a+8>>2]=0;f[a>>2]=a+4;return}function mp(){var a=0;a=ln(84)|0;eo(a);return a|0}function np(a){a=a|0;ui(a);Oq(a);return}function op(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;return}function pp(a){a=a|0;f[a>>2]=7236;Am(a+4|0);return}function qp(a,b,c){a=a|0;b=b|0;c=c|0;return Ra[a&127](b|0,c|0)|0}function rp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(10)}function sp(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function tp(a){a=a|0;To(a);f[a>>2]=3836;return}function up(a,c){a=a|0;c=c|0;b[a>>0]=b[c>>0]|0;return}function vp(a,b,c){a=a|0;b=b|0;c=c|0;return -1}function wp(a,c){a=a|0;c=c|0;return b[(f[a>>2]|0)+c>>0]|0}function xp(a){a=a|0;return (f[a+4>>2]|0)-(f[a>>2]|0)|0}function yp(a){a=a|0;mj(a);Oq(a);return}function zp(a){a=a|0;if(!a)return;Oq(a);return}function Ap(a){a=a|0;n[a>>2]=$(1.0);f[a+4>>2]=1;return}function Bp(a){a=a|0;b[a+28>>0]=1;return}function Cp(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function Dp(a){a=a|0;ji(a);return}function Ep(a,b){a=a|0;b=b|0;return 1}function Fp(a){a=a|0;return a+12|0}function Gp(a,b){a=a|0;b=b|0;f[a+80>>2]=b;return}function Hp(a,b,c){a=a|0;b=b|0;c=c|0;Wa[a&7](b|0,c|0)}function Ip(){var a=0;a=ln(36)|0;qq(a);return a|0}function Jp(a){a=a|0;return gq(a+4|0)|0}function Kp(){var a=0;a=ln(108)|0;jn(a);return a|0}function Lp(a){a=a|0;return (b[a+32>>0]|0)!=0|0}function Mp(a){a=a|0;return a+-12|0}function Np(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(9)}function Op(){var a=0;a=f[4927]|0;f[4927]=a+0;return a|0}function Pp(a){a=a|0;return f[a+56>>2]|0}function Qp(){var a=0;a=f[1786]|0;f[1786]=a+0;return a|0}function Rp(a){a=a|0;Og(a);Oq(a);return}function Sp(a){a=a|0;Sq(a);Oq(a);return}function Tp(a){a=a|0;return b[a+24>>0]|0}function Up(a,b){a=a|0;b=b|0;return 0}function Vp(a){a=a|0;return f[a+40>>2]|0}function Wp(a){a=a|0;return f[a+48>>2]|0}function Xp(a,b){a=a|0;b=b|0;return Qa[a&127](b|0)|0}function Yp(a){a=a|0;return f[a+60>>2]|0}function Zp(a){a=a|0;return f[a+28>>2]|0}function _p(a){a=a|0;sa(a|0)|0;om()}function $p(a){a=a|0;pp(a);Oq(a);return}function aq(a){a=a|0;Ca()}function bq(a,b){a=a|0;b=b|0;return $(+Bk(a,b,0))}function cq(a){a=a|0;return 3}function dq(a,b){a=a|0;b=b|0;u=a;v=b}function eq(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function fq(a){a=a|0;return f[a+80>>2]|0}function gq(a){a=a|0;return f[a>>2]|0}function hq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(8)}function iq(a,b){a=a|0;b=b|0;Va[a&127](b|0)}function jq(a,b){a=a|0;b=b|0;return Wn(a,b)|0}function kq(a){a=a|0;return a&255|0}function lq(a){a=a|0;return Gj(a)|0}function mq(a,b){a=a|0;b=b|0;return +(+Bk(a,b,1))}function nq(a,b,c){a=a|0;b=b|0;c=c|0;aa(2);return 0}function oq(a){a=a|0;return 2}function pq(a){a=a|0;return 1}function qq(a){a=a|0;Dp(a);return}function rq(a,b){a=+a;b=+b;return +(+Yl(a,b))}function sq(a,b){a=+a;b=b|0;return +(+bk(a,b))}function tq(a,b){a=+a;b=b|0;return +(+ak(a,b))}function uq(){return 3}function vq(a,b,c){a=a|0;b=b|0;c=c|0;aa(7)}function wq(){return 0}function xq(){return -1}function yq(){return ln(1)|0}function zq(){return 4}function Aq(a){a=a|0;return (a+-48|0)>>>0<10|0}function Bq(){return 1}function Cq(){return 2}function Dq(a,b){a=+a;b=+b;return +(+xd(a,b))}function Eq(a,b){a=a|0;b=b|0;aa(1);return 0}function Fq(a){a=a|0;Ha()}function Gq(a){a=a|0;Ua[a&3]()}function Hq(){ua()}function Iq(a){a=a|0;return +(+mq(a,0))}function Jq(){return Yq()|0}function Kq(a,b){a=a|0;b=b|0;aa(6)}function Lq(a){a=a|0;return ln(a)|0}function Mq(a){a=a|0;Oq(a);return}function Nq(a){a=a|0;u=a}function Oq(a){a=a|0;yc(a);return}function Pq(a){a=a|0;I=a}function Qq(a){a=a|0;return a|0}function Rq(a){a=a|0;aa(0);return 0}function Sq(a){a=a|0;return}function Tq(a){a=a|0;return 0}function Uq(){return I|0}function Vq(){return 19632}function Wq(){return u|0}function Xq(a){a=a|0;aa(5)}function Yq(){return 6352}function Zq(){aa(4)}\n\n// EMSCRIPTEN_END_FUNCS\nvar Qa=[Rq,oq,pq,pq,oq,gb,Tq,Tq,Tq,hk,kg,pq,Wo,Tq,Tq,pq,Tq,pq,pq,yl,oq,yl,cq,wl,pq,co,wl,pq,fo,cl,pq,Zp,Rn,yl,pq,yl,oq,yl,cq,wl,pq,co,wl,pq,fo,cl,pq,Zp,Rn,yl,pq,cq,Tq,Wo,pq,Tq,pq,cq,pq,ql,oq,ql,Rn,ql,cq,pl,pq,co,pl,pq,fo,Wk,pq,Zp,pq,ql,oq,ql,Rn,ql,cq,pl,pq,co,pl,pq,fo,Wk,pq,Zp,pq,oq,pq,pq,Nd,pq,Vo,Xe,mh,zk,po,ko,pb,Qo,Wo,Mg,Wg,Lf,rb,Qo,Wo,pq,Tq,Tq,zc,Ki,Tq,pq,pq,Uj,Tq,Uj,ck,rn,Jp,Rq,Rq,Rq];var Ra=[Eq,xl,nh,Ie,El,Up,Up,Up,Ep,jb,rj,wo,Ep,Ep,ti,nj,ii,kk,ol,Qj,$k,dk,ek,Te,Go,Up,ni,Up,Pl,$d,Up,Pl,nf,Up,Ml,sh,mm,Ed,Up,Pl,$d,Up,Pl,nf,Up,Ml,sh,mm,Ed,Cn,Go,Up,li,Dd,Up,Fl,Zd,Up,Fl,hf,Up,Bl,rh,mm,Dd,Up,Fl,Zd,Up,Fl,hf,Up,Bl,rh,mm,zn,Kn,Fn,Ln,Jn,dh,ik,uk,cc,ye,Rm,og,vf,wf,ah,ik,uk,bc,ye,Rm,Ep,Up,Up,of,zm,mg,of,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq];var Sa=[nq,ho,vp,bn,Sm,wg,oj,kl,xh,wc,Kh,pg,gi,Rb,di,Ng,ml,Nm,Cj,nq,nq,nq,nq,nq,nq,nq,nq,nq,nq,nq,nq,nq];var Ta=[cp,Xd,Jc,oc,be,Ae,Tb,bb,Lc,pc,ae,ze,Sb,ab,eh,kd,Ic,fb,pf,If,tc,od,Kc,db,kf,Gf,qc,cp,cp,cp,cp,cp];var Ua=[Zq,Hq,Oi,Mn];var Va=[Xq,Sq,Mq,Gm,jm,al,Fq,ui,np,Ni,ep,Lh,Io,Jm,Fm,gm,Fq,Ql,Ql,Ql,Jk,wk,_k,Rk,el,Uk,Sq,Mq,Fq,Yi,em,Ql,Ql,Dk,rk,Xk,Pk,bl,Tk,Sq,Mq,Fq,Vi,Ul,Jm,Fm,Sq,Mq,Mq,Mq,yj,Jl,Sl,Al,Im,tm,qn,dn,Sq,Mq,Mq,Mq,vj,zl,Kl,sl,Em,km,gn,Um,Sq,Mq,xk,ok,nm,Lm,ff,$n,vk,nk,nn,Om,Tl,Ak,qk,tn,Xm,Wl,fm,_l,cf,On,mj,Fq,yp,Sq,Mq,Fq,yp,yp,Nk,Gk,sb,Og,Rp,Sq,Sp,Sq,Sq,Sp,pp,$p,$p,xn,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq];var Wa=[Kq,pk,gg,yk,Nc,Kq,Kq,Kq];var Xa=[vq,Ne,ij,$b,ic,yd,$b,ic,$g,Aj,Lg,Yf,vq,vq,vq,vq];var Ya=[hq,hm,dl,hq];var Za=[Np,tj,oh,Np];var _a=[rp,Rl,Sk,rp];return{___cxa_can_catch:lm,___cxa_is_pointer_type:Ao,___divdi3:Ik,___muldi3:un,___udivdi3:jp,___uremdi3:hn,_bitshift64Lshr:Yn,_bitshift64Shl:Tn,_emscripten_bind_DracoInt8Array_DracoInt8Array_0:dp,_emscripten_bind_DracoInt8Array_GetValue_1:No,_emscripten_bind_DracoInt8Array___destroy___0:cn,_emscripten_bind_DracoInt8Array_size_0:xp,_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2:oo,_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3:En,_emscripten_bind_Encoder_Encoder_0:Ip,_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5:_m,_emscripten_bind_Encoder_SetAttributeQuantization_2:jo,_emscripten_bind_Encoder_SetEncodingMethod_1:bp,_emscripten_bind_Encoder_SetSpeedOptions_2:Jo,_emscripten_bind_Encoder___destroy___0:Wj,_emscripten_bind_GeometryAttribute_GeometryAttribute_0:So,_emscripten_bind_GeometryAttribute___destroy___0:zp,_emscripten_bind_MeshBuilder_AddFacesToMesh_3:no,_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5:pn,_emscripten_bind_MeshBuilder_AddFloatAttribute_5:pn,_emscripten_bind_MeshBuilder_AddInt16Attribute_5:fn,_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5:on,_emscripten_bind_MeshBuilder_AddInt32Attribute_5:on,_emscripten_bind_MeshBuilder_AddInt8Attribute_5:kn,_emscripten_bind_MeshBuilder_AddMetadataToMesh_2:ro,_emscripten_bind_MeshBuilder_AddMetadata_2:qo,_emscripten_bind_MeshBuilder_AddUInt16Attribute_5:an,_emscripten_bind_MeshBuilder_AddUInt32Attribute_5:$m,_emscripten_bind_MeshBuilder_AddUInt8Attribute_5:en,_emscripten_bind_MeshBuilder_MeshBuilder_0:yq,_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3:Dn,_emscripten_bind_MeshBuilder___destroy___0:zp,_emscripten_bind_Mesh_Mesh_0:Kp,_emscripten_bind_Mesh___destroy___0:Co,_emscripten_bind_Mesh_num_attributes_0:hp,_emscripten_bind_Mesh_num_faces_0:ap,_emscripten_bind_Mesh_num_points_0:fq,_emscripten_bind_Mesh_set_num_points_1:Gp,_emscripten_bind_MetadataBuilder_AddDoubleEntry_3:bo,_emscripten_bind_MetadataBuilder_AddIntEntry_3:go,_emscripten_bind_MetadataBuilder_AddStringEntry_3:_n,_emscripten_bind_MetadataBuilder_MetadataBuilder_0:yq,_emscripten_bind_MetadataBuilder___destroy___0:zp,_emscripten_bind_Metadata_Metadata_0:Xl,_emscripten_bind_Metadata___destroy___0:Uo,_emscripten_bind_PointAttribute_PointAttribute_0:Zo,_emscripten_bind_PointAttribute___destroy___0:Ij,_emscripten_bind_PointAttribute_attribute_type_0:Pp,_emscripten_bind_PointAttribute_byte_offset_0:Wp,_emscripten_bind_PointAttribute_byte_stride_0:Vp,_emscripten_bind_PointAttribute_data_type_0:Zp,_emscripten_bind_PointAttribute_normalized_0:Lp,_emscripten_bind_PointAttribute_num_components_0:Tp,_emscripten_bind_PointAttribute_size_0:fq,_emscripten_bind_PointAttribute_unique_id_0:Yp,_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5:pn,_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5:fn,_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5:on,_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5:kn,_emscripten_bind_PointCloudBuilder_AddMetadata_2:qo,_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5:an,_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5:$m,_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5:en,_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0:yq,_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3:Dn,_emscripten_bind_PointCloudBuilder___destroy___0:zp,_emscripten_bind_PointCloud_PointCloud_0:mp,_emscripten_bind_PointCloud___destroy___0:Co,_emscripten_bind_PointCloud_num_attributes_0:hp,_emscripten_bind_PointCloud_num_points_0:fq,_emscripten_bind_VoidPtr___destroy___0:zp,_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE:xq,_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD:wq,_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH:Bq,_emscripten_enum_draco_GeometryAttribute_Type_COLOR:Cq,_emscripten_enum_draco_GeometryAttribute_Type_GENERIC:zq,_emscripten_enum_draco_GeometryAttribute_Type_INVALID:xq,_emscripten_enum_draco_GeometryAttribute_Type_NORMAL:Bq,_emscripten_enum_draco_GeometryAttribute_Type_POSITION:wq,_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD:uq,_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING:Bq,_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING:wq,_emscripten_replace_memory:Pa,_free:yc,_i64Add:Vn,_i64Subtract:Xn,_llvm_bswap_i32:sp,_malloc:$a,_memcpy:kh,_memmove:im,_memset:sj,_sbrk:Nl,dynCall_ii:Xp,dynCall_iii:qp,dynCall_iiii:Mo,dynCall_iiiiiii:In,dynCall_v:Gq,dynCall_vi:iq,dynCall_vii:Hp,dynCall_viii:Yo,dynCall_viiii:Do,dynCall_viiiii:so,dynCall_viiiiii:Pn,establishStackSpace:dq,getTempRet0:Uq,runPostSets:Un,setTempRet0:Pq,setThrew:Cp,stackAlloc:_o,stackRestore:Nq,stackSave:Wq}})\n\n\n// EMSCRIPTEN_END_ASM\n(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=asm[\"___cxa_can_catch\"];var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=asm[\"___cxa_is_pointer_type\"];var ___divdi3=Module[\"___divdi3\"]=asm[\"___divdi3\"];var ___muldi3=Module[\"___muldi3\"]=asm[\"___muldi3\"];var ___udivdi3=Module[\"___udivdi3\"]=asm[\"___udivdi3\"];var ___uremdi3=Module[\"___uremdi3\"]=asm[\"___uremdi3\"];var _bitshift64Lshr=Module[\"_bitshift64Lshr\"]=asm[\"_bitshift64Lshr\"];var _bitshift64Shl=Module[\"_bitshift64Shl\"]=asm[\"_bitshift64Shl\"];var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"]=asm[\"_emscripten_bind_DracoInt8Array_DracoInt8Array_0\"];var _emscripten_bind_DracoInt8Array_GetValue_1=Module[\"_emscripten_bind_DracoInt8Array_GetValue_1\"]=asm[\"_emscripten_bind_DracoInt8Array_GetValue_1\"];var _emscripten_bind_DracoInt8Array___destroy___0=Module[\"_emscripten_bind_DracoInt8Array___destroy___0\"]=asm[\"_emscripten_bind_DracoInt8Array___destroy___0\"];var _emscripten_bind_DracoInt8Array_size_0=Module[\"_emscripten_bind_DracoInt8Array_size_0\"]=asm[\"_emscripten_bind_DracoInt8Array_size_0\"];var _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=Module[\"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2\"]=asm[\"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2\"];var _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=Module[\"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3\"]=asm[\"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3\"];var _emscripten_bind_Encoder_Encoder_0=Module[\"_emscripten_bind_Encoder_Encoder_0\"]=asm[\"_emscripten_bind_Encoder_Encoder_0\"];var _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=Module[\"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5\"]=asm[\"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5\"];var _emscripten_bind_Encoder_SetAttributeQuantization_2=Module[\"_emscripten_bind_Encoder_SetAttributeQuantization_2\"]=asm[\"_emscripten_bind_Encoder_SetAttributeQuantization_2\"];var _emscripten_bind_Encoder_SetEncodingMethod_1=Module[\"_emscripten_bind_Encoder_SetEncodingMethod_1\"]=asm[\"_emscripten_bind_Encoder_SetEncodingMethod_1\"];var _emscripten_bind_Encoder_SetSpeedOptions_2=Module[\"_emscripten_bind_Encoder_SetSpeedOptions_2\"]=asm[\"_emscripten_bind_Encoder_SetSpeedOptions_2\"];var _emscripten_bind_Encoder___destroy___0=Module[\"_emscripten_bind_Encoder___destroy___0\"]=asm[\"_emscripten_bind_Encoder___destroy___0\"];var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"]=asm[\"_emscripten_bind_GeometryAttribute_GeometryAttribute_0\"];var _emscripten_bind_GeometryAttribute___destroy___0=Module[\"_emscripten_bind_GeometryAttribute___destroy___0\"]=asm[\"_emscripten_bind_GeometryAttribute___destroy___0\"];var _emscripten_bind_MeshBuilder_AddFacesToMesh_3=Module[\"_emscripten_bind_MeshBuilder_AddFacesToMesh_3\"]=asm[\"_emscripten_bind_MeshBuilder_AddFacesToMesh_3\"];var _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5\"];var _emscripten_bind_MeshBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_MeshBuilder_AddFloatAttribute_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddFloatAttribute_5\"];var _emscripten_bind_MeshBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt16Attribute_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddInt16Attribute_5\"];var _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5\"];var _emscripten_bind_MeshBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt32Attribute_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddInt32Attribute_5\"];var _emscripten_bind_MeshBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddInt8Attribute_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddInt8Attribute_5\"];var _emscripten_bind_MeshBuilder_AddMetadataToMesh_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2\"]=asm[\"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2\"];var _emscripten_bind_MeshBuilder_AddMetadata_2=Module[\"_emscripten_bind_MeshBuilder_AddMetadata_2\"]=asm[\"_emscripten_bind_MeshBuilder_AddMetadata_2\"];var _emscripten_bind_MeshBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5\"];var _emscripten_bind_MeshBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5\"];var _emscripten_bind_MeshBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5\"]=asm[\"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5\"];var _emscripten_bind_MeshBuilder_MeshBuilder_0=Module[\"_emscripten_bind_MeshBuilder_MeshBuilder_0\"]=asm[\"_emscripten_bind_MeshBuilder_MeshBuilder_0\"];var _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3\"]=asm[\"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3\"];var _emscripten_bind_MeshBuilder___destroy___0=Module[\"_emscripten_bind_MeshBuilder___destroy___0\"]=asm[\"_emscripten_bind_MeshBuilder___destroy___0\"];var _emscripten_bind_Mesh_Mesh_0=Module[\"_emscripten_bind_Mesh_Mesh_0\"]=asm[\"_emscripten_bind_Mesh_Mesh_0\"];var _emscripten_bind_Mesh___destroy___0=Module[\"_emscripten_bind_Mesh___destroy___0\"]=asm[\"_emscripten_bind_Mesh___destroy___0\"];var _emscripten_bind_Mesh_num_attributes_0=Module[\"_emscripten_bind_Mesh_num_attributes_0\"]=asm[\"_emscripten_bind_Mesh_num_attributes_0\"];var _emscripten_bind_Mesh_num_faces_0=Module[\"_emscripten_bind_Mesh_num_faces_0\"]=asm[\"_emscripten_bind_Mesh_num_faces_0\"];var _emscripten_bind_Mesh_num_points_0=Module[\"_emscripten_bind_Mesh_num_points_0\"]=asm[\"_emscripten_bind_Mesh_num_points_0\"];var _emscripten_bind_Mesh_set_num_points_1=Module[\"_emscripten_bind_Mesh_set_num_points_1\"]=asm[\"_emscripten_bind_Mesh_set_num_points_1\"];var _emscripten_bind_MetadataBuilder_AddDoubleEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3\"]=asm[\"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3\"];var _emscripten_bind_MetadataBuilder_AddIntEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddIntEntry_3\"]=asm[\"_emscripten_bind_MetadataBuilder_AddIntEntry_3\"];var _emscripten_bind_MetadataBuilder_AddStringEntry_3=Module[\"_emscripten_bind_MetadataBuilder_AddStringEntry_3\"]=asm[\"_emscripten_bind_MetadataBuilder_AddStringEntry_3\"];var _emscripten_bind_MetadataBuilder_MetadataBuilder_0=Module[\"_emscripten_bind_MetadataBuilder_MetadataBuilder_0\"]=asm[\"_emscripten_bind_MetadataBuilder_MetadataBuilder_0\"];var _emscripten_bind_MetadataBuilder___destroy___0=Module[\"_emscripten_bind_MetadataBuilder___destroy___0\"]=asm[\"_emscripten_bind_MetadataBuilder___destroy___0\"];var _emscripten_bind_Metadata_Metadata_0=Module[\"_emscripten_bind_Metadata_Metadata_0\"]=asm[\"_emscripten_bind_Metadata_Metadata_0\"];var _emscripten_bind_Metadata___destroy___0=Module[\"_emscripten_bind_Metadata___destroy___0\"]=asm[\"_emscripten_bind_Metadata___destroy___0\"];var _emscripten_bind_PointAttribute_PointAttribute_0=Module[\"_emscripten_bind_PointAttribute_PointAttribute_0\"]=asm[\"_emscripten_bind_PointAttribute_PointAttribute_0\"];var _emscripten_bind_PointAttribute___destroy___0=Module[\"_emscripten_bind_PointAttribute___destroy___0\"]=asm[\"_emscripten_bind_PointAttribute___destroy___0\"];var _emscripten_bind_PointAttribute_attribute_type_0=Module[\"_emscripten_bind_PointAttribute_attribute_type_0\"]=asm[\"_emscripten_bind_PointAttribute_attribute_type_0\"];var _emscripten_bind_PointAttribute_byte_offset_0=Module[\"_emscripten_bind_PointAttribute_byte_offset_0\"]=asm[\"_emscripten_bind_PointAttribute_byte_offset_0\"];var _emscripten_bind_PointAttribute_byte_stride_0=Module[\"_emscripten_bind_PointAttribute_byte_stride_0\"]=asm[\"_emscripten_bind_PointAttribute_byte_stride_0\"];var _emscripten_bind_PointAttribute_data_type_0=Module[\"_emscripten_bind_PointAttribute_data_type_0\"]=asm[\"_emscripten_bind_PointAttribute_data_type_0\"];var _emscripten_bind_PointAttribute_normalized_0=Module[\"_emscripten_bind_PointAttribute_normalized_0\"]=asm[\"_emscripten_bind_PointAttribute_normalized_0\"];var _emscripten_bind_PointAttribute_num_components_0=Module[\"_emscripten_bind_PointAttribute_num_components_0\"]=asm[\"_emscripten_bind_PointAttribute_num_components_0\"];var _emscripten_bind_PointAttribute_size_0=Module[\"_emscripten_bind_PointAttribute_size_0\"]=asm[\"_emscripten_bind_PointAttribute_size_0\"];var _emscripten_bind_PointAttribute_unique_id_0=Module[\"_emscripten_bind_PointAttribute_unique_id_0\"]=asm[\"_emscripten_bind_PointAttribute_unique_id_0\"];var _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5\"]=asm[\"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5\"];var _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5\"]=asm[\"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5\"];var _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5\"]=asm[\"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5\"];var _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5\"]=asm[\"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5\"];var _emscripten_bind_PointCloudBuilder_AddMetadata_2=Module[\"_emscripten_bind_PointCloudBuilder_AddMetadata_2\"]=asm[\"_emscripten_bind_PointCloudBuilder_AddMetadata_2\"];var _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5\"]=asm[\"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5\"];var _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5\"]=asm[\"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5\"];var _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=Module[\"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5\"]=asm[\"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5\"];var _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=Module[\"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0\"]=asm[\"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0\"];var _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=Module[\"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3\"]=asm[\"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3\"];var _emscripten_bind_PointCloudBuilder___destroy___0=Module[\"_emscripten_bind_PointCloudBuilder___destroy___0\"]=asm[\"_emscripten_bind_PointCloudBuilder___destroy___0\"];var _emscripten_bind_PointCloud_PointCloud_0=Module[\"_emscripten_bind_PointCloud_PointCloud_0\"]=asm[\"_emscripten_bind_PointCloud_PointCloud_0\"];var _emscripten_bind_PointCloud___destroy___0=Module[\"_emscripten_bind_PointCloud___destroy___0\"]=asm[\"_emscripten_bind_PointCloud___destroy___0\"];var _emscripten_bind_PointCloud_num_attributes_0=Module[\"_emscripten_bind_PointCloud_num_attributes_0\"]=asm[\"_emscripten_bind_PointCloud_num_attributes_0\"];var _emscripten_bind_PointCloud_num_points_0=Module[\"_emscripten_bind_PointCloud_num_points_0\"]=asm[\"_emscripten_bind_PointCloud_num_points_0\"];var _emscripten_bind_VoidPtr___destroy___0=Module[\"_emscripten_bind_VoidPtr___destroy___0\"]=asm[\"_emscripten_bind_VoidPtr___destroy___0\"];var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"]=asm[\"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE\"];var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"]=asm[\"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD\"];var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"]=asm[\"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH\"];var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"]=asm[\"_emscripten_enum_draco_GeometryAttribute_Type_COLOR\"];var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"]=asm[\"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC\"];var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"]=asm[\"_emscripten_enum_draco_GeometryAttribute_Type_INVALID\"];var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"]=asm[\"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL\"];var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"]=asm[\"_emscripten_enum_draco_GeometryAttribute_Type_POSITION\"];var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"]=asm[\"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD\"];var _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING\"]=asm[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING\"];var _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=Module[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING\"]=asm[\"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING\"];var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=asm[\"_emscripten_replace_memory\"];var _free=Module[\"_free\"]=asm[\"_free\"];var _i64Add=Module[\"_i64Add\"]=asm[\"_i64Add\"];var _i64Subtract=Module[\"_i64Subtract\"]=asm[\"_i64Subtract\"];var _llvm_bswap_i32=Module[\"_llvm_bswap_i32\"]=asm[\"_llvm_bswap_i32\"];var _malloc=Module[\"_malloc\"]=asm[\"_malloc\"];var _memcpy=Module[\"_memcpy\"]=asm[\"_memcpy\"];var _memmove=Module[\"_memmove\"]=asm[\"_memmove\"];var _memset=Module[\"_memset\"]=asm[\"_memset\"];var _sbrk=Module[\"_sbrk\"]=asm[\"_sbrk\"];var establishStackSpace=Module[\"establishStackSpace\"]=asm[\"establishStackSpace\"];var getTempRet0=Module[\"getTempRet0\"]=asm[\"getTempRet0\"];var runPostSets=Module[\"runPostSets\"]=asm[\"runPostSets\"];var setTempRet0=Module[\"setTempRet0\"]=asm[\"setTempRet0\"];var setThrew=Module[\"setThrew\"]=asm[\"setThrew\"];var stackAlloc=Module[\"stackAlloc\"]=asm[\"stackAlloc\"];var stackRestore=Module[\"stackRestore\"]=asm[\"stackRestore\"];var stackSave=Module[\"stackSave\"]=asm[\"stackSave\"];var dynCall_ii=Module[\"dynCall_ii\"]=asm[\"dynCall_ii\"];var dynCall_iii=Module[\"dynCall_iii\"]=asm[\"dynCall_iii\"];var dynCall_iiii=Module[\"dynCall_iiii\"]=asm[\"dynCall_iiii\"];var dynCall_iiiiiii=Module[\"dynCall_iiiiiii\"]=asm[\"dynCall_iiiiiii\"];var dynCall_v=Module[\"dynCall_v\"]=asm[\"dynCall_v\"];var dynCall_vi=Module[\"dynCall_vi\"]=asm[\"dynCall_vi\"];var dynCall_vii=Module[\"dynCall_vii\"]=asm[\"dynCall_vii\"];var dynCall_viii=Module[\"dynCall_viii\"]=asm[\"dynCall_viii\"];var dynCall_viiii=Module[\"dynCall_viiii\"]=asm[\"dynCall_viiii\"];var dynCall_viiiii=Module[\"dynCall_viiiii\"]=asm[\"dynCall_viiiii\"];var dynCall_viiiiii=Module[\"dynCall_viiiiii\"]=asm[\"dynCall_viiiiii\"];Module[\"asm\"]=asm;if(memoryInitializer){if(!isDataURI(memoryInitializer)){if(typeof Module[\"locateFile\"]===\"function\"){memoryInitializer=Module[\"locateFile\"](memoryInitializer)}else if(Module[\"memoryInitializerPrefixURL\"]){memoryInitializer=Module[\"memoryInitializerPrefixURL\"]+memoryInitializer}}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module[\"readBinary\"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency(\"memory initializer\");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module[\"memoryInitializerRequest\"])delete Module[\"memoryInitializerRequest\"].response;removeRunDependency(\"memory initializer\")});function doBrowserLoad(){Module[\"readAsync\"](memoryInitializer,applyMemoryInitializer,(function(){throw\"could not load memory initializer \"+memoryInitializer}))}var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module[\"memoryInitializerRequest\"]){function useRequest(){var request=Module[\"memoryInitializerRequest\"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module[\"memoryInitializerRequestURL\"]);if(data){response=data.buffer}else{console.warn(\"a problem seems to have happened with Module.memoryInitializerRequest, status: \"+request.status+\", retrying \"+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)}if(Module[\"memoryInitializerRequest\"].response){setTimeout(useRequest,0)}else{Module[\"memoryInitializerRequest\"].addEventListener(\"load\",useRequest)}}else{doBrowserLoad()}}}Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}if(ENVIRONMENT_IS_NODE){process[\"exit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}Module[\"exit\"]=exit;function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module[\"WrapperObject\"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module[\"getCache\"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module[\"wrapPointer\"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module[\"castObject\"]=castObject;Module[\"NULL\"]=wrapPointer(0);function destroy(obj){if(!obj[\"__destroy__\"])throw\"Error: Cannot destroy object. (Did you create it yourself?)\";obj[\"__destroy__\"]();delete getCache(obj.__class__)[obj.ptr]}Module[\"destroy\"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module[\"compare\"]=compare;function getPointer(obj){return obj.ptr}Module[\"getPointer\"]=getPointer;function getClass(obj){return obj.__class__}Module[\"getClass\"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:(function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module[\"_free\"](ensureCache.temps[i])}ensureCache.temps.length=0;Module[\"_free\"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module[\"_malloc\"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0}),alloc:(function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module[\"_malloc\"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret}),copy:(function(array,view,offset){var offsetShifted=offset;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offsetShifted>>=1;break;case 4:offsetShifted>>=2;break;case 8:offsetShifted>>=3;break}for(var i=0;i<array.length;i++){view[offsetShifted+i]=array[i]}})};function ensureString(value){if(typeof value===\"string\"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function ensureInt16(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP16);ensureCache.copy(value,HEAP16,offset);return offset}return value}function ensureInt32(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAP32);ensureCache.copy(value,HEAP32,offset);return offset}return value}function ensureFloat32(value){if(typeof value===\"object\"){var offset=ensureCache.alloc(value,HEAPF32);ensureCache.copy(value,HEAPF32,offset);return offset}return value}function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module[\"PointCloud\"]=PointCloud;PointCloud.prototype[\"num_attributes\"]=PointCloud.prototype.num_attributes=(function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)});PointCloud.prototype[\"num_points\"]=PointCloud.prototype.num_points=(function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)});PointCloud.prototype[\"__destroy__\"]=PointCloud.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)});function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module[\"PointAttribute\"]=PointAttribute;PointAttribute.prototype[\"size\"]=PointAttribute.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)});PointAttribute.prototype[\"attribute_type\"]=PointAttribute.prototype.attribute_type=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)});PointAttribute.prototype[\"data_type\"]=PointAttribute.prototype.data_type=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)});PointAttribute.prototype[\"num_components\"]=PointAttribute.prototype.num_components=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)});PointAttribute.prototype[\"normalized\"]=PointAttribute.prototype.normalized=(function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)});PointAttribute.prototype[\"byte_stride\"]=PointAttribute.prototype.byte_stride=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)});PointAttribute.prototype[\"byte_offset\"]=PointAttribute.prototype.byte_offset=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)});PointAttribute.prototype[\"unique_id\"]=PointAttribute.prototype.unique_id=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)});PointAttribute.prototype[\"__destroy__\"]=PointAttribute.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)});function Encoder(){this.ptr=_emscripten_bind_Encoder_Encoder_0();getCache(Encoder)[this.ptr]=this}Encoder.prototype=Object.create(WrapperObject.prototype);Encoder.prototype.constructor=Encoder;Encoder.prototype.__class__=Encoder;Encoder.__cache__={};Module[\"Encoder\"]=Encoder;Encoder.prototype[\"SetEncodingMethod\"]=Encoder.prototype.SetEncodingMethod=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;_emscripten_bind_Encoder_SetEncodingMethod_1(self,arg0)});Encoder.prototype[\"SetAttributeQuantization\"]=Encoder.prototype.SetAttributeQuantization=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;_emscripten_bind_Encoder_SetAttributeQuantization_2(self,arg0,arg1)});Encoder.prototype[\"SetAttributeExplicitQuantization\"]=Encoder.prototype.SetAttributeExplicitQuantization=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(typeof arg3==\"object\"){arg3=ensureFloat32(arg3)}if(arg4&&typeof arg4===\"object\")arg4=arg4.ptr;_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5(self,arg0,arg1,arg2,arg3,arg4)});Encoder.prototype[\"SetSpeedOptions\"]=Encoder.prototype.SetSpeedOptions=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;_emscripten_bind_Encoder_SetSpeedOptions_2(self,arg0,arg1)});Encoder.prototype[\"EncodeMeshToDracoBuffer\"]=Encoder.prototype.EncodeMeshToDracoBuffer=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;return _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2(self,arg0,arg1)});Encoder.prototype[\"EncodePointCloudToDracoBuffer\"]=Encoder.prototype.EncodePointCloudToDracoBuffer=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;return _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3(self,arg0,arg1,arg2)});Encoder.prototype[\"__destroy__\"]=Encoder.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_Encoder___destroy___0(self)});function MeshBuilder(){this.ptr=_emscripten_bind_MeshBuilder_MeshBuilder_0();getCache(MeshBuilder)[this.ptr]=this}MeshBuilder.prototype=Object.create(WrapperObject.prototype);MeshBuilder.prototype.constructor=MeshBuilder;MeshBuilder.prototype.__class__=MeshBuilder;MeshBuilder.__cache__={};Module[\"MeshBuilder\"]=MeshBuilder;MeshBuilder.prototype[\"AddFacesToMesh\"]=MeshBuilder.prototype.AddFacesToMesh=(function(arg0,arg1,arg2){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(typeof arg2==\"object\"){arg2=ensureInt32(arg2)}return!!_emscripten_bind_MeshBuilder_AddFacesToMesh_3(self,arg0,arg1,arg2)});MeshBuilder.prototype[\"AddFloatAttributeToMesh\"]=MeshBuilder.prototype.AddFloatAttributeToMesh=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureFloat32(arg4)}return _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddInt32AttributeToMesh\"]=MeshBuilder.prototype.AddInt32AttributeToMesh=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt32(arg4)}return _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddMetadataToMesh\"]=MeshBuilder.prototype.AddMetadataToMesh=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;return!!_emscripten_bind_MeshBuilder_AddMetadataToMesh_2(self,arg0,arg1)});MeshBuilder.prototype[\"AddFloatAttribute\"]=MeshBuilder.prototype.AddFloatAttribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureFloat32(arg4)}return _emscripten_bind_MeshBuilder_AddFloatAttribute_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddInt8Attribute\"]=MeshBuilder.prototype.AddInt8Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt8(arg4)}return _emscripten_bind_MeshBuilder_AddInt8Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddUInt8Attribute\"]=MeshBuilder.prototype.AddUInt8Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt8(arg4)}return _emscripten_bind_MeshBuilder_AddUInt8Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddInt16Attribute\"]=MeshBuilder.prototype.AddInt16Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt16(arg4)}return _emscripten_bind_MeshBuilder_AddInt16Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddUInt16Attribute\"]=MeshBuilder.prototype.AddUInt16Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt16(arg4)}return _emscripten_bind_MeshBuilder_AddUInt16Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddInt32Attribute\"]=MeshBuilder.prototype.AddInt32Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt32(arg4)}return _emscripten_bind_MeshBuilder_AddInt32Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddUInt32Attribute\"]=MeshBuilder.prototype.AddUInt32Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt32(arg4)}return _emscripten_bind_MeshBuilder_AddUInt32Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});MeshBuilder.prototype[\"AddMetadata\"]=MeshBuilder.prototype.AddMetadata=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;return!!_emscripten_bind_MeshBuilder_AddMetadata_2(self,arg0,arg1)});MeshBuilder.prototype[\"SetMetadataForAttribute\"]=MeshBuilder.prototype.SetMetadataForAttribute=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;return!!_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3(self,arg0,arg1,arg2)});MeshBuilder.prototype[\"__destroy__\"]=MeshBuilder.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_MeshBuilder___destroy___0(self)});function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module[\"DracoInt8Array\"]=DracoInt8Array;DracoInt8Array.prototype[\"GetValue\"]=DracoInt8Array.prototype.GetValue=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,arg0)});DracoInt8Array.prototype[\"size\"]=DracoInt8Array.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)});DracoInt8Array.prototype[\"__destroy__\"]=DracoInt8Array.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)});function MetadataBuilder(){this.ptr=_emscripten_bind_MetadataBuilder_MetadataBuilder_0();getCache(MetadataBuilder)[this.ptr]=this}MetadataBuilder.prototype=Object.create(WrapperObject.prototype);MetadataBuilder.prototype.constructor=MetadataBuilder;MetadataBuilder.prototype.__class__=MetadataBuilder;MetadataBuilder.__cache__={};Module[\"MetadataBuilder\"]=MetadataBuilder;MetadataBuilder.prototype[\"AddStringEntry\"]=MetadataBuilder.prototype.AddStringEntry=(function(arg0,arg1,arg2){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;else arg2=ensureString(arg2);return!!_emscripten_bind_MetadataBuilder_AddStringEntry_3(self,arg0,arg1,arg2)});MetadataBuilder.prototype[\"AddIntEntry\"]=MetadataBuilder.prototype.AddIntEntry=(function(arg0,arg1,arg2){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;return!!_emscripten_bind_MetadataBuilder_AddIntEntry_3(self,arg0,arg1,arg2)});MetadataBuilder.prototype[\"AddDoubleEntry\"]=MetadataBuilder.prototype.AddDoubleEntry=(function(arg0,arg1,arg2){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;return!!_emscripten_bind_MetadataBuilder_AddDoubleEntry_3(self,arg0,arg1,arg2)});MetadataBuilder.prototype[\"__destroy__\"]=MetadataBuilder.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_MetadataBuilder___destroy___0(self)});function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module[\"GeometryAttribute\"]=GeometryAttribute;GeometryAttribute.prototype[\"__destroy__\"]=GeometryAttribute.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)});function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module[\"Mesh\"]=Mesh;Mesh.prototype[\"num_faces\"]=Mesh.prototype.num_faces=(function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)});Mesh.prototype[\"num_attributes\"]=Mesh.prototype.num_attributes=(function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)});Mesh.prototype[\"num_points\"]=Mesh.prototype.num_points=(function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)});Mesh.prototype[\"set_num_points\"]=Mesh.prototype.set_num_points=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;_emscripten_bind_Mesh_set_num_points_1(self,arg0)});Mesh.prototype[\"__destroy__\"]=Mesh.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)});function PointCloudBuilder(){this.ptr=_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0();getCache(PointCloudBuilder)[this.ptr]=this}PointCloudBuilder.prototype=Object.create(WrapperObject.prototype);PointCloudBuilder.prototype.constructor=PointCloudBuilder;PointCloudBuilder.prototype.__class__=PointCloudBuilder;PointCloudBuilder.__cache__={};Module[\"PointCloudBuilder\"]=PointCloudBuilder;PointCloudBuilder.prototype[\"AddFloatAttribute\"]=PointCloudBuilder.prototype.AddFloatAttribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureFloat32(arg4)}return _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5(self,arg0,arg1,arg2,arg3,arg4)});PointCloudBuilder.prototype[\"AddInt8Attribute\"]=PointCloudBuilder.prototype.AddInt8Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt8(arg4)}return _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});PointCloudBuilder.prototype[\"AddUInt8Attribute\"]=PointCloudBuilder.prototype.AddUInt8Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt8(arg4)}return _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});PointCloudBuilder.prototype[\"AddInt16Attribute\"]=PointCloudBuilder.prototype.AddInt16Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt16(arg4)}return _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});PointCloudBuilder.prototype[\"AddUInt16Attribute\"]=PointCloudBuilder.prototype.AddUInt16Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt16(arg4)}return _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});PointCloudBuilder.prototype[\"AddInt32Attribute\"]=PointCloudBuilder.prototype.AddInt32Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt32(arg4)}return _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});PointCloudBuilder.prototype[\"AddUInt32Attribute\"]=PointCloudBuilder.prototype.AddUInt32Attribute=(function(arg0,arg1,arg2,arg3,arg4){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;if(arg3&&typeof arg3===\"object\")arg3=arg3.ptr;if(typeof arg4==\"object\"){arg4=ensureInt32(arg4)}return _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5(self,arg0,arg1,arg2,arg3,arg4)});PointCloudBuilder.prototype[\"AddMetadata\"]=PointCloudBuilder.prototype.AddMetadata=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;return!!_emscripten_bind_PointCloudBuilder_AddMetadata_2(self,arg0,arg1)});PointCloudBuilder.prototype[\"SetMetadataForAttribute\"]=PointCloudBuilder.prototype.SetMetadataForAttribute=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0===\"object\")arg0=arg0.ptr;if(arg1&&typeof arg1===\"object\")arg1=arg1.ptr;if(arg2&&typeof arg2===\"object\")arg2=arg2.ptr;return!!_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3(self,arg0,arg1,arg2)});PointCloudBuilder.prototype[\"__destroy__\"]=PointCloudBuilder.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_PointCloudBuilder___destroy___0(self)});function VoidPtr(){throw\"cannot construct a VoidPtr, no constructor in IDL\"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module[\"VoidPtr\"]=VoidPtr;VoidPtr.prototype[\"__destroy__\"]=VoidPtr.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)});function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module[\"Metadata\"]=Metadata;Metadata.prototype[\"__destroy__\"]=Metadata.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)});((function(){function setupEnums(){Module[\"MESH_SEQUENTIAL_ENCODING\"]=_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING();Module[\"MESH_EDGEBREAKER_ENCODING\"]=_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING();Module[\"INVALID_GEOMETRY_TYPE\"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module[\"POINT_CLOUD\"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module[\"TRIANGULAR_MESH\"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module[\"INVALID\"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module[\"POSITION\"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module[\"NORMAL\"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module[\"COLOR\"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module[\"TEX_COORD\"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module[\"GENERIC\"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC()}if(Module[\"calledRun\"])setupEnums();else addOnPreMain(setupEnums)}))();if(typeof Module[\"onModuleParsed\"]===\"function\"){Module[\"onModuleParsed\"]()}\n\n\n\n\n\n\n  return DracoEncoderModule;\n};\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DracoEncoderModule;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DracoEncoderModule; });\nelse if (typeof exports === 'object')\n  exports[\"DracoEncoderModule\"] = DracoEncoderModule;\n"
  },
  {
    "path": "packages/sdk/public/libs/draco/gltf/draco_wasm_wrapper.js",
    "content": "var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(h){var n=0;return function(){return n<h.length?{done:!1,value:h[n++]}:{done:!0}}};$jscomp.arrayIterator=function(h){return{next:$jscomp.arrayIteratorImpl(h)}};$jscomp.makeIterator=function(h){var n=\"undefined\"!=typeof Symbol&&Symbol.iterator&&h[Symbol.iterator];return n?n.call(h):$jscomp.arrayIterator(h)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(h){h=[\"object\"==typeof globalThis&&globalThis,h,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var n=0;n<h.length;++n){var k=h[n];if(k&&k.Math==Math)return k}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(h,n,k){if(h==Array.prototype||h==Object.prototype)return h;h[n]=k.value;return h};$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";\nvar $jscomp$lookupPolyfilledValue=function(h,n){var k=$jscomp.propertyToPolyfillSymbol[n];if(null==k)return h[n];k=h[k];return void 0!==k?k:h[n]};$jscomp.polyfill=function(h,n,k,p){n&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(h,n,k,p):$jscomp.polyfillUnisolated(h,n,k,p))};\n$jscomp.polyfillUnisolated=function(h,n,k,p){k=$jscomp.global;h=h.split(\".\");for(p=0;p<h.length-1;p++){var l=h[p];if(!(l in k))return;k=k[l]}h=h[h.length-1];p=k[h];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(k,h,{configurable:!0,writable:!0,value:n})};\n$jscomp.polyfillIsolated=function(h,n,k,p){var l=h.split(\".\");h=1===l.length;p=l[0];p=!h&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var y=0;y<l.length-1;y++){var f=l[y];if(!(f in p))return;p=p[f]}l=l[l.length-1];k=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===k?p[l]:null;n=n(k);null!=n&&(h?$jscomp.defineProperty($jscomp.polyfills,l,{configurable:!0,writable:!0,value:n}):n!==k&&(void 0===$jscomp.propertyToPolyfillSymbol[l]&&(k=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE?\n$jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+\"$\"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))};\n$jscomp.polyfill(\"Promise\",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&\"undefined\"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf(\"[native code]\")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};\nvar p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var u=f[q];f[q]=null;try{u()}catch(A){this.asyncThrow_(A)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var l=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();\ntry{f(q.resolve,q.reject)}catch(u){q.reject(u)}};l.prototype.createResolveAndReject_=function(){function f(A){return function(F){u||(u=!0,A.call(q,F))}}var q=this,u=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};l.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError(\"A Promise cannot resolve to itself\"));else if(f instanceof l)this.settleSameAsPromise_(f);else{a:switch(typeof f){case \"object\":var q=null!=f;break a;case \"function\":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):\nthis.fulfill_(f)}};l.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(u){this.reject_(u);return}\"function\"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};l.prototype.reject_=function(f){this.settle_(2,f)};l.prototype.fulfill_=function(f){this.settle_(1,f)};l.prototype.settle_=function(f,q){if(0!=this.state_)throw Error(\"Cannot settle(\"+f+\", \"+q+\"): Promise already settled in state\"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();\nthis.executeOnSettledCallbacks_()};l.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;\"undefined\"!==typeof q&&q.error(f.result_)}},1)};l.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,u=$jscomp.global.dispatchEvent;if(\"undefined\"===typeof u)return!0;\"function\"===typeof f?f=new f(\"unhandledrejection\",{cancelable:!0}):\n\"function\"===typeof q?f=new q(\"unhandledrejection\",{cancelable:!0}):(f=$jscomp.global.document.createEvent(\"CustomEvent\"),f.initCustomEvent(\"unhandledrejection\",!1,!0,f));f.promise=this;f.reason=this.result_;return u(f)};l.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)y.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var y=new n;l.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();\nf.callWhenSettled_(q.resolve,q.reject)};l.prototype.settleSameAsThenable_=function(f,q){var u=this.createResolveAndReject_();try{f.call(q,u.resolve,u.reject)}catch(A){u.reject(A)}};l.prototype.then=function(f,q){function u(w,B){return\"function\"==typeof w?function(R){try{A(w(R))}catch(Z){F(Z)}}:B}var A,F,v=new l(function(w,B){A=w;F=B});this.callWhenSettled_(u(f,A),u(q,F));return v};l.prototype.catch=function(f){return this.then(void 0,f)};l.prototype.callWhenSettled_=function(f,q){function u(){switch(A.state_){case 1:f(A.result_);\nbreak;case 2:q(A.result_);break;default:throw Error(\"Unexpected state: \"+A.state_);}}var A=this;null==this.onSettledCallbacks_?y.asyncExecute(u):this.onSettledCallbacks_.push(u);this.isRejectionHandled_=!0};l.resolve=k;l.reject=function(f){return new l(function(q,u){u(f)})};l.race=function(f){return new l(function(q,u){for(var A=$jscomp.makeIterator(f),F=A.next();!F.done;F=A.next())k(F.value).callWhenSettled_(q,u)})};l.all=function(f){var q=$jscomp.makeIterator(f),u=q.next();return u.done?k([]):new l(function(A,\nF){function v(R){return function(Z){w[R]=Z;B--;0==B&&A(w)}}var w=[],B=0;do w.push(void 0),B++,k(u.value).callWhenSettled_(v(w.length-1),F),u=q.next();while(!u.done)})};return l},\"es6\",\"es3\");$jscomp.owns=function(h,n){return Object.prototype.hasOwnProperty.call(h,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&\"function\"==typeof Object.assign?Object.assign:function(h,n){for(var k=1;k<arguments.length;k++){var p=arguments[k];if(p)for(var l in p)$jscomp.owns(p,l)&&(h[l]=p[l])}return h};\n$jscomp.polyfill(\"Object.assign\",function(h){return h||$jscomp.assign},\"es6\",\"es3\");$jscomp.checkStringArgs=function(h,n,k){if(null==h)throw new TypeError(\"The 'this' value for String.prototype.\"+k+\" must not be null or undefined\");if(n instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+k+\" must not be a regular expression\");return h+\"\"};\n$jscomp.polyfill(\"String.prototype.startsWith\",function(h){return h?h:function(n,k){var p=$jscomp.checkStringArgs(this,n,\"startsWith\");n+=\"\";var l=p.length,y=n.length;k=Math.max(0,Math.min(k|0,p.length));for(var f=0;f<y&&k<l;)if(p[k++]!=n[f++])return!1;return f>=y}},\"es6\",\"es3\");\n$jscomp.polyfill(\"Array.prototype.copyWithin\",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(k<p)for(;p<l;)p in this?this[k++]=this[p++]:(delete this[k++],p++);else for(l=Math.min(l,y+p-k),k+=l-p;l>p;)--l in this?this[--k]=this[l]:delete this[--k];return this}},\"es6\",\"es3\");\n$jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill(\"Int8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint8ClampedArray.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\n$jscomp.polyfill(\"Uint16Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Int32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Uint32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float32Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");$jscomp.polyfill(\"Float64Array.prototype.copyWithin\",$jscomp.typedArrayCopyWithin,\"es6\",\"es5\");\nvar DracoDecoderModule=function(){var h=\"undefined\"!==typeof document&&document.currentScript?document.currentScript.src:void 0;\"undefined\"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16<b-e&&c.buffer&&ra)c=ra.decode(c.subarray(e,b));else{for(d=\"\";e<b;){var g=c[e++];if(g&128){var t=c[e++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|t);else{var aa=c[e++]&\n63;g=224==(g&240)?(g&15)<<12|t<<6|aa:(g&7)<<18|t<<12|aa<<6|c[e++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c=\"\";return c}function l(){var e=ja.buffer;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e);\ne=\"Aborted(\"+e+\")\";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+\". Build with -sASSERTIONS for more info.\");ka(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw\"both async and sync fetching of the wasm failed\";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if(\"function\"==typeof fetch&&!P.startsWith(\"file://\"))return fetch(P,{credentials:\"same-origin\"}).then(function(e){if(!e.ok)throw\"failed to load wasm binary file at '\"+P+\"'\";return e.arrayBuffer()}).catch(function(){return f(P)});\nif(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0<e.length;)e.shift()(a)}function A(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+\n12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+\n16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(){function e(){if(!la&&(la=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0<ba)){if(a.preRun)for(\"function\"==\ntypeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ya.unshift(a.preRun.shift());u(ya);0<ba||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){a.setStatus(\"\")},1);e()},1)):e())}}function v(){}function w(e){return(e||v).__cache__}function B(e,b){var c=w(b),d=c[e];if(d)return d;d=Object.create((b||v).prototype);d.ptr=e;return c[e]=d}function R(e){if(\"string\"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=\nd?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var t=e.charCodeAt(g);if(55296<=t&&57343>=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if(\"object\"===\ntypeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw\"cannot construct a VoidPtr, no constructor in IDL\";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]=\nthis}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw\"cannot construct a Status, no constructor in IDL\";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr=\nQa();w(m)[this.ptr]=this}n=void 0===n?{}:n;var a=\"undefined\"!=typeof n?n:{},wa,ka;a.ready=new Promise(function(e,b){wa=e;ka=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&\"function\"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if(\"string\"!==typeof e)return!1;e=e.split(\".\");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<\ne[1]?!1:!0};var Ta=Object.assign({},a),ta=\"object\"==typeof window,fa=\"function\"==typeof importScripts,Ua=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,U=\"\";if(Ua){var Va=require(\"fs\"),pa=require(\"path\");U=fa?pa.dirname(U)+\"/\":__dirname+\"/\";var Wa=function(e,b){e=e.startsWith(\"file://\")?new URL(e):pa.normalize(e);return Va.readFileSync(e,b?void 0:\"utf8\")};var ma=function(e){e=Wa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,\nb,c){e=e.startsWith(\"file://\")?new URL(e):pa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\/g,\"/\");process.argv.slice(2);a.inspect=function(){return\"[Emscripten Module object]\"}}else if(ta||fa)fa?U=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(U=document.currentScript.src),h&&(U=h),U=0!==U.indexOf(\"blob:\")?U.substr(0,U.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",Wa=function(e){var b=new XMLHttpRequest;b.open(\"GET\",\ne,!1);b.send(null);return b.responseText},fa&&(ma=function(e){var b=new XMLHttpRequest;b.open(\"GET\",e,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open(\"GET\",e,!0);d.responseType=\"arraybuffer\";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var da=a.printErr||console.warn.bind(console);Object.assign(a,Ta);Ta=null;var ea;a.wasmBinary&&\n(ea=a.wasmBinary);\"object\"!=typeof WebAssembly&&y(\"no native wasm support detected\");var ja,sa=!1,ra=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0,W,ia,ca,Y,ya=[],oa=[],xa=[],va=!1,ba=0,qa=null,ha=null;var P=\"draco_decoder_gltf.wasm\";P.startsWith(\"data:application/octet-stream;base64,\")||(P=k(P));var pd=0,qd={b:function(e,b,c){(new A(e)).init(b,c);pd++;throw e;},a:function(){y(\"\")},d:function(e,b,c){ia.copyWithin(e,b,b+c)},c:function(e){var b=ia.length;e>>>=0;if(2147483648<e)return!1;\nfor(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);l();var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;ja=a.asm.e;l();oa.unshift(a.asm.f);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==qa&&(clearInterval(qa),qa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}\nfunction c(g){return q().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da(\"failed to asynchronously prepare wasm: \"+t);y(t)})}var d={a:qd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da(\"Module.instantiateWasm callback failed with error: \"+g),ka(g)}(function(){return ea||\"function\"!=typeof WebAssembly.instantiateStreaming||P.startsWith(\"data:application/octet-stream;base64,\")||\nP.startsWith(\"file://\")||Ua||\"function\"!=typeof fetch?c(b):fetch(P,{credentials:\"same-origin\"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da(\"wasm streaming compile failed: \"+t);da(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ka);return{}})();var Xa=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Xa=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=\nfunction(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.i).apply(null,arguments)},Ya=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(Ya=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.j).apply(null,arguments)},Za=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Za=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.k).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=\na.asm.l).apply(null,arguments)},$a=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return($a=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.m).apply(null,arguments)},ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(ab=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.n).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=\na.asm.o).apply(null,arguments)},bb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(bb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.p).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.q).apply(null,arguments)},cb=a._emscripten_bind_PointAttribute_size_0=function(){return(cb=a._emscripten_bind_PointAttribute_size_0=a.asm.r).apply(null,arguments)},db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=\nfunction(){return(db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.s).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(eb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.t).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(fb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.u).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(gb=a._emscripten_bind_PointAttribute_num_components_0=\na.asm.v).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(hb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.w).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ib=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.x).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(jb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.y).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_unique_id_0=\nfunction(){return(kb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.z).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(lb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.A).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.B).apply(null,arguments)},mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=\nfunction(){return(mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.C).apply(null,arguments)},nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.D).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.E).apply(null,arguments)},pb=\na._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.F).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=\na.asm.H).apply(null,arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.I).apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.J).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(tb=\na._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.L).apply(null,arguments)},ub=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(ub=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.M).apply(null,arguments)},vb=a._emscripten_bind_PointCloud_num_points_0=function(){return(vb=a._emscripten_bind_PointCloud_num_points_0=a.asm.N).apply(null,\narguments)},wb=a._emscripten_bind_PointCloud___destroy___0=function(){return(wb=a._emscripten_bind_PointCloud___destroy___0=a.asm.O).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.P).apply(null,arguments)},xb=a._emscripten_bind_Mesh_num_faces_0=function(){return(xb=a._emscripten_bind_Mesh_num_faces_0=a.asm.Q).apply(null,arguments)},yb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(yb=a._emscripten_bind_Mesh_num_attributes_0=\na.asm.R).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_points_0=function(){return(zb=a._emscripten_bind_Mesh_num_points_0=a.asm.S).apply(null,arguments)},Ab=a._emscripten_bind_Mesh___destroy___0=function(){return(Ab=a._emscripten_bind_Mesh___destroy___0=a.asm.T).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.U).apply(null,arguments)},Bb=a._emscripten_bind_Metadata___destroy___0=function(){return(Bb=a._emscripten_bind_Metadata___destroy___0=\na.asm.V).apply(null,arguments)},Cb=a._emscripten_bind_Status_code_0=function(){return(Cb=a._emscripten_bind_Status_code_0=a.asm.W).apply(null,arguments)},Db=a._emscripten_bind_Status_ok_0=function(){return(Db=a._emscripten_bind_Status_ok_0=a.asm.X).apply(null,arguments)},Eb=a._emscripten_bind_Status_error_msg_0=function(){return(Eb=a._emscripten_bind_Status_error_msg_0=a.asm.Y).apply(null,arguments)},Fb=a._emscripten_bind_Status___destroy___0=function(){return(Fb=a._emscripten_bind_Status___destroy___0=\na.asm.Z).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm._).apply(null,arguments)},Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.$).apply(null,arguments)},Hb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Hb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.aa).apply(null,arguments)},Ib=\na._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ib=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ba).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ca).apply(null,arguments)},Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.da).apply(null,arguments)},Kb=a._emscripten_bind_DracoInt8Array_size_0=\nfunction(){return(Kb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ea).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Lb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.fa).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ga).apply(null,arguments)},Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=\na.asm.ha).apply(null,arguments)},Nb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Nb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ia).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.ka).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=\nfunction(){return(Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.la).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.ma).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.na).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=\na.asm.oa).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.qa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=\nfunction(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.sa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ta).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ua).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt32Array___destroy___0=\na.asm.va).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.wa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.ya).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array___destroy___0=\nfunction(){return($b=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Aa).apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ba).apply(null,arguments)},bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=\na.asm.Ca).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Da).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ea).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Fa).apply(null,\narguments)},fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ga).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ha).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(hc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ia).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0=\nfunction(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.La).apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(kc=a._emscripten_bind_Decoder_GetAttributeId_2=\na.asm.Ma).apply(null,arguments)},lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Na).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Pa).apply(null,arguments)},\noc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(pc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=\nfunction(){return(rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ua).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Va).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(uc=\na._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Wa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Xa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Ya).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=\na.asm.Za).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm._a).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=\na.asm.ab).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.cb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=\na.asm.db).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.eb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.fb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=\na.asm.gb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.hb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.ib).apply(null,arguments)},Jc=a._emscripten_bind_Decoder___destroy___0=function(){return(Jc=a._emscripten_bind_Decoder___destroy___0=a.asm.jb).apply(null,arguments)},Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=\nfunction(){return(Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.kb).apply(null,arguments)},Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.lb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=\na.asm.mb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.nb).apply(null,arguments)},Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.ob).apply(null,arguments)},Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=\na.asm.pb).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.qb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.rb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=\na.asm.sb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.tb).apply(null,arguments)},Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.ub).apply(null,arguments)},Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=\na.asm.vb).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.wb).apply(null,arguments)},Xc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Xc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.xb).apply(null,arguments)},Yc=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(Yc=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.yb).apply(null,arguments)},Zc=\na._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.zb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT16=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Ab).apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Bb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT32=\na.asm.Cb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Db).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Eb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Fb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=\nfunction(){return(fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Gb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Hb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(hd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Ib).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=\na.asm.Jb).apply(null,arguments)},jd=a._emscripten_enum_draco_StatusCode_OK=function(){return(jd=a._emscripten_enum_draco_StatusCode_OK=a.asm.Kb).apply(null,arguments)},kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Lb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Mb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=\nfunction(){return(md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Nb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Ob).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Pb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Qb).apply(null,arguments)};\na._free=function(){return(a._free=a.asm.Rb).apply(null,arguments)};var ua=function(){return(ua=a.asm.Sb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var la;ha=function b(){la||F();la||(ha=b)};if(a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();F();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=v;a.getCache=w;a.wrapPointer=B;a.castObject=function(b,\nc){return B(b.ptr,c)};a.NULL=B(0);a.destroy=function(b){if(!b.__destroy__)throw\"Error: Cannot destroy object. (Did you create it yourself?)\";b.__destroy__();delete w(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=\nr.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||y(void 0));r.pos=0},alloc:function(b,c){r.buffer||y(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||y(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};X.prototype=Object.create(v.prototype);X.prototype.constructor=\nX;X.prototype.__class__=X;X.__cache__={};a.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){Xa(this.ptr)};S.prototype=Object.create(v.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);Ya(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){Za(this.ptr)};Q.prototype=Object.create(v.prototype);\nQ.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=function(){return $a(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){ab(this.ptr)};V.prototype=Object.create(v.prototype);V.prototype.constructor=V;V.prototype.__class__=V;V.__cache__={};a.GeometryAttribute=V;V.prototype.__destroy__=V.prototype.__destroy__=function(){bb(this.ptr)};x.prototype=Object.create(v.prototype);x.prototype.constructor=\nx;x.prototype.__class__=x;x.__cache__={};a.PointAttribute=x;x.prototype.size=x.prototype.size=function(){return cb(this.ptr)};x.prototype.GetAttributeTransformData=x.prototype.GetAttributeTransformData=function(){return B(db(this.ptr),Q)};x.prototype.attribute_type=x.prototype.attribute_type=function(){return eb(this.ptr)};x.prototype.data_type=x.prototype.data_type=function(){return fb(this.ptr)};x.prototype.num_components=x.prototype.num_components=function(){return gb(this.ptr)};x.prototype.normalized=\nx.prototype.normalized=function(){return!!hb(this.ptr)};x.prototype.byte_stride=x.prototype.byte_stride=function(){return ib(this.ptr)};x.prototype.byte_offset=x.prototype.byte_offset=function(){return jb(this.ptr)};x.prototype.unique_id=x.prototype.unique_id=function(){return kb(this.ptr)};x.prototype.__destroy__=x.prototype.__destroy__=function(){lb(this.ptr)};D.prototype=Object.create(v.prototype);D.prototype.constructor=D;D.prototype.__class__=D;D.__cache__={};a.AttributeQuantizationTransform=\nD;D.prototype.InitFromAttribute=D.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!mb(c,b)};D.prototype.quantization_bits=D.prototype.quantization_bits=function(){return nb(this.ptr)};D.prototype.min_value=D.prototype.min_value=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return ob(c,b)};D.prototype.range=D.prototype.range=function(){return pb(this.ptr)};D.prototype.__destroy__=D.prototype.__destroy__=function(){qb(this.ptr)};G.prototype=\nObject.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.AttributeOctahedronTransform=G;G.prototype.InitFromAttribute=G.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return!!rb(c,b)};G.prototype.quantization_bits=G.prototype.quantization_bits=function(){return sb(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){tb(this.ptr)};H.prototype=Object.create(v.prototype);H.prototype.constructor=H;H.prototype.__class__=\nH;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return ub(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return vb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){wb(this.ptr)};E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return xb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=\nfunction(){return yb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return zb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Ab(this.ptr)};T.prototype=Object.create(v.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Bb(this.ptr)};C.prototype=Object.create(v.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.Status=C;C.prototype.code=\nC.prototype.code=function(){return Cb(this.ptr)};C.prototype.ok=C.prototype.ok=function(){return!!Db(this.ptr)};C.prototype.error_msg=C.prototype.error_msg=function(){return p(Eb(this.ptr))};C.prototype.__destroy__=C.prototype.__destroy__=function(){Fb(this.ptr)};I.prototype=Object.create(v.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoFloat32Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Gb(c,\nb)};I.prototype.size=I.prototype.size=function(){return Hb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Ib(this.ptr)};J.prototype=Object.create(v.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Jb(c,b)};J.prototype.size=J.prototype.size=function(){return Kb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Lb(this.ptr)};\nK.prototype=Object.create(v.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoUInt8Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Mb(c,b)};K.prototype.size=K.prototype.size=function(){return Nb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Ob(this.ptr)};L.prototype=Object.create(v.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoInt16Array=\nL;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Pb(c,b)};L.prototype.size=L.prototype.size=function(){return Qb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Rb(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoUInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Sb(c,b)};\nM.prototype.size=M.prototype.size=function(){return Tb(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){Ub(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Vb(c,b)};N.prototype.size=N.prototype.size=function(){return Wb(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){Xb(this.ptr)};\nO.prototype=Object.create(v.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoUInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Yb(c,b)};O.prototype.size=O.prototype.size=function(){return Zb(this.ptr)};O.prototype.__destroy__=O.prototype.__destroy__=function(){$b(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.MetadataQuerier=\nz;z.prototype.HasEntry=z.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return!!ac(d,b,c)};z.prototype.GetIntEntry=z.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return bc(d,b,c)};z.prototype.GetIntEntryArray=z.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===\ntypeof c?c.ptr:R(c);d&&\"object\"===typeof d&&(d=d.ptr);cc(g,b,c,d)};z.prototype.GetDoubleEntry=z.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return dc(d,b,c)};z.prototype.GetStringEntry=z.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return p(ec(d,b,c))};z.prototype.NumEntries=z.prototype.NumEntries=function(b){var c=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);return fc(c,b)};z.prototype.GetEntryName=z.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return p(gc(d,b,c))};z.prototype.__destroy__=z.prototype.__destroy__=function(){hc(this.ptr)};m.prototype=Object.create(v.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=\nthis.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return B(ic(g,b,c,d),C)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();\"object\"==typeof b&&(b=Z(b));c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return B(jc(g,b,c,d),C)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&\n(c=c.ptr);return kc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);return lc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&\"object\"===typeof b&&(b=b.ptr);c=c&&\"object\"===typeof c?c.ptr:R(c);d=d&&\"object\"===typeof d?d.ptr:R(d);return mc(g,b,c,d)};m.prototype.GetAttribute=\nm.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(nc(d,b,c),x)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(oc(d,b,c),x)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return B(pc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=\nfunction(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(qc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!rc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);\nreturn sc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!tc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!uc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=\nfunction(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!vc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!wc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;\nb&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!xc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=\nb.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&\n(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===\ntypeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,t){var aa=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);d&&\"object\"===typeof d&&(d=d.ptr);g&&\"object\"===typeof g&&(g=g.ptr);t&&\"object\"===typeof t&&(t=t.ptr);return!!Ec(aa,b,c,d,g,t)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);Fc(c,\nb)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);return Gc(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===typeof c&&(c=c.ptr);return B(Hc(d,b,c),C)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&\"object\"===typeof b&&(b=b.ptr);c&&\"object\"===\ntypeof c&&(c=c.ptr);return B(Ic(d,b,c),C)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Jc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Kc();a.ATTRIBUTE_NO_TRANSFORM=Lc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Mc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Nc();a.INVALID=Oc();a.POSITION=Pc();a.NORMAL=Qc();a.COLOR=Rc();a.TEX_COORD=Sc();a.GENERIC=Tc();a.INVALID_GEOMETRY_TYPE=Uc();a.POINT_CLOUD=Vc();a.TRIANGULAR_MESH=Wc();a.DT_INVALID=Xc();a.DT_INT8=Yc();a.DT_UINT8=Zc();a.DT_INT16=\n$c();a.DT_UINT16=ad();a.DT_INT32=bd();a.DT_UINT32=cd();a.DT_INT64=dd();a.DT_UINT64=ed();a.DT_FLOAT32=fd();a.DT_FLOAT64=gd();a.DT_BOOL=hd();a.DT_TYPES_COUNT=id();a.OK=jd();a.DRACO_ERROR=kd();a.IO_ERROR=ld();a.INVALID_PARAMETER=md();a.UNSUPPORTED_VERSION=nd();a.UNKNOWN_VERSION=od()}va?b():oa.unshift(b)})();if(\"function\"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);\nif(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();\"object\"===typeof exports&&\"object\"===typeof module?module.exports=DracoDecoderModule:\"function\"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):\"object\"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);\n"
  },
  {
    "path": "packages/sdk/public/libs/web-ifc/IFCWorker.js",
    "content": "class Vector {\n    constructor(vector) {\n        this._data = {};\n        this._size = vector.size;\n        const keys = Object.keys(vector).filter((key) => key.indexOf('size') === -1).map(key => parseInt(key));\n        keys.forEach((key) => this._data[key] = vector[key]);\n    }\n    size() {\n        return this._size;\n    }\n    get(index) {\n        return this._data[index];\n    }\n}\n\nclass IfcGeometry {\n    constructor(vector) {\n        this._GetVertexData = vector.GetVertexData;\n        this._GetVertexDataSize = vector.GetVertexDataSize;\n        this._GetIndexData = vector.GetIndexData;\n        this._GetIndexDataSize = vector.GetIndexDataSize;\n    }\n    GetVertexData() {\n        return this._GetVertexData;\n    }\n    GetVertexDataSize() {\n        return this._GetVertexDataSize;\n    }\n    GetIndexData() {\n        return this._GetIndexData;\n    }\n    GetIndexDataSize() {\n        return this._GetIndexDataSize;\n    }\n}\n\nclass FlatMesh {\n    constructor(serializer, flatMesh) {\n        this.expressID = flatMesh.expressID;\n        this.geometries = serializer.reconstructVector(flatMesh.geometries);\n    }\n}\n\nclass FlatMeshVector {\n    constructor(serializer, vector) {\n        this._data = {};\n        this._size = vector.size;\n        const keys = Object.keys(vector).filter((key) => key.indexOf('size') === -1).map(key => parseInt(key));\n        keys.forEach(key => this._data[key] = serializer.reconstructFlatMesh(vector[key]));\n    }\n    size() {\n        return this._size;\n    }\n    get(index) {\n        return this._data[index];\n    }\n}\n\n/**\n * @license\n * Copyright 2010-2023 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '149';\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst NormalBlending = 1;\nconst AddEquation = 100;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst LessEqualDepth = 3;\nconst MultiplyOperation = 0;\n\nconst UVMapping = 300;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst LinearFilter = 1006;\nconst LinearMipmapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst RGBAFormat = 1023;\nconst LinearEncoding = 3000;\nconst TangentSpaceNormalMap = 0;\nconst SRGBColorSpace = 'srgb';\nconst LinearSRGBColorSpace = 'srgb-linear';\nconst KeepStencilOp = 7680;\nconst AlwaysStencilFunc = 519;\n\nconst StaticDrawUsage = 35044;\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\nfunction denormalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tVector2.prototype.isVector2 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nclass Matrix3 {\n\n\tconstructor() {\n\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tthis.premultiply( _m3.makeTranslation( tx, ty ) );\n\n\t\treturn this;\n\n\t}\n\n\t// for 2D Transforms\n\n\tmakeTranslation( x, y ) {\n\n\t\tthis.set(\n\n\t\t\t1, 0, x,\n\t\t\t0, 1, y,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotation( theta ) {\n\n\t\t// counterclockwise\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0,\n\t\t\ts, c, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0,\n\t\t\t0, y, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nconst _m3 = /*@__PURE__*/ new Matrix3();\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] >= 65535 ) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565\n\n\t}\n\n\treturn false;\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\n// JavaScript RGB-to-RGB transforms, defined as\n// FN[InputColorSpace][OutputColorSpace] callback functions.\nconst FN = {\n\t[ SRGBColorSpace ]: { [ LinearSRGBColorSpace ]: SRGBToLinear },\n\t[ LinearSRGBColorSpace ]: { [ SRGBColorSpace ]: LinearToSRGB },\n};\n\nconst ColorManagement = {\n\n\tlegacyMode: true,\n\n\tget workingColorSpace() {\n\n\t\treturn LinearSRGBColorSpace;\n\n\t},\n\n\tset workingColorSpace( colorSpace ) {\n\n\t\tconsole.warn( 'THREE.ColorManagement: .workingColorSpace is readonly.' );\n\n\t},\n\n\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\tif ( this.legacyMode || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tif ( FN[ sourceColorSpace ] && FN[ sourceColorSpace ][ targetColorSpace ] !== undefined ) {\n\n\t\t\tconst fn = FN[ sourceColorSpace ][ targetColorSpace ];\n\n\t\t\tcolor.r = fn( color.r );\n\t\t\tcolor.g = fn( color.g );\n\t\t\tcolor.b = fn( color.b );\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tthrow new Error( 'Unsupported color space conversion.' );\n\n\t},\n\n\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\treturn this.convert( color, this.workingColorSpace, targetColorSpace );\n\n\t},\n\n\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\treturn this.convert( color, sourceColorSpace, this.workingColorSpace );\n\n\t},\n\n};\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _rgb$1 = { r: 0, g: 0, b: 0 };\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nfunction toComponents( source, target ) {\n\n\ttarget.r = source.r;\n\ttarget.g = source.g;\n\ttarget.b = source.b;\n\n\treturn target;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tthis.isColor = true;\n\n\t\tthis.r = 1;\n\t\tthis.g = 1;\n\t\tthis.b = 1;\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\t\t\treturn this.set( r );\n\n\t\t}\n\n\t\treturn this.setRGB( r, g, b );\n\n\t}\n\n\tset( value ) {\n\n\t\tif ( value && value.isColor ) {\n\n\t\t\tthis.copy( value );\n\n\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\tthis.setHex( value );\n\n\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\tthis.setStyle( value );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex, colorSpace = SRGBColorSpace ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp( s, 0, 1 );\n\t\tl = clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style, colorSpace = SRGBColorSpace ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\t\t\t\t\t\tthis.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255;\n\t\t\t\t\t\tthis.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255;\n\t\t\t\t\t\tthis.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255;\n\n\t\t\t\t\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\t\t\t\t\t\tthis.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100;\n\t\t\t\t\t\tthis.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100;\n\t\t\t\t\t\tthis.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100;\n\n\t\t\t\t\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\t\t\t\t\t\tconst h = parseFloat( color[ 1 ] ) / 360;\n\t\t\t\t\t\tconst s = parseFloat( color[ 2 ] ) / 100;\n\t\t\t\t\t\tconst l = parseFloat( color[ 3 ] ) / 100;\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL( h, s, l, colorSpace );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\tthis.r = parseInt( hex.charAt( 0 ) + hex.charAt( 0 ), 16 ) / 255;\n\t\t\t\tthis.g = parseInt( hex.charAt( 1 ) + hex.charAt( 1 ), 16 ) / 255;\n\t\t\t\tthis.b = parseInt( hex.charAt( 2 ) + hex.charAt( 2 ), 16 ) / 255;\n\n\t\t\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\t\t\treturn this;\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\tthis.r = parseInt( hex.charAt( 0 ) + hex.charAt( 1 ), 16 ) / 255;\n\t\t\t\tthis.g = parseInt( hex.charAt( 2 ) + hex.charAt( 3 ), 16 ) / 255;\n\t\t\t\tthis.b = parseInt( hex.charAt( 4 ) + hex.charAt( 5 ), 16 ) / 255;\n\n\t\t\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\t\t\treturn this;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style, colorSpace );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style, colorSpace = SRGBColorSpace ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex, colorSpace );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( toComponents( this, _rgb$1 ), colorSpace );\n\n\t\treturn clamp( _rgb$1.r * 255, 0, 255 ) << 16 ^ clamp( _rgb$1.g * 255, 0, 255 ) << 8 ^ clamp( _rgb$1.b * 255, 0, 255 ) << 0;\n\n\t}\n\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.fromWorkingColorSpace( toComponents( this, _rgb$1 ), colorSpace );\n\n\t\tconst r = _rgb$1.r, g = _rgb$1.g, b = _rgb$1.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( toComponents( this, _rgb$1 ), colorSpace );\n\n\t\ttarget.r = _rgb$1.r;\n\t\ttarget.g = _rgb$1.g;\n\t\ttarget.b = _rgb$1.b;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( toComponents( this, _rgb$1 ), colorSpace );\n\n\t\tif ( colorSpace !== SRGBColorSpace ) {\n\n\t\t\t// Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n\t\t\treturn `color(${ colorSpace } ${ _rgb$1.r } ${ _rgb$1.g } ${ _rgb$1.b })`;\n\n\t\t}\n\n\t\treturn `rgb(${( _rgb$1.r * 255 ) | 0},${( _rgb$1.g * 255 ) | 0},${( _rgb$1.b * 255 ) | 0})`;\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\t_hslA.h += h; _hslA.s += s; _hslA.l += l;\n\n\t\tthis.setHSL( _hslA.h, _hslA.s, _hslA.l );\n\n\t\treturn this;\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.r;\n\t\tyield this.g;\n\t\tyield this.b;\n\n\t}\n\n}\n\nColor.NAMES = _colorKeywords;\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement == 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nclass Source {\n\n\tconstructor( data = null ) {\n\n\t\tthis.isSource = true;\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.data = data;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.images[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\t\t\tuuid: this.uuid,\n\t\t\turl: ''\n\t\t};\n\n\t\tconst data = this.data;\n\n\t\tif ( data !== null ) {\n\n\t\t\tlet url;\n\n\t\t\tif ( Array.isArray( data ) ) {\n\n\t\t\t\t// cube texture\n\n\t\t\t\turl = [];\n\n\t\t\t\tfor ( let i = 0, l = data.length; i < l; i ++ ) {\n\n\t\t\t\t\tif ( data[ i ].isDataTexture ) {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ].image ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ] ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// texture\n\n\t\t\t\turl = serializeImage( data );\n\n\t\t\t}\n\n\t\t\toutput.url = url;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.images[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n}\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.from( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nlet textureId = 0;\n\nclass Texture extends EventDispatcher {\n\n\tconstructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, encoding = LinearEncoding ) {\n\n\t\tsuper();\n\n\t\tthis.isTexture = true;\n\n\t\tObject.defineProperty( this, 'id', { value: textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.source = new Source( image );\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\t// Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap.\n\t\t//\n\t\t// Also changing the encoding after already used by a Material will not automatically make the Material\n\t\t// update. You need to explicitly call Material.needsUpdate to trigger it to recompile.\n\t\tthis.encoding = encoding;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.needsPMREMUpdate = false; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tget image() {\n\n\t\treturn this.source.data;\n\n\t}\n\n\tset image( value ) {\n\n\t\tthis.source.data = value;\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.source = source.source;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.encoding = source.encoding;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tthis.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\timage: this.source.toJSON( meta ).uuid,\n\n\t\t\tmapping: this.mapping,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\ttype: this.type,\n\t\t\tencoding: this.encoding,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tgenerateMipmaps: this.generateMipmaps,\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.version ++;\n\t\t\tthis.source.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.isQuaternion = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update ) {\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update !== false ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize();\n\t\t\tthis._onChangeCallback();\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// Derived from http://planning.cs.uiuc.edu/node198.html\n\t\t// Note, this source uses w, x, y, z ordering,\n\t\t// so we swap the order below.\n\n\t\tconst u1 = Math.random();\n\t\tconst sqrt1u1 = Math.sqrt( 1 - u1 );\n\t\tconst sqrtu1 = Math.sqrt( u1 );\n\n\t\tconst u2 = 2 * Math.PI * Math.random();\n\n\t\tconst u3 = 2 * Math.PI * Math.random();\n\n\t\treturn this.set(\n\t\t\tsqrt1u1 * Math.cos( u2 ),\n\t\t\tsqrtu1 * Math.sin( u3 ),\n\t\t\tsqrtu1 * Math.cos( u3 ),\n\t\t\tsqrt1u1 * Math.sin( u2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._w;\n\n\t}\n\n}\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tVector3.prototype.isVector3 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// calculate quat * vector\n\n\t\tconst ix = qw * x + qy * z - qz * y;\n\t\tconst iy = qw * y + qz * x - qx * z;\n\t\tconst iz = qw * z + qx * y - qy * x;\n\t\tconst iw = - qx * x - qy * y - qz * z;\n\n\t\t// calculate result * inverse quat\n\n\t\tthis.x = ix * qw + iw * - qx + iy * - qz - iz * - qy;\n\t\tthis.y = iy * qw + iw * - qy + iz * - qx - ix * - qz;\n\t\tthis.z = iz * qw + iw * - qz + ix * - qy - iy * - qx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\t\tthis.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// Derived from https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst u = ( Math.random() - 0.5 ) * 2;\n\t\tconst t = Math.random() * Math.PI * 2;\n\t\tconst f = Math.sqrt( 1 - u ** 2 );\n\n\t\tthis.x = f * Math.cos( t );\n\t\tthis.y = f * Math.sin( t );\n\t\tthis.z = u;\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox3 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tlet minX = + Infinity;\n\t\tlet minY = + Infinity;\n\t\tlet minZ = + Infinity;\n\n\t\tlet maxX = - Infinity;\n\t\tlet maxY = - Infinity;\n\t\tlet maxZ = - Infinity;\n\n\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\tconst x = array[ i ];\n\t\t\tconst y = array[ i + 1 ];\n\t\t\tconst z = array[ i + 2 ];\n\n\t\t\tif ( x < minX ) minX = x;\n\t\t\tif ( y < minY ) minY = y;\n\t\t\tif ( z < minZ ) minZ = z;\n\n\t\t\tif ( x > maxX ) maxX = x;\n\t\t\tif ( y > maxY ) maxY = y;\n\t\t\tif ( z > maxZ ) maxZ = z;\n\n\t\t}\n\n\t\tthis.min.set( minX, minY, minZ );\n\t\tthis.max.set( maxX, maxY, maxZ );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tlet minX = + Infinity;\n\t\tlet minY = + Infinity;\n\t\tlet minZ = + Infinity;\n\n\t\tlet maxX = - Infinity;\n\t\tlet maxY = - Infinity;\n\t\tlet maxZ = - Infinity;\n\n\t\tfor ( let i = 0, l = attribute.count; i < l; i ++ ) {\n\n\t\t\tconst x = attribute.getX( i );\n\t\t\tconst y = attribute.getY( i );\n\t\t\tconst z = attribute.getZ( i );\n\n\t\t\tif ( x < minX ) minX = x;\n\t\t\tif ( y < minY ) minY = y;\n\t\t\tif ( z < minZ ) minZ = z;\n\n\t\t\tif ( x > maxX ) maxX = x;\n\t\t\tif ( y > maxY ) maxY = y;\n\t\t\tif ( z > maxZ ) maxZ = z;\n\n\t\t}\n\n\t\tthis.min.set( minX, minY, minZ );\n\t\tthis.max.set( maxX, maxY, maxZ );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tif ( precise && geometry.attributes != undefined && geometry.attributes.position !== undefined ) {\n\n\t\t\t\tconst position = geometry.attributes.position;\n\t\t\t\tfor ( let i = 0, l = position.count; i < l; i ++ ) {\n\n\t\t\t\t\t_vector$b.fromBufferAttribute( position, i ).applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t}\n\n\t\t\t\t_box$3.copy( geometry.boundingBox );\n\t\t\t\t_box$3.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$3 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ||\n\t\t\tpoint.z < this.min.z || point.z > this.max.z ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ||\n\t\t\tbox.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$2.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$4.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$2 );\n\t\t_f1.subVectors( _v2$4, _v1$7 );\n\t\t_f2.subVectors( _v0$2, _v2$4 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\tconst clampedPoint = _vector$b.copy( point ).clamp( this.min, this.max );\n\n\t\treturn clampedPoint.sub( point ).length();\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tthis.getCenter( target.center );\n\n\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$3 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$4 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$2.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.center.copy( point );\n\n\t\t\tthis.radius = 0;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t_v1$6.subVectors( point, this.center );\n\n\t\tconst lengthSq = _v1$6.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\t// calculate the minimal sphere\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\n\t\t\tconst delta = ( length - this.radius ) * 0.5;\n\n\t\t\tthis.center.addScaledVector( _v1$6, delta / length );\n\n\t\t\tthis.radius += delta;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\tif ( sphere.isEmpty() ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.copy( sphere );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t this.radius = Math.max( this.radius, sphere.radius );\n\n\t\t} else {\n\n\t\t\t_v2$3.subVectors( sphere.center, this.center ).setLength( sphere.radius );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _v2$3 ) );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _v2$3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.direction ).multiplyScalar( t ).add( this.origin );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.direction ).multiplyScalar( s0 ).add( this.origin );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segDir ).multiplyScalar( s1 ).add( _segCenter );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if both t0 and t1 are behind the ray - if so, return null\n\t\tif ( t0 < 0 && t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\tif ( tymin > tmin || isNaN( tmin ) ) tmin = tymin;\n\n\t\tif ( tymax < tmax || isNaN( tmax ) ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t//   |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t//   |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t//   |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor() {\n\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, x,\n\t\t\t0, 1, 0, y,\n\t\t\t0, 0, 1, z,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$2.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$2.elements[ 0 ] *= invSX;\n\t\t_m1$2.elements[ 1 ] *= invSX;\n\t\t_m1$2.elements[ 2 ] *= invSX;\n\n\t\t_m1$2.elements[ 4 ] *= invSY;\n\t\t_m1$2.elements[ 5 ] *= invSY;\n\t\t_m1$2.elements[ 6 ] *= invSY;\n\n\t\t_m1$2.elements[ 8 ] *= invSZ;\n\t\t_m1$2.elements[ 9 ] *= invSZ;\n\t\t_m1$2.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$2 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\t\tconst c = - ( far + near ) / ( far - near );\n\t\tconst d = - 2 * far * near / ( far - near );\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a;\tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b;\tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c;\tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\t\tconst z = ( far + near ) * p;\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\tte[ 8 ] = 0;\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0;\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = - 2 * p;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = 0;\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$1 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\tthis.isEuler = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$1.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$1, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._order;\n\n\t}\n\n}\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isObject3D = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DEFAULT_UP.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$1.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$1.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tif ( object.parent !== null ) {\n\n\t\t\t\tobject.parent.remove( object );\n\n\t\t\t}\n\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\tconst object = this.children[ i ];\n\n\t\t\tobject.parent = null;\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\tthis.children.length = 0;\n\n\t\treturn this;\n\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$1.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$1 );\n\n\t\tthis.add( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetObjectsByProperty( name, value ) {\n\n\t\tlet result = [];\n\n\t\tif ( this[ name ] === value ) result.push( this );\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst childResult = this.children[ i ].getObjectsByProperty( name, value );\n\n\t\t\tif ( childResult.length > 0 ) {\n\n\t\t\t\tresult = result.concat( childResult );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// update children\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tconst child = children[ i ];\n\n\t\t\tif ( child.matrixWorldAutoUpdate === true || force === true ) {\n\n\t\t\t\tchild.updateMatrixWorld( force );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null && parent.matrixWorldAutoUpdate === true ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.parent === null ) {\n\n\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t} else {\n\n\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t}\n\n\t\t// update children\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\n\t\t\t\tif ( child.matrixWorldAutoUpdate === true ) {\n\n\t\t\t\t\tchild.updateWorldMatrix( false, true );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$1 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$1.subVectors( a, b );\n\t\ttarget.cross( _v0$1 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$1.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$1.dot( _v0$1 );\n\t\tconst dot01 = _v0$1.dot( _v1$3 );\n\t\tconst dot02 = _v0$1.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\t// arbitrary location outside of triangle?\n\t\t\t// not sure if this is the best idea, maybe should be returning undefined\n\t\t\treturn target.set( - 2, - 1, - 1 );\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\tthis.getBarycoord( point, a, b, c, _v3$1 );\n\n\t\treturn ( _v3$1.x >= 0 ) && ( _v3$1.y >= 0 ) && ( ( _v3$1.x + _v3$1.y ) <= 1 );\n\n\t}\n\n\tstatic getUV( point, p1, p2, p3, uv1, uv2, uv3, target ) {\n\n\t\tthis.getBarycoord( point, p1, p2, p3, _v3$1 );\n\n\t\ttarget.set( 0, 0 );\n\t\ttarget.addScaledVector( uv1, _v3$1.x );\n\t\ttarget.addScaledVector( uv2, _v3$1.y );\n\t\ttarget.addScaledVector( uv3, _v3$1.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$1.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$1.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$1.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetUV( point, uv1, uv2, uv3, target ) {\n\n\t\treturn Triangle.getUV( point, this.a, this.b, this.c, uv1, uv2, uv3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nlet materialId = 0;\n\nclass Material extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isMaterial = true;\n\n\t\tObject.defineProperty( this, 'id', { value: materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Material';\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\t\tthis.forceSinglePass = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Material: \\'' + key + '\\' parameter is undefined.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.' + this.type + ': \\'' + key + '\\' is not a property of this material.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRootObject ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.iridescence !== undefined ) data.iridescence = this.iridescence;\n\t\tif ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR;\n\t\tif ( this.iridescenceThicknessRange !== undefined ) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n\n\t\tif ( this.iridescenceMap && this.iridescenceMap.isTexture ) {\n\n\t\t\tdata.iridescenceMap = this.iridescenceMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture ) {\n\n\t\t\tdata.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = this.transparent;\n\n\t\tdata.depthFunc = this.depthFunc;\n\t\tdata.depthTest = this.depthTest;\n\t\tdata.depthWrite = this.depthWrite;\n\t\tdata.colorWrite = this.colorWrite;\n\n\t\tdata.stencilWrite = this.stencilWrite;\n\t\tdata.stencilWriteMask = this.stencilWriteMask;\n\t\tdata.stencilFunc = this.stencilFunc;\n\t\tdata.stencilRef = this.stencilRef;\n\t\tdata.stencilFuncMask = this.stencilFuncMask;\n\t\tdata.stencilFail = this.stencilFail;\n\t\tdata.stencilZFail = this.stencilZFail;\n\t\tdata.stencilZPass = this.stencilZPass;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = this.alphaToCoverage;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = this.premultipliedAlpha;\n\t\tif ( this.forceSinglePass === true ) data.forceSinglePass = this.forceSinglePass;\n\n\t\tif ( this.wireframe === true ) data.wireframe = this.wireframe;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = this.flatShading;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( this.fog === false ) data.fog = false;\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\t\tthis.forceSinglePass = source.forceSinglePass;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n}\n\nclass MeshBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized = false ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.isBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRange = { offset: 0, count: - 1 };\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\t// Matching BufferAttribute constructor, do not normalize the array.\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.array[ index * this.itemSize ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.array[ index * this.itemSize + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.array[ index * this.itemSize + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.array[ index * this.itemSize + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.from( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\t\tif ( this.updateRange.offset !== 0 || this.updateRange.count !== - 1 ) data.updateRange = this.updateRange;\n\n\t\treturn data;\n\n\t}\n\n\t// @deprecated\n\n\tcopyColorsArray() {\n\n\t\tconsole.error( 'THREE.BufferAttribute: copyColorsArray() was removed in r144.' );\n\n\t}\n\n\tcopyVector2sArray() {\n\n\t\tconsole.error( 'THREE.BufferAttribute: copyVector2sArray() was removed in r144.' );\n\n\t}\n\n\tcopyVector3sArray() {\n\n\t\tconsole.error( 'THREE.BufferAttribute: copyVector3sArray() was removed in r144.' );\n\n\t}\n\n\tcopyVector4sArray() {\n\n\t\tconsole.error( 'THREE.BufferAttribute: copyVector4sArray() was removed in r144.' );\n\n\t}\n\n}\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$1 = 0;\n\nconst _m1 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBufferGeometry = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id$1 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst position = [];\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tconst point = points[ i ];\n\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t}\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$1.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$1.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$1.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$1.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$1.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$1.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$1.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$1.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$1.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$1.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$1.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$1.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$1.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst indices = index.array;\n\t\tconst positions = attributes.position.array;\n\t\tconst normals = attributes.normal.array;\n\t\tconst uvs = attributes.uv.array;\n\n\t\tconst nVertices = positions.length / 3;\n\n\t\tif ( this.hasAttribute( 'tangent' ) === false ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * nVertices ), 4 ) );\n\n\t\t}\n\n\t\tconst tangents = this.getAttribute( 'tangent' ).array;\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < nVertices; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromArray( positions, a * 3 );\n\t\t\tvB.fromArray( positions, b * 3 );\n\t\t\tvC.fromArray( positions, c * 3 );\n\n\t\t\tuvA.fromArray( uvs, a * 2 );\n\t\t\tuvB.fromArray( uvs, b * 2 );\n\t\t\tuvC.fromArray( uvs, c * 2 );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: indices.length\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindices[ j + 0 ],\n\t\t\t\t\tindices[ j + 1 ],\n\t\t\t\t\tindices[ j + 2 ]\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromArray( normals, v * 3 );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangents[ v * 4 ] = tmp.x;\n\t\t\ttangents[ v * 4 + 1 ] = tmp.y;\n\t\t\ttangents[ v * 4 + 2 ] = tmp.z;\n\t\t\ttangents[ v * 4 + 3 ] = w;\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( indices[ j + 0 ] );\n\t\t\t\thandleVertex( indices[ j + 1 ] );\n\t\t\t\thandleVertex( indices[ j + 2 ] );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\t// @deprecated since r144\n\n\tmerge() {\n\n\t\tconsole.error( 'THREE.BufferGeometry.merge() has been removed. Use THREE.BufferGeometryUtils.mergeBufferGeometries() instead.' );\n\t\treturn this;\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\t// geometry generator parameters\n\n\t\tif ( source.parameters !== undefined ) this.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _morphA = /*@__PURE__*/ new Vector3();\n\nconst _uvA$1 = /*@__PURE__*/ new Vector2();\nconst _uvB$1 = /*@__PURE__*/ new Vector2();\nconst _uvC$1 = /*@__PURE__*/ new Vector2();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.attributes.position;\n\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\n\t\ttarget.fromBufferAttribute( position, index );\n\n\t\tconst morphInfluences = this.morphTargetInfluences;\n\n\t\tif ( morphPosition && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morphAttribute, index );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( target ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttarget.add( _morphA );\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tthis.boneTransform( index, target );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$3.copy( geometry.boundingSphere );\n\t\t_sphere$3.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$3 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$2.copy( matrixWorld ).invert();\n\t\t_ray$2.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$2 );\n\n\t\t// Check boundingBox before continuing\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$2.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\tlet intersection;\n\n\t\tconst index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\t\tconst uv = geometry.attributes.uv;\n\t\tconst uv2 = geometry.attributes.uv2;\n\t\tconst groups = geometry.groups;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\tif ( index !== null ) {\n\n\t\t\t// indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray$2, uv, uv2, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, material, raycaster, _ray$2, uv, uv2, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( position !== undefined ) {\n\n\t\t\t// non-indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray$2, uv, uv2, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = i;\n\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, material, raycaster, _ray$2, uv, uv2, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, ( material.side === FrontSide ), point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkBufferGeometryIntersection( object, material, raycaster, ray, uv, uv2, a, b, c ) {\n\n\tobject.getVertexPosition( a, _vA$1 );\n\tobject.getVertexPosition( b, _vB$1 );\n\tobject.getVertexPosition( c, _vC$1 );\n\n\tconst intersection = checkIntersection( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tif ( uv ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv, c );\n\n\t\t\tintersection.uv = Triangle.getUV( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv2 ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv2, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv2, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv2, c );\n\n\t\t\tintersection.uv2 = Triangle.getUV( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass MeshLambertMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshLambertMaterial = true;\n\n\t\tthis.type = 'MeshLambertMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {\n\t\trevision: REVISION,\n\t} } ) );\n\n}\n\nif ( typeof window !== 'undefined' ) {\n\n\tif ( window.__THREE__ ) {\n\n\t\tconsole.warn( 'WARNING: Multiple instances of Three.js being imported.' );\n\n\t} else {\n\n\t\twindow.__THREE__ = REVISION;\n\n\t}\n\n}\n\nconst nullIfcManagerErrorMessage = 'IfcManager is null!';\nclass IFCModel extends Mesh {\n    constructor() {\n        super(...arguments);\n        this.modelID = IFCModel.modelIdCounter++;\n        this.ifcManager = null;\n        this.mesh = this;\n    }\n    static dispose() {\n        IFCModel.modelIdCounter = 0;\n    }\n    setIFCManager(manager) {\n        this.ifcManager = manager;\n    }\n    setWasmPath(path) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        this.ifcManager.setWasmPath(path);\n    }\n    close(scene) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        this.ifcManager.close(this.modelID, scene);\n    }\n    getExpressId(geometry, faceIndex) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        return this.ifcManager.getExpressId(geometry, faceIndex);\n    }\n    getAllItemsOfType(type, verbose) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        return this.ifcManager.getAllItemsOfType(this.modelID, type, verbose);\n    }\n    getItemProperties(id, recursive = false) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        return this.ifcManager.getItemProperties(this.modelID, id, recursive);\n    }\n    getPropertySets(id, recursive = false) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        return this.ifcManager.getPropertySets(this.modelID, id, recursive);\n    }\n    getTypeProperties(id, recursive = false) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        return this.ifcManager.getTypeProperties(this.modelID, id, recursive);\n    }\n    getIfcType(id) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        return this.ifcManager.getIfcType(this.modelID, id);\n    }\n    getSpatialStructure() {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        return this.ifcManager.getSpatialStructure(this.modelID);\n    }\n    getSubset(material) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        return this.ifcManager.getSubset(this.modelID, material);\n    }\n    removeSubset(material, customID) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        this.ifcManager.removeSubset(this.modelID, material, customID);\n    }\n    createSubset(config) {\n        if (this.ifcManager === null)\n            throw new Error(nullIfcManagerErrorMessage);\n        const modelConfig = { ...config, modelID: this.modelID };\n        return this.ifcManager.createSubset(modelConfig);\n    }\n}\nIFCModel.modelIdCounter = 0;\n\nclass SerializedMaterial {\n    constructor(material) {\n        this.color = [material.color.r, material.color.g, material.color.b];\n        this.opacity = material.opacity;\n        this.transparent = material.transparent;\n    }\n}\nclass MaterialReconstructor {\n    static new(material) {\n        return new MeshLambertMaterial({\n            color: new Color(material.color[0], material.color[1], material.color[2]),\n            opacity: material.opacity,\n            transparent: material.transparent,\n            side: DoubleSide\n        });\n    }\n}\n\nclass SerializedGeometry {\n    constructor(geometry) {\n        var _a, _b, _c, _d;\n        this.position = ((_a = geometry.attributes.position) === null || _a === void 0 ? void 0 : _a.array) || [];\n        this.normal = ((_b = geometry.attributes.normal) === null || _b === void 0 ? void 0 : _b.array) || [];\n        this.expressID = ((_c = geometry.attributes.expressID) === null || _c === void 0 ? void 0 : _c.array) || [];\n        this.index = ((_d = geometry.index) === null || _d === void 0 ? void 0 : _d.array) || [];\n        this.groups = geometry.groups;\n    }\n}\nclass GeometryReconstructor {\n    static new(serialized) {\n        const geom = new BufferGeometry();\n        GeometryReconstructor.set(geom, 'expressID', new Uint32Array(serialized.expressID), 1);\n        GeometryReconstructor.set(geom, 'position', new Float32Array(serialized.position), 3);\n        GeometryReconstructor.set(geom, 'normal', new Float32Array(serialized.normal), 3);\n        geom.setIndex(Array.from(serialized.index));\n        geom.groups = serialized.groups;\n        return geom;\n    }\n    static set(geom, name, data, size) {\n        if (data.length > 0) {\n            geom.setAttribute(name, new BufferAttribute(data, size));\n        }\n    }\n}\n\nclass SerializedMesh {\n    constructor(model) {\n        this.materials = [];\n        this.modelID = model.modelID;\n        this.geometry = new SerializedGeometry(model.geometry);\n        if (Array.isArray(model.material)) {\n            model.material.forEach(mat => {\n                this.materials.push(new SerializedMaterial(mat));\n            });\n        }\n        else {\n            this.materials.push(new SerializedMaterial(model.material));\n        }\n    }\n}\nclass MeshReconstructor {\n    static new(serialized) {\n        const model = new IFCModel();\n        model.modelID = serialized.modelID;\n        model.geometry = GeometryReconstructor.new(serialized.geometry);\n        MeshReconstructor.getMaterials(serialized, model);\n        return model;\n    }\n    static getMaterials(serialized, model) {\n        model.material = [];\n        const mats = model.material;\n        serialized.materials.forEach(mat => {\n            mats.push(MaterialReconstructor.new(mat));\n        });\n    }\n}\n\nclass Serializer {\n    serializeVector(vector) {\n        const size = vector.size();\n        const serialized = { size };\n        for (let i = 0; i < size; i++) {\n            serialized[i] = vector.get(i);\n        }\n        return serialized;\n    }\n    reconstructVector(vector) {\n        return new Vector(vector);\n    }\n    serializeIfcGeometry(geometry) {\n        const GetVertexData = geometry.GetVertexData();\n        const GetVertexDataSize = geometry.GetVertexDataSize();\n        const GetIndexData = geometry.GetIndexData();\n        const GetIndexDataSize = geometry.GetIndexDataSize();\n        return {\n            GetVertexData,\n            GetVertexDataSize,\n            GetIndexData,\n            GetIndexDataSize\n        };\n    }\n    reconstructIfcGeometry(geometry) {\n        return new IfcGeometry(geometry);\n    }\n    serializeFlatMesh(flatMesh) {\n        return {\n            expressID: flatMesh.expressID,\n            geometries: this.serializeVector(flatMesh.geometries)\n        };\n    }\n    reconstructFlatMesh(flatMesh) {\n        return new FlatMesh(this, flatMesh);\n    }\n    serializeFlatMeshVector(vector) {\n        const size = vector.size();\n        const serialized = { size };\n        for (let i = 0; i < size; i++) {\n            const flatMesh = vector.get(i);\n            serialized[i] = this.serializeFlatMesh(flatMesh);\n        }\n        return serialized;\n    }\n    reconstructFlatMeshVector(vector) {\n        return new FlatMeshVector(this, vector);\n    }\n    serializeIfcModel(model) {\n        return new SerializedMesh(model);\n    }\n    reconstructIfcModel(model) {\n        return MeshReconstructor.new(model);\n    }\n}\n\nvar WorkerActions;\n(function (WorkerActions) {\n    WorkerActions[\"updateStateUseJson\"] = \"updateStateUseJson\";\n    WorkerActions[\"updateStateWebIfcSettings\"] = \"updateStateWebIfcSettings\";\n    WorkerActions[\"updateModelStateTypes\"] = \"updateModelStateTypes\";\n    WorkerActions[\"updateModelStateJsonData\"] = \"updateModelStateJsonData\";\n    WorkerActions[\"loadJsonDataFromWorker\"] = \"loadJsonDataFromWorker\";\n    WorkerActions[\"dispose\"] = \"dispose\";\n    WorkerActions[\"Close\"] = \"Close\";\n    WorkerActions[\"DisposeWebIfc\"] = \"DisposeWebIfc\";\n    WorkerActions[\"Init\"] = \"Init\";\n    WorkerActions[\"OpenModel\"] = \"OpenModel\";\n    WorkerActions[\"CreateModel\"] = \"CreateModel\";\n    WorkerActions[\"ExportFileAsIFC\"] = \"ExportFileAsIFC\";\n    WorkerActions[\"GetGeometry\"] = \"GetGeometry\";\n    WorkerActions[\"GetLine\"] = \"GetLine\";\n    WorkerActions[\"GetAndClearErrors\"] = \"GetAndClearErrors\";\n    WorkerActions[\"WriteLine\"] = \"WriteLine\";\n    WorkerActions[\"FlattenLine\"] = \"FlattenLine\";\n    WorkerActions[\"GetRawLineData\"] = \"GetRawLineData\";\n    WorkerActions[\"WriteRawLineData\"] = \"WriteRawLineData\";\n    WorkerActions[\"GetLineIDsWithType\"] = \"GetLineIDsWithType\";\n    WorkerActions[\"GetAllLines\"] = \"GetAllLines\";\n    WorkerActions[\"SetGeometryTransformation\"] = \"SetGeometryTransformation\";\n    WorkerActions[\"GetCoordinationMatrix\"] = \"GetCoordinationMatrix\";\n    WorkerActions[\"GetVertexArray\"] = \"GetVertexArray\";\n    WorkerActions[\"GetIndexArray\"] = \"GetIndexArray\";\n    WorkerActions[\"getSubArray\"] = \"getSubArray\";\n    WorkerActions[\"CloseModel\"] = \"CloseModel\";\n    WorkerActions[\"StreamAllMeshes\"] = \"StreamAllMeshes\";\n    WorkerActions[\"StreamAllMeshesWithTypes\"] = \"StreamAllMeshesWithTypes\";\n    WorkerActions[\"IsModelOpen\"] = \"IsModelOpen\";\n    WorkerActions[\"LoadAllGeometry\"] = \"LoadAllGeometry\";\n    WorkerActions[\"GetFlatMesh\"] = \"GetFlatMesh\";\n    WorkerActions[\"SetWasmPath\"] = \"SetWasmPath\";\n    WorkerActions[\"GetNameFromTypeCode\"] = \"GetNameFromTypeCode\";\n    WorkerActions[\"GetIfcEntityList\"] = \"GetIfcEntityList\";\n    WorkerActions[\"GetTypeCodeFromName\"] = \"GetTypeCodeFromName\";\n    WorkerActions[\"parse\"] = \"parse\";\n    WorkerActions[\"setupOptionalCategories\"] = \"setupOptionalCategories\";\n    WorkerActions[\"getExpressId\"] = \"getExpressId\";\n    WorkerActions[\"initializeProperties\"] = \"initializeProperties\";\n    WorkerActions[\"getAllItemsOfType\"] = \"getAllItemsOfType\";\n    WorkerActions[\"getItemProperties\"] = \"getItemProperties\";\n    WorkerActions[\"getMaterialsProperties\"] = \"getMaterialsProperties\";\n    WorkerActions[\"getPropertySets\"] = \"getPropertySets\";\n    WorkerActions[\"getSpatialStructure\"] = \"getSpatialStructure\";\n    WorkerActions[\"getTypeProperties\"] = \"getTypeProperties\";\n    WorkerActions[\"getHeaderLine\"] = \"getHeaderLine\";\n})(WorkerActions || (WorkerActions = {}));\nvar WorkerAPIs;\n(function (WorkerAPIs) {\n    WorkerAPIs[\"workerState\"] = \"workerState\";\n    WorkerAPIs[\"webIfc\"] = \"webIfc\";\n    WorkerAPIs[\"properties\"] = \"properties\";\n    WorkerAPIs[\"parser\"] = \"parser\";\n})(WorkerAPIs || (WorkerAPIs = {}));\nconst ErrorRootStateNotAvailable = 'The root worker does not have any state';\nconst ErrorPropertiesNotAvailable = 'Error: Properties not available from web worker';\nconst ErrorParserNotAvailable = 'Error: Parser not available from web worker';\nconst ErrorBadJsonPath = 'Error: Model not available from web worker';\nconst ErrorBadJson = 'Error: The given Json could not be read as a JS object';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n  get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n  if (typeof require !== \"undefined\")\n    return require.apply(this, arguments);\n  throw new Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n  return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __async = (__this, __arguments, generator) => {\n  return new Promise((resolve, reject) => {\n    var fulfilled = (value) => {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    };\n    var rejected = (value) => {\n      try {\n        step(generator.throw(value));\n      } catch (e) {\n        reject(e);\n      }\n    };\n    var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n    step((generator = generator.apply(__this, __arguments)).next());\n  });\n};\n\n// (disabled):crypto\nvar require_crypto = __commonJS({\n  \"(disabled):crypto\"() {\n  }\n});\n\n// dist/web-ifc-mt.js\nvar require_web_ifc_mt = __commonJS({\n  \"dist/web-ifc-mt.js\"(exports, module) {\n    var WebIFCWasm2 = (() => {\n      var _scriptDir = typeof document !== \"undefined\" && document.currentScript ? document.currentScript.src : void 0;\n      if (typeof __filename !== \"undefined\")\n        _scriptDir = _scriptDir || __filename;\n      return function(WebIFCWasm3 = {}) {\n        function GROWABLE_HEAP_I8() {\n          if (wasmMemory.buffer != HEAP8.buffer) {\n            updateMemoryViews();\n          }\n          return HEAP8;\n        }\n        function GROWABLE_HEAP_U8() {\n          if (wasmMemory.buffer != HEAP8.buffer) {\n            updateMemoryViews();\n          }\n          return HEAPU8;\n        }\n        function GROWABLE_HEAP_I16() {\n          if (wasmMemory.buffer != HEAP8.buffer) {\n            updateMemoryViews();\n          }\n          return HEAP16;\n        }\n        function GROWABLE_HEAP_U16() {\n          if (wasmMemory.buffer != HEAP8.buffer) {\n            updateMemoryViews();\n          }\n          return HEAPU16;\n        }\n        function GROWABLE_HEAP_I32() {\n          if (wasmMemory.buffer != HEAP8.buffer) {\n            updateMemoryViews();\n          }\n          return HEAP32;\n        }\n        function GROWABLE_HEAP_U32() {\n          if (wasmMemory.buffer != HEAP8.buffer) {\n            updateMemoryViews();\n          }\n          return HEAPU32;\n        }\n        function GROWABLE_HEAP_F32() {\n          if (wasmMemory.buffer != HEAP8.buffer) {\n            updateMemoryViews();\n          }\n          return HEAPF32;\n        }\n        function GROWABLE_HEAP_F64() {\n          if (wasmMemory.buffer != HEAP8.buffer) {\n            updateMemoryViews();\n          }\n          return HEAPF64;\n        }\n        var Module = typeof WebIFCWasm3 != \"undefined\" ? WebIFCWasm3 : {};\n        var readyPromiseResolve, readyPromiseReject;\n        Module[\"ready\"] = new Promise(function(resolve, reject) {\n          readyPromiseResolve = resolve;\n          readyPromiseReject = reject;\n        });\n        var moduleOverrides = Object.assign({}, Module);\n        var thisProgram = \"./this.program\";\n        var quit_ = (status, toThrow) => {\n          throw toThrow;\n        };\n        var ENVIRONMENT_IS_WEB = typeof window == \"object\";\n        var ENVIRONMENT_IS_WORKER = typeof importScripts == \"function\";\n        var ENVIRONMENT_IS_NODE = typeof process == \"object\" && typeof process.versions == \"object\" && typeof process.versions.node == \"string\";\n        var ENVIRONMENT_IS_PTHREAD = Module[\"ENVIRONMENT_IS_PTHREAD\"] || false;\n        var scriptDirectory = \"\";\n        function locateFile(path) {\n          if (Module[\"locateFile\"]) {\n            return Module[\"locateFile\"](path, scriptDirectory);\n          }\n          return scriptDirectory + path;\n        }\n        var read_, readAsync, readBinary;\n        function logExceptionOnExit(e) {\n          if (e instanceof ExitStatus)\n            return;\n          let toLog = e;\n          err(\"exiting due to exception: \" + toLog);\n        }\n        if (ENVIRONMENT_IS_NODE) {\n          var fs = __require(\"fs\");\n          var nodePath = __require(\"path\");\n          if (ENVIRONMENT_IS_WORKER) {\n            scriptDirectory = nodePath.dirname(scriptDirectory) + \"/\";\n          } else {\n            scriptDirectory = __dirname + \"/\";\n          }\n          read_ = (filename, binary) => {\n            filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);\n            return fs.readFileSync(filename, binary ? void 0 : \"utf8\");\n          };\n          readBinary = (filename) => {\n            var ret = read_(filename, true);\n            if (!ret.buffer) {\n              ret = new Uint8Array(ret);\n            }\n            return ret;\n          };\n          readAsync = (filename, onload, onerror) => {\n            filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);\n            fs.readFile(filename, function(err2, data) {\n              if (err2)\n                onerror(err2);\n              else\n                onload(data.buffer);\n            });\n          };\n          if (process[\"argv\"].length > 1) {\n            thisProgram = process[\"argv\"][1].replace(/\\\\/g, \"/\");\n          }\n          process[\"argv\"].slice(2);\n          process[\"on\"](\"uncaughtException\", function(ex) {\n            if (!(ex instanceof ExitStatus)) {\n              throw ex;\n            }\n          });\n          var nodeMajor = process.version.match(/^v(\\d+)\\./)[1];\n          if (nodeMajor < 15) {\n            process[\"on\"](\"unhandledRejection\", function(reason) {\n              throw reason;\n            });\n          }\n          quit_ = (status, toThrow) => {\n            if (keepRuntimeAlive()) {\n              process[\"exitCode\"] = status;\n              throw toThrow;\n            }\n            logExceptionOnExit(toThrow);\n            process[\"exit\"](status);\n          };\n          Module[\"inspect\"] = function() {\n            return \"[Emscripten Module object]\";\n          };\n          let nodeWorkerThreads;\n          try {\n            nodeWorkerThreads = __require(\"worker_threads\");\n          } catch (e) {\n            console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');\n            throw e;\n          }\n          global.Worker = nodeWorkerThreads.Worker;\n        } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n          if (ENVIRONMENT_IS_WORKER) {\n            scriptDirectory = self.location.href;\n          } else if (typeof document != \"undefined\" && document.currentScript) {\n            scriptDirectory = document.currentScript.src;\n          }\n          if (_scriptDir) {\n            scriptDirectory = _scriptDir;\n          }\n          if (scriptDirectory.indexOf(\"blob:\") !== 0) {\n            scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1);\n          } else {\n            scriptDirectory = \"\";\n          }\n          if (!ENVIRONMENT_IS_NODE) {\n            read_ = (url) => {\n              var xhr = new XMLHttpRequest();\n              xhr.open(\"GET\", url, false);\n              xhr.send(null);\n              return xhr.responseText;\n            };\n            if (ENVIRONMENT_IS_WORKER) {\n              readBinary = (url) => {\n                var xhr = new XMLHttpRequest();\n                xhr.open(\"GET\", url, false);\n                xhr.responseType = \"arraybuffer\";\n                xhr.send(null);\n                return new Uint8Array(xhr.response);\n              };\n            }\n            readAsync = (url, onload, onerror) => {\n              var xhr = new XMLHttpRequest();\n              xhr.open(\"GET\", url, true);\n              xhr.responseType = \"arraybuffer\";\n              xhr.onload = () => {\n                if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n                  onload(xhr.response);\n                  return;\n                }\n                onerror();\n              };\n              xhr.onerror = onerror;\n              xhr.send(null);\n            };\n          }\n        } else ;\n        if (ENVIRONMENT_IS_NODE) {\n          if (typeof performance == \"undefined\") {\n            global.performance = __require(\"perf_hooks\").performance;\n          }\n        }\n        var defaultPrint = console.log.bind(console);\n        var defaultPrintErr = console.warn.bind(console);\n        if (ENVIRONMENT_IS_NODE) {\n          defaultPrint = (str) => fs.writeSync(1, str + \"\\n\");\n          defaultPrintErr = (str) => fs.writeSync(2, str + \"\\n\");\n        }\n        var out = Module[\"print\"] || defaultPrint;\n        var err = Module[\"printErr\"] || defaultPrintErr;\n        Object.assign(Module, moduleOverrides);\n        moduleOverrides = null;\n        if (Module[\"arguments\"])\n          Module[\"arguments\"];\n        if (Module[\"thisProgram\"])\n          thisProgram = Module[\"thisProgram\"];\n        if (Module[\"quit\"])\n          quit_ = Module[\"quit\"];\n        var wasmBinary;\n        if (Module[\"wasmBinary\"])\n          wasmBinary = Module[\"wasmBinary\"];\n        var noExitRuntime = Module[\"noExitRuntime\"] || true;\n        if (typeof WebAssembly != \"object\") {\n          abort(\"no native wasm support detected\");\n        }\n        var wasmMemory;\n        var wasmModule;\n        var ABORT = false;\n        var EXITSTATUS;\n        function assert(condition, text) {\n          if (!condition) {\n            abort(text);\n          }\n        }\n        var UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n        function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {\n          idx >>>= 0;\n          var endIdx = idx + maxBytesToRead;\n          var endPtr = idx;\n          while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n            ++endPtr;\n          if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n            return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr));\n          }\n          var str = \"\";\n          while (idx < endPtr) {\n            var u0 = heapOrArray[idx++];\n            if (!(u0 & 128)) {\n              str += String.fromCharCode(u0);\n              continue;\n            }\n            var u1 = heapOrArray[idx++] & 63;\n            if ((u0 & 224) == 192) {\n              str += String.fromCharCode((u0 & 31) << 6 | u1);\n              continue;\n            }\n            var u2 = heapOrArray[idx++] & 63;\n            if ((u0 & 240) == 224) {\n              u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n            } else {\n              u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n            }\n            if (u0 < 65536) {\n              str += String.fromCharCode(u0);\n            } else {\n              var ch = u0 - 65536;\n              str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n            }\n          }\n          return str;\n        }\n        function UTF8ToString(ptr, maxBytesToRead) {\n          ptr >>>= 0;\n          return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : \"\";\n        }\n        function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {\n          outIdx >>>= 0;\n          if (!(maxBytesToWrite > 0))\n            return 0;\n          var startIdx = outIdx;\n          var endIdx = outIdx + maxBytesToWrite - 1;\n          for (var i = 0; i < str.length; ++i) {\n            var u = str.charCodeAt(i);\n            if (u >= 55296 && u <= 57343) {\n              var u1 = str.charCodeAt(++i);\n              u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n            }\n            if (u <= 127) {\n              if (outIdx >= endIdx)\n                break;\n              heap[outIdx++ >>> 0] = u;\n            } else if (u <= 2047) {\n              if (outIdx + 1 >= endIdx)\n                break;\n              heap[outIdx++ >>> 0] = 192 | u >> 6;\n              heap[outIdx++ >>> 0] = 128 | u & 63;\n            } else if (u <= 65535) {\n              if (outIdx + 2 >= endIdx)\n                break;\n              heap[outIdx++ >>> 0] = 224 | u >> 12;\n              heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n              heap[outIdx++ >>> 0] = 128 | u & 63;\n            } else {\n              if (outIdx + 3 >= endIdx)\n                break;\n              heap[outIdx++ >>> 0] = 240 | u >> 18;\n              heap[outIdx++ >>> 0] = 128 | u >> 12 & 63;\n              heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n              heap[outIdx++ >>> 0] = 128 | u & 63;\n            }\n          }\n          heap[outIdx >>> 0] = 0;\n          return outIdx - startIdx;\n        }\n        function stringToUTF8(str, outPtr, maxBytesToWrite) {\n          return stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite);\n        }\n        function lengthBytesUTF8(str) {\n          var len = 0;\n          for (var i = 0; i < str.length; ++i) {\n            var c = str.charCodeAt(i);\n            if (c <= 127) {\n              len++;\n            } else if (c <= 2047) {\n              len += 2;\n            } else if (c >= 55296 && c <= 57343) {\n              len += 4;\n              ++i;\n            } else {\n              len += 3;\n            }\n          }\n          return len;\n        }\n        var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n        function updateMemoryViews() {\n          var b = wasmMemory.buffer;\n          Module[\"HEAP8\"] = HEAP8 = new Int8Array(b);\n          Module[\"HEAP16\"] = HEAP16 = new Int16Array(b);\n          Module[\"HEAP32\"] = HEAP32 = new Int32Array(b);\n          Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(b);\n          Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(b);\n          Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(b);\n          Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(b);\n          Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(b);\n        }\n        var INITIAL_MEMORY = Module[\"INITIAL_MEMORY\"] || 16777216;\n        assert(INITIAL_MEMORY >= 5242880, \"INITIAL_MEMORY should be larger than STACK_SIZE, was \" + INITIAL_MEMORY + \"! (STACK_SIZE=\" + 5242880 + \")\");\n        if (ENVIRONMENT_IS_PTHREAD) {\n          wasmMemory = Module[\"wasmMemory\"];\n        } else {\n          if (Module[\"wasmMemory\"]) {\n            wasmMemory = Module[\"wasmMemory\"];\n          } else {\n            wasmMemory = new WebAssembly.Memory({ \"initial\": INITIAL_MEMORY / 65536, \"maximum\": 4294967296 / 65536, \"shared\": true });\n            if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) {\n              err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");\n              if (ENVIRONMENT_IS_NODE) {\n                err(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)\");\n              }\n              throw Error(\"bad memory\");\n            }\n          }\n        }\n        updateMemoryViews();\n        INITIAL_MEMORY = wasmMemory.buffer.byteLength;\n        var wasmTable;\n        var __ATPRERUN__ = [];\n        var __ATINIT__ = [];\n        var __ATPOSTRUN__ = [];\n        function keepRuntimeAlive() {\n          return noExitRuntime;\n        }\n        function preRun() {\n          if (Module[\"preRun\"]) {\n            if (typeof Module[\"preRun\"] == \"function\")\n              Module[\"preRun\"] = [Module[\"preRun\"]];\n            while (Module[\"preRun\"].length) {\n              addOnPreRun(Module[\"preRun\"].shift());\n            }\n          }\n          callRuntimeCallbacks(__ATPRERUN__);\n        }\n        function initRuntime() {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return;\n          if (!Module[\"noFSInit\"] && !FS.init.initialized)\n            FS.init();\n          FS.ignorePermissions = false;\n          callRuntimeCallbacks(__ATINIT__);\n        }\n        function postRun() {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return;\n          if (Module[\"postRun\"]) {\n            if (typeof Module[\"postRun\"] == \"function\")\n              Module[\"postRun\"] = [Module[\"postRun\"]];\n            while (Module[\"postRun\"].length) {\n              addOnPostRun(Module[\"postRun\"].shift());\n            }\n          }\n          callRuntimeCallbacks(__ATPOSTRUN__);\n        }\n        function addOnPreRun(cb) {\n          __ATPRERUN__.unshift(cb);\n        }\n        function addOnInit(cb) {\n          __ATINIT__.unshift(cb);\n        }\n        function addOnPostRun(cb) {\n          __ATPOSTRUN__.unshift(cb);\n        }\n        var runDependencies = 0;\n        var dependenciesFulfilled = null;\n        function getUniqueRunDependency(id) {\n          return id;\n        }\n        function addRunDependency(id) {\n          runDependencies++;\n          if (Module[\"monitorRunDependencies\"]) {\n            Module[\"monitorRunDependencies\"](runDependencies);\n          }\n        }\n        function removeRunDependency(id) {\n          runDependencies--;\n          if (Module[\"monitorRunDependencies\"]) {\n            Module[\"monitorRunDependencies\"](runDependencies);\n          }\n          if (runDependencies == 0) {\n            if (dependenciesFulfilled) {\n              var callback = dependenciesFulfilled;\n              dependenciesFulfilled = null;\n              callback();\n            }\n          }\n        }\n        function abort(what) {\n          if (Module[\"onAbort\"]) {\n            Module[\"onAbort\"](what);\n          }\n          what = \"Aborted(\" + what + \")\";\n          err(what);\n          ABORT = true;\n          EXITSTATUS = 1;\n          what += \". Build with -sASSERTIONS for more info.\";\n          var e = new WebAssembly.RuntimeError(what);\n          readyPromiseReject(e);\n          throw e;\n        }\n        var dataURIPrefix = \"data:application/octet-stream;base64,\";\n        function isDataURI(filename) {\n          return filename.startsWith(dataURIPrefix);\n        }\n        function isFileURI(filename) {\n          return filename.startsWith(\"file://\");\n        }\n        var wasmBinaryFile;\n        wasmBinaryFile = \"web-ifc-mt.wasm\";\n        if (!isDataURI(wasmBinaryFile)) {\n          wasmBinaryFile = locateFile(wasmBinaryFile);\n        }\n        function getBinary(file) {\n          try {\n            if (file == wasmBinaryFile && wasmBinary) {\n              return new Uint8Array(wasmBinary);\n            }\n            if (readBinary) {\n              return readBinary(file);\n            }\n            throw \"both async and sync fetching of the wasm failed\";\n          } catch (err2) {\n            abort(err2);\n          }\n        }\n        function getBinaryPromise() {\n          if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n            if (typeof fetch == \"function\" && !isFileURI(wasmBinaryFile)) {\n              return fetch(wasmBinaryFile, { credentials: \"same-origin\" }).then(function(response) {\n                if (!response[\"ok\"]) {\n                  throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\n                }\n                return response[\"arrayBuffer\"]();\n              }).catch(function() {\n                return getBinary(wasmBinaryFile);\n              });\n            } else {\n              if (readAsync) {\n                return new Promise(function(resolve, reject) {\n                  readAsync(wasmBinaryFile, function(response) {\n                    resolve(new Uint8Array(response));\n                  }, reject);\n                });\n              }\n            }\n          }\n          return Promise.resolve().then(function() {\n            return getBinary(wasmBinaryFile);\n          });\n        }\n        function createWasm() {\n          var info = { \"a\": wasmImports };\n          function receiveInstance(instance, module2) {\n            var exports3 = instance.exports;\n            Module[\"asm\"] = exports3;\n            registerTLSInit(Module[\"asm\"][\"ma\"]);\n            wasmTable = Module[\"asm\"][\"ka\"];\n            addOnInit(Module[\"asm\"][\"ja\"]);\n            wasmModule = module2;\n            PThread.loadWasmModuleToAllWorkers(() => removeRunDependency());\n          }\n          addRunDependency();\n          function receiveInstantiationResult(result) {\n            receiveInstance(result[\"instance\"], result[\"module\"]);\n          }\n          function instantiateArrayBuffer(receiver) {\n            return getBinaryPromise().then(function(binary) {\n              return WebAssembly.instantiate(binary, info);\n            }).then(function(instance) {\n              return instance;\n            }).then(receiver, function(reason) {\n              err(\"failed to asynchronously prepare wasm: \" + reason);\n              abort(reason);\n            });\n          }\n          function instantiateAsync() {\n            if (!wasmBinary && typeof WebAssembly.instantiateStreaming == \"function\" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == \"function\") {\n              return fetch(wasmBinaryFile, { credentials: \"same-origin\" }).then(function(response) {\n                var result = WebAssembly.instantiateStreaming(response, info);\n                return result.then(receiveInstantiationResult, function(reason) {\n                  err(\"wasm streaming compile failed: \" + reason);\n                  err(\"falling back to ArrayBuffer instantiation\");\n                  return instantiateArrayBuffer(receiveInstantiationResult);\n                });\n              });\n            } else {\n              return instantiateArrayBuffer(receiveInstantiationResult);\n            }\n          }\n          if (Module[\"instantiateWasm\"]) {\n            try {\n              var exports2 = Module[\"instantiateWasm\"](info, receiveInstance);\n              return exports2;\n            } catch (e) {\n              err(\"Module.instantiateWasm callback failed with error: \" + e);\n              readyPromiseReject(e);\n            }\n          }\n          instantiateAsync().catch(readyPromiseReject);\n          return {};\n        }\n        var tempDouble;\n        var tempI64;\n        function ExitStatus(status) {\n          this.name = \"ExitStatus\";\n          this.message = \"Program terminated with exit(\" + status + \")\";\n          this.status = status;\n        }\n        function killThread(pthread_ptr) {\n          var worker = PThread.pthreads[pthread_ptr];\n          delete PThread.pthreads[pthread_ptr];\n          worker.terminate();\n          __emscripten_thread_free_data(pthread_ptr);\n          PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1);\n          worker.pthread_ptr = 0;\n        }\n        function cancelThread(pthread_ptr) {\n          var worker = PThread.pthreads[pthread_ptr];\n          worker.postMessage({ \"cmd\": \"cancel\" });\n        }\n        function cleanupThread(pthread_ptr) {\n          var worker = PThread.pthreads[pthread_ptr];\n          assert(worker);\n          PThread.returnWorkerToPool(worker);\n        }\n        function spawnThread(threadParams) {\n          var worker = PThread.getNewWorker();\n          if (!worker) {\n            return 6;\n          }\n          PThread.runningWorkers.push(worker);\n          PThread.pthreads[threadParams.pthread_ptr] = worker;\n          worker.pthread_ptr = threadParams.pthread_ptr;\n          var msg = { \"cmd\": \"run\", \"start_routine\": threadParams.startRoutine, \"arg\": threadParams.arg, \"pthread_ptr\": threadParams.pthread_ptr };\n          if (ENVIRONMENT_IS_NODE) {\n            worker.ref();\n          }\n          worker.postMessage(msg, threadParams.transferList);\n          return 0;\n        }\n        var PATH = { isAbs: (path) => path.charAt(0) === \"/\", splitPath: (filename) => {\n          var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n          return splitPathRe.exec(filename).slice(1);\n        }, normalizeArray: (parts, allowAboveRoot) => {\n          var up = 0;\n          for (var i = parts.length - 1; i >= 0; i--) {\n            var last = parts[i];\n            if (last === \".\") {\n              parts.splice(i, 1);\n            } else if (last === \"..\") {\n              parts.splice(i, 1);\n              up++;\n            } else if (up) {\n              parts.splice(i, 1);\n              up--;\n            }\n          }\n          if (allowAboveRoot) {\n            for (; up; up--) {\n              parts.unshift(\"..\");\n            }\n          }\n          return parts;\n        }, normalize: (path) => {\n          var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === \"/\";\n          path = PATH.normalizeArray(path.split(\"/\").filter((p) => !!p), !isAbsolute).join(\"/\");\n          if (!path && !isAbsolute) {\n            path = \".\";\n          }\n          if (path && trailingSlash) {\n            path += \"/\";\n          }\n          return (isAbsolute ? \"/\" : \"\") + path;\n        }, dirname: (path) => {\n          var result = PATH.splitPath(path), root = result[0], dir = result[1];\n          if (!root && !dir) {\n            return \".\";\n          }\n          if (dir) {\n            dir = dir.substr(0, dir.length - 1);\n          }\n          return root + dir;\n        }, basename: (path) => {\n          if (path === \"/\")\n            return \"/\";\n          path = PATH.normalize(path);\n          path = path.replace(/\\/$/, \"\");\n          var lastSlash = path.lastIndexOf(\"/\");\n          if (lastSlash === -1)\n            return path;\n          return path.substr(lastSlash + 1);\n        }, join: function() {\n          var paths = Array.prototype.slice.call(arguments);\n          return PATH.normalize(paths.join(\"/\"));\n        }, join2: (l, r) => {\n          return PATH.normalize(l + \"/\" + r);\n        } };\n        function getRandomDevice() {\n          if (typeof crypto == \"object\" && typeof crypto[\"getRandomValues\"] == \"function\") {\n            var randomBuffer = new Uint8Array(1);\n            return () => {\n              crypto.getRandomValues(randomBuffer);\n              return randomBuffer[0];\n            };\n          } else if (ENVIRONMENT_IS_NODE) {\n            try {\n              var crypto_module = require_crypto();\n              return () => crypto_module[\"randomBytes\"](1)[0];\n            } catch (e) {\n            }\n          }\n          return () => abort(\"randomDevice\");\n        }\n        var PATH_FS = { resolve: function() {\n          var resolvedPath = \"\", resolvedAbsolute = false;\n          for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n            var path = i >= 0 ? arguments[i] : FS.cwd();\n            if (typeof path != \"string\") {\n              throw new TypeError(\"Arguments to path.resolve must be strings\");\n            } else if (!path) {\n              return \"\";\n            }\n            resolvedPath = path + \"/\" + resolvedPath;\n            resolvedAbsolute = PATH.isAbs(path);\n          }\n          resolvedPath = PATH.normalizeArray(resolvedPath.split(\"/\").filter((p) => !!p), !resolvedAbsolute).join(\"/\");\n          return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n        }, relative: (from, to) => {\n          from = PATH_FS.resolve(from).substr(1);\n          to = PATH_FS.resolve(to).substr(1);\n          function trim(arr) {\n            var start = 0;\n            for (; start < arr.length; start++) {\n              if (arr[start] !== \"\")\n                break;\n            }\n            var end = arr.length - 1;\n            for (; end >= 0; end--) {\n              if (arr[end] !== \"\")\n                break;\n            }\n            if (start > end)\n              return [];\n            return arr.slice(start, end - start + 1);\n          }\n          var fromParts = trim(from.split(\"/\"));\n          var toParts = trim(to.split(\"/\"));\n          var length = Math.min(fromParts.length, toParts.length);\n          var samePartsLength = length;\n          for (var i = 0; i < length; i++) {\n            if (fromParts[i] !== toParts[i]) {\n              samePartsLength = i;\n              break;\n            }\n          }\n          var outputParts = [];\n          for (var i = samePartsLength; i < fromParts.length; i++) {\n            outputParts.push(\"..\");\n          }\n          outputParts = outputParts.concat(toParts.slice(samePartsLength));\n          return outputParts.join(\"/\");\n        } };\n        function intArrayFromString(stringy, dontAddNull, length) {\n          var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n          var u8array = new Array(len);\n          var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n          if (dontAddNull)\n            u8array.length = numBytesWritten;\n          return u8array;\n        }\n        var TTY = { ttys: [], init: function() {\n        }, shutdown: function() {\n        }, register: function(dev, ops) {\n          TTY.ttys[dev] = { input: [], output: [], ops };\n          FS.registerDevice(dev, TTY.stream_ops);\n        }, stream_ops: { open: function(stream) {\n          var tty = TTY.ttys[stream.node.rdev];\n          if (!tty) {\n            throw new FS.ErrnoError(43);\n          }\n          stream.tty = tty;\n          stream.seekable = false;\n        }, close: function(stream) {\n          stream.tty.ops.fsync(stream.tty);\n        }, fsync: function(stream) {\n          stream.tty.ops.fsync(stream.tty);\n        }, read: function(stream, buffer, offset, length, pos) {\n          if (!stream.tty || !stream.tty.ops.get_char) {\n            throw new FS.ErrnoError(60);\n          }\n          var bytesRead = 0;\n          for (var i = 0; i < length; i++) {\n            var result;\n            try {\n              result = stream.tty.ops.get_char(stream.tty);\n            } catch (e) {\n              throw new FS.ErrnoError(29);\n            }\n            if (result === void 0 && bytesRead === 0) {\n              throw new FS.ErrnoError(6);\n            }\n            if (result === null || result === void 0)\n              break;\n            bytesRead++;\n            buffer[offset + i] = result;\n          }\n          if (bytesRead) {\n            stream.node.timestamp = Date.now();\n          }\n          return bytesRead;\n        }, write: function(stream, buffer, offset, length, pos) {\n          if (!stream.tty || !stream.tty.ops.put_char) {\n            throw new FS.ErrnoError(60);\n          }\n          try {\n            for (var i = 0; i < length; i++) {\n              stream.tty.ops.put_char(stream.tty, buffer[offset + i]);\n            }\n          } catch (e) {\n            throw new FS.ErrnoError(29);\n          }\n          if (length) {\n            stream.node.timestamp = Date.now();\n          }\n          return i;\n        } }, default_tty_ops: { get_char: function(tty) {\n          if (!tty.input.length) {\n            var result = null;\n            if (ENVIRONMENT_IS_NODE) {\n              var BUFSIZE = 256;\n              var buf = Buffer.alloc(BUFSIZE);\n              var bytesRead = 0;\n              try {\n                bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1);\n              } catch (e) {\n                if (e.toString().includes(\"EOF\"))\n                  bytesRead = 0;\n                else\n                  throw e;\n              }\n              if (bytesRead > 0) {\n                result = buf.slice(0, bytesRead).toString(\"utf-8\");\n              } else {\n                result = null;\n              }\n            } else if (typeof window != \"undefined\" && typeof window.prompt == \"function\") {\n              result = window.prompt(\"Input: \");\n              if (result !== null) {\n                result += \"\\n\";\n              }\n            } else if (typeof readline == \"function\") {\n              result = readline();\n              if (result !== null) {\n                result += \"\\n\";\n              }\n            }\n            if (!result) {\n              return null;\n            }\n            tty.input = intArrayFromString(result, true);\n          }\n          return tty.input.shift();\n        }, put_char: function(tty, val) {\n          if (val === null || val === 10) {\n            out(UTF8ArrayToString(tty.output, 0));\n            tty.output = [];\n          } else {\n            if (val != 0)\n              tty.output.push(val);\n          }\n        }, fsync: function(tty) {\n          if (tty.output && tty.output.length > 0) {\n            out(UTF8ArrayToString(tty.output, 0));\n            tty.output = [];\n          }\n        } }, default_tty1_ops: { put_char: function(tty, val) {\n          if (val === null || val === 10) {\n            err(UTF8ArrayToString(tty.output, 0));\n            tty.output = [];\n          } else {\n            if (val != 0)\n              tty.output.push(val);\n          }\n        }, fsync: function(tty) {\n          if (tty.output && tty.output.length > 0) {\n            err(UTF8ArrayToString(tty.output, 0));\n            tty.output = [];\n          }\n        } } };\n        function mmapAlloc(size) {\n          abort();\n        }\n        var MEMFS = { ops_table: null, mount: function(mount) {\n          return MEMFS.createNode(null, \"/\", 16384 | 511, 0);\n        }, createNode: function(parent, name, mode, dev) {\n          if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {\n            throw new FS.ErrnoError(63);\n          }\n          if (!MEMFS.ops_table) {\n            MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };\n          }\n          var node = FS.createNode(parent, name, mode, dev);\n          if (FS.isDir(node.mode)) {\n            node.node_ops = MEMFS.ops_table.dir.node;\n            node.stream_ops = MEMFS.ops_table.dir.stream;\n            node.contents = {};\n          } else if (FS.isFile(node.mode)) {\n            node.node_ops = MEMFS.ops_table.file.node;\n            node.stream_ops = MEMFS.ops_table.file.stream;\n            node.usedBytes = 0;\n            node.contents = null;\n          } else if (FS.isLink(node.mode)) {\n            node.node_ops = MEMFS.ops_table.link.node;\n            node.stream_ops = MEMFS.ops_table.link.stream;\n          } else if (FS.isChrdev(node.mode)) {\n            node.node_ops = MEMFS.ops_table.chrdev.node;\n            node.stream_ops = MEMFS.ops_table.chrdev.stream;\n          }\n          node.timestamp = Date.now();\n          if (parent) {\n            parent.contents[name] = node;\n            parent.timestamp = node.timestamp;\n          }\n          return node;\n        }, getFileDataAsTypedArray: function(node) {\n          if (!node.contents)\n            return new Uint8Array(0);\n          if (node.contents.subarray)\n            return node.contents.subarray(0, node.usedBytes);\n          return new Uint8Array(node.contents);\n        }, expandFileStorage: function(node, newCapacity) {\n          newCapacity >>>= 0;\n          var prevCapacity = node.contents ? node.contents.length : 0;\n          if (prevCapacity >= newCapacity)\n            return;\n          var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n          newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);\n          if (prevCapacity != 0)\n            newCapacity = Math.max(newCapacity, 256);\n          var oldContents = node.contents;\n          node.contents = new Uint8Array(newCapacity);\n          if (node.usedBytes > 0)\n            node.contents.set(oldContents.subarray(0, node.usedBytes), 0);\n        }, resizeFileStorage: function(node, newSize) {\n          newSize >>>= 0;\n          if (node.usedBytes == newSize)\n            return;\n          if (newSize == 0) {\n            node.contents = null;\n            node.usedBytes = 0;\n          } else {\n            var oldContents = node.contents;\n            node.contents = new Uint8Array(newSize);\n            if (oldContents) {\n              node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));\n            }\n            node.usedBytes = newSize;\n          }\n        }, node_ops: { getattr: function(node) {\n          var attr = {};\n          attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n          attr.ino = node.id;\n          attr.mode = node.mode;\n          attr.nlink = 1;\n          attr.uid = 0;\n          attr.gid = 0;\n          attr.rdev = node.rdev;\n          if (FS.isDir(node.mode)) {\n            attr.size = 4096;\n          } else if (FS.isFile(node.mode)) {\n            attr.size = node.usedBytes;\n          } else if (FS.isLink(node.mode)) {\n            attr.size = node.link.length;\n          } else {\n            attr.size = 0;\n          }\n          attr.atime = new Date(node.timestamp);\n          attr.mtime = new Date(node.timestamp);\n          attr.ctime = new Date(node.timestamp);\n          attr.blksize = 4096;\n          attr.blocks = Math.ceil(attr.size / attr.blksize);\n          return attr;\n        }, setattr: function(node, attr) {\n          if (attr.mode !== void 0) {\n            node.mode = attr.mode;\n          }\n          if (attr.timestamp !== void 0) {\n            node.timestamp = attr.timestamp;\n          }\n          if (attr.size !== void 0) {\n            MEMFS.resizeFileStorage(node, attr.size);\n          }\n        }, lookup: function(parent, name) {\n          throw FS.genericErrors[44];\n        }, mknod: function(parent, name, mode, dev) {\n          return MEMFS.createNode(parent, name, mode, dev);\n        }, rename: function(old_node, new_dir, new_name) {\n          if (FS.isDir(old_node.mode)) {\n            var new_node;\n            try {\n              new_node = FS.lookupNode(new_dir, new_name);\n            } catch (e) {\n            }\n            if (new_node) {\n              for (var i in new_node.contents) {\n                throw new FS.ErrnoError(55);\n              }\n            }\n          }\n          delete old_node.parent.contents[old_node.name];\n          old_node.parent.timestamp = Date.now();\n          old_node.name = new_name;\n          new_dir.contents[new_name] = old_node;\n          new_dir.timestamp = old_node.parent.timestamp;\n          old_node.parent = new_dir;\n        }, unlink: function(parent, name) {\n          delete parent.contents[name];\n          parent.timestamp = Date.now();\n        }, rmdir: function(parent, name) {\n          var node = FS.lookupNode(parent, name);\n          for (var i in node.contents) {\n            throw new FS.ErrnoError(55);\n          }\n          delete parent.contents[name];\n          parent.timestamp = Date.now();\n        }, readdir: function(node) {\n          var entries = [\".\", \"..\"];\n          for (var key in node.contents) {\n            if (!node.contents.hasOwnProperty(key)) {\n              continue;\n            }\n            entries.push(key);\n          }\n          return entries;\n        }, symlink: function(parent, newname, oldpath) {\n          var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);\n          node.link = oldpath;\n          return node;\n        }, readlink: function(node) {\n          if (!FS.isLink(node.mode)) {\n            throw new FS.ErrnoError(28);\n          }\n          return node.link;\n        } }, stream_ops: { read: function(stream, buffer, offset, length, position) {\n          var contents = stream.node.contents;\n          if (position >= stream.node.usedBytes)\n            return 0;\n          var size = Math.min(stream.node.usedBytes - position, length);\n          if (size > 8 && contents.subarray) {\n            buffer.set(contents.subarray(position, position + size), offset);\n          } else {\n            for (var i = 0; i < size; i++)\n              buffer[offset + i] = contents[position + i];\n          }\n          return size;\n        }, write: function(stream, buffer, offset, length, position, canOwn) {\n          if (buffer.buffer === GROWABLE_HEAP_I8().buffer) {\n            canOwn = false;\n          }\n          if (!length)\n            return 0;\n          var node = stream.node;\n          node.timestamp = Date.now();\n          if (buffer.subarray && (!node.contents || node.contents.subarray)) {\n            if (canOwn) {\n              node.contents = buffer.subarray(offset, offset + length);\n              node.usedBytes = length;\n              return length;\n            } else if (node.usedBytes === 0 && position === 0) {\n              node.contents = buffer.slice(offset, offset + length);\n              node.usedBytes = length;\n              return length;\n            } else if (position + length <= node.usedBytes) {\n              node.contents.set(buffer.subarray(offset, offset + length), position);\n              return length;\n            }\n          }\n          MEMFS.expandFileStorage(node, position + length);\n          if (node.contents.subarray && buffer.subarray) {\n            node.contents.set(buffer.subarray(offset, offset + length), position);\n          } else {\n            for (var i = 0; i < length; i++) {\n              node.contents[position + i] = buffer[offset + i];\n            }\n          }\n          node.usedBytes = Math.max(node.usedBytes, position + length);\n          return length;\n        }, llseek: function(stream, offset, whence) {\n          var position = offset;\n          if (whence === 1) {\n            position += stream.position;\n          } else if (whence === 2) {\n            if (FS.isFile(stream.node.mode)) {\n              position += stream.node.usedBytes;\n            }\n          }\n          if (position < 0) {\n            throw new FS.ErrnoError(28);\n          }\n          return position;\n        }, allocate: function(stream, offset, length) {\n          MEMFS.expandFileStorage(stream.node, offset + length);\n          stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n        }, mmap: function(stream, length, position, prot, flags) {\n          if (!FS.isFile(stream.node.mode)) {\n            throw new FS.ErrnoError(43);\n          }\n          var ptr;\n          var allocated;\n          var contents = stream.node.contents;\n          if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) {\n            allocated = false;\n            ptr = contents.byteOffset;\n          } else {\n            if (position > 0 || position + length < contents.length) {\n              if (contents.subarray) {\n                contents = contents.subarray(position, position + length);\n              } else {\n                contents = Array.prototype.slice.call(contents, position, position + length);\n              }\n            }\n            allocated = true;\n            ptr = mmapAlloc();\n            if (!ptr) {\n              throw new FS.ErrnoError(48);\n            }\n            ptr >>>= 0;\n            GROWABLE_HEAP_I8().set(contents, ptr >>> 0);\n          }\n          return { ptr, allocated };\n        }, msync: function(stream, buffer, offset, length, mmapFlags) {\n          MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n          return 0;\n        } } };\n        function asyncLoad(url, onload, onerror, noRunDep) {\n          var dep = !noRunDep ? getUniqueRunDependency(\"al \" + url) : \"\";\n          readAsync(url, (arrayBuffer) => {\n            assert(arrayBuffer, 'Loading data file \"' + url + '\" failed (no arrayBuffer).');\n            onload(new Uint8Array(arrayBuffer));\n            if (dep)\n              removeRunDependency();\n          }, (event) => {\n            if (onerror) {\n              onerror();\n            } else {\n              throw 'Loading data file \"' + url + '\" failed.';\n            }\n          });\n          if (dep)\n            addRunDependency();\n        }\n        var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: \"/\", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => {\n          path = PATH_FS.resolve(path);\n          if (!path)\n            return { path: \"\", node: null };\n          var defaults = { follow_mount: true, recurse_count: 0 };\n          opts = Object.assign(defaults, opts);\n          if (opts.recurse_count > 8) {\n            throw new FS.ErrnoError(32);\n          }\n          var parts = path.split(\"/\").filter((p) => !!p);\n          var current = FS.root;\n          var current_path = \"/\";\n          for (var i = 0; i < parts.length; i++) {\n            var islast = i === parts.length - 1;\n            if (islast && opts.parent) {\n              break;\n            }\n            current = FS.lookupNode(current, parts[i]);\n            current_path = PATH.join2(current_path, parts[i]);\n            if (FS.isMountpoint(current)) {\n              if (!islast || islast && opts.follow_mount) {\n                current = current.mounted.root;\n              }\n            }\n            if (!islast || opts.follow) {\n              var count = 0;\n              while (FS.isLink(current.mode)) {\n                var link = FS.readlink(current_path);\n                current_path = PATH_FS.resolve(PATH.dirname(current_path), link);\n                var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 });\n                current = lookup.node;\n                if (count++ > 40) {\n                  throw new FS.ErrnoError(32);\n                }\n              }\n            }\n          }\n          return { path: current_path, node: current };\n        }, getPath: (node) => {\n          var path;\n          while (true) {\n            if (FS.isRoot(node)) {\n              var mount = node.mount.mountpoint;\n              if (!path)\n                return mount;\n              return mount[mount.length - 1] !== \"/\" ? mount + \"/\" + path : mount + path;\n            }\n            path = path ? node.name + \"/\" + path : node.name;\n            node = node.parent;\n          }\n        }, hashName: (parentid, name) => {\n          var hash = 0;\n          for (var i = 0; i < name.length; i++) {\n            hash = (hash << 5) - hash + name.charCodeAt(i) | 0;\n          }\n          return (parentid + hash >>> 0) % FS.nameTable.length;\n        }, hashAddNode: (node) => {\n          var hash = FS.hashName(node.parent.id, node.name);\n          node.name_next = FS.nameTable[hash];\n          FS.nameTable[hash] = node;\n        }, hashRemoveNode: (node) => {\n          var hash = FS.hashName(node.parent.id, node.name);\n          if (FS.nameTable[hash] === node) {\n            FS.nameTable[hash] = node.name_next;\n          } else {\n            var current = FS.nameTable[hash];\n            while (current) {\n              if (current.name_next === node) {\n                current.name_next = node.name_next;\n                break;\n              }\n              current = current.name_next;\n            }\n          }\n        }, lookupNode: (parent, name) => {\n          var errCode = FS.mayLookup(parent);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode, parent);\n          }\n          var hash = FS.hashName(parent.id, name);\n          for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n            var nodeName = node.name;\n            if (node.parent.id === parent.id && nodeName === name) {\n              return node;\n            }\n          }\n          return FS.lookup(parent, name);\n        }, createNode: (parent, name, mode, rdev) => {\n          var node = new FS.FSNode(parent, name, mode, rdev);\n          FS.hashAddNode(node);\n          return node;\n        }, destroyNode: (node) => {\n          FS.hashRemoveNode(node);\n        }, isRoot: (node) => {\n          return node === node.parent;\n        }, isMountpoint: (node) => {\n          return !!node.mounted;\n        }, isFile: (mode) => {\n          return (mode & 61440) === 32768;\n        }, isDir: (mode) => {\n          return (mode & 61440) === 16384;\n        }, isLink: (mode) => {\n          return (mode & 61440) === 40960;\n        }, isChrdev: (mode) => {\n          return (mode & 61440) === 8192;\n        }, isBlkdev: (mode) => {\n          return (mode & 61440) === 24576;\n        }, isFIFO: (mode) => {\n          return (mode & 61440) === 4096;\n        }, isSocket: (mode) => {\n          return (mode & 49152) === 49152;\n        }, flagModes: { \"r\": 0, \"r+\": 2, \"w\": 577, \"w+\": 578, \"a\": 1089, \"a+\": 1090 }, modeStringToFlags: (str) => {\n          var flags = FS.flagModes[str];\n          if (typeof flags == \"undefined\") {\n            throw new Error(\"Unknown file open mode: \" + str);\n          }\n          return flags;\n        }, flagsToPermissionString: (flag) => {\n          var perms = [\"r\", \"w\", \"rw\"][flag & 3];\n          if (flag & 512) {\n            perms += \"w\";\n          }\n          return perms;\n        }, nodePermissions: (node, perms) => {\n          if (FS.ignorePermissions) {\n            return 0;\n          }\n          if (perms.includes(\"r\") && !(node.mode & 292)) {\n            return 2;\n          } else if (perms.includes(\"w\") && !(node.mode & 146)) {\n            return 2;\n          } else if (perms.includes(\"x\") && !(node.mode & 73)) {\n            return 2;\n          }\n          return 0;\n        }, mayLookup: (dir) => {\n          var errCode = FS.nodePermissions(dir, \"x\");\n          if (errCode)\n            return errCode;\n          if (!dir.node_ops.lookup)\n            return 2;\n          return 0;\n        }, mayCreate: (dir, name) => {\n          try {\n            var node = FS.lookupNode(dir, name);\n            return 20;\n          } catch (e) {\n          }\n          return FS.nodePermissions(dir, \"wx\");\n        }, mayDelete: (dir, name, isdir) => {\n          var node;\n          try {\n            node = FS.lookupNode(dir, name);\n          } catch (e) {\n            return e.errno;\n          }\n          var errCode = FS.nodePermissions(dir, \"wx\");\n          if (errCode) {\n            return errCode;\n          }\n          if (isdir) {\n            if (!FS.isDir(node.mode)) {\n              return 54;\n            }\n            if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {\n              return 10;\n            }\n          } else {\n            if (FS.isDir(node.mode)) {\n              return 31;\n            }\n          }\n          return 0;\n        }, mayOpen: (node, flags) => {\n          if (!node) {\n            return 44;\n          }\n          if (FS.isLink(node.mode)) {\n            return 32;\n          } else if (FS.isDir(node.mode)) {\n            if (FS.flagsToPermissionString(flags) !== \"r\" || flags & 512) {\n              return 31;\n            }\n          }\n          return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n        }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => {\n          for (var fd = fd_start; fd <= fd_end; fd++) {\n            if (!FS.streams[fd]) {\n              return fd;\n            }\n          }\n          throw new FS.ErrnoError(33);\n        }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => {\n          if (!FS.FSStream) {\n            FS.FSStream = function() {\n              this.shared = {};\n            };\n            FS.FSStream.prototype = {};\n            Object.defineProperties(FS.FSStream.prototype, { object: { get: function() {\n              return this.node;\n            }, set: function(val) {\n              this.node = val;\n            } }, isRead: { get: function() {\n              return (this.flags & 2097155) !== 1;\n            } }, isWrite: { get: function() {\n              return (this.flags & 2097155) !== 0;\n            } }, isAppend: { get: function() {\n              return this.flags & 1024;\n            } }, flags: { get: function() {\n              return this.shared.flags;\n            }, set: function(val) {\n              this.shared.flags = val;\n            } }, position: { get: function() {\n              return this.shared.position;\n            }, set: function(val) {\n              this.shared.position = val;\n            } } });\n          }\n          stream = Object.assign(new FS.FSStream(), stream);\n          var fd = FS.nextfd(fd_start, fd_end);\n          stream.fd = fd;\n          FS.streams[fd] = stream;\n          return stream;\n        }, closeStream: (fd) => {\n          FS.streams[fd] = null;\n        }, chrdev_stream_ops: { open: (stream) => {\n          var device = FS.getDevice(stream.node.rdev);\n          stream.stream_ops = device.stream_ops;\n          if (stream.stream_ops.open) {\n            stream.stream_ops.open(stream);\n          }\n        }, llseek: () => {\n          throw new FS.ErrnoError(70);\n        } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => {\n          FS.devices[dev] = { stream_ops: ops };\n        }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => {\n          var mounts = [];\n          var check = [mount];\n          while (check.length) {\n            var m = check.pop();\n            mounts.push(m);\n            check.push.apply(check, m.mounts);\n          }\n          return mounts;\n        }, syncfs: (populate, callback) => {\n          if (typeof populate == \"function\") {\n            callback = populate;\n            populate = false;\n          }\n          FS.syncFSRequests++;\n          if (FS.syncFSRequests > 1) {\n            err(\"warning: \" + FS.syncFSRequests + \" FS.syncfs operations in flight at once, probably just doing extra work\");\n          }\n          var mounts = FS.getMounts(FS.root.mount);\n          var completed = 0;\n          function doCallback(errCode) {\n            FS.syncFSRequests--;\n            return callback(errCode);\n          }\n          function done(errCode) {\n            if (errCode) {\n              if (!done.errored) {\n                done.errored = true;\n                return doCallback(errCode);\n              }\n              return;\n            }\n            if (++completed >= mounts.length) {\n              doCallback(null);\n            }\n          }\n          mounts.forEach((mount) => {\n            if (!mount.type.syncfs) {\n              return done(null);\n            }\n            mount.type.syncfs(mount, populate, done);\n          });\n        }, mount: (type, opts, mountpoint) => {\n          var root = mountpoint === \"/\";\n          var pseudo = !mountpoint;\n          var node;\n          if (root && FS.root) {\n            throw new FS.ErrnoError(10);\n          } else if (!root && !pseudo) {\n            var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n            mountpoint = lookup.path;\n            node = lookup.node;\n            if (FS.isMountpoint(node)) {\n              throw new FS.ErrnoError(10);\n            }\n            if (!FS.isDir(node.mode)) {\n              throw new FS.ErrnoError(54);\n            }\n          }\n          var mount = { type, opts, mountpoint, mounts: [] };\n          var mountRoot = type.mount(mount);\n          mountRoot.mount = mount;\n          mount.root = mountRoot;\n          if (root) {\n            FS.root = mountRoot;\n          } else if (node) {\n            node.mounted = mount;\n            if (node.mount) {\n              node.mount.mounts.push(mount);\n            }\n          }\n          return mountRoot;\n        }, unmount: (mountpoint) => {\n          var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n          if (!FS.isMountpoint(lookup.node)) {\n            throw new FS.ErrnoError(28);\n          }\n          var node = lookup.node;\n          var mount = node.mounted;\n          var mounts = FS.getMounts(mount);\n          Object.keys(FS.nameTable).forEach((hash) => {\n            var current = FS.nameTable[hash];\n            while (current) {\n              var next = current.name_next;\n              if (mounts.includes(current.mount)) {\n                FS.destroyNode(current);\n              }\n              current = next;\n            }\n          });\n          node.mounted = null;\n          var idx = node.mount.mounts.indexOf(mount);\n          node.mount.mounts.splice(idx, 1);\n        }, lookup: (parent, name) => {\n          return parent.node_ops.lookup(parent, name);\n        }, mknod: (path, mode, dev) => {\n          var lookup = FS.lookupPath(path, { parent: true });\n          var parent = lookup.node;\n          var name = PATH.basename(path);\n          if (!name || name === \".\" || name === \"..\") {\n            throw new FS.ErrnoError(28);\n          }\n          var errCode = FS.mayCreate(parent, name);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!parent.node_ops.mknod) {\n            throw new FS.ErrnoError(63);\n          }\n          return parent.node_ops.mknod(parent, name, mode, dev);\n        }, create: (path, mode) => {\n          mode = mode !== void 0 ? mode : 438;\n          mode &= 4095;\n          mode |= 32768;\n          return FS.mknod(path, mode, 0);\n        }, mkdir: (path, mode) => {\n          mode = mode !== void 0 ? mode : 511;\n          mode &= 511 | 512;\n          mode |= 16384;\n          return FS.mknod(path, mode, 0);\n        }, mkdirTree: (path, mode) => {\n          var dirs = path.split(\"/\");\n          var d = \"\";\n          for (var i = 0; i < dirs.length; ++i) {\n            if (!dirs[i])\n              continue;\n            d += \"/\" + dirs[i];\n            try {\n              FS.mkdir(d, mode);\n            } catch (e) {\n              if (e.errno != 20)\n                throw e;\n            }\n          }\n        }, mkdev: (path, mode, dev) => {\n          if (typeof dev == \"undefined\") {\n            dev = mode;\n            mode = 438;\n          }\n          mode |= 8192;\n          return FS.mknod(path, mode, dev);\n        }, symlink: (oldpath, newpath) => {\n          if (!PATH_FS.resolve(oldpath)) {\n            throw new FS.ErrnoError(44);\n          }\n          var lookup = FS.lookupPath(newpath, { parent: true });\n          var parent = lookup.node;\n          if (!parent) {\n            throw new FS.ErrnoError(44);\n          }\n          var newname = PATH.basename(newpath);\n          var errCode = FS.mayCreate(parent, newname);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!parent.node_ops.symlink) {\n            throw new FS.ErrnoError(63);\n          }\n          return parent.node_ops.symlink(parent, newname, oldpath);\n        }, rename: (old_path, new_path) => {\n          var old_dirname = PATH.dirname(old_path);\n          var new_dirname = PATH.dirname(new_path);\n          var old_name = PATH.basename(old_path);\n          var new_name = PATH.basename(new_path);\n          var lookup, old_dir, new_dir;\n          lookup = FS.lookupPath(old_path, { parent: true });\n          old_dir = lookup.node;\n          lookup = FS.lookupPath(new_path, { parent: true });\n          new_dir = lookup.node;\n          if (!old_dir || !new_dir)\n            throw new FS.ErrnoError(44);\n          if (old_dir.mount !== new_dir.mount) {\n            throw new FS.ErrnoError(75);\n          }\n          var old_node = FS.lookupNode(old_dir, old_name);\n          var relative = PATH_FS.relative(old_path, new_dirname);\n          if (relative.charAt(0) !== \".\") {\n            throw new FS.ErrnoError(28);\n          }\n          relative = PATH_FS.relative(new_path, old_dirname);\n          if (relative.charAt(0) !== \".\") {\n            throw new FS.ErrnoError(55);\n          }\n          var new_node;\n          try {\n            new_node = FS.lookupNode(new_dir, new_name);\n          } catch (e) {\n          }\n          if (old_node === new_node) {\n            return;\n          }\n          var isdir = FS.isDir(old_node.mode);\n          var errCode = FS.mayDelete(old_dir, old_name, isdir);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!old_dir.node_ops.rename) {\n            throw new FS.ErrnoError(63);\n          }\n          if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {\n            throw new FS.ErrnoError(10);\n          }\n          if (new_dir !== old_dir) {\n            errCode = FS.nodePermissions(old_dir, \"w\");\n            if (errCode) {\n              throw new FS.ErrnoError(errCode);\n            }\n          }\n          FS.hashRemoveNode(old_node);\n          try {\n            old_dir.node_ops.rename(old_node, new_dir, new_name);\n          } catch (e) {\n            throw e;\n          } finally {\n            FS.hashAddNode(old_node);\n          }\n        }, rmdir: (path) => {\n          var lookup = FS.lookupPath(path, { parent: true });\n          var parent = lookup.node;\n          var name = PATH.basename(path);\n          var node = FS.lookupNode(parent, name);\n          var errCode = FS.mayDelete(parent, name, true);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!parent.node_ops.rmdir) {\n            throw new FS.ErrnoError(63);\n          }\n          if (FS.isMountpoint(node)) {\n            throw new FS.ErrnoError(10);\n          }\n          parent.node_ops.rmdir(parent, name);\n          FS.destroyNode(node);\n        }, readdir: (path) => {\n          var lookup = FS.lookupPath(path, { follow: true });\n          var node = lookup.node;\n          if (!node.node_ops.readdir) {\n            throw new FS.ErrnoError(54);\n          }\n          return node.node_ops.readdir(node);\n        }, unlink: (path) => {\n          var lookup = FS.lookupPath(path, { parent: true });\n          var parent = lookup.node;\n          if (!parent) {\n            throw new FS.ErrnoError(44);\n          }\n          var name = PATH.basename(path);\n          var node = FS.lookupNode(parent, name);\n          var errCode = FS.mayDelete(parent, name, false);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!parent.node_ops.unlink) {\n            throw new FS.ErrnoError(63);\n          }\n          if (FS.isMountpoint(node)) {\n            throw new FS.ErrnoError(10);\n          }\n          parent.node_ops.unlink(parent, name);\n          FS.destroyNode(node);\n        }, readlink: (path) => {\n          var lookup = FS.lookupPath(path);\n          var link = lookup.node;\n          if (!link) {\n            throw new FS.ErrnoError(44);\n          }\n          if (!link.node_ops.readlink) {\n            throw new FS.ErrnoError(28);\n          }\n          return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n        }, stat: (path, dontFollow) => {\n          var lookup = FS.lookupPath(path, { follow: !dontFollow });\n          var node = lookup.node;\n          if (!node) {\n            throw new FS.ErrnoError(44);\n          }\n          if (!node.node_ops.getattr) {\n            throw new FS.ErrnoError(63);\n          }\n          return node.node_ops.getattr(node);\n        }, lstat: (path) => {\n          return FS.stat(path, true);\n        }, chmod: (path, mode, dontFollow) => {\n          var node;\n          if (typeof path == \"string\") {\n            var lookup = FS.lookupPath(path, { follow: !dontFollow });\n            node = lookup.node;\n          } else {\n            node = path;\n          }\n          if (!node.node_ops.setattr) {\n            throw new FS.ErrnoError(63);\n          }\n          node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });\n        }, lchmod: (path, mode) => {\n          FS.chmod(path, mode, true);\n        }, fchmod: (fd, mode) => {\n          var stream = FS.getStream(fd);\n          if (!stream) {\n            throw new FS.ErrnoError(8);\n          }\n          FS.chmod(stream.node, mode);\n        }, chown: (path, uid, gid, dontFollow) => {\n          var node;\n          if (typeof path == \"string\") {\n            var lookup = FS.lookupPath(path, { follow: !dontFollow });\n            node = lookup.node;\n          } else {\n            node = path;\n          }\n          if (!node.node_ops.setattr) {\n            throw new FS.ErrnoError(63);\n          }\n          node.node_ops.setattr(node, { timestamp: Date.now() });\n        }, lchown: (path, uid, gid) => {\n          FS.chown(path, uid, gid, true);\n        }, fchown: (fd, uid, gid) => {\n          var stream = FS.getStream(fd);\n          if (!stream) {\n            throw new FS.ErrnoError(8);\n          }\n          FS.chown(stream.node, uid, gid);\n        }, truncate: (path, len) => {\n          if (len < 0) {\n            throw new FS.ErrnoError(28);\n          }\n          var node;\n          if (typeof path == \"string\") {\n            var lookup = FS.lookupPath(path, { follow: true });\n            node = lookup.node;\n          } else {\n            node = path;\n          }\n          if (!node.node_ops.setattr) {\n            throw new FS.ErrnoError(63);\n          }\n          if (FS.isDir(node.mode)) {\n            throw new FS.ErrnoError(31);\n          }\n          if (!FS.isFile(node.mode)) {\n            throw new FS.ErrnoError(28);\n          }\n          var errCode = FS.nodePermissions(node, \"w\");\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          node.node_ops.setattr(node, { size: len, timestamp: Date.now() });\n        }, ftruncate: (fd, len) => {\n          var stream = FS.getStream(fd);\n          if (!stream) {\n            throw new FS.ErrnoError(8);\n          }\n          if ((stream.flags & 2097155) === 0) {\n            throw new FS.ErrnoError(28);\n          }\n          FS.truncate(stream.node, len);\n        }, utime: (path, atime, mtime) => {\n          var lookup = FS.lookupPath(path, { follow: true });\n          var node = lookup.node;\n          node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });\n        }, open: (path, flags, mode) => {\n          if (path === \"\") {\n            throw new FS.ErrnoError(44);\n          }\n          flags = typeof flags == \"string\" ? FS.modeStringToFlags(flags) : flags;\n          mode = typeof mode == \"undefined\" ? 438 : mode;\n          if (flags & 64) {\n            mode = mode & 4095 | 32768;\n          } else {\n            mode = 0;\n          }\n          var node;\n          if (typeof path == \"object\") {\n            node = path;\n          } else {\n            path = PATH.normalize(path);\n            try {\n              var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });\n              node = lookup.node;\n            } catch (e) {\n            }\n          }\n          var created = false;\n          if (flags & 64) {\n            if (node) {\n              if (flags & 128) {\n                throw new FS.ErrnoError(20);\n              }\n            } else {\n              node = FS.mknod(path, mode, 0);\n              created = true;\n            }\n          }\n          if (!node) {\n            throw new FS.ErrnoError(44);\n          }\n          if (FS.isChrdev(node.mode)) {\n            flags &= ~512;\n          }\n          if (flags & 65536 && !FS.isDir(node.mode)) {\n            throw new FS.ErrnoError(54);\n          }\n          if (!created) {\n            var errCode = FS.mayOpen(node, flags);\n            if (errCode) {\n              throw new FS.ErrnoError(errCode);\n            }\n          }\n          if (flags & 512 && !created) {\n            FS.truncate(node, 0);\n          }\n          flags &= ~(128 | 512 | 131072);\n          var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false });\n          if (stream.stream_ops.open) {\n            stream.stream_ops.open(stream);\n          }\n          if (Module[\"logReadFiles\"] && !(flags & 1)) {\n            if (!FS.readFiles)\n              FS.readFiles = {};\n            if (!(path in FS.readFiles)) {\n              FS.readFiles[path] = 1;\n            }\n          }\n          return stream;\n        }, close: (stream) => {\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if (stream.getdents)\n            stream.getdents = null;\n          try {\n            if (stream.stream_ops.close) {\n              stream.stream_ops.close(stream);\n            }\n          } catch (e) {\n            throw e;\n          } finally {\n            FS.closeStream(stream.fd);\n          }\n          stream.fd = null;\n        }, isClosed: (stream) => {\n          return stream.fd === null;\n        }, llseek: (stream, offset, whence) => {\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if (!stream.seekable || !stream.stream_ops.llseek) {\n            throw new FS.ErrnoError(70);\n          }\n          if (whence != 0 && whence != 1 && whence != 2) {\n            throw new FS.ErrnoError(28);\n          }\n          stream.position = stream.stream_ops.llseek(stream, offset, whence);\n          stream.ungotten = [];\n          return stream.position;\n        }, read: (stream, buffer, offset, length, position) => {\n          offset >>>= 0;\n          if (length < 0 || position < 0) {\n            throw new FS.ErrnoError(28);\n          }\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if ((stream.flags & 2097155) === 1) {\n            throw new FS.ErrnoError(8);\n          }\n          if (FS.isDir(stream.node.mode)) {\n            throw new FS.ErrnoError(31);\n          }\n          if (!stream.stream_ops.read) {\n            throw new FS.ErrnoError(28);\n          }\n          var seeking = typeof position != \"undefined\";\n          if (!seeking) {\n            position = stream.position;\n          } else if (!stream.seekable) {\n            throw new FS.ErrnoError(70);\n          }\n          var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n          if (!seeking)\n            stream.position += bytesRead;\n          return bytesRead;\n        }, write: (stream, buffer, offset, length, position, canOwn) => {\n          offset >>>= 0;\n          if (length < 0 || position < 0) {\n            throw new FS.ErrnoError(28);\n          }\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if ((stream.flags & 2097155) === 0) {\n            throw new FS.ErrnoError(8);\n          }\n          if (FS.isDir(stream.node.mode)) {\n            throw new FS.ErrnoError(31);\n          }\n          if (!stream.stream_ops.write) {\n            throw new FS.ErrnoError(28);\n          }\n          if (stream.seekable && stream.flags & 1024) {\n            FS.llseek(stream, 0, 2);\n          }\n          var seeking = typeof position != \"undefined\";\n          if (!seeking) {\n            position = stream.position;\n          } else if (!stream.seekable) {\n            throw new FS.ErrnoError(70);\n          }\n          var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n          if (!seeking)\n            stream.position += bytesWritten;\n          return bytesWritten;\n        }, allocate: (stream, offset, length) => {\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if (offset < 0 || length <= 0) {\n            throw new FS.ErrnoError(28);\n          }\n          if ((stream.flags & 2097155) === 0) {\n            throw new FS.ErrnoError(8);\n          }\n          if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {\n            throw new FS.ErrnoError(43);\n          }\n          if (!stream.stream_ops.allocate) {\n            throw new FS.ErrnoError(138);\n          }\n          stream.stream_ops.allocate(stream, offset, length);\n        }, mmap: (stream, length, position, prot, flags) => {\n          if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {\n            throw new FS.ErrnoError(2);\n          }\n          if ((stream.flags & 2097155) === 1) {\n            throw new FS.ErrnoError(2);\n          }\n          if (!stream.stream_ops.mmap) {\n            throw new FS.ErrnoError(43);\n          }\n          return stream.stream_ops.mmap(stream, length, position, prot, flags);\n        }, msync: (stream, buffer, offset, length, mmapFlags) => {\n          offset >>>= 0;\n          if (!stream.stream_ops.msync) {\n            return 0;\n          }\n          return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n        }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => {\n          if (!stream.stream_ops.ioctl) {\n            throw new FS.ErrnoError(59);\n          }\n          return stream.stream_ops.ioctl(stream, cmd, arg);\n        }, readFile: (path, opts = {}) => {\n          opts.flags = opts.flags || 0;\n          opts.encoding = opts.encoding || \"binary\";\n          if (opts.encoding !== \"utf8\" && opts.encoding !== \"binary\") {\n            throw new Error('Invalid encoding type \"' + opts.encoding + '\"');\n          }\n          var ret;\n          var stream = FS.open(path, opts.flags);\n          var stat = FS.stat(path);\n          var length = stat.size;\n          var buf = new Uint8Array(length);\n          FS.read(stream, buf, 0, length, 0);\n          if (opts.encoding === \"utf8\") {\n            ret = UTF8ArrayToString(buf, 0);\n          } else if (opts.encoding === \"binary\") {\n            ret = buf;\n          }\n          FS.close(stream);\n          return ret;\n        }, writeFile: (path, data, opts = {}) => {\n          opts.flags = opts.flags || 577;\n          var stream = FS.open(path, opts.flags, opts.mode);\n          if (typeof data == \"string\") {\n            var buf = new Uint8Array(lengthBytesUTF8(data) + 1);\n            var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n            FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);\n          } else if (ArrayBuffer.isView(data)) {\n            FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);\n          } else {\n            throw new Error(\"Unsupported data type\");\n          }\n          FS.close(stream);\n        }, cwd: () => FS.currentPath, chdir: (path) => {\n          var lookup = FS.lookupPath(path, { follow: true });\n          if (lookup.node === null) {\n            throw new FS.ErrnoError(44);\n          }\n          if (!FS.isDir(lookup.node.mode)) {\n            throw new FS.ErrnoError(54);\n          }\n          var errCode = FS.nodePermissions(lookup.node, \"x\");\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          FS.currentPath = lookup.path;\n        }, createDefaultDirectories: () => {\n          FS.mkdir(\"/tmp\");\n          FS.mkdir(\"/home\");\n          FS.mkdir(\"/home/web_user\");\n        }, createDefaultDevices: () => {\n          FS.mkdir(\"/dev\");\n          FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });\n          FS.mkdev(\"/dev/null\", FS.makedev(1, 3));\n          TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n          TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n          FS.mkdev(\"/dev/tty\", FS.makedev(5, 0));\n          FS.mkdev(\"/dev/tty1\", FS.makedev(6, 0));\n          var random_device = getRandomDevice();\n          FS.createDevice(\"/dev\", \"random\", random_device);\n          FS.createDevice(\"/dev\", \"urandom\", random_device);\n          FS.mkdir(\"/dev/shm\");\n          FS.mkdir(\"/dev/shm/tmp\");\n        }, createSpecialDirectories: () => {\n          FS.mkdir(\"/proc\");\n          var proc_self = FS.mkdir(\"/proc/self\");\n          FS.mkdir(\"/proc/self/fd\");\n          FS.mount({ mount: () => {\n            var node = FS.createNode(proc_self, \"fd\", 16384 | 511, 73);\n            node.node_ops = { lookup: (parent, name) => {\n              var fd = +name;\n              var stream = FS.getStream(fd);\n              if (!stream)\n                throw new FS.ErrnoError(8);\n              var ret = { parent: null, mount: { mountpoint: \"fake\" }, node_ops: { readlink: () => stream.path } };\n              ret.parent = ret;\n              return ret;\n            } };\n            return node;\n          } }, {}, \"/proc/self/fd\");\n        }, createStandardStreams: () => {\n          if (Module[\"stdin\"]) {\n            FS.createDevice(\"/dev\", \"stdin\", Module[\"stdin\"]);\n          } else {\n            FS.symlink(\"/dev/tty\", \"/dev/stdin\");\n          }\n          if (Module[\"stdout\"]) {\n            FS.createDevice(\"/dev\", \"stdout\", null, Module[\"stdout\"]);\n          } else {\n            FS.symlink(\"/dev/tty\", \"/dev/stdout\");\n          }\n          if (Module[\"stderr\"]) {\n            FS.createDevice(\"/dev\", \"stderr\", null, Module[\"stderr\"]);\n          } else {\n            FS.symlink(\"/dev/tty1\", \"/dev/stderr\");\n          }\n          FS.open(\"/dev/stdin\", 0);\n          FS.open(\"/dev/stdout\", 1);\n          FS.open(\"/dev/stderr\", 1);\n        }, ensureErrnoError: () => {\n          if (FS.ErrnoError)\n            return;\n          FS.ErrnoError = function ErrnoError(errno, node) {\n            this.node = node;\n            this.setErrno = function(errno2) {\n              this.errno = errno2;\n            };\n            this.setErrno(errno);\n            this.message = \"FS error\";\n          };\n          FS.ErrnoError.prototype = new Error();\n          FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n          [44].forEach((code) => {\n            FS.genericErrors[code] = new FS.ErrnoError(code);\n            FS.genericErrors[code].stack = \"<generic error, no stack>\";\n          });\n        }, staticInit: () => {\n          FS.ensureErrnoError();\n          FS.nameTable = new Array(4096);\n          FS.mount(MEMFS, {}, \"/\");\n          FS.createDefaultDirectories();\n          FS.createDefaultDevices();\n          FS.createSpecialDirectories();\n          FS.filesystems = { \"MEMFS\": MEMFS };\n        }, init: (input, output, error) => {\n          FS.init.initialized = true;\n          FS.ensureErrnoError();\n          Module[\"stdin\"] = input || Module[\"stdin\"];\n          Module[\"stdout\"] = output || Module[\"stdout\"];\n          Module[\"stderr\"] = error || Module[\"stderr\"];\n          FS.createStandardStreams();\n        }, quit: () => {\n          FS.init.initialized = false;\n          for (var i = 0; i < FS.streams.length; i++) {\n            var stream = FS.streams[i];\n            if (!stream) {\n              continue;\n            }\n            FS.close(stream);\n          }\n        }, getMode: (canRead, canWrite) => {\n          var mode = 0;\n          if (canRead)\n            mode |= 292 | 73;\n          if (canWrite)\n            mode |= 146;\n          return mode;\n        }, findObject: (path, dontResolveLastLink) => {\n          var ret = FS.analyzePath(path, dontResolveLastLink);\n          if (!ret.exists) {\n            return null;\n          }\n          return ret.object;\n        }, analyzePath: (path, dontResolveLastLink) => {\n          try {\n            var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n            path = lookup.path;\n          } catch (e) {\n          }\n          var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null };\n          try {\n            var lookup = FS.lookupPath(path, { parent: true });\n            ret.parentExists = true;\n            ret.parentPath = lookup.path;\n            ret.parentObject = lookup.node;\n            ret.name = PATH.basename(path);\n            lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n            ret.exists = true;\n            ret.path = lookup.path;\n            ret.object = lookup.node;\n            ret.name = lookup.node.name;\n            ret.isRoot = lookup.path === \"/\";\n          } catch (e) {\n            ret.error = e.errno;\n          }\n          return ret;\n        }, createPath: (parent, path, canRead, canWrite) => {\n          parent = typeof parent == \"string\" ? parent : FS.getPath(parent);\n          var parts = path.split(\"/\").reverse();\n          while (parts.length) {\n            var part = parts.pop();\n            if (!part)\n              continue;\n            var current = PATH.join2(parent, part);\n            try {\n              FS.mkdir(current);\n            } catch (e) {\n            }\n            parent = current;\n          }\n          return current;\n        }, createFile: (parent, name, properties, canRead, canWrite) => {\n          var path = PATH.join2(typeof parent == \"string\" ? parent : FS.getPath(parent), name);\n          var mode = FS.getMode(canRead, canWrite);\n          return FS.create(path, mode);\n        }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => {\n          var path = name;\n          if (parent) {\n            parent = typeof parent == \"string\" ? parent : FS.getPath(parent);\n            path = name ? PATH.join2(parent, name) : parent;\n          }\n          var mode = FS.getMode(canRead, canWrite);\n          var node = FS.create(path, mode);\n          if (data) {\n            if (typeof data == \"string\") {\n              var arr = new Array(data.length);\n              for (var i = 0, len = data.length; i < len; ++i)\n                arr[i] = data.charCodeAt(i);\n              data = arr;\n            }\n            FS.chmod(node, mode | 146);\n            var stream = FS.open(node, 577);\n            FS.write(stream, data, 0, data.length, 0, canOwn);\n            FS.close(stream);\n            FS.chmod(node, mode);\n          }\n          return node;\n        }, createDevice: (parent, name, input, output) => {\n          var path = PATH.join2(typeof parent == \"string\" ? parent : FS.getPath(parent), name);\n          var mode = FS.getMode(!!input, !!output);\n          if (!FS.createDevice.major)\n            FS.createDevice.major = 64;\n          var dev = FS.makedev(FS.createDevice.major++, 0);\n          FS.registerDevice(dev, { open: (stream) => {\n            stream.seekable = false;\n          }, close: (stream) => {\n            if (output && output.buffer && output.buffer.length) {\n              output(10);\n            }\n          }, read: (stream, buffer, offset, length, pos) => {\n            var bytesRead = 0;\n            for (var i = 0; i < length; i++) {\n              var result;\n              try {\n                result = input();\n              } catch (e) {\n                throw new FS.ErrnoError(29);\n              }\n              if (result === void 0 && bytesRead === 0) {\n                throw new FS.ErrnoError(6);\n              }\n              if (result === null || result === void 0)\n                break;\n              bytesRead++;\n              buffer[offset + i] = result;\n            }\n            if (bytesRead) {\n              stream.node.timestamp = Date.now();\n            }\n            return bytesRead;\n          }, write: (stream, buffer, offset, length, pos) => {\n            for (var i = 0; i < length; i++) {\n              try {\n                output(buffer[offset + i]);\n              } catch (e) {\n                throw new FS.ErrnoError(29);\n              }\n            }\n            if (length) {\n              stream.node.timestamp = Date.now();\n            }\n            return i;\n          } });\n          return FS.mkdev(path, mode, dev);\n        }, forceLoadFile: (obj) => {\n          if (obj.isDevice || obj.isFolder || obj.link || obj.contents)\n            return true;\n          if (typeof XMLHttpRequest != \"undefined\") {\n            throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\");\n          } else if (read_) {\n            try {\n              obj.contents = intArrayFromString(read_(obj.url), true);\n              obj.usedBytes = obj.contents.length;\n            } catch (e) {\n              throw new FS.ErrnoError(29);\n            }\n          } else {\n            throw new Error(\"Cannot load without read() or XMLHttpRequest.\");\n          }\n        }, createLazyFile: (parent, name, url, canRead, canWrite) => {\n          function LazyUint8Array() {\n            this.lengthKnown = false;\n            this.chunks = [];\n          }\n          LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n            if (idx > this.length - 1 || idx < 0) {\n              return void 0;\n            }\n            var chunkOffset = idx % this.chunkSize;\n            var chunkNum = idx / this.chunkSize | 0;\n            return this.getter(chunkNum)[chunkOffset];\n          };\n          LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {\n            this.getter = getter;\n          };\n          LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n            var xhr = new XMLHttpRequest();\n            xhr.open(\"HEAD\", url, false);\n            xhr.send(null);\n            if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304))\n              throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n            var datalength = Number(xhr.getResponseHeader(\"Content-length\"));\n            var header;\n            var hasByteServing = (header = xhr.getResponseHeader(\"Accept-Ranges\")) && header === \"bytes\";\n            var usesGzip = (header = xhr.getResponseHeader(\"Content-Encoding\")) && header === \"gzip\";\n            var chunkSize = 1024 * 1024;\n            if (!hasByteServing)\n              chunkSize = datalength;\n            var doXHR = (from, to) => {\n              if (from > to)\n                throw new Error(\"invalid range (\" + from + \", \" + to + \") or no bytes requested!\");\n              if (to > datalength - 1)\n                throw new Error(\"only \" + datalength + \" bytes available! programmer error!\");\n              var xhr2 = new XMLHttpRequest();\n              xhr2.open(\"GET\", url, false);\n              if (datalength !== chunkSize)\n                xhr2.setRequestHeader(\"Range\", \"bytes=\" + from + \"-\" + to);\n              xhr2.responseType = \"arraybuffer\";\n              if (xhr2.overrideMimeType) {\n                xhr2.overrideMimeType(\"text/plain; charset=x-user-defined\");\n              }\n              xhr2.send(null);\n              if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304))\n                throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr2.status);\n              if (xhr2.response !== void 0) {\n                return new Uint8Array(xhr2.response || []);\n              }\n              return intArrayFromString(xhr2.responseText || \"\", true);\n            };\n            var lazyArray2 = this;\n            lazyArray2.setDataGetter((chunkNum) => {\n              var start = chunkNum * chunkSize;\n              var end = (chunkNum + 1) * chunkSize - 1;\n              end = Math.min(end, datalength - 1);\n              if (typeof lazyArray2.chunks[chunkNum] == \"undefined\") {\n                lazyArray2.chunks[chunkNum] = doXHR(start, end);\n              }\n              if (typeof lazyArray2.chunks[chunkNum] == \"undefined\")\n                throw new Error(\"doXHR failed!\");\n              return lazyArray2.chunks[chunkNum];\n            });\n            if (usesGzip || !datalength) {\n              chunkSize = datalength = 1;\n              datalength = this.getter(0).length;\n              chunkSize = datalength;\n              out(\"LazyFiles on gzip forces download of the whole file when length is accessed\");\n            }\n            this._length = datalength;\n            this._chunkSize = chunkSize;\n            this.lengthKnown = true;\n          };\n          if (typeof XMLHttpRequest != \"undefined\") {\n            if (!ENVIRONMENT_IS_WORKER)\n              throw \"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";\n            var lazyArray = new LazyUint8Array();\n            Object.defineProperties(lazyArray, { length: { get: function() {\n              if (!this.lengthKnown) {\n                this.cacheLength();\n              }\n              return this._length;\n            } }, chunkSize: { get: function() {\n              if (!this.lengthKnown) {\n                this.cacheLength();\n              }\n              return this._chunkSize;\n            } } });\n            var properties = { isDevice: false, contents: lazyArray };\n          } else {\n            var properties = { isDevice: false, url };\n          }\n          var node = FS.createFile(parent, name, properties, canRead, canWrite);\n          if (properties.contents) {\n            node.contents = properties.contents;\n          } else if (properties.url) {\n            node.contents = null;\n            node.url = properties.url;\n          }\n          Object.defineProperties(node, { usedBytes: { get: function() {\n            return this.contents.length;\n          } } });\n          var stream_ops = {};\n          var keys = Object.keys(node.stream_ops);\n          keys.forEach((key) => {\n            var fn = node.stream_ops[key];\n            stream_ops[key] = function forceLoadLazyFile() {\n              FS.forceLoadFile(node);\n              return fn.apply(null, arguments);\n            };\n          });\n          function writeChunks(stream, buffer, offset, length, position) {\n            var contents = stream.node.contents;\n            if (position >= contents.length)\n              return 0;\n            var size = Math.min(contents.length - position, length);\n            if (contents.slice) {\n              for (var i = 0; i < size; i++) {\n                buffer[offset + i] = contents[position + i];\n              }\n            } else {\n              for (var i = 0; i < size; i++) {\n                buffer[offset + i] = contents.get(position + i);\n              }\n            }\n            return size;\n          }\n          stream_ops.read = (stream, buffer, offset, length, position) => {\n            FS.forceLoadFile(node);\n            return writeChunks(stream, buffer, offset, length, position);\n          };\n          stream_ops.mmap = (stream, length, position, prot, flags) => {\n            FS.forceLoadFile(node);\n            var ptr = mmapAlloc();\n            if (!ptr) {\n              throw new FS.ErrnoError(48);\n            }\n            writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position);\n            return { ptr, allocated: true };\n          };\n          node.stream_ops = stream_ops;\n          return node;\n        }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => {\n          var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;\n          function processData(byteArray) {\n            function finish(byteArray2) {\n              if (preFinish)\n                preFinish();\n              if (!dontCreateFile) {\n                FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn);\n              }\n              if (onload)\n                onload();\n              removeRunDependency();\n            }\n            if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => {\n              if (onerror)\n                onerror();\n              removeRunDependency();\n            })) {\n              return;\n            }\n            finish(byteArray);\n          }\n          addRunDependency();\n          if (typeof url == \"string\") {\n            asyncLoad(url, (byteArray) => processData(byteArray), onerror);\n          } else {\n            processData(url);\n          }\n        }, indexedDB: () => {\n          return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n        }, DB_NAME: () => {\n          return \"EM_FS_\" + window.location.pathname;\n        }, DB_VERSION: 20, DB_STORE_NAME: \"FILE_DATA\", saveFilesToDB: (paths, onload = () => {\n        }, onerror = () => {\n        }) => {\n          var indexedDB = FS.indexedDB();\n          try {\n            var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n          } catch (e) {\n            return onerror(e);\n          }\n          openRequest.onupgradeneeded = () => {\n            out(\"creating db\");\n            var db = openRequest.result;\n            db.createObjectStore(FS.DB_STORE_NAME);\n          };\n          openRequest.onsuccess = () => {\n            var db = openRequest.result;\n            var transaction = db.transaction([FS.DB_STORE_NAME], \"readwrite\");\n            var files = transaction.objectStore(FS.DB_STORE_NAME);\n            var ok = 0, fail = 0, total = paths.length;\n            function finish() {\n              if (fail == 0)\n                onload();\n              else\n                onerror();\n            }\n            paths.forEach((path) => {\n              var putRequest = files.put(FS.analyzePath(path).object.contents, path);\n              putRequest.onsuccess = () => {\n                ok++;\n                if (ok + fail == total)\n                  finish();\n              };\n              putRequest.onerror = () => {\n                fail++;\n                if (ok + fail == total)\n                  finish();\n              };\n            });\n            transaction.onerror = onerror;\n          };\n          openRequest.onerror = onerror;\n        }, loadFilesFromDB: (paths, onload = () => {\n        }, onerror = () => {\n        }) => {\n          var indexedDB = FS.indexedDB();\n          try {\n            var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n          } catch (e) {\n            return onerror(e);\n          }\n          openRequest.onupgradeneeded = onerror;\n          openRequest.onsuccess = () => {\n            var db = openRequest.result;\n            try {\n              var transaction = db.transaction([FS.DB_STORE_NAME], \"readonly\");\n            } catch (e) {\n              onerror(e);\n              return;\n            }\n            var files = transaction.objectStore(FS.DB_STORE_NAME);\n            var ok = 0, fail = 0, total = paths.length;\n            function finish() {\n              if (fail == 0)\n                onload();\n              else\n                onerror();\n            }\n            paths.forEach((path) => {\n              var getRequest = files.get(path);\n              getRequest.onsuccess = () => {\n                if (FS.analyzePath(path).exists) {\n                  FS.unlink(path);\n                }\n                FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);\n                ok++;\n                if (ok + fail == total)\n                  finish();\n              };\n              getRequest.onerror = () => {\n                fail++;\n                if (ok + fail == total)\n                  finish();\n              };\n            });\n            transaction.onerror = onerror;\n          };\n          openRequest.onerror = onerror;\n        } };\n        var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) {\n          if (PATH.isAbs(path)) {\n            return path;\n          }\n          var dir;\n          if (dirfd === -100) {\n            dir = FS.cwd();\n          } else {\n            var dirstream = SYSCALLS.getStreamFromFD(dirfd);\n            dir = dirstream.path;\n          }\n          if (path.length == 0) {\n            if (!allowEmpty) {\n              throw new FS.ErrnoError(44);\n            }\n            return dir;\n          }\n          return PATH.join2(dir, path);\n        }, doStat: function(func, path, buf) {\n          try {\n            var stat = func(path);\n          } catch (e) {\n            if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {\n              return -54;\n            }\n            throw e;\n          }\n          GROWABLE_HEAP_I32()[buf >>> 2] = stat.dev;\n          GROWABLE_HEAP_I32()[buf + 8 >>> 2] = stat.ino;\n          GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.mode;\n          GROWABLE_HEAP_U32()[buf + 16 >>> 2] = stat.nlink;\n          GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.uid;\n          GROWABLE_HEAP_I32()[buf + 24 >>> 2] = stat.gid;\n          GROWABLE_HEAP_I32()[buf + 28 >>> 2] = stat.rdev;\n          tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1];\n          GROWABLE_HEAP_I32()[buf + 48 >>> 2] = 4096;\n          GROWABLE_HEAP_I32()[buf + 52 >>> 2] = stat.blocks;\n          var atime = stat.atime.getTime();\n          var mtime = stat.mtime.getTime();\n          var ctime = stat.ctime.getTime();\n          tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1];\n          GROWABLE_HEAP_U32()[buf + 64 >>> 2] = atime % 1e3 * 1e3;\n          tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1];\n          GROWABLE_HEAP_U32()[buf + 80 >>> 2] = mtime % 1e3 * 1e3;\n          tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1];\n          GROWABLE_HEAP_U32()[buf + 96 >>> 2] = ctime % 1e3 * 1e3;\n          tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 104 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 108 >>> 2] = tempI64[1];\n          return 0;\n        }, doMsync: function(addr, stream, len, flags, offset) {\n          if (!FS.isFile(stream.node.mode)) {\n            throw new FS.ErrnoError(43);\n          }\n          if (flags & 2) {\n            return 0;\n          }\n          addr >>>= 0;\n          var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len);\n          FS.msync(stream, buffer, offset, len, flags);\n        }, varargs: void 0, get: function() {\n          SYSCALLS.varargs += 4;\n          var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >>> 2];\n          return ret;\n        }, getStr: function(ptr) {\n          var ret = UTF8ToString(ptr);\n          return ret;\n        }, getStreamFromFD: function(fd) {\n          var stream = FS.getStream(fd);\n          if (!stream)\n            throw new FS.ErrnoError(8);\n          return stream;\n        } };\n        function _proc_exit(code) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(1, 1, code);\n          EXITSTATUS = code;\n          if (!keepRuntimeAlive()) {\n            PThread.terminateAllThreads();\n            if (Module[\"onExit\"])\n              Module[\"onExit\"](code);\n            ABORT = true;\n          }\n          quit_(code, new ExitStatus(code));\n        }\n        function exitJS(status, implicit) {\n          EXITSTATUS = status;\n          if (!implicit) {\n            if (ENVIRONMENT_IS_PTHREAD) {\n              exitOnMainThread(status);\n              throw \"unwind\";\n            }\n          }\n          _proc_exit(status);\n        }\n        var _exit = exitJS;\n        function handleException(e) {\n          if (e instanceof ExitStatus || e == \"unwind\") {\n            return EXITSTATUS;\n          }\n          quit_(1, e);\n        }\n        var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() {\n          if (ENVIRONMENT_IS_PTHREAD) {\n            PThread.initWorker();\n          } else {\n            PThread.initMainThread();\n          }\n        }, initMainThread: function() {\n          var pthreadPoolSize = navigator.hardwareConcurrency;\n          while (pthreadPoolSize--) {\n            PThread.allocateUnusedWorker();\n          }\n        }, initWorker: function() {\n          noExitRuntime = false;\n        }, setExitStatus: function(status) {\n          EXITSTATUS = status;\n        }, terminateAllThreads: function() {\n          for (var worker of Object.values(PThread.pthreads)) {\n            PThread.returnWorkerToPool(worker);\n          }\n          for (var worker of PThread.unusedWorkers) {\n            worker.terminate();\n          }\n          PThread.unusedWorkers = [];\n        }, returnWorkerToPool: function(worker) {\n          var pthread_ptr = worker.pthread_ptr;\n          delete PThread.pthreads[pthread_ptr];\n          PThread.unusedWorkers.push(worker);\n          PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1);\n          worker.pthread_ptr = 0;\n          if (ENVIRONMENT_IS_NODE) {\n            worker.unref();\n          }\n          __emscripten_thread_free_data(pthread_ptr);\n        }, receiveObjectTransfer: function(data) {\n        }, threadInitTLS: function() {\n          PThread.tlsInitFunctions.forEach((f) => f());\n        }, loadWasmModuleToWorker: (worker) => new Promise((onFinishedLoading) => {\n          worker.onmessage = (e) => {\n            var d = e[\"data\"];\n            var cmd = d[\"cmd\"];\n            if (worker.pthread_ptr)\n              PThread.currentProxiedOperationCallerThread = worker.pthread_ptr;\n            if (d[\"targetThread\"] && d[\"targetThread\"] != _pthread_self()) {\n              var targetWorker = PThread.pthreads[d.targetThread];\n              if (targetWorker) {\n                targetWorker.postMessage(d, d[\"transferList\"]);\n              } else {\n                err('Internal error! Worker sent a message \"' + cmd + '\" to target pthread ' + d[\"targetThread\"] + \", but that thread no longer exists!\");\n              }\n              PThread.currentProxiedOperationCallerThread = void 0;\n              return;\n            }\n            if (cmd === \"processProxyingQueue\") {\n              executeNotifiedProxyingQueue(d[\"queue\"]);\n            } else if (cmd === \"spawnThread\") {\n              spawnThread(d);\n            } else if (cmd === \"cleanupThread\") {\n              cleanupThread(d[\"thread\"]);\n            } else if (cmd === \"killThread\") {\n              killThread(d[\"thread\"]);\n            } else if (cmd === \"cancelThread\") {\n              cancelThread(d[\"thread\"]);\n            } else if (cmd === \"loaded\") {\n              worker.loaded = true;\n              if (ENVIRONMENT_IS_NODE && !worker.pthread_ptr) {\n                worker.unref();\n              }\n              onFinishedLoading(worker);\n            } else if (cmd === \"print\") {\n              out(\"Thread \" + d[\"threadId\"] + \": \" + d[\"text\"]);\n            } else if (cmd === \"printErr\") {\n              err(\"Thread \" + d[\"threadId\"] + \": \" + d[\"text\"]);\n            } else if (cmd === \"alert\") {\n              alert(\"Thread \" + d[\"threadId\"] + \": \" + d[\"text\"]);\n            } else if (d.target === \"setimmediate\") {\n              worker.postMessage(d);\n            } else if (cmd === \"callHandler\") {\n              Module[d[\"handler\"]](...d[\"args\"]);\n            } else if (cmd) {\n              err(\"worker sent an unknown command \" + cmd);\n            }\n            PThread.currentProxiedOperationCallerThread = void 0;\n          };\n          worker.onerror = (e) => {\n            var message = \"worker sent an error!\";\n            err(message + \" \" + e.filename + \":\" + e.lineno + \": \" + e.message);\n            throw e;\n          };\n          if (ENVIRONMENT_IS_NODE) {\n            worker.on(\"message\", function(data) {\n              worker.onmessage({ data });\n            });\n            worker.on(\"error\", function(e) {\n              worker.onerror(e);\n            });\n            worker.on(\"detachedExit\", function() {\n            });\n          }\n          var handlers = [];\n          var knownHandlers = [\"onExit\", \"onAbort\", \"print\", \"printErr\"];\n          for (var handler of knownHandlers) {\n            if (Module.hasOwnProperty(handler)) {\n              handlers.push(handler);\n            }\n          }\n          worker.postMessage({ \"cmd\": \"load\", \"handlers\": handlers, \"urlOrBlob\": Module[\"mainScriptUrlOrBlob\"] || _scriptDir, \"wasmMemory\": wasmMemory, \"wasmModule\": wasmModule });\n        }), loadWasmModuleToAllWorkers: function(onMaybeReady) {\n          if (ENVIRONMENT_IS_PTHREAD) {\n            return onMaybeReady();\n          }\n          let pthreadPoolReady = Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));\n          pthreadPoolReady.then(onMaybeReady);\n        }, allocateUnusedWorker: function() {\n          var worker;\n          var pthreadMainJs = locateFile(\"web-ifc-mt.worker.js\");\n          worker = new Worker(pthreadMainJs);\n          PThread.unusedWorkers.push(worker);\n        }, getNewWorker: function() {\n          if (PThread.unusedWorkers.length == 0) {\n            PThread.allocateUnusedWorker();\n            PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]);\n          }\n          return PThread.unusedWorkers.pop();\n        } };\n        Module[\"PThread\"] = PThread;\n        function callRuntimeCallbacks(callbacks) {\n          while (callbacks.length > 0) {\n            callbacks.shift()(Module);\n          }\n        }\n        function establishStackSpace() {\n          var pthread_ptr = _pthread_self();\n          var stackTop = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2];\n          var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >>> 2];\n          var stackMax = stackTop - stackSize;\n          _emscripten_stack_set_limits(stackTop, stackMax);\n          stackRestore(stackTop);\n        }\n        Module[\"establishStackSpace\"] = establishStackSpace;\n        function exitOnMainThread(returnCode) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(2, 0, returnCode);\n          try {\n            _exit(returnCode);\n          } catch (e) {\n            handleException(e);\n          }\n        }\n        var wasmTableMirror = [];\n        function getWasmTableEntry(funcPtr) {\n          var func = wasmTableMirror[funcPtr];\n          if (!func) {\n            if (funcPtr >= wasmTableMirror.length)\n              wasmTableMirror.length = funcPtr + 1;\n            wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);\n          }\n          return func;\n        }\n        function invokeEntryPoint(ptr, arg) {\n          var result = getWasmTableEntry(ptr)(arg);\n          if (keepRuntimeAlive()) {\n            PThread.setExitStatus(result);\n          } else {\n            __emscripten_thread_exit(result);\n          }\n        }\n        Module[\"invokeEntryPoint\"] = invokeEntryPoint;\n        function registerTLSInit(tlsInitFunc) {\n          PThread.tlsInitFunctions.push(tlsInitFunc);\n        }\n        function ExceptionInfo(excPtr) {\n          this.excPtr = excPtr;\n          this.ptr = excPtr - 24;\n          this.set_type = function(type) {\n            GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2] = type;\n          };\n          this.get_type = function() {\n            return GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2];\n          };\n          this.set_destructor = function(destructor) {\n            GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2] = destructor;\n          };\n          this.get_destructor = function() {\n            return GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2];\n          };\n          this.set_refcount = function(refcount) {\n            GROWABLE_HEAP_I32()[this.ptr >>> 2] = refcount;\n          };\n          this.set_caught = function(caught) {\n            caught = caught ? 1 : 0;\n            GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] = caught;\n          };\n          this.get_caught = function() {\n            return GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] != 0;\n          };\n          this.set_rethrown = function(rethrown) {\n            rethrown = rethrown ? 1 : 0;\n            GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] = rethrown;\n          };\n          this.get_rethrown = function() {\n            return GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] != 0;\n          };\n          this.init = function(type, destructor) {\n            this.set_adjusted_ptr(0);\n            this.set_type(type);\n            this.set_destructor(destructor);\n            this.set_refcount(0);\n            this.set_caught(false);\n            this.set_rethrown(false);\n          };\n          this.add_ref = function() {\n            Atomics.add(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1);\n          };\n          this.release_ref = function() {\n            var prev = Atomics.sub(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1);\n            return prev === 1;\n          };\n          this.set_adjusted_ptr = function(adjustedPtr) {\n            GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2] = adjustedPtr;\n          };\n          this.get_adjusted_ptr = function() {\n            return GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2];\n          };\n          this.get_exception_ptr = function() {\n            var isPointer = ___cxa_is_pointer_type(this.get_type());\n            if (isPointer) {\n              return GROWABLE_HEAP_U32()[this.excPtr >>> 2];\n            }\n            var adjusted = this.get_adjusted_ptr();\n            if (adjusted !== 0)\n              return adjusted;\n            return this.excPtr;\n          };\n        }\n        function ___cxa_throw(ptr, type, destructor) {\n          var info = new ExceptionInfo(ptr);\n          info.init(type, destructor);\n          throw ptr;\n        }\n        function ___emscripten_init_main_thread_js(tb) {\n          __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB);\n          PThread.threadInitTLS();\n        }\n        function ___emscripten_thread_cleanup(thread) {\n          if (!ENVIRONMENT_IS_PTHREAD)\n            cleanupThread(thread);\n          else\n            postMessage({ \"cmd\": \"cleanupThread\", \"thread\": thread });\n        }\n        function setErrNo(value) {\n          GROWABLE_HEAP_I32()[___errno_location() >>> 2] = value;\n          return value;\n        }\n        function ___syscall_fcntl64(fd, cmd, varargs) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(3, 1, fd, cmd, varargs);\n          SYSCALLS.varargs = varargs;\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            switch (cmd) {\n              case 0: {\n                var arg = SYSCALLS.get();\n                if (arg < 0) {\n                  return -28;\n                }\n                var newStream;\n                newStream = FS.createStream(stream, arg);\n                return newStream.fd;\n              }\n              case 1:\n              case 2:\n                return 0;\n              case 3:\n                return stream.flags;\n              case 4: {\n                var arg = SYSCALLS.get();\n                stream.flags |= arg;\n                return 0;\n              }\n              case 5: {\n                var arg = SYSCALLS.get();\n                var offset = 0;\n                GROWABLE_HEAP_I16()[arg + offset >>> 1] = 2;\n                return 0;\n              }\n              case 6:\n              case 7:\n                return 0;\n              case 16:\n              case 8:\n                return -28;\n              case 9:\n                setErrNo(28);\n                return -1;\n              default: {\n                return -28;\n              }\n            }\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return -e.errno;\n          }\n        }\n        function ___syscall_ioctl(fd, op, varargs) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(4, 1, fd, op, varargs);\n          SYSCALLS.varargs = varargs;\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            switch (op) {\n              case 21509:\n              case 21505: {\n                if (!stream.tty)\n                  return -59;\n                return 0;\n              }\n              case 21510:\n              case 21511:\n              case 21512:\n              case 21506:\n              case 21507:\n              case 21508: {\n                if (!stream.tty)\n                  return -59;\n                return 0;\n              }\n              case 21519: {\n                if (!stream.tty)\n                  return -59;\n                var argp = SYSCALLS.get();\n                GROWABLE_HEAP_I32()[argp >>> 2] = 0;\n                return 0;\n              }\n              case 21520: {\n                if (!stream.tty)\n                  return -59;\n                return -28;\n              }\n              case 21531: {\n                var argp = SYSCALLS.get();\n                return FS.ioctl(stream, op, argp);\n              }\n              case 21523: {\n                if (!stream.tty)\n                  return -59;\n                return 0;\n              }\n              case 21524: {\n                if (!stream.tty)\n                  return -59;\n                return 0;\n              }\n              default:\n                return -28;\n            }\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return -e.errno;\n          }\n        }\n        function ___syscall_openat(dirfd, path, flags, varargs) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(5, 1, dirfd, path, flags, varargs);\n          SYSCALLS.varargs = varargs;\n          try {\n            path = SYSCALLS.getStr(path);\n            path = SYSCALLS.calculateAt(dirfd, path);\n            var mode = varargs ? SYSCALLS.get() : 0;\n            return FS.open(path, flags, mode).fd;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return -e.errno;\n          }\n        }\n        function __dlinit(main_dso_handle) {\n        }\n        var dlopenMissingError = \"To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking\";\n        function __dlopen_js(handle) {\n          abort(dlopenMissingError);\n        }\n        function __dlsym_catchup_js(handle, symbolIndex) {\n          abort(dlopenMissingError);\n        }\n        var tupleRegistrations = {};\n        function runDestructors(destructors) {\n          while (destructors.length) {\n            var ptr = destructors.pop();\n            var del = destructors.pop();\n            del(ptr);\n          }\n        }\n        function simpleReadValueFromPointer(pointer) {\n          return this[\"fromWireType\"](GROWABLE_HEAP_I32()[pointer >>> 2]);\n        }\n        var awaitingDependencies = {};\n        var registeredTypes = {};\n        var typeDependencies = {};\n        var char_0 = 48;\n        var char_9 = 57;\n        function makeLegalFunctionName(name) {\n          if (name === void 0) {\n            return \"_unknown\";\n          }\n          name = name.replace(/[^a-zA-Z0-9_]/g, \"$\");\n          var f = name.charCodeAt(0);\n          if (f >= char_0 && f <= char_9) {\n            return \"_\" + name;\n          }\n          return name;\n        }\n        function createNamedFunction(name, body) {\n          name = makeLegalFunctionName(name);\n          return new Function(\"body\", \"return function \" + name + '() {\\n    \"use strict\";    return body.apply(this, arguments);\\n};\\n')(body);\n        }\n        function extendError(baseErrorType, errorName) {\n          var errorClass = createNamedFunction(errorName, function(message) {\n            this.name = errorName;\n            this.message = message;\n            var stack = new Error(message).stack;\n            if (stack !== void 0) {\n              this.stack = this.toString() + \"\\n\" + stack.replace(/^Error(:[^\\n]*)?\\n/, \"\");\n            }\n          });\n          errorClass.prototype = Object.create(baseErrorType.prototype);\n          errorClass.prototype.constructor = errorClass;\n          errorClass.prototype.toString = function() {\n            if (this.message === void 0) {\n              return this.name;\n            } else {\n              return this.name + \": \" + this.message;\n            }\n          };\n          return errorClass;\n        }\n        var InternalError = void 0;\n        function throwInternalError(message) {\n          throw new InternalError(message);\n        }\n        function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {\n          myTypes.forEach(function(type) {\n            typeDependencies[type] = dependentTypes;\n          });\n          function onComplete(typeConverters2) {\n            var myTypeConverters = getTypeConverters(typeConverters2);\n            if (myTypeConverters.length !== myTypes.length) {\n              throwInternalError(\"Mismatched type converter count\");\n            }\n            for (var i = 0; i < myTypes.length; ++i) {\n              registerType(myTypes[i], myTypeConverters[i]);\n            }\n          }\n          var typeConverters = new Array(dependentTypes.length);\n          var unregisteredTypes = [];\n          var registered = 0;\n          dependentTypes.forEach((dt, i) => {\n            if (registeredTypes.hasOwnProperty(dt)) {\n              typeConverters[i] = registeredTypes[dt];\n            } else {\n              unregisteredTypes.push(dt);\n              if (!awaitingDependencies.hasOwnProperty(dt)) {\n                awaitingDependencies[dt] = [];\n              }\n              awaitingDependencies[dt].push(() => {\n                typeConverters[i] = registeredTypes[dt];\n                ++registered;\n                if (registered === unregisteredTypes.length) {\n                  onComplete(typeConverters);\n                }\n              });\n            }\n          });\n          if (unregisteredTypes.length === 0) {\n            onComplete(typeConverters);\n          }\n        }\n        function __embind_finalize_value_array(rawTupleType) {\n          var reg = tupleRegistrations[rawTupleType];\n          delete tupleRegistrations[rawTupleType];\n          var elements = reg.elements;\n          var elementsLength = elements.length;\n          var elementTypes = elements.map(function(elt) {\n            return elt.getterReturnType;\n          }).concat(elements.map(function(elt) {\n            return elt.setterArgumentType;\n          }));\n          var rawConstructor = reg.rawConstructor;\n          var rawDestructor = reg.rawDestructor;\n          whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) {\n            elements.forEach((elt, i) => {\n              var getterReturnType = elementTypes2[i];\n              var getter = elt.getter;\n              var getterContext = elt.getterContext;\n              var setterArgumentType = elementTypes2[i + elementsLength];\n              var setter = elt.setter;\n              var setterContext = elt.setterContext;\n              elt.read = (ptr) => {\n                return getterReturnType[\"fromWireType\"](getter(getterContext, ptr));\n              };\n              elt.write = (ptr, o) => {\n                var destructors = [];\n                setter(setterContext, ptr, setterArgumentType[\"toWireType\"](destructors, o));\n                runDestructors(destructors);\n              };\n            });\n            return [{ name: reg.name, \"fromWireType\": function(ptr) {\n              var rv = new Array(elementsLength);\n              for (var i = 0; i < elementsLength; ++i) {\n                rv[i] = elements[i].read(ptr);\n              }\n              rawDestructor(ptr);\n              return rv;\n            }, \"toWireType\": function(destructors, o) {\n              if (elementsLength !== o.length) {\n                throw new TypeError(\"Incorrect number of tuple elements for \" + reg.name + \": expected=\" + elementsLength + \", actual=\" + o.length);\n              }\n              var ptr = rawConstructor();\n              for (var i = 0; i < elementsLength; ++i) {\n                elements[i].write(ptr, o[i]);\n              }\n              if (destructors !== null) {\n                destructors.push(rawDestructor, ptr);\n              }\n              return ptr;\n            }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: rawDestructor }];\n          });\n        }\n        var structRegistrations = {};\n        function __embind_finalize_value_object(structType) {\n          var reg = structRegistrations[structType];\n          delete structRegistrations[structType];\n          var rawConstructor = reg.rawConstructor;\n          var rawDestructor = reg.rawDestructor;\n          var fieldRecords = reg.fields;\n          var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType));\n          whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => {\n            var fields = {};\n            fieldRecords.forEach((field, i) => {\n              var fieldName = field.fieldName;\n              var getterReturnType = fieldTypes2[i];\n              var getter = field.getter;\n              var getterContext = field.getterContext;\n              var setterArgumentType = fieldTypes2[i + fieldRecords.length];\n              var setter = field.setter;\n              var setterContext = field.setterContext;\n              fields[fieldName] = { read: (ptr) => {\n                return getterReturnType[\"fromWireType\"](getter(getterContext, ptr));\n              }, write: (ptr, o) => {\n                var destructors = [];\n                setter(setterContext, ptr, setterArgumentType[\"toWireType\"](destructors, o));\n                runDestructors(destructors);\n              } };\n            });\n            return [{ name: reg.name, \"fromWireType\": function(ptr) {\n              var rv = {};\n              for (var i in fields) {\n                rv[i] = fields[i].read(ptr);\n              }\n              rawDestructor(ptr);\n              return rv;\n            }, \"toWireType\": function(destructors, o) {\n              for (var fieldName in fields) {\n                if (!(fieldName in o)) {\n                  throw new TypeError('Missing field:  \"' + fieldName + '\"');\n                }\n              }\n              var ptr = rawConstructor();\n              for (fieldName in fields) {\n                fields[fieldName].write(ptr, o[fieldName]);\n              }\n              if (destructors !== null) {\n                destructors.push(rawDestructor, ptr);\n              }\n              return ptr;\n            }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: rawDestructor }];\n          });\n        }\n        function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {\n        }\n        function getShiftFromSize(size) {\n          switch (size) {\n            case 1:\n              return 0;\n            case 2:\n              return 1;\n            case 4:\n              return 2;\n            case 8:\n              return 3;\n            default:\n              throw new TypeError(\"Unknown type size: \" + size);\n          }\n        }\n        function embind_init_charCodes() {\n          var codes = new Array(256);\n          for (var i = 0; i < 256; ++i) {\n            codes[i] = String.fromCharCode(i);\n          }\n          embind_charCodes = codes;\n        }\n        var embind_charCodes = void 0;\n        function readLatin1String(ptr) {\n          var ret = \"\";\n          var c = ptr;\n          while (GROWABLE_HEAP_U8()[c >>> 0]) {\n            ret += embind_charCodes[GROWABLE_HEAP_U8()[c++ >>> 0]];\n          }\n          return ret;\n        }\n        var BindingError = void 0;\n        function throwBindingError(message) {\n          throw new BindingError(message);\n        }\n        function registerType(rawType, registeredInstance, options = {}) {\n          if (!(\"argPackAdvance\" in registeredInstance)) {\n            throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n          }\n          var name = registeredInstance.name;\n          if (!rawType) {\n            throwBindingError('type \"' + name + '\" must have a positive integer typeid pointer');\n          }\n          if (registeredTypes.hasOwnProperty(rawType)) {\n            if (options.ignoreDuplicateRegistrations) {\n              return;\n            } else {\n              throwBindingError(\"Cannot register type '\" + name + \"' twice\");\n            }\n          }\n          registeredTypes[rawType] = registeredInstance;\n          delete typeDependencies[rawType];\n          if (awaitingDependencies.hasOwnProperty(rawType)) {\n            var callbacks = awaitingDependencies[rawType];\n            delete awaitingDependencies[rawType];\n            callbacks.forEach((cb) => cb());\n          }\n        }\n        function __embind_register_bool(rawType, name, size, trueValue, falseValue) {\n          var shift = getShiftFromSize(size);\n          name = readLatin1String(name);\n          registerType(rawType, { name, \"fromWireType\": function(wt) {\n            return !!wt;\n          }, \"toWireType\": function(destructors, o) {\n            return o ? trueValue : falseValue;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": function(pointer) {\n            var heap;\n            if (size === 1) {\n              heap = GROWABLE_HEAP_I8();\n            } else if (size === 2) {\n              heap = GROWABLE_HEAP_I16();\n            } else if (size === 4) {\n              heap = GROWABLE_HEAP_I32();\n            } else {\n              throw new TypeError(\"Unknown boolean type size: \" + name);\n            }\n            return this[\"fromWireType\"](heap[pointer >>> shift]);\n          }, destructorFunction: null });\n        }\n        function ClassHandle_isAliasOf(other) {\n          if (!(this instanceof ClassHandle)) {\n            return false;\n          }\n          if (!(other instanceof ClassHandle)) {\n            return false;\n          }\n          var leftClass = this.$$.ptrType.registeredClass;\n          var left = this.$$.ptr;\n          var rightClass = other.$$.ptrType.registeredClass;\n          var right = other.$$.ptr;\n          while (leftClass.baseClass) {\n            left = leftClass.upcast(left);\n            leftClass = leftClass.baseClass;\n          }\n          while (rightClass.baseClass) {\n            right = rightClass.upcast(right);\n            rightClass = rightClass.baseClass;\n          }\n          return leftClass === rightClass && left === right;\n        }\n        function shallowCopyInternalPointer(o) {\n          return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType };\n        }\n        function throwInstanceAlreadyDeleted(obj) {\n          function getInstanceTypeName(handle) {\n            return handle.$$.ptrType.registeredClass.name;\n          }\n          throwBindingError(getInstanceTypeName(obj) + \" instance already deleted\");\n        }\n        var finalizationRegistry = false;\n        function detachFinalizer(handle) {\n        }\n        function runDestructor($$) {\n          if ($$.smartPtr) {\n            $$.smartPtrType.rawDestructor($$.smartPtr);\n          } else {\n            $$.ptrType.registeredClass.rawDestructor($$.ptr);\n          }\n        }\n        function releaseClassHandle($$) {\n          $$.count.value -= 1;\n          var toDelete = $$.count.value === 0;\n          if (toDelete) {\n            runDestructor($$);\n          }\n        }\n        function downcastPointer(ptr, ptrClass, desiredClass) {\n          if (ptrClass === desiredClass) {\n            return ptr;\n          }\n          if (desiredClass.baseClass === void 0) {\n            return null;\n          }\n          var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);\n          if (rv === null) {\n            return null;\n          }\n          return desiredClass.downcast(rv);\n        }\n        var registeredPointers = {};\n        function getInheritedInstanceCount() {\n          return Object.keys(registeredInstances).length;\n        }\n        function getLiveInheritedInstances() {\n          var rv = [];\n          for (var k in registeredInstances) {\n            if (registeredInstances.hasOwnProperty(k)) {\n              rv.push(registeredInstances[k]);\n            }\n          }\n          return rv;\n        }\n        var deletionQueue = [];\n        function flushPendingDeletes() {\n          while (deletionQueue.length) {\n            var obj = deletionQueue.pop();\n            obj.$$.deleteScheduled = false;\n            obj[\"delete\"]();\n          }\n        }\n        var delayFunction = void 0;\n        function setDelayFunction(fn) {\n          delayFunction = fn;\n          if (deletionQueue.length && delayFunction) {\n            delayFunction(flushPendingDeletes);\n          }\n        }\n        function init_embind() {\n          Module[\"getInheritedInstanceCount\"] = getInheritedInstanceCount;\n          Module[\"getLiveInheritedInstances\"] = getLiveInheritedInstances;\n          Module[\"flushPendingDeletes\"] = flushPendingDeletes;\n          Module[\"setDelayFunction\"] = setDelayFunction;\n        }\n        var registeredInstances = {};\n        function getBasestPointer(class_, ptr) {\n          if (ptr === void 0) {\n            throwBindingError(\"ptr should not be undefined\");\n          }\n          while (class_.baseClass) {\n            ptr = class_.upcast(ptr);\n            class_ = class_.baseClass;\n          }\n          return ptr;\n        }\n        function getInheritedInstance(class_, ptr) {\n          ptr = getBasestPointer(class_, ptr);\n          return registeredInstances[ptr];\n        }\n        function makeClassHandle(prototype, record) {\n          if (!record.ptrType || !record.ptr) {\n            throwInternalError(\"makeClassHandle requires ptr and ptrType\");\n          }\n          var hasSmartPtrType = !!record.smartPtrType;\n          var hasSmartPtr = !!record.smartPtr;\n          if (hasSmartPtrType !== hasSmartPtr) {\n            throwInternalError(\"Both smartPtrType and smartPtr must be specified\");\n          }\n          record.count = { value: 1 };\n          return attachFinalizer(Object.create(prototype, { $$: { value: record } }));\n        }\n        function RegisteredPointer_fromWireType(ptr) {\n          var rawPointer = this.getPointee(ptr);\n          if (!rawPointer) {\n            this.destructor(ptr);\n            return null;\n          }\n          var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);\n          if (registeredInstance !== void 0) {\n            if (registeredInstance.$$.count.value === 0) {\n              registeredInstance.$$.ptr = rawPointer;\n              registeredInstance.$$.smartPtr = ptr;\n              return registeredInstance[\"clone\"]();\n            } else {\n              var rv = registeredInstance[\"clone\"]();\n              this.destructor(ptr);\n              return rv;\n            }\n          }\n          function makeDefaultHandle() {\n            if (this.isSmartPointer) {\n              return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });\n            } else {\n              return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });\n            }\n          }\n          var actualType = this.registeredClass.getActualType(rawPointer);\n          var registeredPointerRecord = registeredPointers[actualType];\n          if (!registeredPointerRecord) {\n            return makeDefaultHandle.call(this);\n          }\n          var toType;\n          if (this.isConst) {\n            toType = registeredPointerRecord.constPointerType;\n          } else {\n            toType = registeredPointerRecord.pointerType;\n          }\n          var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);\n          if (dp === null) {\n            return makeDefaultHandle.call(this);\n          }\n          if (this.isSmartPointer) {\n            return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });\n          } else {\n            return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });\n          }\n        }\n        function attachFinalizer(handle) {\n          if (typeof FinalizationRegistry === \"undefined\") {\n            attachFinalizer = (handle2) => handle2;\n            return handle;\n          }\n          finalizationRegistry = new FinalizationRegistry((info) => {\n            releaseClassHandle(info.$$);\n          });\n          attachFinalizer = (handle2) => {\n            var $$ = handle2.$$;\n            var hasSmartPtr = !!$$.smartPtr;\n            if (hasSmartPtr) {\n              var info = { $$ };\n              finalizationRegistry.register(handle2, info, handle2);\n            }\n            return handle2;\n          };\n          detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);\n          return attachFinalizer(handle);\n        }\n        function ClassHandle_clone() {\n          if (!this.$$.ptr) {\n            throwInstanceAlreadyDeleted(this);\n          }\n          if (this.$$.preservePointerOnDelete) {\n            this.$$.count.value += 1;\n            return this;\n          } else {\n            var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } }));\n            clone.$$.count.value += 1;\n            clone.$$.deleteScheduled = false;\n            return clone;\n          }\n        }\n        function ClassHandle_delete() {\n          if (!this.$$.ptr) {\n            throwInstanceAlreadyDeleted(this);\n          }\n          if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n            throwBindingError(\"Object already scheduled for deletion\");\n          }\n          detachFinalizer(this);\n          releaseClassHandle(this.$$);\n          if (!this.$$.preservePointerOnDelete) {\n            this.$$.smartPtr = void 0;\n            this.$$.ptr = void 0;\n          }\n        }\n        function ClassHandle_isDeleted() {\n          return !this.$$.ptr;\n        }\n        function ClassHandle_deleteLater() {\n          if (!this.$$.ptr) {\n            throwInstanceAlreadyDeleted(this);\n          }\n          if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n            throwBindingError(\"Object already scheduled for deletion\");\n          }\n          deletionQueue.push(this);\n          if (deletionQueue.length === 1 && delayFunction) {\n            delayFunction(flushPendingDeletes);\n          }\n          this.$$.deleteScheduled = true;\n          return this;\n        }\n        function init_ClassHandle() {\n          ClassHandle.prototype[\"isAliasOf\"] = ClassHandle_isAliasOf;\n          ClassHandle.prototype[\"clone\"] = ClassHandle_clone;\n          ClassHandle.prototype[\"delete\"] = ClassHandle_delete;\n          ClassHandle.prototype[\"isDeleted\"] = ClassHandle_isDeleted;\n          ClassHandle.prototype[\"deleteLater\"] = ClassHandle_deleteLater;\n        }\n        function ClassHandle() {\n        }\n        function ensureOverloadTable(proto, methodName, humanName) {\n          if (proto[methodName].overloadTable === void 0) {\n            var prevFunc = proto[methodName];\n            proto[methodName] = function() {\n              if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {\n                throwBindingError(\"Function '\" + humanName + \"' called with an invalid number of arguments (\" + arguments.length + \") - expects one of (\" + proto[methodName].overloadTable + \")!\");\n              }\n              return proto[methodName].overloadTable[arguments.length].apply(this, arguments);\n            };\n            proto[methodName].overloadTable = [];\n            proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;\n          }\n        }\n        function exposePublicSymbol(name, value, numArguments) {\n          if (Module.hasOwnProperty(name)) {\n            if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) {\n              throwBindingError(\"Cannot register public name '\" + name + \"' twice\");\n            }\n            ensureOverloadTable(Module, name, name);\n            if (Module.hasOwnProperty(numArguments)) {\n              throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\" + numArguments + \")!\");\n            }\n            Module[name].overloadTable[numArguments] = value;\n          } else {\n            Module[name] = value;\n            if (numArguments !== void 0) {\n              Module[name].numArguments = numArguments;\n            }\n          }\n        }\n        function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {\n          this.name = name;\n          this.constructor = constructor;\n          this.instancePrototype = instancePrototype;\n          this.rawDestructor = rawDestructor;\n          this.baseClass = baseClass;\n          this.getActualType = getActualType;\n          this.upcast = upcast;\n          this.downcast = downcast;\n          this.pureVirtualFunctions = [];\n        }\n        function upcastPointer(ptr, ptrClass, desiredClass) {\n          while (ptrClass !== desiredClass) {\n            if (!ptrClass.upcast) {\n              throwBindingError(\"Expected null or instance of \" + desiredClass.name + \", got an instance of \" + ptrClass.name);\n            }\n            ptr = ptrClass.upcast(ptr);\n            ptrClass = ptrClass.baseClass;\n          }\n          return ptr;\n        }\n        function constNoSmartPtrRawPointerToWireType(destructors, handle) {\n          if (handle === null) {\n            if (this.isReference) {\n              throwBindingError(\"null is not a valid \" + this.name);\n            }\n            return 0;\n          }\n          if (!handle.$$) {\n            throwBindingError('Cannot pass \"' + embindRepr(handle) + '\" as a ' + this.name);\n          }\n          if (!handle.$$.ptr) {\n            throwBindingError(\"Cannot pass deleted object as a pointer of type \" + this.name);\n          }\n          var handleClass = handle.$$.ptrType.registeredClass;\n          var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n          return ptr;\n        }\n        function genericPointerToWireType(destructors, handle) {\n          var ptr;\n          if (handle === null) {\n            if (this.isReference) {\n              throwBindingError(\"null is not a valid \" + this.name);\n            }\n            if (this.isSmartPointer) {\n              ptr = this.rawConstructor();\n              if (destructors !== null) {\n                destructors.push(this.rawDestructor, ptr);\n              }\n              return ptr;\n            } else {\n              return 0;\n            }\n          }\n          if (!handle.$$) {\n            throwBindingError('Cannot pass \"' + embindRepr(handle) + '\" as a ' + this.name);\n          }\n          if (!handle.$$.ptr) {\n            throwBindingError(\"Cannot pass deleted object as a pointer of type \" + this.name);\n          }\n          if (!this.isConst && handle.$$.ptrType.isConst) {\n            throwBindingError(\"Cannot convert argument of type \" + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + \" to parameter type \" + this.name);\n          }\n          var handleClass = handle.$$.ptrType.registeredClass;\n          ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n          if (this.isSmartPointer) {\n            if (handle.$$.smartPtr === void 0) {\n              throwBindingError(\"Passing raw pointer to smart pointer is illegal\");\n            }\n            switch (this.sharingPolicy) {\n              case 0:\n                if (handle.$$.smartPtrType === this) {\n                  ptr = handle.$$.smartPtr;\n                } else {\n                  throwBindingError(\"Cannot convert argument of type \" + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + \" to parameter type \" + this.name);\n                }\n                break;\n              case 1:\n                ptr = handle.$$.smartPtr;\n                break;\n              case 2:\n                if (handle.$$.smartPtrType === this) {\n                  ptr = handle.$$.smartPtr;\n                } else {\n                  var clonedHandle = handle[\"clone\"]();\n                  ptr = this.rawShare(ptr, Emval.toHandle(function() {\n                    clonedHandle[\"delete\"]();\n                  }));\n                  if (destructors !== null) {\n                    destructors.push(this.rawDestructor, ptr);\n                  }\n                }\n                break;\n              default:\n                throwBindingError(\"Unsupporting sharing policy\");\n            }\n          }\n          return ptr;\n        }\n        function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {\n          if (handle === null) {\n            if (this.isReference) {\n              throwBindingError(\"null is not a valid \" + this.name);\n            }\n            return 0;\n          }\n          if (!handle.$$) {\n            throwBindingError('Cannot pass \"' + embindRepr(handle) + '\" as a ' + this.name);\n          }\n          if (!handle.$$.ptr) {\n            throwBindingError(\"Cannot pass deleted object as a pointer of type \" + this.name);\n          }\n          if (handle.$$.ptrType.isConst) {\n            throwBindingError(\"Cannot convert argument of type \" + handle.$$.ptrType.name + \" to parameter type \" + this.name);\n          }\n          var handleClass = handle.$$.ptrType.registeredClass;\n          var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n          return ptr;\n        }\n        function RegisteredPointer_getPointee(ptr) {\n          if (this.rawGetPointee) {\n            ptr = this.rawGetPointee(ptr);\n          }\n          return ptr;\n        }\n        function RegisteredPointer_destructor(ptr) {\n          if (this.rawDestructor) {\n            this.rawDestructor(ptr);\n          }\n        }\n        function RegisteredPointer_deleteObject(handle) {\n          if (handle !== null) {\n            handle[\"delete\"]();\n          }\n        }\n        function init_RegisteredPointer() {\n          RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;\n          RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;\n          RegisteredPointer.prototype[\"argPackAdvance\"] = 8;\n          RegisteredPointer.prototype[\"readValueFromPointer\"] = simpleReadValueFromPointer;\n          RegisteredPointer.prototype[\"deleteObject\"] = RegisteredPointer_deleteObject;\n          RegisteredPointer.prototype[\"fromWireType\"] = RegisteredPointer_fromWireType;\n        }\n        function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {\n          this.name = name;\n          this.registeredClass = registeredClass;\n          this.isReference = isReference;\n          this.isConst = isConst;\n          this.isSmartPointer = isSmartPointer;\n          this.pointeeType = pointeeType;\n          this.sharingPolicy = sharingPolicy;\n          this.rawGetPointee = rawGetPointee;\n          this.rawConstructor = rawConstructor;\n          this.rawShare = rawShare;\n          this.rawDestructor = rawDestructor;\n          if (!isSmartPointer && registeredClass.baseClass === void 0) {\n            if (isConst) {\n              this[\"toWireType\"] = constNoSmartPtrRawPointerToWireType;\n              this.destructorFunction = null;\n            } else {\n              this[\"toWireType\"] = nonConstNoSmartPtrRawPointerToWireType;\n              this.destructorFunction = null;\n            }\n          } else {\n            this[\"toWireType\"] = genericPointerToWireType;\n          }\n        }\n        function replacePublicSymbol(name, value, numArguments) {\n          if (!Module.hasOwnProperty(name)) {\n            throwInternalError(\"Replacing nonexistant public symbol\");\n          }\n          if (Module[name].overloadTable !== void 0 && numArguments !== void 0) {\n            Module[name].overloadTable[numArguments] = value;\n          } else {\n            Module[name] = value;\n            Module[name].argCount = numArguments;\n          }\n        }\n        function dynCallLegacy(sig, ptr, args) {\n          var f = Module[\"dynCall_\" + sig];\n          return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr);\n        }\n        function dynCall(sig, ptr, args) {\n          if (sig.includes(\"j\")) {\n            return dynCallLegacy(sig, ptr, args);\n          }\n          var rtn = getWasmTableEntry(ptr).apply(null, args);\n          return rtn;\n        }\n        function getDynCaller(sig, ptr) {\n          var argCache = [];\n          return function() {\n            argCache.length = 0;\n            Object.assign(argCache, arguments);\n            return dynCall(sig, ptr, argCache);\n          };\n        }\n        function embind__requireFunction(signature, rawFunction) {\n          signature = readLatin1String(signature);\n          function makeDynCaller() {\n            if (signature.includes(\"j\")) {\n              return getDynCaller(signature, rawFunction);\n            }\n            return getWasmTableEntry(rawFunction);\n          }\n          var fp = makeDynCaller();\n          if (typeof fp != \"function\") {\n            throwBindingError(\"unknown function pointer with signature \" + signature + \": \" + rawFunction);\n          }\n          return fp;\n        }\n        var UnboundTypeError = void 0;\n        function getTypeName(type) {\n          var ptr = ___getTypeName(type);\n          var rv = readLatin1String(ptr);\n          _free(ptr);\n          return rv;\n        }\n        function throwUnboundTypeError(message, types) {\n          var unboundTypes = [];\n          var seen = {};\n          function visit(type) {\n            if (seen[type]) {\n              return;\n            }\n            if (registeredTypes[type]) {\n              return;\n            }\n            if (typeDependencies[type]) {\n              typeDependencies[type].forEach(visit);\n              return;\n            }\n            unboundTypes.push(type);\n            seen[type] = true;\n          }\n          types.forEach(visit);\n          throw new UnboundTypeError(message + \": \" + unboundTypes.map(getTypeName).join([\", \"]));\n        }\n        function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {\n          name = readLatin1String(name);\n          getActualType = embind__requireFunction(getActualTypeSignature, getActualType);\n          if (upcast) {\n            upcast = embind__requireFunction(upcastSignature, upcast);\n          }\n          if (downcast) {\n            downcast = embind__requireFunction(downcastSignature, downcast);\n          }\n          rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);\n          var legalFunctionName = makeLegalFunctionName(name);\n          exposePublicSymbol(legalFunctionName, function() {\n            throwUnboundTypeError(\"Cannot construct \" + name + \" due to unbound types\", [baseClassRawType]);\n          });\n          whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) {\n            base = base[0];\n            var baseClass;\n            var basePrototype;\n            if (baseClassRawType) {\n              baseClass = base.registeredClass;\n              basePrototype = baseClass.instancePrototype;\n            } else {\n              basePrototype = ClassHandle.prototype;\n            }\n            var constructor = createNamedFunction(legalFunctionName, function() {\n              if (Object.getPrototypeOf(this) !== instancePrototype) {\n                throw new BindingError(\"Use 'new' to construct \" + name);\n              }\n              if (registeredClass.constructor_body === void 0) {\n                throw new BindingError(name + \" has no accessible constructor\");\n              }\n              var body = registeredClass.constructor_body[arguments.length];\n              if (body === void 0) {\n                throw new BindingError(\"Tried to invoke ctor of \" + name + \" with invalid number of parameters (\" + arguments.length + \") - expected (\" + Object.keys(registeredClass.constructor_body).toString() + \") parameters instead!\");\n              }\n              return body.apply(this, arguments);\n            });\n            var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } });\n            constructor.prototype = instancePrototype;\n            var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);\n            var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);\n            var pointerConverter = new RegisteredPointer(name + \"*\", registeredClass, false, false, false);\n            var constPointerConverter = new RegisteredPointer(name + \" const*\", registeredClass, false, true, false);\n            registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter };\n            replacePublicSymbol(legalFunctionName, constructor);\n            return [referenceConverter, pointerConverter, constPointerConverter];\n          });\n        }\n        function heap32VectorToArray(count, firstElement) {\n          var array = [];\n          for (var i = 0; i < count; i++) {\n            array.push(GROWABLE_HEAP_U32()[firstElement + i * 4 >>> 2]);\n          }\n          return array;\n        }\n        function new_(constructor, argumentList) {\n          if (!(constructor instanceof Function)) {\n            throw new TypeError(\"new_ called with constructor type \" + typeof constructor + \" which is not a function\");\n          }\n          var dummy = createNamedFunction(constructor.name || \"unknownFunctionName\", function() {\n          });\n          dummy.prototype = constructor.prototype;\n          var obj = new dummy();\n          var r = constructor.apply(obj, argumentList);\n          return r instanceof Object ? r : obj;\n        }\n        function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) {\n          var argCount = argTypes.length;\n          if (argCount < 2) {\n            throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n          }\n          var isClassMethodFunc = argTypes[1] !== null && classType !== null;\n          var needsDestructorStack = false;\n          for (var i = 1; i < argTypes.length; ++i) {\n            if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) {\n              needsDestructorStack = true;\n              break;\n            }\n          }\n          var returns = argTypes[0].name !== \"void\";\n          var argsList = \"\";\n          var argsListWired = \"\";\n          for (var i = 0; i < argCount - 2; ++i) {\n            argsList += (i !== 0 ? \", \" : \"\") + \"arg\" + i;\n            argsListWired += (i !== 0 ? \", \" : \"\") + \"arg\" + i + \"Wired\";\n          }\n          var invokerFnBody = \"return function \" + makeLegalFunctionName(humanName) + \"(\" + argsList + \") {\\nif (arguments.length !== \" + (argCount - 2) + \") {\\nthrowBindingError('function \" + humanName + \" called with ' + arguments.length + ' arguments, expected \" + (argCount - 2) + \" args!');\\n}\\n\";\n          if (needsDestructorStack) {\n            invokerFnBody += \"var destructors = [];\\n\";\n          }\n          var dtorStack = needsDestructorStack ? \"destructors\" : \"null\";\n          var args1 = [\"throwBindingError\", \"invoker\", \"fn\", \"runDestructors\", \"retType\", \"classParam\"];\n          var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];\n          if (isClassMethodFunc) {\n            invokerFnBody += \"var thisWired = classParam.toWireType(\" + dtorStack + \", this);\\n\";\n          }\n          for (var i = 0; i < argCount - 2; ++i) {\n            invokerFnBody += \"var arg\" + i + \"Wired = argType\" + i + \".toWireType(\" + dtorStack + \", arg\" + i + \"); // \" + argTypes[i + 2].name + \"\\n\";\n            args1.push(\"argType\" + i);\n            args2.push(argTypes[i + 2]);\n          }\n          if (isClassMethodFunc) {\n            argsListWired = \"thisWired\" + (argsListWired.length > 0 ? \", \" : \"\") + argsListWired;\n          }\n          invokerFnBody += (returns ? \"var rv = \" : \"\") + \"invoker(fn\" + (argsListWired.length > 0 ? \", \" : \"\") + argsListWired + \");\\n\";\n          if (needsDestructorStack) {\n            invokerFnBody += \"runDestructors(destructors);\\n\";\n          } else {\n            for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {\n              var paramName = i === 1 ? \"thisWired\" : \"arg\" + (i - 2) + \"Wired\";\n              if (argTypes[i].destructorFunction !== null) {\n                invokerFnBody += paramName + \"_dtor(\" + paramName + \"); // \" + argTypes[i].name + \"\\n\";\n                args1.push(paramName + \"_dtor\");\n                args2.push(argTypes[i].destructorFunction);\n              }\n            }\n          }\n          if (returns) {\n            invokerFnBody += \"var ret = retType.fromWireType(rv);\\nreturn ret;\\n\";\n          }\n          invokerFnBody += \"}\\n\";\n          args1.push(invokerFnBody);\n          var invokerFunction = new_(Function, args1).apply(null, args2);\n          return invokerFunction;\n        }\n        function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {\n          assert(argCount > 0);\n          var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n          invoker = embind__requireFunction(invokerSignature, invoker);\n          whenDependentTypesAreResolved([], [rawClassType], function(classType) {\n            classType = classType[0];\n            var humanName = \"constructor \" + classType.name;\n            if (classType.registeredClass.constructor_body === void 0) {\n              classType.registeredClass.constructor_body = [];\n            }\n            if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) {\n              throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\" + (argCount - 1) + \") for class '\" + classType.name + \"'! Overload resolution is currently only performed using the parameter count, not actual type info!\");\n            }\n            classType.registeredClass.constructor_body[argCount - 1] = () => {\n              throwUnboundTypeError(\"Cannot construct \" + classType.name + \" due to unbound types\", rawArgTypes);\n            };\n            whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {\n              argTypes.splice(1, 0, null);\n              classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor);\n              return [];\n            });\n            return [];\n          });\n        }\n        function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) {\n          var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n          methodName = readLatin1String(methodName);\n          rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);\n          whenDependentTypesAreResolved([], [rawClassType], function(classType) {\n            classType = classType[0];\n            var humanName = classType.name + \".\" + methodName;\n            if (methodName.startsWith(\"@@\")) {\n              methodName = Symbol[methodName.substring(2)];\n            }\n            if (isPureVirtual) {\n              classType.registeredClass.pureVirtualFunctions.push(methodName);\n            }\n            function unboundTypesHandler() {\n              throwUnboundTypeError(\"Cannot call \" + humanName + \" due to unbound types\", rawArgTypes);\n            }\n            var proto = classType.registeredClass.instancePrototype;\n            var method = proto[methodName];\n            if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) {\n              unboundTypesHandler.argCount = argCount - 2;\n              unboundTypesHandler.className = classType.name;\n              proto[methodName] = unboundTypesHandler;\n            } else {\n              ensureOverloadTable(proto, methodName, humanName);\n              proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;\n            }\n            whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {\n              var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context);\n              if (proto[methodName].overloadTable === void 0) {\n                memberFunction.argCount = argCount - 2;\n                proto[methodName] = memberFunction;\n              } else {\n                proto[methodName].overloadTable[argCount - 2] = memberFunction;\n              }\n              return [];\n            });\n            return [];\n          });\n        }\n        var emval_free_list = [];\n        var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }];\n        function __emval_decref(handle) {\n          if (handle > 4 && --emval_handle_array[handle].refcount === 0) {\n            emval_handle_array[handle] = void 0;\n            emval_free_list.push(handle);\n          }\n        }\n        function count_emval_handles() {\n          var count = 0;\n          for (var i = 5; i < emval_handle_array.length; ++i) {\n            if (emval_handle_array[i] !== void 0) {\n              ++count;\n            }\n          }\n          return count;\n        }\n        function get_first_emval() {\n          for (var i = 5; i < emval_handle_array.length; ++i) {\n            if (emval_handle_array[i] !== void 0) {\n              return emval_handle_array[i];\n            }\n          }\n          return null;\n        }\n        function init_emval() {\n          Module[\"count_emval_handles\"] = count_emval_handles;\n          Module[\"get_first_emval\"] = get_first_emval;\n        }\n        var Emval = { toValue: (handle) => {\n          if (!handle) {\n            throwBindingError(\"Cannot use deleted val. handle = \" + handle);\n          }\n          return emval_handle_array[handle].value;\n        }, toHandle: (value) => {\n          switch (value) {\n            case void 0:\n              return 1;\n            case null:\n              return 2;\n            case true:\n              return 3;\n            case false:\n              return 4;\n            default: {\n              var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length;\n              emval_handle_array[handle] = { refcount: 1, value };\n              return handle;\n            }\n          }\n        } };\n        function __embind_register_emval(rawType, name) {\n          name = readLatin1String(name);\n          registerType(rawType, { name, \"fromWireType\": function(handle) {\n            var rv = Emval.toValue(handle);\n            __emval_decref(handle);\n            return rv;\n          }, \"toWireType\": function(destructors, value) {\n            return Emval.toHandle(value);\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: null });\n        }\n        function enumReadValueFromPointer(name, shift, signed) {\n          switch (shift) {\n            case 0:\n              return function(pointer) {\n                var heap = signed ? GROWABLE_HEAP_I8() : GROWABLE_HEAP_U8();\n                return this[\"fromWireType\"](heap[pointer >>> 0]);\n              };\n            case 1:\n              return function(pointer) {\n                var heap = signed ? GROWABLE_HEAP_I16() : GROWABLE_HEAP_U16();\n                return this[\"fromWireType\"](heap[pointer >>> 1]);\n              };\n            case 2:\n              return function(pointer) {\n                var heap = signed ? GROWABLE_HEAP_I32() : GROWABLE_HEAP_U32();\n                return this[\"fromWireType\"](heap[pointer >>> 2]);\n              };\n            default:\n              throw new TypeError(\"Unknown integer type: \" + name);\n          }\n        }\n        function __embind_register_enum(rawType, name, size, isSigned) {\n          var shift = getShiftFromSize(size);\n          name = readLatin1String(name);\n          function ctor() {\n          }\n          ctor.values = {};\n          registerType(rawType, { name, constructor: ctor, \"fromWireType\": function(c) {\n            return this.constructor.values[c];\n          }, \"toWireType\": function(destructors, c) {\n            return c.value;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null });\n          exposePublicSymbol(name, ctor);\n        }\n        function requireRegisteredType(rawType, humanName) {\n          var impl = registeredTypes[rawType];\n          if (impl === void 0) {\n            throwBindingError(humanName + \" has unknown type \" + getTypeName(rawType));\n          }\n          return impl;\n        }\n        function __embind_register_enum_value(rawEnumType, name, enumValue) {\n          var enumType = requireRegisteredType(rawEnumType, \"enum\");\n          name = readLatin1String(name);\n          var Enum = enumType.constructor;\n          var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + \"_\" + name, function() {\n          }) } });\n          Enum.values[enumValue] = Value;\n          Enum[name] = Value;\n        }\n        function embindRepr(v) {\n          if (v === null) {\n            return \"null\";\n          }\n          var t = typeof v;\n          if (t === \"object\" || t === \"array\" || t === \"function\") {\n            return v.toString();\n          } else {\n            return \"\" + v;\n          }\n        }\n        function floatReadValueFromPointer(name, shift) {\n          switch (shift) {\n            case 2:\n              return function(pointer) {\n                return this[\"fromWireType\"](GROWABLE_HEAP_F32()[pointer >>> 2]);\n              };\n            case 3:\n              return function(pointer) {\n                return this[\"fromWireType\"](GROWABLE_HEAP_F64()[pointer >>> 3]);\n              };\n            default:\n              throw new TypeError(\"Unknown float type: \" + name);\n          }\n        }\n        function __embind_register_float(rawType, name, size) {\n          var shift = getShiftFromSize(size);\n          name = readLatin1String(name);\n          registerType(rawType, { name, \"fromWireType\": function(value) {\n            return value;\n          }, \"toWireType\": function(destructors, value) {\n            return value;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": floatReadValueFromPointer(name, shift), destructorFunction: null });\n        }\n        function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) {\n          var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n          name = readLatin1String(name);\n          rawInvoker = embind__requireFunction(signature, rawInvoker);\n          exposePublicSymbol(name, function() {\n            throwUnboundTypeError(\"Cannot call \" + name + \" due to unbound types\", argTypes);\n          }, argCount - 1);\n          whenDependentTypesAreResolved([], argTypes, function(argTypes2) {\n            var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1));\n            replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1);\n            return [];\n          });\n        }\n        function integerReadValueFromPointer(name, shift, signed) {\n          switch (shift) {\n            case 0:\n              return signed ? function readS8FromPointer(pointer) {\n                return GROWABLE_HEAP_I8()[pointer >>> 0];\n              } : function readU8FromPointer(pointer) {\n                return GROWABLE_HEAP_U8()[pointer >>> 0];\n              };\n            case 1:\n              return signed ? function readS16FromPointer(pointer) {\n                return GROWABLE_HEAP_I16()[pointer >>> 1];\n              } : function readU16FromPointer(pointer) {\n                return GROWABLE_HEAP_U16()[pointer >>> 1];\n              };\n            case 2:\n              return signed ? function readS32FromPointer(pointer) {\n                return GROWABLE_HEAP_I32()[pointer >>> 2];\n              } : function readU32FromPointer(pointer) {\n                return GROWABLE_HEAP_U32()[pointer >>> 2];\n              };\n            default:\n              throw new TypeError(\"Unknown integer type: \" + name);\n          }\n        }\n        function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {\n          name = readLatin1String(name);\n          var shift = getShiftFromSize(size);\n          var fromWireType = (value) => value;\n          if (minRange === 0) {\n            var bitshift = 32 - 8 * size;\n            fromWireType = (value) => value << bitshift >>> bitshift;\n          }\n          var isUnsignedType = name.includes(\"unsigned\");\n          var checkAssertions = (value, toTypeName) => {\n          };\n          var toWireType;\n          if (isUnsignedType) {\n            toWireType = function(destructors, value) {\n              checkAssertions(value, this.name);\n              return value >>> 0;\n            };\n          } else {\n            toWireType = function(destructors, value) {\n              checkAssertions(value, this.name);\n              return value;\n            };\n          }\n          registerType(primitiveType, { name, \"fromWireType\": fromWireType, \"toWireType\": toWireType, \"argPackAdvance\": 8, \"readValueFromPointer\": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null });\n        }\n        function __embind_register_memory_view(rawType, dataTypeIndex, name) {\n          var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\n          var TA = typeMapping[dataTypeIndex];\n          function decodeMemoryView(handle) {\n            handle = handle >> 2;\n            var heap = GROWABLE_HEAP_U32();\n            var size = heap[handle >>> 0];\n            var data = heap[handle + 1 >>> 0];\n            return new TA(heap.buffer, data, size);\n          }\n          name = readLatin1String(name);\n          registerType(rawType, { name, \"fromWireType\": decodeMemoryView, \"argPackAdvance\": 8, \"readValueFromPointer\": decodeMemoryView }, { ignoreDuplicateRegistrations: true });\n        }\n        function __embind_register_std_string(rawType, name) {\n          name = readLatin1String(name);\n          var stdStringIsUTF8 = name === \"std::string\";\n          registerType(rawType, { name, \"fromWireType\": function(value) {\n            var length = GROWABLE_HEAP_U32()[value >>> 2];\n            var payload = value + 4;\n            var str;\n            if (stdStringIsUTF8) {\n              var decodeStartPtr = payload;\n              for (var i = 0; i <= length; ++i) {\n                var currentBytePtr = payload + i;\n                if (i == length || GROWABLE_HEAP_U8()[currentBytePtr >>> 0] == 0) {\n                  var maxRead = currentBytePtr - decodeStartPtr;\n                  var stringSegment = UTF8ToString(decodeStartPtr, maxRead);\n                  if (str === void 0) {\n                    str = stringSegment;\n                  } else {\n                    str += String.fromCharCode(0);\n                    str += stringSegment;\n                  }\n                  decodeStartPtr = currentBytePtr + 1;\n                }\n              }\n            } else {\n              var a = new Array(length);\n              for (var i = 0; i < length; ++i) {\n                a[i] = String.fromCharCode(GROWABLE_HEAP_U8()[payload + i >>> 0]);\n              }\n              str = a.join(\"\");\n            }\n            _free(value);\n            return str;\n          }, \"toWireType\": function(destructors, value) {\n            if (value instanceof ArrayBuffer) {\n              value = new Uint8Array(value);\n            }\n            var length;\n            var valueIsOfTypeString = typeof value == \"string\";\n            if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {\n              throwBindingError(\"Cannot pass non-string to std::string\");\n            }\n            if (stdStringIsUTF8 && valueIsOfTypeString) {\n              length = lengthBytesUTF8(value);\n            } else {\n              length = value.length;\n            }\n            var base = _malloc(4 + length + 1);\n            var ptr = base + 4;\n            ptr >>>= 0;\n            GROWABLE_HEAP_U32()[base >>> 2] = length;\n            if (stdStringIsUTF8 && valueIsOfTypeString) {\n              stringToUTF8(value, ptr, length + 1);\n            } else {\n              if (valueIsOfTypeString) {\n                for (var i = 0; i < length; ++i) {\n                  var charCode = value.charCodeAt(i);\n                  if (charCode > 255) {\n                    _free(ptr);\n                    throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\");\n                  }\n                  GROWABLE_HEAP_U8()[ptr + i >>> 0] = charCode;\n                }\n              } else {\n                for (var i = 0; i < length; ++i) {\n                  GROWABLE_HEAP_U8()[ptr + i >>> 0] = value[i];\n                }\n              }\n            }\n            if (destructors !== null) {\n              destructors.push(_free, base);\n            }\n            return base;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: function(ptr) {\n            _free(ptr);\n          } });\n        }\n        var UTF16Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf-16le\") : void 0;\n        function UTF16ToString(ptr, maxBytesToRead) {\n          var endPtr = ptr;\n          var idx = endPtr >> 1;\n          var maxIdx = idx + maxBytesToRead / 2;\n          while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx >>> 0])\n            ++idx;\n          endPtr = idx << 1;\n          if (endPtr - ptr > 32 && UTF16Decoder)\n            return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr));\n          var str = \"\";\n          for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {\n            var codeUnit = GROWABLE_HEAP_I16()[ptr + i * 2 >>> 1];\n            if (codeUnit == 0)\n              break;\n            str += String.fromCharCode(codeUnit);\n          }\n          return str;\n        }\n        function stringToUTF16(str, outPtr, maxBytesToWrite) {\n          if (maxBytesToWrite === void 0) {\n            maxBytesToWrite = 2147483647;\n          }\n          if (maxBytesToWrite < 2)\n            return 0;\n          maxBytesToWrite -= 2;\n          var startPtr = outPtr;\n          var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;\n          for (var i = 0; i < numCharsToWrite; ++i) {\n            var codeUnit = str.charCodeAt(i);\n            GROWABLE_HEAP_I16()[outPtr >>> 1] = codeUnit;\n            outPtr += 2;\n          }\n          GROWABLE_HEAP_I16()[outPtr >>> 1] = 0;\n          return outPtr - startPtr;\n        }\n        function lengthBytesUTF16(str) {\n          return str.length * 2;\n        }\n        function UTF32ToString(ptr, maxBytesToRead) {\n          var i = 0;\n          var str = \"\";\n          while (!(i >= maxBytesToRead / 4)) {\n            var utf32 = GROWABLE_HEAP_I32()[ptr + i * 4 >>> 2];\n            if (utf32 == 0)\n              break;\n            ++i;\n            if (utf32 >= 65536) {\n              var ch = utf32 - 65536;\n              str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n            } else {\n              str += String.fromCharCode(utf32);\n            }\n          }\n          return str;\n        }\n        function stringToUTF32(str, outPtr, maxBytesToWrite) {\n          outPtr >>>= 0;\n          if (maxBytesToWrite === void 0) {\n            maxBytesToWrite = 2147483647;\n          }\n          if (maxBytesToWrite < 4)\n            return 0;\n          var startPtr = outPtr;\n          var endPtr = startPtr + maxBytesToWrite - 4;\n          for (var i = 0; i < str.length; ++i) {\n            var codeUnit = str.charCodeAt(i);\n            if (codeUnit >= 55296 && codeUnit <= 57343) {\n              var trailSurrogate = str.charCodeAt(++i);\n              codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;\n            }\n            GROWABLE_HEAP_I32()[outPtr >>> 2] = codeUnit;\n            outPtr += 4;\n            if (outPtr + 4 > endPtr)\n              break;\n          }\n          GROWABLE_HEAP_I32()[outPtr >>> 2] = 0;\n          return outPtr - startPtr;\n        }\n        function lengthBytesUTF32(str) {\n          var len = 0;\n          for (var i = 0; i < str.length; ++i) {\n            var codeUnit = str.charCodeAt(i);\n            if (codeUnit >= 55296 && codeUnit <= 57343)\n              ++i;\n            len += 4;\n          }\n          return len;\n        }\n        function __embind_register_std_wstring(rawType, charSize, name) {\n          name = readLatin1String(name);\n          var decodeString, encodeString, getHeap, lengthBytesUTF, shift;\n          if (charSize === 2) {\n            decodeString = UTF16ToString;\n            encodeString = stringToUTF16;\n            lengthBytesUTF = lengthBytesUTF16;\n            getHeap = () => GROWABLE_HEAP_U16();\n            shift = 1;\n          } else if (charSize === 4) {\n            decodeString = UTF32ToString;\n            encodeString = stringToUTF32;\n            lengthBytesUTF = lengthBytesUTF32;\n            getHeap = () => GROWABLE_HEAP_U32();\n            shift = 2;\n          }\n          registerType(rawType, { name, \"fromWireType\": function(value) {\n            var length = GROWABLE_HEAP_U32()[value >>> 2];\n            var HEAP = getHeap();\n            var str;\n            var decodeStartPtr = value + 4;\n            for (var i = 0; i <= length; ++i) {\n              var currentBytePtr = value + 4 + i * charSize;\n              if (i == length || HEAP[currentBytePtr >>> shift] == 0) {\n                var maxReadBytes = currentBytePtr - decodeStartPtr;\n                var stringSegment = decodeString(decodeStartPtr, maxReadBytes);\n                if (str === void 0) {\n                  str = stringSegment;\n                } else {\n                  str += String.fromCharCode(0);\n                  str += stringSegment;\n                }\n                decodeStartPtr = currentBytePtr + charSize;\n              }\n            }\n            _free(value);\n            return str;\n          }, \"toWireType\": function(destructors, value) {\n            if (!(typeof value == \"string\")) {\n              throwBindingError(\"Cannot pass non-string to C++ string type \" + name);\n            }\n            var length = lengthBytesUTF(value);\n            var ptr = _malloc(4 + length + charSize);\n            ptr >>>= 0;\n            GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift;\n            encodeString(value, ptr + 4, length + charSize);\n            if (destructors !== null) {\n              destructors.push(_free, ptr);\n            }\n            return ptr;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: function(ptr) {\n            _free(ptr);\n          } });\n        }\n        function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {\n          tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] };\n        }\n        function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {\n          tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });\n        }\n        function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {\n          structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };\n        }\n        function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {\n          structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });\n        }\n        function __embind_register_void(rawType, name) {\n          name = readLatin1String(name);\n          registerType(rawType, { isVoid: true, name, \"argPackAdvance\": 0, \"fromWireType\": function() {\n            return void 0;\n          }, \"toWireType\": function(destructors, o) {\n            return void 0;\n          } });\n        }\n        function __emscripten_err(str) {\n          err(UTF8ToString(str));\n        }\n        function executeNotifiedProxyingQueue(queue) {\n          Atomics.store(GROWABLE_HEAP_I32(), queue >> 2, 1);\n          if (_pthread_self()) {\n            __emscripten_proxy_execute_task_queue(queue);\n          }\n          Atomics.compareExchange(GROWABLE_HEAP_I32(), queue >> 2, 1, 0);\n        }\n        Module[\"executeNotifiedProxyingQueue\"] = executeNotifiedProxyingQueue;\n        function __emscripten_notify_task_queue(targetThreadId, currThreadId, mainThreadId, queue) {\n          if (targetThreadId == currThreadId) {\n            setTimeout(() => executeNotifiedProxyingQueue(queue));\n          } else if (ENVIRONMENT_IS_PTHREAD) {\n            postMessage({ \"targetThread\": targetThreadId, \"cmd\": \"processProxyingQueue\", \"queue\": queue });\n          } else {\n            var worker = PThread.pthreads[targetThreadId];\n            if (!worker) {\n              return;\n            }\n            worker.postMessage({ \"cmd\": \"processProxyingQueue\", \"queue\": queue });\n          }\n          return 1;\n        }\n        function __emscripten_set_offscreencanvas_size(target, width, height) {\n          return -1;\n        }\n        function __emval_as(handle, returnType, destructorsRef) {\n          handle = Emval.toValue(handle);\n          returnType = requireRegisteredType(returnType, \"emval::as\");\n          var destructors = [];\n          var rd = Emval.toHandle(destructors);\n          GROWABLE_HEAP_U32()[destructorsRef >>> 2] = rd;\n          return returnType[\"toWireType\"](destructors, handle);\n        }\n        function emval_lookupTypes(argCount, argTypes) {\n          var a = new Array(argCount);\n          for (var i = 0; i < argCount; ++i) {\n            a[i] = requireRegisteredType(GROWABLE_HEAP_U32()[argTypes + i * 4 >>> 2], \"parameter \" + i);\n          }\n          return a;\n        }\n        function __emval_call(handle, argCount, argTypes, argv) {\n          handle = Emval.toValue(handle);\n          var types = emval_lookupTypes(argCount, argTypes);\n          var args = new Array(argCount);\n          for (var i = 0; i < argCount; ++i) {\n            var type = types[i];\n            args[i] = type[\"readValueFromPointer\"](argv);\n            argv += type[\"argPackAdvance\"];\n          }\n          var rv = handle.apply(void 0, args);\n          return Emval.toHandle(rv);\n        }\n        var emval_symbols = {};\n        function getStringOrSymbol(address) {\n          var symbol = emval_symbols[address];\n          if (symbol === void 0) {\n            return readLatin1String(address);\n          }\n          return symbol;\n        }\n        function emval_get_global() {\n          if (typeof globalThis == \"object\") {\n            return globalThis;\n          }\n          return function() {\n            return Function;\n          }()(\"return this\")();\n        }\n        function __emval_get_global(name) {\n          if (name === 0) {\n            return Emval.toHandle(emval_get_global());\n          } else {\n            name = getStringOrSymbol(name);\n            return Emval.toHandle(emval_get_global()[name]);\n          }\n        }\n        function __emval_get_property(handle, key) {\n          handle = Emval.toValue(handle);\n          key = Emval.toValue(key);\n          return Emval.toHandle(handle[key]);\n        }\n        function __emval_incref(handle) {\n          if (handle > 4) {\n            emval_handle_array[handle].refcount += 1;\n          }\n        }\n        function __emval_instanceof(object, constructor) {\n          object = Emval.toValue(object);\n          constructor = Emval.toValue(constructor);\n          return object instanceof constructor;\n        }\n        function __emval_is_number(handle) {\n          handle = Emval.toValue(handle);\n          return typeof handle == \"number\";\n        }\n        function __emval_new_array() {\n          return Emval.toHandle([]);\n        }\n        function __emval_new_cstring(v) {\n          return Emval.toHandle(getStringOrSymbol(v));\n        }\n        function __emval_new_object() {\n          return Emval.toHandle({});\n        }\n        function __emval_run_destructors(handle) {\n          var destructors = Emval.toValue(handle);\n          runDestructors(destructors);\n          __emval_decref(handle);\n        }\n        function __emval_set_property(handle, key, value) {\n          handle = Emval.toValue(handle);\n          key = Emval.toValue(key);\n          value = Emval.toValue(value);\n          handle[key] = value;\n        }\n        function __emval_take_value(type, arg) {\n          type = requireRegisteredType(type, \"_emval_take_value\");\n          var v = type[\"readValueFromPointer\"](arg);\n          return Emval.toHandle(v);\n        }\n        function _abort() {\n          abort(\"\");\n        }\n        function warnOnce(text) {\n          if (!warnOnce.shown)\n            warnOnce.shown = {};\n          if (!warnOnce.shown[text]) {\n            warnOnce.shown[text] = 1;\n            if (ENVIRONMENT_IS_NODE)\n              text = \"warning: \" + text;\n            err(text);\n          }\n        }\n        function _emscripten_check_blocking_allowed() {\n          if (ENVIRONMENT_IS_NODE)\n            return;\n          if (ENVIRONMENT_IS_WORKER)\n            return;\n          warnOnce(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\");\n        }\n        var _emscripten_get_now;\n        if (ENVIRONMENT_IS_NODE) {\n          _emscripten_get_now = () => {\n            var t = process[\"hrtime\"]();\n            return t[0] * 1e3 + t[1] / 1e6;\n          };\n        } else\n          _emscripten_get_now = () => performance.timeOrigin + performance.now();\n        function _emscripten_memcpy_big(dest, src, num) {\n          GROWABLE_HEAP_U8().copyWithin(dest >>> 0, src >>> 0, src + num >>> 0);\n        }\n        function withStackSave(f) {\n          var stack = stackSave();\n          var ret = f();\n          stackRestore(stack);\n          return ret;\n        }\n        function _emscripten_proxy_to_main_thread_js(index, sync) {\n          var numCallArgs = arguments.length - 2;\n          var outerArgs = arguments;\n          return withStackSave(() => {\n            var serializedNumCallArgs = numCallArgs;\n            var args = stackAlloc(serializedNumCallArgs * 8);\n            var b = args >> 3;\n            for (var i = 0; i < numCallArgs; i++) {\n              var arg = outerArgs[2 + i];\n              GROWABLE_HEAP_F64()[b + i >>> 0] = arg;\n            }\n            return _emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync);\n          });\n        }\n        var _emscripten_receive_on_main_thread_js_callArgs = [];\n        function _emscripten_receive_on_main_thread_js(index, numCallArgs, args) {\n          _emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs;\n          var b = args >> 3;\n          for (var i = 0; i < numCallArgs; i++) {\n            _emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0];\n          }\n          var func = proxiedFunctionTable[index];\n          return func.apply(null, _emscripten_receive_on_main_thread_js_callArgs);\n        }\n        function getHeapMax() {\n          return 4294901760;\n        }\n        function emscripten_realloc_buffer(size) {\n          var b = wasmMemory.buffer;\n          try {\n            wasmMemory.grow(size - b.byteLength + 65535 >>> 16);\n            updateMemoryViews();\n            return 1;\n          } catch (e) {\n          }\n        }\n        function _emscripten_resize_heap(requestedSize) {\n          var oldSize = GROWABLE_HEAP_U8().length;\n          requestedSize = requestedSize >>> 0;\n          if (requestedSize <= oldSize) {\n            return false;\n          }\n          var maxHeapSize = getHeapMax();\n          if (requestedSize > maxHeapSize) {\n            return false;\n          }\n          let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;\n          for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n            var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n            overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n            var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n            var replacement = emscripten_realloc_buffer(newSize);\n            if (replacement) {\n              return true;\n            }\n          }\n          return false;\n        }\n        function _emscripten_unwind_to_js_event_loop() {\n          throw \"unwind\";\n        }\n        var ENV = {};\n        function getExecutableName() {\n          return thisProgram || \"./this.program\";\n        }\n        function getEnvStrings() {\n          if (!getEnvStrings.strings) {\n            var lang = (typeof navigator == \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n            var env = { \"USER\": \"web_user\", \"LOGNAME\": \"web_user\", \"PATH\": \"/\", \"PWD\": \"/\", \"HOME\": \"/home/web_user\", \"LANG\": lang, \"_\": getExecutableName() };\n            for (var x in ENV) {\n              if (ENV[x] === void 0)\n                delete env[x];\n              else\n                env[x] = ENV[x];\n            }\n            var strings = [];\n            for (var x in env) {\n              strings.push(x + \"=\" + env[x]);\n            }\n            getEnvStrings.strings = strings;\n          }\n          return getEnvStrings.strings;\n        }\n        function writeAsciiToMemory(str, buffer, dontAddNull) {\n          for (var i = 0; i < str.length; ++i) {\n            GROWABLE_HEAP_I8()[buffer++ >>> 0] = str.charCodeAt(i);\n          }\n          if (!dontAddNull)\n            GROWABLE_HEAP_I8()[buffer >>> 0] = 0;\n        }\n        function _environ_get(__environ, environ_buf) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(6, 1, __environ, environ_buf);\n          var bufSize = 0;\n          getEnvStrings().forEach(function(string, i) {\n            var ptr = environ_buf + bufSize;\n            GROWABLE_HEAP_U32()[__environ + i * 4 >>> 2] = ptr;\n            writeAsciiToMemory(string, ptr);\n            bufSize += string.length + 1;\n          });\n          return 0;\n        }\n        function _environ_sizes_get(penviron_count, penviron_buf_size) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(7, 1, penviron_count, penviron_buf_size);\n          var strings = getEnvStrings();\n          GROWABLE_HEAP_U32()[penviron_count >>> 2] = strings.length;\n          var bufSize = 0;\n          strings.forEach(function(string) {\n            bufSize += string.length + 1;\n          });\n          GROWABLE_HEAP_U32()[penviron_buf_size >>> 2] = bufSize;\n          return 0;\n        }\n        function _fd_close(fd) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(8, 1, fd);\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            FS.close(stream);\n            return 0;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return e.errno;\n          }\n        }\n        function doReadv(stream, iov, iovcnt, offset) {\n          var ret = 0;\n          for (var i = 0; i < iovcnt; i++) {\n            var ptr = GROWABLE_HEAP_U32()[iov >>> 2];\n            var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2];\n            iov += 8;\n            var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset);\n            if (curr < 0)\n              return -1;\n            ret += curr;\n            if (curr < len)\n              break;\n            if (typeof offset !== \"undefined\") {\n              offset += curr;\n            }\n          }\n          return ret;\n        }\n        function _fd_read(fd, iov, iovcnt, pnum) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(9, 1, fd, iov, iovcnt, pnum);\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            var num = doReadv(stream, iov, iovcnt);\n            GROWABLE_HEAP_U32()[pnum >>> 2] = num;\n            return 0;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return e.errno;\n          }\n        }\n        function convertI32PairToI53Checked(lo, hi) {\n          return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN;\n        }\n        function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(10, 1, fd, offset_low, offset_high, whence, newOffset);\n          try {\n            var offset = convertI32PairToI53Checked(offset_low, offset_high);\n            if (isNaN(offset))\n              return 61;\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            FS.llseek(stream, offset, whence);\n            tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1];\n            if (stream.getdents && offset === 0 && whence === 0)\n              stream.getdents = null;\n            return 0;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return e.errno;\n          }\n        }\n        function doWritev(stream, iov, iovcnt, offset) {\n          var ret = 0;\n          for (var i = 0; i < iovcnt; i++) {\n            var ptr = GROWABLE_HEAP_U32()[iov >>> 2];\n            var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2];\n            iov += 8;\n            var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset);\n            if (curr < 0)\n              return -1;\n            ret += curr;\n            if (typeof offset !== \"undefined\") {\n              offset += curr;\n            }\n          }\n          return ret;\n        }\n        function _fd_write(fd, iov, iovcnt, pnum) {\n          if (ENVIRONMENT_IS_PTHREAD)\n            return _emscripten_proxy_to_main_thread_js(11, 1, fd, iov, iovcnt, pnum);\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            var num = doWritev(stream, iov, iovcnt);\n            GROWABLE_HEAP_U32()[pnum >>> 2] = num;\n            return 0;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return e.errno;\n          }\n        }\n        function __isLeapYear(year) {\n          return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n        }\n        function __arraySum(array, index) {\n          var sum = 0;\n          for (var i = 0; i <= index; sum += array[i++]) {\n          }\n          return sum;\n        }\n        var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n        var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n        function __addDays(date, days) {\n          var newDate = new Date(date.getTime());\n          while (days > 0) {\n            var leap = __isLeapYear(newDate.getFullYear());\n            var currentMonth = newDate.getMonth();\n            var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];\n            if (days > daysInCurrentMonth - newDate.getDate()) {\n              days -= daysInCurrentMonth - newDate.getDate() + 1;\n              newDate.setDate(1);\n              if (currentMonth < 11) {\n                newDate.setMonth(currentMonth + 1);\n              } else {\n                newDate.setMonth(0);\n                newDate.setFullYear(newDate.getFullYear() + 1);\n              }\n            } else {\n              newDate.setDate(newDate.getDate() + days);\n              return newDate;\n            }\n          }\n          return newDate;\n        }\n        function writeArrayToMemory(array, buffer) {\n          GROWABLE_HEAP_I8().set(array, buffer >>> 0);\n        }\n        function _strftime(s, maxsize, format, tm) {\n          var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >>> 2];\n          var date = { tm_sec: GROWABLE_HEAP_I32()[tm >>> 2], tm_min: GROWABLE_HEAP_I32()[tm + 4 >>> 2], tm_hour: GROWABLE_HEAP_I32()[tm + 8 >>> 2], tm_mday: GROWABLE_HEAP_I32()[tm + 12 >>> 2], tm_mon: GROWABLE_HEAP_I32()[tm + 16 >>> 2], tm_year: GROWABLE_HEAP_I32()[tm + 20 >>> 2], tm_wday: GROWABLE_HEAP_I32()[tm + 24 >>> 2], tm_yday: GROWABLE_HEAP_I32()[tm + 28 >>> 2], tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >>> 2], tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : \"\" };\n          var pattern = UTF8ToString(format);\n          var EXPANSION_RULES_1 = { \"%c\": \"%a %b %d %H:%M:%S %Y\", \"%D\": \"%m/%d/%y\", \"%F\": \"%Y-%m-%d\", \"%h\": \"%b\", \"%r\": \"%I:%M:%S %p\", \"%R\": \"%H:%M\", \"%T\": \"%H:%M:%S\", \"%x\": \"%m/%d/%y\", \"%X\": \"%H:%M:%S\", \"%Ec\": \"%c\", \"%EC\": \"%C\", \"%Ex\": \"%m/%d/%y\", \"%EX\": \"%H:%M:%S\", \"%Ey\": \"%y\", \"%EY\": \"%Y\", \"%Od\": \"%d\", \"%Oe\": \"%e\", \"%OH\": \"%H\", \"%OI\": \"%I\", \"%Om\": \"%m\", \"%OM\": \"%M\", \"%OS\": \"%S\", \"%Ou\": \"%u\", \"%OU\": \"%U\", \"%OV\": \"%V\", \"%Ow\": \"%w\", \"%OW\": \"%W\", \"%Oy\": \"%y\" };\n          for (var rule in EXPANSION_RULES_1) {\n            pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_1[rule]);\n          }\n          var WEEKDAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n          var MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n          function leadingSomething(value, digits, character) {\n            var str = typeof value == \"number\" ? value.toString() : value || \"\";\n            while (str.length < digits) {\n              str = character[0] + str;\n            }\n            return str;\n          }\n          function leadingNulls(value, digits) {\n            return leadingSomething(value, digits, \"0\");\n          }\n          function compareByDay(date1, date2) {\n            function sgn(value) {\n              return value < 0 ? -1 : value > 0 ? 1 : 0;\n            }\n            var compare;\n            if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {\n              if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {\n                compare = sgn(date1.getDate() - date2.getDate());\n              }\n            }\n            return compare;\n          }\n          function getFirstWeekStartDate(janFourth) {\n            switch (janFourth.getDay()) {\n              case 0:\n                return new Date(janFourth.getFullYear() - 1, 11, 29);\n              case 1:\n                return janFourth;\n              case 2:\n                return new Date(janFourth.getFullYear(), 0, 3);\n              case 3:\n                return new Date(janFourth.getFullYear(), 0, 2);\n              case 4:\n                return new Date(janFourth.getFullYear(), 0, 1);\n              case 5:\n                return new Date(janFourth.getFullYear() - 1, 11, 31);\n              case 6:\n                return new Date(janFourth.getFullYear() - 1, 11, 30);\n            }\n          }\n          function getWeekBasedYear(date2) {\n            var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday);\n            var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);\n            var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);\n            var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n            var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n            if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {\n              if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {\n                return thisDate.getFullYear() + 1;\n              }\n              return thisDate.getFullYear();\n            }\n            return thisDate.getFullYear() - 1;\n          }\n          var EXPANSION_RULES_2 = { \"%a\": function(date2) {\n            return WEEKDAYS[date2.tm_wday].substring(0, 3);\n          }, \"%A\": function(date2) {\n            return WEEKDAYS[date2.tm_wday];\n          }, \"%b\": function(date2) {\n            return MONTHS[date2.tm_mon].substring(0, 3);\n          }, \"%B\": function(date2) {\n            return MONTHS[date2.tm_mon];\n          }, \"%C\": function(date2) {\n            var year = date2.tm_year + 1900;\n            return leadingNulls(year / 100 | 0, 2);\n          }, \"%d\": function(date2) {\n            return leadingNulls(date2.tm_mday, 2);\n          }, \"%e\": function(date2) {\n            return leadingSomething(date2.tm_mday, 2, \" \");\n          }, \"%g\": function(date2) {\n            return getWeekBasedYear(date2).toString().substring(2);\n          }, \"%G\": function(date2) {\n            return getWeekBasedYear(date2);\n          }, \"%H\": function(date2) {\n            return leadingNulls(date2.tm_hour, 2);\n          }, \"%I\": function(date2) {\n            var twelveHour = date2.tm_hour;\n            if (twelveHour == 0)\n              twelveHour = 12;\n            else if (twelveHour > 12)\n              twelveHour -= 12;\n            return leadingNulls(twelveHour, 2);\n          }, \"%j\": function(date2) {\n            return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3);\n          }, \"%m\": function(date2) {\n            return leadingNulls(date2.tm_mon + 1, 2);\n          }, \"%M\": function(date2) {\n            return leadingNulls(date2.tm_min, 2);\n          }, \"%n\": function() {\n            return \"\\n\";\n          }, \"%p\": function(date2) {\n            if (date2.tm_hour >= 0 && date2.tm_hour < 12) {\n              return \"AM\";\n            }\n            return \"PM\";\n          }, \"%S\": function(date2) {\n            return leadingNulls(date2.tm_sec, 2);\n          }, \"%t\": function() {\n            return \"\t\";\n          }, \"%u\": function(date2) {\n            return date2.tm_wday || 7;\n          }, \"%U\": function(date2) {\n            var days = date2.tm_yday + 7 - date2.tm_wday;\n            return leadingNulls(Math.floor(days / 7), 2);\n          }, \"%V\": function(date2) {\n            var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7);\n            if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) {\n              val++;\n            }\n            if (!val) {\n              val = 52;\n              var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7;\n              if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) {\n                val++;\n              }\n            } else if (val == 53) {\n              var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7;\n              if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year)))\n                val = 1;\n            }\n            return leadingNulls(val, 2);\n          }, \"%w\": function(date2) {\n            return date2.tm_wday;\n          }, \"%W\": function(date2) {\n            var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7;\n            return leadingNulls(Math.floor(days / 7), 2);\n          }, \"%y\": function(date2) {\n            return (date2.tm_year + 1900).toString().substring(2);\n          }, \"%Y\": function(date2) {\n            return date2.tm_year + 1900;\n          }, \"%z\": function(date2) {\n            var off = date2.tm_gmtoff;\n            var ahead = off >= 0;\n            off = Math.abs(off) / 60;\n            off = off / 60 * 100 + off % 60;\n            return (ahead ? \"+\" : \"-\") + String(\"0000\" + off).slice(-4);\n          }, \"%Z\": function(date2) {\n            return date2.tm_zone;\n          }, \"%%\": function() {\n            return \"%\";\n          } };\n          pattern = pattern.replace(/%%/g, \"\\0\\0\");\n          for (var rule in EXPANSION_RULES_2) {\n            if (pattern.includes(rule)) {\n              pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_2[rule](date));\n            }\n          }\n          pattern = pattern.replace(/\\0\\0/g, \"%\");\n          var bytes = intArrayFromString(pattern, false);\n          if (bytes.length > maxsize) {\n            return 0;\n          }\n          writeArrayToMemory(bytes, s);\n          return bytes.length - 1;\n        }\n        function _strftime_l(s, maxsize, format, tm, loc) {\n          return _strftime(s, maxsize, format, tm);\n        }\n        PThread.init();\n        var FSNode = function(parent, name, mode, rdev) {\n          if (!parent) {\n            parent = this;\n          }\n          this.parent = parent;\n          this.mount = parent.mount;\n          this.mounted = null;\n          this.id = FS.nextInode++;\n          this.name = name;\n          this.mode = mode;\n          this.node_ops = {};\n          this.stream_ops = {};\n          this.rdev = rdev;\n        };\n        var readMode = 292 | 73;\n        var writeMode = 146;\n        Object.defineProperties(FSNode.prototype, { read: { get: function() {\n          return (this.mode & readMode) === readMode;\n        }, set: function(val) {\n          val ? this.mode |= readMode : this.mode &= ~readMode;\n        } }, write: { get: function() {\n          return (this.mode & writeMode) === writeMode;\n        }, set: function(val) {\n          val ? this.mode |= writeMode : this.mode &= ~writeMode;\n        } }, isFolder: { get: function() {\n          return FS.isDir(this.mode);\n        } }, isDevice: { get: function() {\n          return FS.isChrdev(this.mode);\n        } } });\n        FS.FSNode = FSNode;\n        FS.staticInit();\n        InternalError = Module[\"InternalError\"] = extendError(Error, \"InternalError\");\n        embind_init_charCodes();\n        BindingError = Module[\"BindingError\"] = extendError(Error, \"BindingError\");\n        init_ClassHandle();\n        init_embind();\n        init_RegisteredPointer();\n        UnboundTypeError = Module[\"UnboundTypeError\"] = extendError(Error, \"UnboundTypeError\");\n        init_emval();\n        var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, ___syscall_fcntl64, ___syscall_ioctl, ___syscall_openat, _environ_get, _environ_sizes_get, _fd_close, _fd_read, _fd_seek, _fd_write];\n        var wasmImports = { \"f\": ___cxa_throw, \"V\": ___emscripten_init_main_thread_js, \"K\": ___emscripten_thread_cleanup, \"B\": ___syscall_fcntl64, \"P\": ___syscall_ioctl, \"Q\": ___syscall_openat, \"Z\": __dlinit, \"aa\": __dlopen_js, \"$\": __dlsym_catchup_js, \"fa\": __embind_finalize_value_array, \"u\": __embind_finalize_value_object, \"I\": __embind_register_bigint, \"da\": __embind_register_bool, \"t\": __embind_register_class, \"s\": __embind_register_class_constructor, \"d\": __embind_register_class_function, \"ca\": __embind_register_emval, \"F\": __embind_register_enum, \"q\": __embind_register_enum_value, \"D\": __embind_register_float, \"c\": __embind_register_function, \"p\": __embind_register_integer, \"i\": __embind_register_memory_view, \"E\": __embind_register_std_string, \"x\": __embind_register_std_wstring, \"ga\": __embind_register_value_array, \"k\": __embind_register_value_array_element, \"v\": __embind_register_value_object, \"h\": __embind_register_value_object_field, \"ea\": __embind_register_void, \"_\": __emscripten_err, \"X\": __emscripten_notify_task_queue, \"U\": __emscripten_set_offscreencanvas_size, \"m\": __emval_as, \"z\": __emval_call, \"b\": __emval_decref, \"G\": __emval_get_global, \"n\": __emval_get_property, \"o\": __emval_incref, \"ia\": __emval_instanceof, \"ha\": __emval_is_number, \"y\": __emval_new_array, \"g\": __emval_new_cstring, \"w\": __emval_new_object, \"l\": __emval_run_destructors, \"j\": __emval_set_property, \"e\": __emval_take_value, \"C\": _abort, \"W\": _emscripten_check_blocking_allowed, \"r\": _emscripten_get_now, \"Y\": _emscripten_memcpy_big, \"T\": _emscripten_receive_on_main_thread_js, \"R\": _emscripten_resize_heap, \"ba\": _emscripten_unwind_to_js_event_loop, \"M\": _environ_get, \"N\": _environ_sizes_get, \"J\": _exit, \"A\": _fd_close, \"O\": _fd_read, \"H\": _fd_seek, \"S\": _fd_write, \"a\": wasmMemory || Module[\"wasmMemory\"], \"L\": _strftime_l };\n        createWasm();\n        var _malloc = function() {\n          return (_malloc = Module[\"asm\"][\"la\"]).apply(null, arguments);\n        };\n        Module[\"__emscripten_tls_init\"] = function() {\n          return (Module[\"__emscripten_tls_init\"] = Module[\"asm\"][\"ma\"]).apply(null, arguments);\n        };\n        var _pthread_self = Module[\"_pthread_self\"] = function() {\n          return (_pthread_self = Module[\"_pthread_self\"] = Module[\"asm\"][\"na\"]).apply(null, arguments);\n        };\n        var ___getTypeName = Module[\"___getTypeName\"] = function() {\n          return (___getTypeName = Module[\"___getTypeName\"] = Module[\"asm\"][\"oa\"]).apply(null, arguments);\n        };\n        Module[\"__embind_initialize_bindings\"] = function() {\n          return (Module[\"__embind_initialize_bindings\"] = Module[\"asm\"][\"pa\"]).apply(null, arguments);\n        };\n        var ___errno_location = function() {\n          return (___errno_location = Module[\"asm\"][\"qa\"]).apply(null, arguments);\n        };\n        var __emscripten_thread_init = Module[\"__emscripten_thread_init\"] = function() {\n          return (__emscripten_thread_init = Module[\"__emscripten_thread_init\"] = Module[\"asm\"][\"ra\"]).apply(null, arguments);\n        };\n        Module[\"__emscripten_thread_crashed\"] = function() {\n          return (Module[\"__emscripten_thread_crashed\"] = Module[\"asm\"][\"sa\"]).apply(null, arguments);\n        };\n        var _emscripten_run_in_main_runtime_thread_js = function() {\n          return (_emscripten_run_in_main_runtime_thread_js = Module[\"asm\"][\"ta\"]).apply(null, arguments);\n        };\n        var __emscripten_proxy_execute_task_queue = Module[\"__emscripten_proxy_execute_task_queue\"] = function() {\n          return (__emscripten_proxy_execute_task_queue = Module[\"__emscripten_proxy_execute_task_queue\"] = Module[\"asm\"][\"ua\"]).apply(null, arguments);\n        };\n        var __emscripten_thread_free_data = function() {\n          return (__emscripten_thread_free_data = Module[\"asm\"][\"va\"]).apply(null, arguments);\n        };\n        var __emscripten_thread_exit = Module[\"__emscripten_thread_exit\"] = function() {\n          return (__emscripten_thread_exit = Module[\"__emscripten_thread_exit\"] = Module[\"asm\"][\"wa\"]).apply(null, arguments);\n        };\n        var _free = function() {\n          return (_free = Module[\"asm\"][\"xa\"]).apply(null, arguments);\n        };\n        var _emscripten_stack_set_limits = function() {\n          return (_emscripten_stack_set_limits = Module[\"asm\"][\"ya\"]).apply(null, arguments);\n        };\n        var stackSave = function() {\n          return (stackSave = Module[\"asm\"][\"za\"]).apply(null, arguments);\n        };\n        var stackRestore = function() {\n          return (stackRestore = Module[\"asm\"][\"Aa\"]).apply(null, arguments);\n        };\n        var stackAlloc = function() {\n          return (stackAlloc = Module[\"asm\"][\"Ba\"]).apply(null, arguments);\n        };\n        var ___cxa_is_pointer_type = function() {\n          return (___cxa_is_pointer_type = Module[\"asm\"][\"Ca\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_jiji\"] = function() {\n          return (Module[\"dynCall_jiji\"] = Module[\"asm\"][\"Da\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_viijii\"] = function() {\n          return (Module[\"dynCall_viijii\"] = Module[\"asm\"][\"Ea\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_iiiiij\"] = function() {\n          return (Module[\"dynCall_iiiiij\"] = Module[\"asm\"][\"Fa\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_iiiiijj\"] = function() {\n          return (Module[\"dynCall_iiiiijj\"] = Module[\"asm\"][\"Ga\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_iiiiiijj\"] = function() {\n          return (Module[\"dynCall_iiiiiijj\"] = Module[\"asm\"][\"Ha\"]).apply(null, arguments);\n        };\n        Module[\"keepRuntimeAlive\"] = keepRuntimeAlive;\n        Module[\"wasmMemory\"] = wasmMemory;\n        Module[\"ExitStatus\"] = ExitStatus;\n        Module[\"PThread\"] = PThread;\n        var calledRun;\n        dependenciesFulfilled = function runCaller() {\n          if (!calledRun)\n            run();\n          if (!calledRun)\n            dependenciesFulfilled = runCaller;\n        };\n        function run() {\n          if (runDependencies > 0) {\n            return;\n          }\n          if (ENVIRONMENT_IS_PTHREAD) {\n            readyPromiseResolve(Module);\n            initRuntime();\n            startWorker(Module);\n            return;\n          }\n          preRun();\n          if (runDependencies > 0) {\n            return;\n          }\n          function doRun() {\n            if (calledRun)\n              return;\n            calledRun = true;\n            Module[\"calledRun\"] = true;\n            if (ABORT)\n              return;\n            initRuntime();\n            readyPromiseResolve(Module);\n            if (Module[\"onRuntimeInitialized\"])\n              Module[\"onRuntimeInitialized\"]();\n            postRun();\n          }\n          if (Module[\"setStatus\"]) {\n            Module[\"setStatus\"](\"Running...\");\n            setTimeout(function() {\n              setTimeout(function() {\n                Module[\"setStatus\"](\"\");\n              }, 1);\n              doRun();\n            }, 1);\n          } else {\n            doRun();\n          }\n        }\n        if (Module[\"preInit\"]) {\n          if (typeof Module[\"preInit\"] == \"function\")\n            Module[\"preInit\"] = [Module[\"preInit\"]];\n          while (Module[\"preInit\"].length > 0) {\n            Module[\"preInit\"].pop()();\n          }\n        }\n        run();\n        return WebIFCWasm3.ready;\n      };\n    })();\n    if (typeof exports === \"object\" && typeof module === \"object\")\n      module.exports = WebIFCWasm2;\n    else if (typeof define === \"function\" && define[\"amd\"])\n      define([], function() {\n        return WebIFCWasm2;\n      });\n    else if (typeof exports === \"object\")\n      exports[\"WebIFCWasm\"] = WebIFCWasm2;\n  }\n});\n\n// dist/web-ifc.js\nvar require_web_ifc = __commonJS({\n  \"dist/web-ifc.js\"(exports, module) {\n    var WebIFCWasm2 = (() => {\n      var _scriptDir = typeof document !== \"undefined\" && document.currentScript ? document.currentScript.src : void 0;\n      if (typeof __filename !== \"undefined\")\n        _scriptDir = _scriptDir || __filename;\n      return function(WebIFCWasm3 = {}) {\n        var Module = typeof WebIFCWasm3 != \"undefined\" ? WebIFCWasm3 : {};\n        var readyPromiseResolve, readyPromiseReject;\n        Module[\"ready\"] = new Promise(function(resolve, reject) {\n          readyPromiseResolve = resolve;\n          readyPromiseReject = reject;\n        });\n        var moduleOverrides = Object.assign({}, Module);\n        var thisProgram = \"./this.program\";\n        var ENVIRONMENT_IS_WEB = typeof window == \"object\";\n        var ENVIRONMENT_IS_WORKER = typeof importScripts == \"function\";\n        var ENVIRONMENT_IS_NODE = typeof process == \"object\" && typeof process.versions == \"object\" && typeof process.versions.node == \"string\";\n        var scriptDirectory = \"\";\n        function locateFile(path) {\n          if (Module[\"locateFile\"]) {\n            return Module[\"locateFile\"](path, scriptDirectory);\n          }\n          return scriptDirectory + path;\n        }\n        var read_, readAsync, readBinary;\n        if (ENVIRONMENT_IS_NODE) {\n          var fs = __require(\"fs\");\n          var nodePath = __require(\"path\");\n          if (ENVIRONMENT_IS_WORKER) {\n            scriptDirectory = nodePath.dirname(scriptDirectory) + \"/\";\n          } else {\n            scriptDirectory = __dirname + \"/\";\n          }\n          read_ = (filename, binary) => {\n            filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);\n            return fs.readFileSync(filename, binary ? void 0 : \"utf8\");\n          };\n          readBinary = (filename) => {\n            var ret = read_(filename, true);\n            if (!ret.buffer) {\n              ret = new Uint8Array(ret);\n            }\n            return ret;\n          };\n          readAsync = (filename, onload, onerror) => {\n            filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);\n            fs.readFile(filename, function(err2, data) {\n              if (err2)\n                onerror(err2);\n              else\n                onload(data.buffer);\n            });\n          };\n          if (process[\"argv\"].length > 1) {\n            thisProgram = process[\"argv\"][1].replace(/\\\\/g, \"/\");\n          }\n          process[\"argv\"].slice(2);\n          process[\"on\"](\"uncaughtException\", function(ex) {\n            if (!(ex instanceof ExitStatus)) {\n              throw ex;\n            }\n          });\n          var nodeMajor = process.version.match(/^v(\\d+)\\./)[1];\n          if (nodeMajor < 15) {\n            process[\"on\"](\"unhandledRejection\", function(reason) {\n              throw reason;\n            });\n          }\n          Module[\"inspect\"] = function() {\n            return \"[Emscripten Module object]\";\n          };\n        } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n          if (ENVIRONMENT_IS_WORKER) {\n            scriptDirectory = self.location.href;\n          } else if (typeof document != \"undefined\" && document.currentScript) {\n            scriptDirectory = document.currentScript.src;\n          }\n          if (_scriptDir) {\n            scriptDirectory = _scriptDir;\n          }\n          if (scriptDirectory.indexOf(\"blob:\") !== 0) {\n            scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1);\n          } else {\n            scriptDirectory = \"\";\n          }\n          {\n            read_ = (url) => {\n              var xhr = new XMLHttpRequest();\n              xhr.open(\"GET\", url, false);\n              xhr.send(null);\n              return xhr.responseText;\n            };\n            if (ENVIRONMENT_IS_WORKER) {\n              readBinary = (url) => {\n                var xhr = new XMLHttpRequest();\n                xhr.open(\"GET\", url, false);\n                xhr.responseType = \"arraybuffer\";\n                xhr.send(null);\n                return new Uint8Array(xhr.response);\n              };\n            }\n            readAsync = (url, onload, onerror) => {\n              var xhr = new XMLHttpRequest();\n              xhr.open(\"GET\", url, true);\n              xhr.responseType = \"arraybuffer\";\n              xhr.onload = () => {\n                if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n                  onload(xhr.response);\n                  return;\n                }\n                onerror();\n              };\n              xhr.onerror = onerror;\n              xhr.send(null);\n            };\n          }\n        } else ;\n        var out = Module[\"print\"] || console.log.bind(console);\n        var err = Module[\"printErr\"] || console.warn.bind(console);\n        Object.assign(Module, moduleOverrides);\n        moduleOverrides = null;\n        if (Module[\"arguments\"])\n          Module[\"arguments\"];\n        if (Module[\"thisProgram\"])\n          thisProgram = Module[\"thisProgram\"];\n        if (Module[\"quit\"])\n          Module[\"quit\"];\n        var wasmBinary;\n        if (Module[\"wasmBinary\"])\n          wasmBinary = Module[\"wasmBinary\"];\n        Module[\"noExitRuntime\"] || true;\n        if (typeof WebAssembly != \"object\") {\n          abort(\"no native wasm support detected\");\n        }\n        var wasmMemory;\n        var ABORT = false;\n        function assert(condition, text) {\n          if (!condition) {\n            abort(text);\n          }\n        }\n        var UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n        function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {\n          idx >>>= 0;\n          var endIdx = idx + maxBytesToRead;\n          var endPtr = idx;\n          while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n            ++endPtr;\n          if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n            return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n          }\n          var str = \"\";\n          while (idx < endPtr) {\n            var u0 = heapOrArray[idx++];\n            if (!(u0 & 128)) {\n              str += String.fromCharCode(u0);\n              continue;\n            }\n            var u1 = heapOrArray[idx++] & 63;\n            if ((u0 & 224) == 192) {\n              str += String.fromCharCode((u0 & 31) << 6 | u1);\n              continue;\n            }\n            var u2 = heapOrArray[idx++] & 63;\n            if ((u0 & 240) == 224) {\n              u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n            } else {\n              u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n            }\n            if (u0 < 65536) {\n              str += String.fromCharCode(u0);\n            } else {\n              var ch = u0 - 65536;\n              str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n            }\n          }\n          return str;\n        }\n        function UTF8ToString(ptr, maxBytesToRead) {\n          ptr >>>= 0;\n          return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\";\n        }\n        function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {\n          outIdx >>>= 0;\n          if (!(maxBytesToWrite > 0))\n            return 0;\n          var startIdx = outIdx;\n          var endIdx = outIdx + maxBytesToWrite - 1;\n          for (var i = 0; i < str.length; ++i) {\n            var u = str.charCodeAt(i);\n            if (u >= 55296 && u <= 57343) {\n              var u1 = str.charCodeAt(++i);\n              u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n            }\n            if (u <= 127) {\n              if (outIdx >= endIdx)\n                break;\n              heap[outIdx++ >>> 0] = u;\n            } else if (u <= 2047) {\n              if (outIdx + 1 >= endIdx)\n                break;\n              heap[outIdx++ >>> 0] = 192 | u >> 6;\n              heap[outIdx++ >>> 0] = 128 | u & 63;\n            } else if (u <= 65535) {\n              if (outIdx + 2 >= endIdx)\n                break;\n              heap[outIdx++ >>> 0] = 224 | u >> 12;\n              heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n              heap[outIdx++ >>> 0] = 128 | u & 63;\n            } else {\n              if (outIdx + 3 >= endIdx)\n                break;\n              heap[outIdx++ >>> 0] = 240 | u >> 18;\n              heap[outIdx++ >>> 0] = 128 | u >> 12 & 63;\n              heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n              heap[outIdx++ >>> 0] = 128 | u & 63;\n            }\n          }\n          heap[outIdx >>> 0] = 0;\n          return outIdx - startIdx;\n        }\n        function stringToUTF8(str, outPtr, maxBytesToWrite) {\n          return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n        }\n        function lengthBytesUTF8(str) {\n          var len = 0;\n          for (var i = 0; i < str.length; ++i) {\n            var c = str.charCodeAt(i);\n            if (c <= 127) {\n              len++;\n            } else if (c <= 2047) {\n              len += 2;\n            } else if (c >= 55296 && c <= 57343) {\n              len += 4;\n              ++i;\n            } else {\n              len += 3;\n            }\n          }\n          return len;\n        }\n        var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n        function updateMemoryViews() {\n          var b = wasmMemory.buffer;\n          Module[\"HEAP8\"] = HEAP8 = new Int8Array(b);\n          Module[\"HEAP16\"] = HEAP16 = new Int16Array(b);\n          Module[\"HEAP32\"] = HEAP32 = new Int32Array(b);\n          Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(b);\n          Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(b);\n          Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(b);\n          Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(b);\n          Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(b);\n        }\n        var wasmTable;\n        var __ATPRERUN__ = [];\n        var __ATINIT__ = [];\n        var __ATPOSTRUN__ = [];\n        function preRun() {\n          if (Module[\"preRun\"]) {\n            if (typeof Module[\"preRun\"] == \"function\")\n              Module[\"preRun\"] = [Module[\"preRun\"]];\n            while (Module[\"preRun\"].length) {\n              addOnPreRun(Module[\"preRun\"].shift());\n            }\n          }\n          callRuntimeCallbacks(__ATPRERUN__);\n        }\n        function initRuntime() {\n          if (!Module[\"noFSInit\"] && !FS.init.initialized)\n            FS.init();\n          FS.ignorePermissions = false;\n          callRuntimeCallbacks(__ATINIT__);\n        }\n        function postRun() {\n          if (Module[\"postRun\"]) {\n            if (typeof Module[\"postRun\"] == \"function\")\n              Module[\"postRun\"] = [Module[\"postRun\"]];\n            while (Module[\"postRun\"].length) {\n              addOnPostRun(Module[\"postRun\"].shift());\n            }\n          }\n          callRuntimeCallbacks(__ATPOSTRUN__);\n        }\n        function addOnPreRun(cb) {\n          __ATPRERUN__.unshift(cb);\n        }\n        function addOnInit(cb) {\n          __ATINIT__.unshift(cb);\n        }\n        function addOnPostRun(cb) {\n          __ATPOSTRUN__.unshift(cb);\n        }\n        var runDependencies = 0;\n        var dependenciesFulfilled = null;\n        function getUniqueRunDependency(id) {\n          return id;\n        }\n        function addRunDependency(id) {\n          runDependencies++;\n          if (Module[\"monitorRunDependencies\"]) {\n            Module[\"monitorRunDependencies\"](runDependencies);\n          }\n        }\n        function removeRunDependency(id) {\n          runDependencies--;\n          if (Module[\"monitorRunDependencies\"]) {\n            Module[\"monitorRunDependencies\"](runDependencies);\n          }\n          if (runDependencies == 0) {\n            if (dependenciesFulfilled) {\n              var callback = dependenciesFulfilled;\n              dependenciesFulfilled = null;\n              callback();\n            }\n          }\n        }\n        function abort(what) {\n          if (Module[\"onAbort\"]) {\n            Module[\"onAbort\"](what);\n          }\n          what = \"Aborted(\" + what + \")\";\n          err(what);\n          ABORT = true;\n          what += \". Build with -sASSERTIONS for more info.\";\n          var e = new WebAssembly.RuntimeError(what);\n          readyPromiseReject(e);\n          throw e;\n        }\n        var dataURIPrefix = \"data:application/octet-stream;base64,\";\n        function isDataURI(filename) {\n          return filename.startsWith(dataURIPrefix);\n        }\n        function isFileURI(filename) {\n          return filename.startsWith(\"file://\");\n        }\n        var wasmBinaryFile;\n        wasmBinaryFile = \"web-ifc.wasm\";\n        if (!isDataURI(wasmBinaryFile)) {\n          wasmBinaryFile = locateFile(wasmBinaryFile);\n        }\n        function getBinary(file) {\n          try {\n            if (file == wasmBinaryFile && wasmBinary) {\n              return new Uint8Array(wasmBinary);\n            }\n            if (readBinary) {\n              return readBinary(file);\n            }\n            throw \"both async and sync fetching of the wasm failed\";\n          } catch (err2) {\n            abort(err2);\n          }\n        }\n        function getBinaryPromise() {\n          if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n            if (typeof fetch == \"function\" && !isFileURI(wasmBinaryFile)) {\n              return fetch(wasmBinaryFile, { credentials: \"same-origin\" }).then(function(response) {\n                if (!response[\"ok\"]) {\n                  throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\n                }\n                return response[\"arrayBuffer\"]();\n              }).catch(function() {\n                return getBinary(wasmBinaryFile);\n              });\n            } else {\n              if (readAsync) {\n                return new Promise(function(resolve, reject) {\n                  readAsync(wasmBinaryFile, function(response) {\n                    resolve(new Uint8Array(response));\n                  }, reject);\n                });\n              }\n            }\n          }\n          return Promise.resolve().then(function() {\n            return getBinary(wasmBinaryFile);\n          });\n        }\n        function createWasm() {\n          var info = { \"a\": wasmImports };\n          function receiveInstance(instance, module2) {\n            var exports3 = instance.exports;\n            Module[\"asm\"] = exports3;\n            wasmMemory = Module[\"asm\"][\"X\"];\n            updateMemoryViews();\n            wasmTable = Module[\"asm\"][\"Z\"];\n            addOnInit(Module[\"asm\"][\"Y\"]);\n            removeRunDependency();\n          }\n          addRunDependency();\n          function receiveInstantiationResult(result) {\n            receiveInstance(result[\"instance\"]);\n          }\n          function instantiateArrayBuffer(receiver) {\n            return getBinaryPromise().then(function(binary) {\n              return WebAssembly.instantiate(binary, info);\n            }).then(function(instance) {\n              return instance;\n            }).then(receiver, function(reason) {\n              err(\"failed to asynchronously prepare wasm: \" + reason);\n              abort(reason);\n            });\n          }\n          function instantiateAsync() {\n            if (!wasmBinary && typeof WebAssembly.instantiateStreaming == \"function\" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == \"function\") {\n              return fetch(wasmBinaryFile, { credentials: \"same-origin\" }).then(function(response) {\n                var result = WebAssembly.instantiateStreaming(response, info);\n                return result.then(receiveInstantiationResult, function(reason) {\n                  err(\"wasm streaming compile failed: \" + reason);\n                  err(\"falling back to ArrayBuffer instantiation\");\n                  return instantiateArrayBuffer(receiveInstantiationResult);\n                });\n              });\n            } else {\n              return instantiateArrayBuffer(receiveInstantiationResult);\n            }\n          }\n          if (Module[\"instantiateWasm\"]) {\n            try {\n              var exports2 = Module[\"instantiateWasm\"](info, receiveInstance);\n              return exports2;\n            } catch (e) {\n              err(\"Module.instantiateWasm callback failed with error: \" + e);\n              readyPromiseReject(e);\n            }\n          }\n          instantiateAsync().catch(readyPromiseReject);\n          return {};\n        }\n        var tempDouble;\n        var tempI64;\n        function ExitStatus(status) {\n          this.name = \"ExitStatus\";\n          this.message = \"Program terminated with exit(\" + status + \")\";\n          this.status = status;\n        }\n        function callRuntimeCallbacks(callbacks) {\n          while (callbacks.length > 0) {\n            callbacks.shift()(Module);\n          }\n        }\n        function ExceptionInfo(excPtr) {\n          this.excPtr = excPtr;\n          this.ptr = excPtr - 24;\n          this.set_type = function(type) {\n            HEAPU32[this.ptr + 4 >>> 2] = type;\n          };\n          this.get_type = function() {\n            return HEAPU32[this.ptr + 4 >>> 2];\n          };\n          this.set_destructor = function(destructor) {\n            HEAPU32[this.ptr + 8 >>> 2] = destructor;\n          };\n          this.get_destructor = function() {\n            return HEAPU32[this.ptr + 8 >>> 2];\n          };\n          this.set_refcount = function(refcount) {\n            HEAP32[this.ptr >>> 2] = refcount;\n          };\n          this.set_caught = function(caught) {\n            caught = caught ? 1 : 0;\n            HEAP8[this.ptr + 12 >>> 0] = caught;\n          };\n          this.get_caught = function() {\n            return HEAP8[this.ptr + 12 >>> 0] != 0;\n          };\n          this.set_rethrown = function(rethrown) {\n            rethrown = rethrown ? 1 : 0;\n            HEAP8[this.ptr + 13 >>> 0] = rethrown;\n          };\n          this.get_rethrown = function() {\n            return HEAP8[this.ptr + 13 >>> 0] != 0;\n          };\n          this.init = function(type, destructor) {\n            this.set_adjusted_ptr(0);\n            this.set_type(type);\n            this.set_destructor(destructor);\n            this.set_refcount(0);\n            this.set_caught(false);\n            this.set_rethrown(false);\n          };\n          this.add_ref = function() {\n            var value = HEAP32[this.ptr >>> 2];\n            HEAP32[this.ptr >>> 2] = value + 1;\n          };\n          this.release_ref = function() {\n            var prev = HEAP32[this.ptr >>> 2];\n            HEAP32[this.ptr >>> 2] = prev - 1;\n            return prev === 1;\n          };\n          this.set_adjusted_ptr = function(adjustedPtr) {\n            HEAPU32[this.ptr + 16 >>> 2] = adjustedPtr;\n          };\n          this.get_adjusted_ptr = function() {\n            return HEAPU32[this.ptr + 16 >>> 2];\n          };\n          this.get_exception_ptr = function() {\n            var isPointer = ___cxa_is_pointer_type(this.get_type());\n            if (isPointer) {\n              return HEAPU32[this.excPtr >>> 2];\n            }\n            var adjusted = this.get_adjusted_ptr();\n            if (adjusted !== 0)\n              return adjusted;\n            return this.excPtr;\n          };\n        }\n        function ___cxa_throw(ptr, type, destructor) {\n          var info = new ExceptionInfo(ptr);\n          info.init(type, destructor);\n          throw ptr;\n        }\n        function setErrNo(value) {\n          HEAP32[___errno_location() >>> 2] = value;\n          return value;\n        }\n        var PATH = { isAbs: (path) => path.charAt(0) === \"/\", splitPath: (filename) => {\n          var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n          return splitPathRe.exec(filename).slice(1);\n        }, normalizeArray: (parts, allowAboveRoot) => {\n          var up = 0;\n          for (var i = parts.length - 1; i >= 0; i--) {\n            var last = parts[i];\n            if (last === \".\") {\n              parts.splice(i, 1);\n            } else if (last === \"..\") {\n              parts.splice(i, 1);\n              up++;\n            } else if (up) {\n              parts.splice(i, 1);\n              up--;\n            }\n          }\n          if (allowAboveRoot) {\n            for (; up; up--) {\n              parts.unshift(\"..\");\n            }\n          }\n          return parts;\n        }, normalize: (path) => {\n          var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === \"/\";\n          path = PATH.normalizeArray(path.split(\"/\").filter((p) => !!p), !isAbsolute).join(\"/\");\n          if (!path && !isAbsolute) {\n            path = \".\";\n          }\n          if (path && trailingSlash) {\n            path += \"/\";\n          }\n          return (isAbsolute ? \"/\" : \"\") + path;\n        }, dirname: (path) => {\n          var result = PATH.splitPath(path), root = result[0], dir = result[1];\n          if (!root && !dir) {\n            return \".\";\n          }\n          if (dir) {\n            dir = dir.substr(0, dir.length - 1);\n          }\n          return root + dir;\n        }, basename: (path) => {\n          if (path === \"/\")\n            return \"/\";\n          path = PATH.normalize(path);\n          path = path.replace(/\\/$/, \"\");\n          var lastSlash = path.lastIndexOf(\"/\");\n          if (lastSlash === -1)\n            return path;\n          return path.substr(lastSlash + 1);\n        }, join: function() {\n          var paths = Array.prototype.slice.call(arguments);\n          return PATH.normalize(paths.join(\"/\"));\n        }, join2: (l, r) => {\n          return PATH.normalize(l + \"/\" + r);\n        } };\n        function getRandomDevice() {\n          if (typeof crypto == \"object\" && typeof crypto[\"getRandomValues\"] == \"function\") {\n            var randomBuffer = new Uint8Array(1);\n            return () => {\n              crypto.getRandomValues(randomBuffer);\n              return randomBuffer[0];\n            };\n          } else if (ENVIRONMENT_IS_NODE) {\n            try {\n              var crypto_module = require_crypto();\n              return () => crypto_module[\"randomBytes\"](1)[0];\n            } catch (e) {\n            }\n          }\n          return () => abort(\"randomDevice\");\n        }\n        var PATH_FS = { resolve: function() {\n          var resolvedPath = \"\", resolvedAbsolute = false;\n          for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n            var path = i >= 0 ? arguments[i] : FS.cwd();\n            if (typeof path != \"string\") {\n              throw new TypeError(\"Arguments to path.resolve must be strings\");\n            } else if (!path) {\n              return \"\";\n            }\n            resolvedPath = path + \"/\" + resolvedPath;\n            resolvedAbsolute = PATH.isAbs(path);\n          }\n          resolvedPath = PATH.normalizeArray(resolvedPath.split(\"/\").filter((p) => !!p), !resolvedAbsolute).join(\"/\");\n          return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n        }, relative: (from, to) => {\n          from = PATH_FS.resolve(from).substr(1);\n          to = PATH_FS.resolve(to).substr(1);\n          function trim(arr) {\n            var start = 0;\n            for (; start < arr.length; start++) {\n              if (arr[start] !== \"\")\n                break;\n            }\n            var end = arr.length - 1;\n            for (; end >= 0; end--) {\n              if (arr[end] !== \"\")\n                break;\n            }\n            if (start > end)\n              return [];\n            return arr.slice(start, end - start + 1);\n          }\n          var fromParts = trim(from.split(\"/\"));\n          var toParts = trim(to.split(\"/\"));\n          var length = Math.min(fromParts.length, toParts.length);\n          var samePartsLength = length;\n          for (var i = 0; i < length; i++) {\n            if (fromParts[i] !== toParts[i]) {\n              samePartsLength = i;\n              break;\n            }\n          }\n          var outputParts = [];\n          for (var i = samePartsLength; i < fromParts.length; i++) {\n            outputParts.push(\"..\");\n          }\n          outputParts = outputParts.concat(toParts.slice(samePartsLength));\n          return outputParts.join(\"/\");\n        } };\n        function intArrayFromString(stringy, dontAddNull, length) {\n          var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n          var u8array = new Array(len);\n          var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n          if (dontAddNull)\n            u8array.length = numBytesWritten;\n          return u8array;\n        }\n        var TTY = { ttys: [], init: function() {\n        }, shutdown: function() {\n        }, register: function(dev, ops) {\n          TTY.ttys[dev] = { input: [], output: [], ops };\n          FS.registerDevice(dev, TTY.stream_ops);\n        }, stream_ops: { open: function(stream) {\n          var tty = TTY.ttys[stream.node.rdev];\n          if (!tty) {\n            throw new FS.ErrnoError(43);\n          }\n          stream.tty = tty;\n          stream.seekable = false;\n        }, close: function(stream) {\n          stream.tty.ops.fsync(stream.tty);\n        }, fsync: function(stream) {\n          stream.tty.ops.fsync(stream.tty);\n        }, read: function(stream, buffer, offset, length, pos) {\n          if (!stream.tty || !stream.tty.ops.get_char) {\n            throw new FS.ErrnoError(60);\n          }\n          var bytesRead = 0;\n          for (var i = 0; i < length; i++) {\n            var result;\n            try {\n              result = stream.tty.ops.get_char(stream.tty);\n            } catch (e) {\n              throw new FS.ErrnoError(29);\n            }\n            if (result === void 0 && bytesRead === 0) {\n              throw new FS.ErrnoError(6);\n            }\n            if (result === null || result === void 0)\n              break;\n            bytesRead++;\n            buffer[offset + i] = result;\n          }\n          if (bytesRead) {\n            stream.node.timestamp = Date.now();\n          }\n          return bytesRead;\n        }, write: function(stream, buffer, offset, length, pos) {\n          if (!stream.tty || !stream.tty.ops.put_char) {\n            throw new FS.ErrnoError(60);\n          }\n          try {\n            for (var i = 0; i < length; i++) {\n              stream.tty.ops.put_char(stream.tty, buffer[offset + i]);\n            }\n          } catch (e) {\n            throw new FS.ErrnoError(29);\n          }\n          if (length) {\n            stream.node.timestamp = Date.now();\n          }\n          return i;\n        } }, default_tty_ops: { get_char: function(tty) {\n          if (!tty.input.length) {\n            var result = null;\n            if (ENVIRONMENT_IS_NODE) {\n              var BUFSIZE = 256;\n              var buf = Buffer.alloc(BUFSIZE);\n              var bytesRead = 0;\n              try {\n                bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1);\n              } catch (e) {\n                if (e.toString().includes(\"EOF\"))\n                  bytesRead = 0;\n                else\n                  throw e;\n              }\n              if (bytesRead > 0) {\n                result = buf.slice(0, bytesRead).toString(\"utf-8\");\n              } else {\n                result = null;\n              }\n            } else if (typeof window != \"undefined\" && typeof window.prompt == \"function\") {\n              result = window.prompt(\"Input: \");\n              if (result !== null) {\n                result += \"\\n\";\n              }\n            } else if (typeof readline == \"function\") {\n              result = readline();\n              if (result !== null) {\n                result += \"\\n\";\n              }\n            }\n            if (!result) {\n              return null;\n            }\n            tty.input = intArrayFromString(result, true);\n          }\n          return tty.input.shift();\n        }, put_char: function(tty, val) {\n          if (val === null || val === 10) {\n            out(UTF8ArrayToString(tty.output, 0));\n            tty.output = [];\n          } else {\n            if (val != 0)\n              tty.output.push(val);\n          }\n        }, fsync: function(tty) {\n          if (tty.output && tty.output.length > 0) {\n            out(UTF8ArrayToString(tty.output, 0));\n            tty.output = [];\n          }\n        } }, default_tty1_ops: { put_char: function(tty, val) {\n          if (val === null || val === 10) {\n            err(UTF8ArrayToString(tty.output, 0));\n            tty.output = [];\n          } else {\n            if (val != 0)\n              tty.output.push(val);\n          }\n        }, fsync: function(tty) {\n          if (tty.output && tty.output.length > 0) {\n            err(UTF8ArrayToString(tty.output, 0));\n            tty.output = [];\n          }\n        } } };\n        function mmapAlloc(size) {\n          abort();\n        }\n        var MEMFS = { ops_table: null, mount: function(mount) {\n          return MEMFS.createNode(null, \"/\", 16384 | 511, 0);\n        }, createNode: function(parent, name, mode, dev) {\n          if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {\n            throw new FS.ErrnoError(63);\n          }\n          if (!MEMFS.ops_table) {\n            MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };\n          }\n          var node = FS.createNode(parent, name, mode, dev);\n          if (FS.isDir(node.mode)) {\n            node.node_ops = MEMFS.ops_table.dir.node;\n            node.stream_ops = MEMFS.ops_table.dir.stream;\n            node.contents = {};\n          } else if (FS.isFile(node.mode)) {\n            node.node_ops = MEMFS.ops_table.file.node;\n            node.stream_ops = MEMFS.ops_table.file.stream;\n            node.usedBytes = 0;\n            node.contents = null;\n          } else if (FS.isLink(node.mode)) {\n            node.node_ops = MEMFS.ops_table.link.node;\n            node.stream_ops = MEMFS.ops_table.link.stream;\n          } else if (FS.isChrdev(node.mode)) {\n            node.node_ops = MEMFS.ops_table.chrdev.node;\n            node.stream_ops = MEMFS.ops_table.chrdev.stream;\n          }\n          node.timestamp = Date.now();\n          if (parent) {\n            parent.contents[name] = node;\n            parent.timestamp = node.timestamp;\n          }\n          return node;\n        }, getFileDataAsTypedArray: function(node) {\n          if (!node.contents)\n            return new Uint8Array(0);\n          if (node.contents.subarray)\n            return node.contents.subarray(0, node.usedBytes);\n          return new Uint8Array(node.contents);\n        }, expandFileStorage: function(node, newCapacity) {\n          newCapacity >>>= 0;\n          var prevCapacity = node.contents ? node.contents.length : 0;\n          if (prevCapacity >= newCapacity)\n            return;\n          var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n          newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);\n          if (prevCapacity != 0)\n            newCapacity = Math.max(newCapacity, 256);\n          var oldContents = node.contents;\n          node.contents = new Uint8Array(newCapacity);\n          if (node.usedBytes > 0)\n            node.contents.set(oldContents.subarray(0, node.usedBytes), 0);\n        }, resizeFileStorage: function(node, newSize) {\n          newSize >>>= 0;\n          if (node.usedBytes == newSize)\n            return;\n          if (newSize == 0) {\n            node.contents = null;\n            node.usedBytes = 0;\n          } else {\n            var oldContents = node.contents;\n            node.contents = new Uint8Array(newSize);\n            if (oldContents) {\n              node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));\n            }\n            node.usedBytes = newSize;\n          }\n        }, node_ops: { getattr: function(node) {\n          var attr = {};\n          attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n          attr.ino = node.id;\n          attr.mode = node.mode;\n          attr.nlink = 1;\n          attr.uid = 0;\n          attr.gid = 0;\n          attr.rdev = node.rdev;\n          if (FS.isDir(node.mode)) {\n            attr.size = 4096;\n          } else if (FS.isFile(node.mode)) {\n            attr.size = node.usedBytes;\n          } else if (FS.isLink(node.mode)) {\n            attr.size = node.link.length;\n          } else {\n            attr.size = 0;\n          }\n          attr.atime = new Date(node.timestamp);\n          attr.mtime = new Date(node.timestamp);\n          attr.ctime = new Date(node.timestamp);\n          attr.blksize = 4096;\n          attr.blocks = Math.ceil(attr.size / attr.blksize);\n          return attr;\n        }, setattr: function(node, attr) {\n          if (attr.mode !== void 0) {\n            node.mode = attr.mode;\n          }\n          if (attr.timestamp !== void 0) {\n            node.timestamp = attr.timestamp;\n          }\n          if (attr.size !== void 0) {\n            MEMFS.resizeFileStorage(node, attr.size);\n          }\n        }, lookup: function(parent, name) {\n          throw FS.genericErrors[44];\n        }, mknod: function(parent, name, mode, dev) {\n          return MEMFS.createNode(parent, name, mode, dev);\n        }, rename: function(old_node, new_dir, new_name) {\n          if (FS.isDir(old_node.mode)) {\n            var new_node;\n            try {\n              new_node = FS.lookupNode(new_dir, new_name);\n            } catch (e) {\n            }\n            if (new_node) {\n              for (var i in new_node.contents) {\n                throw new FS.ErrnoError(55);\n              }\n            }\n          }\n          delete old_node.parent.contents[old_node.name];\n          old_node.parent.timestamp = Date.now();\n          old_node.name = new_name;\n          new_dir.contents[new_name] = old_node;\n          new_dir.timestamp = old_node.parent.timestamp;\n          old_node.parent = new_dir;\n        }, unlink: function(parent, name) {\n          delete parent.contents[name];\n          parent.timestamp = Date.now();\n        }, rmdir: function(parent, name) {\n          var node = FS.lookupNode(parent, name);\n          for (var i in node.contents) {\n            throw new FS.ErrnoError(55);\n          }\n          delete parent.contents[name];\n          parent.timestamp = Date.now();\n        }, readdir: function(node) {\n          var entries = [\".\", \"..\"];\n          for (var key in node.contents) {\n            if (!node.contents.hasOwnProperty(key)) {\n              continue;\n            }\n            entries.push(key);\n          }\n          return entries;\n        }, symlink: function(parent, newname, oldpath) {\n          var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);\n          node.link = oldpath;\n          return node;\n        }, readlink: function(node) {\n          if (!FS.isLink(node.mode)) {\n            throw new FS.ErrnoError(28);\n          }\n          return node.link;\n        } }, stream_ops: { read: function(stream, buffer, offset, length, position) {\n          var contents = stream.node.contents;\n          if (position >= stream.node.usedBytes)\n            return 0;\n          var size = Math.min(stream.node.usedBytes - position, length);\n          if (size > 8 && contents.subarray) {\n            buffer.set(contents.subarray(position, position + size), offset);\n          } else {\n            for (var i = 0; i < size; i++)\n              buffer[offset + i] = contents[position + i];\n          }\n          return size;\n        }, write: function(stream, buffer, offset, length, position, canOwn) {\n          if (buffer.buffer === HEAP8.buffer) {\n            canOwn = false;\n          }\n          if (!length)\n            return 0;\n          var node = stream.node;\n          node.timestamp = Date.now();\n          if (buffer.subarray && (!node.contents || node.contents.subarray)) {\n            if (canOwn) {\n              node.contents = buffer.subarray(offset, offset + length);\n              node.usedBytes = length;\n              return length;\n            } else if (node.usedBytes === 0 && position === 0) {\n              node.contents = buffer.slice(offset, offset + length);\n              node.usedBytes = length;\n              return length;\n            } else if (position + length <= node.usedBytes) {\n              node.contents.set(buffer.subarray(offset, offset + length), position);\n              return length;\n            }\n          }\n          MEMFS.expandFileStorage(node, position + length);\n          if (node.contents.subarray && buffer.subarray) {\n            node.contents.set(buffer.subarray(offset, offset + length), position);\n          } else {\n            for (var i = 0; i < length; i++) {\n              node.contents[position + i] = buffer[offset + i];\n            }\n          }\n          node.usedBytes = Math.max(node.usedBytes, position + length);\n          return length;\n        }, llseek: function(stream, offset, whence) {\n          var position = offset;\n          if (whence === 1) {\n            position += stream.position;\n          } else if (whence === 2) {\n            if (FS.isFile(stream.node.mode)) {\n              position += stream.node.usedBytes;\n            }\n          }\n          if (position < 0) {\n            throw new FS.ErrnoError(28);\n          }\n          return position;\n        }, allocate: function(stream, offset, length) {\n          MEMFS.expandFileStorage(stream.node, offset + length);\n          stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n        }, mmap: function(stream, length, position, prot, flags) {\n          if (!FS.isFile(stream.node.mode)) {\n            throw new FS.ErrnoError(43);\n          }\n          var ptr;\n          var allocated;\n          var contents = stream.node.contents;\n          if (!(flags & 2) && contents.buffer === HEAP8.buffer) {\n            allocated = false;\n            ptr = contents.byteOffset;\n          } else {\n            if (position > 0 || position + length < contents.length) {\n              if (contents.subarray) {\n                contents = contents.subarray(position, position + length);\n              } else {\n                contents = Array.prototype.slice.call(contents, position, position + length);\n              }\n            }\n            allocated = true;\n            ptr = mmapAlloc();\n            if (!ptr) {\n              throw new FS.ErrnoError(48);\n            }\n            ptr >>>= 0;\n            HEAP8.set(contents, ptr >>> 0);\n          }\n          return { ptr, allocated };\n        }, msync: function(stream, buffer, offset, length, mmapFlags) {\n          MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n          return 0;\n        } } };\n        function asyncLoad(url, onload, onerror, noRunDep) {\n          var dep = !noRunDep ? getUniqueRunDependency(\"al \" + url) : \"\";\n          readAsync(url, (arrayBuffer) => {\n            assert(arrayBuffer, 'Loading data file \"' + url + '\" failed (no arrayBuffer).');\n            onload(new Uint8Array(arrayBuffer));\n            if (dep)\n              removeRunDependency();\n          }, (event) => {\n            if (onerror) {\n              onerror();\n            } else {\n              throw 'Loading data file \"' + url + '\" failed.';\n            }\n          });\n          if (dep)\n            addRunDependency();\n        }\n        var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: \"/\", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => {\n          path = PATH_FS.resolve(path);\n          if (!path)\n            return { path: \"\", node: null };\n          var defaults = { follow_mount: true, recurse_count: 0 };\n          opts = Object.assign(defaults, opts);\n          if (opts.recurse_count > 8) {\n            throw new FS.ErrnoError(32);\n          }\n          var parts = path.split(\"/\").filter((p) => !!p);\n          var current = FS.root;\n          var current_path = \"/\";\n          for (var i = 0; i < parts.length; i++) {\n            var islast = i === parts.length - 1;\n            if (islast && opts.parent) {\n              break;\n            }\n            current = FS.lookupNode(current, parts[i]);\n            current_path = PATH.join2(current_path, parts[i]);\n            if (FS.isMountpoint(current)) {\n              if (!islast || islast && opts.follow_mount) {\n                current = current.mounted.root;\n              }\n            }\n            if (!islast || opts.follow) {\n              var count = 0;\n              while (FS.isLink(current.mode)) {\n                var link = FS.readlink(current_path);\n                current_path = PATH_FS.resolve(PATH.dirname(current_path), link);\n                var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 });\n                current = lookup.node;\n                if (count++ > 40) {\n                  throw new FS.ErrnoError(32);\n                }\n              }\n            }\n          }\n          return { path: current_path, node: current };\n        }, getPath: (node) => {\n          var path;\n          while (true) {\n            if (FS.isRoot(node)) {\n              var mount = node.mount.mountpoint;\n              if (!path)\n                return mount;\n              return mount[mount.length - 1] !== \"/\" ? mount + \"/\" + path : mount + path;\n            }\n            path = path ? node.name + \"/\" + path : node.name;\n            node = node.parent;\n          }\n        }, hashName: (parentid, name) => {\n          var hash = 0;\n          for (var i = 0; i < name.length; i++) {\n            hash = (hash << 5) - hash + name.charCodeAt(i) | 0;\n          }\n          return (parentid + hash >>> 0) % FS.nameTable.length;\n        }, hashAddNode: (node) => {\n          var hash = FS.hashName(node.parent.id, node.name);\n          node.name_next = FS.nameTable[hash];\n          FS.nameTable[hash] = node;\n        }, hashRemoveNode: (node) => {\n          var hash = FS.hashName(node.parent.id, node.name);\n          if (FS.nameTable[hash] === node) {\n            FS.nameTable[hash] = node.name_next;\n          } else {\n            var current = FS.nameTable[hash];\n            while (current) {\n              if (current.name_next === node) {\n                current.name_next = node.name_next;\n                break;\n              }\n              current = current.name_next;\n            }\n          }\n        }, lookupNode: (parent, name) => {\n          var errCode = FS.mayLookup(parent);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode, parent);\n          }\n          var hash = FS.hashName(parent.id, name);\n          for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n            var nodeName = node.name;\n            if (node.parent.id === parent.id && nodeName === name) {\n              return node;\n            }\n          }\n          return FS.lookup(parent, name);\n        }, createNode: (parent, name, mode, rdev) => {\n          var node = new FS.FSNode(parent, name, mode, rdev);\n          FS.hashAddNode(node);\n          return node;\n        }, destroyNode: (node) => {\n          FS.hashRemoveNode(node);\n        }, isRoot: (node) => {\n          return node === node.parent;\n        }, isMountpoint: (node) => {\n          return !!node.mounted;\n        }, isFile: (mode) => {\n          return (mode & 61440) === 32768;\n        }, isDir: (mode) => {\n          return (mode & 61440) === 16384;\n        }, isLink: (mode) => {\n          return (mode & 61440) === 40960;\n        }, isChrdev: (mode) => {\n          return (mode & 61440) === 8192;\n        }, isBlkdev: (mode) => {\n          return (mode & 61440) === 24576;\n        }, isFIFO: (mode) => {\n          return (mode & 61440) === 4096;\n        }, isSocket: (mode) => {\n          return (mode & 49152) === 49152;\n        }, flagModes: { \"r\": 0, \"r+\": 2, \"w\": 577, \"w+\": 578, \"a\": 1089, \"a+\": 1090 }, modeStringToFlags: (str) => {\n          var flags = FS.flagModes[str];\n          if (typeof flags == \"undefined\") {\n            throw new Error(\"Unknown file open mode: \" + str);\n          }\n          return flags;\n        }, flagsToPermissionString: (flag) => {\n          var perms = [\"r\", \"w\", \"rw\"][flag & 3];\n          if (flag & 512) {\n            perms += \"w\";\n          }\n          return perms;\n        }, nodePermissions: (node, perms) => {\n          if (FS.ignorePermissions) {\n            return 0;\n          }\n          if (perms.includes(\"r\") && !(node.mode & 292)) {\n            return 2;\n          } else if (perms.includes(\"w\") && !(node.mode & 146)) {\n            return 2;\n          } else if (perms.includes(\"x\") && !(node.mode & 73)) {\n            return 2;\n          }\n          return 0;\n        }, mayLookup: (dir) => {\n          var errCode = FS.nodePermissions(dir, \"x\");\n          if (errCode)\n            return errCode;\n          if (!dir.node_ops.lookup)\n            return 2;\n          return 0;\n        }, mayCreate: (dir, name) => {\n          try {\n            var node = FS.lookupNode(dir, name);\n            return 20;\n          } catch (e) {\n          }\n          return FS.nodePermissions(dir, \"wx\");\n        }, mayDelete: (dir, name, isdir) => {\n          var node;\n          try {\n            node = FS.lookupNode(dir, name);\n          } catch (e) {\n            return e.errno;\n          }\n          var errCode = FS.nodePermissions(dir, \"wx\");\n          if (errCode) {\n            return errCode;\n          }\n          if (isdir) {\n            if (!FS.isDir(node.mode)) {\n              return 54;\n            }\n            if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {\n              return 10;\n            }\n          } else {\n            if (FS.isDir(node.mode)) {\n              return 31;\n            }\n          }\n          return 0;\n        }, mayOpen: (node, flags) => {\n          if (!node) {\n            return 44;\n          }\n          if (FS.isLink(node.mode)) {\n            return 32;\n          } else if (FS.isDir(node.mode)) {\n            if (FS.flagsToPermissionString(flags) !== \"r\" || flags & 512) {\n              return 31;\n            }\n          }\n          return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n        }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => {\n          for (var fd = fd_start; fd <= fd_end; fd++) {\n            if (!FS.streams[fd]) {\n              return fd;\n            }\n          }\n          throw new FS.ErrnoError(33);\n        }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => {\n          if (!FS.FSStream) {\n            FS.FSStream = function() {\n              this.shared = {};\n            };\n            FS.FSStream.prototype = {};\n            Object.defineProperties(FS.FSStream.prototype, { object: { get: function() {\n              return this.node;\n            }, set: function(val) {\n              this.node = val;\n            } }, isRead: { get: function() {\n              return (this.flags & 2097155) !== 1;\n            } }, isWrite: { get: function() {\n              return (this.flags & 2097155) !== 0;\n            } }, isAppend: { get: function() {\n              return this.flags & 1024;\n            } }, flags: { get: function() {\n              return this.shared.flags;\n            }, set: function(val) {\n              this.shared.flags = val;\n            } }, position: { get: function() {\n              return this.shared.position;\n            }, set: function(val) {\n              this.shared.position = val;\n            } } });\n          }\n          stream = Object.assign(new FS.FSStream(), stream);\n          var fd = FS.nextfd(fd_start, fd_end);\n          stream.fd = fd;\n          FS.streams[fd] = stream;\n          return stream;\n        }, closeStream: (fd) => {\n          FS.streams[fd] = null;\n        }, chrdev_stream_ops: { open: (stream) => {\n          var device = FS.getDevice(stream.node.rdev);\n          stream.stream_ops = device.stream_ops;\n          if (stream.stream_ops.open) {\n            stream.stream_ops.open(stream);\n          }\n        }, llseek: () => {\n          throw new FS.ErrnoError(70);\n        } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => {\n          FS.devices[dev] = { stream_ops: ops };\n        }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => {\n          var mounts = [];\n          var check = [mount];\n          while (check.length) {\n            var m = check.pop();\n            mounts.push(m);\n            check.push.apply(check, m.mounts);\n          }\n          return mounts;\n        }, syncfs: (populate, callback) => {\n          if (typeof populate == \"function\") {\n            callback = populate;\n            populate = false;\n          }\n          FS.syncFSRequests++;\n          if (FS.syncFSRequests > 1) {\n            err(\"warning: \" + FS.syncFSRequests + \" FS.syncfs operations in flight at once, probably just doing extra work\");\n          }\n          var mounts = FS.getMounts(FS.root.mount);\n          var completed = 0;\n          function doCallback(errCode) {\n            FS.syncFSRequests--;\n            return callback(errCode);\n          }\n          function done(errCode) {\n            if (errCode) {\n              if (!done.errored) {\n                done.errored = true;\n                return doCallback(errCode);\n              }\n              return;\n            }\n            if (++completed >= mounts.length) {\n              doCallback(null);\n            }\n          }\n          mounts.forEach((mount) => {\n            if (!mount.type.syncfs) {\n              return done(null);\n            }\n            mount.type.syncfs(mount, populate, done);\n          });\n        }, mount: (type, opts, mountpoint) => {\n          var root = mountpoint === \"/\";\n          var pseudo = !mountpoint;\n          var node;\n          if (root && FS.root) {\n            throw new FS.ErrnoError(10);\n          } else if (!root && !pseudo) {\n            var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n            mountpoint = lookup.path;\n            node = lookup.node;\n            if (FS.isMountpoint(node)) {\n              throw new FS.ErrnoError(10);\n            }\n            if (!FS.isDir(node.mode)) {\n              throw new FS.ErrnoError(54);\n            }\n          }\n          var mount = { type, opts, mountpoint, mounts: [] };\n          var mountRoot = type.mount(mount);\n          mountRoot.mount = mount;\n          mount.root = mountRoot;\n          if (root) {\n            FS.root = mountRoot;\n          } else if (node) {\n            node.mounted = mount;\n            if (node.mount) {\n              node.mount.mounts.push(mount);\n            }\n          }\n          return mountRoot;\n        }, unmount: (mountpoint) => {\n          var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n          if (!FS.isMountpoint(lookup.node)) {\n            throw new FS.ErrnoError(28);\n          }\n          var node = lookup.node;\n          var mount = node.mounted;\n          var mounts = FS.getMounts(mount);\n          Object.keys(FS.nameTable).forEach((hash) => {\n            var current = FS.nameTable[hash];\n            while (current) {\n              var next = current.name_next;\n              if (mounts.includes(current.mount)) {\n                FS.destroyNode(current);\n              }\n              current = next;\n            }\n          });\n          node.mounted = null;\n          var idx = node.mount.mounts.indexOf(mount);\n          node.mount.mounts.splice(idx, 1);\n        }, lookup: (parent, name) => {\n          return parent.node_ops.lookup(parent, name);\n        }, mknod: (path, mode, dev) => {\n          var lookup = FS.lookupPath(path, { parent: true });\n          var parent = lookup.node;\n          var name = PATH.basename(path);\n          if (!name || name === \".\" || name === \"..\") {\n            throw new FS.ErrnoError(28);\n          }\n          var errCode = FS.mayCreate(parent, name);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!parent.node_ops.mknod) {\n            throw new FS.ErrnoError(63);\n          }\n          return parent.node_ops.mknod(parent, name, mode, dev);\n        }, create: (path, mode) => {\n          mode = mode !== void 0 ? mode : 438;\n          mode &= 4095;\n          mode |= 32768;\n          return FS.mknod(path, mode, 0);\n        }, mkdir: (path, mode) => {\n          mode = mode !== void 0 ? mode : 511;\n          mode &= 511 | 512;\n          mode |= 16384;\n          return FS.mknod(path, mode, 0);\n        }, mkdirTree: (path, mode) => {\n          var dirs = path.split(\"/\");\n          var d = \"\";\n          for (var i = 0; i < dirs.length; ++i) {\n            if (!dirs[i])\n              continue;\n            d += \"/\" + dirs[i];\n            try {\n              FS.mkdir(d, mode);\n            } catch (e) {\n              if (e.errno != 20)\n                throw e;\n            }\n          }\n        }, mkdev: (path, mode, dev) => {\n          if (typeof dev == \"undefined\") {\n            dev = mode;\n            mode = 438;\n          }\n          mode |= 8192;\n          return FS.mknod(path, mode, dev);\n        }, symlink: (oldpath, newpath) => {\n          if (!PATH_FS.resolve(oldpath)) {\n            throw new FS.ErrnoError(44);\n          }\n          var lookup = FS.lookupPath(newpath, { parent: true });\n          var parent = lookup.node;\n          if (!parent) {\n            throw new FS.ErrnoError(44);\n          }\n          var newname = PATH.basename(newpath);\n          var errCode = FS.mayCreate(parent, newname);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!parent.node_ops.symlink) {\n            throw new FS.ErrnoError(63);\n          }\n          return parent.node_ops.symlink(parent, newname, oldpath);\n        }, rename: (old_path, new_path) => {\n          var old_dirname = PATH.dirname(old_path);\n          var new_dirname = PATH.dirname(new_path);\n          var old_name = PATH.basename(old_path);\n          var new_name = PATH.basename(new_path);\n          var lookup, old_dir, new_dir;\n          lookup = FS.lookupPath(old_path, { parent: true });\n          old_dir = lookup.node;\n          lookup = FS.lookupPath(new_path, { parent: true });\n          new_dir = lookup.node;\n          if (!old_dir || !new_dir)\n            throw new FS.ErrnoError(44);\n          if (old_dir.mount !== new_dir.mount) {\n            throw new FS.ErrnoError(75);\n          }\n          var old_node = FS.lookupNode(old_dir, old_name);\n          var relative = PATH_FS.relative(old_path, new_dirname);\n          if (relative.charAt(0) !== \".\") {\n            throw new FS.ErrnoError(28);\n          }\n          relative = PATH_FS.relative(new_path, old_dirname);\n          if (relative.charAt(0) !== \".\") {\n            throw new FS.ErrnoError(55);\n          }\n          var new_node;\n          try {\n            new_node = FS.lookupNode(new_dir, new_name);\n          } catch (e) {\n          }\n          if (old_node === new_node) {\n            return;\n          }\n          var isdir = FS.isDir(old_node.mode);\n          var errCode = FS.mayDelete(old_dir, old_name, isdir);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!old_dir.node_ops.rename) {\n            throw new FS.ErrnoError(63);\n          }\n          if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {\n            throw new FS.ErrnoError(10);\n          }\n          if (new_dir !== old_dir) {\n            errCode = FS.nodePermissions(old_dir, \"w\");\n            if (errCode) {\n              throw new FS.ErrnoError(errCode);\n            }\n          }\n          FS.hashRemoveNode(old_node);\n          try {\n            old_dir.node_ops.rename(old_node, new_dir, new_name);\n          } catch (e) {\n            throw e;\n          } finally {\n            FS.hashAddNode(old_node);\n          }\n        }, rmdir: (path) => {\n          var lookup = FS.lookupPath(path, { parent: true });\n          var parent = lookup.node;\n          var name = PATH.basename(path);\n          var node = FS.lookupNode(parent, name);\n          var errCode = FS.mayDelete(parent, name, true);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!parent.node_ops.rmdir) {\n            throw new FS.ErrnoError(63);\n          }\n          if (FS.isMountpoint(node)) {\n            throw new FS.ErrnoError(10);\n          }\n          parent.node_ops.rmdir(parent, name);\n          FS.destroyNode(node);\n        }, readdir: (path) => {\n          var lookup = FS.lookupPath(path, { follow: true });\n          var node = lookup.node;\n          if (!node.node_ops.readdir) {\n            throw new FS.ErrnoError(54);\n          }\n          return node.node_ops.readdir(node);\n        }, unlink: (path) => {\n          var lookup = FS.lookupPath(path, { parent: true });\n          var parent = lookup.node;\n          if (!parent) {\n            throw new FS.ErrnoError(44);\n          }\n          var name = PATH.basename(path);\n          var node = FS.lookupNode(parent, name);\n          var errCode = FS.mayDelete(parent, name, false);\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          if (!parent.node_ops.unlink) {\n            throw new FS.ErrnoError(63);\n          }\n          if (FS.isMountpoint(node)) {\n            throw new FS.ErrnoError(10);\n          }\n          parent.node_ops.unlink(parent, name);\n          FS.destroyNode(node);\n        }, readlink: (path) => {\n          var lookup = FS.lookupPath(path);\n          var link = lookup.node;\n          if (!link) {\n            throw new FS.ErrnoError(44);\n          }\n          if (!link.node_ops.readlink) {\n            throw new FS.ErrnoError(28);\n          }\n          return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n        }, stat: (path, dontFollow) => {\n          var lookup = FS.lookupPath(path, { follow: !dontFollow });\n          var node = lookup.node;\n          if (!node) {\n            throw new FS.ErrnoError(44);\n          }\n          if (!node.node_ops.getattr) {\n            throw new FS.ErrnoError(63);\n          }\n          return node.node_ops.getattr(node);\n        }, lstat: (path) => {\n          return FS.stat(path, true);\n        }, chmod: (path, mode, dontFollow) => {\n          var node;\n          if (typeof path == \"string\") {\n            var lookup = FS.lookupPath(path, { follow: !dontFollow });\n            node = lookup.node;\n          } else {\n            node = path;\n          }\n          if (!node.node_ops.setattr) {\n            throw new FS.ErrnoError(63);\n          }\n          node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });\n        }, lchmod: (path, mode) => {\n          FS.chmod(path, mode, true);\n        }, fchmod: (fd, mode) => {\n          var stream = FS.getStream(fd);\n          if (!stream) {\n            throw new FS.ErrnoError(8);\n          }\n          FS.chmod(stream.node, mode);\n        }, chown: (path, uid, gid, dontFollow) => {\n          var node;\n          if (typeof path == \"string\") {\n            var lookup = FS.lookupPath(path, { follow: !dontFollow });\n            node = lookup.node;\n          } else {\n            node = path;\n          }\n          if (!node.node_ops.setattr) {\n            throw new FS.ErrnoError(63);\n          }\n          node.node_ops.setattr(node, { timestamp: Date.now() });\n        }, lchown: (path, uid, gid) => {\n          FS.chown(path, uid, gid, true);\n        }, fchown: (fd, uid, gid) => {\n          var stream = FS.getStream(fd);\n          if (!stream) {\n            throw new FS.ErrnoError(8);\n          }\n          FS.chown(stream.node, uid, gid);\n        }, truncate: (path, len) => {\n          if (len < 0) {\n            throw new FS.ErrnoError(28);\n          }\n          var node;\n          if (typeof path == \"string\") {\n            var lookup = FS.lookupPath(path, { follow: true });\n            node = lookup.node;\n          } else {\n            node = path;\n          }\n          if (!node.node_ops.setattr) {\n            throw new FS.ErrnoError(63);\n          }\n          if (FS.isDir(node.mode)) {\n            throw new FS.ErrnoError(31);\n          }\n          if (!FS.isFile(node.mode)) {\n            throw new FS.ErrnoError(28);\n          }\n          var errCode = FS.nodePermissions(node, \"w\");\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          node.node_ops.setattr(node, { size: len, timestamp: Date.now() });\n        }, ftruncate: (fd, len) => {\n          var stream = FS.getStream(fd);\n          if (!stream) {\n            throw new FS.ErrnoError(8);\n          }\n          if ((stream.flags & 2097155) === 0) {\n            throw new FS.ErrnoError(28);\n          }\n          FS.truncate(stream.node, len);\n        }, utime: (path, atime, mtime) => {\n          var lookup = FS.lookupPath(path, { follow: true });\n          var node = lookup.node;\n          node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });\n        }, open: (path, flags, mode) => {\n          if (path === \"\") {\n            throw new FS.ErrnoError(44);\n          }\n          flags = typeof flags == \"string\" ? FS.modeStringToFlags(flags) : flags;\n          mode = typeof mode == \"undefined\" ? 438 : mode;\n          if (flags & 64) {\n            mode = mode & 4095 | 32768;\n          } else {\n            mode = 0;\n          }\n          var node;\n          if (typeof path == \"object\") {\n            node = path;\n          } else {\n            path = PATH.normalize(path);\n            try {\n              var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });\n              node = lookup.node;\n            } catch (e) {\n            }\n          }\n          var created = false;\n          if (flags & 64) {\n            if (node) {\n              if (flags & 128) {\n                throw new FS.ErrnoError(20);\n              }\n            } else {\n              node = FS.mknod(path, mode, 0);\n              created = true;\n            }\n          }\n          if (!node) {\n            throw new FS.ErrnoError(44);\n          }\n          if (FS.isChrdev(node.mode)) {\n            flags &= ~512;\n          }\n          if (flags & 65536 && !FS.isDir(node.mode)) {\n            throw new FS.ErrnoError(54);\n          }\n          if (!created) {\n            var errCode = FS.mayOpen(node, flags);\n            if (errCode) {\n              throw new FS.ErrnoError(errCode);\n            }\n          }\n          if (flags & 512 && !created) {\n            FS.truncate(node, 0);\n          }\n          flags &= ~(128 | 512 | 131072);\n          var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false });\n          if (stream.stream_ops.open) {\n            stream.stream_ops.open(stream);\n          }\n          if (Module[\"logReadFiles\"] && !(flags & 1)) {\n            if (!FS.readFiles)\n              FS.readFiles = {};\n            if (!(path in FS.readFiles)) {\n              FS.readFiles[path] = 1;\n            }\n          }\n          return stream;\n        }, close: (stream) => {\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if (stream.getdents)\n            stream.getdents = null;\n          try {\n            if (stream.stream_ops.close) {\n              stream.stream_ops.close(stream);\n            }\n          } catch (e) {\n            throw e;\n          } finally {\n            FS.closeStream(stream.fd);\n          }\n          stream.fd = null;\n        }, isClosed: (stream) => {\n          return stream.fd === null;\n        }, llseek: (stream, offset, whence) => {\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if (!stream.seekable || !stream.stream_ops.llseek) {\n            throw new FS.ErrnoError(70);\n          }\n          if (whence != 0 && whence != 1 && whence != 2) {\n            throw new FS.ErrnoError(28);\n          }\n          stream.position = stream.stream_ops.llseek(stream, offset, whence);\n          stream.ungotten = [];\n          return stream.position;\n        }, read: (stream, buffer, offset, length, position) => {\n          offset >>>= 0;\n          if (length < 0 || position < 0) {\n            throw new FS.ErrnoError(28);\n          }\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if ((stream.flags & 2097155) === 1) {\n            throw new FS.ErrnoError(8);\n          }\n          if (FS.isDir(stream.node.mode)) {\n            throw new FS.ErrnoError(31);\n          }\n          if (!stream.stream_ops.read) {\n            throw new FS.ErrnoError(28);\n          }\n          var seeking = typeof position != \"undefined\";\n          if (!seeking) {\n            position = stream.position;\n          } else if (!stream.seekable) {\n            throw new FS.ErrnoError(70);\n          }\n          var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n          if (!seeking)\n            stream.position += bytesRead;\n          return bytesRead;\n        }, write: (stream, buffer, offset, length, position, canOwn) => {\n          offset >>>= 0;\n          if (length < 0 || position < 0) {\n            throw new FS.ErrnoError(28);\n          }\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if ((stream.flags & 2097155) === 0) {\n            throw new FS.ErrnoError(8);\n          }\n          if (FS.isDir(stream.node.mode)) {\n            throw new FS.ErrnoError(31);\n          }\n          if (!stream.stream_ops.write) {\n            throw new FS.ErrnoError(28);\n          }\n          if (stream.seekable && stream.flags & 1024) {\n            FS.llseek(stream, 0, 2);\n          }\n          var seeking = typeof position != \"undefined\";\n          if (!seeking) {\n            position = stream.position;\n          } else if (!stream.seekable) {\n            throw new FS.ErrnoError(70);\n          }\n          var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n          if (!seeking)\n            stream.position += bytesWritten;\n          return bytesWritten;\n        }, allocate: (stream, offset, length) => {\n          if (FS.isClosed(stream)) {\n            throw new FS.ErrnoError(8);\n          }\n          if (offset < 0 || length <= 0) {\n            throw new FS.ErrnoError(28);\n          }\n          if ((stream.flags & 2097155) === 0) {\n            throw new FS.ErrnoError(8);\n          }\n          if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {\n            throw new FS.ErrnoError(43);\n          }\n          if (!stream.stream_ops.allocate) {\n            throw new FS.ErrnoError(138);\n          }\n          stream.stream_ops.allocate(stream, offset, length);\n        }, mmap: (stream, length, position, prot, flags) => {\n          if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {\n            throw new FS.ErrnoError(2);\n          }\n          if ((stream.flags & 2097155) === 1) {\n            throw new FS.ErrnoError(2);\n          }\n          if (!stream.stream_ops.mmap) {\n            throw new FS.ErrnoError(43);\n          }\n          return stream.stream_ops.mmap(stream, length, position, prot, flags);\n        }, msync: (stream, buffer, offset, length, mmapFlags) => {\n          offset >>>= 0;\n          if (!stream.stream_ops.msync) {\n            return 0;\n          }\n          return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n        }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => {\n          if (!stream.stream_ops.ioctl) {\n            throw new FS.ErrnoError(59);\n          }\n          return stream.stream_ops.ioctl(stream, cmd, arg);\n        }, readFile: (path, opts = {}) => {\n          opts.flags = opts.flags || 0;\n          opts.encoding = opts.encoding || \"binary\";\n          if (opts.encoding !== \"utf8\" && opts.encoding !== \"binary\") {\n            throw new Error('Invalid encoding type \"' + opts.encoding + '\"');\n          }\n          var ret;\n          var stream = FS.open(path, opts.flags);\n          var stat = FS.stat(path);\n          var length = stat.size;\n          var buf = new Uint8Array(length);\n          FS.read(stream, buf, 0, length, 0);\n          if (opts.encoding === \"utf8\") {\n            ret = UTF8ArrayToString(buf, 0);\n          } else if (opts.encoding === \"binary\") {\n            ret = buf;\n          }\n          FS.close(stream);\n          return ret;\n        }, writeFile: (path, data, opts = {}) => {\n          opts.flags = opts.flags || 577;\n          var stream = FS.open(path, opts.flags, opts.mode);\n          if (typeof data == \"string\") {\n            var buf = new Uint8Array(lengthBytesUTF8(data) + 1);\n            var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n            FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);\n          } else if (ArrayBuffer.isView(data)) {\n            FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);\n          } else {\n            throw new Error(\"Unsupported data type\");\n          }\n          FS.close(stream);\n        }, cwd: () => FS.currentPath, chdir: (path) => {\n          var lookup = FS.lookupPath(path, { follow: true });\n          if (lookup.node === null) {\n            throw new FS.ErrnoError(44);\n          }\n          if (!FS.isDir(lookup.node.mode)) {\n            throw new FS.ErrnoError(54);\n          }\n          var errCode = FS.nodePermissions(lookup.node, \"x\");\n          if (errCode) {\n            throw new FS.ErrnoError(errCode);\n          }\n          FS.currentPath = lookup.path;\n        }, createDefaultDirectories: () => {\n          FS.mkdir(\"/tmp\");\n          FS.mkdir(\"/home\");\n          FS.mkdir(\"/home/web_user\");\n        }, createDefaultDevices: () => {\n          FS.mkdir(\"/dev\");\n          FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });\n          FS.mkdev(\"/dev/null\", FS.makedev(1, 3));\n          TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n          TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n          FS.mkdev(\"/dev/tty\", FS.makedev(5, 0));\n          FS.mkdev(\"/dev/tty1\", FS.makedev(6, 0));\n          var random_device = getRandomDevice();\n          FS.createDevice(\"/dev\", \"random\", random_device);\n          FS.createDevice(\"/dev\", \"urandom\", random_device);\n          FS.mkdir(\"/dev/shm\");\n          FS.mkdir(\"/dev/shm/tmp\");\n        }, createSpecialDirectories: () => {\n          FS.mkdir(\"/proc\");\n          var proc_self = FS.mkdir(\"/proc/self\");\n          FS.mkdir(\"/proc/self/fd\");\n          FS.mount({ mount: () => {\n            var node = FS.createNode(proc_self, \"fd\", 16384 | 511, 73);\n            node.node_ops = { lookup: (parent, name) => {\n              var fd = +name;\n              var stream = FS.getStream(fd);\n              if (!stream)\n                throw new FS.ErrnoError(8);\n              var ret = { parent: null, mount: { mountpoint: \"fake\" }, node_ops: { readlink: () => stream.path } };\n              ret.parent = ret;\n              return ret;\n            } };\n            return node;\n          } }, {}, \"/proc/self/fd\");\n        }, createStandardStreams: () => {\n          if (Module[\"stdin\"]) {\n            FS.createDevice(\"/dev\", \"stdin\", Module[\"stdin\"]);\n          } else {\n            FS.symlink(\"/dev/tty\", \"/dev/stdin\");\n          }\n          if (Module[\"stdout\"]) {\n            FS.createDevice(\"/dev\", \"stdout\", null, Module[\"stdout\"]);\n          } else {\n            FS.symlink(\"/dev/tty\", \"/dev/stdout\");\n          }\n          if (Module[\"stderr\"]) {\n            FS.createDevice(\"/dev\", \"stderr\", null, Module[\"stderr\"]);\n          } else {\n            FS.symlink(\"/dev/tty1\", \"/dev/stderr\");\n          }\n          FS.open(\"/dev/stdin\", 0);\n          FS.open(\"/dev/stdout\", 1);\n          FS.open(\"/dev/stderr\", 1);\n        }, ensureErrnoError: () => {\n          if (FS.ErrnoError)\n            return;\n          FS.ErrnoError = function ErrnoError(errno, node) {\n            this.node = node;\n            this.setErrno = function(errno2) {\n              this.errno = errno2;\n            };\n            this.setErrno(errno);\n            this.message = \"FS error\";\n          };\n          FS.ErrnoError.prototype = new Error();\n          FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n          [44].forEach((code) => {\n            FS.genericErrors[code] = new FS.ErrnoError(code);\n            FS.genericErrors[code].stack = \"<generic error, no stack>\";\n          });\n        }, staticInit: () => {\n          FS.ensureErrnoError();\n          FS.nameTable = new Array(4096);\n          FS.mount(MEMFS, {}, \"/\");\n          FS.createDefaultDirectories();\n          FS.createDefaultDevices();\n          FS.createSpecialDirectories();\n          FS.filesystems = { \"MEMFS\": MEMFS };\n        }, init: (input, output, error) => {\n          FS.init.initialized = true;\n          FS.ensureErrnoError();\n          Module[\"stdin\"] = input || Module[\"stdin\"];\n          Module[\"stdout\"] = output || Module[\"stdout\"];\n          Module[\"stderr\"] = error || Module[\"stderr\"];\n          FS.createStandardStreams();\n        }, quit: () => {\n          FS.init.initialized = false;\n          for (var i = 0; i < FS.streams.length; i++) {\n            var stream = FS.streams[i];\n            if (!stream) {\n              continue;\n            }\n            FS.close(stream);\n          }\n        }, getMode: (canRead, canWrite) => {\n          var mode = 0;\n          if (canRead)\n            mode |= 292 | 73;\n          if (canWrite)\n            mode |= 146;\n          return mode;\n        }, findObject: (path, dontResolveLastLink) => {\n          var ret = FS.analyzePath(path, dontResolveLastLink);\n          if (!ret.exists) {\n            return null;\n          }\n          return ret.object;\n        }, analyzePath: (path, dontResolveLastLink) => {\n          try {\n            var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n            path = lookup.path;\n          } catch (e) {\n          }\n          var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null };\n          try {\n            var lookup = FS.lookupPath(path, { parent: true });\n            ret.parentExists = true;\n            ret.parentPath = lookup.path;\n            ret.parentObject = lookup.node;\n            ret.name = PATH.basename(path);\n            lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n            ret.exists = true;\n            ret.path = lookup.path;\n            ret.object = lookup.node;\n            ret.name = lookup.node.name;\n            ret.isRoot = lookup.path === \"/\";\n          } catch (e) {\n            ret.error = e.errno;\n          }\n          return ret;\n        }, createPath: (parent, path, canRead, canWrite) => {\n          parent = typeof parent == \"string\" ? parent : FS.getPath(parent);\n          var parts = path.split(\"/\").reverse();\n          while (parts.length) {\n            var part = parts.pop();\n            if (!part)\n              continue;\n            var current = PATH.join2(parent, part);\n            try {\n              FS.mkdir(current);\n            } catch (e) {\n            }\n            parent = current;\n          }\n          return current;\n        }, createFile: (parent, name, properties, canRead, canWrite) => {\n          var path = PATH.join2(typeof parent == \"string\" ? parent : FS.getPath(parent), name);\n          var mode = FS.getMode(canRead, canWrite);\n          return FS.create(path, mode);\n        }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => {\n          var path = name;\n          if (parent) {\n            parent = typeof parent == \"string\" ? parent : FS.getPath(parent);\n            path = name ? PATH.join2(parent, name) : parent;\n          }\n          var mode = FS.getMode(canRead, canWrite);\n          var node = FS.create(path, mode);\n          if (data) {\n            if (typeof data == \"string\") {\n              var arr = new Array(data.length);\n              for (var i = 0, len = data.length; i < len; ++i)\n                arr[i] = data.charCodeAt(i);\n              data = arr;\n            }\n            FS.chmod(node, mode | 146);\n            var stream = FS.open(node, 577);\n            FS.write(stream, data, 0, data.length, 0, canOwn);\n            FS.close(stream);\n            FS.chmod(node, mode);\n          }\n          return node;\n        }, createDevice: (parent, name, input, output) => {\n          var path = PATH.join2(typeof parent == \"string\" ? parent : FS.getPath(parent), name);\n          var mode = FS.getMode(!!input, !!output);\n          if (!FS.createDevice.major)\n            FS.createDevice.major = 64;\n          var dev = FS.makedev(FS.createDevice.major++, 0);\n          FS.registerDevice(dev, { open: (stream) => {\n            stream.seekable = false;\n          }, close: (stream) => {\n            if (output && output.buffer && output.buffer.length) {\n              output(10);\n            }\n          }, read: (stream, buffer, offset, length, pos) => {\n            var bytesRead = 0;\n            for (var i = 0; i < length; i++) {\n              var result;\n              try {\n                result = input();\n              } catch (e) {\n                throw new FS.ErrnoError(29);\n              }\n              if (result === void 0 && bytesRead === 0) {\n                throw new FS.ErrnoError(6);\n              }\n              if (result === null || result === void 0)\n                break;\n              bytesRead++;\n              buffer[offset + i] = result;\n            }\n            if (bytesRead) {\n              stream.node.timestamp = Date.now();\n            }\n            return bytesRead;\n          }, write: (stream, buffer, offset, length, pos) => {\n            for (var i = 0; i < length; i++) {\n              try {\n                output(buffer[offset + i]);\n              } catch (e) {\n                throw new FS.ErrnoError(29);\n              }\n            }\n            if (length) {\n              stream.node.timestamp = Date.now();\n            }\n            return i;\n          } });\n          return FS.mkdev(path, mode, dev);\n        }, forceLoadFile: (obj) => {\n          if (obj.isDevice || obj.isFolder || obj.link || obj.contents)\n            return true;\n          if (typeof XMLHttpRequest != \"undefined\") {\n            throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\");\n          } else if (read_) {\n            try {\n              obj.contents = intArrayFromString(read_(obj.url), true);\n              obj.usedBytes = obj.contents.length;\n            } catch (e) {\n              throw new FS.ErrnoError(29);\n            }\n          } else {\n            throw new Error(\"Cannot load without read() or XMLHttpRequest.\");\n          }\n        }, createLazyFile: (parent, name, url, canRead, canWrite) => {\n          function LazyUint8Array() {\n            this.lengthKnown = false;\n            this.chunks = [];\n          }\n          LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n            if (idx > this.length - 1 || idx < 0) {\n              return void 0;\n            }\n            var chunkOffset = idx % this.chunkSize;\n            var chunkNum = idx / this.chunkSize | 0;\n            return this.getter(chunkNum)[chunkOffset];\n          };\n          LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {\n            this.getter = getter;\n          };\n          LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n            var xhr = new XMLHttpRequest();\n            xhr.open(\"HEAD\", url, false);\n            xhr.send(null);\n            if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304))\n              throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n            var datalength = Number(xhr.getResponseHeader(\"Content-length\"));\n            var header;\n            var hasByteServing = (header = xhr.getResponseHeader(\"Accept-Ranges\")) && header === \"bytes\";\n            var usesGzip = (header = xhr.getResponseHeader(\"Content-Encoding\")) && header === \"gzip\";\n            var chunkSize = 1024 * 1024;\n            if (!hasByteServing)\n              chunkSize = datalength;\n            var doXHR = (from, to) => {\n              if (from > to)\n                throw new Error(\"invalid range (\" + from + \", \" + to + \") or no bytes requested!\");\n              if (to > datalength - 1)\n                throw new Error(\"only \" + datalength + \" bytes available! programmer error!\");\n              var xhr2 = new XMLHttpRequest();\n              xhr2.open(\"GET\", url, false);\n              if (datalength !== chunkSize)\n                xhr2.setRequestHeader(\"Range\", \"bytes=\" + from + \"-\" + to);\n              xhr2.responseType = \"arraybuffer\";\n              if (xhr2.overrideMimeType) {\n                xhr2.overrideMimeType(\"text/plain; charset=x-user-defined\");\n              }\n              xhr2.send(null);\n              if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304))\n                throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr2.status);\n              if (xhr2.response !== void 0) {\n                return new Uint8Array(xhr2.response || []);\n              }\n              return intArrayFromString(xhr2.responseText || \"\", true);\n            };\n            var lazyArray2 = this;\n            lazyArray2.setDataGetter((chunkNum) => {\n              var start = chunkNum * chunkSize;\n              var end = (chunkNum + 1) * chunkSize - 1;\n              end = Math.min(end, datalength - 1);\n              if (typeof lazyArray2.chunks[chunkNum] == \"undefined\") {\n                lazyArray2.chunks[chunkNum] = doXHR(start, end);\n              }\n              if (typeof lazyArray2.chunks[chunkNum] == \"undefined\")\n                throw new Error(\"doXHR failed!\");\n              return lazyArray2.chunks[chunkNum];\n            });\n            if (usesGzip || !datalength) {\n              chunkSize = datalength = 1;\n              datalength = this.getter(0).length;\n              chunkSize = datalength;\n              out(\"LazyFiles on gzip forces download of the whole file when length is accessed\");\n            }\n            this._length = datalength;\n            this._chunkSize = chunkSize;\n            this.lengthKnown = true;\n          };\n          if (typeof XMLHttpRequest != \"undefined\") {\n            if (!ENVIRONMENT_IS_WORKER)\n              throw \"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";\n            var lazyArray = new LazyUint8Array();\n            Object.defineProperties(lazyArray, { length: { get: function() {\n              if (!this.lengthKnown) {\n                this.cacheLength();\n              }\n              return this._length;\n            } }, chunkSize: { get: function() {\n              if (!this.lengthKnown) {\n                this.cacheLength();\n              }\n              return this._chunkSize;\n            } } });\n            var properties = { isDevice: false, contents: lazyArray };\n          } else {\n            var properties = { isDevice: false, url };\n          }\n          var node = FS.createFile(parent, name, properties, canRead, canWrite);\n          if (properties.contents) {\n            node.contents = properties.contents;\n          } else if (properties.url) {\n            node.contents = null;\n            node.url = properties.url;\n          }\n          Object.defineProperties(node, { usedBytes: { get: function() {\n            return this.contents.length;\n          } } });\n          var stream_ops = {};\n          var keys = Object.keys(node.stream_ops);\n          keys.forEach((key) => {\n            var fn = node.stream_ops[key];\n            stream_ops[key] = function forceLoadLazyFile() {\n              FS.forceLoadFile(node);\n              return fn.apply(null, arguments);\n            };\n          });\n          function writeChunks(stream, buffer, offset, length, position) {\n            var contents = stream.node.contents;\n            if (position >= contents.length)\n              return 0;\n            var size = Math.min(contents.length - position, length);\n            if (contents.slice) {\n              for (var i = 0; i < size; i++) {\n                buffer[offset + i] = contents[position + i];\n              }\n            } else {\n              for (var i = 0; i < size; i++) {\n                buffer[offset + i] = contents.get(position + i);\n              }\n            }\n            return size;\n          }\n          stream_ops.read = (stream, buffer, offset, length, position) => {\n            FS.forceLoadFile(node);\n            return writeChunks(stream, buffer, offset, length, position);\n          };\n          stream_ops.mmap = (stream, length, position, prot, flags) => {\n            FS.forceLoadFile(node);\n            var ptr = mmapAlloc();\n            if (!ptr) {\n              throw new FS.ErrnoError(48);\n            }\n            writeChunks(stream, HEAP8, ptr, length, position);\n            return { ptr, allocated: true };\n          };\n          node.stream_ops = stream_ops;\n          return node;\n        }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => {\n          var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;\n          function processData(byteArray) {\n            function finish(byteArray2) {\n              if (preFinish)\n                preFinish();\n              if (!dontCreateFile) {\n                FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn);\n              }\n              if (onload)\n                onload();\n              removeRunDependency();\n            }\n            if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => {\n              if (onerror)\n                onerror();\n              removeRunDependency();\n            })) {\n              return;\n            }\n            finish(byteArray);\n          }\n          addRunDependency();\n          if (typeof url == \"string\") {\n            asyncLoad(url, (byteArray) => processData(byteArray), onerror);\n          } else {\n            processData(url);\n          }\n        }, indexedDB: () => {\n          return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n        }, DB_NAME: () => {\n          return \"EM_FS_\" + window.location.pathname;\n        }, DB_VERSION: 20, DB_STORE_NAME: \"FILE_DATA\", saveFilesToDB: (paths, onload = () => {\n        }, onerror = () => {\n        }) => {\n          var indexedDB = FS.indexedDB();\n          try {\n            var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n          } catch (e) {\n            return onerror(e);\n          }\n          openRequest.onupgradeneeded = () => {\n            out(\"creating db\");\n            var db = openRequest.result;\n            db.createObjectStore(FS.DB_STORE_NAME);\n          };\n          openRequest.onsuccess = () => {\n            var db = openRequest.result;\n            var transaction = db.transaction([FS.DB_STORE_NAME], \"readwrite\");\n            var files = transaction.objectStore(FS.DB_STORE_NAME);\n            var ok = 0, fail = 0, total = paths.length;\n            function finish() {\n              if (fail == 0)\n                onload();\n              else\n                onerror();\n            }\n            paths.forEach((path) => {\n              var putRequest = files.put(FS.analyzePath(path).object.contents, path);\n              putRequest.onsuccess = () => {\n                ok++;\n                if (ok + fail == total)\n                  finish();\n              };\n              putRequest.onerror = () => {\n                fail++;\n                if (ok + fail == total)\n                  finish();\n              };\n            });\n            transaction.onerror = onerror;\n          };\n          openRequest.onerror = onerror;\n        }, loadFilesFromDB: (paths, onload = () => {\n        }, onerror = () => {\n        }) => {\n          var indexedDB = FS.indexedDB();\n          try {\n            var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n          } catch (e) {\n            return onerror(e);\n          }\n          openRequest.onupgradeneeded = onerror;\n          openRequest.onsuccess = () => {\n            var db = openRequest.result;\n            try {\n              var transaction = db.transaction([FS.DB_STORE_NAME], \"readonly\");\n            } catch (e) {\n              onerror(e);\n              return;\n            }\n            var files = transaction.objectStore(FS.DB_STORE_NAME);\n            var ok = 0, fail = 0, total = paths.length;\n            function finish() {\n              if (fail == 0)\n                onload();\n              else\n                onerror();\n            }\n            paths.forEach((path) => {\n              var getRequest = files.get(path);\n              getRequest.onsuccess = () => {\n                if (FS.analyzePath(path).exists) {\n                  FS.unlink(path);\n                }\n                FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);\n                ok++;\n                if (ok + fail == total)\n                  finish();\n              };\n              getRequest.onerror = () => {\n                fail++;\n                if (ok + fail == total)\n                  finish();\n              };\n            });\n            transaction.onerror = onerror;\n          };\n          openRequest.onerror = onerror;\n        } };\n        var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) {\n          if (PATH.isAbs(path)) {\n            return path;\n          }\n          var dir;\n          if (dirfd === -100) {\n            dir = FS.cwd();\n          } else {\n            var dirstream = SYSCALLS.getStreamFromFD(dirfd);\n            dir = dirstream.path;\n          }\n          if (path.length == 0) {\n            if (!allowEmpty) {\n              throw new FS.ErrnoError(44);\n            }\n            return dir;\n          }\n          return PATH.join2(dir, path);\n        }, doStat: function(func, path, buf) {\n          try {\n            var stat = func(path);\n          } catch (e) {\n            if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {\n              return -54;\n            }\n            throw e;\n          }\n          HEAP32[buf >>> 2] = stat.dev;\n          HEAP32[buf + 8 >>> 2] = stat.ino;\n          HEAP32[buf + 12 >>> 2] = stat.mode;\n          HEAPU32[buf + 16 >>> 2] = stat.nlink;\n          HEAP32[buf + 20 >>> 2] = stat.uid;\n          HEAP32[buf + 24 >>> 2] = stat.gid;\n          HEAP32[buf + 28 >>> 2] = stat.rdev;\n          tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >>> 2] = tempI64[0], HEAP32[buf + 44 >>> 2] = tempI64[1];\n          HEAP32[buf + 48 >>> 2] = 4096;\n          HEAP32[buf + 52 >>> 2] = stat.blocks;\n          var atime = stat.atime.getTime();\n          var mtime = stat.mtime.getTime();\n          var ctime = stat.ctime.getTime();\n          tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1];\n          HEAPU32[buf + 64 >>> 2] = atime % 1e3 * 1e3;\n          tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1];\n          HEAPU32[buf + 80 >>> 2] = mtime % 1e3 * 1e3;\n          tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1];\n          HEAPU32[buf + 96 >>> 2] = ctime % 1e3 * 1e3;\n          tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 104 >>> 2] = tempI64[0], HEAP32[buf + 108 >>> 2] = tempI64[1];\n          return 0;\n        }, doMsync: function(addr, stream, len, flags, offset) {\n          if (!FS.isFile(stream.node.mode)) {\n            throw new FS.ErrnoError(43);\n          }\n          if (flags & 2) {\n            return 0;\n          }\n          addr >>>= 0;\n          var buffer = HEAPU8.slice(addr, addr + len);\n          FS.msync(stream, buffer, offset, len, flags);\n        }, varargs: void 0, get: function() {\n          SYSCALLS.varargs += 4;\n          var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2];\n          return ret;\n        }, getStr: function(ptr) {\n          var ret = UTF8ToString(ptr);\n          return ret;\n        }, getStreamFromFD: function(fd) {\n          var stream = FS.getStream(fd);\n          if (!stream)\n            throw new FS.ErrnoError(8);\n          return stream;\n        } };\n        function ___syscall_fcntl64(fd, cmd, varargs) {\n          SYSCALLS.varargs = varargs;\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            switch (cmd) {\n              case 0: {\n                var arg = SYSCALLS.get();\n                if (arg < 0) {\n                  return -28;\n                }\n                var newStream;\n                newStream = FS.createStream(stream, arg);\n                return newStream.fd;\n              }\n              case 1:\n              case 2:\n                return 0;\n              case 3:\n                return stream.flags;\n              case 4: {\n                var arg = SYSCALLS.get();\n                stream.flags |= arg;\n                return 0;\n              }\n              case 5: {\n                var arg = SYSCALLS.get();\n                var offset = 0;\n                HEAP16[arg + offset >>> 1] = 2;\n                return 0;\n              }\n              case 6:\n              case 7:\n                return 0;\n              case 16:\n              case 8:\n                return -28;\n              case 9:\n                setErrNo(28);\n                return -1;\n              default: {\n                return -28;\n              }\n            }\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return -e.errno;\n          }\n        }\n        function ___syscall_ioctl(fd, op, varargs) {\n          SYSCALLS.varargs = varargs;\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            switch (op) {\n              case 21509:\n              case 21505: {\n                if (!stream.tty)\n                  return -59;\n                return 0;\n              }\n              case 21510:\n              case 21511:\n              case 21512:\n              case 21506:\n              case 21507:\n              case 21508: {\n                if (!stream.tty)\n                  return -59;\n                return 0;\n              }\n              case 21519: {\n                if (!stream.tty)\n                  return -59;\n                var argp = SYSCALLS.get();\n                HEAP32[argp >>> 2] = 0;\n                return 0;\n              }\n              case 21520: {\n                if (!stream.tty)\n                  return -59;\n                return -28;\n              }\n              case 21531: {\n                var argp = SYSCALLS.get();\n                return FS.ioctl(stream, op, argp);\n              }\n              case 21523: {\n                if (!stream.tty)\n                  return -59;\n                return 0;\n              }\n              case 21524: {\n                if (!stream.tty)\n                  return -59;\n                return 0;\n              }\n              default:\n                return -28;\n            }\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return -e.errno;\n          }\n        }\n        function ___syscall_openat(dirfd, path, flags, varargs) {\n          SYSCALLS.varargs = varargs;\n          try {\n            path = SYSCALLS.getStr(path);\n            path = SYSCALLS.calculateAt(dirfd, path);\n            var mode = varargs ? SYSCALLS.get() : 0;\n            return FS.open(path, flags, mode).fd;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return -e.errno;\n          }\n        }\n        var tupleRegistrations = {};\n        function runDestructors(destructors) {\n          while (destructors.length) {\n            var ptr = destructors.pop();\n            var del = destructors.pop();\n            del(ptr);\n          }\n        }\n        function simpleReadValueFromPointer(pointer) {\n          return this[\"fromWireType\"](HEAP32[pointer >>> 2]);\n        }\n        var awaitingDependencies = {};\n        var registeredTypes = {};\n        var typeDependencies = {};\n        var char_0 = 48;\n        var char_9 = 57;\n        function makeLegalFunctionName(name) {\n          if (name === void 0) {\n            return \"_unknown\";\n          }\n          name = name.replace(/[^a-zA-Z0-9_]/g, \"$\");\n          var f = name.charCodeAt(0);\n          if (f >= char_0 && f <= char_9) {\n            return \"_\" + name;\n          }\n          return name;\n        }\n        function createNamedFunction(name, body) {\n          name = makeLegalFunctionName(name);\n          return new Function(\"body\", \"return function \" + name + '() {\\n    \"use strict\";    return body.apply(this, arguments);\\n};\\n')(body);\n        }\n        function extendError(baseErrorType, errorName) {\n          var errorClass = createNamedFunction(errorName, function(message) {\n            this.name = errorName;\n            this.message = message;\n            var stack = new Error(message).stack;\n            if (stack !== void 0) {\n              this.stack = this.toString() + \"\\n\" + stack.replace(/^Error(:[^\\n]*)?\\n/, \"\");\n            }\n          });\n          errorClass.prototype = Object.create(baseErrorType.prototype);\n          errorClass.prototype.constructor = errorClass;\n          errorClass.prototype.toString = function() {\n            if (this.message === void 0) {\n              return this.name;\n            } else {\n              return this.name + \": \" + this.message;\n            }\n          };\n          return errorClass;\n        }\n        var InternalError = void 0;\n        function throwInternalError(message) {\n          throw new InternalError(message);\n        }\n        function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {\n          myTypes.forEach(function(type) {\n            typeDependencies[type] = dependentTypes;\n          });\n          function onComplete(typeConverters2) {\n            var myTypeConverters = getTypeConverters(typeConverters2);\n            if (myTypeConverters.length !== myTypes.length) {\n              throwInternalError(\"Mismatched type converter count\");\n            }\n            for (var i = 0; i < myTypes.length; ++i) {\n              registerType(myTypes[i], myTypeConverters[i]);\n            }\n          }\n          var typeConverters = new Array(dependentTypes.length);\n          var unregisteredTypes = [];\n          var registered = 0;\n          dependentTypes.forEach((dt, i) => {\n            if (registeredTypes.hasOwnProperty(dt)) {\n              typeConverters[i] = registeredTypes[dt];\n            } else {\n              unregisteredTypes.push(dt);\n              if (!awaitingDependencies.hasOwnProperty(dt)) {\n                awaitingDependencies[dt] = [];\n              }\n              awaitingDependencies[dt].push(() => {\n                typeConverters[i] = registeredTypes[dt];\n                ++registered;\n                if (registered === unregisteredTypes.length) {\n                  onComplete(typeConverters);\n                }\n              });\n            }\n          });\n          if (unregisteredTypes.length === 0) {\n            onComplete(typeConverters);\n          }\n        }\n        function __embind_finalize_value_array(rawTupleType) {\n          var reg = tupleRegistrations[rawTupleType];\n          delete tupleRegistrations[rawTupleType];\n          var elements = reg.elements;\n          var elementsLength = elements.length;\n          var elementTypes = elements.map(function(elt) {\n            return elt.getterReturnType;\n          }).concat(elements.map(function(elt) {\n            return elt.setterArgumentType;\n          }));\n          var rawConstructor = reg.rawConstructor;\n          var rawDestructor = reg.rawDestructor;\n          whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) {\n            elements.forEach((elt, i) => {\n              var getterReturnType = elementTypes2[i];\n              var getter = elt.getter;\n              var getterContext = elt.getterContext;\n              var setterArgumentType = elementTypes2[i + elementsLength];\n              var setter = elt.setter;\n              var setterContext = elt.setterContext;\n              elt.read = (ptr) => {\n                return getterReturnType[\"fromWireType\"](getter(getterContext, ptr));\n              };\n              elt.write = (ptr, o) => {\n                var destructors = [];\n                setter(setterContext, ptr, setterArgumentType[\"toWireType\"](destructors, o));\n                runDestructors(destructors);\n              };\n            });\n            return [{ name: reg.name, \"fromWireType\": function(ptr) {\n              var rv = new Array(elementsLength);\n              for (var i = 0; i < elementsLength; ++i) {\n                rv[i] = elements[i].read(ptr);\n              }\n              rawDestructor(ptr);\n              return rv;\n            }, \"toWireType\": function(destructors, o) {\n              if (elementsLength !== o.length) {\n                throw new TypeError(\"Incorrect number of tuple elements for \" + reg.name + \": expected=\" + elementsLength + \", actual=\" + o.length);\n              }\n              var ptr = rawConstructor();\n              for (var i = 0; i < elementsLength; ++i) {\n                elements[i].write(ptr, o[i]);\n              }\n              if (destructors !== null) {\n                destructors.push(rawDestructor, ptr);\n              }\n              return ptr;\n            }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: rawDestructor }];\n          });\n        }\n        var structRegistrations = {};\n        function __embind_finalize_value_object(structType) {\n          var reg = structRegistrations[structType];\n          delete structRegistrations[structType];\n          var rawConstructor = reg.rawConstructor;\n          var rawDestructor = reg.rawDestructor;\n          var fieldRecords = reg.fields;\n          var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType));\n          whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => {\n            var fields = {};\n            fieldRecords.forEach((field, i) => {\n              var fieldName = field.fieldName;\n              var getterReturnType = fieldTypes2[i];\n              var getter = field.getter;\n              var getterContext = field.getterContext;\n              var setterArgumentType = fieldTypes2[i + fieldRecords.length];\n              var setter = field.setter;\n              var setterContext = field.setterContext;\n              fields[fieldName] = { read: (ptr) => {\n                return getterReturnType[\"fromWireType\"](getter(getterContext, ptr));\n              }, write: (ptr, o) => {\n                var destructors = [];\n                setter(setterContext, ptr, setterArgumentType[\"toWireType\"](destructors, o));\n                runDestructors(destructors);\n              } };\n            });\n            return [{ name: reg.name, \"fromWireType\": function(ptr) {\n              var rv = {};\n              for (var i in fields) {\n                rv[i] = fields[i].read(ptr);\n              }\n              rawDestructor(ptr);\n              return rv;\n            }, \"toWireType\": function(destructors, o) {\n              for (var fieldName in fields) {\n                if (!(fieldName in o)) {\n                  throw new TypeError('Missing field:  \"' + fieldName + '\"');\n                }\n              }\n              var ptr = rawConstructor();\n              for (fieldName in fields) {\n                fields[fieldName].write(ptr, o[fieldName]);\n              }\n              if (destructors !== null) {\n                destructors.push(rawDestructor, ptr);\n              }\n              return ptr;\n            }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: rawDestructor }];\n          });\n        }\n        function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {\n        }\n        function getShiftFromSize(size) {\n          switch (size) {\n            case 1:\n              return 0;\n            case 2:\n              return 1;\n            case 4:\n              return 2;\n            case 8:\n              return 3;\n            default:\n              throw new TypeError(\"Unknown type size: \" + size);\n          }\n        }\n        function embind_init_charCodes() {\n          var codes = new Array(256);\n          for (var i = 0; i < 256; ++i) {\n            codes[i] = String.fromCharCode(i);\n          }\n          embind_charCodes = codes;\n        }\n        var embind_charCodes = void 0;\n        function readLatin1String(ptr) {\n          var ret = \"\";\n          var c = ptr;\n          while (HEAPU8[c >>> 0]) {\n            ret += embind_charCodes[HEAPU8[c++ >>> 0]];\n          }\n          return ret;\n        }\n        var BindingError = void 0;\n        function throwBindingError(message) {\n          throw new BindingError(message);\n        }\n        function registerType(rawType, registeredInstance, options = {}) {\n          if (!(\"argPackAdvance\" in registeredInstance)) {\n            throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n          }\n          var name = registeredInstance.name;\n          if (!rawType) {\n            throwBindingError('type \"' + name + '\" must have a positive integer typeid pointer');\n          }\n          if (registeredTypes.hasOwnProperty(rawType)) {\n            if (options.ignoreDuplicateRegistrations) {\n              return;\n            } else {\n              throwBindingError(\"Cannot register type '\" + name + \"' twice\");\n            }\n          }\n          registeredTypes[rawType] = registeredInstance;\n          delete typeDependencies[rawType];\n          if (awaitingDependencies.hasOwnProperty(rawType)) {\n            var callbacks = awaitingDependencies[rawType];\n            delete awaitingDependencies[rawType];\n            callbacks.forEach((cb) => cb());\n          }\n        }\n        function __embind_register_bool(rawType, name, size, trueValue, falseValue) {\n          var shift = getShiftFromSize(size);\n          name = readLatin1String(name);\n          registerType(rawType, { name, \"fromWireType\": function(wt) {\n            return !!wt;\n          }, \"toWireType\": function(destructors, o) {\n            return o ? trueValue : falseValue;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": function(pointer) {\n            var heap;\n            if (size === 1) {\n              heap = HEAP8;\n            } else if (size === 2) {\n              heap = HEAP16;\n            } else if (size === 4) {\n              heap = HEAP32;\n            } else {\n              throw new TypeError(\"Unknown boolean type size: \" + name);\n            }\n            return this[\"fromWireType\"](heap[pointer >>> shift]);\n          }, destructorFunction: null });\n        }\n        function ClassHandle_isAliasOf(other) {\n          if (!(this instanceof ClassHandle)) {\n            return false;\n          }\n          if (!(other instanceof ClassHandle)) {\n            return false;\n          }\n          var leftClass = this.$$.ptrType.registeredClass;\n          var left = this.$$.ptr;\n          var rightClass = other.$$.ptrType.registeredClass;\n          var right = other.$$.ptr;\n          while (leftClass.baseClass) {\n            left = leftClass.upcast(left);\n            leftClass = leftClass.baseClass;\n          }\n          while (rightClass.baseClass) {\n            right = rightClass.upcast(right);\n            rightClass = rightClass.baseClass;\n          }\n          return leftClass === rightClass && left === right;\n        }\n        function shallowCopyInternalPointer(o) {\n          return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType };\n        }\n        function throwInstanceAlreadyDeleted(obj) {\n          function getInstanceTypeName(handle) {\n            return handle.$$.ptrType.registeredClass.name;\n          }\n          throwBindingError(getInstanceTypeName(obj) + \" instance already deleted\");\n        }\n        var finalizationRegistry = false;\n        function detachFinalizer(handle) {\n        }\n        function runDestructor($$) {\n          if ($$.smartPtr) {\n            $$.smartPtrType.rawDestructor($$.smartPtr);\n          } else {\n            $$.ptrType.registeredClass.rawDestructor($$.ptr);\n          }\n        }\n        function releaseClassHandle($$) {\n          $$.count.value -= 1;\n          var toDelete = $$.count.value === 0;\n          if (toDelete) {\n            runDestructor($$);\n          }\n        }\n        function downcastPointer(ptr, ptrClass, desiredClass) {\n          if (ptrClass === desiredClass) {\n            return ptr;\n          }\n          if (desiredClass.baseClass === void 0) {\n            return null;\n          }\n          var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);\n          if (rv === null) {\n            return null;\n          }\n          return desiredClass.downcast(rv);\n        }\n        var registeredPointers = {};\n        function getInheritedInstanceCount() {\n          return Object.keys(registeredInstances).length;\n        }\n        function getLiveInheritedInstances() {\n          var rv = [];\n          for (var k in registeredInstances) {\n            if (registeredInstances.hasOwnProperty(k)) {\n              rv.push(registeredInstances[k]);\n            }\n          }\n          return rv;\n        }\n        var deletionQueue = [];\n        function flushPendingDeletes() {\n          while (deletionQueue.length) {\n            var obj = deletionQueue.pop();\n            obj.$$.deleteScheduled = false;\n            obj[\"delete\"]();\n          }\n        }\n        var delayFunction = void 0;\n        function setDelayFunction(fn) {\n          delayFunction = fn;\n          if (deletionQueue.length && delayFunction) {\n            delayFunction(flushPendingDeletes);\n          }\n        }\n        function init_embind() {\n          Module[\"getInheritedInstanceCount\"] = getInheritedInstanceCount;\n          Module[\"getLiveInheritedInstances\"] = getLiveInheritedInstances;\n          Module[\"flushPendingDeletes\"] = flushPendingDeletes;\n          Module[\"setDelayFunction\"] = setDelayFunction;\n        }\n        var registeredInstances = {};\n        function getBasestPointer(class_, ptr) {\n          if (ptr === void 0) {\n            throwBindingError(\"ptr should not be undefined\");\n          }\n          while (class_.baseClass) {\n            ptr = class_.upcast(ptr);\n            class_ = class_.baseClass;\n          }\n          return ptr;\n        }\n        function getInheritedInstance(class_, ptr) {\n          ptr = getBasestPointer(class_, ptr);\n          return registeredInstances[ptr];\n        }\n        function makeClassHandle(prototype, record) {\n          if (!record.ptrType || !record.ptr) {\n            throwInternalError(\"makeClassHandle requires ptr and ptrType\");\n          }\n          var hasSmartPtrType = !!record.smartPtrType;\n          var hasSmartPtr = !!record.smartPtr;\n          if (hasSmartPtrType !== hasSmartPtr) {\n            throwInternalError(\"Both smartPtrType and smartPtr must be specified\");\n          }\n          record.count = { value: 1 };\n          return attachFinalizer(Object.create(prototype, { $$: { value: record } }));\n        }\n        function RegisteredPointer_fromWireType(ptr) {\n          var rawPointer = this.getPointee(ptr);\n          if (!rawPointer) {\n            this.destructor(ptr);\n            return null;\n          }\n          var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);\n          if (registeredInstance !== void 0) {\n            if (registeredInstance.$$.count.value === 0) {\n              registeredInstance.$$.ptr = rawPointer;\n              registeredInstance.$$.smartPtr = ptr;\n              return registeredInstance[\"clone\"]();\n            } else {\n              var rv = registeredInstance[\"clone\"]();\n              this.destructor(ptr);\n              return rv;\n            }\n          }\n          function makeDefaultHandle() {\n            if (this.isSmartPointer) {\n              return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });\n            } else {\n              return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });\n            }\n          }\n          var actualType = this.registeredClass.getActualType(rawPointer);\n          var registeredPointerRecord = registeredPointers[actualType];\n          if (!registeredPointerRecord) {\n            return makeDefaultHandle.call(this);\n          }\n          var toType;\n          if (this.isConst) {\n            toType = registeredPointerRecord.constPointerType;\n          } else {\n            toType = registeredPointerRecord.pointerType;\n          }\n          var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);\n          if (dp === null) {\n            return makeDefaultHandle.call(this);\n          }\n          if (this.isSmartPointer) {\n            return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });\n          } else {\n            return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });\n          }\n        }\n        function attachFinalizer(handle) {\n          if (typeof FinalizationRegistry === \"undefined\") {\n            attachFinalizer = (handle2) => handle2;\n            return handle;\n          }\n          finalizationRegistry = new FinalizationRegistry((info) => {\n            releaseClassHandle(info.$$);\n          });\n          attachFinalizer = (handle2) => {\n            var $$ = handle2.$$;\n            var hasSmartPtr = !!$$.smartPtr;\n            if (hasSmartPtr) {\n              var info = { $$ };\n              finalizationRegistry.register(handle2, info, handle2);\n            }\n            return handle2;\n          };\n          detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);\n          return attachFinalizer(handle);\n        }\n        function ClassHandle_clone() {\n          if (!this.$$.ptr) {\n            throwInstanceAlreadyDeleted(this);\n          }\n          if (this.$$.preservePointerOnDelete) {\n            this.$$.count.value += 1;\n            return this;\n          } else {\n            var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } }));\n            clone.$$.count.value += 1;\n            clone.$$.deleteScheduled = false;\n            return clone;\n          }\n        }\n        function ClassHandle_delete() {\n          if (!this.$$.ptr) {\n            throwInstanceAlreadyDeleted(this);\n          }\n          if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n            throwBindingError(\"Object already scheduled for deletion\");\n          }\n          detachFinalizer(this);\n          releaseClassHandle(this.$$);\n          if (!this.$$.preservePointerOnDelete) {\n            this.$$.smartPtr = void 0;\n            this.$$.ptr = void 0;\n          }\n        }\n        function ClassHandle_isDeleted() {\n          return !this.$$.ptr;\n        }\n        function ClassHandle_deleteLater() {\n          if (!this.$$.ptr) {\n            throwInstanceAlreadyDeleted(this);\n          }\n          if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n            throwBindingError(\"Object already scheduled for deletion\");\n          }\n          deletionQueue.push(this);\n          if (deletionQueue.length === 1 && delayFunction) {\n            delayFunction(flushPendingDeletes);\n          }\n          this.$$.deleteScheduled = true;\n          return this;\n        }\n        function init_ClassHandle() {\n          ClassHandle.prototype[\"isAliasOf\"] = ClassHandle_isAliasOf;\n          ClassHandle.prototype[\"clone\"] = ClassHandle_clone;\n          ClassHandle.prototype[\"delete\"] = ClassHandle_delete;\n          ClassHandle.prototype[\"isDeleted\"] = ClassHandle_isDeleted;\n          ClassHandle.prototype[\"deleteLater\"] = ClassHandle_deleteLater;\n        }\n        function ClassHandle() {\n        }\n        function ensureOverloadTable(proto, methodName, humanName) {\n          if (proto[methodName].overloadTable === void 0) {\n            var prevFunc = proto[methodName];\n            proto[methodName] = function() {\n              if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {\n                throwBindingError(\"Function '\" + humanName + \"' called with an invalid number of arguments (\" + arguments.length + \") - expects one of (\" + proto[methodName].overloadTable + \")!\");\n              }\n              return proto[methodName].overloadTable[arguments.length].apply(this, arguments);\n            };\n            proto[methodName].overloadTable = [];\n            proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;\n          }\n        }\n        function exposePublicSymbol(name, value, numArguments) {\n          if (Module.hasOwnProperty(name)) {\n            if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) {\n              throwBindingError(\"Cannot register public name '\" + name + \"' twice\");\n            }\n            ensureOverloadTable(Module, name, name);\n            if (Module.hasOwnProperty(numArguments)) {\n              throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\" + numArguments + \")!\");\n            }\n            Module[name].overloadTable[numArguments] = value;\n          } else {\n            Module[name] = value;\n            if (numArguments !== void 0) {\n              Module[name].numArguments = numArguments;\n            }\n          }\n        }\n        function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {\n          this.name = name;\n          this.constructor = constructor;\n          this.instancePrototype = instancePrototype;\n          this.rawDestructor = rawDestructor;\n          this.baseClass = baseClass;\n          this.getActualType = getActualType;\n          this.upcast = upcast;\n          this.downcast = downcast;\n          this.pureVirtualFunctions = [];\n        }\n        function upcastPointer(ptr, ptrClass, desiredClass) {\n          while (ptrClass !== desiredClass) {\n            if (!ptrClass.upcast) {\n              throwBindingError(\"Expected null or instance of \" + desiredClass.name + \", got an instance of \" + ptrClass.name);\n            }\n            ptr = ptrClass.upcast(ptr);\n            ptrClass = ptrClass.baseClass;\n          }\n          return ptr;\n        }\n        function constNoSmartPtrRawPointerToWireType(destructors, handle) {\n          if (handle === null) {\n            if (this.isReference) {\n              throwBindingError(\"null is not a valid \" + this.name);\n            }\n            return 0;\n          }\n          if (!handle.$$) {\n            throwBindingError('Cannot pass \"' + embindRepr(handle) + '\" as a ' + this.name);\n          }\n          if (!handle.$$.ptr) {\n            throwBindingError(\"Cannot pass deleted object as a pointer of type \" + this.name);\n          }\n          var handleClass = handle.$$.ptrType.registeredClass;\n          var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n          return ptr;\n        }\n        function genericPointerToWireType(destructors, handle) {\n          var ptr;\n          if (handle === null) {\n            if (this.isReference) {\n              throwBindingError(\"null is not a valid \" + this.name);\n            }\n            if (this.isSmartPointer) {\n              ptr = this.rawConstructor();\n              if (destructors !== null) {\n                destructors.push(this.rawDestructor, ptr);\n              }\n              return ptr;\n            } else {\n              return 0;\n            }\n          }\n          if (!handle.$$) {\n            throwBindingError('Cannot pass \"' + embindRepr(handle) + '\" as a ' + this.name);\n          }\n          if (!handle.$$.ptr) {\n            throwBindingError(\"Cannot pass deleted object as a pointer of type \" + this.name);\n          }\n          if (!this.isConst && handle.$$.ptrType.isConst) {\n            throwBindingError(\"Cannot convert argument of type \" + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + \" to parameter type \" + this.name);\n          }\n          var handleClass = handle.$$.ptrType.registeredClass;\n          ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n          if (this.isSmartPointer) {\n            if (handle.$$.smartPtr === void 0) {\n              throwBindingError(\"Passing raw pointer to smart pointer is illegal\");\n            }\n            switch (this.sharingPolicy) {\n              case 0:\n                if (handle.$$.smartPtrType === this) {\n                  ptr = handle.$$.smartPtr;\n                } else {\n                  throwBindingError(\"Cannot convert argument of type \" + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + \" to parameter type \" + this.name);\n                }\n                break;\n              case 1:\n                ptr = handle.$$.smartPtr;\n                break;\n              case 2:\n                if (handle.$$.smartPtrType === this) {\n                  ptr = handle.$$.smartPtr;\n                } else {\n                  var clonedHandle = handle[\"clone\"]();\n                  ptr = this.rawShare(ptr, Emval.toHandle(function() {\n                    clonedHandle[\"delete\"]();\n                  }));\n                  if (destructors !== null) {\n                    destructors.push(this.rawDestructor, ptr);\n                  }\n                }\n                break;\n              default:\n                throwBindingError(\"Unsupporting sharing policy\");\n            }\n          }\n          return ptr;\n        }\n        function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {\n          if (handle === null) {\n            if (this.isReference) {\n              throwBindingError(\"null is not a valid \" + this.name);\n            }\n            return 0;\n          }\n          if (!handle.$$) {\n            throwBindingError('Cannot pass \"' + embindRepr(handle) + '\" as a ' + this.name);\n          }\n          if (!handle.$$.ptr) {\n            throwBindingError(\"Cannot pass deleted object as a pointer of type \" + this.name);\n          }\n          if (handle.$$.ptrType.isConst) {\n            throwBindingError(\"Cannot convert argument of type \" + handle.$$.ptrType.name + \" to parameter type \" + this.name);\n          }\n          var handleClass = handle.$$.ptrType.registeredClass;\n          var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n          return ptr;\n        }\n        function RegisteredPointer_getPointee(ptr) {\n          if (this.rawGetPointee) {\n            ptr = this.rawGetPointee(ptr);\n          }\n          return ptr;\n        }\n        function RegisteredPointer_destructor(ptr) {\n          if (this.rawDestructor) {\n            this.rawDestructor(ptr);\n          }\n        }\n        function RegisteredPointer_deleteObject(handle) {\n          if (handle !== null) {\n            handle[\"delete\"]();\n          }\n        }\n        function init_RegisteredPointer() {\n          RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;\n          RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;\n          RegisteredPointer.prototype[\"argPackAdvance\"] = 8;\n          RegisteredPointer.prototype[\"readValueFromPointer\"] = simpleReadValueFromPointer;\n          RegisteredPointer.prototype[\"deleteObject\"] = RegisteredPointer_deleteObject;\n          RegisteredPointer.prototype[\"fromWireType\"] = RegisteredPointer_fromWireType;\n        }\n        function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {\n          this.name = name;\n          this.registeredClass = registeredClass;\n          this.isReference = isReference;\n          this.isConst = isConst;\n          this.isSmartPointer = isSmartPointer;\n          this.pointeeType = pointeeType;\n          this.sharingPolicy = sharingPolicy;\n          this.rawGetPointee = rawGetPointee;\n          this.rawConstructor = rawConstructor;\n          this.rawShare = rawShare;\n          this.rawDestructor = rawDestructor;\n          if (!isSmartPointer && registeredClass.baseClass === void 0) {\n            if (isConst) {\n              this[\"toWireType\"] = constNoSmartPtrRawPointerToWireType;\n              this.destructorFunction = null;\n            } else {\n              this[\"toWireType\"] = nonConstNoSmartPtrRawPointerToWireType;\n              this.destructorFunction = null;\n            }\n          } else {\n            this[\"toWireType\"] = genericPointerToWireType;\n          }\n        }\n        function replacePublicSymbol(name, value, numArguments) {\n          if (!Module.hasOwnProperty(name)) {\n            throwInternalError(\"Replacing nonexistant public symbol\");\n          }\n          if (Module[name].overloadTable !== void 0 && numArguments !== void 0) {\n            Module[name].overloadTable[numArguments] = value;\n          } else {\n            Module[name] = value;\n            Module[name].argCount = numArguments;\n          }\n        }\n        function dynCallLegacy(sig, ptr, args) {\n          var f = Module[\"dynCall_\" + sig];\n          return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr);\n        }\n        var wasmTableMirror = [];\n        function getWasmTableEntry(funcPtr) {\n          var func = wasmTableMirror[funcPtr];\n          if (!func) {\n            if (funcPtr >= wasmTableMirror.length)\n              wasmTableMirror.length = funcPtr + 1;\n            wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);\n          }\n          return func;\n        }\n        function dynCall(sig, ptr, args) {\n          if (sig.includes(\"j\")) {\n            return dynCallLegacy(sig, ptr, args);\n          }\n          var rtn = getWasmTableEntry(ptr).apply(null, args);\n          return rtn;\n        }\n        function getDynCaller(sig, ptr) {\n          var argCache = [];\n          return function() {\n            argCache.length = 0;\n            Object.assign(argCache, arguments);\n            return dynCall(sig, ptr, argCache);\n          };\n        }\n        function embind__requireFunction(signature, rawFunction) {\n          signature = readLatin1String(signature);\n          function makeDynCaller() {\n            if (signature.includes(\"j\")) {\n              return getDynCaller(signature, rawFunction);\n            }\n            return getWasmTableEntry(rawFunction);\n          }\n          var fp = makeDynCaller();\n          if (typeof fp != \"function\") {\n            throwBindingError(\"unknown function pointer with signature \" + signature + \": \" + rawFunction);\n          }\n          return fp;\n        }\n        var UnboundTypeError = void 0;\n        function getTypeName(type) {\n          var ptr = ___getTypeName(type);\n          var rv = readLatin1String(ptr);\n          _free(ptr);\n          return rv;\n        }\n        function throwUnboundTypeError(message, types) {\n          var unboundTypes = [];\n          var seen = {};\n          function visit(type) {\n            if (seen[type]) {\n              return;\n            }\n            if (registeredTypes[type]) {\n              return;\n            }\n            if (typeDependencies[type]) {\n              typeDependencies[type].forEach(visit);\n              return;\n            }\n            unboundTypes.push(type);\n            seen[type] = true;\n          }\n          types.forEach(visit);\n          throw new UnboundTypeError(message + \": \" + unboundTypes.map(getTypeName).join([\", \"]));\n        }\n        function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {\n          name = readLatin1String(name);\n          getActualType = embind__requireFunction(getActualTypeSignature, getActualType);\n          if (upcast) {\n            upcast = embind__requireFunction(upcastSignature, upcast);\n          }\n          if (downcast) {\n            downcast = embind__requireFunction(downcastSignature, downcast);\n          }\n          rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);\n          var legalFunctionName = makeLegalFunctionName(name);\n          exposePublicSymbol(legalFunctionName, function() {\n            throwUnboundTypeError(\"Cannot construct \" + name + \" due to unbound types\", [baseClassRawType]);\n          });\n          whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) {\n            base = base[0];\n            var baseClass;\n            var basePrototype;\n            if (baseClassRawType) {\n              baseClass = base.registeredClass;\n              basePrototype = baseClass.instancePrototype;\n            } else {\n              basePrototype = ClassHandle.prototype;\n            }\n            var constructor = createNamedFunction(legalFunctionName, function() {\n              if (Object.getPrototypeOf(this) !== instancePrototype) {\n                throw new BindingError(\"Use 'new' to construct \" + name);\n              }\n              if (registeredClass.constructor_body === void 0) {\n                throw new BindingError(name + \" has no accessible constructor\");\n              }\n              var body = registeredClass.constructor_body[arguments.length];\n              if (body === void 0) {\n                throw new BindingError(\"Tried to invoke ctor of \" + name + \" with invalid number of parameters (\" + arguments.length + \") - expected (\" + Object.keys(registeredClass.constructor_body).toString() + \") parameters instead!\");\n              }\n              return body.apply(this, arguments);\n            });\n            var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } });\n            constructor.prototype = instancePrototype;\n            var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);\n            var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);\n            var pointerConverter = new RegisteredPointer(name + \"*\", registeredClass, false, false, false);\n            var constPointerConverter = new RegisteredPointer(name + \" const*\", registeredClass, false, true, false);\n            registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter };\n            replacePublicSymbol(legalFunctionName, constructor);\n            return [referenceConverter, pointerConverter, constPointerConverter];\n          });\n        }\n        function heap32VectorToArray(count, firstElement) {\n          var array = [];\n          for (var i = 0; i < count; i++) {\n            array.push(HEAPU32[firstElement + i * 4 >>> 2]);\n          }\n          return array;\n        }\n        function new_(constructor, argumentList) {\n          if (!(constructor instanceof Function)) {\n            throw new TypeError(\"new_ called with constructor type \" + typeof constructor + \" which is not a function\");\n          }\n          var dummy = createNamedFunction(constructor.name || \"unknownFunctionName\", function() {\n          });\n          dummy.prototype = constructor.prototype;\n          var obj = new dummy();\n          var r = constructor.apply(obj, argumentList);\n          return r instanceof Object ? r : obj;\n        }\n        function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) {\n          var argCount = argTypes.length;\n          if (argCount < 2) {\n            throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n          }\n          var isClassMethodFunc = argTypes[1] !== null && classType !== null;\n          var needsDestructorStack = false;\n          for (var i = 1; i < argTypes.length; ++i) {\n            if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) {\n              needsDestructorStack = true;\n              break;\n            }\n          }\n          var returns = argTypes[0].name !== \"void\";\n          var argsList = \"\";\n          var argsListWired = \"\";\n          for (var i = 0; i < argCount - 2; ++i) {\n            argsList += (i !== 0 ? \", \" : \"\") + \"arg\" + i;\n            argsListWired += (i !== 0 ? \", \" : \"\") + \"arg\" + i + \"Wired\";\n          }\n          var invokerFnBody = \"return function \" + makeLegalFunctionName(humanName) + \"(\" + argsList + \") {\\nif (arguments.length !== \" + (argCount - 2) + \") {\\nthrowBindingError('function \" + humanName + \" called with ' + arguments.length + ' arguments, expected \" + (argCount - 2) + \" args!');\\n}\\n\";\n          if (needsDestructorStack) {\n            invokerFnBody += \"var destructors = [];\\n\";\n          }\n          var dtorStack = needsDestructorStack ? \"destructors\" : \"null\";\n          var args1 = [\"throwBindingError\", \"invoker\", \"fn\", \"runDestructors\", \"retType\", \"classParam\"];\n          var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];\n          if (isClassMethodFunc) {\n            invokerFnBody += \"var thisWired = classParam.toWireType(\" + dtorStack + \", this);\\n\";\n          }\n          for (var i = 0; i < argCount - 2; ++i) {\n            invokerFnBody += \"var arg\" + i + \"Wired = argType\" + i + \".toWireType(\" + dtorStack + \", arg\" + i + \"); // \" + argTypes[i + 2].name + \"\\n\";\n            args1.push(\"argType\" + i);\n            args2.push(argTypes[i + 2]);\n          }\n          if (isClassMethodFunc) {\n            argsListWired = \"thisWired\" + (argsListWired.length > 0 ? \", \" : \"\") + argsListWired;\n          }\n          invokerFnBody += (returns ? \"var rv = \" : \"\") + \"invoker(fn\" + (argsListWired.length > 0 ? \", \" : \"\") + argsListWired + \");\\n\";\n          if (needsDestructorStack) {\n            invokerFnBody += \"runDestructors(destructors);\\n\";\n          } else {\n            for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {\n              var paramName = i === 1 ? \"thisWired\" : \"arg\" + (i - 2) + \"Wired\";\n              if (argTypes[i].destructorFunction !== null) {\n                invokerFnBody += paramName + \"_dtor(\" + paramName + \"); // \" + argTypes[i].name + \"\\n\";\n                args1.push(paramName + \"_dtor\");\n                args2.push(argTypes[i].destructorFunction);\n              }\n            }\n          }\n          if (returns) {\n            invokerFnBody += \"var ret = retType.fromWireType(rv);\\nreturn ret;\\n\";\n          }\n          invokerFnBody += \"}\\n\";\n          args1.push(invokerFnBody);\n          var invokerFunction = new_(Function, args1).apply(null, args2);\n          return invokerFunction;\n        }\n        function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {\n          assert(argCount > 0);\n          var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n          invoker = embind__requireFunction(invokerSignature, invoker);\n          whenDependentTypesAreResolved([], [rawClassType], function(classType) {\n            classType = classType[0];\n            var humanName = \"constructor \" + classType.name;\n            if (classType.registeredClass.constructor_body === void 0) {\n              classType.registeredClass.constructor_body = [];\n            }\n            if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) {\n              throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\" + (argCount - 1) + \") for class '\" + classType.name + \"'! Overload resolution is currently only performed using the parameter count, not actual type info!\");\n            }\n            classType.registeredClass.constructor_body[argCount - 1] = () => {\n              throwUnboundTypeError(\"Cannot construct \" + classType.name + \" due to unbound types\", rawArgTypes);\n            };\n            whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {\n              argTypes.splice(1, 0, null);\n              classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor);\n              return [];\n            });\n            return [];\n          });\n        }\n        function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) {\n          var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n          methodName = readLatin1String(methodName);\n          rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);\n          whenDependentTypesAreResolved([], [rawClassType], function(classType) {\n            classType = classType[0];\n            var humanName = classType.name + \".\" + methodName;\n            if (methodName.startsWith(\"@@\")) {\n              methodName = Symbol[methodName.substring(2)];\n            }\n            if (isPureVirtual) {\n              classType.registeredClass.pureVirtualFunctions.push(methodName);\n            }\n            function unboundTypesHandler() {\n              throwUnboundTypeError(\"Cannot call \" + humanName + \" due to unbound types\", rawArgTypes);\n            }\n            var proto = classType.registeredClass.instancePrototype;\n            var method = proto[methodName];\n            if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) {\n              unboundTypesHandler.argCount = argCount - 2;\n              unboundTypesHandler.className = classType.name;\n              proto[methodName] = unboundTypesHandler;\n            } else {\n              ensureOverloadTable(proto, methodName, humanName);\n              proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;\n            }\n            whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {\n              var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context);\n              if (proto[methodName].overloadTable === void 0) {\n                memberFunction.argCount = argCount - 2;\n                proto[methodName] = memberFunction;\n              } else {\n                proto[methodName].overloadTable[argCount - 2] = memberFunction;\n              }\n              return [];\n            });\n            return [];\n          });\n        }\n        var emval_free_list = [];\n        var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }];\n        function __emval_decref(handle) {\n          if (handle > 4 && --emval_handle_array[handle].refcount === 0) {\n            emval_handle_array[handle] = void 0;\n            emval_free_list.push(handle);\n          }\n        }\n        function count_emval_handles() {\n          var count = 0;\n          for (var i = 5; i < emval_handle_array.length; ++i) {\n            if (emval_handle_array[i] !== void 0) {\n              ++count;\n            }\n          }\n          return count;\n        }\n        function get_first_emval() {\n          for (var i = 5; i < emval_handle_array.length; ++i) {\n            if (emval_handle_array[i] !== void 0) {\n              return emval_handle_array[i];\n            }\n          }\n          return null;\n        }\n        function init_emval() {\n          Module[\"count_emval_handles\"] = count_emval_handles;\n          Module[\"get_first_emval\"] = get_first_emval;\n        }\n        var Emval = { toValue: (handle) => {\n          if (!handle) {\n            throwBindingError(\"Cannot use deleted val. handle = \" + handle);\n          }\n          return emval_handle_array[handle].value;\n        }, toHandle: (value) => {\n          switch (value) {\n            case void 0:\n              return 1;\n            case null:\n              return 2;\n            case true:\n              return 3;\n            case false:\n              return 4;\n            default: {\n              var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length;\n              emval_handle_array[handle] = { refcount: 1, value };\n              return handle;\n            }\n          }\n        } };\n        function __embind_register_emval(rawType, name) {\n          name = readLatin1String(name);\n          registerType(rawType, { name, \"fromWireType\": function(handle) {\n            var rv = Emval.toValue(handle);\n            __emval_decref(handle);\n            return rv;\n          }, \"toWireType\": function(destructors, value) {\n            return Emval.toHandle(value);\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: null });\n        }\n        function enumReadValueFromPointer(name, shift, signed) {\n          switch (shift) {\n            case 0:\n              return function(pointer) {\n                var heap = signed ? HEAP8 : HEAPU8;\n                return this[\"fromWireType\"](heap[pointer >>> 0]);\n              };\n            case 1:\n              return function(pointer) {\n                var heap = signed ? HEAP16 : HEAPU16;\n                return this[\"fromWireType\"](heap[pointer >>> 1]);\n              };\n            case 2:\n              return function(pointer) {\n                var heap = signed ? HEAP32 : HEAPU32;\n                return this[\"fromWireType\"](heap[pointer >>> 2]);\n              };\n            default:\n              throw new TypeError(\"Unknown integer type: \" + name);\n          }\n        }\n        function __embind_register_enum(rawType, name, size, isSigned) {\n          var shift = getShiftFromSize(size);\n          name = readLatin1String(name);\n          function ctor() {\n          }\n          ctor.values = {};\n          registerType(rawType, { name, constructor: ctor, \"fromWireType\": function(c) {\n            return this.constructor.values[c];\n          }, \"toWireType\": function(destructors, c) {\n            return c.value;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null });\n          exposePublicSymbol(name, ctor);\n        }\n        function requireRegisteredType(rawType, humanName) {\n          var impl = registeredTypes[rawType];\n          if (impl === void 0) {\n            throwBindingError(humanName + \" has unknown type \" + getTypeName(rawType));\n          }\n          return impl;\n        }\n        function __embind_register_enum_value(rawEnumType, name, enumValue) {\n          var enumType = requireRegisteredType(rawEnumType, \"enum\");\n          name = readLatin1String(name);\n          var Enum = enumType.constructor;\n          var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + \"_\" + name, function() {\n          }) } });\n          Enum.values[enumValue] = Value;\n          Enum[name] = Value;\n        }\n        function embindRepr(v) {\n          if (v === null) {\n            return \"null\";\n          }\n          var t = typeof v;\n          if (t === \"object\" || t === \"array\" || t === \"function\") {\n            return v.toString();\n          } else {\n            return \"\" + v;\n          }\n        }\n        function floatReadValueFromPointer(name, shift) {\n          switch (shift) {\n            case 2:\n              return function(pointer) {\n                return this[\"fromWireType\"](HEAPF32[pointer >>> 2]);\n              };\n            case 3:\n              return function(pointer) {\n                return this[\"fromWireType\"](HEAPF64[pointer >>> 3]);\n              };\n            default:\n              throw new TypeError(\"Unknown float type: \" + name);\n          }\n        }\n        function __embind_register_float(rawType, name, size) {\n          var shift = getShiftFromSize(size);\n          name = readLatin1String(name);\n          registerType(rawType, { name, \"fromWireType\": function(value) {\n            return value;\n          }, \"toWireType\": function(destructors, value) {\n            return value;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": floatReadValueFromPointer(name, shift), destructorFunction: null });\n        }\n        function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) {\n          var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n          name = readLatin1String(name);\n          rawInvoker = embind__requireFunction(signature, rawInvoker);\n          exposePublicSymbol(name, function() {\n            throwUnboundTypeError(\"Cannot call \" + name + \" due to unbound types\", argTypes);\n          }, argCount - 1);\n          whenDependentTypesAreResolved([], argTypes, function(argTypes2) {\n            var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1));\n            replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1);\n            return [];\n          });\n        }\n        function integerReadValueFromPointer(name, shift, signed) {\n          switch (shift) {\n            case 0:\n              return signed ? function readS8FromPointer(pointer) {\n                return HEAP8[pointer >>> 0];\n              } : function readU8FromPointer(pointer) {\n                return HEAPU8[pointer >>> 0];\n              };\n            case 1:\n              return signed ? function readS16FromPointer(pointer) {\n                return HEAP16[pointer >>> 1];\n              } : function readU16FromPointer(pointer) {\n                return HEAPU16[pointer >>> 1];\n              };\n            case 2:\n              return signed ? function readS32FromPointer(pointer) {\n                return HEAP32[pointer >>> 2];\n              } : function readU32FromPointer(pointer) {\n                return HEAPU32[pointer >>> 2];\n              };\n            default:\n              throw new TypeError(\"Unknown integer type: \" + name);\n          }\n        }\n        function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {\n          name = readLatin1String(name);\n          var shift = getShiftFromSize(size);\n          var fromWireType = (value) => value;\n          if (minRange === 0) {\n            var bitshift = 32 - 8 * size;\n            fromWireType = (value) => value << bitshift >>> bitshift;\n          }\n          var isUnsignedType = name.includes(\"unsigned\");\n          var checkAssertions = (value, toTypeName) => {\n          };\n          var toWireType;\n          if (isUnsignedType) {\n            toWireType = function(destructors, value) {\n              checkAssertions(value, this.name);\n              return value >>> 0;\n            };\n          } else {\n            toWireType = function(destructors, value) {\n              checkAssertions(value, this.name);\n              return value;\n            };\n          }\n          registerType(primitiveType, { name, \"fromWireType\": fromWireType, \"toWireType\": toWireType, \"argPackAdvance\": 8, \"readValueFromPointer\": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null });\n        }\n        function __embind_register_memory_view(rawType, dataTypeIndex, name) {\n          var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\n          var TA = typeMapping[dataTypeIndex];\n          function decodeMemoryView(handle) {\n            handle = handle >> 2;\n            var heap = HEAPU32;\n            var size = heap[handle >>> 0];\n            var data = heap[handle + 1 >>> 0];\n            return new TA(heap.buffer, data, size);\n          }\n          name = readLatin1String(name);\n          registerType(rawType, { name, \"fromWireType\": decodeMemoryView, \"argPackAdvance\": 8, \"readValueFromPointer\": decodeMemoryView }, { ignoreDuplicateRegistrations: true });\n        }\n        function __embind_register_std_string(rawType, name) {\n          name = readLatin1String(name);\n          var stdStringIsUTF8 = name === \"std::string\";\n          registerType(rawType, { name, \"fromWireType\": function(value) {\n            var length = HEAPU32[value >>> 2];\n            var payload = value + 4;\n            var str;\n            if (stdStringIsUTF8) {\n              var decodeStartPtr = payload;\n              for (var i = 0; i <= length; ++i) {\n                var currentBytePtr = payload + i;\n                if (i == length || HEAPU8[currentBytePtr >>> 0] == 0) {\n                  var maxRead = currentBytePtr - decodeStartPtr;\n                  var stringSegment = UTF8ToString(decodeStartPtr, maxRead);\n                  if (str === void 0) {\n                    str = stringSegment;\n                  } else {\n                    str += String.fromCharCode(0);\n                    str += stringSegment;\n                  }\n                  decodeStartPtr = currentBytePtr + 1;\n                }\n              }\n            } else {\n              var a = new Array(length);\n              for (var i = 0; i < length; ++i) {\n                a[i] = String.fromCharCode(HEAPU8[payload + i >>> 0]);\n              }\n              str = a.join(\"\");\n            }\n            _free(value);\n            return str;\n          }, \"toWireType\": function(destructors, value) {\n            if (value instanceof ArrayBuffer) {\n              value = new Uint8Array(value);\n            }\n            var length;\n            var valueIsOfTypeString = typeof value == \"string\";\n            if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {\n              throwBindingError(\"Cannot pass non-string to std::string\");\n            }\n            if (stdStringIsUTF8 && valueIsOfTypeString) {\n              length = lengthBytesUTF8(value);\n            } else {\n              length = value.length;\n            }\n            var base = _malloc(4 + length + 1);\n            var ptr = base + 4;\n            ptr >>>= 0;\n            HEAPU32[base >>> 2] = length;\n            if (stdStringIsUTF8 && valueIsOfTypeString) {\n              stringToUTF8(value, ptr, length + 1);\n            } else {\n              if (valueIsOfTypeString) {\n                for (var i = 0; i < length; ++i) {\n                  var charCode = value.charCodeAt(i);\n                  if (charCode > 255) {\n                    _free(ptr);\n                    throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\");\n                  }\n                  HEAPU8[ptr + i >>> 0] = charCode;\n                }\n              } else {\n                for (var i = 0; i < length; ++i) {\n                  HEAPU8[ptr + i >>> 0] = value[i];\n                }\n              }\n            }\n            if (destructors !== null) {\n              destructors.push(_free, base);\n            }\n            return base;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: function(ptr) {\n            _free(ptr);\n          } });\n        }\n        var UTF16Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf-16le\") : void 0;\n        function UTF16ToString(ptr, maxBytesToRead) {\n          var endPtr = ptr;\n          var idx = endPtr >> 1;\n          var maxIdx = idx + maxBytesToRead / 2;\n          while (!(idx >= maxIdx) && HEAPU16[idx >>> 0])\n            ++idx;\n          endPtr = idx << 1;\n          if (endPtr - ptr > 32 && UTF16Decoder)\n            return UTF16Decoder.decode(HEAPU8.subarray(ptr >>> 0, endPtr >>> 0));\n          var str = \"\";\n          for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {\n            var codeUnit = HEAP16[ptr + i * 2 >>> 1];\n            if (codeUnit == 0)\n              break;\n            str += String.fromCharCode(codeUnit);\n          }\n          return str;\n        }\n        function stringToUTF16(str, outPtr, maxBytesToWrite) {\n          if (maxBytesToWrite === void 0) {\n            maxBytesToWrite = 2147483647;\n          }\n          if (maxBytesToWrite < 2)\n            return 0;\n          maxBytesToWrite -= 2;\n          var startPtr = outPtr;\n          var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;\n          for (var i = 0; i < numCharsToWrite; ++i) {\n            var codeUnit = str.charCodeAt(i);\n            HEAP16[outPtr >>> 1] = codeUnit;\n            outPtr += 2;\n          }\n          HEAP16[outPtr >>> 1] = 0;\n          return outPtr - startPtr;\n        }\n        function lengthBytesUTF16(str) {\n          return str.length * 2;\n        }\n        function UTF32ToString(ptr, maxBytesToRead) {\n          var i = 0;\n          var str = \"\";\n          while (!(i >= maxBytesToRead / 4)) {\n            var utf32 = HEAP32[ptr + i * 4 >>> 2];\n            if (utf32 == 0)\n              break;\n            ++i;\n            if (utf32 >= 65536) {\n              var ch = utf32 - 65536;\n              str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n            } else {\n              str += String.fromCharCode(utf32);\n            }\n          }\n          return str;\n        }\n        function stringToUTF32(str, outPtr, maxBytesToWrite) {\n          outPtr >>>= 0;\n          if (maxBytesToWrite === void 0) {\n            maxBytesToWrite = 2147483647;\n          }\n          if (maxBytesToWrite < 4)\n            return 0;\n          var startPtr = outPtr;\n          var endPtr = startPtr + maxBytesToWrite - 4;\n          for (var i = 0; i < str.length; ++i) {\n            var codeUnit = str.charCodeAt(i);\n            if (codeUnit >= 55296 && codeUnit <= 57343) {\n              var trailSurrogate = str.charCodeAt(++i);\n              codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;\n            }\n            HEAP32[outPtr >>> 2] = codeUnit;\n            outPtr += 4;\n            if (outPtr + 4 > endPtr)\n              break;\n          }\n          HEAP32[outPtr >>> 2] = 0;\n          return outPtr - startPtr;\n        }\n        function lengthBytesUTF32(str) {\n          var len = 0;\n          for (var i = 0; i < str.length; ++i) {\n            var codeUnit = str.charCodeAt(i);\n            if (codeUnit >= 55296 && codeUnit <= 57343)\n              ++i;\n            len += 4;\n          }\n          return len;\n        }\n        function __embind_register_std_wstring(rawType, charSize, name) {\n          name = readLatin1String(name);\n          var decodeString, encodeString, getHeap, lengthBytesUTF, shift;\n          if (charSize === 2) {\n            decodeString = UTF16ToString;\n            encodeString = stringToUTF16;\n            lengthBytesUTF = lengthBytesUTF16;\n            getHeap = () => HEAPU16;\n            shift = 1;\n          } else if (charSize === 4) {\n            decodeString = UTF32ToString;\n            encodeString = stringToUTF32;\n            lengthBytesUTF = lengthBytesUTF32;\n            getHeap = () => HEAPU32;\n            shift = 2;\n          }\n          registerType(rawType, { name, \"fromWireType\": function(value) {\n            var length = HEAPU32[value >>> 2];\n            var HEAP = getHeap();\n            var str;\n            var decodeStartPtr = value + 4;\n            for (var i = 0; i <= length; ++i) {\n              var currentBytePtr = value + 4 + i * charSize;\n              if (i == length || HEAP[currentBytePtr >>> shift] == 0) {\n                var maxReadBytes = currentBytePtr - decodeStartPtr;\n                var stringSegment = decodeString(decodeStartPtr, maxReadBytes);\n                if (str === void 0) {\n                  str = stringSegment;\n                } else {\n                  str += String.fromCharCode(0);\n                  str += stringSegment;\n                }\n                decodeStartPtr = currentBytePtr + charSize;\n              }\n            }\n            _free(value);\n            return str;\n          }, \"toWireType\": function(destructors, value) {\n            if (!(typeof value == \"string\")) {\n              throwBindingError(\"Cannot pass non-string to C++ string type \" + name);\n            }\n            var length = lengthBytesUTF(value);\n            var ptr = _malloc(4 + length + charSize);\n            ptr >>>= 0;\n            HEAPU32[ptr >>> 2] = length >> shift;\n            encodeString(value, ptr + 4, length + charSize);\n            if (destructors !== null) {\n              destructors.push(_free, ptr);\n            }\n            return ptr;\n          }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: function(ptr) {\n            _free(ptr);\n          } });\n        }\n        function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {\n          tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] };\n        }\n        function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {\n          tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });\n        }\n        function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {\n          structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };\n        }\n        function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {\n          structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });\n        }\n        function __embind_register_void(rawType, name) {\n          name = readLatin1String(name);\n          registerType(rawType, { isVoid: true, name, \"argPackAdvance\": 0, \"fromWireType\": function() {\n            return void 0;\n          }, \"toWireType\": function(destructors, o) {\n            return void 0;\n          } });\n        }\n        function __emval_as(handle, returnType, destructorsRef) {\n          handle = Emval.toValue(handle);\n          returnType = requireRegisteredType(returnType, \"emval::as\");\n          var destructors = [];\n          var rd = Emval.toHandle(destructors);\n          HEAPU32[destructorsRef >>> 2] = rd;\n          return returnType[\"toWireType\"](destructors, handle);\n        }\n        function emval_lookupTypes(argCount, argTypes) {\n          var a = new Array(argCount);\n          for (var i = 0; i < argCount; ++i) {\n            a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >>> 2], \"parameter \" + i);\n          }\n          return a;\n        }\n        function __emval_call(handle, argCount, argTypes, argv) {\n          handle = Emval.toValue(handle);\n          var types = emval_lookupTypes(argCount, argTypes);\n          var args = new Array(argCount);\n          for (var i = 0; i < argCount; ++i) {\n            var type = types[i];\n            args[i] = type[\"readValueFromPointer\"](argv);\n            argv += type[\"argPackAdvance\"];\n          }\n          var rv = handle.apply(void 0, args);\n          return Emval.toHandle(rv);\n        }\n        var emval_symbols = {};\n        function getStringOrSymbol(address) {\n          var symbol = emval_symbols[address];\n          if (symbol === void 0) {\n            return readLatin1String(address);\n          }\n          return symbol;\n        }\n        function emval_get_global() {\n          if (typeof globalThis == \"object\") {\n            return globalThis;\n          }\n          return function() {\n            return Function;\n          }()(\"return this\")();\n        }\n        function __emval_get_global(name) {\n          if (name === 0) {\n            return Emval.toHandle(emval_get_global());\n          } else {\n            name = getStringOrSymbol(name);\n            return Emval.toHandle(emval_get_global()[name]);\n          }\n        }\n        function __emval_get_property(handle, key) {\n          handle = Emval.toValue(handle);\n          key = Emval.toValue(key);\n          return Emval.toHandle(handle[key]);\n        }\n        function __emval_incref(handle) {\n          if (handle > 4) {\n            emval_handle_array[handle].refcount += 1;\n          }\n        }\n        function __emval_instanceof(object, constructor) {\n          object = Emval.toValue(object);\n          constructor = Emval.toValue(constructor);\n          return object instanceof constructor;\n        }\n        function __emval_is_number(handle) {\n          handle = Emval.toValue(handle);\n          return typeof handle == \"number\";\n        }\n        function __emval_new_array() {\n          return Emval.toHandle([]);\n        }\n        function __emval_new_cstring(v) {\n          return Emval.toHandle(getStringOrSymbol(v));\n        }\n        function __emval_new_object() {\n          return Emval.toHandle({});\n        }\n        function __emval_run_destructors(handle) {\n          var destructors = Emval.toValue(handle);\n          runDestructors(destructors);\n          __emval_decref(handle);\n        }\n        function __emval_set_property(handle, key, value) {\n          handle = Emval.toValue(handle);\n          key = Emval.toValue(key);\n          value = Emval.toValue(value);\n          handle[key] = value;\n        }\n        function __emval_take_value(type, arg) {\n          type = requireRegisteredType(type, \"_emval_take_value\");\n          var v = type[\"readValueFromPointer\"](arg);\n          return Emval.toHandle(v);\n        }\n        function _abort() {\n          abort(\"\");\n        }\n        function _emscripten_memcpy_big(dest, src, num) {\n          HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0);\n        }\n        function getHeapMax() {\n          return 4294901760;\n        }\n        function emscripten_realloc_buffer(size) {\n          var b = wasmMemory.buffer;\n          try {\n            wasmMemory.grow(size - b.byteLength + 65535 >>> 16);\n            updateMemoryViews();\n            return 1;\n          } catch (e) {\n          }\n        }\n        function _emscripten_resize_heap(requestedSize) {\n          var oldSize = HEAPU8.length;\n          requestedSize = requestedSize >>> 0;\n          var maxHeapSize = getHeapMax();\n          if (requestedSize > maxHeapSize) {\n            return false;\n          }\n          let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;\n          for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n            var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n            overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n            var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n            var replacement = emscripten_realloc_buffer(newSize);\n            if (replacement) {\n              return true;\n            }\n          }\n          return false;\n        }\n        var ENV = {};\n        function getExecutableName() {\n          return thisProgram || \"./this.program\";\n        }\n        function getEnvStrings() {\n          if (!getEnvStrings.strings) {\n            var lang = (typeof navigator == \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n            var env = { \"USER\": \"web_user\", \"LOGNAME\": \"web_user\", \"PATH\": \"/\", \"PWD\": \"/\", \"HOME\": \"/home/web_user\", \"LANG\": lang, \"_\": getExecutableName() };\n            for (var x in ENV) {\n              if (ENV[x] === void 0)\n                delete env[x];\n              else\n                env[x] = ENV[x];\n            }\n            var strings = [];\n            for (var x in env) {\n              strings.push(x + \"=\" + env[x]);\n            }\n            getEnvStrings.strings = strings;\n          }\n          return getEnvStrings.strings;\n        }\n        function writeAsciiToMemory(str, buffer, dontAddNull) {\n          for (var i = 0; i < str.length; ++i) {\n            HEAP8[buffer++ >>> 0] = str.charCodeAt(i);\n          }\n          if (!dontAddNull)\n            HEAP8[buffer >>> 0] = 0;\n        }\n        function _environ_get(__environ, environ_buf) {\n          var bufSize = 0;\n          getEnvStrings().forEach(function(string, i) {\n            var ptr = environ_buf + bufSize;\n            HEAPU32[__environ + i * 4 >>> 2] = ptr;\n            writeAsciiToMemory(string, ptr);\n            bufSize += string.length + 1;\n          });\n          return 0;\n        }\n        function _environ_sizes_get(penviron_count, penviron_buf_size) {\n          var strings = getEnvStrings();\n          HEAPU32[penviron_count >>> 2] = strings.length;\n          var bufSize = 0;\n          strings.forEach(function(string) {\n            bufSize += string.length + 1;\n          });\n          HEAPU32[penviron_buf_size >>> 2] = bufSize;\n          return 0;\n        }\n        function _fd_close(fd) {\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            FS.close(stream);\n            return 0;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return e.errno;\n          }\n        }\n        function doReadv(stream, iov, iovcnt, offset) {\n          var ret = 0;\n          for (var i = 0; i < iovcnt; i++) {\n            var ptr = HEAPU32[iov >>> 2];\n            var len = HEAPU32[iov + 4 >>> 2];\n            iov += 8;\n            var curr = FS.read(stream, HEAP8, ptr, len, offset);\n            if (curr < 0)\n              return -1;\n            ret += curr;\n            if (curr < len)\n              break;\n            if (typeof offset !== \"undefined\") {\n              offset += curr;\n            }\n          }\n          return ret;\n        }\n        function _fd_read(fd, iov, iovcnt, pnum) {\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            var num = doReadv(stream, iov, iovcnt);\n            HEAPU32[pnum >>> 2] = num;\n            return 0;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return e.errno;\n          }\n        }\n        function convertI32PairToI53Checked(lo, hi) {\n          return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN;\n        }\n        function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n          try {\n            var offset = convertI32PairToI53Checked(offset_low, offset_high);\n            if (isNaN(offset))\n              return 61;\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            FS.llseek(stream, offset, whence);\n            tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >>> 2] = tempI64[0], HEAP32[newOffset + 4 >>> 2] = tempI64[1];\n            if (stream.getdents && offset === 0 && whence === 0)\n              stream.getdents = null;\n            return 0;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return e.errno;\n          }\n        }\n        function doWritev(stream, iov, iovcnt, offset) {\n          var ret = 0;\n          for (var i = 0; i < iovcnt; i++) {\n            var ptr = HEAPU32[iov >>> 2];\n            var len = HEAPU32[iov + 4 >>> 2];\n            iov += 8;\n            var curr = FS.write(stream, HEAP8, ptr, len, offset);\n            if (curr < 0)\n              return -1;\n            ret += curr;\n            if (typeof offset !== \"undefined\") {\n              offset += curr;\n            }\n          }\n          return ret;\n        }\n        function _fd_write(fd, iov, iovcnt, pnum) {\n          try {\n            var stream = SYSCALLS.getStreamFromFD(fd);\n            var num = doWritev(stream, iov, iovcnt);\n            HEAPU32[pnum >>> 2] = num;\n            return 0;\n          } catch (e) {\n            if (typeof FS == \"undefined\" || !(e instanceof FS.ErrnoError))\n              throw e;\n            return e.errno;\n          }\n        }\n        function __isLeapYear(year) {\n          return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n        }\n        function __arraySum(array, index) {\n          var sum = 0;\n          for (var i = 0; i <= index; sum += array[i++]) {\n          }\n          return sum;\n        }\n        var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n        var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n        function __addDays(date, days) {\n          var newDate = new Date(date.getTime());\n          while (days > 0) {\n            var leap = __isLeapYear(newDate.getFullYear());\n            var currentMonth = newDate.getMonth();\n            var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];\n            if (days > daysInCurrentMonth - newDate.getDate()) {\n              days -= daysInCurrentMonth - newDate.getDate() + 1;\n              newDate.setDate(1);\n              if (currentMonth < 11) {\n                newDate.setMonth(currentMonth + 1);\n              } else {\n                newDate.setMonth(0);\n                newDate.setFullYear(newDate.getFullYear() + 1);\n              }\n            } else {\n              newDate.setDate(newDate.getDate() + days);\n              return newDate;\n            }\n          }\n          return newDate;\n        }\n        function writeArrayToMemory(array, buffer) {\n          HEAP8.set(array, buffer >>> 0);\n        }\n        function _strftime(s, maxsize, format, tm) {\n          var tm_zone = HEAP32[tm + 40 >>> 2];\n          var date = { tm_sec: HEAP32[tm >>> 2], tm_min: HEAP32[tm + 4 >>> 2], tm_hour: HEAP32[tm + 8 >>> 2], tm_mday: HEAP32[tm + 12 >>> 2], tm_mon: HEAP32[tm + 16 >>> 2], tm_year: HEAP32[tm + 20 >>> 2], tm_wday: HEAP32[tm + 24 >>> 2], tm_yday: HEAP32[tm + 28 >>> 2], tm_isdst: HEAP32[tm + 32 >>> 2], tm_gmtoff: HEAP32[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : \"\" };\n          var pattern = UTF8ToString(format);\n          var EXPANSION_RULES_1 = { \"%c\": \"%a %b %d %H:%M:%S %Y\", \"%D\": \"%m/%d/%y\", \"%F\": \"%Y-%m-%d\", \"%h\": \"%b\", \"%r\": \"%I:%M:%S %p\", \"%R\": \"%H:%M\", \"%T\": \"%H:%M:%S\", \"%x\": \"%m/%d/%y\", \"%X\": \"%H:%M:%S\", \"%Ec\": \"%c\", \"%EC\": \"%C\", \"%Ex\": \"%m/%d/%y\", \"%EX\": \"%H:%M:%S\", \"%Ey\": \"%y\", \"%EY\": \"%Y\", \"%Od\": \"%d\", \"%Oe\": \"%e\", \"%OH\": \"%H\", \"%OI\": \"%I\", \"%Om\": \"%m\", \"%OM\": \"%M\", \"%OS\": \"%S\", \"%Ou\": \"%u\", \"%OU\": \"%U\", \"%OV\": \"%V\", \"%Ow\": \"%w\", \"%OW\": \"%W\", \"%Oy\": \"%y\" };\n          for (var rule in EXPANSION_RULES_1) {\n            pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_1[rule]);\n          }\n          var WEEKDAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n          var MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n          function leadingSomething(value, digits, character) {\n            var str = typeof value == \"number\" ? value.toString() : value || \"\";\n            while (str.length < digits) {\n              str = character[0] + str;\n            }\n            return str;\n          }\n          function leadingNulls(value, digits) {\n            return leadingSomething(value, digits, \"0\");\n          }\n          function compareByDay(date1, date2) {\n            function sgn(value) {\n              return value < 0 ? -1 : value > 0 ? 1 : 0;\n            }\n            var compare;\n            if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {\n              if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {\n                compare = sgn(date1.getDate() - date2.getDate());\n              }\n            }\n            return compare;\n          }\n          function getFirstWeekStartDate(janFourth) {\n            switch (janFourth.getDay()) {\n              case 0:\n                return new Date(janFourth.getFullYear() - 1, 11, 29);\n              case 1:\n                return janFourth;\n              case 2:\n                return new Date(janFourth.getFullYear(), 0, 3);\n              case 3:\n                return new Date(janFourth.getFullYear(), 0, 2);\n              case 4:\n                return new Date(janFourth.getFullYear(), 0, 1);\n              case 5:\n                return new Date(janFourth.getFullYear() - 1, 11, 31);\n              case 6:\n                return new Date(janFourth.getFullYear() - 1, 11, 30);\n            }\n          }\n          function getWeekBasedYear(date2) {\n            var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday);\n            var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);\n            var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);\n            var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n            var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n            if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {\n              if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {\n                return thisDate.getFullYear() + 1;\n              }\n              return thisDate.getFullYear();\n            }\n            return thisDate.getFullYear() - 1;\n          }\n          var EXPANSION_RULES_2 = { \"%a\": function(date2) {\n            return WEEKDAYS[date2.tm_wday].substring(0, 3);\n          }, \"%A\": function(date2) {\n            return WEEKDAYS[date2.tm_wday];\n          }, \"%b\": function(date2) {\n            return MONTHS[date2.tm_mon].substring(0, 3);\n          }, \"%B\": function(date2) {\n            return MONTHS[date2.tm_mon];\n          }, \"%C\": function(date2) {\n            var year = date2.tm_year + 1900;\n            return leadingNulls(year / 100 | 0, 2);\n          }, \"%d\": function(date2) {\n            return leadingNulls(date2.tm_mday, 2);\n          }, \"%e\": function(date2) {\n            return leadingSomething(date2.tm_mday, 2, \" \");\n          }, \"%g\": function(date2) {\n            return getWeekBasedYear(date2).toString().substring(2);\n          }, \"%G\": function(date2) {\n            return getWeekBasedYear(date2);\n          }, \"%H\": function(date2) {\n            return leadingNulls(date2.tm_hour, 2);\n          }, \"%I\": function(date2) {\n            var twelveHour = date2.tm_hour;\n            if (twelveHour == 0)\n              twelveHour = 12;\n            else if (twelveHour > 12)\n              twelveHour -= 12;\n            return leadingNulls(twelveHour, 2);\n          }, \"%j\": function(date2) {\n            return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3);\n          }, \"%m\": function(date2) {\n            return leadingNulls(date2.tm_mon + 1, 2);\n          }, \"%M\": function(date2) {\n            return leadingNulls(date2.tm_min, 2);\n          }, \"%n\": function() {\n            return \"\\n\";\n          }, \"%p\": function(date2) {\n            if (date2.tm_hour >= 0 && date2.tm_hour < 12) {\n              return \"AM\";\n            }\n            return \"PM\";\n          }, \"%S\": function(date2) {\n            return leadingNulls(date2.tm_sec, 2);\n          }, \"%t\": function() {\n            return \"\t\";\n          }, \"%u\": function(date2) {\n            return date2.tm_wday || 7;\n          }, \"%U\": function(date2) {\n            var days = date2.tm_yday + 7 - date2.tm_wday;\n            return leadingNulls(Math.floor(days / 7), 2);\n          }, \"%V\": function(date2) {\n            var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7);\n            if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) {\n              val++;\n            }\n            if (!val) {\n              val = 52;\n              var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7;\n              if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) {\n                val++;\n              }\n            } else if (val == 53) {\n              var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7;\n              if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year)))\n                val = 1;\n            }\n            return leadingNulls(val, 2);\n          }, \"%w\": function(date2) {\n            return date2.tm_wday;\n          }, \"%W\": function(date2) {\n            var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7;\n            return leadingNulls(Math.floor(days / 7), 2);\n          }, \"%y\": function(date2) {\n            return (date2.tm_year + 1900).toString().substring(2);\n          }, \"%Y\": function(date2) {\n            return date2.tm_year + 1900;\n          }, \"%z\": function(date2) {\n            var off = date2.tm_gmtoff;\n            var ahead = off >= 0;\n            off = Math.abs(off) / 60;\n            off = off / 60 * 100 + off % 60;\n            return (ahead ? \"+\" : \"-\") + String(\"0000\" + off).slice(-4);\n          }, \"%Z\": function(date2) {\n            return date2.tm_zone;\n          }, \"%%\": function() {\n            return \"%\";\n          } };\n          pattern = pattern.replace(/%%/g, \"\\0\\0\");\n          for (var rule in EXPANSION_RULES_2) {\n            if (pattern.includes(rule)) {\n              pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_2[rule](date));\n            }\n          }\n          pattern = pattern.replace(/\\0\\0/g, \"%\");\n          var bytes = intArrayFromString(pattern, false);\n          if (bytes.length > maxsize) {\n            return 0;\n          }\n          writeArrayToMemory(bytes, s);\n          return bytes.length - 1;\n        }\n        function _strftime_l(s, maxsize, format, tm, loc) {\n          return _strftime(s, maxsize, format, tm);\n        }\n        var FSNode = function(parent, name, mode, rdev) {\n          if (!parent) {\n            parent = this;\n          }\n          this.parent = parent;\n          this.mount = parent.mount;\n          this.mounted = null;\n          this.id = FS.nextInode++;\n          this.name = name;\n          this.mode = mode;\n          this.node_ops = {};\n          this.stream_ops = {};\n          this.rdev = rdev;\n        };\n        var readMode = 292 | 73;\n        var writeMode = 146;\n        Object.defineProperties(FSNode.prototype, { read: { get: function() {\n          return (this.mode & readMode) === readMode;\n        }, set: function(val) {\n          val ? this.mode |= readMode : this.mode &= ~readMode;\n        } }, write: { get: function() {\n          return (this.mode & writeMode) === writeMode;\n        }, set: function(val) {\n          val ? this.mode |= writeMode : this.mode &= ~writeMode;\n        } }, isFolder: { get: function() {\n          return FS.isDir(this.mode);\n        } }, isDevice: { get: function() {\n          return FS.isChrdev(this.mode);\n        } } });\n        FS.FSNode = FSNode;\n        FS.staticInit();\n        InternalError = Module[\"InternalError\"] = extendError(Error, \"InternalError\");\n        embind_init_charCodes();\n        BindingError = Module[\"BindingError\"] = extendError(Error, \"BindingError\");\n        init_ClassHandle();\n        init_embind();\n        init_RegisteredPointer();\n        UnboundTypeError = Module[\"UnboundTypeError\"] = extendError(Error, \"UnboundTypeError\");\n        init_emval();\n        var wasmImports = { \"e\": ___cxa_throw, \"z\": ___syscall_fcntl64, \"L\": ___syscall_ioctl, \"M\": ___syscall_openat, \"T\": __embind_finalize_value_array, \"s\": __embind_finalize_value_object, \"G\": __embind_register_bigint, \"R\": __embind_register_bool, \"r\": __embind_register_class, \"q\": __embind_register_class_constructor, \"c\": __embind_register_class_function, \"Q\": __embind_register_emval, \"D\": __embind_register_enum, \"p\": __embind_register_enum_value, \"B\": __embind_register_float, \"b\": __embind_register_function, \"o\": __embind_register_integer, \"h\": __embind_register_memory_view, \"C\": __embind_register_std_string, \"v\": __embind_register_std_wstring, \"U\": __embind_register_value_array, \"j\": __embind_register_value_array_element, \"t\": __embind_register_value_object, \"g\": __embind_register_value_object_field, \"S\": __embind_register_void, \"l\": __emval_as, \"x\": __emval_call, \"a\": __emval_decref, \"E\": __emval_get_global, \"m\": __emval_get_property, \"n\": __emval_incref, \"W\": __emval_instanceof, \"V\": __emval_is_number, \"w\": __emval_new_array, \"f\": __emval_new_cstring, \"u\": __emval_new_object, \"k\": __emval_run_destructors, \"i\": __emval_set_property, \"d\": __emval_take_value, \"A\": _abort, \"P\": _emscripten_memcpy_big, \"N\": _emscripten_resize_heap, \"I\": _environ_get, \"J\": _environ_sizes_get, \"y\": _fd_close, \"K\": _fd_read, \"F\": _fd_seek, \"O\": _fd_write, \"H\": _strftime_l };\n        createWasm();\n        var _malloc = function() {\n          return (_malloc = Module[\"asm\"][\"_\"]).apply(null, arguments);\n        };\n        var ___getTypeName = Module[\"___getTypeName\"] = function() {\n          return (___getTypeName = Module[\"___getTypeName\"] = Module[\"asm\"][\"$\"]).apply(null, arguments);\n        };\n        Module[\"__embind_initialize_bindings\"] = function() {\n          return (Module[\"__embind_initialize_bindings\"] = Module[\"asm\"][\"aa\"]).apply(null, arguments);\n        };\n        var ___errno_location = function() {\n          return (___errno_location = Module[\"asm\"][\"ba\"]).apply(null, arguments);\n        };\n        var _free = function() {\n          return (_free = Module[\"asm\"][\"ca\"]).apply(null, arguments);\n        };\n        var ___cxa_is_pointer_type = function() {\n          return (___cxa_is_pointer_type = Module[\"asm\"][\"da\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_jiji\"] = function() {\n          return (Module[\"dynCall_jiji\"] = Module[\"asm\"][\"ea\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_viijii\"] = function() {\n          return (Module[\"dynCall_viijii\"] = Module[\"asm\"][\"fa\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_iiiiij\"] = function() {\n          return (Module[\"dynCall_iiiiij\"] = Module[\"asm\"][\"ga\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_iiiiijj\"] = function() {\n          return (Module[\"dynCall_iiiiijj\"] = Module[\"asm\"][\"ha\"]).apply(null, arguments);\n        };\n        Module[\"dynCall_iiiiiijj\"] = function() {\n          return (Module[\"dynCall_iiiiiijj\"] = Module[\"asm\"][\"ia\"]).apply(null, arguments);\n        };\n        var calledRun;\n        dependenciesFulfilled = function runCaller() {\n          if (!calledRun)\n            run();\n          if (!calledRun)\n            dependenciesFulfilled = runCaller;\n        };\n        function run() {\n          if (runDependencies > 0) {\n            return;\n          }\n          preRun();\n          if (runDependencies > 0) {\n            return;\n          }\n          function doRun() {\n            if (calledRun)\n              return;\n            calledRun = true;\n            Module[\"calledRun\"] = true;\n            if (ABORT)\n              return;\n            initRuntime();\n            readyPromiseResolve(Module);\n            if (Module[\"onRuntimeInitialized\"])\n              Module[\"onRuntimeInitialized\"]();\n            postRun();\n          }\n          if (Module[\"setStatus\"]) {\n            Module[\"setStatus\"](\"Running...\");\n            setTimeout(function() {\n              setTimeout(function() {\n                Module[\"setStatus\"](\"\");\n              }, 1);\n              doRun();\n            }, 1);\n          } else {\n            doRun();\n          }\n        }\n        if (Module[\"preInit\"]) {\n          if (typeof Module[\"preInit\"] == \"function\")\n            Module[\"preInit\"] = [Module[\"preInit\"]];\n          while (Module[\"preInit\"].length > 0) {\n            Module[\"preInit\"].pop()();\n          }\n        }\n        run();\n        return WebIFCWasm3.ready;\n      };\n    })();\n    if (typeof exports === \"object\" && typeof module === \"object\")\n      module.exports = WebIFCWasm2;\n    else if (typeof define === \"function\" && define[\"amd\"])\n      define([], function() {\n        return WebIFCWasm2;\n      });\n    else if (typeof exports === \"object\")\n      exports[\"WebIFCWasm\"] = WebIFCWasm2;\n  }\n});\nvar IFCBEAMSTANDARDCASE = 2906023776;\nvar IFCWINDOWSTANDARDCASE = 486154966;\nvar IFCWALLELEMENTEDCASE = 4156078855;\nvar IFCSLABSTANDARDCASE = 3027962421;\nvar IFCSLABELEMENTEDCASE = 3127900445;\nvar IFCPLATESTANDARDCASE = 1156407060;\nvar IFCMEMBERSTANDARDCASE = 1911478936;\nvar IFCDOORSTANDARDCASE = 3242481149;\nvar IFCCOLUMNSTANDARDCASE = 905975707;\nvar IFCOPENINGSTANDARDCASE = 3079942009;\nvar IFCCONTROLLER = 25142252;\nvar IFCALARM = 3087945054;\nvar IFCACTUATOR = 4288193352;\nvar IFCUNITARYCONTROLELEMENT = 630975310;\nvar IFCSENSOR = 4086658281;\nvar IFCPROTECTIVEDEVICETRIPPINGUNIT = 2295281155;\nvar IFCGEOSLICE = 1971632696;\nvar IFCGEOMODEL = 2680139844;\nvar IFCFLOWINSTRUMENT = 182646315;\nvar IFCFIRESUPPRESSIONTERMINAL = 1426591983;\nvar IFCFILTER = 819412036;\nvar IFCFAN = 3415622556;\nvar IFCELECTRICTIMECONTROL = 1003880860;\nvar IFCELECTRICMOTOR = 402227799;\nvar IFCELECTRICGENERATOR = 264262732;\nvar IFCELECTRICFLOWTREATMENTDEVICE = 24726584;\nvar IFCELECTRICFLOWSTORAGEDEVICE = 3310460725;\nvar IFCELECTRICDISTRIBUTIONBOARD = 862014818;\nvar IFCELECTRICAPPLIANCE = 1904799276;\nvar IFCDUCTSILENCER = 1360408905;\nvar IFCDUCTSEGMENT = 3518393246;\nvar IFCDUCTFITTING = 342316401;\nvar IFCDISTRIBUTIONCIRCUIT = 562808652;\nvar IFCDISTRIBUTIONBOARD = 3693000487;\nvar IFCDAMPER = 4074379575;\nvar IFCCOOLINGTOWER = 3640358203;\nvar IFCCOOLEDBEAM = 4136498852;\nvar IFCCONVEYORSEGMENT = 3460952963;\nvar IFCCONDENSER = 2272882330;\nvar IFCCOMPRESSOR = 3571504051;\nvar IFCCOMMUNICATIONSAPPLIANCE = 3221913625;\nvar IFCCOIL = 639361253;\nvar IFCCHILLER = 3902619387;\nvar IFCCAISSONFOUNDATION = 3999819293;\nvar IFCCABLESEGMENT = 4217484030;\nvar IFCCABLEFITTING = 1051757585;\nvar IFCCABLECARRIERSEGMENT = 3758799889;\nvar IFCCABLECARRIERFITTING = 635142910;\nvar IFCBURNER = 2938176219;\nvar IFCBOREHOLE = 3314249567;\nvar IFCBOILER = 32344328;\nvar IFCBEARING = 4196446775;\nvar IFCAUDIOVISUALAPPLIANCE = 277319702;\nvar IFCALIGNMENT = 325726236;\nvar IFCAIRTOAIRHEATRECOVERY = 2056796094;\nvar IFCAIRTERMINALBOX = 177149247;\nvar IFCAIRTERMINAL = 1634111441;\nvar IFCWASTETERMINAL = 4237592921;\nvar IFCVALVE = 4207607924;\nvar IFCUNITARYEQUIPMENT = 4292641817;\nvar IFCUNITARYCONTROLELEMENTTYPE = 3179687236;\nvar IFCTUBEBUNDLE = 3026737570;\nvar IFCTRANSFORMER = 3825984169;\nvar IFCTRACKELEMENT = 3425753595;\nvar IFCTANK = 812556717;\nvar IFCSWITCHINGDEVICE = 1162798199;\nvar IFCSTRUCTURALLOADCASE = 385403989;\nvar IFCSTACKTERMINAL = 1404847402;\nvar IFCSPACEHEATER = 1999602285;\nvar IFCSOLARDEVICE = 3420628829;\nvar IFCSIGNAL = 991950508;\nvar IFCSHADINGDEVICE = 1329646415;\nvar IFCSANITARYTERMINAL = 3053780830;\nvar IFCREINFORCINGBARTYPE = 2572171363;\nvar IFCREINFORCEDSOIL = 3798194928;\nvar IFCRATIONALBSPLINECURVEWITHKNOTS = 1232101972;\nvar IFCRAIL = 3290496277;\nvar IFCPUMP = 90941305;\nvar IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = 655969474;\nvar IFCPROTECTIVEDEVICE = 738039164;\nvar IFCPIPESEGMENT = 3612865200;\nvar IFCPIPEFITTING = 310824031;\nvar IFCPAVEMENT = 1383356374;\nvar IFCOUTLET = 3694346114;\nvar IFCOUTERBOUNDARYCURVE = 144952367;\nvar IFCNAVIGATIONELEMENT = 2182337498;\nvar IFCMOTORCONNECTION = 2474470126;\nvar IFCMOORINGDEVICE = 234836483;\nvar IFCMOBILETELECOMMUNICATIONSAPPLIANCE = 2078563270;\nvar IFCMEDICALDEVICE = 1437502449;\nvar IFCLIQUIDTERMINAL = 1638804497;\nvar IFCLINEARPOSITIONINGELEMENT = 1154579445;\nvar IFCLIGHTFIXTURE = 629592764;\nvar IFCLAMP = 76236018;\nvar IFCKERB = 2696325953;\nvar IFCJUNCTIONBOX = 2176052936;\nvar IFCINTERCEPTOR = 4175244083;\nvar IFCHUMIDIFIER = 2068733104;\nvar IFCHEATEXCHANGER = 3319311131;\nvar IFCGEOTECHNICALASSEMBLY = 2713699986;\nvar IFCFLOWMETER = 2188021234;\nvar IFCEXTERNALSPATIALELEMENT = 1209101575;\nvar IFCEVAPORATOR = 484807127;\nvar IFCEVAPORATIVECOOLER = 3747195512;\nvar IFCENGINE = 2814081492;\nvar IFCELECTRICFLOWTREATMENTDEVICETYPE = 2142170206;\nvar IFCELECTRICDISTRIBUTIONBOARDTYPE = 2417008758;\nvar IFCEARTHWORKSFILL = 3376911765;\nvar IFCEARTHWORKSELEMENT = 1077100507;\nvar IFCEARTHWORKSCUT = 3071239417;\nvar IFCDISTRIBUTIONSYSTEM = 3205830791;\nvar IFCDISTRIBUTIONBOARDTYPE = 479945903;\nvar IFCDEEPFOUNDATION = 3426335179;\nvar IFCCOURSE = 1502416096;\nvar IFCCONVEYORSEGMENTTYPE = 2940368186;\nvar IFCCOMMUNICATIONSAPPLIANCETYPE = 400855858;\nvar IFCCIVILELEMENT = 1677625105;\nvar IFCCHIMNEY = 3296154744;\nvar IFCCAISSONFOUNDATIONTYPE = 3203706013;\nvar IFCCABLEFITTINGTYPE = 2674252688;\nvar IFCBURNERTYPE = 2188180465;\nvar IFCBUILTSYSTEM = 3862327254;\nvar IFCBUILTELEMENT = 1876633798;\nvar IFCBUILDINGSYSTEM = 1177604601;\nvar IFCBUILDINGELEMENTPARTTYPE = 39481116;\nvar IFCBRIDGEPART = 963979645;\nvar IFCBRIDGE = 644574406;\nvar IFCBOUNDARYCURVE = 1136057603;\nvar IFCBEARINGTYPE = 3649138523;\nvar IFCBSPLINECURVEWITHKNOTS = 2461110595;\nvar IFCAUDIOVISUALAPPLIANCETYPE = 1532957894;\nvar IFCALIGNMENTVERTICAL = 1662888072;\nvar IFCALIGNMENTSEGMENT = 317615605;\nvar IFCALIGNMENTHORIZONTAL = 1545765605;\nvar IFCALIGNMENTCANT = 4266260250;\nvar IFCWORKCALENDAR = 4088093105;\nvar IFCWINDOWTYPE = 4009809668;\nvar IFCVOIDINGFEATURE = 926996030;\nvar IFCVIBRATIONISOLATOR = 2391383451;\nvar IFCVIBRATIONDAMPERTYPE = 3956297820;\nvar IFCVIBRATIONDAMPER = 1530820697;\nvar IFCVEHICLE = 840318589;\nvar IFCTRANSPORTATIONDEVICE = 1953115116;\nvar IFCTRACKELEMENTTYPE = 618700268;\nvar IFCTENDONTYPE = 2415094496;\nvar IFCTENDONCONDUITTYPE = 2281632017;\nvar IFCTENDONCONDUIT = 3663046924;\nvar IFCTENDONANCHORTYPE = 3081323446;\nvar IFCSYSTEMFURNITUREELEMENT = 413509423;\nvar IFCSURFACEFEATURE = 3101698114;\nvar IFCSTRUCTURALSURFACEACTION = 3657597509;\nvar IFCSTRUCTURALCURVEREACTION = 2757150158;\nvar IFCSTRUCTURALCURVEACTION = 1004757350;\nvar IFCSTAIRTYPE = 338393293;\nvar IFCSOLARDEVICETYPE = 1072016465;\nvar IFCSINESPIRAL = 42703149;\nvar IFCSIGNALTYPE = 1894708472;\nvar IFCSIGNTYPE = 3599934289;\nvar IFCSIGN = 33720170;\nvar IFCSHADINGDEVICETYPE = 4074543187;\nvar IFCSEVENTHORDERPOLYNOMIALSPIRAL = 1027922057;\nvar IFCSEGMENTEDREFERENCECURVE = 544395925;\nvar IFCSECONDORDERPOLYNOMIALSPIRAL = 3649235739;\nvar IFCSEAMCURVE = 2157484638;\nvar IFCROOFTYPE = 2781568857;\nvar IFCROADPART = 550521510;\nvar IFCROAD = 146592293;\nvar IFCRELADHERESTOELEMENT = 3818125796;\nvar IFCREINFORCINGMESHTYPE = 2310774935;\nvar IFCREINFORCINGELEMENTTYPE = 964333572;\nvar IFCREFERENT = 4021432810;\nvar IFCRATIONALBSPLINESURFACEWITHKNOTS = 683857671;\nvar IFCRAMPTYPE = 1469900589;\nvar IFCRAILWAYPART = 1891881377;\nvar IFCRAILWAY = 3992365140;\nvar IFCRAILTYPE = 1763565496;\nvar IFCPOSITIONINGELEMENT = 1946335990;\nvar IFCPOLYGONALFACESET = 2839578677;\nvar IFCPILETYPE = 1158309216;\nvar IFCPAVEMENTTYPE = 514975943;\nvar IFCNAVIGATIONELEMENTTYPE = 506776471;\nvar IFCMOORINGDEVICETYPE = 710110818;\nvar IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE = 1950438474;\nvar IFCMEDICALDEVICETYPE = 1114901282;\nvar IFCMARINEPART = 976884017;\nvar IFCMARINEFACILITY = 525669439;\nvar IFCLIQUIDTERMINALTYPE = 1770583370;\nvar IFCLINEARELEMENT = 2176059722;\nvar IFCKERBTYPE = 679976338;\nvar IFCINTERSECTIONCURVE = 3113134337;\nvar IFCINTERCEPTORTYPE = 3946677679;\nvar IFCINDEXEDPOLYCURVE = 2571569899;\nvar IFCIMPACTPROTECTIONDEVICETYPE = 3948183225;\nvar IFCIMPACTPROTECTIONDEVICE = 2568555532;\nvar IFCGRADIENTCURVE = 2898700619;\nvar IFCGEOTECHNICALSTRATUM = 1594536857;\nvar IFCGEOTECHNICALELEMENT = 4230923436;\nvar IFCGEOGRAPHICELEMENT = 3493046030;\nvar IFCFURNITURE = 1509553395;\nvar IFCFOOTINGTYPE = 1893162501;\nvar IFCFACILITYPARTCOMMON = 4228831410;\nvar IFCFACILITYPART = 1310830890;\nvar IFCFACILITY = 24185140;\nvar IFCEXTERNALSPATIALSTRUCTUREELEMENT = 2853485674;\nvar IFCEVENT = 4148101412;\nvar IFCENGINETYPE = 132023988;\nvar IFCELEMENTASSEMBLYTYPE = 2397081782;\nvar IFCDOORTYPE = 2323601079;\nvar IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID = 4234616927;\nvar IFCDEEPFOUNDATIONTYPE = 1306400036;\nvar IFCCYLINDRICALSURFACE = 1213902940;\nvar IFCCOURSETYPE = 4189326743;\nvar IFCCOSINESPIRAL = 2000195564;\nvar IFCCONSTRUCTIONPRODUCTRESOURCETYPE = 1525564444;\nvar IFCCONSTRUCTIONMATERIALRESOURCETYPE = 4105962743;\nvar IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = 2185764099;\nvar IFCCOMPOSITECURVEONSURFACE = 15328376;\nvar IFCCOMPLEXPROPERTYTEMPLATE = 3875453745;\nvar IFCCLOTHOID = 3497074424;\nvar IFCCIVILELEMENTTYPE = 3893394355;\nvar IFCCHIMNEYTYPE = 2197970202;\nvar IFCBUILTELEMENTTYPE = 1626504194;\nvar IFCBSPLINESURFACEWITHKNOTS = 167062518;\nvar IFCBSPLINESURFACE = 2887950389;\nvar IFCADVANCEDBREPWITHVOIDS = 2603310189;\nvar IFCADVANCEDBREP = 1635779807;\nvar IFCVEHICLETYPE = 3651464721;\nvar IFCTRIANGULATEDIRREGULARNETWORK = 1229763772;\nvar IFCTRIANGULATEDFACESET = 2916149573;\nvar IFCTRANSPORTATIONDEVICETYPE = 3665877780;\nvar IFCTOROIDALSURFACE = 1935646853;\nvar IFCTHIRDORDERPOLYNOMIALSPIRAL = 782932809;\nvar IFCTESSELLATEDFACESET = 2387106220;\nvar IFCTASKTYPE = 3206491090;\nvar IFCSURFACECURVE = 699246055;\nvar IFCSUBCONTRACTRESOURCETYPE = 4095615324;\nvar IFCSTRUCTURALSURFACEREACTION = 603775116;\nvar IFCSPIRAL = 2735484536;\nvar IFCSPHERICALSURFACE = 4015995234;\nvar IFCSPATIALZONETYPE = 2481509218;\nvar IFCSPATIALZONE = 463610769;\nvar IFCSPATIALELEMENTTYPE = 710998568;\nvar IFCSPATIALELEMENT = 1412071761;\nvar IFCSIMPLEPROPERTYTEMPLATE = 3663146110;\nvar IFCSECTIONEDSURFACE = 1356537516;\nvar IFCSECTIONEDSOLIDHORIZONTAL = 1290935644;\nvar IFCSECTIONEDSOLID = 1862484736;\nvar IFCREVOLVEDAREASOLIDTAPERED = 3243963512;\nvar IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = 816062949;\nvar IFCRELSPACEBOUNDARY2NDLEVEL = 1521410863;\nvar IFCRELSPACEBOUNDARY1STLEVEL = 3523091289;\nvar IFCRELPOSITIONS = 1441486842;\nvar IFCRELINTERFERESELEMENTS = 427948657;\nvar IFCRELDEFINESBYTEMPLATE = 307848117;\nvar IFCRELDEFINESBYOBJECT = 1462361463;\nvar IFCRELDECLARES = 2565941209;\nvar IFCRELASSOCIATESPROFILEDEF = 1033248425;\nvar IFCRELASSIGNSTOGROUPBYFACTOR = 1027710054;\nvar IFCPROPERTYTEMPLATE = 3521284610;\nvar IFCPROPERTYSETTEMPLATE = 492091185;\nvar IFCPROJECTLIBRARY = 653396225;\nvar IFCPROCEDURETYPE = 569719735;\nvar IFCPREDEFINEDPROPERTYSET = 3967405729;\nvar IFCPOLYNOMIALCURVE = 3381221214;\nvar IFCPCURVE = 1682466193;\nvar IFCOFFSETCURVEBYDISTANCES = 2485787929;\nvar IFCOFFSETCURVE = 590820931;\nvar IFCLABORRESOURCETYPE = 428585644;\nvar IFCINDEXEDPOLYGONALTEXTUREMAP = 3465909080;\nvar IFCINDEXEDPOLYGONALFACEWITHVOIDS = 2294589976;\nvar IFCINDEXEDPOLYGONALFACE = 178912537;\nvar IFCGEOGRAPHICELEMENTTYPE = 4095422895;\nvar IFCFIXEDREFERENCESWEPTAREASOLID = 2652556860;\nvar IFCEXTRUDEDAREASOLIDTAPERED = 2804161546;\nvar IFCEVENTTYPE = 4024345920;\nvar IFCDIRECTRIXCURVESWEPTAREASOLID = 593015953;\nvar IFCCURVESEGMENT = 4212018352;\nvar IFCCURVEBOUNDEDSURFACE = 2629017746;\nvar IFCCREWRESOURCETYPE = 1815067380;\nvar IFCCONTEXT = 3419103109;\nvar IFCCONSTRUCTIONRESOURCETYPE = 2574617495;\nvar IFCCARTESIANPOINTLIST3D = 2059837836;\nvar IFCCARTESIANPOINTLIST2D = 1675464909;\nvar IFCCARTESIANPOINTLIST = 574549367;\nvar IFCAXIS2PLACEMENTLINEAR = 3425423356;\nvar IFCADVANCEDFACE = 3406155212;\nvar IFCTYPERESOURCE = 3698973494;\nvar IFCTYPEPROCESS = 3736923433;\nvar IFCTESSELLATEDITEM = 901063453;\nvar IFCSWEPTDISKSOLIDPOLYGONAL = 1096409881;\nvar IFCSEGMENT = 823603102;\nvar IFCRESOURCETIME = 1042787934;\nvar IFCRESOURCECONSTRAINTRELATIONSHIP = 1608871552;\nvar IFCRESOURCEAPPROVALRELATIONSHIP = 2943643501;\nvar IFCQUANTITYSET = 2090586900;\nvar IFCPROPERTYTEMPLATEDEFINITION = 1482703590;\nvar IFCPREDEFINEDPROPERTIES = 3778827333;\nvar IFCPOINTBYDISTANCEEXPRESSION = 2165702409;\nvar IFCOPENCROSSPROFILEDEF = 182550632;\nvar IFCMIRROREDPROFILEDEF = 2998442950;\nvar IFCMATERIALRELATIONSHIP = 853536259;\nvar IFCMATERIALPROFILESETUSAGETAPERING = 3404854881;\nvar IFCMATERIALPROFILESETUSAGE = 3079605661;\nvar IFCMATERIALCONSTITUENTSET = 2852063980;\nvar IFCMATERIALCONSTITUENT = 3708119e3;\nvar IFCLINEARPLACEMENT = 388784114;\nvar IFCLAGTIME = 1585845231;\nvar IFCINDEXEDTRIANGLETEXTUREMAP = 2133299955;\nvar IFCINDEXEDTEXTUREMAP = 1437953363;\nvar IFCINDEXEDCOLOURMAP = 3570813810;\nvar IFCEXTERNALREFERENCERELATIONSHIP = 1437805879;\nvar IFCEXTENDEDPROPERTIES = 297599258;\nvar IFCEVENTTIME = 211053100;\nvar IFCCONVERSIONBASEDUNITWITHOFFSET = 2713554722;\nvar IFCCOLOURRGBLIST = 3285139300;\nvar IFCALIGNMENTHORIZONTALSEGMENT = 536804194;\nvar IFCALIGNMENTCANTSEGMENT = 3752311538;\nvar IFCWORKTIME = 1236880293;\nvar IFCTEXTUREVERTEXLIST = 3611470254;\nvar IFCTEXTURECOORDINATEINDICESWITHVOIDS = 1010789467;\nvar IFCTEXTURECOORDINATEINDICES = 222769930;\nvar IFCTASKTIMERECURRING = 2771591690;\nvar IFCTASKTIME = 1549132990;\nvar IFCSURFACEREINFORCEMENTAREA = 2934153892;\nvar IFCSTRUCTURALLOADORRESULT = 609421318;\nvar IFCSTRUCTURALLOADCONFIGURATION = 3478079324;\nvar IFCQUANTITYNUMBER = 2691318326;\nvar IFCPROJECTEDCRS = 3843373140;\nvar IFCMATERIALPROFILEWITHOFFSETS = 552965576;\nvar IFCMATERIALPROFILESET = 164193824;\nvar IFCMATERIALPROFILE = 2235152071;\nvar IFCMATERIALLAYERWITHOFFSETS = 1847252529;\nvar IFCMAPCONVERSION = 3057273783;\nvar IFCCOORDINATEOPERATION = 1785450214;\nvar IFCCONNECTIONVOLUMEGEOMETRY = 775493141;\nvar IFCALIGNMENTVERTICALSEGMENT = 3633395639;\nvar IFCREINFORCINGBAR = 979691226;\nvar IFCELECTRICDISTRIBUTIONPOINT = 3700593921;\nvar IFCDISTRIBUTIONCONTROLELEMENT = 1062813311;\nvar IFCDISTRIBUTIONCHAMBERELEMENT = 1052013943;\nvar IFCCONTROLLERTYPE = 578613899;\nvar IFCCHAMFEREDGEFEATURE = 2454782716;\nvar IFCBEAM = 753842376;\nvar IFCALARMTYPE = 3001207471;\nvar IFCACTUATORTYPE = 2874132201;\nvar IFCWINDOW = 3304561284;\nvar IFCWALLSTANDARDCASE = 3512223829;\nvar IFCWALL = 2391406946;\nvar IFCVIBRATIONISOLATORTYPE = 3313531582;\nvar IFCTENDONANCHOR = 2347447852;\nvar IFCTENDON = 3824725483;\nvar IFCSTRUCTURALANALYSISMODEL = 2515109513;\nvar IFCSTAIRFLIGHT = 4252922144;\nvar IFCSTAIR = 331165859;\nvar IFCSLAB = 1529196076;\nvar IFCSENSORTYPE = 1783015770;\nvar IFCROUNDEDEDGEFEATURE = 1376911519;\nvar IFCROOF = 2016517767;\nvar IFCREINFORCINGMESH = 2320036040;\nvar IFCREINFORCINGELEMENT = 3027567501;\nvar IFCRATIONALBEZIERCURVE = 3055160366;\nvar IFCRAMPFLIGHT = 3283111854;\nvar IFCRAMP = 3024970846;\nvar IFCRAILING = 2262370178;\nvar IFCPLATE = 3171933400;\nvar IFCPILE = 1687234759;\nvar IFCMEMBER = 1073191201;\nvar IFCFOOTING = 900683007;\nvar IFCFLOWTREATMENTDEVICE = 3508470533;\nvar IFCFLOWTERMINAL = 2223149337;\nvar IFCFLOWSTORAGEDEVICE = 707683696;\nvar IFCFLOWSEGMENT = 987401354;\nvar IFCFLOWMOVINGDEVICE = 3132237377;\nvar IFCFLOWINSTRUMENTTYPE = 4037862832;\nvar IFCFLOWFITTING = 4278956645;\nvar IFCFLOWCONTROLLER = 2058353004;\nvar IFCFIRESUPPRESSIONTERMINALTYPE = 4222183408;\nvar IFCFILTERTYPE = 1810631287;\nvar IFCFANTYPE = 346874300;\nvar IFCENERGYCONVERSIONDEVICE = 1658829314;\nvar IFCELECTRICALELEMENT = 857184966;\nvar IFCELECTRICALCIRCUIT = 1634875225;\nvar IFCELECTRICTIMECONTROLTYPE = 712377611;\nvar IFCELECTRICMOTORTYPE = 1217240411;\nvar IFCELECTRICHEATERTYPE = 1365060375;\nvar IFCELECTRICGENERATORTYPE = 1534661035;\nvar IFCELECTRICFLOWSTORAGEDEVICETYPE = 3277789161;\nvar IFCELECTRICAPPLIANCETYPE = 663422040;\nvar IFCEDGEFEATURE = 855621170;\nvar IFCDUCTSILENCERTYPE = 2030761528;\nvar IFCDUCTSEGMENTTYPE = 3760055223;\nvar IFCDUCTFITTINGTYPE = 869906466;\nvar IFCDOOR = 395920057;\nvar IFCDISTRIBUTIONPORT = 3041715199;\nvar IFCDISTRIBUTIONFLOWELEMENT = 3040386961;\nvar IFCDISTRIBUTIONELEMENT = 1945004755;\nvar IFCDISTRIBUTIONCONTROLELEMENTTYPE = 2063403501;\nvar IFCDISTRIBUTIONCHAMBERELEMENTTYPE = 1599208980;\nvar IFCDISCRETEACCESSORYTYPE = 2635815018;\nvar IFCDISCRETEACCESSORY = 1335981549;\nvar IFCDIAMETERDIMENSION = 4147604152;\nvar IFCDAMPERTYPE = 3961806047;\nvar IFCCURTAINWALL = 3495092785;\nvar IFCCOVERING = 1973544240;\nvar IFCCOOLINGTOWERTYPE = 2954562838;\nvar IFCCOOLEDBEAMTYPE = 335055490;\nvar IFCCONSTRUCTIONPRODUCTRESOURCE = 488727124;\nvar IFCCONSTRUCTIONMATERIALRESOURCE = 1060000209;\nvar IFCCONSTRUCTIONEQUIPMENTRESOURCE = 3898045240;\nvar IFCCONDITIONCRITERION = 1163958913;\nvar IFCCONDITION = 2188551683;\nvar IFCCONDENSERTYPE = 2816379211;\nvar IFCCOMPRESSORTYPE = 3850581409;\nvar IFCCOLUMN = 843113511;\nvar IFCCOILTYPE = 2301859152;\nvar IFCCIRCLE = 2611217952;\nvar IFCCHILLERTYPE = 2951183804;\nvar IFCCABLESEGMENTTYPE = 1285652485;\nvar IFCCABLECARRIERSEGMENTTYPE = 3293546465;\nvar IFCCABLECARRIERFITTINGTYPE = 395041908;\nvar IFCBUILDINGELEMENTPROXYTYPE = 1909888760;\nvar IFCBUILDINGELEMENTPROXY = 1095909175;\nvar IFCBUILDINGELEMENTPART = 2979338954;\nvar IFCBUILDINGELEMENTCOMPONENT = 52481810;\nvar IFCBUILDINGELEMENT = 3299480353;\nvar IFCBOILERTYPE = 231477066;\nvar IFCBEZIERCURVE = 1916977116;\nvar IFCBEAMTYPE = 819618141;\nvar IFCBSPLINECURVE = 1967976161;\nvar IFCASSET = 3460190687;\nvar IFCANGULARDIMENSION = 2470393545;\nvar IFCAIRTOAIRHEATRECOVERYTYPE = 1871374353;\nvar IFCAIRTERMINALTYPE = 3352864051;\nvar IFCAIRTERMINALBOXTYPE = 1411407467;\nvar IFCACTIONREQUEST = 3821786052;\nvar IFC2DCOMPOSITECURVE = 1213861670;\nvar IFCZONE = 1033361043;\nvar IFCWORKSCHEDULE = 3342526732;\nvar IFCWORKPLAN = 4218914973;\nvar IFCWORKCONTROL = 1028945134;\nvar IFCWASTETERMINALTYPE = 1133259667;\nvar IFCWALLTYPE = 1898987631;\nvar IFCVIRTUALELEMENT = 2769231204;\nvar IFCVALVETYPE = 728799441;\nvar IFCUNITARYEQUIPMENTTYPE = 1911125066;\nvar IFCTUBEBUNDLETYPE = 1600972822;\nvar IFCTRIMMEDCURVE = 3593883385;\nvar IFCTRANSPORTELEMENT = 1620046519;\nvar IFCTRANSFORMERTYPE = 1692211062;\nvar IFCTIMESERIESSCHEDULE = 1637806684;\nvar IFCTANKTYPE = 5716631;\nvar IFCSYSTEM = 2254336722;\nvar IFCSWITCHINGDEVICETYPE = 2315554128;\nvar IFCSUBCONTRACTRESOURCE = 148013059;\nvar IFCSTRUCTURALSURFACECONNECTION = 1975003073;\nvar IFCSTRUCTURALRESULTGROUP = 2986769608;\nvar IFCSTRUCTURALPOINTREACTION = 1235345126;\nvar IFCSTRUCTURALPOINTCONNECTION = 734778138;\nvar IFCSTRUCTURALPOINTACTION = 2082059205;\nvar IFCSTRUCTURALPLANARACTIONVARYING = 3987759626;\nvar IFCSTRUCTURALPLANARACTION = 1621171031;\nvar IFCSTRUCTURALLOADGROUP = 1252848954;\nvar IFCSTRUCTURALLINEARACTIONVARYING = 1721250024;\nvar IFCSTRUCTURALLINEARACTION = 1807405624;\nvar IFCSTRUCTURALCURVEMEMBERVARYING = 2445595289;\nvar IFCSTRUCTURALCURVEMEMBER = 214636428;\nvar IFCSTRUCTURALCURVECONNECTION = 4243806635;\nvar IFCSTRUCTURALCONNECTION = 1179482911;\nvar IFCSTRUCTURALACTION = 682877961;\nvar IFCSTAIRFLIGHTTYPE = 1039846685;\nvar IFCSTACKTERMINALTYPE = 3112655638;\nvar IFCSPACETYPE = 3812236995;\nvar IFCSPACEPROGRAM = 652456506;\nvar IFCSPACEHEATERTYPE = 1305183839;\nvar IFCSPACE = 3856911033;\nvar IFCSLABTYPE = 2533589738;\nvar IFCSITE = 4097777520;\nvar IFCSERVICELIFE = 4105383287;\nvar IFCSCHEDULETIMECONTROL = 3517283431;\nvar IFCSANITARYTERMINALTYPE = 1768891740;\nvar IFCRELASSIGNSTASKS = 2863920197;\nvar IFCRELAGGREGATES = 160246688;\nvar IFCRAMPFLIGHTTYPE = 2324767716;\nvar IFCRAILINGTYPE = 2893384427;\nvar IFCRADIUSDIMENSION = 3248260540;\nvar IFCPUMPTYPE = 2250791053;\nvar IFCPROTECTIVEDEVICETYPE = 1842657554;\nvar IFCPROJECTIONELEMENT = 3651124850;\nvar IFCPROJECTORDERRECORD = 3642467123;\nvar IFCPROJECTORDER = 2904328755;\nvar IFCPROCEDURE = 2744685151;\nvar IFCPORT = 3740093272;\nvar IFCPOLYLINE = 3724593414;\nvar IFCPLATETYPE = 4017108033;\nvar IFCPIPESEGMENTTYPE = 4231323485;\nvar IFCPIPEFITTINGTYPE = 804291784;\nvar IFCPERMIT = 3327091369;\nvar IFCPERFORMANCEHISTORY = 2382730787;\nvar IFCOUTLETTYPE = 2837617999;\nvar IFCORDERACTION = 3425660407;\nvar IFCOPENINGELEMENT = 3588315303;\nvar IFCOCCUPANT = 4143007308;\nvar IFCMOVE = 1916936684;\nvar IFCMOTORCONNECTIONTYPE = 977012517;\nvar IFCMEMBERTYPE = 3181161470;\nvar IFCMECHANICALFASTENERTYPE = 2108223431;\nvar IFCMECHANICALFASTENER = 377706215;\nvar IFCLINEARDIMENSION = 2506943328;\nvar IFCLIGHTFIXTURETYPE = 1161773419;\nvar IFCLAMPTYPE = 1051575348;\nvar IFCLABORRESOURCE = 3827777499;\nvar IFCJUNCTIONBOXTYPE = 4288270099;\nvar IFCINVENTORY = 2391368822;\nvar IFCHUMIDIFIERTYPE = 1806887404;\nvar IFCHEATEXCHANGERTYPE = 1251058090;\nvar IFCGROUP = 2706460486;\nvar IFCGRID = 3009204131;\nvar IFCGASTERMINALTYPE = 200128114;\nvar IFCFURNITURESTANDARD = 814719939;\nvar IFCFURNISHINGELEMENT = 263784265;\nvar IFCFLOWTREATMENTDEVICETYPE = 3009222698;\nvar IFCFLOWTERMINALTYPE = 2297155007;\nvar IFCFLOWSTORAGEDEVICETYPE = 1339347760;\nvar IFCFLOWSEGMENTTYPE = 1834744321;\nvar IFCFLOWMOVINGDEVICETYPE = 1482959167;\nvar IFCFLOWMETERTYPE = 3815607619;\nvar IFCFLOWFITTINGTYPE = 3198132628;\nvar IFCFLOWCONTROLLERTYPE = 3907093117;\nvar IFCFEATUREELEMENTSUBTRACTION = 1287392070;\nvar IFCFEATUREELEMENTADDITION = 2143335405;\nvar IFCFEATUREELEMENT = 2827207264;\nvar IFCFASTENERTYPE = 2489546625;\nvar IFCFASTENER = 647756555;\nvar IFCFACETEDBREPWITHVOIDS = 3737207727;\nvar IFCFACETEDBREP = 807026263;\nvar IFCEVAPORATORTYPE = 3390157468;\nvar IFCEVAPORATIVECOOLERTYPE = 3174744832;\nvar IFCEQUIPMENTSTANDARD = 3272907226;\nvar IFCEQUIPMENTELEMENT = 1962604670;\nvar IFCENERGYCONVERSIONDEVICETYPE = 2107101300;\nvar IFCELLIPSE = 1704287377;\nvar IFCELEMENTCOMPONENTTYPE = 2590856083;\nvar IFCELEMENTCOMPONENT = 1623761950;\nvar IFCELEMENTASSEMBLY = 4123344466;\nvar IFCELEMENT = 1758889154;\nvar IFCELECTRICALBASEPROPERTIES = 360485395;\nvar IFCDISTRIBUTIONFLOWELEMENTTYPE = 3849074793;\nvar IFCDISTRIBUTIONELEMENTTYPE = 3256556792;\nvar IFCDIMENSIONCURVEDIRECTEDCALLOUT = 681481545;\nvar IFCCURTAINWALLTYPE = 1457835157;\nvar IFCCREWRESOURCE = 3295246426;\nvar IFCCOVERINGTYPE = 1916426348;\nvar IFCCOSTSCHEDULE = 1419761937;\nvar IFCCOSTITEM = 3895139033;\nvar IFCCONTROL = 3293443760;\nvar IFCCONSTRUCTIONRESOURCE = 2559216714;\nvar IFCCONIC = 2510884976;\nvar IFCCOMPOSITECURVE = 3732776249;\nvar IFCCOLUMNTYPE = 300633059;\nvar IFCCIRCLEHOLLOWPROFILEDEF = 2937912522;\nvar IFCBUILDINGSTOREY = 3124254112;\nvar IFCBUILDINGELEMENTTYPE = 1950629157;\nvar IFCBUILDING = 4031249490;\nvar IFCBOUNDEDCURVE = 1260505505;\nvar IFCBOOLEANCLIPPINGRESULT = 3649129432;\nvar IFCBLOCK = 1334484129;\nvar IFCASYMMETRICISHAPEPROFILEDEF = 3207858831;\nvar IFCANNOTATION = 1674181508;\nvar IFCACTOR = 2296667514;\nvar IFCTRANSPORTELEMENTTYPE = 2097647324;\nvar IFCTASK = 3473067441;\nvar IFCSYSTEMFURNITUREELEMENTTYPE = 1580310250;\nvar IFCSURFACEOFREVOLUTION = 4124788165;\nvar IFCSURFACEOFLINEAREXTRUSION = 2809605785;\nvar IFCSURFACECURVESWEPTAREASOLID = 2028607225;\nvar IFCSTRUCTUREDDIMENSIONCALLOUT = 4070609034;\nvar IFCSTRUCTURALSURFACEMEMBERVARYING = 2218152070;\nvar IFCSTRUCTURALSURFACEMEMBER = 3979015343;\nvar IFCSTRUCTURALREACTION = 3689010777;\nvar IFCSTRUCTURALMEMBER = 530289379;\nvar IFCSTRUCTURALITEM = 3136571912;\nvar IFCSTRUCTURALACTIVITY = 3544373492;\nvar IFCSPHERE = 451544542;\nvar IFCSPATIALSTRUCTUREELEMENTTYPE = 3893378262;\nvar IFCSPATIALSTRUCTUREELEMENT = 2706606064;\nvar IFCRIGHTCIRCULARCYLINDER = 3626867408;\nvar IFCRIGHTCIRCULARCONE = 4158566097;\nvar IFCREVOLVEDAREASOLID = 1856042241;\nvar IFCRESOURCE = 2914609552;\nvar IFCRELVOIDSELEMENT = 1401173127;\nvar IFCRELSPACEBOUNDARY = 3451746338;\nvar IFCRELSERVICESBUILDINGS = 366585022;\nvar IFCRELSEQUENCE = 4122056220;\nvar IFCRELSCHEDULESCOSTITEMS = 1058617721;\nvar IFCRELREFERENCEDINSPATIALSTRUCTURE = 1245217292;\nvar IFCRELPROJECTSELEMENT = 750771296;\nvar IFCRELOVERRIDESPROPERTIES = 202636808;\nvar IFCRELOCCUPIESSPACES = 2051452291;\nvar IFCRELNESTS = 3268803585;\nvar IFCRELINTERACTIONREQUIREMENTS = 4189434867;\nvar IFCRELFLOWCONTROLELEMENTS = 279856033;\nvar IFCRELFILLSELEMENT = 3940055652;\nvar IFCRELDEFINESBYTYPE = 781010003;\nvar IFCRELDEFINESBYPROPERTIES = 4186316022;\nvar IFCRELDEFINES = 693640335;\nvar IFCRELDECOMPOSES = 2551354335;\nvar IFCRELCOVERSSPACES = 2802773753;\nvar IFCRELCOVERSBLDGELEMENTS = 886880790;\nvar IFCRELCONTAINEDINSPATIALSTRUCTURE = 3242617779;\nvar IFCRELCONNECTSWITHREALIZINGELEMENTS = 3678494232;\nvar IFCRELCONNECTSWITHECCENTRICITY = 504942748;\nvar IFCRELCONNECTSSTRUCTURALMEMBER = 1638771189;\nvar IFCRELCONNECTSSTRUCTURALELEMENT = 3912681535;\nvar IFCRELCONNECTSSTRUCTURALACTIVITY = 2127690289;\nvar IFCRELCONNECTSPORTS = 3190031847;\nvar IFCRELCONNECTSPORTTOELEMENT = 4201705270;\nvar IFCRELCONNECTSPATHELEMENTS = 3945020480;\nvar IFCRELCONNECTSELEMENTS = 1204542856;\nvar IFCRELCONNECTS = 826625072;\nvar IFCRELASSOCIATESPROFILEPROPERTIES = 2851387026;\nvar IFCRELASSOCIATESMATERIAL = 2655215786;\nvar IFCRELASSOCIATESLIBRARY = 3840914261;\nvar IFCRELASSOCIATESDOCUMENT = 982818633;\nvar IFCRELASSOCIATESCONSTRAINT = 2728634034;\nvar IFCRELASSOCIATESCLASSIFICATION = 919958153;\nvar IFCRELASSOCIATESAPPROVAL = 4095574036;\nvar IFCRELASSOCIATESAPPLIEDVALUE = 1327628568;\nvar IFCRELASSOCIATES = 1865459582;\nvar IFCRELASSIGNSTORESOURCE = 205026976;\nvar IFCRELASSIGNSTOPROJECTORDER = 3372526763;\nvar IFCRELASSIGNSTOPRODUCT = 2857406711;\nvar IFCRELASSIGNSTOPROCESS = 4278684876;\nvar IFCRELASSIGNSTOGROUP = 1307041759;\nvar IFCRELASSIGNSTOCONTROL = 2495723537;\nvar IFCRELASSIGNSTOACTOR = 1683148259;\nvar IFCRELASSIGNS = 3939117080;\nvar IFCRECTANGULARTRIMMEDSURFACE = 3454111270;\nvar IFCRECTANGULARPYRAMID = 2798486643;\nvar IFCRECTANGLEHOLLOWPROFILEDEF = 2770003689;\nvar IFCPROXY = 3219374653;\nvar IFCPROPERTYSET = 1451395588;\nvar IFCPROJECTIONCURVE = 4194566429;\nvar IFCPROJECT = 103090709;\nvar IFCPRODUCT = 4208778838;\nvar IFCPROCESS = 2945172077;\nvar IFCPLANE = 220341763;\nvar IFCPLANARBOX = 603570806;\nvar IFCPERMEABLECOVERINGPROPERTIES = 3566463478;\nvar IFCOFFSETCURVE3D = 3505215534;\nvar IFCOFFSETCURVE2D = 3388369263;\nvar IFCOBJECT = 3888040117;\nvar IFCMANIFOLDSOLIDBREP = 1425443689;\nvar IFCLINE = 1281925730;\nvar IFCLSHAPEPROFILEDEF = 572779678;\nvar IFCISHAPEPROFILEDEF = 1484403080;\nvar IFCGEOMETRICCURVESET = 987898635;\nvar IFCFURNITURETYPE = 1268542332;\nvar IFCFURNISHINGELEMENTTYPE = 4238390223;\nvar IFCFLUIDFLOWPROPERTIES = 3455213021;\nvar IFCFILLAREASTYLETILES = 315944413;\nvar IFCFILLAREASTYLETILESYMBOLWITHSTYLE = 4203026998;\nvar IFCFILLAREASTYLEHATCHING = 374418227;\nvar IFCFACEBASEDSURFACEMODEL = 2047409740;\nvar IFCEXTRUDEDAREASOLID = 477187591;\nvar IFCENERGYPROPERTIES = 80994333;\nvar IFCELLIPSEPROFILEDEF = 2835456948;\nvar IFCELEMENTARYSURFACE = 2777663545;\nvar IFCELEMENTTYPE = 339256511;\nvar IFCELEMENTQUANTITY = 1883228015;\nvar IFCEDGELOOP = 1472233963;\nvar IFCDRAUGHTINGPREDEFINEDCURVEFONT = 4006246654;\nvar IFCDRAUGHTINGPREDEFINEDCOLOUR = 445594917;\nvar IFCDRAUGHTINGCALLOUT = 3073041342;\nvar IFCDOORSTYLE = 526551008;\nvar IFCDOORPANELPROPERTIES = 1714330368;\nvar IFCDOORLININGPROPERTIES = 2963535650;\nvar IFCDIRECTION = 32440307;\nvar IFCDIMENSIONCURVETERMINATOR = 4054601972;\nvar IFCDIMENSIONCURVE = 606661476;\nvar IFCDEFINEDSYMBOL = 693772133;\nvar IFCCURVEBOUNDEDPLANE = 2827736869;\nvar IFCCURVE = 2601014836;\nvar IFCCSGSOLID = 2147822146;\nvar IFCCSGPRIMITIVE3D = 2506170314;\nvar IFCCRANERAILFSHAPEPROFILEDEF = 194851669;\nvar IFCCRANERAILASHAPEPROFILEDEF = 4133800736;\nvar IFCCOMPOSITECURVESEGMENT = 2485617015;\nvar IFCCLOSEDSHELL = 2205249479;\nvar IFCCIRCLEPROFILEDEF = 1383045692;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = 1416205885;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR3D = 3331915920;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = 3486308946;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR2D = 3749851601;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR = 59481748;\nvar IFCCARTESIANPOINT = 1123145078;\nvar IFCCSHAPEPROFILEDEF = 2898889636;\nvar IFCBOXEDHALFSPACE = 2713105998;\nvar IFCBOUNDINGBOX = 2581212453;\nvar IFCBOUNDEDSURFACE = 4182860854;\nvar IFCBOOLEANRESULT = 2736907675;\nvar IFCAXIS2PLACEMENT3D = 2740243338;\nvar IFCAXIS2PLACEMENT2D = 3125803723;\nvar IFCAXIS1PLACEMENT = 4261334040;\nvar IFCANNOTATIONSURFACE = 1302238472;\nvar IFCANNOTATIONFILLAREAOCCURRENCE = 2265737646;\nvar IFCANNOTATIONFILLAREA = 669184980;\nvar IFCANNOTATIONCURVEOCCURRENCE = 3288037868;\nvar IFCZSHAPEPROFILEDEF = 2543172580;\nvar IFCWINDOWSTYLE = 1299126871;\nvar IFCWINDOWPANELPROPERTIES = 512836454;\nvar IFCWINDOWLININGPROPERTIES = 336235671;\nvar IFCVERTEXLOOP = 2759199220;\nvar IFCVECTOR = 1417489154;\nvar IFCUSHAPEPROFILEDEF = 427810014;\nvar IFCTYPEPRODUCT = 2347495698;\nvar IFCTYPEOBJECT = 1628702193;\nvar IFCTWODIRECTIONREPEATFACTOR = 1345879162;\nvar IFCTRAPEZIUMPROFILEDEF = 2715220739;\nvar IFCTEXTLITERALWITHEXTENT = 3124975700;\nvar IFCTEXTLITERAL = 4282788508;\nvar IFCTERMINATORSYMBOL = 3028897424;\nvar IFCTSHAPEPROFILEDEF = 3071757647;\nvar IFCSWEPTSURFACE = 230924584;\nvar IFCSWEPTDISKSOLID = 1260650574;\nvar IFCSWEPTAREASOLID = 2247615214;\nvar IFCSURFACESTYLERENDERING = 1878645084;\nvar IFCSURFACE = 2513912981;\nvar IFCSUBEDGE = 2233826070;\nvar IFCSTRUCTURALSTEELPROFILEPROPERTIES = 3653947884;\nvar IFCSTRUCTURALPROFILEPROPERTIES = 3843319758;\nvar IFCSTRUCTURALLOADSINGLEFORCEWARPING = 1190533807;\nvar IFCSTRUCTURALLOADSINGLEFORCE = 1597423693;\nvar IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = 1973038258;\nvar IFCSTRUCTURALLOADSINGLEDISPLACEMENT = 2473145415;\nvar IFCSTRUCTURALLOADPLANARFORCE = 2668620305;\nvar IFCSTRUCTURALLOADLINEARFORCE = 1595516126;\nvar IFCSPACETHERMALLOADPROPERTIES = 390701378;\nvar IFCSOUNDVALUE = 1202362311;\nvar IFCSOUNDPROPERTIES = 2485662743;\nvar IFCSOLIDMODEL = 723233188;\nvar IFCSLIPPAGECONNECTIONCONDITION = 2609359061;\nvar IFCSHELLBASEDSURFACEMODEL = 4124623270;\nvar IFCSERVICELIFEFACTOR = 2411513650;\nvar IFCSECTIONEDSPINE = 1509187699;\nvar IFCROUNDEDRECTANGLEPROFILEDEF = 2778083089;\nvar IFCRELATIONSHIP = 478536968;\nvar IFCREINFORCEMENTDEFINITIONPROPERTIES = 3765753017;\nvar IFCREGULARTIMESERIES = 3413951693;\nvar IFCRECTANGLEPROFILEDEF = 3615266464;\nvar IFCPROPERTYTABLEVALUE = 110355661;\nvar IFCPROPERTYSINGLEVALUE = 3650150729;\nvar IFCPROPERTYSETDEFINITION = 3357820518;\nvar IFCPROPERTYREFERENCEVALUE = 941946838;\nvar IFCPROPERTYLISTVALUE = 2752243245;\nvar IFCPROPERTYENUMERATEDVALUE = 4166981789;\nvar IFCPROPERTYDEFINITION = 1680319473;\nvar IFCPROPERTYBOUNDEDVALUE = 871118103;\nvar IFCPRODUCTDEFINITIONSHAPE = 673634403;\nvar IFCPREDEFINEDPOINTMARKERSYMBOL = 179317114;\nvar IFCPREDEFINEDDIMENSIONSYMBOL = 433424934;\nvar IFCPREDEFINEDCURVEFONT = 2559016684;\nvar IFCPREDEFINEDCOLOUR = 759155922;\nvar IFCPOLYGONALBOUNDEDHALFSPACE = 2775532180;\nvar IFCPOLYLOOP = 2924175390;\nvar IFCPOINTONSURFACE = 1423911732;\nvar IFCPOINTONCURVE = 4022376103;\nvar IFCPOINT = 2067069095;\nvar IFCPLANAREXTENT = 1663979128;\nvar IFCPLACEMENT = 2004835150;\nvar IFCPIXELTEXTURE = 597895409;\nvar IFCPHYSICALCOMPLEXQUANTITY = 3021840470;\nvar IFCPATH = 2519244187;\nvar IFCPARAMETERIZEDPROFILEDEF = 2529465313;\nvar IFCORIENTEDEDGE = 1029017970;\nvar IFCOPENSHELL = 2665983363;\nvar IFCONEDIRECTIONREPEATFACTOR = 2833995503;\nvar IFCOBJECTDEFINITION = 219451334;\nvar IFCMECHANICALCONCRETEMATERIALPROPERTIES = 1430189142;\nvar IFCMATERIALDEFINITIONREPRESENTATION = 2022407955;\nvar IFCMAPPEDITEM = 2347385850;\nvar IFCLOOP = 1008929658;\nvar IFCLOCALPLACEMENT = 2624227202;\nvar IFCLIGHTSOURCESPOT = 3422422726;\nvar IFCLIGHTSOURCEPOSITIONAL = 1520743889;\nvar IFCLIGHTSOURCEGONIOMETRIC = 4266656042;\nvar IFCLIGHTSOURCEDIRECTIONAL = 2604431987;\nvar IFCLIGHTSOURCEAMBIENT = 125510826;\nvar IFCLIGHTSOURCE = 1402838566;\nvar IFCIRREGULARTIMESERIES = 3741457305;\nvar IFCIMAGETEXTURE = 3905492369;\nvar IFCHYGROSCOPICMATERIALPROPERTIES = 2445078500;\nvar IFCHALFSPACESOLID = 812098782;\nvar IFCGRIDPLACEMENT = 178086475;\nvar IFCGEOMETRICSET = 3590301190;\nvar IFCGEOMETRICREPRESENTATIONSUBCONTEXT = 4142052618;\nvar IFCGEOMETRICREPRESENTATIONITEM = 2453401579;\nvar IFCGEOMETRICREPRESENTATIONCONTEXT = 3448662350;\nvar IFCGENERALPROFILEPROPERTIES = 1446786286;\nvar IFCGENERALMATERIALPROPERTIES = 803998398;\nvar IFCFUELPROPERTIES = 3857492461;\nvar IFCFILLAREASTYLE = 738692330;\nvar IFCFAILURECONNECTIONCONDITION = 4219587988;\nvar IFCFACESURFACE = 3008276851;\nvar IFCFACEOUTERBOUND = 803316827;\nvar IFCFACEBOUND = 1809719519;\nvar IFCFACE = 2556980723;\nvar IFCEXTENDEDMATERIALPROPERTIES = 1860660968;\nvar IFCEDGECURVE = 476780140;\nvar IFCEDGE = 3900360178;\nvar IFCDRAUGHTINGPREDEFINEDTEXTFONT = 4170525392;\nvar IFCDOCUMENTREFERENCE = 3732053477;\nvar IFCDIMENSIONPAIR = 1694125774;\nvar IFCDIMENSIONCALLOUTRELATIONSHIP = 2273265877;\nvar IFCDERIVEDPROFILEDEF = 3632507154;\nvar IFCCURVESTYLE = 3800577675;\nvar IFCCONVERSIONBASEDUNIT = 2889183280;\nvar IFCCONTEXTDEPENDENTUNIT = 3050246964;\nvar IFCCONNECTIONPOINTECCENTRICITY = 45288368;\nvar IFCCONNECTIONCURVEGEOMETRY = 1981873012;\nvar IFCCONNECTEDFACESET = 370225590;\nvar IFCCOMPOSITEPROFILEDEF = 1485152156;\nvar IFCCOMPLEXPROPERTY = 2542286263;\nvar IFCCOLOURRGB = 776857604;\nvar IFCCLASSIFICATIONREFERENCE = 647927063;\nvar IFCCENTERLINEPROFILEDEF = 3150382593;\nvar IFCBLOBTEXTURE = 616511568;\nvar IFCARBITRARYPROFILEDEFWITHVOIDS = 2705031697;\nvar IFCARBITRARYOPENPROFILEDEF = 1310608509;\nvar IFCARBITRARYCLOSEDPROFILEDEF = 3798115385;\nvar IFCANNOTATIONTEXTOCCURRENCE = 2297822566;\nvar IFCANNOTATIONSYMBOLOCCURRENCE = 3612888222;\nvar IFCANNOTATIONSURFACEOCCURRENCE = 962685235;\nvar IFCANNOTATIONOCCURRENCE = 2442683028;\nvar IFCWATERPROPERTIES = 1065908215;\nvar IFCVIRTUALGRIDINTERSECTION = 891718957;\nvar IFCVERTEXPOINT = 1907098498;\nvar IFCVERTEX = 2799835756;\nvar IFCTOPOLOGYREPRESENTATION = 1735638870;\nvar IFCTOPOLOGICALREPRESENTATIONITEM = 1377556343;\nvar IFCTIMESERIESREFERENCERELATIONSHIP = 1718945513;\nvar IFCTHERMALMATERIALPROPERTIES = 3317419933;\nvar IFCTEXTUREVERTEX = 1210645708;\nvar IFCTEXTUREMAP = 2552916305;\nvar IFCTEXTURECOORDINATEGENERATOR = 1742049831;\nvar IFCTEXTURECOORDINATE = 280115917;\nvar IFCTEXTSTYLETEXTMODEL = 1640371178;\nvar IFCTEXTSTYLEFORDEFINEDFONT = 2636378356;\nvar IFCTEXTSTYLEFONTMODEL = 1983826977;\nvar IFCTEXTSTYLE = 1447204868;\nvar IFCTELECOMADDRESS = 912023232;\nvar IFCTABLE = 985171141;\nvar IFCSYMBOLSTYLE = 1290481447;\nvar IFCSURFACETEXTURE = 626085974;\nvar IFCSURFACESTYLEWITHTEXTURES = 1351298697;\nvar IFCSURFACESTYLESHADING = 846575682;\nvar IFCSURFACESTYLEREFRACTION = 1607154358;\nvar IFCSURFACESTYLELIGHTING = 3303107099;\nvar IFCSURFACESTYLE = 1300840506;\nvar IFCSTYLEDREPRESENTATION = 3049322572;\nvar IFCSTYLEDITEM = 3958052878;\nvar IFCSTYLEMODEL = 2830218821;\nvar IFCSTRUCTURALLOADTEMPERATURE = 3408363356;\nvar IFCSTRUCTURALLOADSTATIC = 2525727697;\nvar IFCSIMPLEPROPERTY = 3692461612;\nvar IFCSHAPEREPRESENTATION = 4240577450;\nvar IFCSHAPEMODEL = 3982875396;\nvar IFCSHAPEASPECT = 867548509;\nvar IFCSECTIONREINFORCEMENTPROPERTIES = 4165799628;\nvar IFCSECTIONPROPERTIES = 2042790032;\nvar IFCSIUNIT = 448429030;\nvar IFCRIBPLATEPROFILEPROPERTIES = 3679540991;\nvar IFCREPRESENTATIONMAP = 1660063152;\nvar IFCREPRESENTATION = 1076942058;\nvar IFCREINFORCEMENTBARPROPERTIES = 1580146022;\nvar IFCREFERENCESVALUEDOCUMENT = 2692823254;\nvar IFCQUANTITYWEIGHT = 825690147;\nvar IFCQUANTITYVOLUME = 2405470396;\nvar IFCQUANTITYTIME = 3252649465;\nvar IFCQUANTITYLENGTH = 931644368;\nvar IFCQUANTITYCOUNT = 2093928680;\nvar IFCQUANTITYAREA = 2044713172;\nvar IFCPROPERTYENUMERATION = 3710013099;\nvar IFCPROPERTYDEPENDENCYRELATIONSHIP = 148025276;\nvar IFCPROPERTYCONSTRAINTRELATIONSHIP = 3896028662;\nvar IFCPROPERTY = 2598011224;\nvar IFCPROFILEPROPERTIES = 2802850158;\nvar IFCPRODUCTSOFCOMBUSTIONPROPERTIES = 2267347899;\nvar IFCPRODUCTREPRESENTATION = 2095639259;\nvar IFCPRESENTATIONLAYERWITHSTYLE = 1304840413;\nvar IFCPRESENTATIONLAYERASSIGNMENT = 2022622350;\nvar IFCPREDEFINEDTEXTFONT = 1775413392;\nvar IFCPREDEFINEDTERMINATORSYMBOL = 3213052703;\nvar IFCPREDEFINEDSYMBOL = 990879717;\nvar IFCPREDEFINEDITEM = 3727388367;\nvar IFCPOSTALADDRESS = 3355820592;\nvar IFCPHYSICALSIMPLEQUANTITY = 2226359599;\nvar IFCPERSONANDORGANIZATION = 101040310;\nvar IFCPERSON = 2077209135;\nvar IFCORGANIZATIONRELATIONSHIP = 1411181986;\nvar IFCORGANIZATION = 4251960020;\nvar IFCOPTICALMATERIALPROPERTIES = 1227763645;\nvar IFCOBJECTIVE = 2251480897;\nvar IFCOBJECTPLACEMENT = 3701648758;\nvar IFCMETRIC = 3368373690;\nvar IFCMECHANICALSTEELMATERIALPROPERTIES = 677618848;\nvar IFCMECHANICALMATERIALPROPERTIES = 4256014907;\nvar IFCMATERIALPROPERTIES = 3265635763;\nvar IFCMATERIALLAYERSETUSAGE = 1303795690;\nvar IFCMATERIALLAYERSET = 3303938423;\nvar IFCMATERIALLAYER = 248100487;\nvar IFCMATERIALCLASSIFICATIONRELATIONSHIP = 1847130766;\nvar IFCMATERIAL = 1838606355;\nvar IFCLIBRARYREFERENCE = 3452421091;\nvar IFCLIBRARYINFORMATION = 2655187982;\nvar IFCEXTERNALLYDEFINEDTEXTFONT = 3548104201;\nvar IFCEXTERNALLYDEFINEDSYMBOL = 3207319532;\nvar IFCEXTERNALLYDEFINEDSURFACESTYLE = 1040185647;\nvar IFCEXTERNALLYDEFINEDHATCHSTYLE = 2242383968;\nvar IFCENVIRONMENTALIMPACTVALUE = 1648886627;\nvar IFCDRAUGHTINGCALLOUTRELATIONSHIP = 3796139169;\nvar IFCDOCUMENTINFORMATIONRELATIONSHIP = 770865208;\nvar IFCDOCUMENTINFORMATION = 1154170062;\nvar IFCCURVESTYLEFONTPATTERN = 3510044353;\nvar IFCCURVESTYLEFONTANDSCALING = 2367409068;\nvar IFCCURVESTYLEFONT = 1105321065;\nvar IFCCURRENCYRELATIONSHIP = 539742890;\nvar IFCCOSTVALUE = 602808272;\nvar IFCCONSTRAINTRELATIONSHIP = 347226245;\nvar IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP = 613356794;\nvar IFCCONSTRAINTAGGREGATIONRELATIONSHIP = 1658513725;\nvar IFCCONNECTIONSURFACEGEOMETRY = 2732653382;\nvar IFCCONNECTIONPORTGEOMETRY = 4257277454;\nvar IFCCONNECTIONPOINTGEOMETRY = 2614616156;\nvar IFCCOLOURSPECIFICATION = 3264961684;\nvar IFCCLASSIFICATIONITEMRELATIONSHIP = 1098599126;\nvar IFCCLASSIFICATIONITEM = 1767535486;\nvar IFCCLASSIFICATION = 747523909;\nvar IFCBOUNDARYNODECONDITIONWARPING = 2069777674;\nvar IFCBOUNDARYNODECONDITION = 1387855156;\nvar IFCBOUNDARYFACECONDITION = 3367102660;\nvar IFCBOUNDARYEDGECONDITION = 1560379544;\nvar IFCAPPROVALRELATIONSHIP = 3869604511;\nvar IFCAPPROVALACTORRELATIONSHIP = 2080292479;\nvar IFCAPPLIEDVALUERELATIONSHIP = 1110488051;\nvar FILE_DESCRIPTION = 599546466;\nvar FILE_NAME = 1390159747;\nvar FILE_SCHEMA = 1109904537;\nvar Handle = class {\n  constructor(value) {\n    this.value = value;\n    this.type = 5;\n  }\n};\nvar IfcLineObject = class {\n  constructor(expressID) {\n    this.expressID = expressID;\n    this.type = 0;\n  }\n};\nvar FromRawLineData = [];\nvar InversePropertyDef = {};\nvar InheritanceDef = {};\nvar Constructors = {};\nvar ToRawLineData = {};\nvar TypeInitialisers = {};\nvar SchemaNames = [];\nfunction TypeInitialiser(schema, tapeItem) {\n  if (tapeItem.typecode)\n    return TypeInitialisers[schema][tapeItem.typecode](tapeItem.value);\n  else\n    return tapeItem.value;\n}\nfunction Labelise(tapeItem) {\n  tapeItem.valueType = tapeItem.type;\n  tapeItem.type = 2;\n  tapeItem.label = tapeItem.constructor.name.toUpperCase();\n  return tapeItem;\n}\nvar Schemas;\n(function(Schemas2) {\n  Schemas2[\"IFC2X3\"] = \"IFC2X3\";\n  Schemas2[\"IFC4_3\"] = \"IFC4.3\";\n  Schemas2[\"IFC4\"] = \"IFC4\";\n})(Schemas || (Schemas = {}));\nSchemaNames[1] = \"IFC2X3\";\nFromRawLineData[1] = {\n  3630933823: (id, v) => new IFC2X3.IfcActorRole(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value)),\n  618182010: (id, v) => new IFC2X3.IfcAddress(id, v[0], !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  639542469: (id, v) => new IFC2X3.IfcApplication(id, new Handle(v[0].value), new IFC2X3.IfcLabel(v[1].value), new IFC2X3.IfcLabel(v[2].value), new IFC2X3.IfcIdentifier(v[3].value)),\n  411424972: (id, v) => new IFC2X3.IfcAppliedValue(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value)),\n  1110488051: (id, v) => new IFC2X3.IfcAppliedValueRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new IFC2X3.IfcText(v[4].value)),\n  130549933: (id, v) => new IFC2X3.IfcApproval(id, !v[0] ? null : new IFC2X3.IfcText(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new IFC2X3.IfcText(v[4].value), new IFC2X3.IfcLabel(v[5].value), new IFC2X3.IfcIdentifier(v[6].value)),\n  2080292479: (id, v) => new IFC2X3.IfcApprovalActorRelationship(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)),\n  390851274: (id, v) => new IFC2X3.IfcApprovalPropertyRelationship(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value)),\n  3869604511: (id, v) => new IFC2X3.IfcApprovalRelationship(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value), new IFC2X3.IfcLabel(v[3].value)),\n  4037036970: (id, v) => new IFC2X3.IfcBoundaryCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)),\n  1560379544: (id, v) => new IFC2X3.IfcBoundaryEdgeCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v[6].value)),\n  3367102660: (id, v) => new IFC2X3.IfcBoundaryFaceCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v[3].value)),\n  1387855156: (id, v) => new IFC2X3.IfcBoundaryNodeCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[6].value)),\n  2069777674: (id, v) => new IFC2X3.IfcBoundaryNodeConditionWarping(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcWarpingMomentMeasure(v[7].value)),\n  622194075: (id, v) => new IFC2X3.IfcCalendarDate(id, new IFC2X3.IfcDayInMonthNumber(v[0].value), new IFC2X3.IfcMonthInYearNumber(v[1].value), new IFC2X3.IfcYearNumber(v[2].value)),\n  747523909: (id, v) => new IFC2X3.IfcClassification(id, new IFC2X3.IfcLabel(v[0].value), new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcLabel(v[3].value)),\n  1767535486: (id, v) => new IFC2X3.IfcClassificationItem(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new IFC2X3.IfcLabel(v[2].value)),\n  1098599126: (id, v) => new IFC2X3.IfcClassificationItemRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  938368621: (id, v) => new IFC2X3.IfcClassificationNotation(id, v[0].map((p) => new Handle(p.value))),\n  3639012971: (id, v) => new IFC2X3.IfcClassificationNotationFacet(id, new IFC2X3.IfcLabel(v[0].value)),\n  3264961684: (id, v) => new IFC2X3.IfcColourSpecification(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)),\n  2859738748: (id, _) => new IFC2X3.IfcConnectionGeometry(id),\n  2614616156: (id, v) => new IFC2X3.IfcConnectionPointGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  4257277454: (id, v) => new IFC2X3.IfcConnectionPortGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value)),\n  2732653382: (id, v) => new IFC2X3.IfcConnectionSurfaceGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  1959218052: (id, v) => new IFC2X3.IfcConstraint(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value)),\n  1658513725: (id, v) => new IFC2X3.IfcConstraintAggregationRelationship(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), v[4]),\n  613356794: (id, v) => new IFC2X3.IfcConstraintClassificationRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  347226245: (id, v) => new IFC2X3.IfcConstraintRelationship(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  1065062679: (id, v) => new IFC2X3.IfcCoordinatedUniversalTimeOffset(id, new IFC2X3.IfcHourInDay(v[0].value), !v[1] ? null : new IFC2X3.IfcMinuteInHour(v[1].value), v[2]),\n  602808272: (id, v) => new IFC2X3.IfcCostValue(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcText(v[7].value)),\n  539742890: (id, v) => new IFC2X3.IfcCurrencyRelationship(id, new Handle(v[0].value), new Handle(v[1].value), new IFC2X3.IfcPositiveRatioMeasure(v[2].value), new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  1105321065: (id, v) => new IFC2X3.IfcCurveStyleFont(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value))),\n  2367409068: (id, v) => new IFC2X3.IfcCurveStyleFontAndScaling(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), new IFC2X3.IfcPositiveRatioMeasure(v[2].value)),\n  3510044353: (id, v) => new IFC2X3.IfcCurveStyleFontPattern(id, new IFC2X3.IfcLengthMeasure(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value)),\n  1072939445: (id, v) => new IFC2X3.IfcDateAndTime(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1765591967: (id, v) => new IFC2X3.IfcDerivedUnit(id, v[0].map((p) => new Handle(p.value)), v[1], !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  1045800335: (id, v) => new IFC2X3.IfcDerivedUnitElement(id, new Handle(v[0].value), v[1].value),\n  2949456006: (id, v) => new IFC2X3.IfcDimensionalExponents(id, v[0].value, v[1].value, v[2].value, v[3].value, v[4].value, v[5].value, v[6].value),\n  1376555844: (id, v) => new IFC2X3.IfcDocumentElectronicFormat(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  1154170062: (id, v) => new IFC2X3.IfcDocumentInformation(id, new IFC2X3.IfcIdentifier(v[0].value), new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value), !v[3] ? null : v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC2X3.IfcText(v[4].value), !v[5] ? null : new IFC2X3.IfcText(v[5].value), !v[6] ? null : new IFC2X3.IfcText(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), !v[13] ? null : new Handle(v[13].value), !v[14] ? null : new Handle(v[14].value), v[15], v[16]),\n  770865208: (id, v) => new IFC2X3.IfcDocumentInformationRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  3796139169: (id, v) => new IFC2X3.IfcDraughtingCalloutRelationship(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value)),\n  1648886627: (id, v) => new IFC2X3.IfcEnvironmentalImpactValue(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3200245327: (id, v) => new IFC2X3.IfcExternalReference(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  2242383968: (id, v) => new IFC2X3.IfcExternallyDefinedHatchStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  1040185647: (id, v) => new IFC2X3.IfcExternallyDefinedSurfaceStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  3207319532: (id, v) => new IFC2X3.IfcExternallyDefinedSymbol(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  3548104201: (id, v) => new IFC2X3.IfcExternallyDefinedTextFont(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  852622518: (id, v) => new IFC2X3.IfcGridAxis(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), new IFC2X3.IfcBoolean(v[2].value)),\n  3020489413: (id, v) => new IFC2X3.IfcIrregularTimeSeriesValue(id, new Handle(v[0].value), v[1].map((p) => TypeInitialiser(1, p))),\n  2655187982: (id, v) => new IFC2X3.IfcLibraryInformation(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new Handle(p.value))),\n  3452421091: (id, v) => new IFC2X3.IfcLibraryReference(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  4162380809: (id, v) => new IFC2X3.IfcLightDistributionData(id, new IFC2X3.IfcPlaneAngleMeasure(v[0].value), v[1].map((p) => new IFC2X3.IfcPlaneAngleMeasure(p.value)), v[2].map((p) => new IFC2X3.IfcLuminousIntensityDistributionMeasure(p.value))),\n  1566485204: (id, v) => new IFC2X3.IfcLightIntensityDistribution(id, v[0], v[1].map((p) => new Handle(p.value))),\n  30780891: (id, v) => new IFC2X3.IfcLocalTime(id, new IFC2X3.IfcHourInDay(v[0].value), !v[1] ? null : new IFC2X3.IfcMinuteInHour(v[1].value), !v[2] ? null : new IFC2X3.IfcSecondInMinute(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC2X3.IfcDaylightSavingHour(v[4].value)),\n  1838606355: (id, v) => new IFC2X3.IfcMaterial(id, new IFC2X3.IfcLabel(v[0].value)),\n  1847130766: (id, v) => new IFC2X3.IfcMaterialClassificationRelationship(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value)),\n  248100487: (id, v) => new IFC2X3.IfcMaterialLayer(id, !v[0] ? null : new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLogical(v[2].value)),\n  3303938423: (id, v) => new IFC2X3.IfcMaterialLayerSet(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value)),\n  1303795690: (id, v) => new IFC2X3.IfcMaterialLayerSetUsage(id, new Handle(v[0].value), v[1], v[2], new IFC2X3.IfcLengthMeasure(v[3].value)),\n  2199411900: (id, v) => new IFC2X3.IfcMaterialList(id, v[0].map((p) => new Handle(p.value))),\n  3265635763: (id, v) => new IFC2X3.IfcMaterialProperties(id, new Handle(v[0].value)),\n  2597039031: (id, v) => new IFC2X3.IfcMeasureWithUnit(id, TypeInitialiser(1, v[0]), new Handle(v[1].value)),\n  4256014907: (id, v) => new IFC2X3.IfcMechanicalMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(v[5].value)),\n  677618848: (id, v) => new IFC2X3.IfcMechanicalSteelMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPressureMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPressureMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPressureMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[11].value), !v[12] ? null : v[12].map((p) => new Handle(p.value))),\n  3368373690: (id, v) => new IFC2X3.IfcMetric(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), new Handle(v[9].value)),\n  2706619895: (id, v) => new IFC2X3.IfcMonetaryUnit(id, v[0]),\n  1918398963: (id, v) => new IFC2X3.IfcNamedUnit(id, new Handle(v[0].value), v[1]),\n  3701648758: (id, _) => new IFC2X3.IfcObjectPlacement(id),\n  2251480897: (id, v) => new IFC2X3.IfcObjective(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), v[9], !v[10] ? null : new IFC2X3.IfcLabel(v[10].value)),\n  1227763645: (id, v) => new IFC2X3.IfcOpticalMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[9].value)),\n  4251960020: (id, v) => new IFC2X3.IfcOrganization(id, !v[0] ? null : new IFC2X3.IfcIdentifier(v[0].value), new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value), !v[3] ? null : v[3].map((p) => new Handle(p.value)), !v[4] ? null : v[4].map((p) => new Handle(p.value))),\n  1411181986: (id, v) => new IFC2X3.IfcOrganizationRelationship(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  1207048766: (id, v) => new IFC2X3.IfcOwnerHistory(id, new Handle(v[0].value), new Handle(v[1].value), v[2], v[3], !v[4] ? null : new IFC2X3.IfcTimeStamp(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new IFC2X3.IfcTimeStamp(v[7].value)),\n  2077209135: (id, v) => new IFC2X3.IfcPerson(id, !v[0] ? null : new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC2X3.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC2X3.IfcLabel(p.value)), !v[5] ? null : v[5].map((p) => new IFC2X3.IfcLabel(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value))),\n  101040310: (id, v) => new IFC2X3.IfcPersonAndOrganization(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))),\n  2483315170: (id, v) => new IFC2X3.IfcPhysicalQuantity(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value)),\n  2226359599: (id, v) => new IFC2X3.IfcPhysicalSimpleQuantity(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  3355820592: (id, v) => new IFC2X3.IfcPostalAddress(id, v[0], !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : v[4].map((p) => new IFC2X3.IfcLabel(p.value)), !v[5] ? null : new IFC2X3.IfcLabel(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcLabel(v[9].value)),\n  3727388367: (id, v) => new IFC2X3.IfcPreDefinedItem(id, new IFC2X3.IfcLabel(v[0].value)),\n  990879717: (id, v) => new IFC2X3.IfcPreDefinedSymbol(id, new IFC2X3.IfcLabel(v[0].value)),\n  3213052703: (id, v) => new IFC2X3.IfcPreDefinedTerminatorSymbol(id, new IFC2X3.IfcLabel(v[0].value)),\n  1775413392: (id, v) => new IFC2X3.IfcPreDefinedTextFont(id, new IFC2X3.IfcLabel(v[0].value)),\n  2022622350: (id, v) => new IFC2X3.IfcPresentationLayerAssignment(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC2X3.IfcIdentifier(v[3].value)),\n  1304840413: (id, v) => new IFC2X3.IfcPresentationLayerWithStyle(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC2X3.IfcIdentifier(v[3].value), v[4].value, v[5].value, v[6].value, v[7].map((p) => new Handle(p.value))),\n  3119450353: (id, v) => new IFC2X3.IfcPresentationStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)),\n  2417041796: (id, v) => new IFC2X3.IfcPresentationStyleAssignment(id, v[0].map((p) => new Handle(p.value))),\n  2095639259: (id, v) => new IFC2X3.IfcProductRepresentation(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))),\n  2267347899: (id, v) => new IFC2X3.IfcProductsOfCombustionProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcSpecificHeatCapacityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value)),\n  3958567839: (id, v) => new IFC2X3.IfcProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value)),\n  2802850158: (id, v) => new IFC2X3.IfcProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  2598011224: (id, v) => new IFC2X3.IfcProperty(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value)),\n  3896028662: (id, v) => new IFC2X3.IfcPropertyConstraintRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)),\n  148025276: (id, v) => new IFC2X3.IfcPropertyDependencyRelationship(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcText(v[4].value)),\n  3710013099: (id, v) => new IFC2X3.IfcPropertyEnumeration(id, new IFC2X3.IfcLabel(v[0].value), v[1].map((p) => TypeInitialiser(1, p)), !v[2] ? null : new Handle(v[2].value)),\n  2044713172: (id, v) => new IFC2X3.IfcQuantityArea(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcAreaMeasure(v[3].value)),\n  2093928680: (id, v) => new IFC2X3.IfcQuantityCount(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcCountMeasure(v[3].value)),\n  931644368: (id, v) => new IFC2X3.IfcQuantityLength(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcLengthMeasure(v[3].value)),\n  3252649465: (id, v) => new IFC2X3.IfcQuantityTime(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcTimeMeasure(v[3].value)),\n  2405470396: (id, v) => new IFC2X3.IfcQuantityVolume(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcVolumeMeasure(v[3].value)),\n  825690147: (id, v) => new IFC2X3.IfcQuantityWeight(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcMassMeasure(v[3].value)),\n  2692823254: (id, v) => new IFC2X3.IfcReferencesValueDocument(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)),\n  1580146022: (id, v) => new IFC2X3.IfcReinforcementBarProperties(id, new IFC2X3.IfcAreaMeasure(v[0].value), new IFC2X3.IfcLabel(v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcCountMeasure(v[5].value)),\n  1222501353: (id, v) => new IFC2X3.IfcRelaxation(id, new IFC2X3.IfcNormalisedRatioMeasure(v[0].value), new IFC2X3.IfcNormalisedRatioMeasure(v[1].value)),\n  1076942058: (id, v) => new IFC2X3.IfcRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3377609919: (id, v) => new IFC2X3.IfcRepresentationContext(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value)),\n  3008791417: (id, _) => new IFC2X3.IfcRepresentationItem(id),\n  1660063152: (id, v) => new IFC2X3.IfcRepresentationMap(id, new Handle(v[0].value), new Handle(v[1].value)),\n  3679540991: (id, v) => new IFC2X3.IfcRibPlateProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), v[6]),\n  2341007311: (id, v) => new IFC2X3.IfcRoot(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)),\n  448429030: (id, v) => new IFC2X3.IfcSIUnit(id, v[0], v[1], v[2]),\n  2042790032: (id, v) => new IFC2X3.IfcSectionProperties(id, v[0], new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  4165799628: (id, v) => new IFC2X3.IfcSectionReinforcementProperties(id, new IFC2X3.IfcLengthMeasure(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), v[3], new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  867548509: (id, v) => new IFC2X3.IfcShapeAspect(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value), v[3].value, new Handle(v[4].value)),\n  3982875396: (id, v) => new IFC2X3.IfcShapeModel(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  4240577450: (id, v) => new IFC2X3.IfcShapeRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3692461612: (id, v) => new IFC2X3.IfcSimpleProperty(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value)),\n  2273995522: (id, v) => new IFC2X3.IfcStructuralConnectionCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)),\n  2162789131: (id, v) => new IFC2X3.IfcStructuralLoad(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)),\n  2525727697: (id, v) => new IFC2X3.IfcStructuralLoadStatic(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)),\n  3408363356: (id, v) => new IFC2X3.IfcStructuralLoadTemperature(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[3].value)),\n  2830218821: (id, v) => new IFC2X3.IfcStyleModel(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3958052878: (id, v) => new IFC2X3.IfcStyledItem(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  3049322572: (id, v) => new IFC2X3.IfcStyledRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  1300840506: (id, v) => new IFC2X3.IfcSurfaceStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), v[1], v[2].map((p) => new Handle(p.value))),\n  3303107099: (id, v) => new IFC2X3.IfcSurfaceStyleLighting(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new Handle(v[3].value)),\n  1607154358: (id, v) => new IFC2X3.IfcSurfaceStyleRefraction(id, !v[0] ? null : new IFC2X3.IfcReal(v[0].value), !v[1] ? null : new IFC2X3.IfcReal(v[1].value)),\n  846575682: (id, v) => new IFC2X3.IfcSurfaceStyleShading(id, new Handle(v[0].value)),\n  1351298697: (id, v) => new IFC2X3.IfcSurfaceStyleWithTextures(id, v[0].map((p) => new Handle(p.value))),\n  626085974: (id, v) => new IFC2X3.IfcSurfaceTexture(id, v[0].value, v[1].value, v[2], !v[3] ? null : new Handle(v[3].value)),\n  1290481447: (id, v) => new IFC2X3.IfcSymbolStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), TypeInitialiser(1, v[1])),\n  985171141: (id, v) => new IFC2X3.IfcTable(id, v[0].value, v[1].map((p) => new Handle(p.value))),\n  531007025: (id, v) => new IFC2X3.IfcTableRow(id, v[0].map((p) => TypeInitialiser(1, p)), v[1].value),\n  912023232: (id, v) => new IFC2X3.IfcTelecomAddress(id, v[0], !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC2X3.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC2X3.IfcLabel(p.value)), !v[5] ? null : new IFC2X3.IfcLabel(v[5].value), !v[6] ? null : v[6].map((p) => new IFC2X3.IfcLabel(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value)),\n  1447204868: (id, v) => new IFC2X3.IfcTextStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value)),\n  1983826977: (id, v) => new IFC2X3.IfcTextStyleFontModel(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new IFC2X3.IfcTextFontName(p.value)), !v[2] ? null : new IFC2X3.IfcFontStyle(v[2].value), !v[3] ? null : new IFC2X3.IfcFontVariant(v[3].value), !v[4] ? null : new IFC2X3.IfcFontWeight(v[4].value), TypeInitialiser(1, v[5])),\n  2636378356: (id, v) => new IFC2X3.IfcTextStyleForDefinedFont(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  1640371178: (id, v) => new IFC2X3.IfcTextStyleTextModel(id, !v[0] ? null : TypeInitialiser(1, v[0]), !v[1] ? null : new IFC2X3.IfcTextAlignment(v[1].value), !v[2] ? null : new IFC2X3.IfcTextDecoration(v[2].value), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : TypeInitialiser(1, v[4]), !v[5] ? null : new IFC2X3.IfcTextTransformation(v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])),\n  1484833681: (id, v) => new IFC2X3.IfcTextStyleWithBoxCharacteristics(id, !v[0] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[3].value), !v[4] ? null : TypeInitialiser(1, v[4])),\n  280115917: (id, _) => new IFC2X3.IfcTextureCoordinate(id),\n  1742049831: (id, v) => new IFC2X3.IfcTextureCoordinateGenerator(id, new IFC2X3.IfcLabel(v[0].value), v[1].map((p) => TypeInitialiser(1, p))),\n  2552916305: (id, v) => new IFC2X3.IfcTextureMap(id, v[0].map((p) => new Handle(p.value))),\n  1210645708: (id, v) => new IFC2X3.IfcTextureVertex(id, v[0].map((p) => new IFC2X3.IfcParameterValue(p.value))),\n  3317419933: (id, v) => new IFC2X3.IfcThermalMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcSpecificHeatCapacityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcThermalConductivityMeasure(v[4].value)),\n  3101149627: (id, v) => new IFC2X3.IfcTimeSeries(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  1718945513: (id, v) => new IFC2X3.IfcTimeSeriesReferenceRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  581633288: (id, v) => new IFC2X3.IfcTimeSeriesValue(id, v[0].map((p) => TypeInitialiser(1, p))),\n  1377556343: (id, _) => new IFC2X3.IfcTopologicalRepresentationItem(id),\n  1735638870: (id, v) => new IFC2X3.IfcTopologyRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  180925521: (id, v) => new IFC2X3.IfcUnitAssignment(id, v[0].map((p) => new Handle(p.value))),\n  2799835756: (id, _) => new IFC2X3.IfcVertex(id),\n  3304826586: (id, v) => new IFC2X3.IfcVertexBasedTextureMap(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value))),\n  1907098498: (id, v) => new IFC2X3.IfcVertexPoint(id, new Handle(v[0].value)),\n  891718957: (id, v) => new IFC2X3.IfcVirtualGridIntersection(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new IFC2X3.IfcLengthMeasure(p.value))),\n  1065908215: (id, v) => new IFC2X3.IfcWaterProperties(id, new Handle(v[0].value), !v[1] ? null : v[1].value, !v[2] ? null : new IFC2X3.IfcIonConcentrationMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcIonConcentrationMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcIonConcentrationMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPHMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[7].value)),\n  2442683028: (id, v) => new IFC2X3.IfcAnnotationOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  962685235: (id, v) => new IFC2X3.IfcAnnotationSurfaceOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  3612888222: (id, v) => new IFC2X3.IfcAnnotationSymbolOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  2297822566: (id, v) => new IFC2X3.IfcAnnotationTextOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  3798115385: (id, v) => new IFC2X3.IfcArbitraryClosedProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value)),\n  1310608509: (id, v) => new IFC2X3.IfcArbitraryOpenProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value)),\n  2705031697: (id, v) => new IFC2X3.IfcArbitraryProfileDefWithVoids(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  616511568: (id, v) => new IFC2X3.IfcBlobTexture(id, v[0].value, v[1].value, v[2], !v[3] ? null : new Handle(v[3].value), new IFC2X3.IfcIdentifier(v[4].value), v[5].value),\n  3150382593: (id, v) => new IFC2X3.IfcCenterLineProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)),\n  647927063: (id, v) => new IFC2X3.IfcClassificationReference(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value)),\n  776857604: (id, v) => new IFC2X3.IfcColourRgb(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new IFC2X3.IfcNormalisedRatioMeasure(v[1].value), new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), new IFC2X3.IfcNormalisedRatioMeasure(v[3].value)),\n  2542286263: (id, v) => new IFC2X3.IfcComplexProperty(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new IFC2X3.IfcIdentifier(v[2].value), v[3].map((p) => new Handle(p.value))),\n  1485152156: (id, v) => new IFC2X3.IfcCompositeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC2X3.IfcLabel(v[3].value)),\n  370225590: (id, v) => new IFC2X3.IfcConnectedFaceSet(id, v[0].map((p) => new Handle(p.value))),\n  1981873012: (id, v) => new IFC2X3.IfcConnectionCurveGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  45288368: (id, v) => new IFC2X3.IfcConnectionPointEccentricity(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcLengthMeasure(v[4].value)),\n  3050246964: (id, v) => new IFC2X3.IfcContextDependentUnit(id, new Handle(v[0].value), v[1], new IFC2X3.IfcLabel(v[2].value)),\n  2889183280: (id, v) => new IFC2X3.IfcConversionBasedUnit(id, new Handle(v[0].value), v[1], new IFC2X3.IfcLabel(v[2].value), new Handle(v[3].value)),\n  3800577675: (id, v) => new IFC2X3.IfcCurveStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle(v[3].value)),\n  3632507154: (id, v) => new IFC2X3.IfcDerivedProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  2273265877: (id, v) => new IFC2X3.IfcDimensionCalloutRelationship(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value)),\n  1694125774: (id, v) => new IFC2X3.IfcDimensionPair(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value)),\n  3732053477: (id, v) => new IFC2X3.IfcDocumentReference(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  4170525392: (id, v) => new IFC2X3.IfcDraughtingPreDefinedTextFont(id, new IFC2X3.IfcLabel(v[0].value)),\n  3900360178: (id, v) => new IFC2X3.IfcEdge(id, new Handle(v[0].value), new Handle(v[1].value)),\n  476780140: (id, v) => new IFC2X3.IfcEdgeCurve(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), v[3].value),\n  1860660968: (id, v) => new IFC2X3.IfcExtendedMaterialProperties(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcText(v[2].value), new IFC2X3.IfcLabel(v[3].value)),\n  2556980723: (id, v) => new IFC2X3.IfcFace(id, v[0].map((p) => new Handle(p.value))),\n  1809719519: (id, v) => new IFC2X3.IfcFaceBound(id, new Handle(v[0].value), v[1].value),\n  803316827: (id, v) => new IFC2X3.IfcFaceOuterBound(id, new Handle(v[0].value), v[1].value),\n  3008276851: (id, v) => new IFC2X3.IfcFaceSurface(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), v[2].value),\n  4219587988: (id, v) => new IFC2X3.IfcFailureConnectionCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcForceMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcForceMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcForceMeasure(v[6].value)),\n  738692330: (id, v) => new IFC2X3.IfcFillAreaStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value))),\n  3857492461: (id, v) => new IFC2X3.IfcFuelProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcHeatingValueMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcHeatingValueMeasure(v[4].value)),\n  803998398: (id, v) => new IFC2X3.IfcGeneralMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcMolecularWeightMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcMassDensityMeasure(v[3].value)),\n  1446786286: (id, v) => new IFC2X3.IfcGeneralProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(v[6].value)),\n  3448662350: (id, v) => new IFC2X3.IfcGeometricRepresentationContext(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new IFC2X3.IfcDimensionCount(v[2].value), !v[3] ? null : v[3].value, new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value)),\n  2453401579: (id, _) => new IFC2X3.IfcGeometricRepresentationItem(id),\n  4142052618: (id, v) => new IFC2X3.IfcGeometricRepresentationSubContext(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(v[5].value)),\n  3590301190: (id, v) => new IFC2X3.IfcGeometricSet(id, v[0].map((p) => new Handle(p.value))),\n  178086475: (id, v) => new IFC2X3.IfcGridPlacement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  812098782: (id, v) => new IFC2X3.IfcHalfSpaceSolid(id, new Handle(v[0].value), v[1].value),\n  2445078500: (id, v) => new IFC2X3.IfcHygroscopicMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcIsothermalMoistureCapacityMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcVaporPermeabilityMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcMoistureDiffusivityMeasure(v[5].value)),\n  3905492369: (id, v) => new IFC2X3.IfcImageTexture(id, v[0].value, v[1].value, v[2], !v[3] ? null : new Handle(v[3].value), new IFC2X3.IfcIdentifier(v[4].value)),\n  3741457305: (id, v) => new IFC2X3.IfcIrregularTimeSeries(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), v[8].map((p) => new Handle(p.value))),\n  1402838566: (id, v) => new IFC2X3.IfcLightSource(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value)),\n  125510826: (id, v) => new IFC2X3.IfcLightSourceAmbient(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value)),\n  2604431987: (id, v) => new IFC2X3.IfcLightSourceDirectional(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value)),\n  4266656042: (id, v) => new IFC2X3.IfcLightSourceGoniometric(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC2X3.IfcThermodynamicTemperatureMeasure(v[6].value), new IFC2X3.IfcLuminousFluxMeasure(v[7].value), v[8], new Handle(v[9].value)),\n  1520743889: (id, v) => new IFC2X3.IfcLightSourcePositional(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcReal(v[6].value), new IFC2X3.IfcReal(v[7].value), new IFC2X3.IfcReal(v[8].value)),\n  3422422726: (id, v) => new IFC2X3.IfcLightSourceSpot(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcReal(v[6].value), new IFC2X3.IfcReal(v[7].value), new IFC2X3.IfcReal(v[8].value), new Handle(v[9].value), !v[10] ? null : new IFC2X3.IfcReal(v[10].value), new IFC2X3.IfcPositivePlaneAngleMeasure(v[11].value), new IFC2X3.IfcPositivePlaneAngleMeasure(v[12].value)),\n  2624227202: (id, v) => new IFC2X3.IfcLocalPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value)),\n  1008929658: (id, _) => new IFC2X3.IfcLoop(id),\n  2347385850: (id, v) => new IFC2X3.IfcMappedItem(id, new Handle(v[0].value), new Handle(v[1].value)),\n  2022407955: (id, v) => new IFC2X3.IfcMaterialDefinitionRepresentation(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  1430189142: (id, v) => new IFC2X3.IfcMechanicalConcreteMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPressureMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcText(v[8].value), !v[9] ? null : new IFC2X3.IfcText(v[9].value), !v[10] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcText(v[11].value)),\n  219451334: (id, v) => new IFC2X3.IfcObjectDefinition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)),\n  2833995503: (id, v) => new IFC2X3.IfcOneDirectionRepeatFactor(id, new Handle(v[0].value)),\n  2665983363: (id, v) => new IFC2X3.IfcOpenShell(id, v[0].map((p) => new Handle(p.value))),\n  1029017970: (id, v) => new IFC2X3.IfcOrientedEdge(id, new Handle(v[0].value), v[1].value),\n  2529465313: (id, v) => new IFC2X3.IfcParameterizedProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value)),\n  2519244187: (id, v) => new IFC2X3.IfcPath(id, v[0].map((p) => new Handle(p.value))),\n  3021840470: (id, v) => new IFC2X3.IfcPhysicalComplexQuantity(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcLabel(v[5].value)),\n  597895409: (id, v) => new IFC2X3.IfcPixelTexture(id, v[0].value, v[1].value, v[2], !v[3] ? null : new Handle(v[3].value), new IFC2X3.IfcInteger(v[4].value), new IFC2X3.IfcInteger(v[5].value), new IFC2X3.IfcInteger(v[6].value), v[7].map((p) => p.value)),\n  2004835150: (id, v) => new IFC2X3.IfcPlacement(id, new Handle(v[0].value)),\n  1663979128: (id, v) => new IFC2X3.IfcPlanarExtent(id, new IFC2X3.IfcLengthMeasure(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value)),\n  2067069095: (id, _) => new IFC2X3.IfcPoint(id),\n  4022376103: (id, v) => new IFC2X3.IfcPointOnCurve(id, new Handle(v[0].value), new IFC2X3.IfcParameterValue(v[1].value)),\n  1423911732: (id, v) => new IFC2X3.IfcPointOnSurface(id, new Handle(v[0].value), new IFC2X3.IfcParameterValue(v[1].value), new IFC2X3.IfcParameterValue(v[2].value)),\n  2924175390: (id, v) => new IFC2X3.IfcPolyLoop(id, v[0].map((p) => new Handle(p.value))),\n  2775532180: (id, v) => new IFC2X3.IfcPolygonalBoundedHalfSpace(id, new Handle(v[0].value), v[1].value, new Handle(v[2].value), new Handle(v[3].value)),\n  759155922: (id, v) => new IFC2X3.IfcPreDefinedColour(id, new IFC2X3.IfcLabel(v[0].value)),\n  2559016684: (id, v) => new IFC2X3.IfcPreDefinedCurveFont(id, new IFC2X3.IfcLabel(v[0].value)),\n  433424934: (id, v) => new IFC2X3.IfcPreDefinedDimensionSymbol(id, new IFC2X3.IfcLabel(v[0].value)),\n  179317114: (id, v) => new IFC2X3.IfcPreDefinedPointMarkerSymbol(id, new IFC2X3.IfcLabel(v[0].value)),\n  673634403: (id, v) => new IFC2X3.IfcProductDefinitionShape(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))),\n  871118103: (id, v) => new IFC2X3.IfcPropertyBoundedValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : new Handle(v[4].value)),\n  1680319473: (id, v) => new IFC2X3.IfcPropertyDefinition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)),\n  4166981789: (id, v) => new IFC2X3.IfcPropertyEnumeratedValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => TypeInitialiser(1, p)), !v[3] ? null : new Handle(v[3].value)),\n  2752243245: (id, v) => new IFC2X3.IfcPropertyListValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => TypeInitialiser(1, p)), !v[3] ? null : new Handle(v[3].value)),\n  941946838: (id, v) => new IFC2X3.IfcPropertyReferenceValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), new Handle(v[3].value)),\n  3357820518: (id, v) => new IFC2X3.IfcPropertySetDefinition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)),\n  3650150729: (id, v) => new IFC2X3.IfcPropertySingleValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle(v[3].value)),\n  110355661: (id, v) => new IFC2X3.IfcPropertyTableValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => TypeInitialiser(1, p)), v[3].map((p) => TypeInitialiser(1, p)), !v[4] ? null : new IFC2X3.IfcText(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  3615266464: (id, v) => new IFC2X3.IfcRectangleProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value)),\n  3413951693: (id, v) => new IFC2X3.IfcRegularTimeSeries(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), new IFC2X3.IfcTimeMeasure(v[8].value), v[9].map((p) => new Handle(p.value))),\n  3765753017: (id, v) => new IFC2X3.IfcReinforcementDefinitionProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))),\n  478536968: (id, v) => new IFC2X3.IfcRelationship(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)),\n  2778083089: (id, v) => new IFC2X3.IfcRoundedRectangleProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value)),\n  1509187699: (id, v) => new IFC2X3.IfcSectionedSpine(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))),\n  2411513650: (id, v) => new IFC2X3.IfcServiceLifeFactor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], !v[5] ? null : TypeInitialiser(1, v[5]), TypeInitialiser(1, v[6]), !v[7] ? null : TypeInitialiser(1, v[7])),\n  4124623270: (id, v) => new IFC2X3.IfcShellBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))),\n  2609359061: (id, v) => new IFC2X3.IfcSlippageConnectionCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value)),\n  723233188: (id, _) => new IFC2X3.IfcSolidModel(id),\n  2485662743: (id, v) => new IFC2X3.IfcSoundProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new IFC2X3.IfcBoolean(v[4].value), v[5], v[6].map((p) => new Handle(p.value))),\n  1202362311: (id, v) => new IFC2X3.IfcSoundValue(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new IFC2X3.IfcFrequencyMeasure(v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])),\n  390701378: (id, v) => new IFC2X3.IfcSpaceThermalLoadProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), v[5], v[6], !v[7] ? null : new IFC2X3.IfcText(v[7].value), new IFC2X3.IfcPowerMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPowerMeasure(v[9].value), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new IFC2X3.IfcLabel(v[11].value), !v[12] ? null : new IFC2X3.IfcLabel(v[12].value), v[13]),\n  1595516126: (id, v) => new IFC2X3.IfcStructuralLoadLinearForce(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLinearForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLinearForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLinearForceMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcLinearMomentMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcLinearMomentMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcLinearMomentMeasure(v[6].value)),\n  2668620305: (id, v) => new IFC2X3.IfcStructuralLoadPlanarForce(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcPlanarForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPlanarForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPlanarForceMeasure(v[3].value)),\n  2473145415: (id, v) => new IFC2X3.IfcStructuralLoadSingleDisplacement(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[6].value)),\n  1973038258: (id, v) => new IFC2X3.IfcStructuralLoadSingleDisplacementDistortion(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcCurvatureMeasure(v[7].value)),\n  1597423693: (id, v) => new IFC2X3.IfcStructuralLoadSingleForce(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcTorqueMeasure(v[6].value)),\n  1190533807: (id, v) => new IFC2X3.IfcStructuralLoadSingleForceWarping(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcTorqueMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcWarpingMomentMeasure(v[7].value)),\n  3843319758: (id, v) => new IFC2X3.IfcStructuralProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcWarpingConstantMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcLengthMeasure(v[12].value), !v[13] ? null : new IFC2X3.IfcLengthMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC2X3.IfcAreaMeasure(v[15].value), !v[16] ? null : new IFC2X3.IfcSectionModulusMeasure(v[16].value), !v[17] ? null : new IFC2X3.IfcSectionModulusMeasure(v[17].value), !v[18] ? null : new IFC2X3.IfcSectionModulusMeasure(v[18].value), !v[19] ? null : new IFC2X3.IfcSectionModulusMeasure(v[19].value), !v[20] ? null : new IFC2X3.IfcSectionModulusMeasure(v[20].value), !v[21] ? null : new IFC2X3.IfcLengthMeasure(v[21].value), !v[22] ? null : new IFC2X3.IfcLengthMeasure(v[22].value)),\n  3653947884: (id, v) => new IFC2X3.IfcStructuralSteelProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcWarpingConstantMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcLengthMeasure(v[12].value), !v[13] ? null : new IFC2X3.IfcLengthMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC2X3.IfcAreaMeasure(v[15].value), !v[16] ? null : new IFC2X3.IfcSectionModulusMeasure(v[16].value), !v[17] ? null : new IFC2X3.IfcSectionModulusMeasure(v[17].value), !v[18] ? null : new IFC2X3.IfcSectionModulusMeasure(v[18].value), !v[19] ? null : new IFC2X3.IfcSectionModulusMeasure(v[19].value), !v[20] ? null : new IFC2X3.IfcSectionModulusMeasure(v[20].value), !v[21] ? null : new IFC2X3.IfcLengthMeasure(v[21].value), !v[22] ? null : new IFC2X3.IfcLengthMeasure(v[22].value), !v[23] ? null : new IFC2X3.IfcAreaMeasure(v[23].value), !v[24] ? null : new IFC2X3.IfcAreaMeasure(v[24].value), !v[25] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[25].value), !v[26] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[26].value)),\n  2233826070: (id, v) => new IFC2X3.IfcSubedge(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)),\n  2513912981: (id, _) => new IFC2X3.IfcSurface(id),\n  1878645084: (id, v) => new IFC2X3.IfcSurfaceStyleRendering(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : TypeInitialiser(1, v[7]), v[8]),\n  2247615214: (id, v) => new IFC2X3.IfcSweptAreaSolid(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1260650574: (id, v) => new IFC2X3.IfcSweptDiskSolid(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[2].value), new IFC2X3.IfcParameterValue(v[3].value), new IFC2X3.IfcParameterValue(v[4].value)),\n  230924584: (id, v) => new IFC2X3.IfcSweptSurface(id, new Handle(v[0].value), new Handle(v[1].value)),\n  3071757647: (id, v) => new IFC2X3.IfcTShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[12].value)),\n  3028897424: (id, v) => new IFC2X3.IfcTerminatorSymbol(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), new Handle(v[3].value)),\n  4282788508: (id, v) => new IFC2X3.IfcTextLiteral(id, new IFC2X3.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2]),\n  3124975700: (id, v) => new IFC2X3.IfcTextLiteralWithExtent(id, new IFC2X3.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2], new Handle(v[3].value), new IFC2X3.IfcBoxAlignment(v[4].value)),\n  2715220739: (id, v) => new IFC2X3.IfcTrapeziumProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcLengthMeasure(v[6].value)),\n  1345879162: (id, v) => new IFC2X3.IfcTwoDirectionRepeatFactor(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1628702193: (id, v) => new IFC2X3.IfcTypeObject(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value))),\n  2347495698: (id, v) => new IFC2X3.IfcTypeProduct(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value)),\n  427810014: (id, v) => new IFC2X3.IfcUShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value)),\n  1417489154: (id, v) => new IFC2X3.IfcVector(id, new Handle(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value)),\n  2759199220: (id, v) => new IFC2X3.IfcVertexLoop(id, new Handle(v[0].value)),\n  336235671: (id, v) => new IFC2X3.IfcWindowLiningProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[11].value), !v[12] ? null : new Handle(v[12].value)),\n  512836454: (id, v) => new IFC2X3.IfcWindowPanelProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  1299126871: (id, v) => new IFC2X3.IfcWindowStyle(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], v[9], v[10].value, v[11].value),\n  2543172580: (id, v) => new IFC2X3.IfcZShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value)),\n  3288037868: (id, v) => new IFC2X3.IfcAnnotationCurveOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  669184980: (id, v) => new IFC2X3.IfcAnnotationFillArea(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value))),\n  2265737646: (id, v) => new IFC2X3.IfcAnnotationFillAreaOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), v[4]),\n  1302238472: (id, v) => new IFC2X3.IfcAnnotationSurface(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  4261334040: (id, v) => new IFC2X3.IfcAxis1Placement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  3125803723: (id, v) => new IFC2X3.IfcAxis2Placement2D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  2740243338: (id, v) => new IFC2X3.IfcAxis2Placement3D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  2736907675: (id, v) => new IFC2X3.IfcBooleanResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)),\n  4182860854: (id, _) => new IFC2X3.IfcBoundedSurface(id),\n  2581212453: (id, v) => new IFC2X3.IfcBoundingBox(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)),\n  2713105998: (id, v) => new IFC2X3.IfcBoxedHalfSpace(id, new Handle(v[0].value), v[1].value, new Handle(v[2].value)),\n  2898889636: (id, v) => new IFC2X3.IfcCShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value)),\n  1123145078: (id, v) => new IFC2X3.IfcCartesianPoint(id, v[0].map((p) => new IFC2X3.IfcLengthMeasure(p.value))),\n  59481748: (id, v) => new IFC2X3.IfcCartesianTransformationOperator(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value),\n  3749851601: (id, v) => new IFC2X3.IfcCartesianTransformationOperator2D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value),\n  3486308946: (id, v) => new IFC2X3.IfcCartesianTransformationOperator2DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value, !v[4] ? null : v[4].value),\n  3331915920: (id, v) => new IFC2X3.IfcCartesianTransformationOperator3D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value, !v[4] ? null : new Handle(v[4].value)),\n  1416205885: (id, v) => new IFC2X3.IfcCartesianTransformationOperator3DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value, !v[4] ? null : new Handle(v[4].value), !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),\n  1383045692: (id, v) => new IFC2X3.IfcCircleProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)),\n  2205249479: (id, v) => new IFC2X3.IfcClosedShell(id, v[0].map((p) => new Handle(p.value))),\n  2485617015: (id, v) => new IFC2X3.IfcCompositeCurveSegment(id, v[0], v[1].value, new Handle(v[2].value)),\n  4133800736: (id, v) => new IFC2X3.IfcCraneRailAShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), new IFC2X3.IfcPositiveLengthMeasure(v[7].value), new IFC2X3.IfcPositiveLengthMeasure(v[8].value), new IFC2X3.IfcPositiveLengthMeasure(v[9].value), new IFC2X3.IfcPositiveLengthMeasure(v[10].value), new IFC2X3.IfcPositiveLengthMeasure(v[11].value), new IFC2X3.IfcPositiveLengthMeasure(v[12].value), new IFC2X3.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[14].value)),\n  194851669: (id, v) => new IFC2X3.IfcCraneRailFShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), new IFC2X3.IfcPositiveLengthMeasure(v[7].value), new IFC2X3.IfcPositiveLengthMeasure(v[8].value), new IFC2X3.IfcPositiveLengthMeasure(v[9].value), new IFC2X3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[11].value)),\n  2506170314: (id, v) => new IFC2X3.IfcCsgPrimitive3D(id, new Handle(v[0].value)),\n  2147822146: (id, v) => new IFC2X3.IfcCsgSolid(id, new Handle(v[0].value)),\n  2601014836: (id, _) => new IFC2X3.IfcCurve(id),\n  2827736869: (id, v) => new IFC2X3.IfcCurveBoundedPlane(id, new Handle(v[0].value), new Handle(v[1].value), v[2].map((p) => new Handle(p.value))),\n  693772133: (id, v) => new IFC2X3.IfcDefinedSymbol(id, new Handle(v[0].value), new Handle(v[1].value)),\n  606661476: (id, v) => new IFC2X3.IfcDimensionCurve(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  4054601972: (id, v) => new IFC2X3.IfcDimensionCurveTerminator(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), new Handle(v[3].value), v[4]),\n  32440307: (id, v) => new IFC2X3.IfcDirection(id, v[0].map((p) => p.value)),\n  2963535650: (id, v) => new IFC2X3.IfcDoorLiningProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcLengthMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new Handle(v[14].value)),\n  1714330368: (id, v) => new IFC2X3.IfcDoorPanelProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), v[5], !v[6] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)),\n  526551008: (id, v) => new IFC2X3.IfcDoorStyle(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], v[9], v[10].value, v[11].value),\n  3073041342: (id, v) => new IFC2X3.IfcDraughtingCallout(id, v[0].map((p) => new Handle(p.value))),\n  445594917: (id, v) => new IFC2X3.IfcDraughtingPreDefinedColour(id, new IFC2X3.IfcLabel(v[0].value)),\n  4006246654: (id, v) => new IFC2X3.IfcDraughtingPreDefinedCurveFont(id, new IFC2X3.IfcLabel(v[0].value)),\n  1472233963: (id, v) => new IFC2X3.IfcEdgeLoop(id, v[0].map((p) => new Handle(p.value))),\n  1883228015: (id, v) => new IFC2X3.IfcElementQuantity(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))),\n  339256511: (id, v) => new IFC2X3.IfcElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  2777663545: (id, v) => new IFC2X3.IfcElementarySurface(id, new Handle(v[0].value)),\n  2835456948: (id, v) => new IFC2X3.IfcEllipseProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value)),\n  80994333: (id, v) => new IFC2X3.IfcEnergyProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(v[5].value)),\n  477187591: (id, v) => new IFC2X3.IfcExtrudedAreaSolid(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)),\n  2047409740: (id, v) => new IFC2X3.IfcFaceBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))),\n  374418227: (id, v) => new IFC2X3.IfcFillAreaStyleHatching(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), new IFC2X3.IfcPlaneAngleMeasure(v[4].value)),\n  4203026998: (id, v) => new IFC2X3.IfcFillAreaStyleTileSymbolWithStyle(id, new Handle(v[0].value)),\n  315944413: (id, v) => new IFC2X3.IfcFillAreaStyleTiles(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), new IFC2X3.IfcPositiveRatioMeasure(v[2].value)),\n  3455213021: (id, v) => new IFC2X3.IfcFluidFlowProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new IFC2X3.IfcLabel(v[10].value), !v[11] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[12].value), !v[13] ? null : new Handle(v[13].value), !v[14] ? null : new Handle(v[14].value), !v[15] ? null : TypeInitialiser(1, v[15]), !v[16] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[16].value), !v[17] ? null : new IFC2X3.IfcLinearVelocityMeasure(v[17].value), !v[18] ? null : new IFC2X3.IfcPressureMeasure(v[18].value)),\n  4238390223: (id, v) => new IFC2X3.IfcFurnishingElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  1268542332: (id, v) => new IFC2X3.IfcFurnitureType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  987898635: (id, v) => new IFC2X3.IfcGeometricCurveSet(id, v[0].map((p) => new Handle(p.value))),\n  1484403080: (id, v) => new IFC2X3.IfcIShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value)),\n  572779678: (id, v) => new IFC2X3.IfcLShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value)),\n  1281925730: (id, v) => new IFC2X3.IfcLine(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1425443689: (id, v) => new IFC2X3.IfcManifoldSolidBrep(id, new Handle(v[0].value)),\n  3888040117: (id, v) => new IFC2X3.IfcObject(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  3388369263: (id, v) => new IFC2X3.IfcOffsetCurve2D(id, new Handle(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value), v[2].value),\n  3505215534: (id, v) => new IFC2X3.IfcOffsetCurve3D(id, new Handle(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value), v[2].value, new Handle(v[3].value)),\n  3566463478: (id, v) => new IFC2X3.IfcPermeableCoveringProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  603570806: (id, v) => new IFC2X3.IfcPlanarBox(id, new IFC2X3.IfcLengthMeasure(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value), new Handle(v[2].value)),\n  220341763: (id, v) => new IFC2X3.IfcPlane(id, new Handle(v[0].value)),\n  2945172077: (id, v) => new IFC2X3.IfcProcess(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  4208778838: (id, v) => new IFC2X3.IfcProduct(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  103090709: (id, v) => new IFC2X3.IfcProject(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcLabel(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7].map((p) => new Handle(p.value)), new Handle(v[8].value)),\n  4194566429: (id, v) => new IFC2X3.IfcProjectionCurve(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)),\n  1451395588: (id, v) => new IFC2X3.IfcPropertySet(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))),\n  3219374653: (id, v) => new IFC2X3.IfcProxy(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  2770003689: (id, v) => new IFC2X3.IfcRectangleHollowProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value)),\n  2798486643: (id, v) => new IFC2X3.IfcRectangularPyramid(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)),\n  3454111270: (id, v) => new IFC2X3.IfcRectangularTrimmedSurface(id, new Handle(v[0].value), new IFC2X3.IfcParameterValue(v[1].value), new IFC2X3.IfcParameterValue(v[2].value), new IFC2X3.IfcParameterValue(v[3].value), new IFC2X3.IfcParameterValue(v[4].value), v[5].value, v[6].value),\n  3939117080: (id, v) => new IFC2X3.IfcRelAssigns(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5]),\n  1683148259: (id, v) => new IFC2X3.IfcRelAssignsToActor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  2495723537: (id, v) => new IFC2X3.IfcRelAssignsToControl(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  1307041759: (id, v) => new IFC2X3.IfcRelAssignsToGroup(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  4278684876: (id, v) => new IFC2X3.IfcRelAssignsToProcess(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  2857406711: (id, v) => new IFC2X3.IfcRelAssignsToProduct(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  3372526763: (id, v) => new IFC2X3.IfcRelAssignsToProjectOrder(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  205026976: (id, v) => new IFC2X3.IfcRelAssignsToResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  1865459582: (id, v) => new IFC2X3.IfcRelAssociates(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))),\n  1327628568: (id, v) => new IFC2X3.IfcRelAssociatesAppliedValue(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  4095574036: (id, v) => new IFC2X3.IfcRelAssociatesApproval(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  919958153: (id, v) => new IFC2X3.IfcRelAssociatesClassification(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  2728634034: (id, v) => new IFC2X3.IfcRelAssociatesConstraint(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new IFC2X3.IfcLabel(v[5].value), new Handle(v[6].value)),\n  982818633: (id, v) => new IFC2X3.IfcRelAssociatesDocument(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  3840914261: (id, v) => new IFC2X3.IfcRelAssociatesLibrary(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  2655215786: (id, v) => new IFC2X3.IfcRelAssociatesMaterial(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  2851387026: (id, v) => new IFC2X3.IfcRelAssociatesProfileProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  826625072: (id, v) => new IFC2X3.IfcRelConnects(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)),\n  1204542856: (id, v) => new IFC2X3.IfcRelConnectsElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value)),\n  3945020480: (id, v) => new IFC2X3.IfcRelConnectsPathElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => p.value), v[8].map((p) => p.value), v[9], v[10]),\n  4201705270: (id, v) => new IFC2X3.IfcRelConnectsPortToElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  3190031847: (id, v) => new IFC2X3.IfcRelConnectsPorts(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  2127690289: (id, v) => new IFC2X3.IfcRelConnectsStructuralActivity(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  3912681535: (id, v) => new IFC2X3.IfcRelConnectsStructuralElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  1638771189: (id, v) => new IFC2X3.IfcRelConnectsStructuralMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC2X3.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value)),\n  504942748: (id, v) => new IFC2X3.IfcRelConnectsWithEccentricity(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC2X3.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value), new Handle(v[10].value)),\n  3678494232: (id, v) => new IFC2X3.IfcRelConnectsWithRealizingElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3242617779: (id, v) => new IFC2X3.IfcRelContainedInSpatialStructure(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  886880790: (id, v) => new IFC2X3.IfcRelCoversBldgElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2802773753: (id, v) => new IFC2X3.IfcRelCoversSpaces(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2551354335: (id, v) => new IFC2X3.IfcRelDecomposes(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  693640335: (id, v) => new IFC2X3.IfcRelDefines(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))),\n  4186316022: (id, v) => new IFC2X3.IfcRelDefinesByProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  781010003: (id, v) => new IFC2X3.IfcRelDefinesByType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  3940055652: (id, v) => new IFC2X3.IfcRelFillsElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  279856033: (id, v) => new IFC2X3.IfcRelFlowControlElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  4189434867: (id, v) => new IFC2X3.IfcRelInteractionRequirements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcCountMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), new Handle(v[8].value)),\n  3268803585: (id, v) => new IFC2X3.IfcRelNests(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2051452291: (id, v) => new IFC2X3.IfcRelOccupiesSpaces(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  202636808: (id, v) => new IFC2X3.IfcRelOverridesProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value), v[6].map((p) => new Handle(p.value))),\n  750771296: (id, v) => new IFC2X3.IfcRelProjectsElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  1245217292: (id, v) => new IFC2X3.IfcRelReferencedInSpatialStructure(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  1058617721: (id, v) => new IFC2X3.IfcRelSchedulesCostItems(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  4122056220: (id, v) => new IFC2X3.IfcRelSequence(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), new IFC2X3.IfcTimeMeasure(v[6].value), v[7]),\n  366585022: (id, v) => new IFC2X3.IfcRelServicesBuildings(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  3451746338: (id, v) => new IFC2X3.IfcRelSpaceBoundary(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8]),\n  1401173127: (id, v) => new IFC2X3.IfcRelVoidsElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  2914609552: (id, v) => new IFC2X3.IfcResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  1856042241: (id, v) => new IFC2X3.IfcRevolvedAreaSolid(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPlaneAngleMeasure(v[3].value)),\n  4158566097: (id, v) => new IFC2X3.IfcRightCircularCone(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value)),\n  3626867408: (id, v) => new IFC2X3.IfcRightCircularCylinder(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value)),\n  2706606064: (id, v) => new IFC2X3.IfcSpatialStructureElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8]),\n  3893378262: (id, v) => new IFC2X3.IfcSpatialStructureElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  451544542: (id, v) => new IFC2X3.IfcSphere(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value)),\n  3544373492: (id, v) => new IFC2X3.IfcStructuralActivity(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  3136571912: (id, v) => new IFC2X3.IfcStructuralItem(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  530289379: (id, v) => new IFC2X3.IfcStructuralMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  3689010777: (id, v) => new IFC2X3.IfcStructuralReaction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  3979015343: (id, v) => new IFC2X3.IfcStructuralSurfaceMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value)),\n  2218152070: (id, v) => new IFC2X3.IfcStructuralSurfaceMemberVarying(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), v[9].map((p) => new IFC2X3.IfcPositiveLengthMeasure(p.value)), new Handle(v[10].value)),\n  4070609034: (id, v) => new IFC2X3.IfcStructuredDimensionCallout(id, v[0].map((p) => new Handle(p.value))),\n  2028607225: (id, v) => new IFC2X3.IfcSurfaceCurveSweptAreaSolid(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC2X3.IfcParameterValue(v[3].value), new IFC2X3.IfcParameterValue(v[4].value), new Handle(v[5].value)),\n  2809605785: (id, v) => new IFC2X3.IfcSurfaceOfLinearExtrusion(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC2X3.IfcLengthMeasure(v[3].value)),\n  4124788165: (id, v) => new IFC2X3.IfcSurfaceOfRevolution(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)),\n  1580310250: (id, v) => new IFC2X3.IfcSystemFurnitureElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3473067441: (id, v) => new IFC2X3.IfcTask(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8].value, !v[9] ? null : v[9].value),\n  2097647324: (id, v) => new IFC2X3.IfcTransportElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2296667514: (id, v) => new IFC2X3.IfcActor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new Handle(v[5].value)),\n  1674181508: (id, v) => new IFC2X3.IfcAnnotation(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  3207858831: (id, v) => new IFC2X3.IfcAsymmetricIShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[11].value)),\n  1334484129: (id, v) => new IFC2X3.IfcBlock(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)),\n  3649129432: (id, v) => new IFC2X3.IfcBooleanClippingResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)),\n  1260505505: (id, _) => new IFC2X3.IfcBoundedCurve(id),\n  4031249490: (id, v) => new IFC2X3.IfcBuilding(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcLengthMeasure(v[10].value), !v[11] ? null : new Handle(v[11].value)),\n  1950629157: (id, v) => new IFC2X3.IfcBuildingElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3124254112: (id, v) => new IFC2X3.IfcBuildingStorey(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLengthMeasure(v[9].value)),\n  2937912522: (id, v) => new IFC2X3.IfcCircleHollowProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value)),\n  300633059: (id, v) => new IFC2X3.IfcColumnType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3732776249: (id, v) => new IFC2X3.IfcCompositeCurve(id, v[0].map((p) => new Handle(p.value)), v[1].value),\n  2510884976: (id, v) => new IFC2X3.IfcConic(id, new Handle(v[0].value)),\n  2559216714: (id, v) => new IFC2X3.IfcConstructionResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)),\n  3293443760: (id, v) => new IFC2X3.IfcControl(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  3895139033: (id, v) => new IFC2X3.IfcCostItem(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  1419761937: (id, v) => new IFC2X3.IfcCostSchedule(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), new IFC2X3.IfcIdentifier(v[11].value), v[12]),\n  1916426348: (id, v) => new IFC2X3.IfcCoveringType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3295246426: (id, v) => new IFC2X3.IfcCrewResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)),\n  1457835157: (id, v) => new IFC2X3.IfcCurtainWallType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  681481545: (id, v) => new IFC2X3.IfcDimensionCurveDirectedCallout(id, v[0].map((p) => new Handle(p.value))),\n  3256556792: (id, v) => new IFC2X3.IfcDistributionElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3849074793: (id, v) => new IFC2X3.IfcDistributionFlowElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  360485395: (id, v) => new IFC2X3.IfcElectricalBaseProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(v[5].value), v[6], new IFC2X3.IfcElectricVoltageMeasure(v[7].value), new IFC2X3.IfcFrequencyMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcElectricCurrentMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcElectricCurrentMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPowerMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcPowerMeasure(v[12].value), v[13].value),\n  1758889154: (id, v) => new IFC2X3.IfcElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  4123344466: (id, v) => new IFC2X3.IfcElementAssembly(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8], v[9]),\n  1623761950: (id, v) => new IFC2X3.IfcElementComponent(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  2590856083: (id, v) => new IFC2X3.IfcElementComponentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  1704287377: (id, v) => new IFC2X3.IfcEllipse(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value)),\n  2107101300: (id, v) => new IFC2X3.IfcEnergyConversionDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  1962604670: (id, v) => new IFC2X3.IfcEquipmentElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3272907226: (id, v) => new IFC2X3.IfcEquipmentStandard(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  3174744832: (id, v) => new IFC2X3.IfcEvaporativeCoolerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3390157468: (id, v) => new IFC2X3.IfcEvaporatorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  807026263: (id, v) => new IFC2X3.IfcFacetedBrep(id, new Handle(v[0].value)),\n  3737207727: (id, v) => new IFC2X3.IfcFacetedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  647756555: (id, v) => new IFC2X3.IfcFastener(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  2489546625: (id, v) => new IFC2X3.IfcFastenerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  2827207264: (id, v) => new IFC2X3.IfcFeatureElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  2143335405: (id, v) => new IFC2X3.IfcFeatureElementAddition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  1287392070: (id, v) => new IFC2X3.IfcFeatureElementSubtraction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3907093117: (id, v) => new IFC2X3.IfcFlowControllerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3198132628: (id, v) => new IFC2X3.IfcFlowFittingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3815607619: (id, v) => new IFC2X3.IfcFlowMeterType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1482959167: (id, v) => new IFC2X3.IfcFlowMovingDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  1834744321: (id, v) => new IFC2X3.IfcFlowSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  1339347760: (id, v) => new IFC2X3.IfcFlowStorageDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  2297155007: (id, v) => new IFC2X3.IfcFlowTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3009222698: (id, v) => new IFC2X3.IfcFlowTreatmentDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  263784265: (id, v) => new IFC2X3.IfcFurnishingElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  814719939: (id, v) => new IFC2X3.IfcFurnitureStandard(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  200128114: (id, v) => new IFC2X3.IfcGasTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3009204131: (id, v) => new IFC2X3.IfcGrid(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), v[8].map((p) => new Handle(p.value)), !v[9] ? null : v[9].map((p) => new Handle(p.value))),\n  2706460486: (id, v) => new IFC2X3.IfcGroup(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  1251058090: (id, v) => new IFC2X3.IfcHeatExchangerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1806887404: (id, v) => new IFC2X3.IfcHumidifierType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2391368822: (id, v) => new IFC2X3.IfcInventory(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  4288270099: (id, v) => new IFC2X3.IfcJunctionBoxType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3827777499: (id, v) => new IFC2X3.IfcLaborResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new IFC2X3.IfcText(v[9].value)),\n  1051575348: (id, v) => new IFC2X3.IfcLampType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1161773419: (id, v) => new IFC2X3.IfcLightFixtureType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2506943328: (id, v) => new IFC2X3.IfcLinearDimension(id, v[0].map((p) => new Handle(p.value))),\n  377706215: (id, v) => new IFC2X3.IfcMechanicalFastener(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value)),\n  2108223431: (id, v) => new IFC2X3.IfcMechanicalFastenerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3181161470: (id, v) => new IFC2X3.IfcMemberType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  977012517: (id, v) => new IFC2X3.IfcMotorConnectionType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1916936684: (id, v) => new IFC2X3.IfcMove(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8].value, !v[9] ? null : v[9].value, new Handle(v[10].value), new Handle(v[11].value), !v[12] ? null : v[12].map((p) => new IFC2X3.IfcText(p.value))),\n  4143007308: (id, v) => new IFC2X3.IfcOccupant(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new Handle(v[5].value), v[6]),\n  3588315303: (id, v) => new IFC2X3.IfcOpeningElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3425660407: (id, v) => new IFC2X3.IfcOrderAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8].value, !v[9] ? null : v[9].value, new IFC2X3.IfcIdentifier(v[10].value)),\n  2837617999: (id, v) => new IFC2X3.IfcOutletType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2382730787: (id, v) => new IFC2X3.IfcPerformanceHistory(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcLabel(v[5].value)),\n  3327091369: (id, v) => new IFC2X3.IfcPermit(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value)),\n  804291784: (id, v) => new IFC2X3.IfcPipeFittingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  4231323485: (id, v) => new IFC2X3.IfcPipeSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  4017108033: (id, v) => new IFC2X3.IfcPlateType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3724593414: (id, v) => new IFC2X3.IfcPolyline(id, v[0].map((p) => new Handle(p.value))),\n  3740093272: (id, v) => new IFC2X3.IfcPort(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  2744685151: (id, v) => new IFC2X3.IfcProcedure(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC2X3.IfcLabel(v[7].value)),\n  2904328755: (id, v) => new IFC2X3.IfcProjectOrder(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC2X3.IfcLabel(v[7].value)),\n  3642467123: (id, v) => new IFC2X3.IfcProjectOrderRecord(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value)), v[6]),\n  3651124850: (id, v) => new IFC2X3.IfcProjectionElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  1842657554: (id, v) => new IFC2X3.IfcProtectiveDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2250791053: (id, v) => new IFC2X3.IfcPumpType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3248260540: (id, v) => new IFC2X3.IfcRadiusDimension(id, v[0].map((p) => new Handle(p.value))),\n  2893384427: (id, v) => new IFC2X3.IfcRailingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2324767716: (id, v) => new IFC2X3.IfcRampFlightType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  160246688: (id, v) => new IFC2X3.IfcRelAggregates(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2863920197: (id, v) => new IFC2X3.IfcRelAssignsTasks(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  1768891740: (id, v) => new IFC2X3.IfcSanitaryTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3517283431: (id, v) => new IFC2X3.IfcScheduleTimeControl(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), !v[13] ? null : new IFC2X3.IfcTimeMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcTimeMeasure(v[14].value), !v[15] ? null : new IFC2X3.IfcTimeMeasure(v[15].value), !v[16] ? null : new IFC2X3.IfcTimeMeasure(v[16].value), !v[17] ? null : new IFC2X3.IfcTimeMeasure(v[17].value), !v[18] ? null : v[18].value, !v[19] ? null : new Handle(v[19].value), !v[20] ? null : new IFC2X3.IfcTimeMeasure(v[20].value), !v[21] ? null : new IFC2X3.IfcTimeMeasure(v[21].value), !v[22] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[22].value)),\n  4105383287: (id, v) => new IFC2X3.IfcServiceLife(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], new IFC2X3.IfcTimeMeasure(v[6].value)),\n  4097777520: (id, v) => new IFC2X3.IfcSite(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcCompoundPlaneAngleMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcCompoundPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcLabel(v[12].value), !v[13] ? null : new Handle(v[13].value)),\n  2533589738: (id, v) => new IFC2X3.IfcSlabType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3856911033: (id, v) => new IFC2X3.IfcSpace(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], v[9], !v[10] ? null : new IFC2X3.IfcLengthMeasure(v[10].value)),\n  1305183839: (id, v) => new IFC2X3.IfcSpaceHeaterType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  652456506: (id, v) => new IFC2X3.IfcSpaceProgram(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcAreaMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value), new IFC2X3.IfcAreaMeasure(v[9].value)),\n  3812236995: (id, v) => new IFC2X3.IfcSpaceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3112655638: (id, v) => new IFC2X3.IfcStackTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1039846685: (id, v) => new IFC2X3.IfcStairFlightType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  682877961: (id, v) => new IFC2X3.IfcStructuralAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value)),\n  1179482911: (id, v) => new IFC2X3.IfcStructuralConnection(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  4243806635: (id, v) => new IFC2X3.IfcStructuralCurveConnection(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  214636428: (id, v) => new IFC2X3.IfcStructuralCurveMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]),\n  2445595289: (id, v) => new IFC2X3.IfcStructuralCurveMemberVarying(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]),\n  1807405624: (id, v) => new IFC2X3.IfcStructuralLinearAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value), v[11]),\n  1721250024: (id, v) => new IFC2X3.IfcStructuralLinearActionVarying(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value), v[11], new Handle(v[12].value), v[13].map((p) => new Handle(p.value))),\n  1252848954: (id, v) => new IFC2X3.IfcStructuralLoadGroup(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC2X3.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcLabel(v[9].value)),\n  1621171031: (id, v) => new IFC2X3.IfcStructuralPlanarAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value), v[11]),\n  3987759626: (id, v) => new IFC2X3.IfcStructuralPlanarActionVarying(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value), v[11], new Handle(v[12].value), v[13].map((p) => new Handle(p.value))),\n  2082059205: (id, v) => new IFC2X3.IfcStructuralPointAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value)),\n  734778138: (id, v) => new IFC2X3.IfcStructuralPointConnection(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  1235345126: (id, v) => new IFC2X3.IfcStructuralPointReaction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  2986769608: (id, v) => new IFC2X3.IfcStructuralResultGroup(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), v[7].value),\n  1975003073: (id, v) => new IFC2X3.IfcStructuralSurfaceConnection(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  148013059: (id, v) => new IFC2X3.IfcSubContractResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new IFC2X3.IfcText(v[10].value)),\n  2315554128: (id, v) => new IFC2X3.IfcSwitchingDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2254336722: (id, v) => new IFC2X3.IfcSystem(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  5716631: (id, v) => new IFC2X3.IfcTankType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1637806684: (id, v) => new IFC2X3.IfcTimeSeriesSchedule(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), v[6], new Handle(v[7].value)),\n  1692211062: (id, v) => new IFC2X3.IfcTransformerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1620046519: (id, v) => new IFC2X3.IfcTransportElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcMassMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcCountMeasure(v[10].value)),\n  3593883385: (id, v) => new IFC2X3.IfcTrimmedCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value)), v[3].value, v[4]),\n  1600972822: (id, v) => new IFC2X3.IfcTubeBundleType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1911125066: (id, v) => new IFC2X3.IfcUnitaryEquipmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  728799441: (id, v) => new IFC2X3.IfcValveType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2769231204: (id, v) => new IFC2X3.IfcVirtualElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  1898987631: (id, v) => new IFC2X3.IfcWallType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1133259667: (id, v) => new IFC2X3.IfcWasteTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1028945134: (id, v) => new IFC2X3.IfcWorkControl(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(v[10].value), new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(v[14].value)),\n  4218914973: (id, v) => new IFC2X3.IfcWorkPlan(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(v[10].value), new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(v[14].value)),\n  3342526732: (id, v) => new IFC2X3.IfcWorkSchedule(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(v[10].value), new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(v[14].value)),\n  1033361043: (id, v) => new IFC2X3.IfcZone(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  1213861670: (id, v) => new IFC2X3.Ifc2DCompositeCurve(id, v[0].map((p) => new Handle(p.value)), v[1].value),\n  3821786052: (id, v) => new IFC2X3.IfcActionRequest(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value)),\n  1411407467: (id, v) => new IFC2X3.IfcAirTerminalBoxType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3352864051: (id, v) => new IFC2X3.IfcAirTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1871374353: (id, v) => new IFC2X3.IfcAirToAirHeatRecoveryType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2470393545: (id, v) => new IFC2X3.IfcAngularDimension(id, v[0].map((p) => new Handle(p.value))),\n  3460190687: (id, v) => new IFC2X3.IfcAsset(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), new Handle(v[6].value), new Handle(v[7].value), new Handle(v[8].value), new Handle(v[9].value), new Handle(v[10].value), new Handle(v[11].value), new Handle(v[12].value), new Handle(v[13].value)),\n  1967976161: (id, v) => new IFC2X3.IfcBSplineCurve(id, v[0].value, v[1].map((p) => new Handle(p.value)), v[2], v[3].value, v[4].value),\n  819618141: (id, v) => new IFC2X3.IfcBeamType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1916977116: (id, v) => new IFC2X3.IfcBezierCurve(id, v[0].value, v[1].map((p) => new Handle(p.value)), v[2], v[3].value, v[4].value),\n  231477066: (id, v) => new IFC2X3.IfcBoilerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3299480353: (id, v) => new IFC2X3.IfcBuildingElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  52481810: (id, v) => new IFC2X3.IfcBuildingElementComponent(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  2979338954: (id, v) => new IFC2X3.IfcBuildingElementPart(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  1095909175: (id, v) => new IFC2X3.IfcBuildingElementProxy(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]),\n  1909888760: (id, v) => new IFC2X3.IfcBuildingElementProxyType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  395041908: (id, v) => new IFC2X3.IfcCableCarrierFittingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3293546465: (id, v) => new IFC2X3.IfcCableCarrierSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1285652485: (id, v) => new IFC2X3.IfcCableSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2951183804: (id, v) => new IFC2X3.IfcChillerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2611217952: (id, v) => new IFC2X3.IfcCircle(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value)),\n  2301859152: (id, v) => new IFC2X3.IfcCoilType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  843113511: (id, v) => new IFC2X3.IfcColumn(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3850581409: (id, v) => new IFC2X3.IfcCompressorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2816379211: (id, v) => new IFC2X3.IfcCondenserType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2188551683: (id, v) => new IFC2X3.IfcCondition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  1163958913: (id, v) => new IFC2X3.IfcConditionCriterion(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new Handle(v[5].value), new Handle(v[6].value)),\n  3898045240: (id, v) => new IFC2X3.IfcConstructionEquipmentResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)),\n  1060000209: (id, v) => new IFC2X3.IfcConstructionMaterialResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new IFC2X3.IfcRatioMeasure(v[10].value)),\n  488727124: (id, v) => new IFC2X3.IfcConstructionProductResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)),\n  335055490: (id, v) => new IFC2X3.IfcCooledBeamType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2954562838: (id, v) => new IFC2X3.IfcCoolingTowerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1973544240: (id, v) => new IFC2X3.IfcCovering(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]),\n  3495092785: (id, v) => new IFC2X3.IfcCurtainWall(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3961806047: (id, v) => new IFC2X3.IfcDamperType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  4147604152: (id, v) => new IFC2X3.IfcDiameterDimension(id, v[0].map((p) => new Handle(p.value))),\n  1335981549: (id, v) => new IFC2X3.IfcDiscreteAccessory(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  2635815018: (id, v) => new IFC2X3.IfcDiscreteAccessoryType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  1599208980: (id, v) => new IFC2X3.IfcDistributionChamberElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2063403501: (id, v) => new IFC2X3.IfcDistributionControlElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  1945004755: (id, v) => new IFC2X3.IfcDistributionElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3040386961: (id, v) => new IFC2X3.IfcDistributionFlowElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3041715199: (id, v) => new IFC2X3.IfcDistributionPort(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]),\n  395920057: (id, v) => new IFC2X3.IfcDoor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value)),\n  869906466: (id, v) => new IFC2X3.IfcDuctFittingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3760055223: (id, v) => new IFC2X3.IfcDuctSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2030761528: (id, v) => new IFC2X3.IfcDuctSilencerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  855621170: (id, v) => new IFC2X3.IfcEdgeFeature(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value)),\n  663422040: (id, v) => new IFC2X3.IfcElectricApplianceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3277789161: (id, v) => new IFC2X3.IfcElectricFlowStorageDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1534661035: (id, v) => new IFC2X3.IfcElectricGeneratorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1365060375: (id, v) => new IFC2X3.IfcElectricHeaterType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1217240411: (id, v) => new IFC2X3.IfcElectricMotorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  712377611: (id, v) => new IFC2X3.IfcElectricTimeControlType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1634875225: (id, v) => new IFC2X3.IfcElectricalCircuit(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)),\n  857184966: (id, v) => new IFC2X3.IfcElectricalElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  1658829314: (id, v) => new IFC2X3.IfcEnergyConversionDevice(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  346874300: (id, v) => new IFC2X3.IfcFanType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1810631287: (id, v) => new IFC2X3.IfcFilterType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  4222183408: (id, v) => new IFC2X3.IfcFireSuppressionTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2058353004: (id, v) => new IFC2X3.IfcFlowController(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  4278956645: (id, v) => new IFC2X3.IfcFlowFitting(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  4037862832: (id, v) => new IFC2X3.IfcFlowInstrumentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3132237377: (id, v) => new IFC2X3.IfcFlowMovingDevice(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  987401354: (id, v) => new IFC2X3.IfcFlowSegment(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  707683696: (id, v) => new IFC2X3.IfcFlowStorageDevice(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  2223149337: (id, v) => new IFC2X3.IfcFlowTerminal(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3508470533: (id, v) => new IFC2X3.IfcFlowTreatmentDevice(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  900683007: (id, v) => new IFC2X3.IfcFooting(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]),\n  1073191201: (id, v) => new IFC2X3.IfcMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  1687234759: (id, v) => new IFC2X3.IfcPile(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8], v[9]),\n  3171933400: (id, v) => new IFC2X3.IfcPlate(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  2262370178: (id, v) => new IFC2X3.IfcRailing(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]),\n  3024970846: (id, v) => new IFC2X3.IfcRamp(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]),\n  3283111854: (id, v) => new IFC2X3.IfcRampFlight(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3055160366: (id, v) => new IFC2X3.IfcRationalBezierCurve(id, v[0].value, v[1].map((p) => new Handle(p.value)), v[2], v[3].value, v[4].value, v[5].map((p) => p.value)),\n  3027567501: (id, v) => new IFC2X3.IfcReinforcingElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  2320036040: (id, v) => new IFC2X3.IfcReinforcingMesh(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value), new IFC2X3.IfcPositiveLengthMeasure(v[11].value), new IFC2X3.IfcPositiveLengthMeasure(v[12].value), new IFC2X3.IfcAreaMeasure(v[13].value), new IFC2X3.IfcAreaMeasure(v[14].value), new IFC2X3.IfcPositiveLengthMeasure(v[15].value), new IFC2X3.IfcPositiveLengthMeasure(v[16].value)),\n  2016517767: (id, v) => new IFC2X3.IfcRoof(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]),\n  1376911519: (id, v) => new IFC2X3.IfcRoundedEdgeFeature(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value)),\n  1783015770: (id, v) => new IFC2X3.IfcSensorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1529196076: (id, v) => new IFC2X3.IfcSlab(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]),\n  331165859: (id, v) => new IFC2X3.IfcStair(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]),\n  4252922144: (id, v) => new IFC2X3.IfcStairFlight(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : v[9].value, !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[11].value)),\n  2515109513: (id, v) => new IFC2X3.IfcStructuralAnalysisModel(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value))),\n  3824725483: (id, v) => new IFC2X3.IfcTendon(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9], new IFC2X3.IfcPositiveLengthMeasure(v[10].value), new IFC2X3.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcForceMeasure(v[12].value), !v[13] ? null : new IFC2X3.IfcPressureMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[14].value), !v[15] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[16].value)),\n  2347447852: (id, v) => new IFC2X3.IfcTendonAnchor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)),\n  3313531582: (id, v) => new IFC2X3.IfcVibrationIsolatorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  2391406946: (id, v) => new IFC2X3.IfcWall(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3512223829: (id, v) => new IFC2X3.IfcWallStandardCase(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  3304561284: (id, v) => new IFC2X3.IfcWindow(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value)),\n  2874132201: (id, v) => new IFC2X3.IfcActuatorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  3001207471: (id, v) => new IFC2X3.IfcAlarmType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  753842376: (id, v) => new IFC2X3.IfcBeam(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  2454782716: (id, v) => new IFC2X3.IfcChamferEdgeFeature(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value)),\n  578613899: (id, v) => new IFC2X3.IfcControllerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]),\n  1052013943: (id, v) => new IFC2X3.IfcDistributionChamberElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)),\n  1062813311: (id, v) => new IFC2X3.IfcDistributionControlElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcIdentifier(v[8].value)),\n  3700593921: (id, v) => new IFC2X3.IfcElectricDistributionPoint(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLabel(v[9].value)),\n  979691226: (id, v) => new IFC2X3.IfcReinforcingBar(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), new IFC2X3.IfcPositiveLengthMeasure(v[9].value), new IFC2X3.IfcAreaMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[11].value), v[12], v[13])\n};\nInheritanceDef[1] = {\n  618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],\n  411424972: [IFCENVIRONMENTALIMPACTVALUE, IFCCOSTVALUE],\n  4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],\n  1387855156: [IFCBOUNDARYNODECONDITIONWARPING],\n  3264961684: [IFCCOLOURRGB],\n  2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPORTGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],\n  2614616156: [IFCCONNECTIONPOINTECCENTRICITY],\n  1959218052: [IFCOBJECTIVE, IFCMETRIC],\n  3796139169: [IFCDIMENSIONPAIR, IFCDIMENSIONCALLOUTRELATIONSHIP],\n  3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSYMBOL, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],\n  3265635763: [IFCHYGROSCOPICMATERIALPROPERTIES, IFCGENERALMATERIALPROPERTIES, IFCFUELPROPERTIES, IFCEXTENDEDMATERIALPROPERTIES, IFCWATERPROPERTIES, IFCTHERMALMATERIALPROPERTIES, IFCPRODUCTSOFCOMBUSTIONPROPERTIES, IFCOPTICALMATERIALPROPERTIES, IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES, IFCMECHANICALMATERIALPROPERTIES],\n  4256014907: [IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES],\n  1918398963: [IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],\n  3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT],\n  2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],\n  2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],\n  3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL, IFCPREDEFINEDSYMBOL],\n  990879717: [IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL],\n  1775413392: [IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL],\n  2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],\n  3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSYMBOLSTYLE, IFCSURFACESTYLE],\n  2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],\n  3958567839: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],\n  2802850158: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES, IFCGENERALPROFILEPROPERTIES, IFCRIBPLATEPROFILEPROPERTIES],\n  2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],\n  1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],\n  3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],\n  3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE, IFCSTYLEDITEM],\n  2341007311: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT, IFCOBJECTDEFINITION],\n  3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],\n  3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],\n  2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],\n  2162789131: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],\n  2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],\n  2830218821: [IFCSTYLEDREPRESENTATION],\n  3958052878: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE],\n  846575682: [IFCSURFACESTYLERENDERING],\n  626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],\n  280115917: [IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],\n  3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],\n  1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],\n  2799835756: [IFCVERTEXPOINT],\n  2442683028: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE],\n  3612888222: [IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL],\n  3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],\n  1310608509: [IFCCENTERLINEPROFILEDEF],\n  370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],\n  3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],\n  2556980723: [IFCFACESURFACE],\n  1809719519: [IFCFACEOUTERBOUND],\n  1446786286: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES],\n  3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],\n  2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],\n  3590301190: [IFCGEOMETRICCURVESET],\n  812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],\n  1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],\n  1520743889: [IFCLIGHTSOURCESPOT],\n  1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],\n  219451334: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT],\n  2833995503: [IFCTWODIRECTIONREPEATFACTOR],\n  2529465313: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],\n  2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],\n  1663979128: [IFCPLANARBOX],\n  2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE],\n  759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],\n  2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],\n  1680319473: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION],\n  3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES],\n  3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],\n  478536968: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],\n  723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID],\n  2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],\n  1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],\n  3843319758: [IFCSTRUCTURALSTEELPROFILEPROPERTIES],\n  2513912981: [IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],\n  2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID],\n  230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],\n  3028897424: [IFCDIMENSIONCURVETERMINATOR],\n  4282788508: [IFCTEXTLITERALWITHEXTENT],\n  1628702193: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT],\n  2347495698: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE],\n  3288037868: [IFCPROJECTIONCURVE, IFCDIMENSIONCURVE],\n  2736907675: [IFCBOOLEANCLIPPINGRESULT],\n  4182860854: [IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE],\n  59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],\n  3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],\n  3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],\n  1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],\n  2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],\n  2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE],\n  3073041342: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT],\n  339256511: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],\n  2777663545: [IFCPLANE],\n  80994333: [IFCELECTRICALBASEPROPERTIES],\n  4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],\n  1484403080: [IFCASYMMETRICISHAPEPROFILEDEF],\n  1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP],\n  3888040117: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS],\n  2945172077: [IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK],\n  4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY],\n  3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR],\n  1683148259: [IFCRELOCCUPIESSPACES],\n  2495723537: [IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER],\n  1865459582: [IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE],\n  826625072: [IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],\n  1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],\n  1638771189: [IFCRELCONNECTSWITHECCENTRICITY],\n  2551354335: [IFCRELAGGREGATES, IFCRELNESTS],\n  693640335: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES],\n  4186316022: [IFCRELOVERRIDESPROPERTIES],\n  2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],\n  2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING],\n  3893378262: [IFCSPACETYPE],\n  3544373492: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION],\n  3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],\n  530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],\n  3689010777: [IFCSTRUCTURALPOINTREACTION],\n  3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],\n  3473067441: [IFCORDERACTION, IFCMOVE],\n  2296667514: [IFCOCCUPANT],\n  1260505505: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE],\n  1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE],\n  3732776249: [IFC2DCOMPOSITECURVE],\n  2510884976: [IFCCIRCLE, IFCELLIPSE],\n  2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],\n  3293443760: [IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM],\n  681481545: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION],\n  3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],\n  3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE],\n  1758889154: [IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],\n  1623761950: [IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER],\n  2590856083: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE],\n  2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE],\n  647756555: [IFCMECHANICALFASTENER],\n  2489546625: [IFCMECHANICALFASTENERTYPE],\n  2827207264: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],\n  2143335405: [IFCPROJECTIONELEMENT],\n  1287392070: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT],\n  3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],\n  3198132628: [IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],\n  1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],\n  1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],\n  1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],\n  2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE],\n  3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE],\n  2706460486: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],\n  3740093272: [IFCDISTRIBUTIONPORT],\n  682877961: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION],\n  1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],\n  214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],\n  1807405624: [IFCSTRUCTURALLINEARACTIONVARYING],\n  1621171031: [IFCSTRUCTURALPLANARACTIONVARYING],\n  2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT],\n  1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],\n  1967976161: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE],\n  1916977116: [IFCRATIONALBEZIERCURVE],\n  3299480353: [IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT],\n  52481810: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART],\n  2635815018: [IFCVIBRATIONISOLATORTYPE],\n  2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE],\n  1945004755: [IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],\n  3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE],\n  855621170: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE],\n  2058353004: [IFCELECTRICDISTRIBUTIONPOINT],\n  3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],\n  2391406946: [IFCWALLSTANDARDCASE]\n};\nInversePropertyDef[1] = {\n  618182010: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  411424972: [[\"ValuesReferenced\", IFCREFERENCESVALUEDOCUMENT, 1, true], [\"ValueOfComponents\", IFCAPPLIEDVALUERELATIONSHIP, 0, true], [\"IsComponentIn\", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],\n  130549933: [[\"Actors\", IFCAPPROVALACTORRELATIONSHIP, 1, true], [\"IsRelatedWith\", IFCAPPROVALRELATIONSHIP, 0, true], [\"Relates\", IFCAPPROVALRELATIONSHIP, 1, true]],\n  747523909: [[\"Contains\", IFCCLASSIFICATIONITEM, 1, true]],\n  1767535486: [[\"IsClassifiedItemIn\", IFCCLASSIFICATIONITEMRELATIONSHIP, 1, true], [\"IsClassifyingItemIn\", IFCCLASSIFICATIONITEMRELATIONSHIP, 0, true]],\n  1959218052: [[\"ClassifiedAs\", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], [\"RelatesConstraints\", IFCCONSTRAINTRELATIONSHIP, 2, true], [\"IsRelatedWith\", IFCCONSTRAINTRELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], [\"Aggregates\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], [\"IsAggregatedIn\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],\n  602808272: [[\"ValuesReferenced\", IFCREFERENCESVALUEDOCUMENT, 1, true], [\"ValueOfComponents\", IFCAPPLIEDVALUERELATIONSHIP, 0, true], [\"IsComponentIn\", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],\n  1154170062: [[\"IsPointedTo\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 1, true], [\"IsPointer\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 0, true]],\n  1648886627: [[\"ValuesReferenced\", IFCREFERENCESVALUEDOCUMENT, 1, true], [\"ValueOfComponents\", IFCAPPLIEDVALUERELATIONSHIP, 0, true], [\"IsComponentIn\", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],\n  852622518: [[\"PartOfW\", IFCGRID, 9, true], [\"PartOfV\", IFCGRID, 8, true], [\"PartOfU\", IFCGRID, 7, true], [\"HasIntersections\", IFCVIRTUALGRIDINTERSECTION, 0, true]],\n  3452421091: [[\"ReferenceIntoLibrary\", IFCLIBRARYINFORMATION, 4, true]],\n  1838606355: [[\"HasRepresentation\", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], [\"ClassifiedAs\", IFCMATERIALCLASSIFICATIONRELATIONSHIP, 1, true]],\n  248100487: [[\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n  3368373690: [[\"ClassifiedAs\", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], [\"RelatesConstraints\", IFCCONSTRAINTRELATIONSHIP, 2, true], [\"IsRelatedWith\", IFCCONSTRAINTRELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], [\"Aggregates\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], [\"IsAggregatedIn\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],\n  3701648758: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n  2251480897: [[\"ClassifiedAs\", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], [\"RelatesConstraints\", IFCCONSTRAINTRELATIONSHIP, 2, true], [\"IsRelatedWith\", IFCCONSTRAINTRELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], [\"Aggregates\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], [\"IsAggregatedIn\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],\n  4251960020: [[\"IsRelatedBy\", IFCORGANIZATIONRELATIONSHIP, 3, true], [\"Relates\", IFCORGANIZATIONRELATIONSHIP, 2, true], [\"Engages\", IFCPERSONANDORGANIZATION, 1, true]],\n  2077209135: [[\"EngagedIn\", IFCPERSONANDORGANIZATION, 0, true]],\n  2483315170: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2226359599: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  3355820592: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  2598011224: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  2044713172: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2093928680: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  931644368: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  3252649465: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2405470396: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  825690147: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  1076942058: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  3377609919: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true]],\n  3008791417: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1660063152: [[\"MapUsage\", IFCMAPPEDITEM, 0, true]],\n  3982875396: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  4240577450: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  3692461612: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  2830218821: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  3958052878: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3049322572: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  531007025: [[\"OfTable\", IFCTABLE, 1, false]],\n  912023232: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  280115917: [[\"AnnotatedSurface\", IFCANNOTATIONSURFACE, 1, true]],\n  1742049831: [[\"AnnotatedSurface\", IFCANNOTATIONSURFACE, 1, true]],\n  2552916305: [[\"AnnotatedSurface\", IFCANNOTATIONSURFACE, 1, true]],\n  3101149627: [[\"DocumentedBy\", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],\n  1377556343: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1735638870: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  2799835756: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1907098498: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2442683028: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  962685235: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3612888222: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2297822566: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2542286263: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  370225590: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3732053477: [[\"ReferenceToDocument\", IFCDOCUMENTINFORMATION, 3, true]],\n  3900360178: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  476780140: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2556980723: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1809719519: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  803316827: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3008276851: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3448662350: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]],\n  2453401579: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4142052618: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]],\n  3590301190: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  178086475: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n  812098782: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3741457305: [[\"DocumentedBy\", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],\n  1402838566: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  125510826: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2604431987: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4266656042: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1520743889: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3422422726: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2624227202: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n  1008929658: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2347385850: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  219451334: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n  2833995503: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2665983363: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1029017970: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2519244187: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3021840470: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2004835150: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1663979128: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2067069095: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4022376103: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1423911732: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2924175390: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2775532180: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  673634403: [[\"ShapeOfProduct\", IFCPRODUCT, 6, true], [\"HasShapeAspects\", IFCSHAPEASPECT, 4, true]],\n  871118103: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  1680319473: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n  4166981789: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  2752243245: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  941946838: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  3357820518: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  3650150729: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  110355661: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n  3413951693: [[\"DocumentedBy\", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],\n  3765753017: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  1509187699: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2411513650: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  4124623270: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  723233188: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2485662743: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  1202362311: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  390701378: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  2233826070: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2513912981: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2247615214: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1260650574: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  230924584: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3028897424: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4282788508: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3124975700: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1345879162: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1628702193: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2347495698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1417489154: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2759199220: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  336235671: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  512836454: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  1299126871: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3288037868: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  669184980: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2265737646: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1302238472: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4261334040: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3125803723: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2740243338: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2736907675: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4182860854: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2581212453: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2713105998: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1123145078: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  59481748: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3749851601: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3486308946: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3331915920: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1416205885: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2205249479: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2485617015: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n  2506170314: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2147822146: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2601014836: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2827736869: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  693772133: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  606661476: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"AnnotatedBySymbols\", IFCTERMINATORSYMBOL, 3, true]],\n  4054601972: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  32440307: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2963535650: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  1714330368: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  526551008: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3073041342: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n  1472233963: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1883228015: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  339256511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2777663545: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  80994333: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  477187591: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2047409740: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  374418227: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4203026998: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  315944413: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3455213021: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  4238390223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1268542332: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  987898635: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1281925730: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1425443689: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3888040117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true]],\n  3388369263: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3505215534: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3566463478: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  603570806: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  220341763: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2945172077: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n  4208778838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  103090709: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true]],\n  4194566429: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1451395588: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  3219374653: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2798486643: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3454111270: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2914609552: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1856042241: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4158566097: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3626867408: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2706606064: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],\n  3893378262: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  451544542: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3544373492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n  3136571912: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],\n  530289379: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  3689010777: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], [\"Causes\", IFCSTRUCTURALACTION, 10, true]],\n  3979015343: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  2218152070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  4070609034: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n  2028607225: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2809605785: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4124788165: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1580310250: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3473067441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n  2097647324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2296667514: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n  1674181508: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1334484129: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3649129432: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1260505505: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4031249490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],\n  1950629157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3124254112: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],\n  300633059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3732776249: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2510884976: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2559216714: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  3293443760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3895139033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1419761937: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1916426348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3295246426: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1457835157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  681481545: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n  3256556792: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3849074793: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  360485395: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n  1758889154: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  4123344466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1623761950: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2590856083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1704287377: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2107101300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1962604670: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3272907226: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3174744832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3390157468: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  807026263: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3737207727: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  647756555: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2489546625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2827207264: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2143335405: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n  1287392070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  3907093117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3198132628: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3815607619: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1482959167: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1834744321: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1339347760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2297155007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3009222698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  263784265: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  814719939: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  200128114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3009204131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2706460486: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n  1251058090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1806887404: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2391368822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n  4288270099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3827777499: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1051575348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1161773419: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2506943328: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n  377706215: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2108223431: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3181161470: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  977012517: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1916936684: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n  4143007308: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n  3588315303: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false], [\"HasFillings\", IFCRELFILLSELEMENT, 4, true]],\n  3425660407: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n  2837617999: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2382730787: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3327091369: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  804291784: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  4231323485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  4017108033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3724593414: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3740093272: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, false], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n  2744685151: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n  2904328755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3642467123: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3651124850: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n  1842657554: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2250791053: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3248260540: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n  2893384427: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2324767716: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1768891740: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3517283431: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true], [\"ScheduleTimeControlAssigned\", IFCRELASSIGNSTASKS, 7, false]],\n  4105383287: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  4097777520: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],\n  2533589738: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3856911033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"HasCoverings\", IFCRELCOVERSSPACES, 4, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n  1305183839: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  652456506: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true], [\"HasInteractionReqsFrom\", IFCRELINTERACTIONREQUIREMENTS, 7, true], [\"HasInteractionReqsTo\", IFCRELINTERACTIONREQUIREMENTS, 8, true]],\n  3812236995: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3112655638: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1039846685: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  682877961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n  1179482911: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  4243806635: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  214636428: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  2445595289: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  1807405624: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n  1721250024: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n  1252848954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n  1621171031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n  3987759626: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n  2082059205: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n  734778138: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  1235345126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], [\"Causes\", IFCSTRUCTURALACTION, 10, true]],\n  2986769608: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"ResultGroupFor\", IFCSTRUCTURALANALYSISMODEL, 8, true]],\n  1975003073: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  148013059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  2315554128: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2254336722: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  5716631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1637806684: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1692211062: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1620046519: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3593883385: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1600972822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1911125066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  728799441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2769231204: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1898987631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1133259667: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1028945134: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  4218914973: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3342526732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1033361043: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n  1213861670: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3821786052: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1411407467: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3352864051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1871374353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2470393545: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n  3460190687: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n  1967976161: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  819618141: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1916977116: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  231477066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3299480353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  52481810: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2979338954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1095909175: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1909888760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  395041908: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3293546465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1285652485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2951183804: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2611217952: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2301859152: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  843113511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3850581409: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2816379211: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2188551683: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n  1163958913: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3898045240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1060000209: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  488727124: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  335055490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2954562838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1973544240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"CoversSpaces\", IFCRELCOVERSSPACES, 5, true], [\"Covers\", IFCRELCOVERSBLDGELEMENTS, 5, true]],\n  3495092785: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3961806047: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  4147604152: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n  1335981549: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2635815018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1599208980: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2063403501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1945004755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3040386961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3041715199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, false], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n  395920057: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  869906466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3760055223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2030761528: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  855621170: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  663422040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3277789161: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1534661035: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1365060375: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1217240411: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  712377611: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1634875225: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  857184966: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1658829314: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  346874300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1810631287: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  4222183408: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2058353004: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4278956645: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4037862832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3132237377: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  987401354: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  707683696: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2223149337: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3508470533: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  900683007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1073191201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1687234759: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3171933400: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2262370178: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3024970846: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3283111854: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3055160366: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3027567501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2320036040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2016517767: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  1376911519: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  1783015770: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1529196076: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  331165859: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  4252922144: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2515109513: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  3824725483: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2347447852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3313531582: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  2391406946: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3512223829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  3304561284: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2874132201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  3001207471: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  753842376: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2454782716: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  578613899: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n  1052013943: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1062813311: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  3700593921: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  979691226: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]]\n};\nConstructors[1] = {\n  3630933823: (ID, a) => new IFC2X3.IfcActorRole(ID, a[0], a[1], a[2]),\n  618182010: (ID, a) => new IFC2X3.IfcAddress(ID, a[0], a[1], a[2]),\n  639542469: (ID, a) => new IFC2X3.IfcApplication(ID, a[0], a[1], a[2], a[3]),\n  411424972: (ID, a) => new IFC2X3.IfcAppliedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1110488051: (ID, a) => new IFC2X3.IfcAppliedValueRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  130549933: (ID, a) => new IFC2X3.IfcApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2080292479: (ID, a) => new IFC2X3.IfcApprovalActorRelationship(ID, a[0], a[1], a[2]),\n  390851274: (ID, a) => new IFC2X3.IfcApprovalPropertyRelationship(ID, a[0], a[1]),\n  3869604511: (ID, a) => new IFC2X3.IfcApprovalRelationship(ID, a[0], a[1], a[2], a[3]),\n  4037036970: (ID, a) => new IFC2X3.IfcBoundaryCondition(ID, a[0]),\n  1560379544: (ID, a) => new IFC2X3.IfcBoundaryEdgeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3367102660: (ID, a) => new IFC2X3.IfcBoundaryFaceCondition(ID, a[0], a[1], a[2], a[3]),\n  1387855156: (ID, a) => new IFC2X3.IfcBoundaryNodeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2069777674: (ID, a) => new IFC2X3.IfcBoundaryNodeConditionWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  622194075: (ID, a) => new IFC2X3.IfcCalendarDate(ID, a[0], a[1], a[2]),\n  747523909: (ID, a) => new IFC2X3.IfcClassification(ID, a[0], a[1], a[2], a[3]),\n  1767535486: (ID, a) => new IFC2X3.IfcClassificationItem(ID, a[0], a[1], a[2]),\n  1098599126: (ID, a) => new IFC2X3.IfcClassificationItemRelationship(ID, a[0], a[1]),\n  938368621: (ID, a) => new IFC2X3.IfcClassificationNotation(ID, a[0]),\n  3639012971: (ID, a) => new IFC2X3.IfcClassificationNotationFacet(ID, a[0]),\n  3264961684: (ID, a) => new IFC2X3.IfcColourSpecification(ID, a[0]),\n  2859738748: (ID, _) => new IFC2X3.IfcConnectionGeometry(ID),\n  2614616156: (ID, a) => new IFC2X3.IfcConnectionPointGeometry(ID, a[0], a[1]),\n  4257277454: (ID, a) => new IFC2X3.IfcConnectionPortGeometry(ID, a[0], a[1], a[2]),\n  2732653382: (ID, a) => new IFC2X3.IfcConnectionSurfaceGeometry(ID, a[0], a[1]),\n  1959218052: (ID, a) => new IFC2X3.IfcConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1658513725: (ID, a) => new IFC2X3.IfcConstraintAggregationRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  613356794: (ID, a) => new IFC2X3.IfcConstraintClassificationRelationship(ID, a[0], a[1]),\n  347226245: (ID, a) => new IFC2X3.IfcConstraintRelationship(ID, a[0], a[1], a[2], a[3]),\n  1065062679: (ID, a) => new IFC2X3.IfcCoordinatedUniversalTimeOffset(ID, a[0], a[1], a[2]),\n  602808272: (ID, a) => new IFC2X3.IfcCostValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  539742890: (ID, a) => new IFC2X3.IfcCurrencyRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  1105321065: (ID, a) => new IFC2X3.IfcCurveStyleFont(ID, a[0], a[1]),\n  2367409068: (ID, a) => new IFC2X3.IfcCurveStyleFontAndScaling(ID, a[0], a[1], a[2]),\n  3510044353: (ID, a) => new IFC2X3.IfcCurveStyleFontPattern(ID, a[0], a[1]),\n  1072939445: (ID, a) => new IFC2X3.IfcDateAndTime(ID, a[0], a[1]),\n  1765591967: (ID, a) => new IFC2X3.IfcDerivedUnit(ID, a[0], a[1], a[2]),\n  1045800335: (ID, a) => new IFC2X3.IfcDerivedUnitElement(ID, a[0], a[1]),\n  2949456006: (ID, a) => new IFC2X3.IfcDimensionalExponents(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1376555844: (ID, a) => new IFC2X3.IfcDocumentElectronicFormat(ID, a[0], a[1], a[2]),\n  1154170062: (ID, a) => new IFC2X3.IfcDocumentInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  770865208: (ID, a) => new IFC2X3.IfcDocumentInformationRelationship(ID, a[0], a[1], a[2]),\n  3796139169: (ID, a) => new IFC2X3.IfcDraughtingCalloutRelationship(ID, a[0], a[1], a[2], a[3]),\n  1648886627: (ID, a) => new IFC2X3.IfcEnvironmentalImpactValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3200245327: (ID, a) => new IFC2X3.IfcExternalReference(ID, a[0], a[1], a[2]),\n  2242383968: (ID, a) => new IFC2X3.IfcExternallyDefinedHatchStyle(ID, a[0], a[1], a[2]),\n  1040185647: (ID, a) => new IFC2X3.IfcExternallyDefinedSurfaceStyle(ID, a[0], a[1], a[2]),\n  3207319532: (ID, a) => new IFC2X3.IfcExternallyDefinedSymbol(ID, a[0], a[1], a[2]),\n  3548104201: (ID, a) => new IFC2X3.IfcExternallyDefinedTextFont(ID, a[0], a[1], a[2]),\n  852622518: (ID, a) => new IFC2X3.IfcGridAxis(ID, a[0], a[1], a[2]),\n  3020489413: (ID, a) => new IFC2X3.IfcIrregularTimeSeriesValue(ID, a[0], a[1]),\n  2655187982: (ID, a) => new IFC2X3.IfcLibraryInformation(ID, a[0], a[1], a[2], a[3], a[4]),\n  3452421091: (ID, a) => new IFC2X3.IfcLibraryReference(ID, a[0], a[1], a[2]),\n  4162380809: (ID, a) => new IFC2X3.IfcLightDistributionData(ID, a[0], a[1], a[2]),\n  1566485204: (ID, a) => new IFC2X3.IfcLightIntensityDistribution(ID, a[0], a[1]),\n  30780891: (ID, a) => new IFC2X3.IfcLocalTime(ID, a[0], a[1], a[2], a[3], a[4]),\n  1838606355: (ID, a) => new IFC2X3.IfcMaterial(ID, a[0]),\n  1847130766: (ID, a) => new IFC2X3.IfcMaterialClassificationRelationship(ID, a[0], a[1]),\n  248100487: (ID, a) => new IFC2X3.IfcMaterialLayer(ID, a[0], a[1], a[2]),\n  3303938423: (ID, a) => new IFC2X3.IfcMaterialLayerSet(ID, a[0], a[1]),\n  1303795690: (ID, a) => new IFC2X3.IfcMaterialLayerSetUsage(ID, a[0], a[1], a[2], a[3]),\n  2199411900: (ID, a) => new IFC2X3.IfcMaterialList(ID, a[0]),\n  3265635763: (ID, a) => new IFC2X3.IfcMaterialProperties(ID, a[0]),\n  2597039031: (ID, a) => new IFC2X3.IfcMeasureWithUnit(ID, a[0], a[1]),\n  4256014907: (ID, a) => new IFC2X3.IfcMechanicalMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  677618848: (ID, a) => new IFC2X3.IfcMechanicalSteelMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  3368373690: (ID, a) => new IFC2X3.IfcMetric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2706619895: (ID, a) => new IFC2X3.IfcMonetaryUnit(ID, a[0]),\n  1918398963: (ID, a) => new IFC2X3.IfcNamedUnit(ID, a[0], a[1]),\n  3701648758: (ID, _) => new IFC2X3.IfcObjectPlacement(ID),\n  2251480897: (ID, a) => new IFC2X3.IfcObjective(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1227763645: (ID, a) => new IFC2X3.IfcOpticalMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4251960020: (ID, a) => new IFC2X3.IfcOrganization(ID, a[0], a[1], a[2], a[3], a[4]),\n  1411181986: (ID, a) => new IFC2X3.IfcOrganizationRelationship(ID, a[0], a[1], a[2], a[3]),\n  1207048766: (ID, a) => new IFC2X3.IfcOwnerHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2077209135: (ID, a) => new IFC2X3.IfcPerson(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  101040310: (ID, a) => new IFC2X3.IfcPersonAndOrganization(ID, a[0], a[1], a[2]),\n  2483315170: (ID, a) => new IFC2X3.IfcPhysicalQuantity(ID, a[0], a[1]),\n  2226359599: (ID, a) => new IFC2X3.IfcPhysicalSimpleQuantity(ID, a[0], a[1], a[2]),\n  3355820592: (ID, a) => new IFC2X3.IfcPostalAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3727388367: (ID, a) => new IFC2X3.IfcPreDefinedItem(ID, a[0]),\n  990879717: (ID, a) => new IFC2X3.IfcPreDefinedSymbol(ID, a[0]),\n  3213052703: (ID, a) => new IFC2X3.IfcPreDefinedTerminatorSymbol(ID, a[0]),\n  1775413392: (ID, a) => new IFC2X3.IfcPreDefinedTextFont(ID, a[0]),\n  2022622350: (ID, a) => new IFC2X3.IfcPresentationLayerAssignment(ID, a[0], a[1], a[2], a[3]),\n  1304840413: (ID, a) => new IFC2X3.IfcPresentationLayerWithStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3119450353: (ID, a) => new IFC2X3.IfcPresentationStyle(ID, a[0]),\n  2417041796: (ID, a) => new IFC2X3.IfcPresentationStyleAssignment(ID, a[0]),\n  2095639259: (ID, a) => new IFC2X3.IfcProductRepresentation(ID, a[0], a[1], a[2]),\n  2267347899: (ID, a) => new IFC2X3.IfcProductsOfCombustionProperties(ID, a[0], a[1], a[2], a[3], a[4]),\n  3958567839: (ID, a) => new IFC2X3.IfcProfileDef(ID, a[0], a[1]),\n  2802850158: (ID, a) => new IFC2X3.IfcProfileProperties(ID, a[0], a[1]),\n  2598011224: (ID, a) => new IFC2X3.IfcProperty(ID, a[0], a[1]),\n  3896028662: (ID, a) => new IFC2X3.IfcPropertyConstraintRelationship(ID, a[0], a[1], a[2], a[3]),\n  148025276: (ID, a) => new IFC2X3.IfcPropertyDependencyRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  3710013099: (ID, a) => new IFC2X3.IfcPropertyEnumeration(ID, a[0], a[1], a[2]),\n  2044713172: (ID, a) => new IFC2X3.IfcQuantityArea(ID, a[0], a[1], a[2], a[3]),\n  2093928680: (ID, a) => new IFC2X3.IfcQuantityCount(ID, a[0], a[1], a[2], a[3]),\n  931644368: (ID, a) => new IFC2X3.IfcQuantityLength(ID, a[0], a[1], a[2], a[3]),\n  3252649465: (ID, a) => new IFC2X3.IfcQuantityTime(ID, a[0], a[1], a[2], a[3]),\n  2405470396: (ID, a) => new IFC2X3.IfcQuantityVolume(ID, a[0], a[1], a[2], a[3]),\n  825690147: (ID, a) => new IFC2X3.IfcQuantityWeight(ID, a[0], a[1], a[2], a[3]),\n  2692823254: (ID, a) => new IFC2X3.IfcReferencesValueDocument(ID, a[0], a[1], a[2], a[3]),\n  1580146022: (ID, a) => new IFC2X3.IfcReinforcementBarProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1222501353: (ID, a) => new IFC2X3.IfcRelaxation(ID, a[0], a[1]),\n  1076942058: (ID, a) => new IFC2X3.IfcRepresentation(ID, a[0], a[1], a[2], a[3]),\n  3377609919: (ID, a) => new IFC2X3.IfcRepresentationContext(ID, a[0], a[1]),\n  3008791417: (ID, _) => new IFC2X3.IfcRepresentationItem(ID),\n  1660063152: (ID, a) => new IFC2X3.IfcRepresentationMap(ID, a[0], a[1]),\n  3679540991: (ID, a) => new IFC2X3.IfcRibPlateProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2341007311: (ID, a) => new IFC2X3.IfcRoot(ID, a[0], a[1], a[2], a[3]),\n  448429030: (ID, a) => new IFC2X3.IfcSIUnit(ID, a[0], a[1], a[2]),\n  2042790032: (ID, a) => new IFC2X3.IfcSectionProperties(ID, a[0], a[1], a[2]),\n  4165799628: (ID, a) => new IFC2X3.IfcSectionReinforcementProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  867548509: (ID, a) => new IFC2X3.IfcShapeAspect(ID, a[0], a[1], a[2], a[3], a[4]),\n  3982875396: (ID, a) => new IFC2X3.IfcShapeModel(ID, a[0], a[1], a[2], a[3]),\n  4240577450: (ID, a) => new IFC2X3.IfcShapeRepresentation(ID, a[0], a[1], a[2], a[3]),\n  3692461612: (ID, a) => new IFC2X3.IfcSimpleProperty(ID, a[0], a[1]),\n  2273995522: (ID, a) => new IFC2X3.IfcStructuralConnectionCondition(ID, a[0]),\n  2162789131: (ID, a) => new IFC2X3.IfcStructuralLoad(ID, a[0]),\n  2525727697: (ID, a) => new IFC2X3.IfcStructuralLoadStatic(ID, a[0]),\n  3408363356: (ID, a) => new IFC2X3.IfcStructuralLoadTemperature(ID, a[0], a[1], a[2], a[3]),\n  2830218821: (ID, a) => new IFC2X3.IfcStyleModel(ID, a[0], a[1], a[2], a[3]),\n  3958052878: (ID, a) => new IFC2X3.IfcStyledItem(ID, a[0], a[1], a[2]),\n  3049322572: (ID, a) => new IFC2X3.IfcStyledRepresentation(ID, a[0], a[1], a[2], a[3]),\n  1300840506: (ID, a) => new IFC2X3.IfcSurfaceStyle(ID, a[0], a[1], a[2]),\n  3303107099: (ID, a) => new IFC2X3.IfcSurfaceStyleLighting(ID, a[0], a[1], a[2], a[3]),\n  1607154358: (ID, a) => new IFC2X3.IfcSurfaceStyleRefraction(ID, a[0], a[1]),\n  846575682: (ID, a) => new IFC2X3.IfcSurfaceStyleShading(ID, a[0]),\n  1351298697: (ID, a) => new IFC2X3.IfcSurfaceStyleWithTextures(ID, a[0]),\n  626085974: (ID, a) => new IFC2X3.IfcSurfaceTexture(ID, a[0], a[1], a[2], a[3]),\n  1290481447: (ID, a) => new IFC2X3.IfcSymbolStyle(ID, a[0], a[1]),\n  985171141: (ID, a) => new IFC2X3.IfcTable(ID, a[0], a[1]),\n  531007025: (ID, a) => new IFC2X3.IfcTableRow(ID, a[0], a[1]),\n  912023232: (ID, a) => new IFC2X3.IfcTelecomAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1447204868: (ID, a) => new IFC2X3.IfcTextStyle(ID, a[0], a[1], a[2], a[3]),\n  1983826977: (ID, a) => new IFC2X3.IfcTextStyleFontModel(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2636378356: (ID, a) => new IFC2X3.IfcTextStyleForDefinedFont(ID, a[0], a[1]),\n  1640371178: (ID, a) => new IFC2X3.IfcTextStyleTextModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1484833681: (ID, a) => new IFC2X3.IfcTextStyleWithBoxCharacteristics(ID, a[0], a[1], a[2], a[3], a[4]),\n  280115917: (ID, _) => new IFC2X3.IfcTextureCoordinate(ID),\n  1742049831: (ID, a) => new IFC2X3.IfcTextureCoordinateGenerator(ID, a[0], a[1]),\n  2552916305: (ID, a) => new IFC2X3.IfcTextureMap(ID, a[0]),\n  1210645708: (ID, a) => new IFC2X3.IfcTextureVertex(ID, a[0]),\n  3317419933: (ID, a) => new IFC2X3.IfcThermalMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4]),\n  3101149627: (ID, a) => new IFC2X3.IfcTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1718945513: (ID, a) => new IFC2X3.IfcTimeSeriesReferenceRelationship(ID, a[0], a[1]),\n  581633288: (ID, a) => new IFC2X3.IfcTimeSeriesValue(ID, a[0]),\n  1377556343: (ID, _) => new IFC2X3.IfcTopologicalRepresentationItem(ID),\n  1735638870: (ID, a) => new IFC2X3.IfcTopologyRepresentation(ID, a[0], a[1], a[2], a[3]),\n  180925521: (ID, a) => new IFC2X3.IfcUnitAssignment(ID, a[0]),\n  2799835756: (ID, _) => new IFC2X3.IfcVertex(ID),\n  3304826586: (ID, a) => new IFC2X3.IfcVertexBasedTextureMap(ID, a[0], a[1]),\n  1907098498: (ID, a) => new IFC2X3.IfcVertexPoint(ID, a[0]),\n  891718957: (ID, a) => new IFC2X3.IfcVirtualGridIntersection(ID, a[0], a[1]),\n  1065908215: (ID, a) => new IFC2X3.IfcWaterProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2442683028: (ID, a) => new IFC2X3.IfcAnnotationOccurrence(ID, a[0], a[1], a[2]),\n  962685235: (ID, a) => new IFC2X3.IfcAnnotationSurfaceOccurrence(ID, a[0], a[1], a[2]),\n  3612888222: (ID, a) => new IFC2X3.IfcAnnotationSymbolOccurrence(ID, a[0], a[1], a[2]),\n  2297822566: (ID, a) => new IFC2X3.IfcAnnotationTextOccurrence(ID, a[0], a[1], a[2]),\n  3798115385: (ID, a) => new IFC2X3.IfcArbitraryClosedProfileDef(ID, a[0], a[1], a[2]),\n  1310608509: (ID, a) => new IFC2X3.IfcArbitraryOpenProfileDef(ID, a[0], a[1], a[2]),\n  2705031697: (ID, a) => new IFC2X3.IfcArbitraryProfileDefWithVoids(ID, a[0], a[1], a[2], a[3]),\n  616511568: (ID, a) => new IFC2X3.IfcBlobTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3150382593: (ID, a) => new IFC2X3.IfcCenterLineProfileDef(ID, a[0], a[1], a[2], a[3]),\n  647927063: (ID, a) => new IFC2X3.IfcClassificationReference(ID, a[0], a[1], a[2], a[3]),\n  776857604: (ID, a) => new IFC2X3.IfcColourRgb(ID, a[0], a[1], a[2], a[3]),\n  2542286263: (ID, a) => new IFC2X3.IfcComplexProperty(ID, a[0], a[1], a[2], a[3]),\n  1485152156: (ID, a) => new IFC2X3.IfcCompositeProfileDef(ID, a[0], a[1], a[2], a[3]),\n  370225590: (ID, a) => new IFC2X3.IfcConnectedFaceSet(ID, a[0]),\n  1981873012: (ID, a) => new IFC2X3.IfcConnectionCurveGeometry(ID, a[0], a[1]),\n  45288368: (ID, a) => new IFC2X3.IfcConnectionPointEccentricity(ID, a[0], a[1], a[2], a[3], a[4]),\n  3050246964: (ID, a) => new IFC2X3.IfcContextDependentUnit(ID, a[0], a[1], a[2]),\n  2889183280: (ID, a) => new IFC2X3.IfcConversionBasedUnit(ID, a[0], a[1], a[2], a[3]),\n  3800577675: (ID, a) => new IFC2X3.IfcCurveStyle(ID, a[0], a[1], a[2], a[3]),\n  3632507154: (ID, a) => new IFC2X3.IfcDerivedProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  2273265877: (ID, a) => new IFC2X3.IfcDimensionCalloutRelationship(ID, a[0], a[1], a[2], a[3]),\n  1694125774: (ID, a) => new IFC2X3.IfcDimensionPair(ID, a[0], a[1], a[2], a[3]),\n  3732053477: (ID, a) => new IFC2X3.IfcDocumentReference(ID, a[0], a[1], a[2]),\n  4170525392: (ID, a) => new IFC2X3.IfcDraughtingPreDefinedTextFont(ID, a[0]),\n  3900360178: (ID, a) => new IFC2X3.IfcEdge(ID, a[0], a[1]),\n  476780140: (ID, a) => new IFC2X3.IfcEdgeCurve(ID, a[0], a[1], a[2], a[3]),\n  1860660968: (ID, a) => new IFC2X3.IfcExtendedMaterialProperties(ID, a[0], a[1], a[2], a[3]),\n  2556980723: (ID, a) => new IFC2X3.IfcFace(ID, a[0]),\n  1809719519: (ID, a) => new IFC2X3.IfcFaceBound(ID, a[0], a[1]),\n  803316827: (ID, a) => new IFC2X3.IfcFaceOuterBound(ID, a[0], a[1]),\n  3008276851: (ID, a) => new IFC2X3.IfcFaceSurface(ID, a[0], a[1], a[2]),\n  4219587988: (ID, a) => new IFC2X3.IfcFailureConnectionCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  738692330: (ID, a) => new IFC2X3.IfcFillAreaStyle(ID, a[0], a[1]),\n  3857492461: (ID, a) => new IFC2X3.IfcFuelProperties(ID, a[0], a[1], a[2], a[3], a[4]),\n  803998398: (ID, a) => new IFC2X3.IfcGeneralMaterialProperties(ID, a[0], a[1], a[2], a[3]),\n  1446786286: (ID, a) => new IFC2X3.IfcGeneralProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3448662350: (ID, a) => new IFC2X3.IfcGeometricRepresentationContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2453401579: (ID, _) => new IFC2X3.IfcGeometricRepresentationItem(ID),\n  4142052618: (ID, a) => new IFC2X3.IfcGeometricRepresentationSubContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3590301190: (ID, a) => new IFC2X3.IfcGeometricSet(ID, a[0]),\n  178086475: (ID, a) => new IFC2X3.IfcGridPlacement(ID, a[0], a[1]),\n  812098782: (ID, a) => new IFC2X3.IfcHalfSpaceSolid(ID, a[0], a[1]),\n  2445078500: (ID, a) => new IFC2X3.IfcHygroscopicMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3905492369: (ID, a) => new IFC2X3.IfcImageTexture(ID, a[0], a[1], a[2], a[3], a[4]),\n  3741457305: (ID, a) => new IFC2X3.IfcIrregularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1402838566: (ID, a) => new IFC2X3.IfcLightSource(ID, a[0], a[1], a[2], a[3]),\n  125510826: (ID, a) => new IFC2X3.IfcLightSourceAmbient(ID, a[0], a[1], a[2], a[3]),\n  2604431987: (ID, a) => new IFC2X3.IfcLightSourceDirectional(ID, a[0], a[1], a[2], a[3], a[4]),\n  4266656042: (ID, a) => new IFC2X3.IfcLightSourceGoniometric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1520743889: (ID, a) => new IFC2X3.IfcLightSourcePositional(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3422422726: (ID, a) => new IFC2X3.IfcLightSourceSpot(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  2624227202: (ID, a) => new IFC2X3.IfcLocalPlacement(ID, a[0], a[1]),\n  1008929658: (ID, _) => new IFC2X3.IfcLoop(ID),\n  2347385850: (ID, a) => new IFC2X3.IfcMappedItem(ID, a[0], a[1]),\n  2022407955: (ID, a) => new IFC2X3.IfcMaterialDefinitionRepresentation(ID, a[0], a[1], a[2], a[3]),\n  1430189142: (ID, a) => new IFC2X3.IfcMechanicalConcreteMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  219451334: (ID, a) => new IFC2X3.IfcObjectDefinition(ID, a[0], a[1], a[2], a[3]),\n  2833995503: (ID, a) => new IFC2X3.IfcOneDirectionRepeatFactor(ID, a[0]),\n  2665983363: (ID, a) => new IFC2X3.IfcOpenShell(ID, a[0]),\n  1029017970: (ID, a) => new IFC2X3.IfcOrientedEdge(ID, a[0], a[1]),\n  2529465313: (ID, a) => new IFC2X3.IfcParameterizedProfileDef(ID, a[0], a[1], a[2]),\n  2519244187: (ID, a) => new IFC2X3.IfcPath(ID, a[0]),\n  3021840470: (ID, a) => new IFC2X3.IfcPhysicalComplexQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  597895409: (ID, a) => new IFC2X3.IfcPixelTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2004835150: (ID, a) => new IFC2X3.IfcPlacement(ID, a[0]),\n  1663979128: (ID, a) => new IFC2X3.IfcPlanarExtent(ID, a[0], a[1]),\n  2067069095: (ID, _) => new IFC2X3.IfcPoint(ID),\n  4022376103: (ID, a) => new IFC2X3.IfcPointOnCurve(ID, a[0], a[1]),\n  1423911732: (ID, a) => new IFC2X3.IfcPointOnSurface(ID, a[0], a[1], a[2]),\n  2924175390: (ID, a) => new IFC2X3.IfcPolyLoop(ID, a[0]),\n  2775532180: (ID, a) => new IFC2X3.IfcPolygonalBoundedHalfSpace(ID, a[0], a[1], a[2], a[3]),\n  759155922: (ID, a) => new IFC2X3.IfcPreDefinedColour(ID, a[0]),\n  2559016684: (ID, a) => new IFC2X3.IfcPreDefinedCurveFont(ID, a[0]),\n  433424934: (ID, a) => new IFC2X3.IfcPreDefinedDimensionSymbol(ID, a[0]),\n  179317114: (ID, a) => new IFC2X3.IfcPreDefinedPointMarkerSymbol(ID, a[0]),\n  673634403: (ID, a) => new IFC2X3.IfcProductDefinitionShape(ID, a[0], a[1], a[2]),\n  871118103: (ID, a) => new IFC2X3.IfcPropertyBoundedValue(ID, a[0], a[1], a[2], a[3], a[4]),\n  1680319473: (ID, a) => new IFC2X3.IfcPropertyDefinition(ID, a[0], a[1], a[2], a[3]),\n  4166981789: (ID, a) => new IFC2X3.IfcPropertyEnumeratedValue(ID, a[0], a[1], a[2], a[3]),\n  2752243245: (ID, a) => new IFC2X3.IfcPropertyListValue(ID, a[0], a[1], a[2], a[3]),\n  941946838: (ID, a) => new IFC2X3.IfcPropertyReferenceValue(ID, a[0], a[1], a[2], a[3]),\n  3357820518: (ID, a) => new IFC2X3.IfcPropertySetDefinition(ID, a[0], a[1], a[2], a[3]),\n  3650150729: (ID, a) => new IFC2X3.IfcPropertySingleValue(ID, a[0], a[1], a[2], a[3]),\n  110355661: (ID, a) => new IFC2X3.IfcPropertyTableValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3615266464: (ID, a) => new IFC2X3.IfcRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  3413951693: (ID, a) => new IFC2X3.IfcRegularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3765753017: (ID, a) => new IFC2X3.IfcReinforcementDefinitionProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  478536968: (ID, a) => new IFC2X3.IfcRelationship(ID, a[0], a[1], a[2], a[3]),\n  2778083089: (ID, a) => new IFC2X3.IfcRoundedRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1509187699: (ID, a) => new IFC2X3.IfcSectionedSpine(ID, a[0], a[1], a[2]),\n  2411513650: (ID, a) => new IFC2X3.IfcServiceLifeFactor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4124623270: (ID, a) => new IFC2X3.IfcShellBasedSurfaceModel(ID, a[0]),\n  2609359061: (ID, a) => new IFC2X3.IfcSlippageConnectionCondition(ID, a[0], a[1], a[2], a[3]),\n  723233188: (ID, _) => new IFC2X3.IfcSolidModel(ID),\n  2485662743: (ID, a) => new IFC2X3.IfcSoundProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1202362311: (ID, a) => new IFC2X3.IfcSoundValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  390701378: (ID, a) => new IFC2X3.IfcSpaceThermalLoadProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  1595516126: (ID, a) => new IFC2X3.IfcStructuralLoadLinearForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2668620305: (ID, a) => new IFC2X3.IfcStructuralLoadPlanarForce(ID, a[0], a[1], a[2], a[3]),\n  2473145415: (ID, a) => new IFC2X3.IfcStructuralLoadSingleDisplacement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1973038258: (ID, a) => new IFC2X3.IfcStructuralLoadSingleDisplacementDistortion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1597423693: (ID, a) => new IFC2X3.IfcStructuralLoadSingleForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1190533807: (ID, a) => new IFC2X3.IfcStructuralLoadSingleForceWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3843319758: (ID, a) => new IFC2X3.IfcStructuralProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]),\n  3653947884: (ID, a) => new IFC2X3.IfcStructuralSteelProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23], a[24], a[25], a[26]),\n  2233826070: (ID, a) => new IFC2X3.IfcSubedge(ID, a[0], a[1], a[2]),\n  2513912981: (ID, _) => new IFC2X3.IfcSurface(ID),\n  1878645084: (ID, a) => new IFC2X3.IfcSurfaceStyleRendering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2247615214: (ID, a) => new IFC2X3.IfcSweptAreaSolid(ID, a[0], a[1]),\n  1260650574: (ID, a) => new IFC2X3.IfcSweptDiskSolid(ID, a[0], a[1], a[2], a[3], a[4]),\n  230924584: (ID, a) => new IFC2X3.IfcSweptSurface(ID, a[0], a[1]),\n  3071757647: (ID, a) => new IFC2X3.IfcTShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  3028897424: (ID, a) => new IFC2X3.IfcTerminatorSymbol(ID, a[0], a[1], a[2], a[3]),\n  4282788508: (ID, a) => new IFC2X3.IfcTextLiteral(ID, a[0], a[1], a[2]),\n  3124975700: (ID, a) => new IFC2X3.IfcTextLiteralWithExtent(ID, a[0], a[1], a[2], a[3], a[4]),\n  2715220739: (ID, a) => new IFC2X3.IfcTrapeziumProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1345879162: (ID, a) => new IFC2X3.IfcTwoDirectionRepeatFactor(ID, a[0], a[1]),\n  1628702193: (ID, a) => new IFC2X3.IfcTypeObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2347495698: (ID, a) => new IFC2X3.IfcTypeProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  427810014: (ID, a) => new IFC2X3.IfcUShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1417489154: (ID, a) => new IFC2X3.IfcVector(ID, a[0], a[1]),\n  2759199220: (ID, a) => new IFC2X3.IfcVertexLoop(ID, a[0]),\n  336235671: (ID, a) => new IFC2X3.IfcWindowLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  512836454: (ID, a) => new IFC2X3.IfcWindowPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1299126871: (ID, a) => new IFC2X3.IfcWindowStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2543172580: (ID, a) => new IFC2X3.IfcZShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3288037868: (ID, a) => new IFC2X3.IfcAnnotationCurveOccurrence(ID, a[0], a[1], a[2]),\n  669184980: (ID, a) => new IFC2X3.IfcAnnotationFillArea(ID, a[0], a[1]),\n  2265737646: (ID, a) => new IFC2X3.IfcAnnotationFillAreaOccurrence(ID, a[0], a[1], a[2], a[3], a[4]),\n  1302238472: (ID, a) => new IFC2X3.IfcAnnotationSurface(ID, a[0], a[1]),\n  4261334040: (ID, a) => new IFC2X3.IfcAxis1Placement(ID, a[0], a[1]),\n  3125803723: (ID, a) => new IFC2X3.IfcAxis2Placement2D(ID, a[0], a[1]),\n  2740243338: (ID, a) => new IFC2X3.IfcAxis2Placement3D(ID, a[0], a[1], a[2]),\n  2736907675: (ID, a) => new IFC2X3.IfcBooleanResult(ID, a[0], a[1], a[2]),\n  4182860854: (ID, _) => new IFC2X3.IfcBoundedSurface(ID),\n  2581212453: (ID, a) => new IFC2X3.IfcBoundingBox(ID, a[0], a[1], a[2], a[3]),\n  2713105998: (ID, a) => new IFC2X3.IfcBoxedHalfSpace(ID, a[0], a[1], a[2]),\n  2898889636: (ID, a) => new IFC2X3.IfcCShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1123145078: (ID, a) => new IFC2X3.IfcCartesianPoint(ID, a[0]),\n  59481748: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator(ID, a[0], a[1], a[2], a[3]),\n  3749851601: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator2D(ID, a[0], a[1], a[2], a[3]),\n  3486308946: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator2DnonUniform(ID, a[0], a[1], a[2], a[3], a[4]),\n  3331915920: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator3D(ID, a[0], a[1], a[2], a[3], a[4]),\n  1416205885: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator3DnonUniform(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1383045692: (ID, a) => new IFC2X3.IfcCircleProfileDef(ID, a[0], a[1], a[2], a[3]),\n  2205249479: (ID, a) => new IFC2X3.IfcClosedShell(ID, a[0]),\n  2485617015: (ID, a) => new IFC2X3.IfcCompositeCurveSegment(ID, a[0], a[1], a[2]),\n  4133800736: (ID, a) => new IFC2X3.IfcCraneRailAShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n  194851669: (ID, a) => new IFC2X3.IfcCraneRailFShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2506170314: (ID, a) => new IFC2X3.IfcCsgPrimitive3D(ID, a[0]),\n  2147822146: (ID, a) => new IFC2X3.IfcCsgSolid(ID, a[0]),\n  2601014836: (ID, _) => new IFC2X3.IfcCurve(ID),\n  2827736869: (ID, a) => new IFC2X3.IfcCurveBoundedPlane(ID, a[0], a[1], a[2]),\n  693772133: (ID, a) => new IFC2X3.IfcDefinedSymbol(ID, a[0], a[1]),\n  606661476: (ID, a) => new IFC2X3.IfcDimensionCurve(ID, a[0], a[1], a[2]),\n  4054601972: (ID, a) => new IFC2X3.IfcDimensionCurveTerminator(ID, a[0], a[1], a[2], a[3], a[4]),\n  32440307: (ID, a) => new IFC2X3.IfcDirection(ID, a[0]),\n  2963535650: (ID, a) => new IFC2X3.IfcDoorLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n  1714330368: (ID, a) => new IFC2X3.IfcDoorPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  526551008: (ID, a) => new IFC2X3.IfcDoorStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  3073041342: (ID, a) => new IFC2X3.IfcDraughtingCallout(ID, a[0]),\n  445594917: (ID, a) => new IFC2X3.IfcDraughtingPreDefinedColour(ID, a[0]),\n  4006246654: (ID, a) => new IFC2X3.IfcDraughtingPreDefinedCurveFont(ID, a[0]),\n  1472233963: (ID, a) => new IFC2X3.IfcEdgeLoop(ID, a[0]),\n  1883228015: (ID, a) => new IFC2X3.IfcElementQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  339256511: (ID, a) => new IFC2X3.IfcElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2777663545: (ID, a) => new IFC2X3.IfcElementarySurface(ID, a[0]),\n  2835456948: (ID, a) => new IFC2X3.IfcEllipseProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  80994333: (ID, a) => new IFC2X3.IfcEnergyProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  477187591: (ID, a) => new IFC2X3.IfcExtrudedAreaSolid(ID, a[0], a[1], a[2], a[3]),\n  2047409740: (ID, a) => new IFC2X3.IfcFaceBasedSurfaceModel(ID, a[0]),\n  374418227: (ID, a) => new IFC2X3.IfcFillAreaStyleHatching(ID, a[0], a[1], a[2], a[3], a[4]),\n  4203026998: (ID, a) => new IFC2X3.IfcFillAreaStyleTileSymbolWithStyle(ID, a[0]),\n  315944413: (ID, a) => new IFC2X3.IfcFillAreaStyleTiles(ID, a[0], a[1], a[2]),\n  3455213021: (ID, a) => new IFC2X3.IfcFluidFlowProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18]),\n  4238390223: (ID, a) => new IFC2X3.IfcFurnishingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1268542332: (ID, a) => new IFC2X3.IfcFurnitureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  987898635: (ID, a) => new IFC2X3.IfcGeometricCurveSet(ID, a[0]),\n  1484403080: (ID, a) => new IFC2X3.IfcIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  572779678: (ID, a) => new IFC2X3.IfcLShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1281925730: (ID, a) => new IFC2X3.IfcLine(ID, a[0], a[1]),\n  1425443689: (ID, a) => new IFC2X3.IfcManifoldSolidBrep(ID, a[0]),\n  3888040117: (ID, a) => new IFC2X3.IfcObject(ID, a[0], a[1], a[2], a[3], a[4]),\n  3388369263: (ID, a) => new IFC2X3.IfcOffsetCurve2D(ID, a[0], a[1], a[2]),\n  3505215534: (ID, a) => new IFC2X3.IfcOffsetCurve3D(ID, a[0], a[1], a[2], a[3]),\n  3566463478: (ID, a) => new IFC2X3.IfcPermeableCoveringProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  603570806: (ID, a) => new IFC2X3.IfcPlanarBox(ID, a[0], a[1], a[2]),\n  220341763: (ID, a) => new IFC2X3.IfcPlane(ID, a[0]),\n  2945172077: (ID, a) => new IFC2X3.IfcProcess(ID, a[0], a[1], a[2], a[3], a[4]),\n  4208778838: (ID, a) => new IFC2X3.IfcProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  103090709: (ID, a) => new IFC2X3.IfcProject(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4194566429: (ID, a) => new IFC2X3.IfcProjectionCurve(ID, a[0], a[1], a[2]),\n  1451395588: (ID, a) => new IFC2X3.IfcPropertySet(ID, a[0], a[1], a[2], a[3], a[4]),\n  3219374653: (ID, a) => new IFC2X3.IfcProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2770003689: (ID, a) => new IFC2X3.IfcRectangleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2798486643: (ID, a) => new IFC2X3.IfcRectangularPyramid(ID, a[0], a[1], a[2], a[3]),\n  3454111270: (ID, a) => new IFC2X3.IfcRectangularTrimmedSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3939117080: (ID, a) => new IFC2X3.IfcRelAssigns(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1683148259: (ID, a) => new IFC2X3.IfcRelAssignsToActor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2495723537: (ID, a) => new IFC2X3.IfcRelAssignsToControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1307041759: (ID, a) => new IFC2X3.IfcRelAssignsToGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  4278684876: (ID, a) => new IFC2X3.IfcRelAssignsToProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2857406711: (ID, a) => new IFC2X3.IfcRelAssignsToProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3372526763: (ID, a) => new IFC2X3.IfcRelAssignsToProjectOrder(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  205026976: (ID, a) => new IFC2X3.IfcRelAssignsToResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1865459582: (ID, a) => new IFC2X3.IfcRelAssociates(ID, a[0], a[1], a[2], a[3], a[4]),\n  1327628568: (ID, a) => new IFC2X3.IfcRelAssociatesAppliedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4095574036: (ID, a) => new IFC2X3.IfcRelAssociatesApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  919958153: (ID, a) => new IFC2X3.IfcRelAssociatesClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2728634034: (ID, a) => new IFC2X3.IfcRelAssociatesConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  982818633: (ID, a) => new IFC2X3.IfcRelAssociatesDocument(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3840914261: (ID, a) => new IFC2X3.IfcRelAssociatesLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2655215786: (ID, a) => new IFC2X3.IfcRelAssociatesMaterial(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2851387026: (ID, a) => new IFC2X3.IfcRelAssociatesProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  826625072: (ID, a) => new IFC2X3.IfcRelConnects(ID, a[0], a[1], a[2], a[3]),\n  1204542856: (ID, a) => new IFC2X3.IfcRelConnectsElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3945020480: (ID, a) => new IFC2X3.IfcRelConnectsPathElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4201705270: (ID, a) => new IFC2X3.IfcRelConnectsPortToElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3190031847: (ID, a) => new IFC2X3.IfcRelConnectsPorts(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2127690289: (ID, a) => new IFC2X3.IfcRelConnectsStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3912681535: (ID, a) => new IFC2X3.IfcRelConnectsStructuralElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1638771189: (ID, a) => new IFC2X3.IfcRelConnectsStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  504942748: (ID, a) => new IFC2X3.IfcRelConnectsWithEccentricity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3678494232: (ID, a) => new IFC2X3.IfcRelConnectsWithRealizingElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3242617779: (ID, a) => new IFC2X3.IfcRelContainedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  886880790: (ID, a) => new IFC2X3.IfcRelCoversBldgElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2802773753: (ID, a) => new IFC2X3.IfcRelCoversSpaces(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2551354335: (ID, a) => new IFC2X3.IfcRelDecomposes(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  693640335: (ID, a) => new IFC2X3.IfcRelDefines(ID, a[0], a[1], a[2], a[3], a[4]),\n  4186316022: (ID, a) => new IFC2X3.IfcRelDefinesByProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  781010003: (ID, a) => new IFC2X3.IfcRelDefinesByType(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3940055652: (ID, a) => new IFC2X3.IfcRelFillsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  279856033: (ID, a) => new IFC2X3.IfcRelFlowControlElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4189434867: (ID, a) => new IFC2X3.IfcRelInteractionRequirements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3268803585: (ID, a) => new IFC2X3.IfcRelNests(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2051452291: (ID, a) => new IFC2X3.IfcRelOccupiesSpaces(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  202636808: (ID, a) => new IFC2X3.IfcRelOverridesProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  750771296: (ID, a) => new IFC2X3.IfcRelProjectsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1245217292: (ID, a) => new IFC2X3.IfcRelReferencedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1058617721: (ID, a) => new IFC2X3.IfcRelSchedulesCostItems(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  4122056220: (ID, a) => new IFC2X3.IfcRelSequence(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  366585022: (ID, a) => new IFC2X3.IfcRelServicesBuildings(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3451746338: (ID, a) => new IFC2X3.IfcRelSpaceBoundary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1401173127: (ID, a) => new IFC2X3.IfcRelVoidsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2914609552: (ID, a) => new IFC2X3.IfcResource(ID, a[0], a[1], a[2], a[3], a[4]),\n  1856042241: (ID, a) => new IFC2X3.IfcRevolvedAreaSolid(ID, a[0], a[1], a[2], a[3]),\n  4158566097: (ID, a) => new IFC2X3.IfcRightCircularCone(ID, a[0], a[1], a[2]),\n  3626867408: (ID, a) => new IFC2X3.IfcRightCircularCylinder(ID, a[0], a[1], a[2]),\n  2706606064: (ID, a) => new IFC2X3.IfcSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3893378262: (ID, a) => new IFC2X3.IfcSpatialStructureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  451544542: (ID, a) => new IFC2X3.IfcSphere(ID, a[0], a[1]),\n  3544373492: (ID, a) => new IFC2X3.IfcStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3136571912: (ID, a) => new IFC2X3.IfcStructuralItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  530289379: (ID, a) => new IFC2X3.IfcStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3689010777: (ID, a) => new IFC2X3.IfcStructuralReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3979015343: (ID, a) => new IFC2X3.IfcStructuralSurfaceMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2218152070: (ID, a) => new IFC2X3.IfcStructuralSurfaceMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4070609034: (ID, a) => new IFC2X3.IfcStructuredDimensionCallout(ID, a[0]),\n  2028607225: (ID, a) => new IFC2X3.IfcSurfaceCurveSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2809605785: (ID, a) => new IFC2X3.IfcSurfaceOfLinearExtrusion(ID, a[0], a[1], a[2], a[3]),\n  4124788165: (ID, a) => new IFC2X3.IfcSurfaceOfRevolution(ID, a[0], a[1], a[2]),\n  1580310250: (ID, a) => new IFC2X3.IfcSystemFurnitureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3473067441: (ID, a) => new IFC2X3.IfcTask(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2097647324: (ID, a) => new IFC2X3.IfcTransportElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2296667514: (ID, a) => new IFC2X3.IfcActor(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1674181508: (ID, a) => new IFC2X3.IfcAnnotation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3207858831: (ID, a) => new IFC2X3.IfcAsymmetricIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1334484129: (ID, a) => new IFC2X3.IfcBlock(ID, a[0], a[1], a[2], a[3]),\n  3649129432: (ID, a) => new IFC2X3.IfcBooleanClippingResult(ID, a[0], a[1], a[2]),\n  1260505505: (ID, _) => new IFC2X3.IfcBoundedCurve(ID),\n  4031249490: (ID, a) => new IFC2X3.IfcBuilding(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1950629157: (ID, a) => new IFC2X3.IfcBuildingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3124254112: (ID, a) => new IFC2X3.IfcBuildingStorey(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2937912522: (ID, a) => new IFC2X3.IfcCircleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  300633059: (ID, a) => new IFC2X3.IfcColumnType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3732776249: (ID, a) => new IFC2X3.IfcCompositeCurve(ID, a[0], a[1]),\n  2510884976: (ID, a) => new IFC2X3.IfcConic(ID, a[0]),\n  2559216714: (ID, a) => new IFC2X3.IfcConstructionResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3293443760: (ID, a) => new IFC2X3.IfcControl(ID, a[0], a[1], a[2], a[3], a[4]),\n  3895139033: (ID, a) => new IFC2X3.IfcCostItem(ID, a[0], a[1], a[2], a[3], a[4]),\n  1419761937: (ID, a) => new IFC2X3.IfcCostSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  1916426348: (ID, a) => new IFC2X3.IfcCoveringType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3295246426: (ID, a) => new IFC2X3.IfcCrewResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1457835157: (ID, a) => new IFC2X3.IfcCurtainWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  681481545: (ID, a) => new IFC2X3.IfcDimensionCurveDirectedCallout(ID, a[0]),\n  3256556792: (ID, a) => new IFC2X3.IfcDistributionElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3849074793: (ID, a) => new IFC2X3.IfcDistributionFlowElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  360485395: (ID, a) => new IFC2X3.IfcElectricalBaseProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  1758889154: (ID, a) => new IFC2X3.IfcElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4123344466: (ID, a) => new IFC2X3.IfcElementAssembly(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1623761950: (ID, a) => new IFC2X3.IfcElementComponent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2590856083: (ID, a) => new IFC2X3.IfcElementComponentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1704287377: (ID, a) => new IFC2X3.IfcEllipse(ID, a[0], a[1], a[2]),\n  2107101300: (ID, a) => new IFC2X3.IfcEnergyConversionDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1962604670: (ID, a) => new IFC2X3.IfcEquipmentElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3272907226: (ID, a) => new IFC2X3.IfcEquipmentStandard(ID, a[0], a[1], a[2], a[3], a[4]),\n  3174744832: (ID, a) => new IFC2X3.IfcEvaporativeCoolerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3390157468: (ID, a) => new IFC2X3.IfcEvaporatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  807026263: (ID, a) => new IFC2X3.IfcFacetedBrep(ID, a[0]),\n  3737207727: (ID, a) => new IFC2X3.IfcFacetedBrepWithVoids(ID, a[0], a[1]),\n  647756555: (ID, a) => new IFC2X3.IfcFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2489546625: (ID, a) => new IFC2X3.IfcFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2827207264: (ID, a) => new IFC2X3.IfcFeatureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2143335405: (ID, a) => new IFC2X3.IfcFeatureElementAddition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1287392070: (ID, a) => new IFC2X3.IfcFeatureElementSubtraction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3907093117: (ID, a) => new IFC2X3.IfcFlowControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3198132628: (ID, a) => new IFC2X3.IfcFlowFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3815607619: (ID, a) => new IFC2X3.IfcFlowMeterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1482959167: (ID, a) => new IFC2X3.IfcFlowMovingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1834744321: (ID, a) => new IFC2X3.IfcFlowSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1339347760: (ID, a) => new IFC2X3.IfcFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2297155007: (ID, a) => new IFC2X3.IfcFlowTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3009222698: (ID, a) => new IFC2X3.IfcFlowTreatmentDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  263784265: (ID, a) => new IFC2X3.IfcFurnishingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  814719939: (ID, a) => new IFC2X3.IfcFurnitureStandard(ID, a[0], a[1], a[2], a[3], a[4]),\n  200128114: (ID, a) => new IFC2X3.IfcGasTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3009204131: (ID, a) => new IFC2X3.IfcGrid(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2706460486: (ID, a) => new IFC2X3.IfcGroup(ID, a[0], a[1], a[2], a[3], a[4]),\n  1251058090: (ID, a) => new IFC2X3.IfcHeatExchangerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1806887404: (ID, a) => new IFC2X3.IfcHumidifierType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2391368822: (ID, a) => new IFC2X3.IfcInventory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4288270099: (ID, a) => new IFC2X3.IfcJunctionBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3827777499: (ID, a) => new IFC2X3.IfcLaborResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1051575348: (ID, a) => new IFC2X3.IfcLampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1161773419: (ID, a) => new IFC2X3.IfcLightFixtureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2506943328: (ID, a) => new IFC2X3.IfcLinearDimension(ID, a[0]),\n  377706215: (ID, a) => new IFC2X3.IfcMechanicalFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2108223431: (ID, a) => new IFC2X3.IfcMechanicalFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3181161470: (ID, a) => new IFC2X3.IfcMemberType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  977012517: (ID, a) => new IFC2X3.IfcMotorConnectionType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1916936684: (ID, a) => new IFC2X3.IfcMove(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  4143007308: (ID, a) => new IFC2X3.IfcOccupant(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3588315303: (ID, a) => new IFC2X3.IfcOpeningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3425660407: (ID, a) => new IFC2X3.IfcOrderAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2837617999: (ID, a) => new IFC2X3.IfcOutletType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2382730787: (ID, a) => new IFC2X3.IfcPerformanceHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3327091369: (ID, a) => new IFC2X3.IfcPermit(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  804291784: (ID, a) => new IFC2X3.IfcPipeFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4231323485: (ID, a) => new IFC2X3.IfcPipeSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4017108033: (ID, a) => new IFC2X3.IfcPlateType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3724593414: (ID, a) => new IFC2X3.IfcPolyline(ID, a[0]),\n  3740093272: (ID, a) => new IFC2X3.IfcPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2744685151: (ID, a) => new IFC2X3.IfcProcedure(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2904328755: (ID, a) => new IFC2X3.IfcProjectOrder(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3642467123: (ID, a) => new IFC2X3.IfcProjectOrderRecord(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3651124850: (ID, a) => new IFC2X3.IfcProjectionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1842657554: (ID, a) => new IFC2X3.IfcProtectiveDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2250791053: (ID, a) => new IFC2X3.IfcPumpType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3248260540: (ID, a) => new IFC2X3.IfcRadiusDimension(ID, a[0]),\n  2893384427: (ID, a) => new IFC2X3.IfcRailingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2324767716: (ID, a) => new IFC2X3.IfcRampFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  160246688: (ID, a) => new IFC2X3.IfcRelAggregates(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2863920197: (ID, a) => new IFC2X3.IfcRelAssignsTasks(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1768891740: (ID, a) => new IFC2X3.IfcSanitaryTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3517283431: (ID, a) => new IFC2X3.IfcScheduleTimeControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]),\n  4105383287: (ID, a) => new IFC2X3.IfcServiceLife(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  4097777520: (ID, a) => new IFC2X3.IfcSite(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  2533589738: (ID, a) => new IFC2X3.IfcSlabType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3856911033: (ID, a) => new IFC2X3.IfcSpace(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1305183839: (ID, a) => new IFC2X3.IfcSpaceHeaterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  652456506: (ID, a) => new IFC2X3.IfcSpaceProgram(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3812236995: (ID, a) => new IFC2X3.IfcSpaceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3112655638: (ID, a) => new IFC2X3.IfcStackTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1039846685: (ID, a) => new IFC2X3.IfcStairFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  682877961: (ID, a) => new IFC2X3.IfcStructuralAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1179482911: (ID, a) => new IFC2X3.IfcStructuralConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4243806635: (ID, a) => new IFC2X3.IfcStructuralCurveConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  214636428: (ID, a) => new IFC2X3.IfcStructuralCurveMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2445595289: (ID, a) => new IFC2X3.IfcStructuralCurveMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1807405624: (ID, a) => new IFC2X3.IfcStructuralLinearAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1721250024: (ID, a) => new IFC2X3.IfcStructuralLinearActionVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  1252848954: (ID, a) => new IFC2X3.IfcStructuralLoadGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1621171031: (ID, a) => new IFC2X3.IfcStructuralPlanarAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  3987759626: (ID, a) => new IFC2X3.IfcStructuralPlanarActionVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  2082059205: (ID, a) => new IFC2X3.IfcStructuralPointAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  734778138: (ID, a) => new IFC2X3.IfcStructuralPointConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1235345126: (ID, a) => new IFC2X3.IfcStructuralPointReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2986769608: (ID, a) => new IFC2X3.IfcStructuralResultGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1975003073: (ID, a) => new IFC2X3.IfcStructuralSurfaceConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  148013059: (ID, a) => new IFC2X3.IfcSubContractResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2315554128: (ID, a) => new IFC2X3.IfcSwitchingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2254336722: (ID, a) => new IFC2X3.IfcSystem(ID, a[0], a[1], a[2], a[3], a[4]),\n  5716631: (ID, a) => new IFC2X3.IfcTankType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1637806684: (ID, a) => new IFC2X3.IfcTimeSeriesSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1692211062: (ID, a) => new IFC2X3.IfcTransformerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1620046519: (ID, a) => new IFC2X3.IfcTransportElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3593883385: (ID, a) => new IFC2X3.IfcTrimmedCurve(ID, a[0], a[1], a[2], a[3], a[4]),\n  1600972822: (ID, a) => new IFC2X3.IfcTubeBundleType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1911125066: (ID, a) => new IFC2X3.IfcUnitaryEquipmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  728799441: (ID, a) => new IFC2X3.IfcValveType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2769231204: (ID, a) => new IFC2X3.IfcVirtualElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1898987631: (ID, a) => new IFC2X3.IfcWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1133259667: (ID, a) => new IFC2X3.IfcWasteTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1028945134: (ID, a) => new IFC2X3.IfcWorkControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n  4218914973: (ID, a) => new IFC2X3.IfcWorkPlan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n  3342526732: (ID, a) => new IFC2X3.IfcWorkSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n  1033361043: (ID, a) => new IFC2X3.IfcZone(ID, a[0], a[1], a[2], a[3], a[4]),\n  1213861670: (ID, a) => new IFC2X3.Ifc2DCompositeCurve(ID, a[0], a[1]),\n  3821786052: (ID, a) => new IFC2X3.IfcActionRequest(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1411407467: (ID, a) => new IFC2X3.IfcAirTerminalBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3352864051: (ID, a) => new IFC2X3.IfcAirTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1871374353: (ID, a) => new IFC2X3.IfcAirToAirHeatRecoveryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2470393545: (ID, a) => new IFC2X3.IfcAngularDimension(ID, a[0]),\n  3460190687: (ID, a) => new IFC2X3.IfcAsset(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  1967976161: (ID, a) => new IFC2X3.IfcBSplineCurve(ID, a[0], a[1], a[2], a[3], a[4]),\n  819618141: (ID, a) => new IFC2X3.IfcBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1916977116: (ID, a) => new IFC2X3.IfcBezierCurve(ID, a[0], a[1], a[2], a[3], a[4]),\n  231477066: (ID, a) => new IFC2X3.IfcBoilerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3299480353: (ID, a) => new IFC2X3.IfcBuildingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  52481810: (ID, a) => new IFC2X3.IfcBuildingElementComponent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2979338954: (ID, a) => new IFC2X3.IfcBuildingElementPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1095909175: (ID, a) => new IFC2X3.IfcBuildingElementProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1909888760: (ID, a) => new IFC2X3.IfcBuildingElementProxyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  395041908: (ID, a) => new IFC2X3.IfcCableCarrierFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3293546465: (ID, a) => new IFC2X3.IfcCableCarrierSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1285652485: (ID, a) => new IFC2X3.IfcCableSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2951183804: (ID, a) => new IFC2X3.IfcChillerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2611217952: (ID, a) => new IFC2X3.IfcCircle(ID, a[0], a[1]),\n  2301859152: (ID, a) => new IFC2X3.IfcCoilType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  843113511: (ID, a) => new IFC2X3.IfcColumn(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3850581409: (ID, a) => new IFC2X3.IfcCompressorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2816379211: (ID, a) => new IFC2X3.IfcCondenserType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2188551683: (ID, a) => new IFC2X3.IfcCondition(ID, a[0], a[1], a[2], a[3], a[4]),\n  1163958913: (ID, a) => new IFC2X3.IfcConditionCriterion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3898045240: (ID, a) => new IFC2X3.IfcConstructionEquipmentResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1060000209: (ID, a) => new IFC2X3.IfcConstructionMaterialResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  488727124: (ID, a) => new IFC2X3.IfcConstructionProductResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  335055490: (ID, a) => new IFC2X3.IfcCooledBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2954562838: (ID, a) => new IFC2X3.IfcCoolingTowerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1973544240: (ID, a) => new IFC2X3.IfcCovering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3495092785: (ID, a) => new IFC2X3.IfcCurtainWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3961806047: (ID, a) => new IFC2X3.IfcDamperType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4147604152: (ID, a) => new IFC2X3.IfcDiameterDimension(ID, a[0]),\n  1335981549: (ID, a) => new IFC2X3.IfcDiscreteAccessory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2635815018: (ID, a) => new IFC2X3.IfcDiscreteAccessoryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1599208980: (ID, a) => new IFC2X3.IfcDistributionChamberElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2063403501: (ID, a) => new IFC2X3.IfcDistributionControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1945004755: (ID, a) => new IFC2X3.IfcDistributionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3040386961: (ID, a) => new IFC2X3.IfcDistributionFlowElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3041715199: (ID, a) => new IFC2X3.IfcDistributionPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  395920057: (ID, a) => new IFC2X3.IfcDoor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  869906466: (ID, a) => new IFC2X3.IfcDuctFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3760055223: (ID, a) => new IFC2X3.IfcDuctSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2030761528: (ID, a) => new IFC2X3.IfcDuctSilencerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  855621170: (ID, a) => new IFC2X3.IfcEdgeFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  663422040: (ID, a) => new IFC2X3.IfcElectricApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3277789161: (ID, a) => new IFC2X3.IfcElectricFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1534661035: (ID, a) => new IFC2X3.IfcElectricGeneratorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1365060375: (ID, a) => new IFC2X3.IfcElectricHeaterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1217240411: (ID, a) => new IFC2X3.IfcElectricMotorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  712377611: (ID, a) => new IFC2X3.IfcElectricTimeControlType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1634875225: (ID, a) => new IFC2X3.IfcElectricalCircuit(ID, a[0], a[1], a[2], a[3], a[4]),\n  857184966: (ID, a) => new IFC2X3.IfcElectricalElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1658829314: (ID, a) => new IFC2X3.IfcEnergyConversionDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  346874300: (ID, a) => new IFC2X3.IfcFanType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1810631287: (ID, a) => new IFC2X3.IfcFilterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4222183408: (ID, a) => new IFC2X3.IfcFireSuppressionTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2058353004: (ID, a) => new IFC2X3.IfcFlowController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4278956645: (ID, a) => new IFC2X3.IfcFlowFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4037862832: (ID, a) => new IFC2X3.IfcFlowInstrumentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3132237377: (ID, a) => new IFC2X3.IfcFlowMovingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  987401354: (ID, a) => new IFC2X3.IfcFlowSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  707683696: (ID, a) => new IFC2X3.IfcFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2223149337: (ID, a) => new IFC2X3.IfcFlowTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3508470533: (ID, a) => new IFC2X3.IfcFlowTreatmentDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  900683007: (ID, a) => new IFC2X3.IfcFooting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1073191201: (ID, a) => new IFC2X3.IfcMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1687234759: (ID, a) => new IFC2X3.IfcPile(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3171933400: (ID, a) => new IFC2X3.IfcPlate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2262370178: (ID, a) => new IFC2X3.IfcRailing(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3024970846: (ID, a) => new IFC2X3.IfcRamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3283111854: (ID, a) => new IFC2X3.IfcRampFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3055160366: (ID, a) => new IFC2X3.IfcRationalBezierCurve(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3027567501: (ID, a) => new IFC2X3.IfcReinforcingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2320036040: (ID, a) => new IFC2X3.IfcReinforcingMesh(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  2016517767: (ID, a) => new IFC2X3.IfcRoof(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1376911519: (ID, a) => new IFC2X3.IfcRoundedEdgeFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1783015770: (ID, a) => new IFC2X3.IfcSensorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1529196076: (ID, a) => new IFC2X3.IfcSlab(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  331165859: (ID, a) => new IFC2X3.IfcStair(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4252922144: (ID, a) => new IFC2X3.IfcStairFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2515109513: (ID, a) => new IFC2X3.IfcStructuralAnalysisModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3824725483: (ID, a) => new IFC2X3.IfcTendon(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  2347447852: (ID, a) => new IFC2X3.IfcTendonAnchor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3313531582: (ID, a) => new IFC2X3.IfcVibrationIsolatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2391406946: (ID, a) => new IFC2X3.IfcWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3512223829: (ID, a) => new IFC2X3.IfcWallStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3304561284: (ID, a) => new IFC2X3.IfcWindow(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2874132201: (ID, a) => new IFC2X3.IfcActuatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3001207471: (ID, a) => new IFC2X3.IfcAlarmType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  753842376: (ID, a) => new IFC2X3.IfcBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2454782716: (ID, a) => new IFC2X3.IfcChamferEdgeFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  578613899: (ID, a) => new IFC2X3.IfcControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1052013943: (ID, a) => new IFC2X3.IfcDistributionChamberElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1062813311: (ID, a) => new IFC2X3.IfcDistributionControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3700593921: (ID, a) => new IFC2X3.IfcElectricDistributionPoint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  979691226: (ID, a) => new IFC2X3.IfcReinforcingBar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13])\n};\nToRawLineData[1] = {\n  3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],\n  618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],\n  639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],\n  411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate],\n  1110488051: (i) => [i.ComponentOfTotal, i.Components, i.ArithmeticOperator, i.Name, i.Description],\n  130549933: (i) => [i.Description, i.ApprovalDateTime, i.ApprovalStatus, i.ApprovalLevel, i.ApprovalQualifier, i.Name, i.Identifier],\n  2080292479: (i) => [i.Actor, i.Approval, i.Role],\n  390851274: (i) => [i.ApprovedProperties, i.Approval],\n  3869604511: (i) => [i.RelatedApproval, i.RelatingApproval, i.Description, i.Name],\n  4037036970: (i) => [i.Name],\n  1560379544: (i) => [i.Name, i.LinearStiffnessByLengthX, i.LinearStiffnessByLengthY, i.LinearStiffnessByLengthZ, i.RotationalStiffnessByLengthX, i.RotationalStiffnessByLengthY, i.RotationalStiffnessByLengthZ],\n  3367102660: (i) => [i.Name, i.LinearStiffnessByAreaX, i.LinearStiffnessByAreaY, i.LinearStiffnessByAreaZ],\n  1387855156: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ],\n  2069777674: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ, i.WarpingStiffness],\n  622194075: (i) => [i.DayComponent, i.MonthComponent, i.YearComponent],\n  747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name],\n  1767535486: (i) => [i.Notation, i.ItemOf, i.Title],\n  1098599126: (i) => [i.RelatingItem, i.RelatedItems],\n  938368621: (i) => [i.NotationFacets],\n  3639012971: (i) => [i.NotationValue],\n  3264961684: (i) => [i.Name],\n  2859738748: (_) => [],\n  2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],\n  4257277454: (i) => [i.LocationAtRelatingElement, i.LocationAtRelatedElement, i.ProfileOfPort],\n  2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],\n  1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],\n  1658513725: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints, i.LogicalAggregator],\n  613356794: (i) => [i.ClassifiedConstraint, i.RelatedClassifications],\n  347226245: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints],\n  1065062679: (i) => [i.HourOffset, i.MinuteOffset, i.Sense],\n  602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.CostType, i.Condition],\n  539742890: (i) => [i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],\n  1105321065: (i) => [i.Name, i.PatternList],\n  2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling],\n  3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],\n  1072939445: (i) => [i.DateComponent, i.TimeComponent],\n  1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType],\n  1045800335: (i) => [i.Unit, i.Exponent],\n  2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],\n  1376555844: (i) => [i.FileExtension, i.MimeContentType, i.MimeSubtype],\n  1154170062: (i) => [i.DocumentId, i.Name, i.Description, i.DocumentReferences, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],\n  770865208: (i) => [i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],\n  3796139169: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],\n  1648886627: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.ImpactType, i.Category, i.UserDefinedCategory],\n  3200245327: (i) => [i.Location, i.ItemReference, i.Name],\n  2242383968: (i) => [i.Location, i.ItemReference, i.Name],\n  1040185647: (i) => [i.Location, i.ItemReference, i.Name],\n  3207319532: (i) => [i.Location, i.ItemReference, i.Name],\n  3548104201: (i) => [i.Location, i.ItemReference, i.Name],\n  852622518: (i) => [i.AxisTag, i.AxisCurve, i.SameSense],\n  3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],\n  2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.LibraryReference],\n  3452421091: (i) => [i.Location, i.ItemReference, i.Name],\n  4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],\n  1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],\n  30780891: (i) => [i.HourComponent, i.MinuteComponent, i.SecondComponent, i.Zone, i.DaylightSavingOffset],\n  1838606355: (i) => [i.Name],\n  1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],\n  248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated],\n  3303938423: (i) => [i.MaterialLayers, i.LayerSetName],\n  1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine],\n  2199411900: (i) => [i.Materials],\n  3265635763: (i) => [i.Material],\n  2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],\n  4256014907: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient],\n  677618848: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.YieldStress, i.UltimateStress, i.UltimateStrain, i.HardeningModule, i.ProportionalStress, i.PlasticStrain, i.Relaxations],\n  3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue],\n  2706619895: (i) => [i.Currency],\n  1918398963: (i) => [i.Dimensions, i.UnitType],\n  3701648758: (_) => [],\n  2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.ResultValues, i.ObjectiveQualifier, i.UserDefinedQualifier],\n  1227763645: (i) => [i.Material, i.VisibleTransmittance, i.SolarTransmittance, i.ThermalIrTransmittance, i.ThermalIrEmissivityBack, i.ThermalIrEmissivityFront, i.VisibleReflectanceBack, i.VisibleReflectanceFront, i.SolarReflectanceFront, i.SolarReflectanceBack],\n  4251960020: (i) => [i.Id, i.Name, i.Description, i.Roles, i.Addresses],\n  1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],\n  1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],\n  2077209135: (i) => [i.Id, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],\n  101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],\n  2483315170: (i) => [i.Name, i.Description],\n  2226359599: (i) => [i.Name, i.Description, i.Unit],\n  3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],\n  3727388367: (i) => [i.Name],\n  990879717: (i) => [i.Name],\n  3213052703: (i) => [i.Name],\n  1775413392: (i) => [i.Name],\n  2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],\n  1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles],\n  3119450353: (i) => [i.Name],\n  2417041796: (i) => [i.Styles],\n  2095639259: (i) => [i.Name, i.Description, i.Representations],\n  2267347899: (i) => [i.Material, i.SpecificHeatCapacity, i.N20Content, i.COContent, i.CO2Content],\n  3958567839: (i) => [i.ProfileType, i.ProfileName],\n  2802850158: (i) => [i.ProfileName, i.ProfileDefinition],\n  2598011224: (i) => [i.Name, i.Description],\n  3896028662: (i) => [i.RelatingConstraint, i.RelatedProperties, i.Name, i.Description],\n  148025276: (i) => [i.DependingProperty, i.DependantProperty, i.Name, i.Description, i.Expression],\n  3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],\n  2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue],\n  2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue],\n  931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue],\n  3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue],\n  2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue],\n  825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue],\n  2692823254: (i) => [i.ReferencedDocument, i.ReferencingValues, i.Name, i.Description],\n  1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],\n  1222501353: (i) => [i.RelaxationValue, i.InitialStress],\n  1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  3377609919: (i) => [i.ContextIdentifier, i.ContextType],\n  3008791417: (_) => [],\n  1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],\n  3679540991: (i) => [i.ProfileName, i.ProfileDefinition, i.Thickness, i.RibHeight, i.RibWidth, i.RibSpacing, i.Direction],\n  2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],\n  2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],\n  4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],\n  867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape],\n  3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  3692461612: (i) => [i.Name, i.Description],\n  2273995522: (i) => [i.Name],\n  2162789131: (i) => [i.Name],\n  2525727697: (i) => [i.Name],\n  3408363356: (i) => [i.Name, i.DeltaT_Constant, i.DeltaT_Y, i.DeltaT_Z],\n  2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  3958052878: (i) => [i.Item, i.Styles, i.Name],\n  3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  1300840506: (i) => [i.Name, i.Side, i.Styles],\n  3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],\n  1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],\n  846575682: (i) => [i.SurfaceColour],\n  1351298697: (i) => [i.Textures],\n  626085974: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform],\n  1290481447: (i) => [i.Name, Labelise(i.StyleOfSymbol)],\n  985171141: (i) => [i.Name, i.Rows],\n  531007025: (i) => [i.RowCells.map((p) => Labelise(p)), i.IsHeading],\n  912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL],\n  1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle],\n  1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],\n  2636378356: (i) => [i.Colour, i.BackgroundColour],\n  1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],\n  1484833681: (i) => [i.BoxHeight, i.BoxWidth, i.BoxSlantAngle, i.BoxRotateAngle, !i.CharacterSpacing ? null : Labelise(i.CharacterSpacing)],\n  280115917: (_) => [],\n  1742049831: (i) => [i.Mode, i.Parameter.map((p) => Labelise(p))],\n  2552916305: (i) => [i.TextureMaps],\n  1210645708: (i) => [i.Coordinates],\n  3317419933: (i) => [i.Material, i.SpecificHeatCapacity, i.BoilingPoint, i.FreezingPoint, i.ThermalConductivity],\n  3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],\n  1718945513: (i) => [i.ReferencedTimeSeries, i.TimeSeriesReferences],\n  581633288: (i) => [i.ListValues.map((p) => Labelise(p))],\n  1377556343: (_) => [],\n  1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  180925521: (i) => [i.Units],\n  2799835756: (_) => [],\n  3304826586: (i) => [i.TextureVertices, i.TexturePoints],\n  1907098498: (i) => [i.VertexGeometry],\n  891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],\n  1065908215: (i) => [i.Material, i.IsPotable, i.Hardness, i.AlkalinityConcentration, i.AcidityConcentration, i.ImpuritiesContent, i.PHLevel, i.DissolvedSolidsContent],\n  2442683028: (i) => [i.Item, i.Styles, i.Name],\n  962685235: (i) => [i.Item, i.Styles, i.Name],\n  3612888222: (i) => [i.Item, i.Styles, i.Name],\n  2297822566: (i) => [i.Item, i.Styles, i.Name],\n  3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],\n  1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],\n  2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],\n  616511568: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.RasterFormat, i.RasterCode],\n  3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],\n  647927063: (i) => [i.Location, i.ItemReference, i.Name, i.ReferencedSource],\n  776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],\n  2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties],\n  1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],\n  370225590: (i) => [i.CfsFaces],\n  1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],\n  45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],\n  3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],\n  2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],\n  3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour],\n  3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n  2273265877: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],\n  1694125774: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],\n  3732053477: (i) => [i.Location, i.ItemReference, i.Name],\n  4170525392: (i) => [i.Name],\n  3900360178: (i) => [i.EdgeStart, i.EdgeEnd],\n  476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense],\n  1860660968: (i) => [i.Material, i.ExtendedProperties, i.Description, i.Name],\n  2556980723: (i) => [i.Bounds],\n  1809719519: (i) => [i.Bound, i.Orientation],\n  803316827: (i) => [i.Bound, i.Orientation],\n  3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense],\n  4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],\n  738692330: (i) => [i.Name, i.FillStyles],\n  3857492461: (i) => [i.Material, i.CombustionTemperature, i.CarbonContent, i.LowerHeatingValue, i.HigherHeatingValue],\n  803998398: (i) => [i.Material, i.MolecularWeight, i.Porosity, i.MassDensity],\n  1446786286: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea],\n  3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],\n  2453401579: (_) => [],\n  4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],\n  3590301190: (i) => [i.Elements],\n  178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection],\n  812098782: (i) => [i.BaseSurface, i.AgreementFlag],\n  2445078500: (i) => [i.Material, i.UpperVaporResistanceFactor, i.LowerVaporResistanceFactor, i.IsothermalMoistureCapacity, i.VaporPermeability, i.MoistureDiffusivity],\n  3905492369: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.UrlReference],\n  3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],\n  1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n  125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n  2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],\n  4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],\n  1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],\n  3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],\n  2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],\n  1008929658: (_) => [],\n  2347385850: (i) => [i.MappingSource, i.MappingTarget],\n  2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],\n  1430189142: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.CompressiveStrength, i.MaxAggregateSize, i.AdmixturesDescription, i.Workability, i.ProtectivePoreRatio, i.WaterImpermeability],\n  219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  2833995503: (i) => [i.RepeatFactor],\n  2665983363: (i) => [i.CfsFaces],\n  1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation],\n  2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],\n  2519244187: (i) => [i.EdgeList],\n  3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],\n  597895409: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.Width, i.Height, i.ColourComponents, i.Pixel],\n  2004835150: (i) => [i.Location],\n  1663979128: (i) => [i.SizeInX, i.SizeInY],\n  2067069095: (_) => [],\n  4022376103: (i) => [i.BasisCurve, i.PointParameter],\n  1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],\n  2924175390: (i) => [i.Polygon],\n  2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary],\n  759155922: (i) => [i.Name],\n  2559016684: (i) => [i.Name],\n  433424934: (i) => [i.Name],\n  179317114: (i) => [i.Name],\n  673634403: (i) => [i.Name, i.Description, i.Representations],\n  871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit],\n  1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  4166981789: (i) => [i.Name, i.Description, i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],\n  2752243245: (i) => [i.Name, i.Description, i.ListValues.map((p) => Labelise(p)), i.Unit],\n  941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference],\n  3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],\n  110355661: (i) => [i.Name, i.Description, i.DefiningValues.map((p) => Labelise(p)), i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit],\n  3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],\n  3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],\n  3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],\n  478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],\n  1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],\n  2411513650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PredefinedType, !i.UpperValue ? null : Labelise(i.UpperValue), Labelise(i.MostUsedValue), !i.LowerValue ? null : Labelise(i.LowerValue)],\n  4124623270: (i) => [i.SbsmBoundary],\n  2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],\n  723233188: (_) => [],\n  2485662743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.IsAttenuating, i.SoundScale, i.SoundValues],\n  1202362311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.SoundLevelTimeSeries, i.Frequency, !i.SoundLevelSingleValue ? null : Labelise(i.SoundLevelSingleValue)],\n  390701378: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableValueRatio, i.ThermalLoadSource, i.PropertySource, i.SourceDescription, i.MaximumValue, i.MinimumValue, i.ThermalLoadTimeSeriesValues, i.UserDefinedThermalLoadSource, i.UserDefinedPropertySource, i.ThermalLoadType],\n  1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],\n  2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],\n  2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],\n  1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],\n  1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],\n  1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],\n  3843319758: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY],\n  3653947884: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY, i.ShearAreaZ, i.ShearAreaY, i.PlasticShapeFactorY, i.PlasticShapeFactorZ],\n  2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],\n  2513912981: (_) => [],\n  1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],\n  2247615214: (i) => [i.SweptArea, i.Position],\n  1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],\n  230924584: (i) => [i.SweptCurve, i.Position],\n  3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope, i.CentreOfGravityInY],\n  3028897424: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve],\n  4282788508: (i) => [i.Literal, i.Placement, i.Path],\n  3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],\n  2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],\n  1345879162: (i) => [i.RepeatFactor, i.SecondRepeatFactor],\n  1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],\n  2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],\n  427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope, i.CentreOfGravityInX],\n  1417489154: (i) => [i.Orientation, i.Magnitude],\n  2759199220: (i) => [i.LoopVertex],\n  336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle],\n  512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n  1299126871: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, i.ParameterTakesPrecedence, i.Sizeable],\n  2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],\n  3288037868: (i) => [i.Item, i.Styles, i.Name],\n  669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],\n  2265737646: (i) => [i.Item, i.Styles, i.Name, i.FillStyleTarget, i.GlobalOrLocal],\n  1302238472: (i) => [i.Item, i.TextureCoordinates],\n  4261334040: (i) => [i.Location, i.Axis],\n  3125803723: (i) => [i.Location, i.RefDirection],\n  2740243338: (i) => [i.Location, i.Axis, i.RefDirection],\n  2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n  4182860854: (_) => [],\n  2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],\n  2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure],\n  2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius, i.CentreOfGravityInX],\n  1123145078: (i) => [i.Coordinates],\n  59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n  3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n  3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],\n  3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],\n  1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],\n  1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],\n  2205249479: (i) => [i.CfsFaces],\n  2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve],\n  4133800736: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.BaseWidth2, i.Radius, i.HeadWidth, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseWidth4, i.BaseDepth1, i.BaseDepth2, i.BaseDepth3, i.CentreOfGravityInY],\n  194851669: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.HeadWidth, i.Radius, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseDepth1, i.BaseDepth2, i.CentreOfGravityInY],\n  2506170314: (i) => [i.Position],\n  2147822146: (i) => [i.TreeRootExpression],\n  2601014836: (_) => [],\n  2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],\n  693772133: (i) => [i.Definition, i.Target],\n  606661476: (i) => [i.Item, i.Styles, i.Name],\n  4054601972: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve, i.Role],\n  32440307: (i) => [i.DirectionRatios],\n  2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle],\n  1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],\n  526551008: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, i.ParameterTakesPrecedence, i.Sizeable],\n  3073041342: (i) => [i.Contents],\n  445594917: (i) => [i.Name],\n  4006246654: (i) => [i.Name],\n  1472233963: (i) => [i.EdgeList],\n  1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],\n  339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2777663545: (i) => [i.Position],\n  2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],\n  80994333: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence],\n  477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],\n  2047409740: (i) => [i.FbsmFaces],\n  374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],\n  4203026998: (i) => [i.Symbol],\n  315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],\n  3455213021: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PropertySource, i.FlowConditionTimeSeries, i.VelocityTimeSeries, i.FlowrateTimeSeries, i.Fluid, i.PressureTimeSeries, i.UserDefinedPropertySource, i.TemperatureSingleValue, i.WetBulbTemperatureSingleValue, i.WetBulbTemperatureTimeSeries, i.TemperatureTimeSeries, !i.FlowrateSingleValue ? null : Labelise(i.FlowrateSingleValue), i.FlowConditionSingleValue, i.VelocitySingleValue, i.PressureSingleValue],\n  4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace],\n  987898635: (i) => [i.Elements],\n  1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius],\n  572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope, i.CentreOfGravityInX, i.CentreOfGravityInY],\n  1281925730: (i) => [i.Pnt, i.Dir],\n  1425443689: (i) => [i.Outer],\n  3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect],\n  3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection],\n  3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n  603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],\n  220341763: (i) => [i.Position],\n  2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n  4194566429: (i) => [i.Item, i.Styles, i.Name],\n  1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],\n  3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag],\n  2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],\n  2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],\n  3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense],\n  3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],\n  1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],\n  2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n  1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],\n  4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],\n  2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],\n  3372526763: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n  205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],\n  1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],\n  1327628568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingAppliedValue],\n  4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],\n  919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],\n  2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],\n  982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],\n  3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],\n  2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],\n  2851387026: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileProperties, i.ProfileSectionLocation, i.ProfileOrientation],\n  826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],\n  3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],\n  4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],\n  3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],\n  2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],\n  3912681535: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralMember],\n  1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],\n  504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],\n  3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],\n  3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n  886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],\n  2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedSpace, i.RelatedCoverings],\n  2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n  693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],\n  4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],\n  781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],\n  3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],\n  279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],\n  4189434867: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DailyInteraction, i.ImportanceRating, i.LocationOfInteraction, i.RelatedSpaceProgram, i.RelatingSpaceProgram],\n  3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n  2051452291: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],\n  202636808: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition, i.OverridingProperties],\n  750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],\n  1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n  1058617721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n  4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType],\n  366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],\n  3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],\n  1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],\n  2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],\n  4158566097: (i) => [i.Position, i.Height, i.BottomRadius],\n  3626867408: (i) => [i.Position, i.Height, i.Radius],\n  2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],\n  3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  451544542: (i) => [i.Position, i.Radius],\n  3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n  2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness, i.SubsequentThickness, i.VaryingThicknessLocation],\n  4070609034: (i) => [i.Contents],\n  2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface],\n  2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],\n  4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],\n  1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority],\n  2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],\n  1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.CentreOfGravityInY],\n  1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],\n  3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n  1260505505: (_) => [],\n  4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],\n  1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],\n  2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],\n  300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3732776249: (i) => [i.Segments, i.SelfIntersect],\n  2510884976: (i) => [i.Position],\n  2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],\n  3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SubmittedBy, i.PreparedBy, i.SubmittedOn, i.Status, i.TargetUsers, i.UpdateDate, i.ID, i.PredefinedType],\n  1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],\n  1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  681481545: (i) => [i.Contents],\n  3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  360485395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence, i.ElectricCurrentType, i.InputVoltage, i.InputFrequency, i.FullLoadCurrent, i.MinimumCircuitCurrent, i.MaximumPowerInput, i.RatedPowerInput, i.InputPhase],\n  1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],\n  1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],\n  2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1962604670: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3272907226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  807026263: (i) => [i.Outer],\n  3737207727: (i) => [i.Outer, i.Voids],\n  647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  814719939: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  200128114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes],\n  2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.InventoryType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],\n  4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SkillSet],\n  1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2506943328: (i) => [i.Contents],\n  377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength],\n  2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1916936684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.MoveFrom, i.MoveTo, i.PunchList],\n  4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],\n  3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3425660407: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.ActionID],\n  2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LifeCyclePhase],\n  3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PermitID],\n  804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3724593414: (i) => [i.Points],\n  3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ProcedureID, i.ProcedureType, i.UserDefinedProcedureType],\n  2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ID, i.PredefinedType, i.Status],\n  3642467123: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Records, i.PredefinedType],\n  3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3248260540: (i) => [i.Contents],\n  2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n  2863920197: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl, i.TimeForTask],\n  1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3517283431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ActualStart, i.EarlyStart, i.LateStart, i.ScheduleStart, i.ActualFinish, i.EarlyFinish, i.LateFinish, i.ScheduleFinish, i.ScheduleDuration, i.ActualDuration, i.RemainingTime, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.StartFloat, i.FinishFloat, i.Completion],\n  4105383287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ServiceLifeType, i.ServiceLifeDuration],\n  4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],\n  2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.InteriorOrExteriorSpace, i.ElevationWithFlooring],\n  1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  652456506: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SpaceProgramIdentifier, i.MaxRequiredArea, i.MinRequiredArea, i.RequestedLocation, i.StandardRequiredArea],\n  3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy],\n  1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n  4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n  214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n  2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n  1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue],\n  1721250024: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads],\n  1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],\n  1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue],\n  3987759626: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads],\n  2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy],\n  734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n  1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear],\n  1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n  148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SubContractor, i.JobDescription],\n  2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1637806684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ApplicableDates, i.TimeSeriesScheduleType, i.TimeSeries],\n  1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OperationType, i.CapacityByWeight, i.CapacityByNumber],\n  3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation],\n  1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],\n  4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],\n  3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],\n  1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  1213861670: (i) => [i.Segments, i.SelfIntersect],\n  3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.RequestID],\n  1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2470393545: (i) => [i.Contents],\n  3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.AssetID, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],\n  1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect],\n  819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1916977116: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect],\n  231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  52481810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.CompositionType],\n  1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2611217952: (i) => [i.Position, i.Radius],\n  2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2188551683: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  1163958913: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Criterion, i.CriterionDateTime],\n  3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],\n  1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.Suppliers, i.UsageRatio],\n  488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],\n  335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4147604152: (i) => [i.Contents],\n  1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection],\n  395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth],\n  869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  855621170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength],\n  663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1365060375: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1634875225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  857184966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],\n  3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],\n  3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3055160366: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.WeightsData],\n  3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],\n  2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing],\n  2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],\n  1376911519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Radius],\n  1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],\n  4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRiser, i.NumberOfTreads, i.RiserHeight, i.TreadLength],\n  2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults],\n  3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],\n  2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],\n  3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth],\n  2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2454782716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Width, i.Height],\n  578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ControlElementId],\n  3700593921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.DistributionPointFunction, i.UserDefinedFunction],\n  979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarRole, i.BarSurface]\n};\nTypeInitialisers[1] = {\n  3699917729: (v) => new IFC2X3.IfcAbsorbedDoseMeasure(v),\n  4182062534: (v) => new IFC2X3.IfcAccelerationMeasure(v),\n  360377573: (v) => new IFC2X3.IfcAmountOfSubstanceMeasure(v),\n  632304761: (v) => new IFC2X3.IfcAngularVelocityMeasure(v),\n  2650437152: (v) => new IFC2X3.IfcAreaMeasure(v),\n  2735952531: (v) => new IFC2X3.IfcBoolean(v),\n  1867003952: (v) => new IFC2X3.IfcBoxAlignment(v),\n  2991860651: (v) => new IFC2X3.IfcComplexNumber(v),\n  3812528620: (v) => new IFC2X3.IfcCompoundPlaneAngleMeasure(v),\n  3238673880: (v) => new IFC2X3.IfcContextDependentMeasure(v),\n  1778710042: (v) => new IFC2X3.IfcCountMeasure(v),\n  94842927: (v) => new IFC2X3.IfcCurvatureMeasure(v),\n  86635668: (v) => new IFC2X3.IfcDayInMonthNumber(v),\n  300323983: (v) => new IFC2X3.IfcDaylightSavingHour(v),\n  1514641115: (v) => new IFC2X3.IfcDescriptiveMeasure(v),\n  4134073009: (v) => new IFC2X3.IfcDimensionCount(v),\n  524656162: (v) => new IFC2X3.IfcDoseEquivalentMeasure(v),\n  69416015: (v) => new IFC2X3.IfcDynamicViscosityMeasure(v),\n  1827137117: (v) => new IFC2X3.IfcElectricCapacitanceMeasure(v),\n  3818826038: (v) => new IFC2X3.IfcElectricChargeMeasure(v),\n  2093906313: (v) => new IFC2X3.IfcElectricConductanceMeasure(v),\n  3790457270: (v) => new IFC2X3.IfcElectricCurrentMeasure(v),\n  2951915441: (v) => new IFC2X3.IfcElectricResistanceMeasure(v),\n  2506197118: (v) => new IFC2X3.IfcElectricVoltageMeasure(v),\n  2078135608: (v) => new IFC2X3.IfcEnergyMeasure(v),\n  1102727119: (v) => new IFC2X3.IfcFontStyle(v),\n  2715512545: (v) => new IFC2X3.IfcFontVariant(v),\n  2590844177: (v) => new IFC2X3.IfcFontWeight(v),\n  1361398929: (v) => new IFC2X3.IfcForceMeasure(v),\n  3044325142: (v) => new IFC2X3.IfcFrequencyMeasure(v),\n  3064340077: (v) => new IFC2X3.IfcGloballyUniqueId(v),\n  3113092358: (v) => new IFC2X3.IfcHeatFluxDensityMeasure(v),\n  1158859006: (v) => new IFC2X3.IfcHeatingValueMeasure(v),\n  2589826445: (v) => new IFC2X3.IfcHourInDay(v),\n  983778844: (v) => new IFC2X3.IfcIdentifier(v),\n  3358199106: (v) => new IFC2X3.IfcIlluminanceMeasure(v),\n  2679005408: (v) => new IFC2X3.IfcInductanceMeasure(v),\n  1939436016: (v) => new IFC2X3.IfcInteger(v),\n  3809634241: (v) => new IFC2X3.IfcIntegerCountRateMeasure(v),\n  3686016028: (v) => new IFC2X3.IfcIonConcentrationMeasure(v),\n  3192672207: (v) => new IFC2X3.IfcIsothermalMoistureCapacityMeasure(v),\n  2054016361: (v) => new IFC2X3.IfcKinematicViscosityMeasure(v),\n  3258342251: (v) => new IFC2X3.IfcLabel(v),\n  1243674935: (v) => new IFC2X3.IfcLengthMeasure(v),\n  191860431: (v) => new IFC2X3.IfcLinearForceMeasure(v),\n  2128979029: (v) => new IFC2X3.IfcLinearMomentMeasure(v),\n  1307019551: (v) => new IFC2X3.IfcLinearStiffnessMeasure(v),\n  3086160713: (v) => new IFC2X3.IfcLinearVelocityMeasure(v),\n  503418787: (v) => new IFC2X3.IfcLogical(v),\n  2095003142: (v) => new IFC2X3.IfcLuminousFluxMeasure(v),\n  2755797622: (v) => new IFC2X3.IfcLuminousIntensityDistributionMeasure(v),\n  151039812: (v) => new IFC2X3.IfcLuminousIntensityMeasure(v),\n  286949696: (v) => new IFC2X3.IfcMagneticFluxDensityMeasure(v),\n  2486716878: (v) => new IFC2X3.IfcMagneticFluxMeasure(v),\n  1477762836: (v) => new IFC2X3.IfcMassDensityMeasure(v),\n  4017473158: (v) => new IFC2X3.IfcMassFlowRateMeasure(v),\n  3124614049: (v) => new IFC2X3.IfcMassMeasure(v),\n  3531705166: (v) => new IFC2X3.IfcMassPerLengthMeasure(v),\n  102610177: (v) => new IFC2X3.IfcMinuteInHour(v),\n  3341486342: (v) => new IFC2X3.IfcModulusOfElasticityMeasure(v),\n  2173214787: (v) => new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v),\n  1052454078: (v) => new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v),\n  1753493141: (v) => new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v),\n  3177669450: (v) => new IFC2X3.IfcMoistureDiffusivityMeasure(v),\n  1648970520: (v) => new IFC2X3.IfcMolecularWeightMeasure(v),\n  3114022597: (v) => new IFC2X3.IfcMomentOfInertiaMeasure(v),\n  2615040989: (v) => new IFC2X3.IfcMonetaryMeasure(v),\n  765770214: (v) => new IFC2X3.IfcMonthInYearNumber(v),\n  2095195183: (v) => new IFC2X3.IfcNormalisedRatioMeasure(v),\n  2395907400: (v) => new IFC2X3.IfcNumericMeasure(v),\n  929793134: (v) => new IFC2X3.IfcPHMeasure(v),\n  2260317790: (v) => new IFC2X3.IfcParameterValue(v),\n  2642773653: (v) => new IFC2X3.IfcPlanarForceMeasure(v),\n  4042175685: (v) => new IFC2X3.IfcPlaneAngleMeasure(v),\n  2815919920: (v) => new IFC2X3.IfcPositiveLengthMeasure(v),\n  3054510233: (v) => new IFC2X3.IfcPositivePlaneAngleMeasure(v),\n  1245737093: (v) => new IFC2X3.IfcPositiveRatioMeasure(v),\n  1364037233: (v) => new IFC2X3.IfcPowerMeasure(v),\n  2169031380: (v) => new IFC2X3.IfcPresentableText(v),\n  3665567075: (v) => new IFC2X3.IfcPressureMeasure(v),\n  3972513137: (v) => new IFC2X3.IfcRadioActivityMeasure(v),\n  96294661: (v) => new IFC2X3.IfcRatioMeasure(v),\n  200335297: (v) => new IFC2X3.IfcReal(v),\n  2133746277: (v) => new IFC2X3.IfcRotationalFrequencyMeasure(v),\n  1755127002: (v) => new IFC2X3.IfcRotationalMassMeasure(v),\n  3211557302: (v) => new IFC2X3.IfcRotationalStiffnessMeasure(v),\n  2766185779: (v) => new IFC2X3.IfcSecondInMinute(v),\n  3467162246: (v) => new IFC2X3.IfcSectionModulusMeasure(v),\n  2190458107: (v) => new IFC2X3.IfcSectionalAreaIntegralMeasure(v),\n  408310005: (v) => new IFC2X3.IfcShearModulusMeasure(v),\n  3471399674: (v) => new IFC2X3.IfcSolidAngleMeasure(v),\n  846465480: (v) => new IFC2X3.IfcSoundPowerMeasure(v),\n  993287707: (v) => new IFC2X3.IfcSoundPressureMeasure(v),\n  3477203348: (v) => new IFC2X3.IfcSpecificHeatCapacityMeasure(v),\n  2757832317: (v) => new IFC2X3.IfcSpecularExponent(v),\n  361837227: (v) => new IFC2X3.IfcSpecularRoughness(v),\n  58845555: (v) => new IFC2X3.IfcTemperatureGradientMeasure(v),\n  2801250643: (v) => new IFC2X3.IfcText(v),\n  1460886941: (v) => new IFC2X3.IfcTextAlignment(v),\n  3490877962: (v) => new IFC2X3.IfcTextDecoration(v),\n  603696268: (v) => new IFC2X3.IfcTextFontName(v),\n  296282323: (v) => new IFC2X3.IfcTextTransformation(v),\n  232962298: (v) => new IFC2X3.IfcThermalAdmittanceMeasure(v),\n  2645777649: (v) => new IFC2X3.IfcThermalConductivityMeasure(v),\n  2281867870: (v) => new IFC2X3.IfcThermalExpansionCoefficientMeasure(v),\n  857959152: (v) => new IFC2X3.IfcThermalResistanceMeasure(v),\n  2016195849: (v) => new IFC2X3.IfcThermalTransmittanceMeasure(v),\n  743184107: (v) => new IFC2X3.IfcThermodynamicTemperatureMeasure(v),\n  2726807636: (v) => new IFC2X3.IfcTimeMeasure(v),\n  2591213694: (v) => new IFC2X3.IfcTimeStamp(v),\n  1278329552: (v) => new IFC2X3.IfcTorqueMeasure(v),\n  3345633955: (v) => new IFC2X3.IfcVaporPermeabilityMeasure(v),\n  3458127941: (v) => new IFC2X3.IfcVolumeMeasure(v),\n  2593997549: (v) => new IFC2X3.IfcVolumetricFlowRateMeasure(v),\n  51269191: (v) => new IFC2X3.IfcWarpingConstantMeasure(v),\n  1718600412: (v) => new IFC2X3.IfcWarpingMomentMeasure(v),\n  4065007721: (v) => new IFC2X3.IfcYearNumber(v)\n};\nvar IFC2X3;\n(function(IFC2X32) {\n  class IfcAbsorbedDoseMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;\n  class IfcAccelerationMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure;\n  class IfcAmountOfSubstanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;\n  class IfcAngularVelocityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;\n  class IfcAreaMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcAreaMeasure = IfcAreaMeasure;\n  class IfcBoolean {\n    constructor(value) {\n      this.value = value;\n      this.type = 3;\n    }\n  }\n  IFC2X32.IfcBoolean = IfcBoolean;\n  class IfcBoxAlignment {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcBoxAlignment = IfcBoxAlignment;\n  class IfcComplexNumber {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC2X32.IfcComplexNumber = IfcComplexNumber;\n  class IfcCompoundPlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;\n  class IfcContextDependentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure;\n  class IfcCountMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcCountMeasure = IfcCountMeasure;\n  class IfcCurvatureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure;\n  class IfcDayInMonthNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber;\n  class IfcDaylightSavingHour {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour;\n  class IfcDescriptiveMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure;\n  class IfcDimensionCount {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcDimensionCount = IfcDimensionCount;\n  class IfcDoseEquivalentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;\n  class IfcDynamicViscosityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;\n  class IfcElectricCapacitanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;\n  class IfcElectricChargeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure;\n  class IfcElectricConductanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;\n  class IfcElectricCurrentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;\n  class IfcElectricResistanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;\n  class IfcElectricVoltageMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;\n  class IfcEnergyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure;\n  class IfcFontStyle {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcFontStyle = IfcFontStyle;\n  class IfcFontVariant {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcFontVariant = IfcFontVariant;\n  class IfcFontWeight {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcFontWeight = IfcFontWeight;\n  class IfcForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcForceMeasure = IfcForceMeasure;\n  class IfcFrequencyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure;\n  class IfcGloballyUniqueId {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId;\n  class IfcHeatFluxDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;\n  class IfcHeatingValueMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure;\n  class IfcHourInDay {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcHourInDay = IfcHourInDay;\n  class IfcIdentifier {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcIdentifier = IfcIdentifier;\n  class IfcIlluminanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure;\n  class IfcInductanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure;\n  class IfcInteger {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcInteger = IfcInteger;\n  class IfcIntegerCountRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;\n  class IfcIonConcentrationMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;\n  class IfcIsothermalMoistureCapacityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;\n  class IfcKinematicViscosityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;\n  class IfcLabel {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcLabel = IfcLabel;\n  class IfcLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcLengthMeasure = IfcLengthMeasure;\n  class IfcLinearForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure;\n  class IfcLinearMomentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure;\n  class IfcLinearStiffnessMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;\n  class IfcLinearVelocityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;\n  class IfcLogical {\n    constructor(value) {\n      this.value = value;\n      this.type = 3;\n    }\n  }\n  IFC2X32.IfcLogical = IfcLogical;\n  class IfcLuminousFluxMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;\n  class IfcLuminousIntensityDistributionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;\n  class IfcLuminousIntensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;\n  class IfcMagneticFluxDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;\n  class IfcMagneticFluxMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;\n  class IfcMassDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure;\n  class IfcMassFlowRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;\n  class IfcMassMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMassMeasure = IfcMassMeasure;\n  class IfcMassPerLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;\n  class IfcMinuteInHour {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMinuteInHour = IfcMinuteInHour;\n  class IfcModulusOfElasticityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;\n  class IfcModulusOfLinearSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;\n  class IfcModulusOfRotationalSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;\n  class IfcModulusOfSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;\n  class IfcMoistureDiffusivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;\n  class IfcMolecularWeightMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;\n  class IfcMomentOfInertiaMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;\n  class IfcMonetaryMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure;\n  class IfcMonthInYearNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber;\n  class IfcNormalisedRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;\n  class IfcNumericMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcNumericMeasure = IfcNumericMeasure;\n  class IfcPHMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcPHMeasure = IfcPHMeasure;\n  class IfcParameterValue {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcParameterValue = IfcParameterValue;\n  class IfcPlanarForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure;\n  class IfcPlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;\n  class IfcPositiveLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;\n  class IfcPositivePlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;\n  class IfcPositiveRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;\n  class IfcPowerMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcPowerMeasure = IfcPowerMeasure;\n  class IfcPresentableText {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcPresentableText = IfcPresentableText;\n  class IfcPressureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcPressureMeasure = IfcPressureMeasure;\n  class IfcRadioActivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure;\n  class IfcRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcRatioMeasure = IfcRatioMeasure;\n  class IfcReal {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcReal = IfcReal;\n  class IfcRotationalFrequencyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;\n  class IfcRotationalMassMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure;\n  class IfcRotationalStiffnessMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;\n  class IfcSecondInMinute {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSecondInMinute = IfcSecondInMinute;\n  class IfcSectionModulusMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure;\n  class IfcSectionalAreaIntegralMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;\n  class IfcShearModulusMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure;\n  class IfcSolidAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure;\n  class IfcSoundPowerMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure;\n  class IfcSoundPressureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure;\n  class IfcSpecificHeatCapacityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;\n  class IfcSpecularExponent {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSpecularExponent = IfcSpecularExponent;\n  class IfcSpecularRoughness {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness;\n  class IfcTemperatureGradientMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;\n  class IfcText {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcText = IfcText;\n  class IfcTextAlignment {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcTextAlignment = IfcTextAlignment;\n  class IfcTextDecoration {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcTextDecoration = IfcTextDecoration;\n  class IfcTextFontName {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcTextFontName = IfcTextFontName;\n  class IfcTextTransformation {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC2X32.IfcTextTransformation = IfcTextTransformation;\n  class IfcThermalAdmittanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;\n  class IfcThermalConductivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;\n  class IfcThermalExpansionCoefficientMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;\n  class IfcThermalResistanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;\n  class IfcThermalTransmittanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;\n  class IfcThermodynamicTemperatureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;\n  class IfcTimeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcTimeMeasure = IfcTimeMeasure;\n  class IfcTimeStamp {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcTimeStamp = IfcTimeStamp;\n  class IfcTorqueMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure;\n  class IfcVaporPermeabilityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;\n  class IfcVolumeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure;\n  class IfcVolumetricFlowRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;\n  class IfcWarpingConstantMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;\n  class IfcWarpingMomentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;\n  class IfcYearNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC2X32.IfcYearNumber = IfcYearNumber;\n  class IfcActionSourceTypeEnum {\n  }\n  IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: \"DEAD_LOAD_G\" };\n  IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: \"COMPLETION_G1\" };\n  IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: \"LIVE_LOAD_Q\" };\n  IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: \"SNOW_S\" };\n  IfcActionSourceTypeEnum.WIND_W = { type: 3, value: \"WIND_W\" };\n  IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: \"PRESTRESSING_P\" };\n  IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: \"SETTLEMENT_U\" };\n  IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: \"TEMPERATURE_T\" };\n  IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: \"EARTHQUAKE_E\" };\n  IfcActionSourceTypeEnum.FIRE = { type: 3, value: \"FIRE\" };\n  IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: \"IMPULSE\" };\n  IfcActionSourceTypeEnum.IMPACT = { type: 3, value: \"IMPACT\" };\n  IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n  IfcActionSourceTypeEnum.ERECTION = { type: 3, value: \"ERECTION\" };\n  IfcActionSourceTypeEnum.PROPPING = { type: 3, value: \"PROPPING\" };\n  IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: \"SYSTEM_IMPERFECTION\" };\n  IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: \"SHRINKAGE\" };\n  IfcActionSourceTypeEnum.CREEP = { type: 3, value: \"CREEP\" };\n  IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: \"LACK_OF_FIT\" };\n  IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: \"BUOYANCY\" };\n  IfcActionSourceTypeEnum.ICE = { type: 3, value: \"ICE\" };\n  IfcActionSourceTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n  IfcActionSourceTypeEnum.WAVE = { type: 3, value: \"WAVE\" };\n  IfcActionSourceTypeEnum.RAIN = { type: 3, value: \"RAIN\" };\n  IfcActionSourceTypeEnum.BRAKES = { type: 3, value: \"BRAKES\" };\n  IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;\n  class IfcActionTypeEnum {\n  }\n  IfcActionTypeEnum.PERMANENT_G = { type: 3, value: \"PERMANENT_G\" };\n  IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: \"VARIABLE_Q\" };\n  IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: \"EXTRAORDINARY_A\" };\n  IfcActionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum;\n  class IfcActuatorTypeEnum {\n  }\n  IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: \"ELECTRICACTUATOR\" };\n  IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: \"HANDOPERATEDACTUATOR\" };\n  IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: \"HYDRAULICACTUATOR\" };\n  IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: \"PNEUMATICACTUATOR\" };\n  IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: \"THERMOSTATICACTUATOR\" };\n  IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum;\n  class IfcAddressTypeEnum {\n  }\n  IfcAddressTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n  IfcAddressTypeEnum.SITE = { type: 3, value: \"SITE\" };\n  IfcAddressTypeEnum.HOME = { type: 3, value: \"HOME\" };\n  IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: \"DISTRIBUTIONPOINT\" };\n  IfcAddressTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum;\n  class IfcAheadOrBehind {\n  }\n  IfcAheadOrBehind.AHEAD = { type: 3, value: \"AHEAD\" };\n  IfcAheadOrBehind.BEHIND = { type: 3, value: \"BEHIND\" };\n  IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind;\n  class IfcAirTerminalBoxTypeEnum {\n  }\n  IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: \"CONSTANTFLOW\" };\n  IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREDEPENDANT\" };\n  IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREINDEPENDANT\" };\n  IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;\n  class IfcAirTerminalTypeEnum {\n  }\n  IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: \"GRILLE\" };\n  IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: \"REGISTER\" };\n  IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: \"DIFFUSER\" };\n  IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: \"EYEBALL\" };\n  IfcAirTerminalTypeEnum.IRIS = { type: 3, value: \"IRIS\" };\n  IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: \"LINEARGRILLE\" };\n  IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: \"LINEARDIFFUSER\" };\n  IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;\n  class IfcAirToAirHeatRecoveryTypeEnum {\n  }\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECOUNTERFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECROSSFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATEPARALLELFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: \"ROTARYWHEEL\" };\n  IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: \"RUNAROUNDCOILLOOP\" };\n  IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: \"HEATPIPE\" };\n  IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: \"TWINTOWERENTHALPYRECOVERYLOOPS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONCOILTYPEHEATEXCHANGERS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;\n  class IfcAlarmTypeEnum {\n  }\n  IfcAlarmTypeEnum.BELL = { type: 3, value: \"BELL\" };\n  IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: \"BREAKGLASSBUTTON\" };\n  IfcAlarmTypeEnum.LIGHT = { type: 3, value: \"LIGHT\" };\n  IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: \"MANUALPULLBOX\" };\n  IfcAlarmTypeEnum.SIREN = { type: 3, value: \"SIREN\" };\n  IfcAlarmTypeEnum.WHISTLE = { type: 3, value: \"WHISTLE\" };\n  IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum;\n  class IfcAnalysisModelTypeEnum {\n  }\n  IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: \"IN_PLANE_LOADING_2D\" };\n  IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: \"OUT_PLANE_LOADING_2D\" };\n  IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: \"LOADING_3D\" };\n  IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;\n  class IfcAnalysisTheoryTypeEnum {\n  }\n  IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: \"FIRST_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: \"SECOND_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: \"THIRD_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: \"FULL_NONLINEAR_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;\n  class IfcArithmeticOperatorEnum {\n  }\n  IfcArithmeticOperatorEnum.ADD = { type: 3, value: \"ADD\" };\n  IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: \"DIVIDE\" };\n  IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: \"MULTIPLY\" };\n  IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: \"SUBTRACT\" };\n  IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;\n  class IfcAssemblyPlaceEnum {\n  }\n  IfcAssemblyPlaceEnum.SITE = { type: 3, value: \"SITE\" };\n  IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: \"FACTORY\" };\n  IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;\n  class IfcBSplineCurveForm {\n  }\n  IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: \"POLYLINE_FORM\" };\n  IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: \"CIRCULAR_ARC\" };\n  IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: \"ELLIPTIC_ARC\" };\n  IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: \"PARABOLIC_ARC\" };\n  IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: \"HYPERBOLIC_ARC\" };\n  IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm;\n  class IfcBeamTypeEnum {\n  }\n  IfcBeamTypeEnum.BEAM = { type: 3, value: \"BEAM\" };\n  IfcBeamTypeEnum.JOIST = { type: 3, value: \"JOIST\" };\n  IfcBeamTypeEnum.LINTEL = { type: 3, value: \"LINTEL\" };\n  IfcBeamTypeEnum.T_BEAM = { type: 3, value: \"T_BEAM\" };\n  IfcBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum;\n  class IfcBenchmarkEnum {\n  }\n  IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: \"GREATERTHAN\" };\n  IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: \"GREATERTHANOREQUALTO\" };\n  IfcBenchmarkEnum.LESSTHAN = { type: 3, value: \"LESSTHAN\" };\n  IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: \"LESSTHANOREQUALTO\" };\n  IfcBenchmarkEnum.EQUALTO = { type: 3, value: \"EQUALTO\" };\n  IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: \"NOTEQUALTO\" };\n  IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum;\n  class IfcBoilerTypeEnum {\n  }\n  IfcBoilerTypeEnum.WATER = { type: 3, value: \"WATER\" };\n  IfcBoilerTypeEnum.STEAM = { type: 3, value: \"STEAM\" };\n  IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum;\n  class IfcBooleanOperator {\n  }\n  IfcBooleanOperator.UNION = { type: 3, value: \"UNION\" };\n  IfcBooleanOperator.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n  IfcBooleanOperator.DIFFERENCE = { type: 3, value: \"DIFFERENCE\" };\n  IFC2X32.IfcBooleanOperator = IfcBooleanOperator;\n  class IfcBuildingElementProxyTypeEnum {\n  }\n  IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;\n  class IfcCableCarrierFittingTypeEnum {\n  }\n  IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: \"CROSS\" };\n  IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: \"REDUCER\" };\n  IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: \"TEE\" };\n  IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;\n  class IfcCableCarrierSegmentTypeEnum {\n  }\n  IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: \"CABLELADDERSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: \"CABLETRAYSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: \"CABLETRUNKINGSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: \"CONDUITSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;\n  class IfcCableSegmentTypeEnum {\n  }\n  IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: \"CABLESEGMENT\" };\n  IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: \"CONDUCTORSEGMENT\" };\n  IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;\n  class IfcChangeActionEnum {\n  }\n  IfcChangeActionEnum.NOCHANGE = { type: 3, value: \"NOCHANGE\" };\n  IfcChangeActionEnum.MODIFIED = { type: 3, value: \"MODIFIED\" };\n  IfcChangeActionEnum.ADDED = { type: 3, value: \"ADDED\" };\n  IfcChangeActionEnum.DELETED = { type: 3, value: \"DELETED\" };\n  IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: \"MODIFIEDADDED\" };\n  IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: \"MODIFIEDDELETED\" };\n  IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum;\n  class IfcChillerTypeEnum {\n  }\n  IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n  IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n  IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: \"HEATRECOVERY\" };\n  IfcChillerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum;\n  class IfcCoilTypeEnum {\n  }\n  IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: \"DXCOOLINGCOIL\" };\n  IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: \"WATERCOOLINGCOIL\" };\n  IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: \"STEAMHEATINGCOIL\" };\n  IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: \"WATERHEATINGCOIL\" };\n  IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: \"ELECTRICHEATINGCOIL\" };\n  IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: \"GASHEATINGCOIL\" };\n  IfcCoilTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum;\n  class IfcColumnTypeEnum {\n  }\n  IfcColumnTypeEnum.COLUMN = { type: 3, value: \"COLUMN\" };\n  IfcColumnTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum;\n  class IfcCompressorTypeEnum {\n  }\n  IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: \"DYNAMIC\" };\n  IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: \"RECIPROCATING\" };\n  IfcCompressorTypeEnum.ROTARY = { type: 3, value: \"ROTARY\" };\n  IfcCompressorTypeEnum.SCROLL = { type: 3, value: \"SCROLL\" };\n  IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: \"TROCHOIDAL\" };\n  IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: \"SINGLESTAGE\" };\n  IfcCompressorTypeEnum.BOOSTER = { type: 3, value: \"BOOSTER\" };\n  IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: \"OPENTYPE\" };\n  IfcCompressorTypeEnum.HERMETIC = { type: 3, value: \"HERMETIC\" };\n  IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: \"SEMIHERMETIC\" };\n  IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: \"WELDEDSHELLHERMETIC\" };\n  IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: \"ROLLINGPISTON\" };\n  IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: \"ROTARYVANE\" };\n  IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: \"SINGLESCREW\" };\n  IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: \"TWINSCREW\" };\n  IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum;\n  class IfcCondenserTypeEnum {\n  }\n  IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: \"WATERCOOLEDSHELLTUBE\" };\n  IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: \"WATERCOOLEDSHELLCOIL\" };\n  IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: \"WATERCOOLEDTUBEINTUBE\" };\n  IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: \"WATERCOOLEDBRAZEDPLATE\" };\n  IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n  IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: \"EVAPORATIVECOOLED\" };\n  IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum;\n  class IfcConnectionTypeEnum {\n  }\n  IfcConnectionTypeEnum.ATPATH = { type: 3, value: \"ATPATH\" };\n  IfcConnectionTypeEnum.ATSTART = { type: 3, value: \"ATSTART\" };\n  IfcConnectionTypeEnum.ATEND = { type: 3, value: \"ATEND\" };\n  IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum;\n  class IfcConstraintEnum {\n  }\n  IfcConstraintEnum.HARD = { type: 3, value: \"HARD\" };\n  IfcConstraintEnum.SOFT = { type: 3, value: \"SOFT\" };\n  IfcConstraintEnum.ADVISORY = { type: 3, value: \"ADVISORY\" };\n  IfcConstraintEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConstraintEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcConstraintEnum = IfcConstraintEnum;\n  class IfcControllerTypeEnum {\n  }\n  IfcControllerTypeEnum.FLOATING = { type: 3, value: \"FLOATING\" };\n  IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: \"PROPORTIONAL\" };\n  IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: \"PROPORTIONALINTEGRAL\" };\n  IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: \"PROPORTIONALINTEGRALDERIVATIVE\" };\n  IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: \"TIMEDTWOPOSITION\" };\n  IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: \"TWOPOSITION\" };\n  IfcControllerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum;\n  class IfcCooledBeamTypeEnum {\n  }\n  IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: \"ACTIVE\" };\n  IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: \"PASSIVE\" };\n  IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;\n  class IfcCoolingTowerTypeEnum {\n  }\n  IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: \"NATURALDRAFT\" };\n  IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: \"MECHANICALINDUCEDDRAFT\" };\n  IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: \"MECHANICALFORCEDDRAFT\" };\n  IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;\n  class IfcCostScheduleTypeEnum {\n  }\n  IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: \"BUDGET\" };\n  IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: \"COSTPLAN\" };\n  IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: \"ESTIMATE\" };\n  IfcCostScheduleTypeEnum.TENDER = { type: 3, value: \"TENDER\" };\n  IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: \"PRICEDBILLOFQUANTITIES\" };\n  IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: \"UNPRICEDBILLOFQUANTITIES\" };\n  IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: \"SCHEDULEOFRATES\" };\n  IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;\n  class IfcCoveringTypeEnum {\n  }\n  IfcCoveringTypeEnum.CEILING = { type: 3, value: \"CEILING\" };\n  IfcCoveringTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n  IfcCoveringTypeEnum.CLADDING = { type: 3, value: \"CLADDING\" };\n  IfcCoveringTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n  IfcCoveringTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n  IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: \"MEMBRANE\" };\n  IfcCoveringTypeEnum.SLEEVING = { type: 3, value: \"SLEEVING\" };\n  IfcCoveringTypeEnum.WRAPPING = { type: 3, value: \"WRAPPING\" };\n  IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum;\n  class IfcCurrencyEnum {\n  }\n  IfcCurrencyEnum.AED = { type: 3, value: \"AED\" };\n  IfcCurrencyEnum.AES = { type: 3, value: \"AES\" };\n  IfcCurrencyEnum.ATS = { type: 3, value: \"ATS\" };\n  IfcCurrencyEnum.AUD = { type: 3, value: \"AUD\" };\n  IfcCurrencyEnum.BBD = { type: 3, value: \"BBD\" };\n  IfcCurrencyEnum.BEG = { type: 3, value: \"BEG\" };\n  IfcCurrencyEnum.BGL = { type: 3, value: \"BGL\" };\n  IfcCurrencyEnum.BHD = { type: 3, value: \"BHD\" };\n  IfcCurrencyEnum.BMD = { type: 3, value: \"BMD\" };\n  IfcCurrencyEnum.BND = { type: 3, value: \"BND\" };\n  IfcCurrencyEnum.BRL = { type: 3, value: \"BRL\" };\n  IfcCurrencyEnum.BSD = { type: 3, value: \"BSD\" };\n  IfcCurrencyEnum.BWP = { type: 3, value: \"BWP\" };\n  IfcCurrencyEnum.BZD = { type: 3, value: \"BZD\" };\n  IfcCurrencyEnum.CAD = { type: 3, value: \"CAD\" };\n  IfcCurrencyEnum.CBD = { type: 3, value: \"CBD\" };\n  IfcCurrencyEnum.CHF = { type: 3, value: \"CHF\" };\n  IfcCurrencyEnum.CLP = { type: 3, value: \"CLP\" };\n  IfcCurrencyEnum.CNY = { type: 3, value: \"CNY\" };\n  IfcCurrencyEnum.CYS = { type: 3, value: \"CYS\" };\n  IfcCurrencyEnum.CZK = { type: 3, value: \"CZK\" };\n  IfcCurrencyEnum.DDP = { type: 3, value: \"DDP\" };\n  IfcCurrencyEnum.DEM = { type: 3, value: \"DEM\" };\n  IfcCurrencyEnum.DKK = { type: 3, value: \"DKK\" };\n  IfcCurrencyEnum.EGL = { type: 3, value: \"EGL\" };\n  IfcCurrencyEnum.EST = { type: 3, value: \"EST\" };\n  IfcCurrencyEnum.EUR = { type: 3, value: \"EUR\" };\n  IfcCurrencyEnum.FAK = { type: 3, value: \"FAK\" };\n  IfcCurrencyEnum.FIM = { type: 3, value: \"FIM\" };\n  IfcCurrencyEnum.FJD = { type: 3, value: \"FJD\" };\n  IfcCurrencyEnum.FKP = { type: 3, value: \"FKP\" };\n  IfcCurrencyEnum.FRF = { type: 3, value: \"FRF\" };\n  IfcCurrencyEnum.GBP = { type: 3, value: \"GBP\" };\n  IfcCurrencyEnum.GIP = { type: 3, value: \"GIP\" };\n  IfcCurrencyEnum.GMD = { type: 3, value: \"GMD\" };\n  IfcCurrencyEnum.GRX = { type: 3, value: \"GRX\" };\n  IfcCurrencyEnum.HKD = { type: 3, value: \"HKD\" };\n  IfcCurrencyEnum.HUF = { type: 3, value: \"HUF\" };\n  IfcCurrencyEnum.ICK = { type: 3, value: \"ICK\" };\n  IfcCurrencyEnum.IDR = { type: 3, value: \"IDR\" };\n  IfcCurrencyEnum.ILS = { type: 3, value: \"ILS\" };\n  IfcCurrencyEnum.INR = { type: 3, value: \"INR\" };\n  IfcCurrencyEnum.IRP = { type: 3, value: \"IRP\" };\n  IfcCurrencyEnum.ITL = { type: 3, value: \"ITL\" };\n  IfcCurrencyEnum.JMD = { type: 3, value: \"JMD\" };\n  IfcCurrencyEnum.JOD = { type: 3, value: \"JOD\" };\n  IfcCurrencyEnum.JPY = { type: 3, value: \"JPY\" };\n  IfcCurrencyEnum.KES = { type: 3, value: \"KES\" };\n  IfcCurrencyEnum.KRW = { type: 3, value: \"KRW\" };\n  IfcCurrencyEnum.KWD = { type: 3, value: \"KWD\" };\n  IfcCurrencyEnum.KYD = { type: 3, value: \"KYD\" };\n  IfcCurrencyEnum.LKR = { type: 3, value: \"LKR\" };\n  IfcCurrencyEnum.LUF = { type: 3, value: \"LUF\" };\n  IfcCurrencyEnum.MTL = { type: 3, value: \"MTL\" };\n  IfcCurrencyEnum.MUR = { type: 3, value: \"MUR\" };\n  IfcCurrencyEnum.MXN = { type: 3, value: \"MXN\" };\n  IfcCurrencyEnum.MYR = { type: 3, value: \"MYR\" };\n  IfcCurrencyEnum.NLG = { type: 3, value: \"NLG\" };\n  IfcCurrencyEnum.NZD = { type: 3, value: \"NZD\" };\n  IfcCurrencyEnum.OMR = { type: 3, value: \"OMR\" };\n  IfcCurrencyEnum.PGK = { type: 3, value: \"PGK\" };\n  IfcCurrencyEnum.PHP = { type: 3, value: \"PHP\" };\n  IfcCurrencyEnum.PKR = { type: 3, value: \"PKR\" };\n  IfcCurrencyEnum.PLN = { type: 3, value: \"PLN\" };\n  IfcCurrencyEnum.PTN = { type: 3, value: \"PTN\" };\n  IfcCurrencyEnum.QAR = { type: 3, value: \"QAR\" };\n  IfcCurrencyEnum.RUR = { type: 3, value: \"RUR\" };\n  IfcCurrencyEnum.SAR = { type: 3, value: \"SAR\" };\n  IfcCurrencyEnum.SCR = { type: 3, value: \"SCR\" };\n  IfcCurrencyEnum.SEK = { type: 3, value: \"SEK\" };\n  IfcCurrencyEnum.SGD = { type: 3, value: \"SGD\" };\n  IfcCurrencyEnum.SKP = { type: 3, value: \"SKP\" };\n  IfcCurrencyEnum.THB = { type: 3, value: \"THB\" };\n  IfcCurrencyEnum.TRL = { type: 3, value: \"TRL\" };\n  IfcCurrencyEnum.TTD = { type: 3, value: \"TTD\" };\n  IfcCurrencyEnum.TWD = { type: 3, value: \"TWD\" };\n  IfcCurrencyEnum.USD = { type: 3, value: \"USD\" };\n  IfcCurrencyEnum.VEB = { type: 3, value: \"VEB\" };\n  IfcCurrencyEnum.VND = { type: 3, value: \"VND\" };\n  IfcCurrencyEnum.XEU = { type: 3, value: \"XEU\" };\n  IfcCurrencyEnum.ZAR = { type: 3, value: \"ZAR\" };\n  IfcCurrencyEnum.ZWD = { type: 3, value: \"ZWD\" };\n  IfcCurrencyEnum.NOK = { type: 3, value: \"NOK\" };\n  IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum;\n  class IfcCurtainWallTypeEnum {\n  }\n  IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;\n  class IfcDamperTypeEnum {\n  }\n  IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: \"CONTROLDAMPER\" };\n  IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: \"FIREDAMPER\" };\n  IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: \"SMOKEDAMPER\" };\n  IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: \"FIRESMOKEDAMPER\" };\n  IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: \"BACKDRAFTDAMPER\" };\n  IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: \"RELIEFDAMPER\" };\n  IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: \"BLASTDAMPER\" };\n  IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: \"GRAVITYDAMPER\" };\n  IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: \"GRAVITYRELIEFDAMPER\" };\n  IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: \"BALANCINGDAMPER\" };\n  IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: \"FUMEHOODEXHAUST\" };\n  IfcDamperTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum;\n  class IfcDataOriginEnum {\n  }\n  IfcDataOriginEnum.MEASURED = { type: 3, value: \"MEASURED\" };\n  IfcDataOriginEnum.PREDICTED = { type: 3, value: \"PREDICTED\" };\n  IfcDataOriginEnum.SIMULATED = { type: 3, value: \"SIMULATED\" };\n  IfcDataOriginEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDataOriginEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum;\n  class IfcDerivedUnitEnum {\n  }\n  IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: \"ANGULARVELOCITYUNIT\" };\n  IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: \"COMPOUNDPLANEANGLEUNIT\" };\n  IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: \"DYNAMICVISCOSITYUNIT\" };\n  IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: \"HEATFLUXDENSITYUNIT\" };\n  IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: \"INTEGERCOUNTRATEUNIT\" };\n  IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: \"ISOTHERMALMOISTURECAPACITYUNIT\" };\n  IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: \"KINEMATICVISCOSITYUNIT\" };\n  IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: \"LINEARVELOCITYUNIT\" };\n  IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: \"MASSDENSITYUNIT\" };\n  IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: \"MASSFLOWRATEUNIT\" };\n  IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: \"MOISTUREDIFFUSIVITYUNIT\" };\n  IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: \"MOLECULARWEIGHTUNIT\" };\n  IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: \"SPECIFICHEATCAPACITYUNIT\" };\n  IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: \"THERMALADMITTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: \"THERMALCONDUCTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: \"THERMALRESISTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: \"THERMALTRANSMITTANCEUNIT\" };\n  IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: \"VAPORPERMEABILITYUNIT\" };\n  IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: \"VOLUMETRICFLOWRATEUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: \"ROTATIONALFREQUENCYUNIT\" };\n  IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: \"TORQUEUNIT\" };\n  IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: \"MOMENTOFINERTIAUNIT\" };\n  IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: \"LINEARMOMENTUNIT\" };\n  IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: \"LINEARFORCEUNIT\" };\n  IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: \"PLANARFORCEUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: \"MODULUSOFELASTICITYUNIT\" };\n  IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: \"SHEARMODULUSUNIT\" };\n  IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: \"LINEARSTIFFNESSUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: \"ROTATIONALSTIFFNESSUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: \"ACCELERATIONUNIT\" };\n  IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: \"CURVATUREUNIT\" };\n  IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: \"HEATINGVALUEUNIT\" };\n  IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: \"IONCONCENTRATIONUNIT\" };\n  IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: \"LUMINOUSINTENSITYDISTRIBUTIONUNIT\" };\n  IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: \"MASSPERLENGTHUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFLINEARSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.PHUNIT = { type: 3, value: \"PHUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: \"ROTATIONALMASSUNIT\" };\n  IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: \"SECTIONAREAINTEGRALUNIT\" };\n  IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: \"SECTIONMODULUSUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: \"SOUNDPOWERUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: \"SOUNDPRESSUREUNIT\" };\n  IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: \"TEMPERATUREGRADIENTUNIT\" };\n  IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: \"THERMALEXPANSIONCOEFFICIENTUNIT\" };\n  IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: \"WARPINGCONSTANTUNIT\" };\n  IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: \"WARPINGMOMENTUNIT\" };\n  IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum;\n  class IfcDimensionExtentUsage {\n  }\n  IfcDimensionExtentUsage.ORIGIN = { type: 3, value: \"ORIGIN\" };\n  IfcDimensionExtentUsage.TARGET = { type: 3, value: \"TARGET\" };\n  IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage;\n  class IfcDirectionSenseEnum {\n  }\n  IfcDirectionSenseEnum.POSITIVE = { type: 3, value: \"POSITIVE\" };\n  IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n  IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum;\n  class IfcDistributionChamberElementTypeEnum {\n  }\n  IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: \"FORMEDDUCT\" };\n  IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: \"INSPECTIONCHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: \"INSPECTIONPIT\" };\n  IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: \"MANHOLE\" };\n  IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: \"METERCHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: \"SUMP\" };\n  IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: \"TRENCH\" };\n  IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: \"VALVECHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;\n  class IfcDocumentConfidentialityEnum {\n  }\n  IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: \"PUBLIC\" };\n  IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: \"RESTRICTED\" };\n  IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: \"CONFIDENTIAL\" };\n  IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: \"PERSONAL\" };\n  IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;\n  class IfcDocumentStatusEnum {\n  }\n  IfcDocumentStatusEnum.DRAFT = { type: 3, value: \"DRAFT\" };\n  IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: \"FINALDRAFT\" };\n  IfcDocumentStatusEnum.FINAL = { type: 3, value: \"FINAL\" };\n  IfcDocumentStatusEnum.REVISION = { type: 3, value: \"REVISION\" };\n  IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum;\n  class IfcDoorPanelOperationEnum {\n  }\n  IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: \"SWINGING\" };\n  IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: \"DOUBLE_ACTING\" };\n  IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: \"SLIDING\" };\n  IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: \"FOLDING\" };\n  IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n  IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n  IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;\n  class IfcDoorPanelPositionEnum {\n  }\n  IfcDoorPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n  IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n  IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;\n  class IfcDoorStyleConstructionEnum {\n  }\n  IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n  IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n  IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n  IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n  IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n  IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: \"ALUMINIUM_PLASTIC\" };\n  IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;\n  class IfcDoorStyleOperationEnum {\n  }\n  IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n  IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: \"DOUBLE_DOOR_DOUBLE_SWING\" };\n  IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n  IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: \"DOUBLE_DOOR_SLIDING\" };\n  IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n  IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: \"DOUBLE_DOOR_FOLDING\" };\n  IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n  IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n  IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;\n  class IfcDuctFittingTypeEnum {\n  }\n  IfcDuctFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n  IfcDuctFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n  IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n  IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;\n  class IfcDuctSegmentTypeEnum {\n  }\n  IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n  IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n  IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;\n  class IfcDuctSilencerTypeEnum {\n  }\n  IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: \"FLATOVAL\" };\n  IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n  IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: \"ROUND\" };\n  IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;\n  class IfcElectricApplianceTypeEnum {\n  }\n  IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: \"COMPUTER\" };\n  IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: \"DIRECTWATERHEATER\" };\n  IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: \"DISHWASHER\" };\n  IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: \"ELECTRICCOOKER\" };\n  IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: \"ELECTRICHEATER\" };\n  IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: \"FACSIMILE\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: \"FREESTANDINGFAN\" };\n  IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: \"FREEZER\" };\n  IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: \"FRIDGE_FREEZER\" };\n  IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: \"HANDDRYER\" };\n  IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: \"INDIRECTWATERHEATER\" };\n  IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: \"MICROWAVE\" };\n  IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: \"PHOTOCOPIER\" };\n  IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: \"PRINTER\" };\n  IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: \"REFRIGERATOR\" };\n  IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: \"RADIANTHEATER\" };\n  IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: \"SCANNER\" };\n  IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n  IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: \"TUMBLEDRYER\" };\n  IfcElectricApplianceTypeEnum.TV = { type: 3, value: \"TV\" };\n  IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: \"VENDINGMACHINE\" };\n  IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: \"WASHINGMACHINE\" };\n  IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: \"WATERHEATER\" };\n  IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: \"WATERCOOLER\" };\n  IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;\n  class IfcElectricCurrentEnum {\n  }\n  IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: \"ALTERNATING\" };\n  IfcElectricCurrentEnum.DIRECT = { type: 3, value: \"DIRECT\" };\n  IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum;\n  class IfcElectricDistributionPointFunctionEnum {\n  }\n  IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: \"ALARMPANEL\" };\n  IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: \"CONSUMERUNIT\" };\n  IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: \"CONTROLPANEL\" };\n  IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: \"DISTRIBUTIONBOARD\" };\n  IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: \"GASDETECTORPANEL\" };\n  IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: \"INDICATORPANEL\" };\n  IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: \"MIMICPANEL\" };\n  IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: \"MOTORCONTROLCENTRE\" };\n  IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: \"SWITCHBOARD\" };\n  IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum;\n  class IfcElectricFlowStorageDeviceTypeEnum {\n  }\n  IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: \"BATTERY\" };\n  IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: \"CAPACITORBANK\" };\n  IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: \"HARMONICFILTER\" };\n  IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: \"INDUCTORBANK\" };\n  IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: \"UPS\" };\n  IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;\n  class IfcElectricGeneratorTypeEnum {\n  }\n  IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;\n  class IfcElectricHeaterTypeEnum {\n  }\n  IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: \"ELECTRICPOINTHEATER\" };\n  IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: \"ELECTRICCABLEHEATER\" };\n  IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: \"ELECTRICMATHEATER\" };\n  IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum;\n  class IfcElectricMotorTypeEnum {\n  }\n  IfcElectricMotorTypeEnum.DC = { type: 3, value: \"DC\" };\n  IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: \"INDUCTION\" };\n  IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: \"POLYPHASE\" };\n  IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: \"RELUCTANCESYNCHRONOUS\" };\n  IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: \"SYNCHRONOUS\" };\n  IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;\n  class IfcElectricTimeControlTypeEnum {\n  }\n  IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: \"TIMECLOCK\" };\n  IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: \"TIMEDELAY\" };\n  IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: \"RELAY\" };\n  IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;\n  class IfcElementAssemblyTypeEnum {\n  }\n  IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: \"ACCESSORY_ASSEMBLY\" };\n  IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: \"ARCH\" };\n  IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: \"BEAM_GRID\" };\n  IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: \"BRACED_FRAME\" };\n  IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: \"GIRDER\" };\n  IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: \"REINFORCEMENT_UNIT\" };\n  IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: \"RIGID_FRAME\" };\n  IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: \"SLAB_FIELD\" };\n  IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: \"TRUSS\" };\n  IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;\n  class IfcElementCompositionEnum {\n  }\n  IfcElementCompositionEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n  IfcElementCompositionEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n  IfcElementCompositionEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n  IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum;\n  class IfcEnergySequenceEnum {\n  }\n  IfcEnergySequenceEnum.PRIMARY = { type: 3, value: \"PRIMARY\" };\n  IfcEnergySequenceEnum.SECONDARY = { type: 3, value: \"SECONDARY\" };\n  IfcEnergySequenceEnum.TERTIARY = { type: 3, value: \"TERTIARY\" };\n  IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: \"AUXILIARY\" };\n  IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum;\n  class IfcEnvironmentalImpactCategoryEnum {\n  }\n  IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: \"COMBINEDVALUE\" };\n  IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n  IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: \"EXTRACTION\" };\n  IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: \"INSTALLATION\" };\n  IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: \"MANUFACTURE\" };\n  IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: \"TRANSPORTATION\" };\n  IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum;\n  class IfcEvaporativeCoolerTypeEnum {\n  }\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: \"DIRECTEVAPORATIVEAIRWASHER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: \"INDIRECTEVAPORATIVEWETCOIL\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: \"INDIRECTDIRECTCOMBINATION\" };\n  IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;\n  class IfcEvaporatorTypeEnum {\n  }\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: \"DIRECTEXPANSIONSHELLANDTUBE\" };\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: \"DIRECTEXPANSIONTUBEINTUBE\" };\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: \"DIRECTEXPANSIONBRAZEDPLATE\" };\n  IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: \"FLOODEDSHELLANDTUBE\" };\n  IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: \"SHELLANDCOIL\" };\n  IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;\n  class IfcFanTypeEnum {\n  }\n  IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: \"CENTRIFUGALFORWARDCURVED\" };\n  IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: \"CENTRIFUGALRADIAL\" };\n  IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: \"CENTRIFUGALBACKWARDINCLINEDCURVED\" };\n  IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: \"CENTRIFUGALAIRFOIL\" };\n  IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: \"TUBEAXIAL\" };\n  IfcFanTypeEnum.VANEAXIAL = { type: 3, value: \"VANEAXIAL\" };\n  IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: \"PROPELLORAXIAL\" };\n  IfcFanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum;\n  class IfcFilterTypeEnum {\n  }\n  IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: \"AIRPARTICLEFILTER\" };\n  IfcFilterTypeEnum.ODORFILTER = { type: 3, value: \"ODORFILTER\" };\n  IfcFilterTypeEnum.OILFILTER = { type: 3, value: \"OILFILTER\" };\n  IfcFilterTypeEnum.STRAINER = { type: 3, value: \"STRAINER\" };\n  IfcFilterTypeEnum.WATERFILTER = { type: 3, value: \"WATERFILTER\" };\n  IfcFilterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum;\n  class IfcFireSuppressionTerminalTypeEnum {\n  }\n  IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: \"BREECHINGINLET\" };\n  IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: \"FIREHYDRANT\" };\n  IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: \"HOSEREEL\" };\n  IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: \"SPRINKLER\" };\n  IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: \"SPRINKLERDEFLECTOR\" };\n  IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;\n  class IfcFlowDirectionEnum {\n  }\n  IfcFlowDirectionEnum.SOURCE = { type: 3, value: \"SOURCE\" };\n  IfcFlowDirectionEnum.SINK = { type: 3, value: \"SINK\" };\n  IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: \"SOURCEANDSINK\" };\n  IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum;\n  class IfcFlowInstrumentTypeEnum {\n  }\n  IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: \"PRESSUREGAUGE\" };\n  IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: \"THERMOMETER\" };\n  IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: \"AMMETER\" };\n  IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: \"FREQUENCYMETER\" };\n  IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: \"POWERFACTORMETER\" };\n  IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: \"PHASEANGLEMETER\" };\n  IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: \"VOLTMETER_PEAK\" };\n  IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: \"VOLTMETER_RMS\" };\n  IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;\n  class IfcFlowMeterTypeEnum {\n  }\n  IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: \"ELECTRICMETER\" };\n  IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: \"ENERGYMETER\" };\n  IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: \"FLOWMETER\" };\n  IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: \"GASMETER\" };\n  IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: \"OILMETER\" };\n  IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: \"WATERMETER\" };\n  IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;\n  class IfcFootingTypeEnum {\n  }\n  IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: \"FOOTING_BEAM\" };\n  IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: \"PAD_FOOTING\" };\n  IfcFootingTypeEnum.PILE_CAP = { type: 3, value: \"PILE_CAP\" };\n  IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: \"STRIP_FOOTING\" };\n  IfcFootingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum;\n  class IfcGasTerminalTypeEnum {\n  }\n  IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: \"GASAPPLIANCE\" };\n  IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: \"GASBOOSTER\" };\n  IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: \"GASBURNER\" };\n  IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum;\n  class IfcGeometricProjectionEnum {\n  }\n  IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: \"GRAPH_VIEW\" };\n  IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: \"SKETCH_VIEW\" };\n  IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: \"MODEL_VIEW\" };\n  IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: \"PLAN_VIEW\" };\n  IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: \"REFLECTED_PLAN_VIEW\" };\n  IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: \"SECTION_VIEW\" };\n  IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: \"ELEVATION_VIEW\" };\n  IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;\n  class IfcGlobalOrLocalEnum {\n  }\n  IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: \"GLOBAL_COORDS\" };\n  IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: \"LOCAL_COORDS\" };\n  IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;\n  class IfcHeatExchangerTypeEnum {\n  }\n  IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n  IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: \"SHELLANDTUBE\" };\n  IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;\n  class IfcHumidifierTypeEnum {\n  }\n  IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: \"STEAMINJECTION\" };\n  IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: \"ADIABATICAIRWASHER\" };\n  IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: \"ADIABATICPAN\" };\n  IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: \"ADIABATICWETTEDELEMENT\" };\n  IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: \"ADIABATICATOMIZING\" };\n  IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: \"ADIABATICULTRASONIC\" };\n  IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: \"ADIABATICRIGIDMEDIA\" };\n  IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: \"ADIABATICCOMPRESSEDAIRNOZZLE\" };\n  IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: \"ASSISTEDELECTRIC\" };\n  IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: \"ASSISTEDNATURALGAS\" };\n  IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: \"ASSISTEDPROPANE\" };\n  IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: \"ASSISTEDBUTANE\" };\n  IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: \"ASSISTEDSTEAM\" };\n  IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;\n  class IfcInternalOrExternalEnum {\n  }\n  IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n  IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;\n  class IfcInventoryTypeEnum {\n  }\n  IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: \"ASSETINVENTORY\" };\n  IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: \"SPACEINVENTORY\" };\n  IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: \"FURNITUREINVENTORY\" };\n  IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum;\n  class IfcJunctionBoxTypeEnum {\n  }\n  IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;\n  class IfcLampTypeEnum {\n  }\n  IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n  IfcLampTypeEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n  IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n  IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n  IfcLampTypeEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n  IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n  IfcLampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum;\n  class IfcLayerSetDirectionEnum {\n  }\n  IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: \"AXIS1\" };\n  IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: \"AXIS2\" };\n  IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: \"AXIS3\" };\n  IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;\n  class IfcLightDistributionCurveEnum {\n  }\n  IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: \"TYPE_A\" };\n  IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: \"TYPE_B\" };\n  IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: \"TYPE_C\" };\n  IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;\n  class IfcLightEmissionSourceEnum {\n  }\n  IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n  IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n  IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n  IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n  IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: \"LIGHTEMITTINGDIODE\" };\n  IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: \"LOWPRESSURESODIUM\" };\n  IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: \"LOWVOLTAGEHALOGEN\" };\n  IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: \"MAINVOLTAGEHALOGEN\" };\n  IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n  IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n  IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;\n  class IfcLightFixtureTypeEnum {\n  }\n  IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: \"POINTSOURCE\" };\n  IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: \"DIRECTIONSOURCE\" };\n  IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;\n  class IfcLoadGroupTypeEnum {\n  }\n  IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: \"LOAD_GROUP\" };\n  IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: \"LOAD_CASE\" };\n  IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: \"LOAD_COMBINATION_GROUP\" };\n  IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: \"LOAD_COMBINATION\" };\n  IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;\n  class IfcLogicalOperatorEnum {\n  }\n  IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: \"LOGICALAND\" };\n  IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: \"LOGICALOR\" };\n  IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;\n  class IfcMemberTypeEnum {\n  }\n  IfcMemberTypeEnum.BRACE = { type: 3, value: \"BRACE\" };\n  IfcMemberTypeEnum.CHORD = { type: 3, value: \"CHORD\" };\n  IfcMemberTypeEnum.COLLAR = { type: 3, value: \"COLLAR\" };\n  IfcMemberTypeEnum.MEMBER = { type: 3, value: \"MEMBER\" };\n  IfcMemberTypeEnum.MULLION = { type: 3, value: \"MULLION\" };\n  IfcMemberTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n  IfcMemberTypeEnum.POST = { type: 3, value: \"POST\" };\n  IfcMemberTypeEnum.PURLIN = { type: 3, value: \"PURLIN\" };\n  IfcMemberTypeEnum.RAFTER = { type: 3, value: \"RAFTER\" };\n  IfcMemberTypeEnum.STRINGER = { type: 3, value: \"STRINGER\" };\n  IfcMemberTypeEnum.STRUT = { type: 3, value: \"STRUT\" };\n  IfcMemberTypeEnum.STUD = { type: 3, value: \"STUD\" };\n  IfcMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum;\n  class IfcMotorConnectionTypeEnum {\n  }\n  IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: \"BELTDRIVE\" };\n  IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: \"COUPLING\" };\n  IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: \"DIRECTDRIVE\" };\n  IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;\n  class IfcNullStyle {\n  }\n  IfcNullStyle.NULL = { type: 3, value: \"NULL\" };\n  IFC2X32.IfcNullStyle = IfcNullStyle;\n  class IfcObjectTypeEnum {\n  }\n  IfcObjectTypeEnum.PRODUCT = { type: 3, value: \"PRODUCT\" };\n  IfcObjectTypeEnum.PROCESS = { type: 3, value: \"PROCESS\" };\n  IfcObjectTypeEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n  IfcObjectTypeEnum.RESOURCE = { type: 3, value: \"RESOURCE\" };\n  IfcObjectTypeEnum.ACTOR = { type: 3, value: \"ACTOR\" };\n  IfcObjectTypeEnum.GROUP = { type: 3, value: \"GROUP\" };\n  IfcObjectTypeEnum.PROJECT = { type: 3, value: \"PROJECT\" };\n  IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum;\n  class IfcObjectiveEnum {\n  }\n  IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: \"CODECOMPLIANCE\" };\n  IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: \"DESIGNINTENT\" };\n  IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: \"HEALTHANDSAFETY\" };\n  IfcObjectiveEnum.REQUIREMENT = { type: 3, value: \"REQUIREMENT\" };\n  IfcObjectiveEnum.SPECIFICATION = { type: 3, value: \"SPECIFICATION\" };\n  IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: \"TRIGGERCONDITION\" };\n  IfcObjectiveEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcObjectiveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum;\n  class IfcOccupantTypeEnum {\n  }\n  IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: \"ASSIGNEE\" };\n  IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: \"ASSIGNOR\" };\n  IfcOccupantTypeEnum.LESSEE = { type: 3, value: \"LESSEE\" };\n  IfcOccupantTypeEnum.LESSOR = { type: 3, value: \"LESSOR\" };\n  IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: \"LETTINGAGENT\" };\n  IfcOccupantTypeEnum.OWNER = { type: 3, value: \"OWNER\" };\n  IfcOccupantTypeEnum.TENANT = { type: 3, value: \"TENANT\" };\n  IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum;\n  class IfcOutletTypeEnum {\n  }\n  IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: \"AUDIOVISUALOUTLET\" };\n  IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: \"COMMUNICATIONSOUTLET\" };\n  IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: \"POWEROUTLET\" };\n  IfcOutletTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum;\n  class IfcPermeableCoveringOperationEnum {\n  }\n  IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: \"GRILL\" };\n  IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: \"LOUVER\" };\n  IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: \"SCREEN\" };\n  IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;\n  class IfcPhysicalOrVirtualEnum {\n  }\n  IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: \"PHYSICAL\" };\n  IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: \"VIRTUAL\" };\n  IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;\n  class IfcPileConstructionEnum {\n  }\n  IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: \"CAST_IN_PLACE\" };\n  IfcPileConstructionEnum.COMPOSITE = { type: 3, value: \"COMPOSITE\" };\n  IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: \"PRECAST_CONCRETE\" };\n  IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: \"PREFAB_STEEL\" };\n  IfcPileConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum;\n  class IfcPileTypeEnum {\n  }\n  IfcPileTypeEnum.COHESION = { type: 3, value: \"COHESION\" };\n  IfcPileTypeEnum.FRICTION = { type: 3, value: \"FRICTION\" };\n  IfcPileTypeEnum.SUPPORT = { type: 3, value: \"SUPPORT\" };\n  IfcPileTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPileTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum;\n  class IfcPipeFittingTypeEnum {\n  }\n  IfcPipeFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n  IfcPipeFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n  IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n  IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;\n  class IfcPipeSegmentTypeEnum {\n  }\n  IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n  IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n  IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: \"GUTTER\" };\n  IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: \"SPOOL\" };\n  IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;\n  class IfcPlateTypeEnum {\n  }\n  IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: \"CURTAIN_PANEL\" };\n  IfcPlateTypeEnum.SHEET = { type: 3, value: \"SHEET\" };\n  IfcPlateTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum;\n  class IfcProcedureTypeEnum {\n  }\n  IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: \"ADVICE_CAUTION\" };\n  IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: \"ADVICE_NOTE\" };\n  IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: \"ADVICE_WARNING\" };\n  IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: \"CALIBRATION\" };\n  IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: \"DIAGNOSTIC\" };\n  IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: \"SHUTDOWN\" };\n  IfcProcedureTypeEnum.STARTUP = { type: 3, value: \"STARTUP\" };\n  IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum;\n  class IfcProfileTypeEnum {\n  }\n  IfcProfileTypeEnum.CURVE = { type: 3, value: \"CURVE\" };\n  IfcProfileTypeEnum.AREA = { type: 3, value: \"AREA\" };\n  IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum;\n  class IfcProjectOrderRecordTypeEnum {\n  }\n  IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: \"CHANGE\" };\n  IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: \"MAINTENANCE\" };\n  IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: \"MOVE\" };\n  IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: \"PURCHASE\" };\n  IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: \"WORK\" };\n  IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum;\n  class IfcProjectOrderTypeEnum {\n  }\n  IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: \"CHANGEORDER\" };\n  IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: \"MAINTENANCEWORKORDER\" };\n  IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: \"MOVEORDER\" };\n  IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: \"PURCHASEORDER\" };\n  IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: \"WORKORDER\" };\n  IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;\n  class IfcProjectedOrTrueLengthEnum {\n  }\n  IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: \"PROJECTED_LENGTH\" };\n  IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: \"TRUE_LENGTH\" };\n  IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;\n  class IfcPropertySourceEnum {\n  }\n  IfcPropertySourceEnum.DESIGN = { type: 3, value: \"DESIGN\" };\n  IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: \"DESIGNMAXIMUM\" };\n  IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: \"DESIGNMINIMUM\" };\n  IfcPropertySourceEnum.SIMULATED = { type: 3, value: \"SIMULATED\" };\n  IfcPropertySourceEnum.ASBUILT = { type: 3, value: \"ASBUILT\" };\n  IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: \"COMMISSIONING\" };\n  IfcPropertySourceEnum.MEASURED = { type: 3, value: \"MEASURED\" };\n  IfcPropertySourceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: \"NOTKNOWN\" };\n  IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum;\n  class IfcProtectiveDeviceTypeEnum {\n  }\n  IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: \"FUSEDISCONNECTOR\" };\n  IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: \"CIRCUITBREAKER\" };\n  IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: \"EARTHFAILUREDEVICE\" };\n  IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: \"RESIDUALCURRENTCIRCUITBREAKER\" };\n  IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: \"RESIDUALCURRENTSWITCH\" };\n  IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: \"VARISTOR\" };\n  IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;\n  class IfcPumpTypeEnum {\n  }\n  IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: \"CIRCULATOR\" };\n  IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: \"ENDSUCTION\" };\n  IfcPumpTypeEnum.SPLITCASE = { type: 3, value: \"SPLITCASE\" };\n  IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: \"VERTICALINLINE\" };\n  IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: \"VERTICALTURBINE\" };\n  IfcPumpTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum;\n  class IfcRailingTypeEnum {\n  }\n  IfcRailingTypeEnum.HANDRAIL = { type: 3, value: \"HANDRAIL\" };\n  IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: \"GUARDRAIL\" };\n  IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: \"BALUSTRADE\" };\n  IfcRailingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum;\n  class IfcRampFlightTypeEnum {\n  }\n  IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n  IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n  IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;\n  class IfcRampTypeEnum {\n  }\n  IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: \"STRAIGHT_RUN_RAMP\" };\n  IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: \"TWO_STRAIGHT_RUN_RAMP\" };\n  IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: \"QUARTER_TURN_RAMP\" };\n  IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: \"TWO_QUARTER_TURN_RAMP\" };\n  IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: \"HALF_TURN_RAMP\" };\n  IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: \"SPIRAL_RAMP\" };\n  IfcRampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum;\n  class IfcReflectanceMethodEnum {\n  }\n  IfcReflectanceMethodEnum.BLINN = { type: 3, value: \"BLINN\" };\n  IfcReflectanceMethodEnum.FLAT = { type: 3, value: \"FLAT\" };\n  IfcReflectanceMethodEnum.GLASS = { type: 3, value: \"GLASS\" };\n  IfcReflectanceMethodEnum.MATT = { type: 3, value: \"MATT\" };\n  IfcReflectanceMethodEnum.METAL = { type: 3, value: \"METAL\" };\n  IfcReflectanceMethodEnum.MIRROR = { type: 3, value: \"MIRROR\" };\n  IfcReflectanceMethodEnum.PHONG = { type: 3, value: \"PHONG\" };\n  IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: \"STRAUSS\" };\n  IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;\n  class IfcReinforcingBarRoleEnum {\n  }\n  IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: \"MAIN\" };\n  IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n  IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n  IfcReinforcingBarRoleEnum.STUD = { type: 3, value: \"STUD\" };\n  IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n  IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: \"EDGE\" };\n  IfcReinforcingBarRoleEnum.RING = { type: 3, value: \"RING\" };\n  IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;\n  class IfcReinforcingBarSurfaceEnum {\n  }\n  IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: \"PLAIN\" };\n  IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: \"TEXTURED\" };\n  IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;\n  class IfcResourceConsumptionEnum {\n  }\n  IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: \"CONSUMED\" };\n  IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: \"PARTIALLYCONSUMED\" };\n  IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: \"NOTCONSUMED\" };\n  IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: \"OCCUPIED\" };\n  IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: \"PARTIALLYOCCUPIED\" };\n  IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: \"NOTOCCUPIED\" };\n  IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum;\n  class IfcRibPlateDirectionEnum {\n  }\n  IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: \"DIRECTION_X\" };\n  IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: \"DIRECTION_Y\" };\n  IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum;\n  class IfcRoleEnum {\n  }\n  IfcRoleEnum.SUPPLIER = { type: 3, value: \"SUPPLIER\" };\n  IfcRoleEnum.MANUFACTURER = { type: 3, value: \"MANUFACTURER\" };\n  IfcRoleEnum.CONTRACTOR = { type: 3, value: \"CONTRACTOR\" };\n  IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: \"SUBCONTRACTOR\" };\n  IfcRoleEnum.ARCHITECT = { type: 3, value: \"ARCHITECT\" };\n  IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: \"STRUCTURALENGINEER\" };\n  IfcRoleEnum.COSTENGINEER = { type: 3, value: \"COSTENGINEER\" };\n  IfcRoleEnum.CLIENT = { type: 3, value: \"CLIENT\" };\n  IfcRoleEnum.BUILDINGOWNER = { type: 3, value: \"BUILDINGOWNER\" };\n  IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: \"BUILDINGOPERATOR\" };\n  IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: \"MECHANICALENGINEER\" };\n  IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: \"ELECTRICALENGINEER\" };\n  IfcRoleEnum.PROJECTMANAGER = { type: 3, value: \"PROJECTMANAGER\" };\n  IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: \"FACILITIESMANAGER\" };\n  IfcRoleEnum.CIVILENGINEER = { type: 3, value: \"CIVILENGINEER\" };\n  IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: \"COMISSIONINGENGINEER\" };\n  IfcRoleEnum.ENGINEER = { type: 3, value: \"ENGINEER\" };\n  IfcRoleEnum.OWNER = { type: 3, value: \"OWNER\" };\n  IfcRoleEnum.CONSULTANT = { type: 3, value: \"CONSULTANT\" };\n  IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: \"CONSTRUCTIONMANAGER\" };\n  IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: \"FIELDCONSTRUCTIONMANAGER\" };\n  IfcRoleEnum.RESELLER = { type: 3, value: \"RESELLER\" };\n  IfcRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC2X32.IfcRoleEnum = IfcRoleEnum;\n  class IfcRoofTypeEnum {\n  }\n  IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: \"FLAT_ROOF\" };\n  IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: \"SHED_ROOF\" };\n  IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: \"GABLE_ROOF\" };\n  IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: \"HIP_ROOF\" };\n  IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: \"HIPPED_GABLE_ROOF\" };\n  IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: \"GAMBREL_ROOF\" };\n  IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: \"MANSARD_ROOF\" };\n  IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: \"BARREL_ROOF\" };\n  IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: \"RAINBOW_ROOF\" };\n  IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: \"BUTTERFLY_ROOF\" };\n  IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: \"PAVILION_ROOF\" };\n  IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: \"DOME_ROOF\" };\n  IfcRoofTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n  IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum;\n  class IfcSIPrefix {\n  }\n  IfcSIPrefix.EXA = { type: 3, value: \"EXA\" };\n  IfcSIPrefix.PETA = { type: 3, value: \"PETA\" };\n  IfcSIPrefix.TERA = { type: 3, value: \"TERA\" };\n  IfcSIPrefix.GIGA = { type: 3, value: \"GIGA\" };\n  IfcSIPrefix.MEGA = { type: 3, value: \"MEGA\" };\n  IfcSIPrefix.KILO = { type: 3, value: \"KILO\" };\n  IfcSIPrefix.HECTO = { type: 3, value: \"HECTO\" };\n  IfcSIPrefix.DECA = { type: 3, value: \"DECA\" };\n  IfcSIPrefix.DECI = { type: 3, value: \"DECI\" };\n  IfcSIPrefix.CENTI = { type: 3, value: \"CENTI\" };\n  IfcSIPrefix.MILLI = { type: 3, value: \"MILLI\" };\n  IfcSIPrefix.MICRO = { type: 3, value: \"MICRO\" };\n  IfcSIPrefix.NANO = { type: 3, value: \"NANO\" };\n  IfcSIPrefix.PICO = { type: 3, value: \"PICO\" };\n  IfcSIPrefix.FEMTO = { type: 3, value: \"FEMTO\" };\n  IfcSIPrefix.ATTO = { type: 3, value: \"ATTO\" };\n  IFC2X32.IfcSIPrefix = IfcSIPrefix;\n  class IfcSIUnitName {\n  }\n  IfcSIUnitName.AMPERE = { type: 3, value: \"AMPERE\" };\n  IfcSIUnitName.BECQUEREL = { type: 3, value: \"BECQUEREL\" };\n  IfcSIUnitName.CANDELA = { type: 3, value: \"CANDELA\" };\n  IfcSIUnitName.COULOMB = { type: 3, value: \"COULOMB\" };\n  IfcSIUnitName.CUBIC_METRE = { type: 3, value: \"CUBIC_METRE\" };\n  IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: \"DEGREE_CELSIUS\" };\n  IfcSIUnitName.FARAD = { type: 3, value: \"FARAD\" };\n  IfcSIUnitName.GRAM = { type: 3, value: \"GRAM\" };\n  IfcSIUnitName.GRAY = { type: 3, value: \"GRAY\" };\n  IfcSIUnitName.HENRY = { type: 3, value: \"HENRY\" };\n  IfcSIUnitName.HERTZ = { type: 3, value: \"HERTZ\" };\n  IfcSIUnitName.JOULE = { type: 3, value: \"JOULE\" };\n  IfcSIUnitName.KELVIN = { type: 3, value: \"KELVIN\" };\n  IfcSIUnitName.LUMEN = { type: 3, value: \"LUMEN\" };\n  IfcSIUnitName.LUX = { type: 3, value: \"LUX\" };\n  IfcSIUnitName.METRE = { type: 3, value: \"METRE\" };\n  IfcSIUnitName.MOLE = { type: 3, value: \"MOLE\" };\n  IfcSIUnitName.NEWTON = { type: 3, value: \"NEWTON\" };\n  IfcSIUnitName.OHM = { type: 3, value: \"OHM\" };\n  IfcSIUnitName.PASCAL = { type: 3, value: \"PASCAL\" };\n  IfcSIUnitName.RADIAN = { type: 3, value: \"RADIAN\" };\n  IfcSIUnitName.SECOND = { type: 3, value: \"SECOND\" };\n  IfcSIUnitName.SIEMENS = { type: 3, value: \"SIEMENS\" };\n  IfcSIUnitName.SIEVERT = { type: 3, value: \"SIEVERT\" };\n  IfcSIUnitName.SQUARE_METRE = { type: 3, value: \"SQUARE_METRE\" };\n  IfcSIUnitName.STERADIAN = { type: 3, value: \"STERADIAN\" };\n  IfcSIUnitName.TESLA = { type: 3, value: \"TESLA\" };\n  IfcSIUnitName.VOLT = { type: 3, value: \"VOLT\" };\n  IfcSIUnitName.WATT = { type: 3, value: \"WATT\" };\n  IfcSIUnitName.WEBER = { type: 3, value: \"WEBER\" };\n  IFC2X32.IfcSIUnitName = IfcSIUnitName;\n  class IfcSanitaryTerminalTypeEnum {\n  }\n  IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: \"BATH\" };\n  IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: \"BIDET\" };\n  IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: \"CISTERN\" };\n  IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: \"SHOWER\" };\n  IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: \"SINK\" };\n  IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: \"SANITARYFOUNTAIN\" };\n  IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: \"TOILETPAN\" };\n  IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: \"URINAL\" };\n  IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: \"WASHHANDBASIN\" };\n  IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: \"WCSEAT\" };\n  IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;\n  class IfcSectionTypeEnum {\n  }\n  IfcSectionTypeEnum.UNIFORM = { type: 3, value: \"UNIFORM\" };\n  IfcSectionTypeEnum.TAPERED = { type: 3, value: \"TAPERED\" };\n  IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum;\n  class IfcSensorTypeEnum {\n  }\n  IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: \"CO2SENSOR\" };\n  IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: \"FIRESENSOR\" };\n  IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: \"FLOWSENSOR\" };\n  IfcSensorTypeEnum.GASSENSOR = { type: 3, value: \"GASSENSOR\" };\n  IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: \"HEATSENSOR\" };\n  IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: \"HUMIDITYSENSOR\" };\n  IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: \"LIGHTSENSOR\" };\n  IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: \"MOISTURESENSOR\" };\n  IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: \"MOVEMENTSENSOR\" };\n  IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: \"PRESSURESENSOR\" };\n  IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: \"SMOKESENSOR\" };\n  IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: \"SOUNDSENSOR\" };\n  IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: \"TEMPERATURESENSOR\" };\n  IfcSensorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum;\n  class IfcSequenceEnum {\n  }\n  IfcSequenceEnum.START_START = { type: 3, value: \"START_START\" };\n  IfcSequenceEnum.START_FINISH = { type: 3, value: \"START_FINISH\" };\n  IfcSequenceEnum.FINISH_START = { type: 3, value: \"FINISH_START\" };\n  IfcSequenceEnum.FINISH_FINISH = { type: 3, value: \"FINISH_FINISH\" };\n  IfcSequenceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSequenceEnum = IfcSequenceEnum;\n  class IfcServiceLifeFactorTypeEnum {\n  }\n  IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: \"A_QUALITYOFCOMPONENTS\" };\n  IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: \"B_DESIGNLEVEL\" };\n  IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: \"C_WORKEXECUTIONLEVEL\" };\n  IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: \"D_INDOORENVIRONMENT\" };\n  IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: \"E_OUTDOORENVIRONMENT\" };\n  IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: \"F_INUSECONDITIONS\" };\n  IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: \"G_MAINTENANCELEVEL\" };\n  IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum;\n  class IfcServiceLifeTypeEnum {\n  }\n  IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: \"ACTUALSERVICELIFE\" };\n  IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: \"EXPECTEDSERVICELIFE\" };\n  IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: \"OPTIMISTICREFERENCESERVICELIFE\" };\n  IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: \"PESSIMISTICREFERENCESERVICELIFE\" };\n  IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: \"REFERENCESERVICELIFE\" };\n  IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum;\n  class IfcSlabTypeEnum {\n  }\n  IfcSlabTypeEnum.FLOOR = { type: 3, value: \"FLOOR\" };\n  IfcSlabTypeEnum.ROOF = { type: 3, value: \"ROOF\" };\n  IfcSlabTypeEnum.LANDING = { type: 3, value: \"LANDING\" };\n  IfcSlabTypeEnum.BASESLAB = { type: 3, value: \"BASESLAB\" };\n  IfcSlabTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum;\n  class IfcSoundScaleEnum {\n  }\n  IfcSoundScaleEnum.DBA = { type: 3, value: \"DBA\" };\n  IfcSoundScaleEnum.DBB = { type: 3, value: \"DBB\" };\n  IfcSoundScaleEnum.DBC = { type: 3, value: \"DBC\" };\n  IfcSoundScaleEnum.NC = { type: 3, value: \"NC\" };\n  IfcSoundScaleEnum.NR = { type: 3, value: \"NR\" };\n  IfcSoundScaleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum;\n  class IfcSpaceHeaterTypeEnum {\n  }\n  IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: \"SECTIONALRADIATOR\" };\n  IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: \"PANELRADIATOR\" };\n  IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: \"TUBULARRADIATOR\" };\n  IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: \"CONVECTOR\" };\n  IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: \"BASEBOARDHEATER\" };\n  IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: \"FINNEDTUBEUNIT\" };\n  IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: \"UNITHEATER\" };\n  IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;\n  class IfcSpaceTypeEnum {\n  }\n  IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum;\n  class IfcStackTerminalTypeEnum {\n  }\n  IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: \"BIRDCAGE\" };\n  IfcStackTerminalTypeEnum.COWL = { type: 3, value: \"COWL\" };\n  IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: \"RAINWATERHOPPER\" };\n  IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;\n  class IfcStairFlightTypeEnum {\n  }\n  IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n  IfcStairFlightTypeEnum.WINDER = { type: 3, value: \"WINDER\" };\n  IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n  IfcStairFlightTypeEnum.CURVED = { type: 3, value: \"CURVED\" };\n  IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n  IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;\n  class IfcStairTypeEnum {\n  }\n  IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: \"STRAIGHT_RUN_STAIR\" };\n  IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: \"TWO_STRAIGHT_RUN_STAIR\" };\n  IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: \"QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: \"QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: \"HALF_WINDING_STAIR\" };\n  IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: \"HALF_TURN_STAIR\" };\n  IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: \"TWO_QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: \"TWO_QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: \"THREE_QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: \"THREE_QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: \"SPIRAL_STAIR\" };\n  IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: \"DOUBLE_RETURN_STAIR\" };\n  IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: \"CURVED_RUN_STAIR\" };\n  IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: \"TWO_CURVED_RUN_STAIR\" };\n  IfcStairTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStairTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum;\n  class IfcStateEnum {\n  }\n  IfcStateEnum.READWRITE = { type: 3, value: \"READWRITE\" };\n  IfcStateEnum.READONLY = { type: 3, value: \"READONLY\" };\n  IfcStateEnum.LOCKED = { type: 3, value: \"LOCKED\" };\n  IfcStateEnum.READWRITELOCKED = { type: 3, value: \"READWRITELOCKED\" };\n  IfcStateEnum.READONLYLOCKED = { type: 3, value: \"READONLYLOCKED\" };\n  IFC2X32.IfcStateEnum = IfcStateEnum;\n  class IfcStructuralCurveTypeEnum {\n  }\n  IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: \"RIGID_JOINED_MEMBER\" };\n  IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: \"PIN_JOINED_MEMBER\" };\n  IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n  IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: \"TENSION_MEMBER\" };\n  IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: \"COMPRESSION_MEMBER\" };\n  IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum;\n  class IfcStructuralSurfaceTypeEnum {\n  }\n  IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: \"BENDING_ELEMENT\" };\n  IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: \"MEMBRANE_ELEMENT\" };\n  IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: \"SHELL\" };\n  IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum;\n  class IfcSurfaceSide {\n  }\n  IfcSurfaceSide.POSITIVE = { type: 3, value: \"POSITIVE\" };\n  IfcSurfaceSide.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n  IfcSurfaceSide.BOTH = { type: 3, value: \"BOTH\" };\n  IFC2X32.IfcSurfaceSide = IfcSurfaceSide;\n  class IfcSurfaceTextureEnum {\n  }\n  IfcSurfaceTextureEnum.BUMP = { type: 3, value: \"BUMP\" };\n  IfcSurfaceTextureEnum.OPACITY = { type: 3, value: \"OPACITY\" };\n  IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: \"REFLECTION\" };\n  IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: \"SELFILLUMINATION\" };\n  IfcSurfaceTextureEnum.SHININESS = { type: 3, value: \"SHININESS\" };\n  IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: \"SPECULAR\" };\n  IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: \"TEXTURE\" };\n  IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: \"TRANSPARENCYMAP\" };\n  IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum;\n  class IfcSwitchingDeviceTypeEnum {\n  }\n  IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: \"CONTACTOR\" };\n  IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: \"EMERGENCYSTOP\" };\n  IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: \"STARTER\" };\n  IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: \"SWITCHDISCONNECTOR\" };\n  IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: \"TOGGLESWITCH\" };\n  IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;\n  class IfcTankTypeEnum {\n  }\n  IfcTankTypeEnum.PREFORMED = { type: 3, value: \"PREFORMED\" };\n  IfcTankTypeEnum.SECTIONAL = { type: 3, value: \"SECTIONAL\" };\n  IfcTankTypeEnum.EXPANSION = { type: 3, value: \"EXPANSION\" };\n  IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: \"PRESSUREVESSEL\" };\n  IfcTankTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTankTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum;\n  class IfcTendonTypeEnum {\n  }\n  IfcTendonTypeEnum.STRAND = { type: 3, value: \"STRAND\" };\n  IfcTendonTypeEnum.WIRE = { type: 3, value: \"WIRE\" };\n  IfcTendonTypeEnum.BAR = { type: 3, value: \"BAR\" };\n  IfcTendonTypeEnum.COATED = { type: 3, value: \"COATED\" };\n  IfcTendonTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum;\n  class IfcTextPath {\n  }\n  IfcTextPath.LEFT = { type: 3, value: \"LEFT\" };\n  IfcTextPath.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcTextPath.UP = { type: 3, value: \"UP\" };\n  IfcTextPath.DOWN = { type: 3, value: \"DOWN\" };\n  IFC2X32.IfcTextPath = IfcTextPath;\n  class IfcThermalLoadSourceEnum {\n  }\n  IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: \"PEOPLE\" };\n  IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n  IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: \"EQUIPMENT\" };\n  IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: \"VENTILATIONINDOORAIR\" };\n  IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: \"VENTILATIONOUTSIDEAIR\" };\n  IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: \"RECIRCULATEDAIR\" };\n  IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: \"EXHAUSTAIR\" };\n  IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: \"AIREXCHANGERATE\" };\n  IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: \"DRYBULBTEMPERATURE\" };\n  IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: \"RELATIVEHUMIDITY\" };\n  IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: \"INFILTRATION\" };\n  IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum;\n  class IfcThermalLoadTypeEnum {\n  }\n  IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: \"SENSIBLE\" };\n  IfcThermalLoadTypeEnum.LATENT = { type: 3, value: \"LATENT\" };\n  IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: \"RADIANT\" };\n  IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum;\n  class IfcTimeSeriesDataTypeEnum {\n  }\n  IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n  IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n  IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: \"DISCRETEBINARY\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: \"PIECEWISEBINARY\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: \"PIECEWISECONSTANT\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: \"PIECEWISECONTINUOUS\" };\n  IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;\n  class IfcTimeSeriesScheduleTypeEnum {\n  }\n  IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: \"ANNUAL\" };\n  IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: \"MONTHLY\" };\n  IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: \"WEEKLY\" };\n  IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: \"DAILY\" };\n  IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum;\n  class IfcTransformerTypeEnum {\n  }\n  IfcTransformerTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n  IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: \"FREQUENCY\" };\n  IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: \"VOLTAGE\" };\n  IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum;\n  class IfcTransitionCode {\n  }\n  IfcTransitionCode.DISCONTINUOUS = { type: 3, value: \"DISCONTINUOUS\" };\n  IfcTransitionCode.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n  IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: \"CONTSAMEGRADIENT\" };\n  IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: \"CONTSAMEGRADIENTSAMECURVATURE\" };\n  IFC2X32.IfcTransitionCode = IfcTransitionCode;\n  class IfcTransportElementTypeEnum {\n  }\n  IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: \"ELEVATOR\" };\n  IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: \"ESCALATOR\" };\n  IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: \"MOVINGWALKWAY\" };\n  IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;\n  class IfcTrimmingPreference {\n  }\n  IfcTrimmingPreference.CARTESIAN = { type: 3, value: \"CARTESIAN\" };\n  IfcTrimmingPreference.PARAMETER = { type: 3, value: \"PARAMETER\" };\n  IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference;\n  class IfcTubeBundleTypeEnum {\n  }\n  IfcTubeBundleTypeEnum.FINNED = { type: 3, value: \"FINNED\" };\n  IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;\n  class IfcUnitEnum {\n  }\n  IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: \"ABSORBEDDOSEUNIT\" };\n  IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: \"AMOUNTOFSUBSTANCEUNIT\" };\n  IfcUnitEnum.AREAUNIT = { type: 3, value: \"AREAUNIT\" };\n  IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: \"DOSEEQUIVALENTUNIT\" };\n  IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: \"ELECTRICCAPACITANCEUNIT\" };\n  IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: \"ELECTRICCHARGEUNIT\" };\n  IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: \"ELECTRICCONDUCTANCEUNIT\" };\n  IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: \"ELECTRICCURRENTUNIT\" };\n  IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: \"ELECTRICRESISTANCEUNIT\" };\n  IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: \"ELECTRICVOLTAGEUNIT\" };\n  IfcUnitEnum.ENERGYUNIT = { type: 3, value: \"ENERGYUNIT\" };\n  IfcUnitEnum.FORCEUNIT = { type: 3, value: \"FORCEUNIT\" };\n  IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: \"FREQUENCYUNIT\" };\n  IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: \"ILLUMINANCEUNIT\" };\n  IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: \"INDUCTANCEUNIT\" };\n  IfcUnitEnum.LENGTHUNIT = { type: 3, value: \"LENGTHUNIT\" };\n  IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: \"LUMINOUSFLUXUNIT\" };\n  IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: \"LUMINOUSINTENSITYUNIT\" };\n  IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: \"MAGNETICFLUXDENSITYUNIT\" };\n  IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: \"MAGNETICFLUXUNIT\" };\n  IfcUnitEnum.MASSUNIT = { type: 3, value: \"MASSUNIT\" };\n  IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: \"PLANEANGLEUNIT\" };\n  IfcUnitEnum.POWERUNIT = { type: 3, value: \"POWERUNIT\" };\n  IfcUnitEnum.PRESSUREUNIT = { type: 3, value: \"PRESSUREUNIT\" };\n  IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: \"RADIOACTIVITYUNIT\" };\n  IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: \"SOLIDANGLEUNIT\" };\n  IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: \"THERMODYNAMICTEMPERATUREUNIT\" };\n  IfcUnitEnum.TIMEUNIT = { type: 3, value: \"TIMEUNIT\" };\n  IfcUnitEnum.VOLUMEUNIT = { type: 3, value: \"VOLUMEUNIT\" };\n  IfcUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC2X32.IfcUnitEnum = IfcUnitEnum;\n  class IfcUnitaryEquipmentTypeEnum {\n  }\n  IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: \"AIRHANDLER\" };\n  IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: \"AIRCONDITIONINGUNIT\" };\n  IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: \"SPLITSYSTEM\" };\n  IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: \"ROOFTOPUNIT\" };\n  IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;\n  class IfcValveTypeEnum {\n  }\n  IfcValveTypeEnum.AIRRELEASE = { type: 3, value: \"AIRRELEASE\" };\n  IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: \"ANTIVACUUM\" };\n  IfcValveTypeEnum.CHANGEOVER = { type: 3, value: \"CHANGEOVER\" };\n  IfcValveTypeEnum.CHECK = { type: 3, value: \"CHECK\" };\n  IfcValveTypeEnum.COMMISSIONING = { type: 3, value: \"COMMISSIONING\" };\n  IfcValveTypeEnum.DIVERTING = { type: 3, value: \"DIVERTING\" };\n  IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: \"DRAWOFFCOCK\" };\n  IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: \"DOUBLECHECK\" };\n  IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: \"DOUBLEREGULATING\" };\n  IfcValveTypeEnum.FAUCET = { type: 3, value: \"FAUCET\" };\n  IfcValveTypeEnum.FLUSHING = { type: 3, value: \"FLUSHING\" };\n  IfcValveTypeEnum.GASCOCK = { type: 3, value: \"GASCOCK\" };\n  IfcValveTypeEnum.GASTAP = { type: 3, value: \"GASTAP\" };\n  IfcValveTypeEnum.ISOLATING = { type: 3, value: \"ISOLATING\" };\n  IfcValveTypeEnum.MIXING = { type: 3, value: \"MIXING\" };\n  IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: \"PRESSUREREDUCING\" };\n  IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: \"PRESSURERELIEF\" };\n  IfcValveTypeEnum.REGULATING = { type: 3, value: \"REGULATING\" };\n  IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: \"SAFETYCUTOFF\" };\n  IfcValveTypeEnum.STEAMTRAP = { type: 3, value: \"STEAMTRAP\" };\n  IfcValveTypeEnum.STOPCOCK = { type: 3, value: \"STOPCOCK\" };\n  IfcValveTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcValveTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum;\n  class IfcVibrationIsolatorTypeEnum {\n  }\n  IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: \"COMPRESSION\" };\n  IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: \"SPRING\" };\n  IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;\n  class IfcWallTypeEnum {\n  }\n  IfcWallTypeEnum.STANDARD = { type: 3, value: \"STANDARD\" };\n  IfcWallTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n  IfcWallTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n  IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: \"ELEMENTEDWALL\" };\n  IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: \"PLUMBINGWALL\" };\n  IfcWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum;\n  class IfcWasteTerminalTypeEnum {\n  }\n  IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: \"FLOORTRAP\" };\n  IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: \"FLOORWASTE\" };\n  IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: \"GULLYSUMP\" };\n  IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: \"GULLYTRAP\" };\n  IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: \"GREASEINTERCEPTOR\" };\n  IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: \"OILINTERCEPTOR\" };\n  IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: \"PETROLINTERCEPTOR\" };\n  IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: \"ROOFDRAIN\" };\n  IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: \"WASTEDISPOSALUNIT\" };\n  IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: \"WASTETRAP\" };\n  IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;\n  class IfcWindowPanelOperationEnum {\n  }\n  IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: \"SIDEHUNGRIGHTHAND\" };\n  IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: \"SIDEHUNGLEFTHAND\" };\n  IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: \"TILTANDTURNRIGHTHAND\" };\n  IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: \"TILTANDTURNLEFTHAND\" };\n  IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: \"TOPHUNG\" };\n  IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: \"BOTTOMHUNG\" };\n  IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: \"PIVOTHORIZONTAL\" };\n  IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: \"PIVOTVERTICAL\" };\n  IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: \"SLIDINGHORIZONTAL\" };\n  IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: \"SLIDINGVERTICAL\" };\n  IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: \"REMOVABLECASEMENT\" };\n  IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: \"FIXEDCASEMENT\" };\n  IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: \"OTHEROPERATION\" };\n  IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;\n  class IfcWindowPanelPositionEnum {\n  }\n  IfcWindowPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n  IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n  IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: \"BOTTOM\" };\n  IfcWindowPanelPositionEnum.TOP = { type: 3, value: \"TOP\" };\n  IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;\n  class IfcWindowStyleConstructionEnum {\n  }\n  IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n  IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n  IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n  IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n  IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n  IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: \"OTHER_CONSTRUCTION\" };\n  IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;\n  class IfcWindowStyleOperationEnum {\n  }\n  IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n  IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n  IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n  IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;\n  class IfcWorkControlTypeEnum {\n  }\n  IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n  IfcWorkControlTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n  IfcWorkControlTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n  IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum;\n  class IfcActorRole extends IfcLineObject {\n    constructor(expressID, Role, UserDefinedRole, Description) {\n      super(expressID);\n      this.Role = Role;\n      this.UserDefinedRole = UserDefinedRole;\n      this.Description = Description;\n      this.type = 3630933823;\n    }\n  }\n  IFC2X32.IfcActorRole = IfcActorRole;\n  class IfcAddress extends IfcLineObject {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose) {\n      super(expressID);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.type = 618182010;\n    }\n  }\n  IFC2X32.IfcAddress = IfcAddress;\n  class IfcApplication extends IfcLineObject {\n    constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {\n      super(expressID);\n      this.ApplicationDeveloper = ApplicationDeveloper;\n      this.Version = Version;\n      this.ApplicationFullName = ApplicationFullName;\n      this.ApplicationIdentifier = ApplicationIdentifier;\n      this.type = 639542469;\n    }\n  }\n  IFC2X32.IfcApplication = IfcApplication;\n  class IfcAppliedValue extends IfcLineObject {\n    constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.AppliedValue = AppliedValue;\n      this.UnitBasis = UnitBasis;\n      this.ApplicableDate = ApplicableDate;\n      this.FixedUntilDate = FixedUntilDate;\n      this.type = 411424972;\n    }\n  }\n  IFC2X32.IfcAppliedValue = IfcAppliedValue;\n  class IfcAppliedValueRelationship extends IfcLineObject {\n    constructor(expressID, ComponentOfTotal, Components, ArithmeticOperator, Name, Description) {\n      super(expressID);\n      this.ComponentOfTotal = ComponentOfTotal;\n      this.Components = Components;\n      this.ArithmeticOperator = ArithmeticOperator;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 1110488051;\n    }\n  }\n  IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship;\n  class IfcApproval extends IfcLineObject {\n    constructor(expressID, Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) {\n      super(expressID);\n      this.Description = Description;\n      this.ApprovalDateTime = ApprovalDateTime;\n      this.ApprovalStatus = ApprovalStatus;\n      this.ApprovalLevel = ApprovalLevel;\n      this.ApprovalQualifier = ApprovalQualifier;\n      this.Name = Name;\n      this.Identifier = Identifier;\n      this.type = 130549933;\n    }\n  }\n  IFC2X32.IfcApproval = IfcApproval;\n  class IfcApprovalActorRelationship extends IfcLineObject {\n    constructor(expressID, Actor, Approval, Role) {\n      super(expressID);\n      this.Actor = Actor;\n      this.Approval = Approval;\n      this.Role = Role;\n      this.type = 2080292479;\n    }\n  }\n  IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship;\n  class IfcApprovalPropertyRelationship extends IfcLineObject {\n    constructor(expressID, ApprovedProperties, Approval) {\n      super(expressID);\n      this.ApprovedProperties = ApprovedProperties;\n      this.Approval = Approval;\n      this.type = 390851274;\n    }\n  }\n  IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship;\n  class IfcApprovalRelationship extends IfcLineObject {\n    constructor(expressID, RelatedApproval, RelatingApproval, Description, Name) {\n      super(expressID);\n      this.RelatedApproval = RelatedApproval;\n      this.RelatingApproval = RelatingApproval;\n      this.Description = Description;\n      this.Name = Name;\n      this.type = 3869604511;\n    }\n  }\n  IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship;\n  class IfcBoundaryCondition extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 4037036970;\n    }\n  }\n  IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition;\n  class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.LinearStiffnessByLengthX = LinearStiffnessByLengthX;\n      this.LinearStiffnessByLengthY = LinearStiffnessByLengthY;\n      this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ;\n      this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;\n      this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;\n      this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;\n      this.type = 1560379544;\n    }\n  }\n  IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;\n  class IfcBoundaryFaceCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.LinearStiffnessByAreaX = LinearStiffnessByAreaX;\n      this.LinearStiffnessByAreaY = LinearStiffnessByAreaY;\n      this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ;\n      this.type = 3367102660;\n    }\n  }\n  IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;\n  class IfcBoundaryNodeCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.LinearStiffnessX = LinearStiffnessX;\n      this.LinearStiffnessY = LinearStiffnessY;\n      this.LinearStiffnessZ = LinearStiffnessZ;\n      this.RotationalStiffnessX = RotationalStiffnessX;\n      this.RotationalStiffnessY = RotationalStiffnessY;\n      this.RotationalStiffnessZ = RotationalStiffnessZ;\n      this.type = 1387855156;\n    }\n  }\n  IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;\n  class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {\n    constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {\n      super(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);\n      this.Name = Name;\n      this.LinearStiffnessX = LinearStiffnessX;\n      this.LinearStiffnessY = LinearStiffnessY;\n      this.LinearStiffnessZ = LinearStiffnessZ;\n      this.RotationalStiffnessX = RotationalStiffnessX;\n      this.RotationalStiffnessY = RotationalStiffnessY;\n      this.RotationalStiffnessZ = RotationalStiffnessZ;\n      this.WarpingStiffness = WarpingStiffness;\n      this.type = 2069777674;\n    }\n  }\n  IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;\n  class IfcCalendarDate extends IfcLineObject {\n    constructor(expressID, DayComponent, MonthComponent, YearComponent) {\n      super(expressID);\n      this.DayComponent = DayComponent;\n      this.MonthComponent = MonthComponent;\n      this.YearComponent = YearComponent;\n      this.type = 622194075;\n    }\n  }\n  IFC2X32.IfcCalendarDate = IfcCalendarDate;\n  class IfcClassification extends IfcLineObject {\n    constructor(expressID, Source, Edition, EditionDate, Name) {\n      super(expressID);\n      this.Source = Source;\n      this.Edition = Edition;\n      this.EditionDate = EditionDate;\n      this.Name = Name;\n      this.type = 747523909;\n    }\n  }\n  IFC2X32.IfcClassification = IfcClassification;\n  class IfcClassificationItem extends IfcLineObject {\n    constructor(expressID, Notation, ItemOf, Title) {\n      super(expressID);\n      this.Notation = Notation;\n      this.ItemOf = ItemOf;\n      this.Title = Title;\n      this.type = 1767535486;\n    }\n  }\n  IFC2X32.IfcClassificationItem = IfcClassificationItem;\n  class IfcClassificationItemRelationship extends IfcLineObject {\n    constructor(expressID, RelatingItem, RelatedItems) {\n      super(expressID);\n      this.RelatingItem = RelatingItem;\n      this.RelatedItems = RelatedItems;\n      this.type = 1098599126;\n    }\n  }\n  IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship;\n  class IfcClassificationNotation extends IfcLineObject {\n    constructor(expressID, NotationFacets) {\n      super(expressID);\n      this.NotationFacets = NotationFacets;\n      this.type = 938368621;\n    }\n  }\n  IFC2X32.IfcClassificationNotation = IfcClassificationNotation;\n  class IfcClassificationNotationFacet extends IfcLineObject {\n    constructor(expressID, NotationValue) {\n      super(expressID);\n      this.NotationValue = NotationValue;\n      this.type = 3639012971;\n    }\n  }\n  IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet;\n  class IfcColourSpecification extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3264961684;\n    }\n  }\n  IFC2X32.IfcColourSpecification = IfcColourSpecification;\n  class IfcConnectionGeometry extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2859738748;\n    }\n  }\n  IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry;\n  class IfcConnectionPointGeometry extends IfcConnectionGeometry {\n    constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) {\n      super(expressID);\n      this.PointOnRelatingElement = PointOnRelatingElement;\n      this.PointOnRelatedElement = PointOnRelatedElement;\n      this.type = 2614616156;\n    }\n  }\n  IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry;\n  class IfcConnectionPortGeometry extends IfcConnectionGeometry {\n    constructor(expressID, LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) {\n      super(expressID);\n      this.LocationAtRelatingElement = LocationAtRelatingElement;\n      this.LocationAtRelatedElement = LocationAtRelatedElement;\n      this.ProfileOfPort = ProfileOfPort;\n      this.type = 4257277454;\n    }\n  }\n  IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry;\n  class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {\n    constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) {\n      super(expressID);\n      this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;\n      this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;\n      this.type = 2732653382;\n    }\n  }\n  IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;\n  class IfcConstraint extends IfcLineObject {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.type = 1959218052;\n    }\n  }\n  IFC2X32.IfcConstraint = IfcConstraint;\n  class IfcConstraintAggregationRelationship extends IfcLineObject {\n    constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingConstraint = RelatingConstraint;\n      this.RelatedConstraints = RelatedConstraints;\n      this.LogicalAggregator = LogicalAggregator;\n      this.type = 1658513725;\n    }\n  }\n  IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship;\n  class IfcConstraintClassificationRelationship extends IfcLineObject {\n    constructor(expressID, ClassifiedConstraint, RelatedClassifications) {\n      super(expressID);\n      this.ClassifiedConstraint = ClassifiedConstraint;\n      this.RelatedClassifications = RelatedClassifications;\n      this.type = 613356794;\n    }\n  }\n  IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship;\n  class IfcConstraintRelationship extends IfcLineObject {\n    constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingConstraint = RelatingConstraint;\n      this.RelatedConstraints = RelatedConstraints;\n      this.type = 347226245;\n    }\n  }\n  IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship;\n  class IfcCoordinatedUniversalTimeOffset extends IfcLineObject {\n    constructor(expressID, HourOffset, MinuteOffset, Sense) {\n      super(expressID);\n      this.HourOffset = HourOffset;\n      this.MinuteOffset = MinuteOffset;\n      this.Sense = Sense;\n      this.type = 1065062679;\n    }\n  }\n  IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset;\n  class IfcCostValue extends IfcAppliedValue {\n    constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) {\n      super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate);\n      this.Name = Name;\n      this.Description = Description;\n      this.AppliedValue = AppliedValue;\n      this.UnitBasis = UnitBasis;\n      this.ApplicableDate = ApplicableDate;\n      this.FixedUntilDate = FixedUntilDate;\n      this.CostType = CostType;\n      this.Condition = Condition;\n      this.type = 602808272;\n    }\n  }\n  IFC2X32.IfcCostValue = IfcCostValue;\n  class IfcCurrencyRelationship extends IfcLineObject {\n    constructor(expressID, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {\n      super(expressID);\n      this.RelatingMonetaryUnit = RelatingMonetaryUnit;\n      this.RelatedMonetaryUnit = RelatedMonetaryUnit;\n      this.ExchangeRate = ExchangeRate;\n      this.RateDateTime = RateDateTime;\n      this.RateSource = RateSource;\n      this.type = 539742890;\n    }\n  }\n  IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship;\n  class IfcCurveStyleFont extends IfcLineObject {\n    constructor(expressID, Name, PatternList) {\n      super(expressID);\n      this.Name = Name;\n      this.PatternList = PatternList;\n      this.type = 1105321065;\n    }\n  }\n  IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont;\n  class IfcCurveStyleFontAndScaling extends IfcLineObject {\n    constructor(expressID, Name, CurveFont, CurveFontScaling) {\n      super(expressID);\n      this.Name = Name;\n      this.CurveFont = CurveFont;\n      this.CurveFontScaling = CurveFontScaling;\n      this.type = 2367409068;\n    }\n  }\n  IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;\n  class IfcCurveStyleFontPattern extends IfcLineObject {\n    constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) {\n      super(expressID);\n      this.VisibleSegmentLength = VisibleSegmentLength;\n      this.InvisibleSegmentLength = InvisibleSegmentLength;\n      this.type = 3510044353;\n    }\n  }\n  IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;\n  class IfcDateAndTime extends IfcLineObject {\n    constructor(expressID, DateComponent, TimeComponent) {\n      super(expressID);\n      this.DateComponent = DateComponent;\n      this.TimeComponent = TimeComponent;\n      this.type = 1072939445;\n    }\n  }\n  IFC2X32.IfcDateAndTime = IfcDateAndTime;\n  class IfcDerivedUnit extends IfcLineObject {\n    constructor(expressID, Elements, UnitType, UserDefinedType) {\n      super(expressID);\n      this.Elements = Elements;\n      this.UnitType = UnitType;\n      this.UserDefinedType = UserDefinedType;\n      this.type = 1765591967;\n    }\n  }\n  IFC2X32.IfcDerivedUnit = IfcDerivedUnit;\n  class IfcDerivedUnitElement extends IfcLineObject {\n    constructor(expressID, Unit, Exponent) {\n      super(expressID);\n      this.Unit = Unit;\n      this.Exponent = Exponent;\n      this.type = 1045800335;\n    }\n  }\n  IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement;\n  class IfcDimensionalExponents extends IfcLineObject {\n    constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {\n      super(expressID);\n      this.LengthExponent = LengthExponent;\n      this.MassExponent = MassExponent;\n      this.TimeExponent = TimeExponent;\n      this.ElectricCurrentExponent = ElectricCurrentExponent;\n      this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;\n      this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;\n      this.LuminousIntensityExponent = LuminousIntensityExponent;\n      this.type = 2949456006;\n    }\n  }\n  IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents;\n  class IfcDocumentElectronicFormat extends IfcLineObject {\n    constructor(expressID, FileExtension, MimeContentType, MimeSubtype) {\n      super(expressID);\n      this.FileExtension = FileExtension;\n      this.MimeContentType = MimeContentType;\n      this.MimeSubtype = MimeSubtype;\n      this.type = 1376555844;\n    }\n  }\n  IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat;\n  class IfcDocumentInformation extends IfcLineObject {\n    constructor(expressID, DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {\n      super(expressID);\n      this.DocumentId = DocumentId;\n      this.Name = Name;\n      this.Description = Description;\n      this.DocumentReferences = DocumentReferences;\n      this.Purpose = Purpose;\n      this.IntendedUse = IntendedUse;\n      this.Scope = Scope;\n      this.Revision = Revision;\n      this.DocumentOwner = DocumentOwner;\n      this.Editors = Editors;\n      this.CreationTime = CreationTime;\n      this.LastRevisionTime = LastRevisionTime;\n      this.ElectronicFormat = ElectronicFormat;\n      this.ValidFrom = ValidFrom;\n      this.ValidUntil = ValidUntil;\n      this.Confidentiality = Confidentiality;\n      this.Status = Status;\n      this.type = 1154170062;\n    }\n  }\n  IFC2X32.IfcDocumentInformation = IfcDocumentInformation;\n  class IfcDocumentInformationRelationship extends IfcLineObject {\n    constructor(expressID, RelatingDocument, RelatedDocuments, RelationshipType) {\n      super(expressID);\n      this.RelatingDocument = RelatingDocument;\n      this.RelatedDocuments = RelatedDocuments;\n      this.RelationshipType = RelationshipType;\n      this.type = 770865208;\n    }\n  }\n  IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;\n  class IfcDraughtingCalloutRelationship extends IfcLineObject {\n    constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingDraughtingCallout = RelatingDraughtingCallout;\n      this.RelatedDraughtingCallout = RelatedDraughtingCallout;\n      this.type = 3796139169;\n    }\n  }\n  IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship;\n  class IfcEnvironmentalImpactValue extends IfcAppliedValue {\n    constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) {\n      super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate);\n      this.Name = Name;\n      this.Description = Description;\n      this.AppliedValue = AppliedValue;\n      this.UnitBasis = UnitBasis;\n      this.ApplicableDate = ApplicableDate;\n      this.FixedUntilDate = FixedUntilDate;\n      this.ImpactType = ImpactType;\n      this.Category = Category;\n      this.UserDefinedCategory = UserDefinedCategory;\n      this.type = 1648886627;\n    }\n  }\n  IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue;\n  class IfcExternalReference extends IfcLineObject {\n    constructor(expressID, Location, ItemReference, Name) {\n      super(expressID);\n      this.Location = Location;\n      this.ItemReference = ItemReference;\n      this.Name = Name;\n      this.type = 3200245327;\n    }\n  }\n  IFC2X32.IfcExternalReference = IfcExternalReference;\n  class IfcExternallyDefinedHatchStyle extends IfcExternalReference {\n    constructor(expressID, Location, ItemReference, Name) {\n      super(expressID, Location, ItemReference, Name);\n      this.Location = Location;\n      this.ItemReference = ItemReference;\n      this.Name = Name;\n      this.type = 2242383968;\n    }\n  }\n  IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;\n  class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {\n    constructor(expressID, Location, ItemReference, Name) {\n      super(expressID, Location, ItemReference, Name);\n      this.Location = Location;\n      this.ItemReference = ItemReference;\n      this.Name = Name;\n      this.type = 1040185647;\n    }\n  }\n  IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;\n  class IfcExternallyDefinedSymbol extends IfcExternalReference {\n    constructor(expressID, Location, ItemReference, Name) {\n      super(expressID, Location, ItemReference, Name);\n      this.Location = Location;\n      this.ItemReference = ItemReference;\n      this.Name = Name;\n      this.type = 3207319532;\n    }\n  }\n  IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol;\n  class IfcExternallyDefinedTextFont extends IfcExternalReference {\n    constructor(expressID, Location, ItemReference, Name) {\n      super(expressID, Location, ItemReference, Name);\n      this.Location = Location;\n      this.ItemReference = ItemReference;\n      this.Name = Name;\n      this.type = 3548104201;\n    }\n  }\n  IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;\n  class IfcGridAxis extends IfcLineObject {\n    constructor(expressID, AxisTag, AxisCurve, SameSense) {\n      super(expressID);\n      this.AxisTag = AxisTag;\n      this.AxisCurve = AxisCurve;\n      this.SameSense = SameSense;\n      this.type = 852622518;\n    }\n  }\n  IFC2X32.IfcGridAxis = IfcGridAxis;\n  class IfcIrregularTimeSeriesValue extends IfcLineObject {\n    constructor(expressID, TimeStamp, ListValues) {\n      super(expressID);\n      this.TimeStamp = TimeStamp;\n      this.ListValues = ListValues;\n      this.type = 3020489413;\n    }\n  }\n  IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;\n  class IfcLibraryInformation extends IfcLineObject {\n    constructor(expressID, Name, Version, Publisher, VersionDate, LibraryReference) {\n      super(expressID);\n      this.Name = Name;\n      this.Version = Version;\n      this.Publisher = Publisher;\n      this.VersionDate = VersionDate;\n      this.LibraryReference = LibraryReference;\n      this.type = 2655187982;\n    }\n  }\n  IFC2X32.IfcLibraryInformation = IfcLibraryInformation;\n  class IfcLibraryReference extends IfcExternalReference {\n    constructor(expressID, Location, ItemReference, Name) {\n      super(expressID, Location, ItemReference, Name);\n      this.Location = Location;\n      this.ItemReference = ItemReference;\n      this.Name = Name;\n      this.type = 3452421091;\n    }\n  }\n  IFC2X32.IfcLibraryReference = IfcLibraryReference;\n  class IfcLightDistributionData extends IfcLineObject {\n    constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {\n      super(expressID);\n      this.MainPlaneAngle = MainPlaneAngle;\n      this.SecondaryPlaneAngle = SecondaryPlaneAngle;\n      this.LuminousIntensity = LuminousIntensity;\n      this.type = 4162380809;\n    }\n  }\n  IFC2X32.IfcLightDistributionData = IfcLightDistributionData;\n  class IfcLightIntensityDistribution extends IfcLineObject {\n    constructor(expressID, LightDistributionCurve, DistributionData) {\n      super(expressID);\n      this.LightDistributionCurve = LightDistributionCurve;\n      this.DistributionData = DistributionData;\n      this.type = 1566485204;\n    }\n  }\n  IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution;\n  class IfcLocalTime extends IfcLineObject {\n    constructor(expressID, HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) {\n      super(expressID);\n      this.HourComponent = HourComponent;\n      this.MinuteComponent = MinuteComponent;\n      this.SecondComponent = SecondComponent;\n      this.Zone = Zone;\n      this.DaylightSavingOffset = DaylightSavingOffset;\n      this.type = 30780891;\n    }\n  }\n  IFC2X32.IfcLocalTime = IfcLocalTime;\n  class IfcMaterial extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 1838606355;\n    }\n  }\n  IFC2X32.IfcMaterial = IfcMaterial;\n  class IfcMaterialClassificationRelationship extends IfcLineObject {\n    constructor(expressID, MaterialClassifications, ClassifiedMaterial) {\n      super(expressID);\n      this.MaterialClassifications = MaterialClassifications;\n      this.ClassifiedMaterial = ClassifiedMaterial;\n      this.type = 1847130766;\n    }\n  }\n  IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;\n  class IfcMaterialLayer extends IfcLineObject {\n    constructor(expressID, Material, LayerThickness, IsVentilated) {\n      super(expressID);\n      this.Material = Material;\n      this.LayerThickness = LayerThickness;\n      this.IsVentilated = IsVentilated;\n      this.type = 248100487;\n    }\n  }\n  IFC2X32.IfcMaterialLayer = IfcMaterialLayer;\n  class IfcMaterialLayerSet extends IfcLineObject {\n    constructor(expressID, MaterialLayers, LayerSetName) {\n      super(expressID);\n      this.MaterialLayers = MaterialLayers;\n      this.LayerSetName = LayerSetName;\n      this.type = 3303938423;\n    }\n  }\n  IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet;\n  class IfcMaterialLayerSetUsage extends IfcLineObject {\n    constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) {\n      super(expressID);\n      this.ForLayerSet = ForLayerSet;\n      this.LayerSetDirection = LayerSetDirection;\n      this.DirectionSense = DirectionSense;\n      this.OffsetFromReferenceLine = OffsetFromReferenceLine;\n      this.type = 1303795690;\n    }\n  }\n  IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;\n  class IfcMaterialList extends IfcLineObject {\n    constructor(expressID, Materials) {\n      super(expressID);\n      this.Materials = Materials;\n      this.type = 2199411900;\n    }\n  }\n  IFC2X32.IfcMaterialList = IfcMaterialList;\n  class IfcMaterialProperties extends IfcLineObject {\n    constructor(expressID, Material) {\n      super(expressID);\n      this.Material = Material;\n      this.type = 3265635763;\n    }\n  }\n  IFC2X32.IfcMaterialProperties = IfcMaterialProperties;\n  class IfcMeasureWithUnit extends IfcLineObject {\n    constructor(expressID, ValueComponent, UnitComponent) {\n      super(expressID);\n      this.ValueComponent = ValueComponent;\n      this.UnitComponent = UnitComponent;\n      this.type = 2597039031;\n    }\n  }\n  IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit;\n  class IfcMechanicalMaterialProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.DynamicViscosity = DynamicViscosity;\n      this.YoungModulus = YoungModulus;\n      this.ShearModulus = ShearModulus;\n      this.PoissonRatio = PoissonRatio;\n      this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;\n      this.type = 4256014907;\n    }\n  }\n  IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties;\n  class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties {\n    constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) {\n      super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient);\n      this.Material = Material;\n      this.DynamicViscosity = DynamicViscosity;\n      this.YoungModulus = YoungModulus;\n      this.ShearModulus = ShearModulus;\n      this.PoissonRatio = PoissonRatio;\n      this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;\n      this.YieldStress = YieldStress;\n      this.UltimateStress = UltimateStress;\n      this.UltimateStrain = UltimateStrain;\n      this.HardeningModule = HardeningModule;\n      this.ProportionalStress = ProportionalStress;\n      this.PlasticStrain = PlasticStrain;\n      this.Relaxations = Relaxations;\n      this.type = 677618848;\n    }\n  }\n  IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties;\n  class IfcMetric extends IfcConstraint {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) {\n      super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.Benchmark = Benchmark;\n      this.ValueSource = ValueSource;\n      this.DataValue = DataValue;\n      this.type = 3368373690;\n    }\n  }\n  IFC2X32.IfcMetric = IfcMetric;\n  class IfcMonetaryUnit extends IfcLineObject {\n    constructor(expressID, Currency) {\n      super(expressID);\n      this.Currency = Currency;\n      this.type = 2706619895;\n    }\n  }\n  IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit;\n  class IfcNamedUnit extends IfcLineObject {\n    constructor(expressID, Dimensions, UnitType) {\n      super(expressID);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.type = 1918398963;\n    }\n  }\n  IFC2X32.IfcNamedUnit = IfcNamedUnit;\n  class IfcObjectPlacement extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 3701648758;\n    }\n  }\n  IFC2X32.IfcObjectPlacement = IfcObjectPlacement;\n  class IfcObjective extends IfcConstraint {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) {\n      super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.BenchmarkValues = BenchmarkValues;\n      this.ResultValues = ResultValues;\n      this.ObjectiveQualifier = ObjectiveQualifier;\n      this.UserDefinedQualifier = UserDefinedQualifier;\n      this.type = 2251480897;\n    }\n  }\n  IFC2X32.IfcObjective = IfcObjective;\n  class IfcOpticalMaterialProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.VisibleTransmittance = VisibleTransmittance;\n      this.SolarTransmittance = SolarTransmittance;\n      this.ThermalIrTransmittance = ThermalIrTransmittance;\n      this.ThermalIrEmissivityBack = ThermalIrEmissivityBack;\n      this.ThermalIrEmissivityFront = ThermalIrEmissivityFront;\n      this.VisibleReflectanceBack = VisibleReflectanceBack;\n      this.VisibleReflectanceFront = VisibleReflectanceFront;\n      this.SolarReflectanceFront = SolarReflectanceFront;\n      this.SolarReflectanceBack = SolarReflectanceBack;\n      this.type = 1227763645;\n    }\n  }\n  IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties;\n  class IfcOrganization extends IfcLineObject {\n    constructor(expressID, Id, Name, Description, Roles, Addresses) {\n      super(expressID);\n      this.Id = Id;\n      this.Name = Name;\n      this.Description = Description;\n      this.Roles = Roles;\n      this.Addresses = Addresses;\n      this.type = 4251960020;\n    }\n  }\n  IFC2X32.IfcOrganization = IfcOrganization;\n  class IfcOrganizationRelationship extends IfcLineObject {\n    constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingOrganization = RelatingOrganization;\n      this.RelatedOrganizations = RelatedOrganizations;\n      this.type = 1411181986;\n    }\n  }\n  IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship;\n  class IfcOwnerHistory extends IfcLineObject {\n    constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {\n      super(expressID);\n      this.OwningUser = OwningUser;\n      this.OwningApplication = OwningApplication;\n      this.State = State;\n      this.ChangeAction = ChangeAction;\n      this.LastModifiedDate = LastModifiedDate;\n      this.LastModifyingUser = LastModifyingUser;\n      this.LastModifyingApplication = LastModifyingApplication;\n      this.CreationDate = CreationDate;\n      this.type = 1207048766;\n    }\n  }\n  IFC2X32.IfcOwnerHistory = IfcOwnerHistory;\n  class IfcPerson extends IfcLineObject {\n    constructor(expressID, Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {\n      super(expressID);\n      this.Id = Id;\n      this.FamilyName = FamilyName;\n      this.GivenName = GivenName;\n      this.MiddleNames = MiddleNames;\n      this.PrefixTitles = PrefixTitles;\n      this.SuffixTitles = SuffixTitles;\n      this.Roles = Roles;\n      this.Addresses = Addresses;\n      this.type = 2077209135;\n    }\n  }\n  IFC2X32.IfcPerson = IfcPerson;\n  class IfcPersonAndOrganization extends IfcLineObject {\n    constructor(expressID, ThePerson, TheOrganization, Roles) {\n      super(expressID);\n      this.ThePerson = ThePerson;\n      this.TheOrganization = TheOrganization;\n      this.Roles = Roles;\n      this.type = 101040310;\n    }\n  }\n  IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization;\n  class IfcPhysicalQuantity extends IfcLineObject {\n    constructor(expressID, Name, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2483315170;\n    }\n  }\n  IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity;\n  class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {\n    constructor(expressID, Name, Description, Unit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.type = 2226359599;\n    }\n  }\n  IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;\n  class IfcPostalAddress extends IfcAddress {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {\n      super(expressID, Purpose, Description, UserDefinedPurpose);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.InternalLocation = InternalLocation;\n      this.AddressLines = AddressLines;\n      this.PostalBox = PostalBox;\n      this.Town = Town;\n      this.Region = Region;\n      this.PostalCode = PostalCode;\n      this.Country = Country;\n      this.type = 3355820592;\n    }\n  }\n  IFC2X32.IfcPostalAddress = IfcPostalAddress;\n  class IfcPreDefinedItem extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3727388367;\n    }\n  }\n  IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem;\n  class IfcPreDefinedSymbol extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 990879717;\n    }\n  }\n  IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol;\n  class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 3213052703;\n    }\n  }\n  IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol;\n  class IfcPreDefinedTextFont extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 1775413392;\n    }\n  }\n  IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont;\n  class IfcPresentationLayerAssignment extends IfcLineObject {\n    constructor(expressID, Name, Description, AssignedItems, Identifier) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.AssignedItems = AssignedItems;\n      this.Identifier = Identifier;\n      this.type = 2022622350;\n    }\n  }\n  IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;\n  class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {\n    constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {\n      super(expressID, Name, Description, AssignedItems, Identifier);\n      this.Name = Name;\n      this.Description = Description;\n      this.AssignedItems = AssignedItems;\n      this.Identifier = Identifier;\n      this.LayerOn = LayerOn;\n      this.LayerFrozen = LayerFrozen;\n      this.LayerBlocked = LayerBlocked;\n      this.LayerStyles = LayerStyles;\n      this.type = 1304840413;\n    }\n  }\n  IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;\n  class IfcPresentationStyle extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3119450353;\n    }\n  }\n  IFC2X32.IfcPresentationStyle = IfcPresentationStyle;\n  class IfcPresentationStyleAssignment extends IfcLineObject {\n    constructor(expressID, Styles) {\n      super(expressID);\n      this.Styles = Styles;\n      this.type = 2417041796;\n    }\n  }\n  IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment;\n  class IfcProductRepresentation extends IfcLineObject {\n    constructor(expressID, Name, Description, Representations) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.type = 2095639259;\n    }\n  }\n  IFC2X32.IfcProductRepresentation = IfcProductRepresentation;\n  class IfcProductsOfCombustionProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.SpecificHeatCapacity = SpecificHeatCapacity;\n      this.N20Content = N20Content;\n      this.COContent = COContent;\n      this.CO2Content = CO2Content;\n      this.type = 2267347899;\n    }\n  }\n  IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties;\n  class IfcProfileDef extends IfcLineObject {\n    constructor(expressID, ProfileType, ProfileName) {\n      super(expressID);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.type = 3958567839;\n    }\n  }\n  IFC2X32.IfcProfileDef = IfcProfileDef;\n  class IfcProfileProperties extends IfcLineObject {\n    constructor(expressID, ProfileName, ProfileDefinition) {\n      super(expressID);\n      this.ProfileName = ProfileName;\n      this.ProfileDefinition = ProfileDefinition;\n      this.type = 2802850158;\n    }\n  }\n  IFC2X32.IfcProfileProperties = IfcProfileProperties;\n  class IfcProperty extends IfcLineObject {\n    constructor(expressID, Name, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2598011224;\n    }\n  }\n  IFC2X32.IfcProperty = IfcProperty;\n  class IfcPropertyConstraintRelationship extends IfcLineObject {\n    constructor(expressID, RelatingConstraint, RelatedProperties, Name, Description) {\n      super(expressID);\n      this.RelatingConstraint = RelatingConstraint;\n      this.RelatedProperties = RelatedProperties;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3896028662;\n    }\n  }\n  IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship;\n  class IfcPropertyDependencyRelationship extends IfcLineObject {\n    constructor(expressID, DependingProperty, DependantProperty, Name, Description, Expression) {\n      super(expressID);\n      this.DependingProperty = DependingProperty;\n      this.DependantProperty = DependantProperty;\n      this.Name = Name;\n      this.Description = Description;\n      this.Expression = Expression;\n      this.type = 148025276;\n    }\n  }\n  IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;\n  class IfcPropertyEnumeration extends IfcLineObject {\n    constructor(expressID, Name, EnumerationValues, Unit) {\n      super(expressID);\n      this.Name = Name;\n      this.EnumerationValues = EnumerationValues;\n      this.Unit = Unit;\n      this.type = 3710013099;\n    }\n  }\n  IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration;\n  class IfcQuantityArea extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, AreaValue) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.AreaValue = AreaValue;\n      this.type = 2044713172;\n    }\n  }\n  IFC2X32.IfcQuantityArea = IfcQuantityArea;\n  class IfcQuantityCount extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, CountValue) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.CountValue = CountValue;\n      this.type = 2093928680;\n    }\n  }\n  IFC2X32.IfcQuantityCount = IfcQuantityCount;\n  class IfcQuantityLength extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, LengthValue) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.LengthValue = LengthValue;\n      this.type = 931644368;\n    }\n  }\n  IFC2X32.IfcQuantityLength = IfcQuantityLength;\n  class IfcQuantityTime extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, TimeValue) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.TimeValue = TimeValue;\n      this.type = 3252649465;\n    }\n  }\n  IFC2X32.IfcQuantityTime = IfcQuantityTime;\n  class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, VolumeValue) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.VolumeValue = VolumeValue;\n      this.type = 2405470396;\n    }\n  }\n  IFC2X32.IfcQuantityVolume = IfcQuantityVolume;\n  class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, WeightValue) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.WeightValue = WeightValue;\n      this.type = 825690147;\n    }\n  }\n  IFC2X32.IfcQuantityWeight = IfcQuantityWeight;\n  class IfcReferencesValueDocument extends IfcLineObject {\n    constructor(expressID, ReferencedDocument, ReferencingValues, Name, Description) {\n      super(expressID);\n      this.ReferencedDocument = ReferencedDocument;\n      this.ReferencingValues = ReferencingValues;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2692823254;\n    }\n  }\n  IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument;\n  class IfcReinforcementBarProperties extends IfcLineObject {\n    constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {\n      super(expressID);\n      this.TotalCrossSectionArea = TotalCrossSectionArea;\n      this.SteelGrade = SteelGrade;\n      this.BarSurface = BarSurface;\n      this.EffectiveDepth = EffectiveDepth;\n      this.NominalBarDiameter = NominalBarDiameter;\n      this.BarCount = BarCount;\n      this.type = 1580146022;\n    }\n  }\n  IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties;\n  class IfcRelaxation extends IfcLineObject {\n    constructor(expressID, RelaxationValue, InitialStress) {\n      super(expressID);\n      this.RelaxationValue = RelaxationValue;\n      this.InitialStress = InitialStress;\n      this.type = 1222501353;\n    }\n  }\n  IFC2X32.IfcRelaxation = IfcRelaxation;\n  class IfcRepresentation extends IfcLineObject {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 1076942058;\n    }\n  }\n  IFC2X32.IfcRepresentation = IfcRepresentation;\n  class IfcRepresentationContext extends IfcLineObject {\n    constructor(expressID, ContextIdentifier, ContextType) {\n      super(expressID);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.type = 3377609919;\n    }\n  }\n  IFC2X32.IfcRepresentationContext = IfcRepresentationContext;\n  class IfcRepresentationItem extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 3008791417;\n    }\n  }\n  IFC2X32.IfcRepresentationItem = IfcRepresentationItem;\n  class IfcRepresentationMap extends IfcLineObject {\n    constructor(expressID, MappingOrigin, MappedRepresentation) {\n      super(expressID);\n      this.MappingOrigin = MappingOrigin;\n      this.MappedRepresentation = MappedRepresentation;\n      this.type = 1660063152;\n    }\n  }\n  IFC2X32.IfcRepresentationMap = IfcRepresentationMap;\n  class IfcRibPlateProfileProperties extends IfcProfileProperties {\n    constructor(expressID, ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) {\n      super(expressID, ProfileName, ProfileDefinition);\n      this.ProfileName = ProfileName;\n      this.ProfileDefinition = ProfileDefinition;\n      this.Thickness = Thickness;\n      this.RibHeight = RibHeight;\n      this.RibWidth = RibWidth;\n      this.RibSpacing = RibSpacing;\n      this.Direction = Direction;\n      this.type = 3679540991;\n    }\n  }\n  IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties;\n  class IfcRoot extends IfcLineObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2341007311;\n    }\n  }\n  IFC2X32.IfcRoot = IfcRoot;\n  class IfcSIUnit extends IfcNamedUnit {\n    constructor(expressID, UnitType, Prefix, Name) {\n      super(expressID, new Handle(0), UnitType);\n      this.UnitType = UnitType;\n      this.Prefix = Prefix;\n      this.Name = Name;\n      this.type = 448429030;\n    }\n  }\n  IFC2X32.IfcSIUnit = IfcSIUnit;\n  class IfcSectionProperties extends IfcLineObject {\n    constructor(expressID, SectionType, StartProfile, EndProfile) {\n      super(expressID);\n      this.SectionType = SectionType;\n      this.StartProfile = StartProfile;\n      this.EndProfile = EndProfile;\n      this.type = 2042790032;\n    }\n  }\n  IFC2X32.IfcSectionProperties = IfcSectionProperties;\n  class IfcSectionReinforcementProperties extends IfcLineObject {\n    constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {\n      super(expressID);\n      this.LongitudinalStartPosition = LongitudinalStartPosition;\n      this.LongitudinalEndPosition = LongitudinalEndPosition;\n      this.TransversePosition = TransversePosition;\n      this.ReinforcementRole = ReinforcementRole;\n      this.SectionDefinition = SectionDefinition;\n      this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;\n      this.type = 4165799628;\n    }\n  }\n  IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;\n  class IfcShapeAspect extends IfcLineObject {\n    constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {\n      super(expressID);\n      this.ShapeRepresentations = ShapeRepresentations;\n      this.Name = Name;\n      this.Description = Description;\n      this.ProductDefinitional = ProductDefinitional;\n      this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;\n      this.type = 867548509;\n    }\n  }\n  IFC2X32.IfcShapeAspect = IfcShapeAspect;\n  class IfcShapeModel extends IfcRepresentation {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 3982875396;\n    }\n  }\n  IFC2X32.IfcShapeModel = IfcShapeModel;\n  class IfcShapeRepresentation extends IfcShapeModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 4240577450;\n    }\n  }\n  IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation;\n  class IfcSimpleProperty extends IfcProperty {\n    constructor(expressID, Name, Description) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3692461612;\n    }\n  }\n  IFC2X32.IfcSimpleProperty = IfcSimpleProperty;\n  class IfcStructuralConnectionCondition extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 2273995522;\n    }\n  }\n  IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;\n  class IfcStructuralLoad extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 2162789131;\n    }\n  }\n  IFC2X32.IfcStructuralLoad = IfcStructuralLoad;\n  class IfcStructuralLoadStatic extends IfcStructuralLoad {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 2525727697;\n    }\n  }\n  IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic;\n  class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.DeltaT_Constant = DeltaT_Constant;\n      this.DeltaT_Y = DeltaT_Y;\n      this.DeltaT_Z = DeltaT_Z;\n      this.type = 3408363356;\n    }\n  }\n  IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;\n  class IfcStyleModel extends IfcRepresentation {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 2830218821;\n    }\n  }\n  IFC2X32.IfcStyleModel = IfcStyleModel;\n  class IfcStyledItem extends IfcRepresentationItem {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 3958052878;\n    }\n  }\n  IFC2X32.IfcStyledItem = IfcStyledItem;\n  class IfcStyledRepresentation extends IfcStyleModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 3049322572;\n    }\n  }\n  IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation;\n  class IfcSurfaceStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, Side, Styles) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.Side = Side;\n      this.Styles = Styles;\n      this.type = 1300840506;\n    }\n  }\n  IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle;\n  class IfcSurfaceStyleLighting extends IfcLineObject {\n    constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {\n      super(expressID);\n      this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n      this.DiffuseReflectionColour = DiffuseReflectionColour;\n      this.TransmissionColour = TransmissionColour;\n      this.ReflectanceColour = ReflectanceColour;\n      this.type = 3303107099;\n    }\n  }\n  IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;\n  class IfcSurfaceStyleRefraction extends IfcLineObject {\n    constructor(expressID, RefractionIndex, DispersionFactor) {\n      super(expressID);\n      this.RefractionIndex = RefractionIndex;\n      this.DispersionFactor = DispersionFactor;\n      this.type = 1607154358;\n    }\n  }\n  IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;\n  class IfcSurfaceStyleShading extends IfcLineObject {\n    constructor(expressID, SurfaceColour) {\n      super(expressID);\n      this.SurfaceColour = SurfaceColour;\n      this.type = 846575682;\n    }\n  }\n  IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading;\n  class IfcSurfaceStyleWithTextures extends IfcLineObject {\n    constructor(expressID, Textures) {\n      super(expressID);\n      this.Textures = Textures;\n      this.type = 1351298697;\n    }\n  }\n  IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;\n  class IfcSurfaceTexture extends IfcLineObject {\n    constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform) {\n      super(expressID);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.TextureType = TextureType;\n      this.TextureTransform = TextureTransform;\n      this.type = 626085974;\n    }\n  }\n  IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture;\n  class IfcSymbolStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, StyleOfSymbol) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.StyleOfSymbol = StyleOfSymbol;\n      this.type = 1290481447;\n    }\n  }\n  IFC2X32.IfcSymbolStyle = IfcSymbolStyle;\n  class IfcTable extends IfcLineObject {\n    constructor(expressID, Name, Rows) {\n      super(expressID);\n      this.Name = Name;\n      this.Rows = Rows;\n      this.type = 985171141;\n    }\n  }\n  IFC2X32.IfcTable = IfcTable;\n  class IfcTableRow extends IfcLineObject {\n    constructor(expressID, RowCells, IsHeading) {\n      super(expressID);\n      this.RowCells = RowCells;\n      this.IsHeading = IsHeading;\n      this.type = 531007025;\n    }\n  }\n  IFC2X32.IfcTableRow = IfcTableRow;\n  class IfcTelecomAddress extends IfcAddress {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) {\n      super(expressID, Purpose, Description, UserDefinedPurpose);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.TelephoneNumbers = TelephoneNumbers;\n      this.FacsimileNumbers = FacsimileNumbers;\n      this.PagerNumber = PagerNumber;\n      this.ElectronicMailAddresses = ElectronicMailAddresses;\n      this.WWWHomePageURL = WWWHomePageURL;\n      this.type = 912023232;\n    }\n  }\n  IFC2X32.IfcTelecomAddress = IfcTelecomAddress;\n  class IfcTextStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TextCharacterAppearance = TextCharacterAppearance;\n      this.TextStyle = TextStyle;\n      this.TextFontStyle = TextFontStyle;\n      this.type = 1447204868;\n    }\n  }\n  IFC2X32.IfcTextStyle = IfcTextStyle;\n  class IfcTextStyleFontModel extends IfcPreDefinedTextFont {\n    constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.FontFamily = FontFamily;\n      this.FontStyle = FontStyle;\n      this.FontVariant = FontVariant;\n      this.FontWeight = FontWeight;\n      this.FontSize = FontSize;\n      this.type = 1983826977;\n    }\n  }\n  IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel;\n  class IfcTextStyleForDefinedFont extends IfcLineObject {\n    constructor(expressID, Colour, BackgroundColour) {\n      super(expressID);\n      this.Colour = Colour;\n      this.BackgroundColour = BackgroundColour;\n      this.type = 2636378356;\n    }\n  }\n  IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;\n  class IfcTextStyleTextModel extends IfcLineObject {\n    constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {\n      super(expressID);\n      this.TextIndent = TextIndent;\n      this.TextAlign = TextAlign;\n      this.TextDecoration = TextDecoration;\n      this.LetterSpacing = LetterSpacing;\n      this.WordSpacing = WordSpacing;\n      this.TextTransform = TextTransform;\n      this.LineHeight = LineHeight;\n      this.type = 1640371178;\n    }\n  }\n  IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel;\n  class IfcTextStyleWithBoxCharacteristics extends IfcLineObject {\n    constructor(expressID, BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) {\n      super(expressID);\n      this.BoxHeight = BoxHeight;\n      this.BoxWidth = BoxWidth;\n      this.BoxSlantAngle = BoxSlantAngle;\n      this.BoxRotateAngle = BoxRotateAngle;\n      this.CharacterSpacing = CharacterSpacing;\n      this.type = 1484833681;\n    }\n  }\n  IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics;\n  class IfcTextureCoordinate extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 280115917;\n    }\n  }\n  IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate;\n  class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {\n    constructor(expressID, Mode, Parameter) {\n      super(expressID);\n      this.Mode = Mode;\n      this.Parameter = Parameter;\n      this.type = 1742049831;\n    }\n  }\n  IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;\n  class IfcTextureMap extends IfcTextureCoordinate {\n    constructor(expressID, TextureMaps) {\n      super(expressID);\n      this.TextureMaps = TextureMaps;\n      this.type = 2552916305;\n    }\n  }\n  IFC2X32.IfcTextureMap = IfcTextureMap;\n  class IfcTextureVertex extends IfcLineObject {\n    constructor(expressID, Coordinates) {\n      super(expressID);\n      this.Coordinates = Coordinates;\n      this.type = 1210645708;\n    }\n  }\n  IFC2X32.IfcTextureVertex = IfcTextureVertex;\n  class IfcThermalMaterialProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.SpecificHeatCapacity = SpecificHeatCapacity;\n      this.BoilingPoint = BoilingPoint;\n      this.FreezingPoint = FreezingPoint;\n      this.ThermalConductivity = ThermalConductivity;\n      this.type = 3317419933;\n    }\n  }\n  IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties;\n  class IfcTimeSeries extends IfcLineObject {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.type = 3101149627;\n    }\n  }\n  IFC2X32.IfcTimeSeries = IfcTimeSeries;\n  class IfcTimeSeriesReferenceRelationship extends IfcLineObject {\n    constructor(expressID, ReferencedTimeSeries, TimeSeriesReferences) {\n      super(expressID);\n      this.ReferencedTimeSeries = ReferencedTimeSeries;\n      this.TimeSeriesReferences = TimeSeriesReferences;\n      this.type = 1718945513;\n    }\n  }\n  IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship;\n  class IfcTimeSeriesValue extends IfcLineObject {\n    constructor(expressID, ListValues) {\n      super(expressID);\n      this.ListValues = ListValues;\n      this.type = 581633288;\n    }\n  }\n  IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue;\n  class IfcTopologicalRepresentationItem extends IfcRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1377556343;\n    }\n  }\n  IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;\n  class IfcTopologyRepresentation extends IfcShapeModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 1735638870;\n    }\n  }\n  IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation;\n  class IfcUnitAssignment extends IfcLineObject {\n    constructor(expressID, Units) {\n      super(expressID);\n      this.Units = Units;\n      this.type = 180925521;\n    }\n  }\n  IFC2X32.IfcUnitAssignment = IfcUnitAssignment;\n  class IfcVertex extends IfcTopologicalRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2799835756;\n    }\n  }\n  IFC2X32.IfcVertex = IfcVertex;\n  class IfcVertexBasedTextureMap extends IfcLineObject {\n    constructor(expressID, TextureVertices, TexturePoints) {\n      super(expressID);\n      this.TextureVertices = TextureVertices;\n      this.TexturePoints = TexturePoints;\n      this.type = 3304826586;\n    }\n  }\n  IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap;\n  class IfcVertexPoint extends IfcVertex {\n    constructor(expressID, VertexGeometry) {\n      super(expressID);\n      this.VertexGeometry = VertexGeometry;\n      this.type = 1907098498;\n    }\n  }\n  IFC2X32.IfcVertexPoint = IfcVertexPoint;\n  class IfcVirtualGridIntersection extends IfcLineObject {\n    constructor(expressID, IntersectingAxes, OffsetDistances) {\n      super(expressID);\n      this.IntersectingAxes = IntersectingAxes;\n      this.OffsetDistances = OffsetDistances;\n      this.type = 891718957;\n    }\n  }\n  IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection;\n  class IfcWaterProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.IsPotable = IsPotable;\n      this.Hardness = Hardness;\n      this.AlkalinityConcentration = AlkalinityConcentration;\n      this.AcidityConcentration = AcidityConcentration;\n      this.ImpuritiesContent = ImpuritiesContent;\n      this.PHLevel = PHLevel;\n      this.DissolvedSolidsContent = DissolvedSolidsContent;\n      this.type = 1065908215;\n    }\n  }\n  IFC2X32.IfcWaterProperties = IfcWaterProperties;\n  class IfcAnnotationOccurrence extends IfcStyledItem {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 2442683028;\n    }\n  }\n  IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence;\n  class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 962685235;\n    }\n  }\n  IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence;\n  class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 3612888222;\n    }\n  }\n  IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence;\n  class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 2297822566;\n    }\n  }\n  IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence;\n  class IfcArbitraryClosedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, OuterCurve) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.OuterCurve = OuterCurve;\n      this.type = 3798115385;\n    }\n  }\n  IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;\n  class IfcArbitraryOpenProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Curve) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Curve = Curve;\n      this.type = 1310608509;\n    }\n  }\n  IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;\n  class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) {\n      super(expressID, ProfileType, ProfileName, OuterCurve);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.OuterCurve = OuterCurve;\n      this.InnerCurves = InnerCurves;\n      this.type = 2705031697;\n    }\n  }\n  IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;\n  class IfcBlobTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) {\n      super(expressID, RepeatS, RepeatT, TextureType, TextureTransform);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.TextureType = TextureType;\n      this.TextureTransform = TextureTransform;\n      this.RasterFormat = RasterFormat;\n      this.RasterCode = RasterCode;\n      this.type = 616511568;\n    }\n  }\n  IFC2X32.IfcBlobTexture = IfcBlobTexture;\n  class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Curve, Thickness) {\n      super(expressID, ProfileType, ProfileName, Curve);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Curve = Curve;\n      this.Thickness = Thickness;\n      this.type = 3150382593;\n    }\n  }\n  IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef;\n  class IfcClassificationReference extends IfcExternalReference {\n    constructor(expressID, Location, ItemReference, Name, ReferencedSource) {\n      super(expressID, Location, ItemReference, Name);\n      this.Location = Location;\n      this.ItemReference = ItemReference;\n      this.Name = Name;\n      this.ReferencedSource = ReferencedSource;\n      this.type = 647927063;\n    }\n  }\n  IFC2X32.IfcClassificationReference = IfcClassificationReference;\n  class IfcColourRgb extends IfcColourSpecification {\n    constructor(expressID, Name, Red, Green, Blue) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.Red = Red;\n      this.Green = Green;\n      this.Blue = Blue;\n      this.type = 776857604;\n    }\n  }\n  IFC2X32.IfcColourRgb = IfcColourRgb;\n  class IfcComplexProperty extends IfcProperty {\n    constructor(expressID, Name, Description, UsageName, HasProperties) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.UsageName = UsageName;\n      this.HasProperties = HasProperties;\n      this.type = 2542286263;\n    }\n  }\n  IFC2X32.IfcComplexProperty = IfcComplexProperty;\n  class IfcCompositeProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Profiles, Label) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Profiles = Profiles;\n      this.Label = Label;\n      this.type = 1485152156;\n    }\n  }\n  IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef;\n  class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {\n    constructor(expressID, CfsFaces) {\n      super(expressID);\n      this.CfsFaces = CfsFaces;\n      this.type = 370225590;\n    }\n  }\n  IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet;\n  class IfcConnectionCurveGeometry extends IfcConnectionGeometry {\n    constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) {\n      super(expressID);\n      this.CurveOnRelatingElement = CurveOnRelatingElement;\n      this.CurveOnRelatedElement = CurveOnRelatedElement;\n      this.type = 1981873012;\n    }\n  }\n  IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;\n  class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {\n    constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {\n      super(expressID, PointOnRelatingElement, PointOnRelatedElement);\n      this.PointOnRelatingElement = PointOnRelatingElement;\n      this.PointOnRelatedElement = PointOnRelatedElement;\n      this.EccentricityInX = EccentricityInX;\n      this.EccentricityInY = EccentricityInY;\n      this.EccentricityInZ = EccentricityInZ;\n      this.type = 45288368;\n    }\n  }\n  IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;\n  class IfcContextDependentUnit extends IfcNamedUnit {\n    constructor(expressID, Dimensions, UnitType, Name) {\n      super(expressID, Dimensions, UnitType);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Name = Name;\n      this.type = 3050246964;\n    }\n  }\n  IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit;\n  class IfcConversionBasedUnit extends IfcNamedUnit {\n    constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) {\n      super(expressID, Dimensions, UnitType);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Name = Name;\n      this.ConversionFactor = ConversionFactor;\n      this.type = 2889183280;\n    }\n  }\n  IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit;\n  class IfcCurveStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, CurveFont, CurveWidth, CurveColour) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.CurveFont = CurveFont;\n      this.CurveWidth = CurveWidth;\n      this.CurveColour = CurveColour;\n      this.type = 3800577675;\n    }\n  }\n  IFC2X32.IfcCurveStyle = IfcCurveStyle;\n  class IfcDerivedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.ParentProfile = ParentProfile;\n      this.Operator = Operator;\n      this.Label = Label;\n      this.type = 3632507154;\n    }\n  }\n  IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef;\n  class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship {\n    constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {\n      super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingDraughtingCallout = RelatingDraughtingCallout;\n      this.RelatedDraughtingCallout = RelatedDraughtingCallout;\n      this.type = 2273265877;\n    }\n  }\n  IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship;\n  class IfcDimensionPair extends IfcDraughtingCalloutRelationship {\n    constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {\n      super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingDraughtingCallout = RelatingDraughtingCallout;\n      this.RelatedDraughtingCallout = RelatedDraughtingCallout;\n      this.type = 1694125774;\n    }\n  }\n  IFC2X32.IfcDimensionPair = IfcDimensionPair;\n  class IfcDocumentReference extends IfcExternalReference {\n    constructor(expressID, Location, ItemReference, Name) {\n      super(expressID, Location, ItemReference, Name);\n      this.Location = Location;\n      this.ItemReference = ItemReference;\n      this.Name = Name;\n      this.type = 3732053477;\n    }\n  }\n  IFC2X32.IfcDocumentReference = IfcDocumentReference;\n  class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 4170525392;\n    }\n  }\n  IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont;\n  class IfcEdge extends IfcTopologicalRepresentationItem {\n    constructor(expressID, EdgeStart, EdgeEnd) {\n      super(expressID);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.type = 3900360178;\n    }\n  }\n  IFC2X32.IfcEdge = IfcEdge;\n  class IfcEdgeCurve extends IfcEdge {\n    constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {\n      super(expressID, EdgeStart, EdgeEnd);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.EdgeGeometry = EdgeGeometry;\n      this.SameSense = SameSense;\n      this.type = 476780140;\n    }\n  }\n  IFC2X32.IfcEdgeCurve = IfcEdgeCurve;\n  class IfcExtendedMaterialProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, ExtendedProperties, Description, Name) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.ExtendedProperties = ExtendedProperties;\n      this.Description = Description;\n      this.Name = Name;\n      this.type = 1860660968;\n    }\n  }\n  IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties;\n  class IfcFace extends IfcTopologicalRepresentationItem {\n    constructor(expressID, Bounds) {\n      super(expressID);\n      this.Bounds = Bounds;\n      this.type = 2556980723;\n    }\n  }\n  IFC2X32.IfcFace = IfcFace;\n  class IfcFaceBound extends IfcTopologicalRepresentationItem {\n    constructor(expressID, Bound, Orientation) {\n      super(expressID);\n      this.Bound = Bound;\n      this.Orientation = Orientation;\n      this.type = 1809719519;\n    }\n  }\n  IFC2X32.IfcFaceBound = IfcFaceBound;\n  class IfcFaceOuterBound extends IfcFaceBound {\n    constructor(expressID, Bound, Orientation) {\n      super(expressID, Bound, Orientation);\n      this.Bound = Bound;\n      this.Orientation = Orientation;\n      this.type = 803316827;\n    }\n  }\n  IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound;\n  class IfcFaceSurface extends IfcFace {\n    constructor(expressID, Bounds, FaceSurface, SameSense) {\n      super(expressID, Bounds);\n      this.Bounds = Bounds;\n      this.FaceSurface = FaceSurface;\n      this.SameSense = SameSense;\n      this.type = 3008276851;\n    }\n  }\n  IFC2X32.IfcFaceSurface = IfcFaceSurface;\n  class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {\n    constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TensionFailureX = TensionFailureX;\n      this.TensionFailureY = TensionFailureY;\n      this.TensionFailureZ = TensionFailureZ;\n      this.CompressionFailureX = CompressionFailureX;\n      this.CompressionFailureY = CompressionFailureY;\n      this.CompressionFailureZ = CompressionFailureZ;\n      this.type = 4219587988;\n    }\n  }\n  IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition;\n  class IfcFillAreaStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, FillStyles) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.FillStyles = FillStyles;\n      this.type = 738692330;\n    }\n  }\n  IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle;\n  class IfcFuelProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.CombustionTemperature = CombustionTemperature;\n      this.CarbonContent = CarbonContent;\n      this.LowerHeatingValue = LowerHeatingValue;\n      this.HigherHeatingValue = HigherHeatingValue;\n      this.type = 3857492461;\n    }\n  }\n  IFC2X32.IfcFuelProperties = IfcFuelProperties;\n  class IfcGeneralMaterialProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, MolecularWeight, Porosity, MassDensity) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.MolecularWeight = MolecularWeight;\n      this.Porosity = Porosity;\n      this.MassDensity = MassDensity;\n      this.type = 803998398;\n    }\n  }\n  IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties;\n  class IfcGeneralProfileProperties extends IfcProfileProperties {\n    constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) {\n      super(expressID, ProfileName, ProfileDefinition);\n      this.ProfileName = ProfileName;\n      this.ProfileDefinition = ProfileDefinition;\n      this.PhysicalWeight = PhysicalWeight;\n      this.Perimeter = Perimeter;\n      this.MinimumPlateThickness = MinimumPlateThickness;\n      this.MaximumPlateThickness = MaximumPlateThickness;\n      this.CrossSectionArea = CrossSectionArea;\n      this.type = 1446786286;\n    }\n  }\n  IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties;\n  class IfcGeometricRepresentationContext extends IfcRepresentationContext {\n    constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {\n      super(expressID, ContextIdentifier, ContextType);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.CoordinateSpaceDimension = CoordinateSpaceDimension;\n      this.Precision = Precision;\n      this.WorldCoordinateSystem = WorldCoordinateSystem;\n      this.TrueNorth = TrueNorth;\n      this.type = 3448662350;\n    }\n  }\n  IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;\n  class IfcGeometricRepresentationItem extends IfcRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2453401579;\n    }\n  }\n  IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;\n  class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {\n    constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {\n      super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.ParentContext = ParentContext;\n      this.TargetScale = TargetScale;\n      this.TargetView = TargetView;\n      this.UserDefinedTargetView = UserDefinedTargetView;\n      this.type = 4142052618;\n    }\n  }\n  IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;\n  class IfcGeometricSet extends IfcGeometricRepresentationItem {\n    constructor(expressID, Elements) {\n      super(expressID);\n      this.Elements = Elements;\n      this.type = 3590301190;\n    }\n  }\n  IFC2X32.IfcGeometricSet = IfcGeometricSet;\n  class IfcGridPlacement extends IfcObjectPlacement {\n    constructor(expressID, PlacementLocation, PlacementRefDirection) {\n      super(expressID);\n      this.PlacementLocation = PlacementLocation;\n      this.PlacementRefDirection = PlacementRefDirection;\n      this.type = 178086475;\n    }\n  }\n  IFC2X32.IfcGridPlacement = IfcGridPlacement;\n  class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {\n    constructor(expressID, BaseSurface, AgreementFlag) {\n      super(expressID);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.type = 812098782;\n    }\n  }\n  IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid;\n  class IfcHygroscopicMaterialProperties extends IfcMaterialProperties {\n    constructor(expressID, Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) {\n      super(expressID, Material);\n      this.Material = Material;\n      this.UpperVaporResistanceFactor = UpperVaporResistanceFactor;\n      this.LowerVaporResistanceFactor = LowerVaporResistanceFactor;\n      this.IsothermalMoistureCapacity = IsothermalMoistureCapacity;\n      this.VaporPermeability = VaporPermeability;\n      this.MoistureDiffusivity = MoistureDiffusivity;\n      this.type = 2445078500;\n    }\n  }\n  IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties;\n  class IfcImageTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) {\n      super(expressID, RepeatS, RepeatT, TextureType, TextureTransform);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.TextureType = TextureType;\n      this.TextureTransform = TextureTransform;\n      this.UrlReference = UrlReference;\n      this.type = 3905492369;\n    }\n  }\n  IFC2X32.IfcImageTexture = IfcImageTexture;\n  class IfcIrregularTimeSeries extends IfcTimeSeries {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {\n      super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.Values = Values;\n      this.type = 3741457305;\n    }\n  }\n  IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries;\n  class IfcLightSource extends IfcGeometricRepresentationItem {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) {\n      super(expressID);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.type = 1402838566;\n    }\n  }\n  IFC2X32.IfcLightSource = IfcLightSource;\n  class IfcLightSourceAmbient extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.type = 125510826;\n    }\n  }\n  IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient;\n  class IfcLightSourceDirectional extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Orientation = Orientation;\n      this.type = 2604431987;\n    }\n  }\n  IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional;\n  class IfcLightSourceGoniometric extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.ColourAppearance = ColourAppearance;\n      this.ColourTemperature = ColourTemperature;\n      this.LuminousFlux = LuminousFlux;\n      this.LightEmissionSource = LightEmissionSource;\n      this.LightDistributionDataSource = LightDistributionDataSource;\n      this.type = 4266656042;\n    }\n  }\n  IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric;\n  class IfcLightSourcePositional extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.ConstantAttenuation = ConstantAttenuation;\n      this.DistanceAttenuation = DistanceAttenuation;\n      this.QuadricAttenuation = QuadricAttenuation;\n      this.type = 1520743889;\n    }\n  }\n  IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional;\n  class IfcLightSourceSpot extends IfcLightSourcePositional {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.ConstantAttenuation = ConstantAttenuation;\n      this.DistanceAttenuation = DistanceAttenuation;\n      this.QuadricAttenuation = QuadricAttenuation;\n      this.Orientation = Orientation;\n      this.ConcentrationExponent = ConcentrationExponent;\n      this.SpreadAngle = SpreadAngle;\n      this.BeamWidthAngle = BeamWidthAngle;\n      this.type = 3422422726;\n    }\n  }\n  IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot;\n  class IfcLocalPlacement extends IfcObjectPlacement {\n    constructor(expressID, PlacementRelTo, RelativePlacement) {\n      super(expressID);\n      this.PlacementRelTo = PlacementRelTo;\n      this.RelativePlacement = RelativePlacement;\n      this.type = 2624227202;\n    }\n  }\n  IFC2X32.IfcLocalPlacement = IfcLocalPlacement;\n  class IfcLoop extends IfcTopologicalRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1008929658;\n    }\n  }\n  IFC2X32.IfcLoop = IfcLoop;\n  class IfcMappedItem extends IfcRepresentationItem {\n    constructor(expressID, MappingSource, MappingTarget) {\n      super(expressID);\n      this.MappingSource = MappingSource;\n      this.MappingTarget = MappingTarget;\n      this.type = 2347385850;\n    }\n  }\n  IFC2X32.IfcMappedItem = IfcMappedItem;\n  class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {\n    constructor(expressID, Name, Description, Representations, RepresentedMaterial) {\n      super(expressID, Name, Description, Representations);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.RepresentedMaterial = RepresentedMaterial;\n      this.type = 2022407955;\n    }\n  }\n  IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;\n  class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties {\n    constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) {\n      super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient);\n      this.Material = Material;\n      this.DynamicViscosity = DynamicViscosity;\n      this.YoungModulus = YoungModulus;\n      this.ShearModulus = ShearModulus;\n      this.PoissonRatio = PoissonRatio;\n      this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;\n      this.CompressiveStrength = CompressiveStrength;\n      this.MaxAggregateSize = MaxAggregateSize;\n      this.AdmixturesDescription = AdmixturesDescription;\n      this.Workability = Workability;\n      this.ProtectivePoreRatio = ProtectivePoreRatio;\n      this.WaterImpermeability = WaterImpermeability;\n      this.type = 1430189142;\n    }\n  }\n  IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties;\n  class IfcObjectDefinition extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 219451334;\n    }\n  }\n  IFC2X32.IfcObjectDefinition = IfcObjectDefinition;\n  class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem {\n    constructor(expressID, RepeatFactor) {\n      super(expressID);\n      this.RepeatFactor = RepeatFactor;\n      this.type = 2833995503;\n    }\n  }\n  IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor;\n  class IfcOpenShell extends IfcConnectedFaceSet {\n    constructor(expressID, CfsFaces) {\n      super(expressID, CfsFaces);\n      this.CfsFaces = CfsFaces;\n      this.type = 2665983363;\n    }\n  }\n  IFC2X32.IfcOpenShell = IfcOpenShell;\n  class IfcOrientedEdge extends IfcEdge {\n    constructor(expressID, EdgeElement, Orientation) {\n      super(expressID, new Handle(0), new Handle(0));\n      this.EdgeElement = EdgeElement;\n      this.Orientation = Orientation;\n      this.type = 1029017970;\n    }\n  }\n  IFC2X32.IfcOrientedEdge = IfcOrientedEdge;\n  class IfcParameterizedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.type = 2529465313;\n    }\n  }\n  IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef;\n  class IfcPath extends IfcTopologicalRepresentationItem {\n    constructor(expressID, EdgeList) {\n      super(expressID);\n      this.EdgeList = EdgeList;\n      this.type = 2519244187;\n    }\n  }\n  IFC2X32.IfcPath = IfcPath;\n  class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {\n    constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.HasQuantities = HasQuantities;\n      this.Discrimination = Discrimination;\n      this.Quality = Quality;\n      this.Usage = Usage;\n      this.type = 3021840470;\n    }\n  }\n  IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;\n  class IfcPixelTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) {\n      super(expressID, RepeatS, RepeatT, TextureType, TextureTransform);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.TextureType = TextureType;\n      this.TextureTransform = TextureTransform;\n      this.Width = Width;\n      this.Height = Height;\n      this.ColourComponents = ColourComponents;\n      this.Pixel = Pixel;\n      this.type = 597895409;\n    }\n  }\n  IFC2X32.IfcPixelTexture = IfcPixelTexture;\n  class IfcPlacement extends IfcGeometricRepresentationItem {\n    constructor(expressID, Location) {\n      super(expressID);\n      this.Location = Location;\n      this.type = 2004835150;\n    }\n  }\n  IFC2X32.IfcPlacement = IfcPlacement;\n  class IfcPlanarExtent extends IfcGeometricRepresentationItem {\n    constructor(expressID, SizeInX, SizeInY) {\n      super(expressID);\n      this.SizeInX = SizeInX;\n      this.SizeInY = SizeInY;\n      this.type = 1663979128;\n    }\n  }\n  IFC2X32.IfcPlanarExtent = IfcPlanarExtent;\n  class IfcPoint extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2067069095;\n    }\n  }\n  IFC2X32.IfcPoint = IfcPoint;\n  class IfcPointOnCurve extends IfcPoint {\n    constructor(expressID, BasisCurve, PointParameter) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.PointParameter = PointParameter;\n      this.type = 4022376103;\n    }\n  }\n  IFC2X32.IfcPointOnCurve = IfcPointOnCurve;\n  class IfcPointOnSurface extends IfcPoint {\n    constructor(expressID, BasisSurface, PointParameterU, PointParameterV) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.PointParameterU = PointParameterU;\n      this.PointParameterV = PointParameterV;\n      this.type = 1423911732;\n    }\n  }\n  IFC2X32.IfcPointOnSurface = IfcPointOnSurface;\n  class IfcPolyLoop extends IfcLoop {\n    constructor(expressID, Polygon) {\n      super(expressID);\n      this.Polygon = Polygon;\n      this.type = 2924175390;\n    }\n  }\n  IFC2X32.IfcPolyLoop = IfcPolyLoop;\n  class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {\n    constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) {\n      super(expressID, BaseSurface, AgreementFlag);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.Position = Position;\n      this.PolygonalBoundary = PolygonalBoundary;\n      this.type = 2775532180;\n    }\n  }\n  IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;\n  class IfcPreDefinedColour extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 759155922;\n    }\n  }\n  IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour;\n  class IfcPreDefinedCurveFont extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 2559016684;\n    }\n  }\n  IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;\n  class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 433424934;\n    }\n  }\n  IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol;\n  class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 179317114;\n    }\n  }\n  IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol;\n  class IfcProductDefinitionShape extends IfcProductRepresentation {\n    constructor(expressID, Name, Description, Representations) {\n      super(expressID, Name, Description, Representations);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.type = 673634403;\n    }\n  }\n  IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape;\n  class IfcPropertyBoundedValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.UpperBoundValue = UpperBoundValue;\n      this.LowerBoundValue = LowerBoundValue;\n      this.Unit = Unit;\n      this.type = 871118103;\n    }\n  }\n  IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue;\n  class IfcPropertyDefinition extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 1680319473;\n    }\n  }\n  IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition;\n  class IfcPropertyEnumeratedValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.EnumerationValues = EnumerationValues;\n      this.EnumerationReference = EnumerationReference;\n      this.type = 4166981789;\n    }\n  }\n  IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;\n  class IfcPropertyListValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, ListValues, Unit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.ListValues = ListValues;\n      this.Unit = Unit;\n      this.type = 2752243245;\n    }\n  }\n  IFC2X32.IfcPropertyListValue = IfcPropertyListValue;\n  class IfcPropertyReferenceValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, UsageName, PropertyReference) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.UsageName = UsageName;\n      this.PropertyReference = PropertyReference;\n      this.type = 941946838;\n    }\n  }\n  IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue;\n  class IfcPropertySetDefinition extends IfcPropertyDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3357820518;\n    }\n  }\n  IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition;\n  class IfcPropertySingleValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, NominalValue, Unit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.NominalValue = NominalValue;\n      this.Unit = Unit;\n      this.type = 3650150729;\n    }\n  }\n  IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue;\n  class IfcPropertyTableValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.DefiningValues = DefiningValues;\n      this.DefinedValues = DefinedValues;\n      this.Expression = Expression;\n      this.DefiningUnit = DefiningUnit;\n      this.DefinedUnit = DefinedUnit;\n      this.type = 110355661;\n    }\n  }\n  IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue;\n  class IfcRectangleProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.type = 3615266464;\n    }\n  }\n  IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef;\n  class IfcRegularTimeSeries extends IfcTimeSeries {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {\n      super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.TimeStep = TimeStep;\n      this.Values = Values;\n      this.type = 3413951693;\n    }\n  }\n  IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries;\n  class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.DefinitionType = DefinitionType;\n      this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;\n      this.type = 3765753017;\n    }\n  }\n  IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;\n  class IfcRelationship extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 478536968;\n    }\n  }\n  IFC2X32.IfcRelationship = IfcRelationship;\n  class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {\n      super(expressID, ProfileType, ProfileName, Position, XDim, YDim);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.RoundingRadius = RoundingRadius;\n      this.type = 2778083089;\n    }\n  }\n  IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;\n  class IfcSectionedSpine extends IfcGeometricRepresentationItem {\n    constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) {\n      super(expressID);\n      this.SpineCurve = SpineCurve;\n      this.CrossSections = CrossSections;\n      this.CrossSectionPositions = CrossSectionPositions;\n      this.type = 1509187699;\n    }\n  }\n  IFC2X32.IfcSectionedSpine = IfcSectionedSpine;\n  class IfcServiceLifeFactor extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.PredefinedType = PredefinedType;\n      this.UpperValue = UpperValue;\n      this.MostUsedValue = MostUsedValue;\n      this.LowerValue = LowerValue;\n      this.type = 2411513650;\n    }\n  }\n  IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor;\n  class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {\n    constructor(expressID, SbsmBoundary) {\n      super(expressID);\n      this.SbsmBoundary = SbsmBoundary;\n      this.type = 4124623270;\n    }\n  }\n  IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;\n  class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {\n    constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.SlippageX = SlippageX;\n      this.SlippageY = SlippageY;\n      this.SlippageZ = SlippageZ;\n      this.type = 2609359061;\n    }\n  }\n  IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;\n  class IfcSolidModel extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 723233188;\n    }\n  }\n  IFC2X32.IfcSolidModel = IfcSolidModel;\n  class IfcSoundProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.IsAttenuating = IsAttenuating;\n      this.SoundScale = SoundScale;\n      this.SoundValues = SoundValues;\n      this.type = 2485662743;\n    }\n  }\n  IFC2X32.IfcSoundProperties = IfcSoundProperties;\n  class IfcSoundValue extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.SoundLevelTimeSeries = SoundLevelTimeSeries;\n      this.Frequency = Frequency;\n      this.SoundLevelSingleValue = SoundLevelSingleValue;\n      this.type = 1202362311;\n    }\n  }\n  IFC2X32.IfcSoundValue = IfcSoundValue;\n  class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableValueRatio = ApplicableValueRatio;\n      this.ThermalLoadSource = ThermalLoadSource;\n      this.PropertySource = PropertySource;\n      this.SourceDescription = SourceDescription;\n      this.MaximumValue = MaximumValue;\n      this.MinimumValue = MinimumValue;\n      this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues;\n      this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource;\n      this.UserDefinedPropertySource = UserDefinedPropertySource;\n      this.ThermalLoadType = ThermalLoadType;\n      this.type = 390701378;\n    }\n  }\n  IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties;\n  class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.LinearForceX = LinearForceX;\n      this.LinearForceY = LinearForceY;\n      this.LinearForceZ = LinearForceZ;\n      this.LinearMomentX = LinearMomentX;\n      this.LinearMomentY = LinearMomentY;\n      this.LinearMomentZ = LinearMomentZ;\n      this.type = 1595516126;\n    }\n  }\n  IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;\n  class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.PlanarForceX = PlanarForceX;\n      this.PlanarForceY = PlanarForceY;\n      this.PlanarForceZ = PlanarForceZ;\n      this.type = 2668620305;\n    }\n  }\n  IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;\n  class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.DisplacementX = DisplacementX;\n      this.DisplacementY = DisplacementY;\n      this.DisplacementZ = DisplacementZ;\n      this.RotationalDisplacementRX = RotationalDisplacementRX;\n      this.RotationalDisplacementRY = RotationalDisplacementRY;\n      this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n      this.type = 2473145415;\n    }\n  }\n  IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;\n  class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {\n    constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {\n      super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);\n      this.Name = Name;\n      this.DisplacementX = DisplacementX;\n      this.DisplacementY = DisplacementY;\n      this.DisplacementZ = DisplacementZ;\n      this.RotationalDisplacementRX = RotationalDisplacementRX;\n      this.RotationalDisplacementRY = RotationalDisplacementRY;\n      this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n      this.Distortion = Distortion;\n      this.type = 1973038258;\n    }\n  }\n  IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;\n  class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.ForceX = ForceX;\n      this.ForceY = ForceY;\n      this.ForceZ = ForceZ;\n      this.MomentX = MomentX;\n      this.MomentY = MomentY;\n      this.MomentZ = MomentZ;\n      this.type = 1597423693;\n    }\n  }\n  IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;\n  class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {\n    constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {\n      super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);\n      this.Name = Name;\n      this.ForceX = ForceX;\n      this.ForceY = ForceY;\n      this.ForceZ = ForceZ;\n      this.MomentX = MomentX;\n      this.MomentY = MomentY;\n      this.MomentZ = MomentZ;\n      this.WarpingMoment = WarpingMoment;\n      this.type = 1190533807;\n    }\n  }\n  IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;\n  class IfcStructuralProfileProperties extends IfcGeneralProfileProperties {\n    constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) {\n      super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea);\n      this.ProfileName = ProfileName;\n      this.ProfileDefinition = ProfileDefinition;\n      this.PhysicalWeight = PhysicalWeight;\n      this.Perimeter = Perimeter;\n      this.MinimumPlateThickness = MinimumPlateThickness;\n      this.MaximumPlateThickness = MaximumPlateThickness;\n      this.CrossSectionArea = CrossSectionArea;\n      this.TorsionalConstantX = TorsionalConstantX;\n      this.MomentOfInertiaYZ = MomentOfInertiaYZ;\n      this.MomentOfInertiaY = MomentOfInertiaY;\n      this.MomentOfInertiaZ = MomentOfInertiaZ;\n      this.WarpingConstant = WarpingConstant;\n      this.ShearCentreZ = ShearCentreZ;\n      this.ShearCentreY = ShearCentreY;\n      this.ShearDeformationAreaZ = ShearDeformationAreaZ;\n      this.ShearDeformationAreaY = ShearDeformationAreaY;\n      this.MaximumSectionModulusY = MaximumSectionModulusY;\n      this.MinimumSectionModulusY = MinimumSectionModulusY;\n      this.MaximumSectionModulusZ = MaximumSectionModulusZ;\n      this.MinimumSectionModulusZ = MinimumSectionModulusZ;\n      this.TorsionalSectionModulus = TorsionalSectionModulus;\n      this.CentreOfGravityInX = CentreOfGravityInX;\n      this.CentreOfGravityInY = CentreOfGravityInY;\n      this.type = 3843319758;\n    }\n  }\n  IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties;\n  class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties {\n    constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) {\n      super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY);\n      this.ProfileName = ProfileName;\n      this.ProfileDefinition = ProfileDefinition;\n      this.PhysicalWeight = PhysicalWeight;\n      this.Perimeter = Perimeter;\n      this.MinimumPlateThickness = MinimumPlateThickness;\n      this.MaximumPlateThickness = MaximumPlateThickness;\n      this.CrossSectionArea = CrossSectionArea;\n      this.TorsionalConstantX = TorsionalConstantX;\n      this.MomentOfInertiaYZ = MomentOfInertiaYZ;\n      this.MomentOfInertiaY = MomentOfInertiaY;\n      this.MomentOfInertiaZ = MomentOfInertiaZ;\n      this.WarpingConstant = WarpingConstant;\n      this.ShearCentreZ = ShearCentreZ;\n      this.ShearCentreY = ShearCentreY;\n      this.ShearDeformationAreaZ = ShearDeformationAreaZ;\n      this.ShearDeformationAreaY = ShearDeformationAreaY;\n      this.MaximumSectionModulusY = MaximumSectionModulusY;\n      this.MinimumSectionModulusY = MinimumSectionModulusY;\n      this.MaximumSectionModulusZ = MaximumSectionModulusZ;\n      this.MinimumSectionModulusZ = MinimumSectionModulusZ;\n      this.TorsionalSectionModulus = TorsionalSectionModulus;\n      this.CentreOfGravityInX = CentreOfGravityInX;\n      this.CentreOfGravityInY = CentreOfGravityInY;\n      this.ShearAreaZ = ShearAreaZ;\n      this.ShearAreaY = ShearAreaY;\n      this.PlasticShapeFactorY = PlasticShapeFactorY;\n      this.PlasticShapeFactorZ = PlasticShapeFactorZ;\n      this.type = 3653947884;\n    }\n  }\n  IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties;\n  class IfcSubedge extends IfcEdge {\n    constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) {\n      super(expressID, EdgeStart, EdgeEnd);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.ParentEdge = ParentEdge;\n      this.type = 2233826070;\n    }\n  }\n  IFC2X32.IfcSubedge = IfcSubedge;\n  class IfcSurface extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2513912981;\n    }\n  }\n  IFC2X32.IfcSurface = IfcSurface;\n  class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {\n    constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {\n      super(expressID, SurfaceColour);\n      this.SurfaceColour = SurfaceColour;\n      this.Transparency = Transparency;\n      this.DiffuseColour = DiffuseColour;\n      this.TransmissionColour = TransmissionColour;\n      this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n      this.ReflectionColour = ReflectionColour;\n      this.SpecularColour = SpecularColour;\n      this.SpecularHighlight = SpecularHighlight;\n      this.ReflectanceMethod = ReflectanceMethod;\n      this.type = 1878645084;\n    }\n  }\n  IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;\n  class IfcSweptAreaSolid extends IfcSolidModel {\n    constructor(expressID, SweptArea, Position) {\n      super(expressID);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.type = 2247615214;\n    }\n  }\n  IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid;\n  class IfcSweptDiskSolid extends IfcSolidModel {\n    constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) {\n      super(expressID);\n      this.Directrix = Directrix;\n      this.Radius = Radius;\n      this.InnerRadius = InnerRadius;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.type = 1260650574;\n    }\n  }\n  IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid;\n  class IfcSweptSurface extends IfcSurface {\n    constructor(expressID, SweptCurve, Position) {\n      super(expressID);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.type = 230924584;\n    }\n  }\n  IFC2X32.IfcSweptSurface = IfcSweptSurface;\n  class IfcTShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.FlangeEdgeRadius = FlangeEdgeRadius;\n      this.WebEdgeRadius = WebEdgeRadius;\n      this.WebSlope = WebSlope;\n      this.FlangeSlope = FlangeSlope;\n      this.CentreOfGravityInY = CentreOfGravityInY;\n      this.type = 3071757647;\n    }\n  }\n  IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef;\n  class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence {\n    constructor(expressID, Item, Styles, Name, AnnotatedCurve) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.AnnotatedCurve = AnnotatedCurve;\n      this.type = 3028897424;\n    }\n  }\n  IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol;\n  class IfcTextLiteral extends IfcGeometricRepresentationItem {\n    constructor(expressID, Literal, Placement, Path) {\n      super(expressID);\n      this.Literal = Literal;\n      this.Placement = Placement;\n      this.Path = Path;\n      this.type = 4282788508;\n    }\n  }\n  IFC2X32.IfcTextLiteral = IfcTextLiteral;\n  class IfcTextLiteralWithExtent extends IfcTextLiteral {\n    constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) {\n      super(expressID, Literal, Placement, Path);\n      this.Literal = Literal;\n      this.Placement = Placement;\n      this.Path = Path;\n      this.Extent = Extent;\n      this.BoxAlignment = BoxAlignment;\n      this.type = 3124975700;\n    }\n  }\n  IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;\n  class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.BottomXDim = BottomXDim;\n      this.TopXDim = TopXDim;\n      this.YDim = YDim;\n      this.TopXOffset = TopXOffset;\n      this.type = 2715220739;\n    }\n  }\n  IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;\n  class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor {\n    constructor(expressID, RepeatFactor, SecondRepeatFactor) {\n      super(expressID, RepeatFactor);\n      this.RepeatFactor = RepeatFactor;\n      this.SecondRepeatFactor = SecondRepeatFactor;\n      this.type = 1345879162;\n    }\n  }\n  IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor;\n  class IfcTypeObject extends IfcObjectDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.type = 1628702193;\n    }\n  }\n  IFC2X32.IfcTypeObject = IfcTypeObject;\n  class IfcTypeProduct extends IfcTypeObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.type = 2347495698;\n    }\n  }\n  IFC2X32.IfcTypeProduct = IfcTypeProduct;\n  class IfcUShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.FlangeSlope = FlangeSlope;\n      this.CentreOfGravityInX = CentreOfGravityInX;\n      this.type = 427810014;\n    }\n  }\n  IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef;\n  class IfcVector extends IfcGeometricRepresentationItem {\n    constructor(expressID, Orientation, Magnitude) {\n      super(expressID);\n      this.Orientation = Orientation;\n      this.Magnitude = Magnitude;\n      this.type = 1417489154;\n    }\n  }\n  IFC2X32.IfcVector = IfcVector;\n  class IfcVertexLoop extends IfcLoop {\n    constructor(expressID, LoopVertex) {\n      super(expressID);\n      this.LoopVertex = LoopVertex;\n      this.type = 2759199220;\n    }\n  }\n  IFC2X32.IfcVertexLoop = IfcVertexLoop;\n  class IfcWindowLiningProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.LiningDepth = LiningDepth;\n      this.LiningThickness = LiningThickness;\n      this.TransomThickness = TransomThickness;\n      this.MullionThickness = MullionThickness;\n      this.FirstTransomOffset = FirstTransomOffset;\n      this.SecondTransomOffset = SecondTransomOffset;\n      this.FirstMullionOffset = FirstMullionOffset;\n      this.SecondMullionOffset = SecondMullionOffset;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 336235671;\n    }\n  }\n  IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties;\n  class IfcWindowPanelProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.OperationType = OperationType;\n      this.PanelPosition = PanelPosition;\n      this.FrameDepth = FrameDepth;\n      this.FrameThickness = FrameThickness;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 512836454;\n    }\n  }\n  IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties;\n  class IfcWindowStyle extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ConstructionType = ConstructionType;\n      this.OperationType = OperationType;\n      this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n      this.Sizeable = Sizeable;\n      this.type = 1299126871;\n    }\n  }\n  IFC2X32.IfcWindowStyle = IfcWindowStyle;\n  class IfcZShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.type = 2543172580;\n    }\n  }\n  IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef;\n  class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 3288037868;\n    }\n  }\n  IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence;\n  class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {\n    constructor(expressID, OuterBoundary, InnerBoundaries) {\n      super(expressID);\n      this.OuterBoundary = OuterBoundary;\n      this.InnerBoundaries = InnerBoundaries;\n      this.type = 669184980;\n    }\n  }\n  IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea;\n  class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence {\n    constructor(expressID, Item, Styles, Name, FillStyleTarget, GlobalOrLocal) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.FillStyleTarget = FillStyleTarget;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 2265737646;\n    }\n  }\n  IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence;\n  class IfcAnnotationSurface extends IfcGeometricRepresentationItem {\n    constructor(expressID, Item, TextureCoordinates) {\n      super(expressID);\n      this.Item = Item;\n      this.TextureCoordinates = TextureCoordinates;\n      this.type = 1302238472;\n    }\n  }\n  IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface;\n  class IfcAxis1Placement extends IfcPlacement {\n    constructor(expressID, Location, Axis) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.Axis = Axis;\n      this.type = 4261334040;\n    }\n  }\n  IFC2X32.IfcAxis1Placement = IfcAxis1Placement;\n  class IfcAxis2Placement2D extends IfcPlacement {\n    constructor(expressID, Location, RefDirection) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.RefDirection = RefDirection;\n      this.type = 3125803723;\n    }\n  }\n  IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D;\n  class IfcAxis2Placement3D extends IfcPlacement {\n    constructor(expressID, Location, Axis, RefDirection) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.Axis = Axis;\n      this.RefDirection = RefDirection;\n      this.type = 2740243338;\n    }\n  }\n  IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D;\n  class IfcBooleanResult extends IfcGeometricRepresentationItem {\n    constructor(expressID, Operator, FirstOperand, SecondOperand) {\n      super(expressID);\n      this.Operator = Operator;\n      this.FirstOperand = FirstOperand;\n      this.SecondOperand = SecondOperand;\n      this.type = 2736907675;\n    }\n  }\n  IFC2X32.IfcBooleanResult = IfcBooleanResult;\n  class IfcBoundedSurface extends IfcSurface {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 4182860854;\n    }\n  }\n  IFC2X32.IfcBoundedSurface = IfcBoundedSurface;\n  class IfcBoundingBox extends IfcGeometricRepresentationItem {\n    constructor(expressID, Corner, XDim, YDim, ZDim) {\n      super(expressID);\n      this.Corner = Corner;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.ZDim = ZDim;\n      this.type = 2581212453;\n    }\n  }\n  IFC2X32.IfcBoundingBox = IfcBoundingBox;\n  class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {\n    constructor(expressID, BaseSurface, AgreementFlag, Enclosure) {\n      super(expressID, BaseSurface, AgreementFlag);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.Enclosure = Enclosure;\n      this.type = 2713105998;\n    }\n  }\n  IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace;\n  class IfcCShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.Width = Width;\n      this.WallThickness = WallThickness;\n      this.Girth = Girth;\n      this.InternalFilletRadius = InternalFilletRadius;\n      this.CentreOfGravityInX = CentreOfGravityInX;\n      this.type = 2898889636;\n    }\n  }\n  IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef;\n  class IfcCartesianPoint extends IfcPoint {\n    constructor(expressID, Coordinates) {\n      super(expressID);\n      this.Coordinates = Coordinates;\n      this.type = 1123145078;\n    }\n  }\n  IFC2X32.IfcCartesianPoint = IfcCartesianPoint;\n  class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) {\n      super(expressID);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.type = 59481748;\n    }\n  }\n  IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;\n  class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.type = 3749851601;\n    }\n  }\n  IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;\n  class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Scale2 = Scale2;\n      this.type = 3486308946;\n    }\n  }\n  IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;\n  class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Axis3 = Axis3;\n      this.type = 3331915920;\n    }\n  }\n  IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;\n  class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Axis3 = Axis3;\n      this.Scale2 = Scale2;\n      this.Scale3 = Scale3;\n      this.type = 1416205885;\n    }\n  }\n  IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;\n  class IfcCircleProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Radius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 1383045692;\n    }\n  }\n  IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef;\n  class IfcClosedShell extends IfcConnectedFaceSet {\n    constructor(expressID, CfsFaces) {\n      super(expressID, CfsFaces);\n      this.CfsFaces = CfsFaces;\n      this.type = 2205249479;\n    }\n  }\n  IFC2X32.IfcClosedShell = IfcClosedShell;\n  class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem {\n    constructor(expressID, Transition, SameSense, ParentCurve) {\n      super(expressID);\n      this.Transition = Transition;\n      this.SameSense = SameSense;\n      this.ParentCurve = ParentCurve;\n      this.type = 2485617015;\n    }\n  }\n  IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment;\n  class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.OverallHeight = OverallHeight;\n      this.BaseWidth2 = BaseWidth2;\n      this.Radius = Radius;\n      this.HeadWidth = HeadWidth;\n      this.HeadDepth2 = HeadDepth2;\n      this.HeadDepth3 = HeadDepth3;\n      this.WebThickness = WebThickness;\n      this.BaseWidth4 = BaseWidth4;\n      this.BaseDepth1 = BaseDepth1;\n      this.BaseDepth2 = BaseDepth2;\n      this.BaseDepth3 = BaseDepth3;\n      this.CentreOfGravityInY = CentreOfGravityInY;\n      this.type = 4133800736;\n    }\n  }\n  IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef;\n  class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.OverallHeight = OverallHeight;\n      this.HeadWidth = HeadWidth;\n      this.Radius = Radius;\n      this.HeadDepth2 = HeadDepth2;\n      this.HeadDepth3 = HeadDepth3;\n      this.WebThickness = WebThickness;\n      this.BaseDepth1 = BaseDepth1;\n      this.BaseDepth2 = BaseDepth2;\n      this.CentreOfGravityInY = CentreOfGravityInY;\n      this.type = 194851669;\n    }\n  }\n  IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef;\n  class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2506170314;\n    }\n  }\n  IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D;\n  class IfcCsgSolid extends IfcSolidModel {\n    constructor(expressID, TreeRootExpression) {\n      super(expressID);\n      this.TreeRootExpression = TreeRootExpression;\n      this.type = 2147822146;\n    }\n  }\n  IFC2X32.IfcCsgSolid = IfcCsgSolid;\n  class IfcCurve extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2601014836;\n    }\n  }\n  IFC2X32.IfcCurve = IfcCurve;\n  class IfcCurveBoundedPlane extends IfcBoundedSurface {\n    constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.OuterBoundary = OuterBoundary;\n      this.InnerBoundaries = InnerBoundaries;\n      this.type = 2827736869;\n    }\n  }\n  IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane;\n  class IfcDefinedSymbol extends IfcGeometricRepresentationItem {\n    constructor(expressID, Definition, Target) {\n      super(expressID);\n      this.Definition = Definition;\n      this.Target = Target;\n      this.type = 693772133;\n    }\n  }\n  IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol;\n  class IfcDimensionCurve extends IfcAnnotationCurveOccurrence {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 606661476;\n    }\n  }\n  IFC2X32.IfcDimensionCurve = IfcDimensionCurve;\n  class IfcDimensionCurveTerminator extends IfcTerminatorSymbol {\n    constructor(expressID, Item, Styles, Name, AnnotatedCurve, Role) {\n      super(expressID, Item, Styles, Name, AnnotatedCurve);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.AnnotatedCurve = AnnotatedCurve;\n      this.Role = Role;\n      this.type = 4054601972;\n    }\n  }\n  IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator;\n  class IfcDirection extends IfcGeometricRepresentationItem {\n    constructor(expressID, DirectionRatios) {\n      super(expressID);\n      this.DirectionRatios = DirectionRatios;\n      this.type = 32440307;\n    }\n  }\n  IFC2X32.IfcDirection = IfcDirection;\n  class IfcDoorLiningProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.LiningDepth = LiningDepth;\n      this.LiningThickness = LiningThickness;\n      this.ThresholdDepth = ThresholdDepth;\n      this.ThresholdThickness = ThresholdThickness;\n      this.TransomThickness = TransomThickness;\n      this.TransomOffset = TransomOffset;\n      this.LiningOffset = LiningOffset;\n      this.ThresholdOffset = ThresholdOffset;\n      this.CasingThickness = CasingThickness;\n      this.CasingDepth = CasingDepth;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 2963535650;\n    }\n  }\n  IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties;\n  class IfcDoorPanelProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.PanelDepth = PanelDepth;\n      this.PanelOperation = PanelOperation;\n      this.PanelWidth = PanelWidth;\n      this.PanelPosition = PanelPosition;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 1714330368;\n    }\n  }\n  IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties;\n  class IfcDoorStyle extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.OperationType = OperationType;\n      this.ConstructionType = ConstructionType;\n      this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n      this.Sizeable = Sizeable;\n      this.type = 526551008;\n    }\n  }\n  IFC2X32.IfcDoorStyle = IfcDoorStyle;\n  class IfcDraughtingCallout extends IfcGeometricRepresentationItem {\n    constructor(expressID, Contents) {\n      super(expressID);\n      this.Contents = Contents;\n      this.type = 3073041342;\n    }\n  }\n  IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout;\n  class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 445594917;\n    }\n  }\n  IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;\n  class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 4006246654;\n    }\n  }\n  IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;\n  class IfcEdgeLoop extends IfcLoop {\n    constructor(expressID, EdgeList) {\n      super(expressID);\n      this.EdgeList = EdgeList;\n      this.type = 1472233963;\n    }\n  }\n  IFC2X32.IfcEdgeLoop = IfcEdgeLoop;\n  class IfcElementQuantity extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.MethodOfMeasurement = MethodOfMeasurement;\n      this.Quantities = Quantities;\n      this.type = 1883228015;\n    }\n  }\n  IFC2X32.IfcElementQuantity = IfcElementQuantity;\n  class IfcElementType extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 339256511;\n    }\n  }\n  IFC2X32.IfcElementType = IfcElementType;\n  class IfcElementarySurface extends IfcSurface {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2777663545;\n    }\n  }\n  IFC2X32.IfcElementarySurface = IfcElementarySurface;\n  class IfcEllipseProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.SemiAxis1 = SemiAxis1;\n      this.SemiAxis2 = SemiAxis2;\n      this.type = 2835456948;\n    }\n  }\n  IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef;\n  class IfcEnergyProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.EnergySequence = EnergySequence;\n      this.UserDefinedEnergySequence = UserDefinedEnergySequence;\n      this.type = 80994333;\n    }\n  }\n  IFC2X32.IfcEnergyProperties = IfcEnergyProperties;\n  class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.ExtrudedDirection = ExtrudedDirection;\n      this.Depth = Depth;\n      this.type = 477187591;\n    }\n  }\n  IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;\n  class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {\n    constructor(expressID, FbsmFaces) {\n      super(expressID);\n      this.FbsmFaces = FbsmFaces;\n      this.type = 2047409740;\n    }\n  }\n  IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;\n  class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {\n    constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {\n      super(expressID);\n      this.HatchLineAppearance = HatchLineAppearance;\n      this.StartOfNextHatchLine = StartOfNextHatchLine;\n      this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;\n      this.PatternStart = PatternStart;\n      this.HatchLineAngle = HatchLineAngle;\n      this.type = 374418227;\n    }\n  }\n  IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;\n  class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem {\n    constructor(expressID, Symbol2) {\n      super(expressID);\n      this.Symbol = Symbol2;\n      this.type = 4203026998;\n    }\n  }\n  IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle;\n  class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {\n    constructor(expressID, TilingPattern, Tiles, TilingScale) {\n      super(expressID);\n      this.TilingPattern = TilingPattern;\n      this.Tiles = Tiles;\n      this.TilingScale = TilingScale;\n      this.type = 315944413;\n    }\n  }\n  IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;\n  class IfcFluidFlowProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.PropertySource = PropertySource;\n      this.FlowConditionTimeSeries = FlowConditionTimeSeries;\n      this.VelocityTimeSeries = VelocityTimeSeries;\n      this.FlowrateTimeSeries = FlowrateTimeSeries;\n      this.Fluid = Fluid;\n      this.PressureTimeSeries = PressureTimeSeries;\n      this.UserDefinedPropertySource = UserDefinedPropertySource;\n      this.TemperatureSingleValue = TemperatureSingleValue;\n      this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue;\n      this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries;\n      this.TemperatureTimeSeries = TemperatureTimeSeries;\n      this.FlowrateSingleValue = FlowrateSingleValue;\n      this.FlowConditionSingleValue = FlowConditionSingleValue;\n      this.VelocitySingleValue = VelocitySingleValue;\n      this.PressureSingleValue = PressureSingleValue;\n      this.type = 3455213021;\n    }\n  }\n  IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties;\n  class IfcFurnishingElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 4238390223;\n    }\n  }\n  IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType;\n  class IfcFurnitureType extends IfcFurnishingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.AssemblyPlace = AssemblyPlace;\n      this.type = 1268542332;\n    }\n  }\n  IFC2X32.IfcFurnitureType = IfcFurnitureType;\n  class IfcGeometricCurveSet extends IfcGeometricSet {\n    constructor(expressID, Elements) {\n      super(expressID, Elements);\n      this.Elements = Elements;\n      this.type = 987898635;\n    }\n  }\n  IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet;\n  class IfcIShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.OverallWidth = OverallWidth;\n      this.OverallDepth = OverallDepth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.type = 1484403080;\n    }\n  }\n  IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef;\n  class IfcLShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.Width = Width;\n      this.Thickness = Thickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.LegSlope = LegSlope;\n      this.CentreOfGravityInX = CentreOfGravityInX;\n      this.CentreOfGravityInY = CentreOfGravityInY;\n      this.type = 572779678;\n    }\n  }\n  IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef;\n  class IfcLine extends IfcCurve {\n    constructor(expressID, Pnt, Dir) {\n      super(expressID);\n      this.Pnt = Pnt;\n      this.Dir = Dir;\n      this.type = 1281925730;\n    }\n  }\n  IFC2X32.IfcLine = IfcLine;\n  class IfcManifoldSolidBrep extends IfcSolidModel {\n    constructor(expressID, Outer) {\n      super(expressID);\n      this.Outer = Outer;\n      this.type = 1425443689;\n    }\n  }\n  IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep;\n  class IfcObject extends IfcObjectDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 3888040117;\n    }\n  }\n  IFC2X32.IfcObject = IfcObject;\n  class IfcOffsetCurve2D extends IfcCurve {\n    constructor(expressID, BasisCurve, Distance, SelfIntersect) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.Distance = Distance;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 3388369263;\n    }\n  }\n  IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D;\n  class IfcOffsetCurve3D extends IfcCurve {\n    constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.Distance = Distance;\n      this.SelfIntersect = SelfIntersect;\n      this.RefDirection = RefDirection;\n      this.type = 3505215534;\n    }\n  }\n  IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D;\n  class IfcPermeableCoveringProperties extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.OperationType = OperationType;\n      this.PanelPosition = PanelPosition;\n      this.FrameDepth = FrameDepth;\n      this.FrameThickness = FrameThickness;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 3566463478;\n    }\n  }\n  IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;\n  class IfcPlanarBox extends IfcPlanarExtent {\n    constructor(expressID, SizeInX, SizeInY, Placement) {\n      super(expressID, SizeInX, SizeInY);\n      this.SizeInX = SizeInX;\n      this.SizeInY = SizeInY;\n      this.Placement = Placement;\n      this.type = 603570806;\n    }\n  }\n  IFC2X32.IfcPlanarBox = IfcPlanarBox;\n  class IfcPlane extends IfcElementarySurface {\n    constructor(expressID, Position) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.type = 220341763;\n    }\n  }\n  IFC2X32.IfcPlane = IfcPlane;\n  class IfcProcess extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2945172077;\n    }\n  }\n  IFC2X32.IfcProcess = IfcProcess;\n  class IfcProduct extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 4208778838;\n    }\n  }\n  IFC2X32.IfcProduct = IfcProduct;\n  class IfcProject extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.Phase = Phase;\n      this.RepresentationContexts = RepresentationContexts;\n      this.UnitsInContext = UnitsInContext;\n      this.type = 103090709;\n    }\n  }\n  IFC2X32.IfcProject = IfcProject;\n  class IfcProjectionCurve extends IfcAnnotationCurveOccurrence {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID, Item, Styles, Name);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 4194566429;\n    }\n  }\n  IFC2X32.IfcProjectionCurve = IfcProjectionCurve;\n  class IfcPropertySet extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.HasProperties = HasProperties;\n      this.type = 1451395588;\n    }\n  }\n  IFC2X32.IfcPropertySet = IfcPropertySet;\n  class IfcProxy extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.ProxyType = ProxyType;\n      this.Tag = Tag;\n      this.type = 3219374653;\n    }\n  }\n  IFC2X32.IfcProxy = IfcProxy;\n  class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {\n      super(expressID, ProfileType, ProfileName, Position, XDim, YDim);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.WallThickness = WallThickness;\n      this.InnerFilletRadius = InnerFilletRadius;\n      this.OuterFilletRadius = OuterFilletRadius;\n      this.type = 2770003689;\n    }\n  }\n  IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;\n  class IfcRectangularPyramid extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, XLength, YLength, Height) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.XLength = XLength;\n      this.YLength = YLength;\n      this.Height = Height;\n      this.type = 2798486643;\n    }\n  }\n  IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid;\n  class IfcRectangularTrimmedSurface extends IfcBoundedSurface {\n    constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.U1 = U1;\n      this.V1 = V1;\n      this.U2 = U2;\n      this.V2 = V2;\n      this.Usense = Usense;\n      this.Vsense = Vsense;\n      this.type = 3454111270;\n    }\n  }\n  IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;\n  class IfcRelAssigns extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.type = 3939117080;\n    }\n  }\n  IFC2X32.IfcRelAssigns = IfcRelAssigns;\n  class IfcRelAssignsToActor extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingActor = RelatingActor;\n      this.ActingRole = ActingRole;\n      this.type = 1683148259;\n    }\n  }\n  IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor;\n  class IfcRelAssignsToControl extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingControl = RelatingControl;\n      this.type = 2495723537;\n    }\n  }\n  IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl;\n  class IfcRelAssignsToGroup extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingGroup = RelatingGroup;\n      this.type = 1307041759;\n    }\n  }\n  IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup;\n  class IfcRelAssignsToProcess extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingProcess = RelatingProcess;\n      this.QuantityInProcess = QuantityInProcess;\n      this.type = 4278684876;\n    }\n  }\n  IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess;\n  class IfcRelAssignsToProduct extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingProduct = RelatingProduct;\n      this.type = 2857406711;\n    }\n  }\n  IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct;\n  class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingControl = RelatingControl;\n      this.type = 3372526763;\n    }\n  }\n  IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder;\n  class IfcRelAssignsToResource extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingResource = RelatingResource;\n      this.type = 205026976;\n    }\n  }\n  IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource;\n  class IfcRelAssociates extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 1865459582;\n    }\n  }\n  IFC2X32.IfcRelAssociates = IfcRelAssociates;\n  class IfcRelAssociatesAppliedValue extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingAppliedValue = RelatingAppliedValue;\n      this.type = 1327628568;\n    }\n  }\n  IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue;\n  class IfcRelAssociatesApproval extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingApproval = RelatingApproval;\n      this.type = 4095574036;\n    }\n  }\n  IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval;\n  class IfcRelAssociatesClassification extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingClassification = RelatingClassification;\n      this.type = 919958153;\n    }\n  }\n  IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification;\n  class IfcRelAssociatesConstraint extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.Intent = Intent;\n      this.RelatingConstraint = RelatingConstraint;\n      this.type = 2728634034;\n    }\n  }\n  IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;\n  class IfcRelAssociatesDocument extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingDocument = RelatingDocument;\n      this.type = 982818633;\n    }\n  }\n  IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument;\n  class IfcRelAssociatesLibrary extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingLibrary = RelatingLibrary;\n      this.type = 3840914261;\n    }\n  }\n  IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;\n  class IfcRelAssociatesMaterial extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingMaterial = RelatingMaterial;\n      this.type = 2655215786;\n    }\n  }\n  IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;\n  class IfcRelAssociatesProfileProperties extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingProfileProperties = RelatingProfileProperties;\n      this.ProfileSectionLocation = ProfileSectionLocation;\n      this.ProfileOrientation = ProfileOrientation;\n      this.type = 2851387026;\n    }\n  }\n  IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties;\n  class IfcRelConnects extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 826625072;\n    }\n  }\n  IFC2X32.IfcRelConnects = IfcRelConnects;\n  class IfcRelConnectsElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.type = 1204542856;\n    }\n  }\n  IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements;\n  class IfcRelConnectsPathElements extends IfcRelConnectsElements {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.RelatingPriorities = RelatingPriorities;\n      this.RelatedPriorities = RelatedPriorities;\n      this.RelatedConnectionType = RelatedConnectionType;\n      this.RelatingConnectionType = RelatingConnectionType;\n      this.type = 3945020480;\n    }\n  }\n  IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements;\n  class IfcRelConnectsPortToElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingPort = RelatingPort;\n      this.RelatedElement = RelatedElement;\n      this.type = 4201705270;\n    }\n  }\n  IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;\n  class IfcRelConnectsPorts extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingPort = RelatingPort;\n      this.RelatedPort = RelatedPort;\n      this.RealizingElement = RealizingElement;\n      this.type = 3190031847;\n    }\n  }\n  IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts;\n  class IfcRelConnectsStructuralActivity extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedStructuralActivity = RelatedStructuralActivity;\n      this.type = 2127690289;\n    }\n  }\n  IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;\n  class IfcRelConnectsStructuralElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedStructuralMember = RelatedStructuralMember;\n      this.type = 3912681535;\n    }\n  }\n  IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement;\n  class IfcRelConnectsStructuralMember extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingStructuralMember = RelatingStructuralMember;\n      this.RelatedStructuralConnection = RelatedStructuralConnection;\n      this.AppliedCondition = AppliedCondition;\n      this.AdditionalConditions = AdditionalConditions;\n      this.SupportedLength = SupportedLength;\n      this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n      this.type = 1638771189;\n    }\n  }\n  IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;\n  class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingStructuralMember = RelatingStructuralMember;\n      this.RelatedStructuralConnection = RelatedStructuralConnection;\n      this.AppliedCondition = AppliedCondition;\n      this.AdditionalConditions = AdditionalConditions;\n      this.SupportedLength = SupportedLength;\n      this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n      this.ConnectionConstraint = ConnectionConstraint;\n      this.type = 504942748;\n    }\n  }\n  IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;\n  class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.RealizingElements = RealizingElements;\n      this.ConnectionType = ConnectionType;\n      this.type = 3678494232;\n    }\n  }\n  IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;\n  class IfcRelContainedInSpatialStructure extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedElements = RelatedElements;\n      this.RelatingStructure = RelatingStructure;\n      this.type = 3242617779;\n    }\n  }\n  IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;\n  class IfcRelCoversBldgElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingBuildingElement = RelatingBuildingElement;\n      this.RelatedCoverings = RelatedCoverings;\n      this.type = 886880790;\n    }\n  }\n  IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements;\n  class IfcRelCoversSpaces extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedSpace = RelatedSpace;\n      this.RelatedCoverings = RelatedCoverings;\n      this.type = 2802773753;\n    }\n  }\n  IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces;\n  class IfcRelDecomposes extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingObject = RelatingObject;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 2551354335;\n    }\n  }\n  IFC2X32.IfcRelDecomposes = IfcRelDecomposes;\n  class IfcRelDefines extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 693640335;\n    }\n  }\n  IFC2X32.IfcRelDefines = IfcRelDefines;\n  class IfcRelDefinesByProperties extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingPropertyDefinition = RelatingPropertyDefinition;\n      this.type = 4186316022;\n    }\n  }\n  IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties;\n  class IfcRelDefinesByType extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingType = RelatingType;\n      this.type = 781010003;\n    }\n  }\n  IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType;\n  class IfcRelFillsElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingOpeningElement = RelatingOpeningElement;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.type = 3940055652;\n    }\n  }\n  IFC2X32.IfcRelFillsElement = IfcRelFillsElement;\n  class IfcRelFlowControlElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedControlElements = RelatedControlElements;\n      this.RelatingFlowElement = RelatingFlowElement;\n      this.type = 279856033;\n    }\n  }\n  IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements;\n  class IfcRelInteractionRequirements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.DailyInteraction = DailyInteraction;\n      this.ImportanceRating = ImportanceRating;\n      this.LocationOfInteraction = LocationOfInteraction;\n      this.RelatedSpaceProgram = RelatedSpaceProgram;\n      this.RelatingSpaceProgram = RelatingSpaceProgram;\n      this.type = 4189434867;\n    }\n  }\n  IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements;\n  class IfcRelNests extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingObject = RelatingObject;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 3268803585;\n    }\n  }\n  IFC2X32.IfcRelNests = IfcRelNests;\n  class IfcRelOccupiesSpaces extends IfcRelAssignsToActor {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingActor = RelatingActor;\n      this.ActingRole = ActingRole;\n      this.type = 2051452291;\n    }\n  }\n  IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces;\n  class IfcRelOverridesProperties extends IfcRelDefinesByProperties {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingPropertyDefinition = RelatingPropertyDefinition;\n      this.OverridingProperties = OverridingProperties;\n      this.type = 202636808;\n    }\n  }\n  IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties;\n  class IfcRelProjectsElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedFeatureElement = RelatedFeatureElement;\n      this.type = 750771296;\n    }\n  }\n  IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement;\n  class IfcRelReferencedInSpatialStructure extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedElements = RelatedElements;\n      this.RelatingStructure = RelatingStructure;\n      this.type = 1245217292;\n    }\n  }\n  IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;\n  class IfcRelSchedulesCostItems extends IfcRelAssignsToControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingControl = RelatingControl;\n      this.type = 1058617721;\n    }\n  }\n  IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems;\n  class IfcRelSequence extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingProcess = RelatingProcess;\n      this.RelatedProcess = RelatedProcess;\n      this.TimeLag = TimeLag;\n      this.SequenceType = SequenceType;\n      this.type = 4122056220;\n    }\n  }\n  IFC2X32.IfcRelSequence = IfcRelSequence;\n  class IfcRelServicesBuildings extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSystem = RelatingSystem;\n      this.RelatedBuildings = RelatedBuildings;\n      this.type = 366585022;\n    }\n  }\n  IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings;\n  class IfcRelSpaceBoundary extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n      this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n      this.type = 3451746338;\n    }\n  }\n  IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary;\n  class IfcRelVoidsElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingBuildingElement = RelatingBuildingElement;\n      this.RelatedOpeningElement = RelatedOpeningElement;\n      this.type = 1401173127;\n    }\n  }\n  IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement;\n  class IfcResource extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2914609552;\n    }\n  }\n  IFC2X32.IfcResource = IfcResource;\n  class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Axis, Angle) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Axis = Axis;\n      this.Angle = Angle;\n      this.type = 1856042241;\n    }\n  }\n  IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;\n  class IfcRightCircularCone extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Height, BottomRadius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Height = Height;\n      this.BottomRadius = BottomRadius;\n      this.type = 4158566097;\n    }\n  }\n  IFC2X32.IfcRightCircularCone = IfcRightCircularCone;\n  class IfcRightCircularCylinder extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Height, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Height = Height;\n      this.Radius = Radius;\n      this.type = 3626867408;\n    }\n  }\n  IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder;\n  class IfcSpatialStructureElement extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.type = 2706606064;\n    }\n  }\n  IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement;\n  class IfcSpatialStructureElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3893378262;\n    }\n  }\n  IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType;\n  class IfcSphere extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 451544542;\n    }\n  }\n  IFC2X32.IfcSphere = IfcSphere;\n  class IfcStructuralActivity extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 3544373492;\n    }\n  }\n  IFC2X32.IfcStructuralActivity = IfcStructuralActivity;\n  class IfcStructuralItem extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 3136571912;\n    }\n  }\n  IFC2X32.IfcStructuralItem = IfcStructuralItem;\n  class IfcStructuralMember extends IfcStructuralItem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 530289379;\n    }\n  }\n  IFC2X32.IfcStructuralMember = IfcStructuralMember;\n  class IfcStructuralReaction extends IfcStructuralActivity {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 3689010777;\n    }\n  }\n  IFC2X32.IfcStructuralReaction = IfcStructuralReaction;\n  class IfcStructuralSurfaceMember extends IfcStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Thickness = Thickness;\n      this.type = 3979015343;\n    }\n  }\n  IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;\n  class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Thickness = Thickness;\n      this.SubsequentThickness = SubsequentThickness;\n      this.VaryingThicknessLocation = VaryingThicknessLocation;\n      this.type = 2218152070;\n    }\n  }\n  IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;\n  class IfcStructuredDimensionCallout extends IfcDraughtingCallout {\n    constructor(expressID, Contents) {\n      super(expressID, Contents);\n      this.Contents = Contents;\n      this.type = 4070609034;\n    }\n  }\n  IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout;\n  class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Directrix = Directrix;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.ReferenceSurface = ReferenceSurface;\n      this.type = 2028607225;\n    }\n  }\n  IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;\n  class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {\n    constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) {\n      super(expressID, SweptCurve, Position);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.ExtrudedDirection = ExtrudedDirection;\n      this.Depth = Depth;\n      this.type = 2809605785;\n    }\n  }\n  IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;\n  class IfcSurfaceOfRevolution extends IfcSweptSurface {\n    constructor(expressID, SweptCurve, Position, AxisPosition) {\n      super(expressID, SweptCurve, Position);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.AxisPosition = AxisPosition;\n      this.type = 4124788165;\n    }\n  }\n  IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;\n  class IfcSystemFurnitureElementType extends IfcFurnishingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1580310250;\n    }\n  }\n  IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;\n  class IfcTask extends IfcProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TaskId = TaskId;\n      this.Status = Status;\n      this.WorkMethod = WorkMethod;\n      this.IsMilestone = IsMilestone;\n      this.Priority = Priority;\n      this.type = 3473067441;\n    }\n  }\n  IFC2X32.IfcTask = IfcTask;\n  class IfcTransportElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2097647324;\n    }\n  }\n  IFC2X32.IfcTransportElementType = IfcTransportElementType;\n  class IfcActor extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheActor = TheActor;\n      this.type = 2296667514;\n    }\n  }\n  IFC2X32.IfcActor = IfcActor;\n  class IfcAnnotation extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 1674181508;\n    }\n  }\n  IFC2X32.IfcAnnotation = IfcAnnotation;\n  class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) {\n      super(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.OverallWidth = OverallWidth;\n      this.OverallDepth = OverallDepth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.TopFlangeWidth = TopFlangeWidth;\n      this.TopFlangeThickness = TopFlangeThickness;\n      this.TopFlangeFilletRadius = TopFlangeFilletRadius;\n      this.CentreOfGravityInY = CentreOfGravityInY;\n      this.type = 3207858831;\n    }\n  }\n  IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;\n  class IfcBlock extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, XLength, YLength, ZLength) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.XLength = XLength;\n      this.YLength = YLength;\n      this.ZLength = ZLength;\n      this.type = 1334484129;\n    }\n  }\n  IFC2X32.IfcBlock = IfcBlock;\n  class IfcBooleanClippingResult extends IfcBooleanResult {\n    constructor(expressID, Operator, FirstOperand, SecondOperand) {\n      super(expressID, Operator, FirstOperand, SecondOperand);\n      this.Operator = Operator;\n      this.FirstOperand = FirstOperand;\n      this.SecondOperand = SecondOperand;\n      this.type = 3649129432;\n    }\n  }\n  IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult;\n  class IfcBoundedCurve extends IfcCurve {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1260505505;\n    }\n  }\n  IFC2X32.IfcBoundedCurve = IfcBoundedCurve;\n  class IfcBuilding extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.ElevationOfRefHeight = ElevationOfRefHeight;\n      this.ElevationOfTerrain = ElevationOfTerrain;\n      this.BuildingAddress = BuildingAddress;\n      this.type = 4031249490;\n    }\n  }\n  IFC2X32.IfcBuilding = IfcBuilding;\n  class IfcBuildingElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1950629157;\n    }\n  }\n  IFC2X32.IfcBuildingElementType = IfcBuildingElementType;\n  class IfcBuildingStorey extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.Elevation = Elevation;\n      this.type = 3124254112;\n    }\n  }\n  IFC2X32.IfcBuildingStorey = IfcBuildingStorey;\n  class IfcCircleHollowProfileDef extends IfcCircleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) {\n      super(expressID, ProfileType, ProfileName, Position, Radius);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.WallThickness = WallThickness;\n      this.type = 2937912522;\n    }\n  }\n  IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;\n  class IfcColumnType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 300633059;\n    }\n  }\n  IFC2X32.IfcColumnType = IfcColumnType;\n  class IfcCompositeCurve extends IfcBoundedCurve {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 3732776249;\n    }\n  }\n  IFC2X32.IfcCompositeCurve = IfcCompositeCurve;\n  class IfcConic extends IfcCurve {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2510884976;\n    }\n  }\n  IFC2X32.IfcConic = IfcConic;\n  class IfcConstructionResource extends IfcResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ResourceIdentifier = ResourceIdentifier;\n      this.ResourceGroup = ResourceGroup;\n      this.ResourceConsumption = ResourceConsumption;\n      this.BaseQuantity = BaseQuantity;\n      this.type = 2559216714;\n    }\n  }\n  IFC2X32.IfcConstructionResource = IfcConstructionResource;\n  class IfcControl extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 3293443760;\n    }\n  }\n  IFC2X32.IfcControl = IfcControl;\n  class IfcCostItem extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 3895139033;\n    }\n  }\n  IFC2X32.IfcCostItem = IfcCostItem;\n  class IfcCostSchedule extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.SubmittedBy = SubmittedBy;\n      this.PreparedBy = PreparedBy;\n      this.SubmittedOn = SubmittedOn;\n      this.Status = Status;\n      this.TargetUsers = TargetUsers;\n      this.UpdateDate = UpdateDate;\n      this.ID = ID;\n      this.PredefinedType = PredefinedType;\n      this.type = 1419761937;\n    }\n  }\n  IFC2X32.IfcCostSchedule = IfcCostSchedule;\n  class IfcCoveringType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1916426348;\n    }\n  }\n  IFC2X32.IfcCoveringType = IfcCoveringType;\n  class IfcCrewResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ResourceIdentifier = ResourceIdentifier;\n      this.ResourceGroup = ResourceGroup;\n      this.ResourceConsumption = ResourceConsumption;\n      this.BaseQuantity = BaseQuantity;\n      this.type = 3295246426;\n    }\n  }\n  IFC2X32.IfcCrewResource = IfcCrewResource;\n  class IfcCurtainWallType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1457835157;\n    }\n  }\n  IFC2X32.IfcCurtainWallType = IfcCurtainWallType;\n  class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout {\n    constructor(expressID, Contents) {\n      super(expressID, Contents);\n      this.Contents = Contents;\n      this.type = 681481545;\n    }\n  }\n  IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout;\n  class IfcDistributionElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3256556792;\n    }\n  }\n  IFC2X32.IfcDistributionElementType = IfcDistributionElementType;\n  class IfcDistributionFlowElementType extends IfcDistributionElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3849074793;\n    }\n  }\n  IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType;\n  class IfcElectricalBaseProperties extends IfcEnergyProperties {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.EnergySequence = EnergySequence;\n      this.UserDefinedEnergySequence = UserDefinedEnergySequence;\n      this.ElectricCurrentType = ElectricCurrentType;\n      this.InputVoltage = InputVoltage;\n      this.InputFrequency = InputFrequency;\n      this.FullLoadCurrent = FullLoadCurrent;\n      this.MinimumCircuitCurrent = MinimumCircuitCurrent;\n      this.MaximumPowerInput = MaximumPowerInput;\n      this.RatedPowerInput = RatedPowerInput;\n      this.InputPhase = InputPhase;\n      this.type = 360485395;\n    }\n  }\n  IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties;\n  class IfcElement extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1758889154;\n    }\n  }\n  IFC2X32.IfcElement = IfcElement;\n  class IfcElementAssembly extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.AssemblyPlace = AssemblyPlace;\n      this.PredefinedType = PredefinedType;\n      this.type = 4123344466;\n    }\n  }\n  IFC2X32.IfcElementAssembly = IfcElementAssembly;\n  class IfcElementComponent extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1623761950;\n    }\n  }\n  IFC2X32.IfcElementComponent = IfcElementComponent;\n  class IfcElementComponentType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2590856083;\n    }\n  }\n  IFC2X32.IfcElementComponentType = IfcElementComponentType;\n  class IfcEllipse extends IfcConic {\n    constructor(expressID, Position, SemiAxis1, SemiAxis2) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.SemiAxis1 = SemiAxis1;\n      this.SemiAxis2 = SemiAxis2;\n      this.type = 1704287377;\n    }\n  }\n  IFC2X32.IfcEllipse = IfcEllipse;\n  class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2107101300;\n    }\n  }\n  IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;\n  class IfcEquipmentElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1962604670;\n    }\n  }\n  IFC2X32.IfcEquipmentElement = IfcEquipmentElement;\n  class IfcEquipmentStandard extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 3272907226;\n    }\n  }\n  IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard;\n  class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3174744832;\n    }\n  }\n  IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;\n  class IfcEvaporatorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3390157468;\n    }\n  }\n  IFC2X32.IfcEvaporatorType = IfcEvaporatorType;\n  class IfcFacetedBrep extends IfcManifoldSolidBrep {\n    constructor(expressID, Outer) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.type = 807026263;\n    }\n  }\n  IFC2X32.IfcFacetedBrep = IfcFacetedBrep;\n  class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep {\n    constructor(expressID, Outer, Voids) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.Voids = Voids;\n      this.type = 3737207727;\n    }\n  }\n  IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;\n  class IfcFastener extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 647756555;\n    }\n  }\n  IFC2X32.IfcFastener = IfcFastener;\n  class IfcFastenerType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2489546625;\n    }\n  }\n  IFC2X32.IfcFastenerType = IfcFastenerType;\n  class IfcFeatureElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2827207264;\n    }\n  }\n  IFC2X32.IfcFeatureElement = IfcFeatureElement;\n  class IfcFeatureElementAddition extends IfcFeatureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2143335405;\n    }\n  }\n  IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition;\n  class IfcFeatureElementSubtraction extends IfcFeatureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1287392070;\n    }\n  }\n  IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;\n  class IfcFlowControllerType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3907093117;\n    }\n  }\n  IFC2X32.IfcFlowControllerType = IfcFlowControllerType;\n  class IfcFlowFittingType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3198132628;\n    }\n  }\n  IFC2X32.IfcFlowFittingType = IfcFlowFittingType;\n  class IfcFlowMeterType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3815607619;\n    }\n  }\n  IFC2X32.IfcFlowMeterType = IfcFlowMeterType;\n  class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1482959167;\n    }\n  }\n  IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;\n  class IfcFlowSegmentType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1834744321;\n    }\n  }\n  IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType;\n  class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1339347760;\n    }\n  }\n  IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;\n  class IfcFlowTerminalType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2297155007;\n    }\n  }\n  IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType;\n  class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3009222698;\n    }\n  }\n  IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;\n  class IfcFurnishingElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 263784265;\n    }\n  }\n  IFC2X32.IfcFurnishingElement = IfcFurnishingElement;\n  class IfcFurnitureStandard extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 814719939;\n    }\n  }\n  IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard;\n  class IfcGasTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 200128114;\n    }\n  }\n  IFC2X32.IfcGasTerminalType = IfcGasTerminalType;\n  class IfcGrid extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.UAxes = UAxes;\n      this.VAxes = VAxes;\n      this.WAxes = WAxes;\n      this.type = 3009204131;\n    }\n  }\n  IFC2X32.IfcGrid = IfcGrid;\n  class IfcGroup extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2706460486;\n    }\n  }\n  IFC2X32.IfcGroup = IfcGroup;\n  class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1251058090;\n    }\n  }\n  IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType;\n  class IfcHumidifierType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1806887404;\n    }\n  }\n  IFC2X32.IfcHumidifierType = IfcHumidifierType;\n  class IfcInventory extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.InventoryType = InventoryType;\n      this.Jurisdiction = Jurisdiction;\n      this.ResponsiblePersons = ResponsiblePersons;\n      this.LastUpdateDate = LastUpdateDate;\n      this.CurrentValue = CurrentValue;\n      this.OriginalValue = OriginalValue;\n      this.type = 2391368822;\n    }\n  }\n  IFC2X32.IfcInventory = IfcInventory;\n  class IfcJunctionBoxType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4288270099;\n    }\n  }\n  IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType;\n  class IfcLaborResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ResourceIdentifier = ResourceIdentifier;\n      this.ResourceGroup = ResourceGroup;\n      this.ResourceConsumption = ResourceConsumption;\n      this.BaseQuantity = BaseQuantity;\n      this.SkillSet = SkillSet;\n      this.type = 3827777499;\n    }\n  }\n  IFC2X32.IfcLaborResource = IfcLaborResource;\n  class IfcLampType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1051575348;\n    }\n  }\n  IFC2X32.IfcLampType = IfcLampType;\n  class IfcLightFixtureType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1161773419;\n    }\n  }\n  IFC2X32.IfcLightFixtureType = IfcLightFixtureType;\n  class IfcLinearDimension extends IfcDimensionCurveDirectedCallout {\n    constructor(expressID, Contents) {\n      super(expressID, Contents);\n      this.Contents = Contents;\n      this.type = 2506943328;\n    }\n  }\n  IFC2X32.IfcLinearDimension = IfcLinearDimension;\n  class IfcMechanicalFastener extends IfcFastener {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.NominalDiameter = NominalDiameter;\n      this.NominalLength = NominalLength;\n      this.type = 377706215;\n    }\n  }\n  IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener;\n  class IfcMechanicalFastenerType extends IfcFastenerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2108223431;\n    }\n  }\n  IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType;\n  class IfcMemberType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3181161470;\n    }\n  }\n  IFC2X32.IfcMemberType = IfcMemberType;\n  class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 977012517;\n    }\n  }\n  IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType;\n  class IfcMove extends IfcTask {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TaskId = TaskId;\n      this.Status = Status;\n      this.WorkMethod = WorkMethod;\n      this.IsMilestone = IsMilestone;\n      this.Priority = Priority;\n      this.MoveFrom = MoveFrom;\n      this.MoveTo = MoveTo;\n      this.PunchList = PunchList;\n      this.type = 1916936684;\n    }\n  }\n  IFC2X32.IfcMove = IfcMove;\n  class IfcOccupant extends IfcActor {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheActor = TheActor;\n      this.PredefinedType = PredefinedType;\n      this.type = 4143007308;\n    }\n  }\n  IFC2X32.IfcOccupant = IfcOccupant;\n  class IfcOpeningElement extends IfcFeatureElementSubtraction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3588315303;\n    }\n  }\n  IFC2X32.IfcOpeningElement = IfcOpeningElement;\n  class IfcOrderAction extends IfcTask {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TaskId = TaskId;\n      this.Status = Status;\n      this.WorkMethod = WorkMethod;\n      this.IsMilestone = IsMilestone;\n      this.Priority = Priority;\n      this.ActionID = ActionID;\n      this.type = 3425660407;\n    }\n  }\n  IFC2X32.IfcOrderAction = IfcOrderAction;\n  class IfcOutletType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2837617999;\n    }\n  }\n  IFC2X32.IfcOutletType = IfcOutletType;\n  class IfcPerformanceHistory extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LifeCyclePhase = LifeCyclePhase;\n      this.type = 2382730787;\n    }\n  }\n  IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory;\n  class IfcPermit extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PermitID = PermitID;\n      this.type = 3327091369;\n    }\n  }\n  IFC2X32.IfcPermit = IfcPermit;\n  class IfcPipeFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 804291784;\n    }\n  }\n  IFC2X32.IfcPipeFittingType = IfcPipeFittingType;\n  class IfcPipeSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4231323485;\n    }\n  }\n  IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType;\n  class IfcPlateType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4017108033;\n    }\n  }\n  IFC2X32.IfcPlateType = IfcPlateType;\n  class IfcPolyline extends IfcBoundedCurve {\n    constructor(expressID, Points) {\n      super(expressID);\n      this.Points = Points;\n      this.type = 3724593414;\n    }\n  }\n  IFC2X32.IfcPolyline = IfcPolyline;\n  class IfcPort extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 3740093272;\n    }\n  }\n  IFC2X32.IfcPort = IfcPort;\n  class IfcProcedure extends IfcProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ProcedureID = ProcedureID;\n      this.ProcedureType = ProcedureType;\n      this.UserDefinedProcedureType = UserDefinedProcedureType;\n      this.type = 2744685151;\n    }\n  }\n  IFC2X32.IfcProcedure = IfcProcedure;\n  class IfcProjectOrder extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ID = ID;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.type = 2904328755;\n    }\n  }\n  IFC2X32.IfcProjectOrder = IfcProjectOrder;\n  class IfcProjectOrderRecord extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Records = Records;\n      this.PredefinedType = PredefinedType;\n      this.type = 3642467123;\n    }\n  }\n  IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord;\n  class IfcProjectionElement extends IfcFeatureElementAddition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3651124850;\n    }\n  }\n  IFC2X32.IfcProjectionElement = IfcProjectionElement;\n  class IfcProtectiveDeviceType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1842657554;\n    }\n  }\n  IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType;\n  class IfcPumpType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2250791053;\n    }\n  }\n  IFC2X32.IfcPumpType = IfcPumpType;\n  class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout {\n    constructor(expressID, Contents) {\n      super(expressID, Contents);\n      this.Contents = Contents;\n      this.type = 3248260540;\n    }\n  }\n  IFC2X32.IfcRadiusDimension = IfcRadiusDimension;\n  class IfcRailingType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2893384427;\n    }\n  }\n  IFC2X32.IfcRailingType = IfcRailingType;\n  class IfcRampFlightType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2324767716;\n    }\n  }\n  IFC2X32.IfcRampFlightType = IfcRampFlightType;\n  class IfcRelAggregates extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingObject = RelatingObject;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 160246688;\n    }\n  }\n  IFC2X32.IfcRelAggregates = IfcRelAggregates;\n  class IfcRelAssignsTasks extends IfcRelAssignsToControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingControl = RelatingControl;\n      this.TimeForTask = TimeForTask;\n      this.type = 2863920197;\n    }\n  }\n  IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks;\n  class IfcSanitaryTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1768891740;\n    }\n  }\n  IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType;\n  class IfcScheduleTimeControl extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ActualStart = ActualStart;\n      this.EarlyStart = EarlyStart;\n      this.LateStart = LateStart;\n      this.ScheduleStart = ScheduleStart;\n      this.ActualFinish = ActualFinish;\n      this.EarlyFinish = EarlyFinish;\n      this.LateFinish = LateFinish;\n      this.ScheduleFinish = ScheduleFinish;\n      this.ScheduleDuration = ScheduleDuration;\n      this.ActualDuration = ActualDuration;\n      this.RemainingTime = RemainingTime;\n      this.FreeFloat = FreeFloat;\n      this.TotalFloat = TotalFloat;\n      this.IsCritical = IsCritical;\n      this.StatusTime = StatusTime;\n      this.StartFloat = StartFloat;\n      this.FinishFloat = FinishFloat;\n      this.Completion = Completion;\n      this.type = 3517283431;\n    }\n  }\n  IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl;\n  class IfcServiceLife extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ServiceLifeType = ServiceLifeType;\n      this.ServiceLifeDuration = ServiceLifeDuration;\n      this.type = 4105383287;\n    }\n  }\n  IFC2X32.IfcServiceLife = IfcServiceLife;\n  class IfcSite extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.RefLatitude = RefLatitude;\n      this.RefLongitude = RefLongitude;\n      this.RefElevation = RefElevation;\n      this.LandTitleNumber = LandTitleNumber;\n      this.SiteAddress = SiteAddress;\n      this.type = 4097777520;\n    }\n  }\n  IFC2X32.IfcSite = IfcSite;\n  class IfcSlabType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2533589738;\n    }\n  }\n  IFC2X32.IfcSlabType = IfcSlabType;\n  class IfcSpace extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.InteriorOrExteriorSpace = InteriorOrExteriorSpace;\n      this.ElevationWithFlooring = ElevationWithFlooring;\n      this.type = 3856911033;\n    }\n  }\n  IFC2X32.IfcSpace = IfcSpace;\n  class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1305183839;\n    }\n  }\n  IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType;\n  class IfcSpaceProgram extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.SpaceProgramIdentifier = SpaceProgramIdentifier;\n      this.MaxRequiredArea = MaxRequiredArea;\n      this.MinRequiredArea = MinRequiredArea;\n      this.RequestedLocation = RequestedLocation;\n      this.StandardRequiredArea = StandardRequiredArea;\n      this.type = 652456506;\n    }\n  }\n  IFC2X32.IfcSpaceProgram = IfcSpaceProgram;\n  class IfcSpaceType extends IfcSpatialStructureElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3812236995;\n    }\n  }\n  IFC2X32.IfcSpaceType = IfcSpaceType;\n  class IfcStackTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3112655638;\n    }\n  }\n  IFC2X32.IfcStackTerminalType = IfcStackTerminalType;\n  class IfcStairFlightType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1039846685;\n    }\n  }\n  IFC2X32.IfcStairFlightType = IfcStairFlightType;\n  class IfcStructuralAction extends IfcStructuralActivity {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.CausedBy = CausedBy;\n      this.type = 682877961;\n    }\n  }\n  IFC2X32.IfcStructuralAction = IfcStructuralAction;\n  class IfcStructuralConnection extends IfcStructuralItem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.type = 1179482911;\n    }\n  }\n  IFC2X32.IfcStructuralConnection = IfcStructuralConnection;\n  class IfcStructuralCurveConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.type = 4243806635;\n    }\n  }\n  IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection;\n  class IfcStructuralCurveMember extends IfcStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.type = 214636428;\n    }\n  }\n  IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember;\n  class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.type = 2445595289;\n    }\n  }\n  IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;\n  class IfcStructuralLinearAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.CausedBy = CausedBy;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.type = 1807405624;\n    }\n  }\n  IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction;\n  class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.CausedBy = CausedBy;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation;\n      this.SubsequentAppliedLoads = SubsequentAppliedLoads;\n      this.type = 1721250024;\n    }\n  }\n  IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying;\n  class IfcStructuralLoadGroup extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.ActionType = ActionType;\n      this.ActionSource = ActionSource;\n      this.Coefficient = Coefficient;\n      this.Purpose = Purpose;\n      this.type = 1252848954;\n    }\n  }\n  IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup;\n  class IfcStructuralPlanarAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.CausedBy = CausedBy;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.type = 1621171031;\n    }\n  }\n  IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction;\n  class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.CausedBy = CausedBy;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation;\n      this.SubsequentAppliedLoads = SubsequentAppliedLoads;\n      this.type = 3987759626;\n    }\n  }\n  IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying;\n  class IfcStructuralPointAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.CausedBy = CausedBy;\n      this.type = 2082059205;\n    }\n  }\n  IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction;\n  class IfcStructuralPointConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.type = 734778138;\n    }\n  }\n  IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection;\n  class IfcStructuralPointReaction extends IfcStructuralReaction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 1235345126;\n    }\n  }\n  IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction;\n  class IfcStructuralResultGroup extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheoryType = TheoryType;\n      this.ResultForLoadGroup = ResultForLoadGroup;\n      this.IsLinear = IsLinear;\n      this.type = 2986769608;\n    }\n  }\n  IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup;\n  class IfcStructuralSurfaceConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.type = 1975003073;\n    }\n  }\n  IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;\n  class IfcSubContractResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ResourceIdentifier = ResourceIdentifier;\n      this.ResourceGroup = ResourceGroup;\n      this.ResourceConsumption = ResourceConsumption;\n      this.BaseQuantity = BaseQuantity;\n      this.SubContractor = SubContractor;\n      this.JobDescription = JobDescription;\n      this.type = 148013059;\n    }\n  }\n  IFC2X32.IfcSubContractResource = IfcSubContractResource;\n  class IfcSwitchingDeviceType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2315554128;\n    }\n  }\n  IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType;\n  class IfcSystem extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2254336722;\n    }\n  }\n  IFC2X32.IfcSystem = IfcSystem;\n  class IfcTankType extends IfcFlowStorageDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 5716631;\n    }\n  }\n  IFC2X32.IfcTankType = IfcTankType;\n  class IfcTimeSeriesSchedule extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ApplicableDates = ApplicableDates;\n      this.TimeSeriesScheduleType = TimeSeriesScheduleType;\n      this.TimeSeries = TimeSeries;\n      this.type = 1637806684;\n    }\n  }\n  IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule;\n  class IfcTransformerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1692211062;\n    }\n  }\n  IFC2X32.IfcTransformerType = IfcTransformerType;\n  class IfcTransportElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OperationType = OperationType;\n      this.CapacityByWeight = CapacityByWeight;\n      this.CapacityByNumber = CapacityByNumber;\n      this.type = 1620046519;\n    }\n  }\n  IFC2X32.IfcTransportElement = IfcTransportElement;\n  class IfcTrimmedCurve extends IfcBoundedCurve {\n    constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.Trim1 = Trim1;\n      this.Trim2 = Trim2;\n      this.SenseAgreement = SenseAgreement;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 3593883385;\n    }\n  }\n  IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve;\n  class IfcTubeBundleType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1600972822;\n    }\n  }\n  IFC2X32.IfcTubeBundleType = IfcTubeBundleType;\n  class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1911125066;\n    }\n  }\n  IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;\n  class IfcValveType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 728799441;\n    }\n  }\n  IFC2X32.IfcValveType = IfcValveType;\n  class IfcVirtualElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2769231204;\n    }\n  }\n  IFC2X32.IfcVirtualElement = IfcVirtualElement;\n  class IfcWallType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1898987631;\n    }\n  }\n  IFC2X32.IfcWallType = IfcWallType;\n  class IfcWasteTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1133259667;\n    }\n  }\n  IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType;\n  class IfcWorkControl extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identifier = Identifier;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.WorkControlType = WorkControlType;\n      this.UserDefinedControlType = UserDefinedControlType;\n      this.type = 1028945134;\n    }\n  }\n  IFC2X32.IfcWorkControl = IfcWorkControl;\n  class IfcWorkPlan extends IfcWorkControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identifier = Identifier;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.WorkControlType = WorkControlType;\n      this.UserDefinedControlType = UserDefinedControlType;\n      this.type = 4218914973;\n    }\n  }\n  IFC2X32.IfcWorkPlan = IfcWorkPlan;\n  class IfcWorkSchedule extends IfcWorkControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identifier = Identifier;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.WorkControlType = WorkControlType;\n      this.UserDefinedControlType = UserDefinedControlType;\n      this.type = 3342526732;\n    }\n  }\n  IFC2X32.IfcWorkSchedule = IfcWorkSchedule;\n  class IfcZone extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 1033361043;\n    }\n  }\n  IFC2X32.IfcZone = IfcZone;\n  class Ifc2DCompositeCurve extends IfcCompositeCurve {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 1213861670;\n    }\n  }\n  IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve;\n  class IfcActionRequest extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.RequestID = RequestID;\n      this.type = 3821786052;\n    }\n  }\n  IFC2X32.IfcActionRequest = IfcActionRequest;\n  class IfcAirTerminalBoxType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1411407467;\n    }\n  }\n  IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType;\n  class IfcAirTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3352864051;\n    }\n  }\n  IFC2X32.IfcAirTerminalType = IfcAirTerminalType;\n  class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1871374353;\n    }\n  }\n  IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;\n  class IfcAngularDimension extends IfcDimensionCurveDirectedCallout {\n    constructor(expressID, Contents) {\n      super(expressID, Contents);\n      this.Contents = Contents;\n      this.type = 2470393545;\n    }\n  }\n  IFC2X32.IfcAngularDimension = IfcAngularDimension;\n  class IfcAsset extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.AssetID = AssetID;\n      this.OriginalValue = OriginalValue;\n      this.CurrentValue = CurrentValue;\n      this.TotalReplacementCost = TotalReplacementCost;\n      this.Owner = Owner;\n      this.User = User;\n      this.ResponsiblePerson = ResponsiblePerson;\n      this.IncorporationDate = IncorporationDate;\n      this.DepreciatedValue = DepreciatedValue;\n      this.type = 3460190687;\n    }\n  }\n  IFC2X32.IfcAsset = IfcAsset;\n  class IfcBSplineCurve extends IfcBoundedCurve {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {\n      super(expressID);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 1967976161;\n    }\n  }\n  IFC2X32.IfcBSplineCurve = IfcBSplineCurve;\n  class IfcBeamType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 819618141;\n    }\n  }\n  IFC2X32.IfcBeamType = IfcBeamType;\n  class IfcBezierCurve extends IfcBSplineCurve {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {\n      super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 1916977116;\n    }\n  }\n  IFC2X32.IfcBezierCurve = IfcBezierCurve;\n  class IfcBoilerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 231477066;\n    }\n  }\n  IFC2X32.IfcBoilerType = IfcBoilerType;\n  class IfcBuildingElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3299480353;\n    }\n  }\n  IFC2X32.IfcBuildingElement = IfcBuildingElement;\n  class IfcBuildingElementComponent extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 52481810;\n    }\n  }\n  IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent;\n  class IfcBuildingElementPart extends IfcBuildingElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2979338954;\n    }\n  }\n  IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart;\n  class IfcBuildingElementProxy extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.CompositionType = CompositionType;\n      this.type = 1095909175;\n    }\n  }\n  IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy;\n  class IfcBuildingElementProxyType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1909888760;\n    }\n  }\n  IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType;\n  class IfcCableCarrierFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 395041908;\n    }\n  }\n  IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType;\n  class IfcCableCarrierSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3293546465;\n    }\n  }\n  IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;\n  class IfcCableSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1285652485;\n    }\n  }\n  IFC2X32.IfcCableSegmentType = IfcCableSegmentType;\n  class IfcChillerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2951183804;\n    }\n  }\n  IFC2X32.IfcChillerType = IfcChillerType;\n  class IfcCircle extends IfcConic {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 2611217952;\n    }\n  }\n  IFC2X32.IfcCircle = IfcCircle;\n  class IfcCoilType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2301859152;\n    }\n  }\n  IFC2X32.IfcCoilType = IfcCoilType;\n  class IfcColumn extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 843113511;\n    }\n  }\n  IFC2X32.IfcColumn = IfcColumn;\n  class IfcCompressorType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3850581409;\n    }\n  }\n  IFC2X32.IfcCompressorType = IfcCompressorType;\n  class IfcCondenserType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2816379211;\n    }\n  }\n  IFC2X32.IfcCondenserType = IfcCondenserType;\n  class IfcCondition extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2188551683;\n    }\n  }\n  IFC2X32.IfcCondition = IfcCondition;\n  class IfcConditionCriterion extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Criterion = Criterion;\n      this.CriterionDateTime = CriterionDateTime;\n      this.type = 1163958913;\n    }\n  }\n  IFC2X32.IfcConditionCriterion = IfcConditionCriterion;\n  class IfcConstructionEquipmentResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ResourceIdentifier = ResourceIdentifier;\n      this.ResourceGroup = ResourceGroup;\n      this.ResourceConsumption = ResourceConsumption;\n      this.BaseQuantity = BaseQuantity;\n      this.type = 3898045240;\n    }\n  }\n  IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;\n  class IfcConstructionMaterialResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ResourceIdentifier = ResourceIdentifier;\n      this.ResourceGroup = ResourceGroup;\n      this.ResourceConsumption = ResourceConsumption;\n      this.BaseQuantity = BaseQuantity;\n      this.Suppliers = Suppliers;\n      this.UsageRatio = UsageRatio;\n      this.type = 1060000209;\n    }\n  }\n  IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource;\n  class IfcConstructionProductResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ResourceIdentifier = ResourceIdentifier;\n      this.ResourceGroup = ResourceGroup;\n      this.ResourceConsumption = ResourceConsumption;\n      this.BaseQuantity = BaseQuantity;\n      this.type = 488727124;\n    }\n  }\n  IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource;\n  class IfcCooledBeamType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 335055490;\n    }\n  }\n  IFC2X32.IfcCooledBeamType = IfcCooledBeamType;\n  class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2954562838;\n    }\n  }\n  IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType;\n  class IfcCovering extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1973544240;\n    }\n  }\n  IFC2X32.IfcCovering = IfcCovering;\n  class IfcCurtainWall extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3495092785;\n    }\n  }\n  IFC2X32.IfcCurtainWall = IfcCurtainWall;\n  class IfcDamperType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3961806047;\n    }\n  }\n  IFC2X32.IfcDamperType = IfcDamperType;\n  class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout {\n    constructor(expressID, Contents) {\n      super(expressID, Contents);\n      this.Contents = Contents;\n      this.type = 4147604152;\n    }\n  }\n  IFC2X32.IfcDiameterDimension = IfcDiameterDimension;\n  class IfcDiscreteAccessory extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1335981549;\n    }\n  }\n  IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory;\n  class IfcDiscreteAccessoryType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2635815018;\n    }\n  }\n  IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;\n  class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1599208980;\n    }\n  }\n  IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType;\n  class IfcDistributionControlElementType extends IfcDistributionElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2063403501;\n    }\n  }\n  IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType;\n  class IfcDistributionElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1945004755;\n    }\n  }\n  IFC2X32.IfcDistributionElement = IfcDistributionElement;\n  class IfcDistributionFlowElement extends IfcDistributionElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3040386961;\n    }\n  }\n  IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement;\n  class IfcDistributionPort extends IfcPort {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.FlowDirection = FlowDirection;\n      this.type = 3041715199;\n    }\n  }\n  IFC2X32.IfcDistributionPort = IfcDistributionPort;\n  class IfcDoor extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OverallHeight = OverallHeight;\n      this.OverallWidth = OverallWidth;\n      this.type = 395920057;\n    }\n  }\n  IFC2X32.IfcDoor = IfcDoor;\n  class IfcDuctFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 869906466;\n    }\n  }\n  IFC2X32.IfcDuctFittingType = IfcDuctFittingType;\n  class IfcDuctSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3760055223;\n    }\n  }\n  IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType;\n  class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2030761528;\n    }\n  }\n  IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType;\n  class IfcEdgeFeature extends IfcFeatureElementSubtraction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.FeatureLength = FeatureLength;\n      this.type = 855621170;\n    }\n  }\n  IFC2X32.IfcEdgeFeature = IfcEdgeFeature;\n  class IfcElectricApplianceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 663422040;\n    }\n  }\n  IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType;\n  class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3277789161;\n    }\n  }\n  IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;\n  class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1534661035;\n    }\n  }\n  IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType;\n  class IfcElectricHeaterType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1365060375;\n    }\n  }\n  IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType;\n  class IfcElectricMotorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1217240411;\n    }\n  }\n  IFC2X32.IfcElectricMotorType = IfcElectricMotorType;\n  class IfcElectricTimeControlType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 712377611;\n    }\n  }\n  IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType;\n  class IfcElectricalCircuit extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 1634875225;\n    }\n  }\n  IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit;\n  class IfcElectricalElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 857184966;\n    }\n  }\n  IFC2X32.IfcElectricalElement = IfcElectricalElement;\n  class IfcEnergyConversionDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1658829314;\n    }\n  }\n  IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice;\n  class IfcFanType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 346874300;\n    }\n  }\n  IFC2X32.IfcFanType = IfcFanType;\n  class IfcFilterType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1810631287;\n    }\n  }\n  IFC2X32.IfcFilterType = IfcFilterType;\n  class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4222183408;\n    }\n  }\n  IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;\n  class IfcFlowController extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2058353004;\n    }\n  }\n  IFC2X32.IfcFlowController = IfcFlowController;\n  class IfcFlowFitting extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 4278956645;\n    }\n  }\n  IFC2X32.IfcFlowFitting = IfcFlowFitting;\n  class IfcFlowInstrumentType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4037862832;\n    }\n  }\n  IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType;\n  class IfcFlowMovingDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3132237377;\n    }\n  }\n  IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice;\n  class IfcFlowSegment extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 987401354;\n    }\n  }\n  IFC2X32.IfcFlowSegment = IfcFlowSegment;\n  class IfcFlowStorageDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 707683696;\n    }\n  }\n  IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice;\n  class IfcFlowTerminal extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2223149337;\n    }\n  }\n  IFC2X32.IfcFlowTerminal = IfcFlowTerminal;\n  class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3508470533;\n    }\n  }\n  IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;\n  class IfcFooting extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 900683007;\n    }\n  }\n  IFC2X32.IfcFooting = IfcFooting;\n  class IfcMember extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1073191201;\n    }\n  }\n  IFC2X32.IfcMember = IfcMember;\n  class IfcPile extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.ConstructionType = ConstructionType;\n      this.type = 1687234759;\n    }\n  }\n  IFC2X32.IfcPile = IfcPile;\n  class IfcPlate extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3171933400;\n    }\n  }\n  IFC2X32.IfcPlate = IfcPlate;\n  class IfcRailing extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2262370178;\n    }\n  }\n  IFC2X32.IfcRailing = IfcRailing;\n  class IfcRamp extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.ShapeType = ShapeType;\n      this.type = 3024970846;\n    }\n  }\n  IFC2X32.IfcRamp = IfcRamp;\n  class IfcRampFlight extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3283111854;\n    }\n  }\n  IFC2X32.IfcRampFlight = IfcRampFlight;\n  class IfcRationalBezierCurve extends IfcBezierCurve {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) {\n      super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.WeightsData = WeightsData;\n      this.type = 3055160366;\n    }\n  }\n  IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve;\n  class IfcReinforcingElement extends IfcBuildingElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.type = 3027567501;\n    }\n  }\n  IFC2X32.IfcReinforcingElement = IfcReinforcingElement;\n  class IfcReinforcingMesh extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.MeshLength = MeshLength;\n      this.MeshWidth = MeshWidth;\n      this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n      this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n      this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n      this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n      this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n      this.TransverseBarSpacing = TransverseBarSpacing;\n      this.type = 2320036040;\n    }\n  }\n  IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh;\n  class IfcRoof extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.ShapeType = ShapeType;\n      this.type = 2016517767;\n    }\n  }\n  IFC2X32.IfcRoof = IfcRoof;\n  class IfcRoundedEdgeFeature extends IfcEdgeFeature {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.FeatureLength = FeatureLength;\n      this.Radius = Radius;\n      this.type = 1376911519;\n    }\n  }\n  IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature;\n  class IfcSensorType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1783015770;\n    }\n  }\n  IFC2X32.IfcSensorType = IfcSensorType;\n  class IfcSlab extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1529196076;\n    }\n  }\n  IFC2X32.IfcSlab = IfcSlab;\n  class IfcStair extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.ShapeType = ShapeType;\n      this.type = 331165859;\n    }\n  }\n  IFC2X32.IfcStair = IfcStair;\n  class IfcStairFlight extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.NumberOfRiser = NumberOfRiser;\n      this.NumberOfTreads = NumberOfTreads;\n      this.RiserHeight = RiserHeight;\n      this.TreadLength = TreadLength;\n      this.type = 4252922144;\n    }\n  }\n  IFC2X32.IfcStairFlight = IfcStairFlight;\n  class IfcStructuralAnalysisModel extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.OrientationOf2DPlane = OrientationOf2DPlane;\n      this.LoadedBy = LoadedBy;\n      this.HasResults = HasResults;\n      this.type = 2515109513;\n    }\n  }\n  IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;\n  class IfcTendon extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.TensionForce = TensionForce;\n      this.PreStress = PreStress;\n      this.FrictionCoefficient = FrictionCoefficient;\n      this.AnchorageSlip = AnchorageSlip;\n      this.MinCurvatureRadius = MinCurvatureRadius;\n      this.type = 3824725483;\n    }\n  }\n  IFC2X32.IfcTendon = IfcTendon;\n  class IfcTendonAnchor extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.type = 2347447852;\n    }\n  }\n  IFC2X32.IfcTendonAnchor = IfcTendonAnchor;\n  class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3313531582;\n    }\n  }\n  IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType;\n  class IfcWall extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2391406946;\n    }\n  }\n  IFC2X32.IfcWall = IfcWall;\n  class IfcWallStandardCase extends IfcWall {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3512223829;\n    }\n  }\n  IFC2X32.IfcWallStandardCase = IfcWallStandardCase;\n  class IfcWindow extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OverallHeight = OverallHeight;\n      this.OverallWidth = OverallWidth;\n      this.type = 3304561284;\n    }\n  }\n  IFC2X32.IfcWindow = IfcWindow;\n  class IfcActuatorType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2874132201;\n    }\n  }\n  IFC2X32.IfcActuatorType = IfcActuatorType;\n  class IfcAlarmType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3001207471;\n    }\n  }\n  IFC2X32.IfcAlarmType = IfcAlarmType;\n  class IfcBeam extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 753842376;\n    }\n  }\n  IFC2X32.IfcBeam = IfcBeam;\n  class IfcChamferEdgeFeature extends IfcEdgeFeature {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.FeatureLength = FeatureLength;\n      this.Width = Width;\n      this.Height = Height;\n      this.type = 2454782716;\n    }\n  }\n  IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature;\n  class IfcControllerType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 578613899;\n    }\n  }\n  IFC2X32.IfcControllerType = IfcControllerType;\n  class IfcDistributionChamberElement extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1052013943;\n    }\n  }\n  IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement;\n  class IfcDistributionControlElement extends IfcDistributionElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.ControlElementId = ControlElementId;\n      this.type = 1062813311;\n    }\n  }\n  IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement;\n  class IfcElectricDistributionPoint extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.DistributionPointFunction = DistributionPointFunction;\n      this.UserDefinedFunction = UserDefinedFunction;\n      this.type = 3700593921;\n    }\n  }\n  IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint;\n  class IfcReinforcingBar extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.BarLength = BarLength;\n      this.BarRole = BarRole;\n      this.BarSurface = BarSurface;\n      this.type = 979691226;\n    }\n  }\n  IFC2X32.IfcReinforcingBar = IfcReinforcingBar;\n})(IFC2X3 || (IFC2X3 = {}));\nSchemaNames[2] = \"IFC4_3\";\nFromRawLineData[2] = {\n  3630933823: (id, v) => new IFC4_3.IfcActorRole(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value)),\n  618182010: (id, v) => new IFC4_3.IfcAddress(id, v[0], !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  2879124712: (id, v) => new IFC4_3.IfcAlignmentParameterSegment(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value)),\n  3633395639: (id, v) => new IFC4_3.IfcAlignmentVerticalSegment(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcLengthMeasure(v[2].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[3].value), new IFC4_3.IfcLengthMeasure(v[4].value), new IFC4_3.IfcRatioMeasure(v[5].value), new IFC4_3.IfcRatioMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcLengthMeasure(v[7].value), v[8]),\n  639542469: (id, v) => new IFC4_3.IfcApplication(id, new Handle(v[0].value), new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcLabel(v[2].value), new IFC4_3.IfcIdentifier(v[3].value)),\n  411424972: (id, v) => new IFC4_3.IfcAppliedValue(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcDate(v[4].value), !v[5] ? null : new IFC4_3.IfcDate(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : v[9].map((p) => new Handle(p.value))),\n  130549933: (id, v) => new IFC4_3.IfcApproval(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : new IFC4_3.IfcDateTime(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  4037036970: (id, v) => new IFC4_3.IfcBoundaryCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)),\n  1560379544: (id, v) => new IFC4_3.IfcBoundaryEdgeCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])),\n  3367102660: (id, v) => new IFC4_3.IfcBoundaryFaceCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3])),\n  1387855156: (id, v) => new IFC4_3.IfcBoundaryNodeCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])),\n  2069777674: (id, v) => new IFC4_3.IfcBoundaryNodeConditionWarping(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6]), !v[7] ? null : TypeInitialiser(2, v[7])),\n  2859738748: (id, _) => new IFC4_3.IfcConnectionGeometry(id),\n  2614616156: (id, v) => new IFC4_3.IfcConnectionPointGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  2732653382: (id, v) => new IFC4_3.IfcConnectionSurfaceGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  775493141: (id, v) => new IFC4_3.IfcConnectionVolumeGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  1959218052: (id, v) => new IFC4_3.IfcConstraint(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value)),\n  1785450214: (id, v) => new IFC4_3.IfcCoordinateOperation(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1466758467: (id, v) => new IFC4_3.IfcCoordinateReferenceSystem(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new IFC4_3.IfcIdentifier(v[3].value)),\n  602808272: (id, v) => new IFC4_3.IfcCostValue(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcDate(v[4].value), !v[5] ? null : new IFC4_3.IfcDate(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : v[9].map((p) => new Handle(p.value))),\n  1765591967: (id, v) => new IFC4_3.IfcDerivedUnit(id, v[0].map((p) => new Handle(p.value)), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value)),\n  1045800335: (id, v) => new IFC4_3.IfcDerivedUnitElement(id, new Handle(v[0].value), v[1].value),\n  2949456006: (id, v) => new IFC4_3.IfcDimensionalExponents(id, v[0].value, v[1].value, v[2].value, v[3].value, v[4].value, v[5].value, v[6].value),\n  4294318154: (id, _) => new IFC4_3.IfcExternalInformation(id),\n  3200245327: (id, v) => new IFC4_3.IfcExternalReference(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  2242383968: (id, v) => new IFC4_3.IfcExternallyDefinedHatchStyle(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  1040185647: (id, v) => new IFC4_3.IfcExternallyDefinedSurfaceStyle(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  3548104201: (id, v) => new IFC4_3.IfcExternallyDefinedTextFont(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  852622518: (id, v) => new IFC4_3.IfcGridAxis(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), new IFC4_3.IfcBoolean(v[2].value)),\n  3020489413: (id, v) => new IFC4_3.IfcIrregularTimeSeriesValue(id, new IFC4_3.IfcDateTime(v[0].value), v[1].map((p) => TypeInitialiser(2, p))),\n  2655187982: (id, v) => new IFC4_3.IfcLibraryInformation(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcDateTime(v[3].value), !v[4] ? null : new IFC4_3.IfcURIReference(v[4].value), !v[5] ? null : new IFC4_3.IfcText(v[5].value)),\n  3452421091: (id, v) => new IFC4_3.IfcLibraryReference(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLanguageId(v[4].value), !v[5] ? null : new Handle(v[5].value)),\n  4162380809: (id, v) => new IFC4_3.IfcLightDistributionData(id, new IFC4_3.IfcPlaneAngleMeasure(v[0].value), v[1].map((p) => new IFC4_3.IfcPlaneAngleMeasure(p.value)), v[2].map((p) => new IFC4_3.IfcLuminousIntensityDistributionMeasure(p.value))),\n  1566485204: (id, v) => new IFC4_3.IfcLightIntensityDistribution(id, v[0], v[1].map((p) => new Handle(p.value))),\n  3057273783: (id, v) => new IFC4_3.IfcMapConversion(id, new Handle(v[0].value), new Handle(v[1].value), new IFC4_3.IfcLengthMeasure(v[2].value), new IFC4_3.IfcLengthMeasure(v[3].value), new IFC4_3.IfcLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcReal(v[5].value), !v[6] ? null : new IFC4_3.IfcReal(v[6].value), !v[7] ? null : new IFC4_3.IfcReal(v[7].value), !v[8] ? null : new IFC4_3.IfcReal(v[8].value), !v[9] ? null : new IFC4_3.IfcReal(v[9].value)),\n  1847130766: (id, v) => new IFC4_3.IfcMaterialClassificationRelationship(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value)),\n  760658860: (id, _) => new IFC4_3.IfcMaterialDefinition(id),\n  248100487: (id, v) => new IFC4_3.IfcMaterialLayer(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLogical(v[2].value), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcInteger(v[6].value)),\n  3303938423: (id, v) => new IFC4_3.IfcMaterialLayerSet(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value)),\n  1847252529: (id, v) => new IFC4_3.IfcMaterialLayerWithOffsets(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLogical(v[2].value), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcInteger(v[6].value), v[7], new IFC4_3.IfcLengthMeasure(v[8].value)),\n  2199411900: (id, v) => new IFC4_3.IfcMaterialList(id, v[0].map((p) => new Handle(p.value))),\n  2235152071: (id, v) => new IFC4_3.IfcMaterialProfile(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcInteger(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value)),\n  164193824: (id, v) => new IFC4_3.IfcMaterialProfileSet(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new Handle(v[3].value)),\n  552965576: (id, v) => new IFC4_3.IfcMaterialProfileWithOffsets(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcInteger(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), new IFC4_3.IfcLengthMeasure(v[6].value)),\n  1507914824: (id, _) => new IFC4_3.IfcMaterialUsageDefinition(id),\n  2597039031: (id, v) => new IFC4_3.IfcMeasureWithUnit(id, TypeInitialiser(2, v[0]), new Handle(v[1].value)),\n  3368373690: (id, v) => new IFC4_3.IfcMetric(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), v[7], !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  2706619895: (id, v) => new IFC4_3.IfcMonetaryUnit(id, new IFC4_3.IfcLabel(v[0].value)),\n  1918398963: (id, v) => new IFC4_3.IfcNamedUnit(id, new Handle(v[0].value), v[1]),\n  3701648758: (id, v) => new IFC4_3.IfcObjectPlacement(id, !v[0] ? null : new Handle(v[0].value)),\n  2251480897: (id, v) => new IFC4_3.IfcObjective(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), v[8], v[9], !v[10] ? null : new IFC4_3.IfcLabel(v[10].value)),\n  4251960020: (id, v) => new IFC4_3.IfcOrganization(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : v[3].map((p) => new Handle(p.value)), !v[4] ? null : v[4].map((p) => new Handle(p.value))),\n  1207048766: (id, v) => new IFC4_3.IfcOwnerHistory(id, new Handle(v[0].value), new Handle(v[1].value), v[2], v[3], !v[4] ? null : new IFC4_3.IfcTimeStamp(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new IFC4_3.IfcTimeStamp(v[7].value)),\n  2077209135: (id, v) => new IFC4_3.IfcPerson(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcLabel(p.value)), !v[5] ? null : v[5].map((p) => new IFC4_3.IfcLabel(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value))),\n  101040310: (id, v) => new IFC4_3.IfcPersonAndOrganization(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))),\n  2483315170: (id, v) => new IFC4_3.IfcPhysicalQuantity(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value)),\n  2226359599: (id, v) => new IFC4_3.IfcPhysicalSimpleQuantity(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  3355820592: (id, v) => new IFC4_3.IfcPostalAddress(id, v[0], !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcLabel(p.value)), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcLabel(v[9].value)),\n  677532197: (id, _) => new IFC4_3.IfcPresentationItem(id),\n  2022622350: (id, v) => new IFC4_3.IfcPresentationLayerAssignment(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4_3.IfcIdentifier(v[3].value)),\n  1304840413: (id, v) => new IFC4_3.IfcPresentationLayerWithStyle(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4_3.IfcIdentifier(v[3].value), new IFC4_3.IfcLogical(v[4].value), new IFC4_3.IfcLogical(v[5].value), new IFC4_3.IfcLogical(v[6].value), v[7].map((p) => new Handle(p.value))),\n  3119450353: (id, v) => new IFC4_3.IfcPresentationStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)),\n  2095639259: (id, v) => new IFC4_3.IfcProductRepresentation(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))),\n  3958567839: (id, v) => new IFC4_3.IfcProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value)),\n  3843373140: (id, v) => new IFC4_3.IfcProjectedCRS(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new IFC4_3.IfcIdentifier(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  986844984: (id, _) => new IFC4_3.IfcPropertyAbstraction(id),\n  3710013099: (id, v) => new IFC4_3.IfcPropertyEnumeration(id, new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => TypeInitialiser(2, p)), !v[2] ? null : new Handle(v[2].value)),\n  2044713172: (id, v) => new IFC4_3.IfcQuantityArea(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcAreaMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  2093928680: (id, v) => new IFC4_3.IfcQuantityCount(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcCountMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  931644368: (id, v) => new IFC4_3.IfcQuantityLength(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  2691318326: (id, v) => new IFC4_3.IfcQuantityNumber(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcNumericMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  3252649465: (id, v) => new IFC4_3.IfcQuantityTime(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcTimeMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  2405470396: (id, v) => new IFC4_3.IfcQuantityVolume(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcVolumeMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  825690147: (id, v) => new IFC4_3.IfcQuantityWeight(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcMassMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  3915482550: (id, v) => new IFC4_3.IfcRecurrencePattern(id, v[0], !v[1] ? null : v[1].map((p) => new IFC4_3.IfcDayInMonthNumber(p.value)), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcDayInWeekNumber(p.value)), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcMonthInYearNumber(p.value)), !v[4] ? null : new IFC4_3.IfcInteger(v[4].value), !v[5] ? null : new IFC4_3.IfcInteger(v[5].value), !v[6] ? null : new IFC4_3.IfcInteger(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value))),\n  2433181523: (id, v) => new IFC4_3.IfcReference(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcInteger(p.value)), !v[4] ? null : new Handle(v[4].value)),\n  1076942058: (id, v) => new IFC4_3.IfcRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3377609919: (id, v) => new IFC4_3.IfcRepresentationContext(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value)),\n  3008791417: (id, _) => new IFC4_3.IfcRepresentationItem(id),\n  1660063152: (id, v) => new IFC4_3.IfcRepresentationMap(id, new Handle(v[0].value), new Handle(v[1].value)),\n  2439245199: (id, v) => new IFC4_3.IfcResourceLevelRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value)),\n  2341007311: (id, v) => new IFC4_3.IfcRoot(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  448429030: (id, v) => new IFC4_3.IfcSIUnit(id, new Handle(v[0].value), v[1], v[2], v[3]),\n  1054537805: (id, v) => new IFC4_3.IfcSchedulingTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  867548509: (id, v) => new IFC4_3.IfcShapeAspect(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), new IFC4_3.IfcLogical(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  3982875396: (id, v) => new IFC4_3.IfcShapeModel(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  4240577450: (id, v) => new IFC4_3.IfcShapeRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  2273995522: (id, v) => new IFC4_3.IfcStructuralConnectionCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)),\n  2162789131: (id, v) => new IFC4_3.IfcStructuralLoad(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)),\n  3478079324: (id, v) => new IFC4_3.IfcStructuralLoadConfiguration(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcLengthMeasure(p.value))),\n  609421318: (id, v) => new IFC4_3.IfcStructuralLoadOrResult(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)),\n  2525727697: (id, v) => new IFC4_3.IfcStructuralLoadStatic(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)),\n  3408363356: (id, v) => new IFC4_3.IfcStructuralLoadTemperature(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcThermodynamicTemperatureMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcThermodynamicTemperatureMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcThermodynamicTemperatureMeasure(v[3].value)),\n  2830218821: (id, v) => new IFC4_3.IfcStyleModel(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3958052878: (id, v) => new IFC4_3.IfcStyledItem(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  3049322572: (id, v) => new IFC4_3.IfcStyledRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  2934153892: (id, v) => new IFC4_3.IfcSurfaceReinforcementArea(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new IFC4_3.IfcLengthMeasure(p.value)), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcLengthMeasure(p.value)), !v[3] ? null : new IFC4_3.IfcRatioMeasure(v[3].value)),\n  1300840506: (id, v) => new IFC4_3.IfcSurfaceStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], v[2].map((p) => new Handle(p.value))),\n  3303107099: (id, v) => new IFC4_3.IfcSurfaceStyleLighting(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new Handle(v[3].value)),\n  1607154358: (id, v) => new IFC4_3.IfcSurfaceStyleRefraction(id, !v[0] ? null : new IFC4_3.IfcReal(v[0].value), !v[1] ? null : new IFC4_3.IfcReal(v[1].value)),\n  846575682: (id, v) => new IFC4_3.IfcSurfaceStyleShading(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[1].value)),\n  1351298697: (id, v) => new IFC4_3.IfcSurfaceStyleWithTextures(id, v[0].map((p) => new Handle(p.value))),\n  626085974: (id, v) => new IFC4_3.IfcSurfaceTexture(id, new IFC4_3.IfcBoolean(v[0].value), new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcIdentifier(p.value))),\n  985171141: (id, v) => new IFC4_3.IfcTable(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value)), !v[2] ? null : v[2].map((p) => new Handle(p.value))),\n  2043862942: (id, v) => new IFC4_3.IfcTableColumn(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  531007025: (id, v) => new IFC4_3.IfcTableRow(id, !v[0] ? null : v[0].map((p) => TypeInitialiser(2, p)), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value)),\n  1549132990: (id, v) => new IFC4_3.IfcTaskTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3], !v[4] ? null : new IFC4_3.IfcDuration(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : new IFC4_3.IfcDateTime(v[7].value), !v[8] ? null : new IFC4_3.IfcDateTime(v[8].value), !v[9] ? null : new IFC4_3.IfcDateTime(v[9].value), !v[10] ? null : new IFC4_3.IfcDateTime(v[10].value), !v[11] ? null : new IFC4_3.IfcDuration(v[11].value), !v[12] ? null : new IFC4_3.IfcDuration(v[12].value), !v[13] ? null : new IFC4_3.IfcBoolean(v[13].value), !v[14] ? null : new IFC4_3.IfcDateTime(v[14].value), !v[15] ? null : new IFC4_3.IfcDuration(v[15].value), !v[16] ? null : new IFC4_3.IfcDateTime(v[16].value), !v[17] ? null : new IFC4_3.IfcDateTime(v[17].value), !v[18] ? null : new IFC4_3.IfcDuration(v[18].value), !v[19] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[19].value)),\n  2771591690: (id, v) => new IFC4_3.IfcTaskTimeRecurring(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3], !v[4] ? null : new IFC4_3.IfcDuration(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : new IFC4_3.IfcDateTime(v[7].value), !v[8] ? null : new IFC4_3.IfcDateTime(v[8].value), !v[9] ? null : new IFC4_3.IfcDateTime(v[9].value), !v[10] ? null : new IFC4_3.IfcDateTime(v[10].value), !v[11] ? null : new IFC4_3.IfcDuration(v[11].value), !v[12] ? null : new IFC4_3.IfcDuration(v[12].value), !v[13] ? null : new IFC4_3.IfcBoolean(v[13].value), !v[14] ? null : new IFC4_3.IfcDateTime(v[14].value), !v[15] ? null : new IFC4_3.IfcDuration(v[15].value), !v[16] ? null : new IFC4_3.IfcDateTime(v[16].value), !v[17] ? null : new IFC4_3.IfcDateTime(v[17].value), !v[18] ? null : new IFC4_3.IfcDuration(v[18].value), !v[19] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[19].value), new Handle(v[20].value)),\n  912023232: (id, v) => new IFC4_3.IfcTelecomAddress(id, v[0], !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcLabel(p.value)), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : v[6].map((p) => new IFC4_3.IfcLabel(p.value)), !v[7] ? null : new IFC4_3.IfcURIReference(v[7].value), !v[8] ? null : v[8].map((p) => new IFC4_3.IfcURIReference(p.value))),\n  1447204868: (id, v) => new IFC4_3.IfcTextStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcBoolean(v[4].value)),\n  2636378356: (id, v) => new IFC4_3.IfcTextStyleForDefinedFont(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  1640371178: (id, v) => new IFC4_3.IfcTextStyleTextModel(id, !v[0] ? null : TypeInitialiser(2, v[0]), !v[1] ? null : new IFC4_3.IfcTextAlignment(v[1].value), !v[2] ? null : new IFC4_3.IfcTextDecoration(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : new IFC4_3.IfcTextTransformation(v[5].value), !v[6] ? null : TypeInitialiser(2, v[6])),\n  280115917: (id, v) => new IFC4_3.IfcTextureCoordinate(id, v[0].map((p) => new Handle(p.value))),\n  1742049831: (id, v) => new IFC4_3.IfcTextureCoordinateGenerator(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcReal(p.value))),\n  222769930: (id, v) => new IFC4_3.IfcTextureCoordinateIndices(id, v[0].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), new Handle(v[1].value)),\n  1010789467: (id, v) => new IFC4_3.IfcTextureCoordinateIndicesWithVoids(id, v[0].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), new Handle(v[1].value), v[2].map((p) => new IFC4_3.IfcPositiveInteger(p.value))),\n  2552916305: (id, v) => new IFC4_3.IfcTextureMap(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value)), new Handle(v[2].value)),\n  1210645708: (id, v) => new IFC4_3.IfcTextureVertex(id, v[0].map((p) => new IFC4_3.IfcParameterValue(p.value))),\n  3611470254: (id, v) => new IFC4_3.IfcTextureVertexList(id, v[0].map((p) => new IFC4_3.IfcParameterValue(p.value))),\n  1199560280: (id, v) => new IFC4_3.IfcTimePeriod(id, new IFC4_3.IfcTime(v[0].value), new IFC4_3.IfcTime(v[1].value)),\n  3101149627: (id, v) => new IFC4_3.IfcTimeSeries(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new IFC4_3.IfcDateTime(v[2].value), new IFC4_3.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  581633288: (id, v) => new IFC4_3.IfcTimeSeriesValue(id, v[0].map((p) => TypeInitialiser(2, p))),\n  1377556343: (id, _) => new IFC4_3.IfcTopologicalRepresentationItem(id),\n  1735638870: (id, v) => new IFC4_3.IfcTopologyRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  180925521: (id, v) => new IFC4_3.IfcUnitAssignment(id, v[0].map((p) => new Handle(p.value))),\n  2799835756: (id, _) => new IFC4_3.IfcVertex(id),\n  1907098498: (id, v) => new IFC4_3.IfcVertexPoint(id, new Handle(v[0].value)),\n  891718957: (id, v) => new IFC4_3.IfcVirtualGridIntersection(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new IFC4_3.IfcLengthMeasure(p.value))),\n  1236880293: (id, v) => new IFC4_3.IfcWorkTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcDate(v[4].value), !v[5] ? null : new IFC4_3.IfcDate(v[5].value)),\n  3752311538: (id, v) => new IFC4_3.IfcAlignmentCantSegment(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcLengthMeasure(v[2].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[3].value), new IFC4_3.IfcLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcLengthMeasure(v[5].value), new IFC4_3.IfcLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcLengthMeasure(v[7].value), v[8]),\n  536804194: (id, v) => new IFC4_3.IfcAlignmentHorizontalSegment(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPlaneAngleMeasure(v[3].value), new IFC4_3.IfcLengthMeasure(v[4].value), new IFC4_3.IfcLengthMeasure(v[5].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[7].value), v[8]),\n  3869604511: (id, v) => new IFC4_3.IfcApprovalRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3798115385: (id, v) => new IFC4_3.IfcArbitraryClosedProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value)),\n  1310608509: (id, v) => new IFC4_3.IfcArbitraryOpenProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value)),\n  2705031697: (id, v) => new IFC4_3.IfcArbitraryProfileDefWithVoids(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  616511568: (id, v) => new IFC4_3.IfcBlobTexture(id, new IFC4_3.IfcBoolean(v[0].value), new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcIdentifier(p.value)), new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcBinary(v[6].value)),\n  3150382593: (id, v) => new IFC4_3.IfcCenterLineProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)),\n  747523909: (id, v) => new IFC4_3.IfcClassification(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcDate(v[2].value), new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcURIReference(v[5].value), !v[6] ? null : v[6].map((p) => new IFC4_3.IfcIdentifier(p.value))),\n  647927063: (id, v) => new IFC4_3.IfcClassificationReference(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value)),\n  3285139300: (id, v) => new IFC4_3.IfcColourRgbList(id, v[0].map((p) => new IFC4_3.IfcNormalisedRatioMeasure(p.value))),\n  3264961684: (id, v) => new IFC4_3.IfcColourSpecification(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)),\n  1485152156: (id, v) => new IFC4_3.IfcCompositeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value)),\n  370225590: (id, v) => new IFC4_3.IfcConnectedFaceSet(id, v[0].map((p) => new Handle(p.value))),\n  1981873012: (id, v) => new IFC4_3.IfcConnectionCurveGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  45288368: (id, v) => new IFC4_3.IfcConnectionPointEccentricity(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLengthMeasure(v[4].value)),\n  3050246964: (id, v) => new IFC4_3.IfcContextDependentUnit(id, new Handle(v[0].value), v[1], new IFC4_3.IfcLabel(v[2].value)),\n  2889183280: (id, v) => new IFC4_3.IfcConversionBasedUnit(id, new Handle(v[0].value), v[1], new IFC4_3.IfcLabel(v[2].value), new Handle(v[3].value)),\n  2713554722: (id, v) => new IFC4_3.IfcConversionBasedUnitWithOffset(id, new Handle(v[0].value), v[1], new IFC4_3.IfcLabel(v[2].value), new Handle(v[3].value), new IFC4_3.IfcReal(v[4].value)),\n  539742890: (id, v) => new IFC4_3.IfcCurrencyRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), new IFC4_3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  3800577675: (id, v) => new IFC4_3.IfcCurveStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcBoolean(v[4].value)),\n  1105321065: (id, v) => new IFC4_3.IfcCurveStyleFont(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value))),\n  2367409068: (id, v) => new IFC4_3.IfcCurveStyleFontAndScaling(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), new IFC4_3.IfcPositiveRatioMeasure(v[2].value)),\n  3510044353: (id, v) => new IFC4_3.IfcCurveStyleFontPattern(id, new IFC4_3.IfcLengthMeasure(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)),\n  3632507154: (id, v) => new IFC4_3.IfcDerivedProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  1154170062: (id, v) => new IFC4_3.IfcDocumentInformation(id, new IFC4_3.IfcIdentifier(v[0].value), new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : new IFC4_3.IfcURIReference(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcText(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new IFC4_3.IfcDateTime(v[10].value), !v[11] ? null : new IFC4_3.IfcDateTime(v[11].value), !v[12] ? null : new IFC4_3.IfcIdentifier(v[12].value), !v[13] ? null : new IFC4_3.IfcDate(v[13].value), !v[14] ? null : new IFC4_3.IfcDate(v[14].value), v[15], v[16]),\n  770865208: (id, v) => new IFC4_3.IfcDocumentInformationRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  3732053477: (id, v) => new IFC4_3.IfcDocumentReference(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  3900360178: (id, v) => new IFC4_3.IfcEdge(id, new Handle(v[0].value), new Handle(v[1].value)),\n  476780140: (id, v) => new IFC4_3.IfcEdgeCurve(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcBoolean(v[3].value)),\n  211053100: (id, v) => new IFC4_3.IfcEventTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcDateTime(v[3].value), !v[4] ? null : new IFC4_3.IfcDateTime(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcDateTime(v[6].value)),\n  297599258: (id, v) => new IFC4_3.IfcExtendedProperties(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))),\n  1437805879: (id, v) => new IFC4_3.IfcExternalReferenceRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  2556980723: (id, v) => new IFC4_3.IfcFace(id, v[0].map((p) => new Handle(p.value))),\n  1809719519: (id, v) => new IFC4_3.IfcFaceBound(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value)),\n  803316827: (id, v) => new IFC4_3.IfcFaceOuterBound(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value)),\n  3008276851: (id, v) => new IFC4_3.IfcFaceSurface(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new IFC4_3.IfcBoolean(v[2].value)),\n  4219587988: (id, v) => new IFC4_3.IfcFailureConnectionCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcForceMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcForceMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcForceMeasure(v[6].value)),\n  738692330: (id, v) => new IFC4_3.IfcFillAreaStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4_3.IfcBoolean(v[2].value)),\n  3448662350: (id, v) => new IFC4_3.IfcGeometricRepresentationContext(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcDimensionCount(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value)),\n  2453401579: (id, _) => new IFC4_3.IfcGeometricRepresentationItem(id),\n  4142052618: (id, v) => new IFC4_3.IfcGeometricRepresentationSubContext(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[4].value), v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value)),\n  3590301190: (id, v) => new IFC4_3.IfcGeometricSet(id, v[0].map((p) => new Handle(p.value))),\n  178086475: (id, v) => new IFC4_3.IfcGridPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  812098782: (id, v) => new IFC4_3.IfcHalfSpaceSolid(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value)),\n  3905492369: (id, v) => new IFC4_3.IfcImageTexture(id, new IFC4_3.IfcBoolean(v[0].value), new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcIdentifier(p.value)), new IFC4_3.IfcURIReference(v[5].value)),\n  3570813810: (id, v) => new IFC4_3.IfcIndexedColourMap(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[1].value), new Handle(v[2].value), v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value))),\n  1437953363: (id, v) => new IFC4_3.IfcIndexedTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value)),\n  2133299955: (id, v) => new IFC4_3.IfcIndexedTriangleTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value))),\n  3741457305: (id, v) => new IFC4_3.IfcIrregularTimeSeries(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new IFC4_3.IfcDateTime(v[2].value), new IFC4_3.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), v[8].map((p) => new Handle(p.value))),\n  1585845231: (id, v) => new IFC4_3.IfcLagTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), TypeInitialiser(2, v[3]), v[4]),\n  1402838566: (id, v) => new IFC4_3.IfcLightSource(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value)),\n  125510826: (id, v) => new IFC4_3.IfcLightSourceAmbient(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value)),\n  2604431987: (id, v) => new IFC4_3.IfcLightSourceDirectional(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value)),\n  4266656042: (id, v) => new IFC4_3.IfcLightSourceGoniometric(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC4_3.IfcThermodynamicTemperatureMeasure(v[6].value), new IFC4_3.IfcLuminousFluxMeasure(v[7].value), v[8], new Handle(v[9].value)),\n  1520743889: (id, v) => new IFC4_3.IfcLightSourcePositional(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcReal(v[6].value), new IFC4_3.IfcReal(v[7].value), new IFC4_3.IfcReal(v[8].value)),\n  3422422726: (id, v) => new IFC4_3.IfcLightSourceSpot(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcReal(v[6].value), new IFC4_3.IfcReal(v[7].value), new IFC4_3.IfcReal(v[8].value), new Handle(v[9].value), !v[10] ? null : new IFC4_3.IfcReal(v[10].value), new IFC4_3.IfcPositivePlaneAngleMeasure(v[11].value), new IFC4_3.IfcPositivePlaneAngleMeasure(v[12].value)),\n  388784114: (id, v) => new IFC4_3.IfcLinearPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  2624227202: (id, v) => new IFC4_3.IfcLocalPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value)),\n  1008929658: (id, _) => new IFC4_3.IfcLoop(id),\n  2347385850: (id, v) => new IFC4_3.IfcMappedItem(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1838606355: (id, v) => new IFC4_3.IfcMaterial(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  3708119e3: (id, v) => new IFC4_3.IfcMaterialConstituent(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  2852063980: (id, v) => new IFC4_3.IfcMaterialConstituentSet(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))),\n  2022407955: (id, v) => new IFC4_3.IfcMaterialDefinitionRepresentation(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  1303795690: (id, v) => new IFC4_3.IfcMaterialLayerSetUsage(id, new Handle(v[0].value), v[1], v[2], new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value)),\n  3079605661: (id, v) => new IFC4_3.IfcMaterialProfileSetUsage(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcCardinalPointReference(v[1].value), !v[2] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[2].value)),\n  3404854881: (id, v) => new IFC4_3.IfcMaterialProfileSetUsageTapering(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcCardinalPointReference(v[1].value), !v[2] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcCardinalPointReference(v[4].value)),\n  3265635763: (id, v) => new IFC4_3.IfcMaterialProperties(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  853536259: (id, v) => new IFC4_3.IfcMaterialRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  2998442950: (id, v) => new IFC4_3.IfcMirroredProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  219451334: (id, v) => new IFC4_3.IfcObjectDefinition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  182550632: (id, v) => new IFC4_3.IfcOpenCrossProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcBoolean(v[2].value), v[3].map((p) => new IFC4_3.IfcNonNegativeLengthMeasure(p.value)), v[4].map((p) => new IFC4_3.IfcPlaneAngleMeasure(p.value)), !v[5] ? null : v[5].map((p) => new IFC4_3.IfcLabel(p.value)), !v[6] ? null : new Handle(v[6].value)),\n  2665983363: (id, v) => new IFC4_3.IfcOpenShell(id, v[0].map((p) => new Handle(p.value))),\n  1411181986: (id, v) => new IFC4_3.IfcOrganizationRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  1029017970: (id, v) => new IFC4_3.IfcOrientedEdge(id, new Handle(v[0].value), new Handle(v[1].value), new IFC4_3.IfcBoolean(v[2].value)),\n  2529465313: (id, v) => new IFC4_3.IfcParameterizedProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  2519244187: (id, v) => new IFC4_3.IfcPath(id, v[0].map((p) => new Handle(p.value))),\n  3021840470: (id, v) => new IFC4_3.IfcPhysicalComplexQuantity(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value)),\n  597895409: (id, v) => new IFC4_3.IfcPixelTexture(id, new IFC4_3.IfcBoolean(v[0].value), new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcIdentifier(p.value)), new IFC4_3.IfcInteger(v[5].value), new IFC4_3.IfcInteger(v[6].value), new IFC4_3.IfcInteger(v[7].value), v[8].map((p) => new IFC4_3.IfcBinary(p.value))),\n  2004835150: (id, v) => new IFC4_3.IfcPlacement(id, new Handle(v[0].value)),\n  1663979128: (id, v) => new IFC4_3.IfcPlanarExtent(id, new IFC4_3.IfcLengthMeasure(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value)),\n  2067069095: (id, _) => new IFC4_3.IfcPoint(id),\n  2165702409: (id, v) => new IFC4_3.IfcPointByDistanceExpression(id, TypeInitialiser(2, v[0]), !v[1] ? null : new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), new Handle(v[4].value)),\n  4022376103: (id, v) => new IFC4_3.IfcPointOnCurve(id, new Handle(v[0].value), new IFC4_3.IfcParameterValue(v[1].value)),\n  1423911732: (id, v) => new IFC4_3.IfcPointOnSurface(id, new Handle(v[0].value), new IFC4_3.IfcParameterValue(v[1].value), new IFC4_3.IfcParameterValue(v[2].value)),\n  2924175390: (id, v) => new IFC4_3.IfcPolyLoop(id, v[0].map((p) => new Handle(p.value))),\n  2775532180: (id, v) => new IFC4_3.IfcPolygonalBoundedHalfSpace(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value), new Handle(v[2].value), new Handle(v[3].value)),\n  3727388367: (id, v) => new IFC4_3.IfcPreDefinedItem(id, new IFC4_3.IfcLabel(v[0].value)),\n  3778827333: (id, _) => new IFC4_3.IfcPreDefinedProperties(id),\n  1775413392: (id, v) => new IFC4_3.IfcPreDefinedTextFont(id, new IFC4_3.IfcLabel(v[0].value)),\n  673634403: (id, v) => new IFC4_3.IfcProductDefinitionShape(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))),\n  2802850158: (id, v) => new IFC4_3.IfcProfileProperties(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  2598011224: (id, v) => new IFC4_3.IfcProperty(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value)),\n  1680319473: (id, v) => new IFC4_3.IfcPropertyDefinition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  148025276: (id, v) => new IFC4_3.IfcPropertyDependencyRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value)),\n  3357820518: (id, v) => new IFC4_3.IfcPropertySetDefinition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  1482703590: (id, v) => new IFC4_3.IfcPropertyTemplateDefinition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  2090586900: (id, v) => new IFC4_3.IfcQuantitySet(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  3615266464: (id, v) => new IFC4_3.IfcRectangleProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value)),\n  3413951693: (id, v) => new IFC4_3.IfcRegularTimeSeries(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new IFC4_3.IfcDateTime(v[2].value), new IFC4_3.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), new IFC4_3.IfcTimeMeasure(v[8].value), v[9].map((p) => new Handle(p.value))),\n  1580146022: (id, v) => new IFC4_3.IfcReinforcementBarProperties(id, new IFC4_3.IfcAreaMeasure(v[0].value), new IFC4_3.IfcLabel(v[1].value), v[2], !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcCountMeasure(v[5].value)),\n  478536968: (id, v) => new IFC4_3.IfcRelationship(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  2943643501: (id, v) => new IFC4_3.IfcResourceApprovalRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  1608871552: (id, v) => new IFC4_3.IfcResourceConstraintRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  1042787934: (id, v) => new IFC4_3.IfcResourceTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcDuration(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcDuration(v[8].value), !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), !v[10] ? null : new IFC4_3.IfcDateTime(v[10].value), !v[11] ? null : new IFC4_3.IfcDuration(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcDateTime(v[13].value), !v[14] ? null : new IFC4_3.IfcDateTime(v[14].value), !v[15] ? null : new IFC4_3.IfcDuration(v[15].value), !v[16] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[16].value), !v[17] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[17].value)),\n  2778083089: (id, v) => new IFC4_3.IfcRoundedRectangleProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value)),\n  2042790032: (id, v) => new IFC4_3.IfcSectionProperties(id, v[0], new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  4165799628: (id, v) => new IFC4_3.IfcSectionReinforcementProperties(id, new IFC4_3.IfcLengthMeasure(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), v[3], new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  1509187699: (id, v) => new IFC4_3.IfcSectionedSpine(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))),\n  823603102: (id, v) => new IFC4_3.IfcSegment(id, v[0]),\n  4124623270: (id, v) => new IFC4_3.IfcShellBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))),\n  3692461612: (id, v) => new IFC4_3.IfcSimpleProperty(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value)),\n  2609359061: (id, v) => new IFC4_3.IfcSlippageConnectionCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value)),\n  723233188: (id, _) => new IFC4_3.IfcSolidModel(id),\n  1595516126: (id, v) => new IFC4_3.IfcStructuralLoadLinearForce(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLinearForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLinearForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLinearForceMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLinearMomentMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcLinearMomentMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcLinearMomentMeasure(v[6].value)),\n  2668620305: (id, v) => new IFC4_3.IfcStructuralLoadPlanarForce(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcPlanarForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcPlanarForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcPlanarForceMeasure(v[3].value)),\n  2473145415: (id, v) => new IFC4_3.IfcStructuralLoadSingleDisplacement(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[6].value)),\n  1973038258: (id, v) => new IFC4_3.IfcStructuralLoadSingleDisplacementDistortion(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcCurvatureMeasure(v[7].value)),\n  1597423693: (id, v) => new IFC4_3.IfcStructuralLoadSingleForce(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcTorqueMeasure(v[6].value)),\n  1190533807: (id, v) => new IFC4_3.IfcStructuralLoadSingleForceWarping(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcTorqueMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcWarpingMomentMeasure(v[7].value)),\n  2233826070: (id, v) => new IFC4_3.IfcSubedge(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)),\n  2513912981: (id, _) => new IFC4_3.IfcSurface(id),\n  1878645084: (id, v) => new IFC4_3.IfcSurfaceStyleRendering(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : TypeInitialiser(2, v[7]), v[8]),\n  2247615214: (id, v) => new IFC4_3.IfcSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  1260650574: (id, v) => new IFC4_3.IfcSweptDiskSolid(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4_3.IfcParameterValue(v[4].value)),\n  1096409881: (id, v) => new IFC4_3.IfcSweptDiskSolidPolygonal(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4_3.IfcParameterValue(v[4].value), !v[5] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[5].value)),\n  230924584: (id, v) => new IFC4_3.IfcSweptSurface(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  3071757647: (id, v) => new IFC4_3.IfcTShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[11].value)),\n  901063453: (id, _) => new IFC4_3.IfcTessellatedItem(id),\n  4282788508: (id, v) => new IFC4_3.IfcTextLiteral(id, new IFC4_3.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2]),\n  3124975700: (id, v) => new IFC4_3.IfcTextLiteralWithExtent(id, new IFC4_3.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2], new Handle(v[3].value), new IFC4_3.IfcBoxAlignment(v[4].value)),\n  1983826977: (id, v) => new IFC4_3.IfcTextStyleFontModel(id, new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => new IFC4_3.IfcTextFontName(p.value)), !v[2] ? null : new IFC4_3.IfcFontStyle(v[2].value), !v[3] ? null : new IFC4_3.IfcFontVariant(v[3].value), !v[4] ? null : new IFC4_3.IfcFontWeight(v[4].value), TypeInitialiser(2, v[5])),\n  2715220739: (id, v) => new IFC4_3.IfcTrapeziumProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcLengthMeasure(v[6].value)),\n  1628702193: (id, v) => new IFC4_3.IfcTypeObject(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value))),\n  3736923433: (id, v) => new IFC4_3.IfcTypeProcess(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  2347495698: (id, v) => new IFC4_3.IfcTypeProduct(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value)),\n  3698973494: (id, v) => new IFC4_3.IfcTypeResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  427810014: (id, v) => new IFC4_3.IfcUShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[9].value)),\n  1417489154: (id, v) => new IFC4_3.IfcVector(id, new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value)),\n  2759199220: (id, v) => new IFC4_3.IfcVertexLoop(id, new Handle(v[0].value)),\n  2543172580: (id, v) => new IFC4_3.IfcZShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value)),\n  3406155212: (id, v) => new IFC4_3.IfcAdvancedFace(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new IFC4_3.IfcBoolean(v[2].value)),\n  669184980: (id, v) => new IFC4_3.IfcAnnotationFillArea(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value))),\n  3207858831: (id, v) => new IFC4_3.IfcAsymmetricIShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), new IFC4_3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[14].value)),\n  4261334040: (id, v) => new IFC4_3.IfcAxis1Placement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  3125803723: (id, v) => new IFC4_3.IfcAxis2Placement2D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  2740243338: (id, v) => new IFC4_3.IfcAxis2Placement3D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  3425423356: (id, v) => new IFC4_3.IfcAxis2PlacementLinear(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  2736907675: (id, v) => new IFC4_3.IfcBooleanResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)),\n  4182860854: (id, _) => new IFC4_3.IfcBoundedSurface(id),\n  2581212453: (id, v) => new IFC4_3.IfcBoundingBox(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)),\n  2713105998: (id, v) => new IFC4_3.IfcBoxedHalfSpace(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value), new Handle(v[2].value)),\n  2898889636: (id, v) => new IFC4_3.IfcCShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value)),\n  1123145078: (id, v) => new IFC4_3.IfcCartesianPoint(id, v[0].map((p) => new IFC4_3.IfcLengthMeasure(p.value))),\n  574549367: (id, _) => new IFC4_3.IfcCartesianPointList(id),\n  1675464909: (id, v) => new IFC4_3.IfcCartesianPointList2D(id, v[0].map((p) => new IFC4_3.IfcLengthMeasure(p.value)), !v[1] ? null : v[1].map((p) => new IFC4_3.IfcLabel(p.value))),\n  2059837836: (id, v) => new IFC4_3.IfcCartesianPointList3D(id, v[0].map((p) => new IFC4_3.IfcLengthMeasure(p.value)), !v[1] ? null : v[1].map((p) => new IFC4_3.IfcLabel(p.value))),\n  59481748: (id, v) => new IFC4_3.IfcCartesianTransformationOperator(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value)),\n  3749851601: (id, v) => new IFC4_3.IfcCartesianTransformationOperator2D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value)),\n  3486308946: (id, v) => new IFC4_3.IfcCartesianTransformationOperator2DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value), !v[4] ? null : new IFC4_3.IfcReal(v[4].value)),\n  3331915920: (id, v) => new IFC4_3.IfcCartesianTransformationOperator3D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  1416205885: (id, v) => new IFC4_3.IfcCartesianTransformationOperator3DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4_3.IfcReal(v[5].value), !v[6] ? null : new IFC4_3.IfcReal(v[6].value)),\n  1383045692: (id, v) => new IFC4_3.IfcCircleProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)),\n  2205249479: (id, v) => new IFC4_3.IfcClosedShell(id, v[0].map((p) => new Handle(p.value))),\n  776857604: (id, v) => new IFC4_3.IfcColourRgb(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new IFC4_3.IfcNormalisedRatioMeasure(v[1].value), new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), new IFC4_3.IfcNormalisedRatioMeasure(v[3].value)),\n  2542286263: (id, v) => new IFC4_3.IfcComplexProperty(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new IFC4_3.IfcIdentifier(v[2].value), v[3].map((p) => new Handle(p.value))),\n  2485617015: (id, v) => new IFC4_3.IfcCompositeCurveSegment(id, v[0], new IFC4_3.IfcBoolean(v[1].value), new Handle(v[2].value)),\n  2574617495: (id, v) => new IFC4_3.IfcConstructionResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value)),\n  3419103109: (id, v) => new IFC4_3.IfcContext(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)),\n  1815067380: (id, v) => new IFC4_3.IfcCrewResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  2506170314: (id, v) => new IFC4_3.IfcCsgPrimitive3D(id, new Handle(v[0].value)),\n  2147822146: (id, v) => new IFC4_3.IfcCsgSolid(id, new Handle(v[0].value)),\n  2601014836: (id, _) => new IFC4_3.IfcCurve(id),\n  2827736869: (id, v) => new IFC4_3.IfcCurveBoundedPlane(id, new Handle(v[0].value), new Handle(v[1].value), v[2].map((p) => new Handle(p.value))),\n  2629017746: (id, v) => new IFC4_3.IfcCurveBoundedSurface(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), new IFC4_3.IfcBoolean(v[2].value)),\n  4212018352: (id, v) => new IFC4_3.IfcCurveSegment(id, v[0], new Handle(v[1].value), TypeInitialiser(2, v[2]), TypeInitialiser(2, v[3]), new Handle(v[4].value)),\n  32440307: (id, v) => new IFC4_3.IfcDirection(id, v[0].map((p) => new IFC4_3.IfcReal(p.value))),\n  593015953: (id, v) => new IFC4_3.IfcDirectrixCurveSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4])),\n  1472233963: (id, v) => new IFC4_3.IfcEdgeLoop(id, v[0].map((p) => new Handle(p.value))),\n  1883228015: (id, v) => new IFC4_3.IfcElementQuantity(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))),\n  339256511: (id, v) => new IFC4_3.IfcElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  2777663545: (id, v) => new IFC4_3.IfcElementarySurface(id, new Handle(v[0].value)),\n  2835456948: (id, v) => new IFC4_3.IfcEllipseProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value)),\n  4024345920: (id, v) => new IFC4_3.IfcEventType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4_3.IfcLabel(v[11].value)),\n  477187591: (id, v) => new IFC4_3.IfcExtrudedAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)),\n  2804161546: (id, v) => new IFC4_3.IfcExtrudedAreaSolidTapered(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new Handle(v[4].value)),\n  2047409740: (id, v) => new IFC4_3.IfcFaceBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))),\n  374418227: (id, v) => new IFC4_3.IfcFillAreaStyleHatching(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), new IFC4_3.IfcPlaneAngleMeasure(v[4].value)),\n  315944413: (id, v) => new IFC4_3.IfcFillAreaStyleTiles(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value)), new IFC4_3.IfcPositiveRatioMeasure(v[2].value)),\n  2652556860: (id, v) => new IFC4_3.IfcFixedReferenceSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), new Handle(v[5].value)),\n  4238390223: (id, v) => new IFC4_3.IfcFurnishingElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  1268542332: (id, v) => new IFC4_3.IfcFurnitureType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], v[10]),\n  4095422895: (id, v) => new IFC4_3.IfcGeographicElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  987898635: (id, v) => new IFC4_3.IfcGeometricCurveSet(id, v[0].map((p) => new Handle(p.value))),\n  1484403080: (id, v) => new IFC4_3.IfcIShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[9].value)),\n  178912537: (id, v) => new IFC4_3.IfcIndexedPolygonalFace(id, v[0].map((p) => new IFC4_3.IfcPositiveInteger(p.value))),\n  2294589976: (id, v) => new IFC4_3.IfcIndexedPolygonalFaceWithVoids(id, v[0].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), v[1].map((p) => new IFC4_3.IfcPositiveInteger(p.value))),\n  3465909080: (id, v) => new IFC4_3.IfcIndexedPolygonalTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  572779678: (id, v) => new IFC4_3.IfcLShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[8].value)),\n  428585644: (id, v) => new IFC4_3.IfcLaborResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  1281925730: (id, v) => new IFC4_3.IfcLine(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1425443689: (id, v) => new IFC4_3.IfcManifoldSolidBrep(id, new Handle(v[0].value)),\n  3888040117: (id, v) => new IFC4_3.IfcObject(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  590820931: (id, v) => new IFC4_3.IfcOffsetCurve(id, new Handle(v[0].value)),\n  3388369263: (id, v) => new IFC4_3.IfcOffsetCurve2D(id, new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), new IFC4_3.IfcLogical(v[2].value)),\n  3505215534: (id, v) => new IFC4_3.IfcOffsetCurve3D(id, new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), new IFC4_3.IfcLogical(v[2].value), new Handle(v[3].value)),\n  2485787929: (id, v) => new IFC4_3.IfcOffsetCurveByDistances(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)),\n  1682466193: (id, v) => new IFC4_3.IfcPcurve(id, new Handle(v[0].value), new Handle(v[1].value)),\n  603570806: (id, v) => new IFC4_3.IfcPlanarBox(id, new IFC4_3.IfcLengthMeasure(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), new Handle(v[2].value)),\n  220341763: (id, v) => new IFC4_3.IfcPlane(id, new Handle(v[0].value)),\n  3381221214: (id, v) => new IFC4_3.IfcPolynomialCurve(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new IFC4_3.IfcReal(p.value)), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcReal(p.value)), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcReal(p.value))),\n  759155922: (id, v) => new IFC4_3.IfcPreDefinedColour(id, new IFC4_3.IfcLabel(v[0].value)),\n  2559016684: (id, v) => new IFC4_3.IfcPreDefinedCurveFont(id, new IFC4_3.IfcLabel(v[0].value)),\n  3967405729: (id, v) => new IFC4_3.IfcPreDefinedPropertySet(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  569719735: (id, v) => new IFC4_3.IfcProcedureType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2945172077: (id, v) => new IFC4_3.IfcProcess(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value)),\n  4208778838: (id, v) => new IFC4_3.IfcProduct(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  103090709: (id, v) => new IFC4_3.IfcProject(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)),\n  653396225: (id, v) => new IFC4_3.IfcProjectLibrary(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)),\n  871118103: (id, v) => new IFC4_3.IfcPropertyBoundedValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : TypeInitialiser(2, v[5])),\n  4166981789: (id, v) => new IFC4_3.IfcPropertyEnumeratedValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(2, p)), !v[3] ? null : new Handle(v[3].value)),\n  2752243245: (id, v) => new IFC4_3.IfcPropertyListValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(2, p)), !v[3] ? null : new Handle(v[3].value)),\n  941946838: (id, v) => new IFC4_3.IfcPropertyReferenceValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : new Handle(v[3].value)),\n  1451395588: (id, v) => new IFC4_3.IfcPropertySet(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))),\n  492091185: (id, v) => new IFC4_3.IfcPropertySetTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4], !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6].map((p) => new Handle(p.value))),\n  3650150729: (id, v) => new IFC4_3.IfcPropertySingleValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle(v[3].value)),\n  110355661: (id, v) => new IFC4_3.IfcPropertyTableValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(2, p)), !v[3] ? null : v[3].map((p) => TypeInitialiser(2, p)), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]),\n  3521284610: (id, v) => new IFC4_3.IfcPropertyTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  2770003689: (id, v) => new IFC4_3.IfcRectangleHollowProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value)),\n  2798486643: (id, v) => new IFC4_3.IfcRectangularPyramid(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)),\n  3454111270: (id, v) => new IFC4_3.IfcRectangularTrimmedSurface(id, new Handle(v[0].value), new IFC4_3.IfcParameterValue(v[1].value), new IFC4_3.IfcParameterValue(v[2].value), new IFC4_3.IfcParameterValue(v[3].value), new IFC4_3.IfcParameterValue(v[4].value), new IFC4_3.IfcBoolean(v[5].value), new IFC4_3.IfcBoolean(v[6].value)),\n  3765753017: (id, v) => new IFC4_3.IfcReinforcementDefinitionProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))),\n  3939117080: (id, v) => new IFC4_3.IfcRelAssigns(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5]),\n  1683148259: (id, v) => new IFC4_3.IfcRelAssignsToActor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  2495723537: (id, v) => new IFC4_3.IfcRelAssignsToControl(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  1307041759: (id, v) => new IFC4_3.IfcRelAssignsToGroup(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  1027710054: (id, v) => new IFC4_3.IfcRelAssignsToGroupByFactor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), new IFC4_3.IfcRatioMeasure(v[7].value)),\n  4278684876: (id, v) => new IFC4_3.IfcRelAssignsToProcess(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  2857406711: (id, v) => new IFC4_3.IfcRelAssignsToProduct(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  205026976: (id, v) => new IFC4_3.IfcRelAssignsToResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  1865459582: (id, v) => new IFC4_3.IfcRelAssociates(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))),\n  4095574036: (id, v) => new IFC4_3.IfcRelAssociatesApproval(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  919958153: (id, v) => new IFC4_3.IfcRelAssociatesClassification(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  2728634034: (id, v) => new IFC4_3.IfcRelAssociatesConstraint(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), new Handle(v[6].value)),\n  982818633: (id, v) => new IFC4_3.IfcRelAssociatesDocument(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  3840914261: (id, v) => new IFC4_3.IfcRelAssociatesLibrary(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  2655215786: (id, v) => new IFC4_3.IfcRelAssociatesMaterial(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  1033248425: (id, v) => new IFC4_3.IfcRelAssociatesProfileDef(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  826625072: (id, v) => new IFC4_3.IfcRelConnects(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  1204542856: (id, v) => new IFC4_3.IfcRelConnectsElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value)),\n  3945020480: (id, v) => new IFC4_3.IfcRelConnectsPathElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new IFC4_3.IfcInteger(p.value)), v[8].map((p) => new IFC4_3.IfcInteger(p.value)), v[9], v[10]),\n  4201705270: (id, v) => new IFC4_3.IfcRelConnectsPortToElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  3190031847: (id, v) => new IFC4_3.IfcRelConnectsPorts(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  2127690289: (id, v) => new IFC4_3.IfcRelConnectsStructuralActivity(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  1638771189: (id, v) => new IFC4_3.IfcRelConnectsStructuralMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4_3.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value)),\n  504942748: (id, v) => new IFC4_3.IfcRelConnectsWithEccentricity(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4_3.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value), new Handle(v[10].value)),\n  3678494232: (id, v) => new IFC4_3.IfcRelConnectsWithRealizingElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  3242617779: (id, v) => new IFC4_3.IfcRelContainedInSpatialStructure(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  886880790: (id, v) => new IFC4_3.IfcRelCoversBldgElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2802773753: (id, v) => new IFC4_3.IfcRelCoversSpaces(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2565941209: (id, v) => new IFC4_3.IfcRelDeclares(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2551354335: (id, v) => new IFC4_3.IfcRelDecomposes(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  693640335: (id, v) => new IFC4_3.IfcRelDefines(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)),\n  1462361463: (id, v) => new IFC4_3.IfcRelDefinesByObject(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  4186316022: (id, v) => new IFC4_3.IfcRelDefinesByProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  307848117: (id, v) => new IFC4_3.IfcRelDefinesByTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  781010003: (id, v) => new IFC4_3.IfcRelDefinesByType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  3940055652: (id, v) => new IFC4_3.IfcRelFillsElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  279856033: (id, v) => new IFC4_3.IfcRelFlowControlElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  427948657: (id, v) => new IFC4_3.IfcRelInterferesElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4_3.IfcIdentifier(v[8].value), new IFC4_3.IfcLogical(v[9].value)),\n  3268803585: (id, v) => new IFC4_3.IfcRelNests(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  1441486842: (id, v) => new IFC4_3.IfcRelPositions(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  750771296: (id, v) => new IFC4_3.IfcRelProjectsElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  1245217292: (id, v) => new IFC4_3.IfcRelReferencedInSpatialStructure(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  4122056220: (id, v) => new IFC4_3.IfcRelSequence(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  366585022: (id, v) => new IFC4_3.IfcRelServicesBuildings(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  3451746338: (id, v) => new IFC4_3.IfcRelSpaceBoundary(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8]),\n  3523091289: (id, v) => new IFC4_3.IfcRelSpaceBoundary1stLevel(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], !v[9] ? null : new Handle(v[9].value)),\n  1521410863: (id, v) => new IFC4_3.IfcRelSpaceBoundary2ndLevel(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  1401173127: (id, v) => new IFC4_3.IfcRelVoidsElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  816062949: (id, v) => new IFC4_3.IfcReparametrisedCompositeCurveSegment(id, v[0], new IFC4_3.IfcBoolean(v[1].value), new Handle(v[2].value), new IFC4_3.IfcParameterValue(v[3].value)),\n  2914609552: (id, v) => new IFC4_3.IfcResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value)),\n  1856042241: (id, v) => new IFC4_3.IfcRevolvedAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPlaneAngleMeasure(v[3].value)),\n  3243963512: (id, v) => new IFC4_3.IfcRevolvedAreaSolidTapered(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPlaneAngleMeasure(v[3].value), new Handle(v[4].value)),\n  4158566097: (id, v) => new IFC4_3.IfcRightCircularCone(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value)),\n  3626867408: (id, v) => new IFC4_3.IfcRightCircularCylinder(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value)),\n  1862484736: (id, v) => new IFC4_3.IfcSectionedSolid(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  1290935644: (id, v) => new IFC4_3.IfcSectionedSolidHorizontal(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))),\n  1356537516: (id, v) => new IFC4_3.IfcSectionedSurface(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))),\n  3663146110: (id, v) => new IFC4_3.IfcSimplePropertyTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4], !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new IFC4_3.IfcLabel(v[10].value), v[11]),\n  1412071761: (id, v) => new IFC4_3.IfcSpatialElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value)),\n  710998568: (id, v) => new IFC4_3.IfcSpatialElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  2706606064: (id, v) => new IFC4_3.IfcSpatialStructureElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8]),\n  3893378262: (id, v) => new IFC4_3.IfcSpatialStructureElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  463610769: (id, v) => new IFC4_3.IfcSpatialZone(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8]),\n  2481509218: (id, v) => new IFC4_3.IfcSpatialZoneType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcLabel(v[10].value)),\n  451544542: (id, v) => new IFC4_3.IfcSphere(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)),\n  4015995234: (id, v) => new IFC4_3.IfcSphericalSurface(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)),\n  2735484536: (id, v) => new IFC4_3.IfcSpiral(id, !v[0] ? null : new Handle(v[0].value)),\n  3544373492: (id, v) => new IFC4_3.IfcStructuralActivity(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  3136571912: (id, v) => new IFC4_3.IfcStructuralItem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  530289379: (id, v) => new IFC4_3.IfcStructuralMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  3689010777: (id, v) => new IFC4_3.IfcStructuralReaction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  3979015343: (id, v) => new IFC4_3.IfcStructuralSurfaceMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value)),\n  2218152070: (id, v) => new IFC4_3.IfcStructuralSurfaceMemberVarying(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value)),\n  603775116: (id, v) => new IFC4_3.IfcStructuralSurfaceReaction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9]),\n  4095615324: (id, v) => new IFC4_3.IfcSubContractResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  699246055: (id, v) => new IFC4_3.IfcSurfaceCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]),\n  2028607225: (id, v) => new IFC4_3.IfcSurfaceCurveSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), new Handle(v[5].value)),\n  2809605785: (id, v) => new IFC4_3.IfcSurfaceOfLinearExtrusion(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcLengthMeasure(v[3].value)),\n  4124788165: (id, v) => new IFC4_3.IfcSurfaceOfRevolution(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value)),\n  1580310250: (id, v) => new IFC4_3.IfcSystemFurnitureElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3473067441: (id, v) => new IFC4_3.IfcTask(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), new IFC4_3.IfcBoolean(v[9].value), !v[10] ? null : new IFC4_3.IfcInteger(v[10].value), !v[11] ? null : new Handle(v[11].value), v[12]),\n  3206491090: (id, v) => new IFC4_3.IfcTaskType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcLabel(v[10].value)),\n  2387106220: (id, v) => new IFC4_3.IfcTessellatedFaceSet(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value)),\n  782932809: (id, v) => new IFC4_3.IfcThirdOrderPolynomialSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLengthMeasure(v[4].value)),\n  1935646853: (id, v) => new IFC4_3.IfcToroidalSurface(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value)),\n  3665877780: (id, v) => new IFC4_3.IfcTransportationDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  2916149573: (id, v) => new IFC4_3.IfcTriangulatedFaceSet(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcPositiveInteger(p.value))),\n  1229763772: (id, v) => new IFC4_3.IfcTriangulatedIrregularNetwork(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), v[5].map((p) => new IFC4_3.IfcInteger(p.value))),\n  3651464721: (id, v) => new IFC4_3.IfcVehicleType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  336235671: (id, v) => new IFC4_3.IfcWindowLiningProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[11].value), !v[12] ? null : new Handle(v[12].value), !v[13] ? null : new IFC4_3.IfcLengthMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcLengthMeasure(v[14].value), !v[15] ? null : new IFC4_3.IfcLengthMeasure(v[15].value)),\n  512836454: (id, v) => new IFC4_3.IfcWindowPanelProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  2296667514: (id, v) => new IFC4_3.IfcActor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), new Handle(v[5].value)),\n  1635779807: (id, v) => new IFC4_3.IfcAdvancedBrep(id, new Handle(v[0].value)),\n  2603310189: (id, v) => new IFC4_3.IfcAdvancedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  1674181508: (id, v) => new IFC4_3.IfcAnnotation(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]),\n  2887950389: (id, v) => new IFC4_3.IfcBSplineSurface(id, new IFC4_3.IfcInteger(v[0].value), new IFC4_3.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4_3.IfcLogical(v[4].value), new IFC4_3.IfcLogical(v[5].value), new IFC4_3.IfcLogical(v[6].value)),\n  167062518: (id, v) => new IFC4_3.IfcBSplineSurfaceWithKnots(id, new IFC4_3.IfcInteger(v[0].value), new IFC4_3.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4_3.IfcLogical(v[4].value), new IFC4_3.IfcLogical(v[5].value), new IFC4_3.IfcLogical(v[6].value), v[7].map((p) => new IFC4_3.IfcInteger(p.value)), v[8].map((p) => new IFC4_3.IfcInteger(p.value)), v[9].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[10].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[11]),\n  1334484129: (id, v) => new IFC4_3.IfcBlock(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)),\n  3649129432: (id, v) => new IFC4_3.IfcBooleanClippingResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)),\n  1260505505: (id, _) => new IFC4_3.IfcBoundedCurve(id),\n  3124254112: (id, v) => new IFC4_3.IfcBuildingStorey(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcLengthMeasure(v[9].value)),\n  1626504194: (id, v) => new IFC4_3.IfcBuiltElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  2197970202: (id, v) => new IFC4_3.IfcChimneyType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2937912522: (id, v) => new IFC4_3.IfcCircleHollowProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value)),\n  3893394355: (id, v) => new IFC4_3.IfcCivilElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  3497074424: (id, v) => new IFC4_3.IfcClothoid(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value)),\n  300633059: (id, v) => new IFC4_3.IfcColumnType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3875453745: (id, v) => new IFC4_3.IfcComplexPropertyTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : v[6].map((p) => new Handle(p.value))),\n  3732776249: (id, v) => new IFC4_3.IfcCompositeCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value)),\n  15328376: (id, v) => new IFC4_3.IfcCompositeCurveOnSurface(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value)),\n  2510884976: (id, v) => new IFC4_3.IfcConic(id, new Handle(v[0].value)),\n  2185764099: (id, v) => new IFC4_3.IfcConstructionEquipmentResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  4105962743: (id, v) => new IFC4_3.IfcConstructionMaterialResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  1525564444: (id, v) => new IFC4_3.IfcConstructionProductResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  2559216714: (id, v) => new IFC4_3.IfcConstructionResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value)),\n  3293443760: (id, v) => new IFC4_3.IfcControl(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value)),\n  2000195564: (id, v) => new IFC4_3.IfcCosineSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value)),\n  3895139033: (id, v) => new IFC4_3.IfcCostItem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value))),\n  1419761937: (id, v) => new IFC4_3.IfcCostSchedule(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcDateTime(v[8].value), !v[9] ? null : new IFC4_3.IfcDateTime(v[9].value)),\n  4189326743: (id, v) => new IFC4_3.IfcCourseType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1916426348: (id, v) => new IFC4_3.IfcCoveringType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3295246426: (id, v) => new IFC4_3.IfcCrewResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  1457835157: (id, v) => new IFC4_3.IfcCurtainWallType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1213902940: (id, v) => new IFC4_3.IfcCylindricalSurface(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)),\n  1306400036: (id, v) => new IFC4_3.IfcDeepFoundationType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  4234616927: (id, v) => new IFC4_3.IfcDirectrixDerivedReferenceSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), new Handle(v[5].value)),\n  3256556792: (id, v) => new IFC4_3.IfcDistributionElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  3849074793: (id, v) => new IFC4_3.IfcDistributionFlowElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  2963535650: (id, v) => new IFC4_3.IfcDoorLiningProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new Handle(v[14].value), !v[15] ? null : new IFC4_3.IfcLengthMeasure(v[15].value), !v[16] ? null : new IFC4_3.IfcLengthMeasure(v[16].value)),\n  1714330368: (id, v) => new IFC4_3.IfcDoorPanelProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), v[5], !v[6] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)),\n  2323601079: (id, v) => new IFC4_3.IfcDoorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4_3.IfcBoolean(v[11].value), !v[12] ? null : new IFC4_3.IfcLabel(v[12].value)),\n  445594917: (id, v) => new IFC4_3.IfcDraughtingPreDefinedColour(id, new IFC4_3.IfcLabel(v[0].value)),\n  4006246654: (id, v) => new IFC4_3.IfcDraughtingPreDefinedCurveFont(id, new IFC4_3.IfcLabel(v[0].value)),\n  1758889154: (id, v) => new IFC4_3.IfcElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  4123344466: (id, v) => new IFC4_3.IfcElementAssembly(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8], v[9]),\n  2397081782: (id, v) => new IFC4_3.IfcElementAssemblyType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1623761950: (id, v) => new IFC4_3.IfcElementComponent(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  2590856083: (id, v) => new IFC4_3.IfcElementComponentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  1704287377: (id, v) => new IFC4_3.IfcEllipse(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value)),\n  2107101300: (id, v) => new IFC4_3.IfcEnergyConversionDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  132023988: (id, v) => new IFC4_3.IfcEngineType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3174744832: (id, v) => new IFC4_3.IfcEvaporativeCoolerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3390157468: (id, v) => new IFC4_3.IfcEvaporatorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  4148101412: (id, v) => new IFC4_3.IfcEvent(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), v[7], v[8], !v[9] ? null : new IFC4_3.IfcLabel(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  2853485674: (id, v) => new IFC4_3.IfcExternalSpatialStructureElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value)),\n  807026263: (id, v) => new IFC4_3.IfcFacetedBrep(id, new Handle(v[0].value)),\n  3737207727: (id, v) => new IFC4_3.IfcFacetedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  24185140: (id, v) => new IFC4_3.IfcFacility(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8]),\n  1310830890: (id, v) => new IFC4_3.IfcFacilityPart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]),\n  4228831410: (id, v) => new IFC4_3.IfcFacilityPartCommon(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]),\n  647756555: (id, v) => new IFC4_3.IfcFastener(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2489546625: (id, v) => new IFC4_3.IfcFastenerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2827207264: (id, v) => new IFC4_3.IfcFeatureElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  2143335405: (id, v) => new IFC4_3.IfcFeatureElementAddition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  1287392070: (id, v) => new IFC4_3.IfcFeatureElementSubtraction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  3907093117: (id, v) => new IFC4_3.IfcFlowControllerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  3198132628: (id, v) => new IFC4_3.IfcFlowFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  3815607619: (id, v) => new IFC4_3.IfcFlowMeterType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1482959167: (id, v) => new IFC4_3.IfcFlowMovingDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  1834744321: (id, v) => new IFC4_3.IfcFlowSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  1339347760: (id, v) => new IFC4_3.IfcFlowStorageDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  2297155007: (id, v) => new IFC4_3.IfcFlowTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  3009222698: (id, v) => new IFC4_3.IfcFlowTreatmentDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  1893162501: (id, v) => new IFC4_3.IfcFootingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  263784265: (id, v) => new IFC4_3.IfcFurnishingElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  1509553395: (id, v) => new IFC4_3.IfcFurniture(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3493046030: (id, v) => new IFC4_3.IfcGeographicElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4230923436: (id, v) => new IFC4_3.IfcGeotechnicalElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  1594536857: (id, v) => new IFC4_3.IfcGeotechnicalStratum(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2898700619: (id, v) => new IFC4_3.IfcGradientCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value), new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value)),\n  2706460486: (id, v) => new IFC4_3.IfcGroup(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  1251058090: (id, v) => new IFC4_3.IfcHeatExchangerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1806887404: (id, v) => new IFC4_3.IfcHumidifierType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2568555532: (id, v) => new IFC4_3.IfcImpactProtectionDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3948183225: (id, v) => new IFC4_3.IfcImpactProtectionDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2571569899: (id, v) => new IFC4_3.IfcIndexedPolyCurve(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => TypeInitialiser(2, p)), new IFC4_3.IfcLogical(v[2].value)),\n  3946677679: (id, v) => new IFC4_3.IfcInterceptorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3113134337: (id, v) => new IFC4_3.IfcIntersectionCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]),\n  2391368822: (id, v) => new IFC4_3.IfcInventory(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcDate(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  4288270099: (id, v) => new IFC4_3.IfcJunctionBoxType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  679976338: (id, v) => new IFC4_3.IfcKerbType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), new IFC4_3.IfcBoolean(v[9].value)),\n  3827777499: (id, v) => new IFC4_3.IfcLaborResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  1051575348: (id, v) => new IFC4_3.IfcLampType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1161773419: (id, v) => new IFC4_3.IfcLightFixtureType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2176059722: (id, v) => new IFC4_3.IfcLinearElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  1770583370: (id, v) => new IFC4_3.IfcLiquidTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  525669439: (id, v) => new IFC4_3.IfcMarineFacility(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]),\n  976884017: (id, v) => new IFC4_3.IfcMarinePart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]),\n  377706215: (id, v) => new IFC4_3.IfcMechanicalFastener(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), v[10]),\n  2108223431: (id, v) => new IFC4_3.IfcMechanicalFastenerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value)),\n  1114901282: (id, v) => new IFC4_3.IfcMedicalDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3181161470: (id, v) => new IFC4_3.IfcMemberType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1950438474: (id, v) => new IFC4_3.IfcMobileTelecommunicationsApplianceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  710110818: (id, v) => new IFC4_3.IfcMooringDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  977012517: (id, v) => new IFC4_3.IfcMotorConnectionType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  506776471: (id, v) => new IFC4_3.IfcNavigationElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  4143007308: (id, v) => new IFC4_3.IfcOccupant(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), new Handle(v[5].value), v[6]),\n  3588315303: (id, v) => new IFC4_3.IfcOpeningElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2837617999: (id, v) => new IFC4_3.IfcOutletType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  514975943: (id, v) => new IFC4_3.IfcPavementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2382730787: (id, v) => new IFC4_3.IfcPerformanceHistory(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcLabel(v[6].value), v[7]),\n  3566463478: (id, v) => new IFC4_3.IfcPermeableCoveringProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  3327091369: (id, v) => new IFC4_3.IfcPermit(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcText(v[8].value)),\n  1158309216: (id, v) => new IFC4_3.IfcPileType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  804291784: (id, v) => new IFC4_3.IfcPipeFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  4231323485: (id, v) => new IFC4_3.IfcPipeSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  4017108033: (id, v) => new IFC4_3.IfcPlateType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2839578677: (id, v) => new IFC4_3.IfcPolygonalFaceSet(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value))),\n  3724593414: (id, v) => new IFC4_3.IfcPolyline(id, v[0].map((p) => new Handle(p.value))),\n  3740093272: (id, v) => new IFC4_3.IfcPort(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  1946335990: (id, v) => new IFC4_3.IfcPositioningElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  2744685151: (id, v) => new IFC4_3.IfcProcedure(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), v[7]),\n  2904328755: (id, v) => new IFC4_3.IfcProjectOrder(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcText(v[8].value)),\n  3651124850: (id, v) => new IFC4_3.IfcProjectionElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1842657554: (id, v) => new IFC4_3.IfcProtectiveDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2250791053: (id, v) => new IFC4_3.IfcPumpType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1763565496: (id, v) => new IFC4_3.IfcRailType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2893384427: (id, v) => new IFC4_3.IfcRailingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3992365140: (id, v) => new IFC4_3.IfcRailway(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]),\n  1891881377: (id, v) => new IFC4_3.IfcRailwayPart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]),\n  2324767716: (id, v) => new IFC4_3.IfcRampFlightType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1469900589: (id, v) => new IFC4_3.IfcRampType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  683857671: (id, v) => new IFC4_3.IfcRationalBSplineSurfaceWithKnots(id, new IFC4_3.IfcInteger(v[0].value), new IFC4_3.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4_3.IfcLogical(v[4].value), new IFC4_3.IfcLogical(v[5].value), new IFC4_3.IfcLogical(v[6].value), v[7].map((p) => new IFC4_3.IfcInteger(p.value)), v[8].map((p) => new IFC4_3.IfcInteger(p.value)), v[9].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[10].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[11], v[12].map((p) => new IFC4_3.IfcReal(p.value))),\n  4021432810: (id, v) => new IFC4_3.IfcReferent(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]),\n  3027567501: (id, v) => new IFC4_3.IfcReinforcingElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  964333572: (id, v) => new IFC4_3.IfcReinforcingElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  2320036040: (id, v) => new IFC4_3.IfcReinforcingMesh(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcAreaMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[16].value), v[17]),\n  2310774935: (id, v) => new IFC4_3.IfcReinforcingMeshType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC4_3.IfcAreaMeasure(v[15].value), !v[16] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[16].value), !v[17] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[17].value), !v[18] ? null : new IFC4_3.IfcLabel(v[18].value), !v[19] ? null : v[19].map((p) => TypeInitialiser(2, p))),\n  3818125796: (id, v) => new IFC4_3.IfcRelAdheresToElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  160246688: (id, v) => new IFC4_3.IfcRelAggregates(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  146592293: (id, v) => new IFC4_3.IfcRoad(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]),\n  550521510: (id, v) => new IFC4_3.IfcRoadPart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]),\n  2781568857: (id, v) => new IFC4_3.IfcRoofType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1768891740: (id, v) => new IFC4_3.IfcSanitaryTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2157484638: (id, v) => new IFC4_3.IfcSeamCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]),\n  3649235739: (id, v) => new IFC4_3.IfcSecondOrderPolynomialSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value)),\n  544395925: (id, v) => new IFC4_3.IfcSegmentedReferenceCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value), new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value)),\n  1027922057: (id, v) => new IFC4_3.IfcSeventhOrderPolynomialSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcLengthMeasure(v[8].value)),\n  4074543187: (id, v) => new IFC4_3.IfcShadingDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  33720170: (id, v) => new IFC4_3.IfcSign(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3599934289: (id, v) => new IFC4_3.IfcSignType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1894708472: (id, v) => new IFC4_3.IfcSignalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  42703149: (id, v) => new IFC4_3.IfcSineSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value)),\n  4097777520: (id, v) => new IFC4_3.IfcSite(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcCompoundPlaneAngleMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcCompoundPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcLabel(v[12].value), !v[13] ? null : new Handle(v[13].value)),\n  2533589738: (id, v) => new IFC4_3.IfcSlabType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1072016465: (id, v) => new IFC4_3.IfcSolarDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3856911033: (id, v) => new IFC4_3.IfcSpace(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], !v[10] ? null : new IFC4_3.IfcLengthMeasure(v[10].value)),\n  1305183839: (id, v) => new IFC4_3.IfcSpaceHeaterType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3812236995: (id, v) => new IFC4_3.IfcSpaceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcLabel(v[10].value)),\n  3112655638: (id, v) => new IFC4_3.IfcStackTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1039846685: (id, v) => new IFC4_3.IfcStairFlightType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  338393293: (id, v) => new IFC4_3.IfcStairType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  682877961: (id, v) => new IFC4_3.IfcStructuralAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value)),\n  1179482911: (id, v) => new IFC4_3.IfcStructuralConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  1004757350: (id, v) => new IFC4_3.IfcStructuralCurveAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), v[10], v[11]),\n  4243806635: (id, v) => new IFC4_3.IfcStructuralCurveConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), new Handle(v[8].value)),\n  214636428: (id, v) => new IFC4_3.IfcStructuralCurveMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], new Handle(v[8].value)),\n  2445595289: (id, v) => new IFC4_3.IfcStructuralCurveMemberVarying(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], new Handle(v[8].value)),\n  2757150158: (id, v) => new IFC4_3.IfcStructuralCurveReaction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9]),\n  1807405624: (id, v) => new IFC4_3.IfcStructuralLinearAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), v[10], v[11]),\n  1252848954: (id, v) => new IFC4_3.IfcStructuralLoadGroup(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4_3.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcLabel(v[9].value)),\n  2082059205: (id, v) => new IFC4_3.IfcStructuralPointAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value)),\n  734778138: (id, v) => new IFC4_3.IfcStructuralPointConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  1235345126: (id, v) => new IFC4_3.IfcStructuralPointReaction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  2986769608: (id, v) => new IFC4_3.IfcStructuralResultGroup(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), new IFC4_3.IfcBoolean(v[7].value)),\n  3657597509: (id, v) => new IFC4_3.IfcStructuralSurfaceAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), v[10], v[11]),\n  1975003073: (id, v) => new IFC4_3.IfcStructuralSurfaceConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  148013059: (id, v) => new IFC4_3.IfcSubContractResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  3101698114: (id, v) => new IFC4_3.IfcSurfaceFeature(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2315554128: (id, v) => new IFC4_3.IfcSwitchingDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2254336722: (id, v) => new IFC4_3.IfcSystem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)),\n  413509423: (id, v) => new IFC4_3.IfcSystemFurnitureElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  5716631: (id, v) => new IFC4_3.IfcTankType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3824725483: (id, v) => new IFC4_3.IfcTendon(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcForceMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcPressureMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[14].value), !v[15] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[16].value)),\n  2347447852: (id, v) => new IFC4_3.IfcTendonAnchor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3081323446: (id, v) => new IFC4_3.IfcTendonAnchorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3663046924: (id, v) => new IFC4_3.IfcTendonConduit(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2281632017: (id, v) => new IFC4_3.IfcTendonConduitType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2415094496: (id, v) => new IFC4_3.IfcTendonType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value)),\n  618700268: (id, v) => new IFC4_3.IfcTrackElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1692211062: (id, v) => new IFC4_3.IfcTransformerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2097647324: (id, v) => new IFC4_3.IfcTransportElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1953115116: (id, v) => new IFC4_3.IfcTransportationDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  3593883385: (id, v) => new IFC4_3.IfcTrimmedCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value)), new IFC4_3.IfcBoolean(v[3].value), v[4]),\n  1600972822: (id, v) => new IFC4_3.IfcTubeBundleType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1911125066: (id, v) => new IFC4_3.IfcUnitaryEquipmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  728799441: (id, v) => new IFC4_3.IfcValveType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  840318589: (id, v) => new IFC4_3.IfcVehicle(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1530820697: (id, v) => new IFC4_3.IfcVibrationDamper(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3956297820: (id, v) => new IFC4_3.IfcVibrationDamperType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2391383451: (id, v) => new IFC4_3.IfcVibrationIsolator(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3313531582: (id, v) => new IFC4_3.IfcVibrationIsolatorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2769231204: (id, v) => new IFC4_3.IfcVirtualElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  926996030: (id, v) => new IFC4_3.IfcVoidingFeature(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1898987631: (id, v) => new IFC4_3.IfcWallType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1133259667: (id, v) => new IFC4_3.IfcWasteTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  4009809668: (id, v) => new IFC4_3.IfcWindowType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4_3.IfcBoolean(v[11].value), !v[12] ? null : new IFC4_3.IfcLabel(v[12].value)),\n  4088093105: (id, v) => new IFC4_3.IfcWorkCalendar(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value)), v[8]),\n  1028945134: (id, v) => new IFC4_3.IfcWorkControl(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcDuration(v[9].value), !v[10] ? null : new IFC4_3.IfcDuration(v[10].value), new IFC4_3.IfcDateTime(v[11].value), !v[12] ? null : new IFC4_3.IfcDateTime(v[12].value)),\n  4218914973: (id, v) => new IFC4_3.IfcWorkPlan(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcDuration(v[9].value), !v[10] ? null : new IFC4_3.IfcDuration(v[10].value), new IFC4_3.IfcDateTime(v[11].value), !v[12] ? null : new IFC4_3.IfcDateTime(v[12].value), v[13]),\n  3342526732: (id, v) => new IFC4_3.IfcWorkSchedule(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcDuration(v[9].value), !v[10] ? null : new IFC4_3.IfcDuration(v[10].value), new IFC4_3.IfcDateTime(v[11].value), !v[12] ? null : new IFC4_3.IfcDateTime(v[12].value), v[13]),\n  1033361043: (id, v) => new IFC4_3.IfcZone(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value)),\n  3821786052: (id, v) => new IFC4_3.IfcActionRequest(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcText(v[8].value)),\n  1411407467: (id, v) => new IFC4_3.IfcAirTerminalBoxType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3352864051: (id, v) => new IFC4_3.IfcAirTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1871374353: (id, v) => new IFC4_3.IfcAirToAirHeatRecoveryType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  4266260250: (id, v) => new IFC4_3.IfcAlignmentCant(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new IFC4_3.IfcPositiveLengthMeasure(v[7].value)),\n  1545765605: (id, v) => new IFC4_3.IfcAlignmentHorizontal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  317615605: (id, v) => new IFC4_3.IfcAlignmentSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value)),\n  1662888072: (id, v) => new IFC4_3.IfcAlignmentVertical(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  3460190687: (id, v) => new IFC4_3.IfcAsset(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new Handle(v[11].value), !v[12] ? null : new IFC4_3.IfcDate(v[12].value), !v[13] ? null : new Handle(v[13].value)),\n  1532957894: (id, v) => new IFC4_3.IfcAudioVisualApplianceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1967976161: (id, v) => new IFC4_3.IfcBSplineCurve(id, new IFC4_3.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4_3.IfcLogical(v[3].value), new IFC4_3.IfcLogical(v[4].value)),\n  2461110595: (id, v) => new IFC4_3.IfcBSplineCurveWithKnots(id, new IFC4_3.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4_3.IfcLogical(v[3].value), new IFC4_3.IfcLogical(v[4].value), v[5].map((p) => new IFC4_3.IfcInteger(p.value)), v[6].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[7]),\n  819618141: (id, v) => new IFC4_3.IfcBeamType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3649138523: (id, v) => new IFC4_3.IfcBearingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  231477066: (id, v) => new IFC4_3.IfcBoilerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1136057603: (id, v) => new IFC4_3.IfcBoundaryCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value)),\n  644574406: (id, v) => new IFC4_3.IfcBridge(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]),\n  963979645: (id, v) => new IFC4_3.IfcBridgePart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]),\n  4031249490: (id, v) => new IFC4_3.IfcBuilding(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcLengthMeasure(v[10].value), !v[11] ? null : new Handle(v[11].value)),\n  2979338954: (id, v) => new IFC4_3.IfcBuildingElementPart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  39481116: (id, v) => new IFC4_3.IfcBuildingElementPartType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1909888760: (id, v) => new IFC4_3.IfcBuildingElementProxyType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1177604601: (id, v) => new IFC4_3.IfcBuildingSystem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value)),\n  1876633798: (id, v) => new IFC4_3.IfcBuiltElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  3862327254: (id, v) => new IFC4_3.IfcBuiltSystem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value)),\n  2188180465: (id, v) => new IFC4_3.IfcBurnerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  395041908: (id, v) => new IFC4_3.IfcCableCarrierFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3293546465: (id, v) => new IFC4_3.IfcCableCarrierSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2674252688: (id, v) => new IFC4_3.IfcCableFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1285652485: (id, v) => new IFC4_3.IfcCableSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3203706013: (id, v) => new IFC4_3.IfcCaissonFoundationType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2951183804: (id, v) => new IFC4_3.IfcChillerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3296154744: (id, v) => new IFC4_3.IfcChimney(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2611217952: (id, v) => new IFC4_3.IfcCircle(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)),\n  1677625105: (id, v) => new IFC4_3.IfcCivilElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  2301859152: (id, v) => new IFC4_3.IfcCoilType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  843113511: (id, v) => new IFC4_3.IfcColumn(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  400855858: (id, v) => new IFC4_3.IfcCommunicationsApplianceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3850581409: (id, v) => new IFC4_3.IfcCompressorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2816379211: (id, v) => new IFC4_3.IfcCondenserType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3898045240: (id, v) => new IFC4_3.IfcConstructionEquipmentResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  1060000209: (id, v) => new IFC4_3.IfcConstructionMaterialResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  488727124: (id, v) => new IFC4_3.IfcConstructionProductResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  2940368186: (id, v) => new IFC4_3.IfcConveyorSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  335055490: (id, v) => new IFC4_3.IfcCooledBeamType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2954562838: (id, v) => new IFC4_3.IfcCoolingTowerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1502416096: (id, v) => new IFC4_3.IfcCourse(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1973544240: (id, v) => new IFC4_3.IfcCovering(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3495092785: (id, v) => new IFC4_3.IfcCurtainWall(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3961806047: (id, v) => new IFC4_3.IfcDamperType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3426335179: (id, v) => new IFC4_3.IfcDeepFoundation(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  1335981549: (id, v) => new IFC4_3.IfcDiscreteAccessory(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2635815018: (id, v) => new IFC4_3.IfcDiscreteAccessoryType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  479945903: (id, v) => new IFC4_3.IfcDistributionBoardType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1599208980: (id, v) => new IFC4_3.IfcDistributionChamberElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2063403501: (id, v) => new IFC4_3.IfcDistributionControlElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)),\n  1945004755: (id, v) => new IFC4_3.IfcDistributionElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  3040386961: (id, v) => new IFC4_3.IfcDistributionFlowElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  3041715199: (id, v) => new IFC4_3.IfcDistributionPort(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], v[9]),\n  3205830791: (id, v) => new IFC4_3.IfcDistributionSystem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), v[6]),\n  395920057: (id, v) => new IFC4_3.IfcDoor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4_3.IfcLabel(v[12].value)),\n  869906466: (id, v) => new IFC4_3.IfcDuctFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3760055223: (id, v) => new IFC4_3.IfcDuctSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2030761528: (id, v) => new IFC4_3.IfcDuctSilencerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3071239417: (id, v) => new IFC4_3.IfcEarthworksCut(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1077100507: (id, v) => new IFC4_3.IfcEarthworksElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  3376911765: (id, v) => new IFC4_3.IfcEarthworksFill(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  663422040: (id, v) => new IFC4_3.IfcElectricApplianceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2417008758: (id, v) => new IFC4_3.IfcElectricDistributionBoardType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3277789161: (id, v) => new IFC4_3.IfcElectricFlowStorageDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2142170206: (id, v) => new IFC4_3.IfcElectricFlowTreatmentDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1534661035: (id, v) => new IFC4_3.IfcElectricGeneratorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1217240411: (id, v) => new IFC4_3.IfcElectricMotorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  712377611: (id, v) => new IFC4_3.IfcElectricTimeControlType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1658829314: (id, v) => new IFC4_3.IfcEnergyConversionDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  2814081492: (id, v) => new IFC4_3.IfcEngine(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3747195512: (id, v) => new IFC4_3.IfcEvaporativeCooler(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  484807127: (id, v) => new IFC4_3.IfcEvaporator(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1209101575: (id, v) => new IFC4_3.IfcExternalSpatialElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8]),\n  346874300: (id, v) => new IFC4_3.IfcFanType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1810631287: (id, v) => new IFC4_3.IfcFilterType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  4222183408: (id, v) => new IFC4_3.IfcFireSuppressionTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2058353004: (id, v) => new IFC4_3.IfcFlowController(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  4278956645: (id, v) => new IFC4_3.IfcFlowFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  4037862832: (id, v) => new IFC4_3.IfcFlowInstrumentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  2188021234: (id, v) => new IFC4_3.IfcFlowMeter(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3132237377: (id, v) => new IFC4_3.IfcFlowMovingDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  987401354: (id, v) => new IFC4_3.IfcFlowSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  707683696: (id, v) => new IFC4_3.IfcFlowStorageDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  2223149337: (id, v) => new IFC4_3.IfcFlowTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  3508470533: (id, v) => new IFC4_3.IfcFlowTreatmentDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  900683007: (id, v) => new IFC4_3.IfcFooting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2713699986: (id, v) => new IFC4_3.IfcGeotechnicalAssembly(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  3009204131: (id, v) => new IFC4_3.IfcGrid(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), v[8].map((p) => new Handle(p.value)), !v[9] ? null : v[9].map((p) => new Handle(p.value)), v[10]),\n  3319311131: (id, v) => new IFC4_3.IfcHeatExchanger(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2068733104: (id, v) => new IFC4_3.IfcHumidifier(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4175244083: (id, v) => new IFC4_3.IfcInterceptor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2176052936: (id, v) => new IFC4_3.IfcJunctionBox(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2696325953: (id, v) => new IFC4_3.IfcKerb(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), new IFC4_3.IfcBoolean(v[8].value)),\n  76236018: (id, v) => new IFC4_3.IfcLamp(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  629592764: (id, v) => new IFC4_3.IfcLightFixture(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1154579445: (id, v) => new IFC4_3.IfcLinearPositioningElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  1638804497: (id, v) => new IFC4_3.IfcLiquidTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1437502449: (id, v) => new IFC4_3.IfcMedicalDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1073191201: (id, v) => new IFC4_3.IfcMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2078563270: (id, v) => new IFC4_3.IfcMobileTelecommunicationsAppliance(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  234836483: (id, v) => new IFC4_3.IfcMooringDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2474470126: (id, v) => new IFC4_3.IfcMotorConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2182337498: (id, v) => new IFC4_3.IfcNavigationElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  144952367: (id, v) => new IFC4_3.IfcOuterBoundaryCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value)),\n  3694346114: (id, v) => new IFC4_3.IfcOutlet(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1383356374: (id, v) => new IFC4_3.IfcPavement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1687234759: (id, v) => new IFC4_3.IfcPile(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8], v[9]),\n  310824031: (id, v) => new IFC4_3.IfcPipeFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3612865200: (id, v) => new IFC4_3.IfcPipeSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3171933400: (id, v) => new IFC4_3.IfcPlate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  738039164: (id, v) => new IFC4_3.IfcProtectiveDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  655969474: (id, v) => new IFC4_3.IfcProtectiveDeviceTrippingUnitType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  90941305: (id, v) => new IFC4_3.IfcPump(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3290496277: (id, v) => new IFC4_3.IfcRail(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2262370178: (id, v) => new IFC4_3.IfcRailing(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3024970846: (id, v) => new IFC4_3.IfcRamp(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3283111854: (id, v) => new IFC4_3.IfcRampFlight(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1232101972: (id, v) => new IFC4_3.IfcRationalBSplineCurveWithKnots(id, new IFC4_3.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4_3.IfcLogical(v[3].value), new IFC4_3.IfcLogical(v[4].value), v[5].map((p) => new IFC4_3.IfcInteger(p.value)), v[6].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[7], v[8].map((p) => new IFC4_3.IfcReal(p.value))),\n  3798194928: (id, v) => new IFC4_3.IfcReinforcedSoil(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  979691226: (id, v) => new IFC4_3.IfcReinforcingBar(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcAreaMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value), v[12], v[13]),\n  2572171363: (id, v) => new IFC4_3.IfcReinforcingBarType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value), v[13], !v[14] ? null : new IFC4_3.IfcLabel(v[14].value), !v[15] ? null : v[15].map((p) => TypeInitialiser(2, p))),\n  2016517767: (id, v) => new IFC4_3.IfcRoof(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3053780830: (id, v) => new IFC4_3.IfcSanitaryTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1783015770: (id, v) => new IFC4_3.IfcSensorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1329646415: (id, v) => new IFC4_3.IfcShadingDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  991950508: (id, v) => new IFC4_3.IfcSignal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1529196076: (id, v) => new IFC4_3.IfcSlab(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3420628829: (id, v) => new IFC4_3.IfcSolarDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1999602285: (id, v) => new IFC4_3.IfcSpaceHeater(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1404847402: (id, v) => new IFC4_3.IfcStackTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  331165859: (id, v) => new IFC4_3.IfcStair(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4252922144: (id, v) => new IFC4_3.IfcStairFlight(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcInteger(v[8].value), !v[9] ? null : new IFC4_3.IfcInteger(v[9].value), !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value), v[12]),\n  2515109513: (id, v) => new IFC4_3.IfcStructuralAnalysisModel(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value)),\n  385403989: (id, v) => new IFC4_3.IfcStructuralLoadCase(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4_3.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcLabel(v[9].value), !v[10] ? null : v[10].map((p) => new IFC4_3.IfcRatioMeasure(p.value))),\n  1621171031: (id, v) => new IFC4_3.IfcStructuralPlanarAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), v[10], v[11]),\n  1162798199: (id, v) => new IFC4_3.IfcSwitchingDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  812556717: (id, v) => new IFC4_3.IfcTank(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3425753595: (id, v) => new IFC4_3.IfcTrackElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3825984169: (id, v) => new IFC4_3.IfcTransformer(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1620046519: (id, v) => new IFC4_3.IfcTransportElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3026737570: (id, v) => new IFC4_3.IfcTubeBundle(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3179687236: (id, v) => new IFC4_3.IfcUnitaryControlElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  4292641817: (id, v) => new IFC4_3.IfcUnitaryEquipment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4207607924: (id, v) => new IFC4_3.IfcValve(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2391406946: (id, v) => new IFC4_3.IfcWall(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3512223829: (id, v) => new IFC4_3.IfcWallStandardCase(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4237592921: (id, v) => new IFC4_3.IfcWasteTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3304561284: (id, v) => new IFC4_3.IfcWindow(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4_3.IfcLabel(v[12].value)),\n  2874132201: (id, v) => new IFC4_3.IfcActuatorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  1634111441: (id, v) => new IFC4_3.IfcAirTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  177149247: (id, v) => new IFC4_3.IfcAirTerminalBox(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2056796094: (id, v) => new IFC4_3.IfcAirToAirHeatRecovery(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3001207471: (id, v) => new IFC4_3.IfcAlarmType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  325726236: (id, v) => new IFC4_3.IfcAlignment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]),\n  277319702: (id, v) => new IFC4_3.IfcAudioVisualAppliance(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  753842376: (id, v) => new IFC4_3.IfcBeam(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4196446775: (id, v) => new IFC4_3.IfcBearing(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  32344328: (id, v) => new IFC4_3.IfcBoiler(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3314249567: (id, v) => new IFC4_3.IfcBorehole(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  1095909175: (id, v) => new IFC4_3.IfcBuildingElementProxy(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2938176219: (id, v) => new IFC4_3.IfcBurner(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  635142910: (id, v) => new IFC4_3.IfcCableCarrierFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3758799889: (id, v) => new IFC4_3.IfcCableCarrierSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1051757585: (id, v) => new IFC4_3.IfcCableFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4217484030: (id, v) => new IFC4_3.IfcCableSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3999819293: (id, v) => new IFC4_3.IfcCaissonFoundation(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3902619387: (id, v) => new IFC4_3.IfcChiller(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  639361253: (id, v) => new IFC4_3.IfcCoil(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3221913625: (id, v) => new IFC4_3.IfcCommunicationsAppliance(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3571504051: (id, v) => new IFC4_3.IfcCompressor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2272882330: (id, v) => new IFC4_3.IfcCondenser(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  578613899: (id, v) => new IFC4_3.IfcControllerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]),\n  3460952963: (id, v) => new IFC4_3.IfcConveyorSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4136498852: (id, v) => new IFC4_3.IfcCooledBeam(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3640358203: (id, v) => new IFC4_3.IfcCoolingTower(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4074379575: (id, v) => new IFC4_3.IfcDamper(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3693000487: (id, v) => new IFC4_3.IfcDistributionBoard(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1052013943: (id, v) => new IFC4_3.IfcDistributionChamberElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  562808652: (id, v) => new IFC4_3.IfcDistributionCircuit(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), v[6]),\n  1062813311: (id, v) => new IFC4_3.IfcDistributionControlElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  342316401: (id, v) => new IFC4_3.IfcDuctFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3518393246: (id, v) => new IFC4_3.IfcDuctSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1360408905: (id, v) => new IFC4_3.IfcDuctSilencer(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1904799276: (id, v) => new IFC4_3.IfcElectricAppliance(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  862014818: (id, v) => new IFC4_3.IfcElectricDistributionBoard(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3310460725: (id, v) => new IFC4_3.IfcElectricFlowStorageDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  24726584: (id, v) => new IFC4_3.IfcElectricFlowTreatmentDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  264262732: (id, v) => new IFC4_3.IfcElectricGenerator(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  402227799: (id, v) => new IFC4_3.IfcElectricMotor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1003880860: (id, v) => new IFC4_3.IfcElectricTimeControl(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3415622556: (id, v) => new IFC4_3.IfcFan(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  819412036: (id, v) => new IFC4_3.IfcFilter(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  1426591983: (id, v) => new IFC4_3.IfcFireSuppressionTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  182646315: (id, v) => new IFC4_3.IfcFlowInstrument(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  2680139844: (id, v) => new IFC4_3.IfcGeomodel(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  1971632696: (id, v) => new IFC4_3.IfcGeoslice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)),\n  2295281155: (id, v) => new IFC4_3.IfcProtectiveDeviceTrippingUnit(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4086658281: (id, v) => new IFC4_3.IfcSensor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  630975310: (id, v) => new IFC4_3.IfcUnitaryControlElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  4288193352: (id, v) => new IFC4_3.IfcActuator(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  3087945054: (id, v) => new IFC4_3.IfcAlarm(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]),\n  25142252: (id, v) => new IFC4_3.IfcController(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8])\n};\nInheritanceDef[2] = {\n  618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],\n  2879124712: [IFCALIGNMENTHORIZONTALSEGMENT, IFCALIGNMENTCANTSEGMENT, IFCALIGNMENTVERTICALSEGMENT],\n  411424972: [IFCCOSTVALUE],\n  4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],\n  1387855156: [IFCBOUNDARYNODECONDITIONWARPING],\n  2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],\n  2614616156: [IFCCONNECTIONPOINTECCENTRICITY],\n  1959218052: [IFCOBJECTIVE, IFCMETRIC],\n  1785450214: [IFCMAPCONVERSION],\n  1466758467: [IFCPROJECTEDCRS],\n  4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION],\n  3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],\n  760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER],\n  248100487: [IFCMATERIALLAYERWITHOFFSETS],\n  2235152071: [IFCMATERIALPROFILEWITHOFFSETS],\n  1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE],\n  1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],\n  3701648758: [IFCLOCALPLACEMENT, IFCLINEARPLACEMENT, IFCGRIDPLACEMENT],\n  2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],\n  2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],\n  677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING],\n  2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],\n  3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE],\n  2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],\n  3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCOPENCROSSPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],\n  986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION],\n  1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],\n  3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],\n  3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM],\n  2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP],\n  2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION],\n  1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME],\n  3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],\n  2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],\n  2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION],\n  609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],\n  2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],\n  2830218821: [IFCSTYLEDREPRESENTATION],\n  846575682: [IFCSURFACESTYLERENDERING],\n  626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],\n  1549132990: [IFCTASKTIMERECURRING],\n  280115917: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],\n  222769930: [IFCTEXTURECOORDINATEINDICESWITHVOIDS],\n  3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],\n  1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],\n  2799835756: [IFCVERTEXPOINT],\n  3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],\n  1310608509: [IFCCENTERLINEPROFILEDEF],\n  3264961684: [IFCCOLOURRGB],\n  370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],\n  2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET],\n  3632507154: [IFCMIRROREDPROFILEDEF],\n  3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],\n  297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES],\n  2556980723: [IFCADVANCEDFACE, IFCFACESURFACE],\n  1809719519: [IFCFACEOUTERBOUND],\n  3008276851: [IFCADVANCEDFACE],\n  3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],\n  2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],\n  3590301190: [IFCGEOMETRICCURVESET],\n  812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],\n  1437953363: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP],\n  1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],\n  1520743889: [IFCLIGHTSOURCESPOT],\n  1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],\n  3079605661: [IFCMATERIALPROFILESETUSAGETAPERING],\n  219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT],\n  2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],\n  2004835150: [IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],\n  1663979128: [IFCPLANARBOX],\n  2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION],\n  3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT],\n  3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES],\n  1775413392: [IFCTEXTSTYLEFONTMODEL],\n  2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],\n  1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION],\n  3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET],\n  1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE],\n  2090586900: [IFCELEMENTQUANTITY],\n  3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],\n  478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],\n  823603102: [IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT],\n  3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],\n  723233188: [IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID],\n  2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],\n  1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],\n  2513912981: [IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],\n  2247615214: [IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID],\n  1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL],\n  230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],\n  901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE],\n  4282788508: [IFCTEXTLITERALWITHEXTENT],\n  1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS],\n  3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE],\n  2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE],\n  3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE],\n  2736907675: [IFCBOOLEANCLIPPINGRESULT],\n  4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE],\n  574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D],\n  59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],\n  3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],\n  3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],\n  1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],\n  2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT],\n  2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE],\n  3419103109: [IFCPROJECTLIBRARY, IFCPROJECT],\n  2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],\n  2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE],\n  593015953: [IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID],\n  339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],\n  2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE],\n  477187591: [IFCEXTRUDEDAREASOLIDTAPERED],\n  2652556860: [IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID],\n  4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],\n  178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS],\n  1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP],\n  3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS],\n  590820931: [IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D],\n  759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],\n  2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],\n  3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES],\n  2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK],\n  4208778838: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT],\n  3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE],\n  3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR],\n  1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR],\n  1865459582: [IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL],\n  826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],\n  1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],\n  1638771189: [IFCRELCONNECTSWITHECCENTRICITY],\n  2551354335: [IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS],\n  693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT],\n  3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL],\n  3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL],\n  2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],\n  1856042241: [IFCREVOLVEDAREASOLIDTAPERED],\n  1862484736: [IFCSECTIONEDSOLIDHORIZONTAL],\n  1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT],\n  710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE],\n  2706606064: [IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY],\n  3893378262: [IFCSPACETYPE],\n  2735484536: [IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL],\n  3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION],\n  3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],\n  530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],\n  3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION],\n  3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],\n  699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE],\n  2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET],\n  3665877780: [IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE],\n  2916149573: [IFCTRIANGULATEDIRREGULARNETWORK],\n  2296667514: [IFCOCCUPANT],\n  1635779807: [IFCADVANCEDBREPWITHVOIDS],\n  2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS],\n  167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS],\n  1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE],\n  1626504194: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE],\n  3732776249: [IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE],\n  15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE],\n  2510884976: [IFCCIRCLE, IFCELLIPSE],\n  2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],\n  3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM],\n  1306400036: [IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE],\n  3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],\n  3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE],\n  1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],\n  1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER],\n  2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE],\n  2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE],\n  2853485674: [IFCEXTERNALSPATIALELEMENT],\n  807026263: [IFCFACETEDBREPWITHVOIDS],\n  24185140: [IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY],\n  1310830890: [IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON],\n  2827207264: [IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],\n  2143335405: [IFCPROJECTIONELEMENT],\n  1287392070: [IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT],\n  3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],\n  3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],\n  1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],\n  1834744321: [IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],\n  1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],\n  2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE],\n  3009222698: [IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE],\n  263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE],\n  4230923436: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM],\n  2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],\n  2176059722: [IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT],\n  3740093272: [IFCDISTRIBUTIONPORT],\n  1946335990: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT],\n  3027567501: [IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],\n  964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE],\n  682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION],\n  1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],\n  1004757350: [IFCSTRUCTURALLINEARACTION],\n  214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],\n  1252848954: [IFCSTRUCTURALLOADCASE],\n  3657597509: [IFCSTRUCTURALPLANARACTION],\n  2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE],\n  1953115116: [IFCTRANSPORTELEMENT, IFCVEHICLE],\n  1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],\n  1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS],\n  2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS],\n  1136057603: [IFCOUTERBOUNDARYCURVE],\n  1876633798: [IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY],\n  3426335179: [IFCCAISSONFOUNDATION, IFCPILE],\n  2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE],\n  1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],\n  3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE],\n  3205830791: [IFCDISTRIBUTIONCIRCUIT],\n  1077100507: [IFCREINFORCEDSOIL, IFCEARTHWORKSFILL],\n  1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE],\n  2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER],\n  4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX],\n  3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP],\n  987401354: [IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT],\n  707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK],\n  2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP],\n  3508470533: [IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR],\n  2713699986: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE],\n  1154579445: [IFCALIGNMENT],\n  2391406946: [IFCWALLSTANDARDCASE],\n  1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT]\n};\nInversePropertyDef[2] = {\n  3630933823: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  618182010: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  411424972: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  130549933: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"ApprovedObjects\", IFCRELASSOCIATESAPPROVAL, 5, true], [\"ApprovedResources\", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], [\"IsRelatedWith\", IFCAPPROVALRELATIONSHIP, 3, true], [\"Relates\", IFCAPPROVALRELATIONSHIP, 2, true]],\n  1959218052: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n  1466758467: [[\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n  602808272: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  3200245327: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n  2242383968: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n  1040185647: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n  3548104201: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n  852622518: [[\"PartOfW\", IFCGRID, 9, true], [\"PartOfV\", IFCGRID, 8, true], [\"PartOfU\", IFCGRID, 7, true], [\"HasIntersections\", IFCVIRTUALGRIDINTERSECTION, 0, true]],\n  2655187982: [[\"LibraryInfoForObjects\", IFCRELASSOCIATESLIBRARY, 5, true], [\"HasLibraryReferences\", IFCLIBRARYREFERENCE, 5, true]],\n  3452421091: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"LibraryRefForObjects\", IFCRELASSOCIATESLIBRARY, 5, true]],\n  760658860: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n  248100487: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n  3303938423: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n  1847252529: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n  2235152071: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialProfileSet\", IFCMATERIALPROFILESET, 2, false]],\n  164193824: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n  552965576: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialProfileSet\", IFCMATERIALPROFILESET, 2, false]],\n  1507914824: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n  3368373690: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n  3701648758: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCOBJECTPLACEMENT, 0, true]],\n  2251480897: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n  4251960020: [[\"IsRelatedBy\", IFCORGANIZATIONRELATIONSHIP, 3, true], [\"Relates\", IFCORGANIZATIONRELATIONSHIP, 2, true], [\"Engages\", IFCPERSONANDORGANIZATION, 1, true]],\n  2077209135: [[\"EngagedIn\", IFCPERSONANDORGANIZATION, 0, true]],\n  2483315170: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2226359599: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  3355820592: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  3958567839: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  3843373140: [[\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n  986844984: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  3710013099: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2044713172: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2093928680: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  931644368: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2691318326: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  3252649465: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2405470396: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  825690147: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  1076942058: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  3377609919: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true]],\n  3008791417: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1660063152: [[\"HasShapeAspects\", IFCSHAPEASPECT, 4, true], [\"MapUsage\", IFCMAPPEDITEM, 0, true]],\n  867548509: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  3982875396: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  4240577450: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  2830218821: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  3958052878: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3049322572: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  626085974: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n  912023232: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  222769930: [[\"ToTexMap\", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]],\n  1010789467: [[\"ToTexMap\", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]],\n  3101149627: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  1377556343: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1735638870: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  2799835756: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1907098498: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3798115385: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1310608509: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2705031697: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  616511568: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n  3150382593: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  747523909: [[\"ClassificationForObjects\", IFCRELASSOCIATESCLASSIFICATION, 5, true], [\"HasReferences\", IFCCLASSIFICATIONREFERENCE, 3, true]],\n  647927063: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"ClassificationRefForObjects\", IFCRELASSOCIATESCLASSIFICATION, 5, true], [\"HasReferences\", IFCCLASSIFICATIONREFERENCE, 3, true]],\n  1485152156: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  370225590: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3050246964: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2889183280: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2713554722: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  3632507154: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1154170062: [[\"DocumentInfoForObjects\", IFCRELASSOCIATESDOCUMENT, 5, true], [\"HasDocumentReferences\", IFCDOCUMENTREFERENCE, 4, true], [\"IsPointedTo\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], [\"IsPointer\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]],\n  3732053477: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"DocumentRefForObjects\", IFCRELASSOCIATESDOCUMENT, 5, true]],\n  3900360178: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  476780140: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  297599258: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2556980723: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n  1809719519: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  803316827: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3008276851: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n  3448662350: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], [\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n  2453401579: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4142052618: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], [\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n  3590301190: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  178086475: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCOBJECTPLACEMENT, 0, true]],\n  812098782: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3905492369: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n  3741457305: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  1402838566: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  125510826: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2604431987: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4266656042: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1520743889: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3422422726: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  388784114: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCOBJECTPLACEMENT, 0, true]],\n  2624227202: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCOBJECTPLACEMENT, 0, true]],\n  1008929658: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2347385850: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1838606355: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"HasRepresentation\", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], [\"IsRelatedWith\", IFCMATERIALRELATIONSHIP, 3, true], [\"RelatesTo\", IFCMATERIALRELATIONSHIP, 2, true]],\n  3708119e3: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialConstituentSet\", IFCMATERIALCONSTITUENTSET, 2, false]],\n  2852063980: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n  1303795690: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n  3079605661: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n  3404854881: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n  3265635763: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2998442950: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  219451334: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n  182550632: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2665983363: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1029017970: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2529465313: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2519244187: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3021840470: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  597895409: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n  2004835150: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1663979128: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2067069095: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2165702409: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4022376103: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1423911732: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2924175390: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2775532180: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3778827333: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  673634403: [[\"ShapeOfProduct\", IFCPRODUCT, 6, true], [\"HasShapeAspects\", IFCSHAPEASPECT, 4, true]],\n  2802850158: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2598011224: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  1680319473: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n  3357820518: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  1482703590: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n  2090586900: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  3615266464: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  3413951693: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  1580146022: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2778083089: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2042790032: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  4165799628: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  1509187699: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  823603102: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n  4124623270: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3692461612: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  723233188: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2233826070: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2513912981: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2247615214: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1260650574: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1096409881: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  230924584: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3071757647: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  901063453: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4282788508: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3124975700: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2715220739: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1628702193: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true]],\n  3736923433: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2347495698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3698973494: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  427810014: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1417489154: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2759199220: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2543172580: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  3406155212: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n  669184980: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3207858831: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  4261334040: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3125803723: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2740243338: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3425423356: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2736907675: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4182860854: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2581212453: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2713105998: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2898889636: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1123145078: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  574549367: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1675464909: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2059837836: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  59481748: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3749851601: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3486308946: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3331915920: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1416205885: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1383045692: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2205249479: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2542286263: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  2485617015: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n  2574617495: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  3419103109: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n  1815067380: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  2506170314: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2147822146: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2601014836: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2827736869: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2629017746: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4212018352: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n  32440307: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  593015953: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1472233963: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1883228015: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  339256511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2777663545: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2835456948: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  4024345920: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  477187591: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2804161546: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2047409740: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  374418227: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  315944413: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2652556860: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4238390223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1268542332: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4095422895: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  987898635: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1484403080: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  178912537: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"ToFaceSet\", IFCPOLYGONALFACESET, 2, true], [\"HasTexCoords\", IFCTEXTURECOORDINATEINDICES, 1, true]],\n  2294589976: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"ToFaceSet\", IFCPOLYGONALFACESET, 2, true], [\"HasTexCoords\", IFCTEXTURECOORDINATEINDICES, 1, true]],\n  572779678: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  428585644: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1281925730: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1425443689: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3888040117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true]],\n  590820931: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3388369263: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3505215534: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2485787929: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1682466193: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  603570806: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  220341763: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3381221214: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3967405729: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  569719735: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2945172077: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  4208778838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  103090709: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n  653396225: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n  871118103: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  4166981789: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  2752243245: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  941946838: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  1451395588: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  492091185: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Defines\", IFCRELDEFINESBYTEMPLATE, 5, true]],\n  3650150729: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  110355661: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  3521284610: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n  2770003689: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2798486643: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3454111270: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3765753017: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  3523091289: [[\"InnerBoundaries\", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]],\n  1521410863: [[\"InnerBoundaries\", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], [\"Corresponds\", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]],\n  816062949: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n  2914609552: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1856042241: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3243963512: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4158566097: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3626867408: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1862484736: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1290935644: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1356537516: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3663146110: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n  1412071761: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  710998568: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2706606064: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  3893378262: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  463610769: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  2481509218: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  451544542: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4015995234: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2735484536: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3544373492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  3136571912: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],\n  530289379: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  3689010777: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  3979015343: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  2218152070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  603775116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  4095615324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  699246055: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2028607225: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2809605785: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4124788165: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1580310250: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3473067441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  3206491090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2387106220: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n  782932809: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1935646853: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3665877780: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2916149573: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n  1229763772: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n  3651464721: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  336235671: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  512836454: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  2296667514: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n  1635779807: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2603310189: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1674181508: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2887950389: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  167062518: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1334484129: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3649129432: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1260505505: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3124254112: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  1626504194: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2197970202: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2937912522: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  3893394355: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3497074424: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  300633059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3875453745: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n  3732776249: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  15328376: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2510884976: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2185764099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  4105962743: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1525564444: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  2559216714: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  3293443760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  2000195564: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3895139033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1419761937: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  4189326743: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1916426348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3295246426: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1457835157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1213902940: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1306400036: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4234616927: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3256556792: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3849074793: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2963535650: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  1714330368: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  2323601079: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1758889154: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  4123344466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2397081782: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1623761950: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2590856083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1704287377: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2107101300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  132023988: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3174744832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3390157468: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4148101412: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2853485674: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  807026263: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3737207727: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  24185140: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  1310830890: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  4228831410: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  647756555: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2489546625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2827207264: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2143335405: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n  1287392070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  3907093117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3198132628: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3815607619: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1482959167: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1834744321: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1339347760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2297155007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3009222698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1893162501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  263784265: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1509553395: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3493046030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  4230923436: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1594536857: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2898700619: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2706460486: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  1251058090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1806887404: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2568555532: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3948183225: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2571569899: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3946677679: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3113134337: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2391368822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  4288270099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  679976338: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3827777499: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1051575348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1161773419: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2176059722: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  1770583370: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  525669439: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  976884017: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  377706215: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2108223431: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1114901282: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3181161470: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1950438474: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  710110818: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  977012517: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  506776471: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4143007308: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n  3588315303: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false], [\"HasFillings\", IFCRELFILLSELEMENT, 4, true]],\n  2837617999: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  514975943: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2382730787: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3566463478: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  3327091369: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1158309216: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  804291784: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4231323485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4017108033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2839578677: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n  3724593414: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3740093272: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, true], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n  1946335990: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n  2744685151: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2904328755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3651124850: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n  1842657554: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2250791053: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1763565496: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2893384427: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3992365140: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  1891881377: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  2324767716: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1469900589: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  683857671: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4021432810: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n  3027567501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  964333572: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2320036040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2310774935: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  146592293: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  550521510: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  2781568857: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1768891740: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2157484638: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3649235739: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  544395925: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1027922057: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4074543187: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  33720170: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3599934289: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1894708472: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  42703149: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4097777520: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  2533589738: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1072016465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3856911033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasCoverings\", IFCRELCOVERSSPACES, 4, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n  1305183839: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3812236995: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3112655638: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1039846685: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  338393293: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  682877961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1179482911: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  1004757350: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  4243806635: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  214636428: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  2445595289: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  2757150158: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1807405624: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1252848954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n  2082059205: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  734778138: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  1235345126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  2986769608: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ResultGroupFor\", IFCSTRUCTURALANALYSISMODEL, 8, true]],\n  3657597509: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1975003073: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  148013059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  3101698114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"AdheresToElement\", IFCRELADHERESTOELEMENT, 5, false]],\n  2315554128: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2254336722: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  413509423: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  5716631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3824725483: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2347447852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3081323446: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3663046924: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2281632017: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2415094496: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  618700268: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1692211062: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2097647324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1953115116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3593883385: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1600972822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1911125066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  728799441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  840318589: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1530820697: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3956297820: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2391383451: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3313531582: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2769231204: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  926996030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  1898987631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1133259667: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4009809668: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4088093105: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1028945134: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  4218914973: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3342526732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1033361043: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  3821786052: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1411407467: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3352864051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1871374353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4266260250: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  1545765605: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  317615605: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  1662888072: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  3460190687: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  1532957894: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1967976161: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2461110595: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  819618141: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3649138523: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  231477066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1136057603: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  644574406: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  963979645: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  4031249490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n  2979338954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  39481116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1909888760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1177604601: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  1876633798: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3862327254: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  2188180465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  395041908: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3293546465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2674252688: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1285652485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3203706013: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2951183804: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3296154744: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2611217952: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1677625105: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2301859152: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  843113511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  400855858: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3850581409: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2816379211: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3898045240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1060000209: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  488727124: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  2940368186: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  335055490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2954562838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1502416096: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1973544240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"CoversSpaces\", IFCRELCOVERSSPACES, 5, true], [\"CoversElements\", IFCRELCOVERSBLDGELEMENTS, 5, true]],\n  3495092785: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3961806047: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3426335179: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1335981549: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2635815018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  479945903: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1599208980: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2063403501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1945004755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true]],\n  3040386961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3041715199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, true], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n  3205830791: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  395920057: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  869906466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3760055223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2030761528: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3071239417: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  1077100507: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3376911765: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  663422040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2417008758: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3277789161: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2142170206: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1534661035: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1217240411: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  712377611: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1658829314: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2814081492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3747195512: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  484807127: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1209101575: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n  346874300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1810631287: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4222183408: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2058353004: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4278956645: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4037862832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2188021234: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3132237377: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  987401354: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  707683696: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2223149337: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3508470533: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  900683007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2713699986: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3009204131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n  3319311131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2068733104: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4175244083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2176052936: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2696325953: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  76236018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  629592764: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1154579445: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n  1638804497: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1437502449: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1073191201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2078563270: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  234836483: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2474470126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2182337498: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  144952367: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3694346114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1383356374: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1687234759: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  310824031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3612865200: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3171933400: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  738039164: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  655969474: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  90941305: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3290496277: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2262370178: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3024970846: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3283111854: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1232101972: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3798194928: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  979691226: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2572171363: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2016517767: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3053780830: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1783015770: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1329646415: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  991950508: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1529196076: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3420628829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1999602285: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1404847402: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  331165859: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  4252922144: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2515109513: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  385403989: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n  1621171031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1162798199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  812556717: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3425753595: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3825984169: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1620046519: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3026737570: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3179687236: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4292641817: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4207607924: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2391406946: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3512223829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  4237592921: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3304561284: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2874132201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1634111441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  177149247: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2056796094: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3001207471: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  325726236: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n  277319702: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  753842376: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  4196446775: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  32344328: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3314249567: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1095909175: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2938176219: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  635142910: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3758799889: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1051757585: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4217484030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3999819293: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  3902619387: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  639361253: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3221913625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3571504051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2272882330: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  578613899: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3460952963: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4136498852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3640358203: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4074379575: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3693000487: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1052013943: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  562808652: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n  1062813311: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  342316401: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3518393246: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1360408905: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1904799276: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  862014818: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3310460725: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  24726584: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  264262732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  402227799: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1003880860: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3415622556: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  819412036: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1426591983: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  182646315: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  2680139844: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  1971632696: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n  2295281155: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  4086658281: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  630975310: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  4288193352: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  3087945054: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  25142252: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]]\n};\nConstructors[2] = {\n  3630933823: (ID, a) => new IFC4_3.IfcActorRole(ID, a[0], a[1], a[2]),\n  618182010: (ID, a) => new IFC4_3.IfcAddress(ID, a[0], a[1], a[2]),\n  2879124712: (ID, a) => new IFC4_3.IfcAlignmentParameterSegment(ID, a[0], a[1]),\n  3633395639: (ID, a) => new IFC4_3.IfcAlignmentVerticalSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  639542469: (ID, a) => new IFC4_3.IfcApplication(ID, a[0], a[1], a[2], a[3]),\n  411424972: (ID, a) => new IFC4_3.IfcAppliedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  130549933: (ID, a) => new IFC4_3.IfcApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4037036970: (ID, a) => new IFC4_3.IfcBoundaryCondition(ID, a[0]),\n  1560379544: (ID, a) => new IFC4_3.IfcBoundaryEdgeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3367102660: (ID, a) => new IFC4_3.IfcBoundaryFaceCondition(ID, a[0], a[1], a[2], a[3]),\n  1387855156: (ID, a) => new IFC4_3.IfcBoundaryNodeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2069777674: (ID, a) => new IFC4_3.IfcBoundaryNodeConditionWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2859738748: (ID, _) => new IFC4_3.IfcConnectionGeometry(ID),\n  2614616156: (ID, a) => new IFC4_3.IfcConnectionPointGeometry(ID, a[0], a[1]),\n  2732653382: (ID, a) => new IFC4_3.IfcConnectionSurfaceGeometry(ID, a[0], a[1]),\n  775493141: (ID, a) => new IFC4_3.IfcConnectionVolumeGeometry(ID, a[0], a[1]),\n  1959218052: (ID, a) => new IFC4_3.IfcConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1785450214: (ID, a) => new IFC4_3.IfcCoordinateOperation(ID, a[0], a[1]),\n  1466758467: (ID, a) => new IFC4_3.IfcCoordinateReferenceSystem(ID, a[0], a[1], a[2], a[3]),\n  602808272: (ID, a) => new IFC4_3.IfcCostValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1765591967: (ID, a) => new IFC4_3.IfcDerivedUnit(ID, a[0], a[1], a[2], a[3]),\n  1045800335: (ID, a) => new IFC4_3.IfcDerivedUnitElement(ID, a[0], a[1]),\n  2949456006: (ID, a) => new IFC4_3.IfcDimensionalExponents(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  4294318154: (ID, _) => new IFC4_3.IfcExternalInformation(ID),\n  3200245327: (ID, a) => new IFC4_3.IfcExternalReference(ID, a[0], a[1], a[2]),\n  2242383968: (ID, a) => new IFC4_3.IfcExternallyDefinedHatchStyle(ID, a[0], a[1], a[2]),\n  1040185647: (ID, a) => new IFC4_3.IfcExternallyDefinedSurfaceStyle(ID, a[0], a[1], a[2]),\n  3548104201: (ID, a) => new IFC4_3.IfcExternallyDefinedTextFont(ID, a[0], a[1], a[2]),\n  852622518: (ID, a) => new IFC4_3.IfcGridAxis(ID, a[0], a[1], a[2]),\n  3020489413: (ID, a) => new IFC4_3.IfcIrregularTimeSeriesValue(ID, a[0], a[1]),\n  2655187982: (ID, a) => new IFC4_3.IfcLibraryInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3452421091: (ID, a) => new IFC4_3.IfcLibraryReference(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4162380809: (ID, a) => new IFC4_3.IfcLightDistributionData(ID, a[0], a[1], a[2]),\n  1566485204: (ID, a) => new IFC4_3.IfcLightIntensityDistribution(ID, a[0], a[1]),\n  3057273783: (ID, a) => new IFC4_3.IfcMapConversion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1847130766: (ID, a) => new IFC4_3.IfcMaterialClassificationRelationship(ID, a[0], a[1]),\n  760658860: (ID, _) => new IFC4_3.IfcMaterialDefinition(ID),\n  248100487: (ID, a) => new IFC4_3.IfcMaterialLayer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3303938423: (ID, a) => new IFC4_3.IfcMaterialLayerSet(ID, a[0], a[1], a[2]),\n  1847252529: (ID, a) => new IFC4_3.IfcMaterialLayerWithOffsets(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2199411900: (ID, a) => new IFC4_3.IfcMaterialList(ID, a[0]),\n  2235152071: (ID, a) => new IFC4_3.IfcMaterialProfile(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  164193824: (ID, a) => new IFC4_3.IfcMaterialProfileSet(ID, a[0], a[1], a[2], a[3]),\n  552965576: (ID, a) => new IFC4_3.IfcMaterialProfileWithOffsets(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1507914824: (ID, _) => new IFC4_3.IfcMaterialUsageDefinition(ID),\n  2597039031: (ID, a) => new IFC4_3.IfcMeasureWithUnit(ID, a[0], a[1]),\n  3368373690: (ID, a) => new IFC4_3.IfcMetric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2706619895: (ID, a) => new IFC4_3.IfcMonetaryUnit(ID, a[0]),\n  1918398963: (ID, a) => new IFC4_3.IfcNamedUnit(ID, a[0], a[1]),\n  3701648758: (ID, a) => new IFC4_3.IfcObjectPlacement(ID, a[0]),\n  2251480897: (ID, a) => new IFC4_3.IfcObjective(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4251960020: (ID, a) => new IFC4_3.IfcOrganization(ID, a[0], a[1], a[2], a[3], a[4]),\n  1207048766: (ID, a) => new IFC4_3.IfcOwnerHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2077209135: (ID, a) => new IFC4_3.IfcPerson(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  101040310: (ID, a) => new IFC4_3.IfcPersonAndOrganization(ID, a[0], a[1], a[2]),\n  2483315170: (ID, a) => new IFC4_3.IfcPhysicalQuantity(ID, a[0], a[1]),\n  2226359599: (ID, a) => new IFC4_3.IfcPhysicalSimpleQuantity(ID, a[0], a[1], a[2]),\n  3355820592: (ID, a) => new IFC4_3.IfcPostalAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  677532197: (ID, _) => new IFC4_3.IfcPresentationItem(ID),\n  2022622350: (ID, a) => new IFC4_3.IfcPresentationLayerAssignment(ID, a[0], a[1], a[2], a[3]),\n  1304840413: (ID, a) => new IFC4_3.IfcPresentationLayerWithStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3119450353: (ID, a) => new IFC4_3.IfcPresentationStyle(ID, a[0]),\n  2095639259: (ID, a) => new IFC4_3.IfcProductRepresentation(ID, a[0], a[1], a[2]),\n  3958567839: (ID, a) => new IFC4_3.IfcProfileDef(ID, a[0], a[1]),\n  3843373140: (ID, a) => new IFC4_3.IfcProjectedCRS(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  986844984: (ID, _) => new IFC4_3.IfcPropertyAbstraction(ID),\n  3710013099: (ID, a) => new IFC4_3.IfcPropertyEnumeration(ID, a[0], a[1], a[2]),\n  2044713172: (ID, a) => new IFC4_3.IfcQuantityArea(ID, a[0], a[1], a[2], a[3], a[4]),\n  2093928680: (ID, a) => new IFC4_3.IfcQuantityCount(ID, a[0], a[1], a[2], a[3], a[4]),\n  931644368: (ID, a) => new IFC4_3.IfcQuantityLength(ID, a[0], a[1], a[2], a[3], a[4]),\n  2691318326: (ID, a) => new IFC4_3.IfcQuantityNumber(ID, a[0], a[1], a[2], a[3], a[4]),\n  3252649465: (ID, a) => new IFC4_3.IfcQuantityTime(ID, a[0], a[1], a[2], a[3], a[4]),\n  2405470396: (ID, a) => new IFC4_3.IfcQuantityVolume(ID, a[0], a[1], a[2], a[3], a[4]),\n  825690147: (ID, a) => new IFC4_3.IfcQuantityWeight(ID, a[0], a[1], a[2], a[3], a[4]),\n  3915482550: (ID, a) => new IFC4_3.IfcRecurrencePattern(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2433181523: (ID, a) => new IFC4_3.IfcReference(ID, a[0], a[1], a[2], a[3], a[4]),\n  1076942058: (ID, a) => new IFC4_3.IfcRepresentation(ID, a[0], a[1], a[2], a[3]),\n  3377609919: (ID, a) => new IFC4_3.IfcRepresentationContext(ID, a[0], a[1]),\n  3008791417: (ID, _) => new IFC4_3.IfcRepresentationItem(ID),\n  1660063152: (ID, a) => new IFC4_3.IfcRepresentationMap(ID, a[0], a[1]),\n  2439245199: (ID, a) => new IFC4_3.IfcResourceLevelRelationship(ID, a[0], a[1]),\n  2341007311: (ID, a) => new IFC4_3.IfcRoot(ID, a[0], a[1], a[2], a[3]),\n  448429030: (ID, a) => new IFC4_3.IfcSIUnit(ID, a[0], a[1], a[2], a[3]),\n  1054537805: (ID, a) => new IFC4_3.IfcSchedulingTime(ID, a[0], a[1], a[2]),\n  867548509: (ID, a) => new IFC4_3.IfcShapeAspect(ID, a[0], a[1], a[2], a[3], a[4]),\n  3982875396: (ID, a) => new IFC4_3.IfcShapeModel(ID, a[0], a[1], a[2], a[3]),\n  4240577450: (ID, a) => new IFC4_3.IfcShapeRepresentation(ID, a[0], a[1], a[2], a[3]),\n  2273995522: (ID, a) => new IFC4_3.IfcStructuralConnectionCondition(ID, a[0]),\n  2162789131: (ID, a) => new IFC4_3.IfcStructuralLoad(ID, a[0]),\n  3478079324: (ID, a) => new IFC4_3.IfcStructuralLoadConfiguration(ID, a[0], a[1], a[2]),\n  609421318: (ID, a) => new IFC4_3.IfcStructuralLoadOrResult(ID, a[0]),\n  2525727697: (ID, a) => new IFC4_3.IfcStructuralLoadStatic(ID, a[0]),\n  3408363356: (ID, a) => new IFC4_3.IfcStructuralLoadTemperature(ID, a[0], a[1], a[2], a[3]),\n  2830218821: (ID, a) => new IFC4_3.IfcStyleModel(ID, a[0], a[1], a[2], a[3]),\n  3958052878: (ID, a) => new IFC4_3.IfcStyledItem(ID, a[0], a[1], a[2]),\n  3049322572: (ID, a) => new IFC4_3.IfcStyledRepresentation(ID, a[0], a[1], a[2], a[3]),\n  2934153892: (ID, a) => new IFC4_3.IfcSurfaceReinforcementArea(ID, a[0], a[1], a[2], a[3]),\n  1300840506: (ID, a) => new IFC4_3.IfcSurfaceStyle(ID, a[0], a[1], a[2]),\n  3303107099: (ID, a) => new IFC4_3.IfcSurfaceStyleLighting(ID, a[0], a[1], a[2], a[3]),\n  1607154358: (ID, a) => new IFC4_3.IfcSurfaceStyleRefraction(ID, a[0], a[1]),\n  846575682: (ID, a) => new IFC4_3.IfcSurfaceStyleShading(ID, a[0], a[1]),\n  1351298697: (ID, a) => new IFC4_3.IfcSurfaceStyleWithTextures(ID, a[0]),\n  626085974: (ID, a) => new IFC4_3.IfcSurfaceTexture(ID, a[0], a[1], a[2], a[3], a[4]),\n  985171141: (ID, a) => new IFC4_3.IfcTable(ID, a[0], a[1], a[2]),\n  2043862942: (ID, a) => new IFC4_3.IfcTableColumn(ID, a[0], a[1], a[2], a[3], a[4]),\n  531007025: (ID, a) => new IFC4_3.IfcTableRow(ID, a[0], a[1]),\n  1549132990: (ID, a) => new IFC4_3.IfcTaskTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),\n  2771591690: (ID, a) => new IFC4_3.IfcTaskTimeRecurring(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]),\n  912023232: (ID, a) => new IFC4_3.IfcTelecomAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1447204868: (ID, a) => new IFC4_3.IfcTextStyle(ID, a[0], a[1], a[2], a[3], a[4]),\n  2636378356: (ID, a) => new IFC4_3.IfcTextStyleForDefinedFont(ID, a[0], a[1]),\n  1640371178: (ID, a) => new IFC4_3.IfcTextStyleTextModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  280115917: (ID, a) => new IFC4_3.IfcTextureCoordinate(ID, a[0]),\n  1742049831: (ID, a) => new IFC4_3.IfcTextureCoordinateGenerator(ID, a[0], a[1], a[2]),\n  222769930: (ID, a) => new IFC4_3.IfcTextureCoordinateIndices(ID, a[0], a[1]),\n  1010789467: (ID, a) => new IFC4_3.IfcTextureCoordinateIndicesWithVoids(ID, a[0], a[1], a[2]),\n  2552916305: (ID, a) => new IFC4_3.IfcTextureMap(ID, a[0], a[1], a[2]),\n  1210645708: (ID, a) => new IFC4_3.IfcTextureVertex(ID, a[0]),\n  3611470254: (ID, a) => new IFC4_3.IfcTextureVertexList(ID, a[0]),\n  1199560280: (ID, a) => new IFC4_3.IfcTimePeriod(ID, a[0], a[1]),\n  3101149627: (ID, a) => new IFC4_3.IfcTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  581633288: (ID, a) => new IFC4_3.IfcTimeSeriesValue(ID, a[0]),\n  1377556343: (ID, _) => new IFC4_3.IfcTopologicalRepresentationItem(ID),\n  1735638870: (ID, a) => new IFC4_3.IfcTopologyRepresentation(ID, a[0], a[1], a[2], a[3]),\n  180925521: (ID, a) => new IFC4_3.IfcUnitAssignment(ID, a[0]),\n  2799835756: (ID, _) => new IFC4_3.IfcVertex(ID),\n  1907098498: (ID, a) => new IFC4_3.IfcVertexPoint(ID, a[0]),\n  891718957: (ID, a) => new IFC4_3.IfcVirtualGridIntersection(ID, a[0], a[1]),\n  1236880293: (ID, a) => new IFC4_3.IfcWorkTime(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3752311538: (ID, a) => new IFC4_3.IfcAlignmentCantSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  536804194: (ID, a) => new IFC4_3.IfcAlignmentHorizontalSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3869604511: (ID, a) => new IFC4_3.IfcApprovalRelationship(ID, a[0], a[1], a[2], a[3]),\n  3798115385: (ID, a) => new IFC4_3.IfcArbitraryClosedProfileDef(ID, a[0], a[1], a[2]),\n  1310608509: (ID, a) => new IFC4_3.IfcArbitraryOpenProfileDef(ID, a[0], a[1], a[2]),\n  2705031697: (ID, a) => new IFC4_3.IfcArbitraryProfileDefWithVoids(ID, a[0], a[1], a[2], a[3]),\n  616511568: (ID, a) => new IFC4_3.IfcBlobTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3150382593: (ID, a) => new IFC4_3.IfcCenterLineProfileDef(ID, a[0], a[1], a[2], a[3]),\n  747523909: (ID, a) => new IFC4_3.IfcClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  647927063: (ID, a) => new IFC4_3.IfcClassificationReference(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3285139300: (ID, a) => new IFC4_3.IfcColourRgbList(ID, a[0]),\n  3264961684: (ID, a) => new IFC4_3.IfcColourSpecification(ID, a[0]),\n  1485152156: (ID, a) => new IFC4_3.IfcCompositeProfileDef(ID, a[0], a[1], a[2], a[3]),\n  370225590: (ID, a) => new IFC4_3.IfcConnectedFaceSet(ID, a[0]),\n  1981873012: (ID, a) => new IFC4_3.IfcConnectionCurveGeometry(ID, a[0], a[1]),\n  45288368: (ID, a) => new IFC4_3.IfcConnectionPointEccentricity(ID, a[0], a[1], a[2], a[3], a[4]),\n  3050246964: (ID, a) => new IFC4_3.IfcContextDependentUnit(ID, a[0], a[1], a[2]),\n  2889183280: (ID, a) => new IFC4_3.IfcConversionBasedUnit(ID, a[0], a[1], a[2], a[3]),\n  2713554722: (ID, a) => new IFC4_3.IfcConversionBasedUnitWithOffset(ID, a[0], a[1], a[2], a[3], a[4]),\n  539742890: (ID, a) => new IFC4_3.IfcCurrencyRelationship(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3800577675: (ID, a) => new IFC4_3.IfcCurveStyle(ID, a[0], a[1], a[2], a[3], a[4]),\n  1105321065: (ID, a) => new IFC4_3.IfcCurveStyleFont(ID, a[0], a[1]),\n  2367409068: (ID, a) => new IFC4_3.IfcCurveStyleFontAndScaling(ID, a[0], a[1], a[2]),\n  3510044353: (ID, a) => new IFC4_3.IfcCurveStyleFontPattern(ID, a[0], a[1]),\n  3632507154: (ID, a) => new IFC4_3.IfcDerivedProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  1154170062: (ID, a) => new IFC4_3.IfcDocumentInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  770865208: (ID, a) => new IFC4_3.IfcDocumentInformationRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  3732053477: (ID, a) => new IFC4_3.IfcDocumentReference(ID, a[0], a[1], a[2], a[3], a[4]),\n  3900360178: (ID, a) => new IFC4_3.IfcEdge(ID, a[0], a[1]),\n  476780140: (ID, a) => new IFC4_3.IfcEdgeCurve(ID, a[0], a[1], a[2], a[3]),\n  211053100: (ID, a) => new IFC4_3.IfcEventTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  297599258: (ID, a) => new IFC4_3.IfcExtendedProperties(ID, a[0], a[1], a[2]),\n  1437805879: (ID, a) => new IFC4_3.IfcExternalReferenceRelationship(ID, a[0], a[1], a[2], a[3]),\n  2556980723: (ID, a) => new IFC4_3.IfcFace(ID, a[0]),\n  1809719519: (ID, a) => new IFC4_3.IfcFaceBound(ID, a[0], a[1]),\n  803316827: (ID, a) => new IFC4_3.IfcFaceOuterBound(ID, a[0], a[1]),\n  3008276851: (ID, a) => new IFC4_3.IfcFaceSurface(ID, a[0], a[1], a[2]),\n  4219587988: (ID, a) => new IFC4_3.IfcFailureConnectionCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  738692330: (ID, a) => new IFC4_3.IfcFillAreaStyle(ID, a[0], a[1], a[2]),\n  3448662350: (ID, a) => new IFC4_3.IfcGeometricRepresentationContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2453401579: (ID, _) => new IFC4_3.IfcGeometricRepresentationItem(ID),\n  4142052618: (ID, a) => new IFC4_3.IfcGeometricRepresentationSubContext(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3590301190: (ID, a) => new IFC4_3.IfcGeometricSet(ID, a[0]),\n  178086475: (ID, a) => new IFC4_3.IfcGridPlacement(ID, a[0], a[1], a[2]),\n  812098782: (ID, a) => new IFC4_3.IfcHalfSpaceSolid(ID, a[0], a[1]),\n  3905492369: (ID, a) => new IFC4_3.IfcImageTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3570813810: (ID, a) => new IFC4_3.IfcIndexedColourMap(ID, a[0], a[1], a[2], a[3]),\n  1437953363: (ID, a) => new IFC4_3.IfcIndexedTextureMap(ID, a[0], a[1], a[2]),\n  2133299955: (ID, a) => new IFC4_3.IfcIndexedTriangleTextureMap(ID, a[0], a[1], a[2], a[3]),\n  3741457305: (ID, a) => new IFC4_3.IfcIrregularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1585845231: (ID, a) => new IFC4_3.IfcLagTime(ID, a[0], a[1], a[2], a[3], a[4]),\n  1402838566: (ID, a) => new IFC4_3.IfcLightSource(ID, a[0], a[1], a[2], a[3]),\n  125510826: (ID, a) => new IFC4_3.IfcLightSourceAmbient(ID, a[0], a[1], a[2], a[3]),\n  2604431987: (ID, a) => new IFC4_3.IfcLightSourceDirectional(ID, a[0], a[1], a[2], a[3], a[4]),\n  4266656042: (ID, a) => new IFC4_3.IfcLightSourceGoniometric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1520743889: (ID, a) => new IFC4_3.IfcLightSourcePositional(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3422422726: (ID, a) => new IFC4_3.IfcLightSourceSpot(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  388784114: (ID, a) => new IFC4_3.IfcLinearPlacement(ID, a[0], a[1], a[2]),\n  2624227202: (ID, a) => new IFC4_3.IfcLocalPlacement(ID, a[0], a[1]),\n  1008929658: (ID, _) => new IFC4_3.IfcLoop(ID),\n  2347385850: (ID, a) => new IFC4_3.IfcMappedItem(ID, a[0], a[1]),\n  1838606355: (ID, a) => new IFC4_3.IfcMaterial(ID, a[0], a[1], a[2]),\n  3708119e3: (ID, a) => new IFC4_3.IfcMaterialConstituent(ID, a[0], a[1], a[2], a[3], a[4]),\n  2852063980: (ID, a) => new IFC4_3.IfcMaterialConstituentSet(ID, a[0], a[1], a[2]),\n  2022407955: (ID, a) => new IFC4_3.IfcMaterialDefinitionRepresentation(ID, a[0], a[1], a[2], a[3]),\n  1303795690: (ID, a) => new IFC4_3.IfcMaterialLayerSetUsage(ID, a[0], a[1], a[2], a[3], a[4]),\n  3079605661: (ID, a) => new IFC4_3.IfcMaterialProfileSetUsage(ID, a[0], a[1], a[2]),\n  3404854881: (ID, a) => new IFC4_3.IfcMaterialProfileSetUsageTapering(ID, a[0], a[1], a[2], a[3], a[4]),\n  3265635763: (ID, a) => new IFC4_3.IfcMaterialProperties(ID, a[0], a[1], a[2], a[3]),\n  853536259: (ID, a) => new IFC4_3.IfcMaterialRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  2998442950: (ID, a) => new IFC4_3.IfcMirroredProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  219451334: (ID, a) => new IFC4_3.IfcObjectDefinition(ID, a[0], a[1], a[2], a[3]),\n  182550632: (ID, a) => new IFC4_3.IfcOpenCrossProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2665983363: (ID, a) => new IFC4_3.IfcOpenShell(ID, a[0]),\n  1411181986: (ID, a) => new IFC4_3.IfcOrganizationRelationship(ID, a[0], a[1], a[2], a[3]),\n  1029017970: (ID, a) => new IFC4_3.IfcOrientedEdge(ID, a[0], a[1], a[2]),\n  2529465313: (ID, a) => new IFC4_3.IfcParameterizedProfileDef(ID, a[0], a[1], a[2]),\n  2519244187: (ID, a) => new IFC4_3.IfcPath(ID, a[0]),\n  3021840470: (ID, a) => new IFC4_3.IfcPhysicalComplexQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  597895409: (ID, a) => new IFC4_3.IfcPixelTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2004835150: (ID, a) => new IFC4_3.IfcPlacement(ID, a[0]),\n  1663979128: (ID, a) => new IFC4_3.IfcPlanarExtent(ID, a[0], a[1]),\n  2067069095: (ID, _) => new IFC4_3.IfcPoint(ID),\n  2165702409: (ID, a) => new IFC4_3.IfcPointByDistanceExpression(ID, a[0], a[1], a[2], a[3], a[4]),\n  4022376103: (ID, a) => new IFC4_3.IfcPointOnCurve(ID, a[0], a[1]),\n  1423911732: (ID, a) => new IFC4_3.IfcPointOnSurface(ID, a[0], a[1], a[2]),\n  2924175390: (ID, a) => new IFC4_3.IfcPolyLoop(ID, a[0]),\n  2775532180: (ID, a) => new IFC4_3.IfcPolygonalBoundedHalfSpace(ID, a[0], a[1], a[2], a[3]),\n  3727388367: (ID, a) => new IFC4_3.IfcPreDefinedItem(ID, a[0]),\n  3778827333: (ID, _) => new IFC4_3.IfcPreDefinedProperties(ID),\n  1775413392: (ID, a) => new IFC4_3.IfcPreDefinedTextFont(ID, a[0]),\n  673634403: (ID, a) => new IFC4_3.IfcProductDefinitionShape(ID, a[0], a[1], a[2]),\n  2802850158: (ID, a) => new IFC4_3.IfcProfileProperties(ID, a[0], a[1], a[2], a[3]),\n  2598011224: (ID, a) => new IFC4_3.IfcProperty(ID, a[0], a[1]),\n  1680319473: (ID, a) => new IFC4_3.IfcPropertyDefinition(ID, a[0], a[1], a[2], a[3]),\n  148025276: (ID, a) => new IFC4_3.IfcPropertyDependencyRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  3357820518: (ID, a) => new IFC4_3.IfcPropertySetDefinition(ID, a[0], a[1], a[2], a[3]),\n  1482703590: (ID, a) => new IFC4_3.IfcPropertyTemplateDefinition(ID, a[0], a[1], a[2], a[3]),\n  2090586900: (ID, a) => new IFC4_3.IfcQuantitySet(ID, a[0], a[1], a[2], a[3]),\n  3615266464: (ID, a) => new IFC4_3.IfcRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  3413951693: (ID, a) => new IFC4_3.IfcRegularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1580146022: (ID, a) => new IFC4_3.IfcReinforcementBarProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  478536968: (ID, a) => new IFC4_3.IfcRelationship(ID, a[0], a[1], a[2], a[3]),\n  2943643501: (ID, a) => new IFC4_3.IfcResourceApprovalRelationship(ID, a[0], a[1], a[2], a[3]),\n  1608871552: (ID, a) => new IFC4_3.IfcResourceConstraintRelationship(ID, a[0], a[1], a[2], a[3]),\n  1042787934: (ID, a) => new IFC4_3.IfcResourceTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),\n  2778083089: (ID, a) => new IFC4_3.IfcRoundedRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2042790032: (ID, a) => new IFC4_3.IfcSectionProperties(ID, a[0], a[1], a[2]),\n  4165799628: (ID, a) => new IFC4_3.IfcSectionReinforcementProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1509187699: (ID, a) => new IFC4_3.IfcSectionedSpine(ID, a[0], a[1], a[2]),\n  823603102: (ID, a) => new IFC4_3.IfcSegment(ID, a[0]),\n  4124623270: (ID, a) => new IFC4_3.IfcShellBasedSurfaceModel(ID, a[0]),\n  3692461612: (ID, a) => new IFC4_3.IfcSimpleProperty(ID, a[0], a[1]),\n  2609359061: (ID, a) => new IFC4_3.IfcSlippageConnectionCondition(ID, a[0], a[1], a[2], a[3]),\n  723233188: (ID, _) => new IFC4_3.IfcSolidModel(ID),\n  1595516126: (ID, a) => new IFC4_3.IfcStructuralLoadLinearForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2668620305: (ID, a) => new IFC4_3.IfcStructuralLoadPlanarForce(ID, a[0], a[1], a[2], a[3]),\n  2473145415: (ID, a) => new IFC4_3.IfcStructuralLoadSingleDisplacement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1973038258: (ID, a) => new IFC4_3.IfcStructuralLoadSingleDisplacementDistortion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1597423693: (ID, a) => new IFC4_3.IfcStructuralLoadSingleForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1190533807: (ID, a) => new IFC4_3.IfcStructuralLoadSingleForceWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2233826070: (ID, a) => new IFC4_3.IfcSubedge(ID, a[0], a[1], a[2]),\n  2513912981: (ID, _) => new IFC4_3.IfcSurface(ID),\n  1878645084: (ID, a) => new IFC4_3.IfcSurfaceStyleRendering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2247615214: (ID, a) => new IFC4_3.IfcSweptAreaSolid(ID, a[0], a[1]),\n  1260650574: (ID, a) => new IFC4_3.IfcSweptDiskSolid(ID, a[0], a[1], a[2], a[3], a[4]),\n  1096409881: (ID, a) => new IFC4_3.IfcSweptDiskSolidPolygonal(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  230924584: (ID, a) => new IFC4_3.IfcSweptSurface(ID, a[0], a[1]),\n  3071757647: (ID, a) => new IFC4_3.IfcTShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  901063453: (ID, _) => new IFC4_3.IfcTessellatedItem(ID),\n  4282788508: (ID, a) => new IFC4_3.IfcTextLiteral(ID, a[0], a[1], a[2]),\n  3124975700: (ID, a) => new IFC4_3.IfcTextLiteralWithExtent(ID, a[0], a[1], a[2], a[3], a[4]),\n  1983826977: (ID, a) => new IFC4_3.IfcTextStyleFontModel(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2715220739: (ID, a) => new IFC4_3.IfcTrapeziumProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1628702193: (ID, a) => new IFC4_3.IfcTypeObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3736923433: (ID, a) => new IFC4_3.IfcTypeProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2347495698: (ID, a) => new IFC4_3.IfcTypeProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3698973494: (ID, a) => new IFC4_3.IfcTypeResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  427810014: (ID, a) => new IFC4_3.IfcUShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1417489154: (ID, a) => new IFC4_3.IfcVector(ID, a[0], a[1]),\n  2759199220: (ID, a) => new IFC4_3.IfcVertexLoop(ID, a[0]),\n  2543172580: (ID, a) => new IFC4_3.IfcZShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3406155212: (ID, a) => new IFC4_3.IfcAdvancedFace(ID, a[0], a[1], a[2]),\n  669184980: (ID, a) => new IFC4_3.IfcAnnotationFillArea(ID, a[0], a[1]),\n  3207858831: (ID, a) => new IFC4_3.IfcAsymmetricIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n  4261334040: (ID, a) => new IFC4_3.IfcAxis1Placement(ID, a[0], a[1]),\n  3125803723: (ID, a) => new IFC4_3.IfcAxis2Placement2D(ID, a[0], a[1]),\n  2740243338: (ID, a) => new IFC4_3.IfcAxis2Placement3D(ID, a[0], a[1], a[2]),\n  3425423356: (ID, a) => new IFC4_3.IfcAxis2PlacementLinear(ID, a[0], a[1], a[2]),\n  2736907675: (ID, a) => new IFC4_3.IfcBooleanResult(ID, a[0], a[1], a[2]),\n  4182860854: (ID, _) => new IFC4_3.IfcBoundedSurface(ID),\n  2581212453: (ID, a) => new IFC4_3.IfcBoundingBox(ID, a[0], a[1], a[2], a[3]),\n  2713105998: (ID, a) => new IFC4_3.IfcBoxedHalfSpace(ID, a[0], a[1], a[2]),\n  2898889636: (ID, a) => new IFC4_3.IfcCShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1123145078: (ID, a) => new IFC4_3.IfcCartesianPoint(ID, a[0]),\n  574549367: (ID, _) => new IFC4_3.IfcCartesianPointList(ID),\n  1675464909: (ID, a) => new IFC4_3.IfcCartesianPointList2D(ID, a[0], a[1]),\n  2059837836: (ID, a) => new IFC4_3.IfcCartesianPointList3D(ID, a[0], a[1]),\n  59481748: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator(ID, a[0], a[1], a[2], a[3]),\n  3749851601: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator2D(ID, a[0], a[1], a[2], a[3]),\n  3486308946: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator2DnonUniform(ID, a[0], a[1], a[2], a[3], a[4]),\n  3331915920: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator3D(ID, a[0], a[1], a[2], a[3], a[4]),\n  1416205885: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator3DnonUniform(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1383045692: (ID, a) => new IFC4_3.IfcCircleProfileDef(ID, a[0], a[1], a[2], a[3]),\n  2205249479: (ID, a) => new IFC4_3.IfcClosedShell(ID, a[0]),\n  776857604: (ID, a) => new IFC4_3.IfcColourRgb(ID, a[0], a[1], a[2], a[3]),\n  2542286263: (ID, a) => new IFC4_3.IfcComplexProperty(ID, a[0], a[1], a[2], a[3]),\n  2485617015: (ID, a) => new IFC4_3.IfcCompositeCurveSegment(ID, a[0], a[1], a[2]),\n  2574617495: (ID, a) => new IFC4_3.IfcConstructionResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3419103109: (ID, a) => new IFC4_3.IfcContext(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1815067380: (ID, a) => new IFC4_3.IfcCrewResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2506170314: (ID, a) => new IFC4_3.IfcCsgPrimitive3D(ID, a[0]),\n  2147822146: (ID, a) => new IFC4_3.IfcCsgSolid(ID, a[0]),\n  2601014836: (ID, _) => new IFC4_3.IfcCurve(ID),\n  2827736869: (ID, a) => new IFC4_3.IfcCurveBoundedPlane(ID, a[0], a[1], a[2]),\n  2629017746: (ID, a) => new IFC4_3.IfcCurveBoundedSurface(ID, a[0], a[1], a[2]),\n  4212018352: (ID, a) => new IFC4_3.IfcCurveSegment(ID, a[0], a[1], a[2], a[3], a[4]),\n  32440307: (ID, a) => new IFC4_3.IfcDirection(ID, a[0]),\n  593015953: (ID, a) => new IFC4_3.IfcDirectrixCurveSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4]),\n  1472233963: (ID, a) => new IFC4_3.IfcEdgeLoop(ID, a[0]),\n  1883228015: (ID, a) => new IFC4_3.IfcElementQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  339256511: (ID, a) => new IFC4_3.IfcElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2777663545: (ID, a) => new IFC4_3.IfcElementarySurface(ID, a[0]),\n  2835456948: (ID, a) => new IFC4_3.IfcEllipseProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  4024345920: (ID, a) => new IFC4_3.IfcEventType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  477187591: (ID, a) => new IFC4_3.IfcExtrudedAreaSolid(ID, a[0], a[1], a[2], a[3]),\n  2804161546: (ID, a) => new IFC4_3.IfcExtrudedAreaSolidTapered(ID, a[0], a[1], a[2], a[3], a[4]),\n  2047409740: (ID, a) => new IFC4_3.IfcFaceBasedSurfaceModel(ID, a[0]),\n  374418227: (ID, a) => new IFC4_3.IfcFillAreaStyleHatching(ID, a[0], a[1], a[2], a[3], a[4]),\n  315944413: (ID, a) => new IFC4_3.IfcFillAreaStyleTiles(ID, a[0], a[1], a[2]),\n  2652556860: (ID, a) => new IFC4_3.IfcFixedReferenceSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4238390223: (ID, a) => new IFC4_3.IfcFurnishingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1268542332: (ID, a) => new IFC4_3.IfcFurnitureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4095422895: (ID, a) => new IFC4_3.IfcGeographicElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  987898635: (ID, a) => new IFC4_3.IfcGeometricCurveSet(ID, a[0]),\n  1484403080: (ID, a) => new IFC4_3.IfcIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  178912537: (ID, a) => new IFC4_3.IfcIndexedPolygonalFace(ID, a[0]),\n  2294589976: (ID, a) => new IFC4_3.IfcIndexedPolygonalFaceWithVoids(ID, a[0], a[1]),\n  3465909080: (ID, a) => new IFC4_3.IfcIndexedPolygonalTextureMap(ID, a[0], a[1], a[2], a[3]),\n  572779678: (ID, a) => new IFC4_3.IfcLShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  428585644: (ID, a) => new IFC4_3.IfcLaborResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1281925730: (ID, a) => new IFC4_3.IfcLine(ID, a[0], a[1]),\n  1425443689: (ID, a) => new IFC4_3.IfcManifoldSolidBrep(ID, a[0]),\n  3888040117: (ID, a) => new IFC4_3.IfcObject(ID, a[0], a[1], a[2], a[3], a[4]),\n  590820931: (ID, a) => new IFC4_3.IfcOffsetCurve(ID, a[0]),\n  3388369263: (ID, a) => new IFC4_3.IfcOffsetCurve2D(ID, a[0], a[1], a[2]),\n  3505215534: (ID, a) => new IFC4_3.IfcOffsetCurve3D(ID, a[0], a[1], a[2], a[3]),\n  2485787929: (ID, a) => new IFC4_3.IfcOffsetCurveByDistances(ID, a[0], a[1], a[2]),\n  1682466193: (ID, a) => new IFC4_3.IfcPcurve(ID, a[0], a[1]),\n  603570806: (ID, a) => new IFC4_3.IfcPlanarBox(ID, a[0], a[1], a[2]),\n  220341763: (ID, a) => new IFC4_3.IfcPlane(ID, a[0]),\n  3381221214: (ID, a) => new IFC4_3.IfcPolynomialCurve(ID, a[0], a[1], a[2], a[3]),\n  759155922: (ID, a) => new IFC4_3.IfcPreDefinedColour(ID, a[0]),\n  2559016684: (ID, a) => new IFC4_3.IfcPreDefinedCurveFont(ID, a[0]),\n  3967405729: (ID, a) => new IFC4_3.IfcPreDefinedPropertySet(ID, a[0], a[1], a[2], a[3]),\n  569719735: (ID, a) => new IFC4_3.IfcProcedureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2945172077: (ID, a) => new IFC4_3.IfcProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  4208778838: (ID, a) => new IFC4_3.IfcProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  103090709: (ID, a) => new IFC4_3.IfcProject(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  653396225: (ID, a) => new IFC4_3.IfcProjectLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  871118103: (ID, a) => new IFC4_3.IfcPropertyBoundedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4166981789: (ID, a) => new IFC4_3.IfcPropertyEnumeratedValue(ID, a[0], a[1], a[2], a[3]),\n  2752243245: (ID, a) => new IFC4_3.IfcPropertyListValue(ID, a[0], a[1], a[2], a[3]),\n  941946838: (ID, a) => new IFC4_3.IfcPropertyReferenceValue(ID, a[0], a[1], a[2], a[3]),\n  1451395588: (ID, a) => new IFC4_3.IfcPropertySet(ID, a[0], a[1], a[2], a[3], a[4]),\n  492091185: (ID, a) => new IFC4_3.IfcPropertySetTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3650150729: (ID, a) => new IFC4_3.IfcPropertySingleValue(ID, a[0], a[1], a[2], a[3]),\n  110355661: (ID, a) => new IFC4_3.IfcPropertyTableValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3521284610: (ID, a) => new IFC4_3.IfcPropertyTemplate(ID, a[0], a[1], a[2], a[3]),\n  2770003689: (ID, a) => new IFC4_3.IfcRectangleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2798486643: (ID, a) => new IFC4_3.IfcRectangularPyramid(ID, a[0], a[1], a[2], a[3]),\n  3454111270: (ID, a) => new IFC4_3.IfcRectangularTrimmedSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3765753017: (ID, a) => new IFC4_3.IfcReinforcementDefinitionProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3939117080: (ID, a) => new IFC4_3.IfcRelAssigns(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1683148259: (ID, a) => new IFC4_3.IfcRelAssignsToActor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2495723537: (ID, a) => new IFC4_3.IfcRelAssignsToControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1307041759: (ID, a) => new IFC4_3.IfcRelAssignsToGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1027710054: (ID, a) => new IFC4_3.IfcRelAssignsToGroupByFactor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4278684876: (ID, a) => new IFC4_3.IfcRelAssignsToProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2857406711: (ID, a) => new IFC4_3.IfcRelAssignsToProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  205026976: (ID, a) => new IFC4_3.IfcRelAssignsToResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1865459582: (ID, a) => new IFC4_3.IfcRelAssociates(ID, a[0], a[1], a[2], a[3], a[4]),\n  4095574036: (ID, a) => new IFC4_3.IfcRelAssociatesApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  919958153: (ID, a) => new IFC4_3.IfcRelAssociatesClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2728634034: (ID, a) => new IFC4_3.IfcRelAssociatesConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  982818633: (ID, a) => new IFC4_3.IfcRelAssociatesDocument(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3840914261: (ID, a) => new IFC4_3.IfcRelAssociatesLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2655215786: (ID, a) => new IFC4_3.IfcRelAssociatesMaterial(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1033248425: (ID, a) => new IFC4_3.IfcRelAssociatesProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  826625072: (ID, a) => new IFC4_3.IfcRelConnects(ID, a[0], a[1], a[2], a[3]),\n  1204542856: (ID, a) => new IFC4_3.IfcRelConnectsElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3945020480: (ID, a) => new IFC4_3.IfcRelConnectsPathElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4201705270: (ID, a) => new IFC4_3.IfcRelConnectsPortToElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3190031847: (ID, a) => new IFC4_3.IfcRelConnectsPorts(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2127690289: (ID, a) => new IFC4_3.IfcRelConnectsStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1638771189: (ID, a) => new IFC4_3.IfcRelConnectsStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  504942748: (ID, a) => new IFC4_3.IfcRelConnectsWithEccentricity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3678494232: (ID, a) => new IFC4_3.IfcRelConnectsWithRealizingElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3242617779: (ID, a) => new IFC4_3.IfcRelContainedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  886880790: (ID, a) => new IFC4_3.IfcRelCoversBldgElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2802773753: (ID, a) => new IFC4_3.IfcRelCoversSpaces(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2565941209: (ID, a) => new IFC4_3.IfcRelDeclares(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2551354335: (ID, a) => new IFC4_3.IfcRelDecomposes(ID, a[0], a[1], a[2], a[3]),\n  693640335: (ID, a) => new IFC4_3.IfcRelDefines(ID, a[0], a[1], a[2], a[3]),\n  1462361463: (ID, a) => new IFC4_3.IfcRelDefinesByObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4186316022: (ID, a) => new IFC4_3.IfcRelDefinesByProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  307848117: (ID, a) => new IFC4_3.IfcRelDefinesByTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  781010003: (ID, a) => new IFC4_3.IfcRelDefinesByType(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3940055652: (ID, a) => new IFC4_3.IfcRelFillsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  279856033: (ID, a) => new IFC4_3.IfcRelFlowControlElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  427948657: (ID, a) => new IFC4_3.IfcRelInterferesElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3268803585: (ID, a) => new IFC4_3.IfcRelNests(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1441486842: (ID, a) => new IFC4_3.IfcRelPositions(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  750771296: (ID, a) => new IFC4_3.IfcRelProjectsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1245217292: (ID, a) => new IFC4_3.IfcRelReferencedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4122056220: (ID, a) => new IFC4_3.IfcRelSequence(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  366585022: (ID, a) => new IFC4_3.IfcRelServicesBuildings(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3451746338: (ID, a) => new IFC4_3.IfcRelSpaceBoundary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3523091289: (ID, a) => new IFC4_3.IfcRelSpaceBoundary1stLevel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1521410863: (ID, a) => new IFC4_3.IfcRelSpaceBoundary2ndLevel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1401173127: (ID, a) => new IFC4_3.IfcRelVoidsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  816062949: (ID, a) => new IFC4_3.IfcReparametrisedCompositeCurveSegment(ID, a[0], a[1], a[2], a[3]),\n  2914609552: (ID, a) => new IFC4_3.IfcResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1856042241: (ID, a) => new IFC4_3.IfcRevolvedAreaSolid(ID, a[0], a[1], a[2], a[3]),\n  3243963512: (ID, a) => new IFC4_3.IfcRevolvedAreaSolidTapered(ID, a[0], a[1], a[2], a[3], a[4]),\n  4158566097: (ID, a) => new IFC4_3.IfcRightCircularCone(ID, a[0], a[1], a[2]),\n  3626867408: (ID, a) => new IFC4_3.IfcRightCircularCylinder(ID, a[0], a[1], a[2]),\n  1862484736: (ID, a) => new IFC4_3.IfcSectionedSolid(ID, a[0], a[1]),\n  1290935644: (ID, a) => new IFC4_3.IfcSectionedSolidHorizontal(ID, a[0], a[1], a[2]),\n  1356537516: (ID, a) => new IFC4_3.IfcSectionedSurface(ID, a[0], a[1], a[2]),\n  3663146110: (ID, a) => new IFC4_3.IfcSimplePropertyTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1412071761: (ID, a) => new IFC4_3.IfcSpatialElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  710998568: (ID, a) => new IFC4_3.IfcSpatialElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2706606064: (ID, a) => new IFC4_3.IfcSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3893378262: (ID, a) => new IFC4_3.IfcSpatialStructureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  463610769: (ID, a) => new IFC4_3.IfcSpatialZone(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2481509218: (ID, a) => new IFC4_3.IfcSpatialZoneType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  451544542: (ID, a) => new IFC4_3.IfcSphere(ID, a[0], a[1]),\n  4015995234: (ID, a) => new IFC4_3.IfcSphericalSurface(ID, a[0], a[1]),\n  2735484536: (ID, a) => new IFC4_3.IfcSpiral(ID, a[0]),\n  3544373492: (ID, a) => new IFC4_3.IfcStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3136571912: (ID, a) => new IFC4_3.IfcStructuralItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  530289379: (ID, a) => new IFC4_3.IfcStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3689010777: (ID, a) => new IFC4_3.IfcStructuralReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3979015343: (ID, a) => new IFC4_3.IfcStructuralSurfaceMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2218152070: (ID, a) => new IFC4_3.IfcStructuralSurfaceMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  603775116: (ID, a) => new IFC4_3.IfcStructuralSurfaceReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4095615324: (ID, a) => new IFC4_3.IfcSubContractResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  699246055: (ID, a) => new IFC4_3.IfcSurfaceCurve(ID, a[0], a[1], a[2]),\n  2028607225: (ID, a) => new IFC4_3.IfcSurfaceCurveSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2809605785: (ID, a) => new IFC4_3.IfcSurfaceOfLinearExtrusion(ID, a[0], a[1], a[2], a[3]),\n  4124788165: (ID, a) => new IFC4_3.IfcSurfaceOfRevolution(ID, a[0], a[1], a[2]),\n  1580310250: (ID, a) => new IFC4_3.IfcSystemFurnitureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3473067441: (ID, a) => new IFC4_3.IfcTask(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  3206491090: (ID, a) => new IFC4_3.IfcTaskType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2387106220: (ID, a) => new IFC4_3.IfcTessellatedFaceSet(ID, a[0], a[1]),\n  782932809: (ID, a) => new IFC4_3.IfcThirdOrderPolynomialSpiral(ID, a[0], a[1], a[2], a[3], a[4]),\n  1935646853: (ID, a) => new IFC4_3.IfcToroidalSurface(ID, a[0], a[1], a[2]),\n  3665877780: (ID, a) => new IFC4_3.IfcTransportationDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2916149573: (ID, a) => new IFC4_3.IfcTriangulatedFaceSet(ID, a[0], a[1], a[2], a[3], a[4]),\n  1229763772: (ID, a) => new IFC4_3.IfcTriangulatedIrregularNetwork(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3651464721: (ID, a) => new IFC4_3.IfcVehicleType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  336235671: (ID, a) => new IFC4_3.IfcWindowLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),\n  512836454: (ID, a) => new IFC4_3.IfcWindowPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2296667514: (ID, a) => new IFC4_3.IfcActor(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1635779807: (ID, a) => new IFC4_3.IfcAdvancedBrep(ID, a[0]),\n  2603310189: (ID, a) => new IFC4_3.IfcAdvancedBrepWithVoids(ID, a[0], a[1]),\n  1674181508: (ID, a) => new IFC4_3.IfcAnnotation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2887950389: (ID, a) => new IFC4_3.IfcBSplineSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  167062518: (ID, a) => new IFC4_3.IfcBSplineSurfaceWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1334484129: (ID, a) => new IFC4_3.IfcBlock(ID, a[0], a[1], a[2], a[3]),\n  3649129432: (ID, a) => new IFC4_3.IfcBooleanClippingResult(ID, a[0], a[1], a[2]),\n  1260505505: (ID, _) => new IFC4_3.IfcBoundedCurve(ID),\n  3124254112: (ID, a) => new IFC4_3.IfcBuildingStorey(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1626504194: (ID, a) => new IFC4_3.IfcBuiltElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2197970202: (ID, a) => new IFC4_3.IfcChimneyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2937912522: (ID, a) => new IFC4_3.IfcCircleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  3893394355: (ID, a) => new IFC4_3.IfcCivilElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3497074424: (ID, a) => new IFC4_3.IfcClothoid(ID, a[0], a[1]),\n  300633059: (ID, a) => new IFC4_3.IfcColumnType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3875453745: (ID, a) => new IFC4_3.IfcComplexPropertyTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3732776249: (ID, a) => new IFC4_3.IfcCompositeCurve(ID, a[0], a[1]),\n  15328376: (ID, a) => new IFC4_3.IfcCompositeCurveOnSurface(ID, a[0], a[1]),\n  2510884976: (ID, a) => new IFC4_3.IfcConic(ID, a[0]),\n  2185764099: (ID, a) => new IFC4_3.IfcConstructionEquipmentResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  4105962743: (ID, a) => new IFC4_3.IfcConstructionMaterialResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1525564444: (ID, a) => new IFC4_3.IfcConstructionProductResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2559216714: (ID, a) => new IFC4_3.IfcConstructionResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3293443760: (ID, a) => new IFC4_3.IfcControl(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2000195564: (ID, a) => new IFC4_3.IfcCosineSpiral(ID, a[0], a[1], a[2]),\n  3895139033: (ID, a) => new IFC4_3.IfcCostItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1419761937: (ID, a) => new IFC4_3.IfcCostSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4189326743: (ID, a) => new IFC4_3.IfcCourseType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1916426348: (ID, a) => new IFC4_3.IfcCoveringType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3295246426: (ID, a) => new IFC4_3.IfcCrewResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1457835157: (ID, a) => new IFC4_3.IfcCurtainWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1213902940: (ID, a) => new IFC4_3.IfcCylindricalSurface(ID, a[0], a[1]),\n  1306400036: (ID, a) => new IFC4_3.IfcDeepFoundationType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4234616927: (ID, a) => new IFC4_3.IfcDirectrixDerivedReferenceSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3256556792: (ID, a) => new IFC4_3.IfcDistributionElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3849074793: (ID, a) => new IFC4_3.IfcDistributionFlowElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2963535650: (ID, a) => new IFC4_3.IfcDoorLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  1714330368: (ID, a) => new IFC4_3.IfcDoorPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2323601079: (ID, a) => new IFC4_3.IfcDoorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  445594917: (ID, a) => new IFC4_3.IfcDraughtingPreDefinedColour(ID, a[0]),\n  4006246654: (ID, a) => new IFC4_3.IfcDraughtingPreDefinedCurveFont(ID, a[0]),\n  1758889154: (ID, a) => new IFC4_3.IfcElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4123344466: (ID, a) => new IFC4_3.IfcElementAssembly(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2397081782: (ID, a) => new IFC4_3.IfcElementAssemblyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1623761950: (ID, a) => new IFC4_3.IfcElementComponent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2590856083: (ID, a) => new IFC4_3.IfcElementComponentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1704287377: (ID, a) => new IFC4_3.IfcEllipse(ID, a[0], a[1], a[2]),\n  2107101300: (ID, a) => new IFC4_3.IfcEnergyConversionDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  132023988: (ID, a) => new IFC4_3.IfcEngineType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3174744832: (ID, a) => new IFC4_3.IfcEvaporativeCoolerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3390157468: (ID, a) => new IFC4_3.IfcEvaporatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4148101412: (ID, a) => new IFC4_3.IfcEvent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2853485674: (ID, a) => new IFC4_3.IfcExternalSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  807026263: (ID, a) => new IFC4_3.IfcFacetedBrep(ID, a[0]),\n  3737207727: (ID, a) => new IFC4_3.IfcFacetedBrepWithVoids(ID, a[0], a[1]),\n  24185140: (ID, a) => new IFC4_3.IfcFacility(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1310830890: (ID, a) => new IFC4_3.IfcFacilityPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4228831410: (ID, a) => new IFC4_3.IfcFacilityPartCommon(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  647756555: (ID, a) => new IFC4_3.IfcFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2489546625: (ID, a) => new IFC4_3.IfcFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2827207264: (ID, a) => new IFC4_3.IfcFeatureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2143335405: (ID, a) => new IFC4_3.IfcFeatureElementAddition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1287392070: (ID, a) => new IFC4_3.IfcFeatureElementSubtraction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3907093117: (ID, a) => new IFC4_3.IfcFlowControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3198132628: (ID, a) => new IFC4_3.IfcFlowFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3815607619: (ID, a) => new IFC4_3.IfcFlowMeterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1482959167: (ID, a) => new IFC4_3.IfcFlowMovingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1834744321: (ID, a) => new IFC4_3.IfcFlowSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1339347760: (ID, a) => new IFC4_3.IfcFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2297155007: (ID, a) => new IFC4_3.IfcFlowTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3009222698: (ID, a) => new IFC4_3.IfcFlowTreatmentDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1893162501: (ID, a) => new IFC4_3.IfcFootingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  263784265: (ID, a) => new IFC4_3.IfcFurnishingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1509553395: (ID, a) => new IFC4_3.IfcFurniture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3493046030: (ID, a) => new IFC4_3.IfcGeographicElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4230923436: (ID, a) => new IFC4_3.IfcGeotechnicalElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1594536857: (ID, a) => new IFC4_3.IfcGeotechnicalStratum(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2898700619: (ID, a) => new IFC4_3.IfcGradientCurve(ID, a[0], a[1], a[2], a[3]),\n  2706460486: (ID, a) => new IFC4_3.IfcGroup(ID, a[0], a[1], a[2], a[3], a[4]),\n  1251058090: (ID, a) => new IFC4_3.IfcHeatExchangerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1806887404: (ID, a) => new IFC4_3.IfcHumidifierType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2568555532: (ID, a) => new IFC4_3.IfcImpactProtectionDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3948183225: (ID, a) => new IFC4_3.IfcImpactProtectionDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2571569899: (ID, a) => new IFC4_3.IfcIndexedPolyCurve(ID, a[0], a[1], a[2]),\n  3946677679: (ID, a) => new IFC4_3.IfcInterceptorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3113134337: (ID, a) => new IFC4_3.IfcIntersectionCurve(ID, a[0], a[1], a[2]),\n  2391368822: (ID, a) => new IFC4_3.IfcInventory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4288270099: (ID, a) => new IFC4_3.IfcJunctionBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  679976338: (ID, a) => new IFC4_3.IfcKerbType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3827777499: (ID, a) => new IFC4_3.IfcLaborResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1051575348: (ID, a) => new IFC4_3.IfcLampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1161773419: (ID, a) => new IFC4_3.IfcLightFixtureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2176059722: (ID, a) => new IFC4_3.IfcLinearElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1770583370: (ID, a) => new IFC4_3.IfcLiquidTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  525669439: (ID, a) => new IFC4_3.IfcMarineFacility(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  976884017: (ID, a) => new IFC4_3.IfcMarinePart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  377706215: (ID, a) => new IFC4_3.IfcMechanicalFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2108223431: (ID, a) => new IFC4_3.IfcMechanicalFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1114901282: (ID, a) => new IFC4_3.IfcMedicalDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3181161470: (ID, a) => new IFC4_3.IfcMemberType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1950438474: (ID, a) => new IFC4_3.IfcMobileTelecommunicationsApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  710110818: (ID, a) => new IFC4_3.IfcMooringDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  977012517: (ID, a) => new IFC4_3.IfcMotorConnectionType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  506776471: (ID, a) => new IFC4_3.IfcNavigationElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4143007308: (ID, a) => new IFC4_3.IfcOccupant(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3588315303: (ID, a) => new IFC4_3.IfcOpeningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2837617999: (ID, a) => new IFC4_3.IfcOutletType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  514975943: (ID, a) => new IFC4_3.IfcPavementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2382730787: (ID, a) => new IFC4_3.IfcPerformanceHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3566463478: (ID, a) => new IFC4_3.IfcPermeableCoveringProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3327091369: (ID, a) => new IFC4_3.IfcPermit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1158309216: (ID, a) => new IFC4_3.IfcPileType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  804291784: (ID, a) => new IFC4_3.IfcPipeFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4231323485: (ID, a) => new IFC4_3.IfcPipeSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4017108033: (ID, a) => new IFC4_3.IfcPlateType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2839578677: (ID, a) => new IFC4_3.IfcPolygonalFaceSet(ID, a[0], a[1], a[2], a[3]),\n  3724593414: (ID, a) => new IFC4_3.IfcPolyline(ID, a[0]),\n  3740093272: (ID, a) => new IFC4_3.IfcPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1946335990: (ID, a) => new IFC4_3.IfcPositioningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2744685151: (ID, a) => new IFC4_3.IfcProcedure(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2904328755: (ID, a) => new IFC4_3.IfcProjectOrder(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3651124850: (ID, a) => new IFC4_3.IfcProjectionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1842657554: (ID, a) => new IFC4_3.IfcProtectiveDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2250791053: (ID, a) => new IFC4_3.IfcPumpType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1763565496: (ID, a) => new IFC4_3.IfcRailType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2893384427: (ID, a) => new IFC4_3.IfcRailingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3992365140: (ID, a) => new IFC4_3.IfcRailway(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1891881377: (ID, a) => new IFC4_3.IfcRailwayPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2324767716: (ID, a) => new IFC4_3.IfcRampFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1469900589: (ID, a) => new IFC4_3.IfcRampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  683857671: (ID, a) => new IFC4_3.IfcRationalBSplineSurfaceWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  4021432810: (ID, a) => new IFC4_3.IfcReferent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3027567501: (ID, a) => new IFC4_3.IfcReinforcingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  964333572: (ID, a) => new IFC4_3.IfcReinforcingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2320036040: (ID, a) => new IFC4_3.IfcReinforcingMesh(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),\n  2310774935: (ID, a) => new IFC4_3.IfcReinforcingMeshType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),\n  3818125796: (ID, a) => new IFC4_3.IfcRelAdheresToElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  160246688: (ID, a) => new IFC4_3.IfcRelAggregates(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  146592293: (ID, a) => new IFC4_3.IfcRoad(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  550521510: (ID, a) => new IFC4_3.IfcRoadPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2781568857: (ID, a) => new IFC4_3.IfcRoofType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1768891740: (ID, a) => new IFC4_3.IfcSanitaryTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2157484638: (ID, a) => new IFC4_3.IfcSeamCurve(ID, a[0], a[1], a[2]),\n  3649235739: (ID, a) => new IFC4_3.IfcSecondOrderPolynomialSpiral(ID, a[0], a[1], a[2], a[3]),\n  544395925: (ID, a) => new IFC4_3.IfcSegmentedReferenceCurve(ID, a[0], a[1], a[2], a[3]),\n  1027922057: (ID, a) => new IFC4_3.IfcSeventhOrderPolynomialSpiral(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4074543187: (ID, a) => new IFC4_3.IfcShadingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  33720170: (ID, a) => new IFC4_3.IfcSign(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3599934289: (ID, a) => new IFC4_3.IfcSignType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1894708472: (ID, a) => new IFC4_3.IfcSignalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  42703149: (ID, a) => new IFC4_3.IfcSineSpiral(ID, a[0], a[1], a[2], a[3]),\n  4097777520: (ID, a) => new IFC4_3.IfcSite(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  2533589738: (ID, a) => new IFC4_3.IfcSlabType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1072016465: (ID, a) => new IFC4_3.IfcSolarDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3856911033: (ID, a) => new IFC4_3.IfcSpace(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1305183839: (ID, a) => new IFC4_3.IfcSpaceHeaterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3812236995: (ID, a) => new IFC4_3.IfcSpaceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3112655638: (ID, a) => new IFC4_3.IfcStackTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1039846685: (ID, a) => new IFC4_3.IfcStairFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  338393293: (ID, a) => new IFC4_3.IfcStairType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  682877961: (ID, a) => new IFC4_3.IfcStructuralAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1179482911: (ID, a) => new IFC4_3.IfcStructuralConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1004757350: (ID, a) => new IFC4_3.IfcStructuralCurveAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  4243806635: (ID, a) => new IFC4_3.IfcStructuralCurveConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  214636428: (ID, a) => new IFC4_3.IfcStructuralCurveMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2445595289: (ID, a) => new IFC4_3.IfcStructuralCurveMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2757150158: (ID, a) => new IFC4_3.IfcStructuralCurveReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1807405624: (ID, a) => new IFC4_3.IfcStructuralLinearAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1252848954: (ID, a) => new IFC4_3.IfcStructuralLoadGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2082059205: (ID, a) => new IFC4_3.IfcStructuralPointAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  734778138: (ID, a) => new IFC4_3.IfcStructuralPointConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1235345126: (ID, a) => new IFC4_3.IfcStructuralPointReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2986769608: (ID, a) => new IFC4_3.IfcStructuralResultGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3657597509: (ID, a) => new IFC4_3.IfcStructuralSurfaceAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1975003073: (ID, a) => new IFC4_3.IfcStructuralSurfaceConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  148013059: (ID, a) => new IFC4_3.IfcSubContractResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3101698114: (ID, a) => new IFC4_3.IfcSurfaceFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2315554128: (ID, a) => new IFC4_3.IfcSwitchingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2254336722: (ID, a) => new IFC4_3.IfcSystem(ID, a[0], a[1], a[2], a[3], a[4]),\n  413509423: (ID, a) => new IFC4_3.IfcSystemFurnitureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  5716631: (ID, a) => new IFC4_3.IfcTankType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3824725483: (ID, a) => new IFC4_3.IfcTendon(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  2347447852: (ID, a) => new IFC4_3.IfcTendonAnchor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3081323446: (ID, a) => new IFC4_3.IfcTendonAnchorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3663046924: (ID, a) => new IFC4_3.IfcTendonConduit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2281632017: (ID, a) => new IFC4_3.IfcTendonConduitType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2415094496: (ID, a) => new IFC4_3.IfcTendonType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  618700268: (ID, a) => new IFC4_3.IfcTrackElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1692211062: (ID, a) => new IFC4_3.IfcTransformerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2097647324: (ID, a) => new IFC4_3.IfcTransportElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1953115116: (ID, a) => new IFC4_3.IfcTransportationDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3593883385: (ID, a) => new IFC4_3.IfcTrimmedCurve(ID, a[0], a[1], a[2], a[3], a[4]),\n  1600972822: (ID, a) => new IFC4_3.IfcTubeBundleType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1911125066: (ID, a) => new IFC4_3.IfcUnitaryEquipmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  728799441: (ID, a) => new IFC4_3.IfcValveType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  840318589: (ID, a) => new IFC4_3.IfcVehicle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1530820697: (ID, a) => new IFC4_3.IfcVibrationDamper(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3956297820: (ID, a) => new IFC4_3.IfcVibrationDamperType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2391383451: (ID, a) => new IFC4_3.IfcVibrationIsolator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3313531582: (ID, a) => new IFC4_3.IfcVibrationIsolatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2769231204: (ID, a) => new IFC4_3.IfcVirtualElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  926996030: (ID, a) => new IFC4_3.IfcVoidingFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1898987631: (ID, a) => new IFC4_3.IfcWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1133259667: (ID, a) => new IFC4_3.IfcWasteTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4009809668: (ID, a) => new IFC4_3.IfcWindowType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  4088093105: (ID, a) => new IFC4_3.IfcWorkCalendar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1028945134: (ID, a) => new IFC4_3.IfcWorkControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  4218914973: (ID, a) => new IFC4_3.IfcWorkPlan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  3342526732: (ID, a) => new IFC4_3.IfcWorkSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  1033361043: (ID, a) => new IFC4_3.IfcZone(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3821786052: (ID, a) => new IFC4_3.IfcActionRequest(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1411407467: (ID, a) => new IFC4_3.IfcAirTerminalBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3352864051: (ID, a) => new IFC4_3.IfcAirTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1871374353: (ID, a) => new IFC4_3.IfcAirToAirHeatRecoveryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4266260250: (ID, a) => new IFC4_3.IfcAlignmentCant(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1545765605: (ID, a) => new IFC4_3.IfcAlignmentHorizontal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  317615605: (ID, a) => new IFC4_3.IfcAlignmentSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1662888072: (ID, a) => new IFC4_3.IfcAlignmentVertical(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3460190687: (ID, a) => new IFC4_3.IfcAsset(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  1532957894: (ID, a) => new IFC4_3.IfcAudioVisualApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1967976161: (ID, a) => new IFC4_3.IfcBSplineCurve(ID, a[0], a[1], a[2], a[3], a[4]),\n  2461110595: (ID, a) => new IFC4_3.IfcBSplineCurveWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  819618141: (ID, a) => new IFC4_3.IfcBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3649138523: (ID, a) => new IFC4_3.IfcBearingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  231477066: (ID, a) => new IFC4_3.IfcBoilerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1136057603: (ID, a) => new IFC4_3.IfcBoundaryCurve(ID, a[0], a[1]),\n  644574406: (ID, a) => new IFC4_3.IfcBridge(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  963979645: (ID, a) => new IFC4_3.IfcBridgePart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4031249490: (ID, a) => new IFC4_3.IfcBuilding(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2979338954: (ID, a) => new IFC4_3.IfcBuildingElementPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  39481116: (ID, a) => new IFC4_3.IfcBuildingElementPartType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1909888760: (ID, a) => new IFC4_3.IfcBuildingElementProxyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1177604601: (ID, a) => new IFC4_3.IfcBuildingSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1876633798: (ID, a) => new IFC4_3.IfcBuiltElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3862327254: (ID, a) => new IFC4_3.IfcBuiltSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2188180465: (ID, a) => new IFC4_3.IfcBurnerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  395041908: (ID, a) => new IFC4_3.IfcCableCarrierFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3293546465: (ID, a) => new IFC4_3.IfcCableCarrierSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2674252688: (ID, a) => new IFC4_3.IfcCableFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1285652485: (ID, a) => new IFC4_3.IfcCableSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3203706013: (ID, a) => new IFC4_3.IfcCaissonFoundationType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2951183804: (ID, a) => new IFC4_3.IfcChillerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3296154744: (ID, a) => new IFC4_3.IfcChimney(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2611217952: (ID, a) => new IFC4_3.IfcCircle(ID, a[0], a[1]),\n  1677625105: (ID, a) => new IFC4_3.IfcCivilElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2301859152: (ID, a) => new IFC4_3.IfcCoilType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  843113511: (ID, a) => new IFC4_3.IfcColumn(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  400855858: (ID, a) => new IFC4_3.IfcCommunicationsApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3850581409: (ID, a) => new IFC4_3.IfcCompressorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2816379211: (ID, a) => new IFC4_3.IfcCondenserType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3898045240: (ID, a) => new IFC4_3.IfcConstructionEquipmentResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1060000209: (ID, a) => new IFC4_3.IfcConstructionMaterialResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  488727124: (ID, a) => new IFC4_3.IfcConstructionProductResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2940368186: (ID, a) => new IFC4_3.IfcConveyorSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  335055490: (ID, a) => new IFC4_3.IfcCooledBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2954562838: (ID, a) => new IFC4_3.IfcCoolingTowerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1502416096: (ID, a) => new IFC4_3.IfcCourse(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1973544240: (ID, a) => new IFC4_3.IfcCovering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3495092785: (ID, a) => new IFC4_3.IfcCurtainWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3961806047: (ID, a) => new IFC4_3.IfcDamperType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3426335179: (ID, a) => new IFC4_3.IfcDeepFoundation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1335981549: (ID, a) => new IFC4_3.IfcDiscreteAccessory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2635815018: (ID, a) => new IFC4_3.IfcDiscreteAccessoryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  479945903: (ID, a) => new IFC4_3.IfcDistributionBoardType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1599208980: (ID, a) => new IFC4_3.IfcDistributionChamberElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2063403501: (ID, a) => new IFC4_3.IfcDistributionControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1945004755: (ID, a) => new IFC4_3.IfcDistributionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3040386961: (ID, a) => new IFC4_3.IfcDistributionFlowElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3041715199: (ID, a) => new IFC4_3.IfcDistributionPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3205830791: (ID, a) => new IFC4_3.IfcDistributionSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  395920057: (ID, a) => new IFC4_3.IfcDoor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  869906466: (ID, a) => new IFC4_3.IfcDuctFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3760055223: (ID, a) => new IFC4_3.IfcDuctSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2030761528: (ID, a) => new IFC4_3.IfcDuctSilencerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3071239417: (ID, a) => new IFC4_3.IfcEarthworksCut(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1077100507: (ID, a) => new IFC4_3.IfcEarthworksElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3376911765: (ID, a) => new IFC4_3.IfcEarthworksFill(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  663422040: (ID, a) => new IFC4_3.IfcElectricApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2417008758: (ID, a) => new IFC4_3.IfcElectricDistributionBoardType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3277789161: (ID, a) => new IFC4_3.IfcElectricFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2142170206: (ID, a) => new IFC4_3.IfcElectricFlowTreatmentDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1534661035: (ID, a) => new IFC4_3.IfcElectricGeneratorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1217240411: (ID, a) => new IFC4_3.IfcElectricMotorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  712377611: (ID, a) => new IFC4_3.IfcElectricTimeControlType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1658829314: (ID, a) => new IFC4_3.IfcEnergyConversionDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2814081492: (ID, a) => new IFC4_3.IfcEngine(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3747195512: (ID, a) => new IFC4_3.IfcEvaporativeCooler(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  484807127: (ID, a) => new IFC4_3.IfcEvaporator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1209101575: (ID, a) => new IFC4_3.IfcExternalSpatialElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  346874300: (ID, a) => new IFC4_3.IfcFanType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1810631287: (ID, a) => new IFC4_3.IfcFilterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4222183408: (ID, a) => new IFC4_3.IfcFireSuppressionTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2058353004: (ID, a) => new IFC4_3.IfcFlowController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4278956645: (ID, a) => new IFC4_3.IfcFlowFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4037862832: (ID, a) => new IFC4_3.IfcFlowInstrumentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2188021234: (ID, a) => new IFC4_3.IfcFlowMeter(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3132237377: (ID, a) => new IFC4_3.IfcFlowMovingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  987401354: (ID, a) => new IFC4_3.IfcFlowSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  707683696: (ID, a) => new IFC4_3.IfcFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2223149337: (ID, a) => new IFC4_3.IfcFlowTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3508470533: (ID, a) => new IFC4_3.IfcFlowTreatmentDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  900683007: (ID, a) => new IFC4_3.IfcFooting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2713699986: (ID, a) => new IFC4_3.IfcGeotechnicalAssembly(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3009204131: (ID, a) => new IFC4_3.IfcGrid(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3319311131: (ID, a) => new IFC4_3.IfcHeatExchanger(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2068733104: (ID, a) => new IFC4_3.IfcHumidifier(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4175244083: (ID, a) => new IFC4_3.IfcInterceptor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2176052936: (ID, a) => new IFC4_3.IfcJunctionBox(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2696325953: (ID, a) => new IFC4_3.IfcKerb(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  76236018: (ID, a) => new IFC4_3.IfcLamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  629592764: (ID, a) => new IFC4_3.IfcLightFixture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1154579445: (ID, a) => new IFC4_3.IfcLinearPositioningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1638804497: (ID, a) => new IFC4_3.IfcLiquidTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1437502449: (ID, a) => new IFC4_3.IfcMedicalDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1073191201: (ID, a) => new IFC4_3.IfcMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2078563270: (ID, a) => new IFC4_3.IfcMobileTelecommunicationsAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  234836483: (ID, a) => new IFC4_3.IfcMooringDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2474470126: (ID, a) => new IFC4_3.IfcMotorConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2182337498: (ID, a) => new IFC4_3.IfcNavigationElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  144952367: (ID, a) => new IFC4_3.IfcOuterBoundaryCurve(ID, a[0], a[1]),\n  3694346114: (ID, a) => new IFC4_3.IfcOutlet(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1383356374: (ID, a) => new IFC4_3.IfcPavement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1687234759: (ID, a) => new IFC4_3.IfcPile(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  310824031: (ID, a) => new IFC4_3.IfcPipeFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3612865200: (ID, a) => new IFC4_3.IfcPipeSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3171933400: (ID, a) => new IFC4_3.IfcPlate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  738039164: (ID, a) => new IFC4_3.IfcProtectiveDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  655969474: (ID, a) => new IFC4_3.IfcProtectiveDeviceTrippingUnitType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  90941305: (ID, a) => new IFC4_3.IfcPump(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3290496277: (ID, a) => new IFC4_3.IfcRail(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2262370178: (ID, a) => new IFC4_3.IfcRailing(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3024970846: (ID, a) => new IFC4_3.IfcRamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3283111854: (ID, a) => new IFC4_3.IfcRampFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1232101972: (ID, a) => new IFC4_3.IfcRationalBSplineCurveWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3798194928: (ID, a) => new IFC4_3.IfcReinforcedSoil(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  979691226: (ID, a) => new IFC4_3.IfcReinforcingBar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  2572171363: (ID, a) => new IFC4_3.IfcReinforcingBarType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),\n  2016517767: (ID, a) => new IFC4_3.IfcRoof(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3053780830: (ID, a) => new IFC4_3.IfcSanitaryTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1783015770: (ID, a) => new IFC4_3.IfcSensorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1329646415: (ID, a) => new IFC4_3.IfcShadingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  991950508: (ID, a) => new IFC4_3.IfcSignal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1529196076: (ID, a) => new IFC4_3.IfcSlab(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3420628829: (ID, a) => new IFC4_3.IfcSolarDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1999602285: (ID, a) => new IFC4_3.IfcSpaceHeater(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1404847402: (ID, a) => new IFC4_3.IfcStackTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  331165859: (ID, a) => new IFC4_3.IfcStair(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4252922144: (ID, a) => new IFC4_3.IfcStairFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  2515109513: (ID, a) => new IFC4_3.IfcStructuralAnalysisModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  385403989: (ID, a) => new IFC4_3.IfcStructuralLoadCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1621171031: (ID, a) => new IFC4_3.IfcStructuralPlanarAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1162798199: (ID, a) => new IFC4_3.IfcSwitchingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  812556717: (ID, a) => new IFC4_3.IfcTank(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3425753595: (ID, a) => new IFC4_3.IfcTrackElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3825984169: (ID, a) => new IFC4_3.IfcTransformer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1620046519: (ID, a) => new IFC4_3.IfcTransportElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3026737570: (ID, a) => new IFC4_3.IfcTubeBundle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3179687236: (ID, a) => new IFC4_3.IfcUnitaryControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4292641817: (ID, a) => new IFC4_3.IfcUnitaryEquipment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4207607924: (ID, a) => new IFC4_3.IfcValve(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2391406946: (ID, a) => new IFC4_3.IfcWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3512223829: (ID, a) => new IFC4_3.IfcWallStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4237592921: (ID, a) => new IFC4_3.IfcWasteTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3304561284: (ID, a) => new IFC4_3.IfcWindow(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  2874132201: (ID, a) => new IFC4_3.IfcActuatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1634111441: (ID, a) => new IFC4_3.IfcAirTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  177149247: (ID, a) => new IFC4_3.IfcAirTerminalBox(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2056796094: (ID, a) => new IFC4_3.IfcAirToAirHeatRecovery(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3001207471: (ID, a) => new IFC4_3.IfcAlarmType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  325726236: (ID, a) => new IFC4_3.IfcAlignment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  277319702: (ID, a) => new IFC4_3.IfcAudioVisualAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  753842376: (ID, a) => new IFC4_3.IfcBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4196446775: (ID, a) => new IFC4_3.IfcBearing(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  32344328: (ID, a) => new IFC4_3.IfcBoiler(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3314249567: (ID, a) => new IFC4_3.IfcBorehole(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1095909175: (ID, a) => new IFC4_3.IfcBuildingElementProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2938176219: (ID, a) => new IFC4_3.IfcBurner(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  635142910: (ID, a) => new IFC4_3.IfcCableCarrierFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3758799889: (ID, a) => new IFC4_3.IfcCableCarrierSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1051757585: (ID, a) => new IFC4_3.IfcCableFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4217484030: (ID, a) => new IFC4_3.IfcCableSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3999819293: (ID, a) => new IFC4_3.IfcCaissonFoundation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3902619387: (ID, a) => new IFC4_3.IfcChiller(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  639361253: (ID, a) => new IFC4_3.IfcCoil(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3221913625: (ID, a) => new IFC4_3.IfcCommunicationsAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3571504051: (ID, a) => new IFC4_3.IfcCompressor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2272882330: (ID, a) => new IFC4_3.IfcCondenser(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  578613899: (ID, a) => new IFC4_3.IfcControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3460952963: (ID, a) => new IFC4_3.IfcConveyorSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4136498852: (ID, a) => new IFC4_3.IfcCooledBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3640358203: (ID, a) => new IFC4_3.IfcCoolingTower(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4074379575: (ID, a) => new IFC4_3.IfcDamper(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3693000487: (ID, a) => new IFC4_3.IfcDistributionBoard(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1052013943: (ID, a) => new IFC4_3.IfcDistributionChamberElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  562808652: (ID, a) => new IFC4_3.IfcDistributionCircuit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1062813311: (ID, a) => new IFC4_3.IfcDistributionControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  342316401: (ID, a) => new IFC4_3.IfcDuctFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3518393246: (ID, a) => new IFC4_3.IfcDuctSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1360408905: (ID, a) => new IFC4_3.IfcDuctSilencer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1904799276: (ID, a) => new IFC4_3.IfcElectricAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  862014818: (ID, a) => new IFC4_3.IfcElectricDistributionBoard(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3310460725: (ID, a) => new IFC4_3.IfcElectricFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  24726584: (ID, a) => new IFC4_3.IfcElectricFlowTreatmentDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  264262732: (ID, a) => new IFC4_3.IfcElectricGenerator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  402227799: (ID, a) => new IFC4_3.IfcElectricMotor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1003880860: (ID, a) => new IFC4_3.IfcElectricTimeControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3415622556: (ID, a) => new IFC4_3.IfcFan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  819412036: (ID, a) => new IFC4_3.IfcFilter(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1426591983: (ID, a) => new IFC4_3.IfcFireSuppressionTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  182646315: (ID, a) => new IFC4_3.IfcFlowInstrument(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2680139844: (ID, a) => new IFC4_3.IfcGeomodel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1971632696: (ID, a) => new IFC4_3.IfcGeoslice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2295281155: (ID, a) => new IFC4_3.IfcProtectiveDeviceTrippingUnit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4086658281: (ID, a) => new IFC4_3.IfcSensor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  630975310: (ID, a) => new IFC4_3.IfcUnitaryControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4288193352: (ID, a) => new IFC4_3.IfcActuator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3087945054: (ID, a) => new IFC4_3.IfcAlarm(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  25142252: (ID, a) => new IFC4_3.IfcController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])\n};\nToRawLineData[2] = {\n  3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],\n  618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],\n  2879124712: (i) => [i.StartTag, i.EndTag],\n  3633395639: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartHeight, i.StartGradient, i.EndGradient, i.RadiusOfCurvature, i.PredefinedType],\n  639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],\n  411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],\n  130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval],\n  4037036970: (i) => [i.Name],\n  1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)],\n  3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)],\n  1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)],\n  2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)],\n  2859738748: (_) => [],\n  2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],\n  2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],\n  775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement],\n  1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],\n  1785450214: (i) => [i.SourceCRS, i.TargetCRS],\n  1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum],\n  602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],\n  1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType, i.Name],\n  1045800335: (i) => [i.Unit, i.Exponent],\n  2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],\n  4294318154: (_) => [],\n  3200245327: (i) => [i.Location, i.Identification, i.Name],\n  2242383968: (i) => [i.Location, i.Identification, i.Name],\n  1040185647: (i) => [i.Location, i.Identification, i.Name],\n  3548104201: (i) => [i.Location, i.Identification, i.Name],\n  852622518: (i) => [i.AxisTag, i.AxisCurve, i.SameSense],\n  3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],\n  2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description],\n  3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary],\n  4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],\n  1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],\n  3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale, i.ScaleY, i.ScaleZ],\n  1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],\n  760658860: (_) => [],\n  248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated, i.Name, i.Description, i.Category, i.Priority],\n  3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description],\n  1847252529: (i) => [i.Material, i.LayerThickness, i.IsVentilated, i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues],\n  2199411900: (i) => [i.Materials],\n  2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category],\n  164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile],\n  552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues],\n  1507914824: (_) => [],\n  2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],\n  3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath],\n  2706619895: (i) => [i.Currency],\n  1918398963: (i) => [i.Dimensions, i.UnitType],\n  3701648758: (i) => [i.PlacementRelTo],\n  2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier],\n  4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses],\n  1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],\n  2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],\n  101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],\n  2483315170: (i) => [i.Name, i.Description],\n  2226359599: (i) => [i.Name, i.Description, i.Unit],\n  3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],\n  677532197: (_) => [],\n  2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],\n  1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles],\n  3119450353: (i) => [i.Name],\n  2095639259: (i) => [i.Name, i.Description, i.Representations],\n  3958567839: (i) => [i.ProfileType, i.ProfileName],\n  3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit],\n  986844984: (_) => [],\n  3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],\n  2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula],\n  2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula],\n  931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula],\n  2691318326: (i) => [i.Name, i.Description, i.Unit, i.NumberValue, i.Formula],\n  3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula],\n  2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula],\n  825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula],\n  3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods],\n  2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference],\n  1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  3377609919: (i) => [i.ContextIdentifier, i.ContextType],\n  3008791417: (_) => [],\n  1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],\n  2439245199: (i) => [i.Name, i.Description],\n  2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],\n  1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin],\n  867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape],\n  3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  2273995522: (i) => [i.Name],\n  2162789131: (i) => [i.Name],\n  3478079324: (i) => [i.Name, i.Values, i.Locations],\n  609421318: (i) => [i.Name],\n  2525727697: (i) => [i.Name],\n  3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ],\n  2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  3958052878: (i) => [i.Item, i.Styles, i.Name],\n  3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement],\n  1300840506: (i) => [i.Name, i.Side, i.Styles],\n  3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],\n  1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],\n  846575682: (i) => [i.SurfaceColour, i.Transparency],\n  1351298697: (i) => [i.Textures],\n  626085974: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter],\n  985171141: (i) => [i.Name, i.Rows, i.Columns],\n  2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath],\n  531007025: (i) => [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), i.IsHeading],\n  1549132990: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion],\n  2771591690: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence],\n  912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs],\n  1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, i.ModelOrDraughting],\n  2636378356: (i) => [i.Colour, i.BackgroundColour],\n  1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],\n  280115917: (i) => [i.Maps],\n  1742049831: (i) => [i.Maps, i.Mode, i.Parameter],\n  222769930: (i) => [i.TexCoordIndex, i.TexCoordsOf],\n  1010789467: (i) => [i.TexCoordIndex, i.TexCoordsOf, i.InnerTexCoordIndices],\n  2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo],\n  1210645708: (i) => [i.Coordinates],\n  3611470254: (i) => [i.TexCoordsList],\n  1199560280: (i) => [i.StartTime, i.EndTime],\n  3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],\n  581633288: (i) => [i.ListValues.map((p) => Labelise(p))],\n  1377556343: (_) => [],\n  1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  180925521: (i) => [i.Units],\n  2799835756: (_) => [],\n  1907098498: (i) => [i.VertexGeometry],\n  891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],\n  1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.StartDate, i.FinishDate],\n  3752311538: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartCantLeft, i.EndCantLeft, i.StartCantRight, i.EndCantRight, i.PredefinedType],\n  536804194: (i) => [i.StartTag, i.EndTag, i.StartPoint, i.StartDirection, i.StartRadiusOfCurvature, i.EndRadiusOfCurvature, i.SegmentLength, i.GravityCenterLineHeight, i.PredefinedType],\n  3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals],\n  3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],\n  1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],\n  2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],\n  616511568: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode],\n  3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],\n  747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Specification, i.ReferenceTokens],\n  647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort],\n  3285139300: (i) => [i.ColourList],\n  3264961684: (i) => [i.Name],\n  1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],\n  370225590: (i) => [i.CfsFaces],\n  1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],\n  45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],\n  3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],\n  2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],\n  2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset],\n  539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],\n  3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, i.ModelOrDraughting],\n  1105321065: (i) => [i.Name, i.PatternList],\n  2367409068: (i) => [i.Name, i.CurveStyleFont, i.CurveFontScaling],\n  3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],\n  3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n  1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],\n  770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],\n  3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument],\n  3900360178: (i) => [i.EdgeStart, i.EdgeEnd],\n  476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense],\n  211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate],\n  297599258: (i) => [i.Name, i.Description, i.Properties],\n  1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects],\n  2556980723: (i) => [i.Bounds],\n  1809719519: (i) => [i.Bound, i.Orientation],\n  803316827: (i) => [i.Bound, i.Orientation],\n  3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense],\n  4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],\n  738692330: (i) => [i.Name, i.FillStyles, i.ModelOrDraughting],\n  3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],\n  2453401579: (_) => [],\n  4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],\n  3590301190: (i) => [i.Elements],\n  178086475: (i) => [i.PlacementRelTo, i.PlacementLocation, i.PlacementRefDirection],\n  812098782: (i) => [i.BaseSurface, i.AgreementFlag],\n  3905492369: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.URLReference],\n  3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex],\n  1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords],\n  2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex],\n  3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],\n  1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType],\n  1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n  125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n  2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],\n  4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],\n  1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],\n  3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],\n  388784114: (i) => [i.PlacementRelTo, i.RelativePlacement, i.CartesianPosition],\n  2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],\n  1008929658: (_) => [],\n  2347385850: (i) => [i.MappingSource, i.MappingTarget],\n  1838606355: (i) => [i.Name, i.Description, i.Category],\n  3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category],\n  2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents],\n  2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],\n  1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent],\n  3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent],\n  3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint],\n  3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material],\n  853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.MaterialExpression],\n  2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n  219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  182550632: (i) => [i.ProfileType, i.ProfileName, i.HorizontalWidths, i.Widths, i.Slopes, i.Tags, i.OffsetPoint],\n  2665983363: (i) => [i.CfsFaces],\n  1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],\n  1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation],\n  2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],\n  2519244187: (i) => [i.EdgeList],\n  3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],\n  597895409: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel],\n  2004835150: (i) => [i.Location],\n  1663979128: (i) => [i.SizeInX, i.SizeInY],\n  2067069095: (_) => [],\n  2165702409: (i) => [Labelise(i.DistanceAlong), i.OffsetLateral, i.OffsetVertical, i.OffsetLongitudinal, i.BasisCurve],\n  4022376103: (i) => [i.BasisCurve, i.PointParameter],\n  1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],\n  2924175390: (i) => [i.Polygon],\n  2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary],\n  3727388367: (i) => [i.Name],\n  3778827333: (_) => [],\n  1775413392: (i) => [i.Name],\n  673634403: (i) => [i.Name, i.Description, i.Representations],\n  2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition],\n  2598011224: (i) => [i.Name, i.Specification],\n  1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression],\n  3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],\n  3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],\n  1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],\n  478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval],\n  1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects],\n  1042787934: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, i.IsOverAllocated, i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion],\n  2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],\n  2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],\n  4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],\n  1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],\n  823603102: (i) => [i.Transition],\n  4124623270: (i) => [i.SbsmBoundary],\n  3692461612: (i) => [i.Name, i.Specification],\n  2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],\n  723233188: (_) => [],\n  1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],\n  2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],\n  2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],\n  1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],\n  1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],\n  1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],\n  2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],\n  2513912981: (_) => [],\n  1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],\n  2247615214: (i) => [i.SweptArea, i.Position],\n  1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],\n  1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius],\n  230924584: (i) => [i.SweptCurve, i.Position],\n  3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope],\n  901063453: (_) => [],\n  4282788508: (i) => [i.Literal, i.Placement, i.Path],\n  3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],\n  1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],\n  2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],\n  1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],\n  3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType],\n  2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],\n  3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType],\n  427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope],\n  1417489154: (i) => [i.Orientation, i.Magnitude],\n  2759199220: (i) => [i.LoopVertex],\n  2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],\n  3406155212: (i) => [i.Bounds, i.FaceSurface, i.SameSense],\n  669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],\n  3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope],\n  4261334040: (i) => [i.Location, i.Axis],\n  3125803723: (i) => [i.Location, i.RefDirection],\n  2740243338: (i) => [i.Location, i.Axis, i.RefDirection],\n  3425423356: (i) => [i.Location, i.Axis, i.RefDirection],\n  2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n  4182860854: (_) => [],\n  2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],\n  2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure],\n  2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius],\n  1123145078: (i) => [i.Coordinates],\n  574549367: (_) => [],\n  1675464909: (i) => [i.CoordList, i.TagList],\n  2059837836: (i) => [i.CoordList, i.TagList],\n  59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n  3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n  3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],\n  3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],\n  1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],\n  1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],\n  2205249479: (i) => [i.CfsFaces],\n  776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],\n  2542286263: (i) => [i.Name, i.Specification, i.UsageName, i.HasProperties],\n  2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve],\n  2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity],\n  3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n  1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  2506170314: (i) => [i.Position],\n  2147822146: (i) => [i.TreeRootExpression],\n  2601014836: (_) => [],\n  2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],\n  2629017746: (i) => [i.BasisSurface, i.Boundaries, i.ImplicitOuter],\n  4212018352: (i) => [i.Transition, i.Placement, Labelise(i.SegmentStart), Labelise(i.SegmentLength), i.ParentCurve],\n  32440307: (i) => [i.DirectionRatios],\n  593015953: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam)],\n  1472233963: (i) => [i.EdgeList],\n  1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],\n  339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2777663545: (i) => [i.Position],\n  2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],\n  4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType],\n  477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],\n  2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea],\n  2047409740: (i) => [i.FbsmFaces],\n  374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],\n  315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],\n  2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference],\n  4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType],\n  4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  987898635: (i) => [i.Elements],\n  1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope],\n  178912537: (i) => [i.CoordIndex],\n  2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices],\n  3465909080: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndices],\n  572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope],\n  428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1281925730: (i) => [i.Pnt, i.Dir],\n  1425443689: (i) => [i.Outer],\n  3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  590820931: (i) => [i.BasisCurve],\n  3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect],\n  3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection],\n  2485787929: (i) => [i.BasisCurve, i.OffsetValues, i.Tag],\n  1682466193: (i) => [i.BasisSurface, i.ReferenceCurve],\n  603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],\n  220341763: (i) => [i.Position],\n  3381221214: (i) => [i.Position, i.CoefficientsX, i.CoefficientsY, i.CoefficientsZ],\n  759155922: (i) => [i.Name],\n  2559016684: (i) => [i.Name],\n  3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType],\n  2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],\n  4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n  653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n  871118103: (i) => [i.Name, i.Specification, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)],\n  4166981789: (i) => [i.Name, i.Specification, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],\n  2752243245: (i) => [i.Name, i.Specification, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit],\n  941946838: (i) => [i.Name, i.Specification, i.UsageName, i.PropertyReference],\n  1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],\n  492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates],\n  3650150729: (i) => [i.Name, i.Specification, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],\n  110355661: (i) => [i.Name, i.Specification, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation],\n  3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],\n  2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],\n  3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense],\n  3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],\n  3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],\n  1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],\n  2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n  1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],\n  1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor],\n  4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],\n  2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],\n  205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],\n  1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],\n  4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],\n  919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],\n  2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],\n  982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],\n  3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],\n  2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],\n  1033248425: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileDef],\n  826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],\n  3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],\n  4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],\n  3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],\n  2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],\n  1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],\n  504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],\n  3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],\n  3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n  886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],\n  2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings],\n  2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions],\n  2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject],\n  4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],\n  307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate],\n  781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],\n  3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],\n  279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],\n  427948657: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceSpace, i.InterferenceType, i.ImpliedOrder],\n  3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n  1441486842: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPositioningElement, i.RelatedProducts],\n  750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],\n  1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n  4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType],\n  366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],\n  3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],\n  3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary],\n  1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary],\n  1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],\n  816062949: (i) => [i.Transition, i.SameSense, i.ParentCurve, i.ParamLength],\n  2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],\n  1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],\n  3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea],\n  4158566097: (i) => [i.Position, i.Height, i.BottomRadius],\n  3626867408: (i) => [i.Position, i.Height, i.Radius],\n  1862484736: (i) => [i.Directrix, i.CrossSections],\n  1290935644: (i) => [i.Directrix, i.CrossSections, i.CrossSectionPositions],\n  1356537516: (i) => [i.Directrix, i.CrossSectionPositions, i.CrossSections],\n  3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState],\n  1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],\n  710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],\n  3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],\n  2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],\n  451544542: (i) => [i.Position, i.Radius],\n  4015995234: (i) => [i.Position, i.Radius],\n  2735484536: (i) => [i.Position],\n  3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n  2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n  603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],\n  4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n  2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.ReferenceSurface],\n  2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],\n  4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],\n  1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.TaskTime, i.PredefinedType],\n  3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod],\n  2387106220: (i) => [i.Coordinates, i.Closed],\n  782932809: (i) => [i.Position, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],\n  1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius],\n  3665877780: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2916149573: (i) => [i.Coordinates, i.Closed, i.Normals, i.CoordIndex, i.PnIndex],\n  1229763772: (i) => [i.Coordinates, i.Closed, i.Normals, i.CoordIndex, i.PnIndex, i.Flags],\n  3651464721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],\n  512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n  2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],\n  1635779807: (i) => [i.Outer],\n  2603310189: (i) => [i.Outer, i.Voids],\n  1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n  2887950389: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect],\n  167062518: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec],\n  1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],\n  3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n  1260505505: (_) => [],\n  3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],\n  1626504194: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],\n  3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3497074424: (i) => [i.Position, i.ClothoidConstant],\n  300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates],\n  3732776249: (i) => [i.Segments, i.SelfIntersect],\n  15328376: (i) => [i.Segments, i.SelfIntersect],\n  2510884976: (i) => [i.Position],\n  2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity],\n  3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification],\n  2000195564: (i) => [i.Position, i.CosineTerm, i.ConstantTerm],\n  3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities],\n  1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate],\n  4189326743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1213902940: (i) => [i.Position, i.Radius],\n  1306400036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  4234616927: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference],\n  3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],\n  1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],\n  2323601079: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, i.ParameterTakesPrecedence, i.UserDefinedOperationType],\n  445594917: (i) => [i.Name],\n  4006246654: (i) => [i.Name],\n  1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],\n  2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],\n  2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime],\n  2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],\n  807026263: (i) => [i.Outer],\n  3737207727: (i) => [i.Outer, i.Voids],\n  24185140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],\n  1310830890: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType],\n  4228831410: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n  647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4230923436: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1594536857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2898700619: (i) => [i.Segments, i.SelfIntersect, i.BaseCurve, i.EndPoint],\n  2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2568555532: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3948183225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2571569899: (i) => [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), i.SelfIntersect],\n  3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n  2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],\n  4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  679976338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.Mountable],\n  3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2176059722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  1770583370: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  525669439: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],\n  976884017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n  377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType],\n  2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength],\n  1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1950438474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  710110818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  506776471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],\n  3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  514975943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType],\n  3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n  3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n  1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2839578677: (i) => [i.Coordinates, i.Closed, i.Faces, i.PnIndex],\n  3724593414: (i) => [i.Points],\n  3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  1946335990: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType],\n  2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n  3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1763565496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3992365140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],\n  1891881377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n  2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  683857671: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData],\n  4021432810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n  3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],\n  964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType],\n  2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],\n  3818125796: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedSurfaceFeatures],\n  160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n  146592293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],\n  550521510: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n  2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n  3649235739: (i) => [i.Position, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],\n  544395925: (i) => [i.Segments, i.SelfIntersect, i.BaseCurve, i.EndPoint],\n  1027922057: (i) => [i.Position, i.SepticTerm, i.SexticTerm, i.QuinticTerm, i.QuarticTerm, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],\n  4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  33720170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3599934289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1894708472: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  42703149: (i) => [i.Position, i.SineTerm, i.LinearTerm, i.ConstantTerm],\n  4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],\n  2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring],\n  1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],\n  3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad],\n  1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n  1004757350: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType],\n  4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.AxisDirection],\n  214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],\n  2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],\n  2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],\n  1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType],\n  1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],\n  2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad],\n  734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem],\n  1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear],\n  3657597509: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType],\n  1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n  148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],\n  2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],\n  3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3663046924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],\n  2281632017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter],\n  618700268: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1953115116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation],\n  1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  840318589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1530820697: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3956297820: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4009809668: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, i.ParameterTakesPrecedence, i.UserDefinedPartitioningType],\n  4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType],\n  1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime],\n  4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],\n  3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],\n  1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName],\n  3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n  1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4266260250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.RailHeadDistance],\n  1545765605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  317615605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.DesignParameters],\n  1662888072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],\n  1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect],\n  2461110595: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.KnotMultiplicities, i.Knots, i.KnotSpec],\n  819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3649138523: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1136057603: (i) => [i.Segments, i.SelfIntersect],\n  644574406: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],\n  963979645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n  4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],\n  2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],\n  1876633798: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3862327254: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],\n  2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3203706013: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2611217952: (i) => [i.Position, i.Radius],\n  1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  2940368186: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1502416096: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3426335179: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  479945903: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType],\n  3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],\n  395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],\n  869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3071239417: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1077100507: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3376911765: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2142170206: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],\n  346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2713699986: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType],\n  3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2696325953: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.Mountable],\n  76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1154579445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  1638804497: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2078563270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  234836483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2182337498: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  144952367: (i) => [i.Segments, i.SelfIntersect],\n  3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1383356374: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],\n  310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3290496277: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1232101972: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData],\n  3798194928: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface],\n  2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],\n  2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  991950508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType],\n  2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement],\n  385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients],\n  1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType],\n  1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3425753595: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],\n  2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  325726236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n  277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4196446775: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3314249567: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3999819293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3460952963: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3693000487: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],\n  1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  24726584: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2680139844: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1971632696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType]\n};\nTypeInitialisers[2] = {\n  3699917729: (v) => new IFC4_3.IfcAbsorbedDoseMeasure(v),\n  4182062534: (v) => new IFC4_3.IfcAccelerationMeasure(v),\n  360377573: (v) => new IFC4_3.IfcAmountOfSubstanceMeasure(v),\n  632304761: (v) => new IFC4_3.IfcAngularVelocityMeasure(v),\n  3683503648: (v) => new IFC4_3.IfcArcIndex(v),\n  1500781891: (v) => new IFC4_3.IfcAreaDensityMeasure(v),\n  2650437152: (v) => new IFC4_3.IfcAreaMeasure(v),\n  2314439260: (v) => new IFC4_3.IfcBinary(v),\n  2735952531: (v) => new IFC4_3.IfcBoolean(v),\n  1867003952: (v) => new IFC4_3.IfcBoxAlignment(v),\n  1683019596: (v) => new IFC4_3.IfcCardinalPointReference(v),\n  2991860651: (v) => new IFC4_3.IfcComplexNumber(v),\n  3812528620: (v) => new IFC4_3.IfcCompoundPlaneAngleMeasure(v),\n  3238673880: (v) => new IFC4_3.IfcContextDependentMeasure(v),\n  1778710042: (v) => new IFC4_3.IfcCountMeasure(v),\n  94842927: (v) => new IFC4_3.IfcCurvatureMeasure(v),\n  937566702: (v) => new IFC4_3.IfcDate(v),\n  2195413836: (v) => new IFC4_3.IfcDateTime(v),\n  86635668: (v) => new IFC4_3.IfcDayInMonthNumber(v),\n  3701338814: (v) => new IFC4_3.IfcDayInWeekNumber(v),\n  1514641115: (v) => new IFC4_3.IfcDescriptiveMeasure(v),\n  4134073009: (v) => new IFC4_3.IfcDimensionCount(v),\n  524656162: (v) => new IFC4_3.IfcDoseEquivalentMeasure(v),\n  2541165894: (v) => new IFC4_3.IfcDuration(v),\n  69416015: (v) => new IFC4_3.IfcDynamicViscosityMeasure(v),\n  1827137117: (v) => new IFC4_3.IfcElectricCapacitanceMeasure(v),\n  3818826038: (v) => new IFC4_3.IfcElectricChargeMeasure(v),\n  2093906313: (v) => new IFC4_3.IfcElectricConductanceMeasure(v),\n  3790457270: (v) => new IFC4_3.IfcElectricCurrentMeasure(v),\n  2951915441: (v) => new IFC4_3.IfcElectricResistanceMeasure(v),\n  2506197118: (v) => new IFC4_3.IfcElectricVoltageMeasure(v),\n  2078135608: (v) => new IFC4_3.IfcEnergyMeasure(v),\n  1102727119: (v) => new IFC4_3.IfcFontStyle(v),\n  2715512545: (v) => new IFC4_3.IfcFontVariant(v),\n  2590844177: (v) => new IFC4_3.IfcFontWeight(v),\n  1361398929: (v) => new IFC4_3.IfcForceMeasure(v),\n  3044325142: (v) => new IFC4_3.IfcFrequencyMeasure(v),\n  3064340077: (v) => new IFC4_3.IfcGloballyUniqueId(v),\n  3113092358: (v) => new IFC4_3.IfcHeatFluxDensityMeasure(v),\n  1158859006: (v) => new IFC4_3.IfcHeatingValueMeasure(v),\n  983778844: (v) => new IFC4_3.IfcIdentifier(v),\n  3358199106: (v) => new IFC4_3.IfcIlluminanceMeasure(v),\n  2679005408: (v) => new IFC4_3.IfcInductanceMeasure(v),\n  1939436016: (v) => new IFC4_3.IfcInteger(v),\n  3809634241: (v) => new IFC4_3.IfcIntegerCountRateMeasure(v),\n  3686016028: (v) => new IFC4_3.IfcIonConcentrationMeasure(v),\n  3192672207: (v) => new IFC4_3.IfcIsothermalMoistureCapacityMeasure(v),\n  2054016361: (v) => new IFC4_3.IfcKinematicViscosityMeasure(v),\n  3258342251: (v) => new IFC4_3.IfcLabel(v),\n  1275358634: (v) => new IFC4_3.IfcLanguageId(v),\n  1243674935: (v) => new IFC4_3.IfcLengthMeasure(v),\n  1774176899: (v) => new IFC4_3.IfcLineIndex(v),\n  191860431: (v) => new IFC4_3.IfcLinearForceMeasure(v),\n  2128979029: (v) => new IFC4_3.IfcLinearMomentMeasure(v),\n  1307019551: (v) => new IFC4_3.IfcLinearStiffnessMeasure(v),\n  3086160713: (v) => new IFC4_3.IfcLinearVelocityMeasure(v),\n  503418787: (v) => new IFC4_3.IfcLogical(v),\n  2095003142: (v) => new IFC4_3.IfcLuminousFluxMeasure(v),\n  2755797622: (v) => new IFC4_3.IfcLuminousIntensityDistributionMeasure(v),\n  151039812: (v) => new IFC4_3.IfcLuminousIntensityMeasure(v),\n  286949696: (v) => new IFC4_3.IfcMagneticFluxDensityMeasure(v),\n  2486716878: (v) => new IFC4_3.IfcMagneticFluxMeasure(v),\n  1477762836: (v) => new IFC4_3.IfcMassDensityMeasure(v),\n  4017473158: (v) => new IFC4_3.IfcMassFlowRateMeasure(v),\n  3124614049: (v) => new IFC4_3.IfcMassMeasure(v),\n  3531705166: (v) => new IFC4_3.IfcMassPerLengthMeasure(v),\n  3341486342: (v) => new IFC4_3.IfcModulusOfElasticityMeasure(v),\n  2173214787: (v) => new IFC4_3.IfcModulusOfLinearSubgradeReactionMeasure(v),\n  1052454078: (v) => new IFC4_3.IfcModulusOfRotationalSubgradeReactionMeasure(v),\n  1753493141: (v) => new IFC4_3.IfcModulusOfSubgradeReactionMeasure(v),\n  3177669450: (v) => new IFC4_3.IfcMoistureDiffusivityMeasure(v),\n  1648970520: (v) => new IFC4_3.IfcMolecularWeightMeasure(v),\n  3114022597: (v) => new IFC4_3.IfcMomentOfInertiaMeasure(v),\n  2615040989: (v) => new IFC4_3.IfcMonetaryMeasure(v),\n  765770214: (v) => new IFC4_3.IfcMonthInYearNumber(v),\n  525895558: (v) => new IFC4_3.IfcNonNegativeLengthMeasure(v),\n  2095195183: (v) => new IFC4_3.IfcNormalisedRatioMeasure(v),\n  2395907400: (v) => new IFC4_3.IfcNumericMeasure(v),\n  929793134: (v) => new IFC4_3.IfcPHMeasure(v),\n  2260317790: (v) => new IFC4_3.IfcParameterValue(v),\n  2642773653: (v) => new IFC4_3.IfcPlanarForceMeasure(v),\n  4042175685: (v) => new IFC4_3.IfcPlaneAngleMeasure(v),\n  1790229001: (v) => new IFC4_3.IfcPositiveInteger(v),\n  2815919920: (v) => new IFC4_3.IfcPositiveLengthMeasure(v),\n  3054510233: (v) => new IFC4_3.IfcPositivePlaneAngleMeasure(v),\n  1245737093: (v) => new IFC4_3.IfcPositiveRatioMeasure(v),\n  1364037233: (v) => new IFC4_3.IfcPowerMeasure(v),\n  2169031380: (v) => new IFC4_3.IfcPresentableText(v),\n  3665567075: (v) => new IFC4_3.IfcPressureMeasure(v),\n  2798247006: (v) => new IFC4_3.IfcPropertySetDefinitionSet(v),\n  3972513137: (v) => new IFC4_3.IfcRadioActivityMeasure(v),\n  96294661: (v) => new IFC4_3.IfcRatioMeasure(v),\n  200335297: (v) => new IFC4_3.IfcReal(v),\n  2133746277: (v) => new IFC4_3.IfcRotationalFrequencyMeasure(v),\n  1755127002: (v) => new IFC4_3.IfcRotationalMassMeasure(v),\n  3211557302: (v) => new IFC4_3.IfcRotationalStiffnessMeasure(v),\n  3467162246: (v) => new IFC4_3.IfcSectionModulusMeasure(v),\n  2190458107: (v) => new IFC4_3.IfcSectionalAreaIntegralMeasure(v),\n  408310005: (v) => new IFC4_3.IfcShearModulusMeasure(v),\n  3471399674: (v) => new IFC4_3.IfcSolidAngleMeasure(v),\n  4157543285: (v) => new IFC4_3.IfcSoundPowerLevelMeasure(v),\n  846465480: (v) => new IFC4_3.IfcSoundPowerMeasure(v),\n  3457685358: (v) => new IFC4_3.IfcSoundPressureLevelMeasure(v),\n  993287707: (v) => new IFC4_3.IfcSoundPressureMeasure(v),\n  3477203348: (v) => new IFC4_3.IfcSpecificHeatCapacityMeasure(v),\n  2757832317: (v) => new IFC4_3.IfcSpecularExponent(v),\n  361837227: (v) => new IFC4_3.IfcSpecularRoughness(v),\n  58845555: (v) => new IFC4_3.IfcTemperatureGradientMeasure(v),\n  1209108979: (v) => new IFC4_3.IfcTemperatureRateOfChangeMeasure(v),\n  2801250643: (v) => new IFC4_3.IfcText(v),\n  1460886941: (v) => new IFC4_3.IfcTextAlignment(v),\n  3490877962: (v) => new IFC4_3.IfcTextDecoration(v),\n  603696268: (v) => new IFC4_3.IfcTextFontName(v),\n  296282323: (v) => new IFC4_3.IfcTextTransformation(v),\n  232962298: (v) => new IFC4_3.IfcThermalAdmittanceMeasure(v),\n  2645777649: (v) => new IFC4_3.IfcThermalConductivityMeasure(v),\n  2281867870: (v) => new IFC4_3.IfcThermalExpansionCoefficientMeasure(v),\n  857959152: (v) => new IFC4_3.IfcThermalResistanceMeasure(v),\n  2016195849: (v) => new IFC4_3.IfcThermalTransmittanceMeasure(v),\n  743184107: (v) => new IFC4_3.IfcThermodynamicTemperatureMeasure(v),\n  4075327185: (v) => new IFC4_3.IfcTime(v),\n  2726807636: (v) => new IFC4_3.IfcTimeMeasure(v),\n  2591213694: (v) => new IFC4_3.IfcTimeStamp(v),\n  1278329552: (v) => new IFC4_3.IfcTorqueMeasure(v),\n  950732822: (v) => new IFC4_3.IfcURIReference(v),\n  3345633955: (v) => new IFC4_3.IfcVaporPermeabilityMeasure(v),\n  3458127941: (v) => new IFC4_3.IfcVolumeMeasure(v),\n  2593997549: (v) => new IFC4_3.IfcVolumetricFlowRateMeasure(v),\n  51269191: (v) => new IFC4_3.IfcWarpingConstantMeasure(v),\n  1718600412: (v) => new IFC4_3.IfcWarpingMomentMeasure(v)\n};\nvar IFC4_3;\n(function(IFC4_32) {\n  class IfcAbsorbedDoseMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;\n  class IfcAccelerationMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcAccelerationMeasure = IfcAccelerationMeasure;\n  class IfcAmountOfSubstanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;\n  class IfcAngularVelocityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;\n  class IfcArcIndex {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC4_32.IfcArcIndex = IfcArcIndex;\n  class IfcAreaDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcAreaDensityMeasure = IfcAreaDensityMeasure;\n  class IfcAreaMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcAreaMeasure = IfcAreaMeasure;\n  class IfcBinary {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcBinary = IfcBinary;\n  class IfcBoolean {\n    constructor(value) {\n      this.value = value;\n      this.type = 3;\n    }\n  }\n  IFC4_32.IfcBoolean = IfcBoolean;\n  class IfcBoxAlignment {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcBoxAlignment = IfcBoxAlignment;\n  class IfcCardinalPointReference {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcCardinalPointReference = IfcCardinalPointReference;\n  class IfcComplexNumber {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC4_32.IfcComplexNumber = IfcComplexNumber;\n  class IfcCompoundPlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC4_32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;\n  class IfcContextDependentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcContextDependentMeasure = IfcContextDependentMeasure;\n  class IfcCountMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcCountMeasure = IfcCountMeasure;\n  class IfcCurvatureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcCurvatureMeasure = IfcCurvatureMeasure;\n  class IfcDate {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcDate = IfcDate;\n  class IfcDateTime {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcDateTime = IfcDateTime;\n  class IfcDayInMonthNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcDayInMonthNumber = IfcDayInMonthNumber;\n  class IfcDayInWeekNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcDayInWeekNumber = IfcDayInWeekNumber;\n  class IfcDescriptiveMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcDescriptiveMeasure = IfcDescriptiveMeasure;\n  class IfcDimensionCount {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcDimensionCount = IfcDimensionCount;\n  class IfcDoseEquivalentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;\n  class IfcDuration {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcDuration = IfcDuration;\n  class IfcDynamicViscosityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;\n  class IfcElectricCapacitanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;\n  class IfcElectricChargeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcElectricChargeMeasure = IfcElectricChargeMeasure;\n  class IfcElectricConductanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;\n  class IfcElectricCurrentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;\n  class IfcElectricResistanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;\n  class IfcElectricVoltageMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;\n  class IfcEnergyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcEnergyMeasure = IfcEnergyMeasure;\n  class IfcFontStyle {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcFontStyle = IfcFontStyle;\n  class IfcFontVariant {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcFontVariant = IfcFontVariant;\n  class IfcFontWeight {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcFontWeight = IfcFontWeight;\n  class IfcForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcForceMeasure = IfcForceMeasure;\n  class IfcFrequencyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcFrequencyMeasure = IfcFrequencyMeasure;\n  class IfcGloballyUniqueId {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcGloballyUniqueId = IfcGloballyUniqueId;\n  class IfcHeatFluxDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;\n  class IfcHeatingValueMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcHeatingValueMeasure = IfcHeatingValueMeasure;\n  class IfcIdentifier {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcIdentifier = IfcIdentifier;\n  class IfcIlluminanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcIlluminanceMeasure = IfcIlluminanceMeasure;\n  class IfcInductanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcInductanceMeasure = IfcInductanceMeasure;\n  class IfcInteger {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcInteger = IfcInteger;\n  class IfcIntegerCountRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;\n  class IfcIonConcentrationMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;\n  class IfcIsothermalMoistureCapacityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;\n  class IfcKinematicViscosityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;\n  class IfcLabel {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcLabel = IfcLabel;\n  class IfcLanguageId {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcLanguageId = IfcLanguageId;\n  class IfcLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcLengthMeasure = IfcLengthMeasure;\n  class IfcLineIndex {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC4_32.IfcLineIndex = IfcLineIndex;\n  class IfcLinearForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcLinearForceMeasure = IfcLinearForceMeasure;\n  class IfcLinearMomentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcLinearMomentMeasure = IfcLinearMomentMeasure;\n  class IfcLinearStiffnessMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;\n  class IfcLinearVelocityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;\n  class IfcLogical {\n    constructor(value) {\n      this.value = value;\n      this.type = 3;\n    }\n  }\n  IFC4_32.IfcLogical = IfcLogical;\n  class IfcLuminousFluxMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;\n  class IfcLuminousIntensityDistributionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;\n  class IfcLuminousIntensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;\n  class IfcMagneticFluxDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;\n  class IfcMagneticFluxMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;\n  class IfcMassDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMassDensityMeasure = IfcMassDensityMeasure;\n  class IfcMassFlowRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;\n  class IfcMassMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMassMeasure = IfcMassMeasure;\n  class IfcMassPerLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;\n  class IfcModulusOfElasticityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;\n  class IfcModulusOfLinearSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;\n  class IfcModulusOfRotationalSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;\n  class IfcModulusOfSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;\n  class IfcMoistureDiffusivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;\n  class IfcMolecularWeightMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;\n  class IfcMomentOfInertiaMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;\n  class IfcMonetaryMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMonetaryMeasure = IfcMonetaryMeasure;\n  class IfcMonthInYearNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcMonthInYearNumber = IfcMonthInYearNumber;\n  class IfcNonNegativeLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure;\n  class IfcNormalisedRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;\n  class IfcNumericMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcNumericMeasure = IfcNumericMeasure;\n  class IfcPHMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPHMeasure = IfcPHMeasure;\n  class IfcParameterValue {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcParameterValue = IfcParameterValue;\n  class IfcPlanarForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPlanarForceMeasure = IfcPlanarForceMeasure;\n  class IfcPlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;\n  class IfcPositiveInteger {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPositiveInteger = IfcPositiveInteger;\n  class IfcPositiveLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;\n  class IfcPositivePlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;\n  class IfcPositiveRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;\n  class IfcPowerMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPowerMeasure = IfcPowerMeasure;\n  class IfcPresentableText {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcPresentableText = IfcPresentableText;\n  class IfcPressureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcPressureMeasure = IfcPressureMeasure;\n  class IfcPropertySetDefinitionSet {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC4_32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet;\n  class IfcRadioActivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcRadioActivityMeasure = IfcRadioActivityMeasure;\n  class IfcRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcRatioMeasure = IfcRatioMeasure;\n  class IfcReal {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcReal = IfcReal;\n  class IfcRotationalFrequencyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;\n  class IfcRotationalMassMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcRotationalMassMeasure = IfcRotationalMassMeasure;\n  class IfcRotationalStiffnessMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;\n  class IfcSectionModulusMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSectionModulusMeasure = IfcSectionModulusMeasure;\n  class IfcSectionalAreaIntegralMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;\n  class IfcShearModulusMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcShearModulusMeasure = IfcShearModulusMeasure;\n  class IfcSolidAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSolidAngleMeasure = IfcSolidAngleMeasure;\n  class IfcSoundPowerLevelMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure;\n  class IfcSoundPowerMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSoundPowerMeasure = IfcSoundPowerMeasure;\n  class IfcSoundPressureLevelMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure;\n  class IfcSoundPressureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSoundPressureMeasure = IfcSoundPressureMeasure;\n  class IfcSpecificHeatCapacityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;\n  class IfcSpecularExponent {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSpecularExponent = IfcSpecularExponent;\n  class IfcSpecularRoughness {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcSpecularRoughness = IfcSpecularRoughness;\n  class IfcTemperatureGradientMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;\n  class IfcTemperatureRateOfChangeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure;\n  class IfcText {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcText = IfcText;\n  class IfcTextAlignment {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcTextAlignment = IfcTextAlignment;\n  class IfcTextDecoration {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcTextDecoration = IfcTextDecoration;\n  class IfcTextFontName {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcTextFontName = IfcTextFontName;\n  class IfcTextTransformation {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcTextTransformation = IfcTextTransformation;\n  class IfcThermalAdmittanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;\n  class IfcThermalConductivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;\n  class IfcThermalExpansionCoefficientMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;\n  class IfcThermalResistanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;\n  class IfcThermalTransmittanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;\n  class IfcThermodynamicTemperatureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;\n  class IfcTime {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcTime = IfcTime;\n  class IfcTimeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcTimeMeasure = IfcTimeMeasure;\n  class IfcTimeStamp {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcTimeStamp = IfcTimeStamp;\n  class IfcTorqueMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcTorqueMeasure = IfcTorqueMeasure;\n  class IfcURIReference {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC4_32.IfcURIReference = IfcURIReference;\n  class IfcVaporPermeabilityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;\n  class IfcVolumeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcVolumeMeasure = IfcVolumeMeasure;\n  class IfcVolumetricFlowRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;\n  class IfcWarpingConstantMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;\n  class IfcWarpingMomentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC4_32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;\n  class IfcActionRequestTypeEnum {\n  }\n  IfcActionRequestTypeEnum.EMAIL = { type: 3, value: \"EMAIL\" };\n  IfcActionRequestTypeEnum.FAX = { type: 3, value: \"FAX\" };\n  IfcActionRequestTypeEnum.PHONE = { type: 3, value: \"PHONE\" };\n  IfcActionRequestTypeEnum.POST = { type: 3, value: \"POST\" };\n  IfcActionRequestTypeEnum.VERBAL = { type: 3, value: \"VERBAL\" };\n  IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum;\n  class IfcActionSourceTypeEnum {\n  }\n  IfcActionSourceTypeEnum.BRAKES = { type: 3, value: \"BRAKES\" };\n  IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: \"BUOYANCY\" };\n  IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: \"COMPLETION_G1\" };\n  IfcActionSourceTypeEnum.CREEP = { type: 3, value: \"CREEP\" };\n  IfcActionSourceTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n  IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: \"DEAD_LOAD_G\" };\n  IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: \"EARTHQUAKE_E\" };\n  IfcActionSourceTypeEnum.ERECTION = { type: 3, value: \"ERECTION\" };\n  IfcActionSourceTypeEnum.FIRE = { type: 3, value: \"FIRE\" };\n  IfcActionSourceTypeEnum.ICE = { type: 3, value: \"ICE\" };\n  IfcActionSourceTypeEnum.IMPACT = { type: 3, value: \"IMPACT\" };\n  IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: \"IMPULSE\" };\n  IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: \"LACK_OF_FIT\" };\n  IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: \"LIVE_LOAD_Q\" };\n  IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: \"PRESTRESSING_P\" };\n  IfcActionSourceTypeEnum.PROPPING = { type: 3, value: \"PROPPING\" };\n  IfcActionSourceTypeEnum.RAIN = { type: 3, value: \"RAIN\" };\n  IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: \"SETTLEMENT_U\" };\n  IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: \"SHRINKAGE\" };\n  IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: \"SNOW_S\" };\n  IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: \"SYSTEM_IMPERFECTION\" };\n  IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: \"TEMPERATURE_T\" };\n  IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n  IfcActionSourceTypeEnum.WAVE = { type: 3, value: \"WAVE\" };\n  IfcActionSourceTypeEnum.WIND_W = { type: 3, value: \"WIND_W\" };\n  IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;\n  class IfcActionTypeEnum {\n  }\n  IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: \"EXTRAORDINARY_A\" };\n  IfcActionTypeEnum.PERMANENT_G = { type: 3, value: \"PERMANENT_G\" };\n  IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: \"VARIABLE_Q\" };\n  IfcActionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcActionTypeEnum = IfcActionTypeEnum;\n  class IfcActuatorTypeEnum {\n  }\n  IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: \"ELECTRICACTUATOR\" };\n  IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: \"HANDOPERATEDACTUATOR\" };\n  IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: \"HYDRAULICACTUATOR\" };\n  IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: \"PNEUMATICACTUATOR\" };\n  IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: \"THERMOSTATICACTUATOR\" };\n  IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcActuatorTypeEnum = IfcActuatorTypeEnum;\n  class IfcAddressTypeEnum {\n  }\n  IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: \"DISTRIBUTIONPOINT\" };\n  IfcAddressTypeEnum.HOME = { type: 3, value: \"HOME\" };\n  IfcAddressTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n  IfcAddressTypeEnum.SITE = { type: 3, value: \"SITE\" };\n  IfcAddressTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC4_32.IfcAddressTypeEnum = IfcAddressTypeEnum;\n  class IfcAirTerminalBoxTypeEnum {\n  }\n  IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: \"CONSTANTFLOW\" };\n  IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREDEPENDANT\" };\n  IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREINDEPENDANT\" };\n  IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;\n  class IfcAirTerminalTypeEnum {\n  }\n  IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: \"DIFFUSER\" };\n  IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: \"GRILLE\" };\n  IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: \"LOUVRE\" };\n  IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: \"REGISTER\" };\n  IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;\n  class IfcAirToAirHeatRecoveryTypeEnum {\n  }\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECOUNTERFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECROSSFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATEPARALLELFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: \"HEATPIPE\" };\n  IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: \"ROTARYWHEEL\" };\n  IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: \"RUNAROUNDCOILLOOP\" };\n  IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONCOILTYPEHEATEXCHANGERS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: \"TWINTOWERENTHALPYRECOVERYLOOPS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;\n  class IfcAlarmTypeEnum {\n  }\n  IfcAlarmTypeEnum.BELL = { type: 3, value: \"BELL\" };\n  IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: \"BREAKGLASSBUTTON\" };\n  IfcAlarmTypeEnum.LIGHT = { type: 3, value: \"LIGHT\" };\n  IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: \"MANUALPULLBOX\" };\n  IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: \"RAILWAYCROCODILE\" };\n  IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: \"RAILWAYDETONATOR\" };\n  IfcAlarmTypeEnum.SIREN = { type: 3, value: \"SIREN\" };\n  IfcAlarmTypeEnum.WHISTLE = { type: 3, value: \"WHISTLE\" };\n  IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAlarmTypeEnum = IfcAlarmTypeEnum;\n  class IfcAlignmentCantSegmentTypeEnum {\n  }\n  IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: \"BLOSSCURVE\" };\n  IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: \"CONSTANTCANT\" };\n  IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: \"COSINECURVE\" };\n  IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: \"HELMERTCURVE\" };\n  IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: \"LINEARTRANSITION\" };\n  IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: \"SINECURVE\" };\n  IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: \"VIENNESEBEND\" };\n  IFC4_32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum;\n  class IfcAlignmentHorizontalSegmentTypeEnum {\n  }\n  IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: \"BLOSSCURVE\" };\n  IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: \"CIRCULARARC\" };\n  IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: \"CLOTHOID\" };\n  IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: \"COSINECURVE\" };\n  IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: \"CUBIC\" };\n  IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: \"HELMERTCURVE\" };\n  IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: \"LINE\" };\n  IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: \"SINECURVE\" };\n  IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: \"VIENNESEBEND\" };\n  IFC4_32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum;\n  class IfcAlignmentTypeEnum {\n  }\n  IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum;\n  class IfcAlignmentVerticalSegmentTypeEnum {\n  }\n  IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: \"CIRCULARARC\" };\n  IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: \"CLOTHOID\" };\n  IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: \"CONSTANTGRADIENT\" };\n  IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: \"PARABOLICARC\" };\n  IFC4_32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum;\n  class IfcAnalysisModelTypeEnum {\n  }\n  IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: \"IN_PLANE_LOADING_2D\" };\n  IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: \"LOADING_3D\" };\n  IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: \"OUT_PLANE_LOADING_2D\" };\n  IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;\n  class IfcAnalysisTheoryTypeEnum {\n  }\n  IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: \"FIRST_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: \"FULL_NONLINEAR_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: \"SECOND_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: \"THIRD_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;\n  class IfcAnnotationTypeEnum {\n  }\n  IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: \"ASBUILTAREA\" };\n  IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: \"ASBUILTLINE\" };\n  IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: \"ASBUILTPOINT\" };\n  IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: \"ASSUMEDAREA\" };\n  IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: \"ASSUMEDLINE\" };\n  IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: \"ASSUMEDPOINT\" };\n  IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: \"NON_PHYSICAL_SIGNAL\" };\n  IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: \"SUPERELEVATIONEVENT\" };\n  IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: \"WIDTHEVENT\" };\n  IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum;\n  class IfcArithmeticOperatorEnum {\n  }\n  IfcArithmeticOperatorEnum.ADD = { type: 3, value: \"ADD\" };\n  IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: \"DIVIDE\" };\n  IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: \"MULTIPLY\" };\n  IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: \"SUBTRACT\" };\n  IFC4_32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;\n  class IfcAssemblyPlaceEnum {\n  }\n  IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: \"FACTORY\" };\n  IfcAssemblyPlaceEnum.SITE = { type: 3, value: \"SITE\" };\n  IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;\n  class IfcAudioVisualApplianceTypeEnum {\n  }\n  IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: \"AMPLIFIER\" };\n  IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: \"CAMERA\" };\n  IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: \"COMMUNICATIONTERMINAL\" };\n  IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: \"DISPLAY\" };\n  IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: \"MICROPHONE\" };\n  IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: \"PLAYER\" };\n  IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: \"PROJECTOR\" };\n  IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: \"RECEIVER\" };\n  IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: \"RECORDINGEQUIPMENT\" };\n  IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: \"SPEAKER\" };\n  IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: \"SWITCHER\" };\n  IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n  IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: \"TUNER\" };\n  IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum;\n  class IfcBSplineCurveForm {\n  }\n  IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: \"CIRCULAR_ARC\" };\n  IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: \"ELLIPTIC_ARC\" };\n  IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: \"HYPERBOLIC_ARC\" };\n  IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: \"PARABOLIC_ARC\" };\n  IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: \"POLYLINE_FORM\" };\n  IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC4_32.IfcBSplineCurveForm = IfcBSplineCurveForm;\n  class IfcBSplineSurfaceForm {\n  }\n  IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: \"CONICAL_SURF\" };\n  IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: \"CYLINDRICAL_SURF\" };\n  IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: \"GENERALISED_CONE\" };\n  IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: \"PLANE_SURF\" };\n  IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: \"QUADRIC_SURF\" };\n  IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: \"RULED_SURF\" };\n  IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: \"SPHERICAL_SURF\" };\n  IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: \"SURF_OF_LINEAR_EXTRUSION\" };\n  IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: \"SURF_OF_REVOLUTION\" };\n  IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: \"TOROIDAL_SURF\" };\n  IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC4_32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm;\n  class IfcBeamTypeEnum {\n  }\n  IfcBeamTypeEnum.BEAM = { type: 3, value: \"BEAM\" };\n  IfcBeamTypeEnum.CORNICE = { type: 3, value: \"CORNICE\" };\n  IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: \"DIAPHRAGM\" };\n  IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: \"EDGEBEAM\" };\n  IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: \"GIRDER_SEGMENT\" };\n  IfcBeamTypeEnum.HATSTONE = { type: 3, value: \"HATSTONE\" };\n  IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: \"HOLLOWCORE\" };\n  IfcBeamTypeEnum.JOIST = { type: 3, value: \"JOIST\" };\n  IfcBeamTypeEnum.LINTEL = { type: 3, value: \"LINTEL\" };\n  IfcBeamTypeEnum.PIERCAP = { type: 3, value: \"PIERCAP\" };\n  IfcBeamTypeEnum.SPANDREL = { type: 3, value: \"SPANDREL\" };\n  IfcBeamTypeEnum.T_BEAM = { type: 3, value: \"T_BEAM\" };\n  IfcBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBeamTypeEnum = IfcBeamTypeEnum;\n  class IfcBearingTypeDisplacementEnum {\n  }\n  IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: \"FIXED_MOVEMENT\" };\n  IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: \"FREE_MOVEMENT\" };\n  IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: \"GUIDED_LONGITUDINAL\" };\n  IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: \"GUIDED_TRANSVERSAL\" };\n  IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum;\n  class IfcBearingTypeEnum {\n  }\n  IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: \"CYLINDRICAL\" };\n  IfcBearingTypeEnum.DISK = { type: 3, value: \"DISK\" };\n  IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: \"ELASTOMERIC\" };\n  IfcBearingTypeEnum.GUIDE = { type: 3, value: \"GUIDE\" };\n  IfcBearingTypeEnum.POT = { type: 3, value: \"POT\" };\n  IfcBearingTypeEnum.ROCKER = { type: 3, value: \"ROCKER\" };\n  IfcBearingTypeEnum.ROLLER = { type: 3, value: \"ROLLER\" };\n  IfcBearingTypeEnum.SPHERICAL = { type: 3, value: \"SPHERICAL\" };\n  IfcBearingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBearingTypeEnum = IfcBearingTypeEnum;\n  class IfcBenchmarkEnum {\n  }\n  IfcBenchmarkEnum.EQUALTO = { type: 3, value: \"EQUALTO\" };\n  IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: \"GREATERTHAN\" };\n  IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: \"GREATERTHANOREQUALTO\" };\n  IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: \"INCLUDEDIN\" };\n  IfcBenchmarkEnum.INCLUDES = { type: 3, value: \"INCLUDES\" };\n  IfcBenchmarkEnum.LESSTHAN = { type: 3, value: \"LESSTHAN\" };\n  IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: \"LESSTHANOREQUALTO\" };\n  IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: \"NOTEQUALTO\" };\n  IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: \"NOTINCLUDEDIN\" };\n  IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: \"NOTINCLUDES\" };\n  IFC4_32.IfcBenchmarkEnum = IfcBenchmarkEnum;\n  class IfcBoilerTypeEnum {\n  }\n  IfcBoilerTypeEnum.STEAM = { type: 3, value: \"STEAM\" };\n  IfcBoilerTypeEnum.WATER = { type: 3, value: \"WATER\" };\n  IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBoilerTypeEnum = IfcBoilerTypeEnum;\n  class IfcBooleanOperator {\n  }\n  IfcBooleanOperator.DIFFERENCE = { type: 3, value: \"DIFFERENCE\" };\n  IfcBooleanOperator.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n  IfcBooleanOperator.UNION = { type: 3, value: \"UNION\" };\n  IFC4_32.IfcBooleanOperator = IfcBooleanOperator;\n  class IfcBridgePartTypeEnum {\n  }\n  IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: \"ABUTMENT\" };\n  IfcBridgePartTypeEnum.DECK = { type: 3, value: \"DECK\" };\n  IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: \"DECK_SEGMENT\" };\n  IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: \"FOUNDATION\" };\n  IfcBridgePartTypeEnum.PIER = { type: 3, value: \"PIER\" };\n  IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: \"PIER_SEGMENT\" };\n  IfcBridgePartTypeEnum.PYLON = { type: 3, value: \"PYLON\" };\n  IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: \"SUBSTRUCTURE\" };\n  IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: \"SUPERSTRUCTURE\" };\n  IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: \"SURFACESTRUCTURE\" };\n  IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum;\n  class IfcBridgeTypeEnum {\n  }\n  IfcBridgeTypeEnum.ARCHED = { type: 3, value: \"ARCHED\" };\n  IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: \"CABLE_STAYED\" };\n  IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: \"CANTILEVER\" };\n  IfcBridgeTypeEnum.CULVERT = { type: 3, value: \"CULVERT\" };\n  IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: \"FRAMEWORK\" };\n  IfcBridgeTypeEnum.GIRDER = { type: 3, value: \"GIRDER\" };\n  IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: \"SUSPENSION\" };\n  IfcBridgeTypeEnum.TRUSS = { type: 3, value: \"TRUSS\" };\n  IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBridgeTypeEnum = IfcBridgeTypeEnum;\n  class IfcBuildingElementPartTypeEnum {\n  }\n  IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: \"APRON\" };\n  IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: \"ARMOURUNIT\" };\n  IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n  IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: \"PRECASTPANEL\" };\n  IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: \"SAFETYCAGE\" };\n  IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum;\n  class IfcBuildingElementProxyTypeEnum {\n  }\n  IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n  IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n  IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n  IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;\n  class IfcBuildingSystemTypeEnum {\n  }\n  IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: \"EROSIONPREVENTION\" };\n  IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: \"FENESTRATION\" };\n  IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: \"FOUNDATION\" };\n  IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: \"LOADBEARING\" };\n  IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: \"OUTERSHELL\" };\n  IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: \"PRESTRESSING\" };\n  IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: \"REINFORCING\" };\n  IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: \"SHADING\" };\n  IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n  IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum;\n  class IfcBuiltSystemTypeEnum {\n  }\n  IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: \"EROSIONPREVENTION\" };\n  IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: \"FENESTRATION\" };\n  IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: \"FOUNDATION\" };\n  IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: \"LOADBEARING\" };\n  IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: \"MOORING\" };\n  IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: \"OUTERSHELL\" };\n  IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: \"PRESTRESSING\" };\n  IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: \"RAILWAYLINE\" };\n  IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: \"RAILWAYTRACK\" };\n  IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: \"REINFORCING\" };\n  IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: \"SHADING\" };\n  IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: \"TRACKCIRCUIT\" };\n  IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n  IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum;\n  class IfcBurnerTypeEnum {\n  }\n  IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcBurnerTypeEnum = IfcBurnerTypeEnum;\n  class IfcCableCarrierFittingTypeEnum {\n  }\n  IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: \"CROSS\" };\n  IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: \"TEE\" };\n  IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;\n  class IfcCableCarrierSegmentTypeEnum {\n  }\n  IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: \"CABLEBRACKET\" };\n  IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: \"CABLELADDERSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: \"CABLETRAYSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: \"CABLETRUNKINGSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: \"CATENARYWIRE\" };\n  IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: \"CONDUITSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: \"DROPPER\" };\n  IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;\n  class IfcCableFittingTypeEnum {\n  }\n  IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcCableFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n  IfcCableFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n  IfcCableFittingTypeEnum.FANOUT = { type: 3, value: \"FANOUT\" };\n  IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum;\n  class IfcCableSegmentTypeEnum {\n  }\n  IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: \"BUSBARSEGMENT\" };\n  IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: \"CABLESEGMENT\" };\n  IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: \"CONDUCTORSEGMENT\" };\n  IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: \"CONTACTWIRESEGMENT\" };\n  IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: \"CORESEGMENT\" };\n  IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: \"FIBERSEGMENT\" };\n  IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: \"FIBERTUBE\" };\n  IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: \"OPTICALCABLESEGMENT\" };\n  IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: \"STITCHWIRE\" };\n  IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: \"WIREPAIRSEGMENT\" };\n  IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;\n  class IfcCaissonFoundationTypeEnum {\n  }\n  IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: \"CAISSON\" };\n  IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: \"WELL\" };\n  IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum;\n  class IfcChangeActionEnum {\n  }\n  IfcChangeActionEnum.ADDED = { type: 3, value: \"ADDED\" };\n  IfcChangeActionEnum.DELETED = { type: 3, value: \"DELETED\" };\n  IfcChangeActionEnum.MODIFIED = { type: 3, value: \"MODIFIED\" };\n  IfcChangeActionEnum.NOCHANGE = { type: 3, value: \"NOCHANGE\" };\n  IfcChangeActionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcChangeActionEnum = IfcChangeActionEnum;\n  class IfcChillerTypeEnum {\n  }\n  IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n  IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: \"HEATRECOVERY\" };\n  IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n  IfcChillerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcChillerTypeEnum = IfcChillerTypeEnum;\n  class IfcChimneyTypeEnum {\n  }\n  IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcChimneyTypeEnum = IfcChimneyTypeEnum;\n  class IfcCoilTypeEnum {\n  }\n  IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: \"DXCOOLINGCOIL\" };\n  IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: \"ELECTRICHEATINGCOIL\" };\n  IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: \"GASHEATINGCOIL\" };\n  IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: \"HYDRONICCOIL\" };\n  IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: \"STEAMHEATINGCOIL\" };\n  IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: \"WATERCOOLINGCOIL\" };\n  IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: \"WATERHEATINGCOIL\" };\n  IfcCoilTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCoilTypeEnum = IfcCoilTypeEnum;\n  class IfcColumnTypeEnum {\n  }\n  IfcColumnTypeEnum.COLUMN = { type: 3, value: \"COLUMN\" };\n  IfcColumnTypeEnum.PIERSTEM = { type: 3, value: \"PIERSTEM\" };\n  IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: \"PIERSTEM_SEGMENT\" };\n  IfcColumnTypeEnum.PILASTER = { type: 3, value: \"PILASTER\" };\n  IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: \"STANDCOLUMN\" };\n  IfcColumnTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcColumnTypeEnum = IfcColumnTypeEnum;\n  class IfcCommunicationsApplianceTypeEnum {\n  }\n  IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: \"ANTENNA\" };\n  IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: \"AUTOMATON\" };\n  IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: \"COMPUTER\" };\n  IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: \"FAX\" };\n  IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: \"GATEWAY\" };\n  IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: \"INTELLIGENTPERIPHERAL\" };\n  IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: \"IPNETWORKEQUIPMENT\" };\n  IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: \"LINESIDEELECTRONICUNIT\" };\n  IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: \"MODEM\" };\n  IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: \"NETWORKAPPLIANCE\" };\n  IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: \"NETWORKBRIDGE\" };\n  IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: \"NETWORKHUB\" };\n  IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: \"OPTICALLINETERMINAL\" };\n  IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: \"OPTICALNETWORKUNIT\" };\n  IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: \"PRINTER\" };\n  IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: \"RADIOBLOCKCENTER\" };\n  IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: \"REPEATER\" };\n  IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: \"ROUTER\" };\n  IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: \"SCANNER\" };\n  IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: \"TELECOMMAND\" };\n  IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: \"TELEPHONYEXCHANGE\" };\n  IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: \"TRANSITIONCOMPONENT\" };\n  IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: \"TRANSPONDER\" };\n  IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: \"TRANSPORTEQUIPMENT\" };\n  IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum;\n  class IfcComplexPropertyTemplateTypeEnum {\n  }\n  IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: \"P_COMPLEX\" };\n  IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: \"Q_COMPLEX\" };\n  IFC4_32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum;\n  class IfcCompressorTypeEnum {\n  }\n  IfcCompressorTypeEnum.BOOSTER = { type: 3, value: \"BOOSTER\" };\n  IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: \"DYNAMIC\" };\n  IfcCompressorTypeEnum.HERMETIC = { type: 3, value: \"HERMETIC\" };\n  IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: \"OPENTYPE\" };\n  IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: \"RECIPROCATING\" };\n  IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: \"ROLLINGPISTON\" };\n  IfcCompressorTypeEnum.ROTARY = { type: 3, value: \"ROTARY\" };\n  IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: \"ROTARYVANE\" };\n  IfcCompressorTypeEnum.SCROLL = { type: 3, value: \"SCROLL\" };\n  IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: \"SEMIHERMETIC\" };\n  IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: \"SINGLESCREW\" };\n  IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: \"SINGLESTAGE\" };\n  IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: \"TROCHOIDAL\" };\n  IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: \"TWINSCREW\" };\n  IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: \"WELDEDSHELLHERMETIC\" };\n  IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCompressorTypeEnum = IfcCompressorTypeEnum;\n  class IfcCondenserTypeEnum {\n  }\n  IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n  IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: \"EVAPORATIVECOOLED\" };\n  IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n  IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: \"WATERCOOLEDBRAZEDPLATE\" };\n  IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: \"WATERCOOLEDSHELLCOIL\" };\n  IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: \"WATERCOOLEDSHELLTUBE\" };\n  IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: \"WATERCOOLEDTUBEINTUBE\" };\n  IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCondenserTypeEnum = IfcCondenserTypeEnum;\n  class IfcConnectionTypeEnum {\n  }\n  IfcConnectionTypeEnum.ATEND = { type: 3, value: \"ATEND\" };\n  IfcConnectionTypeEnum.ATPATH = { type: 3, value: \"ATPATH\" };\n  IfcConnectionTypeEnum.ATSTART = { type: 3, value: \"ATSTART\" };\n  IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcConnectionTypeEnum = IfcConnectionTypeEnum;\n  class IfcConstraintEnum {\n  }\n  IfcConstraintEnum.ADVISORY = { type: 3, value: \"ADVISORY\" };\n  IfcConstraintEnum.HARD = { type: 3, value: \"HARD\" };\n  IfcConstraintEnum.SOFT = { type: 3, value: \"SOFT\" };\n  IfcConstraintEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConstraintEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcConstraintEnum = IfcConstraintEnum;\n  class IfcConstructionEquipmentResourceTypeEnum {\n  }\n  IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: \"DEMOLISHING\" };\n  IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: \"EARTHMOVING\" };\n  IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: \"ERECTING\" };\n  IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: \"HEATING\" };\n  IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n  IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n  IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: \"PUMPING\" };\n  IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: \"TRANSPORTING\" };\n  IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum;\n  class IfcConstructionMaterialResourceTypeEnum {\n  }\n  IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: \"AGGREGATES\" };\n  IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: \"CONCRETE\" };\n  IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: \"DRYWALL\" };\n  IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: \"FUEL\" };\n  IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: \"GYPSUM\" };\n  IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: \"MASONRY\" };\n  IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: \"METAL\" };\n  IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: \"WOOD\" };\n  IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum;\n  class IfcConstructionProductResourceTypeEnum {\n  }\n  IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: \"ASSEMBLY\" };\n  IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: \"FORMWORK\" };\n  IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum;\n  class IfcControllerTypeEnum {\n  }\n  IfcControllerTypeEnum.FLOATING = { type: 3, value: \"FLOATING\" };\n  IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: \"MULTIPOSITION\" };\n  IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: \"PROGRAMMABLE\" };\n  IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: \"PROPORTIONAL\" };\n  IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: \"TWOPOSITION\" };\n  IfcControllerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcControllerTypeEnum = IfcControllerTypeEnum;\n  class IfcConveyorSegmentTypeEnum {\n  }\n  IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: \"BELTCONVEYOR\" };\n  IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: \"BUCKETCONVEYOR\" };\n  IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: \"CHUTECONVEYOR\" };\n  IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: \"SCREWCONVEYOR\" };\n  IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum;\n  class IfcCooledBeamTypeEnum {\n  }\n  IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: \"ACTIVE\" };\n  IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: \"PASSIVE\" };\n  IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;\n  class IfcCoolingTowerTypeEnum {\n  }\n  IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: \"MECHANICALFORCEDDRAFT\" };\n  IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: \"MECHANICALINDUCEDDRAFT\" };\n  IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: \"NATURALDRAFT\" };\n  IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;\n  class IfcCostItemTypeEnum {\n  }\n  IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCostItemTypeEnum = IfcCostItemTypeEnum;\n  class IfcCostScheduleTypeEnum {\n  }\n  IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: \"BUDGET\" };\n  IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: \"COSTPLAN\" };\n  IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: \"ESTIMATE\" };\n  IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: \"PRICEDBILLOFQUANTITIES\" };\n  IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: \"SCHEDULEOFRATES\" };\n  IfcCostScheduleTypeEnum.TENDER = { type: 3, value: \"TENDER\" };\n  IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: \"UNPRICEDBILLOFQUANTITIES\" };\n  IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;\n  class IfcCourseTypeEnum {\n  }\n  IfcCourseTypeEnum.ARMOUR = { type: 3, value: \"ARMOUR\" };\n  IfcCourseTypeEnum.BALLASTBED = { type: 3, value: \"BALLASTBED\" };\n  IfcCourseTypeEnum.CORE = { type: 3, value: \"CORE\" };\n  IfcCourseTypeEnum.FILTER = { type: 3, value: \"FILTER\" };\n  IfcCourseTypeEnum.PAVEMENT = { type: 3, value: \"PAVEMENT\" };\n  IfcCourseTypeEnum.PROTECTION = { type: 3, value: \"PROTECTION\" };\n  IfcCourseTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCourseTypeEnum = IfcCourseTypeEnum;\n  class IfcCoveringTypeEnum {\n  }\n  IfcCoveringTypeEnum.CEILING = { type: 3, value: \"CEILING\" };\n  IfcCoveringTypeEnum.CLADDING = { type: 3, value: \"CLADDING\" };\n  IfcCoveringTypeEnum.COPING = { type: 3, value: \"COPING\" };\n  IfcCoveringTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n  IfcCoveringTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n  IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: \"MEMBRANE\" };\n  IfcCoveringTypeEnum.MOLDING = { type: 3, value: \"MOLDING\" };\n  IfcCoveringTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n  IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: \"SKIRTINGBOARD\" };\n  IfcCoveringTypeEnum.SLEEVING = { type: 3, value: \"SLEEVING\" };\n  IfcCoveringTypeEnum.TOPPING = { type: 3, value: \"TOPPING\" };\n  IfcCoveringTypeEnum.WRAPPING = { type: 3, value: \"WRAPPING\" };\n  IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCoveringTypeEnum = IfcCoveringTypeEnum;\n  class IfcCrewResourceTypeEnum {\n  }\n  IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n  IfcCrewResourceTypeEnum.SITE = { type: 3, value: \"SITE\" };\n  IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum;\n  class IfcCurtainWallTypeEnum {\n  }\n  IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;\n  class IfcCurveInterpolationEnum {\n  }\n  IfcCurveInterpolationEnum.LINEAR = { type: 3, value: \"LINEAR\" };\n  IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: \"LOG_LINEAR\" };\n  IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: \"LOG_LOG\" };\n  IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum;\n  class IfcDamperTypeEnum {\n  }\n  IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: \"BACKDRAFTDAMPER\" };\n  IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: \"BALANCINGDAMPER\" };\n  IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: \"BLASTDAMPER\" };\n  IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: \"CONTROLDAMPER\" };\n  IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: \"FIREDAMPER\" };\n  IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: \"FIRESMOKEDAMPER\" };\n  IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: \"FUMEHOODEXHAUST\" };\n  IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: \"GRAVITYDAMPER\" };\n  IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: \"GRAVITYRELIEFDAMPER\" };\n  IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: \"RELIEFDAMPER\" };\n  IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: \"SMOKEDAMPER\" };\n  IfcDamperTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDamperTypeEnum = IfcDamperTypeEnum;\n  class IfcDataOriginEnum {\n  }\n  IfcDataOriginEnum.MEASURED = { type: 3, value: \"MEASURED\" };\n  IfcDataOriginEnum.PREDICTED = { type: 3, value: \"PREDICTED\" };\n  IfcDataOriginEnum.SIMULATED = { type: 3, value: \"SIMULATED\" };\n  IfcDataOriginEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDataOriginEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDataOriginEnum = IfcDataOriginEnum;\n  class IfcDerivedUnitEnum {\n  }\n  IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: \"ACCELERATIONUNIT\" };\n  IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: \"ANGULARVELOCITYUNIT\" };\n  IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: \"AREADENSITYUNIT\" };\n  IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: \"COMPOUNDPLANEANGLEUNIT\" };\n  IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: \"CURVATUREUNIT\" };\n  IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: \"DYNAMICVISCOSITYUNIT\" };\n  IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: \"HEATFLUXDENSITYUNIT\" };\n  IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: \"HEATINGVALUEUNIT\" };\n  IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: \"INTEGERCOUNTRATEUNIT\" };\n  IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: \"IONCONCENTRATIONUNIT\" };\n  IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: \"ISOTHERMALMOISTURECAPACITYUNIT\" };\n  IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: \"KINEMATICVISCOSITYUNIT\" };\n  IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: \"LINEARFORCEUNIT\" };\n  IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: \"LINEARMOMENTUNIT\" };\n  IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: \"LINEARSTIFFNESSUNIT\" };\n  IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: \"LINEARVELOCITYUNIT\" };\n  IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: \"LUMINOUSINTENSITYDISTRIBUTIONUNIT\" };\n  IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: \"MASSDENSITYUNIT\" };\n  IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: \"MASSFLOWRATEUNIT\" };\n  IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: \"MASSPERLENGTHUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: \"MODULUSOFELASTICITYUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFLINEARSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: \"MOISTUREDIFFUSIVITYUNIT\" };\n  IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: \"MOLECULARWEIGHTUNIT\" };\n  IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: \"MOMENTOFINERTIAUNIT\" };\n  IfcDerivedUnitEnum.PHUNIT = { type: 3, value: \"PHUNIT\" };\n  IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: \"PLANARFORCEUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: \"ROTATIONALFREQUENCYUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: \"ROTATIONALMASSUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: \"ROTATIONALSTIFFNESSUNIT\" };\n  IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: \"SECTIONAREAINTEGRALUNIT\" };\n  IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: \"SECTIONMODULUSUNIT\" };\n  IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: \"SHEARMODULUSUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: \"SOUNDPOWERLEVELUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: \"SOUNDPOWERUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: \"SOUNDPRESSURELEVELUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: \"SOUNDPRESSUREUNIT\" };\n  IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: \"SPECIFICHEATCAPACITYUNIT\" };\n  IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: \"TEMPERATUREGRADIENTUNIT\" };\n  IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: \"TEMPERATURERATEOFCHANGEUNIT\" };\n  IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: \"THERMALADMITTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: \"THERMALCONDUCTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: \"THERMALEXPANSIONCOEFFICIENTUNIT\" };\n  IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: \"THERMALRESISTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: \"THERMALTRANSMITTANCEUNIT\" };\n  IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: \"TORQUEUNIT\" };\n  IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: \"VAPORPERMEABILITYUNIT\" };\n  IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: \"VOLUMETRICFLOWRATEUNIT\" };\n  IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: \"WARPINGCONSTANTUNIT\" };\n  IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: \"WARPINGMOMENTUNIT\" };\n  IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC4_32.IfcDerivedUnitEnum = IfcDerivedUnitEnum;\n  class IfcDirectionSenseEnum {\n  }\n  IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n  IfcDirectionSenseEnum.POSITIVE = { type: 3, value: \"POSITIVE\" };\n  IFC4_32.IfcDirectionSenseEnum = IfcDirectionSenseEnum;\n  class IfcDiscreteAccessoryTypeEnum {\n  }\n  IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: \"ANCHORPLATE\" };\n  IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: \"BIRDPROTECTION\" };\n  IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: \"BRACKET\" };\n  IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: \"CABLEARRANGER\" };\n  IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: \"ELASTIC_CUSHION\" };\n  IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: \"EXPANSION_JOINT_DEVICE\" };\n  IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: \"FILLER\" };\n  IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: \"FLASHING\" };\n  IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: \"INSULATOR\" };\n  IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: \"LOCK\" };\n  IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: \"PANEL_STRENGTHENING\" };\n  IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: \"POINTMACHINEMOUNTINGDEVICE\" };\n  IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: \"POINT_MACHINE_LOCKING_DEVICE\" };\n  IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: \"RAILBRACE\" };\n  IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: \"RAILPAD\" };\n  IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: \"RAIL_LUBRICATION\" };\n  IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: \"RAIL_MECHANICAL_EQUIPMENT\" };\n  IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: \"SHOE\" };\n  IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: \"SLIDINGCHAIR\" };\n  IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: \"SOUNDABSORPTION\" };\n  IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: \"TENSIONINGEQUIPMENT\" };\n  IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum;\n  class IfcDistributionBoardTypeEnum {\n  }\n  IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: \"CONSUMERUNIT\" };\n  IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: \"DISPATCHINGBOARD\" };\n  IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: \"DISTRIBUTIONBOARD\" };\n  IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: \"DISTRIBUTIONFRAME\" };\n  IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: \"MOTORCONTROLCENTRE\" };\n  IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: \"SWITCHBOARD\" };\n  IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum;\n  class IfcDistributionChamberElementTypeEnum {\n  }\n  IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: \"FORMEDDUCT\" };\n  IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: \"INSPECTIONCHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: \"INSPECTIONPIT\" };\n  IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: \"MANHOLE\" };\n  IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: \"METERCHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: \"SUMP\" };\n  IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: \"TRENCH\" };\n  IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: \"VALVECHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;\n  class IfcDistributionPortTypeEnum {\n  }\n  IfcDistributionPortTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n  IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: \"CABLECARRIER\" };\n  IfcDistributionPortTypeEnum.DUCT = { type: 3, value: \"DUCT\" };\n  IfcDistributionPortTypeEnum.PIPE = { type: 3, value: \"PIPE\" };\n  IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: \"WIRELESS\" };\n  IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum;\n  class IfcDistributionSystemEnum {\n  }\n  IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: \"AIRCONDITIONING\" };\n  IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: \"AUDIOVISUAL\" };\n  IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: \"CATENARY_SYSTEM\" };\n  IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: \"CHEMICAL\" };\n  IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: \"CHILLEDWATER\" };\n  IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: \"COMMUNICATION\" };\n  IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: \"COMPRESSEDAIR\" };\n  IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: \"CONDENSERWATER\" };\n  IfcDistributionSystemEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n  IfcDistributionSystemEnum.CONVEYING = { type: 3, value: \"CONVEYING\" };\n  IfcDistributionSystemEnum.DATA = { type: 3, value: \"DATA\" };\n  IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n  IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: \"DOMESTICCOLDWATER\" };\n  IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: \"DOMESTICHOTWATER\" };\n  IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: \"DRAINAGE\" };\n  IfcDistributionSystemEnum.EARTHING = { type: 3, value: \"EARTHING\" };\n  IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: \"ELECTRICAL\" };\n  IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: \"ELECTROACOUSTIC\" };\n  IfcDistributionSystemEnum.EXHAUST = { type: 3, value: \"EXHAUST\" };\n  IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: \"FIREPROTECTION\" };\n  IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: \"FIXEDTRANSMISSIONNETWORK\" };\n  IfcDistributionSystemEnum.FUEL = { type: 3, value: \"FUEL\" };\n  IfcDistributionSystemEnum.GAS = { type: 3, value: \"GAS\" };\n  IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: \"HAZARDOUS\" };\n  IfcDistributionSystemEnum.HEATING = { type: 3, value: \"HEATING\" };\n  IfcDistributionSystemEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n  IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: \"LIGHTNINGPROTECTION\" };\n  IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: \"MOBILENETWORK\" };\n  IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: \"MONITORINGSYSTEM\" };\n  IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: \"MUNICIPALSOLIDWASTE\" };\n  IfcDistributionSystemEnum.OIL = { type: 3, value: \"OIL\" };\n  IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: \"OPERATIONAL\" };\n  IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: \"OPERATIONALTELEPHONYSYSTEM\" };\n  IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: \"OVERHEAD_CONTACTLINE_SYSTEM\" };\n  IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: \"POWERGENERATION\" };\n  IfcDistributionSystemEnum.RAINWATER = { type: 3, value: \"RAINWATER\" };\n  IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: \"REFRIGERATION\" };\n  IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: \"RETURN_CIRCUIT\" };\n  IfcDistributionSystemEnum.SECURITY = { type: 3, value: \"SECURITY\" };\n  IfcDistributionSystemEnum.SEWAGE = { type: 3, value: \"SEWAGE\" };\n  IfcDistributionSystemEnum.SIGNAL = { type: 3, value: \"SIGNAL\" };\n  IfcDistributionSystemEnum.STORMWATER = { type: 3, value: \"STORMWATER\" };\n  IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n  IfcDistributionSystemEnum.TV = { type: 3, value: \"TV\" };\n  IfcDistributionSystemEnum.VACUUM = { type: 3, value: \"VACUUM\" };\n  IfcDistributionSystemEnum.VENT = { type: 3, value: \"VENT\" };\n  IfcDistributionSystemEnum.VENTILATION = { type: 3, value: \"VENTILATION\" };\n  IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: \"WASTEWATER\" };\n  IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: \"WATERSUPPLY\" };\n  IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDistributionSystemEnum = IfcDistributionSystemEnum;\n  class IfcDocumentConfidentialityEnum {\n  }\n  IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: \"CONFIDENTIAL\" };\n  IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: \"PERSONAL\" };\n  IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: \"PUBLIC\" };\n  IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: \"RESTRICTED\" };\n  IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;\n  class IfcDocumentStatusEnum {\n  }\n  IfcDocumentStatusEnum.DRAFT = { type: 3, value: \"DRAFT\" };\n  IfcDocumentStatusEnum.FINAL = { type: 3, value: \"FINAL\" };\n  IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: \"FINALDRAFT\" };\n  IfcDocumentStatusEnum.REVISION = { type: 3, value: \"REVISION\" };\n  IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDocumentStatusEnum = IfcDocumentStatusEnum;\n  class IfcDoorPanelOperationEnum {\n  }\n  IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: \"DOUBLE_ACTING\" };\n  IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: \"FIXEDPANEL\" };\n  IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: \"FOLDING\" };\n  IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n  IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n  IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: \"SLIDING\" };\n  IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: \"SWINGING\" };\n  IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;\n  class IfcDoorPanelPositionEnum {\n  }\n  IfcDoorPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n  IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n  IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;\n  class IfcDoorStyleConstructionEnum {\n  }\n  IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n  IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: \"ALUMINIUM_PLASTIC\" };\n  IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n  IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n  IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n  IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n  IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;\n  class IfcDoorStyleOperationEnum {\n  }\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: \"DOUBLE_DOOR_DOUBLE_SWING\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: \"DOUBLE_DOOR_FOLDING\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: \"DOUBLE_DOOR_SLIDING\" };\n  IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n  IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n  IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n  IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n  IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n  IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n  IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n  IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n  IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n  IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;\n  class IfcDoorTypeEnum {\n  }\n  IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: \"BOOM_BARRIER\" };\n  IfcDoorTypeEnum.DOOR = { type: 3, value: \"DOOR\" };\n  IfcDoorTypeEnum.GATE = { type: 3, value: \"GATE\" };\n  IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: \"TRAPDOOR\" };\n  IfcDoorTypeEnum.TURNSTILE = { type: 3, value: \"TURNSTILE\" };\n  IfcDoorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDoorTypeEnum = IfcDoorTypeEnum;\n  class IfcDoorTypeOperationEnum {\n  }\n  IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: \"DOUBLE_PANEL_DOUBLE_SWING\" };\n  IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: \"DOUBLE_PANEL_FOLDING\" };\n  IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_LIFTING_VERTICAL\" };\n  IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: \"DOUBLE_PANEL_SINGLE_SWING\" };\n  IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: \"DOUBLE_PANEL_SLIDING\" };\n  IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n  IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n  IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n  IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: \"LIFTING_HORIZONTAL\" };\n  IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: \"LIFTING_VERTICAL_LEFT\" };\n  IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: \"LIFTING_VERTICAL_RIGHT\" };\n  IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: \"REVOLVING_HORIZONTAL\" };\n  IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: \"REVOLVING_VERTICAL\" };\n  IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n  IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n  IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n  IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n  IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n  IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: \"SWING_FIXED_LEFT\" };\n  IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: \"SWING_FIXED_RIGHT\" };\n  IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum;\n  class IfcDuctFittingTypeEnum {\n  }\n  IfcDuctFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n  IfcDuctFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n  IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n  IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;\n  class IfcDuctSegmentTypeEnum {\n  }\n  IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n  IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n  IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;\n  class IfcDuctSilencerTypeEnum {\n  }\n  IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: \"FLATOVAL\" };\n  IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n  IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: \"ROUND\" };\n  IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;\n  class IfcEarthworksCutTypeEnum {\n  }\n  IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: \"BASE_EXCAVATION\" };\n  IfcEarthworksCutTypeEnum.CUT = { type: 3, value: \"CUT\" };\n  IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: \"DREDGING\" };\n  IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: \"EXCAVATION\" };\n  IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: \"OVEREXCAVATION\" };\n  IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: \"PAVEMENTMILLING\" };\n  IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: \"STEPEXCAVATION\" };\n  IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: \"TOPSOILREMOVAL\" };\n  IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: \"TRENCH\" };\n  IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum;\n  class IfcEarthworksFillTypeEnum {\n  }\n  IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: \"BACKFILL\" };\n  IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: \"COUNTERWEIGHT\" };\n  IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: \"EMBANKMENT\" };\n  IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: \"SLOPEFILL\" };\n  IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: \"SUBGRADE\" };\n  IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: \"SUBGRADEBED\" };\n  IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: \"TRANSITIONSECTION\" };\n  IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum;\n  class IfcElectricApplianceTypeEnum {\n  }\n  IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: \"DISHWASHER\" };\n  IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: \"ELECTRICCOOKER\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: \"FREESTANDINGELECTRICHEATER\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: \"FREESTANDINGFAN\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: \"FREESTANDINGWATERCOOLER\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: \"FREESTANDINGWATERHEATER\" };\n  IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: \"FREEZER\" };\n  IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: \"FRIDGE_FREEZER\" };\n  IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: \"HANDDRYER\" };\n  IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: \"KITCHENMACHINE\" };\n  IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: \"MICROWAVE\" };\n  IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: \"PHOTOCOPIER\" };\n  IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: \"REFRIGERATOR\" };\n  IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: \"TUMBLEDRYER\" };\n  IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: \"VENDINGMACHINE\" };\n  IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: \"WASHINGMACHINE\" };\n  IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;\n  class IfcElectricDistributionBoardTypeEnum {\n  }\n  IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: \"CONSUMERUNIT\" };\n  IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: \"DISTRIBUTIONBOARD\" };\n  IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: \"MOTORCONTROLCENTRE\" };\n  IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: \"SWITCHBOARD\" };\n  IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum;\n  class IfcElectricFlowStorageDeviceTypeEnum {\n  }\n  IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: \"BATTERY\" };\n  IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: \"CAPACITOR\" };\n  IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: \"CAPACITORBANK\" };\n  IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: \"COMPENSATOR\" };\n  IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: \"HARMONICFILTER\" };\n  IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: \"INDUCTOR\" };\n  IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: \"INDUCTORBANK\" };\n  IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: \"RECHARGER\" };\n  IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: \"UPS\" };\n  IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;\n  class IfcElectricFlowTreatmentDeviceTypeEnum {\n  }\n  IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: \"ELECTRONICFILTER\" };\n  IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum;\n  class IfcElectricGeneratorTypeEnum {\n  }\n  IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: \"CHP\" };\n  IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: \"ENGINEGENERATOR\" };\n  IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: \"STANDALONE\" };\n  IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;\n  class IfcElectricMotorTypeEnum {\n  }\n  IfcElectricMotorTypeEnum.DC = { type: 3, value: \"DC\" };\n  IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: \"INDUCTION\" };\n  IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: \"POLYPHASE\" };\n  IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: \"RELUCTANCESYNCHRONOUS\" };\n  IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: \"SYNCHRONOUS\" };\n  IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;\n  class IfcElectricTimeControlTypeEnum {\n  }\n  IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: \"RELAY\" };\n  IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: \"TIMECLOCK\" };\n  IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: \"TIMEDELAY\" };\n  IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;\n  class IfcElementAssemblyTypeEnum {\n  }\n  IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: \"ABUTMENT\" };\n  IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: \"ACCESSORY_ASSEMBLY\" };\n  IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: \"ARCH\" };\n  IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: \"BEAM_GRID\" };\n  IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: \"BRACED_FRAME\" };\n  IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: \"CROSS_BRACING\" };\n  IfcElementAssemblyTypeEnum.DECK = { type: 3, value: \"DECK\" };\n  IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: \"DILATATIONPANEL\" };\n  IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: \"ENTRANCEWORKS\" };\n  IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: \"GIRDER\" };\n  IfcElementAssemblyTypeEnum.GRID = { type: 3, value: \"GRID\" };\n  IfcElementAssemblyTypeEnum.MAST = { type: 3, value: \"MAST\" };\n  IfcElementAssemblyTypeEnum.PIER = { type: 3, value: \"PIER\" };\n  IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: \"PYLON\" };\n  IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: \"RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY\" };\n  IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: \"REINFORCEMENT_UNIT\" };\n  IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: \"RIGID_FRAME\" };\n  IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: \"SHELTER\" };\n  IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: \"SIGNALASSEMBLY\" };\n  IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: \"SLAB_FIELD\" };\n  IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: \"SUMPBUSTER\" };\n  IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: \"SUPPORTINGASSEMBLY\" };\n  IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: \"SUSPENSIONASSEMBLY\" };\n  IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: \"TRACKPANEL\" };\n  IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: \"TRACTION_SWITCHING_ASSEMBLY\" };\n  IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: \"TRAFFIC_CALMING_DEVICE\" };\n  IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: \"TRUSS\" };\n  IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: \"TURNOUTPANEL\" };\n  IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;\n  class IfcElementCompositionEnum {\n  }\n  IfcElementCompositionEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n  IfcElementCompositionEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n  IfcElementCompositionEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n  IFC4_32.IfcElementCompositionEnum = IfcElementCompositionEnum;\n  class IfcEngineTypeEnum {\n  }\n  IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: \"EXTERNALCOMBUSTION\" };\n  IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: \"INTERNALCOMBUSTION\" };\n  IfcEngineTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcEngineTypeEnum = IfcEngineTypeEnum;\n  class IfcEvaporativeCoolerTypeEnum {\n  }\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: \"DIRECTEVAPORATIVEAIRWASHER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: \"INDIRECTDIRECTCOMBINATION\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: \"INDIRECTEVAPORATIVEWETCOIL\" };\n  IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;\n  class IfcEvaporatorTypeEnum {\n  }\n  IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: \"DIRECTEXPANSION\" };\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: \"DIRECTEXPANSIONBRAZEDPLATE\" };\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: \"DIRECTEXPANSIONSHELLANDTUBE\" };\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: \"DIRECTEXPANSIONTUBEINTUBE\" };\n  IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: \"FLOODEDSHELLANDTUBE\" };\n  IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: \"SHELLANDCOIL\" };\n  IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;\n  class IfcEventTriggerTypeEnum {\n  }\n  IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: \"EVENTCOMPLEX\" };\n  IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: \"EVENTMESSAGE\" };\n  IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: \"EVENTRULE\" };\n  IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: \"EVENTTIME\" };\n  IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum;\n  class IfcEventTypeEnum {\n  }\n  IfcEventTypeEnum.ENDEVENT = { type: 3, value: \"ENDEVENT\" };\n  IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: \"INTERMEDIATEEVENT\" };\n  IfcEventTypeEnum.STARTEVENT = { type: 3, value: \"STARTEVENT\" };\n  IfcEventTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEventTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcEventTypeEnum = IfcEventTypeEnum;\n  class IfcExternalSpatialElementTypeEnum {\n  }\n  IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: \"EXTERNAL_EARTH\" };\n  IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: \"EXTERNAL_FIRE\" };\n  IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: \"EXTERNAL_WATER\" };\n  IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum;\n  class IfcFacilityPartCommonTypeEnum {\n  }\n  IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: \"ABOVEGROUND\" };\n  IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: \"BELOWGROUND\" };\n  IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: \"LEVELCROSSING\" };\n  IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: \"SEGMENT\" };\n  IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: \"SUBSTRUCTURE\" };\n  IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: \"SUPERSTRUCTURE\" };\n  IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: \"TERMINAL\" };\n  IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum;\n  class IfcFacilityUsageEnum {\n  }\n  IfcFacilityUsageEnum.LATERAL = { type: 3, value: \"LATERAL\" };\n  IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: \"LONGITUDINAL\" };\n  IfcFacilityUsageEnum.REGION = { type: 3, value: \"REGION\" };\n  IfcFacilityUsageEnum.VERTICAL = { type: 3, value: \"VERTICAL\" };\n  IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFacilityUsageEnum = IfcFacilityUsageEnum;\n  class IfcFanTypeEnum {\n  }\n  IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: \"CENTRIFUGALAIRFOIL\" };\n  IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: \"CENTRIFUGALBACKWARDINCLINEDCURVED\" };\n  IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: \"CENTRIFUGALFORWARDCURVED\" };\n  IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: \"CENTRIFUGALRADIAL\" };\n  IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: \"PROPELLORAXIAL\" };\n  IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: \"TUBEAXIAL\" };\n  IfcFanTypeEnum.VANEAXIAL = { type: 3, value: \"VANEAXIAL\" };\n  IfcFanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFanTypeEnum = IfcFanTypeEnum;\n  class IfcFastenerTypeEnum {\n  }\n  IfcFastenerTypeEnum.GLUE = { type: 3, value: \"GLUE\" };\n  IfcFastenerTypeEnum.MORTAR = { type: 3, value: \"MORTAR\" };\n  IfcFastenerTypeEnum.WELD = { type: 3, value: \"WELD\" };\n  IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFastenerTypeEnum = IfcFastenerTypeEnum;\n  class IfcFilterTypeEnum {\n  }\n  IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: \"AIRPARTICLEFILTER\" };\n  IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: \"COMPRESSEDAIRFILTER\" };\n  IfcFilterTypeEnum.ODORFILTER = { type: 3, value: \"ODORFILTER\" };\n  IfcFilterTypeEnum.OILFILTER = { type: 3, value: \"OILFILTER\" };\n  IfcFilterTypeEnum.STRAINER = { type: 3, value: \"STRAINER\" };\n  IfcFilterTypeEnum.WATERFILTER = { type: 3, value: \"WATERFILTER\" };\n  IfcFilterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFilterTypeEnum = IfcFilterTypeEnum;\n  class IfcFireSuppressionTerminalTypeEnum {\n  }\n  IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: \"BREECHINGINLET\" };\n  IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: \"FIREHYDRANT\" };\n  IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: \"FIREMONITOR\" };\n  IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: \"HOSEREEL\" };\n  IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: \"SPRINKLER\" };\n  IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: \"SPRINKLERDEFLECTOR\" };\n  IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;\n  class IfcFlowDirectionEnum {\n  }\n  IfcFlowDirectionEnum.SINK = { type: 3, value: \"SINK\" };\n  IfcFlowDirectionEnum.SOURCE = { type: 3, value: \"SOURCE\" };\n  IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: \"SOURCEANDSINK\" };\n  IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFlowDirectionEnum = IfcFlowDirectionEnum;\n  class IfcFlowInstrumentTypeEnum {\n  }\n  IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: \"AMMETER\" };\n  IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: \"COMBINED\" };\n  IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: \"FREQUENCYMETER\" };\n  IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: \"PHASEANGLEMETER\" };\n  IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: \"POWERFACTORMETER\" };\n  IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: \"PRESSUREGAUGE\" };\n  IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: \"THERMOMETER\" };\n  IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: \"VOLTMETER\" };\n  IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: \"VOLTMETER_PEAK\" };\n  IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: \"VOLTMETER_RMS\" };\n  IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;\n  class IfcFlowMeterTypeEnum {\n  }\n  IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: \"ENERGYMETER\" };\n  IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: \"GASMETER\" };\n  IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: \"OILMETER\" };\n  IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: \"WATERMETER\" };\n  IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;\n  class IfcFootingTypeEnum {\n  }\n  IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: \"CAISSON_FOUNDATION\" };\n  IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: \"FOOTING_BEAM\" };\n  IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: \"PAD_FOOTING\" };\n  IfcFootingTypeEnum.PILE_CAP = { type: 3, value: \"PILE_CAP\" };\n  IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: \"STRIP_FOOTING\" };\n  IfcFootingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFootingTypeEnum = IfcFootingTypeEnum;\n  class IfcFurnitureTypeEnum {\n  }\n  IfcFurnitureTypeEnum.BED = { type: 3, value: \"BED\" };\n  IfcFurnitureTypeEnum.CHAIR = { type: 3, value: \"CHAIR\" };\n  IfcFurnitureTypeEnum.DESK = { type: 3, value: \"DESK\" };\n  IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: \"FILECABINET\" };\n  IfcFurnitureTypeEnum.SHELF = { type: 3, value: \"SHELF\" };\n  IfcFurnitureTypeEnum.SOFA = { type: 3, value: \"SOFA\" };\n  IfcFurnitureTypeEnum.TABLE = { type: 3, value: \"TABLE\" };\n  IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: \"TECHNICALCABINET\" };\n  IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum;\n  class IfcGeographicElementTypeEnum {\n  }\n  IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: \"SOIL_BORING_POINT\" };\n  IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: \"TERRAIN\" };\n  IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: \"VEGETATION\" };\n  IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum;\n  class IfcGeometricProjectionEnum {\n  }\n  IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: \"ELEVATION_VIEW\" };\n  IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: \"GRAPH_VIEW\" };\n  IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: \"MODEL_VIEW\" };\n  IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: \"PLAN_VIEW\" };\n  IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: \"REFLECTED_PLAN_VIEW\" };\n  IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: \"SECTION_VIEW\" };\n  IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: \"SKETCH_VIEW\" };\n  IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;\n  class IfcGeotechnicalStratumTypeEnum {\n  }\n  IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: \"SOLID\" };\n  IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: \"VOID\" };\n  IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: \"WATER\" };\n  IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum;\n  class IfcGlobalOrLocalEnum {\n  }\n  IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: \"GLOBAL_COORDS\" };\n  IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: \"LOCAL_COORDS\" };\n  IFC4_32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;\n  class IfcGridTypeEnum {\n  }\n  IfcGridTypeEnum.IRREGULAR = { type: 3, value: \"IRREGULAR\" };\n  IfcGridTypeEnum.RADIAL = { type: 3, value: \"RADIAL\" };\n  IfcGridTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n  IfcGridTypeEnum.TRIANGULAR = { type: 3, value: \"TRIANGULAR\" };\n  IfcGridTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGridTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcGridTypeEnum = IfcGridTypeEnum;\n  class IfcHeatExchangerTypeEnum {\n  }\n  IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n  IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: \"SHELLANDTUBE\" };\n  IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: \"TURNOUTHEATING\" };\n  IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;\n  class IfcHumidifierTypeEnum {\n  }\n  IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: \"ADIABATICAIRWASHER\" };\n  IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: \"ADIABATICATOMIZING\" };\n  IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: \"ADIABATICCOMPRESSEDAIRNOZZLE\" };\n  IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: \"ADIABATICPAN\" };\n  IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: \"ADIABATICRIGIDMEDIA\" };\n  IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: \"ADIABATICULTRASONIC\" };\n  IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: \"ADIABATICWETTEDELEMENT\" };\n  IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: \"ASSISTEDBUTANE\" };\n  IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: \"ASSISTEDELECTRIC\" };\n  IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: \"ASSISTEDNATURALGAS\" };\n  IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: \"ASSISTEDPROPANE\" };\n  IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: \"ASSISTEDSTEAM\" };\n  IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: \"STEAMINJECTION\" };\n  IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;\n  class IfcImpactProtectionDeviceTypeEnum {\n  }\n  IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: \"BUMPER\" };\n  IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: \"CRASHCUSHION\" };\n  IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: \"DAMPINGSYSTEM\" };\n  IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: \"FENDER\" };\n  IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum;\n  class IfcInterceptorTypeEnum {\n  }\n  IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: \"CYCLONIC\" };\n  IfcInterceptorTypeEnum.GREASE = { type: 3, value: \"GREASE\" };\n  IfcInterceptorTypeEnum.OIL = { type: 3, value: \"OIL\" };\n  IfcInterceptorTypeEnum.PETROL = { type: 3, value: \"PETROL\" };\n  IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum;\n  class IfcInternalOrExternalEnum {\n  }\n  IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: \"EXTERNAL_EARTH\" };\n  IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: \"EXTERNAL_FIRE\" };\n  IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: \"EXTERNAL_WATER\" };\n  IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n  IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;\n  class IfcInventoryTypeEnum {\n  }\n  IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: \"ASSETINVENTORY\" };\n  IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: \"FURNITUREINVENTORY\" };\n  IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: \"SPACEINVENTORY\" };\n  IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcInventoryTypeEnum = IfcInventoryTypeEnum;\n  class IfcJunctionBoxTypeEnum {\n  }\n  IfcJunctionBoxTypeEnum.DATA = { type: 3, value: \"DATA\" };\n  IfcJunctionBoxTypeEnum.POWER = { type: 3, value: \"POWER\" };\n  IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;\n  class IfcKnotType {\n  }\n  IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: \"PIECEWISE_BEZIER_KNOTS\" };\n  IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: \"QUASI_UNIFORM_KNOTS\" };\n  IfcKnotType.UNIFORM_KNOTS = { type: 3, value: \"UNIFORM_KNOTS\" };\n  IfcKnotType.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC4_32.IfcKnotType = IfcKnotType;\n  class IfcLaborResourceTypeEnum {\n  }\n  IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: \"ADMINISTRATION\" };\n  IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: \"CARPENTRY\" };\n  IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: \"CLEANING\" };\n  IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: \"CONCRETE\" };\n  IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: \"DRYWALL\" };\n  IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: \"ELECTRIC\" };\n  IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: \"FINISHING\" };\n  IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n  IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: \"GENERAL\" };\n  IfcLaborResourceTypeEnum.HVAC = { type: 3, value: \"HVAC\" };\n  IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: \"LANDSCAPING\" };\n  IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: \"MASONRY\" };\n  IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: \"PAINTING\" };\n  IfcLaborResourceTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n  IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: \"PLUMBING\" };\n  IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n  IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: \"SITEGRADING\" };\n  IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: \"STEELWORK\" };\n  IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: \"SURVEYING\" };\n  IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum;\n  class IfcLampTypeEnum {\n  }\n  IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n  IfcLampTypeEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n  IfcLampTypeEnum.HALOGEN = { type: 3, value: \"HALOGEN\" };\n  IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n  IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n  IfcLampTypeEnum.LED = { type: 3, value: \"LED\" };\n  IfcLampTypeEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n  IfcLampTypeEnum.OLED = { type: 3, value: \"OLED\" };\n  IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n  IfcLampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcLampTypeEnum = IfcLampTypeEnum;\n  class IfcLayerSetDirectionEnum {\n  }\n  IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: \"AXIS1\" };\n  IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: \"AXIS2\" };\n  IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: \"AXIS3\" };\n  IFC4_32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;\n  class IfcLightDistributionCurveEnum {\n  }\n  IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: \"TYPE_A\" };\n  IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: \"TYPE_B\" };\n  IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: \"TYPE_C\" };\n  IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;\n  class IfcLightEmissionSourceEnum {\n  }\n  IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n  IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n  IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n  IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n  IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: \"LIGHTEMITTINGDIODE\" };\n  IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: \"LOWPRESSURESODIUM\" };\n  IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: \"LOWVOLTAGEHALOGEN\" };\n  IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: \"MAINVOLTAGEHALOGEN\" };\n  IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n  IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n  IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;\n  class IfcLightFixtureTypeEnum {\n  }\n  IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: \"DIRECTIONSOURCE\" };\n  IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: \"POINTSOURCE\" };\n  IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: \"SECURITYLIGHTING\" };\n  IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;\n  class IfcLiquidTerminalTypeEnum {\n  }\n  IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: \"HOSEREEL\" };\n  IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: \"LOADINGARM\" };\n  IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum;\n  class IfcLoadGroupTypeEnum {\n  }\n  IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: \"LOAD_CASE\" };\n  IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: \"LOAD_COMBINATION\" };\n  IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: \"LOAD_GROUP\" };\n  IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;\n  class IfcLogicalOperatorEnum {\n  }\n  IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: \"LOGICALAND\" };\n  IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: \"LOGICALNOTAND\" };\n  IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: \"LOGICALNOTOR\" };\n  IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: \"LOGICALOR\" };\n  IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: \"LOGICALXOR\" };\n  IFC4_32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;\n  class IfcMarineFacilityTypeEnum {\n  }\n  IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: \"BARRIERBEACH\" };\n  IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: \"BREAKWATER\" };\n  IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: \"CANAL\" };\n  IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: \"DRYDOCK\" };\n  IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: \"FLOATINGDOCK\" };\n  IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: \"HYDROLIFT\" };\n  IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: \"JETTY\" };\n  IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: \"LAUNCHRECOVERY\" };\n  IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: \"MARINEDEFENCE\" };\n  IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: \"NAVIGATIONALCHANNEL\" };\n  IfcMarineFacilityTypeEnum.PORT = { type: 3, value: \"PORT\" };\n  IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: \"QUAY\" };\n  IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: \"REVETMENT\" };\n  IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: \"SHIPLIFT\" };\n  IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: \"SHIPLOCK\" };\n  IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: \"SHIPYARD\" };\n  IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: \"SLIPWAY\" };\n  IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: \"WATERWAY\" };\n  IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: \"WATERWAYSHIPLIFT\" };\n  IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum;\n  class IfcMarinePartTypeEnum {\n  }\n  IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: \"ABOVEWATERLINE\" };\n  IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: \"ANCHORAGE\" };\n  IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: \"APPROACHCHANNEL\" };\n  IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: \"BELOWWATERLINE\" };\n  IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: \"BERTHINGSTRUCTURE\" };\n  IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: \"CHAMBER\" };\n  IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: \"CILL_LEVEL\" };\n  IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: \"COPELEVEL\" };\n  IfcMarinePartTypeEnum.CORE = { type: 3, value: \"CORE\" };\n  IfcMarinePartTypeEnum.CREST = { type: 3, value: \"CREST\" };\n  IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: \"GATEHEAD\" };\n  IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: \"GUDINGSTRUCTURE\" };\n  IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: \"HIGHWATERLINE\" };\n  IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: \"LANDFIELD\" };\n  IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: \"LEEWARDSIDE\" };\n  IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: \"LOWWATERLINE\" };\n  IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: \"MANUFACTURING\" };\n  IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: \"NAVIGATIONALAREA\" };\n  IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: \"PROTECTION\" };\n  IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: \"SHIPTRANSFER\" };\n  IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: \"STORAGEAREA\" };\n  IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: \"VEHICLESERVICING\" };\n  IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: \"WATERFIELD\" };\n  IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: \"WEATHERSIDE\" };\n  IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum;\n  class IfcMechanicalFastenerTypeEnum {\n  }\n  IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: \"ANCHORBOLT\" };\n  IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: \"BOLT\" };\n  IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: \"CHAIN\" };\n  IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: \"COUPLER\" };\n  IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: \"DOWEL\" };\n  IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: \"NAIL\" };\n  IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: \"NAILPLATE\" };\n  IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: \"RAILFASTENING\" };\n  IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: \"RAILJOINT\" };\n  IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: \"RIVET\" };\n  IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: \"ROPE\" };\n  IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: \"SCREW\" };\n  IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: \"SHEARCONNECTOR\" };\n  IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: \"STAPLE\" };\n  IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: \"STUDSHEARCONNECTOR\" };\n  IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum;\n  class IfcMedicalDeviceTypeEnum {\n  }\n  IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: \"AIRSTATION\" };\n  IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: \"FEEDAIRUNIT\" };\n  IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: \"OXYGENGENERATOR\" };\n  IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: \"OXYGENPLANT\" };\n  IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: \"VACUUMSTATION\" };\n  IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum;\n  class IfcMemberTypeEnum {\n  }\n  IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: \"ARCH_SEGMENT\" };\n  IfcMemberTypeEnum.BRACE = { type: 3, value: \"BRACE\" };\n  IfcMemberTypeEnum.CHORD = { type: 3, value: \"CHORD\" };\n  IfcMemberTypeEnum.COLLAR = { type: 3, value: \"COLLAR\" };\n  IfcMemberTypeEnum.MEMBER = { type: 3, value: \"MEMBER\" };\n  IfcMemberTypeEnum.MULLION = { type: 3, value: \"MULLION\" };\n  IfcMemberTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n  IfcMemberTypeEnum.POST = { type: 3, value: \"POST\" };\n  IfcMemberTypeEnum.PURLIN = { type: 3, value: \"PURLIN\" };\n  IfcMemberTypeEnum.RAFTER = { type: 3, value: \"RAFTER\" };\n  IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: \"STAY_CABLE\" };\n  IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: \"STIFFENING_RIB\" };\n  IfcMemberTypeEnum.STRINGER = { type: 3, value: \"STRINGER\" };\n  IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: \"STRUCTURALCABLE\" };\n  IfcMemberTypeEnum.STRUT = { type: 3, value: \"STRUT\" };\n  IfcMemberTypeEnum.STUD = { type: 3, value: \"STUD\" };\n  IfcMemberTypeEnum.SUSPENDER = { type: 3, value: \"SUSPENDER\" };\n  IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: \"SUSPENSION_CABLE\" };\n  IfcMemberTypeEnum.TIEBAR = { type: 3, value: \"TIEBAR\" };\n  IfcMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcMemberTypeEnum = IfcMemberTypeEnum;\n  class IfcMobileTelecommunicationsApplianceTypeEnum {\n  }\n  IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: \"ACCESSPOINT\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: \"BASEBANDUNIT\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: \"BASETRANSCEIVERSTATION\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: \"E_UTRAN_NODE_B\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: \"GATEWAY_GPRS_SUPPORT_NODE\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: \"MASTERUNIT\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: \"MOBILESWITCHINGCENTER\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: \"MSCSERVER\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: \"PACKETCONTROLUNIT\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: \"REMOTERADIOUNIT\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: \"REMOTEUNIT\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: \"SERVICE_GPRS_SUPPORT_NODE\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: \"SUBSCRIBERSERVER\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum;\n  class IfcMooringDeviceTypeEnum {\n  }\n  IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: \"BOLLARD\" };\n  IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: \"LINETENSIONER\" };\n  IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: \"MAGNETICDEVICE\" };\n  IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: \"MOORINGHOOKS\" };\n  IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: \"VACUUMDEVICE\" };\n  IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum;\n  class IfcMotorConnectionTypeEnum {\n  }\n  IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: \"BELTDRIVE\" };\n  IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: \"COUPLING\" };\n  IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: \"DIRECTDRIVE\" };\n  IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;\n  class IfcNavigationElementTypeEnum {\n  }\n  IfcNavigationElementTypeEnum.BEACON = { type: 3, value: \"BEACON\" };\n  IfcNavigationElementTypeEnum.BUOY = { type: 3, value: \"BUOY\" };\n  IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum;\n  class IfcObjectTypeEnum {\n  }\n  IfcObjectTypeEnum.ACTOR = { type: 3, value: \"ACTOR\" };\n  IfcObjectTypeEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n  IfcObjectTypeEnum.GROUP = { type: 3, value: \"GROUP\" };\n  IfcObjectTypeEnum.PROCESS = { type: 3, value: \"PROCESS\" };\n  IfcObjectTypeEnum.PRODUCT = { type: 3, value: \"PRODUCT\" };\n  IfcObjectTypeEnum.PROJECT = { type: 3, value: \"PROJECT\" };\n  IfcObjectTypeEnum.RESOURCE = { type: 3, value: \"RESOURCE\" };\n  IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcObjectTypeEnum = IfcObjectTypeEnum;\n  class IfcObjectiveEnum {\n  }\n  IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: \"CODECOMPLIANCE\" };\n  IfcObjectiveEnum.CODEWAIVER = { type: 3, value: \"CODEWAIVER\" };\n  IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: \"DESIGNINTENT\" };\n  IfcObjectiveEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: \"HEALTHANDSAFETY\" };\n  IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: \"MERGECONFLICT\" };\n  IfcObjectiveEnum.MODELVIEW = { type: 3, value: \"MODELVIEW\" };\n  IfcObjectiveEnum.PARAMETER = { type: 3, value: \"PARAMETER\" };\n  IfcObjectiveEnum.REQUIREMENT = { type: 3, value: \"REQUIREMENT\" };\n  IfcObjectiveEnum.SPECIFICATION = { type: 3, value: \"SPECIFICATION\" };\n  IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: \"TRIGGERCONDITION\" };\n  IfcObjectiveEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcObjectiveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcObjectiveEnum = IfcObjectiveEnum;\n  class IfcOccupantTypeEnum {\n  }\n  IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: \"ASSIGNEE\" };\n  IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: \"ASSIGNOR\" };\n  IfcOccupantTypeEnum.LESSEE = { type: 3, value: \"LESSEE\" };\n  IfcOccupantTypeEnum.LESSOR = { type: 3, value: \"LESSOR\" };\n  IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: \"LETTINGAGENT\" };\n  IfcOccupantTypeEnum.OWNER = { type: 3, value: \"OWNER\" };\n  IfcOccupantTypeEnum.TENANT = { type: 3, value: \"TENANT\" };\n  IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcOccupantTypeEnum = IfcOccupantTypeEnum;\n  class IfcOpeningElementTypeEnum {\n  }\n  IfcOpeningElementTypeEnum.OPENING = { type: 3, value: \"OPENING\" };\n  IfcOpeningElementTypeEnum.RECESS = { type: 3, value: \"RECESS\" };\n  IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum;\n  class IfcOutletTypeEnum {\n  }\n  IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: \"AUDIOVISUALOUTLET\" };\n  IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: \"COMMUNICATIONSOUTLET\" };\n  IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: \"DATAOUTLET\" };\n  IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: \"POWEROUTLET\" };\n  IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: \"TELEPHONEOUTLET\" };\n  IfcOutletTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcOutletTypeEnum = IfcOutletTypeEnum;\n  class IfcPavementTypeEnum {\n  }\n  IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: \"FLEXIBLE\" };\n  IfcPavementTypeEnum.RIGID = { type: 3, value: \"RIGID\" };\n  IfcPavementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPavementTypeEnum = IfcPavementTypeEnum;\n  class IfcPerformanceHistoryTypeEnum {\n  }\n  IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum;\n  class IfcPermeableCoveringOperationEnum {\n  }\n  IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: \"GRILL\" };\n  IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: \"LOUVER\" };\n  IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: \"SCREEN\" };\n  IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;\n  class IfcPermitTypeEnum {\n  }\n  IfcPermitTypeEnum.ACCESS = { type: 3, value: \"ACCESS\" };\n  IfcPermitTypeEnum.BUILDING = { type: 3, value: \"BUILDING\" };\n  IfcPermitTypeEnum.WORK = { type: 3, value: \"WORK\" };\n  IfcPermitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPermitTypeEnum = IfcPermitTypeEnum;\n  class IfcPhysicalOrVirtualEnum {\n  }\n  IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: \"PHYSICAL\" };\n  IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: \"VIRTUAL\" };\n  IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;\n  class IfcPileConstructionEnum {\n  }\n  IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: \"CAST_IN_PLACE\" };\n  IfcPileConstructionEnum.COMPOSITE = { type: 3, value: \"COMPOSITE\" };\n  IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: \"PRECAST_CONCRETE\" };\n  IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: \"PREFAB_STEEL\" };\n  IfcPileConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPileConstructionEnum = IfcPileConstructionEnum;\n  class IfcPileTypeEnum {\n  }\n  IfcPileTypeEnum.BORED = { type: 3, value: \"BORED\" };\n  IfcPileTypeEnum.COHESION = { type: 3, value: \"COHESION\" };\n  IfcPileTypeEnum.DRIVEN = { type: 3, value: \"DRIVEN\" };\n  IfcPileTypeEnum.FRICTION = { type: 3, value: \"FRICTION\" };\n  IfcPileTypeEnum.JETGROUTING = { type: 3, value: \"JETGROUTING\" };\n  IfcPileTypeEnum.SUPPORT = { type: 3, value: \"SUPPORT\" };\n  IfcPileTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPileTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPileTypeEnum = IfcPileTypeEnum;\n  class IfcPipeFittingTypeEnum {\n  }\n  IfcPipeFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n  IfcPipeFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n  IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n  IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;\n  class IfcPipeSegmentTypeEnum {\n  }\n  IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: \"CULVERT\" };\n  IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n  IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: \"GUTTER\" };\n  IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n  IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: \"SPOOL\" };\n  IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;\n  class IfcPlateTypeEnum {\n  }\n  IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: \"BASE_PLATE\" };\n  IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: \"COVER_PLATE\" };\n  IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: \"CURTAIN_PANEL\" };\n  IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: \"FLANGE_PLATE\" };\n  IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: \"GUSSET_PLATE\" };\n  IfcPlateTypeEnum.SHEET = { type: 3, value: \"SHEET\" };\n  IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: \"SPLICE_PLATE\" };\n  IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: \"STIFFENER_PLATE\" };\n  IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: \"WEB_PLATE\" };\n  IfcPlateTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPlateTypeEnum = IfcPlateTypeEnum;\n  class IfcPreferredSurfaceCurveRepresentation {\n  }\n  IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: \"CURVE3D\" };\n  IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: \"PCURVE_S1\" };\n  IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: \"PCURVE_S2\" };\n  IFC4_32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation;\n  class IfcProcedureTypeEnum {\n  }\n  IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: \"ADVICE_CAUTION\" };\n  IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: \"ADVICE_NOTE\" };\n  IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: \"ADVICE_WARNING\" };\n  IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: \"CALIBRATION\" };\n  IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: \"DIAGNOSTIC\" };\n  IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: \"SHUTDOWN\" };\n  IfcProcedureTypeEnum.STARTUP = { type: 3, value: \"STARTUP\" };\n  IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcProcedureTypeEnum = IfcProcedureTypeEnum;\n  class IfcProfileTypeEnum {\n  }\n  IfcProfileTypeEnum.AREA = { type: 3, value: \"AREA\" };\n  IfcProfileTypeEnum.CURVE = { type: 3, value: \"CURVE\" };\n  IFC4_32.IfcProfileTypeEnum = IfcProfileTypeEnum;\n  class IfcProjectOrderTypeEnum {\n  }\n  IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: \"CHANGEORDER\" };\n  IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: \"MAINTENANCEWORKORDER\" };\n  IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: \"MOVEORDER\" };\n  IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: \"PURCHASEORDER\" };\n  IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: \"WORKORDER\" };\n  IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;\n  class IfcProjectedOrTrueLengthEnum {\n  }\n  IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: \"PROJECTED_LENGTH\" };\n  IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: \"TRUE_LENGTH\" };\n  IFC4_32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;\n  class IfcProjectionElementTypeEnum {\n  }\n  IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: \"BLISTER\" };\n  IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: \"DEVIATOR\" };\n  IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum;\n  class IfcPropertySetTemplateTypeEnum {\n  }\n  IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: \"PSET_MATERIALDRIVEN\" };\n  IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: \"PSET_OCCURRENCEDRIVEN\" };\n  IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: \"PSET_PERFORMANCEDRIVEN\" };\n  IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: \"PSET_PROFILEDRIVEN\" };\n  IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: \"PSET_TYPEDRIVENONLY\" };\n  IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: \"PSET_TYPEDRIVENOVERRIDE\" };\n  IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: \"QTO_OCCURRENCEDRIVEN\" };\n  IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: \"QTO_TYPEDRIVENONLY\" };\n  IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: \"QTO_TYPEDRIVENOVERRIDE\" };\n  IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum;\n  class IfcProtectiveDeviceTrippingUnitTypeEnum {\n  }\n  IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: \"ELECTROMAGNETIC\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: \"ELECTRONIC\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: \"RESIDUALCURRENT\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: \"THERMAL\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum;\n  class IfcProtectiveDeviceTypeEnum {\n  }\n  IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: \"ANTI_ARCING_DEVICE\" };\n  IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: \"CIRCUITBREAKER\" };\n  IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: \"EARTHINGSWITCH\" };\n  IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: \"EARTHLEAKAGECIRCUITBREAKER\" };\n  IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: \"FUSEDISCONNECTOR\" };\n  IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: \"RESIDUALCURRENTCIRCUITBREAKER\" };\n  IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: \"RESIDUALCURRENTSWITCH\" };\n  IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: \"SPARKGAP\" };\n  IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: \"VARISTOR\" };\n  IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: \"VOLTAGELIMITER\" };\n  IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;\n  class IfcPumpTypeEnum {\n  }\n  IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: \"CIRCULATOR\" };\n  IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: \"ENDSUCTION\" };\n  IfcPumpTypeEnum.SPLITCASE = { type: 3, value: \"SPLITCASE\" };\n  IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: \"SUBMERSIBLEPUMP\" };\n  IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: \"SUMPPUMP\" };\n  IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: \"VERTICALINLINE\" };\n  IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: \"VERTICALTURBINE\" };\n  IfcPumpTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcPumpTypeEnum = IfcPumpTypeEnum;\n  class IfcRailTypeEnum {\n  }\n  IfcRailTypeEnum.BLADE = { type: 3, value: \"BLADE\" };\n  IfcRailTypeEnum.CHECKRAIL = { type: 3, value: \"CHECKRAIL\" };\n  IfcRailTypeEnum.GUARDRAIL = { type: 3, value: \"GUARDRAIL\" };\n  IfcRailTypeEnum.RACKRAIL = { type: 3, value: \"RACKRAIL\" };\n  IfcRailTypeEnum.RAIL = { type: 3, value: \"RAIL\" };\n  IfcRailTypeEnum.STOCKRAIL = { type: 3, value: \"STOCKRAIL\" };\n  IfcRailTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRailTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRailTypeEnum = IfcRailTypeEnum;\n  class IfcRailingTypeEnum {\n  }\n  IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: \"BALUSTRADE\" };\n  IfcRailingTypeEnum.FENCE = { type: 3, value: \"FENCE\" };\n  IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: \"GUARDRAIL\" };\n  IfcRailingTypeEnum.HANDRAIL = { type: 3, value: \"HANDRAIL\" };\n  IfcRailingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRailingTypeEnum = IfcRailingTypeEnum;\n  class IfcRailwayPartTypeEnum {\n  }\n  IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: \"DILATATIONSUPERSTRUCTURE\" };\n  IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: \"LINESIDESTRUCTURE\" };\n  IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: \"LINESIDESTRUCTUREPART\" };\n  IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: \"PLAINTRACKSUPERSTRUCTURE\" };\n  IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: \"SUPERSTRUCTURE\" };\n  IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: \"TRACKSTRUCTURE\" };\n  IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: \"TRACKSTRUCTUREPART\" };\n  IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: \"TURNOUTSUPERSTRUCTURE\" };\n  IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum;\n  class IfcRailwayTypeEnum {\n  }\n  IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRailwayTypeEnum = IfcRailwayTypeEnum;\n  class IfcRampFlightTypeEnum {\n  }\n  IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n  IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n  IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;\n  class IfcRampTypeEnum {\n  }\n  IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: \"HALF_TURN_RAMP\" };\n  IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: \"QUARTER_TURN_RAMP\" };\n  IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: \"SPIRAL_RAMP\" };\n  IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: \"STRAIGHT_RUN_RAMP\" };\n  IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: \"TWO_QUARTER_TURN_RAMP\" };\n  IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: \"TWO_STRAIGHT_RUN_RAMP\" };\n  IfcRampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRampTypeEnum = IfcRampTypeEnum;\n  class IfcRecurrenceTypeEnum {\n  }\n  IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: \"BY_DAY_COUNT\" };\n  IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: \"BY_WEEKDAY_COUNT\" };\n  IfcRecurrenceTypeEnum.DAILY = { type: 3, value: \"DAILY\" };\n  IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: \"MONTHLY_BY_DAY_OF_MONTH\" };\n  IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: \"MONTHLY_BY_POSITION\" };\n  IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: \"WEEKLY\" };\n  IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: \"YEARLY_BY_DAY_OF_MONTH\" };\n  IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: \"YEARLY_BY_POSITION\" };\n  IFC4_32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum;\n  class IfcReferentTypeEnum {\n  }\n  IfcReferentTypeEnum.BOUNDARY = { type: 3, value: \"BOUNDARY\" };\n  IfcReferentTypeEnum.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n  IfcReferentTypeEnum.KILOPOINT = { type: 3, value: \"KILOPOINT\" };\n  IfcReferentTypeEnum.LANDMARK = { type: 3, value: \"LANDMARK\" };\n  IfcReferentTypeEnum.MILEPOINT = { type: 3, value: \"MILEPOINT\" };\n  IfcReferentTypeEnum.POSITION = { type: 3, value: \"POSITION\" };\n  IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: \"REFERENCEMARKER\" };\n  IfcReferentTypeEnum.STATION = { type: 3, value: \"STATION\" };\n  IfcReferentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcReferentTypeEnum = IfcReferentTypeEnum;\n  class IfcReflectanceMethodEnum {\n  }\n  IfcReflectanceMethodEnum.BLINN = { type: 3, value: \"BLINN\" };\n  IfcReflectanceMethodEnum.FLAT = { type: 3, value: \"FLAT\" };\n  IfcReflectanceMethodEnum.GLASS = { type: 3, value: \"GLASS\" };\n  IfcReflectanceMethodEnum.MATT = { type: 3, value: \"MATT\" };\n  IfcReflectanceMethodEnum.METAL = { type: 3, value: \"METAL\" };\n  IfcReflectanceMethodEnum.MIRROR = { type: 3, value: \"MIRROR\" };\n  IfcReflectanceMethodEnum.PHONG = { type: 3, value: \"PHONG\" };\n  IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: \"PHYSICAL\" };\n  IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: \"STRAUSS\" };\n  IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;\n  class IfcReinforcedSoilTypeEnum {\n  }\n  IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: \"DYNAMICALLYCOMPACTED\" };\n  IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: \"GROUTED\" };\n  IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: \"REPLACED\" };\n  IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: \"ROLLERCOMPACTED\" };\n  IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: \"SURCHARGEPRELOADED\" };\n  IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: \"VERTICALLYDRAINED\" };\n  IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum;\n  class IfcReinforcingBarRoleEnum {\n  }\n  IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: \"ANCHORING\" };\n  IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: \"EDGE\" };\n  IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n  IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: \"MAIN\" };\n  IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n  IfcReinforcingBarRoleEnum.RING = { type: 3, value: \"RING\" };\n  IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n  IfcReinforcingBarRoleEnum.STUD = { type: 3, value: \"STUD\" };\n  IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;\n  class IfcReinforcingBarSurfaceEnum {\n  }\n  IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: \"PLAIN\" };\n  IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: \"TEXTURED\" };\n  IFC4_32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;\n  class IfcReinforcingBarTypeEnum {\n  }\n  IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: \"ANCHORING\" };\n  IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: \"EDGE\" };\n  IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n  IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: \"MAIN\" };\n  IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n  IfcReinforcingBarTypeEnum.RING = { type: 3, value: \"RING\" };\n  IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n  IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: \"SPACEBAR\" };\n  IfcReinforcingBarTypeEnum.STUD = { type: 3, value: \"STUD\" };\n  IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum;\n  class IfcReinforcingMeshTypeEnum {\n  }\n  IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum;\n  class IfcRoadPartTypeEnum {\n  }\n  IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: \"BICYCLECROSSING\" };\n  IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: \"BUS_STOP\" };\n  IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: \"CARRIAGEWAY\" };\n  IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: \"CENTRALISLAND\" };\n  IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: \"CENTRALRESERVE\" };\n  IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: \"HARDSHOULDER\" };\n  IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n  IfcRoadPartTypeEnum.LAYBY = { type: 3, value: \"LAYBY\" };\n  IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: \"PARKINGBAY\" };\n  IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: \"PASSINGBAY\" };\n  IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: \"PEDESTRIAN_CROSSING\" };\n  IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: \"RAILWAYCROSSING\" };\n  IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: \"REFUGEISLAND\" };\n  IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: \"ROADSEGMENT\" };\n  IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: \"ROADSIDE\" };\n  IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: \"ROADSIDEPART\" };\n  IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: \"ROADWAYPLATEAU\" };\n  IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: \"ROUNDABOUT\" };\n  IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: \"SHOULDER\" };\n  IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: \"SIDEWALK\" };\n  IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: \"SOFTSHOULDER\" };\n  IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: \"TOLLPLAZA\" };\n  IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: \"TRAFFICISLAND\" };\n  IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: \"TRAFFICLANE\" };\n  IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum;\n  class IfcRoadTypeEnum {\n  }\n  IfcRoadTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRoadTypeEnum = IfcRoadTypeEnum;\n  class IfcRoleEnum {\n  }\n  IfcRoleEnum.ARCHITECT = { type: 3, value: \"ARCHITECT\" };\n  IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: \"BUILDINGOPERATOR\" };\n  IfcRoleEnum.BUILDINGOWNER = { type: 3, value: \"BUILDINGOWNER\" };\n  IfcRoleEnum.CIVILENGINEER = { type: 3, value: \"CIVILENGINEER\" };\n  IfcRoleEnum.CLIENT = { type: 3, value: \"CLIENT\" };\n  IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: \"COMMISSIONINGENGINEER\" };\n  IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: \"CONSTRUCTIONMANAGER\" };\n  IfcRoleEnum.CONSULTANT = { type: 3, value: \"CONSULTANT\" };\n  IfcRoleEnum.CONTRACTOR = { type: 3, value: \"CONTRACTOR\" };\n  IfcRoleEnum.COSTENGINEER = { type: 3, value: \"COSTENGINEER\" };\n  IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: \"ELECTRICALENGINEER\" };\n  IfcRoleEnum.ENGINEER = { type: 3, value: \"ENGINEER\" };\n  IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: \"FACILITIESMANAGER\" };\n  IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: \"FIELDCONSTRUCTIONMANAGER\" };\n  IfcRoleEnum.MANUFACTURER = { type: 3, value: \"MANUFACTURER\" };\n  IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: \"MECHANICALENGINEER\" };\n  IfcRoleEnum.OWNER = { type: 3, value: \"OWNER\" };\n  IfcRoleEnum.PROJECTMANAGER = { type: 3, value: \"PROJECTMANAGER\" };\n  IfcRoleEnum.RESELLER = { type: 3, value: \"RESELLER\" };\n  IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: \"STRUCTURALENGINEER\" };\n  IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: \"SUBCONTRACTOR\" };\n  IfcRoleEnum.SUPPLIER = { type: 3, value: \"SUPPLIER\" };\n  IfcRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC4_32.IfcRoleEnum = IfcRoleEnum;\n  class IfcRoofTypeEnum {\n  }\n  IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: \"BARREL_ROOF\" };\n  IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: \"BUTTERFLY_ROOF\" };\n  IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: \"DOME_ROOF\" };\n  IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: \"FLAT_ROOF\" };\n  IfcRoofTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n  IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: \"GABLE_ROOF\" };\n  IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: \"GAMBREL_ROOF\" };\n  IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: \"HIPPED_GABLE_ROOF\" };\n  IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: \"HIP_ROOF\" };\n  IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: \"MANSARD_ROOF\" };\n  IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: \"PAVILION_ROOF\" };\n  IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: \"RAINBOW_ROOF\" };\n  IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: \"SHED_ROOF\" };\n  IfcRoofTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcRoofTypeEnum = IfcRoofTypeEnum;\n  class IfcSIPrefix {\n  }\n  IfcSIPrefix.ATTO = { type: 3, value: \"ATTO\" };\n  IfcSIPrefix.CENTI = { type: 3, value: \"CENTI\" };\n  IfcSIPrefix.DECA = { type: 3, value: \"DECA\" };\n  IfcSIPrefix.DECI = { type: 3, value: \"DECI\" };\n  IfcSIPrefix.EXA = { type: 3, value: \"EXA\" };\n  IfcSIPrefix.FEMTO = { type: 3, value: \"FEMTO\" };\n  IfcSIPrefix.GIGA = { type: 3, value: \"GIGA\" };\n  IfcSIPrefix.HECTO = { type: 3, value: \"HECTO\" };\n  IfcSIPrefix.KILO = { type: 3, value: \"KILO\" };\n  IfcSIPrefix.MEGA = { type: 3, value: \"MEGA\" };\n  IfcSIPrefix.MICRO = { type: 3, value: \"MICRO\" };\n  IfcSIPrefix.MILLI = { type: 3, value: \"MILLI\" };\n  IfcSIPrefix.NANO = { type: 3, value: \"NANO\" };\n  IfcSIPrefix.PETA = { type: 3, value: \"PETA\" };\n  IfcSIPrefix.PICO = { type: 3, value: \"PICO\" };\n  IfcSIPrefix.TERA = { type: 3, value: \"TERA\" };\n  IFC4_32.IfcSIPrefix = IfcSIPrefix;\n  class IfcSIUnitName {\n  }\n  IfcSIUnitName.AMPERE = { type: 3, value: \"AMPERE\" };\n  IfcSIUnitName.BECQUEREL = { type: 3, value: \"BECQUEREL\" };\n  IfcSIUnitName.CANDELA = { type: 3, value: \"CANDELA\" };\n  IfcSIUnitName.COULOMB = { type: 3, value: \"COULOMB\" };\n  IfcSIUnitName.CUBIC_METRE = { type: 3, value: \"CUBIC_METRE\" };\n  IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: \"DEGREE_CELSIUS\" };\n  IfcSIUnitName.FARAD = { type: 3, value: \"FARAD\" };\n  IfcSIUnitName.GRAM = { type: 3, value: \"GRAM\" };\n  IfcSIUnitName.GRAY = { type: 3, value: \"GRAY\" };\n  IfcSIUnitName.HENRY = { type: 3, value: \"HENRY\" };\n  IfcSIUnitName.HERTZ = { type: 3, value: \"HERTZ\" };\n  IfcSIUnitName.JOULE = { type: 3, value: \"JOULE\" };\n  IfcSIUnitName.KELVIN = { type: 3, value: \"KELVIN\" };\n  IfcSIUnitName.LUMEN = { type: 3, value: \"LUMEN\" };\n  IfcSIUnitName.LUX = { type: 3, value: \"LUX\" };\n  IfcSIUnitName.METRE = { type: 3, value: \"METRE\" };\n  IfcSIUnitName.MOLE = { type: 3, value: \"MOLE\" };\n  IfcSIUnitName.NEWTON = { type: 3, value: \"NEWTON\" };\n  IfcSIUnitName.OHM = { type: 3, value: \"OHM\" };\n  IfcSIUnitName.PASCAL = { type: 3, value: \"PASCAL\" };\n  IfcSIUnitName.RADIAN = { type: 3, value: \"RADIAN\" };\n  IfcSIUnitName.SECOND = { type: 3, value: \"SECOND\" };\n  IfcSIUnitName.SIEMENS = { type: 3, value: \"SIEMENS\" };\n  IfcSIUnitName.SIEVERT = { type: 3, value: \"SIEVERT\" };\n  IfcSIUnitName.SQUARE_METRE = { type: 3, value: \"SQUARE_METRE\" };\n  IfcSIUnitName.STERADIAN = { type: 3, value: \"STERADIAN\" };\n  IfcSIUnitName.TESLA = { type: 3, value: \"TESLA\" };\n  IfcSIUnitName.VOLT = { type: 3, value: \"VOLT\" };\n  IfcSIUnitName.WATT = { type: 3, value: \"WATT\" };\n  IfcSIUnitName.WEBER = { type: 3, value: \"WEBER\" };\n  IFC4_32.IfcSIUnitName = IfcSIUnitName;\n  class IfcSanitaryTerminalTypeEnum {\n  }\n  IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: \"BATH\" };\n  IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: \"BIDET\" };\n  IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: \"CISTERN\" };\n  IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: \"SANITARYFOUNTAIN\" };\n  IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: \"SHOWER\" };\n  IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: \"SINK\" };\n  IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: \"TOILETPAN\" };\n  IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: \"URINAL\" };\n  IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: \"WASHHANDBASIN\" };\n  IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: \"WCSEAT\" };\n  IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;\n  class IfcSectionTypeEnum {\n  }\n  IfcSectionTypeEnum.TAPERED = { type: 3, value: \"TAPERED\" };\n  IfcSectionTypeEnum.UNIFORM = { type: 3, value: \"UNIFORM\" };\n  IFC4_32.IfcSectionTypeEnum = IfcSectionTypeEnum;\n  class IfcSensorTypeEnum {\n  }\n  IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: \"CO2SENSOR\" };\n  IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: \"CONDUCTANCESENSOR\" };\n  IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: \"CONTACTSENSOR\" };\n  IfcSensorTypeEnum.COSENSOR = { type: 3, value: \"COSENSOR\" };\n  IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: \"EARTHQUAKESENSOR\" };\n  IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: \"FIRESENSOR\" };\n  IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: \"FLOWSENSOR\" };\n  IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: \"FOREIGNOBJECTDETECTIONSENSOR\" };\n  IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: \"FROSTSENSOR\" };\n  IfcSensorTypeEnum.GASSENSOR = { type: 3, value: \"GASSENSOR\" };\n  IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: \"HEATSENSOR\" };\n  IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: \"HUMIDITYSENSOR\" };\n  IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: \"IDENTIFIERSENSOR\" };\n  IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: \"IONCONCENTRATIONSENSOR\" };\n  IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: \"LEVELSENSOR\" };\n  IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: \"LIGHTSENSOR\" };\n  IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: \"MOISTURESENSOR\" };\n  IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: \"MOVEMENTSENSOR\" };\n  IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: \"OBSTACLESENSOR\" };\n  IfcSensorTypeEnum.PHSENSOR = { type: 3, value: \"PHSENSOR\" };\n  IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: \"PRESSURESENSOR\" };\n  IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: \"RADIATIONSENSOR\" };\n  IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: \"RADIOACTIVITYSENSOR\" };\n  IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: \"RAINSENSOR\" };\n  IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: \"SMOKESENSOR\" };\n  IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: \"SNOWDEPTHSENSOR\" };\n  IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: \"SOUNDSENSOR\" };\n  IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: \"TEMPERATURESENSOR\" };\n  IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: \"TRAINSENSOR\" };\n  IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: \"TURNOUTCLOSURESENSOR\" };\n  IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: \"WHEELSENSOR\" };\n  IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: \"WINDSENSOR\" };\n  IfcSensorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSensorTypeEnum = IfcSensorTypeEnum;\n  class IfcSequenceEnum {\n  }\n  IfcSequenceEnum.FINISH_FINISH = { type: 3, value: \"FINISH_FINISH\" };\n  IfcSequenceEnum.FINISH_START = { type: 3, value: \"FINISH_START\" };\n  IfcSequenceEnum.START_FINISH = { type: 3, value: \"START_FINISH\" };\n  IfcSequenceEnum.START_START = { type: 3, value: \"START_START\" };\n  IfcSequenceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSequenceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSequenceEnum = IfcSequenceEnum;\n  class IfcShadingDeviceTypeEnum {\n  }\n  IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: \"AWNING\" };\n  IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: \"JALOUSIE\" };\n  IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: \"SHUTTER\" };\n  IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum;\n  class IfcSignTypeEnum {\n  }\n  IfcSignTypeEnum.MARKER = { type: 3, value: \"MARKER\" };\n  IfcSignTypeEnum.MIRROR = { type: 3, value: \"MIRROR\" };\n  IfcSignTypeEnum.PICTORAL = { type: 3, value: \"PICTORAL\" };\n  IfcSignTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSignTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSignTypeEnum = IfcSignTypeEnum;\n  class IfcSignalTypeEnum {\n  }\n  IfcSignalTypeEnum.AUDIO = { type: 3, value: \"AUDIO\" };\n  IfcSignalTypeEnum.MIXED = { type: 3, value: \"MIXED\" };\n  IfcSignalTypeEnum.VISUAL = { type: 3, value: \"VISUAL\" };\n  IfcSignalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSignalTypeEnum = IfcSignalTypeEnum;\n  class IfcSimplePropertyTemplateTypeEnum {\n  }\n  IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: \"P_BOUNDEDVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: \"P_ENUMERATEDVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: \"P_LISTVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: \"P_REFERENCEVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: \"P_SINGLEVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: \"P_TABLEVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: \"Q_AREA\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: \"Q_COUNT\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: \"Q_LENGTH\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: \"Q_NUMBER\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: \"Q_TIME\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: \"Q_VOLUME\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: \"Q_WEIGHT\" };\n  IFC4_32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum;\n  class IfcSlabTypeEnum {\n  }\n  IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: \"APPROACH_SLAB\" };\n  IfcSlabTypeEnum.BASESLAB = { type: 3, value: \"BASESLAB\" };\n  IfcSlabTypeEnum.FLOOR = { type: 3, value: \"FLOOR\" };\n  IfcSlabTypeEnum.LANDING = { type: 3, value: \"LANDING\" };\n  IfcSlabTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n  IfcSlabTypeEnum.ROOF = { type: 3, value: \"ROOF\" };\n  IfcSlabTypeEnum.SIDEWALK = { type: 3, value: \"SIDEWALK\" };\n  IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: \"TRACKSLAB\" };\n  IfcSlabTypeEnum.WEARING = { type: 3, value: \"WEARING\" };\n  IfcSlabTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSlabTypeEnum = IfcSlabTypeEnum;\n  class IfcSolarDeviceTypeEnum {\n  }\n  IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: \"SOLARCOLLECTOR\" };\n  IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: \"SOLARPANEL\" };\n  IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum;\n  class IfcSpaceHeaterTypeEnum {\n  }\n  IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: \"CONVECTOR\" };\n  IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: \"RADIATOR\" };\n  IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;\n  class IfcSpaceTypeEnum {\n  }\n  IfcSpaceTypeEnum.BERTH = { type: 3, value: \"BERTH\" };\n  IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcSpaceTypeEnum.GFA = { type: 3, value: \"GFA\" };\n  IfcSpaceTypeEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n  IfcSpaceTypeEnum.PARKING = { type: 3, value: \"PARKING\" };\n  IfcSpaceTypeEnum.SPACE = { type: 3, value: \"SPACE\" };\n  IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSpaceTypeEnum = IfcSpaceTypeEnum;\n  class IfcSpatialZoneTypeEnum {\n  }\n  IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: \"CONSTRUCTION\" };\n  IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: \"FIRESAFETY\" };\n  IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: \"INTERFERENCE\" };\n  IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n  IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: \"OCCUPANCY\" };\n  IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: \"RESERVATION\" };\n  IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: \"SECURITY\" };\n  IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: \"THERMAL\" };\n  IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n  IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: \"VENTILATION\" };\n  IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum;\n  class IfcStackTerminalTypeEnum {\n  }\n  IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: \"BIRDCAGE\" };\n  IfcStackTerminalTypeEnum.COWL = { type: 3, value: \"COWL\" };\n  IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: \"RAINWATERHOPPER\" };\n  IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;\n  class IfcStairFlightTypeEnum {\n  }\n  IfcStairFlightTypeEnum.CURVED = { type: 3, value: \"CURVED\" };\n  IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n  IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n  IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n  IfcStairFlightTypeEnum.WINDER = { type: 3, value: \"WINDER\" };\n  IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;\n  class IfcStairTypeEnum {\n  }\n  IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: \"CURVED_RUN_STAIR\" };\n  IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: \"DOUBLE_RETURN_STAIR\" };\n  IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: \"HALF_TURN_STAIR\" };\n  IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: \"HALF_WINDING_STAIR\" };\n  IfcStairTypeEnum.LADDER = { type: 3, value: \"LADDER\" };\n  IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: \"QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: \"QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: \"SPIRAL_STAIR\" };\n  IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: \"STRAIGHT_RUN_STAIR\" };\n  IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: \"THREE_QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: \"THREE_QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: \"TWO_CURVED_RUN_STAIR\" };\n  IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: \"TWO_QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: \"TWO_QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: \"TWO_STRAIGHT_RUN_STAIR\" };\n  IfcStairTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStairTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcStairTypeEnum = IfcStairTypeEnum;\n  class IfcStateEnum {\n  }\n  IfcStateEnum.LOCKED = { type: 3, value: \"LOCKED\" };\n  IfcStateEnum.READONLY = { type: 3, value: \"READONLY\" };\n  IfcStateEnum.READONLYLOCKED = { type: 3, value: \"READONLYLOCKED\" };\n  IfcStateEnum.READWRITE = { type: 3, value: \"READWRITE\" };\n  IfcStateEnum.READWRITELOCKED = { type: 3, value: \"READWRITELOCKED\" };\n  IFC4_32.IfcStateEnum = IfcStateEnum;\n  class IfcStructuralCurveActivityTypeEnum {\n  }\n  IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: \"CONST\" };\n  IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n  IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: \"EQUIDISTANT\" };\n  IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: \"LINEAR\" };\n  IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: \"PARABOLA\" };\n  IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n  IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: \"SINUS\" };\n  IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum;\n  class IfcStructuralCurveMemberTypeEnum {\n  }\n  IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n  IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: \"COMPRESSION_MEMBER\" };\n  IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: \"PIN_JOINED_MEMBER\" };\n  IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: \"RIGID_JOINED_MEMBER\" };\n  IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: \"TENSION_MEMBER\" };\n  IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum;\n  class IfcStructuralSurfaceActivityTypeEnum {\n  }\n  IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: \"BILINEAR\" };\n  IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: \"CONST\" };\n  IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n  IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: \"ISOCONTOUR\" };\n  IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum;\n  class IfcStructuralSurfaceMemberTypeEnum {\n  }\n  IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: \"BENDING_ELEMENT\" };\n  IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: \"MEMBRANE_ELEMENT\" };\n  IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: \"SHELL\" };\n  IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum;\n  class IfcSubContractResourceTypeEnum {\n  }\n  IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: \"PURCHASE\" };\n  IfcSubContractResourceTypeEnum.WORK = { type: 3, value: \"WORK\" };\n  IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum;\n  class IfcSurfaceFeatureTypeEnum {\n  }\n  IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: \"DEFECT\" };\n  IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: \"HATCHMARKING\" };\n  IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: \"LINEMARKING\" };\n  IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: \"MARK\" };\n  IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: \"NONSKIDSURFACING\" };\n  IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: \"PAVEMENTSURFACEMARKING\" };\n  IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: \"RUMBLESTRIP\" };\n  IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: \"SYMBOLMARKING\" };\n  IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: \"TAG\" };\n  IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: \"TRANSVERSERUMBLESTRIP\" };\n  IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: \"TREATMENT\" };\n  IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum;\n  class IfcSurfaceSide {\n  }\n  IfcSurfaceSide.BOTH = { type: 3, value: \"BOTH\" };\n  IfcSurfaceSide.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n  IfcSurfaceSide.POSITIVE = { type: 3, value: \"POSITIVE\" };\n  IFC4_32.IfcSurfaceSide = IfcSurfaceSide;\n  class IfcSwitchingDeviceTypeEnum {\n  }\n  IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: \"CONTACTOR\" };\n  IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: \"DIMMERSWITCH\" };\n  IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: \"EMERGENCYSTOP\" };\n  IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: \"KEYPAD\" };\n  IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: \"MOMENTARYSWITCH\" };\n  IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: \"RELAY\" };\n  IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: \"SELECTORSWITCH\" };\n  IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: \"STARTER\" };\n  IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: \"START_AND_STOP_EQUIPMENT\" };\n  IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: \"SWITCHDISCONNECTOR\" };\n  IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: \"TOGGLESWITCH\" };\n  IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;\n  class IfcSystemFurnitureElementTypeEnum {\n  }\n  IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: \"PANEL\" };\n  IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: \"SUBRACK\" };\n  IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: \"WORKSURFACE\" };\n  IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum;\n  class IfcTankTypeEnum {\n  }\n  IfcTankTypeEnum.BASIN = { type: 3, value: \"BASIN\" };\n  IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: \"BREAKPRESSURE\" };\n  IfcTankTypeEnum.EXPANSION = { type: 3, value: \"EXPANSION\" };\n  IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: \"FEEDANDEXPANSION\" };\n  IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: \"OILRETENTIONTRAY\" };\n  IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: \"PRESSUREVESSEL\" };\n  IfcTankTypeEnum.STORAGE = { type: 3, value: \"STORAGE\" };\n  IfcTankTypeEnum.VESSEL = { type: 3, value: \"VESSEL\" };\n  IfcTankTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTankTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTankTypeEnum = IfcTankTypeEnum;\n  class IfcTaskDurationEnum {\n  }\n  IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: \"ELAPSEDTIME\" };\n  IfcTaskDurationEnum.WORKTIME = { type: 3, value: \"WORKTIME\" };\n  IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTaskDurationEnum = IfcTaskDurationEnum;\n  class IfcTaskTypeEnum {\n  }\n  IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: \"ADJUSTMENT\" };\n  IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: \"ATTENDANCE\" };\n  IfcTaskTypeEnum.CALIBRATION = { type: 3, value: \"CALIBRATION\" };\n  IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: \"CONSTRUCTION\" };\n  IfcTaskTypeEnum.DEMOLITION = { type: 3, value: \"DEMOLITION\" };\n  IfcTaskTypeEnum.DISMANTLE = { type: 3, value: \"DISMANTLE\" };\n  IfcTaskTypeEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n  IfcTaskTypeEnum.EMERGENCY = { type: 3, value: \"EMERGENCY\" };\n  IfcTaskTypeEnum.INSPECTION = { type: 3, value: \"INSPECTION\" };\n  IfcTaskTypeEnum.INSTALLATION = { type: 3, value: \"INSTALLATION\" };\n  IfcTaskTypeEnum.LOGISTIC = { type: 3, value: \"LOGISTIC\" };\n  IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: \"MAINTENANCE\" };\n  IfcTaskTypeEnum.MOVE = { type: 3, value: \"MOVE\" };\n  IfcTaskTypeEnum.OPERATION = { type: 3, value: \"OPERATION\" };\n  IfcTaskTypeEnum.REMOVAL = { type: 3, value: \"REMOVAL\" };\n  IfcTaskTypeEnum.RENOVATION = { type: 3, value: \"RENOVATION\" };\n  IfcTaskTypeEnum.SAFETY = { type: 3, value: \"SAFETY\" };\n  IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: \"SHUTDOWN\" };\n  IfcTaskTypeEnum.STARTUP = { type: 3, value: \"STARTUP\" };\n  IfcTaskTypeEnum.TESTING = { type: 3, value: \"TESTING\" };\n  IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: \"TROUBLESHOOTING\" };\n  IfcTaskTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTaskTypeEnum = IfcTaskTypeEnum;\n  class IfcTendonAnchorTypeEnum {\n  }\n  IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: \"COUPLER\" };\n  IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: \"FIXED_END\" };\n  IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: \"TENSIONING_END\" };\n  IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum;\n  class IfcTendonConduitTypeEnum {\n  }\n  IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: \"COUPLER\" };\n  IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: \"DIABOLO\" };\n  IfcTendonConduitTypeEnum.DUCT = { type: 3, value: \"DUCT\" };\n  IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: \"GROUTING_DUCT\" };\n  IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: \"TRUMPET\" };\n  IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum;\n  class IfcTendonTypeEnum {\n  }\n  IfcTendonTypeEnum.BAR = { type: 3, value: \"BAR\" };\n  IfcTendonTypeEnum.COATED = { type: 3, value: \"COATED\" };\n  IfcTendonTypeEnum.STRAND = { type: 3, value: \"STRAND\" };\n  IfcTendonTypeEnum.WIRE = { type: 3, value: \"WIRE\" };\n  IfcTendonTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTendonTypeEnum = IfcTendonTypeEnum;\n  class IfcTextPath {\n  }\n  IfcTextPath.DOWN = { type: 3, value: \"DOWN\" };\n  IfcTextPath.LEFT = { type: 3, value: \"LEFT\" };\n  IfcTextPath.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcTextPath.UP = { type: 3, value: \"UP\" };\n  IFC4_32.IfcTextPath = IfcTextPath;\n  class IfcTimeSeriesDataTypeEnum {\n  }\n  IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n  IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n  IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: \"DISCRETEBINARY\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: \"PIECEWISEBINARY\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: \"PIECEWISECONSTANT\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: \"PIECEWISECONTINUOUS\" };\n  IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;\n  class IfcTrackElementTypeEnum {\n  }\n  IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: \"BLOCKINGDEVICE\" };\n  IfcTrackElementTypeEnum.DERAILER = { type: 3, value: \"DERAILER\" };\n  IfcTrackElementTypeEnum.FROG = { type: 3, value: \"FROG\" };\n  IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: \"HALF_SET_OF_BLADES\" };\n  IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: \"SLEEPER\" };\n  IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: \"SPEEDREGULATOR\" };\n  IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: \"TRACKENDOFALIGNMENT\" };\n  IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: \"VEHICLESTOP\" };\n  IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum;\n  class IfcTransformerTypeEnum {\n  }\n  IfcTransformerTypeEnum.CHOPPER = { type: 3, value: \"CHOPPER\" };\n  IfcTransformerTypeEnum.COMBINED = { type: 3, value: \"COMBINED\" };\n  IfcTransformerTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n  IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: \"FREQUENCY\" };\n  IfcTransformerTypeEnum.INVERTER = { type: 3, value: \"INVERTER\" };\n  IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: \"RECTIFIER\" };\n  IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: \"VOLTAGE\" };\n  IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTransformerTypeEnum = IfcTransformerTypeEnum;\n  class IfcTransitionCode {\n  }\n  IfcTransitionCode.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n  IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: \"CONTSAMEGRADIENT\" };\n  IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: \"CONTSAMEGRADIENTSAMECURVATURE\" };\n  IfcTransitionCode.DISCONTINUOUS = { type: 3, value: \"DISCONTINUOUS\" };\n  IFC4_32.IfcTransitionCode = IfcTransitionCode;\n  class IfcTransportElementTypeEnum {\n  }\n  IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: \"CRANEWAY\" };\n  IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: \"ELEVATOR\" };\n  IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: \"ESCALATOR\" };\n  IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: \"HAULINGGEAR\" };\n  IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: \"LIFTINGGEAR\" };\n  IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: \"MOVINGWALKWAY\" };\n  IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;\n  class IfcTrimmingPreference {\n  }\n  IfcTrimmingPreference.CARTESIAN = { type: 3, value: \"CARTESIAN\" };\n  IfcTrimmingPreference.PARAMETER = { type: 3, value: \"PARAMETER\" };\n  IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC4_32.IfcTrimmingPreference = IfcTrimmingPreference;\n  class IfcTubeBundleTypeEnum {\n  }\n  IfcTubeBundleTypeEnum.FINNED = { type: 3, value: \"FINNED\" };\n  IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;\n  class IfcUnitEnum {\n  }\n  IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: \"ABSORBEDDOSEUNIT\" };\n  IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: \"AMOUNTOFSUBSTANCEUNIT\" };\n  IfcUnitEnum.AREAUNIT = { type: 3, value: \"AREAUNIT\" };\n  IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: \"DOSEEQUIVALENTUNIT\" };\n  IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: \"ELECTRICCAPACITANCEUNIT\" };\n  IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: \"ELECTRICCHARGEUNIT\" };\n  IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: \"ELECTRICCONDUCTANCEUNIT\" };\n  IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: \"ELECTRICCURRENTUNIT\" };\n  IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: \"ELECTRICRESISTANCEUNIT\" };\n  IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: \"ELECTRICVOLTAGEUNIT\" };\n  IfcUnitEnum.ENERGYUNIT = { type: 3, value: \"ENERGYUNIT\" };\n  IfcUnitEnum.FORCEUNIT = { type: 3, value: \"FORCEUNIT\" };\n  IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: \"FREQUENCYUNIT\" };\n  IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: \"ILLUMINANCEUNIT\" };\n  IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: \"INDUCTANCEUNIT\" };\n  IfcUnitEnum.LENGTHUNIT = { type: 3, value: \"LENGTHUNIT\" };\n  IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: \"LUMINOUSFLUXUNIT\" };\n  IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: \"LUMINOUSINTENSITYUNIT\" };\n  IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: \"MAGNETICFLUXDENSITYUNIT\" };\n  IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: \"MAGNETICFLUXUNIT\" };\n  IfcUnitEnum.MASSUNIT = { type: 3, value: \"MASSUNIT\" };\n  IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: \"PLANEANGLEUNIT\" };\n  IfcUnitEnum.POWERUNIT = { type: 3, value: \"POWERUNIT\" };\n  IfcUnitEnum.PRESSUREUNIT = { type: 3, value: \"PRESSUREUNIT\" };\n  IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: \"RADIOACTIVITYUNIT\" };\n  IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: \"SOLIDANGLEUNIT\" };\n  IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: \"THERMODYNAMICTEMPERATUREUNIT\" };\n  IfcUnitEnum.TIMEUNIT = { type: 3, value: \"TIMEUNIT\" };\n  IfcUnitEnum.VOLUMEUNIT = { type: 3, value: \"VOLUMEUNIT\" };\n  IfcUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC4_32.IfcUnitEnum = IfcUnitEnum;\n  class IfcUnitaryControlElementTypeEnum {\n  }\n  IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: \"ALARMPANEL\" };\n  IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: \"BASESTATIONCONTROLLER\" };\n  IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: \"COMBINED\" };\n  IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: \"CONTROLPANEL\" };\n  IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: \"GASDETECTIONPANEL\" };\n  IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: \"HUMIDISTAT\" };\n  IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: \"INDICATORPANEL\" };\n  IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: \"MIMICPANEL\" };\n  IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: \"THERMOSTAT\" };\n  IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: \"WEATHERSTATION\" };\n  IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum;\n  class IfcUnitaryEquipmentTypeEnum {\n  }\n  IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: \"AIRCONDITIONINGUNIT\" };\n  IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: \"AIRHANDLER\" };\n  IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: \"DEHUMIDIFIER\" };\n  IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: \"ROOFTOPUNIT\" };\n  IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: \"SPLITSYSTEM\" };\n  IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;\n  class IfcValveTypeEnum {\n  }\n  IfcValveTypeEnum.AIRRELEASE = { type: 3, value: \"AIRRELEASE\" };\n  IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: \"ANTIVACUUM\" };\n  IfcValveTypeEnum.CHANGEOVER = { type: 3, value: \"CHANGEOVER\" };\n  IfcValveTypeEnum.CHECK = { type: 3, value: \"CHECK\" };\n  IfcValveTypeEnum.COMMISSIONING = { type: 3, value: \"COMMISSIONING\" };\n  IfcValveTypeEnum.DIVERTING = { type: 3, value: \"DIVERTING\" };\n  IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: \"DOUBLECHECK\" };\n  IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: \"DOUBLEREGULATING\" };\n  IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: \"DRAWOFFCOCK\" };\n  IfcValveTypeEnum.FAUCET = { type: 3, value: \"FAUCET\" };\n  IfcValveTypeEnum.FLUSHING = { type: 3, value: \"FLUSHING\" };\n  IfcValveTypeEnum.GASCOCK = { type: 3, value: \"GASCOCK\" };\n  IfcValveTypeEnum.GASTAP = { type: 3, value: \"GASTAP\" };\n  IfcValveTypeEnum.ISOLATING = { type: 3, value: \"ISOLATING\" };\n  IfcValveTypeEnum.MIXING = { type: 3, value: \"MIXING\" };\n  IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: \"PRESSUREREDUCING\" };\n  IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: \"PRESSURERELIEF\" };\n  IfcValveTypeEnum.REGULATING = { type: 3, value: \"REGULATING\" };\n  IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: \"SAFETYCUTOFF\" };\n  IfcValveTypeEnum.STEAMTRAP = { type: 3, value: \"STEAMTRAP\" };\n  IfcValveTypeEnum.STOPCOCK = { type: 3, value: \"STOPCOCK\" };\n  IfcValveTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcValveTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcValveTypeEnum = IfcValveTypeEnum;\n  class IfcVehicleTypeEnum {\n  }\n  IfcVehicleTypeEnum.CARGO = { type: 3, value: \"CARGO\" };\n  IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: \"ROLLINGSTOCK\" };\n  IfcVehicleTypeEnum.VEHICLE = { type: 3, value: \"VEHICLE\" };\n  IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: \"VEHICLEAIR\" };\n  IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: \"VEHICLEMARINE\" };\n  IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: \"VEHICLETRACKED\" };\n  IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: \"VEHICLEWHEELED\" };\n  IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcVehicleTypeEnum = IfcVehicleTypeEnum;\n  class IfcVibrationDamperTypeEnum {\n  }\n  IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: \"AXIAL_YIELD\" };\n  IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: \"BENDING_YIELD\" };\n  IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: \"FRICTION\" };\n  IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: \"RUBBER\" };\n  IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: \"SHEAR_YIELD\" };\n  IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: \"VISCOUS\" };\n  IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum;\n  class IfcVibrationIsolatorTypeEnum {\n  }\n  IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: \"BASE\" };\n  IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: \"COMPRESSION\" };\n  IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: \"SPRING\" };\n  IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;\n  class IfcVirtualElementTypeEnum {\n  }\n  IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: \"BOUNDARY\" };\n  IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: \"CLEARANCE\" };\n  IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: \"PROVISIONFORVOID\" };\n  IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum;\n  class IfcVoidingFeatureTypeEnum {\n  }\n  IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: \"CHAMFER\" };\n  IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: \"CUTOUT\" };\n  IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: \"EDGE\" };\n  IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: \"HOLE\" };\n  IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: \"MITER\" };\n  IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: \"NOTCH\" };\n  IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum;\n  class IfcWallTypeEnum {\n  }\n  IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: \"ELEMENTEDWALL\" };\n  IfcWallTypeEnum.MOVABLE = { type: 3, value: \"MOVABLE\" };\n  IfcWallTypeEnum.PARAPET = { type: 3, value: \"PARAPET\" };\n  IfcWallTypeEnum.PARTITIONING = { type: 3, value: \"PARTITIONING\" };\n  IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: \"PLUMBINGWALL\" };\n  IfcWallTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n  IfcWallTypeEnum.RETAININGWALL = { type: 3, value: \"RETAININGWALL\" };\n  IfcWallTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n  IfcWallTypeEnum.SOLIDWALL = { type: 3, value: \"SOLIDWALL\" };\n  IfcWallTypeEnum.STANDARD = { type: 3, value: \"STANDARD\" };\n  IfcWallTypeEnum.WAVEWALL = { type: 3, value: \"WAVEWALL\" };\n  IfcWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWallTypeEnum = IfcWallTypeEnum;\n  class IfcWasteTerminalTypeEnum {\n  }\n  IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: \"FLOORTRAP\" };\n  IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: \"FLOORWASTE\" };\n  IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: \"GULLYSUMP\" };\n  IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: \"GULLYTRAP\" };\n  IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: \"ROOFDRAIN\" };\n  IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: \"WASTEDISPOSALUNIT\" };\n  IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: \"WASTETRAP\" };\n  IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;\n  class IfcWindowPanelOperationEnum {\n  }\n  IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: \"BOTTOMHUNG\" };\n  IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: \"FIXEDCASEMENT\" };\n  IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: \"OTHEROPERATION\" };\n  IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: \"PIVOTHORIZONTAL\" };\n  IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: \"PIVOTVERTICAL\" };\n  IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: \"REMOVABLECASEMENT\" };\n  IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: \"SIDEHUNGLEFTHAND\" };\n  IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: \"SIDEHUNGRIGHTHAND\" };\n  IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: \"SLIDINGHORIZONTAL\" };\n  IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: \"SLIDINGVERTICAL\" };\n  IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: \"TILTANDTURNLEFTHAND\" };\n  IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: \"TILTANDTURNRIGHTHAND\" };\n  IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: \"TOPHUNG\" };\n  IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;\n  class IfcWindowPanelPositionEnum {\n  }\n  IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: \"BOTTOM\" };\n  IfcWindowPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n  IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n  IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcWindowPanelPositionEnum.TOP = { type: 3, value: \"TOP\" };\n  IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;\n  class IfcWindowStyleConstructionEnum {\n  }\n  IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n  IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n  IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n  IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: \"OTHER_CONSTRUCTION\" };\n  IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n  IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n  IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;\n  class IfcWindowStyleOperationEnum {\n  }\n  IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n  IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n  IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n  IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;\n  class IfcWindowTypeEnum {\n  }\n  IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: \"LIGHTDOME\" };\n  IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: \"SKYLIGHT\" };\n  IfcWindowTypeEnum.WINDOW = { type: 3, value: \"WINDOW\" };\n  IfcWindowTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWindowTypeEnum = IfcWindowTypeEnum;\n  class IfcWindowTypePartitioningEnum {\n  }\n  IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n  IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n  IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n  IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum;\n  class IfcWorkCalendarTypeEnum {\n  }\n  IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: \"FIRSTSHIFT\" };\n  IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: \"SECONDSHIFT\" };\n  IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: \"THIRDSHIFT\" };\n  IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum;\n  class IfcWorkPlanTypeEnum {\n  }\n  IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n  IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n  IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n  IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum;\n  class IfcWorkScheduleTypeEnum {\n  }\n  IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n  IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n  IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n  IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC4_32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum;\n  class IfcActorRole extends IfcLineObject {\n    constructor(expressID, Role, UserDefinedRole, Description) {\n      super(expressID);\n      this.Role = Role;\n      this.UserDefinedRole = UserDefinedRole;\n      this.Description = Description;\n      this.type = 3630933823;\n    }\n  }\n  IFC4_32.IfcActorRole = IfcActorRole;\n  class IfcAddress extends IfcLineObject {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose) {\n      super(expressID);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.type = 618182010;\n    }\n  }\n  IFC4_32.IfcAddress = IfcAddress;\n  class IfcAlignmentParameterSegment extends IfcLineObject {\n    constructor(expressID, StartTag, EndTag) {\n      super(expressID);\n      this.StartTag = StartTag;\n      this.EndTag = EndTag;\n      this.type = 2879124712;\n    }\n  }\n  IFC4_32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment;\n  class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment {\n    constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) {\n      super(expressID, StartTag, EndTag);\n      this.StartTag = StartTag;\n      this.EndTag = EndTag;\n      this.StartDistAlong = StartDistAlong;\n      this.HorizontalLength = HorizontalLength;\n      this.StartHeight = StartHeight;\n      this.StartGradient = StartGradient;\n      this.EndGradient = EndGradient;\n      this.RadiusOfCurvature = RadiusOfCurvature;\n      this.PredefinedType = PredefinedType;\n      this.type = 3633395639;\n    }\n  }\n  IFC4_32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment;\n  class IfcApplication extends IfcLineObject {\n    constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {\n      super(expressID);\n      this.ApplicationDeveloper = ApplicationDeveloper;\n      this.Version = Version;\n      this.ApplicationFullName = ApplicationFullName;\n      this.ApplicationIdentifier = ApplicationIdentifier;\n      this.type = 639542469;\n    }\n  }\n  IFC4_32.IfcApplication = IfcApplication;\n  class IfcAppliedValue extends IfcLineObject {\n    constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.AppliedValue = AppliedValue;\n      this.UnitBasis = UnitBasis;\n      this.ApplicableDate = ApplicableDate;\n      this.FixedUntilDate = FixedUntilDate;\n      this.Category = Category;\n      this.Condition = Condition;\n      this.ArithmeticOperator = ArithmeticOperator;\n      this.Components = Components;\n      this.type = 411424972;\n    }\n  }\n  IFC4_32.IfcAppliedValue = IfcAppliedValue;\n  class IfcApproval extends IfcLineObject {\n    constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) {\n      super(expressID);\n      this.Identifier = Identifier;\n      this.Name = Name;\n      this.Description = Description;\n      this.TimeOfApproval = TimeOfApproval;\n      this.Status = Status;\n      this.Level = Level;\n      this.Qualifier = Qualifier;\n      this.RequestingApproval = RequestingApproval;\n      this.GivingApproval = GivingApproval;\n      this.type = 130549933;\n    }\n  }\n  IFC4_32.IfcApproval = IfcApproval;\n  class IfcBoundaryCondition extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 4037036970;\n    }\n  }\n  IFC4_32.IfcBoundaryCondition = IfcBoundaryCondition;\n  class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX;\n      this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY;\n      this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ;\n      this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;\n      this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;\n      this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;\n      this.type = 1560379544;\n    }\n  }\n  IFC4_32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;\n  class IfcBoundaryFaceCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX;\n      this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY;\n      this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ;\n      this.type = 3367102660;\n    }\n  }\n  IFC4_32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;\n  class IfcBoundaryNodeCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TranslationalStiffnessX = TranslationalStiffnessX;\n      this.TranslationalStiffnessY = TranslationalStiffnessY;\n      this.TranslationalStiffnessZ = TranslationalStiffnessZ;\n      this.RotationalStiffnessX = RotationalStiffnessX;\n      this.RotationalStiffnessY = RotationalStiffnessY;\n      this.RotationalStiffnessZ = RotationalStiffnessZ;\n      this.type = 1387855156;\n    }\n  }\n  IFC4_32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;\n  class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {\n    constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {\n      super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);\n      this.Name = Name;\n      this.TranslationalStiffnessX = TranslationalStiffnessX;\n      this.TranslationalStiffnessY = TranslationalStiffnessY;\n      this.TranslationalStiffnessZ = TranslationalStiffnessZ;\n      this.RotationalStiffnessX = RotationalStiffnessX;\n      this.RotationalStiffnessY = RotationalStiffnessY;\n      this.RotationalStiffnessZ = RotationalStiffnessZ;\n      this.WarpingStiffness = WarpingStiffness;\n      this.type = 2069777674;\n    }\n  }\n  IFC4_32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;\n  class IfcConnectionGeometry extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2859738748;\n    }\n  }\n  IFC4_32.IfcConnectionGeometry = IfcConnectionGeometry;\n  class IfcConnectionPointGeometry extends IfcConnectionGeometry {\n    constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) {\n      super(expressID);\n      this.PointOnRelatingElement = PointOnRelatingElement;\n      this.PointOnRelatedElement = PointOnRelatedElement;\n      this.type = 2614616156;\n    }\n  }\n  IFC4_32.IfcConnectionPointGeometry = IfcConnectionPointGeometry;\n  class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {\n    constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) {\n      super(expressID);\n      this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;\n      this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;\n      this.type = 2732653382;\n    }\n  }\n  IFC4_32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;\n  class IfcConnectionVolumeGeometry extends IfcConnectionGeometry {\n    constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) {\n      super(expressID);\n      this.VolumeOnRelatingElement = VolumeOnRelatingElement;\n      this.VolumeOnRelatedElement = VolumeOnRelatedElement;\n      this.type = 775493141;\n    }\n  }\n  IFC4_32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry;\n  class IfcConstraint extends IfcLineObject {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.type = 1959218052;\n    }\n  }\n  IFC4_32.IfcConstraint = IfcConstraint;\n  class IfcCoordinateOperation extends IfcLineObject {\n    constructor(expressID, SourceCRS, TargetCRS) {\n      super(expressID);\n      this.SourceCRS = SourceCRS;\n      this.TargetCRS = TargetCRS;\n      this.type = 1785450214;\n    }\n  }\n  IFC4_32.IfcCoordinateOperation = IfcCoordinateOperation;\n  class IfcCoordinateReferenceSystem extends IfcLineObject {\n    constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.GeodeticDatum = GeodeticDatum;\n      this.VerticalDatum = VerticalDatum;\n      this.type = 1466758467;\n    }\n  }\n  IFC4_32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem;\n  class IfcCostValue extends IfcAppliedValue {\n    constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {\n      super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components);\n      this.Name = Name;\n      this.Description = Description;\n      this.AppliedValue = AppliedValue;\n      this.UnitBasis = UnitBasis;\n      this.ApplicableDate = ApplicableDate;\n      this.FixedUntilDate = FixedUntilDate;\n      this.Category = Category;\n      this.Condition = Condition;\n      this.ArithmeticOperator = ArithmeticOperator;\n      this.Components = Components;\n      this.type = 602808272;\n    }\n  }\n  IFC4_32.IfcCostValue = IfcCostValue;\n  class IfcDerivedUnit extends IfcLineObject {\n    constructor(expressID, Elements, UnitType, UserDefinedType, Name) {\n      super(expressID);\n      this.Elements = Elements;\n      this.UnitType = UnitType;\n      this.UserDefinedType = UserDefinedType;\n      this.Name = Name;\n      this.type = 1765591967;\n    }\n  }\n  IFC4_32.IfcDerivedUnit = IfcDerivedUnit;\n  class IfcDerivedUnitElement extends IfcLineObject {\n    constructor(expressID, Unit, Exponent) {\n      super(expressID);\n      this.Unit = Unit;\n      this.Exponent = Exponent;\n      this.type = 1045800335;\n    }\n  }\n  IFC4_32.IfcDerivedUnitElement = IfcDerivedUnitElement;\n  class IfcDimensionalExponents extends IfcLineObject {\n    constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {\n      super(expressID);\n      this.LengthExponent = LengthExponent;\n      this.MassExponent = MassExponent;\n      this.TimeExponent = TimeExponent;\n      this.ElectricCurrentExponent = ElectricCurrentExponent;\n      this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;\n      this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;\n      this.LuminousIntensityExponent = LuminousIntensityExponent;\n      this.type = 2949456006;\n    }\n  }\n  IFC4_32.IfcDimensionalExponents = IfcDimensionalExponents;\n  class IfcExternalInformation extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 4294318154;\n    }\n  }\n  IFC4_32.IfcExternalInformation = IfcExternalInformation;\n  class IfcExternalReference extends IfcLineObject {\n    constructor(expressID, Location, Identification, Name) {\n      super(expressID);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.type = 3200245327;\n    }\n  }\n  IFC4_32.IfcExternalReference = IfcExternalReference;\n  class IfcExternallyDefinedHatchStyle extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.type = 2242383968;\n    }\n  }\n  IFC4_32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;\n  class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.type = 1040185647;\n    }\n  }\n  IFC4_32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;\n  class IfcExternallyDefinedTextFont extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.type = 3548104201;\n    }\n  }\n  IFC4_32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;\n  class IfcGridAxis extends IfcLineObject {\n    constructor(expressID, AxisTag, AxisCurve, SameSense) {\n      super(expressID);\n      this.AxisTag = AxisTag;\n      this.AxisCurve = AxisCurve;\n      this.SameSense = SameSense;\n      this.type = 852622518;\n    }\n  }\n  IFC4_32.IfcGridAxis = IfcGridAxis;\n  class IfcIrregularTimeSeriesValue extends IfcLineObject {\n    constructor(expressID, TimeStamp, ListValues) {\n      super(expressID);\n      this.TimeStamp = TimeStamp;\n      this.ListValues = ListValues;\n      this.type = 3020489413;\n    }\n  }\n  IFC4_32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;\n  class IfcLibraryInformation extends IfcExternalInformation {\n    constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Version = Version;\n      this.Publisher = Publisher;\n      this.VersionDate = VersionDate;\n      this.Location = Location;\n      this.Description = Description;\n      this.type = 2655187982;\n    }\n  }\n  IFC4_32.IfcLibraryInformation = IfcLibraryInformation;\n  class IfcLibraryReference extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.Description = Description;\n      this.Language = Language;\n      this.ReferencedLibrary = ReferencedLibrary;\n      this.type = 3452421091;\n    }\n  }\n  IFC4_32.IfcLibraryReference = IfcLibraryReference;\n  class IfcLightDistributionData extends IfcLineObject {\n    constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {\n      super(expressID);\n      this.MainPlaneAngle = MainPlaneAngle;\n      this.SecondaryPlaneAngle = SecondaryPlaneAngle;\n      this.LuminousIntensity = LuminousIntensity;\n      this.type = 4162380809;\n    }\n  }\n  IFC4_32.IfcLightDistributionData = IfcLightDistributionData;\n  class IfcLightIntensityDistribution extends IfcLineObject {\n    constructor(expressID, LightDistributionCurve, DistributionData) {\n      super(expressID);\n      this.LightDistributionCurve = LightDistributionCurve;\n      this.DistributionData = DistributionData;\n      this.type = 1566485204;\n    }\n  }\n  IFC4_32.IfcLightIntensityDistribution = IfcLightIntensityDistribution;\n  class IfcMapConversion extends IfcCoordinateOperation {\n    constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) {\n      super(expressID, SourceCRS, TargetCRS);\n      this.SourceCRS = SourceCRS;\n      this.TargetCRS = TargetCRS;\n      this.Eastings = Eastings;\n      this.Northings = Northings;\n      this.OrthogonalHeight = OrthogonalHeight;\n      this.XAxisAbscissa = XAxisAbscissa;\n      this.XAxisOrdinate = XAxisOrdinate;\n      this.Scale = Scale;\n      this.ScaleY = ScaleY;\n      this.ScaleZ = ScaleZ;\n      this.type = 3057273783;\n    }\n  }\n  IFC4_32.IfcMapConversion = IfcMapConversion;\n  class IfcMaterialClassificationRelationship extends IfcLineObject {\n    constructor(expressID, MaterialClassifications, ClassifiedMaterial) {\n      super(expressID);\n      this.MaterialClassifications = MaterialClassifications;\n      this.ClassifiedMaterial = ClassifiedMaterial;\n      this.type = 1847130766;\n    }\n  }\n  IFC4_32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;\n  class IfcMaterialDefinition extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 760658860;\n    }\n  }\n  IFC4_32.IfcMaterialDefinition = IfcMaterialDefinition;\n  class IfcMaterialLayer extends IfcMaterialDefinition {\n    constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) {\n      super(expressID);\n      this.Material = Material;\n      this.LayerThickness = LayerThickness;\n      this.IsVentilated = IsVentilated;\n      this.Name = Name;\n      this.Description = Description;\n      this.Category = Category;\n      this.Priority = Priority;\n      this.type = 248100487;\n    }\n  }\n  IFC4_32.IfcMaterialLayer = IfcMaterialLayer;\n  class IfcMaterialLayerSet extends IfcMaterialDefinition {\n    constructor(expressID, MaterialLayers, LayerSetName, Description) {\n      super(expressID);\n      this.MaterialLayers = MaterialLayers;\n      this.LayerSetName = LayerSetName;\n      this.Description = Description;\n      this.type = 3303938423;\n    }\n  }\n  IFC4_32.IfcMaterialLayerSet = IfcMaterialLayerSet;\n  class IfcMaterialLayerWithOffsets extends IfcMaterialLayer {\n    constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) {\n      super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority);\n      this.Material = Material;\n      this.LayerThickness = LayerThickness;\n      this.IsVentilated = IsVentilated;\n      this.Name = Name;\n      this.Description = Description;\n      this.Category = Category;\n      this.Priority = Priority;\n      this.OffsetDirection = OffsetDirection;\n      this.OffsetValues = OffsetValues;\n      this.type = 1847252529;\n    }\n  }\n  IFC4_32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets;\n  class IfcMaterialList extends IfcLineObject {\n    constructor(expressID, Materials) {\n      super(expressID);\n      this.Materials = Materials;\n      this.type = 2199411900;\n    }\n  }\n  IFC4_32.IfcMaterialList = IfcMaterialList;\n  class IfcMaterialProfile extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, Material, Profile, Priority, Category) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Material = Material;\n      this.Profile = Profile;\n      this.Priority = Priority;\n      this.Category = Category;\n      this.type = 2235152071;\n    }\n  }\n  IFC4_32.IfcMaterialProfile = IfcMaterialProfile;\n  class IfcMaterialProfileSet extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.MaterialProfiles = MaterialProfiles;\n      this.CompositeProfile = CompositeProfile;\n      this.type = 164193824;\n    }\n  }\n  IFC4_32.IfcMaterialProfileSet = IfcMaterialProfileSet;\n  class IfcMaterialProfileWithOffsets extends IfcMaterialProfile {\n    constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) {\n      super(expressID, Name, Description, Material, Profile, Priority, Category);\n      this.Name = Name;\n      this.Description = Description;\n      this.Material = Material;\n      this.Profile = Profile;\n      this.Priority = Priority;\n      this.Category = Category;\n      this.OffsetValues = OffsetValues;\n      this.type = 552965576;\n    }\n  }\n  IFC4_32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets;\n  class IfcMaterialUsageDefinition extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1507914824;\n    }\n  }\n  IFC4_32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition;\n  class IfcMeasureWithUnit extends IfcLineObject {\n    constructor(expressID, ValueComponent, UnitComponent) {\n      super(expressID);\n      this.ValueComponent = ValueComponent;\n      this.UnitComponent = UnitComponent;\n      this.type = 2597039031;\n    }\n  }\n  IFC4_32.IfcMeasureWithUnit = IfcMeasureWithUnit;\n  class IfcMetric extends IfcConstraint {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) {\n      super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.Benchmark = Benchmark;\n      this.ValueSource = ValueSource;\n      this.DataValue = DataValue;\n      this.ReferencePath = ReferencePath;\n      this.type = 3368373690;\n    }\n  }\n  IFC4_32.IfcMetric = IfcMetric;\n  class IfcMonetaryUnit extends IfcLineObject {\n    constructor(expressID, Currency) {\n      super(expressID);\n      this.Currency = Currency;\n      this.type = 2706619895;\n    }\n  }\n  IFC4_32.IfcMonetaryUnit = IfcMonetaryUnit;\n  class IfcNamedUnit extends IfcLineObject {\n    constructor(expressID, Dimensions, UnitType) {\n      super(expressID);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.type = 1918398963;\n    }\n  }\n  IFC4_32.IfcNamedUnit = IfcNamedUnit;\n  class IfcObjectPlacement extends IfcLineObject {\n    constructor(expressID, PlacementRelTo) {\n      super(expressID);\n      this.PlacementRelTo = PlacementRelTo;\n      this.type = 3701648758;\n    }\n  }\n  IFC4_32.IfcObjectPlacement = IfcObjectPlacement;\n  class IfcObjective extends IfcConstraint {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) {\n      super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.BenchmarkValues = BenchmarkValues;\n      this.LogicalAggregator = LogicalAggregator;\n      this.ObjectiveQualifier = ObjectiveQualifier;\n      this.UserDefinedQualifier = UserDefinedQualifier;\n      this.type = 2251480897;\n    }\n  }\n  IFC4_32.IfcObjective = IfcObjective;\n  class IfcOrganization extends IfcLineObject {\n    constructor(expressID, Identification, Name, Description, Roles, Addresses) {\n      super(expressID);\n      this.Identification = Identification;\n      this.Name = Name;\n      this.Description = Description;\n      this.Roles = Roles;\n      this.Addresses = Addresses;\n      this.type = 4251960020;\n    }\n  }\n  IFC4_32.IfcOrganization = IfcOrganization;\n  class IfcOwnerHistory extends IfcLineObject {\n    constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {\n      super(expressID);\n      this.OwningUser = OwningUser;\n      this.OwningApplication = OwningApplication;\n      this.State = State;\n      this.ChangeAction = ChangeAction;\n      this.LastModifiedDate = LastModifiedDate;\n      this.LastModifyingUser = LastModifyingUser;\n      this.LastModifyingApplication = LastModifyingApplication;\n      this.CreationDate = CreationDate;\n      this.type = 1207048766;\n    }\n  }\n  IFC4_32.IfcOwnerHistory = IfcOwnerHistory;\n  class IfcPerson extends IfcLineObject {\n    constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {\n      super(expressID);\n      this.Identification = Identification;\n      this.FamilyName = FamilyName;\n      this.GivenName = GivenName;\n      this.MiddleNames = MiddleNames;\n      this.PrefixTitles = PrefixTitles;\n      this.SuffixTitles = SuffixTitles;\n      this.Roles = Roles;\n      this.Addresses = Addresses;\n      this.type = 2077209135;\n    }\n  }\n  IFC4_32.IfcPerson = IfcPerson;\n  class IfcPersonAndOrganization extends IfcLineObject {\n    constructor(expressID, ThePerson, TheOrganization, Roles) {\n      super(expressID);\n      this.ThePerson = ThePerson;\n      this.TheOrganization = TheOrganization;\n      this.Roles = Roles;\n      this.type = 101040310;\n    }\n  }\n  IFC4_32.IfcPersonAndOrganization = IfcPersonAndOrganization;\n  class IfcPhysicalQuantity extends IfcLineObject {\n    constructor(expressID, Name, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2483315170;\n    }\n  }\n  IFC4_32.IfcPhysicalQuantity = IfcPhysicalQuantity;\n  class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {\n    constructor(expressID, Name, Description, Unit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.type = 2226359599;\n    }\n  }\n  IFC4_32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;\n  class IfcPostalAddress extends IfcAddress {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {\n      super(expressID, Purpose, Description, UserDefinedPurpose);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.InternalLocation = InternalLocation;\n      this.AddressLines = AddressLines;\n      this.PostalBox = PostalBox;\n      this.Town = Town;\n      this.Region = Region;\n      this.PostalCode = PostalCode;\n      this.Country = Country;\n      this.type = 3355820592;\n    }\n  }\n  IFC4_32.IfcPostalAddress = IfcPostalAddress;\n  class IfcPresentationItem extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 677532197;\n    }\n  }\n  IFC4_32.IfcPresentationItem = IfcPresentationItem;\n  class IfcPresentationLayerAssignment extends IfcLineObject {\n    constructor(expressID, Name, Description, AssignedItems, Identifier) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.AssignedItems = AssignedItems;\n      this.Identifier = Identifier;\n      this.type = 2022622350;\n    }\n  }\n  IFC4_32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;\n  class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {\n    constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {\n      super(expressID, Name, Description, AssignedItems, Identifier);\n      this.Name = Name;\n      this.Description = Description;\n      this.AssignedItems = AssignedItems;\n      this.Identifier = Identifier;\n      this.LayerOn = LayerOn;\n      this.LayerFrozen = LayerFrozen;\n      this.LayerBlocked = LayerBlocked;\n      this.LayerStyles = LayerStyles;\n      this.type = 1304840413;\n    }\n  }\n  IFC4_32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;\n  class IfcPresentationStyle extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3119450353;\n    }\n  }\n  IFC4_32.IfcPresentationStyle = IfcPresentationStyle;\n  class IfcProductRepresentation extends IfcLineObject {\n    constructor(expressID, Name, Description, Representations) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.type = 2095639259;\n    }\n  }\n  IFC4_32.IfcProductRepresentation = IfcProductRepresentation;\n  class IfcProfileDef extends IfcLineObject {\n    constructor(expressID, ProfileType, ProfileName) {\n      super(expressID);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.type = 3958567839;\n    }\n  }\n  IFC4_32.IfcProfileDef = IfcProfileDef;\n  class IfcProjectedCRS extends IfcCoordinateReferenceSystem {\n    constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) {\n      super(expressID, Name, Description, GeodeticDatum, VerticalDatum);\n      this.Name = Name;\n      this.Description = Description;\n      this.GeodeticDatum = GeodeticDatum;\n      this.VerticalDatum = VerticalDatum;\n      this.MapProjection = MapProjection;\n      this.MapZone = MapZone;\n      this.MapUnit = MapUnit;\n      this.type = 3843373140;\n    }\n  }\n  IFC4_32.IfcProjectedCRS = IfcProjectedCRS;\n  class IfcPropertyAbstraction extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 986844984;\n    }\n  }\n  IFC4_32.IfcPropertyAbstraction = IfcPropertyAbstraction;\n  class IfcPropertyEnumeration extends IfcPropertyAbstraction {\n    constructor(expressID, Name, EnumerationValues, Unit) {\n      super(expressID);\n      this.Name = Name;\n      this.EnumerationValues = EnumerationValues;\n      this.Unit = Unit;\n      this.type = 3710013099;\n    }\n  }\n  IFC4_32.IfcPropertyEnumeration = IfcPropertyEnumeration;\n  class IfcQuantityArea extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, AreaValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.AreaValue = AreaValue;\n      this.Formula = Formula;\n      this.type = 2044713172;\n    }\n  }\n  IFC4_32.IfcQuantityArea = IfcQuantityArea;\n  class IfcQuantityCount extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, CountValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.CountValue = CountValue;\n      this.Formula = Formula;\n      this.type = 2093928680;\n    }\n  }\n  IFC4_32.IfcQuantityCount = IfcQuantityCount;\n  class IfcQuantityLength extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, LengthValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.LengthValue = LengthValue;\n      this.Formula = Formula;\n      this.type = 931644368;\n    }\n  }\n  IFC4_32.IfcQuantityLength = IfcQuantityLength;\n  class IfcQuantityNumber extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, NumberValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.NumberValue = NumberValue;\n      this.Formula = Formula;\n      this.type = 2691318326;\n    }\n  }\n  IFC4_32.IfcQuantityNumber = IfcQuantityNumber;\n  class IfcQuantityTime extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, TimeValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.TimeValue = TimeValue;\n      this.Formula = Formula;\n      this.type = 3252649465;\n    }\n  }\n  IFC4_32.IfcQuantityTime = IfcQuantityTime;\n  class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, VolumeValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.VolumeValue = VolumeValue;\n      this.Formula = Formula;\n      this.type = 2405470396;\n    }\n  }\n  IFC4_32.IfcQuantityVolume = IfcQuantityVolume;\n  class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, WeightValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.WeightValue = WeightValue;\n      this.Formula = Formula;\n      this.type = 825690147;\n    }\n  }\n  IFC4_32.IfcQuantityWeight = IfcQuantityWeight;\n  class IfcRecurrencePattern extends IfcLineObject {\n    constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) {\n      super(expressID);\n      this.RecurrenceType = RecurrenceType;\n      this.DayComponent = DayComponent;\n      this.WeekdayComponent = WeekdayComponent;\n      this.MonthComponent = MonthComponent;\n      this.Position = Position;\n      this.Interval = Interval;\n      this.Occurrences = Occurrences;\n      this.TimePeriods = TimePeriods;\n      this.type = 3915482550;\n    }\n  }\n  IFC4_32.IfcRecurrencePattern = IfcRecurrencePattern;\n  class IfcReference extends IfcLineObject {\n    constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) {\n      super(expressID);\n      this.TypeIdentifier = TypeIdentifier;\n      this.AttributeIdentifier = AttributeIdentifier;\n      this.InstanceName = InstanceName;\n      this.ListPositions = ListPositions;\n      this.InnerReference = InnerReference;\n      this.type = 2433181523;\n    }\n  }\n  IFC4_32.IfcReference = IfcReference;\n  class IfcRepresentation extends IfcLineObject {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 1076942058;\n    }\n  }\n  IFC4_32.IfcRepresentation = IfcRepresentation;\n  class IfcRepresentationContext extends IfcLineObject {\n    constructor(expressID, ContextIdentifier, ContextType) {\n      super(expressID);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.type = 3377609919;\n    }\n  }\n  IFC4_32.IfcRepresentationContext = IfcRepresentationContext;\n  class IfcRepresentationItem extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 3008791417;\n    }\n  }\n  IFC4_32.IfcRepresentationItem = IfcRepresentationItem;\n  class IfcRepresentationMap extends IfcLineObject {\n    constructor(expressID, MappingOrigin, MappedRepresentation) {\n      super(expressID);\n      this.MappingOrigin = MappingOrigin;\n      this.MappedRepresentation = MappedRepresentation;\n      this.type = 1660063152;\n    }\n  }\n  IFC4_32.IfcRepresentationMap = IfcRepresentationMap;\n  class IfcResourceLevelRelationship extends IfcLineObject {\n    constructor(expressID, Name, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2439245199;\n    }\n  }\n  IFC4_32.IfcResourceLevelRelationship = IfcResourceLevelRelationship;\n  class IfcRoot extends IfcLineObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2341007311;\n    }\n  }\n  IFC4_32.IfcRoot = IfcRoot;\n  class IfcSIUnit extends IfcNamedUnit {\n    constructor(expressID, Dimensions, UnitType, Prefix, Name) {\n      super(expressID, Dimensions, UnitType);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Prefix = Prefix;\n      this.Name = Name;\n      this.type = 448429030;\n    }\n  }\n  IFC4_32.IfcSIUnit = IfcSIUnit;\n  class IfcSchedulingTime extends IfcLineObject {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) {\n      super(expressID);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.type = 1054537805;\n    }\n  }\n  IFC4_32.IfcSchedulingTime = IfcSchedulingTime;\n  class IfcShapeAspect extends IfcLineObject {\n    constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {\n      super(expressID);\n      this.ShapeRepresentations = ShapeRepresentations;\n      this.Name = Name;\n      this.Description = Description;\n      this.ProductDefinitional = ProductDefinitional;\n      this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;\n      this.type = 867548509;\n    }\n  }\n  IFC4_32.IfcShapeAspect = IfcShapeAspect;\n  class IfcShapeModel extends IfcRepresentation {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 3982875396;\n    }\n  }\n  IFC4_32.IfcShapeModel = IfcShapeModel;\n  class IfcShapeRepresentation extends IfcShapeModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 4240577450;\n    }\n  }\n  IFC4_32.IfcShapeRepresentation = IfcShapeRepresentation;\n  class IfcStructuralConnectionCondition extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 2273995522;\n    }\n  }\n  IFC4_32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;\n  class IfcStructuralLoad extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 2162789131;\n    }\n  }\n  IFC4_32.IfcStructuralLoad = IfcStructuralLoad;\n  class IfcStructuralLoadConfiguration extends IfcStructuralLoad {\n    constructor(expressID, Name, Values, Locations) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.Values = Values;\n      this.Locations = Locations;\n      this.type = 3478079324;\n    }\n  }\n  IFC4_32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration;\n  class IfcStructuralLoadOrResult extends IfcStructuralLoad {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 609421318;\n    }\n  }\n  IFC4_32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult;\n  class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 2525727697;\n    }\n  }\n  IFC4_32.IfcStructuralLoadStatic = IfcStructuralLoadStatic;\n  class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.DeltaTConstant = DeltaTConstant;\n      this.DeltaTY = DeltaTY;\n      this.DeltaTZ = DeltaTZ;\n      this.type = 3408363356;\n    }\n  }\n  IFC4_32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;\n  class IfcStyleModel extends IfcRepresentation {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 2830218821;\n    }\n  }\n  IFC4_32.IfcStyleModel = IfcStyleModel;\n  class IfcStyledItem extends IfcRepresentationItem {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 3958052878;\n    }\n  }\n  IFC4_32.IfcStyledItem = IfcStyledItem;\n  class IfcStyledRepresentation extends IfcStyleModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 3049322572;\n    }\n  }\n  IFC4_32.IfcStyledRepresentation = IfcStyledRepresentation;\n  class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult {\n    constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.SurfaceReinforcement1 = SurfaceReinforcement1;\n      this.SurfaceReinforcement2 = SurfaceReinforcement2;\n      this.ShearReinforcement = ShearReinforcement;\n      this.type = 2934153892;\n    }\n  }\n  IFC4_32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea;\n  class IfcSurfaceStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, Side, Styles) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.Side = Side;\n      this.Styles = Styles;\n      this.type = 1300840506;\n    }\n  }\n  IFC4_32.IfcSurfaceStyle = IfcSurfaceStyle;\n  class IfcSurfaceStyleLighting extends IfcPresentationItem {\n    constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {\n      super(expressID);\n      this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n      this.DiffuseReflectionColour = DiffuseReflectionColour;\n      this.TransmissionColour = TransmissionColour;\n      this.ReflectanceColour = ReflectanceColour;\n      this.type = 3303107099;\n    }\n  }\n  IFC4_32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;\n  class IfcSurfaceStyleRefraction extends IfcPresentationItem {\n    constructor(expressID, RefractionIndex, DispersionFactor) {\n      super(expressID);\n      this.RefractionIndex = RefractionIndex;\n      this.DispersionFactor = DispersionFactor;\n      this.type = 1607154358;\n    }\n  }\n  IFC4_32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;\n  class IfcSurfaceStyleShading extends IfcPresentationItem {\n    constructor(expressID, SurfaceColour, Transparency) {\n      super(expressID);\n      this.SurfaceColour = SurfaceColour;\n      this.Transparency = Transparency;\n      this.type = 846575682;\n    }\n  }\n  IFC4_32.IfcSurfaceStyleShading = IfcSurfaceStyleShading;\n  class IfcSurfaceStyleWithTextures extends IfcPresentationItem {\n    constructor(expressID, Textures) {\n      super(expressID);\n      this.Textures = Textures;\n      this.type = 1351298697;\n    }\n  }\n  IFC4_32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;\n  class IfcSurfaceTexture extends IfcPresentationItem {\n    constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) {\n      super(expressID);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.Mode = Mode;\n      this.TextureTransform = TextureTransform;\n      this.Parameter = Parameter;\n      this.type = 626085974;\n    }\n  }\n  IFC4_32.IfcSurfaceTexture = IfcSurfaceTexture;\n  class IfcTable extends IfcLineObject {\n    constructor(expressID, Name, Rows, Columns) {\n      super(expressID);\n      this.Name = Name;\n      this.Rows = Rows;\n      this.Columns = Columns;\n      this.type = 985171141;\n    }\n  }\n  IFC4_32.IfcTable = IfcTable;\n  class IfcTableColumn extends IfcLineObject {\n    constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) {\n      super(expressID);\n      this.Identifier = Identifier;\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.ReferencePath = ReferencePath;\n      this.type = 2043862942;\n    }\n  }\n  IFC4_32.IfcTableColumn = IfcTableColumn;\n  class IfcTableRow extends IfcLineObject {\n    constructor(expressID, RowCells, IsHeading) {\n      super(expressID);\n      this.RowCells = RowCells;\n      this.IsHeading = IsHeading;\n      this.type = 531007025;\n    }\n  }\n  IFC4_32.IfcTableRow = IfcTableRow;\n  class IfcTaskTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.DurationType = DurationType;\n      this.ScheduleDuration = ScheduleDuration;\n      this.ScheduleStart = ScheduleStart;\n      this.ScheduleFinish = ScheduleFinish;\n      this.EarlyStart = EarlyStart;\n      this.EarlyFinish = EarlyFinish;\n      this.LateStart = LateStart;\n      this.LateFinish = LateFinish;\n      this.FreeFloat = FreeFloat;\n      this.TotalFloat = TotalFloat;\n      this.IsCritical = IsCritical;\n      this.StatusTime = StatusTime;\n      this.ActualDuration = ActualDuration;\n      this.ActualStart = ActualStart;\n      this.ActualFinish = ActualFinish;\n      this.RemainingTime = RemainingTime;\n      this.Completion = Completion;\n      this.type = 1549132990;\n    }\n  }\n  IFC4_32.IfcTaskTime = IfcTaskTime;\n  class IfcTaskTimeRecurring extends IfcTaskTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.DurationType = DurationType;\n      this.ScheduleDuration = ScheduleDuration;\n      this.ScheduleStart = ScheduleStart;\n      this.ScheduleFinish = ScheduleFinish;\n      this.EarlyStart = EarlyStart;\n      this.EarlyFinish = EarlyFinish;\n      this.LateStart = LateStart;\n      this.LateFinish = LateFinish;\n      this.FreeFloat = FreeFloat;\n      this.TotalFloat = TotalFloat;\n      this.IsCritical = IsCritical;\n      this.StatusTime = StatusTime;\n      this.ActualDuration = ActualDuration;\n      this.ActualStart = ActualStart;\n      this.ActualFinish = ActualFinish;\n      this.RemainingTime = RemainingTime;\n      this.Completion = Completion;\n      this.Recurrence = Recurrence;\n      this.type = 2771591690;\n    }\n  }\n  IFC4_32.IfcTaskTimeRecurring = IfcTaskTimeRecurring;\n  class IfcTelecomAddress extends IfcAddress {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) {\n      super(expressID, Purpose, Description, UserDefinedPurpose);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.TelephoneNumbers = TelephoneNumbers;\n      this.FacsimileNumbers = FacsimileNumbers;\n      this.PagerNumber = PagerNumber;\n      this.ElectronicMailAddresses = ElectronicMailAddresses;\n      this.WWWHomePageURL = WWWHomePageURL;\n      this.MessagingIDs = MessagingIDs;\n      this.type = 912023232;\n    }\n  }\n  IFC4_32.IfcTelecomAddress = IfcTelecomAddress;\n  class IfcTextStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TextCharacterAppearance = TextCharacterAppearance;\n      this.TextStyle = TextStyle;\n      this.TextFontStyle = TextFontStyle;\n      this.ModelOrDraughting = ModelOrDraughting;\n      this.type = 1447204868;\n    }\n  }\n  IFC4_32.IfcTextStyle = IfcTextStyle;\n  class IfcTextStyleForDefinedFont extends IfcPresentationItem {\n    constructor(expressID, Colour, BackgroundColour) {\n      super(expressID);\n      this.Colour = Colour;\n      this.BackgroundColour = BackgroundColour;\n      this.type = 2636378356;\n    }\n  }\n  IFC4_32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;\n  class IfcTextStyleTextModel extends IfcPresentationItem {\n    constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {\n      super(expressID);\n      this.TextIndent = TextIndent;\n      this.TextAlign = TextAlign;\n      this.TextDecoration = TextDecoration;\n      this.LetterSpacing = LetterSpacing;\n      this.WordSpacing = WordSpacing;\n      this.TextTransform = TextTransform;\n      this.LineHeight = LineHeight;\n      this.type = 1640371178;\n    }\n  }\n  IFC4_32.IfcTextStyleTextModel = IfcTextStyleTextModel;\n  class IfcTextureCoordinate extends IfcPresentationItem {\n    constructor(expressID, Maps) {\n      super(expressID);\n      this.Maps = Maps;\n      this.type = 280115917;\n    }\n  }\n  IFC4_32.IfcTextureCoordinate = IfcTextureCoordinate;\n  class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {\n    constructor(expressID, Maps, Mode, Parameter) {\n      super(expressID, Maps);\n      this.Maps = Maps;\n      this.Mode = Mode;\n      this.Parameter = Parameter;\n      this.type = 1742049831;\n    }\n  }\n  IFC4_32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;\n  class IfcTextureCoordinateIndices extends IfcLineObject {\n    constructor(expressID, TexCoordIndex, TexCoordsOf) {\n      super(expressID);\n      this.TexCoordIndex = TexCoordIndex;\n      this.TexCoordsOf = TexCoordsOf;\n      this.type = 222769930;\n    }\n  }\n  IFC4_32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices;\n  class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices {\n    constructor(expressID, TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) {\n      super(expressID, TexCoordIndex, TexCoordsOf);\n      this.TexCoordIndex = TexCoordIndex;\n      this.TexCoordsOf = TexCoordsOf;\n      this.InnerTexCoordIndices = InnerTexCoordIndices;\n      this.type = 1010789467;\n    }\n  }\n  IFC4_32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids;\n  class IfcTextureMap extends IfcTextureCoordinate {\n    constructor(expressID, Maps, Vertices, MappedTo) {\n      super(expressID, Maps);\n      this.Maps = Maps;\n      this.Vertices = Vertices;\n      this.MappedTo = MappedTo;\n      this.type = 2552916305;\n    }\n  }\n  IFC4_32.IfcTextureMap = IfcTextureMap;\n  class IfcTextureVertex extends IfcPresentationItem {\n    constructor(expressID, Coordinates) {\n      super(expressID);\n      this.Coordinates = Coordinates;\n      this.type = 1210645708;\n    }\n  }\n  IFC4_32.IfcTextureVertex = IfcTextureVertex;\n  class IfcTextureVertexList extends IfcPresentationItem {\n    constructor(expressID, TexCoordsList) {\n      super(expressID);\n      this.TexCoordsList = TexCoordsList;\n      this.type = 3611470254;\n    }\n  }\n  IFC4_32.IfcTextureVertexList = IfcTextureVertexList;\n  class IfcTimePeriod extends IfcLineObject {\n    constructor(expressID, StartTime, EndTime) {\n      super(expressID);\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.type = 1199560280;\n    }\n  }\n  IFC4_32.IfcTimePeriod = IfcTimePeriod;\n  class IfcTimeSeries extends IfcLineObject {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.type = 3101149627;\n    }\n  }\n  IFC4_32.IfcTimeSeries = IfcTimeSeries;\n  class IfcTimeSeriesValue extends IfcLineObject {\n    constructor(expressID, ListValues) {\n      super(expressID);\n      this.ListValues = ListValues;\n      this.type = 581633288;\n    }\n  }\n  IFC4_32.IfcTimeSeriesValue = IfcTimeSeriesValue;\n  class IfcTopologicalRepresentationItem extends IfcRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1377556343;\n    }\n  }\n  IFC4_32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;\n  class IfcTopologyRepresentation extends IfcShapeModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 1735638870;\n    }\n  }\n  IFC4_32.IfcTopologyRepresentation = IfcTopologyRepresentation;\n  class IfcUnitAssignment extends IfcLineObject {\n    constructor(expressID, Units) {\n      super(expressID);\n      this.Units = Units;\n      this.type = 180925521;\n    }\n  }\n  IFC4_32.IfcUnitAssignment = IfcUnitAssignment;\n  class IfcVertex extends IfcTopologicalRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2799835756;\n    }\n  }\n  IFC4_32.IfcVertex = IfcVertex;\n  class IfcVertexPoint extends IfcVertex {\n    constructor(expressID, VertexGeometry) {\n      super(expressID);\n      this.VertexGeometry = VertexGeometry;\n      this.type = 1907098498;\n    }\n  }\n  IFC4_32.IfcVertexPoint = IfcVertexPoint;\n  class IfcVirtualGridIntersection extends IfcLineObject {\n    constructor(expressID, IntersectingAxes, OffsetDistances) {\n      super(expressID);\n      this.IntersectingAxes = IntersectingAxes;\n      this.OffsetDistances = OffsetDistances;\n      this.type = 891718957;\n    }\n  }\n  IFC4_32.IfcVirtualGridIntersection = IfcVirtualGridIntersection;\n  class IfcWorkTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.RecurrencePattern = RecurrencePattern;\n      this.StartDate = StartDate;\n      this.FinishDate = FinishDate;\n      this.type = 1236880293;\n    }\n  }\n  IFC4_32.IfcWorkTime = IfcWorkTime;\n  class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment {\n    constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) {\n      super(expressID, StartTag, EndTag);\n      this.StartTag = StartTag;\n      this.EndTag = EndTag;\n      this.StartDistAlong = StartDistAlong;\n      this.HorizontalLength = HorizontalLength;\n      this.StartCantLeft = StartCantLeft;\n      this.EndCantLeft = EndCantLeft;\n      this.StartCantRight = StartCantRight;\n      this.EndCantRight = EndCantRight;\n      this.PredefinedType = PredefinedType;\n      this.type = 3752311538;\n    }\n  }\n  IFC4_32.IfcAlignmentCantSegment = IfcAlignmentCantSegment;\n  class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment {\n    constructor(expressID, StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) {\n      super(expressID, StartTag, EndTag);\n      this.StartTag = StartTag;\n      this.EndTag = EndTag;\n      this.StartPoint = StartPoint;\n      this.StartDirection = StartDirection;\n      this.StartRadiusOfCurvature = StartRadiusOfCurvature;\n      this.EndRadiusOfCurvature = EndRadiusOfCurvature;\n      this.SegmentLength = SegmentLength;\n      this.GravityCenterLineHeight = GravityCenterLineHeight;\n      this.PredefinedType = PredefinedType;\n      this.type = 536804194;\n    }\n  }\n  IFC4_32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment;\n  class IfcApprovalRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingApproval = RelatingApproval;\n      this.RelatedApprovals = RelatedApprovals;\n      this.type = 3869604511;\n    }\n  }\n  IFC4_32.IfcApprovalRelationship = IfcApprovalRelationship;\n  class IfcArbitraryClosedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, OuterCurve) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.OuterCurve = OuterCurve;\n      this.type = 3798115385;\n    }\n  }\n  IFC4_32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;\n  class IfcArbitraryOpenProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Curve) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Curve = Curve;\n      this.type = 1310608509;\n    }\n  }\n  IFC4_32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;\n  class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) {\n      super(expressID, ProfileType, ProfileName, OuterCurve);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.OuterCurve = OuterCurve;\n      this.InnerCurves = InnerCurves;\n      this.type = 2705031697;\n    }\n  }\n  IFC4_32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;\n  class IfcBlobTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) {\n      super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.Mode = Mode;\n      this.TextureTransform = TextureTransform;\n      this.Parameter = Parameter;\n      this.RasterFormat = RasterFormat;\n      this.RasterCode = RasterCode;\n      this.type = 616511568;\n    }\n  }\n  IFC4_32.IfcBlobTexture = IfcBlobTexture;\n  class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Curve, Thickness) {\n      super(expressID, ProfileType, ProfileName, Curve);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Curve = Curve;\n      this.Thickness = Thickness;\n      this.type = 3150382593;\n    }\n  }\n  IFC4_32.IfcCenterLineProfileDef = IfcCenterLineProfileDef;\n  class IfcClassification extends IfcExternalInformation {\n    constructor(expressID, Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) {\n      super(expressID);\n      this.Source = Source;\n      this.Edition = Edition;\n      this.EditionDate = EditionDate;\n      this.Name = Name;\n      this.Description = Description;\n      this.Specification = Specification;\n      this.ReferenceTokens = ReferenceTokens;\n      this.type = 747523909;\n    }\n  }\n  IFC4_32.IfcClassification = IfcClassification;\n  class IfcClassificationReference extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.ReferencedSource = ReferencedSource;\n      this.Description = Description;\n      this.Sort = Sort;\n      this.type = 647927063;\n    }\n  }\n  IFC4_32.IfcClassificationReference = IfcClassificationReference;\n  class IfcColourRgbList extends IfcPresentationItem {\n    constructor(expressID, ColourList) {\n      super(expressID);\n      this.ColourList = ColourList;\n      this.type = 3285139300;\n    }\n  }\n  IFC4_32.IfcColourRgbList = IfcColourRgbList;\n  class IfcColourSpecification extends IfcPresentationItem {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3264961684;\n    }\n  }\n  IFC4_32.IfcColourSpecification = IfcColourSpecification;\n  class IfcCompositeProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Profiles, Label) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Profiles = Profiles;\n      this.Label = Label;\n      this.type = 1485152156;\n    }\n  }\n  IFC4_32.IfcCompositeProfileDef = IfcCompositeProfileDef;\n  class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {\n    constructor(expressID, CfsFaces) {\n      super(expressID);\n      this.CfsFaces = CfsFaces;\n      this.type = 370225590;\n    }\n  }\n  IFC4_32.IfcConnectedFaceSet = IfcConnectedFaceSet;\n  class IfcConnectionCurveGeometry extends IfcConnectionGeometry {\n    constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) {\n      super(expressID);\n      this.CurveOnRelatingElement = CurveOnRelatingElement;\n      this.CurveOnRelatedElement = CurveOnRelatedElement;\n      this.type = 1981873012;\n    }\n  }\n  IFC4_32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;\n  class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {\n    constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {\n      super(expressID, PointOnRelatingElement, PointOnRelatedElement);\n      this.PointOnRelatingElement = PointOnRelatingElement;\n      this.PointOnRelatedElement = PointOnRelatedElement;\n      this.EccentricityInX = EccentricityInX;\n      this.EccentricityInY = EccentricityInY;\n      this.EccentricityInZ = EccentricityInZ;\n      this.type = 45288368;\n    }\n  }\n  IFC4_32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;\n  class IfcContextDependentUnit extends IfcNamedUnit {\n    constructor(expressID, Dimensions, UnitType, Name) {\n      super(expressID, Dimensions, UnitType);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Name = Name;\n      this.type = 3050246964;\n    }\n  }\n  IFC4_32.IfcContextDependentUnit = IfcContextDependentUnit;\n  class IfcConversionBasedUnit extends IfcNamedUnit {\n    constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) {\n      super(expressID, Dimensions, UnitType);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Name = Name;\n      this.ConversionFactor = ConversionFactor;\n      this.type = 2889183280;\n    }\n  }\n  IFC4_32.IfcConversionBasedUnit = IfcConversionBasedUnit;\n  class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit {\n    constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) {\n      super(expressID, Dimensions, UnitType, Name, ConversionFactor);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Name = Name;\n      this.ConversionFactor = ConversionFactor;\n      this.ConversionOffset = ConversionOffset;\n      this.type = 2713554722;\n    }\n  }\n  IFC4_32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset;\n  class IfcCurrencyRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingMonetaryUnit = RelatingMonetaryUnit;\n      this.RelatedMonetaryUnit = RelatedMonetaryUnit;\n      this.ExchangeRate = ExchangeRate;\n      this.RateDateTime = RateDateTime;\n      this.RateSource = RateSource;\n      this.type = 539742890;\n    }\n  }\n  IFC4_32.IfcCurrencyRelationship = IfcCurrencyRelationship;\n  class IfcCurveStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.CurveFont = CurveFont;\n      this.CurveWidth = CurveWidth;\n      this.CurveColour = CurveColour;\n      this.ModelOrDraughting = ModelOrDraughting;\n      this.type = 3800577675;\n    }\n  }\n  IFC4_32.IfcCurveStyle = IfcCurveStyle;\n  class IfcCurveStyleFont extends IfcPresentationItem {\n    constructor(expressID, Name, PatternList) {\n      super(expressID);\n      this.Name = Name;\n      this.PatternList = PatternList;\n      this.type = 1105321065;\n    }\n  }\n  IFC4_32.IfcCurveStyleFont = IfcCurveStyleFont;\n  class IfcCurveStyleFontAndScaling extends IfcPresentationItem {\n    constructor(expressID, Name, CurveStyleFont, CurveFontScaling) {\n      super(expressID);\n      this.Name = Name;\n      this.CurveStyleFont = CurveStyleFont;\n      this.CurveFontScaling = CurveFontScaling;\n      this.type = 2367409068;\n    }\n  }\n  IFC4_32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;\n  class IfcCurveStyleFontPattern extends IfcPresentationItem {\n    constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) {\n      super(expressID);\n      this.VisibleSegmentLength = VisibleSegmentLength;\n      this.InvisibleSegmentLength = InvisibleSegmentLength;\n      this.type = 3510044353;\n    }\n  }\n  IFC4_32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;\n  class IfcDerivedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.ParentProfile = ParentProfile;\n      this.Operator = Operator;\n      this.Label = Label;\n      this.type = 3632507154;\n    }\n  }\n  IFC4_32.IfcDerivedProfileDef = IfcDerivedProfileDef;\n  class IfcDocumentInformation extends IfcExternalInformation {\n    constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {\n      super(expressID);\n      this.Identification = Identification;\n      this.Name = Name;\n      this.Description = Description;\n      this.Location = Location;\n      this.Purpose = Purpose;\n      this.IntendedUse = IntendedUse;\n      this.Scope = Scope;\n      this.Revision = Revision;\n      this.DocumentOwner = DocumentOwner;\n      this.Editors = Editors;\n      this.CreationTime = CreationTime;\n      this.LastRevisionTime = LastRevisionTime;\n      this.ElectronicFormat = ElectronicFormat;\n      this.ValidFrom = ValidFrom;\n      this.ValidUntil = ValidUntil;\n      this.Confidentiality = Confidentiality;\n      this.Status = Status;\n      this.type = 1154170062;\n    }\n  }\n  IFC4_32.IfcDocumentInformation = IfcDocumentInformation;\n  class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingDocument = RelatingDocument;\n      this.RelatedDocuments = RelatedDocuments;\n      this.RelationshipType = RelationshipType;\n      this.type = 770865208;\n    }\n  }\n  IFC4_32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;\n  class IfcDocumentReference extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.Description = Description;\n      this.ReferencedDocument = ReferencedDocument;\n      this.type = 3732053477;\n    }\n  }\n  IFC4_32.IfcDocumentReference = IfcDocumentReference;\n  class IfcEdge extends IfcTopologicalRepresentationItem {\n    constructor(expressID, EdgeStart, EdgeEnd) {\n      super(expressID);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.type = 3900360178;\n    }\n  }\n  IFC4_32.IfcEdge = IfcEdge;\n  class IfcEdgeCurve extends IfcEdge {\n    constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {\n      super(expressID, EdgeStart, EdgeEnd);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.EdgeGeometry = EdgeGeometry;\n      this.SameSense = SameSense;\n      this.type = 476780140;\n    }\n  }\n  IFC4_32.IfcEdgeCurve = IfcEdgeCurve;\n  class IfcEventTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.ActualDate = ActualDate;\n      this.EarlyDate = EarlyDate;\n      this.LateDate = LateDate;\n      this.ScheduleDate = ScheduleDate;\n      this.type = 211053100;\n    }\n  }\n  IFC4_32.IfcEventTime = IfcEventTime;\n  class IfcExtendedProperties extends IfcPropertyAbstraction {\n    constructor(expressID, Name, Description, Properties2) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Properties = Properties2;\n      this.type = 297599258;\n    }\n  }\n  IFC4_32.IfcExtendedProperties = IfcExtendedProperties;\n  class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingReference = RelatingReference;\n      this.RelatedResourceObjects = RelatedResourceObjects;\n      this.type = 1437805879;\n    }\n  }\n  IFC4_32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship;\n  class IfcFace extends IfcTopologicalRepresentationItem {\n    constructor(expressID, Bounds) {\n      super(expressID);\n      this.Bounds = Bounds;\n      this.type = 2556980723;\n    }\n  }\n  IFC4_32.IfcFace = IfcFace;\n  class IfcFaceBound extends IfcTopologicalRepresentationItem {\n    constructor(expressID, Bound, Orientation) {\n      super(expressID);\n      this.Bound = Bound;\n      this.Orientation = Orientation;\n      this.type = 1809719519;\n    }\n  }\n  IFC4_32.IfcFaceBound = IfcFaceBound;\n  class IfcFaceOuterBound extends IfcFaceBound {\n    constructor(expressID, Bound, Orientation) {\n      super(expressID, Bound, Orientation);\n      this.Bound = Bound;\n      this.Orientation = Orientation;\n      this.type = 803316827;\n    }\n  }\n  IFC4_32.IfcFaceOuterBound = IfcFaceOuterBound;\n  class IfcFaceSurface extends IfcFace {\n    constructor(expressID, Bounds, FaceSurface, SameSense) {\n      super(expressID, Bounds);\n      this.Bounds = Bounds;\n      this.FaceSurface = FaceSurface;\n      this.SameSense = SameSense;\n      this.type = 3008276851;\n    }\n  }\n  IFC4_32.IfcFaceSurface = IfcFaceSurface;\n  class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {\n    constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TensionFailureX = TensionFailureX;\n      this.TensionFailureY = TensionFailureY;\n      this.TensionFailureZ = TensionFailureZ;\n      this.CompressionFailureX = CompressionFailureX;\n      this.CompressionFailureY = CompressionFailureY;\n      this.CompressionFailureZ = CompressionFailureZ;\n      this.type = 4219587988;\n    }\n  }\n  IFC4_32.IfcFailureConnectionCondition = IfcFailureConnectionCondition;\n  class IfcFillAreaStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, FillStyles, ModelOrDraughting) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.FillStyles = FillStyles;\n      this.ModelOrDraughting = ModelOrDraughting;\n      this.type = 738692330;\n    }\n  }\n  IFC4_32.IfcFillAreaStyle = IfcFillAreaStyle;\n  class IfcGeometricRepresentationContext extends IfcRepresentationContext {\n    constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {\n      super(expressID, ContextIdentifier, ContextType);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.CoordinateSpaceDimension = CoordinateSpaceDimension;\n      this.Precision = Precision;\n      this.WorldCoordinateSystem = WorldCoordinateSystem;\n      this.TrueNorth = TrueNorth;\n      this.type = 3448662350;\n    }\n  }\n  IFC4_32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;\n  class IfcGeometricRepresentationItem extends IfcRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2453401579;\n    }\n  }\n  IFC4_32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;\n  class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {\n    constructor(expressID, ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {\n      super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.WorldCoordinateSystem = WorldCoordinateSystem;\n      this.ParentContext = ParentContext;\n      this.TargetScale = TargetScale;\n      this.TargetView = TargetView;\n      this.UserDefinedTargetView = UserDefinedTargetView;\n      this.type = 4142052618;\n    }\n  }\n  IFC4_32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;\n  class IfcGeometricSet extends IfcGeometricRepresentationItem {\n    constructor(expressID, Elements) {\n      super(expressID);\n      this.Elements = Elements;\n      this.type = 3590301190;\n    }\n  }\n  IFC4_32.IfcGeometricSet = IfcGeometricSet;\n  class IfcGridPlacement extends IfcObjectPlacement {\n    constructor(expressID, PlacementRelTo, PlacementLocation, PlacementRefDirection) {\n      super(expressID, PlacementRelTo);\n      this.PlacementRelTo = PlacementRelTo;\n      this.PlacementLocation = PlacementLocation;\n      this.PlacementRefDirection = PlacementRefDirection;\n      this.type = 178086475;\n    }\n  }\n  IFC4_32.IfcGridPlacement = IfcGridPlacement;\n  class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {\n    constructor(expressID, BaseSurface, AgreementFlag) {\n      super(expressID);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.type = 812098782;\n    }\n  }\n  IFC4_32.IfcHalfSpaceSolid = IfcHalfSpaceSolid;\n  class IfcImageTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) {\n      super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.Mode = Mode;\n      this.TextureTransform = TextureTransform;\n      this.Parameter = Parameter;\n      this.URLReference = URLReference;\n      this.type = 3905492369;\n    }\n  }\n  IFC4_32.IfcImageTexture = IfcImageTexture;\n  class IfcIndexedColourMap extends IfcPresentationItem {\n    constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) {\n      super(expressID);\n      this.MappedTo = MappedTo;\n      this.Opacity = Opacity;\n      this.Colours = Colours;\n      this.ColourIndex = ColourIndex;\n      this.type = 3570813810;\n    }\n  }\n  IFC4_32.IfcIndexedColourMap = IfcIndexedColourMap;\n  class IfcIndexedTextureMap extends IfcTextureCoordinate {\n    constructor(expressID, Maps, MappedTo, TexCoords) {\n      super(expressID, Maps);\n      this.Maps = Maps;\n      this.MappedTo = MappedTo;\n      this.TexCoords = TexCoords;\n      this.type = 1437953363;\n    }\n  }\n  IFC4_32.IfcIndexedTextureMap = IfcIndexedTextureMap;\n  class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap {\n    constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) {\n      super(expressID, Maps, MappedTo, TexCoords);\n      this.Maps = Maps;\n      this.MappedTo = MappedTo;\n      this.TexCoords = TexCoords;\n      this.TexCoordIndex = TexCoordIndex;\n      this.type = 2133299955;\n    }\n  }\n  IFC4_32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap;\n  class IfcIrregularTimeSeries extends IfcTimeSeries {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {\n      super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.Values = Values;\n      this.type = 3741457305;\n    }\n  }\n  IFC4_32.IfcIrregularTimeSeries = IfcIrregularTimeSeries;\n  class IfcLagTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.LagValue = LagValue;\n      this.DurationType = DurationType;\n      this.type = 1585845231;\n    }\n  }\n  IFC4_32.IfcLagTime = IfcLagTime;\n  class IfcLightSource extends IfcGeometricRepresentationItem {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) {\n      super(expressID);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.type = 1402838566;\n    }\n  }\n  IFC4_32.IfcLightSource = IfcLightSource;\n  class IfcLightSourceAmbient extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.type = 125510826;\n    }\n  }\n  IFC4_32.IfcLightSourceAmbient = IfcLightSourceAmbient;\n  class IfcLightSourceDirectional extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Orientation = Orientation;\n      this.type = 2604431987;\n    }\n  }\n  IFC4_32.IfcLightSourceDirectional = IfcLightSourceDirectional;\n  class IfcLightSourceGoniometric extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.ColourAppearance = ColourAppearance;\n      this.ColourTemperature = ColourTemperature;\n      this.LuminousFlux = LuminousFlux;\n      this.LightEmissionSource = LightEmissionSource;\n      this.LightDistributionDataSource = LightDistributionDataSource;\n      this.type = 4266656042;\n    }\n  }\n  IFC4_32.IfcLightSourceGoniometric = IfcLightSourceGoniometric;\n  class IfcLightSourcePositional extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.ConstantAttenuation = ConstantAttenuation;\n      this.DistanceAttenuation = DistanceAttenuation;\n      this.QuadricAttenuation = QuadricAttenuation;\n      this.type = 1520743889;\n    }\n  }\n  IFC4_32.IfcLightSourcePositional = IfcLightSourcePositional;\n  class IfcLightSourceSpot extends IfcLightSourcePositional {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.ConstantAttenuation = ConstantAttenuation;\n      this.DistanceAttenuation = DistanceAttenuation;\n      this.QuadricAttenuation = QuadricAttenuation;\n      this.Orientation = Orientation;\n      this.ConcentrationExponent = ConcentrationExponent;\n      this.SpreadAngle = SpreadAngle;\n      this.BeamWidthAngle = BeamWidthAngle;\n      this.type = 3422422726;\n    }\n  }\n  IFC4_32.IfcLightSourceSpot = IfcLightSourceSpot;\n  class IfcLinearPlacement extends IfcObjectPlacement {\n    constructor(expressID, PlacementRelTo, RelativePlacement, CartesianPosition) {\n      super(expressID, PlacementRelTo);\n      this.PlacementRelTo = PlacementRelTo;\n      this.RelativePlacement = RelativePlacement;\n      this.CartesianPosition = CartesianPosition;\n      this.type = 388784114;\n    }\n  }\n  IFC4_32.IfcLinearPlacement = IfcLinearPlacement;\n  class IfcLocalPlacement extends IfcObjectPlacement {\n    constructor(expressID, PlacementRelTo, RelativePlacement) {\n      super(expressID, PlacementRelTo);\n      this.PlacementRelTo = PlacementRelTo;\n      this.RelativePlacement = RelativePlacement;\n      this.type = 2624227202;\n    }\n  }\n  IFC4_32.IfcLocalPlacement = IfcLocalPlacement;\n  class IfcLoop extends IfcTopologicalRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1008929658;\n    }\n  }\n  IFC4_32.IfcLoop = IfcLoop;\n  class IfcMappedItem extends IfcRepresentationItem {\n    constructor(expressID, MappingSource, MappingTarget) {\n      super(expressID);\n      this.MappingSource = MappingSource;\n      this.MappingTarget = MappingTarget;\n      this.type = 2347385850;\n    }\n  }\n  IFC4_32.IfcMappedItem = IfcMappedItem;\n  class IfcMaterial extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, Category) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Category = Category;\n      this.type = 1838606355;\n    }\n  }\n  IFC4_32.IfcMaterial = IfcMaterial;\n  class IfcMaterialConstituent extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, Material, Fraction, Category) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Material = Material;\n      this.Fraction = Fraction;\n      this.Category = Category;\n      this.type = 3708119e3;\n    }\n  }\n  IFC4_32.IfcMaterialConstituent = IfcMaterialConstituent;\n  class IfcMaterialConstituentSet extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, MaterialConstituents) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.MaterialConstituents = MaterialConstituents;\n      this.type = 2852063980;\n    }\n  }\n  IFC4_32.IfcMaterialConstituentSet = IfcMaterialConstituentSet;\n  class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {\n    constructor(expressID, Name, Description, Representations, RepresentedMaterial) {\n      super(expressID, Name, Description, Representations);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.RepresentedMaterial = RepresentedMaterial;\n      this.type = 2022407955;\n    }\n  }\n  IFC4_32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;\n  class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition {\n    constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) {\n      super(expressID);\n      this.ForLayerSet = ForLayerSet;\n      this.LayerSetDirection = LayerSetDirection;\n      this.DirectionSense = DirectionSense;\n      this.OffsetFromReferenceLine = OffsetFromReferenceLine;\n      this.ReferenceExtent = ReferenceExtent;\n      this.type = 1303795690;\n    }\n  }\n  IFC4_32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;\n  class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition {\n    constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) {\n      super(expressID);\n      this.ForProfileSet = ForProfileSet;\n      this.CardinalPoint = CardinalPoint;\n      this.ReferenceExtent = ReferenceExtent;\n      this.type = 3079605661;\n    }\n  }\n  IFC4_32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage;\n  class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage {\n    constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) {\n      super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent);\n      this.ForProfileSet = ForProfileSet;\n      this.CardinalPoint = CardinalPoint;\n      this.ReferenceExtent = ReferenceExtent;\n      this.ForProfileEndSet = ForProfileEndSet;\n      this.CardinalEndPoint = CardinalEndPoint;\n      this.type = 3404854881;\n    }\n  }\n  IFC4_32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering;\n  class IfcMaterialProperties extends IfcExtendedProperties {\n    constructor(expressID, Name, Description, Properties2, Material) {\n      super(expressID, Name, Description, Properties2);\n      this.Name = Name;\n      this.Description = Description;\n      this.Properties = Properties2;\n      this.Material = Material;\n      this.type = 3265635763;\n    }\n  }\n  IFC4_32.IfcMaterialProperties = IfcMaterialProperties;\n  class IfcMaterialRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingMaterial = RelatingMaterial;\n      this.RelatedMaterials = RelatedMaterials;\n      this.MaterialExpression = MaterialExpression;\n      this.type = 853536259;\n    }\n  }\n  IFC4_32.IfcMaterialRelationship = IfcMaterialRelationship;\n  class IfcMirroredProfileDef extends IfcDerivedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) {\n      super(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.ParentProfile = ParentProfile;\n      this.Operator = Operator;\n      this.Label = Label;\n      this.type = 2998442950;\n    }\n  }\n  IFC4_32.IfcMirroredProfileDef = IfcMirroredProfileDef;\n  class IfcObjectDefinition extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 219451334;\n    }\n  }\n  IFC4_32.IfcObjectDefinition = IfcObjectDefinition;\n  class IfcOpenCrossProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.HorizontalWidths = HorizontalWidths;\n      this.Widths = Widths;\n      this.Slopes = Slopes;\n      this.Tags = Tags;\n      this.OffsetPoint = OffsetPoint;\n      this.type = 182550632;\n    }\n  }\n  IFC4_32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef;\n  class IfcOpenShell extends IfcConnectedFaceSet {\n    constructor(expressID, CfsFaces) {\n      super(expressID, CfsFaces);\n      this.CfsFaces = CfsFaces;\n      this.type = 2665983363;\n    }\n  }\n  IFC4_32.IfcOpenShell = IfcOpenShell;\n  class IfcOrganizationRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingOrganization = RelatingOrganization;\n      this.RelatedOrganizations = RelatedOrganizations;\n      this.type = 1411181986;\n    }\n  }\n  IFC4_32.IfcOrganizationRelationship = IfcOrganizationRelationship;\n  class IfcOrientedEdge extends IfcEdge {\n    constructor(expressID, EdgeStart, EdgeElement, Orientation) {\n      super(expressID, EdgeStart, new Handle(0));\n      this.EdgeStart = EdgeStart;\n      this.EdgeElement = EdgeElement;\n      this.Orientation = Orientation;\n      this.type = 1029017970;\n    }\n  }\n  IFC4_32.IfcOrientedEdge = IfcOrientedEdge;\n  class IfcParameterizedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.type = 2529465313;\n    }\n  }\n  IFC4_32.IfcParameterizedProfileDef = IfcParameterizedProfileDef;\n  class IfcPath extends IfcTopologicalRepresentationItem {\n    constructor(expressID, EdgeList) {\n      super(expressID);\n      this.EdgeList = EdgeList;\n      this.type = 2519244187;\n    }\n  }\n  IFC4_32.IfcPath = IfcPath;\n  class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {\n    constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.HasQuantities = HasQuantities;\n      this.Discrimination = Discrimination;\n      this.Quality = Quality;\n      this.Usage = Usage;\n      this.type = 3021840470;\n    }\n  }\n  IFC4_32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;\n  class IfcPixelTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) {\n      super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.Mode = Mode;\n      this.TextureTransform = TextureTransform;\n      this.Parameter = Parameter;\n      this.Width = Width;\n      this.Height = Height;\n      this.ColourComponents = ColourComponents;\n      this.Pixel = Pixel;\n      this.type = 597895409;\n    }\n  }\n  IFC4_32.IfcPixelTexture = IfcPixelTexture;\n  class IfcPlacement extends IfcGeometricRepresentationItem {\n    constructor(expressID, Location) {\n      super(expressID);\n      this.Location = Location;\n      this.type = 2004835150;\n    }\n  }\n  IFC4_32.IfcPlacement = IfcPlacement;\n  class IfcPlanarExtent extends IfcGeometricRepresentationItem {\n    constructor(expressID, SizeInX, SizeInY) {\n      super(expressID);\n      this.SizeInX = SizeInX;\n      this.SizeInY = SizeInY;\n      this.type = 1663979128;\n    }\n  }\n  IFC4_32.IfcPlanarExtent = IfcPlanarExtent;\n  class IfcPoint extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2067069095;\n    }\n  }\n  IFC4_32.IfcPoint = IfcPoint;\n  class IfcPointByDistanceExpression extends IfcPoint {\n    constructor(expressID, DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) {\n      super(expressID);\n      this.DistanceAlong = DistanceAlong;\n      this.OffsetLateral = OffsetLateral;\n      this.OffsetVertical = OffsetVertical;\n      this.OffsetLongitudinal = OffsetLongitudinal;\n      this.BasisCurve = BasisCurve;\n      this.type = 2165702409;\n    }\n  }\n  IFC4_32.IfcPointByDistanceExpression = IfcPointByDistanceExpression;\n  class IfcPointOnCurve extends IfcPoint {\n    constructor(expressID, BasisCurve, PointParameter) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.PointParameter = PointParameter;\n      this.type = 4022376103;\n    }\n  }\n  IFC4_32.IfcPointOnCurve = IfcPointOnCurve;\n  class IfcPointOnSurface extends IfcPoint {\n    constructor(expressID, BasisSurface, PointParameterU, PointParameterV) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.PointParameterU = PointParameterU;\n      this.PointParameterV = PointParameterV;\n      this.type = 1423911732;\n    }\n  }\n  IFC4_32.IfcPointOnSurface = IfcPointOnSurface;\n  class IfcPolyLoop extends IfcLoop {\n    constructor(expressID, Polygon) {\n      super(expressID);\n      this.Polygon = Polygon;\n      this.type = 2924175390;\n    }\n  }\n  IFC4_32.IfcPolyLoop = IfcPolyLoop;\n  class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {\n    constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) {\n      super(expressID, BaseSurface, AgreementFlag);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.Position = Position;\n      this.PolygonalBoundary = PolygonalBoundary;\n      this.type = 2775532180;\n    }\n  }\n  IFC4_32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;\n  class IfcPreDefinedItem extends IfcPresentationItem {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3727388367;\n    }\n  }\n  IFC4_32.IfcPreDefinedItem = IfcPreDefinedItem;\n  class IfcPreDefinedProperties extends IfcPropertyAbstraction {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 3778827333;\n    }\n  }\n  IFC4_32.IfcPreDefinedProperties = IfcPreDefinedProperties;\n  class IfcPreDefinedTextFont extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 1775413392;\n    }\n  }\n  IFC4_32.IfcPreDefinedTextFont = IfcPreDefinedTextFont;\n  class IfcProductDefinitionShape extends IfcProductRepresentation {\n    constructor(expressID, Name, Description, Representations) {\n      super(expressID, Name, Description, Representations);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.type = 673634403;\n    }\n  }\n  IFC4_32.IfcProductDefinitionShape = IfcProductDefinitionShape;\n  class IfcProfileProperties extends IfcExtendedProperties {\n    constructor(expressID, Name, Description, Properties2, ProfileDefinition) {\n      super(expressID, Name, Description, Properties2);\n      this.Name = Name;\n      this.Description = Description;\n      this.Properties = Properties2;\n      this.ProfileDefinition = ProfileDefinition;\n      this.type = 2802850158;\n    }\n  }\n  IFC4_32.IfcProfileProperties = IfcProfileProperties;\n  class IfcProperty extends IfcPropertyAbstraction {\n    constructor(expressID, Name, Specification) {\n      super(expressID);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.type = 2598011224;\n    }\n  }\n  IFC4_32.IfcProperty = IfcProperty;\n  class IfcPropertyDefinition extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 1680319473;\n    }\n  }\n  IFC4_32.IfcPropertyDefinition = IfcPropertyDefinition;\n  class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.DependingProperty = DependingProperty;\n      this.DependantProperty = DependantProperty;\n      this.Expression = Expression;\n      this.type = 148025276;\n    }\n  }\n  IFC4_32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;\n  class IfcPropertySetDefinition extends IfcPropertyDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3357820518;\n    }\n  }\n  IFC4_32.IfcPropertySetDefinition = IfcPropertySetDefinition;\n  class IfcPropertyTemplateDefinition extends IfcPropertyDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 1482703590;\n    }\n  }\n  IFC4_32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition;\n  class IfcQuantitySet extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2090586900;\n    }\n  }\n  IFC4_32.IfcQuantitySet = IfcQuantitySet;\n  class IfcRectangleProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.type = 3615266464;\n    }\n  }\n  IFC4_32.IfcRectangleProfileDef = IfcRectangleProfileDef;\n  class IfcRegularTimeSeries extends IfcTimeSeries {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {\n      super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.TimeStep = TimeStep;\n      this.Values = Values;\n      this.type = 3413951693;\n    }\n  }\n  IFC4_32.IfcRegularTimeSeries = IfcRegularTimeSeries;\n  class IfcReinforcementBarProperties extends IfcPreDefinedProperties {\n    constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {\n      super(expressID);\n      this.TotalCrossSectionArea = TotalCrossSectionArea;\n      this.SteelGrade = SteelGrade;\n      this.BarSurface = BarSurface;\n      this.EffectiveDepth = EffectiveDepth;\n      this.NominalBarDiameter = NominalBarDiameter;\n      this.BarCount = BarCount;\n      this.type = 1580146022;\n    }\n  }\n  IFC4_32.IfcReinforcementBarProperties = IfcReinforcementBarProperties;\n  class IfcRelationship extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 478536968;\n    }\n  }\n  IFC4_32.IfcRelationship = IfcRelationship;\n  class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedResourceObjects = RelatedResourceObjects;\n      this.RelatingApproval = RelatingApproval;\n      this.type = 2943643501;\n    }\n  }\n  IFC4_32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship;\n  class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingConstraint = RelatingConstraint;\n      this.RelatedResourceObjects = RelatedResourceObjects;\n      this.type = 1608871552;\n    }\n  }\n  IFC4_32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship;\n  class IfcResourceTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.ScheduleWork = ScheduleWork;\n      this.ScheduleUsage = ScheduleUsage;\n      this.ScheduleStart = ScheduleStart;\n      this.ScheduleFinish = ScheduleFinish;\n      this.ScheduleContour = ScheduleContour;\n      this.LevelingDelay = LevelingDelay;\n      this.IsOverAllocated = IsOverAllocated;\n      this.StatusTime = StatusTime;\n      this.ActualWork = ActualWork;\n      this.ActualUsage = ActualUsage;\n      this.ActualStart = ActualStart;\n      this.ActualFinish = ActualFinish;\n      this.RemainingWork = RemainingWork;\n      this.RemainingUsage = RemainingUsage;\n      this.Completion = Completion;\n      this.type = 1042787934;\n    }\n  }\n  IFC4_32.IfcResourceTime = IfcResourceTime;\n  class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {\n      super(expressID, ProfileType, ProfileName, Position, XDim, YDim);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.RoundingRadius = RoundingRadius;\n      this.type = 2778083089;\n    }\n  }\n  IFC4_32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;\n  class IfcSectionProperties extends IfcPreDefinedProperties {\n    constructor(expressID, SectionType, StartProfile, EndProfile) {\n      super(expressID);\n      this.SectionType = SectionType;\n      this.StartProfile = StartProfile;\n      this.EndProfile = EndProfile;\n      this.type = 2042790032;\n    }\n  }\n  IFC4_32.IfcSectionProperties = IfcSectionProperties;\n  class IfcSectionReinforcementProperties extends IfcPreDefinedProperties {\n    constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {\n      super(expressID);\n      this.LongitudinalStartPosition = LongitudinalStartPosition;\n      this.LongitudinalEndPosition = LongitudinalEndPosition;\n      this.TransversePosition = TransversePosition;\n      this.ReinforcementRole = ReinforcementRole;\n      this.SectionDefinition = SectionDefinition;\n      this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;\n      this.type = 4165799628;\n    }\n  }\n  IFC4_32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;\n  class IfcSectionedSpine extends IfcGeometricRepresentationItem {\n    constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) {\n      super(expressID);\n      this.SpineCurve = SpineCurve;\n      this.CrossSections = CrossSections;\n      this.CrossSectionPositions = CrossSectionPositions;\n      this.type = 1509187699;\n    }\n  }\n  IFC4_32.IfcSectionedSpine = IfcSectionedSpine;\n  class IfcSegment extends IfcGeometricRepresentationItem {\n    constructor(expressID, Transition) {\n      super(expressID);\n      this.Transition = Transition;\n      this.type = 823603102;\n    }\n  }\n  IFC4_32.IfcSegment = IfcSegment;\n  class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {\n    constructor(expressID, SbsmBoundary) {\n      super(expressID);\n      this.SbsmBoundary = SbsmBoundary;\n      this.type = 4124623270;\n    }\n  }\n  IFC4_32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;\n  class IfcSimpleProperty extends IfcProperty {\n    constructor(expressID, Name, Specification) {\n      super(expressID, Name, Specification);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.type = 3692461612;\n    }\n  }\n  IFC4_32.IfcSimpleProperty = IfcSimpleProperty;\n  class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {\n    constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.SlippageX = SlippageX;\n      this.SlippageY = SlippageY;\n      this.SlippageZ = SlippageZ;\n      this.type = 2609359061;\n    }\n  }\n  IFC4_32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;\n  class IfcSolidModel extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 723233188;\n    }\n  }\n  IFC4_32.IfcSolidModel = IfcSolidModel;\n  class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.LinearForceX = LinearForceX;\n      this.LinearForceY = LinearForceY;\n      this.LinearForceZ = LinearForceZ;\n      this.LinearMomentX = LinearMomentX;\n      this.LinearMomentY = LinearMomentY;\n      this.LinearMomentZ = LinearMomentZ;\n      this.type = 1595516126;\n    }\n  }\n  IFC4_32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;\n  class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.PlanarForceX = PlanarForceX;\n      this.PlanarForceY = PlanarForceY;\n      this.PlanarForceZ = PlanarForceZ;\n      this.type = 2668620305;\n    }\n  }\n  IFC4_32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;\n  class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.DisplacementX = DisplacementX;\n      this.DisplacementY = DisplacementY;\n      this.DisplacementZ = DisplacementZ;\n      this.RotationalDisplacementRX = RotationalDisplacementRX;\n      this.RotationalDisplacementRY = RotationalDisplacementRY;\n      this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n      this.type = 2473145415;\n    }\n  }\n  IFC4_32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;\n  class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {\n    constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {\n      super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);\n      this.Name = Name;\n      this.DisplacementX = DisplacementX;\n      this.DisplacementY = DisplacementY;\n      this.DisplacementZ = DisplacementZ;\n      this.RotationalDisplacementRX = RotationalDisplacementRX;\n      this.RotationalDisplacementRY = RotationalDisplacementRY;\n      this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n      this.Distortion = Distortion;\n      this.type = 1973038258;\n    }\n  }\n  IFC4_32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;\n  class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.ForceX = ForceX;\n      this.ForceY = ForceY;\n      this.ForceZ = ForceZ;\n      this.MomentX = MomentX;\n      this.MomentY = MomentY;\n      this.MomentZ = MomentZ;\n      this.type = 1597423693;\n    }\n  }\n  IFC4_32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;\n  class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {\n    constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {\n      super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);\n      this.Name = Name;\n      this.ForceX = ForceX;\n      this.ForceY = ForceY;\n      this.ForceZ = ForceZ;\n      this.MomentX = MomentX;\n      this.MomentY = MomentY;\n      this.MomentZ = MomentZ;\n      this.WarpingMoment = WarpingMoment;\n      this.type = 1190533807;\n    }\n  }\n  IFC4_32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;\n  class IfcSubedge extends IfcEdge {\n    constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) {\n      super(expressID, EdgeStart, EdgeEnd);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.ParentEdge = ParentEdge;\n      this.type = 2233826070;\n    }\n  }\n  IFC4_32.IfcSubedge = IfcSubedge;\n  class IfcSurface extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2513912981;\n    }\n  }\n  IFC4_32.IfcSurface = IfcSurface;\n  class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {\n    constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {\n      super(expressID, SurfaceColour, Transparency);\n      this.SurfaceColour = SurfaceColour;\n      this.Transparency = Transparency;\n      this.DiffuseColour = DiffuseColour;\n      this.TransmissionColour = TransmissionColour;\n      this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n      this.ReflectionColour = ReflectionColour;\n      this.SpecularColour = SpecularColour;\n      this.SpecularHighlight = SpecularHighlight;\n      this.ReflectanceMethod = ReflectanceMethod;\n      this.type = 1878645084;\n    }\n  }\n  IFC4_32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;\n  class IfcSweptAreaSolid extends IfcSolidModel {\n    constructor(expressID, SweptArea, Position) {\n      super(expressID);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.type = 2247615214;\n    }\n  }\n  IFC4_32.IfcSweptAreaSolid = IfcSweptAreaSolid;\n  class IfcSweptDiskSolid extends IfcSolidModel {\n    constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) {\n      super(expressID);\n      this.Directrix = Directrix;\n      this.Radius = Radius;\n      this.InnerRadius = InnerRadius;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.type = 1260650574;\n    }\n  }\n  IFC4_32.IfcSweptDiskSolid = IfcSweptDiskSolid;\n  class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid {\n    constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) {\n      super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam);\n      this.Directrix = Directrix;\n      this.Radius = Radius;\n      this.InnerRadius = InnerRadius;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.FilletRadius = FilletRadius;\n      this.type = 1096409881;\n    }\n  }\n  IFC4_32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal;\n  class IfcSweptSurface extends IfcSurface {\n    constructor(expressID, SweptCurve, Position) {\n      super(expressID);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.type = 230924584;\n    }\n  }\n  IFC4_32.IfcSweptSurface = IfcSweptSurface;\n  class IfcTShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.FlangeEdgeRadius = FlangeEdgeRadius;\n      this.WebEdgeRadius = WebEdgeRadius;\n      this.WebSlope = WebSlope;\n      this.FlangeSlope = FlangeSlope;\n      this.type = 3071757647;\n    }\n  }\n  IFC4_32.IfcTShapeProfileDef = IfcTShapeProfileDef;\n  class IfcTessellatedItem extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 901063453;\n    }\n  }\n  IFC4_32.IfcTessellatedItem = IfcTessellatedItem;\n  class IfcTextLiteral extends IfcGeometricRepresentationItem {\n    constructor(expressID, Literal, Placement, Path) {\n      super(expressID);\n      this.Literal = Literal;\n      this.Placement = Placement;\n      this.Path = Path;\n      this.type = 4282788508;\n    }\n  }\n  IFC4_32.IfcTextLiteral = IfcTextLiteral;\n  class IfcTextLiteralWithExtent extends IfcTextLiteral {\n    constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) {\n      super(expressID, Literal, Placement, Path);\n      this.Literal = Literal;\n      this.Placement = Placement;\n      this.Path = Path;\n      this.Extent = Extent;\n      this.BoxAlignment = BoxAlignment;\n      this.type = 3124975700;\n    }\n  }\n  IFC4_32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;\n  class IfcTextStyleFontModel extends IfcPreDefinedTextFont {\n    constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.FontFamily = FontFamily;\n      this.FontStyle = FontStyle;\n      this.FontVariant = FontVariant;\n      this.FontWeight = FontWeight;\n      this.FontSize = FontSize;\n      this.type = 1983826977;\n    }\n  }\n  IFC4_32.IfcTextStyleFontModel = IfcTextStyleFontModel;\n  class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.BottomXDim = BottomXDim;\n      this.TopXDim = TopXDim;\n      this.YDim = YDim;\n      this.TopXOffset = TopXOffset;\n      this.type = 2715220739;\n    }\n  }\n  IFC4_32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;\n  class IfcTypeObject extends IfcObjectDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.type = 1628702193;\n    }\n  }\n  IFC4_32.IfcTypeObject = IfcTypeObject;\n  class IfcTypeProcess extends IfcTypeObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ProcessType = ProcessType;\n      this.type = 3736923433;\n    }\n  }\n  IFC4_32.IfcTypeProcess = IfcTypeProcess;\n  class IfcTypeProduct extends IfcTypeObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.type = 2347495698;\n    }\n  }\n  IFC4_32.IfcTypeProduct = IfcTypeProduct;\n  class IfcTypeResource extends IfcTypeObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.type = 3698973494;\n    }\n  }\n  IFC4_32.IfcTypeResource = IfcTypeResource;\n  class IfcUShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.FlangeSlope = FlangeSlope;\n      this.type = 427810014;\n    }\n  }\n  IFC4_32.IfcUShapeProfileDef = IfcUShapeProfileDef;\n  class IfcVector extends IfcGeometricRepresentationItem {\n    constructor(expressID, Orientation, Magnitude) {\n      super(expressID);\n      this.Orientation = Orientation;\n      this.Magnitude = Magnitude;\n      this.type = 1417489154;\n    }\n  }\n  IFC4_32.IfcVector = IfcVector;\n  class IfcVertexLoop extends IfcLoop {\n    constructor(expressID, LoopVertex) {\n      super(expressID);\n      this.LoopVertex = LoopVertex;\n      this.type = 2759199220;\n    }\n  }\n  IFC4_32.IfcVertexLoop = IfcVertexLoop;\n  class IfcZShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.type = 2543172580;\n    }\n  }\n  IFC4_32.IfcZShapeProfileDef = IfcZShapeProfileDef;\n  class IfcAdvancedFace extends IfcFaceSurface {\n    constructor(expressID, Bounds, FaceSurface, SameSense) {\n      super(expressID, Bounds, FaceSurface, SameSense);\n      this.Bounds = Bounds;\n      this.FaceSurface = FaceSurface;\n      this.SameSense = SameSense;\n      this.type = 3406155212;\n    }\n  }\n  IFC4_32.IfcAdvancedFace = IfcAdvancedFace;\n  class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {\n    constructor(expressID, OuterBoundary, InnerBoundaries) {\n      super(expressID);\n      this.OuterBoundary = OuterBoundary;\n      this.InnerBoundaries = InnerBoundaries;\n      this.type = 669184980;\n    }\n  }\n  IFC4_32.IfcAnnotationFillArea = IfcAnnotationFillArea;\n  class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.BottomFlangeWidth = BottomFlangeWidth;\n      this.OverallDepth = OverallDepth;\n      this.WebThickness = WebThickness;\n      this.BottomFlangeThickness = BottomFlangeThickness;\n      this.BottomFlangeFilletRadius = BottomFlangeFilletRadius;\n      this.TopFlangeWidth = TopFlangeWidth;\n      this.TopFlangeThickness = TopFlangeThickness;\n      this.TopFlangeFilletRadius = TopFlangeFilletRadius;\n      this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius;\n      this.BottomFlangeSlope = BottomFlangeSlope;\n      this.TopFlangeEdgeRadius = TopFlangeEdgeRadius;\n      this.TopFlangeSlope = TopFlangeSlope;\n      this.type = 3207858831;\n    }\n  }\n  IFC4_32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;\n  class IfcAxis1Placement extends IfcPlacement {\n    constructor(expressID, Location, Axis) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.Axis = Axis;\n      this.type = 4261334040;\n    }\n  }\n  IFC4_32.IfcAxis1Placement = IfcAxis1Placement;\n  class IfcAxis2Placement2D extends IfcPlacement {\n    constructor(expressID, Location, RefDirection) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.RefDirection = RefDirection;\n      this.type = 3125803723;\n    }\n  }\n  IFC4_32.IfcAxis2Placement2D = IfcAxis2Placement2D;\n  class IfcAxis2Placement3D extends IfcPlacement {\n    constructor(expressID, Location, Axis, RefDirection) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.Axis = Axis;\n      this.RefDirection = RefDirection;\n      this.type = 2740243338;\n    }\n  }\n  IFC4_32.IfcAxis2Placement3D = IfcAxis2Placement3D;\n  class IfcAxis2PlacementLinear extends IfcPlacement {\n    constructor(expressID, Location, Axis, RefDirection) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.Axis = Axis;\n      this.RefDirection = RefDirection;\n      this.type = 3425423356;\n    }\n  }\n  IFC4_32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear;\n  class IfcBooleanResult extends IfcGeometricRepresentationItem {\n    constructor(expressID, Operator, FirstOperand, SecondOperand) {\n      super(expressID);\n      this.Operator = Operator;\n      this.FirstOperand = FirstOperand;\n      this.SecondOperand = SecondOperand;\n      this.type = 2736907675;\n    }\n  }\n  IFC4_32.IfcBooleanResult = IfcBooleanResult;\n  class IfcBoundedSurface extends IfcSurface {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 4182860854;\n    }\n  }\n  IFC4_32.IfcBoundedSurface = IfcBoundedSurface;\n  class IfcBoundingBox extends IfcGeometricRepresentationItem {\n    constructor(expressID, Corner, XDim, YDim, ZDim) {\n      super(expressID);\n      this.Corner = Corner;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.ZDim = ZDim;\n      this.type = 2581212453;\n    }\n  }\n  IFC4_32.IfcBoundingBox = IfcBoundingBox;\n  class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {\n    constructor(expressID, BaseSurface, AgreementFlag, Enclosure) {\n      super(expressID, BaseSurface, AgreementFlag);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.Enclosure = Enclosure;\n      this.type = 2713105998;\n    }\n  }\n  IFC4_32.IfcBoxedHalfSpace = IfcBoxedHalfSpace;\n  class IfcCShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.Width = Width;\n      this.WallThickness = WallThickness;\n      this.Girth = Girth;\n      this.InternalFilletRadius = InternalFilletRadius;\n      this.type = 2898889636;\n    }\n  }\n  IFC4_32.IfcCShapeProfileDef = IfcCShapeProfileDef;\n  class IfcCartesianPoint extends IfcPoint {\n    constructor(expressID, Coordinates) {\n      super(expressID);\n      this.Coordinates = Coordinates;\n      this.type = 1123145078;\n    }\n  }\n  IFC4_32.IfcCartesianPoint = IfcCartesianPoint;\n  class IfcCartesianPointList extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 574549367;\n    }\n  }\n  IFC4_32.IfcCartesianPointList = IfcCartesianPointList;\n  class IfcCartesianPointList2D extends IfcCartesianPointList {\n    constructor(expressID, CoordList, TagList) {\n      super(expressID);\n      this.CoordList = CoordList;\n      this.TagList = TagList;\n      this.type = 1675464909;\n    }\n  }\n  IFC4_32.IfcCartesianPointList2D = IfcCartesianPointList2D;\n  class IfcCartesianPointList3D extends IfcCartesianPointList {\n    constructor(expressID, CoordList, TagList) {\n      super(expressID);\n      this.CoordList = CoordList;\n      this.TagList = TagList;\n      this.type = 2059837836;\n    }\n  }\n  IFC4_32.IfcCartesianPointList3D = IfcCartesianPointList3D;\n  class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) {\n      super(expressID);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.type = 59481748;\n    }\n  }\n  IFC4_32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;\n  class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.type = 3749851601;\n    }\n  }\n  IFC4_32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;\n  class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Scale2 = Scale2;\n      this.type = 3486308946;\n    }\n  }\n  IFC4_32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;\n  class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Axis3 = Axis3;\n      this.type = 3331915920;\n    }\n  }\n  IFC4_32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;\n  class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Axis3 = Axis3;\n      this.Scale2 = Scale2;\n      this.Scale3 = Scale3;\n      this.type = 1416205885;\n    }\n  }\n  IFC4_32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;\n  class IfcCircleProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Radius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 1383045692;\n    }\n  }\n  IFC4_32.IfcCircleProfileDef = IfcCircleProfileDef;\n  class IfcClosedShell extends IfcConnectedFaceSet {\n    constructor(expressID, CfsFaces) {\n      super(expressID, CfsFaces);\n      this.CfsFaces = CfsFaces;\n      this.type = 2205249479;\n    }\n  }\n  IFC4_32.IfcClosedShell = IfcClosedShell;\n  class IfcColourRgb extends IfcColourSpecification {\n    constructor(expressID, Name, Red, Green, Blue) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.Red = Red;\n      this.Green = Green;\n      this.Blue = Blue;\n      this.type = 776857604;\n    }\n  }\n  IFC4_32.IfcColourRgb = IfcColourRgb;\n  class IfcComplexProperty extends IfcProperty {\n    constructor(expressID, Name, Specification, UsageName, HasProperties) {\n      super(expressID, Name, Specification);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.UsageName = UsageName;\n      this.HasProperties = HasProperties;\n      this.type = 2542286263;\n    }\n  }\n  IFC4_32.IfcComplexProperty = IfcComplexProperty;\n  class IfcCompositeCurveSegment extends IfcSegment {\n    constructor(expressID, Transition, SameSense, ParentCurve) {\n      super(expressID, Transition);\n      this.Transition = Transition;\n      this.SameSense = SameSense;\n      this.ParentCurve = ParentCurve;\n      this.type = 2485617015;\n    }\n  }\n  IFC4_32.IfcCompositeCurveSegment = IfcCompositeCurveSegment;\n  class IfcConstructionResourceType extends IfcTypeResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.type = 2574617495;\n    }\n  }\n  IFC4_32.IfcConstructionResourceType = IfcConstructionResourceType;\n  class IfcContext extends IfcObjectDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.Phase = Phase;\n      this.RepresentationContexts = RepresentationContexts;\n      this.UnitsInContext = UnitsInContext;\n      this.type = 3419103109;\n    }\n  }\n  IFC4_32.IfcContext = IfcContext;\n  class IfcCrewResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 1815067380;\n    }\n  }\n  IFC4_32.IfcCrewResourceType = IfcCrewResourceType;\n  class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2506170314;\n    }\n  }\n  IFC4_32.IfcCsgPrimitive3D = IfcCsgPrimitive3D;\n  class IfcCsgSolid extends IfcSolidModel {\n    constructor(expressID, TreeRootExpression) {\n      super(expressID);\n      this.TreeRootExpression = TreeRootExpression;\n      this.type = 2147822146;\n    }\n  }\n  IFC4_32.IfcCsgSolid = IfcCsgSolid;\n  class IfcCurve extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2601014836;\n    }\n  }\n  IFC4_32.IfcCurve = IfcCurve;\n  class IfcCurveBoundedPlane extends IfcBoundedSurface {\n    constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.OuterBoundary = OuterBoundary;\n      this.InnerBoundaries = InnerBoundaries;\n      this.type = 2827736869;\n    }\n  }\n  IFC4_32.IfcCurveBoundedPlane = IfcCurveBoundedPlane;\n  class IfcCurveBoundedSurface extends IfcBoundedSurface {\n    constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.Boundaries = Boundaries;\n      this.ImplicitOuter = ImplicitOuter;\n      this.type = 2629017746;\n    }\n  }\n  IFC4_32.IfcCurveBoundedSurface = IfcCurveBoundedSurface;\n  class IfcCurveSegment extends IfcSegment {\n    constructor(expressID, Transition, Placement, SegmentStart, SegmentLength, ParentCurve) {\n      super(expressID, Transition);\n      this.Transition = Transition;\n      this.Placement = Placement;\n      this.SegmentStart = SegmentStart;\n      this.SegmentLength = SegmentLength;\n      this.ParentCurve = ParentCurve;\n      this.type = 4212018352;\n    }\n  }\n  IFC4_32.IfcCurveSegment = IfcCurveSegment;\n  class IfcDirection extends IfcGeometricRepresentationItem {\n    constructor(expressID, DirectionRatios) {\n      super(expressID);\n      this.DirectionRatios = DirectionRatios;\n      this.type = 32440307;\n    }\n  }\n  IFC4_32.IfcDirection = IfcDirection;\n  class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Directrix = Directrix;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.type = 593015953;\n    }\n  }\n  IFC4_32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid;\n  class IfcEdgeLoop extends IfcLoop {\n    constructor(expressID, EdgeList) {\n      super(expressID);\n      this.EdgeList = EdgeList;\n      this.type = 1472233963;\n    }\n  }\n  IFC4_32.IfcEdgeLoop = IfcEdgeLoop;\n  class IfcElementQuantity extends IfcQuantitySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.MethodOfMeasurement = MethodOfMeasurement;\n      this.Quantities = Quantities;\n      this.type = 1883228015;\n    }\n  }\n  IFC4_32.IfcElementQuantity = IfcElementQuantity;\n  class IfcElementType extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 339256511;\n    }\n  }\n  IFC4_32.IfcElementType = IfcElementType;\n  class IfcElementarySurface extends IfcSurface {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2777663545;\n    }\n  }\n  IFC4_32.IfcElementarySurface = IfcElementarySurface;\n  class IfcEllipseProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.SemiAxis1 = SemiAxis1;\n      this.SemiAxis2 = SemiAxis2;\n      this.type = 2835456948;\n    }\n  }\n  IFC4_32.IfcEllipseProfileDef = IfcEllipseProfileDef;\n  class IfcEventType extends IfcTypeProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ProcessType = ProcessType;\n      this.PredefinedType = PredefinedType;\n      this.EventTriggerType = EventTriggerType;\n      this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;\n      this.type = 4024345920;\n    }\n  }\n  IFC4_32.IfcEventType = IfcEventType;\n  class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.ExtrudedDirection = ExtrudedDirection;\n      this.Depth = Depth;\n      this.type = 477187591;\n    }\n  }\n  IFC4_32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;\n  class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid {\n    constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) {\n      super(expressID, SweptArea, Position, ExtrudedDirection, Depth);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.ExtrudedDirection = ExtrudedDirection;\n      this.Depth = Depth;\n      this.EndSweptArea = EndSweptArea;\n      this.type = 2804161546;\n    }\n  }\n  IFC4_32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered;\n  class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {\n    constructor(expressID, FbsmFaces) {\n      super(expressID);\n      this.FbsmFaces = FbsmFaces;\n      this.type = 2047409740;\n    }\n  }\n  IFC4_32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;\n  class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {\n    constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {\n      super(expressID);\n      this.HatchLineAppearance = HatchLineAppearance;\n      this.StartOfNextHatchLine = StartOfNextHatchLine;\n      this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;\n      this.PatternStart = PatternStart;\n      this.HatchLineAngle = HatchLineAngle;\n      this.type = 374418227;\n    }\n  }\n  IFC4_32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;\n  class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {\n    constructor(expressID, TilingPattern, Tiles, TilingScale) {\n      super(expressID);\n      this.TilingPattern = TilingPattern;\n      this.Tiles = Tiles;\n      this.TilingScale = TilingScale;\n      this.type = 315944413;\n    }\n  }\n  IFC4_32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;\n  class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {\n      super(expressID, SweptArea, Position, Directrix, StartParam, EndParam);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Directrix = Directrix;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.FixedReference = FixedReference;\n      this.type = 2652556860;\n    }\n  }\n  IFC4_32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid;\n  class IfcFurnishingElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 4238390223;\n    }\n  }\n  IFC4_32.IfcFurnishingElementType = IfcFurnishingElementType;\n  class IfcFurnitureType extends IfcFurnishingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.AssemblyPlace = AssemblyPlace;\n      this.PredefinedType = PredefinedType;\n      this.type = 1268542332;\n    }\n  }\n  IFC4_32.IfcFurnitureType = IfcFurnitureType;\n  class IfcGeographicElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4095422895;\n    }\n  }\n  IFC4_32.IfcGeographicElementType = IfcGeographicElementType;\n  class IfcGeometricCurveSet extends IfcGeometricSet {\n    constructor(expressID, Elements) {\n      super(expressID, Elements);\n      this.Elements = Elements;\n      this.type = 987898635;\n    }\n  }\n  IFC4_32.IfcGeometricCurveSet = IfcGeometricCurveSet;\n  class IfcIShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.OverallWidth = OverallWidth;\n      this.OverallDepth = OverallDepth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.FlangeEdgeRadius = FlangeEdgeRadius;\n      this.FlangeSlope = FlangeSlope;\n      this.type = 1484403080;\n    }\n  }\n  IFC4_32.IfcIShapeProfileDef = IfcIShapeProfileDef;\n  class IfcIndexedPolygonalFace extends IfcTessellatedItem {\n    constructor(expressID, CoordIndex) {\n      super(expressID);\n      this.CoordIndex = CoordIndex;\n      this.type = 178912537;\n    }\n  }\n  IFC4_32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace;\n  class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace {\n    constructor(expressID, CoordIndex, InnerCoordIndices) {\n      super(expressID, CoordIndex);\n      this.CoordIndex = CoordIndex;\n      this.InnerCoordIndices = InnerCoordIndices;\n      this.type = 2294589976;\n    }\n  }\n  IFC4_32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids;\n  class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap {\n    constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndices) {\n      super(expressID, Maps, MappedTo, TexCoords);\n      this.Maps = Maps;\n      this.MappedTo = MappedTo;\n      this.TexCoords = TexCoords;\n      this.TexCoordIndices = TexCoordIndices;\n      this.type = 3465909080;\n    }\n  }\n  IFC4_32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap;\n  class IfcLShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.Width = Width;\n      this.Thickness = Thickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.LegSlope = LegSlope;\n      this.type = 572779678;\n    }\n  }\n  IFC4_32.IfcLShapeProfileDef = IfcLShapeProfileDef;\n  class IfcLaborResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 428585644;\n    }\n  }\n  IFC4_32.IfcLaborResourceType = IfcLaborResourceType;\n  class IfcLine extends IfcCurve {\n    constructor(expressID, Pnt, Dir) {\n      super(expressID);\n      this.Pnt = Pnt;\n      this.Dir = Dir;\n      this.type = 1281925730;\n    }\n  }\n  IFC4_32.IfcLine = IfcLine;\n  class IfcManifoldSolidBrep extends IfcSolidModel {\n    constructor(expressID, Outer) {\n      super(expressID);\n      this.Outer = Outer;\n      this.type = 1425443689;\n    }\n  }\n  IFC4_32.IfcManifoldSolidBrep = IfcManifoldSolidBrep;\n  class IfcObject extends IfcObjectDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 3888040117;\n    }\n  }\n  IFC4_32.IfcObject = IfcObject;\n  class IfcOffsetCurve extends IfcCurve {\n    constructor(expressID, BasisCurve) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.type = 590820931;\n    }\n  }\n  IFC4_32.IfcOffsetCurve = IfcOffsetCurve;\n  class IfcOffsetCurve2D extends IfcOffsetCurve {\n    constructor(expressID, BasisCurve, Distance, SelfIntersect) {\n      super(expressID, BasisCurve);\n      this.BasisCurve = BasisCurve;\n      this.Distance = Distance;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 3388369263;\n    }\n  }\n  IFC4_32.IfcOffsetCurve2D = IfcOffsetCurve2D;\n  class IfcOffsetCurve3D extends IfcOffsetCurve {\n    constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) {\n      super(expressID, BasisCurve);\n      this.BasisCurve = BasisCurve;\n      this.Distance = Distance;\n      this.SelfIntersect = SelfIntersect;\n      this.RefDirection = RefDirection;\n      this.type = 3505215534;\n    }\n  }\n  IFC4_32.IfcOffsetCurve3D = IfcOffsetCurve3D;\n  class IfcOffsetCurveByDistances extends IfcOffsetCurve {\n    constructor(expressID, BasisCurve, OffsetValues, Tag) {\n      super(expressID, BasisCurve);\n      this.BasisCurve = BasisCurve;\n      this.OffsetValues = OffsetValues;\n      this.Tag = Tag;\n      this.type = 2485787929;\n    }\n  }\n  IFC4_32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances;\n  class IfcPcurve extends IfcCurve {\n    constructor(expressID, BasisSurface, ReferenceCurve) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.ReferenceCurve = ReferenceCurve;\n      this.type = 1682466193;\n    }\n  }\n  IFC4_32.IfcPcurve = IfcPcurve;\n  class IfcPlanarBox extends IfcPlanarExtent {\n    constructor(expressID, SizeInX, SizeInY, Placement) {\n      super(expressID, SizeInX, SizeInY);\n      this.SizeInX = SizeInX;\n      this.SizeInY = SizeInY;\n      this.Placement = Placement;\n      this.type = 603570806;\n    }\n  }\n  IFC4_32.IfcPlanarBox = IfcPlanarBox;\n  class IfcPlane extends IfcElementarySurface {\n    constructor(expressID, Position) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.type = 220341763;\n    }\n  }\n  IFC4_32.IfcPlane = IfcPlane;\n  class IfcPolynomialCurve extends IfcCurve {\n    constructor(expressID, Position, CoefficientsX, CoefficientsY, CoefficientsZ) {\n      super(expressID);\n      this.Position = Position;\n      this.CoefficientsX = CoefficientsX;\n      this.CoefficientsY = CoefficientsY;\n      this.CoefficientsZ = CoefficientsZ;\n      this.type = 3381221214;\n    }\n  }\n  IFC4_32.IfcPolynomialCurve = IfcPolynomialCurve;\n  class IfcPreDefinedColour extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 759155922;\n    }\n  }\n  IFC4_32.IfcPreDefinedColour = IfcPreDefinedColour;\n  class IfcPreDefinedCurveFont extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 2559016684;\n    }\n  }\n  IFC4_32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;\n  class IfcPreDefinedPropertySet extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3967405729;\n    }\n  }\n  IFC4_32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet;\n  class IfcProcedureType extends IfcTypeProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ProcessType = ProcessType;\n      this.PredefinedType = PredefinedType;\n      this.type = 569719735;\n    }\n  }\n  IFC4_32.IfcProcedureType = IfcProcedureType;\n  class IfcProcess extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.type = 2945172077;\n    }\n  }\n  IFC4_32.IfcProcess = IfcProcess;\n  class IfcProduct extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 4208778838;\n    }\n  }\n  IFC4_32.IfcProduct = IfcProduct;\n  class IfcProject extends IfcContext {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.Phase = Phase;\n      this.RepresentationContexts = RepresentationContexts;\n      this.UnitsInContext = UnitsInContext;\n      this.type = 103090709;\n    }\n  }\n  IFC4_32.IfcProject = IfcProject;\n  class IfcProjectLibrary extends IfcContext {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.Phase = Phase;\n      this.RepresentationContexts = RepresentationContexts;\n      this.UnitsInContext = UnitsInContext;\n      this.type = 653396225;\n    }\n  }\n  IFC4_32.IfcProjectLibrary = IfcProjectLibrary;\n  class IfcPropertyBoundedValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) {\n      super(expressID, Name, Specification);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.UpperBoundValue = UpperBoundValue;\n      this.LowerBoundValue = LowerBoundValue;\n      this.Unit = Unit;\n      this.SetPointValue = SetPointValue;\n      this.type = 871118103;\n    }\n  }\n  IFC4_32.IfcPropertyBoundedValue = IfcPropertyBoundedValue;\n  class IfcPropertyEnumeratedValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Specification, EnumerationValues, EnumerationReference) {\n      super(expressID, Name, Specification);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.EnumerationValues = EnumerationValues;\n      this.EnumerationReference = EnumerationReference;\n      this.type = 4166981789;\n    }\n  }\n  IFC4_32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;\n  class IfcPropertyListValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Specification, ListValues, Unit) {\n      super(expressID, Name, Specification);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.ListValues = ListValues;\n      this.Unit = Unit;\n      this.type = 2752243245;\n    }\n  }\n  IFC4_32.IfcPropertyListValue = IfcPropertyListValue;\n  class IfcPropertyReferenceValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Specification, UsageName, PropertyReference) {\n      super(expressID, Name, Specification);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.UsageName = UsageName;\n      this.PropertyReference = PropertyReference;\n      this.type = 941946838;\n    }\n  }\n  IFC4_32.IfcPropertyReferenceValue = IfcPropertyReferenceValue;\n  class IfcPropertySet extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.HasProperties = HasProperties;\n      this.type = 1451395588;\n    }\n  }\n  IFC4_32.IfcPropertySet = IfcPropertySet;\n  class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.TemplateType = TemplateType;\n      this.ApplicableEntity = ApplicableEntity;\n      this.HasPropertyTemplates = HasPropertyTemplates;\n      this.type = 492091185;\n    }\n  }\n  IFC4_32.IfcPropertySetTemplate = IfcPropertySetTemplate;\n  class IfcPropertySingleValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Specification, NominalValue, Unit) {\n      super(expressID, Name, Specification);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.NominalValue = NominalValue;\n      this.Unit = Unit;\n      this.type = 3650150729;\n    }\n  }\n  IFC4_32.IfcPropertySingleValue = IfcPropertySingleValue;\n  class IfcPropertyTableValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) {\n      super(expressID, Name, Specification);\n      this.Name = Name;\n      this.Specification = Specification;\n      this.DefiningValues = DefiningValues;\n      this.DefinedValues = DefinedValues;\n      this.Expression = Expression;\n      this.DefiningUnit = DefiningUnit;\n      this.DefinedUnit = DefinedUnit;\n      this.CurveInterpolation = CurveInterpolation;\n      this.type = 110355661;\n    }\n  }\n  IFC4_32.IfcPropertyTableValue = IfcPropertyTableValue;\n  class IfcPropertyTemplate extends IfcPropertyTemplateDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3521284610;\n    }\n  }\n  IFC4_32.IfcPropertyTemplate = IfcPropertyTemplate;\n  class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {\n      super(expressID, ProfileType, ProfileName, Position, XDim, YDim);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.WallThickness = WallThickness;\n      this.InnerFilletRadius = InnerFilletRadius;\n      this.OuterFilletRadius = OuterFilletRadius;\n      this.type = 2770003689;\n    }\n  }\n  IFC4_32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;\n  class IfcRectangularPyramid extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, XLength, YLength, Height) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.XLength = XLength;\n      this.YLength = YLength;\n      this.Height = Height;\n      this.type = 2798486643;\n    }\n  }\n  IFC4_32.IfcRectangularPyramid = IfcRectangularPyramid;\n  class IfcRectangularTrimmedSurface extends IfcBoundedSurface {\n    constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.U1 = U1;\n      this.V1 = V1;\n      this.U2 = U2;\n      this.V2 = V2;\n      this.Usense = Usense;\n      this.Vsense = Vsense;\n      this.type = 3454111270;\n    }\n  }\n  IFC4_32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;\n  class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.DefinitionType = DefinitionType;\n      this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;\n      this.type = 3765753017;\n    }\n  }\n  IFC4_32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;\n  class IfcRelAssigns extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.type = 3939117080;\n    }\n  }\n  IFC4_32.IfcRelAssigns = IfcRelAssigns;\n  class IfcRelAssignsToActor extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingActor = RelatingActor;\n      this.ActingRole = ActingRole;\n      this.type = 1683148259;\n    }\n  }\n  IFC4_32.IfcRelAssignsToActor = IfcRelAssignsToActor;\n  class IfcRelAssignsToControl extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingControl = RelatingControl;\n      this.type = 2495723537;\n    }\n  }\n  IFC4_32.IfcRelAssignsToControl = IfcRelAssignsToControl;\n  class IfcRelAssignsToGroup extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingGroup = RelatingGroup;\n      this.type = 1307041759;\n    }\n  }\n  IFC4_32.IfcRelAssignsToGroup = IfcRelAssignsToGroup;\n  class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingGroup = RelatingGroup;\n      this.Factor = Factor;\n      this.type = 1027710054;\n    }\n  }\n  IFC4_32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor;\n  class IfcRelAssignsToProcess extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingProcess = RelatingProcess;\n      this.QuantityInProcess = QuantityInProcess;\n      this.type = 4278684876;\n    }\n  }\n  IFC4_32.IfcRelAssignsToProcess = IfcRelAssignsToProcess;\n  class IfcRelAssignsToProduct extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingProduct = RelatingProduct;\n      this.type = 2857406711;\n    }\n  }\n  IFC4_32.IfcRelAssignsToProduct = IfcRelAssignsToProduct;\n  class IfcRelAssignsToResource extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingResource = RelatingResource;\n      this.type = 205026976;\n    }\n  }\n  IFC4_32.IfcRelAssignsToResource = IfcRelAssignsToResource;\n  class IfcRelAssociates extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 1865459582;\n    }\n  }\n  IFC4_32.IfcRelAssociates = IfcRelAssociates;\n  class IfcRelAssociatesApproval extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingApproval = RelatingApproval;\n      this.type = 4095574036;\n    }\n  }\n  IFC4_32.IfcRelAssociatesApproval = IfcRelAssociatesApproval;\n  class IfcRelAssociatesClassification extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingClassification = RelatingClassification;\n      this.type = 919958153;\n    }\n  }\n  IFC4_32.IfcRelAssociatesClassification = IfcRelAssociatesClassification;\n  class IfcRelAssociatesConstraint extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.Intent = Intent;\n      this.RelatingConstraint = RelatingConstraint;\n      this.type = 2728634034;\n    }\n  }\n  IFC4_32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;\n  class IfcRelAssociatesDocument extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingDocument = RelatingDocument;\n      this.type = 982818633;\n    }\n  }\n  IFC4_32.IfcRelAssociatesDocument = IfcRelAssociatesDocument;\n  class IfcRelAssociatesLibrary extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingLibrary = RelatingLibrary;\n      this.type = 3840914261;\n    }\n  }\n  IFC4_32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;\n  class IfcRelAssociatesMaterial extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingMaterial = RelatingMaterial;\n      this.type = 2655215786;\n    }\n  }\n  IFC4_32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;\n  class IfcRelAssociatesProfileDef extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingProfileDef = RelatingProfileDef;\n      this.type = 1033248425;\n    }\n  }\n  IFC4_32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef;\n  class IfcRelConnects extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 826625072;\n    }\n  }\n  IFC4_32.IfcRelConnects = IfcRelConnects;\n  class IfcRelConnectsElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.type = 1204542856;\n    }\n  }\n  IFC4_32.IfcRelConnectsElements = IfcRelConnectsElements;\n  class IfcRelConnectsPathElements extends IfcRelConnectsElements {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.RelatingPriorities = RelatingPriorities;\n      this.RelatedPriorities = RelatedPriorities;\n      this.RelatedConnectionType = RelatedConnectionType;\n      this.RelatingConnectionType = RelatingConnectionType;\n      this.type = 3945020480;\n    }\n  }\n  IFC4_32.IfcRelConnectsPathElements = IfcRelConnectsPathElements;\n  class IfcRelConnectsPortToElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingPort = RelatingPort;\n      this.RelatedElement = RelatedElement;\n      this.type = 4201705270;\n    }\n  }\n  IFC4_32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;\n  class IfcRelConnectsPorts extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingPort = RelatingPort;\n      this.RelatedPort = RelatedPort;\n      this.RealizingElement = RealizingElement;\n      this.type = 3190031847;\n    }\n  }\n  IFC4_32.IfcRelConnectsPorts = IfcRelConnectsPorts;\n  class IfcRelConnectsStructuralActivity extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedStructuralActivity = RelatedStructuralActivity;\n      this.type = 2127690289;\n    }\n  }\n  IFC4_32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;\n  class IfcRelConnectsStructuralMember extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingStructuralMember = RelatingStructuralMember;\n      this.RelatedStructuralConnection = RelatedStructuralConnection;\n      this.AppliedCondition = AppliedCondition;\n      this.AdditionalConditions = AdditionalConditions;\n      this.SupportedLength = SupportedLength;\n      this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n      this.type = 1638771189;\n    }\n  }\n  IFC4_32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;\n  class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingStructuralMember = RelatingStructuralMember;\n      this.RelatedStructuralConnection = RelatedStructuralConnection;\n      this.AppliedCondition = AppliedCondition;\n      this.AdditionalConditions = AdditionalConditions;\n      this.SupportedLength = SupportedLength;\n      this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n      this.ConnectionConstraint = ConnectionConstraint;\n      this.type = 504942748;\n    }\n  }\n  IFC4_32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;\n  class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.RealizingElements = RealizingElements;\n      this.ConnectionType = ConnectionType;\n      this.type = 3678494232;\n    }\n  }\n  IFC4_32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;\n  class IfcRelContainedInSpatialStructure extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedElements = RelatedElements;\n      this.RelatingStructure = RelatingStructure;\n      this.type = 3242617779;\n    }\n  }\n  IFC4_32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;\n  class IfcRelCoversBldgElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingBuildingElement = RelatingBuildingElement;\n      this.RelatedCoverings = RelatedCoverings;\n      this.type = 886880790;\n    }\n  }\n  IFC4_32.IfcRelCoversBldgElements = IfcRelCoversBldgElements;\n  class IfcRelCoversSpaces extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedCoverings = RelatedCoverings;\n      this.type = 2802773753;\n    }\n  }\n  IFC4_32.IfcRelCoversSpaces = IfcRelCoversSpaces;\n  class IfcRelDeclares extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingContext = RelatingContext;\n      this.RelatedDefinitions = RelatedDefinitions;\n      this.type = 2565941209;\n    }\n  }\n  IFC4_32.IfcRelDeclares = IfcRelDeclares;\n  class IfcRelDecomposes extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2551354335;\n    }\n  }\n  IFC4_32.IfcRelDecomposes = IfcRelDecomposes;\n  class IfcRelDefines extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 693640335;\n    }\n  }\n  IFC4_32.IfcRelDefines = IfcRelDefines;\n  class IfcRelDefinesByObject extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingObject = RelatingObject;\n      this.type = 1462361463;\n    }\n  }\n  IFC4_32.IfcRelDefinesByObject = IfcRelDefinesByObject;\n  class IfcRelDefinesByProperties extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingPropertyDefinition = RelatingPropertyDefinition;\n      this.type = 4186316022;\n    }\n  }\n  IFC4_32.IfcRelDefinesByProperties = IfcRelDefinesByProperties;\n  class IfcRelDefinesByTemplate extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedPropertySets = RelatedPropertySets;\n      this.RelatingTemplate = RelatingTemplate;\n      this.type = 307848117;\n    }\n  }\n  IFC4_32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate;\n  class IfcRelDefinesByType extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingType = RelatingType;\n      this.type = 781010003;\n    }\n  }\n  IFC4_32.IfcRelDefinesByType = IfcRelDefinesByType;\n  class IfcRelFillsElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingOpeningElement = RelatingOpeningElement;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.type = 3940055652;\n    }\n  }\n  IFC4_32.IfcRelFillsElement = IfcRelFillsElement;\n  class IfcRelFlowControlElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedControlElements = RelatedControlElements;\n      this.RelatingFlowElement = RelatingFlowElement;\n      this.type = 279856033;\n    }\n  }\n  IFC4_32.IfcRelFlowControlElements = IfcRelFlowControlElements;\n  class IfcRelInterferesElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.InterferenceGeometry = InterferenceGeometry;\n      this.InterferenceSpace = InterferenceSpace;\n      this.InterferenceType = InterferenceType;\n      this.ImpliedOrder = ImpliedOrder;\n      this.type = 427948657;\n    }\n  }\n  IFC4_32.IfcRelInterferesElements = IfcRelInterferesElements;\n  class IfcRelNests extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingObject = RelatingObject;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 3268803585;\n    }\n  }\n  IFC4_32.IfcRelNests = IfcRelNests;\n  class IfcRelPositions extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingPositioningElement = RelatingPositioningElement;\n      this.RelatedProducts = RelatedProducts;\n      this.type = 1441486842;\n    }\n  }\n  IFC4_32.IfcRelPositions = IfcRelPositions;\n  class IfcRelProjectsElement extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedFeatureElement = RelatedFeatureElement;\n      this.type = 750771296;\n    }\n  }\n  IFC4_32.IfcRelProjectsElement = IfcRelProjectsElement;\n  class IfcRelReferencedInSpatialStructure extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedElements = RelatedElements;\n      this.RelatingStructure = RelatingStructure;\n      this.type = 1245217292;\n    }\n  }\n  IFC4_32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;\n  class IfcRelSequence extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingProcess = RelatingProcess;\n      this.RelatedProcess = RelatedProcess;\n      this.TimeLag = TimeLag;\n      this.SequenceType = SequenceType;\n      this.UserDefinedSequenceType = UserDefinedSequenceType;\n      this.type = 4122056220;\n    }\n  }\n  IFC4_32.IfcRelSequence = IfcRelSequence;\n  class IfcRelServicesBuildings extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSystem = RelatingSystem;\n      this.RelatedBuildings = RelatedBuildings;\n      this.type = 366585022;\n    }\n  }\n  IFC4_32.IfcRelServicesBuildings = IfcRelServicesBuildings;\n  class IfcRelSpaceBoundary extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n      this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n      this.type = 3451746338;\n    }\n  }\n  IFC4_32.IfcRelSpaceBoundary = IfcRelSpaceBoundary;\n  class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n      this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n      this.ParentBoundary = ParentBoundary;\n      this.type = 3523091289;\n    }\n  }\n  IFC4_32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel;\n  class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n      this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n      this.ParentBoundary = ParentBoundary;\n      this.CorrespondingBoundary = CorrespondingBoundary;\n      this.type = 1521410863;\n    }\n  }\n  IFC4_32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel;\n  class IfcRelVoidsElement extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingBuildingElement = RelatingBuildingElement;\n      this.RelatedOpeningElement = RelatedOpeningElement;\n      this.type = 1401173127;\n    }\n  }\n  IFC4_32.IfcRelVoidsElement = IfcRelVoidsElement;\n  class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment {\n    constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) {\n      super(expressID, Transition, SameSense, ParentCurve);\n      this.Transition = Transition;\n      this.SameSense = SameSense;\n      this.ParentCurve = ParentCurve;\n      this.ParamLength = ParamLength;\n      this.type = 816062949;\n    }\n  }\n  IFC4_32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment;\n  class IfcResource extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.type = 2914609552;\n    }\n  }\n  IFC4_32.IfcResource = IfcResource;\n  class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Axis, Angle) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Axis = Axis;\n      this.Angle = Angle;\n      this.type = 1856042241;\n    }\n  }\n  IFC4_32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;\n  class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid {\n    constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) {\n      super(expressID, SweptArea, Position, Axis, Angle);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Axis = Axis;\n      this.Angle = Angle;\n      this.EndSweptArea = EndSweptArea;\n      this.type = 3243963512;\n    }\n  }\n  IFC4_32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered;\n  class IfcRightCircularCone extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Height, BottomRadius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Height = Height;\n      this.BottomRadius = BottomRadius;\n      this.type = 4158566097;\n    }\n  }\n  IFC4_32.IfcRightCircularCone = IfcRightCircularCone;\n  class IfcRightCircularCylinder extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Height, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Height = Height;\n      this.Radius = Radius;\n      this.type = 3626867408;\n    }\n  }\n  IFC4_32.IfcRightCircularCylinder = IfcRightCircularCylinder;\n  class IfcSectionedSolid extends IfcSolidModel {\n    constructor(expressID, Directrix, CrossSections) {\n      super(expressID);\n      this.Directrix = Directrix;\n      this.CrossSections = CrossSections;\n      this.type = 1862484736;\n    }\n  }\n  IFC4_32.IfcSectionedSolid = IfcSectionedSolid;\n  class IfcSectionedSolidHorizontal extends IfcSectionedSolid {\n    constructor(expressID, Directrix, CrossSections, CrossSectionPositions) {\n      super(expressID, Directrix, CrossSections);\n      this.Directrix = Directrix;\n      this.CrossSections = CrossSections;\n      this.CrossSectionPositions = CrossSectionPositions;\n      this.type = 1290935644;\n    }\n  }\n  IFC4_32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal;\n  class IfcSectionedSurface extends IfcSurface {\n    constructor(expressID, Directrix, CrossSectionPositions, CrossSections) {\n      super(expressID);\n      this.Directrix = Directrix;\n      this.CrossSectionPositions = CrossSectionPositions;\n      this.CrossSections = CrossSections;\n      this.type = 1356537516;\n    }\n  }\n  IFC4_32.IfcSectionedSurface = IfcSectionedSurface;\n  class IfcSimplePropertyTemplate extends IfcPropertyTemplate {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.TemplateType = TemplateType;\n      this.PrimaryMeasureType = PrimaryMeasureType;\n      this.SecondaryMeasureType = SecondaryMeasureType;\n      this.Enumerators = Enumerators;\n      this.PrimaryUnit = PrimaryUnit;\n      this.SecondaryUnit = SecondaryUnit;\n      this.Expression = Expression;\n      this.AccessState = AccessState;\n      this.type = 3663146110;\n    }\n  }\n  IFC4_32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate;\n  class IfcSpatialElement extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.type = 1412071761;\n    }\n  }\n  IFC4_32.IfcSpatialElement = IfcSpatialElement;\n  class IfcSpatialElementType extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 710998568;\n    }\n  }\n  IFC4_32.IfcSpatialElementType = IfcSpatialElementType;\n  class IfcSpatialStructureElement extends IfcSpatialElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.type = 2706606064;\n    }\n  }\n  IFC4_32.IfcSpatialStructureElement = IfcSpatialStructureElement;\n  class IfcSpatialStructureElementType extends IfcSpatialElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3893378262;\n    }\n  }\n  IFC4_32.IfcSpatialStructureElementType = IfcSpatialStructureElementType;\n  class IfcSpatialZone extends IfcSpatialElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.PredefinedType = PredefinedType;\n      this.type = 463610769;\n    }\n  }\n  IFC4_32.IfcSpatialZone = IfcSpatialZone;\n  class IfcSpatialZoneType extends IfcSpatialElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.LongName = LongName;\n      this.type = 2481509218;\n    }\n  }\n  IFC4_32.IfcSpatialZoneType = IfcSpatialZoneType;\n  class IfcSphere extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 451544542;\n    }\n  }\n  IFC4_32.IfcSphere = IfcSphere;\n  class IfcSphericalSurface extends IfcElementarySurface {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 4015995234;\n    }\n  }\n  IFC4_32.IfcSphericalSurface = IfcSphericalSurface;\n  class IfcSpiral extends IfcCurve {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2735484536;\n    }\n  }\n  IFC4_32.IfcSpiral = IfcSpiral;\n  class IfcStructuralActivity extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 3544373492;\n    }\n  }\n  IFC4_32.IfcStructuralActivity = IfcStructuralActivity;\n  class IfcStructuralItem extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 3136571912;\n    }\n  }\n  IFC4_32.IfcStructuralItem = IfcStructuralItem;\n  class IfcStructuralMember extends IfcStructuralItem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 530289379;\n    }\n  }\n  IFC4_32.IfcStructuralMember = IfcStructuralMember;\n  class IfcStructuralReaction extends IfcStructuralActivity {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 3689010777;\n    }\n  }\n  IFC4_32.IfcStructuralReaction = IfcStructuralReaction;\n  class IfcStructuralSurfaceMember extends IfcStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Thickness = Thickness;\n      this.type = 3979015343;\n    }\n  }\n  IFC4_32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;\n  class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Thickness = Thickness;\n      this.type = 2218152070;\n    }\n  }\n  IFC4_32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;\n  class IfcStructuralSurfaceReaction extends IfcStructuralReaction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.PredefinedType = PredefinedType;\n      this.type = 603775116;\n    }\n  }\n  IFC4_32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction;\n  class IfcSubContractResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 4095615324;\n    }\n  }\n  IFC4_32.IfcSubContractResourceType = IfcSubContractResourceType;\n  class IfcSurfaceCurve extends IfcCurve {\n    constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) {\n      super(expressID);\n      this.Curve3D = Curve3D;\n      this.AssociatedGeometry = AssociatedGeometry;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 699246055;\n    }\n  }\n  IFC4_32.IfcSurfaceCurve = IfcSurfaceCurve;\n  class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {\n      super(expressID, SweptArea, Position, Directrix, StartParam, EndParam);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Directrix = Directrix;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.ReferenceSurface = ReferenceSurface;\n      this.type = 2028607225;\n    }\n  }\n  IFC4_32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;\n  class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {\n    constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) {\n      super(expressID, SweptCurve, Position);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.ExtrudedDirection = ExtrudedDirection;\n      this.Depth = Depth;\n      this.type = 2809605785;\n    }\n  }\n  IFC4_32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;\n  class IfcSurfaceOfRevolution extends IfcSweptSurface {\n    constructor(expressID, SweptCurve, Position, AxisPosition) {\n      super(expressID, SweptCurve, Position);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.AxisPosition = AxisPosition;\n      this.type = 4124788165;\n    }\n  }\n  IFC4_32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;\n  class IfcSystemFurnitureElementType extends IfcFurnishingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1580310250;\n    }\n  }\n  IFC4_32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;\n  class IfcTask extends IfcProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Status = Status;\n      this.WorkMethod = WorkMethod;\n      this.IsMilestone = IsMilestone;\n      this.Priority = Priority;\n      this.TaskTime = TaskTime;\n      this.PredefinedType = PredefinedType;\n      this.type = 3473067441;\n    }\n  }\n  IFC4_32.IfcTask = IfcTask;\n  class IfcTaskType extends IfcTypeProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ProcessType = ProcessType;\n      this.PredefinedType = PredefinedType;\n      this.WorkMethod = WorkMethod;\n      this.type = 3206491090;\n    }\n  }\n  IFC4_32.IfcTaskType = IfcTaskType;\n  class IfcTessellatedFaceSet extends IfcTessellatedItem {\n    constructor(expressID, Coordinates, Closed) {\n      super(expressID);\n      this.Coordinates = Coordinates;\n      this.Closed = Closed;\n      this.type = 2387106220;\n    }\n  }\n  IFC4_32.IfcTessellatedFaceSet = IfcTessellatedFaceSet;\n  class IfcThirdOrderPolynomialSpiral extends IfcSpiral {\n    constructor(expressID, Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.CubicTerm = CubicTerm;\n      this.QuadraticTerm = QuadraticTerm;\n      this.LinearTerm = LinearTerm;\n      this.ConstantTerm = ConstantTerm;\n      this.type = 782932809;\n    }\n  }\n  IFC4_32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral;\n  class IfcToroidalSurface extends IfcElementarySurface {\n    constructor(expressID, Position, MajorRadius, MinorRadius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.MajorRadius = MajorRadius;\n      this.MinorRadius = MinorRadius;\n      this.type = 1935646853;\n    }\n  }\n  IFC4_32.IfcToroidalSurface = IfcToroidalSurface;\n  class IfcTransportationDeviceType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3665877780;\n    }\n  }\n  IFC4_32.IfcTransportationDeviceType = IfcTransportationDeviceType;\n  class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet {\n    constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex) {\n      super(expressID, Coordinates, Closed);\n      this.Coordinates = Coordinates;\n      this.Closed = Closed;\n      this.Normals = Normals;\n      this.CoordIndex = CoordIndex;\n      this.PnIndex = PnIndex;\n      this.type = 2916149573;\n    }\n  }\n  IFC4_32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet;\n  class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet {\n    constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) {\n      super(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex);\n      this.Coordinates = Coordinates;\n      this.Closed = Closed;\n      this.Normals = Normals;\n      this.CoordIndex = CoordIndex;\n      this.PnIndex = PnIndex;\n      this.Flags = Flags;\n      this.type = 1229763772;\n    }\n  }\n  IFC4_32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork;\n  class IfcVehicleType extends IfcTransportationDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3651464721;\n    }\n  }\n  IFC4_32.IfcVehicleType = IfcVehicleType;\n  class IfcWindowLiningProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.LiningDepth = LiningDepth;\n      this.LiningThickness = LiningThickness;\n      this.TransomThickness = TransomThickness;\n      this.MullionThickness = MullionThickness;\n      this.FirstTransomOffset = FirstTransomOffset;\n      this.SecondTransomOffset = SecondTransomOffset;\n      this.FirstMullionOffset = FirstMullionOffset;\n      this.SecondMullionOffset = SecondMullionOffset;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.LiningOffset = LiningOffset;\n      this.LiningToPanelOffsetX = LiningToPanelOffsetX;\n      this.LiningToPanelOffsetY = LiningToPanelOffsetY;\n      this.type = 336235671;\n    }\n  }\n  IFC4_32.IfcWindowLiningProperties = IfcWindowLiningProperties;\n  class IfcWindowPanelProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.OperationType = OperationType;\n      this.PanelPosition = PanelPosition;\n      this.FrameDepth = FrameDepth;\n      this.FrameThickness = FrameThickness;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 512836454;\n    }\n  }\n  IFC4_32.IfcWindowPanelProperties = IfcWindowPanelProperties;\n  class IfcActor extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheActor = TheActor;\n      this.type = 2296667514;\n    }\n  }\n  IFC4_32.IfcActor = IfcActor;\n  class IfcAdvancedBrep extends IfcManifoldSolidBrep {\n    constructor(expressID, Outer) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.type = 1635779807;\n    }\n  }\n  IFC4_32.IfcAdvancedBrep = IfcAdvancedBrep;\n  class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep {\n    constructor(expressID, Outer, Voids) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.Voids = Voids;\n      this.type = 2603310189;\n    }\n  }\n  IFC4_32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids;\n  class IfcAnnotation extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.type = 1674181508;\n    }\n  }\n  IFC4_32.IfcAnnotation = IfcAnnotation;\n  class IfcBSplineSurface extends IfcBoundedSurface {\n    constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) {\n      super(expressID);\n      this.UDegree = UDegree;\n      this.VDegree = VDegree;\n      this.ControlPointsList = ControlPointsList;\n      this.SurfaceForm = SurfaceForm;\n      this.UClosed = UClosed;\n      this.VClosed = VClosed;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 2887950389;\n    }\n  }\n  IFC4_32.IfcBSplineSurface = IfcBSplineSurface;\n  class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface {\n    constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) {\n      super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect);\n      this.UDegree = UDegree;\n      this.VDegree = VDegree;\n      this.ControlPointsList = ControlPointsList;\n      this.SurfaceForm = SurfaceForm;\n      this.UClosed = UClosed;\n      this.VClosed = VClosed;\n      this.SelfIntersect = SelfIntersect;\n      this.UMultiplicities = UMultiplicities;\n      this.VMultiplicities = VMultiplicities;\n      this.UKnots = UKnots;\n      this.VKnots = VKnots;\n      this.KnotSpec = KnotSpec;\n      this.type = 167062518;\n    }\n  }\n  IFC4_32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots;\n  class IfcBlock extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, XLength, YLength, ZLength) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.XLength = XLength;\n      this.YLength = YLength;\n      this.ZLength = ZLength;\n      this.type = 1334484129;\n    }\n  }\n  IFC4_32.IfcBlock = IfcBlock;\n  class IfcBooleanClippingResult extends IfcBooleanResult {\n    constructor(expressID, Operator, FirstOperand, SecondOperand) {\n      super(expressID, Operator, FirstOperand, SecondOperand);\n      this.Operator = Operator;\n      this.FirstOperand = FirstOperand;\n      this.SecondOperand = SecondOperand;\n      this.type = 3649129432;\n    }\n  }\n  IFC4_32.IfcBooleanClippingResult = IfcBooleanClippingResult;\n  class IfcBoundedCurve extends IfcCurve {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1260505505;\n    }\n  }\n  IFC4_32.IfcBoundedCurve = IfcBoundedCurve;\n  class IfcBuildingStorey extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.Elevation = Elevation;\n      this.type = 3124254112;\n    }\n  }\n  IFC4_32.IfcBuildingStorey = IfcBuildingStorey;\n  class IfcBuiltElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1626504194;\n    }\n  }\n  IFC4_32.IfcBuiltElementType = IfcBuiltElementType;\n  class IfcChimneyType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2197970202;\n    }\n  }\n  IFC4_32.IfcChimneyType = IfcChimneyType;\n  class IfcCircleHollowProfileDef extends IfcCircleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) {\n      super(expressID, ProfileType, ProfileName, Position, Radius);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.WallThickness = WallThickness;\n      this.type = 2937912522;\n    }\n  }\n  IFC4_32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;\n  class IfcCivilElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3893394355;\n    }\n  }\n  IFC4_32.IfcCivilElementType = IfcCivilElementType;\n  class IfcClothoid extends IfcSpiral {\n    constructor(expressID, Position, ClothoidConstant) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.ClothoidConstant = ClothoidConstant;\n      this.type = 3497074424;\n    }\n  }\n  IFC4_32.IfcClothoid = IfcClothoid;\n  class IfcColumnType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 300633059;\n    }\n  }\n  IFC4_32.IfcColumnType = IfcColumnType;\n  class IfcComplexPropertyTemplate extends IfcPropertyTemplate {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.UsageName = UsageName;\n      this.TemplateType = TemplateType;\n      this.HasPropertyTemplates = HasPropertyTemplates;\n      this.type = 3875453745;\n    }\n  }\n  IFC4_32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate;\n  class IfcCompositeCurve extends IfcBoundedCurve {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 3732776249;\n    }\n  }\n  IFC4_32.IfcCompositeCurve = IfcCompositeCurve;\n  class IfcCompositeCurveOnSurface extends IfcCompositeCurve {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 15328376;\n    }\n  }\n  IFC4_32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface;\n  class IfcConic extends IfcCurve {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2510884976;\n    }\n  }\n  IFC4_32.IfcConic = IfcConic;\n  class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 2185764099;\n    }\n  }\n  IFC4_32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType;\n  class IfcConstructionMaterialResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 4105962743;\n    }\n  }\n  IFC4_32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType;\n  class IfcConstructionProductResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 1525564444;\n    }\n  }\n  IFC4_32.IfcConstructionProductResourceType = IfcConstructionProductResourceType;\n  class IfcConstructionResource extends IfcResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.type = 2559216714;\n    }\n  }\n  IFC4_32.IfcConstructionResource = IfcConstructionResource;\n  class IfcControl extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.type = 3293443760;\n    }\n  }\n  IFC4_32.IfcControl = IfcControl;\n  class IfcCosineSpiral extends IfcSpiral {\n    constructor(expressID, Position, CosineTerm, ConstantTerm) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.CosineTerm = CosineTerm;\n      this.ConstantTerm = ConstantTerm;\n      this.type = 2000195564;\n    }\n  }\n  IFC4_32.IfcCosineSpiral = IfcCosineSpiral;\n  class IfcCostItem extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.CostValues = CostValues;\n      this.CostQuantities = CostQuantities;\n      this.type = 3895139033;\n    }\n  }\n  IFC4_32.IfcCostItem = IfcCostItem;\n  class IfcCostSchedule extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.SubmittedOn = SubmittedOn;\n      this.UpdateDate = UpdateDate;\n      this.type = 1419761937;\n    }\n  }\n  IFC4_32.IfcCostSchedule = IfcCostSchedule;\n  class IfcCourseType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4189326743;\n    }\n  }\n  IFC4_32.IfcCourseType = IfcCourseType;\n  class IfcCoveringType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1916426348;\n    }\n  }\n  IFC4_32.IfcCoveringType = IfcCoveringType;\n  class IfcCrewResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 3295246426;\n    }\n  }\n  IFC4_32.IfcCrewResource = IfcCrewResource;\n  class IfcCurtainWallType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1457835157;\n    }\n  }\n  IFC4_32.IfcCurtainWallType = IfcCurtainWallType;\n  class IfcCylindricalSurface extends IfcElementarySurface {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 1213902940;\n    }\n  }\n  IFC4_32.IfcCylindricalSurface = IfcCylindricalSurface;\n  class IfcDeepFoundationType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1306400036;\n    }\n  }\n  IFC4_32.IfcDeepFoundationType = IfcDeepFoundationType;\n  class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {\n      super(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Directrix = Directrix;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.FixedReference = FixedReference;\n      this.type = 4234616927;\n    }\n  }\n  IFC4_32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid;\n  class IfcDistributionElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3256556792;\n    }\n  }\n  IFC4_32.IfcDistributionElementType = IfcDistributionElementType;\n  class IfcDistributionFlowElementType extends IfcDistributionElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3849074793;\n    }\n  }\n  IFC4_32.IfcDistributionFlowElementType = IfcDistributionFlowElementType;\n  class IfcDoorLiningProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.LiningDepth = LiningDepth;\n      this.LiningThickness = LiningThickness;\n      this.ThresholdDepth = ThresholdDepth;\n      this.ThresholdThickness = ThresholdThickness;\n      this.TransomThickness = TransomThickness;\n      this.TransomOffset = TransomOffset;\n      this.LiningOffset = LiningOffset;\n      this.ThresholdOffset = ThresholdOffset;\n      this.CasingThickness = CasingThickness;\n      this.CasingDepth = CasingDepth;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.LiningToPanelOffsetX = LiningToPanelOffsetX;\n      this.LiningToPanelOffsetY = LiningToPanelOffsetY;\n      this.type = 2963535650;\n    }\n  }\n  IFC4_32.IfcDoorLiningProperties = IfcDoorLiningProperties;\n  class IfcDoorPanelProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.PanelDepth = PanelDepth;\n      this.PanelOperation = PanelOperation;\n      this.PanelWidth = PanelWidth;\n      this.PanelPosition = PanelPosition;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 1714330368;\n    }\n  }\n  IFC4_32.IfcDoorPanelProperties = IfcDoorPanelProperties;\n  class IfcDoorType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.OperationType = OperationType;\n      this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n      this.UserDefinedOperationType = UserDefinedOperationType;\n      this.type = 2323601079;\n    }\n  }\n  IFC4_32.IfcDoorType = IfcDoorType;\n  class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 445594917;\n    }\n  }\n  IFC4_32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;\n  class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 4006246654;\n    }\n  }\n  IFC4_32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;\n  class IfcElement extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1758889154;\n    }\n  }\n  IFC4_32.IfcElement = IfcElement;\n  class IfcElementAssembly extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.AssemblyPlace = AssemblyPlace;\n      this.PredefinedType = PredefinedType;\n      this.type = 4123344466;\n    }\n  }\n  IFC4_32.IfcElementAssembly = IfcElementAssembly;\n  class IfcElementAssemblyType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2397081782;\n    }\n  }\n  IFC4_32.IfcElementAssemblyType = IfcElementAssemblyType;\n  class IfcElementComponent extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1623761950;\n    }\n  }\n  IFC4_32.IfcElementComponent = IfcElementComponent;\n  class IfcElementComponentType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2590856083;\n    }\n  }\n  IFC4_32.IfcElementComponentType = IfcElementComponentType;\n  class IfcEllipse extends IfcConic {\n    constructor(expressID, Position, SemiAxis1, SemiAxis2) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.SemiAxis1 = SemiAxis1;\n      this.SemiAxis2 = SemiAxis2;\n      this.type = 1704287377;\n    }\n  }\n  IFC4_32.IfcEllipse = IfcEllipse;\n  class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2107101300;\n    }\n  }\n  IFC4_32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;\n  class IfcEngineType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 132023988;\n    }\n  }\n  IFC4_32.IfcEngineType = IfcEngineType;\n  class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3174744832;\n    }\n  }\n  IFC4_32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;\n  class IfcEvaporatorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3390157468;\n    }\n  }\n  IFC4_32.IfcEvaporatorType = IfcEvaporatorType;\n  class IfcEvent extends IfcProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.PredefinedType = PredefinedType;\n      this.EventTriggerType = EventTriggerType;\n      this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;\n      this.EventOccurenceTime = EventOccurenceTime;\n      this.type = 4148101412;\n    }\n  }\n  IFC4_32.IfcEvent = IfcEvent;\n  class IfcExternalSpatialStructureElement extends IfcSpatialElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.type = 2853485674;\n    }\n  }\n  IFC4_32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement;\n  class IfcFacetedBrep extends IfcManifoldSolidBrep {\n    constructor(expressID, Outer) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.type = 807026263;\n    }\n  }\n  IFC4_32.IfcFacetedBrep = IfcFacetedBrep;\n  class IfcFacetedBrepWithVoids extends IfcFacetedBrep {\n    constructor(expressID, Outer, Voids) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.Voids = Voids;\n      this.type = 3737207727;\n    }\n  }\n  IFC4_32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;\n  class IfcFacility extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.type = 24185140;\n    }\n  }\n  IFC4_32.IfcFacility = IfcFacility;\n  class IfcFacilityPart extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.UsageType = UsageType;\n      this.type = 1310830890;\n    }\n  }\n  IFC4_32.IfcFacilityPart = IfcFacilityPart;\n  class IfcFacilityPartCommon extends IfcFacilityPart {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.UsageType = UsageType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4228831410;\n    }\n  }\n  IFC4_32.IfcFacilityPartCommon = IfcFacilityPartCommon;\n  class IfcFastener extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 647756555;\n    }\n  }\n  IFC4_32.IfcFastener = IfcFastener;\n  class IfcFastenerType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2489546625;\n    }\n  }\n  IFC4_32.IfcFastenerType = IfcFastenerType;\n  class IfcFeatureElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2827207264;\n    }\n  }\n  IFC4_32.IfcFeatureElement = IfcFeatureElement;\n  class IfcFeatureElementAddition extends IfcFeatureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2143335405;\n    }\n  }\n  IFC4_32.IfcFeatureElementAddition = IfcFeatureElementAddition;\n  class IfcFeatureElementSubtraction extends IfcFeatureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1287392070;\n    }\n  }\n  IFC4_32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;\n  class IfcFlowControllerType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3907093117;\n    }\n  }\n  IFC4_32.IfcFlowControllerType = IfcFlowControllerType;\n  class IfcFlowFittingType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3198132628;\n    }\n  }\n  IFC4_32.IfcFlowFittingType = IfcFlowFittingType;\n  class IfcFlowMeterType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3815607619;\n    }\n  }\n  IFC4_32.IfcFlowMeterType = IfcFlowMeterType;\n  class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1482959167;\n    }\n  }\n  IFC4_32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;\n  class IfcFlowSegmentType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1834744321;\n    }\n  }\n  IFC4_32.IfcFlowSegmentType = IfcFlowSegmentType;\n  class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1339347760;\n    }\n  }\n  IFC4_32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;\n  class IfcFlowTerminalType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2297155007;\n    }\n  }\n  IFC4_32.IfcFlowTerminalType = IfcFlowTerminalType;\n  class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3009222698;\n    }\n  }\n  IFC4_32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;\n  class IfcFootingType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1893162501;\n    }\n  }\n  IFC4_32.IfcFootingType = IfcFootingType;\n  class IfcFurnishingElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 263784265;\n    }\n  }\n  IFC4_32.IfcFurnishingElement = IfcFurnishingElement;\n  class IfcFurniture extends IfcFurnishingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1509553395;\n    }\n  }\n  IFC4_32.IfcFurniture = IfcFurniture;\n  class IfcGeographicElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3493046030;\n    }\n  }\n  IFC4_32.IfcGeographicElement = IfcGeographicElement;\n  class IfcGeotechnicalElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 4230923436;\n    }\n  }\n  IFC4_32.IfcGeotechnicalElement = IfcGeotechnicalElement;\n  class IfcGeotechnicalStratum extends IfcGeotechnicalElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1594536857;\n    }\n  }\n  IFC4_32.IfcGeotechnicalStratum = IfcGeotechnicalStratum;\n  class IfcGradientCurve extends IfcCompositeCurve {\n    constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.BaseCurve = BaseCurve;\n      this.EndPoint = EndPoint;\n      this.type = 2898700619;\n    }\n  }\n  IFC4_32.IfcGradientCurve = IfcGradientCurve;\n  class IfcGroup extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2706460486;\n    }\n  }\n  IFC4_32.IfcGroup = IfcGroup;\n  class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1251058090;\n    }\n  }\n  IFC4_32.IfcHeatExchangerType = IfcHeatExchangerType;\n  class IfcHumidifierType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1806887404;\n    }\n  }\n  IFC4_32.IfcHumidifierType = IfcHumidifierType;\n  class IfcImpactProtectionDevice extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2568555532;\n    }\n  }\n  IFC4_32.IfcImpactProtectionDevice = IfcImpactProtectionDevice;\n  class IfcImpactProtectionDeviceType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3948183225;\n    }\n  }\n  IFC4_32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType;\n  class IfcIndexedPolyCurve extends IfcBoundedCurve {\n    constructor(expressID, Points, Segments, SelfIntersect) {\n      super(expressID);\n      this.Points = Points;\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 2571569899;\n    }\n  }\n  IFC4_32.IfcIndexedPolyCurve = IfcIndexedPolyCurve;\n  class IfcInterceptorType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3946677679;\n    }\n  }\n  IFC4_32.IfcInterceptorType = IfcInterceptorType;\n  class IfcIntersectionCurve extends IfcSurfaceCurve {\n    constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) {\n      super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation);\n      this.Curve3D = Curve3D;\n      this.AssociatedGeometry = AssociatedGeometry;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 3113134337;\n    }\n  }\n  IFC4_32.IfcIntersectionCurve = IfcIntersectionCurve;\n  class IfcInventory extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.Jurisdiction = Jurisdiction;\n      this.ResponsiblePersons = ResponsiblePersons;\n      this.LastUpdateDate = LastUpdateDate;\n      this.CurrentValue = CurrentValue;\n      this.OriginalValue = OriginalValue;\n      this.type = 2391368822;\n    }\n  }\n  IFC4_32.IfcInventory = IfcInventory;\n  class IfcJunctionBoxType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4288270099;\n    }\n  }\n  IFC4_32.IfcJunctionBoxType = IfcJunctionBoxType;\n  class IfcKerbType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.Mountable = Mountable;\n      this.type = 679976338;\n    }\n  }\n  IFC4_32.IfcKerbType = IfcKerbType;\n  class IfcLaborResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 3827777499;\n    }\n  }\n  IFC4_32.IfcLaborResource = IfcLaborResource;\n  class IfcLampType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1051575348;\n    }\n  }\n  IFC4_32.IfcLampType = IfcLampType;\n  class IfcLightFixtureType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1161773419;\n    }\n  }\n  IFC4_32.IfcLightFixtureType = IfcLightFixtureType;\n  class IfcLinearElement extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 2176059722;\n    }\n  }\n  IFC4_32.IfcLinearElement = IfcLinearElement;\n  class IfcLiquidTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1770583370;\n    }\n  }\n  IFC4_32.IfcLiquidTerminalType = IfcLiquidTerminalType;\n  class IfcMarineFacility extends IfcFacility {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.PredefinedType = PredefinedType;\n      this.type = 525669439;\n    }\n  }\n  IFC4_32.IfcMarineFacility = IfcMarineFacility;\n  class IfcMarinePart extends IfcFacilityPart {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.UsageType = UsageType;\n      this.PredefinedType = PredefinedType;\n      this.type = 976884017;\n    }\n  }\n  IFC4_32.IfcMarinePart = IfcMarinePart;\n  class IfcMechanicalFastener extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.NominalDiameter = NominalDiameter;\n      this.NominalLength = NominalLength;\n      this.PredefinedType = PredefinedType;\n      this.type = 377706215;\n    }\n  }\n  IFC4_32.IfcMechanicalFastener = IfcMechanicalFastener;\n  class IfcMechanicalFastenerType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.NominalLength = NominalLength;\n      this.type = 2108223431;\n    }\n  }\n  IFC4_32.IfcMechanicalFastenerType = IfcMechanicalFastenerType;\n  class IfcMedicalDeviceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1114901282;\n    }\n  }\n  IFC4_32.IfcMedicalDeviceType = IfcMedicalDeviceType;\n  class IfcMemberType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3181161470;\n    }\n  }\n  IFC4_32.IfcMemberType = IfcMemberType;\n  class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1950438474;\n    }\n  }\n  IFC4_32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType;\n  class IfcMooringDeviceType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 710110818;\n    }\n  }\n  IFC4_32.IfcMooringDeviceType = IfcMooringDeviceType;\n  class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 977012517;\n    }\n  }\n  IFC4_32.IfcMotorConnectionType = IfcMotorConnectionType;\n  class IfcNavigationElementType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 506776471;\n    }\n  }\n  IFC4_32.IfcNavigationElementType = IfcNavigationElementType;\n  class IfcOccupant extends IfcActor {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheActor = TheActor;\n      this.PredefinedType = PredefinedType;\n      this.type = 4143007308;\n    }\n  }\n  IFC4_32.IfcOccupant = IfcOccupant;\n  class IfcOpeningElement extends IfcFeatureElementSubtraction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3588315303;\n    }\n  }\n  IFC4_32.IfcOpeningElement = IfcOpeningElement;\n  class IfcOutletType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2837617999;\n    }\n  }\n  IFC4_32.IfcOutletType = IfcOutletType;\n  class IfcPavementType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 514975943;\n    }\n  }\n  IFC4_32.IfcPavementType = IfcPavementType;\n  class IfcPerformanceHistory extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LifeCyclePhase = LifeCyclePhase;\n      this.PredefinedType = PredefinedType;\n      this.type = 2382730787;\n    }\n  }\n  IFC4_32.IfcPerformanceHistory = IfcPerformanceHistory;\n  class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.OperationType = OperationType;\n      this.PanelPosition = PanelPosition;\n      this.FrameDepth = FrameDepth;\n      this.FrameThickness = FrameThickness;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 3566463478;\n    }\n  }\n  IFC4_32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;\n  class IfcPermit extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.LongDescription = LongDescription;\n      this.type = 3327091369;\n    }\n  }\n  IFC4_32.IfcPermit = IfcPermit;\n  class IfcPileType extends IfcDeepFoundationType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1158309216;\n    }\n  }\n  IFC4_32.IfcPileType = IfcPileType;\n  class IfcPipeFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 804291784;\n    }\n  }\n  IFC4_32.IfcPipeFittingType = IfcPipeFittingType;\n  class IfcPipeSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4231323485;\n    }\n  }\n  IFC4_32.IfcPipeSegmentType = IfcPipeSegmentType;\n  class IfcPlateType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4017108033;\n    }\n  }\n  IFC4_32.IfcPlateType = IfcPlateType;\n  class IfcPolygonalFaceSet extends IfcTessellatedFaceSet {\n    constructor(expressID, Coordinates, Closed, Faces, PnIndex) {\n      super(expressID, Coordinates, Closed);\n      this.Coordinates = Coordinates;\n      this.Closed = Closed;\n      this.Faces = Faces;\n      this.PnIndex = PnIndex;\n      this.type = 2839578677;\n    }\n  }\n  IFC4_32.IfcPolygonalFaceSet = IfcPolygonalFaceSet;\n  class IfcPolyline extends IfcBoundedCurve {\n    constructor(expressID, Points) {\n      super(expressID);\n      this.Points = Points;\n      this.type = 3724593414;\n    }\n  }\n  IFC4_32.IfcPolyline = IfcPolyline;\n  class IfcPort extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 3740093272;\n    }\n  }\n  IFC4_32.IfcPort = IfcPort;\n  class IfcPositioningElement extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 1946335990;\n    }\n  }\n  IFC4_32.IfcPositioningElement = IfcPositioningElement;\n  class IfcProcedure extends IfcProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.PredefinedType = PredefinedType;\n      this.type = 2744685151;\n    }\n  }\n  IFC4_32.IfcProcedure = IfcProcedure;\n  class IfcProjectOrder extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.LongDescription = LongDescription;\n      this.type = 2904328755;\n    }\n  }\n  IFC4_32.IfcProjectOrder = IfcProjectOrder;\n  class IfcProjectionElement extends IfcFeatureElementAddition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3651124850;\n    }\n  }\n  IFC4_32.IfcProjectionElement = IfcProjectionElement;\n  class IfcProtectiveDeviceType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1842657554;\n    }\n  }\n  IFC4_32.IfcProtectiveDeviceType = IfcProtectiveDeviceType;\n  class IfcPumpType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2250791053;\n    }\n  }\n  IFC4_32.IfcPumpType = IfcPumpType;\n  class IfcRailType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1763565496;\n    }\n  }\n  IFC4_32.IfcRailType = IfcRailType;\n  class IfcRailingType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2893384427;\n    }\n  }\n  IFC4_32.IfcRailingType = IfcRailingType;\n  class IfcRailway extends IfcFacility {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3992365140;\n    }\n  }\n  IFC4_32.IfcRailway = IfcRailway;\n  class IfcRailwayPart extends IfcFacilityPart {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.UsageType = UsageType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1891881377;\n    }\n  }\n  IFC4_32.IfcRailwayPart = IfcRailwayPart;\n  class IfcRampFlightType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2324767716;\n    }\n  }\n  IFC4_32.IfcRampFlightType = IfcRampFlightType;\n  class IfcRampType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1469900589;\n    }\n  }\n  IFC4_32.IfcRampType = IfcRampType;\n  class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots {\n    constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) {\n      super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec);\n      this.UDegree = UDegree;\n      this.VDegree = VDegree;\n      this.ControlPointsList = ControlPointsList;\n      this.SurfaceForm = SurfaceForm;\n      this.UClosed = UClosed;\n      this.VClosed = VClosed;\n      this.SelfIntersect = SelfIntersect;\n      this.UMultiplicities = UMultiplicities;\n      this.VMultiplicities = VMultiplicities;\n      this.UKnots = UKnots;\n      this.VKnots = VKnots;\n      this.KnotSpec = KnotSpec;\n      this.WeightsData = WeightsData;\n      this.type = 683857671;\n    }\n  }\n  IFC4_32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots;\n  class IfcReferent extends IfcPositioningElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.type = 4021432810;\n    }\n  }\n  IFC4_32.IfcReferent = IfcReferent;\n  class IfcReinforcingElement extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.type = 3027567501;\n    }\n  }\n  IFC4_32.IfcReinforcingElement = IfcReinforcingElement;\n  class IfcReinforcingElementType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 964333572;\n    }\n  }\n  IFC4_32.IfcReinforcingElementType = IfcReinforcingElementType;\n  class IfcReinforcingMesh extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.MeshLength = MeshLength;\n      this.MeshWidth = MeshWidth;\n      this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n      this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n      this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n      this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n      this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n      this.TransverseBarSpacing = TransverseBarSpacing;\n      this.PredefinedType = PredefinedType;\n      this.type = 2320036040;\n    }\n  }\n  IFC4_32.IfcReinforcingMesh = IfcReinforcingMesh;\n  class IfcReinforcingMeshType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.MeshLength = MeshLength;\n      this.MeshWidth = MeshWidth;\n      this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n      this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n      this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n      this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n      this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n      this.TransverseBarSpacing = TransverseBarSpacing;\n      this.BendingShapeCode = BendingShapeCode;\n      this.BendingParameters = BendingParameters;\n      this.type = 2310774935;\n    }\n  }\n  IFC4_32.IfcReinforcingMeshType = IfcReinforcingMeshType;\n  class IfcRelAdheresToElement extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedSurfaceFeatures = RelatedSurfaceFeatures;\n      this.type = 3818125796;\n    }\n  }\n  IFC4_32.IfcRelAdheresToElement = IfcRelAdheresToElement;\n  class IfcRelAggregates extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingObject = RelatingObject;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 160246688;\n    }\n  }\n  IFC4_32.IfcRelAggregates = IfcRelAggregates;\n  class IfcRoad extends IfcFacility {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.PredefinedType = PredefinedType;\n      this.type = 146592293;\n    }\n  }\n  IFC4_32.IfcRoad = IfcRoad;\n  class IfcRoadPart extends IfcFacilityPart {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.UsageType = UsageType;\n      this.PredefinedType = PredefinedType;\n      this.type = 550521510;\n    }\n  }\n  IFC4_32.IfcRoadPart = IfcRoadPart;\n  class IfcRoofType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2781568857;\n    }\n  }\n  IFC4_32.IfcRoofType = IfcRoofType;\n  class IfcSanitaryTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1768891740;\n    }\n  }\n  IFC4_32.IfcSanitaryTerminalType = IfcSanitaryTerminalType;\n  class IfcSeamCurve extends IfcSurfaceCurve {\n    constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) {\n      super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation);\n      this.Curve3D = Curve3D;\n      this.AssociatedGeometry = AssociatedGeometry;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 2157484638;\n    }\n  }\n  IFC4_32.IfcSeamCurve = IfcSeamCurve;\n  class IfcSecondOrderPolynomialSpiral extends IfcSpiral {\n    constructor(expressID, Position, QuadraticTerm, LinearTerm, ConstantTerm) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.QuadraticTerm = QuadraticTerm;\n      this.LinearTerm = LinearTerm;\n      this.ConstantTerm = ConstantTerm;\n      this.type = 3649235739;\n    }\n  }\n  IFC4_32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral;\n  class IfcSegmentedReferenceCurve extends IfcCompositeCurve {\n    constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.BaseCurve = BaseCurve;\n      this.EndPoint = EndPoint;\n      this.type = 544395925;\n    }\n  }\n  IFC4_32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve;\n  class IfcSeventhOrderPolynomialSpiral extends IfcSpiral {\n    constructor(expressID, Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.SepticTerm = SepticTerm;\n      this.SexticTerm = SexticTerm;\n      this.QuinticTerm = QuinticTerm;\n      this.QuarticTerm = QuarticTerm;\n      this.CubicTerm = CubicTerm;\n      this.QuadraticTerm = QuadraticTerm;\n      this.LinearTerm = LinearTerm;\n      this.ConstantTerm = ConstantTerm;\n      this.type = 1027922057;\n    }\n  }\n  IFC4_32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral;\n  class IfcShadingDeviceType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4074543187;\n    }\n  }\n  IFC4_32.IfcShadingDeviceType = IfcShadingDeviceType;\n  class IfcSign extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 33720170;\n    }\n  }\n  IFC4_32.IfcSign = IfcSign;\n  class IfcSignType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3599934289;\n    }\n  }\n  IFC4_32.IfcSignType = IfcSignType;\n  class IfcSignalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1894708472;\n    }\n  }\n  IFC4_32.IfcSignalType = IfcSignalType;\n  class IfcSineSpiral extends IfcSpiral {\n    constructor(expressID, Position, SineTerm, LinearTerm, ConstantTerm) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.SineTerm = SineTerm;\n      this.LinearTerm = LinearTerm;\n      this.ConstantTerm = ConstantTerm;\n      this.type = 42703149;\n    }\n  }\n  IFC4_32.IfcSineSpiral = IfcSineSpiral;\n  class IfcSite extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.RefLatitude = RefLatitude;\n      this.RefLongitude = RefLongitude;\n      this.RefElevation = RefElevation;\n      this.LandTitleNumber = LandTitleNumber;\n      this.SiteAddress = SiteAddress;\n      this.type = 4097777520;\n    }\n  }\n  IFC4_32.IfcSite = IfcSite;\n  class IfcSlabType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2533589738;\n    }\n  }\n  IFC4_32.IfcSlabType = IfcSlabType;\n  class IfcSolarDeviceType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1072016465;\n    }\n  }\n  IFC4_32.IfcSolarDeviceType = IfcSolarDeviceType;\n  class IfcSpace extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.PredefinedType = PredefinedType;\n      this.ElevationWithFlooring = ElevationWithFlooring;\n      this.type = 3856911033;\n    }\n  }\n  IFC4_32.IfcSpace = IfcSpace;\n  class IfcSpaceHeaterType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1305183839;\n    }\n  }\n  IFC4_32.IfcSpaceHeaterType = IfcSpaceHeaterType;\n  class IfcSpaceType extends IfcSpatialStructureElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.LongName = LongName;\n      this.type = 3812236995;\n    }\n  }\n  IFC4_32.IfcSpaceType = IfcSpaceType;\n  class IfcStackTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3112655638;\n    }\n  }\n  IFC4_32.IfcStackTerminalType = IfcStackTerminalType;\n  class IfcStairFlightType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1039846685;\n    }\n  }\n  IFC4_32.IfcStairFlightType = IfcStairFlightType;\n  class IfcStairType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 338393293;\n    }\n  }\n  IFC4_32.IfcStairType = IfcStairType;\n  class IfcStructuralAction extends IfcStructuralActivity {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.type = 682877961;\n    }\n  }\n  IFC4_32.IfcStructuralAction = IfcStructuralAction;\n  class IfcStructuralConnection extends IfcStructuralItem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.type = 1179482911;\n    }\n  }\n  IFC4_32.IfcStructuralConnection = IfcStructuralConnection;\n  class IfcStructuralCurveAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.PredefinedType = PredefinedType;\n      this.type = 1004757350;\n    }\n  }\n  IFC4_32.IfcStructuralCurveAction = IfcStructuralCurveAction;\n  class IfcStructuralCurveConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.AxisDirection = AxisDirection;\n      this.type = 4243806635;\n    }\n  }\n  IFC4_32.IfcStructuralCurveConnection = IfcStructuralCurveConnection;\n  class IfcStructuralCurveMember extends IfcStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Axis = Axis;\n      this.type = 214636428;\n    }\n  }\n  IFC4_32.IfcStructuralCurveMember = IfcStructuralCurveMember;\n  class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Axis = Axis;\n      this.type = 2445595289;\n    }\n  }\n  IFC4_32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;\n  class IfcStructuralCurveReaction extends IfcStructuralReaction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.PredefinedType = PredefinedType;\n      this.type = 2757150158;\n    }\n  }\n  IFC4_32.IfcStructuralCurveReaction = IfcStructuralCurveReaction;\n  class IfcStructuralLinearAction extends IfcStructuralCurveAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.PredefinedType = PredefinedType;\n      this.type = 1807405624;\n    }\n  }\n  IFC4_32.IfcStructuralLinearAction = IfcStructuralLinearAction;\n  class IfcStructuralLoadGroup extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.ActionType = ActionType;\n      this.ActionSource = ActionSource;\n      this.Coefficient = Coefficient;\n      this.Purpose = Purpose;\n      this.type = 1252848954;\n    }\n  }\n  IFC4_32.IfcStructuralLoadGroup = IfcStructuralLoadGroup;\n  class IfcStructuralPointAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.type = 2082059205;\n    }\n  }\n  IFC4_32.IfcStructuralPointAction = IfcStructuralPointAction;\n  class IfcStructuralPointConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n      this.type = 734778138;\n    }\n  }\n  IFC4_32.IfcStructuralPointConnection = IfcStructuralPointConnection;\n  class IfcStructuralPointReaction extends IfcStructuralReaction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 1235345126;\n    }\n  }\n  IFC4_32.IfcStructuralPointReaction = IfcStructuralPointReaction;\n  class IfcStructuralResultGroup extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheoryType = TheoryType;\n      this.ResultForLoadGroup = ResultForLoadGroup;\n      this.IsLinear = IsLinear;\n      this.type = 2986769608;\n    }\n  }\n  IFC4_32.IfcStructuralResultGroup = IfcStructuralResultGroup;\n  class IfcStructuralSurfaceAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.PredefinedType = PredefinedType;\n      this.type = 3657597509;\n    }\n  }\n  IFC4_32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction;\n  class IfcStructuralSurfaceConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.type = 1975003073;\n    }\n  }\n  IFC4_32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;\n  class IfcSubContractResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 148013059;\n    }\n  }\n  IFC4_32.IfcSubContractResource = IfcSubContractResource;\n  class IfcSurfaceFeature extends IfcFeatureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3101698114;\n    }\n  }\n  IFC4_32.IfcSurfaceFeature = IfcSurfaceFeature;\n  class IfcSwitchingDeviceType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2315554128;\n    }\n  }\n  IFC4_32.IfcSwitchingDeviceType = IfcSwitchingDeviceType;\n  class IfcSystem extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2254336722;\n    }\n  }\n  IFC4_32.IfcSystem = IfcSystem;\n  class IfcSystemFurnitureElement extends IfcFurnishingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 413509423;\n    }\n  }\n  IFC4_32.IfcSystemFurnitureElement = IfcSystemFurnitureElement;\n  class IfcTankType extends IfcFlowStorageDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 5716631;\n    }\n  }\n  IFC4_32.IfcTankType = IfcTankType;\n  class IfcTendon extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.TensionForce = TensionForce;\n      this.PreStress = PreStress;\n      this.FrictionCoefficient = FrictionCoefficient;\n      this.AnchorageSlip = AnchorageSlip;\n      this.MinCurvatureRadius = MinCurvatureRadius;\n      this.type = 3824725483;\n    }\n  }\n  IFC4_32.IfcTendon = IfcTendon;\n  class IfcTendonAnchor extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.PredefinedType = PredefinedType;\n      this.type = 2347447852;\n    }\n  }\n  IFC4_32.IfcTendonAnchor = IfcTendonAnchor;\n  class IfcTendonAnchorType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3081323446;\n    }\n  }\n  IFC4_32.IfcTendonAnchorType = IfcTendonAnchorType;\n  class IfcTendonConduit extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.PredefinedType = PredefinedType;\n      this.type = 3663046924;\n    }\n  }\n  IFC4_32.IfcTendonConduit = IfcTendonConduit;\n  class IfcTendonConduitType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2281632017;\n    }\n  }\n  IFC4_32.IfcTendonConduitType = IfcTendonConduitType;\n  class IfcTendonType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.SheathDiameter = SheathDiameter;\n      this.type = 2415094496;\n    }\n  }\n  IFC4_32.IfcTendonType = IfcTendonType;\n  class IfcTrackElementType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 618700268;\n    }\n  }\n  IFC4_32.IfcTrackElementType = IfcTrackElementType;\n  class IfcTransformerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1692211062;\n    }\n  }\n  IFC4_32.IfcTransformerType = IfcTransformerType;\n  class IfcTransportElementType extends IfcTransportationDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2097647324;\n    }\n  }\n  IFC4_32.IfcTransportElementType = IfcTransportElementType;\n  class IfcTransportationDevice extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1953115116;\n    }\n  }\n  IFC4_32.IfcTransportationDevice = IfcTransportationDevice;\n  class IfcTrimmedCurve extends IfcBoundedCurve {\n    constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.Trim1 = Trim1;\n      this.Trim2 = Trim2;\n      this.SenseAgreement = SenseAgreement;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 3593883385;\n    }\n  }\n  IFC4_32.IfcTrimmedCurve = IfcTrimmedCurve;\n  class IfcTubeBundleType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1600972822;\n    }\n  }\n  IFC4_32.IfcTubeBundleType = IfcTubeBundleType;\n  class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1911125066;\n    }\n  }\n  IFC4_32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;\n  class IfcValveType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 728799441;\n    }\n  }\n  IFC4_32.IfcValveType = IfcValveType;\n  class IfcVehicle extends IfcTransportationDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 840318589;\n    }\n  }\n  IFC4_32.IfcVehicle = IfcVehicle;\n  class IfcVibrationDamper extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1530820697;\n    }\n  }\n  IFC4_32.IfcVibrationDamper = IfcVibrationDamper;\n  class IfcVibrationDamperType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3956297820;\n    }\n  }\n  IFC4_32.IfcVibrationDamperType = IfcVibrationDamperType;\n  class IfcVibrationIsolator extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2391383451;\n    }\n  }\n  IFC4_32.IfcVibrationIsolator = IfcVibrationIsolator;\n  class IfcVibrationIsolatorType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3313531582;\n    }\n  }\n  IFC4_32.IfcVibrationIsolatorType = IfcVibrationIsolatorType;\n  class IfcVirtualElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2769231204;\n    }\n  }\n  IFC4_32.IfcVirtualElement = IfcVirtualElement;\n  class IfcVoidingFeature extends IfcFeatureElementSubtraction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 926996030;\n    }\n  }\n  IFC4_32.IfcVoidingFeature = IfcVoidingFeature;\n  class IfcWallType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1898987631;\n    }\n  }\n  IFC4_32.IfcWallType = IfcWallType;\n  class IfcWasteTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1133259667;\n    }\n  }\n  IFC4_32.IfcWasteTerminalType = IfcWasteTerminalType;\n  class IfcWindowType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.PartitioningType = PartitioningType;\n      this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n      this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n      this.type = 4009809668;\n    }\n  }\n  IFC4_32.IfcWindowType = IfcWindowType;\n  class IfcWorkCalendar extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.WorkingTimes = WorkingTimes;\n      this.ExceptionTimes = ExceptionTimes;\n      this.PredefinedType = PredefinedType;\n      this.type = 4088093105;\n    }\n  }\n  IFC4_32.IfcWorkCalendar = IfcWorkCalendar;\n  class IfcWorkControl extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.type = 1028945134;\n    }\n  }\n  IFC4_32.IfcWorkControl = IfcWorkControl;\n  class IfcWorkPlan extends IfcWorkControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.PredefinedType = PredefinedType;\n      this.type = 4218914973;\n    }\n  }\n  IFC4_32.IfcWorkPlan = IfcWorkPlan;\n  class IfcWorkSchedule extends IfcWorkControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.PredefinedType = PredefinedType;\n      this.type = 3342526732;\n    }\n  }\n  IFC4_32.IfcWorkSchedule = IfcWorkSchedule;\n  class IfcZone extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.type = 1033361043;\n    }\n  }\n  IFC4_32.IfcZone = IfcZone;\n  class IfcActionRequest extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.LongDescription = LongDescription;\n      this.type = 3821786052;\n    }\n  }\n  IFC4_32.IfcActionRequest = IfcActionRequest;\n  class IfcAirTerminalBoxType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1411407467;\n    }\n  }\n  IFC4_32.IfcAirTerminalBoxType = IfcAirTerminalBoxType;\n  class IfcAirTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3352864051;\n    }\n  }\n  IFC4_32.IfcAirTerminalType = IfcAirTerminalType;\n  class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1871374353;\n    }\n  }\n  IFC4_32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;\n  class IfcAlignmentCant extends IfcLinearElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.RailHeadDistance = RailHeadDistance;\n      this.type = 4266260250;\n    }\n  }\n  IFC4_32.IfcAlignmentCant = IfcAlignmentCant;\n  class IfcAlignmentHorizontal extends IfcLinearElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 1545765605;\n    }\n  }\n  IFC4_32.IfcAlignmentHorizontal = IfcAlignmentHorizontal;\n  class IfcAlignmentSegment extends IfcLinearElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.DesignParameters = DesignParameters;\n      this.type = 317615605;\n    }\n  }\n  IFC4_32.IfcAlignmentSegment = IfcAlignmentSegment;\n  class IfcAlignmentVertical extends IfcLinearElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 1662888072;\n    }\n  }\n  IFC4_32.IfcAlignmentVertical = IfcAlignmentVertical;\n  class IfcAsset extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.OriginalValue = OriginalValue;\n      this.CurrentValue = CurrentValue;\n      this.TotalReplacementCost = TotalReplacementCost;\n      this.Owner = Owner;\n      this.User = User;\n      this.ResponsiblePerson = ResponsiblePerson;\n      this.IncorporationDate = IncorporationDate;\n      this.DepreciatedValue = DepreciatedValue;\n      this.type = 3460190687;\n    }\n  }\n  IFC4_32.IfcAsset = IfcAsset;\n  class IfcAudioVisualApplianceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1532957894;\n    }\n  }\n  IFC4_32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType;\n  class IfcBSplineCurve extends IfcBoundedCurve {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {\n      super(expressID);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 1967976161;\n    }\n  }\n  IFC4_32.IfcBSplineCurve = IfcBSplineCurve;\n  class IfcBSplineCurveWithKnots extends IfcBSplineCurve {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) {\n      super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.KnotMultiplicities = KnotMultiplicities;\n      this.Knots = Knots;\n      this.KnotSpec = KnotSpec;\n      this.type = 2461110595;\n    }\n  }\n  IFC4_32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots;\n  class IfcBeamType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 819618141;\n    }\n  }\n  IFC4_32.IfcBeamType = IfcBeamType;\n  class IfcBearingType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3649138523;\n    }\n  }\n  IFC4_32.IfcBearingType = IfcBearingType;\n  class IfcBoilerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 231477066;\n    }\n  }\n  IFC4_32.IfcBoilerType = IfcBoilerType;\n  class IfcBoundaryCurve extends IfcCompositeCurveOnSurface {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 1136057603;\n    }\n  }\n  IFC4_32.IfcBoundaryCurve = IfcBoundaryCurve;\n  class IfcBridge extends IfcFacility {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.PredefinedType = PredefinedType;\n      this.type = 644574406;\n    }\n  }\n  IFC4_32.IfcBridge = IfcBridge;\n  class IfcBridgePart extends IfcFacilityPart {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.UsageType = UsageType;\n      this.PredefinedType = PredefinedType;\n      this.type = 963979645;\n    }\n  }\n  IFC4_32.IfcBridgePart = IfcBridgePart;\n  class IfcBuilding extends IfcFacility {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.ElevationOfRefHeight = ElevationOfRefHeight;\n      this.ElevationOfTerrain = ElevationOfTerrain;\n      this.BuildingAddress = BuildingAddress;\n      this.type = 4031249490;\n    }\n  }\n  IFC4_32.IfcBuilding = IfcBuilding;\n  class IfcBuildingElementPart extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2979338954;\n    }\n  }\n  IFC4_32.IfcBuildingElementPart = IfcBuildingElementPart;\n  class IfcBuildingElementPartType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 39481116;\n    }\n  }\n  IFC4_32.IfcBuildingElementPartType = IfcBuildingElementPartType;\n  class IfcBuildingElementProxyType extends IfcBuiltElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1909888760;\n    }\n  }\n  IFC4_32.IfcBuildingElementProxyType = IfcBuildingElementProxyType;\n  class IfcBuildingSystem extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.LongName = LongName;\n      this.type = 1177604601;\n    }\n  }\n  IFC4_32.IfcBuildingSystem = IfcBuildingSystem;\n  class IfcBuiltElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1876633798;\n    }\n  }\n  IFC4_32.IfcBuiltElement = IfcBuiltElement;\n  class IfcBuiltSystem extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.LongName = LongName;\n      this.type = 3862327254;\n    }\n  }\n  IFC4_32.IfcBuiltSystem = IfcBuiltSystem;\n  class IfcBurnerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2188180465;\n    }\n  }\n  IFC4_32.IfcBurnerType = IfcBurnerType;\n  class IfcCableCarrierFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 395041908;\n    }\n  }\n  IFC4_32.IfcCableCarrierFittingType = IfcCableCarrierFittingType;\n  class IfcCableCarrierSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3293546465;\n    }\n  }\n  IFC4_32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;\n  class IfcCableFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2674252688;\n    }\n  }\n  IFC4_32.IfcCableFittingType = IfcCableFittingType;\n  class IfcCableSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1285652485;\n    }\n  }\n  IFC4_32.IfcCableSegmentType = IfcCableSegmentType;\n  class IfcCaissonFoundationType extends IfcDeepFoundationType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3203706013;\n    }\n  }\n  IFC4_32.IfcCaissonFoundationType = IfcCaissonFoundationType;\n  class IfcChillerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2951183804;\n    }\n  }\n  IFC4_32.IfcChillerType = IfcChillerType;\n  class IfcChimney extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3296154744;\n    }\n  }\n  IFC4_32.IfcChimney = IfcChimney;\n  class IfcCircle extends IfcConic {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 2611217952;\n    }\n  }\n  IFC4_32.IfcCircle = IfcCircle;\n  class IfcCivilElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1677625105;\n    }\n  }\n  IFC4_32.IfcCivilElement = IfcCivilElement;\n  class IfcCoilType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2301859152;\n    }\n  }\n  IFC4_32.IfcCoilType = IfcCoilType;\n  class IfcColumn extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 843113511;\n    }\n  }\n  IFC4_32.IfcColumn = IfcColumn;\n  class IfcCommunicationsApplianceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 400855858;\n    }\n  }\n  IFC4_32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType;\n  class IfcCompressorType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3850581409;\n    }\n  }\n  IFC4_32.IfcCompressorType = IfcCompressorType;\n  class IfcCondenserType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2816379211;\n    }\n  }\n  IFC4_32.IfcCondenserType = IfcCondenserType;\n  class IfcConstructionEquipmentResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 3898045240;\n    }\n  }\n  IFC4_32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;\n  class IfcConstructionMaterialResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 1060000209;\n    }\n  }\n  IFC4_32.IfcConstructionMaterialResource = IfcConstructionMaterialResource;\n  class IfcConstructionProductResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 488727124;\n    }\n  }\n  IFC4_32.IfcConstructionProductResource = IfcConstructionProductResource;\n  class IfcConveyorSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2940368186;\n    }\n  }\n  IFC4_32.IfcConveyorSegmentType = IfcConveyorSegmentType;\n  class IfcCooledBeamType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 335055490;\n    }\n  }\n  IFC4_32.IfcCooledBeamType = IfcCooledBeamType;\n  class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2954562838;\n    }\n  }\n  IFC4_32.IfcCoolingTowerType = IfcCoolingTowerType;\n  class IfcCourse extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1502416096;\n    }\n  }\n  IFC4_32.IfcCourse = IfcCourse;\n  class IfcCovering extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1973544240;\n    }\n  }\n  IFC4_32.IfcCovering = IfcCovering;\n  class IfcCurtainWall extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3495092785;\n    }\n  }\n  IFC4_32.IfcCurtainWall = IfcCurtainWall;\n  class IfcDamperType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3961806047;\n    }\n  }\n  IFC4_32.IfcDamperType = IfcDamperType;\n  class IfcDeepFoundation extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3426335179;\n    }\n  }\n  IFC4_32.IfcDeepFoundation = IfcDeepFoundation;\n  class IfcDiscreteAccessory extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1335981549;\n    }\n  }\n  IFC4_32.IfcDiscreteAccessory = IfcDiscreteAccessory;\n  class IfcDiscreteAccessoryType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2635815018;\n    }\n  }\n  IFC4_32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;\n  class IfcDistributionBoardType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 479945903;\n    }\n  }\n  IFC4_32.IfcDistributionBoardType = IfcDistributionBoardType;\n  class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1599208980;\n    }\n  }\n  IFC4_32.IfcDistributionChamberElementType = IfcDistributionChamberElementType;\n  class IfcDistributionControlElementType extends IfcDistributionElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2063403501;\n    }\n  }\n  IFC4_32.IfcDistributionControlElementType = IfcDistributionControlElementType;\n  class IfcDistributionElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1945004755;\n    }\n  }\n  IFC4_32.IfcDistributionElement = IfcDistributionElement;\n  class IfcDistributionFlowElement extends IfcDistributionElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3040386961;\n    }\n  }\n  IFC4_32.IfcDistributionFlowElement = IfcDistributionFlowElement;\n  class IfcDistributionPort extends IfcPort {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.FlowDirection = FlowDirection;\n      this.PredefinedType = PredefinedType;\n      this.SystemType = SystemType;\n      this.type = 3041715199;\n    }\n  }\n  IFC4_32.IfcDistributionPort = IfcDistributionPort;\n  class IfcDistributionSystem extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.PredefinedType = PredefinedType;\n      this.type = 3205830791;\n    }\n  }\n  IFC4_32.IfcDistributionSystem = IfcDistributionSystem;\n  class IfcDoor extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OverallHeight = OverallHeight;\n      this.OverallWidth = OverallWidth;\n      this.PredefinedType = PredefinedType;\n      this.OperationType = OperationType;\n      this.UserDefinedOperationType = UserDefinedOperationType;\n      this.type = 395920057;\n    }\n  }\n  IFC4_32.IfcDoor = IfcDoor;\n  class IfcDuctFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 869906466;\n    }\n  }\n  IFC4_32.IfcDuctFittingType = IfcDuctFittingType;\n  class IfcDuctSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3760055223;\n    }\n  }\n  IFC4_32.IfcDuctSegmentType = IfcDuctSegmentType;\n  class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2030761528;\n    }\n  }\n  IFC4_32.IfcDuctSilencerType = IfcDuctSilencerType;\n  class IfcEarthworksCut extends IfcFeatureElementSubtraction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3071239417;\n    }\n  }\n  IFC4_32.IfcEarthworksCut = IfcEarthworksCut;\n  class IfcEarthworksElement extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1077100507;\n    }\n  }\n  IFC4_32.IfcEarthworksElement = IfcEarthworksElement;\n  class IfcEarthworksFill extends IfcEarthworksElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3376911765;\n    }\n  }\n  IFC4_32.IfcEarthworksFill = IfcEarthworksFill;\n  class IfcElectricApplianceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 663422040;\n    }\n  }\n  IFC4_32.IfcElectricApplianceType = IfcElectricApplianceType;\n  class IfcElectricDistributionBoardType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2417008758;\n    }\n  }\n  IFC4_32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType;\n  class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3277789161;\n    }\n  }\n  IFC4_32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;\n  class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2142170206;\n    }\n  }\n  IFC4_32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType;\n  class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1534661035;\n    }\n  }\n  IFC4_32.IfcElectricGeneratorType = IfcElectricGeneratorType;\n  class IfcElectricMotorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1217240411;\n    }\n  }\n  IFC4_32.IfcElectricMotorType = IfcElectricMotorType;\n  class IfcElectricTimeControlType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 712377611;\n    }\n  }\n  IFC4_32.IfcElectricTimeControlType = IfcElectricTimeControlType;\n  class IfcEnergyConversionDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1658829314;\n    }\n  }\n  IFC4_32.IfcEnergyConversionDevice = IfcEnergyConversionDevice;\n  class IfcEngine extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2814081492;\n    }\n  }\n  IFC4_32.IfcEngine = IfcEngine;\n  class IfcEvaporativeCooler extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3747195512;\n    }\n  }\n  IFC4_32.IfcEvaporativeCooler = IfcEvaporativeCooler;\n  class IfcEvaporator extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 484807127;\n    }\n  }\n  IFC4_32.IfcEvaporator = IfcEvaporator;\n  class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.PredefinedType = PredefinedType;\n      this.type = 1209101575;\n    }\n  }\n  IFC4_32.IfcExternalSpatialElement = IfcExternalSpatialElement;\n  class IfcFanType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 346874300;\n    }\n  }\n  IFC4_32.IfcFanType = IfcFanType;\n  class IfcFilterType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1810631287;\n    }\n  }\n  IFC4_32.IfcFilterType = IfcFilterType;\n  class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4222183408;\n    }\n  }\n  IFC4_32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;\n  class IfcFlowController extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2058353004;\n    }\n  }\n  IFC4_32.IfcFlowController = IfcFlowController;\n  class IfcFlowFitting extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 4278956645;\n    }\n  }\n  IFC4_32.IfcFlowFitting = IfcFlowFitting;\n  class IfcFlowInstrumentType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4037862832;\n    }\n  }\n  IFC4_32.IfcFlowInstrumentType = IfcFlowInstrumentType;\n  class IfcFlowMeter extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2188021234;\n    }\n  }\n  IFC4_32.IfcFlowMeter = IfcFlowMeter;\n  class IfcFlowMovingDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3132237377;\n    }\n  }\n  IFC4_32.IfcFlowMovingDevice = IfcFlowMovingDevice;\n  class IfcFlowSegment extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 987401354;\n    }\n  }\n  IFC4_32.IfcFlowSegment = IfcFlowSegment;\n  class IfcFlowStorageDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 707683696;\n    }\n  }\n  IFC4_32.IfcFlowStorageDevice = IfcFlowStorageDevice;\n  class IfcFlowTerminal extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2223149337;\n    }\n  }\n  IFC4_32.IfcFlowTerminal = IfcFlowTerminal;\n  class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3508470533;\n    }\n  }\n  IFC4_32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;\n  class IfcFooting extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 900683007;\n    }\n  }\n  IFC4_32.IfcFooting = IfcFooting;\n  class IfcGeotechnicalAssembly extends IfcGeotechnicalElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2713699986;\n    }\n  }\n  IFC4_32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly;\n  class IfcGrid extends IfcPositioningElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.UAxes = UAxes;\n      this.VAxes = VAxes;\n      this.WAxes = WAxes;\n      this.PredefinedType = PredefinedType;\n      this.type = 3009204131;\n    }\n  }\n  IFC4_32.IfcGrid = IfcGrid;\n  class IfcHeatExchanger extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3319311131;\n    }\n  }\n  IFC4_32.IfcHeatExchanger = IfcHeatExchanger;\n  class IfcHumidifier extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2068733104;\n    }\n  }\n  IFC4_32.IfcHumidifier = IfcHumidifier;\n  class IfcInterceptor extends IfcFlowTreatmentDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4175244083;\n    }\n  }\n  IFC4_32.IfcInterceptor = IfcInterceptor;\n  class IfcJunctionBox extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2176052936;\n    }\n  }\n  IFC4_32.IfcJunctionBox = IfcJunctionBox;\n  class IfcKerb extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.Mountable = Mountable;\n      this.type = 2696325953;\n    }\n  }\n  IFC4_32.IfcKerb = IfcKerb;\n  class IfcLamp extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 76236018;\n    }\n  }\n  IFC4_32.IfcLamp = IfcLamp;\n  class IfcLightFixture extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 629592764;\n    }\n  }\n  IFC4_32.IfcLightFixture = IfcLightFixture;\n  class IfcLinearPositioningElement extends IfcPositioningElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 1154579445;\n    }\n  }\n  IFC4_32.IfcLinearPositioningElement = IfcLinearPositioningElement;\n  class IfcLiquidTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1638804497;\n    }\n  }\n  IFC4_32.IfcLiquidTerminal = IfcLiquidTerminal;\n  class IfcMedicalDevice extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1437502449;\n    }\n  }\n  IFC4_32.IfcMedicalDevice = IfcMedicalDevice;\n  class IfcMember extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1073191201;\n    }\n  }\n  IFC4_32.IfcMember = IfcMember;\n  class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2078563270;\n    }\n  }\n  IFC4_32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance;\n  class IfcMooringDevice extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 234836483;\n    }\n  }\n  IFC4_32.IfcMooringDevice = IfcMooringDevice;\n  class IfcMotorConnection extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2474470126;\n    }\n  }\n  IFC4_32.IfcMotorConnection = IfcMotorConnection;\n  class IfcNavigationElement extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2182337498;\n    }\n  }\n  IFC4_32.IfcNavigationElement = IfcNavigationElement;\n  class IfcOuterBoundaryCurve extends IfcBoundaryCurve {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 144952367;\n    }\n  }\n  IFC4_32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve;\n  class IfcOutlet extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3694346114;\n    }\n  }\n  IFC4_32.IfcOutlet = IfcOutlet;\n  class IfcPavement extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1383356374;\n    }\n  }\n  IFC4_32.IfcPavement = IfcPavement;\n  class IfcPile extends IfcDeepFoundation {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.ConstructionType = ConstructionType;\n      this.type = 1687234759;\n    }\n  }\n  IFC4_32.IfcPile = IfcPile;\n  class IfcPipeFitting extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 310824031;\n    }\n  }\n  IFC4_32.IfcPipeFitting = IfcPipeFitting;\n  class IfcPipeSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3612865200;\n    }\n  }\n  IFC4_32.IfcPipeSegment = IfcPipeSegment;\n  class IfcPlate extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3171933400;\n    }\n  }\n  IFC4_32.IfcPlate = IfcPlate;\n  class IfcProtectiveDevice extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 738039164;\n    }\n  }\n  IFC4_32.IfcProtectiveDevice = IfcProtectiveDevice;\n  class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 655969474;\n    }\n  }\n  IFC4_32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType;\n  class IfcPump extends IfcFlowMovingDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 90941305;\n    }\n  }\n  IFC4_32.IfcPump = IfcPump;\n  class IfcRail extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3290496277;\n    }\n  }\n  IFC4_32.IfcRail = IfcRail;\n  class IfcRailing extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2262370178;\n    }\n  }\n  IFC4_32.IfcRailing = IfcRailing;\n  class IfcRamp extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3024970846;\n    }\n  }\n  IFC4_32.IfcRamp = IfcRamp;\n  class IfcRampFlight extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3283111854;\n    }\n  }\n  IFC4_32.IfcRampFlight = IfcRampFlight;\n  class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) {\n      super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.KnotMultiplicities = KnotMultiplicities;\n      this.Knots = Knots;\n      this.KnotSpec = KnotSpec;\n      this.WeightsData = WeightsData;\n      this.type = 1232101972;\n    }\n  }\n  IFC4_32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots;\n  class IfcReinforcedSoil extends IfcEarthworksElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3798194928;\n    }\n  }\n  IFC4_32.IfcReinforcedSoil = IfcReinforcedSoil;\n  class IfcReinforcingBar extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.BarLength = BarLength;\n      this.PredefinedType = PredefinedType;\n      this.BarSurface = BarSurface;\n      this.type = 979691226;\n    }\n  }\n  IFC4_32.IfcReinforcingBar = IfcReinforcingBar;\n  class IfcReinforcingBarType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.BarLength = BarLength;\n      this.BarSurface = BarSurface;\n      this.BendingShapeCode = BendingShapeCode;\n      this.BendingParameters = BendingParameters;\n      this.type = 2572171363;\n    }\n  }\n  IFC4_32.IfcReinforcingBarType = IfcReinforcingBarType;\n  class IfcRoof extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2016517767;\n    }\n  }\n  IFC4_32.IfcRoof = IfcRoof;\n  class IfcSanitaryTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3053780830;\n    }\n  }\n  IFC4_32.IfcSanitaryTerminal = IfcSanitaryTerminal;\n  class IfcSensorType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1783015770;\n    }\n  }\n  IFC4_32.IfcSensorType = IfcSensorType;\n  class IfcShadingDevice extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1329646415;\n    }\n  }\n  IFC4_32.IfcShadingDevice = IfcShadingDevice;\n  class IfcSignal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 991950508;\n    }\n  }\n  IFC4_32.IfcSignal = IfcSignal;\n  class IfcSlab extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1529196076;\n    }\n  }\n  IFC4_32.IfcSlab = IfcSlab;\n  class IfcSolarDevice extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3420628829;\n    }\n  }\n  IFC4_32.IfcSolarDevice = IfcSolarDevice;\n  class IfcSpaceHeater extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1999602285;\n    }\n  }\n  IFC4_32.IfcSpaceHeater = IfcSpaceHeater;\n  class IfcStackTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1404847402;\n    }\n  }\n  IFC4_32.IfcStackTerminal = IfcStackTerminal;\n  class IfcStair extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 331165859;\n    }\n  }\n  IFC4_32.IfcStair = IfcStair;\n  class IfcStairFlight extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.NumberOfRisers = NumberOfRisers;\n      this.NumberOfTreads = NumberOfTreads;\n      this.RiserHeight = RiserHeight;\n      this.TreadLength = TreadLength;\n      this.PredefinedType = PredefinedType;\n      this.type = 4252922144;\n    }\n  }\n  IFC4_32.IfcStairFlight = IfcStairFlight;\n  class IfcStructuralAnalysisModel extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.OrientationOf2DPlane = OrientationOf2DPlane;\n      this.LoadedBy = LoadedBy;\n      this.HasResults = HasResults;\n      this.SharedPlacement = SharedPlacement;\n      this.type = 2515109513;\n    }\n  }\n  IFC4_32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;\n  class IfcStructuralLoadCase extends IfcStructuralLoadGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.ActionType = ActionType;\n      this.ActionSource = ActionSource;\n      this.Coefficient = Coefficient;\n      this.Purpose = Purpose;\n      this.SelfWeightCoefficients = SelfWeightCoefficients;\n      this.type = 385403989;\n    }\n  }\n  IFC4_32.IfcStructuralLoadCase = IfcStructuralLoadCase;\n  class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.PredefinedType = PredefinedType;\n      this.type = 1621171031;\n    }\n  }\n  IFC4_32.IfcStructuralPlanarAction = IfcStructuralPlanarAction;\n  class IfcSwitchingDevice extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1162798199;\n    }\n  }\n  IFC4_32.IfcSwitchingDevice = IfcSwitchingDevice;\n  class IfcTank extends IfcFlowStorageDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 812556717;\n    }\n  }\n  IFC4_32.IfcTank = IfcTank;\n  class IfcTrackElement extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3425753595;\n    }\n  }\n  IFC4_32.IfcTrackElement = IfcTrackElement;\n  class IfcTransformer extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3825984169;\n    }\n  }\n  IFC4_32.IfcTransformer = IfcTransformer;\n  class IfcTransportElement extends IfcTransportationDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1620046519;\n    }\n  }\n  IFC4_32.IfcTransportElement = IfcTransportElement;\n  class IfcTubeBundle extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3026737570;\n    }\n  }\n  IFC4_32.IfcTubeBundle = IfcTubeBundle;\n  class IfcUnitaryControlElementType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3179687236;\n    }\n  }\n  IFC4_32.IfcUnitaryControlElementType = IfcUnitaryControlElementType;\n  class IfcUnitaryEquipment extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4292641817;\n    }\n  }\n  IFC4_32.IfcUnitaryEquipment = IfcUnitaryEquipment;\n  class IfcValve extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4207607924;\n    }\n  }\n  IFC4_32.IfcValve = IfcValve;\n  class IfcWall extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2391406946;\n    }\n  }\n  IFC4_32.IfcWall = IfcWall;\n  class IfcWallStandardCase extends IfcWall {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3512223829;\n    }\n  }\n  IFC4_32.IfcWallStandardCase = IfcWallStandardCase;\n  class IfcWasteTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4237592921;\n    }\n  }\n  IFC4_32.IfcWasteTerminal = IfcWasteTerminal;\n  class IfcWindow extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OverallHeight = OverallHeight;\n      this.OverallWidth = OverallWidth;\n      this.PredefinedType = PredefinedType;\n      this.PartitioningType = PartitioningType;\n      this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n      this.type = 3304561284;\n    }\n  }\n  IFC4_32.IfcWindow = IfcWindow;\n  class IfcActuatorType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2874132201;\n    }\n  }\n  IFC4_32.IfcActuatorType = IfcActuatorType;\n  class IfcAirTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1634111441;\n    }\n  }\n  IFC4_32.IfcAirTerminal = IfcAirTerminal;\n  class IfcAirTerminalBox extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 177149247;\n    }\n  }\n  IFC4_32.IfcAirTerminalBox = IfcAirTerminalBox;\n  class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2056796094;\n    }\n  }\n  IFC4_32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery;\n  class IfcAlarmType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3001207471;\n    }\n  }\n  IFC4_32.IfcAlarmType = IfcAlarmType;\n  class IfcAlignment extends IfcLinearPositioningElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.type = 325726236;\n    }\n  }\n  IFC4_32.IfcAlignment = IfcAlignment;\n  class IfcAudioVisualAppliance extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 277319702;\n    }\n  }\n  IFC4_32.IfcAudioVisualAppliance = IfcAudioVisualAppliance;\n  class IfcBeam extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 753842376;\n    }\n  }\n  IFC4_32.IfcBeam = IfcBeam;\n  class IfcBearing extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4196446775;\n    }\n  }\n  IFC4_32.IfcBearing = IfcBearing;\n  class IfcBoiler extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 32344328;\n    }\n  }\n  IFC4_32.IfcBoiler = IfcBoiler;\n  class IfcBorehole extends IfcGeotechnicalAssembly {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3314249567;\n    }\n  }\n  IFC4_32.IfcBorehole = IfcBorehole;\n  class IfcBuildingElementProxy extends IfcBuiltElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1095909175;\n    }\n  }\n  IFC4_32.IfcBuildingElementProxy = IfcBuildingElementProxy;\n  class IfcBurner extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2938176219;\n    }\n  }\n  IFC4_32.IfcBurner = IfcBurner;\n  class IfcCableCarrierFitting extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 635142910;\n    }\n  }\n  IFC4_32.IfcCableCarrierFitting = IfcCableCarrierFitting;\n  class IfcCableCarrierSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3758799889;\n    }\n  }\n  IFC4_32.IfcCableCarrierSegment = IfcCableCarrierSegment;\n  class IfcCableFitting extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1051757585;\n    }\n  }\n  IFC4_32.IfcCableFitting = IfcCableFitting;\n  class IfcCableSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4217484030;\n    }\n  }\n  IFC4_32.IfcCableSegment = IfcCableSegment;\n  class IfcCaissonFoundation extends IfcDeepFoundation {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3999819293;\n    }\n  }\n  IFC4_32.IfcCaissonFoundation = IfcCaissonFoundation;\n  class IfcChiller extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3902619387;\n    }\n  }\n  IFC4_32.IfcChiller = IfcChiller;\n  class IfcCoil extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 639361253;\n    }\n  }\n  IFC4_32.IfcCoil = IfcCoil;\n  class IfcCommunicationsAppliance extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3221913625;\n    }\n  }\n  IFC4_32.IfcCommunicationsAppliance = IfcCommunicationsAppliance;\n  class IfcCompressor extends IfcFlowMovingDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3571504051;\n    }\n  }\n  IFC4_32.IfcCompressor = IfcCompressor;\n  class IfcCondenser extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2272882330;\n    }\n  }\n  IFC4_32.IfcCondenser = IfcCondenser;\n  class IfcControllerType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 578613899;\n    }\n  }\n  IFC4_32.IfcControllerType = IfcControllerType;\n  class IfcConveyorSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3460952963;\n    }\n  }\n  IFC4_32.IfcConveyorSegment = IfcConveyorSegment;\n  class IfcCooledBeam extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4136498852;\n    }\n  }\n  IFC4_32.IfcCooledBeam = IfcCooledBeam;\n  class IfcCoolingTower extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3640358203;\n    }\n  }\n  IFC4_32.IfcCoolingTower = IfcCoolingTower;\n  class IfcDamper extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4074379575;\n    }\n  }\n  IFC4_32.IfcDamper = IfcDamper;\n  class IfcDistributionBoard extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3693000487;\n    }\n  }\n  IFC4_32.IfcDistributionBoard = IfcDistributionBoard;\n  class IfcDistributionChamberElement extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1052013943;\n    }\n  }\n  IFC4_32.IfcDistributionChamberElement = IfcDistributionChamberElement;\n  class IfcDistributionCircuit extends IfcDistributionSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.PredefinedType = PredefinedType;\n      this.type = 562808652;\n    }\n  }\n  IFC4_32.IfcDistributionCircuit = IfcDistributionCircuit;\n  class IfcDistributionControlElement extends IfcDistributionElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1062813311;\n    }\n  }\n  IFC4_32.IfcDistributionControlElement = IfcDistributionControlElement;\n  class IfcDuctFitting extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 342316401;\n    }\n  }\n  IFC4_32.IfcDuctFitting = IfcDuctFitting;\n  class IfcDuctSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3518393246;\n    }\n  }\n  IFC4_32.IfcDuctSegment = IfcDuctSegment;\n  class IfcDuctSilencer extends IfcFlowTreatmentDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1360408905;\n    }\n  }\n  IFC4_32.IfcDuctSilencer = IfcDuctSilencer;\n  class IfcElectricAppliance extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1904799276;\n    }\n  }\n  IFC4_32.IfcElectricAppliance = IfcElectricAppliance;\n  class IfcElectricDistributionBoard extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 862014818;\n    }\n  }\n  IFC4_32.IfcElectricDistributionBoard = IfcElectricDistributionBoard;\n  class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3310460725;\n    }\n  }\n  IFC4_32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice;\n  class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 24726584;\n    }\n  }\n  IFC4_32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice;\n  class IfcElectricGenerator extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 264262732;\n    }\n  }\n  IFC4_32.IfcElectricGenerator = IfcElectricGenerator;\n  class IfcElectricMotor extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 402227799;\n    }\n  }\n  IFC4_32.IfcElectricMotor = IfcElectricMotor;\n  class IfcElectricTimeControl extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1003880860;\n    }\n  }\n  IFC4_32.IfcElectricTimeControl = IfcElectricTimeControl;\n  class IfcFan extends IfcFlowMovingDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3415622556;\n    }\n  }\n  IFC4_32.IfcFan = IfcFan;\n  class IfcFilter extends IfcFlowTreatmentDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 819412036;\n    }\n  }\n  IFC4_32.IfcFilter = IfcFilter;\n  class IfcFireSuppressionTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1426591983;\n    }\n  }\n  IFC4_32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal;\n  class IfcFlowInstrument extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 182646315;\n    }\n  }\n  IFC4_32.IfcFlowInstrument = IfcFlowInstrument;\n  class IfcGeomodel extends IfcGeotechnicalAssembly {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2680139844;\n    }\n  }\n  IFC4_32.IfcGeomodel = IfcGeomodel;\n  class IfcGeoslice extends IfcGeotechnicalAssembly {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1971632696;\n    }\n  }\n  IFC4_32.IfcGeoslice = IfcGeoslice;\n  class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2295281155;\n    }\n  }\n  IFC4_32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit;\n  class IfcSensor extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4086658281;\n    }\n  }\n  IFC4_32.IfcSensor = IfcSensor;\n  class IfcUnitaryControlElement extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 630975310;\n    }\n  }\n  IFC4_32.IfcUnitaryControlElement = IfcUnitaryControlElement;\n  class IfcActuator extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4288193352;\n    }\n  }\n  IFC4_32.IfcActuator = IfcActuator;\n  class IfcAlarm extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3087945054;\n    }\n  }\n  IFC4_32.IfcAlarm = IfcAlarm;\n  class IfcController extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 25142252;\n    }\n  }\n  IFC4_32.IfcController = IfcController;\n})(IFC4_3 || (IFC4_3 = {}));\nSchemaNames[3] = \"IFC4\";\nFromRawLineData[3] = {\n  3630933823: (id, v) => new IFC4.IfcActorRole(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value)),\n  618182010: (id, v) => new IFC4.IfcAddress(id, v[0], !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  639542469: (id, v) => new IFC4.IfcApplication(id, new Handle(v[0].value), new IFC4.IfcLabel(v[1].value), new IFC4.IfcLabel(v[2].value), new IFC4.IfcIdentifier(v[3].value)),\n  411424972: (id, v) => new IFC4.IfcAppliedValue(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcDate(v[4].value), !v[5] ? null : new IFC4.IfcDate(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : v[9].map((p) => new Handle(p.value))),\n  130549933: (id, v) => new IFC4.IfcApproval(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : new IFC4.IfcDateTime(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  4037036970: (id, v) => new IFC4.IfcBoundaryCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)),\n  1560379544: (id, v) => new IFC4.IfcBoundaryEdgeCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])),\n  3367102660: (id, v) => new IFC4.IfcBoundaryFaceCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3])),\n  1387855156: (id, v) => new IFC4.IfcBoundaryNodeCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])),\n  2069777674: (id, v) => new IFC4.IfcBoundaryNodeConditionWarping(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6]), !v[7] ? null : TypeInitialiser(3, v[7])),\n  2859738748: (id, _) => new IFC4.IfcConnectionGeometry(id),\n  2614616156: (id, v) => new IFC4.IfcConnectionPointGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  2732653382: (id, v) => new IFC4.IfcConnectionSurfaceGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  775493141: (id, v) => new IFC4.IfcConnectionVolumeGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  1959218052: (id, v) => new IFC4.IfcConstraint(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value)),\n  1785450214: (id, v) => new IFC4.IfcCoordinateOperation(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1466758467: (id, v) => new IFC4.IfcCoordinateReferenceSystem(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new IFC4.IfcIdentifier(v[3].value)),\n  602808272: (id, v) => new IFC4.IfcCostValue(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcDate(v[4].value), !v[5] ? null : new IFC4.IfcDate(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : v[9].map((p) => new Handle(p.value))),\n  1765591967: (id, v) => new IFC4.IfcDerivedUnit(id, v[0].map((p) => new Handle(p.value)), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  1045800335: (id, v) => new IFC4.IfcDerivedUnitElement(id, new Handle(v[0].value), v[1].value),\n  2949456006: (id, v) => new IFC4.IfcDimensionalExponents(id, v[0].value, v[1].value, v[2].value, v[3].value, v[4].value, v[5].value, v[6].value),\n  4294318154: (id, _) => new IFC4.IfcExternalInformation(id),\n  3200245327: (id, v) => new IFC4.IfcExternalReference(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  2242383968: (id, v) => new IFC4.IfcExternallyDefinedHatchStyle(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  1040185647: (id, v) => new IFC4.IfcExternallyDefinedSurfaceStyle(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  3548104201: (id, v) => new IFC4.IfcExternallyDefinedTextFont(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  852622518: (id, v) => new IFC4.IfcGridAxis(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), new IFC4.IfcBoolean(v[2].value)),\n  3020489413: (id, v) => new IFC4.IfcIrregularTimeSeriesValue(id, new IFC4.IfcDateTime(v[0].value), v[1].map((p) => TypeInitialiser(3, p))),\n  2655187982: (id, v) => new IFC4.IfcLibraryInformation(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new IFC4.IfcDateTime(v[3].value), !v[4] ? null : new IFC4.IfcURIReference(v[4].value), !v[5] ? null : new IFC4.IfcText(v[5].value)),\n  3452421091: (id, v) => new IFC4.IfcLibraryReference(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLanguageId(v[4].value), !v[5] ? null : new Handle(v[5].value)),\n  4162380809: (id, v) => new IFC4.IfcLightDistributionData(id, new IFC4.IfcPlaneAngleMeasure(v[0].value), v[1].map((p) => new IFC4.IfcPlaneAngleMeasure(p.value)), v[2].map((p) => new IFC4.IfcLuminousIntensityDistributionMeasure(p.value))),\n  1566485204: (id, v) => new IFC4.IfcLightIntensityDistribution(id, v[0], v[1].map((p) => new Handle(p.value))),\n  3057273783: (id, v) => new IFC4.IfcMapConversion(id, new Handle(v[0].value), new Handle(v[1].value), new IFC4.IfcLengthMeasure(v[2].value), new IFC4.IfcLengthMeasure(v[3].value), new IFC4.IfcLengthMeasure(v[4].value), !v[5] ? null : new IFC4.IfcReal(v[5].value), !v[6] ? null : new IFC4.IfcReal(v[6].value), !v[7] ? null : new IFC4.IfcReal(v[7].value)),\n  1847130766: (id, v) => new IFC4.IfcMaterialClassificationRelationship(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value)),\n  760658860: (id, _) => new IFC4.IfcMaterialDefinition(id),\n  248100487: (id, v) => new IFC4.IfcMaterialLayer(id, !v[0] ? null : new Handle(v[0].value), new IFC4.IfcNonNegativeLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLogical(v[2].value), !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcInteger(v[6].value)),\n  3303938423: (id, v) => new IFC4.IfcMaterialLayerSet(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value)),\n  1847252529: (id, v) => new IFC4.IfcMaterialLayerWithOffsets(id, !v[0] ? null : new Handle(v[0].value), new IFC4.IfcNonNegativeLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLogical(v[2].value), !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcInteger(v[6].value), v[7], new IFC4.IfcLengthMeasure(v[8].value)),\n  2199411900: (id, v) => new IFC4.IfcMaterialList(id, v[0].map((p) => new Handle(p.value))),\n  2235152071: (id, v) => new IFC4.IfcMaterialProfile(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcInteger(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value)),\n  164193824: (id, v) => new IFC4.IfcMaterialProfileSet(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new Handle(v[3].value)),\n  552965576: (id, v) => new IFC4.IfcMaterialProfileWithOffsets(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcInteger(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), new IFC4.IfcLengthMeasure(v[6].value)),\n  1507914824: (id, _) => new IFC4.IfcMaterialUsageDefinition(id),\n  2597039031: (id, v) => new IFC4.IfcMeasureWithUnit(id, TypeInitialiser(3, v[0]), new Handle(v[1].value)),\n  3368373690: (id, v) => new IFC4.IfcMetric(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  2706619895: (id, v) => new IFC4.IfcMonetaryUnit(id, new IFC4.IfcLabel(v[0].value)),\n  1918398963: (id, v) => new IFC4.IfcNamedUnit(id, new Handle(v[0].value), v[1]),\n  3701648758: (id, _) => new IFC4.IfcObjectPlacement(id),\n  2251480897: (id, v) => new IFC4.IfcObjective(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), v[8], v[9], !v[10] ? null : new IFC4.IfcLabel(v[10].value)),\n  4251960020: (id, v) => new IFC4.IfcOrganization(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : v[3].map((p) => new Handle(p.value)), !v[4] ? null : v[4].map((p) => new Handle(p.value))),\n  1207048766: (id, v) => new IFC4.IfcOwnerHistory(id, new Handle(v[0].value), new Handle(v[1].value), v[2], v[3], !v[4] ? null : new IFC4.IfcTimeStamp(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new IFC4.IfcTimeStamp(v[7].value)),\n  2077209135: (id, v) => new IFC4.IfcPerson(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC4.IfcLabel(p.value)), !v[5] ? null : v[5].map((p) => new IFC4.IfcLabel(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value))),\n  101040310: (id, v) => new IFC4.IfcPersonAndOrganization(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))),\n  2483315170: (id, v) => new IFC4.IfcPhysicalQuantity(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value)),\n  2226359599: (id, v) => new IFC4.IfcPhysicalSimpleQuantity(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  3355820592: (id, v) => new IFC4.IfcPostalAddress(id, v[0], !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcLabel(p.value)), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcLabel(v[9].value)),\n  677532197: (id, _) => new IFC4.IfcPresentationItem(id),\n  2022622350: (id, v) => new IFC4.IfcPresentationLayerAssignment(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4.IfcIdentifier(v[3].value)),\n  1304840413: (id, v) => new IFC4.IfcPresentationLayerWithStyle(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4.IfcIdentifier(v[3].value), new IFC4.IfcLogical(v[4].value), new IFC4.IfcLogical(v[5].value), new IFC4.IfcLogical(v[6].value), v[7].map((p) => new Handle(p.value))),\n  3119450353: (id, v) => new IFC4.IfcPresentationStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)),\n  2417041796: (id, v) => new IFC4.IfcPresentationStyleAssignment(id, v[0].map((p) => new Handle(p.value))),\n  2095639259: (id, v) => new IFC4.IfcProductRepresentation(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))),\n  3958567839: (id, v) => new IFC4.IfcProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value)),\n  3843373140: (id, v) => new IFC4.IfcProjectedCRS(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new IFC4.IfcIdentifier(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  986844984: (id, _) => new IFC4.IfcPropertyAbstraction(id),\n  3710013099: (id, v) => new IFC4.IfcPropertyEnumeration(id, new IFC4.IfcLabel(v[0].value), v[1].map((p) => TypeInitialiser(3, p)), !v[2] ? null : new Handle(v[2].value)),\n  2044713172: (id, v) => new IFC4.IfcQuantityArea(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcAreaMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  2093928680: (id, v) => new IFC4.IfcQuantityCount(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcCountMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  931644368: (id, v) => new IFC4.IfcQuantityLength(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  3252649465: (id, v) => new IFC4.IfcQuantityTime(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcTimeMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  2405470396: (id, v) => new IFC4.IfcQuantityVolume(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcVolumeMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  825690147: (id, v) => new IFC4.IfcQuantityWeight(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcMassMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  3915482550: (id, v) => new IFC4.IfcRecurrencePattern(id, v[0], !v[1] ? null : v[1].map((p) => new IFC4.IfcDayInMonthNumber(p.value)), !v[2] ? null : v[2].map((p) => new IFC4.IfcDayInWeekNumber(p.value)), !v[3] ? null : v[3].map((p) => new IFC4.IfcMonthInYearNumber(p.value)), !v[4] ? null : new IFC4.IfcInteger(v[4].value), !v[5] ? null : new IFC4.IfcInteger(v[5].value), !v[6] ? null : new IFC4.IfcInteger(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value))),\n  2433181523: (id, v) => new IFC4.IfcReference(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4.IfcInteger(p.value)), !v[4] ? null : new Handle(v[4].value)),\n  1076942058: (id, v) => new IFC4.IfcRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3377609919: (id, v) => new IFC4.IfcRepresentationContext(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value)),\n  3008791417: (id, _) => new IFC4.IfcRepresentationItem(id),\n  1660063152: (id, v) => new IFC4.IfcRepresentationMap(id, new Handle(v[0].value), new Handle(v[1].value)),\n  2439245199: (id, v) => new IFC4.IfcResourceLevelRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value)),\n  2341007311: (id, v) => new IFC4.IfcRoot(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  448429030: (id, v) => new IFC4.IfcSIUnit(id, v[0], v[1], v[2]),\n  1054537805: (id, v) => new IFC4.IfcSchedulingTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  867548509: (id, v) => new IFC4.IfcShapeAspect(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), new IFC4.IfcLogical(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  3982875396: (id, v) => new IFC4.IfcShapeModel(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  4240577450: (id, v) => new IFC4.IfcShapeRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  2273995522: (id, v) => new IFC4.IfcStructuralConnectionCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)),\n  2162789131: (id, v) => new IFC4.IfcStructuralLoad(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)),\n  3478079324: (id, v) => new IFC4.IfcStructuralLoadConfiguration(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : v[2].map((p) => new IFC4.IfcLengthMeasure(p.value))),\n  609421318: (id, v) => new IFC4.IfcStructuralLoadOrResult(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)),\n  2525727697: (id, v) => new IFC4.IfcStructuralLoadStatic(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)),\n  3408363356: (id, v) => new IFC4.IfcStructuralLoadTemperature(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(v[1].value), !v[2] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(v[2].value), !v[3] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(v[3].value)),\n  2830218821: (id, v) => new IFC4.IfcStyleModel(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3958052878: (id, v) => new IFC4.IfcStyledItem(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  3049322572: (id, v) => new IFC4.IfcStyledRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  2934153892: (id, v) => new IFC4.IfcSurfaceReinforcementArea(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new IFC4.IfcLengthMeasure(p.value)), !v[2] ? null : v[2].map((p) => new IFC4.IfcLengthMeasure(p.value)), !v[3] ? null : new IFC4.IfcRatioMeasure(v[3].value)),\n  1300840506: (id, v) => new IFC4.IfcSurfaceStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], v[2].map((p) => new Handle(p.value))),\n  3303107099: (id, v) => new IFC4.IfcSurfaceStyleLighting(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new Handle(v[3].value)),\n  1607154358: (id, v) => new IFC4.IfcSurfaceStyleRefraction(id, !v[0] ? null : new IFC4.IfcReal(v[0].value), !v[1] ? null : new IFC4.IfcReal(v[1].value)),\n  846575682: (id, v) => new IFC4.IfcSurfaceStyleShading(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(v[1].value)),\n  1351298697: (id, v) => new IFC4.IfcSurfaceStyleWithTextures(id, v[0].map((p) => new Handle(p.value))),\n  626085974: (id, v) => new IFC4.IfcSurfaceTexture(id, new IFC4.IfcBoolean(v[0].value), new IFC4.IfcBoolean(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcIdentifier(p.value))),\n  985171141: (id, v) => new IFC4.IfcTable(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value)), !v[2] ? null : v[2].map((p) => new Handle(p.value))),\n  2043862942: (id, v) => new IFC4.IfcTableColumn(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  531007025: (id, v) => new IFC4.IfcTableRow(id, !v[0] ? null : v[0].map((p) => TypeInitialiser(3, p)), !v[1] ? null : new IFC4.IfcBoolean(v[1].value)),\n  1549132990: (id, v) => new IFC4.IfcTaskTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3], !v[4] ? null : new IFC4.IfcDuration(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcDateTime(v[6].value), !v[7] ? null : new IFC4.IfcDateTime(v[7].value), !v[8] ? null : new IFC4.IfcDateTime(v[8].value), !v[9] ? null : new IFC4.IfcDateTime(v[9].value), !v[10] ? null : new IFC4.IfcDateTime(v[10].value), !v[11] ? null : new IFC4.IfcDuration(v[11].value), !v[12] ? null : new IFC4.IfcDuration(v[12].value), !v[13] ? null : new IFC4.IfcBoolean(v[13].value), !v[14] ? null : new IFC4.IfcDateTime(v[14].value), !v[15] ? null : new IFC4.IfcDuration(v[15].value), !v[16] ? null : new IFC4.IfcDateTime(v[16].value), !v[17] ? null : new IFC4.IfcDateTime(v[17].value), !v[18] ? null : new IFC4.IfcDuration(v[18].value), !v[19] ? null : new IFC4.IfcPositiveRatioMeasure(v[19].value)),\n  2771591690: (id, v) => new IFC4.IfcTaskTimeRecurring(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3], !v[4] ? null : new IFC4.IfcDuration(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcDateTime(v[6].value), !v[7] ? null : new IFC4.IfcDateTime(v[7].value), !v[8] ? null : new IFC4.IfcDateTime(v[8].value), !v[9] ? null : new IFC4.IfcDateTime(v[9].value), !v[10] ? null : new IFC4.IfcDateTime(v[10].value), !v[11] ? null : new IFC4.IfcDuration(v[11].value), !v[12] ? null : new IFC4.IfcDuration(v[12].value), !v[13] ? null : new IFC4.IfcBoolean(v[13].value), !v[14] ? null : new IFC4.IfcDateTime(v[14].value), !v[15] ? null : new IFC4.IfcDuration(v[15].value), !v[16] ? null : new IFC4.IfcDateTime(v[16].value), !v[17] ? null : new IFC4.IfcDateTime(v[17].value), !v[18] ? null : new IFC4.IfcDuration(v[18].value), !v[19] ? null : new IFC4.IfcPositiveRatioMeasure(v[19].value), new Handle(v[20].value)),\n  912023232: (id, v) => new IFC4.IfcTelecomAddress(id, v[0], !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC4.IfcLabel(p.value)), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : v[6].map((p) => new IFC4.IfcLabel(p.value)), !v[7] ? null : new IFC4.IfcURIReference(v[7].value), !v[8] ? null : v[8].map((p) => new IFC4.IfcURIReference(p.value))),\n  1447204868: (id, v) => new IFC4.IfcTextStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcBoolean(v[4].value)),\n  2636378356: (id, v) => new IFC4.IfcTextStyleForDefinedFont(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  1640371178: (id, v) => new IFC4.IfcTextStyleTextModel(id, !v[0] ? null : TypeInitialiser(3, v[0]), !v[1] ? null : new IFC4.IfcTextAlignment(v[1].value), !v[2] ? null : new IFC4.IfcTextDecoration(v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : new IFC4.IfcTextTransformation(v[5].value), !v[6] ? null : TypeInitialiser(3, v[6])),\n  280115917: (id, v) => new IFC4.IfcTextureCoordinate(id, v[0].map((p) => new Handle(p.value))),\n  1742049831: (id, v) => new IFC4.IfcTextureCoordinateGenerator(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLabel(v[1].value), !v[2] ? null : v[2].map((p) => new IFC4.IfcReal(p.value))),\n  2552916305: (id, v) => new IFC4.IfcTextureMap(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value)), new Handle(v[2].value)),\n  1210645708: (id, v) => new IFC4.IfcTextureVertex(id, v[0].map((p) => new IFC4.IfcParameterValue(p.value))),\n  3611470254: (id, v) => new IFC4.IfcTextureVertexList(id, v[0].map((p) => new IFC4.IfcParameterValue(p.value))),\n  1199560280: (id, v) => new IFC4.IfcTimePeriod(id, new IFC4.IfcTime(v[0].value), new IFC4.IfcTime(v[1].value)),\n  3101149627: (id, v) => new IFC4.IfcTimeSeries(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new IFC4.IfcDateTime(v[2].value), new IFC4.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  581633288: (id, v) => new IFC4.IfcTimeSeriesValue(id, v[0].map((p) => TypeInitialiser(3, p))),\n  1377556343: (id, _) => new IFC4.IfcTopologicalRepresentationItem(id),\n  1735638870: (id, v) => new IFC4.IfcTopologyRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))),\n  180925521: (id, v) => new IFC4.IfcUnitAssignment(id, v[0].map((p) => new Handle(p.value))),\n  2799835756: (id, _) => new IFC4.IfcVertex(id),\n  1907098498: (id, v) => new IFC4.IfcVertexPoint(id, new Handle(v[0].value)),\n  891718957: (id, v) => new IFC4.IfcVirtualGridIntersection(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new IFC4.IfcLengthMeasure(p.value))),\n  1236880293: (id, v) => new IFC4.IfcWorkTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcDate(v[4].value), !v[5] ? null : new IFC4.IfcDate(v[5].value)),\n  3869604511: (id, v) => new IFC4.IfcApprovalRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  3798115385: (id, v) => new IFC4.IfcArbitraryClosedProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value)),\n  1310608509: (id, v) => new IFC4.IfcArbitraryOpenProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value)),\n  2705031697: (id, v) => new IFC4.IfcArbitraryProfileDefWithVoids(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  616511568: (id, v) => new IFC4.IfcBlobTexture(id, new IFC4.IfcBoolean(v[0].value), new IFC4.IfcBoolean(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcIdentifier(p.value)), new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcBinary(v[6].value)),\n  3150382593: (id, v) => new IFC4.IfcCenterLineProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)),\n  747523909: (id, v) => new IFC4.IfcClassification(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcDate(v[2].value), new IFC4.IfcLabel(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcURIReference(v[5].value), !v[6] ? null : v[6].map((p) => new IFC4.IfcIdentifier(p.value))),\n  647927063: (id, v) => new IFC4.IfcClassificationReference(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value)),\n  3285139300: (id, v) => new IFC4.IfcColourRgbList(id, v[0].map((p) => new IFC4.IfcNormalisedRatioMeasure(p.value))),\n  3264961684: (id, v) => new IFC4.IfcColourSpecification(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)),\n  1485152156: (id, v) => new IFC4.IfcCompositeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4.IfcLabel(v[3].value)),\n  370225590: (id, v) => new IFC4.IfcConnectedFaceSet(id, v[0].map((p) => new Handle(p.value))),\n  1981873012: (id, v) => new IFC4.IfcConnectionCurveGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  45288368: (id, v) => new IFC4.IfcConnectionPointEccentricity(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLengthMeasure(v[4].value)),\n  3050246964: (id, v) => new IFC4.IfcContextDependentUnit(id, new Handle(v[0].value), v[1], new IFC4.IfcLabel(v[2].value)),\n  2889183280: (id, v) => new IFC4.IfcConversionBasedUnit(id, new Handle(v[0].value), v[1], new IFC4.IfcLabel(v[2].value), new Handle(v[3].value)),\n  2713554722: (id, v) => new IFC4.IfcConversionBasedUnitWithOffset(id, new Handle(v[0].value), v[1], new IFC4.IfcLabel(v[2].value), new Handle(v[3].value), new IFC4.IfcReal(v[4].value)),\n  539742890: (id, v) => new IFC4.IfcCurrencyRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), new IFC4.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  3800577675: (id, v) => new IFC4.IfcCurveStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcBoolean(v[4].value)),\n  1105321065: (id, v) => new IFC4.IfcCurveStyleFont(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value))),\n  2367409068: (id, v) => new IFC4.IfcCurveStyleFontAndScaling(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), new IFC4.IfcPositiveRatioMeasure(v[2].value)),\n  3510044353: (id, v) => new IFC4.IfcCurveStyleFontPattern(id, new IFC4.IfcLengthMeasure(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)),\n  3632507154: (id, v) => new IFC4.IfcDerivedProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  1154170062: (id, v) => new IFC4.IfcDocumentInformation(id, new IFC4.IfcIdentifier(v[0].value), new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : new IFC4.IfcURIReference(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcText(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new IFC4.IfcDateTime(v[10].value), !v[11] ? null : new IFC4.IfcDateTime(v[11].value), !v[12] ? null : new IFC4.IfcIdentifier(v[12].value), !v[13] ? null : new IFC4.IfcDate(v[13].value), !v[14] ? null : new IFC4.IfcDate(v[14].value), v[15], v[16]),\n  770865208: (id, v) => new IFC4.IfcDocumentInformationRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  3732053477: (id, v) => new IFC4.IfcDocumentReference(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  3900360178: (id, v) => new IFC4.IfcEdge(id, new Handle(v[0].value), new Handle(v[1].value)),\n  476780140: (id, v) => new IFC4.IfcEdgeCurve(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcBoolean(v[3].value)),\n  211053100: (id, v) => new IFC4.IfcEventTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcDateTime(v[3].value), !v[4] ? null : new IFC4.IfcDateTime(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcDateTime(v[6].value)),\n  297599258: (id, v) => new IFC4.IfcExtendedProperties(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))),\n  1437805879: (id, v) => new IFC4.IfcExternalReferenceRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  2556980723: (id, v) => new IFC4.IfcFace(id, v[0].map((p) => new Handle(p.value))),\n  1809719519: (id, v) => new IFC4.IfcFaceBound(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value)),\n  803316827: (id, v) => new IFC4.IfcFaceOuterBound(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value)),\n  3008276851: (id, v) => new IFC4.IfcFaceSurface(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new IFC4.IfcBoolean(v[2].value)),\n  4219587988: (id, v) => new IFC4.IfcFailureConnectionCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4.IfcForceMeasure(v[4].value), !v[5] ? null : new IFC4.IfcForceMeasure(v[5].value), !v[6] ? null : new IFC4.IfcForceMeasure(v[6].value)),\n  738692330: (id, v) => new IFC4.IfcFillAreaStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4.IfcBoolean(v[2].value)),\n  3448662350: (id, v) => new IFC4.IfcGeometricRepresentationContext(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), new IFC4.IfcDimensionCount(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value)),\n  2453401579: (id, _) => new IFC4.IfcGeometricRepresentationItem(id),\n  4142052618: (id, v) => new IFC4.IfcGeometricRepresentationSubContext(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcPositiveRatioMeasure(v[3].value), v[4], !v[5] ? null : new IFC4.IfcLabel(v[5].value)),\n  3590301190: (id, v) => new IFC4.IfcGeometricSet(id, v[0].map((p) => new Handle(p.value))),\n  178086475: (id, v) => new IFC4.IfcGridPlacement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  812098782: (id, v) => new IFC4.IfcHalfSpaceSolid(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value)),\n  3905492369: (id, v) => new IFC4.IfcImageTexture(id, new IFC4.IfcBoolean(v[0].value), new IFC4.IfcBoolean(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcIdentifier(p.value)), new IFC4.IfcURIReference(v[5].value)),\n  3570813810: (id, v) => new IFC4.IfcIndexedColourMap(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(v[1].value), new Handle(v[2].value), v[3].map((p) => new IFC4.IfcPositiveInteger(p.value))),\n  1437953363: (id, v) => new IFC4.IfcIndexedTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value)),\n  2133299955: (id, v) => new IFC4.IfcIndexedTriangleTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4.IfcPositiveInteger(p.value))),\n  3741457305: (id, v) => new IFC4.IfcIrregularTimeSeries(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new IFC4.IfcDateTime(v[2].value), new IFC4.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), v[8].map((p) => new Handle(p.value))),\n  1585845231: (id, v) => new IFC4.IfcLagTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), TypeInitialiser(3, v[3]), v[4]),\n  1402838566: (id, v) => new IFC4.IfcLightSource(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value)),\n  125510826: (id, v) => new IFC4.IfcLightSourceAmbient(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value)),\n  2604431987: (id, v) => new IFC4.IfcLightSourceDirectional(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value)),\n  4266656042: (id, v) => new IFC4.IfcLightSourceGoniometric(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC4.IfcThermodynamicTemperatureMeasure(v[6].value), new IFC4.IfcLuminousFluxMeasure(v[7].value), v[8], new Handle(v[9].value)),\n  1520743889: (id, v) => new IFC4.IfcLightSourcePositional(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcReal(v[6].value), new IFC4.IfcReal(v[7].value), new IFC4.IfcReal(v[8].value)),\n  3422422726: (id, v) => new IFC4.IfcLightSourceSpot(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcReal(v[6].value), new IFC4.IfcReal(v[7].value), new IFC4.IfcReal(v[8].value), new Handle(v[9].value), !v[10] ? null : new IFC4.IfcReal(v[10].value), new IFC4.IfcPositivePlaneAngleMeasure(v[11].value), new IFC4.IfcPositivePlaneAngleMeasure(v[12].value)),\n  2624227202: (id, v) => new IFC4.IfcLocalPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value)),\n  1008929658: (id, _) => new IFC4.IfcLoop(id),\n  2347385850: (id, v) => new IFC4.IfcMappedItem(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1838606355: (id, v) => new IFC4.IfcMaterial(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)),\n  3708119e3: (id, v) => new IFC4.IfcMaterialConstituent(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  2852063980: (id, v) => new IFC4.IfcMaterialConstituentSet(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))),\n  2022407955: (id, v) => new IFC4.IfcMaterialDefinitionRepresentation(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  1303795690: (id, v) => new IFC4.IfcMaterialLayerSetUsage(id, new Handle(v[0].value), v[1], v[2], new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value)),\n  3079605661: (id, v) => new IFC4.IfcMaterialProfileSetUsage(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcCardinalPointReference(v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(v[2].value)),\n  3404854881: (id, v) => new IFC4.IfcMaterialProfileSetUsageTapering(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcCardinalPointReference(v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcCardinalPointReference(v[4].value)),\n  3265635763: (id, v) => new IFC4.IfcMaterialProperties(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  853536259: (id, v) => new IFC4.IfcMaterialRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  2998442950: (id, v) => new IFC4.IfcMirroredProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcLabel(v[3].value)),\n  219451334: (id, v) => new IFC4.IfcObjectDefinition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  2665983363: (id, v) => new IFC4.IfcOpenShell(id, v[0].map((p) => new Handle(p.value))),\n  1411181986: (id, v) => new IFC4.IfcOrganizationRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  1029017970: (id, v) => new IFC4.IfcOrientedEdge(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value)),\n  2529465313: (id, v) => new IFC4.IfcParameterizedProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  2519244187: (id, v) => new IFC4.IfcPath(id, v[0].map((p) => new Handle(p.value))),\n  3021840470: (id, v) => new IFC4.IfcPhysicalComplexQuantity(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new IFC4.IfcLabel(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value)),\n  597895409: (id, v) => new IFC4.IfcPixelTexture(id, new IFC4.IfcBoolean(v[0].value), new IFC4.IfcBoolean(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcIdentifier(p.value)), new IFC4.IfcInteger(v[5].value), new IFC4.IfcInteger(v[6].value), new IFC4.IfcInteger(v[7].value), v[8].map((p) => new IFC4.IfcBinary(p.value))),\n  2004835150: (id, v) => new IFC4.IfcPlacement(id, new Handle(v[0].value)),\n  1663979128: (id, v) => new IFC4.IfcPlanarExtent(id, new IFC4.IfcLengthMeasure(v[0].value), new IFC4.IfcLengthMeasure(v[1].value)),\n  2067069095: (id, _) => new IFC4.IfcPoint(id),\n  4022376103: (id, v) => new IFC4.IfcPointOnCurve(id, new Handle(v[0].value), new IFC4.IfcParameterValue(v[1].value)),\n  1423911732: (id, v) => new IFC4.IfcPointOnSurface(id, new Handle(v[0].value), new IFC4.IfcParameterValue(v[1].value), new IFC4.IfcParameterValue(v[2].value)),\n  2924175390: (id, v) => new IFC4.IfcPolyLoop(id, v[0].map((p) => new Handle(p.value))),\n  2775532180: (id, v) => new IFC4.IfcPolygonalBoundedHalfSpace(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value), new Handle(v[2].value), new Handle(v[3].value)),\n  3727388367: (id, v) => new IFC4.IfcPreDefinedItem(id, new IFC4.IfcLabel(v[0].value)),\n  3778827333: (id, _) => new IFC4.IfcPreDefinedProperties(id),\n  1775413392: (id, v) => new IFC4.IfcPreDefinedTextFont(id, new IFC4.IfcLabel(v[0].value)),\n  673634403: (id, v) => new IFC4.IfcProductDefinitionShape(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))),\n  2802850158: (id, v) => new IFC4.IfcProfileProperties(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  2598011224: (id, v) => new IFC4.IfcProperty(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value)),\n  1680319473: (id, v) => new IFC4.IfcPropertyDefinition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  148025276: (id, v) => new IFC4.IfcPropertyDependencyRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value)),\n  3357820518: (id, v) => new IFC4.IfcPropertySetDefinition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  1482703590: (id, v) => new IFC4.IfcPropertyTemplateDefinition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  2090586900: (id, v) => new IFC4.IfcQuantitySet(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  3615266464: (id, v) => new IFC4.IfcRectangleProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value)),\n  3413951693: (id, v) => new IFC4.IfcRegularTimeSeries(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new IFC4.IfcDateTime(v[2].value), new IFC4.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), new IFC4.IfcTimeMeasure(v[8].value), v[9].map((p) => new Handle(p.value))),\n  1580146022: (id, v) => new IFC4.IfcReinforcementBarProperties(id, new IFC4.IfcAreaMeasure(v[0].value), new IFC4.IfcLabel(v[1].value), v[2], !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4.IfcCountMeasure(v[5].value)),\n  478536968: (id, v) => new IFC4.IfcRelationship(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  2943643501: (id, v) => new IFC4.IfcResourceApprovalRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)),\n  1608871552: (id, v) => new IFC4.IfcResourceConstraintRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))),\n  1042787934: (id, v) => new IFC4.IfcResourceTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcDuration(v[3].value), !v[4] ? null : new IFC4.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcDateTime(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcDuration(v[8].value), !v[9] ? null : new IFC4.IfcBoolean(v[9].value), !v[10] ? null : new IFC4.IfcDateTime(v[10].value), !v[11] ? null : new IFC4.IfcDuration(v[11].value), !v[12] ? null : new IFC4.IfcPositiveRatioMeasure(v[12].value), !v[13] ? null : new IFC4.IfcDateTime(v[13].value), !v[14] ? null : new IFC4.IfcDateTime(v[14].value), !v[15] ? null : new IFC4.IfcDuration(v[15].value), !v[16] ? null : new IFC4.IfcPositiveRatioMeasure(v[16].value), !v[17] ? null : new IFC4.IfcPositiveRatioMeasure(v[17].value)),\n  2778083089: (id, v) => new IFC4.IfcRoundedRectangleProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value)),\n  2042790032: (id, v) => new IFC4.IfcSectionProperties(id, v[0], new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  4165799628: (id, v) => new IFC4.IfcSectionReinforcementProperties(id, new IFC4.IfcLengthMeasure(v[0].value), new IFC4.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), v[3], new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  1509187699: (id, v) => new IFC4.IfcSectionedSpine(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))),\n  4124623270: (id, v) => new IFC4.IfcShellBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))),\n  3692461612: (id, v) => new IFC4.IfcSimpleProperty(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value)),\n  2609359061: (id, v) => new IFC4.IfcSlippageConnectionCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value)),\n  723233188: (id, _) => new IFC4.IfcSolidModel(id),\n  1595516126: (id, v) => new IFC4.IfcStructuralLoadLinearForce(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLinearForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLinearForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLinearForceMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLinearMomentMeasure(v[4].value), !v[5] ? null : new IFC4.IfcLinearMomentMeasure(v[5].value), !v[6] ? null : new IFC4.IfcLinearMomentMeasure(v[6].value)),\n  2668620305: (id, v) => new IFC4.IfcStructuralLoadPlanarForce(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcPlanarForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcPlanarForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcPlanarForceMeasure(v[3].value)),\n  2473145415: (id, v) => new IFC4.IfcStructuralLoadSingleDisplacement(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC4.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC4.IfcPlaneAngleMeasure(v[6].value)),\n  1973038258: (id, v) => new IFC4.IfcStructuralLoadSingleDisplacementDistortion(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC4.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC4.IfcPlaneAngleMeasure(v[6].value), !v[7] ? null : new IFC4.IfcCurvatureMeasure(v[7].value)),\n  1597423693: (id, v) => new IFC4.IfcStructuralLoadSingleForce(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC4.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC4.IfcTorqueMeasure(v[6].value)),\n  1190533807: (id, v) => new IFC4.IfcStructuralLoadSingleForceWarping(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC4.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC4.IfcTorqueMeasure(v[6].value), !v[7] ? null : new IFC4.IfcWarpingMomentMeasure(v[7].value)),\n  2233826070: (id, v) => new IFC4.IfcSubedge(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)),\n  2513912981: (id, _) => new IFC4.IfcSurface(id),\n  1878645084: (id, v) => new IFC4.IfcSurfaceStyleRendering(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : TypeInitialiser(3, v[7]), v[8]),\n  2247615214: (id, v) => new IFC4.IfcSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  1260650574: (id, v) => new IFC4.IfcSweptDiskSolid(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(v[4].value)),\n  1096409881: (id, v) => new IFC4.IfcSweptDiskSolidPolygonal(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(v[4].value), !v[5] ? null : new IFC4.IfcPositiveLengthMeasure(v[5].value)),\n  230924584: (id, v) => new IFC4.IfcSweptSurface(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  3071757647: (id, v) => new IFC4.IfcTShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPlaneAngleMeasure(v[11].value)),\n  901063453: (id, _) => new IFC4.IfcTessellatedItem(id),\n  4282788508: (id, v) => new IFC4.IfcTextLiteral(id, new IFC4.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2]),\n  3124975700: (id, v) => new IFC4.IfcTextLiteralWithExtent(id, new IFC4.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2], new Handle(v[3].value), new IFC4.IfcBoxAlignment(v[4].value)),\n  1983826977: (id, v) => new IFC4.IfcTextStyleFontModel(id, new IFC4.IfcLabel(v[0].value), v[1].map((p) => new IFC4.IfcTextFontName(p.value)), !v[2] ? null : new IFC4.IfcFontStyle(v[2].value), !v[3] ? null : new IFC4.IfcFontVariant(v[3].value), !v[4] ? null : new IFC4.IfcFontWeight(v[4].value), TypeInitialiser(3, v[5])),\n  2715220739: (id, v) => new IFC4.IfcTrapeziumProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcLengthMeasure(v[6].value)),\n  1628702193: (id, v) => new IFC4.IfcTypeObject(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value))),\n  3736923433: (id, v) => new IFC4.IfcTypeProcess(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  2347495698: (id, v) => new IFC4.IfcTypeProduct(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value)),\n  3698973494: (id, v) => new IFC4.IfcTypeResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  427810014: (id, v) => new IFC4.IfcUShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPlaneAngleMeasure(v[9].value)),\n  1417489154: (id, v) => new IFC4.IfcVector(id, new Handle(v[0].value), new IFC4.IfcLengthMeasure(v[1].value)),\n  2759199220: (id, v) => new IFC4.IfcVertexLoop(id, new Handle(v[0].value)),\n  1299126871: (id, v) => new IFC4.IfcWindowStyle(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], v[9], new IFC4.IfcBoolean(v[10].value), new IFC4.IfcBoolean(v[11].value)),\n  2543172580: (id, v) => new IFC4.IfcZShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value)),\n  3406155212: (id, v) => new IFC4.IfcAdvancedFace(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new IFC4.IfcBoolean(v[2].value)),\n  669184980: (id, v) => new IFC4.IfcAnnotationFillArea(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value))),\n  3207858831: (id, v) => new IFC4.IfcAsymmetricIShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPlaneAngleMeasure(v[12].value), !v[13] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[13].value), !v[14] ? null : new IFC4.IfcPlaneAngleMeasure(v[14].value)),\n  4261334040: (id, v) => new IFC4.IfcAxis1Placement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  3125803723: (id, v) => new IFC4.IfcAxis2Placement2D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)),\n  2740243338: (id, v) => new IFC4.IfcAxis2Placement3D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)),\n  2736907675: (id, v) => new IFC4.IfcBooleanResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)),\n  4182860854: (id, _) => new IFC4.IfcBoundedSurface(id),\n  2581212453: (id, v) => new IFC4.IfcBoundingBox(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)),\n  2713105998: (id, v) => new IFC4.IfcBoxedHalfSpace(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value), new Handle(v[2].value)),\n  2898889636: (id, v) => new IFC4.IfcCShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value)),\n  1123145078: (id, v) => new IFC4.IfcCartesianPoint(id, v[0].map((p) => new IFC4.IfcLengthMeasure(p.value))),\n  574549367: (id, _) => new IFC4.IfcCartesianPointList(id),\n  1675464909: (id, v) => new IFC4.IfcCartesianPointList2D(id, v[0].map((p) => new IFC4.IfcLengthMeasure(p.value))),\n  2059837836: (id, v) => new IFC4.IfcCartesianPointList3D(id, v[0].map((p) => new IFC4.IfcLengthMeasure(p.value))),\n  59481748: (id, v) => new IFC4.IfcCartesianTransformationOperator(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value)),\n  3749851601: (id, v) => new IFC4.IfcCartesianTransformationOperator2D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value)),\n  3486308946: (id, v) => new IFC4.IfcCartesianTransformationOperator2DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value), !v[4] ? null : new IFC4.IfcReal(v[4].value)),\n  3331915920: (id, v) => new IFC4.IfcCartesianTransformationOperator3D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value), !v[4] ? null : new Handle(v[4].value)),\n  1416205885: (id, v) => new IFC4.IfcCartesianTransformationOperator3DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4.IfcReal(v[5].value), !v[6] ? null : new IFC4.IfcReal(v[6].value)),\n  1383045692: (id, v) => new IFC4.IfcCircleProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)),\n  2205249479: (id, v) => new IFC4.IfcClosedShell(id, v[0].map((p) => new Handle(p.value))),\n  776857604: (id, v) => new IFC4.IfcColourRgb(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new IFC4.IfcNormalisedRatioMeasure(v[1].value), new IFC4.IfcNormalisedRatioMeasure(v[2].value), new IFC4.IfcNormalisedRatioMeasure(v[3].value)),\n  2542286263: (id, v) => new IFC4.IfcComplexProperty(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new IFC4.IfcIdentifier(v[2].value), v[3].map((p) => new Handle(p.value))),\n  2485617015: (id, v) => new IFC4.IfcCompositeCurveSegment(id, v[0], new IFC4.IfcBoolean(v[1].value), new Handle(v[2].value)),\n  2574617495: (id, v) => new IFC4.IfcConstructionResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value)),\n  3419103109: (id, v) => new IFC4.IfcContext(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)),\n  1815067380: (id, v) => new IFC4.IfcCrewResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  2506170314: (id, v) => new IFC4.IfcCsgPrimitive3D(id, new Handle(v[0].value)),\n  2147822146: (id, v) => new IFC4.IfcCsgSolid(id, new Handle(v[0].value)),\n  2601014836: (id, _) => new IFC4.IfcCurve(id),\n  2827736869: (id, v) => new IFC4.IfcCurveBoundedPlane(id, new Handle(v[0].value), new Handle(v[1].value), v[2].map((p) => new Handle(p.value))),\n  2629017746: (id, v) => new IFC4.IfcCurveBoundedSurface(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), new IFC4.IfcBoolean(v[2].value)),\n  32440307: (id, v) => new IFC4.IfcDirection(id, v[0].map((p) => new IFC4.IfcReal(p.value))),\n  526551008: (id, v) => new IFC4.IfcDoorStyle(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], v[9], new IFC4.IfcBoolean(v[10].value), new IFC4.IfcBoolean(v[11].value)),\n  1472233963: (id, v) => new IFC4.IfcEdgeLoop(id, v[0].map((p) => new Handle(p.value))),\n  1883228015: (id, v) => new IFC4.IfcElementQuantity(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))),\n  339256511: (id, v) => new IFC4.IfcElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  2777663545: (id, v) => new IFC4.IfcElementarySurface(id, new Handle(v[0].value)),\n  2835456948: (id, v) => new IFC4.IfcEllipseProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value)),\n  4024345920: (id, v) => new IFC4.IfcEventType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcLabel(v[11].value)),\n  477187591: (id, v) => new IFC4.IfcExtrudedAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)),\n  2804161546: (id, v) => new IFC4.IfcExtrudedAreaSolidTapered(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new Handle(v[4].value)),\n  2047409740: (id, v) => new IFC4.IfcFaceBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))),\n  374418227: (id, v) => new IFC4.IfcFillAreaStyleHatching(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), new IFC4.IfcPlaneAngleMeasure(v[4].value)),\n  315944413: (id, v) => new IFC4.IfcFillAreaStyleTiles(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value)), new IFC4.IfcPositiveRatioMeasure(v[2].value)),\n  2652556860: (id, v) => new IFC4.IfcFixedReferenceSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(v[4].value), new Handle(v[5].value)),\n  4238390223: (id, v) => new IFC4.IfcFurnishingElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  1268542332: (id, v) => new IFC4.IfcFurnitureType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], v[10]),\n  4095422895: (id, v) => new IFC4.IfcGeographicElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  987898635: (id, v) => new IFC4.IfcGeometricCurveSet(id, v[0].map((p) => new Handle(p.value))),\n  1484403080: (id, v) => new IFC4.IfcIShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPlaneAngleMeasure(v[9].value)),\n  178912537: (id, v) => new IFC4.IfcIndexedPolygonalFace(id, v[0].map((p) => new IFC4.IfcPositiveInteger(p.value))),\n  2294589976: (id, v) => new IFC4.IfcIndexedPolygonalFaceWithVoids(id, v[0].map((p) => new IFC4.IfcPositiveInteger(p.value)), v[1].map((p) => new IFC4.IfcPositiveInteger(p.value))),\n  572779678: (id, v) => new IFC4.IfcLShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcPlaneAngleMeasure(v[8].value)),\n  428585644: (id, v) => new IFC4.IfcLaborResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  1281925730: (id, v) => new IFC4.IfcLine(id, new Handle(v[0].value), new Handle(v[1].value)),\n  1425443689: (id, v) => new IFC4.IfcManifoldSolidBrep(id, new Handle(v[0].value)),\n  3888040117: (id, v) => new IFC4.IfcObject(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  3388369263: (id, v) => new IFC4.IfcOffsetCurve2D(id, new Handle(v[0].value), new IFC4.IfcLengthMeasure(v[1].value), new IFC4.IfcLogical(v[2].value)),\n  3505215534: (id, v) => new IFC4.IfcOffsetCurve3D(id, new Handle(v[0].value), new IFC4.IfcLengthMeasure(v[1].value), new IFC4.IfcLogical(v[2].value), new Handle(v[3].value)),\n  1682466193: (id, v) => new IFC4.IfcPcurve(id, new Handle(v[0].value), new Handle(v[1].value)),\n  603570806: (id, v) => new IFC4.IfcPlanarBox(id, new IFC4.IfcLengthMeasure(v[0].value), new IFC4.IfcLengthMeasure(v[1].value), new Handle(v[2].value)),\n  220341763: (id, v) => new IFC4.IfcPlane(id, new Handle(v[0].value)),\n  759155922: (id, v) => new IFC4.IfcPreDefinedColour(id, new IFC4.IfcLabel(v[0].value)),\n  2559016684: (id, v) => new IFC4.IfcPreDefinedCurveFont(id, new IFC4.IfcLabel(v[0].value)),\n  3967405729: (id, v) => new IFC4.IfcPreDefinedPropertySet(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  569719735: (id, v) => new IFC4.IfcProcedureType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2945172077: (id, v) => new IFC4.IfcProcess(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value)),\n  4208778838: (id, v) => new IFC4.IfcProduct(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  103090709: (id, v) => new IFC4.IfcProject(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)),\n  653396225: (id, v) => new IFC4.IfcProjectLibrary(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)),\n  871118103: (id, v) => new IFC4.IfcPropertyBoundedValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : TypeInitialiser(3, v[5])),\n  4166981789: (id, v) => new IFC4.IfcPropertyEnumeratedValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(3, p)), !v[3] ? null : new Handle(v[3].value)),\n  2752243245: (id, v) => new IFC4.IfcPropertyListValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(3, p)), !v[3] ? null : new Handle(v[3].value)),\n  941946838: (id, v) => new IFC4.IfcPropertyReferenceValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : new Handle(v[3].value)),\n  1451395588: (id, v) => new IFC4.IfcPropertySet(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))),\n  492091185: (id, v) => new IFC4.IfcPropertySetTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4], !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6].map((p) => new Handle(p.value))),\n  3650150729: (id, v) => new IFC4.IfcPropertySingleValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle(v[3].value)),\n  110355661: (id, v) => new IFC4.IfcPropertyTableValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(3, p)), !v[3] ? null : v[3].map((p) => TypeInitialiser(3, p)), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]),\n  3521284610: (id, v) => new IFC4.IfcPropertyTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  3219374653: (id, v) => new IFC4.IfcProxy(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  2770003689: (id, v) => new IFC4.IfcRectangleHollowProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value)),\n  2798486643: (id, v) => new IFC4.IfcRectangularPyramid(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)),\n  3454111270: (id, v) => new IFC4.IfcRectangularTrimmedSurface(id, new Handle(v[0].value), new IFC4.IfcParameterValue(v[1].value), new IFC4.IfcParameterValue(v[2].value), new IFC4.IfcParameterValue(v[3].value), new IFC4.IfcParameterValue(v[4].value), new IFC4.IfcBoolean(v[5].value), new IFC4.IfcBoolean(v[6].value)),\n  3765753017: (id, v) => new IFC4.IfcReinforcementDefinitionProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))),\n  3939117080: (id, v) => new IFC4.IfcRelAssigns(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5]),\n  1683148259: (id, v) => new IFC4.IfcRelAssignsToActor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  2495723537: (id, v) => new IFC4.IfcRelAssignsToControl(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  1307041759: (id, v) => new IFC4.IfcRelAssignsToGroup(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  1027710054: (id, v) => new IFC4.IfcRelAssignsToGroupByFactor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), new IFC4.IfcRatioMeasure(v[7].value)),\n  4278684876: (id, v) => new IFC4.IfcRelAssignsToProcess(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  2857406711: (id, v) => new IFC4.IfcRelAssignsToProduct(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  205026976: (id, v) => new IFC4.IfcRelAssignsToResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)),\n  1865459582: (id, v) => new IFC4.IfcRelAssociates(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))),\n  4095574036: (id, v) => new IFC4.IfcRelAssociatesApproval(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  919958153: (id, v) => new IFC4.IfcRelAssociatesClassification(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  2728634034: (id, v) => new IFC4.IfcRelAssociatesConstraint(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), !v[5] ? null : new IFC4.IfcLabel(v[5].value), new Handle(v[6].value)),\n  982818633: (id, v) => new IFC4.IfcRelAssociatesDocument(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  3840914261: (id, v) => new IFC4.IfcRelAssociatesLibrary(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  2655215786: (id, v) => new IFC4.IfcRelAssociatesMaterial(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  826625072: (id, v) => new IFC4.IfcRelConnects(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  1204542856: (id, v) => new IFC4.IfcRelConnectsElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value)),\n  3945020480: (id, v) => new IFC4.IfcRelConnectsPathElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new IFC4.IfcInteger(p.value)), v[8].map((p) => new IFC4.IfcInteger(p.value)), v[9], v[10]),\n  4201705270: (id, v) => new IFC4.IfcRelConnectsPortToElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  3190031847: (id, v) => new IFC4.IfcRelConnectsPorts(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  2127690289: (id, v) => new IFC4.IfcRelConnectsStructuralActivity(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  1638771189: (id, v) => new IFC4.IfcRelConnectsStructuralMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value)),\n  504942748: (id, v) => new IFC4.IfcRelConnectsWithEccentricity(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value), new Handle(v[10].value)),\n  3678494232: (id, v) => new IFC4.IfcRelConnectsWithRealizingElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  3242617779: (id, v) => new IFC4.IfcRelContainedInSpatialStructure(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  886880790: (id, v) => new IFC4.IfcRelCoversBldgElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2802773753: (id, v) => new IFC4.IfcRelCoversSpaces(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2565941209: (id, v) => new IFC4.IfcRelDeclares(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2551354335: (id, v) => new IFC4.IfcRelDecomposes(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  693640335: (id, v) => new IFC4.IfcRelDefines(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)),\n  1462361463: (id, v) => new IFC4.IfcRelDefinesByObject(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  4186316022: (id, v) => new IFC4.IfcRelDefinesByProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  307848117: (id, v) => new IFC4.IfcRelDefinesByTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  781010003: (id, v) => new IFC4.IfcRelDefinesByType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  3940055652: (id, v) => new IFC4.IfcRelFillsElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  279856033: (id, v) => new IFC4.IfcRelFlowControlElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  427948657: (id, v) => new IFC4.IfcRelInterferesElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8].value),\n  3268803585: (id, v) => new IFC4.IfcRelNests(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  750771296: (id, v) => new IFC4.IfcRelProjectsElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  1245217292: (id, v) => new IFC4.IfcRelReferencedInSpatialStructure(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)),\n  4122056220: (id, v) => new IFC4.IfcRelSequence(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  366585022: (id, v) => new IFC4.IfcRelServicesBuildings(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  3451746338: (id, v) => new IFC4.IfcRelSpaceBoundary(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8]),\n  3523091289: (id, v) => new IFC4.IfcRelSpaceBoundary1stLevel(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], !v[9] ? null : new Handle(v[9].value)),\n  1521410863: (id, v) => new IFC4.IfcRelSpaceBoundary2ndLevel(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  1401173127: (id, v) => new IFC4.IfcRelVoidsElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)),\n  816062949: (id, v) => new IFC4.IfcReparametrisedCompositeCurveSegment(id, v[0], new IFC4.IfcBoolean(v[1].value), new Handle(v[2].value), new IFC4.IfcParameterValue(v[3].value)),\n  2914609552: (id, v) => new IFC4.IfcResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value)),\n  1856042241: (id, v) => new IFC4.IfcRevolvedAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcPlaneAngleMeasure(v[3].value)),\n  3243963512: (id, v) => new IFC4.IfcRevolvedAreaSolidTapered(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcPlaneAngleMeasure(v[3].value), new Handle(v[4].value)),\n  4158566097: (id, v) => new IFC4.IfcRightCircularCone(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value)),\n  3626867408: (id, v) => new IFC4.IfcRightCircularCylinder(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value)),\n  3663146110: (id, v) => new IFC4.IfcSimplePropertyTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4], !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new IFC4.IfcLabel(v[10].value), v[11]),\n  1412071761: (id, v) => new IFC4.IfcSpatialElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value)),\n  710998568: (id, v) => new IFC4.IfcSpatialElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  2706606064: (id, v) => new IFC4.IfcSpatialStructureElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8]),\n  3893378262: (id, v) => new IFC4.IfcSpatialStructureElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  463610769: (id, v) => new IFC4.IfcSpatialZone(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8]),\n  2481509218: (id, v) => new IFC4.IfcSpatialZoneType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(v[10].value)),\n  451544542: (id, v) => new IFC4.IfcSphere(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)),\n  4015995234: (id, v) => new IFC4.IfcSphericalSurface(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)),\n  3544373492: (id, v) => new IFC4.IfcStructuralActivity(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  3136571912: (id, v) => new IFC4.IfcStructuralItem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  530289379: (id, v) => new IFC4.IfcStructuralMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  3689010777: (id, v) => new IFC4.IfcStructuralReaction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  3979015343: (id, v) => new IFC4.IfcStructuralSurfaceMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value)),\n  2218152070: (id, v) => new IFC4.IfcStructuralSurfaceMemberVarying(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value)),\n  603775116: (id, v) => new IFC4.IfcStructuralSurfaceReaction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9]),\n  4095615324: (id, v) => new IFC4.IfcSubContractResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  699246055: (id, v) => new IFC4.IfcSurfaceCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]),\n  2028607225: (id, v) => new IFC4.IfcSurfaceCurveSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(v[4].value), new Handle(v[5].value)),\n  2809605785: (id, v) => new IFC4.IfcSurfaceOfLinearExtrusion(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcLengthMeasure(v[3].value)),\n  4124788165: (id, v) => new IFC4.IfcSurfaceOfRevolution(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value)),\n  1580310250: (id, v) => new IFC4.IfcSystemFurnitureElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3473067441: (id, v) => new IFC4.IfcTask(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), new IFC4.IfcBoolean(v[9].value), !v[10] ? null : new IFC4.IfcInteger(v[10].value), !v[11] ? null : new Handle(v[11].value), v[12]),\n  3206491090: (id, v) => new IFC4.IfcTaskType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(v[10].value)),\n  2387106220: (id, v) => new IFC4.IfcTessellatedFaceSet(id, new Handle(v[0].value)),\n  1935646853: (id, v) => new IFC4.IfcToroidalSurface(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value)),\n  2097647324: (id, v) => new IFC4.IfcTransportElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2916149573: (id, v) => new IFC4.IfcTriangulatedFaceSet(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new IFC4.IfcParameterValue(p.value)), !v[2] ? null : new IFC4.IfcBoolean(v[2].value), v[3].map((p) => new IFC4.IfcPositiveInteger(p.value)), !v[4] ? null : v[4].map((p) => new IFC4.IfcPositiveInteger(p.value))),\n  336235671: (id, v) => new IFC4.IfcWindowLiningProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNormalisedRatioMeasure(v[8].value), !v[9] ? null : new IFC4.IfcNormalisedRatioMeasure(v[9].value), !v[10] ? null : new IFC4.IfcNormalisedRatioMeasure(v[10].value), !v[11] ? null : new IFC4.IfcNormalisedRatioMeasure(v[11].value), !v[12] ? null : new Handle(v[12].value), !v[13] ? null : new IFC4.IfcLengthMeasure(v[13].value), !v[14] ? null : new IFC4.IfcLengthMeasure(v[14].value), !v[15] ? null : new IFC4.IfcLengthMeasure(v[15].value)),\n  512836454: (id, v) => new IFC4.IfcWindowPanelProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  2296667514: (id, v) => new IFC4.IfcActor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), new Handle(v[5].value)),\n  1635779807: (id, v) => new IFC4.IfcAdvancedBrep(id, new Handle(v[0].value)),\n  2603310189: (id, v) => new IFC4.IfcAdvancedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  1674181508: (id, v) => new IFC4.IfcAnnotation(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  2887950389: (id, v) => new IFC4.IfcBSplineSurface(id, new IFC4.IfcInteger(v[0].value), new IFC4.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4.IfcLogical(v[4].value), new IFC4.IfcLogical(v[5].value), new IFC4.IfcLogical(v[6].value)),\n  167062518: (id, v) => new IFC4.IfcBSplineSurfaceWithKnots(id, new IFC4.IfcInteger(v[0].value), new IFC4.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4.IfcLogical(v[4].value), new IFC4.IfcLogical(v[5].value), new IFC4.IfcLogical(v[6].value), v[7].map((p) => new IFC4.IfcInteger(p.value)), v[8].map((p) => new IFC4.IfcInteger(p.value)), v[9].map((p) => new IFC4.IfcParameterValue(p.value)), v[10].map((p) => new IFC4.IfcParameterValue(p.value)), v[11]),\n  1334484129: (id, v) => new IFC4.IfcBlock(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)),\n  3649129432: (id, v) => new IFC4.IfcBooleanClippingResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)),\n  1260505505: (id, _) => new IFC4.IfcBoundedCurve(id),\n  4031249490: (id, v) => new IFC4.IfcBuilding(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcLengthMeasure(v[10].value), !v[11] ? null : new Handle(v[11].value)),\n  1950629157: (id, v) => new IFC4.IfcBuildingElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  3124254112: (id, v) => new IFC4.IfcBuildingStorey(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4.IfcLengthMeasure(v[9].value)),\n  2197970202: (id, v) => new IFC4.IfcChimneyType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2937912522: (id, v) => new IFC4.IfcCircleHollowProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value)),\n  3893394355: (id, v) => new IFC4.IfcCivilElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  300633059: (id, v) => new IFC4.IfcColumnType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3875453745: (id, v) => new IFC4.IfcComplexPropertyTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : v[6].map((p) => new Handle(p.value))),\n  3732776249: (id, v) => new IFC4.IfcCompositeCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLogical(v[1].value)),\n  15328376: (id, v) => new IFC4.IfcCompositeCurveOnSurface(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLogical(v[1].value)),\n  2510884976: (id, v) => new IFC4.IfcConic(id, new Handle(v[0].value)),\n  2185764099: (id, v) => new IFC4.IfcConstructionEquipmentResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  4105962743: (id, v) => new IFC4.IfcConstructionMaterialResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  1525564444: (id, v) => new IFC4.IfcConstructionProductResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]),\n  2559216714: (id, v) => new IFC4.IfcConstructionResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value)),\n  3293443760: (id, v) => new IFC4.IfcControl(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value)),\n  3895139033: (id, v) => new IFC4.IfcCostItem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value))),\n  1419761937: (id, v) => new IFC4.IfcCostSchedule(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcDateTime(v[8].value), !v[9] ? null : new IFC4.IfcDateTime(v[9].value)),\n  1916426348: (id, v) => new IFC4.IfcCoveringType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3295246426: (id, v) => new IFC4.IfcCrewResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  1457835157: (id, v) => new IFC4.IfcCurtainWallType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1213902940: (id, v) => new IFC4.IfcCylindricalSurface(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)),\n  3256556792: (id, v) => new IFC4.IfcDistributionElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  3849074793: (id, v) => new IFC4.IfcDistributionFlowElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  2963535650: (id, v) => new IFC4.IfcDoorLiningProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[5].value), !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new Handle(v[14].value), !v[15] ? null : new IFC4.IfcLengthMeasure(v[15].value), !v[16] ? null : new IFC4.IfcLengthMeasure(v[16].value)),\n  1714330368: (id, v) => new IFC4.IfcDoorPanelProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), v[5], !v[6] ? null : new IFC4.IfcNormalisedRatioMeasure(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)),\n  2323601079: (id, v) => new IFC4.IfcDoorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcBoolean(v[11].value), !v[12] ? null : new IFC4.IfcLabel(v[12].value)),\n  445594917: (id, v) => new IFC4.IfcDraughtingPreDefinedColour(id, new IFC4.IfcLabel(v[0].value)),\n  4006246654: (id, v) => new IFC4.IfcDraughtingPreDefinedCurveFont(id, new IFC4.IfcLabel(v[0].value)),\n  1758889154: (id, v) => new IFC4.IfcElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  4123344466: (id, v) => new IFC4.IfcElementAssembly(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8], v[9]),\n  2397081782: (id, v) => new IFC4.IfcElementAssemblyType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1623761950: (id, v) => new IFC4.IfcElementComponent(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  2590856083: (id, v) => new IFC4.IfcElementComponentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  1704287377: (id, v) => new IFC4.IfcEllipse(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value)),\n  2107101300: (id, v) => new IFC4.IfcEnergyConversionDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  132023988: (id, v) => new IFC4.IfcEngineType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3174744832: (id, v) => new IFC4.IfcEvaporativeCoolerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3390157468: (id, v) => new IFC4.IfcEvaporatorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4148101412: (id, v) => new IFC4.IfcEvent(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), v[7], v[8], !v[9] ? null : new IFC4.IfcLabel(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  2853485674: (id, v) => new IFC4.IfcExternalSpatialStructureElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value)),\n  807026263: (id, v) => new IFC4.IfcFacetedBrep(id, new Handle(v[0].value)),\n  3737207727: (id, v) => new IFC4.IfcFacetedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))),\n  647756555: (id, v) => new IFC4.IfcFastener(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2489546625: (id, v) => new IFC4.IfcFastenerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2827207264: (id, v) => new IFC4.IfcFeatureElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  2143335405: (id, v) => new IFC4.IfcFeatureElementAddition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  1287392070: (id, v) => new IFC4.IfcFeatureElementSubtraction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  3907093117: (id, v) => new IFC4.IfcFlowControllerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  3198132628: (id, v) => new IFC4.IfcFlowFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  3815607619: (id, v) => new IFC4.IfcFlowMeterType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1482959167: (id, v) => new IFC4.IfcFlowMovingDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  1834744321: (id, v) => new IFC4.IfcFlowSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  1339347760: (id, v) => new IFC4.IfcFlowStorageDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  2297155007: (id, v) => new IFC4.IfcFlowTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  3009222698: (id, v) => new IFC4.IfcFlowTreatmentDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  1893162501: (id, v) => new IFC4.IfcFootingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  263784265: (id, v) => new IFC4.IfcFurnishingElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  1509553395: (id, v) => new IFC4.IfcFurniture(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3493046030: (id, v) => new IFC4.IfcGeographicElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3009204131: (id, v) => new IFC4.IfcGrid(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), v[8].map((p) => new Handle(p.value)), !v[9] ? null : v[9].map((p) => new Handle(p.value)), v[10]),\n  2706460486: (id, v) => new IFC4.IfcGroup(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  1251058090: (id, v) => new IFC4.IfcHeatExchangerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1806887404: (id, v) => new IFC4.IfcHumidifierType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2571569899: (id, v) => new IFC4.IfcIndexedPolyCurve(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => TypeInitialiser(3, p)), !v[2] ? null : new IFC4.IfcBoolean(v[2].value)),\n  3946677679: (id, v) => new IFC4.IfcInterceptorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3113134337: (id, v) => new IFC4.IfcIntersectionCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]),\n  2391368822: (id, v) => new IFC4.IfcInventory(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcDate(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)),\n  4288270099: (id, v) => new IFC4.IfcJunctionBoxType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3827777499: (id, v) => new IFC4.IfcLaborResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  1051575348: (id, v) => new IFC4.IfcLampType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1161773419: (id, v) => new IFC4.IfcLightFixtureType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  377706215: (id, v) => new IFC4.IfcMechanicalFastener(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10]),\n  2108223431: (id, v) => new IFC4.IfcMechanicalFastenerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value)),\n  1114901282: (id, v) => new IFC4.IfcMedicalDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3181161470: (id, v) => new IFC4.IfcMemberType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  977012517: (id, v) => new IFC4.IfcMotorConnectionType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4143007308: (id, v) => new IFC4.IfcOccupant(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), new Handle(v[5].value), v[6]),\n  3588315303: (id, v) => new IFC4.IfcOpeningElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3079942009: (id, v) => new IFC4.IfcOpeningStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2837617999: (id, v) => new IFC4.IfcOutletType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2382730787: (id, v) => new IFC4.IfcPerformanceHistory(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcLabel(v[6].value), v[7]),\n  3566463478: (id, v) => new IFC4.IfcPermeableCoveringProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  3327091369: (id, v) => new IFC4.IfcPermit(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcText(v[8].value)),\n  1158309216: (id, v) => new IFC4.IfcPileType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  804291784: (id, v) => new IFC4.IfcPipeFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4231323485: (id, v) => new IFC4.IfcPipeSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4017108033: (id, v) => new IFC4.IfcPlateType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2839578677: (id, v) => new IFC4.IfcPolygonalFaceSet(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcBoolean(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : v[3].map((p) => new IFC4.IfcPositiveInteger(p.value))),\n  3724593414: (id, v) => new IFC4.IfcPolyline(id, v[0].map((p) => new Handle(p.value))),\n  3740093272: (id, v) => new IFC4.IfcPort(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)),\n  2744685151: (id, v) => new IFC4.IfcProcedure(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), v[7]),\n  2904328755: (id, v) => new IFC4.IfcProjectOrder(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcText(v[8].value)),\n  3651124850: (id, v) => new IFC4.IfcProjectionElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1842657554: (id, v) => new IFC4.IfcProtectiveDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2250791053: (id, v) => new IFC4.IfcPumpType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2893384427: (id, v) => new IFC4.IfcRailingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2324767716: (id, v) => new IFC4.IfcRampFlightType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1469900589: (id, v) => new IFC4.IfcRampType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  683857671: (id, v) => new IFC4.IfcRationalBSplineSurfaceWithKnots(id, new IFC4.IfcInteger(v[0].value), new IFC4.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4.IfcLogical(v[4].value), new IFC4.IfcLogical(v[5].value), new IFC4.IfcLogical(v[6].value), v[7].map((p) => new IFC4.IfcInteger(p.value)), v[8].map((p) => new IFC4.IfcInteger(p.value)), v[9].map((p) => new IFC4.IfcParameterValue(p.value)), v[10].map((p) => new IFC4.IfcParameterValue(p.value)), v[11], v[12].map((p) => new IFC4.IfcReal(p.value))),\n  3027567501: (id, v) => new IFC4.IfcReinforcingElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  964333572: (id, v) => new IFC4.IfcReinforcingElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  2320036040: (id, v) => new IFC4.IfcReinforcingMesh(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4.IfcAreaMeasure(v[13].value), !v[14] ? null : new IFC4.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC4.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(v[16].value), v[17]),\n  2310774935: (id, v) => new IFC4.IfcReinforcingMeshType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new IFC4.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC4.IfcAreaMeasure(v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(v[16].value), !v[17] ? null : new IFC4.IfcPositiveLengthMeasure(v[17].value), !v[18] ? null : new IFC4.IfcLabel(v[18].value), !v[19] ? null : v[19].map((p) => TypeInitialiser(3, p))),\n  160246688: (id, v) => new IFC4.IfcRelAggregates(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))),\n  2781568857: (id, v) => new IFC4.IfcRoofType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1768891740: (id, v) => new IFC4.IfcSanitaryTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2157484638: (id, v) => new IFC4.IfcSeamCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]),\n  4074543187: (id, v) => new IFC4.IfcShadingDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4097777520: (id, v) => new IFC4.IfcSite(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4.IfcCompoundPlaneAngleMeasure(v[9].value), !v[10] ? null : new IFC4.IfcCompoundPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC4.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcLabel(v[12].value), !v[13] ? null : new Handle(v[13].value)),\n  2533589738: (id, v) => new IFC4.IfcSlabType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1072016465: (id, v) => new IFC4.IfcSolarDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3856911033: (id, v) => new IFC4.IfcSpace(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], v[9], !v[10] ? null : new IFC4.IfcLengthMeasure(v[10].value)),\n  1305183839: (id, v) => new IFC4.IfcSpaceHeaterType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3812236995: (id, v) => new IFC4.IfcSpaceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(v[10].value)),\n  3112655638: (id, v) => new IFC4.IfcStackTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1039846685: (id, v) => new IFC4.IfcStairFlightType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  338393293: (id, v) => new IFC4.IfcStairType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  682877961: (id, v) => new IFC4.IfcStructuralAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value)),\n  1179482911: (id, v) => new IFC4.IfcStructuralConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  1004757350: (id, v) => new IFC4.IfcStructuralCurveAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value), v[10], v[11]),\n  4243806635: (id, v) => new IFC4.IfcStructuralCurveConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), new Handle(v[8].value)),\n  214636428: (id, v) => new IFC4.IfcStructuralCurveMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], new Handle(v[8].value)),\n  2445595289: (id, v) => new IFC4.IfcStructuralCurveMemberVarying(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], new Handle(v[8].value)),\n  2757150158: (id, v) => new IFC4.IfcStructuralCurveReaction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9]),\n  1807405624: (id, v) => new IFC4.IfcStructuralLinearAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value), v[10], v[11]),\n  1252848954: (id, v) => new IFC4.IfcStructuralLoadGroup(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC4.IfcLabel(v[9].value)),\n  2082059205: (id, v) => new IFC4.IfcStructuralPointAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value)),\n  734778138: (id, v) => new IFC4.IfcStructuralPointConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value)),\n  1235345126: (id, v) => new IFC4.IfcStructuralPointReaction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]),\n  2986769608: (id, v) => new IFC4.IfcStructuralResultGroup(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), new IFC4.IfcBoolean(v[7].value)),\n  3657597509: (id, v) => new IFC4.IfcStructuralSurfaceAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value), v[10], v[11]),\n  1975003073: (id, v) => new IFC4.IfcStructuralSurfaceConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)),\n  148013059: (id, v) => new IFC4.IfcSubContractResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  3101698114: (id, v) => new IFC4.IfcSurfaceFeature(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2315554128: (id, v) => new IFC4.IfcSwitchingDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2254336722: (id, v) => new IFC4.IfcSystem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)),\n  413509423: (id, v) => new IFC4.IfcSystemFurnitureElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  5716631: (id, v) => new IFC4.IfcTankType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3824725483: (id, v) => new IFC4.IfcTendon(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4.IfcForceMeasure(v[12].value), !v[13] ? null : new IFC4.IfcPressureMeasure(v[13].value), !v[14] ? null : new IFC4.IfcNormalisedRatioMeasure(v[14].value), !v[15] ? null : new IFC4.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(v[16].value)),\n  2347447852: (id, v) => new IFC4.IfcTendonAnchor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3081323446: (id, v) => new IFC4.IfcTendonAnchorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2415094496: (id, v) => new IFC4.IfcTendonType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value)),\n  1692211062: (id, v) => new IFC4.IfcTransformerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1620046519: (id, v) => new IFC4.IfcTransportElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3593883385: (id, v) => new IFC4.IfcTrimmedCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value)), new IFC4.IfcBoolean(v[3].value), v[4]),\n  1600972822: (id, v) => new IFC4.IfcTubeBundleType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1911125066: (id, v) => new IFC4.IfcUnitaryEquipmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  728799441: (id, v) => new IFC4.IfcValveType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2391383451: (id, v) => new IFC4.IfcVibrationIsolator(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3313531582: (id, v) => new IFC4.IfcVibrationIsolatorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2769231204: (id, v) => new IFC4.IfcVirtualElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  926996030: (id, v) => new IFC4.IfcVoidingFeature(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1898987631: (id, v) => new IFC4.IfcWallType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1133259667: (id, v) => new IFC4.IfcWasteTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4009809668: (id, v) => new IFC4.IfcWindowType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcBoolean(v[11].value), !v[12] ? null : new IFC4.IfcLabel(v[12].value)),\n  4088093105: (id, v) => new IFC4.IfcWorkCalendar(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value)), v[8]),\n  1028945134: (id, v) => new IFC4.IfcWorkControl(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcDuration(v[9].value), !v[10] ? null : new IFC4.IfcDuration(v[10].value), new IFC4.IfcDateTime(v[11].value), !v[12] ? null : new IFC4.IfcDateTime(v[12].value)),\n  4218914973: (id, v) => new IFC4.IfcWorkPlan(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcDuration(v[9].value), !v[10] ? null : new IFC4.IfcDuration(v[10].value), new IFC4.IfcDateTime(v[11].value), !v[12] ? null : new IFC4.IfcDateTime(v[12].value), v[13]),\n  3342526732: (id, v) => new IFC4.IfcWorkSchedule(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcDuration(v[9].value), !v[10] ? null : new IFC4.IfcDuration(v[10].value), new IFC4.IfcDateTime(v[11].value), !v[12] ? null : new IFC4.IfcDateTime(v[12].value), v[13]),\n  1033361043: (id, v) => new IFC4.IfcZone(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value)),\n  3821786052: (id, v) => new IFC4.IfcActionRequest(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcText(v[8].value)),\n  1411407467: (id, v) => new IFC4.IfcAirTerminalBoxType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3352864051: (id, v) => new IFC4.IfcAirTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1871374353: (id, v) => new IFC4.IfcAirToAirHeatRecoveryType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3460190687: (id, v) => new IFC4.IfcAsset(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new Handle(v[11].value), !v[12] ? null : new IFC4.IfcDate(v[12].value), !v[13] ? null : new Handle(v[13].value)),\n  1532957894: (id, v) => new IFC4.IfcAudioVisualApplianceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1967976161: (id, v) => new IFC4.IfcBSplineCurve(id, new IFC4.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4.IfcLogical(v[3].value), new IFC4.IfcLogical(v[4].value)),\n  2461110595: (id, v) => new IFC4.IfcBSplineCurveWithKnots(id, new IFC4.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4.IfcLogical(v[3].value), new IFC4.IfcLogical(v[4].value), v[5].map((p) => new IFC4.IfcInteger(p.value)), v[6].map((p) => new IFC4.IfcParameterValue(p.value)), v[7]),\n  819618141: (id, v) => new IFC4.IfcBeamType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  231477066: (id, v) => new IFC4.IfcBoilerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1136057603: (id, v) => new IFC4.IfcBoundaryCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLogical(v[1].value)),\n  3299480353: (id, v) => new IFC4.IfcBuildingElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  2979338954: (id, v) => new IFC4.IfcBuildingElementPart(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  39481116: (id, v) => new IFC4.IfcBuildingElementPartType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1095909175: (id, v) => new IFC4.IfcBuildingElementProxy(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1909888760: (id, v) => new IFC4.IfcBuildingElementProxyType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1177604601: (id, v) => new IFC4.IfcBuildingSystem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : new IFC4.IfcLabel(v[6].value)),\n  2188180465: (id, v) => new IFC4.IfcBurnerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  395041908: (id, v) => new IFC4.IfcCableCarrierFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3293546465: (id, v) => new IFC4.IfcCableCarrierSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2674252688: (id, v) => new IFC4.IfcCableFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1285652485: (id, v) => new IFC4.IfcCableSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2951183804: (id, v) => new IFC4.IfcChillerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3296154744: (id, v) => new IFC4.IfcChimney(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2611217952: (id, v) => new IFC4.IfcCircle(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)),\n  1677625105: (id, v) => new IFC4.IfcCivilElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  2301859152: (id, v) => new IFC4.IfcCoilType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  843113511: (id, v) => new IFC4.IfcColumn(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  905975707: (id, v) => new IFC4.IfcColumnStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  400855858: (id, v) => new IFC4.IfcCommunicationsApplianceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3850581409: (id, v) => new IFC4.IfcCompressorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2816379211: (id, v) => new IFC4.IfcCondenserType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3898045240: (id, v) => new IFC4.IfcConstructionEquipmentResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  1060000209: (id, v) => new IFC4.IfcConstructionMaterialResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  488727124: (id, v) => new IFC4.IfcConstructionProductResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]),\n  335055490: (id, v) => new IFC4.IfcCooledBeamType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2954562838: (id, v) => new IFC4.IfcCoolingTowerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1973544240: (id, v) => new IFC4.IfcCovering(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3495092785: (id, v) => new IFC4.IfcCurtainWall(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3961806047: (id, v) => new IFC4.IfcDamperType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1335981549: (id, v) => new IFC4.IfcDiscreteAccessory(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2635815018: (id, v) => new IFC4.IfcDiscreteAccessoryType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1599208980: (id, v) => new IFC4.IfcDistributionChamberElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2063403501: (id, v) => new IFC4.IfcDistributionControlElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)),\n  1945004755: (id, v) => new IFC4.IfcDistributionElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  3040386961: (id, v) => new IFC4.IfcDistributionFlowElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  3041715199: (id, v) => new IFC4.IfcDistributionPort(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], v[9]),\n  3205830791: (id, v) => new IFC4.IfcDistributionSystem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), v[6]),\n  395920057: (id, v) => new IFC4.IfcDoor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(v[12].value)),\n  3242481149: (id, v) => new IFC4.IfcDoorStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(v[12].value)),\n  869906466: (id, v) => new IFC4.IfcDuctFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3760055223: (id, v) => new IFC4.IfcDuctSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2030761528: (id, v) => new IFC4.IfcDuctSilencerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  663422040: (id, v) => new IFC4.IfcElectricApplianceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2417008758: (id, v) => new IFC4.IfcElectricDistributionBoardType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  3277789161: (id, v) => new IFC4.IfcElectricFlowStorageDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1534661035: (id, v) => new IFC4.IfcElectricGeneratorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1217240411: (id, v) => new IFC4.IfcElectricMotorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  712377611: (id, v) => new IFC4.IfcElectricTimeControlType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1658829314: (id, v) => new IFC4.IfcEnergyConversionDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  2814081492: (id, v) => new IFC4.IfcEngine(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3747195512: (id, v) => new IFC4.IfcEvaporativeCooler(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  484807127: (id, v) => new IFC4.IfcEvaporator(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1209101575: (id, v) => new IFC4.IfcExternalSpatialElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8]),\n  346874300: (id, v) => new IFC4.IfcFanType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1810631287: (id, v) => new IFC4.IfcFilterType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4222183408: (id, v) => new IFC4.IfcFireSuppressionTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2058353004: (id, v) => new IFC4.IfcFlowController(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  4278956645: (id, v) => new IFC4.IfcFlowFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  4037862832: (id, v) => new IFC4.IfcFlowInstrumentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  2188021234: (id, v) => new IFC4.IfcFlowMeter(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3132237377: (id, v) => new IFC4.IfcFlowMovingDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  987401354: (id, v) => new IFC4.IfcFlowSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  707683696: (id, v) => new IFC4.IfcFlowStorageDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  2223149337: (id, v) => new IFC4.IfcFlowTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  3508470533: (id, v) => new IFC4.IfcFlowTreatmentDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  900683007: (id, v) => new IFC4.IfcFooting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3319311131: (id, v) => new IFC4.IfcHeatExchanger(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2068733104: (id, v) => new IFC4.IfcHumidifier(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4175244083: (id, v) => new IFC4.IfcInterceptor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2176052936: (id, v) => new IFC4.IfcJunctionBox(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  76236018: (id, v) => new IFC4.IfcLamp(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  629592764: (id, v) => new IFC4.IfcLightFixture(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1437502449: (id, v) => new IFC4.IfcMedicalDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1073191201: (id, v) => new IFC4.IfcMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1911478936: (id, v) => new IFC4.IfcMemberStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2474470126: (id, v) => new IFC4.IfcMotorConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  144952367: (id, v) => new IFC4.IfcOuterBoundaryCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLogical(v[1].value)),\n  3694346114: (id, v) => new IFC4.IfcOutlet(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1687234759: (id, v) => new IFC4.IfcPile(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8], v[9]),\n  310824031: (id, v) => new IFC4.IfcPipeFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3612865200: (id, v) => new IFC4.IfcPipeSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3171933400: (id, v) => new IFC4.IfcPlate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1156407060: (id, v) => new IFC4.IfcPlateStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  738039164: (id, v) => new IFC4.IfcProtectiveDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  655969474: (id, v) => new IFC4.IfcProtectiveDeviceTrippingUnitType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  90941305: (id, v) => new IFC4.IfcPump(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2262370178: (id, v) => new IFC4.IfcRailing(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3024970846: (id, v) => new IFC4.IfcRamp(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3283111854: (id, v) => new IFC4.IfcRampFlight(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1232101972: (id, v) => new IFC4.IfcRationalBSplineCurveWithKnots(id, new IFC4.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4.IfcLogical(v[3].value), new IFC4.IfcLogical(v[4].value), v[5].map((p) => new IFC4.IfcInteger(p.value)), v[6].map((p) => new IFC4.IfcParameterValue(p.value)), v[7], v[8].map((p) => new IFC4.IfcReal(p.value))),\n  979691226: (id, v) => new IFC4.IfcReinforcingBar(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcAreaMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value), v[12], v[13]),\n  2572171363: (id, v) => new IFC4.IfcReinforcingBarType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value), v[13], !v[14] ? null : new IFC4.IfcLabel(v[14].value), !v[15] ? null : v[15].map((p) => TypeInitialiser(3, p))),\n  2016517767: (id, v) => new IFC4.IfcRoof(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3053780830: (id, v) => new IFC4.IfcSanitaryTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1783015770: (id, v) => new IFC4.IfcSensorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1329646415: (id, v) => new IFC4.IfcShadingDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1529196076: (id, v) => new IFC4.IfcSlab(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3127900445: (id, v) => new IFC4.IfcSlabElementedCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3027962421: (id, v) => new IFC4.IfcSlabStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3420628829: (id, v) => new IFC4.IfcSolarDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1999602285: (id, v) => new IFC4.IfcSpaceHeater(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1404847402: (id, v) => new IFC4.IfcStackTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  331165859: (id, v) => new IFC4.IfcStair(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4252922144: (id, v) => new IFC4.IfcStairFlight(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcInteger(v[8].value), !v[9] ? null : new IFC4.IfcInteger(v[9].value), !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value), v[12]),\n  2515109513: (id, v) => new IFC4.IfcStructuralAnalysisModel(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value)),\n  385403989: (id, v) => new IFC4.IfcStructuralLoadCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC4.IfcLabel(v[9].value), !v[10] ? null : v[10].map((p) => new IFC4.IfcRatioMeasure(p.value))),\n  1621171031: (id, v) => new IFC4.IfcStructuralPlanarAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value), v[10], v[11]),\n  1162798199: (id, v) => new IFC4.IfcSwitchingDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  812556717: (id, v) => new IFC4.IfcTank(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3825984169: (id, v) => new IFC4.IfcTransformer(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3026737570: (id, v) => new IFC4.IfcTubeBundle(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3179687236: (id, v) => new IFC4.IfcUnitaryControlElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4292641817: (id, v) => new IFC4.IfcUnitaryEquipment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4207607924: (id, v) => new IFC4.IfcValve(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2391406946: (id, v) => new IFC4.IfcWall(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4156078855: (id, v) => new IFC4.IfcWallElementedCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3512223829: (id, v) => new IFC4.IfcWallStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4237592921: (id, v) => new IFC4.IfcWasteTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3304561284: (id, v) => new IFC4.IfcWindow(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(v[12].value)),\n  486154966: (id, v) => new IFC4.IfcWindowStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(v[12].value)),\n  2874132201: (id, v) => new IFC4.IfcActuatorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  1634111441: (id, v) => new IFC4.IfcAirTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  177149247: (id, v) => new IFC4.IfcAirTerminalBox(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2056796094: (id, v) => new IFC4.IfcAirToAirHeatRecovery(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3001207471: (id, v) => new IFC4.IfcAlarmType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  277319702: (id, v) => new IFC4.IfcAudioVisualAppliance(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  753842376: (id, v) => new IFC4.IfcBeam(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2906023776: (id, v) => new IFC4.IfcBeamStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  32344328: (id, v) => new IFC4.IfcBoiler(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2938176219: (id, v) => new IFC4.IfcBurner(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  635142910: (id, v) => new IFC4.IfcCableCarrierFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3758799889: (id, v) => new IFC4.IfcCableCarrierSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1051757585: (id, v) => new IFC4.IfcCableFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4217484030: (id, v) => new IFC4.IfcCableSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3902619387: (id, v) => new IFC4.IfcChiller(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  639361253: (id, v) => new IFC4.IfcCoil(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3221913625: (id, v) => new IFC4.IfcCommunicationsAppliance(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3571504051: (id, v) => new IFC4.IfcCompressor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2272882330: (id, v) => new IFC4.IfcCondenser(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  578613899: (id, v) => new IFC4.IfcControllerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]),\n  4136498852: (id, v) => new IFC4.IfcCooledBeam(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3640358203: (id, v) => new IFC4.IfcCoolingTower(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4074379575: (id, v) => new IFC4.IfcDamper(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1052013943: (id, v) => new IFC4.IfcDistributionChamberElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  562808652: (id, v) => new IFC4.IfcDistributionCircuit(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), v[6]),\n  1062813311: (id, v) => new IFC4.IfcDistributionControlElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)),\n  342316401: (id, v) => new IFC4.IfcDuctFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3518393246: (id, v) => new IFC4.IfcDuctSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1360408905: (id, v) => new IFC4.IfcDuctSilencer(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1904799276: (id, v) => new IFC4.IfcElectricAppliance(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  862014818: (id, v) => new IFC4.IfcElectricDistributionBoard(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3310460725: (id, v) => new IFC4.IfcElectricFlowStorageDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  264262732: (id, v) => new IFC4.IfcElectricGenerator(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  402227799: (id, v) => new IFC4.IfcElectricMotor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1003880860: (id, v) => new IFC4.IfcElectricTimeControl(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3415622556: (id, v) => new IFC4.IfcFan(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  819412036: (id, v) => new IFC4.IfcFilter(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  1426591983: (id, v) => new IFC4.IfcFireSuppressionTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  182646315: (id, v) => new IFC4.IfcFlowInstrument(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  2295281155: (id, v) => new IFC4.IfcProtectiveDeviceTrippingUnit(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4086658281: (id, v) => new IFC4.IfcSensor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  630975310: (id, v) => new IFC4.IfcUnitaryControlElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  4288193352: (id, v) => new IFC4.IfcActuator(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  3087945054: (id, v) => new IFC4.IfcAlarm(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]),\n  25142252: (id, v) => new IFC4.IfcController(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8])\n};\nInheritanceDef[3] = {\n  618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],\n  411424972: [IFCCOSTVALUE],\n  4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],\n  1387855156: [IFCBOUNDARYNODECONDITIONWARPING],\n  2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],\n  2614616156: [IFCCONNECTIONPOINTECCENTRICITY],\n  1959218052: [IFCOBJECTIVE, IFCMETRIC],\n  1785450214: [IFCMAPCONVERSION],\n  1466758467: [IFCPROJECTEDCRS],\n  4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION],\n  3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],\n  760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER],\n  248100487: [IFCMATERIALLAYERWITHOFFSETS],\n  2235152071: [IFCMATERIALPROFILEWITHOFFSETS],\n  1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE],\n  1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],\n  3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT],\n  2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],\n  2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],\n  677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING],\n  2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],\n  3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE],\n  2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],\n  3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],\n  986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION],\n  1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],\n  3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],\n  3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM],\n  2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP],\n  2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION],\n  1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME],\n  3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],\n  2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],\n  2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION],\n  609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],\n  2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],\n  2830218821: [IFCSTYLEDREPRESENTATION],\n  846575682: [IFCSURFACESTYLERENDERING],\n  626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],\n  1549132990: [IFCTASKTIMERECURRING],\n  280115917: [IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],\n  3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],\n  1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],\n  2799835756: [IFCVERTEXPOINT],\n  3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],\n  1310608509: [IFCCENTERLINEPROFILEDEF],\n  3264961684: [IFCCOLOURRGB],\n  370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],\n  2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET],\n  3632507154: [IFCMIRROREDPROFILEDEF],\n  3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],\n  297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES],\n  2556980723: [IFCADVANCEDFACE, IFCFACESURFACE],\n  1809719519: [IFCFACEOUTERBOUND],\n  3008276851: [IFCADVANCEDFACE],\n  3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],\n  2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],\n  3590301190: [IFCGEOMETRICCURVESET],\n  812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],\n  1437953363: [IFCINDEXEDTRIANGLETEXTUREMAP],\n  1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],\n  1520743889: [IFCLIGHTSOURCESPOT],\n  1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],\n  3079605661: [IFCMATERIALPROFILESETUSAGETAPERING],\n  219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT],\n  2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],\n  2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],\n  1663979128: [IFCPLANARBOX],\n  2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE],\n  3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT],\n  3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES],\n  1775413392: [IFCTEXTSTYLEFONTMODEL],\n  2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],\n  1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION],\n  3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET],\n  1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE],\n  2090586900: [IFCELEMENTQUANTITY],\n  3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],\n  478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],\n  3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],\n  723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID],\n  2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],\n  1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],\n  2513912981: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],\n  2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID],\n  1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL],\n  230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],\n  901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE],\n  4282788508: [IFCTEXTLITERALWITHEXTENT],\n  1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS],\n  3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE],\n  2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE],\n  3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE],\n  2736907675: [IFCBOOLEANCLIPPINGRESULT],\n  4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE],\n  574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D],\n  59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],\n  3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],\n  3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],\n  1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],\n  2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT],\n  2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE],\n  3419103109: [IFCPROJECTLIBRARY, IFCPROJECT],\n  2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],\n  2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE],\n  339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],\n  2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE],\n  477187591: [IFCEXTRUDEDAREASOLIDTAPERED],\n  4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],\n  178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS],\n  1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP],\n  3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS],\n  759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],\n  2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],\n  3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES],\n  2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK],\n  4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY],\n  3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE],\n  3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR],\n  1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR],\n  1865459582: [IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL],\n  826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],\n  1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],\n  1638771189: [IFCRELCONNECTSWITHECCENTRICITY],\n  2551354335: [IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS],\n  693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT],\n  3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL],\n  3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL],\n  2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],\n  1856042241: [IFCREVOLVEDAREASOLIDTAPERED],\n  1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT],\n  710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE],\n  2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING],\n  3893378262: [IFCSPACETYPE],\n  3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION],\n  3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],\n  530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],\n  3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION],\n  3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],\n  699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE],\n  2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET],\n  2296667514: [IFCOCCUPANT],\n  1635779807: [IFCADVANCEDBREPWITHVOIDS],\n  2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS],\n  167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS],\n  1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE],\n  1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE],\n  3732776249: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE],\n  15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE],\n  2510884976: [IFCCIRCLE, IFCELLIPSE],\n  2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],\n  3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM],\n  3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],\n  3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE],\n  1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],\n  1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER],\n  2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE],\n  2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE],\n  2853485674: [IFCEXTERNALSPATIALELEMENT],\n  807026263: [IFCFACETEDBREPWITHVOIDS],\n  2827207264: [IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],\n  2143335405: [IFCPROJECTIONELEMENT],\n  1287392070: [IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT],\n  3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],\n  3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],\n  1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],\n  1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],\n  1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],\n  2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE],\n  3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE],\n  263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE],\n  2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],\n  3588315303: [IFCOPENINGSTANDARDCASE],\n  3740093272: [IFCDISTRIBUTIONPORT],\n  3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],\n  964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE],\n  682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION],\n  1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],\n  1004757350: [IFCSTRUCTURALLINEARACTION],\n  214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],\n  1252848954: [IFCSTRUCTURALLOADCASE],\n  3657597509: [IFCSTRUCTURALPLANARACTION],\n  2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE],\n  1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],\n  1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS],\n  2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS],\n  1136057603: [IFCOUTERBOUNDARYCURVE],\n  3299480353: [IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY],\n  843113511: [IFCCOLUMNSTANDARDCASE],\n  2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE],\n  1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],\n  3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE],\n  3205830791: [IFCDISTRIBUTIONCIRCUIT],\n  395920057: [IFCDOORSTANDARDCASE],\n  1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE],\n  2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER],\n  4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX],\n  3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP],\n  987401354: [IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT],\n  707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK],\n  2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP],\n  3508470533: [IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR],\n  1073191201: [IFCMEMBERSTANDARDCASE],\n  3171933400: [IFCPLATESTANDARDCASE],\n  1529196076: [IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE],\n  2391406946: [IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE],\n  3304561284: [IFCWINDOWSTANDARDCASE],\n  753842376: [IFCBEAMSTANDARDCASE],\n  1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT]\n};\nInversePropertyDef[3] = {\n  3630933823: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  618182010: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  411424972: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  130549933: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"ApprovedObjects\", IFCRELASSOCIATESAPPROVAL, 5, true], [\"ApprovedResources\", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], [\"IsRelatedWith\", IFCAPPROVALRELATIONSHIP, 3, true], [\"Relates\", IFCAPPROVALRELATIONSHIP, 2, true]],\n  1959218052: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n  1466758467: [[\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n  602808272: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  3200245327: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n  2242383968: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n  1040185647: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n  3548104201: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n  852622518: [[\"PartOfW\", IFCGRID, 9, true], [\"PartOfV\", IFCGRID, 8, true], [\"PartOfU\", IFCGRID, 7, true], [\"HasIntersections\", IFCVIRTUALGRIDINTERSECTION, 0, true]],\n  2655187982: [[\"LibraryInfoForObjects\", IFCRELASSOCIATESLIBRARY, 5, true], [\"HasLibraryReferences\", IFCLIBRARYREFERENCE, 5, true]],\n  3452421091: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"LibraryRefForObjects\", IFCRELASSOCIATESLIBRARY, 5, true]],\n  760658860: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n  248100487: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n  3303938423: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n  1847252529: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n  2235152071: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialProfileSet\", IFCMATERIALPROFILESET, 2, false]],\n  164193824: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n  552965576: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialProfileSet\", IFCMATERIALPROFILESET, 2, false]],\n  1507914824: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n  3368373690: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n  3701648758: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n  2251480897: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n  4251960020: [[\"IsRelatedBy\", IFCORGANIZATIONRELATIONSHIP, 3, true], [\"Relates\", IFCORGANIZATIONRELATIONSHIP, 2, true], [\"Engages\", IFCPERSONANDORGANIZATION, 1, true]],\n  2077209135: [[\"EngagedIn\", IFCPERSONANDORGANIZATION, 0, true]],\n  2483315170: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2226359599: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  3355820592: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  3958567839: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  3843373140: [[\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n  986844984: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  3710013099: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2044713172: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2093928680: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  931644368: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  3252649465: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  2405470396: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  825690147: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  1076942058: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  3377609919: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true]],\n  3008791417: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1660063152: [[\"HasShapeAspects\", IFCSHAPEASPECT, 4, true], [\"MapUsage\", IFCMAPPEDITEM, 0, true]],\n  3982875396: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  4240577450: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  2830218821: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  3958052878: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3049322572: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n  626085974: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n  912023232: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n  3101149627: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  1377556343: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1735638870: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n  2799835756: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1907098498: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3798115385: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1310608509: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2705031697: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  616511568: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n  3150382593: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  747523909: [[\"ClassificationForObjects\", IFCRELASSOCIATESCLASSIFICATION, 5, true], [\"HasReferences\", IFCCLASSIFICATIONREFERENCE, 3, true]],\n  647927063: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"ClassificationRefForObjects\", IFCRELASSOCIATESCLASSIFICATION, 5, true], [\"HasReferences\", IFCCLASSIFICATIONREFERENCE, 3, true]],\n  1485152156: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  370225590: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3050246964: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2889183280: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2713554722: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  3632507154: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1154170062: [[\"DocumentInfoForObjects\", IFCRELASSOCIATESDOCUMENT, 5, true], [\"HasDocumentReferences\", IFCDOCUMENTREFERENCE, 4, true], [\"IsPointedTo\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], [\"IsPointer\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]],\n  3732053477: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"DocumentRefForObjects\", IFCRELASSOCIATESDOCUMENT, 5, true]],\n  3900360178: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  476780140: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  297599258: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2556980723: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n  1809719519: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  803316827: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3008276851: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n  3448662350: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], [\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n  2453401579: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4142052618: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], [\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n  3590301190: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  178086475: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n  812098782: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3905492369: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n  3741457305: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  1402838566: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  125510826: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2604431987: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4266656042: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1520743889: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3422422726: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2624227202: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n  1008929658: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2347385850: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1838606355: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"HasRepresentation\", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], [\"IsRelatedWith\", IFCMATERIALRELATIONSHIP, 3, true], [\"RelatesTo\", IFCMATERIALRELATIONSHIP, 2, true]],\n  3708119e3: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialConstituentSet\", IFCMATERIALCONSTITUENTSET, 2, false]],\n  2852063980: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n  1303795690: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n  3079605661: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n  3404854881: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n  3265635763: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2998442950: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  219451334: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n  2665983363: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1029017970: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2529465313: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2519244187: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3021840470: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n  597895409: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n  2004835150: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1663979128: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2067069095: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4022376103: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1423911732: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2924175390: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2775532180: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3778827333: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  673634403: [[\"ShapeOfProduct\", IFCPRODUCT, 6, true], [\"HasShapeAspects\", IFCSHAPEASPECT, 4, true]],\n  2802850158: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2598011224: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  1680319473: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n  3357820518: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  1482703590: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n  2090586900: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  3615266464: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  3413951693: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  1580146022: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  2778083089: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2042790032: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  4165799628: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n  1509187699: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4124623270: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3692461612: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  723233188: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2233826070: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2513912981: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2247615214: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1260650574: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1096409881: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  230924584: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3071757647: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  901063453: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4282788508: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3124975700: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2715220739: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1628702193: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true]],\n  3736923433: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2347495698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3698973494: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  427810014: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1417489154: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2759199220: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1299126871: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2543172580: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  3406155212: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n  669184980: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3207858831: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  4261334040: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3125803723: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2740243338: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2736907675: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4182860854: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2581212453: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2713105998: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2898889636: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  1123145078: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  574549367: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1675464909: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2059837836: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  59481748: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3749851601: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3486308946: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3331915920: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1416205885: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1383045692: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2205249479: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2542286263: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  2485617015: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n  2574617495: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  3419103109: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n  1815067380: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  2506170314: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2147822146: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2601014836: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2827736869: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2629017746: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  32440307: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  526551008: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1472233963: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1883228015: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  339256511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2777663545: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2835456948: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  4024345920: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  477187591: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2804161546: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2047409740: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  374418227: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  315944413: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2652556860: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4238390223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1268542332: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4095422895: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  987898635: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1484403080: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  178912537: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"ToFaceSet\", IFCPOLYGONALFACESET, 2, true]],\n  2294589976: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"ToFaceSet\", IFCPOLYGONALFACESET, 2, true]],\n  572779678: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  428585644: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1281925730: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1425443689: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3888040117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true]],\n  3388369263: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3505215534: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1682466193: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  603570806: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  220341763: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3967405729: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  569719735: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2945172077: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  4208778838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  103090709: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n  653396225: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n  871118103: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  4166981789: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  2752243245: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  941946838: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  1451395588: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  492091185: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Defines\", IFCRELDEFINESBYTEMPLATE, 5, true]],\n  3650150729: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  110355661: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n  3521284610: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n  3219374653: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2770003689: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  2798486643: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3454111270: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3765753017: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  3523091289: [[\"InnerBoundaries\", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]],\n  1521410863: [[\"InnerBoundaries\", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], [\"Corresponds\", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]],\n  816062949: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n  2914609552: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1856042241: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3243963512: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4158566097: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3626867408: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3663146110: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n  1412071761: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n  710998568: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2706606064: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n  3893378262: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  463610769: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n  2481509218: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  451544542: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4015995234: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3544373492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  3136571912: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],\n  530289379: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  3689010777: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  3979015343: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  2218152070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  603775116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  4095615324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  699246055: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2028607225: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2809605785: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4124788165: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1580310250: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3473067441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  3206491090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2387106220: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n  1935646853: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2097647324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2916149573: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n  336235671: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  512836454: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  2296667514: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n  1635779807: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2603310189: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1674181508: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2887950389: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  167062518: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1334484129: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3649129432: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1260505505: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4031249490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n  1950629157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3124254112: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n  2197970202: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2937912522: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n  3893394355: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  300633059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3875453745: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n  3732776249: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  15328376: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2510884976: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2185764099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  4105962743: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1525564444: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  2559216714: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  3293443760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3895139033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1419761937: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1916426348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3295246426: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1457835157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1213902940: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3256556792: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3849074793: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2963535650: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  1714330368: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  2323601079: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1758889154: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  4123344466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2397081782: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1623761950: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2590856083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1704287377: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2107101300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  132023988: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3174744832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3390157468: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4148101412: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2853485674: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n  807026263: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3737207727: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  647756555: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2489546625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2827207264: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2143335405: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n  1287392070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  3907093117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3198132628: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3815607619: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1482959167: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1834744321: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1339347760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2297155007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3009222698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1893162501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  263784265: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  1509553395: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3493046030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3009204131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n  2706460486: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true]],\n  1251058090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1806887404: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2571569899: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3946677679: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3113134337: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2391368822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true]],\n  4288270099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3827777499: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1051575348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1161773419: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  377706215: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2108223431: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1114901282: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3181161470: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  977012517: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4143007308: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n  3588315303: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false], [\"HasFillings\", IFCRELFILLSELEMENT, 4, true]],\n  3079942009: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false], [\"HasFillings\", IFCRELFILLSELEMENT, 4, true]],\n  2837617999: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2382730787: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3566463478: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n  3327091369: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1158309216: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  804291784: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4231323485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4017108033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2839578677: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n  3724593414: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3740093272: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, true], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n  2744685151: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n  2904328755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3651124850: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n  1842657554: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2250791053: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2893384427: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2324767716: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1469900589: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  683857671: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3027567501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  964333572: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2320036040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2310774935: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2781568857: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1768891740: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2157484638: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  4074543187: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4097777520: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n  2533589738: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1072016465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3856911033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"HasCoverings\", IFCRELCOVERSSPACES, 4, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n  1305183839: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3812236995: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3112655638: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1039846685: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  338393293: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  682877961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1179482911: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  1004757350: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  4243806635: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  214636428: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  2445595289: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n  2757150158: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1807405624: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1252848954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n  2082059205: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  734778138: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  1235345126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  2986769608: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ResultGroupFor\", IFCSTRUCTURALANALYSISMODEL, 8, true]],\n  3657597509: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1975003073: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n  148013059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  3101698114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2315554128: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2254336722: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  413509423: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  5716631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3824725483: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2347447852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3081323446: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2415094496: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1692211062: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1620046519: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3593883385: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1600972822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1911125066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  728799441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2391383451: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3313531582: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2769231204: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  926996030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n  1898987631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1133259667: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4009809668: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4088093105: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1028945134: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  4218914973: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  3342526732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1033361043: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  3821786052: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n  1411407467: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3352864051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1871374353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3460190687: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true]],\n  1532957894: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1967976161: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  2461110595: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  819618141: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  231477066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1136057603: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3299480353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2979338954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  39481116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1095909175: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  1909888760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1177604601: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  2188180465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  395041908: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3293546465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2674252688: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1285652485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2951183804: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3296154744: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2611217952: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  1677625105: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2301859152: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  843113511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  905975707: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  400855858: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3850581409: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2816379211: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3898045240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  1060000209: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  488727124: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n  335055490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2954562838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1973544240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"CoversSpaces\", IFCRELCOVERSSPACES, 5, true], [\"CoversElements\", IFCRELCOVERSBLDGELEMENTS, 5, true]],\n  3495092785: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3961806047: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1335981549: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2635815018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1599208980: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2063403501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1945004755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true]],\n  3040386961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3041715199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, true], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n  3205830791: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  395920057: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3242481149: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  869906466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3760055223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2030761528: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  663422040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2417008758: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  3277789161: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1534661035: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1217240411: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  712377611: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1658829314: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2814081492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3747195512: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  484807127: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1209101575: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n  346874300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1810631287: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4222183408: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2058353004: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4278956645: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4037862832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2188021234: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3132237377: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  987401354: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  707683696: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2223149337: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3508470533: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  900683007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3319311131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2068733104: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4175244083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2176052936: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  76236018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  629592764: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1437502449: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1073191201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  1911478936: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2474470126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  144952367: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  3694346114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1687234759: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  310824031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3612865200: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3171933400: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  1156407060: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  738039164: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  655969474: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  90941305: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2262370178: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3024970846: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3283111854: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  1232101972: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n  979691226: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2572171363: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  2016517767: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3053780830: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1783015770: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1329646415: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  1529196076: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3127900445: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3027962421: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3420628829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1999602285: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1404847402: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  331165859: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  4252922144: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2515109513: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  385403989: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n  1621171031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n  1162798199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  812556717: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3825984169: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3026737570: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3179687236: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4292641817: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4207607924: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2391406946: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  4156078855: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  3512223829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  4237592921: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3304561284: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  486154966: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2874132201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  1634111441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  177149247: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2056796094: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3001207471: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  277319702: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  753842376: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  2906023776: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n  32344328: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2938176219: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  635142910: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3758799889: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1051757585: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4217484030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3902619387: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  639361253: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3221913625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3571504051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  2272882330: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  578613899: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n  4136498852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3640358203: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  4074379575: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1052013943: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  562808652: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n  1062813311: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  342316401: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3518393246: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1360408905: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1904799276: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  862014818: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3310460725: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  264262732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  402227799: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1003880860: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  3415622556: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  819412036: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  1426591983: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n  182646315: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  2295281155: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  4086658281: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  630975310: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  4288193352: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  3087945054: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n  25142252: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]]\n};\nConstructors[3] = {\n  3630933823: (ID, a) => new IFC4.IfcActorRole(ID, a[0], a[1], a[2]),\n  618182010: (ID, a) => new IFC4.IfcAddress(ID, a[0], a[1], a[2]),\n  639542469: (ID, a) => new IFC4.IfcApplication(ID, a[0], a[1], a[2], a[3]),\n  411424972: (ID, a) => new IFC4.IfcAppliedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  130549933: (ID, a) => new IFC4.IfcApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4037036970: (ID, a) => new IFC4.IfcBoundaryCondition(ID, a[0]),\n  1560379544: (ID, a) => new IFC4.IfcBoundaryEdgeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3367102660: (ID, a) => new IFC4.IfcBoundaryFaceCondition(ID, a[0], a[1], a[2], a[3]),\n  1387855156: (ID, a) => new IFC4.IfcBoundaryNodeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2069777674: (ID, a) => new IFC4.IfcBoundaryNodeConditionWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2859738748: (ID, _) => new IFC4.IfcConnectionGeometry(ID),\n  2614616156: (ID, a) => new IFC4.IfcConnectionPointGeometry(ID, a[0], a[1]),\n  2732653382: (ID, a) => new IFC4.IfcConnectionSurfaceGeometry(ID, a[0], a[1]),\n  775493141: (ID, a) => new IFC4.IfcConnectionVolumeGeometry(ID, a[0], a[1]),\n  1959218052: (ID, a) => new IFC4.IfcConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1785450214: (ID, a) => new IFC4.IfcCoordinateOperation(ID, a[0], a[1]),\n  1466758467: (ID, a) => new IFC4.IfcCoordinateReferenceSystem(ID, a[0], a[1], a[2], a[3]),\n  602808272: (ID, a) => new IFC4.IfcCostValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1765591967: (ID, a) => new IFC4.IfcDerivedUnit(ID, a[0], a[1], a[2]),\n  1045800335: (ID, a) => new IFC4.IfcDerivedUnitElement(ID, a[0], a[1]),\n  2949456006: (ID, a) => new IFC4.IfcDimensionalExponents(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  4294318154: (ID, _) => new IFC4.IfcExternalInformation(ID),\n  3200245327: (ID, a) => new IFC4.IfcExternalReference(ID, a[0], a[1], a[2]),\n  2242383968: (ID, a) => new IFC4.IfcExternallyDefinedHatchStyle(ID, a[0], a[1], a[2]),\n  1040185647: (ID, a) => new IFC4.IfcExternallyDefinedSurfaceStyle(ID, a[0], a[1], a[2]),\n  3548104201: (ID, a) => new IFC4.IfcExternallyDefinedTextFont(ID, a[0], a[1], a[2]),\n  852622518: (ID, a) => new IFC4.IfcGridAxis(ID, a[0], a[1], a[2]),\n  3020489413: (ID, a) => new IFC4.IfcIrregularTimeSeriesValue(ID, a[0], a[1]),\n  2655187982: (ID, a) => new IFC4.IfcLibraryInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3452421091: (ID, a) => new IFC4.IfcLibraryReference(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4162380809: (ID, a) => new IFC4.IfcLightDistributionData(ID, a[0], a[1], a[2]),\n  1566485204: (ID, a) => new IFC4.IfcLightIntensityDistribution(ID, a[0], a[1]),\n  3057273783: (ID, a) => new IFC4.IfcMapConversion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1847130766: (ID, a) => new IFC4.IfcMaterialClassificationRelationship(ID, a[0], a[1]),\n  760658860: (ID, _) => new IFC4.IfcMaterialDefinition(ID),\n  248100487: (ID, a) => new IFC4.IfcMaterialLayer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3303938423: (ID, a) => new IFC4.IfcMaterialLayerSet(ID, a[0], a[1], a[2]),\n  1847252529: (ID, a) => new IFC4.IfcMaterialLayerWithOffsets(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2199411900: (ID, a) => new IFC4.IfcMaterialList(ID, a[0]),\n  2235152071: (ID, a) => new IFC4.IfcMaterialProfile(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  164193824: (ID, a) => new IFC4.IfcMaterialProfileSet(ID, a[0], a[1], a[2], a[3]),\n  552965576: (ID, a) => new IFC4.IfcMaterialProfileWithOffsets(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1507914824: (ID, _) => new IFC4.IfcMaterialUsageDefinition(ID),\n  2597039031: (ID, a) => new IFC4.IfcMeasureWithUnit(ID, a[0], a[1]),\n  3368373690: (ID, a) => new IFC4.IfcMetric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2706619895: (ID, a) => new IFC4.IfcMonetaryUnit(ID, a[0]),\n  1918398963: (ID, a) => new IFC4.IfcNamedUnit(ID, a[0], a[1]),\n  3701648758: (ID, _) => new IFC4.IfcObjectPlacement(ID),\n  2251480897: (ID, a) => new IFC4.IfcObjective(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4251960020: (ID, a) => new IFC4.IfcOrganization(ID, a[0], a[1], a[2], a[3], a[4]),\n  1207048766: (ID, a) => new IFC4.IfcOwnerHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2077209135: (ID, a) => new IFC4.IfcPerson(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  101040310: (ID, a) => new IFC4.IfcPersonAndOrganization(ID, a[0], a[1], a[2]),\n  2483315170: (ID, a) => new IFC4.IfcPhysicalQuantity(ID, a[0], a[1]),\n  2226359599: (ID, a) => new IFC4.IfcPhysicalSimpleQuantity(ID, a[0], a[1], a[2]),\n  3355820592: (ID, a) => new IFC4.IfcPostalAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  677532197: (ID, _) => new IFC4.IfcPresentationItem(ID),\n  2022622350: (ID, a) => new IFC4.IfcPresentationLayerAssignment(ID, a[0], a[1], a[2], a[3]),\n  1304840413: (ID, a) => new IFC4.IfcPresentationLayerWithStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3119450353: (ID, a) => new IFC4.IfcPresentationStyle(ID, a[0]),\n  2417041796: (ID, a) => new IFC4.IfcPresentationStyleAssignment(ID, a[0]),\n  2095639259: (ID, a) => new IFC4.IfcProductRepresentation(ID, a[0], a[1], a[2]),\n  3958567839: (ID, a) => new IFC4.IfcProfileDef(ID, a[0], a[1]),\n  3843373140: (ID, a) => new IFC4.IfcProjectedCRS(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  986844984: (ID, _) => new IFC4.IfcPropertyAbstraction(ID),\n  3710013099: (ID, a) => new IFC4.IfcPropertyEnumeration(ID, a[0], a[1], a[2]),\n  2044713172: (ID, a) => new IFC4.IfcQuantityArea(ID, a[0], a[1], a[2], a[3], a[4]),\n  2093928680: (ID, a) => new IFC4.IfcQuantityCount(ID, a[0], a[1], a[2], a[3], a[4]),\n  931644368: (ID, a) => new IFC4.IfcQuantityLength(ID, a[0], a[1], a[2], a[3], a[4]),\n  3252649465: (ID, a) => new IFC4.IfcQuantityTime(ID, a[0], a[1], a[2], a[3], a[4]),\n  2405470396: (ID, a) => new IFC4.IfcQuantityVolume(ID, a[0], a[1], a[2], a[3], a[4]),\n  825690147: (ID, a) => new IFC4.IfcQuantityWeight(ID, a[0], a[1], a[2], a[3], a[4]),\n  3915482550: (ID, a) => new IFC4.IfcRecurrencePattern(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2433181523: (ID, a) => new IFC4.IfcReference(ID, a[0], a[1], a[2], a[3], a[4]),\n  1076942058: (ID, a) => new IFC4.IfcRepresentation(ID, a[0], a[1], a[2], a[3]),\n  3377609919: (ID, a) => new IFC4.IfcRepresentationContext(ID, a[0], a[1]),\n  3008791417: (ID, _) => new IFC4.IfcRepresentationItem(ID),\n  1660063152: (ID, a) => new IFC4.IfcRepresentationMap(ID, a[0], a[1]),\n  2439245199: (ID, a) => new IFC4.IfcResourceLevelRelationship(ID, a[0], a[1]),\n  2341007311: (ID, a) => new IFC4.IfcRoot(ID, a[0], a[1], a[2], a[3]),\n  448429030: (ID, a) => new IFC4.IfcSIUnit(ID, a[0], a[1], a[2]),\n  1054537805: (ID, a) => new IFC4.IfcSchedulingTime(ID, a[0], a[1], a[2]),\n  867548509: (ID, a) => new IFC4.IfcShapeAspect(ID, a[0], a[1], a[2], a[3], a[4]),\n  3982875396: (ID, a) => new IFC4.IfcShapeModel(ID, a[0], a[1], a[2], a[3]),\n  4240577450: (ID, a) => new IFC4.IfcShapeRepresentation(ID, a[0], a[1], a[2], a[3]),\n  2273995522: (ID, a) => new IFC4.IfcStructuralConnectionCondition(ID, a[0]),\n  2162789131: (ID, a) => new IFC4.IfcStructuralLoad(ID, a[0]),\n  3478079324: (ID, a) => new IFC4.IfcStructuralLoadConfiguration(ID, a[0], a[1], a[2]),\n  609421318: (ID, a) => new IFC4.IfcStructuralLoadOrResult(ID, a[0]),\n  2525727697: (ID, a) => new IFC4.IfcStructuralLoadStatic(ID, a[0]),\n  3408363356: (ID, a) => new IFC4.IfcStructuralLoadTemperature(ID, a[0], a[1], a[2], a[3]),\n  2830218821: (ID, a) => new IFC4.IfcStyleModel(ID, a[0], a[1], a[2], a[3]),\n  3958052878: (ID, a) => new IFC4.IfcStyledItem(ID, a[0], a[1], a[2]),\n  3049322572: (ID, a) => new IFC4.IfcStyledRepresentation(ID, a[0], a[1], a[2], a[3]),\n  2934153892: (ID, a) => new IFC4.IfcSurfaceReinforcementArea(ID, a[0], a[1], a[2], a[3]),\n  1300840506: (ID, a) => new IFC4.IfcSurfaceStyle(ID, a[0], a[1], a[2]),\n  3303107099: (ID, a) => new IFC4.IfcSurfaceStyleLighting(ID, a[0], a[1], a[2], a[3]),\n  1607154358: (ID, a) => new IFC4.IfcSurfaceStyleRefraction(ID, a[0], a[1]),\n  846575682: (ID, a) => new IFC4.IfcSurfaceStyleShading(ID, a[0], a[1]),\n  1351298697: (ID, a) => new IFC4.IfcSurfaceStyleWithTextures(ID, a[0]),\n  626085974: (ID, a) => new IFC4.IfcSurfaceTexture(ID, a[0], a[1], a[2], a[3], a[4]),\n  985171141: (ID, a) => new IFC4.IfcTable(ID, a[0], a[1], a[2]),\n  2043862942: (ID, a) => new IFC4.IfcTableColumn(ID, a[0], a[1], a[2], a[3], a[4]),\n  531007025: (ID, a) => new IFC4.IfcTableRow(ID, a[0], a[1]),\n  1549132990: (ID, a) => new IFC4.IfcTaskTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),\n  2771591690: (ID, a) => new IFC4.IfcTaskTimeRecurring(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]),\n  912023232: (ID, a) => new IFC4.IfcTelecomAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1447204868: (ID, a) => new IFC4.IfcTextStyle(ID, a[0], a[1], a[2], a[3], a[4]),\n  2636378356: (ID, a) => new IFC4.IfcTextStyleForDefinedFont(ID, a[0], a[1]),\n  1640371178: (ID, a) => new IFC4.IfcTextStyleTextModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  280115917: (ID, a) => new IFC4.IfcTextureCoordinate(ID, a[0]),\n  1742049831: (ID, a) => new IFC4.IfcTextureCoordinateGenerator(ID, a[0], a[1], a[2]),\n  2552916305: (ID, a) => new IFC4.IfcTextureMap(ID, a[0], a[1], a[2]),\n  1210645708: (ID, a) => new IFC4.IfcTextureVertex(ID, a[0]),\n  3611470254: (ID, a) => new IFC4.IfcTextureVertexList(ID, a[0]),\n  1199560280: (ID, a) => new IFC4.IfcTimePeriod(ID, a[0], a[1]),\n  3101149627: (ID, a) => new IFC4.IfcTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  581633288: (ID, a) => new IFC4.IfcTimeSeriesValue(ID, a[0]),\n  1377556343: (ID, _) => new IFC4.IfcTopologicalRepresentationItem(ID),\n  1735638870: (ID, a) => new IFC4.IfcTopologyRepresentation(ID, a[0], a[1], a[2], a[3]),\n  180925521: (ID, a) => new IFC4.IfcUnitAssignment(ID, a[0]),\n  2799835756: (ID, _) => new IFC4.IfcVertex(ID),\n  1907098498: (ID, a) => new IFC4.IfcVertexPoint(ID, a[0]),\n  891718957: (ID, a) => new IFC4.IfcVirtualGridIntersection(ID, a[0], a[1]),\n  1236880293: (ID, a) => new IFC4.IfcWorkTime(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3869604511: (ID, a) => new IFC4.IfcApprovalRelationship(ID, a[0], a[1], a[2], a[3]),\n  3798115385: (ID, a) => new IFC4.IfcArbitraryClosedProfileDef(ID, a[0], a[1], a[2]),\n  1310608509: (ID, a) => new IFC4.IfcArbitraryOpenProfileDef(ID, a[0], a[1], a[2]),\n  2705031697: (ID, a) => new IFC4.IfcArbitraryProfileDefWithVoids(ID, a[0], a[1], a[2], a[3]),\n  616511568: (ID, a) => new IFC4.IfcBlobTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3150382593: (ID, a) => new IFC4.IfcCenterLineProfileDef(ID, a[0], a[1], a[2], a[3]),\n  747523909: (ID, a) => new IFC4.IfcClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  647927063: (ID, a) => new IFC4.IfcClassificationReference(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3285139300: (ID, a) => new IFC4.IfcColourRgbList(ID, a[0]),\n  3264961684: (ID, a) => new IFC4.IfcColourSpecification(ID, a[0]),\n  1485152156: (ID, a) => new IFC4.IfcCompositeProfileDef(ID, a[0], a[1], a[2], a[3]),\n  370225590: (ID, a) => new IFC4.IfcConnectedFaceSet(ID, a[0]),\n  1981873012: (ID, a) => new IFC4.IfcConnectionCurveGeometry(ID, a[0], a[1]),\n  45288368: (ID, a) => new IFC4.IfcConnectionPointEccentricity(ID, a[0], a[1], a[2], a[3], a[4]),\n  3050246964: (ID, a) => new IFC4.IfcContextDependentUnit(ID, a[0], a[1], a[2]),\n  2889183280: (ID, a) => new IFC4.IfcConversionBasedUnit(ID, a[0], a[1], a[2], a[3]),\n  2713554722: (ID, a) => new IFC4.IfcConversionBasedUnitWithOffset(ID, a[0], a[1], a[2], a[3], a[4]),\n  539742890: (ID, a) => new IFC4.IfcCurrencyRelationship(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3800577675: (ID, a) => new IFC4.IfcCurveStyle(ID, a[0], a[1], a[2], a[3], a[4]),\n  1105321065: (ID, a) => new IFC4.IfcCurveStyleFont(ID, a[0], a[1]),\n  2367409068: (ID, a) => new IFC4.IfcCurveStyleFontAndScaling(ID, a[0], a[1], a[2]),\n  3510044353: (ID, a) => new IFC4.IfcCurveStyleFontPattern(ID, a[0], a[1]),\n  3632507154: (ID, a) => new IFC4.IfcDerivedProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  1154170062: (ID, a) => new IFC4.IfcDocumentInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  770865208: (ID, a) => new IFC4.IfcDocumentInformationRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  3732053477: (ID, a) => new IFC4.IfcDocumentReference(ID, a[0], a[1], a[2], a[3], a[4]),\n  3900360178: (ID, a) => new IFC4.IfcEdge(ID, a[0], a[1]),\n  476780140: (ID, a) => new IFC4.IfcEdgeCurve(ID, a[0], a[1], a[2], a[3]),\n  211053100: (ID, a) => new IFC4.IfcEventTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  297599258: (ID, a) => new IFC4.IfcExtendedProperties(ID, a[0], a[1], a[2]),\n  1437805879: (ID, a) => new IFC4.IfcExternalReferenceRelationship(ID, a[0], a[1], a[2], a[3]),\n  2556980723: (ID, a) => new IFC4.IfcFace(ID, a[0]),\n  1809719519: (ID, a) => new IFC4.IfcFaceBound(ID, a[0], a[1]),\n  803316827: (ID, a) => new IFC4.IfcFaceOuterBound(ID, a[0], a[1]),\n  3008276851: (ID, a) => new IFC4.IfcFaceSurface(ID, a[0], a[1], a[2]),\n  4219587988: (ID, a) => new IFC4.IfcFailureConnectionCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  738692330: (ID, a) => new IFC4.IfcFillAreaStyle(ID, a[0], a[1], a[2]),\n  3448662350: (ID, a) => new IFC4.IfcGeometricRepresentationContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2453401579: (ID, _) => new IFC4.IfcGeometricRepresentationItem(ID),\n  4142052618: (ID, a) => new IFC4.IfcGeometricRepresentationSubContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3590301190: (ID, a) => new IFC4.IfcGeometricSet(ID, a[0]),\n  178086475: (ID, a) => new IFC4.IfcGridPlacement(ID, a[0], a[1]),\n  812098782: (ID, a) => new IFC4.IfcHalfSpaceSolid(ID, a[0], a[1]),\n  3905492369: (ID, a) => new IFC4.IfcImageTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3570813810: (ID, a) => new IFC4.IfcIndexedColourMap(ID, a[0], a[1], a[2], a[3]),\n  1437953363: (ID, a) => new IFC4.IfcIndexedTextureMap(ID, a[0], a[1], a[2]),\n  2133299955: (ID, a) => new IFC4.IfcIndexedTriangleTextureMap(ID, a[0], a[1], a[2], a[3]),\n  3741457305: (ID, a) => new IFC4.IfcIrregularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1585845231: (ID, a) => new IFC4.IfcLagTime(ID, a[0], a[1], a[2], a[3], a[4]),\n  1402838566: (ID, a) => new IFC4.IfcLightSource(ID, a[0], a[1], a[2], a[3]),\n  125510826: (ID, a) => new IFC4.IfcLightSourceAmbient(ID, a[0], a[1], a[2], a[3]),\n  2604431987: (ID, a) => new IFC4.IfcLightSourceDirectional(ID, a[0], a[1], a[2], a[3], a[4]),\n  4266656042: (ID, a) => new IFC4.IfcLightSourceGoniometric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1520743889: (ID, a) => new IFC4.IfcLightSourcePositional(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3422422726: (ID, a) => new IFC4.IfcLightSourceSpot(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  2624227202: (ID, a) => new IFC4.IfcLocalPlacement(ID, a[0], a[1]),\n  1008929658: (ID, _) => new IFC4.IfcLoop(ID),\n  2347385850: (ID, a) => new IFC4.IfcMappedItem(ID, a[0], a[1]),\n  1838606355: (ID, a) => new IFC4.IfcMaterial(ID, a[0], a[1], a[2]),\n  3708119e3: (ID, a) => new IFC4.IfcMaterialConstituent(ID, a[0], a[1], a[2], a[3], a[4]),\n  2852063980: (ID, a) => new IFC4.IfcMaterialConstituentSet(ID, a[0], a[1], a[2]),\n  2022407955: (ID, a) => new IFC4.IfcMaterialDefinitionRepresentation(ID, a[0], a[1], a[2], a[3]),\n  1303795690: (ID, a) => new IFC4.IfcMaterialLayerSetUsage(ID, a[0], a[1], a[2], a[3], a[4]),\n  3079605661: (ID, a) => new IFC4.IfcMaterialProfileSetUsage(ID, a[0], a[1], a[2]),\n  3404854881: (ID, a) => new IFC4.IfcMaterialProfileSetUsageTapering(ID, a[0], a[1], a[2], a[3], a[4]),\n  3265635763: (ID, a) => new IFC4.IfcMaterialProperties(ID, a[0], a[1], a[2], a[3]),\n  853536259: (ID, a) => new IFC4.IfcMaterialRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  2998442950: (ID, a) => new IFC4.IfcMirroredProfileDef(ID, a[0], a[1], a[2], a[3]),\n  219451334: (ID, a) => new IFC4.IfcObjectDefinition(ID, a[0], a[1], a[2], a[3]),\n  2665983363: (ID, a) => new IFC4.IfcOpenShell(ID, a[0]),\n  1411181986: (ID, a) => new IFC4.IfcOrganizationRelationship(ID, a[0], a[1], a[2], a[3]),\n  1029017970: (ID, a) => new IFC4.IfcOrientedEdge(ID, a[0], a[1]),\n  2529465313: (ID, a) => new IFC4.IfcParameterizedProfileDef(ID, a[0], a[1], a[2]),\n  2519244187: (ID, a) => new IFC4.IfcPath(ID, a[0]),\n  3021840470: (ID, a) => new IFC4.IfcPhysicalComplexQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  597895409: (ID, a) => new IFC4.IfcPixelTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2004835150: (ID, a) => new IFC4.IfcPlacement(ID, a[0]),\n  1663979128: (ID, a) => new IFC4.IfcPlanarExtent(ID, a[0], a[1]),\n  2067069095: (ID, _) => new IFC4.IfcPoint(ID),\n  4022376103: (ID, a) => new IFC4.IfcPointOnCurve(ID, a[0], a[1]),\n  1423911732: (ID, a) => new IFC4.IfcPointOnSurface(ID, a[0], a[1], a[2]),\n  2924175390: (ID, a) => new IFC4.IfcPolyLoop(ID, a[0]),\n  2775532180: (ID, a) => new IFC4.IfcPolygonalBoundedHalfSpace(ID, a[0], a[1], a[2], a[3]),\n  3727388367: (ID, a) => new IFC4.IfcPreDefinedItem(ID, a[0]),\n  3778827333: (ID, _) => new IFC4.IfcPreDefinedProperties(ID),\n  1775413392: (ID, a) => new IFC4.IfcPreDefinedTextFont(ID, a[0]),\n  673634403: (ID, a) => new IFC4.IfcProductDefinitionShape(ID, a[0], a[1], a[2]),\n  2802850158: (ID, a) => new IFC4.IfcProfileProperties(ID, a[0], a[1], a[2], a[3]),\n  2598011224: (ID, a) => new IFC4.IfcProperty(ID, a[0], a[1]),\n  1680319473: (ID, a) => new IFC4.IfcPropertyDefinition(ID, a[0], a[1], a[2], a[3]),\n  148025276: (ID, a) => new IFC4.IfcPropertyDependencyRelationship(ID, a[0], a[1], a[2], a[3], a[4]),\n  3357820518: (ID, a) => new IFC4.IfcPropertySetDefinition(ID, a[0], a[1], a[2], a[3]),\n  1482703590: (ID, a) => new IFC4.IfcPropertyTemplateDefinition(ID, a[0], a[1], a[2], a[3]),\n  2090586900: (ID, a) => new IFC4.IfcQuantitySet(ID, a[0], a[1], a[2], a[3]),\n  3615266464: (ID, a) => new IFC4.IfcRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  3413951693: (ID, a) => new IFC4.IfcRegularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1580146022: (ID, a) => new IFC4.IfcReinforcementBarProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  478536968: (ID, a) => new IFC4.IfcRelationship(ID, a[0], a[1], a[2], a[3]),\n  2943643501: (ID, a) => new IFC4.IfcResourceApprovalRelationship(ID, a[0], a[1], a[2], a[3]),\n  1608871552: (ID, a) => new IFC4.IfcResourceConstraintRelationship(ID, a[0], a[1], a[2], a[3]),\n  1042787934: (ID, a) => new IFC4.IfcResourceTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),\n  2778083089: (ID, a) => new IFC4.IfcRoundedRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2042790032: (ID, a) => new IFC4.IfcSectionProperties(ID, a[0], a[1], a[2]),\n  4165799628: (ID, a) => new IFC4.IfcSectionReinforcementProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1509187699: (ID, a) => new IFC4.IfcSectionedSpine(ID, a[0], a[1], a[2]),\n  4124623270: (ID, a) => new IFC4.IfcShellBasedSurfaceModel(ID, a[0]),\n  3692461612: (ID, a) => new IFC4.IfcSimpleProperty(ID, a[0], a[1]),\n  2609359061: (ID, a) => new IFC4.IfcSlippageConnectionCondition(ID, a[0], a[1], a[2], a[3]),\n  723233188: (ID, _) => new IFC4.IfcSolidModel(ID),\n  1595516126: (ID, a) => new IFC4.IfcStructuralLoadLinearForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2668620305: (ID, a) => new IFC4.IfcStructuralLoadPlanarForce(ID, a[0], a[1], a[2], a[3]),\n  2473145415: (ID, a) => new IFC4.IfcStructuralLoadSingleDisplacement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1973038258: (ID, a) => new IFC4.IfcStructuralLoadSingleDisplacementDistortion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1597423693: (ID, a) => new IFC4.IfcStructuralLoadSingleForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1190533807: (ID, a) => new IFC4.IfcStructuralLoadSingleForceWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2233826070: (ID, a) => new IFC4.IfcSubedge(ID, a[0], a[1], a[2]),\n  2513912981: (ID, _) => new IFC4.IfcSurface(ID),\n  1878645084: (ID, a) => new IFC4.IfcSurfaceStyleRendering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2247615214: (ID, a) => new IFC4.IfcSweptAreaSolid(ID, a[0], a[1]),\n  1260650574: (ID, a) => new IFC4.IfcSweptDiskSolid(ID, a[0], a[1], a[2], a[3], a[4]),\n  1096409881: (ID, a) => new IFC4.IfcSweptDiskSolidPolygonal(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  230924584: (ID, a) => new IFC4.IfcSweptSurface(ID, a[0], a[1]),\n  3071757647: (ID, a) => new IFC4.IfcTShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  901063453: (ID, _) => new IFC4.IfcTessellatedItem(ID),\n  4282788508: (ID, a) => new IFC4.IfcTextLiteral(ID, a[0], a[1], a[2]),\n  3124975700: (ID, a) => new IFC4.IfcTextLiteralWithExtent(ID, a[0], a[1], a[2], a[3], a[4]),\n  1983826977: (ID, a) => new IFC4.IfcTextStyleFontModel(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2715220739: (ID, a) => new IFC4.IfcTrapeziumProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1628702193: (ID, a) => new IFC4.IfcTypeObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3736923433: (ID, a) => new IFC4.IfcTypeProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2347495698: (ID, a) => new IFC4.IfcTypeProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3698973494: (ID, a) => new IFC4.IfcTypeResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  427810014: (ID, a) => new IFC4.IfcUShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1417489154: (ID, a) => new IFC4.IfcVector(ID, a[0], a[1]),\n  2759199220: (ID, a) => new IFC4.IfcVertexLoop(ID, a[0]),\n  1299126871: (ID, a) => new IFC4.IfcWindowStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2543172580: (ID, a) => new IFC4.IfcZShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3406155212: (ID, a) => new IFC4.IfcAdvancedFace(ID, a[0], a[1], a[2]),\n  669184980: (ID, a) => new IFC4.IfcAnnotationFillArea(ID, a[0], a[1]),\n  3207858831: (ID, a) => new IFC4.IfcAsymmetricIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n  4261334040: (ID, a) => new IFC4.IfcAxis1Placement(ID, a[0], a[1]),\n  3125803723: (ID, a) => new IFC4.IfcAxis2Placement2D(ID, a[0], a[1]),\n  2740243338: (ID, a) => new IFC4.IfcAxis2Placement3D(ID, a[0], a[1], a[2]),\n  2736907675: (ID, a) => new IFC4.IfcBooleanResult(ID, a[0], a[1], a[2]),\n  4182860854: (ID, _) => new IFC4.IfcBoundedSurface(ID),\n  2581212453: (ID, a) => new IFC4.IfcBoundingBox(ID, a[0], a[1], a[2], a[3]),\n  2713105998: (ID, a) => new IFC4.IfcBoxedHalfSpace(ID, a[0], a[1], a[2]),\n  2898889636: (ID, a) => new IFC4.IfcCShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1123145078: (ID, a) => new IFC4.IfcCartesianPoint(ID, a[0]),\n  574549367: (ID, _) => new IFC4.IfcCartesianPointList(ID),\n  1675464909: (ID, a) => new IFC4.IfcCartesianPointList2D(ID, a[0]),\n  2059837836: (ID, a) => new IFC4.IfcCartesianPointList3D(ID, a[0]),\n  59481748: (ID, a) => new IFC4.IfcCartesianTransformationOperator(ID, a[0], a[1], a[2], a[3]),\n  3749851601: (ID, a) => new IFC4.IfcCartesianTransformationOperator2D(ID, a[0], a[1], a[2], a[3]),\n  3486308946: (ID, a) => new IFC4.IfcCartesianTransformationOperator2DnonUniform(ID, a[0], a[1], a[2], a[3], a[4]),\n  3331915920: (ID, a) => new IFC4.IfcCartesianTransformationOperator3D(ID, a[0], a[1], a[2], a[3], a[4]),\n  1416205885: (ID, a) => new IFC4.IfcCartesianTransformationOperator3DnonUniform(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1383045692: (ID, a) => new IFC4.IfcCircleProfileDef(ID, a[0], a[1], a[2], a[3]),\n  2205249479: (ID, a) => new IFC4.IfcClosedShell(ID, a[0]),\n  776857604: (ID, a) => new IFC4.IfcColourRgb(ID, a[0], a[1], a[2], a[3]),\n  2542286263: (ID, a) => new IFC4.IfcComplexProperty(ID, a[0], a[1], a[2], a[3]),\n  2485617015: (ID, a) => new IFC4.IfcCompositeCurveSegment(ID, a[0], a[1], a[2]),\n  2574617495: (ID, a) => new IFC4.IfcConstructionResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3419103109: (ID, a) => new IFC4.IfcContext(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1815067380: (ID, a) => new IFC4.IfcCrewResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2506170314: (ID, a) => new IFC4.IfcCsgPrimitive3D(ID, a[0]),\n  2147822146: (ID, a) => new IFC4.IfcCsgSolid(ID, a[0]),\n  2601014836: (ID, _) => new IFC4.IfcCurve(ID),\n  2827736869: (ID, a) => new IFC4.IfcCurveBoundedPlane(ID, a[0], a[1], a[2]),\n  2629017746: (ID, a) => new IFC4.IfcCurveBoundedSurface(ID, a[0], a[1], a[2]),\n  32440307: (ID, a) => new IFC4.IfcDirection(ID, a[0]),\n  526551008: (ID, a) => new IFC4.IfcDoorStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1472233963: (ID, a) => new IFC4.IfcEdgeLoop(ID, a[0]),\n  1883228015: (ID, a) => new IFC4.IfcElementQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  339256511: (ID, a) => new IFC4.IfcElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2777663545: (ID, a) => new IFC4.IfcElementarySurface(ID, a[0]),\n  2835456948: (ID, a) => new IFC4.IfcEllipseProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  4024345920: (ID, a) => new IFC4.IfcEventType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  477187591: (ID, a) => new IFC4.IfcExtrudedAreaSolid(ID, a[0], a[1], a[2], a[3]),\n  2804161546: (ID, a) => new IFC4.IfcExtrudedAreaSolidTapered(ID, a[0], a[1], a[2], a[3], a[4]),\n  2047409740: (ID, a) => new IFC4.IfcFaceBasedSurfaceModel(ID, a[0]),\n  374418227: (ID, a) => new IFC4.IfcFillAreaStyleHatching(ID, a[0], a[1], a[2], a[3], a[4]),\n  315944413: (ID, a) => new IFC4.IfcFillAreaStyleTiles(ID, a[0], a[1], a[2]),\n  2652556860: (ID, a) => new IFC4.IfcFixedReferenceSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4238390223: (ID, a) => new IFC4.IfcFurnishingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1268542332: (ID, a) => new IFC4.IfcFurnitureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4095422895: (ID, a) => new IFC4.IfcGeographicElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  987898635: (ID, a) => new IFC4.IfcGeometricCurveSet(ID, a[0]),\n  1484403080: (ID, a) => new IFC4.IfcIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  178912537: (ID, a) => new IFC4.IfcIndexedPolygonalFace(ID, a[0]),\n  2294589976: (ID, a) => new IFC4.IfcIndexedPolygonalFaceWithVoids(ID, a[0], a[1]),\n  572779678: (ID, a) => new IFC4.IfcLShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  428585644: (ID, a) => new IFC4.IfcLaborResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1281925730: (ID, a) => new IFC4.IfcLine(ID, a[0], a[1]),\n  1425443689: (ID, a) => new IFC4.IfcManifoldSolidBrep(ID, a[0]),\n  3888040117: (ID, a) => new IFC4.IfcObject(ID, a[0], a[1], a[2], a[3], a[4]),\n  3388369263: (ID, a) => new IFC4.IfcOffsetCurve2D(ID, a[0], a[1], a[2]),\n  3505215534: (ID, a) => new IFC4.IfcOffsetCurve3D(ID, a[0], a[1], a[2], a[3]),\n  1682466193: (ID, a) => new IFC4.IfcPcurve(ID, a[0], a[1]),\n  603570806: (ID, a) => new IFC4.IfcPlanarBox(ID, a[0], a[1], a[2]),\n  220341763: (ID, a) => new IFC4.IfcPlane(ID, a[0]),\n  759155922: (ID, a) => new IFC4.IfcPreDefinedColour(ID, a[0]),\n  2559016684: (ID, a) => new IFC4.IfcPreDefinedCurveFont(ID, a[0]),\n  3967405729: (ID, a) => new IFC4.IfcPreDefinedPropertySet(ID, a[0], a[1], a[2], a[3]),\n  569719735: (ID, a) => new IFC4.IfcProcedureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2945172077: (ID, a) => new IFC4.IfcProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  4208778838: (ID, a) => new IFC4.IfcProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  103090709: (ID, a) => new IFC4.IfcProject(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  653396225: (ID, a) => new IFC4.IfcProjectLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  871118103: (ID, a) => new IFC4.IfcPropertyBoundedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4166981789: (ID, a) => new IFC4.IfcPropertyEnumeratedValue(ID, a[0], a[1], a[2], a[3]),\n  2752243245: (ID, a) => new IFC4.IfcPropertyListValue(ID, a[0], a[1], a[2], a[3]),\n  941946838: (ID, a) => new IFC4.IfcPropertyReferenceValue(ID, a[0], a[1], a[2], a[3]),\n  1451395588: (ID, a) => new IFC4.IfcPropertySet(ID, a[0], a[1], a[2], a[3], a[4]),\n  492091185: (ID, a) => new IFC4.IfcPropertySetTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3650150729: (ID, a) => new IFC4.IfcPropertySingleValue(ID, a[0], a[1], a[2], a[3]),\n  110355661: (ID, a) => new IFC4.IfcPropertyTableValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3521284610: (ID, a) => new IFC4.IfcPropertyTemplate(ID, a[0], a[1], a[2], a[3]),\n  3219374653: (ID, a) => new IFC4.IfcProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2770003689: (ID, a) => new IFC4.IfcRectangleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2798486643: (ID, a) => new IFC4.IfcRectangularPyramid(ID, a[0], a[1], a[2], a[3]),\n  3454111270: (ID, a) => new IFC4.IfcRectangularTrimmedSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3765753017: (ID, a) => new IFC4.IfcReinforcementDefinitionProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3939117080: (ID, a) => new IFC4.IfcRelAssigns(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1683148259: (ID, a) => new IFC4.IfcRelAssignsToActor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2495723537: (ID, a) => new IFC4.IfcRelAssignsToControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1307041759: (ID, a) => new IFC4.IfcRelAssignsToGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1027710054: (ID, a) => new IFC4.IfcRelAssignsToGroupByFactor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4278684876: (ID, a) => new IFC4.IfcRelAssignsToProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2857406711: (ID, a) => new IFC4.IfcRelAssignsToProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  205026976: (ID, a) => new IFC4.IfcRelAssignsToResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1865459582: (ID, a) => new IFC4.IfcRelAssociates(ID, a[0], a[1], a[2], a[3], a[4]),\n  4095574036: (ID, a) => new IFC4.IfcRelAssociatesApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  919958153: (ID, a) => new IFC4.IfcRelAssociatesClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2728634034: (ID, a) => new IFC4.IfcRelAssociatesConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  982818633: (ID, a) => new IFC4.IfcRelAssociatesDocument(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3840914261: (ID, a) => new IFC4.IfcRelAssociatesLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2655215786: (ID, a) => new IFC4.IfcRelAssociatesMaterial(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  826625072: (ID, a) => new IFC4.IfcRelConnects(ID, a[0], a[1], a[2], a[3]),\n  1204542856: (ID, a) => new IFC4.IfcRelConnectsElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3945020480: (ID, a) => new IFC4.IfcRelConnectsPathElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4201705270: (ID, a) => new IFC4.IfcRelConnectsPortToElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3190031847: (ID, a) => new IFC4.IfcRelConnectsPorts(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2127690289: (ID, a) => new IFC4.IfcRelConnectsStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1638771189: (ID, a) => new IFC4.IfcRelConnectsStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  504942748: (ID, a) => new IFC4.IfcRelConnectsWithEccentricity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3678494232: (ID, a) => new IFC4.IfcRelConnectsWithRealizingElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3242617779: (ID, a) => new IFC4.IfcRelContainedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  886880790: (ID, a) => new IFC4.IfcRelCoversBldgElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2802773753: (ID, a) => new IFC4.IfcRelCoversSpaces(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2565941209: (ID, a) => new IFC4.IfcRelDeclares(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2551354335: (ID, a) => new IFC4.IfcRelDecomposes(ID, a[0], a[1], a[2], a[3]),\n  693640335: (ID, a) => new IFC4.IfcRelDefines(ID, a[0], a[1], a[2], a[3]),\n  1462361463: (ID, a) => new IFC4.IfcRelDefinesByObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4186316022: (ID, a) => new IFC4.IfcRelDefinesByProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  307848117: (ID, a) => new IFC4.IfcRelDefinesByTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  781010003: (ID, a) => new IFC4.IfcRelDefinesByType(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3940055652: (ID, a) => new IFC4.IfcRelFillsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  279856033: (ID, a) => new IFC4.IfcRelFlowControlElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  427948657: (ID, a) => new IFC4.IfcRelInterferesElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3268803585: (ID, a) => new IFC4.IfcRelNests(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  750771296: (ID, a) => new IFC4.IfcRelProjectsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1245217292: (ID, a) => new IFC4.IfcRelReferencedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  4122056220: (ID, a) => new IFC4.IfcRelSequence(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  366585022: (ID, a) => new IFC4.IfcRelServicesBuildings(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3451746338: (ID, a) => new IFC4.IfcRelSpaceBoundary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3523091289: (ID, a) => new IFC4.IfcRelSpaceBoundary1stLevel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1521410863: (ID, a) => new IFC4.IfcRelSpaceBoundary2ndLevel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1401173127: (ID, a) => new IFC4.IfcRelVoidsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  816062949: (ID, a) => new IFC4.IfcReparametrisedCompositeCurveSegment(ID, a[0], a[1], a[2], a[3]),\n  2914609552: (ID, a) => new IFC4.IfcResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1856042241: (ID, a) => new IFC4.IfcRevolvedAreaSolid(ID, a[0], a[1], a[2], a[3]),\n  3243963512: (ID, a) => new IFC4.IfcRevolvedAreaSolidTapered(ID, a[0], a[1], a[2], a[3], a[4]),\n  4158566097: (ID, a) => new IFC4.IfcRightCircularCone(ID, a[0], a[1], a[2]),\n  3626867408: (ID, a) => new IFC4.IfcRightCircularCylinder(ID, a[0], a[1], a[2]),\n  3663146110: (ID, a) => new IFC4.IfcSimplePropertyTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1412071761: (ID, a) => new IFC4.IfcSpatialElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  710998568: (ID, a) => new IFC4.IfcSpatialElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2706606064: (ID, a) => new IFC4.IfcSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3893378262: (ID, a) => new IFC4.IfcSpatialStructureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  463610769: (ID, a) => new IFC4.IfcSpatialZone(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2481509218: (ID, a) => new IFC4.IfcSpatialZoneType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  451544542: (ID, a) => new IFC4.IfcSphere(ID, a[0], a[1]),\n  4015995234: (ID, a) => new IFC4.IfcSphericalSurface(ID, a[0], a[1]),\n  3544373492: (ID, a) => new IFC4.IfcStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3136571912: (ID, a) => new IFC4.IfcStructuralItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  530289379: (ID, a) => new IFC4.IfcStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3689010777: (ID, a) => new IFC4.IfcStructuralReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3979015343: (ID, a) => new IFC4.IfcStructuralSurfaceMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2218152070: (ID, a) => new IFC4.IfcStructuralSurfaceMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  603775116: (ID, a) => new IFC4.IfcStructuralSurfaceReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4095615324: (ID, a) => new IFC4.IfcSubContractResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  699246055: (ID, a) => new IFC4.IfcSurfaceCurve(ID, a[0], a[1], a[2]),\n  2028607225: (ID, a) => new IFC4.IfcSurfaceCurveSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2809605785: (ID, a) => new IFC4.IfcSurfaceOfLinearExtrusion(ID, a[0], a[1], a[2], a[3]),\n  4124788165: (ID, a) => new IFC4.IfcSurfaceOfRevolution(ID, a[0], a[1], a[2]),\n  1580310250: (ID, a) => new IFC4.IfcSystemFurnitureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3473067441: (ID, a) => new IFC4.IfcTask(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  3206491090: (ID, a) => new IFC4.IfcTaskType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2387106220: (ID, a) => new IFC4.IfcTessellatedFaceSet(ID, a[0]),\n  1935646853: (ID, a) => new IFC4.IfcToroidalSurface(ID, a[0], a[1], a[2]),\n  2097647324: (ID, a) => new IFC4.IfcTransportElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2916149573: (ID, a) => new IFC4.IfcTriangulatedFaceSet(ID, a[0], a[1], a[2], a[3], a[4]),\n  336235671: (ID, a) => new IFC4.IfcWindowLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),\n  512836454: (ID, a) => new IFC4.IfcWindowPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2296667514: (ID, a) => new IFC4.IfcActor(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  1635779807: (ID, a) => new IFC4.IfcAdvancedBrep(ID, a[0]),\n  2603310189: (ID, a) => new IFC4.IfcAdvancedBrepWithVoids(ID, a[0], a[1]),\n  1674181508: (ID, a) => new IFC4.IfcAnnotation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2887950389: (ID, a) => new IFC4.IfcBSplineSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  167062518: (ID, a) => new IFC4.IfcBSplineSurfaceWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1334484129: (ID, a) => new IFC4.IfcBlock(ID, a[0], a[1], a[2], a[3]),\n  3649129432: (ID, a) => new IFC4.IfcBooleanClippingResult(ID, a[0], a[1], a[2]),\n  1260505505: (ID, _) => new IFC4.IfcBoundedCurve(ID),\n  4031249490: (ID, a) => new IFC4.IfcBuilding(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1950629157: (ID, a) => new IFC4.IfcBuildingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3124254112: (ID, a) => new IFC4.IfcBuildingStorey(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2197970202: (ID, a) => new IFC4.IfcChimneyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2937912522: (ID, a) => new IFC4.IfcCircleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4]),\n  3893394355: (ID, a) => new IFC4.IfcCivilElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  300633059: (ID, a) => new IFC4.IfcColumnType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3875453745: (ID, a) => new IFC4.IfcComplexPropertyTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3732776249: (ID, a) => new IFC4.IfcCompositeCurve(ID, a[0], a[1]),\n  15328376: (ID, a) => new IFC4.IfcCompositeCurveOnSurface(ID, a[0], a[1]),\n  2510884976: (ID, a) => new IFC4.IfcConic(ID, a[0]),\n  2185764099: (ID, a) => new IFC4.IfcConstructionEquipmentResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  4105962743: (ID, a) => new IFC4.IfcConstructionMaterialResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1525564444: (ID, a) => new IFC4.IfcConstructionProductResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  2559216714: (ID, a) => new IFC4.IfcConstructionResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3293443760: (ID, a) => new IFC4.IfcControl(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3895139033: (ID, a) => new IFC4.IfcCostItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1419761937: (ID, a) => new IFC4.IfcCostSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1916426348: (ID, a) => new IFC4.IfcCoveringType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3295246426: (ID, a) => new IFC4.IfcCrewResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1457835157: (ID, a) => new IFC4.IfcCurtainWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1213902940: (ID, a) => new IFC4.IfcCylindricalSurface(ID, a[0], a[1]),\n  3256556792: (ID, a) => new IFC4.IfcDistributionElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3849074793: (ID, a) => new IFC4.IfcDistributionFlowElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2963535650: (ID, a) => new IFC4.IfcDoorLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  1714330368: (ID, a) => new IFC4.IfcDoorPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2323601079: (ID, a) => new IFC4.IfcDoorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  445594917: (ID, a) => new IFC4.IfcDraughtingPreDefinedColour(ID, a[0]),\n  4006246654: (ID, a) => new IFC4.IfcDraughtingPreDefinedCurveFont(ID, a[0]),\n  1758889154: (ID, a) => new IFC4.IfcElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4123344466: (ID, a) => new IFC4.IfcElementAssembly(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2397081782: (ID, a) => new IFC4.IfcElementAssemblyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1623761950: (ID, a) => new IFC4.IfcElementComponent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2590856083: (ID, a) => new IFC4.IfcElementComponentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1704287377: (ID, a) => new IFC4.IfcEllipse(ID, a[0], a[1], a[2]),\n  2107101300: (ID, a) => new IFC4.IfcEnergyConversionDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  132023988: (ID, a) => new IFC4.IfcEngineType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3174744832: (ID, a) => new IFC4.IfcEvaporativeCoolerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3390157468: (ID, a) => new IFC4.IfcEvaporatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4148101412: (ID, a) => new IFC4.IfcEvent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2853485674: (ID, a) => new IFC4.IfcExternalSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  807026263: (ID, a) => new IFC4.IfcFacetedBrep(ID, a[0]),\n  3737207727: (ID, a) => new IFC4.IfcFacetedBrepWithVoids(ID, a[0], a[1]),\n  647756555: (ID, a) => new IFC4.IfcFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2489546625: (ID, a) => new IFC4.IfcFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2827207264: (ID, a) => new IFC4.IfcFeatureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2143335405: (ID, a) => new IFC4.IfcFeatureElementAddition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1287392070: (ID, a) => new IFC4.IfcFeatureElementSubtraction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3907093117: (ID, a) => new IFC4.IfcFlowControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3198132628: (ID, a) => new IFC4.IfcFlowFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3815607619: (ID, a) => new IFC4.IfcFlowMeterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1482959167: (ID, a) => new IFC4.IfcFlowMovingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1834744321: (ID, a) => new IFC4.IfcFlowSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1339347760: (ID, a) => new IFC4.IfcFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2297155007: (ID, a) => new IFC4.IfcFlowTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3009222698: (ID, a) => new IFC4.IfcFlowTreatmentDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1893162501: (ID, a) => new IFC4.IfcFootingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  263784265: (ID, a) => new IFC4.IfcFurnishingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1509553395: (ID, a) => new IFC4.IfcFurniture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3493046030: (ID, a) => new IFC4.IfcGeographicElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3009204131: (ID, a) => new IFC4.IfcGrid(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2706460486: (ID, a) => new IFC4.IfcGroup(ID, a[0], a[1], a[2], a[3], a[4]),\n  1251058090: (ID, a) => new IFC4.IfcHeatExchangerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1806887404: (ID, a) => new IFC4.IfcHumidifierType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2571569899: (ID, a) => new IFC4.IfcIndexedPolyCurve(ID, a[0], a[1], a[2]),\n  3946677679: (ID, a) => new IFC4.IfcInterceptorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3113134337: (ID, a) => new IFC4.IfcIntersectionCurve(ID, a[0], a[1], a[2]),\n  2391368822: (ID, a) => new IFC4.IfcInventory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  4288270099: (ID, a) => new IFC4.IfcJunctionBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3827777499: (ID, a) => new IFC4.IfcLaborResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1051575348: (ID, a) => new IFC4.IfcLampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1161773419: (ID, a) => new IFC4.IfcLightFixtureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  377706215: (ID, a) => new IFC4.IfcMechanicalFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  2108223431: (ID, a) => new IFC4.IfcMechanicalFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1114901282: (ID, a) => new IFC4.IfcMedicalDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3181161470: (ID, a) => new IFC4.IfcMemberType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  977012517: (ID, a) => new IFC4.IfcMotorConnectionType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4143007308: (ID, a) => new IFC4.IfcOccupant(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  3588315303: (ID, a) => new IFC4.IfcOpeningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3079942009: (ID, a) => new IFC4.IfcOpeningStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2837617999: (ID, a) => new IFC4.IfcOutletType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2382730787: (ID, a) => new IFC4.IfcPerformanceHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3566463478: (ID, a) => new IFC4.IfcPermeableCoveringProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3327091369: (ID, a) => new IFC4.IfcPermit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1158309216: (ID, a) => new IFC4.IfcPileType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  804291784: (ID, a) => new IFC4.IfcPipeFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4231323485: (ID, a) => new IFC4.IfcPipeSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4017108033: (ID, a) => new IFC4.IfcPlateType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2839578677: (ID, a) => new IFC4.IfcPolygonalFaceSet(ID, a[0], a[1], a[2], a[3]),\n  3724593414: (ID, a) => new IFC4.IfcPolyline(ID, a[0]),\n  3740093272: (ID, a) => new IFC4.IfcPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2744685151: (ID, a) => new IFC4.IfcProcedure(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2904328755: (ID, a) => new IFC4.IfcProjectOrder(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3651124850: (ID, a) => new IFC4.IfcProjectionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1842657554: (ID, a) => new IFC4.IfcProtectiveDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2250791053: (ID, a) => new IFC4.IfcPumpType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2893384427: (ID, a) => new IFC4.IfcRailingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2324767716: (ID, a) => new IFC4.IfcRampFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1469900589: (ID, a) => new IFC4.IfcRampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  683857671: (ID, a) => new IFC4.IfcRationalBSplineSurfaceWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  3027567501: (ID, a) => new IFC4.IfcReinforcingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  964333572: (ID, a) => new IFC4.IfcReinforcingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2320036040: (ID, a) => new IFC4.IfcReinforcingMesh(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),\n  2310774935: (ID, a) => new IFC4.IfcReinforcingMeshType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),\n  160246688: (ID, a) => new IFC4.IfcRelAggregates(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  2781568857: (ID, a) => new IFC4.IfcRoofType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1768891740: (ID, a) => new IFC4.IfcSanitaryTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2157484638: (ID, a) => new IFC4.IfcSeamCurve(ID, a[0], a[1], a[2]),\n  4074543187: (ID, a) => new IFC4.IfcShadingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4097777520: (ID, a) => new IFC4.IfcSite(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  2533589738: (ID, a) => new IFC4.IfcSlabType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1072016465: (ID, a) => new IFC4.IfcSolarDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3856911033: (ID, a) => new IFC4.IfcSpace(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1305183839: (ID, a) => new IFC4.IfcSpaceHeaterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3812236995: (ID, a) => new IFC4.IfcSpaceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3112655638: (ID, a) => new IFC4.IfcStackTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1039846685: (ID, a) => new IFC4.IfcStairFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  338393293: (ID, a) => new IFC4.IfcStairType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  682877961: (ID, a) => new IFC4.IfcStructuralAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1179482911: (ID, a) => new IFC4.IfcStructuralConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  1004757350: (ID, a) => new IFC4.IfcStructuralCurveAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  4243806635: (ID, a) => new IFC4.IfcStructuralCurveConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  214636428: (ID, a) => new IFC4.IfcStructuralCurveMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2445595289: (ID, a) => new IFC4.IfcStructuralCurveMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2757150158: (ID, a) => new IFC4.IfcStructuralCurveReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1807405624: (ID, a) => new IFC4.IfcStructuralLinearAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1252848954: (ID, a) => new IFC4.IfcStructuralLoadGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2082059205: (ID, a) => new IFC4.IfcStructuralPointAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  734778138: (ID, a) => new IFC4.IfcStructuralPointConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1235345126: (ID, a) => new IFC4.IfcStructuralPointReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2986769608: (ID, a) => new IFC4.IfcStructuralResultGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3657597509: (ID, a) => new IFC4.IfcStructuralSurfaceAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1975003073: (ID, a) => new IFC4.IfcStructuralSurfaceConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  148013059: (ID, a) => new IFC4.IfcSubContractResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  3101698114: (ID, a) => new IFC4.IfcSurfaceFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2315554128: (ID, a) => new IFC4.IfcSwitchingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2254336722: (ID, a) => new IFC4.IfcSystem(ID, a[0], a[1], a[2], a[3], a[4]),\n  413509423: (ID, a) => new IFC4.IfcSystemFurnitureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  5716631: (ID, a) => new IFC4.IfcTankType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3824725483: (ID, a) => new IFC4.IfcTendon(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n  2347447852: (ID, a) => new IFC4.IfcTendonAnchor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3081323446: (ID, a) => new IFC4.IfcTendonAnchorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2415094496: (ID, a) => new IFC4.IfcTendonType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  1692211062: (ID, a) => new IFC4.IfcTransformerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1620046519: (ID, a) => new IFC4.IfcTransportElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3593883385: (ID, a) => new IFC4.IfcTrimmedCurve(ID, a[0], a[1], a[2], a[3], a[4]),\n  1600972822: (ID, a) => new IFC4.IfcTubeBundleType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1911125066: (ID, a) => new IFC4.IfcUnitaryEquipmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  728799441: (ID, a) => new IFC4.IfcValveType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2391383451: (ID, a) => new IFC4.IfcVibrationIsolator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3313531582: (ID, a) => new IFC4.IfcVibrationIsolatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2769231204: (ID, a) => new IFC4.IfcVirtualElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  926996030: (ID, a) => new IFC4.IfcVoidingFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1898987631: (ID, a) => new IFC4.IfcWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1133259667: (ID, a) => new IFC4.IfcWasteTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4009809668: (ID, a) => new IFC4.IfcWindowType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  4088093105: (ID, a) => new IFC4.IfcWorkCalendar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1028945134: (ID, a) => new IFC4.IfcWorkControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  4218914973: (ID, a) => new IFC4.IfcWorkPlan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  3342526732: (ID, a) => new IFC4.IfcWorkSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  1033361043: (ID, a) => new IFC4.IfcZone(ID, a[0], a[1], a[2], a[3], a[4], a[5]),\n  3821786052: (ID, a) => new IFC4.IfcActionRequest(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1411407467: (ID, a) => new IFC4.IfcAirTerminalBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3352864051: (ID, a) => new IFC4.IfcAirTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1871374353: (ID, a) => new IFC4.IfcAirToAirHeatRecoveryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3460190687: (ID, a) => new IFC4.IfcAsset(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  1532957894: (ID, a) => new IFC4.IfcAudioVisualApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1967976161: (ID, a) => new IFC4.IfcBSplineCurve(ID, a[0], a[1], a[2], a[3], a[4]),\n  2461110595: (ID, a) => new IFC4.IfcBSplineCurveWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  819618141: (ID, a) => new IFC4.IfcBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  231477066: (ID, a) => new IFC4.IfcBoilerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1136057603: (ID, a) => new IFC4.IfcBoundaryCurve(ID, a[0], a[1]),\n  3299480353: (ID, a) => new IFC4.IfcBuildingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2979338954: (ID, a) => new IFC4.IfcBuildingElementPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  39481116: (ID, a) => new IFC4.IfcBuildingElementPartType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1095909175: (ID, a) => new IFC4.IfcBuildingElementProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1909888760: (ID, a) => new IFC4.IfcBuildingElementProxyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1177604601: (ID, a) => new IFC4.IfcBuildingSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  2188180465: (ID, a) => new IFC4.IfcBurnerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  395041908: (ID, a) => new IFC4.IfcCableCarrierFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3293546465: (ID, a) => new IFC4.IfcCableCarrierSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2674252688: (ID, a) => new IFC4.IfcCableFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1285652485: (ID, a) => new IFC4.IfcCableSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2951183804: (ID, a) => new IFC4.IfcChillerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3296154744: (ID, a) => new IFC4.IfcChimney(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2611217952: (ID, a) => new IFC4.IfcCircle(ID, a[0], a[1]),\n  1677625105: (ID, a) => new IFC4.IfcCivilElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2301859152: (ID, a) => new IFC4.IfcCoilType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  843113511: (ID, a) => new IFC4.IfcColumn(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  905975707: (ID, a) => new IFC4.IfcColumnStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  400855858: (ID, a) => new IFC4.IfcCommunicationsApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3850581409: (ID, a) => new IFC4.IfcCompressorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2816379211: (ID, a) => new IFC4.IfcCondenserType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3898045240: (ID, a) => new IFC4.IfcConstructionEquipmentResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1060000209: (ID, a) => new IFC4.IfcConstructionMaterialResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  488727124: (ID, a) => new IFC4.IfcConstructionProductResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  335055490: (ID, a) => new IFC4.IfcCooledBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2954562838: (ID, a) => new IFC4.IfcCoolingTowerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1973544240: (ID, a) => new IFC4.IfcCovering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3495092785: (ID, a) => new IFC4.IfcCurtainWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3961806047: (ID, a) => new IFC4.IfcDamperType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1335981549: (ID, a) => new IFC4.IfcDiscreteAccessory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2635815018: (ID, a) => new IFC4.IfcDiscreteAccessoryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1599208980: (ID, a) => new IFC4.IfcDistributionChamberElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2063403501: (ID, a) => new IFC4.IfcDistributionControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1945004755: (ID, a) => new IFC4.IfcDistributionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3040386961: (ID, a) => new IFC4.IfcDistributionFlowElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3041715199: (ID, a) => new IFC4.IfcDistributionPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3205830791: (ID, a) => new IFC4.IfcDistributionSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  395920057: (ID, a) => new IFC4.IfcDoor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  3242481149: (ID, a) => new IFC4.IfcDoorStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  869906466: (ID, a) => new IFC4.IfcDuctFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3760055223: (ID, a) => new IFC4.IfcDuctSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2030761528: (ID, a) => new IFC4.IfcDuctSilencerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  663422040: (ID, a) => new IFC4.IfcElectricApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2417008758: (ID, a) => new IFC4.IfcElectricDistributionBoardType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  3277789161: (ID, a) => new IFC4.IfcElectricFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1534661035: (ID, a) => new IFC4.IfcElectricGeneratorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1217240411: (ID, a) => new IFC4.IfcElectricMotorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  712377611: (ID, a) => new IFC4.IfcElectricTimeControlType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1658829314: (ID, a) => new IFC4.IfcEnergyConversionDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2814081492: (ID, a) => new IFC4.IfcEngine(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3747195512: (ID, a) => new IFC4.IfcEvaporativeCooler(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  484807127: (ID, a) => new IFC4.IfcEvaporator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1209101575: (ID, a) => new IFC4.IfcExternalSpatialElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  346874300: (ID, a) => new IFC4.IfcFanType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1810631287: (ID, a) => new IFC4.IfcFilterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4222183408: (ID, a) => new IFC4.IfcFireSuppressionTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2058353004: (ID, a) => new IFC4.IfcFlowController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4278956645: (ID, a) => new IFC4.IfcFlowFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  4037862832: (ID, a) => new IFC4.IfcFlowInstrumentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  2188021234: (ID, a) => new IFC4.IfcFlowMeter(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3132237377: (ID, a) => new IFC4.IfcFlowMovingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  987401354: (ID, a) => new IFC4.IfcFlowSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  707683696: (ID, a) => new IFC4.IfcFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  2223149337: (ID, a) => new IFC4.IfcFlowTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  3508470533: (ID, a) => new IFC4.IfcFlowTreatmentDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  900683007: (ID, a) => new IFC4.IfcFooting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3319311131: (ID, a) => new IFC4.IfcHeatExchanger(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2068733104: (ID, a) => new IFC4.IfcHumidifier(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4175244083: (ID, a) => new IFC4.IfcInterceptor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2176052936: (ID, a) => new IFC4.IfcJunctionBox(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  76236018: (ID, a) => new IFC4.IfcLamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  629592764: (ID, a) => new IFC4.IfcLightFixture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1437502449: (ID, a) => new IFC4.IfcMedicalDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1073191201: (ID, a) => new IFC4.IfcMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1911478936: (ID, a) => new IFC4.IfcMemberStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2474470126: (ID, a) => new IFC4.IfcMotorConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  144952367: (ID, a) => new IFC4.IfcOuterBoundaryCurve(ID, a[0], a[1]),\n  3694346114: (ID, a) => new IFC4.IfcOutlet(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1687234759: (ID, a) => new IFC4.IfcPile(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  310824031: (ID, a) => new IFC4.IfcPipeFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3612865200: (ID, a) => new IFC4.IfcPipeSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3171933400: (ID, a) => new IFC4.IfcPlate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1156407060: (ID, a) => new IFC4.IfcPlateStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  738039164: (ID, a) => new IFC4.IfcProtectiveDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  655969474: (ID, a) => new IFC4.IfcProtectiveDeviceTrippingUnitType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  90941305: (ID, a) => new IFC4.IfcPump(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2262370178: (ID, a) => new IFC4.IfcRailing(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3024970846: (ID, a) => new IFC4.IfcRamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3283111854: (ID, a) => new IFC4.IfcRampFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1232101972: (ID, a) => new IFC4.IfcRationalBSplineCurveWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  979691226: (ID, a) => new IFC4.IfcReinforcingBar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n  2572171363: (ID, a) => new IFC4.IfcReinforcingBarType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),\n  2016517767: (ID, a) => new IFC4.IfcRoof(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3053780830: (ID, a) => new IFC4.IfcSanitaryTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1783015770: (ID, a) => new IFC4.IfcSensorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1329646415: (ID, a) => new IFC4.IfcShadingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1529196076: (ID, a) => new IFC4.IfcSlab(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3127900445: (ID, a) => new IFC4.IfcSlabElementedCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3027962421: (ID, a) => new IFC4.IfcSlabStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3420628829: (ID, a) => new IFC4.IfcSolarDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1999602285: (ID, a) => new IFC4.IfcSpaceHeater(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1404847402: (ID, a) => new IFC4.IfcStackTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  331165859: (ID, a) => new IFC4.IfcStair(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4252922144: (ID, a) => new IFC4.IfcStairFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  2515109513: (ID, a) => new IFC4.IfcStructuralAnalysisModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  385403989: (ID, a) => new IFC4.IfcStructuralLoadCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n  1621171031: (ID, a) => new IFC4.IfcStructuralPlanarAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n  1162798199: (ID, a) => new IFC4.IfcSwitchingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  812556717: (ID, a) => new IFC4.IfcTank(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3825984169: (ID, a) => new IFC4.IfcTransformer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3026737570: (ID, a) => new IFC4.IfcTubeBundle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3179687236: (ID, a) => new IFC4.IfcUnitaryControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4292641817: (ID, a) => new IFC4.IfcUnitaryEquipment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4207607924: (ID, a) => new IFC4.IfcValve(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2391406946: (ID, a) => new IFC4.IfcWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4156078855: (ID, a) => new IFC4.IfcWallElementedCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3512223829: (ID, a) => new IFC4.IfcWallStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4237592921: (ID, a) => new IFC4.IfcWasteTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3304561284: (ID, a) => new IFC4.IfcWindow(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  486154966: (ID, a) => new IFC4.IfcWindowStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n  2874132201: (ID, a) => new IFC4.IfcActuatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  1634111441: (ID, a) => new IFC4.IfcAirTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  177149247: (ID, a) => new IFC4.IfcAirTerminalBox(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2056796094: (ID, a) => new IFC4.IfcAirToAirHeatRecovery(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3001207471: (ID, a) => new IFC4.IfcAlarmType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  277319702: (ID, a) => new IFC4.IfcAudioVisualAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  753842376: (ID, a) => new IFC4.IfcBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2906023776: (ID, a) => new IFC4.IfcBeamStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  32344328: (ID, a) => new IFC4.IfcBoiler(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2938176219: (ID, a) => new IFC4.IfcBurner(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  635142910: (ID, a) => new IFC4.IfcCableCarrierFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3758799889: (ID, a) => new IFC4.IfcCableCarrierSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1051757585: (ID, a) => new IFC4.IfcCableFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4217484030: (ID, a) => new IFC4.IfcCableSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3902619387: (ID, a) => new IFC4.IfcChiller(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  639361253: (ID, a) => new IFC4.IfcCoil(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3221913625: (ID, a) => new IFC4.IfcCommunicationsAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3571504051: (ID, a) => new IFC4.IfcCompressor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2272882330: (ID, a) => new IFC4.IfcCondenser(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  578613899: (ID, a) => new IFC4.IfcControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n  4136498852: (ID, a) => new IFC4.IfcCooledBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3640358203: (ID, a) => new IFC4.IfcCoolingTower(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4074379575: (ID, a) => new IFC4.IfcDamper(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1052013943: (ID, a) => new IFC4.IfcDistributionChamberElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  562808652: (ID, a) => new IFC4.IfcDistributionCircuit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n  1062813311: (ID, a) => new IFC4.IfcDistributionControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n  342316401: (ID, a) => new IFC4.IfcDuctFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3518393246: (ID, a) => new IFC4.IfcDuctSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1360408905: (ID, a) => new IFC4.IfcDuctSilencer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1904799276: (ID, a) => new IFC4.IfcElectricAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  862014818: (ID, a) => new IFC4.IfcElectricDistributionBoard(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3310460725: (ID, a) => new IFC4.IfcElectricFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  264262732: (ID, a) => new IFC4.IfcElectricGenerator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  402227799: (ID, a) => new IFC4.IfcElectricMotor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1003880860: (ID, a) => new IFC4.IfcElectricTimeControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3415622556: (ID, a) => new IFC4.IfcFan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  819412036: (ID, a) => new IFC4.IfcFilter(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  1426591983: (ID, a) => new IFC4.IfcFireSuppressionTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  182646315: (ID, a) => new IFC4.IfcFlowInstrument(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  2295281155: (ID, a) => new IFC4.IfcProtectiveDeviceTrippingUnit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4086658281: (ID, a) => new IFC4.IfcSensor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  630975310: (ID, a) => new IFC4.IfcUnitaryControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  4288193352: (ID, a) => new IFC4.IfcActuator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  3087945054: (ID, a) => new IFC4.IfcAlarm(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n  25142252: (ID, a) => new IFC4.IfcController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])\n};\nToRawLineData[3] = {\n  3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],\n  618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],\n  639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],\n  411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],\n  130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval],\n  4037036970: (i) => [i.Name],\n  1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)],\n  3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)],\n  1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)],\n  2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)],\n  2859738748: (_) => [],\n  2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],\n  2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],\n  775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement],\n  1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],\n  1785450214: (i) => [i.SourceCRS, i.TargetCRS],\n  1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum],\n  602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],\n  1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType],\n  1045800335: (i) => [i.Unit, i.Exponent],\n  2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],\n  4294318154: (_) => [],\n  3200245327: (i) => [i.Location, i.Identification, i.Name],\n  2242383968: (i) => [i.Location, i.Identification, i.Name],\n  1040185647: (i) => [i.Location, i.Identification, i.Name],\n  3548104201: (i) => [i.Location, i.Identification, i.Name],\n  852622518: (i) => [i.AxisTag, i.AxisCurve, i.SameSense],\n  3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],\n  2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description],\n  3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary],\n  4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],\n  1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],\n  3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale],\n  1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],\n  760658860: (_) => [],\n  248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated, i.Name, i.Description, i.Category, i.Priority],\n  3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description],\n  1847252529: (i) => [i.Material, i.LayerThickness, i.IsVentilated, i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues],\n  2199411900: (i) => [i.Materials],\n  2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category],\n  164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile],\n  552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues],\n  1507914824: (_) => [],\n  2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],\n  3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath],\n  2706619895: (i) => [i.Currency],\n  1918398963: (i) => [i.Dimensions, i.UnitType],\n  3701648758: (_) => [],\n  2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier],\n  4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses],\n  1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],\n  2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],\n  101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],\n  2483315170: (i) => [i.Name, i.Description],\n  2226359599: (i) => [i.Name, i.Description, i.Unit],\n  3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],\n  677532197: (_) => [],\n  2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],\n  1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles],\n  3119450353: (i) => [i.Name],\n  2417041796: (i) => [i.Styles],\n  2095639259: (i) => [i.Name, i.Description, i.Representations],\n  3958567839: (i) => [i.ProfileType, i.ProfileName],\n  3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit],\n  986844984: (_) => [],\n  3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],\n  2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula],\n  2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula],\n  931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula],\n  3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula],\n  2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula],\n  825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula],\n  3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods],\n  2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference],\n  1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  3377609919: (i) => [i.ContextIdentifier, i.ContextType],\n  3008791417: (_) => [],\n  1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],\n  2439245199: (i) => [i.Name, i.Description],\n  2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],\n  1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin],\n  867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape],\n  3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  2273995522: (i) => [i.Name],\n  2162789131: (i) => [i.Name],\n  3478079324: (i) => [i.Name, i.Values, i.Locations],\n  609421318: (i) => [i.Name],\n  2525727697: (i) => [i.Name],\n  3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ],\n  2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  3958052878: (i) => [i.Item, i.Styles, i.Name],\n  3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement],\n  1300840506: (i) => [i.Name, i.Side, i.Styles],\n  3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],\n  1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],\n  846575682: (i) => [i.SurfaceColour, i.Transparency],\n  1351298697: (i) => [i.Textures],\n  626085974: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter],\n  985171141: (i) => [i.Name, i.Rows, i.Columns],\n  2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath],\n  531007025: (i) => [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), i.IsHeading],\n  1549132990: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion],\n  2771591690: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence],\n  912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs],\n  1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, i.ModelOrDraughting],\n  2636378356: (i) => [i.Colour, i.BackgroundColour],\n  1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],\n  280115917: (i) => [i.Maps],\n  1742049831: (i) => [i.Maps, i.Mode, i.Parameter],\n  2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo],\n  1210645708: (i) => [i.Coordinates],\n  3611470254: (i) => [i.TexCoordsList],\n  1199560280: (i) => [i.StartTime, i.EndTime],\n  3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],\n  581633288: (i) => [i.ListValues.map((p) => Labelise(p))],\n  1377556343: (_) => [],\n  1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n  180925521: (i) => [i.Units],\n  2799835756: (_) => [],\n  1907098498: (i) => [i.VertexGeometry],\n  891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],\n  1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.Start, i.Finish],\n  3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals],\n  3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],\n  1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],\n  2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],\n  616511568: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode],\n  3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],\n  747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Location, i.ReferenceTokens],\n  647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort],\n  3285139300: (i) => [i.ColourList],\n  3264961684: (i) => [i.Name],\n  1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],\n  370225590: (i) => [i.CfsFaces],\n  1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],\n  45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],\n  3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],\n  2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],\n  2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset],\n  539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],\n  3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, i.ModelOrDraughting],\n  1105321065: (i) => [i.Name, i.PatternList],\n  2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling],\n  3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],\n  3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n  1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],\n  770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],\n  3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument],\n  3900360178: (i) => [i.EdgeStart, i.EdgeEnd],\n  476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense],\n  211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate],\n  297599258: (i) => [i.Name, i.Description, i.Properties],\n  1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects],\n  2556980723: (i) => [i.Bounds],\n  1809719519: (i) => [i.Bound, i.Orientation],\n  803316827: (i) => [i.Bound, i.Orientation],\n  3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense],\n  4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],\n  738692330: (i) => [i.Name, i.FillStyles, i.ModelorDraughting],\n  3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],\n  2453401579: (_) => [],\n  4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],\n  3590301190: (i) => [i.Elements],\n  178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection],\n  812098782: (i) => [i.BaseSurface, i.AgreementFlag],\n  3905492369: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.URLReference],\n  3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex],\n  1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords],\n  2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex],\n  3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],\n  1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType],\n  1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n  125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n  2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],\n  4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],\n  1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],\n  3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],\n  2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],\n  1008929658: (_) => [],\n  2347385850: (i) => [i.MappingSource, i.MappingTarget],\n  1838606355: (i) => [i.Name, i.Description, i.Category],\n  3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category],\n  2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents],\n  2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],\n  1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent],\n  3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent],\n  3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint],\n  3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material],\n  853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.Expression],\n  2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n  219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  2665983363: (i) => [i.CfsFaces],\n  1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],\n  1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation],\n  2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],\n  2519244187: (i) => [i.EdgeList],\n  3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],\n  597895409: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel],\n  2004835150: (i) => [i.Location],\n  1663979128: (i) => [i.SizeInX, i.SizeInY],\n  2067069095: (_) => [],\n  4022376103: (i) => [i.BasisCurve, i.PointParameter],\n  1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],\n  2924175390: (i) => [i.Polygon],\n  2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary],\n  3727388367: (i) => [i.Name],\n  3778827333: (_) => [],\n  1775413392: (i) => [i.Name],\n  673634403: (i) => [i.Name, i.Description, i.Representations],\n  2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition],\n  2598011224: (i) => [i.Name, i.Description],\n  1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression],\n  3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],\n  3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],\n  1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],\n  478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval],\n  1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects],\n  1042787934: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, i.IsOverAllocated, i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion],\n  2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],\n  2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],\n  4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],\n  1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],\n  4124623270: (i) => [i.SbsmBoundary],\n  3692461612: (i) => [i.Name, i.Description],\n  2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],\n  723233188: (_) => [],\n  1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],\n  2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],\n  2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],\n  1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],\n  1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],\n  1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],\n  2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],\n  2513912981: (_) => [],\n  1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],\n  2247615214: (i) => [i.SweptArea, i.Position],\n  1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],\n  1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius],\n  230924584: (i) => [i.SweptCurve, i.Position],\n  3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope],\n  901063453: (_) => [],\n  4282788508: (i) => [i.Literal, i.Placement, i.Path],\n  3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],\n  1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],\n  2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],\n  1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],\n  3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType],\n  2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],\n  3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType],\n  427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope],\n  1417489154: (i) => [i.Orientation, i.Magnitude],\n  2759199220: (i) => [i.LoopVertex],\n  1299126871: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, i.ParameterTakesPrecedence, i.Sizeable],\n  2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],\n  3406155212: (i) => [i.Bounds, i.FaceSurface, i.SameSense],\n  669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],\n  3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope],\n  4261334040: (i) => [i.Location, i.Axis],\n  3125803723: (i) => [i.Location, i.RefDirection],\n  2740243338: (i) => [i.Location, i.Axis, i.RefDirection],\n  2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n  4182860854: (_) => [],\n  2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],\n  2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure],\n  2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius],\n  1123145078: (i) => [i.Coordinates],\n  574549367: (_) => [],\n  1675464909: (i) => [i.CoordList],\n  2059837836: (i) => [i.CoordList],\n  59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n  3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n  3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],\n  3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],\n  1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],\n  1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],\n  2205249479: (i) => [i.CfsFaces],\n  776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],\n  2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties],\n  2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve],\n  2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity],\n  3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n  1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  2506170314: (i) => [i.Position],\n  2147822146: (i) => [i.TreeRootExpression],\n  2601014836: (_) => [],\n  2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],\n  2629017746: (i) => [i.BasisSurface, i.Boundaries, i.ImplicitOuter],\n  32440307: (i) => [i.DirectionRatios],\n  526551008: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, i.ParameterTakesPrecedence, i.Sizeable],\n  1472233963: (i) => [i.EdgeList],\n  1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],\n  339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2777663545: (i) => [i.Position],\n  2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],\n  4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType],\n  477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],\n  2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea],\n  2047409740: (i) => [i.FbsmFaces],\n  374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],\n  315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],\n  2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.FixedReference],\n  4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType],\n  4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  987898635: (i) => [i.Elements],\n  1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope],\n  178912537: (i) => [i.CoordIndex],\n  2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices],\n  572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope],\n  428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1281925730: (i) => [i.Pnt, i.Dir],\n  1425443689: (i) => [i.Outer],\n  3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect],\n  3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection],\n  1682466193: (i) => [i.BasisSurface, i.ReferenceCurve],\n  603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],\n  220341763: (i) => [i.Position],\n  759155922: (i) => [i.Name],\n  2559016684: (i) => [i.Name],\n  3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType],\n  2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],\n  4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n  653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n  871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)],\n  4166981789: (i) => [i.Name, i.Description, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],\n  2752243245: (i) => [i.Name, i.Description, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit],\n  941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference],\n  1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],\n  492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates],\n  3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],\n  110355661: (i) => [i.Name, i.Description, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation],\n  3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag],\n  2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],\n  2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],\n  3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense],\n  3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],\n  3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],\n  1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],\n  2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n  1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],\n  1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor],\n  4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],\n  2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],\n  205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],\n  1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],\n  4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],\n  919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],\n  2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],\n  982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],\n  3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],\n  2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],\n  826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],\n  3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],\n  4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],\n  3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],\n  2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],\n  1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],\n  504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],\n  3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],\n  3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n  886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],\n  2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings],\n  2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions],\n  2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n  1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject],\n  4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],\n  307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate],\n  781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],\n  3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],\n  279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],\n  427948657: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceType, i.ImpliedOrder],\n  3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n  750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],\n  1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n  4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType],\n  366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],\n  3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],\n  3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary],\n  1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary],\n  1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],\n  816062949: (i) => [i.Transition, i.SameSense, i.ParentCurve, i.ParamLength],\n  2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],\n  1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],\n  3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea],\n  4158566097: (i) => [i.Position, i.Height, i.BottomRadius],\n  3626867408: (i) => [i.Position, i.Height, i.Radius],\n  3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState],\n  1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],\n  710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],\n  3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],\n  2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],\n  451544542: (i) => [i.Position, i.Radius],\n  4015995234: (i) => [i.Position, i.Radius],\n  3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n  2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n  603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],\n  4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n  2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface],\n  2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],\n  4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],\n  1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.TaskTime, i.PredefinedType],\n  3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod],\n  2387106220: (i) => [i.Coordinates],\n  1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius],\n  2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2916149573: (i) => [i.Coordinates, i.Normals, i.Closed, i.CoordIndex, i.PnIndex],\n  336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],\n  512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n  2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],\n  1635779807: (i) => [i.Outer],\n  2603310189: (i) => [i.Outer, i.Voids],\n  1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  2887950389: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect],\n  167062518: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec],\n  1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],\n  3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n  1260505505: (_) => [],\n  4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],\n  1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],\n  2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],\n  3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates],\n  3732776249: (i) => [i.Segments, i.SelfIntersect],\n  15328376: (i) => [i.Segments, i.SelfIntersect],\n  2510884976: (i) => [i.Position],\n  2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity],\n  3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification],\n  3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities],\n  1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate],\n  1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1213902940: (i) => [i.Position, i.Radius],\n  3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],\n  1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],\n  2323601079: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, i.ParameterTakesPrecedence, i.UserDefinedOperationType],\n  445594917: (i) => [i.Name],\n  4006246654: (i) => [i.Name],\n  1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],\n  2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],\n  2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime],\n  2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],\n  807026263: (i) => [i.Outer],\n  3737207727: (i) => [i.Outer, i.Voids],\n  647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType],\n  2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2571569899: (i) => [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), i.SelfIntersect],\n  3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n  2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],\n  4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType],\n  2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength],\n  1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],\n  3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3079942009: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType],\n  3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n  3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n  1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2839578677: (i) => [i.Coordinates, i.Closed, i.Faces, i.PnIndex],\n  3724593414: (i) => [i.Points],\n  3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n  2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType],\n  2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n  3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  683857671: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData],\n  3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],\n  964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType],\n  2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],\n  160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n  2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n  4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],\n  2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring],\n  1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],\n  3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad],\n  1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n  1004757350: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType],\n  4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.Axis],\n  214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],\n  2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],\n  2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],\n  1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType],\n  1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],\n  2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad],\n  734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem],\n  1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n  2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear],\n  3657597509: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType],\n  1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n  148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n  413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],\n  2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],\n  3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter],\n  1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation],\n  1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4009809668: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, i.ParameterTakesPrecedence, i.UserDefinedPartitioningType],\n  4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType],\n  1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime],\n  4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],\n  3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],\n  1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName],\n  3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n  1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],\n  1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect],\n  2461110595: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.KnotMultiplicities, i.Knots, i.KnotSpec],\n  819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1136057603: (i) => [i.Segments, i.SelfIntersect],\n  3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],\n  2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2611217952: (i) => [i.Position, i.Radius],\n  1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  905975707: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n  335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n  1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType],\n  3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],\n  395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],\n  3242481149: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],\n  869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],\n  346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1911478936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  144952367: (i) => [i.Segments, i.SelfIntersect],\n  3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],\n  310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1156407060: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1232101972: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData],\n  979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface],\n  2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],\n  2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3127900445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3027962421: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType],\n  2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement],\n  385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients],\n  1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType],\n  1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4156078855: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],\n  486154966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],\n  2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2906023776: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n  4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],\n  1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n  342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n  25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType]\n};\nTypeInitialisers[3] = {\n  3699917729: (v) => new IFC4.IfcAbsorbedDoseMeasure(v),\n  4182062534: (v) => new IFC4.IfcAccelerationMeasure(v),\n  360377573: (v) => new IFC4.IfcAmountOfSubstanceMeasure(v),\n  632304761: (v) => new IFC4.IfcAngularVelocityMeasure(v),\n  3683503648: (v) => new IFC4.IfcArcIndex(v),\n  1500781891: (v) => new IFC4.IfcAreaDensityMeasure(v),\n  2650437152: (v) => new IFC4.IfcAreaMeasure(v),\n  2314439260: (v) => new IFC4.IfcBinary(v),\n  2735952531: (v) => new IFC4.IfcBoolean(v),\n  1867003952: (v) => new IFC4.IfcBoxAlignment(v),\n  1683019596: (v) => new IFC4.IfcCardinalPointReference(v),\n  2991860651: (v) => new IFC4.IfcComplexNumber(v),\n  3812528620: (v) => new IFC4.IfcCompoundPlaneAngleMeasure(v),\n  3238673880: (v) => new IFC4.IfcContextDependentMeasure(v),\n  1778710042: (v) => new IFC4.IfcCountMeasure(v),\n  94842927: (v) => new IFC4.IfcCurvatureMeasure(v),\n  937566702: (v) => new IFC4.IfcDate(v),\n  2195413836: (v) => new IFC4.IfcDateTime(v),\n  86635668: (v) => new IFC4.IfcDayInMonthNumber(v),\n  3701338814: (v) => new IFC4.IfcDayInWeekNumber(v),\n  1514641115: (v) => new IFC4.IfcDescriptiveMeasure(v),\n  4134073009: (v) => new IFC4.IfcDimensionCount(v),\n  524656162: (v) => new IFC4.IfcDoseEquivalentMeasure(v),\n  2541165894: (v) => new IFC4.IfcDuration(v),\n  69416015: (v) => new IFC4.IfcDynamicViscosityMeasure(v),\n  1827137117: (v) => new IFC4.IfcElectricCapacitanceMeasure(v),\n  3818826038: (v) => new IFC4.IfcElectricChargeMeasure(v),\n  2093906313: (v) => new IFC4.IfcElectricConductanceMeasure(v),\n  3790457270: (v) => new IFC4.IfcElectricCurrentMeasure(v),\n  2951915441: (v) => new IFC4.IfcElectricResistanceMeasure(v),\n  2506197118: (v) => new IFC4.IfcElectricVoltageMeasure(v),\n  2078135608: (v) => new IFC4.IfcEnergyMeasure(v),\n  1102727119: (v) => new IFC4.IfcFontStyle(v),\n  2715512545: (v) => new IFC4.IfcFontVariant(v),\n  2590844177: (v) => new IFC4.IfcFontWeight(v),\n  1361398929: (v) => new IFC4.IfcForceMeasure(v),\n  3044325142: (v) => new IFC4.IfcFrequencyMeasure(v),\n  3064340077: (v) => new IFC4.IfcGloballyUniqueId(v),\n  3113092358: (v) => new IFC4.IfcHeatFluxDensityMeasure(v),\n  1158859006: (v) => new IFC4.IfcHeatingValueMeasure(v),\n  983778844: (v) => new IFC4.IfcIdentifier(v),\n  3358199106: (v) => new IFC4.IfcIlluminanceMeasure(v),\n  2679005408: (v) => new IFC4.IfcInductanceMeasure(v),\n  1939436016: (v) => new IFC4.IfcInteger(v),\n  3809634241: (v) => new IFC4.IfcIntegerCountRateMeasure(v),\n  3686016028: (v) => new IFC4.IfcIonConcentrationMeasure(v),\n  3192672207: (v) => new IFC4.IfcIsothermalMoistureCapacityMeasure(v),\n  2054016361: (v) => new IFC4.IfcKinematicViscosityMeasure(v),\n  3258342251: (v) => new IFC4.IfcLabel(v),\n  1275358634: (v) => new IFC4.IfcLanguageId(v),\n  1243674935: (v) => new IFC4.IfcLengthMeasure(v),\n  1774176899: (v) => new IFC4.IfcLineIndex(v),\n  191860431: (v) => new IFC4.IfcLinearForceMeasure(v),\n  2128979029: (v) => new IFC4.IfcLinearMomentMeasure(v),\n  1307019551: (v) => new IFC4.IfcLinearStiffnessMeasure(v),\n  3086160713: (v) => new IFC4.IfcLinearVelocityMeasure(v),\n  503418787: (v) => new IFC4.IfcLogical(v),\n  2095003142: (v) => new IFC4.IfcLuminousFluxMeasure(v),\n  2755797622: (v) => new IFC4.IfcLuminousIntensityDistributionMeasure(v),\n  151039812: (v) => new IFC4.IfcLuminousIntensityMeasure(v),\n  286949696: (v) => new IFC4.IfcMagneticFluxDensityMeasure(v),\n  2486716878: (v) => new IFC4.IfcMagneticFluxMeasure(v),\n  1477762836: (v) => new IFC4.IfcMassDensityMeasure(v),\n  4017473158: (v) => new IFC4.IfcMassFlowRateMeasure(v),\n  3124614049: (v) => new IFC4.IfcMassMeasure(v),\n  3531705166: (v) => new IFC4.IfcMassPerLengthMeasure(v),\n  3341486342: (v) => new IFC4.IfcModulusOfElasticityMeasure(v),\n  2173214787: (v) => new IFC4.IfcModulusOfLinearSubgradeReactionMeasure(v),\n  1052454078: (v) => new IFC4.IfcModulusOfRotationalSubgradeReactionMeasure(v),\n  1753493141: (v) => new IFC4.IfcModulusOfSubgradeReactionMeasure(v),\n  3177669450: (v) => new IFC4.IfcMoistureDiffusivityMeasure(v),\n  1648970520: (v) => new IFC4.IfcMolecularWeightMeasure(v),\n  3114022597: (v) => new IFC4.IfcMomentOfInertiaMeasure(v),\n  2615040989: (v) => new IFC4.IfcMonetaryMeasure(v),\n  765770214: (v) => new IFC4.IfcMonthInYearNumber(v),\n  525895558: (v) => new IFC4.IfcNonNegativeLengthMeasure(v),\n  2095195183: (v) => new IFC4.IfcNormalisedRatioMeasure(v),\n  2395907400: (v) => new IFC4.IfcNumericMeasure(v),\n  929793134: (v) => new IFC4.IfcPHMeasure(v),\n  2260317790: (v) => new IFC4.IfcParameterValue(v),\n  2642773653: (v) => new IFC4.IfcPlanarForceMeasure(v),\n  4042175685: (v) => new IFC4.IfcPlaneAngleMeasure(v),\n  1790229001: (v) => new IFC4.IfcPositiveInteger(v),\n  2815919920: (v) => new IFC4.IfcPositiveLengthMeasure(v),\n  3054510233: (v) => new IFC4.IfcPositivePlaneAngleMeasure(v),\n  1245737093: (v) => new IFC4.IfcPositiveRatioMeasure(v),\n  1364037233: (v) => new IFC4.IfcPowerMeasure(v),\n  2169031380: (v) => new IFC4.IfcPresentableText(v),\n  3665567075: (v) => new IFC4.IfcPressureMeasure(v),\n  2798247006: (v) => new IFC4.IfcPropertySetDefinitionSet(v),\n  3972513137: (v) => new IFC4.IfcRadioActivityMeasure(v),\n  96294661: (v) => new IFC4.IfcRatioMeasure(v),\n  200335297: (v) => new IFC4.IfcReal(v),\n  2133746277: (v) => new IFC4.IfcRotationalFrequencyMeasure(v),\n  1755127002: (v) => new IFC4.IfcRotationalMassMeasure(v),\n  3211557302: (v) => new IFC4.IfcRotationalStiffnessMeasure(v),\n  3467162246: (v) => new IFC4.IfcSectionModulusMeasure(v),\n  2190458107: (v) => new IFC4.IfcSectionalAreaIntegralMeasure(v),\n  408310005: (v) => new IFC4.IfcShearModulusMeasure(v),\n  3471399674: (v) => new IFC4.IfcSolidAngleMeasure(v),\n  4157543285: (v) => new IFC4.IfcSoundPowerLevelMeasure(v),\n  846465480: (v) => new IFC4.IfcSoundPowerMeasure(v),\n  3457685358: (v) => new IFC4.IfcSoundPressureLevelMeasure(v),\n  993287707: (v) => new IFC4.IfcSoundPressureMeasure(v),\n  3477203348: (v) => new IFC4.IfcSpecificHeatCapacityMeasure(v),\n  2757832317: (v) => new IFC4.IfcSpecularExponent(v),\n  361837227: (v) => new IFC4.IfcSpecularRoughness(v),\n  58845555: (v) => new IFC4.IfcTemperatureGradientMeasure(v),\n  1209108979: (v) => new IFC4.IfcTemperatureRateOfChangeMeasure(v),\n  2801250643: (v) => new IFC4.IfcText(v),\n  1460886941: (v) => new IFC4.IfcTextAlignment(v),\n  3490877962: (v) => new IFC4.IfcTextDecoration(v),\n  603696268: (v) => new IFC4.IfcTextFontName(v),\n  296282323: (v) => new IFC4.IfcTextTransformation(v),\n  232962298: (v) => new IFC4.IfcThermalAdmittanceMeasure(v),\n  2645777649: (v) => new IFC4.IfcThermalConductivityMeasure(v),\n  2281867870: (v) => new IFC4.IfcThermalExpansionCoefficientMeasure(v),\n  857959152: (v) => new IFC4.IfcThermalResistanceMeasure(v),\n  2016195849: (v) => new IFC4.IfcThermalTransmittanceMeasure(v),\n  743184107: (v) => new IFC4.IfcThermodynamicTemperatureMeasure(v),\n  4075327185: (v) => new IFC4.IfcTime(v),\n  2726807636: (v) => new IFC4.IfcTimeMeasure(v),\n  2591213694: (v) => new IFC4.IfcTimeStamp(v),\n  1278329552: (v) => new IFC4.IfcTorqueMeasure(v),\n  950732822: (v) => new IFC4.IfcURIReference(v),\n  3345633955: (v) => new IFC4.IfcVaporPermeabilityMeasure(v),\n  3458127941: (v) => new IFC4.IfcVolumeMeasure(v),\n  2593997549: (v) => new IFC4.IfcVolumetricFlowRateMeasure(v),\n  51269191: (v) => new IFC4.IfcWarpingConstantMeasure(v),\n  1718600412: (v) => new IFC4.IfcWarpingMomentMeasure(v)\n};\nvar IFC4;\n(function(IFC42) {\n  class IfcAbsorbedDoseMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;\n  class IfcAccelerationMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure;\n  class IfcAmountOfSubstanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;\n  class IfcAngularVelocityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;\n  class IfcArcIndex {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC42.IfcArcIndex = IfcArcIndex;\n  class IfcAreaDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure;\n  class IfcAreaMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcAreaMeasure = IfcAreaMeasure;\n  class IfcBinary {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcBinary = IfcBinary;\n  class IfcBoolean {\n    constructor(value) {\n      this.value = value;\n      this.type = 3;\n    }\n  }\n  IFC42.IfcBoolean = IfcBoolean;\n  class IfcBoxAlignment {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcBoxAlignment = IfcBoxAlignment;\n  class IfcCardinalPointReference {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcCardinalPointReference = IfcCardinalPointReference;\n  class IfcComplexNumber {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC42.IfcComplexNumber = IfcComplexNumber;\n  class IfcCompoundPlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;\n  class IfcContextDependentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure;\n  class IfcCountMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcCountMeasure = IfcCountMeasure;\n  class IfcCurvatureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure;\n  class IfcDate {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcDate = IfcDate;\n  class IfcDateTime {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcDateTime = IfcDateTime;\n  class IfcDayInMonthNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber;\n  class IfcDayInWeekNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber;\n  class IfcDescriptiveMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure;\n  class IfcDimensionCount {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcDimensionCount = IfcDimensionCount;\n  class IfcDoseEquivalentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;\n  class IfcDuration {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcDuration = IfcDuration;\n  class IfcDynamicViscosityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;\n  class IfcElectricCapacitanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;\n  class IfcElectricChargeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure;\n  class IfcElectricConductanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;\n  class IfcElectricCurrentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;\n  class IfcElectricResistanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;\n  class IfcElectricVoltageMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;\n  class IfcEnergyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcEnergyMeasure = IfcEnergyMeasure;\n  class IfcFontStyle {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcFontStyle = IfcFontStyle;\n  class IfcFontVariant {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcFontVariant = IfcFontVariant;\n  class IfcFontWeight {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcFontWeight = IfcFontWeight;\n  class IfcForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcForceMeasure = IfcForceMeasure;\n  class IfcFrequencyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure;\n  class IfcGloballyUniqueId {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId;\n  class IfcHeatFluxDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;\n  class IfcHeatingValueMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure;\n  class IfcIdentifier {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcIdentifier = IfcIdentifier;\n  class IfcIlluminanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure;\n  class IfcInductanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcInductanceMeasure = IfcInductanceMeasure;\n  class IfcInteger {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcInteger = IfcInteger;\n  class IfcIntegerCountRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;\n  class IfcIonConcentrationMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;\n  class IfcIsothermalMoistureCapacityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;\n  class IfcKinematicViscosityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;\n  class IfcLabel {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcLabel = IfcLabel;\n  class IfcLanguageId {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcLanguageId = IfcLanguageId;\n  class IfcLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcLengthMeasure = IfcLengthMeasure;\n  class IfcLineIndex {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC42.IfcLineIndex = IfcLineIndex;\n  class IfcLinearForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure;\n  class IfcLinearMomentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure;\n  class IfcLinearStiffnessMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;\n  class IfcLinearVelocityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;\n  class IfcLogical {\n    constructor(value) {\n      this.value = value;\n      this.type = 3;\n    }\n  }\n  IFC42.IfcLogical = IfcLogical;\n  class IfcLuminousFluxMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;\n  class IfcLuminousIntensityDistributionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;\n  class IfcLuminousIntensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;\n  class IfcMagneticFluxDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;\n  class IfcMagneticFluxMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;\n  class IfcMassDensityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure;\n  class IfcMassFlowRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;\n  class IfcMassMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMassMeasure = IfcMassMeasure;\n  class IfcMassPerLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;\n  class IfcModulusOfElasticityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;\n  class IfcModulusOfLinearSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;\n  class IfcModulusOfRotationalSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;\n  class IfcModulusOfSubgradeReactionMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;\n  class IfcMoistureDiffusivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;\n  class IfcMolecularWeightMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;\n  class IfcMomentOfInertiaMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;\n  class IfcMonetaryMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure;\n  class IfcMonthInYearNumber {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber;\n  class IfcNonNegativeLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure;\n  class IfcNormalisedRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;\n  class IfcNumericMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcNumericMeasure = IfcNumericMeasure;\n  class IfcPHMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPHMeasure = IfcPHMeasure;\n  class IfcParameterValue {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcParameterValue = IfcParameterValue;\n  class IfcPlanarForceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure;\n  class IfcPlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;\n  class IfcPositiveInteger {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPositiveInteger = IfcPositiveInteger;\n  class IfcPositiveLengthMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;\n  class IfcPositivePlaneAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;\n  class IfcPositiveRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;\n  class IfcPowerMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPowerMeasure = IfcPowerMeasure;\n  class IfcPresentableText {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcPresentableText = IfcPresentableText;\n  class IfcPressureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcPressureMeasure = IfcPressureMeasure;\n  class IfcPropertySetDefinitionSet {\n    constructor(value) {\n      this.value = value;\n    }\n  }\n  IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet;\n  class IfcRadioActivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure;\n  class IfcRatioMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcRatioMeasure = IfcRatioMeasure;\n  class IfcReal {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcReal = IfcReal;\n  class IfcRotationalFrequencyMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;\n  class IfcRotationalMassMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure;\n  class IfcRotationalStiffnessMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;\n  class IfcSectionModulusMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure;\n  class IfcSectionalAreaIntegralMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;\n  class IfcShearModulusMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure;\n  class IfcSolidAngleMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure;\n  class IfcSoundPowerLevelMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure;\n  class IfcSoundPowerMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure;\n  class IfcSoundPressureLevelMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure;\n  class IfcSoundPressureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure;\n  class IfcSpecificHeatCapacityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;\n  class IfcSpecularExponent {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSpecularExponent = IfcSpecularExponent;\n  class IfcSpecularRoughness {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcSpecularRoughness = IfcSpecularRoughness;\n  class IfcTemperatureGradientMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;\n  class IfcTemperatureRateOfChangeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure;\n  class IfcText {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcText = IfcText;\n  class IfcTextAlignment {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcTextAlignment = IfcTextAlignment;\n  class IfcTextDecoration {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcTextDecoration = IfcTextDecoration;\n  class IfcTextFontName {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcTextFontName = IfcTextFontName;\n  class IfcTextTransformation {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcTextTransformation = IfcTextTransformation;\n  class IfcThermalAdmittanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;\n  class IfcThermalConductivityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;\n  class IfcThermalExpansionCoefficientMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;\n  class IfcThermalResistanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;\n  class IfcThermalTransmittanceMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;\n  class IfcThermodynamicTemperatureMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;\n  class IfcTime {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcTime = IfcTime;\n  class IfcTimeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcTimeMeasure = IfcTimeMeasure;\n  class IfcTimeStamp {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcTimeStamp = IfcTimeStamp;\n  class IfcTorqueMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcTorqueMeasure = IfcTorqueMeasure;\n  class IfcURIReference {\n    constructor(value) {\n      this.value = value;\n      this.type = 1;\n    }\n  }\n  IFC42.IfcURIReference = IfcURIReference;\n  class IfcVaporPermeabilityMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;\n  class IfcVolumeMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcVolumeMeasure = IfcVolumeMeasure;\n  class IfcVolumetricFlowRateMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;\n  class IfcWarpingConstantMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;\n  class IfcWarpingMomentMeasure {\n    constructor(value) {\n      this.value = value;\n      this.type = 4;\n    }\n  }\n  IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;\n  class IfcActionRequestTypeEnum {\n  }\n  IfcActionRequestTypeEnum.EMAIL = { type: 3, value: \"EMAIL\" };\n  IfcActionRequestTypeEnum.FAX = { type: 3, value: \"FAX\" };\n  IfcActionRequestTypeEnum.PHONE = { type: 3, value: \"PHONE\" };\n  IfcActionRequestTypeEnum.POST = { type: 3, value: \"POST\" };\n  IfcActionRequestTypeEnum.VERBAL = { type: 3, value: \"VERBAL\" };\n  IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum;\n  class IfcActionSourceTypeEnum {\n  }\n  IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: \"DEAD_LOAD_G\" };\n  IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: \"COMPLETION_G1\" };\n  IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: \"LIVE_LOAD_Q\" };\n  IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: \"SNOW_S\" };\n  IfcActionSourceTypeEnum.WIND_W = { type: 3, value: \"WIND_W\" };\n  IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: \"PRESTRESSING_P\" };\n  IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: \"SETTLEMENT_U\" };\n  IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: \"TEMPERATURE_T\" };\n  IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: \"EARTHQUAKE_E\" };\n  IfcActionSourceTypeEnum.FIRE = { type: 3, value: \"FIRE\" };\n  IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: \"IMPULSE\" };\n  IfcActionSourceTypeEnum.IMPACT = { type: 3, value: \"IMPACT\" };\n  IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n  IfcActionSourceTypeEnum.ERECTION = { type: 3, value: \"ERECTION\" };\n  IfcActionSourceTypeEnum.PROPPING = { type: 3, value: \"PROPPING\" };\n  IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: \"SYSTEM_IMPERFECTION\" };\n  IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: \"SHRINKAGE\" };\n  IfcActionSourceTypeEnum.CREEP = { type: 3, value: \"CREEP\" };\n  IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: \"LACK_OF_FIT\" };\n  IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: \"BUOYANCY\" };\n  IfcActionSourceTypeEnum.ICE = { type: 3, value: \"ICE\" };\n  IfcActionSourceTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n  IfcActionSourceTypeEnum.WAVE = { type: 3, value: \"WAVE\" };\n  IfcActionSourceTypeEnum.RAIN = { type: 3, value: \"RAIN\" };\n  IfcActionSourceTypeEnum.BRAKES = { type: 3, value: \"BRAKES\" };\n  IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;\n  class IfcActionTypeEnum {\n  }\n  IfcActionTypeEnum.PERMANENT_G = { type: 3, value: \"PERMANENT_G\" };\n  IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: \"VARIABLE_Q\" };\n  IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: \"EXTRAORDINARY_A\" };\n  IfcActionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcActionTypeEnum = IfcActionTypeEnum;\n  class IfcActuatorTypeEnum {\n  }\n  IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: \"ELECTRICACTUATOR\" };\n  IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: \"HANDOPERATEDACTUATOR\" };\n  IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: \"HYDRAULICACTUATOR\" };\n  IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: \"PNEUMATICACTUATOR\" };\n  IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: \"THERMOSTATICACTUATOR\" };\n  IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum;\n  class IfcAddressTypeEnum {\n  }\n  IfcAddressTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n  IfcAddressTypeEnum.SITE = { type: 3, value: \"SITE\" };\n  IfcAddressTypeEnum.HOME = { type: 3, value: \"HOME\" };\n  IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: \"DISTRIBUTIONPOINT\" };\n  IfcAddressTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum;\n  class IfcAirTerminalBoxTypeEnum {\n  }\n  IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: \"CONSTANTFLOW\" };\n  IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREDEPENDANT\" };\n  IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREINDEPENDANT\" };\n  IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;\n  class IfcAirTerminalTypeEnum {\n  }\n  IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: \"DIFFUSER\" };\n  IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: \"GRILLE\" };\n  IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: \"LOUVRE\" };\n  IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: \"REGISTER\" };\n  IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;\n  class IfcAirToAirHeatRecoveryTypeEnum {\n  }\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECOUNTERFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECROSSFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATEPARALLELFLOWEXCHANGER\" };\n  IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: \"ROTARYWHEEL\" };\n  IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: \"RUNAROUNDCOILLOOP\" };\n  IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: \"HEATPIPE\" };\n  IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: \"TWINTOWERENTHALPYRECOVERYLOOPS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONCOILTYPEHEATEXCHANGERS\" };\n  IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;\n  class IfcAlarmTypeEnum {\n  }\n  IfcAlarmTypeEnum.BELL = { type: 3, value: \"BELL\" };\n  IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: \"BREAKGLASSBUTTON\" };\n  IfcAlarmTypeEnum.LIGHT = { type: 3, value: \"LIGHT\" };\n  IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: \"MANUALPULLBOX\" };\n  IfcAlarmTypeEnum.SIREN = { type: 3, value: \"SIREN\" };\n  IfcAlarmTypeEnum.WHISTLE = { type: 3, value: \"WHISTLE\" };\n  IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum;\n  class IfcAnalysisModelTypeEnum {\n  }\n  IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: \"IN_PLANE_LOADING_2D\" };\n  IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: \"OUT_PLANE_LOADING_2D\" };\n  IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: \"LOADING_3D\" };\n  IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;\n  class IfcAnalysisTheoryTypeEnum {\n  }\n  IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: \"FIRST_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: \"SECOND_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: \"THIRD_ORDER_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: \"FULL_NONLINEAR_THEORY\" };\n  IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;\n  class IfcArithmeticOperatorEnum {\n  }\n  IfcArithmeticOperatorEnum.ADD = { type: 3, value: \"ADD\" };\n  IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: \"DIVIDE\" };\n  IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: \"MULTIPLY\" };\n  IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: \"SUBTRACT\" };\n  IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;\n  class IfcAssemblyPlaceEnum {\n  }\n  IfcAssemblyPlaceEnum.SITE = { type: 3, value: \"SITE\" };\n  IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: \"FACTORY\" };\n  IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;\n  class IfcAudioVisualApplianceTypeEnum {\n  }\n  IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: \"AMPLIFIER\" };\n  IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: \"CAMERA\" };\n  IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: \"DISPLAY\" };\n  IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: \"MICROPHONE\" };\n  IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: \"PLAYER\" };\n  IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: \"PROJECTOR\" };\n  IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: \"RECEIVER\" };\n  IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: \"SPEAKER\" };\n  IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: \"SWITCHER\" };\n  IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n  IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: \"TUNER\" };\n  IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum;\n  class IfcBSplineCurveForm {\n  }\n  IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: \"POLYLINE_FORM\" };\n  IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: \"CIRCULAR_ARC\" };\n  IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: \"ELLIPTIC_ARC\" };\n  IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: \"PARABOLIC_ARC\" };\n  IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: \"HYPERBOLIC_ARC\" };\n  IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm;\n  class IfcBSplineSurfaceForm {\n  }\n  IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: \"PLANE_SURF\" };\n  IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: \"CYLINDRICAL_SURF\" };\n  IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: \"CONICAL_SURF\" };\n  IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: \"SPHERICAL_SURF\" };\n  IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: \"TOROIDAL_SURF\" };\n  IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: \"SURF_OF_REVOLUTION\" };\n  IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: \"RULED_SURF\" };\n  IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: \"GENERALISED_CONE\" };\n  IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: \"QUADRIC_SURF\" };\n  IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: \"SURF_OF_LINEAR_EXTRUSION\" };\n  IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm;\n  class IfcBeamTypeEnum {\n  }\n  IfcBeamTypeEnum.BEAM = { type: 3, value: \"BEAM\" };\n  IfcBeamTypeEnum.JOIST = { type: 3, value: \"JOIST\" };\n  IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: \"HOLLOWCORE\" };\n  IfcBeamTypeEnum.LINTEL = { type: 3, value: \"LINTEL\" };\n  IfcBeamTypeEnum.SPANDREL = { type: 3, value: \"SPANDREL\" };\n  IfcBeamTypeEnum.T_BEAM = { type: 3, value: \"T_BEAM\" };\n  IfcBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum;\n  class IfcBenchmarkEnum {\n  }\n  IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: \"GREATERTHAN\" };\n  IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: \"GREATERTHANOREQUALTO\" };\n  IfcBenchmarkEnum.LESSTHAN = { type: 3, value: \"LESSTHAN\" };\n  IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: \"LESSTHANOREQUALTO\" };\n  IfcBenchmarkEnum.EQUALTO = { type: 3, value: \"EQUALTO\" };\n  IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: \"NOTEQUALTO\" };\n  IfcBenchmarkEnum.INCLUDES = { type: 3, value: \"INCLUDES\" };\n  IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: \"NOTINCLUDES\" };\n  IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: \"INCLUDEDIN\" };\n  IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: \"NOTINCLUDEDIN\" };\n  IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum;\n  class IfcBoilerTypeEnum {\n  }\n  IfcBoilerTypeEnum.WATER = { type: 3, value: \"WATER\" };\n  IfcBoilerTypeEnum.STEAM = { type: 3, value: \"STEAM\" };\n  IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum;\n  class IfcBooleanOperator {\n  }\n  IfcBooleanOperator.UNION = { type: 3, value: \"UNION\" };\n  IfcBooleanOperator.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n  IfcBooleanOperator.DIFFERENCE = { type: 3, value: \"DIFFERENCE\" };\n  IFC42.IfcBooleanOperator = IfcBooleanOperator;\n  class IfcBuildingElementPartTypeEnum {\n  }\n  IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n  IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: \"PRECASTPANEL\" };\n  IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum;\n  class IfcBuildingElementProxyTypeEnum {\n  }\n  IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n  IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n  IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n  IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: \"PROVISIONFORVOID\" };\n  IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: \"PROVISIONFORSPACE\" };\n  IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;\n  class IfcBuildingSystemTypeEnum {\n  }\n  IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: \"FENESTRATION\" };\n  IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: \"FOUNDATION\" };\n  IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: \"LOADBEARING\" };\n  IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: \"OUTERSHELL\" };\n  IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: \"SHADING\" };\n  IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n  IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum;\n  class IfcBurnerTypeEnum {\n  }\n  IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum;\n  class IfcCableCarrierFittingTypeEnum {\n  }\n  IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: \"CROSS\" };\n  IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: \"REDUCER\" };\n  IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: \"TEE\" };\n  IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;\n  class IfcCableCarrierSegmentTypeEnum {\n  }\n  IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: \"CABLELADDERSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: \"CABLETRAYSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: \"CABLETRUNKINGSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: \"CONDUITSEGMENT\" };\n  IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;\n  class IfcCableFittingTypeEnum {\n  }\n  IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcCableFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n  IfcCableFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n  IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum;\n  class IfcCableSegmentTypeEnum {\n  }\n  IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: \"BUSBARSEGMENT\" };\n  IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: \"CABLESEGMENT\" };\n  IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: \"CONDUCTORSEGMENT\" };\n  IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: \"CORESEGMENT\" };\n  IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;\n  class IfcChangeActionEnum {\n  }\n  IfcChangeActionEnum.NOCHANGE = { type: 3, value: \"NOCHANGE\" };\n  IfcChangeActionEnum.MODIFIED = { type: 3, value: \"MODIFIED\" };\n  IfcChangeActionEnum.ADDED = { type: 3, value: \"ADDED\" };\n  IfcChangeActionEnum.DELETED = { type: 3, value: \"DELETED\" };\n  IfcChangeActionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcChangeActionEnum = IfcChangeActionEnum;\n  class IfcChillerTypeEnum {\n  }\n  IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n  IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n  IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: \"HEATRECOVERY\" };\n  IfcChillerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum;\n  class IfcChimneyTypeEnum {\n  }\n  IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum;\n  class IfcCoilTypeEnum {\n  }\n  IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: \"DXCOOLINGCOIL\" };\n  IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: \"ELECTRICHEATINGCOIL\" };\n  IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: \"GASHEATINGCOIL\" };\n  IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: \"HYDRONICCOIL\" };\n  IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: \"STEAMHEATINGCOIL\" };\n  IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: \"WATERCOOLINGCOIL\" };\n  IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: \"WATERHEATINGCOIL\" };\n  IfcCoilTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum;\n  class IfcColumnTypeEnum {\n  }\n  IfcColumnTypeEnum.COLUMN = { type: 3, value: \"COLUMN\" };\n  IfcColumnTypeEnum.PILASTER = { type: 3, value: \"PILASTER\" };\n  IfcColumnTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum;\n  class IfcCommunicationsApplianceTypeEnum {\n  }\n  IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: \"ANTENNA\" };\n  IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: \"COMPUTER\" };\n  IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: \"FAX\" };\n  IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: \"GATEWAY\" };\n  IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: \"MODEM\" };\n  IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: \"NETWORKAPPLIANCE\" };\n  IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: \"NETWORKBRIDGE\" };\n  IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: \"NETWORKHUB\" };\n  IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: \"PRINTER\" };\n  IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: \"REPEATER\" };\n  IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: \"ROUTER\" };\n  IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: \"SCANNER\" };\n  IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum;\n  class IfcComplexPropertyTemplateTypeEnum {\n  }\n  IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: \"P_COMPLEX\" };\n  IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: \"Q_COMPLEX\" };\n  IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum;\n  class IfcCompressorTypeEnum {\n  }\n  IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: \"DYNAMIC\" };\n  IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: \"RECIPROCATING\" };\n  IfcCompressorTypeEnum.ROTARY = { type: 3, value: \"ROTARY\" };\n  IfcCompressorTypeEnum.SCROLL = { type: 3, value: \"SCROLL\" };\n  IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: \"TROCHOIDAL\" };\n  IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: \"SINGLESTAGE\" };\n  IfcCompressorTypeEnum.BOOSTER = { type: 3, value: \"BOOSTER\" };\n  IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: \"OPENTYPE\" };\n  IfcCompressorTypeEnum.HERMETIC = { type: 3, value: \"HERMETIC\" };\n  IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: \"SEMIHERMETIC\" };\n  IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: \"WELDEDSHELLHERMETIC\" };\n  IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: \"ROLLINGPISTON\" };\n  IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: \"ROTARYVANE\" };\n  IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: \"SINGLESCREW\" };\n  IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: \"TWINSCREW\" };\n  IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum;\n  class IfcCondenserTypeEnum {\n  }\n  IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n  IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: \"EVAPORATIVECOOLED\" };\n  IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n  IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: \"WATERCOOLEDBRAZEDPLATE\" };\n  IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: \"WATERCOOLEDSHELLCOIL\" };\n  IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: \"WATERCOOLEDSHELLTUBE\" };\n  IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: \"WATERCOOLEDTUBEINTUBE\" };\n  IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum;\n  class IfcConnectionTypeEnum {\n  }\n  IfcConnectionTypeEnum.ATPATH = { type: 3, value: \"ATPATH\" };\n  IfcConnectionTypeEnum.ATSTART = { type: 3, value: \"ATSTART\" };\n  IfcConnectionTypeEnum.ATEND = { type: 3, value: \"ATEND\" };\n  IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum;\n  class IfcConstraintEnum {\n  }\n  IfcConstraintEnum.HARD = { type: 3, value: \"HARD\" };\n  IfcConstraintEnum.SOFT = { type: 3, value: \"SOFT\" };\n  IfcConstraintEnum.ADVISORY = { type: 3, value: \"ADVISORY\" };\n  IfcConstraintEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConstraintEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcConstraintEnum = IfcConstraintEnum;\n  class IfcConstructionEquipmentResourceTypeEnum {\n  }\n  IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: \"DEMOLISHING\" };\n  IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: \"EARTHMOVING\" };\n  IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: \"ERECTING\" };\n  IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: \"HEATING\" };\n  IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n  IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n  IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: \"PUMPING\" };\n  IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: \"TRANSPORTING\" };\n  IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum;\n  class IfcConstructionMaterialResourceTypeEnum {\n  }\n  IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: \"AGGREGATES\" };\n  IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: \"CONCRETE\" };\n  IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: \"DRYWALL\" };\n  IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: \"FUEL\" };\n  IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: \"GYPSUM\" };\n  IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: \"MASONRY\" };\n  IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: \"METAL\" };\n  IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: \"WOOD\" };\n  IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum;\n  class IfcConstructionProductResourceTypeEnum {\n  }\n  IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: \"ASSEMBLY\" };\n  IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: \"FORMWORK\" };\n  IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum;\n  class IfcControllerTypeEnum {\n  }\n  IfcControllerTypeEnum.FLOATING = { type: 3, value: \"FLOATING\" };\n  IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: \"PROGRAMMABLE\" };\n  IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: \"PROPORTIONAL\" };\n  IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: \"MULTIPOSITION\" };\n  IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: \"TWOPOSITION\" };\n  IfcControllerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum;\n  class IfcCooledBeamTypeEnum {\n  }\n  IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: \"ACTIVE\" };\n  IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: \"PASSIVE\" };\n  IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;\n  class IfcCoolingTowerTypeEnum {\n  }\n  IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: \"NATURALDRAFT\" };\n  IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: \"MECHANICALINDUCEDDRAFT\" };\n  IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: \"MECHANICALFORCEDDRAFT\" };\n  IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;\n  class IfcCostItemTypeEnum {\n  }\n  IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum;\n  class IfcCostScheduleTypeEnum {\n  }\n  IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: \"BUDGET\" };\n  IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: \"COSTPLAN\" };\n  IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: \"ESTIMATE\" };\n  IfcCostScheduleTypeEnum.TENDER = { type: 3, value: \"TENDER\" };\n  IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: \"PRICEDBILLOFQUANTITIES\" };\n  IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: \"UNPRICEDBILLOFQUANTITIES\" };\n  IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: \"SCHEDULEOFRATES\" };\n  IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;\n  class IfcCoveringTypeEnum {\n  }\n  IfcCoveringTypeEnum.CEILING = { type: 3, value: \"CEILING\" };\n  IfcCoveringTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n  IfcCoveringTypeEnum.CLADDING = { type: 3, value: \"CLADDING\" };\n  IfcCoveringTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n  IfcCoveringTypeEnum.MOLDING = { type: 3, value: \"MOLDING\" };\n  IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: \"SKIRTINGBOARD\" };\n  IfcCoveringTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n  IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: \"MEMBRANE\" };\n  IfcCoveringTypeEnum.SLEEVING = { type: 3, value: \"SLEEVING\" };\n  IfcCoveringTypeEnum.WRAPPING = { type: 3, value: \"WRAPPING\" };\n  IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum;\n  class IfcCrewResourceTypeEnum {\n  }\n  IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n  IfcCrewResourceTypeEnum.SITE = { type: 3, value: \"SITE\" };\n  IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum;\n  class IfcCurtainWallTypeEnum {\n  }\n  IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;\n  class IfcCurveInterpolationEnum {\n  }\n  IfcCurveInterpolationEnum.LINEAR = { type: 3, value: \"LINEAR\" };\n  IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: \"LOG_LINEAR\" };\n  IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: \"LOG_LOG\" };\n  IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum;\n  class IfcDamperTypeEnum {\n  }\n  IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: \"BACKDRAFTDAMPER\" };\n  IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: \"BALANCINGDAMPER\" };\n  IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: \"BLASTDAMPER\" };\n  IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: \"CONTROLDAMPER\" };\n  IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: \"FIREDAMPER\" };\n  IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: \"FIRESMOKEDAMPER\" };\n  IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: \"FUMEHOODEXHAUST\" };\n  IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: \"GRAVITYDAMPER\" };\n  IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: \"GRAVITYRELIEFDAMPER\" };\n  IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: \"RELIEFDAMPER\" };\n  IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: \"SMOKEDAMPER\" };\n  IfcDamperTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum;\n  class IfcDataOriginEnum {\n  }\n  IfcDataOriginEnum.MEASURED = { type: 3, value: \"MEASURED\" };\n  IfcDataOriginEnum.PREDICTED = { type: 3, value: \"PREDICTED\" };\n  IfcDataOriginEnum.SIMULATED = { type: 3, value: \"SIMULATED\" };\n  IfcDataOriginEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDataOriginEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDataOriginEnum = IfcDataOriginEnum;\n  class IfcDerivedUnitEnum {\n  }\n  IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: \"ANGULARVELOCITYUNIT\" };\n  IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: \"AREADENSITYUNIT\" };\n  IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: \"COMPOUNDPLANEANGLEUNIT\" };\n  IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: \"DYNAMICVISCOSITYUNIT\" };\n  IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: \"HEATFLUXDENSITYUNIT\" };\n  IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: \"INTEGERCOUNTRATEUNIT\" };\n  IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: \"ISOTHERMALMOISTURECAPACITYUNIT\" };\n  IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: \"KINEMATICVISCOSITYUNIT\" };\n  IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: \"LINEARVELOCITYUNIT\" };\n  IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: \"MASSDENSITYUNIT\" };\n  IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: \"MASSFLOWRATEUNIT\" };\n  IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: \"MOISTUREDIFFUSIVITYUNIT\" };\n  IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: \"MOLECULARWEIGHTUNIT\" };\n  IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: \"SPECIFICHEATCAPACITYUNIT\" };\n  IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: \"THERMALADMITTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: \"THERMALCONDUCTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: \"THERMALRESISTANCEUNIT\" };\n  IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: \"THERMALTRANSMITTANCEUNIT\" };\n  IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: \"VAPORPERMEABILITYUNIT\" };\n  IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: \"VOLUMETRICFLOWRATEUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: \"ROTATIONALFREQUENCYUNIT\" };\n  IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: \"TORQUEUNIT\" };\n  IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: \"MOMENTOFINERTIAUNIT\" };\n  IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: \"LINEARMOMENTUNIT\" };\n  IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: \"LINEARFORCEUNIT\" };\n  IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: \"PLANARFORCEUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: \"MODULUSOFELASTICITYUNIT\" };\n  IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: \"SHEARMODULUSUNIT\" };\n  IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: \"LINEARSTIFFNESSUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: \"ROTATIONALSTIFFNESSUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: \"ACCELERATIONUNIT\" };\n  IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: \"CURVATUREUNIT\" };\n  IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: \"HEATINGVALUEUNIT\" };\n  IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: \"IONCONCENTRATIONUNIT\" };\n  IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: \"LUMINOUSINTENSITYDISTRIBUTIONUNIT\" };\n  IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: \"MASSPERLENGTHUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFLINEARSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT\" };\n  IfcDerivedUnitEnum.PHUNIT = { type: 3, value: \"PHUNIT\" };\n  IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: \"ROTATIONALMASSUNIT\" };\n  IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: \"SECTIONAREAINTEGRALUNIT\" };\n  IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: \"SECTIONMODULUSUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: \"SOUNDPOWERLEVELUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: \"SOUNDPOWERUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: \"SOUNDPRESSURELEVELUNIT\" };\n  IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: \"SOUNDPRESSUREUNIT\" };\n  IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: \"TEMPERATUREGRADIENTUNIT\" };\n  IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: \"TEMPERATURERATEOFCHANGEUNIT\" };\n  IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: \"THERMALEXPANSIONCOEFFICIENTUNIT\" };\n  IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: \"WARPINGCONSTANTUNIT\" };\n  IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: \"WARPINGMOMENTUNIT\" };\n  IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum;\n  class IfcDirectionSenseEnum {\n  }\n  IfcDirectionSenseEnum.POSITIVE = { type: 3, value: \"POSITIVE\" };\n  IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n  IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum;\n  class IfcDiscreteAccessoryTypeEnum {\n  }\n  IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: \"ANCHORPLATE\" };\n  IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: \"BRACKET\" };\n  IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: \"SHOE\" };\n  IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum;\n  class IfcDistributionChamberElementTypeEnum {\n  }\n  IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: \"FORMEDDUCT\" };\n  IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: \"INSPECTIONCHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: \"INSPECTIONPIT\" };\n  IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: \"MANHOLE\" };\n  IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: \"METERCHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: \"SUMP\" };\n  IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: \"TRENCH\" };\n  IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: \"VALVECHAMBER\" };\n  IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;\n  class IfcDistributionPortTypeEnum {\n  }\n  IfcDistributionPortTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n  IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: \"CABLECARRIER\" };\n  IfcDistributionPortTypeEnum.DUCT = { type: 3, value: \"DUCT\" };\n  IfcDistributionPortTypeEnum.PIPE = { type: 3, value: \"PIPE\" };\n  IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum;\n  class IfcDistributionSystemEnum {\n  }\n  IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: \"AIRCONDITIONING\" };\n  IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: \"AUDIOVISUAL\" };\n  IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: \"CHEMICAL\" };\n  IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: \"CHILLEDWATER\" };\n  IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: \"COMMUNICATION\" };\n  IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: \"COMPRESSEDAIR\" };\n  IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: \"CONDENSERWATER\" };\n  IfcDistributionSystemEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n  IfcDistributionSystemEnum.CONVEYING = { type: 3, value: \"CONVEYING\" };\n  IfcDistributionSystemEnum.DATA = { type: 3, value: \"DATA\" };\n  IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n  IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: \"DOMESTICCOLDWATER\" };\n  IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: \"DOMESTICHOTWATER\" };\n  IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: \"DRAINAGE\" };\n  IfcDistributionSystemEnum.EARTHING = { type: 3, value: \"EARTHING\" };\n  IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: \"ELECTRICAL\" };\n  IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: \"ELECTROACOUSTIC\" };\n  IfcDistributionSystemEnum.EXHAUST = { type: 3, value: \"EXHAUST\" };\n  IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: \"FIREPROTECTION\" };\n  IfcDistributionSystemEnum.FUEL = { type: 3, value: \"FUEL\" };\n  IfcDistributionSystemEnum.GAS = { type: 3, value: \"GAS\" };\n  IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: \"HAZARDOUS\" };\n  IfcDistributionSystemEnum.HEATING = { type: 3, value: \"HEATING\" };\n  IfcDistributionSystemEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n  IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: \"LIGHTNINGPROTECTION\" };\n  IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: \"MUNICIPALSOLIDWASTE\" };\n  IfcDistributionSystemEnum.OIL = { type: 3, value: \"OIL\" };\n  IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: \"OPERATIONAL\" };\n  IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: \"POWERGENERATION\" };\n  IfcDistributionSystemEnum.RAINWATER = { type: 3, value: \"RAINWATER\" };\n  IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: \"REFRIGERATION\" };\n  IfcDistributionSystemEnum.SECURITY = { type: 3, value: \"SECURITY\" };\n  IfcDistributionSystemEnum.SEWAGE = { type: 3, value: \"SEWAGE\" };\n  IfcDistributionSystemEnum.SIGNAL = { type: 3, value: \"SIGNAL\" };\n  IfcDistributionSystemEnum.STORMWATER = { type: 3, value: \"STORMWATER\" };\n  IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n  IfcDistributionSystemEnum.TV = { type: 3, value: \"TV\" };\n  IfcDistributionSystemEnum.VACUUM = { type: 3, value: \"VACUUM\" };\n  IfcDistributionSystemEnum.VENT = { type: 3, value: \"VENT\" };\n  IfcDistributionSystemEnum.VENTILATION = { type: 3, value: \"VENTILATION\" };\n  IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: \"WASTEWATER\" };\n  IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: \"WATERSUPPLY\" };\n  IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum;\n  class IfcDocumentConfidentialityEnum {\n  }\n  IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: \"PUBLIC\" };\n  IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: \"RESTRICTED\" };\n  IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: \"CONFIDENTIAL\" };\n  IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: \"PERSONAL\" };\n  IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;\n  class IfcDocumentStatusEnum {\n  }\n  IfcDocumentStatusEnum.DRAFT = { type: 3, value: \"DRAFT\" };\n  IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: \"FINALDRAFT\" };\n  IfcDocumentStatusEnum.FINAL = { type: 3, value: \"FINAL\" };\n  IfcDocumentStatusEnum.REVISION = { type: 3, value: \"REVISION\" };\n  IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum;\n  class IfcDoorPanelOperationEnum {\n  }\n  IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: \"SWINGING\" };\n  IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: \"DOUBLE_ACTING\" };\n  IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: \"SLIDING\" };\n  IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: \"FOLDING\" };\n  IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n  IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n  IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: \"FIXEDPANEL\" };\n  IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;\n  class IfcDoorPanelPositionEnum {\n  }\n  IfcDoorPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n  IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n  IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;\n  class IfcDoorStyleConstructionEnum {\n  }\n  IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n  IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n  IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n  IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n  IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n  IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: \"ALUMINIUM_PLASTIC\" };\n  IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;\n  class IfcDoorStyleOperationEnum {\n  }\n  IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n  IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: \"DOUBLE_DOOR_DOUBLE_SWING\" };\n  IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n  IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: \"DOUBLE_DOOR_SLIDING\" };\n  IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n  IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n  IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: \"DOUBLE_DOOR_FOLDING\" };\n  IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n  IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n  IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;\n  class IfcDoorTypeEnum {\n  }\n  IfcDoorTypeEnum.DOOR = { type: 3, value: \"DOOR\" };\n  IfcDoorTypeEnum.GATE = { type: 3, value: \"GATE\" };\n  IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: \"TRAPDOOR\" };\n  IfcDoorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum;\n  class IfcDoorTypeOperationEnum {\n  }\n  IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n  IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING\" };\n  IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: \"DOUBLE_DOOR_DOUBLE_SWING\" };\n  IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n  IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: \"DOUBLE_DOOR_SLIDING\" };\n  IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n  IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n  IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: \"DOUBLE_DOOR_FOLDING\" };\n  IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n  IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n  IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: \"SWING_FIXED_LEFT\" };\n  IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: \"SWING_FIXED_RIGHT\" };\n  IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum;\n  class IfcDuctFittingTypeEnum {\n  }\n  IfcDuctFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n  IfcDuctFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n  IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n  IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;\n  class IfcDuctSegmentTypeEnum {\n  }\n  IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n  IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n  IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;\n  class IfcDuctSilencerTypeEnum {\n  }\n  IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: \"FLATOVAL\" };\n  IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n  IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: \"ROUND\" };\n  IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;\n  class IfcElectricApplianceTypeEnum {\n  }\n  IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: \"DISHWASHER\" };\n  IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: \"ELECTRICCOOKER\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: \"FREESTANDINGELECTRICHEATER\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: \"FREESTANDINGFAN\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: \"FREESTANDINGWATERHEATER\" };\n  IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: \"FREESTANDINGWATERCOOLER\" };\n  IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: \"FREEZER\" };\n  IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: \"FRIDGE_FREEZER\" };\n  IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: \"HANDDRYER\" };\n  IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: \"KITCHENMACHINE\" };\n  IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: \"MICROWAVE\" };\n  IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: \"PHOTOCOPIER\" };\n  IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: \"REFRIGERATOR\" };\n  IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: \"TUMBLEDRYER\" };\n  IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: \"VENDINGMACHINE\" };\n  IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: \"WASHINGMACHINE\" };\n  IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;\n  class IfcElectricDistributionBoardTypeEnum {\n  }\n  IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: \"CONSUMERUNIT\" };\n  IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: \"DISTRIBUTIONBOARD\" };\n  IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: \"MOTORCONTROLCENTRE\" };\n  IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: \"SWITCHBOARD\" };\n  IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum;\n  class IfcElectricFlowStorageDeviceTypeEnum {\n  }\n  IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: \"BATTERY\" };\n  IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: \"CAPACITORBANK\" };\n  IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: \"HARMONICFILTER\" };\n  IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: \"INDUCTORBANK\" };\n  IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: \"UPS\" };\n  IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;\n  class IfcElectricGeneratorTypeEnum {\n  }\n  IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: \"CHP\" };\n  IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: \"ENGINEGENERATOR\" };\n  IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: \"STANDALONE\" };\n  IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;\n  class IfcElectricMotorTypeEnum {\n  }\n  IfcElectricMotorTypeEnum.DC = { type: 3, value: \"DC\" };\n  IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: \"INDUCTION\" };\n  IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: \"POLYPHASE\" };\n  IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: \"RELUCTANCESYNCHRONOUS\" };\n  IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: \"SYNCHRONOUS\" };\n  IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;\n  class IfcElectricTimeControlTypeEnum {\n  }\n  IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: \"TIMECLOCK\" };\n  IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: \"TIMEDELAY\" };\n  IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: \"RELAY\" };\n  IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;\n  class IfcElementAssemblyTypeEnum {\n  }\n  IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: \"ACCESSORY_ASSEMBLY\" };\n  IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: \"ARCH\" };\n  IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: \"BEAM_GRID\" };\n  IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: \"BRACED_FRAME\" };\n  IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: \"GIRDER\" };\n  IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: \"REINFORCEMENT_UNIT\" };\n  IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: \"RIGID_FRAME\" };\n  IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: \"SLAB_FIELD\" };\n  IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: \"TRUSS\" };\n  IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;\n  class IfcElementCompositionEnum {\n  }\n  IfcElementCompositionEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n  IfcElementCompositionEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n  IfcElementCompositionEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n  IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum;\n  class IfcEngineTypeEnum {\n  }\n  IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: \"EXTERNALCOMBUSTION\" };\n  IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: \"INTERNALCOMBUSTION\" };\n  IfcEngineTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum;\n  class IfcEvaporativeCoolerTypeEnum {\n  }\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: \"DIRECTEVAPORATIVEAIRWASHER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: \"INDIRECTEVAPORATIVEWETCOIL\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER\" };\n  IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: \"INDIRECTDIRECTCOMBINATION\" };\n  IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;\n  class IfcEvaporatorTypeEnum {\n  }\n  IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: \"DIRECTEXPANSION\" };\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: \"DIRECTEXPANSIONSHELLANDTUBE\" };\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: \"DIRECTEXPANSIONTUBEINTUBE\" };\n  IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: \"DIRECTEXPANSIONBRAZEDPLATE\" };\n  IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: \"FLOODEDSHELLANDTUBE\" };\n  IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: \"SHELLANDCOIL\" };\n  IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;\n  class IfcEventTriggerTypeEnum {\n  }\n  IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: \"EVENTRULE\" };\n  IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: \"EVENTMESSAGE\" };\n  IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: \"EVENTTIME\" };\n  IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: \"EVENTCOMPLEX\" };\n  IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum;\n  class IfcEventTypeEnum {\n  }\n  IfcEventTypeEnum.STARTEVENT = { type: 3, value: \"STARTEVENT\" };\n  IfcEventTypeEnum.ENDEVENT = { type: 3, value: \"ENDEVENT\" };\n  IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: \"INTERMEDIATEEVENT\" };\n  IfcEventTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcEventTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcEventTypeEnum = IfcEventTypeEnum;\n  class IfcExternalSpatialElementTypeEnum {\n  }\n  IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: \"EXTERNAL_EARTH\" };\n  IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: \"EXTERNAL_WATER\" };\n  IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: \"EXTERNAL_FIRE\" };\n  IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum;\n  class IfcFanTypeEnum {\n  }\n  IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: \"CENTRIFUGALFORWARDCURVED\" };\n  IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: \"CENTRIFUGALRADIAL\" };\n  IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: \"CENTRIFUGALBACKWARDINCLINEDCURVED\" };\n  IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: \"CENTRIFUGALAIRFOIL\" };\n  IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: \"TUBEAXIAL\" };\n  IfcFanTypeEnum.VANEAXIAL = { type: 3, value: \"VANEAXIAL\" };\n  IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: \"PROPELLORAXIAL\" };\n  IfcFanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFanTypeEnum = IfcFanTypeEnum;\n  class IfcFastenerTypeEnum {\n  }\n  IfcFastenerTypeEnum.GLUE = { type: 3, value: \"GLUE\" };\n  IfcFastenerTypeEnum.MORTAR = { type: 3, value: \"MORTAR\" };\n  IfcFastenerTypeEnum.WELD = { type: 3, value: \"WELD\" };\n  IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum;\n  class IfcFilterTypeEnum {\n  }\n  IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: \"AIRPARTICLEFILTER\" };\n  IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: \"COMPRESSEDAIRFILTER\" };\n  IfcFilterTypeEnum.ODORFILTER = { type: 3, value: \"ODORFILTER\" };\n  IfcFilterTypeEnum.OILFILTER = { type: 3, value: \"OILFILTER\" };\n  IfcFilterTypeEnum.STRAINER = { type: 3, value: \"STRAINER\" };\n  IfcFilterTypeEnum.WATERFILTER = { type: 3, value: \"WATERFILTER\" };\n  IfcFilterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum;\n  class IfcFireSuppressionTerminalTypeEnum {\n  }\n  IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: \"BREECHINGINLET\" };\n  IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: \"FIREHYDRANT\" };\n  IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: \"HOSEREEL\" };\n  IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: \"SPRINKLER\" };\n  IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: \"SPRINKLERDEFLECTOR\" };\n  IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;\n  class IfcFlowDirectionEnum {\n  }\n  IfcFlowDirectionEnum.SOURCE = { type: 3, value: \"SOURCE\" };\n  IfcFlowDirectionEnum.SINK = { type: 3, value: \"SINK\" };\n  IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: \"SOURCEANDSINK\" };\n  IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum;\n  class IfcFlowInstrumentTypeEnum {\n  }\n  IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: \"PRESSUREGAUGE\" };\n  IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: \"THERMOMETER\" };\n  IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: \"AMMETER\" };\n  IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: \"FREQUENCYMETER\" };\n  IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: \"POWERFACTORMETER\" };\n  IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: \"PHASEANGLEMETER\" };\n  IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: \"VOLTMETER_PEAK\" };\n  IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: \"VOLTMETER_RMS\" };\n  IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;\n  class IfcFlowMeterTypeEnum {\n  }\n  IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: \"ENERGYMETER\" };\n  IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: \"GASMETER\" };\n  IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: \"OILMETER\" };\n  IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: \"WATERMETER\" };\n  IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;\n  class IfcFootingTypeEnum {\n  }\n  IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: \"CAISSON_FOUNDATION\" };\n  IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: \"FOOTING_BEAM\" };\n  IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: \"PAD_FOOTING\" };\n  IfcFootingTypeEnum.PILE_CAP = { type: 3, value: \"PILE_CAP\" };\n  IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: \"STRIP_FOOTING\" };\n  IfcFootingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum;\n  class IfcFurnitureTypeEnum {\n  }\n  IfcFurnitureTypeEnum.CHAIR = { type: 3, value: \"CHAIR\" };\n  IfcFurnitureTypeEnum.TABLE = { type: 3, value: \"TABLE\" };\n  IfcFurnitureTypeEnum.DESK = { type: 3, value: \"DESK\" };\n  IfcFurnitureTypeEnum.BED = { type: 3, value: \"BED\" };\n  IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: \"FILECABINET\" };\n  IfcFurnitureTypeEnum.SHELF = { type: 3, value: \"SHELF\" };\n  IfcFurnitureTypeEnum.SOFA = { type: 3, value: \"SOFA\" };\n  IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum;\n  class IfcGeographicElementTypeEnum {\n  }\n  IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: \"TERRAIN\" };\n  IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum;\n  class IfcGeometricProjectionEnum {\n  }\n  IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: \"GRAPH_VIEW\" };\n  IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: \"SKETCH_VIEW\" };\n  IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: \"MODEL_VIEW\" };\n  IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: \"PLAN_VIEW\" };\n  IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: \"REFLECTED_PLAN_VIEW\" };\n  IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: \"SECTION_VIEW\" };\n  IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: \"ELEVATION_VIEW\" };\n  IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;\n  class IfcGlobalOrLocalEnum {\n  }\n  IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: \"GLOBAL_COORDS\" };\n  IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: \"LOCAL_COORDS\" };\n  IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;\n  class IfcGridTypeEnum {\n  }\n  IfcGridTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n  IfcGridTypeEnum.RADIAL = { type: 3, value: \"RADIAL\" };\n  IfcGridTypeEnum.TRIANGULAR = { type: 3, value: \"TRIANGULAR\" };\n  IfcGridTypeEnum.IRREGULAR = { type: 3, value: \"IRREGULAR\" };\n  IfcGridTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcGridTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcGridTypeEnum = IfcGridTypeEnum;\n  class IfcHeatExchangerTypeEnum {\n  }\n  IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n  IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: \"SHELLANDTUBE\" };\n  IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;\n  class IfcHumidifierTypeEnum {\n  }\n  IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: \"STEAMINJECTION\" };\n  IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: \"ADIABATICAIRWASHER\" };\n  IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: \"ADIABATICPAN\" };\n  IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: \"ADIABATICWETTEDELEMENT\" };\n  IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: \"ADIABATICATOMIZING\" };\n  IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: \"ADIABATICULTRASONIC\" };\n  IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: \"ADIABATICRIGIDMEDIA\" };\n  IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: \"ADIABATICCOMPRESSEDAIRNOZZLE\" };\n  IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: \"ASSISTEDELECTRIC\" };\n  IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: \"ASSISTEDNATURALGAS\" };\n  IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: \"ASSISTEDPROPANE\" };\n  IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: \"ASSISTEDBUTANE\" };\n  IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: \"ASSISTEDSTEAM\" };\n  IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;\n  class IfcInterceptorTypeEnum {\n  }\n  IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: \"CYCLONIC\" };\n  IfcInterceptorTypeEnum.GREASE = { type: 3, value: \"GREASE\" };\n  IfcInterceptorTypeEnum.OIL = { type: 3, value: \"OIL\" };\n  IfcInterceptorTypeEnum.PETROL = { type: 3, value: \"PETROL\" };\n  IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum;\n  class IfcInternalOrExternalEnum {\n  }\n  IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n  IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: \"EXTERNAL_EARTH\" };\n  IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: \"EXTERNAL_WATER\" };\n  IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: \"EXTERNAL_FIRE\" };\n  IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;\n  class IfcInventoryTypeEnum {\n  }\n  IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: \"ASSETINVENTORY\" };\n  IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: \"SPACEINVENTORY\" };\n  IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: \"FURNITUREINVENTORY\" };\n  IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum;\n  class IfcJunctionBoxTypeEnum {\n  }\n  IfcJunctionBoxTypeEnum.DATA = { type: 3, value: \"DATA\" };\n  IfcJunctionBoxTypeEnum.POWER = { type: 3, value: \"POWER\" };\n  IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;\n  class IfcKnotType {\n  }\n  IfcKnotType.UNIFORM_KNOTS = { type: 3, value: \"UNIFORM_KNOTS\" };\n  IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: \"QUASI_UNIFORM_KNOTS\" };\n  IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: \"PIECEWISE_BEZIER_KNOTS\" };\n  IfcKnotType.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC42.IfcKnotType = IfcKnotType;\n  class IfcLaborResourceTypeEnum {\n  }\n  IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: \"ADMINISTRATION\" };\n  IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: \"CARPENTRY\" };\n  IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: \"CLEANING\" };\n  IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: \"CONCRETE\" };\n  IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: \"DRYWALL\" };\n  IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: \"ELECTRIC\" };\n  IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: \"FINISHING\" };\n  IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n  IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: \"GENERAL\" };\n  IfcLaborResourceTypeEnum.HVAC = { type: 3, value: \"HVAC\" };\n  IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: \"LANDSCAPING\" };\n  IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: \"MASONRY\" };\n  IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: \"PAINTING\" };\n  IfcLaborResourceTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n  IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: \"PLUMBING\" };\n  IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n  IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: \"SITEGRADING\" };\n  IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: \"STEELWORK\" };\n  IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: \"SURVEYING\" };\n  IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum;\n  class IfcLampTypeEnum {\n  }\n  IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n  IfcLampTypeEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n  IfcLampTypeEnum.HALOGEN = { type: 3, value: \"HALOGEN\" };\n  IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n  IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n  IfcLampTypeEnum.LED = { type: 3, value: \"LED\" };\n  IfcLampTypeEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n  IfcLampTypeEnum.OLED = { type: 3, value: \"OLED\" };\n  IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n  IfcLampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcLampTypeEnum = IfcLampTypeEnum;\n  class IfcLayerSetDirectionEnum {\n  }\n  IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: \"AXIS1\" };\n  IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: \"AXIS2\" };\n  IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: \"AXIS3\" };\n  IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;\n  class IfcLightDistributionCurveEnum {\n  }\n  IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: \"TYPE_A\" };\n  IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: \"TYPE_B\" };\n  IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: \"TYPE_C\" };\n  IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;\n  class IfcLightEmissionSourceEnum {\n  }\n  IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n  IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n  IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n  IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n  IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: \"LIGHTEMITTINGDIODE\" };\n  IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: \"LOWPRESSURESODIUM\" };\n  IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: \"LOWVOLTAGEHALOGEN\" };\n  IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: \"MAINVOLTAGEHALOGEN\" };\n  IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n  IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n  IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;\n  class IfcLightFixtureTypeEnum {\n  }\n  IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: \"POINTSOURCE\" };\n  IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: \"DIRECTIONSOURCE\" };\n  IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: \"SECURITYLIGHTING\" };\n  IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;\n  class IfcLoadGroupTypeEnum {\n  }\n  IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: \"LOAD_GROUP\" };\n  IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: \"LOAD_CASE\" };\n  IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: \"LOAD_COMBINATION\" };\n  IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;\n  class IfcLogicalOperatorEnum {\n  }\n  IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: \"LOGICALAND\" };\n  IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: \"LOGICALOR\" };\n  IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: \"LOGICALXOR\" };\n  IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: \"LOGICALNOTAND\" };\n  IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: \"LOGICALNOTOR\" };\n  IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;\n  class IfcMechanicalFastenerTypeEnum {\n  }\n  IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: \"ANCHORBOLT\" };\n  IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: \"BOLT\" };\n  IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: \"DOWEL\" };\n  IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: \"NAIL\" };\n  IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: \"NAILPLATE\" };\n  IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: \"RIVET\" };\n  IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: \"SCREW\" };\n  IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: \"SHEARCONNECTOR\" };\n  IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: \"STAPLE\" };\n  IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: \"STUDSHEARCONNECTOR\" };\n  IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum;\n  class IfcMedicalDeviceTypeEnum {\n  }\n  IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: \"AIRSTATION\" };\n  IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: \"FEEDAIRUNIT\" };\n  IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: \"OXYGENGENERATOR\" };\n  IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: \"OXYGENPLANT\" };\n  IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: \"VACUUMSTATION\" };\n  IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum;\n  class IfcMemberTypeEnum {\n  }\n  IfcMemberTypeEnum.BRACE = { type: 3, value: \"BRACE\" };\n  IfcMemberTypeEnum.CHORD = { type: 3, value: \"CHORD\" };\n  IfcMemberTypeEnum.COLLAR = { type: 3, value: \"COLLAR\" };\n  IfcMemberTypeEnum.MEMBER = { type: 3, value: \"MEMBER\" };\n  IfcMemberTypeEnum.MULLION = { type: 3, value: \"MULLION\" };\n  IfcMemberTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n  IfcMemberTypeEnum.POST = { type: 3, value: \"POST\" };\n  IfcMemberTypeEnum.PURLIN = { type: 3, value: \"PURLIN\" };\n  IfcMemberTypeEnum.RAFTER = { type: 3, value: \"RAFTER\" };\n  IfcMemberTypeEnum.STRINGER = { type: 3, value: \"STRINGER\" };\n  IfcMemberTypeEnum.STRUT = { type: 3, value: \"STRUT\" };\n  IfcMemberTypeEnum.STUD = { type: 3, value: \"STUD\" };\n  IfcMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum;\n  class IfcMotorConnectionTypeEnum {\n  }\n  IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: \"BELTDRIVE\" };\n  IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: \"COUPLING\" };\n  IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: \"DIRECTDRIVE\" };\n  IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;\n  class IfcNullStyle {\n  }\n  IfcNullStyle.NULL = { type: 3, value: \"NULL\" };\n  IFC42.IfcNullStyle = IfcNullStyle;\n  class IfcObjectTypeEnum {\n  }\n  IfcObjectTypeEnum.PRODUCT = { type: 3, value: \"PRODUCT\" };\n  IfcObjectTypeEnum.PROCESS = { type: 3, value: \"PROCESS\" };\n  IfcObjectTypeEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n  IfcObjectTypeEnum.RESOURCE = { type: 3, value: \"RESOURCE\" };\n  IfcObjectTypeEnum.ACTOR = { type: 3, value: \"ACTOR\" };\n  IfcObjectTypeEnum.GROUP = { type: 3, value: \"GROUP\" };\n  IfcObjectTypeEnum.PROJECT = { type: 3, value: \"PROJECT\" };\n  IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum;\n  class IfcObjectiveEnum {\n  }\n  IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: \"CODECOMPLIANCE\" };\n  IfcObjectiveEnum.CODEWAIVER = { type: 3, value: \"CODEWAIVER\" };\n  IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: \"DESIGNINTENT\" };\n  IfcObjectiveEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: \"HEALTHANDSAFETY\" };\n  IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: \"MERGECONFLICT\" };\n  IfcObjectiveEnum.MODELVIEW = { type: 3, value: \"MODELVIEW\" };\n  IfcObjectiveEnum.PARAMETER = { type: 3, value: \"PARAMETER\" };\n  IfcObjectiveEnum.REQUIREMENT = { type: 3, value: \"REQUIREMENT\" };\n  IfcObjectiveEnum.SPECIFICATION = { type: 3, value: \"SPECIFICATION\" };\n  IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: \"TRIGGERCONDITION\" };\n  IfcObjectiveEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcObjectiveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcObjectiveEnum = IfcObjectiveEnum;\n  class IfcOccupantTypeEnum {\n  }\n  IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: \"ASSIGNEE\" };\n  IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: \"ASSIGNOR\" };\n  IfcOccupantTypeEnum.LESSEE = { type: 3, value: \"LESSEE\" };\n  IfcOccupantTypeEnum.LESSOR = { type: 3, value: \"LESSOR\" };\n  IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: \"LETTINGAGENT\" };\n  IfcOccupantTypeEnum.OWNER = { type: 3, value: \"OWNER\" };\n  IfcOccupantTypeEnum.TENANT = { type: 3, value: \"TENANT\" };\n  IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum;\n  class IfcOpeningElementTypeEnum {\n  }\n  IfcOpeningElementTypeEnum.OPENING = { type: 3, value: \"OPENING\" };\n  IfcOpeningElementTypeEnum.RECESS = { type: 3, value: \"RECESS\" };\n  IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum;\n  class IfcOutletTypeEnum {\n  }\n  IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: \"AUDIOVISUALOUTLET\" };\n  IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: \"COMMUNICATIONSOUTLET\" };\n  IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: \"POWEROUTLET\" };\n  IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: \"DATAOUTLET\" };\n  IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: \"TELEPHONEOUTLET\" };\n  IfcOutletTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum;\n  class IfcPerformanceHistoryTypeEnum {\n  }\n  IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum;\n  class IfcPermeableCoveringOperationEnum {\n  }\n  IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: \"GRILL\" };\n  IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: \"LOUVER\" };\n  IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: \"SCREEN\" };\n  IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;\n  class IfcPermitTypeEnum {\n  }\n  IfcPermitTypeEnum.ACCESS = { type: 3, value: \"ACCESS\" };\n  IfcPermitTypeEnum.BUILDING = { type: 3, value: \"BUILDING\" };\n  IfcPermitTypeEnum.WORK = { type: 3, value: \"WORK\" };\n  IfcPermitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum;\n  class IfcPhysicalOrVirtualEnum {\n  }\n  IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: \"PHYSICAL\" };\n  IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: \"VIRTUAL\" };\n  IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;\n  class IfcPileConstructionEnum {\n  }\n  IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: \"CAST_IN_PLACE\" };\n  IfcPileConstructionEnum.COMPOSITE = { type: 3, value: \"COMPOSITE\" };\n  IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: \"PRECAST_CONCRETE\" };\n  IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: \"PREFAB_STEEL\" };\n  IfcPileConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum;\n  class IfcPileTypeEnum {\n  }\n  IfcPileTypeEnum.BORED = { type: 3, value: \"BORED\" };\n  IfcPileTypeEnum.DRIVEN = { type: 3, value: \"DRIVEN\" };\n  IfcPileTypeEnum.JETGROUTING = { type: 3, value: \"JETGROUTING\" };\n  IfcPileTypeEnum.COHESION = { type: 3, value: \"COHESION\" };\n  IfcPileTypeEnum.FRICTION = { type: 3, value: \"FRICTION\" };\n  IfcPileTypeEnum.SUPPORT = { type: 3, value: \"SUPPORT\" };\n  IfcPileTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPileTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPileTypeEnum = IfcPileTypeEnum;\n  class IfcPipeFittingTypeEnum {\n  }\n  IfcPipeFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n  IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n  IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n  IfcPipeFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n  IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n  IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n  IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n  IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;\n  class IfcPipeSegmentTypeEnum {\n  }\n  IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: \"CULVERT\" };\n  IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n  IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n  IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: \"GUTTER\" };\n  IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: \"SPOOL\" };\n  IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;\n  class IfcPlateTypeEnum {\n  }\n  IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: \"CURTAIN_PANEL\" };\n  IfcPlateTypeEnum.SHEET = { type: 3, value: \"SHEET\" };\n  IfcPlateTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum;\n  class IfcPreferredSurfaceCurveRepresentation {\n  }\n  IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: \"CURVE3D\" };\n  IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: \"PCURVE_S1\" };\n  IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: \"PCURVE_S2\" };\n  IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation;\n  class IfcProcedureTypeEnum {\n  }\n  IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: \"ADVICE_CAUTION\" };\n  IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: \"ADVICE_NOTE\" };\n  IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: \"ADVICE_WARNING\" };\n  IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: \"CALIBRATION\" };\n  IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: \"DIAGNOSTIC\" };\n  IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: \"SHUTDOWN\" };\n  IfcProcedureTypeEnum.STARTUP = { type: 3, value: \"STARTUP\" };\n  IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum;\n  class IfcProfileTypeEnum {\n  }\n  IfcProfileTypeEnum.CURVE = { type: 3, value: \"CURVE\" };\n  IfcProfileTypeEnum.AREA = { type: 3, value: \"AREA\" };\n  IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum;\n  class IfcProjectOrderTypeEnum {\n  }\n  IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: \"CHANGEORDER\" };\n  IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: \"MAINTENANCEWORKORDER\" };\n  IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: \"MOVEORDER\" };\n  IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: \"PURCHASEORDER\" };\n  IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: \"WORKORDER\" };\n  IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;\n  class IfcProjectedOrTrueLengthEnum {\n  }\n  IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: \"PROJECTED_LENGTH\" };\n  IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: \"TRUE_LENGTH\" };\n  IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;\n  class IfcProjectionElementTypeEnum {\n  }\n  IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum;\n  class IfcPropertySetTemplateTypeEnum {\n  }\n  IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: \"PSET_TYPEDRIVENONLY\" };\n  IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: \"PSET_TYPEDRIVENOVERRIDE\" };\n  IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: \"PSET_OCCURRENCEDRIVEN\" };\n  IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: \"PSET_PERFORMANCEDRIVEN\" };\n  IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: \"QTO_TYPEDRIVENONLY\" };\n  IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: \"QTO_TYPEDRIVENOVERRIDE\" };\n  IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: \"QTO_OCCURRENCEDRIVEN\" };\n  IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum;\n  class IfcProtectiveDeviceTrippingUnitTypeEnum {\n  }\n  IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: \"ELECTRONIC\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: \"ELECTROMAGNETIC\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: \"RESIDUALCURRENT\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: \"THERMAL\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum;\n  class IfcProtectiveDeviceTypeEnum {\n  }\n  IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: \"CIRCUITBREAKER\" };\n  IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: \"EARTHLEAKAGECIRCUITBREAKER\" };\n  IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: \"EARTHINGSWITCH\" };\n  IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: \"FUSEDISCONNECTOR\" };\n  IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: \"RESIDUALCURRENTCIRCUITBREAKER\" };\n  IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: \"RESIDUALCURRENTSWITCH\" };\n  IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: \"VARISTOR\" };\n  IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;\n  class IfcPumpTypeEnum {\n  }\n  IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: \"CIRCULATOR\" };\n  IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: \"ENDSUCTION\" };\n  IfcPumpTypeEnum.SPLITCASE = { type: 3, value: \"SPLITCASE\" };\n  IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: \"SUBMERSIBLEPUMP\" };\n  IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: \"SUMPPUMP\" };\n  IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: \"VERTICALINLINE\" };\n  IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: \"VERTICALTURBINE\" };\n  IfcPumpTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum;\n  class IfcRailingTypeEnum {\n  }\n  IfcRailingTypeEnum.HANDRAIL = { type: 3, value: \"HANDRAIL\" };\n  IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: \"GUARDRAIL\" };\n  IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: \"BALUSTRADE\" };\n  IfcRailingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum;\n  class IfcRampFlightTypeEnum {\n  }\n  IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n  IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n  IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;\n  class IfcRampTypeEnum {\n  }\n  IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: \"STRAIGHT_RUN_RAMP\" };\n  IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: \"TWO_STRAIGHT_RUN_RAMP\" };\n  IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: \"QUARTER_TURN_RAMP\" };\n  IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: \"TWO_QUARTER_TURN_RAMP\" };\n  IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: \"HALF_TURN_RAMP\" };\n  IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: \"SPIRAL_RAMP\" };\n  IfcRampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcRampTypeEnum = IfcRampTypeEnum;\n  class IfcRecurrenceTypeEnum {\n  }\n  IfcRecurrenceTypeEnum.DAILY = { type: 3, value: \"DAILY\" };\n  IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: \"WEEKLY\" };\n  IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: \"MONTHLY_BY_DAY_OF_MONTH\" };\n  IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: \"MONTHLY_BY_POSITION\" };\n  IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: \"BY_DAY_COUNT\" };\n  IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: \"BY_WEEKDAY_COUNT\" };\n  IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: \"YEARLY_BY_DAY_OF_MONTH\" };\n  IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: \"YEARLY_BY_POSITION\" };\n  IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum;\n  class IfcReflectanceMethodEnum {\n  }\n  IfcReflectanceMethodEnum.BLINN = { type: 3, value: \"BLINN\" };\n  IfcReflectanceMethodEnum.FLAT = { type: 3, value: \"FLAT\" };\n  IfcReflectanceMethodEnum.GLASS = { type: 3, value: \"GLASS\" };\n  IfcReflectanceMethodEnum.MATT = { type: 3, value: \"MATT\" };\n  IfcReflectanceMethodEnum.METAL = { type: 3, value: \"METAL\" };\n  IfcReflectanceMethodEnum.MIRROR = { type: 3, value: \"MIRROR\" };\n  IfcReflectanceMethodEnum.PHONG = { type: 3, value: \"PHONG\" };\n  IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: \"STRAUSS\" };\n  IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;\n  class IfcReinforcingBarRoleEnum {\n  }\n  IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: \"MAIN\" };\n  IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n  IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n  IfcReinforcingBarRoleEnum.STUD = { type: 3, value: \"STUD\" };\n  IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n  IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: \"EDGE\" };\n  IfcReinforcingBarRoleEnum.RING = { type: 3, value: \"RING\" };\n  IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: \"ANCHORING\" };\n  IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;\n  class IfcReinforcingBarSurfaceEnum {\n  }\n  IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: \"PLAIN\" };\n  IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: \"TEXTURED\" };\n  IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;\n  class IfcReinforcingBarTypeEnum {\n  }\n  IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: \"ANCHORING\" };\n  IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: \"EDGE\" };\n  IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n  IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: \"MAIN\" };\n  IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n  IfcReinforcingBarTypeEnum.RING = { type: 3, value: \"RING\" };\n  IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n  IfcReinforcingBarTypeEnum.STUD = { type: 3, value: \"STUD\" };\n  IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum;\n  class IfcReinforcingMeshTypeEnum {\n  }\n  IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum;\n  class IfcRoleEnum {\n  }\n  IfcRoleEnum.SUPPLIER = { type: 3, value: \"SUPPLIER\" };\n  IfcRoleEnum.MANUFACTURER = { type: 3, value: \"MANUFACTURER\" };\n  IfcRoleEnum.CONTRACTOR = { type: 3, value: \"CONTRACTOR\" };\n  IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: \"SUBCONTRACTOR\" };\n  IfcRoleEnum.ARCHITECT = { type: 3, value: \"ARCHITECT\" };\n  IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: \"STRUCTURALENGINEER\" };\n  IfcRoleEnum.COSTENGINEER = { type: 3, value: \"COSTENGINEER\" };\n  IfcRoleEnum.CLIENT = { type: 3, value: \"CLIENT\" };\n  IfcRoleEnum.BUILDINGOWNER = { type: 3, value: \"BUILDINGOWNER\" };\n  IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: \"BUILDINGOPERATOR\" };\n  IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: \"MECHANICALENGINEER\" };\n  IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: \"ELECTRICALENGINEER\" };\n  IfcRoleEnum.PROJECTMANAGER = { type: 3, value: \"PROJECTMANAGER\" };\n  IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: \"FACILITIESMANAGER\" };\n  IfcRoleEnum.CIVILENGINEER = { type: 3, value: \"CIVILENGINEER\" };\n  IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: \"COMMISSIONINGENGINEER\" };\n  IfcRoleEnum.ENGINEER = { type: 3, value: \"ENGINEER\" };\n  IfcRoleEnum.OWNER = { type: 3, value: \"OWNER\" };\n  IfcRoleEnum.CONSULTANT = { type: 3, value: \"CONSULTANT\" };\n  IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: \"CONSTRUCTIONMANAGER\" };\n  IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: \"FIELDCONSTRUCTIONMANAGER\" };\n  IfcRoleEnum.RESELLER = { type: 3, value: \"RESELLER\" };\n  IfcRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC42.IfcRoleEnum = IfcRoleEnum;\n  class IfcRoofTypeEnum {\n  }\n  IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: \"FLAT_ROOF\" };\n  IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: \"SHED_ROOF\" };\n  IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: \"GABLE_ROOF\" };\n  IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: \"HIP_ROOF\" };\n  IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: \"HIPPED_GABLE_ROOF\" };\n  IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: \"GAMBREL_ROOF\" };\n  IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: \"MANSARD_ROOF\" };\n  IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: \"BARREL_ROOF\" };\n  IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: \"RAINBOW_ROOF\" };\n  IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: \"BUTTERFLY_ROOF\" };\n  IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: \"PAVILION_ROOF\" };\n  IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: \"DOME_ROOF\" };\n  IfcRoofTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n  IfcRoofTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum;\n  class IfcSIPrefix {\n  }\n  IfcSIPrefix.EXA = { type: 3, value: \"EXA\" };\n  IfcSIPrefix.PETA = { type: 3, value: \"PETA\" };\n  IfcSIPrefix.TERA = { type: 3, value: \"TERA\" };\n  IfcSIPrefix.GIGA = { type: 3, value: \"GIGA\" };\n  IfcSIPrefix.MEGA = { type: 3, value: \"MEGA\" };\n  IfcSIPrefix.KILO = { type: 3, value: \"KILO\" };\n  IfcSIPrefix.HECTO = { type: 3, value: \"HECTO\" };\n  IfcSIPrefix.DECA = { type: 3, value: \"DECA\" };\n  IfcSIPrefix.DECI = { type: 3, value: \"DECI\" };\n  IfcSIPrefix.CENTI = { type: 3, value: \"CENTI\" };\n  IfcSIPrefix.MILLI = { type: 3, value: \"MILLI\" };\n  IfcSIPrefix.MICRO = { type: 3, value: \"MICRO\" };\n  IfcSIPrefix.NANO = { type: 3, value: \"NANO\" };\n  IfcSIPrefix.PICO = { type: 3, value: \"PICO\" };\n  IfcSIPrefix.FEMTO = { type: 3, value: \"FEMTO\" };\n  IfcSIPrefix.ATTO = { type: 3, value: \"ATTO\" };\n  IFC42.IfcSIPrefix = IfcSIPrefix;\n  class IfcSIUnitName {\n  }\n  IfcSIUnitName.AMPERE = { type: 3, value: \"AMPERE\" };\n  IfcSIUnitName.BECQUEREL = { type: 3, value: \"BECQUEREL\" };\n  IfcSIUnitName.CANDELA = { type: 3, value: \"CANDELA\" };\n  IfcSIUnitName.COULOMB = { type: 3, value: \"COULOMB\" };\n  IfcSIUnitName.CUBIC_METRE = { type: 3, value: \"CUBIC_METRE\" };\n  IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: \"DEGREE_CELSIUS\" };\n  IfcSIUnitName.FARAD = { type: 3, value: \"FARAD\" };\n  IfcSIUnitName.GRAM = { type: 3, value: \"GRAM\" };\n  IfcSIUnitName.GRAY = { type: 3, value: \"GRAY\" };\n  IfcSIUnitName.HENRY = { type: 3, value: \"HENRY\" };\n  IfcSIUnitName.HERTZ = { type: 3, value: \"HERTZ\" };\n  IfcSIUnitName.JOULE = { type: 3, value: \"JOULE\" };\n  IfcSIUnitName.KELVIN = { type: 3, value: \"KELVIN\" };\n  IfcSIUnitName.LUMEN = { type: 3, value: \"LUMEN\" };\n  IfcSIUnitName.LUX = { type: 3, value: \"LUX\" };\n  IfcSIUnitName.METRE = { type: 3, value: \"METRE\" };\n  IfcSIUnitName.MOLE = { type: 3, value: \"MOLE\" };\n  IfcSIUnitName.NEWTON = { type: 3, value: \"NEWTON\" };\n  IfcSIUnitName.OHM = { type: 3, value: \"OHM\" };\n  IfcSIUnitName.PASCAL = { type: 3, value: \"PASCAL\" };\n  IfcSIUnitName.RADIAN = { type: 3, value: \"RADIAN\" };\n  IfcSIUnitName.SECOND = { type: 3, value: \"SECOND\" };\n  IfcSIUnitName.SIEMENS = { type: 3, value: \"SIEMENS\" };\n  IfcSIUnitName.SIEVERT = { type: 3, value: \"SIEVERT\" };\n  IfcSIUnitName.SQUARE_METRE = { type: 3, value: \"SQUARE_METRE\" };\n  IfcSIUnitName.STERADIAN = { type: 3, value: \"STERADIAN\" };\n  IfcSIUnitName.TESLA = { type: 3, value: \"TESLA\" };\n  IfcSIUnitName.VOLT = { type: 3, value: \"VOLT\" };\n  IfcSIUnitName.WATT = { type: 3, value: \"WATT\" };\n  IfcSIUnitName.WEBER = { type: 3, value: \"WEBER\" };\n  IFC42.IfcSIUnitName = IfcSIUnitName;\n  class IfcSanitaryTerminalTypeEnum {\n  }\n  IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: \"BATH\" };\n  IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: \"BIDET\" };\n  IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: \"CISTERN\" };\n  IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: \"SHOWER\" };\n  IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: \"SINK\" };\n  IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: \"SANITARYFOUNTAIN\" };\n  IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: \"TOILETPAN\" };\n  IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: \"URINAL\" };\n  IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: \"WASHHANDBASIN\" };\n  IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: \"WCSEAT\" };\n  IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;\n  class IfcSectionTypeEnum {\n  }\n  IfcSectionTypeEnum.UNIFORM = { type: 3, value: \"UNIFORM\" };\n  IfcSectionTypeEnum.TAPERED = { type: 3, value: \"TAPERED\" };\n  IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum;\n  class IfcSensorTypeEnum {\n  }\n  IfcSensorTypeEnum.COSENSOR = { type: 3, value: \"COSENSOR\" };\n  IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: \"CO2SENSOR\" };\n  IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: \"CONDUCTANCESENSOR\" };\n  IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: \"CONTACTSENSOR\" };\n  IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: \"FIRESENSOR\" };\n  IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: \"FLOWSENSOR\" };\n  IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: \"FROSTSENSOR\" };\n  IfcSensorTypeEnum.GASSENSOR = { type: 3, value: \"GASSENSOR\" };\n  IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: \"HEATSENSOR\" };\n  IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: \"HUMIDITYSENSOR\" };\n  IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: \"IDENTIFIERSENSOR\" };\n  IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: \"IONCONCENTRATIONSENSOR\" };\n  IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: \"LEVELSENSOR\" };\n  IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: \"LIGHTSENSOR\" };\n  IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: \"MOISTURESENSOR\" };\n  IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: \"MOVEMENTSENSOR\" };\n  IfcSensorTypeEnum.PHSENSOR = { type: 3, value: \"PHSENSOR\" };\n  IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: \"PRESSURESENSOR\" };\n  IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: \"RADIATIONSENSOR\" };\n  IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: \"RADIOACTIVITYSENSOR\" };\n  IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: \"SMOKESENSOR\" };\n  IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: \"SOUNDSENSOR\" };\n  IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: \"TEMPERATURESENSOR\" };\n  IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: \"WINDSENSOR\" };\n  IfcSensorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum;\n  class IfcSequenceEnum {\n  }\n  IfcSequenceEnum.START_START = { type: 3, value: \"START_START\" };\n  IfcSequenceEnum.START_FINISH = { type: 3, value: \"START_FINISH\" };\n  IfcSequenceEnum.FINISH_START = { type: 3, value: \"FINISH_START\" };\n  IfcSequenceEnum.FINISH_FINISH = { type: 3, value: \"FINISH_FINISH\" };\n  IfcSequenceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSequenceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSequenceEnum = IfcSequenceEnum;\n  class IfcShadingDeviceTypeEnum {\n  }\n  IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: \"JALOUSIE\" };\n  IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: \"SHUTTER\" };\n  IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: \"AWNING\" };\n  IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum;\n  class IfcSimplePropertyTemplateTypeEnum {\n  }\n  IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: \"P_SINGLEVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: \"P_ENUMERATEDVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: \"P_BOUNDEDVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: \"P_LISTVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: \"P_TABLEVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: \"P_REFERENCEVALUE\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: \"Q_LENGTH\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: \"Q_AREA\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: \"Q_VOLUME\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: \"Q_COUNT\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: \"Q_WEIGHT\" };\n  IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: \"Q_TIME\" };\n  IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum;\n  class IfcSlabTypeEnum {\n  }\n  IfcSlabTypeEnum.FLOOR = { type: 3, value: \"FLOOR\" };\n  IfcSlabTypeEnum.ROOF = { type: 3, value: \"ROOF\" };\n  IfcSlabTypeEnum.LANDING = { type: 3, value: \"LANDING\" };\n  IfcSlabTypeEnum.BASESLAB = { type: 3, value: \"BASESLAB\" };\n  IfcSlabTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum;\n  class IfcSolarDeviceTypeEnum {\n  }\n  IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: \"SOLARCOLLECTOR\" };\n  IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: \"SOLARPANEL\" };\n  IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum;\n  class IfcSpaceHeaterTypeEnum {\n  }\n  IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: \"CONVECTOR\" };\n  IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: \"RADIATOR\" };\n  IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;\n  class IfcSpaceTypeEnum {\n  }\n  IfcSpaceTypeEnum.SPACE = { type: 3, value: \"SPACE\" };\n  IfcSpaceTypeEnum.PARKING = { type: 3, value: \"PARKING\" };\n  IfcSpaceTypeEnum.GFA = { type: 3, value: \"GFA\" };\n  IfcSpaceTypeEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n  IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n  IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum;\n  class IfcSpatialZoneTypeEnum {\n  }\n  IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: \"CONSTRUCTION\" };\n  IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: \"FIRESAFETY\" };\n  IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n  IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: \"OCCUPANCY\" };\n  IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: \"SECURITY\" };\n  IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: \"THERMAL\" };\n  IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n  IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: \"VENTILATION\" };\n  IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum;\n  class IfcStackTerminalTypeEnum {\n  }\n  IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: \"BIRDCAGE\" };\n  IfcStackTerminalTypeEnum.COWL = { type: 3, value: \"COWL\" };\n  IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: \"RAINWATERHOPPER\" };\n  IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;\n  class IfcStairFlightTypeEnum {\n  }\n  IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n  IfcStairFlightTypeEnum.WINDER = { type: 3, value: \"WINDER\" };\n  IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n  IfcStairFlightTypeEnum.CURVED = { type: 3, value: \"CURVED\" };\n  IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n  IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;\n  class IfcStairTypeEnum {\n  }\n  IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: \"STRAIGHT_RUN_STAIR\" };\n  IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: \"TWO_STRAIGHT_RUN_STAIR\" };\n  IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: \"QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: \"QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: \"HALF_WINDING_STAIR\" };\n  IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: \"HALF_TURN_STAIR\" };\n  IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: \"TWO_QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: \"TWO_QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: \"THREE_QUARTER_WINDING_STAIR\" };\n  IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: \"THREE_QUARTER_TURN_STAIR\" };\n  IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: \"SPIRAL_STAIR\" };\n  IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: \"DOUBLE_RETURN_STAIR\" };\n  IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: \"CURVED_RUN_STAIR\" };\n  IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: \"TWO_CURVED_RUN_STAIR\" };\n  IfcStairTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStairTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcStairTypeEnum = IfcStairTypeEnum;\n  class IfcStateEnum {\n  }\n  IfcStateEnum.READWRITE = { type: 3, value: \"READWRITE\" };\n  IfcStateEnum.READONLY = { type: 3, value: \"READONLY\" };\n  IfcStateEnum.LOCKED = { type: 3, value: \"LOCKED\" };\n  IfcStateEnum.READWRITELOCKED = { type: 3, value: \"READWRITELOCKED\" };\n  IfcStateEnum.READONLYLOCKED = { type: 3, value: \"READONLYLOCKED\" };\n  IFC42.IfcStateEnum = IfcStateEnum;\n  class IfcStructuralCurveActivityTypeEnum {\n  }\n  IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: \"CONST\" };\n  IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: \"LINEAR\" };\n  IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n  IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: \"EQUIDISTANT\" };\n  IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: \"SINUS\" };\n  IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: \"PARABOLA\" };\n  IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n  IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum;\n  class IfcStructuralCurveMemberTypeEnum {\n  }\n  IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: \"RIGID_JOINED_MEMBER\" };\n  IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: \"PIN_JOINED_MEMBER\" };\n  IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n  IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: \"TENSION_MEMBER\" };\n  IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: \"COMPRESSION_MEMBER\" };\n  IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum;\n  class IfcStructuralSurfaceActivityTypeEnum {\n  }\n  IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: \"CONST\" };\n  IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: \"BILINEAR\" };\n  IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n  IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: \"ISOCONTOUR\" };\n  IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum;\n  class IfcStructuralSurfaceMemberTypeEnum {\n  }\n  IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: \"BENDING_ELEMENT\" };\n  IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: \"MEMBRANE_ELEMENT\" };\n  IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: \"SHELL\" };\n  IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum;\n  class IfcSubContractResourceTypeEnum {\n  }\n  IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: \"PURCHASE\" };\n  IfcSubContractResourceTypeEnum.WORK = { type: 3, value: \"WORK\" };\n  IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum;\n  class IfcSurfaceFeatureTypeEnum {\n  }\n  IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: \"MARK\" };\n  IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: \"TAG\" };\n  IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: \"TREATMENT\" };\n  IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum;\n  class IfcSurfaceSide {\n  }\n  IfcSurfaceSide.POSITIVE = { type: 3, value: \"POSITIVE\" };\n  IfcSurfaceSide.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n  IfcSurfaceSide.BOTH = { type: 3, value: \"BOTH\" };\n  IFC42.IfcSurfaceSide = IfcSurfaceSide;\n  class IfcSwitchingDeviceTypeEnum {\n  }\n  IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: \"CONTACTOR\" };\n  IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: \"DIMMERSWITCH\" };\n  IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: \"EMERGENCYSTOP\" };\n  IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: \"KEYPAD\" };\n  IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: \"MOMENTARYSWITCH\" };\n  IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: \"SELECTORSWITCH\" };\n  IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: \"STARTER\" };\n  IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: \"SWITCHDISCONNECTOR\" };\n  IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: \"TOGGLESWITCH\" };\n  IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;\n  class IfcSystemFurnitureElementTypeEnum {\n  }\n  IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: \"PANEL\" };\n  IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: \"WORKSURFACE\" };\n  IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum;\n  class IfcTankTypeEnum {\n  }\n  IfcTankTypeEnum.BASIN = { type: 3, value: \"BASIN\" };\n  IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: \"BREAKPRESSURE\" };\n  IfcTankTypeEnum.EXPANSION = { type: 3, value: \"EXPANSION\" };\n  IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: \"FEEDANDEXPANSION\" };\n  IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: \"PRESSUREVESSEL\" };\n  IfcTankTypeEnum.STORAGE = { type: 3, value: \"STORAGE\" };\n  IfcTankTypeEnum.VESSEL = { type: 3, value: \"VESSEL\" };\n  IfcTankTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTankTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTankTypeEnum = IfcTankTypeEnum;\n  class IfcTaskDurationEnum {\n  }\n  IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: \"ELAPSEDTIME\" };\n  IfcTaskDurationEnum.WORKTIME = { type: 3, value: \"WORKTIME\" };\n  IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum;\n  class IfcTaskTypeEnum {\n  }\n  IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: \"ATTENDANCE\" };\n  IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: \"CONSTRUCTION\" };\n  IfcTaskTypeEnum.DEMOLITION = { type: 3, value: \"DEMOLITION\" };\n  IfcTaskTypeEnum.DISMANTLE = { type: 3, value: \"DISMANTLE\" };\n  IfcTaskTypeEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n  IfcTaskTypeEnum.INSTALLATION = { type: 3, value: \"INSTALLATION\" };\n  IfcTaskTypeEnum.LOGISTIC = { type: 3, value: \"LOGISTIC\" };\n  IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: \"MAINTENANCE\" };\n  IfcTaskTypeEnum.MOVE = { type: 3, value: \"MOVE\" };\n  IfcTaskTypeEnum.OPERATION = { type: 3, value: \"OPERATION\" };\n  IfcTaskTypeEnum.REMOVAL = { type: 3, value: \"REMOVAL\" };\n  IfcTaskTypeEnum.RENOVATION = { type: 3, value: \"RENOVATION\" };\n  IfcTaskTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum;\n  class IfcTendonAnchorTypeEnum {\n  }\n  IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: \"COUPLER\" };\n  IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: \"FIXED_END\" };\n  IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: \"TENSIONING_END\" };\n  IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum;\n  class IfcTendonTypeEnum {\n  }\n  IfcTendonTypeEnum.BAR = { type: 3, value: \"BAR\" };\n  IfcTendonTypeEnum.COATED = { type: 3, value: \"COATED\" };\n  IfcTendonTypeEnum.STRAND = { type: 3, value: \"STRAND\" };\n  IfcTendonTypeEnum.WIRE = { type: 3, value: \"WIRE\" };\n  IfcTendonTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum;\n  class IfcTextPath {\n  }\n  IfcTextPath.LEFT = { type: 3, value: \"LEFT\" };\n  IfcTextPath.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcTextPath.UP = { type: 3, value: \"UP\" };\n  IfcTextPath.DOWN = { type: 3, value: \"DOWN\" };\n  IFC42.IfcTextPath = IfcTextPath;\n  class IfcTimeSeriesDataTypeEnum {\n  }\n  IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n  IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n  IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: \"DISCRETEBINARY\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: \"PIECEWISEBINARY\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: \"PIECEWISECONSTANT\" };\n  IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: \"PIECEWISECONTINUOUS\" };\n  IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;\n  class IfcTransformerTypeEnum {\n  }\n  IfcTransformerTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n  IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: \"FREQUENCY\" };\n  IfcTransformerTypeEnum.INVERTER = { type: 3, value: \"INVERTER\" };\n  IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: \"RECTIFIER\" };\n  IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: \"VOLTAGE\" };\n  IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum;\n  class IfcTransitionCode {\n  }\n  IfcTransitionCode.DISCONTINUOUS = { type: 3, value: \"DISCONTINUOUS\" };\n  IfcTransitionCode.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n  IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: \"CONTSAMEGRADIENT\" };\n  IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: \"CONTSAMEGRADIENTSAMECURVATURE\" };\n  IFC42.IfcTransitionCode = IfcTransitionCode;\n  class IfcTransportElementTypeEnum {\n  }\n  IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: \"ELEVATOR\" };\n  IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: \"ESCALATOR\" };\n  IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: \"MOVINGWALKWAY\" };\n  IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: \"CRANEWAY\" };\n  IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: \"LIFTINGGEAR\" };\n  IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;\n  class IfcTrimmingPreference {\n  }\n  IfcTrimmingPreference.CARTESIAN = { type: 3, value: \"CARTESIAN\" };\n  IfcTrimmingPreference.PARAMETER = { type: 3, value: \"PARAMETER\" };\n  IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n  IFC42.IfcTrimmingPreference = IfcTrimmingPreference;\n  class IfcTubeBundleTypeEnum {\n  }\n  IfcTubeBundleTypeEnum.FINNED = { type: 3, value: \"FINNED\" };\n  IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;\n  class IfcUnitEnum {\n  }\n  IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: \"ABSORBEDDOSEUNIT\" };\n  IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: \"AMOUNTOFSUBSTANCEUNIT\" };\n  IfcUnitEnum.AREAUNIT = { type: 3, value: \"AREAUNIT\" };\n  IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: \"DOSEEQUIVALENTUNIT\" };\n  IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: \"ELECTRICCAPACITANCEUNIT\" };\n  IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: \"ELECTRICCHARGEUNIT\" };\n  IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: \"ELECTRICCONDUCTANCEUNIT\" };\n  IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: \"ELECTRICCURRENTUNIT\" };\n  IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: \"ELECTRICRESISTANCEUNIT\" };\n  IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: \"ELECTRICVOLTAGEUNIT\" };\n  IfcUnitEnum.ENERGYUNIT = { type: 3, value: \"ENERGYUNIT\" };\n  IfcUnitEnum.FORCEUNIT = { type: 3, value: \"FORCEUNIT\" };\n  IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: \"FREQUENCYUNIT\" };\n  IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: \"ILLUMINANCEUNIT\" };\n  IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: \"INDUCTANCEUNIT\" };\n  IfcUnitEnum.LENGTHUNIT = { type: 3, value: \"LENGTHUNIT\" };\n  IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: \"LUMINOUSFLUXUNIT\" };\n  IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: \"LUMINOUSINTENSITYUNIT\" };\n  IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: \"MAGNETICFLUXDENSITYUNIT\" };\n  IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: \"MAGNETICFLUXUNIT\" };\n  IfcUnitEnum.MASSUNIT = { type: 3, value: \"MASSUNIT\" };\n  IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: \"PLANEANGLEUNIT\" };\n  IfcUnitEnum.POWERUNIT = { type: 3, value: \"POWERUNIT\" };\n  IfcUnitEnum.PRESSUREUNIT = { type: 3, value: \"PRESSUREUNIT\" };\n  IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: \"RADIOACTIVITYUNIT\" };\n  IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: \"SOLIDANGLEUNIT\" };\n  IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: \"THERMODYNAMICTEMPERATUREUNIT\" };\n  IfcUnitEnum.TIMEUNIT = { type: 3, value: \"TIMEUNIT\" };\n  IfcUnitEnum.VOLUMEUNIT = { type: 3, value: \"VOLUMEUNIT\" };\n  IfcUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IFC42.IfcUnitEnum = IfcUnitEnum;\n  class IfcUnitaryControlElementTypeEnum {\n  }\n  IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: \"ALARMPANEL\" };\n  IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: \"CONTROLPANEL\" };\n  IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: \"GASDETECTIONPANEL\" };\n  IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: \"INDICATORPANEL\" };\n  IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: \"MIMICPANEL\" };\n  IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: \"HUMIDISTAT\" };\n  IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: \"THERMOSTAT\" };\n  IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: \"WEATHERSTATION\" };\n  IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum;\n  class IfcUnitaryEquipmentTypeEnum {\n  }\n  IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: \"AIRHANDLER\" };\n  IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: \"AIRCONDITIONINGUNIT\" };\n  IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: \"DEHUMIDIFIER\" };\n  IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: \"SPLITSYSTEM\" };\n  IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: \"ROOFTOPUNIT\" };\n  IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;\n  class IfcValveTypeEnum {\n  }\n  IfcValveTypeEnum.AIRRELEASE = { type: 3, value: \"AIRRELEASE\" };\n  IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: \"ANTIVACUUM\" };\n  IfcValveTypeEnum.CHANGEOVER = { type: 3, value: \"CHANGEOVER\" };\n  IfcValveTypeEnum.CHECK = { type: 3, value: \"CHECK\" };\n  IfcValveTypeEnum.COMMISSIONING = { type: 3, value: \"COMMISSIONING\" };\n  IfcValveTypeEnum.DIVERTING = { type: 3, value: \"DIVERTING\" };\n  IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: \"DRAWOFFCOCK\" };\n  IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: \"DOUBLECHECK\" };\n  IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: \"DOUBLEREGULATING\" };\n  IfcValveTypeEnum.FAUCET = { type: 3, value: \"FAUCET\" };\n  IfcValveTypeEnum.FLUSHING = { type: 3, value: \"FLUSHING\" };\n  IfcValveTypeEnum.GASCOCK = { type: 3, value: \"GASCOCK\" };\n  IfcValveTypeEnum.GASTAP = { type: 3, value: \"GASTAP\" };\n  IfcValveTypeEnum.ISOLATING = { type: 3, value: \"ISOLATING\" };\n  IfcValveTypeEnum.MIXING = { type: 3, value: \"MIXING\" };\n  IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: \"PRESSUREREDUCING\" };\n  IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: \"PRESSURERELIEF\" };\n  IfcValveTypeEnum.REGULATING = { type: 3, value: \"REGULATING\" };\n  IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: \"SAFETYCUTOFF\" };\n  IfcValveTypeEnum.STEAMTRAP = { type: 3, value: \"STEAMTRAP\" };\n  IfcValveTypeEnum.STOPCOCK = { type: 3, value: \"STOPCOCK\" };\n  IfcValveTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcValveTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcValveTypeEnum = IfcValveTypeEnum;\n  class IfcVibrationIsolatorTypeEnum {\n  }\n  IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: \"COMPRESSION\" };\n  IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: \"SPRING\" };\n  IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;\n  class IfcVoidingFeatureTypeEnum {\n  }\n  IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: \"CUTOUT\" };\n  IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: \"NOTCH\" };\n  IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: \"HOLE\" };\n  IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: \"MITER\" };\n  IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: \"CHAMFER\" };\n  IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: \"EDGE\" };\n  IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum;\n  class IfcWallTypeEnum {\n  }\n  IfcWallTypeEnum.MOVABLE = { type: 3, value: \"MOVABLE\" };\n  IfcWallTypeEnum.PARAPET = { type: 3, value: \"PARAPET\" };\n  IfcWallTypeEnum.PARTITIONING = { type: 3, value: \"PARTITIONING\" };\n  IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: \"PLUMBINGWALL\" };\n  IfcWallTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n  IfcWallTypeEnum.SOLIDWALL = { type: 3, value: \"SOLIDWALL\" };\n  IfcWallTypeEnum.STANDARD = { type: 3, value: \"STANDARD\" };\n  IfcWallTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n  IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: \"ELEMENTEDWALL\" };\n  IfcWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWallTypeEnum = IfcWallTypeEnum;\n  class IfcWasteTerminalTypeEnum {\n  }\n  IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: \"FLOORTRAP\" };\n  IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: \"FLOORWASTE\" };\n  IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: \"GULLYSUMP\" };\n  IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: \"GULLYTRAP\" };\n  IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: \"ROOFDRAIN\" };\n  IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: \"WASTEDISPOSALUNIT\" };\n  IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: \"WASTETRAP\" };\n  IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;\n  class IfcWindowPanelOperationEnum {\n  }\n  IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: \"SIDEHUNGRIGHTHAND\" };\n  IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: \"SIDEHUNGLEFTHAND\" };\n  IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: \"TILTANDTURNRIGHTHAND\" };\n  IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: \"TILTANDTURNLEFTHAND\" };\n  IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: \"TOPHUNG\" };\n  IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: \"BOTTOMHUNG\" };\n  IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: \"PIVOTHORIZONTAL\" };\n  IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: \"PIVOTVERTICAL\" };\n  IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: \"SLIDINGHORIZONTAL\" };\n  IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: \"SLIDINGVERTICAL\" };\n  IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: \"REMOVABLECASEMENT\" };\n  IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: \"FIXEDCASEMENT\" };\n  IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: \"OTHEROPERATION\" };\n  IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;\n  class IfcWindowPanelPositionEnum {\n  }\n  IfcWindowPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n  IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n  IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n  IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: \"BOTTOM\" };\n  IfcWindowPanelPositionEnum.TOP = { type: 3, value: \"TOP\" };\n  IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;\n  class IfcWindowStyleConstructionEnum {\n  }\n  IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n  IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n  IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n  IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n  IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n  IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n  IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: \"OTHER_CONSTRUCTION\" };\n  IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;\n  class IfcWindowStyleOperationEnum {\n  }\n  IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n  IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n  IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n  IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n  IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;\n  class IfcWindowTypeEnum {\n  }\n  IfcWindowTypeEnum.WINDOW = { type: 3, value: \"WINDOW\" };\n  IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: \"SKYLIGHT\" };\n  IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: \"LIGHTDOME\" };\n  IfcWindowTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum;\n  class IfcWindowTypePartitioningEnum {\n  }\n  IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n  IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n  IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n  IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum;\n  class IfcWorkCalendarTypeEnum {\n  }\n  IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: \"FIRSTSHIFT\" };\n  IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: \"SECONDSHIFT\" };\n  IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: \"THIRDSHIFT\" };\n  IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum;\n  class IfcWorkPlanTypeEnum {\n  }\n  IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n  IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n  IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n  IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum;\n  class IfcWorkScheduleTypeEnum {\n  }\n  IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n  IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n  IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n  IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n  IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n  IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum;\n  class IfcActorRole extends IfcLineObject {\n    constructor(expressID, Role, UserDefinedRole, Description) {\n      super(expressID);\n      this.Role = Role;\n      this.UserDefinedRole = UserDefinedRole;\n      this.Description = Description;\n      this.type = 3630933823;\n    }\n  }\n  IFC42.IfcActorRole = IfcActorRole;\n  class IfcAddress extends IfcLineObject {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose) {\n      super(expressID);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.type = 618182010;\n    }\n  }\n  IFC42.IfcAddress = IfcAddress;\n  class IfcApplication extends IfcLineObject {\n    constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {\n      super(expressID);\n      this.ApplicationDeveloper = ApplicationDeveloper;\n      this.Version = Version;\n      this.ApplicationFullName = ApplicationFullName;\n      this.ApplicationIdentifier = ApplicationIdentifier;\n      this.type = 639542469;\n    }\n  }\n  IFC42.IfcApplication = IfcApplication;\n  class IfcAppliedValue extends IfcLineObject {\n    constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.AppliedValue = AppliedValue;\n      this.UnitBasis = UnitBasis;\n      this.ApplicableDate = ApplicableDate;\n      this.FixedUntilDate = FixedUntilDate;\n      this.Category = Category;\n      this.Condition = Condition;\n      this.ArithmeticOperator = ArithmeticOperator;\n      this.Components = Components;\n      this.type = 411424972;\n    }\n  }\n  IFC42.IfcAppliedValue = IfcAppliedValue;\n  class IfcApproval extends IfcLineObject {\n    constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) {\n      super(expressID);\n      this.Identifier = Identifier;\n      this.Name = Name;\n      this.Description = Description;\n      this.TimeOfApproval = TimeOfApproval;\n      this.Status = Status;\n      this.Level = Level;\n      this.Qualifier = Qualifier;\n      this.RequestingApproval = RequestingApproval;\n      this.GivingApproval = GivingApproval;\n      this.type = 130549933;\n    }\n  }\n  IFC42.IfcApproval = IfcApproval;\n  class IfcBoundaryCondition extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 4037036970;\n    }\n  }\n  IFC42.IfcBoundaryCondition = IfcBoundaryCondition;\n  class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX;\n      this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY;\n      this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ;\n      this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;\n      this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;\n      this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;\n      this.type = 1560379544;\n    }\n  }\n  IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;\n  class IfcBoundaryFaceCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX;\n      this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY;\n      this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ;\n      this.type = 3367102660;\n    }\n  }\n  IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;\n  class IfcBoundaryNodeCondition extends IfcBoundaryCondition {\n    constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TranslationalStiffnessX = TranslationalStiffnessX;\n      this.TranslationalStiffnessY = TranslationalStiffnessY;\n      this.TranslationalStiffnessZ = TranslationalStiffnessZ;\n      this.RotationalStiffnessX = RotationalStiffnessX;\n      this.RotationalStiffnessY = RotationalStiffnessY;\n      this.RotationalStiffnessZ = RotationalStiffnessZ;\n      this.type = 1387855156;\n    }\n  }\n  IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;\n  class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {\n    constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {\n      super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);\n      this.Name = Name;\n      this.TranslationalStiffnessX = TranslationalStiffnessX;\n      this.TranslationalStiffnessY = TranslationalStiffnessY;\n      this.TranslationalStiffnessZ = TranslationalStiffnessZ;\n      this.RotationalStiffnessX = RotationalStiffnessX;\n      this.RotationalStiffnessY = RotationalStiffnessY;\n      this.RotationalStiffnessZ = RotationalStiffnessZ;\n      this.WarpingStiffness = WarpingStiffness;\n      this.type = 2069777674;\n    }\n  }\n  IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;\n  class IfcConnectionGeometry extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2859738748;\n    }\n  }\n  IFC42.IfcConnectionGeometry = IfcConnectionGeometry;\n  class IfcConnectionPointGeometry extends IfcConnectionGeometry {\n    constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) {\n      super(expressID);\n      this.PointOnRelatingElement = PointOnRelatingElement;\n      this.PointOnRelatedElement = PointOnRelatedElement;\n      this.type = 2614616156;\n    }\n  }\n  IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry;\n  class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {\n    constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) {\n      super(expressID);\n      this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;\n      this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;\n      this.type = 2732653382;\n    }\n  }\n  IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;\n  class IfcConnectionVolumeGeometry extends IfcConnectionGeometry {\n    constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) {\n      super(expressID);\n      this.VolumeOnRelatingElement = VolumeOnRelatingElement;\n      this.VolumeOnRelatedElement = VolumeOnRelatedElement;\n      this.type = 775493141;\n    }\n  }\n  IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry;\n  class IfcConstraint extends IfcLineObject {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.type = 1959218052;\n    }\n  }\n  IFC42.IfcConstraint = IfcConstraint;\n  class IfcCoordinateOperation extends IfcLineObject {\n    constructor(expressID, SourceCRS, TargetCRS) {\n      super(expressID);\n      this.SourceCRS = SourceCRS;\n      this.TargetCRS = TargetCRS;\n      this.type = 1785450214;\n    }\n  }\n  IFC42.IfcCoordinateOperation = IfcCoordinateOperation;\n  class IfcCoordinateReferenceSystem extends IfcLineObject {\n    constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.GeodeticDatum = GeodeticDatum;\n      this.VerticalDatum = VerticalDatum;\n      this.type = 1466758467;\n    }\n  }\n  IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem;\n  class IfcCostValue extends IfcAppliedValue {\n    constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {\n      super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components);\n      this.Name = Name;\n      this.Description = Description;\n      this.AppliedValue = AppliedValue;\n      this.UnitBasis = UnitBasis;\n      this.ApplicableDate = ApplicableDate;\n      this.FixedUntilDate = FixedUntilDate;\n      this.Category = Category;\n      this.Condition = Condition;\n      this.ArithmeticOperator = ArithmeticOperator;\n      this.Components = Components;\n      this.type = 602808272;\n    }\n  }\n  IFC42.IfcCostValue = IfcCostValue;\n  class IfcDerivedUnit extends IfcLineObject {\n    constructor(expressID, Elements, UnitType, UserDefinedType) {\n      super(expressID);\n      this.Elements = Elements;\n      this.UnitType = UnitType;\n      this.UserDefinedType = UserDefinedType;\n      this.type = 1765591967;\n    }\n  }\n  IFC42.IfcDerivedUnit = IfcDerivedUnit;\n  class IfcDerivedUnitElement extends IfcLineObject {\n    constructor(expressID, Unit, Exponent) {\n      super(expressID);\n      this.Unit = Unit;\n      this.Exponent = Exponent;\n      this.type = 1045800335;\n    }\n  }\n  IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement;\n  class IfcDimensionalExponents extends IfcLineObject {\n    constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {\n      super(expressID);\n      this.LengthExponent = LengthExponent;\n      this.MassExponent = MassExponent;\n      this.TimeExponent = TimeExponent;\n      this.ElectricCurrentExponent = ElectricCurrentExponent;\n      this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;\n      this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;\n      this.LuminousIntensityExponent = LuminousIntensityExponent;\n      this.type = 2949456006;\n    }\n  }\n  IFC42.IfcDimensionalExponents = IfcDimensionalExponents;\n  class IfcExternalInformation extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 4294318154;\n    }\n  }\n  IFC42.IfcExternalInformation = IfcExternalInformation;\n  class IfcExternalReference extends IfcLineObject {\n    constructor(expressID, Location, Identification, Name) {\n      super(expressID);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.type = 3200245327;\n    }\n  }\n  IFC42.IfcExternalReference = IfcExternalReference;\n  class IfcExternallyDefinedHatchStyle extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.type = 2242383968;\n    }\n  }\n  IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;\n  class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.type = 1040185647;\n    }\n  }\n  IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;\n  class IfcExternallyDefinedTextFont extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.type = 3548104201;\n    }\n  }\n  IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;\n  class IfcGridAxis extends IfcLineObject {\n    constructor(expressID, AxisTag, AxisCurve, SameSense) {\n      super(expressID);\n      this.AxisTag = AxisTag;\n      this.AxisCurve = AxisCurve;\n      this.SameSense = SameSense;\n      this.type = 852622518;\n    }\n  }\n  IFC42.IfcGridAxis = IfcGridAxis;\n  class IfcIrregularTimeSeriesValue extends IfcLineObject {\n    constructor(expressID, TimeStamp, ListValues) {\n      super(expressID);\n      this.TimeStamp = TimeStamp;\n      this.ListValues = ListValues;\n      this.type = 3020489413;\n    }\n  }\n  IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;\n  class IfcLibraryInformation extends IfcExternalInformation {\n    constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Version = Version;\n      this.Publisher = Publisher;\n      this.VersionDate = VersionDate;\n      this.Location = Location;\n      this.Description = Description;\n      this.type = 2655187982;\n    }\n  }\n  IFC42.IfcLibraryInformation = IfcLibraryInformation;\n  class IfcLibraryReference extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.Description = Description;\n      this.Language = Language;\n      this.ReferencedLibrary = ReferencedLibrary;\n      this.type = 3452421091;\n    }\n  }\n  IFC42.IfcLibraryReference = IfcLibraryReference;\n  class IfcLightDistributionData extends IfcLineObject {\n    constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {\n      super(expressID);\n      this.MainPlaneAngle = MainPlaneAngle;\n      this.SecondaryPlaneAngle = SecondaryPlaneAngle;\n      this.LuminousIntensity = LuminousIntensity;\n      this.type = 4162380809;\n    }\n  }\n  IFC42.IfcLightDistributionData = IfcLightDistributionData;\n  class IfcLightIntensityDistribution extends IfcLineObject {\n    constructor(expressID, LightDistributionCurve, DistributionData) {\n      super(expressID);\n      this.LightDistributionCurve = LightDistributionCurve;\n      this.DistributionData = DistributionData;\n      this.type = 1566485204;\n    }\n  }\n  IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution;\n  class IfcMapConversion extends IfcCoordinateOperation {\n    constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) {\n      super(expressID, SourceCRS, TargetCRS);\n      this.SourceCRS = SourceCRS;\n      this.TargetCRS = TargetCRS;\n      this.Eastings = Eastings;\n      this.Northings = Northings;\n      this.OrthogonalHeight = OrthogonalHeight;\n      this.XAxisAbscissa = XAxisAbscissa;\n      this.XAxisOrdinate = XAxisOrdinate;\n      this.Scale = Scale;\n      this.type = 3057273783;\n    }\n  }\n  IFC42.IfcMapConversion = IfcMapConversion;\n  class IfcMaterialClassificationRelationship extends IfcLineObject {\n    constructor(expressID, MaterialClassifications, ClassifiedMaterial) {\n      super(expressID);\n      this.MaterialClassifications = MaterialClassifications;\n      this.ClassifiedMaterial = ClassifiedMaterial;\n      this.type = 1847130766;\n    }\n  }\n  IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;\n  class IfcMaterialDefinition extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 760658860;\n    }\n  }\n  IFC42.IfcMaterialDefinition = IfcMaterialDefinition;\n  class IfcMaterialLayer extends IfcMaterialDefinition {\n    constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) {\n      super(expressID);\n      this.Material = Material;\n      this.LayerThickness = LayerThickness;\n      this.IsVentilated = IsVentilated;\n      this.Name = Name;\n      this.Description = Description;\n      this.Category = Category;\n      this.Priority = Priority;\n      this.type = 248100487;\n    }\n  }\n  IFC42.IfcMaterialLayer = IfcMaterialLayer;\n  class IfcMaterialLayerSet extends IfcMaterialDefinition {\n    constructor(expressID, MaterialLayers, LayerSetName, Description) {\n      super(expressID);\n      this.MaterialLayers = MaterialLayers;\n      this.LayerSetName = LayerSetName;\n      this.Description = Description;\n      this.type = 3303938423;\n    }\n  }\n  IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet;\n  class IfcMaterialLayerWithOffsets extends IfcMaterialLayer {\n    constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) {\n      super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority);\n      this.Material = Material;\n      this.LayerThickness = LayerThickness;\n      this.IsVentilated = IsVentilated;\n      this.Name = Name;\n      this.Description = Description;\n      this.Category = Category;\n      this.Priority = Priority;\n      this.OffsetDirection = OffsetDirection;\n      this.OffsetValues = OffsetValues;\n      this.type = 1847252529;\n    }\n  }\n  IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets;\n  class IfcMaterialList extends IfcLineObject {\n    constructor(expressID, Materials) {\n      super(expressID);\n      this.Materials = Materials;\n      this.type = 2199411900;\n    }\n  }\n  IFC42.IfcMaterialList = IfcMaterialList;\n  class IfcMaterialProfile extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, Material, Profile, Priority, Category) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Material = Material;\n      this.Profile = Profile;\n      this.Priority = Priority;\n      this.Category = Category;\n      this.type = 2235152071;\n    }\n  }\n  IFC42.IfcMaterialProfile = IfcMaterialProfile;\n  class IfcMaterialProfileSet extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.MaterialProfiles = MaterialProfiles;\n      this.CompositeProfile = CompositeProfile;\n      this.type = 164193824;\n    }\n  }\n  IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet;\n  class IfcMaterialProfileWithOffsets extends IfcMaterialProfile {\n    constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) {\n      super(expressID, Name, Description, Material, Profile, Priority, Category);\n      this.Name = Name;\n      this.Description = Description;\n      this.Material = Material;\n      this.Profile = Profile;\n      this.Priority = Priority;\n      this.Category = Category;\n      this.OffsetValues = OffsetValues;\n      this.type = 552965576;\n    }\n  }\n  IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets;\n  class IfcMaterialUsageDefinition extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1507914824;\n    }\n  }\n  IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition;\n  class IfcMeasureWithUnit extends IfcLineObject {\n    constructor(expressID, ValueComponent, UnitComponent) {\n      super(expressID);\n      this.ValueComponent = ValueComponent;\n      this.UnitComponent = UnitComponent;\n      this.type = 2597039031;\n    }\n  }\n  IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit;\n  class IfcMetric extends IfcConstraint {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) {\n      super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.Benchmark = Benchmark;\n      this.ValueSource = ValueSource;\n      this.DataValue = DataValue;\n      this.ReferencePath = ReferencePath;\n      this.type = 3368373690;\n    }\n  }\n  IFC42.IfcMetric = IfcMetric;\n  class IfcMonetaryUnit extends IfcLineObject {\n    constructor(expressID, Currency) {\n      super(expressID);\n      this.Currency = Currency;\n      this.type = 2706619895;\n    }\n  }\n  IFC42.IfcMonetaryUnit = IfcMonetaryUnit;\n  class IfcNamedUnit extends IfcLineObject {\n    constructor(expressID, Dimensions, UnitType) {\n      super(expressID);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.type = 1918398963;\n    }\n  }\n  IFC42.IfcNamedUnit = IfcNamedUnit;\n  class IfcObjectPlacement extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 3701648758;\n    }\n  }\n  IFC42.IfcObjectPlacement = IfcObjectPlacement;\n  class IfcObjective extends IfcConstraint {\n    constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) {\n      super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n      this.Name = Name;\n      this.Description = Description;\n      this.ConstraintGrade = ConstraintGrade;\n      this.ConstraintSource = ConstraintSource;\n      this.CreatingActor = CreatingActor;\n      this.CreationTime = CreationTime;\n      this.UserDefinedGrade = UserDefinedGrade;\n      this.BenchmarkValues = BenchmarkValues;\n      this.LogicalAggregator = LogicalAggregator;\n      this.ObjectiveQualifier = ObjectiveQualifier;\n      this.UserDefinedQualifier = UserDefinedQualifier;\n      this.type = 2251480897;\n    }\n  }\n  IFC42.IfcObjective = IfcObjective;\n  class IfcOrganization extends IfcLineObject {\n    constructor(expressID, Identification, Name, Description, Roles, Addresses) {\n      super(expressID);\n      this.Identification = Identification;\n      this.Name = Name;\n      this.Description = Description;\n      this.Roles = Roles;\n      this.Addresses = Addresses;\n      this.type = 4251960020;\n    }\n  }\n  IFC42.IfcOrganization = IfcOrganization;\n  class IfcOwnerHistory extends IfcLineObject {\n    constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {\n      super(expressID);\n      this.OwningUser = OwningUser;\n      this.OwningApplication = OwningApplication;\n      this.State = State;\n      this.ChangeAction = ChangeAction;\n      this.LastModifiedDate = LastModifiedDate;\n      this.LastModifyingUser = LastModifyingUser;\n      this.LastModifyingApplication = LastModifyingApplication;\n      this.CreationDate = CreationDate;\n      this.type = 1207048766;\n    }\n  }\n  IFC42.IfcOwnerHistory = IfcOwnerHistory;\n  class IfcPerson extends IfcLineObject {\n    constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {\n      super(expressID);\n      this.Identification = Identification;\n      this.FamilyName = FamilyName;\n      this.GivenName = GivenName;\n      this.MiddleNames = MiddleNames;\n      this.PrefixTitles = PrefixTitles;\n      this.SuffixTitles = SuffixTitles;\n      this.Roles = Roles;\n      this.Addresses = Addresses;\n      this.type = 2077209135;\n    }\n  }\n  IFC42.IfcPerson = IfcPerson;\n  class IfcPersonAndOrganization extends IfcLineObject {\n    constructor(expressID, ThePerson, TheOrganization, Roles) {\n      super(expressID);\n      this.ThePerson = ThePerson;\n      this.TheOrganization = TheOrganization;\n      this.Roles = Roles;\n      this.type = 101040310;\n    }\n  }\n  IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization;\n  class IfcPhysicalQuantity extends IfcLineObject {\n    constructor(expressID, Name, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2483315170;\n    }\n  }\n  IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity;\n  class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {\n    constructor(expressID, Name, Description, Unit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.type = 2226359599;\n    }\n  }\n  IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;\n  class IfcPostalAddress extends IfcAddress {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {\n      super(expressID, Purpose, Description, UserDefinedPurpose);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.InternalLocation = InternalLocation;\n      this.AddressLines = AddressLines;\n      this.PostalBox = PostalBox;\n      this.Town = Town;\n      this.Region = Region;\n      this.PostalCode = PostalCode;\n      this.Country = Country;\n      this.type = 3355820592;\n    }\n  }\n  IFC42.IfcPostalAddress = IfcPostalAddress;\n  class IfcPresentationItem extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 677532197;\n    }\n  }\n  IFC42.IfcPresentationItem = IfcPresentationItem;\n  class IfcPresentationLayerAssignment extends IfcLineObject {\n    constructor(expressID, Name, Description, AssignedItems, Identifier) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.AssignedItems = AssignedItems;\n      this.Identifier = Identifier;\n      this.type = 2022622350;\n    }\n  }\n  IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;\n  class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {\n    constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {\n      super(expressID, Name, Description, AssignedItems, Identifier);\n      this.Name = Name;\n      this.Description = Description;\n      this.AssignedItems = AssignedItems;\n      this.Identifier = Identifier;\n      this.LayerOn = LayerOn;\n      this.LayerFrozen = LayerFrozen;\n      this.LayerBlocked = LayerBlocked;\n      this.LayerStyles = LayerStyles;\n      this.type = 1304840413;\n    }\n  }\n  IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;\n  class IfcPresentationStyle extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3119450353;\n    }\n  }\n  IFC42.IfcPresentationStyle = IfcPresentationStyle;\n  class IfcPresentationStyleAssignment extends IfcLineObject {\n    constructor(expressID, Styles) {\n      super(expressID);\n      this.Styles = Styles;\n      this.type = 2417041796;\n    }\n  }\n  IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment;\n  class IfcProductRepresentation extends IfcLineObject {\n    constructor(expressID, Name, Description, Representations) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.type = 2095639259;\n    }\n  }\n  IFC42.IfcProductRepresentation = IfcProductRepresentation;\n  class IfcProfileDef extends IfcLineObject {\n    constructor(expressID, ProfileType, ProfileName) {\n      super(expressID);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.type = 3958567839;\n    }\n  }\n  IFC42.IfcProfileDef = IfcProfileDef;\n  class IfcProjectedCRS extends IfcCoordinateReferenceSystem {\n    constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) {\n      super(expressID, Name, Description, GeodeticDatum, VerticalDatum);\n      this.Name = Name;\n      this.Description = Description;\n      this.GeodeticDatum = GeodeticDatum;\n      this.VerticalDatum = VerticalDatum;\n      this.MapProjection = MapProjection;\n      this.MapZone = MapZone;\n      this.MapUnit = MapUnit;\n      this.type = 3843373140;\n    }\n  }\n  IFC42.IfcProjectedCRS = IfcProjectedCRS;\n  class IfcPropertyAbstraction extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 986844984;\n    }\n  }\n  IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction;\n  class IfcPropertyEnumeration extends IfcPropertyAbstraction {\n    constructor(expressID, Name, EnumerationValues, Unit) {\n      super(expressID);\n      this.Name = Name;\n      this.EnumerationValues = EnumerationValues;\n      this.Unit = Unit;\n      this.type = 3710013099;\n    }\n  }\n  IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration;\n  class IfcQuantityArea extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, AreaValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.AreaValue = AreaValue;\n      this.Formula = Formula;\n      this.type = 2044713172;\n    }\n  }\n  IFC42.IfcQuantityArea = IfcQuantityArea;\n  class IfcQuantityCount extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, CountValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.CountValue = CountValue;\n      this.Formula = Formula;\n      this.type = 2093928680;\n    }\n  }\n  IFC42.IfcQuantityCount = IfcQuantityCount;\n  class IfcQuantityLength extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, LengthValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.LengthValue = LengthValue;\n      this.Formula = Formula;\n      this.type = 931644368;\n    }\n  }\n  IFC42.IfcQuantityLength = IfcQuantityLength;\n  class IfcQuantityTime extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, TimeValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.TimeValue = TimeValue;\n      this.Formula = Formula;\n      this.type = 3252649465;\n    }\n  }\n  IFC42.IfcQuantityTime = IfcQuantityTime;\n  class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, VolumeValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.VolumeValue = VolumeValue;\n      this.Formula = Formula;\n      this.type = 2405470396;\n    }\n  }\n  IFC42.IfcQuantityVolume = IfcQuantityVolume;\n  class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {\n    constructor(expressID, Name, Description, Unit, WeightValue, Formula) {\n      super(expressID, Name, Description, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.WeightValue = WeightValue;\n      this.Formula = Formula;\n      this.type = 825690147;\n    }\n  }\n  IFC42.IfcQuantityWeight = IfcQuantityWeight;\n  class IfcRecurrencePattern extends IfcLineObject {\n    constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) {\n      super(expressID);\n      this.RecurrenceType = RecurrenceType;\n      this.DayComponent = DayComponent;\n      this.WeekdayComponent = WeekdayComponent;\n      this.MonthComponent = MonthComponent;\n      this.Position = Position;\n      this.Interval = Interval;\n      this.Occurrences = Occurrences;\n      this.TimePeriods = TimePeriods;\n      this.type = 3915482550;\n    }\n  }\n  IFC42.IfcRecurrencePattern = IfcRecurrencePattern;\n  class IfcReference extends IfcLineObject {\n    constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) {\n      super(expressID);\n      this.TypeIdentifier = TypeIdentifier;\n      this.AttributeIdentifier = AttributeIdentifier;\n      this.InstanceName = InstanceName;\n      this.ListPositions = ListPositions;\n      this.InnerReference = InnerReference;\n      this.type = 2433181523;\n    }\n  }\n  IFC42.IfcReference = IfcReference;\n  class IfcRepresentation extends IfcLineObject {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 1076942058;\n    }\n  }\n  IFC42.IfcRepresentation = IfcRepresentation;\n  class IfcRepresentationContext extends IfcLineObject {\n    constructor(expressID, ContextIdentifier, ContextType) {\n      super(expressID);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.type = 3377609919;\n    }\n  }\n  IFC42.IfcRepresentationContext = IfcRepresentationContext;\n  class IfcRepresentationItem extends IfcLineObject {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 3008791417;\n    }\n  }\n  IFC42.IfcRepresentationItem = IfcRepresentationItem;\n  class IfcRepresentationMap extends IfcLineObject {\n    constructor(expressID, MappingOrigin, MappedRepresentation) {\n      super(expressID);\n      this.MappingOrigin = MappingOrigin;\n      this.MappedRepresentation = MappedRepresentation;\n      this.type = 1660063152;\n    }\n  }\n  IFC42.IfcRepresentationMap = IfcRepresentationMap;\n  class IfcResourceLevelRelationship extends IfcLineObject {\n    constructor(expressID, Name, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2439245199;\n    }\n  }\n  IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship;\n  class IfcRoot extends IfcLineObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2341007311;\n    }\n  }\n  IFC42.IfcRoot = IfcRoot;\n  class IfcSIUnit extends IfcNamedUnit {\n    constructor(expressID, UnitType, Prefix, Name) {\n      super(expressID, new Handle(0), UnitType);\n      this.UnitType = UnitType;\n      this.Prefix = Prefix;\n      this.Name = Name;\n      this.type = 448429030;\n    }\n  }\n  IFC42.IfcSIUnit = IfcSIUnit;\n  class IfcSchedulingTime extends IfcLineObject {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) {\n      super(expressID);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.type = 1054537805;\n    }\n  }\n  IFC42.IfcSchedulingTime = IfcSchedulingTime;\n  class IfcShapeAspect extends IfcLineObject {\n    constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {\n      super(expressID);\n      this.ShapeRepresentations = ShapeRepresentations;\n      this.Name = Name;\n      this.Description = Description;\n      this.ProductDefinitional = ProductDefinitional;\n      this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;\n      this.type = 867548509;\n    }\n  }\n  IFC42.IfcShapeAspect = IfcShapeAspect;\n  class IfcShapeModel extends IfcRepresentation {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 3982875396;\n    }\n  }\n  IFC42.IfcShapeModel = IfcShapeModel;\n  class IfcShapeRepresentation extends IfcShapeModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 4240577450;\n    }\n  }\n  IFC42.IfcShapeRepresentation = IfcShapeRepresentation;\n  class IfcStructuralConnectionCondition extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 2273995522;\n    }\n  }\n  IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;\n  class IfcStructuralLoad extends IfcLineObject {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 2162789131;\n    }\n  }\n  IFC42.IfcStructuralLoad = IfcStructuralLoad;\n  class IfcStructuralLoadConfiguration extends IfcStructuralLoad {\n    constructor(expressID, Name, Values, Locations) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.Values = Values;\n      this.Locations = Locations;\n      this.type = 3478079324;\n    }\n  }\n  IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration;\n  class IfcStructuralLoadOrResult extends IfcStructuralLoad {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 609421318;\n    }\n  }\n  IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult;\n  class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 2525727697;\n    }\n  }\n  IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic;\n  class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.DeltaTConstant = DeltaTConstant;\n      this.DeltaTY = DeltaTY;\n      this.DeltaTZ = DeltaTZ;\n      this.type = 3408363356;\n    }\n  }\n  IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;\n  class IfcStyleModel extends IfcRepresentation {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 2830218821;\n    }\n  }\n  IFC42.IfcStyleModel = IfcStyleModel;\n  class IfcStyledItem extends IfcRepresentationItem {\n    constructor(expressID, Item, Styles, Name) {\n      super(expressID);\n      this.Item = Item;\n      this.Styles = Styles;\n      this.Name = Name;\n      this.type = 3958052878;\n    }\n  }\n  IFC42.IfcStyledItem = IfcStyledItem;\n  class IfcStyledRepresentation extends IfcStyleModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 3049322572;\n    }\n  }\n  IFC42.IfcStyledRepresentation = IfcStyledRepresentation;\n  class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult {\n    constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.SurfaceReinforcement1 = SurfaceReinforcement1;\n      this.SurfaceReinforcement2 = SurfaceReinforcement2;\n      this.ShearReinforcement = ShearReinforcement;\n      this.type = 2934153892;\n    }\n  }\n  IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea;\n  class IfcSurfaceStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, Side, Styles) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.Side = Side;\n      this.Styles = Styles;\n      this.type = 1300840506;\n    }\n  }\n  IFC42.IfcSurfaceStyle = IfcSurfaceStyle;\n  class IfcSurfaceStyleLighting extends IfcPresentationItem {\n    constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {\n      super(expressID);\n      this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n      this.DiffuseReflectionColour = DiffuseReflectionColour;\n      this.TransmissionColour = TransmissionColour;\n      this.ReflectanceColour = ReflectanceColour;\n      this.type = 3303107099;\n    }\n  }\n  IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;\n  class IfcSurfaceStyleRefraction extends IfcPresentationItem {\n    constructor(expressID, RefractionIndex, DispersionFactor) {\n      super(expressID);\n      this.RefractionIndex = RefractionIndex;\n      this.DispersionFactor = DispersionFactor;\n      this.type = 1607154358;\n    }\n  }\n  IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;\n  class IfcSurfaceStyleShading extends IfcPresentationItem {\n    constructor(expressID, SurfaceColour, Transparency) {\n      super(expressID);\n      this.SurfaceColour = SurfaceColour;\n      this.Transparency = Transparency;\n      this.type = 846575682;\n    }\n  }\n  IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading;\n  class IfcSurfaceStyleWithTextures extends IfcPresentationItem {\n    constructor(expressID, Textures) {\n      super(expressID);\n      this.Textures = Textures;\n      this.type = 1351298697;\n    }\n  }\n  IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;\n  class IfcSurfaceTexture extends IfcPresentationItem {\n    constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) {\n      super(expressID);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.Mode = Mode;\n      this.TextureTransform = TextureTransform;\n      this.Parameter = Parameter;\n      this.type = 626085974;\n    }\n  }\n  IFC42.IfcSurfaceTexture = IfcSurfaceTexture;\n  class IfcTable extends IfcLineObject {\n    constructor(expressID, Name, Rows, Columns) {\n      super(expressID);\n      this.Name = Name;\n      this.Rows = Rows;\n      this.Columns = Columns;\n      this.type = 985171141;\n    }\n  }\n  IFC42.IfcTable = IfcTable;\n  class IfcTableColumn extends IfcLineObject {\n    constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) {\n      super(expressID);\n      this.Identifier = Identifier;\n      this.Name = Name;\n      this.Description = Description;\n      this.Unit = Unit;\n      this.ReferencePath = ReferencePath;\n      this.type = 2043862942;\n    }\n  }\n  IFC42.IfcTableColumn = IfcTableColumn;\n  class IfcTableRow extends IfcLineObject {\n    constructor(expressID, RowCells, IsHeading) {\n      super(expressID);\n      this.RowCells = RowCells;\n      this.IsHeading = IsHeading;\n      this.type = 531007025;\n    }\n  }\n  IFC42.IfcTableRow = IfcTableRow;\n  class IfcTaskTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.DurationType = DurationType;\n      this.ScheduleDuration = ScheduleDuration;\n      this.ScheduleStart = ScheduleStart;\n      this.ScheduleFinish = ScheduleFinish;\n      this.EarlyStart = EarlyStart;\n      this.EarlyFinish = EarlyFinish;\n      this.LateStart = LateStart;\n      this.LateFinish = LateFinish;\n      this.FreeFloat = FreeFloat;\n      this.TotalFloat = TotalFloat;\n      this.IsCritical = IsCritical;\n      this.StatusTime = StatusTime;\n      this.ActualDuration = ActualDuration;\n      this.ActualStart = ActualStart;\n      this.ActualFinish = ActualFinish;\n      this.RemainingTime = RemainingTime;\n      this.Completion = Completion;\n      this.type = 1549132990;\n    }\n  }\n  IFC42.IfcTaskTime = IfcTaskTime;\n  class IfcTaskTimeRecurring extends IfcTaskTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.DurationType = DurationType;\n      this.ScheduleDuration = ScheduleDuration;\n      this.ScheduleStart = ScheduleStart;\n      this.ScheduleFinish = ScheduleFinish;\n      this.EarlyStart = EarlyStart;\n      this.EarlyFinish = EarlyFinish;\n      this.LateStart = LateStart;\n      this.LateFinish = LateFinish;\n      this.FreeFloat = FreeFloat;\n      this.TotalFloat = TotalFloat;\n      this.IsCritical = IsCritical;\n      this.StatusTime = StatusTime;\n      this.ActualDuration = ActualDuration;\n      this.ActualStart = ActualStart;\n      this.ActualFinish = ActualFinish;\n      this.RemainingTime = RemainingTime;\n      this.Completion = Completion;\n      this.Recurrence = Recurrence;\n      this.type = 2771591690;\n    }\n  }\n  IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring;\n  class IfcTelecomAddress extends IfcAddress {\n    constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) {\n      super(expressID, Purpose, Description, UserDefinedPurpose);\n      this.Purpose = Purpose;\n      this.Description = Description;\n      this.UserDefinedPurpose = UserDefinedPurpose;\n      this.TelephoneNumbers = TelephoneNumbers;\n      this.FacsimileNumbers = FacsimileNumbers;\n      this.PagerNumber = PagerNumber;\n      this.ElectronicMailAddresses = ElectronicMailAddresses;\n      this.WWWHomePageURL = WWWHomePageURL;\n      this.MessagingIDs = MessagingIDs;\n      this.type = 912023232;\n    }\n  }\n  IFC42.IfcTelecomAddress = IfcTelecomAddress;\n  class IfcTextStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TextCharacterAppearance = TextCharacterAppearance;\n      this.TextStyle = TextStyle;\n      this.TextFontStyle = TextFontStyle;\n      this.ModelOrDraughting = ModelOrDraughting;\n      this.type = 1447204868;\n    }\n  }\n  IFC42.IfcTextStyle = IfcTextStyle;\n  class IfcTextStyleForDefinedFont extends IfcPresentationItem {\n    constructor(expressID, Colour, BackgroundColour) {\n      super(expressID);\n      this.Colour = Colour;\n      this.BackgroundColour = BackgroundColour;\n      this.type = 2636378356;\n    }\n  }\n  IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;\n  class IfcTextStyleTextModel extends IfcPresentationItem {\n    constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {\n      super(expressID);\n      this.TextIndent = TextIndent;\n      this.TextAlign = TextAlign;\n      this.TextDecoration = TextDecoration;\n      this.LetterSpacing = LetterSpacing;\n      this.WordSpacing = WordSpacing;\n      this.TextTransform = TextTransform;\n      this.LineHeight = LineHeight;\n      this.type = 1640371178;\n    }\n  }\n  IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel;\n  class IfcTextureCoordinate extends IfcPresentationItem {\n    constructor(expressID, Maps) {\n      super(expressID);\n      this.Maps = Maps;\n      this.type = 280115917;\n    }\n  }\n  IFC42.IfcTextureCoordinate = IfcTextureCoordinate;\n  class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {\n    constructor(expressID, Maps, Mode, Parameter) {\n      super(expressID, Maps);\n      this.Maps = Maps;\n      this.Mode = Mode;\n      this.Parameter = Parameter;\n      this.type = 1742049831;\n    }\n  }\n  IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;\n  class IfcTextureMap extends IfcTextureCoordinate {\n    constructor(expressID, Maps, Vertices, MappedTo) {\n      super(expressID, Maps);\n      this.Maps = Maps;\n      this.Vertices = Vertices;\n      this.MappedTo = MappedTo;\n      this.type = 2552916305;\n    }\n  }\n  IFC42.IfcTextureMap = IfcTextureMap;\n  class IfcTextureVertex extends IfcPresentationItem {\n    constructor(expressID, Coordinates) {\n      super(expressID);\n      this.Coordinates = Coordinates;\n      this.type = 1210645708;\n    }\n  }\n  IFC42.IfcTextureVertex = IfcTextureVertex;\n  class IfcTextureVertexList extends IfcPresentationItem {\n    constructor(expressID, TexCoordsList) {\n      super(expressID);\n      this.TexCoordsList = TexCoordsList;\n      this.type = 3611470254;\n    }\n  }\n  IFC42.IfcTextureVertexList = IfcTextureVertexList;\n  class IfcTimePeriod extends IfcLineObject {\n    constructor(expressID, StartTime, EndTime) {\n      super(expressID);\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.type = 1199560280;\n    }\n  }\n  IFC42.IfcTimePeriod = IfcTimePeriod;\n  class IfcTimeSeries extends IfcLineObject {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.type = 3101149627;\n    }\n  }\n  IFC42.IfcTimeSeries = IfcTimeSeries;\n  class IfcTimeSeriesValue extends IfcLineObject {\n    constructor(expressID, ListValues) {\n      super(expressID);\n      this.ListValues = ListValues;\n      this.type = 581633288;\n    }\n  }\n  IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue;\n  class IfcTopologicalRepresentationItem extends IfcRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1377556343;\n    }\n  }\n  IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;\n  class IfcTopologyRepresentation extends IfcShapeModel {\n    constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n      super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n      this.ContextOfItems = ContextOfItems;\n      this.RepresentationIdentifier = RepresentationIdentifier;\n      this.RepresentationType = RepresentationType;\n      this.Items = Items;\n      this.type = 1735638870;\n    }\n  }\n  IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation;\n  class IfcUnitAssignment extends IfcLineObject {\n    constructor(expressID, Units) {\n      super(expressID);\n      this.Units = Units;\n      this.type = 180925521;\n    }\n  }\n  IFC42.IfcUnitAssignment = IfcUnitAssignment;\n  class IfcVertex extends IfcTopologicalRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2799835756;\n    }\n  }\n  IFC42.IfcVertex = IfcVertex;\n  class IfcVertexPoint extends IfcVertex {\n    constructor(expressID, VertexGeometry) {\n      super(expressID);\n      this.VertexGeometry = VertexGeometry;\n      this.type = 1907098498;\n    }\n  }\n  IFC42.IfcVertexPoint = IfcVertexPoint;\n  class IfcVirtualGridIntersection extends IfcLineObject {\n    constructor(expressID, IntersectingAxes, OffsetDistances) {\n      super(expressID);\n      this.IntersectingAxes = IntersectingAxes;\n      this.OffsetDistances = OffsetDistances;\n      this.type = 891718957;\n    }\n  }\n  IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection;\n  class IfcWorkTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.RecurrencePattern = RecurrencePattern;\n      this.Start = Start;\n      this.Finish = Finish;\n      this.type = 1236880293;\n    }\n  }\n  IFC42.IfcWorkTime = IfcWorkTime;\n  class IfcApprovalRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingApproval = RelatingApproval;\n      this.RelatedApprovals = RelatedApprovals;\n      this.type = 3869604511;\n    }\n  }\n  IFC42.IfcApprovalRelationship = IfcApprovalRelationship;\n  class IfcArbitraryClosedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, OuterCurve) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.OuterCurve = OuterCurve;\n      this.type = 3798115385;\n    }\n  }\n  IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;\n  class IfcArbitraryOpenProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Curve) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Curve = Curve;\n      this.type = 1310608509;\n    }\n  }\n  IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;\n  class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) {\n      super(expressID, ProfileType, ProfileName, OuterCurve);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.OuterCurve = OuterCurve;\n      this.InnerCurves = InnerCurves;\n      this.type = 2705031697;\n    }\n  }\n  IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;\n  class IfcBlobTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) {\n      super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.Mode = Mode;\n      this.TextureTransform = TextureTransform;\n      this.Parameter = Parameter;\n      this.RasterFormat = RasterFormat;\n      this.RasterCode = RasterCode;\n      this.type = 616511568;\n    }\n  }\n  IFC42.IfcBlobTexture = IfcBlobTexture;\n  class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Curve, Thickness) {\n      super(expressID, ProfileType, ProfileName, Curve);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Curve = Curve;\n      this.Thickness = Thickness;\n      this.type = 3150382593;\n    }\n  }\n  IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef;\n  class IfcClassification extends IfcExternalInformation {\n    constructor(expressID, Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) {\n      super(expressID);\n      this.Source = Source;\n      this.Edition = Edition;\n      this.EditionDate = EditionDate;\n      this.Name = Name;\n      this.Description = Description;\n      this.Location = Location;\n      this.ReferenceTokens = ReferenceTokens;\n      this.type = 747523909;\n    }\n  }\n  IFC42.IfcClassification = IfcClassification;\n  class IfcClassificationReference extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.ReferencedSource = ReferencedSource;\n      this.Description = Description;\n      this.Sort = Sort;\n      this.type = 647927063;\n    }\n  }\n  IFC42.IfcClassificationReference = IfcClassificationReference;\n  class IfcColourRgbList extends IfcPresentationItem {\n    constructor(expressID, ColourList) {\n      super(expressID);\n      this.ColourList = ColourList;\n      this.type = 3285139300;\n    }\n  }\n  IFC42.IfcColourRgbList = IfcColourRgbList;\n  class IfcColourSpecification extends IfcPresentationItem {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3264961684;\n    }\n  }\n  IFC42.IfcColourSpecification = IfcColourSpecification;\n  class IfcCompositeProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Profiles, Label) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Profiles = Profiles;\n      this.Label = Label;\n      this.type = 1485152156;\n    }\n  }\n  IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef;\n  class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {\n    constructor(expressID, CfsFaces) {\n      super(expressID);\n      this.CfsFaces = CfsFaces;\n      this.type = 370225590;\n    }\n  }\n  IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet;\n  class IfcConnectionCurveGeometry extends IfcConnectionGeometry {\n    constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) {\n      super(expressID);\n      this.CurveOnRelatingElement = CurveOnRelatingElement;\n      this.CurveOnRelatedElement = CurveOnRelatedElement;\n      this.type = 1981873012;\n    }\n  }\n  IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;\n  class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {\n    constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {\n      super(expressID, PointOnRelatingElement, PointOnRelatedElement);\n      this.PointOnRelatingElement = PointOnRelatingElement;\n      this.PointOnRelatedElement = PointOnRelatedElement;\n      this.EccentricityInX = EccentricityInX;\n      this.EccentricityInY = EccentricityInY;\n      this.EccentricityInZ = EccentricityInZ;\n      this.type = 45288368;\n    }\n  }\n  IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;\n  class IfcContextDependentUnit extends IfcNamedUnit {\n    constructor(expressID, Dimensions, UnitType, Name) {\n      super(expressID, Dimensions, UnitType);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Name = Name;\n      this.type = 3050246964;\n    }\n  }\n  IFC42.IfcContextDependentUnit = IfcContextDependentUnit;\n  class IfcConversionBasedUnit extends IfcNamedUnit {\n    constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) {\n      super(expressID, Dimensions, UnitType);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Name = Name;\n      this.ConversionFactor = ConversionFactor;\n      this.type = 2889183280;\n    }\n  }\n  IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit;\n  class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit {\n    constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) {\n      super(expressID, Dimensions, UnitType, Name, ConversionFactor);\n      this.Dimensions = Dimensions;\n      this.UnitType = UnitType;\n      this.Name = Name;\n      this.ConversionFactor = ConversionFactor;\n      this.ConversionOffset = ConversionOffset;\n      this.type = 2713554722;\n    }\n  }\n  IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset;\n  class IfcCurrencyRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingMonetaryUnit = RelatingMonetaryUnit;\n      this.RelatedMonetaryUnit = RelatedMonetaryUnit;\n      this.ExchangeRate = ExchangeRate;\n      this.RateDateTime = RateDateTime;\n      this.RateSource = RateSource;\n      this.type = 539742890;\n    }\n  }\n  IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship;\n  class IfcCurveStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.CurveFont = CurveFont;\n      this.CurveWidth = CurveWidth;\n      this.CurveColour = CurveColour;\n      this.ModelOrDraughting = ModelOrDraughting;\n      this.type = 3800577675;\n    }\n  }\n  IFC42.IfcCurveStyle = IfcCurveStyle;\n  class IfcCurveStyleFont extends IfcPresentationItem {\n    constructor(expressID, Name, PatternList) {\n      super(expressID);\n      this.Name = Name;\n      this.PatternList = PatternList;\n      this.type = 1105321065;\n    }\n  }\n  IFC42.IfcCurveStyleFont = IfcCurveStyleFont;\n  class IfcCurveStyleFontAndScaling extends IfcPresentationItem {\n    constructor(expressID, Name, CurveFont, CurveFontScaling) {\n      super(expressID);\n      this.Name = Name;\n      this.CurveFont = CurveFont;\n      this.CurveFontScaling = CurveFontScaling;\n      this.type = 2367409068;\n    }\n  }\n  IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;\n  class IfcCurveStyleFontPattern extends IfcPresentationItem {\n    constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) {\n      super(expressID);\n      this.VisibleSegmentLength = VisibleSegmentLength;\n      this.InvisibleSegmentLength = InvisibleSegmentLength;\n      this.type = 3510044353;\n    }\n  }\n  IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;\n  class IfcDerivedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.ParentProfile = ParentProfile;\n      this.Operator = Operator;\n      this.Label = Label;\n      this.type = 3632507154;\n    }\n  }\n  IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef;\n  class IfcDocumentInformation extends IfcExternalInformation {\n    constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {\n      super(expressID);\n      this.Identification = Identification;\n      this.Name = Name;\n      this.Description = Description;\n      this.Location = Location;\n      this.Purpose = Purpose;\n      this.IntendedUse = IntendedUse;\n      this.Scope = Scope;\n      this.Revision = Revision;\n      this.DocumentOwner = DocumentOwner;\n      this.Editors = Editors;\n      this.CreationTime = CreationTime;\n      this.LastRevisionTime = LastRevisionTime;\n      this.ElectronicFormat = ElectronicFormat;\n      this.ValidFrom = ValidFrom;\n      this.ValidUntil = ValidUntil;\n      this.Confidentiality = Confidentiality;\n      this.Status = Status;\n      this.type = 1154170062;\n    }\n  }\n  IFC42.IfcDocumentInformation = IfcDocumentInformation;\n  class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingDocument = RelatingDocument;\n      this.RelatedDocuments = RelatedDocuments;\n      this.RelationshipType = RelationshipType;\n      this.type = 770865208;\n    }\n  }\n  IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;\n  class IfcDocumentReference extends IfcExternalReference {\n    constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) {\n      super(expressID, Location, Identification, Name);\n      this.Location = Location;\n      this.Identification = Identification;\n      this.Name = Name;\n      this.Description = Description;\n      this.ReferencedDocument = ReferencedDocument;\n      this.type = 3732053477;\n    }\n  }\n  IFC42.IfcDocumentReference = IfcDocumentReference;\n  class IfcEdge extends IfcTopologicalRepresentationItem {\n    constructor(expressID, EdgeStart, EdgeEnd) {\n      super(expressID);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.type = 3900360178;\n    }\n  }\n  IFC42.IfcEdge = IfcEdge;\n  class IfcEdgeCurve extends IfcEdge {\n    constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {\n      super(expressID, EdgeStart, EdgeEnd);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.EdgeGeometry = EdgeGeometry;\n      this.SameSense = SameSense;\n      this.type = 476780140;\n    }\n  }\n  IFC42.IfcEdgeCurve = IfcEdgeCurve;\n  class IfcEventTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.ActualDate = ActualDate;\n      this.EarlyDate = EarlyDate;\n      this.LateDate = LateDate;\n      this.ScheduleDate = ScheduleDate;\n      this.type = 211053100;\n    }\n  }\n  IFC42.IfcEventTime = IfcEventTime;\n  class IfcExtendedProperties extends IfcPropertyAbstraction {\n    constructor(expressID, Name, Description, Properties2) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Properties = Properties2;\n      this.type = 297599258;\n    }\n  }\n  IFC42.IfcExtendedProperties = IfcExtendedProperties;\n  class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingReference = RelatingReference;\n      this.RelatedResourceObjects = RelatedResourceObjects;\n      this.type = 1437805879;\n    }\n  }\n  IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship;\n  class IfcFace extends IfcTopologicalRepresentationItem {\n    constructor(expressID, Bounds) {\n      super(expressID);\n      this.Bounds = Bounds;\n      this.type = 2556980723;\n    }\n  }\n  IFC42.IfcFace = IfcFace;\n  class IfcFaceBound extends IfcTopologicalRepresentationItem {\n    constructor(expressID, Bound, Orientation) {\n      super(expressID);\n      this.Bound = Bound;\n      this.Orientation = Orientation;\n      this.type = 1809719519;\n    }\n  }\n  IFC42.IfcFaceBound = IfcFaceBound;\n  class IfcFaceOuterBound extends IfcFaceBound {\n    constructor(expressID, Bound, Orientation) {\n      super(expressID, Bound, Orientation);\n      this.Bound = Bound;\n      this.Orientation = Orientation;\n      this.type = 803316827;\n    }\n  }\n  IFC42.IfcFaceOuterBound = IfcFaceOuterBound;\n  class IfcFaceSurface extends IfcFace {\n    constructor(expressID, Bounds, FaceSurface, SameSense) {\n      super(expressID, Bounds);\n      this.Bounds = Bounds;\n      this.FaceSurface = FaceSurface;\n      this.SameSense = SameSense;\n      this.type = 3008276851;\n    }\n  }\n  IFC42.IfcFaceSurface = IfcFaceSurface;\n  class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {\n    constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.TensionFailureX = TensionFailureX;\n      this.TensionFailureY = TensionFailureY;\n      this.TensionFailureZ = TensionFailureZ;\n      this.CompressionFailureX = CompressionFailureX;\n      this.CompressionFailureY = CompressionFailureY;\n      this.CompressionFailureZ = CompressionFailureZ;\n      this.type = 4219587988;\n    }\n  }\n  IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition;\n  class IfcFillAreaStyle extends IfcPresentationStyle {\n    constructor(expressID, Name, FillStyles, ModelorDraughting) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.FillStyles = FillStyles;\n      this.ModelorDraughting = ModelorDraughting;\n      this.type = 738692330;\n    }\n  }\n  IFC42.IfcFillAreaStyle = IfcFillAreaStyle;\n  class IfcGeometricRepresentationContext extends IfcRepresentationContext {\n    constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {\n      super(expressID, ContextIdentifier, ContextType);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.CoordinateSpaceDimension = CoordinateSpaceDimension;\n      this.Precision = Precision;\n      this.WorldCoordinateSystem = WorldCoordinateSystem;\n      this.TrueNorth = TrueNorth;\n      this.type = 3448662350;\n    }\n  }\n  IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;\n  class IfcGeometricRepresentationItem extends IfcRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2453401579;\n    }\n  }\n  IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;\n  class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {\n    constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {\n      super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null);\n      this.ContextIdentifier = ContextIdentifier;\n      this.ContextType = ContextType;\n      this.ParentContext = ParentContext;\n      this.TargetScale = TargetScale;\n      this.TargetView = TargetView;\n      this.UserDefinedTargetView = UserDefinedTargetView;\n      this.type = 4142052618;\n    }\n  }\n  IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;\n  class IfcGeometricSet extends IfcGeometricRepresentationItem {\n    constructor(expressID, Elements) {\n      super(expressID);\n      this.Elements = Elements;\n      this.type = 3590301190;\n    }\n  }\n  IFC42.IfcGeometricSet = IfcGeometricSet;\n  class IfcGridPlacement extends IfcObjectPlacement {\n    constructor(expressID, PlacementLocation, PlacementRefDirection) {\n      super(expressID);\n      this.PlacementLocation = PlacementLocation;\n      this.PlacementRefDirection = PlacementRefDirection;\n      this.type = 178086475;\n    }\n  }\n  IFC42.IfcGridPlacement = IfcGridPlacement;\n  class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {\n    constructor(expressID, BaseSurface, AgreementFlag) {\n      super(expressID);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.type = 812098782;\n    }\n  }\n  IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid;\n  class IfcImageTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) {\n      super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.Mode = Mode;\n      this.TextureTransform = TextureTransform;\n      this.Parameter = Parameter;\n      this.URLReference = URLReference;\n      this.type = 3905492369;\n    }\n  }\n  IFC42.IfcImageTexture = IfcImageTexture;\n  class IfcIndexedColourMap extends IfcPresentationItem {\n    constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) {\n      super(expressID);\n      this.MappedTo = MappedTo;\n      this.Opacity = Opacity;\n      this.Colours = Colours;\n      this.ColourIndex = ColourIndex;\n      this.type = 3570813810;\n    }\n  }\n  IFC42.IfcIndexedColourMap = IfcIndexedColourMap;\n  class IfcIndexedTextureMap extends IfcTextureCoordinate {\n    constructor(expressID, Maps, MappedTo, TexCoords) {\n      super(expressID, Maps);\n      this.Maps = Maps;\n      this.MappedTo = MappedTo;\n      this.TexCoords = TexCoords;\n      this.type = 1437953363;\n    }\n  }\n  IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap;\n  class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap {\n    constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) {\n      super(expressID, Maps, MappedTo, TexCoords);\n      this.Maps = Maps;\n      this.MappedTo = MappedTo;\n      this.TexCoords = TexCoords;\n      this.TexCoordIndex = TexCoordIndex;\n      this.type = 2133299955;\n    }\n  }\n  IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap;\n  class IfcIrregularTimeSeries extends IfcTimeSeries {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {\n      super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.Values = Values;\n      this.type = 3741457305;\n    }\n  }\n  IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries;\n  class IfcLagTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.LagValue = LagValue;\n      this.DurationType = DurationType;\n      this.type = 1585845231;\n    }\n  }\n  IFC42.IfcLagTime = IfcLagTime;\n  class IfcLightSource extends IfcGeometricRepresentationItem {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) {\n      super(expressID);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.type = 1402838566;\n    }\n  }\n  IFC42.IfcLightSource = IfcLightSource;\n  class IfcLightSourceAmbient extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.type = 125510826;\n    }\n  }\n  IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient;\n  class IfcLightSourceDirectional extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Orientation = Orientation;\n      this.type = 2604431987;\n    }\n  }\n  IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional;\n  class IfcLightSourceGoniometric extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.ColourAppearance = ColourAppearance;\n      this.ColourTemperature = ColourTemperature;\n      this.LuminousFlux = LuminousFlux;\n      this.LightEmissionSource = LightEmissionSource;\n      this.LightDistributionDataSource = LightDistributionDataSource;\n      this.type = 4266656042;\n    }\n  }\n  IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric;\n  class IfcLightSourcePositional extends IfcLightSource {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.ConstantAttenuation = ConstantAttenuation;\n      this.DistanceAttenuation = DistanceAttenuation;\n      this.QuadricAttenuation = QuadricAttenuation;\n      this.type = 1520743889;\n    }\n  }\n  IFC42.IfcLightSourcePositional = IfcLightSourcePositional;\n  class IfcLightSourceSpot extends IfcLightSourcePositional {\n    constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {\n      super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);\n      this.Name = Name;\n      this.LightColour = LightColour;\n      this.AmbientIntensity = AmbientIntensity;\n      this.Intensity = Intensity;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.ConstantAttenuation = ConstantAttenuation;\n      this.DistanceAttenuation = DistanceAttenuation;\n      this.QuadricAttenuation = QuadricAttenuation;\n      this.Orientation = Orientation;\n      this.ConcentrationExponent = ConcentrationExponent;\n      this.SpreadAngle = SpreadAngle;\n      this.BeamWidthAngle = BeamWidthAngle;\n      this.type = 3422422726;\n    }\n  }\n  IFC42.IfcLightSourceSpot = IfcLightSourceSpot;\n  class IfcLocalPlacement extends IfcObjectPlacement {\n    constructor(expressID, PlacementRelTo, RelativePlacement) {\n      super(expressID);\n      this.PlacementRelTo = PlacementRelTo;\n      this.RelativePlacement = RelativePlacement;\n      this.type = 2624227202;\n    }\n  }\n  IFC42.IfcLocalPlacement = IfcLocalPlacement;\n  class IfcLoop extends IfcTopologicalRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1008929658;\n    }\n  }\n  IFC42.IfcLoop = IfcLoop;\n  class IfcMappedItem extends IfcRepresentationItem {\n    constructor(expressID, MappingSource, MappingTarget) {\n      super(expressID);\n      this.MappingSource = MappingSource;\n      this.MappingTarget = MappingTarget;\n      this.type = 2347385850;\n    }\n  }\n  IFC42.IfcMappedItem = IfcMappedItem;\n  class IfcMaterial extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, Category) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Category = Category;\n      this.type = 1838606355;\n    }\n  }\n  IFC42.IfcMaterial = IfcMaterial;\n  class IfcMaterialConstituent extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, Material, Fraction, Category) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.Material = Material;\n      this.Fraction = Fraction;\n      this.Category = Category;\n      this.type = 3708119e3;\n    }\n  }\n  IFC42.IfcMaterialConstituent = IfcMaterialConstituent;\n  class IfcMaterialConstituentSet extends IfcMaterialDefinition {\n    constructor(expressID, Name, Description, MaterialConstituents) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.MaterialConstituents = MaterialConstituents;\n      this.type = 2852063980;\n    }\n  }\n  IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet;\n  class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {\n    constructor(expressID, Name, Description, Representations, RepresentedMaterial) {\n      super(expressID, Name, Description, Representations);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.RepresentedMaterial = RepresentedMaterial;\n      this.type = 2022407955;\n    }\n  }\n  IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;\n  class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition {\n    constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) {\n      super(expressID);\n      this.ForLayerSet = ForLayerSet;\n      this.LayerSetDirection = LayerSetDirection;\n      this.DirectionSense = DirectionSense;\n      this.OffsetFromReferenceLine = OffsetFromReferenceLine;\n      this.ReferenceExtent = ReferenceExtent;\n      this.type = 1303795690;\n    }\n  }\n  IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;\n  class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition {\n    constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) {\n      super(expressID);\n      this.ForProfileSet = ForProfileSet;\n      this.CardinalPoint = CardinalPoint;\n      this.ReferenceExtent = ReferenceExtent;\n      this.type = 3079605661;\n    }\n  }\n  IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage;\n  class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage {\n    constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) {\n      super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent);\n      this.ForProfileSet = ForProfileSet;\n      this.CardinalPoint = CardinalPoint;\n      this.ReferenceExtent = ReferenceExtent;\n      this.ForProfileEndSet = ForProfileEndSet;\n      this.CardinalEndPoint = CardinalEndPoint;\n      this.type = 3404854881;\n    }\n  }\n  IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering;\n  class IfcMaterialProperties extends IfcExtendedProperties {\n    constructor(expressID, Name, Description, Properties2, Material) {\n      super(expressID, Name, Description, Properties2);\n      this.Name = Name;\n      this.Description = Description;\n      this.Properties = Properties2;\n      this.Material = Material;\n      this.type = 3265635763;\n    }\n  }\n  IFC42.IfcMaterialProperties = IfcMaterialProperties;\n  class IfcMaterialRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, Expression) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingMaterial = RelatingMaterial;\n      this.RelatedMaterials = RelatedMaterials;\n      this.Expression = Expression;\n      this.type = 853536259;\n    }\n  }\n  IFC42.IfcMaterialRelationship = IfcMaterialRelationship;\n  class IfcMirroredProfileDef extends IfcDerivedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, ParentProfile, Label) {\n      super(expressID, ProfileType, ProfileName, ParentProfile, new Handle(0), Label);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.ParentProfile = ParentProfile;\n      this.Label = Label;\n      this.type = 2998442950;\n    }\n  }\n  IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef;\n  class IfcObjectDefinition extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 219451334;\n    }\n  }\n  IFC42.IfcObjectDefinition = IfcObjectDefinition;\n  class IfcOpenShell extends IfcConnectedFaceSet {\n    constructor(expressID, CfsFaces) {\n      super(expressID, CfsFaces);\n      this.CfsFaces = CfsFaces;\n      this.type = 2665983363;\n    }\n  }\n  IFC42.IfcOpenShell = IfcOpenShell;\n  class IfcOrganizationRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingOrganization = RelatingOrganization;\n      this.RelatedOrganizations = RelatedOrganizations;\n      this.type = 1411181986;\n    }\n  }\n  IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship;\n  class IfcOrientedEdge extends IfcEdge {\n    constructor(expressID, EdgeElement, Orientation) {\n      super(expressID, new Handle(0), new Handle(0));\n      this.EdgeElement = EdgeElement;\n      this.Orientation = Orientation;\n      this.type = 1029017970;\n    }\n  }\n  IFC42.IfcOrientedEdge = IfcOrientedEdge;\n  class IfcParameterizedProfileDef extends IfcProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position) {\n      super(expressID, ProfileType, ProfileName);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.type = 2529465313;\n    }\n  }\n  IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef;\n  class IfcPath extends IfcTopologicalRepresentationItem {\n    constructor(expressID, EdgeList) {\n      super(expressID);\n      this.EdgeList = EdgeList;\n      this.type = 2519244187;\n    }\n  }\n  IFC42.IfcPath = IfcPath;\n  class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {\n    constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.HasQuantities = HasQuantities;\n      this.Discrimination = Discrimination;\n      this.Quality = Quality;\n      this.Usage = Usage;\n      this.type = 3021840470;\n    }\n  }\n  IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;\n  class IfcPixelTexture extends IfcSurfaceTexture {\n    constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) {\n      super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n      this.RepeatS = RepeatS;\n      this.RepeatT = RepeatT;\n      this.Mode = Mode;\n      this.TextureTransform = TextureTransform;\n      this.Parameter = Parameter;\n      this.Width = Width;\n      this.Height = Height;\n      this.ColourComponents = ColourComponents;\n      this.Pixel = Pixel;\n      this.type = 597895409;\n    }\n  }\n  IFC42.IfcPixelTexture = IfcPixelTexture;\n  class IfcPlacement extends IfcGeometricRepresentationItem {\n    constructor(expressID, Location) {\n      super(expressID);\n      this.Location = Location;\n      this.type = 2004835150;\n    }\n  }\n  IFC42.IfcPlacement = IfcPlacement;\n  class IfcPlanarExtent extends IfcGeometricRepresentationItem {\n    constructor(expressID, SizeInX, SizeInY) {\n      super(expressID);\n      this.SizeInX = SizeInX;\n      this.SizeInY = SizeInY;\n      this.type = 1663979128;\n    }\n  }\n  IFC42.IfcPlanarExtent = IfcPlanarExtent;\n  class IfcPoint extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2067069095;\n    }\n  }\n  IFC42.IfcPoint = IfcPoint;\n  class IfcPointOnCurve extends IfcPoint {\n    constructor(expressID, BasisCurve, PointParameter) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.PointParameter = PointParameter;\n      this.type = 4022376103;\n    }\n  }\n  IFC42.IfcPointOnCurve = IfcPointOnCurve;\n  class IfcPointOnSurface extends IfcPoint {\n    constructor(expressID, BasisSurface, PointParameterU, PointParameterV) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.PointParameterU = PointParameterU;\n      this.PointParameterV = PointParameterV;\n      this.type = 1423911732;\n    }\n  }\n  IFC42.IfcPointOnSurface = IfcPointOnSurface;\n  class IfcPolyLoop extends IfcLoop {\n    constructor(expressID, Polygon) {\n      super(expressID);\n      this.Polygon = Polygon;\n      this.type = 2924175390;\n    }\n  }\n  IFC42.IfcPolyLoop = IfcPolyLoop;\n  class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {\n    constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) {\n      super(expressID, BaseSurface, AgreementFlag);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.Position = Position;\n      this.PolygonalBoundary = PolygonalBoundary;\n      this.type = 2775532180;\n    }\n  }\n  IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;\n  class IfcPreDefinedItem extends IfcPresentationItem {\n    constructor(expressID, Name) {\n      super(expressID);\n      this.Name = Name;\n      this.type = 3727388367;\n    }\n  }\n  IFC42.IfcPreDefinedItem = IfcPreDefinedItem;\n  class IfcPreDefinedProperties extends IfcPropertyAbstraction {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 3778827333;\n    }\n  }\n  IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties;\n  class IfcPreDefinedTextFont extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 1775413392;\n    }\n  }\n  IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont;\n  class IfcProductDefinitionShape extends IfcProductRepresentation {\n    constructor(expressID, Name, Description, Representations) {\n      super(expressID, Name, Description, Representations);\n      this.Name = Name;\n      this.Description = Description;\n      this.Representations = Representations;\n      this.type = 673634403;\n    }\n  }\n  IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape;\n  class IfcProfileProperties extends IfcExtendedProperties {\n    constructor(expressID, Name, Description, Properties2, ProfileDefinition) {\n      super(expressID, Name, Description, Properties2);\n      this.Name = Name;\n      this.Description = Description;\n      this.Properties = Properties2;\n      this.ProfileDefinition = ProfileDefinition;\n      this.type = 2802850158;\n    }\n  }\n  IFC42.IfcProfileProperties = IfcProfileProperties;\n  class IfcProperty extends IfcPropertyAbstraction {\n    constructor(expressID, Name, Description) {\n      super(expressID);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2598011224;\n    }\n  }\n  IFC42.IfcProperty = IfcProperty;\n  class IfcPropertyDefinition extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 1680319473;\n    }\n  }\n  IFC42.IfcPropertyDefinition = IfcPropertyDefinition;\n  class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.DependingProperty = DependingProperty;\n      this.DependantProperty = DependantProperty;\n      this.Expression = Expression;\n      this.type = 148025276;\n    }\n  }\n  IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;\n  class IfcPropertySetDefinition extends IfcPropertyDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3357820518;\n    }\n  }\n  IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition;\n  class IfcPropertyTemplateDefinition extends IfcPropertyDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 1482703590;\n    }\n  }\n  IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition;\n  class IfcQuantitySet extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2090586900;\n    }\n  }\n  IFC42.IfcQuantitySet = IfcQuantitySet;\n  class IfcRectangleProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.type = 3615266464;\n    }\n  }\n  IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef;\n  class IfcRegularTimeSeries extends IfcTimeSeries {\n    constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {\n      super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n      this.Name = Name;\n      this.Description = Description;\n      this.StartTime = StartTime;\n      this.EndTime = EndTime;\n      this.TimeSeriesDataType = TimeSeriesDataType;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.Unit = Unit;\n      this.TimeStep = TimeStep;\n      this.Values = Values;\n      this.type = 3413951693;\n    }\n  }\n  IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries;\n  class IfcReinforcementBarProperties extends IfcPreDefinedProperties {\n    constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {\n      super(expressID);\n      this.TotalCrossSectionArea = TotalCrossSectionArea;\n      this.SteelGrade = SteelGrade;\n      this.BarSurface = BarSurface;\n      this.EffectiveDepth = EffectiveDepth;\n      this.NominalBarDiameter = NominalBarDiameter;\n      this.BarCount = BarCount;\n      this.type = 1580146022;\n    }\n  }\n  IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties;\n  class IfcRelationship extends IfcRoot {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 478536968;\n    }\n  }\n  IFC42.IfcRelationship = IfcRelationship;\n  class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedResourceObjects = RelatedResourceObjects;\n      this.RelatingApproval = RelatingApproval;\n      this.type = 2943643501;\n    }\n  }\n  IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship;\n  class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship {\n    constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingConstraint = RelatingConstraint;\n      this.RelatedResourceObjects = RelatedResourceObjects;\n      this.type = 1608871552;\n    }\n  }\n  IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship;\n  class IfcResourceTime extends IfcSchedulingTime {\n    constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) {\n      super(expressID, Name, DataOrigin, UserDefinedDataOrigin);\n      this.Name = Name;\n      this.DataOrigin = DataOrigin;\n      this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n      this.ScheduleWork = ScheduleWork;\n      this.ScheduleUsage = ScheduleUsage;\n      this.ScheduleStart = ScheduleStart;\n      this.ScheduleFinish = ScheduleFinish;\n      this.ScheduleContour = ScheduleContour;\n      this.LevelingDelay = LevelingDelay;\n      this.IsOverAllocated = IsOverAllocated;\n      this.StatusTime = StatusTime;\n      this.ActualWork = ActualWork;\n      this.ActualUsage = ActualUsage;\n      this.ActualStart = ActualStart;\n      this.ActualFinish = ActualFinish;\n      this.RemainingWork = RemainingWork;\n      this.RemainingUsage = RemainingUsage;\n      this.Completion = Completion;\n      this.type = 1042787934;\n    }\n  }\n  IFC42.IfcResourceTime = IfcResourceTime;\n  class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {\n      super(expressID, ProfileType, ProfileName, Position, XDim, YDim);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.RoundingRadius = RoundingRadius;\n      this.type = 2778083089;\n    }\n  }\n  IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;\n  class IfcSectionProperties extends IfcPreDefinedProperties {\n    constructor(expressID, SectionType, StartProfile, EndProfile) {\n      super(expressID);\n      this.SectionType = SectionType;\n      this.StartProfile = StartProfile;\n      this.EndProfile = EndProfile;\n      this.type = 2042790032;\n    }\n  }\n  IFC42.IfcSectionProperties = IfcSectionProperties;\n  class IfcSectionReinforcementProperties extends IfcPreDefinedProperties {\n    constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {\n      super(expressID);\n      this.LongitudinalStartPosition = LongitudinalStartPosition;\n      this.LongitudinalEndPosition = LongitudinalEndPosition;\n      this.TransversePosition = TransversePosition;\n      this.ReinforcementRole = ReinforcementRole;\n      this.SectionDefinition = SectionDefinition;\n      this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;\n      this.type = 4165799628;\n    }\n  }\n  IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;\n  class IfcSectionedSpine extends IfcGeometricRepresentationItem {\n    constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) {\n      super(expressID);\n      this.SpineCurve = SpineCurve;\n      this.CrossSections = CrossSections;\n      this.CrossSectionPositions = CrossSectionPositions;\n      this.type = 1509187699;\n    }\n  }\n  IFC42.IfcSectionedSpine = IfcSectionedSpine;\n  class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {\n    constructor(expressID, SbsmBoundary) {\n      super(expressID);\n      this.SbsmBoundary = SbsmBoundary;\n      this.type = 4124623270;\n    }\n  }\n  IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;\n  class IfcSimpleProperty extends IfcProperty {\n    constructor(expressID, Name, Description) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3692461612;\n    }\n  }\n  IFC42.IfcSimpleProperty = IfcSimpleProperty;\n  class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {\n    constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.SlippageX = SlippageX;\n      this.SlippageY = SlippageY;\n      this.SlippageZ = SlippageZ;\n      this.type = 2609359061;\n    }\n  }\n  IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;\n  class IfcSolidModel extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 723233188;\n    }\n  }\n  IFC42.IfcSolidModel = IfcSolidModel;\n  class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.LinearForceX = LinearForceX;\n      this.LinearForceY = LinearForceY;\n      this.LinearForceZ = LinearForceZ;\n      this.LinearMomentX = LinearMomentX;\n      this.LinearMomentY = LinearMomentY;\n      this.LinearMomentZ = LinearMomentZ;\n      this.type = 1595516126;\n    }\n  }\n  IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;\n  class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.PlanarForceX = PlanarForceX;\n      this.PlanarForceY = PlanarForceY;\n      this.PlanarForceZ = PlanarForceZ;\n      this.type = 2668620305;\n    }\n  }\n  IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;\n  class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.DisplacementX = DisplacementX;\n      this.DisplacementY = DisplacementY;\n      this.DisplacementZ = DisplacementZ;\n      this.RotationalDisplacementRX = RotationalDisplacementRX;\n      this.RotationalDisplacementRY = RotationalDisplacementRY;\n      this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n      this.type = 2473145415;\n    }\n  }\n  IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;\n  class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {\n    constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {\n      super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);\n      this.Name = Name;\n      this.DisplacementX = DisplacementX;\n      this.DisplacementY = DisplacementY;\n      this.DisplacementZ = DisplacementZ;\n      this.RotationalDisplacementRX = RotationalDisplacementRX;\n      this.RotationalDisplacementRY = RotationalDisplacementRY;\n      this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n      this.Distortion = Distortion;\n      this.type = 1973038258;\n    }\n  }\n  IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;\n  class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {\n    constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.ForceX = ForceX;\n      this.ForceY = ForceY;\n      this.ForceZ = ForceZ;\n      this.MomentX = MomentX;\n      this.MomentY = MomentY;\n      this.MomentZ = MomentZ;\n      this.type = 1597423693;\n    }\n  }\n  IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;\n  class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {\n    constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {\n      super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);\n      this.Name = Name;\n      this.ForceX = ForceX;\n      this.ForceY = ForceY;\n      this.ForceZ = ForceZ;\n      this.MomentX = MomentX;\n      this.MomentY = MomentY;\n      this.MomentZ = MomentZ;\n      this.WarpingMoment = WarpingMoment;\n      this.type = 1190533807;\n    }\n  }\n  IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;\n  class IfcSubedge extends IfcEdge {\n    constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) {\n      super(expressID, EdgeStart, EdgeEnd);\n      this.EdgeStart = EdgeStart;\n      this.EdgeEnd = EdgeEnd;\n      this.ParentEdge = ParentEdge;\n      this.type = 2233826070;\n    }\n  }\n  IFC42.IfcSubedge = IfcSubedge;\n  class IfcSurface extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2513912981;\n    }\n  }\n  IFC42.IfcSurface = IfcSurface;\n  class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {\n    constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {\n      super(expressID, SurfaceColour, Transparency);\n      this.SurfaceColour = SurfaceColour;\n      this.Transparency = Transparency;\n      this.DiffuseColour = DiffuseColour;\n      this.TransmissionColour = TransmissionColour;\n      this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n      this.ReflectionColour = ReflectionColour;\n      this.SpecularColour = SpecularColour;\n      this.SpecularHighlight = SpecularHighlight;\n      this.ReflectanceMethod = ReflectanceMethod;\n      this.type = 1878645084;\n    }\n  }\n  IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;\n  class IfcSweptAreaSolid extends IfcSolidModel {\n    constructor(expressID, SweptArea, Position) {\n      super(expressID);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.type = 2247615214;\n    }\n  }\n  IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid;\n  class IfcSweptDiskSolid extends IfcSolidModel {\n    constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) {\n      super(expressID);\n      this.Directrix = Directrix;\n      this.Radius = Radius;\n      this.InnerRadius = InnerRadius;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.type = 1260650574;\n    }\n  }\n  IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid;\n  class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid {\n    constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) {\n      super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam);\n      this.Directrix = Directrix;\n      this.Radius = Radius;\n      this.InnerRadius = InnerRadius;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.FilletRadius = FilletRadius;\n      this.type = 1096409881;\n    }\n  }\n  IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal;\n  class IfcSweptSurface extends IfcSurface {\n    constructor(expressID, SweptCurve, Position) {\n      super(expressID);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.type = 230924584;\n    }\n  }\n  IFC42.IfcSweptSurface = IfcSweptSurface;\n  class IfcTShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.FlangeEdgeRadius = FlangeEdgeRadius;\n      this.WebEdgeRadius = WebEdgeRadius;\n      this.WebSlope = WebSlope;\n      this.FlangeSlope = FlangeSlope;\n      this.type = 3071757647;\n    }\n  }\n  IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef;\n  class IfcTessellatedItem extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 901063453;\n    }\n  }\n  IFC42.IfcTessellatedItem = IfcTessellatedItem;\n  class IfcTextLiteral extends IfcGeometricRepresentationItem {\n    constructor(expressID, Literal, Placement, Path) {\n      super(expressID);\n      this.Literal = Literal;\n      this.Placement = Placement;\n      this.Path = Path;\n      this.type = 4282788508;\n    }\n  }\n  IFC42.IfcTextLiteral = IfcTextLiteral;\n  class IfcTextLiteralWithExtent extends IfcTextLiteral {\n    constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) {\n      super(expressID, Literal, Placement, Path);\n      this.Literal = Literal;\n      this.Placement = Placement;\n      this.Path = Path;\n      this.Extent = Extent;\n      this.BoxAlignment = BoxAlignment;\n      this.type = 3124975700;\n    }\n  }\n  IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;\n  class IfcTextStyleFontModel extends IfcPreDefinedTextFont {\n    constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.FontFamily = FontFamily;\n      this.FontStyle = FontStyle;\n      this.FontVariant = FontVariant;\n      this.FontWeight = FontWeight;\n      this.FontSize = FontSize;\n      this.type = 1983826977;\n    }\n  }\n  IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel;\n  class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.BottomXDim = BottomXDim;\n      this.TopXDim = TopXDim;\n      this.YDim = YDim;\n      this.TopXOffset = TopXOffset;\n      this.type = 2715220739;\n    }\n  }\n  IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;\n  class IfcTypeObject extends IfcObjectDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.type = 1628702193;\n    }\n  }\n  IFC42.IfcTypeObject = IfcTypeObject;\n  class IfcTypeProcess extends IfcTypeObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ProcessType = ProcessType;\n      this.type = 3736923433;\n    }\n  }\n  IFC42.IfcTypeProcess = IfcTypeProcess;\n  class IfcTypeProduct extends IfcTypeObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.type = 2347495698;\n    }\n  }\n  IFC42.IfcTypeProduct = IfcTypeProduct;\n  class IfcTypeResource extends IfcTypeObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.type = 3698973494;\n    }\n  }\n  IFC42.IfcTypeResource = IfcTypeResource;\n  class IfcUShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.FlangeSlope = FlangeSlope;\n      this.type = 427810014;\n    }\n  }\n  IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef;\n  class IfcVector extends IfcGeometricRepresentationItem {\n    constructor(expressID, Orientation, Magnitude) {\n      super(expressID);\n      this.Orientation = Orientation;\n      this.Magnitude = Magnitude;\n      this.type = 1417489154;\n    }\n  }\n  IFC42.IfcVector = IfcVector;\n  class IfcVertexLoop extends IfcLoop {\n    constructor(expressID, LoopVertex) {\n      super(expressID);\n      this.LoopVertex = LoopVertex;\n      this.type = 2759199220;\n    }\n  }\n  IFC42.IfcVertexLoop = IfcVertexLoop;\n  class IfcWindowStyle extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ConstructionType = ConstructionType;\n      this.OperationType = OperationType;\n      this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n      this.Sizeable = Sizeable;\n      this.type = 1299126871;\n    }\n  }\n  IFC42.IfcWindowStyle = IfcWindowStyle;\n  class IfcZShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.FlangeWidth = FlangeWidth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.type = 2543172580;\n    }\n  }\n  IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef;\n  class IfcAdvancedFace extends IfcFaceSurface {\n    constructor(expressID, Bounds, FaceSurface, SameSense) {\n      super(expressID, Bounds, FaceSurface, SameSense);\n      this.Bounds = Bounds;\n      this.FaceSurface = FaceSurface;\n      this.SameSense = SameSense;\n      this.type = 3406155212;\n    }\n  }\n  IFC42.IfcAdvancedFace = IfcAdvancedFace;\n  class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {\n    constructor(expressID, OuterBoundary, InnerBoundaries) {\n      super(expressID);\n      this.OuterBoundary = OuterBoundary;\n      this.InnerBoundaries = InnerBoundaries;\n      this.type = 669184980;\n    }\n  }\n  IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea;\n  class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.BottomFlangeWidth = BottomFlangeWidth;\n      this.OverallDepth = OverallDepth;\n      this.WebThickness = WebThickness;\n      this.BottomFlangeThickness = BottomFlangeThickness;\n      this.BottomFlangeFilletRadius = BottomFlangeFilletRadius;\n      this.TopFlangeWidth = TopFlangeWidth;\n      this.TopFlangeThickness = TopFlangeThickness;\n      this.TopFlangeFilletRadius = TopFlangeFilletRadius;\n      this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius;\n      this.BottomFlangeSlope = BottomFlangeSlope;\n      this.TopFlangeEdgeRadius = TopFlangeEdgeRadius;\n      this.TopFlangeSlope = TopFlangeSlope;\n      this.type = 3207858831;\n    }\n  }\n  IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;\n  class IfcAxis1Placement extends IfcPlacement {\n    constructor(expressID, Location, Axis) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.Axis = Axis;\n      this.type = 4261334040;\n    }\n  }\n  IFC42.IfcAxis1Placement = IfcAxis1Placement;\n  class IfcAxis2Placement2D extends IfcPlacement {\n    constructor(expressID, Location, RefDirection) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.RefDirection = RefDirection;\n      this.type = 3125803723;\n    }\n  }\n  IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D;\n  class IfcAxis2Placement3D extends IfcPlacement {\n    constructor(expressID, Location, Axis, RefDirection) {\n      super(expressID, Location);\n      this.Location = Location;\n      this.Axis = Axis;\n      this.RefDirection = RefDirection;\n      this.type = 2740243338;\n    }\n  }\n  IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D;\n  class IfcBooleanResult extends IfcGeometricRepresentationItem {\n    constructor(expressID, Operator, FirstOperand, SecondOperand) {\n      super(expressID);\n      this.Operator = Operator;\n      this.FirstOperand = FirstOperand;\n      this.SecondOperand = SecondOperand;\n      this.type = 2736907675;\n    }\n  }\n  IFC42.IfcBooleanResult = IfcBooleanResult;\n  class IfcBoundedSurface extends IfcSurface {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 4182860854;\n    }\n  }\n  IFC42.IfcBoundedSurface = IfcBoundedSurface;\n  class IfcBoundingBox extends IfcGeometricRepresentationItem {\n    constructor(expressID, Corner, XDim, YDim, ZDim) {\n      super(expressID);\n      this.Corner = Corner;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.ZDim = ZDim;\n      this.type = 2581212453;\n    }\n  }\n  IFC42.IfcBoundingBox = IfcBoundingBox;\n  class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {\n    constructor(expressID, BaseSurface, AgreementFlag, Enclosure) {\n      super(expressID, BaseSurface, AgreementFlag);\n      this.BaseSurface = BaseSurface;\n      this.AgreementFlag = AgreementFlag;\n      this.Enclosure = Enclosure;\n      this.type = 2713105998;\n    }\n  }\n  IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace;\n  class IfcCShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.Width = Width;\n      this.WallThickness = WallThickness;\n      this.Girth = Girth;\n      this.InternalFilletRadius = InternalFilletRadius;\n      this.type = 2898889636;\n    }\n  }\n  IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef;\n  class IfcCartesianPoint extends IfcPoint {\n    constructor(expressID, Coordinates) {\n      super(expressID);\n      this.Coordinates = Coordinates;\n      this.type = 1123145078;\n    }\n  }\n  IFC42.IfcCartesianPoint = IfcCartesianPoint;\n  class IfcCartesianPointList extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 574549367;\n    }\n  }\n  IFC42.IfcCartesianPointList = IfcCartesianPointList;\n  class IfcCartesianPointList2D extends IfcCartesianPointList {\n    constructor(expressID, CoordList) {\n      super(expressID);\n      this.CoordList = CoordList;\n      this.type = 1675464909;\n    }\n  }\n  IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D;\n  class IfcCartesianPointList3D extends IfcCartesianPointList {\n    constructor(expressID, CoordList) {\n      super(expressID);\n      this.CoordList = CoordList;\n      this.type = 2059837836;\n    }\n  }\n  IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D;\n  class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) {\n      super(expressID);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.type = 59481748;\n    }\n  }\n  IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;\n  class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.type = 3749851601;\n    }\n  }\n  IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;\n  class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Scale2 = Scale2;\n      this.type = 3486308946;\n    }\n  }\n  IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;\n  class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Axis3 = Axis3;\n      this.type = 3331915920;\n    }\n  }\n  IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;\n  class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {\n    constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {\n      super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3);\n      this.Axis1 = Axis1;\n      this.Axis2 = Axis2;\n      this.LocalOrigin = LocalOrigin;\n      this.Scale = Scale;\n      this.Axis3 = Axis3;\n      this.Scale2 = Scale2;\n      this.Scale3 = Scale3;\n      this.type = 1416205885;\n    }\n  }\n  IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;\n  class IfcCircleProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Radius) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 1383045692;\n    }\n  }\n  IFC42.IfcCircleProfileDef = IfcCircleProfileDef;\n  class IfcClosedShell extends IfcConnectedFaceSet {\n    constructor(expressID, CfsFaces) {\n      super(expressID, CfsFaces);\n      this.CfsFaces = CfsFaces;\n      this.type = 2205249479;\n    }\n  }\n  IFC42.IfcClosedShell = IfcClosedShell;\n  class IfcColourRgb extends IfcColourSpecification {\n    constructor(expressID, Name, Red, Green, Blue) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.Red = Red;\n      this.Green = Green;\n      this.Blue = Blue;\n      this.type = 776857604;\n    }\n  }\n  IFC42.IfcColourRgb = IfcColourRgb;\n  class IfcComplexProperty extends IfcProperty {\n    constructor(expressID, Name, Description, UsageName, HasProperties) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.UsageName = UsageName;\n      this.HasProperties = HasProperties;\n      this.type = 2542286263;\n    }\n  }\n  IFC42.IfcComplexProperty = IfcComplexProperty;\n  class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem {\n    constructor(expressID, Transition, SameSense, ParentCurve) {\n      super(expressID);\n      this.Transition = Transition;\n      this.SameSense = SameSense;\n      this.ParentCurve = ParentCurve;\n      this.type = 2485617015;\n    }\n  }\n  IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment;\n  class IfcConstructionResourceType extends IfcTypeResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.type = 2574617495;\n    }\n  }\n  IFC42.IfcConstructionResourceType = IfcConstructionResourceType;\n  class IfcContext extends IfcObjectDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.Phase = Phase;\n      this.RepresentationContexts = RepresentationContexts;\n      this.UnitsInContext = UnitsInContext;\n      this.type = 3419103109;\n    }\n  }\n  IFC42.IfcContext = IfcContext;\n  class IfcCrewResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 1815067380;\n    }\n  }\n  IFC42.IfcCrewResourceType = IfcCrewResourceType;\n  class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2506170314;\n    }\n  }\n  IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D;\n  class IfcCsgSolid extends IfcSolidModel {\n    constructor(expressID, TreeRootExpression) {\n      super(expressID);\n      this.TreeRootExpression = TreeRootExpression;\n      this.type = 2147822146;\n    }\n  }\n  IFC42.IfcCsgSolid = IfcCsgSolid;\n  class IfcCurve extends IfcGeometricRepresentationItem {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 2601014836;\n    }\n  }\n  IFC42.IfcCurve = IfcCurve;\n  class IfcCurveBoundedPlane extends IfcBoundedSurface {\n    constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.OuterBoundary = OuterBoundary;\n      this.InnerBoundaries = InnerBoundaries;\n      this.type = 2827736869;\n    }\n  }\n  IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane;\n  class IfcCurveBoundedSurface extends IfcBoundedSurface {\n    constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.Boundaries = Boundaries;\n      this.ImplicitOuter = ImplicitOuter;\n      this.type = 2629017746;\n    }\n  }\n  IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface;\n  class IfcDirection extends IfcGeometricRepresentationItem {\n    constructor(expressID, DirectionRatios) {\n      super(expressID);\n      this.DirectionRatios = DirectionRatios;\n      this.type = 32440307;\n    }\n  }\n  IFC42.IfcDirection = IfcDirection;\n  class IfcDoorStyle extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.OperationType = OperationType;\n      this.ConstructionType = ConstructionType;\n      this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n      this.Sizeable = Sizeable;\n      this.type = 526551008;\n    }\n  }\n  IFC42.IfcDoorStyle = IfcDoorStyle;\n  class IfcEdgeLoop extends IfcLoop {\n    constructor(expressID, EdgeList) {\n      super(expressID);\n      this.EdgeList = EdgeList;\n      this.type = 1472233963;\n    }\n  }\n  IFC42.IfcEdgeLoop = IfcEdgeLoop;\n  class IfcElementQuantity extends IfcQuantitySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.MethodOfMeasurement = MethodOfMeasurement;\n      this.Quantities = Quantities;\n      this.type = 1883228015;\n    }\n  }\n  IFC42.IfcElementQuantity = IfcElementQuantity;\n  class IfcElementType extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 339256511;\n    }\n  }\n  IFC42.IfcElementType = IfcElementType;\n  class IfcElementarySurface extends IfcSurface {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2777663545;\n    }\n  }\n  IFC42.IfcElementarySurface = IfcElementarySurface;\n  class IfcEllipseProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.SemiAxis1 = SemiAxis1;\n      this.SemiAxis2 = SemiAxis2;\n      this.type = 2835456948;\n    }\n  }\n  IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef;\n  class IfcEventType extends IfcTypeProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ProcessType = ProcessType;\n      this.PredefinedType = PredefinedType;\n      this.EventTriggerType = EventTriggerType;\n      this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;\n      this.type = 4024345920;\n    }\n  }\n  IFC42.IfcEventType = IfcEventType;\n  class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.ExtrudedDirection = ExtrudedDirection;\n      this.Depth = Depth;\n      this.type = 477187591;\n    }\n  }\n  IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;\n  class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid {\n    constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) {\n      super(expressID, SweptArea, Position, ExtrudedDirection, Depth);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.ExtrudedDirection = ExtrudedDirection;\n      this.Depth = Depth;\n      this.EndSweptArea = EndSweptArea;\n      this.type = 2804161546;\n    }\n  }\n  IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered;\n  class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {\n    constructor(expressID, FbsmFaces) {\n      super(expressID);\n      this.FbsmFaces = FbsmFaces;\n      this.type = 2047409740;\n    }\n  }\n  IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;\n  class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {\n    constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {\n      super(expressID);\n      this.HatchLineAppearance = HatchLineAppearance;\n      this.StartOfNextHatchLine = StartOfNextHatchLine;\n      this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;\n      this.PatternStart = PatternStart;\n      this.HatchLineAngle = HatchLineAngle;\n      this.type = 374418227;\n    }\n  }\n  IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;\n  class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {\n    constructor(expressID, TilingPattern, Tiles, TilingScale) {\n      super(expressID);\n      this.TilingPattern = TilingPattern;\n      this.Tiles = Tiles;\n      this.TilingScale = TilingScale;\n      this.type = 315944413;\n    }\n  }\n  IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;\n  class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Directrix = Directrix;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.FixedReference = FixedReference;\n      this.type = 2652556860;\n    }\n  }\n  IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid;\n  class IfcFurnishingElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 4238390223;\n    }\n  }\n  IFC42.IfcFurnishingElementType = IfcFurnishingElementType;\n  class IfcFurnitureType extends IfcFurnishingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.AssemblyPlace = AssemblyPlace;\n      this.PredefinedType = PredefinedType;\n      this.type = 1268542332;\n    }\n  }\n  IFC42.IfcFurnitureType = IfcFurnitureType;\n  class IfcGeographicElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4095422895;\n    }\n  }\n  IFC42.IfcGeographicElementType = IfcGeographicElementType;\n  class IfcGeometricCurveSet extends IfcGeometricSet {\n    constructor(expressID, Elements) {\n      super(expressID, Elements);\n      this.Elements = Elements;\n      this.type = 987898635;\n    }\n  }\n  IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet;\n  class IfcIShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.OverallWidth = OverallWidth;\n      this.OverallDepth = OverallDepth;\n      this.WebThickness = WebThickness;\n      this.FlangeThickness = FlangeThickness;\n      this.FilletRadius = FilletRadius;\n      this.FlangeEdgeRadius = FlangeEdgeRadius;\n      this.FlangeSlope = FlangeSlope;\n      this.type = 1484403080;\n    }\n  }\n  IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef;\n  class IfcIndexedPolygonalFace extends IfcTessellatedItem {\n    constructor(expressID, CoordIndex) {\n      super(expressID);\n      this.CoordIndex = CoordIndex;\n      this.type = 178912537;\n    }\n  }\n  IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace;\n  class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace {\n    constructor(expressID, CoordIndex, InnerCoordIndices) {\n      super(expressID, CoordIndex);\n      this.CoordIndex = CoordIndex;\n      this.InnerCoordIndices = InnerCoordIndices;\n      this.type = 2294589976;\n    }\n  }\n  IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids;\n  class IfcLShapeProfileDef extends IfcParameterizedProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) {\n      super(expressID, ProfileType, ProfileName, Position);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Depth = Depth;\n      this.Width = Width;\n      this.Thickness = Thickness;\n      this.FilletRadius = FilletRadius;\n      this.EdgeRadius = EdgeRadius;\n      this.LegSlope = LegSlope;\n      this.type = 572779678;\n    }\n  }\n  IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef;\n  class IfcLaborResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 428585644;\n    }\n  }\n  IFC42.IfcLaborResourceType = IfcLaborResourceType;\n  class IfcLine extends IfcCurve {\n    constructor(expressID, Pnt, Dir) {\n      super(expressID);\n      this.Pnt = Pnt;\n      this.Dir = Dir;\n      this.type = 1281925730;\n    }\n  }\n  IFC42.IfcLine = IfcLine;\n  class IfcManifoldSolidBrep extends IfcSolidModel {\n    constructor(expressID, Outer) {\n      super(expressID);\n      this.Outer = Outer;\n      this.type = 1425443689;\n    }\n  }\n  IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep;\n  class IfcObject extends IfcObjectDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 3888040117;\n    }\n  }\n  IFC42.IfcObject = IfcObject;\n  class IfcOffsetCurve2D extends IfcCurve {\n    constructor(expressID, BasisCurve, Distance, SelfIntersect) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.Distance = Distance;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 3388369263;\n    }\n  }\n  IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D;\n  class IfcOffsetCurve3D extends IfcCurve {\n    constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.Distance = Distance;\n      this.SelfIntersect = SelfIntersect;\n      this.RefDirection = RefDirection;\n      this.type = 3505215534;\n    }\n  }\n  IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D;\n  class IfcPcurve extends IfcCurve {\n    constructor(expressID, BasisSurface, ReferenceCurve) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.ReferenceCurve = ReferenceCurve;\n      this.type = 1682466193;\n    }\n  }\n  IFC42.IfcPcurve = IfcPcurve;\n  class IfcPlanarBox extends IfcPlanarExtent {\n    constructor(expressID, SizeInX, SizeInY, Placement) {\n      super(expressID, SizeInX, SizeInY);\n      this.SizeInX = SizeInX;\n      this.SizeInY = SizeInY;\n      this.Placement = Placement;\n      this.type = 603570806;\n    }\n  }\n  IFC42.IfcPlanarBox = IfcPlanarBox;\n  class IfcPlane extends IfcElementarySurface {\n    constructor(expressID, Position) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.type = 220341763;\n    }\n  }\n  IFC42.IfcPlane = IfcPlane;\n  class IfcPreDefinedColour extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 759155922;\n    }\n  }\n  IFC42.IfcPreDefinedColour = IfcPreDefinedColour;\n  class IfcPreDefinedCurveFont extends IfcPreDefinedItem {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 2559016684;\n    }\n  }\n  IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;\n  class IfcPreDefinedPropertySet extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3967405729;\n    }\n  }\n  IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet;\n  class IfcProcedureType extends IfcTypeProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ProcessType = ProcessType;\n      this.PredefinedType = PredefinedType;\n      this.type = 569719735;\n    }\n  }\n  IFC42.IfcProcedureType = IfcProcedureType;\n  class IfcProcess extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.type = 2945172077;\n    }\n  }\n  IFC42.IfcProcess = IfcProcess;\n  class IfcProduct extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 4208778838;\n    }\n  }\n  IFC42.IfcProduct = IfcProduct;\n  class IfcProject extends IfcContext {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.Phase = Phase;\n      this.RepresentationContexts = RepresentationContexts;\n      this.UnitsInContext = UnitsInContext;\n      this.type = 103090709;\n    }\n  }\n  IFC42.IfcProject = IfcProject;\n  class IfcProjectLibrary extends IfcContext {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.Phase = Phase;\n      this.RepresentationContexts = RepresentationContexts;\n      this.UnitsInContext = UnitsInContext;\n      this.type = 653396225;\n    }\n  }\n  IFC42.IfcProjectLibrary = IfcProjectLibrary;\n  class IfcPropertyBoundedValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.UpperBoundValue = UpperBoundValue;\n      this.LowerBoundValue = LowerBoundValue;\n      this.Unit = Unit;\n      this.SetPointValue = SetPointValue;\n      this.type = 871118103;\n    }\n  }\n  IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue;\n  class IfcPropertyEnumeratedValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.EnumerationValues = EnumerationValues;\n      this.EnumerationReference = EnumerationReference;\n      this.type = 4166981789;\n    }\n  }\n  IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;\n  class IfcPropertyListValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, ListValues, Unit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.ListValues = ListValues;\n      this.Unit = Unit;\n      this.type = 2752243245;\n    }\n  }\n  IFC42.IfcPropertyListValue = IfcPropertyListValue;\n  class IfcPropertyReferenceValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, UsageName, PropertyReference) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.UsageName = UsageName;\n      this.PropertyReference = PropertyReference;\n      this.type = 941946838;\n    }\n  }\n  IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue;\n  class IfcPropertySet extends IfcPropertySetDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.HasProperties = HasProperties;\n      this.type = 1451395588;\n    }\n  }\n  IFC42.IfcPropertySet = IfcPropertySet;\n  class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.TemplateType = TemplateType;\n      this.ApplicableEntity = ApplicableEntity;\n      this.HasPropertyTemplates = HasPropertyTemplates;\n      this.type = 492091185;\n    }\n  }\n  IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate;\n  class IfcPropertySingleValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, NominalValue, Unit) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.NominalValue = NominalValue;\n      this.Unit = Unit;\n      this.type = 3650150729;\n    }\n  }\n  IFC42.IfcPropertySingleValue = IfcPropertySingleValue;\n  class IfcPropertyTableValue extends IfcSimpleProperty {\n    constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) {\n      super(expressID, Name, Description);\n      this.Name = Name;\n      this.Description = Description;\n      this.DefiningValues = DefiningValues;\n      this.DefinedValues = DefinedValues;\n      this.Expression = Expression;\n      this.DefiningUnit = DefiningUnit;\n      this.DefinedUnit = DefinedUnit;\n      this.CurveInterpolation = CurveInterpolation;\n      this.type = 110355661;\n    }\n  }\n  IFC42.IfcPropertyTableValue = IfcPropertyTableValue;\n  class IfcPropertyTemplate extends IfcPropertyTemplateDefinition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 3521284610;\n    }\n  }\n  IFC42.IfcPropertyTemplate = IfcPropertyTemplate;\n  class IfcProxy extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.ProxyType = ProxyType;\n      this.Tag = Tag;\n      this.type = 3219374653;\n    }\n  }\n  IFC42.IfcProxy = IfcProxy;\n  class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {\n      super(expressID, ProfileType, ProfileName, Position, XDim, YDim);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.XDim = XDim;\n      this.YDim = YDim;\n      this.WallThickness = WallThickness;\n      this.InnerFilletRadius = InnerFilletRadius;\n      this.OuterFilletRadius = OuterFilletRadius;\n      this.type = 2770003689;\n    }\n  }\n  IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;\n  class IfcRectangularPyramid extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, XLength, YLength, Height) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.XLength = XLength;\n      this.YLength = YLength;\n      this.Height = Height;\n      this.type = 2798486643;\n    }\n  }\n  IFC42.IfcRectangularPyramid = IfcRectangularPyramid;\n  class IfcRectangularTrimmedSurface extends IfcBoundedSurface {\n    constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) {\n      super(expressID);\n      this.BasisSurface = BasisSurface;\n      this.U1 = U1;\n      this.V1 = V1;\n      this.U2 = U2;\n      this.V2 = V2;\n      this.Usense = Usense;\n      this.Vsense = Vsense;\n      this.type = 3454111270;\n    }\n  }\n  IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;\n  class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.DefinitionType = DefinitionType;\n      this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;\n      this.type = 3765753017;\n    }\n  }\n  IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;\n  class IfcRelAssigns extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.type = 3939117080;\n    }\n  }\n  IFC42.IfcRelAssigns = IfcRelAssigns;\n  class IfcRelAssignsToActor extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingActor = RelatingActor;\n      this.ActingRole = ActingRole;\n      this.type = 1683148259;\n    }\n  }\n  IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor;\n  class IfcRelAssignsToControl extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingControl = RelatingControl;\n      this.type = 2495723537;\n    }\n  }\n  IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl;\n  class IfcRelAssignsToGroup extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingGroup = RelatingGroup;\n      this.type = 1307041759;\n    }\n  }\n  IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup;\n  class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingGroup = RelatingGroup;\n      this.Factor = Factor;\n      this.type = 1027710054;\n    }\n  }\n  IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor;\n  class IfcRelAssignsToProcess extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingProcess = RelatingProcess;\n      this.QuantityInProcess = QuantityInProcess;\n      this.type = 4278684876;\n    }\n  }\n  IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess;\n  class IfcRelAssignsToProduct extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingProduct = RelatingProduct;\n      this.type = 2857406711;\n    }\n  }\n  IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct;\n  class IfcRelAssignsToResource extends IfcRelAssigns {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatedObjectsType = RelatedObjectsType;\n      this.RelatingResource = RelatingResource;\n      this.type = 205026976;\n    }\n  }\n  IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource;\n  class IfcRelAssociates extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 1865459582;\n    }\n  }\n  IFC42.IfcRelAssociates = IfcRelAssociates;\n  class IfcRelAssociatesApproval extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingApproval = RelatingApproval;\n      this.type = 4095574036;\n    }\n  }\n  IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval;\n  class IfcRelAssociatesClassification extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingClassification = RelatingClassification;\n      this.type = 919958153;\n    }\n  }\n  IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification;\n  class IfcRelAssociatesConstraint extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.Intent = Intent;\n      this.RelatingConstraint = RelatingConstraint;\n      this.type = 2728634034;\n    }\n  }\n  IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;\n  class IfcRelAssociatesDocument extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingDocument = RelatingDocument;\n      this.type = 982818633;\n    }\n  }\n  IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument;\n  class IfcRelAssociatesLibrary extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingLibrary = RelatingLibrary;\n      this.type = 3840914261;\n    }\n  }\n  IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;\n  class IfcRelAssociatesMaterial extends IfcRelAssociates {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingMaterial = RelatingMaterial;\n      this.type = 2655215786;\n    }\n  }\n  IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;\n  class IfcRelConnects extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 826625072;\n    }\n  }\n  IFC42.IfcRelConnects = IfcRelConnects;\n  class IfcRelConnectsElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.type = 1204542856;\n    }\n  }\n  IFC42.IfcRelConnectsElements = IfcRelConnectsElements;\n  class IfcRelConnectsPathElements extends IfcRelConnectsElements {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.RelatingPriorities = RelatingPriorities;\n      this.RelatedPriorities = RelatedPriorities;\n      this.RelatedConnectionType = RelatedConnectionType;\n      this.RelatingConnectionType = RelatingConnectionType;\n      this.type = 3945020480;\n    }\n  }\n  IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements;\n  class IfcRelConnectsPortToElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingPort = RelatingPort;\n      this.RelatedElement = RelatedElement;\n      this.type = 4201705270;\n    }\n  }\n  IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;\n  class IfcRelConnectsPorts extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingPort = RelatingPort;\n      this.RelatedPort = RelatedPort;\n      this.RealizingElement = RealizingElement;\n      this.type = 3190031847;\n    }\n  }\n  IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts;\n  class IfcRelConnectsStructuralActivity extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedStructuralActivity = RelatedStructuralActivity;\n      this.type = 2127690289;\n    }\n  }\n  IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;\n  class IfcRelConnectsStructuralMember extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingStructuralMember = RelatingStructuralMember;\n      this.RelatedStructuralConnection = RelatedStructuralConnection;\n      this.AppliedCondition = AppliedCondition;\n      this.AdditionalConditions = AdditionalConditions;\n      this.SupportedLength = SupportedLength;\n      this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n      this.type = 1638771189;\n    }\n  }\n  IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;\n  class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingStructuralMember = RelatingStructuralMember;\n      this.RelatedStructuralConnection = RelatedStructuralConnection;\n      this.AppliedCondition = AppliedCondition;\n      this.AdditionalConditions = AdditionalConditions;\n      this.SupportedLength = SupportedLength;\n      this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n      this.ConnectionConstraint = ConnectionConstraint;\n      this.type = 504942748;\n    }\n  }\n  IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;\n  class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.RealizingElements = RealizingElements;\n      this.ConnectionType = ConnectionType;\n      this.type = 3678494232;\n    }\n  }\n  IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;\n  class IfcRelContainedInSpatialStructure extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedElements = RelatedElements;\n      this.RelatingStructure = RelatingStructure;\n      this.type = 3242617779;\n    }\n  }\n  IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;\n  class IfcRelCoversBldgElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingBuildingElement = RelatingBuildingElement;\n      this.RelatedCoverings = RelatedCoverings;\n      this.type = 886880790;\n    }\n  }\n  IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements;\n  class IfcRelCoversSpaces extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedCoverings = RelatedCoverings;\n      this.type = 2802773753;\n    }\n  }\n  IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces;\n  class IfcRelDeclares extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingContext = RelatingContext;\n      this.RelatedDefinitions = RelatedDefinitions;\n      this.type = 2565941209;\n    }\n  }\n  IFC42.IfcRelDeclares = IfcRelDeclares;\n  class IfcRelDecomposes extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 2551354335;\n    }\n  }\n  IFC42.IfcRelDecomposes = IfcRelDecomposes;\n  class IfcRelDefines extends IfcRelationship {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.type = 693640335;\n    }\n  }\n  IFC42.IfcRelDefines = IfcRelDefines;\n  class IfcRelDefinesByObject extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingObject = RelatingObject;\n      this.type = 1462361463;\n    }\n  }\n  IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject;\n  class IfcRelDefinesByProperties extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingPropertyDefinition = RelatingPropertyDefinition;\n      this.type = 4186316022;\n    }\n  }\n  IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties;\n  class IfcRelDefinesByTemplate extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedPropertySets = RelatedPropertySets;\n      this.RelatingTemplate = RelatingTemplate;\n      this.type = 307848117;\n    }\n  }\n  IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate;\n  class IfcRelDefinesByType extends IfcRelDefines {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedObjects = RelatedObjects;\n      this.RelatingType = RelatingType;\n      this.type = 781010003;\n    }\n  }\n  IFC42.IfcRelDefinesByType = IfcRelDefinesByType;\n  class IfcRelFillsElement extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingOpeningElement = RelatingOpeningElement;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.type = 3940055652;\n    }\n  }\n  IFC42.IfcRelFillsElement = IfcRelFillsElement;\n  class IfcRelFlowControlElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedControlElements = RelatedControlElements;\n      this.RelatingFlowElement = RelatingFlowElement;\n      this.type = 279856033;\n    }\n  }\n  IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements;\n  class IfcRelInterferesElements extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedElement = RelatedElement;\n      this.InterferenceGeometry = InterferenceGeometry;\n      this.InterferenceType = InterferenceType;\n      this.ImpliedOrder = ImpliedOrder;\n      this.type = 427948657;\n    }\n  }\n  IFC42.IfcRelInterferesElements = IfcRelInterferesElements;\n  class IfcRelNests extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingObject = RelatingObject;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 3268803585;\n    }\n  }\n  IFC42.IfcRelNests = IfcRelNests;\n  class IfcRelProjectsElement extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingElement = RelatingElement;\n      this.RelatedFeatureElement = RelatedFeatureElement;\n      this.type = 750771296;\n    }\n  }\n  IFC42.IfcRelProjectsElement = IfcRelProjectsElement;\n  class IfcRelReferencedInSpatialStructure extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatedElements = RelatedElements;\n      this.RelatingStructure = RelatingStructure;\n      this.type = 1245217292;\n    }\n  }\n  IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;\n  class IfcRelSequence extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingProcess = RelatingProcess;\n      this.RelatedProcess = RelatedProcess;\n      this.TimeLag = TimeLag;\n      this.SequenceType = SequenceType;\n      this.UserDefinedSequenceType = UserDefinedSequenceType;\n      this.type = 4122056220;\n    }\n  }\n  IFC42.IfcRelSequence = IfcRelSequence;\n  class IfcRelServicesBuildings extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSystem = RelatingSystem;\n      this.RelatedBuildings = RelatedBuildings;\n      this.type = 366585022;\n    }\n  }\n  IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings;\n  class IfcRelSpaceBoundary extends IfcRelConnects {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n      this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n      this.type = 3451746338;\n    }\n  }\n  IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary;\n  class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n      this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n      this.ParentBoundary = ParentBoundary;\n      this.type = 3523091289;\n    }\n  }\n  IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel;\n  class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingSpace = RelatingSpace;\n      this.RelatedBuildingElement = RelatedBuildingElement;\n      this.ConnectionGeometry = ConnectionGeometry;\n      this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n      this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n      this.ParentBoundary = ParentBoundary;\n      this.CorrespondingBoundary = CorrespondingBoundary;\n      this.type = 1521410863;\n    }\n  }\n  IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel;\n  class IfcRelVoidsElement extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingBuildingElement = RelatingBuildingElement;\n      this.RelatedOpeningElement = RelatedOpeningElement;\n      this.type = 1401173127;\n    }\n  }\n  IFC42.IfcRelVoidsElement = IfcRelVoidsElement;\n  class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment {\n    constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) {\n      super(expressID, Transition, SameSense, ParentCurve);\n      this.Transition = Transition;\n      this.SameSense = SameSense;\n      this.ParentCurve = ParentCurve;\n      this.ParamLength = ParamLength;\n      this.type = 816062949;\n    }\n  }\n  IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment;\n  class IfcResource extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.type = 2914609552;\n    }\n  }\n  IFC42.IfcResource = IfcResource;\n  class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Axis, Angle) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Axis = Axis;\n      this.Angle = Angle;\n      this.type = 1856042241;\n    }\n  }\n  IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;\n  class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid {\n    constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) {\n      super(expressID, SweptArea, Position, Axis, Angle);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Axis = Axis;\n      this.Angle = Angle;\n      this.EndSweptArea = EndSweptArea;\n      this.type = 3243963512;\n    }\n  }\n  IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered;\n  class IfcRightCircularCone extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Height, BottomRadius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Height = Height;\n      this.BottomRadius = BottomRadius;\n      this.type = 4158566097;\n    }\n  }\n  IFC42.IfcRightCircularCone = IfcRightCircularCone;\n  class IfcRightCircularCylinder extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Height, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Height = Height;\n      this.Radius = Radius;\n      this.type = 3626867408;\n    }\n  }\n  IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder;\n  class IfcSimplePropertyTemplate extends IfcPropertyTemplate {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.TemplateType = TemplateType;\n      this.PrimaryMeasureType = PrimaryMeasureType;\n      this.SecondaryMeasureType = SecondaryMeasureType;\n      this.Enumerators = Enumerators;\n      this.PrimaryUnit = PrimaryUnit;\n      this.SecondaryUnit = SecondaryUnit;\n      this.Expression = Expression;\n      this.AccessState = AccessState;\n      this.type = 3663146110;\n    }\n  }\n  IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate;\n  class IfcSpatialElement extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.type = 1412071761;\n    }\n  }\n  IFC42.IfcSpatialElement = IfcSpatialElement;\n  class IfcSpatialElementType extends IfcTypeProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 710998568;\n    }\n  }\n  IFC42.IfcSpatialElementType = IfcSpatialElementType;\n  class IfcSpatialStructureElement extends IfcSpatialElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.type = 2706606064;\n    }\n  }\n  IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement;\n  class IfcSpatialStructureElementType extends IfcSpatialElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3893378262;\n    }\n  }\n  IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType;\n  class IfcSpatialZone extends IfcSpatialElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.PredefinedType = PredefinedType;\n      this.type = 463610769;\n    }\n  }\n  IFC42.IfcSpatialZone = IfcSpatialZone;\n  class IfcSpatialZoneType extends IfcSpatialElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.LongName = LongName;\n      this.type = 2481509218;\n    }\n  }\n  IFC42.IfcSpatialZoneType = IfcSpatialZoneType;\n  class IfcSphere extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 451544542;\n    }\n  }\n  IFC42.IfcSphere = IfcSphere;\n  class IfcSphericalSurface extends IfcElementarySurface {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 4015995234;\n    }\n  }\n  IFC42.IfcSphericalSurface = IfcSphericalSurface;\n  class IfcStructuralActivity extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 3544373492;\n    }\n  }\n  IFC42.IfcStructuralActivity = IfcStructuralActivity;\n  class IfcStructuralItem extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 3136571912;\n    }\n  }\n  IFC42.IfcStructuralItem = IfcStructuralItem;\n  class IfcStructuralMember extends IfcStructuralItem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 530289379;\n    }\n  }\n  IFC42.IfcStructuralMember = IfcStructuralMember;\n  class IfcStructuralReaction extends IfcStructuralActivity {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 3689010777;\n    }\n  }\n  IFC42.IfcStructuralReaction = IfcStructuralReaction;\n  class IfcStructuralSurfaceMember extends IfcStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Thickness = Thickness;\n      this.type = 3979015343;\n    }\n  }\n  IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;\n  class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Thickness = Thickness;\n      this.type = 2218152070;\n    }\n  }\n  IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;\n  class IfcStructuralSurfaceReaction extends IfcStructuralReaction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.PredefinedType = PredefinedType;\n      this.type = 603775116;\n    }\n  }\n  IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction;\n  class IfcSubContractResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 4095615324;\n    }\n  }\n  IFC42.IfcSubContractResourceType = IfcSubContractResourceType;\n  class IfcSurfaceCurve extends IfcCurve {\n    constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) {\n      super(expressID);\n      this.Curve3D = Curve3D;\n      this.AssociatedGeometry = AssociatedGeometry;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 699246055;\n    }\n  }\n  IFC42.IfcSurfaceCurve = IfcSurfaceCurve;\n  class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid {\n    constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {\n      super(expressID, SweptArea, Position);\n      this.SweptArea = SweptArea;\n      this.Position = Position;\n      this.Directrix = Directrix;\n      this.StartParam = StartParam;\n      this.EndParam = EndParam;\n      this.ReferenceSurface = ReferenceSurface;\n      this.type = 2028607225;\n    }\n  }\n  IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;\n  class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {\n    constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) {\n      super(expressID, SweptCurve, Position);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.ExtrudedDirection = ExtrudedDirection;\n      this.Depth = Depth;\n      this.type = 2809605785;\n    }\n  }\n  IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;\n  class IfcSurfaceOfRevolution extends IfcSweptSurface {\n    constructor(expressID, SweptCurve, Position, AxisPosition) {\n      super(expressID, SweptCurve, Position);\n      this.SweptCurve = SweptCurve;\n      this.Position = Position;\n      this.AxisPosition = AxisPosition;\n      this.type = 4124788165;\n    }\n  }\n  IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;\n  class IfcSystemFurnitureElementType extends IfcFurnishingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1580310250;\n    }\n  }\n  IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;\n  class IfcTask extends IfcProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Status = Status;\n      this.WorkMethod = WorkMethod;\n      this.IsMilestone = IsMilestone;\n      this.Priority = Priority;\n      this.TaskTime = TaskTime;\n      this.PredefinedType = PredefinedType;\n      this.type = 3473067441;\n    }\n  }\n  IFC42.IfcTask = IfcTask;\n  class IfcTaskType extends IfcTypeProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ProcessType = ProcessType;\n      this.PredefinedType = PredefinedType;\n      this.WorkMethod = WorkMethod;\n      this.type = 3206491090;\n    }\n  }\n  IFC42.IfcTaskType = IfcTaskType;\n  class IfcTessellatedFaceSet extends IfcTessellatedItem {\n    constructor(expressID, Coordinates) {\n      super(expressID);\n      this.Coordinates = Coordinates;\n      this.type = 2387106220;\n    }\n  }\n  IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet;\n  class IfcToroidalSurface extends IfcElementarySurface {\n    constructor(expressID, Position, MajorRadius, MinorRadius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.MajorRadius = MajorRadius;\n      this.MinorRadius = MinorRadius;\n      this.type = 1935646853;\n    }\n  }\n  IFC42.IfcToroidalSurface = IfcToroidalSurface;\n  class IfcTransportElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2097647324;\n    }\n  }\n  IFC42.IfcTransportElementType = IfcTransportElementType;\n  class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet {\n    constructor(expressID, Coordinates, Normals, Closed, CoordIndex, PnIndex) {\n      super(expressID, Coordinates);\n      this.Coordinates = Coordinates;\n      this.Normals = Normals;\n      this.Closed = Closed;\n      this.CoordIndex = CoordIndex;\n      this.PnIndex = PnIndex;\n      this.type = 2916149573;\n    }\n  }\n  IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet;\n  class IfcWindowLiningProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.LiningDepth = LiningDepth;\n      this.LiningThickness = LiningThickness;\n      this.TransomThickness = TransomThickness;\n      this.MullionThickness = MullionThickness;\n      this.FirstTransomOffset = FirstTransomOffset;\n      this.SecondTransomOffset = SecondTransomOffset;\n      this.FirstMullionOffset = FirstMullionOffset;\n      this.SecondMullionOffset = SecondMullionOffset;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.LiningOffset = LiningOffset;\n      this.LiningToPanelOffsetX = LiningToPanelOffsetX;\n      this.LiningToPanelOffsetY = LiningToPanelOffsetY;\n      this.type = 336235671;\n    }\n  }\n  IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties;\n  class IfcWindowPanelProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.OperationType = OperationType;\n      this.PanelPosition = PanelPosition;\n      this.FrameDepth = FrameDepth;\n      this.FrameThickness = FrameThickness;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 512836454;\n    }\n  }\n  IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties;\n  class IfcActor extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheActor = TheActor;\n      this.type = 2296667514;\n    }\n  }\n  IFC42.IfcActor = IfcActor;\n  class IfcAdvancedBrep extends IfcManifoldSolidBrep {\n    constructor(expressID, Outer) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.type = 1635779807;\n    }\n  }\n  IFC42.IfcAdvancedBrep = IfcAdvancedBrep;\n  class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep {\n    constructor(expressID, Outer, Voids) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.Voids = Voids;\n      this.type = 2603310189;\n    }\n  }\n  IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids;\n  class IfcAnnotation extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 1674181508;\n    }\n  }\n  IFC42.IfcAnnotation = IfcAnnotation;\n  class IfcBSplineSurface extends IfcBoundedSurface {\n    constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) {\n      super(expressID);\n      this.UDegree = UDegree;\n      this.VDegree = VDegree;\n      this.ControlPointsList = ControlPointsList;\n      this.SurfaceForm = SurfaceForm;\n      this.UClosed = UClosed;\n      this.VClosed = VClosed;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 2887950389;\n    }\n  }\n  IFC42.IfcBSplineSurface = IfcBSplineSurface;\n  class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface {\n    constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) {\n      super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect);\n      this.UDegree = UDegree;\n      this.VDegree = VDegree;\n      this.ControlPointsList = ControlPointsList;\n      this.SurfaceForm = SurfaceForm;\n      this.UClosed = UClosed;\n      this.VClosed = VClosed;\n      this.SelfIntersect = SelfIntersect;\n      this.UMultiplicities = UMultiplicities;\n      this.VMultiplicities = VMultiplicities;\n      this.UKnots = UKnots;\n      this.VKnots = VKnots;\n      this.KnotSpec = KnotSpec;\n      this.type = 167062518;\n    }\n  }\n  IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots;\n  class IfcBlock extends IfcCsgPrimitive3D {\n    constructor(expressID, Position, XLength, YLength, ZLength) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.XLength = XLength;\n      this.YLength = YLength;\n      this.ZLength = ZLength;\n      this.type = 1334484129;\n    }\n  }\n  IFC42.IfcBlock = IfcBlock;\n  class IfcBooleanClippingResult extends IfcBooleanResult {\n    constructor(expressID, Operator, FirstOperand, SecondOperand) {\n      super(expressID, Operator, FirstOperand, SecondOperand);\n      this.Operator = Operator;\n      this.FirstOperand = FirstOperand;\n      this.SecondOperand = SecondOperand;\n      this.type = 3649129432;\n    }\n  }\n  IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult;\n  class IfcBoundedCurve extends IfcCurve {\n    constructor(expressID) {\n      super(expressID);\n      this.type = 1260505505;\n    }\n  }\n  IFC42.IfcBoundedCurve = IfcBoundedCurve;\n  class IfcBuilding extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.ElevationOfRefHeight = ElevationOfRefHeight;\n      this.ElevationOfTerrain = ElevationOfTerrain;\n      this.BuildingAddress = BuildingAddress;\n      this.type = 4031249490;\n    }\n  }\n  IFC42.IfcBuilding = IfcBuilding;\n  class IfcBuildingElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1950629157;\n    }\n  }\n  IFC42.IfcBuildingElementType = IfcBuildingElementType;\n  class IfcBuildingStorey extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.Elevation = Elevation;\n      this.type = 3124254112;\n    }\n  }\n  IFC42.IfcBuildingStorey = IfcBuildingStorey;\n  class IfcChimneyType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2197970202;\n    }\n  }\n  IFC42.IfcChimneyType = IfcChimneyType;\n  class IfcCircleHollowProfileDef extends IfcCircleProfileDef {\n    constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) {\n      super(expressID, ProfileType, ProfileName, Position, Radius);\n      this.ProfileType = ProfileType;\n      this.ProfileName = ProfileName;\n      this.Position = Position;\n      this.Radius = Radius;\n      this.WallThickness = WallThickness;\n      this.type = 2937912522;\n    }\n  }\n  IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;\n  class IfcCivilElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3893394355;\n    }\n  }\n  IFC42.IfcCivilElementType = IfcCivilElementType;\n  class IfcColumnType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 300633059;\n    }\n  }\n  IFC42.IfcColumnType = IfcColumnType;\n  class IfcComplexPropertyTemplate extends IfcPropertyTemplate {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.UsageName = UsageName;\n      this.TemplateType = TemplateType;\n      this.HasPropertyTemplates = HasPropertyTemplates;\n      this.type = 3875453745;\n    }\n  }\n  IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate;\n  class IfcCompositeCurve extends IfcBoundedCurve {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 3732776249;\n    }\n  }\n  IFC42.IfcCompositeCurve = IfcCompositeCurve;\n  class IfcCompositeCurveOnSurface extends IfcCompositeCurve {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 15328376;\n    }\n  }\n  IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface;\n  class IfcConic extends IfcCurve {\n    constructor(expressID, Position) {\n      super(expressID);\n      this.Position = Position;\n      this.type = 2510884976;\n    }\n  }\n  IFC42.IfcConic = IfcConic;\n  class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 2185764099;\n    }\n  }\n  IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType;\n  class IfcConstructionMaterialResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 4105962743;\n    }\n  }\n  IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType;\n  class IfcConstructionProductResourceType extends IfcConstructionResourceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.ResourceType = ResourceType;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 1525564444;\n    }\n  }\n  IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType;\n  class IfcConstructionResource extends IfcResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.type = 2559216714;\n    }\n  }\n  IFC42.IfcConstructionResource = IfcConstructionResource;\n  class IfcControl extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.type = 3293443760;\n    }\n  }\n  IFC42.IfcControl = IfcControl;\n  class IfcCostItem extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.CostValues = CostValues;\n      this.CostQuantities = CostQuantities;\n      this.type = 3895139033;\n    }\n  }\n  IFC42.IfcCostItem = IfcCostItem;\n  class IfcCostSchedule extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.SubmittedOn = SubmittedOn;\n      this.UpdateDate = UpdateDate;\n      this.type = 1419761937;\n    }\n  }\n  IFC42.IfcCostSchedule = IfcCostSchedule;\n  class IfcCoveringType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1916426348;\n    }\n  }\n  IFC42.IfcCoveringType = IfcCoveringType;\n  class IfcCrewResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 3295246426;\n    }\n  }\n  IFC42.IfcCrewResource = IfcCrewResource;\n  class IfcCurtainWallType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1457835157;\n    }\n  }\n  IFC42.IfcCurtainWallType = IfcCurtainWallType;\n  class IfcCylindricalSurface extends IfcElementarySurface {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 1213902940;\n    }\n  }\n  IFC42.IfcCylindricalSurface = IfcCylindricalSurface;\n  class IfcDistributionElementType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3256556792;\n    }\n  }\n  IFC42.IfcDistributionElementType = IfcDistributionElementType;\n  class IfcDistributionFlowElementType extends IfcDistributionElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3849074793;\n    }\n  }\n  IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType;\n  class IfcDoorLiningProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.LiningDepth = LiningDepth;\n      this.LiningThickness = LiningThickness;\n      this.ThresholdDepth = ThresholdDepth;\n      this.ThresholdThickness = ThresholdThickness;\n      this.TransomThickness = TransomThickness;\n      this.TransomOffset = TransomOffset;\n      this.LiningOffset = LiningOffset;\n      this.ThresholdOffset = ThresholdOffset;\n      this.CasingThickness = CasingThickness;\n      this.CasingDepth = CasingDepth;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.LiningToPanelOffsetX = LiningToPanelOffsetX;\n      this.LiningToPanelOffsetY = LiningToPanelOffsetY;\n      this.type = 2963535650;\n    }\n  }\n  IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties;\n  class IfcDoorPanelProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.PanelDepth = PanelDepth;\n      this.PanelOperation = PanelOperation;\n      this.PanelWidth = PanelWidth;\n      this.PanelPosition = PanelPosition;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 1714330368;\n    }\n  }\n  IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties;\n  class IfcDoorType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.OperationType = OperationType;\n      this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n      this.UserDefinedOperationType = UserDefinedOperationType;\n      this.type = 2323601079;\n    }\n  }\n  IFC42.IfcDoorType = IfcDoorType;\n  class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 445594917;\n    }\n  }\n  IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;\n  class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {\n    constructor(expressID, Name) {\n      super(expressID, Name);\n      this.Name = Name;\n      this.type = 4006246654;\n    }\n  }\n  IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;\n  class IfcElement extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1758889154;\n    }\n  }\n  IFC42.IfcElement = IfcElement;\n  class IfcElementAssembly extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.AssemblyPlace = AssemblyPlace;\n      this.PredefinedType = PredefinedType;\n      this.type = 4123344466;\n    }\n  }\n  IFC42.IfcElementAssembly = IfcElementAssembly;\n  class IfcElementAssemblyType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2397081782;\n    }\n  }\n  IFC42.IfcElementAssemblyType = IfcElementAssemblyType;\n  class IfcElementComponent extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1623761950;\n    }\n  }\n  IFC42.IfcElementComponent = IfcElementComponent;\n  class IfcElementComponentType extends IfcElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2590856083;\n    }\n  }\n  IFC42.IfcElementComponentType = IfcElementComponentType;\n  class IfcEllipse extends IfcConic {\n    constructor(expressID, Position, SemiAxis1, SemiAxis2) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.SemiAxis1 = SemiAxis1;\n      this.SemiAxis2 = SemiAxis2;\n      this.type = 1704287377;\n    }\n  }\n  IFC42.IfcEllipse = IfcEllipse;\n  class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2107101300;\n    }\n  }\n  IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;\n  class IfcEngineType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 132023988;\n    }\n  }\n  IFC42.IfcEngineType = IfcEngineType;\n  class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3174744832;\n    }\n  }\n  IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;\n  class IfcEvaporatorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3390157468;\n    }\n  }\n  IFC42.IfcEvaporatorType = IfcEvaporatorType;\n  class IfcEvent extends IfcProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.PredefinedType = PredefinedType;\n      this.EventTriggerType = EventTriggerType;\n      this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;\n      this.EventOccurenceTime = EventOccurenceTime;\n      this.type = 4148101412;\n    }\n  }\n  IFC42.IfcEvent = IfcEvent;\n  class IfcExternalSpatialStructureElement extends IfcSpatialElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.type = 2853485674;\n    }\n  }\n  IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement;\n  class IfcFacetedBrep extends IfcManifoldSolidBrep {\n    constructor(expressID, Outer) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.type = 807026263;\n    }\n  }\n  IFC42.IfcFacetedBrep = IfcFacetedBrep;\n  class IfcFacetedBrepWithVoids extends IfcFacetedBrep {\n    constructor(expressID, Outer, Voids) {\n      super(expressID, Outer);\n      this.Outer = Outer;\n      this.Voids = Voids;\n      this.type = 3737207727;\n    }\n  }\n  IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;\n  class IfcFastener extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 647756555;\n    }\n  }\n  IFC42.IfcFastener = IfcFastener;\n  class IfcFastenerType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2489546625;\n    }\n  }\n  IFC42.IfcFastenerType = IfcFastenerType;\n  class IfcFeatureElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2827207264;\n    }\n  }\n  IFC42.IfcFeatureElement = IfcFeatureElement;\n  class IfcFeatureElementAddition extends IfcFeatureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2143335405;\n    }\n  }\n  IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition;\n  class IfcFeatureElementSubtraction extends IfcFeatureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1287392070;\n    }\n  }\n  IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;\n  class IfcFlowControllerType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3907093117;\n    }\n  }\n  IFC42.IfcFlowControllerType = IfcFlowControllerType;\n  class IfcFlowFittingType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3198132628;\n    }\n  }\n  IFC42.IfcFlowFittingType = IfcFlowFittingType;\n  class IfcFlowMeterType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3815607619;\n    }\n  }\n  IFC42.IfcFlowMeterType = IfcFlowMeterType;\n  class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1482959167;\n    }\n  }\n  IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;\n  class IfcFlowSegmentType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1834744321;\n    }\n  }\n  IFC42.IfcFlowSegmentType = IfcFlowSegmentType;\n  class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 1339347760;\n    }\n  }\n  IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;\n  class IfcFlowTerminalType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2297155007;\n    }\n  }\n  IFC42.IfcFlowTerminalType = IfcFlowTerminalType;\n  class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 3009222698;\n    }\n  }\n  IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;\n  class IfcFootingType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1893162501;\n    }\n  }\n  IFC42.IfcFootingType = IfcFootingType;\n  class IfcFurnishingElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 263784265;\n    }\n  }\n  IFC42.IfcFurnishingElement = IfcFurnishingElement;\n  class IfcFurniture extends IfcFurnishingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1509553395;\n    }\n  }\n  IFC42.IfcFurniture = IfcFurniture;\n  class IfcGeographicElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3493046030;\n    }\n  }\n  IFC42.IfcGeographicElement = IfcGeographicElement;\n  class IfcGrid extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.UAxes = UAxes;\n      this.VAxes = VAxes;\n      this.WAxes = WAxes;\n      this.PredefinedType = PredefinedType;\n      this.type = 3009204131;\n    }\n  }\n  IFC42.IfcGrid = IfcGrid;\n  class IfcGroup extends IfcObject {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2706460486;\n    }\n  }\n  IFC42.IfcGroup = IfcGroup;\n  class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1251058090;\n    }\n  }\n  IFC42.IfcHeatExchangerType = IfcHeatExchangerType;\n  class IfcHumidifierType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1806887404;\n    }\n  }\n  IFC42.IfcHumidifierType = IfcHumidifierType;\n  class IfcIndexedPolyCurve extends IfcBoundedCurve {\n    constructor(expressID, Points, Segments, SelfIntersect) {\n      super(expressID);\n      this.Points = Points;\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 2571569899;\n    }\n  }\n  IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve;\n  class IfcInterceptorType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3946677679;\n    }\n  }\n  IFC42.IfcInterceptorType = IfcInterceptorType;\n  class IfcIntersectionCurve extends IfcSurfaceCurve {\n    constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) {\n      super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation);\n      this.Curve3D = Curve3D;\n      this.AssociatedGeometry = AssociatedGeometry;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 3113134337;\n    }\n  }\n  IFC42.IfcIntersectionCurve = IfcIntersectionCurve;\n  class IfcInventory extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.Jurisdiction = Jurisdiction;\n      this.ResponsiblePersons = ResponsiblePersons;\n      this.LastUpdateDate = LastUpdateDate;\n      this.CurrentValue = CurrentValue;\n      this.OriginalValue = OriginalValue;\n      this.type = 2391368822;\n    }\n  }\n  IFC42.IfcInventory = IfcInventory;\n  class IfcJunctionBoxType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4288270099;\n    }\n  }\n  IFC42.IfcJunctionBoxType = IfcJunctionBoxType;\n  class IfcLaborResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 3827777499;\n    }\n  }\n  IFC42.IfcLaborResource = IfcLaborResource;\n  class IfcLampType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1051575348;\n    }\n  }\n  IFC42.IfcLampType = IfcLampType;\n  class IfcLightFixtureType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1161773419;\n    }\n  }\n  IFC42.IfcLightFixtureType = IfcLightFixtureType;\n  class IfcMechanicalFastener extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.NominalDiameter = NominalDiameter;\n      this.NominalLength = NominalLength;\n      this.PredefinedType = PredefinedType;\n      this.type = 377706215;\n    }\n  }\n  IFC42.IfcMechanicalFastener = IfcMechanicalFastener;\n  class IfcMechanicalFastenerType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.NominalLength = NominalLength;\n      this.type = 2108223431;\n    }\n  }\n  IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType;\n  class IfcMedicalDeviceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1114901282;\n    }\n  }\n  IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType;\n  class IfcMemberType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3181161470;\n    }\n  }\n  IFC42.IfcMemberType = IfcMemberType;\n  class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 977012517;\n    }\n  }\n  IFC42.IfcMotorConnectionType = IfcMotorConnectionType;\n  class IfcOccupant extends IfcActor {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheActor = TheActor;\n      this.PredefinedType = PredefinedType;\n      this.type = 4143007308;\n    }\n  }\n  IFC42.IfcOccupant = IfcOccupant;\n  class IfcOpeningElement extends IfcFeatureElementSubtraction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3588315303;\n    }\n  }\n  IFC42.IfcOpeningElement = IfcOpeningElement;\n  class IfcOpeningStandardCase extends IfcOpeningElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3079942009;\n    }\n  }\n  IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase;\n  class IfcOutletType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2837617999;\n    }\n  }\n  IFC42.IfcOutletType = IfcOutletType;\n  class IfcPerformanceHistory extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LifeCyclePhase = LifeCyclePhase;\n      this.PredefinedType = PredefinedType;\n      this.type = 2382730787;\n    }\n  }\n  IFC42.IfcPerformanceHistory = IfcPerformanceHistory;\n  class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.OperationType = OperationType;\n      this.PanelPosition = PanelPosition;\n      this.FrameDepth = FrameDepth;\n      this.FrameThickness = FrameThickness;\n      this.ShapeAspectStyle = ShapeAspectStyle;\n      this.type = 3566463478;\n    }\n  }\n  IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;\n  class IfcPermit extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.LongDescription = LongDescription;\n      this.type = 3327091369;\n    }\n  }\n  IFC42.IfcPermit = IfcPermit;\n  class IfcPileType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1158309216;\n    }\n  }\n  IFC42.IfcPileType = IfcPileType;\n  class IfcPipeFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 804291784;\n    }\n  }\n  IFC42.IfcPipeFittingType = IfcPipeFittingType;\n  class IfcPipeSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4231323485;\n    }\n  }\n  IFC42.IfcPipeSegmentType = IfcPipeSegmentType;\n  class IfcPlateType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4017108033;\n    }\n  }\n  IFC42.IfcPlateType = IfcPlateType;\n  class IfcPolygonalFaceSet extends IfcTessellatedFaceSet {\n    constructor(expressID, Coordinates, Closed, Faces, PnIndex) {\n      super(expressID, Coordinates);\n      this.Coordinates = Coordinates;\n      this.Closed = Closed;\n      this.Faces = Faces;\n      this.PnIndex = PnIndex;\n      this.type = 2839578677;\n    }\n  }\n  IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet;\n  class IfcPolyline extends IfcBoundedCurve {\n    constructor(expressID, Points) {\n      super(expressID);\n      this.Points = Points;\n      this.type = 3724593414;\n    }\n  }\n  IFC42.IfcPolyline = IfcPolyline;\n  class IfcPort extends IfcProduct {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.type = 3740093272;\n    }\n  }\n  IFC42.IfcPort = IfcPort;\n  class IfcProcedure extends IfcProcess {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.PredefinedType = PredefinedType;\n      this.type = 2744685151;\n    }\n  }\n  IFC42.IfcProcedure = IfcProcedure;\n  class IfcProjectOrder extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.LongDescription = LongDescription;\n      this.type = 2904328755;\n    }\n  }\n  IFC42.IfcProjectOrder = IfcProjectOrder;\n  class IfcProjectionElement extends IfcFeatureElementAddition {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3651124850;\n    }\n  }\n  IFC42.IfcProjectionElement = IfcProjectionElement;\n  class IfcProtectiveDeviceType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1842657554;\n    }\n  }\n  IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType;\n  class IfcPumpType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2250791053;\n    }\n  }\n  IFC42.IfcPumpType = IfcPumpType;\n  class IfcRailingType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2893384427;\n    }\n  }\n  IFC42.IfcRailingType = IfcRailingType;\n  class IfcRampFlightType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2324767716;\n    }\n  }\n  IFC42.IfcRampFlightType = IfcRampFlightType;\n  class IfcRampType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1469900589;\n    }\n  }\n  IFC42.IfcRampType = IfcRampType;\n  class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots {\n    constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) {\n      super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec);\n      this.UDegree = UDegree;\n      this.VDegree = VDegree;\n      this.ControlPointsList = ControlPointsList;\n      this.SurfaceForm = SurfaceForm;\n      this.UClosed = UClosed;\n      this.VClosed = VClosed;\n      this.SelfIntersect = SelfIntersect;\n      this.UMultiplicities = UMultiplicities;\n      this.VMultiplicities = VMultiplicities;\n      this.UKnots = UKnots;\n      this.VKnots = VKnots;\n      this.KnotSpec = KnotSpec;\n      this.WeightsData = WeightsData;\n      this.type = 683857671;\n    }\n  }\n  IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots;\n  class IfcReinforcingElement extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.type = 3027567501;\n    }\n  }\n  IFC42.IfcReinforcingElement = IfcReinforcingElement;\n  class IfcReinforcingElementType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 964333572;\n    }\n  }\n  IFC42.IfcReinforcingElementType = IfcReinforcingElementType;\n  class IfcReinforcingMesh extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.MeshLength = MeshLength;\n      this.MeshWidth = MeshWidth;\n      this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n      this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n      this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n      this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n      this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n      this.TransverseBarSpacing = TransverseBarSpacing;\n      this.PredefinedType = PredefinedType;\n      this.type = 2320036040;\n    }\n  }\n  IFC42.IfcReinforcingMesh = IfcReinforcingMesh;\n  class IfcReinforcingMeshType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.MeshLength = MeshLength;\n      this.MeshWidth = MeshWidth;\n      this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n      this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n      this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n      this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n      this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n      this.TransverseBarSpacing = TransverseBarSpacing;\n      this.BendingShapeCode = BendingShapeCode;\n      this.BendingParameters = BendingParameters;\n      this.type = 2310774935;\n    }\n  }\n  IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType;\n  class IfcRelAggregates extends IfcRelDecomposes {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.RelatingObject = RelatingObject;\n      this.RelatedObjects = RelatedObjects;\n      this.type = 160246688;\n    }\n  }\n  IFC42.IfcRelAggregates = IfcRelAggregates;\n  class IfcRoofType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2781568857;\n    }\n  }\n  IFC42.IfcRoofType = IfcRoofType;\n  class IfcSanitaryTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1768891740;\n    }\n  }\n  IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType;\n  class IfcSeamCurve extends IfcSurfaceCurve {\n    constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) {\n      super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation);\n      this.Curve3D = Curve3D;\n      this.AssociatedGeometry = AssociatedGeometry;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 2157484638;\n    }\n  }\n  IFC42.IfcSeamCurve = IfcSeamCurve;\n  class IfcShadingDeviceType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4074543187;\n    }\n  }\n  IFC42.IfcShadingDeviceType = IfcShadingDeviceType;\n  class IfcSite extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.RefLatitude = RefLatitude;\n      this.RefLongitude = RefLongitude;\n      this.RefElevation = RefElevation;\n      this.LandTitleNumber = LandTitleNumber;\n      this.SiteAddress = SiteAddress;\n      this.type = 4097777520;\n    }\n  }\n  IFC42.IfcSite = IfcSite;\n  class IfcSlabType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2533589738;\n    }\n  }\n  IFC42.IfcSlabType = IfcSlabType;\n  class IfcSolarDeviceType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1072016465;\n    }\n  }\n  IFC42.IfcSolarDeviceType = IfcSolarDeviceType;\n  class IfcSpace extends IfcSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.CompositionType = CompositionType;\n      this.PredefinedType = PredefinedType;\n      this.ElevationWithFlooring = ElevationWithFlooring;\n      this.type = 3856911033;\n    }\n  }\n  IFC42.IfcSpace = IfcSpace;\n  class IfcSpaceHeaterType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1305183839;\n    }\n  }\n  IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType;\n  class IfcSpaceType extends IfcSpatialStructureElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.LongName = LongName;\n      this.type = 3812236995;\n    }\n  }\n  IFC42.IfcSpaceType = IfcSpaceType;\n  class IfcStackTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3112655638;\n    }\n  }\n  IFC42.IfcStackTerminalType = IfcStackTerminalType;\n  class IfcStairFlightType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1039846685;\n    }\n  }\n  IFC42.IfcStairFlightType = IfcStairFlightType;\n  class IfcStairType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 338393293;\n    }\n  }\n  IFC42.IfcStairType = IfcStairType;\n  class IfcStructuralAction extends IfcStructuralActivity {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.type = 682877961;\n    }\n  }\n  IFC42.IfcStructuralAction = IfcStructuralAction;\n  class IfcStructuralConnection extends IfcStructuralItem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.type = 1179482911;\n    }\n  }\n  IFC42.IfcStructuralConnection = IfcStructuralConnection;\n  class IfcStructuralCurveAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.PredefinedType = PredefinedType;\n      this.type = 1004757350;\n    }\n  }\n  IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction;\n  class IfcStructuralCurveConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.Axis = Axis;\n      this.type = 4243806635;\n    }\n  }\n  IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection;\n  class IfcStructuralCurveMember extends IfcStructuralMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Axis = Axis;\n      this.type = 214636428;\n    }\n  }\n  IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember;\n  class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.PredefinedType = PredefinedType;\n      this.Axis = Axis;\n      this.type = 2445595289;\n    }\n  }\n  IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;\n  class IfcStructuralCurveReaction extends IfcStructuralReaction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.PredefinedType = PredefinedType;\n      this.type = 2757150158;\n    }\n  }\n  IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction;\n  class IfcStructuralLinearAction extends IfcStructuralCurveAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.PredefinedType = PredefinedType;\n      this.type = 1807405624;\n    }\n  }\n  IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction;\n  class IfcStructuralLoadGroup extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.ActionType = ActionType;\n      this.ActionSource = ActionSource;\n      this.Coefficient = Coefficient;\n      this.Purpose = Purpose;\n      this.type = 1252848954;\n    }\n  }\n  IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup;\n  class IfcStructuralPointAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.type = 2082059205;\n    }\n  }\n  IFC42.IfcStructuralPointAction = IfcStructuralPointAction;\n  class IfcStructuralPointConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n      this.type = 734778138;\n    }\n  }\n  IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection;\n  class IfcStructuralPointReaction extends IfcStructuralReaction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.type = 1235345126;\n    }\n  }\n  IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction;\n  class IfcStructuralResultGroup extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.TheoryType = TheoryType;\n      this.ResultForLoadGroup = ResultForLoadGroup;\n      this.IsLinear = IsLinear;\n      this.type = 2986769608;\n    }\n  }\n  IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup;\n  class IfcStructuralSurfaceAction extends IfcStructuralAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.PredefinedType = PredefinedType;\n      this.type = 3657597509;\n    }\n  }\n  IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction;\n  class IfcStructuralSurfaceConnection extends IfcStructuralConnection {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedCondition = AppliedCondition;\n      this.type = 1975003073;\n    }\n  }\n  IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;\n  class IfcSubContractResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 148013059;\n    }\n  }\n  IFC42.IfcSubContractResource = IfcSubContractResource;\n  class IfcSurfaceFeature extends IfcFeatureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3101698114;\n    }\n  }\n  IFC42.IfcSurfaceFeature = IfcSurfaceFeature;\n  class IfcSwitchingDeviceType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2315554128;\n    }\n  }\n  IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType;\n  class IfcSystem extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.type = 2254336722;\n    }\n  }\n  IFC42.IfcSystem = IfcSystem;\n  class IfcSystemFurnitureElement extends IfcFurnishingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 413509423;\n    }\n  }\n  IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement;\n  class IfcTankType extends IfcFlowStorageDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 5716631;\n    }\n  }\n  IFC42.IfcTankType = IfcTankType;\n  class IfcTendon extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.TensionForce = TensionForce;\n      this.PreStress = PreStress;\n      this.FrictionCoefficient = FrictionCoefficient;\n      this.AnchorageSlip = AnchorageSlip;\n      this.MinCurvatureRadius = MinCurvatureRadius;\n      this.type = 3824725483;\n    }\n  }\n  IFC42.IfcTendon = IfcTendon;\n  class IfcTendonAnchor extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.PredefinedType = PredefinedType;\n      this.type = 2347447852;\n    }\n  }\n  IFC42.IfcTendonAnchor = IfcTendonAnchor;\n  class IfcTendonAnchorType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3081323446;\n    }\n  }\n  IFC42.IfcTendonAnchorType = IfcTendonAnchorType;\n  class IfcTendonType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.SheathDiameter = SheathDiameter;\n      this.type = 2415094496;\n    }\n  }\n  IFC42.IfcTendonType = IfcTendonType;\n  class IfcTransformerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1692211062;\n    }\n  }\n  IFC42.IfcTransformerType = IfcTransformerType;\n  class IfcTransportElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1620046519;\n    }\n  }\n  IFC42.IfcTransportElement = IfcTransportElement;\n  class IfcTrimmedCurve extends IfcBoundedCurve {\n    constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {\n      super(expressID);\n      this.BasisCurve = BasisCurve;\n      this.Trim1 = Trim1;\n      this.Trim2 = Trim2;\n      this.SenseAgreement = SenseAgreement;\n      this.MasterRepresentation = MasterRepresentation;\n      this.type = 3593883385;\n    }\n  }\n  IFC42.IfcTrimmedCurve = IfcTrimmedCurve;\n  class IfcTubeBundleType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1600972822;\n    }\n  }\n  IFC42.IfcTubeBundleType = IfcTubeBundleType;\n  class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1911125066;\n    }\n  }\n  IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;\n  class IfcValveType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 728799441;\n    }\n  }\n  IFC42.IfcValveType = IfcValveType;\n  class IfcVibrationIsolator extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2391383451;\n    }\n  }\n  IFC42.IfcVibrationIsolator = IfcVibrationIsolator;\n  class IfcVibrationIsolatorType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3313531582;\n    }\n  }\n  IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType;\n  class IfcVirtualElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2769231204;\n    }\n  }\n  IFC42.IfcVirtualElement = IfcVirtualElement;\n  class IfcVoidingFeature extends IfcFeatureElementSubtraction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 926996030;\n    }\n  }\n  IFC42.IfcVoidingFeature = IfcVoidingFeature;\n  class IfcWallType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1898987631;\n    }\n  }\n  IFC42.IfcWallType = IfcWallType;\n  class IfcWasteTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1133259667;\n    }\n  }\n  IFC42.IfcWasteTerminalType = IfcWasteTerminalType;\n  class IfcWindowType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.PartitioningType = PartitioningType;\n      this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n      this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n      this.type = 4009809668;\n    }\n  }\n  IFC42.IfcWindowType = IfcWindowType;\n  class IfcWorkCalendar extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.WorkingTimes = WorkingTimes;\n      this.ExceptionTimes = ExceptionTimes;\n      this.PredefinedType = PredefinedType;\n      this.type = 4088093105;\n    }\n  }\n  IFC42.IfcWorkCalendar = IfcWorkCalendar;\n  class IfcWorkControl extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.type = 1028945134;\n    }\n  }\n  IFC42.IfcWorkControl = IfcWorkControl;\n  class IfcWorkPlan extends IfcWorkControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.PredefinedType = PredefinedType;\n      this.type = 4218914973;\n    }\n  }\n  IFC42.IfcWorkPlan = IfcWorkPlan;\n  class IfcWorkSchedule extends IfcWorkControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.CreationDate = CreationDate;\n      this.Creators = Creators;\n      this.Purpose = Purpose;\n      this.Duration = Duration;\n      this.TotalFloat = TotalFloat;\n      this.StartTime = StartTime;\n      this.FinishTime = FinishTime;\n      this.PredefinedType = PredefinedType;\n      this.type = 3342526732;\n    }\n  }\n  IFC42.IfcWorkSchedule = IfcWorkSchedule;\n  class IfcZone extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.type = 1033361043;\n    }\n  }\n  IFC42.IfcZone = IfcZone;\n  class IfcActionRequest extends IfcControl {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.PredefinedType = PredefinedType;\n      this.Status = Status;\n      this.LongDescription = LongDescription;\n      this.type = 3821786052;\n    }\n  }\n  IFC42.IfcActionRequest = IfcActionRequest;\n  class IfcAirTerminalBoxType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1411407467;\n    }\n  }\n  IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType;\n  class IfcAirTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3352864051;\n    }\n  }\n  IFC42.IfcAirTerminalType = IfcAirTerminalType;\n  class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1871374353;\n    }\n  }\n  IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;\n  class IfcAsset extends IfcGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.OriginalValue = OriginalValue;\n      this.CurrentValue = CurrentValue;\n      this.TotalReplacementCost = TotalReplacementCost;\n      this.Owner = Owner;\n      this.User = User;\n      this.ResponsiblePerson = ResponsiblePerson;\n      this.IncorporationDate = IncorporationDate;\n      this.DepreciatedValue = DepreciatedValue;\n      this.type = 3460190687;\n    }\n  }\n  IFC42.IfcAsset = IfcAsset;\n  class IfcAudioVisualApplianceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1532957894;\n    }\n  }\n  IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType;\n  class IfcBSplineCurve extends IfcBoundedCurve {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {\n      super(expressID);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 1967976161;\n    }\n  }\n  IFC42.IfcBSplineCurve = IfcBSplineCurve;\n  class IfcBSplineCurveWithKnots extends IfcBSplineCurve {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) {\n      super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.KnotMultiplicities = KnotMultiplicities;\n      this.Knots = Knots;\n      this.KnotSpec = KnotSpec;\n      this.type = 2461110595;\n    }\n  }\n  IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots;\n  class IfcBeamType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 819618141;\n    }\n  }\n  IFC42.IfcBeamType = IfcBeamType;\n  class IfcBoilerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 231477066;\n    }\n  }\n  IFC42.IfcBoilerType = IfcBoilerType;\n  class IfcBoundaryCurve extends IfcCompositeCurveOnSurface {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 1136057603;\n    }\n  }\n  IFC42.IfcBoundaryCurve = IfcBoundaryCurve;\n  class IfcBuildingElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3299480353;\n    }\n  }\n  IFC42.IfcBuildingElement = IfcBuildingElement;\n  class IfcBuildingElementPart extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2979338954;\n    }\n  }\n  IFC42.IfcBuildingElementPart = IfcBuildingElementPart;\n  class IfcBuildingElementPartType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 39481116;\n    }\n  }\n  IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType;\n  class IfcBuildingElementProxy extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1095909175;\n    }\n  }\n  IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy;\n  class IfcBuildingElementProxyType extends IfcBuildingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1909888760;\n    }\n  }\n  IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType;\n  class IfcBuildingSystem extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.LongName = LongName;\n      this.type = 1177604601;\n    }\n  }\n  IFC42.IfcBuildingSystem = IfcBuildingSystem;\n  class IfcBurnerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2188180465;\n    }\n  }\n  IFC42.IfcBurnerType = IfcBurnerType;\n  class IfcCableCarrierFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 395041908;\n    }\n  }\n  IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType;\n  class IfcCableCarrierSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3293546465;\n    }\n  }\n  IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;\n  class IfcCableFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2674252688;\n    }\n  }\n  IFC42.IfcCableFittingType = IfcCableFittingType;\n  class IfcCableSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1285652485;\n    }\n  }\n  IFC42.IfcCableSegmentType = IfcCableSegmentType;\n  class IfcChillerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2951183804;\n    }\n  }\n  IFC42.IfcChillerType = IfcChillerType;\n  class IfcChimney extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3296154744;\n    }\n  }\n  IFC42.IfcChimney = IfcChimney;\n  class IfcCircle extends IfcConic {\n    constructor(expressID, Position, Radius) {\n      super(expressID, Position);\n      this.Position = Position;\n      this.Radius = Radius;\n      this.type = 2611217952;\n    }\n  }\n  IFC42.IfcCircle = IfcCircle;\n  class IfcCivilElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1677625105;\n    }\n  }\n  IFC42.IfcCivilElement = IfcCivilElement;\n  class IfcCoilType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2301859152;\n    }\n  }\n  IFC42.IfcCoilType = IfcCoilType;\n  class IfcColumn extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 843113511;\n    }\n  }\n  IFC42.IfcColumn = IfcColumn;\n  class IfcColumnStandardCase extends IfcColumn {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 905975707;\n    }\n  }\n  IFC42.IfcColumnStandardCase = IfcColumnStandardCase;\n  class IfcCommunicationsApplianceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 400855858;\n    }\n  }\n  IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType;\n  class IfcCompressorType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3850581409;\n    }\n  }\n  IFC42.IfcCompressorType = IfcCompressorType;\n  class IfcCondenserType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2816379211;\n    }\n  }\n  IFC42.IfcCondenserType = IfcCondenserType;\n  class IfcConstructionEquipmentResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 3898045240;\n    }\n  }\n  IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;\n  class IfcConstructionMaterialResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 1060000209;\n    }\n  }\n  IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource;\n  class IfcConstructionProductResource extends IfcConstructionResource {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.Identification = Identification;\n      this.LongDescription = LongDescription;\n      this.Usage = Usage;\n      this.BaseCosts = BaseCosts;\n      this.BaseQuantity = BaseQuantity;\n      this.PredefinedType = PredefinedType;\n      this.type = 488727124;\n    }\n  }\n  IFC42.IfcConstructionProductResource = IfcConstructionProductResource;\n  class IfcCooledBeamType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 335055490;\n    }\n  }\n  IFC42.IfcCooledBeamType = IfcCooledBeamType;\n  class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2954562838;\n    }\n  }\n  IFC42.IfcCoolingTowerType = IfcCoolingTowerType;\n  class IfcCovering extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1973544240;\n    }\n  }\n  IFC42.IfcCovering = IfcCovering;\n  class IfcCurtainWall extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3495092785;\n    }\n  }\n  IFC42.IfcCurtainWall = IfcCurtainWall;\n  class IfcDamperType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3961806047;\n    }\n  }\n  IFC42.IfcDamperType = IfcDamperType;\n  class IfcDiscreteAccessory extends IfcElementComponent {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1335981549;\n    }\n  }\n  IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory;\n  class IfcDiscreteAccessoryType extends IfcElementComponentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2635815018;\n    }\n  }\n  IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;\n  class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1599208980;\n    }\n  }\n  IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType;\n  class IfcDistributionControlElementType extends IfcDistributionElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.type = 2063403501;\n    }\n  }\n  IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType;\n  class IfcDistributionElement extends IfcElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1945004755;\n    }\n  }\n  IFC42.IfcDistributionElement = IfcDistributionElement;\n  class IfcDistributionFlowElement extends IfcDistributionElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3040386961;\n    }\n  }\n  IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement;\n  class IfcDistributionPort extends IfcPort {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.FlowDirection = FlowDirection;\n      this.PredefinedType = PredefinedType;\n      this.SystemType = SystemType;\n      this.type = 3041715199;\n    }\n  }\n  IFC42.IfcDistributionPort = IfcDistributionPort;\n  class IfcDistributionSystem extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.PredefinedType = PredefinedType;\n      this.type = 3205830791;\n    }\n  }\n  IFC42.IfcDistributionSystem = IfcDistributionSystem;\n  class IfcDoor extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OverallHeight = OverallHeight;\n      this.OverallWidth = OverallWidth;\n      this.PredefinedType = PredefinedType;\n      this.OperationType = OperationType;\n      this.UserDefinedOperationType = UserDefinedOperationType;\n      this.type = 395920057;\n    }\n  }\n  IFC42.IfcDoor = IfcDoor;\n  class IfcDoorStandardCase extends IfcDoor {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OverallHeight = OverallHeight;\n      this.OverallWidth = OverallWidth;\n      this.PredefinedType = PredefinedType;\n      this.OperationType = OperationType;\n      this.UserDefinedOperationType = UserDefinedOperationType;\n      this.type = 3242481149;\n    }\n  }\n  IFC42.IfcDoorStandardCase = IfcDoorStandardCase;\n  class IfcDuctFittingType extends IfcFlowFittingType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 869906466;\n    }\n  }\n  IFC42.IfcDuctFittingType = IfcDuctFittingType;\n  class IfcDuctSegmentType extends IfcFlowSegmentType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3760055223;\n    }\n  }\n  IFC42.IfcDuctSegmentType = IfcDuctSegmentType;\n  class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2030761528;\n    }\n  }\n  IFC42.IfcDuctSilencerType = IfcDuctSilencerType;\n  class IfcElectricApplianceType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 663422040;\n    }\n  }\n  IFC42.IfcElectricApplianceType = IfcElectricApplianceType;\n  class IfcElectricDistributionBoardType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2417008758;\n    }\n  }\n  IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType;\n  class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3277789161;\n    }\n  }\n  IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;\n  class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1534661035;\n    }\n  }\n  IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType;\n  class IfcElectricMotorType extends IfcEnergyConversionDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1217240411;\n    }\n  }\n  IFC42.IfcElectricMotorType = IfcElectricMotorType;\n  class IfcElectricTimeControlType extends IfcFlowControllerType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 712377611;\n    }\n  }\n  IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType;\n  class IfcEnergyConversionDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1658829314;\n    }\n  }\n  IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice;\n  class IfcEngine extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2814081492;\n    }\n  }\n  IFC42.IfcEngine = IfcEngine;\n  class IfcEvaporativeCooler extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3747195512;\n    }\n  }\n  IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler;\n  class IfcEvaporator extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 484807127;\n    }\n  }\n  IFC42.IfcEvaporator = IfcEvaporator;\n  class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.LongName = LongName;\n      this.PredefinedType = PredefinedType;\n      this.type = 1209101575;\n    }\n  }\n  IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement;\n  class IfcFanType extends IfcFlowMovingDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 346874300;\n    }\n  }\n  IFC42.IfcFanType = IfcFanType;\n  class IfcFilterType extends IfcFlowTreatmentDeviceType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1810631287;\n    }\n  }\n  IFC42.IfcFilterType = IfcFilterType;\n  class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4222183408;\n    }\n  }\n  IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;\n  class IfcFlowController extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2058353004;\n    }\n  }\n  IFC42.IfcFlowController = IfcFlowController;\n  class IfcFlowFitting extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 4278956645;\n    }\n  }\n  IFC42.IfcFlowFitting = IfcFlowFitting;\n  class IfcFlowInstrumentType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 4037862832;\n    }\n  }\n  IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType;\n  class IfcFlowMeter extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2188021234;\n    }\n  }\n  IFC42.IfcFlowMeter = IfcFlowMeter;\n  class IfcFlowMovingDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3132237377;\n    }\n  }\n  IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice;\n  class IfcFlowSegment extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 987401354;\n    }\n  }\n  IFC42.IfcFlowSegment = IfcFlowSegment;\n  class IfcFlowStorageDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 707683696;\n    }\n  }\n  IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice;\n  class IfcFlowTerminal extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 2223149337;\n    }\n  }\n  IFC42.IfcFlowTerminal = IfcFlowTerminal;\n  class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 3508470533;\n    }\n  }\n  IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;\n  class IfcFooting extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 900683007;\n    }\n  }\n  IFC42.IfcFooting = IfcFooting;\n  class IfcHeatExchanger extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3319311131;\n    }\n  }\n  IFC42.IfcHeatExchanger = IfcHeatExchanger;\n  class IfcHumidifier extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2068733104;\n    }\n  }\n  IFC42.IfcHumidifier = IfcHumidifier;\n  class IfcInterceptor extends IfcFlowTreatmentDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4175244083;\n    }\n  }\n  IFC42.IfcInterceptor = IfcInterceptor;\n  class IfcJunctionBox extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2176052936;\n    }\n  }\n  IFC42.IfcJunctionBox = IfcJunctionBox;\n  class IfcLamp extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 76236018;\n    }\n  }\n  IFC42.IfcLamp = IfcLamp;\n  class IfcLightFixture extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 629592764;\n    }\n  }\n  IFC42.IfcLightFixture = IfcLightFixture;\n  class IfcMedicalDevice extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1437502449;\n    }\n  }\n  IFC42.IfcMedicalDevice = IfcMedicalDevice;\n  class IfcMember extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1073191201;\n    }\n  }\n  IFC42.IfcMember = IfcMember;\n  class IfcMemberStandardCase extends IfcMember {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1911478936;\n    }\n  }\n  IFC42.IfcMemberStandardCase = IfcMemberStandardCase;\n  class IfcMotorConnection extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2474470126;\n    }\n  }\n  IFC42.IfcMotorConnection = IfcMotorConnection;\n  class IfcOuterBoundaryCurve extends IfcBoundaryCurve {\n    constructor(expressID, Segments, SelfIntersect) {\n      super(expressID, Segments, SelfIntersect);\n      this.Segments = Segments;\n      this.SelfIntersect = SelfIntersect;\n      this.type = 144952367;\n    }\n  }\n  IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve;\n  class IfcOutlet extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3694346114;\n    }\n  }\n  IFC42.IfcOutlet = IfcOutlet;\n  class IfcPile extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.ConstructionType = ConstructionType;\n      this.type = 1687234759;\n    }\n  }\n  IFC42.IfcPile = IfcPile;\n  class IfcPipeFitting extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 310824031;\n    }\n  }\n  IFC42.IfcPipeFitting = IfcPipeFitting;\n  class IfcPipeSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3612865200;\n    }\n  }\n  IFC42.IfcPipeSegment = IfcPipeSegment;\n  class IfcPlate extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3171933400;\n    }\n  }\n  IFC42.IfcPlate = IfcPlate;\n  class IfcPlateStandardCase extends IfcPlate {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1156407060;\n    }\n  }\n  IFC42.IfcPlateStandardCase = IfcPlateStandardCase;\n  class IfcProtectiveDevice extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 738039164;\n    }\n  }\n  IFC42.IfcProtectiveDevice = IfcProtectiveDevice;\n  class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 655969474;\n    }\n  }\n  IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType;\n  class IfcPump extends IfcFlowMovingDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 90941305;\n    }\n  }\n  IFC42.IfcPump = IfcPump;\n  class IfcRailing extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2262370178;\n    }\n  }\n  IFC42.IfcRailing = IfcRailing;\n  class IfcRamp extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3024970846;\n    }\n  }\n  IFC42.IfcRamp = IfcRamp;\n  class IfcRampFlight extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3283111854;\n    }\n  }\n  IFC42.IfcRampFlight = IfcRampFlight;\n  class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots {\n    constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) {\n      super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec);\n      this.Degree = Degree;\n      this.ControlPointsList = ControlPointsList;\n      this.CurveForm = CurveForm;\n      this.ClosedCurve = ClosedCurve;\n      this.SelfIntersect = SelfIntersect;\n      this.KnotMultiplicities = KnotMultiplicities;\n      this.Knots = Knots;\n      this.KnotSpec = KnotSpec;\n      this.WeightsData = WeightsData;\n      this.type = 1232101972;\n    }\n  }\n  IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots;\n  class IfcReinforcingBar extends IfcReinforcingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.SteelGrade = SteelGrade;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.BarLength = BarLength;\n      this.PredefinedType = PredefinedType;\n      this.BarSurface = BarSurface;\n      this.type = 979691226;\n    }\n  }\n  IFC42.IfcReinforcingBar = IfcReinforcingBar;\n  class IfcReinforcingBarType extends IfcReinforcingElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.NominalDiameter = NominalDiameter;\n      this.CrossSectionArea = CrossSectionArea;\n      this.BarLength = BarLength;\n      this.BarSurface = BarSurface;\n      this.BendingShapeCode = BendingShapeCode;\n      this.BendingParameters = BendingParameters;\n      this.type = 2572171363;\n    }\n  }\n  IFC42.IfcReinforcingBarType = IfcReinforcingBarType;\n  class IfcRoof extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2016517767;\n    }\n  }\n  IFC42.IfcRoof = IfcRoof;\n  class IfcSanitaryTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3053780830;\n    }\n  }\n  IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal;\n  class IfcSensorType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 1783015770;\n    }\n  }\n  IFC42.IfcSensorType = IfcSensorType;\n  class IfcShadingDevice extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1329646415;\n    }\n  }\n  IFC42.IfcShadingDevice = IfcShadingDevice;\n  class IfcSlab extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1529196076;\n    }\n  }\n  IFC42.IfcSlab = IfcSlab;\n  class IfcSlabElementedCase extends IfcSlab {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3127900445;\n    }\n  }\n  IFC42.IfcSlabElementedCase = IfcSlabElementedCase;\n  class IfcSlabStandardCase extends IfcSlab {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3027962421;\n    }\n  }\n  IFC42.IfcSlabStandardCase = IfcSlabStandardCase;\n  class IfcSolarDevice extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3420628829;\n    }\n  }\n  IFC42.IfcSolarDevice = IfcSolarDevice;\n  class IfcSpaceHeater extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1999602285;\n    }\n  }\n  IFC42.IfcSpaceHeater = IfcSpaceHeater;\n  class IfcStackTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1404847402;\n    }\n  }\n  IFC42.IfcStackTerminal = IfcStackTerminal;\n  class IfcStair extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 331165859;\n    }\n  }\n  IFC42.IfcStair = IfcStair;\n  class IfcStairFlight extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.NumberOfRisers = NumberOfRisers;\n      this.NumberOfTreads = NumberOfTreads;\n      this.RiserHeight = RiserHeight;\n      this.TreadLength = TreadLength;\n      this.PredefinedType = PredefinedType;\n      this.type = 4252922144;\n    }\n  }\n  IFC42.IfcStairFlight = IfcStairFlight;\n  class IfcStructuralAnalysisModel extends IfcSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.OrientationOf2DPlane = OrientationOf2DPlane;\n      this.LoadedBy = LoadedBy;\n      this.HasResults = HasResults;\n      this.SharedPlacement = SharedPlacement;\n      this.type = 2515109513;\n    }\n  }\n  IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;\n  class IfcStructuralLoadCase extends IfcStructuralLoadGroup {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.PredefinedType = PredefinedType;\n      this.ActionType = ActionType;\n      this.ActionSource = ActionSource;\n      this.Coefficient = Coefficient;\n      this.Purpose = Purpose;\n      this.SelfWeightCoefficients = SelfWeightCoefficients;\n      this.type = 385403989;\n    }\n  }\n  IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase;\n  class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.AppliedLoad = AppliedLoad;\n      this.GlobalOrLocal = GlobalOrLocal;\n      this.DestabilizingLoad = DestabilizingLoad;\n      this.ProjectedOrTrue = ProjectedOrTrue;\n      this.PredefinedType = PredefinedType;\n      this.type = 1621171031;\n    }\n  }\n  IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction;\n  class IfcSwitchingDevice extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1162798199;\n    }\n  }\n  IFC42.IfcSwitchingDevice = IfcSwitchingDevice;\n  class IfcTank extends IfcFlowStorageDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 812556717;\n    }\n  }\n  IFC42.IfcTank = IfcTank;\n  class IfcTransformer extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3825984169;\n    }\n  }\n  IFC42.IfcTransformer = IfcTransformer;\n  class IfcTubeBundle extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3026737570;\n    }\n  }\n  IFC42.IfcTubeBundle = IfcTubeBundle;\n  class IfcUnitaryControlElementType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3179687236;\n    }\n  }\n  IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType;\n  class IfcUnitaryEquipment extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4292641817;\n    }\n  }\n  IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment;\n  class IfcValve extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4207607924;\n    }\n  }\n  IFC42.IfcValve = IfcValve;\n  class IfcWall extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2391406946;\n    }\n  }\n  IFC42.IfcWall = IfcWall;\n  class IfcWallElementedCase extends IfcWall {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4156078855;\n    }\n  }\n  IFC42.IfcWallElementedCase = IfcWallElementedCase;\n  class IfcWallStandardCase extends IfcWall {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3512223829;\n    }\n  }\n  IFC42.IfcWallStandardCase = IfcWallStandardCase;\n  class IfcWasteTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4237592921;\n    }\n  }\n  IFC42.IfcWasteTerminal = IfcWasteTerminal;\n  class IfcWindow extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OverallHeight = OverallHeight;\n      this.OverallWidth = OverallWidth;\n      this.PredefinedType = PredefinedType;\n      this.PartitioningType = PartitioningType;\n      this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n      this.type = 3304561284;\n    }\n  }\n  IFC42.IfcWindow = IfcWindow;\n  class IfcWindowStandardCase extends IfcWindow {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.OverallHeight = OverallHeight;\n      this.OverallWidth = OverallWidth;\n      this.PredefinedType = PredefinedType;\n      this.PartitioningType = PartitioningType;\n      this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n      this.type = 486154966;\n    }\n  }\n  IFC42.IfcWindowStandardCase = IfcWindowStandardCase;\n  class IfcActuatorType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 2874132201;\n    }\n  }\n  IFC42.IfcActuatorType = IfcActuatorType;\n  class IfcAirTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1634111441;\n    }\n  }\n  IFC42.IfcAirTerminal = IfcAirTerminal;\n  class IfcAirTerminalBox extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 177149247;\n    }\n  }\n  IFC42.IfcAirTerminalBox = IfcAirTerminalBox;\n  class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2056796094;\n    }\n  }\n  IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery;\n  class IfcAlarmType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 3001207471;\n    }\n  }\n  IFC42.IfcAlarmType = IfcAlarmType;\n  class IfcAudioVisualAppliance extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 277319702;\n    }\n  }\n  IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance;\n  class IfcBeam extends IfcBuildingElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 753842376;\n    }\n  }\n  IFC42.IfcBeam = IfcBeam;\n  class IfcBeamStandardCase extends IfcBeam {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2906023776;\n    }\n  }\n  IFC42.IfcBeamStandardCase = IfcBeamStandardCase;\n  class IfcBoiler extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 32344328;\n    }\n  }\n  IFC42.IfcBoiler = IfcBoiler;\n  class IfcBurner extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2938176219;\n    }\n  }\n  IFC42.IfcBurner = IfcBurner;\n  class IfcCableCarrierFitting extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 635142910;\n    }\n  }\n  IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting;\n  class IfcCableCarrierSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3758799889;\n    }\n  }\n  IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment;\n  class IfcCableFitting extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1051757585;\n    }\n  }\n  IFC42.IfcCableFitting = IfcCableFitting;\n  class IfcCableSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4217484030;\n    }\n  }\n  IFC42.IfcCableSegment = IfcCableSegment;\n  class IfcChiller extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3902619387;\n    }\n  }\n  IFC42.IfcChiller = IfcChiller;\n  class IfcCoil extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 639361253;\n    }\n  }\n  IFC42.IfcCoil = IfcCoil;\n  class IfcCommunicationsAppliance extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3221913625;\n    }\n  }\n  IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance;\n  class IfcCompressor extends IfcFlowMovingDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3571504051;\n    }\n  }\n  IFC42.IfcCompressor = IfcCompressor;\n  class IfcCondenser extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2272882330;\n    }\n  }\n  IFC42.IfcCondenser = IfcCondenser;\n  class IfcControllerType extends IfcDistributionControlElementType {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ApplicableOccurrence = ApplicableOccurrence;\n      this.HasPropertySets = HasPropertySets;\n      this.RepresentationMaps = RepresentationMaps;\n      this.Tag = Tag;\n      this.ElementType = ElementType;\n      this.PredefinedType = PredefinedType;\n      this.type = 578613899;\n    }\n  }\n  IFC42.IfcControllerType = IfcControllerType;\n  class IfcCooledBeam extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4136498852;\n    }\n  }\n  IFC42.IfcCooledBeam = IfcCooledBeam;\n  class IfcCoolingTower extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3640358203;\n    }\n  }\n  IFC42.IfcCoolingTower = IfcCoolingTower;\n  class IfcDamper extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4074379575;\n    }\n  }\n  IFC42.IfcDamper = IfcDamper;\n  class IfcDistributionChamberElement extends IfcDistributionFlowElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1052013943;\n    }\n  }\n  IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement;\n  class IfcDistributionCircuit extends IfcDistributionSystem {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.LongName = LongName;\n      this.PredefinedType = PredefinedType;\n      this.type = 562808652;\n    }\n  }\n  IFC42.IfcDistributionCircuit = IfcDistributionCircuit;\n  class IfcDistributionControlElement extends IfcDistributionElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.type = 1062813311;\n    }\n  }\n  IFC42.IfcDistributionControlElement = IfcDistributionControlElement;\n  class IfcDuctFitting extends IfcFlowFitting {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 342316401;\n    }\n  }\n  IFC42.IfcDuctFitting = IfcDuctFitting;\n  class IfcDuctSegment extends IfcFlowSegment {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3518393246;\n    }\n  }\n  IFC42.IfcDuctSegment = IfcDuctSegment;\n  class IfcDuctSilencer extends IfcFlowTreatmentDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1360408905;\n    }\n  }\n  IFC42.IfcDuctSilencer = IfcDuctSilencer;\n  class IfcElectricAppliance extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1904799276;\n    }\n  }\n  IFC42.IfcElectricAppliance = IfcElectricAppliance;\n  class IfcElectricDistributionBoard extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 862014818;\n    }\n  }\n  IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard;\n  class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3310460725;\n    }\n  }\n  IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice;\n  class IfcElectricGenerator extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 264262732;\n    }\n  }\n  IFC42.IfcElectricGenerator = IfcElectricGenerator;\n  class IfcElectricMotor extends IfcEnergyConversionDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 402227799;\n    }\n  }\n  IFC42.IfcElectricMotor = IfcElectricMotor;\n  class IfcElectricTimeControl extends IfcFlowController {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1003880860;\n    }\n  }\n  IFC42.IfcElectricTimeControl = IfcElectricTimeControl;\n  class IfcFan extends IfcFlowMovingDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3415622556;\n    }\n  }\n  IFC42.IfcFan = IfcFan;\n  class IfcFilter extends IfcFlowTreatmentDevice {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 819412036;\n    }\n  }\n  IFC42.IfcFilter = IfcFilter;\n  class IfcFireSuppressionTerminal extends IfcFlowTerminal {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 1426591983;\n    }\n  }\n  IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal;\n  class IfcFlowInstrument extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 182646315;\n    }\n  }\n  IFC42.IfcFlowInstrument = IfcFlowInstrument;\n  class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 2295281155;\n    }\n  }\n  IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit;\n  class IfcSensor extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4086658281;\n    }\n  }\n  IFC42.IfcSensor = IfcSensor;\n  class IfcUnitaryControlElement extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 630975310;\n    }\n  }\n  IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement;\n  class IfcActuator extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 4288193352;\n    }\n  }\n  IFC42.IfcActuator = IfcActuator;\n  class IfcAlarm extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 3087945054;\n    }\n  }\n  IFC42.IfcAlarm = IfcAlarm;\n  class IfcController extends IfcDistributionControlElement {\n    constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n      super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n      this.GlobalId = GlobalId;\n      this.OwnerHistory = OwnerHistory;\n      this.Name = Name;\n      this.Description = Description;\n      this.ObjectType = ObjectType;\n      this.ObjectPlacement = ObjectPlacement;\n      this.Representation = Representation;\n      this.Tag = Tag;\n      this.PredefinedType = PredefinedType;\n      this.type = 25142252;\n    }\n  }\n  IFC42.IfcController = IfcController;\n})(IFC4 || (IFC4 = {}));\n\n// dist/helpers/properties.ts\nvar PropsNames$1 = {\n  aggregates: {\n    name: IFCRELAGGREGATES,\n    relating: \"RelatingObject\",\n    related: \"RelatedObjects\",\n    key: \"children\"\n  },\n  spatial: {\n    name: IFCRELCONTAINEDINSPATIALSTRUCTURE,\n    relating: \"RelatingStructure\",\n    related: \"RelatedElements\",\n    key: \"children\"\n  },\n  psets: {\n    name: IFCRELDEFINESBYPROPERTIES,\n    relating: \"RelatingPropertyDefinition\",\n    related: \"RelatedObjects\",\n    key: \"IsDefinedBy\"\n  },\n  materials: {\n    name: IFCRELASSOCIATESMATERIAL,\n    relating: \"RelatingMaterial\",\n    related: \"RelatedObjects\",\n    key: \"HasAssociations\"\n  },\n  type: {\n    name: IFCRELDEFINESBYTYPE,\n    relating: \"RelatingType\",\n    related: \"RelatedObjects\",\n    key: \"IsDefinedBy\"\n  }\n};\nvar Properties = class {\n  constructor(api) {\n    this.api = api;\n  }\n  getItemProperties(modelID, id, recursive = false, inverse = false) {\n    return __async(this, null, function* () {\n      return this.api.GetLine(modelID, id, recursive, inverse);\n    });\n  }\n  getPropertySets(modelID, elementID = 0, recursive = false) {\n    return __async(this, null, function* () {\n      return yield this.getRelatedProperties(modelID, elementID, PropsNames$1.psets, recursive);\n    });\n  }\n  setPropertySets(modelID, elementID, psetID) {\n    return __async(this, null, function* () {\n      return this.setItemProperties(modelID, elementID, psetID, PropsNames$1.psets);\n    });\n  }\n  getTypeProperties(modelID, elementID, recursive = false) {\n    return __async(this, null, function* () {\n      if (this.api.GetModelSchema(modelID) == \"IFX2X3\") {\n        return yield this.getRelatedProperties(modelID, elementID, PropsNames$1.type, recursive);\n      } else {\n        return yield this.getRelatedProperties(modelID, elementID, __spreadProps(__spreadValues({}, PropsNames$1.type), { key: \"IsTypedBy\" }), recursive);\n      }\n    });\n  }\n  getMaterialsProperties(modelID, elementID = 0, recursive = false) {\n    return __async(this, null, function* () {\n      return yield this.getRelatedProperties(modelID, elementID, PropsNames$1.materials, recursive);\n    });\n  }\n  setMaterialsProperties(modelID, elementID, materialID) {\n    return __async(this, null, function* () {\n      return this.setItemProperties(modelID, elementID, materialID, PropsNames$1.materials);\n    });\n  }\n  getSpatialStructure(modelID, includeProperties = false) {\n    return __async(this, null, function* () {\n      const chunks = yield this.getSpatialTreeChunks(modelID);\n      const allLines = yield this.api.GetLineIDsWithType(modelID, IFCPROJECT);\n      const projectID = allLines.get(0);\n      const project = Properties.newIfcProject(projectID);\n      yield this.getSpatialNode(modelID, project, chunks, includeProperties);\n      return project;\n    });\n  }\n  getRelatedProperties(modelID, elementID, propsName, recursive = false) {\n    return __async(this, null, function* () {\n      const result = [];\n      let rels = null;\n      if (elementID !== 0)\n        rels = yield this.api.GetLine(modelID, elementID, false, true)[propsName.key];\n      else {\n        let vec = this.api.GetLineIDsWithType(modelID, propsName.name);\n        rels = [];\n        for (let i = 0; i < vec.size(); ++i)\n          rels.push({ value: vec.get(i) });\n      }\n      if (rels == null)\n        return result;\n      if (!Array.isArray(rels))\n        rels = [rels];\n      for (let i = 0; i < rels.length; i++) {\n        let propSetIds = yield this.api.GetLine(modelID, rels[i].value, false, false)[propsName.relating];\n        if (propSetIds == null)\n          continue;\n        if (!Array.isArray(propSetIds))\n          propSetIds = [propSetIds];\n        for (let x = 0; x < propSetIds.length; x++) {\n          result.push(yield this.api.GetLine(modelID, propSetIds[x].value, recursive));\n        }\n      }\n      return result;\n    });\n  }\n  getChunks(modelID, chunks, propNames) {\n    return __async(this, null, function* () {\n      const relation = yield this.api.GetLineIDsWithType(modelID, propNames.name, true);\n      for (let i = 0; i < relation.size(); i++) {\n        const rel = yield this.api.GetLine(modelID, relation.get(i), false);\n        this.saveChunk(chunks, propNames, rel);\n      }\n    });\n  }\n  static newIfcProject(id) {\n    return {\n      expressID: id,\n      type: \"IFCPROJECT\",\n      children: []\n    };\n  }\n  getSpatialNode(modelID, node, treeChunks, includeProperties) {\n    return __async(this, null, function* () {\n      yield this.getChildren(modelID, node, treeChunks, PropsNames$1.aggregates, includeProperties);\n      yield this.getChildren(modelID, node, treeChunks, PropsNames$1.spatial, includeProperties);\n    });\n  }\n  getChildren(modelID, node, treeChunks, propNames, includeProperties) {\n    return __async(this, null, function* () {\n      const children = treeChunks[node.expressID];\n      if (children == void 0)\n        return;\n      const prop = propNames.key;\n      const nodes = [];\n      for (let i = 0; i < children.length; i++) {\n        const child = children[i];\n        let node2 = this.newNode(child, this.api.GetLineType(modelID, child));\n        if (includeProperties) {\n          const properties = yield this.getItemProperties(modelID, node2.expressID);\n          node2 = __spreadValues(__spreadValues({}, properties), node2);\n        }\n        yield this.getSpatialNode(modelID, node2, treeChunks, includeProperties);\n        nodes.push(node2);\n      }\n      node[prop] = nodes;\n    });\n  }\n  newNode(id, type) {\n    return {\n      expressID: id,\n      type: this.api.GetNameFromTypeCode(type),\n      children: []\n    };\n  }\n  getSpatialTreeChunks(modelID) {\n    return __async(this, null, function* () {\n      const treeChunks = {};\n      yield this.getChunks(modelID, treeChunks, PropsNames$1.aggregates);\n      yield this.getChunks(modelID, treeChunks, PropsNames$1.spatial);\n      return treeChunks;\n    });\n  }\n  saveChunk(chunks, propNames, rel) {\n    const relating = rel[propNames.relating].value;\n    const related = rel[propNames.related].map((r) => r.value);\n    if (chunks[relating] == void 0) {\n      chunks[relating] = related;\n    } else {\n      chunks[relating] = chunks[relating].concat(related);\n    }\n  }\n  setItemProperties(modelID, elementID, propID, propsName) {\n    return __async(this, null, function* () {\n      if (!Array.isArray(elementID))\n        elementID = [elementID];\n      if (!Array.isArray(propID))\n        propID = [propID];\n      let foundRel = 0;\n      const rels = [];\n      const elements = [];\n      for (const elID of elementID) {\n        const element = yield this.api.GetLine(modelID, elID, false, true);\n        if (!element[propsName.key])\n          continue;\n        elements.push(element);\n      }\n      if (elements.length < 1)\n        return false;\n      const relations = this.api.GetLineIDsWithType(modelID, propsName.name);\n      for (let i = 0; i < relations.size(); ++i) {\n        const rel = yield this.api.GetLine(modelID, relations.get(i));\n        if (propID.includes(Number(rel[propsName.relating].value))) {\n          rels.push(rel);\n          foundRel++;\n        }\n        if (foundRel == propID.length)\n          break;\n      }\n      for (const element of elements) {\n        for (const rel of rels) {\n          if (!element[propsName.key].some((e) => e.value === rel.expressID))\n            element[propsName.key].push({ type: 5, value: rel.expressID });\n          if (!rel[propsName.related].some((e) => e.value === element.expressID)) {\n            rel[propsName.related].push({ type: 5, value: element.expressID });\n            this.api.WriteLine(modelID, rel);\n          }\n        }\n        this.api.WriteLine(modelID, element);\n      }\n      return true;\n    });\n  }\n};\n\n// dist/helpers/log.ts\nvar LogLevel;\n(function(LogLevel2) {\n  LogLevel2[LogLevel2[\"LOG_LEVEL_DEBUG\"] = 0] = \"LOG_LEVEL_DEBUG\";\n  LogLevel2[LogLevel2[\"LOG_LEVEL_INFO\"] = 1] = \"LOG_LEVEL_INFO\";\n  LogLevel2[LogLevel2[\"LOG_LEVEL_WARN\"] = 2] = \"LOG_LEVEL_WARN\";\n  LogLevel2[LogLevel2[\"LOG_LEVEL_ERROR\"] = 3] = \"LOG_LEVEL_ERROR\";\n  LogLevel2[LogLevel2[\"LOG_LEVEL_OFF\"] = 4] = \"LOG_LEVEL_OFF\";\n})(LogLevel || (LogLevel = {}));\nvar Log = class {\n  static setLogLevel(level) {\n    this.logLevel = level;\n  }\n  static log(msg, ...args) {\n    if (this.logLevel <= 3) {\n      console.log(msg, ...args);\n    }\n  }\n  static debug(msg, ...args) {\n    if (this.logLevel <= 0) {\n      console.trace(\"DEBUG: \", msg, ...args);\n    }\n  }\n  static info(msg, ...args) {\n    if (this.logLevel <= 1) {\n      console.info(\"INFO: \", msg, ...args);\n    }\n  }\n  static warn(msg, ...args) {\n    if (this.logLevel <= 2) {\n      console.warn(\"WARN: \", msg, ...args);\n    }\n  }\n  static error(msg, ...args) {\n    if (this.logLevel <= 3) {\n      console.error(\"ERROR: \", msg, ...args);\n    }\n  }\n};\nLog.logLevel = 1;\n\n// dist/web-ifc-api.ts\nvar WebIFCWasm;\nif (typeof self !== \"undefined\" && self.crossOriginIsolated) {\n  try {\n    WebIFCWasm = require_web_ifc_mt();\n  } catch (ex) {\n    WebIFCWasm = require_web_ifc();\n  }\n} else {\n  WebIFCWasm = require_web_ifc();\n}\nvar STRING = 1;\nvar IfcAPI2 = class {\n  constructor() {\n    this.wasmModule = void 0;\n    this.wasmPath = \"\";\n    this.isWasmPathAbsolute = false;\n    this.modelSchemaList = [];\n    this.ifcGuidMap = new Map();\n    this.properties = new Properties(this);\n  }\n  Init(customLocateFileHandler) {\n    return __async(this, null, function* () {\n      if (WebIFCWasm) {\n        let locateFileHandler = (path, prefix) => {\n          if (path.endsWith(\".wasm\")) {\n            if (this.isWasmPathAbsolute) {\n              return this.wasmPath + path;\n            }\n            return prefix + this.wasmPath + path;\n          }\n          return prefix + path;\n        };\n        this.wasmModule = yield WebIFCWasm({ noInitialRun: true, locateFile: customLocateFileHandler || locateFileHandler });\n      } else {\n        Log.error(`Could not find wasm module at './web-ifc' from web-ifc-api.ts`);\n      }\n    });\n  }\n  OpenModels(dataSets, settings) {\n    let s = __spreadValues({\n      MEMORY_LIMIT: 3221225472\n    }, settings);\n    s.MEMORY_LIMIT = s.MEMORY_LIMIT / dataSets.length;\n    let modelIDs = [];\n    for (let dataSet of dataSets)\n      modelIDs.push(this.OpenModel(dataSet, s));\n    return modelIDs;\n  }\n  OpenModel(data, settings) {\n    let s = __spreadValues({\n      COORDINATE_TO_ORIGIN: false,\n      USE_FAST_BOOLS: true,\n      CIRCLE_SEGMENTS_LOW: 5,\n      CIRCLE_SEGMENTS_MEDIUM: 8,\n      CIRCLE_SEGMENTS_HIGH: 12,\n      BOOL_ABORT_THRESHOLD: 1e4,\n      TAPE_SIZE: 67108864,\n      MEMORY_LIMIT: 3221225472\n    }, settings);\n    let result = this.wasmModule.OpenModel(s, (destPtr, offsetInSrc, destSize) => {\n      let srcSize = Math.min(data.byteLength - offsetInSrc, destSize);\n      let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize);\n      let src = data.subarray(offsetInSrc, offsetInSrc + srcSize);\n      dest.set(src);\n      return srcSize;\n    });\n    this.modelSchemaList[result] = SchemaNames.indexOf(this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value);\n    Log.info(\"Parsing Model using \" + this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value + \" Schema\");\n    return result;\n  }\n  GetModelSchema(modelID) {\n    return SchemaNames[this.modelSchemaList[modelID]];\n  }\n  CreateModel(model, settings) {\n    var _a, _b, _c;\n    let s = __spreadValues({\n      COORDINATE_TO_ORIGIN: false,\n      USE_FAST_BOOLS: true,\n      CIRCLE_SEGMENTS_LOW: 5,\n      CIRCLE_SEGMENTS_MEDIUM: 8,\n      CIRCLE_SEGMENTS_HIGH: 12,\n      BOOL_ABORT_THRESHOLD: 1e4,\n      TAPE_SIZE: 67108864,\n      MEMORY_LIMIT: 3221225472\n    }, settings);\n    let result = this.wasmModule.CreateModel(s);\n    this.modelSchemaList[result] = SchemaNames.indexOf(model.schema);\n    const modelName = model.name || \"web-ifc-model-\" + result + \".ifc\";\n    const timestamp = new Date().toISOString().slice(0, 19);\n    const description = ((_a = model.description) == null ? void 0 : _a.map((d) => ({ type: STRING, value: d }))) || [{ type: STRING, value: \"ViewDefinition [CoordinationView]\" }];\n    const authors = ((_b = model.authors) == null ? void 0 : _b.map((a) => ({ type: STRING, value: a }))) || [null];\n    const orgs = ((_c = model.organizations) == null ? void 0 : _c.map((o) => ({ type: STRING, value: o }))) || [null];\n    const auth = model.authorization ? { type: STRING, value: model.authorization } : null;\n    this.wasmModule.WriteHeaderLine(result, FILE_DESCRIPTION, [\n      description,\n      { type: STRING, value: \"2;1\" }\n    ]);\n    this.wasmModule.WriteHeaderLine(result, FILE_NAME, [\n      { type: STRING, value: modelName },\n      { type: STRING, value: timestamp },\n      authors,\n      orgs,\n      { type: STRING, value: \"ifcjs/web-ifc-api\" },\n      { type: STRING, value: \"ifcjs/web-ifc-api\" },\n      auth\n    ]);\n    this.wasmModule.WriteHeaderLine(result, FILE_SCHEMA, [[{ type: STRING, value: model.schema }]]);\n    return result;\n  }\n  SaveModel(modelID) {\n    let modelSize = this.wasmModule.GetModelSize(modelID);\n    const headerBytes = 512;\n    let dataBuffer = new Uint8Array(modelSize + headerBytes);\n    let size = 0;\n    this.wasmModule.SaveModel(modelID, (srcPtr, srcSize) => {\n      let src = this.wasmModule.HEAPU8.subarray(srcPtr, srcPtr + srcSize);\n      size = srcSize;\n      dataBuffer.set(src, 0);\n    });\n    let newBuffer = new Uint8Array(size);\n    newBuffer.set(dataBuffer.subarray(0, size), 0);\n    return newBuffer;\n  }\n  ExportFileAsIFC(modelID) {\n    Log.warn(\"ExportFileAsIFC is deprecated, use SaveModel instead\");\n    return this.SaveModel(modelID);\n  }\n  GetGeometry(modelID, geometryExpressID) {\n    return this.wasmModule.GetGeometry(modelID, geometryExpressID);\n  }\n  GetHeaderLine(modelID, headerType) {\n    return this.wasmModule.GetHeaderLine(modelID, headerType);\n  }\n  GetAllTypesOfModel(modelID) {\n    let typesNames = [];\n    const elements = Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((e) => parseInt(e));\n    for (let i = 0; i < elements.length; i++) {\n      const lines = this.GetLineIDsWithType(modelID, elements[i]);\n      if (lines.size() > 0)\n        typesNames.push({ typeID: elements[i], typeName: this.wasmModule.GetNameFromTypeCode(elements[i]) });\n    }\n    return typesNames;\n  }\n  GetLine(modelID, expressID, flatten = false, inverse = false) {\n    let expressCheck = this.wasmModule.ValidateExpressID(modelID, expressID);\n    if (!expressCheck) {\n      return;\n    }\n    let rawLineData = this.GetRawLineData(modelID, expressID);\n    let lineData = FromRawLineData[this.modelSchemaList[modelID]][rawLineData.type](rawLineData.ID, rawLineData.arguments);\n    if (flatten) {\n      this.FlattenLine(modelID, lineData);\n    }\n    let inverseData = InversePropertyDef[this.modelSchemaList[modelID]][rawLineData.type];\n    if (inverse && inverseData != null) {\n      for (let inverseProp of inverseData) {\n        if (!inverseProp[3])\n          lineData[inverseProp[0]] = null;\n        else\n          lineData[inverseProp[0]] = [];\n        let targetTypes = [inverseProp[1]];\n        if (typeof InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]] != \"undefined\") {\n          targetTypes = targetTypes.concat(InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]]);\n        }\n        let inverseIDs = this.wasmModule.GetInversePropertyForItem(modelID, expressID, targetTypes, inverseProp[2], inverseProp[3]);\n        if (!inverseProp[3] && inverseIDs.size() > 0) {\n          if (!flatten)\n            lineData[inverseProp[0]] = { type: 5, value: inverseIDs.get(0) };\n          else\n            lineData[inverseProp[0]] = this.GetLine(modelID, inverseIDs.get(0));\n        } else {\n          for (let x = 0; x < inverseIDs.size(); x++) {\n            if (!flatten)\n              lineData[inverseProp[0]].push({ type: 5, value: inverseIDs.get(x) });\n            else\n              lineData[inverseProp[0]].push(this.GetLine(modelID, inverseIDs.get(x)));\n          }\n        }\n      }\n    }\n    return lineData;\n  }\n  GetNextExpressID(modelID, expressID) {\n    return this.wasmModule.GetNextExpressID(modelID, expressID);\n  }\n  GetAndClearErrors(modelID) {\n    return this.wasmModule.GetAndClearErrors(modelID);\n  }\n  CreateIfcEntity(modelID, type, ...args) {\n    return Constructors[this.modelSchemaList[modelID]][type](-1, args);\n  }\n  CreateIfcType(modelID, type, value) {\n    return TypeInitialisers[this.modelSchemaList[modelID]][type](value);\n  }\n  GetNameFromTypeCode(type) {\n    return this.wasmModule.GetNameFromTypeCode(type);\n  }\n  GetTypeCodeFromName(modelID, typeName) {\n    return this.wasmModule.GetTypeCodeFromName(modelID, typeName);\n  }\n  IsIfcElement(type) {\n    return this.wasmModule.IsIfcElement(type);\n  }\n  GetIfcEntityList(modelID) {\n    return Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((x) => parseInt(x));\n  }\n  WriteLine(modelID, lineObject) {\n    let property;\n    for (property in lineObject) {\n      const lineProperty = lineObject[property];\n      if (lineProperty && lineProperty.expressID !== void 0) {\n        this.WriteLine(modelID, lineProperty);\n        lineObject[property] = new Handle(lineProperty.expressID);\n      } else if (Array.isArray(lineProperty) && lineProperty.length > 0) {\n        for (let i = 0; i < lineProperty.length; i++) {\n          if (lineProperty[i].expressID !== void 0) {\n            this.WriteLine(modelID, lineProperty[i]);\n            lineObject[property][i] = new Handle(lineProperty[i].expressID);\n          }\n        }\n      }\n    }\n    if (lineObject.expressID === void 0 || lineObject.expressID < 0) {\n      lineObject.expressID = this.GetMaxExpressID(modelID) + 1;\n    }\n    let rawLineData = {\n      ID: lineObject.expressID,\n      type: lineObject.type,\n      arguments: ToRawLineData[this.modelSchemaList[modelID]][lineObject.type](lineObject)\n    };\n    this.WriteRawLineData(modelID, rawLineData);\n  }\n  FlattenLine(modelID, line) {\n    Object.keys(line).forEach((propertyName) => {\n      let property = line[propertyName];\n      if (property && property.type === 5) {\n        if (property.value)\n          line[propertyName] = this.GetLine(modelID, property.value, true);\n      } else if (Array.isArray(property) && property.length > 0 && property[0].type === 5) {\n        for (let i = 0; i < property.length; i++) {\n          if (property[i].value)\n            line[propertyName][i] = this.GetLine(modelID, property[i].value, true);\n        }\n      }\n    });\n  }\n  GetRawLineData(modelID, expressID) {\n    return this.wasmModule.GetLine(modelID, expressID);\n  }\n  WriteRawLineData(modelID, data) {\n    this.wasmModule.WriteLine(modelID, data.ID, data.type, data.arguments);\n  }\n  GetLineIDsWithType(modelID, type, includeInherited = false) {\n    let types = [];\n    types.push(type);\n    if (includeInherited && typeof InheritanceDef[this.modelSchemaList[modelID]][type] != \"undefined\") {\n      types = types.concat(InheritanceDef[this.modelSchemaList[modelID]][type]);\n    }\n    return this.wasmModule.GetLineIDsWithType(modelID, types);\n  }\n  GetAllLines(modelID) {\n    return this.wasmModule.GetAllLines(modelID);\n  }\n  SetGeometryTransformation(modelID, transformationMatrix) {\n    if (transformationMatrix.length != 16) {\n      throw new Error(`invalid matrix size: ${transformationMatrix.length}`);\n    }\n    this.wasmModule.SetGeometryTransformation(modelID, transformationMatrix);\n  }\n  GetCoordinationMatrix(modelID) {\n    return this.wasmModule.GetCoordinationMatrix(modelID);\n  }\n  GetVertexArray(ptr, size) {\n    return this.getSubArray(this.wasmModule.HEAPF32, ptr, size);\n  }\n  GetIndexArray(ptr, size) {\n    return this.getSubArray(this.wasmModule.HEAPU32, ptr, size);\n  }\n  getSubArray(heap, startPtr, sizeBytes) {\n    return heap.subarray(startPtr / 4, startPtr / 4 + sizeBytes).slice(0);\n  }\n  CloseModel(modelID) {\n    this.ifcGuidMap.delete(modelID);\n    this.wasmModule.CloseModel(modelID);\n  }\n  StreamAllMeshes(modelID, meshCallback) {\n    this.wasmModule.StreamAllMeshes(modelID, meshCallback);\n  }\n  StreamAllMeshesWithTypes(modelID, types, meshCallback) {\n    this.wasmModule.StreamAllMeshesWithTypes(modelID, types, meshCallback);\n  }\n  IsModelOpen(modelID) {\n    return this.wasmModule.IsModelOpen(modelID);\n  }\n  LoadAllGeometry(modelID) {\n    return this.wasmModule.LoadAllGeometry(modelID);\n  }\n  GetFlatMesh(modelID, expressID) {\n    return this.wasmModule.GetFlatMesh(modelID, expressID);\n  }\n  GetMaxExpressID(modelID) {\n    return this.wasmModule.GetMaxExpressID(modelID);\n  }\n  IncrementMaxExpressID(modelID, incrementSize) {\n    Log.warn(\"IncrementMaxExpressID is deprecated, use GetNextExpressID or GetMaxExpressID instead\");\n    return this.wasmModule.GetMaxExpressID(modelID) + incrementSize;\n  }\n  GetLineType(modelID, expressID) {\n    return this.wasmModule.GetLineType(modelID, expressID);\n  }\n  CreateIfcGuidToExpressIdMapping(modelID) {\n    const map = new Map();\n    let entities = this.GetIfcEntityList(modelID);\n    for (const typeId of entities) {\n      const lines = this.GetLineIDsWithType(modelID, typeId);\n      const size = lines.size();\n      for (let y = 0; y < size; y++) {\n        const expressID = lines.get(y);\n        const info = this.GetLine(modelID, expressID);\n        if (info.GlobalId == null) {\n          continue;\n        }\n        const globalID = info.GlobalId.value;\n        map.set(expressID, globalID);\n        map.set(globalID, expressID);\n      }\n    }\n    this.ifcGuidMap.set(modelID, map);\n  }\n  SetWasmPath(path, absolute = false) {\n    this.wasmPath = path;\n    this.isWasmPathAbsolute = absolute;\n  }\n  SetLogLevel(level) {\n    Log.setLogLevel(level);\n    this.wasmModule.SetLogLevel(level);\n  }\n};\n\nclass WebIfcWorker {\n    constructor(worker, serializer) {\n        this.worker = worker;\n        this.serializer = serializer;\n        this.API = WorkerAPIs.webIfc;\n        this.webIFC = new IfcAPI2();\n        this.worker.initializeAPI(this.webIFC);\n    }\n    async Init(data) {\n        await this.webIFC.Init();\n        this.worker.post(data);\n    }\n    ;\n    async Close(data) {\n        this.nullifyWebIfc();\n        this.webIFC = new IfcAPI2();\n        await this.webIFC.Init();\n        this.worker.post(data);\n    }\n    ;\n    async DisposeWebIfc(data) {\n        this.nullifyWebIfc();\n        this.worker.post(data);\n    }\n    CloseModel(data) {\n        this.webIFC.CloseModel(data.args.modelID);\n        this.worker.post(data);\n    }\n    CreateModel(data) {\n        data.result = this.webIFC.CreateModel(data.args.settings);\n        this.worker.post(data);\n    }\n    ExportFileAsIFC(data) {\n        data.result = this.webIFC.ExportFileAsIFC(data.args.modelID);\n        this.worker.post(data);\n    }\n    FlattenLine(data) {\n        this.webIFC.FlattenLine(data.args.modelID, data.args.line);\n        this.worker.post(data);\n    }\n    GetAllLines(data) {\n        const vector = this.webIFC.GetAllLines(data.args.modelID);\n        data.result = this.serializer.serializeVector(vector);\n        this.worker.post(data);\n    }\n    GetAndClearErrors(data) {\n        const vector = this.webIFC.GetAndClearErrors(data.args.modelID);\n        data.result = this.serializer.serializeVector(vector);\n        this.worker.post(data);\n    }\n    GetCoordinationMatrix(data) {\n        data.result = this.webIFC.GetCoordinationMatrix(data.args.modelID);\n        this.worker.post(data);\n    }\n    GetFlatMesh(data) {\n        const flatMesh = this.webIFC.GetFlatMesh(data.args.modelID, data.args.expressID);\n        data.result = this.serializer.serializeFlatMesh(flatMesh);\n        this.worker.post(data);\n    }\n    GetGeometry(data) {\n        const ifcGeometry = this.webIFC.GetGeometry(data.args.modelID, data.args.geometryExpressID);\n        data.result = this.serializer.serializeIfcGeometry(ifcGeometry);\n        this.worker.post(data);\n    }\n    GetIndexArray(data) {\n        data.result = this.webIFC.GetIndexArray(data.args.ptr, data.args.size);\n        this.worker.post(data);\n    }\n    GetLine(data) {\n        const args = data.args;\n        try {\n            data.result = this.webIFC.GetLine(args.modelID, args.expressID, args.flatten);\n        }\n        catch (e) {\n            console.log(`There was a problem getting the properties of the item ${args.expressID}`);\n            data.result = {};\n        }\n        this.worker.post(data);\n    }\n    GetLineIDsWithType(data) {\n        const vector = this.webIFC.GetLineIDsWithType(data.args.modelID, data.args.type);\n        data.result = this.serializer.serializeVector(vector);\n        this.worker.post(data);\n    }\n    GetRawLineData(data) {\n        data.result = this.webIFC.GetRawLineData(data.args.modelID, data.args.expressID);\n        this.worker.post(data);\n    }\n    GetVertexArray(data) {\n        data.result = this.webIFC.GetVertexArray(data.args.ptr, data.args.size);\n        this.worker.post(data);\n    }\n    IsModelOpen(data) {\n        data.result = this.webIFC.IsModelOpen(data.args.modelID);\n        this.worker.post(data);\n    }\n    LoadAllGeometry(data) {\n        const flatMeshVector = this.webIFC.LoadAllGeometry(data.args.modelID);\n        data.result = this.serializer.serializeFlatMeshVector(flatMeshVector);\n        this.worker.post(data);\n    }\n    OpenModel(data) {\n        data.result = this.webIFC.OpenModel(data.args.data, data.args.settings);\n        this.worker.post(data);\n    }\n    SetGeometryTransformation(data) {\n        this.webIFC.SetGeometryTransformation(data.args.modelID, data.args.transformationMatrix);\n        this.worker.post(data);\n    }\n    SetWasmPath(data) {\n        this.webIFC.SetWasmPath(data.args.path);\n        this.worker.post(data);\n    }\n    StreamAllMeshes(data) {\n        const serializer = this.serializer.serializeFlatMesh;\n        const callback = (result) => this.worker.postCallback(data, result, serializer);\n        this.webIFC.StreamAllMeshes(data.args.modelID, callback);\n    }\n    StreamAllMeshesWithTypes(data) {\n        const args = data.args;\n        const serializer = this.serializer.serializeFlatMesh;\n        const callback = (result) => this.worker.postCallback(data, result, serializer);\n        this.webIFC.StreamAllMeshesWithTypes(args.modelID, args.types, callback);\n    }\n    WriteLine(data) {\n        const modelID = data.args.modelID;\n        const serializedObject = data.args.lineObject;\n        const object = this.webIFC.GetLine(modelID, serializedObject.expressID);\n        Object.keys(serializedObject).forEach(propName => {\n            if (object[propName] !== undefined) {\n                object[propName] = serializedObject[propName];\n            }\n        });\n        this.webIFC.WriteLine(data.args.modelID, object);\n        this.worker.post(data);\n    }\n    WriteRawLineData(data) {\n        this.webIFC.WriteRawLineData(data.args.modelID, data.args.data);\n        this.worker.post(data);\n    }\n    getSubArray(data) {\n        const args = data.args;\n        this.webIFC.getSubArray(args.heap, args.startPtr, args.sizeBytes);\n        this.worker.post(data);\n    }\n    GetNameFromTypeCode(data) {\n        data.result = this.webIFC.GetNameFromTypeCode(data.args.modelID);\n        this.worker.post(data);\n    }\n    GetIfcEntityList(data) {\n        data.result = this.webIFC.GetIfcEntityList(data.args.modelID);\n        this.worker.post(data);\n    }\n    GetTypeCodeFromName(data) {\n        data.result = this.webIFC.GetTypeCodeFromName(data.args.modelID, data.args.typeName);\n        this.worker.post(data);\n    }\n    nullifyWebIfc() {\n        this.webIFC = null;\n    }\n}\n\nconst IdAttrName = 'expressID';\nconst PropsNames = {\n    aggregates: {\n        name: IFCRELAGGREGATES,\n        relating: 'RelatingObject',\n        related: 'RelatedObjects',\n        key: 'children'\n    },\n    spatial: {\n        name: IFCRELCONTAINEDINSPATIALSTRUCTURE,\n        relating: 'RelatingStructure',\n        related: 'RelatedElements',\n        key: 'children'\n    },\n    psets: {\n        name: IFCRELDEFINESBYPROPERTIES,\n        relating: 'RelatingPropertyDefinition',\n        related: 'RelatedObjects',\n        key: 'hasPsets'\n    },\n    materials: {\n        name: IFCRELASSOCIATESMATERIAL,\n        relating: 'RelatingMaterial',\n        related: 'RelatedObjects',\n        key: 'hasMaterial'\n    },\n    type: {\n        name: IFCRELDEFINESBYTYPE,\n        relating: 'RelatingType',\n        related: 'RelatedObjects',\n        key: 'hasType'\n    }\n};\n\nclass BasePropertyManager {\n    constructor(state) {\n        this.state = state;\n    }\n    async getPropertySets(modelID, elementID, recursive = false) {\n        return await this.getProperty(modelID, elementID, recursive, PropsNames.psets);\n    }\n    async getTypeProperties(modelID, elementID, recursive = false) {\n        return await this.getProperty(modelID, elementID, recursive, PropsNames.type);\n    }\n    async getMaterialsProperties(modelID, elementID, recursive = false) {\n        return await this.getProperty(modelID, elementID, recursive, PropsNames.materials);\n    }\n    async getSpatialNode(modelID, node, treeChunks, includeProperties) {\n        await this.getChildren(modelID, node, treeChunks, PropsNames.aggregates, includeProperties);\n        await this.getChildren(modelID, node, treeChunks, PropsNames.spatial, includeProperties);\n    }\n    async getChildren(modelID, node, treeChunks, propNames, includeProperties) {\n        const children = treeChunks[node.expressID];\n        if (children == undefined)\n            return;\n        const prop = propNames.key;\n        const nodes = [];\n        for (let i = 0; i < children.length; i++) {\n            const child = children[i];\n            let node = this.newNode(modelID, child);\n            if (includeProperties) {\n                const properties = await this.getItemProperties(modelID, node.expressID);\n                node = { ...properties, ...node };\n            }\n            await this.getSpatialNode(modelID, node, treeChunks, includeProperties);\n            nodes.push(node);\n        }\n        node[prop] = nodes;\n    }\n    newNode(modelID, id) {\n        const typeName = this.getNodeType(modelID, id);\n        return {\n            expressID: id,\n            type: typeName,\n            children: []\n        };\n    }\n    async getSpatialTreeChunks(modelID) {\n        const treeChunks = {};\n        await this.getChunks(modelID, treeChunks, PropsNames.aggregates);\n        await this.getChunks(modelID, treeChunks, PropsNames.spatial);\n        return treeChunks;\n    }\n    saveChunk(chunks, propNames, rel) {\n        const relating = rel[propNames.relating].value;\n        const related = rel[propNames.related].map((r) => r.value);\n        if (chunks[relating] == undefined) {\n            chunks[relating] = related;\n        }\n        else {\n            chunks[relating] = chunks[relating].concat(related);\n        }\n    }\n    getRelated(rel, propNames, IDs) {\n        const element = rel[propNames.relating];\n        if (!element) {\n            return console.warn(`The object with ID ${rel.expressID} has a broken reference.`);\n        }\n        if (!Array.isArray(element))\n            IDs.push(element.value);\n        else\n            element.forEach((ele) => IDs.push(ele.value));\n    }\n    static isRelated(id, rel, propNames) {\n        const relatedItems = rel[propNames.related];\n        if (Array.isArray(relatedItems)) {\n            const values = relatedItems.map((item) => item.value);\n            return values.includes(id);\n        }\n        return relatedItems.value === id;\n    }\n    static newIfcProject(id) {\n        return {\n            expressID: id,\n            type: 'IFCPROJECT',\n            children: []\n        };\n    }\n    async getProperty(modelID, elementID, recursive = false, propName) {\n    }\n    async getChunks(modelID, chunks, propNames) {\n    }\n    async getItemProperties(modelID, expressID, recursive = false) {\n    }\n    getNodeType(modelID, id) {\n    }\n}\n\nclass WebIfcPropertyManager extends BasePropertyManager {\n    async getItemProperties(modelID, id, recursive = false) {\n        return this.state.api.GetLine(modelID, id, recursive);\n    }\n    async getHeaderLine(modelID, headerType) {\n        return this.state.api.GetHeaderLine(modelID, headerType);\n    }\n    async getSpatialStructure(modelID, includeProperties) {\n        const chunks = await this.getSpatialTreeChunks(modelID);\n        const allLines = await this.state.api.GetLineIDsWithType(modelID, IFCPROJECT);\n        const projectID = allLines.get(0);\n        const project = WebIfcPropertyManager.newIfcProject(projectID);\n        await this.getSpatialNode(modelID, project, chunks, includeProperties);\n        return project;\n    }\n    async getAllItemsOfType(modelID, type, verbose) {\n        let items = [];\n        const lines = await this.state.api.GetLineIDsWithType(modelID, type);\n        for (let i = 0; i < lines.size(); i++)\n            items.push(lines.get(i));\n        if (!verbose)\n            return items;\n        const result = [];\n        for (let i = 0; i < items.length; i++) {\n            result.push(await this.state.api.GetLine(modelID, items[i]));\n        }\n        return result;\n    }\n    async getProperty(modelID, elementID, recursive = false, propName) {\n        const propSetIds = await this.getAllRelatedItemsOfType(modelID, elementID, propName);\n        const result = [];\n        for (let i = 0; i < propSetIds.length; i++) {\n            result.push(await this.state.api.GetLine(modelID, propSetIds[i], recursive));\n        }\n        return result;\n    }\n    getNodeType(modelID, id) {\n        const typeID = this.state.models[modelID].types[id];\n        return this.state.api.GetNameFromTypeCode(typeID);\n    }\n    async getChunks(modelID, chunks, propNames) {\n        const relation = await this.state.api.GetLineIDsWithType(modelID, propNames.name);\n        for (let i = 0; i < relation.size(); i++) {\n            const rel = await this.state.api.GetLine(modelID, relation.get(i), false);\n            this.saveChunk(chunks, propNames, rel);\n        }\n    }\n    async getAllRelatedItemsOfType(modelID, id, propNames) {\n        const lines = await this.state.api.GetLineIDsWithType(modelID, propNames.name);\n        const IDs = [];\n        for (let i = 0; i < lines.size(); i++) {\n            const rel = await this.state.api.GetLine(modelID, lines.get(i));\n            const isRelated = BasePropertyManager.isRelated(id, rel, propNames);\n            if (isRelated)\n                this.getRelated(rel, propNames, IDs);\n        }\n        return IDs;\n    }\n}\n\nclass JSONPropertyManager extends BasePropertyManager {\n    async getItemProperties(modelID, id, recursive = false) {\n        return { ...this.state.models[modelID].jsonData[id] };\n    }\n    async getHeaderLine(modelID) {\n        return {};\n    }\n    async getSpatialStructure(modelID, includeProperties) {\n        const chunks = await this.getSpatialTreeChunks(modelID);\n        const projectsIDs = await this.getAllItemsOfType(modelID, IFCPROJECT, false);\n        const projectID = projectsIDs[0];\n        const project = JSONPropertyManager.newIfcProject(projectID);\n        await this.getSpatialNode(modelID, project, chunks, includeProperties);\n        return { ...project };\n    }\n    async getAllItemsOfType(modelID, type, verbose) {\n        const data = this.state.models[modelID].jsonData;\n        const typeName = await this.state.api.GetNameFromTypeCode(type);\n        if (!typeName) {\n            throw new Error(`Type not found: ${type}`);\n        }\n        return this.filterItemsByType(data, typeName, verbose);\n    }\n    async getProperty(modelID, elementID, recursive = false, propName) {\n        const resultIDs = await this.getAllRelatedItemsOfType(modelID, elementID, propName);\n        const result = this.getItemsByID(modelID, resultIDs);\n        if (recursive) {\n            result.forEach(result => this.getReferencesRecursively(modelID, result));\n        }\n        return result;\n    }\n    getNodeType(modelID, id) {\n        return this.state.models[modelID].jsonData[id].type;\n    }\n    async getChunks(modelID, chunks, propNames) {\n        const relation = await this.getAllItemsOfType(modelID, propNames.name, true);\n        relation.forEach(rel => {\n            this.saveChunk(chunks, propNames, rel);\n        });\n    }\n    filterItemsByType(data, typeName, verbose) {\n        const result = [];\n        Object.keys(data).forEach(key => {\n            const numKey = parseInt(key);\n            if (data[numKey].type.toUpperCase() === typeName) {\n                result.push(verbose ? { ...data[numKey] } : numKey);\n            }\n        });\n        return result;\n    }\n    async getAllRelatedItemsOfType(modelID, id, propNames) {\n        const lines = await this.getAllItemsOfType(modelID, propNames.name, true);\n        const IDs = [];\n        lines.forEach(line => {\n            const isRelated = JSONPropertyManager.isRelated(id, line, propNames);\n            if (isRelated)\n                this.getRelated(line, propNames, IDs);\n        });\n        return IDs;\n    }\n    getItemsByID(modelID, ids) {\n        const data = this.state.models[modelID].jsonData;\n        const result = [];\n        ids.forEach(id => result.push({ ...data[id] }));\n        return result;\n    }\n    getReferencesRecursively(modelID, jsonObject) {\n        if (jsonObject == undefined)\n            return;\n        const keys = Object.keys(jsonObject);\n        for (let i = 0; i < keys.length; i++) {\n            const key = keys[i];\n            this.getJSONItem(modelID, jsonObject, key);\n        }\n    }\n    getJSONItem(modelID, jsonObject, key) {\n        if (Array.isArray(jsonObject[key])) {\n            return this.getMultipleJSONItems(modelID, jsonObject, key);\n        }\n        if (jsonObject[key] && jsonObject[key].type === 5) {\n            jsonObject[key] = this.getItemsByID(modelID, [jsonObject[key].value])[0];\n            this.getReferencesRecursively(modelID, jsonObject[key]);\n        }\n    }\n    getMultipleJSONItems(modelID, jsonObject, key) {\n        jsonObject[key] = jsonObject[key].map((item) => {\n            if (item.type === 5) {\n                item = this.getItemsByID(modelID, [item.value])[0];\n                this.getReferencesRecursively(modelID, item);\n            }\n            return item;\n        });\n    }\n}\n\nconst geometryTypes = new Set([\n    1123145078, 574549367, 1675464909, 2059837836, 3798115385, 32440307, 3125803723, 3207858831,\n    2740243338, 2624227202, 4240577450, 3615266464, 3724593414, 220341763, 477187591, 1878645084,\n    1300840506, 3303107099, 1607154358, 1878645084, 846575682, 1351298697, 2417041796, 3049322572,\n    3331915920, 1416205885, 776857604, 3285139300, 3958052878, 2827736869, 2732653382, 673634403,\n    3448662350, 4142052618, 2924175390, 803316827, 2556980723, 1809719519, 2205249479, 807026263,\n    3737207727, 1660063152, 2347385850, 3940055652, 2705031697, 3732776249, 2485617015, 2611217952,\n    1704287377, 2937912522, 2770003689, 1281925730, 1484403080, 3448662350, 4142052618, 3800577675,\n    4006246654, 3590301190, 1383045692, 2775532180, 2047409740, 370225590, 3593883385, 2665983363,\n    4124623270, 812098782, 3649129432, 987898635, 1105321065, 3510044353, 1635779807, 2603310189,\n    3406155212, 1310608509, 4261334040, 2736907675, 3649129432, 1136057603, 1260505505, 4182860854,\n    2713105998, 2898889636, 59481748, 3749851601, 3486308946, 3150382593, 1062206242, 3264961684,\n    15328376, 1485152156, 370225590, 1981873012, 2859738748, 45288368, 2614616156, 2732653382,\n    775493141, 2147822146, 2601014836, 2629017746, 1186437898, 2367409068, 1213902940, 3632507154,\n    3900360178, 476780140, 1472233963, 2804161546, 3008276851, 738692330, 374418227, 315944413,\n    3905492369, 3570813810, 2571569899, 178912537, 2294589976, 1437953363, 2133299955, 572779678,\n    3092502836, 388784114, 2624227202, 1425443689, 3057273783, 2347385850, 1682466193, 2519244187,\n    2839578677, 3958567839, 2513912981, 2830218821, 427810014\n]);\n\nclass PropertySerializer {\n    constructor(webIfc) {\n        this.webIfc = webIfc;\n    }\n    dispose() {\n        this.webIfc = null;\n    }\n    async serializeAllProperties(modelID, maxSize, event) {\n        const blobs = [];\n        await this.getPropertiesAsBlobs(modelID, blobs, maxSize, event);\n        return blobs;\n    }\n    async getPropertiesAsBlobs(modelID, blobs, maxSize, event) {\n        const geometriesIDs = await this.getAllGeometriesIDs(modelID);\n        let properties = await this.initializePropertiesObject(modelID);\n        const allLinesIDs = await this.webIfc.GetAllLines(modelID);\n        const linesCount = allLinesIDs.size();\n        let lastEvent = 0.1;\n        let counter = 0;\n        for (let i = 0; i < linesCount; i++) {\n            const id = allLinesIDs.get(i);\n            if (!geometriesIDs.has(id)) {\n                await this.getItemProperty(modelID, id, properties);\n                counter++;\n            }\n            if (maxSize && counter > maxSize) {\n                blobs.push(new Blob([JSON.stringify(properties)], { type: 'application/json' }));\n                properties = {};\n                counter = 0;\n            }\n            if (event && i / linesCount > lastEvent) {\n                event(i, linesCount);\n                lastEvent += 0.1;\n            }\n        }\n        blobs.push(new Blob([JSON.stringify(properties)], { type: 'application/json' }));\n    }\n    async getItemProperty(modelID, id, properties) {\n        try {\n            const props = await this.webIfc.GetLine(modelID, id);\n            if (props.type) {\n                props.type = this.webIfc.GetNameFromTypeCode(props.type);\n            }\n            this.formatItemProperties(props);\n            properties[id] = props;\n        }\n        catch (e) {\n            console.log(`There was a problem getting the properties of the item with ID ${id}`);\n        }\n    }\n    formatItemProperties(props) {\n        Object.keys(props).forEach((key) => {\n            const value = props[key];\n            if (value && value.value !== undefined)\n                props[key] = value.value;\n            else if (Array.isArray(value))\n                props[key] = value.map((item) => {\n                    if (item && item.value)\n                        return item.value;\n                    return item;\n                });\n        });\n    }\n    async initializePropertiesObject(modelID) {\n        return {\n            coordinationMatrix: await this.webIfc.GetCoordinationMatrix(modelID),\n            globalHeight: await this.getBuildingHeight(modelID)\n        };\n    }\n    async getBuildingHeight(modelID) {\n        const building = await this.getBuilding(modelID);\n        let placement;\n        const siteReference = building.ObjectPlacement.PlacementRelTo;\n        if (siteReference)\n            placement = siteReference.RelativePlacement.Location;\n        else\n            placement = building.ObjectPlacement.RelativePlacement.Location;\n        const transform = placement.Coordinates.map((coord) => coord.value);\n        return transform[2];\n    }\n    async getBuilding(modelID) {\n        const allBuildingsIDs = await this.webIfc.GetLineIDsWithType(modelID, IFCBUILDING);\n        const buildingID = allBuildingsIDs.get(0);\n        return this.webIfc.GetLine(modelID, buildingID, true);\n    }\n    async getAllGeometriesIDs(modelID) {\n        const geometriesIDs = new Set();\n        const geomTypesArray = Array.from(geometryTypes);\n        for (let i = 0; i < geomTypesArray.length; i++) {\n            const category = geomTypesArray[i];\n            const ids = await this.webIfc.GetLineIDsWithType(modelID, category);\n            const idsSize = ids.size();\n            for (let j = 0; j < idsSize; j++) {\n                geometriesIDs.add(ids.get(j));\n            }\n        }\n        return geometriesIDs;\n    }\n}\n\nclass PropertyManager {\n    constructor(state) {\n        this.state = state;\n        this.webIfcProps = new WebIfcPropertyManager(state);\n        this.jsonProps = new JSONPropertyManager(state);\n        this.currentProps = this.webIfcProps;\n        this.serializer = new PropertySerializer(this.state.api);\n    }\n    getExpressId(geometry, faceIndex) {\n        if (!geometry.index)\n            throw new Error('Geometry does not have index information.');\n        const geoIndex = geometry.index.array;\n        const bufferAttr = geometry.attributes[IdAttrName];\n        return bufferAttr.getX(geoIndex[3 * faceIndex]);\n    }\n    async getHeaderLine(modelID, headerType) {\n        this.updateCurrentProps();\n        return this.currentProps.getHeaderLine(modelID, headerType);\n    }\n    async getItemProperties(modelID, elementID, recursive = false) {\n        this.updateCurrentProps();\n        return this.currentProps.getItemProperties(modelID, elementID, recursive);\n    }\n    async getAllItemsOfType(modelID, type, verbose) {\n        this.updateCurrentProps();\n        return this.currentProps.getAllItemsOfType(modelID, type, verbose);\n    }\n    async getPropertySets(modelID, elementID, recursive = false) {\n        this.updateCurrentProps();\n        return this.currentProps.getPropertySets(modelID, elementID, recursive);\n    }\n    async getTypeProperties(modelID, elementID, recursive = false) {\n        this.updateCurrentProps();\n        return this.currentProps.getTypeProperties(modelID, elementID, recursive);\n    }\n    async getMaterialsProperties(modelID, elementID, recursive = false) {\n        this.updateCurrentProps();\n        return this.currentProps.getMaterialsProperties(modelID, elementID, recursive);\n    }\n    async getSpatialStructure(modelID, includeProperties) {\n        this.updateCurrentProps();\n        if (!this.state.useJSON && includeProperties) {\n            console.warn('Including properties in getSpatialStructure with the JSON workflow disabled can lead to poor performance.');\n        }\n        return await this.currentProps.getSpatialStructure(modelID, includeProperties);\n    }\n    updateCurrentProps() {\n        this.currentProps = this.state.useJSON ? this.jsonProps : this.webIfcProps;\n    }\n}\n\nclass PropertyWorker {\n    constructor(worker) {\n        this.worker = worker;\n        this.API = WorkerAPIs.properties;\n    }\n    initializeProperties() {\n        if (!this.properties) {\n            if (!this.worker.state)\n                throw new Error(ErrorRootStateNotAvailable);\n            this.properties = new PropertyManager(this.worker.state);\n        }\n    }\n    async getHeaderLine(data) {\n        this.initializeProperties();\n        if (!this.properties)\n            throw new Error(ErrorPropertiesNotAvailable);\n        const args = data.args;\n        data.result = await this.properties.getHeaderLine(args.modelID, args.headerType);\n        this.worker.post(data);\n    }\n    async getAllItemsOfType(data) {\n        this.initializeProperties();\n        if (!this.properties)\n            throw new Error(ErrorPropertiesNotAvailable);\n        const args = data.args;\n        data.result = await this.properties.getAllItemsOfType(args.modelID, args.type, args.verbose);\n        this.worker.post(data);\n    }\n    async getItemProperties(data) {\n        this.initializeProperties();\n        if (!this.properties)\n            throw new Error(ErrorPropertiesNotAvailable);\n        const args = data.args;\n        data.result = await this.properties.getItemProperties(args.modelID, args.elementID, args.recursive);\n        this.worker.post(data);\n    }\n    async getMaterialsProperties(data) {\n        this.initializeProperties();\n        if (!this.properties)\n            throw new Error(ErrorPropertiesNotAvailable);\n        const args = data.args;\n        data.result = await this.properties.getMaterialsProperties(args.modelID, args.elementID, args.recursive);\n        this.worker.post(data);\n    }\n    async getPropertySets(data) {\n        this.initializeProperties();\n        if (!this.properties)\n            throw new Error(ErrorPropertiesNotAvailable);\n        const args = data.args;\n        data.result = await this.properties.getPropertySets(args.modelID, args.elementID, args.recursive);\n        this.worker.post(data);\n    }\n    async getSpatialStructure(data) {\n        this.initializeProperties();\n        if (!this.properties)\n            throw new Error(ErrorPropertiesNotAvailable);\n        const args = data.args;\n        data.result = await this.properties.getSpatialStructure(args.modelID, args.includeProperties);\n        this.worker.post(data);\n    }\n    async getTypeProperties(data) {\n        this.initializeProperties();\n        if (!this.properties)\n            throw new Error(ErrorPropertiesNotAvailable);\n        const args = data.args;\n        data.result = await this.properties.getTypeProperties(args.modelID, args.elementID, args.recursive);\n        this.worker.post(data);\n    }\n}\n\nclass MemoryCleaner {\n    constructor(state) {\n        this.state = state;\n    }\n    async dispose() {\n        Object.keys(this.state.models).forEach(modelID => {\n            const model = this.state.models[parseInt(modelID, 10)];\n            model.mesh.removeFromParent();\n            const geom = model.mesh.geometry;\n            if (geom.disposeBoundsTree)\n                geom.disposeBoundsTree();\n            geom.dispose();\n            if (!Array.isArray(model.mesh.material))\n                model.mesh.material.dispose();\n            else\n                model.mesh.material.forEach(mat => mat.dispose());\n            model.mesh = null;\n            model.types = null;\n            model.jsonData = null;\n        });\n        this.state.api = null;\n        this.state.models = null;\n    }\n}\n\nclass StateWorker {\n    constructor(worker) {\n        this.worker = worker;\n        this.API = WorkerAPIs.workerState;\n    }\n    updateStateUseJson(data) {\n        if (!this.worker.state)\n            throw new Error(ErrorRootStateNotAvailable);\n        this.worker.state.useJSON = data.args.useJson;\n        this.worker.post(data);\n    }\n    updateStateWebIfcSettings(data) {\n        if (!this.worker.state)\n            throw new Error(ErrorRootStateNotAvailable);\n        this.worker.state.webIfcSettings = data.args.webIfcSettings;\n        this.worker.post(data);\n    }\n    updateModelStateJsonData(data) {\n        if (!this.worker.state)\n            throw new Error(ErrorRootStateNotAvailable);\n        const model = this.getModel(data);\n        model.jsonData = data.args.jsonData;\n        this.worker.post(data);\n    }\n    updateModelStateTypes(data) {\n        if (!this.worker.state)\n            throw new Error(ErrorRootStateNotAvailable);\n        const model = this.getModel(data);\n        model.types = data.args.types;\n        this.worker.post(data);\n    }\n    async dispose(data) {\n        if (!this.worker.state)\n            throw new Error(\"Error: no state was found in the worker\");\n        if (!this.cleaner)\n            this.cleaner = new MemoryCleaner(this.worker.state);\n        await this.cleaner.dispose();\n        this.worker.post(data);\n    }\n    async loadJsonDataFromWorker(data) {\n        if (!this.worker.state)\n            throw new Error(ErrorRootStateNotAvailable);\n        const currentModel = this.getModel(data);\n        const file = await fetch(data.args.path);\n        if (!file.ok)\n            throw new Error(ErrorBadJsonPath);\n        const json = await file.json();\n        if (typeof json !== 'object')\n            throw new Error(ErrorBadJson);\n        currentModel.jsonData = json;\n        this.worker.post(data);\n    }\n    getModel(data) {\n        if (!this.worker.state)\n            throw new Error(ErrorRootStateNotAvailable);\n        const modelID = data.args.modelID;\n        if (!this.worker.state.models[modelID]) {\n            this.worker.state.models[modelID] = { modelID, mesh: {}, types: {}, jsonData: {} };\n        }\n        return this.worker.state.models[modelID];\n    }\n}\n\n/**\n * @param  {Array<BufferGeometry>} geometries\n * @param  {Boolean} useGroups\n * @return {BufferGeometry}\n */\nfunction mergeBufferGeometries( geometries, useGroups = false ) {\n\n\tconst isIndexed = geometries[ 0 ].index !== null;\n\n\tconst attributesUsed = new Set( Object.keys( geometries[ 0 ].attributes ) );\n\tconst morphAttributesUsed = new Set( Object.keys( geometries[ 0 ].morphAttributes ) );\n\n\tconst attributes = {};\n\tconst morphAttributes = {};\n\n\tconst morphTargetsRelative = geometries[ 0 ].morphTargetsRelative;\n\n\tconst mergedGeometry = new BufferGeometry();\n\n\tlet offset = 0;\n\n\tfor ( let i = 0; i < geometries.length; ++ i ) {\n\n\t\tconst geometry = geometries[ i ];\n\t\tlet attributesCount = 0;\n\n\t\t// ensure that all geometries are indexed, or none\n\n\t\tif ( isIndexed !== ( geometry.index !== null ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// gather attributes, exit early if they're different\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tif ( ! attributesUsed.has( name ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure \"' + name + '\" attribute exists among all geometries, or in none of them.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tif ( attributes[ name ] === undefined ) attributes[ name ] = [];\n\n\t\t\tattributes[ name ].push( geometry.attributes[ name ] );\n\n\t\t\tattributesCount ++;\n\n\t\t}\n\n\t\t// ensure geometries have the same number of attributes\n\n\t\tif ( attributesCount !== attributesUsed.size ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. Make sure all geometries have the same number of attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// gather morph attributes, exit early if they're different\n\n\t\tif ( morphTargetsRelative !== geometry.morphTargetsRelative ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tfor ( const name in geometry.morphAttributes ) {\n\n\t\t\tif ( ! morphAttributesUsed.has( name ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '.  .morphAttributes must be consistent throughout all geometries.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tif ( morphAttributes[ name ] === undefined ) morphAttributes[ name ] = [];\n\n\t\t\tmorphAttributes[ name ].push( geometry.morphAttributes[ name ] );\n\n\t\t}\n\n\t\tif ( useGroups ) {\n\n\t\t\tlet count;\n\n\t\t\tif ( isIndexed ) {\n\n\t\t\t\tcount = geometry.index.count;\n\n\t\t\t} else if ( geometry.attributes.position !== undefined ) {\n\n\t\t\t\tcount = geometry.attributes.position.count;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tmergedGeometry.addGroup( offset, count, i );\n\n\t\t\toffset += count;\n\n\t\t}\n\n\t}\n\n\t// merge indices\n\n\tif ( isIndexed ) {\n\n\t\tlet indexOffset = 0;\n\t\tconst mergedIndex = [];\n\n\t\tfor ( let i = 0; i < geometries.length; ++ i ) {\n\n\t\t\tconst index = geometries[ i ].index;\n\n\t\t\tfor ( let j = 0; j < index.count; ++ j ) {\n\n\t\t\t\tmergedIndex.push( index.getX( j ) + indexOffset );\n\n\t\t\t}\n\n\t\t\tindexOffset += geometries[ i ].attributes.position.count;\n\n\t\t}\n\n\t\tmergedGeometry.setIndex( mergedIndex );\n\n\t}\n\n\t// merge attributes\n\n\tfor ( const name in attributes ) {\n\n\t\tconst mergedAttribute = mergeBufferAttributes( attributes[ name ] );\n\n\t\tif ( ! mergedAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' attribute.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tmergedGeometry.setAttribute( name, mergedAttribute );\n\n\t}\n\n\t// merge morph attributes\n\n\tfor ( const name in morphAttributes ) {\n\n\t\tconst numMorphTargets = morphAttributes[ name ][ 0 ].length;\n\n\t\tif ( numMorphTargets === 0 ) break;\n\n\t\tmergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {};\n\t\tmergedGeometry.morphAttributes[ name ] = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; ++ i ) {\n\n\t\t\tconst morphAttributesToMerge = [];\n\n\t\t\tfor ( let j = 0; j < morphAttributes[ name ].length; ++ j ) {\n\n\t\t\t\tmorphAttributesToMerge.push( morphAttributes[ name ][ j ][ i ] );\n\n\t\t\t}\n\n\t\t\tconst mergedMorphAttribute = mergeBufferAttributes( morphAttributesToMerge );\n\n\t\t\tif ( ! mergedMorphAttribute ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' morphAttribute.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tmergedGeometry.morphAttributes[ name ].push( mergedMorphAttribute );\n\n\t\t}\n\n\t}\n\n\treturn mergedGeometry;\n\n}\n\n/**\n * @param {Array<BufferAttribute>} attributes\n * @return {BufferAttribute}\n */\nfunction mergeBufferAttributes( attributes ) {\n\n\tlet TypedArray;\n\tlet itemSize;\n\tlet normalized;\n\tlet arrayLength = 0;\n\n\tfor ( let i = 0; i < attributes.length; ++ i ) {\n\n\t\tconst attribute = attributes[ i ];\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( TypedArray === undefined ) TypedArray = attribute.array.constructor;\n\t\tif ( TypedArray !== attribute.array.constructor ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( itemSize === undefined ) itemSize = attribute.itemSize;\n\t\tif ( itemSize !== attribute.itemSize ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( normalized === undefined ) normalized = attribute.normalized;\n\t\tif ( normalized !== attribute.normalized ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tarrayLength += attribute.array.length;\n\n\t}\n\n\tconst array = new TypedArray( arrayLength );\n\tlet offset = 0;\n\n\tfor ( let i = 0; i < attributes.length; ++ i ) {\n\n\t\tarray.set( attributes[ i ].array, offset );\n\n\t\toffset += attributes[ i ].array.length;\n\n\t}\n\n\treturn new BufferAttribute( array, itemSize, normalized );\n\n}\n\nclass IFCParser {\n    constructor(state, BVH) {\n        this.state = state;\n        this.BVH = BVH;\n        this.loadedModels = 0;\n        this.optionalCategories = {\n            [IFCSPACE]: true,\n            [IFCOPENINGELEMENT]: false\n        };\n        this.geometriesByMaterials = {};\n        this.loadingState = {\n            total: 0,\n            current: 0,\n            step: 0.1\n        };\n        this.currentWebIfcID = -1;\n        this.currentModelID = -1;\n    }\n    async setupOptionalCategories(config) {\n        this.optionalCategories = config;\n    }\n    async parse(buffer, coordinationMatrix) {\n        if (this.state.api.wasmModule === undefined)\n            await this.state.api.Init();\n        await this.newIfcModel(buffer);\n        this.loadedModels++;\n        if (coordinationMatrix) {\n            await this.state.api.SetGeometryTransformation(this.currentWebIfcID, coordinationMatrix);\n        }\n        return this.loadAllGeometry(this.currentWebIfcID);\n    }\n    getAndClearErrors(_modelId) {\n    }\n    notifyProgress(loaded, total) {\n        if (this.state.onProgress)\n            this.state.onProgress({ loaded, total });\n    }\n    async newIfcModel(buffer) {\n        const data = new Uint8Array(buffer);\n        this.currentWebIfcID = await this.state.api.OpenModel(data, this.state.webIfcSettings);\n        this.currentModelID = this.state.useJSON ? this.loadedModels : this.currentWebIfcID;\n        this.state.models[this.currentModelID] = {\n            modelID: this.currentModelID,\n            mesh: {},\n            types: {},\n            jsonData: {}\n        };\n    }\n    async loadAllGeometry(modelID) {\n        this.addOptionalCategories(modelID);\n        await this.initializeLoadingState(modelID);\n        this.state.api.StreamAllMeshes(modelID, (mesh) => {\n            this.updateLoadingState();\n            this.streamMesh(modelID, mesh);\n        });\n        this.notifyLoadingEnded();\n        const geometries = [];\n        const materials = [];\n        Object.keys(this.geometriesByMaterials).forEach((key) => {\n            const geometriesByMaterial = this.geometriesByMaterials[key].geometries;\n            const merged = mergeBufferGeometries(geometriesByMaterial);\n            materials.push(this.geometriesByMaterials[key].material);\n            geometries.push(merged);\n        });\n        const combinedGeometry = mergeBufferGeometries(geometries, true);\n        this.cleanUpGeometryMemory(geometries);\n        if (this.BVH)\n            this.BVH.applyThreeMeshBVH(combinedGeometry);\n        const model = new IFCModel(combinedGeometry, materials);\n        this.state.models[this.currentModelID].mesh = model;\n        return model;\n    }\n    async initializeLoadingState(modelID) {\n        const shapes = await this.state.api.GetLineIDsWithType(modelID, IFCPRODUCTDEFINITIONSHAPE);\n        this.loadingState.total = shapes.size();\n        this.loadingState.current = 0;\n        this.loadingState.step = 0.1;\n    }\n    notifyLoadingEnded() {\n        this.notifyProgress(this.loadingState.total, this.loadingState.total);\n    }\n    updateLoadingState() {\n        const realCurrentItem = Math.min(this.loadingState.current++, this.loadingState.total);\n        if (realCurrentItem / this.loadingState.total >= this.loadingState.step) {\n            const currentProgress = Math.ceil(this.loadingState.total * this.loadingState.step);\n            this.notifyProgress(currentProgress, this.loadingState.total);\n            this.loadingState.step += 0.1;\n        }\n    }\n    addOptionalCategories(modelID) {\n        const optionalTypes = [];\n        for (let key in this.optionalCategories) {\n            if (this.optionalCategories.hasOwnProperty(key)) {\n                const category = parseInt(key);\n                if (this.optionalCategories[category])\n                    optionalTypes.push(category);\n            }\n        }\n        this.state.api.StreamAllMeshesWithTypes(this.currentWebIfcID, optionalTypes, (mesh) => {\n            this.streamMesh(modelID, mesh);\n        });\n    }\n    streamMesh(modelID, mesh) {\n        const placedGeometries = mesh.geometries;\n        const size = placedGeometries.size();\n        for (let i = 0; i < size; i++) {\n            const placedGeometry = placedGeometries.get(i);\n            let itemMesh = this.getPlacedGeometry(modelID, mesh.expressID, placedGeometry);\n            let geom = itemMesh.geometry.applyMatrix4(itemMesh.matrix);\n            this.storeGeometryByMaterial(placedGeometry.color, geom);\n        }\n    }\n    getPlacedGeometry(modelID, expressID, placedGeometry) {\n        const geometry = this.getBufferGeometry(modelID, expressID, placedGeometry);\n        const mesh = new Mesh(geometry);\n        mesh.matrix = this.getMeshMatrix(placedGeometry.flatTransformation);\n        mesh.matrixAutoUpdate = false;\n        return mesh;\n    }\n    getBufferGeometry(modelID, expressID, placedGeometry) {\n        const geometry = this.state.api.GetGeometry(modelID, placedGeometry.geometryExpressID);\n        const verts = this.state.api.GetVertexArray(geometry.GetVertexData(), geometry.GetVertexDataSize());\n        const indices = this.state.api.GetIndexArray(geometry.GetIndexData(), geometry.GetIndexDataSize());\n        const buffer = this.ifcGeometryToBuffer(expressID, verts, indices);\n        geometry.delete();\n        return buffer;\n    }\n    storeGeometryByMaterial(color, geometry) {\n        let colID = `${color.x}${color.y}${color.z}${color.w}`;\n        if (this.geometriesByMaterials[colID]) {\n            this.geometriesByMaterials[colID].geometries.push(geometry);\n            return;\n        }\n        const col = new Color().setRGB(color.x, color.y, color.z, 'srgb');\n        const material = new MeshLambertMaterial({ color: col, side: DoubleSide });\n        material.transparent = color.w !== 1;\n        if (material.transparent)\n            material.opacity = color.w;\n        this.geometriesByMaterials[colID] = { material, geometries: [geometry] };\n    }\n    getMeshMatrix(matrix) {\n        const mat = new Matrix4();\n        mat.fromArray(matrix);\n        return mat;\n    }\n    ifcGeometryToBuffer(expressID, vertexData, indexData) {\n        const geometry = new BufferGeometry();\n        const posFloats = new Float32Array(vertexData.length / 2);\n        const normFloats = new Float32Array(vertexData.length / 2);\n        const idAttribute = new Uint32Array(vertexData.length / 6);\n        for (let i = 0; i < vertexData.length; i += 6) {\n            posFloats[i / 2] = vertexData[i];\n            posFloats[i / 2 + 1] = vertexData[i + 1];\n            posFloats[i / 2 + 2] = vertexData[i + 2];\n            normFloats[i / 2] = vertexData[i + 3];\n            normFloats[i / 2 + 1] = vertexData[i + 4];\n            normFloats[i / 2 + 2] = vertexData[i + 5];\n            idAttribute[i / 6] = expressID;\n        }\n        geometry.setAttribute('position', new BufferAttribute(posFloats, 3));\n        geometry.setAttribute('normal', new BufferAttribute(normFloats, 3));\n        geometry.setAttribute('expressID', new BufferAttribute(idAttribute, 1));\n        geometry.setIndex(new BufferAttribute(indexData, 1));\n        return geometry;\n    }\n    cleanUpGeometryMemory(geometries) {\n        geometries.forEach(geometry => geometry.dispose());\n        Object.keys(this.geometriesByMaterials).forEach((materialID) => {\n            const geometriesByMaterial = this.geometriesByMaterials[materialID];\n            geometriesByMaterial.geometries.forEach(geometry => geometry.dispose());\n            geometriesByMaterial.geometries = [];\n            geometriesByMaterial.material = null;\n        });\n        this.geometriesByMaterials = {};\n    }\n}\n\nvar DBOperation;\n(function (DBOperation) {\n    DBOperation[DBOperation[\"transferIfcModel\"] = 0] = \"transferIfcModel\";\n    DBOperation[DBOperation[\"transferIndividualItems\"] = 1] = \"transferIndividualItems\";\n})(DBOperation || (DBOperation = {}));\nclass IndexedDatabase {\n    async save(item, id) {\n        const open = IndexedDatabase.openOrCreateDB(id);\n        this.createSchema(open, id);\n        return new Promise((resolve, reject) => {\n            open.onsuccess = () => this.saveItem(item, open, id, resolve);\n        });\n    }\n    async load(id) {\n        const open = IndexedDatabase.openOrCreateDB(id);\n        return new Promise((resolve, reject) => {\n            open.onsuccess = () => this.loadItem(open, id, resolve);\n        });\n    }\n    createSchema(open, id) {\n        open.onupgradeneeded = function () {\n            const db = open.result;\n            db.createObjectStore(id.toString(), { keyPath: \"id\" });\n        };\n    }\n    saveItem(item, open, id, resolve) {\n        const { db, tx, store } = IndexedDatabase.getDBItems(open, id);\n        item.id = id;\n        store.put(item);\n        tx.oncomplete = () => IndexedDatabase.closeDB(db, tx, resolve);\n    }\n    loadItem(open, id, resolve) {\n        const { db, tx, store } = IndexedDatabase.getDBItems(open, id);\n        const item = store.get(id);\n        const callback = () => {\n            delete item.result.id;\n            resolve(item.result);\n        };\n        tx.oncomplete = () => IndexedDatabase.closeDB(db, tx, callback);\n    }\n    static getDBItems(open, id) {\n        const db = open.result;\n        const tx = db.transaction(id.toString(), \"readwrite\");\n        const store = tx.objectStore(id.toString());\n        return { db, tx, store };\n    }\n    static openOrCreateDB(id) {\n        return indexedDB.open(id.toString(), 1);\n    }\n    static closeDB(db, tx, resolve) {\n        db.close();\n        resolve(\"success\");\n    }\n}\n\nclass ParserWorker {\n    constructor(worker, serializer, IDB) {\n        this.worker = worker;\n        this.serializer = serializer;\n        this.IDB = IDB;\n        this.API = WorkerAPIs.parser;\n    }\n    initializeParser() {\n        if (!this.parser) {\n            if (!this.worker.state)\n                throw new Error(ErrorRootStateNotAvailable);\n            this.parser = new IFCParser(this.worker.state);\n        }\n    }\n    setupOptionalCategories(data) {\n        this.initializeParser();\n        if (this.parser === undefined)\n            throw new Error(ErrorParserNotAvailable);\n        this.parser.setupOptionalCategories(data.args.config);\n        this.worker.post(data);\n    }\n    async parse(data) {\n        this.initializeParser();\n        if (this.parser === undefined)\n            throw new Error(ErrorParserNotAvailable);\n        if (this.worker.state)\n            this.worker.state.onProgress = (event) => this.onProgress(event, data);\n        const serializedIfcModel = await this.getResponse(data);\n        await this.IDB.save(serializedIfcModel, DBOperation.transferIfcModel);\n        this.worker.post(data);\n    }\n    onProgress(event, data) {\n        this.worker.post({ ...data, onProgress: true, result: event });\n    }\n    async getResponse(data) {\n        if (!this.parser)\n            throw new Error(ErrorParserNotAvailable);\n        const ifcModel = await this.parser.parse(data.args.buffer, data.args.coordinationMatrix);\n        const serializedIfcModel = this.serializer.serializeIfcModel(ifcModel);\n        this.cleanUpGeometries(ifcModel);\n        data.result = { modelID: ifcModel.modelID };\n        return serializedIfcModel;\n    }\n    cleanUpGeometries(model) {\n        model.geometry.dispose();\n        if (Array.isArray(model.material))\n            model.material.forEach(mat => mat.dispose());\n        else\n            model.material.dispose();\n    }\n}\n\nclass IFCWorker {\n    constructor() {\n        this.serializer = new Serializer();\n        this.IDB = new IndexedDatabase();\n        this.workerState = new StateWorker(this);\n        this.webIfc = new WebIfcWorker(this, this.serializer);\n        this.properties = new PropertyWorker(this);\n        this.parser = new ParserWorker(this, this.serializer, this.IDB);\n    }\n    initializeAPI(api) {\n        this.state = {\n            models: [],\n            api,\n            useJSON: false,\n            worker: { active: false, path: '' }\n        };\n    }\n    post(data) {\n        self.postMessage(data);\n    }\n    postCallback(data, result, serializer) {\n        data.result = serializer ? serializer(result) : result;\n        this.post(data);\n    }\n}\nconst ifcWorker = new IFCWorker();\nself.onmessage = async (event) => {\n    const data = event.data;\n    const { worker, action } = data;\n    checkRequestIsValid(worker, action);\n    const requestedWorker = ifcWorker[worker];\n    requestedWorker[action](data);\n};\nfunction checkRequestIsValid(worker, action) {\n    if (!ifcWorker[worker]) {\n        throw new Error(`The worker ${worker} does not exist.`);\n    }\n    const requestedWorker = ifcWorker[worker];\n    if (!requestedWorker[action]) {\n        throw new Error(`The action ${action} does not exist in the worker ${worker}.`);\n    }\n}\n//# sourceMappingURL=IFCWorker.js.map\n"
  },
  {
    "path": "packages/sdk/public/resource/luts/Bourbon 64.CUBE",
    "content": "#Created by: Adobe Photoshop Export Color Lookup Plugin\n#Copyright: (C) Copyright 2017 RocketStock\nTITLE \"Warm\"\n\n#LUT size\nLUT_3D_SIZE 32\n\n#data domain\nDOMAIN_MIN 0.0 0.0 0.0\nDOMAIN_MAX 1.0 1.0 1.0\n\n#LUT data points\n0.038818 0.000000 0.065033\n0.060364 0.000610 0.064850\n0.082916 0.001251 0.064636\n0.106476 0.001923 0.064484\n0.131226 0.002625 0.064270\n0.157196 0.003326 0.063995\n0.184662 0.004120 0.063812\n0.213654 0.004883 0.063538\n0.244507 0.005676 0.063232\n0.277344 0.006561 0.062897\n0.312256 0.007416 0.062592\n0.349243 0.008331 0.062256\n0.388153 0.009247 0.061920\n0.428619 0.010193 0.061554\n0.470520 0.011200 0.061157\n0.513611 0.012177 0.060791\n0.557220 0.013214 0.060364\n0.599731 0.014252 0.059998\n0.640564 0.015320 0.059540\n0.679230 0.016449 0.059082\n0.715546 0.017548 0.058624\n0.749054 0.018707 0.058197\n0.779694 0.019867 0.057709\n0.807495 0.021088 0.057220\n0.832703 0.022247 0.056763\n0.855652 0.023468 0.056274\n0.876495 0.024780 0.055756\n0.895508 0.026001 0.055237\n0.912781 0.027313 0.054718\n0.928528 0.028595 0.054230\n0.942902 0.029938 0.053711\n0.955872 0.031281 0.053162\n0.040009 0.020721 0.064636\n0.061707 0.021454 0.064484\n0.084320 0.022125 0.064301\n0.108063 0.022919 0.064026\n0.132904 0.023682 0.063812\n0.159088 0.024536 0.063538\n0.186707 0.025330 0.063263\n0.215942 0.026245 0.062927\n0.246979 0.027161 0.062622\n0.280060 0.028076 0.062256\n0.315247 0.029022 0.061920\n0.352417 0.030029 0.061554\n0.391541 0.031036 0.061157\n0.432251 0.032074 0.060791\n0.474365 0.033142 0.060364\n0.517517 0.034210 0.060028\n0.561279 0.035339 0.059570\n0.603729 0.036499 0.059082\n0.644348 0.037628 0.058655\n0.682953 0.038849 0.058228\n0.719025 0.040070 0.057709\n0.752319 0.041260 0.057251\n0.782715 0.042511 0.056793\n0.810272 0.043823 0.056274\n0.835266 0.045105 0.055786\n0.858002 0.046448 0.055267\n0.878693 0.047791 0.054718\n0.897522 0.049133 0.054230\n0.914673 0.050507 0.053711\n0.930237 0.051910 0.053162\n0.944458 0.053314 0.052673\n0.957306 0.054749 0.052094\n0.041290 0.042450 0.064301\n0.063141 0.043243 0.064026\n0.085876 0.044037 0.063812\n0.109711 0.044891 0.063538\n0.134735 0.045776 0.063263\n0.161072 0.046661 0.062927\n0.188904 0.047638 0.062622\n0.218323 0.048584 0.062286\n0.249573 0.049591 0.061951\n0.282867 0.050629 0.061554\n0.318298 0.051666 0.061188\n0.355774 0.052734 0.060822\n0.395172 0.053833 0.060394\n0.436035 0.054962 0.060028\n0.478363 0.056152 0.059570\n0.521759 0.057281 0.059113\n0.565491 0.058502 0.058655\n0.607849 0.059753 0.058228\n0.648438 0.061005 0.057739\n0.686737 0.062286 0.057251\n0.722656 0.063629 0.056793\n0.755707 0.064941 0.056305\n0.785797 0.066284 0.055786\n0.813141 0.067688 0.055267\n0.837891 0.069061 0.054749\n0.860413 0.070465 0.054260\n0.880890 0.071899 0.053741\n0.899506 0.073364 0.053162\n0.916534 0.074860 0.052673\n0.931976 0.076355 0.052124\n0.945984 0.077820 0.051605\n0.958710 0.079376 0.051056\n0.042725 0.065186 0.063812\n0.064636 0.066101 0.063538\n0.087555 0.066986 0.063263\n0.111511 0.067932 0.062958\n0.136719 0.068878 0.062653\n0.163208 0.069885 0.062317\n0.191193 0.070923 0.061951\n0.220825 0.072021 0.061584\n0.252380 0.073120 0.061188\n0.285950 0.074249 0.060822\n0.321655 0.075378 0.060394\n0.359314 0.076569 0.060028\n0.398895 0.077759 0.059570\n0.440002 0.078979 0.059143\n0.482513 0.080261 0.058685\n0.526031 0.081512 0.058258\n0.569794 0.082855 0.057770\n0.612122 0.084198 0.057281\n0.652466 0.085541 0.056824\n0.690674 0.086945 0.056305\n0.726318 0.088379 0.055817\n0.759094 0.089752 0.055298\n0.788910 0.091248 0.054749\n0.815979 0.092712 0.054260\n0.840515 0.094177 0.053772\n0.862823 0.095703 0.053192\n0.883087 0.097229 0.052704\n0.901581 0.098816 0.052124\n0.918396 0.100403 0.051605\n0.933716 0.101990 0.051086\n0.947601 0.103607 0.050507\n0.960175 0.105255 0.049957\n0.044312 0.089050 0.063263\n0.066284 0.090057 0.062958\n0.089355 0.091064 0.062653\n0.113495 0.092133 0.062317\n0.138824 0.093201 0.061981\n0.165497 0.094299 0.061584\n0.193695 0.095459 0.061218\n0.223541 0.096619 0.060852\n0.255249 0.097839 0.060425\n0.289154 0.099091 0.060059\n0.325043 0.100311 0.059601\n0.363037 0.101624 0.059143\n0.402771 0.102905 0.058716\n0.444183 0.104248 0.058258\n0.486908 0.105652 0.057770\n0.530548 0.106995 0.057312\n0.574219 0.108459 0.056824\n0.616425 0.109924 0.056305\n0.656677 0.111359 0.055847\n0.694702 0.112854 0.055328\n0.730072 0.114380 0.054749\n0.762543 0.115906 0.054291\n0.792084 0.117493 0.053772\n0.818878 0.119080 0.053223\n0.843170 0.120667 0.052704\n0.865265 0.122345 0.052124\n0.885315 0.123962 0.051636\n0.903625 0.125641 0.051086\n0.920288 0.127350 0.050537\n0.935425 0.129028 0.049988\n0.949188 0.130798 0.049408\n0.961609 0.132538 0.048920\n0.045929 0.114288 0.062653\n0.068085 0.115326 0.062347\n0.091309 0.116455 0.061981\n0.115540 0.117615 0.061615\n0.141022 0.118805 0.061218\n0.167908 0.120026 0.060852\n0.196289 0.121307 0.060425\n0.226349 0.122589 0.060059\n0.258362 0.123932 0.059631\n0.292450 0.125275 0.059174\n0.328644 0.126648 0.058716\n0.366882 0.128021 0.058258\n0.406891 0.129456 0.057800\n0.448486 0.130920 0.057312\n0.491364 0.132416 0.056824\n0.535217 0.133911 0.056335\n0.578796 0.135468 0.055847\n0.620911 0.137054 0.055328\n0.660980 0.138611 0.054779\n0.698700 0.140228 0.054321\n0.733856 0.141876 0.053772\n0.766022 0.143524 0.053223\n0.795319 0.145233 0.052704\n0.821808 0.146912 0.052155\n0.845886 0.148682 0.051666\n0.867737 0.150421 0.051117\n0.887604 0.152191 0.050568\n0.905701 0.153992 0.050018\n0.922180 0.155853 0.049438\n0.937134 0.157654 0.048920\n0.950745 0.159485 0.048370\n0.963043 0.161407 0.047821\n0.047729 0.140839 0.061981\n0.069977 0.142029 0.061615\n0.093323 0.143250 0.061249\n0.117737 0.144562 0.060883\n0.143341 0.145874 0.060455\n0.170441 0.147217 0.060089\n0.199005 0.148621 0.059631\n0.229340 0.150024 0.059174\n0.261536 0.151459 0.058746\n0.295898 0.152924 0.058289\n0.332428 0.154419 0.057831\n0.370880 0.156006 0.057343\n0.411102 0.157532 0.056854\n0.452911 0.159149 0.056366\n0.496063 0.160736 0.055847\n0.539978 0.162354 0.055359\n0.583527 0.164062 0.054810\n0.625458 0.165802 0.054321\n0.665314 0.167450 0.053802\n0.702850 0.169220 0.053253\n0.737640 0.170990 0.052734\n0.769531 0.172791 0.052185\n0.798523 0.174652 0.051666\n0.824738 0.176422 0.051147\n0.848572 0.178345 0.050568\n0.870209 0.180237 0.050018\n0.889862 0.182129 0.049469\n0.907806 0.184082 0.048920\n0.924072 0.186035 0.048370\n0.938904 0.187988 0.047852\n0.952332 0.189972 0.047302\n0.964447 0.191986 0.046753\n0.049591 0.168976 0.061249\n0.071991 0.170319 0.060883\n0.095428 0.171692 0.060486\n0.120026 0.173126 0.060089\n0.145844 0.174591 0.059662\n0.173065 0.176056 0.059204\n0.201904 0.177582 0.058746\n0.232391 0.179108 0.058289\n0.264893 0.180695 0.057831\n0.299561 0.182281 0.057373\n0.336334 0.183960 0.056885\n0.375092 0.185638 0.056366\n0.415497 0.187317 0.055878\n0.457581 0.189087 0.055389\n0.500824 0.190857 0.054810\n0.544861 0.192596 0.054352\n0.588318 0.194458 0.053802\n0.630127 0.196289 0.053253\n0.669739 0.198120 0.052734\n0.707062 0.200043 0.052185\n0.741486 0.201935 0.051697\n0.773102 0.203918 0.051147\n0.801788 0.205872 0.050598\n0.827698 0.207855 0.050049\n0.851257 0.209930 0.049500\n0.872711 0.211945 0.048950\n0.892120 0.213959 0.048401\n0.909882 0.216125 0.047882\n0.925995 0.218201 0.047302\n0.940643 0.220276 0.046753\n0.953918 0.222443 0.046265\n0.965881 0.224579 0.045715\n0.051544 0.198914 0.060486\n0.074066 0.200378 0.060120\n0.097687 0.201904 0.059662\n0.122437 0.203491 0.059204\n0.148407 0.205109 0.058777\n0.175842 0.206757 0.058319\n0.204865 0.208374 0.057861\n0.235626 0.210083 0.057373\n0.268402 0.211823 0.056885\n0.303314 0.213562 0.056396\n0.340363 0.215393 0.055878\n0.379364 0.217255 0.055389\n0.420044 0.219055 0.054840\n0.462311 0.220947 0.054382\n0.505737 0.222900 0.053833\n0.549805 0.224792 0.053284\n0.593201 0.226837 0.052734\n0.634796 0.228851 0.052216\n0.674194 0.230835 0.051727\n0.711212 0.232910 0.051147\n0.745392 0.234955 0.050629\n0.776703 0.237122 0.050049\n0.805054 0.239258 0.049500\n0.830688 0.241364 0.048981\n0.854004 0.243591 0.048431\n0.875183 0.245789 0.047882\n0.894409 0.248016 0.047333\n0.911926 0.250275 0.046783\n0.927887 0.252563 0.046265\n0.942352 0.254822 0.045715\n0.955475 0.257141 0.045166\n0.967285 0.259430 0.044647\n0.053589 0.230835 0.059662\n0.076324 0.232483 0.059235\n0.100037 0.234192 0.058807\n0.124939 0.235931 0.058319\n0.151123 0.237671 0.057861\n0.178741 0.239471 0.057404\n0.207947 0.241302 0.056915\n0.238983 0.243164 0.056427\n0.272003 0.245087 0.055908\n0.307190 0.246979 0.055389\n0.344543 0.248962 0.054871\n0.383820 0.251007 0.054382\n0.424744 0.252991 0.053833\n0.467163 0.255066 0.053314\n0.510773 0.257172 0.052765\n0.554932 0.259308 0.052246\n0.598175 0.261475 0.051727\n0.639496 0.263611 0.051147\n0.678741 0.265839 0.050629\n0.715454 0.268097 0.050079\n0.749359 0.270325 0.049530\n0.780273 0.272644 0.048981\n0.808289 0.274963 0.048431\n0.833649 0.277252 0.047913\n0.856689 0.279663 0.047333\n0.877686 0.282104 0.046783\n0.896667 0.284454 0.046295\n0.914001 0.286957 0.045715\n0.929779 0.289307 0.045197\n0.944092 0.291779 0.044647\n0.957031 0.294342 0.044128\n0.968689 0.296814 0.043640\n0.055756 0.265015 0.058807\n0.078583 0.266815 0.058319\n0.102509 0.268707 0.057861\n0.127533 0.270599 0.057434\n0.153900 0.272491 0.056915\n0.181732 0.274567 0.056427\n0.211151 0.276550 0.055939\n0.242462 0.278595 0.055420\n0.275787 0.280731 0.054871\n0.311279 0.282776 0.054382\n0.348846 0.285004 0.053864\n0.388367 0.287231 0.053314\n0.429504 0.289398 0.052795\n0.472137 0.291687 0.052246\n0.515808 0.293945 0.051758\n0.560089 0.296295 0.051178\n0.603119 0.298615 0.050659\n0.644287 0.300964 0.050110\n0.683319 0.303375 0.049561\n0.719696 0.305847 0.049011\n0.753265 0.308228 0.048462\n0.783875 0.310730 0.047913\n0.811584 0.313293 0.047333\n0.836639 0.315765 0.046814\n0.859436 0.318298 0.046326\n0.880127 0.320892 0.045746\n0.898926 0.323456 0.045227\n0.916077 0.326080 0.044647\n0.931641 0.328674 0.044159\n0.945801 0.331329 0.043640\n0.958557 0.334015 0.043091\n0.970062 0.336639 0.042603\n0.058014 0.301666 0.057892\n0.080963 0.303650 0.057434\n0.105042 0.305725 0.056946\n0.130219 0.307800 0.056458\n0.156799 0.309967 0.055939\n0.184845 0.312164 0.055420\n0.214508 0.314331 0.054901\n0.246002 0.316589 0.054413\n0.279663 0.318909 0.053864\n0.315430 0.321136 0.053345\n0.353271 0.323578 0.052795\n0.393005 0.325958 0.052277\n0.434387 0.328308 0.051758\n0.477203 0.330750 0.051178\n0.521088 0.333221 0.050690\n0.565247 0.335724 0.050110\n0.608185 0.338318 0.049591\n0.649109 0.340790 0.049042\n0.687866 0.343414 0.048462\n0.723969 0.346039 0.047913\n0.757172 0.348602 0.047363\n0.787415 0.351288 0.046844\n0.814819 0.354004 0.046326\n0.839569 0.356628 0.045776\n0.862122 0.359375 0.045227\n0.882568 0.362061 0.044678\n0.901184 0.364807 0.044159\n0.918121 0.367615 0.043671\n0.933502 0.370331 0.043091\n0.947479 0.373199 0.042633\n0.960114 0.376007 0.042114\n0.971466 0.378815 0.041595\n0.060303 0.340729 0.056976\n0.083435 0.342957 0.056488\n0.107635 0.345215 0.055969\n0.132996 0.347473 0.055450\n0.159760 0.349792 0.054932\n0.188049 0.352203 0.054413\n0.217926 0.354523 0.053894\n0.249725 0.356995 0.053375\n0.283630 0.359467 0.052826\n0.319641 0.361908 0.052307\n0.357788 0.364441 0.051788\n0.397736 0.367004 0.051208\n0.439392 0.369598 0.050690\n0.482422 0.372253 0.050110\n0.526367 0.374817 0.049622\n0.570557 0.377533 0.049072\n0.613281 0.380249 0.048492\n0.653992 0.382935 0.047943\n0.692444 0.385681 0.047363\n0.728241 0.388489 0.046875\n0.761078 0.391235 0.046326\n0.790985 0.394073 0.045776\n0.818054 0.396942 0.045258\n0.842529 0.399750 0.044678\n0.864807 0.402588 0.044189\n0.885010 0.405457 0.043701\n0.903412 0.408356 0.043121\n0.920166 0.411285 0.042633\n0.935333 0.414154 0.042114\n0.949158 0.417114 0.041626\n0.961609 0.420135 0.041107\n0.972809 0.422943 0.040649\n0.062744 0.382050 0.056000\n0.085999 0.384491 0.055481\n0.110382 0.386932 0.054932\n0.135925 0.389343 0.054443\n0.162872 0.391876 0.053925\n0.191315 0.394440 0.053375\n0.221466 0.396973 0.052856\n0.253540 0.399597 0.052338\n0.287720 0.402222 0.051788\n0.324036 0.404816 0.051239\n0.362427 0.407562 0.050690\n0.402649 0.410217 0.050140\n0.444519 0.412994 0.049622\n0.487671 0.415771 0.049072\n0.531799 0.418579 0.048523\n0.575806 0.421387 0.047974\n0.618378 0.424255 0.047394\n0.658905 0.427094 0.046906\n0.697083 0.430023 0.046356\n0.732513 0.432922 0.045776\n0.765015 0.435822 0.045288\n0.794525 0.438782 0.044678\n0.821228 0.441711 0.044220\n0.845459 0.444733 0.043732\n0.867462 0.447693 0.043152\n0.887421 0.450653 0.042633\n0.905609 0.453705 0.042145\n0.922180 0.456757 0.041656\n0.937164 0.459747 0.041138\n0.950806 0.462799 0.040649\n0.963104 0.465820 0.040192\n0.974121 0.468903 0.039734\n0.065216 0.425537 0.054962\n0.088623 0.428040 0.054474\n0.113159 0.430664 0.053925\n0.138916 0.433258 0.053406\n0.166046 0.435944 0.052856\n0.194733 0.438629 0.052338\n0.225098 0.441284 0.051819\n0.257385 0.444092 0.051239\n0.291809 0.446808 0.050720\n0.328491 0.449615 0.050140\n0.367188 0.452484 0.049652\n0.407623 0.455292 0.049103\n0.449707 0.458221 0.048523\n0.493073 0.461151 0.047974\n0.537323 0.464050 0.047424\n0.581207 0.467010 0.046906\n0.623596 0.470001 0.046356\n0.663757 0.472961 0.045807\n0.701660 0.476013 0.045288\n0.736755 0.479034 0.044708\n0.768860 0.482025 0.044220\n0.798035 0.485046 0.043732\n0.824402 0.488129 0.043182\n0.848358 0.491241 0.042664\n0.870117 0.494324 0.042145\n0.889832 0.497375 0.041656\n0.907806 0.500458 0.041138\n0.924133 0.503662 0.040680\n0.938995 0.506683 0.040222\n0.952423 0.509796 0.039734\n0.964569 0.513000 0.039276\n0.975433 0.516022 0.038849\n0.067780 0.470642 0.053955\n0.091339 0.473389 0.053406\n0.116058 0.476135 0.052887\n0.141968 0.478851 0.052368\n0.169281 0.481628 0.051819\n0.198181 0.484497 0.051270\n0.228790 0.487274 0.050720\n0.261414 0.490173 0.050171\n0.296143 0.493042 0.049683\n0.333069 0.495972 0.049133\n0.372040 0.498932 0.048553\n0.412720 0.501862 0.048004\n0.454956 0.504913 0.047455\n0.498474 0.507935 0.046906\n0.542816 0.510925 0.046387\n0.586548 0.513947 0.045837\n0.628723 0.517120 0.045319\n0.668640 0.520142 0.044739\n0.706207 0.523224 0.044250\n0.740906 0.526337 0.043732\n0.772736 0.529449 0.043182\n0.801514 0.532593 0.042664\n0.827576 0.535706 0.042175\n0.851227 0.538879 0.041687\n0.872711 0.541992 0.041168\n0.892212 0.545135 0.040710\n0.909973 0.548218 0.040222\n0.926086 0.551392 0.039734\n0.940765 0.554443 0.039307\n0.954010 0.557587 0.038849\n0.965973 0.560577 0.038391\n0.976715 0.563690 0.037994\n0.070404 0.517181 0.052917\n0.094116 0.520050 0.052399\n0.118988 0.522919 0.051819\n0.145111 0.525757 0.051300\n0.172607 0.528625 0.050720\n0.201721 0.531586 0.050201\n0.232605 0.534515 0.049683\n0.265472 0.537537 0.049133\n0.300507 0.540405 0.048584\n0.337738 0.543457 0.048004\n0.376923 0.546478 0.047455\n0.417816 0.549438 0.046936\n0.460266 0.552521 0.046417\n0.503937 0.555573 0.045837\n0.548340 0.558533 0.045319\n0.591949 0.561646 0.044769\n0.633850 0.564697 0.044250\n0.673523 0.567719 0.043762\n0.710754 0.570831 0.043213\n0.745148 0.573883 0.042694\n0.776550 0.576843 0.042206\n0.804962 0.579956 0.041687\n0.830688 0.582916 0.041199\n0.854034 0.585999 0.040710\n0.875275 0.589020 0.040253\n0.894562 0.592041 0.039764\n0.912048 0.595032 0.039307\n0.928009 0.598083 0.038849\n0.942474 0.600983 0.038422\n0.955597 0.603973 0.037994\n0.967407 0.606964 0.037567\n0.977966 0.609863 0.037170\n0.073120 0.564270 0.051849\n0.096985 0.567139 0.051331\n0.122009 0.569977 0.050751\n0.148254 0.572754 0.050232\n0.176025 0.575684 0.049713\n0.205414 0.578552 0.049133\n0.236511 0.581421 0.048615\n0.269684 0.584320 0.048035\n0.304962 0.587250 0.047485\n0.342438 0.590179 0.046936\n0.381958 0.593109 0.046448\n0.423035 0.596039 0.045868\n0.465668 0.598999 0.045319\n0.509521 0.601959 0.044769\n0.553894 0.604828 0.044281\n0.597351 0.607819 0.043762\n0.639008 0.610779 0.043213\n0.678406 0.613678 0.042694\n0.715271 0.616669 0.042206\n0.749237 0.619537 0.041748\n0.780273 0.622467 0.041199\n0.808380 0.625427 0.040710\n0.833771 0.628265 0.040283\n0.856842 0.631165 0.039795\n0.877838 0.634094 0.039337\n0.896851 0.636902 0.038879\n0.914154 0.639771 0.038422\n0.929932 0.642609 0.037994\n0.944183 0.645386 0.037598\n0.957153 0.648254 0.037170\n0.968781 0.650940 0.036804\n0.979187 0.653687 0.036469\n0.075897 0.609924 0.050781\n0.099915 0.612732 0.050232\n0.125122 0.615479 0.049713\n0.151550 0.618195 0.049133\n0.179504 0.621063 0.048615\n0.209045 0.623749 0.048065\n0.240448 0.626556 0.047516\n0.273895 0.629486 0.046967\n0.309540 0.632141 0.046448\n0.347290 0.635010 0.045898\n0.386993 0.637817 0.045319\n0.428314 0.640656 0.044800\n0.471130 0.643433 0.044312\n0.515106 0.646301 0.043762\n0.559418 0.649017 0.043243\n0.602692 0.651825 0.042694\n0.644135 0.654694 0.042236\n0.683197 0.657440 0.041748\n0.719757 0.660217 0.041229\n0.753326 0.662933 0.040741\n0.783997 0.665710 0.040283\n0.811737 0.668457 0.039795\n0.836853 0.671143 0.039337\n0.859619 0.673889 0.038879\n0.880310 0.676605 0.038422\n0.899109 0.679230 0.038025\n0.916260 0.681946 0.037598\n0.931763 0.684540 0.037170\n0.945862 0.687164 0.036835\n0.958618 0.689758 0.036469\n0.970093 0.692291 0.036469\n0.980377 0.694885 0.036469\n0.078674 0.653503 0.049744\n0.102875 0.656189 0.049164\n0.128265 0.658844 0.048645\n0.154877 0.661469 0.048065\n0.183044 0.664154 0.047516\n0.212830 0.666748 0.046997\n0.244476 0.669403 0.046448\n0.278229 0.672150 0.045898\n0.314087 0.674744 0.045349\n0.352142 0.677368 0.044830\n0.392029 0.680084 0.044312\n0.433624 0.682678 0.043793\n0.476654 0.685364 0.043274\n0.520752 0.688019 0.042725\n0.565002 0.690582 0.042267\n0.608032 0.693237 0.041748\n0.649109 0.695801 0.041260\n0.687927 0.698395 0.040741\n0.724121 0.701019 0.040314\n0.757416 0.703522 0.039825\n0.787659 0.706116 0.039337\n0.815002 0.708679 0.038910\n0.839813 0.711182 0.038452\n0.862305 0.713654 0.038055\n0.882782 0.716156 0.037598\n0.901337 0.718597 0.037201\n0.918213 0.721069 0.036835\n0.933563 0.723419 0.036469\n0.947540 0.725830 0.036469\n0.960144 0.728241 0.036469\n0.971436 0.730560 0.036469\n0.981537 0.732910 0.036469\n0.081573 0.694519 0.048676\n0.105896 0.697083 0.048096\n0.131409 0.699493 0.047577\n0.158295 0.701965 0.046997\n0.186676 0.704529 0.046478\n0.216644 0.706970 0.045929\n0.248596 0.709473 0.045380\n0.282593 0.711945 0.044830\n0.318787 0.714417 0.044342\n0.357117 0.716919 0.043793\n0.397247 0.719421 0.043274\n0.438965 0.721802 0.042755\n0.482117 0.724274 0.042267\n0.526306 0.726654 0.041748\n0.570557 0.729156 0.041260\n0.613373 0.731567 0.040771\n0.654175 0.733887 0.040344\n0.692719 0.736298 0.039825\n0.728485 0.738678 0.039368\n0.761353 0.740997 0.038940\n0.791229 0.743347 0.038483\n0.818268 0.745636 0.038055\n0.842743 0.747925 0.037628\n0.864990 0.750214 0.037231\n0.885162 0.752472 0.036835\n0.903503 0.754669 0.036469\n0.920197 0.756897 0.036469\n0.935364 0.759064 0.036469\n0.949158 0.761169 0.036469\n0.961548 0.763336 0.036469\n0.972717 0.765442 0.036469\n0.982666 0.767517 0.036469\n0.084503 0.732544 0.047577\n0.108978 0.734863 0.047028\n0.134644 0.737152 0.046509\n0.161743 0.739471 0.045929\n0.190338 0.741821 0.045380\n0.220581 0.744019 0.044861\n0.252777 0.746368 0.044342\n0.287048 0.748627 0.043823\n0.323547 0.750885 0.043304\n0.362061 0.753143 0.042786\n0.402405 0.755402 0.042297\n0.444366 0.757660 0.041779\n0.487671 0.759857 0.041290\n0.531952 0.762054 0.040802\n0.576080 0.764252 0.040344\n0.618683 0.766449 0.039856\n0.659210 0.768616 0.039398\n0.697357 0.770782 0.038940\n0.732819 0.772919 0.038483\n0.765289 0.774963 0.038086\n0.794769 0.777100 0.037659\n0.821472 0.779175 0.037231\n0.845612 0.781189 0.036835\n0.867584 0.783264 0.036469\n0.887543 0.785217 0.036469\n0.905640 0.787262 0.036469\n0.922150 0.789215 0.036469\n0.937103 0.791138 0.036469\n0.950714 0.793030 0.036469\n0.962952 0.794983 0.036469\n0.973969 0.796783 0.036469\n0.983765 0.798676 0.036469\n0.087463 0.767242 0.046509\n0.112152 0.769379 0.045959\n0.137970 0.771454 0.045441\n0.165222 0.773590 0.044891\n0.194031 0.775665 0.044373\n0.224518 0.777710 0.043854\n0.256958 0.779785 0.043304\n0.291534 0.781891 0.042786\n0.328247 0.783905 0.042328\n0.367035 0.785980 0.041779\n0.407623 0.787964 0.041290\n0.449799 0.789978 0.040802\n0.493256 0.791992 0.040344\n0.537567 0.793945 0.039886\n0.581543 0.795959 0.039398\n0.623901 0.797913 0.038940\n0.664154 0.799835 0.038513\n0.701935 0.801788 0.038116\n0.737061 0.803680 0.037659\n0.769135 0.805542 0.037262\n0.798248 0.807404 0.036865\n0.824585 0.809265 0.036469\n0.848450 0.811127 0.036469\n0.870117 0.812927 0.036469\n0.889801 0.814667 0.036469\n0.907715 0.816437 0.036469\n0.924011 0.818207 0.036469\n0.938812 0.819916 0.036469\n0.952209 0.821655 0.036469\n0.964325 0.823334 0.036469\n0.975159 0.824951 0.036469\n0.984802 0.826599 0.036469\n0.090485 0.798523 0.045441\n0.115295 0.800476 0.044891\n0.141296 0.802338 0.044403\n0.168732 0.804260 0.043854\n0.197784 0.806152 0.043304\n0.228485 0.808014 0.042816\n0.261169 0.809875 0.042328\n0.296082 0.811798 0.041809\n0.333069 0.813568 0.041290\n0.372101 0.815460 0.040833\n0.412903 0.817230 0.040375\n0.455231 0.819061 0.039886\n0.498779 0.820862 0.039429\n0.543182 0.822601 0.038971\n0.586945 0.824402 0.038544\n0.629059 0.826141 0.038116\n0.668976 0.827850 0.037689\n0.706482 0.829620 0.037262\n0.741211 0.831329 0.036865\n0.772858 0.833008 0.036499\n0.801636 0.834686 0.036469\n0.827606 0.836273 0.036469\n0.851166 0.837952 0.036469\n0.872589 0.839569 0.036469\n0.892029 0.841125 0.036469\n0.909760 0.842712 0.036469\n0.925842 0.844330 0.036469\n0.940430 0.845825 0.036469\n0.953705 0.847351 0.036469\n0.965637 0.848877 0.036469\n0.976318 0.850281 0.036469\n0.985840 0.851746 0.036469\n0.093536 0.826691 0.044403\n0.118500 0.828430 0.043884\n0.144684 0.830170 0.043304\n0.172333 0.831848 0.042847\n0.201569 0.833588 0.042328\n0.232513 0.835236 0.041840\n0.265472 0.836945 0.041290\n0.300659 0.838623 0.040833\n0.337921 0.840271 0.040375\n0.377167 0.841919 0.039917\n0.418121 0.843567 0.039459\n0.460632 0.845215 0.038971\n0.504364 0.846832 0.038544\n0.548767 0.848389 0.038147\n0.592346 0.850006 0.037689\n0.634155 0.851593 0.037292\n0.673828 0.853149 0.036896\n0.710938 0.854675 0.036499\n0.745270 0.856232 0.036469\n0.776581 0.857697 0.036469\n0.804962 0.859192 0.036469\n0.830597 0.860657 0.036469\n0.853882 0.862122 0.036469\n0.875061 0.863586 0.036469\n0.894257 0.864990 0.036469\n0.911743 0.866364 0.036469\n0.927643 0.867798 0.036469\n0.942047 0.869110 0.036469\n0.955139 0.870483 0.036469\n0.966919 0.871826 0.036469\n0.977448 0.873108 0.036469\n0.986816 0.874390 0.036469\n0.096619 0.852051 0.043335\n0.121735 0.853607 0.042847\n0.148132 0.855194 0.042358\n0.175934 0.856720 0.041870\n0.205414 0.858276 0.041290\n0.236572 0.859772 0.040863\n0.269836 0.861328 0.040405\n0.305206 0.862793 0.039948\n0.342773 0.864349 0.039459\n0.382233 0.865814 0.038971\n0.423401 0.867249 0.038544\n0.466095 0.868744 0.038147\n0.509918 0.870209 0.037720\n0.554260 0.871643 0.037323\n0.597595 0.873077 0.036896\n0.639221 0.874481 0.036499\n0.678528 0.875885 0.036469\n0.715302 0.877258 0.036469\n0.749207 0.878601 0.036469\n0.780182 0.879974 0.036469\n0.808197 0.881287 0.036469\n0.833496 0.882568 0.036469\n0.856537 0.883881 0.036469\n0.877380 0.885193 0.036469\n0.896393 0.886444 0.036469\n0.913635 0.887726 0.036469\n0.929352 0.888947 0.036469\n0.943604 0.890137 0.036469\n0.956512 0.891327 0.036469\n0.968109 0.892517 0.036469\n0.978546 0.893677 0.036469\n0.987762 0.894806 0.036469\n0.099762 0.874908 0.042358\n0.125031 0.876373 0.041870\n0.151520 0.877747 0.041321\n0.179565 0.879150 0.040894\n0.209229 0.880554 0.040405\n0.240662 0.881927 0.039948\n0.274139 0.883301 0.039459\n0.309845 0.884644 0.039001\n0.347656 0.886017 0.038544\n0.387329 0.887390 0.038177\n0.428711 0.888702 0.037720\n0.471527 0.890015 0.037323\n0.515442 0.891296 0.036926\n0.559723 0.892609 0.036530\n0.602905 0.893860 0.036469\n0.644165 0.895142 0.036469\n0.683167 0.896393 0.036469\n0.719604 0.897614 0.036469\n0.753082 0.898834 0.036469\n0.783661 0.900055 0.036469\n0.811310 0.901245 0.036469\n0.836304 0.902374 0.036469\n0.859039 0.903564 0.036469\n0.879700 0.904724 0.036469\n0.898438 0.905823 0.036469\n0.915527 0.906952 0.036469\n0.931030 0.908051 0.036469\n0.945099 0.909119 0.036469\n0.957855 0.910187 0.036469\n0.969299 0.911194 0.036469\n0.979584 0.912201 0.036469\n0.988678 0.913239 0.036469\n0.102875 0.895599 0.041351\n0.128326 0.896881 0.040894\n0.154999 0.898163 0.040405\n0.183228 0.899414 0.039948\n0.213043 0.900665 0.039490\n0.244751 0.901917 0.039032\n0.278564 0.903168 0.038574\n0.314453 0.904388 0.038177\n0.352509 0.905579 0.037720\n0.392395 0.906830 0.037323\n0.433929 0.907990 0.036957\n0.476898 0.909180 0.036530\n0.520905 0.910370 0.036469\n0.565125 0.911469 0.036469\n0.608002 0.912659 0.036469\n0.648956 0.913727 0.036469\n0.687683 0.914886 0.036469\n0.723755 0.916016 0.036469\n0.756897 0.917084 0.036469\n0.787048 0.918152 0.036469\n0.814392 0.919220 0.036469\n0.839081 0.920258 0.036469\n0.861511 0.921295 0.036469\n0.881897 0.922333 0.036469\n0.900421 0.923279 0.036469\n0.917328 0.924286 0.036469\n0.932648 0.925262 0.036469\n0.946564 0.926208 0.036469\n0.959137 0.927155 0.036469\n0.970459 0.928040 0.036469\n0.980560 0.928955 0.036469\n0.989532 0.929871 0.036469\n0.105988 0.914276 0.040405\n0.131592 0.915436 0.039948\n0.158508 0.916595 0.039520\n0.186890 0.917725 0.039032\n0.216949 0.918823 0.038605\n0.248901 0.919952 0.038177\n0.282928 0.921082 0.037750\n0.319122 0.922180 0.037354\n0.357391 0.923248 0.036957\n0.397491 0.924347 0.036560\n0.439148 0.925415 0.036469\n0.482239 0.926483 0.036469\n0.526306 0.927521 0.036469\n0.570343 0.928528 0.036469\n0.613068 0.929596 0.036469\n0.653717 0.930573 0.036469\n0.692078 0.931549 0.036469\n0.727844 0.932587 0.036469\n0.760559 0.933533 0.036469\n0.790375 0.934479 0.036469\n0.817322 0.935455 0.036469\n0.841736 0.936371 0.036469\n0.863922 0.937286 0.036469\n0.884094 0.938171 0.036469\n0.902374 0.939056 0.036469\n0.919037 0.939972 0.036469\n0.934174 0.940796 0.036469\n0.947937 0.941650 0.036469\n0.960388 0.942444 0.036469\n0.971558 0.943237 0.036469\n0.981537 0.944031 0.036469\n0.990387 0.944855 0.036469\n0.109192 0.931122 0.039520\n0.134888 0.932159 0.039062\n0.161987 0.933167 0.038605\n0.190582 0.934235 0.038177\n0.220825 0.935242 0.037750\n0.253021 0.936218 0.037354\n0.287323 0.937256 0.036957\n0.323700 0.938232 0.036591\n0.362213 0.939209 0.036469\n0.402527 0.940186 0.036469\n0.444336 0.941132 0.036469\n0.487518 0.942078 0.036469\n0.531586 0.942993 0.036469\n0.575562 0.943939 0.036469\n0.618011 0.944855 0.036469\n0.658356 0.945740 0.036469\n0.696442 0.946625 0.036469\n0.731781 0.947510 0.036469\n0.764130 0.948334 0.036469\n0.793579 0.949219 0.036469\n0.820221 0.950012 0.036469\n0.844330 0.950836 0.036469\n0.866211 0.951630 0.036469\n0.886108 0.952423 0.036469\n0.904236 0.953217 0.036469\n0.920715 0.953979 0.036469\n0.935669 0.954712 0.036469\n0.949249 0.955475 0.036469\n0.961548 0.956207 0.036469\n0.972595 0.956909 0.036469\n0.982483 0.957611 0.036469\n0.991150 0.958282 0.036469\n0.112366 0.946289 0.038635\n0.138214 0.947235 0.038177\n0.165466 0.948181 0.037750\n0.194244 0.949097 0.037384\n0.224731 0.949951 0.036987\n0.257141 0.950867 0.036591\n0.291718 0.951752 0.036469\n0.328369 0.952667 0.036469\n0.367035 0.953552 0.036469\n0.407532 0.954407 0.036469\n0.449493 0.955231 0.036469\n0.492798 0.956085 0.036469\n0.536896 0.956909 0.036469\n0.580627 0.957703 0.036469\n0.622833 0.958527 0.036469\n0.662903 0.959290 0.036469\n0.700653 0.960114 0.036469\n0.735596 0.960846 0.036469\n0.767609 0.961609 0.036469\n0.796661 0.962372 0.036469\n0.822968 0.963104 0.036469\n0.846802 0.963806 0.036469\n0.868439 0.964508 0.036469\n0.888123 0.965210 0.036469\n0.906006 0.965912 0.036469\n0.922333 0.966583 0.036469\n0.937103 0.967224 0.036469\n0.950562 0.967834 0.036469\n0.962677 0.968475 0.036469\n0.973572 0.969086 0.036469\n0.983307 0.969696 0.036469\n0.991913 0.970276 0.036469\n0.115509 0.959930 0.037750\n0.141541 0.960754 0.037384\n0.168976 0.961578 0.036987\n0.197968 0.962402 0.036591\n0.228607 0.963196 0.036469\n0.261230 0.963989 0.036469\n0.296082 0.964813 0.036469\n0.332947 0.965546 0.036469\n0.371857 0.966339 0.036469\n0.412415 0.967102 0.036469\n0.454559 0.967804 0.036469\n0.497925 0.968597 0.036469\n0.542114 0.969299 0.036469\n0.585663 0.970032 0.036469\n0.627563 0.970734 0.036469\n0.667297 0.971436 0.036469\n0.704712 0.972107 0.036469\n0.739319 0.972778 0.036469\n0.770935 0.973450 0.036469\n0.799652 0.974060 0.036469\n0.825653 0.974731 0.036469\n0.849182 0.975342 0.036469\n0.870605 0.975983 0.036469\n0.890045 0.976562 0.036469\n0.907776 0.977142 0.036469\n0.923859 0.977722 0.036469\n0.938477 0.978302 0.036469\n0.951752 0.978821 0.036469\n0.963776 0.979401 0.036469\n0.974548 0.979919 0.036469\n0.984131 0.980408 0.036469\n0.992584 0.980896 0.036469\n0.039032 0.000244 0.087006\n0.060638 0.000824 0.086853\n0.083191 0.001495 0.086609\n0.106750 0.002167 0.086426\n0.131500 0.002869 0.086182\n0.157593 0.003601 0.085938\n0.185028 0.004395 0.085693\n0.214142 0.005188 0.085388\n0.244995 0.006042 0.085083\n0.277832 0.006866 0.084747\n0.312805 0.007751 0.084442\n0.349915 0.008667 0.084045\n0.388733 0.009583 0.083710\n0.429291 0.010559 0.083313\n0.471222 0.011536 0.082916\n0.514313 0.012573 0.082489\n0.557953 0.013611 0.082092\n0.600433 0.014648 0.081665\n0.641235 0.015717 0.081207\n0.679932 0.016846 0.080719\n0.716095 0.017944 0.080261\n0.749664 0.019104 0.079773\n0.780273 0.020325 0.079285\n0.808014 0.021484 0.078796\n0.833221 0.022736 0.078247\n0.856079 0.023956 0.077728\n0.876892 0.025208 0.077209\n0.895905 0.026489 0.076691\n0.913116 0.027802 0.076172\n0.928864 0.029083 0.075592\n0.943176 0.030426 0.075043\n0.956116 0.031769 0.074493\n0.040222 0.020996 0.086639\n0.061920 0.021667 0.086426\n0.084625 0.022430 0.086182\n0.108337 0.023193 0.085938\n0.133240 0.023987 0.085693\n0.159424 0.024841 0.085419\n0.187073 0.025696 0.085114\n0.216370 0.026581 0.084778\n0.247437 0.027466 0.084442\n0.280518 0.028381 0.084076\n0.315826 0.029388 0.083710\n0.353058 0.030365 0.083344\n0.392151 0.031403 0.082916\n0.432983 0.032471 0.082520\n0.475037 0.033539 0.082123\n0.518341 0.034607 0.081665\n0.562073 0.035767 0.081207\n0.604431 0.036896 0.080750\n0.645172 0.038086 0.080261\n0.683685 0.039276 0.079773\n0.719696 0.040497 0.079285\n0.752930 0.041748 0.078796\n0.783295 0.043030 0.078278\n0.810760 0.044312 0.077728\n0.835754 0.045593 0.077240\n0.858429 0.046906 0.076721\n0.879089 0.048279 0.076172\n0.897888 0.049683 0.075623\n0.914978 0.051025 0.075073\n0.930573 0.052460 0.074524\n0.944763 0.053864 0.073975\n0.957550 0.055298 0.073425\n0.041534 0.042694 0.086182\n0.063385 0.043518 0.085968\n0.086182 0.044373 0.085724\n0.110077 0.045197 0.085419\n0.135101 0.046082 0.085114\n0.161499 0.047028 0.084778\n0.189301 0.047974 0.084473\n0.218781 0.048950 0.084076\n0.250092 0.049957 0.083710\n0.283447 0.050964 0.083344\n0.318939 0.052032 0.082916\n0.356415 0.053131 0.082520\n0.395782 0.054260 0.082123\n0.436768 0.055389 0.081696\n0.479126 0.056549 0.081238\n0.522552 0.057739 0.080780\n0.566284 0.058990 0.080292\n0.608612 0.060211 0.079803\n0.649170 0.061493 0.079285\n0.687500 0.062775 0.078827\n0.723267 0.064056 0.078308\n0.756317 0.065430 0.077759\n0.786377 0.066772 0.077240\n0.813599 0.068146 0.076721\n0.838379 0.069580 0.076202\n0.860840 0.070953 0.075653\n0.881287 0.072449 0.075073\n0.899933 0.073914 0.074524\n0.916870 0.075378 0.074005\n0.932281 0.076874 0.073425\n0.946320 0.078430 0.072845\n0.958984 0.079956 0.072296\n0.042999 0.065521 0.085724\n0.064972 0.066406 0.085419\n0.087921 0.067322 0.085114\n0.111908 0.068298 0.084808\n0.137115 0.069275 0.084473\n0.163666 0.070282 0.084106\n0.191620 0.071320 0.083740\n0.221313 0.072418 0.083374\n0.252869 0.073517 0.082947\n0.286499 0.074646 0.082550\n0.322266 0.075836 0.082123\n0.359985 0.076996 0.081696\n0.399597 0.078186 0.081268\n0.440826 0.079437 0.080780\n0.483307 0.080719 0.080322\n0.526917 0.082031 0.079834\n0.570679 0.083374 0.079315\n0.612885 0.084686 0.078827\n0.653290 0.086060 0.078308\n0.691437 0.087463 0.077759\n0.726959 0.088867 0.077271\n0.759735 0.090332 0.076752\n0.789490 0.091766 0.076233\n0.816498 0.093262 0.075653\n0.841003 0.094757 0.075073\n0.863281 0.096252 0.074585\n0.883545 0.097839 0.074005\n0.901978 0.099396 0.073456\n0.918701 0.100952 0.072876\n0.934021 0.102600 0.072327\n0.947876 0.104218 0.071716\n0.960449 0.105835 0.071198\n0.044556 0.089447 0.085114\n0.066650 0.090424 0.084808\n0.089691 0.091461 0.084473\n0.113861 0.092499 0.084106\n0.139221 0.093597 0.083740\n0.165955 0.094757 0.083374\n0.194122 0.095886 0.082947\n0.224060 0.097046 0.082550\n0.255829 0.098297 0.082153\n0.289703 0.099518 0.081696\n0.325714 0.100800 0.081268\n0.363739 0.102081 0.080811\n0.403595 0.103424 0.080322\n0.445007 0.104797 0.079834\n0.487671 0.106110 0.079315\n0.531433 0.107544 0.078857\n0.575134 0.108978 0.078339\n0.617249 0.110443 0.077789\n0.657471 0.111938 0.077271\n0.695404 0.113403 0.076782\n0.730713 0.114929 0.076233\n0.763184 0.116516 0.075684\n0.792664 0.118073 0.075104\n0.819427 0.119659 0.074585\n0.843689 0.121277 0.074036\n0.865692 0.122894 0.073486\n0.885773 0.124603 0.072876\n0.904022 0.126251 0.072357\n0.920624 0.127960 0.071747\n0.935730 0.129700 0.071198\n0.949432 0.131409 0.070618\n0.961853 0.133179 0.070068\n0.046265 0.114624 0.084503\n0.068451 0.115753 0.084137\n0.091675 0.116882 0.083771\n0.115936 0.118073 0.083374\n0.141479 0.119293 0.082977\n0.168365 0.120483 0.082581\n0.196777 0.121765 0.082153\n0.226898 0.123077 0.081696\n0.258911 0.124390 0.081268\n0.293091 0.125763 0.080841\n0.329376 0.127167 0.080353\n0.367584 0.128571 0.079865\n0.407684 0.130005 0.079315\n0.449341 0.131500 0.078888\n0.492218 0.132935 0.078369\n0.536102 0.134491 0.077820\n0.579712 0.136017 0.077301\n0.621735 0.137604 0.076782\n0.661804 0.139221 0.076263\n0.699432 0.140808 0.075714\n0.734528 0.142517 0.075134\n0.766724 0.144196 0.074615\n0.795868 0.145844 0.074036\n0.822357 0.147583 0.073486\n0.846405 0.149323 0.072906\n0.868195 0.151062 0.072357\n0.888031 0.152832 0.071777\n0.906097 0.154694 0.071228\n0.922546 0.156464 0.070648\n0.937469 0.158356 0.070099\n0.951050 0.160156 0.069489\n0.963287 0.162079 0.068939\n0.048004 0.141266 0.083801\n0.070374 0.142517 0.083374\n0.093719 0.143768 0.082977\n0.118164 0.145050 0.082581\n0.143860 0.146393 0.082153\n0.170929 0.147736 0.081726\n0.199554 0.149139 0.081268\n0.229919 0.150543 0.080841\n0.262177 0.152008 0.080383\n0.296600 0.153503 0.079865\n0.333191 0.154999 0.079346\n0.371674 0.156494 0.078888\n0.411957 0.158142 0.078369\n0.453857 0.159729 0.077820\n0.496857 0.161346 0.077332\n0.540894 0.162994 0.076782\n0.584381 0.164642 0.076294\n0.626312 0.166382 0.075714\n0.666168 0.168121 0.075134\n0.703613 0.169861 0.074646\n0.738342 0.171661 0.074036\n0.770233 0.173492 0.073517\n0.799103 0.175293 0.072937\n0.825317 0.177155 0.072357\n0.849091 0.179047 0.071777\n0.870667 0.180939 0.071259\n0.890320 0.182831 0.070648\n0.908142 0.184753 0.070129\n0.924438 0.186737 0.069519\n0.939240 0.188751 0.068970\n0.952606 0.190674 0.068390\n0.964722 0.192749 0.067841\n0.049927 0.169434 0.083008\n0.072388 0.170807 0.082611\n0.095886 0.172241 0.082184\n0.120453 0.173645 0.081757\n0.146332 0.175140 0.081299\n0.173584 0.176605 0.080841\n0.202423 0.178101 0.080383\n0.233063 0.179688 0.079895\n0.265533 0.181274 0.079376\n0.300232 0.182892 0.078918\n0.337097 0.184601 0.078400\n0.375854 0.186218 0.077850\n0.416382 0.187988 0.077362\n0.458374 0.189697 0.076813\n0.501648 0.191467 0.076294\n0.545807 0.193298 0.075745\n0.589172 0.195099 0.075165\n0.630920 0.196991 0.074646\n0.670593 0.198853 0.074066\n0.707733 0.200745 0.073547\n0.742249 0.202698 0.072937\n0.773834 0.204651 0.072388\n0.802368 0.206604 0.071838\n0.828278 0.208618 0.071289\n0.851776 0.210663 0.070679\n0.873138 0.212646 0.070129\n0.892609 0.214783 0.069519\n0.910248 0.216797 0.069000\n0.926331 0.218964 0.068420\n0.940948 0.221069 0.067841\n0.954193 0.223206 0.067322\n0.966125 0.225372 0.066711\n0.051910 0.199463 0.082184\n0.074493 0.200958 0.081757\n0.098114 0.202484 0.081329\n0.122864 0.204071 0.080841\n0.148956 0.205719 0.080383\n0.176361 0.207306 0.079926\n0.205444 0.209015 0.079376\n0.236267 0.210724 0.078918\n0.269043 0.212463 0.078430\n0.304047 0.214264 0.077881\n0.341125 0.216125 0.077362\n0.380127 0.217865 0.076813\n0.420959 0.219788 0.076324\n0.463135 0.221649 0.075775\n0.506622 0.223633 0.075195\n0.550842 0.225616 0.074677\n0.594086 0.227509 0.074097\n0.635651 0.229584 0.073578\n0.675079 0.231598 0.072968\n0.711945 0.233673 0.072418\n0.746155 0.235748 0.071838\n0.777344 0.237915 0.071289\n0.805634 0.240021 0.070709\n0.831268 0.242188 0.070160\n0.854492 0.244385 0.069580\n0.875610 0.246582 0.069031\n0.894867 0.248871 0.068451\n0.912292 0.251068 0.067871\n0.928223 0.253357 0.067322\n0.942688 0.255707 0.066742\n0.955750 0.257965 0.066193\n0.967560 0.260315 0.065643\n0.053955 0.231415 0.081329\n0.076721 0.233124 0.080872\n0.100464 0.234772 0.080414\n0.125427 0.236542 0.079926\n0.151611 0.238342 0.079407\n0.179260 0.240112 0.078918\n0.208527 0.242004 0.078430\n0.239685 0.243896 0.077881\n0.272705 0.245728 0.077393\n0.307983 0.247742 0.076843\n0.345367 0.249756 0.076324\n0.384613 0.251709 0.075775\n0.425629 0.253754 0.075195\n0.468048 0.255829 0.074707\n0.511658 0.257935 0.074097\n0.555878 0.260132 0.073578\n0.598999 0.262268 0.072998\n0.640411 0.264465 0.072418\n0.679596 0.266693 0.071869\n0.716217 0.268890 0.071320\n0.750061 0.271210 0.070709\n0.780975 0.273529 0.070160\n0.808868 0.275848 0.069580\n0.834198 0.278168 0.069031\n0.857208 0.280518 0.068451\n0.878082 0.282928 0.067902\n0.897095 0.285400 0.067322\n0.914398 0.287781 0.066772\n0.930115 0.290253 0.066193\n0.944397 0.292755 0.065674\n0.957306 0.295227 0.065094\n0.968964 0.297760 0.064575\n0.056183 0.265625 0.080414\n0.079041 0.267548 0.079956\n0.102936 0.269348 0.079437\n0.128021 0.271301 0.078949\n0.154449 0.273315 0.078430\n0.182281 0.275269 0.077911\n0.211792 0.277283 0.077393\n0.243103 0.279388 0.076843\n0.276459 0.281464 0.076355\n0.312042 0.283630 0.075806\n0.349609 0.285767 0.075226\n0.389160 0.287994 0.074707\n0.430450 0.290253 0.074127\n0.473022 0.292480 0.073608\n0.516876 0.294830 0.072998\n0.561035 0.297180 0.072449\n0.604065 0.299469 0.071899\n0.645203 0.301880 0.071320\n0.684174 0.304291 0.070740\n0.720490 0.306702 0.070190\n0.753998 0.309174 0.069611\n0.784485 0.311615 0.069061\n0.812134 0.314148 0.068451\n0.837189 0.316742 0.067902\n0.859894 0.319244 0.067322\n0.880554 0.321869 0.066803\n0.899384 0.324463 0.066223\n0.916443 0.327026 0.065674\n0.932007 0.329651 0.065125\n0.946106 0.332367 0.064606\n0.958832 0.334930 0.064026\n0.970337 0.337677 0.063538\n0.058411 0.302399 0.079437\n0.081421 0.304413 0.078949\n0.105499 0.306488 0.078461\n0.130768 0.308624 0.077942\n0.157379 0.310760 0.077423\n0.185425 0.312927 0.076874\n0.215149 0.315186 0.076355\n0.246735 0.317474 0.075806\n0.280365 0.319733 0.075256\n0.316254 0.322021 0.074738\n0.354095 0.324371 0.074158\n0.393921 0.326813 0.073639\n0.435333 0.329254 0.073029\n0.478180 0.331635 0.072479\n0.522095 0.334167 0.071899\n0.566284 0.336700 0.071320\n0.609070 0.339203 0.070770\n0.650085 0.341766 0.070221\n0.688751 0.344391 0.069611\n0.724762 0.346954 0.069092\n0.757935 0.349609 0.068481\n0.788086 0.352234 0.067932\n0.815399 0.354980 0.067352\n0.840179 0.357666 0.066803\n0.862640 0.360352 0.066254\n0.883026 0.363129 0.065674\n0.901611 0.365875 0.065125\n0.918488 0.368652 0.064606\n0.933868 0.371429 0.064056\n0.947784 0.374237 0.063538\n0.960388 0.377075 0.063019\n0.971710 0.379883 0.062500\n0.060791 0.341553 0.078491\n0.083923 0.343781 0.077942\n0.108124 0.346008 0.077454\n0.133606 0.348358 0.076904\n0.160370 0.350708 0.076355\n0.188629 0.353058 0.075836\n0.218597 0.355469 0.075256\n0.250397 0.357849 0.074768\n0.284363 0.360352 0.074188\n0.320496 0.362854 0.073639\n0.358612 0.365356 0.073059\n0.398682 0.367950 0.072510\n0.440369 0.370575 0.071930\n0.483368 0.373199 0.071350\n0.527435 0.375854 0.070801\n0.571594 0.378571 0.070251\n0.614227 0.381226 0.069641\n0.654938 0.384003 0.069092\n0.693298 0.386749 0.068481\n0.729004 0.389496 0.067963\n0.761871 0.392273 0.067352\n0.791626 0.395050 0.066833\n0.818634 0.397919 0.066284\n0.843109 0.400818 0.065704\n0.865265 0.403656 0.065155\n0.885468 0.406555 0.064606\n0.903809 0.409485 0.064056\n0.920532 0.412354 0.063568\n0.935699 0.415253 0.063049\n0.949432 0.418152 0.062531\n0.961884 0.421143 0.062012\n0.973053 0.424103 0.061493\n0.063202 0.382965 0.077484\n0.086487 0.385406 0.076904\n0.110870 0.387817 0.076385\n0.136505 0.390320 0.075867\n0.163452 0.392822 0.075287\n0.191956 0.395386 0.074768\n0.222137 0.397919 0.074188\n0.254211 0.400513 0.073639\n0.288452 0.403137 0.073090\n0.324860 0.405853 0.072510\n0.363281 0.408508 0.071960\n0.403595 0.411255 0.071381\n0.445465 0.414032 0.070801\n0.488617 0.416779 0.070251\n0.532837 0.419647 0.069672\n0.576843 0.422485 0.069122\n0.619354 0.425293 0.068542\n0.659821 0.428162 0.067963\n0.697906 0.431000 0.067383\n0.733246 0.433960 0.066864\n0.765747 0.436920 0.066284\n0.795166 0.439819 0.065735\n0.821838 0.442841 0.065186\n0.846039 0.445801 0.064606\n0.867950 0.448822 0.064117\n0.887878 0.451813 0.063599\n0.906006 0.454834 0.063049\n0.922546 0.457825 0.062561\n0.937531 0.460846 0.062042\n0.951080 0.463867 0.061523\n0.963379 0.466919 0.061005\n0.974396 0.470032 0.060547\n0.065704 0.426483 0.076385\n0.089111 0.429077 0.075867\n0.113708 0.431580 0.075317\n0.139465 0.434265 0.074768\n0.166595 0.436890 0.074219\n0.195312 0.439575 0.073639\n0.225800 0.442322 0.073090\n0.258118 0.445099 0.072510\n0.292694 0.447876 0.071960\n0.329376 0.450684 0.071381\n0.368042 0.453491 0.070831\n0.408600 0.456421 0.070251\n0.450653 0.459290 0.069672\n0.494019 0.462189 0.069122\n0.538361 0.465088 0.068542\n0.582153 0.468048 0.067993\n0.624512 0.471100 0.067413\n0.664703 0.474091 0.066864\n0.702454 0.477020 0.066284\n0.737488 0.480164 0.065735\n0.769592 0.483185 0.065186\n0.798706 0.486176 0.064636\n0.825012 0.489258 0.064117\n0.848907 0.492371 0.063599\n0.870575 0.495453 0.063080\n0.890289 0.498566 0.062561\n0.908234 0.501648 0.062042\n0.924469 0.504761 0.061523\n0.939301 0.507874 0.061035\n0.952698 0.510956 0.060577\n0.964813 0.514069 0.060120\n0.975677 0.517273 0.059631\n0.068298 0.471680 0.075348\n0.091888 0.474396 0.074799\n0.116577 0.477081 0.074249\n0.142548 0.479889 0.073639\n0.169891 0.482635 0.073120\n0.198853 0.485443 0.072540\n0.229523 0.488403 0.071991\n0.262146 0.491180 0.071411\n0.296936 0.494141 0.070862\n0.333984 0.497131 0.070251\n0.372864 0.499969 0.069702\n0.413635 0.503021 0.069122\n0.455963 0.506042 0.068573\n0.499481 0.509033 0.067993\n0.543823 0.512115 0.067413\n0.587524 0.515106 0.066864\n0.629639 0.518188 0.066315\n0.669586 0.521271 0.065735\n0.707062 0.524323 0.065216\n0.741699 0.527496 0.064636\n0.773468 0.530640 0.064148\n0.802155 0.533691 0.063629\n0.828186 0.536865 0.063110\n0.851746 0.540070 0.062592\n0.873169 0.543091 0.062073\n0.892670 0.546234 0.061523\n0.910339 0.549347 0.061066\n0.926422 0.552460 0.060608\n0.941071 0.555573 0.060120\n0.954315 0.558655 0.059662\n0.966248 0.561768 0.059174\n0.976959 0.564819 0.058746\n0.070923 0.518311 0.074249\n0.094696 0.521118 0.073669\n0.119507 0.523956 0.073151\n0.145691 0.526855 0.072540\n0.173248 0.529724 0.072021\n0.202423 0.532654 0.071411\n0.233368 0.535583 0.070862\n0.266266 0.538574 0.070282\n0.301361 0.541565 0.069733\n0.338654 0.544586 0.069153\n0.377838 0.547516 0.068604\n0.418793 0.550568 0.067993\n0.461334 0.553619 0.067444\n0.504974 0.556641 0.066895\n0.549438 0.559692 0.066315\n0.592926 0.562714 0.065765\n0.634796 0.565796 0.065247\n0.674469 0.568848 0.064667\n0.711548 0.571869 0.064148\n0.745880 0.574982 0.063660\n0.777252 0.578064 0.063110\n0.805603 0.580994 0.062592\n0.831268 0.584045 0.062103\n0.854614 0.587158 0.061554\n0.875763 0.590118 0.061066\n0.894958 0.593109 0.060608\n0.912476 0.596069 0.060120\n0.928345 0.599091 0.059662\n0.942810 0.602112 0.059204\n0.955872 0.605011 0.058777\n0.967651 0.608002 0.058319\n0.978210 0.610901 0.057922\n0.073639 0.565338 0.073181\n0.097534 0.568146 0.072571\n0.122559 0.570984 0.072052\n0.148926 0.573853 0.071442\n0.176666 0.576660 0.070892\n0.206024 0.579559 0.070312\n0.237244 0.582550 0.069763\n0.270416 0.585388 0.069183\n0.305847 0.588379 0.068604\n0.343414 0.591309 0.067993\n0.382782 0.594177 0.067474\n0.424011 0.597168 0.066895\n0.466736 0.600128 0.066345\n0.510529 0.603027 0.065796\n0.554993 0.605957 0.065247\n0.598328 0.608826 0.064697\n0.639954 0.611847 0.064178\n0.679321 0.614777 0.063660\n0.716034 0.617676 0.063141\n0.750031 0.620605 0.062592\n0.781006 0.623596 0.062103\n0.808990 0.626434 0.061584\n0.834381 0.629364 0.061096\n0.857391 0.632263 0.060638\n0.878265 0.635071 0.060150\n0.897278 0.637970 0.059662\n0.914581 0.640778 0.059235\n0.930267 0.643646 0.058777\n0.944519 0.646454 0.058350\n0.957397 0.649170 0.057922\n0.969025 0.651978 0.057526\n0.979431 0.654785 0.057343\n0.076416 0.610962 0.072052\n0.100433 0.613678 0.071472\n0.125671 0.616486 0.070892\n0.152191 0.619263 0.070312\n0.180145 0.622040 0.069794\n0.209778 0.624817 0.069214\n0.241241 0.627655 0.068634\n0.274689 0.630432 0.068024\n0.310425 0.633270 0.067505\n0.348206 0.636078 0.066925\n0.387878 0.638855 0.066376\n0.429321 0.641663 0.065796\n0.472076 0.644440 0.065277\n0.516083 0.647278 0.064697\n0.560547 0.650116 0.064178\n0.603638 0.652832 0.063690\n0.645050 0.655640 0.063171\n0.684113 0.658447 0.062622\n0.720520 0.661194 0.062134\n0.754120 0.663971 0.061615\n0.784729 0.666748 0.061096\n0.812317 0.669403 0.060669\n0.837372 0.672180 0.060150\n0.860077 0.674896 0.059662\n0.880737 0.677582 0.059235\n0.899536 0.680206 0.058807\n0.916626 0.682831 0.058350\n0.932098 0.685516 0.057953\n0.946198 0.688080 0.057556\n0.958923 0.690674 0.057343\n0.970367 0.693268 0.057343\n0.980591 0.695801 0.057343\n0.079254 0.654572 0.070923\n0.103424 0.657104 0.070343\n0.128815 0.659760 0.069794\n0.155518 0.662506 0.069214\n0.183685 0.665039 0.068665\n0.213562 0.667786 0.068054\n0.245270 0.670410 0.067505\n0.278992 0.673035 0.066956\n0.314972 0.675781 0.066376\n0.353088 0.678436 0.065826\n0.393005 0.681030 0.065277\n0.434631 0.683685 0.064728\n0.477631 0.686310 0.064240\n0.521759 0.688934 0.063721\n0.566101 0.691589 0.063171\n0.608978 0.694122 0.062653\n0.650116 0.696808 0.062134\n0.688873 0.699402 0.061615\n0.724945 0.701904 0.061096\n0.758179 0.704529 0.060669\n0.788361 0.707123 0.060150\n0.815643 0.709534 0.059692\n0.840393 0.712097 0.059265\n0.862793 0.714508 0.058838\n0.883179 0.717041 0.058380\n0.901733 0.719543 0.057953\n0.918579 0.721924 0.057587\n0.933899 0.724304 0.057343\n0.947845 0.726746 0.057343\n0.960388 0.729034 0.057343\n0.971710 0.731445 0.057343\n0.981781 0.733795 0.057343\n0.082123 0.695465 0.069794\n0.106445 0.697937 0.069214\n0.132019 0.700439 0.068665\n0.158936 0.702942 0.068085\n0.187286 0.705383 0.067535\n0.217407 0.707886 0.066986\n0.249390 0.710419 0.066406\n0.283417 0.712860 0.065857\n0.319672 0.715332 0.065308\n0.357971 0.717804 0.064758\n0.398132 0.720306 0.064240\n0.440002 0.722717 0.063721\n0.483185 0.725159 0.063202\n0.527374 0.727570 0.062653\n0.571594 0.730042 0.062134\n0.614288 0.732391 0.061646\n0.655151 0.734772 0.061127\n0.693604 0.737183 0.060669\n0.729279 0.739532 0.060181\n0.762146 0.741882 0.059692\n0.791931 0.744202 0.059265\n0.818878 0.746460 0.058838\n0.843323 0.748779 0.058380\n0.865448 0.751007 0.057983\n0.885590 0.753265 0.057587\n0.903900 0.755463 0.057343\n0.920532 0.757660 0.057343\n0.935699 0.759827 0.057343\n0.949432 0.761993 0.057343\n0.961823 0.764099 0.057343\n0.972961 0.766174 0.057343\n0.982910 0.768311 0.057343\n0.085083 0.733398 0.068665\n0.109558 0.735657 0.068115\n0.135284 0.738037 0.067535\n0.162384 0.740356 0.066986\n0.190979 0.742584 0.066406\n0.221283 0.744934 0.065857\n0.253571 0.747192 0.065308\n0.287872 0.749451 0.064789\n0.324402 0.751740 0.064270\n0.362976 0.753937 0.063721\n0.403381 0.756256 0.063202\n0.445404 0.758514 0.062683\n0.488678 0.760651 0.062134\n0.532990 0.762878 0.061646\n0.577087 0.765106 0.061127\n0.619629 0.767242 0.060730\n0.660126 0.769409 0.060211\n0.698242 0.771576 0.059723\n0.733582 0.773682 0.059296\n0.766022 0.775787 0.058868\n0.795441 0.777863 0.058411\n0.822052 0.779907 0.057983\n0.846191 0.781982 0.057587\n0.868042 0.783966 0.057343\n0.887939 0.785980 0.057343\n0.906006 0.787994 0.057343\n0.922485 0.789886 0.057343\n0.937408 0.791809 0.057343\n0.950989 0.793762 0.057343\n0.963196 0.795624 0.057343\n0.974182 0.797485 0.057343\n0.983917 0.799316 0.057343\n0.088043 0.768005 0.067535\n0.112671 0.770111 0.067017\n0.138611 0.772247 0.066437\n0.165924 0.774353 0.065887\n0.194702 0.776398 0.065338\n0.225220 0.778503 0.064789\n0.257721 0.780518 0.064301\n0.292358 0.782623 0.063751\n0.329224 0.784698 0.063202\n0.367981 0.786682 0.062714\n0.408661 0.788727 0.062164\n0.450836 0.790741 0.061676\n0.494263 0.792725 0.061157\n0.538635 0.794708 0.060730\n0.582581 0.796692 0.060211\n0.624817 0.798615 0.059753\n0.665039 0.800537 0.059326\n0.702850 0.802490 0.058868\n0.737793 0.804321 0.058411\n0.769836 0.806274 0.058014\n0.798859 0.808075 0.057617\n0.825165 0.809937 0.057343\n0.848999 0.811829 0.057343\n0.870575 0.813568 0.057343\n0.890228 0.815369 0.057343\n0.908112 0.817108 0.057343\n0.924347 0.818848 0.057343\n0.939117 0.820526 0.057343\n0.952515 0.822266 0.057343\n0.964569 0.823914 0.057343\n0.975372 0.825562 0.057343\n0.984985 0.827179 0.057343\n0.091064 0.799286 0.066437\n0.115875 0.801178 0.065918\n0.141968 0.803070 0.065369\n0.169434 0.804962 0.064819\n0.198425 0.806854 0.064301\n0.229248 0.808746 0.063751\n0.261993 0.810547 0.063232\n0.296906 0.812408 0.062714\n0.334015 0.814270 0.062164\n0.373016 0.816071 0.061707\n0.413849 0.817932 0.061157\n0.456268 0.819733 0.060730\n0.499847 0.821503 0.060242\n0.544250 0.823303 0.059753\n0.588013 0.825043 0.059326\n0.630005 0.826752 0.058868\n0.669952 0.828522 0.058441\n0.707306 0.830231 0.058044\n0.741974 0.831909 0.057648\n0.773621 0.833588 0.057343\n0.802246 0.835266 0.057343\n0.828186 0.836914 0.057343\n0.851715 0.838562 0.057343\n0.873077 0.840149 0.057343\n0.892487 0.841736 0.057343\n0.910156 0.843353 0.057343\n0.926147 0.844849 0.057343\n0.940765 0.846405 0.057343\n0.953918 0.847870 0.057343\n0.965881 0.849365 0.057343\n0.976562 0.850830 0.057343\n0.985992 0.852234 0.057343\n0.094116 0.827332 0.065369\n0.119110 0.829041 0.064850\n0.145355 0.830811 0.064331\n0.172974 0.832489 0.063782\n0.202271 0.834167 0.063263\n0.233307 0.835876 0.062744\n0.266266 0.837524 0.062195\n0.301483 0.839233 0.061707\n0.338806 0.840881 0.061188\n0.378082 0.842529 0.060730\n0.419159 0.844177 0.060272\n0.461670 0.845825 0.059753\n0.505402 0.847412 0.059357\n0.549805 0.849030 0.058868\n0.593323 0.850555 0.058441\n0.635040 0.852142 0.058044\n0.674744 0.853699 0.057648\n0.711731 0.855194 0.057343\n0.746002 0.856720 0.057343\n0.777283 0.858276 0.057343\n0.805542 0.859741 0.057343\n0.831177 0.861237 0.057343\n0.854401 0.862640 0.057343\n0.875488 0.864075 0.057343\n0.894653 0.865509 0.057343\n0.912109 0.866913 0.057343\n0.927948 0.868286 0.057343\n0.942352 0.869659 0.057343\n0.955383 0.870972 0.057343\n0.967133 0.872284 0.057343\n0.977661 0.873566 0.057343\n0.987000 0.874817 0.057343\n0.097229 0.852661 0.064331\n0.122345 0.854187 0.063812\n0.148773 0.855743 0.063263\n0.176605 0.857269 0.062775\n0.206055 0.858826 0.062225\n0.237366 0.860382 0.061737\n0.270599 0.861877 0.061218\n0.306091 0.863403 0.060760\n0.343719 0.864868 0.060272\n0.383148 0.866364 0.059784\n0.424438 0.867828 0.059357\n0.467133 0.869293 0.058899\n0.510925 0.870758 0.058441\n0.555328 0.872162 0.058044\n0.598572 0.873535 0.057648\n0.640076 0.874969 0.057343\n0.679382 0.876373 0.057343\n0.716064 0.877747 0.057343\n0.749969 0.879089 0.057343\n0.780823 0.880493 0.057343\n0.808746 0.881805 0.057343\n0.834045 0.883087 0.057343\n0.857025 0.884399 0.057343\n0.877838 0.885651 0.057343\n0.896759 0.886932 0.057343\n0.913971 0.888153 0.057343\n0.929688 0.889374 0.057343\n0.943909 0.890594 0.057343\n0.956726 0.891754 0.057343\n0.968353 0.892944 0.057343\n0.978760 0.894104 0.057343\n0.987946 0.895233 0.057343\n0.100281 0.875427 0.063293\n0.125610 0.876862 0.062775\n0.152222 0.878296 0.062225\n0.180237 0.879669 0.061737\n0.209961 0.881104 0.061249\n0.241455 0.882477 0.060760\n0.274963 0.883789 0.060303\n0.310699 0.885162 0.059814\n0.348572 0.886505 0.059387\n0.388245 0.887848 0.058929\n0.429657 0.889191 0.058472\n0.472504 0.890442 0.058044\n0.516388 0.891754 0.057648\n0.560760 0.893097 0.057343\n0.603790 0.894318 0.057343\n0.645050 0.895599 0.057343\n0.683990 0.896851 0.057343\n0.720337 0.898071 0.057343\n0.753815 0.899292 0.057343\n0.784302 0.900513 0.057343\n0.811890 0.901642 0.057343\n0.836884 0.902832 0.057343\n0.859558 0.903992 0.057343\n0.880096 0.905121 0.057343\n0.898834 0.906250 0.057343\n0.915863 0.907349 0.057343\n0.931305 0.908417 0.057343\n0.945374 0.909515 0.057343\n0.958069 0.910553 0.057343\n0.969543 0.911560 0.057343\n0.979797 0.912598 0.057343\n0.988831 0.913574 0.057343\n0.103455 0.896057 0.062256\n0.128906 0.897369 0.061737\n0.155701 0.898651 0.061249\n0.183899 0.899872 0.060791\n0.213776 0.901154 0.060303\n0.245575 0.902374 0.059814\n0.279358 0.903595 0.059418\n0.315338 0.904846 0.058929\n0.353455 0.906036 0.058472\n0.393372 0.907227 0.058075\n0.434967 0.908417 0.057648\n0.477875 0.909607 0.057343\n0.521912 0.910767 0.057343\n0.566132 0.911926 0.057343\n0.608948 0.913025 0.057343\n0.649902 0.914185 0.057343\n0.688538 0.915314 0.057343\n0.724457 0.916412 0.057343\n0.757629 0.917511 0.057343\n0.787689 0.918549 0.057343\n0.814880 0.919586 0.057343\n0.839569 0.920654 0.057343\n0.861969 0.921661 0.057343\n0.882324 0.922699 0.057343\n0.900787 0.923676 0.057343\n0.917633 0.924652 0.057343\n0.932922 0.925629 0.057343\n0.946808 0.926544 0.057343\n0.959351 0.927490 0.057343\n0.970673 0.928406 0.057343\n0.980774 0.929321 0.057343\n0.989685 0.930176 0.057343\n0.106598 0.914703 0.061279\n0.132202 0.915863 0.060791\n0.159180 0.916992 0.060303\n0.187561 0.918121 0.059845\n0.217682 0.919250 0.059418\n0.249695 0.920380 0.058960\n0.283722 0.921478 0.058502\n0.320007 0.922607 0.058075\n0.358215 0.923615 0.057648\n0.398407 0.924744 0.057343\n0.440155 0.925812 0.057343\n0.483185 0.926849 0.057343\n0.527283 0.927917 0.057343\n0.571411 0.928955 0.057343\n0.613922 0.929932 0.057343\n0.654633 0.930939 0.057343\n0.692932 0.931946 0.057343\n0.728485 0.932922 0.057343\n0.761230 0.933899 0.057343\n0.790985 0.934845 0.057343\n0.817871 0.935760 0.057343\n0.842255 0.936707 0.057343\n0.864349 0.937592 0.057343\n0.884430 0.938507 0.057343\n0.902771 0.939392 0.057343\n0.919342 0.940247 0.057343\n0.934479 0.941101 0.057343\n0.948212 0.941956 0.057343\n0.960571 0.942749 0.057343\n0.971771 0.943542 0.057343\n0.981720 0.944336 0.057343\n0.990479 0.945099 0.057343\n0.109741 0.931458 0.060333\n0.135529 0.932556 0.059875\n0.162628 0.933563 0.059448\n0.191223 0.934601 0.058960\n0.221558 0.935608 0.058502\n0.253815 0.936646 0.058105\n0.288147 0.937592 0.057678\n0.324646 0.938599 0.057343\n0.363129 0.939575 0.057343\n0.403442 0.940491 0.057343\n0.445312 0.941467 0.057343\n0.488464 0.942383 0.057343\n0.532654 0.943329 0.057343\n0.576538 0.944244 0.057343\n0.618896 0.945129 0.057343\n0.659241 0.946045 0.057343\n0.697266 0.946960 0.057343\n0.732483 0.947784 0.057343\n0.764832 0.948669 0.057343\n0.794159 0.949493 0.057343\n0.820709 0.950317 0.057343\n0.844788 0.951141 0.057343\n0.866638 0.951935 0.057343\n0.886505 0.952728 0.057343\n0.904602 0.953522 0.057343\n0.921021 0.954285 0.057343\n0.935944 0.955017 0.057343\n0.949524 0.955750 0.057343\n0.961792 0.956482 0.057343\n0.972809 0.957184 0.057343\n0.982605 0.957825 0.057343\n0.991272 0.958496 0.057343\n0.112915 0.946625 0.059448\n0.138855 0.947571 0.058990\n0.166138 0.948486 0.058533\n0.194946 0.949402 0.058105\n0.225464 0.950317 0.057678\n0.257935 0.951233 0.057343\n0.292480 0.952087 0.057343\n0.329254 0.953003 0.057343\n0.367920 0.953827 0.057343\n0.408417 0.954712 0.057343\n0.450470 0.955536 0.057343\n0.493713 0.956390 0.057343\n0.537933 0.957184 0.057343\n0.581604 0.958008 0.057343\n0.623718 0.958801 0.057343\n0.663757 0.959595 0.057343\n0.701416 0.960388 0.057343\n0.736267 0.961151 0.057343\n0.768280 0.961884 0.057343\n0.797241 0.962616 0.057343\n0.823456 0.963379 0.057343\n0.847260 0.964081 0.057343\n0.868835 0.964752 0.057343\n0.888489 0.965454 0.057343\n0.906372 0.966125 0.057343\n0.922638 0.966766 0.057343\n0.937378 0.967468 0.057343\n0.950806 0.968079 0.057343\n0.962891 0.968719 0.057343\n0.973785 0.969299 0.057343\n0.983459 0.969910 0.057343\n0.992004 0.970520 0.057343\n0.116089 0.960236 0.058533\n0.142181 0.961090 0.058136\n0.169647 0.961884 0.057709\n0.198639 0.962677 0.057343\n0.229370 0.963501 0.057343\n0.262054 0.964294 0.057343\n0.296844 0.965057 0.057343\n0.333832 0.965851 0.057343\n0.372681 0.966614 0.057343\n0.413361 0.967377 0.057343\n0.455536 0.968109 0.057343\n0.498810 0.968872 0.057343\n0.543060 0.969543 0.057343\n0.586639 0.970306 0.057343\n0.628418 0.970978 0.057343\n0.668152 0.971710 0.057343\n0.705414 0.972321 0.057343\n0.739990 0.973022 0.057343\n0.771606 0.973694 0.057343\n0.800171 0.974335 0.057343\n0.826111 0.974945 0.057343\n0.849670 0.975586 0.057343\n0.870972 0.976135 0.057343\n0.890411 0.976776 0.057343\n0.908051 0.977356 0.057343\n0.924133 0.977936 0.057343\n0.938751 0.978485 0.057343\n0.951996 0.979004 0.057343\n0.963959 0.979584 0.057343\n0.974701 0.980072 0.057343\n0.984283 0.980560 0.057343\n0.992737 0.981079 0.057343\n0.039215 0.000458 0.109955\n0.060883 0.001068 0.109741\n0.083405 0.001709 0.109558\n0.107025 0.002411 0.109344\n0.131836 0.003174 0.109070\n0.157867 0.003906 0.108826\n0.185394 0.004700 0.108521\n0.214539 0.005493 0.108215\n0.245392 0.006348 0.107910\n0.278351 0.007202 0.107544\n0.313354 0.008057 0.107178\n0.350464 0.009003 0.106842\n0.389343 0.009949 0.106445\n0.429932 0.010895 0.105988\n0.471924 0.011902 0.105591\n0.515045 0.012939 0.105133\n0.558685 0.013947 0.104706\n0.601196 0.015015 0.104248\n0.641998 0.016144 0.103760\n0.680603 0.017242 0.103271\n0.716827 0.018402 0.102783\n0.750244 0.019562 0.102264\n0.780792 0.020721 0.101746\n0.808533 0.021942 0.101227\n0.833618 0.023132 0.100708\n0.856537 0.024414 0.100159\n0.877350 0.025696 0.099609\n0.896240 0.026947 0.099060\n0.913483 0.028259 0.098450\n0.929199 0.029602 0.097900\n0.943481 0.030914 0.097351\n0.956421 0.032288 0.096771\n0.040466 0.021240 0.109558\n0.062195 0.021973 0.109344\n0.084900 0.022705 0.109100\n0.108643 0.023468 0.108826\n0.133606 0.024323 0.108521\n0.159821 0.025116 0.108246\n0.187469 0.026001 0.107910\n0.216766 0.026855 0.107574\n0.247955 0.027832 0.107208\n0.281067 0.028778 0.106842\n0.316345 0.029724 0.106445\n0.353699 0.030762 0.106018\n0.392822 0.031799 0.105591\n0.433624 0.032867 0.105164\n0.475830 0.033936 0.104736\n0.519135 0.035034 0.104248\n0.562805 0.036163 0.103760\n0.605225 0.037354 0.103302\n0.645935 0.038544 0.102814\n0.684357 0.039734 0.102295\n0.720367 0.040955 0.101746\n0.753540 0.042175 0.101227\n0.783875 0.043457 0.100708\n0.811340 0.044739 0.100159\n0.836243 0.046051 0.099640\n0.858887 0.047394 0.099060\n0.879486 0.048767 0.098480\n0.898254 0.050110 0.097931\n0.915344 0.051544 0.097351\n0.930878 0.052948 0.096802\n0.945007 0.054382 0.096191\n0.957825 0.055847 0.095612\n0.041840 0.043030 0.109100\n0.063721 0.043854 0.108826\n0.086487 0.044647 0.108521\n0.110413 0.045532 0.108246\n0.135468 0.046448 0.107941\n0.161865 0.047333 0.107574\n0.189728 0.048309 0.107208\n0.219208 0.049316 0.106873\n0.250610 0.050323 0.106445\n0.283997 0.051361 0.106018\n0.319519 0.052460 0.105621\n0.357117 0.053558 0.105164\n0.396515 0.054688 0.104736\n0.437469 0.055817 0.104279\n0.479889 0.057007 0.103790\n0.523376 0.058228 0.103302\n0.567017 0.059448 0.102844\n0.609375 0.060730 0.102295\n0.649902 0.061920 0.101776\n0.688202 0.063263 0.101257\n0.723969 0.064606 0.100739\n0.756927 0.065918 0.100189\n0.786926 0.067322 0.099640\n0.814209 0.068695 0.099091\n0.838837 0.070099 0.098511\n0.861298 0.071533 0.097961\n0.881714 0.072998 0.097382\n0.900269 0.074463 0.096802\n0.917236 0.075928 0.096222\n0.932617 0.077423 0.095642\n0.946594 0.078949 0.095032\n0.959259 0.080536 0.094421\n0.043304 0.065826 0.108521\n0.065277 0.066742 0.108246\n0.088226 0.067657 0.107941\n0.112244 0.068665 0.107574\n0.137451 0.069611 0.107208\n0.164062 0.070648 0.106873\n0.192108 0.071716 0.106445\n0.221802 0.072754 0.106049\n0.253418 0.073914 0.105621\n0.287079 0.075073 0.105194\n0.322876 0.076233 0.104767\n0.360687 0.077454 0.104279\n0.400360 0.078674 0.103790\n0.441559 0.079926 0.103333\n0.484161 0.081207 0.102844\n0.527679 0.082458 0.102325\n0.571442 0.083832 0.101776\n0.613678 0.085175 0.101257\n0.654022 0.086548 0.100739\n0.692108 0.087952 0.100220\n0.727661 0.089417 0.099670\n0.760315 0.090820 0.099121\n0.790131 0.092316 0.098511\n0.817078 0.093842 0.097961\n0.841492 0.095306 0.097412\n0.863739 0.096863 0.096832\n0.883942 0.098419 0.096222\n0.902313 0.099976 0.095642\n0.919067 0.101593 0.095062\n0.934326 0.103149 0.094482\n0.948212 0.104828 0.093872\n0.960693 0.106445 0.093292\n0.044891 0.089813 0.107971\n0.066986 0.090820 0.107574\n0.090057 0.091858 0.107239\n0.114288 0.092926 0.106903\n0.139618 0.094025 0.106476\n0.166382 0.095154 0.106049\n0.194641 0.096313 0.105652\n0.224579 0.097504 0.105225\n0.256409 0.098724 0.104797\n0.290344 0.099976 0.104309\n0.326385 0.101227 0.103821\n0.364441 0.102570 0.103363\n0.404327 0.103912 0.102875\n0.445770 0.105255 0.102356\n0.488556 0.106659 0.101807\n0.532257 0.108063 0.101288\n0.575928 0.109497 0.100769\n0.618134 0.110992 0.100220\n0.658264 0.112457 0.099701\n0.696198 0.113983 0.099121\n0.731445 0.115540 0.098541\n0.763855 0.117065 0.097961\n0.793304 0.118683 0.097412\n0.819977 0.120270 0.096832\n0.844177 0.121887 0.096252\n0.866211 0.123566 0.095673\n0.886169 0.125183 0.095093\n0.904388 0.126892 0.094482\n0.920990 0.128632 0.093872\n0.936066 0.130280 0.093323\n0.949768 0.132050 0.092712\n0.962158 0.133850 0.092102\n0.046600 0.115051 0.107239\n0.068787 0.116150 0.106903\n0.092041 0.117310 0.106476\n0.116364 0.118530 0.106079\n0.141876 0.119690 0.105682\n0.168793 0.120972 0.105225\n0.197327 0.122253 0.104797\n0.227417 0.123566 0.104340\n0.259521 0.124878 0.103851\n0.293701 0.126251 0.103363\n0.330078 0.127655 0.102875\n0.368347 0.129089 0.102356\n0.408447 0.130524 0.101837\n0.450165 0.132019 0.101318\n0.493103 0.133545 0.100769\n0.536987 0.135010 0.100250\n0.580566 0.136627 0.099701\n0.622620 0.138214 0.099152\n0.662567 0.139801 0.098572\n0.700226 0.141449 0.097992\n0.735260 0.143097 0.097443\n0.767334 0.144745 0.096863\n0.796509 0.146484 0.096252\n0.822906 0.148224 0.095673\n0.846893 0.149963 0.095093\n0.868683 0.151703 0.094513\n0.888428 0.153503 0.093903\n0.906494 0.155304 0.093353\n0.922913 0.157166 0.092712\n0.937836 0.158997 0.092133\n0.951355 0.160858 0.091522\n0.963562 0.162750 0.090912\n0.048401 0.141693 0.106476\n0.070709 0.142944 0.106079\n0.094086 0.144196 0.105682\n0.118591 0.145538 0.105255\n0.144257 0.146851 0.104828\n0.171448 0.148224 0.104340\n0.200073 0.149628 0.103851\n0.230469 0.151093 0.103394\n0.262787 0.152527 0.102875\n0.297272 0.154053 0.102386\n0.333832 0.155548 0.101837\n0.372437 0.157104 0.101318\n0.412781 0.158691 0.100800\n0.454620 0.160309 0.100250\n0.497772 0.161957 0.099731\n0.541779 0.163605 0.099182\n0.585297 0.165314 0.098572\n0.627167 0.167023 0.097992\n0.666931 0.168732 0.097473\n0.704346 0.170532 0.096893\n0.739105 0.172333 0.096283\n0.770874 0.174133 0.095703\n0.799744 0.175995 0.095123\n0.825867 0.177826 0.094543\n0.849579 0.179718 0.093933\n0.871124 0.181641 0.093353\n0.890717 0.183533 0.092743\n0.908569 0.185486 0.092163\n0.924805 0.187469 0.091553\n0.939545 0.189423 0.090942\n0.952942 0.191437 0.090393\n0.964996 0.193512 0.089783\n0.050293 0.169952 0.105713\n0.072754 0.171326 0.105255\n0.096252 0.172729 0.104828\n0.120911 0.174194 0.104370\n0.146790 0.175629 0.103882\n0.174103 0.177185 0.103394\n0.203003 0.178711 0.102875\n0.233612 0.180267 0.102417\n0.266235 0.181885 0.101868\n0.300934 0.183502 0.101349\n0.337769 0.185181 0.100830\n0.376648 0.186890 0.100250\n0.417206 0.188568 0.099762\n0.459290 0.190369 0.099182\n0.502625 0.192139 0.098602\n0.546722 0.193909 0.098053\n0.590149 0.195801 0.097504\n0.631836 0.197662 0.096893\n0.671387 0.199524 0.096313\n0.708557 0.201447 0.095703\n0.742981 0.203430 0.095123\n0.774445 0.205353 0.094543\n0.802979 0.207336 0.093933\n0.828827 0.209320 0.093384\n0.852264 0.211395 0.092743\n0.873596 0.213470 0.092163\n0.892975 0.215515 0.091583\n0.910645 0.217621 0.090973\n0.926697 0.219757 0.090393\n0.941254 0.221832 0.089813\n0.954498 0.224030 0.089203\n0.966431 0.226227 0.088623\n0.052307 0.199982 0.104828\n0.074890 0.201477 0.104370\n0.098541 0.203064 0.103882\n0.123383 0.204681 0.103424\n0.149384 0.206268 0.102905\n0.176910 0.207947 0.102417\n0.205994 0.209656 0.101868\n0.236847 0.211365 0.101379\n0.269745 0.213135 0.100830\n0.304718 0.214874 0.100281\n0.341919 0.216705 0.099762\n0.380951 0.218597 0.099213\n0.421753 0.220459 0.098633\n0.464111 0.222382 0.098053\n0.507568 0.224335 0.097504\n0.551727 0.226257 0.096893\n0.594971 0.228271 0.096313\n0.636566 0.230286 0.095734\n0.675903 0.232361 0.095184\n0.712769 0.234436 0.094574\n0.746826 0.236511 0.093994\n0.778015 0.238678 0.093384\n0.806274 0.240845 0.092773\n0.831787 0.242981 0.092194\n0.855011 0.245209 0.091583\n0.876099 0.247406 0.090973\n0.895264 0.249664 0.090424\n0.912689 0.251953 0.089813\n0.928589 0.254211 0.089233\n0.942993 0.256531 0.088654\n0.956055 0.258820 0.088074\n0.967804 0.261139 0.087494\n0.054413 0.232025 0.103912\n0.077118 0.233704 0.103455\n0.100922 0.235413 0.102936\n0.125885 0.237213 0.102448\n0.152130 0.238953 0.101898\n0.179871 0.240845 0.101379\n0.209106 0.242645 0.100861\n0.240295 0.244537 0.100311\n0.273438 0.246490 0.099792\n0.308716 0.248413 0.099243\n0.346130 0.250427 0.098633\n0.385468 0.252502 0.098083\n0.426483 0.254517 0.097504\n0.468964 0.256622 0.096924\n0.512634 0.258759 0.096344\n0.556824 0.260895 0.095764\n0.599976 0.263031 0.095184\n0.641357 0.265289 0.094574\n0.680420 0.267487 0.093994\n0.717041 0.269745 0.093384\n0.750793 0.272003 0.092804\n0.781616 0.274353 0.092224\n0.809509 0.276703 0.091614\n0.834778 0.279022 0.091034\n0.857727 0.281433 0.090424\n0.878601 0.283813 0.089844\n0.897522 0.286255 0.089264\n0.914795 0.288696 0.088684\n0.930481 0.291199 0.088104\n0.944702 0.293640 0.087524\n0.957611 0.296143 0.086975\n0.969208 0.298645 0.086395\n0.056610 0.266357 0.102936\n0.079437 0.268158 0.102448\n0.103424 0.270081 0.101929\n0.128571 0.272095 0.101410\n0.154968 0.274017 0.100861\n0.182861 0.276001 0.100311\n0.212372 0.278076 0.099792\n0.243774 0.280121 0.099274\n0.277191 0.282288 0.098663\n0.312744 0.284393 0.098114\n0.350494 0.286591 0.097534\n0.390076 0.288879 0.096954\n0.431305 0.291046 0.096375\n0.473999 0.293335 0.095764\n0.517822 0.295654 0.095215\n0.562042 0.297974 0.094604\n0.605011 0.300385 0.094025\n0.646118 0.302734 0.093384\n0.684998 0.305145 0.092804\n0.721252 0.307617 0.092224\n0.754700 0.310028 0.091644\n0.785187 0.312592 0.091034\n0.812775 0.315125 0.090424\n0.837738 0.317627 0.089874\n0.860443 0.320221 0.089264\n0.881073 0.322815 0.088715\n0.899780 0.325378 0.088135\n0.916870 0.328033 0.087524\n0.932343 0.330597 0.087006\n0.946442 0.333282 0.086395\n0.959167 0.335968 0.085876\n0.970612 0.338654 0.085327\n0.058868 0.303162 0.101929\n0.081848 0.305145 0.101440\n0.105988 0.307312 0.100861\n0.131317 0.309418 0.100342\n0.157867 0.311554 0.099792\n0.186005 0.313782 0.099274\n0.215729 0.315979 0.098694\n0.247375 0.318268 0.098114\n0.281128 0.320587 0.097534\n0.316986 0.322876 0.096985\n0.354919 0.325317 0.096375\n0.394775 0.327698 0.095795\n0.436218 0.330109 0.095215\n0.479156 0.332611 0.094635\n0.523041 0.335052 0.094025\n0.567200 0.337555 0.093414\n0.610077 0.340149 0.092834\n0.650940 0.342682 0.092255\n0.689545 0.345276 0.091675\n0.725555 0.347961 0.091064\n0.758636 0.350586 0.090454\n0.788757 0.353271 0.089905\n0.816010 0.355957 0.089294\n0.840698 0.358612 0.088745\n0.863129 0.361389 0.088135\n0.883545 0.364166 0.087555\n0.902008 0.366882 0.087006\n0.918884 0.369690 0.086426\n0.934174 0.372437 0.085876\n0.948090 0.375275 0.085327\n0.960663 0.378082 0.084778\n0.971954 0.380890 0.084259\n0.061218 0.342407 0.100891\n0.084381 0.344574 0.100372\n0.108643 0.346863 0.099823\n0.134125 0.349121 0.099304\n0.160919 0.351532 0.098694\n0.189270 0.353943 0.098145\n0.219208 0.356323 0.097534\n0.251129 0.358795 0.096985\n0.285156 0.361359 0.096405\n0.321289 0.363770 0.095825\n0.359497 0.366364 0.095215\n0.399597 0.368927 0.094635\n0.441254 0.371521 0.094025\n0.484344 0.374176 0.093414\n0.528381 0.376801 0.092865\n0.572540 0.379517 0.092255\n0.615204 0.382233 0.091675\n0.655853 0.384949 0.091095\n0.694122 0.387695 0.090485\n0.729828 0.390533 0.089905\n0.762573 0.393280 0.089325\n0.792297 0.396118 0.088745\n0.819244 0.398987 0.088165\n0.843628 0.401825 0.087585\n0.865784 0.404694 0.087006\n0.885925 0.407562 0.086456\n0.904236 0.410492 0.085876\n0.920898 0.413452 0.085358\n0.936035 0.416290 0.084808\n0.949768 0.419281 0.084259\n0.962158 0.422272 0.083740\n0.973297 0.425140 0.083221\n0.063690 0.383881 0.099823\n0.086975 0.386230 0.099304\n0.111389 0.388763 0.098724\n0.137024 0.391144 0.098175\n0.164032 0.393768 0.097565\n0.192566 0.396332 0.097015\n0.222809 0.398834 0.096436\n0.254944 0.401489 0.095825\n0.289276 0.404205 0.095245\n0.325684 0.406830 0.094696\n0.364197 0.409576 0.094055\n0.404572 0.412354 0.093445\n0.446442 0.415039 0.092865\n0.489655 0.417847 0.092285\n0.533844 0.420624 0.091705\n0.577850 0.423523 0.091095\n0.620300 0.426361 0.090485\n0.660736 0.429199 0.089935\n0.698730 0.432129 0.089325\n0.734070 0.435028 0.088776\n0.766418 0.437958 0.088196\n0.795837 0.440979 0.087585\n0.822449 0.443970 0.087006\n0.846558 0.446899 0.086487\n0.868439 0.449890 0.085907\n0.888336 0.452881 0.085388\n0.906433 0.455933 0.084808\n0.922913 0.458984 0.084259\n0.937836 0.461975 0.083771\n0.951416 0.465027 0.083252\n0.963623 0.468109 0.082733\n0.974609 0.471130 0.082245\n0.066162 0.427399 0.098755\n0.089630 0.429962 0.098175\n0.114258 0.432587 0.097565\n0.140015 0.435181 0.097046\n0.167236 0.437927 0.096436\n0.195984 0.440613 0.095856\n0.226471 0.443268 0.095276\n0.258911 0.446106 0.094696\n0.293457 0.448975 0.094055\n0.330170 0.451721 0.093475\n0.368988 0.454590 0.092896\n0.409485 0.457428 0.092316\n0.451630 0.460388 0.091736\n0.495026 0.463287 0.091125\n0.539307 0.466217 0.090546\n0.583160 0.469177 0.089966\n0.625458 0.472198 0.089355\n0.665588 0.475128 0.088806\n0.703308 0.478210 0.088196\n0.738312 0.481262 0.087616\n0.770294 0.484222 0.087036\n0.799347 0.487366 0.086487\n0.825592 0.490356 0.085938\n0.849457 0.493439 0.085388\n0.871094 0.496552 0.084839\n0.890717 0.499664 0.084290\n0.908600 0.502777 0.083771\n0.924896 0.505890 0.083252\n0.939636 0.509003 0.082764\n0.953033 0.512115 0.082245\n0.965088 0.515259 0.081757\n0.975922 0.518341 0.081268\n0.068756 0.472626 0.097595\n0.092377 0.475342 0.097046\n0.117096 0.478088 0.096466\n0.143097 0.480835 0.095886\n0.170532 0.483704 0.095276\n0.199524 0.486572 0.094696\n0.230194 0.489349 0.094086\n0.262939 0.492340 0.093506\n0.297821 0.495239 0.092926\n0.334747 0.498169 0.092316\n0.373810 0.501129 0.091736\n0.414581 0.504028 0.091156\n0.456940 0.507141 0.090546\n0.500549 0.510193 0.089966\n0.544861 0.513153 0.089386\n0.588562 0.516235 0.088806\n0.630615 0.519348 0.088226\n0.670471 0.522369 0.087646\n0.707886 0.525513 0.087067\n0.742523 0.528717 0.086517\n0.774139 0.531769 0.085938\n0.802795 0.534912 0.085419\n0.828735 0.537994 0.084869\n0.852264 0.541138 0.084320\n0.873657 0.544342 0.083801\n0.893097 0.547333 0.083282\n0.910736 0.550537 0.082764\n0.926819 0.553619 0.082245\n0.941376 0.556702 0.081787\n0.954620 0.559814 0.081299\n0.966522 0.562897 0.080841\n0.977173 0.565887 0.080383\n0.071411 0.519257 0.096497\n0.095215 0.522156 0.095917\n0.120087 0.524963 0.095306\n0.146240 0.527832 0.094727\n0.173889 0.530792 0.094116\n0.203094 0.533752 0.093506\n0.234070 0.536652 0.092926\n0.267059 0.539673 0.092346\n0.302246 0.542725 0.091766\n0.339478 0.545654 0.091187\n0.378784 0.548706 0.090576\n0.419708 0.551697 0.089966\n0.462280 0.554718 0.089417\n0.506042 0.557739 0.088837\n0.550446 0.560760 0.088257\n0.593964 0.563904 0.087646\n0.635803 0.566895 0.087067\n0.675323 0.569916 0.086548\n0.712433 0.573029 0.085968\n0.746704 0.576080 0.085419\n0.777954 0.579102 0.084869\n0.806274 0.582153 0.084320\n0.831848 0.585114 0.083832\n0.855103 0.588226 0.083282\n0.876251 0.591278 0.082764\n0.895416 0.594238 0.082275\n0.912842 0.597229 0.081787\n0.928741 0.600250 0.081299\n0.943146 0.603149 0.080841\n0.956177 0.606171 0.080414\n0.967896 0.609070 0.079956\n0.978424 0.611969 0.079498\n0.074127 0.566376 0.095337\n0.098053 0.569183 0.094727\n0.123169 0.572052 0.094147\n0.149475 0.574890 0.093536\n0.177307 0.577789 0.092926\n0.206787 0.580719 0.092346\n0.237946 0.583588 0.091797\n0.271240 0.586517 0.091187\n0.306671 0.589355 0.090607\n0.344269 0.592316 0.089996\n0.383820 0.595276 0.089417\n0.424957 0.598206 0.088837\n0.467712 0.601166 0.088257\n0.511566 0.604095 0.087677\n0.555969 0.606995 0.087097\n0.599304 0.609955 0.086548\n0.640900 0.612946 0.085968\n0.680176 0.615814 0.085419\n0.716919 0.618774 0.084900\n0.750824 0.621765 0.084351\n0.781677 0.624573 0.083832\n0.809631 0.627533 0.083313\n0.834930 0.630402 0.082794\n0.857880 0.633270 0.082275\n0.878754 0.636139 0.081787\n0.897705 0.639008 0.081329\n0.914948 0.641846 0.080872\n0.930603 0.644653 0.080414\n0.944855 0.647400 0.079987\n0.957703 0.650238 0.079529\n0.969299 0.653015 0.079102\n0.979645 0.655731 0.079071\n0.076935 0.611969 0.094177\n0.100983 0.614746 0.093567\n0.126251 0.617554 0.092957\n0.152771 0.620270 0.092377\n0.180817 0.623047 0.091797\n0.210480 0.625885 0.091217\n0.241943 0.628662 0.090607\n0.275513 0.631500 0.089996\n0.311279 0.634247 0.089447\n0.349091 0.637054 0.088837\n0.388885 0.639923 0.088287\n0.430267 0.642670 0.087708\n0.473175 0.645538 0.087128\n0.517181 0.648346 0.086548\n0.561523 0.651123 0.085999\n0.604645 0.653900 0.085449\n0.645996 0.656708 0.084900\n0.684998 0.659485 0.084381\n0.721405 0.662262 0.083832\n0.754852 0.664917 0.083344\n0.785339 0.667755 0.082825\n0.812988 0.670471 0.082306\n0.837952 0.673126 0.081818\n0.860626 0.675842 0.081329\n0.881226 0.678558 0.080872\n0.899963 0.681152 0.080414\n0.916992 0.683838 0.079987\n0.932465 0.686462 0.079529\n0.946503 0.689026 0.079132\n0.959198 0.691620 0.079071\n0.970612 0.694122 0.079071\n0.980835 0.696747 0.079071\n0.079773 0.655457 0.092987\n0.103973 0.658142 0.092407\n0.129425 0.660797 0.091797\n0.156158 0.663391 0.091248\n0.184387 0.666077 0.090637\n0.214294 0.668762 0.090027\n0.246002 0.671387 0.089478\n0.279846 0.674072 0.088867\n0.315857 0.676636 0.088318\n0.353943 0.679352 0.087738\n0.394012 0.682007 0.087128\n0.435577 0.684631 0.086578\n0.478668 0.687317 0.086029\n0.522797 0.689911 0.085449\n0.567047 0.692535 0.084930\n0.610046 0.695129 0.084381\n0.651123 0.697784 0.083832\n0.689697 0.700317 0.083344\n0.725769 0.702881 0.082825\n0.758911 0.705414 0.082336\n0.788971 0.707977 0.081818\n0.816254 0.710541 0.081329\n0.840881 0.712982 0.080872\n0.863312 0.715485 0.080414\n0.883667 0.717987 0.079987\n0.902161 0.720367 0.079559\n0.918976 0.722839 0.079132\n0.934265 0.725281 0.079071\n0.948120 0.727570 0.079071\n0.960663 0.729950 0.079071\n0.971893 0.732269 0.079071\n0.981964 0.734558 0.079071\n0.082672 0.696350 0.091827\n0.107025 0.698883 0.091248\n0.132660 0.701385 0.090637\n0.159546 0.703827 0.090057\n0.188019 0.706329 0.089478\n0.218109 0.708801 0.088898\n0.250122 0.711273 0.088348\n0.284302 0.713776 0.087738\n0.320526 0.716217 0.087158\n0.358948 0.718719 0.086578\n0.399170 0.721161 0.086029\n0.440979 0.723602 0.085480\n0.484192 0.726105 0.084961\n0.528442 0.728485 0.084412\n0.572601 0.730865 0.083862\n0.615356 0.733307 0.083374\n0.656036 0.735626 0.082855\n0.694427 0.738037 0.082336\n0.730133 0.740387 0.081848\n0.762848 0.742676 0.081360\n0.792572 0.745026 0.080872\n0.819489 0.747375 0.080444\n0.843811 0.749603 0.079987\n0.865967 0.751862 0.079559\n0.886047 0.754089 0.079132\n0.904297 0.756287 0.079071\n0.920929 0.758514 0.079071\n0.936005 0.760559 0.079071\n0.949707 0.762787 0.079071\n0.962097 0.764862 0.079071\n0.973206 0.766968 0.079071\n0.983063 0.768982 0.079071\n0.085602 0.734253 0.090668\n0.110138 0.736542 0.090088\n0.135925 0.738892 0.089508\n0.163025 0.741119 0.088928\n0.191650 0.743469 0.088348\n0.222046 0.745697 0.087769\n0.254303 0.748016 0.087189\n0.288727 0.750305 0.086609\n0.325287 0.752533 0.086090\n0.363922 0.754822 0.085510\n0.404419 0.757080 0.084961\n0.446381 0.759277 0.084442\n0.489746 0.761505 0.083893\n0.534088 0.763733 0.083374\n0.578094 0.765900 0.082886\n0.620575 0.768066 0.082367\n0.661011 0.770142 0.081848\n0.699066 0.772339 0.081360\n0.734406 0.774445 0.080902\n0.766724 0.776550 0.080475\n0.796051 0.778625 0.080017\n0.822632 0.780701 0.079590\n0.846680 0.782715 0.079163\n0.868561 0.784729 0.079071\n0.888397 0.786743 0.079071\n0.906433 0.788666 0.079071\n0.922852 0.790619 0.079071\n0.937744 0.792542 0.079071\n0.951263 0.794434 0.079071\n0.963470 0.796295 0.079071\n0.974426 0.798126 0.079071\n0.984161 0.800018 0.079071\n0.088593 0.768768 0.089508\n0.113281 0.770905 0.088928\n0.139191 0.772980 0.088379\n0.166534 0.775085 0.087799\n0.195404 0.777191 0.087189\n0.225983 0.779236 0.086639\n0.258545 0.781342 0.086090\n0.293274 0.783417 0.085510\n0.330078 0.785370 0.084961\n0.368927 0.787415 0.084442\n0.409607 0.789459 0.083893\n0.451813 0.791443 0.083374\n0.495331 0.793488 0.082886\n0.539673 0.795441 0.082397\n0.583588 0.797363 0.081879\n0.625824 0.799347 0.081390\n0.665924 0.801239 0.080933\n0.703644 0.803192 0.080475\n0.738617 0.805084 0.080017\n0.770569 0.806946 0.079590\n0.799530 0.808777 0.079163\n0.825714 0.810638 0.079071\n0.849487 0.812408 0.079071\n0.871063 0.814240 0.079071\n0.890656 0.815979 0.079071\n0.908478 0.817719 0.079071\n0.924713 0.819489 0.079071\n0.939423 0.821167 0.079071\n0.952789 0.822876 0.079071\n0.964813 0.824554 0.079071\n0.975586 0.826141 0.079071\n0.985199 0.827789 0.079071\n0.091614 0.799957 0.088379\n0.116486 0.801880 0.087799\n0.142548 0.803741 0.087250\n0.170074 0.805634 0.086670\n0.199188 0.807526 0.086090\n0.229980 0.809387 0.085541\n0.262787 0.811249 0.084991\n0.297821 0.813141 0.084473\n0.334869 0.814880 0.083923\n0.373993 0.816803 0.083405\n0.414886 0.818604 0.082886\n0.457214 0.820343 0.082397\n0.500854 0.822174 0.081909\n0.545288 0.823914 0.081421\n0.588989 0.825684 0.080933\n0.630981 0.827454 0.080505\n0.670807 0.829132 0.080048\n0.708160 0.830872 0.079620\n0.742737 0.832581 0.079193\n0.774292 0.834198 0.079071\n0.802887 0.835876 0.079071\n0.828766 0.837524 0.079071\n0.852203 0.839142 0.079071\n0.873535 0.840729 0.079071\n0.892883 0.842316 0.079071\n0.910492 0.843872 0.079071\n0.926514 0.845428 0.079071\n0.941040 0.846924 0.079071\n0.954254 0.848450 0.079071\n0.966095 0.849915 0.079071\n0.976746 0.851349 0.079071\n0.986206 0.852814 0.079071\n0.094696 0.827942 0.087250\n0.119690 0.829712 0.086670\n0.145966 0.831390 0.086121\n0.173706 0.833130 0.085571\n0.203003 0.834808 0.084991\n0.234039 0.836487 0.084503\n0.267090 0.838165 0.083954\n0.302399 0.839844 0.083405\n0.339752 0.841492 0.082916\n0.379120 0.843140 0.082428\n0.420135 0.844757 0.081909\n0.462708 0.846405 0.081421\n0.506439 0.848022 0.080933\n0.550842 0.849579 0.080505\n0.594360 0.851135 0.080078\n0.636078 0.852722 0.079620\n0.675598 0.854248 0.079224\n0.712585 0.855804 0.079071\n0.746765 0.857330 0.079071\n0.777924 0.858795 0.079071\n0.806152 0.860291 0.079071\n0.831696 0.861786 0.079071\n0.854889 0.863190 0.079071\n0.875916 0.864624 0.079071\n0.895050 0.865997 0.079071\n0.912445 0.867401 0.079071\n0.928253 0.868774 0.079071\n0.942627 0.870117 0.079071\n0.955627 0.871460 0.079071\n0.967377 0.872772 0.079071\n0.977875 0.874054 0.079071\n0.987183 0.875305 0.079071\n0.097778 0.853210 0.086121\n0.122955 0.854797 0.085571\n0.149353 0.856293 0.085022\n0.177277 0.857849 0.084503\n0.206818 0.859436 0.083954\n0.238068 0.860901 0.083435\n0.271423 0.862427 0.082916\n0.306976 0.863983 0.082428\n0.344574 0.865417 0.081940\n0.384155 0.866882 0.081451\n0.425385 0.868347 0.080963\n0.468109 0.869812 0.080536\n0.511963 0.871277 0.080078\n0.556305 0.872681 0.079651\n0.599579 0.874084 0.079224\n0.641083 0.875488 0.079071\n0.680237 0.876862 0.079071\n0.716919 0.878235 0.079071\n0.750702 0.879608 0.079071\n0.781525 0.880951 0.079071\n0.809326 0.882263 0.079071\n0.834595 0.883545 0.079071\n0.857452 0.884888 0.079071\n0.878265 0.886139 0.079071\n0.897125 0.887360 0.079071\n0.914337 0.888611 0.079071\n0.929993 0.889862 0.079071\n0.944153 0.891022 0.079071\n0.957001 0.892212 0.079071\n0.968597 0.893402 0.079071\n0.978912 0.894501 0.079071\n0.988098 0.895630 0.079071\n0.100891 0.875977 0.085052\n0.126221 0.877380 0.084503\n0.152802 0.878784 0.083984\n0.180939 0.880188 0.083466\n0.210663 0.881592 0.082947\n0.242188 0.882965 0.082458\n0.275787 0.884308 0.081940\n0.311554 0.885651 0.081482\n0.349426 0.886993 0.080994\n0.389252 0.888336 0.080536\n0.430634 0.889618 0.080109\n0.473511 0.890961 0.079651\n0.517456 0.892242 0.079224\n0.561707 0.893524 0.079071\n0.604767 0.894775 0.079071\n0.645966 0.896057 0.079071\n0.684845 0.897278 0.079071\n0.721130 0.898499 0.079071\n0.754547 0.899719 0.079071\n0.784943 0.900879 0.079071\n0.812469 0.902100 0.079071\n0.837341 0.903229 0.079071\n0.859985 0.904388 0.079071\n0.880554 0.905548 0.079071\n0.899200 0.906647 0.079071\n0.916199 0.907745 0.079071\n0.931641 0.908813 0.079071\n0.945648 0.909912 0.079071\n0.958313 0.910950 0.079071\n0.969757 0.911957 0.079071\n0.979950 0.912933 0.079071\n0.988983 0.913940 0.079071\n0.104004 0.896545 0.084015\n0.129547 0.897827 0.083466\n0.156311 0.899078 0.082947\n0.184601 0.900330 0.082458\n0.214569 0.901581 0.081970\n0.246277 0.902832 0.081482\n0.280212 0.904053 0.080994\n0.316162 0.905273 0.080566\n0.354309 0.906494 0.080109\n0.394318 0.907684 0.079681\n0.435852 0.908844 0.079254\n0.478882 0.910034 0.079071\n0.522919 0.911194 0.079071\n0.567047 0.912323 0.079071\n0.609894 0.913452 0.079071\n0.650787 0.914612 0.079071\n0.689331 0.915710 0.079071\n0.725281 0.916809 0.079071\n0.758301 0.917847 0.079071\n0.788330 0.918945 0.079071\n0.815521 0.919983 0.079071\n0.840057 0.921021 0.079071\n0.862427 0.922058 0.079071\n0.882721 0.923065 0.079071\n0.901184 0.924042 0.079071\n0.917969 0.925018 0.079071\n0.933228 0.925964 0.079071\n0.947052 0.926880 0.079071\n0.959595 0.927856 0.079071\n0.970856 0.928711 0.079071\n0.980957 0.929657 0.079071\n0.989868 0.930481 0.079071\n0.107178 0.915161 0.082977\n0.132843 0.916290 0.082458\n0.159760 0.917419 0.082001\n0.188293 0.918549 0.081512\n0.218384 0.919647 0.081024\n0.250397 0.920807 0.080597\n0.284546 0.921906 0.080139\n0.320831 0.922974 0.079712\n0.359222 0.924072 0.079285\n0.399384 0.925171 0.079071\n0.441071 0.926178 0.079071\n0.484192 0.927246 0.079071\n0.528290 0.928284 0.079071\n0.572296 0.929321 0.079071\n0.614899 0.930298 0.079071\n0.655426 0.931305 0.079071\n0.693726 0.932312 0.079071\n0.729279 0.933289 0.079071\n0.761932 0.934235 0.079071\n0.791565 0.935211 0.079071\n0.818390 0.936127 0.079071\n0.842682 0.937012 0.079071\n0.864777 0.937927 0.079071\n0.884888 0.938843 0.079071\n0.903076 0.939697 0.079071\n0.919647 0.940582 0.079071\n0.934784 0.941406 0.079071\n0.948425 0.942230 0.079071\n0.960815 0.943085 0.079071\n0.971954 0.943848 0.079071\n0.981903 0.944641 0.079071\n0.990662 0.945374 0.079071\n0.110382 0.931885 0.082001\n0.136139 0.932922 0.081512\n0.163269 0.933929 0.081055\n0.191986 0.934967 0.080597\n0.222290 0.935944 0.080139\n0.254547 0.936951 0.079712\n0.288971 0.937988 0.079285\n0.325500 0.938934 0.079071\n0.364014 0.939941 0.079071\n0.404388 0.940887 0.079071\n0.446259 0.941833 0.079071\n0.489471 0.942749 0.079071\n0.533661 0.943695 0.079071\n0.577515 0.944580 0.079071\n0.619812 0.945496 0.079071\n0.660034 0.946381 0.079071\n0.697998 0.947266 0.079071\n0.733185 0.948120 0.079071\n0.765472 0.948975 0.079071\n0.794739 0.949799 0.079071\n0.821259 0.950653 0.079071\n0.845245 0.951447 0.079071\n0.867065 0.952209 0.079071\n0.886902 0.953033 0.079071\n0.904907 0.953796 0.079071\n0.921326 0.954529 0.079071\n0.936218 0.955261 0.079071\n0.949768 0.956024 0.079071\n0.961975 0.956726 0.079071\n0.972992 0.957397 0.079071\n0.982788 0.958069 0.079071\n0.991425 0.958740 0.079071\n0.113525 0.946991 0.081055\n0.139435 0.947906 0.080627\n0.166748 0.948822 0.080170\n0.195648 0.949768 0.079712\n0.226196 0.950653 0.079285\n0.258698 0.951538 0.079071\n0.293335 0.952423 0.079071\n0.330078 0.953278 0.079071\n0.368835 0.954163 0.079071\n0.409393 0.955017 0.079071\n0.451355 0.955841 0.079071\n0.494720 0.956665 0.079071\n0.538879 0.957489 0.079071\n0.582550 0.958313 0.079071\n0.624664 0.959106 0.079071\n0.664581 0.959869 0.079071\n0.702148 0.960632 0.079071\n0.737000 0.961426 0.079071\n0.768860 0.962158 0.079071\n0.797791 0.962921 0.079071\n0.823975 0.963623 0.079071\n0.847717 0.964325 0.079071\n0.869263 0.965027 0.079071\n0.888885 0.965729 0.079071\n0.906677 0.966370 0.079071\n0.922913 0.967041 0.079071\n0.937653 0.967682 0.079071\n0.951019 0.968323 0.079071\n0.963104 0.968933 0.079071\n0.973969 0.969513 0.079071\n0.983643 0.970123 0.079071\n0.992157 0.970703 0.079071\n0.116699 0.960541 0.080170\n0.142761 0.961365 0.079742\n0.170288 0.962189 0.079285\n0.199310 0.963013 0.079071\n0.230072 0.963776 0.079071\n0.262817 0.964600 0.079071\n0.297699 0.965393 0.079071\n0.334656 0.966125 0.079071\n0.373596 0.966888 0.079071\n0.414307 0.967651 0.079071\n0.456451 0.968414 0.079071\n0.499847 0.969116 0.079071\n0.543976 0.969818 0.079071\n0.587494 0.970551 0.079071\n0.629333 0.971252 0.079071\n0.668884 0.971893 0.079071\n0.706207 0.972595 0.079071\n0.740662 0.973297 0.079071\n0.772186 0.973907 0.079071\n0.800720 0.974548 0.079071\n0.826599 0.975189 0.079071\n0.850067 0.975800 0.079071\n0.871368 0.976410 0.079071\n0.890747 0.976990 0.079071\n0.908356 0.977570 0.079071\n0.924408 0.978149 0.079071\n0.938995 0.978699 0.079071\n0.952209 0.979248 0.079071\n0.964172 0.979797 0.079071\n0.974884 0.980286 0.079071\n0.984436 0.980774 0.079071\n0.992828 0.981262 0.079071\n0.039490 0.000671 0.133972\n0.061096 0.001312 0.133759\n0.083679 0.001984 0.133545\n0.107361 0.002686 0.133301\n0.132141 0.003418 0.132996\n0.158264 0.004150 0.132721\n0.185730 0.004944 0.132416\n0.214905 0.005798 0.132111\n0.245850 0.006622 0.131744\n0.278809 0.007507 0.131378\n0.313904 0.008423 0.130981\n0.351044 0.009369 0.130615\n0.389984 0.010315 0.130188\n0.430634 0.011261 0.129761\n0.472626 0.012238 0.129333\n0.515778 0.013306 0.128845\n0.559418 0.014343 0.128357\n0.601898 0.015411 0.127899\n0.642731 0.016541 0.127380\n0.681305 0.017670 0.126862\n0.717438 0.018799 0.126312\n0.750854 0.019958 0.125824\n0.781403 0.021210 0.125275\n0.809021 0.022400 0.124725\n0.834167 0.023621 0.124146\n0.856995 0.024902 0.123566\n0.877716 0.026123 0.122986\n0.896606 0.027466 0.122406\n0.913818 0.028748 0.121796\n0.929504 0.030090 0.121185\n0.943787 0.031433 0.120575\n0.956635 0.032776 0.119965\n0.040710 0.021484 0.133545\n0.062469 0.022217 0.133301\n0.085175 0.023010 0.132996\n0.108978 0.023743 0.132751\n0.133911 0.024597 0.132416\n0.160187 0.025452 0.132111\n0.187897 0.026337 0.131744\n0.217255 0.027252 0.131409\n0.248413 0.028168 0.131012\n0.281586 0.029114 0.130615\n0.316956 0.030151 0.130188\n0.354309 0.031128 0.129761\n0.393494 0.032166 0.129333\n0.434326 0.033264 0.128845\n0.476532 0.034302 0.128387\n0.519897 0.035431 0.127899\n0.563599 0.036591 0.127380\n0.605988 0.037750 0.126892\n0.646667 0.038940 0.126343\n0.685120 0.040192 0.125824\n0.721008 0.041351 0.125305\n0.754181 0.042664 0.124725\n0.784454 0.043976 0.124176\n0.811859 0.045258 0.123566\n0.836731 0.046570 0.122986\n0.859314 0.047913 0.122406\n0.879913 0.049286 0.121826\n0.898651 0.050690 0.121216\n0.915680 0.052032 0.120605\n0.931213 0.053467 0.119995\n0.945312 0.054901 0.119385\n0.958069 0.056335 0.118774\n0.042114 0.043304 0.132996\n0.063965 0.044098 0.132751\n0.086823 0.045013 0.132416\n0.110718 0.045837 0.132111\n0.135834 0.046753 0.131775\n0.162292 0.047729 0.131409\n0.190155 0.048676 0.131012\n0.219727 0.049713 0.130646\n0.251129 0.050720 0.130188\n0.284546 0.051758 0.129791\n0.320190 0.052826 0.129364\n0.357788 0.053955 0.128876\n0.397217 0.055084 0.128418\n0.438232 0.056244 0.127930\n0.480652 0.057434 0.127411\n0.524170 0.058624 0.126892\n0.567871 0.059906 0.126343\n0.610168 0.061096 0.125854\n0.650696 0.062408 0.125305\n0.688934 0.063751 0.124725\n0.724609 0.065063 0.124207\n0.757568 0.066406 0.123596\n0.787567 0.067810 0.123016\n0.814697 0.069214 0.122437\n0.839355 0.070587 0.121826\n0.861755 0.072052 0.121246\n0.882111 0.073517 0.120636\n0.900696 0.074982 0.119995\n0.917572 0.076447 0.119385\n0.932922 0.078003 0.118805\n0.946869 0.079529 0.118195\n0.959534 0.081055 0.117554\n0.043579 0.066162 0.132446\n0.065582 0.067108 0.132141\n0.088562 0.067993 0.131775\n0.112610 0.069000 0.131439\n0.137878 0.070007 0.131042\n0.164490 0.071045 0.130646\n0.192566 0.072113 0.130219\n0.222351 0.073181 0.129791\n0.253967 0.074341 0.129364\n0.287689 0.075470 0.128876\n0.323547 0.076660 0.128418\n0.361389 0.077850 0.127960\n0.401093 0.079102 0.127411\n0.442322 0.080414 0.126923\n0.484924 0.081665 0.126373\n0.528595 0.082977 0.125854\n0.572266 0.084320 0.125336\n0.614471 0.085693 0.124756\n0.654877 0.087067 0.124207\n0.692932 0.088470 0.123596\n0.728333 0.089935 0.123047\n0.761017 0.091400 0.122437\n0.790680 0.092834 0.121857\n0.817566 0.094330 0.121246\n0.842010 0.095886 0.120636\n0.864166 0.097412 0.120026\n0.884369 0.098969 0.119415\n0.902740 0.100586 0.118805\n0.919434 0.102112 0.118225\n0.934662 0.103760 0.117554\n0.948456 0.105438 0.116974\n0.960968 0.107025 0.116364\n0.045197 0.090179 0.131805\n0.067322 0.091187 0.131439\n0.090424 0.092255 0.131042\n0.114594 0.093323 0.130676\n0.140015 0.094421 0.130219\n0.166809 0.095581 0.129822\n0.195099 0.096741 0.129395\n0.225098 0.097961 0.128906\n0.256989 0.099213 0.128448\n0.290955 0.100433 0.127960\n0.327057 0.101746 0.127441\n0.365143 0.103027 0.126953\n0.405060 0.104401 0.126373\n0.446533 0.105774 0.125885\n0.489349 0.107147 0.125366\n0.533142 0.108582 0.124756\n0.576813 0.110077 0.124237\n0.618896 0.111511 0.123627\n0.659058 0.113007 0.123047\n0.696930 0.114532 0.122467\n0.732147 0.116089 0.121887\n0.764496 0.117645 0.121277\n0.793854 0.119232 0.120667\n0.820496 0.120850 0.120056\n0.844666 0.122498 0.119415\n0.866608 0.124146 0.118835\n0.886627 0.125824 0.118225\n0.904816 0.127533 0.117584\n0.921356 0.129211 0.117004\n0.936401 0.130951 0.116394\n0.950043 0.132721 0.115753\n0.962372 0.134460 0.115143\n0.046906 0.115448 0.131073\n0.069153 0.116577 0.130676\n0.092407 0.117737 0.130249\n0.116730 0.118927 0.129822\n0.142365 0.120148 0.129395\n0.169312 0.121429 0.128906\n0.197784 0.122711 0.128448\n0.227997 0.124054 0.127991\n0.260101 0.125397 0.127472\n0.294373 0.126801 0.126953\n0.330750 0.128174 0.126404\n0.369110 0.129608 0.125885\n0.409271 0.131073 0.125366\n0.450989 0.132568 0.124786\n0.493988 0.134064 0.124268\n0.537872 0.135620 0.123657\n0.581512 0.137207 0.123077\n0.623444 0.138794 0.122498\n0.663391 0.140411 0.121887\n0.701050 0.142090 0.121277\n0.735931 0.143707 0.120697\n0.768005 0.145416 0.120056\n0.797089 0.147064 0.119446\n0.823456 0.148865 0.118866\n0.847412 0.150604 0.118256\n0.869080 0.152374 0.117615\n0.888885 0.154175 0.117004\n0.906891 0.156036 0.116394\n0.923248 0.157806 0.115784\n0.938110 0.159668 0.115143\n0.951630 0.161530 0.114532\n0.963806 0.163422 0.113922\n0.048706 0.142151 0.130280\n0.071106 0.143402 0.129852\n0.094513 0.144714 0.129395\n0.118988 0.145996 0.128937\n0.144745 0.147339 0.128479\n0.171936 0.148773 0.127991\n0.200562 0.150177 0.127472\n0.231049 0.151611 0.126953\n0.263367 0.153076 0.126434\n0.297943 0.154633 0.125885\n0.334595 0.156158 0.125397\n0.373199 0.157684 0.124817\n0.413574 0.159271 0.124268\n0.455536 0.160919 0.123657\n0.498657 0.162537 0.123108\n0.542725 0.164215 0.122498\n0.586243 0.165955 0.121918\n0.628021 0.167664 0.121307\n0.667816 0.169403 0.120697\n0.705109 0.171173 0.120117\n0.739838 0.172974 0.119476\n0.771576 0.174805 0.118896\n0.800293 0.176636 0.118286\n0.826416 0.178528 0.117645\n0.850128 0.180450 0.117035\n0.871582 0.182312 0.116425\n0.891144 0.184296 0.115814\n0.908966 0.186218 0.115173\n0.925171 0.188171 0.114532\n0.939880 0.190186 0.113922\n0.953186 0.192200 0.113312\n0.965271 0.194183 0.112671\n0.050659 0.170471 0.129395\n0.073181 0.171814 0.128937\n0.096710 0.173279 0.128479\n0.121338 0.174713 0.127991\n0.147247 0.176208 0.127502\n0.174622 0.177673 0.126984\n0.203522 0.179260 0.126434\n0.234222 0.180847 0.125916\n0.266815 0.182465 0.125397\n0.301636 0.184113 0.124817\n0.338562 0.185791 0.124268\n0.377441 0.187469 0.123688\n0.418060 0.189240 0.123108\n0.460236 0.191010 0.122528\n0.503510 0.192810 0.121948\n0.547638 0.194641 0.121338\n0.591064 0.196503 0.120728\n0.632690 0.198334 0.120117\n0.672272 0.200256 0.119507\n0.709320 0.202179 0.118927\n0.743713 0.204102 0.118286\n0.775116 0.206055 0.117645\n0.803589 0.208069 0.117065\n0.829407 0.210083 0.116425\n0.852814 0.212158 0.115814\n0.874084 0.214203 0.115204\n0.893433 0.216309 0.114563\n0.911041 0.218414 0.113953\n0.927063 0.220551 0.113342\n0.941589 0.222656 0.112701\n0.954773 0.224792 0.112152\n0.966675 0.227020 0.111511\n0.052673 0.200500 0.128510\n0.075317 0.202118 0.127991\n0.098999 0.203674 0.127502\n0.123810 0.205231 0.127014\n0.149933 0.206909 0.126465\n0.177429 0.208527 0.125946\n0.206604 0.210266 0.125427\n0.237488 0.212006 0.124847\n0.270386 0.213745 0.124298\n0.305450 0.215576 0.123718\n0.342682 0.217407 0.123138\n0.381805 0.219238 0.122559\n0.422668 0.221130 0.121948\n0.465027 0.223114 0.121368\n0.508484 0.225037 0.120758\n0.552704 0.227081 0.120148\n0.595886 0.229004 0.119537\n0.637390 0.231079 0.118927\n0.676758 0.233154 0.118317\n0.713531 0.235168 0.117676\n0.747620 0.237335 0.117065\n0.778717 0.239471 0.116455\n0.806854 0.241577 0.115845\n0.832367 0.243835 0.115204\n0.855530 0.246002 0.114563\n0.876526 0.248260 0.113983\n0.895721 0.250458 0.113342\n0.913055 0.252747 0.112732\n0.928925 0.255035 0.112152\n0.943329 0.257324 0.111511\n0.956360 0.259644 0.110962\n0.968079 0.262054 0.110321\n0.054749 0.232635 0.127533\n0.077576 0.234314 0.127014\n0.101379 0.236053 0.126495\n0.126373 0.237823 0.125946\n0.152649 0.239685 0.125427\n0.180389 0.241486 0.124878\n0.209747 0.243378 0.124298\n0.240936 0.245270 0.123718\n0.274078 0.247162 0.123169\n0.309448 0.249207 0.122559\n0.346954 0.251190 0.121979\n0.386322 0.253235 0.121368\n0.427429 0.255280 0.120758\n0.469910 0.257324 0.120178\n0.513580 0.259521 0.119537\n0.557831 0.261688 0.118958\n0.600891 0.263855 0.118347\n0.642181 0.266052 0.117706\n0.681274 0.268280 0.117065\n0.717804 0.270569 0.116486\n0.751526 0.272888 0.115875\n0.782288 0.275208 0.115234\n0.810089 0.277527 0.114594\n0.835327 0.279907 0.113983\n0.858246 0.282349 0.113373\n0.879028 0.284698 0.112732\n0.897980 0.287170 0.112183\n0.915161 0.289520 0.111542\n0.930817 0.292053 0.110962\n0.945007 0.294617 0.110352\n0.957886 0.297028 0.109741\n0.969482 0.299591 0.109161\n0.056976 0.266937 0.126495\n0.079926 0.268890 0.125977\n0.103851 0.270782 0.125427\n0.129059 0.272766 0.124878\n0.155518 0.274719 0.124329\n0.183411 0.276764 0.123749\n0.213013 0.278839 0.123169\n0.244476 0.280914 0.122589\n0.277893 0.283020 0.122009\n0.313568 0.285248 0.121399\n0.351349 0.287445 0.120789\n0.390900 0.289612 0.120178\n0.432251 0.291931 0.119568\n0.474945 0.294128 0.118988\n0.518799 0.296478 0.118347\n0.562988 0.298859 0.117737\n0.605927 0.301208 0.117096\n0.647034 0.303619 0.116486\n0.685852 0.306091 0.115875\n0.722076 0.308533 0.115265\n0.755432 0.311005 0.114624\n0.785889 0.313538 0.114014\n0.813354 0.316010 0.113403\n0.838318 0.318604 0.112762\n0.860931 0.321106 0.112213\n0.881500 0.323700 0.111542\n0.900208 0.326355 0.110962\n0.917236 0.328949 0.110382\n0.932739 0.331604 0.109772\n0.946747 0.334320 0.109192\n0.959412 0.336914 0.108612\n0.970856 0.339661 0.108063\n0.059296 0.303864 0.125458\n0.082336 0.305939 0.124908\n0.106445 0.308014 0.124359\n0.131805 0.310181 0.123779\n0.158478 0.312408 0.123199\n0.186584 0.314575 0.122620\n0.216400 0.316803 0.122009\n0.248108 0.319153 0.121399\n0.281830 0.321442 0.120819\n0.317749 0.323792 0.120209\n0.355743 0.326141 0.119598\n0.395660 0.328522 0.118988\n0.437195 0.330994 0.118378\n0.480072 0.333466 0.117767\n0.524078 0.335968 0.117126\n0.568268 0.338562 0.116516\n0.611023 0.341064 0.115906\n0.651825 0.343658 0.115295\n0.690399 0.346283 0.114655\n0.726318 0.348877 0.114044\n0.759399 0.351562 0.113403\n0.789429 0.354279 0.112762\n0.816589 0.356934 0.112213\n0.841248 0.359650 0.111572\n0.863586 0.362335 0.110992\n0.883942 0.365143 0.110413\n0.902435 0.367920 0.109772\n0.919250 0.370667 0.109222\n0.934540 0.373535 0.108612\n0.948395 0.376343 0.108063\n0.960938 0.379120 0.107483\n0.972229 0.381958 0.106903\n0.061646 0.343170 0.124359\n0.084869 0.345428 0.123779\n0.109131 0.347687 0.123230\n0.134644 0.350067 0.122620\n0.161530 0.352417 0.122040\n0.189850 0.354797 0.121429\n0.219879 0.357239 0.120850\n0.251831 0.359741 0.120209\n0.285858 0.362122 0.119629\n0.322144 0.364716 0.119019\n0.360352 0.367279 0.118408\n0.400482 0.369873 0.117767\n0.442261 0.372498 0.117126\n0.485291 0.375122 0.116547\n0.529449 0.377838 0.115906\n0.573547 0.380524 0.115295\n0.616089 0.383209 0.114685\n0.656738 0.385986 0.114075\n0.695038 0.388763 0.113434\n0.730591 0.391510 0.112823\n0.763306 0.394379 0.112213\n0.792969 0.397156 0.111603\n0.819824 0.400024 0.110992\n0.844177 0.402863 0.110413\n0.866272 0.405731 0.109802\n0.886353 0.408661 0.109253\n0.904663 0.411591 0.108643\n0.921265 0.414490 0.108093\n0.936371 0.417419 0.107513\n0.950073 0.420410 0.106903\n0.962433 0.423279 0.106415\n0.973541 0.426270 0.105865\n0.064117 0.384735 0.123230\n0.087463 0.387238 0.122650\n0.111908 0.389648 0.122070\n0.137573 0.392151 0.121460\n0.164642 0.394745 0.120850\n0.193176 0.397217 0.120239\n0.223511 0.399841 0.119629\n0.255707 0.402405 0.119049\n0.290009 0.405121 0.118408\n0.326569 0.407867 0.117798\n0.365051 0.410492 0.117157\n0.405457 0.413269 0.116547\n0.447388 0.416077 0.115936\n0.490662 0.418823 0.115326\n0.534912 0.421692 0.114685\n0.578888 0.424591 0.114075\n0.621246 0.427399 0.113464\n0.661621 0.430298 0.112823\n0.699585 0.433258 0.112213\n0.734833 0.436127 0.111603\n0.767212 0.439117 0.111023\n0.796478 0.441956 0.110443\n0.823029 0.445007 0.109833\n0.847107 0.448029 0.109253\n0.868927 0.450958 0.108673\n0.888794 0.454010 0.108093\n0.906860 0.457092 0.107513\n0.923248 0.460022 0.106934\n0.938171 0.463104 0.106445\n0.951721 0.466217 0.105865\n0.963898 0.469177 0.105377\n0.974884 0.472229 0.104858\n0.066650 0.428314 0.122070\n0.090149 0.430969 0.121490\n0.114746 0.433502 0.120880\n0.140625 0.436188 0.120270\n0.167877 0.438904 0.119659\n0.196655 0.441589 0.119049\n0.227203 0.444366 0.118439\n0.259613 0.447113 0.117828\n0.294250 0.449951 0.117188\n0.331085 0.452759 0.116577\n0.369843 0.455658 0.115967\n0.410461 0.458527 0.115356\n0.452637 0.461426 0.114716\n0.496063 0.464325 0.114105\n0.540405 0.467316 0.113495\n0.584229 0.470276 0.112854\n0.626373 0.473267 0.112244\n0.666504 0.476318 0.111633\n0.704132 0.479279 0.111053\n0.739075 0.482300 0.110474\n0.771057 0.485413 0.109863\n0.799988 0.488434 0.109283\n0.826172 0.491547 0.108673\n0.849976 0.494629 0.108124\n0.871552 0.497681 0.107544\n0.891174 0.500824 0.106964\n0.909027 0.503937 0.106445\n0.925232 0.507050 0.105896\n0.939972 0.510193 0.105377\n0.953308 0.513184 0.104889\n0.965393 0.516327 0.104370\n0.976135 0.519501 0.103851\n0.069244 0.473633 0.120911\n0.092896 0.476379 0.120270\n0.117645 0.479126 0.119690\n0.143707 0.481934 0.119080\n0.171143 0.484680 0.118469\n0.200134 0.487610 0.117828\n0.230927 0.490448 0.117188\n0.263641 0.493286 0.116608\n0.298615 0.496277 0.115967\n0.335693 0.499237 0.115356\n0.374725 0.502167 0.114746\n0.415558 0.505188 0.114136\n0.457947 0.508240 0.113495\n0.501465 0.511261 0.112885\n0.545959 0.514313 0.112274\n0.589478 0.517334 0.111664\n0.631561 0.520447 0.111053\n0.671387 0.523560 0.110474\n0.708710 0.526642 0.109894\n0.743256 0.529785 0.109283\n0.774902 0.532867 0.108704\n0.803406 0.535980 0.108154\n0.829315 0.539154 0.107544\n0.852814 0.542328 0.106995\n0.874146 0.545380 0.106445\n0.893555 0.548553 0.105927\n0.911163 0.551697 0.105408\n0.927185 0.554718 0.104889\n0.941742 0.557861 0.104370\n0.954895 0.560852 0.103882\n0.966766 0.563965 0.103394\n0.977417 0.567047 0.102905\n0.071930 0.520325 0.119690\n0.095734 0.523132 0.119110\n0.120636 0.526031 0.118500\n0.146881 0.528961 0.117859\n0.174561 0.531921 0.117218\n0.203766 0.534821 0.116608\n0.234802 0.537781 0.115997\n0.267792 0.540710 0.115387\n0.303040 0.543762 0.114746\n0.340393 0.546783 0.114166\n0.379669 0.549713 0.113525\n0.420776 0.552826 0.112885\n0.463379 0.555878 0.112274\n0.507050 0.558838 0.111694\n0.551483 0.561920 0.111053\n0.594971 0.565002 0.110504\n0.636719 0.567993 0.109894\n0.676270 0.571106 0.109314\n0.713196 0.574097 0.108734\n0.747437 0.577118 0.108154\n0.778656 0.580231 0.107574\n0.806885 0.583221 0.106995\n0.832458 0.586273 0.106476\n0.855652 0.589325 0.105927\n0.876678 0.592316 0.105438\n0.895844 0.595306 0.104889\n0.913239 0.598358 0.104401\n0.929077 0.601318 0.103882\n0.943451 0.604279 0.103424\n0.956482 0.607208 0.102936\n0.968170 0.610107 0.102509\n0.978668 0.613098 0.102020\n0.074677 0.567413 0.118500\n0.098633 0.570251 0.117859\n0.123718 0.573059 0.117249\n0.150146 0.575928 0.116608\n0.177948 0.578796 0.116028\n0.207428 0.581726 0.115417\n0.238708 0.584625 0.114746\n0.271973 0.587524 0.114197\n0.307526 0.590485 0.113556\n0.345184 0.593475 0.112915\n0.384674 0.596344 0.112335\n0.425995 0.599274 0.111694\n0.468750 0.602234 0.111084\n0.512573 0.605164 0.110535\n0.557037 0.608154 0.109924\n0.600311 0.611023 0.109344\n0.641846 0.613983 0.108734\n0.681061 0.616913 0.108185\n0.717712 0.619812 0.107605\n0.751587 0.622803 0.107025\n0.782379 0.625702 0.106476\n0.810242 0.628540 0.105957\n0.835480 0.631500 0.105438\n0.858429 0.634369 0.104889\n0.879181 0.637177 0.104431\n0.898132 0.640015 0.103912\n0.915344 0.642883 0.103424\n0.930939 0.645630 0.102936\n0.945129 0.648499 0.102509\n0.957947 0.651215 0.102051\n0.969543 0.653992 0.101746\n0.979858 0.656738 0.101746\n0.077484 0.612976 0.117279\n0.101593 0.615753 0.116638\n0.126831 0.618500 0.116028\n0.153442 0.621338 0.115417\n0.181458 0.624084 0.114777\n0.211182 0.626923 0.114197\n0.242706 0.629700 0.113556\n0.276276 0.632477 0.112946\n0.312103 0.635345 0.112335\n0.350006 0.638123 0.111725\n0.389771 0.640900 0.111115\n0.431305 0.643768 0.110535\n0.474243 0.646545 0.109924\n0.518188 0.649323 0.109375\n0.562592 0.652130 0.108765\n0.605621 0.654907 0.108215\n0.646942 0.657715 0.107635\n0.685852 0.660492 0.107025\n0.722168 0.663208 0.106506\n0.755615 0.665985 0.105988\n0.786072 0.668701 0.105469\n0.813568 0.671417 0.104919\n0.838531 0.674164 0.104431\n0.861145 0.676849 0.103912\n0.881653 0.679504 0.103455\n0.900360 0.682190 0.102966\n0.917358 0.684784 0.102539\n0.932831 0.687378 0.102051\n0.946777 0.690033 0.101746\n0.959442 0.692566 0.101746\n0.970856 0.695099 0.101746\n0.981018 0.697693 0.101746\n0.080322 0.656464 0.116058\n0.104553 0.659058 0.115448\n0.130035 0.661713 0.114777\n0.156799 0.664429 0.114227\n0.185028 0.667023 0.113586\n0.214966 0.669708 0.112946\n0.246796 0.672394 0.112366\n0.280609 0.675049 0.111755\n0.316742 0.677704 0.111115\n0.354919 0.680359 0.110565\n0.394928 0.682953 0.109955\n0.436615 0.685638 0.109375\n0.479645 0.688202 0.108795\n0.523834 0.690857 0.108215\n0.568146 0.693542 0.107635\n0.610962 0.696075 0.107056\n0.651978 0.698700 0.106537\n0.690613 0.701324 0.105988\n0.726593 0.703796 0.105499\n0.759644 0.706390 0.104950\n0.789703 0.708923 0.104462\n0.816864 0.711395 0.103912\n0.841492 0.713959 0.103455\n0.863831 0.716400 0.102966\n0.884125 0.718811 0.102539\n0.902557 0.721283 0.102081\n0.919342 0.723663 0.101746\n0.934601 0.726105 0.101746\n0.948425 0.728455 0.101746\n0.960938 0.730774 0.101746\n0.972168 0.733124 0.101746\n0.982208 0.735443 0.101746\n0.083221 0.697296 0.114807\n0.107605 0.699738 0.114258\n0.133240 0.702209 0.113617\n0.160217 0.704803 0.112976\n0.188660 0.707214 0.112396\n0.218872 0.709717 0.111755\n0.250946 0.712219 0.111145\n0.285095 0.714661 0.110596\n0.321472 0.717133 0.109985\n0.359833 0.719666 0.109406\n0.400146 0.722076 0.108795\n0.442047 0.724518 0.108246\n0.485138 0.726929 0.107666\n0.529449 0.729370 0.107086\n0.573700 0.731781 0.106537\n0.616272 0.734131 0.105988\n0.657043 0.736542 0.105499\n0.695282 0.738922 0.104950\n0.730896 0.741211 0.104462\n0.763580 0.743591 0.103912\n0.793274 0.745880 0.103455\n0.820038 0.748169 0.102997\n0.844391 0.750427 0.102539\n0.866425 0.752655 0.102081\n0.886475 0.754883 0.101746\n0.904724 0.757111 0.101746\n0.921265 0.759247 0.101746\n0.936340 0.761414 0.101746\n0.949982 0.763580 0.101746\n0.962341 0.765656 0.101746\n0.973450 0.767731 0.101746\n0.983307 0.769775 0.101746\n0.086182 0.735107 0.113647\n0.110718 0.737366 0.113007\n0.136536 0.739685 0.112396\n0.163727 0.742035 0.111786\n0.192352 0.744324 0.111176\n0.222778 0.746582 0.110596\n0.255096 0.748871 0.109985\n0.289490 0.751099 0.109436\n0.326172 0.753418 0.108826\n0.364807 0.755585 0.108246\n0.405334 0.757843 0.107666\n0.447418 0.760071 0.107086\n0.490753 0.762268 0.106567\n0.535126 0.764496 0.106018\n0.579163 0.766693 0.105530\n0.621582 0.768829 0.104980\n0.662018 0.770966 0.104492\n0.699951 0.773102 0.103943\n0.735168 0.775177 0.103485\n0.767487 0.777283 0.102997\n0.796753 0.779419 0.102539\n0.823212 0.781433 0.102081\n0.847229 0.783478 0.101746\n0.868988 0.785431 0.101746\n0.888794 0.787415 0.101746\n0.906830 0.789398 0.101746\n0.923157 0.791290 0.101746\n0.938049 0.793243 0.101746\n0.951538 0.795166 0.101746\n0.963715 0.796997 0.101746\n0.974640 0.798859 0.101746\n0.984344 0.800690 0.101746\n0.089142 0.769562 0.112427\n0.113861 0.771667 0.111816\n0.139862 0.773804 0.111176\n0.167206 0.775848 0.110596\n0.196075 0.777954 0.110016\n0.226746 0.779999 0.109436\n0.259338 0.782104 0.108856\n0.294067 0.784119 0.108246\n0.330963 0.786163 0.107697\n0.369873 0.788147 0.107117\n0.410583 0.790192 0.106598\n0.452820 0.792206 0.106018\n0.496307 0.794159 0.105530\n0.540741 0.796173 0.105011\n0.584595 0.798126 0.104492\n0.626770 0.800049 0.103973\n0.666901 0.801971 0.103485\n0.704529 0.803894 0.102997\n0.739319 0.805725 0.102570\n0.771240 0.807617 0.102112\n0.800110 0.809448 0.101746\n0.826324 0.811279 0.101746\n0.850006 0.813110 0.101746\n0.871490 0.814850 0.101746\n0.891083 0.816620 0.101746\n0.908875 0.818390 0.101746\n0.925049 0.820099 0.101746\n0.939728 0.821838 0.101746\n0.953064 0.823517 0.101746\n0.965027 0.825104 0.101746\n0.975800 0.826752 0.101746\n0.985382 0.828369 0.101746\n0.092224 0.800690 0.111206\n0.117065 0.802521 0.110626\n0.143219 0.804413 0.110046\n0.170776 0.806335 0.109436\n0.199829 0.808197 0.108887\n0.230743 0.810059 0.108276\n0.263611 0.811951 0.107727\n0.298615 0.813751 0.107147\n0.335785 0.815613 0.106598\n0.374908 0.817413 0.106049\n0.415802 0.819244 0.105530\n0.458313 0.821014 0.105011\n0.501862 0.822815 0.104523\n0.546356 0.824585 0.103973\n0.589996 0.826355 0.103516\n0.631866 0.828064 0.103027\n0.671722 0.829773 0.102570\n0.709015 0.831512 0.102112\n0.743439 0.833160 0.101746\n0.774963 0.834839 0.101746\n0.803436 0.836487 0.101746\n0.829315 0.838135 0.101746\n0.852722 0.839722 0.101746\n0.873932 0.841309 0.101746\n0.893311 0.842896 0.101746\n0.910858 0.844452 0.101746\n0.926849 0.846008 0.101746\n0.941376 0.847504 0.101746\n0.954498 0.848999 0.101746\n0.966339 0.850433 0.101746\n0.976959 0.851898 0.101746\n0.986389 0.853333 0.101746\n0.095276 0.828613 0.110046\n0.120270 0.830322 0.109467\n0.146606 0.832062 0.108887\n0.174347 0.833740 0.108276\n0.203674 0.835388 0.107758\n0.234802 0.837128 0.107147\n0.267853 0.838776 0.106628\n0.303223 0.840454 0.106079\n0.340607 0.842102 0.105530\n0.380005 0.843719 0.105042\n0.421082 0.845367 0.104553\n0.463715 0.846985 0.104004\n0.507416 0.848572 0.103516\n0.551880 0.850159 0.103027\n0.595306 0.851746 0.102600\n0.636993 0.853302 0.102142\n0.676483 0.854828 0.101746\n0.713348 0.856323 0.101746\n0.747498 0.857819 0.101746\n0.778625 0.859375 0.101746\n0.806763 0.860809 0.101746\n0.832245 0.862274 0.101746\n0.855377 0.863708 0.101746\n0.876373 0.865143 0.101746\n0.895447 0.866516 0.101746\n0.912811 0.867920 0.101746\n0.928589 0.869263 0.101746\n0.942932 0.870605 0.101746\n0.955902 0.871918 0.101746\n0.967590 0.873230 0.101746\n0.978058 0.874512 0.101746\n0.987366 0.875793 0.101746\n0.098419 0.853790 0.108887\n0.123566 0.855316 0.108307\n0.150055 0.856873 0.107758\n0.177979 0.858429 0.107178\n0.207520 0.859955 0.106659\n0.238892 0.861481 0.106079\n0.272217 0.862976 0.105560\n0.307800 0.864471 0.105072\n0.345551 0.865967 0.104553\n0.385071 0.867401 0.104004\n0.426361 0.868896 0.103546\n0.469116 0.870361 0.103058\n0.512970 0.871765 0.102600\n0.557373 0.873199 0.102142\n0.600586 0.874634 0.101746\n0.641968 0.876007 0.101746\n0.681152 0.877380 0.101746\n0.717682 0.878754 0.101746\n0.751404 0.880096 0.101746\n0.782166 0.881409 0.101746\n0.809906 0.882721 0.101746\n0.835114 0.884033 0.101746\n0.857941 0.885315 0.101746\n0.878662 0.886597 0.101746\n0.897522 0.887848 0.101746\n0.914703 0.889099 0.101746\n0.930298 0.890259 0.101746\n0.944458 0.891449 0.101746\n0.957245 0.892609 0.101746\n0.968811 0.893768 0.101746\n0.979156 0.894928 0.101746\n0.988281 0.896027 0.101746\n0.101501 0.876495 0.107758\n0.126831 0.877899 0.107208\n0.153503 0.879303 0.106659\n0.181580 0.880676 0.106110\n0.211365 0.882050 0.105591\n0.242981 0.883453 0.105072\n0.276581 0.884796 0.104584\n0.312439 0.886139 0.104034\n0.350342 0.887543 0.103546\n0.390137 0.888794 0.103088\n0.431641 0.890137 0.102631\n0.474548 0.891418 0.102173\n0.518463 0.892731 0.101746\n0.562744 0.894012 0.101746\n0.605743 0.895233 0.101746\n0.646820 0.896484 0.101746\n0.685699 0.897736 0.101746\n0.721924 0.898956 0.101746\n0.755219 0.900146 0.101746\n0.785583 0.901367 0.101746\n0.813019 0.902496 0.101746\n0.837891 0.903687 0.101746\n0.860474 0.904846 0.101746\n0.880951 0.905914 0.101746\n0.899567 0.907074 0.101746\n0.916534 0.908112 0.101746\n0.931915 0.909241 0.101746\n0.945892 0.910278 0.101746\n0.958557 0.911285 0.101746\n0.969971 0.912323 0.101746\n0.980164 0.913330 0.101746\n0.989166 0.914337 0.101746\n0.104645 0.897034 0.106689\n0.130127 0.898285 0.106140\n0.156982 0.899567 0.105591\n0.185242 0.900787 0.105072\n0.215271 0.902008 0.104584\n0.247070 0.903290 0.104034\n0.280975 0.904510 0.103577\n0.317078 0.905731 0.103088\n0.355225 0.906952 0.102631\n0.395233 0.908112 0.102173\n0.436890 0.909302 0.101746\n0.479919 0.910461 0.101746\n0.523895 0.911591 0.101746\n0.568115 0.912750 0.101746\n0.610779 0.913849 0.101746\n0.651611 0.915009 0.101746\n0.690216 0.916138 0.101746\n0.725983 0.917175 0.101746\n0.759003 0.918243 0.101746\n0.788940 0.919342 0.101746\n0.816010 0.920349 0.101746\n0.840607 0.921417 0.101746\n0.862885 0.922424 0.101746\n0.883118 0.923401 0.101746\n0.901550 0.924408 0.101746\n0.918243 0.925354 0.101746\n0.933502 0.926300 0.101746\n0.947357 0.927246 0.101746\n0.959839 0.928131 0.101746\n0.971100 0.929047 0.101746\n0.981140 0.929962 0.101746\n0.989990 0.930817 0.101746\n0.107758 0.915527 0.105621\n0.133453 0.916718 0.105103\n0.160461 0.917847 0.104614\n0.188934 0.918945 0.104065\n0.219116 0.920074 0.103607\n0.251221 0.921173 0.103088\n0.285370 0.922272 0.102661\n0.321716 0.923370 0.102203\n0.360077 0.924469 0.101746\n0.400269 0.925537 0.101746\n0.442078 0.926575 0.101746\n0.485138 0.927612 0.101746\n0.529297 0.928650 0.101746\n0.573334 0.929718 0.101746\n0.615814 0.930664 0.101746\n0.656342 0.931671 0.101746\n0.694580 0.932709 0.101746\n0.730042 0.933624 0.101746\n0.762604 0.934601 0.101746\n0.792175 0.935547 0.101746\n0.818939 0.936462 0.101746\n0.843201 0.937378 0.101746\n0.865204 0.938263 0.101746\n0.885223 0.939148 0.101746\n0.903442 0.940063 0.101746\n0.919983 0.940857 0.101746\n0.935028 0.941711 0.101746\n0.948700 0.942535 0.101746\n0.961029 0.943329 0.101746\n0.972168 0.944122 0.101746\n0.982056 0.944916 0.101746\n0.990814 0.945679 0.101746\n0.110962 0.932251 0.104614\n0.136749 0.933289 0.104095\n0.163971 0.934326 0.103607\n0.192627 0.935333 0.103119\n0.222992 0.936340 0.102692\n0.255341 0.937347 0.102203\n0.289703 0.938324 0.101776\n0.326355 0.939301 0.101746\n0.364960 0.940277 0.101746\n0.405304 0.941223 0.101746\n0.447266 0.942169 0.101746\n0.490417 0.943085 0.101746\n0.534637 0.944031 0.101746\n0.578491 0.944946 0.101746\n0.620667 0.945801 0.101746\n0.660950 0.946716 0.101746\n0.698853 0.947601 0.101746\n0.733887 0.948425 0.101746\n0.766113 0.949249 0.101746\n0.795349 0.950134 0.101746\n0.821777 0.950928 0.101746\n0.845703 0.951721 0.101746\n0.867462 0.952515 0.101746\n0.887238 0.953308 0.101746\n0.905273 0.954041 0.101746\n0.921631 0.954803 0.101746\n0.936493 0.955536 0.101746\n0.949982 0.956299 0.101746\n0.962219 0.956970 0.101746\n0.973175 0.957672 0.101746\n0.982971 0.958344 0.101746\n0.991577 0.959015 0.101746\n0.114136 0.947327 0.103638\n0.140076 0.948273 0.103149\n0.167450 0.949188 0.102692\n0.196289 0.950043 0.102234\n0.226929 0.950989 0.101776\n0.259460 0.951904 0.101746\n0.294098 0.952728 0.101746\n0.330933 0.953613 0.101746\n0.369690 0.954468 0.101746\n0.410278 0.955322 0.101746\n0.452332 0.956177 0.101746\n0.495636 0.956970 0.101746\n0.539825 0.957794 0.101746\n0.583527 0.958588 0.101746\n0.625458 0.959351 0.101746\n0.665405 0.960175 0.101746\n0.702942 0.960938 0.101746\n0.737671 0.961700 0.101746\n0.769501 0.962433 0.101746\n0.798370 0.963196 0.101746\n0.824432 0.963867 0.101746\n0.848175 0.964600 0.101746\n0.869659 0.965302 0.101746\n0.889221 0.965973 0.101746\n0.907013 0.966644 0.101746\n0.923157 0.967285 0.101746\n0.937927 0.967896 0.101746\n0.951263 0.968536 0.101746\n0.963287 0.969147 0.101746\n0.974121 0.969727 0.101746\n0.983795 0.970337 0.101746\n0.992310 0.970917 0.101746\n0.117279 0.960815 0.102722\n0.143402 0.961670 0.102234\n0.170959 0.962463 0.101776\n0.199982 0.963287 0.101746\n0.230804 0.964081 0.101746\n0.263580 0.964844 0.101746\n0.298462 0.965637 0.101746\n0.335510 0.966431 0.101746\n0.374420 0.967163 0.101746\n0.415192 0.967896 0.101746\n0.457428 0.968658 0.101746\n0.500793 0.969391 0.101746\n0.544983 0.970093 0.101746\n0.588409 0.970795 0.101746\n0.630157 0.971497 0.101746\n0.669739 0.972198 0.101746\n0.706940 0.972870 0.101746\n0.741333 0.973511 0.101746\n0.772797 0.974152 0.101746\n0.801270 0.974762 0.101746\n0.827087 0.975403 0.101746\n0.850525 0.976044 0.101746\n0.871735 0.976624 0.101746\n0.891083 0.977203 0.101746\n0.908691 0.977783 0.101746\n0.924683 0.978363 0.101746\n0.939240 0.978882 0.101746\n0.952423 0.979431 0.101746\n0.964325 0.979950 0.101746\n0.975067 0.980469 0.101746\n0.984558 0.980957 0.101746\n0.992950 0.981445 0.101746\n0.039673 0.000885 0.159149\n0.061340 0.001587 0.158905\n0.083954 0.002258 0.158691\n0.107635 0.002960 0.158417\n0.132446 0.003723 0.158112\n0.158600 0.004456 0.157806\n0.186157 0.005280 0.157501\n0.215363 0.006104 0.157104\n0.246277 0.006958 0.156769\n0.279358 0.007843 0.156342\n0.314423 0.008728 0.155975\n0.351654 0.009674 0.155518\n0.390625 0.010620 0.155060\n0.431305 0.011627 0.154663\n0.473389 0.012665 0.154144\n0.516571 0.013672 0.153656\n0.560211 0.014740 0.153168\n0.602692 0.015839 0.152618\n0.643433 0.016937 0.152100\n0.682007 0.018066 0.151550\n0.718140 0.019226 0.151001\n0.751495 0.020416 0.150421\n0.781952 0.021606 0.149872\n0.809570 0.022827 0.149261\n0.834625 0.024078 0.148682\n0.857422 0.025299 0.148071\n0.878143 0.026611 0.147430\n0.896973 0.027924 0.146851\n0.914185 0.029205 0.146179\n0.929840 0.030579 0.145569\n0.944031 0.031921 0.144989\n0.956940 0.033295 0.144287\n0.040955 0.021759 0.158691\n0.062775 0.022522 0.158417\n0.085480 0.023254 0.158142\n0.109283 0.024109 0.157806\n0.134308 0.024933 0.157501\n0.160583 0.025757 0.157135\n0.188324 0.026642 0.156769\n0.217682 0.027588 0.156342\n0.248901 0.028503 0.155975\n0.282166 0.029480 0.155518\n0.317505 0.030487 0.155090\n0.354919 0.031494 0.154663\n0.394196 0.032593 0.154175\n0.435028 0.033661 0.153687\n0.477325 0.034729 0.153168\n0.520721 0.035889 0.152618\n0.564392 0.037018 0.152130\n0.606750 0.038177 0.151550\n0.647400 0.039398 0.151031\n0.685791 0.040619 0.150452\n0.721710 0.041901 0.149902\n0.754822 0.043091 0.149292\n0.785004 0.044434 0.148712\n0.812378 0.045746 0.148102\n0.837189 0.047058 0.147461\n0.859772 0.048401 0.146881\n0.880310 0.049805 0.146210\n0.899017 0.051147 0.145599\n0.916077 0.052582 0.144989\n0.931519 0.053986 0.144318\n0.945618 0.055420 0.143707\n0.958374 0.056915 0.143036\n0.042389 0.043610 0.158142\n0.064270 0.044434 0.157806\n0.087128 0.045319 0.157532\n0.111053 0.046204 0.157135\n0.136230 0.047119 0.156769\n0.162628 0.048035 0.156372\n0.190613 0.049072 0.155975\n0.220154 0.050018 0.155548\n0.251617 0.051117 0.155090\n0.285156 0.052124 0.154663\n0.320740 0.053223 0.154175\n0.358398 0.054382 0.153687\n0.397919 0.055542 0.153198\n0.438965 0.056671 0.152649\n0.481445 0.057861 0.152130\n0.524963 0.059082 0.151581\n0.568634 0.060333 0.151062\n0.610962 0.061615 0.150452\n0.651459 0.062897 0.149902\n0.689667 0.064209 0.149292\n0.725342 0.065582 0.148712\n0.758179 0.066895 0.148132\n0.788116 0.068329 0.147522\n0.815277 0.069733 0.146881\n0.839813 0.071136 0.146240\n0.862183 0.072571 0.145630\n0.882538 0.074036 0.145020\n0.901031 0.075500 0.144348\n0.917908 0.077026 0.143707\n0.933258 0.078583 0.143066\n0.947205 0.080109 0.142456\n0.959808 0.081665 0.141754\n0.043884 0.066467 0.157532\n0.065887 0.067413 0.157166\n0.088898 0.068390 0.156799\n0.112976 0.069366 0.156372\n0.138275 0.070404 0.156006\n0.164917 0.071411 0.155548\n0.193024 0.072510 0.155121\n0.222809 0.073639 0.154694\n0.254517 0.074768 0.154205\n0.288269 0.075928 0.153687\n0.324158 0.077087 0.153198\n0.362061 0.078339 0.152649\n0.401825 0.079590 0.152161\n0.443054 0.080841 0.151611\n0.485809 0.082153 0.151062\n0.529449 0.083496 0.150452\n0.573090 0.084808 0.149933\n0.615356 0.086182 0.149323\n0.655609 0.087555 0.148773\n0.693634 0.089020 0.148132\n0.729034 0.090454 0.147522\n0.761658 0.091919 0.146912\n0.791260 0.093384 0.146240\n0.818146 0.094910 0.145630\n0.842499 0.096436 0.145050\n0.864624 0.097992 0.144379\n0.884796 0.099579 0.143738\n0.903107 0.101135 0.143097\n0.919800 0.102753 0.142456\n0.934967 0.104370 0.141785\n0.948761 0.105988 0.141144\n0.961243 0.107697 0.140503\n0.045502 0.090546 0.156799\n0.067657 0.091583 0.156372\n0.090759 0.092621 0.156006\n0.115021 0.093719 0.155609\n0.140503 0.094849 0.155121\n0.167267 0.096008 0.154694\n0.195587 0.097198 0.154205\n0.225647 0.098419 0.153687\n0.257538 0.099640 0.153229\n0.291626 0.100922 0.152679\n0.327698 0.102203 0.152191\n0.365875 0.103546 0.151611\n0.405853 0.104919 0.151093\n0.447388 0.106262 0.150513\n0.490265 0.107697 0.149933\n0.533997 0.109100 0.149353\n0.577637 0.110596 0.148773\n0.619720 0.112091 0.148163\n0.659851 0.113556 0.147552\n0.697693 0.115082 0.146942\n0.732880 0.116638 0.146301\n0.765106 0.118225 0.145691\n0.794464 0.119812 0.145081\n0.821075 0.121460 0.144379\n0.845184 0.123077 0.143768\n0.867096 0.124756 0.143127\n0.887054 0.126434 0.142487\n0.905182 0.128143 0.141815\n0.921722 0.129883 0.141174\n0.936737 0.131561 0.140533\n0.950348 0.133362 0.139862\n0.962677 0.135101 0.139191\n0.047241 0.115875 0.156036\n0.069489 0.117035 0.155609\n0.092773 0.118195 0.155151\n0.117157 0.119385 0.154724\n0.142761 0.120605 0.154236\n0.169769 0.121887 0.153717\n0.198303 0.123199 0.153229\n0.228546 0.124542 0.152710\n0.260742 0.125885 0.152191\n0.295044 0.127289 0.151611\n0.331451 0.128693 0.151123\n0.369873 0.130127 0.150513\n0.410126 0.131622 0.149963\n0.451782 0.133087 0.149353\n0.494873 0.134644 0.148773\n0.538757 0.136139 0.148193\n0.582306 0.137756 0.147583\n0.624329 0.139374 0.146942\n0.664185 0.140991 0.146332\n0.701813 0.142639 0.145691\n0.736694 0.144318 0.145081\n0.768646 0.146027 0.144409\n0.797699 0.147766 0.143799\n0.824005 0.149506 0.143127\n0.847870 0.151245 0.142517\n0.869568 0.153046 0.141815\n0.889282 0.154846 0.141205\n0.907257 0.156677 0.140564\n0.923615 0.158508 0.139893\n0.938446 0.160370 0.139252\n0.951935 0.162262 0.138611\n0.964111 0.164185 0.137939\n0.049103 0.142609 0.155151\n0.071472 0.143890 0.154724\n0.094879 0.145172 0.154236\n0.119415 0.146515 0.153717\n0.145203 0.147858 0.153259\n0.172394 0.149231 0.152710\n0.201141 0.150726 0.152222\n0.231598 0.152130 0.151642\n0.264008 0.153625 0.151123\n0.298645 0.155151 0.150513\n0.335297 0.156677 0.149994\n0.373993 0.158295 0.149384\n0.414459 0.159912 0.148804\n0.456390 0.161499 0.148224\n0.499634 0.163177 0.147583\n0.543579 0.164856 0.146973\n0.587067 0.166534 0.146362\n0.628906 0.168304 0.145721\n0.668610 0.170044 0.145111\n0.705902 0.171814 0.144440\n0.740509 0.173645 0.143799\n0.772217 0.175507 0.143158\n0.800964 0.177338 0.142517\n0.826965 0.179230 0.141846\n0.850586 0.181122 0.141205\n0.872070 0.183044 0.140564\n0.891571 0.184967 0.139923\n0.909363 0.186920 0.139252\n0.925537 0.188934 0.138611\n0.940186 0.190918 0.137970\n0.953491 0.192932 0.137329\n0.965515 0.195007 0.136658\n0.051025 0.170990 0.154266\n0.073547 0.172333 0.153748\n0.097076 0.173798 0.153290\n0.121796 0.175293 0.152740\n0.147766 0.176758 0.152252\n0.175171 0.178314 0.151672\n0.204102 0.179871 0.151154\n0.234802 0.181458 0.150543\n0.267548 0.183075 0.149994\n0.302399 0.184753 0.149384\n0.339294 0.186401 0.148834\n0.378265 0.188141 0.148224\n0.418915 0.189850 0.147614\n0.461060 0.191620 0.147003\n0.504425 0.193451 0.146362\n0.548553 0.195251 0.145752\n0.591919 0.197144 0.145142\n0.633575 0.199036 0.144440\n0.673065 0.200928 0.143829\n0.710114 0.202850 0.143188\n0.744446 0.204865 0.142548\n0.775757 0.206818 0.141876\n0.804199 0.208801 0.141235\n0.829926 0.210815 0.140625\n0.853333 0.212860 0.139954\n0.874542 0.214966 0.139282\n0.893829 0.217041 0.138641\n0.911407 0.219147 0.137970\n0.927429 0.221313 0.137329\n0.941925 0.223419 0.136688\n0.955078 0.225647 0.136047\n0.966949 0.227783 0.135406\n0.053070 0.201111 0.153290\n0.075714 0.202637 0.152740\n0.099426 0.204193 0.152252\n0.124298 0.205841 0.151672\n0.150391 0.207458 0.151184\n0.177979 0.209198 0.150574\n0.207153 0.210907 0.150024\n0.238129 0.212616 0.149414\n0.271088 0.214447 0.148834\n0.306274 0.216278 0.148224\n0.343475 0.218079 0.147644\n0.382660 0.219971 0.147003\n0.423523 0.221832 0.146393\n0.465881 0.223785 0.145752\n0.509491 0.225769 0.145142\n0.553589 0.227692 0.144470\n0.596832 0.229797 0.143860\n0.638336 0.231812 0.143188\n0.677582 0.233887 0.142548\n0.714386 0.235992 0.141876\n0.748383 0.238129 0.141266\n0.779327 0.240265 0.140625\n0.807465 0.242432 0.139954\n0.832916 0.244568 0.139313\n0.856018 0.246826 0.138672\n0.877014 0.249115 0.138000\n0.896118 0.251282 0.137360\n0.913483 0.253601 0.136719\n0.929321 0.255920 0.136047\n0.943634 0.258179 0.135437\n0.956635 0.260559 0.134827\n0.968353 0.262939 0.134216\n0.055176 0.233307 0.152283\n0.077972 0.234924 0.151703\n0.101837 0.236694 0.151184\n0.126892 0.238525 0.150574\n0.153198 0.240326 0.150055\n0.180969 0.242157 0.149445\n0.210358 0.244080 0.148865\n0.241547 0.245941 0.148254\n0.274811 0.247955 0.147644\n0.310211 0.249878 0.147034\n0.347717 0.251862 0.146423\n0.387146 0.253967 0.145782\n0.428253 0.256042 0.145142\n0.470825 0.258148 0.144501\n0.514557 0.260315 0.143860\n0.558777 0.262482 0.143219\n0.601868 0.264709 0.142578\n0.643097 0.266876 0.141907\n0.682129 0.269135 0.141296\n0.718628 0.271423 0.140656\n0.752258 0.273682 0.139954\n0.782928 0.276031 0.139313\n0.810730 0.278412 0.138672\n0.835846 0.280762 0.138031\n0.858734 0.283173 0.137360\n0.879486 0.285614 0.136719\n0.898376 0.287994 0.136078\n0.915558 0.290527 0.135468\n0.931183 0.293030 0.134827\n0.945343 0.295471 0.134247\n0.958160 0.298004 0.133606\n0.969727 0.300476 0.132965\n0.057434 0.267700 0.151184\n0.080353 0.269531 0.150604\n0.104370 0.271545 0.150055\n0.129578 0.273499 0.149445\n0.156067 0.275482 0.148895\n0.184052 0.277496 0.148254\n0.213654 0.279633 0.147675\n0.245087 0.281647 0.147034\n0.278625 0.283813 0.146423\n0.314301 0.285980 0.145813\n0.352112 0.288208 0.145172\n0.391815 0.290497 0.144501\n0.433167 0.292694 0.143890\n0.475891 0.295013 0.143250\n0.519806 0.297424 0.142578\n0.563934 0.299713 0.141968\n0.606934 0.302124 0.141296\n0.647980 0.304535 0.140656\n0.686676 0.306946 0.139984\n0.722870 0.309418 0.139343\n0.756195 0.311859 0.138702\n0.786499 0.314423 0.138062\n0.813995 0.316986 0.137390\n0.838837 0.319489 0.136749\n0.861420 0.322113 0.136108\n0.881958 0.324707 0.135468\n0.900604 0.327271 0.134857\n0.917603 0.329956 0.134247\n0.933044 0.332611 0.133606\n0.947052 0.335266 0.132996\n0.959717 0.337952 0.132385\n0.971130 0.340576 0.131805\n0.059692 0.304657 0.150085\n0.082794 0.306671 0.149475\n0.106934 0.308868 0.148895\n0.132324 0.311005 0.148254\n0.158997 0.313141 0.147705\n0.187225 0.315430 0.147034\n0.217041 0.317657 0.146454\n0.248810 0.319977 0.145813\n0.282593 0.322296 0.145172\n0.318573 0.324646 0.144531\n0.356628 0.327026 0.143921\n0.396576 0.329498 0.143250\n0.438110 0.331940 0.142609\n0.481079 0.334412 0.141968\n0.525085 0.336914 0.141327\n0.569183 0.339417 0.140656\n0.611969 0.342072 0.139984\n0.652802 0.344635 0.139343\n0.691254 0.347198 0.138733\n0.727173 0.349915 0.138062\n0.760071 0.352509 0.137421\n0.790100 0.355225 0.136780\n0.817230 0.357971 0.136108\n0.841766 0.360626 0.135498\n0.864105 0.363403 0.134888\n0.884399 0.366180 0.134277\n0.902863 0.368896 0.133636\n0.919617 0.371704 0.132996\n0.934875 0.374481 0.132416\n0.948730 0.377319 0.131836\n0.961212 0.380157 0.131256\n0.972443 0.382965 0.130676\n0.062134 0.343994 0.148926\n0.085327 0.346252 0.148315\n0.109650 0.348572 0.147705\n0.135193 0.350922 0.147064\n0.162109 0.353271 0.146484\n0.190491 0.355713 0.145844\n0.220581 0.358063 0.145203\n0.252533 0.360626 0.144562\n0.286621 0.363159 0.143921\n0.322876 0.365631 0.143280\n0.361237 0.368195 0.142639\n0.401459 0.370850 0.141998\n0.443176 0.373474 0.141357\n0.486298 0.376099 0.140686\n0.530487 0.378815 0.140015\n0.574463 0.381470 0.139404\n0.617096 0.384247 0.138763\n0.657654 0.386932 0.138092\n0.695862 0.389771 0.137421\n0.731415 0.392548 0.136780\n0.763977 0.395386 0.136169\n0.793610 0.398224 0.135529\n0.820435 0.401093 0.134918\n0.844696 0.403900 0.134308\n0.866791 0.406830 0.133667\n0.886841 0.409760 0.133026\n0.905060 0.412628 0.132446\n0.921661 0.415558 0.131836\n0.936707 0.418457 0.131287\n0.950378 0.421387 0.130707\n0.962738 0.424408 0.130096\n0.973816 0.427307 0.129547\n0.064606 0.385651 0.147736\n0.087921 0.388031 0.147095\n0.112457 0.390533 0.146484\n0.138123 0.393005 0.145874\n0.165222 0.395599 0.145233\n0.193848 0.398224 0.144592\n0.224121 0.400757 0.143982\n0.256439 0.403442 0.143280\n0.290833 0.406097 0.142639\n0.327362 0.408783 0.142029\n0.365967 0.411499 0.141357\n0.406403 0.414337 0.140686\n0.448364 0.417053 0.140045\n0.491699 0.419891 0.139404\n0.535828 0.422699 0.138794\n0.579834 0.425598 0.138123\n0.622223 0.428467 0.137451\n0.662537 0.431305 0.136841\n0.700439 0.434265 0.136169\n0.735657 0.437256 0.135559\n0.767853 0.440094 0.134949\n0.797119 0.443115 0.134308\n0.823639 0.446167 0.133667\n0.847626 0.449066 0.133057\n0.869415 0.452118 0.132446\n0.889252 0.455139 0.131866\n0.907227 0.458099 0.131287\n0.923615 0.461212 0.130707\n0.938507 0.464142 0.130127\n0.951996 0.467255 0.129578\n0.964203 0.470337 0.129028\n0.975098 0.473328 0.128510\n0.067139 0.429321 0.146515\n0.090637 0.431854 0.145874\n0.115295 0.434509 0.145233\n0.141144 0.437134 0.144623\n0.168488 0.439850 0.143982\n0.197327 0.442657 0.143311\n0.227875 0.445312 0.142670\n0.260376 0.448181 0.142059\n0.295074 0.450989 0.141388\n0.331940 0.453827 0.140717\n0.370758 0.456726 0.140076\n0.411438 0.459595 0.139435\n0.453613 0.462494 0.138794\n0.497101 0.465485 0.138123\n0.541412 0.468323 0.137482\n0.585175 0.471344 0.136841\n0.627411 0.474396 0.136230\n0.667389 0.477386 0.135590\n0.705017 0.480438 0.134949\n0.739899 0.483490 0.134308\n0.771729 0.486481 0.133698\n0.800659 0.489594 0.133057\n0.826782 0.492676 0.132477\n0.850525 0.495697 0.131897\n0.872070 0.498810 0.131317\n0.891571 0.501923 0.130737\n0.909424 0.505035 0.130157\n0.925629 0.508179 0.129578\n0.940277 0.511261 0.129059\n0.953613 0.514374 0.128510\n0.965637 0.517517 0.127991\n0.976410 0.520599 0.127472\n0.069733 0.474579 0.145264\n0.093384 0.477386 0.144623\n0.118225 0.480194 0.144012\n0.144257 0.482910 0.143341\n0.171753 0.485809 0.142700\n0.200836 0.488678 0.142059\n0.231628 0.491486 0.141418\n0.264465 0.494446 0.140747\n0.299438 0.497406 0.140076\n0.336548 0.500305 0.139465\n0.375671 0.503326 0.138824\n0.416504 0.506287 0.138153\n0.458923 0.509338 0.137512\n0.502594 0.512390 0.136871\n0.546997 0.515381 0.136261\n0.590576 0.518494 0.135590\n0.632507 0.521637 0.134979\n0.672272 0.524628 0.134338\n0.709534 0.527802 0.133728\n0.744049 0.530975 0.133087\n0.775574 0.533997 0.132507\n0.804108 0.537201 0.131897\n0.829956 0.540375 0.131317\n0.853333 0.543396 0.130768\n0.874634 0.546600 0.130157\n0.893921 0.549622 0.129608\n0.911560 0.552734 0.129059\n0.927521 0.555878 0.128540\n0.942047 0.558960 0.127991\n0.955200 0.562073 0.127472\n0.967041 0.565186 0.126984\n0.977661 0.568146 0.126495\n0.072449 0.521362 0.144012\n0.096222 0.524200 0.143341\n0.121216 0.527161 0.142731\n0.147430 0.529968 0.142090\n0.175171 0.532959 0.141418\n0.204437 0.535919 0.140747\n0.235474 0.538879 0.140106\n0.268616 0.541840 0.139465\n0.303864 0.544922 0.138824\n0.341217 0.547821 0.138184\n0.380615 0.550873 0.137512\n0.421753 0.553925 0.136871\n0.464294 0.556946 0.136261\n0.508087 0.560059 0.135620\n0.552460 0.562988 0.135010\n0.595917 0.566101 0.134338\n0.637665 0.569183 0.133728\n0.677124 0.572174 0.133148\n0.714142 0.575287 0.132507\n0.748230 0.578308 0.131927\n0.779327 0.581299 0.131348\n0.807526 0.584381 0.130768\n0.833069 0.587433 0.130188\n0.856171 0.590424 0.129639\n0.877167 0.593475 0.129089\n0.896271 0.596405 0.128571\n0.913635 0.599396 0.128021\n0.929443 0.602386 0.127502\n0.943787 0.605316 0.127014\n0.956726 0.608246 0.126495\n0.968445 0.611267 0.126038\n0.978882 0.614105 0.125580\n0.075134 0.568420 0.142761\n0.099152 0.571259 0.142120\n0.124298 0.574127 0.141449\n0.150726 0.576935 0.140808\n0.178589 0.579865 0.140137\n0.208130 0.582764 0.139496\n0.239441 0.585693 0.138885\n0.272797 0.588654 0.138184\n0.308380 0.591583 0.137543\n0.346039 0.594482 0.136902\n0.385651 0.597412 0.136292\n0.426941 0.600372 0.135651\n0.469757 0.603302 0.135010\n0.513672 0.606232 0.134369\n0.558075 0.609161 0.133759\n0.601318 0.612152 0.133148\n0.642822 0.615051 0.132538\n0.681976 0.617981 0.131958\n0.718597 0.620911 0.131378\n0.752350 0.623840 0.130798\n0.783020 0.626709 0.130188\n0.810883 0.629639 0.129639\n0.836060 0.632507 0.129089\n0.858917 0.635376 0.128571\n0.879669 0.638275 0.128021\n0.898529 0.641052 0.127533\n0.915710 0.643921 0.127014\n0.931305 0.646729 0.126495\n0.945465 0.649475 0.126038\n0.958252 0.652283 0.125580\n0.969788 0.655060 0.125427\n0.980072 0.657715 0.125427\n0.077972 0.613983 0.141479\n0.102081 0.616730 0.140808\n0.127441 0.619568 0.140137\n0.154022 0.622314 0.139526\n0.182129 0.625092 0.138885\n0.211914 0.627899 0.138214\n0.243469 0.630676 0.137573\n0.277100 0.633545 0.136932\n0.312958 0.636383 0.136292\n0.350861 0.639099 0.135651\n0.390778 0.641998 0.135010\n0.432251 0.644714 0.134399\n0.475189 0.647552 0.133789\n0.519257 0.650391 0.133179\n0.563599 0.653137 0.132568\n0.606659 0.655975 0.131958\n0.647888 0.658752 0.131378\n0.686737 0.661469 0.130798\n0.723053 0.664276 0.130219\n0.756409 0.667023 0.129669\n0.786743 0.669708 0.129120\n0.814240 0.672455 0.128601\n0.839050 0.675140 0.128052\n0.861633 0.677856 0.127533\n0.882111 0.680511 0.127045\n0.900757 0.683136 0.126526\n0.917725 0.685730 0.126068\n0.933136 0.688416 0.125610\n0.947113 0.690918 0.125427\n0.959747 0.693542 0.125427\n0.971130 0.696075 0.125427\n0.981262 0.698517 0.125427\n0.080841 0.657410 0.140167\n0.105103 0.660034 0.139526\n0.130646 0.662720 0.138916\n0.157440 0.665314 0.138245\n0.185699 0.668030 0.137573\n0.215698 0.670685 0.136963\n0.247498 0.673340 0.136322\n0.281525 0.675995 0.135681\n0.317627 0.678680 0.135040\n0.355774 0.681274 0.134399\n0.395905 0.683960 0.133789\n0.437592 0.686554 0.133209\n0.480682 0.689209 0.132568\n0.524902 0.691833 0.131989\n0.569153 0.694427 0.131409\n0.612000 0.697083 0.130798\n0.652985 0.699677 0.130249\n0.691467 0.702179 0.129700\n0.727386 0.704803 0.129150\n0.760376 0.707336 0.128601\n0.790344 0.709839 0.128052\n0.817444 0.712402 0.127563\n0.841980 0.714813 0.127045\n0.864288 0.717285 0.126587\n0.884552 0.719788 0.126068\n0.902954 0.722168 0.125641\n0.919708 0.724579 0.125427\n0.934937 0.727020 0.125427\n0.948730 0.729340 0.125427\n0.961182 0.731659 0.125427\n0.972412 0.734009 0.125427\n0.982391 0.736237 0.125427\n0.083740 0.698181 0.138947\n0.108215 0.700714 0.138275\n0.133881 0.703217 0.137604\n0.160828 0.705627 0.136993\n0.189362 0.708160 0.136353\n0.219604 0.710693 0.135681\n0.251648 0.713074 0.135040\n0.285889 0.715607 0.134430\n0.322296 0.718048 0.133850\n0.360809 0.720520 0.133240\n0.401123 0.723022 0.132599\n0.442993 0.725403 0.132019\n0.486237 0.727844 0.131439\n0.530548 0.730255 0.130829\n0.574646 0.732605 0.130249\n0.617310 0.735046 0.129700\n0.657959 0.737427 0.129150\n0.696198 0.739777 0.128632\n0.731689 0.742096 0.128082\n0.764252 0.744415 0.127563\n0.793915 0.746704 0.127075\n0.820679 0.749023 0.126587\n0.844879 0.751221 0.126099\n0.866913 0.753479 0.125641\n0.886932 0.755737 0.125427\n0.905090 0.757904 0.125427\n0.921631 0.760040 0.125427\n0.936707 0.762207 0.125427\n0.950287 0.764313 0.125427\n0.962585 0.766388 0.125427\n0.973633 0.768433 0.125427\n0.983490 0.770508 0.125427\n0.086700 0.735931 0.137634\n0.111298 0.738251 0.136993\n0.137177 0.740570 0.136353\n0.164307 0.742828 0.135712\n0.193054 0.745148 0.135071\n0.223450 0.747406 0.134460\n0.255859 0.749664 0.133850\n0.290405 0.751984 0.133240\n0.327026 0.754181 0.132629\n0.365784 0.756470 0.132019\n0.406311 0.758728 0.131439\n0.448395 0.760895 0.130859\n0.491852 0.763123 0.130280\n0.536224 0.765320 0.129730\n0.580139 0.767487 0.129181\n0.622528 0.769653 0.128632\n0.662933 0.771820 0.128082\n0.700836 0.773895 0.127594\n0.735992 0.776001 0.127075\n0.768158 0.778076 0.126617\n0.797363 0.780121 0.126099\n0.823792 0.782196 0.125641\n0.847717 0.784149 0.125427\n0.869476 0.786163 0.125427\n0.889252 0.788177 0.125427\n0.907196 0.790131 0.125427\n0.923523 0.792023 0.125427\n0.938385 0.793945 0.125427\n0.951813 0.795807 0.125427\n0.963989 0.797699 0.125427\n0.974854 0.799500 0.125427\n0.984528 0.801300 0.125427\n0.089691 0.770325 0.136383\n0.114471 0.772461 0.135742\n0.140503 0.774567 0.135101\n0.167847 0.776581 0.134491\n0.196808 0.778717 0.133881\n0.227448 0.780731 0.133270\n0.260132 0.782837 0.132629\n0.294952 0.784851 0.132050\n0.331818 0.786865 0.131470\n0.370789 0.788910 0.130859\n0.411591 0.790924 0.130280\n0.453857 0.792938 0.129761\n0.497406 0.794922 0.129211\n0.541809 0.796875 0.128662\n0.585632 0.798828 0.128113\n0.627716 0.800751 0.127594\n0.667786 0.802643 0.127106\n0.705322 0.804565 0.126617\n0.740173 0.806427 0.126129\n0.771942 0.808289 0.125671\n0.800751 0.810120 0.125427\n0.826843 0.811981 0.125427\n0.850525 0.813721 0.125427\n0.871979 0.815552 0.125427\n0.891510 0.817291 0.125427\n0.909241 0.819031 0.125427\n0.925385 0.820740 0.125427\n0.940063 0.822418 0.125427\n0.953308 0.824066 0.125427\n0.965302 0.825714 0.125427\n0.976044 0.827332 0.125427\n0.985565 0.828949 0.125427\n0.092743 0.801331 0.135132\n0.117676 0.803253 0.134491\n0.143829 0.805115 0.133911\n0.171448 0.807007 0.133301\n0.200562 0.808929 0.132660\n0.231445 0.810730 0.132080\n0.264404 0.812592 0.131500\n0.299469 0.814453 0.130890\n0.336639 0.816254 0.130341\n0.375885 0.818115 0.129761\n0.416901 0.819916 0.129211\n0.459259 0.821686 0.128693\n0.502960 0.823456 0.128143\n0.547333 0.825226 0.127625\n0.590942 0.826965 0.127136\n0.632874 0.828674 0.126648\n0.672607 0.830383 0.126129\n0.709808 0.832123 0.125702\n0.744232 0.833801 0.125427\n0.775635 0.835419 0.125427\n0.804108 0.837097 0.125427\n0.829865 0.838745 0.125427\n0.853210 0.840302 0.125427\n0.874420 0.841888 0.125427\n0.893738 0.843506 0.125427\n0.911224 0.845001 0.125427\n0.927185 0.846558 0.125427\n0.941650 0.848022 0.125427\n0.954742 0.849518 0.125427\n0.966614 0.850983 0.125427\n0.977173 0.852386 0.125427\n0.986572 0.853821 0.125427\n0.095825 0.829224 0.133911\n0.120911 0.830994 0.133301\n0.147217 0.832642 0.132690\n0.175049 0.834351 0.132080\n0.204407 0.836060 0.131500\n0.235504 0.837738 0.130920\n0.268707 0.839417 0.130341\n0.304077 0.841064 0.129791\n0.341461 0.842682 0.129242\n0.380920 0.844360 0.128693\n0.422150 0.846008 0.128143\n0.464691 0.847565 0.127655\n0.508484 0.849152 0.127136\n0.552856 0.850739 0.126678\n0.596283 0.852295 0.126129\n0.637939 0.853851 0.125702\n0.677307 0.855377 0.125427\n0.714203 0.856873 0.125427\n0.748230 0.858429 0.125427\n0.779236 0.859863 0.125427\n0.807343 0.861359 0.125427\n0.832794 0.862823 0.125427\n0.855835 0.864227 0.125427\n0.876801 0.865662 0.125427\n0.895813 0.867004 0.125427\n0.913116 0.868408 0.125427\n0.928925 0.869751 0.125427\n0.943207 0.871094 0.125427\n0.956177 0.872437 0.125427\n0.967804 0.873718 0.125427\n0.978302 0.874969 0.125427\n0.987518 0.876251 0.125427\n0.098938 0.854370 0.132690\n0.124207 0.855927 0.132111\n0.150635 0.857422 0.131500\n0.178619 0.858978 0.130920\n0.208221 0.860535 0.130341\n0.239594 0.862030 0.129822\n0.273071 0.863525 0.129242\n0.308716 0.865021 0.128693\n0.346405 0.866486 0.128174\n0.386017 0.867981 0.127655\n0.427307 0.869415 0.127167\n0.470123 0.870911 0.126678\n0.513947 0.872314 0.126129\n0.558289 0.873688 0.125732\n0.601532 0.875122 0.125427\n0.642883 0.876495 0.125427\n0.681976 0.877869 0.125427\n0.718506 0.879242 0.125427\n0.752197 0.880585 0.125427\n0.782776 0.881897 0.125427\n0.810516 0.883209 0.125427\n0.835632 0.884521 0.125427\n0.858429 0.885803 0.125427\n0.879120 0.887054 0.125427\n0.897919 0.888275 0.125427\n0.915070 0.889496 0.125427\n0.930603 0.890717 0.125427\n0.944733 0.891876 0.125427\n0.957520 0.893066 0.125427\n0.969025 0.894226 0.125427\n0.979340 0.895355 0.125427\n0.988464 0.896423 0.125427\n0.102081 0.877014 0.131531\n0.127472 0.878418 0.130951\n0.154114 0.879822 0.130371\n0.182281 0.881226 0.129822\n0.212128 0.882568 0.129272\n0.243683 0.883942 0.128723\n0.277405 0.885284 0.128174\n0.313324 0.886658 0.127655\n0.351288 0.887970 0.127167\n0.391113 0.889282 0.126678\n0.432587 0.890564 0.126160\n0.475494 0.891907 0.125732\n0.519501 0.893219 0.125427\n0.563751 0.894440 0.125427\n0.606720 0.895721 0.125427\n0.647766 0.896942 0.125427\n0.686523 0.898163 0.125427\n0.722687 0.899384 0.125427\n0.755981 0.900604 0.125427\n0.786224 0.901764 0.125427\n0.813568 0.902985 0.125427\n0.838379 0.904053 0.125427\n0.860901 0.905243 0.125427\n0.881348 0.906372 0.125427\n0.899963 0.907471 0.125427\n0.916870 0.908539 0.125427\n0.932251 0.909637 0.125427\n0.946167 0.910645 0.125427\n0.958801 0.911682 0.125427\n0.970184 0.912689 0.125427\n0.980347 0.913666 0.125427\n0.989349 0.914703 0.125427\n0.105194 0.897491 0.130402\n0.130768 0.898743 0.129852\n0.157623 0.899994 0.129303\n0.185974 0.901276 0.128723\n0.216003 0.902496 0.128204\n0.247833 0.903717 0.127686\n0.281830 0.904968 0.127197\n0.317902 0.906097 0.126709\n0.356079 0.907349 0.126190\n0.396210 0.908539 0.125763\n0.437866 0.909729 0.125427\n0.480835 0.910889 0.125427\n0.524933 0.912018 0.125427\n0.569031 0.913116 0.125427\n0.611755 0.914307 0.125427\n0.652588 0.915436 0.125427\n0.690948 0.916534 0.125427\n0.726776 0.917603 0.125427\n0.759674 0.918640 0.125427\n0.789520 0.919708 0.125427\n0.816559 0.920746 0.125427\n0.841064 0.921753 0.125427\n0.863312 0.922791 0.125427\n0.883545 0.923767 0.125427\n0.901855 0.924744 0.125427\n0.918610 0.925720 0.125427\n0.933807 0.926666 0.125427\n0.947601 0.927612 0.125427\n0.960052 0.928497 0.125427\n0.971283 0.929413 0.125427\n0.981323 0.930267 0.125427\n0.990143 0.931122 0.125427\n0.108368 0.915985 0.129303\n0.134094 0.917145 0.128754\n0.161072 0.918213 0.128235\n0.189667 0.919373 0.127716\n0.219879 0.920502 0.127197\n0.251984 0.921600 0.126740\n0.286224 0.922729 0.126190\n0.322540 0.923737 0.125763\n0.360992 0.924866 0.125427\n0.401245 0.925903 0.125427\n0.443024 0.926971 0.125427\n0.486176 0.928009 0.125427\n0.530304 0.929047 0.125427\n0.574280 0.930023 0.125427\n0.616730 0.931030 0.125427\n0.657288 0.932037 0.125427\n0.695374 0.933014 0.125427\n0.730743 0.933990 0.125427\n0.763214 0.934906 0.125427\n0.792755 0.935852 0.125427\n0.819458 0.936798 0.125427\n0.843658 0.937714 0.125427\n0.865662 0.938599 0.125427\n0.885620 0.939484 0.125427\n0.903778 0.940308 0.125427\n0.920288 0.941193 0.125427\n0.935333 0.942047 0.125427\n0.948944 0.942841 0.125427\n0.961273 0.943634 0.125427\n0.972321 0.944397 0.125427\n0.982239 0.945190 0.125427\n0.990967 0.945953 0.125427\n0.111511 0.932648 0.128235\n0.137390 0.933716 0.127716\n0.164581 0.934692 0.127228\n0.193329 0.935730 0.126740\n0.223785 0.936737 0.126190\n0.256073 0.937714 0.125793\n0.290588 0.938690 0.125427\n0.327179 0.939667 0.125427\n0.365814 0.940613 0.125427\n0.406219 0.941559 0.125427\n0.448181 0.942505 0.125427\n0.491455 0.943420 0.125427\n0.535583 0.944336 0.125427\n0.579376 0.945221 0.125427\n0.621613 0.946167 0.125427\n0.661804 0.947052 0.125427\n0.699554 0.947876 0.125427\n0.734619 0.948730 0.125427\n0.766754 0.949554 0.125427\n0.795868 0.950409 0.125427\n0.822266 0.951233 0.125427\n0.846191 0.951996 0.125427\n0.867889 0.952789 0.125427\n0.887665 0.953583 0.125427\n0.905548 0.954346 0.125427\n0.921936 0.955078 0.125427\n0.936798 0.955841 0.125427\n0.950226 0.956543 0.125427\n0.962402 0.957245 0.125427\n0.973358 0.957886 0.125427\n0.983124 0.958557 0.125427\n0.991699 0.959229 0.125427\n0.114716 0.947662 0.127258\n0.140717 0.948578 0.126740\n0.168091 0.949493 0.126221\n0.197021 0.950409 0.125793\n0.227600 0.951294 0.125427\n0.260254 0.952179 0.125427\n0.294952 0.953094 0.125427\n0.331757 0.953918 0.125427\n0.370636 0.954773 0.125427\n0.411224 0.955627 0.125427\n0.453278 0.956482 0.125427\n0.496582 0.957275 0.125427\n0.540802 0.958099 0.125427\n0.584381 0.958862 0.125427\n0.626343 0.959686 0.125427\n0.666199 0.960449 0.125427\n0.703674 0.961182 0.125427\n0.738373 0.961975 0.125427\n0.770081 0.962677 0.125427\n0.798920 0.963440 0.125427\n0.824982 0.964172 0.125427\n0.848572 0.964844 0.125427\n0.870056 0.965515 0.125427\n0.889557 0.966187 0.125427\n0.907318 0.966858 0.125427\n0.923462 0.967499 0.125427\n0.938141 0.968140 0.125427\n0.951477 0.968781 0.125427\n0.963501 0.969391 0.125427\n0.974335 0.969971 0.125427\n0.983917 0.970551 0.125427\n0.992432 0.971130 0.125427\n0.117889 0.961151 0.126251\n0.144073 0.961975 0.125793\n0.171570 0.962769 0.125427\n0.200684 0.963593 0.125427\n0.231476 0.964355 0.125427\n0.264343 0.965149 0.125427\n0.299316 0.965942 0.125427\n0.336334 0.966705 0.125427\n0.375336 0.967468 0.125427\n0.416107 0.968201 0.125427\n0.458313 0.968933 0.125427\n0.501740 0.969635 0.125427\n0.545959 0.970367 0.125427\n0.589264 0.971039 0.125427\n0.631012 0.971771 0.125427\n0.670532 0.972412 0.125427\n0.707672 0.973083 0.125427\n0.742004 0.973755 0.125427\n0.773346 0.974396 0.125427\n0.801819 0.975006 0.125427\n0.827576 0.975616 0.125427\n0.850891 0.976227 0.125427\n0.872131 0.976837 0.125427\n0.891418 0.977417 0.125427\n0.908997 0.977966 0.125427\n0.924988 0.978546 0.125427\n0.939484 0.979095 0.125427\n0.952637 0.979614 0.125427\n0.964539 0.980133 0.125427\n0.975220 0.980652 0.125427\n0.984741 0.981140 0.125427\n0.993073 0.981598 0.125427\n0.039948 0.001160 0.185608\n0.061584 0.001801 0.185394\n0.084259 0.002502 0.185120\n0.107971 0.003235 0.184845\n0.132782 0.003967 0.184509\n0.158936 0.004761 0.184174\n0.186523 0.005554 0.183838\n0.215790 0.006378 0.183411\n0.246796 0.007263 0.183044\n0.279816 0.008148 0.182617\n0.314972 0.009064 0.182190\n0.352234 0.010040 0.181732\n0.391266 0.011017 0.181244\n0.431976 0.011993 0.180756\n0.474091 0.013031 0.180237\n0.517303 0.014069 0.179718\n0.560974 0.015167 0.179199\n0.603424 0.016296 0.178619\n0.644165 0.017365 0.178070\n0.682770 0.018524 0.177490\n0.718750 0.019684 0.176910\n0.752106 0.020874 0.176300\n0.782501 0.022064 0.175690\n0.810059 0.023254 0.175110\n0.835114 0.024536 0.174469\n0.857819 0.025818 0.173828\n0.878510 0.027100 0.173187\n0.897369 0.028381 0.172516\n0.914551 0.029724 0.171844\n0.930145 0.031067 0.171204\n0.944336 0.032440 0.170532\n0.957184 0.033813 0.169861\n0.041229 0.022034 0.185120\n0.063019 0.022797 0.184845\n0.085785 0.023560 0.184509\n0.109589 0.024384 0.184174\n0.134613 0.025208 0.183838\n0.160919 0.026093 0.183441\n0.188690 0.026978 0.183075\n0.218140 0.027924 0.182648\n0.249420 0.028870 0.182190\n0.282684 0.029816 0.181732\n0.318115 0.030853 0.181274\n0.355591 0.031891 0.180756\n0.394867 0.032959 0.180267\n0.435791 0.034027 0.179749\n0.478088 0.035187 0.179199\n0.521423 0.036255 0.178650\n0.565186 0.037476 0.178101\n0.607513 0.038605 0.177521\n0.648163 0.039856 0.176941\n0.686523 0.041077 0.176331\n0.722321 0.042328 0.175720\n0.755432 0.043610 0.175110\n0.785583 0.044922 0.174500\n0.812897 0.046204 0.173859\n0.837738 0.047546 0.173218\n0.860229 0.048920 0.172516\n0.880737 0.050293 0.171906\n0.899384 0.051727 0.171234\n0.916382 0.053070 0.170563\n0.931824 0.054504 0.169891\n0.945892 0.056000 0.169189\n0.958588 0.057434 0.168549\n0.042633 0.043915 0.184540\n0.064545 0.044708 0.184204\n0.087463 0.045624 0.183868\n0.111389 0.046509 0.183441\n0.136597 0.047424 0.183075\n0.163086 0.048431 0.182648\n0.191040 0.049377 0.182220\n0.220673 0.050446 0.181763\n0.252197 0.051483 0.181274\n0.285675 0.052551 0.180786\n0.321381 0.053650 0.180267\n0.359131 0.054749 0.179749\n0.398590 0.055939 0.179230\n0.439789 0.057098 0.178680\n0.482239 0.058319 0.178131\n0.525787 0.059540 0.177521\n0.569519 0.060791 0.176941\n0.611755 0.062073 0.176361\n0.652252 0.063385 0.175720\n0.690399 0.064697 0.175140\n0.726044 0.066071 0.174530\n0.758881 0.067413 0.173889\n0.788727 0.068817 0.173218\n0.815765 0.070251 0.172546\n0.840332 0.071686 0.171906\n0.862640 0.073151 0.171234\n0.882965 0.074585 0.170593\n0.901459 0.076080 0.169891\n0.918243 0.077576 0.169220\n0.933563 0.079102 0.168549\n0.947510 0.080688 0.167877\n0.960052 0.082214 0.167175\n0.044189 0.066864 0.183868\n0.066193 0.067749 0.183502\n0.089233 0.068756 0.183075\n0.113342 0.069733 0.182678\n0.138672 0.070770 0.182220\n0.165344 0.071838 0.181763\n0.193512 0.072906 0.181305\n0.223328 0.074036 0.180817\n0.255066 0.075165 0.180298\n0.288910 0.076355 0.179779\n0.324829 0.077576 0.179230\n0.362793 0.078796 0.178680\n0.402527 0.080048 0.178131\n0.443878 0.081329 0.177551\n0.486572 0.082611 0.176971\n0.530304 0.083954 0.176361\n0.573975 0.085327 0.175751\n0.616089 0.086700 0.175171\n0.656403 0.088104 0.174530\n0.694397 0.089539 0.173889\n0.729736 0.090942 0.173248\n0.762299 0.092468 0.172577\n0.791901 0.093964 0.171936\n0.818665 0.095459 0.171265\n0.843018 0.097015 0.170593\n0.865082 0.098511 0.169922\n0.885193 0.100128 0.169250\n0.903503 0.101746 0.168549\n0.920135 0.103333 0.167908\n0.935333 0.104980 0.167206\n0.949097 0.106628 0.166504\n0.961487 0.108276 0.165863\n0.045807 0.090881 0.183105\n0.067963 0.091949 0.182678\n0.091156 0.093018 0.182251\n0.115417 0.094116 0.181793\n0.140869 0.095276 0.181305\n0.167755 0.096436 0.180817\n0.196075 0.097595 0.180298\n0.226166 0.098877 0.179779\n0.258148 0.100128 0.179260\n0.292206 0.101379 0.178711\n0.328430 0.102722 0.178131\n0.366608 0.104004 0.177582\n0.406586 0.105408 0.176971\n0.448242 0.106812 0.176392\n0.491058 0.108215 0.175781\n0.534912 0.109619 0.175201\n0.578552 0.111115 0.174561\n0.620575 0.112610 0.173920\n0.660675 0.114136 0.173279\n0.698425 0.115692 0.172577\n0.733551 0.117218 0.171967\n0.765839 0.118805 0.171295\n0.795074 0.120453 0.170624\n0.821625 0.122040 0.169952\n0.845673 0.123718 0.169250\n0.867554 0.125366 0.168579\n0.887482 0.127075 0.167908\n0.905548 0.128784 0.167236\n0.922058 0.130493 0.166534\n0.937012 0.132202 0.165863\n0.950684 0.134003 0.165161\n0.962952 0.135773 0.164490\n0.047577 0.116272 0.182251\n0.069855 0.117432 0.181793\n0.093170 0.118652 0.181335\n0.117554 0.119812 0.180847\n0.143219 0.121063 0.180328\n0.170288 0.122406 0.179810\n0.198822 0.123688 0.179291\n0.229126 0.125031 0.178711\n0.261322 0.126404 0.178162\n0.295654 0.127808 0.177582\n0.332184 0.129242 0.177032\n0.370575 0.130676 0.176422\n0.410858 0.132172 0.175781\n0.452637 0.133667 0.175201\n0.495667 0.135162 0.174591\n0.539673 0.136780 0.173950\n0.583221 0.138367 0.173279\n0.625092 0.139954 0.172607\n0.665009 0.141602 0.171967\n0.702545 0.143250 0.171295\n0.737366 0.144958 0.170654\n0.769318 0.146667 0.169952\n0.798279 0.148346 0.169281\n0.824554 0.150146 0.168610\n0.848389 0.151917 0.167938\n0.870026 0.153687 0.167267\n0.889709 0.155487 0.166565\n0.907654 0.157379 0.165894\n0.923950 0.159180 0.165222\n0.938782 0.161041 0.164520\n0.952209 0.162964 0.163849\n0.964355 0.164856 0.163147\n0.049408 0.143066 0.181335\n0.071838 0.144318 0.180847\n0.095306 0.145660 0.180389\n0.119843 0.147003 0.179871\n0.145691 0.148346 0.179291\n0.172913 0.149811 0.178741\n0.201660 0.151215 0.178192\n0.232239 0.152679 0.177612\n0.264648 0.154175 0.177063\n0.299316 0.155731 0.176422\n0.336090 0.157288 0.175812\n0.374756 0.158844 0.175232\n0.415222 0.160461 0.174591\n0.457275 0.162140 0.173950\n0.500427 0.163788 0.173309\n0.544586 0.165466 0.172668\n0.588013 0.167206 0.171997\n0.629700 0.168945 0.171326\n0.669403 0.170715 0.170654\n0.706726 0.172516 0.169983\n0.741241 0.174316 0.169312\n0.772858 0.176178 0.168610\n0.801514 0.178009 0.167969\n0.827545 0.179901 0.167267\n0.851105 0.181824 0.166565\n0.872498 0.183716 0.165924\n0.891968 0.185669 0.165222\n0.909729 0.187714 0.164520\n0.925842 0.189636 0.163879\n0.940491 0.191620 0.163177\n0.953796 0.193695 0.162476\n0.965790 0.195709 0.161835\n0.051361 0.171448 0.180389\n0.073944 0.172882 0.179871\n0.097534 0.174347 0.179291\n0.122253 0.175781 0.178772\n0.148224 0.177338 0.178192\n0.175659 0.178894 0.177612\n0.204651 0.180450 0.177063\n0.235413 0.182068 0.176422\n0.268127 0.183655 0.175842\n0.303070 0.185364 0.175262\n0.340088 0.187042 0.174622\n0.379059 0.188782 0.173981\n0.419769 0.190552 0.173340\n0.461975 0.192352 0.172668\n0.505310 0.194122 0.172028\n0.549500 0.195953 0.171356\n0.592865 0.197876 0.170685\n0.634430 0.199707 0.170013\n0.673889 0.201630 0.169312\n0.710907 0.203552 0.168640\n0.745148 0.205536 0.167999\n0.776489 0.207550 0.167297\n0.804749 0.209534 0.166595\n0.830505 0.211578 0.165924\n0.853821 0.213654 0.165253\n0.874969 0.215698 0.164551\n0.894287 0.217804 0.163879\n0.911804 0.219971 0.163177\n0.927765 0.222076 0.162506\n0.942230 0.224274 0.161835\n0.955353 0.226379 0.161163\n0.967194 0.228607 0.160522\n0.053436 0.201630 0.179352\n0.076141 0.203217 0.178772\n0.099884 0.204834 0.178192\n0.124756 0.206451 0.177643\n0.150940 0.208130 0.177094\n0.178528 0.209778 0.176453\n0.207764 0.211517 0.175842\n0.238800 0.213348 0.175262\n0.271759 0.215057 0.174652\n0.306946 0.216949 0.174011\n0.344269 0.218781 0.173340\n0.383423 0.220642 0.172699\n0.424408 0.222565 0.172058\n0.466858 0.224548 0.171356\n0.510376 0.226501 0.170715\n0.554596 0.228516 0.170013\n0.597809 0.230530 0.169342\n0.639191 0.232574 0.168671\n0.678497 0.234619 0.167999\n0.715118 0.236694 0.167328\n0.749084 0.238892 0.166626\n0.780029 0.241028 0.165955\n0.808044 0.243195 0.165283\n0.833496 0.245422 0.164581\n0.856567 0.247650 0.163910\n0.877441 0.249847 0.163208\n0.896545 0.252197 0.162537\n0.913849 0.254486 0.161865\n0.929657 0.256714 0.161194\n0.943970 0.259064 0.160522\n0.956909 0.261353 0.159912\n0.968597 0.263763 0.159210\n0.055603 0.233887 0.178253\n0.078430 0.235596 0.177673\n0.102325 0.237366 0.177094\n0.127350 0.239166 0.176514\n0.153687 0.240997 0.175873\n0.181519 0.242828 0.175293\n0.210938 0.244720 0.174652\n0.242218 0.246704 0.174011\n0.275482 0.248627 0.173370\n0.311005 0.250641 0.172729\n0.348572 0.252716 0.172058\n0.388000 0.254700 0.171417\n0.429169 0.256836 0.170715\n0.471832 0.258942 0.170044\n0.515503 0.261078 0.169373\n0.559723 0.263275 0.168671\n0.602753 0.265442 0.168030\n0.643982 0.267700 0.167328\n0.683014 0.269989 0.166656\n0.719391 0.272247 0.165985\n0.753021 0.274597 0.165283\n0.783630 0.276917 0.164581\n0.811310 0.279266 0.163940\n0.836456 0.281647 0.163239\n0.859253 0.284088 0.162537\n0.879974 0.286499 0.161896\n0.898804 0.288971 0.161194\n0.915924 0.291382 0.160614\n0.931488 0.293884 0.159912\n0.945679 0.296387 0.159241\n0.958466 0.298889 0.158600\n0.970001 0.301453 0.157959\n0.057831 0.268372 0.177124\n0.080841 0.270294 0.176514\n0.104889 0.272247 0.175873\n0.130066 0.274170 0.175293\n0.156616 0.276215 0.174683\n0.184601 0.278229 0.174042\n0.214294 0.280365 0.173401\n0.245789 0.282501 0.172729\n0.279358 0.284637 0.172089\n0.315125 0.286804 0.171448\n0.352966 0.289062 0.170746\n0.392609 0.291260 0.170074\n0.434082 0.293579 0.169403\n0.476837 0.295868 0.168701\n0.520752 0.298218 0.168060\n0.564941 0.300568 0.167358\n0.607819 0.302979 0.166687\n0.648804 0.305389 0.166016\n0.687531 0.307892 0.165314\n0.723663 0.310272 0.164612\n0.756927 0.312805 0.163971\n0.787201 0.315338 0.163269\n0.814545 0.317841 0.162567\n0.839417 0.320465 0.161926\n0.861969 0.323059 0.161224\n0.882385 0.325653 0.160614\n0.901031 0.328247 0.159943\n0.917969 0.330902 0.159271\n0.933350 0.333527 0.158630\n0.947357 0.336273 0.157959\n0.959991 0.338928 0.157379\n0.971375 0.341614 0.156738\n0.060150 0.305359 0.175903\n0.083282 0.307465 0.175323\n0.107422 0.309601 0.174713\n0.132843 0.311798 0.174072\n0.159576 0.313995 0.173401\n0.187805 0.316162 0.172760\n0.217682 0.318481 0.172089\n0.249481 0.320831 0.171448\n0.283325 0.323151 0.170776\n0.319366 0.325531 0.170135\n0.357513 0.327942 0.169403\n0.397430 0.330353 0.168732\n0.439087 0.332855 0.168060\n0.481995 0.335297 0.167389\n0.526031 0.337799 0.166687\n0.570190 0.340393 0.166016\n0.612915 0.342957 0.165344\n0.653687 0.345581 0.164642\n0.692108 0.348206 0.163971\n0.727966 0.350830 0.163300\n0.760834 0.353516 0.162598\n0.790741 0.356232 0.161926\n0.817780 0.358917 0.161255\n0.842346 0.361694 0.160614\n0.864594 0.364349 0.159973\n0.884888 0.367126 0.159271\n0.903259 0.369934 0.158630\n0.919983 0.372681 0.157990\n0.935242 0.375519 0.157410\n0.949036 0.378387 0.156738\n0.961517 0.381165 0.156158\n0.972717 0.384033 0.155518\n0.062561 0.344849 0.174713\n0.085846 0.347137 0.174072\n0.110138 0.349396 0.173431\n0.135742 0.351746 0.172791\n0.162659 0.354156 0.172119\n0.191071 0.356567 0.171478\n0.221222 0.359100 0.170807\n0.253296 0.361542 0.170135\n0.287384 0.364014 0.169434\n0.323700 0.366608 0.168762\n0.362122 0.369202 0.168091\n0.402344 0.371796 0.167419\n0.444183 0.374420 0.166718\n0.487274 0.377075 0.166046\n0.531433 0.379761 0.165344\n0.575500 0.382538 0.164642\n0.618011 0.385223 0.164001\n0.658569 0.388000 0.163300\n0.696777 0.390808 0.162598\n0.732178 0.393585 0.161957\n0.764740 0.396423 0.161255\n0.794312 0.399292 0.160614\n0.820984 0.402100 0.159973\n0.845276 0.404999 0.159302\n0.867249 0.407867 0.158691\n0.887268 0.410767 0.158020\n0.905457 0.413696 0.157410\n0.922028 0.416595 0.156769\n0.937042 0.419586 0.156158\n0.950714 0.422546 0.155548\n0.962982 0.425476 0.154938\n0.974030 0.428467 0.154358\n0.065063 0.386536 0.173462\n0.088440 0.388977 0.172791\n0.112946 0.391449 0.172150\n0.138733 0.394012 0.171478\n0.165863 0.396576 0.170807\n0.194489 0.399048 0.170166\n0.224823 0.401764 0.169464\n0.257172 0.404449 0.168762\n0.291626 0.407135 0.168121\n0.328217 0.409821 0.167419\n0.366821 0.412537 0.166748\n0.407318 0.415344 0.166077\n0.449371 0.418121 0.165375\n0.492645 0.420898 0.164673\n0.536896 0.423798 0.164032\n0.580841 0.426666 0.163330\n0.623138 0.429504 0.162628\n0.663422 0.432404 0.161987\n0.701355 0.435394 0.161316\n0.736420 0.438232 0.160645\n0.768616 0.441254 0.160004\n0.797791 0.444183 0.159332\n0.824188 0.447205 0.158691\n0.848175 0.450195 0.158020\n0.869904 0.453186 0.157440\n0.889679 0.456177 0.156799\n0.907654 0.459259 0.156189\n0.923981 0.462280 0.155609\n0.938873 0.465332 0.154968\n0.952301 0.468414 0.154388\n0.964447 0.471405 0.153809\n0.975342 0.474457 0.153259\n0.067596 0.430237 0.172180\n0.091187 0.432892 0.171509\n0.115814 0.435486 0.170837\n0.141724 0.438141 0.170197\n0.169067 0.440918 0.169464\n0.197937 0.443573 0.168793\n0.228577 0.446381 0.168152\n0.261139 0.449219 0.167450\n0.295868 0.452026 0.166748\n0.332764 0.454895 0.166107\n0.371613 0.457733 0.165405\n0.412384 0.460632 0.164703\n0.454590 0.463654 0.164032\n0.498047 0.466492 0.163361\n0.542480 0.469482 0.162659\n0.586243 0.472504 0.161987\n0.628357 0.475464 0.161346\n0.668335 0.478516 0.160675\n0.705902 0.481537 0.160004\n0.740631 0.484619 0.159363\n0.772491 0.487640 0.158722\n0.801270 0.490692 0.158081\n0.827362 0.493835 0.157471\n0.851013 0.496887 0.156799\n0.872498 0.499939 0.156219\n0.892029 0.503052 0.155609\n0.909821 0.506256 0.154999\n0.925934 0.509308 0.154419\n0.940643 0.512390 0.153809\n0.953918 0.515564 0.153290\n0.965912 0.518646 0.152710\n0.976624 0.521790 0.152191\n0.070251 0.475616 0.170898\n0.093964 0.478394 0.170197\n0.118744 0.481140 0.169495\n0.144897 0.484009 0.168854\n0.172394 0.486847 0.168152\n0.201447 0.489655 0.167480\n0.232361 0.492554 0.166779\n0.265167 0.495483 0.166138\n0.300232 0.498474 0.165436\n0.337433 0.501434 0.164734\n0.376556 0.504364 0.164062\n0.417480 0.507416 0.163361\n0.459961 0.510468 0.162689\n0.503571 0.513458 0.162018\n0.547974 0.516571 0.161377\n0.591583 0.519684 0.160675\n0.633453 0.522705 0.160034\n0.673218 0.525818 0.159363\n0.710480 0.528992 0.158722\n0.744812 0.532074 0.158112\n0.776276 0.535217 0.157471\n0.804718 0.538300 0.156830\n0.830505 0.541443 0.156219\n0.853882 0.544617 0.155609\n0.875092 0.547668 0.154999\n0.894409 0.550842 0.154419\n0.911926 0.553925 0.153809\n0.927887 0.556976 0.153290\n0.942352 0.560150 0.152710\n0.955475 0.563141 0.152222\n0.967285 0.566254 0.151672\n0.977875 0.569305 0.151184\n0.072937 0.522369 0.169525\n0.096802 0.525269 0.168854\n0.121765 0.528137 0.168182\n0.148102 0.531097 0.167480\n0.175781 0.534058 0.166779\n0.205109 0.536987 0.166138\n0.236237 0.539978 0.165436\n0.269409 0.542999 0.164734\n0.304688 0.545959 0.164093\n0.342133 0.549011 0.163391\n0.381500 0.551941 0.162720\n0.422699 0.555084 0.162079\n0.465332 0.558105 0.161377\n0.509064 0.561035 0.160706\n0.553528 0.564178 0.160065\n0.596954 0.567200 0.159393\n0.638611 0.570251 0.158752\n0.678070 0.573334 0.158112\n0.714966 0.576355 0.157501\n0.748962 0.579376 0.156860\n0.780029 0.582458 0.156250\n0.808105 0.585480 0.155670\n0.833588 0.588531 0.155029\n0.856659 0.591553 0.154449\n0.877625 0.594543 0.153900\n0.896698 0.597534 0.153320\n0.914032 0.600555 0.152740\n0.929779 0.603424 0.152252\n0.944092 0.606445 0.151703\n0.957031 0.609375 0.151215\n0.968689 0.612213 0.150726\n0.979095 0.615204 0.150269\n0.075684 0.569519 0.168213\n0.099731 0.572296 0.167511\n0.124847 0.575165 0.166809\n0.151337 0.578094 0.166138\n0.179260 0.580994 0.165466\n0.208801 0.583862 0.164764\n0.240204 0.586792 0.164093\n0.273560 0.589630 0.163422\n0.309204 0.592621 0.162720\n0.346954 0.595551 0.162079\n0.386566 0.598511 0.161407\n0.427948 0.601410 0.160736\n0.470795 0.604401 0.160065\n0.514648 0.607300 0.159424\n0.559082 0.610260 0.158783\n0.602356 0.613251 0.158142\n0.643707 0.616089 0.157532\n0.682861 0.619080 0.156860\n0.719391 0.621948 0.156281\n0.753082 0.624847 0.155670\n0.783752 0.627838 0.155029\n0.811493 0.630646 0.154480\n0.836639 0.633575 0.153900\n0.859436 0.636414 0.153351\n0.880127 0.639282 0.152771\n0.898987 0.642120 0.152252\n0.916107 0.645020 0.151703\n0.931641 0.647705 0.151245\n0.945770 0.650513 0.150726\n0.958527 0.653259 0.150269\n0.970032 0.656006 0.150269\n0.980316 0.658722 0.150269\n0.078522 0.615021 0.166840\n0.102692 0.617859 0.166138\n0.127991 0.620544 0.165497\n0.154694 0.623322 0.164825\n0.182800 0.626160 0.164124\n0.212555 0.628937 0.163452\n0.244202 0.631744 0.162750\n0.277893 0.634521 0.162109\n0.313812 0.637329 0.161438\n0.351868 0.640198 0.160736\n0.391693 0.642914 0.160126\n0.433289 0.645813 0.159424\n0.476227 0.648651 0.158783\n0.520294 0.651337 0.158173\n0.564667 0.654175 0.157532\n0.607697 0.656982 0.156891\n0.648804 0.659729 0.156281\n0.687653 0.662537 0.155670\n0.723816 0.665192 0.155090\n0.757141 0.667999 0.154480\n0.787415 0.670746 0.153900\n0.814789 0.673401 0.153351\n0.839600 0.676117 0.152771\n0.862152 0.678833 0.152283\n0.882568 0.681458 0.151733\n0.901184 0.684113 0.151245\n0.918091 0.686737 0.150757\n0.933441 0.689270 0.150269\n0.947418 0.691895 0.150269\n0.959991 0.694427 0.150269\n0.971344 0.696991 0.150269\n0.981476 0.699493 0.150269\n0.081390 0.658417 0.165497\n0.105713 0.661072 0.164825\n0.131195 0.663666 0.164154\n0.158081 0.666382 0.163452\n0.186371 0.668945 0.162811\n0.216400 0.671661 0.162140\n0.248322 0.674347 0.161438\n0.282257 0.676941 0.160767\n0.318481 0.679596 0.160126\n0.356781 0.682312 0.159454\n0.396851 0.684906 0.158813\n0.438629 0.687531 0.158173\n0.481781 0.690216 0.157562\n0.525940 0.692780 0.156921\n0.570190 0.695435 0.156311\n0.612946 0.697968 0.155701\n0.653839 0.700562 0.155090\n0.692383 0.703186 0.154510\n0.728180 0.705658 0.153931\n0.761108 0.708221 0.153381\n0.791016 0.710785 0.152802\n0.818054 0.713226 0.152313\n0.842560 0.715759 0.151733\n0.864807 0.718262 0.151276\n0.884979 0.720642 0.150787\n0.903381 0.723083 0.150299\n0.920044 0.725433 0.150269\n0.935242 0.727844 0.150269\n0.949036 0.730194 0.150269\n0.961456 0.732483 0.150269\n0.972626 0.734772 0.150269\n0.982574 0.737091 0.150269\n0.084320 0.699097 0.164185\n0.108795 0.701660 0.163483\n0.134430 0.704102 0.162811\n0.161499 0.706604 0.162170\n0.190002 0.709045 0.161499\n0.220306 0.711548 0.160797\n0.252472 0.714050 0.160156\n0.286682 0.716492 0.159485\n0.323181 0.718933 0.158844\n0.361725 0.721436 0.158203\n0.402039 0.723846 0.157593\n0.444031 0.726318 0.156921\n0.487366 0.728760 0.156311\n0.531555 0.731110 0.155731\n0.575684 0.733551 0.155090\n0.618225 0.735840 0.154541\n0.658844 0.738281 0.153961\n0.697083 0.740631 0.153381\n0.732483 0.742889 0.152832\n0.765045 0.745239 0.152313\n0.794556 0.747589 0.151764\n0.821259 0.749817 0.151276\n0.845428 0.752075 0.150787\n0.867401 0.754303 0.150299\n0.887360 0.756500 0.150269\n0.905518 0.758728 0.150269\n0.921997 0.760834 0.150269\n0.936981 0.763000 0.150269\n0.950592 0.765106 0.150269\n0.962860 0.767120 0.150269\n0.973877 0.769226 0.150269\n0.983673 0.771240 0.150269\n0.087280 0.736847 0.162842\n0.111877 0.739075 0.162201\n0.137726 0.741394 0.161499\n0.165009 0.743713 0.160828\n0.193726 0.745972 0.160187\n0.224274 0.748230 0.159485\n0.256683 0.750519 0.158844\n0.291199 0.752747 0.158234\n0.327942 0.755035 0.157593\n0.366730 0.757294 0.156952\n0.407318 0.759491 0.156311\n0.449432 0.761719 0.155731\n0.492828 0.763916 0.155121\n0.537201 0.766113 0.154541\n0.581207 0.768280 0.153961\n0.623474 0.770416 0.153412\n0.663818 0.772552 0.152832\n0.701691 0.774689 0.152344\n0.736755 0.776733 0.151794\n0.768890 0.778809 0.151306\n0.798035 0.780914 0.150818\n0.824371 0.782898 0.150330\n0.848267 0.784943 0.150269\n0.869965 0.786865 0.150269\n0.889648 0.788879 0.150269\n0.907593 0.790771 0.150269\n0.923889 0.792725 0.150269\n0.938690 0.794617 0.150269\n0.952118 0.796509 0.150269\n0.964233 0.798340 0.150269\n0.975067 0.800171 0.150269\n0.984772 0.801971 0.150269\n0.090332 0.771118 0.161530\n0.115051 0.773193 0.160858\n0.141083 0.775299 0.160187\n0.168549 0.777374 0.159515\n0.197479 0.779449 0.158875\n0.228210 0.781555 0.158234\n0.260925 0.783600 0.157623\n0.295746 0.785583 0.156982\n0.332764 0.787628 0.156342\n0.371796 0.789703 0.155762\n0.412537 0.791656 0.155151\n0.454834 0.793671 0.154572\n0.498444 0.795593 0.153992\n0.542816 0.797546 0.153442\n0.586639 0.799530 0.152893\n0.628662 0.801422 0.152344\n0.668671 0.803345 0.151794\n0.706207 0.805267 0.151306\n0.740875 0.807098 0.150818\n0.772675 0.808960 0.150330\n0.801392 0.810822 0.150269\n0.827423 0.812592 0.150269\n0.850983 0.814423 0.150269\n0.872437 0.816132 0.150269\n0.891907 0.817932 0.150269\n0.909637 0.819672 0.150269\n0.925720 0.821350 0.150269\n0.940338 0.823029 0.150269\n0.953613 0.824707 0.150269\n0.965515 0.826324 0.150269\n0.976227 0.827942 0.150269\n0.985779 0.829559 0.150269\n0.093353 0.802063 0.160217\n0.118256 0.803925 0.159546\n0.144470 0.805847 0.158905\n0.172089 0.807739 0.158264\n0.201263 0.809570 0.157654\n0.232269 0.811432 0.156982\n0.265198 0.813293 0.156342\n0.300323 0.815125 0.155792\n0.337585 0.816956 0.155151\n0.376801 0.818756 0.154572\n0.417816 0.820526 0.154022\n0.460327 0.822357 0.153442\n0.503937 0.824066 0.152893\n0.548370 0.825867 0.152374\n0.592041 0.827606 0.151794\n0.633789 0.829315 0.151306\n0.673523 0.831055 0.150848\n0.710663 0.832733 0.150360\n0.744965 0.834381 0.150269\n0.776337 0.836060 0.150269\n0.804749 0.837708 0.150269\n0.830414 0.839294 0.150269\n0.853699 0.840881 0.150269\n0.874847 0.842468 0.150269\n0.894104 0.844025 0.150269\n0.911591 0.845581 0.150269\n0.927521 0.847046 0.150269\n0.941956 0.848572 0.150269\n0.955078 0.850098 0.150269\n0.966797 0.851501 0.150269\n0.977386 0.852936 0.150269\n0.986755 0.854370 0.150269\n0.096436 0.829865 0.158905\n0.121490 0.831573 0.158295\n0.147888 0.833313 0.157654\n0.175690 0.835022 0.157013\n0.205109 0.836670 0.156372\n0.236328 0.838318 0.155792\n0.269531 0.840027 0.155182\n0.304901 0.841644 0.154633\n0.342438 0.843353 0.154022\n0.381836 0.844910 0.153473\n0.423065 0.846558 0.152924\n0.465698 0.848175 0.152374\n0.509491 0.849731 0.151825\n0.553894 0.851318 0.151306\n0.597290 0.852875 0.150848\n0.638824 0.854401 0.150360\n0.678223 0.855957 0.150269\n0.714996 0.857483 0.150269\n0.748932 0.858948 0.150269\n0.779938 0.860443 0.150269\n0.807892 0.861877 0.150269\n0.833344 0.863342 0.150269\n0.856354 0.864777 0.150269\n0.877228 0.866150 0.150269\n0.896240 0.867554 0.150269\n0.913513 0.868927 0.150269\n0.929230 0.870239 0.150269\n0.943512 0.871582 0.150269\n0.956421 0.872894 0.150269\n0.968048 0.874176 0.150269\n0.978485 0.875458 0.150269\n0.987701 0.876678 0.150269\n0.099518 0.854950 0.157684\n0.124756 0.856476 0.157043\n0.151306 0.858032 0.156403\n0.179352 0.859589 0.155823\n0.208954 0.861084 0.155212\n0.240387 0.862610 0.154633\n0.273834 0.864044 0.154053\n0.309570 0.865570 0.153473\n0.347321 0.867065 0.152924\n0.386932 0.868500 0.152405\n0.428345 0.869965 0.151855\n0.471161 0.871399 0.151337\n0.515015 0.872803 0.150879\n0.559387 0.874268 0.150360\n0.602539 0.875641 0.150269\n0.643768 0.877014 0.150269\n0.682861 0.878387 0.150269\n0.719299 0.879761 0.150269\n0.752869 0.881104 0.150269\n0.783447 0.882385 0.150269\n0.811096 0.883698 0.150269\n0.836121 0.884979 0.150269\n0.858887 0.886261 0.150269\n0.879517 0.887512 0.150269\n0.898285 0.888733 0.150269\n0.915375 0.889984 0.150269\n0.930908 0.891113 0.150269\n0.945007 0.892334 0.150269\n0.957764 0.893494 0.150269\n0.969238 0.894592 0.150269\n0.979523 0.895752 0.150269\n0.988586 0.896820 0.150269\n0.102661 0.877533 0.156403\n0.128052 0.878937 0.155853\n0.154816 0.880310 0.155212\n0.183014 0.881714 0.154663\n0.212799 0.883057 0.154053\n0.244507 0.884430 0.153503\n0.278198 0.885803 0.152954\n0.314178 0.887115 0.152405\n0.352203 0.888458 0.151855\n0.392029 0.889740 0.151367\n0.433563 0.891083 0.150879\n0.476532 0.892395 0.150360\n0.520477 0.893646 0.150269\n0.564789 0.894897 0.150269\n0.607666 0.896179 0.150269\n0.648651 0.897430 0.150269\n0.687378 0.898651 0.150269\n0.723419 0.899811 0.150269\n0.756653 0.901031 0.150269\n0.786835 0.902191 0.150269\n0.814178 0.903351 0.150269\n0.838898 0.904541 0.150269\n0.861359 0.905640 0.150269\n0.881775 0.906769 0.150269\n0.900330 0.907867 0.150269\n0.917206 0.908936 0.150269\n0.932556 0.910004 0.150269\n0.946472 0.911041 0.150269\n0.959045 0.912048 0.150269\n0.970398 0.913055 0.150269\n0.980499 0.914032 0.150269\n0.989471 0.915070 0.150269\n0.105804 0.897980 0.155243\n0.131378 0.899200 0.154694\n0.158264 0.900482 0.154083\n0.186646 0.901703 0.153534\n0.216675 0.902954 0.152985\n0.248627 0.904175 0.152435\n0.282593 0.905365 0.151917\n0.318817 0.906616 0.151367\n0.357117 0.907806 0.150909\n0.397125 0.908966 0.150391\n0.438812 0.910156 0.150269\n0.481873 0.911316 0.150269\n0.525879 0.912445 0.150269\n0.570038 0.913574 0.150269\n0.612671 0.914703 0.150269\n0.653442 0.915802 0.150269\n0.691772 0.916931 0.150269\n0.727509 0.917969 0.150269\n0.760315 0.919037 0.150269\n0.790192 0.920074 0.150269\n0.817108 0.921112 0.150269\n0.841583 0.922180 0.150269\n0.863770 0.923157 0.150269\n0.883881 0.924133 0.150269\n0.902252 0.925110 0.150269\n0.918945 0.926056 0.150269\n0.934082 0.927002 0.150269\n0.947845 0.927948 0.150269\n0.960297 0.928802 0.150269\n0.971497 0.929749 0.150269\n0.981476 0.930573 0.150269\n0.990326 0.931427 0.150269\n0.108978 0.916412 0.154114\n0.134674 0.917542 0.153534\n0.161774 0.918640 0.152985\n0.190338 0.919739 0.152466\n0.220612 0.920898 0.151917\n0.252777 0.922028 0.151398\n0.286987 0.923096 0.150940\n0.323425 0.924164 0.150391\n0.361877 0.925262 0.150269\n0.402130 0.926270 0.150269\n0.444031 0.927368 0.150269\n0.487213 0.928406 0.150269\n0.531281 0.929413 0.150269\n0.575287 0.930420 0.150269\n0.617645 0.931396 0.150269\n0.658081 0.932404 0.150269\n0.696136 0.933350 0.150269\n0.731476 0.934326 0.150269\n0.763947 0.935272 0.150269\n0.793365 0.936218 0.150269\n0.819977 0.937103 0.150269\n0.844177 0.938049 0.150269\n0.866058 0.938934 0.150269\n0.885956 0.939789 0.150269\n0.904114 0.940674 0.150269\n0.920593 0.941467 0.150269\n0.935608 0.942291 0.150269\n0.949188 0.943146 0.150269\n0.961487 0.943939 0.150269\n0.972534 0.944702 0.150269\n0.982422 0.945465 0.150269\n0.991089 0.946198 0.150269\n0.112122 0.933014 0.153015\n0.138000 0.934052 0.152466\n0.165253 0.935059 0.151947\n0.193970 0.936066 0.151398\n0.224518 0.937073 0.150940\n0.256866 0.938049 0.150421\n0.291382 0.939056 0.150269\n0.328064 0.940033 0.150269\n0.366730 0.940979 0.150269\n0.407166 0.941925 0.150269\n0.449188 0.942871 0.150269\n0.492371 0.943787 0.150269\n0.536591 0.944672 0.150269\n0.580383 0.945587 0.150269\n0.622498 0.946472 0.150269\n0.662598 0.947357 0.150269\n0.700348 0.948212 0.150269\n0.735321 0.949036 0.150269\n0.767395 0.949890 0.150269\n0.796478 0.950745 0.150269\n0.822784 0.951508 0.150269\n0.846649 0.952301 0.150269\n0.868347 0.953094 0.150269\n0.888000 0.953827 0.150269\n0.905914 0.954620 0.150269\n0.922211 0.955322 0.150269\n0.937012 0.956085 0.150269\n0.950470 0.956787 0.150269\n0.962616 0.957458 0.150269\n0.973541 0.958130 0.150269\n0.983276 0.958832 0.150269\n0.991852 0.959442 0.150269\n0.115295 0.947998 0.151978\n0.141327 0.948914 0.151428\n0.168732 0.949860 0.150940\n0.197662 0.950745 0.150452\n0.228363 0.951630 0.150269\n0.261047 0.952515 0.150269\n0.295746 0.953369 0.150269\n0.332642 0.954285 0.150269\n0.371521 0.955139 0.150269\n0.412109 0.955933 0.150269\n0.454224 0.956757 0.150269\n0.497559 0.957550 0.150269\n0.541779 0.958374 0.150269\n0.585358 0.959167 0.150269\n0.627167 0.959961 0.150269\n0.667023 0.960724 0.150269\n0.704468 0.961517 0.150269\n0.739014 0.962250 0.150269\n0.770752 0.962982 0.150269\n0.799469 0.963715 0.150269\n0.825439 0.964386 0.150269\n0.849060 0.965088 0.150269\n0.870422 0.965790 0.150269\n0.889923 0.966431 0.150269\n0.907654 0.967133 0.150269\n0.923737 0.967743 0.150269\n0.938385 0.968384 0.150269\n0.951691 0.968994 0.150269\n0.963715 0.969574 0.150269\n0.974487 0.970154 0.150269\n0.984100 0.970764 0.150269\n0.992554 0.971283 0.150269\n0.118469 0.961456 0.150970\n0.144623 0.962250 0.150452\n0.172241 0.963074 0.150269\n0.201324 0.963837 0.150269\n0.232269 0.964661 0.150269\n0.265076 0.965454 0.150269\n0.300110 0.966187 0.150269\n0.337189 0.966980 0.150269\n0.376221 0.967712 0.150269\n0.417023 0.968475 0.150269\n0.459259 0.969208 0.150269\n0.502655 0.969910 0.150269\n0.546875 0.970612 0.150269\n0.590179 0.971313 0.150269\n0.631775 0.971985 0.150269\n0.671326 0.972687 0.150269\n0.708405 0.973358 0.150269\n0.742615 0.973969 0.150269\n0.773987 0.974609 0.150269\n0.802368 0.975250 0.150269\n0.828033 0.975861 0.150269\n0.851349 0.976471 0.150269\n0.872467 0.977051 0.150269\n0.891754 0.977631 0.150269\n0.909302 0.978210 0.150269\n0.925232 0.978760 0.150269\n0.939697 0.979309 0.150269\n0.952881 0.979828 0.150269\n0.964722 0.980316 0.150269\n0.975372 0.980835 0.150269\n0.984863 0.981323 0.150269\n0.993195 0.981781 0.150269\n0.040161 0.001404 0.213562\n0.061859 0.002075 0.213318\n0.084503 0.002716 0.213013\n0.108246 0.003448 0.212677\n0.133148 0.004272 0.212341\n0.159302 0.005035 0.211975\n0.186920 0.005859 0.211578\n0.216248 0.006714 0.211182\n0.247284 0.007599 0.210754\n0.280365 0.008514 0.210327\n0.315613 0.009460 0.209869\n0.352814 0.010376 0.209351\n0.391907 0.011383 0.208862\n0.432678 0.012360 0.208344\n0.474792 0.013428 0.207794\n0.518066 0.014465 0.207184\n0.561707 0.015533 0.206665\n0.604187 0.016663 0.206024\n0.644897 0.017792 0.205475\n0.683380 0.018921 0.204865\n0.719452 0.020081 0.204193\n0.752747 0.021301 0.203552\n0.783081 0.022522 0.202972\n0.810608 0.023743 0.202301\n0.835571 0.024994 0.201599\n0.858276 0.026276 0.200928\n0.878967 0.027588 0.200256\n0.897736 0.028839 0.199554\n0.914886 0.030212 0.198853\n0.930450 0.031586 0.198120\n0.944611 0.032928 0.197479\n0.957458 0.034302 0.196747\n0.041473 0.022308 0.213013\n0.063293 0.023071 0.212677\n0.086090 0.023834 0.212341\n0.109924 0.024719 0.212006\n0.134979 0.025543 0.211578\n0.161316 0.026398 0.211212\n0.189178 0.027344 0.210754\n0.218628 0.028259 0.210327\n0.249878 0.029205 0.209869\n0.283234 0.030212 0.209351\n0.318756 0.031250 0.208862\n0.356201 0.032288 0.208344\n0.395538 0.033356 0.207794\n0.436462 0.034424 0.207245\n0.478851 0.035553 0.206665\n0.522308 0.036713 0.206055\n0.565948 0.037872 0.205475\n0.608307 0.039062 0.204865\n0.648895 0.040314 0.204254\n0.687225 0.041504 0.203613\n0.723053 0.042786 0.202972\n0.756104 0.044098 0.202301\n0.786163 0.045349 0.201630\n0.813446 0.046692 0.200958\n0.838165 0.048004 0.200287\n0.860687 0.049377 0.199585\n0.881134 0.050812 0.198883\n0.899750 0.052155 0.198151\n0.916748 0.053619 0.197479\n0.932190 0.055084 0.196777\n0.946198 0.056519 0.196045\n0.958893 0.057983 0.195312\n0.042908 0.044220 0.212341\n0.064850 0.045105 0.212006\n0.087769 0.045929 0.211639\n0.111755 0.046875 0.211212\n0.136963 0.047821 0.210754\n0.163483 0.048767 0.210358\n0.191498 0.049805 0.209900\n0.221161 0.050812 0.209351\n0.252716 0.051849 0.208893\n0.286285 0.052948 0.208374\n0.321991 0.054047 0.207825\n0.359772 0.055176 0.207275\n0.399323 0.056366 0.206726\n0.440521 0.057556 0.206085\n0.483032 0.058777 0.205505\n0.526642 0.060059 0.204895\n0.570312 0.061249 0.204254\n0.612579 0.062561 0.203644\n0.653015 0.063904 0.202972\n0.691132 0.065186 0.202332\n0.726746 0.066559 0.201630\n0.759460 0.067932 0.201019\n0.789337 0.069336 0.200287\n0.816315 0.070770 0.199585\n0.840790 0.072174 0.198914\n0.863129 0.073639 0.198181\n0.883392 0.075104 0.197510\n0.901825 0.076599 0.196808\n0.918610 0.078156 0.196045\n0.933899 0.079712 0.195374\n0.947754 0.081238 0.194641\n0.960327 0.082794 0.193878\n0.044464 0.067169 0.211639\n0.066528 0.068115 0.211212\n0.089569 0.069122 0.210815\n0.113739 0.070129 0.210358\n0.139069 0.071167 0.209900\n0.165771 0.072205 0.209381\n0.193939 0.073303 0.208893\n0.223846 0.074463 0.208374\n0.255646 0.075592 0.207825\n0.289459 0.076782 0.207275\n0.325500 0.078003 0.206726\n0.363525 0.079254 0.206085\n0.403320 0.080536 0.205505\n0.444672 0.081787 0.204926\n0.487396 0.083130 0.204285\n0.531128 0.084473 0.203644\n0.574768 0.085815 0.203003\n0.616913 0.087219 0.202362\n0.657196 0.088654 0.201660\n0.695129 0.090057 0.201019\n0.730499 0.091522 0.200317\n0.762909 0.092957 0.199615\n0.792480 0.094513 0.198944\n0.819244 0.096069 0.198212\n0.843506 0.097534 0.197540\n0.865570 0.099152 0.196808\n0.885651 0.100739 0.196075\n0.903870 0.102295 0.195404\n0.920532 0.103912 0.194672\n0.935669 0.105591 0.193909\n0.949341 0.107208 0.193237\n0.961792 0.108917 0.192505\n0.046143 0.091309 0.210815\n0.068359 0.092346 0.210358\n0.091492 0.093384 0.209930\n0.115814 0.094543 0.209381\n0.141327 0.095703 0.208923\n0.168182 0.096893 0.208405\n0.196594 0.098083 0.207855\n0.226685 0.099335 0.207306\n0.258728 0.100586 0.206757\n0.292847 0.101868 0.206146\n0.329102 0.103149 0.205536\n0.367371 0.104553 0.204926\n0.407410 0.105927 0.204315\n0.449005 0.107300 0.203674\n0.491913 0.108734 0.203033\n0.535797 0.110199 0.202362\n0.579376 0.111633 0.201691\n0.621399 0.113159 0.201050\n0.661499 0.114716 0.200317\n0.699188 0.116241 0.199646\n0.734283 0.117798 0.198944\n0.766418 0.119385 0.198242\n0.795654 0.121002 0.197540\n0.822144 0.122681 0.196838\n0.846191 0.124298 0.196106\n0.868042 0.125977 0.195404\n0.887878 0.127716 0.194672\n0.905945 0.129395 0.193939\n0.922424 0.131134 0.193237\n0.937378 0.132843 0.192535\n0.950928 0.134644 0.191803\n0.963196 0.136444 0.191071\n0.047913 0.116669 0.209930\n0.070251 0.117889 0.209442\n0.093536 0.119080 0.208923\n0.118011 0.120300 0.208405\n0.143707 0.121582 0.207855\n0.170715 0.122864 0.207306\n0.199341 0.124207 0.206757\n0.229706 0.125519 0.206146\n0.261963 0.126892 0.205566\n0.296356 0.128326 0.204956\n0.332855 0.129730 0.204315\n0.371368 0.131226 0.203735\n0.411652 0.132721 0.203033\n0.453461 0.134247 0.202393\n0.496552 0.135773 0.201691\n0.540588 0.137360 0.201050\n0.584045 0.138947 0.200348\n0.625977 0.140594 0.199677\n0.665833 0.142212 0.198975\n0.703308 0.143890 0.198242\n0.738129 0.145569 0.197571\n0.769989 0.147247 0.196869\n0.798920 0.149048 0.196106\n0.825104 0.150818 0.195435\n0.848907 0.152527 0.194733\n0.870514 0.154358 0.193970\n0.890167 0.156219 0.193268\n0.908020 0.157990 0.192535\n0.924316 0.159882 0.191803\n0.939117 0.161743 0.191101\n0.952515 0.163666 0.190399\n0.964630 0.165588 0.189667\n0.049805 0.143555 0.208954\n0.072235 0.144867 0.208405\n0.095673 0.146118 0.207886\n0.120300 0.147522 0.207336\n0.146118 0.148895 0.206787\n0.173401 0.150330 0.206177\n0.202271 0.151733 0.205566\n0.232788 0.153229 0.204956\n0.265289 0.154755 0.204346\n0.299988 0.156311 0.203735\n0.336792 0.157837 0.203064\n0.375549 0.159424 0.202423\n0.416107 0.161072 0.201721\n0.458069 0.162689 0.201080\n0.501343 0.164398 0.200378\n0.545471 0.166077 0.199707\n0.588867 0.167847 0.199005\n0.630646 0.169617 0.198303\n0.670258 0.171356 0.197601\n0.707489 0.173187 0.196899\n0.742004 0.175018 0.196167\n0.773560 0.176819 0.195465\n0.802155 0.178711 0.194733\n0.828094 0.180634 0.193970\n0.851593 0.182526 0.193298\n0.872955 0.184479 0.192566\n0.892426 0.186432 0.191833\n0.910095 0.188385 0.191132\n0.926208 0.190399 0.190430\n0.940826 0.192383 0.189697\n0.954102 0.194458 0.189026\n0.966064 0.196503 0.188293\n0.051788 0.171997 0.207886\n0.074371 0.173431 0.207336\n0.097961 0.174866 0.206818\n0.122742 0.176361 0.206177\n0.148743 0.177856 0.205627\n0.176178 0.179443 0.204987\n0.205231 0.181030 0.204346\n0.236023 0.182617 0.203766\n0.268829 0.184296 0.203094\n0.303772 0.185974 0.202423\n0.340851 0.187714 0.201752\n0.379852 0.189423 0.201111\n0.420624 0.191193 0.200378\n0.462860 0.192963 0.199707\n0.506287 0.194794 0.199005\n0.550446 0.196655 0.198334\n0.593750 0.198486 0.197632\n0.635345 0.200409 0.196899\n0.674744 0.202362 0.196198\n0.711700 0.204315 0.195465\n0.745880 0.206268 0.194763\n0.777100 0.208252 0.194031\n0.805420 0.210297 0.193298\n0.831085 0.212341 0.192596\n0.854309 0.214417 0.191864\n0.875458 0.216492 0.191132\n0.894684 0.218567 0.190460\n0.912170 0.220734 0.189728\n0.928101 0.222870 0.189026\n0.942566 0.225037 0.188324\n0.955658 0.227234 0.187592\n0.967468 0.229431 0.186890\n0.053833 0.202271 0.206818\n0.076538 0.203796 0.206207\n0.100281 0.205414 0.205658\n0.125275 0.207062 0.204987\n0.151398 0.208710 0.204407\n0.179077 0.210419 0.203766\n0.208374 0.212189 0.203094\n0.239410 0.213928 0.202454\n0.272430 0.215729 0.201752\n0.307709 0.217621 0.201111\n0.345062 0.219452 0.200409\n0.384308 0.221375 0.199738\n0.425201 0.223236 0.199036\n0.467712 0.225220 0.198334\n0.511383 0.227234 0.197632\n0.555481 0.229218 0.196930\n0.598724 0.231232 0.196228\n0.640076 0.233368 0.195496\n0.679230 0.235382 0.194794\n0.715942 0.237518 0.194061\n0.749817 0.239716 0.193329\n0.780701 0.241852 0.192627\n0.808685 0.244049 0.191925\n0.834045 0.246216 0.191162\n0.857025 0.248474 0.190460\n0.877930 0.250702 0.189728\n0.896942 0.252960 0.189056\n0.914276 0.255249 0.188354\n0.929993 0.257568 0.187622\n0.944275 0.259888 0.186920\n0.957214 0.262299 0.186218\n0.968872 0.264709 0.185547\n0.056000 0.234497 0.205658\n0.078857 0.236206 0.205017\n0.102783 0.238007 0.204407\n0.127899 0.239838 0.203796\n0.154236 0.241638 0.203125\n0.182098 0.243561 0.202484\n0.211578 0.245453 0.201813\n0.242889 0.247375 0.201141\n0.276215 0.249390 0.200439\n0.311798 0.251434 0.199738\n0.349365 0.253387 0.199066\n0.388916 0.255493 0.198364\n0.430084 0.257538 0.197662\n0.472717 0.259674 0.196991\n0.516479 0.261902 0.196228\n0.560638 0.264099 0.195526\n0.603729 0.266296 0.194794\n0.644928 0.268524 0.194061\n0.683807 0.270782 0.193359\n0.720215 0.273102 0.192627\n0.753754 0.275421 0.191925\n0.784241 0.277802 0.191193\n0.811951 0.280212 0.190491\n0.836975 0.282501 0.189758\n0.859741 0.284943 0.189087\n0.880432 0.287384 0.188354\n0.899200 0.289825 0.187653\n0.916351 0.292328 0.186920\n0.931854 0.294830 0.186218\n0.945984 0.297302 0.185577\n0.958740 0.299835 0.184906\n0.970245 0.302429 0.184204\n0.058258 0.269073 0.204407\n0.081268 0.270966 0.203827\n0.105316 0.272949 0.203156\n0.130585 0.274963 0.202484\n0.157135 0.276947 0.201843\n0.185181 0.279022 0.201172\n0.214935 0.281158 0.200439\n0.246460 0.283234 0.199768\n0.280090 0.285431 0.199066\n0.315887 0.287598 0.198395\n0.353760 0.289825 0.197693\n0.393585 0.292084 0.196991\n0.434967 0.294373 0.196259\n0.477814 0.296692 0.195526\n0.521759 0.299103 0.194855\n0.565887 0.301422 0.194122\n0.608765 0.303864 0.193359\n0.649750 0.306335 0.192657\n0.688416 0.308777 0.191956\n0.724457 0.311279 0.191193\n0.757690 0.313782 0.190491\n0.787842 0.316284 0.189789\n0.815186 0.318848 0.189087\n0.839935 0.321381 0.188385\n0.862427 0.324005 0.187653\n0.882874 0.326691 0.186951\n0.901459 0.329224 0.186249\n0.918335 0.331848 0.185577\n0.933746 0.334564 0.184906\n0.947662 0.337189 0.184235\n0.960297 0.339966 0.183594\n0.971649 0.342651 0.182892\n0.060638 0.306152 0.203156\n0.083740 0.308228 0.202515\n0.107971 0.310425 0.201843\n0.133423 0.312622 0.201172\n0.160156 0.314728 0.200470\n0.188416 0.317078 0.199799\n0.218353 0.319366 0.199127\n0.250153 0.321655 0.198395\n0.284088 0.324036 0.197693\n0.320190 0.326355 0.197021\n0.358337 0.328796 0.196289\n0.398315 0.331268 0.195557\n0.439972 0.333710 0.194885\n0.483032 0.336273 0.194122\n0.527130 0.338806 0.193390\n0.571136 0.341278 0.192719\n0.613892 0.343903 0.191986\n0.654633 0.346588 0.191223\n0.692963 0.349121 0.190552\n0.728760 0.351868 0.189789\n0.761536 0.354492 0.189148\n0.791382 0.357178 0.188416\n0.818420 0.359955 0.187714\n0.842865 0.362640 0.186981\n0.865112 0.365417 0.186279\n0.885315 0.368195 0.185608\n0.903687 0.370941 0.184937\n0.920380 0.373779 0.184235\n0.935608 0.376587 0.183594\n0.949310 0.379425 0.182922\n0.961792 0.382233 0.182312\n0.972961 0.385040 0.181671\n0.063049 0.345642 0.201874\n0.086273 0.347900 0.201202\n0.110687 0.350281 0.200500\n0.136322 0.352692 0.199799\n0.163239 0.355011 0.199158\n0.191711 0.357483 0.198425\n0.221832 0.359894 0.197723\n0.253937 0.362427 0.197052\n0.288208 0.364990 0.196289\n0.324524 0.367493 0.195587\n0.362976 0.370117 0.194885\n0.403229 0.372803 0.194153\n0.445099 0.375366 0.193420\n0.488281 0.378082 0.192719\n0.532532 0.380798 0.191986\n0.576477 0.383484 0.191254\n0.618988 0.386230 0.190552\n0.659515 0.389069 0.189819\n0.697571 0.391785 0.189148\n0.732971 0.394623 0.188416\n0.765472 0.397430 0.187744\n0.794952 0.400299 0.187012\n0.821655 0.403198 0.186279\n0.845795 0.406036 0.185638\n0.867798 0.408966 0.184967\n0.887756 0.411926 0.184296\n0.905853 0.414764 0.183624\n0.922394 0.417694 0.182983\n0.937378 0.420654 0.182312\n0.950989 0.423584 0.181702\n0.963287 0.426544 0.181061\n0.974304 0.429504 0.180481\n0.065521 0.387451 0.200500\n0.088959 0.389862 0.199829\n0.113495 0.392365 0.199158\n0.139282 0.394958 0.198425\n0.166412 0.397491 0.197784\n0.195129 0.400146 0.197052\n0.225494 0.402710 0.196320\n0.257874 0.405365 0.195648\n0.292419 0.408081 0.194916\n0.329041 0.410767 0.194183\n0.367737 0.413574 0.193451\n0.408264 0.416351 0.192749\n0.450317 0.419128 0.192017\n0.493683 0.421997 0.191284\n0.538025 0.424866 0.190582\n0.581787 0.427643 0.189850\n0.624176 0.430603 0.189178\n0.664307 0.433441 0.188446\n0.702148 0.436401 0.187775\n0.737213 0.439392 0.187012\n0.769318 0.442291 0.186310\n0.798462 0.445282 0.185638\n0.824829 0.448303 0.184967\n0.848694 0.451294 0.184326\n0.870392 0.454346 0.183655\n0.890137 0.457336 0.183014\n0.908051 0.460327 0.182343\n0.924347 0.463440 0.181702\n0.939178 0.466400 0.181122\n0.952606 0.469513 0.180481\n0.964722 0.472534 0.179901\n0.975586 0.475586 0.179291\n0.068085 0.431213 0.199188\n0.091675 0.433777 0.198456\n0.116394 0.436462 0.197784\n0.142365 0.439209 0.197083\n0.169678 0.441895 0.196350\n0.198639 0.444672 0.195648\n0.229248 0.447388 0.194946\n0.261902 0.450226 0.194183\n0.296692 0.453064 0.193451\n0.333618 0.455902 0.192780\n0.372589 0.458832 0.192047\n0.413300 0.461731 0.191284\n0.455536 0.464661 0.190613\n0.499084 0.467621 0.189880\n0.543457 0.470520 0.189209\n0.587219 0.473572 0.188477\n0.629333 0.476624 0.187775\n0.669189 0.479553 0.187042\n0.706726 0.482635 0.186371\n0.741455 0.485718 0.185669\n0.773132 0.488708 0.184998\n0.801941 0.491852 0.184357\n0.827972 0.494934 0.183655\n0.851532 0.498016 0.183014\n0.872986 0.501129 0.182343\n0.892517 0.504242 0.181732\n0.910217 0.507324 0.181122\n0.926331 0.510468 0.180511\n0.940948 0.513580 0.179932\n0.954224 0.516724 0.179291\n0.966156 0.519836 0.178741\n0.976837 0.522888 0.178192\n0.070770 0.476654 0.197815\n0.094452 0.479370 0.197113\n0.119385 0.482239 0.196350\n0.145447 0.484985 0.195679\n0.173004 0.487915 0.194946\n0.202209 0.490753 0.194214\n0.233093 0.493591 0.193542\n0.265991 0.496552 0.192780\n0.301086 0.499542 0.192047\n0.338287 0.502472 0.191315\n0.377502 0.505463 0.190613\n0.418457 0.508575 0.189880\n0.460907 0.511566 0.189209\n0.504608 0.514648 0.188477\n0.549011 0.517639 0.187805\n0.592529 0.520752 0.187073\n0.634460 0.523895 0.186401\n0.674072 0.526978 0.185699\n0.711243 0.530090 0.185028\n0.745605 0.533264 0.184357\n0.776978 0.536316 0.183685\n0.805389 0.539459 0.183044\n0.831116 0.542664 0.182373\n0.854401 0.545685 0.181763\n0.875549 0.548859 0.181122\n0.894806 0.551910 0.180542\n0.912292 0.555084 0.179932\n0.928223 0.558167 0.179352\n0.942688 0.561249 0.178772\n0.955780 0.564331 0.178192\n0.967560 0.567352 0.177643\n0.978119 0.570343 0.177155\n0.073486 0.523499 0.196381\n0.097321 0.526337 0.195709\n0.122375 0.529266 0.194977\n0.148682 0.532104 0.194244\n0.176422 0.535126 0.193542\n0.205811 0.538147 0.192810\n0.236908 0.541016 0.192108\n0.270142 0.544067 0.191376\n0.305573 0.547119 0.190643\n0.342987 0.550079 0.189941\n0.382477 0.553101 0.189240\n0.423706 0.556152 0.188507\n0.466278 0.559143 0.187836\n0.510193 0.562256 0.187073\n0.554565 0.565247 0.186432\n0.597961 0.568298 0.185699\n0.639587 0.571411 0.185028\n0.678955 0.574402 0.184387\n0.715790 0.577515 0.183716\n0.749786 0.580566 0.183044\n0.780731 0.583527 0.182404\n0.808777 0.586639 0.181763\n0.834167 0.589630 0.181152\n0.857178 0.592590 0.180542\n0.878113 0.595642 0.179962\n0.897125 0.598663 0.179382\n0.914429 0.601593 0.178772\n0.930145 0.604584 0.178192\n0.944397 0.607452 0.177673\n0.957306 0.610413 0.177155\n0.968964 0.613373 0.176636\n0.979340 0.616180 0.176331\n0.076263 0.570557 0.195007\n0.100250 0.573334 0.194244\n0.125458 0.576233 0.193573\n0.151947 0.579102 0.192841\n0.179932 0.582001 0.192108\n0.209534 0.584991 0.191376\n0.240936 0.587830 0.190674\n0.274384 0.590759 0.189941\n0.310089 0.593750 0.189240\n0.347809 0.596619 0.188538\n0.387512 0.599579 0.187836\n0.428986 0.602570 0.187103\n0.471741 0.605438 0.186432\n0.515747 0.608429 0.185730\n0.560089 0.611298 0.185059\n0.603302 0.614258 0.184418\n0.644714 0.617249 0.183716\n0.683777 0.620117 0.183075\n0.720245 0.623047 0.182404\n0.753876 0.625977 0.181793\n0.784424 0.628815 0.181183\n0.812103 0.631744 0.180573\n0.837189 0.634674 0.179962\n0.859924 0.637482 0.179382\n0.880615 0.640350 0.178772\n0.899353 0.643097 0.178223\n0.916473 0.645966 0.177673\n0.931976 0.648773 0.177185\n0.946075 0.651489 0.176666\n0.958801 0.654266 0.176331\n0.970276 0.657043 0.176331\n0.980499 0.659668 0.176331\n0.079041 0.615967 0.193604\n0.103210 0.618805 0.192871\n0.128632 0.621613 0.192139\n0.155273 0.624359 0.191406\n0.183441 0.627167 0.190674\n0.213348 0.630005 0.189972\n0.244965 0.632751 0.189270\n0.278717 0.635620 0.188568\n0.314697 0.638428 0.187866\n0.352722 0.641174 0.187164\n0.392609 0.644012 0.186462\n0.434265 0.646790 0.185760\n0.477203 0.649597 0.185089\n0.521362 0.652435 0.184418\n0.565674 0.655151 0.183777\n0.608643 0.657959 0.183105\n0.649811 0.660797 0.182465\n0.688507 0.663452 0.181824\n0.724609 0.666229 0.181183\n0.757904 0.669006 0.180573\n0.788086 0.671692 0.179993\n0.815430 0.674438 0.179413\n0.840210 0.677124 0.178833\n0.862640 0.679749 0.178253\n0.883057 0.682465 0.177704\n0.901581 0.685028 0.177216\n0.918457 0.687683 0.176697\n0.933807 0.690277 0.176331\n0.947693 0.692810 0.176331\n0.960297 0.695404 0.176331\n0.971588 0.697937 0.176331\n0.981689 0.700348 0.176331\n0.081909 0.659332 0.192200\n0.106262 0.662018 0.191437\n0.131805 0.664642 0.190704\n0.158691 0.667297 0.190002\n0.187042 0.670013 0.189301\n0.217194 0.672668 0.188568\n0.249084 0.675293 0.187897\n0.283142 0.677979 0.187164\n0.319397 0.680603 0.186462\n0.357666 0.683289 0.185791\n0.397858 0.685852 0.185120\n0.439575 0.688507 0.184448\n0.482758 0.691132 0.183807\n0.527008 0.693787 0.183136\n0.571228 0.696350 0.182495\n0.613983 0.698944 0.181824\n0.654877 0.701569 0.181213\n0.693237 0.704102 0.180603\n0.729004 0.706635 0.179993\n0.761902 0.709229 0.179413\n0.791656 0.711639 0.178864\n0.818665 0.714203 0.178253\n0.843109 0.716583 0.177734\n0.865265 0.719116 0.177216\n0.885468 0.721558 0.176697\n0.903748 0.723938 0.176331\n0.920441 0.726318 0.176331\n0.935608 0.728729 0.176331\n0.949280 0.731018 0.176331\n0.961731 0.733337 0.176331\n0.972870 0.735657 0.176331\n0.982819 0.737885 0.176331\n0.084839 0.700012 0.190735\n0.109375 0.702515 0.190002\n0.135071 0.705017 0.189301\n0.162140 0.707428 0.188599\n0.190735 0.709961 0.187897\n0.221008 0.712524 0.187195\n0.253235 0.714935 0.186493\n0.287567 0.717377 0.185791\n0.324066 0.719818 0.185150\n0.362640 0.722290 0.184479\n0.403076 0.724792 0.183807\n0.445007 0.727173 0.183136\n0.488342 0.729584 0.182526\n0.532654 0.732025 0.181854\n0.576691 0.734406 0.181244\n0.619232 0.736786 0.180634\n0.659821 0.739136 0.180023\n0.697906 0.741455 0.179443\n0.733307 0.743805 0.178864\n0.765808 0.746155 0.178314\n0.795197 0.748383 0.177734\n0.821838 0.750641 0.177216\n0.845978 0.752869 0.176727\n0.867859 0.755096 0.176331\n0.887817 0.757324 0.176331\n0.905884 0.759460 0.176331\n0.922363 0.761597 0.176331\n0.937317 0.763794 0.176331\n0.950836 0.765869 0.176331\n0.963104 0.767914 0.176331\n0.974091 0.769989 0.176331\n0.983887 0.771973 0.176331\n0.087860 0.737579 0.189362\n0.112518 0.739929 0.188629\n0.138397 0.742249 0.187927\n0.165649 0.744537 0.187225\n0.194489 0.746796 0.186523\n0.224945 0.749115 0.185852\n0.257446 0.751343 0.185150\n0.292053 0.753632 0.184479\n0.328796 0.755859 0.183838\n0.367615 0.758118 0.183167\n0.408264 0.760315 0.182526\n0.450409 0.762512 0.181885\n0.493927 0.764740 0.181244\n0.538300 0.766937 0.180634\n0.582153 0.769043 0.180054\n0.624512 0.771210 0.179443\n0.664764 0.773315 0.178894\n0.702484 0.775452 0.178345\n0.737518 0.777496 0.177734\n0.769562 0.779541 0.177246\n0.798615 0.781647 0.176727\n0.824951 0.783661 0.176331\n0.848755 0.785614 0.176331\n0.870392 0.787628 0.176331\n0.890106 0.789612 0.176331\n0.907959 0.791504 0.176331\n0.924225 0.793457 0.176331\n0.938995 0.795349 0.176331\n0.952393 0.797180 0.176331\n0.964447 0.799011 0.176331\n0.975281 0.800781 0.176331\n0.984924 0.802612 0.176331\n0.090851 0.771851 0.187958\n0.115662 0.773987 0.187256\n0.141724 0.776093 0.186523\n0.169159 0.778168 0.185883\n0.198181 0.780243 0.185181\n0.229004 0.782318 0.184509\n0.261688 0.784302 0.183868\n0.296631 0.786377 0.183167\n0.333618 0.788391 0.182556\n0.372681 0.790405 0.181885\n0.413513 0.792419 0.181274\n0.455902 0.794373 0.180664\n0.499481 0.796326 0.180054\n0.543915 0.798309 0.179474\n0.587585 0.800201 0.178925\n0.629639 0.802155 0.178345\n0.669586 0.804077 0.177795\n0.707062 0.805939 0.177277\n0.741669 0.807800 0.176727\n0.773315 0.809631 0.176331\n0.802032 0.811462 0.176331\n0.828003 0.813263 0.176331\n0.851501 0.815002 0.176331\n0.872894 0.816833 0.176331\n0.892334 0.818573 0.176331\n0.910004 0.820282 0.176331\n0.926056 0.821991 0.176331\n0.940674 0.823669 0.176331\n0.953827 0.825287 0.176331\n0.965790 0.826965 0.176331\n0.976471 0.828491 0.176331\n0.985962 0.830139 0.176331\n0.093903 0.802734 0.186554\n0.118866 0.804626 0.185883\n0.145142 0.806519 0.185181\n0.172760 0.808380 0.184540\n0.201996 0.810272 0.183868\n0.232971 0.812073 0.183228\n0.265991 0.813965 0.182556\n0.301147 0.815826 0.181946\n0.338501 0.817566 0.181305\n0.377808 0.819427 0.180695\n0.418793 0.821259 0.180084\n0.461304 0.822968 0.179504\n0.505005 0.824768 0.178925\n0.549469 0.826538 0.178345\n0.592926 0.828247 0.177826\n0.634735 0.829956 0.177277\n0.674347 0.831635 0.176758\n0.711426 0.833344 0.176331\n0.745728 0.835022 0.176331\n0.777008 0.836670 0.176331\n0.805328 0.838287 0.176331\n0.830994 0.839905 0.176331\n0.854187 0.841492 0.176331\n0.875305 0.843048 0.176331\n0.894531 0.844604 0.176331\n0.911926 0.846130 0.176331\n0.927856 0.847656 0.176331\n0.942230 0.849121 0.176331\n0.955292 0.850586 0.176331\n0.967041 0.852051 0.176331\n0.977600 0.853424 0.176331\n0.986938 0.854858 0.176331\n0.096985 0.830475 0.185211\n0.122131 0.832214 0.184540\n0.148560 0.833923 0.183899\n0.176331 0.835602 0.183228\n0.205841 0.837280 0.182587\n0.237030 0.838959 0.181976\n0.270325 0.840607 0.181305\n0.305817 0.842285 0.180695\n0.343323 0.843903 0.180115\n0.382843 0.845520 0.179504\n0.424103 0.847168 0.178925\n0.466675 0.848724 0.178375\n0.510590 0.850342 0.177826\n0.554993 0.851898 0.177277\n0.598236 0.853424 0.176788\n0.639771 0.854980 0.176331\n0.679077 0.856506 0.176331\n0.715820 0.858002 0.176331\n0.749695 0.859528 0.176331\n0.780548 0.860962 0.176331\n0.808533 0.862427 0.176331\n0.833862 0.863861 0.176331\n0.856812 0.865265 0.176331\n0.877686 0.866669 0.176331\n0.896637 0.868042 0.176331\n0.913849 0.869385 0.176331\n0.929596 0.870758 0.176331\n0.943787 0.872070 0.176331\n0.956665 0.873352 0.176331\n0.968292 0.874664 0.176331\n0.978668 0.875885 0.176331\n0.987885 0.877167 0.176331\n0.100098 0.855469 0.183929\n0.125427 0.857025 0.183258\n0.151947 0.858582 0.182617\n0.179993 0.860077 0.181976\n0.209656 0.861633 0.181335\n0.241150 0.863129 0.180725\n0.274689 0.864624 0.180115\n0.310425 0.866119 0.179535\n0.348175 0.867584 0.178955\n0.387939 0.869019 0.178406\n0.429352 0.870514 0.177856\n0.472076 0.871918 0.177307\n0.516022 0.873352 0.176788\n0.560364 0.874725 0.176331\n0.603516 0.876160 0.176331\n0.644714 0.877533 0.176331\n0.683685 0.878906 0.176331\n0.720032 0.880219 0.176331\n0.753601 0.881592 0.176331\n0.784058 0.882843 0.176331\n0.811676 0.884186 0.176331\n0.836700 0.885468 0.176331\n0.859344 0.886719 0.176331\n0.879974 0.887939 0.176331\n0.898651 0.889191 0.176331\n0.915710 0.890411 0.176331\n0.931213 0.891571 0.176331\n0.945251 0.892761 0.176331\n0.958008 0.893921 0.176331\n0.969452 0.895050 0.176331\n0.979706 0.896149 0.176331\n0.988770 0.897247 0.176331\n0.103241 0.878052 0.182617\n0.128693 0.879486 0.182007\n0.155396 0.880798 0.181366\n0.183655 0.882233 0.180756\n0.213562 0.883606 0.180145\n0.245239 0.884949 0.179565\n0.279083 0.886292 0.178986\n0.315063 0.887665 0.178406\n0.353088 0.888947 0.177856\n0.393005 0.890259 0.177338\n0.434601 0.891571 0.176819\n0.477478 0.892853 0.176331\n0.521515 0.894135 0.176331\n0.565704 0.895386 0.176331\n0.608612 0.896606 0.176331\n0.649567 0.897858 0.176331\n0.688202 0.899078 0.176331\n0.724182 0.900269 0.176331\n0.757355 0.901489 0.176331\n0.787415 0.902649 0.176331\n0.814697 0.903778 0.176331\n0.839417 0.904968 0.176331\n0.861786 0.906036 0.176331\n0.882172 0.907166 0.176331\n0.900665 0.908234 0.176331\n0.917511 0.909363 0.176331\n0.932831 0.910400 0.176331\n0.946716 0.911407 0.176331\n0.959259 0.912445 0.176331\n0.970612 0.913422 0.176331\n0.980713 0.914429 0.176331\n0.989624 0.915375 0.176331\n0.106384 0.898407 0.181366\n0.131989 0.899658 0.180756\n0.158905 0.900879 0.180176\n0.187317 0.902191 0.179565\n0.217468 0.903412 0.178986\n0.249390 0.904633 0.178436\n0.283447 0.905823 0.177887\n0.319672 0.907043 0.177338\n0.357880 0.908234 0.176819\n0.398071 0.909454 0.176331\n0.439728 0.910553 0.176331\n0.482819 0.911743 0.176331\n0.526978 0.912842 0.176331\n0.571014 0.913971 0.176331\n0.613617 0.915131 0.176331\n0.654327 0.916260 0.176331\n0.692596 0.917297 0.176331\n0.728271 0.918365 0.176331\n0.761047 0.919434 0.176331\n0.790741 0.920441 0.176331\n0.817688 0.921509 0.176331\n0.842072 0.922546 0.176331\n0.864197 0.923492 0.176331\n0.884308 0.924469 0.176331\n0.902588 0.925446 0.176331\n0.919250 0.926422 0.176331\n0.934357 0.927338 0.176331\n0.948120 0.928223 0.176331\n0.960510 0.929138 0.176331\n0.971710 0.930023 0.176331\n0.981659 0.930908 0.176331\n0.990448 0.931732 0.176331\n0.109558 0.916809 0.180176\n0.135284 0.917938 0.179596\n0.162384 0.919067 0.179016\n0.191010 0.920166 0.178467\n0.221313 0.921295 0.177887\n0.253540 0.922394 0.177368\n0.287872 0.923492 0.176849\n0.324310 0.924561 0.176331\n0.362793 0.925629 0.176331\n0.403107 0.926697 0.176331\n0.444977 0.927734 0.176331\n0.488129 0.928741 0.176331\n0.532318 0.929810 0.176331\n0.576172 0.930756 0.176331\n0.618591 0.931763 0.176331\n0.658966 0.932800 0.176331\n0.696930 0.933716 0.176331\n0.732208 0.934692 0.176331\n0.764587 0.935638 0.176331\n0.793945 0.936554 0.176331\n0.820526 0.937469 0.176331\n0.844604 0.938354 0.176331\n0.866486 0.939240 0.176331\n0.886353 0.940125 0.176331\n0.904449 0.940948 0.176331\n0.920898 0.941803 0.176331\n0.935852 0.942627 0.176331\n0.949432 0.943420 0.176331\n0.961731 0.944214 0.176331\n0.972748 0.944977 0.176331\n0.982544 0.945740 0.176331\n0.991241 0.946503 0.176331\n0.112701 0.933380 0.179047\n0.138641 0.934418 0.178467\n0.165894 0.935425 0.177917\n0.194702 0.936432 0.177368\n0.225220 0.937469 0.176849\n0.257629 0.938416 0.176361\n0.292206 0.939392 0.176331\n0.328888 0.940338 0.176331\n0.367584 0.941315 0.176331\n0.408081 0.942261 0.176331\n0.450104 0.943176 0.176331\n0.493317 0.944092 0.176331\n0.537567 0.945007 0.176331\n0.581268 0.945892 0.176331\n0.623352 0.946777 0.176331\n0.663452 0.947662 0.176331\n0.701080 0.948486 0.176331\n0.736053 0.949341 0.176331\n0.768066 0.950195 0.176331\n0.797028 0.951019 0.176331\n0.823303 0.951813 0.176331\n0.847076 0.952606 0.176331\n0.868744 0.953369 0.176331\n0.888367 0.954163 0.176331\n0.906219 0.954895 0.176331\n0.922546 0.955627 0.176331\n0.937286 0.956360 0.176331\n0.950714 0.957062 0.176331\n0.962860 0.957733 0.176331\n0.973724 0.958405 0.176331\n0.983398 0.959045 0.176331\n0.991974 0.959717 0.176331\n0.115906 0.948334 0.177917\n0.141968 0.949249 0.177399\n0.169373 0.950165 0.176880\n0.198364 0.951080 0.176361\n0.229126 0.951996 0.176331\n0.261749 0.952820 0.176331\n0.296570 0.953705 0.176331\n0.333466 0.954529 0.176331\n0.372406 0.955414 0.176331\n0.413086 0.956238 0.176331\n0.455139 0.957062 0.176331\n0.498566 0.957886 0.176331\n0.542786 0.958679 0.176331\n0.586243 0.959442 0.176331\n0.628082 0.960236 0.176331\n0.667847 0.961029 0.176331\n0.705139 0.961792 0.176331\n0.739777 0.962494 0.176331\n0.771332 0.963226 0.176331\n0.800018 0.963959 0.176331\n0.825928 0.964661 0.176331\n0.849487 0.965363 0.176331\n0.870850 0.966034 0.176331\n0.890289 0.966705 0.176331\n0.907959 0.967316 0.176331\n0.924042 0.967987 0.176331\n0.938690 0.968597 0.176331\n0.951904 0.969208 0.176331\n0.963898 0.969818 0.176331\n0.974640 0.970398 0.176331\n0.984253 0.970947 0.176331\n0.992676 0.971527 0.176331\n0.119080 0.961731 0.176880\n0.145264 0.962555 0.176361\n0.172852 0.963379 0.176331\n0.202026 0.964172 0.176331\n0.232910 0.964935 0.176331\n0.265839 0.965729 0.176331\n0.300873 0.966492 0.176331\n0.338013 0.967255 0.176331\n0.377106 0.967987 0.176331\n0.417938 0.968750 0.176331\n0.460175 0.969452 0.176331\n0.503632 0.970154 0.176331\n0.547791 0.970856 0.176331\n0.591064 0.971558 0.176331\n0.632690 0.972229 0.176331\n0.672119 0.972931 0.176331\n0.709106 0.973541 0.176331\n0.743347 0.974213 0.176331\n0.774567 0.974854 0.176331\n0.802856 0.975464 0.176331\n0.828491 0.976074 0.176331\n0.851746 0.976654 0.176331\n0.872864 0.977264 0.176331\n0.892120 0.977844 0.176331\n0.909576 0.978394 0.176331\n0.925507 0.978912 0.176331\n0.939972 0.979492 0.176331\n0.953094 0.979980 0.176331\n0.964905 0.980499 0.176331\n0.975555 0.980988 0.176331\n0.984985 0.981476 0.176331\n0.993317 0.981964 0.176331\n0.040405 0.001648 0.243073\n0.062134 0.002319 0.242798\n0.084778 0.003021 0.242493\n0.108521 0.003784 0.242126\n0.133484 0.004547 0.241791\n0.159668 0.005371 0.241364\n0.187347 0.006195 0.240967\n0.216644 0.007050 0.240540\n0.247742 0.007904 0.240051\n0.280884 0.008789 0.239563\n0.316132 0.009766 0.239075\n0.353485 0.010742 0.238525\n0.392548 0.011719 0.238007\n0.433380 0.012756 0.237427\n0.475586 0.013824 0.236847\n0.518799 0.014832 0.236267\n0.562500 0.015930 0.235657\n0.604950 0.017090 0.235016\n0.645599 0.018188 0.234344\n0.684143 0.019379 0.233734\n0.720062 0.020508 0.233093\n0.753326 0.021729 0.232391\n0.783661 0.022980 0.231689\n0.811127 0.024170 0.231018\n0.836060 0.025452 0.230255\n0.858734 0.026764 0.229584\n0.879333 0.028046 0.228851\n0.898132 0.029358 0.228088\n0.915253 0.030731 0.227356\n0.930756 0.032043 0.226624\n0.944916 0.033447 0.225891\n0.957703 0.034821 0.225128\n0.041748 0.022614 0.242493\n0.063568 0.023346 0.242157\n0.086365 0.024139 0.241791\n0.110291 0.025024 0.241425\n0.135315 0.025848 0.240967\n0.161713 0.026764 0.240540\n0.189575 0.027649 0.240082\n0.219055 0.028595 0.239563\n0.250397 0.029572 0.239075\n0.283783 0.030579 0.238556\n0.319336 0.031616 0.238007\n0.356873 0.032654 0.237427\n0.396240 0.033722 0.236877\n0.437256 0.034821 0.236267\n0.479614 0.035980 0.235657\n0.523041 0.037140 0.235046\n0.566742 0.038330 0.234375\n0.609100 0.039520 0.233734\n0.649597 0.040710 0.233093\n0.687927 0.041992 0.232391\n0.723694 0.043243 0.231720\n0.756714 0.044525 0.231018\n0.786774 0.045868 0.230286\n0.813995 0.047150 0.229645\n0.838684 0.048553 0.228851\n0.861145 0.049927 0.228088\n0.881561 0.051300 0.227386\n0.900146 0.052704 0.226654\n0.917084 0.054138 0.225891\n0.932526 0.055603 0.225128\n0.946503 0.057037 0.224396\n0.959167 0.058502 0.223633\n0.043182 0.044495 0.241821\n0.065155 0.045349 0.241425\n0.088104 0.046295 0.240997\n0.112152 0.047211 0.240540\n0.137360 0.048126 0.240082\n0.163910 0.049133 0.239594\n0.191956 0.050110 0.239105\n0.221649 0.051178 0.238556\n0.253265 0.052246 0.238007\n0.286835 0.053345 0.237457\n0.322632 0.054504 0.236877\n0.360474 0.055634 0.236267\n0.400085 0.056793 0.235687\n0.441254 0.058014 0.235046\n0.483856 0.059235 0.234375\n0.527435 0.060455 0.233795\n0.571136 0.061737 0.233124\n0.613373 0.063019 0.232452\n0.653778 0.064392 0.231750\n0.691895 0.065704 0.231049\n0.727386 0.067047 0.230286\n0.760101 0.068451 0.229645\n0.789886 0.069824 0.228882\n0.816864 0.071289 0.228149\n0.841339 0.072723 0.227386\n0.863586 0.074219 0.226654\n0.883789 0.075653 0.225922\n0.902191 0.077209 0.225159\n0.918945 0.078674 0.224426\n0.934235 0.080261 0.223663\n0.948090 0.081787 0.222870\n0.960571 0.083374 0.222137\n0.044769 0.067535 0.240997\n0.066864 0.068451 0.240570\n0.089935 0.069458 0.240082\n0.114136 0.070465 0.239594\n0.139465 0.071533 0.239105\n0.166199 0.072632 0.238586\n0.194458 0.073730 0.238037\n0.224396 0.074890 0.237488\n0.256226 0.076050 0.236877\n0.290070 0.077209 0.236328\n0.326141 0.078461 0.235687\n0.364197 0.079742 0.235077\n0.404053 0.080963 0.234436\n0.445465 0.082275 0.233795\n0.488190 0.083618 0.233154\n0.531982 0.084961 0.232483\n0.575653 0.086334 0.231750\n0.617737 0.087708 0.231079\n0.657959 0.089111 0.230316\n0.695923 0.090607 0.229675\n0.731110 0.092072 0.228912\n0.763641 0.093536 0.228180\n0.793060 0.095093 0.227417\n0.819763 0.096588 0.226685\n0.843994 0.098145 0.225952\n0.866028 0.099762 0.225189\n0.886017 0.101288 0.224426\n0.904266 0.102905 0.223694\n0.920868 0.104553 0.222900\n0.935944 0.106171 0.222168\n0.949646 0.107880 0.221405\n0.962036 0.109497 0.220642\n0.046478 0.091705 0.240112\n0.068665 0.092712 0.239685\n0.091888 0.093842 0.239166\n0.116211 0.094940 0.238647\n0.141724 0.096130 0.238068\n0.168640 0.097321 0.237488\n0.197113 0.098480 0.236908\n0.227264 0.099792 0.236359\n0.259338 0.101044 0.235718\n0.293457 0.102356 0.235107\n0.329773 0.103699 0.234467\n0.368134 0.105072 0.233795\n0.408142 0.106415 0.233154\n0.449860 0.107849 0.232483\n0.492798 0.109253 0.231781\n0.536652 0.110718 0.231110\n0.580261 0.112213 0.230316\n0.622253 0.113739 0.229706\n0.662323 0.115265 0.228912\n0.700012 0.116821 0.228180\n0.734924 0.118378 0.227448\n0.767090 0.119965 0.226746\n0.796265 0.121643 0.225983\n0.822693 0.123260 0.225220\n0.846710 0.124939 0.224487\n0.868439 0.126617 0.223724\n0.888306 0.128296 0.222931\n0.906342 0.130066 0.222168\n0.922760 0.131744 0.221436\n0.937714 0.133545 0.220673\n0.951233 0.135284 0.219879\n0.963470 0.137085 0.219116\n0.048279 0.117126 0.239166\n0.070557 0.118286 0.238647\n0.093964 0.119507 0.238068\n0.118408 0.120728 0.237518\n0.144135 0.122040 0.236938\n0.171234 0.123352 0.236359\n0.199829 0.124664 0.235748\n0.230225 0.126007 0.235107\n0.262604 0.127441 0.234467\n0.296997 0.128815 0.233826\n0.333557 0.130280 0.233185\n0.372162 0.131775 0.232513\n0.412476 0.133270 0.231812\n0.454346 0.134796 0.231110\n0.497406 0.136353 0.230347\n0.541443 0.137909 0.229706\n0.584991 0.139557 0.228943\n0.626801 0.141144 0.228210\n0.666687 0.142822 0.227478\n0.704132 0.144501 0.226746\n0.738800 0.146149 0.226013\n0.770660 0.147949 0.225220\n0.799530 0.149658 0.224487\n0.825653 0.151398 0.223724\n0.849396 0.153229 0.222931\n0.870972 0.154999 0.222229\n0.890564 0.156830 0.221436\n0.908417 0.158722 0.220673\n0.924652 0.160522 0.219910\n0.939423 0.162415 0.219147\n0.952789 0.164368 0.218384\n0.964874 0.166199 0.217651\n0.050110 0.144012 0.238129\n0.072632 0.145294 0.237518\n0.096130 0.146667 0.236938\n0.120728 0.148010 0.236389\n0.146637 0.149384 0.235748\n0.173950 0.150879 0.235107\n0.202759 0.152283 0.234497\n0.233398 0.153748 0.233887\n0.265991 0.155304 0.233185\n0.300690 0.156860 0.232544\n0.337555 0.158447 0.231812\n0.376343 0.160034 0.231140\n0.416931 0.161682 0.230438\n0.459015 0.163330 0.229736\n0.502289 0.165009 0.229004\n0.546387 0.166718 0.228241\n0.589783 0.168488 0.227478\n0.631500 0.170227 0.226776\n0.671082 0.172028 0.226013\n0.708313 0.173859 0.225250\n0.742676 0.175659 0.224518\n0.774200 0.177521 0.223755\n0.802734 0.179382 0.222992\n0.828613 0.181274 0.222260\n0.852112 0.183228 0.221466\n0.873444 0.185150 0.220703\n0.892853 0.187103 0.219910\n0.910522 0.189148 0.219177\n0.926544 0.191101 0.218414\n0.941162 0.193115 0.217651\n0.954407 0.195190 0.216949\n0.966309 0.197205 0.216187\n0.052124 0.172485 0.236969\n0.074768 0.173950 0.236389\n0.098419 0.175415 0.235748\n0.123169 0.176880 0.235138\n0.149231 0.178436 0.234497\n0.176727 0.180023 0.233887\n0.205780 0.181610 0.233215\n0.236633 0.183228 0.232544\n0.269501 0.184937 0.231873\n0.304474 0.186584 0.231140\n0.341614 0.188324 0.230469\n0.380676 0.190063 0.229767\n0.421448 0.191833 0.229004\n0.463745 0.193665 0.228271\n0.507172 0.195465 0.227509\n0.551392 0.197357 0.226807\n0.594696 0.199249 0.226044\n0.636169 0.201141 0.225311\n0.675598 0.203064 0.224548\n0.712524 0.205048 0.223755\n0.746613 0.207001 0.222992\n0.777802 0.209015 0.222260\n0.806000 0.210999 0.221497\n0.831604 0.213135 0.220734\n0.854828 0.215179 0.219971\n0.875885 0.217255 0.219208\n0.895111 0.219330 0.218445\n0.912567 0.221527 0.217682\n0.928436 0.223663 0.216980\n0.942902 0.225830 0.216217\n0.955963 0.228027 0.215424\n0.967712 0.230194 0.214752\n0.054230 0.202789 0.235809\n0.076996 0.204376 0.235168\n0.100769 0.205994 0.234528\n0.125732 0.207672 0.233917\n0.151978 0.209351 0.233215\n0.179657 0.211060 0.232574\n0.208923 0.212799 0.231903\n0.240051 0.214600 0.231171\n0.273163 0.216400 0.230469\n0.308441 0.218231 0.229767\n0.345917 0.220154 0.229034\n0.385101 0.222046 0.228302\n0.426178 0.223999 0.227570\n0.468719 0.225983 0.226807\n0.512268 0.227936 0.226074\n0.556488 0.229980 0.225311\n0.599670 0.232025 0.224579\n0.640930 0.234100 0.223785\n0.680115 0.236206 0.223053\n0.716766 0.238342 0.222290\n0.750519 0.240448 0.221497\n0.781372 0.242645 0.220764\n0.809235 0.244781 0.220001\n0.834595 0.247040 0.219208\n0.857574 0.249298 0.218445\n0.878387 0.251526 0.217712\n0.897369 0.253845 0.216980\n0.914642 0.256165 0.216248\n0.930298 0.258423 0.215515\n0.944580 0.260803 0.214752\n0.957489 0.263092 0.213989\n0.969116 0.265533 0.213318\n0.056427 0.235107 0.234558\n0.079285 0.236877 0.233948\n0.103241 0.238708 0.233246\n0.128357 0.240479 0.232574\n0.154816 0.242371 0.231903\n0.182678 0.244232 0.231201\n0.212189 0.246155 0.230499\n0.243561 0.248108 0.229797\n0.276917 0.250092 0.229065\n0.312500 0.252136 0.228302\n0.350189 0.254181 0.227570\n0.389709 0.256256 0.226868\n0.430969 0.258392 0.226074\n0.473694 0.260529 0.225342\n0.517456 0.262665 0.224609\n0.561676 0.264893 0.223816\n0.604645 0.267120 0.223053\n0.645813 0.269348 0.222321\n0.684692 0.271667 0.221527\n0.720947 0.273895 0.220795\n0.754456 0.276276 0.220032\n0.784943 0.278625 0.219238\n0.812531 0.281006 0.218475\n0.837524 0.283417 0.217743\n0.860229 0.285858 0.217010\n0.880859 0.288269 0.216278\n0.899628 0.290771 0.215515\n0.916718 0.293274 0.214783\n0.932220 0.295715 0.214020\n0.946289 0.298248 0.213348\n0.959015 0.300720 0.212616\n0.970520 0.303314 0.211914\n0.058685 0.269745 0.233307\n0.081726 0.271698 0.232605\n0.105804 0.273682 0.231934\n0.131073 0.275665 0.231201\n0.157715 0.277771 0.230499\n0.185760 0.279785 0.229828\n0.215546 0.281891 0.229065\n0.247131 0.284088 0.228363\n0.280792 0.286224 0.227600\n0.316650 0.288452 0.226868\n0.354645 0.290680 0.226105\n0.394440 0.292908 0.225372\n0.435944 0.295258 0.224609\n0.478760 0.297577 0.223846\n0.522705 0.299927 0.223083\n0.566864 0.302399 0.222321\n0.609741 0.304749 0.221558\n0.650635 0.307190 0.220795\n0.689240 0.309662 0.220032\n0.725220 0.312164 0.219269\n0.758392 0.314667 0.218506\n0.788544 0.317230 0.217743\n0.815765 0.319733 0.217041\n0.840485 0.322327 0.216278\n0.862946 0.325012 0.215546\n0.883301 0.327515 0.214813\n0.901855 0.330231 0.214020\n0.918732 0.332886 0.213348\n0.934082 0.335510 0.212616\n0.947998 0.338226 0.211945\n0.960541 0.340851 0.211243\n0.971863 0.343628 0.210571\n0.061005 0.306915 0.231964\n0.084229 0.309052 0.231232\n0.108490 0.311218 0.230530\n0.133911 0.313385 0.229828\n0.160736 0.315674 0.229126\n0.189026 0.317841 0.228394\n0.219025 0.320221 0.227631\n0.250916 0.322540 0.226898\n0.284851 0.324860 0.226166\n0.320984 0.327271 0.225372\n0.359253 0.329742 0.224640\n0.399261 0.332153 0.223907\n0.440979 0.334656 0.223114\n0.484039 0.337189 0.222351\n0.528046 0.339752 0.221588\n0.572174 0.342316 0.220825\n0.614777 0.344849 0.220062\n0.655457 0.347473 0.219269\n0.693878 0.350128 0.218506\n0.729492 0.352783 0.217773\n0.762299 0.355499 0.217041\n0.792084 0.358215 0.216309\n0.819031 0.360931 0.215576\n0.843445 0.363647 0.214813\n0.865631 0.366425 0.214050\n0.885773 0.369202 0.213409\n0.904053 0.372040 0.212646\n0.920746 0.374756 0.211975\n0.935913 0.377625 0.211243\n0.949646 0.380432 0.210571\n0.962067 0.383240 0.209930\n0.973206 0.386139 0.209229\n0.063477 0.346466 0.230560\n0.086823 0.348785 0.229889\n0.111176 0.351135 0.229156\n0.136810 0.353516 0.228394\n0.163849 0.355927 0.227631\n0.192352 0.358368 0.226929\n0.222565 0.360901 0.226166\n0.254700 0.363403 0.225403\n0.288940 0.365875 0.224670\n0.325409 0.368500 0.223907\n0.363861 0.371124 0.223114\n0.404205 0.373749 0.222382\n0.446106 0.376373 0.221588\n0.489258 0.379059 0.220856\n0.533508 0.381775 0.220093\n0.577515 0.384521 0.219299\n0.619904 0.387238 0.218567\n0.660400 0.390045 0.217804\n0.698425 0.392883 0.217072\n0.733795 0.395660 0.216339\n0.766174 0.398468 0.215576\n0.795593 0.401398 0.214844\n0.822235 0.404205 0.214142\n0.846375 0.407135 0.213409\n0.868317 0.410034 0.212646\n0.888184 0.412933 0.211975\n0.906281 0.415894 0.211273\n0.922760 0.418762 0.210602\n0.937744 0.421753 0.209930\n0.951294 0.424744 0.209259\n0.963531 0.427612 0.208618\n0.974548 0.430634 0.207947\n0.066010 0.388306 0.229156\n0.089478 0.390808 0.228455\n0.114014 0.393280 0.227661\n0.139832 0.395874 0.226929\n0.166992 0.398438 0.226196\n0.195740 0.401062 0.225433\n0.226227 0.403717 0.224670\n0.258667 0.406403 0.223938\n0.293152 0.409027 0.223175\n0.329926 0.411804 0.222412\n0.368683 0.414612 0.221649\n0.409149 0.417328 0.220856\n0.451294 0.420197 0.220093\n0.494629 0.422943 0.219330\n0.538971 0.425873 0.218597\n0.582855 0.428741 0.217804\n0.625092 0.431641 0.217102\n0.665283 0.434509 0.216339\n0.703003 0.437561 0.215607\n0.737976 0.440430 0.214874\n0.770050 0.443390 0.214172\n0.799103 0.446442 0.213440\n0.825378 0.449371 0.212677\n0.849243 0.452423 0.212006\n0.870911 0.455383 0.211304\n0.890564 0.458466 0.210632\n0.908447 0.461487 0.209961\n0.924744 0.464508 0.209290\n0.939514 0.467560 0.208618\n0.952942 0.470642 0.207977\n0.964966 0.473633 0.207367\n0.975800 0.476776 0.206757\n0.068573 0.432159 0.227692\n0.092194 0.434814 0.226959\n0.116913 0.437439 0.226227\n0.142914 0.440155 0.225464\n0.170319 0.442902 0.224701\n0.199249 0.445618 0.223969\n0.229980 0.448456 0.223175\n0.262665 0.451294 0.222412\n0.297485 0.454071 0.221680\n0.334534 0.456970 0.220886\n0.373474 0.459839 0.220154\n0.414276 0.462799 0.219391\n0.456604 0.465759 0.218628\n0.500061 0.468719 0.217834\n0.544495 0.471680 0.217133\n0.588226 0.474701 0.216370\n0.630249 0.477692 0.215637\n0.670197 0.480682 0.214874\n0.707581 0.483826 0.214172\n0.742218 0.486786 0.213470\n0.773926 0.489899 0.212738\n0.802612 0.493042 0.212006\n0.828522 0.496063 0.211304\n0.852112 0.499115 0.210632\n0.873474 0.502228 0.209991\n0.892914 0.505310 0.209290\n0.910614 0.508484 0.208649\n0.926666 0.511566 0.207977\n0.941284 0.514709 0.207367\n0.954498 0.517822 0.206787\n0.966431 0.520935 0.206177\n0.977081 0.524048 0.205566\n0.071259 0.477631 0.226227\n0.095001 0.480469 0.225464\n0.119843 0.483215 0.224731\n0.146057 0.486053 0.223969\n0.173645 0.488953 0.223206\n0.202820 0.491760 0.222443\n0.233795 0.494751 0.221680\n0.266754 0.497681 0.220886\n0.301880 0.500641 0.220154\n0.339172 0.503632 0.219391\n0.378418 0.506592 0.218689\n0.419403 0.509583 0.217865\n0.461945 0.512726 0.217133\n0.505585 0.515686 0.216400\n0.550018 0.518799 0.215637\n0.593597 0.521942 0.214905\n0.635376 0.524963 0.214203\n0.675049 0.528137 0.213470\n0.712128 0.531250 0.212738\n0.746368 0.534363 0.212036\n0.777649 0.537537 0.211365\n0.806000 0.540588 0.210663\n0.831635 0.543762 0.209991\n0.854950 0.546906 0.209320\n0.876038 0.549957 0.208679\n0.895233 0.553101 0.208008\n0.912720 0.556244 0.207367\n0.928589 0.559265 0.206818\n0.943024 0.562347 0.206177\n0.956085 0.565491 0.205627\n0.967804 0.568451 0.205017\n0.978363 0.571472 0.204468\n0.073975 0.524475 0.224731\n0.097900 0.527374 0.223999\n0.122894 0.530304 0.223236\n0.149261 0.533264 0.222504\n0.177094 0.536224 0.221710\n0.206512 0.539154 0.220917\n0.237701 0.542175 0.220184\n0.270966 0.545227 0.219452\n0.306366 0.548157 0.218689\n0.343903 0.551239 0.217865\n0.383392 0.554199 0.217194\n0.424622 0.557281 0.216431\n0.467377 0.560364 0.215668\n0.511139 0.563354 0.214935\n0.555573 0.566406 0.214233\n0.598969 0.569519 0.213501\n0.640503 0.572449 0.212769\n0.679871 0.575531 0.212067\n0.716644 0.578644 0.211365\n0.750488 0.581604 0.210693\n0.781433 0.584686 0.210022\n0.809418 0.587708 0.209320\n0.834747 0.590698 0.208679\n0.857697 0.593750 0.208069\n0.878571 0.596710 0.207397\n0.897522 0.599731 0.206818\n0.914825 0.602753 0.206207\n0.930481 0.605621 0.205658\n0.944733 0.608582 0.205048\n0.957611 0.611542 0.204468\n0.969208 0.614410 0.203979\n0.979553 0.617310 0.203857\n0.076752 0.571564 0.223236\n0.100800 0.574402 0.222504\n0.126007 0.577240 0.221741\n0.152557 0.580200 0.220947\n0.180603 0.583130 0.220184\n0.210205 0.585999 0.219482\n0.241699 0.588959 0.218719\n0.275269 0.591858 0.217926\n0.310913 0.594727 0.217224\n0.348785 0.597717 0.216431\n0.388489 0.600616 0.215698\n0.429932 0.603577 0.214966\n0.472809 0.606567 0.214233\n0.516754 0.609467 0.213531\n0.561157 0.612396 0.212799\n0.604340 0.615387 0.212067\n0.645599 0.618225 0.211395\n0.684662 0.621246 0.210693\n0.721069 0.624176 0.210022\n0.754578 0.626984 0.209351\n0.785126 0.629913 0.208710\n0.812714 0.632751 0.208069\n0.837738 0.635651 0.207428\n0.860474 0.638550 0.206848\n0.881042 0.641357 0.206207\n0.899780 0.644165 0.205658\n0.916870 0.647034 0.205048\n0.932312 0.649750 0.204529\n0.946411 0.652557 0.203979\n0.959106 0.655304 0.203857\n0.970520 0.657959 0.203857\n0.980743 0.660736 0.203857\n0.079590 0.617035 0.221771\n0.103790 0.619843 0.220978\n0.129211 0.622620 0.220245\n0.155945 0.625427 0.219482\n0.184143 0.628265 0.218719\n0.213989 0.630981 0.217957\n0.245728 0.633820 0.217224\n0.279480 0.636566 0.216461\n0.315582 0.639465 0.215729\n0.353668 0.642273 0.214966\n0.393646 0.645050 0.214264\n0.435242 0.647797 0.213531\n0.478302 0.650665 0.212799\n0.522369 0.653442 0.212128\n0.566711 0.656219 0.211426\n0.609711 0.659027 0.210724\n0.650696 0.661774 0.210052\n0.689392 0.664520 0.209381\n0.725494 0.667297 0.208710\n0.758606 0.670013 0.208099\n0.788757 0.672729 0.207428\n0.815979 0.675415 0.206879\n0.840698 0.678070 0.206238\n0.863159 0.680756 0.205658\n0.883514 0.683380 0.205109\n0.902008 0.686035 0.204559\n0.918823 0.688690 0.204010\n0.934143 0.691193 0.203857\n0.948029 0.693787 0.203857\n0.960571 0.696289 0.203857\n0.971802 0.698761 0.203857\n0.981903 0.701324 0.203857\n0.082458 0.660309 0.220276\n0.106873 0.662994 0.219513\n0.132385 0.665649 0.218781\n0.159332 0.668304 0.218018\n0.187805 0.670959 0.217255\n0.217834 0.673584 0.216492\n0.249847 0.676270 0.215729\n0.283905 0.678894 0.214996\n0.320251 0.681549 0.214294\n0.358582 0.684204 0.213562\n0.398773 0.686829 0.212860\n0.440613 0.689423 0.212158\n0.483856 0.692108 0.211426\n0.528046 0.694702 0.210754\n0.572266 0.697296 0.210083\n0.615021 0.699921 0.209381\n0.655731 0.702454 0.208740\n0.694122 0.705017 0.208099\n0.729797 0.707520 0.207458\n0.762604 0.710083 0.206879\n0.792328 0.712616 0.206238\n0.819244 0.715057 0.205688\n0.843628 0.717560 0.205139\n0.865784 0.720001 0.204559\n0.885864 0.722382 0.204010\n0.904144 0.724854 0.203857\n0.920807 0.727264 0.203857\n0.935913 0.729553 0.203857\n0.949615 0.731873 0.203857\n0.961975 0.734131 0.203857\n0.973114 0.736450 0.203857\n0.983032 0.738708 0.203857\n0.085419 0.700928 0.218781\n0.109955 0.703430 0.218018\n0.135681 0.705902 0.217285\n0.162811 0.708435 0.216492\n0.191406 0.710846 0.215790\n0.221741 0.713348 0.215027\n0.254028 0.715851 0.214294\n0.288361 0.718292 0.213593\n0.324982 0.720764 0.212860\n0.363586 0.723236 0.212158\n0.404022 0.725647 0.211456\n0.446075 0.728088 0.210754\n0.489380 0.730530 0.210083\n0.533661 0.732910 0.209442\n0.577759 0.735321 0.208771\n0.620239 0.737579 0.208130\n0.660736 0.739990 0.207520\n0.698761 0.742371 0.206879\n0.734070 0.744629 0.206268\n0.766449 0.746948 0.205719\n0.795837 0.749237 0.205139\n0.822418 0.751434 0.204590\n0.846497 0.753723 0.204041\n0.868378 0.755981 0.203857\n0.888184 0.758118 0.203857\n0.906281 0.760254 0.203857\n0.922729 0.762451 0.203857\n0.937653 0.764526 0.203857\n0.951172 0.766602 0.203857\n0.963379 0.768646 0.203857\n0.974335 0.770691 0.203857\n0.984100 0.772736 0.203857\n0.088379 0.738464 0.217285\n0.113098 0.740814 0.216522\n0.139008 0.743073 0.215820\n0.166321 0.745361 0.215027\n0.195129 0.747620 0.214355\n0.225739 0.749939 0.213593\n0.258270 0.752228 0.212891\n0.292877 0.754395 0.212189\n0.329742 0.756683 0.211487\n0.368652 0.758942 0.210815\n0.409271 0.761108 0.210114\n0.451477 0.763336 0.209442\n0.494934 0.765533 0.208771\n0.539307 0.767670 0.208160\n0.583221 0.769836 0.207520\n0.625427 0.771973 0.206940\n0.665649 0.774078 0.206299\n0.703339 0.776215 0.205719\n0.738281 0.778229 0.205170\n0.770294 0.780334 0.204590\n0.799316 0.782379 0.204041\n0.825470 0.784393 0.203857\n0.849304 0.786377 0.203857\n0.870911 0.788391 0.203857\n0.890503 0.790283 0.203857\n0.908325 0.792236 0.203857\n0.924530 0.794098 0.203857\n0.939301 0.795990 0.203857\n0.952667 0.797821 0.203857\n0.964691 0.799652 0.203857\n0.975525 0.801453 0.203857\n0.985138 0.803284 0.203857\n0.091400 0.772675 0.215820\n0.116241 0.774719 0.215057\n0.142365 0.776825 0.214355\n0.169861 0.778931 0.213623\n0.198883 0.780975 0.212891\n0.229736 0.783020 0.212219\n0.262512 0.785095 0.211487\n0.297455 0.787079 0.210846\n0.334564 0.789124 0.210144\n0.373657 0.791168 0.209473\n0.414490 0.793091 0.208801\n0.456909 0.795074 0.208160\n0.500427 0.797058 0.207550\n0.544922 0.798981 0.206940\n0.588654 0.800964 0.206299\n0.630554 0.802795 0.205750\n0.670471 0.804749 0.205170\n0.707855 0.806610 0.204620\n0.742401 0.808441 0.204071\n0.774048 0.810272 0.203857\n0.802673 0.812134 0.203857\n0.828522 0.813934 0.203857\n0.852020 0.815704 0.203857\n0.873352 0.817474 0.203857\n0.892761 0.819183 0.203857\n0.910370 0.820892 0.203857\n0.926361 0.822571 0.203857\n0.940948 0.824249 0.203857\n0.954132 0.825897 0.203857\n0.966034 0.827515 0.203857\n0.976654 0.829102 0.203857\n0.986145 0.830688 0.203857\n0.094482 0.803406 0.214417\n0.119446 0.805298 0.213654\n0.145721 0.807190 0.212921\n0.173431 0.809082 0.212219\n0.202698 0.810944 0.211517\n0.233765 0.812805 0.210846\n0.266815 0.814667 0.210144\n0.302063 0.816437 0.209503\n0.339417 0.818268 0.208862\n0.378754 0.820099 0.208191\n0.419769 0.821869 0.207611\n0.462311 0.823669 0.206940\n0.506012 0.825378 0.206360\n0.550476 0.827148 0.205750\n0.593994 0.828888 0.205200\n0.635651 0.830566 0.204620\n0.675293 0.832275 0.204071\n0.712311 0.833954 0.203857\n0.746460 0.835602 0.203857\n0.777649 0.837250 0.203857\n0.805969 0.838898 0.203857\n0.831482 0.840454 0.203857\n0.854706 0.842072 0.203857\n0.875763 0.843597 0.203857\n0.894897 0.845154 0.203857\n0.912292 0.846710 0.203857\n0.928131 0.848175 0.203857\n0.942535 0.849670 0.203857\n0.955566 0.851135 0.203857\n0.967285 0.852570 0.203857\n0.977783 0.853973 0.203857\n0.987122 0.855377 0.203857\n0.097565 0.831146 0.212921\n0.122711 0.832794 0.212250\n0.149170 0.834534 0.211548\n0.177063 0.836243 0.210876\n0.206543 0.837891 0.210175\n0.237823 0.839569 0.209534\n0.271179 0.841248 0.208862\n0.306641 0.842834 0.208221\n0.344269 0.844513 0.207611\n0.383789 0.846130 0.206970\n0.425018 0.847717 0.206360\n0.467773 0.849304 0.205780\n0.511566 0.850861 0.205200\n0.555969 0.852448 0.204651\n0.599243 0.854004 0.204102\n0.640686 0.855530 0.203857\n0.679932 0.857056 0.203857\n0.716644 0.858582 0.203857\n0.750427 0.860016 0.203857\n0.781281 0.861481 0.203857\n0.809143 0.862946 0.203857\n0.834381 0.864380 0.203857\n0.857300 0.865784 0.203857\n0.878082 0.867157 0.203857\n0.897003 0.868561 0.203857\n0.914246 0.869904 0.203857\n0.929840 0.871216 0.203857\n0.944061 0.872528 0.203857\n0.956909 0.873840 0.203857\n0.968506 0.875092 0.203857\n0.978882 0.876373 0.203857\n0.988037 0.877594 0.203857\n0.100708 0.856079 0.211548\n0.125977 0.857574 0.210907\n0.152588 0.859161 0.210205\n0.180695 0.860687 0.209534\n0.210358 0.862152 0.208893\n0.241913 0.863678 0.208221\n0.275513 0.865173 0.207611\n0.311279 0.866638 0.207001\n0.349121 0.868134 0.206390\n0.388885 0.869568 0.205811\n0.430298 0.871002 0.205231\n0.473175 0.872467 0.204651\n0.517059 0.873840 0.204132\n0.561401 0.875244 0.203857\n0.604431 0.876648 0.203857\n0.645599 0.878021 0.203857\n0.684540 0.879395 0.203857\n0.720886 0.880737 0.203857\n0.754272 0.882019 0.203857\n0.784729 0.883362 0.203857\n0.812256 0.884583 0.203857\n0.837158 0.885925 0.203857\n0.859833 0.887177 0.203857\n0.880371 0.888397 0.203857\n0.899048 0.889618 0.203857\n0.916077 0.890839 0.203857\n0.931488 0.891968 0.203857\n0.945557 0.893188 0.203857\n0.958252 0.894348 0.203857\n0.969666 0.895447 0.203857\n0.979919 0.896545 0.203857\n0.988922 0.897614 0.203857\n0.103821 0.878571 0.210205\n0.129303 0.879974 0.209564\n0.156097 0.881317 0.208923\n0.184387 0.882721 0.208221\n0.214264 0.884094 0.207642\n0.246033 0.885468 0.207001\n0.279907 0.886810 0.206390\n0.315887 0.888092 0.205811\n0.354004 0.889435 0.205231\n0.393951 0.890747 0.204681\n0.435547 0.892029 0.204132\n0.478546 0.893341 0.203857\n0.522491 0.894592 0.203857\n0.566711 0.895844 0.203857\n0.609589 0.897064 0.203857\n0.650421 0.898285 0.203857\n0.689026 0.899506 0.203857\n0.725037 0.900726 0.203857\n0.758026 0.901886 0.203857\n0.788086 0.903076 0.203857\n0.815277 0.904205 0.203857\n0.839905 0.905334 0.203857\n0.862274 0.906464 0.203857\n0.882568 0.907532 0.203857\n0.901031 0.908630 0.203857\n0.917847 0.909729 0.203857\n0.933075 0.910736 0.203857\n0.946991 0.911774 0.203857\n0.959534 0.912811 0.203857\n0.970795 0.913757 0.203857\n0.980896 0.914795 0.203857\n0.989807 0.915741 0.203857\n0.106964 0.898895 0.208923\n0.132568 0.900116 0.208282\n0.159546 0.901398 0.207672\n0.188049 0.902649 0.207031\n0.218140 0.903839 0.206451\n0.250153 0.905090 0.205841\n0.284241 0.906250 0.205261\n0.320526 0.907471 0.204681\n0.358917 0.908691 0.204132\n0.398956 0.909821 0.203857\n0.440735 0.911011 0.203857\n0.483856 0.912170 0.203857\n0.527893 0.913239 0.203857\n0.571991 0.914429 0.203857\n0.614594 0.915527 0.203857\n0.655151 0.916626 0.203857\n0.693420 0.917725 0.203857\n0.728973 0.918732 0.203857\n0.761688 0.919800 0.203857\n0.791351 0.920868 0.203857\n0.818176 0.921875 0.203857\n0.842529 0.922882 0.203857\n0.864624 0.923889 0.203857\n0.884674 0.924835 0.203857\n0.902985 0.925812 0.203857\n0.919556 0.926758 0.203857\n0.934662 0.927673 0.203857\n0.948334 0.928589 0.203857\n0.960724 0.929504 0.203857\n0.971863 0.930328 0.203857\n0.981842 0.931213 0.203857\n0.990601 0.932037 0.203857\n0.110138 0.917267 0.207672\n0.135925 0.918335 0.207062\n0.163055 0.919464 0.206482\n0.191711 0.920593 0.205841\n0.222046 0.921722 0.205261\n0.254303 0.922821 0.204712\n0.288605 0.923889 0.204163\n0.325165 0.924988 0.203857\n0.363739 0.926025 0.203857\n0.404022 0.927063 0.203857\n0.445953 0.928101 0.203857\n0.489166 0.929138 0.203857\n0.533264 0.930145 0.203857\n0.577118 0.931152 0.203857\n0.619537 0.932159 0.203857\n0.659760 0.933075 0.203857\n0.697723 0.934082 0.203857\n0.732910 0.934998 0.203857\n0.765228 0.935944 0.203857\n0.794525 0.936859 0.203857\n0.821014 0.937805 0.203857\n0.845093 0.938690 0.203857\n0.866913 0.939575 0.203857\n0.886749 0.940399 0.203857\n0.904816 0.941254 0.203857\n0.921234 0.942108 0.203857\n0.936127 0.942902 0.203857\n0.949677 0.943726 0.203857\n0.961884 0.944489 0.203857\n0.972931 0.945251 0.203857\n0.982727 0.946014 0.203857\n0.991394 0.946747 0.203857\n0.113312 0.933807 0.206482\n0.139221 0.934784 0.205872\n0.166534 0.935791 0.205292\n0.195374 0.936798 0.204742\n0.225952 0.937805 0.204193\n0.258423 0.938782 0.203857\n0.293030 0.939758 0.203857\n0.329742 0.940704 0.203857\n0.368530 0.941681 0.203857\n0.408997 0.942596 0.203857\n0.451050 0.943512 0.203857\n0.494415 0.944458 0.203857\n0.538483 0.945343 0.203857\n0.582184 0.946228 0.203857\n0.624237 0.947083 0.203857\n0.664276 0.947968 0.203857\n0.701904 0.948822 0.203857\n0.736755 0.949646 0.203857\n0.768646 0.950500 0.203857\n0.797577 0.951294 0.203857\n0.823761 0.952087 0.203857\n0.847565 0.952881 0.203857\n0.869110 0.953674 0.203857\n0.888702 0.954407 0.203857\n0.906586 0.955170 0.203857\n0.922821 0.955872 0.203857\n0.937561 0.956604 0.203857\n0.950928 0.957306 0.203857\n0.963013 0.957977 0.203857\n0.973907 0.958649 0.203857\n0.983582 0.959290 0.203857\n0.992126 0.959930 0.203857\n0.116516 0.948700 0.205292\n0.142548 0.949615 0.204742\n0.170044 0.950500 0.204193\n0.199036 0.951385 0.203857\n0.229828 0.952240 0.203857\n0.262573 0.953125 0.203857\n0.297363 0.954010 0.203857\n0.334351 0.954865 0.203857\n0.373352 0.955719 0.203857\n0.413879 0.956543 0.203857\n0.456116 0.957336 0.203857\n0.499512 0.958160 0.203857\n0.543671 0.958954 0.203857\n0.587158 0.959778 0.203857\n0.628937 0.960510 0.203857\n0.668640 0.961273 0.203857\n0.705902 0.962067 0.203857\n0.740387 0.962769 0.203857\n0.771973 0.963501 0.203857\n0.800537 0.964233 0.203857\n0.826416 0.964905 0.203857\n0.849915 0.965576 0.203857\n0.871246 0.966278 0.203857\n0.890594 0.966949 0.203857\n0.908234 0.967590 0.203857\n0.924286 0.968201 0.203857\n0.938904 0.968842 0.203857\n0.952148 0.969452 0.203857\n0.964081 0.970032 0.203857\n0.974854 0.970612 0.203857\n0.984406 0.971191 0.203857\n0.992798 0.971710 0.203857\n0.119629 0.962036 0.204254\n0.145874 0.962860 0.203857\n0.173523 0.963654 0.203857\n0.202728 0.964417 0.203857\n0.233704 0.965210 0.203857\n0.266632 0.966034 0.203857\n0.301666 0.966766 0.203857\n0.338928 0.967529 0.203857\n0.378052 0.968292 0.203857\n0.418823 0.968994 0.203857\n0.461090 0.969727 0.203857\n0.504517 0.970428 0.203857\n0.548706 0.971130 0.203857\n0.592041 0.971802 0.203857\n0.633514 0.972473 0.203857\n0.672882 0.973175 0.203857\n0.709839 0.973816 0.203857\n0.743958 0.974457 0.203857\n0.775116 0.975067 0.203857\n0.803406 0.975708 0.203857\n0.828949 0.976318 0.203857\n0.852173 0.976898 0.203857\n0.873260 0.977448 0.203857\n0.892426 0.978058 0.203857\n0.909912 0.978607 0.203857\n0.925781 0.979126 0.203857\n0.940186 0.979675 0.203857\n0.953278 0.980194 0.203857\n0.965088 0.980682 0.203857\n0.975708 0.981171 0.203857\n0.985138 0.981689 0.203857\n0.993408 0.982117 0.203857\n0.040619 0.001862 0.274414\n0.062347 0.002563 0.274078\n0.085083 0.003265 0.273712\n0.108856 0.004059 0.273376\n0.133789 0.004852 0.272949\n0.160034 0.005646 0.272522\n0.187775 0.006500 0.272125\n0.217102 0.007355 0.271606\n0.248260 0.008240 0.271149\n0.281433 0.009155 0.270599\n0.316742 0.010132 0.270050\n0.354095 0.011078 0.269470\n0.393250 0.012115 0.268890\n0.434113 0.013153 0.268250\n0.476318 0.014160 0.267670\n0.519562 0.015228 0.266998\n0.563293 0.016357 0.266357\n0.605743 0.017456 0.265717\n0.646362 0.018616 0.265015\n0.684814 0.019775 0.264343\n0.720764 0.020996 0.263611\n0.753967 0.022186 0.262909\n0.784210 0.023376 0.262146\n0.811646 0.024689 0.261414\n0.836578 0.025909 0.260651\n0.859192 0.027252 0.259888\n0.879761 0.028534 0.259094\n0.898499 0.029816 0.258362\n0.915588 0.031189 0.257538\n0.931122 0.032593 0.256714\n0.945190 0.033936 0.255951\n0.958008 0.035339 0.255127\n0.041992 0.022858 0.273743\n0.063873 0.023651 0.273376\n0.086670 0.024445 0.273010\n0.110596 0.025269 0.272522\n0.135712 0.026184 0.272125\n0.162140 0.027069 0.271637\n0.189972 0.028015 0.271149\n0.219543 0.028961 0.270599\n0.250916 0.029938 0.270050\n0.284363 0.030945 0.269501\n0.319977 0.032013 0.268890\n0.357513 0.033051 0.268280\n0.396942 0.034149 0.267700\n0.437958 0.035248 0.267059\n0.480377 0.036377 0.266388\n0.523895 0.037567 0.265717\n0.567535 0.038757 0.265045\n0.609894 0.039978 0.264343\n0.650421 0.041199 0.263611\n0.688690 0.042419 0.262939\n0.724396 0.043732 0.262177\n0.757355 0.045074 0.261414\n0.787292 0.046356 0.260651\n0.814484 0.047729 0.259888\n0.839203 0.049072 0.259094\n0.861572 0.050415 0.258362\n0.881958 0.051819 0.257538\n0.900513 0.053192 0.256744\n0.917450 0.054657 0.255981\n0.932831 0.056152 0.255157\n0.946777 0.057587 0.254364\n0.959412 0.059052 0.253601\n0.043457 0.044800 0.273010\n0.065491 0.045715 0.272522\n0.088409 0.046631 0.272156\n0.112488 0.047546 0.271637\n0.137726 0.048523 0.271149\n0.164307 0.049500 0.270630\n0.192413 0.050537 0.270081\n0.222168 0.051605 0.269501\n0.253754 0.052673 0.268921\n0.287445 0.053772 0.268280\n0.323334 0.054871 0.267700\n0.361176 0.056030 0.267090\n0.400818 0.057220 0.266388\n0.442047 0.058441 0.265747\n0.484650 0.059662 0.265045\n0.528290 0.060944 0.264404\n0.571930 0.062164 0.263641\n0.614227 0.063507 0.262939\n0.654602 0.064850 0.262207\n0.692596 0.066193 0.261444\n0.728119 0.067566 0.260681\n0.760803 0.069000 0.259918\n0.790466 0.070374 0.259125\n0.817413 0.071808 0.258392\n0.841797 0.073212 0.257568\n0.863983 0.074768 0.256805\n0.884216 0.076263 0.255981\n0.902557 0.077698 0.255219\n0.919312 0.079285 0.254425\n0.934540 0.080841 0.253601\n0.948334 0.082367 0.252808\n0.960846 0.083984 0.251984\n0.045105 0.067871 0.272156\n0.067200 0.068817 0.271667\n0.090302 0.069824 0.271179\n0.114471 0.070892 0.270630\n0.139923 0.071960 0.270081\n0.166656 0.073029 0.269531\n0.194946 0.074158 0.268982\n0.224884 0.075317 0.268372\n0.256744 0.076477 0.267761\n0.290710 0.077667 0.267090\n0.326782 0.078918 0.266418\n0.364929 0.080170 0.265778\n0.404816 0.081451 0.265076\n0.446259 0.082764 0.264435\n0.489075 0.084076 0.263702\n0.532837 0.085449 0.262970\n0.576477 0.086853 0.262268\n0.618622 0.088257 0.261475\n0.658813 0.089661 0.260742\n0.696625 0.091125 0.259949\n0.731873 0.092621 0.259155\n0.764252 0.094116 0.258392\n0.793640 0.095612 0.257629\n0.820312 0.097168 0.256805\n0.844482 0.098694 0.256012\n0.866455 0.100281 0.255219\n0.886444 0.101898 0.254425\n0.904663 0.103485 0.253632\n0.921204 0.105133 0.252808\n0.936279 0.106812 0.251984\n0.949921 0.108459 0.251190\n0.962311 0.110138 0.250366\n0.046783 0.092072 0.271179\n0.069061 0.093140 0.270660\n0.092255 0.094238 0.270111\n0.116608 0.095367 0.269531\n0.142212 0.096588 0.268982\n0.169128 0.097748 0.268402\n0.197601 0.098969 0.267761\n0.227783 0.100250 0.267090\n0.259888 0.101532 0.266479\n0.294128 0.102875 0.265778\n0.330475 0.104156 0.265076\n0.368835 0.105530 0.264435\n0.408966 0.106903 0.263702\n0.450653 0.108337 0.262970\n0.493683 0.109802 0.262268\n0.537567 0.111267 0.261475\n0.581116 0.112732 0.260773\n0.623077 0.114288 0.259949\n0.663116 0.115845 0.259216\n0.700745 0.117371 0.258423\n0.735687 0.118988 0.257629\n0.767761 0.120544 0.256836\n0.796875 0.122223 0.256042\n0.823273 0.123871 0.255249\n0.847198 0.125519 0.254486\n0.868927 0.127228 0.253662\n0.888733 0.128937 0.252838\n0.906738 0.130676 0.252045\n0.923126 0.132385 0.251221\n0.938049 0.134216 0.250397\n0.951508 0.135956 0.249603\n0.963715 0.137756 0.248810\n0.048615 0.117523 0.270111\n0.070953 0.118744 0.269592\n0.094330 0.119934 0.269012\n0.118835 0.121216 0.268402\n0.144592 0.122528 0.267792\n0.171692 0.123810 0.267120\n0.200409 0.125183 0.266479\n0.230804 0.126495 0.265808\n0.263184 0.127960 0.265137\n0.297699 0.129395 0.264465\n0.334320 0.130798 0.263733\n0.372955 0.132294 0.263000\n0.413300 0.133820 0.262299\n0.455200 0.135345 0.261505\n0.498352 0.136932 0.260773\n0.542419 0.138550 0.259979\n0.585876 0.140106 0.259247\n0.627686 0.141754 0.258453\n0.667511 0.143463 0.257660\n0.704865 0.145142 0.256866\n0.739563 0.146851 0.256073\n0.771301 0.148560 0.255280\n0.800110 0.150330 0.254486\n0.826202 0.152100 0.253662\n0.849884 0.153870 0.252869\n0.871429 0.155701 0.252045\n0.890991 0.157562 0.251221\n0.908783 0.159363 0.250427\n0.925049 0.161224 0.249664\n0.939758 0.163147 0.248840\n0.953094 0.165039 0.248047\n0.965149 0.166962 0.247223\n0.050507 0.144470 0.269012\n0.073029 0.145813 0.268402\n0.096527 0.147095 0.267792\n0.121185 0.148529 0.267151\n0.147095 0.149963 0.266541\n0.174408 0.151337 0.265808\n0.203308 0.152832 0.265137\n0.234009 0.154327 0.264465\n0.266602 0.155884 0.263763\n0.301422 0.157471 0.263031\n0.338287 0.158997 0.262299\n0.377136 0.160645 0.261536\n0.417786 0.162292 0.260803\n0.459839 0.163940 0.260040\n0.503204 0.165680 0.259247\n0.547333 0.167389 0.258453\n0.590637 0.169098 0.257721\n0.632324 0.170898 0.256927\n0.671936 0.172668 0.256134\n0.709045 0.174500 0.255280\n0.743439 0.176331 0.254517\n0.774872 0.178192 0.253693\n0.803375 0.180084 0.252930\n0.829193 0.182037 0.252106\n0.852600 0.183929 0.251251\n0.873901 0.185883 0.250427\n0.893280 0.187897 0.249664\n0.910889 0.189819 0.248871\n0.926941 0.191864 0.248047\n0.941467 0.193848 0.247284\n0.954651 0.195923 0.246460\n0.966614 0.197998 0.245667\n0.052551 0.173004 0.267822\n0.075134 0.174500 0.267151\n0.098846 0.175934 0.266541\n0.123657 0.177460 0.265839\n0.149719 0.178986 0.265167\n0.177246 0.180603 0.264496\n0.206390 0.182220 0.263763\n0.237244 0.183838 0.263031\n0.270142 0.185516 0.262329\n0.305237 0.187225 0.261536\n0.342407 0.188934 0.260834\n0.381500 0.190704 0.260040\n0.422363 0.192505 0.259308\n0.464661 0.194305 0.258514\n0.508179 0.196167 0.257721\n0.552307 0.197998 0.256958\n0.595551 0.199921 0.256134\n0.637115 0.201843 0.255341\n0.676392 0.203796 0.254547\n0.713226 0.205750 0.253723\n0.747375 0.207764 0.252930\n0.778442 0.209747 0.252136\n0.806610 0.211792 0.251282\n0.832184 0.213867 0.250458\n0.855316 0.215942 0.249695\n0.876373 0.218048 0.248901\n0.895569 0.220154 0.248077\n0.912933 0.222290 0.247284\n0.928802 0.224487 0.246490\n0.943176 0.226624 0.245697\n0.956238 0.228821 0.244934\n0.967987 0.231049 0.244141\n0.054626 0.203369 0.266571\n0.077423 0.204987 0.265839\n0.101196 0.206604 0.265198\n0.126190 0.208282 0.264496\n0.152466 0.209961 0.263794\n0.180176 0.211700 0.263062\n0.209534 0.213501 0.262360\n0.240662 0.215271 0.261566\n0.273834 0.217102 0.260834\n0.309204 0.218994 0.260101\n0.346619 0.220825 0.259338\n0.385986 0.222778 0.258545\n0.427094 0.224731 0.257751\n0.469543 0.226685 0.256958\n0.513275 0.228729 0.256165\n0.557434 0.230652 0.255402\n0.600555 0.232758 0.254547\n0.641907 0.234863 0.253723\n0.680939 0.236908 0.252960\n0.717529 0.239105 0.252136\n0.751251 0.241272 0.251282\n0.782043 0.243408 0.250519\n0.809875 0.245636 0.249725\n0.835144 0.247894 0.248901\n0.858032 0.250092 0.248108\n0.878906 0.252411 0.247314\n0.897797 0.254608 0.246521\n0.915070 0.256958 0.245697\n0.930695 0.259338 0.244965\n0.944916 0.261566 0.244171\n0.957794 0.263977 0.243408\n0.969391 0.266388 0.242645\n0.056824 0.235748 0.265198\n0.079742 0.237549 0.264526\n0.103729 0.239319 0.263794\n0.128876 0.241180 0.263062\n0.155273 0.243011 0.262360\n0.183228 0.244965 0.261627\n0.212799 0.246887 0.260895\n0.244171 0.248840 0.260132\n0.277649 0.250885 0.259338\n0.313324 0.252930 0.258545\n0.350983 0.254913 0.257812\n0.390564 0.257019 0.256989\n0.431946 0.259155 0.256165\n0.474579 0.261261 0.255402\n0.518463 0.263489 0.254578\n0.562592 0.265686 0.253815\n0.605591 0.267914 0.252991\n0.646698 0.270233 0.252197\n0.685516 0.272461 0.251343\n0.721771 0.274811 0.250519\n0.755188 0.277130 0.249725\n0.785583 0.279480 0.248932\n0.813141 0.281891 0.248108\n0.838135 0.284363 0.247314\n0.860718 0.286743 0.246521\n0.881317 0.289215 0.245728\n0.900055 0.291656 0.244995\n0.917084 0.294128 0.244202\n0.932587 0.296661 0.243408\n0.946625 0.299133 0.242676\n0.959320 0.301727 0.241913\n0.970764 0.304291 0.241180\n0.059113 0.270477 0.263855\n0.082153 0.272400 0.263092\n0.106293 0.274384 0.262390\n0.131622 0.276459 0.261627\n0.158234 0.278442 0.260925\n0.186371 0.280548 0.260132\n0.216217 0.282715 0.259369\n0.247833 0.284851 0.258575\n0.281586 0.287048 0.257812\n0.317505 0.289276 0.256989\n0.355469 0.291504 0.256256\n0.395386 0.293823 0.255432\n0.436829 0.296082 0.254608\n0.479736 0.298462 0.253815\n0.523743 0.300812 0.252991\n0.567871 0.303192 0.252228\n0.610687 0.305634 0.251343\n0.651520 0.308136 0.250549\n0.690094 0.310577 0.249786\n0.726044 0.313080 0.248962\n0.759155 0.315674 0.248169\n0.789185 0.318115 0.247375\n0.816406 0.320740 0.246552\n0.841034 0.323303 0.245789\n0.863434 0.325897 0.244995\n0.883789 0.328522 0.244202\n0.902283 0.331146 0.243469\n0.919098 0.333832 0.242676\n0.934418 0.336548 0.241913\n0.948273 0.339172 0.241241\n0.960846 0.341919 0.240448\n0.972137 0.344604 0.239746\n0.061493 0.307678 0.262390\n0.084686 0.309814 0.261688\n0.108978 0.311981 0.260925\n0.134460 0.314209 0.260162\n0.161255 0.316406 0.259399\n0.189636 0.318756 0.258636\n0.219696 0.321014 0.257843\n0.251556 0.323364 0.257019\n0.285614 0.325775 0.256256\n0.321869 0.328217 0.255463\n0.360016 0.330597 0.254608\n0.400208 0.333069 0.253845\n0.441895 0.335541 0.253021\n0.484985 0.338104 0.252258\n0.529114 0.340698 0.251434\n0.573151 0.343201 0.250610\n0.615753 0.345825 0.249786\n0.656464 0.348511 0.248962\n0.694702 0.351135 0.248199\n0.730316 0.353760 0.247375\n0.763062 0.356506 0.246552\n0.792725 0.359222 0.245789\n0.819611 0.361908 0.245026\n0.843964 0.364624 0.244232\n0.866089 0.367462 0.243500\n0.886230 0.370209 0.242706\n0.904510 0.373016 0.242004\n0.921143 0.375854 0.241241\n0.936249 0.378693 0.240479\n0.949951 0.381439 0.239777\n0.962341 0.384369 0.239075\n0.973480 0.387238 0.238342\n0.063934 0.347351 0.260956\n0.087280 0.349609 0.260223\n0.111694 0.352020 0.259399\n0.137390 0.354431 0.258636\n0.164398 0.356812 0.257874\n0.192963 0.359283 0.257050\n0.223236 0.361786 0.256287\n0.255432 0.364288 0.255493\n0.289764 0.366882 0.254639\n0.326172 0.369415 0.253876\n0.364716 0.372070 0.253052\n0.405121 0.374725 0.252258\n0.447052 0.377319 0.251465\n0.490295 0.380035 0.250641\n0.534607 0.382782 0.249817\n0.578491 0.385468 0.248993\n0.620911 0.388245 0.248260\n0.661316 0.391083 0.247406\n0.699249 0.393860 0.246613\n0.734558 0.396698 0.245819\n0.766907 0.399536 0.245056\n0.796234 0.402405 0.244263\n0.822815 0.405304 0.243500\n0.846893 0.408112 0.242737\n0.868744 0.411072 0.242004\n0.888641 0.414001 0.241272\n0.906708 0.416931 0.240540\n0.923126 0.419861 0.239807\n0.938049 0.422852 0.239075\n0.951569 0.425781 0.238373\n0.963806 0.428741 0.237701\n0.974762 0.431671 0.237030\n0.066467 0.389252 0.259430\n0.089966 0.391693 0.258698\n0.114532 0.394287 0.257904\n0.140442 0.396851 0.257050\n0.167633 0.399384 0.256317\n0.196381 0.402039 0.255493\n0.226929 0.404755 0.254639\n0.259369 0.407349 0.253876\n0.293976 0.410126 0.253052\n0.330719 0.412811 0.252289\n0.369537 0.415588 0.251465\n0.410156 0.418427 0.250641\n0.452271 0.421173 0.249847\n0.495667 0.424042 0.249084\n0.540070 0.426941 0.248260\n0.583832 0.429749 0.247437\n0.626068 0.432739 0.246613\n0.666199 0.435669 0.245819\n0.703827 0.438599 0.245056\n0.738800 0.441559 0.244263\n0.770752 0.444458 0.243561\n0.799744 0.447479 0.242737\n0.825989 0.450531 0.242035\n0.849762 0.453461 0.241302\n0.871368 0.456543 0.240540\n0.891022 0.459595 0.239807\n0.908844 0.462555 0.239105\n0.925110 0.465668 0.238403\n0.939880 0.468750 0.237701\n0.953186 0.471710 0.237030\n0.965271 0.474792 0.236389\n0.976044 0.477814 0.235718\n0.069122 0.433136 0.257904\n0.092712 0.435730 0.257111\n0.117462 0.438446 0.256317\n0.143524 0.441162 0.255524\n0.170929 0.443878 0.254730\n0.199921 0.446655 0.253906\n0.230621 0.449402 0.253113\n0.263367 0.452301 0.252350\n0.298309 0.455139 0.251495\n0.335327 0.458008 0.250671\n0.374390 0.460938 0.249847\n0.415222 0.463867 0.249084\n0.457581 0.466766 0.248291\n0.501129 0.469788 0.247437\n0.545532 0.472778 0.246704\n0.589172 0.475769 0.245850\n0.631256 0.478760 0.245087\n0.671082 0.481842 0.244354\n0.708405 0.484863 0.243561\n0.742981 0.487976 0.242798\n0.774597 0.490997 0.242065\n0.803223 0.494110 0.241302\n0.829132 0.497253 0.240570\n0.852600 0.500275 0.239838\n0.873932 0.503418 0.239166\n0.893372 0.506531 0.238403\n0.911011 0.509583 0.237762\n0.927063 0.512756 0.237091\n0.941589 0.515778 0.236420\n0.954773 0.518951 0.235748\n0.966705 0.522095 0.235107\n0.977325 0.525116 0.234528\n0.071747 0.478699 0.256348\n0.095520 0.481445 0.255554\n0.120453 0.484222 0.254730\n0.146667 0.487152 0.253906\n0.174286 0.489960 0.253113\n0.203522 0.492889 0.252350\n0.234497 0.495789 0.251526\n0.267548 0.498749 0.250702\n0.302734 0.501740 0.249878\n0.340027 0.504700 0.249146\n0.379364 0.507721 0.248322\n0.420441 0.510773 0.247467\n0.462921 0.513794 0.246735\n0.506622 0.516876 0.245911\n0.551147 0.519958 0.245117\n0.594574 0.523041 0.244385\n0.636383 0.526154 0.243591\n0.675903 0.529266 0.242828\n0.712921 0.532379 0.242065\n0.747162 0.535553 0.241333\n0.778381 0.538605 0.240601\n0.806641 0.541779 0.239868\n0.832275 0.544922 0.239166\n0.855408 0.547974 0.238434\n0.876495 0.551147 0.237762\n0.895721 0.554260 0.237091\n0.913086 0.557312 0.236420\n0.928955 0.560425 0.235748\n0.943298 0.563446 0.235138\n0.956360 0.566528 0.234528\n0.968079 0.569641 0.233948\n0.978577 0.572571 0.233398\n0.074463 0.525574 0.254761\n0.098419 0.528442 0.253937\n0.123535 0.531403 0.253143\n0.149933 0.534363 0.252380\n0.177704 0.537292 0.251526\n0.207153 0.540253 0.250702\n0.238403 0.543182 0.249939\n0.271698 0.546234 0.249146\n0.307220 0.549286 0.248322\n0.344788 0.552277 0.247498\n0.384399 0.555328 0.246735\n0.425690 0.558411 0.245941\n0.468323 0.561432 0.245148\n0.512177 0.564453 0.244385\n0.556702 0.567566 0.243591\n0.599976 0.570557 0.242828\n0.641479 0.573639 0.242096\n0.680725 0.576630 0.241364\n0.717438 0.579681 0.240601\n0.751282 0.582764 0.239868\n0.782104 0.585754 0.239197\n0.809998 0.588776 0.238495\n0.835297 0.591858 0.237762\n0.858215 0.594818 0.237122\n0.879028 0.597809 0.236481\n0.897980 0.600830 0.235809\n0.915192 0.603790 0.235168\n0.930847 0.606720 0.234528\n0.945007 0.609619 0.234009\n0.957886 0.612579 0.233398\n0.969452 0.615479 0.232880\n0.979797 0.618317 0.232880\n0.077271 0.572601 0.253143\n0.101349 0.575470 0.252411\n0.126648 0.578369 0.251556\n0.153229 0.581299 0.250732\n0.181213 0.584106 0.249969\n0.210938 0.587097 0.249176\n0.242432 0.589935 0.248352\n0.276001 0.592926 0.247559\n0.311829 0.595886 0.246765\n0.349640 0.598755 0.245972\n0.389465 0.601746 0.245148\n0.430969 0.604736 0.244415\n0.473785 0.607605 0.243622\n0.517822 0.610596 0.242889\n0.562256 0.613525 0.242096\n0.605316 0.616425 0.241364\n0.646606 0.619385 0.240631\n0.685547 0.622253 0.239899\n0.721924 0.625214 0.239227\n0.755371 0.628082 0.238495\n0.785797 0.630981 0.237793\n0.813354 0.633850 0.237152\n0.838318 0.636749 0.236481\n0.860962 0.639557 0.235840\n0.881500 0.642365 0.235168\n0.900238 0.645264 0.234558\n0.917236 0.648010 0.234039\n0.932709 0.650787 0.233398\n0.946686 0.653503 0.232880\n0.959351 0.656281 0.232880\n0.970764 0.658997 0.232880\n0.980957 0.661621 0.232880\n0.080139 0.618042 0.251556\n0.104370 0.620819 0.250763\n0.129822 0.623627 0.249969\n0.156525 0.626373 0.249207\n0.184814 0.629211 0.248383\n0.214752 0.632019 0.247559\n0.246460 0.634857 0.246796\n0.280365 0.637665 0.245972\n0.316406 0.640503 0.245209\n0.354523 0.643250 0.244446\n0.394592 0.646088 0.243652\n0.436310 0.648895 0.242920\n0.479279 0.651611 0.242126\n0.523407 0.654480 0.241425\n0.567719 0.657196 0.240662\n0.610657 0.660004 0.239960\n0.651672 0.662781 0.239227\n0.690247 0.665527 0.238525\n0.726257 0.668274 0.237823\n0.759399 0.670959 0.237152\n0.789398 0.673676 0.236511\n0.816620 0.676392 0.235840\n0.841278 0.679108 0.235168\n0.863617 0.681732 0.234589\n0.883942 0.684387 0.234039\n0.902374 0.686920 0.233429\n0.919189 0.689545 0.232880\n0.934479 0.692200 0.232880\n0.948303 0.694702 0.232880\n0.960815 0.697235 0.232880\n0.972076 0.699738 0.232880\n0.982117 0.702148 0.232880\n0.083038 0.661316 0.250000\n0.107391 0.663940 0.249207\n0.132996 0.666626 0.248383\n0.159973 0.669220 0.247589\n0.188446 0.671936 0.246796\n0.218597 0.674622 0.246002\n0.250610 0.677185 0.245239\n0.284790 0.679871 0.244446\n0.321106 0.682587 0.243652\n0.359497 0.685181 0.242950\n0.399780 0.687805 0.242157\n0.441711 0.690430 0.241425\n0.484833 0.693054 0.240662\n0.529114 0.695709 0.239960\n0.573242 0.698212 0.239258\n0.615936 0.700867 0.238556\n0.656677 0.703430 0.237823\n0.694977 0.705902 0.237183\n0.730652 0.708496 0.236542\n0.763336 0.711060 0.235840\n0.792999 0.713501 0.235199\n0.819855 0.715973 0.234589\n0.844177 0.718475 0.234039\n0.866272 0.720886 0.233429\n0.886322 0.723297 0.232880\n0.904541 0.725677 0.232880\n0.921173 0.728058 0.232880\n0.936218 0.730469 0.232880\n0.949890 0.732727 0.232880\n0.962250 0.735046 0.232880\n0.973358 0.737305 0.232880\n0.983215 0.739532 0.232880\n0.085938 0.701843 0.248474\n0.110535 0.704315 0.247620\n0.136322 0.706879 0.246826\n0.163422 0.709290 0.246033\n0.192108 0.711792 0.245239\n0.222534 0.714294 0.244476\n0.254761 0.716736 0.243683\n0.289246 0.719238 0.242950\n0.325897 0.721710 0.242157\n0.364441 0.724060 0.241455\n0.404968 0.726562 0.240723\n0.447052 0.728943 0.239990\n0.490417 0.731384 0.239258\n0.534760 0.733795 0.238556\n0.578766 0.736145 0.237854\n0.621185 0.738495 0.237183\n0.661682 0.740875 0.236542\n0.699585 0.743195 0.235901\n0.734863 0.745483 0.235229\n0.767212 0.747803 0.234619\n0.796478 0.750031 0.234070\n0.822998 0.752319 0.233490\n0.847046 0.754547 0.232880\n0.868835 0.756714 0.232880\n0.888672 0.758942 0.232880\n0.906677 0.761047 0.232880\n0.923065 0.763184 0.232880\n0.937958 0.765320 0.232880\n0.951447 0.767365 0.232880\n0.963623 0.769440 0.232880\n0.974579 0.771454 0.232880\n0.984283 0.773438 0.232880\n0.088959 0.739288 0.246857\n0.113678 0.741608 0.246033\n0.139618 0.743927 0.245270\n0.166931 0.746185 0.244507\n0.195831 0.748444 0.243744\n0.226501 0.750763 0.242981\n0.259033 0.753021 0.242188\n0.293793 0.755249 0.241486\n0.330688 0.757538 0.240723\n0.369537 0.759705 0.240021\n0.410217 0.761932 0.239288\n0.452454 0.764099 0.238586\n0.495972 0.766266 0.237915\n0.540405 0.768494 0.237213\n0.584198 0.770630 0.236572\n0.626373 0.772766 0.235931\n0.666565 0.774902 0.235229\n0.704163 0.776917 0.234619\n0.739075 0.779022 0.234100\n0.771027 0.781097 0.233490\n0.799927 0.783112 0.232910\n0.826080 0.785126 0.232880\n0.849792 0.787079 0.232880\n0.871338 0.789062 0.232880\n0.890930 0.790985 0.232880\n0.908691 0.792938 0.232880\n0.924896 0.794800 0.232880\n0.939606 0.796692 0.232880\n0.952972 0.798492 0.232880\n0.964966 0.800323 0.232880\n0.975739 0.802155 0.232880\n0.985321 0.803894 0.232880\n0.091980 0.773407 0.245300\n0.116852 0.775543 0.244507\n0.143005 0.777588 0.243744\n0.170502 0.779633 0.243011\n0.199615 0.781738 0.242218\n0.230499 0.783783 0.241486\n0.263306 0.785828 0.240753\n0.298309 0.787872 0.240021\n0.335449 0.789825 0.239319\n0.374573 0.791870 0.238586\n0.415497 0.793854 0.237915\n0.457855 0.795807 0.237244\n0.501495 0.797791 0.236572\n0.545990 0.799744 0.235931\n0.589600 0.801636 0.235321\n0.631561 0.803528 0.234650\n0.671387 0.805420 0.234100\n0.708679 0.807281 0.233521\n0.743195 0.809174 0.232910\n0.774750 0.810974 0.232880\n0.803253 0.812805 0.232880\n0.829102 0.814606 0.232880\n0.852509 0.816345 0.232880\n0.873810 0.818085 0.232880\n0.893158 0.819855 0.232880\n0.910706 0.821503 0.232880\n0.926697 0.823212 0.232880\n0.941254 0.824860 0.232880\n0.954407 0.826508 0.232880\n0.966248 0.828125 0.232880\n0.976898 0.829712 0.232880\n0.986328 0.831238 0.232880\n0.095032 0.804108 0.243774\n0.120056 0.806030 0.243011\n0.146393 0.807892 0.242218\n0.174103 0.809753 0.241516\n0.203430 0.811615 0.240784\n0.234528 0.813507 0.240051\n0.267609 0.815338 0.239319\n0.302917 0.817108 0.238647\n0.340271 0.818939 0.237946\n0.379639 0.820740 0.237244\n0.420776 0.822510 0.236603\n0.463287 0.824280 0.235962\n0.507080 0.826050 0.235352\n0.551544 0.827789 0.234650\n0.594910 0.829498 0.234131\n0.636658 0.831207 0.233551\n0.676147 0.832916 0.232971\n0.713074 0.834595 0.232880\n0.747192 0.836212 0.232880\n0.778351 0.837830 0.232880\n0.806519 0.839447 0.232880\n0.832062 0.841064 0.232880\n0.855194 0.842621 0.232880\n0.876221 0.844177 0.232880\n0.895325 0.845734 0.232880\n0.912659 0.847229 0.232880\n0.928467 0.848724 0.232880\n0.942841 0.850250 0.232880\n0.955811 0.851624 0.232880\n0.967529 0.853088 0.232880\n0.977966 0.854462 0.232880\n0.987305 0.855835 0.232880\n0.098145 0.831726 0.242310\n0.123352 0.833466 0.241547\n0.149841 0.835175 0.240784\n0.177673 0.836853 0.240082\n0.207245 0.838531 0.239380\n0.238556 0.840149 0.238678\n0.271942 0.841827 0.237976\n0.307526 0.843506 0.237274\n0.345123 0.845062 0.236633\n0.384735 0.846710 0.235992\n0.426056 0.848328 0.235352\n0.468750 0.849884 0.234711\n0.512604 0.851471 0.234131\n0.557037 0.853027 0.233551\n0.600220 0.854553 0.233032\n0.641632 0.856110 0.232880\n0.680878 0.857635 0.232880\n0.717377 0.859100 0.232880\n0.751129 0.860596 0.232880\n0.781891 0.862030 0.232880\n0.809723 0.863464 0.232880\n0.834930 0.864899 0.232880\n0.857758 0.866272 0.232880\n0.878510 0.867676 0.232880\n0.897430 0.869049 0.232880\n0.914581 0.870392 0.232880\n0.930176 0.871735 0.232880\n0.944336 0.873047 0.232880\n0.957184 0.874298 0.232880\n0.968750 0.875549 0.232880\n0.979034 0.876801 0.232880\n0.988220 0.878021 0.232880\n0.101257 0.856598 0.240845\n0.126648 0.858185 0.240082\n0.153290 0.859711 0.239380\n0.181335 0.861237 0.238678\n0.211121 0.862732 0.237976\n0.242676 0.864227 0.237335\n0.276276 0.865692 0.236633\n0.312164 0.867218 0.235992\n0.350006 0.868652 0.235382\n0.389832 0.870117 0.234711\n0.431305 0.871582 0.234161\n0.474091 0.872955 0.233612\n0.518066 0.874390 0.233032\n0.562408 0.875793 0.232880\n0.605408 0.877167 0.232880\n0.646515 0.878510 0.232880\n0.685364 0.879883 0.232880\n0.721619 0.881226 0.232880\n0.754974 0.882507 0.232880\n0.785309 0.883820 0.232880\n0.812836 0.885101 0.232880\n0.837738 0.886383 0.232880\n0.860260 0.887634 0.232880\n0.880768 0.888855 0.232880\n0.899475 0.890076 0.232880\n0.916412 0.891235 0.232880\n0.931824 0.892456 0.232880\n0.945801 0.893585 0.232880\n0.958466 0.894745 0.232880\n0.969910 0.895874 0.232880\n0.980072 0.896942 0.232880\n0.989105 0.898010 0.232880\n0.104401 0.879059 0.239410\n0.129913 0.880493 0.238708\n0.156708 0.881805 0.238007\n0.185028 0.883179 0.237335\n0.214966 0.884583 0.236664\n0.246796 0.885925 0.236023\n0.280640 0.887268 0.235382\n0.316772 0.888611 0.234772\n0.354889 0.889923 0.234161\n0.394928 0.891205 0.233612\n0.436554 0.892517 0.233032\n0.479462 0.893768 0.232880\n0.523529 0.895050 0.232880\n0.567688 0.896271 0.232880\n0.610504 0.897522 0.232880\n0.651306 0.898743 0.232880\n0.689850 0.899963 0.232880\n0.725708 0.901154 0.232880\n0.758759 0.902313 0.232880\n0.788696 0.903473 0.232880\n0.815826 0.904633 0.232880\n0.840424 0.905762 0.232880\n0.862701 0.906891 0.232880\n0.882965 0.907959 0.232880\n0.901428 0.909058 0.232880\n0.918152 0.910095 0.232880\n0.933411 0.911163 0.232880\n0.947235 0.912140 0.232880\n0.959747 0.913147 0.232880\n0.971008 0.914154 0.232880\n0.981049 0.915161 0.232880\n0.989929 0.916077 0.232880\n0.107544 0.899323 0.238037\n0.133240 0.900604 0.237366\n0.160187 0.901825 0.236664\n0.188690 0.903107 0.236023\n0.218903 0.904297 0.235413\n0.250916 0.905518 0.234802\n0.285095 0.906738 0.234192\n0.321442 0.907928 0.233643\n0.359741 0.909119 0.233063\n0.399933 0.910278 0.232880\n0.441742 0.911438 0.232880\n0.484833 0.912537 0.232880\n0.528961 0.913666 0.232880\n0.572906 0.914825 0.232880\n0.615479 0.915924 0.232880\n0.656036 0.917023 0.232880\n0.694214 0.918060 0.232880\n0.729736 0.919159 0.232880\n0.762390 0.920197 0.232880\n0.791931 0.921234 0.232880\n0.818756 0.922241 0.232880\n0.843048 0.923248 0.232880\n0.865051 0.924225 0.232880\n0.885101 0.925201 0.232880\n0.903290 0.926147 0.232880\n0.919861 0.927094 0.232880\n0.934937 0.928009 0.232880\n0.948578 0.928894 0.232880\n0.960968 0.929810 0.232880\n0.972076 0.930664 0.232880\n0.981995 0.931488 0.232880\n0.990753 0.932373 0.232880\n0.110748 0.917633 0.236694\n0.136566 0.918762 0.236053\n0.163696 0.919861 0.235443\n0.192383 0.920990 0.234802\n0.222778 0.922119 0.234192\n0.255035 0.923187 0.233643\n0.289429 0.924255 0.233063\n0.326050 0.925354 0.232880\n0.364563 0.926392 0.232880\n0.404968 0.927460 0.232880\n0.446899 0.928467 0.232880\n0.490112 0.929504 0.232880\n0.534241 0.930511 0.232880\n0.578094 0.931488 0.232880\n0.620392 0.932526 0.232880\n0.660675 0.933502 0.232880\n0.698486 0.934418 0.232880\n0.733673 0.935394 0.232880\n0.765900 0.936310 0.232880\n0.795074 0.937195 0.232880\n0.821594 0.938110 0.232880\n0.845551 0.939026 0.232880\n0.867310 0.939880 0.232880\n0.887115 0.940765 0.232880\n0.905121 0.941559 0.232880\n0.921539 0.942383 0.232880\n0.936401 0.943207 0.232880\n0.949921 0.944031 0.232880\n0.962158 0.944763 0.232880\n0.973114 0.945557 0.232880\n0.982910 0.946289 0.232880\n0.991516 0.947021 0.232880\n0.113892 0.934174 0.235443\n0.139893 0.935181 0.234833\n0.167175 0.936157 0.234222\n0.196045 0.937164 0.233673\n0.226685 0.938171 0.233093\n0.259155 0.939117 0.232880\n0.293823 0.940125 0.232880\n0.330658 0.941071 0.232880\n0.369385 0.942017 0.232880\n0.409973 0.942932 0.232880\n0.451965 0.943878 0.232880\n0.495300 0.944763 0.232880\n0.539520 0.945679 0.232880\n0.583130 0.946564 0.232880\n0.625153 0.947418 0.232880\n0.665100 0.948303 0.232880\n0.702606 0.949158 0.232880\n0.737427 0.949951 0.232880\n0.769287 0.950806 0.232880\n0.798126 0.951569 0.232880\n0.824280 0.952393 0.232880\n0.847992 0.953125 0.232880\n0.869507 0.953918 0.232880\n0.889099 0.954681 0.232880\n0.906891 0.955414 0.232880\n0.923096 0.956146 0.232880\n0.937836 0.956848 0.232880\n0.951172 0.957520 0.232880\n0.963226 0.958221 0.232880\n0.974060 0.958893 0.232880\n0.983734 0.959534 0.232880\n0.992249 0.960175 0.232880\n0.117065 0.949005 0.234253\n0.143188 0.949921 0.233673\n0.170654 0.950806 0.233124\n0.199738 0.951721 0.232880\n0.230560 0.952606 0.232880\n0.263275 0.953491 0.232880\n0.298187 0.954346 0.232880\n0.335205 0.955170 0.232880\n0.374176 0.956024 0.232880\n0.414886 0.956848 0.232880\n0.457062 0.957642 0.232880\n0.500427 0.958466 0.232880\n0.544647 0.959259 0.232880\n0.588074 0.960022 0.232880\n0.629822 0.960815 0.232880\n0.669464 0.961548 0.232880\n0.706635 0.962311 0.232880\n0.741089 0.963043 0.232880\n0.772583 0.963776 0.232880\n0.801086 0.964447 0.232880\n0.826904 0.965179 0.232880\n0.850342 0.965820 0.232880\n0.871613 0.966522 0.232880\n0.890961 0.967194 0.232880\n0.908569 0.967804 0.232880\n0.924591 0.968445 0.232880\n0.939148 0.969025 0.232880\n0.952332 0.969635 0.232880\n0.964294 0.970245 0.232880\n0.975006 0.970795 0.232880\n0.984528 0.971375 0.232880\n0.992889 0.971893 0.232880\n0.120239 0.962341 0.233124\n0.146515 0.963135 0.232880\n0.174164 0.963928 0.232880\n0.203369 0.964752 0.232880\n0.234436 0.965515 0.232880\n0.267365 0.966278 0.232880\n0.302521 0.967041 0.232880\n0.339752 0.967773 0.232880\n0.378876 0.968506 0.232880\n0.419769 0.969269 0.232880\n0.462036 0.969971 0.232880\n0.505463 0.970673 0.232880\n0.549622 0.971375 0.232880\n0.592834 0.972076 0.232880\n0.634369 0.972748 0.232880\n0.673676 0.973419 0.232880\n0.710541 0.974030 0.232880\n0.744598 0.974670 0.232880\n0.775696 0.975281 0.232880\n0.803894 0.975922 0.232880\n0.829437 0.976532 0.232880\n0.852570 0.977081 0.232880\n0.873627 0.977692 0.232880\n0.892761 0.978271 0.232880\n0.910187 0.978821 0.232880\n0.925995 0.979340 0.232880\n0.940430 0.979858 0.232880\n0.953491 0.980377 0.232880\n0.965302 0.980896 0.232880\n0.975861 0.981354 0.232880\n0.985291 0.981842 0.232880\n0.993561 0.982300 0.232880\n0.040894 0.002136 0.307648\n0.062622 0.002808 0.307312\n0.085388 0.003571 0.306915\n0.109192 0.004333 0.306519\n0.134155 0.005096 0.306091\n0.160431 0.005981 0.305603\n0.188171 0.006805 0.305084\n0.217529 0.007690 0.304596\n0.248688 0.008575 0.304077\n0.281982 0.009552 0.303497\n0.317291 0.010498 0.302948\n0.354706 0.011475 0.302338\n0.393951 0.012482 0.301727\n0.434814 0.013489 0.301056\n0.477081 0.014587 0.300385\n0.520386 0.015656 0.299713\n0.564087 0.016754 0.298950\n0.606506 0.017914 0.298248\n0.647095 0.019012 0.297516\n0.685547 0.020203 0.296814\n0.721466 0.021423 0.296051\n0.754578 0.022614 0.295258\n0.784790 0.023865 0.294464\n0.812164 0.025116 0.293671\n0.837067 0.026398 0.292877\n0.859650 0.027710 0.292023\n0.880157 0.028992 0.291229\n0.898865 0.030334 0.290405\n0.915924 0.031708 0.289520\n0.931427 0.033051 0.288727\n0.945496 0.034454 0.287872\n0.958252 0.035889 0.287018\n0.042297 0.023132 0.306915\n0.064148 0.023956 0.306549\n0.087006 0.024780 0.306091\n0.110962 0.025635 0.305634\n0.136047 0.026489 0.305145\n0.162506 0.027435 0.304596\n0.190460 0.028381 0.304077\n0.220001 0.029327 0.303497\n0.251465 0.030334 0.302948\n0.284912 0.031311 0.302399\n0.320526 0.032379 0.301727\n0.358185 0.033447 0.301056\n0.397583 0.034546 0.300415\n0.438690 0.035675 0.299713\n0.481232 0.036835 0.298950\n0.524628 0.037994 0.298279\n0.568329 0.039185 0.297546\n0.610718 0.040405 0.296814\n0.651154 0.041656 0.296082\n0.689392 0.042908 0.295288\n0.725067 0.044189 0.294495\n0.757965 0.045502 0.293671\n0.787933 0.046844 0.292877\n0.815002 0.048157 0.292053\n0.839661 0.049561 0.291229\n0.862030 0.050934 0.290405\n0.882385 0.052338 0.289581\n0.900879 0.053772 0.288727\n0.917786 0.055206 0.287903\n0.933105 0.056641 0.287048\n0.947052 0.058136 0.286194\n0.959686 0.059601 0.285370\n0.043762 0.045166 0.306091\n0.065735 0.046021 0.305634\n0.088806 0.046936 0.305145\n0.112854 0.047913 0.304657\n0.138123 0.048889 0.304108\n0.164734 0.049896 0.303528\n0.192871 0.050934 0.302948\n0.222656 0.051971 0.302399\n0.254333 0.053070 0.301727\n0.288055 0.054138 0.301086\n0.323944 0.055298 0.300415\n0.361847 0.056519 0.299713\n0.401489 0.057648 0.299042\n0.442841 0.058899 0.298309\n0.485443 0.060120 0.297577\n0.529114 0.061401 0.296844\n0.572815 0.062714 0.296082\n0.615021 0.063995 0.295288\n0.655334 0.065338 0.294525\n0.693390 0.066711 0.293701\n0.728790 0.068024 0.292908\n0.761383 0.069458 0.292084\n0.791046 0.070892 0.291260\n0.817932 0.072327 0.290436\n0.842316 0.073822 0.289612\n0.864471 0.075287 0.288757\n0.884583 0.076782 0.287933\n0.902985 0.078308 0.287079\n0.919678 0.079865 0.286224\n0.934875 0.081360 0.285400\n0.948669 0.082947 0.284515\n0.961151 0.084534 0.283630\n0.045380 0.068237 0.305176\n0.067535 0.069214 0.304657\n0.090668 0.070251 0.304108\n0.114868 0.071289 0.303528\n0.140320 0.072327 0.302979\n0.167114 0.073456 0.302399\n0.195404 0.074554 0.301788\n0.225403 0.075714 0.301086\n0.257294 0.076904 0.300446\n0.291321 0.078125 0.299744\n0.327484 0.079346 0.299072\n0.365631 0.080658 0.298309\n0.405518 0.081909 0.297577\n0.447113 0.083252 0.296875\n0.489960 0.084595 0.296112\n0.533691 0.085938 0.295319\n0.577362 0.087341 0.294525\n0.619476 0.088806 0.293701\n0.659546 0.090210 0.292999\n0.697418 0.091675 0.292084\n0.732544 0.093140 0.291321\n0.764893 0.094666 0.290497\n0.794281 0.096191 0.289612\n0.820831 0.097717 0.288818\n0.845001 0.099335 0.287964\n0.866943 0.100861 0.287079\n0.886902 0.102478 0.286255\n0.905060 0.104095 0.285400\n0.921600 0.105774 0.284515\n0.936615 0.107361 0.283691\n0.950226 0.109070 0.282776\n0.962555 0.110748 0.281982\n0.047119 0.092468 0.304108\n0.069366 0.093506 0.303589\n0.092651 0.094666 0.303040\n0.117035 0.095825 0.302429\n0.142609 0.096985 0.301819\n0.169617 0.098206 0.301117\n0.198090 0.099396 0.300476\n0.228363 0.100708 0.299774\n0.260498 0.102020 0.299072\n0.294769 0.103302 0.298370\n0.331207 0.104675 0.297668\n0.369598 0.106049 0.296875\n0.409760 0.107422 0.296143\n0.451508 0.108887 0.295319\n0.494507 0.110352 0.294617\n0.538452 0.111816 0.293793\n0.582001 0.113312 0.292999\n0.623932 0.114807 0.292175\n0.663940 0.116425 0.291321\n0.701538 0.117981 0.290527\n0.736389 0.119537 0.289673\n0.768433 0.121155 0.288879\n0.797485 0.122833 0.287964\n0.823792 0.124481 0.287140\n0.847717 0.126129 0.286285\n0.869415 0.127899 0.285431\n0.889160 0.129547 0.284546\n0.907135 0.131317 0.283691\n0.923431 0.132996 0.282806\n0.938354 0.134827 0.281982\n0.951813 0.136658 0.281128\n0.963989 0.138397 0.280304\n0.048950 0.118011 0.303040\n0.071350 0.119202 0.302429\n0.094757 0.120422 0.301819\n0.119293 0.121674 0.301117\n0.145081 0.122955 0.300476\n0.172211 0.124329 0.299774\n0.200928 0.125671 0.299103\n0.231384 0.127045 0.298370\n0.263855 0.128479 0.297668\n0.298370 0.129883 0.296906\n0.335052 0.131378 0.296143\n0.373749 0.132874 0.295380\n0.414124 0.134369 0.294647\n0.456085 0.135956 0.293823\n0.499207 0.137482 0.293030\n0.543304 0.139099 0.292206\n0.586792 0.140717 0.291382\n0.628540 0.142365 0.290558\n0.668304 0.144043 0.289703\n0.705658 0.145752 0.288879\n0.740265 0.147430 0.287994\n0.771973 0.149170 0.287170\n0.800720 0.151001 0.286285\n0.826752 0.152710 0.285461\n0.850403 0.154541 0.284607\n0.871887 0.156372 0.283722\n0.891418 0.158203 0.282867\n0.909241 0.160065 0.282013\n0.925354 0.161926 0.281158\n0.940063 0.163849 0.280304\n0.953400 0.165771 0.279449\n0.965454 0.167664 0.278595\n0.050903 0.144989 0.301819\n0.073395 0.146240 0.301147\n0.096954 0.147675 0.300476\n0.121643 0.149017 0.299835\n0.147583 0.150421 0.299133\n0.174988 0.151917 0.298401\n0.203888 0.153381 0.297699\n0.234558 0.154877 0.296936\n0.267303 0.156433 0.296204\n0.302094 0.157990 0.295441\n0.339020 0.159607 0.294647\n0.377991 0.161224 0.293823\n0.418610 0.162872 0.293060\n0.460754 0.164581 0.292206\n0.504028 0.166229 0.291412\n0.548218 0.167999 0.290558\n0.591644 0.169769 0.289703\n0.633240 0.171509 0.288910\n0.672791 0.173370 0.288055\n0.709869 0.175201 0.287170\n0.744141 0.177032 0.286316\n0.775574 0.178925 0.285461\n0.803986 0.180817 0.284637\n0.829742 0.182709 0.283752\n0.853149 0.184662 0.282867\n0.874329 0.186584 0.282074\n0.893677 0.188568 0.281189\n0.911285 0.190582 0.280334\n0.927246 0.192566 0.279480\n0.941803 0.194641 0.278625\n0.954987 0.196716 0.277802\n0.966858 0.198730 0.276947\n0.052917 0.173523 0.300507\n0.075531 0.175018 0.299835\n0.099304 0.176514 0.299133\n0.124115 0.178009 0.298462\n0.150238 0.179596 0.297729\n0.177826 0.181183 0.296936\n0.206940 0.182770 0.296265\n0.237915 0.184479 0.295441\n0.270874 0.186157 0.294678\n0.306000 0.187866 0.293854\n0.343170 0.189606 0.293060\n0.382324 0.191315 0.292236\n0.423218 0.193146 0.291443\n0.465576 0.195007 0.290588\n0.509064 0.196808 0.289764\n0.553314 0.198730 0.288940\n0.596558 0.200623 0.288055\n0.637939 0.202515 0.287231\n0.677246 0.204529 0.286346\n0.714142 0.206512 0.285492\n0.748077 0.208466 0.284668\n0.779144 0.210480 0.283783\n0.807251 0.212555 0.282928\n0.832703 0.214600 0.282074\n0.855835 0.216705 0.281250\n0.876831 0.218781 0.280365\n0.895966 0.220917 0.279480\n0.913361 0.223083 0.278625\n0.929138 0.225220 0.277832\n0.943512 0.227417 0.276978\n0.956543 0.229706 0.276154\n0.968262 0.231873 0.275360\n0.055054 0.203949 0.299164\n0.077820 0.205566 0.298462\n0.101685 0.207245 0.297729\n0.126709 0.208893 0.296997\n0.153015 0.210602 0.296265\n0.180756 0.212341 0.295471\n0.210114 0.214142 0.294708\n0.241333 0.215973 0.293884\n0.274597 0.217773 0.293091\n0.309937 0.219635 0.292267\n0.347443 0.221527 0.291443\n0.386780 0.223419 0.290649\n0.427948 0.225403 0.289795\n0.470520 0.227417 0.288940\n0.514191 0.229401 0.288116\n0.558411 0.231445 0.287262\n0.601532 0.233551 0.286346\n0.642761 0.235596 0.285553\n0.681854 0.237762 0.284668\n0.718353 0.239899 0.283783\n0.752014 0.242035 0.282959\n0.782715 0.244232 0.282104\n0.810486 0.246429 0.281281\n0.835663 0.248657 0.280396\n0.858582 0.250977 0.279541\n0.879303 0.253235 0.278717\n0.898224 0.255493 0.277863\n0.915436 0.257874 0.276978\n0.931030 0.260162 0.276184\n0.945221 0.262512 0.275360\n0.958069 0.264893 0.274567\n0.969635 0.267273 0.273743\n0.057220 0.236389 0.297760\n0.080200 0.238220 0.296997\n0.104187 0.240021 0.296295\n0.129364 0.241852 0.295502\n0.155884 0.243744 0.294708\n0.183838 0.245636 0.293884\n0.213440 0.247589 0.293121\n0.244873 0.249603 0.292267\n0.278351 0.251556 0.291473\n0.314056 0.253632 0.290649\n0.351868 0.255737 0.289795\n0.391449 0.257812 0.288971\n0.432831 0.259918 0.288147\n0.475586 0.262146 0.287262\n0.519379 0.264252 0.286407\n0.563599 0.266541 0.285553\n0.606567 0.268799 0.284698\n0.647583 0.271027 0.283813\n0.686371 0.273346 0.282959\n0.722595 0.275665 0.282104\n0.755951 0.278046 0.281281\n0.786285 0.280396 0.280396\n0.813721 0.282715 0.279572\n0.838654 0.285187 0.278717\n0.861267 0.287628 0.277863\n0.881805 0.290070 0.277039\n0.900452 0.292572 0.276215\n0.917480 0.295074 0.275391\n0.932922 0.297546 0.274597\n0.946930 0.300140 0.273743\n0.959625 0.302704 0.273010\n0.971008 0.305176 0.272186\n0.059540 0.271179 0.296326\n0.082642 0.273163 0.295502\n0.106812 0.275177 0.294739\n0.132141 0.277130 0.293945\n0.158813 0.279236 0.293121\n0.186981 0.281342 0.292328\n0.216797 0.283478 0.291504\n0.248535 0.285645 0.290680\n0.282288 0.287811 0.289825\n0.318268 0.290070 0.289001\n0.356323 0.292358 0.288147\n0.396210 0.294647 0.287292\n0.437775 0.296936 0.286438\n0.480743 0.299347 0.285583\n0.524719 0.301666 0.284729\n0.568848 0.304108 0.283875\n0.611633 0.306580 0.282990\n0.652435 0.309021 0.282196\n0.690948 0.311523 0.281311\n0.726807 0.313995 0.280426\n0.759827 0.316528 0.279572\n0.789856 0.319122 0.278748\n0.816986 0.321655 0.277893\n0.841614 0.324249 0.277069\n0.863983 0.326935 0.276215\n0.884247 0.329498 0.275421\n0.902710 0.332153 0.274628\n0.919525 0.334839 0.273773\n0.934753 0.337494 0.273010\n0.948608 0.340210 0.272217\n0.961121 0.342834 0.271423\n0.972351 0.345581 0.270691\n0.061920 0.308441 0.294769\n0.085144 0.310638 0.293976\n0.109497 0.312805 0.293152\n0.134979 0.314972 0.292358\n0.161865 0.317261 0.291504\n0.190216 0.319519 0.290710\n0.220306 0.321899 0.289856\n0.252289 0.324280 0.289001\n0.286316 0.326599 0.288208\n0.322632 0.329071 0.287323\n0.360992 0.331512 0.286499\n0.401062 0.333984 0.285614\n0.442841 0.336517 0.284729\n0.485992 0.339081 0.283875\n0.530090 0.341583 0.283020\n0.574127 0.344177 0.282196\n0.616730 0.346832 0.281311\n0.657318 0.349396 0.280487\n0.695557 0.352112 0.279633\n0.731079 0.354736 0.278809\n0.763763 0.357483 0.277924\n0.793427 0.360199 0.277069\n0.820190 0.362946 0.276276\n0.844543 0.365662 0.275421\n0.866608 0.368500 0.274628\n0.886658 0.371216 0.273834\n0.904907 0.374023 0.273041\n0.921539 0.376892 0.272247\n0.936584 0.379669 0.271454\n0.950256 0.382538 0.270691\n0.962585 0.385315 0.269989\n0.973724 0.388214 0.269226\n0.064423 0.348175 0.293243\n0.087799 0.350555 0.292358\n0.112274 0.352905 0.291534\n0.137939 0.355286 0.290710\n0.165039 0.357727 0.289856\n0.193604 0.360168 0.289093\n0.223907 0.362671 0.288208\n0.256165 0.365234 0.287354\n0.290497 0.367767 0.286530\n0.327057 0.370422 0.285645\n0.365662 0.373047 0.284790\n0.406006 0.375671 0.283966\n0.448029 0.378387 0.283081\n0.491333 0.381073 0.282227\n0.535522 0.383789 0.281342\n0.579468 0.386536 0.280487\n0.621887 0.389282 0.279663\n0.662231 0.392029 0.278809\n0.700165 0.394958 0.278015\n0.735352 0.397705 0.277130\n0.767639 0.400574 0.276276\n0.796936 0.403503 0.275482\n0.823395 0.406311 0.274658\n0.847443 0.409271 0.273834\n0.869232 0.412201 0.273071\n0.889069 0.415039 0.272278\n0.907104 0.418030 0.271454\n0.923492 0.420898 0.270752\n0.938385 0.423889 0.269989\n0.951904 0.426910 0.269226\n0.964081 0.429749 0.268524\n0.975006 0.432770 0.267822\n0.066956 0.390137 0.291626\n0.090454 0.392609 0.290771\n0.115112 0.395233 0.289886\n0.140961 0.397736 0.289093\n0.168243 0.400391 0.288239\n0.197052 0.402954 0.287384\n0.227600 0.405670 0.286530\n0.260132 0.408356 0.285645\n0.294769 0.411072 0.284851\n0.331604 0.413818 0.283966\n0.370453 0.416656 0.283081\n0.411072 0.419403 0.282257\n0.453278 0.422272 0.281372\n0.496674 0.425018 0.280518\n0.541016 0.427979 0.279694\n0.584839 0.430847 0.278839\n0.626984 0.433777 0.278046\n0.667053 0.436737 0.277130\n0.704773 0.439667 0.276337\n0.739563 0.442596 0.275513\n0.771484 0.445618 0.274689\n0.800415 0.448669 0.273865\n0.826538 0.451538 0.273102\n0.850311 0.454590 0.272278\n0.871887 0.457672 0.271545\n0.891418 0.460632 0.270752\n0.909271 0.463715 0.270020\n0.925446 0.466736 0.269287\n0.940186 0.469788 0.268524\n0.953522 0.472870 0.267822\n0.965515 0.475861 0.267151\n0.976318 0.478973 0.266479\n0.069550 0.434082 0.289948\n0.093231 0.436768 0.289154\n0.118011 0.439392 0.288269\n0.144073 0.442139 0.287384\n0.171539 0.444977 0.286560\n0.200531 0.447662 0.285675\n0.231384 0.450531 0.284851\n0.264191 0.453369 0.283997\n0.299103 0.456146 0.283142\n0.336273 0.459137 0.282257\n0.375336 0.462036 0.281372\n0.416138 0.464905 0.280548\n0.458618 0.467926 0.279694\n0.502136 0.470825 0.278870\n0.546570 0.473846 0.278046\n0.590271 0.476898 0.277191\n0.632141 0.479889 0.276398\n0.671967 0.482910 0.275513\n0.709290 0.486023 0.274689\n0.743774 0.489075 0.273895\n0.775330 0.492096 0.273102\n0.803894 0.495300 0.272308\n0.829712 0.498322 0.271576\n0.853180 0.501434 0.270782\n0.874420 0.504517 0.270050\n0.893799 0.507629 0.269318\n0.911377 0.510773 0.268524\n0.927399 0.513855 0.267853\n0.941925 0.516998 0.267151\n0.955109 0.520142 0.266479\n0.966949 0.523132 0.265808\n0.977570 0.526337 0.265198\n0.072235 0.479645 0.288269\n0.096100 0.482483 0.287445\n0.121002 0.485260 0.286591\n0.147217 0.488129 0.285706\n0.174927 0.491058 0.284882\n0.204163 0.493927 0.284058\n0.235199 0.496857 0.283173\n0.268280 0.499847 0.282288\n0.303528 0.502808 0.281433\n0.340942 0.505859 0.280548\n0.380310 0.508881 0.279724\n0.421326 0.511841 0.278870\n0.463959 0.514984 0.278076\n0.507690 0.517944 0.277222\n0.552124 0.521088 0.276398\n0.595612 0.524200 0.275574\n0.637268 0.527252 0.274719\n0.676819 0.530365 0.273895\n0.713806 0.533539 0.273163\n0.747925 0.536652 0.272369\n0.779053 0.539825 0.271576\n0.807281 0.542938 0.270782\n0.832794 0.545990 0.270050\n0.855988 0.549194 0.269318\n0.876984 0.552216 0.268646\n0.896118 0.555328 0.267883\n0.913483 0.558502 0.267212\n0.929321 0.561523 0.266541\n0.943665 0.564606 0.265839\n0.956635 0.567688 0.265198\n0.968353 0.570679 0.264618\n0.978821 0.573730 0.263977\n0.074982 0.526611 0.286591\n0.098969 0.529572 0.285767\n0.124084 0.532410 0.284912\n0.150482 0.535400 0.284058\n0.178375 0.538391 0.283173\n0.207855 0.541290 0.282349\n0.239197 0.544373 0.281464\n0.272491 0.547363 0.280579\n0.308044 0.550354 0.279785\n0.345764 0.553406 0.278931\n0.385315 0.556488 0.278076\n0.426636 0.559479 0.277222\n0.469360 0.562561 0.276428\n0.513275 0.565552 0.275604\n0.557678 0.568634 0.274780\n0.600983 0.571716 0.273956\n0.642365 0.574738 0.273193\n0.681671 0.577789 0.272369\n0.718323 0.580841 0.271606\n0.752045 0.583862 0.270874\n0.782837 0.586914 0.270081\n0.810669 0.589935 0.269348\n0.835846 0.592926 0.268646\n0.858734 0.595917 0.267883\n0.879486 0.598877 0.267273\n0.898376 0.601868 0.266571\n0.915588 0.604828 0.265839\n0.931183 0.607727 0.265228\n0.945343 0.610718 0.264618\n0.958130 0.613647 0.263977\n0.969666 0.616516 0.263733\n0.979980 0.619385 0.263733\n0.077759 0.573639 0.284943\n0.101898 0.576538 0.284088\n0.127197 0.579376 0.283203\n0.153778 0.582306 0.282410\n0.181885 0.585266 0.281525\n0.211578 0.588104 0.280609\n0.243195 0.591064 0.279785\n0.276855 0.594025 0.278961\n0.312653 0.596924 0.278107\n0.350586 0.599854 0.277252\n0.390350 0.602783 0.276459\n0.431946 0.605774 0.275635\n0.474884 0.608734 0.274780\n0.518860 0.611633 0.274017\n0.563232 0.614532 0.273193\n0.606354 0.617554 0.272400\n0.647522 0.620422 0.271637\n0.686401 0.623322 0.270874\n0.722717 0.626312 0.270081\n0.756104 0.629150 0.269348\n0.786499 0.632019 0.268646\n0.813995 0.634918 0.267914\n0.838867 0.637756 0.267273\n0.861450 0.640656 0.266571\n0.881958 0.643402 0.265930\n0.900604 0.646240 0.265228\n0.917603 0.649017 0.264648\n0.932983 0.651733 0.264008\n0.946991 0.654572 0.263733\n0.959656 0.657318 0.263733\n0.971008 0.659912 0.263733\n0.981171 0.662659 0.263733\n0.080658 0.619049 0.283234\n0.104919 0.621918 0.282410\n0.130371 0.624664 0.281555\n0.157166 0.627441 0.280640\n0.185486 0.630280 0.279816\n0.215424 0.633026 0.278992\n0.247284 0.635895 0.278137\n0.281189 0.638702 0.277252\n0.317261 0.641479 0.276459\n0.355499 0.644287 0.275635\n0.395508 0.647064 0.274811\n0.437256 0.649902 0.274048\n0.480377 0.652710 0.273224\n0.524475 0.655457 0.272430\n0.568787 0.658264 0.271667\n0.611664 0.661072 0.270874\n0.652588 0.663788 0.270111\n0.691193 0.666534 0.269409\n0.727142 0.669281 0.268677\n0.760071 0.671967 0.267944\n0.790131 0.674713 0.267273\n0.817230 0.677338 0.266602\n0.841797 0.680054 0.265930\n0.864105 0.682678 0.265289\n0.884399 0.685303 0.264648\n0.902832 0.687927 0.264099\n0.919586 0.690552 0.263733\n0.934784 0.693054 0.263733\n0.948608 0.695648 0.263733\n0.961090 0.698181 0.263733\n0.972290 0.700592 0.263733\n0.982330 0.703125 0.263733\n0.083557 0.662262 0.281555\n0.108032 0.664917 0.280640\n0.133606 0.667572 0.279846\n0.160614 0.670258 0.278992\n0.189148 0.672974 0.278137\n0.219269 0.675568 0.277283\n0.251434 0.678223 0.276520\n0.285583 0.680786 0.275665\n0.321991 0.683502 0.274872\n0.360443 0.686157 0.274048\n0.400726 0.688751 0.273254\n0.442657 0.691406 0.272430\n0.485962 0.694031 0.271667\n0.530151 0.696594 0.270905\n0.574310 0.699188 0.270142\n0.616974 0.701813 0.269409\n0.657623 0.704315 0.268707\n0.695923 0.706909 0.267944\n0.731445 0.709442 0.267303\n0.764008 0.711914 0.266602\n0.793671 0.714417 0.265961\n0.820404 0.716858 0.265289\n0.844696 0.719360 0.264709\n0.866760 0.721771 0.264099\n0.886780 0.724152 0.263733\n0.904999 0.726593 0.263733\n0.921539 0.728943 0.263733\n0.936584 0.731262 0.263733\n0.950195 0.733582 0.263733\n0.962494 0.735901 0.263733\n0.973541 0.738098 0.263733\n0.983398 0.740356 0.263733\n0.086517 0.702759 0.279907\n0.111084 0.705261 0.279022\n0.136902 0.707733 0.278168\n0.164093 0.710266 0.277344\n0.192841 0.712738 0.276520\n0.223206 0.715179 0.275696\n0.255646 0.717651 0.274902\n0.290039 0.720062 0.274078\n0.326752 0.722565 0.273254\n0.365448 0.725037 0.272461\n0.405914 0.727386 0.271698\n0.448090 0.729828 0.270935\n0.491486 0.732300 0.270142\n0.535767 0.734619 0.269440\n0.579803 0.737000 0.268707\n0.622223 0.739410 0.267975\n0.662567 0.741669 0.267334\n0.700500 0.744019 0.266632\n0.735626 0.746307 0.265991\n0.767853 0.748596 0.265320\n0.797119 0.750885 0.264709\n0.823578 0.753082 0.264130\n0.847565 0.755310 0.263733\n0.869324 0.757538 0.263733\n0.889069 0.759674 0.263733\n0.907074 0.761871 0.263733\n0.923431 0.763977 0.263733\n0.938263 0.766083 0.263733\n0.951721 0.768127 0.263733\n0.963867 0.770111 0.263733\n0.974762 0.772186 0.263733\n0.984467 0.774170 0.263733\n0.089508 0.740173 0.278198\n0.114288 0.742462 0.277344\n0.140198 0.744751 0.276581\n0.167633 0.747009 0.275696\n0.196564 0.749359 0.274902\n0.227203 0.751587 0.274078\n0.259827 0.753815 0.273315\n0.294617 0.756073 0.272491\n0.331512 0.758331 0.271698\n0.370483 0.760529 0.270966\n0.411133 0.762756 0.270233\n0.453461 0.764954 0.269470\n0.497009 0.767120 0.268768\n0.541412 0.769257 0.267975\n0.585205 0.771423 0.267334\n0.627411 0.773590 0.266632\n0.667480 0.775635 0.265991\n0.705048 0.777740 0.265320\n0.739838 0.779755 0.264740\n0.771698 0.781830 0.264130\n0.800537 0.783875 0.263733\n0.826630 0.785828 0.263733\n0.850342 0.787842 0.263733\n0.871826 0.789795 0.263733\n0.891327 0.791687 0.263733\n0.909119 0.793610 0.263733\n0.925262 0.795532 0.263733\n0.939941 0.797333 0.263733\n0.953217 0.799225 0.263733\n0.965210 0.800995 0.263733\n0.975983 0.802765 0.263733\n0.985504 0.804565 0.263733\n0.092560 0.774170 0.276581\n0.117462 0.776306 0.275726\n0.143616 0.778351 0.274933\n0.171204 0.780426 0.274109\n0.200287 0.782440 0.273346\n0.231201 0.784515 0.272491\n0.264130 0.786560 0.271759\n0.299133 0.788574 0.270966\n0.336365 0.790588 0.270264\n0.375549 0.792633 0.269470\n0.416443 0.794556 0.268799\n0.458923 0.796539 0.268066\n0.502625 0.798492 0.267365\n0.547028 0.800415 0.266663\n0.590607 0.802368 0.266022\n0.632477 0.804230 0.265350\n0.672272 0.806091 0.264771\n0.709503 0.808014 0.264130\n0.743927 0.809814 0.263733\n0.775391 0.811646 0.263733\n0.803894 0.813477 0.263733\n0.829651 0.815247 0.263733\n0.853027 0.817017 0.263733\n0.874268 0.818756 0.263733\n0.893555 0.820435 0.263733\n0.911102 0.822144 0.263733\n0.927063 0.823792 0.263733\n0.941528 0.825470 0.263733\n0.954651 0.827087 0.263733\n0.966492 0.828674 0.263733\n0.977081 0.830292 0.263733\n0.986511 0.831848 0.263733\n0.095642 0.804840 0.274963\n0.120697 0.806763 0.274109\n0.147003 0.808563 0.273346\n0.174774 0.810455 0.272522\n0.204102 0.812256 0.271820\n0.235229 0.814178 0.271027\n0.268433 0.815979 0.270264\n0.303741 0.817749 0.269501\n0.341187 0.819611 0.268799\n0.380615 0.821411 0.268066\n0.421692 0.823151 0.267395\n0.464325 0.824921 0.266693\n0.508118 0.826691 0.266022\n0.552521 0.828400 0.265350\n0.595917 0.830170 0.264771\n0.637512 0.831818 0.264160\n0.676971 0.833496 0.263733\n0.713959 0.835205 0.263733\n0.747955 0.836823 0.263733\n0.778992 0.838409 0.263733\n0.807129 0.840057 0.263733\n0.832581 0.841644 0.263733\n0.855652 0.843231 0.263733\n0.876648 0.844788 0.263733\n0.895721 0.846283 0.263733\n0.913025 0.847809 0.263733\n0.928772 0.849274 0.263733\n0.943115 0.850739 0.263733\n0.956085 0.852173 0.263733\n0.967743 0.853577 0.263733\n0.978210 0.854980 0.263733\n0.987457 0.856384 0.263733\n0.098755 0.832367 0.273376\n0.123932 0.834045 0.272614\n0.150421 0.835754 0.271851\n0.178406 0.837463 0.271027\n0.207947 0.839111 0.270294\n0.239380 0.840759 0.269531\n0.272766 0.842438 0.268829\n0.308350 0.844055 0.268097\n0.346069 0.845673 0.267395\n0.385681 0.847321 0.266693\n0.426971 0.848907 0.266052\n0.469757 0.850494 0.265411\n0.513611 0.852020 0.264801\n0.557953 0.853577 0.264160\n0.601196 0.855164 0.263733\n0.642487 0.856628 0.263733\n0.681702 0.858154 0.263733\n0.718262 0.859680 0.263733\n0.751862 0.861084 0.263733\n0.782562 0.862579 0.263733\n0.810272 0.863983 0.263733\n0.835419 0.865417 0.263733\n0.858246 0.866821 0.263733\n0.878967 0.868195 0.263733\n0.897797 0.869537 0.263733\n0.914948 0.870911 0.263733\n0.930481 0.872192 0.263733\n0.944641 0.873505 0.263733\n0.957428 0.874786 0.263733\n0.968964 0.876038 0.263733\n0.979279 0.877258 0.263733\n0.988403 0.878479 0.263733\n0.101837 0.857208 0.271851\n0.127228 0.858704 0.271057\n0.153900 0.860260 0.270325\n0.182068 0.861786 0.269531\n0.211792 0.863281 0.268860\n0.243469 0.864777 0.268127\n0.277130 0.866272 0.267456\n0.312958 0.867737 0.266724\n0.350922 0.869171 0.266052\n0.390778 0.870636 0.265411\n0.432251 0.872070 0.264801\n0.475159 0.873505 0.264191\n0.519073 0.874847 0.263733\n0.563385 0.876282 0.263733\n0.606384 0.877686 0.263733\n0.647400 0.878998 0.263733\n0.686249 0.880371 0.263733\n0.722382 0.881714 0.263733\n0.755707 0.883026 0.263733\n0.785980 0.884308 0.263733\n0.813354 0.885590 0.263733\n0.838196 0.886841 0.263733\n0.860748 0.888062 0.263733\n0.881195 0.889282 0.263733\n0.899780 0.890503 0.263733\n0.916748 0.891724 0.263733\n0.932098 0.892883 0.263733\n0.946075 0.894012 0.263733\n0.958710 0.895172 0.263733\n0.970093 0.896271 0.263733\n0.980286 0.897369 0.263733\n0.989288 0.898407 0.263733\n0.105011 0.879578 0.270325\n0.130524 0.880981 0.269592\n0.157410 0.882355 0.268860\n0.185699 0.883728 0.268127\n0.215698 0.885071 0.267456\n0.247559 0.886414 0.266724\n0.281525 0.887756 0.266083\n0.317627 0.889099 0.265442\n0.355774 0.890411 0.264801\n0.395844 0.891663 0.264221\n0.437469 0.892975 0.263733\n0.480530 0.894257 0.263733\n0.524567 0.895508 0.263733\n0.568726 0.896759 0.263733\n0.611450 0.898010 0.263733\n0.652252 0.899200 0.263733\n0.690704 0.900421 0.263733\n0.726562 0.901581 0.263733\n0.759430 0.902771 0.263733\n0.789368 0.903900 0.263733\n0.816406 0.905060 0.263733\n0.840851 0.906128 0.263733\n0.863190 0.907288 0.263733\n0.883362 0.908325 0.263733\n0.901733 0.909454 0.263733\n0.918518 0.910492 0.263733\n0.933716 0.911499 0.263733\n0.947510 0.912537 0.263733\n0.959991 0.913544 0.263733\n0.971191 0.914520 0.263733\n0.981262 0.915497 0.263733\n0.990082 0.916412 0.263733\n0.108185 0.899780 0.268890\n0.133820 0.901031 0.268158\n0.160858 0.902283 0.267487\n0.189392 0.903534 0.266754\n0.219574 0.904724 0.266113\n0.251709 0.905945 0.265472\n0.285889 0.907196 0.264832\n0.322266 0.908325 0.264221\n0.360657 0.909546 0.263733\n0.400879 0.910675 0.263733\n0.442688 0.911835 0.263733\n0.485840 0.912964 0.263733\n0.529907 0.914093 0.263733\n0.573975 0.915253 0.263733\n0.616425 0.916351 0.263733\n0.656891 0.917419 0.263733\n0.695068 0.918488 0.263733\n0.730530 0.919525 0.263733\n0.763031 0.920563 0.263733\n0.792572 0.921600 0.263733\n0.819275 0.922607 0.263733\n0.843506 0.923615 0.263733\n0.865509 0.924591 0.263733\n0.885468 0.925537 0.263733\n0.903656 0.926483 0.263733\n0.920166 0.927460 0.263733\n0.935211 0.928314 0.263733\n0.948853 0.929230 0.263733\n0.961182 0.930115 0.263733\n0.972290 0.930969 0.263733\n0.982178 0.931824 0.263733\n0.990906 0.932648 0.263733\n0.111328 0.918060 0.267487\n0.137146 0.919159 0.266815\n0.164368 0.920288 0.266113\n0.193085 0.921448 0.265472\n0.223450 0.922546 0.264862\n0.255829 0.923584 0.264252\n0.290253 0.924652 0.263733\n0.326843 0.925751 0.263733\n0.365509 0.926788 0.263733\n0.405853 0.927826 0.263733\n0.447815 0.928864 0.263733\n0.491089 0.929901 0.263733\n0.535217 0.930878 0.263733\n0.579071 0.931885 0.263733\n0.621338 0.932892 0.263733\n0.661469 0.933807 0.263733\n0.699249 0.934784 0.263733\n0.734406 0.935730 0.263733\n0.766479 0.936646 0.263733\n0.795685 0.937561 0.263733\n0.822052 0.938416 0.263733\n0.846039 0.939301 0.263733\n0.867767 0.940186 0.263733\n0.887512 0.941040 0.263733\n0.905457 0.941895 0.263733\n0.921814 0.942719 0.263733\n0.936676 0.943512 0.263733\n0.950134 0.944275 0.263733\n0.962341 0.945068 0.263733\n0.973297 0.945801 0.263733\n0.983063 0.946564 0.263733\n0.991638 0.947296 0.263733\n0.114502 0.934540 0.266144\n0.140503 0.935547 0.265533\n0.167877 0.936584 0.264862\n0.196777 0.937561 0.264252\n0.227356 0.938507 0.263733\n0.259949 0.939514 0.263733\n0.294647 0.940430 0.263733\n0.331482 0.941406 0.263733\n0.370300 0.942352 0.263733\n0.410858 0.943237 0.263733\n0.452972 0.944214 0.263733\n0.496277 0.945099 0.263733\n0.540497 0.945984 0.263733\n0.584045 0.946869 0.263733\n0.626068 0.947754 0.263733\n0.665894 0.948578 0.263733\n0.703430 0.949432 0.263733\n0.738098 0.950256 0.263733\n0.769867 0.951080 0.263733\n0.798737 0.951904 0.263733\n0.824768 0.952667 0.263733\n0.848419 0.953461 0.263733\n0.869934 0.954224 0.263733\n0.889435 0.954987 0.263733\n0.907196 0.955688 0.263733\n0.923370 0.956421 0.263733\n0.938049 0.957123 0.263733\n0.951385 0.957794 0.263733\n0.963440 0.958466 0.263733\n0.974243 0.959137 0.263733\n0.983887 0.959808 0.263733\n0.992371 0.960388 0.263733\n0.117676 0.949341 0.264893\n0.143799 0.950256 0.264282\n0.171326 0.951172 0.263733\n0.200378 0.952026 0.263733\n0.231232 0.952942 0.263733\n0.264099 0.953796 0.263733\n0.298950 0.954620 0.263733\n0.336060 0.955505 0.263733\n0.375092 0.956329 0.263733\n0.415741 0.957153 0.263733\n0.458008 0.957947 0.263733\n0.501434 0.958740 0.263733\n0.545532 0.959534 0.263733\n0.588989 0.960327 0.263733\n0.630646 0.961090 0.263733\n0.670258 0.961853 0.263733\n0.707397 0.962585 0.263733\n0.741699 0.963318 0.263733\n0.773132 0.964020 0.263733\n0.801636 0.964752 0.263733\n0.827362 0.965424 0.263733\n0.850769 0.966064 0.263733\n0.872009 0.966766 0.263733\n0.891266 0.967377 0.263733\n0.908875 0.968048 0.263733\n0.924896 0.968689 0.263733\n0.939392 0.969269 0.263733\n0.952576 0.969879 0.263733\n0.964447 0.970459 0.263733\n0.975159 0.971008 0.263733\n0.984680 0.971558 0.263733\n0.993011 0.972107 0.263733\n0.120850 0.962677 0.263733\n0.147095 0.963440 0.263733\n0.174835 0.964264 0.263733\n0.204071 0.965027 0.263733\n0.235107 0.965820 0.263733\n0.268158 0.966583 0.263733\n0.303314 0.967285 0.263733\n0.340576 0.968048 0.263733\n0.379761 0.968811 0.263733\n0.420624 0.969513 0.263733\n0.462952 0.970245 0.263733\n0.506439 0.970947 0.263733\n0.550537 0.971649 0.263733\n0.593750 0.972290 0.263733\n0.635162 0.972992 0.263733\n0.674469 0.973633 0.263733\n0.711243 0.974304 0.263733\n0.745209 0.974915 0.263733\n0.776306 0.975525 0.263733\n0.804413 0.976135 0.263733\n0.829865 0.976746 0.263733\n0.852997 0.977325 0.263733\n0.873993 0.977875 0.263733\n0.893097 0.978455 0.263733\n0.910461 0.979004 0.263733\n0.926270 0.979523 0.263733\n0.940674 0.980042 0.263733\n0.953705 0.980560 0.263733\n0.965454 0.981049 0.263733\n0.976044 0.981506 0.263733\n0.985443 0.982025 0.263733\n0.993683 0.982483 0.263733\n0.041107 0.002350 0.342682\n0.062897 0.003082 0.342316\n0.085693 0.003845 0.341949\n0.109467 0.004608 0.341461\n0.134491 0.005432 0.341003\n0.160797 0.006256 0.340515\n0.188568 0.007141 0.339996\n0.218018 0.008026 0.339417\n0.249207 0.008911 0.338898\n0.282501 0.009888 0.338287\n0.317902 0.010864 0.337585\n0.355347 0.011810 0.337006\n0.394623 0.012848 0.336334\n0.435547 0.013916 0.335602\n0.477783 0.014984 0.334900\n0.521149 0.016052 0.334198\n0.564941 0.017212 0.333466\n0.607239 0.018311 0.332672\n0.647858 0.019470 0.331940\n0.686188 0.020630 0.331116\n0.722137 0.021851 0.330322\n0.755219 0.023071 0.329498\n0.785339 0.024353 0.328674\n0.812714 0.025604 0.327759\n0.837524 0.026855 0.326965\n0.860077 0.028137 0.326080\n0.880585 0.029510 0.325226\n0.899292 0.030853 0.324310\n0.916260 0.032196 0.323456\n0.931732 0.033600 0.322540\n0.945801 0.034943 0.321686\n0.958527 0.036377 0.320770\n0.042511 0.023438 0.341949\n0.064423 0.024261 0.341461\n0.087341 0.025085 0.341003\n0.111267 0.025909 0.340546\n0.136475 0.026825 0.340027\n0.162903 0.027771 0.339478\n0.190887 0.028717 0.338898\n0.220551 0.029694 0.338287\n0.251953 0.030701 0.337646\n0.285492 0.031708 0.337006\n0.321136 0.032776 0.336334\n0.358887 0.033844 0.335693\n0.398315 0.034973 0.334930\n0.439484 0.036102 0.334229\n0.481934 0.037262 0.333466\n0.525482 0.038422 0.332672\n0.569153 0.039612 0.331970\n0.611481 0.040863 0.331146\n0.651947 0.042114 0.330353\n0.690125 0.043335 0.329529\n0.725769 0.044647 0.328674\n0.758636 0.045990 0.327850\n0.788452 0.047302 0.326996\n0.815582 0.048676 0.326141\n0.840179 0.050049 0.325287\n0.862457 0.051422 0.324371\n0.882812 0.052856 0.323456\n0.901276 0.054260 0.322601\n0.918152 0.055725 0.321716\n0.933441 0.057190 0.320770\n0.947357 0.058655 0.319946\n0.959961 0.060181 0.318970\n0.044067 0.045471 0.341064\n0.066101 0.046387 0.340546\n0.089081 0.047302 0.340027\n0.113190 0.048248 0.339478\n0.138550 0.049255 0.338928\n0.165161 0.050232 0.338318\n0.193329 0.051300 0.337677\n0.223175 0.052399 0.337006\n0.254852 0.053436 0.336365\n0.288666 0.054565 0.335693\n0.324646 0.055756 0.334930\n0.362488 0.056915 0.334229\n0.402283 0.058136 0.333496\n0.443573 0.059357 0.332703\n0.486237 0.060608 0.331970\n0.529968 0.061890 0.331146\n0.573608 0.063171 0.330414\n0.615814 0.064484 0.329529\n0.656158 0.065826 0.328674\n0.694092 0.067200 0.327881\n0.729523 0.068604 0.327026\n0.762054 0.070007 0.326141\n0.791656 0.071411 0.325317\n0.818481 0.072845 0.324402\n0.842804 0.074371 0.323547\n0.864929 0.075836 0.322632\n0.885071 0.077362 0.321716\n0.903320 0.078857 0.320831\n0.920013 0.080414 0.319946\n0.935211 0.081970 0.318970\n0.948944 0.083527 0.318085\n0.961395 0.085114 0.317200\n0.045715 0.068573 0.340027\n0.067871 0.069550 0.339478\n0.090973 0.070557 0.338959\n0.115265 0.071655 0.338318\n0.140747 0.072723 0.337677\n0.167542 0.073853 0.337067\n0.195923 0.074982 0.336365\n0.225983 0.076172 0.335693\n0.257904 0.077362 0.335022\n0.291962 0.078583 0.334259\n0.328186 0.079865 0.333496\n0.366364 0.081116 0.332764\n0.406372 0.082428 0.332001\n0.447876 0.083710 0.331207\n0.490753 0.085083 0.330414\n0.534637 0.086487 0.329559\n0.578186 0.087891 0.328735\n0.620270 0.089294 0.327881\n0.660400 0.090759 0.327026\n0.698151 0.092194 0.326172\n0.733307 0.093689 0.325317\n0.765594 0.095215 0.324402\n0.794830 0.096741 0.323578\n0.821411 0.098328 0.322632\n0.845459 0.099854 0.321747\n0.867401 0.101471 0.320862\n0.887299 0.103058 0.319977\n0.905426 0.104706 0.319092\n0.921936 0.106354 0.318115\n0.936920 0.108063 0.317230\n0.950531 0.109650 0.316345\n0.962860 0.111389 0.315430\n0.047424 0.092834 0.338959\n0.069763 0.093964 0.338348\n0.092987 0.095062 0.337738\n0.117432 0.096222 0.337097\n0.143066 0.097443 0.336395\n0.170074 0.098633 0.335724\n0.198669 0.099915 0.335022\n0.228912 0.101166 0.334320\n0.261108 0.102478 0.333527\n0.295471 0.103790 0.332764\n0.331940 0.105194 0.332001\n0.370300 0.106537 0.331238\n0.410553 0.108002 0.330444\n0.452301 0.109406 0.329620\n0.495392 0.110901 0.328735\n0.539368 0.112396 0.327911\n0.582855 0.113861 0.327057\n0.624817 0.115417 0.326202\n0.664764 0.116974 0.325348\n0.702209 0.118561 0.324463\n0.737152 0.120148 0.323578\n0.769104 0.121796 0.322662\n0.798065 0.123444 0.321777\n0.824371 0.125122 0.320862\n0.848206 0.126770 0.320007\n0.869843 0.128479 0.319092\n0.889557 0.130188 0.318115\n0.907501 0.131927 0.317261\n0.923798 0.133698 0.316345\n0.938690 0.135468 0.315460\n0.952118 0.137268 0.314575\n0.964294 0.139069 0.313629\n0.049316 0.118408 0.337738\n0.071716 0.119629 0.337097\n0.095154 0.120880 0.336456\n0.119690 0.122162 0.335754\n0.145508 0.123505 0.335052\n0.172729 0.124786 0.334320\n0.201447 0.126129 0.333557\n0.231995 0.127594 0.332825\n0.264465 0.128967 0.332062\n0.299072 0.130432 0.331238\n0.335754 0.131897 0.330475\n0.374481 0.133423 0.329620\n0.414978 0.134949 0.328796\n0.456909 0.136505 0.327942\n0.500122 0.138092 0.327087\n0.544220 0.139709 0.326202\n0.587616 0.141327 0.325378\n0.629486 0.142975 0.324493\n0.669159 0.144684 0.323608\n0.706421 0.146362 0.322693\n0.741028 0.148102 0.321777\n0.772614 0.149841 0.320892\n0.801331 0.151581 0.320038\n0.827332 0.153412 0.319122\n0.850891 0.155182 0.318176\n0.872375 0.157013 0.317291\n0.891846 0.158905 0.316376\n0.909576 0.160736 0.315491\n0.925751 0.162628 0.314575\n0.940399 0.164551 0.313629\n0.953705 0.166443 0.312744\n0.965698 0.168427 0.311859\n0.051239 0.145447 0.336456\n0.073822 0.146790 0.335754\n0.097382 0.148132 0.335083\n0.122101 0.149536 0.334351\n0.148102 0.151001 0.333557\n0.175446 0.152435 0.332855\n0.204437 0.153931 0.332062\n0.235168 0.155457 0.331268\n0.267883 0.157013 0.330475\n0.302795 0.158600 0.329651\n0.339783 0.160187 0.328796\n0.378784 0.161835 0.328033\n0.419464 0.163483 0.327087\n0.461609 0.165192 0.326233\n0.505035 0.166870 0.325378\n0.549194 0.168640 0.324493\n0.592499 0.170410 0.323639\n0.634125 0.172211 0.322693\n0.673645 0.174042 0.321869\n0.710632 0.175812 0.320923\n0.744904 0.177704 0.320038\n0.776184 0.179565 0.319153\n0.804565 0.181488 0.318237\n0.830322 0.183411 0.317291\n0.853607 0.185364 0.316406\n0.874817 0.187317 0.315521\n0.894135 0.189331 0.314606\n0.911652 0.191284 0.313660\n0.927643 0.193329 0.312805\n0.942139 0.195404 0.311920\n0.955261 0.197449 0.311035\n0.967133 0.199524 0.310120\n0.053314 0.174072 0.335083\n0.075989 0.175568 0.334351\n0.099701 0.177063 0.333618\n0.124603 0.178589 0.332855\n0.150787 0.180176 0.332123\n0.178345 0.181763 0.331329\n0.207550 0.183411 0.330505\n0.238495 0.185059 0.329712\n0.271545 0.186768 0.328857\n0.306702 0.188507 0.328033\n0.343964 0.190216 0.327179\n0.383148 0.192017 0.326324\n0.424103 0.193817 0.325409\n0.466431 0.195648 0.324524\n0.510071 0.197540 0.323639\n0.554260 0.199432 0.322784\n0.597412 0.201294 0.321899\n0.638885 0.203247 0.320923\n0.678192 0.205261 0.320068\n0.714844 0.207184 0.319153\n0.748810 0.209229 0.318237\n0.779755 0.211212 0.317352\n0.807831 0.213318 0.316406\n0.833313 0.215393 0.315521\n0.856323 0.217468 0.314636\n0.877319 0.219574 0.313751\n0.896393 0.221741 0.312805\n0.913727 0.223846 0.311951\n0.929535 0.226044 0.311035\n0.943848 0.228210 0.310181\n0.956818 0.230438 0.309326\n0.968506 0.232666 0.308441\n0.055450 0.204559 0.333618\n0.078278 0.206177 0.332886\n0.102112 0.207825 0.332153\n0.127197 0.209534 0.331329\n0.153534 0.211243 0.330505\n0.181305 0.212952 0.329712\n0.210724 0.214813 0.328857\n0.241943 0.216553 0.328064\n0.275269 0.218445 0.327209\n0.310730 0.220337 0.326324\n0.348206 0.222260 0.325500\n0.387695 0.224182 0.324554\n0.428894 0.226166 0.323669\n0.471405 0.228149 0.322815\n0.515137 0.230164 0.321930\n0.559387 0.232269 0.320984\n0.602417 0.234283 0.320099\n0.643677 0.236389 0.319183\n0.682648 0.238495 0.318298\n0.719116 0.240662 0.317413\n0.752747 0.242889 0.316498\n0.783356 0.245026 0.315582\n0.811127 0.247284 0.314636\n0.836243 0.249512 0.313782\n0.859039 0.251740 0.312866\n0.879791 0.254059 0.311951\n0.898651 0.256409 0.311096\n0.915802 0.258698 0.310211\n0.931396 0.261047 0.309357\n0.945557 0.263336 0.308502\n0.958374 0.265747 0.307617\n0.969910 0.268158 0.306763\n0.057678 0.237091 0.332153\n0.080658 0.238892 0.331329\n0.104675 0.240662 0.330566\n0.129883 0.242523 0.329742\n0.156372 0.244415 0.328949\n0.184418 0.246307 0.328064\n0.214020 0.248352 0.327209\n0.245544 0.250305 0.326355\n0.279114 0.252350 0.325500\n0.314850 0.254425 0.324554\n0.352631 0.256470 0.323700\n0.392365 0.258636 0.322845\n0.433777 0.260773 0.321930\n0.476501 0.262909 0.321014\n0.520386 0.265076 0.320099\n0.564545 0.267334 0.319244\n0.607452 0.269592 0.318298\n0.648499 0.271912 0.317413\n0.687225 0.274139 0.316528\n0.723358 0.276550 0.315613\n0.756683 0.278931 0.314667\n0.786896 0.281250 0.313812\n0.814362 0.283691 0.312897\n0.839203 0.286072 0.311981\n0.861755 0.288513 0.311127\n0.882233 0.290985 0.310242\n0.900879 0.293457 0.309357\n0.917847 0.295990 0.308502\n0.933258 0.298492 0.307617\n0.947235 0.300995 0.306793\n0.959900 0.303589 0.306000\n0.971252 0.306152 0.305084\n0.060028 0.271912 0.330566\n0.083130 0.273865 0.329742\n0.107269 0.275879 0.328949\n0.132660 0.277924 0.328094\n0.159363 0.279999 0.327240\n0.187592 0.282104 0.326385\n0.217499 0.284302 0.325531\n0.249207 0.286407 0.324677\n0.283020 0.288666 0.323792\n0.319122 0.290894 0.322845\n0.357178 0.293152 0.321960\n0.397125 0.295502 0.321075\n0.438690 0.297852 0.320190\n0.481720 0.300201 0.319305\n0.525757 0.302643 0.318329\n0.569824 0.304962 0.317444\n0.612579 0.307434 0.316528\n0.653381 0.309937 0.315613\n0.691772 0.312408 0.314697\n0.727631 0.314911 0.313812\n0.760559 0.317474 0.312897\n0.790497 0.320007 0.312042\n0.817566 0.322601 0.311157\n0.842163 0.325287 0.310242\n0.864441 0.327759 0.309387\n0.884674 0.330475 0.308533\n0.903107 0.333069 0.307678\n0.919861 0.335754 0.306824\n0.935120 0.338501 0.306000\n0.948914 0.341125 0.305145\n0.961395 0.343842 0.304321\n0.972626 0.346619 0.303497\n0.062378 0.309296 0.328949\n0.085632 0.311371 0.328125\n0.109985 0.313599 0.327271\n0.135529 0.315857 0.326385\n0.162415 0.318085 0.325562\n0.190887 0.320435 0.324677\n0.220978 0.322784 0.323792\n0.252991 0.325134 0.322876\n0.287140 0.327515 0.321991\n0.323456 0.329987 0.321075\n0.361755 0.332397 0.320221\n0.401978 0.334900 0.319305\n0.443726 0.337402 0.318390\n0.486938 0.339996 0.317474\n0.531097 0.342499 0.316559\n0.575134 0.345123 0.315704\n0.617676 0.347717 0.314728\n0.658264 0.350464 0.313843\n0.696381 0.353058 0.312927\n0.731873 0.355743 0.312073\n0.764496 0.358521 0.311157\n0.794006 0.361206 0.310272\n0.820801 0.363922 0.309418\n0.845093 0.366730 0.308533\n0.867096 0.369476 0.307678\n0.887115 0.372284 0.306824\n0.905334 0.375000 0.306030\n0.921906 0.377869 0.305176\n0.936920 0.380737 0.304352\n0.950562 0.383514 0.303528\n0.962891 0.386414 0.302765\n0.973969 0.389313 0.302002\n0.064880 0.349060 0.327271\n0.088287 0.351379 0.326416\n0.112732 0.353729 0.325592\n0.138519 0.356201 0.324707\n0.165619 0.358612 0.323822\n0.194214 0.361115 0.322968\n0.224609 0.363617 0.321991\n0.256866 0.366180 0.321106\n0.291321 0.368744 0.320221\n0.327911 0.371368 0.319336\n0.366516 0.373993 0.318390\n0.406982 0.376648 0.317474\n0.448975 0.379333 0.316589\n0.492249 0.382019 0.315704\n0.536591 0.384796 0.314728\n0.580444 0.387512 0.313904\n0.622833 0.390320 0.312958\n0.663116 0.393158 0.312073\n0.700989 0.395905 0.311218\n0.736145 0.398773 0.310303\n0.768372 0.401672 0.309418\n0.797546 0.404541 0.308624\n0.823975 0.407410 0.307678\n0.847961 0.410278 0.306885\n0.869720 0.413208 0.306030\n0.889526 0.416138 0.305176\n0.907501 0.419098 0.304352\n0.923859 0.422028 0.303589\n0.938721 0.424988 0.302765\n0.952209 0.427948 0.302063\n0.964355 0.430908 0.301239\n0.975281 0.433929 0.300476\n0.067444 0.391052 0.325592\n0.090942 0.393555 0.324738\n0.115631 0.396088 0.323853\n0.141571 0.398712 0.322968\n0.168793 0.401306 0.322021\n0.197693 0.404022 0.321136\n0.228302 0.406677 0.320251\n0.260834 0.409332 0.319366\n0.295593 0.412109 0.318420\n0.332428 0.414825 0.317566\n0.371307 0.417633 0.316620\n0.412048 0.420471 0.315735\n0.454193 0.423248 0.314819\n0.497681 0.426117 0.313904\n0.542114 0.429077 0.312958\n0.585785 0.431946 0.312103\n0.627991 0.434845 0.311279\n0.668030 0.437866 0.310303\n0.705566 0.440735 0.309448\n0.740387 0.443695 0.308624\n0.772217 0.446747 0.307709\n0.801056 0.449707 0.306915\n0.827179 0.452698 0.306061\n0.850800 0.455688 0.305206\n0.872375 0.458710 0.304382\n0.891907 0.461792 0.303589\n0.909637 0.464813 0.302795\n0.925842 0.467865 0.302063\n0.940491 0.470947 0.301239\n0.953796 0.473938 0.300507\n0.965820 0.477020 0.299774\n0.976562 0.480164 0.299103\n0.070099 0.435028 0.323853\n0.093750 0.437714 0.322998\n0.118591 0.440430 0.322113\n0.144653 0.443176 0.321136\n0.172150 0.445923 0.320282\n0.201233 0.448730 0.319366\n0.232086 0.451538 0.318481\n0.264893 0.454376 0.317566\n0.299957 0.457275 0.316620\n0.337067 0.460144 0.315765\n0.376251 0.463104 0.314850\n0.417145 0.466064 0.313934\n0.459503 0.468964 0.313080\n0.503204 0.471924 0.312164\n0.547638 0.474976 0.311279\n0.591187 0.477966 0.310364\n0.633148 0.481079 0.309540\n0.672882 0.484070 0.308655\n0.710083 0.487091 0.307770\n0.744568 0.490173 0.306915\n0.776001 0.493256 0.306091\n0.804474 0.496368 0.305237\n0.830322 0.499512 0.304413\n0.853638 0.502533 0.303619\n0.874908 0.505707 0.302887\n0.894257 0.508820 0.302094\n0.911774 0.511841 0.301300\n0.927765 0.515015 0.300537\n0.942261 0.518188 0.299835\n0.955383 0.521240 0.299133\n0.967224 0.524384 0.298401\n0.977783 0.527435 0.297760\n0.072754 0.480682 0.322113\n0.096588 0.483490 0.321198\n0.121582 0.486328 0.320312\n0.147888 0.489227 0.319397\n0.175568 0.492065 0.318542\n0.204895 0.495026 0.317627\n0.235962 0.497894 0.316650\n0.269073 0.500946 0.315765\n0.304382 0.503906 0.314850\n0.341797 0.506897 0.313995\n0.381226 0.509918 0.313080\n0.422363 0.513000 0.312164\n0.464905 0.515961 0.311310\n0.508728 0.519135 0.310425\n0.553223 0.522217 0.309540\n0.596588 0.525269 0.308716\n0.638306 0.528442 0.307770\n0.677795 0.531586 0.306946\n0.714600 0.534668 0.306122\n0.748718 0.537842 0.305237\n0.779755 0.540894 0.304474\n0.807892 0.544067 0.303650\n0.833374 0.547211 0.302887\n0.856476 0.550293 0.302094\n0.877441 0.553406 0.301331\n0.896545 0.556549 0.300537\n0.913849 0.559570 0.299866\n0.929688 0.562622 0.299133\n0.943970 0.565735 0.298462\n0.956909 0.568756 0.297760\n0.968597 0.571838 0.297119\n0.979004 0.574768 0.296478\n0.075500 0.527679 0.320312\n0.099487 0.530548 0.319427\n0.124695 0.533539 0.318542\n0.151154 0.536499 0.317627\n0.179016 0.539459 0.316742\n0.208557 0.542480 0.315826\n0.239960 0.545502 0.314880\n0.273315 0.548462 0.314026\n0.308929 0.551544 0.313110\n0.346619 0.554504 0.312195\n0.386230 0.557587 0.311340\n0.427612 0.560608 0.310425\n0.470337 0.563660 0.309570\n0.514313 0.566681 0.308716\n0.558777 0.569794 0.307800\n0.601898 0.572815 0.306976\n0.643402 0.575806 0.306122\n0.682587 0.578949 0.305298\n0.719116 0.581909 0.304474\n0.752838 0.584991 0.303650\n0.783478 0.587982 0.302917\n0.811249 0.591003 0.302124\n0.836456 0.594025 0.301331\n0.859222 0.597015 0.300568\n0.879974 0.600006 0.299866\n0.898834 0.603027 0.299133\n0.915955 0.605927 0.298462\n0.931488 0.608887 0.297821\n0.945679 0.611847 0.297119\n0.958435 0.614655 0.296539\n0.969940 0.617615 0.296448\n0.980225 0.620422 0.296448\n0.078339 0.574738 0.318573\n0.102478 0.577545 0.317657\n0.127808 0.580444 0.316742\n0.154449 0.583435 0.315826\n0.182556 0.586273 0.314911\n0.212311 0.589233 0.314026\n0.243927 0.592102 0.313141\n0.277618 0.595093 0.312225\n0.313538 0.597992 0.311340\n0.351471 0.600922 0.310455\n0.391357 0.603882 0.309601\n0.432922 0.606842 0.308746\n0.475861 0.609741 0.307861\n0.519928 0.612732 0.306976\n0.564331 0.615662 0.306152\n0.607300 0.618591 0.305359\n0.648499 0.621521 0.304535\n0.687347 0.624481 0.303711\n0.723541 0.627319 0.302948\n0.756866 0.630249 0.302124\n0.787140 0.633087 0.301361\n0.814606 0.635925 0.300659\n0.839417 0.638855 0.299866\n0.861938 0.641632 0.299164\n0.882416 0.644470 0.298492\n0.901031 0.647278 0.297821\n0.917969 0.650055 0.297180\n0.933350 0.652802 0.296539\n0.947327 0.655579 0.296448\n0.959930 0.658264 0.296448\n0.971252 0.660980 0.296448\n0.981384 0.663635 0.296448\n0.081238 0.620117 0.316772\n0.105499 0.622864 0.315887\n0.130981 0.625702 0.314941\n0.157837 0.628540 0.314056\n0.186127 0.631256 0.313141\n0.216187 0.634094 0.312225\n0.248016 0.636871 0.311401\n0.281982 0.639740 0.310486\n0.318176 0.642548 0.309631\n0.356384 0.645294 0.308777\n0.396515 0.648163 0.307892\n0.438293 0.650970 0.307037\n0.481354 0.653687 0.306244\n0.525574 0.656494 0.305359\n0.569824 0.659302 0.304535\n0.612610 0.662048 0.303741\n0.653534 0.664795 0.302948\n0.692017 0.667511 0.302155\n0.727905 0.670258 0.301422\n0.760864 0.673004 0.300659\n0.790741 0.675690 0.299927\n0.817810 0.678345 0.299194\n0.842377 0.681030 0.298492\n0.864594 0.683655 0.297852\n0.884857 0.686310 0.297180\n0.903229 0.688904 0.296570\n0.919922 0.691467 0.296448\n0.935150 0.694031 0.296448\n0.948914 0.696533 0.296448\n0.961365 0.699036 0.296448\n0.972534 0.701569 0.296448\n0.982513 0.703979 0.296448\n0.084137 0.663239 0.314941\n0.108551 0.665894 0.314087\n0.134247 0.668549 0.313171\n0.161224 0.671143 0.312317\n0.189789 0.673859 0.311401\n0.220032 0.676514 0.310516\n0.252197 0.679169 0.309662\n0.286407 0.681854 0.308777\n0.322876 0.684509 0.307892\n0.361389 0.687103 0.307068\n0.401733 0.689758 0.306244\n0.443695 0.692383 0.305389\n0.486908 0.694946 0.304565\n0.531189 0.697601 0.303741\n0.575317 0.700104 0.302979\n0.617920 0.702667 0.302216\n0.658508 0.705292 0.301422\n0.696716 0.707764 0.300690\n0.732208 0.710327 0.299957\n0.764801 0.712860 0.299194\n0.794281 0.715302 0.298523\n0.821014 0.717804 0.297852\n0.845245 0.720245 0.297211\n0.867218 0.722656 0.296570\n0.887177 0.725067 0.296448\n0.905365 0.727478 0.296448\n0.921875 0.729797 0.296448\n0.936859 0.732147 0.296448\n0.950470 0.734406 0.296448\n0.962769 0.736694 0.296448\n0.973816 0.738953 0.296448\n0.983612 0.741119 0.296448\n0.087097 0.703705 0.313263\n0.111664 0.706146 0.312317\n0.137512 0.708679 0.311432\n0.164703 0.711090 0.310577\n0.193512 0.713623 0.309662\n0.223999 0.716064 0.308807\n0.256348 0.718567 0.307953\n0.290894 0.721008 0.307068\n0.327667 0.723480 0.306274\n0.366364 0.725861 0.305420\n0.406952 0.728302 0.304596\n0.449066 0.730743 0.303772\n0.492493 0.733124 0.303040\n0.536865 0.735535 0.302216\n0.580750 0.737823 0.301453\n0.623138 0.740234 0.300690\n0.663452 0.742584 0.299957\n0.701324 0.744843 0.299286\n0.736450 0.747162 0.298553\n0.768646 0.749451 0.297913\n0.797760 0.751678 0.297241\n0.824158 0.753937 0.296600\n0.848083 0.756195 0.296448\n0.869781 0.758331 0.296448\n0.889496 0.760498 0.296448\n0.907440 0.762604 0.296448\n0.923737 0.764740 0.296448\n0.938599 0.766846 0.296448\n0.951996 0.768860 0.296448\n0.964142 0.770905 0.296448\n0.975006 0.772919 0.296448\n0.984680 0.774872 0.296448\n0.090057 0.740997 0.311523\n0.114838 0.743286 0.310577\n0.140869 0.745575 0.309692\n0.168243 0.747864 0.308868\n0.197266 0.750153 0.307983\n0.227966 0.752441 0.307129\n0.260620 0.754608 0.306305\n0.295471 0.756897 0.305420\n0.332458 0.759155 0.304596\n0.371368 0.761322 0.303833\n0.412201 0.763550 0.303040\n0.454468 0.765717 0.302246\n0.498047 0.767853 0.301453\n0.542480 0.770050 0.300720\n0.586212 0.772186 0.299988\n0.628357 0.774323 0.299286\n0.668365 0.776398 0.298553\n0.705872 0.778473 0.297943\n0.740601 0.780518 0.297241\n0.772430 0.782593 0.296600\n0.801178 0.784576 0.296448\n0.827209 0.786591 0.296448\n0.850830 0.788574 0.296448\n0.872284 0.790497 0.296448\n0.891754 0.792450 0.296448\n0.909454 0.794312 0.296448\n0.925629 0.796204 0.296448\n0.940216 0.798035 0.296448\n0.953491 0.799835 0.296448\n0.965454 0.801666 0.296448\n0.976166 0.803436 0.296448\n0.985687 0.805176 0.296448\n0.093109 0.774933 0.309753\n0.118073 0.777039 0.308868\n0.144226 0.779144 0.307983\n0.171814 0.781158 0.307159\n0.201050 0.783234 0.306305\n0.231995 0.785278 0.305450\n0.264862 0.787292 0.304657\n0.299988 0.789368 0.303833\n0.337280 0.791351 0.303070\n0.376465 0.793335 0.302277\n0.417480 0.795319 0.301483\n0.459869 0.797241 0.300751\n0.503632 0.799194 0.300018\n0.548035 0.801178 0.299316\n0.591583 0.803009 0.298615\n0.633453 0.804932 0.297943\n0.673218 0.806854 0.297272\n0.710327 0.808624 0.296631\n0.744690 0.810486 0.296448\n0.776093 0.812317 0.296448\n0.804443 0.814087 0.296448\n0.830231 0.815887 0.296448\n0.853516 0.817627 0.296448\n0.874695 0.819366 0.296448\n0.893951 0.821075 0.296448\n0.911469 0.822754 0.296448\n0.927399 0.824402 0.296448\n0.941833 0.826080 0.296448\n0.954926 0.827667 0.296448\n0.966736 0.829285 0.296448\n0.977295 0.830872 0.296448\n0.986694 0.832367 0.296448\n0.096191 0.805481 0.308014\n0.121277 0.807404 0.307159\n0.147675 0.809235 0.306335\n0.175415 0.811127 0.305481\n0.204865 0.812988 0.304688\n0.236053 0.814819 0.303864\n0.269196 0.816620 0.303070\n0.304596 0.818451 0.302277\n0.342102 0.820251 0.301575\n0.381500 0.822052 0.300751\n0.422729 0.823822 0.300018\n0.465332 0.825531 0.299347\n0.509155 0.827301 0.298615\n0.553528 0.829071 0.297943\n0.596924 0.830780 0.297272\n0.638458 0.832458 0.296631\n0.677917 0.834137 0.296448\n0.714691 0.835754 0.296448\n0.748718 0.837402 0.296448\n0.779694 0.839050 0.296448\n0.807739 0.840607 0.296448\n0.833130 0.842224 0.296448\n0.856171 0.843750 0.296448\n0.877075 0.845306 0.296448\n0.896118 0.846863 0.296448\n0.913361 0.848328 0.296448\n0.929108 0.849823 0.296448\n0.943420 0.851257 0.296448\n0.956299 0.852692 0.296448\n0.967987 0.854095 0.296448\n0.978394 0.855499 0.296448\n0.987640 0.856842 0.296448\n0.099335 0.832977 0.306366\n0.124573 0.834717 0.305481\n0.151123 0.836426 0.304688\n0.179077 0.838043 0.303894\n0.208710 0.839722 0.303101\n0.240112 0.841431 0.302338\n0.273560 0.843018 0.301575\n0.309296 0.844635 0.300781\n0.346954 0.846283 0.300110\n0.386597 0.847870 0.299347\n0.427979 0.849518 0.298645\n0.470734 0.851013 0.297974\n0.514648 0.852600 0.297302\n0.559052 0.854187 0.296661\n0.602112 0.855652 0.296448\n0.643433 0.857208 0.296448\n0.682587 0.858704 0.296448\n0.718964 0.860168 0.296448\n0.752594 0.861633 0.296448\n0.783173 0.863068 0.296448\n0.810883 0.864502 0.296448\n0.835968 0.865936 0.296448\n0.858704 0.867279 0.296448\n0.879364 0.868713 0.296448\n0.898163 0.870026 0.296448\n0.915253 0.871338 0.296448\n0.930786 0.872681 0.296448\n0.944916 0.873962 0.296448\n0.957672 0.875214 0.296448\n0.969177 0.876465 0.296448\n0.979431 0.877716 0.296448\n0.988556 0.878937 0.296448\n0.102448 0.857758 0.304718\n0.127869 0.859283 0.303894\n0.154572 0.860840 0.303162\n0.182709 0.862305 0.302399\n0.212555 0.863831 0.301605\n0.244232 0.865326 0.300781\n0.277924 0.866821 0.300110\n0.313843 0.868317 0.299377\n0.351837 0.869720 0.298645\n0.391693 0.871155 0.298004\n0.433258 0.872589 0.297302\n0.476135 0.873993 0.296692\n0.520142 0.875397 0.296448\n0.564423 0.876801 0.296448\n0.607300 0.878174 0.296448\n0.648346 0.879517 0.296448\n0.687103 0.880890 0.296448\n0.723145 0.882172 0.296448\n0.756439 0.883514 0.296448\n0.786591 0.884735 0.296448\n0.813965 0.886017 0.296448\n0.838745 0.887299 0.296448\n0.861206 0.888519 0.296448\n0.881622 0.889740 0.296448\n0.900177 0.890961 0.296448\n0.917084 0.892120 0.296448\n0.932434 0.893311 0.296448\n0.946381 0.894440 0.296448\n0.958954 0.895569 0.296448\n0.970337 0.896667 0.296448\n0.980438 0.897736 0.296448\n0.989410 0.898834 0.296448\n0.105560 0.880066 0.303162\n0.131134 0.881470 0.302399\n0.158020 0.882843 0.301605\n0.186371 0.884216 0.300812\n0.216431 0.885559 0.300140\n0.248322 0.886902 0.299377\n0.282288 0.888214 0.298676\n0.318542 0.889557 0.298004\n0.356659 0.890869 0.297363\n0.396790 0.892151 0.296692\n0.438477 0.893463 0.296448\n0.481506 0.894714 0.296448\n0.525513 0.895966 0.296448\n0.569733 0.897186 0.296448\n0.612335 0.898407 0.296448\n0.653137 0.899658 0.296448\n0.691467 0.900787 0.296448\n0.727264 0.902008 0.296448\n0.760071 0.903168 0.296448\n0.789917 0.904327 0.296448\n0.816925 0.905457 0.296448\n0.841431 0.906586 0.296448\n0.863586 0.907654 0.296448\n0.883759 0.908752 0.296448\n0.902130 0.909821 0.296448\n0.918793 0.910858 0.296448\n0.933990 0.911896 0.296448\n0.947754 0.912872 0.296448\n0.960236 0.913879 0.296448\n0.971405 0.914886 0.296448\n0.981415 0.915833 0.296448\n0.990265 0.916779 0.296448\n0.108734 0.900269 0.301636\n0.134460 0.901520 0.300812\n0.161530 0.902771 0.300140\n0.190063 0.903961 0.299438\n0.220337 0.905182 0.298676\n0.252441 0.906403 0.298065\n0.286682 0.907593 0.297363\n0.323151 0.908783 0.296692\n0.361542 0.909943 0.296448\n0.401825 0.911102 0.296448\n0.443695 0.912262 0.296448\n0.486786 0.913391 0.296448\n0.530975 0.914520 0.296448\n0.574921 0.915649 0.296448\n0.617310 0.916718 0.296448\n0.657806 0.917816 0.296448\n0.695801 0.918854 0.296448\n0.731232 0.919891 0.296448\n0.763702 0.920959 0.296448\n0.793152 0.921967 0.296448\n0.819824 0.923004 0.296448\n0.843964 0.923981 0.296448\n0.865906 0.924957 0.296448\n0.885834 0.925903 0.296448\n0.903992 0.926880 0.296448\n0.920471 0.927795 0.296448\n0.935516 0.928680 0.296448\n0.949097 0.929596 0.296448\n0.961395 0.930420 0.296448\n0.972473 0.931305 0.296448\n0.982361 0.932129 0.296448\n0.991028 0.932983 0.296448\n0.111908 0.918457 0.300171\n0.137787 0.919586 0.299438\n0.164978 0.920715 0.298737\n0.193756 0.921814 0.298065\n0.224274 0.922913 0.297424\n0.256592 0.923981 0.296753\n0.291077 0.925079 0.296448\n0.327728 0.926147 0.296448\n0.366394 0.927185 0.296448\n0.406830 0.928192 0.296448\n0.448853 0.929230 0.296448\n0.492035 0.930237 0.296448\n0.536224 0.931274 0.296448\n0.579987 0.932251 0.296448\n0.622162 0.933197 0.296448\n0.662354 0.934174 0.296448\n0.700043 0.935120 0.296448\n0.735077 0.936035 0.296448\n0.767181 0.936981 0.296448\n0.796234 0.937897 0.296448\n0.822571 0.938782 0.296448\n0.846497 0.939667 0.296448\n0.868164 0.940491 0.296448\n0.887848 0.941345 0.296448\n0.905792 0.942169 0.296448\n0.922089 0.942993 0.296448\n0.936920 0.943787 0.296448\n0.950378 0.944580 0.296448\n0.962555 0.945343 0.296448\n0.973480 0.946106 0.296448\n0.983215 0.946808 0.296448\n0.991791 0.947571 0.296448\n0.115082 0.934875 0.298798\n0.141113 0.935913 0.298096\n0.168488 0.936859 0.297455\n0.197449 0.937927 0.296814\n0.228088 0.938904 0.296448\n0.260681 0.939850 0.296448\n0.295471 0.940826 0.296448\n0.332367 0.941772 0.296448\n0.371155 0.942688 0.296448\n0.411774 0.943604 0.296448\n0.453949 0.944519 0.296448\n0.497253 0.945435 0.296448\n0.541412 0.946350 0.296448\n0.584991 0.947205 0.296448\n0.626923 0.948059 0.296448\n0.666748 0.948914 0.296448\n0.704132 0.949738 0.296448\n0.738800 0.950592 0.296448\n0.770569 0.951385 0.296448\n0.799255 0.952179 0.296448\n0.825256 0.952972 0.296448\n0.848907 0.953735 0.296448\n0.870300 0.954498 0.296448\n0.889801 0.955231 0.296448\n0.907501 0.955933 0.296448\n0.923615 0.956665 0.296448\n0.938324 0.957367 0.296448\n0.951599 0.958038 0.296448\n0.963623 0.958710 0.296448\n0.974426 0.959351 0.296448\n0.984009 0.959991 0.296448\n0.992523 0.960602 0.296448\n0.118256 0.949677 0.297455\n0.144409 0.950592 0.296814\n0.171967 0.951477 0.296448\n0.201111 0.952332 0.296448\n0.231995 0.953217 0.296448\n0.264801 0.954102 0.296448\n0.299774 0.954987 0.296448\n0.336914 0.955811 0.296448\n0.375916 0.956604 0.296448\n0.416687 0.957428 0.296448\n0.458862 0.958221 0.296448\n0.502319 0.959045 0.296448\n0.546478 0.959839 0.296448\n0.589844 0.960571 0.296448\n0.631531 0.961365 0.296448\n0.671082 0.962158 0.296448\n0.708099 0.962860 0.296448\n0.742401 0.963562 0.296448\n0.773804 0.964294 0.296448\n0.802155 0.964966 0.296448\n0.827850 0.965668 0.296448\n0.851166 0.966339 0.296448\n0.872375 0.967010 0.296448\n0.891663 0.967651 0.296448\n0.909180 0.968262 0.296448\n0.925140 0.968903 0.296448\n0.939636 0.969513 0.296448\n0.952789 0.970062 0.296448\n0.964661 0.970673 0.296448\n0.975342 0.971222 0.296448\n0.984802 0.971771 0.296448\n0.993164 0.972290 0.296448\n0.121429 0.962952 0.296448\n0.147766 0.963715 0.296448\n0.175446 0.964508 0.296448\n0.204742 0.965332 0.296448\n0.235840 0.966064 0.296448\n0.268890 0.966858 0.296448\n0.304108 0.967590 0.296448\n0.341431 0.968353 0.296448\n0.380615 0.969055 0.296448\n0.421509 0.969788 0.296448\n0.463837 0.970520 0.296448\n0.507324 0.971191 0.296448\n0.551483 0.971863 0.296448\n0.594635 0.972534 0.296448\n0.636017 0.973206 0.296448\n0.675262 0.973877 0.296448\n0.711914 0.974518 0.296448\n0.745880 0.975128 0.296448\n0.776855 0.975739 0.296448\n0.804932 0.976349 0.296448\n0.830353 0.976959 0.296448\n0.853394 0.977539 0.296448\n0.874329 0.978088 0.296448\n0.893433 0.978668 0.296448\n0.910736 0.979218 0.296448\n0.926514 0.979736 0.296448\n0.940887 0.980255 0.296448\n0.953857 0.980743 0.296448\n0.965637 0.981232 0.296448\n0.976166 0.981720 0.296448\n0.985535 0.982178 0.296448\n0.993805 0.982635 0.296448\n0.041351 0.002625 0.379456\n0.063202 0.003357 0.379059\n0.085968 0.004120 0.378601\n0.109802 0.004913 0.378174\n0.134827 0.005707 0.377655\n0.161163 0.006561 0.377106\n0.189026 0.007477 0.376526\n0.218414 0.008362 0.375977\n0.249725 0.009247 0.375336\n0.283020 0.010254 0.374725\n0.318481 0.011230 0.374023\n0.355957 0.012207 0.373383\n0.395294 0.013245 0.372650\n0.436218 0.014282 0.371918\n0.478577 0.015381 0.371155\n0.521942 0.016479 0.370422\n0.565674 0.017609 0.369629\n0.608032 0.018768 0.368805\n0.648621 0.019897 0.367981\n0.686981 0.021088 0.367126\n0.722809 0.022308 0.366333\n0.755859 0.023529 0.365448\n0.785950 0.024811 0.364563\n0.813263 0.026062 0.363647\n0.838013 0.027344 0.362793\n0.860535 0.028656 0.361847\n0.881012 0.029968 0.360992\n0.899628 0.031311 0.360016\n0.916626 0.032715 0.359131\n0.932037 0.034058 0.358185\n0.946075 0.035492 0.357208\n0.958801 0.036926 0.356293\n0.042816 0.023712 0.378632\n0.064697 0.024536 0.378174\n0.087646 0.025360 0.377655\n0.111633 0.026276 0.377106\n0.136810 0.027191 0.376556\n0.163330 0.028107 0.375977\n0.191315 0.029053 0.375336\n0.220947 0.030060 0.374756\n0.252502 0.031067 0.374054\n0.286072 0.032104 0.373383\n0.321777 0.033173 0.372681\n0.359497 0.034241 0.371948\n0.399017 0.035370 0.371216\n0.440247 0.036530 0.370453\n0.482758 0.037720 0.369629\n0.526306 0.038849 0.368835\n0.570007 0.040131 0.368042\n0.612305 0.041290 0.367188\n0.652710 0.042572 0.366364\n0.690887 0.043884 0.365448\n0.726471 0.045166 0.364594\n0.759247 0.046478 0.363739\n0.789093 0.047821 0.362823\n0.816101 0.049133 0.361877\n0.840637 0.050568 0.361023\n0.862946 0.051971 0.360016\n0.883179 0.053375 0.359161\n0.901672 0.054779 0.358185\n0.918518 0.056305 0.357239\n0.933777 0.057709 0.356323\n0.947662 0.059235 0.355377\n0.960236 0.060760 0.354370\n0.044373 0.045807 0.377655\n0.066406 0.046692 0.377136\n0.089478 0.047668 0.376556\n0.113617 0.048645 0.375977\n0.138947 0.049622 0.375366\n0.165619 0.050659 0.374756\n0.193817 0.051727 0.374054\n0.223694 0.052734 0.373413\n0.255432 0.053864 0.372681\n0.289246 0.054993 0.371948\n0.325287 0.056183 0.371216\n0.363220 0.057373 0.370453\n0.402954 0.058533 0.369690\n0.444427 0.059784 0.368896\n0.487091 0.061035 0.368042\n0.530792 0.062347 0.367249\n0.574463 0.063690 0.366394\n0.616669 0.065002 0.365509\n0.656891 0.066315 0.364624\n0.694885 0.067719 0.363770\n0.730255 0.069122 0.362823\n0.762726 0.070465 0.361908\n0.792236 0.071991 0.361023\n0.819031 0.073395 0.360107\n0.843353 0.074890 0.359161\n0.865387 0.076355 0.358215\n0.885468 0.077881 0.357300\n0.903717 0.079407 0.356323\n0.920380 0.080963 0.355377\n0.935516 0.082520 0.354431\n0.949249 0.084137 0.353485\n0.961670 0.085754 0.352509\n0.046021 0.068939 0.376587\n0.068207 0.069916 0.376007\n0.091370 0.070953 0.375366\n0.115662 0.072052 0.374756\n0.141144 0.073151 0.374115\n0.168030 0.074280 0.373474\n0.196442 0.075439 0.372772\n0.226532 0.076569 0.372040\n0.258514 0.077789 0.371246\n0.292603 0.079041 0.370483\n0.328857 0.080292 0.369690\n0.367096 0.081604 0.368896\n0.407135 0.082886 0.368103\n0.448730 0.084229 0.367249\n0.491638 0.085632 0.366394\n0.535492 0.086975 0.365540\n0.579071 0.088379 0.364624\n0.621155 0.089844 0.363770\n0.661194 0.091278 0.362854\n0.698914 0.092743 0.361908\n0.734009 0.094238 0.361053\n0.766174 0.095764 0.360107\n0.795502 0.097321 0.359222\n0.821960 0.098877 0.358246\n0.846039 0.100433 0.357300\n0.867859 0.102081 0.356384\n0.887726 0.103668 0.355438\n0.905823 0.105316 0.354492\n0.922302 0.106934 0.353516\n0.937256 0.108612 0.352570\n0.950836 0.110321 0.351562\n0.963074 0.112000 0.350677\n0.047791 0.093262 0.375427\n0.070099 0.094330 0.374786\n0.093384 0.095490 0.374115\n0.117859 0.096680 0.373474\n0.143524 0.097870 0.372772\n0.170563 0.099121 0.372040\n0.199158 0.100342 0.371307\n0.229462 0.101654 0.370514\n0.261719 0.102966 0.369720\n0.296082 0.104309 0.368927\n0.332611 0.105682 0.368134\n0.371124 0.107056 0.367279\n0.411316 0.108490 0.366425\n0.453186 0.109955 0.365601\n0.496277 0.111420 0.364685\n0.540222 0.112885 0.363800\n0.583740 0.114410 0.362946\n0.625702 0.115997 0.361969\n0.665558 0.117523 0.361115\n0.703033 0.119171 0.360168\n0.737823 0.120728 0.359253\n0.769745 0.122406 0.358246\n0.798706 0.124054 0.357361\n0.824890 0.125702 0.356415\n0.848694 0.127380 0.355469\n0.870361 0.129120 0.354492\n0.890015 0.130798 0.353577\n0.907898 0.132568 0.352600\n0.924194 0.134369 0.351654\n0.938995 0.136108 0.350708\n0.952423 0.137939 0.349762\n0.964508 0.139740 0.348785\n0.049713 0.118866 0.374176\n0.072113 0.120056 0.373535\n0.095551 0.121338 0.372803\n0.120148 0.122650 0.372070\n0.145966 0.123962 0.371307\n0.173248 0.125305 0.370514\n0.201996 0.126678 0.369781\n0.232574 0.128082 0.368988\n0.265076 0.129517 0.368134\n0.299713 0.130951 0.367310\n0.336548 0.132446 0.366425\n0.375305 0.134003 0.365601\n0.415741 0.135498 0.364716\n0.457825 0.137085 0.363831\n0.501038 0.138702 0.362946\n0.545135 0.140289 0.362030\n0.588562 0.141968 0.361115\n0.630280 0.143585 0.360199\n0.669952 0.145264 0.359253\n0.707214 0.147003 0.358337\n0.741669 0.148712 0.357391\n0.773285 0.150482 0.356415\n0.801971 0.152283 0.355499\n0.827850 0.154053 0.354523\n0.851410 0.155884 0.353577\n0.872803 0.157745 0.352631\n0.892242 0.159546 0.351685\n0.910004 0.161438 0.350708\n0.926056 0.163300 0.349792\n0.940735 0.165222 0.348846\n0.953979 0.167175 0.347839\n0.965942 0.169067 0.346954\n0.051666 0.145935 0.372803\n0.074188 0.147247 0.372070\n0.097809 0.148682 0.371338\n0.122559 0.150116 0.370514\n0.148560 0.151489 0.369781\n0.175995 0.153015 0.368988\n0.204987 0.154480 0.368164\n0.235809 0.156036 0.367310\n0.268616 0.157623 0.366455\n0.303497 0.159180 0.365631\n0.340576 0.160797 0.364716\n0.379578 0.162445 0.363831\n0.420288 0.164124 0.362976\n0.462555 0.165833 0.362061\n0.505951 0.167511 0.361176\n0.550079 0.169281 0.360199\n0.593475 0.171082 0.359283\n0.634979 0.172852 0.358368\n0.674469 0.174683 0.357452\n0.711395 0.176544 0.356445\n0.745575 0.178375 0.355530\n0.776855 0.180267 0.354553\n0.805206 0.182220 0.353638\n0.830841 0.184113 0.352692\n0.854126 0.186066 0.351715\n0.875305 0.188080 0.350769\n0.894531 0.190002 0.349792\n0.912048 0.192078 0.348846\n0.927979 0.194061 0.347900\n0.942444 0.196106 0.346985\n0.955566 0.198181 0.346039\n0.967346 0.200256 0.345123\n0.053711 0.174652 0.371338\n0.076385 0.176086 0.370575\n0.100159 0.177612 0.369843\n0.125061 0.179138 0.369019\n0.151276 0.180756 0.368195\n0.178894 0.182373 0.367371\n0.208099 0.183990 0.366516\n0.239166 0.185669 0.365631\n0.272217 0.187408 0.364777\n0.307404 0.189117 0.363861\n0.344757 0.190887 0.363007\n0.384033 0.192719 0.362061\n0.424957 0.194519 0.361206\n0.467407 0.196350 0.360260\n0.510956 0.198151 0.359314\n0.555237 0.200073 0.358398\n0.598389 0.202026 0.357452\n0.639740 0.203949 0.356506\n0.679016 0.205933 0.355530\n0.715637 0.207947 0.354553\n0.749542 0.209961 0.353668\n0.780457 0.212006 0.352692\n0.808441 0.214050 0.351715\n0.833801 0.216156 0.350800\n0.856842 0.218231 0.349823\n0.877747 0.220337 0.348938\n0.896790 0.222504 0.347961\n0.914124 0.224670 0.346985\n0.929840 0.226837 0.346069\n0.944153 0.229034 0.345184\n0.957123 0.231293 0.344208\n0.968781 0.233490 0.343353\n0.055878 0.205170 0.369843\n0.078674 0.206787 0.369019\n0.102600 0.208435 0.368195\n0.127686 0.210114 0.367401\n0.154053 0.211853 0.366516\n0.181885 0.213654 0.365662\n0.211304 0.215424 0.364807\n0.242645 0.217285 0.363922\n0.275970 0.219147 0.363007\n0.311432 0.220978 0.362091\n0.349060 0.222961 0.361206\n0.388580 0.224884 0.360260\n0.429718 0.226868 0.359375\n0.472382 0.228882 0.358398\n0.516083 0.230865 0.357483\n0.560364 0.232971 0.356506\n0.603394 0.235077 0.355591\n0.644501 0.237152 0.354614\n0.683502 0.239319 0.353668\n0.719910 0.241486 0.352722\n0.753448 0.243622 0.351746\n0.784027 0.245850 0.350800\n0.811737 0.248108 0.349823\n0.836792 0.250336 0.348938\n0.859589 0.252625 0.347961\n0.880219 0.254852 0.347046\n0.899048 0.257202 0.346069\n0.916199 0.259552 0.345184\n0.931732 0.261871 0.344269\n0.945862 0.264252 0.343353\n0.958649 0.266632 0.342438\n0.970154 0.269012 0.341583\n0.058105 0.237701 0.368286\n0.081085 0.239502 0.367401\n0.105133 0.241364 0.366577\n0.130371 0.243225 0.365723\n0.156952 0.245117 0.364807\n0.184998 0.247070 0.363922\n0.214691 0.249084 0.363037\n0.246185 0.251038 0.362122\n0.279846 0.253082 0.361237\n0.315613 0.255127 0.360321\n0.353516 0.257233 0.359375\n0.393188 0.259338 0.358429\n0.434631 0.261505 0.357513\n0.477478 0.263733 0.356567\n0.521332 0.265930 0.355652\n0.565552 0.268158 0.354645\n0.608459 0.270416 0.353699\n0.649384 0.272705 0.352783\n0.688080 0.275055 0.351837\n0.724182 0.277405 0.350830\n0.757416 0.279724 0.349915\n0.787598 0.282166 0.348969\n0.814911 0.284515 0.347992\n0.839722 0.286987 0.347107\n0.862244 0.289429 0.346130\n0.882660 0.291870 0.345215\n0.901306 0.294434 0.344330\n0.918213 0.296906 0.343414\n0.933594 0.299377 0.342468\n0.947571 0.301971 0.341583\n0.960175 0.304535 0.340729\n0.971527 0.307068 0.339844\n0.060425 0.272614 0.366608\n0.083557 0.274597 0.365784\n0.107788 0.276672 0.364868\n0.133179 0.278687 0.363983\n0.159943 0.280762 0.363129\n0.188232 0.282928 0.362122\n0.218109 0.285095 0.361267\n0.249939 0.287262 0.360352\n0.283813 0.289490 0.359406\n0.319855 0.291718 0.358521\n0.358032 0.294067 0.357513\n0.397949 0.296326 0.356598\n0.439667 0.298676 0.355652\n0.482666 0.301086 0.354706\n0.526703 0.303467 0.353729\n0.570831 0.305878 0.352783\n0.613556 0.308350 0.351837\n0.654266 0.310852 0.350861\n0.692719 0.313354 0.349945\n0.728455 0.315887 0.348969\n0.761292 0.318390 0.348022\n0.791168 0.320984 0.347107\n0.818146 0.323547 0.346191\n0.842682 0.326172 0.345245\n0.864929 0.328796 0.344330\n0.885132 0.331421 0.343475\n0.903534 0.334076 0.342499\n0.920258 0.336792 0.341614\n0.935455 0.339417 0.340759\n0.949219 0.342133 0.339935\n0.961700 0.344910 0.339020\n0.972870 0.347565 0.338226\n0.062805 0.309998 0.364929\n0.086121 0.312225 0.364014\n0.110535 0.314423 0.363129\n0.136047 0.316620 0.362213\n0.163025 0.318970 0.361267\n0.191498 0.321289 0.360352\n0.221649 0.323608 0.359467\n0.253723 0.325989 0.358521\n0.287903 0.328400 0.357544\n0.324280 0.330841 0.356628\n0.362671 0.333313 0.355682\n0.402863 0.335785 0.354736\n0.444763 0.338348 0.353760\n0.487946 0.340942 0.352814\n0.532104 0.343506 0.351898\n0.576141 0.346069 0.350922\n0.618683 0.348755 0.349976\n0.659119 0.351379 0.348999\n0.697266 0.354095 0.348053\n0.732635 0.356750 0.347137\n0.765167 0.359467 0.346222\n0.794708 0.362213 0.345245\n0.821411 0.364929 0.344360\n0.845612 0.367737 0.343475\n0.867615 0.370514 0.342499\n0.887573 0.373322 0.341644\n0.905731 0.376099 0.340790\n0.922272 0.378967 0.339935\n0.937286 0.381775 0.339081\n0.950867 0.384613 0.338226\n0.963135 0.387451 0.337402\n0.974182 0.390320 0.336578\n0.065338 0.349915 0.363159\n0.088776 0.352234 0.362244\n0.113312 0.354645 0.361359\n0.139038 0.357117 0.360382\n0.166168 0.359528 0.359467\n0.194916 0.362061 0.358551\n0.225250 0.364563 0.357605\n0.257629 0.367126 0.356628\n0.292053 0.369690 0.355713\n0.328705 0.372284 0.354736\n0.367401 0.374969 0.353760\n0.407867 0.377625 0.352875\n0.449951 0.380310 0.351898\n0.493286 0.383057 0.350922\n0.537567 0.385773 0.350006\n0.581512 0.388519 0.349060\n0.623840 0.391357 0.348053\n0.664001 0.394135 0.347168\n0.701874 0.396973 0.346222\n0.736938 0.399780 0.345276\n0.769073 0.402710 0.344391\n0.798248 0.405548 0.343506\n0.824585 0.408447 0.342590\n0.848480 0.411377 0.341736\n0.870209 0.414337 0.340790\n0.889954 0.417206 0.339966\n0.907928 0.420166 0.339081\n0.924255 0.423126 0.338287\n0.939056 0.426056 0.337433\n0.952515 0.429016 0.336609\n0.964630 0.431976 0.335785\n0.975525 0.434967 0.335052\n0.067932 0.391968 0.361389\n0.091461 0.394501 0.360443\n0.116211 0.397125 0.359497\n0.142120 0.399628 0.358582\n0.169434 0.402344 0.357605\n0.198334 0.404907 0.356659\n0.229004 0.407623 0.355743\n0.261627 0.410370 0.354797\n0.296356 0.413086 0.353851\n0.333313 0.415894 0.352875\n0.372253 0.418732 0.351929\n0.412933 0.421448 0.350983\n0.455231 0.424347 0.350006\n0.498749 0.427246 0.349060\n0.543091 0.430084 0.348145\n0.586853 0.433014 0.347168\n0.628998 0.435974 0.346252\n0.668884 0.438843 0.345367\n0.706451 0.441864 0.344391\n0.741119 0.444763 0.343536\n0.772919 0.447784 0.342621\n0.801727 0.450775 0.341736\n0.827728 0.453827 0.340851\n0.851349 0.456879 0.339996\n0.872833 0.459869 0.339142\n0.892334 0.462921 0.338318\n0.910095 0.465942 0.337433\n0.926208 0.469025 0.336609\n0.940826 0.472046 0.335876\n0.954102 0.475128 0.335083\n0.966064 0.478088 0.334320\n0.976776 0.481232 0.333527\n0.070526 0.436005 0.359528\n0.094269 0.438690 0.358582\n0.119171 0.441437 0.357666\n0.145233 0.444183 0.356750\n0.172791 0.446960 0.355743\n0.201904 0.449707 0.354858\n0.232819 0.452606 0.353882\n0.265717 0.455414 0.352905\n0.300720 0.458313 0.351990\n0.337952 0.461243 0.351013\n0.377167 0.464203 0.350067\n0.418060 0.467072 0.349091\n0.460571 0.470123 0.348175\n0.504242 0.473114 0.347198\n0.548645 0.476044 0.346283\n0.592224 0.479126 0.345367\n0.634064 0.482086 0.344513\n0.673767 0.485138 0.343536\n0.710999 0.488281 0.342621\n0.745270 0.491302 0.341766\n0.776703 0.494415 0.340881\n0.805145 0.497498 0.339996\n0.830872 0.500580 0.339172\n0.854187 0.503723 0.338318\n0.875397 0.506805 0.337494\n0.894653 0.509918 0.336639\n0.912170 0.513031 0.335876\n0.928070 0.516144 0.335083\n0.942566 0.519257 0.334320\n0.955688 0.522461 0.333557\n0.967468 0.525421 0.332855\n0.978027 0.528595 0.332184\n0.073242 0.481720 0.357697\n0.097107 0.484528 0.356750\n0.122131 0.487366 0.355774\n0.148438 0.490265 0.354858\n0.176208 0.493134 0.353912\n0.205536 0.496094 0.352936\n0.236694 0.499054 0.351990\n0.269897 0.502014 0.351013\n0.305206 0.505005 0.350098\n0.342682 0.507996 0.349121\n0.382172 0.511078 0.348175\n0.423279 0.514069 0.347290\n0.465942 0.517181 0.346283\n0.509705 0.520172 0.345428\n0.554199 0.523346 0.344513\n0.597565 0.526459 0.343567\n0.639221 0.529572 0.342651\n0.678680 0.532684 0.341797\n0.715485 0.535828 0.340881\n0.749451 0.538910 0.340027\n0.780457 0.542053 0.339172\n0.808533 0.545288 0.338318\n0.833954 0.548309 0.337524\n0.857025 0.551422 0.336700\n0.877930 0.554596 0.335907\n0.896942 0.557617 0.335114\n0.914276 0.560730 0.334351\n0.929993 0.563751 0.333618\n0.944275 0.566833 0.332886\n0.957214 0.569916 0.332184\n0.968872 0.572845 0.331512\n0.979279 0.575928 0.330994\n0.075989 0.528748 0.355835\n0.100037 0.531708 0.354889\n0.125275 0.534668 0.353912\n0.151703 0.537567 0.352966\n0.179688 0.540558 0.352020\n0.209229 0.543518 0.351044\n0.240662 0.546570 0.350128\n0.274109 0.549561 0.349182\n0.309753 0.552582 0.348206\n0.347534 0.555603 0.347321\n0.387238 0.558685 0.346313\n0.428558 0.561707 0.345428\n0.471405 0.564789 0.344543\n0.515381 0.567871 0.343567\n0.559723 0.570862 0.342682\n0.602966 0.573975 0.341797\n0.644287 0.576935 0.340942\n0.683472 0.580048 0.340057\n0.719971 0.583069 0.339203\n0.753540 0.586090 0.338348\n0.784180 0.589142 0.337524\n0.811920 0.592163 0.336700\n0.836975 0.595123 0.335938\n0.859741 0.598175 0.335114\n0.880463 0.601166 0.334412\n0.899200 0.604065 0.333618\n0.916351 0.607056 0.332886\n0.931824 0.609924 0.332214\n0.945953 0.612885 0.331512\n0.958710 0.615753 0.330994\n0.970184 0.618622 0.330994\n0.980438 0.621460 0.330994\n0.078857 0.575745 0.353943\n0.102997 0.578674 0.352966\n0.128387 0.581512 0.352081\n0.155060 0.584442 0.351135\n0.183228 0.587402 0.350128\n0.213013 0.590271 0.349213\n0.244690 0.593231 0.348267\n0.278442 0.596191 0.347321\n0.314331 0.599060 0.346405\n0.352417 0.602051 0.345459\n0.392334 0.605011 0.344543\n0.433899 0.607880 0.343628\n0.476898 0.610870 0.342773\n0.520935 0.613739 0.341827\n0.565338 0.616699 0.340973\n0.608307 0.619659 0.340057\n0.649384 0.622528 0.339233\n0.688202 0.625458 0.338379\n0.724365 0.628418 0.337555\n0.757629 0.631256 0.336731\n0.787842 0.634125 0.335938\n0.815216 0.637024 0.335205\n0.839966 0.639832 0.334412\n0.862457 0.642670 0.333679\n0.882843 0.645447 0.332947\n0.901459 0.648285 0.332214\n0.918335 0.651123 0.331512\n0.933685 0.653778 0.330994\n0.947601 0.656525 0.330994\n0.960205 0.659302 0.330994\n0.971497 0.661957 0.330994\n0.981598 0.664612 0.330994\n0.081726 0.621124 0.352081\n0.106049 0.623932 0.351135\n0.131561 0.626678 0.350189\n0.158447 0.629517 0.349213\n0.186859 0.632324 0.348267\n0.216827 0.635071 0.347351\n0.248810 0.637939 0.346405\n0.282806 0.640778 0.345459\n0.319031 0.643524 0.344574\n0.357361 0.646362 0.343658\n0.397522 0.649170 0.342773\n0.439270 0.651947 0.341919\n0.482422 0.654785 0.340973\n0.526611 0.657471 0.340088\n0.570862 0.660278 0.339233\n0.613647 0.663086 0.338440\n0.654480 0.665741 0.337555\n0.692932 0.668488 0.336731\n0.728760 0.671295 0.335968\n0.761566 0.673920 0.335236\n0.791412 0.676636 0.334442\n0.818451 0.679352 0.333679\n0.842865 0.681976 0.332947\n0.865143 0.684662 0.332275\n0.885284 0.687225 0.331573\n0.903595 0.689850 0.330994\n0.920288 0.692444 0.330994\n0.935486 0.694946 0.330994\n0.949219 0.697449 0.330994\n0.961639 0.700012 0.330994\n0.972778 0.702393 0.330994\n0.982727 0.704895 0.330994\n0.084656 0.664246 0.350250\n0.109161 0.666901 0.349243\n0.134827 0.669495 0.348328\n0.161896 0.672180 0.347412\n0.190521 0.674896 0.346436\n0.220764 0.677460 0.345551\n0.252960 0.680115 0.344604\n0.287292 0.682831 0.343719\n0.323700 0.685486 0.342804\n0.362274 0.688049 0.341919\n0.402649 0.690674 0.341003\n0.444672 0.693298 0.340149\n0.487976 0.695953 0.339294\n0.532227 0.698486 0.338501\n0.576324 0.701080 0.337585\n0.618896 0.703674 0.336792\n0.659485 0.706207 0.336060\n0.697601 0.708740 0.335236\n0.733032 0.711273 0.334442\n0.765503 0.713715 0.333710\n0.794983 0.716248 0.332977\n0.821655 0.718719 0.332275\n0.845764 0.721100 0.331604\n0.867706 0.723541 0.330994\n0.887634 0.725922 0.330994\n0.905731 0.728271 0.330994\n0.922241 0.730682 0.330994\n0.937195 0.732941 0.330994\n0.950775 0.735260 0.330994\n0.963043 0.737518 0.330994\n0.974030 0.739777 0.330994\n0.983826 0.741974 0.330994\n0.087616 0.704590 0.348358\n0.112305 0.707123 0.347412\n0.138123 0.709534 0.346466\n0.165405 0.712067 0.345581\n0.194183 0.714508 0.344604\n0.224701 0.716980 0.343750\n0.257172 0.719452 0.342834\n0.291779 0.721954 0.341949\n0.328491 0.724304 0.341064\n0.367310 0.726776 0.340149\n0.407898 0.729187 0.339355\n0.450104 0.731598 0.338501\n0.493561 0.734009 0.337646\n0.537872 0.736359 0.336823\n0.581787 0.738708 0.336060\n0.624115 0.741119 0.335266\n0.664429 0.743408 0.334473\n0.702179 0.745728 0.333710\n0.737274 0.748016 0.332977\n0.769287 0.750244 0.332306\n0.798431 0.752533 0.331604\n0.824707 0.754700 0.330994\n0.848602 0.756927 0.330994\n0.870270 0.759155 0.330994\n0.889954 0.761230 0.330994\n0.907837 0.763397 0.330994\n0.924133 0.765533 0.330994\n0.938873 0.767578 0.330994\n0.952271 0.769592 0.330994\n0.964386 0.771667 0.330994\n0.975220 0.773651 0.330994\n0.984863 0.775604 0.330994\n0.090668 0.741852 0.346497\n0.115448 0.744141 0.345581\n0.141479 0.746399 0.344635\n0.168945 0.748718 0.343750\n0.197968 0.751007 0.342834\n0.228668 0.753235 0.341980\n0.261414 0.755463 0.341064\n0.296295 0.757721 0.340210\n0.333313 0.759949 0.339355\n0.372406 0.762177 0.338501\n0.413116 0.764313 0.337646\n0.455505 0.766541 0.336823\n0.499084 0.768707 0.336060\n0.543457 0.770813 0.335266\n0.587250 0.772949 0.334473\n0.629333 0.775085 0.333740\n0.669220 0.777130 0.333038\n0.706726 0.779236 0.332306\n0.741425 0.781311 0.331604\n0.773071 0.783295 0.330994\n0.801819 0.785309 0.330994\n0.827759 0.787292 0.330994\n0.851349 0.789276 0.330994\n0.872742 0.791199 0.330994\n0.892151 0.793091 0.330994\n0.909882 0.795013 0.330994\n0.925934 0.796875 0.330994\n0.940521 0.798706 0.330994\n0.953766 0.800507 0.330994\n0.965698 0.802338 0.330994\n0.976410 0.804077 0.330994\n0.985901 0.805817 0.330994\n0.093719 0.775726 0.344696\n0.118683 0.777802 0.343781\n0.144897 0.779846 0.342865\n0.172516 0.781952 0.341980\n0.201721 0.783997 0.341095\n0.232727 0.786011 0.340240\n0.265717 0.788055 0.339386\n0.300812 0.790039 0.338562\n0.338165 0.792053 0.337677\n0.377472 0.794037 0.336884\n0.418427 0.795990 0.336121\n0.460938 0.797974 0.335297\n0.504669 0.799957 0.334534\n0.549042 0.801819 0.333801\n0.592590 0.803741 0.333069\n0.634430 0.805634 0.332367\n0.674042 0.807465 0.331635\n0.711182 0.809326 0.330994\n0.745422 0.811157 0.330994\n0.776733 0.812988 0.330994\n0.805115 0.814758 0.330994\n0.830780 0.816498 0.330994\n0.854034 0.818237 0.330994\n0.875183 0.820007 0.330994\n0.894379 0.821686 0.330994\n0.911835 0.823364 0.330994\n0.927734 0.825043 0.330994\n0.942139 0.826630 0.330994\n0.955200 0.828278 0.330994\n0.966949 0.829834 0.330994\n0.977509 0.831421 0.330994\n0.986877 0.832977 0.330994\n0.096802 0.806183 0.342926\n0.121918 0.808075 0.342010\n0.148254 0.809906 0.341125\n0.176117 0.811829 0.340240\n0.205536 0.813599 0.339417\n0.236786 0.815521 0.338562\n0.270050 0.817322 0.337677\n0.305420 0.819092 0.336914\n0.342987 0.820923 0.336121\n0.382538 0.822693 0.335327\n0.423706 0.824432 0.334564\n0.466370 0.826202 0.333801\n0.510223 0.827972 0.333069\n0.554565 0.829681 0.332397\n0.597931 0.831390 0.331635\n0.639435 0.833069 0.330994\n0.678772 0.834747 0.330994\n0.715546 0.836395 0.330994\n0.749420 0.837982 0.330994\n0.780334 0.839600 0.330994\n0.808319 0.841217 0.330994\n0.833618 0.842773 0.330994\n0.856628 0.844360 0.330994\n0.877502 0.845917 0.330994\n0.896484 0.847382 0.330994\n0.913727 0.848907 0.330994\n0.929474 0.850372 0.330994\n0.943695 0.851776 0.330994\n0.956573 0.853241 0.330994\n0.968201 0.854614 0.330994\n0.978607 0.856018 0.330994\n0.987823 0.857361 0.330994\n0.099884 0.833588 0.341125\n0.125183 0.835327 0.340271\n0.151703 0.837006 0.339417\n0.179749 0.838684 0.338562\n0.209381 0.840332 0.337769\n0.240906 0.841980 0.336914\n0.274384 0.843628 0.336121\n0.310089 0.845245 0.335327\n0.347839 0.846893 0.334564\n0.387634 0.848480 0.333832\n0.428925 0.850067 0.333130\n0.471741 0.851593 0.332397\n0.515686 0.853210 0.331696\n0.559998 0.854706 0.330994\n0.603119 0.856262 0.330994\n0.644318 0.857758 0.330994\n0.683380 0.859253 0.330994\n0.719788 0.860718 0.330994\n0.753296 0.862152 0.330994\n0.783813 0.863617 0.330994\n0.811462 0.865051 0.330994\n0.836487 0.866425 0.330994\n0.859192 0.867798 0.330994\n0.879822 0.869171 0.330994\n0.898560 0.870514 0.330994\n0.915619 0.871857 0.330994\n0.931122 0.873138 0.330994\n0.945190 0.874420 0.330994\n0.957916 0.875702 0.330994\n0.969391 0.876923 0.330994\n0.979645 0.878174 0.330994\n0.988708 0.879364 0.330994\n0.102997 0.858337 0.339478\n0.128448 0.859833 0.338623\n0.155182 0.861359 0.337769\n0.183411 0.862885 0.336945\n0.213257 0.864380 0.336151\n0.244995 0.865845 0.335388\n0.278748 0.867340 0.334595\n0.314667 0.868805 0.333862\n0.352783 0.870239 0.333130\n0.392700 0.871704 0.332428\n0.434235 0.873108 0.331757\n0.477112 0.874512 0.331085\n0.521088 0.875885 0.330994\n0.565369 0.877289 0.330994\n0.608246 0.878662 0.330994\n0.649200 0.880005 0.330994\n0.687897 0.881317 0.330994\n0.723969 0.882660 0.330994\n0.757080 0.883942 0.330994\n0.787262 0.885254 0.330994\n0.814514 0.886505 0.330994\n0.839203 0.887756 0.330994\n0.861633 0.888977 0.330994\n0.881989 0.890228 0.330994\n0.900543 0.891388 0.330994\n0.917419 0.892578 0.330994\n0.932739 0.893707 0.330994\n0.946625 0.894867 0.330994\n0.959198 0.895996 0.330994\n0.970520 0.897034 0.330994\n0.980652 0.898163 0.330994\n0.989563 0.899200 0.330994\n0.106171 0.880615 0.337769\n0.131714 0.881958 0.337006\n0.158661 0.883362 0.336243\n0.187073 0.884735 0.335388\n0.217133 0.886047 0.334656\n0.249146 0.887421 0.333862\n0.283173 0.888733 0.333191\n0.319336 0.890045 0.332428\n0.357605 0.891327 0.331757\n0.397736 0.892670 0.331085\n0.439423 0.893921 0.330994\n0.482513 0.895203 0.330994\n0.526550 0.896393 0.330994\n0.570679 0.897675 0.330994\n0.613342 0.898895 0.330994\n0.653961 0.900055 0.330994\n0.692352 0.901276 0.330994\n0.728027 0.902435 0.330994\n0.760742 0.903595 0.330994\n0.790527 0.904755 0.330994\n0.817474 0.905884 0.330994\n0.841888 0.906982 0.330994\n0.864014 0.908081 0.330994\n0.884155 0.909180 0.330994\n0.902466 0.910217 0.330994\n0.919128 0.911255 0.330994\n0.934265 0.912231 0.330994\n0.948029 0.913239 0.330994\n0.960449 0.914276 0.330994\n0.971619 0.915253 0.330994\n0.981598 0.916199 0.330994\n0.990417 0.917145 0.330994\n0.109344 0.900696 0.336243\n0.135040 0.901947 0.335449\n0.162170 0.903198 0.334656\n0.190765 0.904419 0.333893\n0.221008 0.905640 0.333221\n0.253265 0.906860 0.332458\n0.287567 0.908051 0.331787\n0.324005 0.909241 0.331116\n0.362457 0.910400 0.330994\n0.402710 0.911530 0.330994\n0.444611 0.912659 0.330994\n0.487793 0.913818 0.330994\n0.531921 0.914948 0.330994\n0.575806 0.916046 0.330994\n0.618225 0.917145 0.330994\n0.658569 0.918182 0.330994\n0.696625 0.919250 0.330994\n0.731995 0.920288 0.330994\n0.764343 0.921326 0.330994\n0.793732 0.922363 0.330994\n0.820343 0.923340 0.330994\n0.844452 0.924316 0.330994\n0.866333 0.925323 0.330994\n0.886230 0.926239 0.330994\n0.904327 0.927185 0.330994\n0.920807 0.928101 0.330994\n0.935760 0.928986 0.330994\n0.949341 0.929901 0.330994\n0.961639 0.930756 0.330994\n0.972656 0.931580 0.330994\n0.982513 0.932465 0.330994\n0.991180 0.933258 0.330994\n0.112549 0.918884 0.334686\n0.138397 0.919983 0.333893\n0.165680 0.921082 0.333221\n0.194489 0.922241 0.332458\n0.224884 0.923279 0.331787\n0.257324 0.924377 0.331116\n0.291931 0.925446 0.330994\n0.328613 0.926483 0.330994\n0.367279 0.927582 0.330994\n0.407715 0.928558 0.330994\n0.449738 0.929626 0.330994\n0.493042 0.930634 0.330994\n0.537170 0.931580 0.330994\n0.580963 0.932617 0.330994\n0.623077 0.933563 0.330994\n0.663116 0.934509 0.330994\n0.700867 0.935486 0.330994\n0.735779 0.936401 0.330994\n0.767792 0.937317 0.330994\n0.796814 0.938202 0.330994\n0.823090 0.939087 0.330994\n0.846924 0.939972 0.330994\n0.868591 0.940826 0.330994\n0.888184 0.941650 0.330994\n0.906097 0.942474 0.330994\n0.922424 0.943298 0.330994\n0.937195 0.944092 0.330994\n0.950623 0.944855 0.330994\n0.962769 0.945648 0.330994\n0.973633 0.946350 0.330994\n0.983368 0.947083 0.330994\n0.991943 0.947784 0.330994\n0.115692 0.935272 0.333221\n0.141693 0.936249 0.332489\n0.169159 0.937286 0.331818\n0.198120 0.938263 0.331146\n0.228821 0.939240 0.330994\n0.261475 0.940186 0.330994\n0.296295 0.941162 0.330994\n0.333191 0.942078 0.330994\n0.372070 0.943054 0.330994\n0.412720 0.943970 0.330994\n0.454803 0.944855 0.330994\n0.498199 0.945770 0.330994\n0.542358 0.946625 0.330994\n0.585907 0.947510 0.330994\n0.627808 0.948364 0.330994\n0.667572 0.949219 0.330994\n0.704895 0.950043 0.330994\n0.739532 0.950867 0.330994\n0.771118 0.951660 0.330994\n0.799805 0.952454 0.330994\n0.825714 0.953217 0.330994\n0.849304 0.954010 0.330994\n0.870728 0.954773 0.330994\n0.890137 0.955505 0.330994\n0.907837 0.956238 0.330994\n0.923950 0.956940 0.330994\n0.938538 0.957611 0.330994\n0.951813 0.958282 0.330994\n0.963806 0.958954 0.330994\n0.974579 0.959595 0.330994\n0.984192 0.960236 0.330994\n0.992615 0.960846 0.330994\n0.118866 0.950012 0.331818\n0.145050 0.950897 0.331207\n0.172607 0.951813 0.330994\n0.201813 0.952698 0.330994\n0.232666 0.953583 0.330994\n0.265594 0.954437 0.330994\n0.300537 0.955231 0.330994\n0.337738 0.956116 0.330994\n0.376831 0.956940 0.330994\n0.417572 0.957733 0.330994\n0.459839 0.958527 0.330994\n0.503326 0.959351 0.330994\n0.547363 0.960114 0.330994\n0.590759 0.960876 0.330994\n0.632416 0.961639 0.330994\n0.671844 0.962372 0.330994\n0.708832 0.963104 0.330994\n0.743042 0.963806 0.330994\n0.774353 0.964539 0.330994\n0.802673 0.965240 0.330994\n0.828308 0.965912 0.330994\n0.851593 0.966614 0.330994\n0.872772 0.967255 0.330994\n0.891937 0.967865 0.330994\n0.909485 0.968506 0.330994\n0.925415 0.969116 0.330994\n0.939880 0.969696 0.330994\n0.953033 0.970306 0.330994\n0.964844 0.970856 0.330994\n0.975494 0.971436 0.330994\n0.984955 0.971985 0.330994\n0.993286 0.972473 0.330994\n0.122040 0.963257 0.330994\n0.148315 0.964020 0.330994\n0.176117 0.964813 0.330994\n0.205475 0.965607 0.330994\n0.236572 0.966370 0.330994\n0.269684 0.967133 0.330994\n0.304901 0.967834 0.330994\n0.342224 0.968597 0.330994\n0.381470 0.969360 0.330994\n0.422394 0.970032 0.330994\n0.464813 0.970764 0.330994\n0.508270 0.971466 0.330994\n0.552338 0.972137 0.330994\n0.595459 0.972809 0.330994\n0.636871 0.973480 0.330994\n0.675964 0.974091 0.330994\n0.712646 0.974762 0.330994\n0.746521 0.975372 0.330994\n0.777405 0.975983 0.330994\n0.805420 0.976593 0.330994\n0.830811 0.977142 0.330994\n0.853790 0.977753 0.330994\n0.874695 0.978333 0.330994\n0.893738 0.978851 0.330994\n0.911041 0.979401 0.330994\n0.926788 0.979919 0.330994\n0.941132 0.980438 0.330994\n0.954102 0.980927 0.330994\n0.965820 0.981415 0.330994\n0.976318 0.981903 0.330994\n0.985687 0.982361 0.330994\n0.993896 0.982788 0.330994\n0.041626 0.002899 0.417694\n0.063477 0.003632 0.417267\n0.086243 0.004425 0.416779\n0.110138 0.005219 0.416290\n0.135193 0.006073 0.415771\n0.161591 0.006927 0.415222\n0.189392 0.007782 0.414612\n0.218933 0.008667 0.414001\n0.250183 0.009613 0.413361\n0.283569 0.010559 0.412720\n0.319122 0.011597 0.412018\n0.356598 0.012573 0.411285\n0.395966 0.013641 0.410492\n0.437012 0.014679 0.409760\n0.479340 0.015747 0.408966\n0.522766 0.016876 0.408142\n0.566498 0.018036 0.407349\n0.608795 0.019165 0.406464\n0.649384 0.020325 0.405640\n0.687714 0.021515 0.404755\n0.723480 0.022766 0.403870\n0.756500 0.023987 0.402954\n0.786530 0.025238 0.402039\n0.813751 0.026520 0.401123\n0.838531 0.027863 0.400208\n0.860992 0.029114 0.399261\n0.881409 0.030487 0.398254\n0.900024 0.031860 0.397308\n0.916962 0.033203 0.396332\n0.932373 0.034607 0.395386\n0.946381 0.035980 0.394409\n0.959045 0.037415 0.393402\n0.043091 0.024017 0.416840\n0.065063 0.024872 0.416290\n0.087952 0.025696 0.415771\n0.112000 0.026581 0.415222\n0.137207 0.027496 0.414673\n0.163788 0.028473 0.414001\n0.191772 0.029419 0.413391\n0.221466 0.030396 0.412720\n0.253021 0.031433 0.412018\n0.286621 0.032471 0.411285\n0.322418 0.033600 0.410553\n0.360168 0.034637 0.409821\n0.399780 0.035797 0.408997\n0.441010 0.036987 0.408142\n0.483582 0.038116 0.407379\n0.527161 0.039337 0.406555\n0.570862 0.040527 0.405670\n0.613098 0.041779 0.404785\n0.653503 0.043060 0.403900\n0.691589 0.044312 0.403015\n0.727173 0.045654 0.402100\n0.759888 0.046967 0.401184\n0.789673 0.048309 0.400269\n0.816650 0.049713 0.399292\n0.841125 0.051117 0.398285\n0.863403 0.052490 0.397339\n0.883636 0.053894 0.396393\n0.902069 0.055359 0.395386\n0.918823 0.056824 0.394409\n0.934082 0.058289 0.393433\n0.947937 0.059753 0.392456\n0.960480 0.061279 0.391449\n0.044647 0.046112 0.415802\n0.066742 0.047058 0.415222\n0.089813 0.048004 0.414673\n0.113953 0.048981 0.414032\n0.139343 0.049988 0.413391\n0.166046 0.051025 0.412781\n0.194244 0.052063 0.412048\n0.224213 0.053162 0.411285\n0.255981 0.054291 0.410583\n0.289856 0.055420 0.409821\n0.325928 0.056610 0.408997\n0.363922 0.057770 0.408234\n0.403809 0.059021 0.407379\n0.445190 0.060303 0.406555\n0.487946 0.061523 0.405701\n0.531708 0.062805 0.404816\n0.575348 0.064148 0.403992\n0.617462 0.065491 0.403015\n0.657715 0.066864 0.402100\n0.695587 0.068207 0.401245\n0.730896 0.069611 0.400269\n0.763367 0.071045 0.399292\n0.792816 0.072479 0.398315\n0.819580 0.073944 0.397369\n0.843811 0.075439 0.396423\n0.865814 0.076935 0.395477\n0.885895 0.078461 0.394440\n0.904144 0.080017 0.393433\n0.920715 0.081543 0.392456\n0.935852 0.083130 0.391449\n0.949524 0.084686 0.390503\n0.961914 0.086304 0.389496\n0.046356 0.069305 0.414673\n0.068542 0.070312 0.414032\n0.091766 0.071381 0.413391\n0.116058 0.072449 0.412781\n0.141602 0.073578 0.412048\n0.168488 0.074677 0.411316\n0.196899 0.075867 0.410583\n0.227081 0.077026 0.409851\n0.259064 0.078217 0.409027\n0.293274 0.079468 0.408264\n0.329559 0.080811 0.407410\n0.367828 0.082062 0.406586\n0.407898 0.083374 0.405701\n0.449554 0.084747 0.404816\n0.492493 0.086090 0.403992\n0.536377 0.087494 0.403076\n0.579956 0.088898 0.402130\n0.621948 0.090363 0.401245\n0.662048 0.091827 0.400299\n0.699677 0.093292 0.399323\n0.734711 0.094788 0.398315\n0.766907 0.096344 0.397369\n0.796021 0.097870 0.396484\n0.822479 0.099426 0.395477\n0.846527 0.101044 0.394440\n0.868347 0.102631 0.393494\n0.888153 0.104279 0.392517\n0.906189 0.105865 0.391510\n0.922638 0.107544 0.390503\n0.937592 0.109253 0.389496\n0.951111 0.110931 0.388519\n0.963379 0.112640 0.387512\n0.048096 0.093628 0.413452\n0.070465 0.094757 0.412811\n0.093811 0.095917 0.412109\n0.118256 0.097076 0.411377\n0.143982 0.098358 0.410645\n0.171051 0.099548 0.409851\n0.199677 0.100830 0.409088\n0.230072 0.102112 0.408264\n0.262329 0.103455 0.407501\n0.296753 0.104828 0.406586\n0.333405 0.106201 0.405731\n0.371857 0.107574 0.404877\n0.412201 0.109009 0.404022\n0.454010 0.110474 0.403107\n0.497131 0.111969 0.402191\n0.541138 0.113495 0.401276\n0.584625 0.114960 0.400360\n0.626526 0.116547 0.399384\n0.666382 0.118164 0.398407\n0.703796 0.119690 0.397430\n0.738556 0.121338 0.396484\n0.770447 0.122986 0.395508\n0.799286 0.124634 0.394501\n0.825470 0.126312 0.393555\n0.849213 0.128021 0.392517\n0.870789 0.129730 0.391541\n0.890411 0.131500 0.390533\n0.908264 0.133209 0.389526\n0.924530 0.135010 0.388519\n0.939301 0.136780 0.387604\n0.952698 0.138580 0.386566\n0.964813 0.140442 0.385590\n0.050018 0.119324 0.412109\n0.072510 0.120544 0.411377\n0.095978 0.121796 0.410645\n0.120575 0.123108 0.409912\n0.146454 0.124451 0.409088\n0.173737 0.125793 0.408295\n0.202576 0.127197 0.407501\n0.233185 0.128632 0.406647\n0.265717 0.130035 0.405792\n0.300446 0.131500 0.404907\n0.337280 0.132996 0.404022\n0.376068 0.134521 0.403107\n0.416656 0.136078 0.402191\n0.458649 0.137634 0.401306\n0.501923 0.139252 0.400360\n0.546051 0.140900 0.399414\n0.589417 0.142548 0.398438\n0.631165 0.144196 0.397491\n0.670807 0.145935 0.396515\n0.707977 0.147614 0.395538\n0.742432 0.149353 0.394562\n0.773987 0.151154 0.393555\n0.802521 0.152924 0.392548\n0.828430 0.154755 0.391541\n0.851898 0.156494 0.390564\n0.873260 0.158386 0.389618\n0.892700 0.160248 0.388580\n0.910370 0.162140 0.387634\n0.926422 0.164032 0.386597\n0.941040 0.165955 0.385620\n0.954285 0.167847 0.384674\n0.966217 0.169800 0.383667\n0.052002 0.146423 0.410706\n0.074615 0.147797 0.409912\n0.098236 0.149170 0.409149\n0.123016 0.150574 0.408295\n0.149078 0.152069 0.407532\n0.176514 0.153534 0.406677\n0.205566 0.155029 0.405792\n0.236420 0.156616 0.404907\n0.269226 0.158173 0.404083\n0.304260 0.159760 0.403137\n0.341278 0.161377 0.402222\n0.380371 0.163055 0.401306\n0.421173 0.164734 0.400391\n0.463409 0.166412 0.399414\n0.506897 0.168182 0.398438\n0.551117 0.169952 0.397491\n0.594360 0.171692 0.396576\n0.635895 0.173523 0.395538\n0.675323 0.175385 0.394562\n0.712189 0.177216 0.393646\n0.746368 0.179077 0.392578\n0.777557 0.181030 0.391602\n0.805817 0.182892 0.390625\n0.831421 0.184875 0.389618\n0.854645 0.186798 0.388611\n0.875763 0.188782 0.387634\n0.894958 0.190796 0.386597\n0.912415 0.192780 0.385651\n0.928314 0.194855 0.384674\n0.942780 0.196899 0.383698\n0.955841 0.198944 0.382690\n0.967651 0.201050 0.381775\n0.054047 0.175171 0.409149\n0.076813 0.176666 0.408356\n0.100616 0.178162 0.407532\n0.125549 0.179749 0.406677\n0.151764 0.181335 0.405853\n0.179443 0.182983 0.404968\n0.208710 0.184631 0.404083\n0.239838 0.186310 0.403137\n0.272888 0.188019 0.402283\n0.308197 0.189789 0.401367\n0.345551 0.191498 0.400452\n0.384857 0.193329 0.399475\n0.425873 0.195190 0.398468\n0.468292 0.197021 0.397522\n0.511963 0.198914 0.396576\n0.556152 0.200836 0.395599\n0.599274 0.202728 0.394623\n0.640686 0.204681 0.393646\n0.679840 0.206726 0.392578\n0.716431 0.208679 0.391663\n0.750275 0.210693 0.390625\n0.781097 0.212738 0.389679\n0.809052 0.214813 0.388672\n0.834381 0.216949 0.387665\n0.857330 0.219025 0.386688\n0.878235 0.221130 0.385681\n0.897217 0.223328 0.384705\n0.914520 0.225433 0.383789\n0.930206 0.227631 0.382751\n0.944489 0.229919 0.381805\n0.957367 0.232056 0.380859\n0.969025 0.234283 0.379883\n0.056274 0.205750 0.407562\n0.079163 0.207397 0.406738\n0.103027 0.209045 0.405853\n0.128174 0.210754 0.404999\n0.154633 0.212555 0.404083\n0.182465 0.214294 0.403198\n0.211975 0.216156 0.402283\n0.243256 0.217926 0.401398\n0.276672 0.219818 0.400452\n0.312225 0.221741 0.399475\n0.349823 0.223663 0.398529\n0.389404 0.225647 0.397552\n0.430664 0.227600 0.396637\n0.473328 0.229645 0.395660\n0.517120 0.231689 0.394623\n0.561310 0.233765 0.393707\n0.604279 0.235809 0.392609\n0.645447 0.237946 0.391663\n0.684387 0.240112 0.390686\n0.720673 0.242310 0.389679\n0.754181 0.244476 0.388672\n0.784698 0.246613 0.387695\n0.812317 0.248901 0.386719\n0.837311 0.251190 0.385681\n0.860046 0.253418 0.384735\n0.880707 0.255768 0.383789\n0.899475 0.258087 0.382782\n0.916565 0.260376 0.381836\n0.932098 0.262756 0.380859\n0.946198 0.265137 0.379883\n0.958923 0.267487 0.378998\n0.970428 0.269897 0.378052\n0.058533 0.238373 0.405884\n0.081573 0.240204 0.404999\n0.105621 0.242035 0.404175\n0.130890 0.243927 0.403229\n0.157532 0.245850 0.402344\n0.185547 0.247803 0.401398\n0.215332 0.249786 0.400482\n0.246857 0.251740 0.399536\n0.280548 0.253845 0.398590\n0.316406 0.255951 0.397583\n0.354309 0.258026 0.396667\n0.394135 0.260162 0.395660\n0.435638 0.262360 0.394653\n0.478394 0.264496 0.393738\n0.522369 0.266724 0.392700\n0.566528 0.269012 0.391693\n0.609344 0.271240 0.390717\n0.650330 0.273560 0.389709\n0.688904 0.275879 0.388733\n0.724945 0.278229 0.387695\n0.758148 0.280609 0.386719\n0.788239 0.282990 0.385773\n0.815552 0.285431 0.384735\n0.840302 0.287903 0.383820\n0.862732 0.290314 0.382843\n0.883148 0.292816 0.381836\n0.901733 0.295319 0.380890\n0.918579 0.297821 0.380005\n0.933960 0.300385 0.379059\n0.947845 0.302917 0.378082\n0.960449 0.305420 0.377167\n0.971771 0.308044 0.376282\n0.060883 0.273346 0.404205\n0.084045 0.275360 0.403229\n0.108276 0.277344 0.402374\n0.133728 0.279449 0.401459\n0.160492 0.281525 0.400513\n0.188812 0.283691 0.399567\n0.218781 0.285858 0.398590\n0.250610 0.288055 0.397675\n0.284546 0.290314 0.396667\n0.320709 0.292603 0.395691\n0.358917 0.294891 0.394745\n0.398895 0.297211 0.393738\n0.440613 0.299591 0.392700\n0.483612 0.301910 0.391724\n0.527740 0.304352 0.390717\n0.571777 0.306763 0.389771\n0.614441 0.309296 0.388763\n0.655151 0.311768 0.387787\n0.693542 0.314209 0.386780\n0.729218 0.316772 0.385803\n0.762024 0.319366 0.384796\n0.791779 0.321899 0.383850\n0.818817 0.324524 0.382843\n0.843262 0.327179 0.381866\n0.865417 0.329742 0.380920\n0.885590 0.332428 0.380005\n0.903931 0.335114 0.379059\n0.920624 0.337738 0.378174\n0.935760 0.340424 0.377258\n0.949524 0.343140 0.376343\n0.961945 0.345917 0.375427\n0.973114 0.348602 0.374542\n0.063324 0.310852 0.402374\n0.086609 0.312988 0.401459\n0.110992 0.315247 0.400513\n0.136658 0.317505 0.399597\n0.163605 0.319794 0.398621\n0.192108 0.322144 0.397675\n0.222351 0.324493 0.396698\n0.254425 0.326843 0.395752\n0.288696 0.329315 0.394745\n0.325134 0.331787 0.393768\n0.363556 0.334229 0.392761\n0.403870 0.336731 0.391785\n0.445770 0.339355 0.390778\n0.488922 0.341827 0.389771\n0.533142 0.344421 0.388763\n0.577087 0.347046 0.387817\n0.619629 0.349731 0.386780\n0.660095 0.352356 0.385803\n0.698120 0.355011 0.384857\n0.733490 0.357727 0.383850\n0.765961 0.360474 0.382904\n0.795349 0.363190 0.381958\n0.822021 0.365967 0.380951\n0.846191 0.368744 0.380035\n0.868073 0.371521 0.379120\n0.888031 0.374359 0.378174\n0.906097 0.377106 0.377289\n0.922638 0.379944 0.376343\n0.937592 0.382843 0.375488\n0.951172 0.385620 0.374573\n0.963440 0.388489 0.373749\n0.974457 0.391418 0.372864\n0.065826 0.350769 0.400574\n0.089264 0.353149 0.399597\n0.113831 0.355530 0.398682\n0.139648 0.358002 0.397705\n0.166779 0.360443 0.396759\n0.195526 0.362976 0.395782\n0.225983 0.365509 0.394775\n0.258362 0.368042 0.393829\n0.292877 0.370667 0.392761\n0.329620 0.373352 0.391785\n0.368317 0.375916 0.390808\n0.408813 0.378632 0.389832\n0.450958 0.381317 0.388794\n0.494293 0.384033 0.387848\n0.538635 0.386780 0.386871\n0.582458 0.389526 0.385834\n0.624725 0.392365 0.384888\n0.664978 0.395233 0.383881\n0.702667 0.397949 0.382935\n0.737701 0.400879 0.381958\n0.769806 0.403809 0.380951\n0.798859 0.406586 0.380066\n0.825195 0.409546 0.379150\n0.849060 0.412476 0.378204\n0.870728 0.415375 0.377289\n0.890411 0.418304 0.376373\n0.908295 0.421234 0.375519\n0.924591 0.424194 0.374603\n0.939392 0.427216 0.373779\n0.952789 0.430084 0.372955\n0.964874 0.433136 0.372101\n0.975739 0.436127 0.371307\n0.068420 0.392883 0.398682\n0.092010 0.395416 0.397736\n0.116699 0.397949 0.396790\n0.142700 0.400635 0.395782\n0.170044 0.403229 0.394806\n0.199005 0.405914 0.393829\n0.229736 0.408661 0.392822\n0.262360 0.411316 0.391815\n0.297211 0.414124 0.390808\n0.334229 0.416931 0.389862\n0.373169 0.419678 0.388885\n0.413879 0.422546 0.387848\n0.456146 0.425323 0.386902\n0.499756 0.428253 0.385864\n0.544189 0.431152 0.384888\n0.587830 0.434082 0.383942\n0.629883 0.437012 0.382935\n0.669830 0.439972 0.381989\n0.707275 0.442902 0.381042\n0.741943 0.445923 0.380066\n0.773651 0.448975 0.379150\n0.802338 0.451874 0.378235\n0.828339 0.454895 0.377319\n0.851898 0.457886 0.376434\n0.873322 0.460938 0.375519\n0.892792 0.464020 0.374603\n0.910461 0.467010 0.373779\n0.926544 0.470123 0.372986\n0.941193 0.473175 0.372101\n0.954407 0.476196 0.371307\n0.966339 0.479248 0.370514\n0.977020 0.482300 0.369720\n0.071045 0.437012 0.396790\n0.094757 0.439667 0.395844\n0.119659 0.442383 0.394867\n0.145844 0.445221 0.393860\n0.173401 0.447968 0.392883\n0.202576 0.450775 0.391876\n0.233551 0.453674 0.390869\n0.266418 0.456543 0.389893\n0.301605 0.459412 0.388916\n0.338898 0.462311 0.387878\n0.378052 0.465210 0.386902\n0.419098 0.468170 0.385864\n0.461517 0.471130 0.384949\n0.505219 0.474152 0.384003\n0.549652 0.477173 0.382965\n0.593231 0.480194 0.382019\n0.635040 0.483276 0.381073\n0.674744 0.486328 0.380127\n0.711761 0.489349 0.379181\n0.746124 0.492493 0.378265\n0.777405 0.495605 0.377319\n0.805786 0.498596 0.376434\n0.831451 0.501770 0.375519\n0.854706 0.504822 0.374634\n0.875885 0.507935 0.373810\n0.895081 0.511108 0.372986\n0.912537 0.514160 0.372162\n0.928467 0.517303 0.371338\n0.942902 0.520447 0.370514\n0.955933 0.523499 0.369781\n0.967712 0.526642 0.369019\n0.978302 0.529755 0.368317\n0.073792 0.482758 0.394867\n0.097626 0.485565 0.393921\n0.122742 0.488434 0.392883\n0.149078 0.491333 0.391876\n0.176819 0.494232 0.390900\n0.206238 0.497162 0.389893\n0.237427 0.500122 0.388916\n0.270630 0.503113 0.387939\n0.306091 0.506165 0.386932\n0.343567 0.509064 0.385956\n0.383057 0.512146 0.384979\n0.424286 0.515259 0.384003\n0.466919 0.518311 0.383026\n0.510803 0.521362 0.382019\n0.555267 0.524475 0.381073\n0.598572 0.527557 0.380157\n0.640137 0.530701 0.379272\n0.679535 0.533844 0.378265\n0.716278 0.536987 0.377380\n0.750244 0.540131 0.376465\n0.781128 0.543182 0.375641\n0.809143 0.546356 0.374725\n0.834534 0.549469 0.373840\n0.857513 0.552582 0.373016\n0.878418 0.555695 0.372162\n0.897400 0.558807 0.371338\n0.914642 0.561829 0.370575\n0.930328 0.564941 0.369843\n0.944611 0.567993 0.369049\n0.957489 0.571014 0.368347\n0.969116 0.574036 0.367615\n0.979462 0.576935 0.367371\n0.076569 0.529877 0.392914\n0.100586 0.532684 0.391968\n0.125824 0.535706 0.390900\n0.152374 0.538727 0.389954\n0.180298 0.541595 0.388947\n0.209961 0.544647 0.387939\n0.241455 0.547668 0.386932\n0.274902 0.550690 0.385986\n0.310638 0.553711 0.384979\n0.348389 0.556732 0.384033\n0.388153 0.559814 0.383026\n0.429565 0.562866 0.382050\n0.472382 0.565857 0.381104\n0.516388 0.568939 0.380157\n0.560822 0.572021 0.379272\n0.603912 0.575012 0.378326\n0.645294 0.578094 0.377441\n0.684357 0.581207 0.376465\n0.720764 0.584106 0.375641\n0.754333 0.587219 0.374725\n0.784912 0.590271 0.373840\n0.812500 0.593231 0.373047\n0.837555 0.596252 0.372223\n0.860229 0.599213 0.371368\n0.880890 0.602173 0.370575\n0.899658 0.605164 0.369843\n0.916718 0.608032 0.369110\n0.932190 0.611023 0.368347\n0.946289 0.613922 0.367615\n0.958984 0.616791 0.367371\n0.970459 0.619690 0.367371\n0.980652 0.622528 0.367371\n0.079376 0.576813 0.390930\n0.103577 0.579681 0.389984\n0.128998 0.582581 0.388977\n0.155731 0.585541 0.388000\n0.183899 0.588409 0.387054\n0.213715 0.591431 0.385986\n0.245453 0.594360 0.385040\n0.279236 0.597198 0.384064\n0.315277 0.600220 0.383057\n0.353302 0.603058 0.382111\n0.393250 0.606079 0.381165\n0.434906 0.608978 0.380219\n0.477936 0.611908 0.379303\n0.522034 0.614868 0.378387\n0.566406 0.617859 0.377441\n0.609253 0.620728 0.376526\n0.650391 0.623657 0.375671\n0.689087 0.626556 0.374756\n0.725189 0.629486 0.373901\n0.758362 0.632324 0.373047\n0.788483 0.635162 0.372253\n0.815796 0.638031 0.371429\n0.840546 0.640900 0.370636\n0.862946 0.643677 0.369873\n0.883331 0.646515 0.369110\n0.901855 0.649323 0.368408\n0.918701 0.652069 0.367676\n0.934021 0.654816 0.367371\n0.947906 0.657593 0.367371\n0.960449 0.660217 0.367371\n0.971771 0.662903 0.367371\n0.981812 0.665558 0.367371\n0.082275 0.622162 0.388977\n0.106628 0.624939 0.388031\n0.132202 0.627716 0.387054\n0.159149 0.630554 0.386017\n0.187469 0.633331 0.385071\n0.217590 0.636139 0.384064\n0.249603 0.639008 0.383118\n0.283630 0.641754 0.382172\n0.319977 0.644531 0.381165\n0.358215 0.647339 0.380249\n0.398438 0.650146 0.379333\n0.440277 0.652985 0.378387\n0.483429 0.655731 0.377472\n0.527649 0.658508 0.376556\n0.571869 0.661316 0.375671\n0.614594 0.664062 0.374786\n0.655426 0.666779 0.373901\n0.693817 0.669556 0.373108\n0.729523 0.672272 0.372253\n0.762360 0.674988 0.371429\n0.792084 0.677612 0.370667\n0.819031 0.680298 0.369873\n0.843475 0.683014 0.369171\n0.865570 0.685577 0.368408\n0.885742 0.688202 0.367676\n0.904022 0.690765 0.367371\n0.920654 0.693298 0.367371\n0.935760 0.695923 0.367371\n0.949524 0.698395 0.367371\n0.961884 0.700867 0.367371\n0.973022 0.703339 0.367371\n0.982941 0.705750 0.367371\n0.085205 0.665161 0.387085\n0.109711 0.667816 0.386047\n0.135468 0.670532 0.385101\n0.162567 0.673218 0.384125\n0.191162 0.675812 0.383148\n0.221497 0.678497 0.382172\n0.253693 0.681061 0.381226\n0.288116 0.683777 0.380249\n0.324677 0.686401 0.379333\n0.363190 0.688995 0.378418\n0.403656 0.691620 0.377502\n0.445740 0.694305 0.376587\n0.488953 0.696869 0.375702\n0.533295 0.699432 0.374786\n0.577393 0.702087 0.373932\n0.619873 0.704590 0.373108\n0.660400 0.707153 0.372284\n0.698395 0.709625 0.371490\n0.733826 0.712189 0.370667\n0.766205 0.714691 0.369904\n0.795593 0.717102 0.369171\n0.822235 0.719604 0.368469\n0.846313 0.722076 0.367737\n0.868195 0.724396 0.367371\n0.888031 0.726807 0.367371\n0.906128 0.729218 0.367371\n0.922607 0.731476 0.367371\n0.937531 0.733826 0.367371\n0.951050 0.736053 0.367371\n0.963287 0.738342 0.367371\n0.974243 0.740570 0.367371\n0.984009 0.742737 0.367371\n0.088226 0.705566 0.385101\n0.112823 0.707977 0.384155\n0.138794 0.710510 0.383148\n0.166077 0.712982 0.382202\n0.194916 0.715424 0.381256\n0.225433 0.717926 0.380310\n0.257935 0.720337 0.379364\n0.292603 0.722809 0.378448\n0.329468 0.725281 0.377502\n0.368195 0.727661 0.376587\n0.408875 0.730103 0.375702\n0.451111 0.732513 0.374817\n0.494507 0.734833 0.373993\n0.538971 0.737274 0.373169\n0.582886 0.739624 0.372284\n0.625092 0.741943 0.371490\n0.665314 0.744232 0.370697\n0.703003 0.746552 0.369934\n0.738037 0.748810 0.369202\n0.770050 0.751099 0.368469\n0.799011 0.753326 0.367737\n0.825287 0.755554 0.367371\n0.849121 0.757751 0.367371\n0.870728 0.759888 0.367371\n0.890350 0.762054 0.367371\n0.908234 0.764191 0.367371\n0.924438 0.766235 0.367371\n0.939209 0.768341 0.367371\n0.952545 0.770325 0.367371\n0.964630 0.772400 0.367371\n0.975464 0.774384 0.367371\n0.985046 0.776306 0.367371\n0.091248 0.742676 0.383209\n0.116028 0.744965 0.382233\n0.142151 0.747314 0.381287\n0.169556 0.749542 0.380341\n0.198669 0.751831 0.379425\n0.229462 0.754089 0.378448\n0.262207 0.756287 0.377533\n0.297180 0.758545 0.376648\n0.334229 0.760742 0.375732\n0.373322 0.762939 0.374908\n0.414154 0.765137 0.373993\n0.456573 0.767334 0.373169\n0.500061 0.769470 0.372314\n0.544586 0.771637 0.371521\n0.588226 0.773712 0.370758\n0.630249 0.775818 0.369934\n0.670197 0.777954 0.369202\n0.707520 0.779968 0.368500\n0.742157 0.782043 0.367767\n0.773834 0.784058 0.367371\n0.802399 0.786041 0.367371\n0.828339 0.788025 0.367371\n0.851837 0.789978 0.367371\n0.873169 0.791901 0.367371\n0.892609 0.793823 0.367371\n0.910217 0.795654 0.367371\n0.926239 0.797516 0.367371\n0.940857 0.799408 0.367371\n0.954010 0.801178 0.367371\n0.965942 0.802948 0.367371\n0.976624 0.804718 0.367371\n0.986084 0.806427 0.367371\n0.094299 0.776520 0.381287\n0.119263 0.778534 0.380341\n0.145508 0.780609 0.379425\n0.173187 0.782684 0.378540\n0.202454 0.784760 0.377625\n0.233521 0.786804 0.376648\n0.266479 0.788757 0.375793\n0.301727 0.790771 0.374908\n0.339081 0.792816 0.374023\n0.378387 0.794739 0.373199\n0.419464 0.796753 0.372406\n0.461975 0.798706 0.371582\n0.505615 0.800598 0.370758\n0.550140 0.802521 0.369934\n0.593536 0.804382 0.369263\n0.635345 0.806305 0.368500\n0.674988 0.808197 0.367767\n0.711914 0.809967 0.367371\n0.746216 0.811829 0.367371\n0.777405 0.813629 0.367371\n0.805664 0.815430 0.367371\n0.831268 0.817200 0.367371\n0.854553 0.818939 0.367371\n0.875580 0.820618 0.367371\n0.894775 0.822327 0.367371\n0.912170 0.823975 0.367371\n0.928040 0.825623 0.367371\n0.942444 0.827240 0.367371\n0.955444 0.828857 0.367371\n0.967194 0.830414 0.367371\n0.977722 0.831970 0.367371\n0.987030 0.833496 0.367371\n0.097351 0.806885 0.379456\n0.122498 0.808746 0.378571\n0.148956 0.810638 0.377625\n0.176788 0.812469 0.376740\n0.206268 0.814331 0.375793\n0.237549 0.816162 0.374939\n0.270844 0.817963 0.374054\n0.306335 0.819794 0.373230\n0.343964 0.821625 0.372406\n0.383423 0.823334 0.371582\n0.424652 0.825104 0.370758\n0.467316 0.826813 0.369965\n0.511139 0.828583 0.369263\n0.555573 0.830322 0.368530\n0.598877 0.831970 0.367828\n0.640350 0.833649 0.367371\n0.679657 0.835358 0.367371\n0.716278 0.836975 0.367371\n0.750183 0.838593 0.367371\n0.781036 0.840240 0.367371\n0.808929 0.841766 0.367371\n0.834167 0.843384 0.367371\n0.857147 0.844910 0.367371\n0.877930 0.846436 0.367371\n0.896851 0.847931 0.367371\n0.914062 0.849426 0.367371\n0.929779 0.850891 0.367371\n0.943970 0.852325 0.367371\n0.956818 0.853729 0.367371\n0.968414 0.855133 0.367371\n0.978821 0.856537 0.367371\n0.987976 0.857819 0.367371\n0.100464 0.834198 0.377655\n0.125793 0.835907 0.376740\n0.152405 0.837646 0.375854\n0.180420 0.839264 0.374969\n0.210114 0.840912 0.374054\n0.241638 0.842621 0.373230\n0.275177 0.844208 0.372437\n0.310944 0.845825 0.371613\n0.348846 0.847473 0.370789\n0.388519 0.849060 0.370056\n0.429962 0.850647 0.369293\n0.472717 0.852173 0.368561\n0.516724 0.853760 0.367859\n0.561005 0.855286 0.367371\n0.604065 0.856781 0.367371\n0.645294 0.858307 0.367371\n0.684265 0.859802 0.367371\n0.720551 0.861237 0.367371\n0.753998 0.862701 0.367371\n0.784515 0.864136 0.367371\n0.812042 0.865570 0.367371\n0.837006 0.866943 0.367371\n0.859650 0.868347 0.367371\n0.880188 0.869659 0.367371\n0.898926 0.871002 0.367371\n0.915955 0.872314 0.367371\n0.931396 0.873596 0.367371\n0.945465 0.874908 0.367371\n0.958130 0.876160 0.367371\n0.969574 0.877350 0.367371\n0.979858 0.878601 0.367371\n0.988861 0.879791 0.367371\n0.103577 0.858856 0.375885\n0.129089 0.860443 0.374969\n0.155853 0.861938 0.374115\n0.184082 0.863434 0.373322\n0.213989 0.864929 0.372437\n0.245728 0.866425 0.371613\n0.279572 0.867859 0.370850\n0.315613 0.869324 0.370056\n0.353668 0.870758 0.369354\n0.393585 0.872223 0.368561\n0.435181 0.873627 0.367859\n0.478088 0.875031 0.367371\n0.522156 0.876404 0.367371\n0.566406 0.877808 0.367371\n0.609161 0.879120 0.367371\n0.650116 0.880524 0.367371\n0.688782 0.881836 0.367371\n0.724701 0.883118 0.367371\n0.757782 0.884399 0.367371\n0.787903 0.885742 0.367371\n0.815063 0.886963 0.367371\n0.839691 0.888184 0.367371\n0.862061 0.889374 0.367371\n0.882416 0.890625 0.367371\n0.900879 0.891815 0.367371\n0.917725 0.892975 0.367371\n0.933014 0.894135 0.367371\n0.946869 0.895264 0.367371\n0.959412 0.896362 0.367371\n0.970734 0.897461 0.367371\n0.980835 0.898560 0.367371\n0.989716 0.899567 0.367371\n0.106750 0.881104 0.374176\n0.132355 0.882477 0.373352\n0.159332 0.883850 0.372467\n0.187775 0.885193 0.371674\n0.217865 0.886566 0.370850\n0.249878 0.887909 0.370087\n0.283966 0.889221 0.369354\n0.320251 0.890503 0.368561\n0.358521 0.891785 0.367920\n0.398621 0.893097 0.367371\n0.440430 0.894409 0.367371\n0.483459 0.895630 0.367371\n0.527527 0.896851 0.367371\n0.571625 0.898132 0.367371\n0.614227 0.899292 0.367371\n0.654877 0.900513 0.367371\n0.693176 0.901703 0.367371\n0.728760 0.902863 0.367371\n0.761444 0.904022 0.367371\n0.791138 0.905151 0.367371\n0.817993 0.906250 0.367371\n0.842377 0.907410 0.367371\n0.864471 0.908417 0.367371\n0.884552 0.909546 0.367371\n0.902832 0.910583 0.367371\n0.919434 0.911621 0.367371\n0.934540 0.912628 0.367371\n0.948273 0.913635 0.367371\n0.960632 0.914612 0.367371\n0.971802 0.915619 0.367371\n0.981781 0.916534 0.367371\n0.990540 0.917450 0.367371\n0.109924 0.901184 0.372498\n0.135681 0.902405 0.371674\n0.162842 0.903656 0.370880\n0.191437 0.904877 0.370117\n0.221771 0.906097 0.369354\n0.253967 0.907257 0.368652\n0.288330 0.908447 0.367920\n0.324860 0.909637 0.367371\n0.363342 0.910797 0.367371\n0.403687 0.911926 0.367371\n0.445618 0.913086 0.367371\n0.488708 0.914215 0.367371\n0.532867 0.915344 0.367371\n0.576813 0.916443 0.367371\n0.619110 0.917511 0.367371\n0.659485 0.918579 0.367371\n0.697449 0.919647 0.367371\n0.732635 0.920685 0.367371\n0.765015 0.921722 0.367371\n0.794312 0.922729 0.367371\n0.820831 0.923706 0.367371\n0.844910 0.924713 0.367371\n0.866760 0.925629 0.367371\n0.886627 0.926575 0.367371\n0.904694 0.927521 0.367371\n0.921082 0.928406 0.367371\n0.936035 0.929321 0.367371\n0.949615 0.930206 0.367371\n0.961853 0.931061 0.367371\n0.972870 0.931915 0.367371\n0.982635 0.932739 0.367371\n0.991333 0.933563 0.367371\n0.113098 0.919250 0.370941\n0.139008 0.920410 0.370117\n0.166321 0.921539 0.369385\n0.195129 0.922638 0.368683\n0.225708 0.923706 0.367920\n0.258118 0.924774 0.367371\n0.292725 0.925842 0.367371\n0.329498 0.926880 0.367371\n0.368164 0.927948 0.367371\n0.408691 0.928955 0.367371\n0.450684 0.929993 0.367371\n0.493988 0.930969 0.367371\n0.538177 0.931976 0.367371\n0.581909 0.932983 0.367371\n0.623932 0.933899 0.367371\n0.664001 0.934875 0.367371\n0.701599 0.935760 0.367371\n0.736450 0.936737 0.367371\n0.768433 0.937653 0.367371\n0.797363 0.938538 0.367371\n0.823608 0.939423 0.367371\n0.847412 0.940277 0.367371\n0.868958 0.941132 0.367371\n0.888611 0.941986 0.367371\n0.906464 0.942810 0.367371\n0.922699 0.943573 0.367371\n0.937469 0.944366 0.367371\n0.950836 0.945129 0.367371\n0.962952 0.945892 0.367371\n0.973816 0.946655 0.367371\n0.983490 0.947357 0.367371\n0.992035 0.948059 0.367371\n0.116272 0.935638 0.369415\n0.142365 0.936676 0.368683\n0.169769 0.937622 0.367950\n0.198822 0.938629 0.367371\n0.229584 0.939606 0.367371\n0.262207 0.940552 0.367371\n0.297089 0.941498 0.367371\n0.334045 0.942444 0.367371\n0.372955 0.943359 0.367371\n0.413635 0.944275 0.367371\n0.455811 0.945190 0.367371\n0.499115 0.946075 0.367371\n0.543365 0.946960 0.367371\n0.586823 0.947845 0.367371\n0.628632 0.948669 0.367371\n0.668365 0.949524 0.367371\n0.705627 0.950348 0.367371\n0.740173 0.951172 0.367371\n0.771790 0.951996 0.367371\n0.800293 0.952759 0.367371\n0.826233 0.953552 0.367371\n0.849762 0.954285 0.367371\n0.871094 0.955048 0.367371\n0.890503 0.955780 0.367371\n0.908142 0.956512 0.367371\n0.924194 0.957184 0.367371\n0.938812 0.957886 0.367371\n0.952057 0.958527 0.367371\n0.964020 0.959198 0.367371\n0.974762 0.959869 0.367371\n0.984344 0.960449 0.367371\n0.992737 0.961090 0.367371\n0.119415 0.950348 0.367981\n0.145660 0.951233 0.367371\n0.173279 0.952118 0.367371\n0.202484 0.953033 0.367371\n0.233429 0.953857 0.367371\n0.266327 0.954712 0.367371\n0.301422 0.955566 0.367371\n0.338623 0.956421 0.367371\n0.377686 0.957245 0.367371\n0.418549 0.958038 0.367371\n0.460785 0.958832 0.367371\n0.504211 0.959625 0.367371\n0.548370 0.960419 0.367371\n0.591644 0.961151 0.367371\n0.633240 0.961914 0.367371\n0.672668 0.962677 0.367371\n0.709534 0.963379 0.367371\n0.743744 0.964111 0.367371\n0.774933 0.964813 0.367371\n0.803192 0.965485 0.367371\n0.828796 0.966156 0.367371\n0.852020 0.966827 0.367371\n0.873108 0.967468 0.367371\n0.892334 0.968109 0.367371\n0.909790 0.968719 0.367371\n0.925690 0.969330 0.367371\n0.940125 0.969940 0.367371\n0.953186 0.970520 0.367371\n0.965027 0.971069 0.367371\n0.975647 0.971649 0.367371\n0.985107 0.972168 0.367371\n0.993408 0.972687 0.367371\n0.122589 0.963531 0.367371\n0.148987 0.964325 0.367371\n0.176727 0.965088 0.367371\n0.206085 0.965881 0.367371\n0.237274 0.966675 0.367371\n0.270386 0.967377 0.367371\n0.305725 0.968140 0.367371\n0.343109 0.968903 0.367371\n0.382355 0.969574 0.367371\n0.423279 0.970306 0.367371\n0.465668 0.971008 0.367371\n0.509186 0.971710 0.367371\n0.553314 0.972382 0.367371\n0.596344 0.973022 0.367371\n0.637604 0.973724 0.367371\n0.676758 0.974335 0.367371\n0.713348 0.974976 0.367371\n0.747131 0.975586 0.367371\n0.778015 0.976196 0.367371\n0.805939 0.976776 0.367371\n0.831238 0.977356 0.367371\n0.854187 0.977966 0.367371\n0.875061 0.978516 0.367371\n0.894073 0.979034 0.367371\n0.911316 0.979584 0.367371\n0.927063 0.980103 0.367371\n0.941315 0.980621 0.367371\n0.954285 0.981079 0.367371\n0.965973 0.981598 0.367371\n0.976501 0.982056 0.367371\n0.985840 0.982513 0.367371\n0.994019 0.982971 0.367371\n0.041931 0.003204 0.457275\n0.063782 0.003906 0.456787\n0.086578 0.004730 0.456299\n0.110504 0.005493 0.455780\n0.135559 0.006348 0.455231\n0.161957 0.007233 0.454590\n0.189850 0.008118 0.454010\n0.219330 0.009003 0.453369\n0.250702 0.009979 0.452667\n0.284149 0.010956 0.451965\n0.319672 0.011932 0.451263\n0.357300 0.012970 0.450531\n0.396698 0.014038 0.449707\n0.437744 0.015045 0.448975\n0.480164 0.016174 0.448120\n0.523529 0.017273 0.447296\n0.567291 0.018402 0.446442\n0.609650 0.019592 0.445496\n0.650116 0.020752 0.444672\n0.688416 0.021973 0.443726\n0.724152 0.023224 0.442810\n0.757111 0.024445 0.441895\n0.787109 0.025696 0.440918\n0.814331 0.027039 0.439972\n0.838989 0.028290 0.438965\n0.861420 0.029633 0.438019\n0.881805 0.030975 0.437012\n0.900391 0.032349 0.436005\n0.917328 0.033722 0.434967\n0.932709 0.035095 0.434052\n0.946686 0.036530 0.432983\n0.959351 0.037964 0.431946\n0.043335 0.024353 0.456299\n0.065369 0.025146 0.455780\n0.088318 0.026031 0.455231\n0.112366 0.026917 0.454620\n0.137573 0.027863 0.454041\n0.164185 0.028809 0.453369\n0.192261 0.029755 0.452698\n0.221985 0.030792 0.452026\n0.253601 0.031830 0.451294\n0.287262 0.032898 0.450531\n0.323059 0.033966 0.449738\n0.360901 0.035065 0.449005\n0.400574 0.036194 0.448120\n0.441742 0.037384 0.447296\n0.484375 0.038544 0.446442\n0.527924 0.039734 0.445587\n0.571625 0.040985 0.444672\n0.613922 0.042267 0.443726\n0.654205 0.043488 0.442841\n0.692352 0.044800 0.441925\n0.727905 0.046143 0.440979\n0.760498 0.047424 0.440002\n0.790283 0.048828 0.438995\n0.817230 0.050201 0.438019\n0.841644 0.051575 0.437073\n0.863861 0.053009 0.436005\n0.884033 0.054413 0.435028\n0.902435 0.055847 0.434052\n0.919189 0.057343 0.432983\n0.934418 0.058838 0.431976\n0.948273 0.060333 0.430908\n0.960754 0.061859 0.429932\n0.044983 0.046478 0.455231\n0.067078 0.047363 0.454620\n0.090179 0.048340 0.454041\n0.114349 0.049347 0.453430\n0.139740 0.050323 0.452698\n0.166504 0.051361 0.452087\n0.194763 0.052490 0.451294\n0.224701 0.053558 0.450562\n0.256561 0.054718 0.449799\n0.290527 0.055847 0.449005\n0.326569 0.057007 0.448181\n0.364624 0.058258 0.447327\n0.404541 0.059479 0.446472\n0.446014 0.060730 0.445618\n0.488770 0.062012 0.444733\n0.532532 0.063263 0.443817\n0.576172 0.064606 0.442902\n0.618347 0.065979 0.441925\n0.658478 0.067322 0.440979\n0.696381 0.068726 0.440002\n0.731628 0.070160 0.438995\n0.763977 0.071564 0.438080\n0.793488 0.073029 0.437073\n0.820099 0.074463 0.436035\n0.844330 0.075958 0.435028\n0.866302 0.077484 0.434082\n0.886292 0.079010 0.433014\n0.904541 0.080566 0.432007\n0.921082 0.082123 0.430969\n0.936157 0.083679 0.429962\n0.949860 0.085297 0.428925\n0.962219 0.086914 0.427856\n0.046661 0.069672 0.454071\n0.068878 0.070679 0.453461\n0.092133 0.071747 0.452759\n0.116455 0.072815 0.452087\n0.142029 0.073944 0.451324\n0.168945 0.075073 0.450562\n0.197449 0.076324 0.449799\n0.227570 0.077484 0.449036\n0.259644 0.078705 0.448242\n0.293945 0.079987 0.447327\n0.330231 0.081238 0.446503\n0.368561 0.082550 0.445618\n0.408661 0.083832 0.444763\n0.450378 0.085205 0.443848\n0.493317 0.086609 0.442902\n0.537201 0.087982 0.441956\n0.580811 0.089447 0.441010\n0.622833 0.090881 0.440033\n0.662781 0.092346 0.439117\n0.700500 0.093842 0.438110\n0.735443 0.095367 0.437103\n0.767517 0.096893 0.436127\n0.796661 0.098450 0.435059\n0.823029 0.100006 0.434113\n0.847015 0.101624 0.433075\n0.868774 0.103241 0.432007\n0.888550 0.104858 0.431000\n0.906586 0.106506 0.429962\n0.923004 0.108215 0.428925\n0.937897 0.109833 0.427948\n0.951447 0.111542 0.426910\n0.963623 0.113281 0.425873\n0.048462 0.094055 0.452759\n0.070831 0.095215 0.452118\n0.094208 0.096344 0.451324\n0.118683 0.097534 0.450592\n0.144409 0.098785 0.449860\n0.171539 0.100006 0.449036\n0.200226 0.101318 0.448242\n0.230591 0.102600 0.447388\n0.262970 0.103912 0.446503\n0.297424 0.105286 0.445648\n0.334045 0.106689 0.444763\n0.372650 0.108124 0.443848\n0.412994 0.109558 0.442932\n0.454834 0.111023 0.442047\n0.498047 0.112549 0.441010\n0.541992 0.114014 0.440094\n0.585541 0.115570 0.439117\n0.627411 0.117126 0.438110\n0.667175 0.118683 0.437134\n0.704620 0.120300 0.436127\n0.739258 0.121918 0.435150\n0.771057 0.123566 0.434113\n0.799927 0.125275 0.433136\n0.825989 0.126923 0.432037\n0.849731 0.128662 0.431091\n0.871277 0.130371 0.430023\n0.890839 0.132111 0.428986\n0.908691 0.133881 0.427948\n0.924896 0.135681 0.426910\n0.939636 0.137421 0.425903\n0.953033 0.139252 0.424866\n0.965057 0.141052 0.423889\n0.050385 0.119751 0.451355\n0.072845 0.121002 0.450653\n0.096375 0.122284 0.449860\n0.121002 0.123596 0.449066\n0.146942 0.124939 0.448273\n0.174255 0.126282 0.447388\n0.203125 0.127716 0.446503\n0.233765 0.129120 0.445740\n0.266357 0.130585 0.444824\n0.301086 0.132050 0.443878\n0.338013 0.133606 0.442993\n0.376892 0.135101 0.442047\n0.417419 0.136658 0.441071\n0.459564 0.138245 0.440094\n0.502838 0.139893 0.439148\n0.546997 0.141479 0.438141\n0.590393 0.143158 0.437134\n0.632080 0.144867 0.436157\n0.671661 0.146545 0.435150\n0.708801 0.148254 0.434143\n0.743164 0.149994 0.433167\n0.774628 0.151764 0.432129\n0.803192 0.153595 0.431091\n0.828979 0.155365 0.430084\n0.852417 0.157227 0.429016\n0.873749 0.159119 0.427979\n0.893127 0.160919 0.426971\n0.910736 0.162842 0.425964\n0.926788 0.164734 0.424927\n0.941376 0.166626 0.423920\n0.954559 0.168579 0.422882\n0.966492 0.170502 0.421906\n0.052429 0.146942 0.449890\n0.074982 0.148254 0.449158\n0.098663 0.149719 0.448303\n0.123505 0.151154 0.447418\n0.149536 0.152557 0.446533\n0.177063 0.154083 0.445740\n0.206146 0.155609 0.444855\n0.237030 0.157166 0.443970\n0.269928 0.158752 0.442993\n0.304932 0.160339 0.442078\n0.342102 0.161987 0.441132\n0.381226 0.163696 0.440155\n0.421997 0.165344 0.439209\n0.464325 0.167084 0.438202\n0.507812 0.168854 0.437195\n0.551941 0.170563 0.436188\n0.595276 0.172363 0.435181\n0.636841 0.174225 0.434143\n0.676117 0.176025 0.433167\n0.713013 0.177917 0.432129\n0.747040 0.179749 0.431122\n0.778229 0.181671 0.430084\n0.806396 0.183624 0.429016\n0.831940 0.185547 0.428009\n0.855164 0.187531 0.426971\n0.876251 0.189545 0.425964\n0.895386 0.191498 0.424957\n0.912811 0.193573 0.423920\n0.928680 0.195557 0.422913\n0.943085 0.197632 0.421906\n0.956146 0.199707 0.420898\n0.967896 0.201752 0.419891\n0.054504 0.175720 0.448303\n0.077240 0.177216 0.447479\n0.101044 0.178741 0.446625\n0.126038 0.180328 0.445740\n0.152283 0.181946 0.444855\n0.179993 0.183594 0.443970\n0.209290 0.185211 0.443024\n0.240448 0.186920 0.442078\n0.273621 0.188660 0.441162\n0.308899 0.190399 0.440216\n0.346313 0.192230 0.439209\n0.385681 0.194031 0.438202\n0.426697 0.195831 0.437256\n0.469269 0.197693 0.436218\n0.512909 0.199615 0.435181\n0.557068 0.201477 0.434235\n0.600250 0.203461 0.433197\n0.641510 0.205414 0.432159\n0.680634 0.207397 0.431152\n0.717255 0.209442 0.430115\n0.750977 0.211426 0.429077\n0.781799 0.213531 0.428009\n0.809692 0.215607 0.427063\n0.834930 0.217651 0.425995\n0.857849 0.219818 0.424957\n0.878693 0.221985 0.423981\n0.897644 0.224060 0.422913\n0.914886 0.226257 0.421936\n0.930542 0.228455 0.420959\n0.944794 0.230652 0.419891\n0.957703 0.232880 0.418945\n0.969299 0.235077 0.417999\n0.056702 0.206360 0.446625\n0.079559 0.207977 0.445801\n0.103546 0.209717 0.444916\n0.128693 0.211395 0.444000\n0.155090 0.213196 0.443054\n0.183044 0.214966 0.442108\n0.212555 0.216736 0.441162\n0.243958 0.218628 0.440216\n0.277374 0.220551 0.439270\n0.312958 0.222412 0.438232\n0.350708 0.224396 0.437256\n0.390320 0.226379 0.436218\n0.431549 0.228302 0.435242\n0.474274 0.230347 0.434265\n0.518036 0.232391 0.433258\n0.562256 0.234497 0.432190\n0.605225 0.236603 0.431152\n0.646332 0.238708 0.430176\n0.685211 0.240906 0.429138\n0.721497 0.243073 0.428040\n0.754913 0.245239 0.427094\n0.785339 0.247467 0.426056\n0.812958 0.249756 0.424988\n0.837891 0.251984 0.424011\n0.860565 0.254303 0.422943\n0.881195 0.256622 0.421936\n0.899902 0.258911 0.420959\n0.916962 0.261230 0.419922\n0.932465 0.263580 0.418976\n0.946503 0.265991 0.417999\n0.959229 0.268402 0.417023\n0.970673 0.270782 0.416107\n0.058990 0.239075 0.444916\n0.082001 0.240875 0.444031\n0.106110 0.242737 0.443054\n0.131409 0.244568 0.442139\n0.158020 0.246521 0.441193\n0.186157 0.248535 0.440247\n0.215942 0.250458 0.439301\n0.247589 0.252533 0.438293\n0.281311 0.254608 0.437286\n0.317200 0.256653 0.436310\n0.355194 0.258789 0.435272\n0.395050 0.260986 0.434296\n0.436462 0.263092 0.433258\n0.479370 0.265320 0.432251\n0.523346 0.267578 0.431213\n0.567535 0.269836 0.430237\n0.610382 0.272156 0.429169\n0.651184 0.274384 0.428131\n0.689789 0.276794 0.427094\n0.725769 0.279144 0.426056\n0.758881 0.281464 0.425018\n0.788910 0.283905 0.424011\n0.816193 0.286346 0.423035\n0.840820 0.288757 0.421997\n0.863281 0.291229 0.421021\n0.883606 0.293671 0.420013\n0.902130 0.296265 0.419006\n0.918976 0.298798 0.418030\n0.934296 0.301239 0.417114\n0.948212 0.303833 0.416107\n0.960754 0.306396 0.415192\n0.972015 0.308990 0.414276\n0.061310 0.274048 0.443115\n0.084503 0.276031 0.442230\n0.108795 0.278137 0.441193\n0.134247 0.280243 0.440277\n0.161072 0.282349 0.439301\n0.189423 0.284515 0.438293\n0.219391 0.286621 0.437317\n0.251282 0.288910 0.436340\n0.285370 0.291138 0.435333\n0.321503 0.293396 0.434326\n0.359772 0.295746 0.433289\n0.399780 0.298065 0.432312\n0.441559 0.300415 0.431274\n0.484650 0.302887 0.430237\n0.528717 0.305206 0.429199\n0.572815 0.307678 0.428162\n0.615417 0.310181 0.427124\n0.656036 0.312653 0.426086\n0.694397 0.315186 0.425110\n0.730072 0.317719 0.424042\n0.762756 0.320282 0.423065\n0.792511 0.322876 0.422028\n0.819427 0.325531 0.421021\n0.843750 0.328094 0.420044\n0.865936 0.330750 0.419006\n0.886017 0.333405 0.418060\n0.904358 0.336090 0.417114\n0.920990 0.338776 0.416138\n0.936127 0.341400 0.415222\n0.949860 0.344147 0.414307\n0.962250 0.346924 0.413361\n0.973389 0.349579 0.412476\n0.063782 0.311615 0.441254\n0.087097 0.313812 0.440277\n0.111511 0.316101 0.439362\n0.137177 0.318298 0.438385\n0.164215 0.320648 0.437347\n0.192780 0.323029 0.436340\n0.222961 0.325348 0.435394\n0.255127 0.327759 0.434326\n0.289459 0.330231 0.433289\n0.325928 0.332642 0.432312\n0.364410 0.335205 0.431274\n0.404755 0.337646 0.430267\n0.446655 0.340210 0.429199\n0.489960 0.342834 0.428162\n0.534088 0.345367 0.427216\n0.578125 0.347992 0.426117\n0.620575 0.350708 0.425110\n0.660980 0.353302 0.424103\n0.699005 0.356018 0.423065\n0.734314 0.358765 0.422028\n0.766632 0.361481 0.421051\n0.796021 0.364197 0.420044\n0.822571 0.366943 0.419098\n0.846710 0.369720 0.418060\n0.868591 0.372589 0.417145\n0.888428 0.375336 0.416138\n0.906555 0.378204 0.415222\n0.923004 0.381042 0.414307\n0.937927 0.383850 0.413391\n0.951508 0.386719 0.412476\n0.963715 0.389618 0.411591\n0.974670 0.392395 0.410736\n0.066284 0.351562 0.439392\n0.089752 0.354004 0.438385\n0.114349 0.356415 0.437347\n0.140167 0.358887 0.436401\n0.167389 0.361389 0.435394\n0.196167 0.363861 0.434387\n0.226654 0.366425 0.433350\n0.259094 0.369019 0.432343\n0.293640 0.371582 0.431366\n0.330444 0.374207 0.430298\n0.369202 0.376923 0.429291\n0.409760 0.379578 0.428192\n0.451935 0.382324 0.427216\n0.495331 0.385071 0.426178\n0.539612 0.387817 0.425140\n0.583466 0.390564 0.424103\n0.625732 0.393433 0.423096\n0.665863 0.396210 0.422058\n0.703522 0.399048 0.421082\n0.738525 0.401947 0.420135\n0.770508 0.404785 0.419128\n0.799530 0.407715 0.418121\n0.825714 0.410553 0.417206\n0.849579 0.413483 0.416168\n0.871185 0.416443 0.415253\n0.890839 0.419342 0.414337\n0.908691 0.422333 0.413391\n0.924988 0.425293 0.412537\n0.939697 0.428192 0.411621\n0.953094 0.431213 0.410736\n0.965179 0.434235 0.409912\n0.975983 0.437134 0.409027\n0.068878 0.393829 0.437439\n0.092499 0.396393 0.436432\n0.117279 0.398987 0.435425\n0.143250 0.401611 0.434448\n0.170685 0.404236 0.433380\n0.199677 0.406982 0.432343\n0.230347 0.409607 0.431366\n0.263092 0.412384 0.430298\n0.297974 0.415070 0.429321\n0.335052 0.417938 0.428253\n0.374054 0.420776 0.427246\n0.414856 0.423553 0.426239\n0.457153 0.426422 0.425171\n0.500793 0.429352 0.424164\n0.545166 0.432190 0.423126\n0.588837 0.435150 0.422150\n0.630890 0.438110 0.421082\n0.670685 0.441010 0.420166\n0.708099 0.444031 0.419128\n0.742676 0.446960 0.418152\n0.774353 0.450012 0.417206\n0.803009 0.453033 0.416260\n0.828888 0.455963 0.415344\n0.852417 0.459076 0.414337\n0.873810 0.462128 0.413452\n0.893219 0.465057 0.412567\n0.910858 0.468170 0.411652\n0.926910 0.471252 0.410767\n0.941467 0.474243 0.409973\n0.954681 0.477325 0.409088\n0.966614 0.480347 0.408295\n0.977234 0.483429 0.407532\n0.071564 0.437958 0.435486\n0.095337 0.440704 0.434448\n0.120270 0.443420 0.433441\n0.146423 0.446198 0.432373\n0.174072 0.449036 0.431396\n0.203217 0.451782 0.430328\n0.234253 0.454620 0.429321\n0.267273 0.457581 0.428314\n0.302429 0.460419 0.427277\n0.339752 0.463409 0.426239\n0.379059 0.466370 0.425171\n0.420013 0.469269 0.424194\n0.462555 0.472321 0.423126\n0.506287 0.475311 0.422180\n0.550690 0.478241 0.421173\n0.594238 0.481354 0.420166\n0.636017 0.484375 0.419159\n0.675598 0.487427 0.418152\n0.712646 0.490509 0.417236\n0.746826 0.493561 0.416290\n0.778137 0.496674 0.415344\n0.806396 0.499786 0.414398\n0.832001 0.502838 0.413483\n0.855225 0.506012 0.412567\n0.876373 0.509155 0.411652\n0.895538 0.512177 0.410858\n0.912933 0.515350 0.409973\n0.928802 0.518494 0.409088\n0.943207 0.521515 0.408295\n0.956268 0.524719 0.407532\n0.967987 0.527740 0.406799\n0.978485 0.530853 0.406006\n0.074280 0.483734 0.433472\n0.098236 0.486633 0.432404\n0.123322 0.489502 0.431396\n0.149628 0.492371 0.430420\n0.177490 0.495331 0.429352\n0.206909 0.498199 0.428345\n0.238159 0.501190 0.427307\n0.271423 0.504211 0.426270\n0.306885 0.507172 0.425201\n0.344513 0.510223 0.424255\n0.384033 0.513306 0.423218\n0.425201 0.516327 0.422211\n0.467987 0.519409 0.421173\n0.511841 0.522552 0.420197\n0.556274 0.525574 0.419189\n0.599579 0.528748 0.418243\n0.641113 0.531799 0.417267\n0.680420 0.534973 0.416290\n0.717133 0.538177 0.415375\n0.750977 0.541168 0.414459\n0.781860 0.544373 0.413483\n0.809814 0.547485 0.412628\n0.835083 0.550568 0.411682\n0.858032 0.553711 0.410858\n0.878906 0.556824 0.410004\n0.897797 0.559875 0.409149\n0.915070 0.562988 0.408356\n0.930664 0.566010 0.407562\n0.944916 0.569031 0.406799\n0.957794 0.572144 0.406036\n0.969360 0.575134 0.405334\n0.979706 0.578125 0.405304\n0.077057 0.530853 0.431427\n0.101166 0.533783 0.430420\n0.126404 0.536804 0.429382\n0.152954 0.539795 0.428345\n0.181000 0.542786 0.427307\n0.210632 0.545685 0.426331\n0.242157 0.548798 0.425293\n0.275726 0.551849 0.424255\n0.311432 0.554810 0.423248\n0.349274 0.557861 0.422211\n0.389130 0.560883 0.421234\n0.430511 0.563934 0.420258\n0.473480 0.567017 0.419189\n0.517487 0.570099 0.418243\n0.561829 0.573090 0.417267\n0.604950 0.576172 0.416351\n0.646301 0.579254 0.415375\n0.685211 0.582275 0.414490\n0.721588 0.585297 0.413513\n0.755066 0.588257 0.412659\n0.785553 0.591339 0.411774\n0.813141 0.594391 0.410889\n0.838104 0.597290 0.410034\n0.860779 0.600311 0.409180\n0.881348 0.603302 0.408356\n0.900055 0.606201 0.407562\n0.917084 0.609161 0.406799\n0.932556 0.612122 0.406036\n0.946594 0.614990 0.405334\n0.959259 0.617889 0.405304\n0.970673 0.620667 0.405304\n0.980896 0.623596 0.405304\n0.079926 0.577850 0.429443\n0.104156 0.580750 0.428436\n0.129608 0.583710 0.427399\n0.156311 0.586548 0.426331\n0.184570 0.589478 0.425293\n0.214447 0.592377 0.424286\n0.246185 0.595398 0.423248\n0.280090 0.598358 0.422272\n0.316101 0.601196 0.421265\n0.354218 0.604187 0.420258\n0.394287 0.607147 0.419281\n0.435852 0.610046 0.418304\n0.478973 0.612976 0.417328\n0.523071 0.615936 0.416351\n0.567352 0.618866 0.415405\n0.610321 0.621796 0.414490\n0.651276 0.624695 0.413574\n0.689941 0.627594 0.412659\n0.725983 0.630493 0.411774\n0.759125 0.633362 0.410919\n0.789185 0.636261 0.410034\n0.816406 0.639099 0.409180\n0.841064 0.641907 0.408417\n0.863434 0.644775 0.407623\n0.883789 0.647552 0.406830\n0.902252 0.650299 0.406067\n0.919067 0.653137 0.405334\n0.934326 0.655762 0.405304\n0.948212 0.658508 0.405304\n0.960724 0.661255 0.405304\n0.971985 0.663910 0.405304\n0.982025 0.666534 0.405304\n0.082794 0.623138 0.427429\n0.107208 0.625977 0.426361\n0.132782 0.628723 0.425323\n0.159729 0.631561 0.424347\n0.188232 0.634369 0.423279\n0.218292 0.637177 0.422333\n0.250336 0.639984 0.421265\n0.284454 0.642822 0.420288\n0.320770 0.645569 0.419312\n0.359222 0.648438 0.418304\n0.399475 0.651215 0.417328\n0.441254 0.653961 0.416382\n0.484497 0.656799 0.415436\n0.528717 0.659515 0.414520\n0.572906 0.662323 0.413574\n0.615631 0.665039 0.412720\n0.656311 0.667786 0.411804\n0.694702 0.670532 0.410919\n0.730316 0.673248 0.410126\n0.763062 0.675934 0.409271\n0.792755 0.678680 0.408417\n0.819641 0.681274 0.407623\n0.843964 0.683929 0.406891\n0.866058 0.686554 0.406067\n0.886169 0.689148 0.405365\n0.904419 0.691711 0.405304\n0.921021 0.694244 0.405304\n0.936127 0.696777 0.405304\n0.949799 0.699249 0.405304\n0.962158 0.701813 0.405304\n0.973236 0.704193 0.405304\n0.983154 0.706635 0.405304\n0.085785 0.666168 0.425385\n0.110321 0.668823 0.424347\n0.136017 0.671417 0.423309\n0.163208 0.674103 0.422333\n0.191864 0.676819 0.421326\n0.222229 0.679413 0.420349\n0.254517 0.682098 0.419342\n0.288971 0.684784 0.418396\n0.325531 0.687347 0.417389\n0.364166 0.690033 0.416443\n0.404633 0.692627 0.415436\n0.446655 0.695221 0.414581\n0.490051 0.697876 0.413635\n0.534332 0.700378 0.412781\n0.578369 0.702972 0.411804\n0.620880 0.705566 0.410950\n0.661285 0.708008 0.410156\n0.699310 0.710602 0.409271\n0.734619 0.713074 0.408447\n0.766937 0.715576 0.407684\n0.796234 0.718048 0.406891\n0.822815 0.720520 0.406097\n0.846832 0.722870 0.405365\n0.868683 0.725311 0.405304\n0.888489 0.727661 0.405304\n0.906555 0.730042 0.405304\n0.922943 0.732361 0.405304\n0.937836 0.734619 0.405304\n0.951355 0.736938 0.405304\n0.963531 0.739166 0.405304\n0.974487 0.741364 0.405304\n0.984222 0.743561 0.405304\n0.088776 0.706421 0.423401\n0.113464 0.708923 0.422363\n0.139374 0.711365 0.421356\n0.166687 0.713867 0.420349\n0.195587 0.716370 0.419342\n0.226166 0.718781 0.418427\n0.258728 0.721252 0.417419\n0.293427 0.723755 0.416443\n0.330322 0.726135 0.415497\n0.369202 0.728546 0.414581\n0.409851 0.730927 0.413666\n0.452118 0.733337 0.412781\n0.495605 0.735748 0.411896\n0.539978 0.738098 0.410950\n0.583862 0.740448 0.410156\n0.626068 0.742798 0.409302\n0.666199 0.745056 0.408508\n0.703888 0.747406 0.407684\n0.738800 0.749695 0.406952\n0.770752 0.751953 0.406189\n0.799683 0.754150 0.405457\n0.825897 0.756409 0.405304\n0.849640 0.758545 0.405304\n0.871185 0.760681 0.405304\n0.890778 0.762817 0.405304\n0.908569 0.764954 0.405304\n0.924805 0.767029 0.405304\n0.939514 0.769073 0.405304\n0.952850 0.771118 0.405304\n0.964844 0.773102 0.405304\n0.975647 0.775024 0.405304\n0.985229 0.777039 0.405304\n0.091797 0.743500 0.421356\n0.116638 0.745850 0.420410\n0.142731 0.748108 0.419403\n0.170288 0.750336 0.418427\n0.199402 0.752655 0.417419\n0.230164 0.754883 0.416504\n0.263000 0.757141 0.415558\n0.298004 0.759399 0.414612\n0.335114 0.761536 0.413666\n0.374237 0.763794 0.412811\n0.415070 0.765930 0.411926\n0.457520 0.768127 0.411041\n0.501160 0.770294 0.410156\n0.545532 0.772400 0.409332\n0.589233 0.774506 0.408508\n0.631256 0.776611 0.407715\n0.671051 0.778687 0.406952\n0.708405 0.780731 0.406189\n0.742889 0.782837 0.405457\n0.774445 0.784760 0.405304\n0.803040 0.786804 0.405304\n0.828888 0.788727 0.405304\n0.852356 0.790680 0.405304\n0.873657 0.792633 0.405304\n0.892975 0.794495 0.405304\n0.910583 0.796356 0.405304\n0.926605 0.798248 0.405304\n0.941132 0.800049 0.405304\n0.954315 0.801849 0.405304\n0.966156 0.803619 0.405304\n0.976807 0.805359 0.405304\n0.986267 0.807068 0.405304\n0.094818 0.777252 0.419464\n0.119843 0.779327 0.418457\n0.146088 0.781372 0.417480\n0.173889 0.783447 0.416534\n0.203186 0.785492 0.415558\n0.234222 0.787506 0.414673\n0.267334 0.789520 0.413696\n0.302521 0.791504 0.412842\n0.339966 0.793518 0.411926\n0.379333 0.795532 0.411072\n0.420410 0.797424 0.410187\n0.462952 0.799408 0.409332\n0.506744 0.801361 0.408539\n0.551117 0.803223 0.407776\n0.594635 0.805115 0.406982\n0.636292 0.807007 0.406189\n0.675812 0.808838 0.405487\n0.712830 0.810699 0.405304\n0.746948 0.812500 0.405304\n0.778137 0.814270 0.405304\n0.806305 0.816071 0.405304\n0.831848 0.817780 0.405304\n0.855011 0.819519 0.405304\n0.876038 0.821259 0.405304\n0.895142 0.822906 0.405304\n0.912537 0.824585 0.405304\n0.928345 0.826233 0.405304\n0.942719 0.827820 0.405304\n0.955719 0.829437 0.405304\n0.967438 0.831024 0.405304\n0.977905 0.832520 0.405304\n0.987213 0.834045 0.405304\n0.097961 0.807587 0.417511\n0.123138 0.809479 0.416534\n0.149536 0.811279 0.415588\n0.177460 0.813171 0.414673\n0.207001 0.815002 0.413696\n0.238312 0.816833 0.412842\n0.271667 0.818665 0.411957\n0.307159 0.820404 0.411072\n0.344849 0.822235 0.410217\n0.384399 0.823975 0.409393\n0.425629 0.825714 0.408539\n0.468414 0.827484 0.407776\n0.512268 0.829224 0.406982\n0.556580 0.830933 0.406219\n0.599854 0.832611 0.405487\n0.641266 0.834290 0.405304\n0.680450 0.835907 0.405304\n0.717102 0.837585 0.405304\n0.750854 0.839203 0.405304\n0.781677 0.840790 0.405304\n0.809509 0.842377 0.405304\n0.834717 0.843933 0.405304\n0.857605 0.845459 0.405304\n0.878387 0.847015 0.405304\n0.897247 0.848480 0.405304\n0.914459 0.849945 0.405304\n0.930084 0.851410 0.405304\n0.944214 0.852814 0.405304\n0.957092 0.854248 0.405304\n0.968628 0.855621 0.405304\n0.978973 0.856995 0.405304\n0.988159 0.858337 0.405304\n0.101044 0.834869 0.415619\n0.126404 0.836578 0.414703\n0.153015 0.838226 0.413727\n0.181122 0.839905 0.412903\n0.210876 0.841583 0.411957\n0.242401 0.843201 0.411102\n0.276001 0.844818 0.410217\n0.311798 0.846436 0.409454\n0.349731 0.848053 0.408600\n0.389496 0.849670 0.407776\n0.430908 0.851166 0.407013\n0.473755 0.852783 0.406250\n0.517761 0.854340 0.405518\n0.562042 0.855804 0.405304\n0.605042 0.857361 0.405304\n0.646179 0.858826 0.405304\n0.685059 0.860321 0.405304\n0.721313 0.861786 0.405304\n0.754700 0.863220 0.405304\n0.785095 0.864624 0.405304\n0.812622 0.866058 0.405304\n0.837524 0.867432 0.405304\n0.860107 0.868835 0.405304\n0.880646 0.870178 0.405304\n0.899292 0.871490 0.405304\n0.916290 0.872803 0.405304\n0.931702 0.874115 0.405304\n0.945740 0.875336 0.405304\n0.958405 0.876617 0.405304\n0.969818 0.877838 0.405304\n0.980011 0.879028 0.405304\n0.989014 0.880219 0.405304\n0.104187 0.859436 0.413818\n0.129700 0.860992 0.412903\n0.156464 0.862457 0.412018\n0.184814 0.863983 0.411102\n0.214722 0.865448 0.410278\n0.246521 0.866943 0.409454\n0.280396 0.868439 0.408600\n0.316406 0.869843 0.407806\n0.354553 0.871338 0.407043\n0.394592 0.872742 0.406250\n0.436157 0.874146 0.405518\n0.479156 0.875519 0.405304\n0.523132 0.876953 0.405304\n0.567322 0.878296 0.405304\n0.610168 0.879669 0.405304\n0.650970 0.880981 0.405304\n0.689575 0.882324 0.405304\n0.725494 0.883636 0.405304\n0.758484 0.884888 0.405304\n0.788452 0.886139 0.405304\n0.815643 0.887421 0.405304\n0.840240 0.888641 0.405304\n0.862549 0.889862 0.405304\n0.882843 0.891083 0.405304\n0.901276 0.892242 0.405304\n0.918060 0.893433 0.405304\n0.933289 0.894531 0.405304\n0.947144 0.895691 0.405304\n0.959686 0.896759 0.405304\n0.970947 0.897858 0.405304\n0.980988 0.898926 0.405304\n0.989899 0.899963 0.405304\n0.107361 0.881622 0.412048\n0.132996 0.883026 0.411133\n0.159973 0.884338 0.410339\n0.188477 0.885742 0.409454\n0.218597 0.887024 0.408661\n0.250641 0.888367 0.407867\n0.284790 0.889709 0.407043\n0.321075 0.890991 0.406311\n0.359406 0.892303 0.405548\n0.399628 0.893585 0.405304\n0.441376 0.894836 0.405304\n0.484497 0.896088 0.405304\n0.528595 0.897369 0.405304\n0.572601 0.898560 0.405304\n0.615173 0.899750 0.405304\n0.655670 0.900909 0.405304\n0.693939 0.902130 0.405304\n0.729523 0.903290 0.405304\n0.762085 0.904419 0.405304\n0.791718 0.905548 0.405304\n0.818573 0.906708 0.405304\n0.842804 0.907776 0.405304\n0.864899 0.908875 0.405304\n0.884979 0.909943 0.405304\n0.903168 0.910980 0.405304\n0.919739 0.911987 0.405304\n0.934814 0.912964 0.405304\n0.948517 0.913971 0.405304\n0.960876 0.914978 0.405304\n0.971985 0.915924 0.405304\n0.981934 0.916901 0.405304\n0.990723 0.917786 0.405304\n0.110535 0.901642 0.410339\n0.136292 0.902863 0.409546\n0.163452 0.904053 0.408691\n0.192139 0.905334 0.407867\n0.222504 0.906525 0.407135\n0.254761 0.907715 0.406311\n0.289185 0.908875 0.405548\n0.325684 0.910095 0.405304\n0.364227 0.911224 0.405304\n0.404633 0.912384 0.405304\n0.446503 0.913483 0.405304\n0.489746 0.914642 0.405304\n0.533844 0.915741 0.405304\n0.577759 0.916840 0.405304\n0.620087 0.917877 0.405304\n0.660309 0.918945 0.405304\n0.698212 0.920013 0.405304\n0.733368 0.921082 0.405304\n0.765656 0.922089 0.405304\n0.794922 0.923096 0.405304\n0.821411 0.924072 0.405304\n0.845367 0.925049 0.405304\n0.867188 0.925995 0.405304\n0.886993 0.926941 0.405304\n0.904999 0.927887 0.405304\n0.921417 0.928772 0.405304\n0.936310 0.929688 0.405304\n0.949860 0.930511 0.405304\n0.962067 0.931366 0.405304\n0.973022 0.932220 0.405304\n0.982819 0.933044 0.405304\n0.991486 0.933868 0.405304\n0.113708 0.919708 0.408691\n0.139618 0.920807 0.407898\n0.166931 0.921936 0.407135\n0.195831 0.923004 0.406372\n0.226379 0.924072 0.405640\n0.258911 0.925171 0.405304\n0.293579 0.926239 0.405304\n0.330322 0.927277 0.405304\n0.369049 0.928314 0.405304\n0.409607 0.929352 0.405304\n0.451630 0.930328 0.405304\n0.494995 0.931366 0.405304\n0.539124 0.932343 0.405304\n0.582764 0.933289 0.405304\n0.624847 0.934296 0.405304\n0.664795 0.935211 0.405304\n0.702362 0.936157 0.405304\n0.737183 0.937073 0.405304\n0.769043 0.937988 0.405304\n0.797943 0.938873 0.405304\n0.824097 0.939758 0.405304\n0.847839 0.940582 0.405304\n0.869354 0.941437 0.405304\n0.888947 0.942230 0.405304\n0.906769 0.943085 0.405304\n0.923004 0.943878 0.405304\n0.937744 0.944672 0.405304\n0.951080 0.945435 0.405304\n0.963165 0.946167 0.405304\n0.974030 0.946869 0.405304\n0.983673 0.947632 0.405304\n0.992188 0.948334 0.405304\n0.116852 0.936005 0.407166\n0.142944 0.936981 0.406372\n0.170471 0.937988 0.405670\n0.199524 0.938995 0.405304\n0.230225 0.939972 0.405304\n0.263000 0.940918 0.405304\n0.297913 0.941864 0.405304\n0.334869 0.942780 0.405304\n0.373840 0.943726 0.405304\n0.414490 0.944611 0.405304\n0.456726 0.945496 0.405304\n0.500061 0.946442 0.405304\n0.544250 0.947296 0.405304\n0.587708 0.948151 0.405304\n0.629547 0.949005 0.405304\n0.669159 0.949860 0.405304\n0.706421 0.950684 0.405304\n0.740875 0.951477 0.405304\n0.772308 0.952240 0.405304\n0.800903 0.953033 0.405304\n0.826752 0.953827 0.405304\n0.850189 0.954529 0.405304\n0.871490 0.955292 0.405304\n0.890839 0.956024 0.405304\n0.908417 0.956726 0.405304\n0.924469 0.957428 0.405304\n0.939056 0.958099 0.405304\n0.952240 0.958771 0.405304\n0.964233 0.959442 0.405304\n0.974945 0.960052 0.405304\n0.984467 0.960663 0.405304\n0.992859 0.961273 0.405304\n0.120026 0.950684 0.405670\n0.146240 0.951538 0.405304\n0.173950 0.952454 0.405304\n0.203156 0.953308 0.405304\n0.234131 0.954193 0.405304\n0.267090 0.955078 0.405304\n0.302246 0.955872 0.405304\n0.339417 0.956696 0.405304\n0.378571 0.957520 0.405304\n0.419342 0.958313 0.405304\n0.461670 0.959137 0.405304\n0.505127 0.959930 0.405304\n0.549286 0.960663 0.405304\n0.592529 0.961456 0.405304\n0.634064 0.962219 0.405304\n0.673370 0.962921 0.405304\n0.710297 0.963623 0.405304\n0.744415 0.964355 0.405304\n0.775513 0.965027 0.405304\n0.803711 0.965729 0.405304\n0.829254 0.966400 0.405304\n0.852417 0.967041 0.405304\n0.873505 0.967712 0.405304\n0.892639 0.968353 0.405304\n0.910095 0.968964 0.405304\n0.925934 0.969543 0.405304\n0.940308 0.970123 0.405304\n0.953400 0.970734 0.405304\n0.965210 0.971283 0.405304\n0.975800 0.971802 0.405304\n0.985229 0.972321 0.405304\n0.993500 0.972870 0.405304\n0.123199 0.963806 0.405304\n0.149536 0.964600 0.405304\n0.177399 0.965393 0.405304\n0.206848 0.966156 0.405304\n0.237976 0.966919 0.405304\n0.271179 0.967682 0.405304\n0.306519 0.968414 0.405304\n0.343903 0.969147 0.405304\n0.383240 0.969879 0.405304\n0.424194 0.970581 0.405304\n0.466583 0.971252 0.405304\n0.510101 0.971954 0.405304\n0.554199 0.972626 0.405304\n0.597198 0.973297 0.405304\n0.638458 0.973969 0.405304\n0.677460 0.974579 0.405304\n0.714050 0.975189 0.405304\n0.747803 0.975800 0.405304\n0.778534 0.976410 0.405304\n0.806427 0.977020 0.405304\n0.831635 0.977600 0.405304\n0.854584 0.978149 0.405304\n0.875427 0.978729 0.405304\n0.894379 0.979279 0.405304\n0.911591 0.979797 0.405304\n0.927338 0.980316 0.405304\n0.941559 0.980804 0.405304\n0.954498 0.981293 0.405304\n0.966156 0.981781 0.405304\n0.976624 0.982208 0.405304\n0.985931 0.982666 0.405304\n0.994110 0.983093 0.405304\n0.042145 0.003418 0.497894\n0.064026 0.004181 0.497406\n0.086884 0.005005 0.496857\n0.110809 0.005829 0.496307\n0.135925 0.006653 0.495697\n0.162384 0.007538 0.495148\n0.190277 0.008453 0.494476\n0.219849 0.009369 0.493835\n0.251251 0.010345 0.493103\n0.284698 0.011292 0.492371\n0.320312 0.012299 0.491638\n0.357880 0.013306 0.490845\n0.397369 0.014404 0.490051\n0.438477 0.015503 0.489227\n0.480835 0.016571 0.488403\n0.524384 0.017700 0.487488\n0.568115 0.018829 0.486603\n0.610413 0.020020 0.485718\n0.650879 0.021240 0.484802\n0.689148 0.022430 0.483856\n0.724854 0.023651 0.482910\n0.757751 0.024933 0.481934\n0.787659 0.026184 0.480957\n0.814850 0.027466 0.479950\n0.839478 0.028809 0.478973\n0.861877 0.030151 0.477936\n0.882233 0.031494 0.476898\n0.900787 0.032867 0.475861\n0.917664 0.034210 0.474823\n0.933044 0.035614 0.473785\n0.946960 0.037048 0.472717\n0.959595 0.038452 0.471710\n0.043671 0.024628 0.496887\n0.065674 0.025482 0.496307\n0.088654 0.026367 0.495789\n0.112671 0.027252 0.495148\n0.137970 0.028168 0.494476\n0.164612 0.029144 0.493835\n0.192719 0.030151 0.493134\n0.222504 0.031158 0.492401\n0.254120 0.032196 0.491699\n0.287872 0.033264 0.490906\n0.323669 0.034393 0.490051\n0.361542 0.035492 0.489258\n0.401276 0.036621 0.488403\n0.442535 0.037781 0.487518\n0.485107 0.038971 0.486633\n0.528839 0.040222 0.485718\n0.572540 0.041443 0.484833\n0.614655 0.042694 0.483887\n0.655090 0.043976 0.482910\n0.693085 0.045319 0.481934\n0.728546 0.046600 0.480957\n0.761169 0.047974 0.479950\n0.790833 0.049316 0.479004\n0.817719 0.050690 0.477966\n0.842133 0.052094 0.476959\n0.864288 0.053528 0.475891\n0.884460 0.054962 0.474884\n0.902863 0.056427 0.473785\n0.919525 0.057861 0.472778\n0.934753 0.059418 0.471710\n0.948547 0.060913 0.470642\n0.961029 0.062378 0.469604\n0.045288 0.046783 0.495789\n0.067383 0.047760 0.495178\n0.090515 0.048706 0.494507\n0.114716 0.049744 0.493866\n0.140137 0.050720 0.493134\n0.166931 0.051819 0.492401\n0.195221 0.052856 0.491699\n0.225220 0.053955 0.490906\n0.257111 0.055145 0.490112\n0.291107 0.056274 0.489258\n0.327240 0.057465 0.488434\n0.365356 0.058655 0.487610\n0.405304 0.059937 0.486725\n0.446808 0.061188 0.485809\n0.489563 0.062469 0.484833\n0.533417 0.063812 0.483887\n0.577057 0.065125 0.482910\n0.619110 0.066437 0.481995\n0.659302 0.067841 0.480988\n0.697113 0.069214 0.480042\n0.732330 0.070648 0.479004\n0.764679 0.072113 0.477966\n0.794006 0.073578 0.476990\n0.820679 0.075012 0.475983\n0.844818 0.076538 0.474884\n0.866760 0.078033 0.473846\n0.886749 0.079590 0.472809\n0.904907 0.081146 0.471741\n0.921448 0.082703 0.470673\n0.936493 0.084259 0.469666\n0.950134 0.085876 0.468597\n0.962463 0.087463 0.467529\n0.046997 0.070038 0.494507\n0.069244 0.071075 0.493866\n0.092499 0.072144 0.493134\n0.116852 0.073212 0.492493\n0.142487 0.074371 0.491699\n0.169403 0.075500 0.490936\n0.197937 0.076691 0.490143\n0.228149 0.077942 0.489319\n0.260284 0.079132 0.488464\n0.294525 0.080414 0.487610\n0.330933 0.081726 0.486725\n0.369293 0.083008 0.485840\n0.409485 0.084381 0.484863\n0.451202 0.085785 0.483948\n0.494232 0.087097 0.483032\n0.538147 0.088531 0.482025\n0.581726 0.089966 0.481079\n0.623657 0.091400 0.480072\n0.663635 0.092896 0.479034\n0.701233 0.094360 0.478058\n0.736176 0.095917 0.477020\n0.768188 0.097504 0.475983\n0.797272 0.099030 0.474945\n0.823608 0.100616 0.473907\n0.847534 0.102203 0.472809\n0.869202 0.103821 0.471832\n0.889008 0.105499 0.470734\n0.907013 0.107117 0.469666\n0.923340 0.108795 0.468628\n0.938232 0.110504 0.467560\n0.951691 0.112183 0.466492\n0.963898 0.113892 0.465454\n0.048828 0.094452 0.493225\n0.071228 0.095612 0.492493\n0.094635 0.096802 0.491730\n0.119141 0.097961 0.490936\n0.144897 0.099274 0.490143\n0.172028 0.100464 0.489349\n0.200775 0.101746 0.488464\n0.231201 0.103088 0.487640\n0.263580 0.104431 0.486755\n0.298126 0.105804 0.485840\n0.334747 0.107208 0.484924\n0.373413 0.108612 0.484009\n0.413818 0.110107 0.483032\n0.455780 0.111572 0.482025\n0.498871 0.113068 0.481110\n0.542938 0.114594 0.480072\n0.586426 0.116119 0.479126\n0.628265 0.117676 0.478058\n0.668030 0.119324 0.477020\n0.705322 0.120880 0.476013\n0.740021 0.122528 0.474976\n0.771729 0.124237 0.473907\n0.800476 0.125885 0.472870\n0.826538 0.127563 0.471832\n0.850250 0.129303 0.470734\n0.871704 0.130981 0.469696\n0.891235 0.132751 0.468628\n0.909027 0.134491 0.467621\n0.925262 0.136322 0.466553\n0.939972 0.138123 0.465485\n0.953278 0.139923 0.464447\n0.965332 0.141724 0.463409\n0.050720 0.120178 0.491760\n0.073242 0.121490 0.490997\n0.096832 0.122803 0.490143\n0.121490 0.124115 0.489349\n0.147400 0.125427 0.488556\n0.174744 0.126831 0.487640\n0.203674 0.128235 0.486755\n0.234344 0.129669 0.485870\n0.266998 0.131104 0.484924\n0.301849 0.132599 0.484009\n0.338776 0.134155 0.483063\n0.377655 0.135651 0.482086\n0.418274 0.137238 0.481110\n0.460388 0.138824 0.480164\n0.503784 0.140472 0.479126\n0.547943 0.142120 0.478088\n0.591278 0.143738 0.477081\n0.632904 0.145447 0.476044\n0.672485 0.147156 0.474976\n0.709503 0.148895 0.473938\n0.743866 0.150635 0.472900\n0.775330 0.152466 0.471863\n0.803741 0.154236 0.470825\n0.829529 0.156067 0.469757\n0.852966 0.157898 0.468719\n0.874207 0.159729 0.467682\n0.893555 0.161652 0.466553\n0.911133 0.163483 0.465515\n0.927155 0.165405 0.464447\n0.941711 0.167358 0.463409\n0.954834 0.169250 0.462341\n0.966736 0.171265 0.461334\n0.052734 0.147369 0.490173\n0.075439 0.148804 0.489349\n0.099091 0.150208 0.488556\n0.123962 0.151642 0.487671\n0.150085 0.153168 0.486786\n0.177582 0.154663 0.485962\n0.206757 0.156189 0.484985\n0.237701 0.157745 0.484039\n0.270599 0.159302 0.483063\n0.305664 0.160950 0.482117\n0.342926 0.162598 0.481140\n0.382019 0.164246 0.480194\n0.422913 0.165985 0.479156\n0.465210 0.167694 0.478180\n0.508728 0.169434 0.477112\n0.552948 0.171265 0.476044\n0.596130 0.173004 0.475006\n0.637665 0.174866 0.473999\n0.676971 0.176727 0.472900\n0.713776 0.178558 0.471893\n0.747803 0.180481 0.470825\n0.778931 0.182404 0.469757\n0.807007 0.184326 0.468750\n0.832489 0.186249 0.467682\n0.855621 0.188263 0.466644\n0.876678 0.190247 0.465576\n0.895813 0.192291 0.464508\n0.913177 0.194244 0.463501\n0.929016 0.196320 0.462402\n0.943420 0.198395 0.461334\n0.956421 0.200439 0.460327\n0.968170 0.202576 0.459290\n0.054871 0.176239 0.488586\n0.077667 0.177795 0.487671\n0.101501 0.179291 0.486847\n0.126495 0.180939 0.485962\n0.152802 0.182556 0.484985\n0.180542 0.184143 0.484070\n0.209930 0.185852 0.483124\n0.241119 0.187592 0.482117\n0.274292 0.189301 0.481140\n0.309662 0.191071 0.480194\n0.347168 0.192871 0.479156\n0.386536 0.194672 0.478180\n0.427643 0.196533 0.477112\n0.470154 0.198364 0.476135\n0.513855 0.200287 0.475037\n0.558075 0.202271 0.474060\n0.601166 0.204132 0.472961\n0.642456 0.206146 0.471924\n0.681549 0.208160 0.470886\n0.717987 0.210144 0.469788\n0.751740 0.212219 0.468750\n0.782471 0.214294 0.467712\n0.810272 0.216339 0.466644\n0.835480 0.218445 0.465576\n0.858337 0.220581 0.464569\n0.879120 0.222748 0.463501\n0.898071 0.224884 0.462402\n0.915253 0.227081 0.461365\n0.930908 0.229309 0.460388\n0.945129 0.231476 0.459381\n0.957947 0.233704 0.458344\n0.969543 0.235962 0.457306\n0.057098 0.206940 0.486847\n0.080048 0.208649 0.485992\n0.103973 0.210297 0.485016\n0.129181 0.212036 0.484070\n0.155670 0.213837 0.483185\n0.183594 0.215607 0.482178\n0.213226 0.217499 0.481232\n0.244659 0.219330 0.480225\n0.278107 0.221222 0.479187\n0.313782 0.223145 0.478210\n0.351501 0.225067 0.477173\n0.391113 0.227112 0.476166\n0.432495 0.229126 0.475037\n0.475159 0.231110 0.474091\n0.519043 0.233185 0.473022\n0.563293 0.235321 0.471924\n0.606201 0.237366 0.470947\n0.647278 0.239532 0.469849\n0.686066 0.241760 0.468781\n0.722290 0.243866 0.467773\n0.755707 0.246094 0.466675\n0.786011 0.248322 0.465607\n0.813507 0.250549 0.464569\n0.838409 0.252838 0.463531\n0.861053 0.255096 0.462463\n0.881622 0.257446 0.461426\n0.900330 0.259735 0.460388\n0.917328 0.262115 0.459412\n0.932800 0.264496 0.458374\n0.946808 0.266876 0.457336\n0.959503 0.269226 0.456390\n0.970947 0.271667 0.455383\n0.059448 0.239716 0.485046\n0.082458 0.241547 0.484161\n0.106598 0.243408 0.483215\n0.131927 0.245300 0.482239\n0.158630 0.247284 0.481262\n0.186768 0.249237 0.480316\n0.216553 0.251251 0.479248\n0.248322 0.253326 0.478210\n0.282013 0.255341 0.477203\n0.317993 0.257477 0.476166\n0.355957 0.259552 0.475128\n0.395905 0.261749 0.474091\n0.437439 0.263947 0.473022\n0.480347 0.266113 0.472015\n0.524323 0.268402 0.470947\n0.568481 0.270660 0.469849\n0.611267 0.272949 0.468811\n0.652130 0.275299 0.467773\n0.690674 0.277618 0.466675\n0.726562 0.279999 0.465668\n0.759613 0.282410 0.464600\n0.789581 0.284729 0.463593\n0.816772 0.287231 0.462494\n0.841431 0.289673 0.461426\n0.863739 0.292084 0.460419\n0.884094 0.294678 0.459412\n0.902527 0.297180 0.458374\n0.919342 0.299683 0.457428\n0.934631 0.302246 0.456421\n0.948486 0.304810 0.455414\n0.961029 0.307343 0.454468\n0.972290 0.309937 0.453491\n0.061768 0.274811 0.483215\n0.084991 0.276855 0.482239\n0.109283 0.278870 0.481293\n0.134796 0.281006 0.480316\n0.161682 0.283142 0.479279\n0.190002 0.285278 0.478241\n0.220093 0.287506 0.477203\n0.252014 0.289673 0.476196\n0.286041 0.291962 0.475159\n0.322327 0.294250 0.474152\n0.360565 0.296570 0.473114\n0.400757 0.298889 0.472046\n0.442505 0.301331 0.470978\n0.485565 0.303711 0.469971\n0.529755 0.306122 0.468903\n0.573822 0.308655 0.467834\n0.616394 0.311096 0.466736\n0.656982 0.313599 0.465668\n0.695251 0.316132 0.464600\n0.730804 0.318634 0.463593\n0.763519 0.321259 0.462494\n0.793152 0.323792 0.461517\n0.819977 0.326416 0.460449\n0.844360 0.329071 0.459442\n0.866394 0.331635 0.458466\n0.886505 0.334351 0.457428\n0.904785 0.337067 0.456421\n0.921387 0.339752 0.455414\n0.936493 0.342438 0.454468\n0.950134 0.345093 0.453583\n0.962494 0.347839 0.452606\n0.973633 0.350616 0.451660\n0.064240 0.312439 0.481293\n0.087616 0.314667 0.480347\n0.112061 0.316925 0.479340\n0.137726 0.319183 0.478302\n0.164825 0.321564 0.477264\n0.193359 0.323853 0.476227\n0.223694 0.326233 0.475189\n0.255859 0.328644 0.474213\n0.290253 0.331116 0.473114\n0.326782 0.333557 0.472046\n0.365265 0.336090 0.471039\n0.405670 0.338623 0.469971\n0.447662 0.341187 0.468903\n0.490906 0.343750 0.467865\n0.535187 0.346313 0.466766\n0.579163 0.348999 0.465698\n0.621521 0.351654 0.464691\n0.661896 0.354340 0.463654\n0.699829 0.356995 0.462616\n0.735077 0.359741 0.461517\n0.767365 0.362457 0.460541\n0.796661 0.365173 0.459503\n0.823181 0.367981 0.458496\n0.847260 0.370789 0.457458\n0.869049 0.373566 0.456543\n0.888916 0.376373 0.455505\n0.906982 0.379303 0.454529\n0.923340 0.382019 0.453583\n0.938263 0.384888 0.452637\n0.951752 0.387695 0.451721\n0.963989 0.390564 0.450775\n0.974945 0.393494 0.449890\n0.066772 0.352509 0.479340\n0.090332 0.354919 0.478302\n0.114868 0.357300 0.477325\n0.140747 0.359772 0.476318\n0.167999 0.362244 0.475250\n0.196808 0.364777 0.474213\n0.227356 0.367371 0.473175\n0.259827 0.369934 0.472076\n0.294495 0.372589 0.471100\n0.331329 0.375275 0.470001\n0.370087 0.377869 0.468933\n0.410736 0.380585 0.467865\n0.452911 0.383331 0.466766\n0.496307 0.386017 0.465759\n0.540680 0.388885 0.464691\n0.584442 0.391602 0.463684\n0.626678 0.394440 0.462616\n0.666748 0.397308 0.461578\n0.704346 0.400146 0.460571\n0.739288 0.402954 0.459503\n0.771240 0.405853 0.458496\n0.800140 0.408722 0.457520\n0.826355 0.411652 0.456543\n0.850128 0.414612 0.455536\n0.871704 0.417511 0.454559\n0.891266 0.420471 0.453613\n0.909180 0.423431 0.452637\n0.925323 0.426331 0.451721\n0.940063 0.429352 0.450775\n0.953369 0.432251 0.449951\n0.965454 0.435242 0.449066\n0.976227 0.438232 0.448242\n0.069366 0.394775 0.477325\n0.093048 0.397339 0.476318\n0.117798 0.399933 0.475250\n0.143890 0.402557 0.474243\n0.171295 0.405182 0.473236\n0.200317 0.407898 0.472137\n0.231140 0.410645 0.471100\n0.263885 0.413361 0.470032\n0.298828 0.416138 0.468964\n0.335938 0.418976 0.467926\n0.374969 0.421753 0.466858\n0.415802 0.424622 0.465790\n0.458221 0.427521 0.464722\n0.501770 0.430328 0.463684\n0.546204 0.433289 0.462646\n0.589783 0.436188 0.461609\n0.631775 0.439148 0.460571\n0.671661 0.442108 0.459564\n0.708984 0.445099 0.458527\n0.743469 0.448120 0.457520\n0.775024 0.451111 0.456573\n0.803619 0.454071 0.455597\n0.829529 0.457123 0.454559\n0.852966 0.460175 0.453613\n0.874268 0.463165 0.452667\n0.893646 0.466248 0.451782\n0.911255 0.469269 0.450836\n0.927277 0.472351 0.449951\n0.941833 0.475433 0.449066\n0.954987 0.478394 0.448273\n0.966858 0.481506 0.447388\n0.977478 0.484619 0.446533\n0.072083 0.438995 0.475311\n0.095856 0.441650 0.474274\n0.120789 0.444427 0.473236\n0.147034 0.447266 0.472137\n0.174683 0.450012 0.471130\n0.203949 0.452881 0.470032\n0.234955 0.455780 0.468964\n0.267975 0.458618 0.467957\n0.303284 0.461517 0.466888\n0.340607 0.464508 0.465790\n0.379883 0.467377 0.464813\n0.421021 0.470367 0.463715\n0.463531 0.473328 0.462708\n0.507294 0.476349 0.461609\n0.551758 0.479431 0.460602\n0.595184 0.482391 0.459595\n0.636993 0.485443 0.458618\n0.676514 0.488586 0.457581\n0.713470 0.491608 0.456573\n0.747650 0.494751 0.455597\n0.778870 0.497864 0.454590\n0.807037 0.500854 0.453674\n0.832611 0.503998 0.452698\n0.855804 0.507172 0.451782\n0.876801 0.510223 0.450897\n0.895966 0.513367 0.450012\n0.913330 0.516449 0.449158\n0.929169 0.519562 0.448273\n0.943542 0.522766 0.447418\n0.956543 0.525787 0.446625\n0.968262 0.528900 0.445892\n0.978729 0.532074 0.445099\n0.074829 0.484833 0.473267\n0.098755 0.487640 0.472229\n0.123871 0.490540 0.471161\n0.150299 0.493439 0.470123\n0.178101 0.496368 0.469086\n0.207642 0.499359 0.467957\n0.238922 0.502319 0.466888\n0.272217 0.505280 0.465820\n0.307770 0.508331 0.464813\n0.345428 0.511414 0.463715\n0.384949 0.514374 0.462708\n0.426270 0.517487 0.461670\n0.468964 0.520569 0.460632\n0.512848 0.523651 0.459656\n0.557312 0.526794 0.458618\n0.600586 0.529877 0.457611\n0.642090 0.532990 0.456604\n0.681305 0.536163 0.455658\n0.717957 0.539276 0.454620\n0.751801 0.542419 0.453705\n0.782593 0.545532 0.452698\n0.810394 0.548645 0.451813\n0.835632 0.551758 0.450897\n0.858551 0.554810 0.450043\n0.879333 0.557953 0.449188\n0.898254 0.561005 0.448303\n0.915436 0.564087 0.447479\n0.931030 0.567169 0.446655\n0.945221 0.570190 0.445892\n0.958038 0.573181 0.445099\n0.969574 0.576233 0.444611\n0.979919 0.579254 0.444611\n0.077606 0.531952 0.471161\n0.101685 0.534882 0.470154\n0.127014 0.537872 0.469086\n0.153595 0.540863 0.467987\n0.181641 0.543793 0.466980\n0.211365 0.546875 0.465881\n0.242950 0.549866 0.464844\n0.276520 0.552917 0.463837\n0.312347 0.555908 0.462769\n0.350281 0.558990 0.461670\n0.390045 0.562042 0.460632\n0.431580 0.565125 0.459656\n0.474426 0.568115 0.458649\n0.518494 0.571228 0.457611\n0.562897 0.574219 0.456696\n0.605927 0.577240 0.455688\n0.647217 0.580353 0.454620\n0.686127 0.583344 0.453705\n0.722382 0.586365 0.452759\n0.755859 0.589417 0.451874\n0.786285 0.592438 0.450958\n0.813721 0.595428 0.450043\n0.838684 0.598450 0.449188\n0.861267 0.601349 0.448364\n0.881805 0.604340 0.447479\n0.900482 0.607330 0.446655\n0.917450 0.610229 0.445923\n0.932892 0.613129 0.445129\n0.946869 0.616058 0.444611\n0.959534 0.618896 0.444611\n0.970947 0.621765 0.444611\n0.981079 0.624573 0.444611\n0.080475 0.578949 0.469116\n0.104706 0.581787 0.468048\n0.130157 0.584747 0.466980\n0.156982 0.587677 0.465881\n0.185211 0.590576 0.464874\n0.215179 0.593506 0.463837\n0.247009 0.596466 0.462769\n0.280884 0.599304 0.461731\n0.316986 0.602356 0.460724\n0.355194 0.605316 0.459686\n0.395203 0.608185 0.458679\n0.436920 0.611145 0.457672\n0.479950 0.614014 0.456726\n0.524170 0.617035 0.455688\n0.568420 0.619965 0.454712\n0.611267 0.622833 0.453735\n0.652283 0.625732 0.452820\n0.690887 0.628723 0.451874\n0.726776 0.631531 0.450989\n0.759827 0.634430 0.450104\n0.789886 0.637268 0.449219\n0.817017 0.640106 0.448364\n0.841644 0.643005 0.447510\n0.863953 0.645721 0.446747\n0.884247 0.648529 0.445923\n0.902679 0.651337 0.445129\n0.919434 0.654022 0.444611\n0.934692 0.656799 0.444611\n0.948486 0.659546 0.444611\n0.960999 0.662231 0.444611\n0.972229 0.664856 0.444611\n0.982239 0.667511 0.444611\n0.083374 0.624207 0.467010\n0.107758 0.626953 0.465942\n0.133423 0.629761 0.464905\n0.160400 0.632629 0.463867\n0.188843 0.635376 0.462860\n0.219055 0.638184 0.461792\n0.251129 0.641052 0.460724\n0.285278 0.643799 0.459747\n0.321686 0.646667 0.458679\n0.360077 0.649384 0.457733\n0.400391 0.652252 0.456726\n0.442291 0.655060 0.455750\n0.485443 0.657806 0.454742\n0.529755 0.660583 0.453827\n0.573975 0.663361 0.452820\n0.616547 0.666077 0.451935\n0.657288 0.668823 0.450989\n0.695557 0.671570 0.450104\n0.731079 0.674194 0.449219\n0.763794 0.676910 0.448364\n0.793457 0.679596 0.447510\n0.820221 0.682251 0.446747\n0.844543 0.684906 0.445953\n0.866547 0.687469 0.445190\n0.886627 0.690094 0.444611\n0.904846 0.692719 0.444611\n0.921387 0.695190 0.444611\n0.936432 0.697723 0.444611\n0.950073 0.700226 0.444611\n0.962402 0.702637 0.444611\n0.973480 0.705109 0.444611\n0.983337 0.707581 0.444611\n0.086304 0.667175 0.464905\n0.110901 0.669769 0.463898\n0.136688 0.672485 0.462860\n0.163879 0.675171 0.461792\n0.192535 0.677734 0.460754\n0.222961 0.680420 0.459747\n0.255341 0.683105 0.458710\n0.289764 0.685699 0.457733\n0.326416 0.688354 0.456757\n0.365051 0.690918 0.455780\n0.405640 0.693573 0.454742\n0.447693 0.696198 0.453827\n0.491058 0.698730 0.452881\n0.535400 0.701355 0.451965\n0.579437 0.703949 0.450989\n0.621796 0.706451 0.450165\n0.662262 0.709015 0.449249\n0.700195 0.711548 0.448395\n0.735382 0.713989 0.447571\n0.767639 0.716492 0.446777\n0.796875 0.718903 0.445953\n0.823364 0.721313 0.445190\n0.847382 0.723816 0.444611\n0.869110 0.726166 0.444611\n0.888916 0.728546 0.444611\n0.906952 0.730896 0.444611\n0.923279 0.733154 0.444611\n0.938141 0.735474 0.444611\n0.951630 0.737762 0.444611\n0.963776 0.739990 0.444611\n0.974701 0.742188 0.444611\n0.984406 0.744354 0.444611\n0.089325 0.707336 0.462921\n0.114044 0.709808 0.461884\n0.139984 0.712311 0.460785\n0.167389 0.714783 0.459808\n0.196259 0.717194 0.458801\n0.226929 0.719696 0.457764\n0.259521 0.722137 0.456787\n0.294281 0.724579 0.455780\n0.331238 0.727081 0.454803\n0.370087 0.729401 0.453857\n0.410858 0.731842 0.452911\n0.453125 0.734283 0.451965\n0.496582 0.736572 0.451111\n0.541016 0.738983 0.450195\n0.584900 0.741364 0.449249\n0.626984 0.743622 0.448456\n0.667114 0.745972 0.447571\n0.704803 0.748260 0.446777\n0.739563 0.750488 0.446014\n0.771454 0.752747 0.445221\n0.800262 0.754944 0.444611\n0.826447 0.757141 0.444611\n0.850159 0.759369 0.444611\n0.871643 0.761444 0.444611\n0.891174 0.763641 0.444611\n0.908997 0.765747 0.444611\n0.925140 0.767792 0.444611\n0.939819 0.769806 0.444611\n0.953125 0.771851 0.444611\n0.965118 0.773834 0.444611\n0.975891 0.775787 0.444611\n0.985443 0.777710 0.444611\n0.092377 0.744385 0.460846\n0.117218 0.746613 0.459839\n0.143402 0.748932 0.458832\n0.170959 0.751221 0.457764\n0.200043 0.753448 0.456787\n0.230957 0.755737 0.455811\n0.263763 0.757935 0.454834\n0.298828 0.760162 0.453888\n0.336090 0.762390 0.452911\n0.375153 0.764557 0.452026\n0.416107 0.766754 0.451111\n0.458618 0.768921 0.450195\n0.502167 0.771057 0.449341\n0.546600 0.773193 0.448456\n0.590302 0.775299 0.447632\n0.632111 0.777344 0.446808\n0.671967 0.779449 0.446014\n0.709229 0.781464 0.445282\n0.743652 0.783508 0.444611\n0.775146 0.785522 0.444611\n0.803650 0.787445 0.444611\n0.829468 0.789459 0.444611\n0.852844 0.791412 0.444611\n0.874084 0.793304 0.444611\n0.893433 0.795197 0.444611\n0.910980 0.797089 0.444611\n0.926941 0.798889 0.444611\n0.941437 0.800720 0.444611\n0.954529 0.802490 0.444611\n0.966431 0.804260 0.444611\n0.977020 0.806000 0.444611\n0.986420 0.807678 0.444611\n0.095428 0.778076 0.458832\n0.120453 0.780060 0.457825\n0.146790 0.782166 0.456879\n0.174530 0.784149 0.455902\n0.203888 0.786224 0.454834\n0.235016 0.788300 0.453888\n0.268097 0.790253 0.452972\n0.303436 0.792236 0.452087\n0.340881 0.794281 0.451111\n0.380249 0.796204 0.450226\n0.421356 0.798187 0.449371\n0.464020 0.800110 0.448486\n0.507721 0.802032 0.447662\n0.552155 0.803925 0.446808\n0.595490 0.805786 0.446075\n0.637207 0.807678 0.445282\n0.676666 0.809540 0.444611\n0.713562 0.811310 0.444611\n0.747711 0.813141 0.444611\n0.778778 0.814911 0.444611\n0.806915 0.816711 0.444611\n0.832397 0.818420 0.444611\n0.855499 0.820190 0.444611\n0.876465 0.821838 0.444611\n0.895569 0.823547 0.444611\n0.912903 0.825226 0.444611\n0.928680 0.826782 0.444611\n0.942993 0.828430 0.444611\n0.955963 0.829987 0.444611\n0.967651 0.831573 0.444611\n0.978149 0.833130 0.444611\n0.987396 0.834595 0.444611\n0.098511 0.808289 0.456879\n0.123718 0.810120 0.455902\n0.150238 0.812012 0.454895\n0.178131 0.813812 0.453949\n0.207733 0.815674 0.453033\n0.239075 0.817505 0.452087\n0.272430 0.819305 0.451141\n0.308044 0.821106 0.450317\n0.345764 0.822906 0.449371\n0.385315 0.824615 0.448547\n0.426666 0.826385 0.447662\n0.469391 0.828156 0.446899\n0.513275 0.829834 0.446106\n0.557617 0.831543 0.445282\n0.600769 0.833221 0.444611\n0.642212 0.834900 0.444611\n0.681396 0.836548 0.444611\n0.717865 0.838165 0.444611\n0.751648 0.839752 0.444611\n0.782318 0.841400 0.444611\n0.810059 0.842926 0.444611\n0.835236 0.844513 0.444611\n0.858093 0.846069 0.444611\n0.878784 0.847534 0.444611\n0.897675 0.849060 0.444611\n0.914795 0.850494 0.444611\n0.930359 0.851929 0.444611\n0.944519 0.853363 0.444611\n0.957306 0.854767 0.444611\n0.968872 0.856171 0.444611\n0.979187 0.857513 0.444611\n0.988342 0.858795 0.444611\n0.101624 0.835449 0.454956\n0.127014 0.837158 0.454010\n0.153687 0.838837 0.453033\n0.181763 0.840485 0.452118\n0.211548 0.842133 0.451202\n0.243195 0.843781 0.450317\n0.276825 0.845398 0.449402\n0.312683 0.847046 0.448547\n0.350616 0.848663 0.447662\n0.390411 0.850220 0.446930\n0.431946 0.851776 0.446106\n0.474731 0.853333 0.445312\n0.518768 0.854858 0.444611\n0.563019 0.856415 0.444611\n0.605957 0.857880 0.444611\n0.647095 0.859406 0.444611\n0.685974 0.860870 0.444611\n0.722107 0.862274 0.444611\n0.755432 0.863770 0.444611\n0.785767 0.865173 0.444611\n0.813171 0.866577 0.444611\n0.838043 0.867950 0.444611\n0.860596 0.869324 0.444611\n0.881073 0.870636 0.444611\n0.899658 0.871979 0.444611\n0.916626 0.873260 0.444611\n0.932007 0.874542 0.444611\n0.945984 0.875824 0.444611\n0.958618 0.877045 0.444611\n0.970032 0.878265 0.444611\n0.980225 0.879486 0.444611\n0.989197 0.880646 0.444611\n0.104767 0.859985 0.453064\n0.130310 0.861511 0.452148\n0.157135 0.863037 0.451202\n0.185455 0.864502 0.450348\n0.215424 0.865997 0.449432\n0.247314 0.867523 0.448547\n0.281189 0.868927 0.447693\n0.317291 0.870392 0.446930\n0.355499 0.871857 0.446106\n0.395508 0.873260 0.445343\n0.437134 0.874664 0.444611\n0.480164 0.876038 0.444611\n0.524170 0.877411 0.444611\n0.568329 0.878815 0.444611\n0.611084 0.880127 0.444611\n0.651917 0.881470 0.444611\n0.690399 0.882812 0.444611\n0.726227 0.884094 0.444611\n0.759186 0.885376 0.444611\n0.789124 0.886658 0.444611\n0.816162 0.887848 0.444611\n0.840698 0.889099 0.444611\n0.862976 0.890289 0.444611\n0.883209 0.891510 0.444611\n0.901642 0.892700 0.444611\n0.918335 0.893829 0.444611\n0.933594 0.894958 0.444611\n0.947418 0.896088 0.444611\n0.959900 0.897156 0.444611\n0.971130 0.898254 0.444611\n0.981171 0.899292 0.444611\n0.990021 0.900330 0.444611\n0.107941 0.882080 0.451263\n0.133606 0.883514 0.450348\n0.160645 0.884888 0.449432\n0.189148 0.886200 0.448578\n0.219299 0.887543 0.447784\n0.251434 0.888885 0.446960\n0.285583 0.890167 0.446167\n0.321960 0.891479 0.445343\n0.360321 0.892761 0.444672\n0.400513 0.894043 0.444611\n0.442322 0.895325 0.444611\n0.485413 0.896545 0.444611\n0.529572 0.897797 0.444611\n0.573608 0.899017 0.444611\n0.616058 0.900208 0.444611\n0.656555 0.901398 0.444611\n0.694763 0.902557 0.444611\n0.730194 0.903717 0.444611\n0.762787 0.904877 0.444611\n0.792328 0.905975 0.444611\n0.819092 0.907074 0.444611\n0.843353 0.908173 0.444611\n0.865295 0.909271 0.444611\n0.885315 0.910278 0.444611\n0.903534 0.911346 0.444611\n0.920074 0.912354 0.444611\n0.935120 0.913361 0.444611\n0.948792 0.914368 0.444611\n0.961090 0.915314 0.444611\n0.972229 0.916260 0.444611\n0.982117 0.917236 0.444611\n0.990845 0.918091 0.444611\n0.111053 0.902069 0.449493\n0.136932 0.903320 0.448669\n0.164124 0.904541 0.447784\n0.192810 0.905731 0.446960\n0.223206 0.906982 0.446198\n0.255554 0.908142 0.445343\n0.289948 0.909363 0.444672\n0.326569 0.910522 0.444611\n0.365143 0.911652 0.444611\n0.405518 0.912750 0.444611\n0.447479 0.913910 0.444611\n0.490692 0.915070 0.444611\n0.534882 0.916168 0.444611\n0.578705 0.917267 0.444611\n0.620972 0.918274 0.444611\n0.661163 0.919373 0.444611\n0.699036 0.920410 0.444611\n0.734070 0.921448 0.444611\n0.766266 0.922455 0.444611\n0.795471 0.923431 0.444611\n0.821899 0.924408 0.444611\n0.845825 0.925385 0.444611\n0.867584 0.926331 0.444611\n0.887360 0.927277 0.444611\n0.905365 0.928192 0.444611\n0.921692 0.929077 0.444611\n0.936584 0.929962 0.444611\n0.950043 0.930847 0.444611\n0.962250 0.931671 0.444611\n0.973206 0.932556 0.444611\n0.983002 0.933319 0.444611\n0.991608 0.934143 0.444611\n0.114288 0.920074 0.447815\n0.140228 0.921234 0.447052\n0.167633 0.922333 0.446198\n0.196503 0.923401 0.445404\n0.227142 0.924500 0.444672\n0.259674 0.925568 0.444611\n0.294342 0.926605 0.444611\n0.331207 0.927673 0.444611\n0.369904 0.928680 0.444611\n0.410492 0.929718 0.444611\n0.452637 0.930725 0.444611\n0.495911 0.931702 0.444611\n0.540131 0.932739 0.444611\n0.583740 0.933685 0.444611\n0.625702 0.934601 0.444611\n0.665649 0.935577 0.444611\n0.703156 0.936493 0.444611\n0.737885 0.937378 0.444611\n0.769684 0.938293 0.444611\n0.798462 0.939178 0.444611\n0.824585 0.940063 0.444611\n0.848297 0.940918 0.444611\n0.869751 0.941742 0.444611\n0.889313 0.942566 0.444611\n0.907104 0.943359 0.444611\n0.923248 0.944153 0.444611\n0.937988 0.944946 0.444611\n0.951294 0.945740 0.444611\n0.963379 0.946442 0.444611\n0.974182 0.947174 0.444611\n0.983826 0.947876 0.444611\n0.992310 0.948547 0.444611\n0.117432 0.936371 0.446259\n0.143585 0.937378 0.445465\n0.171112 0.938354 0.444733\n0.200134 0.939331 0.444611\n0.231018 0.940308 0.444611\n0.263763 0.941254 0.444611\n0.298676 0.942169 0.444611\n0.335754 0.943146 0.444611\n0.374725 0.944031 0.444611\n0.415436 0.944946 0.444611\n0.457672 0.945862 0.444611\n0.501007 0.946716 0.444611\n0.545227 0.947601 0.444611\n0.588654 0.948456 0.444611\n0.630402 0.949280 0.444611\n0.669952 0.950134 0.444611\n0.707123 0.950928 0.444611\n0.741486 0.951721 0.444611\n0.772949 0.952545 0.444611\n0.801392 0.953308 0.444611\n0.827179 0.954071 0.444611\n0.850616 0.954834 0.444611\n0.871857 0.955566 0.444611\n0.891174 0.956299 0.444611\n0.908752 0.957001 0.444611\n0.924774 0.957672 0.444611\n0.939301 0.958374 0.444611\n0.952484 0.959015 0.444611\n0.964386 0.959686 0.444611\n0.975098 0.960327 0.444611\n0.984619 0.960907 0.444611\n0.992981 0.961517 0.444611\n0.120575 0.951019 0.444763\n0.146912 0.951904 0.444611\n0.174622 0.952789 0.444611\n0.203857 0.953674 0.444611\n0.234863 0.954498 0.444611\n0.267822 0.955322 0.444611\n0.303040 0.956207 0.444611\n0.340271 0.957001 0.444611\n0.379425 0.957825 0.444611\n0.420288 0.958588 0.444611\n0.462646 0.959412 0.444611\n0.506104 0.960205 0.444611\n0.550232 0.960968 0.444611\n0.593475 0.961731 0.444611\n0.634888 0.962433 0.444611\n0.674164 0.963196 0.444611\n0.710999 0.963898 0.444611\n0.744995 0.964600 0.444611\n0.776093 0.965302 0.444611\n0.804230 0.965973 0.444611\n0.829742 0.966675 0.444611\n0.852844 0.967285 0.444611\n0.873840 0.967926 0.444611\n0.892975 0.968536 0.444611\n0.910370 0.969177 0.444611\n0.926178 0.969757 0.444611\n0.940582 0.970367 0.444611\n0.953613 0.970917 0.444611\n0.965393 0.971466 0.444611\n0.975983 0.972015 0.444611\n0.985382 0.972534 0.444611\n0.993622 0.973053 0.444611\n0.123749 0.964111 0.444611\n0.150208 0.964874 0.444611\n0.178009 0.965668 0.444611\n0.207458 0.966431 0.444611\n0.238708 0.967194 0.444611\n0.271912 0.967926 0.444611\n0.307312 0.968689 0.444611\n0.344788 0.969421 0.444611\n0.384064 0.970093 0.444611\n0.425110 0.970795 0.444611\n0.467529 0.971527 0.444611\n0.510986 0.972198 0.444611\n0.555115 0.972870 0.444611\n0.598083 0.973511 0.444611\n0.639282 0.974152 0.444611\n0.678253 0.974823 0.444611\n0.714691 0.975433 0.444611\n0.748383 0.976044 0.444611\n0.779114 0.976654 0.444611\n0.806915 0.977203 0.444611\n0.832123 0.977783 0.444611\n0.855011 0.978363 0.444611\n0.875763 0.978912 0.444611\n0.894684 0.979431 0.444611\n0.911865 0.979950 0.444611\n0.927521 0.980469 0.444611\n0.941803 0.980957 0.444611\n0.954651 0.981445 0.444611\n0.966339 0.981934 0.444611\n0.976776 0.982391 0.444611\n0.986053 0.982819 0.444611\n0.994202 0.983276 0.444611\n0.042450 0.003723 0.539276\n0.064362 0.004517 0.538757\n0.087219 0.005280 0.538269\n0.111145 0.006134 0.537689\n0.136322 0.007019 0.537048\n0.162750 0.007874 0.536407\n0.190704 0.008789 0.535767\n0.220306 0.009705 0.535065\n0.251740 0.010651 0.534363\n0.285339 0.011688 0.533569\n0.320892 0.012695 0.532837\n0.358582 0.013702 0.531982\n0.398102 0.014801 0.531189\n0.439209 0.015869 0.530334\n0.481720 0.016968 0.529510\n0.525208 0.018127 0.528595\n0.568878 0.019287 0.527679\n0.611237 0.020447 0.526764\n0.651611 0.021637 0.525787\n0.689880 0.022858 0.524872\n0.725525 0.024139 0.523834\n0.758362 0.025330 0.522888\n0.788300 0.026642 0.521912\n0.815430 0.027954 0.520874\n0.839966 0.029266 0.519836\n0.862305 0.030609 0.518799\n0.882660 0.031982 0.517761\n0.901184 0.033325 0.516724\n0.917999 0.034729 0.515564\n0.933319 0.036133 0.514557\n0.947266 0.037567 0.513458\n0.959869 0.039001 0.512390\n0.043976 0.024933 0.538269\n0.066010 0.025787 0.537689\n0.088989 0.026672 0.537048\n0.113098 0.027618 0.536469\n0.138367 0.028564 0.535797\n0.165039 0.029510 0.535126\n0.193146 0.030518 0.534363\n0.222961 0.031525 0.533569\n0.254639 0.032593 0.532837\n0.288452 0.033691 0.532074\n0.324310 0.034790 0.531250\n0.362244 0.035919 0.530365\n0.401978 0.037048 0.529510\n0.443268 0.038208 0.528595\n0.486023 0.039429 0.527679\n0.529663 0.040619 0.526794\n0.573334 0.041931 0.525818\n0.615540 0.043152 0.524902\n0.655853 0.044434 0.523895\n0.693878 0.045776 0.522888\n0.729279 0.047119 0.521912\n0.761810 0.048462 0.520905\n0.791443 0.049835 0.519836\n0.818268 0.051208 0.518799\n0.842621 0.052612 0.517792\n0.864777 0.054047 0.516724\n0.884918 0.055511 0.515656\n0.903229 0.056976 0.514618\n0.919891 0.058441 0.513519\n0.935059 0.059906 0.512451\n0.948853 0.061462 0.511383\n0.961304 0.062958 0.510254\n0.045593 0.047119 0.537140\n0.067749 0.048096 0.536469\n0.090881 0.049103 0.535797\n0.115112 0.050079 0.535126\n0.140594 0.051147 0.534393\n0.167389 0.052155 0.533661\n0.195740 0.053284 0.532837\n0.225769 0.054382 0.532104\n0.257721 0.055573 0.531250\n0.291748 0.056732 0.530365\n0.327911 0.057892 0.529572\n0.366089 0.059113 0.528625\n0.406067 0.060364 0.527740\n0.447571 0.061646 0.526794\n0.490448 0.062958 0.525818\n0.534241 0.064270 0.524933\n0.577911 0.065613 0.523956\n0.619965 0.066986 0.522919\n0.660095 0.068359 0.521942\n0.697906 0.069763 0.520935\n0.733032 0.071228 0.519897\n0.765320 0.072632 0.518860\n0.794647 0.074097 0.517792\n0.821228 0.075592 0.516754\n0.845306 0.077057 0.515686\n0.867218 0.078613 0.514618\n0.887146 0.080139 0.513580\n0.905273 0.081696 0.512451\n0.921814 0.083282 0.511383\n0.936798 0.084839 0.510345\n0.950409 0.086487 0.509216\n0.962769 0.088104 0.508118\n0.047333 0.070435 0.535797\n0.069580 0.071442 0.535187\n0.092865 0.072540 0.534393\n0.117279 0.073639 0.533661\n0.142883 0.074799 0.532867\n0.169891 0.075928 0.532104\n0.198456 0.077179 0.531250\n0.228668 0.078369 0.530457\n0.260895 0.079620 0.529572\n0.295227 0.080872 0.528717\n0.331604 0.082184 0.527802\n0.370087 0.083527 0.526855\n0.410278 0.084839 0.525879\n0.452026 0.086212 0.524933\n0.495117 0.087646 0.523956\n0.539032 0.089020 0.522980\n0.582550 0.090485 0.521973\n0.624542 0.091980 0.520935\n0.664429 0.093414 0.519928\n0.701965 0.094940 0.518921\n0.736908 0.096527 0.517822\n0.768829 0.098022 0.516785\n0.797852 0.099609 0.515686\n0.824158 0.101196 0.514648\n0.848022 0.102814 0.513611\n0.869720 0.104462 0.512482\n0.889374 0.106018 0.511444\n0.907349 0.107727 0.510376\n0.923706 0.109436 0.509308\n0.938538 0.111053 0.508179\n0.951996 0.112793 0.507080\n0.964203 0.114532 0.506042\n0.049164 0.094879 0.534485\n0.071564 0.096039 0.533691\n0.095001 0.097229 0.532867\n0.119537 0.098419 0.532104\n0.145325 0.099701 0.531281\n0.172516 0.100952 0.530457\n0.201294 0.102264 0.529602\n0.231750 0.103577 0.528717\n0.264221 0.104950 0.527802\n0.298828 0.106354 0.526855\n0.335510 0.107727 0.525940\n0.374207 0.109161 0.524933\n0.414612 0.110596 0.523987\n0.456604 0.112122 0.522980\n0.499847 0.113647 0.521973\n0.543823 0.115143 0.520996\n0.587372 0.116699 0.519928\n0.629150 0.118286 0.518921\n0.668823 0.119843 0.517883\n0.706146 0.121521 0.516785\n0.740784 0.123169 0.515747\n0.772400 0.124786 0.514709\n0.801117 0.126495 0.513611\n0.827118 0.128174 0.512573\n0.850739 0.129913 0.511444\n0.872192 0.131653 0.510376\n0.891663 0.133392 0.509338\n0.909454 0.135162 0.508240\n0.925629 0.136993 0.507141\n0.940277 0.138763 0.506104\n0.953583 0.140625 0.505005\n0.965576 0.142487 0.503906\n0.051147 0.120667 0.532959\n0.073639 0.121918 0.532166\n0.097229 0.123260 0.531372\n0.121948 0.124603 0.530487\n0.147888 0.125916 0.529663\n0.175293 0.127319 0.528748\n0.204254 0.128754 0.527832\n0.234955 0.130188 0.526917\n0.267700 0.131653 0.525940\n0.302521 0.133148 0.524963\n0.339508 0.134674 0.524048\n0.378448 0.136261 0.523041\n0.419128 0.137787 0.522034\n0.461304 0.139404 0.521057\n0.504700 0.141083 0.519958\n0.548859 0.142700 0.518951\n0.592163 0.144379 0.517883\n0.633820 0.146088 0.516876\n0.673309 0.147797 0.515778\n0.710327 0.149536 0.514709\n0.744659 0.151306 0.513672\n0.775970 0.153107 0.512573\n0.804352 0.154907 0.511536\n0.830109 0.156708 0.510406\n0.853424 0.158569 0.509338\n0.874664 0.160461 0.508240\n0.893921 0.162292 0.507172\n0.911530 0.164215 0.506104\n0.927521 0.166138 0.505005\n0.942017 0.168060 0.503937\n0.955170 0.170013 0.502838\n0.967041 0.171997 0.501831\n0.053162 0.147949 0.531372\n0.075836 0.149292 0.530548\n0.099548 0.150757 0.529663\n0.124451 0.152222 0.528748\n0.150543 0.153687 0.527832\n0.178131 0.155182 0.526978\n0.207336 0.156769 0.525970\n0.238281 0.158325 0.525055\n0.271271 0.159943 0.524048\n0.306396 0.161560 0.523071\n0.343658 0.163208 0.522095\n0.382904 0.164917 0.521057\n0.423737 0.166595 0.520050\n0.466125 0.168365 0.518982\n0.509705 0.170166 0.517944\n0.553833 0.171906 0.516907\n0.597076 0.173737 0.515778\n0.638580 0.175568 0.514771\n0.677795 0.177399 0.513702\n0.714569 0.179260 0.512604\n0.748505 0.181152 0.511566\n0.779541 0.183105 0.510468\n0.807617 0.185059 0.509369\n0.833069 0.186981 0.508270\n0.856171 0.188965 0.507172\n0.877167 0.191010 0.506165\n0.896210 0.192993 0.505035\n0.913574 0.195038 0.503937\n0.929413 0.197113 0.502930\n0.943726 0.199158 0.501862\n0.956726 0.201233 0.500793\n0.968414 0.203278 0.499786\n0.055298 0.176819 0.529663\n0.078094 0.178345 0.528778\n0.101959 0.179932 0.527893\n0.127045 0.181519 0.526978\n0.153320 0.183136 0.526031\n0.181122 0.184814 0.525085\n0.210480 0.186462 0.524078\n0.241760 0.188171 0.523071\n0.274994 0.189941 0.522095\n0.310425 0.191711 0.521088\n0.347961 0.193542 0.520050\n0.387421 0.195374 0.518982\n0.428497 0.197205 0.517975\n0.471130 0.199066 0.516907\n0.514862 0.201050 0.515808\n0.558990 0.202942 0.514801\n0.602112 0.204895 0.513702\n0.643372 0.206909 0.512634\n0.682343 0.208893 0.511566\n0.718811 0.210907 0.510468\n0.752441 0.212921 0.509430\n0.783112 0.214996 0.508331\n0.810913 0.217133 0.507202\n0.836029 0.219208 0.506226\n0.858826 0.221375 0.505096\n0.879639 0.223541 0.503998\n0.898468 0.225677 0.502960\n0.915680 0.227905 0.501923\n0.931305 0.230103 0.500824\n0.945435 0.232300 0.499786\n0.958252 0.234528 0.498749\n0.969788 0.236755 0.497742\n0.057556 0.207550 0.527924\n0.080475 0.209229 0.527008\n0.104523 0.210968 0.526031\n0.129700 0.212738 0.525085\n0.156189 0.214508 0.524170\n0.184174 0.216309 0.523102\n0.213776 0.218109 0.522156\n0.245270 0.220032 0.521118\n0.278839 0.221985 0.520081\n0.314484 0.223846 0.519043\n0.352325 0.225830 0.518036\n0.392029 0.227783 0.516968\n0.433380 0.229828 0.515900\n0.476166 0.231903 0.514862\n0.520050 0.234009 0.513733\n0.564209 0.236023 0.512726\n0.607147 0.238159 0.511597\n0.648163 0.240326 0.510529\n0.686920 0.242493 0.509430\n0.723114 0.244690 0.508362\n0.756348 0.246857 0.507294\n0.786682 0.249146 0.506226\n0.814178 0.251434 0.505096\n0.838989 0.253662 0.504028\n0.861572 0.255981 0.503021\n0.882080 0.258331 0.501923\n0.900696 0.260620 0.500854\n0.917725 0.262970 0.499847\n0.933075 0.265320 0.498779\n0.947144 0.267761 0.497772\n0.959808 0.270142 0.496735\n0.971191 0.272491 0.495789\n0.059845 0.240387 0.526062\n0.082916 0.242188 0.525116\n0.107086 0.244110 0.524170\n0.132477 0.246033 0.523102\n0.159180 0.247986 0.522186\n0.187378 0.249969 0.521118\n0.217224 0.251984 0.520142\n0.248962 0.254028 0.519073\n0.282776 0.256134 0.518036\n0.318787 0.258240 0.516998\n0.356873 0.260376 0.515930\n0.396851 0.262573 0.514862\n0.438324 0.264740 0.513794\n0.481354 0.266937 0.512726\n0.525269 0.269196 0.511658\n0.569519 0.271454 0.510590\n0.612213 0.273773 0.509491\n0.653015 0.276123 0.508392\n0.691528 0.278473 0.507324\n0.727356 0.280884 0.506256\n0.760284 0.283234 0.505188\n0.790283 0.285675 0.504089\n0.817383 0.288147 0.503021\n0.841919 0.290558 0.501984\n0.864227 0.293091 0.500946\n0.884521 0.295593 0.499847\n0.902985 0.298065 0.498810\n0.919708 0.300568 0.497772\n0.934967 0.303162 0.496826\n0.948822 0.305725 0.495789\n0.961304 0.308289 0.494781\n0.972504 0.310852 0.493866\n0.062225 0.275574 0.524200\n0.085449 0.277588 0.523132\n0.109802 0.279663 0.522186\n0.135315 0.281738 0.521149\n0.162262 0.283905 0.520142\n0.190643 0.286072 0.519135\n0.220734 0.288269 0.518066\n0.252747 0.290527 0.517059\n0.286835 0.292816 0.515930\n0.323151 0.295074 0.514893\n0.361511 0.297455 0.513855\n0.401672 0.299835 0.512756\n0.443420 0.302155 0.511658\n0.486603 0.304596 0.510590\n0.530701 0.306976 0.509521\n0.574768 0.309540 0.508392\n0.617371 0.312042 0.507324\n0.657898 0.314453 0.506287\n0.696106 0.317017 0.505188\n0.731628 0.319611 0.504089\n0.764191 0.322174 0.503052\n0.793793 0.324799 0.502014\n0.820618 0.327393 0.500946\n0.844849 0.329987 0.499878\n0.866913 0.332672 0.498810\n0.886932 0.335297 0.497864\n0.905182 0.338013 0.496826\n0.921722 0.340729 0.495819\n0.936798 0.343414 0.494873\n0.950470 0.346130 0.493927\n0.962799 0.348877 0.492920\n0.973846 0.351562 0.491943\n0.064697 0.313293 0.522217\n0.088074 0.315491 0.521240\n0.112579 0.317749 0.520172\n0.138275 0.320038 0.519165\n0.165375 0.322327 0.518158\n0.194031 0.324738 0.517059\n0.224335 0.327087 0.515961\n0.256622 0.329529 0.514984\n0.291046 0.332062 0.513855\n0.327576 0.334473 0.512787\n0.366211 0.337006 0.511719\n0.406647 0.339600 0.510620\n0.448578 0.342102 0.509552\n0.491913 0.344696 0.508484\n0.536163 0.347321 0.507385\n0.580139 0.349976 0.506287\n0.622498 0.352631 0.505219\n0.662781 0.355286 0.504120\n0.700714 0.358002 0.503113\n0.735840 0.360748 0.502014\n0.768097 0.363495 0.500977\n0.797333 0.366241 0.499939\n0.823792 0.369049 0.498871\n0.847778 0.371796 0.497894\n0.869568 0.374603 0.496857\n0.889343 0.377380 0.495911\n0.907349 0.380249 0.494904\n0.923706 0.383118 0.493927\n0.938629 0.385864 0.492950\n0.952087 0.388794 0.492035\n0.964264 0.391693 0.491089\n0.975189 0.394501 0.490173\n0.067261 0.353333 0.520233\n0.090790 0.355743 0.519165\n0.115448 0.358215 0.518158\n0.141327 0.360657 0.517120\n0.168610 0.363220 0.516022\n0.197479 0.365784 0.514984\n0.228027 0.368317 0.513885\n0.260559 0.370941 0.512787\n0.295288 0.373596 0.511780\n0.332153 0.376221 0.510651\n0.371033 0.378906 0.509552\n0.411621 0.381592 0.508514\n0.453857 0.384308 0.507416\n0.497375 0.387085 0.506378\n0.541687 0.389832 0.505280\n0.585480 0.392609 0.504211\n0.627655 0.395508 0.503113\n0.667633 0.398254 0.502045\n0.705261 0.401184 0.501007\n0.740143 0.404083 0.499969\n0.771942 0.406952 0.498932\n0.800812 0.409851 0.497894\n0.826904 0.412720 0.496887\n0.850647 0.415619 0.495941\n0.872162 0.418610 0.494904\n0.891724 0.421509 0.493988\n0.909546 0.424469 0.493042\n0.925720 0.427460 0.492035\n0.940369 0.430420 0.491150\n0.953705 0.433380 0.490173\n0.965729 0.436401 0.489319\n0.976471 0.439301 0.488464\n0.069855 0.395691 0.518188\n0.093536 0.398254 0.517151\n0.118378 0.400909 0.516022\n0.144409 0.403503 0.515015\n0.171936 0.406219 0.513916\n0.201050 0.408905 0.512848\n0.231812 0.411621 0.511810\n0.264648 0.414398 0.510742\n0.299683 0.417206 0.509583\n0.336731 0.419922 0.508514\n0.375916 0.422852 0.507477\n0.416779 0.425629 0.506409\n0.459167 0.428558 0.505280\n0.502808 0.431427 0.504211\n0.547211 0.434326 0.503174\n0.590881 0.437286 0.502136\n0.632812 0.440277 0.501007\n0.672516 0.443207 0.500000\n0.709808 0.446198 0.498962\n0.744324 0.449219 0.497925\n0.775726 0.452148 0.496979\n0.804291 0.455231 0.495941\n0.830078 0.458191 0.494995\n0.853485 0.461243 0.494019\n0.874756 0.464325 0.493042\n0.894073 0.467316 0.492065\n0.911652 0.470367 0.491150\n0.927643 0.473480 0.490265\n0.942139 0.476501 0.489349\n0.955261 0.479553 0.488464\n0.967133 0.482666 0.487640\n0.977692 0.485687 0.486847\n0.072540 0.439941 0.516083\n0.096405 0.442688 0.515045\n0.121399 0.445465 0.513916\n0.147644 0.448242 0.512909\n0.175323 0.451111 0.511810\n0.204651 0.453949 0.510742\n0.235687 0.456757 0.509674\n0.268829 0.459686 0.508575\n0.304047 0.462555 0.507538\n0.341461 0.465515 0.506439\n0.380890 0.468567 0.505310\n0.421936 0.471436 0.504272\n0.464569 0.474426 0.503204\n0.508362 0.477539 0.502136\n0.552734 0.480530 0.501038\n0.596252 0.483582 0.500000\n0.637939 0.486633 0.498962\n0.677368 0.489655 0.498016\n0.714355 0.492798 0.496979\n0.748383 0.495819 0.495972\n0.779510 0.498932 0.494995\n0.807678 0.502045 0.494019\n0.833160 0.505127 0.493073\n0.856293 0.508270 0.492096\n0.877319 0.511414 0.491180\n0.896393 0.514465 0.490295\n0.913727 0.517639 0.489349\n0.929565 0.520752 0.488556\n0.943878 0.523834 0.487671\n0.956818 0.526978 0.486847\n0.968475 0.529968 0.486053\n0.978912 0.533142 0.485260\n0.075317 0.485840 0.513947\n0.099335 0.488708 0.512909\n0.124481 0.491638 0.511841\n0.150909 0.494476 0.510773\n0.178772 0.497467 0.509674\n0.208344 0.500458 0.508575\n0.239685 0.503418 0.507538\n0.273041 0.506439 0.506439\n0.308624 0.509430 0.505402\n0.346252 0.512451 0.504272\n0.385956 0.515533 0.503204\n0.427246 0.518616 0.502167\n0.470001 0.521667 0.501129\n0.513916 0.524872 0.500061\n0.558289 0.527893 0.499054\n0.601593 0.531036 0.498016\n0.643066 0.534210 0.497009\n0.682251 0.537292 0.496063\n0.718811 0.540405 0.494995\n0.752502 0.543518 0.494080\n0.783234 0.546631 0.493073\n0.811066 0.549774 0.492096\n0.836182 0.552856 0.491241\n0.859039 0.555969 0.490295\n0.879822 0.559082 0.489380\n0.898651 0.562103 0.488586\n0.915802 0.565216 0.487671\n0.931396 0.568298 0.486908\n0.945557 0.571289 0.486115\n0.958313 0.574310 0.485291\n0.969818 0.577332 0.485107\n0.980133 0.580261 0.485107\n0.078125 0.532990 0.511932\n0.102264 0.535980 0.510803\n0.127594 0.539032 0.509705\n0.154205 0.541931 0.508667\n0.182312 0.544983 0.507568\n0.212128 0.547974 0.506500\n0.243652 0.550995 0.505402\n0.277344 0.554047 0.504364\n0.313171 0.557037 0.503235\n0.351166 0.560089 0.502228\n0.390991 0.563141 0.501129\n0.432526 0.566132 0.500122\n0.475464 0.569244 0.499084\n0.519531 0.572296 0.498047\n0.563904 0.575317 0.497009\n0.606964 0.578400 0.496063\n0.648193 0.581512 0.495026\n0.686981 0.584442 0.494110\n0.723236 0.587524 0.493103\n0.756592 0.590485 0.492126\n0.786896 0.593506 0.491241\n0.814362 0.596558 0.490356\n0.839203 0.599457 0.489471\n0.861786 0.602478 0.488586\n0.882263 0.605499 0.487762\n0.900879 0.608368 0.486908\n0.917847 0.611298 0.486115\n0.933228 0.614227 0.485291\n0.947205 0.617096 0.485107\n0.959808 0.619965 0.485107\n0.971161 0.622803 0.485107\n0.981323 0.625610 0.485107\n0.080963 0.579987 0.509766\n0.105286 0.582886 0.508667\n0.130798 0.585876 0.507568\n0.157593 0.588684 0.506531\n0.185913 0.591675 0.505432\n0.215942 0.594635 0.504364\n0.247742 0.597534 0.503326\n0.281677 0.600464 0.502289\n0.317810 0.603333 0.501190\n0.356049 0.606354 0.500122\n0.396210 0.609314 0.499084\n0.437897 0.612183 0.498077\n0.480988 0.615173 0.497101\n0.525146 0.618134 0.496094\n0.569427 0.621033 0.495117\n0.612305 0.623932 0.494110\n0.653259 0.626831 0.493103\n0.691711 0.629700 0.492218\n0.727631 0.632629 0.491302\n0.760529 0.635437 0.490417\n0.790527 0.638336 0.489471\n0.817627 0.641174 0.488617\n0.842133 0.643982 0.487793\n0.864441 0.646790 0.486938\n0.884674 0.649597 0.486115\n0.903076 0.652374 0.485382\n0.919800 0.655121 0.485107\n0.935028 0.657837 0.485107\n0.948822 0.660492 0.485107\n0.961273 0.663208 0.485107\n0.972443 0.665833 0.485107\n0.982452 0.668427 0.485107\n0.083893 0.625214 0.507629\n0.108337 0.628021 0.506531\n0.134033 0.630829 0.505463\n0.161011 0.633575 0.504395\n0.189575 0.636414 0.503357\n0.219757 0.639221 0.502319\n0.251862 0.642029 0.501190\n0.286133 0.644897 0.500153\n0.322540 0.647614 0.499115\n0.361023 0.650482 0.498077\n0.401367 0.653290 0.497131\n0.443237 0.656006 0.496124\n0.486572 0.658813 0.495148\n0.530853 0.661591 0.494141\n0.574921 0.664307 0.493134\n0.617554 0.667053 0.492218\n0.658173 0.669769 0.491333\n0.696381 0.672516 0.490417\n0.731964 0.675262 0.489502\n0.764496 0.677887 0.488617\n0.794037 0.680573 0.487793\n0.820801 0.683289 0.486938\n0.845032 0.685822 0.486176\n0.867065 0.688446 0.485382\n0.887054 0.691040 0.485107\n0.905182 0.693573 0.485107\n0.921722 0.696136 0.485107\n0.936768 0.698608 0.485107\n0.950378 0.701141 0.485107\n0.962677 0.703613 0.485107\n0.973724 0.705994 0.485107\n0.983521 0.708405 0.485107\n0.086853 0.668091 0.505554\n0.111481 0.670776 0.504425\n0.137329 0.673492 0.503357\n0.164490 0.676056 0.502319\n0.193268 0.678772 0.501251\n0.223694 0.681396 0.500244\n0.256073 0.683990 0.499207\n0.290649 0.686676 0.498169\n0.327271 0.689270 0.497162\n0.366028 0.691925 0.496124\n0.406586 0.694580 0.495148\n0.448700 0.697113 0.494141\n0.492096 0.699738 0.493225\n0.536499 0.702332 0.492249\n0.580414 0.704834 0.491333\n0.622833 0.707397 0.490417\n0.663116 0.709869 0.489563\n0.701019 0.712433 0.488678\n0.736176 0.714935 0.487793\n0.768341 0.717346 0.487000\n0.797516 0.719818 0.486206\n0.823975 0.722290 0.485413\n0.847870 0.724609 0.485107\n0.869629 0.727081 0.485107\n0.889374 0.729431 0.485107\n0.907318 0.731689 0.485107\n0.923615 0.734039 0.485107\n0.938446 0.736267 0.485107\n0.951904 0.738525 0.485107\n0.964050 0.740814 0.485107\n0.974945 0.742950 0.485107\n0.984619 0.745148 0.485107\n0.089874 0.708221 0.503418\n0.114655 0.710754 0.502380\n0.140656 0.713165 0.501312\n0.168030 0.715637 0.500244\n0.197021 0.718170 0.499207\n0.227631 0.720551 0.498199\n0.260315 0.723053 0.497162\n0.295166 0.725494 0.496185\n0.332123 0.727905 0.495178\n0.371063 0.730316 0.494232\n0.411896 0.732758 0.493225\n0.454163 0.735107 0.492340\n0.497620 0.737488 0.491333\n0.542053 0.739838 0.490448\n0.585876 0.742188 0.489563\n0.628021 0.744537 0.488678\n0.667999 0.746765 0.487823\n0.705566 0.749084 0.487030\n0.740356 0.751343 0.486206\n0.772125 0.753540 0.485413\n0.800964 0.755798 0.485107\n0.827026 0.757996 0.485107\n0.850647 0.760101 0.485107\n0.872131 0.762268 0.485107\n0.891571 0.764343 0.485107\n0.909363 0.766449 0.485107\n0.925476 0.768555 0.485107\n0.940125 0.770569 0.485107\n0.953369 0.772583 0.485107\n0.965393 0.774597 0.485107\n0.976105 0.776520 0.485107\n0.985626 0.778442 0.485107\n0.092926 0.745209 0.501312\n0.117828 0.747528 0.500275\n0.144012 0.749756 0.499237\n0.171600 0.752045 0.498199\n0.200806 0.754303 0.497253\n0.231689 0.756500 0.496216\n0.264618 0.758759 0.495178\n0.299713 0.761017 0.494263\n0.336914 0.763153 0.493256\n0.376160 0.765381 0.492340\n0.417114 0.767578 0.491364\n0.459564 0.769684 0.490509\n0.503235 0.771851 0.489594\n0.547638 0.773956 0.488708\n0.591278 0.776031 0.487915\n0.633148 0.778168 0.487030\n0.672821 0.780182 0.486237\n0.710022 0.782196 0.485443\n0.744446 0.784241 0.485107\n0.775818 0.786255 0.485107\n0.804260 0.788208 0.485107\n0.830017 0.790222 0.485107\n0.853333 0.792084 0.485107\n0.874542 0.794006 0.485107\n0.893799 0.795837 0.485107\n0.911346 0.797729 0.485107\n0.927277 0.799561 0.485107\n0.941742 0.801361 0.485107\n0.954803 0.803162 0.485107\n0.966675 0.804901 0.485107\n0.977234 0.806580 0.485107\n0.986603 0.808289 0.485107\n0.096008 0.778778 0.499268\n0.121063 0.780853 0.498291\n0.147369 0.782898 0.497284\n0.175201 0.784943 0.496216\n0.204590 0.786987 0.495239\n0.235718 0.788971 0.494293\n0.268921 0.790985 0.493286\n0.304321 0.793030 0.492371\n0.341766 0.794983 0.491455\n0.381226 0.796967 0.490509\n0.422333 0.798859 0.489655\n0.464996 0.800781 0.488770\n0.508759 0.802734 0.487915\n0.553162 0.804596 0.487091\n0.596588 0.806519 0.486237\n0.638153 0.808350 0.485443\n0.677582 0.810181 0.485107\n0.714417 0.812012 0.485107\n0.748444 0.813812 0.485107\n0.779449 0.815582 0.485107\n0.807526 0.817352 0.485107\n0.832947 0.819092 0.485107\n0.855988 0.820770 0.485107\n0.876923 0.822479 0.485107\n0.895935 0.824127 0.485107\n0.913239 0.825775 0.485107\n0.929016 0.827423 0.485107\n0.943268 0.829010 0.485107\n0.956238 0.830597 0.485107\n0.967896 0.832153 0.485107\n0.978333 0.833618 0.485107\n0.987579 0.835175 0.485107\n0.099121 0.808960 0.497284\n0.124359 0.810852 0.496277\n0.150848 0.812653 0.495300\n0.178833 0.814484 0.494293\n0.208435 0.816376 0.493286\n0.239838 0.818146 0.492371\n0.273315 0.819946 0.491455\n0.308929 0.821777 0.490540\n0.346649 0.823517 0.489655\n0.386322 0.825287 0.488770\n0.427612 0.826996 0.487946\n0.470367 0.828766 0.487091\n0.514313 0.830475 0.486298\n0.558624 0.832153 0.485535\n0.601776 0.833832 0.485107\n0.643097 0.835510 0.485107\n0.682251 0.837128 0.485107\n0.718719 0.838776 0.485107\n0.752350 0.840393 0.485107\n0.782928 0.841919 0.485107\n0.810669 0.843536 0.485107\n0.835754 0.845032 0.485107\n0.858551 0.846588 0.485107\n0.879211 0.848083 0.485107\n0.898010 0.849548 0.485107\n0.915161 0.850983 0.485107\n0.930695 0.852478 0.485107\n0.944794 0.853851 0.485107\n0.957581 0.855255 0.485107\n0.969086 0.856628 0.485107\n0.979401 0.857971 0.485107\n0.988495 0.859314 0.485107\n0.102203 0.836090 0.495331\n0.127625 0.837799 0.494293\n0.154297 0.839447 0.493317\n0.182495 0.841095 0.492401\n0.212311 0.842773 0.491486\n0.243927 0.844391 0.490570\n0.277649 0.846039 0.489655\n0.313538 0.847626 0.488800\n0.351501 0.849213 0.487946\n0.391357 0.850800 0.487152\n0.432892 0.852325 0.486298\n0.475769 0.853912 0.485565\n0.519806 0.855438 0.485107\n0.563965 0.856934 0.485107\n0.606964 0.858459 0.485107\n0.648010 0.859955 0.485107\n0.686737 0.861389 0.485107\n0.722900 0.862854 0.485107\n0.756195 0.864288 0.485107\n0.786377 0.865692 0.485107\n0.813721 0.867096 0.485107\n0.838531 0.868439 0.485107\n0.861023 0.869812 0.485107\n0.881470 0.871155 0.485107\n0.900055 0.872437 0.485107\n0.916962 0.873749 0.485107\n0.932312 0.875031 0.485107\n0.946259 0.876282 0.485107\n0.958862 0.877502 0.485107\n0.970245 0.878723 0.485107\n0.980377 0.879913 0.485107\n0.989349 0.881104 0.485107\n0.105377 0.860565 0.493408\n0.130920 0.862061 0.492493\n0.157745 0.863586 0.491547\n0.186127 0.865082 0.490570\n0.216217 0.866577 0.489716\n0.248047 0.868042 0.488800\n0.282013 0.869476 0.487976\n0.318115 0.870911 0.487152\n0.356384 0.872375 0.486328\n0.396484 0.873779 0.485565\n0.438080 0.875183 0.485107\n0.481140 0.876556 0.485107\n0.525146 0.877930 0.485107\n0.569305 0.879272 0.485107\n0.612000 0.880646 0.485107\n0.652802 0.881958 0.485107\n0.691223 0.883240 0.485107\n0.726959 0.884552 0.485107\n0.759827 0.885803 0.485107\n0.789703 0.887085 0.485107\n0.816772 0.888336 0.485107\n0.841187 0.889526 0.485107\n0.863434 0.890747 0.485107\n0.883636 0.891937 0.485107\n0.901978 0.893097 0.485107\n0.918701 0.894257 0.485107\n0.933899 0.895416 0.485107\n0.947662 0.896484 0.485107\n0.960144 0.897583 0.485107\n0.971313 0.898651 0.485107\n0.981354 0.899658 0.485107\n0.990204 0.900696 0.485107\n0.108521 0.882599 0.491547\n0.134247 0.884003 0.490662\n0.161255 0.885315 0.489746\n0.189819 0.886688 0.488861\n0.220032 0.888000 0.488037\n0.252197 0.889343 0.487213\n0.286407 0.890656 0.486328\n0.322784 0.891907 0.485657\n0.361237 0.893250 0.485107\n0.401489 0.894501 0.485107\n0.443237 0.895721 0.485107\n0.486450 0.897003 0.485107\n0.530609 0.898254 0.485107\n0.574493 0.899445 0.485107\n0.616974 0.900635 0.485107\n0.657440 0.901825 0.485107\n0.695557 0.902985 0.485107\n0.730957 0.904144 0.485107\n0.763428 0.905273 0.485107\n0.792938 0.906403 0.485107\n0.819641 0.907501 0.485107\n0.843781 0.908569 0.485107\n0.865753 0.909637 0.485107\n0.885742 0.910706 0.485107\n0.903839 0.911713 0.485107\n0.920380 0.912750 0.485107\n0.935425 0.913727 0.485107\n0.949005 0.914703 0.485107\n0.961334 0.915680 0.485107\n0.972382 0.916626 0.485107\n0.982300 0.917542 0.485107\n0.990997 0.918427 0.485107\n0.111694 0.902527 0.489746\n0.137543 0.903778 0.488861\n0.164764 0.904999 0.488037\n0.193542 0.906189 0.487213\n0.223938 0.907410 0.486420\n0.256317 0.908569 0.485657\n0.290802 0.909790 0.485107\n0.327393 0.910919 0.485107\n0.366089 0.912048 0.485107\n0.406464 0.913208 0.485107\n0.448456 0.914337 0.485107\n0.491699 0.915436 0.485107\n0.535919 0.916565 0.485107\n0.579651 0.917633 0.485107\n0.621887 0.918701 0.485107\n0.662018 0.919708 0.485107\n0.699768 0.920807 0.485107\n0.734833 0.921814 0.485107\n0.766937 0.922821 0.485107\n0.796021 0.923798 0.485107\n0.822418 0.924805 0.485107\n0.846283 0.925751 0.485107\n0.868011 0.926697 0.485107\n0.887756 0.927612 0.485107\n0.905640 0.928497 0.485107\n0.922028 0.929443 0.485107\n0.936829 0.930267 0.485107\n0.950317 0.931152 0.485107\n0.962463 0.932007 0.485107\n0.973419 0.932831 0.485107\n0.983154 0.933624 0.485107\n0.991760 0.934418 0.485107\n0.114868 0.920532 0.488098\n0.140839 0.921631 0.487244\n0.168243 0.922729 0.486450\n0.197205 0.923798 0.485657\n0.227783 0.924896 0.485107\n0.260437 0.925934 0.485107\n0.295197 0.927032 0.485107\n0.332001 0.928040 0.485107\n0.370850 0.929077 0.485107\n0.411469 0.930115 0.485107\n0.453583 0.931091 0.485107\n0.496857 0.932098 0.485107\n0.541016 0.933044 0.485107\n0.584625 0.934021 0.485107\n0.626587 0.934967 0.485107\n0.666412 0.935883 0.485107\n0.703888 0.936829 0.485107\n0.738556 0.937744 0.485107\n0.770264 0.938629 0.485107\n0.799042 0.939514 0.485107\n0.825073 0.940369 0.485107\n0.848694 0.941193 0.485107\n0.870148 0.942047 0.485107\n0.889679 0.942871 0.485107\n0.907410 0.943665 0.485107\n0.923523 0.944458 0.485107\n0.938232 0.945190 0.485107\n0.951538 0.945953 0.485107\n0.963562 0.946716 0.485107\n0.974365 0.947418 0.485107\n0.983978 0.948151 0.485107\n0.992462 0.948822 0.485107\n0.118073 0.936768 0.486450\n0.144196 0.937744 0.485687\n0.171722 0.938721 0.485107\n0.200867 0.939697 0.485107\n0.231720 0.940643 0.485107\n0.264526 0.941589 0.485107\n0.299500 0.942535 0.485107\n0.336578 0.943451 0.485107\n0.375641 0.944397 0.485107\n0.416382 0.945282 0.485107\n0.458618 0.946167 0.485107\n0.502014 0.947052 0.485107\n0.546173 0.947906 0.485107\n0.589478 0.948792 0.485107\n0.631256 0.949615 0.485107\n0.670746 0.950409 0.485107\n0.707855 0.951233 0.485107\n0.742188 0.952057 0.485107\n0.773560 0.952820 0.485107\n0.801971 0.953613 0.485107\n0.827698 0.954376 0.485107\n0.850983 0.955139 0.485107\n0.872253 0.955841 0.485107\n0.891510 0.956543 0.485107\n0.909058 0.957245 0.485107\n0.925049 0.957947 0.485107\n0.939545 0.958557 0.485107\n0.952698 0.959259 0.485107\n0.964600 0.959930 0.485107\n0.975281 0.960510 0.485107\n0.984772 0.961151 0.485107\n0.993134 0.961731 0.485107\n0.121216 0.951355 0.485107\n0.147461 0.952209 0.485107\n0.175232 0.953094 0.485107\n0.204529 0.953949 0.485107\n0.235535 0.954803 0.485107\n0.268646 0.955658 0.485107\n0.303833 0.956512 0.485107\n0.341095 0.957306 0.485107\n0.380310 0.958099 0.485107\n0.421173 0.958923 0.485107\n0.463531 0.959717 0.485107\n0.507050 0.960480 0.485107\n0.551147 0.961243 0.485107\n0.594269 0.961975 0.485107\n0.635773 0.962738 0.485107\n0.674957 0.963470 0.485107\n0.711700 0.964172 0.485107\n0.745636 0.964844 0.485107\n0.776611 0.965546 0.485107\n0.804749 0.966248 0.485107\n0.830200 0.966888 0.485107\n0.853271 0.967529 0.485107\n0.874237 0.968170 0.485107\n0.893280 0.968781 0.485107\n0.910645 0.969391 0.485107\n0.926422 0.970001 0.485107\n0.940796 0.970551 0.485107\n0.953796 0.971130 0.485107\n0.965546 0.971710 0.485107\n0.976105 0.972229 0.485107\n0.985474 0.972748 0.485107\n0.993774 0.973236 0.485107\n0.124359 0.964386 0.485107\n0.150787 0.965179 0.485107\n0.178680 0.965973 0.485107\n0.208160 0.966736 0.485107\n0.239410 0.967468 0.485107\n0.272675 0.968231 0.485107\n0.308075 0.968964 0.485107\n0.345581 0.969635 0.485107\n0.384949 0.970398 0.485107\n0.425964 0.971069 0.485107\n0.468414 0.971771 0.485107\n0.511963 0.972443 0.485107\n0.555969 0.973114 0.485107\n0.598938 0.973755 0.485107\n0.640076 0.974426 0.485107\n0.679016 0.975037 0.485107\n0.715424 0.975647 0.485107\n0.749054 0.976257 0.485107\n0.779633 0.976837 0.485107\n0.807404 0.977448 0.485107\n0.832520 0.977997 0.485107\n0.855377 0.978577 0.485107\n0.876129 0.979095 0.485107\n0.894958 0.979645 0.485107\n0.912140 0.980133 0.485107\n0.927795 0.980652 0.485107\n0.942017 0.981140 0.485107\n0.954865 0.981628 0.485107\n0.966522 0.982117 0.485107\n0.976929 0.982544 0.485107\n0.986176 0.983002 0.485107\n0.994354 0.983398 0.485107\n0.042694 0.003998 0.580231\n0.064606 0.004791 0.579712\n0.087524 0.005585 0.579224\n0.111511 0.006409 0.578674\n0.136658 0.007294 0.578064\n0.163177 0.008209 0.577393\n0.191132 0.009094 0.576721\n0.220795 0.010101 0.576080\n0.252350 0.011047 0.575348\n0.285858 0.012024 0.574615\n0.321564 0.013062 0.573853\n0.359283 0.014130 0.573059\n0.398804 0.015198 0.572266\n0.439972 0.016327 0.571442\n0.482422 0.017395 0.570557\n0.525970 0.018555 0.569672\n0.569733 0.019714 0.568787\n0.611969 0.020905 0.567871\n0.652435 0.022095 0.566895\n0.690613 0.023346 0.566010\n0.726196 0.024567 0.565002\n0.759064 0.025848 0.564026\n0.788910 0.027161 0.563019\n0.815918 0.028412 0.562073\n0.840485 0.029755 0.561005\n0.862762 0.031097 0.559998\n0.883057 0.032471 0.558960\n0.901550 0.033875 0.557892\n0.918335 0.035248 0.556915\n0.933655 0.036652 0.555756\n0.947571 0.038116 0.554688\n0.960144 0.039520 0.553619\n0.044250 0.025238 0.579254\n0.066284 0.026093 0.578674\n0.089325 0.027039 0.578094\n0.113434 0.027954 0.577484\n0.138794 0.028900 0.576813\n0.165466 0.029877 0.576080\n0.193634 0.030884 0.575378\n0.223450 0.031921 0.574646\n0.255219 0.033020 0.573883\n0.289062 0.034058 0.573090\n0.325012 0.035217 0.572266\n0.362976 0.036285 0.571442\n0.402740 0.037506 0.570618\n0.444153 0.038696 0.569733\n0.486755 0.039886 0.568848\n0.530487 0.041107 0.567932\n0.574188 0.042389 0.566956\n0.616333 0.043640 0.566040\n0.656616 0.044952 0.565063\n0.694611 0.046295 0.564087\n0.729950 0.047607 0.563110\n0.762512 0.048950 0.562073\n0.792053 0.050323 0.561005\n0.818817 0.051758 0.560059\n0.843140 0.053162 0.558990\n0.865204 0.054565 0.557953\n0.885315 0.056000 0.556915\n0.903595 0.057495 0.555847\n0.920258 0.058990 0.554718\n0.935425 0.060455 0.553619\n0.949158 0.062012 0.552612\n0.961548 0.063507 0.551544\n0.045898 0.047455 0.578094\n0.068054 0.048462 0.577484\n0.091278 0.049438 0.576813\n0.115509 0.050446 0.576141\n0.140991 0.051483 0.575378\n0.167877 0.052582 0.574646\n0.196228 0.053680 0.573975\n0.226318 0.054779 0.573090\n0.258331 0.056000 0.572296\n0.292358 0.057159 0.571472\n0.328613 0.058350 0.570618\n0.366760 0.059570 0.569794\n0.406830 0.060852 0.568848\n0.448456 0.062134 0.567932\n0.491302 0.063385 0.567017\n0.535187 0.064728 0.566040\n0.578766 0.066132 0.565063\n0.620758 0.067474 0.564117\n0.660950 0.068878 0.563110\n0.698669 0.070282 0.562103\n0.733734 0.071716 0.561035\n0.765991 0.073181 0.560059\n0.795227 0.074646 0.559052\n0.821777 0.076111 0.557953\n0.845825 0.077637 0.556946\n0.867676 0.079163 0.555878\n0.887573 0.080719 0.554810\n0.905670 0.082275 0.553711\n0.922150 0.083832 0.552673\n0.937134 0.085449 0.551575\n0.950745 0.087067 0.550476\n0.963013 0.088684 0.549377\n0.047699 0.070801 0.576843\n0.069946 0.071869 0.576141\n0.093292 0.072968 0.575470\n0.117676 0.074036 0.574738\n0.143311 0.075195 0.573975\n0.170410 0.076385 0.573151\n0.198944 0.077606 0.572296\n0.229309 0.078827 0.571472\n0.261475 0.080078 0.570679\n0.295868 0.081329 0.569794\n0.332397 0.082703 0.568878\n0.370789 0.084015 0.567963\n0.411072 0.085358 0.567017\n0.452881 0.086761 0.566101\n0.495941 0.088135 0.565125\n0.539948 0.089569 0.564117\n0.583466 0.091034 0.563141\n0.625336 0.092468 0.562195\n0.665192 0.094025 0.561127\n0.702759 0.095520 0.560089\n0.737549 0.097046 0.559052\n0.769501 0.098602 0.558014\n0.798462 0.100159 0.556976\n0.824707 0.101746 0.555878\n0.848511 0.103424 0.554810\n0.870148 0.105011 0.553741\n0.889862 0.106689 0.552673\n0.907776 0.108368 0.551575\n0.924072 0.110016 0.550537\n0.938873 0.111725 0.549438\n0.952301 0.113464 0.548340\n0.964417 0.115173 0.547302\n0.049530 0.095306 0.575470\n0.071960 0.096497 0.574738\n0.095398 0.097656 0.573975\n0.119965 0.098877 0.573181\n0.145813 0.100159 0.572388\n0.173035 0.101471 0.571564\n0.201813 0.102753 0.570709\n0.232361 0.104065 0.569824\n0.264832 0.105438 0.568939\n0.299500 0.106842 0.567993\n0.336304 0.108246 0.567047\n0.374939 0.109680 0.566132\n0.415436 0.111145 0.565186\n0.457520 0.112671 0.564178\n0.500671 0.114197 0.563202\n0.544800 0.115723 0.562195\n0.588257 0.117279 0.561127\n0.629913 0.118866 0.560150\n0.669708 0.120483 0.559082\n0.706909 0.122101 0.558075\n0.741455 0.123749 0.556976\n0.773041 0.125427 0.555908\n0.801697 0.127106 0.554932\n0.827667 0.128815 0.553772\n0.851227 0.130585 0.552704\n0.872620 0.132263 0.551636\n0.892120 0.134064 0.550568\n0.909851 0.135864 0.549438\n0.925934 0.137604 0.548370\n0.940613 0.139435 0.547302\n0.953857 0.141235 0.546234\n0.965851 0.143097 0.545166\n0.051483 0.121094 0.574005\n0.074036 0.122406 0.573181\n0.097656 0.123749 0.572388\n0.122406 0.125061 0.571594\n0.148376 0.126434 0.570709\n0.175781 0.127838 0.569824\n0.204803 0.129272 0.568939\n0.235596 0.130737 0.567993\n0.268280 0.132202 0.567139\n0.303284 0.133728 0.566132\n0.340332 0.135254 0.565186\n0.379303 0.136810 0.564209\n0.420013 0.138428 0.563202\n0.462219 0.140015 0.562225\n0.505585 0.141632 0.561157\n0.549774 0.143280 0.560150\n0.593109 0.145050 0.559082\n0.634674 0.146698 0.558105\n0.674164 0.148438 0.557037\n0.711090 0.150177 0.555969\n0.745361 0.151978 0.554932\n0.776611 0.153748 0.553772\n0.804962 0.155548 0.552734\n0.830627 0.157410 0.551697\n0.853943 0.159271 0.550568\n0.875122 0.161102 0.549500\n0.894409 0.163025 0.548462\n0.911926 0.164948 0.547333\n0.927856 0.166809 0.546326\n0.942291 0.168762 0.545227\n0.955444 0.170685 0.544189\n0.967285 0.172699 0.543060\n0.053558 0.148407 0.572418\n0.076263 0.149841 0.571594\n0.099976 0.151306 0.570709\n0.124878 0.152710 0.569885\n0.151093 0.154236 0.569000\n0.178650 0.155762 0.568085\n0.207886 0.157349 0.567139\n0.238922 0.158905 0.566162\n0.271942 0.160522 0.565216\n0.307159 0.162201 0.564209\n0.344513 0.163849 0.563232\n0.383667 0.165497 0.562256\n0.424652 0.167267 0.561249\n0.467072 0.169006 0.560211\n0.510620 0.170746 0.559143\n0.554840 0.172546 0.558105\n0.597992 0.174347 0.557068\n0.639465 0.176208 0.555969\n0.678711 0.178101 0.554962\n0.715332 0.179962 0.553833\n0.749268 0.181854 0.552734\n0.780243 0.183838 0.551727\n0.808228 0.185730 0.550598\n0.833588 0.187744 0.549500\n0.856659 0.189728 0.548462\n0.877594 0.191711 0.547363\n0.896667 0.193756 0.546326\n0.913940 0.195770 0.545288\n0.929749 0.197845 0.544189\n0.944031 0.199921 0.543091\n0.957001 0.201965 0.542053\n0.968689 0.204102 0.541016\n0.055695 0.177368 0.570770\n0.078552 0.178925 0.569885\n0.102417 0.180481 0.569000\n0.127502 0.182098 0.568115\n0.153870 0.183777 0.567169\n0.181671 0.185394 0.566254\n0.211121 0.187073 0.565247\n0.242432 0.188843 0.564270\n0.275665 0.190582 0.563293\n0.311218 0.192383 0.562256\n0.348785 0.194183 0.561279\n0.388214 0.196014 0.560242\n0.429443 0.197906 0.559174\n0.472015 0.199738 0.558167\n0.515778 0.201691 0.557068\n0.559998 0.203674 0.556030\n0.603027 0.205627 0.554993\n0.644257 0.207642 0.553894\n0.683289 0.209625 0.552826\n0.719635 0.211639 0.551758\n0.753174 0.213715 0.550690\n0.783783 0.215820 0.549561\n0.811462 0.217834 0.548492\n0.836609 0.220032 0.547455\n0.859406 0.222168 0.546356\n0.880066 0.224335 0.545288\n0.898926 0.226532 0.544220\n0.916046 0.228638 0.543152\n0.931580 0.230865 0.542114\n0.945740 0.233154 0.541016\n0.958527 0.235352 0.540009\n0.970062 0.237640 0.538971\n0.057953 0.208160 0.569031\n0.080902 0.209900 0.568115\n0.104950 0.211548 0.567169\n0.130188 0.213379 0.566254\n0.156769 0.215149 0.565247\n0.184753 0.216980 0.564331\n0.214478 0.218872 0.563293\n0.245972 0.220734 0.562317\n0.279541 0.222626 0.561310\n0.315338 0.224579 0.560272\n0.353210 0.226593 0.559174\n0.392914 0.228546 0.558228\n0.434326 0.230591 0.557129\n0.477081 0.232605 0.556091\n0.520996 0.234650 0.554993\n0.565216 0.236816 0.553894\n0.608032 0.238922 0.552856\n0.649048 0.241119 0.551758\n0.687805 0.243317 0.550690\n0.723846 0.245453 0.549622\n0.757141 0.247681 0.548553\n0.787354 0.249969 0.547455\n0.814728 0.252228 0.546387\n0.839569 0.254517 0.545319\n0.862061 0.256805 0.544250\n0.882507 0.259125 0.543152\n0.901184 0.261505 0.542114\n0.918060 0.263794 0.541107\n0.933472 0.266235 0.540009\n0.947449 0.268646 0.539032\n0.960052 0.271027 0.538025\n0.971436 0.273468 0.536987\n0.060303 0.241028 0.567200\n0.083405 0.242950 0.566284\n0.107574 0.244781 0.565338\n0.132965 0.246765 0.564331\n0.159729 0.248688 0.563354\n0.187958 0.250671 0.562347\n0.217834 0.252747 0.561310\n0.249695 0.254822 0.560272\n0.283508 0.256866 0.559265\n0.319611 0.259033 0.558228\n0.357697 0.261139 0.557190\n0.397705 0.263336 0.556122\n0.439362 0.265564 0.555084\n0.482269 0.267792 0.553986\n0.526337 0.270050 0.552917\n0.570465 0.272369 0.551849\n0.613129 0.274628 0.550720\n0.653961 0.276978 0.549622\n0.692383 0.279388 0.548553\n0.728119 0.281677 0.547485\n0.761047 0.284149 0.546387\n0.790924 0.286591 0.545319\n0.817963 0.289001 0.544342\n0.842529 0.291504 0.543182\n0.864746 0.293976 0.542175\n0.884979 0.296478 0.541107\n0.903381 0.299042 0.540070\n0.920074 0.301483 0.539062\n0.935333 0.304077 0.538025\n0.949158 0.306671 0.537018\n0.961548 0.309204 0.535980\n0.972778 0.311829 0.535065\n0.062683 0.276276 0.565369\n0.085968 0.278381 0.564392\n0.110291 0.280396 0.563385\n0.135895 0.282532 0.562347\n0.162842 0.284698 0.561401\n0.191223 0.286896 0.560364\n0.221405 0.289154 0.559296\n0.253448 0.291412 0.558258\n0.287598 0.293640 0.557220\n0.324005 0.295990 0.556122\n0.362335 0.298248 0.555115\n0.402557 0.300659 0.553986\n0.444427 0.303070 0.552917\n0.487518 0.305450 0.551880\n0.531769 0.307953 0.550751\n0.575775 0.310425 0.549652\n0.618317 0.312897 0.548645\n0.658813 0.315460 0.547516\n0.696991 0.317993 0.546448\n0.732391 0.320526 0.545380\n0.764954 0.323151 0.544342\n0.794434 0.325714 0.543243\n0.821198 0.328369 0.542206\n0.845428 0.330994 0.541138\n0.867401 0.333618 0.540131\n0.887421 0.336334 0.539062\n0.905579 0.339020 0.538086\n0.922119 0.341644 0.537048\n0.937134 0.344421 0.536072\n0.950775 0.347168 0.535065\n0.963074 0.349915 0.534088\n0.974091 0.352631 0.533142\n0.065186 0.314056 0.563446\n0.088593 0.316315 0.562408\n0.113098 0.318573 0.561432\n0.138885 0.320862 0.560394\n0.166016 0.323303 0.559326\n0.194641 0.325592 0.558289\n0.225037 0.328033 0.557220\n0.257324 0.330475 0.556152\n0.291779 0.332886 0.555115\n0.328430 0.335449 0.554047\n0.367035 0.337921 0.552948\n0.407532 0.340424 0.551880\n0.449585 0.343109 0.550751\n0.492920 0.345642 0.549713\n0.537201 0.348328 0.548645\n0.581146 0.350983 0.547516\n0.623444 0.353638 0.546478\n0.663696 0.356323 0.545380\n0.701599 0.359039 0.544373\n0.736603 0.361725 0.543304\n0.768829 0.364502 0.542206\n0.797943 0.367249 0.541168\n0.824371 0.370056 0.540131\n0.848328 0.372833 0.539124\n0.870026 0.375641 0.538147\n0.889801 0.378448 0.537140\n0.907776 0.381287 0.536072\n0.924072 0.384125 0.535126\n0.938934 0.386993 0.534180\n0.952393 0.389862 0.533173\n0.964539 0.392700 0.532257\n0.975403 0.395599 0.531372\n0.067749 0.354218 0.561432\n0.091339 0.356659 0.560394\n0.115967 0.359131 0.559387\n0.141876 0.361633 0.558289\n0.169250 0.364166 0.557281\n0.198090 0.366669 0.556244\n0.228760 0.369293 0.555145\n0.261261 0.371857 0.554108\n0.296082 0.374481 0.553009\n0.333038 0.377167 0.551910\n0.371887 0.379852 0.550842\n0.412628 0.382568 0.549713\n0.454895 0.385315 0.548706\n0.498352 0.388062 0.547577\n0.542725 0.390869 0.546478\n0.586517 0.393738 0.545471\n0.628571 0.396515 0.544403\n0.668610 0.399384 0.543304\n0.706085 0.402191 0.542267\n0.740875 0.405060 0.541168\n0.772675 0.407990 0.540192\n0.801422 0.410858 0.539154\n0.827545 0.413818 0.538147\n0.851166 0.416779 0.537140\n0.872650 0.419647 0.536102\n0.892181 0.422668 0.535187\n0.909943 0.425629 0.534180\n0.926056 0.428497 0.533264\n0.940735 0.431488 0.532318\n0.953979 0.434448 0.531403\n0.965973 0.437439 0.530487\n0.976685 0.440430 0.529602\n0.070374 0.396667 0.559387\n0.094086 0.399261 0.558380\n0.118927 0.401825 0.557312\n0.145050 0.404541 0.556244\n0.172577 0.407227 0.555145\n0.201660 0.409912 0.554108\n0.232574 0.412659 0.553009\n0.265411 0.415375 0.551941\n0.300446 0.418152 0.550873\n0.337646 0.421051 0.549774\n0.376801 0.423828 0.548767\n0.417786 0.426697 0.547638\n0.460236 0.429626 0.546570\n0.503815 0.432495 0.545502\n0.548309 0.435425 0.544403\n0.591858 0.438385 0.543365\n0.633728 0.441284 0.542328\n0.673492 0.444336 0.541260\n0.710632 0.447266 0.540222\n0.745026 0.450317 0.539154\n0.776489 0.453308 0.538177\n0.804901 0.456299 0.537170\n0.830658 0.459381 0.536163\n0.854034 0.462402 0.535187\n0.875214 0.465454 0.534210\n0.894501 0.468475 0.533264\n0.912048 0.471558 0.532318\n0.927979 0.474579 0.531403\n0.942444 0.477692 0.530487\n0.955566 0.480652 0.529663\n0.967377 0.483734 0.528778\n0.977966 0.486786 0.527924\n0.073090 0.440979 0.557312\n0.096954 0.443726 0.556274\n0.121948 0.446472 0.555267\n0.148224 0.449249 0.554138\n0.175934 0.452087 0.553101\n0.205292 0.454956 0.552032\n0.236481 0.457855 0.550873\n0.269531 0.460724 0.549805\n0.304901 0.463684 0.548767\n0.342407 0.466644 0.547638\n0.381805 0.469543 0.546600\n0.422943 0.472595 0.545502\n0.465607 0.475616 0.544464\n0.509369 0.478577 0.543396\n0.553833 0.481628 0.542328\n0.597198 0.484650 0.541290\n0.638855 0.487762 0.540253\n0.678314 0.490845 0.539185\n0.715118 0.493866 0.538208\n0.749207 0.496979 0.537170\n0.780243 0.500061 0.536163\n0.808289 0.503174 0.535217\n0.833740 0.506287 0.534241\n0.856812 0.509430 0.533264\n0.877747 0.512482 0.532379\n0.896790 0.515656 0.531433\n0.914124 0.518768 0.530548\n0.929871 0.521820 0.529724\n0.944153 0.524963 0.528839\n0.957092 0.528046 0.527954\n0.968781 0.531189 0.527191\n0.979187 0.534332 0.526550\n0.075867 0.486908 0.555267\n0.099854 0.489807 0.554138\n0.125031 0.492676 0.553101\n0.151489 0.495636 0.552032\n0.179413 0.498505 0.550995\n0.209015 0.501495 0.549866\n0.240417 0.504547 0.548798\n0.273773 0.507477 0.547760\n0.309448 0.510590 0.546631\n0.347198 0.513611 0.545532\n0.386871 0.516632 0.544495\n0.428192 0.519745 0.543396\n0.471100 0.522858 0.542358\n0.514984 0.525940 0.541290\n0.559387 0.529022 0.540253\n0.602539 0.532166 0.539276\n0.643982 0.535339 0.538208\n0.683136 0.538452 0.537201\n0.719635 0.541534 0.536224\n0.753296 0.544708 0.535278\n0.783966 0.547821 0.534241\n0.811646 0.550873 0.533356\n0.836792 0.554047 0.532410\n0.859589 0.557190 0.531433\n0.880249 0.560211 0.530609\n0.899078 0.563293 0.529724\n0.916199 0.566284 0.528839\n0.931732 0.569397 0.528046\n0.945862 0.572418 0.527252\n0.958588 0.575378 0.526550\n0.970093 0.578400 0.526550\n0.980377 0.581390 0.526550\n0.078644 0.534088 0.553162\n0.102844 0.537140 0.552063\n0.128174 0.540070 0.550995\n0.154877 0.543060 0.549866\n0.182983 0.545990 0.548859\n0.212769 0.549103 0.547760\n0.244446 0.552124 0.546631\n0.278137 0.555115 0.545563\n0.314056 0.558167 0.544495\n0.352081 0.561279 0.543457\n0.391968 0.564209 0.542419\n0.433502 0.567322 0.541382\n0.476532 0.570404 0.540344\n0.520599 0.573425 0.539307\n0.564972 0.576477 0.538269\n0.607880 0.579468 0.537292\n0.649048 0.582550 0.536255\n0.687897 0.585632 0.535278\n0.723999 0.588593 0.534332\n0.757324 0.591644 0.533356\n0.787598 0.594666 0.532410\n0.814941 0.597565 0.531525\n0.839752 0.600616 0.530609\n0.862274 0.603577 0.529755\n0.882690 0.606506 0.528900\n0.901306 0.609467 0.528046\n0.918152 0.612335 0.527252\n0.933563 0.615234 0.526550\n0.947510 0.618164 0.526550\n0.960083 0.620972 0.526550\n0.971405 0.623840 0.526550\n0.981506 0.626678 0.526550\n0.081543 0.581024 0.551025\n0.105865 0.584015 0.549927\n0.131378 0.586853 0.548859\n0.158234 0.589783 0.547791\n0.186554 0.592682 0.546722\n0.216614 0.595642 0.545563\n0.248535 0.598663 0.544586\n0.282501 0.601501 0.543518\n0.318756 0.604462 0.542419\n0.356995 0.607452 0.541382\n0.397125 0.610382 0.540375\n0.438904 0.613342 0.539307\n0.482086 0.616272 0.538269\n0.526184 0.619110 0.537323\n0.570465 0.622101 0.536255\n0.613251 0.624969 0.535339\n0.654144 0.627869 0.534363\n0.692627 0.630768 0.533356\n0.728394 0.633606 0.532471\n0.761322 0.636536 0.531555\n0.791199 0.639435 0.530640\n0.818176 0.642181 0.529755\n0.842682 0.645050 0.528900\n0.864929 0.647858 0.528076\n0.885101 0.650635 0.527283\n0.903473 0.653381 0.526550\n0.920166 0.656036 0.526550\n0.935333 0.658813 0.526550\n0.949097 0.661499 0.526550\n0.961517 0.664154 0.526550\n0.972687 0.666748 0.526550\n0.982635 0.669403 0.526550\n0.084473 0.626221 0.548889\n0.108917 0.628998 0.547821\n0.134613 0.631836 0.546753\n0.161682 0.634705 0.545654\n0.190216 0.637451 0.544617\n0.220490 0.640259 0.543518\n0.252716 0.643097 0.542480\n0.286957 0.645874 0.541412\n0.323425 0.648712 0.540375\n0.361969 0.651489 0.539307\n0.402344 0.654266 0.538300\n0.444336 0.657074 0.537323\n0.487518 0.659760 0.536316\n0.531860 0.662598 0.535370\n0.575958 0.665375 0.534363\n0.618530 0.668030 0.533417\n0.659119 0.670807 0.532532\n0.697296 0.673553 0.531555\n0.732727 0.676147 0.530640\n0.765259 0.678894 0.529785\n0.794739 0.681580 0.528961\n0.821411 0.684174 0.528076\n0.845581 0.686829 0.527283\n0.867523 0.689362 0.526550\n0.887482 0.691956 0.526550\n0.905609 0.694519 0.526550\n0.922089 0.697052 0.526550\n0.937073 0.699554 0.526550\n0.950684 0.702057 0.526550\n0.962921 0.704468 0.526550\n0.973938 0.706909 0.526550\n0.983765 0.709320 0.526550\n0.087433 0.669037 0.546753\n0.112061 0.671722 0.545685\n0.137909 0.674438 0.544617\n0.165192 0.677094 0.543549\n0.193909 0.679688 0.542511\n0.224487 0.682343 0.541443\n0.256866 0.685028 0.540405\n0.291443 0.687592 0.539368\n0.328217 0.690247 0.538361\n0.367004 0.692902 0.537323\n0.407562 0.695465 0.536377\n0.449707 0.698120 0.535370\n0.493103 0.700653 0.534393\n0.537537 0.703217 0.533447\n0.581512 0.705780 0.532532\n0.623749 0.708313 0.531586\n0.664062 0.710846 0.530701\n0.701904 0.713379 0.529785\n0.736969 0.715820 0.528992\n0.769073 0.718292 0.528137\n0.798218 0.720764 0.527283\n0.824493 0.723145 0.526550\n0.848389 0.725525 0.526550\n0.870056 0.727905 0.526550\n0.889771 0.730255 0.526550\n0.907684 0.732574 0.526550\n0.923981 0.734833 0.526550\n0.938782 0.737152 0.526550\n0.952209 0.739410 0.526550\n0.964294 0.741577 0.526550\n0.975128 0.743774 0.526550\n0.984802 0.745972 0.526550\n0.090424 0.709167 0.544647\n0.115204 0.711609 0.543579\n0.141266 0.714142 0.542603\n0.168701 0.716583 0.541443\n0.197662 0.719025 0.540497\n0.228455 0.721497 0.539398\n0.261139 0.723969 0.538361\n0.295990 0.726349 0.537384\n0.333038 0.728821 0.536377\n0.371948 0.731201 0.535400\n0.412811 0.733582 0.534485\n0.455139 0.736023 0.533447\n0.498688 0.738312 0.532562\n0.543091 0.740662 0.531586\n0.586914 0.743042 0.530701\n0.628937 0.745331 0.529877\n0.668945 0.747620 0.528992\n0.706451 0.749939 0.528137\n0.741089 0.752167 0.527344\n0.772827 0.754364 0.526550\n0.801514 0.756592 0.526550\n0.827576 0.758759 0.526550\n0.851135 0.760925 0.526550\n0.872559 0.763031 0.526550\n0.891998 0.765137 0.526550\n0.909729 0.767242 0.526550\n0.925812 0.769257 0.526550\n0.940399 0.771332 0.526550\n0.953674 0.773315 0.526550\n0.965576 0.775238 0.526550\n0.976318 0.777252 0.526550\n0.985840 0.779114 0.526550\n0.093475 0.746094 0.542603\n0.118408 0.748291 0.541534\n0.144623 0.750549 0.540497\n0.172272 0.752899 0.539459\n0.201447 0.755096 0.538391\n0.232483 0.757355 0.537415\n0.265442 0.759613 0.536407\n0.300507 0.761780 0.535400\n0.337799 0.763977 0.534485\n0.377075 0.766144 0.533508\n0.418060 0.768341 0.532593\n0.460571 0.770508 0.531677\n0.504242 0.772583 0.530762\n0.548706 0.774719 0.529907\n0.592255 0.776825 0.528992\n0.634064 0.778900 0.528168\n0.673706 0.780975 0.527374\n0.710907 0.782990 0.526611\n0.745178 0.784973 0.526550\n0.776550 0.786987 0.526550\n0.804871 0.788910 0.526550\n0.830566 0.790863 0.526550\n0.853851 0.792816 0.526550\n0.874969 0.794678 0.526550\n0.894226 0.796570 0.526550\n0.911682 0.798431 0.526550\n0.927612 0.800201 0.526550\n0.942047 0.802032 0.526550\n0.955139 0.803802 0.526550\n0.966888 0.805542 0.526550\n0.977448 0.807251 0.526550\n0.986786 0.808929 0.526550\n0.096588 0.779541 0.540527\n0.121674 0.781616 0.539520\n0.148071 0.783630 0.538452\n0.175873 0.785736 0.537415\n0.205292 0.787689 0.536469\n0.236542 0.789764 0.535492\n0.269714 0.791687 0.534515\n0.305145 0.793701 0.533539\n0.342682 0.795685 0.532593\n0.382111 0.797607 0.531708\n0.423309 0.799591 0.530792\n0.465973 0.801514 0.529907\n0.509766 0.803406 0.529022\n0.554199 0.805328 0.528168\n0.597565 0.807190 0.527374\n0.639069 0.809021 0.526642\n0.678497 0.810883 0.526550\n0.715271 0.812714 0.526550\n0.749176 0.814453 0.526550\n0.780090 0.816254 0.526550\n0.808075 0.817963 0.526550\n0.833466 0.819702 0.526550\n0.856476 0.821411 0.526550\n0.877350 0.823090 0.526550\n0.896332 0.824768 0.526550\n0.913605 0.826416 0.526550\n0.929321 0.827972 0.526550\n0.943573 0.829590 0.526550\n0.956482 0.831146 0.526550\n0.968109 0.832703 0.526550\n0.978546 0.834198 0.526550\n0.987732 0.835663 0.526550\n0.099701 0.809662 0.538452\n0.124939 0.811493 0.537537\n0.151489 0.813354 0.536469\n0.179535 0.815216 0.535522\n0.209106 0.817017 0.534515\n0.240601 0.818848 0.533539\n0.274078 0.820618 0.532654\n0.309753 0.822388 0.531708\n0.347565 0.824188 0.530792\n0.387238 0.825897 0.529938\n0.428619 0.827667 0.529114\n0.471405 0.829407 0.528229\n0.515289 0.831085 0.527435\n0.559662 0.832764 0.526642\n0.602783 0.834473 0.526550\n0.644012 0.836090 0.526550\n0.683105 0.837738 0.526550\n0.719452 0.839355 0.526550\n0.753052 0.840912 0.526550\n0.783630 0.842529 0.526550\n0.811218 0.844055 0.526550\n0.836273 0.845612 0.526550\n0.859039 0.847137 0.526550\n0.879639 0.848633 0.526550\n0.898407 0.850128 0.526550\n0.915497 0.851562 0.526550\n0.930969 0.852966 0.526550\n0.945068 0.854401 0.526550\n0.957825 0.855743 0.526550\n0.969299 0.857147 0.526550\n0.979584 0.858490 0.526550\n0.988678 0.859741 0.526550\n0.102844 0.836731 0.536499\n0.128235 0.838379 0.535553\n0.154968 0.840057 0.534607\n0.183136 0.841705 0.533569\n0.213013 0.843353 0.532654\n0.244720 0.845001 0.531769\n0.278442 0.846619 0.530853\n0.314392 0.848206 0.529938\n0.352448 0.849792 0.529114\n0.392273 0.851349 0.528290\n0.433899 0.852936 0.527435\n0.476807 0.854492 0.526642\n0.520752 0.856018 0.526550\n0.565002 0.857513 0.526550\n0.607880 0.858978 0.526550\n0.648895 0.860474 0.526550\n0.687592 0.861938 0.526550\n0.723663 0.863373 0.526550\n0.756866 0.864777 0.526550\n0.787018 0.866211 0.526550\n0.814301 0.867584 0.526550\n0.839020 0.868958 0.526550\n0.861481 0.870331 0.526550\n0.881866 0.871613 0.526550\n0.900421 0.872925 0.526550\n0.917297 0.874237 0.526550\n0.932617 0.875488 0.526550\n0.946533 0.876770 0.526550\n0.959106 0.877930 0.526550\n0.970459 0.879120 0.526550\n0.980560 0.880341 0.526550\n0.989502 0.881500 0.526550\n0.105988 0.861145 0.534607\n0.131500 0.862640 0.533661\n0.158447 0.864136 0.532684\n0.186798 0.865601 0.531799\n0.216919 0.867096 0.530853\n0.248840 0.868591 0.529968\n0.282776 0.869995 0.529144\n0.319031 0.871460 0.528290\n0.357300 0.872864 0.527496\n0.397339 0.874268 0.526703\n0.439117 0.875671 0.526550\n0.482178 0.877106 0.526550\n0.526184 0.878418 0.526550\n0.570312 0.879791 0.526550\n0.612946 0.881104 0.526550\n0.653656 0.882446 0.526550\n0.692047 0.883728 0.526550\n0.727692 0.885010 0.526550\n0.760498 0.886322 0.526550\n0.790344 0.887573 0.526550\n0.817291 0.888763 0.526550\n0.841705 0.890015 0.526550\n0.863892 0.891174 0.526550\n0.884003 0.892365 0.526550\n0.902344 0.893555 0.526550\n0.919006 0.894653 0.526550\n0.934174 0.895782 0.526550\n0.947937 0.896851 0.526550\n0.960358 0.897980 0.526550\n0.971558 0.899017 0.526550\n0.981506 0.900085 0.526550\n0.990356 0.901062 0.526550\n0.109100 0.883087 0.532745\n0.134857 0.884491 0.531799\n0.161926 0.885834 0.530884\n0.190491 0.887177 0.530029\n0.220764 0.888519 0.529144\n0.252991 0.889832 0.528320\n0.287231 0.891083 0.527527\n0.323669 0.892426 0.526764\n0.362122 0.893738 0.526550\n0.402374 0.894958 0.526550\n0.444244 0.896240 0.526550\n0.487396 0.897430 0.526550\n0.531555 0.898651 0.526550\n0.575500 0.899902 0.526550\n0.617889 0.901062 0.526550\n0.658295 0.902252 0.526550\n0.696381 0.903412 0.526550\n0.731659 0.904541 0.526550\n0.764099 0.905670 0.526550\n0.793518 0.906830 0.526550\n0.820099 0.907898 0.526550\n0.844299 0.908966 0.526550\n0.866211 0.910034 0.526550\n0.886078 0.911072 0.526550\n0.904205 0.912109 0.526550\n0.920685 0.913086 0.526550\n0.935669 0.914062 0.526550\n0.949249 0.915070 0.526550\n0.961548 0.916016 0.526550\n0.972595 0.916992 0.526550\n0.982452 0.917847 0.526550\n0.991119 0.918732 0.526550\n0.112274 0.902985 0.530975\n0.138184 0.904236 0.530029\n0.165436 0.905457 0.529175\n0.194183 0.906647 0.528320\n0.224670 0.907837 0.527527\n0.257111 0.909027 0.526764\n0.291626 0.910187 0.526550\n0.328308 0.911346 0.526550\n0.366943 0.912476 0.526550\n0.407379 0.913605 0.526550\n0.449402 0.914764 0.526550\n0.492645 0.915863 0.526550\n0.536865 0.916962 0.526550\n0.580597 0.917999 0.526550\n0.622742 0.919067 0.526550\n0.662872 0.920105 0.526550\n0.700562 0.921173 0.526550\n0.735535 0.922180 0.526550\n0.767578 0.923157 0.526550\n0.796631 0.924164 0.526550\n0.822906 0.925140 0.526550\n0.846802 0.926086 0.526550\n0.868408 0.927032 0.526550\n0.888062 0.927948 0.526550\n0.905975 0.928864 0.526550\n0.922302 0.929749 0.526550\n0.937103 0.930603 0.526550\n0.950562 0.931458 0.526550\n0.962677 0.932312 0.526550\n0.973572 0.933105 0.526550\n0.983307 0.933929 0.526550\n0.991882 0.934692 0.526550\n0.115448 0.920898 0.529266\n0.141510 0.922028 0.528381\n0.168945 0.923126 0.527527\n0.197876 0.924194 0.526794\n0.228577 0.925262 0.526550\n0.261200 0.926331 0.526550\n0.295929 0.927399 0.526550\n0.332886 0.928406 0.526550\n0.371704 0.929443 0.526550\n0.412384 0.930420 0.526550\n0.454529 0.931427 0.526550\n0.497772 0.932465 0.526550\n0.541992 0.933411 0.526550\n0.585632 0.934357 0.526550\n0.627441 0.935333 0.526550\n0.667267 0.936218 0.526550\n0.704681 0.937164 0.526550\n0.739227 0.938049 0.526550\n0.770905 0.938965 0.526550\n0.799591 0.939819 0.526550\n0.825562 0.940674 0.526550\n0.849152 0.941498 0.526550\n0.870544 0.942322 0.526550\n0.890045 0.943146 0.526550\n0.907745 0.943970 0.526550\n0.923798 0.944733 0.526550\n0.938477 0.945496 0.526550\n0.951752 0.946259 0.526550\n0.963745 0.946960 0.526550\n0.974548 0.947662 0.526550\n0.984131 0.948364 0.526550\n0.992554 0.949066 0.526550\n0.118622 0.937103 0.527557\n0.144806 0.938080 0.526794\n0.172394 0.939087 0.526550\n0.201538 0.940063 0.526550\n0.232483 0.941010 0.526550\n0.265320 0.941956 0.526550\n0.300323 0.942871 0.526550\n0.337433 0.943787 0.526550\n0.376465 0.944702 0.526550\n0.417236 0.945618 0.526550\n0.459564 0.946533 0.526550\n0.502930 0.947357 0.526550\n0.547119 0.948242 0.526550\n0.590485 0.949097 0.526550\n0.632019 0.949921 0.526550\n0.671570 0.950745 0.526550\n0.708588 0.951538 0.526550\n0.742798 0.952332 0.526550\n0.774139 0.953125 0.526550\n0.802460 0.953857 0.526550\n0.828156 0.954620 0.526550\n0.851440 0.955383 0.526550\n0.872589 0.956085 0.526550\n0.891846 0.956818 0.526550\n0.909393 0.957520 0.526550\n0.925293 0.958160 0.526550\n0.939789 0.958832 0.526550\n0.952942 0.959503 0.526550\n0.964752 0.960144 0.526550\n0.975433 0.960754 0.526550\n0.984894 0.961365 0.526550\n0.993256 0.961945 0.526550\n0.121765 0.951630 0.526550\n0.148132 0.952545 0.526550\n0.175873 0.953400 0.526550\n0.205200 0.954285 0.526550\n0.236328 0.955139 0.526550\n0.269348 0.955933 0.526550\n0.304596 0.956787 0.526550\n0.341980 0.957611 0.526550\n0.381165 0.958405 0.526550\n0.422058 0.959198 0.526550\n0.464447 0.959991 0.526550\n0.507935 0.960754 0.526550\n0.552063 0.961517 0.526550\n0.595184 0.962280 0.526550\n0.636536 0.963013 0.526550\n0.675751 0.963715 0.526550\n0.712433 0.964417 0.526550\n0.746307 0.965118 0.526550\n0.777252 0.965820 0.526550\n0.805237 0.966461 0.526550\n0.830597 0.967133 0.526550\n0.853638 0.967773 0.526550\n0.874573 0.968414 0.526550\n0.893616 0.968994 0.526550\n0.910950 0.969604 0.526550\n0.926697 0.970184 0.526550\n0.941040 0.970764 0.526550\n0.954010 0.971344 0.526550\n0.965729 0.971863 0.526550\n0.976288 0.972412 0.526550\n0.985626 0.972931 0.526550\n0.993866 0.973450 0.526550\n0.124939 0.964691 0.526550\n0.151398 0.965485 0.526550\n0.179352 0.966248 0.526550\n0.208801 0.967010 0.526550\n0.240112 0.967773 0.526550\n0.273438 0.968475 0.526550\n0.308899 0.969208 0.526550\n0.346436 0.969940 0.526550\n0.385773 0.970642 0.526550\n0.426849 0.971344 0.526550\n0.469330 0.972015 0.526550\n0.512787 0.972687 0.526550\n0.556915 0.973389 0.526550\n0.599762 0.974030 0.526550\n0.640869 0.974640 0.526550\n0.679688 0.975281 0.526550\n0.716034 0.975891 0.526550\n0.749603 0.976501 0.526550\n0.780212 0.977081 0.526550\n0.807861 0.977661 0.526550\n0.832977 0.978241 0.526550\n0.855774 0.978760 0.526550\n0.876434 0.979309 0.526550\n0.895294 0.979858 0.526550\n0.912415 0.980347 0.526550\n0.928009 0.980835 0.526550\n0.942169 0.981354 0.526550\n0.955078 0.981812 0.526550\n0.966675 0.982300 0.526550\n0.977081 0.982727 0.526550\n0.986328 0.983154 0.526550\n0.994415 0.983582 0.526550\n0.042999 0.004303 0.619812\n0.064941 0.005066 0.619263\n0.087891 0.005890 0.618774\n0.111877 0.006744 0.618195\n0.137085 0.007660 0.617645\n0.163605 0.008545 0.617035\n0.191589 0.009460 0.616394\n0.221313 0.010437 0.615723\n0.252838 0.011383 0.615021\n0.286438 0.012421 0.614258\n0.322174 0.013458 0.613556\n0.359955 0.014496 0.612793\n0.399567 0.015594 0.612000\n0.440704 0.016663 0.611237\n0.483276 0.017822 0.610382\n0.526855 0.018982 0.609497\n0.570496 0.020142 0.608612\n0.612793 0.021332 0.607697\n0.653259 0.022583 0.606812\n0.691376 0.023743 0.605927\n0.726929 0.025055 0.604950\n0.759644 0.026306 0.604004\n0.789429 0.027618 0.603058\n0.816437 0.028931 0.602051\n0.840942 0.030243 0.601135\n0.863251 0.031616 0.600128\n0.883514 0.033020 0.599060\n0.901917 0.034363 0.598083\n0.918701 0.035767 0.597046\n0.933990 0.037201 0.596008\n0.947845 0.038605 0.594971\n0.960419 0.040100 0.593964\n0.044525 0.025543 0.618805\n0.066620 0.026459 0.618225\n0.089661 0.027344 0.617645\n0.113831 0.028290 0.617035\n0.139191 0.029266 0.616394\n0.165894 0.030243 0.615723\n0.194092 0.031250 0.615021\n0.223999 0.032318 0.614288\n0.255768 0.033386 0.613556\n0.289673 0.034485 0.612793\n0.325653 0.035583 0.612000\n0.363647 0.036743 0.611237\n0.403503 0.037933 0.610382\n0.444916 0.039093 0.609497\n0.487640 0.040344 0.608643\n0.531403 0.041565 0.607727\n0.575012 0.042816 0.606842\n0.617157 0.044098 0.605927\n0.657410 0.045380 0.605011\n0.695374 0.046722 0.604065\n0.730682 0.048096 0.603058\n0.763123 0.049438 0.602112\n0.792633 0.050842 0.601135\n0.819397 0.052246 0.600128\n0.843597 0.053650 0.599091\n0.865662 0.055115 0.598114\n0.885742 0.056580 0.597046\n0.903961 0.058044 0.596039\n0.920593 0.059509 0.594971\n0.935730 0.061005 0.593994\n0.949432 0.062561 0.592926\n0.961853 0.064087 0.591858\n0.046265 0.047852 0.617676\n0.068451 0.048828 0.617096\n0.091614 0.049805 0.616425\n0.115906 0.050842 0.615753\n0.141449 0.051941 0.615051\n0.168304 0.052979 0.614380\n0.196747 0.054077 0.613617\n0.226837 0.055206 0.612885\n0.258850 0.056396 0.612030\n0.293060 0.057617 0.611237\n0.329285 0.058807 0.610413\n0.367554 0.060089 0.609589\n0.407623 0.061310 0.608643\n0.449219 0.062592 0.607819\n0.492126 0.063934 0.606934\n0.536072 0.065247 0.605957\n0.579651 0.066589 0.605042\n0.621643 0.067993 0.604065\n0.661682 0.069366 0.603119\n0.699402 0.070801 0.602142\n0.734467 0.072266 0.601166\n0.766602 0.073669 0.600159\n0.795837 0.075165 0.599152\n0.822327 0.076691 0.598114\n0.846313 0.078156 0.597076\n0.868164 0.079742 0.596069\n0.888000 0.081299 0.595032\n0.906036 0.082855 0.594025\n0.922546 0.084473 0.592957\n0.937439 0.086029 0.591919\n0.951019 0.087646 0.590881\n0.963287 0.089294 0.589783\n0.048004 0.071198 0.616425\n0.070343 0.072266 0.615753\n0.093658 0.073364 0.615051\n0.118134 0.074493 0.614380\n0.143799 0.075623 0.613647\n0.170898 0.076813 0.612885\n0.199493 0.078064 0.612030\n0.229828 0.079285 0.611267\n0.262115 0.080566 0.610474\n0.296570 0.081848 0.609589\n0.333069 0.083160 0.608734\n0.371582 0.084503 0.607819\n0.411926 0.085876 0.606934\n0.453705 0.087250 0.605988\n0.496826 0.088684 0.605042\n0.540741 0.090088 0.604095\n0.584320 0.091553 0.603149\n0.626190 0.093048 0.602142\n0.666016 0.094543 0.601196\n0.703491 0.096100 0.600220\n0.738312 0.097626 0.599152\n0.770142 0.099182 0.598175\n0.799042 0.100769 0.597168\n0.825256 0.102386 0.596069\n0.849030 0.103973 0.595093\n0.870605 0.105652 0.594025\n0.890228 0.107269 0.593018\n0.908142 0.108978 0.591949\n0.924408 0.110657 0.590912\n0.939178 0.112335 0.589844\n0.952606 0.114075 0.588837\n0.964691 0.115845 0.587799\n0.049896 0.095734 0.615112\n0.072357 0.096924 0.614410\n0.095795 0.098114 0.613647\n0.120422 0.099335 0.612915\n0.146240 0.100616 0.612122\n0.173553 0.101898 0.611298\n0.202393 0.103241 0.610474\n0.232910 0.104584 0.609619\n0.265472 0.105957 0.608765\n0.300201 0.107361 0.607849\n0.336945 0.108765 0.606964\n0.375793 0.110229 0.605988\n0.416351 0.111725 0.605042\n0.458344 0.113190 0.604156\n0.501617 0.114746 0.603149\n0.545685 0.116272 0.602173\n0.589142 0.117859 0.601196\n0.630890 0.119446 0.600220\n0.670471 0.121033 0.599213\n0.707703 0.122711 0.598206\n0.742218 0.124390 0.597168\n0.773712 0.126038 0.596130\n0.802338 0.127747 0.595093\n0.828247 0.129456 0.594086\n0.851715 0.131165 0.593018\n0.873108 0.132904 0.591949\n0.892517 0.134674 0.590942\n0.910217 0.136505 0.589905\n0.926300 0.138306 0.588837\n0.940948 0.140076 0.587830\n0.954193 0.141968 0.586792\n0.966125 0.143799 0.585693\n0.051880 0.121613 0.613647\n0.074463 0.122864 0.612915\n0.098083 0.124237 0.612152\n0.122864 0.125580 0.611298\n0.148895 0.126953 0.610504\n0.176331 0.128357 0.609650\n0.205414 0.129822 0.608765\n0.236176 0.131256 0.607880\n0.269012 0.132751 0.606964\n0.304016 0.134308 0.606079\n0.341064 0.135834 0.605164\n0.380066 0.137390 0.604156\n0.420807 0.138977 0.603210\n0.463104 0.140625 0.602234\n0.506531 0.142303 0.601257\n0.550690 0.143921 0.600250\n0.593994 0.145630 0.599243\n0.635559 0.147339 0.598206\n0.674988 0.149078 0.597198\n0.711914 0.150848 0.596191\n0.746124 0.152618 0.595123\n0.777283 0.154388 0.594116\n0.805603 0.156250 0.593079\n0.831207 0.158112 0.592041\n0.854462 0.159943 0.590942\n0.875580 0.161835 0.589935\n0.894775 0.163696 0.588867\n0.912292 0.165619 0.587830\n0.928192 0.167542 0.586792\n0.942657 0.169434 0.585754\n0.955750 0.171448 0.584747\n0.967529 0.173431 0.583679\n0.053955 0.148956 0.612152\n0.076660 0.150360 0.611359\n0.100433 0.151794 0.610504\n0.125397 0.153290 0.609650\n0.151550 0.154816 0.608795\n0.179230 0.156311 0.607880\n0.208496 0.157898 0.606995\n0.239532 0.159485 0.606110\n0.272644 0.161102 0.605164\n0.307953 0.162811 0.604187\n0.345245 0.164429 0.603271\n0.384521 0.166138 0.602234\n0.425537 0.167877 0.601318\n0.467987 0.169647 0.600311\n0.511597 0.171448 0.599243\n0.555756 0.173218 0.598328\n0.598969 0.175079 0.597229\n0.640350 0.176910 0.596191\n0.679504 0.178741 0.595184\n0.716156 0.180664 0.594116\n0.750031 0.182617 0.593079\n0.780853 0.184509 0.592072\n0.808838 0.186462 0.591003\n0.834167 0.188446 0.589996\n0.857178 0.190460 0.588959\n0.878052 0.192474 0.587860\n0.897034 0.194489 0.586853\n0.914368 0.196533 0.585785\n0.930115 0.198639 0.584778\n0.944336 0.200653 0.583740\n0.957306 0.202789 0.582703\n0.968964 0.204926 0.581696\n0.056152 0.177948 0.610535\n0.078979 0.179474 0.609711\n0.102875 0.181091 0.608795\n0.127991 0.182709 0.607941\n0.154388 0.184357 0.607056\n0.182251 0.186035 0.606110\n0.211761 0.187775 0.605194\n0.243042 0.189453 0.604248\n0.276428 0.191223 0.603271\n0.311951 0.192993 0.602264\n0.349579 0.194885 0.601318\n0.389130 0.196747 0.600311\n0.430298 0.198578 0.599304\n0.472961 0.200470 0.598328\n0.516754 0.202454 0.597290\n0.560883 0.204346 0.596252\n0.603973 0.206360 0.595245\n0.645172 0.208374 0.594177\n0.684021 0.210358 0.593109\n0.720398 0.212402 0.592102\n0.753937 0.214508 0.591064\n0.784454 0.216522 0.589996\n0.812103 0.218689 0.588959\n0.837128 0.220764 0.587952\n0.859863 0.222931 0.586853\n0.880554 0.225128 0.585876\n0.899292 0.227264 0.584839\n0.916443 0.229492 0.583740\n0.931976 0.231720 0.582733\n0.946075 0.233948 0.581726\n0.958832 0.236176 0.580719\n0.970337 0.238434 0.579712\n0.058380 0.208771 0.608826\n0.081360 0.210480 0.608002\n0.105469 0.212250 0.607056\n0.130737 0.213989 0.606171\n0.157288 0.215820 0.605194\n0.185364 0.217651 0.604248\n0.215057 0.219543 0.603302\n0.246613 0.221405 0.602356\n0.280304 0.223358 0.601349\n0.316101 0.225250 0.600372\n0.354004 0.227264 0.599304\n0.393829 0.229309 0.598358\n0.435181 0.231323 0.597351\n0.478058 0.233398 0.596283\n0.522034 0.235474 0.595245\n0.566132 0.237549 0.594238\n0.609009 0.239777 0.593201\n0.650055 0.241913 0.592102\n0.688599 0.244080 0.591095\n0.724670 0.246277 0.590027\n0.757812 0.248505 0.588989\n0.788025 0.250763 0.587982\n0.815369 0.253052 0.586914\n0.840088 0.255341 0.585907\n0.862579 0.257660 0.584839\n0.883026 0.259979 0.583832\n0.901550 0.262329 0.582764\n0.918457 0.264740 0.581757\n0.933838 0.267120 0.580750\n0.947754 0.269470 0.579803\n0.960358 0.271912 0.578766\n0.971710 0.274323 0.577850\n0.060760 0.241791 0.607086\n0.083862 0.243591 0.606201\n0.108093 0.245514 0.605225\n0.133575 0.247467 0.604279\n0.160309 0.249420 0.603333\n0.188568 0.251465 0.602356\n0.218475 0.253448 0.601379\n0.250336 0.255554 0.600403\n0.284332 0.257660 0.599396\n0.320343 0.259735 0.598389\n0.358582 0.261963 0.597351\n0.398621 0.264191 0.596344\n0.440247 0.266357 0.595276\n0.483276 0.268646 0.594238\n0.527374 0.270905 0.593201\n0.571442 0.273193 0.592163\n0.614136 0.275513 0.591095\n0.654907 0.277893 0.590027\n0.693237 0.280243 0.589020\n0.728943 0.282623 0.587982\n0.761749 0.285004 0.586945\n0.791565 0.287506 0.585907\n0.818573 0.289948 0.584900\n0.843048 0.292358 0.583862\n0.865234 0.294922 0.582764\n0.885468 0.297455 0.581757\n0.903778 0.299927 0.580811\n0.920471 0.302490 0.579803\n0.935669 0.305023 0.578796\n0.949432 0.307617 0.577850\n0.961853 0.310211 0.576843\n0.973022 0.312714 0.575928\n0.063202 0.277039 0.605225\n0.086426 0.279083 0.604340\n0.110840 0.281189 0.603333\n0.136475 0.283356 0.602386\n0.163391 0.285492 0.601410\n0.191925 0.287720 0.600403\n0.222076 0.289886 0.599426\n0.254181 0.292206 0.598389\n0.288422 0.294495 0.597382\n0.324799 0.296814 0.596405\n0.363220 0.299133 0.595306\n0.403534 0.301575 0.594269\n0.445343 0.303894 0.593262\n0.488586 0.306366 0.592224\n0.532776 0.308899 0.591156\n0.576721 0.311340 0.590118\n0.619263 0.313843 0.589020\n0.659668 0.316345 0.588013\n0.697815 0.318909 0.586945\n0.733185 0.321503 0.585938\n0.765656 0.324066 0.584930\n0.795105 0.326721 0.583862\n0.821808 0.329315 0.582855\n0.845978 0.331970 0.581787\n0.867920 0.334656 0.580811\n0.887848 0.337311 0.579834\n0.905975 0.339996 0.578888\n0.922516 0.342682 0.577911\n0.937469 0.345398 0.576904\n0.951080 0.348145 0.575928\n0.963379 0.350861 0.575012\n0.974335 0.353638 0.574127\n0.065674 0.314880 0.603394\n0.089050 0.317108 0.602417\n0.113647 0.319427 0.601410\n0.139404 0.321716 0.600433\n0.166565 0.324066 0.599426\n0.195282 0.326477 0.598450\n0.225708 0.328857 0.597412\n0.258087 0.331360 0.596405\n0.292603 0.333832 0.595306\n0.329285 0.336334 0.594360\n0.367981 0.338898 0.593262\n0.408508 0.341431 0.592224\n0.450562 0.343994 0.591187\n0.493988 0.346649 0.590149\n0.538208 0.349213 0.589142\n0.582123 0.351898 0.588074\n0.624390 0.354614 0.587036\n0.664581 0.357239 0.585999\n0.702362 0.359985 0.584930\n0.737457 0.362793 0.583893\n0.769501 0.365448 0.582886\n0.798615 0.368286 0.581879\n0.824982 0.371063 0.580841\n0.848877 0.373810 0.579865\n0.870544 0.376709 0.578888\n0.890228 0.379547 0.577911\n0.908142 0.382324 0.576935\n0.924469 0.385223 0.575958\n0.939270 0.388000 0.575073\n0.952698 0.390869 0.574127\n0.964813 0.393768 0.573242\n0.975616 0.396637 0.572388\n0.068237 0.355164 0.601501\n0.091797 0.357544 0.600464\n0.116516 0.360016 0.599457\n0.142487 0.362488 0.598511\n0.169830 0.365051 0.597412\n0.198792 0.367615 0.596436\n0.229431 0.370148 0.595398\n0.262115 0.372833 0.594391\n0.296906 0.375519 0.593323\n0.333832 0.378174 0.592255\n0.372833 0.380859 0.591187\n0.413574 0.383636 0.590179\n0.455811 0.386322 0.589142\n0.499390 0.389130 0.588074\n0.543701 0.391876 0.587067\n0.587433 0.394745 0.585999\n0.629578 0.397552 0.584991\n0.669464 0.400391 0.583923\n0.706940 0.403229 0.582886\n0.741638 0.406189 0.581879\n0.773346 0.408997 0.580902\n0.802124 0.411957 0.579865\n0.828156 0.414886 0.578918\n0.851685 0.417816 0.577942\n0.873138 0.420776 0.576935\n0.892609 0.423706 0.576050\n0.910309 0.426666 0.575134\n0.926422 0.429626 0.574188\n0.941040 0.432526 0.573303\n0.954285 0.435577 0.572388\n0.966248 0.438599 0.571564\n0.976929 0.441498 0.570679\n0.070862 0.397522 0.599518\n0.094604 0.400177 0.598511\n0.119476 0.402832 0.597504\n0.145599 0.405457 0.596466\n0.173187 0.408142 0.595428\n0.202362 0.410919 0.594391\n0.233246 0.413635 0.593384\n0.266144 0.416443 0.592316\n0.301300 0.419281 0.591278\n0.338531 0.422028 0.590271\n0.377716 0.424927 0.589172\n0.418732 0.427765 0.588104\n0.461212 0.430664 0.587097\n0.504913 0.433563 0.586060\n0.549286 0.436462 0.585052\n0.592834 0.439423 0.583923\n0.634735 0.442444 0.582916\n0.674347 0.445343 0.581909\n0.711456 0.448395 0.580963\n0.745850 0.451447 0.579956\n0.777130 0.454376 0.578949\n0.805542 0.457428 0.578003\n0.831268 0.460449 0.576965\n0.854553 0.463501 0.576050\n0.875702 0.466553 0.575134\n0.894928 0.469543 0.574219\n0.912415 0.472626 0.573303\n0.928314 0.475708 0.572418\n0.942780 0.478729 0.571564\n0.955841 0.481781 0.570709\n0.967651 0.484863 0.569885\n0.978180 0.487915 0.569092\n0.073608 0.441925 0.597534\n0.097473 0.444733 0.596466\n0.122528 0.447510 0.595459\n0.148834 0.450317 0.594421\n0.176605 0.453186 0.593384\n0.205994 0.455994 0.592316\n0.237152 0.458862 0.591309\n0.270355 0.461823 0.590271\n0.305817 0.464813 0.589172\n0.343292 0.467712 0.588196\n0.382751 0.470673 0.587097\n0.423920 0.473602 0.586090\n0.466583 0.476685 0.585052\n0.510406 0.479736 0.584015\n0.554840 0.482697 0.582947\n0.598236 0.485840 0.581970\n0.639832 0.488861 0.580963\n0.679199 0.491913 0.579987\n0.716003 0.495026 0.578949\n0.750000 0.498169 0.578003\n0.780914 0.501190 0.577057\n0.808960 0.504364 0.576080\n0.834290 0.507385 0.575165\n0.857330 0.510590 0.574219\n0.878235 0.513702 0.573303\n0.897217 0.516754 0.572449\n0.914520 0.519897 0.571594\n0.930206 0.523041 0.570709\n0.944489 0.526062 0.569916\n0.957367 0.529266 0.569092\n0.969025 0.532379 0.568298\n0.979401 0.535370 0.567963\n0.076355 0.487946 0.595490\n0.100403 0.490845 0.594482\n0.125641 0.493744 0.593414\n0.152130 0.496674 0.592346\n0.180084 0.499664 0.591339\n0.209717 0.502655 0.590302\n0.241119 0.505585 0.589233\n0.274628 0.508606 0.588196\n0.310303 0.511719 0.587158\n0.348053 0.514709 0.586090\n0.387817 0.517792 0.585083\n0.429169 0.520874 0.584045\n0.472046 0.523987 0.583038\n0.516022 0.527130 0.582001\n0.560394 0.530151 0.580994\n0.603577 0.533295 0.579987\n0.645020 0.536469 0.579010\n0.683960 0.539551 0.578064\n0.720459 0.542725 0.577057\n0.754028 0.545837 0.576080\n0.784607 0.548981 0.575195\n0.812286 0.552063 0.574280\n0.837311 0.555145 0.573334\n0.860077 0.558258 0.572449\n0.880737 0.561401 0.571594\n0.899475 0.564392 0.570770\n0.916565 0.567474 0.569916\n0.932098 0.570496 0.569153\n0.946167 0.573486 0.568329\n0.958893 0.576508 0.567963\n0.970367 0.579529 0.567963\n0.980560 0.582458 0.567963\n0.079163 0.535187 0.593475\n0.103394 0.538177 0.592377\n0.128784 0.541138 0.591339\n0.155426 0.544098 0.590332\n0.183655 0.547150 0.589264\n0.213501 0.550232 0.588226\n0.245148 0.553223 0.587219\n0.278961 0.556244 0.586151\n0.314911 0.559326 0.585083\n0.352936 0.562317 0.584076\n0.392914 0.565399 0.583038\n0.434509 0.568420 0.582062\n0.477539 0.571472 0.581024\n0.521637 0.574585 0.580048\n0.565948 0.577545 0.579071\n0.608948 0.580597 0.578094\n0.650085 0.583710 0.577087\n0.688751 0.586670 0.576141\n0.724884 0.589722 0.575195\n0.758118 0.592804 0.574280\n0.788239 0.595673 0.573425\n0.815582 0.598724 0.572540\n0.840302 0.601654 0.571625\n0.862793 0.604614 0.570831\n0.883148 0.607605 0.569977\n0.901703 0.610504 0.569183\n0.918579 0.613403 0.568420\n0.933899 0.616333 0.567963\n0.947784 0.619171 0.567963\n0.960358 0.622040 0.567963\n0.971680 0.624939 0.567963\n0.981750 0.627655 0.567963\n0.082062 0.582062 0.591431\n0.106445 0.585052 0.590332\n0.131989 0.587982 0.589264\n0.158844 0.590881 0.588257\n0.187256 0.593781 0.587219\n0.217346 0.596771 0.586212\n0.249268 0.599670 0.585175\n0.283356 0.602631 0.584076\n0.319580 0.605560 0.583069\n0.357880 0.608459 0.582062\n0.398102 0.611450 0.581024\n0.439850 0.614380 0.580109\n0.483063 0.617310 0.579071\n0.527283 0.620270 0.578094\n0.571472 0.623138 0.577118\n0.614258 0.626068 0.576172\n0.655090 0.628998 0.575287\n0.693451 0.631836 0.574310\n0.729248 0.634735 0.573425\n0.762054 0.637604 0.572540\n0.791809 0.640411 0.571655\n0.818848 0.643250 0.570831\n0.843231 0.645996 0.569977\n0.865417 0.648834 0.569183\n0.885559 0.651611 0.568420\n0.903870 0.654358 0.567963\n0.920532 0.657074 0.567963\n0.935669 0.659821 0.567963\n0.949371 0.662506 0.567963\n0.961792 0.665131 0.567963\n0.972931 0.667786 0.567963\n0.982849 0.670349 0.567963\n0.084991 0.627228 0.589325\n0.109497 0.630035 0.588318\n0.135223 0.632904 0.587250\n0.162292 0.635651 0.586243\n0.190918 0.638458 0.585175\n0.221252 0.641357 0.584106\n0.253418 0.644073 0.583130\n0.287811 0.646942 0.582123\n0.324280 0.649689 0.581116\n0.362854 0.652466 0.580109\n0.403320 0.655304 0.579102\n0.445282 0.658081 0.578125\n0.488617 0.660858 0.577118\n0.532959 0.663635 0.576172\n0.576935 0.666351 0.575287\n0.619537 0.669037 0.574310\n0.660095 0.671844 0.573456\n0.698151 0.674500 0.572571\n0.733551 0.677185 0.571655\n0.765930 0.679840 0.570862\n0.795380 0.682526 0.570007\n0.821991 0.685181 0.569183\n0.846130 0.687714 0.568451\n0.868011 0.690338 0.567963\n0.887909 0.692932 0.567963\n0.905975 0.695435 0.567963\n0.922455 0.697998 0.567963\n0.937378 0.700500 0.567963\n0.950928 0.702942 0.567963\n0.963196 0.705383 0.567963\n0.974152 0.707733 0.567963\n0.983917 0.710144 0.567963\n0.087952 0.670044 0.587311\n0.112640 0.672729 0.586243\n0.138580 0.675446 0.585205\n0.165833 0.678009 0.584198\n0.194641 0.680695 0.583130\n0.225159 0.683319 0.582153\n0.257629 0.685974 0.581146\n0.292328 0.688599 0.580139\n0.329071 0.691193 0.579163\n0.367920 0.693817 0.578186\n0.408539 0.696472 0.577209\n0.450684 0.699005 0.576233\n0.494232 0.701599 0.575317\n0.538605 0.704193 0.574341\n0.582458 0.706696 0.573486\n0.624756 0.709259 0.572571\n0.665009 0.711761 0.571655\n0.702698 0.714264 0.570862\n0.737762 0.716736 0.570007\n0.769745 0.719147 0.569244\n0.798828 0.721619 0.568451\n0.825073 0.724030 0.567963\n0.848907 0.726379 0.567963\n0.870544 0.728790 0.567963\n0.890228 0.731110 0.567963\n0.908051 0.733368 0.567963\n0.924347 0.735687 0.567963\n0.939117 0.737976 0.567963\n0.952454 0.740204 0.567963\n0.964539 0.742401 0.567963\n0.975372 0.744568 0.567963\n0.984955 0.746704 0.567963\n0.090973 0.710022 0.585266\n0.115845 0.712555 0.584198\n0.141907 0.715057 0.583160\n0.169342 0.717468 0.582153\n0.198395 0.719971 0.581146\n0.229156 0.722351 0.580200\n0.261902 0.724854 0.579224\n0.296844 0.727295 0.578186\n0.333862 0.729675 0.577240\n0.372986 0.732117 0.576294\n0.413818 0.734497 0.575348\n0.456116 0.736877 0.574402\n0.499756 0.739227 0.573486\n0.544220 0.741577 0.572601\n0.587860 0.743835 0.571716\n0.629883 0.746185 0.570892\n0.669830 0.748413 0.570038\n0.707275 0.750702 0.569305\n0.741882 0.752960 0.568481\n0.773499 0.755157 0.567963\n0.802185 0.757416 0.567963\n0.828156 0.759552 0.567963\n0.851624 0.761688 0.567963\n0.873016 0.763855 0.567963\n0.892456 0.765961 0.567963\n0.910095 0.767975 0.567963\n0.926147 0.770050 0.567963\n0.940735 0.772034 0.567963\n0.953918 0.774048 0.567963\n0.965851 0.776001 0.567963\n0.976501 0.777924 0.567963\n0.985992 0.779785 0.567963\n0.094025 0.746887 0.583221\n0.119049 0.749176 0.582184\n0.145294 0.751434 0.581207\n0.172943 0.753693 0.580200\n0.202240 0.755981 0.579224\n0.233185 0.758148 0.578217\n0.266235 0.760345 0.577240\n0.301422 0.762634 0.576294\n0.338745 0.764771 0.575348\n0.378021 0.766968 0.574402\n0.419098 0.769196 0.573486\n0.461517 0.771240 0.572662\n0.505280 0.773407 0.571777\n0.549652 0.775482 0.570984\n0.593231 0.777557 0.570099\n0.635010 0.779633 0.569305\n0.674622 0.781677 0.568481\n0.711639 0.783691 0.567963\n0.745972 0.785736 0.567963\n0.777161 0.787659 0.567963\n0.805481 0.789673 0.567963\n0.831146 0.791626 0.567963\n0.854340 0.793488 0.567963\n0.875427 0.795380 0.567963\n0.894623 0.797272 0.567963\n0.912048 0.799042 0.567963\n0.927948 0.800903 0.567963\n0.942291 0.802643 0.567963\n0.955353 0.804413 0.567963\n0.967133 0.806152 0.567963\n0.977661 0.807861 0.567963\n0.987000 0.809540 0.567963\n0.097137 0.780273 0.581268\n0.122314 0.782349 0.580231\n0.148682 0.784393 0.579254\n0.176544 0.786407 0.578278\n0.205994 0.788452 0.577332\n0.237244 0.790466 0.576324\n0.270569 0.792480 0.575378\n0.306061 0.794464 0.574463\n0.343567 0.796417 0.573608\n0.383118 0.798370 0.572662\n0.424347 0.800293 0.571777\n0.466980 0.802216 0.570984\n0.510803 0.804138 0.570099\n0.555237 0.806000 0.569336\n0.598541 0.807861 0.568512\n0.640015 0.809723 0.567963\n0.679260 0.811554 0.567963\n0.716003 0.813324 0.567963\n0.749939 0.815125 0.567963\n0.780731 0.816864 0.567963\n0.808716 0.818634 0.567963\n0.833984 0.820343 0.567963\n0.856934 0.822021 0.567963\n0.877777 0.823730 0.567963\n0.896698 0.825348 0.567963\n0.913940 0.826965 0.567963\n0.929657 0.828583 0.567963\n0.943878 0.830170 0.567963\n0.956726 0.831696 0.567963\n0.968353 0.833282 0.567963\n0.978729 0.834747 0.567963\n0.987915 0.836243 0.567963\n0.100250 0.810272 0.579254\n0.125580 0.812164 0.578278\n0.152130 0.814026 0.577362\n0.180176 0.815857 0.576355\n0.209900 0.817688 0.575378\n0.241364 0.819458 0.574493\n0.274902 0.821289 0.573608\n0.310669 0.823059 0.572723\n0.348419 0.824829 0.571838\n0.388184 0.826538 0.571014\n0.429626 0.828308 0.570099\n0.472382 0.829987 0.569336\n0.516327 0.831726 0.568512\n0.560608 0.833374 0.567963\n0.603729 0.835052 0.567963\n0.645020 0.836731 0.567963\n0.683929 0.838318 0.567963\n0.720306 0.839966 0.567963\n0.753754 0.841553 0.567963\n0.784241 0.843109 0.567963\n0.811829 0.844635 0.567963\n0.836853 0.846191 0.567963\n0.859467 0.847687 0.567963\n0.880066 0.849182 0.567963\n0.898773 0.850616 0.567963\n0.915833 0.852081 0.567963\n0.931305 0.853516 0.567963\n0.945343 0.854889 0.567963\n0.958038 0.856262 0.567963\n0.969513 0.857635 0.567963\n0.979767 0.858948 0.567963\n0.988831 0.860260 0.567963\n0.103394 0.837311 0.577362\n0.128845 0.839020 0.576355\n0.155609 0.840637 0.575470\n0.183868 0.842316 0.574493\n0.213715 0.843964 0.573608\n0.245453 0.845551 0.572754\n0.279266 0.847198 0.571869\n0.315308 0.848816 0.571014\n0.353302 0.850372 0.570160\n0.393250 0.851959 0.569397\n0.434814 0.853485 0.568604\n0.477783 0.855042 0.567963\n0.521790 0.856567 0.567963\n0.566010 0.858032 0.567963\n0.608826 0.859558 0.567963\n0.649811 0.861023 0.567963\n0.688446 0.862457 0.567963\n0.724426 0.863922 0.567963\n0.757568 0.865326 0.567963\n0.787628 0.866730 0.567963\n0.814880 0.868103 0.567963\n0.839539 0.869415 0.567963\n0.861938 0.870789 0.567963\n0.882294 0.872131 0.567963\n0.900757 0.873383 0.567963\n0.917603 0.874664 0.567963\n0.932922 0.875946 0.567963\n0.946777 0.877167 0.567963\n0.959351 0.878387 0.567963\n0.970673 0.879578 0.567963\n0.980743 0.880737 0.567963\n0.989685 0.881897 0.567963\n0.106537 0.861664 0.575500\n0.132172 0.863190 0.574585\n0.159088 0.864655 0.573639\n0.187531 0.866180 0.572754\n0.217621 0.867645 0.571869\n0.249573 0.869080 0.571075\n0.283691 0.870544 0.570190\n0.319977 0.871979 0.569397\n0.358185 0.873383 0.568604\n0.398285 0.874817 0.567963\n0.440002 0.876190 0.567963\n0.483124 0.877594 0.567963\n0.527191 0.878967 0.567963\n0.571259 0.880249 0.567963\n0.613892 0.881622 0.567963\n0.654572 0.882935 0.567963\n0.692871 0.884216 0.567963\n0.728455 0.885468 0.567963\n0.761200 0.886810 0.567963\n0.790894 0.888000 0.567963\n0.817810 0.889221 0.567963\n0.842163 0.890411 0.567963\n0.864319 0.891602 0.567963\n0.884399 0.892792 0.567963\n0.902679 0.893921 0.567963\n0.919342 0.895050 0.567963\n0.934448 0.896179 0.567963\n0.948181 0.897278 0.567963\n0.960571 0.898346 0.567963\n0.971771 0.899414 0.567963\n0.981689 0.900421 0.567963\n0.990479 0.901459 0.567963\n0.109711 0.883636 0.573700\n0.135468 0.885010 0.572754\n0.162537 0.886322 0.571930\n0.191193 0.887695 0.571075\n0.221527 0.889008 0.570190\n0.253693 0.890289 0.569427\n0.288055 0.891602 0.568634\n0.324493 0.892883 0.567963\n0.363037 0.894165 0.567963\n0.403351 0.895447 0.567963\n0.445190 0.896667 0.567963\n0.488434 0.897888 0.567963\n0.532562 0.899139 0.567963\n0.576447 0.900330 0.567963\n0.618805 0.901520 0.567963\n0.659210 0.902679 0.567963\n0.697144 0.903809 0.567963\n0.732391 0.904999 0.567963\n0.764771 0.906097 0.567963\n0.794067 0.907196 0.567963\n0.820679 0.908295 0.567963\n0.844727 0.909363 0.567963\n0.866608 0.910400 0.567963\n0.886475 0.911469 0.567963\n0.904541 0.912476 0.567963\n0.920990 0.913452 0.567963\n0.935944 0.914459 0.567963\n0.949493 0.915436 0.567963\n0.961761 0.916351 0.567963\n0.972778 0.917267 0.567963\n0.982605 0.918182 0.567963\n0.991272 0.919067 0.567963\n0.112885 0.903442 0.571930\n0.138824 0.904694 0.571106\n0.166077 0.905853 0.570251\n0.194916 0.907074 0.569427\n0.225403 0.908264 0.568634\n0.257843 0.909454 0.567963\n0.292450 0.910614 0.567963\n0.329102 0.911743 0.567963\n0.367859 0.912903 0.567963\n0.408356 0.914032 0.567963\n0.450348 0.915161 0.567963\n0.493683 0.916260 0.567963\n0.537842 0.917358 0.567963\n0.581543 0.918396 0.567963\n0.623657 0.919434 0.567963\n0.663696 0.920532 0.567963\n0.701324 0.921539 0.567963\n0.736237 0.922546 0.567963\n0.768158 0.923523 0.567963\n0.797180 0.924530 0.567963\n0.823425 0.925507 0.567963\n0.847229 0.926422 0.567963\n0.868835 0.927399 0.567963\n0.888458 0.928284 0.567963\n0.906311 0.929169 0.567963\n0.922607 0.930054 0.567963\n0.937378 0.930939 0.567963\n0.950775 0.931763 0.567963\n0.962891 0.932648 0.567963\n0.973755 0.933411 0.567963\n0.983459 0.934235 0.567963\n0.992004 0.934998 0.567963\n0.116058 0.921356 0.570251\n0.142151 0.922455 0.569519\n0.169525 0.923492 0.568726\n0.198578 0.924622 0.567963\n0.229248 0.925659 0.567963\n0.261963 0.926697 0.567963\n0.296814 0.927795 0.567963\n0.333710 0.928772 0.567963\n0.372620 0.929810 0.567963\n0.413300 0.930847 0.567963\n0.455414 0.931793 0.567963\n0.498779 0.932831 0.567963\n0.542999 0.933777 0.567963\n0.586456 0.934692 0.567963\n0.628357 0.935669 0.567963\n0.668030 0.936584 0.567963\n0.705383 0.937469 0.567963\n0.739929 0.938385 0.567963\n0.771484 0.939240 0.567963\n0.800140 0.940125 0.567963\n0.826080 0.941010 0.567963\n0.849609 0.941833 0.567963\n0.870972 0.942657 0.567963\n0.890381 0.943451 0.567963\n0.908020 0.944214 0.567963\n0.924103 0.945007 0.567963\n0.938721 0.945801 0.567963\n0.951996 0.946533 0.567963\n0.963928 0.947235 0.567963\n0.974670 0.947937 0.567963\n0.984283 0.948639 0.567963\n0.992706 0.949310 0.567963\n0.119263 0.937469 0.568726\n0.145447 0.938446 0.567963\n0.173035 0.939423 0.567963\n0.202271 0.940399 0.567963\n0.233154 0.941315 0.567963\n0.266052 0.942261 0.567963\n0.301117 0.943207 0.567963\n0.338287 0.944122 0.567963\n0.377380 0.945007 0.567963\n0.418152 0.945953 0.567963\n0.460419 0.946777 0.567963\n0.503845 0.947662 0.567963\n0.548035 0.948547 0.567963\n0.591339 0.949371 0.567963\n0.632904 0.950226 0.567963\n0.672302 0.951019 0.567963\n0.709320 0.951813 0.567963\n0.743469 0.952606 0.567963\n0.774719 0.953400 0.567963\n0.803009 0.954193 0.567963\n0.828644 0.954926 0.567963\n0.851868 0.955627 0.567963\n0.872986 0.956390 0.567963\n0.892212 0.957092 0.567963\n0.909668 0.957733 0.567963\n0.925568 0.958435 0.567963\n0.940033 0.959106 0.567963\n0.953125 0.959747 0.567963\n0.964966 0.960388 0.567963\n0.975586 0.960968 0.567963\n0.985046 0.961548 0.567963\n0.993378 0.962158 0.567963\n0.122406 0.951996 0.567963\n0.148743 0.952881 0.567963\n0.176514 0.953735 0.567963\n0.205872 0.954590 0.567963\n0.236969 0.955414 0.567963\n0.270111 0.956299 0.567963\n0.305420 0.957092 0.567963\n0.342773 0.957886 0.567963\n0.382019 0.958679 0.567963\n0.423035 0.959503 0.567963\n0.465363 0.960266 0.567963\n0.508881 0.961029 0.567963\n0.552917 0.961792 0.567963\n0.596039 0.962524 0.567963\n0.637329 0.963287 0.567963\n0.676422 0.963989 0.567963\n0.713074 0.964691 0.567963\n0.746948 0.965393 0.567963\n0.777771 0.966034 0.567963\n0.805725 0.966736 0.567963\n0.831085 0.967377 0.567963\n0.854034 0.967987 0.567963\n0.874908 0.968597 0.567963\n0.893921 0.969238 0.567963\n0.911224 0.969818 0.567963\n0.926971 0.970428 0.567963\n0.941254 0.970947 0.567963\n0.954224 0.971558 0.567963\n0.965942 0.972076 0.567963\n0.976410 0.972595 0.567963\n0.985779 0.973114 0.567963\n0.993958 0.973602 0.567963\n0.125519 0.964966 0.567963\n0.152008 0.965729 0.567963\n0.179962 0.966522 0.567963\n0.209534 0.967285 0.567963\n0.240845 0.967987 0.567963\n0.274170 0.968781 0.567963\n0.309692 0.969482 0.567963\n0.347198 0.970184 0.567963\n0.386688 0.970886 0.567963\n0.427765 0.971588 0.567963\n0.470184 0.972260 0.567963\n0.513733 0.972931 0.567963\n0.557709 0.973572 0.567963\n0.600586 0.974243 0.567963\n0.641663 0.974884 0.567963\n0.680420 0.975494 0.567963\n0.716736 0.976105 0.567963\n0.750244 0.976715 0.567963\n0.780731 0.977264 0.567963\n0.808350 0.977875 0.567963\n0.833435 0.978424 0.567963\n0.856140 0.978943 0.567963\n0.876801 0.979492 0.567963\n0.895569 0.980011 0.567963\n0.912659 0.980530 0.567963\n0.928253 0.981018 0.567963\n0.942383 0.981506 0.567963\n0.955231 0.981995 0.567963\n0.966827 0.982452 0.567963\n0.977203 0.982880 0.567963\n0.986420 0.983307 0.567963\n0.994537 0.983734 0.567963\n0.043274 0.004578 0.657593\n0.065247 0.005402 0.657104\n0.088196 0.006195 0.656555\n0.112213 0.007050 0.656036\n0.137421 0.007935 0.655457\n0.164032 0.008881 0.654907\n0.192047 0.009796 0.654266\n0.221771 0.010773 0.653656\n0.253387 0.011780 0.652924\n0.287018 0.012787 0.652283\n0.322845 0.013824 0.651520\n0.360657 0.014893 0.650787\n0.400269 0.015961 0.650085\n0.441498 0.017090 0.649231\n0.484039 0.018219 0.648468\n0.527649 0.019379 0.647614\n0.571411 0.020569 0.646790\n0.613556 0.021759 0.645966\n0.653961 0.023010 0.645081\n0.692078 0.024261 0.644196\n0.727570 0.025482 0.643280\n0.760284 0.026794 0.642365\n0.790039 0.028107 0.641449\n0.816986 0.029388 0.640564\n0.841492 0.030762 0.639587\n0.863678 0.032104 0.638611\n0.883881 0.033478 0.637665\n0.902283 0.034851 0.636688\n0.919037 0.036255 0.635712\n0.934296 0.037720 0.634735\n0.948151 0.039124 0.633728\n0.960663 0.040588 0.632721\n0.044861 0.025879 0.656555\n0.066956 0.026794 0.656036\n0.090027 0.027710 0.655487\n0.114227 0.028625 0.654938\n0.139587 0.029602 0.654266\n0.166351 0.030640 0.653656\n0.194580 0.031647 0.652985\n0.224548 0.032684 0.652313\n0.256348 0.033813 0.651520\n0.290253 0.034851 0.650848\n0.326355 0.036011 0.650085\n0.364410 0.037170 0.649231\n0.404236 0.038361 0.648499\n0.445740 0.039520 0.647675\n0.488434 0.040741 0.646820\n0.532227 0.042023 0.645966\n0.575897 0.043304 0.645111\n0.617981 0.044556 0.644257\n0.658173 0.045898 0.643372\n0.696106 0.047241 0.642365\n0.731384 0.048584 0.641479\n0.763794 0.049957 0.640594\n0.793243 0.051361 0.639587\n0.819885 0.052734 0.638672\n0.844147 0.054199 0.637665\n0.866119 0.055634 0.636719\n0.886139 0.057068 0.635773\n0.904388 0.058563 0.634735\n0.920959 0.060089 0.633789\n0.936035 0.061554 0.632751\n0.949738 0.063141 0.631744\n0.962097 0.064606 0.630768\n0.046570 0.048187 0.655487\n0.068756 0.049164 0.654938\n0.092010 0.050171 0.654327\n0.116333 0.051208 0.653687\n0.141846 0.052307 0.653015\n0.168762 0.053375 0.652313\n0.197266 0.054504 0.651550\n0.227386 0.055634 0.650879\n0.259460 0.056854 0.650116\n0.293640 0.058044 0.649323\n0.329987 0.059265 0.648529\n0.368286 0.060486 0.647705\n0.408356 0.061768 0.646881\n0.450104 0.063110 0.645996\n0.492950 0.064392 0.645172\n0.536896 0.065735 0.644257\n0.580536 0.067139 0.643372\n0.622498 0.068481 0.642456\n0.662537 0.069885 0.641510\n0.700195 0.071350 0.640594\n0.735199 0.072754 0.639648\n0.767303 0.074249 0.638672\n0.796448 0.075745 0.637726\n0.822876 0.077209 0.636749\n0.846832 0.078766 0.635773\n0.868591 0.080292 0.634796\n0.888428 0.081848 0.633789\n0.906464 0.083435 0.632751\n0.922882 0.084991 0.631775\n0.937805 0.086639 0.630768\n0.951294 0.088287 0.629761\n0.963531 0.089905 0.628784\n0.048340 0.071564 0.654358\n0.070679 0.072662 0.653687\n0.094055 0.073792 0.653015\n0.118530 0.074890 0.652374\n0.144226 0.076080 0.651611\n0.171417 0.077271 0.650879\n0.200012 0.078491 0.650146\n0.230347 0.079742 0.649323\n0.262756 0.081024 0.648529\n0.297211 0.082306 0.647705\n0.333801 0.083649 0.646881\n0.372314 0.084961 0.646088\n0.412720 0.086365 0.645172\n0.454559 0.087799 0.644287\n0.497620 0.089172 0.643402\n0.541718 0.090637 0.642487\n0.585205 0.092133 0.641510\n0.627045 0.093567 0.640656\n0.666901 0.095123 0.639679\n0.704315 0.096649 0.638702\n0.739014 0.098206 0.637756\n0.770844 0.099792 0.636841\n0.799652 0.101318 0.635803\n0.825775 0.102966 0.634857\n0.849548 0.104614 0.633820\n0.871063 0.106201 0.632874\n0.890686 0.107910 0.631836\n0.908508 0.109589 0.630829\n0.924774 0.111237 0.629822\n0.939514 0.112976 0.628815\n0.952911 0.114716 0.627808\n0.964966 0.116425 0.626801\n0.050232 0.096161 0.653076\n0.072723 0.097351 0.652374\n0.096222 0.098572 0.651611\n0.120850 0.099792 0.650940\n0.146759 0.101105 0.650146\n0.174072 0.102417 0.649323\n0.202942 0.103729 0.648621\n0.233551 0.105072 0.647766\n0.266113 0.106476 0.646942\n0.300873 0.107880 0.646088\n0.337738 0.109344 0.645203\n0.376556 0.110779 0.644318\n0.417145 0.112274 0.643433\n0.459259 0.113800 0.642487\n0.502533 0.115295 0.641602\n0.546631 0.116852 0.640656\n0.590027 0.118469 0.639679\n0.631683 0.119995 0.638733\n0.671326 0.121674 0.637787\n0.708527 0.123352 0.636841\n0.742859 0.124969 0.635834\n0.774414 0.126709 0.634857\n0.802917 0.128357 0.633850\n0.828796 0.130096 0.632874\n0.852234 0.131836 0.631836\n0.873535 0.133575 0.630890\n0.892944 0.135345 0.629852\n0.910614 0.137177 0.628815\n0.926636 0.138947 0.627869\n0.941254 0.140778 0.626831\n0.954498 0.142639 0.625854\n0.966400 0.144440 0.624847\n0.052246 0.122070 0.651672\n0.074890 0.123383 0.650940\n0.098511 0.124725 0.650146\n0.123322 0.126068 0.649384\n0.149353 0.127472 0.648621\n0.176880 0.128906 0.647766\n0.205933 0.130341 0.646973\n0.236816 0.131805 0.646118\n0.269684 0.133301 0.645264\n0.304688 0.134827 0.644318\n0.341827 0.136414 0.643433\n0.380890 0.137970 0.642548\n0.421692 0.139587 0.641632\n0.464020 0.141235 0.640686\n0.507477 0.142853 0.639771\n0.551697 0.144531 0.638824\n0.594910 0.146240 0.637787\n0.636414 0.147980 0.636871\n0.675842 0.149750 0.635895\n0.712646 0.151459 0.634888\n0.746796 0.153259 0.633911\n0.777985 0.155090 0.632904\n0.806152 0.156891 0.631866\n0.831757 0.158752 0.630890\n0.854980 0.160645 0.629852\n0.876038 0.162476 0.628906\n0.895233 0.164398 0.627869\n0.912659 0.166351 0.626831\n0.928528 0.168243 0.625885\n0.942993 0.170227 0.624847\n0.956024 0.172150 0.623932\n0.967804 0.174133 0.622894\n0.054352 0.149414 0.650208\n0.077087 0.150909 0.649445\n0.100891 0.152374 0.648651\n0.125854 0.153809 0.647797\n0.152100 0.155365 0.646973\n0.179779 0.156921 0.646118\n0.209076 0.158478 0.645264\n0.240204 0.160095 0.644348\n0.273315 0.161713 0.643463\n0.308655 0.163361 0.642578\n0.346069 0.165100 0.641632\n0.385315 0.166748 0.640717\n0.426422 0.168549 0.639771\n0.468933 0.170319 0.638824\n0.512482 0.172058 0.637817\n0.556793 0.173920 0.636902\n0.599884 0.175720 0.635895\n0.641205 0.177551 0.634918\n0.680359 0.179474 0.633911\n0.716919 0.181335 0.632965\n0.750702 0.183289 0.631927\n0.781586 0.185242 0.630920\n0.809418 0.187195 0.629883\n0.834747 0.189209 0.628937\n0.857666 0.191193 0.627899\n0.878510 0.193176 0.626923\n0.897522 0.195221 0.625946\n0.914764 0.197327 0.624939\n0.930420 0.199341 0.623932\n0.944702 0.201416 0.622986\n0.957550 0.203522 0.621979\n0.969208 0.205688 0.621033\n0.056519 0.178497 0.648682\n0.079407 0.180084 0.647797\n0.103394 0.181671 0.647034\n0.128510 0.183289 0.646149\n0.154938 0.184967 0.645294\n0.182800 0.186646 0.644440\n0.212341 0.188385 0.643524\n0.243744 0.190125 0.642578\n0.277100 0.191864 0.641663\n0.312714 0.193695 0.640778\n0.350433 0.195557 0.639801\n0.389954 0.197388 0.638855\n0.431274 0.199280 0.637909\n0.473938 0.201202 0.636902\n0.517670 0.203125 0.635925\n0.561920 0.205109 0.634918\n0.604828 0.207062 0.633942\n0.645996 0.209076 0.632965\n0.684967 0.211121 0.631927\n0.721161 0.213165 0.630981\n0.754669 0.215240 0.629913\n0.785126 0.217346 0.628937\n0.812683 0.219452 0.627991\n0.837708 0.221558 0.626953\n0.860413 0.223755 0.625946\n0.881012 0.225922 0.624969\n0.899750 0.228088 0.623962\n0.916809 0.230255 0.623016\n0.932312 0.232513 0.622040\n0.946411 0.234772 0.621063\n0.959106 0.236938 0.620087\n0.970581 0.239258 0.619110\n0.058807 0.209381 0.647064\n0.081818 0.211151 0.646179\n0.105957 0.212891 0.645294\n0.131226 0.214691 0.644440\n0.157837 0.216492 0.643524\n0.185944 0.218323 0.642609\n0.215698 0.220184 0.641724\n0.247345 0.222137 0.640778\n0.281006 0.224030 0.639832\n0.316925 0.226013 0.638885\n0.354889 0.228027 0.637909\n0.394653 0.230042 0.636932\n0.436157 0.232056 0.635986\n0.479126 0.234192 0.634979\n0.522980 0.236237 0.634003\n0.567169 0.238373 0.632996\n0.609924 0.240540 0.632019\n0.650879 0.242706 0.631012\n0.689514 0.244934 0.630005\n0.725464 0.247070 0.628998\n0.758606 0.249390 0.627991\n0.788696 0.251617 0.626953\n0.815948 0.253876 0.625977\n0.840637 0.256226 0.625000\n0.863098 0.258545 0.623962\n0.883453 0.260834 0.623016\n0.902008 0.263214 0.622040\n0.918823 0.265564 0.621124\n0.934174 0.267944 0.620117\n0.948090 0.270386 0.619110\n0.960632 0.272797 0.618195\n0.971924 0.275269 0.617279\n0.061127 0.242432 0.645355\n0.084351 0.244354 0.644470\n0.108582 0.246185 0.643585\n0.134064 0.248199 0.642670\n0.160889 0.250183 0.641724\n0.189178 0.252197 0.640839\n0.219177 0.254242 0.639832\n0.251068 0.256348 0.638885\n0.285065 0.258423 0.637939\n0.321198 0.260559 0.636993\n0.359467 0.262787 0.635986\n0.399536 0.264923 0.635010\n0.441193 0.267212 0.634003\n0.484222 0.269409 0.633026\n0.528320 0.271698 0.632019\n0.572449 0.274048 0.631012\n0.615051 0.276337 0.630035\n0.655731 0.278717 0.629028\n0.694092 0.281128 0.628021\n0.729706 0.283478 0.627045\n0.762512 0.285950 0.626007\n0.792236 0.288422 0.625000\n0.819153 0.290802 0.623993\n0.843597 0.293335 0.623047\n0.865753 0.295868 0.622101\n0.885864 0.298309 0.621124\n0.904205 0.300873 0.620117\n0.920868 0.303375 0.619171\n0.936005 0.306000 0.618225\n0.949738 0.308563 0.617310\n0.962158 0.311127 0.616394\n0.973297 0.313751 0.615479\n0.063629 0.277802 0.643646\n0.086945 0.279907 0.642731\n0.111328 0.281921 0.641754\n0.136993 0.284119 0.640869\n0.164001 0.286316 0.639923\n0.192505 0.288483 0.638916\n0.222748 0.290771 0.637970\n0.254883 0.293060 0.636993\n0.289185 0.295288 0.636017\n0.325653 0.297699 0.635040\n0.364105 0.300018 0.634064\n0.404419 0.302429 0.633026\n0.446320 0.304840 0.632080\n0.489502 0.307220 0.631042\n0.533752 0.309753 0.630035\n0.577789 0.312225 0.629028\n0.620239 0.314697 0.628052\n0.660645 0.317291 0.627045\n0.698669 0.319855 0.626007\n0.733948 0.322418 0.625061\n0.766388 0.325043 0.624084\n0.795776 0.327698 0.623047\n0.822388 0.330322 0.622131\n0.846497 0.332947 0.621124\n0.868378 0.335571 0.620178\n0.888306 0.338287 0.619232\n0.906433 0.341003 0.618225\n0.922852 0.343658 0.617371\n0.937836 0.346436 0.616425\n0.951385 0.349182 0.615479\n0.963593 0.351868 0.614624\n0.974579 0.354645 0.613739\n0.066132 0.315704 0.641815\n0.089600 0.317963 0.640869\n0.114166 0.320251 0.639954\n0.139954 0.322601 0.639008\n0.167206 0.325012 0.637970\n0.195923 0.327332 0.637024\n0.226410 0.329773 0.636078\n0.258820 0.332275 0.635040\n0.293365 0.334717 0.634094\n0.330139 0.337280 0.633087\n0.368835 0.339783 0.632111\n0.409454 0.342346 0.631134\n0.451538 0.344940 0.630127\n0.494904 0.347565 0.629059\n0.539276 0.350250 0.628082\n0.583130 0.352905 0.627075\n0.625336 0.355530 0.626068\n0.665527 0.358246 0.625092\n0.703278 0.361053 0.624084\n0.738190 0.363770 0.623077\n0.770264 0.366516 0.622131\n0.799316 0.369354 0.621155\n0.825531 0.372070 0.620239\n0.849396 0.374908 0.619232\n0.871002 0.377686 0.618317\n0.890686 0.380524 0.617371\n0.908569 0.383392 0.616425\n0.924835 0.386200 0.615540\n0.939606 0.389099 0.614624\n0.953033 0.391968 0.613739\n0.965057 0.394806 0.612915\n0.975891 0.397705 0.612030\n0.068726 0.356018 0.639954\n0.092346 0.358521 0.639008\n0.117065 0.360931 0.638031\n0.143066 0.363495 0.637054\n0.170502 0.366028 0.636078\n0.199432 0.368561 0.635071\n0.230164 0.371155 0.634125\n0.262909 0.373840 0.633148\n0.297699 0.376465 0.632111\n0.334717 0.379181 0.631134\n0.373749 0.381836 0.630157\n0.414520 0.384583 0.629150\n0.456879 0.387421 0.628082\n0.500397 0.390076 0.627136\n0.544800 0.392914 0.626129\n0.588531 0.395782 0.625092\n0.630493 0.398590 0.624115\n0.670380 0.401459 0.623138\n0.707825 0.404388 0.622162\n0.742432 0.407196 0.621185\n0.774078 0.410156 0.620239\n0.802734 0.412994 0.619263\n0.828674 0.415924 0.618347\n0.852234 0.418945 0.617401\n0.873566 0.421783 0.616486\n0.893036 0.424774 0.615601\n0.910706 0.427795 0.614655\n0.926758 0.430664 0.613800\n0.941376 0.433655 0.612946\n0.954590 0.436707 0.612122\n0.966492 0.439636 0.611298\n0.977142 0.442596 0.610474\n0.071381 0.398529 0.638092\n0.095154 0.401184 0.637115\n0.119995 0.403809 0.636139\n0.146210 0.406433 0.635162\n0.173859 0.409180 0.634125\n0.203033 0.411926 0.633179\n0.234039 0.414673 0.632141\n0.266907 0.417419 0.631165\n0.302124 0.420258 0.630188\n0.339417 0.423096 0.629181\n0.378632 0.425964 0.628174\n0.419678 0.428833 0.627136\n0.462219 0.431793 0.626129\n0.505890 0.434631 0.625214\n0.550323 0.437592 0.624176\n0.593872 0.440582 0.623169\n0.635651 0.443481 0.622223\n0.675293 0.446472 0.621246\n0.712402 0.449493 0.620270\n0.746582 0.452484 0.619354\n0.777893 0.455536 0.618347\n0.806152 0.458527 0.617462\n0.831818 0.461578 0.616516\n0.855072 0.464661 0.615601\n0.876190 0.467621 0.614655\n0.895386 0.470734 0.613831\n0.912842 0.473785 0.612946\n0.928680 0.476807 0.612152\n0.943115 0.479889 0.611298\n0.956146 0.482971 0.610504\n0.967896 0.485992 0.609711\n0.978394 0.488983 0.608948\n0.074097 0.442993 0.636139\n0.098022 0.445770 0.635162\n0.123077 0.448486 0.634155\n0.149445 0.451324 0.633179\n0.177277 0.454224 0.632141\n0.206665 0.457092 0.631195\n0.237915 0.459991 0.630188\n0.271149 0.462860 0.629211\n0.306580 0.465790 0.628204\n0.344177 0.468811 0.627167\n0.383667 0.471741 0.626190\n0.424927 0.474792 0.625214\n0.467621 0.477814 0.624207\n0.511444 0.480804 0.623230\n0.555878 0.483856 0.622223\n0.599243 0.486938 0.621246\n0.640778 0.489960 0.620300\n0.680084 0.493073 0.619354\n0.716827 0.496124 0.618378\n0.750702 0.499237 0.617462\n0.781647 0.502380 0.616516\n0.809570 0.505432 0.615631\n0.834869 0.508575 0.614746\n0.857819 0.511719 0.613831\n0.878662 0.514801 0.612976\n0.897675 0.517944 0.612152\n0.914917 0.521088 0.611298\n0.930573 0.524170 0.610535\n0.944794 0.527252 0.609741\n0.957672 0.530304 0.608978\n0.969238 0.533447 0.608215\n0.979614 0.536591 0.608154\n0.076874 0.488983 0.634247\n0.100952 0.491913 0.633240\n0.126160 0.494781 0.632233\n0.152740 0.497742 0.631195\n0.180725 0.500671 0.630249\n0.210388 0.503723 0.629211\n0.241913 0.506744 0.628204\n0.275391 0.509705 0.627228\n0.311157 0.512756 0.626190\n0.348999 0.515808 0.625244\n0.388733 0.518921 0.624237\n0.430237 0.521973 0.623230\n0.473114 0.525116 0.622253\n0.517059 0.528168 0.621307\n0.561462 0.531372 0.620300\n0.604553 0.534485 0.619385\n0.645874 0.537567 0.618408\n0.684906 0.540741 0.617493\n0.721252 0.543793 0.616547\n0.754822 0.546997 0.615662\n0.785309 0.550140 0.614777\n0.812897 0.553162 0.613892\n0.837921 0.556274 0.613068\n0.860596 0.559387 0.612152\n0.881165 0.562439 0.611359\n0.899933 0.565521 0.610535\n0.916992 0.568604 0.609741\n0.932434 0.571594 0.608978\n0.946472 0.574615 0.608215\n0.959167 0.577606 0.608154\n0.970612 0.580566 0.608154\n0.980804 0.583588 0.608154\n0.079742 0.536316 0.632263\n0.103943 0.539307 0.631256\n0.129364 0.542267 0.630280\n0.156097 0.545288 0.629303\n0.184357 0.548309 0.628265\n0.214203 0.551270 0.627228\n0.245941 0.554352 0.626221\n0.279724 0.557312 0.625305\n0.315765 0.560394 0.624237\n0.353912 0.563507 0.623260\n0.393860 0.566498 0.622314\n0.435547 0.569550 0.621338\n0.478577 0.572601 0.620392\n0.522644 0.575653 0.619415\n0.567017 0.578705 0.618408\n0.609955 0.581757 0.617493\n0.650970 0.584778 0.616608\n0.689667 0.587830 0.615662\n0.725647 0.590790 0.614777\n0.758850 0.593842 0.613922\n0.788940 0.596832 0.613068\n0.816162 0.599762 0.612183\n0.840851 0.602783 0.611389\n0.863281 0.605774 0.610535\n0.883606 0.608643 0.609802\n0.902100 0.611603 0.609009\n0.918945 0.614532 0.608246\n0.934235 0.617371 0.608154\n0.948120 0.620270 0.608154\n0.960602 0.623047 0.608154\n0.971893 0.625885 0.608154\n0.981964 0.628723 0.608154\n0.082611 0.583160 0.630280\n0.106995 0.586151 0.629303\n0.132568 0.588989 0.628296\n0.159485 0.591949 0.627289\n0.187927 0.594849 0.626312\n0.218048 0.597809 0.625305\n0.250092 0.600769 0.624329\n0.284149 0.603699 0.623322\n0.320465 0.606628 0.622314\n0.358887 0.609619 0.621338\n0.399017 0.612488 0.620422\n0.440918 0.615417 0.619415\n0.484161 0.618378 0.618500\n0.528290 0.621307 0.617554\n0.572540 0.624207 0.616608\n0.615204 0.627075 0.615723\n0.656006 0.630005 0.614838\n0.694366 0.632904 0.613922\n0.730042 0.635773 0.613098\n0.762787 0.638611 0.612213\n0.792542 0.641479 0.611389\n0.819427 0.644257 0.610596\n0.843781 0.647095 0.609802\n0.865906 0.649902 0.609009\n0.885986 0.652618 0.608307\n0.904266 0.655396 0.608154\n0.920898 0.658142 0.608154\n0.935974 0.660767 0.608154\n0.949677 0.663452 0.608154\n0.962067 0.666077 0.608154\n0.973175 0.668701 0.608154\n0.983063 0.671295 0.608154\n0.085571 0.628296 0.628357\n0.110138 0.631134 0.627319\n0.135834 0.633911 0.626343\n0.162994 0.636719 0.625336\n0.191559 0.639496 0.624359\n0.221985 0.642303 0.623322\n0.254242 0.645172 0.622375\n0.288605 0.647888 0.621368\n0.325226 0.650757 0.620422\n0.363831 0.653534 0.619476\n0.404266 0.656311 0.618530\n0.446320 0.659119 0.617615\n0.489716 0.661896 0.616669\n0.533936 0.664581 0.615753\n0.578064 0.667389 0.614838\n0.620453 0.670044 0.613983\n0.660980 0.672791 0.613098\n0.699036 0.675507 0.612213\n0.734283 0.678192 0.611450\n0.766693 0.680878 0.610657\n0.796021 0.683502 0.609863\n0.822540 0.686066 0.609070\n0.846649 0.688721 0.608307\n0.868500 0.691284 0.608154\n0.888336 0.693878 0.608154\n0.906403 0.696381 0.608154\n0.922821 0.698883 0.608154\n0.937744 0.701385 0.608154\n0.951233 0.703827 0.608154\n0.963440 0.706268 0.608154\n0.974396 0.708649 0.608154\n0.984131 0.711060 0.608154\n0.088562 0.671051 0.626343\n0.113190 0.673645 0.625397\n0.139160 0.676331 0.624359\n0.166473 0.679047 0.623352\n0.195312 0.681671 0.622406\n0.225922 0.684296 0.621399\n0.258453 0.686981 0.620453\n0.293121 0.689545 0.619537\n0.329987 0.692200 0.618530\n0.368896 0.694794 0.617615\n0.409485 0.697388 0.616699\n0.451721 0.700012 0.615753\n0.495178 0.702515 0.614868\n0.539612 0.705078 0.613983\n0.583466 0.707672 0.613129\n0.625702 0.710114 0.612305\n0.665894 0.712646 0.611450\n0.703613 0.715179 0.610657\n0.738495 0.717621 0.609894\n0.770508 0.720062 0.609070\n0.799469 0.722534 0.608307\n0.825653 0.724884 0.608154\n0.849457 0.727295 0.608154\n0.871033 0.729675 0.608154\n0.890625 0.731964 0.608154\n0.908447 0.734283 0.608154\n0.924652 0.736511 0.608154\n0.939392 0.738770 0.608154\n0.952728 0.741028 0.608154\n0.964752 0.743195 0.608154\n0.975586 0.745361 0.608154\n0.985199 0.747528 0.608154\n0.091583 0.710999 0.624390\n0.116425 0.713409 0.623444\n0.142548 0.715942 0.622406\n0.170013 0.718384 0.621399\n0.199066 0.720825 0.620483\n0.229950 0.723297 0.619537\n0.262756 0.725769 0.618591\n0.297699 0.728119 0.617645\n0.334839 0.730560 0.616699\n0.373932 0.733002 0.615814\n0.414764 0.735352 0.614899\n0.457153 0.737762 0.614014\n0.500732 0.740051 0.613159\n0.545227 0.742401 0.612335\n0.588867 0.744751 0.611481\n0.630829 0.746979 0.610687\n0.670746 0.749329 0.609894\n0.708099 0.751587 0.609100\n0.742615 0.753754 0.608368\n0.774200 0.756012 0.608154\n0.802795 0.758209 0.608154\n0.828674 0.760315 0.608154\n0.852173 0.762512 0.608154\n0.873444 0.764587 0.608154\n0.892853 0.766693 0.608154\n0.910461 0.768738 0.608154\n0.926453 0.770752 0.608154\n0.941040 0.772797 0.608154\n0.954224 0.774780 0.608154\n0.966064 0.776642 0.608154\n0.976746 0.778625 0.608154\n0.986176 0.780518 0.608154\n0.094666 0.747742 0.622467\n0.119598 0.749969 0.621521\n0.145905 0.752258 0.620544\n0.173615 0.754517 0.619568\n0.202911 0.756775 0.618622\n0.234009 0.759003 0.617676\n0.267059 0.761200 0.616730\n0.302246 0.763397 0.615875\n0.339661 0.765625 0.614899\n0.378967 0.767731 0.614105\n0.420044 0.769928 0.613159\n0.462616 0.772064 0.612335\n0.506287 0.774139 0.611542\n0.550720 0.776276 0.610687\n0.594238 0.778351 0.609924\n0.635925 0.780334 0.609161\n0.675507 0.782440 0.608368\n0.712555 0.784485 0.608154\n0.746674 0.786407 0.608154\n0.777893 0.788452 0.608154\n0.806091 0.790405 0.608154\n0.831635 0.792267 0.608154\n0.854828 0.794220 0.608154\n0.875885 0.796021 0.608154\n0.895020 0.797913 0.608154\n0.912415 0.799744 0.608154\n0.928223 0.801514 0.608154\n0.942627 0.803314 0.608154\n0.955627 0.805084 0.608154\n0.967346 0.806793 0.608154\n0.977844 0.808472 0.608154\n0.987183 0.810150 0.608154\n0.097748 0.781067 0.620544\n0.122864 0.783081 0.619629\n0.149323 0.785126 0.618622\n0.177246 0.787201 0.617676\n0.206757 0.789185 0.616791\n0.238037 0.791199 0.615875\n0.271362 0.793213 0.614990\n0.306885 0.795166 0.614105\n0.344543 0.797119 0.613251\n0.384033 0.799042 0.612366\n0.425293 0.801025 0.611542\n0.467987 0.802917 0.610718\n0.511810 0.804749 0.609924\n0.556244 0.806671 0.609161\n0.599518 0.808533 0.608429\n0.640930 0.810364 0.608154\n0.680176 0.812195 0.608154\n0.716858 0.814026 0.608154\n0.750610 0.815765 0.608154\n0.781433 0.817505 0.608154\n0.809235 0.819244 0.608154\n0.834534 0.820953 0.608154\n0.857422 0.822693 0.608154\n0.878204 0.824280 0.608154\n0.897125 0.825928 0.608154\n0.914337 0.827606 0.608154\n0.929932 0.829132 0.608154\n0.944122 0.830780 0.608154\n0.957001 0.832306 0.608154\n0.968536 0.833801 0.608154\n0.978912 0.835297 0.608154\n0.988068 0.836761 0.608154\n0.100861 0.811005 0.618683\n0.126129 0.812866 0.617737\n0.152771 0.814697 0.616791\n0.180908 0.816528 0.615906\n0.210571 0.818359 0.615021\n0.242126 0.820160 0.614136\n0.275665 0.821899 0.613281\n0.311523 0.823700 0.612396\n0.349396 0.825470 0.611603\n0.389099 0.827179 0.610779\n0.430603 0.828918 0.609955\n0.473419 0.830658 0.609161\n0.517303 0.832306 0.608459\n0.561676 0.833984 0.608154\n0.604736 0.835663 0.608154\n0.645844 0.837280 0.608154\n0.684784 0.838928 0.608154\n0.721069 0.840546 0.608154\n0.754486 0.842102 0.608154\n0.784912 0.843689 0.608154\n0.812378 0.845215 0.608154\n0.837311 0.846741 0.608154\n0.859955 0.848236 0.608154\n0.880493 0.849701 0.608154\n0.899139 0.851135 0.608154\n0.916199 0.852631 0.608154\n0.931580 0.854004 0.608154\n0.945648 0.855408 0.608154\n0.958313 0.856781 0.608154\n0.969727 0.858124 0.608154\n0.979950 0.859436 0.608154\n0.988953 0.860687 0.608154\n0.103973 0.837952 0.616821\n0.129456 0.839600 0.615936\n0.156281 0.841278 0.615021\n0.184540 0.842926 0.614136\n0.214478 0.844543 0.613281\n0.246216 0.846191 0.612396\n0.280060 0.847748 0.611633\n0.316132 0.849365 0.610779\n0.354279 0.850952 0.609955\n0.394196 0.852509 0.609222\n0.435822 0.854034 0.608459\n0.478760 0.855591 0.608154\n0.522797 0.857086 0.608154\n0.566956 0.858612 0.608154\n0.609863 0.860077 0.608154\n0.650665 0.861511 0.608154\n0.689270 0.863007 0.608154\n0.725189 0.864410 0.608154\n0.758209 0.865814 0.608154\n0.788239 0.867218 0.608154\n0.815430 0.868591 0.608154\n0.840027 0.869965 0.608154\n0.862396 0.871307 0.608154\n0.882660 0.872559 0.608154\n0.901154 0.873901 0.608154\n0.917938 0.875183 0.608154\n0.933167 0.876373 0.608154\n0.947052 0.877625 0.608154\n0.959564 0.878845 0.608154\n0.970856 0.880035 0.608154\n0.980957 0.881195 0.608154\n0.989838 0.882324 0.608154\n0.107147 0.862244 0.615051\n0.132751 0.863708 0.614166\n0.159729 0.865204 0.613342\n0.188263 0.866760 0.612396\n0.218353 0.868195 0.611633\n0.250366 0.869659 0.610779\n0.284454 0.871063 0.610046\n0.320770 0.872467 0.609222\n0.359131 0.873932 0.608459\n0.399261 0.875305 0.608154\n0.441010 0.876709 0.608154\n0.484161 0.878082 0.608154\n0.528168 0.879425 0.608154\n0.572266 0.880737 0.608154\n0.614777 0.882050 0.608154\n0.655396 0.883392 0.608154\n0.693695 0.884674 0.608154\n0.729218 0.885925 0.608154\n0.761871 0.887177 0.608154\n0.791534 0.888458 0.608154\n0.818359 0.889648 0.608154\n0.842682 0.890869 0.608154\n0.864746 0.892029 0.608154\n0.884796 0.893250 0.608154\n0.903046 0.894379 0.608154\n0.919647 0.895508 0.608154\n0.934723 0.896576 0.608154\n0.948425 0.897705 0.608154\n0.960785 0.898743 0.608154\n0.971924 0.899780 0.608154\n0.981873 0.900787 0.608154\n0.990631 0.901794 0.608154\n0.110321 0.884155 0.613342\n0.136047 0.885468 0.612488\n0.163239 0.886841 0.611633\n0.191864 0.888153 0.610809\n0.222260 0.889465 0.610046\n0.254517 0.890808 0.609253\n0.288879 0.892059 0.608490\n0.325378 0.893372 0.608154\n0.363922 0.894623 0.608154\n0.404266 0.895905 0.608154\n0.446198 0.897125 0.608154\n0.489380 0.898376 0.608154\n0.533508 0.899567 0.608154\n0.577393 0.900757 0.608154\n0.619690 0.901917 0.608154\n0.660004 0.903107 0.608154\n0.697968 0.904236 0.608154\n0.733124 0.905365 0.608154\n0.765381 0.906525 0.608154\n0.794678 0.907593 0.608154\n0.821198 0.908691 0.608154\n0.845215 0.909760 0.608154\n0.867035 0.910828 0.608154\n0.886841 0.911835 0.608154\n0.904907 0.912842 0.608154\n0.921265 0.913818 0.608154\n0.936218 0.914825 0.608154\n0.949738 0.915802 0.608154\n0.961975 0.916718 0.608154\n0.972992 0.917633 0.608154\n0.982788 0.918518 0.608154\n0.991425 0.919403 0.608154\n0.113495 0.903900 0.611664\n0.139404 0.905090 0.610870\n0.166718 0.906311 0.610077\n0.195557 0.907501 0.609314\n0.226105 0.908691 0.608582\n0.258667 0.909912 0.608154\n0.293243 0.911041 0.608154\n0.329987 0.912170 0.608154\n0.368744 0.913300 0.608154\n0.409271 0.914459 0.608154\n0.451324 0.915588 0.608154\n0.494629 0.916687 0.608154\n0.538757 0.917725 0.608154\n0.582458 0.918793 0.608154\n0.624512 0.919830 0.608154\n0.664490 0.920898 0.608154\n0.702118 0.921906 0.608154\n0.736938 0.922913 0.608154\n0.768829 0.923920 0.608154\n0.797760 0.924896 0.608154\n0.823914 0.925842 0.608154\n0.847687 0.926788 0.608154\n0.869232 0.927734 0.608154\n0.888824 0.928589 0.608154\n0.906677 0.929504 0.608154\n0.922882 0.930359 0.608154\n0.937622 0.931244 0.608154\n0.951019 0.932098 0.608154\n0.963074 0.932922 0.608154\n0.973969 0.933716 0.608154\n0.983612 0.934509 0.608154\n0.992126 0.935272 0.608154\n0.116608 0.921722 0.610107\n0.142731 0.922821 0.609314\n0.170258 0.923920 0.608582\n0.199219 0.924988 0.608154\n0.230011 0.926056 0.608154\n0.262756 0.927124 0.608154\n0.297546 0.928131 0.608154\n0.334564 0.929169 0.608154\n0.373566 0.930206 0.608154\n0.414185 0.931183 0.608154\n0.456390 0.932190 0.608154\n0.499695 0.933136 0.608154\n0.543915 0.934113 0.608154\n0.587433 0.935059 0.608154\n0.629181 0.935974 0.608154\n0.668854 0.936890 0.608154\n0.706146 0.937836 0.608154\n0.740570 0.938721 0.608154\n0.772156 0.939606 0.608154\n0.800720 0.940430 0.608154\n0.826538 0.941284 0.608154\n0.850037 0.942139 0.608154\n0.871338 0.942932 0.608154\n0.890717 0.943756 0.608154\n0.908325 0.944519 0.608154\n0.924377 0.945282 0.608154\n0.938995 0.946045 0.608154\n0.952209 0.946777 0.608154\n0.964172 0.947510 0.608154\n0.974884 0.948212 0.608154\n0.984406 0.948914 0.608154\n0.992828 0.949554 0.608154\n0.119781 0.937836 0.608612\n0.146057 0.938812 0.608154\n0.173737 0.939789 0.608154\n0.202911 0.940765 0.608154\n0.233917 0.941711 0.608154\n0.266846 0.942627 0.608154\n0.301910 0.943542 0.608154\n0.339142 0.944489 0.608154\n0.378265 0.945374 0.608154\n0.419098 0.946259 0.608154\n0.461365 0.947144 0.608154\n0.504822 0.947998 0.608154\n0.548981 0.948853 0.608154\n0.592255 0.949707 0.608154\n0.633728 0.950500 0.608154\n0.673126 0.951324 0.608154\n0.710022 0.952148 0.608154\n0.744080 0.952942 0.608154\n0.775299 0.953705 0.608154\n0.803528 0.954437 0.608154\n0.829102 0.955200 0.608154\n0.852264 0.955902 0.608154\n0.873352 0.956604 0.608154\n0.892517 0.957306 0.608154\n0.910004 0.958008 0.608154\n0.925842 0.958649 0.608154\n0.940247 0.959320 0.608154\n0.953339 0.959961 0.608154\n0.965118 0.960571 0.608154\n0.975739 0.961182 0.608154\n0.985199 0.961792 0.608154\n0.993469 0.962341 0.608154\n0.122955 0.952271 0.608154\n0.149323 0.953186 0.608154\n0.177185 0.954041 0.608154\n0.206573 0.954895 0.608154\n0.237732 0.955750 0.608154\n0.270905 0.956573 0.608154\n0.306244 0.957367 0.608154\n0.343628 0.958191 0.608154\n0.382904 0.958984 0.608154\n0.423889 0.959808 0.608154\n0.466278 0.960541 0.608154\n0.509766 0.961304 0.608154\n0.553833 0.962067 0.608154\n0.596924 0.962830 0.608154\n0.638123 0.963531 0.608154\n0.677185 0.964233 0.608154\n0.713806 0.964935 0.608154\n0.747559 0.965637 0.608154\n0.778351 0.966309 0.608154\n0.806213 0.966949 0.608154\n0.831512 0.967590 0.608154\n0.854462 0.968262 0.608154\n0.875275 0.968872 0.608154\n0.894257 0.969452 0.608154\n0.911499 0.970062 0.608154\n0.927216 0.970612 0.608154\n0.941467 0.971191 0.608154\n0.954437 0.971741 0.608154\n0.966064 0.972260 0.608154\n0.976562 0.972778 0.608154\n0.985901 0.973297 0.608154\n0.994080 0.973785 0.608154\n0.126099 0.965271 0.608154\n0.152618 0.966034 0.608154\n0.180634 0.966797 0.608154\n0.210144 0.967529 0.608154\n0.241547 0.968292 0.608154\n0.274933 0.969025 0.608154\n0.310455 0.969727 0.608154\n0.348022 0.970459 0.608154\n0.387482 0.971130 0.608154\n0.428619 0.971802 0.608154\n0.471130 0.972504 0.608154\n0.514618 0.973175 0.608154\n0.558655 0.973816 0.608154\n0.601501 0.974487 0.608154\n0.642365 0.975067 0.608154\n0.681152 0.975708 0.608154\n0.717438 0.976318 0.608154\n0.750793 0.976929 0.608154\n0.781281 0.977509 0.608154\n0.808807 0.978058 0.608154\n0.833832 0.978638 0.608154\n0.856537 0.979187 0.608154\n0.877167 0.979706 0.608154\n0.895905 0.980225 0.608154\n0.912933 0.980713 0.608154\n0.928497 0.981201 0.608154\n0.942627 0.981689 0.608154\n0.955414 0.982147 0.608154\n0.966980 0.982574 0.608154\n0.977356 0.983032 0.608154\n0.986542 0.983429 0.608154\n0.994629 0.983856 0.608154\n0.043579 0.004852 0.693298\n0.065552 0.005676 0.692871\n0.088501 0.006531 0.692352\n0.112579 0.007385 0.691833\n0.137848 0.008301 0.691254\n0.164429 0.009186 0.690704\n0.192535 0.010162 0.690125\n0.222321 0.011139 0.689514\n0.253906 0.012115 0.688873\n0.287628 0.013184 0.688202\n0.323425 0.014221 0.687531\n0.361359 0.015289 0.686859\n0.401031 0.016388 0.686066\n0.442261 0.017487 0.685364\n0.484863 0.018677 0.684631\n0.528564 0.019836 0.683807\n0.572174 0.021027 0.683044\n0.614410 0.022217 0.682251\n0.654785 0.023468 0.681396\n0.692810 0.024719 0.680573\n0.728302 0.025970 0.679688\n0.760956 0.027283 0.678833\n0.790619 0.028595 0.677979\n0.817535 0.029907 0.677032\n0.841919 0.031250 0.676147\n0.864136 0.032593 0.675293\n0.884338 0.033997 0.674347\n0.902679 0.035370 0.673401\n0.919434 0.036804 0.672485\n0.934631 0.038239 0.671570\n0.948425 0.039673 0.670593\n0.960938 0.041107 0.669647\n0.045166 0.026215 0.692352\n0.067322 0.027130 0.691833\n0.090393 0.028046 0.691284\n0.114594 0.028992 0.690735\n0.139984 0.029999 0.690125\n0.166779 0.031006 0.689545\n0.195068 0.032043 0.688904\n0.225067 0.033112 0.688232\n0.256927 0.034180 0.687531\n0.290863 0.035309 0.686859\n0.326996 0.036407 0.686127\n0.365082 0.037598 0.685364\n0.404999 0.038818 0.684631\n0.446472 0.040009 0.683838\n0.489319 0.041229 0.683044\n0.533112 0.042511 0.682251\n0.576691 0.043762 0.681427\n0.618805 0.045105 0.680573\n0.659027 0.046417 0.679688\n0.696869 0.047729 0.678864\n0.732117 0.049133 0.678009\n0.764404 0.050476 0.677094\n0.793823 0.051880 0.676147\n0.820465 0.053284 0.675293\n0.844635 0.054718 0.674377\n0.866608 0.056183 0.673492\n0.886597 0.057648 0.672516\n0.904755 0.059082 0.671600\n0.921326 0.060638 0.670624\n0.936371 0.062134 0.669708\n0.950012 0.063690 0.668762\n0.962372 0.065216 0.667816\n0.046875 0.048553 0.691376\n0.069122 0.049561 0.690735\n0.092346 0.050568 0.690186\n0.116699 0.051636 0.689545\n0.142334 0.052704 0.688904\n0.169250 0.053802 0.688232\n0.197723 0.054932 0.687531\n0.227936 0.056061 0.686890\n0.260040 0.057251 0.686157\n0.294342 0.058472 0.685394\n0.330688 0.059662 0.684662\n0.369049 0.060974 0.683868\n0.409180 0.062256 0.683105\n0.450836 0.063568 0.682281\n0.493866 0.064880 0.681458\n0.537842 0.066254 0.680603\n0.581360 0.067596 0.679749\n0.623322 0.069031 0.678894\n0.663361 0.070435 0.678009\n0.700928 0.071838 0.677124\n0.735901 0.073303 0.676239\n0.767914 0.074768 0.675323\n0.797058 0.076294 0.674438\n0.823395 0.077789 0.673492\n0.847321 0.079315 0.672546\n0.869049 0.080872 0.671600\n0.888855 0.082458 0.670624\n0.906860 0.084015 0.669739\n0.923218 0.085632 0.668762\n0.938080 0.087250 0.667816\n0.951599 0.088837 0.666901\n0.963806 0.090485 0.665924\n0.048706 0.071991 0.690186\n0.071075 0.073090 0.689575\n0.094452 0.074188 0.688934\n0.118958 0.075348 0.688263\n0.144714 0.076538 0.687592\n0.171844 0.077698 0.686890\n0.200531 0.078949 0.686157\n0.230957 0.080200 0.685486\n0.263336 0.081482 0.684692\n0.297913 0.082825 0.683868\n0.334473 0.084137 0.683136\n0.373169 0.085480 0.682312\n0.413513 0.086884 0.681458\n0.455383 0.088318 0.680634\n0.498596 0.089722 0.679779\n0.542664 0.091217 0.678894\n0.586090 0.092651 0.678040\n0.627991 0.094147 0.677124\n0.667664 0.095673 0.676270\n0.705048 0.097198 0.675415\n0.739777 0.098785 0.674438\n0.771454 0.100311 0.673523\n0.800262 0.101929 0.672546\n0.826385 0.103577 0.671661\n0.850037 0.105164 0.670685\n0.871552 0.106873 0.669739\n0.891083 0.108521 0.668823\n0.908875 0.110168 0.667847\n0.925110 0.111908 0.666901\n0.939819 0.113617 0.665985\n0.953186 0.115356 0.665009\n0.965240 0.117065 0.664062\n0.050629 0.096588 0.688934\n0.073151 0.097809 0.688263\n0.096649 0.099030 0.687592\n0.121307 0.100250 0.686920\n0.147186 0.101562 0.686188\n0.174591 0.102875 0.685486\n0.203491 0.104218 0.684692\n0.234131 0.105560 0.683929\n0.266754 0.106964 0.683136\n0.301605 0.108398 0.682312\n0.338501 0.109833 0.681488\n0.377380 0.111328 0.680634\n0.417999 0.112823 0.679779\n0.460052 0.114319 0.678955\n0.503479 0.115906 0.678070\n0.547516 0.117432 0.677155\n0.590912 0.119019 0.676270\n0.632629 0.120636 0.675415\n0.672150 0.122253 0.674469\n0.709290 0.123932 0.673553\n0.743622 0.125610 0.672607\n0.775024 0.127289 0.671692\n0.803497 0.128998 0.670746\n0.829315 0.130737 0.669769\n0.852722 0.132446 0.668854\n0.874023 0.134247 0.667908\n0.893433 0.136017 0.666931\n0.911011 0.137787 0.665985\n0.927032 0.139648 0.665009\n0.941559 0.141418 0.664093\n0.954742 0.143250 0.663177\n0.966675 0.145172 0.662231\n0.052643 0.122559 0.687653\n0.075287 0.123871 0.686920\n0.098938 0.125214 0.686188\n0.123779 0.126617 0.685516\n0.149872 0.127991 0.684723\n0.177399 0.129395 0.683960\n0.206543 0.130859 0.683167\n0.237427 0.132324 0.682343\n0.270355 0.133881 0.681549\n0.305420 0.135406 0.680695\n0.342590 0.136963 0.679840\n0.381775 0.138580 0.679016\n0.422577 0.140167 0.678070\n0.464874 0.141785 0.677185\n0.508392 0.143494 0.676300\n0.552582 0.145142 0.675446\n0.595856 0.146881 0.674500\n0.637329 0.148651 0.673553\n0.676636 0.150360 0.672668\n0.713501 0.152161 0.671692\n0.747589 0.153961 0.670776\n0.778625 0.155762 0.669830\n0.806824 0.157593 0.668854\n0.832336 0.159454 0.667908\n0.855438 0.161316 0.666962\n0.876495 0.163208 0.666016\n0.895630 0.165100 0.665100\n0.913055 0.166992 0.664154\n0.928894 0.168976 0.663177\n0.943268 0.170929 0.662262\n0.956329 0.172882 0.661316\n0.968048 0.174866 0.660370\n0.054749 0.149994 0.686249\n0.077515 0.151367 0.685547\n0.101349 0.152893 0.684723\n0.126312 0.154388 0.683960\n0.152588 0.155914 0.683197\n0.180328 0.157501 0.682404\n0.209717 0.159119 0.681549\n0.240875 0.160675 0.680725\n0.274048 0.162323 0.679871\n0.309418 0.164032 0.679016\n0.346832 0.165710 0.678162\n0.386200 0.167419 0.677185\n0.427277 0.169159 0.676331\n0.469788 0.170959 0.675476\n0.513519 0.172760 0.674500\n0.557678 0.174561 0.673584\n0.600830 0.176392 0.672699\n0.642120 0.178253 0.671722\n0.681152 0.180145 0.670807\n0.717712 0.182068 0.669861\n0.751495 0.184021 0.668884\n0.782196 0.185944 0.667938\n0.810059 0.187958 0.667023\n0.835297 0.189941 0.666077\n0.858185 0.191925 0.665100\n0.878998 0.193939 0.664185\n0.897888 0.195953 0.663208\n0.915161 0.198029 0.662323\n0.930786 0.200134 0.661316\n0.944977 0.202209 0.660400\n0.957886 0.204315 0.659485\n0.969452 0.206482 0.658508\n0.056976 0.179077 0.684784\n0.079865 0.180634 0.683990\n0.103821 0.182251 0.683197\n0.129028 0.183929 0.682404\n0.155426 0.185547 0.681580\n0.183380 0.187286 0.680725\n0.212952 0.189056 0.679871\n0.244385 0.190735 0.679047\n0.277863 0.192566 0.678192\n0.313538 0.194427 0.677246\n0.351196 0.196198 0.676331\n0.390869 0.198090 0.675476\n0.432129 0.199951 0.674591\n0.474884 0.201874 0.673645\n0.518707 0.203888 0.672699\n0.562866 0.205811 0.671783\n0.605896 0.207825 0.670807\n0.646973 0.209869 0.669861\n0.685730 0.211823 0.668945\n0.722046 0.213928 0.667999\n0.755402 0.216034 0.667023\n0.785797 0.218109 0.666107\n0.813324 0.220245 0.665131\n0.838226 0.222351 0.664246\n0.860870 0.224548 0.663239\n0.881439 0.226746 0.662323\n0.900146 0.228882 0.661346\n0.917175 0.231110 0.660431\n0.932678 0.233368 0.659515\n0.946716 0.235535 0.658569\n0.959412 0.237823 0.657715\n0.970825 0.240112 0.656738\n0.059265 0.210052 0.683289\n0.082275 0.211731 0.682465\n0.106445 0.213531 0.681671\n0.131775 0.215332 0.680756\n0.158417 0.217133 0.679901\n0.186523 0.219025 0.679077\n0.216370 0.220886 0.678192\n0.248016 0.222809 0.677307\n0.281799 0.224762 0.676392\n0.317688 0.226746 0.675507\n0.355713 0.228760 0.674622\n0.395599 0.230774 0.673645\n0.437073 0.232819 0.672729\n0.480042 0.234894 0.671783\n0.523987 0.237030 0.670868\n0.568115 0.239166 0.669922\n0.610901 0.241333 0.668945\n0.651794 0.243530 0.667999\n0.690338 0.245667 0.667053\n0.726257 0.247955 0.666107\n0.759369 0.250244 0.665131\n0.789368 0.252472 0.664246\n0.816528 0.254730 0.663239\n0.841156 0.257019 0.662354\n0.863586 0.259369 0.661438\n0.883881 0.261749 0.660431\n0.902374 0.264099 0.659546\n0.919220 0.266479 0.658630\n0.934509 0.268890 0.657715\n0.948364 0.271240 0.656799\n0.960938 0.273682 0.655914\n0.972198 0.276154 0.655060\n0.061615 0.243103 0.681671\n0.084808 0.244995 0.680786\n0.109100 0.246918 0.679932\n0.134613 0.248932 0.679077\n0.161438 0.250916 0.678223\n0.189789 0.252960 0.677338\n0.219849 0.255035 0.676392\n0.251740 0.257111 0.675568\n0.285797 0.259247 0.674622\n0.321991 0.261353 0.673706\n0.360321 0.263580 0.672791\n0.400452 0.265778 0.671844\n0.442108 0.267944 0.670898\n0.485229 0.270294 0.669952\n0.529419 0.272614 0.668976\n0.573425 0.274872 0.668091\n0.616058 0.277222 0.667114\n0.656677 0.279633 0.666168\n0.694946 0.281982 0.665161\n0.730560 0.284393 0.664276\n0.763184 0.286774 0.663269\n0.792938 0.289246 0.662384\n0.819794 0.291748 0.661438\n0.844116 0.294220 0.660553\n0.866241 0.296692 0.659546\n0.886322 0.299286 0.658630\n0.904602 0.301819 0.657745\n0.921234 0.304352 0.656830\n0.936340 0.306946 0.655914\n0.950012 0.309448 0.655090\n0.962402 0.312103 0.654175\n0.973511 0.314636 0.653351\n0.064056 0.278564 0.679932\n0.087402 0.280579 0.679108\n0.111877 0.282745 0.678253\n0.137543 0.284943 0.677338\n0.164551 0.287079 0.676422\n0.193115 0.289307 0.675568\n0.223419 0.291626 0.674652\n0.255646 0.293854 0.673706\n0.289948 0.296204 0.672791\n0.326416 0.298492 0.671875\n0.364990 0.300873 0.670898\n0.405365 0.303314 0.670013\n0.447296 0.305725 0.669006\n0.490540 0.308197 0.668091\n0.534821 0.310699 0.667114\n0.578705 0.313141 0.666199\n0.621185 0.315704 0.665192\n0.661591 0.318268 0.664276\n0.699493 0.320770 0.663361\n0.734772 0.323395 0.662384\n0.767090 0.325958 0.661469\n0.796417 0.328613 0.660553\n0.822968 0.331268 0.659576\n0.847046 0.333862 0.658691\n0.868896 0.336578 0.657806\n0.888763 0.339294 0.656830\n0.906799 0.341980 0.655975\n0.923218 0.344696 0.655090\n0.938171 0.347443 0.654205\n0.951660 0.350128 0.653381\n0.963867 0.352905 0.652557\n0.974854 0.355652 0.651703\n0.066620 0.316559 0.678253\n0.090088 0.318787 0.677368\n0.114716 0.321106 0.676483\n0.140594 0.323456 0.675598\n0.167786 0.325836 0.674713\n0.196594 0.328247 0.673767\n0.227112 0.330658 0.672821\n0.259552 0.333191 0.671936\n0.294220 0.335693 0.670929\n0.330933 0.338165 0.670044\n0.369781 0.340759 0.669037\n0.410400 0.343353 0.668121\n0.452484 0.345947 0.667175\n0.495972 0.348572 0.666199\n0.540344 0.351227 0.665283\n0.584076 0.353882 0.664307\n0.626343 0.356598 0.663391\n0.666412 0.359253 0.662415\n0.704102 0.361969 0.661499\n0.739014 0.364777 0.660583\n0.770935 0.367493 0.659637\n0.799957 0.370300 0.658722\n0.826141 0.373169 0.657806\n0.849915 0.375885 0.656891\n0.871490 0.378754 0.656006\n0.891113 0.381622 0.655121\n0.908966 0.384399 0.654266\n0.925201 0.387268 0.653381\n0.939941 0.390076 0.652588\n0.953278 0.392975 0.651703\n0.965363 0.395874 0.650940\n0.976105 0.398712 0.650116\n0.069214 0.356964 0.676514\n0.092834 0.359375 0.675629\n0.117615 0.361847 0.674744\n0.143677 0.364410 0.673767\n0.171082 0.366913 0.672852\n0.200104 0.369568 0.671936\n0.230835 0.372101 0.670959\n0.263611 0.374756 0.670044\n0.298523 0.377472 0.669037\n0.335541 0.380127 0.668152\n0.374634 0.382843 0.667206\n0.415497 0.385620 0.666229\n0.457825 0.388367 0.665314\n0.501434 0.391144 0.664337\n0.545837 0.394012 0.663391\n0.589447 0.396790 0.662506\n0.631500 0.399628 0.661499\n0.671234 0.402496 0.660645\n0.708649 0.405365 0.659637\n0.743225 0.408264 0.658752\n0.774780 0.411133 0.657837\n0.803406 0.414124 0.656921\n0.829315 0.417053 0.656036\n0.852753 0.419922 0.655151\n0.874084 0.422913 0.654266\n0.893494 0.425903 0.653442\n0.911102 0.428833 0.652588\n0.927155 0.431824 0.651703\n0.941711 0.434692 0.650970\n0.954865 0.437744 0.650146\n0.966766 0.440735 0.649323\n0.977386 0.443665 0.648651\n0.071899 0.399536 0.674744\n0.095673 0.402100 0.673828\n0.120605 0.404785 0.672852\n0.146790 0.407410 0.671967\n0.174469 0.410187 0.670959\n0.203735 0.412933 0.670074\n0.234650 0.415619 0.669128\n0.267761 0.418549 0.668152\n0.302979 0.421326 0.667206\n0.340271 0.424103 0.666260\n0.379578 0.427063 0.665314\n0.420654 0.429932 0.664337\n0.463165 0.432770 0.663422\n0.506927 0.435730 0.662506\n0.551361 0.438629 0.661591\n0.594849 0.441650 0.660645\n0.636658 0.444611 0.659668\n0.676117 0.447510 0.658813\n0.713165 0.450562 0.657898\n0.747406 0.453674 0.656921\n0.778595 0.456604 0.656036\n0.806854 0.459656 0.655151\n0.832397 0.462708 0.654327\n0.855560 0.465698 0.653473\n0.876648 0.468781 0.652618\n0.895782 0.471832 0.651733\n0.913208 0.474884 0.650970\n0.929047 0.477966 0.650146\n0.943420 0.480957 0.649384\n0.956451 0.484039 0.648651\n0.968170 0.487091 0.647858\n0.978638 0.490112 0.647217\n0.074646 0.444031 0.672882\n0.098541 0.446777 0.671997\n0.123657 0.449554 0.671051\n0.150055 0.452332 0.670105\n0.177887 0.455231 0.669159\n0.207367 0.458099 0.668182\n0.238647 0.461029 0.667267\n0.271942 0.463959 0.666351\n0.307465 0.466919 0.665375\n0.345062 0.469849 0.664429\n0.384613 0.472870 0.663452\n0.425964 0.475891 0.662537\n0.468597 0.478882 0.661591\n0.512482 0.481934 0.660675\n0.556915 0.484924 0.659729\n0.600220 0.488037 0.658813\n0.641754 0.491150 0.657898\n0.680969 0.494232 0.656982\n0.717682 0.497314 0.656128\n0.751526 0.500427 0.655212\n0.782288 0.503479 0.654358\n0.810181 0.506622 0.653473\n0.835449 0.509766 0.652618\n0.858337 0.512787 0.651794\n0.879150 0.515961 0.650970\n0.898071 0.519043 0.650208\n0.915283 0.522186 0.649445\n0.930939 0.525330 0.648651\n0.945099 0.528381 0.647888\n0.957947 0.531525 0.647217\n0.969513 0.534637 0.646667\n0.979858 0.537598 0.646667\n0.077393 0.490051 0.671082\n0.101501 0.492950 0.670105\n0.126831 0.495941 0.669159\n0.153351 0.498779 0.668274\n0.181427 0.501831 0.667297\n0.211121 0.504852 0.666351\n0.242645 0.507782 0.665405\n0.276215 0.510895 0.664459\n0.312042 0.513916 0.663452\n0.349915 0.516968 0.662567\n0.389709 0.520050 0.661621\n0.431152 0.523071 0.660736\n0.474091 0.526215 0.659760\n0.518066 0.529419 0.658844\n0.562439 0.532471 0.657928\n0.605591 0.535583 0.657043\n0.646881 0.538757 0.656128\n0.685730 0.541840 0.655243\n0.722107 0.545013 0.654358\n0.755554 0.548157 0.653503\n0.785980 0.551239 0.652649\n0.813538 0.554352 0.651794\n0.838440 0.557465 0.651001\n0.861084 0.560455 0.650238\n0.881653 0.563599 0.649445\n0.900299 0.566650 0.648682\n0.917358 0.569672 0.647888\n0.932770 0.572723 0.647217\n0.946747 0.575684 0.646667\n0.959442 0.578705 0.646667\n0.970856 0.581696 0.646667\n0.980988 0.584595 0.646667\n0.080292 0.537415 0.669189\n0.104523 0.540375 0.668304\n0.129974 0.543365 0.667328\n0.156708 0.546356 0.666382\n0.184998 0.549377 0.665405\n0.214935 0.552429 0.664490\n0.246704 0.555450 0.663513\n0.280548 0.558472 0.662598\n0.316650 0.561554 0.661621\n0.354797 0.564575 0.660736\n0.394867 0.567596 0.659760\n0.436584 0.570709 0.658844\n0.479553 0.573700 0.657959\n0.523743 0.576813 0.657043\n0.567993 0.579803 0.656158\n0.610901 0.582855 0.655243\n0.651947 0.585907 0.654419\n0.690491 0.588867 0.653534\n0.726471 0.591919 0.652710\n0.759613 0.594910 0.651825\n0.789612 0.597931 0.651031\n0.816833 0.600922 0.650238\n0.841461 0.603912 0.649445\n0.863770 0.606812 0.648712\n0.884094 0.609741 0.647980\n0.902496 0.612610 0.647247\n0.919281 0.615540 0.646667\n0.934570 0.618408 0.646667\n0.948364 0.621246 0.646667\n0.960907 0.624115 0.646667\n0.972168 0.626953 0.646667\n0.982147 0.629669 0.646667\n0.083160 0.584198 0.667389\n0.107544 0.587158 0.666412\n0.133209 0.590118 0.665436\n0.160126 0.592957 0.664520\n0.188629 0.595917 0.663544\n0.218811 0.598938 0.662598\n0.250824 0.601807 0.661682\n0.285004 0.604767 0.660767\n0.321381 0.607727 0.659821\n0.359772 0.610657 0.658905\n0.400085 0.613617 0.657959\n0.441895 0.616516 0.657074\n0.485107 0.619476 0.656189\n0.529419 0.622406 0.655304\n0.573547 0.625244 0.654480\n0.616241 0.628204 0.653534\n0.656921 0.631134 0.652710\n0.695221 0.633911 0.651917\n0.730804 0.636841 0.651031\n0.763550 0.639679 0.650238\n0.793182 0.642487 0.649475\n0.820007 0.645294 0.648712\n0.844299 0.648041 0.648010\n0.866364 0.650879 0.647278\n0.886444 0.653656 0.646667\n0.904663 0.656342 0.646667\n0.921265 0.659058 0.646667\n0.936310 0.661774 0.646667\n0.949951 0.664429 0.646667\n0.962311 0.667053 0.646667\n0.973419 0.669708 0.646667\n0.983276 0.672211 0.646667\n0.086090 0.629303 0.665527\n0.110687 0.632111 0.664520\n0.136505 0.634979 0.663544\n0.163635 0.637726 0.662659\n0.192322 0.640564 0.661713\n0.222748 0.643402 0.660767\n0.255005 0.646149 0.659851\n0.289459 0.648987 0.658966\n0.326141 0.651794 0.657990\n0.364716 0.654572 0.657104\n0.405273 0.657349 0.656219\n0.447296 0.660095 0.655334\n0.490692 0.662872 0.654480\n0.535065 0.665649 0.653625\n0.579010 0.668335 0.652740\n0.621460 0.671082 0.651917\n0.661896 0.673828 0.651123\n0.699860 0.676422 0.650299\n0.735107 0.679169 0.649536\n0.767395 0.681854 0.648712\n0.796661 0.684448 0.648010\n0.823181 0.687073 0.647278\n0.847168 0.689606 0.646667\n0.868958 0.692230 0.646667\n0.888794 0.694794 0.646667\n0.906769 0.697296 0.646667\n0.923157 0.699829 0.646667\n0.938049 0.702301 0.646667\n0.951508 0.704712 0.646667\n0.963715 0.707153 0.646667\n0.974609 0.709534 0.646667\n0.984344 0.711853 0.646667\n0.089050 0.671997 0.663635\n0.113831 0.674713 0.662689\n0.139801 0.677338 0.661713\n0.167114 0.679932 0.660858\n0.196014 0.682617 0.659851\n0.226685 0.685303 0.658966\n0.259216 0.687897 0.658081\n0.293976 0.690552 0.657104\n0.330841 0.693085 0.656219\n0.369781 0.695740 0.655334\n0.410492 0.698334 0.654510\n0.452698 0.700897 0.653656\n0.496277 0.703461 0.652740\n0.540680 0.706085 0.651947\n0.584473 0.708557 0.651154\n0.626678 0.711090 0.650330\n0.666779 0.713623 0.649536\n0.704437 0.716034 0.648773\n0.739288 0.718567 0.648041\n0.771210 0.721008 0.647339\n0.800079 0.723358 0.646667\n0.826233 0.725800 0.646667\n0.849915 0.728119 0.646667\n0.871490 0.730499 0.646667\n0.891052 0.732819 0.646667\n0.908813 0.735107 0.646667\n0.925018 0.737366 0.646667\n0.939697 0.739624 0.646667\n0.953033 0.741821 0.646667\n0.965027 0.743988 0.646667\n0.975800 0.746124 0.646667\n0.985382 0.748260 0.646667\n0.092133 0.711853 0.661774\n0.117035 0.714355 0.660858\n0.143158 0.716858 0.659882\n0.170685 0.719269 0.658997\n0.199799 0.721741 0.658081\n0.230713 0.724182 0.657166\n0.263489 0.726624 0.656281\n0.298523 0.729034 0.655396\n0.335693 0.731415 0.654572\n0.374817 0.733856 0.653656\n0.415771 0.736237 0.652802\n0.458099 0.738556 0.651978\n0.501831 0.740967 0.651154\n0.546234 0.743286 0.650330\n0.589844 0.745544 0.649567\n0.631775 0.747894 0.648804\n0.671661 0.750153 0.648041\n0.708923 0.752350 0.647339\n0.743408 0.754578 0.646667\n0.774902 0.756805 0.646667\n0.803406 0.759003 0.646667\n0.829254 0.761139 0.646667\n0.852661 0.763214 0.646667\n0.873932 0.765350 0.646667\n0.893280 0.767487 0.646667\n0.910828 0.769470 0.646667\n0.926788 0.771515 0.646667\n0.941315 0.773560 0.646667\n0.954468 0.775482 0.646667\n0.966339 0.777374 0.646667\n0.976929 0.779266 0.646667\n0.986389 0.781189 0.646667\n0.095215 0.748505 0.659912\n0.120239 0.750824 0.659027\n0.146576 0.753113 0.658112\n0.174255 0.755310 0.657196\n0.203613 0.757568 0.656281\n0.234650 0.759766 0.655426\n0.267822 0.761993 0.654572\n0.303162 0.764191 0.653687\n0.340546 0.766357 0.652832\n0.379883 0.768555 0.651978\n0.421051 0.770691 0.651184\n0.463593 0.772797 0.650391\n0.507385 0.774933 0.649597\n0.551849 0.777039 0.648804\n0.595184 0.779053 0.648132\n0.636902 0.781158 0.647369\n0.676392 0.783203 0.646667\n0.713287 0.785187 0.646667\n0.747437 0.787170 0.646667\n0.778503 0.789124 0.646667\n0.806671 0.791046 0.646667\n0.832214 0.793030 0.646667\n0.855286 0.794861 0.646667\n0.876312 0.796753 0.646667\n0.895447 0.798584 0.646667\n0.912750 0.800385 0.646667\n0.928558 0.802216 0.646667\n0.942902 0.803986 0.646667\n0.955872 0.805664 0.646667\n0.967590 0.807404 0.646667\n0.978058 0.809082 0.646667\n0.987335 0.810730 0.646667\n0.098328 0.781799 0.658142\n0.123535 0.783875 0.657196\n0.150024 0.785919 0.656311\n0.177887 0.787933 0.655426\n0.207428 0.789948 0.654572\n0.238800 0.791901 0.653717\n0.272186 0.793945 0.652832\n0.307770 0.795929 0.652069\n0.345398 0.797791 0.651215\n0.384979 0.799774 0.650421\n0.426331 0.801727 0.649597\n0.469025 0.803589 0.648834\n0.512909 0.805481 0.648132\n0.557281 0.807373 0.647369\n0.600433 0.809174 0.646698\n0.641907 0.811066 0.646667\n0.681030 0.812836 0.646667\n0.717621 0.814667 0.646667\n0.751373 0.816406 0.646667\n0.782074 0.818146 0.646667\n0.809845 0.819885 0.646667\n0.835052 0.821625 0.646667\n0.857880 0.823273 0.646667\n0.878632 0.824921 0.646667\n0.897522 0.826538 0.646667\n0.914673 0.828156 0.646667\n0.930267 0.829742 0.646667\n0.944397 0.831268 0.646667\n0.957245 0.832825 0.646667\n0.968781 0.834351 0.646667\n0.979095 0.835815 0.646667\n0.988251 0.837280 0.646667\n0.101440 0.811676 0.656342\n0.126831 0.813538 0.655457\n0.153412 0.815369 0.654633\n0.181549 0.817200 0.653717\n0.211304 0.819031 0.652893\n0.242889 0.820770 0.652100\n0.276550 0.822571 0.651215\n0.312408 0.824371 0.650421\n0.350281 0.826080 0.649689\n0.390076 0.827820 0.648834\n0.431580 0.829559 0.648163\n0.474396 0.831238 0.647400\n0.518372 0.832977 0.646698\n0.562592 0.834595 0.646667\n0.605621 0.836273 0.646667\n0.646790 0.837921 0.646667\n0.685577 0.839508 0.646667\n0.721802 0.841095 0.646667\n0.755188 0.842682 0.646667\n0.785492 0.844238 0.646667\n0.812988 0.845764 0.646667\n0.837860 0.847290 0.646667\n0.860413 0.848785 0.646667\n0.880890 0.850281 0.646667\n0.899567 0.851715 0.646667\n0.916504 0.853149 0.646667\n0.931915 0.854553 0.646667\n0.945892 0.855896 0.646667\n0.958527 0.857269 0.646667\n0.969971 0.858612 0.646667\n0.980133 0.859894 0.646667\n0.989136 0.861206 0.646667\n0.104584 0.838562 0.654633\n0.130096 0.840240 0.653717\n0.156891 0.841858 0.652924\n0.185181 0.843506 0.652100\n0.215179 0.845154 0.651215\n0.246979 0.846771 0.650482\n0.280914 0.848358 0.649689\n0.317017 0.849945 0.648895\n0.355164 0.851501 0.648193\n0.395172 0.853088 0.647400\n0.436829 0.854645 0.646698\n0.479767 0.856171 0.646667\n0.523834 0.857666 0.646667\n0.567963 0.859131 0.646667\n0.610718 0.860596 0.646667\n0.651550 0.862061 0.646667\n0.690094 0.863495 0.646667\n0.725952 0.864929 0.646667\n0.758942 0.866364 0.646667\n0.788879 0.867737 0.646667\n0.815979 0.869080 0.646667\n0.840576 0.870453 0.646667\n0.862823 0.871735 0.646667\n0.883087 0.873077 0.646667\n0.901489 0.874329 0.646667\n0.918243 0.875610 0.646667\n0.933502 0.876862 0.646667\n0.947327 0.878052 0.646667\n0.959808 0.879272 0.646667\n0.971069 0.880463 0.646667\n0.981079 0.881622 0.646667\n0.989960 0.882751 0.646667\n0.107727 0.862793 0.652924\n0.133423 0.864288 0.652100\n0.160370 0.865723 0.651276\n0.188904 0.867218 0.650482\n0.219086 0.868744 0.649719\n0.251129 0.870148 0.648956\n0.285339 0.871582 0.648193\n0.321686 0.873047 0.647430\n0.359985 0.874420 0.646729\n0.400208 0.875824 0.646667\n0.441956 0.877197 0.646667\n0.485046 0.878571 0.646667\n0.529175 0.879944 0.646667\n0.573181 0.881226 0.646667\n0.615723 0.882568 0.646667\n0.656281 0.883881 0.646667\n0.694427 0.885132 0.646667\n0.729950 0.886414 0.646667\n0.762573 0.887695 0.646667\n0.792114 0.888885 0.646667\n0.818909 0.890137 0.646667\n0.843170 0.891296 0.646667\n0.865173 0.892487 0.646667\n0.885193 0.893646 0.646667\n0.903381 0.894745 0.646667\n0.919952 0.895905 0.646667\n0.934998 0.897003 0.646667\n0.948669 0.898071 0.646667\n0.961029 0.899139 0.646667\n0.972137 0.900177 0.646667\n0.982025 0.901184 0.646667\n0.990784 0.902191 0.646667\n0.110901 0.884583 0.651306\n0.136719 0.885956 0.650513\n0.163879 0.887268 0.649719\n0.192566 0.888641 0.648956\n0.222961 0.889984 0.648193\n0.255219 0.891235 0.647522\n0.289673 0.892578 0.646729\n0.326233 0.893829 0.646667\n0.364807 0.895050 0.646667\n0.405182 0.896332 0.646667\n0.447113 0.897552 0.646667\n0.490356 0.898804 0.646667\n0.534607 0.900024 0.646667\n0.578308 0.901184 0.646667\n0.620605 0.902374 0.646667\n0.660919 0.903534 0.646667\n0.698700 0.904663 0.646667\n0.733856 0.905792 0.646667\n0.766113 0.906921 0.646667\n0.795258 0.907990 0.646667\n0.821716 0.909088 0.646667\n0.845642 0.910126 0.646667\n0.867432 0.911163 0.646667\n0.887207 0.912201 0.646667\n0.905212 0.913177 0.646667\n0.921600 0.914185 0.646667\n0.936493 0.915161 0.646667\n0.949951 0.916107 0.646667\n0.962189 0.917084 0.646667\n0.973175 0.917969 0.646667\n0.982941 0.918823 0.646667\n0.991547 0.919708 0.646667\n0.114075 0.904358 0.649750\n0.140015 0.905548 0.648987\n0.167358 0.906769 0.648254\n0.196259 0.907959 0.647522\n0.226868 0.909180 0.646790\n0.259369 0.910278 0.646667\n0.294067 0.911469 0.646667\n0.330780 0.912567 0.646667\n0.369629 0.913727 0.646667\n0.410187 0.914886 0.646667\n0.452271 0.915985 0.646667\n0.495605 0.917084 0.646667\n0.539795 0.918121 0.646667\n0.583344 0.919159 0.646667\n0.625397 0.920227 0.646667\n0.665375 0.921265 0.646667\n0.702850 0.922272 0.646667\n0.737579 0.923279 0.646667\n0.769470 0.924255 0.646667\n0.798279 0.925232 0.646667\n0.824402 0.926178 0.646667\n0.848114 0.927124 0.646667\n0.869629 0.928040 0.646667\n0.889191 0.928955 0.646667\n0.906982 0.929840 0.646667\n0.923157 0.930695 0.646667\n0.937897 0.931549 0.646667\n0.951233 0.932373 0.646667\n0.963287 0.933197 0.646667\n0.974121 0.934021 0.646667\n0.983765 0.934784 0.646667\n0.992310 0.935577 0.646667\n0.117218 0.922150 0.648254\n0.143341 0.923248 0.647522\n0.170837 0.924316 0.646820\n0.199921 0.925385 0.646667\n0.230743 0.926422 0.646667\n0.263489 0.927490 0.646667\n0.298401 0.928528 0.646667\n0.335388 0.929565 0.646667\n0.374390 0.930542 0.646667\n0.415161 0.931549 0.646667\n0.457275 0.932556 0.646667\n0.500671 0.933502 0.646667\n0.544922 0.934479 0.646667\n0.588318 0.935425 0.646667\n0.630035 0.936310 0.646667\n0.669708 0.937286 0.646667\n0.706879 0.938141 0.646667\n0.741272 0.939056 0.646667\n0.772705 0.939880 0.646667\n0.801239 0.940765 0.646667\n0.827057 0.941620 0.646667\n0.850433 0.942413 0.646667\n0.871735 0.943237 0.646667\n0.891083 0.944031 0.646667\n0.908630 0.944794 0.646667\n0.924652 0.945557 0.646667\n0.939240 0.946350 0.646667\n0.952423 0.947052 0.646667\n0.964325 0.947754 0.646667\n0.975037 0.948425 0.646667\n0.984558 0.949158 0.646667\n0.992950 0.949799 0.646667\n0.120392 0.938171 0.646820\n0.146698 0.939178 0.646667\n0.174316 0.940125 0.646667\n0.203613 0.941101 0.646667\n0.234558 0.942047 0.646667\n0.267609 0.942993 0.646667\n0.302734 0.943909 0.646667\n0.339966 0.944794 0.646667\n0.379120 0.945709 0.646667\n0.420013 0.946594 0.646667\n0.462280 0.947449 0.646667\n0.505737 0.948303 0.646667\n0.549866 0.949188 0.646667\n0.593079 0.949982 0.646667\n0.634613 0.950806 0.646667\n0.673859 0.951630 0.646667\n0.710754 0.952423 0.646667\n0.744781 0.953186 0.646667\n0.775848 0.953918 0.646667\n0.804047 0.954712 0.646667\n0.829559 0.955444 0.646667\n0.852692 0.956177 0.646667\n0.873718 0.956879 0.646667\n0.892883 0.957581 0.646667\n0.910248 0.958221 0.646667\n0.926086 0.958923 0.646667\n0.940491 0.959564 0.646667\n0.953552 0.960205 0.646667\n0.965332 0.960815 0.646667\n0.975922 0.961395 0.646667\n0.985321 0.961975 0.646667\n0.993591 0.962585 0.646667\n0.123566 0.952606 0.646667\n0.149994 0.953491 0.646667\n0.177795 0.954376 0.646667\n0.207245 0.955200 0.646667\n0.238403 0.956024 0.646667\n0.271637 0.956848 0.646667\n0.307037 0.957703 0.646667\n0.344421 0.958466 0.646667\n0.383789 0.959259 0.646667\n0.424774 0.960052 0.646667\n0.467163 0.960846 0.646667\n0.510742 0.961609 0.646667\n0.554810 0.962341 0.646667\n0.597778 0.963074 0.646667\n0.639008 0.963806 0.646667\n0.677979 0.964508 0.646667\n0.714447 0.965179 0.646667\n0.748169 0.965881 0.646667\n0.778900 0.966522 0.646667\n0.806763 0.967194 0.646667\n0.831940 0.967804 0.646667\n0.854828 0.968475 0.646667\n0.875641 0.969055 0.646667\n0.894592 0.969666 0.646667\n0.911743 0.970245 0.646667\n0.927460 0.970825 0.646667\n0.941711 0.971375 0.646667\n0.954590 0.971924 0.646667\n0.966278 0.972443 0.646667\n0.976715 0.972992 0.646667\n0.985992 0.973480 0.646667\n0.994202 0.973969 0.646667\n0.126709 0.965546 0.646667\n0.153259 0.966339 0.646667\n0.181244 0.967072 0.646667\n0.210876 0.967804 0.646667\n0.242218 0.968536 0.646667\n0.275665 0.969299 0.646667\n0.311310 0.970032 0.646667\n0.348877 0.970703 0.646667\n0.388367 0.971375 0.646667\n0.429504 0.972107 0.646667\n0.471924 0.972778 0.646667\n0.515533 0.973450 0.646667\n0.559479 0.974060 0.646667\n0.602234 0.974701 0.646667\n0.643219 0.975342 0.646667\n0.681915 0.975952 0.646667\n0.718109 0.976532 0.646667\n0.751404 0.977142 0.646667\n0.781799 0.977692 0.646667\n0.809296 0.978302 0.646667\n0.834259 0.978821 0.646667\n0.856873 0.979370 0.646667\n0.877441 0.979889 0.646667\n0.896179 0.980408 0.646667\n0.913208 0.980896 0.646667\n0.928741 0.981384 0.646667\n0.942810 0.981873 0.646667\n0.955597 0.982330 0.646667\n0.967163 0.982758 0.646667\n0.977478 0.983185 0.646667\n0.986694 0.983612 0.646667\n0.994720 0.984009 0.646667\n0.043854 0.005157 0.726715\n0.065857 0.005981 0.726257\n0.088867 0.006836 0.725800\n0.112946 0.007721 0.725311\n0.138245 0.008606 0.724792\n0.164886 0.009552 0.724243\n0.192963 0.010498 0.723694\n0.222809 0.011505 0.723114\n0.254486 0.012543 0.722534\n0.288208 0.013519 0.721924\n0.324097 0.014618 0.721222\n0.362030 0.015686 0.720551\n0.401733 0.016785 0.719879\n0.443024 0.017914 0.719208\n0.485718 0.019073 0.718475\n0.529358 0.020264 0.717773\n0.573059 0.021454 0.717010\n0.615204 0.022644 0.716248\n0.655487 0.023895 0.715454\n0.693604 0.025146 0.714691\n0.728973 0.026428 0.713898\n0.761597 0.027771 0.713043\n0.791229 0.029053 0.712250\n0.818085 0.030365 0.711395\n0.842468 0.031738 0.710602\n0.864594 0.033142 0.709717\n0.884735 0.034485 0.708893\n0.903107 0.035919 0.707977\n0.919739 0.037323 0.707153\n0.934937 0.038757 0.706268\n0.948730 0.040222 0.705322\n0.961182 0.041656 0.704498\n0.045502 0.026550 0.725800\n0.067596 0.027435 0.725342\n0.090759 0.028381 0.724792\n0.114990 0.029358 0.724243\n0.140442 0.030334 0.723694\n0.167236 0.031372 0.723114\n0.195526 0.032410 0.722534\n0.225616 0.033478 0.721924\n0.257507 0.034607 0.721252\n0.291504 0.035706 0.720612\n0.327667 0.036865 0.719910\n0.365845 0.038055 0.719238\n0.405731 0.039215 0.718506\n0.447296 0.040466 0.717773\n0.490143 0.041718 0.717041\n0.533936 0.042938 0.716278\n0.577606 0.044250 0.715485\n0.619659 0.045532 0.714691\n0.659821 0.046875 0.713898\n0.697632 0.048248 0.713074\n0.732758 0.049591 0.712311\n0.765076 0.050995 0.711426\n0.794434 0.052429 0.710602\n0.820984 0.053802 0.709778\n0.845154 0.055237 0.708893\n0.867065 0.056732 0.707977\n0.886993 0.058197 0.707153\n0.905151 0.059662 0.706299\n0.921661 0.061127 0.705383\n0.936707 0.062714 0.704498\n0.950317 0.064270 0.703613\n0.962616 0.065765 0.702698\n0.047211 0.048920 0.724854\n0.069427 0.049927 0.724274\n0.092743 0.050934 0.723755\n0.117096 0.052002 0.723145\n0.142731 0.053101 0.722565\n0.169739 0.054199 0.721954\n0.198212 0.055359 0.721283\n0.228516 0.056519 0.720642\n0.260681 0.057709 0.719910\n0.294952 0.058929 0.719269\n0.331421 0.060181 0.718567\n0.369843 0.061462 0.717804\n0.410004 0.062744 0.717041\n0.451721 0.064026 0.716278\n0.494720 0.065369 0.715546\n0.538635 0.066742 0.714752\n0.582275 0.068115 0.713959\n0.624176 0.069489 0.713135\n0.664154 0.070923 0.712311\n0.701721 0.072388 0.711426\n0.736572 0.073853 0.710663\n0.768616 0.075348 0.709778\n0.797668 0.076843 0.708923\n0.823944 0.078339 0.708038\n0.847839 0.079895 0.707184\n0.869507 0.081421 0.706329\n0.889252 0.083008 0.705414\n0.907227 0.084625 0.704529\n0.923553 0.086182 0.703674\n0.938416 0.087860 0.702759\n0.951904 0.089478 0.701874\n0.964081 0.091095 0.700989\n0.049072 0.072357 0.723755\n0.071442 0.073486 0.723145\n0.094849 0.074615 0.722565\n0.119385 0.075745 0.721985\n0.145172 0.076965 0.721283\n0.172363 0.078156 0.720642\n0.201080 0.079376 0.719971\n0.231567 0.080688 0.719269\n0.263977 0.082001 0.718567\n0.298523 0.083282 0.717834\n0.335266 0.084656 0.717072\n0.373932 0.086029 0.716339\n0.414337 0.087402 0.715546\n0.456299 0.088837 0.714752\n0.499481 0.090271 0.713989\n0.543518 0.091736 0.713135\n0.587036 0.093231 0.712372\n0.628784 0.094696 0.711456\n0.668549 0.096222 0.710663\n0.705872 0.097778 0.709808\n0.740448 0.099335 0.708984\n0.772156 0.100922 0.708038\n0.800934 0.102539 0.707214\n0.826904 0.104126 0.706329\n0.850555 0.105804 0.705414\n0.871979 0.107422 0.704590\n0.891541 0.109131 0.703674\n0.909332 0.110840 0.702759\n0.925446 0.112518 0.701904\n0.940155 0.114288 0.701019\n0.953491 0.115997 0.700104\n0.965515 0.117706 0.699219\n0.050964 0.097015 0.722595\n0.073517 0.098267 0.721985\n0.097046 0.099487 0.721283\n0.121735 0.100739 0.720673\n0.147736 0.102051 0.720001\n0.175110 0.103394 0.719299\n0.204010 0.104706 0.718597\n0.234772 0.106079 0.717834\n0.267487 0.107513 0.717102\n0.302277 0.108948 0.716370\n0.339233 0.110382 0.715576\n0.378174 0.111847 0.714783\n0.418823 0.113373 0.713989\n0.461029 0.114899 0.713165\n0.504364 0.116425 0.712372\n0.548492 0.118011 0.711548\n0.591858 0.119598 0.710693\n0.633453 0.121216 0.709839\n0.673004 0.122864 0.708984\n0.710083 0.124573 0.708099\n0.744385 0.126160 0.707275\n0.775726 0.127930 0.706390\n0.804169 0.129639 0.705475\n0.829895 0.131348 0.704620\n0.853271 0.133087 0.703705\n0.874481 0.134857 0.702820\n0.893799 0.136658 0.701904\n0.911377 0.138489 0.701019\n0.927368 0.140289 0.700165\n0.941895 0.142151 0.699219\n0.955078 0.144012 0.698364\n0.966919 0.145813 0.697540\n0.053009 0.122986 0.721313\n0.075684 0.124359 0.720673\n0.099365 0.125732 0.720001\n0.124268 0.127106 0.719360\n0.150360 0.128510 0.718597\n0.177948 0.129974 0.717865\n0.207092 0.131409 0.717102\n0.238068 0.132904 0.716370\n0.271057 0.134430 0.715576\n0.306152 0.135956 0.714813\n0.343414 0.137543 0.714020\n0.382538 0.139130 0.713196\n0.423431 0.140778 0.712402\n0.465790 0.142456 0.711548\n0.509338 0.144104 0.710754\n0.553528 0.145782 0.709839\n0.596802 0.147552 0.709015\n0.638184 0.149231 0.708160\n0.677521 0.151031 0.707275\n0.714294 0.152802 0.706390\n0.748260 0.154572 0.705505\n0.779297 0.156403 0.704620\n0.807373 0.158264 0.703766\n0.832855 0.160126 0.702850\n0.855988 0.162018 0.701935\n0.876953 0.163879 0.701050\n0.896057 0.165833 0.700195\n0.913422 0.167755 0.699249\n0.929230 0.169678 0.698395\n0.943604 0.171631 0.697540\n0.956604 0.173615 0.696625\n0.968323 0.175568 0.695770\n0.055176 0.150482 0.720032\n0.077942 0.151947 0.719360\n0.101807 0.153442 0.718628\n0.126831 0.154938 0.717926\n0.153137 0.156464 0.717133\n0.180939 0.158081 0.716400\n0.210297 0.159637 0.715607\n0.241516 0.161316 0.714844\n0.274689 0.162933 0.714050\n0.310181 0.164612 0.713196\n0.347656 0.166351 0.712433\n0.387054 0.168060 0.711578\n0.428192 0.169830 0.710754\n0.470795 0.171600 0.709869\n0.514465 0.173401 0.709045\n0.558655 0.175262 0.708160\n0.601776 0.177124 0.707306\n0.643005 0.178955 0.706451\n0.682068 0.180847 0.705566\n0.718567 0.182800 0.704681\n0.752197 0.184692 0.703766\n0.782898 0.186707 0.702850\n0.810638 0.188629 0.701965\n0.835846 0.190643 0.701080\n0.858673 0.192657 0.700195\n0.879456 0.194672 0.699310\n0.898315 0.196747 0.698395\n0.915527 0.198853 0.697571\n0.931122 0.200897 0.696716\n0.945312 0.203003 0.695801\n0.958130 0.205139 0.694946\n0.969696 0.207184 0.694061\n0.057373 0.179626 0.718658\n0.080322 0.181244 0.717926\n0.104340 0.182861 0.717133\n0.129486 0.184509 0.716431\n0.156006 0.186188 0.715637\n0.183990 0.187958 0.714844\n0.213593 0.189667 0.714050\n0.245056 0.191437 0.713226\n0.278534 0.193176 0.712463\n0.314270 0.195038 0.711609\n0.352081 0.196899 0.710785\n0.391693 0.198792 0.709930\n0.433075 0.200684 0.709076\n0.475861 0.202637 0.708191\n0.519653 0.204559 0.707336\n0.563904 0.206573 0.706451\n0.606812 0.208557 0.705566\n0.647797 0.210571 0.704712\n0.686646 0.212616 0.703796\n0.722748 0.214691 0.702942\n0.756104 0.216736 0.702057\n0.786469 0.218933 0.701141\n0.813904 0.220978 0.700226\n0.838776 0.223145 0.699371\n0.861389 0.225342 0.698425\n0.881897 0.227478 0.697601\n0.900604 0.229736 0.696716\n0.917572 0.231964 0.695801\n0.932983 0.234161 0.694977\n0.947021 0.236420 0.694092\n0.959686 0.238647 0.693268\n0.971100 0.240936 0.692383\n0.059662 0.210663 0.717194\n0.082764 0.212402 0.716431\n0.106903 0.214233 0.715637\n0.132263 0.216003 0.714905\n0.158966 0.217804 0.714142\n0.187103 0.219696 0.713287\n0.217010 0.221588 0.712463\n0.248688 0.223541 0.711609\n0.282501 0.225464 0.710815\n0.318542 0.227448 0.709930\n0.356567 0.229492 0.709076\n0.396484 0.231476 0.708221\n0.438080 0.233643 0.707336\n0.480988 0.235687 0.706482\n0.524963 0.237793 0.705597\n0.569153 0.239960 0.704712\n0.611908 0.242157 0.703796\n0.652710 0.244354 0.702942\n0.691223 0.246521 0.702057\n0.727081 0.248779 0.701172\n0.760040 0.251007 0.700256\n0.790039 0.253326 0.699371\n0.817108 0.255554 0.698486\n0.841736 0.257904 0.697601\n0.864075 0.260284 0.696747\n0.884369 0.262604 0.695862\n0.902832 0.264923 0.694977\n0.919586 0.267365 0.694092\n0.934845 0.269745 0.693268\n0.948700 0.272186 0.692444\n0.961182 0.274567 0.691589\n0.972412 0.276978 0.690735\n0.062073 0.243774 0.715729\n0.085297 0.245697 0.714905\n0.109619 0.247650 0.714142\n0.135101 0.249664 0.713287\n0.162018 0.251617 0.712524\n0.190399 0.253662 0.711639\n0.220490 0.255768 0.710815\n0.252502 0.257904 0.709961\n0.286560 0.259979 0.709106\n0.322845 0.262177 0.708221\n0.361206 0.264404 0.707367\n0.401306 0.266602 0.706543\n0.443115 0.268860 0.705627\n0.486237 0.271149 0.704773\n0.530334 0.273438 0.703827\n0.574402 0.275726 0.702972\n0.616974 0.278076 0.702087\n0.657593 0.280426 0.701172\n0.695801 0.282867 0.700256\n0.731293 0.285278 0.699402\n0.763947 0.287720 0.698517\n0.793579 0.290161 0.697632\n0.820343 0.292633 0.696777\n0.844666 0.295166 0.695923\n0.866760 0.297699 0.695038\n0.886810 0.300171 0.694122\n0.905029 0.302734 0.693298\n0.921600 0.305237 0.692474\n0.936707 0.307861 0.691620\n0.950348 0.310455 0.690765\n0.962677 0.312988 0.690033\n0.973785 0.315674 0.689148\n0.064545 0.279297 0.714172\n0.087921 0.281433 0.713348\n0.112366 0.283508 0.712555\n0.138092 0.285675 0.711700\n0.165192 0.287933 0.710846\n0.193756 0.290100 0.709991\n0.224091 0.292419 0.709167\n0.256348 0.294739 0.708252\n0.290710 0.297028 0.707397\n0.327271 0.299377 0.706543\n0.365875 0.301819 0.705627\n0.406250 0.304138 0.704803\n0.448273 0.306641 0.703888\n0.491547 0.309052 0.703003\n0.535797 0.311584 0.702118\n0.579803 0.314087 0.701233\n0.622131 0.316589 0.700317\n0.662506 0.319153 0.699432\n0.700378 0.321747 0.698517\n0.735565 0.324310 0.697693\n0.767792 0.326965 0.696777\n0.797119 0.329620 0.695923\n0.823547 0.332214 0.695068\n0.847595 0.334900 0.694183\n0.869385 0.337585 0.693298\n0.889191 0.340240 0.692474\n0.907227 0.342987 0.691620\n0.923584 0.345642 0.690857\n0.938477 0.348389 0.690033\n0.951996 0.351196 0.689209\n0.964172 0.353882 0.688416\n0.975067 0.356628 0.687653\n0.067108 0.317352 0.712555\n0.090607 0.319641 0.711700\n0.115234 0.321930 0.710907\n0.141113 0.324310 0.710022\n0.168427 0.326752 0.709167\n0.197205 0.329102 0.708313\n0.227753 0.331573 0.707428\n0.260315 0.334076 0.706573\n0.294983 0.336578 0.705658\n0.331818 0.339142 0.704834\n0.370697 0.341736 0.703949\n0.411285 0.344269 0.703003\n0.453491 0.346924 0.702118\n0.496887 0.349457 0.701263\n0.541290 0.352142 0.700348\n0.585114 0.354889 0.699432\n0.627289 0.357513 0.698578\n0.667328 0.360321 0.697693\n0.704987 0.363037 0.696808\n0.739807 0.365784 0.695953\n0.771698 0.368561 0.695068\n0.800598 0.371338 0.694183\n0.826721 0.374115 0.693359\n0.850464 0.376953 0.692535\n0.871979 0.379761 0.691681\n0.891571 0.382599 0.690857\n0.909393 0.385468 0.690033\n0.925537 0.388306 0.689240\n0.940247 0.391144 0.688446\n0.953613 0.394073 0.687653\n0.965576 0.396881 0.686920\n0.976379 0.399780 0.686157\n0.069702 0.357788 0.710907\n0.093384 0.360321 0.710022\n0.118164 0.362762 0.709229\n0.144226 0.365295 0.708374\n0.171722 0.367920 0.707428\n0.200745 0.370453 0.706604\n0.231567 0.373108 0.705719\n0.264404 0.375793 0.704834\n0.299347 0.378418 0.703979\n0.336456 0.381104 0.703033\n0.375519 0.383850 0.702148\n0.416443 0.386597 0.701324\n0.458832 0.389404 0.700378\n0.502441 0.392151 0.699493\n0.546875 0.395020 0.698608\n0.590485 0.397858 0.697723\n0.632416 0.400665 0.696869\n0.672211 0.403595 0.695984\n0.709503 0.406433 0.695099\n0.743958 0.409302 0.694214\n0.775513 0.412231 0.693390\n0.804047 0.415222 0.692535\n0.829865 0.418060 0.691711\n0.853333 0.421051 0.690887\n0.874542 0.423981 0.690094\n0.893921 0.426941 0.689240\n0.911499 0.429932 0.688446\n0.927490 0.432892 0.687683\n0.942017 0.435852 0.686920\n0.955200 0.438843 0.686157\n0.967010 0.441772 0.685486\n0.977661 0.444824 0.684784\n0.072357 0.400452 0.709259\n0.096222 0.403107 0.708374\n0.121124 0.405701 0.707489\n0.147400 0.408447 0.706604\n0.175140 0.411224 0.705750\n0.204346 0.413879 0.704865\n0.235443 0.416748 0.703979\n0.268524 0.419556 0.703033\n0.303741 0.422333 0.702179\n0.341187 0.425171 0.701324\n0.380493 0.428009 0.700439\n0.421600 0.430969 0.699524\n0.464203 0.433929 0.698608\n0.507935 0.436768 0.697784\n0.552429 0.439789 0.696899\n0.595856 0.442749 0.695984\n0.637573 0.445648 0.695129\n0.677032 0.448700 0.694244\n0.714020 0.451721 0.693390\n0.748138 0.454712 0.692566\n0.779266 0.457764 0.691711\n0.807404 0.460724 0.690918\n0.832977 0.463837 0.690094\n0.856140 0.466888 0.689270\n0.877136 0.469849 0.688507\n0.896240 0.472900 0.687714\n0.913574 0.476044 0.686920\n0.929413 0.479034 0.686188\n0.943756 0.482117 0.685516\n0.956726 0.485138 0.684784\n0.968414 0.488190 0.684113\n0.978882 0.491302 0.683441\n0.075104 0.445007 0.707520\n0.099121 0.447815 0.706635\n0.124268 0.450562 0.705780\n0.150696 0.453461 0.704895\n0.178558 0.456390 0.704010\n0.208069 0.459167 0.703125\n0.239410 0.462128 0.702179\n0.272766 0.465057 0.701355\n0.308258 0.467987 0.700439\n0.345978 0.470978 0.699524\n0.385529 0.473938 0.698669\n0.426849 0.476990 0.697815\n0.469666 0.480042 0.696899\n0.513519 0.483032 0.696045\n0.557953 0.486115 0.695129\n0.601257 0.489227 0.694305\n0.642670 0.492218 0.693420\n0.681915 0.495331 0.692596\n0.718506 0.498474 0.691742\n0.752258 0.501495 0.690918\n0.782990 0.504669 0.690094\n0.810760 0.507721 0.689331\n0.835999 0.510895 0.688538\n0.858856 0.513947 0.687714\n0.879608 0.517120 0.686981\n0.898499 0.520172 0.686188\n0.915680 0.523346 0.685516\n0.931244 0.526367 0.684814\n0.945435 0.529572 0.684113\n0.958221 0.532654 0.683441\n0.969757 0.535706 0.683167\n0.980042 0.538757 0.683167\n0.077942 0.491150 0.705780\n0.102081 0.494080 0.704895\n0.127350 0.496979 0.704041\n0.153992 0.499939 0.703156\n0.182098 0.502930 0.702209\n0.211792 0.505890 0.701385\n0.243408 0.508911 0.700500\n0.276978 0.511932 0.699585\n0.312866 0.515015 0.698700\n0.350830 0.518066 0.697815\n0.390625 0.521118 0.696930\n0.432159 0.524292 0.696075\n0.475128 0.527374 0.695190\n0.519135 0.530487 0.694305\n0.563538 0.533661 0.693451\n0.606628 0.536804 0.692596\n0.647766 0.539856 0.691772\n0.686676 0.542999 0.690948\n0.722900 0.546112 0.690125\n0.756317 0.549255 0.689331\n0.786652 0.552429 0.688538\n0.814148 0.555450 0.687744\n0.838989 0.558533 0.687012\n0.861603 0.561676 0.686249\n0.882080 0.564667 0.685547\n0.900726 0.567749 0.684814\n0.917725 0.570831 0.684143\n0.933075 0.573822 0.683472\n0.947052 0.576813 0.683167\n0.959717 0.579803 0.683167\n0.971069 0.582733 0.683167\n0.981232 0.585693 0.683167\n0.080811 0.538452 0.704102\n0.105072 0.541443 0.703156\n0.130554 0.544403 0.702301\n0.157379 0.547455 0.701385\n0.185669 0.550537 0.700500\n0.215607 0.553497 0.699585\n0.247437 0.556580 0.698700\n0.281372 0.559540 0.697876\n0.317505 0.562622 0.696991\n0.355743 0.565704 0.696106\n0.395782 0.568726 0.695221\n0.437561 0.571777 0.694366\n0.480652 0.574890 0.693451\n0.524750 0.577911 0.692627\n0.569031 0.580963 0.691772\n0.611969 0.584015 0.690948\n0.652832 0.586945 0.690186\n0.691437 0.590027 0.689362\n0.727356 0.593079 0.688568\n0.760284 0.596008 0.687805\n0.790283 0.599060 0.687012\n0.817383 0.601959 0.686310\n0.841949 0.604950 0.685547\n0.864258 0.607880 0.684845\n0.884491 0.610779 0.684143\n0.902954 0.613739 0.683472\n0.919647 0.616669 0.683167\n0.934875 0.619476 0.683167\n0.948700 0.622375 0.683167\n0.961182 0.625214 0.683167\n0.972351 0.627899 0.683167\n0.982391 0.630737 0.683167\n0.083710 0.585297 0.702332\n0.108154 0.588257 0.701416\n0.133789 0.591156 0.700531\n0.160797 0.594086 0.699677\n0.189331 0.597046 0.698730\n0.219513 0.599976 0.697906\n0.251587 0.602936 0.696991\n0.285797 0.605804 0.696136\n0.322205 0.608795 0.695221\n0.360687 0.611755 0.694366\n0.401031 0.614624 0.693542\n0.442932 0.617615 0.692719\n0.486206 0.620544 0.691833\n0.530365 0.623444 0.691010\n0.574585 0.626343 0.690216\n0.617249 0.629303 0.689362\n0.657898 0.632111 0.688599\n0.696106 0.635010 0.687805\n0.731598 0.637817 0.687073\n0.764221 0.640686 0.686310\n0.793823 0.643524 0.685577\n0.820557 0.646301 0.684845\n0.844849 0.649109 0.684174\n0.866852 0.651917 0.683502\n0.886871 0.654633 0.683167\n0.905060 0.657410 0.683167\n0.921631 0.660095 0.683167\n0.936646 0.662720 0.683167\n0.950256 0.665405 0.683167\n0.962555 0.667999 0.683167\n0.973633 0.670593 0.683167\n0.983459 0.673218 0.683167\n0.086670 0.630402 0.700562\n0.111267 0.633179 0.699677\n0.137085 0.635925 0.698761\n0.164246 0.638824 0.697906\n0.192963 0.641510 0.697052\n0.223419 0.644348 0.696136\n0.255829 0.647217 0.695251\n0.290283 0.649963 0.694427\n0.326996 0.652802 0.693573\n0.365723 0.655609 0.692719\n0.406189 0.658295 0.691895\n0.448303 0.661133 0.691040\n0.491730 0.663940 0.690216\n0.536072 0.666565 0.689392\n0.580109 0.669312 0.688599\n0.622406 0.672028 0.687866\n0.662842 0.674774 0.687103\n0.700745 0.677460 0.686340\n0.735840 0.680084 0.685638\n0.768097 0.682800 0.684906\n0.797333 0.685486 0.684174\n0.823730 0.687988 0.683563\n0.847717 0.690582 0.683167\n0.869446 0.693176 0.683167\n0.889191 0.695709 0.683167\n0.907166 0.698212 0.683167\n0.923492 0.700745 0.683167\n0.938354 0.703156 0.683167\n0.951813 0.705627 0.683167\n0.963928 0.707977 0.683167\n0.974854 0.710419 0.683167\n0.984528 0.712738 0.683167\n0.089661 0.673004 0.698853\n0.114410 0.675690 0.697937\n0.140411 0.678314 0.697083\n0.167816 0.680939 0.696198\n0.196716 0.683563 0.695282\n0.227386 0.686188 0.694427\n0.260040 0.688873 0.693573\n0.294830 0.691467 0.692749\n0.331787 0.694092 0.691895\n0.370758 0.696747 0.691040\n0.411438 0.699249 0.690247\n0.453735 0.701874 0.689423\n0.497314 0.704468 0.688599\n0.541687 0.706970 0.687866\n0.585510 0.709503 0.687103\n0.627594 0.711945 0.686371\n0.667664 0.714478 0.685638\n0.705261 0.717010 0.684906\n0.740051 0.719421 0.684204\n0.771851 0.721863 0.683563\n0.800720 0.724274 0.683167\n0.826782 0.726624 0.683167\n0.850464 0.729004 0.683167\n0.871979 0.731384 0.683167\n0.891418 0.733673 0.683167\n0.909241 0.735931 0.683167\n0.925354 0.738159 0.683167\n0.940033 0.740417 0.683167\n0.953308 0.742615 0.683167\n0.965271 0.744781 0.683167\n0.976044 0.746918 0.683167\n0.985565 0.749054 0.683167\n0.092712 0.712830 0.697083\n0.117615 0.715302 0.696198\n0.143799 0.717712 0.695374\n0.171356 0.720215 0.694458\n0.200470 0.722595 0.693604\n0.231415 0.725067 0.692780\n0.264343 0.727509 0.691925\n0.299377 0.729919 0.691101\n0.336609 0.732330 0.690247\n0.375854 0.734741 0.689423\n0.416748 0.737091 0.688721\n0.459229 0.739441 0.687897\n0.502838 0.741821 0.687164\n0.547272 0.744080 0.686371\n0.590912 0.746399 0.685669\n0.632721 0.748657 0.684967\n0.672516 0.750916 0.684204\n0.709778 0.753235 0.683563\n0.744141 0.755371 0.683167\n0.775604 0.757629 0.683167\n0.804077 0.759827 0.683167\n0.829803 0.761902 0.683167\n0.853180 0.764008 0.683167\n0.874390 0.766144 0.683167\n0.893646 0.768188 0.683167\n0.911194 0.770233 0.683167\n0.927155 0.772217 0.683167\n0.941650 0.774200 0.683167\n0.954712 0.776215 0.683167\n0.966553 0.778137 0.683167\n0.977142 0.779999 0.683167\n0.986542 0.781891 0.683167\n0.095795 0.749420 0.695374\n0.120819 0.751648 0.694519\n0.147156 0.753906 0.693634\n0.174988 0.756195 0.692780\n0.204315 0.758362 0.691956\n0.235474 0.760590 0.691132\n0.268677 0.762848 0.690277\n0.303925 0.765015 0.689514\n0.341431 0.767212 0.688721\n0.380890 0.769379 0.687897\n0.421997 0.771454 0.687195\n0.464661 0.773621 0.686401\n0.508331 0.775696 0.685669\n0.552826 0.777771 0.684967\n0.596252 0.779846 0.684265\n0.637787 0.781891 0.683624\n0.677246 0.783936 0.683167\n0.714172 0.785919 0.683167\n0.748138 0.787903 0.683167\n0.779205 0.789856 0.683167\n0.807312 0.791779 0.683167\n0.832703 0.793671 0.683167\n0.855804 0.795563 0.683167\n0.876770 0.797394 0.683167\n0.895813 0.799255 0.683167\n0.913116 0.801086 0.683167\n0.928864 0.802795 0.683167\n0.943176 0.804596 0.683167\n0.956146 0.806335 0.683167\n0.967804 0.808014 0.683167\n0.978271 0.809723 0.683167\n0.987518 0.811371 0.683167\n0.098877 0.782562 0.693634\n0.124115 0.784576 0.692810\n0.150604 0.786621 0.691956\n0.178589 0.788666 0.691132\n0.208130 0.790649 0.690338\n0.239532 0.792664 0.689514\n0.273010 0.794647 0.688721\n0.308624 0.796600 0.687927\n0.346283 0.798553 0.687195\n0.385986 0.800507 0.686401\n0.427277 0.802399 0.685699\n0.470032 0.804291 0.684998\n0.513855 0.806152 0.684296\n0.558258 0.808044 0.683655\n0.601410 0.809875 0.683167\n0.642761 0.811707 0.683167\n0.681946 0.813507 0.683167\n0.718414 0.815338 0.683167\n0.752075 0.817047 0.683167\n0.782715 0.818817 0.683167\n0.810486 0.820526 0.683167\n0.835571 0.822174 0.683167\n0.858398 0.823883 0.683167\n0.879059 0.825470 0.683167\n0.897888 0.827148 0.683167\n0.915039 0.828766 0.683167\n0.930573 0.830322 0.683167\n0.944702 0.831848 0.683167\n0.957489 0.833405 0.683167\n0.968994 0.834900 0.683167\n0.979340 0.836395 0.683167\n0.988434 0.837860 0.683167\n0.102020 0.812378 0.692017\n0.127380 0.814209 0.691193\n0.154083 0.816010 0.690338\n0.182251 0.817902 0.689545\n0.212006 0.819641 0.688751\n0.243652 0.821442 0.687988\n0.277374 0.823273 0.687195\n0.313263 0.824982 0.686462\n0.351196 0.826752 0.685699\n0.390991 0.828461 0.685028\n0.432526 0.830170 0.684296\n0.475433 0.831879 0.683655\n0.519348 0.833527 0.683167\n0.563660 0.835236 0.683167\n0.606628 0.836914 0.683167\n0.647614 0.838470 0.683167\n0.686462 0.840118 0.683167\n0.722656 0.841705 0.683167\n0.755920 0.843262 0.683167\n0.786133 0.844788 0.683167\n0.813538 0.846313 0.683167\n0.838318 0.847839 0.683167\n0.860870 0.849335 0.683167\n0.881287 0.850769 0.683167\n0.899902 0.852203 0.683167\n0.916840 0.853638 0.683167\n0.932190 0.855042 0.683167\n0.946167 0.856415 0.683167\n0.958801 0.857788 0.683167\n0.970154 0.859070 0.683167\n0.980316 0.860413 0.683167\n0.989288 0.861633 0.683167\n0.105164 0.839203 0.690369\n0.130676 0.840820 0.689575\n0.157562 0.842499 0.688782\n0.185913 0.844147 0.687988\n0.215912 0.845703 0.687225\n0.247803 0.847351 0.686462\n0.281738 0.848969 0.685730\n0.317841 0.850525 0.685028\n0.356049 0.852112 0.684357\n0.396057 0.853607 0.683685\n0.437775 0.855194 0.683167\n0.480804 0.856689 0.683167\n0.524780 0.858185 0.683167\n0.569000 0.859680 0.683167\n0.611725 0.861176 0.683167\n0.652435 0.862610 0.683167\n0.690918 0.864044 0.683167\n0.726746 0.865479 0.683167\n0.759613 0.866852 0.683167\n0.789490 0.868256 0.683167\n0.816498 0.869568 0.683167\n0.841034 0.870941 0.683167\n0.863281 0.872253 0.683167\n0.883484 0.873535 0.683167\n0.901855 0.874817 0.683167\n0.918579 0.876068 0.683167\n0.933777 0.877289 0.683167\n0.947571 0.878510 0.683167\n0.960052 0.879730 0.683167\n0.971252 0.880890 0.683167\n0.981293 0.881989 0.683167\n0.990143 0.883148 0.683167\n0.108307 0.863342 0.688782\n0.134003 0.864807 0.688019\n0.161011 0.866302 0.687256\n0.189606 0.867798 0.686523\n0.219788 0.869202 0.685791\n0.251862 0.870697 0.685059\n0.286072 0.872101 0.684357\n0.322449 0.873535 0.683685\n0.360931 0.874939 0.683167\n0.401093 0.876312 0.683167\n0.442932 0.877716 0.683167\n0.486115 0.879089 0.683167\n0.530182 0.880402 0.683167\n0.574188 0.881744 0.683167\n0.616699 0.883057 0.683167\n0.657104 0.884338 0.683167\n0.695251 0.885620 0.683167\n0.730713 0.886902 0.683167\n0.763184 0.888092 0.683167\n0.792725 0.889374 0.683167\n0.819427 0.890533 0.683167\n0.843628 0.891754 0.683167\n0.865631 0.892914 0.683167\n0.885559 0.894073 0.683167\n0.903748 0.895203 0.683167\n0.920258 0.896301 0.683167\n0.935303 0.897369 0.683167\n0.948914 0.898468 0.683167\n0.961243 0.899475 0.683167\n0.972321 0.900543 0.683167\n0.982208 0.901550 0.683167\n0.990936 0.902527 0.683167\n0.111511 0.885132 0.687256\n0.137329 0.886444 0.686554\n0.164520 0.887817 0.685791\n0.193268 0.889160 0.685059\n0.223694 0.890411 0.684387\n0.256042 0.891754 0.683716\n0.290497 0.893005 0.683167\n0.327087 0.894287 0.683167\n0.365784 0.895569 0.683167\n0.406097 0.896759 0.683167\n0.448120 0.898010 0.683167\n0.491364 0.899261 0.683167\n0.535522 0.900421 0.683167\n0.579285 0.901611 0.683167\n0.621582 0.902832 0.683167\n0.661682 0.903900 0.683167\n0.699524 0.905090 0.683167\n0.734528 0.906189 0.683167\n0.766693 0.907318 0.683167\n0.795837 0.908417 0.683167\n0.822235 0.909454 0.683167\n0.846161 0.910522 0.683167\n0.867859 0.911560 0.683167\n0.887604 0.912537 0.683167\n0.905548 0.913544 0.683167\n0.921906 0.914581 0.683167\n0.936737 0.915527 0.683167\n0.950226 0.916473 0.683167\n0.962372 0.917389 0.683167\n0.973358 0.918274 0.683167\n0.983093 0.919159 0.683167\n0.991699 0.920013 0.683167\n0.114655 0.904816 0.685822\n0.140656 0.905975 0.685120\n0.168030 0.907196 0.684387\n0.196899 0.908356 0.683716\n0.227570 0.909546 0.683167\n0.260162 0.910736 0.683167\n0.294891 0.911865 0.683167\n0.331696 0.913025 0.683167\n0.370514 0.914154 0.683167\n0.411102 0.915253 0.683167\n0.453217 0.916351 0.683167\n0.496552 0.917450 0.683167\n0.540710 0.918518 0.683167\n0.584320 0.919556 0.683167\n0.626221 0.920593 0.683167\n0.666168 0.921631 0.683167\n0.703644 0.922668 0.683167\n0.738281 0.923615 0.683167\n0.770050 0.924622 0.683167\n0.798889 0.925598 0.683167\n0.824890 0.926514 0.683167\n0.848541 0.927460 0.683167\n0.870026 0.928375 0.683167\n0.889526 0.929260 0.683167\n0.907318 0.930176 0.683167\n0.923431 0.931030 0.683167\n0.938110 0.931824 0.683167\n0.951447 0.932739 0.683167\n0.963470 0.933502 0.683167\n0.974304 0.934296 0.683167\n0.983917 0.935059 0.683167\n0.992401 0.935791 0.683167\n0.117828 0.922577 0.684387\n0.143982 0.923615 0.683777\n0.171509 0.924713 0.683167\n0.200562 0.925781 0.683167\n0.231445 0.926819 0.683167\n0.264252 0.927887 0.683167\n0.299164 0.928864 0.683167\n0.336304 0.929901 0.683167\n0.375305 0.930939 0.683167\n0.416016 0.931915 0.683167\n0.458221 0.932922 0.683167\n0.501648 0.933868 0.683167\n0.545807 0.934784 0.683167\n0.589233 0.935730 0.683167\n0.630890 0.936676 0.683167\n0.670471 0.937592 0.683167\n0.707611 0.938477 0.683167\n0.741943 0.939331 0.683167\n0.773315 0.940216 0.683167\n0.801788 0.941071 0.683167\n0.827515 0.941925 0.683167\n0.850891 0.942719 0.683167\n0.872101 0.943512 0.683167\n0.891388 0.944305 0.683167\n0.908966 0.945068 0.683167\n0.924927 0.945831 0.683167\n0.939453 0.946594 0.683167\n0.952606 0.947327 0.683167\n0.964508 0.947998 0.683167\n0.975189 0.948700 0.683167\n0.984711 0.949371 0.683167\n0.993073 0.950012 0.683167\n0.120972 0.938538 0.683167\n0.147247 0.939514 0.683167\n0.175018 0.940491 0.683167\n0.204254 0.941406 0.683167\n0.235321 0.942352 0.683167\n0.268372 0.943298 0.683167\n0.303497 0.944214 0.683167\n0.340790 0.945129 0.683167\n0.380035 0.946045 0.683167\n0.420868 0.946869 0.683167\n0.463165 0.947784 0.683167\n0.506622 0.948608 0.683167\n0.550751 0.949463 0.683167\n0.593994 0.950317 0.683167\n0.635376 0.951111 0.683167\n0.674713 0.951935 0.683167\n0.711426 0.952698 0.683167\n0.745392 0.953491 0.683167\n0.776459 0.954254 0.683167\n0.804565 0.955017 0.683167\n0.829987 0.955719 0.683167\n0.853119 0.956451 0.683167\n0.874084 0.957153 0.683167\n0.893188 0.957825 0.683167\n0.910553 0.958496 0.683167\n0.926331 0.959137 0.683167\n0.940735 0.959808 0.683167\n0.953766 0.960449 0.683167\n0.965515 0.961029 0.683167\n0.976044 0.961639 0.683167\n0.985443 0.962219 0.683167\n0.993683 0.962769 0.683167\n0.124146 0.952972 0.683167\n0.150574 0.953796 0.683167\n0.178467 0.954651 0.683167\n0.207886 0.955505 0.683167\n0.239197 0.956360 0.683167\n0.272400 0.957184 0.683167\n0.307800 0.957977 0.683167\n0.345245 0.958771 0.683167\n0.384674 0.959595 0.683167\n0.425629 0.960358 0.683167\n0.468109 0.961121 0.683167\n0.511566 0.961853 0.683167\n0.555695 0.962585 0.683167\n0.598663 0.963348 0.683167\n0.639771 0.964050 0.683167\n0.678741 0.964752 0.683167\n0.715179 0.965454 0.683167\n0.748779 0.966095 0.683167\n0.779449 0.966766 0.683167\n0.807220 0.967438 0.683167\n0.832397 0.968048 0.683167\n0.855194 0.968689 0.683167\n0.875977 0.969299 0.683167\n0.894867 0.969879 0.683167\n0.912048 0.970490 0.683167\n0.927704 0.971039 0.683167\n0.941925 0.971588 0.683167\n0.954803 0.972137 0.683167\n0.966431 0.972656 0.683167\n0.976868 0.973175 0.683167\n0.986145 0.973633 0.683167\n0.994293 0.974121 0.683167\n0.127289 0.965820 0.683167\n0.153809 0.966614 0.683167\n0.181885 0.967346 0.683167\n0.211487 0.968079 0.683167\n0.242981 0.968842 0.683167\n0.276459 0.969543 0.683167\n0.312042 0.970245 0.683167\n0.349731 0.970947 0.683167\n0.389160 0.971649 0.683167\n0.430328 0.972321 0.683167\n0.472870 0.972992 0.683167\n0.516388 0.973633 0.683167\n0.560394 0.974304 0.683167\n0.603119 0.974945 0.683167\n0.643982 0.975555 0.683167\n0.682617 0.976135 0.683167\n0.718750 0.976746 0.683167\n0.752014 0.977356 0.683167\n0.782318 0.977905 0.683167\n0.809814 0.978485 0.683167\n0.834686 0.979004 0.683167\n0.857269 0.979553 0.683167\n0.877777 0.980042 0.683167\n0.896484 0.980560 0.683167\n0.913483 0.981079 0.683167\n0.928955 0.981537 0.683167\n0.943054 0.982025 0.683167\n0.955780 0.982513 0.683167\n0.967285 0.982910 0.683167\n0.977631 0.983337 0.683167\n0.986786 0.983765 0.683167\n0.994843 0.984161 0.683167\n0.044128 0.005463 0.757568\n0.066193 0.006317 0.757141\n0.089172 0.007141 0.756775\n0.113312 0.008057 0.756287\n0.138672 0.009003 0.755798\n0.165283 0.009888 0.755249\n0.193451 0.010864 0.754761\n0.223267 0.011902 0.754181\n0.255005 0.012878 0.753662\n0.288879 0.013916 0.753082\n0.324799 0.015015 0.752472\n0.362671 0.016113 0.751862\n0.402496 0.017242 0.751221\n0.443817 0.018341 0.750549\n0.486481 0.019501 0.749939\n0.530182 0.020691 0.749237\n0.573853 0.021881 0.748505\n0.616058 0.023132 0.747864\n0.656342 0.024353 0.747101\n0.694305 0.025635 0.746368\n0.729706 0.026917 0.745605\n0.762238 0.028198 0.744904\n0.791779 0.029541 0.744080\n0.818634 0.030914 0.743347\n0.842926 0.032257 0.742584\n0.865051 0.033630 0.741791\n0.885162 0.035004 0.740997\n0.903442 0.036407 0.740204\n0.920105 0.037842 0.739380\n0.935303 0.039307 0.738525\n0.949036 0.040710 0.737762\n0.961487 0.042236 0.736938\n0.045776 0.026825 0.756775\n0.067963 0.027832 0.756287\n0.091095 0.028748 0.755829\n0.115387 0.029694 0.755310\n0.140839 0.030731 0.754761\n0.167694 0.031738 0.754242\n0.196045 0.032837 0.753662\n0.226105 0.033905 0.753082\n0.258057 0.035004 0.752502\n0.292175 0.036133 0.751892\n0.328369 0.037292 0.751251\n0.366577 0.038452 0.750610\n0.406555 0.039673 0.749939\n0.448120 0.040894 0.749268\n0.490997 0.042145 0.748566\n0.534882 0.043427 0.747894\n0.578400 0.044678 0.747131\n0.620483 0.046021 0.746399\n0.660645 0.047363 0.745636\n0.698334 0.048706 0.744934\n0.733521 0.050110 0.744141\n0.765808 0.051514 0.743378\n0.795044 0.052887 0.742584\n0.821594 0.054352 0.741821\n0.845612 0.055756 0.741028\n0.867523 0.057220 0.740204\n0.887421 0.058746 0.739380\n0.905518 0.060211 0.738556\n0.922028 0.061737 0.737762\n0.937012 0.063263 0.736938\n0.950623 0.064789 0.736145\n0.962921 0.066376 0.735321\n0.047546 0.049286 0.755829\n0.069824 0.050293 0.755310\n0.093109 0.051331 0.754822\n0.117523 0.052429 0.754242\n0.143188 0.053528 0.753693\n0.170227 0.054596 0.753113\n0.198792 0.055786 0.752502\n0.229065 0.056976 0.751892\n0.261230 0.058167 0.751251\n0.295624 0.059418 0.750610\n0.332123 0.060638 0.749969\n0.370514 0.061920 0.749268\n0.410767 0.063232 0.748566\n0.452515 0.064514 0.747894\n0.495636 0.065887 0.747162\n0.539612 0.067291 0.746429\n0.583069 0.068634 0.745697\n0.625061 0.070038 0.744934\n0.664978 0.071503 0.744141\n0.702454 0.072906 0.743408\n0.737335 0.074402 0.742615\n0.769226 0.075897 0.741852\n0.798248 0.077393 0.741028\n0.824493 0.078918 0.740234\n0.848328 0.080444 0.739410\n0.869995 0.082031 0.738617\n0.889709 0.083618 0.737793\n0.907593 0.085175 0.736969\n0.923920 0.086823 0.736145\n0.938782 0.088409 0.735321\n0.952209 0.090057 0.734497\n0.964325 0.091736 0.733673\n0.049377 0.072754 0.754822\n0.071838 0.073883 0.754272\n0.095245 0.075012 0.753723\n0.119812 0.076202 0.753143\n0.145660 0.077423 0.752533\n0.172852 0.078613 0.751953\n0.201630 0.079895 0.751282\n0.232208 0.081177 0.750641\n0.264618 0.082458 0.750000\n0.299286 0.083801 0.749329\n0.335938 0.085114 0.748596\n0.374725 0.086517 0.747925\n0.415192 0.087921 0.747162\n0.457123 0.089325 0.746460\n0.500397 0.090790 0.745697\n0.544464 0.092255 0.744965\n0.587860 0.093750 0.744171\n0.629669 0.095276 0.743408\n0.669373 0.096832 0.742615\n0.706635 0.098358 0.741882\n0.741211 0.099945 0.741058\n0.772797 0.101501 0.740265\n0.801453 0.103119 0.739441\n0.827484 0.104767 0.738617\n0.851013 0.106384 0.737823\n0.872467 0.108063 0.737000\n0.891937 0.109741 0.736176\n0.909698 0.111420 0.735382\n0.925842 0.113129 0.734528\n0.940491 0.114868 0.733704\n0.953766 0.116608 0.732910\n0.965759 0.118378 0.732056\n0.051331 0.097504 0.753723\n0.073914 0.098694 0.753143\n0.097504 0.099945 0.752563\n0.122223 0.101196 0.751984\n0.148224 0.102539 0.751282\n0.175598 0.103851 0.750671\n0.204620 0.105225 0.750000\n0.235352 0.106598 0.749359\n0.268097 0.108032 0.748627\n0.303040 0.109467 0.747925\n0.339996 0.110931 0.747192\n0.378967 0.112427 0.746460\n0.419678 0.113953 0.745728\n0.461884 0.115448 0.744995\n0.505280 0.117035 0.744202\n0.549438 0.118622 0.743439\n0.592712 0.120178 0.742645\n0.634369 0.121826 0.741882\n0.673828 0.123474 0.741089\n0.710846 0.125153 0.740265\n0.745117 0.126831 0.739471\n0.776367 0.128540 0.738647\n0.804749 0.130249 0.737885\n0.830444 0.132019 0.737061\n0.853760 0.133759 0.736206\n0.874939 0.135529 0.735382\n0.894257 0.137360 0.734528\n0.911743 0.139130 0.733734\n0.927734 0.140961 0.732910\n0.942169 0.142761 0.732117\n0.955322 0.144623 0.731262\n0.967194 0.146545 0.730469\n0.053406 0.123535 0.752563\n0.076111 0.124847 0.751984\n0.099823 0.126160 0.751343\n0.124725 0.127625 0.750671\n0.150909 0.129059 0.750031\n0.178467 0.130463 0.749359\n0.207703 0.131958 0.748627\n0.238678 0.133453 0.747955\n0.271698 0.135010 0.747284\n0.306915 0.136597 0.746521\n0.344177 0.138123 0.745789\n0.383392 0.139740 0.744995\n0.424347 0.141418 0.744202\n0.466736 0.143036 0.743469\n0.510345 0.144714 0.742676\n0.554565 0.146454 0.741943\n0.597656 0.148163 0.741119\n0.639099 0.149933 0.740295\n0.678345 0.151611 0.739532\n0.715057 0.153442 0.738678\n0.749023 0.155273 0.737885\n0.779938 0.157074 0.737091\n0.808014 0.158936 0.736237\n0.833435 0.160828 0.735413\n0.856476 0.162659 0.734558\n0.877441 0.164581 0.733795\n0.896484 0.166534 0.732941\n0.913818 0.168457 0.732147\n0.929626 0.170410 0.731293\n0.943939 0.172333 0.730499\n0.956909 0.174316 0.729675\n0.968597 0.176331 0.728821\n0.055573 0.151031 0.751343\n0.078400 0.152496 0.750671\n0.102264 0.153992 0.750061\n0.127319 0.155487 0.749390\n0.153656 0.157043 0.748657\n0.181488 0.158630 0.747986\n0.210907 0.160248 0.747284\n0.242126 0.161865 0.746552\n0.275421 0.163574 0.745789\n0.310913 0.165253 0.745026\n0.348419 0.166931 0.744324\n0.387939 0.168671 0.743500\n0.429138 0.170502 0.742676\n0.471710 0.172241 0.741974\n0.515442 0.174072 0.741119\n0.559570 0.175873 0.740356\n0.602692 0.177734 0.739532\n0.643951 0.179657 0.738678\n0.682861 0.181549 0.737915\n0.719360 0.183502 0.737091\n0.752930 0.185455 0.736237\n0.783539 0.187378 0.735443\n0.811249 0.189392 0.734619\n0.836426 0.191406 0.733795\n0.859192 0.193390 0.732971\n0.879944 0.195465 0.732147\n0.898743 0.197479 0.731354\n0.915894 0.199554 0.730499\n0.931488 0.201660 0.729675\n0.945648 0.203766 0.728912\n0.958435 0.205872 0.728058\n0.969971 0.208008 0.727295\n0.057800 0.180237 0.750061\n0.080780 0.181824 0.749390\n0.104797 0.183441 0.748718\n0.130035 0.185120 0.747986\n0.156494 0.186798 0.747314\n0.184570 0.188538 0.746552\n0.214233 0.190338 0.745819\n0.245697 0.192078 0.745056\n0.279297 0.193878 0.744324\n0.315063 0.195740 0.743500\n0.352875 0.197571 0.742737\n0.392578 0.199493 0.741974\n0.434052 0.201385 0.741180\n0.476776 0.203308 0.740356\n0.520721 0.205292 0.739563\n0.564819 0.207245 0.738708\n0.607697 0.209290 0.737946\n0.648773 0.211304 0.737122\n0.687408 0.213379 0.736267\n0.723602 0.215424 0.735443\n0.756897 0.217560 0.734619\n0.787109 0.219635 0.733826\n0.814514 0.221771 0.732971\n0.839386 0.223969 0.732178\n0.861877 0.226105 0.731354\n0.882385 0.228302 0.730530\n0.900970 0.230499 0.729706\n0.917938 0.232727 0.728912\n0.933350 0.234955 0.728088\n0.947327 0.237213 0.727325\n0.959961 0.239502 0.726471\n0.971344 0.241821 0.725708\n0.060120 0.211304 0.748718\n0.083191 0.213043 0.748016\n0.107391 0.214844 0.747345\n0.132812 0.216675 0.746582\n0.159515 0.218475 0.745850\n0.187775 0.220367 0.745056\n0.217651 0.222351 0.744354\n0.249390 0.224274 0.743561\n0.283264 0.226227 0.742767\n0.319336 0.228241 0.742004\n0.357391 0.230194 0.741211\n0.397369 0.232300 0.740387\n0.438904 0.234314 0.739594\n0.481934 0.236481 0.738770\n0.525970 0.238586 0.737946\n0.570038 0.240723 0.737152\n0.612793 0.242950 0.736298\n0.653656 0.245117 0.735474\n0.692017 0.247314 0.734680\n0.727875 0.249603 0.733856\n0.760803 0.251831 0.733002\n0.790680 0.254120 0.732208\n0.817749 0.256439 0.731384\n0.842316 0.258789 0.730560\n0.864563 0.261078 0.729736\n0.884827 0.263458 0.728943\n0.903229 0.265778 0.728119\n0.919983 0.268188 0.727325\n0.935211 0.270630 0.726562\n0.949005 0.273041 0.725769\n0.961487 0.275482 0.725006\n0.972687 0.277924 0.724182\n0.062531 0.244507 0.747345\n0.085785 0.246368 0.746613\n0.110138 0.248383 0.745880\n0.135712 0.250366 0.745117\n0.162567 0.252411 0.744385\n0.191040 0.254456 0.743591\n0.221161 0.256592 0.742767\n0.253143 0.258667 0.742035\n0.287323 0.260803 0.741211\n0.323669 0.263000 0.740417\n0.362030 0.265167 0.739594\n0.402222 0.267456 0.738800\n0.444031 0.269623 0.737976\n0.487213 0.271942 0.737152\n0.531403 0.274292 0.736298\n0.575348 0.276581 0.735535\n0.617981 0.278961 0.734680\n0.658478 0.281342 0.733856\n0.696625 0.283722 0.733032\n0.732147 0.286194 0.732208\n0.764709 0.288666 0.731415\n0.794220 0.291077 0.730591\n0.820953 0.293579 0.729736\n0.845215 0.296051 0.728973\n0.867218 0.298553 0.728119\n0.887238 0.301117 0.727356\n0.905426 0.303619 0.726593\n0.921997 0.306244 0.725769\n0.937012 0.308868 0.725006\n0.950684 0.311371 0.724243\n0.962982 0.314026 0.723511\n0.974030 0.316620 0.722717\n0.065033 0.280090 0.745880\n0.088379 0.282196 0.745148\n0.112915 0.284363 0.744385\n0.138672 0.286530 0.743591\n0.165771 0.288727 0.742828\n0.194458 0.290985 0.742035\n0.224792 0.293304 0.741241\n0.257050 0.295563 0.740448\n0.291504 0.297943 0.739624\n0.328094 0.300232 0.738861\n0.366730 0.302673 0.738037\n0.407227 0.305084 0.737183\n0.449219 0.307465 0.736359\n0.492554 0.309998 0.735565\n0.536865 0.312500 0.734711\n0.580719 0.314941 0.733887\n0.623077 0.317566 0.733093\n0.663391 0.320190 0.732269\n0.701233 0.322662 0.731445\n0.736359 0.325317 0.730591\n0.768585 0.327942 0.729797\n0.797729 0.330566 0.728973\n0.824158 0.333252 0.728180\n0.848114 0.335876 0.727386\n0.869843 0.338562 0.726593\n0.889618 0.341248 0.725800\n0.907593 0.343964 0.725037\n0.923981 0.346680 0.724274\n0.938812 0.349426 0.723511\n0.952271 0.352142 0.722748\n0.964417 0.354919 0.722076\n0.975342 0.357697 0.721283\n0.067566 0.318237 0.744415\n0.091095 0.320496 0.743622\n0.115784 0.322845 0.742828\n0.141693 0.325226 0.742065\n0.169006 0.327576 0.741272\n0.197876 0.330078 0.740448\n0.228516 0.332489 0.739624\n0.261078 0.335022 0.738861\n0.295837 0.337524 0.738037\n0.332672 0.340027 0.737213\n0.371582 0.342621 0.736389\n0.412262 0.345245 0.735565\n0.454468 0.347809 0.734741\n0.498016 0.350494 0.733917\n0.542358 0.353149 0.733093\n0.586090 0.355835 0.732300\n0.628265 0.358582 0.731445\n0.668304 0.361359 0.730652\n0.705780 0.364014 0.729828\n0.740570 0.366760 0.728973\n0.772400 0.369568 0.728210\n0.801239 0.372314 0.727386\n0.827332 0.375183 0.726624\n0.850952 0.377991 0.725830\n0.872467 0.380798 0.725067\n0.891998 0.383667 0.724274\n0.909790 0.386475 0.723541\n0.925934 0.389343 0.722809\n0.940613 0.392242 0.722076\n0.953857 0.395111 0.721313\n0.965881 0.397949 0.720642\n0.976593 0.400818 0.719971\n0.070251 0.358765 0.742859\n0.093872 0.361206 0.742096\n0.118713 0.363739 0.741272\n0.144867 0.366333 0.740479\n0.172302 0.368835 0.739655\n0.201416 0.371429 0.738892\n0.232269 0.374023 0.738068\n0.265137 0.376740 0.737213\n0.300171 0.379456 0.736420\n0.337311 0.382111 0.735596\n0.376465 0.384888 0.734741\n0.417419 0.387665 0.733917\n0.459808 0.390411 0.733124\n0.503479 0.393188 0.732300\n0.547913 0.396057 0.731476\n0.591492 0.398834 0.730682\n0.633392 0.401733 0.729828\n0.673157 0.404633 0.729004\n0.710327 0.407501 0.728241\n0.744781 0.410400 0.727417\n0.776215 0.413300 0.726654\n0.804688 0.416260 0.725830\n0.830475 0.419189 0.725067\n0.853790 0.422058 0.724304\n0.875061 0.425110 0.723602\n0.894379 0.428040 0.722809\n0.911865 0.430969 0.722107\n0.927887 0.434052 0.721405\n0.942352 0.437012 0.720642\n0.955444 0.439941 0.719971\n0.967285 0.442902 0.719299\n0.977844 0.445892 0.718658\n0.072876 0.401459 0.741333\n0.096741 0.404053 0.740509\n0.121735 0.406738 0.739685\n0.148041 0.409485 0.738892\n0.175720 0.412201 0.738098\n0.205048 0.414978 0.737274\n0.236115 0.417694 0.736450\n0.269287 0.420502 0.735626\n0.304596 0.423401 0.734772\n0.342072 0.426239 0.734009\n0.381439 0.429138 0.733154\n0.422577 0.432037 0.732330\n0.465179 0.434906 0.731506\n0.509033 0.437927 0.730682\n0.553467 0.440887 0.729889\n0.596832 0.443817 0.729034\n0.638550 0.446808 0.728241\n0.677979 0.449738 0.727478\n0.714844 0.452759 0.726654\n0.748932 0.455811 0.725861\n0.779938 0.458832 0.725098\n0.808075 0.461884 0.724304\n0.833527 0.464905 0.723602\n0.856598 0.467957 0.722839\n0.877594 0.471039 0.722107\n0.896667 0.474091 0.721405\n0.913971 0.477112 0.720673\n0.929779 0.480194 0.720001\n0.944031 0.483215 0.719360\n0.957001 0.486237 0.718658\n0.968658 0.489349 0.718048\n0.979065 0.492340 0.717438\n0.075653 0.446075 0.739777\n0.099640 0.448822 0.738922\n0.124817 0.451630 0.738129\n0.151276 0.454468 0.737305\n0.179169 0.457336 0.736450\n0.208771 0.460266 0.735626\n0.240082 0.463135 0.734833\n0.273529 0.466095 0.734009\n0.309174 0.469116 0.733154\n0.346832 0.472046 0.732361\n0.386536 0.475037 0.731506\n0.427856 0.478088 0.730713\n0.470642 0.481110 0.729919\n0.514618 0.484161 0.729126\n0.558960 0.487213 0.728271\n0.602173 0.490295 0.727478\n0.643677 0.493408 0.726715\n0.682770 0.496399 0.725922\n0.719360 0.499542 0.725159\n0.753052 0.502747 0.724365\n0.783661 0.505737 0.723633\n0.811432 0.508881 0.722870\n0.836609 0.512085 0.722137\n0.859375 0.515106 0.721436\n0.880096 0.518219 0.720703\n0.898926 0.521362 0.720001\n0.916077 0.524445 0.719360\n0.931610 0.527557 0.718719\n0.945740 0.530640 0.718109\n0.958496 0.533752 0.717438\n0.970032 0.536865 0.717377\n0.980286 0.539856 0.717377\n0.078491 0.492218 0.738129\n0.102600 0.495117 0.737335\n0.127991 0.498047 0.736511\n0.154572 0.500977 0.735657\n0.182739 0.503998 0.734863\n0.212524 0.507050 0.734039\n0.244110 0.510010 0.733185\n0.277863 0.513123 0.732391\n0.313782 0.516144 0.731567\n0.351715 0.519165 0.730743\n0.391602 0.522339 0.729919\n0.433197 0.525421 0.729126\n0.476166 0.528473 0.728302\n0.520172 0.531677 0.727509\n0.564545 0.534760 0.726746\n0.607574 0.537933 0.725922\n0.648773 0.541046 0.725159\n0.687500 0.544189 0.724396\n0.723755 0.547302 0.723633\n0.757080 0.550446 0.722870\n0.787323 0.553497 0.722168\n0.814728 0.556641 0.721436\n0.839569 0.559723 0.720703\n0.862061 0.562744 0.720032\n0.882538 0.565857 0.719391\n0.901154 0.568848 0.718719\n0.918060 0.571869 0.718109\n0.933441 0.574982 0.717438\n0.947388 0.577911 0.717377\n0.959991 0.580902 0.717377\n0.971313 0.583862 0.717377\n0.981445 0.586792 0.717377\n0.081329 0.539612 0.736511\n0.105652 0.542603 0.735687\n0.131165 0.545532 0.734863\n0.157959 0.548553 0.734070\n0.186310 0.551575 0.733215\n0.216370 0.554657 0.732391\n0.248260 0.557617 0.731598\n0.282227 0.560638 0.730743\n0.318420 0.563782 0.729950\n0.356628 0.566742 0.729156\n0.396790 0.569885 0.728302\n0.438599 0.572937 0.727509\n0.481628 0.575928 0.726746\n0.525818 0.579010 0.725952\n0.570038 0.582001 0.725189\n0.612915 0.585083 0.724396\n0.653778 0.588104 0.723663\n0.692261 0.591095 0.722900\n0.728119 0.594116 0.722168\n0.761078 0.597168 0.721466\n0.790924 0.600128 0.720764\n0.817993 0.603058 0.720062\n0.842529 0.606079 0.719391\n0.864746 0.608948 0.718750\n0.884979 0.611908 0.718140\n0.903320 0.614838 0.717468\n0.920013 0.617645 0.717377\n0.935242 0.620544 0.717377\n0.948975 0.623322 0.717377\n0.961426 0.626160 0.717377\n0.972595 0.628998 0.717377\n0.982544 0.631683 0.717377\n0.084259 0.586426 0.734894\n0.108704 0.589325 0.734070\n0.134399 0.592255 0.733215\n0.161438 0.595123 0.732422\n0.189972 0.598114 0.731598\n0.220245 0.601044 0.730774\n0.252380 0.603973 0.729980\n0.286621 0.606964 0.729187\n0.323151 0.609894 0.728333\n0.361603 0.612793 0.727539\n0.401947 0.615753 0.726776\n0.443970 0.618744 0.725952\n0.487213 0.621582 0.725220\n0.531525 0.624542 0.724426\n0.575562 0.627350 0.723694\n0.618164 0.630280 0.722992\n0.658813 0.633179 0.722198\n0.696930 0.636017 0.721497\n0.732422 0.638885 0.720795\n0.764984 0.641754 0.720062\n0.794464 0.644501 0.719421\n0.821198 0.647369 0.718750\n0.845398 0.650146 0.718140\n0.867340 0.652893 0.717529\n0.887299 0.655640 0.717377\n0.905457 0.658295 0.717377\n0.921967 0.661072 0.717377\n0.936951 0.663757 0.717377\n0.950562 0.666351 0.717377\n0.962860 0.668945 0.717377\n0.973877 0.671600 0.717377\n0.983673 0.674103 0.717377\n0.087219 0.631348 0.733307\n0.111847 0.634155 0.732483\n0.137695 0.637024 0.731628\n0.164917 0.639771 0.730804\n0.193695 0.642609 0.730042\n0.224182 0.645416 0.729187\n0.256592 0.648193 0.728394\n0.291138 0.651001 0.727570\n0.327911 0.653809 0.726776\n0.366608 0.656555 0.725983\n0.407196 0.659363 0.725220\n0.449341 0.662140 0.724457\n0.492798 0.664856 0.723694\n0.537170 0.667633 0.722992\n0.581024 0.670349 0.722260\n0.623444 0.673065 0.721497\n0.663757 0.675812 0.720795\n0.701569 0.678436 0.720154\n0.736664 0.681122 0.719421\n0.768829 0.683777 0.718781\n0.797943 0.686340 0.718170\n0.824310 0.688995 0.717529\n0.848236 0.691589 0.717377\n0.869904 0.694092 0.717377\n0.889618 0.696625 0.717377\n0.907532 0.699097 0.717377\n0.923828 0.701660 0.717377\n0.938690 0.704102 0.717377\n0.952087 0.706482 0.717377\n0.964203 0.708923 0.717377\n0.975067 0.711273 0.717377\n0.984741 0.713562 0.717377\n0.090240 0.673920 0.731659\n0.114990 0.676605 0.730865\n0.141052 0.679260 0.730042\n0.168457 0.681915 0.729218\n0.197449 0.684540 0.728394\n0.228180 0.687225 0.727570\n0.260803 0.689789 0.726807\n0.295715 0.692444 0.726044\n0.332672 0.695099 0.725281\n0.371674 0.697632 0.724457\n0.412476 0.700226 0.723755\n0.454712 0.702759 0.723022\n0.498322 0.705322 0.722260\n0.542786 0.707886 0.721558\n0.586456 0.710419 0.720825\n0.628632 0.712921 0.720154\n0.668640 0.715424 0.719452\n0.706085 0.717834 0.718781\n0.740845 0.720337 0.718170\n0.772614 0.722748 0.717529\n0.801331 0.725159 0.717377\n0.827362 0.727509 0.717377\n0.850952 0.729828 0.717377\n0.872406 0.732208 0.717377\n0.891876 0.734497 0.717377\n0.909576 0.736755 0.717377\n0.925720 0.738983 0.717377\n0.940308 0.741241 0.717377\n0.953583 0.743408 0.717377\n0.965515 0.745575 0.717377\n0.976227 0.747742 0.717377\n0.985748 0.749786 0.717377\n0.093292 0.713654 0.730072\n0.118225 0.716156 0.729248\n0.144409 0.718658 0.728424\n0.172028 0.721069 0.727661\n0.201233 0.723541 0.726868\n0.232239 0.725983 0.726044\n0.265076 0.728333 0.725311\n0.300232 0.730804 0.724518\n0.337494 0.733154 0.723785\n0.376740 0.735596 0.723053\n0.417694 0.737976 0.722290\n0.460175 0.740265 0.721558\n0.503845 0.742615 0.720825\n0.548340 0.744965 0.720184\n0.591858 0.747192 0.719513\n0.633728 0.749542 0.718811\n0.673401 0.751831 0.718170\n0.710602 0.753967 0.717560\n0.744934 0.756226 0.717377\n0.776306 0.758423 0.717377\n0.804657 0.760529 0.717377\n0.830383 0.762726 0.717377\n0.853638 0.764771 0.717377\n0.874817 0.766907 0.717377\n0.894073 0.768951 0.717377\n0.911560 0.770935 0.717377\n0.927490 0.772980 0.717377\n0.941925 0.774933 0.717377\n0.955017 0.776855 0.717377\n0.966766 0.778809 0.717377\n0.977356 0.780701 0.717377\n0.986725 0.782562 0.717377\n0.096344 0.750214 0.728455\n0.121460 0.752502 0.727661\n0.147858 0.754730 0.726868\n0.175598 0.756958 0.726105\n0.205017 0.759216 0.725311\n0.236237 0.761414 0.724518\n0.269440 0.763641 0.723785\n0.304840 0.765839 0.723053\n0.342316 0.767944 0.722321\n0.381805 0.770111 0.721588\n0.423035 0.772278 0.720886\n0.465576 0.774353 0.720215\n0.509430 0.776489 0.719513\n0.553833 0.778595 0.718811\n0.597168 0.780579 0.718201\n0.638733 0.782654 0.717560\n0.678192 0.784698 0.717377\n0.714935 0.786621 0.717377\n0.748871 0.788635 0.717377\n0.779816 0.790527 0.717377\n0.807861 0.792480 0.717377\n0.833313 0.794403 0.717377\n0.856262 0.796204 0.717377\n0.877197 0.798096 0.717377\n0.896210 0.799957 0.717377\n0.913452 0.801727 0.717377\n0.929199 0.803467 0.717377\n0.943481 0.805267 0.717377\n0.956390 0.806976 0.717377\n0.968018 0.808624 0.717377\n0.978455 0.810272 0.717377\n0.987701 0.811951 0.717377\n0.099457 0.783264 0.726898\n0.124725 0.785339 0.726135\n0.151306 0.787384 0.725342\n0.179230 0.789368 0.724548\n0.208893 0.791412 0.723816\n0.240326 0.793365 0.723083\n0.273743 0.795349 0.722321\n0.309448 0.797333 0.721619\n0.347168 0.799255 0.720917\n0.386902 0.801208 0.720215\n0.428253 0.803162 0.719543\n0.471039 0.804962 0.718872\n0.514984 0.806885 0.718262\n0.559296 0.808746 0.717621\n0.602386 0.810547 0.717377\n0.643707 0.812378 0.717377\n0.682800 0.814209 0.717377\n0.719208 0.815948 0.717377\n0.752808 0.817719 0.717377\n0.783356 0.819427 0.717377\n0.811066 0.821136 0.717377\n0.836090 0.822845 0.717377\n0.858826 0.824432 0.717377\n0.879486 0.826111 0.717377\n0.898285 0.827759 0.717377\n0.915344 0.829315 0.717377\n0.930878 0.830902 0.717377\n0.944977 0.832458 0.717377\n0.957733 0.833954 0.717377\n0.969208 0.835449 0.717377\n0.979492 0.836914 0.717377\n0.988586 0.838348 0.717377\n0.102570 0.813049 0.725403\n0.127991 0.814880 0.724579\n0.154755 0.816742 0.723816\n0.182892 0.818512 0.723083\n0.212769 0.820312 0.722351\n0.244415 0.822083 0.721619\n0.278168 0.823883 0.720917\n0.314087 0.825623 0.720215\n0.352081 0.827362 0.719543\n0.391968 0.829102 0.718903\n0.433502 0.830841 0.718262\n0.476379 0.832489 0.717651\n0.520386 0.834167 0.717377\n0.564667 0.835846 0.717377\n0.607574 0.837463 0.717377\n0.648621 0.839111 0.717377\n0.687256 0.840668 0.717377\n0.723358 0.842255 0.717377\n0.756622 0.843842 0.717377\n0.786774 0.845367 0.717377\n0.814087 0.846893 0.717377\n0.838867 0.848389 0.717377\n0.861298 0.849854 0.717377\n0.881714 0.851318 0.717377\n0.900269 0.852753 0.717377\n0.917175 0.854156 0.717377\n0.932526 0.855560 0.717377\n0.946442 0.856873 0.717377\n0.959015 0.858246 0.717377\n0.970367 0.859589 0.717377\n0.980469 0.860840 0.717377\n0.989441 0.862122 0.717377\n0.105743 0.839752 0.723846\n0.131317 0.841461 0.723114\n0.158234 0.843109 0.722351\n0.186554 0.844696 0.721649\n0.216644 0.846344 0.720947\n0.248535 0.847900 0.720245\n0.282532 0.849518 0.719604\n0.318756 0.851105 0.718903\n0.356964 0.852661 0.718292\n0.397003 0.854187 0.717651\n0.438782 0.855743 0.717377\n0.481750 0.857239 0.717377\n0.525818 0.858765 0.717377\n0.569916 0.860229 0.717377\n0.612610 0.861694 0.717377\n0.653351 0.863159 0.717377\n0.691711 0.864563 0.717377\n0.727417 0.865967 0.717377\n0.760284 0.867371 0.717377\n0.790100 0.868744 0.717377\n0.817078 0.870087 0.717377\n0.841553 0.871429 0.717377\n0.863678 0.872711 0.717377\n0.883881 0.873993 0.717377\n0.902222 0.875305 0.717377\n0.918884 0.876495 0.717377\n0.934082 0.877747 0.717377\n0.947845 0.878967 0.717377\n0.960297 0.880157 0.717377\n0.971466 0.881317 0.717377\n0.981476 0.882446 0.717377\n0.990295 0.883545 0.717377\n0.108917 0.863861 0.722382\n0.134644 0.865387 0.721649\n0.161682 0.866852 0.721008\n0.190247 0.868347 0.720306\n0.220551 0.869781 0.719604\n0.252655 0.871185 0.718933\n0.286957 0.872620 0.718292\n0.323395 0.874084 0.717651\n0.361755 0.875427 0.717377\n0.402039 0.876831 0.717377\n0.443970 0.878235 0.717377\n0.487030 0.879547 0.717377\n0.531189 0.880890 0.717377\n0.575134 0.882202 0.717377\n0.617554 0.883545 0.717377\n0.657990 0.884827 0.717377\n0.696075 0.886078 0.717377\n0.731415 0.887329 0.717377\n0.763885 0.888580 0.717377\n0.793304 0.889771 0.717377\n0.819946 0.890991 0.717377\n0.844116 0.892181 0.717377\n0.866028 0.893341 0.717377\n0.885956 0.894501 0.717377\n0.904053 0.895569 0.717377\n0.920563 0.896698 0.717377\n0.935577 0.897797 0.717377\n0.949158 0.898834 0.717377\n0.961456 0.899872 0.717377\n0.972504 0.900879 0.717377\n0.982391 0.901886 0.717377\n0.991089 0.902893 0.717377\n0.112091 0.885620 0.721008\n0.137939 0.886993 0.720306\n0.165161 0.888275 0.719635\n0.193909 0.889587 0.718933\n0.224426 0.890900 0.718323\n0.256744 0.892212 0.717682\n0.291321 0.893494 0.717377\n0.328033 0.894775 0.717377\n0.366608 0.895996 0.717377\n0.407043 0.897247 0.717377\n0.449066 0.898499 0.717377\n0.492340 0.899658 0.717377\n0.536499 0.900879 0.717377\n0.580231 0.902008 0.717377\n0.622406 0.903229 0.717377\n0.662567 0.904388 0.717377\n0.700256 0.905487 0.717377\n0.735260 0.906616 0.717377\n0.767334 0.907715 0.717377\n0.796356 0.908752 0.717377\n0.822723 0.909882 0.717377\n0.846649 0.910919 0.717377\n0.868286 0.911926 0.717377\n0.887939 0.912933 0.717377\n0.905884 0.913910 0.717377\n0.922180 0.914917 0.717377\n0.937012 0.915894 0.717377\n0.950439 0.916809 0.717377\n0.962585 0.917725 0.717377\n0.973511 0.918610 0.717377\n0.983246 0.919464 0.717377\n0.991821 0.920349 0.717377\n0.115234 0.905212 0.719666\n0.141296 0.906433 0.718964\n0.168640 0.907623 0.718353\n0.197632 0.908783 0.717712\n0.228302 0.910004 0.717377\n0.260925 0.911163 0.717377\n0.295654 0.912292 0.717377\n0.332611 0.913422 0.717377\n0.371368 0.914581 0.717377\n0.412048 0.915680 0.717377\n0.454163 0.916748 0.717377\n0.497467 0.917847 0.717377\n0.541718 0.918884 0.717377\n0.585205 0.919952 0.717377\n0.627136 0.920990 0.717377\n0.666962 0.922028 0.717377\n0.704346 0.923004 0.717377\n0.738983 0.923981 0.717377\n0.770691 0.924988 0.717377\n0.799408 0.925934 0.717377\n0.825409 0.926880 0.717377\n0.848999 0.927795 0.717377\n0.870392 0.928680 0.717377\n0.889893 0.929626 0.717377\n0.907593 0.930450 0.717377\n0.923706 0.931305 0.717377\n0.938385 0.932190 0.717377\n0.951660 0.932983 0.717377\n0.963684 0.933807 0.717377\n0.974487 0.934601 0.717377\n0.984070 0.935333 0.717377\n0.992523 0.936127 0.717377\n0.118408 0.922943 0.718353\n0.144592 0.924042 0.717712\n0.172150 0.925110 0.717377\n0.201294 0.926147 0.717377\n0.232239 0.927246 0.717377\n0.265015 0.928223 0.717377\n0.300018 0.929291 0.717377\n0.337158 0.930298 0.717377\n0.376160 0.931305 0.717377\n0.416962 0.932281 0.717377\n0.459167 0.933228 0.717377\n0.502594 0.934235 0.717377\n0.546783 0.935150 0.717377\n0.590118 0.936096 0.717377\n0.631744 0.937012 0.717377\n0.671234 0.937927 0.717377\n0.708313 0.938812 0.717377\n0.742584 0.939697 0.717377\n0.773956 0.940552 0.717377\n0.802277 0.941376 0.717377\n0.828003 0.942200 0.717377\n0.851288 0.942993 0.717377\n0.872467 0.943817 0.717377\n0.891754 0.944580 0.717377\n0.909271 0.945374 0.717377\n0.925201 0.946106 0.717377\n0.939697 0.946838 0.717377\n0.952850 0.947571 0.717377\n0.964691 0.948273 0.717377\n0.975372 0.948975 0.717377\n0.984863 0.949615 0.717377\n0.993195 0.950256 0.717377\n0.121582 0.938904 0.717377\n0.147919 0.939880 0.717377\n0.175598 0.940826 0.717377\n0.204956 0.941803 0.717377\n0.236053 0.942719 0.717377\n0.269073 0.943634 0.717377\n0.304321 0.944580 0.717377\n0.341614 0.945465 0.717377\n0.380859 0.946350 0.717377\n0.421783 0.947235 0.717377\n0.464111 0.948090 0.717377\n0.507568 0.948944 0.717377\n0.551758 0.949799 0.717377\n0.594849 0.950592 0.717377\n0.636261 0.951447 0.717377\n0.675476 0.952209 0.717377\n0.712128 0.953003 0.717377\n0.746094 0.953766 0.717377\n0.777039 0.954498 0.717377\n0.805054 0.955231 0.717377\n0.830475 0.955994 0.717377\n0.853516 0.956665 0.717377\n0.874451 0.957367 0.717377\n0.893524 0.958038 0.717377\n0.910828 0.958710 0.717377\n0.926605 0.959381 0.717377\n0.940948 0.960022 0.717377\n0.953918 0.960632 0.717377\n0.965698 0.961243 0.717377\n0.976196 0.961853 0.717377\n0.985565 0.962402 0.717377\n0.993835 0.962982 0.717377\n0.124725 0.953247 0.717377\n0.151215 0.954132 0.717377\n0.179077 0.954987 0.717377\n0.208557 0.955841 0.717377\n0.239899 0.956635 0.717377\n0.273163 0.957458 0.717377\n0.308624 0.958282 0.717377\n0.346069 0.959076 0.717377\n0.385468 0.959869 0.717377\n0.426544 0.960632 0.717377\n0.468964 0.961395 0.717377\n0.512482 0.962158 0.717377\n0.556580 0.962891 0.717377\n0.599426 0.963593 0.717377\n0.640594 0.964325 0.717377\n0.679504 0.965027 0.717377\n0.715820 0.965698 0.717377\n0.749420 0.966370 0.717377\n0.779968 0.967010 0.717377\n0.807709 0.967651 0.717377\n0.832825 0.968323 0.717377\n0.855591 0.968933 0.717377\n0.876343 0.969513 0.717377\n0.895203 0.970093 0.717377\n0.912292 0.970673 0.717377\n0.927948 0.971252 0.717377\n0.942139 0.971771 0.717377\n0.954987 0.972290 0.717377\n0.966614 0.972839 0.717377\n0.977020 0.973358 0.717377\n0.986267 0.973816 0.717377\n0.994415 0.974304 0.717377\n0.127869 0.966095 0.717377\n0.154480 0.966888 0.717377\n0.182526 0.967621 0.717377\n0.212189 0.968353 0.717377\n0.243622 0.969086 0.717377\n0.277130 0.969818 0.717377\n0.312805 0.970520 0.717377\n0.350494 0.971191 0.717377\n0.390045 0.971893 0.717377\n0.431274 0.972595 0.717377\n0.473694 0.973236 0.717377\n0.517334 0.973907 0.717377\n0.561279 0.974548 0.717377\n0.603912 0.975159 0.717377\n0.644775 0.975769 0.717377\n0.683319 0.976379 0.717377\n0.719391 0.976959 0.717377\n0.752594 0.977539 0.717377\n0.782867 0.978119 0.717377\n0.810242 0.978668 0.717377\n0.835083 0.979248 0.717377\n0.857635 0.979736 0.717377\n0.878113 0.980255 0.717377\n0.896759 0.980774 0.717377\n0.913727 0.981262 0.717377\n0.929199 0.981720 0.717377\n0.943237 0.982208 0.717377\n0.955963 0.982635 0.717377\n0.967468 0.983063 0.717377\n0.977753 0.983490 0.717377\n0.986938 0.983887 0.717377\n0.994934 0.984314 0.717377\n0.044434 0.005768 0.785828\n0.066467 0.006592 0.785431\n0.089539 0.007477 0.785034\n0.113708 0.008423 0.784607\n0.139008 0.009277 0.784149\n0.165771 0.010284 0.783691\n0.193909 0.011230 0.783203\n0.223785 0.012207 0.782715\n0.255554 0.013275 0.782196\n0.289398 0.014313 0.781677\n0.325409 0.015381 0.781097\n0.363495 0.016541 0.780518\n0.403198 0.017609 0.779968\n0.444611 0.018799 0.779388\n0.487366 0.019928 0.778748\n0.531036 0.021118 0.778168\n0.574738 0.022339 0.777435\n0.616882 0.023560 0.776825\n0.657104 0.024841 0.776184\n0.695099 0.026093 0.775513\n0.730347 0.027405 0.774841\n0.762878 0.028687 0.774139\n0.792450 0.030060 0.773438\n0.819153 0.031342 0.772736\n0.843475 0.032745 0.772003\n0.865540 0.034149 0.771240\n0.885559 0.035492 0.770569\n0.903839 0.036957 0.769806\n0.920471 0.038391 0.769073\n0.935608 0.039825 0.768341\n0.949310 0.041290 0.767578\n0.961731 0.042725 0.766815\n0.046112 0.027252 0.785034\n0.068298 0.028137 0.784607\n0.091461 0.029083 0.784180\n0.115784 0.030121 0.783691\n0.141266 0.031097 0.783234\n0.168152 0.032135 0.782745\n0.196533 0.033203 0.782196\n0.226654 0.034271 0.781708\n0.258698 0.035400 0.781128\n0.292755 0.036560 0.780548\n0.329041 0.037720 0.779968\n0.367310 0.038940 0.779388\n0.407318 0.040161 0.778778\n0.448975 0.041321 0.778168\n0.491882 0.042633 0.777496\n0.535706 0.043915 0.776855\n0.579285 0.045197 0.776215\n0.621368 0.046539 0.775543\n0.661438 0.047852 0.774872\n0.699158 0.049225 0.774139\n0.734161 0.050598 0.773468\n0.766388 0.052002 0.772766\n0.795624 0.053436 0.772003\n0.822083 0.054810 0.771301\n0.846161 0.056305 0.770599\n0.867981 0.057800 0.769806\n0.887848 0.059265 0.769104\n0.905914 0.060791 0.768341\n0.922394 0.062317 0.767578\n0.937317 0.063812 0.766846\n0.950897 0.065399 0.766113\n0.963165 0.066925 0.765350\n0.047913 0.049683 0.784180\n0.070221 0.050690 0.783722\n0.093506 0.051758 0.783234\n0.117981 0.052795 0.782745\n0.143646 0.053894 0.782196\n0.170685 0.055054 0.781708\n0.199280 0.056213 0.781158\n0.229675 0.057404 0.780548\n0.261902 0.058594 0.779999\n0.296295 0.059814 0.779419\n0.332825 0.061096 0.778778\n0.371338 0.062378 0.778198\n0.411591 0.063721 0.777527\n0.453430 0.065063 0.776855\n0.496490 0.066376 0.776215\n0.540497 0.067749 0.775574\n0.584015 0.069153 0.774872\n0.625885 0.070526 0.774170\n0.665741 0.072021 0.773468\n0.703278 0.073486 0.772766\n0.738037 0.074921 0.772034\n0.769928 0.076416 0.771332\n0.798889 0.077972 0.770599\n0.825043 0.079437 0.769836\n0.848846 0.081024 0.769104\n0.870453 0.082611 0.768372\n0.890106 0.084167 0.767609\n0.907990 0.085785 0.766846\n0.924255 0.087372 0.766113\n0.939056 0.089020 0.765350\n0.952515 0.090698 0.764587\n0.964600 0.092285 0.763885\n0.049805 0.073181 0.783264\n0.072205 0.074310 0.782776\n0.095673 0.075439 0.782227\n0.120239 0.076599 0.781738\n0.146088 0.077820 0.781158\n0.173370 0.079071 0.780579\n0.202179 0.080353 0.780029\n0.232727 0.081635 0.779419\n0.265228 0.082947 0.778809\n0.299927 0.084259 0.778198\n0.336700 0.085663 0.777527\n0.375519 0.087006 0.776886\n0.415955 0.088409 0.776245\n0.458038 0.089874 0.775574\n0.501251 0.091339 0.774902\n0.545349 0.092773 0.774170\n0.588776 0.094299 0.773499\n0.630493 0.095795 0.772797\n0.670227 0.097382 0.772064\n0.707397 0.098938 0.771332\n0.741882 0.100494 0.770630\n0.773468 0.102081 0.769867\n0.802124 0.103760 0.769135\n0.828003 0.105347 0.768402\n0.851532 0.106995 0.767639\n0.872955 0.108704 0.766907\n0.892365 0.110382 0.766144\n0.910095 0.112091 0.765381\n0.926147 0.113800 0.764618\n0.940796 0.115509 0.763885\n0.954071 0.117279 0.763123\n0.966034 0.119019 0.762360\n0.051758 0.097931 0.782227\n0.074310 0.099152 0.781738\n0.097931 0.100403 0.781158\n0.122681 0.101685 0.780609\n0.148712 0.102997 0.780029\n0.176147 0.104370 0.779449\n0.205170 0.105713 0.778870\n0.235962 0.107117 0.778229\n0.268799 0.108551 0.777557\n0.303711 0.109985 0.776917\n0.340790 0.111481 0.776276\n0.379791 0.112976 0.775604\n0.420502 0.114441 0.774933\n0.462799 0.116028 0.774200\n0.506226 0.117554 0.773560\n0.550354 0.119202 0.772797\n0.593689 0.120789 0.772064\n0.635223 0.122406 0.771362\n0.674713 0.124115 0.770660\n0.711639 0.125793 0.769867\n0.745819 0.127441 0.769196\n0.777069 0.129181 0.768402\n0.805389 0.130890 0.767639\n0.831024 0.132629 0.766937\n0.854279 0.134399 0.766144\n0.875397 0.136139 0.765442\n0.894653 0.137970 0.764679\n0.912170 0.139832 0.763916\n0.928040 0.141602 0.763153\n0.942535 0.143494 0.762390\n0.955627 0.145355 0.761597\n0.967438 0.147156 0.760895\n0.053833 0.124023 0.781189\n0.076508 0.125366 0.780609\n0.100250 0.126740 0.780029\n0.125183 0.128113 0.779480\n0.151367 0.129547 0.778870\n0.179047 0.131042 0.778229\n0.208252 0.132477 0.777588\n0.239319 0.134033 0.776917\n0.272400 0.135559 0.776276\n0.307617 0.137115 0.775635\n0.344940 0.138733 0.774933\n0.384216 0.140350 0.774231\n0.425171 0.141998 0.773560\n0.467682 0.143677 0.772797\n0.511200 0.145325 0.772156\n0.555450 0.147034 0.771393\n0.598663 0.148804 0.770660\n0.639984 0.150513 0.769958\n0.679199 0.152344 0.769226\n0.715881 0.154144 0.768433\n0.749756 0.155945 0.767731\n0.780609 0.157776 0.766968\n0.808624 0.159637 0.766174\n0.833954 0.161499 0.765442\n0.856995 0.163391 0.764679\n0.877869 0.165283 0.763947\n0.896881 0.167206 0.763153\n0.914246 0.169159 0.762390\n0.929962 0.171112 0.761688\n0.944244 0.173065 0.760895\n0.957184 0.175110 0.760162\n0.968842 0.177063 0.759430\n0.055969 0.151520 0.780060\n0.078827 0.153046 0.779480\n0.102753 0.154541 0.778900\n0.127808 0.156067 0.778229\n0.154205 0.157654 0.777588\n0.182068 0.159241 0.776978\n0.211487 0.160828 0.776306\n0.242828 0.162476 0.775635\n0.276184 0.164185 0.774933\n0.311646 0.165863 0.774292\n0.349274 0.167633 0.773590\n0.388763 0.169312 0.772827\n0.429962 0.171112 0.772156\n0.472626 0.172943 0.771423\n0.516327 0.174744 0.770691\n0.560577 0.176605 0.769958\n0.603699 0.178467 0.769226\n0.644806 0.180328 0.768463\n0.683777 0.182251 0.767731\n0.720154 0.184204 0.766968\n0.753662 0.186127 0.766205\n0.784210 0.188141 0.765472\n0.811859 0.190094 0.764709\n0.836945 0.192108 0.763947\n0.859711 0.194153 0.763184\n0.880341 0.196167 0.762451\n0.899170 0.198212 0.761688\n0.916290 0.200348 0.760925\n0.931824 0.202423 0.760193\n0.945953 0.204559 0.759460\n0.958710 0.206665 0.758728\n0.970245 0.208771 0.757996\n0.058228 0.180786 0.778931\n0.081238 0.182404 0.778259\n0.105286 0.184082 0.777618\n0.130524 0.185699 0.777008\n0.157104 0.187439 0.776337\n0.185150 0.189209 0.775665\n0.214844 0.190948 0.774963\n0.246429 0.192749 0.774292\n0.280060 0.194580 0.773590\n0.315826 0.196381 0.772858\n0.353729 0.198242 0.772186\n0.393433 0.200134 0.771454\n0.434906 0.202118 0.770691\n0.477783 0.204041 0.769989\n0.521637 0.205994 0.769226\n0.565796 0.207977 0.768463\n0.608734 0.210052 0.767761\n0.649597 0.212036 0.766998\n0.688324 0.214172 0.766205\n0.724396 0.216248 0.765472\n0.757568 0.218323 0.764740\n0.787811 0.220459 0.763947\n0.815094 0.222565 0.763214\n0.839905 0.224731 0.762451\n0.862396 0.226929 0.761719\n0.882812 0.229126 0.760956\n0.901428 0.231323 0.760193\n0.918335 0.233612 0.759460\n0.933716 0.235748 0.758759\n0.947632 0.238037 0.757996\n0.960266 0.240356 0.757294\n0.971588 0.242615 0.756592\n0.060547 0.211945 0.777649\n0.083679 0.213684 0.777008\n0.107941 0.215546 0.776337\n0.133331 0.217346 0.775696\n0.160095 0.219208 0.774963\n0.188385 0.221100 0.774323\n0.218292 0.222992 0.773621\n0.250122 0.224945 0.772858\n0.283997 0.226929 0.772217\n0.320099 0.228912 0.771454\n0.358246 0.231018 0.770752\n0.398254 0.233063 0.770020\n0.439941 0.235107 0.769257\n0.482971 0.237244 0.768494\n0.526978 0.239380 0.767792\n0.571106 0.241547 0.767029\n0.613800 0.243744 0.766235\n0.654510 0.245911 0.765503\n0.692932 0.248169 0.764740\n0.728638 0.250366 0.763977\n0.761505 0.252716 0.763214\n0.791351 0.255005 0.762512\n0.818359 0.257233 0.761749\n0.842804 0.259613 0.760956\n0.865082 0.261993 0.760223\n0.885254 0.264282 0.759491\n0.903625 0.266693 0.758759\n0.920349 0.269135 0.758026\n0.935547 0.271454 0.757294\n0.949310 0.273956 0.756592\n0.961731 0.276337 0.755920\n0.972931 0.278809 0.755157\n0.062958 0.245148 0.776367\n0.086243 0.247101 0.775696\n0.110657 0.249146 0.774994\n0.136230 0.251068 0.774353\n0.163177 0.253143 0.773651\n0.191650 0.255219 0.772919\n0.221802 0.257263 0.772217\n0.253906 0.259430 0.771484\n0.288116 0.261536 0.770782\n0.324493 0.263763 0.770020\n0.362946 0.266022 0.769257\n0.403137 0.268188 0.768555\n0.445038 0.270538 0.767792\n0.488220 0.272827 0.767029\n0.532410 0.275116 0.766266\n0.576447 0.277466 0.765533\n0.618958 0.279846 0.764771\n0.659363 0.282227 0.764008\n0.697540 0.284637 0.763275\n0.732910 0.287018 0.762543\n0.765381 0.289490 0.761749\n0.794922 0.291992 0.761017\n0.821594 0.294464 0.760254\n0.845764 0.296997 0.759521\n0.867737 0.299561 0.758789\n0.887695 0.302063 0.758057\n0.905823 0.304596 0.757324\n0.922363 0.307190 0.756622\n0.937378 0.309753 0.755951\n0.950958 0.312347 0.755188\n0.963226 0.314911 0.754517\n0.974274 0.317566 0.753815\n0.065491 0.280823 0.775024\n0.088898 0.282959 0.774353\n0.113464 0.285156 0.773651\n0.139191 0.287323 0.772949\n0.166382 0.289520 0.772247\n0.195038 0.291779 0.771515\n0.225433 0.294098 0.770782\n0.257843 0.296448 0.770050\n0.292267 0.298737 0.769318\n0.328979 0.301117 0.768585\n0.367676 0.303589 0.767792\n0.408112 0.306000 0.767059\n0.450226 0.308441 0.766327\n0.493591 0.310944 0.765533\n0.537872 0.313385 0.764801\n0.581757 0.315948 0.764008\n0.623993 0.318420 0.763306\n0.664276 0.321014 0.762543\n0.702087 0.323639 0.761780\n0.737122 0.326202 0.761047\n0.769257 0.328888 0.760284\n0.798431 0.331512 0.759521\n0.824738 0.334198 0.758850\n0.848663 0.336823 0.758057\n0.870361 0.339600 0.757355\n0.890076 0.342224 0.756653\n0.908020 0.344940 0.755951\n0.924316 0.347656 0.755219\n0.939148 0.350433 0.754517\n0.952576 0.353149 0.753815\n0.964691 0.355865 0.753174\n0.975586 0.358673 0.752533\n0.068024 0.319031 0.773682\n0.091644 0.321350 0.772949\n0.116364 0.323700 0.772247\n0.142273 0.326050 0.771576\n0.169647 0.328491 0.770813\n0.198486 0.330902 0.770081\n0.229218 0.333435 0.769318\n0.261810 0.335938 0.768585\n0.296600 0.338440 0.767822\n0.333527 0.340973 0.767090\n0.372498 0.343628 0.766327\n0.413208 0.346191 0.765625\n0.455505 0.348846 0.764832\n0.499054 0.351501 0.764038\n0.543365 0.354126 0.763336\n0.587097 0.356873 0.762573\n0.629181 0.359497 0.761810\n0.669128 0.362274 0.761047\n0.706635 0.365051 0.760284\n0.741364 0.367767 0.759552\n0.773102 0.370575 0.758850\n0.801910 0.373413 0.758118\n0.827881 0.376221 0.757416\n0.851501 0.379059 0.756653\n0.872955 0.381866 0.755951\n0.892456 0.384705 0.755219\n0.910187 0.387604 0.754547\n0.926270 0.390350 0.753876\n0.940948 0.393250 0.753235\n0.954193 0.396210 0.752533\n0.966125 0.398987 0.751953\n0.976837 0.401917 0.751251\n0.070679 0.359589 0.772278\n0.094421 0.362091 0.771576\n0.119293 0.364594 0.770844\n0.145416 0.367188 0.770081\n0.172974 0.369843 0.769379\n0.202118 0.372406 0.768616\n0.233032 0.375000 0.767822\n0.265930 0.377716 0.767120\n0.300964 0.380371 0.766357\n0.338226 0.383118 0.765625\n0.377441 0.385864 0.764832\n0.418396 0.388611 0.764099\n0.460846 0.391449 0.763336\n0.504425 0.394226 0.762604\n0.548981 0.397064 0.761810\n0.592499 0.399933 0.761078\n0.634308 0.402740 0.760315\n0.674042 0.405670 0.759613\n0.711212 0.408600 0.758881\n0.745514 0.411438 0.758148\n0.776886 0.414398 0.757416\n0.805328 0.417328 0.756683\n0.831024 0.420258 0.755981\n0.854370 0.423218 0.755249\n0.875519 0.426178 0.754547\n0.894775 0.429138 0.753906\n0.912292 0.432129 0.753235\n0.928192 0.435028 0.752563\n0.942657 0.438080 0.751953\n0.955750 0.441010 0.751282\n0.967529 0.444000 0.750671\n0.978088 0.446960 0.750122\n0.073395 0.402374 0.770844\n0.097290 0.405060 0.770111\n0.122314 0.407715 0.769409\n0.148621 0.410461 0.768646\n0.176361 0.413208 0.767853\n0.205719 0.415924 0.767181\n0.236877 0.418793 0.766388\n0.270081 0.421600 0.765656\n0.305420 0.424408 0.764862\n0.342957 0.427307 0.764130\n0.382416 0.430237 0.763367\n0.423553 0.433136 0.762604\n0.466248 0.436035 0.761871\n0.510010 0.438904 0.761108\n0.554443 0.441925 0.760345\n0.597839 0.444977 0.759644\n0.639496 0.447876 0.758911\n0.678864 0.450897 0.758148\n0.715729 0.453949 0.757446\n0.749664 0.456909 0.756714\n0.780640 0.459961 0.756012\n0.808746 0.463074 0.755249\n0.834106 0.465973 0.754578\n0.857147 0.469086 0.753906\n0.878052 0.472076 0.753265\n0.897064 0.475159 0.752594\n0.914398 0.478241 0.751984\n0.930115 0.481293 0.751343\n0.944366 0.484344 0.750702\n0.957306 0.487427 0.750122\n0.968933 0.490417 0.749573\n0.979340 0.493439 0.749207\n0.076172 0.447052 0.769409\n0.100220 0.449860 0.768646\n0.125397 0.452637 0.767914\n0.151917 0.455536 0.767181\n0.179871 0.458466 0.766388\n0.209442 0.461304 0.765686\n0.240875 0.464264 0.764893\n0.274353 0.467224 0.764130\n0.309998 0.470154 0.763397\n0.347778 0.473175 0.762634\n0.387451 0.476166 0.761902\n0.428833 0.479187 0.761108\n0.471710 0.482269 0.760345\n0.515564 0.485260 0.759674\n0.560059 0.488342 0.758911\n0.603271 0.491455 0.758179\n0.644531 0.494476 0.757477\n0.683685 0.497589 0.756714\n0.720184 0.500732 0.756012\n0.753754 0.503815 0.755310\n0.784393 0.506927 0.754608\n0.812073 0.510071 0.753937\n0.837128 0.513153 0.753265\n0.859894 0.516296 0.752594\n0.880554 0.519348 0.752014\n0.899323 0.522491 0.751343\n0.916443 0.525635 0.750702\n0.931946 0.528717 0.750153\n0.946045 0.531799 0.749573\n0.958801 0.534912 0.749207\n0.970245 0.537994 0.749207\n0.980469 0.541016 0.749207\n0.079010 0.493256 0.767944\n0.103180 0.496216 0.767212\n0.128540 0.499084 0.766418\n0.155212 0.502136 0.765686\n0.183411 0.505127 0.764893\n0.213226 0.508087 0.764160\n0.244934 0.511139 0.763397\n0.278687 0.514221 0.762634\n0.314606 0.517273 0.761932\n0.352631 0.520386 0.761139\n0.392517 0.523407 0.760376\n0.434143 0.526550 0.759674\n0.477173 0.529724 0.758942\n0.521240 0.532745 0.758209\n0.565582 0.535919 0.757477\n0.608612 0.539062 0.756775\n0.649689 0.542175 0.756042\n0.688446 0.545319 0.755341\n0.724579 0.548492 0.754608\n0.757782 0.551544 0.753967\n0.788025 0.554657 0.753296\n0.815338 0.557709 0.752655\n0.840118 0.560822 0.752014\n0.862610 0.563934 0.751373\n0.882996 0.566895 0.750763\n0.901550 0.569977 0.750153\n0.918427 0.573059 0.749573\n0.933777 0.575958 0.749207\n0.947662 0.579010 0.749207\n0.960297 0.582001 0.749207\n0.971558 0.584930 0.749207\n0.981659 0.587860 0.749207\n0.081879 0.540680 0.766449\n0.106232 0.543671 0.765717\n0.131744 0.546631 0.764984\n0.158630 0.549652 0.764191\n0.187012 0.552704 0.763428\n0.217072 0.555725 0.762726\n0.248993 0.558807 0.761932\n0.283081 0.561859 0.761169\n0.319305 0.564850 0.760437\n0.357544 0.567932 0.759705\n0.397705 0.570984 0.758972\n0.439545 0.574036 0.758209\n0.482697 0.577087 0.757507\n0.526917 0.580109 0.756805\n0.571136 0.583130 0.756073\n0.613922 0.586243 0.755341\n0.654755 0.589172 0.754669\n0.693176 0.592224 0.753967\n0.728943 0.595276 0.753296\n0.761780 0.598206 0.752686\n0.791626 0.601196 0.752045\n0.818573 0.604095 0.751404\n0.843048 0.607086 0.750763\n0.865234 0.610077 0.750183\n0.885406 0.612915 0.749603\n0.903717 0.615875 0.749207\n0.920410 0.618744 0.749207\n0.935547 0.621582 0.749207\n0.949280 0.624390 0.749207\n0.961731 0.627228 0.749207\n0.972839 0.629913 0.749207\n0.982788 0.632721 0.749207\n0.084808 0.587433 0.764984\n0.109314 0.590393 0.764191\n0.135010 0.593262 0.763489\n0.162109 0.596252 0.762726\n0.190674 0.599213 0.761963\n0.220917 0.602112 0.761200\n0.253143 0.605042 0.760437\n0.287537 0.608032 0.759705\n0.324005 0.610901 0.759003\n0.362579 0.613892 0.758270\n0.402924 0.616791 0.757538\n0.444977 0.619720 0.756836\n0.488281 0.622681 0.756073\n0.532532 0.625580 0.755371\n0.576630 0.628479 0.754700\n0.619171 0.631378 0.753998\n0.659668 0.634247 0.753326\n0.697876 0.637115 0.752686\n0.733215 0.639984 0.752045\n0.765686 0.642761 0.751404\n0.795166 0.645599 0.750793\n0.821777 0.648376 0.750214\n0.845947 0.651154 0.749603\n0.867828 0.653900 0.749207\n0.887756 0.656616 0.749207\n0.905853 0.659332 0.749207\n0.922333 0.662048 0.749207\n0.937286 0.664642 0.749207\n0.950836 0.667328 0.749207\n0.963104 0.669952 0.749207\n0.974060 0.672485 0.749207\n0.983887 0.675079 0.749207\n0.087799 0.632416 0.763489\n0.112457 0.635223 0.762756\n0.138306 0.637970 0.761993\n0.165619 0.640869 0.761200\n0.194427 0.643677 0.760468\n0.224854 0.646454 0.759735\n0.257324 0.649231 0.759003\n0.291962 0.651978 0.758301\n0.328735 0.654816 0.757538\n0.367584 0.657623 0.756836\n0.408112 0.660370 0.756104\n0.450348 0.663116 0.755402\n0.493835 0.665894 0.754700\n0.538177 0.668610 0.754028\n0.582123 0.671326 0.753387\n0.624390 0.674072 0.752716\n0.664612 0.676758 0.752075\n0.702454 0.679413 0.751404\n0.737488 0.682098 0.750793\n0.769501 0.684692 0.750214\n0.798584 0.687347 0.749634\n0.824860 0.689880 0.749207\n0.848724 0.692474 0.749207\n0.870392 0.695068 0.749207\n0.890045 0.697571 0.749207\n0.907928 0.700073 0.749207\n0.924194 0.702515 0.749207\n0.938995 0.704926 0.749207\n0.952362 0.707367 0.749207\n0.964417 0.709717 0.749207\n0.975281 0.712097 0.749207\n0.984924 0.714447 0.749207\n0.090790 0.674957 0.761993\n0.115631 0.677612 0.761230\n0.141632 0.680206 0.760498\n0.169128 0.682922 0.759766\n0.198151 0.685547 0.759064\n0.228882 0.688171 0.758301\n0.261627 0.690765 0.757568\n0.296539 0.693359 0.756866\n0.333557 0.696045 0.756134\n0.372650 0.698608 0.755402\n0.413391 0.701141 0.754730\n0.455780 0.703766 0.754028\n0.499390 0.706329 0.753387\n0.543762 0.708801 0.752716\n0.587524 0.711304 0.752075\n0.629578 0.713867 0.751434\n0.669464 0.716278 0.750824\n0.706970 0.718781 0.750214\n0.741577 0.721161 0.749664\n0.773254 0.723633 0.749207\n0.801971 0.726044 0.749207\n0.827911 0.728333 0.749207\n0.851471 0.730713 0.749207\n0.872864 0.733032 0.749207\n0.892273 0.735352 0.749207\n0.909973 0.737579 0.749207\n0.926025 0.739868 0.749207\n0.940613 0.742035 0.749207\n0.953827 0.744202 0.749207\n0.965759 0.746338 0.749207\n0.976440 0.748444 0.749207\n0.985931 0.750549 0.749207\n0.093842 0.714600 0.760498\n0.118835 0.717102 0.759766\n0.145050 0.719543 0.759094\n0.172699 0.721985 0.758331\n0.201904 0.724396 0.757629\n0.232910 0.726868 0.756866\n0.265961 0.729279 0.756134\n0.301056 0.731659 0.755432\n0.338379 0.734070 0.754761\n0.377686 0.736450 0.754028\n0.418732 0.738800 0.753418\n0.461212 0.741180 0.752747\n0.504974 0.743500 0.752106\n0.549347 0.745789 0.751495\n0.592865 0.748108 0.750854\n0.634613 0.750305 0.750244\n0.674255 0.752563 0.749664\n0.711365 0.754822 0.749207\n0.745605 0.756989 0.749207\n0.776917 0.759216 0.749207\n0.805298 0.761353 0.749207\n0.830902 0.763428 0.749207\n0.854156 0.765594 0.749207\n0.875305 0.767639 0.749207\n0.894470 0.769684 0.749207\n0.911926 0.771698 0.749207\n0.927795 0.773773 0.749207\n0.942169 0.775665 0.749207\n0.955261 0.777588 0.749207\n0.967041 0.779480 0.749207\n0.977570 0.781372 0.749207\n0.986938 0.783234 0.749207\n0.096954 0.751038 0.759094\n0.122101 0.753326 0.758362\n0.148438 0.755524 0.757629\n0.176300 0.757812 0.756897\n0.205750 0.759979 0.756195\n0.236969 0.762207 0.755463\n0.270294 0.764465 0.754761\n0.305664 0.766571 0.754120\n0.343292 0.768738 0.753448\n0.382751 0.770935 0.752747\n0.423981 0.773010 0.752167\n0.466644 0.775146 0.751495\n0.510468 0.777283 0.750854\n0.554840 0.779297 0.750275\n0.598206 0.781372 0.749695\n0.639679 0.783356 0.749207\n0.679047 0.785370 0.749207\n0.715790 0.787354 0.749207\n0.749603 0.789337 0.749207\n0.780518 0.791229 0.749207\n0.808502 0.793213 0.749207\n0.833771 0.795074 0.749207\n0.856750 0.796967 0.749207\n0.877655 0.798798 0.749207\n0.896576 0.800568 0.749207\n0.913849 0.802399 0.749207\n0.929504 0.804108 0.749207\n0.943787 0.805878 0.749207\n0.956635 0.807587 0.749207\n0.968262 0.809204 0.749207\n0.978668 0.810913 0.749207\n0.987854 0.812561 0.749207\n0.100037 0.784058 0.757660\n0.125336 0.786072 0.756927\n0.151917 0.788116 0.756226\n0.179962 0.790161 0.755463\n0.209564 0.792114 0.754822\n0.241058 0.794098 0.754120\n0.274628 0.796082 0.753448\n0.310272 0.798004 0.752808\n0.348145 0.800018 0.752167\n0.387848 0.801910 0.751526\n0.429199 0.803802 0.750885\n0.472046 0.805664 0.750275\n0.515900 0.807526 0.749695\n0.560272 0.809387 0.749207\n0.603394 0.811218 0.749207\n0.644531 0.813019 0.749207\n0.683655 0.814819 0.749207\n0.720001 0.816589 0.749207\n0.753479 0.818329 0.749207\n0.784027 0.820038 0.749207\n0.811646 0.821777 0.749207\n0.836639 0.823425 0.749207\n0.859314 0.825073 0.749207\n0.879944 0.826721 0.749207\n0.898651 0.828308 0.749207\n0.915710 0.829926 0.749207\n0.931183 0.831451 0.749207\n0.945251 0.833008 0.749207\n0.957977 0.834534 0.749207\n0.969452 0.835968 0.749207\n0.979706 0.837463 0.749207\n0.988770 0.838898 0.749207\n0.103180 0.813690 0.756226\n0.128632 0.815552 0.755524\n0.155365 0.817352 0.754852\n0.183624 0.819183 0.754120\n0.213470 0.820953 0.753479\n0.245209 0.822754 0.752838\n0.278992 0.824524 0.752197\n0.314911 0.826233 0.751526\n0.352966 0.828003 0.750885\n0.392914 0.829742 0.750305\n0.434479 0.831421 0.749756\n0.477417 0.833130 0.749207\n0.521362 0.834778 0.749207\n0.565674 0.836456 0.749207\n0.608490 0.838074 0.749207\n0.649445 0.839661 0.749207\n0.688171 0.841278 0.749207\n0.724152 0.842834 0.749207\n0.757294 0.844391 0.749207\n0.787384 0.845947 0.749207\n0.814667 0.847473 0.749207\n0.839355 0.848907 0.749207\n0.861786 0.850403 0.749207\n0.882080 0.851807 0.749207\n0.900635 0.853271 0.749207\n0.917511 0.854675 0.749207\n0.932800 0.856018 0.749207\n0.946686 0.857422 0.749207\n0.959259 0.858765 0.749207\n0.970581 0.860016 0.749207\n0.980682 0.861328 0.749207\n0.989624 0.862640 0.749207\n0.106354 0.840424 0.754852\n0.131897 0.842010 0.754150\n0.158844 0.843689 0.753510\n0.187286 0.845337 0.752838\n0.217346 0.846893 0.752197\n0.249298 0.848511 0.751587\n0.283417 0.850128 0.750916\n0.319580 0.851654 0.750305\n0.357849 0.853241 0.749756\n0.397919 0.854767 0.749207\n0.439667 0.856293 0.749207\n0.482758 0.857788 0.749207\n0.526794 0.859283 0.749207\n0.570892 0.860779 0.749207\n0.613556 0.862213 0.749207\n0.654175 0.863647 0.749207\n0.692566 0.865082 0.749207\n0.728210 0.866486 0.749207\n0.760925 0.867859 0.749207\n0.790680 0.869202 0.749207\n0.817657 0.870575 0.749207\n0.842010 0.871887 0.749207\n0.864136 0.873199 0.749207\n0.884247 0.874451 0.749207\n0.902557 0.875732 0.749207\n0.919220 0.877014 0.749207\n0.934326 0.878174 0.749207\n0.948090 0.879395 0.749207\n0.960480 0.880585 0.749207\n0.971680 0.881714 0.749207\n0.981628 0.882843 0.749207\n0.990448 0.883972 0.749207\n0.109497 0.864441 0.753510\n0.135223 0.865906 0.752869\n0.162323 0.867401 0.752228\n0.190979 0.868866 0.751587\n0.221222 0.870300 0.750977\n0.253418 0.871735 0.750336\n0.287781 0.873169 0.749756\n0.324219 0.874573 0.749207\n0.362671 0.875946 0.749207\n0.402954 0.877350 0.749207\n0.444855 0.878693 0.749207\n0.488098 0.880066 0.749207\n0.532166 0.881348 0.749207\n0.576141 0.882690 0.749207\n0.618500 0.884003 0.749207\n0.658844 0.885284 0.749207\n0.696869 0.886536 0.749207\n0.732178 0.887817 0.749207\n0.764526 0.889038 0.749207\n0.793915 0.890228 0.749207\n0.820465 0.891418 0.749207\n0.844574 0.892609 0.749207\n0.866455 0.893738 0.749207\n0.886322 0.894867 0.749207\n0.904419 0.895996 0.749207\n0.920898 0.897095 0.749207\n0.935822 0.898163 0.749207\n0.949402 0.899231 0.749207\n0.961700 0.900269 0.749207\n0.972717 0.901276 0.749207\n0.982544 0.902283 0.749207\n0.991211 0.903229 0.749207\n0.112671 0.886108 0.752228\n0.138550 0.887451 0.751617\n0.165863 0.888763 0.750977\n0.194672 0.890106 0.750336\n0.225128 0.891388 0.749786\n0.257538 0.892700 0.749207\n0.292053 0.893921 0.749207\n0.328796 0.895203 0.749207\n0.367554 0.896484 0.749207\n0.407990 0.897705 0.749207\n0.450012 0.898926 0.749207\n0.493286 0.900116 0.749207\n0.537415 0.901306 0.749207\n0.581207 0.902496 0.749207\n0.623322 0.903656 0.749207\n0.663361 0.904785 0.749207\n0.701050 0.905914 0.749207\n0.735992 0.907043 0.749207\n0.767944 0.908112 0.749207\n0.796997 0.909210 0.749207\n0.823242 0.910217 0.749207\n0.847046 0.911285 0.749207\n0.868713 0.912292 0.749207\n0.888336 0.913269 0.749207\n0.906189 0.914307 0.749207\n0.922516 0.915283 0.749207\n0.937286 0.916199 0.749207\n0.950714 0.917145 0.749207\n0.962830 0.918060 0.749207\n0.973724 0.918945 0.749207\n0.983398 0.919800 0.749207\n0.991943 0.920624 0.749207\n0.115875 0.905670 0.750977\n0.141846 0.906891 0.750397\n0.169312 0.908081 0.749817\n0.198334 0.909271 0.749237\n0.229034 0.910400 0.749207\n0.261719 0.911560 0.749207\n0.296478 0.912689 0.749207\n0.333435 0.913849 0.749207\n0.372314 0.914978 0.749207\n0.412933 0.916077 0.749207\n0.455109 0.917175 0.749207\n0.498474 0.918213 0.749207\n0.542633 0.919250 0.749207\n0.586212 0.920349 0.749207\n0.628052 0.921387 0.749207\n0.667786 0.922394 0.749207\n0.705078 0.923370 0.749207\n0.739624 0.924347 0.749207\n0.771301 0.925323 0.749207\n0.799988 0.926270 0.749207\n0.825897 0.927216 0.749207\n0.849457 0.928131 0.749207\n0.870819 0.929047 0.749207\n0.890228 0.929901 0.749207\n0.907928 0.930756 0.749207\n0.924011 0.931641 0.749207\n0.938629 0.932465 0.749207\n0.951904 0.933289 0.749207\n0.963867 0.934082 0.749207\n0.974640 0.934845 0.749207\n0.984222 0.935638 0.749207\n0.992645 0.936371 0.749207\n0.119049 0.923340 0.749817\n0.145203 0.924408 0.749268\n0.172821 0.925507 0.749207\n0.201935 0.926514 0.749207\n0.232880 0.927612 0.749207\n0.265778 0.928619 0.749207\n0.300781 0.929657 0.749207\n0.337952 0.930634 0.749207\n0.377075 0.931641 0.749207\n0.417816 0.932648 0.749207\n0.460052 0.933624 0.749207\n0.503571 0.934570 0.749207\n0.547668 0.935516 0.749207\n0.591003 0.936432 0.749207\n0.632599 0.937317 0.749207\n0.672028 0.938232 0.749207\n0.709045 0.939117 0.749207\n0.743225 0.940002 0.749207\n0.774475 0.940857 0.749207\n0.802795 0.941711 0.749207\n0.828461 0.942505 0.749207\n0.851715 0.943298 0.749207\n0.872864 0.944092 0.749207\n0.892029 0.944885 0.749207\n0.909546 0.945648 0.749207\n0.925476 0.946411 0.749207\n0.939972 0.947113 0.749207\n0.953064 0.947845 0.749207\n0.964874 0.948486 0.749207\n0.975525 0.949219 0.749207\n0.984985 0.949860 0.749207\n0.993317 0.950500 0.749207\n0.122192 0.939270 0.749207\n0.148529 0.940216 0.749207\n0.176270 0.941193 0.749207\n0.205627 0.942139 0.749207\n0.236755 0.943085 0.749207\n0.269867 0.944000 0.749207\n0.305084 0.944885 0.749207\n0.342468 0.945801 0.749207\n0.381775 0.946686 0.749207\n0.422668 0.947571 0.749207\n0.465027 0.948364 0.749207\n0.508575 0.949249 0.749207\n0.552612 0.950073 0.749207\n0.595673 0.950897 0.749207\n0.637024 0.951691 0.749207\n0.676147 0.952515 0.749207\n0.712860 0.953278 0.749207\n0.746674 0.954010 0.749207\n0.777557 0.954773 0.749207\n0.805573 0.955505 0.749207\n0.830902 0.956238 0.749207\n0.853912 0.956940 0.749207\n0.874817 0.957642 0.749207\n0.893829 0.958313 0.749207\n0.911102 0.958984 0.749207\n0.926849 0.959625 0.749207\n0.941193 0.960266 0.749207\n0.954163 0.960876 0.749207\n0.965851 0.961456 0.749207\n0.976379 0.962067 0.749207\n0.985718 0.962616 0.749207\n0.993927 0.963165 0.749207\n0.125336 0.953613 0.749207\n0.151764 0.954437 0.749207\n0.179718 0.955292 0.749207\n0.209259 0.956116 0.749207\n0.240570 0.956940 0.749207\n0.273895 0.957794 0.749207\n0.309387 0.958557 0.749207\n0.346924 0.959351 0.749207\n0.386353 0.960144 0.749207\n0.427429 0.960907 0.749207\n0.469849 0.961670 0.749207\n0.513458 0.962402 0.749207\n0.557434 0.963135 0.749207\n0.600311 0.963867 0.749207\n0.641357 0.964569 0.749207\n0.680176 0.965271 0.749207\n0.716522 0.965942 0.749207\n0.750000 0.966614 0.749207\n0.780518 0.967255 0.749207\n0.808228 0.967896 0.749207\n0.833252 0.968506 0.749207\n0.856018 0.969116 0.749207\n0.876678 0.969727 0.749207\n0.895477 0.970306 0.749207\n0.912567 0.970856 0.749207\n0.928131 0.971436 0.749207\n0.942322 0.971985 0.749207\n0.955200 0.972504 0.749207\n0.966736 0.973022 0.749207\n0.977142 0.973511 0.749207\n0.986389 0.974030 0.749207\n0.994476 0.974487 0.749207\n0.128418 0.966370 0.749207\n0.155060 0.967163 0.749207\n0.183167 0.967896 0.749207\n0.212830 0.968597 0.749207\n0.244385 0.969391 0.749207\n0.277924 0.970062 0.749207\n0.313568 0.970764 0.749207\n0.351349 0.971466 0.749207\n0.390900 0.972168 0.749207\n0.432037 0.972839 0.749207\n0.474670 0.973511 0.749207\n0.518188 0.974121 0.749207\n0.562103 0.974762 0.749207\n0.604767 0.975372 0.749207\n0.645447 0.976013 0.749207\n0.684021 0.976593 0.749207\n0.720032 0.977173 0.749207\n0.753143 0.977753 0.749207\n0.783386 0.978333 0.749207\n0.810730 0.978882 0.749207\n0.835480 0.979401 0.749207\n0.858002 0.979919 0.749207\n0.878418 0.980438 0.749207\n0.897034 0.980957 0.749207\n0.913971 0.981415 0.749207\n0.929443 0.981903 0.749207\n0.943420 0.982391 0.749207\n0.956146 0.982819 0.749207\n0.967590 0.983246 0.749207\n0.977875 0.983673 0.749207\n0.987000 0.984039 0.749207\n0.995026 0.984436 0.749207\n0.044708 0.006073 0.811584\n0.066833 0.006958 0.811188\n0.089935 0.007843 0.810822\n0.114075 0.008698 0.810425\n0.139465 0.009674 0.809998\n0.166138 0.010590 0.809601\n0.194427 0.011627 0.809143\n0.224365 0.012604 0.808716\n0.256134 0.013672 0.808228\n0.290039 0.014709 0.807709\n0.326080 0.015808 0.807190\n0.364105 0.016876 0.806671\n0.404022 0.018036 0.806122\n0.445404 0.019196 0.805603\n0.488129 0.020355 0.805054\n0.531921 0.021545 0.804443\n0.575531 0.022797 0.803894\n0.617676 0.024048 0.803284\n0.657928 0.025269 0.802673\n0.695801 0.026581 0.802063\n0.731079 0.027893 0.801422\n0.763550 0.029175 0.800781\n0.793030 0.030518 0.800140\n0.819733 0.031891 0.799500\n0.843964 0.033264 0.798859\n0.865967 0.034607 0.798218\n0.885986 0.036041 0.797485\n0.904236 0.037476 0.796844\n0.920807 0.038910 0.796173\n0.935913 0.040375 0.795502\n0.949615 0.041809 0.794800\n0.962006 0.043304 0.794098\n0.046448 0.027527 0.810852\n0.068665 0.028503 0.810425\n0.091827 0.029449 0.810028\n0.116180 0.030457 0.809601\n0.141693 0.031494 0.809143\n0.168579 0.032501 0.808716\n0.197052 0.033630 0.808228\n0.227234 0.034698 0.807739\n0.259247 0.035828 0.807220\n0.293396 0.036987 0.806671\n0.329742 0.038177 0.806152\n0.367981 0.039337 0.805634\n0.408112 0.040588 0.805054\n0.449738 0.041809 0.804443\n0.492676 0.043091 0.803894\n0.536621 0.044403 0.803284\n0.580200 0.045685 0.802704\n0.622162 0.047028 0.802063\n0.662262 0.048370 0.801422\n0.699921 0.049744 0.800812\n0.734894 0.051147 0.800171\n0.767059 0.052551 0.799530\n0.796204 0.053925 0.798889\n0.822693 0.055389 0.798218\n0.846649 0.056885 0.797516\n0.868439 0.058319 0.796875\n0.888275 0.059814 0.796204\n0.906281 0.061310 0.795532\n0.922729 0.062836 0.794830\n0.937653 0.064423 0.794159\n0.951202 0.065948 0.793488\n0.963440 0.067535 0.792755\n0.048218 0.050018 0.810028\n0.070526 0.051086 0.809631\n0.093903 0.052094 0.809174\n0.118378 0.053162 0.808746\n0.144104 0.054352 0.808228\n0.171173 0.055450 0.807739\n0.199799 0.056610 0.807220\n0.230194 0.057861 0.806702\n0.262512 0.059052 0.806183\n0.296936 0.060303 0.805634\n0.333527 0.061584 0.805054\n0.372070 0.062836 0.804474\n0.412415 0.064178 0.803925\n0.454224 0.065521 0.803345\n0.497375 0.066864 0.802704\n0.541412 0.068268 0.802063\n0.584900 0.069641 0.801453\n0.626770 0.071075 0.800812\n0.666565 0.072540 0.800171\n0.704010 0.074005 0.799561\n0.738770 0.075470 0.798920\n0.770630 0.077026 0.798248\n0.799438 0.078491 0.797546\n0.825592 0.080048 0.796875\n0.849335 0.081604 0.796204\n0.870911 0.083191 0.795532\n0.890533 0.084747 0.794830\n0.908356 0.086334 0.794189\n0.924622 0.087952 0.793488\n0.939392 0.089630 0.792786\n0.952789 0.091278 0.792114\n0.964844 0.092926 0.791412\n0.050110 0.073608 0.809174\n0.072601 0.074738 0.808746\n0.096100 0.075897 0.808258\n0.120697 0.077057 0.807770\n0.146606 0.078308 0.807251\n0.173889 0.079498 0.806763\n0.202728 0.080841 0.806183\n0.233337 0.082123 0.805634\n0.265930 0.083405 0.805115\n0.300659 0.084778 0.804474\n0.337433 0.086121 0.803955\n0.376251 0.087524 0.803345\n0.416901 0.088989 0.802734\n0.458862 0.090393 0.802124\n0.502228 0.091858 0.801483\n0.546356 0.093384 0.800842\n0.589630 0.094818 0.800201\n0.631409 0.096375 0.799591\n0.671051 0.097961 0.798920\n0.708191 0.099487 0.798248\n0.742645 0.101105 0.797577\n0.774170 0.102722 0.796936\n0.802704 0.104309 0.796234\n0.828583 0.105957 0.795563\n0.852051 0.107605 0.794861\n0.873383 0.109314 0.794189\n0.892792 0.110992 0.793488\n0.910461 0.112671 0.792816\n0.926514 0.114410 0.792114\n0.941132 0.116180 0.791412\n0.954376 0.117889 0.790741\n0.966309 0.119659 0.790100\n0.052094 0.098389 0.808289\n0.074738 0.099609 0.807770\n0.098358 0.100861 0.807281\n0.123138 0.102173 0.806763\n0.149200 0.103516 0.806183\n0.176666 0.104858 0.805664\n0.205750 0.106232 0.805115\n0.236603 0.107666 0.804504\n0.269440 0.109070 0.803955\n0.304413 0.110565 0.803345\n0.341553 0.112000 0.802734\n0.380615 0.113525 0.802155\n0.421387 0.115051 0.801483\n0.463654 0.116608 0.800903\n0.507141 0.118195 0.800232\n0.551361 0.119781 0.799591\n0.594574 0.121368 0.798920\n0.636108 0.123047 0.798279\n0.675568 0.124725 0.797577\n0.712433 0.126343 0.796967\n0.746552 0.128082 0.796234\n0.777710 0.129791 0.795593\n0.805969 0.131500 0.794922\n0.831573 0.133301 0.794220\n0.854767 0.135010 0.793549\n0.875885 0.136841 0.792847\n0.895050 0.138672 0.792145\n0.912506 0.140472 0.791443\n0.928406 0.142334 0.790741\n0.942871 0.144196 0.790100\n0.955902 0.146027 0.789398\n0.967712 0.147919 0.788727\n0.054199 0.124481 0.807281\n0.076965 0.125885 0.806793\n0.100708 0.127228 0.806213\n0.125671 0.128662 0.805664\n0.151947 0.130096 0.805115\n0.179565 0.131531 0.804565\n0.208893 0.133057 0.803986\n0.239960 0.134552 0.803375\n0.273071 0.136108 0.802765\n0.308380 0.137726 0.802155\n0.345764 0.139282 0.801514\n0.385071 0.140930 0.800934\n0.426086 0.142609 0.800262\n0.468567 0.144226 0.799591\n0.512177 0.145966 0.798950\n0.556427 0.147705 0.798279\n0.599518 0.149414 0.797607\n0.640900 0.151215 0.796967\n0.680054 0.153015 0.796265\n0.716644 0.154785 0.795593\n0.750458 0.156616 0.794922\n0.781311 0.158447 0.794250\n0.809174 0.160309 0.793549\n0.834564 0.162231 0.792847\n0.857483 0.164062 0.792175\n0.878357 0.166016 0.791473\n0.897369 0.167969 0.790741\n0.914612 0.169861 0.790131\n0.930298 0.171814 0.789429\n0.944580 0.173859 0.788727\n0.957458 0.175781 0.788086\n0.969116 0.177826 0.787354\n0.056396 0.152100 0.806274\n0.079285 0.153595 0.805695\n0.103180 0.155090 0.805145\n0.128326 0.156647 0.804565\n0.154755 0.158234 0.803986\n0.182617 0.159821 0.803406\n0.212158 0.161469 0.802765\n0.243469 0.163086 0.802185\n0.276855 0.164764 0.801544\n0.312439 0.166504 0.800934\n0.350098 0.168213 0.800262\n0.389679 0.169983 0.799652\n0.430908 0.171783 0.798950\n0.473572 0.173584 0.798309\n0.517334 0.175415 0.797668\n0.561646 0.177307 0.796997\n0.604584 0.179138 0.796295\n0.645691 0.181061 0.795624\n0.684540 0.182922 0.794983\n0.720917 0.184906 0.794250\n0.754395 0.186890 0.793579\n0.784851 0.188843 0.792908\n0.812469 0.190857 0.792175\n0.837524 0.192871 0.791473\n0.860199 0.194916 0.790771\n0.880829 0.196991 0.790161\n0.899567 0.199036 0.789429\n0.916656 0.201111 0.788757\n0.932190 0.203186 0.788086\n0.946259 0.205261 0.787384\n0.959015 0.207397 0.786774\n0.970490 0.209564 0.786072\n0.058624 0.181427 0.805176\n0.081696 0.183044 0.804596\n0.105774 0.184662 0.804016\n0.131042 0.186371 0.803406\n0.157654 0.188049 0.802795\n0.185730 0.189819 0.802216\n0.215515 0.191589 0.801544\n0.247040 0.193390 0.800964\n0.280762 0.195221 0.800262\n0.316620 0.197113 0.799652\n0.354523 0.198944 0.798981\n0.394379 0.200867 0.798340\n0.435852 0.202820 0.797668\n0.478699 0.204742 0.797028\n0.522644 0.206757 0.796295\n0.566711 0.208710 0.795654\n0.609619 0.210754 0.794983\n0.650574 0.212830 0.794281\n0.689148 0.214874 0.793610\n0.725189 0.217010 0.792938\n0.758362 0.219116 0.792206\n0.788452 0.221222 0.791534\n0.815735 0.223358 0.790833\n0.840454 0.225555 0.790161\n0.862885 0.227692 0.789459\n0.883270 0.229950 0.788818\n0.901825 0.232208 0.788116\n0.918701 0.234344 0.787415\n0.934052 0.236633 0.786774\n0.947937 0.238861 0.786102\n0.960510 0.241150 0.785461\n0.971832 0.243500 0.784760\n0.061005 0.212585 0.804047\n0.084198 0.214417 0.803406\n0.108398 0.216187 0.802856\n0.133881 0.218048 0.802216\n0.160645 0.219879 0.801575\n0.188965 0.221771 0.800995\n0.218964 0.223755 0.800293\n0.250763 0.225677 0.799683\n0.284790 0.227661 0.799011\n0.320923 0.229736 0.798340\n0.359131 0.231720 0.797699\n0.399170 0.233795 0.797058\n0.440887 0.235931 0.796326\n0.483887 0.238007 0.795685\n0.527954 0.240204 0.795013\n0.572021 0.242340 0.794312\n0.614746 0.244507 0.793610\n0.655426 0.246765 0.792938\n0.693726 0.248962 0.792236\n0.729431 0.251221 0.791534\n0.762238 0.253571 0.790833\n0.791992 0.255798 0.790192\n0.818970 0.258118 0.789490\n0.843414 0.260498 0.788818\n0.865570 0.262817 0.788147\n0.885742 0.265167 0.787415\n0.904053 0.267578 0.786804\n0.920715 0.269989 0.786133\n0.935883 0.272400 0.785461\n0.949615 0.274811 0.784821\n0.962036 0.277252 0.784180\n0.973206 0.279724 0.783539\n0.063446 0.245911 0.802856\n0.086731 0.247833 0.802246\n0.111115 0.249817 0.801636\n0.136780 0.251831 0.800995\n0.163757 0.253876 0.800323\n0.192291 0.255981 0.799713\n0.222534 0.258118 0.799011\n0.254608 0.260223 0.798370\n0.288910 0.262390 0.797729\n0.325348 0.264618 0.797058\n0.363770 0.266815 0.796356\n0.404083 0.269073 0.795685\n0.445953 0.271301 0.795044\n0.489166 0.273651 0.794342\n0.533447 0.275970 0.793640\n0.577362 0.278320 0.792969\n0.619873 0.280640 0.792267\n0.660309 0.283142 0.791565\n0.698334 0.285492 0.790863\n0.733704 0.287964 0.790222\n0.766113 0.290436 0.789490\n0.795532 0.292877 0.788849\n0.822144 0.295441 0.788147\n0.846313 0.297943 0.787445\n0.868225 0.300446 0.786835\n0.888153 0.302979 0.786133\n0.906219 0.305481 0.785492\n0.922729 0.308075 0.784821\n0.937714 0.310730 0.784180\n0.951263 0.313293 0.783569\n0.963531 0.315887 0.782928\n0.974518 0.318542 0.782318\n0.065979 0.281616 0.801636\n0.089386 0.283722 0.801025\n0.113983 0.285950 0.800323\n0.139801 0.288177 0.799713\n0.166931 0.290344 0.799042\n0.195709 0.292633 0.798431\n0.226196 0.294983 0.797729\n0.258545 0.297272 0.797089\n0.293121 0.299622 0.796356\n0.329803 0.302063 0.795715\n0.368530 0.304382 0.795044\n0.409088 0.306885 0.794342\n0.451141 0.309326 0.793671\n0.494598 0.311829 0.792999\n0.538910 0.314331 0.792267\n0.582703 0.316864 0.791626\n0.625000 0.319427 0.790894\n0.665161 0.321991 0.790222\n0.702881 0.324554 0.789520\n0.737946 0.327240 0.788879\n0.770020 0.329865 0.788177\n0.799011 0.332458 0.787506\n0.825348 0.335205 0.786835\n0.849152 0.337799 0.786163\n0.870850 0.340546 0.785522\n0.890533 0.343292 0.784851\n0.908417 0.345978 0.784210\n0.924713 0.348724 0.783600\n0.939514 0.351471 0.782928\n0.952881 0.354156 0.782349\n0.964966 0.356934 0.781769\n0.975800 0.359741 0.781128\n0.068542 0.319946 0.800385\n0.092133 0.322174 0.799744\n0.116852 0.324554 0.799072\n0.142853 0.326996 0.798431\n0.170227 0.329376 0.797791\n0.199188 0.331818 0.797119\n0.229950 0.334351 0.796417\n0.262573 0.336792 0.795746\n0.297455 0.339386 0.795074\n0.334412 0.341949 0.794373\n0.373413 0.344543 0.793671\n0.414185 0.347168 0.793030\n0.456451 0.349762 0.792297\n0.500000 0.352417 0.791626\n0.544464 0.355164 0.790894\n0.588074 0.357788 0.790253\n0.630188 0.360565 0.789581\n0.670074 0.363342 0.788879\n0.707428 0.366028 0.788208\n0.742157 0.368835 0.787537\n0.773865 0.371674 0.786835\n0.802521 0.374390 0.786224\n0.828491 0.377258 0.785522\n0.852020 0.380035 0.784912\n0.873444 0.382904 0.784241\n0.892883 0.385773 0.783600\n0.910553 0.388580 0.782959\n0.926636 0.391449 0.782379\n0.941254 0.394379 0.781769\n0.954468 0.397217 0.781158\n0.966400 0.400085 0.780579\n0.977081 0.402954 0.779999\n0.071228 0.360565 0.799072\n0.094910 0.363007 0.798462\n0.119843 0.365601 0.797791\n0.146027 0.368164 0.797119\n0.173584 0.370697 0.796448\n0.202789 0.373383 0.795746\n0.233765 0.376068 0.795074\n0.266663 0.378693 0.794403\n0.301849 0.381409 0.793701\n0.339081 0.384125 0.793030\n0.378326 0.386902 0.792328\n0.419342 0.389679 0.791656\n0.461792 0.392395 0.790955\n0.505554 0.395294 0.790283\n0.549957 0.398102 0.789612\n0.593475 0.400940 0.788910\n0.635345 0.403870 0.788208\n0.674957 0.406799 0.787537\n0.712036 0.409607 0.786865\n0.746338 0.412567 0.786224\n0.777588 0.415405 0.785553\n0.805939 0.418396 0.784912\n0.831604 0.421356 0.784241\n0.854858 0.424255 0.783630\n0.876007 0.427246 0.782990\n0.895233 0.430267 0.782379\n0.912659 0.433167 0.781799\n0.928558 0.436157 0.781189\n0.942993 0.439148 0.780579\n0.956024 0.442078 0.780029\n0.967804 0.445099 0.779480\n0.978333 0.448029 0.778931\n0.073914 0.403381 0.797791\n0.097809 0.406006 0.797119\n0.122864 0.408722 0.796478\n0.149231 0.411469 0.795776\n0.177032 0.414185 0.795074\n0.206451 0.417023 0.794434\n0.237671 0.419830 0.793732\n0.270874 0.422577 0.793030\n0.306305 0.425476 0.792328\n0.343811 0.428314 0.791656\n0.383331 0.431274 0.790955\n0.424591 0.434235 0.790283\n0.467224 0.437073 0.789642\n0.511078 0.440033 0.788910\n0.555511 0.443024 0.788239\n0.598816 0.446014 0.787567\n0.640442 0.449005 0.786865\n0.679779 0.452026 0.786255\n0.716522 0.454987 0.785583\n0.750458 0.458038 0.784943\n0.781342 0.461060 0.784271\n0.809296 0.464111 0.783661\n0.834686 0.467163 0.782990\n0.857666 0.470184 0.782410\n0.878510 0.473267 0.781799\n0.897522 0.476349 0.781189\n0.914764 0.479340 0.780609\n0.930420 0.482422 0.780060\n0.944702 0.485443 0.779510\n0.957550 0.488464 0.778961\n0.969177 0.491608 0.778442\n0.979523 0.494507 0.778320\n0.076691 0.448090 0.796478\n0.100739 0.450836 0.795807\n0.125977 0.453735 0.795105\n0.152527 0.456696 0.794434\n0.180511 0.459442 0.793762\n0.210144 0.462402 0.793060\n0.241577 0.465302 0.792389\n0.275146 0.468292 0.791687\n0.310883 0.471252 0.790985\n0.348694 0.474243 0.790344\n0.388397 0.477264 0.789642\n0.429871 0.480347 0.788940\n0.472656 0.483307 0.788300\n0.516724 0.486420 0.787598\n0.561127 0.489502 0.786896\n0.604187 0.492523 0.786285\n0.645569 0.495636 0.785583\n0.684540 0.498688 0.784973\n0.721008 0.501831 0.784302\n0.754547 0.504974 0.783661\n0.785034 0.507996 0.783020\n0.812683 0.511139 0.782410\n0.837738 0.514313 0.781830\n0.860413 0.517365 0.781250\n0.881042 0.520569 0.780609\n0.899750 0.523651 0.780060\n0.916809 0.526764 0.779541\n0.932312 0.529877 0.778961\n0.946350 0.532867 0.778473\n0.959045 0.535980 0.778320\n0.970520 0.539124 0.778320\n0.980713 0.542114 0.778320\n0.079529 0.494324 0.795105\n0.103729 0.497284 0.794464\n0.129150 0.500244 0.793762\n0.155884 0.503235 0.793060\n0.184052 0.506226 0.792419\n0.213928 0.509308 0.791687\n0.245636 0.512177 0.791016\n0.279449 0.515350 0.790344\n0.315491 0.518463 0.789673\n0.353516 0.521423 0.788971\n0.393555 0.524597 0.788300\n0.435181 0.527740 0.787598\n0.478180 0.530792 0.786926\n0.522308 0.533936 0.786285\n0.566650 0.537140 0.785614\n0.609589 0.540222 0.784973\n0.650665 0.543365 0.784302\n0.689270 0.546387 0.783691\n0.725403 0.549561 0.783081\n0.758575 0.552704 0.782440\n0.788666 0.555756 0.781860\n0.815979 0.558838 0.781281\n0.840668 0.561981 0.780640\n0.863068 0.564972 0.780090\n0.883453 0.568085 0.779541\n0.901978 0.571136 0.778992\n0.918793 0.574097 0.778473\n0.934113 0.577087 0.778320\n0.947968 0.580109 0.778320\n0.960510 0.583038 0.778320\n0.971802 0.585999 0.778320\n0.981873 0.588867 0.778320\n0.082428 0.541779 0.793793\n0.106781 0.544769 0.793091\n0.132355 0.547791 0.792419\n0.159271 0.550842 0.791718\n0.187714 0.553772 0.791016\n0.217773 0.556915 0.790375\n0.249756 0.559875 0.789703\n0.283875 0.562958 0.788971\n0.320190 0.566010 0.788330\n0.358521 0.569000 0.787628\n0.398682 0.572052 0.786926\n0.440552 0.575165 0.786316\n0.483704 0.578186 0.785645\n0.527924 0.581268 0.785004\n0.572174 0.584290 0.784332\n0.614868 0.587311 0.783691\n0.655640 0.590332 0.783081\n0.694031 0.593323 0.782471\n0.729736 0.596344 0.781860\n0.762543 0.599304 0.781281\n0.792236 0.602234 0.780701\n0.819183 0.605225 0.780090\n0.843597 0.608215 0.779541\n0.865692 0.611115 0.778992\n0.885834 0.614014 0.778473\n0.904144 0.616913 0.778320\n0.920776 0.619720 0.778320\n0.935852 0.622650 0.778320\n0.949554 0.625397 0.778320\n0.961945 0.628204 0.778320\n0.973083 0.631012 0.778320\n0.982971 0.633667 0.778320\n0.085388 0.588562 0.792450\n0.109863 0.591461 0.791748\n0.135620 0.594421 0.791046\n0.162720 0.597351 0.790375\n0.191315 0.600250 0.789703\n0.221710 0.603210 0.789001\n0.253906 0.606110 0.788361\n0.288330 0.609070 0.787659\n0.324921 0.612030 0.786987\n0.363495 0.614899 0.786346\n0.403900 0.617920 0.785645\n0.445953 0.620880 0.785004\n0.489258 0.623718 0.784393\n0.533569 0.626587 0.783722\n0.577637 0.629517 0.783112\n0.620117 0.632416 0.782471\n0.660675 0.635254 0.781891\n0.698669 0.638123 0.781311\n0.734009 0.640991 0.780701\n0.766418 0.643799 0.780121\n0.795746 0.646606 0.779572\n0.822357 0.649384 0.779022\n0.846466 0.652191 0.778503\n0.868347 0.654907 0.778320\n0.888184 0.657654 0.778320\n0.906250 0.660370 0.778320\n0.922668 0.662994 0.778320\n0.937592 0.665680 0.778320\n0.951111 0.668274 0.778320\n0.963379 0.670868 0.778320\n0.974335 0.673492 0.778320\n0.984039 0.675964 0.778320\n0.088379 0.633453 0.791107\n0.113007 0.636169 0.790405\n0.138977 0.639069 0.789734\n0.166199 0.641815 0.789062\n0.195068 0.644653 0.788361\n0.225677 0.647522 0.787659\n0.258148 0.650238 0.787018\n0.292847 0.653076 0.786346\n0.329712 0.655884 0.785706\n0.368500 0.658630 0.785034\n0.409149 0.661438 0.784393\n0.451355 0.664185 0.783752\n0.494873 0.666901 0.783142\n0.539185 0.669647 0.782501\n0.583069 0.672302 0.781921\n0.625397 0.675049 0.781311\n0.665588 0.677734 0.780731\n0.703278 0.680389 0.780121\n0.738251 0.683044 0.779602\n0.770233 0.685699 0.779022\n0.799225 0.688263 0.778534\n0.825470 0.690887 0.778320\n0.849274 0.693420 0.778320\n0.870850 0.695953 0.778320\n0.890472 0.698486 0.778320\n0.908295 0.700928 0.778320\n0.924530 0.703430 0.778320\n0.939270 0.705872 0.778320\n0.952606 0.708221 0.778320\n0.964691 0.710632 0.778320\n0.975525 0.712982 0.778320\n0.985107 0.715271 0.778320\n0.091400 0.675934 0.789734\n0.116211 0.678558 0.789062\n0.142334 0.681244 0.788391\n0.169769 0.683838 0.787689\n0.198853 0.686523 0.787048\n0.229706 0.689148 0.786377\n0.262390 0.691711 0.785736\n0.297363 0.694366 0.785065\n0.334473 0.696991 0.784424\n0.373566 0.699524 0.783752\n0.414459 0.702118 0.783142\n0.456879 0.704712 0.782501\n0.500397 0.707214 0.781921\n0.544861 0.709778 0.781342\n0.588531 0.712219 0.780731\n0.630493 0.714752 0.780182\n0.670410 0.717255 0.779602\n0.707733 0.719666 0.779053\n0.742371 0.722107 0.778534\n0.773987 0.724518 0.778320\n0.802551 0.726868 0.778320\n0.828491 0.729248 0.778320\n0.851990 0.731598 0.778320\n0.873291 0.733887 0.778320\n0.892700 0.736176 0.778320\n0.910309 0.738373 0.778320\n0.926331 0.740631 0.778320\n0.940948 0.742828 0.778320\n0.954102 0.744995 0.778320\n0.966003 0.747131 0.778320\n0.976654 0.749268 0.778320\n0.986115 0.751282 0.778320\n0.094391 0.715485 0.788422\n0.119385 0.717957 0.787720\n0.145691 0.720459 0.787048\n0.173340 0.722870 0.786377\n0.202637 0.725342 0.785736\n0.233734 0.727783 0.785065\n0.266693 0.730133 0.784454\n0.301971 0.732574 0.783783\n0.339355 0.735016 0.783173\n0.378632 0.737305 0.782562\n0.419678 0.739655 0.781921\n0.462189 0.742004 0.781372\n0.505951 0.744354 0.780762\n0.550354 0.746674 0.780182\n0.593842 0.748871 0.779633\n0.635620 0.751129 0.779053\n0.675232 0.753448 0.778534\n0.712189 0.755585 0.778320\n0.746399 0.757812 0.778320\n0.777618 0.760010 0.778320\n0.805878 0.762085 0.778320\n0.831451 0.764221 0.778320\n0.854645 0.766266 0.778320\n0.875702 0.768402 0.778320\n0.894867 0.770447 0.778320\n0.912262 0.772430 0.778320\n0.928131 0.774414 0.778320\n0.942505 0.776398 0.778320\n0.955505 0.778259 0.778320\n0.967255 0.780212 0.778320\n0.977783 0.782104 0.778320\n0.987091 0.783905 0.778320\n0.097504 0.751862 0.787079\n0.122681 0.754120 0.786377\n0.149139 0.756409 0.785767\n0.176941 0.758606 0.785095\n0.206482 0.760834 0.784454\n0.237762 0.763062 0.783783\n0.271057 0.765228 0.783203\n0.306580 0.767395 0.782593\n0.344208 0.769562 0.781952\n0.383698 0.771667 0.781372\n0.424957 0.773865 0.780762\n0.467621 0.775909 0.780212\n0.511444 0.777985 0.779633\n0.555878 0.780060 0.779114\n0.599091 0.782104 0.778595\n0.640656 0.784119 0.778320\n0.679871 0.786133 0.778320\n0.716522 0.788086 0.778320\n0.750336 0.790039 0.778320\n0.781189 0.791992 0.778320\n0.809052 0.793854 0.778320\n0.834351 0.795746 0.778320\n0.857239 0.797577 0.778320\n0.878052 0.799438 0.778320\n0.896973 0.801270 0.778320\n0.914185 0.803009 0.778320\n0.929840 0.804749 0.778320\n0.944031 0.806519 0.778320\n0.956909 0.808197 0.778320\n0.968475 0.809845 0.778320\n0.978851 0.811554 0.778320\n0.988037 0.813141 0.778320\n0.100647 0.784760 0.785797\n0.125916 0.786835 0.785126\n0.152527 0.788910 0.784485\n0.180603 0.790833 0.783813\n0.210327 0.792847 0.783203\n0.241882 0.794861 0.782593\n0.275391 0.796783 0.781982\n0.311218 0.798767 0.781403\n0.348999 0.800690 0.780792\n0.388763 0.802551 0.780243\n0.430237 0.804474 0.779663\n0.473022 0.806335 0.779144\n0.516968 0.808228 0.778625\n0.561310 0.810059 0.778320\n0.604340 0.811890 0.778320\n0.645538 0.813660 0.778320\n0.684479 0.815521 0.778320\n0.720764 0.817230 0.778320\n0.754242 0.819000 0.778320\n0.784668 0.820648 0.778320\n0.812164 0.822357 0.778320\n0.837158 0.824036 0.778320\n0.859741 0.825653 0.778320\n0.880310 0.827301 0.778320\n0.899017 0.828918 0.778320\n0.916046 0.830475 0.778320\n0.931488 0.832062 0.778320\n0.945526 0.833557 0.778320\n0.958221 0.835022 0.778320\n0.969635 0.836548 0.778320\n0.979889 0.837952 0.778320\n0.988922 0.839417 0.778320\n0.103760 0.814392 0.784515\n0.129242 0.816223 0.783875\n0.156036 0.818054 0.783234\n0.184296 0.819855 0.782623\n0.214233 0.821655 0.781982\n0.245972 0.823425 0.781403\n0.279785 0.825165 0.780823\n0.315857 0.826904 0.780243\n0.353882 0.828613 0.779663\n0.393860 0.830383 0.779144\n0.435486 0.832062 0.778625\n0.478394 0.833710 0.778320\n0.522461 0.835388 0.778320\n0.566681 0.837067 0.778320\n0.609467 0.838654 0.778320\n0.650391 0.840271 0.778320\n0.688995 0.841858 0.778320\n0.724915 0.843414 0.778320\n0.757996 0.844971 0.778320\n0.788025 0.846466 0.778320\n0.815247 0.847992 0.778320\n0.839874 0.849487 0.778320\n0.862183 0.850891 0.778320\n0.882507 0.852356 0.778320\n0.901031 0.853790 0.778320\n0.917816 0.855164 0.778320\n0.933075 0.856567 0.778320\n0.946960 0.857880 0.778320\n0.959473 0.859222 0.778320\n0.970764 0.860535 0.778320\n0.980865 0.861786 0.778320\n0.989777 0.863037 0.778320\n0.106903 0.840973 0.783234\n0.132538 0.842651 0.782623\n0.159515 0.844299 0.782043\n0.187958 0.845917 0.781433\n0.218079 0.847534 0.780823\n0.250031 0.849091 0.780273\n0.284149 0.850708 0.779694\n0.320465 0.852234 0.779144\n0.358765 0.853790 0.778656\n0.398895 0.855316 0.778320\n0.440704 0.856842 0.778320\n0.483734 0.858337 0.778320\n0.527832 0.859833 0.778320\n0.571930 0.861298 0.778320\n0.614441 0.862762 0.778320\n0.655090 0.864197 0.778320\n0.693390 0.865631 0.778320\n0.728943 0.867004 0.778320\n0.761658 0.868378 0.778320\n0.791260 0.869720 0.778320\n0.818146 0.871063 0.778320\n0.842529 0.872375 0.778320\n0.864563 0.873657 0.778320\n0.884644 0.874908 0.778320\n0.902954 0.876221 0.778320\n0.919525 0.877411 0.778320\n0.934631 0.878601 0.778320\n0.948334 0.879852 0.778320\n0.960693 0.881012 0.778320\n0.971863 0.882141 0.778320\n0.981812 0.883240 0.778320\n0.990570 0.884369 0.778320\n0.110077 0.864960 0.782074\n0.135864 0.866455 0.781433\n0.163025 0.867950 0.780823\n0.191620 0.869385 0.780273\n0.222015 0.870850 0.779694\n0.254181 0.872253 0.779175\n0.288544 0.873688 0.778656\n0.325073 0.875092 0.778320\n0.363586 0.876434 0.778320\n0.403992 0.877838 0.778320\n0.445892 0.879181 0.778320\n0.488983 0.880554 0.778320\n0.533142 0.881866 0.778320\n0.577087 0.883179 0.778320\n0.619385 0.884460 0.778320\n0.659729 0.885742 0.778320\n0.697632 0.886993 0.778320\n0.732880 0.888214 0.778320\n0.765167 0.889465 0.778320\n0.794464 0.890656 0.778320\n0.820953 0.891846 0.778320\n0.845032 0.893036 0.778320\n0.866852 0.894165 0.778320\n0.886719 0.895325 0.778320\n0.904785 0.896393 0.778320\n0.921173 0.897522 0.778320\n0.936127 0.898560 0.778320\n0.949646 0.899567 0.778320\n0.961884 0.900635 0.778320\n0.972900 0.901642 0.778320\n0.982727 0.902649 0.778320\n0.991364 0.903595 0.778320\n0.113251 0.886597 0.780853\n0.139191 0.887939 0.780304\n0.166473 0.889221 0.779724\n0.195282 0.890564 0.779205\n0.225891 0.891846 0.778687\n0.258331 0.893127 0.778320\n0.292908 0.894409 0.778320\n0.329712 0.895691 0.778320\n0.368408 0.896881 0.778320\n0.408905 0.898163 0.778320\n0.450989 0.899384 0.778320\n0.494263 0.900574 0.778320\n0.538391 0.901733 0.778320\n0.582123 0.902924 0.778320\n0.624176 0.904053 0.778320\n0.664246 0.905182 0.778320\n0.701813 0.906281 0.778320\n0.736664 0.907410 0.778320\n0.768616 0.908508 0.778320\n0.797485 0.909546 0.778320\n0.823761 0.910614 0.778320\n0.847534 0.911652 0.778320\n0.869049 0.912659 0.778320\n0.888702 0.913666 0.778320\n0.906555 0.914673 0.778320\n0.922791 0.915619 0.778320\n0.937531 0.916565 0.778320\n0.950897 0.917480 0.778320\n0.963013 0.918365 0.778320\n0.973877 0.919250 0.778320\n0.983551 0.920105 0.778320\n0.992096 0.920959 0.778320\n0.116425 0.906097 0.779755\n0.142548 0.907318 0.779205\n0.169952 0.908478 0.778687\n0.198975 0.909668 0.778320\n0.229797 0.910858 0.778320\n0.262421 0.911957 0.778320\n0.297272 0.913116 0.778320\n0.334259 0.914276 0.778320\n0.373199 0.915375 0.778320\n0.413849 0.916473 0.778320\n0.456085 0.917572 0.778320\n0.499390 0.918610 0.778320\n0.543579 0.919647 0.778320\n0.587067 0.920715 0.778320\n0.628906 0.921722 0.778320\n0.668610 0.922760 0.778320\n0.705811 0.923706 0.778320\n0.740356 0.924713 0.778320\n0.771912 0.925720 0.778320\n0.800476 0.926605 0.778320\n0.826385 0.927551 0.778320\n0.849884 0.928467 0.778320\n0.871185 0.929352 0.778320\n0.890564 0.930237 0.778320\n0.908234 0.931091 0.778320\n0.924255 0.931946 0.778320\n0.938904 0.932800 0.778320\n0.952118 0.933563 0.778320\n0.964081 0.934326 0.778320\n0.974823 0.935150 0.778320\n0.984375 0.935883 0.778320\n0.992798 0.936646 0.778320\n0.119568 0.923706 0.778717\n0.145844 0.924835 0.778320\n0.173431 0.925873 0.778320\n0.202667 0.926941 0.778320\n0.233673 0.927979 0.778320\n0.266541 0.928986 0.778320\n0.301636 0.930023 0.778320\n0.338806 0.931030 0.778320\n0.377899 0.932007 0.778320\n0.418762 0.932983 0.778320\n0.461029 0.933960 0.778320\n0.504425 0.934875 0.778320\n0.548645 0.935852 0.778320\n0.591858 0.936768 0.778320\n0.633453 0.937653 0.778320\n0.672852 0.938568 0.778320\n0.709778 0.939423 0.778320\n0.743866 0.940308 0.778320\n0.775085 0.941162 0.778320\n0.803345 0.942017 0.778320\n0.828918 0.942810 0.778320\n0.852142 0.943604 0.778320\n0.873230 0.944397 0.778320\n0.892426 0.945160 0.778320\n0.909851 0.945892 0.778320\n0.925751 0.946655 0.778320\n0.940186 0.947388 0.778320\n0.953247 0.948090 0.778320\n0.965088 0.948792 0.778320\n0.975708 0.949432 0.778320\n0.985138 0.950073 0.778320\n0.993408 0.950745 0.778320\n0.122772 0.939606 0.778320\n0.149170 0.940582 0.778320\n0.176910 0.941528 0.778320\n0.206299 0.942474 0.778320\n0.237457 0.943420 0.778320\n0.270599 0.944305 0.778320\n0.305939 0.945221 0.778320\n0.343353 0.946106 0.778320\n0.382568 0.946991 0.778320\n0.423584 0.947876 0.778320\n0.465881 0.948700 0.778320\n0.509430 0.949554 0.778320\n0.553528 0.950378 0.778320\n0.596588 0.951202 0.778320\n0.637817 0.951996 0.778320\n0.676941 0.952789 0.778320\n0.713531 0.953583 0.778320\n0.747345 0.954346 0.778320\n0.778198 0.955078 0.778320\n0.806061 0.955780 0.778320\n0.831329 0.956512 0.778320\n0.854309 0.957184 0.778320\n0.875183 0.957886 0.778320\n0.894135 0.958557 0.778320\n0.911377 0.959198 0.778320\n0.927124 0.959869 0.778320\n0.941376 0.960480 0.778320\n0.954346 0.961090 0.778320\n0.966034 0.961700 0.778320\n0.976532 0.962280 0.778320\n0.985840 0.962860 0.778320\n0.994019 0.963379 0.778320\n0.125885 0.953888 0.778320\n0.152435 0.954742 0.778320\n0.180328 0.955597 0.778320\n0.209961 0.956451 0.778320\n0.241333 0.957275 0.778320\n0.274658 0.958038 0.778320\n0.310211 0.958862 0.778320\n0.347717 0.959625 0.778320\n0.387146 0.960449 0.778320\n0.428314 0.961182 0.778320\n0.470734 0.961914 0.778320\n0.514313 0.962677 0.778320\n0.558380 0.963409 0.778320\n0.601135 0.964142 0.778320\n0.642120 0.964813 0.778320\n0.680939 0.965515 0.778320\n0.717133 0.966156 0.778320\n0.750610 0.966858 0.778320\n0.781097 0.967499 0.778320\n0.808685 0.968109 0.778320\n0.833649 0.968781 0.778320\n0.856384 0.969360 0.778320\n0.877014 0.969940 0.778320\n0.895782 0.970520 0.778320\n0.912842 0.971100 0.778320\n0.928406 0.971649 0.778320\n0.942566 0.972198 0.778320\n0.955353 0.972687 0.778320\n0.966919 0.973206 0.778320\n0.977295 0.973724 0.778320\n0.986511 0.974152 0.778320\n0.994598 0.974640 0.778320\n0.129028 0.966675 0.778320\n0.155701 0.967407 0.778320\n0.183777 0.968170 0.778320\n0.213531 0.968903 0.778320\n0.245087 0.969635 0.778320\n0.278625 0.970337 0.778320\n0.314392 0.971039 0.778320\n0.352112 0.971710 0.778320\n0.391724 0.972382 0.778320\n0.432983 0.973083 0.778320\n0.475464 0.973724 0.778320\n0.519073 0.974365 0.778320\n0.562988 0.975006 0.778320\n0.605560 0.975616 0.778320\n0.646301 0.976227 0.778320\n0.684784 0.976837 0.778320\n0.720642 0.977386 0.778320\n0.753754 0.977966 0.778320\n0.783875 0.978516 0.778320\n0.811157 0.979065 0.778320\n0.835876 0.979614 0.778320\n0.858337 0.980133 0.778320\n0.878754 0.980621 0.778320\n0.897369 0.981110 0.778320\n0.914276 0.981598 0.778320\n0.929688 0.982056 0.778320\n0.943634 0.982513 0.778320\n0.956299 0.982971 0.778320\n0.967773 0.983368 0.778320\n0.978027 0.983795 0.778320\n0.987122 0.984192 0.778320\n0.995117 0.984589 0.778320\n0.045105 0.006378 0.835022\n0.067139 0.007233 0.834717\n0.090271 0.008118 0.834351\n0.114441 0.009064 0.833954\n0.139862 0.009979 0.833588\n0.166626 0.010986 0.833221\n0.194916 0.011993 0.832764\n0.224823 0.012970 0.832367\n0.256683 0.014069 0.831909\n0.290680 0.015106 0.831451\n0.326752 0.016205 0.831024\n0.364807 0.017334 0.830536\n0.404694 0.018433 0.830017\n0.446198 0.019623 0.829529\n0.488983 0.020844 0.829010\n0.532745 0.022003 0.828461\n0.576447 0.023224 0.827911\n0.618591 0.024506 0.827393\n0.658722 0.025726 0.826813\n0.696594 0.027039 0.826294\n0.731812 0.028381 0.825684\n0.764160 0.029663 0.825104\n0.793610 0.031036 0.824524\n0.820251 0.032379 0.823944\n0.844452 0.033752 0.823334\n0.866425 0.035187 0.822723\n0.886414 0.036560 0.822113\n0.904633 0.037994 0.821503\n0.921173 0.039459 0.820862\n0.936218 0.040894 0.820282\n0.949921 0.042389 0.819641\n0.962280 0.043884 0.819031\n0.046753 0.027924 0.834351\n0.069000 0.028809 0.833984\n0.092224 0.029785 0.833588\n0.116577 0.030823 0.833221\n0.142151 0.031860 0.832794\n0.169098 0.032928 0.832367\n0.197571 0.034027 0.831909\n0.227722 0.035126 0.831482\n0.259857 0.036224 0.831024\n0.294067 0.037384 0.830536\n0.330444 0.038574 0.830017\n0.368805 0.039795 0.829529\n0.408875 0.041016 0.829041\n0.450562 0.042297 0.828461\n0.493561 0.043579 0.827942\n0.537476 0.044830 0.827423\n0.581024 0.046173 0.826843\n0.623047 0.047516 0.826294\n0.662994 0.048859 0.825684\n0.700714 0.050232 0.825104\n0.735596 0.051636 0.824554\n0.767670 0.053040 0.823975\n0.796814 0.054504 0.823334\n0.823181 0.055908 0.822754\n0.847137 0.057404 0.822113\n0.868927 0.058868 0.821564\n0.888702 0.060333 0.820892\n0.906708 0.061920 0.820282\n0.923096 0.063416 0.819672\n0.937988 0.064972 0.819031\n0.951508 0.066528 0.818390\n0.963715 0.068054 0.817780\n0.048584 0.050415 0.833588\n0.070923 0.051392 0.833252\n0.094299 0.052521 0.832825\n0.118805 0.053619 0.832397\n0.144531 0.054718 0.831940\n0.171661 0.055878 0.831482\n0.200348 0.057068 0.831024\n0.230743 0.058289 0.830566\n0.263092 0.059509 0.830078\n0.297577 0.060760 0.829559\n0.334259 0.062042 0.829041\n0.372864 0.063354 0.828491\n0.413208 0.064606 0.827972\n0.455109 0.066040 0.827423\n0.498322 0.067383 0.826843\n0.542267 0.068756 0.826324\n0.585785 0.070221 0.825714\n0.627655 0.071625 0.825165\n0.667450 0.073059 0.824554\n0.704834 0.074554 0.823975\n0.739441 0.075989 0.823364\n0.771240 0.077545 0.822784\n0.800079 0.079071 0.822144\n0.826111 0.080627 0.821594\n0.849854 0.082184 0.820923\n0.871368 0.083771 0.820312\n0.890930 0.085327 0.819702\n0.908752 0.086975 0.819061\n0.924988 0.088593 0.818420\n0.939697 0.090240 0.817780\n0.953094 0.091888 0.817200\n0.965118 0.093506 0.816528\n0.050476 0.074005 0.832825\n0.072968 0.075104 0.832397\n0.096497 0.076355 0.831940\n0.121155 0.077545 0.831512\n0.147034 0.078735 0.831055\n0.174377 0.079987 0.830566\n0.203247 0.081268 0.830109\n0.233948 0.082581 0.829559\n0.266571 0.083923 0.829041\n0.301300 0.085266 0.828522\n0.338226 0.086639 0.828003\n0.377106 0.088074 0.827454\n0.417664 0.089478 0.826874\n0.459808 0.090912 0.826324\n0.503113 0.092438 0.825714\n0.547211 0.093872 0.825195\n0.590607 0.095398 0.824585\n0.632263 0.096924 0.823975\n0.671875 0.098480 0.823395\n0.709015 0.100098 0.822784\n0.743347 0.101654 0.822174\n0.774841 0.103302 0.821594\n0.803314 0.104919 0.820923\n0.829102 0.106537 0.820312\n0.852570 0.108246 0.819702\n0.873871 0.109924 0.819061\n0.893250 0.111572 0.818451\n0.910858 0.113312 0.817810\n0.926880 0.115021 0.817230\n0.941437 0.116791 0.816559\n0.954651 0.118591 0.815948\n0.966553 0.120300 0.815338\n0.052521 0.098846 0.831970\n0.075073 0.100037 0.831512\n0.098785 0.101349 0.831055\n0.123627 0.102692 0.830597\n0.149658 0.103973 0.830109\n0.177216 0.105377 0.829590\n0.206268 0.106750 0.829102\n0.237213 0.108154 0.828522\n0.270111 0.109589 0.828003\n0.305145 0.111053 0.827484\n0.342316 0.112549 0.826904\n0.381439 0.114105 0.826324\n0.422272 0.115601 0.825745\n0.464600 0.117157 0.825195\n0.508118 0.118774 0.824585\n0.552277 0.120361 0.824005\n0.595490 0.122009 0.823395\n0.636993 0.123627 0.822815\n0.676331 0.125336 0.822235\n0.713196 0.127014 0.821625\n0.747284 0.128693 0.820953\n0.778381 0.130432 0.820343\n0.806580 0.132202 0.819733\n0.832092 0.133911 0.819122\n0.855255 0.135712 0.818481\n0.876373 0.137512 0.817810\n0.895508 0.139313 0.817230\n0.912933 0.141144 0.816589\n0.928772 0.142975 0.815979\n0.943176 0.144867 0.815369\n0.956207 0.146729 0.814697\n0.967957 0.148590 0.814087\n0.054596 0.125000 0.831085\n0.077362 0.126312 0.830597\n0.101166 0.127777 0.830139\n0.126129 0.129181 0.829620\n0.152435 0.130646 0.829102\n0.180145 0.132111 0.828552\n0.209473 0.133606 0.828033\n0.240601 0.135132 0.827484\n0.273773 0.136719 0.826904\n0.309113 0.138306 0.826355\n0.346588 0.139923 0.825775\n0.385956 0.141571 0.825226\n0.426941 0.143188 0.824615\n0.469513 0.144928 0.824005\n0.513123 0.146576 0.823425\n0.557373 0.148285 0.822845\n0.600464 0.150085 0.822235\n0.641754 0.151794 0.821625\n0.680908 0.153625 0.820953\n0.717468 0.155457 0.820343\n0.751190 0.157257 0.819763\n0.781982 0.159149 0.819122\n0.809845 0.161011 0.818481\n0.835083 0.162872 0.817902\n0.858002 0.164764 0.817261\n0.878815 0.166656 0.816620\n0.897766 0.168610 0.815979\n0.915009 0.170593 0.815369\n0.930634 0.172516 0.814728\n0.944916 0.174530 0.814148\n0.957764 0.176544 0.813507\n0.969360 0.178497 0.812897\n0.056824 0.152618 0.830139\n0.079712 0.154114 0.829620\n0.103668 0.155670 0.829102\n0.128784 0.157196 0.828583\n0.155243 0.158813 0.828033\n0.183197 0.160431 0.827515\n0.212738 0.162079 0.826965\n0.244141 0.163727 0.826385\n0.277588 0.165436 0.825775\n0.313171 0.167114 0.825256\n0.350922 0.168884 0.824615\n0.390533 0.170654 0.824036\n0.431824 0.172424 0.823456\n0.474548 0.174255 0.822845\n0.518311 0.176086 0.822266\n0.562561 0.177948 0.821655\n0.605560 0.179871 0.820984\n0.646606 0.181732 0.820374\n0.685486 0.183685 0.819763\n0.721741 0.185638 0.819153\n0.755127 0.187592 0.818512\n0.785553 0.189606 0.817902\n0.813141 0.191589 0.817261\n0.838043 0.193604 0.816620\n0.860687 0.195679 0.815979\n0.881256 0.197662 0.815399\n0.899994 0.199738 0.814758\n0.917084 0.201874 0.814148\n0.932526 0.203949 0.813538\n0.946594 0.206055 0.812927\n0.959290 0.208221 0.812286\n0.970734 0.210327 0.811707\n0.059052 0.181976 0.829102\n0.082123 0.183624 0.828583\n0.106262 0.185333 0.828064\n0.131531 0.186951 0.827545\n0.158203 0.188690 0.826965\n0.186310 0.190491 0.826385\n0.216125 0.192261 0.825836\n0.247803 0.194061 0.825256\n0.281525 0.195923 0.824615\n0.317413 0.197784 0.824066\n0.355438 0.199677 0.823456\n0.395233 0.201569 0.822876\n0.436768 0.203491 0.822266\n0.479645 0.205505 0.821655\n0.523560 0.207428 0.821014\n0.567749 0.209473 0.820404\n0.610596 0.211517 0.819794\n0.651459 0.213562 0.819183\n0.690063 0.215668 0.818542\n0.725983 0.217743 0.817932\n0.759064 0.219849 0.817291\n0.789124 0.222046 0.816650\n0.816345 0.224182 0.816010\n0.840973 0.226349 0.815430\n0.863434 0.228546 0.814758\n0.883728 0.230713 0.814209\n0.902252 0.232971 0.813538\n0.919067 0.235199 0.812927\n0.934357 0.237427 0.812317\n0.948273 0.239746 0.811737\n0.960815 0.242035 0.811127\n0.972076 0.244263 0.810547\n0.061462 0.213226 0.828094\n0.084656 0.214996 0.827545\n0.108948 0.216827 0.826965\n0.134369 0.218719 0.826416\n0.161224 0.220612 0.825867\n0.189606 0.222534 0.825256\n0.219574 0.224426 0.824646\n0.251526 0.226410 0.824066\n0.285553 0.228455 0.823486\n0.321716 0.230438 0.822906\n0.359985 0.232513 0.822266\n0.400085 0.234528 0.821686\n0.441772 0.236664 0.821014\n0.484863 0.238831 0.820404\n0.528961 0.240936 0.819824\n0.573059 0.243164 0.819183\n0.615723 0.245331 0.818542\n0.656311 0.247559 0.817932\n0.694641 0.249817 0.817291\n0.730255 0.252106 0.816650\n0.762939 0.254364 0.816040\n0.792664 0.256683 0.815430\n0.819519 0.258942 0.814819\n0.843933 0.261322 0.814209\n0.866058 0.263702 0.813568\n0.886139 0.266052 0.812958\n0.904449 0.268463 0.812347\n0.921082 0.270905 0.811737\n0.936218 0.273254 0.811157\n0.949921 0.275696 0.810547\n0.962311 0.278198 0.809937\n0.973450 0.280579 0.809418\n0.063904 0.246582 0.826996\n0.087250 0.248566 0.826447\n0.111664 0.250610 0.825867\n0.137329 0.252563 0.825287\n0.164368 0.254639 0.824707\n0.192932 0.256744 0.824097\n0.223145 0.258850 0.823517\n0.255402 0.261047 0.822906\n0.289612 0.263153 0.822296\n0.326141 0.265411 0.821716\n0.364685 0.267670 0.821075\n0.404968 0.269867 0.820465\n0.446960 0.272186 0.819855\n0.490173 0.274506 0.819214\n0.534393 0.276825 0.818573\n0.578369 0.279175 0.817963\n0.620880 0.281586 0.817291\n0.661194 0.283966 0.816711\n0.699188 0.286407 0.816071\n0.734528 0.288910 0.815460\n0.766846 0.291321 0.814819\n0.796204 0.293823 0.814240\n0.822754 0.296326 0.813568\n0.846832 0.298828 0.812988\n0.868744 0.301361 0.812347\n0.888580 0.303894 0.811798\n0.906677 0.306519 0.811157\n0.923126 0.309113 0.810577\n0.938049 0.311646 0.809967\n0.951569 0.314270 0.809418\n0.963806 0.316925 0.808838\n0.974762 0.319489 0.808289\n0.066406 0.282410 0.825897\n0.089935 0.284546 0.825287\n0.114502 0.286774 0.824707\n0.140350 0.288940 0.824127\n0.167603 0.291199 0.823547\n0.196350 0.293549 0.822906\n0.226837 0.295807 0.822327\n0.259308 0.298187 0.821716\n0.293854 0.300476 0.821106\n0.330688 0.302917 0.820465\n0.369476 0.305359 0.819855\n0.410004 0.307709 0.819244\n0.452148 0.310242 0.818604\n0.495636 0.312744 0.817963\n0.539948 0.315247 0.817352\n0.583740 0.317810 0.816742\n0.626007 0.320435 0.816071\n0.666077 0.322968 0.815491\n0.703796 0.325592 0.814850\n0.738678 0.328125 0.814240\n0.770691 0.330780 0.813568\n0.799713 0.333496 0.812988\n0.825897 0.336121 0.812378\n0.849731 0.338806 0.811829\n0.871338 0.341553 0.811157\n0.890961 0.344208 0.810608\n0.908813 0.346954 0.809998\n0.925079 0.349731 0.809448\n0.939819 0.352417 0.808868\n0.953186 0.355194 0.808289\n0.965210 0.357880 0.807770\n0.976044 0.360687 0.807220\n0.069031 0.320709 0.824768\n0.092651 0.323059 0.824158\n0.117432 0.325500 0.823547\n0.143433 0.327850 0.822937\n0.170898 0.330322 0.822357\n0.199799 0.332703 0.821747\n0.230591 0.335236 0.821136\n0.263336 0.337769 0.820496\n0.298218 0.340271 0.819885\n0.335297 0.342865 0.819244\n0.374359 0.345551 0.818604\n0.415070 0.348053 0.817993\n0.457458 0.350769 0.817352\n0.501038 0.353485 0.816742\n0.545471 0.356079 0.816101\n0.589142 0.358887 0.815491\n0.631165 0.361603 0.814850\n0.670929 0.364288 0.814240\n0.708374 0.367096 0.813599\n0.742859 0.369843 0.813049\n0.774506 0.372650 0.812408\n0.803192 0.375488 0.811829\n0.829071 0.378235 0.811188\n0.852570 0.381073 0.810608\n0.873932 0.384003 0.810028\n0.893341 0.386749 0.809448\n0.910980 0.389648 0.808868\n0.927032 0.392548 0.808319\n0.941559 0.395386 0.807800\n0.954773 0.398254 0.807251\n0.966675 0.401093 0.806763\n0.977295 0.404022 0.806183\n0.071686 0.361420 0.823578\n0.095459 0.363983 0.822968\n0.120422 0.366577 0.822357\n0.146606 0.369049 0.821777\n0.174225 0.371704 0.821136\n0.203430 0.374268 0.820526\n0.234436 0.377014 0.819885\n0.267487 0.379700 0.819275\n0.302643 0.382385 0.818634\n0.339996 0.385162 0.818024\n0.379303 0.387939 0.817383\n0.420288 0.390686 0.816772\n0.462860 0.393494 0.816132\n0.506592 0.396332 0.815521\n0.550995 0.399139 0.814880\n0.594543 0.401978 0.814270\n0.636261 0.404877 0.813629\n0.675842 0.407806 0.813049\n0.712891 0.410706 0.812408\n0.747040 0.413574 0.811829\n0.778320 0.416534 0.811218\n0.806580 0.419495 0.810638\n0.832184 0.422394 0.810059\n0.855408 0.425385 0.809479\n0.876465 0.428345 0.808929\n0.895630 0.431305 0.808350\n0.913055 0.434296 0.807800\n0.928894 0.437195 0.807281\n0.943298 0.440216 0.806763\n0.956329 0.443207 0.806213\n0.968048 0.446167 0.805725\n0.978577 0.449158 0.805237\n0.074432 0.404327 0.822388\n0.098389 0.407013 0.821808\n0.123444 0.409729 0.821167\n0.149841 0.412476 0.820526\n0.177643 0.415222 0.819885\n0.207092 0.417999 0.819305\n0.238373 0.420807 0.818665\n0.271667 0.423706 0.818024\n0.307129 0.426514 0.817413\n0.344757 0.429382 0.816803\n0.384308 0.432343 0.816132\n0.425537 0.435242 0.815552\n0.468201 0.438202 0.814880\n0.512115 0.441132 0.814301\n0.556549 0.444092 0.813660\n0.599854 0.447113 0.813080\n0.641357 0.450043 0.812439\n0.680634 0.453064 0.811859\n0.717346 0.456116 0.811218\n0.751190 0.459137 0.810669\n0.782074 0.462189 0.810059\n0.809967 0.465210 0.809509\n0.835236 0.468201 0.808960\n0.858185 0.471313 0.808350\n0.878998 0.474426 0.807831\n0.897919 0.477417 0.807281\n0.915161 0.480530 0.806763\n0.930756 0.483490 0.806274\n0.944977 0.486603 0.805725\n0.957855 0.489655 0.805267\n0.969421 0.492645 0.804840\n0.979767 0.495667 0.804840\n0.077209 0.449066 0.821198\n0.101288 0.451935 0.820526\n0.126526 0.454742 0.819946\n0.153137 0.457672 0.819336\n0.181183 0.460571 0.818695\n0.210846 0.463440 0.818054\n0.242371 0.466431 0.817413\n0.275940 0.469391 0.816803\n0.311676 0.472351 0.816162\n0.349579 0.475342 0.815552\n0.389404 0.478394 0.814880\n0.430817 0.481415 0.814301\n0.473694 0.484497 0.813660\n0.517670 0.487488 0.813110\n0.562103 0.490570 0.812469\n0.605225 0.493713 0.811859\n0.646484 0.496735 0.811249\n0.685486 0.499878 0.810669\n0.721802 0.503021 0.810059\n0.755249 0.506042 0.809509\n0.785767 0.509216 0.808960\n0.813293 0.512329 0.808350\n0.838257 0.515381 0.807831\n0.860901 0.518555 0.807281\n0.881439 0.521637 0.806793\n0.900146 0.524780 0.806274\n0.917175 0.527893 0.805725\n0.932648 0.530975 0.805298\n0.946655 0.534058 0.804840\n0.959351 0.537170 0.804840\n0.970734 0.540192 0.804840\n0.980927 0.543243 0.804840\n0.080078 0.495392 0.819946\n0.104309 0.498352 0.819336\n0.129730 0.501251 0.818726\n0.156464 0.504272 0.818085\n0.184753 0.507324 0.817444\n0.214630 0.510345 0.816864\n0.246429 0.513428 0.816193\n0.280304 0.516479 0.815552\n0.316315 0.519501 0.814911\n0.354492 0.522644 0.814331\n0.394440 0.525665 0.813690\n0.436157 0.528839 0.813110\n0.479248 0.531982 0.812469\n0.523346 0.535065 0.811890\n0.567688 0.538208 0.811279\n0.610596 0.541382 0.810699\n0.651520 0.544464 0.810089\n0.690216 0.547577 0.809540\n0.726227 0.550720 0.808960\n0.759277 0.553772 0.808411\n0.789368 0.556946 0.807861\n0.816559 0.560059 0.807312\n0.841217 0.563019 0.806824\n0.863586 0.566132 0.806305\n0.883881 0.569153 0.805786\n0.902374 0.572174 0.805298\n0.919159 0.575287 0.804840\n0.934418 0.578186 0.804840\n0.948273 0.581207 0.804840\n0.960815 0.584106 0.804840\n0.972046 0.587067 0.804840\n0.982086 0.589935 0.804840\n0.082947 0.542877 0.818726\n0.107361 0.545837 0.818085\n0.132904 0.548859 0.817474\n0.159912 0.551880 0.816864\n0.188385 0.554962 0.816193\n0.218475 0.557953 0.815582\n0.250549 0.561005 0.814941\n0.284698 0.564087 0.814331\n0.321014 0.567047 0.813721\n0.359406 0.570160 0.813141\n0.399719 0.573242 0.812500\n0.441559 0.576233 0.811920\n0.484802 0.579346 0.811279\n0.528961 0.582306 0.810730\n0.573151 0.585358 0.810120\n0.615875 0.588409 0.809540\n0.656555 0.591431 0.808990\n0.694916 0.594421 0.808411\n0.730560 0.597412 0.807861\n0.763214 0.600403 0.807343\n0.792969 0.603394 0.806824\n0.819824 0.606354 0.806305\n0.844116 0.609222 0.805817\n0.866211 0.612183 0.805298\n0.886261 0.615021 0.804840\n0.904541 0.617981 0.804840\n0.921112 0.620819 0.804840\n0.936218 0.623627 0.804840\n0.949890 0.626434 0.804840\n0.962250 0.629303 0.804840\n0.973297 0.631958 0.804840\n0.983185 0.634735 0.804840\n0.085907 0.589600 0.817505\n0.110504 0.592529 0.816864\n0.136230 0.595428 0.816223\n0.163361 0.598389 0.815613\n0.192078 0.601379 0.814941\n0.222412 0.604248 0.814362\n0.254730 0.607239 0.813721\n0.289215 0.610229 0.813141\n0.325775 0.613098 0.812531\n0.364410 0.616058 0.811920\n0.404816 0.618896 0.811310\n0.446960 0.621918 0.810730\n0.490356 0.624817 0.810120\n0.534637 0.627655 0.809570\n0.578674 0.630615 0.808990\n0.621155 0.633514 0.808411\n0.661530 0.636292 0.807861\n0.699554 0.639191 0.807343\n0.734833 0.642029 0.806854\n0.767120 0.644806 0.806305\n0.796448 0.647614 0.805817\n0.822937 0.650482 0.805328\n0.846985 0.653168 0.804840\n0.868805 0.655914 0.804840\n0.888611 0.658569 0.804840\n0.906647 0.661316 0.804840\n0.923035 0.664001 0.804840\n0.937927 0.666565 0.804840\n0.951447 0.669189 0.804840\n0.963593 0.671875 0.804840\n0.974548 0.674377 0.804840\n0.984283 0.676910 0.804840\n0.088898 0.634460 0.816254\n0.113647 0.637268 0.815613\n0.139557 0.640076 0.814972\n0.166870 0.642883 0.814392\n0.195801 0.645691 0.813751\n0.226379 0.648499 0.813141\n0.258942 0.651306 0.812531\n0.293671 0.654144 0.811951\n0.330566 0.656830 0.811340\n0.369476 0.659637 0.810730\n0.410126 0.662384 0.810150\n0.452332 0.665131 0.809601\n0.495911 0.667908 0.809021\n0.540253 0.670593 0.808441\n0.584076 0.673340 0.807892\n0.626343 0.676056 0.807373\n0.666443 0.678711 0.806885\n0.704132 0.681396 0.806305\n0.739014 0.684021 0.805847\n0.770905 0.686646 0.805359\n0.799866 0.689240 0.804871\n0.826019 0.691742 0.804840\n0.849762 0.694366 0.804840\n0.871338 0.696899 0.804840\n0.890900 0.699371 0.804840\n0.908691 0.701874 0.804840\n0.924896 0.704315 0.804840\n0.939606 0.706726 0.804840\n0.952942 0.709106 0.804840\n0.964935 0.711548 0.804840\n0.975708 0.713806 0.804840\n0.985321 0.716095 0.804840\n0.091949 0.676849 0.815002\n0.116791 0.679535 0.814423\n0.142914 0.682129 0.813782\n0.170471 0.684814 0.813171\n0.199585 0.687469 0.812561\n0.230347 0.690094 0.811981\n0.263214 0.692749 0.811340\n0.298218 0.695251 0.810760\n0.335388 0.697906 0.810181\n0.374542 0.700531 0.809601\n0.415375 0.703003 0.809021\n0.457825 0.705627 0.808472\n0.501465 0.708191 0.807892\n0.545837 0.710663 0.807404\n0.589478 0.713165 0.806885\n0.631500 0.715729 0.806335\n0.671295 0.718140 0.805847\n0.708588 0.720551 0.805359\n0.743164 0.723022 0.804871\n0.774658 0.725403 0.804840\n0.803223 0.727783 0.804840\n0.829041 0.730072 0.804840\n0.852478 0.732422 0.804840\n0.873779 0.734711 0.804840\n0.893097 0.736969 0.804840\n0.910706 0.739227 0.804840\n0.926697 0.741455 0.804840\n0.941193 0.743622 0.804840\n0.954376 0.745819 0.804840\n0.966248 0.747955 0.804840\n0.976868 0.750000 0.804840\n0.986328 0.752075 0.804840\n0.095001 0.716400 0.813782\n0.120026 0.718903 0.813171\n0.146301 0.721283 0.812592\n0.174042 0.723785 0.811981\n0.203339 0.726227 0.811371\n0.234436 0.728638 0.810760\n0.267578 0.731049 0.810181\n0.302765 0.733398 0.809631\n0.340210 0.735809 0.809052\n0.379578 0.738190 0.808472\n0.420624 0.740509 0.807953\n0.463257 0.742859 0.807404\n0.506989 0.745209 0.806885\n0.551392 0.747498 0.806366\n0.594849 0.749756 0.805878\n0.636566 0.752045 0.805389\n0.676056 0.754242 0.804901\n0.713013 0.756439 0.804840\n0.747131 0.758606 0.804840\n0.778259 0.760742 0.804840\n0.806458 0.762909 0.804840\n0.831970 0.765015 0.804840\n0.855164 0.767090 0.804840\n0.876190 0.769196 0.804840\n0.895264 0.771149 0.804840\n0.912659 0.773132 0.804840\n0.928436 0.775146 0.804840\n0.942810 0.777069 0.804840\n0.955780 0.778992 0.804840\n0.967468 0.780853 0.804840\n0.977966 0.782715 0.804840\n0.987274 0.784546 0.804840\n0.098083 0.752716 0.812592\n0.123291 0.754974 0.812012\n0.149750 0.757172 0.811401\n0.177643 0.759430 0.810822\n0.207153 0.761597 0.810211\n0.238525 0.763855 0.809662\n0.271881 0.766022 0.809082\n0.307404 0.768158 0.808502\n0.345093 0.770325 0.807983\n0.384674 0.772491 0.807404\n0.425903 0.774597 0.806915\n0.468628 0.776642 0.806366\n0.512573 0.778778 0.805878\n0.556915 0.780792 0.805389\n0.600128 0.782867 0.804901\n0.641479 0.784821 0.804840\n0.680725 0.786835 0.804840\n0.717346 0.788849 0.804840\n0.751068 0.790710 0.804840\n0.781830 0.792664 0.804840\n0.809692 0.794586 0.804840\n0.834839 0.796417 0.804840\n0.857727 0.798279 0.804840\n0.878510 0.800110 0.804840\n0.897369 0.801910 0.804840\n0.914551 0.803680 0.804840\n0.930176 0.805420 0.804840\n0.944305 0.807098 0.804840\n0.957184 0.808807 0.804840\n0.968689 0.810455 0.804840\n0.979034 0.812073 0.804840\n0.988220 0.813690 0.804840\n0.101196 0.785553 0.811401\n0.126587 0.787598 0.810822\n0.153198 0.789612 0.810242\n0.181305 0.791626 0.809662\n0.210999 0.793579 0.809082\n0.242615 0.795563 0.808533\n0.276245 0.797516 0.807983\n0.312042 0.799438 0.807404\n0.349945 0.801392 0.806946\n0.389771 0.803314 0.806366\n0.431152 0.805176 0.805908\n0.474060 0.807037 0.805420\n0.518036 0.808960 0.804932\n0.562256 0.810730 0.804840\n0.605347 0.812561 0.804840\n0.646454 0.814331 0.804840\n0.685333 0.816101 0.804840\n0.721558 0.817902 0.804840\n0.754913 0.819580 0.804840\n0.785278 0.821320 0.804840\n0.812775 0.822998 0.804840\n0.837646 0.824615 0.804840\n0.860229 0.826294 0.804840\n0.880737 0.827881 0.804840\n0.899384 0.829498 0.804840\n0.916382 0.831055 0.804840\n0.931763 0.832550 0.804840\n0.945801 0.834106 0.804840\n0.958466 0.835602 0.804840\n0.969879 0.837067 0.804840\n0.980042 0.838470 0.804840\n0.989075 0.839935 0.804840\n0.104370 0.815063 0.810242\n0.129883 0.816895 0.809692\n0.156647 0.818695 0.809113\n0.184967 0.820496 0.808533\n0.214905 0.822266 0.808014\n0.246735 0.824036 0.807465\n0.280609 0.825836 0.806946\n0.316620 0.827545 0.806396\n0.354858 0.829285 0.805908\n0.394806 0.831024 0.805420\n0.436432 0.832672 0.804962\n0.479431 0.834351 0.804840\n0.523376 0.835968 0.804840\n0.567596 0.837616 0.804840\n0.610413 0.839264 0.804840\n0.651215 0.840820 0.804840\n0.689789 0.842438 0.804840\n0.725677 0.843964 0.804840\n0.758636 0.845490 0.804840\n0.788666 0.847046 0.804840\n0.815796 0.848541 0.804840\n0.840363 0.850006 0.804840\n0.862640 0.851471 0.804840\n0.882965 0.852905 0.804840\n0.901367 0.854279 0.804840\n0.918152 0.855652 0.804840\n0.933350 0.857025 0.804840\n0.947235 0.858368 0.804840\n0.959747 0.859711 0.804840\n0.970978 0.860992 0.804840\n0.981049 0.862244 0.804840\n0.989929 0.863495 0.804840\n0.107513 0.841644 0.809113\n0.133148 0.843231 0.808563\n0.160156 0.844849 0.808014\n0.188629 0.846497 0.807465\n0.218781 0.848083 0.806976\n0.250885 0.849701 0.806427\n0.285065 0.851257 0.805939\n0.321289 0.852814 0.805420\n0.359650 0.854370 0.804962\n0.399902 0.855896 0.804840\n0.441650 0.857422 0.804840\n0.484772 0.858887 0.804840\n0.528778 0.860382 0.804840\n0.572845 0.861847 0.804840\n0.615417 0.863281 0.804840\n0.655914 0.864685 0.804840\n0.694183 0.866089 0.804840\n0.729706 0.867523 0.804840\n0.762268 0.868835 0.804840\n0.791901 0.870209 0.804840\n0.818726 0.871552 0.804840\n0.842957 0.872833 0.804840\n0.865021 0.874146 0.804840\n0.885040 0.875397 0.804840\n0.903259 0.876617 0.804840\n0.919830 0.877869 0.804840\n0.934875 0.879059 0.804840\n0.948578 0.880249 0.804840\n0.960938 0.881409 0.804840\n0.972076 0.882538 0.804840\n0.981995 0.883667 0.804840\n0.990753 0.884766 0.804840\n0.110687 0.865540 0.808044\n0.136475 0.866974 0.807495\n0.163666 0.868439 0.806976\n0.192352 0.869934 0.806427\n0.222687 0.871338 0.805969\n0.254944 0.872803 0.805420\n0.289398 0.874237 0.804962\n0.325928 0.875549 0.804840\n0.364502 0.876984 0.804840\n0.404877 0.878357 0.804840\n0.446777 0.879669 0.804840\n0.489990 0.881042 0.804840\n0.534180 0.882324 0.804840\n0.578064 0.883636 0.804840\n0.620300 0.884949 0.804840\n0.660553 0.886200 0.804840\n0.698425 0.887482 0.804840\n0.733643 0.888702 0.804840\n0.765839 0.889923 0.804840\n0.795074 0.891083 0.804840\n0.821564 0.892303 0.804840\n0.845490 0.893463 0.804840\n0.867279 0.894592 0.804840\n0.887085 0.895721 0.804840\n0.905090 0.896790 0.804840\n0.921509 0.897888 0.804840\n0.936371 0.898926 0.804840\n0.949890 0.899994 0.804840\n0.962128 0.901031 0.804840\n0.973083 0.902008 0.804840\n0.982880 0.902985 0.804840\n0.991516 0.903931 0.804840\n0.113861 0.887085 0.806976\n0.139801 0.888397 0.806458\n0.167145 0.889709 0.805969\n0.196014 0.891052 0.805450\n0.226593 0.892334 0.804962\n0.259094 0.893616 0.804840\n0.293793 0.894897 0.804840\n0.330505 0.896149 0.804840\n0.369354 0.897369 0.804840\n0.409821 0.898590 0.804840\n0.451935 0.899780 0.804840\n0.495239 0.901001 0.804840\n0.539368 0.902161 0.804840\n0.583038 0.903320 0.804840\n0.625092 0.904510 0.804840\n0.665009 0.905579 0.804840\n0.702545 0.906738 0.804840\n0.737366 0.907837 0.804840\n0.769226 0.908875 0.804840\n0.798096 0.909973 0.804840\n0.824188 0.911011 0.804840\n0.847931 0.912018 0.804840\n0.869476 0.913025 0.804840\n0.889069 0.914001 0.804840\n0.906860 0.915009 0.804840\n0.923065 0.915985 0.804840\n0.937805 0.916901 0.804840\n0.951141 0.917786 0.804840\n0.963196 0.918701 0.804840\n0.974060 0.919556 0.804840\n0.983734 0.920441 0.804840\n0.992218 0.921265 0.804840\n0.117035 0.906586 0.806000\n0.143127 0.907745 0.805481\n0.170624 0.908936 0.804962\n0.199707 0.910126 0.804840\n0.230469 0.911285 0.804840\n0.263214 0.912415 0.804840\n0.298126 0.913544 0.804840\n0.335114 0.914673 0.804840\n0.374054 0.915802 0.804840\n0.414764 0.916870 0.804840\n0.456970 0.917938 0.804840\n0.500397 0.919006 0.804840\n0.544495 0.920044 0.804840\n0.587982 0.921082 0.804840\n0.629761 0.922119 0.804840\n0.669312 0.923126 0.804840\n0.706604 0.924103 0.804840\n0.741058 0.925079 0.804840\n0.772522 0.925995 0.804840\n0.801056 0.926971 0.804840\n0.826843 0.927887 0.804840\n0.850311 0.928772 0.804840\n0.871582 0.929718 0.804840\n0.890900 0.930542 0.804840\n0.908539 0.931427 0.804840\n0.924561 0.932251 0.804840\n0.939117 0.933044 0.804840\n0.952332 0.933868 0.804840\n0.964294 0.934662 0.804840\n0.974976 0.935425 0.804840\n0.984528 0.936157 0.804840\n0.992889 0.936859 0.804840\n0.120178 0.924133 0.804993\n0.146423 0.925201 0.804840\n0.174103 0.926270 0.804840\n0.203339 0.927338 0.804840\n0.234314 0.928314 0.804840\n0.267334 0.929413 0.804840\n0.302429 0.930359 0.804840\n0.339661 0.931366 0.804840\n0.378815 0.932373 0.804840\n0.419647 0.933319 0.804840\n0.461945 0.934296 0.804840\n0.505402 0.935272 0.804840\n0.549500 0.936157 0.804840\n0.592804 0.937103 0.804840\n0.634277 0.938019 0.804840\n0.673584 0.938904 0.804840\n0.710510 0.939758 0.804840\n0.744568 0.940643 0.804840\n0.775665 0.941437 0.804840\n0.803864 0.942261 0.804840\n0.829346 0.943115 0.804840\n0.852570 0.943909 0.804840\n0.873566 0.944702 0.804840\n0.892731 0.945435 0.804840\n0.910156 0.946198 0.804840\n0.925995 0.946930 0.804840\n0.940399 0.947632 0.804840\n0.953491 0.948334 0.804840\n0.965271 0.949005 0.804840\n0.975861 0.949677 0.804840\n0.985260 0.950317 0.804840\n0.993561 0.950958 0.804840\n0.123383 0.940002 0.804840\n0.149750 0.940948 0.804840\n0.177551 0.941895 0.804840\n0.207001 0.942810 0.804840\n0.238159 0.943726 0.804840\n0.271393 0.944672 0.804840\n0.306702 0.945557 0.804840\n0.344147 0.946442 0.804840\n0.383484 0.947327 0.804840\n0.424438 0.948181 0.804840\n0.466858 0.949036 0.804840\n0.510376 0.949890 0.804840\n0.554443 0.950684 0.804840\n0.597412 0.951508 0.804840\n0.638702 0.952271 0.804840\n0.677704 0.953094 0.804840\n0.714233 0.953827 0.804840\n0.747925 0.954559 0.804840\n0.778717 0.955322 0.804840\n0.806549 0.956055 0.804840\n0.831787 0.956726 0.804840\n0.854706 0.957428 0.804840\n0.875519 0.958130 0.804840\n0.894440 0.958801 0.804840\n0.911652 0.959442 0.804840\n0.927368 0.960114 0.804840\n0.941620 0.960693 0.804840\n0.954529 0.961304 0.804840\n0.966187 0.961884 0.804840\n0.976654 0.962463 0.804840\n0.985962 0.963043 0.804840\n0.994141 0.963562 0.804840\n0.126465 0.954224 0.804840\n0.153015 0.955078 0.804840\n0.181030 0.955902 0.804840\n0.210571 0.956726 0.804840\n0.242004 0.957550 0.804840\n0.275391 0.958374 0.804840\n0.310944 0.959137 0.804840\n0.348572 0.959930 0.804840\n0.388062 0.960693 0.804840\n0.429169 0.961456 0.804840\n0.471680 0.962250 0.804840\n0.515259 0.962952 0.804840\n0.559174 0.963654 0.804840\n0.601959 0.964355 0.804840\n0.642883 0.965057 0.804840\n0.681671 0.965759 0.804840\n0.717834 0.966431 0.804840\n0.751190 0.967102 0.804840\n0.781616 0.967712 0.804840\n0.809143 0.968353 0.804840\n0.834076 0.968994 0.804840\n0.856720 0.969543 0.804840\n0.877350 0.970154 0.804840\n0.896057 0.970734 0.804840\n0.913116 0.971283 0.804840\n0.928650 0.971832 0.804840\n0.942749 0.972321 0.804840\n0.955536 0.972900 0.804840\n0.967102 0.973389 0.804840\n0.977448 0.973877 0.804840\n0.986633 0.974335 0.804840\n0.994720 0.974823 0.804840\n0.129608 0.966949 0.804840\n0.156281 0.967712 0.804840\n0.184418 0.968445 0.804840\n0.214172 0.969147 0.804840\n0.245728 0.969879 0.804840\n0.279388 0.970612 0.804840\n0.315125 0.971283 0.804840\n0.352936 0.971985 0.804840\n0.392548 0.972656 0.804840\n0.433777 0.973297 0.804840\n0.476349 0.973969 0.804840\n0.519958 0.974579 0.804840\n0.563782 0.975220 0.804840\n0.606384 0.975830 0.804840\n0.647034 0.976440 0.804840\n0.685394 0.977020 0.804840\n0.721283 0.977600 0.804840\n0.754303 0.978149 0.804840\n0.784393 0.978760 0.804840\n0.811615 0.979279 0.804840\n0.836273 0.979797 0.804840\n0.858704 0.980316 0.804840\n0.879089 0.980835 0.804840\n0.897614 0.981293 0.804840\n0.914520 0.981781 0.804840\n0.929840 0.982239 0.804840\n0.943848 0.982666 0.804840\n0.956512 0.983124 0.804840\n0.967896 0.983521 0.804840\n0.978149 0.983917 0.804840\n0.987213 0.984344 0.804840\n0.995239 0.984711 0.804840\n0.045349 0.006683 0.856476\n0.067505 0.007568 0.856171\n0.090637 0.008484 0.855804\n0.114807 0.009399 0.855469\n0.140289 0.010345 0.855133\n0.167023 0.011322 0.854797\n0.195374 0.012329 0.854401\n0.225372 0.013397 0.853973\n0.257233 0.014435 0.853577\n0.291260 0.015533 0.853180\n0.327454 0.016632 0.852722\n0.365540 0.017731 0.852264\n0.405487 0.018890 0.851807\n0.447083 0.020081 0.851349\n0.489807 0.021240 0.850891\n0.533661 0.022491 0.850403\n0.577332 0.023712 0.849915\n0.619385 0.024963 0.849426\n0.659515 0.026245 0.848907\n0.697296 0.027496 0.848389\n0.732513 0.028809 0.847870\n0.764832 0.030151 0.847321\n0.794189 0.031494 0.846802\n0.820801 0.032898 0.846252\n0.844971 0.034271 0.845673\n0.866852 0.035645 0.845154\n0.886841 0.037079 0.844574\n0.905029 0.038544 0.843994\n0.921539 0.039978 0.843475\n0.936584 0.041412 0.842865\n0.950226 0.042908 0.842316\n0.962524 0.044403 0.841736\n0.047119 0.028198 0.855835\n0.069336 0.029175 0.855499\n0.092621 0.030182 0.855133\n0.116974 0.031189 0.854797\n0.142578 0.032257 0.854401\n0.169525 0.033295 0.854004\n0.198059 0.034424 0.853607\n0.228302 0.035522 0.853180\n0.260437 0.036652 0.852753\n0.294739 0.037811 0.852295\n0.331146 0.039032 0.851837\n0.369537 0.040253 0.851349\n0.409729 0.041473 0.850891\n0.451447 0.042755 0.850403\n0.494415 0.044006 0.849915\n0.538361 0.045319 0.849426\n0.581879 0.046661 0.848938\n0.623901 0.048004 0.848389\n0.663818 0.049347 0.847870\n0.701416 0.050720 0.847351\n0.736359 0.052124 0.846802\n0.768372 0.053558 0.846283\n0.797394 0.054993 0.845703\n0.823761 0.056488 0.845154\n0.847656 0.057953 0.844604\n0.869354 0.059448 0.844025\n0.889099 0.060913 0.843475\n0.907074 0.062408 0.842896\n0.923431 0.063965 0.842316\n0.938324 0.065552 0.841736\n0.951782 0.067108 0.841187\n0.963989 0.068665 0.840607\n0.048920 0.050751 0.855164\n0.071320 0.051819 0.854797\n0.094696 0.052887 0.854401\n0.119263 0.054016 0.854004\n0.145020 0.055176 0.853607\n0.172150 0.056305 0.853180\n0.200897 0.057526 0.852753\n0.231354 0.058746 0.852295\n0.263733 0.059967 0.851868\n0.298279 0.061218 0.851379\n0.335022 0.062531 0.850891\n0.373627 0.063812 0.850433\n0.414032 0.065155 0.849945\n0.455933 0.066467 0.849457\n0.499115 0.067902 0.848938\n0.543182 0.069305 0.848419\n0.586670 0.070679 0.847870\n0.628479 0.072144 0.847382\n0.668274 0.073639 0.846832\n0.705566 0.075073 0.846283\n0.740204 0.076569 0.845703\n0.771942 0.078094 0.845184\n0.800659 0.079620 0.844635\n0.826721 0.081207 0.844055\n0.850372 0.082764 0.843506\n0.871857 0.084320 0.842926\n0.891388 0.085938 0.842346\n0.909180 0.087524 0.841766\n0.925354 0.089172 0.841187\n0.940063 0.090851 0.840607\n0.953369 0.092468 0.840057\n0.965424 0.094147 0.839478\n0.050842 0.074432 0.854431\n0.073364 0.075562 0.854034\n0.096893 0.076752 0.853607\n0.121613 0.077972 0.853210\n0.147552 0.079224 0.852783\n0.174896 0.080444 0.852325\n0.203857 0.081757 0.851868\n0.234528 0.083099 0.851410\n0.267151 0.084412 0.850922\n0.302063 0.085785 0.850464\n0.338989 0.087189 0.849945\n0.377869 0.088562 0.849487\n0.418579 0.090027 0.848969\n0.460602 0.091431 0.848450\n0.503998 0.092926 0.847900\n0.548187 0.094452 0.847382\n0.591492 0.095978 0.846863\n0.633179 0.097504 0.846283\n0.672729 0.099121 0.845734\n0.709778 0.100677 0.845215\n0.744080 0.102264 0.844635\n0.775513 0.103912 0.844055\n0.803925 0.105530 0.843506\n0.829712 0.107178 0.842926\n0.853058 0.108826 0.842377\n0.874329 0.110565 0.841797\n0.893646 0.112244 0.841217\n0.911224 0.113953 0.840668\n0.927246 0.115692 0.840088\n0.941803 0.117462 0.839508\n0.954956 0.119202 0.838959\n0.966797 0.120972 0.838348\n0.052887 0.099304 0.853607\n0.075500 0.100555 0.853210\n0.099243 0.101776 0.852783\n0.124084 0.103119 0.852356\n0.150208 0.104523 0.851898\n0.177704 0.105835 0.851410\n0.206909 0.107269 0.850952\n0.237823 0.108704 0.850464\n0.270782 0.110138 0.849976\n0.305878 0.111603 0.849487\n0.343109 0.113098 0.848999\n0.382233 0.114624 0.848450\n0.423126 0.116211 0.847931\n0.465485 0.117737 0.847412\n0.509033 0.119385 0.846863\n0.553223 0.120972 0.846313\n0.596436 0.122589 0.845764\n0.637909 0.124268 0.845215\n0.677185 0.125946 0.844635\n0.713989 0.127625 0.844086\n0.748016 0.129364 0.843536\n0.779053 0.131073 0.842957\n0.807159 0.132812 0.842377\n0.832672 0.134583 0.841797\n0.855774 0.136353 0.841248\n0.876801 0.138153 0.840668\n0.895905 0.139984 0.840088\n0.913300 0.141785 0.839539\n0.929138 0.143677 0.838959\n0.943512 0.145538 0.838379\n0.956512 0.147369 0.837830\n0.968231 0.149261 0.837250\n0.054993 0.125488 0.852814\n0.077789 0.126862 0.852356\n0.101624 0.128265 0.851898\n0.126678 0.129700 0.851440\n0.152954 0.131195 0.850952\n0.180695 0.132629 0.850494\n0.210083 0.134186 0.850006\n0.241302 0.135742 0.849518\n0.274445 0.137299 0.848999\n0.309875 0.138916 0.848480\n0.347351 0.140503 0.847961\n0.386749 0.142181 0.847443\n0.427856 0.143829 0.846893\n0.470367 0.145477 0.846344\n0.514069 0.147217 0.845764\n0.558380 0.148987 0.845215\n0.601379 0.150726 0.844666\n0.642670 0.152496 0.844116\n0.681793 0.154327 0.843536\n0.718262 0.156128 0.842987\n0.751953 0.157928 0.842407\n0.782623 0.159760 0.841858\n0.810425 0.161682 0.841248\n0.835632 0.163605 0.840698\n0.858490 0.165466 0.840118\n0.879272 0.167419 0.839569\n0.898163 0.169342 0.838989\n0.915375 0.171295 0.838409\n0.931030 0.173279 0.837830\n0.945190 0.175293 0.837250\n0.958038 0.177246 0.836731\n0.969604 0.179260 0.836151\n0.057190 0.153198 0.851929\n0.080170 0.154724 0.851440\n0.104126 0.156219 0.850983\n0.129333 0.157776 0.850525\n0.155823 0.159393 0.850006\n0.183777 0.160980 0.849518\n0.213379 0.162659 0.849030\n0.244812 0.164368 0.848480\n0.278320 0.166046 0.847961\n0.314026 0.167786 0.847443\n0.351715 0.169495 0.846893\n0.391418 0.171295 0.846375\n0.432739 0.173096 0.845795\n0.475464 0.174896 0.845245\n0.519257 0.176758 0.844666\n0.563538 0.178650 0.844147\n0.606445 0.180542 0.843567\n0.647522 0.182465 0.842987\n0.686340 0.184418 0.842438\n0.722504 0.186310 0.841858\n0.755859 0.188354 0.841278\n0.786224 0.190277 0.840698\n0.813660 0.192352 0.840149\n0.838593 0.194366 0.839569\n0.861206 0.196350 0.838989\n0.881744 0.198456 0.838409\n0.900421 0.200531 0.837860\n0.917450 0.202637 0.837280\n0.932892 0.204742 0.836731\n0.946899 0.206909 0.836151\n0.959564 0.208984 0.835632\n0.970978 0.211151 0.835083\n0.059509 0.182587 0.850983\n0.082611 0.184235 0.850525\n0.106750 0.185913 0.850037\n0.132080 0.187622 0.849518\n0.158783 0.189362 0.849030\n0.186920 0.191101 0.848480\n0.216736 0.192932 0.847992\n0.248474 0.194733 0.847473\n0.282227 0.196594 0.846893\n0.318237 0.198456 0.846375\n0.356232 0.200348 0.845825\n0.396118 0.202301 0.845276\n0.437744 0.204254 0.844696\n0.480621 0.206177 0.844177\n0.524628 0.208191 0.843597\n0.568787 0.210266 0.843018\n0.611542 0.212250 0.842468\n0.652374 0.214355 0.841888\n0.690857 0.216400 0.841309\n0.726776 0.218506 0.840698\n0.759827 0.220673 0.840149\n0.789764 0.222778 0.839569\n0.816925 0.224915 0.839020\n0.841583 0.227173 0.838409\n0.863892 0.229340 0.837891\n0.884216 0.231567 0.837311\n0.902679 0.233795 0.836761\n0.919434 0.236023 0.836182\n0.934723 0.238312 0.835632\n0.948547 0.240540 0.835083\n0.961090 0.242828 0.834564\n0.972321 0.245117 0.833984\n0.061920 0.213867 0.850067\n0.085114 0.215698 0.849548\n0.109436 0.217529 0.849060\n0.134949 0.219391 0.848511\n0.161835 0.221313 0.847992\n0.190186 0.223175 0.847473\n0.220276 0.225159 0.846924\n0.252228 0.227142 0.846405\n0.286285 0.229156 0.845825\n0.322540 0.231201 0.845276\n0.360840 0.233246 0.844727\n0.401031 0.235352 0.844177\n0.442810 0.237457 0.843597\n0.485870 0.239563 0.843048\n0.529968 0.241791 0.842468\n0.574097 0.243958 0.841888\n0.616669 0.246124 0.841339\n0.657288 0.248383 0.840729\n0.695435 0.250610 0.840179\n0.731018 0.252930 0.839600\n0.763733 0.255219 0.839020\n0.793304 0.257477 0.838440\n0.820160 0.259857 0.837891\n0.844513 0.262207 0.837311\n0.866547 0.264526 0.836792\n0.886658 0.266907 0.836212\n0.904907 0.269348 0.835632\n0.921448 0.271759 0.835114\n0.936584 0.274170 0.834595\n0.950226 0.276581 0.834015\n0.962585 0.279083 0.833496\n0.973694 0.281555 0.833008\n0.064392 0.247345 0.849060\n0.087769 0.249359 0.848511\n0.112213 0.251282 0.848022\n0.137878 0.253357 0.847473\n0.164948 0.255432 0.846954\n0.193542 0.257507 0.846436\n0.223846 0.259644 0.845825\n0.256042 0.261780 0.845306\n0.290436 0.263977 0.844727\n0.327026 0.266266 0.844177\n0.365540 0.268433 0.843597\n0.405914 0.270752 0.843048\n0.447937 0.273071 0.842499\n0.491180 0.275330 0.841888\n0.535492 0.277679 0.841339\n0.579346 0.280060 0.840759\n0.621765 0.282471 0.840210\n0.662140 0.284882 0.839600\n0.700043 0.287292 0.839050\n0.735321 0.289764 0.838440\n0.767578 0.292236 0.837921\n0.796814 0.294708 0.837311\n0.823334 0.297241 0.836792\n0.847412 0.299774 0.836212\n0.869171 0.302277 0.835663\n0.889069 0.304840 0.835144\n0.907043 0.307404 0.834595\n0.923431 0.309998 0.834045\n0.938354 0.312622 0.833496\n0.951874 0.315186 0.833038\n0.964081 0.317810 0.832489\n0.975006 0.320465 0.831970\n0.066895 0.283203 0.848053\n0.090424 0.285400 0.847504\n0.115021 0.287537 0.846954\n0.140930 0.289795 0.846436\n0.168152 0.291992 0.845886\n0.197021 0.294342 0.845337\n0.227509 0.296661 0.844757\n0.259979 0.298950 0.844208\n0.294708 0.301361 0.843628\n0.331512 0.303772 0.843079\n0.370300 0.306244 0.842529\n0.410950 0.308716 0.841919\n0.453186 0.311218 0.841370\n0.496552 0.313629 0.840759\n0.540955 0.316254 0.840210\n0.584747 0.318665 0.839661\n0.626923 0.321289 0.839081\n0.667023 0.323944 0.838470\n0.704620 0.326477 0.837952\n0.739532 0.329163 0.837341\n0.771423 0.331818 0.836823\n0.800293 0.334442 0.836243\n0.826538 0.337158 0.835663\n0.850281 0.339844 0.835144\n0.871796 0.342499 0.834595\n0.891418 0.345245 0.834076\n0.909241 0.347900 0.833527\n0.925446 0.350708 0.833038\n0.940155 0.353485 0.832489\n0.953491 0.356140 0.832001\n0.965515 0.358948 0.831512\n0.976288 0.361725 0.831024\n0.069519 0.321625 0.846985\n0.093170 0.323883 0.846436\n0.117950 0.326324 0.845917\n0.144043 0.328735 0.845337\n0.171448 0.331146 0.844788\n0.200500 0.333679 0.844208\n0.231323 0.336243 0.843658\n0.264099 0.338715 0.843109\n0.299072 0.341217 0.842529\n0.336151 0.343842 0.841919\n0.375183 0.346436 0.841400\n0.416107 0.349091 0.840790\n0.458466 0.351715 0.840240\n0.502045 0.354370 0.839661\n0.546478 0.357147 0.839081\n0.590118 0.359802 0.838531\n0.632080 0.362579 0.837952\n0.671936 0.365356 0.837341\n0.709167 0.368042 0.836853\n0.743713 0.370850 0.836273\n0.775238 0.373657 0.835693\n0.803802 0.376465 0.835175\n0.829681 0.379333 0.834625\n0.853149 0.382172 0.834076\n0.874390 0.384979 0.833557\n0.893738 0.387848 0.833038\n0.911346 0.390686 0.832520\n0.927368 0.393585 0.832001\n0.941925 0.396484 0.831512\n0.955078 0.399292 0.831055\n0.966919 0.402191 0.830566\n0.977539 0.405121 0.830109\n0.072205 0.362396 0.845917\n0.096008 0.364868 0.845367\n0.120972 0.367462 0.844788\n0.147186 0.370056 0.844238\n0.174835 0.372650 0.843689\n0.204102 0.375305 0.843140\n0.235168 0.378021 0.842529\n0.268188 0.380676 0.841949\n0.303467 0.383423 0.841431\n0.340881 0.386200 0.840820\n0.380157 0.388916 0.840240\n0.421265 0.391724 0.839661\n0.463837 0.394501 0.839111\n0.507568 0.397339 0.838562\n0.552063 0.400269 0.837952\n0.595459 0.403015 0.837372\n0.637207 0.405914 0.836853\n0.676758 0.408875 0.836273\n0.713684 0.411682 0.835724\n0.747894 0.414673 0.835205\n0.779022 0.417664 0.834656\n0.807190 0.420502 0.834106\n0.832733 0.423523 0.833557\n0.855896 0.426422 0.833069\n0.876953 0.429382 0.832520\n0.896088 0.432373 0.832062\n0.913422 0.435333 0.831543\n0.929260 0.438324 0.831055\n0.943634 0.441376 0.830597\n0.956604 0.444244 0.830139\n0.968323 0.447266 0.829681\n0.978790 0.450317 0.829224\n0.074951 0.405334 0.844788\n0.098877 0.407990 0.844269\n0.124054 0.410736 0.843689\n0.150452 0.413483 0.843140\n0.178314 0.416168 0.842560\n0.207825 0.419098 0.841980\n0.239166 0.421906 0.841431\n0.272430 0.424744 0.840851\n0.307983 0.427612 0.840271\n0.345612 0.430450 0.839691\n0.385223 0.433380 0.839142\n0.426514 0.436340 0.838562\n0.469238 0.439270 0.837982\n0.513153 0.442230 0.837402\n0.557617 0.445221 0.836884\n0.600830 0.448181 0.836273\n0.642334 0.451202 0.835754\n0.681580 0.454224 0.835205\n0.718201 0.457214 0.834656\n0.752014 0.460266 0.834106\n0.782776 0.463379 0.833588\n0.810577 0.466370 0.833099\n0.835815 0.469391 0.832550\n0.858673 0.472382 0.832062\n0.879486 0.475464 0.831543\n0.898346 0.478546 0.831085\n0.915527 0.481598 0.830597\n0.931122 0.484650 0.830170\n0.945312 0.487762 0.829681\n0.958130 0.490753 0.829224\n0.969666 0.493835 0.829010\n0.979980 0.496826 0.829010\n0.077728 0.450165 0.843719\n0.101837 0.452911 0.843140\n0.127167 0.455811 0.842560\n0.153748 0.458710 0.841980\n0.181824 0.461578 0.841461\n0.211548 0.464569 0.840851\n0.243164 0.467560 0.840271\n0.276764 0.470490 0.839691\n0.312592 0.473480 0.839142\n0.350464 0.476440 0.838562\n0.390320 0.479462 0.838013\n0.431824 0.482544 0.837402\n0.474731 0.485565 0.836914\n0.518799 0.488678 0.836304\n0.563202 0.491760 0.835754\n0.606201 0.494781 0.835236\n0.647430 0.497894 0.834686\n0.686371 0.501007 0.834137\n0.722595 0.504089 0.833588\n0.756042 0.507202 0.833099\n0.786377 0.510345 0.832581\n0.813934 0.513458 0.832062\n0.838806 0.516602 0.831573\n0.861389 0.519653 0.831085\n0.881927 0.522797 0.830597\n0.900604 0.525940 0.830170\n0.917542 0.528992 0.829712\n0.932983 0.532104 0.829254\n0.946960 0.535217 0.829010\n0.959625 0.538269 0.829010\n0.971008 0.541290 0.829010\n0.981140 0.544342 0.829010\n0.080627 0.496490 0.842590\n0.104889 0.499390 0.842041\n0.130341 0.502441 0.841492\n0.157135 0.505432 0.840851\n0.185394 0.508392 0.840302\n0.215363 0.511444 0.839722\n0.247131 0.514465 0.839203\n0.281067 0.517517 0.838593\n0.317230 0.520721 0.838013\n0.355377 0.523743 0.837494\n0.395477 0.526855 0.836914\n0.437195 0.529968 0.836304\n0.480225 0.533112 0.835785\n0.524384 0.536255 0.835236\n0.568726 0.539398 0.834686\n0.611542 0.542480 0.834167\n0.652557 0.545654 0.833588\n0.691132 0.548798 0.833130\n0.727020 0.551880 0.832581\n0.760040 0.554993 0.832092\n0.790009 0.558014 0.831604\n0.817200 0.561127 0.831116\n0.841766 0.564209 0.830597\n0.864075 0.567200 0.830170\n0.884338 0.570251 0.829712\n0.902802 0.573334 0.829254\n0.919525 0.576324 0.829010\n0.934784 0.579285 0.829010\n0.948578 0.582306 0.829010\n0.961090 0.585205 0.829010\n0.972290 0.588196 0.829010\n0.982300 0.591003 0.829010\n0.083527 0.543945 0.841492\n0.107941 0.546997 0.840881\n0.133606 0.549957 0.840332\n0.160614 0.553009 0.839722\n0.189056 0.556030 0.839203\n0.219238 0.559082 0.838593\n0.251312 0.562195 0.838043\n0.285492 0.565186 0.837494\n0.321930 0.568268 0.836914\n0.360352 0.571259 0.836334\n0.400635 0.574310 0.835815\n0.442535 0.577393 0.835236\n0.485809 0.580414 0.834717\n0.530029 0.583466 0.834167\n0.574219 0.586517 0.833618\n0.616821 0.589478 0.833130\n0.657562 0.592529 0.832611\n0.695801 0.595551 0.832092\n0.731354 0.598541 0.831604\n0.763977 0.601501 0.831116\n0.793579 0.604431 0.830627\n0.820374 0.607391 0.830170\n0.844666 0.610382 0.829742\n0.866699 0.613251 0.829285\n0.886719 0.616119 0.829010\n0.904938 0.619049 0.829010\n0.921478 0.621887 0.829010\n0.936523 0.624695 0.829010\n0.950165 0.627533 0.829010\n0.962463 0.630249 0.829010\n0.973541 0.632996 0.829010\n0.983368 0.635712 0.829010\n0.086487 0.590698 0.840363\n0.111023 0.593597 0.839752\n0.136871 0.596588 0.839203\n0.164062 0.599518 0.838623\n0.192749 0.602386 0.838074\n0.223175 0.605408 0.837524\n0.255493 0.608246 0.836945\n0.290009 0.611267 0.836395\n0.326721 0.614227 0.835815\n0.365295 0.617096 0.835266\n0.405853 0.620026 0.834747\n0.447968 0.622986 0.834167\n0.491333 0.625854 0.833649\n0.535706 0.628754 0.833130\n0.579712 0.631653 0.832611\n0.622101 0.634521 0.832123\n0.662537 0.637390 0.831635\n0.700439 0.640259 0.831146\n0.735596 0.643036 0.830658\n0.767822 0.645874 0.830200\n0.797089 0.648651 0.829742\n0.823517 0.651398 0.829285\n0.847534 0.654175 0.829010\n0.869232 0.656891 0.829010\n0.889069 0.659576 0.829010\n0.907043 0.662354 0.829010\n0.923340 0.664917 0.829010\n0.938232 0.667603 0.829010\n0.951691 0.670197 0.829010\n0.963837 0.672791 0.829010\n0.974762 0.675323 0.829010\n0.984436 0.677795 0.829010\n0.089508 0.635529 0.839203\n0.114227 0.638306 0.838654\n0.140167 0.641113 0.838074\n0.167603 0.643951 0.837524\n0.196472 0.646698 0.836945\n0.227173 0.649536 0.836426\n0.259705 0.652313 0.835846\n0.294495 0.655121 0.835297\n0.331451 0.657928 0.834778\n0.370331 0.660645 0.834198\n0.411102 0.663422 0.833649\n0.453430 0.666199 0.833160\n0.496857 0.668854 0.832642\n0.541290 0.671661 0.832123\n0.585175 0.674377 0.831635\n0.627289 0.676971 0.831177\n0.667389 0.679688 0.830658\n0.704926 0.682312 0.830231\n0.739807 0.684998 0.829742\n0.771637 0.687592 0.829315\n0.800446 0.690125 0.829010\n0.826599 0.692749 0.829010\n0.850281 0.695282 0.829010\n0.871735 0.697815 0.829010\n0.891296 0.700317 0.829010\n0.909088 0.702759 0.829010\n0.925232 0.705139 0.829010\n0.939911 0.707611 0.829010\n0.953186 0.709961 0.829010\n0.965179 0.712372 0.829010\n0.975952 0.714691 0.829010\n0.985474 0.716919 0.829010\n0.092499 0.677917 0.838104\n0.117371 0.680450 0.837524\n0.143555 0.683167 0.836975\n0.171112 0.685730 0.836456\n0.200256 0.688416 0.835846\n0.231171 0.691040 0.835297\n0.263977 0.693634 0.834778\n0.299072 0.696259 0.834198\n0.336304 0.698883 0.833679\n0.375427 0.701416 0.833191\n0.416382 0.704010 0.832672\n0.458832 0.706573 0.832153\n0.502472 0.709076 0.831635\n0.546906 0.711609 0.831177\n0.590485 0.714050 0.830688\n0.632416 0.716553 0.830231\n0.672211 0.719025 0.829742\n0.709381 0.721436 0.829315\n0.743866 0.723846 0.829010\n0.775360 0.726257 0.829010\n0.803802 0.728607 0.829010\n0.829620 0.730927 0.829010\n0.852997 0.733307 0.829010\n0.874237 0.735565 0.829010\n0.893524 0.737823 0.829010\n0.911072 0.740082 0.829010\n0.927032 0.742249 0.829010\n0.941498 0.744446 0.829010\n0.954620 0.746552 0.829010\n0.966492 0.748657 0.829010\n0.977081 0.750793 0.829010\n0.986481 0.752808 0.829010\n0.095612 0.717346 0.837006\n0.120605 0.719788 0.836456\n0.146973 0.722260 0.835846\n0.174683 0.724609 0.835327\n0.204071 0.727112 0.834808\n0.235199 0.729553 0.834229\n0.268280 0.731873 0.833710\n0.303650 0.734344 0.833191\n0.341125 0.736755 0.832672\n0.380493 0.739014 0.832184\n0.421631 0.741394 0.831635\n0.464264 0.743744 0.831177\n0.507965 0.746002 0.830750\n0.552460 0.748291 0.830231\n0.595795 0.750519 0.829773\n0.637482 0.752838 0.829315\n0.676941 0.755066 0.829010\n0.713806 0.757202 0.829010\n0.747894 0.759430 0.829010\n0.778961 0.761566 0.829010\n0.807068 0.763702 0.829010\n0.832520 0.765808 0.829010\n0.855652 0.767853 0.829010\n0.876587 0.769867 0.829010\n0.895691 0.771912 0.829010\n0.912964 0.773895 0.829010\n0.928772 0.775848 0.829010\n0.943085 0.777802 0.829010\n0.956024 0.779663 0.829010\n0.967712 0.781586 0.829010\n0.978180 0.783417 0.829010\n0.987457 0.785217 0.829010\n0.098663 0.753510 0.835876\n0.123901 0.755798 0.835358\n0.150391 0.758026 0.834808\n0.178314 0.760223 0.834259\n0.207886 0.762451 0.833710\n0.239288 0.764679 0.833221\n0.272675 0.766815 0.832703\n0.308258 0.768982 0.832184\n0.346008 0.771149 0.831665\n0.385590 0.773224 0.831207\n0.426941 0.775360 0.830750\n0.469604 0.777374 0.830261\n0.513519 0.779510 0.829773\n0.557892 0.781586 0.829315\n0.601044 0.783569 0.829010\n0.642456 0.785583 0.829010\n0.681671 0.787567 0.829010\n0.718140 0.789490 0.829010\n0.751831 0.791443 0.829010\n0.782501 0.793427 0.829010\n0.810242 0.795258 0.829010\n0.835388 0.797119 0.829010\n0.858215 0.798950 0.829010\n0.878906 0.800751 0.829010\n0.897766 0.802551 0.829010\n0.914886 0.804291 0.829010\n0.930450 0.806061 0.829010\n0.944580 0.807770 0.829010\n0.957367 0.809418 0.829010\n0.968933 0.811096 0.829010\n0.979279 0.812714 0.829010\n0.988373 0.814270 0.829010\n0.101746 0.786285 0.834839\n0.127167 0.788330 0.834259\n0.153870 0.790344 0.833740\n0.181976 0.792297 0.833252\n0.211761 0.794312 0.832703\n0.243408 0.796265 0.832214\n0.277039 0.798248 0.831696\n0.312897 0.800171 0.831207\n0.350861 0.802124 0.830750\n0.390625 0.803986 0.830292\n0.432190 0.805878 0.829803\n0.475006 0.807709 0.829346\n0.518982 0.809570 0.829010\n0.563293 0.811401 0.829010\n0.606232 0.813171 0.829010\n0.647339 0.814972 0.829010\n0.686157 0.816803 0.829010\n0.722321 0.818481 0.829010\n0.755615 0.820221 0.829010\n0.785950 0.821930 0.829010\n0.813324 0.823578 0.829010\n0.838165 0.825256 0.829010\n0.860687 0.826843 0.829010\n0.881165 0.828461 0.829010\n0.899780 0.830078 0.829010\n0.916718 0.831604 0.829010\n0.932098 0.833160 0.829010\n0.946075 0.834656 0.829010\n0.958679 0.836090 0.829010\n0.970062 0.837585 0.829010\n0.980255 0.839020 0.829010\n0.989258 0.840424 0.829010\n0.104919 0.815704 0.833771\n0.130463 0.817535 0.833252\n0.157349 0.819397 0.832703\n0.185638 0.821136 0.832245\n0.215637 0.822906 0.831696\n0.247498 0.824707 0.831207\n0.281433 0.826447 0.830780\n0.317566 0.828186 0.830292\n0.355682 0.829865 0.829834\n0.395752 0.831604 0.829407\n0.437439 0.833313 0.829010\n0.480377 0.834961 0.829010\n0.524445 0.836609 0.829010\n0.568634 0.838226 0.829010\n0.611298 0.839813 0.829010\n0.652130 0.841461 0.829010\n0.690613 0.843018 0.829010\n0.726410 0.844543 0.829010\n0.759369 0.846100 0.829010\n0.789276 0.847626 0.829010\n0.816315 0.849060 0.829010\n0.840851 0.850555 0.829010\n0.863098 0.851959 0.829010\n0.883331 0.853424 0.829010\n0.901733 0.854797 0.829010\n0.918427 0.856171 0.829010\n0.933685 0.857544 0.829010\n0.947510 0.858856 0.829010\n0.959961 0.860168 0.829010\n0.971191 0.861450 0.829010\n0.981232 0.862732 0.829010\n0.990082 0.863953 0.829010\n0.108093 0.842194 0.832733\n0.133789 0.843842 0.832245\n0.160797 0.845459 0.831726\n0.189331 0.847046 0.831238\n0.219543 0.848694 0.830811\n0.251617 0.850281 0.830292\n0.285767 0.851807 0.829834\n0.322174 0.853394 0.829407\n0.360535 0.854919 0.829010\n0.400818 0.856445 0.829010\n0.442657 0.857971 0.829010\n0.485718 0.859436 0.829010\n0.529877 0.860931 0.829010\n0.573883 0.862366 0.829010\n0.616272 0.863800 0.829010\n0.656799 0.865204 0.829010\n0.695038 0.866638 0.829010\n0.730438 0.867981 0.829010\n0.763000 0.869354 0.829010\n0.792480 0.870697 0.829010\n0.819244 0.872009 0.829010\n0.843475 0.873352 0.829010\n0.865417 0.874603 0.829010\n0.885468 0.875885 0.829010\n0.903595 0.877136 0.829010\n0.920135 0.878296 0.829010\n0.935211 0.879486 0.829010\n0.948853 0.880707 0.829010\n0.961151 0.881805 0.829010\n0.972260 0.882965 0.829010\n0.982147 0.884064 0.829010\n0.990906 0.885162 0.829010\n0.111237 0.866058 0.831757\n0.137115 0.867554 0.831268\n0.164307 0.869019 0.830811\n0.192993 0.870422 0.830322\n0.223419 0.871887 0.829865\n0.255737 0.873291 0.829437\n0.290161 0.874695 0.829010\n0.326813 0.876129 0.829010\n0.365356 0.877441 0.829010\n0.405792 0.878845 0.829010\n0.447784 0.880188 0.829010\n0.490936 0.881500 0.829010\n0.535187 0.882843 0.829010\n0.579010 0.884155 0.829010\n0.621185 0.885406 0.829010\n0.661438 0.886658 0.829010\n0.699219 0.887939 0.829010\n0.734314 0.889160 0.829010\n0.766449 0.890350 0.829010\n0.795624 0.891541 0.829010\n0.822052 0.892731 0.829010\n0.846008 0.893860 0.829010\n0.867706 0.894958 0.829010\n0.887482 0.896118 0.829010\n0.905457 0.897186 0.829010\n0.921783 0.898254 0.829010\n0.936676 0.899323 0.829010\n0.950134 0.900391 0.829010\n0.962311 0.901398 0.829010\n0.973297 0.902374 0.829010\n0.983032 0.903320 0.829010\n0.991638 0.904297 0.829010\n0.114410 0.887573 0.830811\n0.140442 0.888916 0.830353\n0.167816 0.890228 0.829865\n0.196716 0.891510 0.829437\n0.227325 0.892792 0.829010\n0.259857 0.894073 0.829010\n0.294525 0.895355 0.829010\n0.331421 0.896576 0.829010\n0.370148 0.897797 0.829010\n0.410767 0.899017 0.829010\n0.452881 0.900269 0.829010\n0.496185 0.901428 0.829010\n0.540375 0.902618 0.829010\n0.584015 0.903778 0.829010\n0.625946 0.904907 0.829010\n0.665863 0.906006 0.829010\n0.703308 0.907104 0.829010\n0.738068 0.908234 0.829010\n0.769836 0.909302 0.829010\n0.798615 0.910339 0.829010\n0.824738 0.911377 0.829010\n0.848389 0.912384 0.829010\n0.869873 0.913391 0.829010\n0.889374 0.914398 0.829010\n0.907196 0.915375 0.829010\n0.923340 0.916321 0.829010\n0.938049 0.917267 0.829010\n0.951385 0.918121 0.829010\n0.963409 0.919006 0.829010\n0.974243 0.919891 0.829010\n0.983856 0.920715 0.829010\n0.992371 0.921570 0.829010\n0.117584 0.907013 0.829895\n0.143768 0.908203 0.829468\n0.171295 0.909393 0.829010\n0.200348 0.910522 0.829010\n0.231201 0.911682 0.829010\n0.263947 0.912811 0.829010\n0.298889 0.913940 0.829010\n0.335968 0.915100 0.829010\n0.374939 0.916199 0.829010\n0.415710 0.917267 0.829010\n0.457886 0.918335 0.829010\n0.501251 0.919373 0.829010\n0.545502 0.920441 0.829010\n0.588837 0.921448 0.829010\n0.630615 0.922485 0.829010\n0.670197 0.923462 0.829010\n0.707306 0.924438 0.829010\n0.741669 0.925446 0.829010\n0.773102 0.926361 0.829010\n0.801544 0.927307 0.829010\n0.827332 0.928223 0.829010\n0.850739 0.929138 0.829010\n0.871979 0.929993 0.829010\n0.891266 0.930878 0.829010\n0.908844 0.931732 0.829010\n0.924835 0.932556 0.829010\n0.939362 0.933350 0.829010\n0.952545 0.934174 0.829010\n0.964447 0.934937 0.829010\n0.975128 0.935699 0.829010\n0.984650 0.936432 0.829010\n0.993011 0.937164 0.829010\n0.120758 0.924530 0.829041\n0.147034 0.925629 0.829010\n0.174744 0.926605 0.829010\n0.204010 0.927704 0.829010\n0.235046 0.928741 0.829010\n0.268066 0.929749 0.829010\n0.303223 0.930756 0.829010\n0.340515 0.931732 0.829010\n0.379669 0.932739 0.829010\n0.420502 0.933716 0.829010\n0.462921 0.934662 0.829010\n0.506378 0.935608 0.829010\n0.550476 0.936523 0.829010\n0.593658 0.937408 0.829010\n0.635071 0.938324 0.829010\n0.674377 0.939209 0.829010\n0.711182 0.940063 0.829010\n0.745178 0.940948 0.829010\n0.776276 0.941803 0.829010\n0.804321 0.942596 0.829010\n0.829834 0.943390 0.829010\n0.852966 0.944183 0.829010\n0.873932 0.944946 0.829010\n0.893066 0.945740 0.829010\n0.910431 0.946442 0.829010\n0.926239 0.947205 0.829010\n0.940643 0.947906 0.829010\n0.953674 0.948578 0.829010\n0.965454 0.949249 0.829010\n0.976013 0.949921 0.829010\n0.985413 0.950562 0.829010\n0.993683 0.951202 0.829010\n0.123932 0.940308 0.829010\n0.150360 0.941284 0.829010\n0.178162 0.942200 0.829010\n0.207672 0.943146 0.829010\n0.238922 0.944092 0.829010\n0.272125 0.944977 0.829010\n0.307526 0.945862 0.829010\n0.345001 0.946747 0.829010\n0.384308 0.947632 0.829010\n0.425323 0.948486 0.829010\n0.467834 0.949341 0.829010\n0.511261 0.950165 0.829010\n0.555328 0.950989 0.829010\n0.598328 0.951752 0.829010\n0.639465 0.952576 0.829010\n0.678497 0.953339 0.829010\n0.714905 0.954102 0.829010\n0.748566 0.954834 0.829010\n0.779266 0.955597 0.829010\n0.807037 0.956299 0.829010\n0.832245 0.957001 0.829010\n0.855103 0.957703 0.829010\n0.875885 0.958374 0.829010\n0.894745 0.959045 0.829010\n0.911926 0.959686 0.829010\n0.927612 0.960327 0.829010\n0.941833 0.960938 0.829010\n0.954712 0.961548 0.829010\n0.966370 0.962128 0.829010\n0.976837 0.962677 0.829010\n0.986084 0.963226 0.829010\n0.994263 0.963776 0.829010\n0.127075 0.954498 0.829010\n0.153656 0.955383 0.829010\n0.181641 0.956207 0.829010\n0.211273 0.957031 0.829010\n0.242706 0.957855 0.829010\n0.276154 0.958649 0.829010\n0.311768 0.959442 0.829010\n0.349396 0.960236 0.829010\n0.388916 0.960999 0.829010\n0.430023 0.961731 0.829010\n0.472504 0.962463 0.829010\n0.516083 0.963196 0.829010\n0.560089 0.963928 0.829010\n0.602783 0.964630 0.829010\n0.643707 0.965332 0.829010\n0.682343 0.966003 0.829010\n0.718475 0.966675 0.829010\n0.751831 0.967316 0.829010\n0.782166 0.967957 0.829010\n0.809601 0.968567 0.829010\n0.834534 0.969208 0.829010\n0.857117 0.969788 0.829010\n0.877686 0.970367 0.829010\n0.896393 0.970947 0.829010\n0.913361 0.971497 0.829010\n0.928864 0.972015 0.829010\n0.942963 0.972565 0.829010\n0.955719 0.973053 0.829010\n0.967255 0.973541 0.829010\n0.977600 0.974060 0.829010\n0.986755 0.974518 0.829010\n0.994812 0.974976 0.829010\n0.130157 0.967224 0.829010\n0.156891 0.967987 0.829010\n0.185028 0.968689 0.829010\n0.214844 0.969421 0.829010\n0.246490 0.970154 0.829010\n0.280121 0.970856 0.829010\n0.315948 0.971558 0.829010\n0.353760 0.972229 0.829010\n0.393402 0.972900 0.829010\n0.434631 0.973541 0.829010\n0.477173 0.974182 0.829010\n0.520782 0.974854 0.829010\n0.564667 0.975464 0.829010\n0.607147 0.976044 0.829010\n0.647766 0.976654 0.829010\n0.686127 0.977264 0.829010\n0.721924 0.977814 0.829010\n0.754883 0.978394 0.829010\n0.784912 0.978912 0.829010\n0.812042 0.979462 0.829010\n0.836700 0.979980 0.829010\n0.859039 0.980469 0.829010\n0.879395 0.980988 0.829010\n0.897888 0.981476 0.829010\n0.914764 0.981934 0.829010\n0.930084 0.982422 0.829010\n0.944031 0.982849 0.829010\n0.956635 0.983276 0.829010\n0.968048 0.983673 0.829010\n0.978302 0.984100 0.829010\n0.987366 0.984467 0.829010\n0.995331 0.984863 0.829010\n0.045715 0.007019 0.876038\n0.067810 0.007904 0.875793\n0.090973 0.008789 0.875458\n0.115234 0.009735 0.875153\n0.140686 0.010712 0.874817\n0.167511 0.011688 0.874481\n0.195862 0.012756 0.874115\n0.225922 0.013733 0.873779\n0.257874 0.014801 0.873383\n0.291931 0.015900 0.872986\n0.328094 0.017029 0.872589\n0.366333 0.018158 0.872192\n0.406250 0.019318 0.871765\n0.447815 0.020508 0.871338\n0.490692 0.021667 0.870911\n0.534515 0.022919 0.870453\n0.578125 0.024139 0.869995\n0.620239 0.025421 0.869568\n0.660309 0.026672 0.869080\n0.698120 0.028015 0.868591\n0.733215 0.029358 0.868103\n0.765503 0.030670 0.867645\n0.794800 0.032013 0.867157\n0.821411 0.033417 0.866608\n0.845459 0.034790 0.866119\n0.867340 0.036163 0.865631\n0.887238 0.037598 0.865112\n0.905396 0.039062 0.864594\n0.921906 0.040527 0.864075\n0.936859 0.041962 0.863556\n0.950500 0.043427 0.863037\n0.962830 0.044983 0.862518\n0.047394 0.028595 0.875488\n0.069702 0.029541 0.875183\n0.092957 0.030548 0.874817\n0.117401 0.031586 0.874481\n0.143005 0.032623 0.874146\n0.170013 0.033722 0.873779\n0.198639 0.034821 0.873383\n0.228851 0.035950 0.873016\n0.261078 0.037109 0.872589\n0.295441 0.038300 0.872192\n0.331818 0.039490 0.871765\n0.370270 0.040710 0.871338\n0.410461 0.041931 0.870941\n0.452271 0.043213 0.870483\n0.495331 0.044495 0.870026\n0.539185 0.045776 0.869568\n0.582764 0.047119 0.869080\n0.624756 0.048492 0.868622\n0.664612 0.049866 0.868134\n0.702179 0.051270 0.867645\n0.737091 0.052704 0.867157\n0.769043 0.054047 0.866638\n0.798035 0.055573 0.866150\n0.824280 0.056976 0.865662\n0.848145 0.058441 0.865143\n0.869812 0.059998 0.864594\n0.889526 0.061462 0.864075\n0.907471 0.063019 0.863586\n0.923798 0.064575 0.863037\n0.938629 0.066101 0.862549\n0.952087 0.067688 0.862030\n0.964264 0.069275 0.861481\n0.049286 0.051147 0.874817\n0.071686 0.052185 0.874512\n0.095123 0.053314 0.874176\n0.119659 0.054443 0.873779\n0.145447 0.055603 0.873413\n0.172668 0.056763 0.873016\n0.201416 0.057983 0.872620\n0.231934 0.059174 0.872223\n0.264435 0.060425 0.871796\n0.298950 0.061676 0.871368\n0.335724 0.062988 0.870972\n0.374420 0.064331 0.870483\n0.414856 0.065643 0.870026\n0.456879 0.067017 0.869568\n0.500061 0.068420 0.869080\n0.544098 0.069794 0.868652\n0.587585 0.071259 0.868164\n0.629364 0.072693 0.867645\n0.669006 0.074127 0.867157\n0.706390 0.075623 0.866669\n0.740967 0.077148 0.866180\n0.772583 0.078644 0.865662\n0.801300 0.080200 0.865143\n0.827240 0.081726 0.864624\n0.850861 0.083344 0.864105\n0.872314 0.084930 0.863586\n0.891754 0.086517 0.863068\n0.909546 0.088165 0.862549\n0.925720 0.089783 0.862030\n0.940369 0.091400 0.861481\n0.953674 0.093109 0.860992\n0.965668 0.094757 0.860443\n0.051208 0.074860 0.874176\n0.073761 0.075958 0.873810\n0.097351 0.077209 0.873444\n0.122070 0.078430 0.873047\n0.148041 0.079651 0.872650\n0.175415 0.080902 0.872253\n0.204407 0.082245 0.871796\n0.235107 0.083557 0.871368\n0.267853 0.084930 0.870972\n0.302734 0.086243 0.870514\n0.339752 0.087677 0.870056\n0.378693 0.089081 0.869568\n0.419342 0.090515 0.869110\n0.461517 0.092041 0.868652\n0.504974 0.093506 0.868164\n0.549103 0.095001 0.867676\n0.592438 0.096558 0.867188\n0.634064 0.098114 0.866699\n0.673523 0.099670 0.866211\n0.710602 0.101227 0.865662\n0.744812 0.102844 0.865173\n0.776123 0.104492 0.864624\n0.804504 0.106110 0.864105\n0.830231 0.107788 0.863617\n0.853577 0.109467 0.863098\n0.874817 0.111145 0.862579\n0.894073 0.112854 0.862030\n0.911621 0.114594 0.861511\n0.927612 0.116364 0.860992\n0.942078 0.118103 0.860504\n0.955231 0.119843 0.859955\n0.967072 0.121613 0.859436\n0.053284 0.099762 0.873444\n0.075928 0.100983 0.873077\n0.099670 0.102295 0.872650\n0.124573 0.103668 0.872253\n0.150696 0.104980 0.871826\n0.178314 0.106384 0.871399\n0.207458 0.107788 0.870972\n0.238434 0.109222 0.870514\n0.271454 0.110687 0.870056\n0.306641 0.112183 0.869598\n0.343842 0.113678 0.869110\n0.383118 0.115234 0.868683\n0.424011 0.116730 0.868195\n0.466400 0.118347 0.867706\n0.509949 0.119934 0.867188\n0.554108 0.121552 0.866730\n0.597382 0.123199 0.866211\n0.638824 0.124878 0.865662\n0.678040 0.126526 0.865173\n0.714813 0.128265 0.864624\n0.748718 0.129974 0.864136\n0.779694 0.131683 0.863617\n0.807800 0.133484 0.863098\n0.833221 0.135193 0.862610\n0.856293 0.137024 0.862061\n0.877289 0.138885 0.861511\n0.896332 0.140656 0.861023\n0.913666 0.142517 0.860504\n0.929504 0.144348 0.859955\n0.943787 0.146179 0.859436\n0.956787 0.148102 0.858917\n0.968475 0.149963 0.858429\n0.055420 0.125977 0.872650\n0.078186 0.127350 0.872284\n0.102081 0.128784 0.871857\n0.127167 0.130249 0.871399\n0.153473 0.131683 0.871002\n0.181274 0.133240 0.870514\n0.210663 0.134705 0.870087\n0.241913 0.136292 0.869629\n0.275208 0.137878 0.869141\n0.310638 0.139465 0.868713\n0.348175 0.141113 0.868195\n0.387634 0.142761 0.867706\n0.428741 0.144409 0.867218\n0.471344 0.146118 0.866730\n0.515106 0.147888 0.866211\n0.559265 0.149567 0.865692\n0.602356 0.151367 0.865173\n0.643585 0.153137 0.864685\n0.682587 0.154938 0.864166\n0.719086 0.156799 0.863647\n0.752655 0.158630 0.863129\n0.783295 0.160492 0.862610\n0.811066 0.162384 0.862061\n0.836151 0.164215 0.861542\n0.859009 0.166168 0.861023\n0.879730 0.168152 0.860535\n0.898590 0.170044 0.859985\n0.915802 0.172028 0.859467\n0.931366 0.173981 0.858948\n0.945526 0.175995 0.858429\n0.958313 0.178009 0.857910\n0.969879 0.179993 0.857422\n0.057648 0.153717 0.871857\n0.080627 0.155243 0.871429\n0.104614 0.156799 0.871002\n0.129822 0.158356 0.870544\n0.156311 0.159973 0.870087\n0.184357 0.161621 0.869659\n0.213959 0.163239 0.869171\n0.245453 0.164978 0.868713\n0.279022 0.166687 0.868225\n0.314728 0.168427 0.867737\n0.352600 0.170197 0.867218\n0.392273 0.171997 0.866760\n0.433624 0.173767 0.866241\n0.476440 0.175598 0.865692\n0.520294 0.177429 0.865204\n0.564453 0.179352 0.864685\n0.607422 0.181244 0.864166\n0.648438 0.183136 0.863678\n0.687164 0.185089 0.863159\n0.723297 0.187073 0.862640\n0.756592 0.189056 0.862091\n0.786865 0.191040 0.861572\n0.814301 0.193085 0.861053\n0.839142 0.195099 0.860535\n0.861694 0.197174 0.859985\n0.882233 0.199249 0.859467\n0.900818 0.201294 0.858978\n0.917816 0.203369 0.858429\n0.933197 0.205505 0.857941\n0.947235 0.207672 0.857422\n0.959869 0.209808 0.856903\n0.971252 0.211914 0.856445\n0.059998 0.183197 0.871002\n0.083038 0.184845 0.870575\n0.107239 0.186523 0.870117\n0.132599 0.188263 0.869659\n0.159302 0.189972 0.869171\n0.187561 0.191803 0.868744\n0.217377 0.193573 0.868256\n0.249176 0.195435 0.867767\n0.282990 0.197327 0.867218\n0.318970 0.199158 0.866760\n0.357117 0.201080 0.866241\n0.397064 0.203033 0.865723\n0.438629 0.204956 0.865204\n0.481598 0.206970 0.864716\n0.525574 0.208923 0.864197\n0.569733 0.210968 0.863678\n0.612488 0.213043 0.863190\n0.653259 0.215057 0.862640\n0.691711 0.217224 0.862091\n0.727570 0.219299 0.861572\n0.760468 0.221436 0.861084\n0.790436 0.223572 0.860535\n0.817535 0.225769 0.859985\n0.842102 0.227936 0.859528\n0.864380 0.230133 0.858978\n0.884613 0.232330 0.858459\n0.903076 0.234558 0.857941\n0.919830 0.236847 0.857452\n0.935059 0.239105 0.856964\n0.948914 0.241425 0.856445\n0.961395 0.243683 0.855957\n0.972595 0.245972 0.855469\n0.062347 0.214539 0.870117\n0.085602 0.216370 0.869659\n0.109955 0.218201 0.869171\n0.135468 0.220062 0.868744\n0.162384 0.222015 0.868256\n0.190796 0.223938 0.867767\n0.220886 0.225891 0.867249\n0.252960 0.227905 0.866760\n0.287079 0.229950 0.866272\n0.323364 0.231934 0.865753\n0.361725 0.234039 0.865234\n0.401855 0.236084 0.864746\n0.443695 0.238251 0.864227\n0.486847 0.240417 0.863678\n0.531006 0.242523 0.863190\n0.575012 0.244751 0.862640\n0.617645 0.246979 0.862122\n0.658142 0.249207 0.861603\n0.696289 0.251465 0.861084\n0.731842 0.253754 0.860565\n0.764374 0.256012 0.860046\n0.793976 0.258392 0.859528\n0.820770 0.260742 0.859009\n0.845001 0.263031 0.858490\n0.867065 0.265442 0.857971\n0.887054 0.267792 0.857483\n0.905273 0.270233 0.856964\n0.921844 0.272644 0.856476\n0.936859 0.275055 0.855988\n0.950562 0.277496 0.855469\n0.962891 0.279999 0.855011\n0.973938 0.282440 0.854553\n0.064819 0.248047 0.869202\n0.088226 0.250031 0.868744\n0.112701 0.252106 0.868286\n0.138428 0.254120 0.867798\n0.165527 0.256226 0.867249\n0.194183 0.258331 0.866791\n0.224548 0.260437 0.866272\n0.256805 0.262634 0.865753\n0.291229 0.264832 0.865265\n0.327850 0.266998 0.864746\n0.366425 0.269318 0.864227\n0.406830 0.271576 0.863708\n0.448883 0.273865 0.863190\n0.492218 0.276215 0.862640\n0.536469 0.278534 0.862152\n0.580383 0.280975 0.861633\n0.622803 0.283356 0.861084\n0.663055 0.285706 0.860596\n0.700928 0.288208 0.860046\n0.736084 0.290680 0.859558\n0.768280 0.293121 0.859039\n0.797485 0.295654 0.858490\n0.823914 0.298126 0.858002\n0.847900 0.300690 0.857483\n0.869690 0.303284 0.856995\n0.889465 0.305756 0.856506\n0.907471 0.308380 0.856018\n0.923828 0.311005 0.855499\n0.938690 0.313538 0.855042\n0.952148 0.316162 0.854553\n0.964325 0.318817 0.854065\n0.975220 0.321381 0.853607\n0.067352 0.283966 0.868317\n0.090912 0.286133 0.867798\n0.115601 0.288361 0.867279\n0.141479 0.290588 0.866821\n0.168762 0.292877 0.866272\n0.197662 0.295227 0.865784\n0.228210 0.297485 0.865265\n0.260803 0.299866 0.864777\n0.295563 0.302277 0.864227\n0.332397 0.304657 0.863739\n0.371246 0.307129 0.863220\n0.411926 0.309570 0.862671\n0.454163 0.312073 0.862152\n0.497620 0.314606 0.861633\n0.541962 0.317108 0.861115\n0.585754 0.319672 0.860596\n0.627899 0.322296 0.860077\n0.667908 0.324829 0.859589\n0.705475 0.327484 0.859039\n0.740295 0.330139 0.858521\n0.772156 0.332764 0.858032\n0.800995 0.335449 0.857513\n0.827087 0.338104 0.857025\n0.850800 0.340790 0.856506\n0.872314 0.343536 0.856018\n0.891846 0.346222 0.855530\n0.909637 0.348969 0.855042\n0.925812 0.351715 0.854553\n0.940460 0.354431 0.854095\n0.953796 0.357208 0.853607\n0.965790 0.359985 0.853180\n0.976501 0.362671 0.852753\n0.070007 0.322418 0.867310\n0.093689 0.324799 0.866821\n0.118530 0.327240 0.866302\n0.144592 0.329620 0.865814\n0.172119 0.332123 0.865265\n0.201202 0.334595 0.864777\n0.232025 0.337067 0.864258\n0.264862 0.339661 0.863739\n0.299835 0.342194 0.863251\n0.337006 0.344788 0.862701\n0.376160 0.347443 0.862183\n0.417023 0.350006 0.861633\n0.459442 0.352722 0.861145\n0.503113 0.355438 0.860596\n0.547485 0.358063 0.860077\n0.591095 0.360840 0.859589\n0.633087 0.363586 0.859039\n0.672791 0.366333 0.858551\n0.710022 0.369110 0.858032\n0.744446 0.371857 0.857544\n0.775940 0.374725 0.857025\n0.804413 0.377533 0.856537\n0.830231 0.380310 0.856018\n0.853607 0.383148 0.855530\n0.874878 0.386017 0.855042\n0.894196 0.388885 0.854584\n0.911743 0.391724 0.854095\n0.927734 0.394623 0.853638\n0.942200 0.397491 0.853210\n0.955322 0.400391 0.852753\n0.967194 0.403198 0.852325\n0.977783 0.406097 0.851929\n0.072693 0.363281 0.866333\n0.096558 0.365845 0.865814\n0.121552 0.368469 0.865295\n0.147797 0.371002 0.864807\n0.175537 0.373627 0.864288\n0.204834 0.376343 0.863770\n0.235901 0.378967 0.863251\n0.269012 0.381683 0.862701\n0.304291 0.384399 0.862183\n0.341766 0.387146 0.861664\n0.381104 0.389954 0.861145\n0.422211 0.392700 0.860626\n0.464844 0.395538 0.860077\n0.508606 0.398438 0.859589\n0.553070 0.401276 0.859070\n0.596466 0.404175 0.858582\n0.638184 0.407043 0.858032\n0.677673 0.409912 0.857544\n0.714569 0.412842 0.857025\n0.748596 0.415741 0.856567\n0.779694 0.418732 0.856018\n0.807861 0.421631 0.855560\n0.833344 0.424591 0.855072\n0.856415 0.427582 0.854584\n0.877411 0.430511 0.854126\n0.896484 0.433441 0.853668\n0.913849 0.436432 0.853210\n0.929657 0.439423 0.852783\n0.943970 0.442383 0.852356\n0.956909 0.445343 0.851929\n0.968536 0.448303 0.851501\n0.979004 0.451294 0.851105\n0.075439 0.406250 0.865326\n0.099426 0.408997 0.864807\n0.124634 0.411774 0.864288\n0.151062 0.414490 0.863800\n0.178986 0.417267 0.863281\n0.208466 0.420044 0.862762\n0.239838 0.422882 0.862213\n0.273254 0.425812 0.861694\n0.308807 0.428650 0.861176\n0.346497 0.431549 0.860657\n0.386169 0.434479 0.860107\n0.427460 0.437347 0.859619\n0.470276 0.440369 0.859070\n0.514221 0.443359 0.858582\n0.558624 0.446289 0.858063\n0.601868 0.449341 0.857574\n0.643250 0.452271 0.857056\n0.682465 0.455292 0.856567\n0.719025 0.458344 0.856049\n0.752716 0.461334 0.855560\n0.783447 0.464417 0.855072\n0.811218 0.467438 0.854614\n0.836334 0.470490 0.854126\n0.859192 0.473572 0.853668\n0.879944 0.476654 0.853241\n0.898773 0.479614 0.852814\n0.915924 0.482697 0.852356\n0.931458 0.485718 0.851959\n0.945648 0.488800 0.851532\n0.958405 0.491882 0.851135\n0.969910 0.494873 0.851044\n0.980194 0.497894 0.851044\n0.078247 0.451141 0.864319\n0.102417 0.454041 0.863800\n0.127777 0.456940 0.863281\n0.154358 0.459808 0.862762\n0.182526 0.462708 0.862213\n0.212250 0.465607 0.861725\n0.243866 0.468597 0.861206\n0.277527 0.471588 0.860657\n0.313385 0.474548 0.860138\n0.351410 0.477570 0.859619\n0.391266 0.480652 0.859100\n0.432770 0.483673 0.858582\n0.475769 0.486725 0.858063\n0.519836 0.489807 0.857574\n0.564178 0.492889 0.857056\n0.607239 0.495972 0.856567\n0.648376 0.498962 0.856079\n0.687225 0.502167 0.855560\n0.723480 0.505280 0.855103\n0.756805 0.508331 0.854645\n0.787079 0.511536 0.854156\n0.814514 0.514648 0.853668\n0.839355 0.517670 0.853271\n0.861908 0.520874 0.852814\n0.882385 0.523987 0.852356\n0.901001 0.527039 0.851959\n0.917908 0.530151 0.851532\n0.933289 0.533173 0.851135\n0.947296 0.536316 0.851044\n0.959900 0.539398 0.851044\n0.971252 0.542419 0.851044\n0.981354 0.545471 0.851044\n0.081146 0.497559 0.863281\n0.105469 0.500549 0.862793\n0.130890 0.503479 0.862244\n0.157745 0.506500 0.861725\n0.186096 0.509552 0.861206\n0.216095 0.512573 0.860687\n0.247955 0.515656 0.860168\n0.281921 0.518768 0.859650\n0.318054 0.521790 0.859131\n0.356323 0.524902 0.858612\n0.396423 0.528046 0.858093\n0.438141 0.531097 0.857574\n0.481293 0.534241 0.857086\n0.525421 0.537384 0.856598\n0.569733 0.540527 0.856110\n0.612579 0.543671 0.855591\n0.653442 0.546753 0.855133\n0.691956 0.549866 0.854645\n0.727875 0.553009 0.854187\n0.760742 0.556091 0.853699\n0.790680 0.559174 0.853271\n0.817780 0.562317 0.852814\n0.842316 0.565338 0.852386\n0.864563 0.568420 0.851959\n0.884766 0.571381 0.851562\n0.903168 0.574402 0.851135\n0.919891 0.577484 0.851044\n0.935089 0.580383 0.851044\n0.948883 0.583313 0.851044\n0.961365 0.586334 0.851044\n0.972504 0.589172 0.851044\n0.982513 0.592072 0.851044\n0.084045 0.545074 0.862274\n0.108521 0.548096 0.861755\n0.134216 0.551147 0.861237\n0.161163 0.554108 0.860687\n0.189758 0.557190 0.860168\n0.219971 0.560211 0.859680\n0.252106 0.563232 0.859131\n0.286346 0.566376 0.858612\n0.322784 0.569336 0.858124\n0.361267 0.572418 0.857605\n0.401642 0.575500 0.857086\n0.443542 0.578491 0.856598\n0.486847 0.581543 0.856110\n0.531036 0.584503 0.855621\n0.575195 0.587585 0.855133\n0.617859 0.590607 0.854645\n0.658417 0.593597 0.854187\n0.696625 0.596619 0.853729\n0.732178 0.599609 0.853302\n0.764709 0.602539 0.852814\n0.794250 0.605560 0.852386\n0.820953 0.608490 0.851959\n0.845215 0.611389 0.851562\n0.867188 0.614288 0.851135\n0.887177 0.617249 0.851044\n0.905334 0.620026 0.851044\n0.921844 0.622894 0.851044\n0.936829 0.625671 0.851044\n0.950439 0.628479 0.851044\n0.962769 0.631317 0.851044\n0.973785 0.633942 0.851044\n0.983582 0.636719 0.851044\n0.087006 0.591736 0.861237\n0.111633 0.594696 0.860687\n0.137451 0.597565 0.860199\n0.164673 0.600555 0.859680\n0.193420 0.603546 0.859161\n0.223907 0.606445 0.858643\n0.256287 0.609344 0.858124\n0.290833 0.612335 0.857605\n0.327515 0.615234 0.857117\n0.366333 0.618195 0.856598\n0.406891 0.621155 0.856140\n0.449005 0.623962 0.855621\n0.492401 0.626953 0.855133\n0.536713 0.629761 0.854675\n0.580719 0.632690 0.854187\n0.623077 0.635620 0.853729\n0.663361 0.638367 0.853333\n0.701263 0.641235 0.852844\n0.736389 0.644135 0.852386\n0.768555 0.646881 0.851990\n0.797729 0.649689 0.851593\n0.824097 0.652466 0.851166\n0.848022 0.655151 0.851044\n0.869720 0.657928 0.851044\n0.889435 0.660583 0.851044\n0.907410 0.663239 0.851044\n0.923706 0.665924 0.851044\n0.938538 0.668488 0.851044\n0.951996 0.671112 0.851044\n0.964142 0.673706 0.851044\n0.974976 0.676239 0.851044\n0.984650 0.678772 0.851044\n0.090027 0.636536 0.860229\n0.114777 0.639374 0.859680\n0.140778 0.642120 0.859192\n0.168213 0.644928 0.858673\n0.197205 0.647766 0.858154\n0.227875 0.650513 0.857635\n0.260529 0.653351 0.857147\n0.295380 0.656158 0.856598\n0.332367 0.658905 0.856171\n0.371338 0.661682 0.855652\n0.412170 0.664459 0.855164\n0.454376 0.667175 0.854675\n0.497925 0.669922 0.854187\n0.542328 0.672607 0.853760\n0.586151 0.675323 0.853333\n0.628265 0.678040 0.852844\n0.668274 0.680634 0.852417\n0.705780 0.683319 0.852020\n0.740570 0.685974 0.851593\n0.772308 0.688538 0.851166\n0.801117 0.691132 0.851044\n0.827179 0.693726 0.851044\n0.850800 0.696228 0.851044\n0.872253 0.698730 0.851044\n0.891724 0.701172 0.851044\n0.909454 0.703674 0.851044\n0.925568 0.706116 0.851044\n0.940186 0.708496 0.851044\n0.953491 0.710846 0.851044\n0.965454 0.713196 0.851044\n0.976135 0.715485 0.851044\n0.985687 0.717804 0.851044\n0.093048 0.678833 0.859192\n0.118011 0.681488 0.858673\n0.144196 0.684113 0.858185\n0.171753 0.686737 0.857666\n0.200958 0.689392 0.857147\n0.231903 0.691956 0.856628\n0.264832 0.694611 0.856171\n0.299957 0.697266 0.855652\n0.337158 0.699768 0.855194\n0.376373 0.702393 0.854706\n0.417328 0.704895 0.854218\n0.459839 0.707428 0.853790\n0.503510 0.709991 0.853333\n0.547913 0.712524 0.852875\n0.591492 0.714966 0.852448\n0.633392 0.717468 0.852020\n0.673065 0.719879 0.851593\n0.710297 0.722321 0.851196\n0.744659 0.724762 0.851044\n0.776001 0.727142 0.851044\n0.804413 0.729492 0.851044\n0.830170 0.731781 0.851044\n0.853485 0.734100 0.851044\n0.874664 0.736389 0.851044\n0.893921 0.738617 0.851044\n0.911438 0.740875 0.851044\n0.927368 0.743073 0.851044\n0.941803 0.745178 0.851044\n0.954895 0.747375 0.851044\n0.966736 0.749481 0.851044\n0.977264 0.751526 0.851044\n0.986694 0.753540 0.851044\n0.096161 0.718262 0.858185\n0.121246 0.720703 0.857666\n0.147583 0.723114 0.857178\n0.175385 0.725555 0.856659\n0.204803 0.728027 0.856171\n0.235962 0.730438 0.855652\n0.269165 0.732819 0.855194\n0.304565 0.735229 0.854706\n0.342010 0.737549 0.854248\n0.381470 0.739929 0.853790\n0.422577 0.742218 0.853333\n0.465302 0.744568 0.852875\n0.509064 0.746887 0.852448\n0.553406 0.749115 0.852051\n0.596802 0.751404 0.851593\n0.638428 0.753662 0.851196\n0.677856 0.755829 0.851044\n0.714661 0.758026 0.851044\n0.748627 0.760223 0.851044\n0.779602 0.762299 0.851044\n0.807678 0.764465 0.851044\n0.833099 0.766479 0.851044\n0.856110 0.768616 0.851044\n0.877045 0.770660 0.851044\n0.896057 0.772614 0.851044\n0.913361 0.774628 0.851044\n0.929077 0.776581 0.851044\n0.943359 0.778473 0.851044\n0.956299 0.780334 0.851044\n0.967957 0.782227 0.851044\n0.978394 0.784058 0.851044\n0.987640 0.785889 0.851044\n0.099274 0.754333 0.857178\n0.124512 0.756653 0.856659\n0.151031 0.758850 0.856201\n0.179016 0.761047 0.855682\n0.208649 0.763275 0.855194\n0.240051 0.765442 0.854736\n0.273499 0.767609 0.854248\n0.309143 0.769745 0.853790\n0.346863 0.771912 0.853363\n0.386566 0.774048 0.852905\n0.427856 0.776093 0.852478\n0.470673 0.778229 0.852051\n0.514557 0.780273 0.851624\n0.558899 0.782288 0.851227\n0.602051 0.784302 0.851044\n0.643402 0.786346 0.851044\n0.682465 0.788300 0.851044\n0.718933 0.790253 0.851044\n0.752563 0.792175 0.851044\n0.783142 0.794037 0.851044\n0.810852 0.795959 0.851044\n0.835876 0.797791 0.851044\n0.858673 0.799591 0.851044\n0.879333 0.801422 0.851044\n0.898132 0.803192 0.851044\n0.915253 0.804962 0.851044\n0.930756 0.806671 0.851044\n0.944885 0.808350 0.851044\n0.957642 0.810028 0.851044\n0.969147 0.811646 0.851044\n0.979431 0.813263 0.851044\n0.988556 0.814880 0.851044\n0.102386 0.787048 0.856201\n0.127808 0.789093 0.855682\n0.154480 0.791016 0.855194\n0.182678 0.793060 0.854767\n0.212494 0.795074 0.854279\n0.244141 0.796997 0.853821\n0.277893 0.798950 0.853363\n0.313782 0.800842 0.852936\n0.351746 0.802765 0.852478\n0.391663 0.804688 0.852081\n0.433136 0.806519 0.851624\n0.476044 0.808411 0.851227\n0.520050 0.810272 0.851044\n0.564270 0.812042 0.851044\n0.607239 0.813904 0.851044\n0.648285 0.815674 0.851044\n0.686981 0.817383 0.851044\n0.723114 0.819153 0.851044\n0.756317 0.820801 0.851044\n0.786560 0.822510 0.851044\n0.813934 0.824188 0.851044\n0.838654 0.825836 0.851044\n0.861145 0.827484 0.851044\n0.881592 0.829071 0.851044\n0.900146 0.830597 0.851044\n0.917053 0.832184 0.851044\n0.932404 0.833710 0.851044\n0.946350 0.835205 0.851044\n0.958923 0.836700 0.851044\n0.970276 0.838104 0.851044\n0.980438 0.839539 0.851044\n0.989410 0.840912 0.851044\n0.105530 0.816406 0.855225\n0.131104 0.818207 0.854767\n0.157928 0.820007 0.854309\n0.186310 0.821838 0.853821\n0.216339 0.823578 0.853394\n0.248291 0.825317 0.852936\n0.282257 0.827087 0.852509\n0.318390 0.828796 0.852081\n0.356628 0.830536 0.851654\n0.396698 0.832245 0.851257\n0.438324 0.833893 0.851044\n0.481415 0.835571 0.851044\n0.525482 0.837189 0.851044\n0.569580 0.838806 0.851044\n0.612305 0.840454 0.851044\n0.652985 0.841980 0.851044\n0.691437 0.843567 0.851044\n0.727203 0.845123 0.851044\n0.760010 0.846649 0.851044\n0.789856 0.848145 0.851044\n0.816895 0.849640 0.851044\n0.841339 0.851044 0.851044\n0.863556 0.852509 0.851044\n0.883728 0.853943 0.851044\n0.902069 0.855286 0.851044\n0.918793 0.856659 0.851044\n0.933960 0.858032 0.851044\n0.947723 0.859344 0.851044\n0.960205 0.860657 0.851044\n0.971375 0.861908 0.851044\n0.981415 0.863190 0.851044\n0.990234 0.864410 0.851044\n0.108704 0.842773 0.854309\n0.134399 0.844482 0.853821\n0.161469 0.846069 0.853424\n0.190002 0.847687 0.852966\n0.220245 0.849243 0.852539\n0.252411 0.850830 0.852112\n0.286621 0.852417 0.851654\n0.323029 0.853943 0.851288\n0.361481 0.855469 0.851044\n0.401733 0.857025 0.851044\n0.443542 0.858490 0.851044\n0.486725 0.859985 0.851044\n0.530853 0.861450 0.851044\n0.574768 0.862885 0.851044\n0.617279 0.864349 0.851044\n0.657654 0.865692 0.851044\n0.695770 0.867157 0.851044\n0.731201 0.868500 0.851044\n0.763641 0.869812 0.851044\n0.793060 0.871185 0.851044\n0.819794 0.872498 0.851044\n0.843933 0.873779 0.851044\n0.865875 0.875061 0.851044\n0.885834 0.876343 0.851044\n0.903931 0.877533 0.851044\n0.920441 0.878754 0.851044\n0.935486 0.879944 0.851044\n0.949097 0.881104 0.851044\n0.961395 0.882263 0.851044\n0.972443 0.883362 0.851044\n0.982330 0.884460 0.851044\n0.991028 0.885559 0.851044\n0.111877 0.866608 0.853424\n0.137695 0.868042 0.852966\n0.164948 0.869537 0.852539\n0.193695 0.871002 0.852112\n0.224121 0.872406 0.851685\n0.256531 0.873840 0.851288\n0.291046 0.875214 0.851044\n0.327606 0.876587 0.851044\n0.366333 0.877991 0.851044\n0.406738 0.879333 0.851044\n0.448700 0.880676 0.851044\n0.491943 0.881989 0.851044\n0.536102 0.883270 0.851044\n0.579865 0.884583 0.851044\n0.622131 0.885864 0.851044\n0.662231 0.887115 0.851044\n0.700012 0.888367 0.851044\n0.735046 0.889557 0.851044\n0.767090 0.890778 0.851044\n0.796204 0.891937 0.851044\n0.822540 0.893158 0.851044\n0.846436 0.894287 0.851044\n0.868134 0.895416 0.851044\n0.887848 0.896545 0.851044\n0.905762 0.897614 0.851044\n0.922089 0.898651 0.851044\n0.936890 0.899689 0.851044\n0.950378 0.900726 0.851044\n0.962524 0.901733 0.851044\n0.973450 0.902740 0.851044\n0.983215 0.903687 0.851044\n0.991791 0.904663 0.851044\n0.115021 0.888031 0.852570\n0.141022 0.889374 0.852112\n0.168457 0.890686 0.851685\n0.197418 0.891998 0.851288\n0.227997 0.893280 0.851044\n0.260651 0.894562 0.851044\n0.295380 0.895813 0.851044\n0.332214 0.897034 0.851044\n0.371063 0.898254 0.851044\n0.411682 0.899475 0.851044\n0.453827 0.900696 0.851044\n0.497162 0.901855 0.851044\n0.541290 0.903015 0.851044\n0.584930 0.904144 0.851044\n0.626831 0.905334 0.851044\n0.666626 0.906433 0.851044\n0.704102 0.907532 0.851044\n0.738770 0.908600 0.851044\n0.770447 0.909668 0.851044\n0.799225 0.910736 0.851044\n0.825256 0.911743 0.851044\n0.848846 0.912750 0.851044\n0.870270 0.913757 0.851044\n0.889709 0.914764 0.851044\n0.907501 0.915710 0.851044\n0.923615 0.916656 0.851044\n0.938293 0.917572 0.851044\n0.951569 0.918457 0.851044\n0.963623 0.919342 0.851044\n0.974426 0.920166 0.851044\n0.984009 0.921051 0.851044\n0.992493 0.921906 0.851044\n0.118225 0.907471 0.851715\n0.144318 0.908600 0.851318\n0.171936 0.909821 0.851044\n0.201080 0.910980 0.851044\n0.231903 0.912109 0.851044\n0.264771 0.913239 0.851044\n0.299744 0.914398 0.851044\n0.336792 0.915497 0.851044\n0.375854 0.916595 0.851044\n0.416595 0.917664 0.851044\n0.458832 0.918701 0.851044\n0.502289 0.919769 0.851044\n0.546387 0.920807 0.851044\n0.589783 0.921844 0.851044\n0.631500 0.922882 0.851044\n0.670929 0.923798 0.851044\n0.708038 0.924835 0.851044\n0.742371 0.925812 0.851044\n0.773682 0.926697 0.851044\n0.802124 0.927673 0.851044\n0.827820 0.928558 0.851044\n0.851135 0.929474 0.851044\n0.872375 0.930298 0.851044\n0.891571 0.931183 0.851044\n0.909180 0.932037 0.851044\n0.925110 0.932861 0.851044\n0.939606 0.933655 0.851044\n0.952789 0.934418 0.851044\n0.964661 0.935242 0.851044\n0.975311 0.935974 0.851044\n0.984802 0.936707 0.851044\n0.993164 0.937408 0.851044\n0.121368 0.924927 0.851044\n0.147675 0.925964 0.851044\n0.175415 0.927063 0.851044\n0.204712 0.928040 0.851044\n0.235748 0.929077 0.851044\n0.268829 0.930115 0.851044\n0.304077 0.931122 0.851044\n0.341278 0.932098 0.851044\n0.380524 0.933075 0.851044\n0.421387 0.934021 0.851044\n0.463745 0.934998 0.851044\n0.507294 0.935944 0.851044\n0.551392 0.936829 0.851044\n0.594543 0.937775 0.851044\n0.635925 0.938660 0.851044\n0.675140 0.939514 0.851044\n0.711884 0.940399 0.851044\n0.745850 0.941254 0.851044\n0.776794 0.942078 0.851044\n0.804901 0.942902 0.851044\n0.830292 0.943695 0.851044\n0.853363 0.944458 0.851044\n0.874329 0.945221 0.851044\n0.893372 0.945984 0.851044\n0.910736 0.946747 0.851044\n0.926514 0.947449 0.851044\n0.940857 0.948151 0.851044\n0.953857 0.948853 0.851044\n0.965637 0.949524 0.851044\n0.976135 0.950134 0.851044\n0.985535 0.950806 0.851044\n0.993774 0.951416 0.851044\n0.124542 0.940704 0.851044\n0.150970 0.941650 0.851044\n0.178864 0.942566 0.851044\n0.208374 0.943512 0.851044\n0.239594 0.944397 0.851044\n0.272888 0.945312 0.851044\n0.308258 0.946198 0.851044\n0.345795 0.947052 0.851044\n0.385223 0.947937 0.851044\n0.426178 0.948792 0.851044\n0.468628 0.949646 0.851044\n0.512177 0.950470 0.851044\n0.556244 0.951294 0.851044\n0.599152 0.952087 0.851044\n0.640289 0.952881 0.851044\n0.679169 0.953644 0.851044\n0.715576 0.954407 0.851044\n0.749207 0.955139 0.851044\n0.779785 0.955841 0.851044\n0.807526 0.956573 0.851044\n0.832672 0.957275 0.851044\n0.855469 0.957947 0.851044\n0.876221 0.958618 0.851044\n0.895050 0.959259 0.851044\n0.912231 0.959930 0.851044\n0.927887 0.960541 0.851044\n0.942047 0.961151 0.851044\n0.954926 0.961731 0.851044\n0.966553 0.962311 0.851044\n0.976959 0.962891 0.851044\n0.986237 0.963440 0.851044\n0.994354 0.963928 0.851044\n0.127655 0.954834 0.851044\n0.154236 0.955688 0.851044\n0.182281 0.956543 0.851044\n0.211975 0.957336 0.851044\n0.243408 0.958130 0.851044\n0.276917 0.958923 0.851044\n0.312500 0.959717 0.851044\n0.350189 0.960480 0.851044\n0.389771 0.961273 0.851044\n0.430847 0.962006 0.851044\n0.473419 0.962769 0.851044\n0.516998 0.963470 0.851044\n0.560883 0.964203 0.851044\n0.603638 0.964874 0.851044\n0.644470 0.965576 0.851044\n0.683105 0.966248 0.851044\n0.719147 0.966919 0.851044\n0.752350 0.967560 0.851044\n0.782654 0.968201 0.851044\n0.810089 0.968811 0.851044\n0.834930 0.969391 0.851044\n0.857483 0.970001 0.851044\n0.878021 0.970612 0.851044\n0.896667 0.971130 0.851044\n0.913666 0.971710 0.851044\n0.929108 0.972229 0.851044\n0.943146 0.972748 0.851044\n0.955902 0.973267 0.851044\n0.967377 0.973724 0.851044\n0.977692 0.974213 0.851044\n0.986877 0.974670 0.851044\n0.994904 0.975098 0.851044\n0.130768 0.967499 0.851044\n0.157501 0.968262 0.851044\n0.185669 0.968994 0.851044\n0.215515 0.969666 0.851044\n0.247131 0.970398 0.851044\n0.280884 0.971130 0.851044\n0.316650 0.971771 0.851044\n0.354523 0.972473 0.851044\n0.394287 0.973145 0.851044\n0.435486 0.973785 0.851044\n0.478058 0.974426 0.851044\n0.521667 0.975067 0.851044\n0.565521 0.975647 0.851044\n0.607941 0.976288 0.851044\n0.648499 0.976868 0.851044\n0.686829 0.977448 0.851044\n0.722565 0.978027 0.851044\n0.755402 0.978577 0.851044\n0.785370 0.979126 0.851044\n0.812500 0.979675 0.851044\n0.837067 0.980164 0.851044\n0.859406 0.980652 0.851044\n0.879700 0.981171 0.851044\n0.898163 0.981628 0.851044\n0.915009 0.982117 0.851044\n0.930298 0.982544 0.851044\n0.944214 0.983002 0.851044\n0.956818 0.983398 0.851044\n0.968201 0.983826 0.851044\n0.978394 0.984253 0.851044\n0.987457 0.984619 0.851044\n0.995392 0.984985 0.851044\n0.045990 0.007324 0.893982\n0.068176 0.008240 0.893738\n0.091339 0.009155 0.893433\n0.115601 0.010101 0.893127\n0.141113 0.011047 0.892853\n0.167999 0.012115 0.892517\n0.196350 0.013092 0.892212\n0.226501 0.014130 0.891846\n0.258423 0.015198 0.891510\n0.292572 0.016357 0.891144\n0.328796 0.017456 0.890778\n0.367004 0.018585 0.890411\n0.407043 0.019745 0.890045\n0.448669 0.020966 0.889587\n0.491547 0.022125 0.889221\n0.535400 0.023376 0.888794\n0.579010 0.024658 0.888367\n0.621033 0.025879 0.887939\n0.661163 0.027222 0.887543\n0.698853 0.028473 0.887085\n0.733917 0.029785 0.886658\n0.766144 0.031158 0.886200\n0.795380 0.032501 0.885742\n0.821899 0.033905 0.885284\n0.846008 0.035278 0.884857\n0.867798 0.036682 0.884369\n0.887695 0.038177 0.883881\n0.905792 0.039581 0.883423\n0.922241 0.041046 0.882965\n0.937195 0.042511 0.882477\n0.950806 0.043976 0.881989\n0.963074 0.045502 0.881500\n0.047760 0.028931 0.893463\n0.070068 0.029938 0.893158\n0.093384 0.030914 0.892853\n0.117798 0.031952 0.892548\n0.143463 0.033051 0.892212\n0.170532 0.034119 0.891846\n0.199127 0.035217 0.891541\n0.229431 0.036377 0.891144\n0.261627 0.037506 0.890808\n0.296051 0.038727 0.890411\n0.332550 0.039948 0.890045\n0.371033 0.041107 0.889618\n0.411285 0.042419 0.889221\n0.453125 0.043732 0.888794\n0.496185 0.044983 0.888397\n0.540192 0.046326 0.887970\n0.583710 0.047668 0.887573\n0.625580 0.049011 0.887085\n0.665527 0.050385 0.886658\n0.702942 0.051758 0.886230\n0.737793 0.053162 0.885773\n0.769684 0.054626 0.885284\n0.798615 0.056061 0.884888\n0.824829 0.057556 0.884399\n0.848694 0.059021 0.883881\n0.870270 0.060516 0.883453\n0.889954 0.062042 0.882965\n0.907867 0.063599 0.882477\n0.924133 0.065094 0.881989\n0.938965 0.066711 0.881531\n0.952362 0.068237 0.881073\n0.964508 0.069824 0.880554\n0.049652 0.051514 0.892883\n0.072052 0.052643 0.892578\n0.095520 0.053772 0.892212\n0.120087 0.054810 0.891876\n0.145935 0.056000 0.891541\n0.173187 0.057190 0.891174\n0.201965 0.058380 0.890808\n0.232544 0.059662 0.890411\n0.264984 0.060883 0.890076\n0.299683 0.062134 0.889648\n0.336517 0.063477 0.889252\n0.375153 0.064789 0.888855\n0.415710 0.066162 0.888428\n0.457733 0.067535 0.888000\n0.500946 0.068909 0.887573\n0.545074 0.070312 0.887115\n0.588470 0.071716 0.886688\n0.630188 0.073181 0.886230\n0.669922 0.074707 0.885773\n0.707153 0.076172 0.885315\n0.741638 0.077698 0.884888\n0.773254 0.079254 0.884399\n0.801880 0.080780 0.883911\n0.827820 0.082336 0.883453\n0.851379 0.083923 0.882965\n0.872772 0.085480 0.882477\n0.892212 0.087128 0.881989\n0.909912 0.088745 0.881561\n0.926056 0.090393 0.881104\n0.940704 0.092072 0.880585\n0.953918 0.093689 0.880127\n0.965942 0.095367 0.879639\n0.051605 0.075226 0.892212\n0.074158 0.076416 0.891876\n0.097778 0.077637 0.891541\n0.122498 0.078888 0.891174\n0.148529 0.080139 0.890808\n0.175903 0.081390 0.890411\n0.204956 0.082733 0.890076\n0.235748 0.084045 0.889648\n0.268494 0.085419 0.889252\n0.303467 0.086823 0.888855\n0.340546 0.088226 0.888428\n0.379517 0.089630 0.888031\n0.420258 0.091095 0.887573\n0.462463 0.092560 0.887146\n0.505859 0.094025 0.886688\n0.550018 0.095581 0.886230\n0.593323 0.097076 0.885803\n0.634918 0.098663 0.885315\n0.674377 0.100250 0.884888\n0.711304 0.101807 0.884399\n0.745544 0.103455 0.883942\n0.776825 0.105072 0.883484\n0.805115 0.106720 0.882996\n0.830811 0.108398 0.882507\n0.854095 0.110107 0.882019\n0.875214 0.111755 0.881561\n0.894501 0.113495 0.881104\n0.911987 0.115204 0.880615\n0.927948 0.116974 0.880127\n0.942413 0.118744 0.879639\n0.955505 0.120483 0.879150\n0.967346 0.122314 0.878693\n0.053650 0.100189 0.891571\n0.076355 0.101501 0.891174\n0.100098 0.102783 0.890839\n0.125031 0.104095 0.890442\n0.151245 0.105530 0.890076\n0.178833 0.106903 0.889679\n0.208069 0.108307 0.889282\n0.239105 0.109741 0.888885\n0.272156 0.111176 0.888428\n0.307373 0.112701 0.888031\n0.344696 0.114258 0.887604\n0.383881 0.115784 0.887177\n0.424927 0.117340 0.886719\n0.467255 0.118896 0.886261\n0.510895 0.120544 0.885803\n0.555115 0.122192 0.885315\n0.598236 0.123779 0.884918\n0.639679 0.125458 0.884399\n0.678894 0.127197 0.883942\n0.715576 0.128876 0.883514\n0.749481 0.130615 0.883026\n0.780365 0.132355 0.882507\n0.808380 0.134125 0.882050\n0.833771 0.135895 0.881592\n0.856812 0.137695 0.881104\n0.877716 0.139496 0.880615\n0.896759 0.141357 0.880157\n0.914032 0.143158 0.879669\n0.929840 0.145050 0.879181\n0.944122 0.146912 0.878723\n0.957092 0.148773 0.878235\n0.968781 0.150696 0.877777\n0.055817 0.126465 0.890839\n0.078644 0.127930 0.890442\n0.102539 0.129303 0.890076\n0.127655 0.130798 0.889709\n0.154022 0.132233 0.889282\n0.181793 0.133759 0.888885\n0.211273 0.135284 0.888458\n0.242615 0.136902 0.888031\n0.275879 0.138458 0.887634\n0.311401 0.140045 0.887177\n0.348999 0.141724 0.886719\n0.388489 0.143341 0.886292\n0.429657 0.145081 0.885834\n0.472229 0.146759 0.885376\n0.516022 0.148499 0.884918\n0.560272 0.150269 0.884430\n0.603271 0.152008 0.883972\n0.644470 0.153778 0.883545\n0.683472 0.155670 0.883026\n0.719818 0.157471 0.882538\n0.753418 0.159302 0.882050\n0.783997 0.161194 0.881592\n0.811646 0.163055 0.881134\n0.836761 0.165009 0.880646\n0.859497 0.166870 0.880157\n0.880188 0.168793 0.879669\n0.899017 0.170807 0.879181\n0.916168 0.172729 0.878754\n0.931702 0.174744 0.878235\n0.945862 0.176727 0.877777\n0.958588 0.178711 0.877350\n0.970123 0.180756 0.876862\n0.058044 0.154266 0.890106\n0.081055 0.155853 0.889709\n0.105072 0.157379 0.889282\n0.130341 0.158966 0.888885\n0.156921 0.160614 0.888458\n0.184937 0.162231 0.888031\n0.214630 0.163910 0.887634\n0.246155 0.165619 0.887177\n0.279724 0.167297 0.886749\n0.315582 0.169067 0.886292\n0.353424 0.170807 0.885834\n0.393158 0.172577 0.885376\n0.434601 0.174469 0.884949\n0.477325 0.176270 0.884460\n0.521271 0.178131 0.883972\n0.565491 0.180054 0.883545\n0.608307 0.181946 0.883057\n0.649292 0.183899 0.882568\n0.688019 0.185852 0.882080\n0.724060 0.187805 0.881622\n0.757324 0.189789 0.881134\n0.787567 0.191803 0.880646\n0.814880 0.193787 0.880157\n0.839661 0.195862 0.879700\n0.862183 0.197906 0.879211\n0.882660 0.199982 0.878754\n0.901276 0.202118 0.878265\n0.918152 0.204163 0.877808\n0.933563 0.206268 0.877350\n0.947571 0.208435 0.876862\n0.960144 0.210571 0.876434\n0.971497 0.212738 0.875946\n0.060364 0.183807 0.889313\n0.083527 0.185486 0.888916\n0.107727 0.187164 0.888489\n0.133148 0.188904 0.888031\n0.159912 0.190674 0.887665\n0.188110 0.192444 0.887177\n0.218079 0.194244 0.886780\n0.249847 0.196106 0.886322\n0.283722 0.197937 0.885834\n0.319824 0.199829 0.885406\n0.357880 0.201721 0.884949\n0.397919 0.203735 0.884460\n0.439575 0.205719 0.883972\n0.482513 0.207672 0.883545\n0.526611 0.209656 0.883057\n0.570770 0.211731 0.882568\n0.613403 0.213745 0.882080\n0.654175 0.215912 0.881622\n0.692627 0.218018 0.881134\n0.728333 0.220062 0.880676\n0.761230 0.222260 0.880188\n0.791046 0.224365 0.879730\n0.818146 0.226562 0.879211\n0.842651 0.228790 0.878754\n0.864868 0.230927 0.878296\n0.885101 0.233185 0.877838\n0.903503 0.235443 0.877350\n0.920197 0.237671 0.876862\n0.935425 0.239960 0.876434\n0.949219 0.242310 0.875977\n0.961639 0.244507 0.875519\n0.972870 0.246826 0.875092\n0.062805 0.215240 0.888519\n0.086090 0.217072 0.888062\n0.110443 0.218903 0.887665\n0.136017 0.220764 0.887177\n0.162994 0.222748 0.886780\n0.191406 0.224640 0.886322\n0.221588 0.226624 0.885864\n0.253632 0.228607 0.885437\n0.287872 0.230621 0.884949\n0.324219 0.232727 0.884491\n0.362579 0.234772 0.884033\n0.402832 0.236877 0.883545\n0.444733 0.239014 0.883057\n0.487823 0.241180 0.882568\n0.532074 0.243378 0.882080\n0.576080 0.245575 0.881622\n0.618530 0.247803 0.881165\n0.659058 0.250031 0.880676\n0.697235 0.252350 0.880188\n0.732605 0.254578 0.879730\n0.765137 0.256927 0.879242\n0.794617 0.259216 0.878784\n0.821350 0.261536 0.878326\n0.845551 0.263947 0.877838\n0.867554 0.266296 0.877350\n0.887543 0.268707 0.876892\n0.905701 0.271149 0.876434\n0.922211 0.273499 0.876007\n0.937225 0.275970 0.875519\n0.950836 0.278442 0.875092\n0.963135 0.280884 0.874664\n0.974182 0.283356 0.874237\n0.065308 0.248810 0.887665\n0.088745 0.250763 0.887207\n0.113220 0.252808 0.886810\n0.139008 0.254883 0.886322\n0.166138 0.256989 0.885864\n0.194855 0.259064 0.885468\n0.225220 0.261230 0.884979\n0.257507 0.263367 0.884491\n0.291992 0.265625 0.884033\n0.328674 0.267853 0.883545\n0.367310 0.270081 0.883087\n0.407806 0.272400 0.882599\n0.449890 0.274719 0.882111\n0.493225 0.277039 0.881653\n0.537537 0.279419 0.881195\n0.581421 0.281830 0.880707\n0.623718 0.284241 0.880219\n0.663971 0.286621 0.879730\n0.701752 0.289093 0.879272\n0.736877 0.291534 0.878784\n0.769043 0.294098 0.878326\n0.798126 0.296570 0.877838\n0.824524 0.299103 0.877350\n0.848480 0.301636 0.876892\n0.870178 0.304138 0.876465\n0.889954 0.306763 0.876007\n0.907898 0.309357 0.875519\n0.924194 0.311920 0.875122\n0.939056 0.314484 0.874664\n0.952454 0.317108 0.874268\n0.964600 0.319733 0.873840\n0.975494 0.322388 0.873413\n0.067871 0.284790 0.886810\n0.091431 0.286987 0.886322\n0.116119 0.289185 0.885895\n0.142090 0.291443 0.885468\n0.169373 0.293671 0.884979\n0.198303 0.296051 0.884491\n0.228943 0.298370 0.884064\n0.261505 0.300720 0.883575\n0.296326 0.303162 0.883118\n0.333252 0.305603 0.882629\n0.372162 0.308014 0.882141\n0.412903 0.310486 0.881653\n0.455139 0.312988 0.881195\n0.498596 0.315521 0.880737\n0.542999 0.318054 0.880219\n0.586700 0.320587 0.879761\n0.628815 0.323181 0.879272\n0.668854 0.325836 0.878815\n0.706329 0.328430 0.878326\n0.741058 0.331085 0.877869\n0.772827 0.333740 0.877380\n0.801636 0.336365 0.876953\n0.827698 0.339142 0.876465\n0.851349 0.341827 0.876038\n0.872772 0.344513 0.875549\n0.892273 0.347198 0.875122\n0.910034 0.350006 0.874664\n0.926147 0.352692 0.874268\n0.940826 0.355469 0.873840\n0.954041 0.358185 0.873444\n0.966034 0.360992 0.873016\n0.976746 0.363770 0.872620\n0.070465 0.323334 0.885925\n0.094238 0.325714 0.885468\n0.119080 0.328094 0.885010\n0.145203 0.330566 0.884521\n0.172729 0.332947 0.884094\n0.201843 0.335480 0.883606\n0.232758 0.338043 0.883118\n0.265594 0.340546 0.882660\n0.300690 0.343140 0.882172\n0.337921 0.345795 0.881683\n0.377075 0.348358 0.881226\n0.418030 0.351013 0.880737\n0.460449 0.353729 0.880249\n0.504089 0.356384 0.879791\n0.548553 0.359131 0.879303\n0.592072 0.361786 0.878845\n0.634003 0.364563 0.878357\n0.673706 0.367371 0.877869\n0.710846 0.370087 0.877411\n0.745239 0.372955 0.876953\n0.776642 0.375732 0.876465\n0.805084 0.378571 0.876038\n0.830841 0.381409 0.875580\n0.854187 0.384247 0.875153\n0.875336 0.387085 0.874695\n0.894623 0.389954 0.874268\n0.912109 0.392731 0.873871\n0.928040 0.395691 0.873444\n0.942566 0.398529 0.873016\n0.955627 0.401398 0.872620\n0.967468 0.404327 0.872253\n0.978027 0.407196 0.871887\n0.073181 0.364197 0.885010\n0.097046 0.366730 0.884552\n0.122101 0.369354 0.884094\n0.148376 0.371948 0.883606\n0.176117 0.374573 0.883148\n0.205475 0.377289 0.882660\n0.236633 0.380005 0.882172\n0.269775 0.382660 0.881714\n0.305145 0.385437 0.881226\n0.342651 0.388214 0.880737\n0.382019 0.390930 0.880280\n0.423218 0.393829 0.879791\n0.465790 0.396576 0.879333\n0.509674 0.399414 0.878845\n0.554108 0.402344 0.878357\n0.597504 0.405151 0.877930\n0.639099 0.408081 0.877411\n0.678558 0.411041 0.876984\n0.715393 0.413849 0.876495\n0.749420 0.416840 0.876038\n0.780426 0.419769 0.875580\n0.808441 0.422699 0.875183\n0.833893 0.425690 0.874725\n0.856964 0.428650 0.874268\n0.877899 0.431580 0.873871\n0.896912 0.434601 0.873444\n0.914215 0.437469 0.873047\n0.929962 0.440521 0.872650\n0.944244 0.443481 0.872284\n0.957184 0.446442 0.871887\n0.968842 0.449402 0.871490\n0.979279 0.452454 0.871216\n0.075958 0.407318 0.884125\n0.099976 0.409973 0.883636\n0.125183 0.412781 0.883148\n0.151672 0.415497 0.882660\n0.179596 0.418274 0.882202\n0.209198 0.421082 0.881714\n0.240631 0.423981 0.881226\n0.274048 0.426788 0.880737\n0.309662 0.429657 0.880280\n0.347473 0.432617 0.879822\n0.387085 0.435547 0.879333\n0.428497 0.438477 0.878876\n0.471252 0.441406 0.878387\n0.515259 0.444427 0.877930\n0.559692 0.447388 0.877441\n0.602814 0.450378 0.877014\n0.644257 0.453430 0.876495\n0.683380 0.456451 0.876068\n0.719849 0.459412 0.875610\n0.753510 0.462494 0.875183\n0.784149 0.465576 0.874725\n0.811829 0.468567 0.874298\n0.836945 0.471680 0.873901\n0.859680 0.474670 0.873474\n0.880402 0.477722 0.873077\n0.899200 0.480804 0.872650\n0.916290 0.483826 0.872284\n0.931824 0.486908 0.871887\n0.945923 0.489960 0.871521\n0.958649 0.492950 0.871216\n0.970154 0.496063 0.871216\n0.980438 0.499054 0.871216\n0.078827 0.452240 0.883148\n0.102966 0.454987 0.882690\n0.128326 0.457947 0.882233\n0.154999 0.460846 0.881744\n0.183136 0.463715 0.881256\n0.212952 0.466736 0.880768\n0.244659 0.469696 0.880310\n0.278351 0.472626 0.879852\n0.314301 0.475647 0.879333\n0.352264 0.478668 0.878906\n0.392181 0.481750 0.878418\n0.433807 0.484802 0.877930\n0.476807 0.487793 0.877441\n0.520874 0.490906 0.877014\n0.565216 0.494019 0.876526\n0.608185 0.497101 0.876099\n0.649323 0.500153 0.875641\n0.688171 0.503326 0.875183\n0.724243 0.506409 0.874756\n0.757538 0.509521 0.874329\n0.787811 0.512634 0.873901\n0.815125 0.515747 0.873474\n0.839935 0.518921 0.873077\n0.862396 0.521942 0.872681\n0.882843 0.525085 0.872284\n0.901428 0.528168 0.871887\n0.918274 0.531250 0.871552\n0.933655 0.534363 0.871216\n0.947601 0.537476 0.871216\n0.960144 0.540497 0.871216\n0.971497 0.543549 0.871216\n0.981598 0.546600 0.871216\n0.081696 0.498657 0.882233\n0.105988 0.501587 0.881775\n0.131500 0.504608 0.881256\n0.158417 0.507629 0.880768\n0.186768 0.510620 0.880310\n0.216797 0.513702 0.879852\n0.248779 0.516785 0.879364\n0.282715 0.519836 0.878906\n0.318970 0.522919 0.878418\n0.357208 0.525970 0.877960\n0.397369 0.529144 0.877441\n0.439209 0.532318 0.877014\n0.482269 0.535370 0.876556\n0.526489 0.538483 0.876099\n0.570770 0.541718 0.875641\n0.613525 0.544769 0.875214\n0.654419 0.547943 0.874786\n0.692871 0.551117 0.874329\n0.728638 0.554108 0.873901\n0.761505 0.557220 0.873505\n0.791290 0.560272 0.873108\n0.818359 0.563385 0.872711\n0.842834 0.566437 0.872284\n0.865051 0.569427 0.871918\n0.885223 0.572540 0.871552\n0.903595 0.575531 0.871216\n0.920258 0.578491 0.871216\n0.935425 0.581512 0.871216\n0.949188 0.584442 0.871216\n0.961609 0.587372 0.871216\n0.972778 0.590302 0.871216\n0.982697 0.593079 0.871216\n0.084625 0.546204 0.881287\n0.109070 0.549133 0.880798\n0.134796 0.552216 0.880341\n0.161865 0.555267 0.879883\n0.190430 0.558258 0.879395\n0.220703 0.561310 0.878906\n0.252930 0.564392 0.878418\n0.287170 0.567413 0.877960\n0.323669 0.570465 0.877472\n0.362122 0.573486 0.877045\n0.402557 0.576538 0.876556\n0.444580 0.579651 0.876129\n0.487823 0.582581 0.875641\n0.532166 0.585663 0.875214\n0.576294 0.588745 0.874786\n0.618774 0.591675 0.874329\n0.659363 0.594727 0.873932\n0.697571 0.597778 0.873505\n0.732941 0.600677 0.873108\n0.765442 0.603699 0.872711\n0.794922 0.606659 0.872314\n0.821594 0.609589 0.871948\n0.845734 0.612488 0.871552\n0.867645 0.615356 0.871216\n0.887604 0.618225 0.871216\n0.905731 0.621124 0.871216\n0.922180 0.623901 0.871216\n0.937164 0.626709 0.871216\n0.950745 0.629547 0.871216\n0.963013 0.632263 0.871216\n0.974030 0.635010 0.871216\n0.983826 0.637756 0.871216\n0.087585 0.592834 0.880341\n0.112213 0.595673 0.879883\n0.138092 0.598694 0.879395\n0.165344 0.601654 0.878937\n0.194122 0.604553 0.878448\n0.224640 0.607513 0.877960\n0.257111 0.610504 0.877502\n0.291687 0.613373 0.877045\n0.328461 0.616333 0.876587\n0.367188 0.619232 0.876160\n0.407806 0.622162 0.875671\n0.450012 0.625092 0.875214\n0.493408 0.627991 0.874817\n0.537842 0.630890 0.874359\n0.581726 0.633789 0.873932\n0.623993 0.636658 0.873535\n0.664307 0.639496 0.873108\n0.702118 0.642334 0.872711\n0.737152 0.645111 0.872345\n0.769257 0.647888 0.871948\n0.798309 0.650665 0.871582\n0.824646 0.653442 0.871216\n0.848541 0.656189 0.871216\n0.870209 0.658844 0.871216\n0.889893 0.661591 0.871216\n0.907806 0.664276 0.871216\n0.924072 0.666840 0.871216\n0.938873 0.669495 0.871216\n0.952240 0.672119 0.871216\n0.964325 0.674652 0.871216\n0.975189 0.677155 0.871216\n0.984833 0.679596 0.871216\n0.090607 0.637573 0.879425\n0.115387 0.640350 0.878967\n0.141449 0.643158 0.878448\n0.168884 0.645996 0.877991\n0.197876 0.648773 0.877533\n0.228638 0.651550 0.877075\n0.261261 0.654327 0.876617\n0.296204 0.657104 0.876160\n0.333252 0.659912 0.875671\n0.372253 0.662659 0.875244\n0.413086 0.665405 0.874817\n0.455414 0.668182 0.874359\n0.498932 0.670868 0.873932\n0.543396 0.673584 0.873535\n0.587158 0.676300 0.873108\n0.629211 0.679016 0.872711\n0.669159 0.681671 0.872345\n0.706635 0.684296 0.871948\n0.741333 0.686890 0.871582\n0.773010 0.689514 0.871216\n0.801727 0.692017 0.871216\n0.827728 0.694611 0.871216\n0.851288 0.697205 0.871216\n0.872681 0.699585 0.871216\n0.892120 0.702118 0.871216\n0.909821 0.704590 0.871216\n0.925873 0.706970 0.871216\n0.940491 0.709351 0.871216\n0.953735 0.711731 0.871216\n0.965668 0.714050 0.871216\n0.976379 0.716370 0.871216\n0.985870 0.718597 0.871216\n0.093658 0.679840 0.878479\n0.118591 0.682465 0.878021\n0.144806 0.685120 0.877533\n0.172455 0.687714 0.877075\n0.201660 0.690338 0.876617\n0.232666 0.692963 0.876190\n0.265594 0.695557 0.875702\n0.300751 0.698181 0.875244\n0.338104 0.700775 0.874817\n0.377319 0.703308 0.874390\n0.418396 0.705872 0.873932\n0.460846 0.708435 0.873535\n0.504517 0.710907 0.873138\n0.549011 0.713409 0.872742\n0.592529 0.715942 0.872375\n0.634277 0.718353 0.871979\n0.673981 0.720795 0.871582\n0.711060 0.723206 0.871246\n0.745361 0.725616 0.871216\n0.776703 0.728027 0.871216\n0.804993 0.730316 0.871216\n0.830750 0.732635 0.871216\n0.853973 0.734924 0.871216\n0.875092 0.737183 0.871216\n0.894318 0.739441 0.871216\n0.911804 0.741669 0.871216\n0.927673 0.743835 0.871216\n0.942108 0.746002 0.871216\n0.955170 0.748108 0.871216\n0.966949 0.750214 0.871216\n0.977509 0.752289 0.871216\n0.986877 0.754272 0.871216\n0.096741 0.719147 0.877563\n0.121826 0.721588 0.877106\n0.148224 0.723999 0.876617\n0.176086 0.726471 0.876190\n0.205475 0.728882 0.875732\n0.236694 0.731293 0.875275\n0.269928 0.733673 0.874817\n0.305389 0.736053 0.874420\n0.342957 0.738403 0.873962\n0.382385 0.740784 0.873535\n0.423676 0.743134 0.873169\n0.466278 0.745422 0.872742\n0.510071 0.747711 0.872375\n0.554504 0.750000 0.871979\n0.597778 0.752197 0.871613\n0.639374 0.754456 0.871246\n0.678711 0.756683 0.871216\n0.715424 0.758850 0.871216\n0.749390 0.760956 0.871216\n0.780304 0.763123 0.871216\n0.808258 0.765228 0.871216\n0.833588 0.767303 0.871216\n0.856598 0.769379 0.871216\n0.877441 0.771362 0.871216\n0.896454 0.773346 0.871216\n0.913696 0.775360 0.871216\n0.929413 0.777283 0.871216\n0.943665 0.779205 0.871216\n0.956543 0.781036 0.871216\n0.968170 0.782898 0.871216\n0.978577 0.784760 0.871216\n0.987793 0.786499 0.871216\n0.099854 0.755188 0.876617\n0.125122 0.757446 0.876190\n0.151672 0.759674 0.875732\n0.179657 0.761810 0.875305\n0.209320 0.764038 0.874817\n0.240845 0.766235 0.874420\n0.274323 0.768372 0.873993\n0.309998 0.770569 0.873535\n0.347809 0.772736 0.873169\n0.387482 0.774780 0.872772\n0.428894 0.776886 0.872375\n0.471710 0.778961 0.871979\n0.515533 0.781006 0.871613\n0.559967 0.783020 0.871246\n0.603027 0.785034 0.871216\n0.644257 0.787018 0.871216\n0.683350 0.789001 0.871216\n0.719696 0.790894 0.871216\n0.753235 0.792847 0.871216\n0.783783 0.794769 0.871216\n0.811401 0.796600 0.871216\n0.836456 0.798462 0.871216\n0.859161 0.800262 0.871216\n0.879730 0.802063 0.871216\n0.898499 0.803864 0.871216\n0.915588 0.805573 0.871216\n0.931061 0.807281 0.871216\n0.945129 0.808990 0.871216\n0.957886 0.810608 0.871216\n0.969391 0.812256 0.871216\n0.979614 0.813904 0.871216\n0.988708 0.815460 0.871216\n0.102997 0.787811 0.875763\n0.128387 0.789795 0.875305\n0.155121 0.791779 0.874847\n0.183319 0.793762 0.874420\n0.213226 0.795746 0.873993\n0.244934 0.797729 0.873566\n0.278687 0.799652 0.873169\n0.314636 0.801544 0.872803\n0.352692 0.803467 0.872375\n0.392548 0.805359 0.872009\n0.434113 0.807251 0.871643\n0.477081 0.809113 0.871277\n0.521057 0.810913 0.871216\n0.565338 0.812744 0.871216\n0.608154 0.814484 0.871216\n0.649109 0.816284 0.871216\n0.687866 0.818054 0.871216\n0.723846 0.819763 0.871216\n0.757050 0.821472 0.871216\n0.787170 0.823181 0.871216\n0.814453 0.824799 0.871216\n0.839203 0.826447 0.871216\n0.861633 0.828064 0.871216\n0.881958 0.829651 0.871216\n0.900513 0.831207 0.871216\n0.917358 0.832703 0.871216\n0.932709 0.834229 0.871216\n0.946594 0.835754 0.871216\n0.959167 0.837158 0.871216\n0.970520 0.838623 0.871216\n0.980621 0.840057 0.871216\n0.989532 0.841431 0.871216\n0.106079 0.817047 0.874878\n0.131683 0.818878 0.874451\n0.158630 0.820709 0.874023\n0.186981 0.822449 0.873596\n0.217102 0.824188 0.873199\n0.249084 0.825989 0.872803\n0.283020 0.827698 0.872406\n0.319305 0.829468 0.872009\n0.357544 0.831177 0.871643\n0.397583 0.832825 0.871307\n0.439362 0.834534 0.871216\n0.482391 0.836121 0.871216\n0.526459 0.837799 0.871216\n0.570557 0.839417 0.871216\n0.613159 0.840973 0.871216\n0.653900 0.842560 0.871216\n0.692261 0.844177 0.871216\n0.727966 0.845642 0.871216\n0.760681 0.847198 0.871216\n0.790497 0.848694 0.871216\n0.817413 0.850159 0.871216\n0.841827 0.851593 0.871216\n0.863983 0.852997 0.871216\n0.884125 0.854431 0.871216\n0.902435 0.855804 0.871216\n0.919067 0.857178 0.871216\n0.934235 0.858521 0.871216\n0.947998 0.859833 0.871216\n0.960419 0.861115 0.871216\n0.971588 0.862366 0.871216\n0.981567 0.863617 0.871216\n0.990387 0.864838 0.871216\n0.109283 0.843414 0.874054\n0.135010 0.845032 0.873596\n0.162140 0.846680 0.873199\n0.190674 0.848236 0.872803\n0.220947 0.849854 0.872406\n0.253143 0.851410 0.872040\n0.287445 0.852966 0.871674\n0.323883 0.854553 0.871307\n0.362396 0.856079 0.871216\n0.402649 0.857574 0.871216\n0.444580 0.859039 0.871216\n0.487671 0.860535 0.871216\n0.531799 0.862000 0.871216\n0.575775 0.863434 0.871216\n0.618134 0.864838 0.871216\n0.658508 0.866272 0.871216\n0.696594 0.867645 0.871216\n0.731842 0.868988 0.871216\n0.764252 0.870361 0.871216\n0.793701 0.871704 0.871216\n0.820282 0.872955 0.871216\n0.844421 0.874268 0.871216\n0.866272 0.875488 0.871216\n0.886200 0.876770 0.871216\n0.904297 0.878021 0.871216\n0.920776 0.879181 0.871216\n0.935730 0.880371 0.871216\n0.949310 0.881531 0.871216\n0.961609 0.882660 0.871216\n0.972656 0.883759 0.871216\n0.982513 0.884888 0.871216\n0.991180 0.885925 0.871216\n0.112457 0.867157 0.873230\n0.138306 0.868622 0.872803\n0.165649 0.870056 0.872437\n0.194366 0.871490 0.872040\n0.224854 0.872925 0.871674\n0.257263 0.874329 0.871307\n0.291779 0.875732 0.871216\n0.328491 0.877136 0.871216\n0.367188 0.878448 0.871216\n0.407684 0.879852 0.871216\n0.449707 0.881165 0.871216\n0.492920 0.882477 0.871216\n0.537140 0.883759 0.871216\n0.580841 0.885071 0.871216\n0.622986 0.886322 0.871216\n0.663086 0.887604 0.871216\n0.700775 0.888824 0.871216\n0.735687 0.890045 0.871216\n0.767761 0.891235 0.871216\n0.796753 0.892395 0.871216\n0.823029 0.893555 0.871216\n0.846893 0.894714 0.871216\n0.868530 0.895813 0.871216\n0.888184 0.896912 0.871216\n0.906097 0.898010 0.871216\n0.922363 0.899048 0.871216\n0.937164 0.900116 0.871216\n0.950623 0.901123 0.871216\n0.962738 0.902100 0.871216\n0.973633 0.903107 0.871216\n0.983337 0.904022 0.871216\n0.991943 0.904999 0.871216\n0.115601 0.888519 0.872437\n0.141632 0.889862 0.872070\n0.169098 0.891174 0.871704\n0.198029 0.892456 0.871338\n0.228790 0.893738 0.871216\n0.261444 0.895020 0.871216\n0.296204 0.896271 0.871216\n0.333130 0.897522 0.871216\n0.371948 0.898682 0.871216\n0.412628 0.899933 0.871216\n0.454742 0.901123 0.871216\n0.498047 0.902283 0.871216\n0.542328 0.903442 0.871216\n0.585876 0.904602 0.871216\n0.627686 0.905701 0.871216\n0.667480 0.906860 0.871216\n0.704865 0.907928 0.871216\n0.739410 0.909027 0.871216\n0.771088 0.910095 0.871216\n0.799744 0.911102 0.871216\n0.825684 0.912109 0.871216\n0.849304 0.913116 0.871216\n0.870636 0.914124 0.871216\n0.890137 0.915100 0.871216\n0.907806 0.916077 0.871216\n0.923920 0.916992 0.871216\n0.938538 0.917877 0.871216\n0.951813 0.918793 0.871216\n0.963806 0.919647 0.871216\n0.974579 0.920532 0.871216\n0.984161 0.921356 0.871216\n0.992615 0.922180 0.871216\n0.118774 0.907867 0.871704\n0.145020 0.909058 0.871338\n0.172577 0.910248 0.871216\n0.201691 0.911377 0.871216\n0.232635 0.912537 0.871216\n0.265472 0.913635 0.871216\n0.300507 0.914795 0.871216\n0.337646 0.915894 0.871216\n0.376709 0.916992 0.871216\n0.417511 0.918060 0.871216\n0.459808 0.919098 0.871216\n0.503174 0.920166 0.871216\n0.547333 0.921173 0.871216\n0.590698 0.922241 0.871216\n0.632263 0.923218 0.871216\n0.671783 0.924194 0.871216\n0.708801 0.925171 0.871216\n0.742981 0.926117 0.871216\n0.774292 0.927063 0.871216\n0.802612 0.927979 0.871216\n0.828278 0.928864 0.871216\n0.851562 0.929779 0.871216\n0.872711 0.930634 0.871216\n0.891937 0.931488 0.871216\n0.909454 0.932343 0.871216\n0.925385 0.933136 0.871216\n0.939880 0.933960 0.871216\n0.953003 0.934723 0.871216\n0.964813 0.935516 0.871216\n0.975464 0.936218 0.871216\n0.984924 0.936920 0.871216\n0.993256 0.937683 0.871216\n0.121948 0.925323 0.871216\n0.148285 0.926361 0.871216\n0.176056 0.927429 0.871216\n0.205383 0.928436 0.871216\n0.236511 0.929504 0.871216\n0.269531 0.930481 0.871216\n0.304840 0.931458 0.871216\n0.342194 0.932495 0.871216\n0.381409 0.933441 0.871216\n0.422363 0.934387 0.871216\n0.464722 0.935364 0.871216\n0.508179 0.936249 0.871216\n0.552307 0.937195 0.871216\n0.595428 0.938080 0.871216\n0.636749 0.938995 0.871216\n0.675934 0.939880 0.871216\n0.712585 0.940704 0.871216\n0.746429 0.941559 0.871216\n0.777344 0.942352 0.871216\n0.805389 0.943176 0.871216\n0.830780 0.943970 0.871216\n0.853790 0.944763 0.871216\n0.874664 0.945496 0.871216\n0.893707 0.946259 0.871216\n0.911011 0.946991 0.871216\n0.926758 0.947693 0.871216\n0.941101 0.948364 0.871216\n0.954041 0.949097 0.871216\n0.965790 0.949738 0.871216\n0.976318 0.950409 0.871216\n0.985657 0.951019 0.871216\n0.993896 0.951630 0.871216\n0.125092 0.941040 0.871216\n0.151581 0.942017 0.871216\n0.179474 0.942902 0.871216\n0.209015 0.943817 0.871216\n0.240356 0.944763 0.871216\n0.273621 0.945648 0.871216\n0.309113 0.946533 0.871216\n0.346649 0.947418 0.871216\n0.386017 0.948273 0.871216\n0.427094 0.949127 0.871216\n0.469543 0.949951 0.871216\n0.513031 0.950775 0.871216\n0.557129 0.951569 0.871216\n0.599976 0.952332 0.871216\n0.641052 0.953125 0.871216\n0.679901 0.953918 0.871216\n0.716248 0.954651 0.871216\n0.749786 0.955414 0.871216\n0.780334 0.956116 0.871216\n0.808014 0.956818 0.871216\n0.833130 0.957520 0.871216\n0.855865 0.958221 0.871216\n0.876526 0.958862 0.871216\n0.895386 0.959534 0.871216\n0.912476 0.960175 0.871216\n0.928070 0.960754 0.871216\n0.942261 0.961365 0.871216\n0.955109 0.961945 0.871216\n0.966705 0.962494 0.871216\n0.977081 0.963074 0.871216\n0.986359 0.963623 0.871216\n0.994446 0.964172 0.871216\n0.128235 0.955170 0.871216\n0.154877 0.955994 0.871216\n0.182892 0.956818 0.871216\n0.212585 0.957611 0.871216\n0.244141 0.958435 0.871216\n0.277618 0.959229 0.871216\n0.313324 0.960022 0.871216\n0.351044 0.960785 0.871216\n0.390533 0.961548 0.871216\n0.431793 0.962280 0.871216\n0.474365 0.963043 0.871216\n0.517883 0.963715 0.871216\n0.561829 0.964447 0.871216\n0.604431 0.965118 0.871216\n0.645264 0.965820 0.871216\n0.683807 0.966522 0.871216\n0.719788 0.967163 0.871216\n0.752960 0.967773 0.871216\n0.783203 0.968414 0.871216\n0.810516 0.969025 0.871216\n0.835327 0.969635 0.871216\n0.857849 0.970245 0.871216\n0.878326 0.970764 0.871216\n0.896942 0.971344 0.871216\n0.913879 0.971863 0.871216\n0.929321 0.972412 0.871216\n0.943359 0.972961 0.871216\n0.956085 0.973450 0.871216\n0.967560 0.973938 0.871216\n0.977844 0.974396 0.871216\n0.987000 0.974854 0.871216\n0.994965 0.975281 0.871216\n0.131317 0.967773 0.871216\n0.158112 0.968506 0.871216\n0.186279 0.969208 0.871216\n0.216187 0.969971 0.871216\n0.247864 0.970673 0.871216\n0.281586 0.971344 0.871216\n0.317474 0.972046 0.871216\n0.355377 0.972717 0.871216\n0.395050 0.973389 0.871216\n0.436340 0.974030 0.871216\n0.478882 0.974640 0.871216\n0.522552 0.975281 0.871216\n0.566376 0.975922 0.871216\n0.608734 0.976501 0.871216\n0.649231 0.977081 0.871216\n0.687469 0.977661 0.871216\n0.723145 0.978241 0.871216\n0.756012 0.978790 0.871216\n0.785889 0.979340 0.871216\n0.812958 0.979858 0.871216\n0.837494 0.980377 0.871216\n0.859741 0.980865 0.871216\n0.880005 0.981354 0.871216\n0.898438 0.981842 0.871216\n0.915253 0.982300 0.871216\n0.930481 0.982727 0.871216\n0.944397 0.983154 0.871216\n0.956970 0.983582 0.871216\n0.968353 0.983978 0.871216\n0.978516 0.984406 0.871216\n0.987549 0.984772 0.871216\n0.995483 0.985138 0.871216\n0.046326 0.007690 0.910400\n0.068512 0.008575 0.910156\n0.091736 0.009491 0.909912\n0.116028 0.010468 0.909637\n0.141541 0.011414 0.909363\n0.168457 0.012451 0.909027\n0.196869 0.013489 0.908722\n0.226959 0.014526 0.908417\n0.259033 0.015625 0.908112\n0.293243 0.016754 0.907776\n0.329468 0.017853 0.907440\n0.367767 0.018982 0.907074\n0.407867 0.020172 0.906738\n0.449432 0.021362 0.906372\n0.492371 0.022614 0.905975\n0.536255 0.023804 0.905609\n0.579834 0.025055 0.905212\n0.621918 0.026367 0.904846\n0.661896 0.027649 0.904419\n0.699585 0.028961 0.904022\n0.734680 0.030334 0.903595\n0.766785 0.031677 0.903229\n0.795990 0.033051 0.902802\n0.822479 0.034424 0.902374\n0.846436 0.035797 0.901947\n0.868286 0.037231 0.901520\n0.888092 0.038635 0.901093\n0.906128 0.040161 0.900665\n0.922638 0.041565 0.900238\n0.937531 0.043060 0.899780\n0.951111 0.044525 0.899353\n0.963379 0.046051 0.898926\n0.048096 0.029297 0.909912\n0.070435 0.030273 0.909637\n0.093781 0.031281 0.909363\n0.118225 0.032379 0.909027\n0.143921 0.033417 0.908752\n0.171021 0.034515 0.908417\n0.199646 0.035645 0.908112\n0.229980 0.036774 0.907776\n0.262299 0.037964 0.907471\n0.296692 0.039124 0.907074\n0.333252 0.040375 0.906738\n0.371796 0.041595 0.906372\n0.412109 0.042847 0.905975\n0.453949 0.044128 0.905640\n0.497101 0.045471 0.905243\n0.541016 0.046753 0.904877\n0.584503 0.048096 0.904449\n0.626434 0.049500 0.904053\n0.666260 0.050873 0.903625\n0.703766 0.052277 0.903229\n0.738495 0.053741 0.902832\n0.770325 0.055176 0.902374\n0.799255 0.056610 0.901978\n0.825439 0.058105 0.901550\n0.849152 0.059570 0.901123\n0.870758 0.061066 0.900696\n0.890381 0.062592 0.900238\n0.908234 0.064117 0.899780\n0.924500 0.065704 0.899384\n0.939270 0.067261 0.898926\n0.952667 0.068817 0.898499\n0.964752 0.070465 0.898041\n0.049988 0.051941 0.909363\n0.072449 0.053009 0.909058\n0.095917 0.054108 0.908752\n0.120544 0.055267 0.908417\n0.146393 0.056427 0.908112\n0.173706 0.057648 0.907806\n0.202515 0.058868 0.907471\n0.233124 0.060120 0.907104\n0.265686 0.061371 0.906769\n0.300415 0.062653 0.906403\n0.337189 0.063934 0.906006\n0.376007 0.065277 0.905640\n0.416504 0.066650 0.905273\n0.458618 0.067993 0.904877\n0.501862 0.069397 0.904449\n0.545959 0.070862 0.904053\n0.589355 0.072296 0.903656\n0.631134 0.073761 0.903229\n0.670685 0.075195 0.902832\n0.707886 0.076752 0.902374\n0.742401 0.078247 0.901978\n0.773926 0.079773 0.901550\n0.802490 0.081329 0.901123\n0.828369 0.082886 0.900696\n0.851868 0.084503 0.900269\n0.873230 0.086090 0.899811\n0.892639 0.087708 0.899384\n0.910309 0.089355 0.898956\n0.926422 0.091003 0.898499\n0.941010 0.092651 0.898071\n0.954285 0.094299 0.897644\n0.966187 0.096039 0.897186\n0.051971 0.075684 0.908752\n0.074554 0.076843 0.908447\n0.098206 0.078064 0.908142\n0.122986 0.079315 0.907806\n0.149017 0.080597 0.907471\n0.176453 0.081879 0.907135\n0.205536 0.083221 0.906769\n0.236359 0.084534 0.906433\n0.269196 0.085907 0.906006\n0.304138 0.087280 0.905640\n0.341248 0.088715 0.905273\n0.380310 0.090179 0.904877\n0.421051 0.091614 0.904480\n0.463379 0.093079 0.904053\n0.506805 0.094635 0.903687\n0.550964 0.096130 0.903259\n0.594269 0.097656 0.902863\n0.635834 0.099274 0.902374\n0.675232 0.100830 0.902008\n0.712128 0.102448 0.901581\n0.746307 0.104034 0.901154\n0.777435 0.105682 0.900696\n0.805725 0.107361 0.900269\n0.831299 0.108978 0.899841\n0.854584 0.110718 0.899384\n0.875732 0.112427 0.898956\n0.894897 0.114136 0.898529\n0.912384 0.115875 0.898071\n0.928284 0.117615 0.897644\n0.942719 0.119385 0.897186\n0.955841 0.121155 0.896759\n0.967621 0.122955 0.896332\n0.054047 0.100677 0.908142\n0.076782 0.101929 0.907806\n0.100555 0.103271 0.907471\n0.125519 0.104645 0.907135\n0.151703 0.105988 0.906769\n0.179382 0.107391 0.906433\n0.208679 0.108856 0.906006\n0.239746 0.110291 0.905640\n0.272827 0.111755 0.905273\n0.308044 0.113220 0.904907\n0.345459 0.114746 0.904510\n0.384796 0.116364 0.904053\n0.425781 0.117889 0.903687\n0.468201 0.119476 0.903290\n0.511841 0.121124 0.902863\n0.556030 0.122742 0.902405\n0.599213 0.124420 0.902008\n0.640594 0.126129 0.901581\n0.679688 0.127808 0.901184\n0.716370 0.129517 0.900696\n0.750183 0.131226 0.900269\n0.781067 0.132965 0.899872\n0.809021 0.134766 0.899414\n0.834290 0.136536 0.898987\n0.857300 0.138367 0.898529\n0.878204 0.140167 0.898102\n0.897156 0.141998 0.897675\n0.914459 0.143860 0.897217\n0.930206 0.145721 0.896759\n0.944458 0.147583 0.896362\n0.957367 0.149475 0.895905\n0.968994 0.151337 0.895538\n0.056244 0.127014 0.907501\n0.079071 0.128418 0.907135\n0.102997 0.129852 0.906799\n0.128143 0.131348 0.906433\n0.154510 0.132782 0.906036\n0.182404 0.134338 0.905640\n0.211945 0.135895 0.905273\n0.243225 0.137421 0.904907\n0.276611 0.139038 0.904510\n0.312164 0.140656 0.904083\n0.349792 0.142334 0.903687\n0.389343 0.144012 0.903290\n0.430511 0.145660 0.902863\n0.473236 0.147369 0.902435\n0.517059 0.149170 0.902008\n0.561157 0.150909 0.901581\n0.604248 0.152649 0.901184\n0.645416 0.154480 0.900696\n0.684265 0.156281 0.900299\n0.720642 0.158173 0.899872\n0.754089 0.159973 0.899445\n0.784668 0.161865 0.898987\n0.812256 0.163788 0.898560\n0.837280 0.165680 0.898132\n0.859985 0.167633 0.897705\n0.880676 0.169556 0.897217\n0.899445 0.171478 0.896790\n0.916534 0.173492 0.896393\n0.932068 0.175507 0.895935\n0.946167 0.177429 0.895538\n0.958923 0.179474 0.895050\n0.970398 0.181488 0.894684\n0.058502 0.154877 0.906799\n0.081482 0.156342 0.906433\n0.105591 0.157928 0.906036\n0.130859 0.159546 0.905670\n0.157471 0.161163 0.905304\n0.185516 0.162842 0.904907\n0.215240 0.164490 0.904541\n0.246826 0.166168 0.904114\n0.280487 0.167969 0.903717\n0.316315 0.169678 0.903290\n0.354279 0.171478 0.902893\n0.394073 0.173309 0.902435\n0.435486 0.175110 0.902008\n0.478363 0.176941 0.901611\n0.522308 0.178864 0.901184\n0.566437 0.180725 0.900757\n0.609314 0.182648 0.900330\n0.650208 0.184570 0.899872\n0.688873 0.186523 0.899445\n0.724915 0.188538 0.899017\n0.758026 0.190491 0.898560\n0.788208 0.192535 0.898132\n0.815552 0.194580 0.897705\n0.840240 0.196594 0.897247\n0.862701 0.198700 0.896820\n0.883118 0.200775 0.896393\n0.901672 0.202820 0.895966\n0.918549 0.204956 0.895538\n0.933899 0.207031 0.895081\n0.947845 0.209198 0.894684\n0.960449 0.211365 0.894257\n0.971771 0.213501 0.893860\n0.060852 0.184418 0.906067\n0.083984 0.186066 0.905701\n0.108246 0.187805 0.905334\n0.133698 0.189575 0.904938\n0.160461 0.191254 0.904541\n0.188751 0.193085 0.904114\n0.218719 0.194916 0.903717\n0.250549 0.196777 0.903320\n0.284515 0.198700 0.902893\n0.320618 0.200500 0.902466\n0.358795 0.202484 0.902039\n0.398834 0.204437 0.901611\n0.440521 0.206390 0.901215\n0.483582 0.208405 0.900757\n0.527649 0.210449 0.900330\n0.571655 0.212463 0.899902\n0.614410 0.214569 0.899475\n0.655090 0.216614 0.899017\n0.693420 0.218750 0.898590\n0.729187 0.220856 0.898163\n0.761963 0.222961 0.897705\n0.791748 0.225159 0.897278\n0.818756 0.227386 0.896820\n0.843170 0.229523 0.896393\n0.865387 0.231781 0.895966\n0.885559 0.234070 0.895538\n0.903870 0.236237 0.895111\n0.920593 0.238525 0.894684\n0.935730 0.240753 0.894287\n0.949524 0.243073 0.893860\n0.961945 0.245392 0.893463\n0.973083 0.247620 0.893066\n0.063293 0.215912 0.905334\n0.086548 0.217682 0.904968\n0.110962 0.219574 0.904541\n0.136597 0.221466 0.904144\n0.163574 0.223389 0.903717\n0.192078 0.225372 0.903320\n0.222260 0.227325 0.902924\n0.254364 0.229370 0.902496\n0.288605 0.231415 0.902039\n0.325012 0.233429 0.901642\n0.363495 0.235535 0.901215\n0.403809 0.237701 0.900787\n0.445618 0.239807 0.900330\n0.488800 0.242004 0.899902\n0.532990 0.244141 0.899475\n0.576965 0.246368 0.899017\n0.619568 0.248627 0.898590\n0.659912 0.250824 0.898163\n0.698059 0.253113 0.897705\n0.733398 0.255463 0.897278\n0.765869 0.257751 0.896851\n0.795319 0.260101 0.896393\n0.821960 0.262421 0.895996\n0.846130 0.264801 0.895569\n0.868042 0.267212 0.895111\n0.887939 0.269531 0.894714\n0.906097 0.271973 0.894287\n0.922607 0.274414 0.893860\n0.937561 0.276855 0.893463\n0.951172 0.279297 0.893066\n0.963409 0.281799 0.892670\n0.974426 0.284241 0.892273\n0.065765 0.249512 0.904541\n0.089203 0.251495 0.904144\n0.113800 0.253601 0.903748\n0.139557 0.255646 0.903320\n0.166718 0.257751 0.902954\n0.195465 0.259888 0.902496\n0.225891 0.262054 0.902069\n0.258270 0.264221 0.901642\n0.292847 0.266479 0.901245\n0.329498 0.268677 0.900787\n0.368195 0.270966 0.900360\n0.408783 0.273315 0.899933\n0.450775 0.275604 0.899475\n0.494263 0.277924 0.899048\n0.538483 0.280304 0.898621\n0.582367 0.282684 0.898163\n0.624695 0.285156 0.897736\n0.664825 0.287537 0.897278\n0.702606 0.290009 0.896851\n0.737671 0.292511 0.896393\n0.769714 0.294952 0.895996\n0.798828 0.297485 0.895569\n0.825165 0.300018 0.895142\n0.848999 0.302521 0.894714\n0.870667 0.305145 0.894318\n0.890350 0.307648 0.893890\n0.908264 0.310242 0.893494\n0.924561 0.312897 0.893097\n0.939331 0.315460 0.892700\n0.952789 0.318054 0.892273\n0.964844 0.320709 0.891907\n0.975708 0.323334 0.891541\n0.068359 0.285553 0.903778\n0.091949 0.287781 0.903351\n0.116669 0.290009 0.902954\n0.142609 0.292236 0.902496\n0.170013 0.294617 0.902100\n0.198975 0.296906 0.901642\n0.229675 0.299194 0.901245\n0.262299 0.301636 0.900787\n0.297180 0.304047 0.900360\n0.334076 0.306488 0.899963\n0.373047 0.308929 0.899475\n0.413727 0.311371 0.899078\n0.456116 0.313904 0.898651\n0.499695 0.316498 0.898163\n0.543976 0.318970 0.897766\n0.587708 0.321625 0.897308\n0.629822 0.324219 0.896851\n0.669739 0.326752 0.896454\n0.707184 0.329437 0.895996\n0.741882 0.332123 0.895569\n0.773560 0.334686 0.895172\n0.802277 0.337402 0.894745\n0.828278 0.340088 0.894318\n0.851837 0.342804 0.893921\n0.873260 0.345551 0.893494\n0.892731 0.348206 0.893097\n0.910431 0.350983 0.892700\n0.926514 0.353729 0.892303\n0.941132 0.356445 0.891907\n0.954376 0.359253 0.891541\n0.966309 0.361969 0.891174\n0.976990 0.364716 0.890808\n0.070984 0.324158 0.902985\n0.094757 0.326569 0.902527\n0.119629 0.328979 0.902100\n0.145782 0.331421 0.901703\n0.173370 0.333893 0.901276\n0.202545 0.336456 0.900787\n0.233490 0.338959 0.900421\n0.266388 0.341553 0.899963\n0.301575 0.344147 0.899506\n0.338776 0.346680 0.899078\n0.378021 0.349365 0.898651\n0.418945 0.351990 0.898193\n0.461426 0.354645 0.897766\n0.505188 0.357391 0.897339\n0.549500 0.360077 0.896881\n0.593109 0.362823 0.896454\n0.634979 0.365631 0.896027\n0.674622 0.368347 0.895599\n0.711731 0.371155 0.895172\n0.746094 0.373993 0.894745\n0.777313 0.376740 0.894348\n0.805695 0.379578 0.893921\n0.831390 0.382385 0.893524\n0.854675 0.385254 0.893097\n0.875854 0.388153 0.892700\n0.895050 0.390930 0.892334\n0.912537 0.393860 0.891907\n0.928436 0.396759 0.891571\n0.942871 0.399567 0.891174\n0.955933 0.402496 0.890808\n0.967712 0.405365 0.890442\n0.978241 0.408234 0.890137\n0.073700 0.365143 0.902130\n0.097595 0.367737 0.901703\n0.122681 0.370300 0.901276\n0.149017 0.372955 0.900818\n0.176788 0.375549 0.900421\n0.206177 0.378265 0.899963\n0.237366 0.380920 0.899536\n0.270599 0.383698 0.899109\n0.306000 0.386383 0.898651\n0.343536 0.389160 0.898224\n0.382965 0.391998 0.897797\n0.424164 0.394775 0.897369\n0.466888 0.397583 0.896881\n0.510742 0.400513 0.896484\n0.555115 0.403351 0.896057\n0.598511 0.406250 0.895630\n0.640106 0.409149 0.895203\n0.679413 0.412048 0.894775\n0.716217 0.415009 0.894348\n0.750183 0.417938 0.893921\n0.781097 0.420807 0.893524\n0.809113 0.423828 0.893127\n0.834473 0.426697 0.892731\n0.857452 0.429718 0.892334\n0.878357 0.432739 0.891907\n0.897339 0.435638 0.891571\n0.914642 0.438629 0.891174\n0.930298 0.441650 0.890808\n0.944580 0.444580 0.890472\n0.957458 0.447510 0.890137\n0.969086 0.450562 0.889801\n0.979431 0.453461 0.889679\n0.076477 0.408264 0.901276\n0.100555 0.410950 0.900818\n0.125793 0.413727 0.900421\n0.152283 0.416504 0.899963\n0.180267 0.419342 0.899536\n0.209930 0.422180 0.899109\n0.241333 0.424988 0.898651\n0.274872 0.427856 0.898224\n0.310486 0.430695 0.897797\n0.348328 0.433655 0.897369\n0.388062 0.436615 0.896912\n0.429443 0.439545 0.896484\n0.472351 0.442505 0.896057\n0.516296 0.445496 0.895630\n0.560638 0.448456 0.895203\n0.603882 0.451477 0.894775\n0.645264 0.454529 0.894379\n0.684204 0.457520 0.893921\n0.720673 0.460571 0.893555\n0.754242 0.463593 0.893127\n0.784790 0.466644 0.892761\n0.812469 0.469696 0.892334\n0.837494 0.472717 0.891937\n0.860229 0.475830 0.891571\n0.880859 0.478882 0.891174\n0.899567 0.481873 0.890839\n0.916687 0.484985 0.890503\n0.932190 0.488037 0.890137\n0.946228 0.491058 0.889801\n0.958954 0.494110 0.889679\n0.970428 0.497101 0.889679\n0.980652 0.500122 0.889679\n0.079315 0.453217 0.900421\n0.103516 0.456116 0.899994\n0.128937 0.459015 0.899567\n0.155640 0.461884 0.899109\n0.183838 0.464844 0.898651\n0.213654 0.467773 0.898254\n0.245392 0.470795 0.897797\n0.279175 0.473785 0.897369\n0.315125 0.476776 0.896942\n0.353210 0.479797 0.896484\n0.393188 0.482880 0.896057\n0.434784 0.485870 0.895630\n0.477814 0.488953 0.895203\n0.521942 0.492065 0.894775\n0.566254 0.495117 0.894409\n0.609222 0.498291 0.893921\n0.650330 0.501343 0.893555\n0.688995 0.504395 0.893127\n0.725098 0.507568 0.892761\n0.758301 0.510620 0.892365\n0.788452 0.513733 0.891937\n0.815765 0.516907 0.891571\n0.840454 0.519958 0.891205\n0.862885 0.523071 0.890869\n0.883270 0.526215 0.890503\n0.901825 0.529297 0.890167\n0.918640 0.532410 0.889832\n0.933990 0.535522 0.889679\n0.947876 0.538574 0.889679\n0.960449 0.541595 0.889679\n0.971710 0.544617 0.889679\n0.981781 0.547638 0.889679\n0.082214 0.499695 0.899567\n0.106567 0.502747 0.899139\n0.132172 0.505737 0.898682\n0.159027 0.508728 0.898254\n0.187439 0.511780 0.897827\n0.217529 0.514801 0.897400\n0.249481 0.517883 0.896942\n0.283539 0.520996 0.896515\n0.319824 0.524048 0.896088\n0.358185 0.527191 0.895660\n0.398315 0.530334 0.895233\n0.440155 0.533417 0.894806\n0.483368 0.536591 0.894409\n0.527557 0.539703 0.893951\n0.571716 0.542816 0.893585\n0.614471 0.545959 0.893158\n0.655304 0.549042 0.892761\n0.693726 0.552155 0.892365\n0.729431 0.555298 0.891937\n0.762238 0.558289 0.891602\n0.792023 0.561432 0.891235\n0.819000 0.564545 0.890869\n0.843384 0.567535 0.890503\n0.865570 0.570618 0.890167\n0.885712 0.573639 0.889832\n0.903961 0.576630 0.889679\n0.920624 0.579559 0.889679\n0.935730 0.582520 0.889679\n0.949463 0.585510 0.889679\n0.961853 0.588470 0.889679\n0.972992 0.591309 0.889679\n0.982910 0.594177 0.889679\n0.085114 0.547272 0.898712\n0.109650 0.550293 0.898254\n0.135406 0.553345 0.897827\n0.162476 0.556305 0.897400\n0.191101 0.559387 0.896942\n0.221405 0.562408 0.896545\n0.253662 0.565491 0.896118\n0.288055 0.568512 0.895660\n0.324524 0.571564 0.895233\n0.363159 0.574615 0.894806\n0.403595 0.577728 0.894409\n0.445587 0.580719 0.893982\n0.488922 0.583740 0.893585\n0.533264 0.586823 0.893158\n0.577240 0.589783 0.892761\n0.619812 0.592834 0.892365\n0.660370 0.595856 0.891968\n0.698364 0.598816 0.891602\n0.733734 0.601807 0.891235\n0.766113 0.604736 0.890900\n0.795532 0.607697 0.890503\n0.822144 0.610657 0.890198\n0.846252 0.613525 0.889862\n0.868164 0.616425 0.889679\n0.888031 0.619354 0.889679\n0.906097 0.622131 0.889679\n0.922577 0.624969 0.889679\n0.937500 0.627808 0.889679\n0.951019 0.630493 0.889679\n0.963257 0.633331 0.889679\n0.974213 0.635986 0.889679\n0.983978 0.638672 0.889679\n0.088135 0.593872 0.897858\n0.112793 0.596832 0.897430\n0.138733 0.599823 0.896942\n0.165985 0.602692 0.896545\n0.194855 0.605713 0.896118\n0.225372 0.608582 0.895691\n0.257874 0.611542 0.895233\n0.292511 0.614471 0.894836\n0.329315 0.617371 0.894409\n0.368164 0.620300 0.894012\n0.408813 0.623260 0.893585\n0.450989 0.626129 0.893188\n0.494446 0.629028 0.892792\n0.538879 0.631958 0.892395\n0.582733 0.634796 0.891998\n0.625000 0.637665 0.891602\n0.665161 0.640503 0.891235\n0.702972 0.643372 0.890900\n0.737946 0.646149 0.890503\n0.769958 0.648895 0.890198\n0.798981 0.651703 0.889862\n0.825256 0.654510 0.889679\n0.849060 0.657166 0.889679\n0.870667 0.659882 0.889679\n0.890320 0.662598 0.889679\n0.908173 0.665161 0.889679\n0.924408 0.667847 0.889679\n0.939148 0.670410 0.889679\n0.952545 0.673004 0.889679\n0.964600 0.675598 0.889679\n0.975403 0.678040 0.889679\n0.985046 0.680573 0.889679\n0.091156 0.638580 0.896973\n0.115997 0.641388 0.896545\n0.142059 0.644165 0.896149\n0.169525 0.647034 0.895721\n0.198639 0.649872 0.895264\n0.229370 0.652588 0.894867\n0.262146 0.655396 0.894409\n0.297089 0.658173 0.894012\n0.334167 0.660950 0.893585\n0.373230 0.663696 0.893219\n0.414124 0.666443 0.892792\n0.456421 0.669159 0.892426\n0.500000 0.671936 0.891998\n0.544403 0.674591 0.891632\n0.588196 0.677246 0.891235\n0.630188 0.679932 0.890900\n0.670044 0.682587 0.890533\n0.707428 0.685242 0.890228\n0.742096 0.687866 0.889862\n0.773712 0.690399 0.889679\n0.802368 0.692963 0.889679\n0.828308 0.695557 0.889679\n0.851776 0.698059 0.889679\n0.873169 0.700562 0.889679\n0.892578 0.703033 0.889679\n0.910187 0.705414 0.889679\n0.926239 0.707855 0.889679\n0.940796 0.710205 0.889679\n0.954010 0.712585 0.889679\n0.965912 0.714905 0.889679\n0.976562 0.717133 0.889679\n0.986053 0.719452 0.889679\n0.094208 0.680756 0.896149\n0.119232 0.683441 0.895721\n0.145416 0.686035 0.895294\n0.173096 0.688721 0.894867\n0.202393 0.691376 0.894440\n0.233398 0.693909 0.894043\n0.266418 0.696533 0.893616\n0.301666 0.699158 0.893219\n0.338959 0.701691 0.892792\n0.378265 0.704254 0.892426\n0.419342 0.706818 0.892029\n0.461823 0.709320 0.891663\n0.505585 0.711853 0.891266\n0.549957 0.714294 0.890900\n0.593506 0.716827 0.890564\n0.635254 0.719269 0.890228\n0.674896 0.721649 0.889893\n0.711884 0.724060 0.889679\n0.746155 0.726471 0.889679\n0.777344 0.728821 0.889679\n0.805634 0.731232 0.889679\n0.831268 0.733521 0.889679\n0.854462 0.735779 0.889679\n0.875549 0.738068 0.889679\n0.894714 0.740234 0.889679\n0.912140 0.742462 0.889679\n0.928009 0.744659 0.889679\n0.942352 0.746765 0.889679\n0.955414 0.748871 0.889679\n0.967194 0.750977 0.889679\n0.977692 0.753021 0.889679\n0.987030 0.755035 0.889679\n0.097290 0.720001 0.895294\n0.122467 0.722504 0.894867\n0.148865 0.724884 0.894470\n0.176727 0.727356 0.894043\n0.206207 0.729797 0.893646\n0.237457 0.732178 0.893250\n0.270782 0.734558 0.892822\n0.306305 0.736969 0.892426\n0.343811 0.739288 0.892029\n0.383392 0.741608 0.891663\n0.424591 0.743927 0.891266\n0.467255 0.746246 0.890900\n0.511108 0.748505 0.890564\n0.555481 0.750763 0.890228\n0.598755 0.753052 0.889893\n0.640289 0.755249 0.889679\n0.679535 0.757446 0.889679\n0.716248 0.759644 0.889679\n0.750122 0.761780 0.889679\n0.780945 0.763916 0.889679\n0.808868 0.765991 0.889679\n0.834167 0.768097 0.889679\n0.857056 0.770081 0.889679\n0.877930 0.772156 0.889679\n0.896820 0.774078 0.889679\n0.914032 0.776062 0.889679\n0.929749 0.778015 0.889679\n0.943939 0.779846 0.889679\n0.956818 0.781769 0.889679\n0.968414 0.783600 0.889679\n0.978790 0.785370 0.889679\n0.987976 0.787170 0.889679\n0.100403 0.756012 0.894470\n0.125732 0.758270 0.894073\n0.152313 0.760437 0.893646\n0.180389 0.762665 0.893280\n0.210083 0.764862 0.892822\n0.241547 0.767029 0.892456\n0.275146 0.769226 0.892029\n0.310913 0.771362 0.891663\n0.348724 0.773468 0.891266\n0.388428 0.775574 0.890930\n0.429810 0.777588 0.890564\n0.472656 0.779694 0.890228\n0.516602 0.781769 0.889893\n0.560852 0.783752 0.889679\n0.604004 0.785797 0.889679\n0.645203 0.787781 0.889679\n0.684143 0.789703 0.889679\n0.720490 0.791656 0.889679\n0.753967 0.793579 0.889679\n0.784424 0.795471 0.889679\n0.812012 0.797333 0.889679\n0.836945 0.799103 0.889679\n0.859619 0.800964 0.889679\n0.880188 0.802734 0.889679\n0.898865 0.804443 0.889679\n0.915924 0.806183 0.889679\n0.931366 0.807892 0.889679\n0.945435 0.809570 0.889679\n0.958130 0.811218 0.889679\n0.969574 0.812897 0.889679\n0.979828 0.814453 0.889679\n0.988861 0.816010 0.889679\n0.103546 0.788483 0.893646\n0.129028 0.790558 0.893280\n0.155792 0.792511 0.892853\n0.184021 0.794495 0.892456\n0.213928 0.796509 0.892029\n0.245636 0.798431 0.891693\n0.279480 0.800323 0.891296\n0.315491 0.802246 0.890961\n0.353577 0.804169 0.890564\n0.393555 0.806091 0.890228\n0.435028 0.807861 0.889923\n0.478058 0.809784 0.889679\n0.522095 0.811615 0.889679\n0.566254 0.813354 0.889679\n0.609100 0.815186 0.889679\n0.650085 0.816956 0.889679\n0.688690 0.818665 0.889679\n0.724609 0.820374 0.889679\n0.757751 0.822083 0.889679\n0.787811 0.823761 0.889679\n0.815002 0.825409 0.889679\n0.839661 0.826996 0.889679\n0.862061 0.828644 0.889679\n0.882385 0.830231 0.889679\n0.900848 0.831757 0.889679\n0.917694 0.833313 0.889679\n0.932983 0.834808 0.889679\n0.946838 0.836273 0.889679\n0.959412 0.837738 0.889679\n0.970734 0.839203 0.889679\n0.980804 0.840576 0.889679\n0.989716 0.841919 0.889679\n0.106720 0.817719 0.892883\n0.132324 0.819550 0.892487\n0.159241 0.821350 0.892059\n0.187744 0.823120 0.891693\n0.217804 0.824890 0.891296\n0.249786 0.826599 0.890961\n0.283875 0.828369 0.890594\n0.320099 0.830078 0.890259\n0.358429 0.831757 0.889923\n0.398590 0.833466 0.889679\n0.440277 0.835114 0.889679\n0.483429 0.836761 0.889679\n0.527496 0.838409 0.889679\n0.571564 0.839996 0.889679\n0.614166 0.841614 0.889679\n0.654816 0.843170 0.889679\n0.693054 0.844666 0.889679\n0.728668 0.846252 0.889679\n0.761353 0.847717 0.889679\n0.791046 0.849213 0.889679\n0.817963 0.850708 0.889679\n0.842316 0.852112 0.889679\n0.864441 0.853546 0.889679\n0.884521 0.854950 0.889679\n0.902802 0.856293 0.889679\n0.919434 0.857666 0.889679\n0.934540 0.859009 0.889679\n0.948242 0.860291 0.889679\n0.960632 0.861572 0.889679\n0.971771 0.862823 0.889679\n0.981750 0.864075 0.889679\n0.990540 0.865265 0.889679\n0.109863 0.843994 0.892090\n0.135651 0.845612 0.891724\n0.162720 0.847260 0.891327\n0.191376 0.848877 0.890961\n0.221680 0.850403 0.890625\n0.253906 0.851959 0.890259\n0.288269 0.853577 0.889954\n0.324738 0.855042 0.889679\n0.363281 0.856598 0.889679\n0.403656 0.858124 0.889679\n0.445465 0.859589 0.889679\n0.488678 0.861084 0.889679\n0.532837 0.862518 0.889679\n0.576691 0.863953 0.889679\n0.619080 0.865356 0.889679\n0.659363 0.866760 0.889679\n0.697357 0.868134 0.889679\n0.732605 0.869507 0.889679\n0.764893 0.870850 0.889679\n0.794281 0.872131 0.889679\n0.820801 0.873444 0.889679\n0.844849 0.874695 0.889679\n0.866730 0.875977 0.889679\n0.886597 0.877258 0.889679\n0.904633 0.878418 0.889679\n0.921082 0.879639 0.889679\n0.936035 0.880798 0.889679\n0.949554 0.881958 0.889679\n0.961823 0.883057 0.889679\n0.972839 0.884186 0.889679\n0.982635 0.885284 0.889679\n0.991333 0.886322 0.889679\n0.113037 0.867676 0.891327\n0.139008 0.869141 0.890991\n0.166199 0.870605 0.890625\n0.195068 0.872040 0.890259\n0.225616 0.873444 0.889954\n0.258057 0.874817 0.889679\n0.292633 0.876282 0.889679\n0.329376 0.877594 0.889679\n0.368103 0.878967 0.889679\n0.408600 0.880310 0.889679\n0.450592 0.881653 0.889679\n0.493927 0.882965 0.889679\n0.538147 0.884277 0.889679\n0.581757 0.885529 0.889679\n0.623901 0.886810 0.889679\n0.663910 0.888031 0.889679\n0.701538 0.889252 0.889679\n0.736420 0.890472 0.889679\n0.768341 0.891663 0.889679\n0.797333 0.892822 0.889679\n0.823578 0.893982 0.889679\n0.847321 0.895081 0.889679\n0.868927 0.896240 0.889679\n0.888580 0.897339 0.889679\n0.906433 0.898376 0.889679\n0.922668 0.899445 0.889679\n0.937408 0.900452 0.889679\n0.950806 0.901489 0.889679\n0.962952 0.902466 0.889679\n0.973816 0.903442 0.889679\n0.983490 0.904388 0.889679\n0.992035 0.905334 0.889679\n0.116241 0.889069 0.890656\n0.142334 0.890381 0.890289\n0.169739 0.891632 0.889954\n0.198761 0.892914 0.889679\n0.229462 0.894226 0.889679\n0.262177 0.895477 0.889679\n0.296997 0.896698 0.889679\n0.333893 0.897919 0.889679\n0.372864 0.899139 0.889679\n0.413513 0.900391 0.889679\n0.455688 0.901550 0.889679\n0.499054 0.902710 0.889679\n0.543182 0.903839 0.889679\n0.586700 0.904999 0.889679\n0.628571 0.906097 0.889679\n0.668274 0.907227 0.889679\n0.705597 0.908295 0.889679\n0.740143 0.909424 0.889679\n0.771667 0.910431 0.889679\n0.800262 0.911469 0.889679\n0.826202 0.912506 0.889679\n0.849701 0.913483 0.889679\n0.871063 0.914520 0.889679\n0.890472 0.915466 0.889679\n0.908112 0.916412 0.889679\n0.924194 0.917358 0.889679\n0.938782 0.918213 0.889679\n0.952057 0.919098 0.889679\n0.964020 0.919983 0.889679\n0.974762 0.920807 0.889679\n0.984344 0.921661 0.889679\n0.992737 0.922485 0.889679\n0.119385 0.908295 0.889984\n0.145569 0.909454 0.889679\n0.173248 0.910645 0.889679\n0.202423 0.911804 0.889679\n0.233337 0.912933 0.889679\n0.266296 0.914032 0.889679\n0.301331 0.915222 0.889679\n0.338501 0.916290 0.889679\n0.377625 0.917389 0.889679\n0.418457 0.918427 0.889679\n0.460632 0.919495 0.889679\n0.504120 0.920532 0.889679\n0.548218 0.921539 0.889679\n0.591583 0.922607 0.889679\n0.633148 0.923553 0.889679\n0.672516 0.924530 0.889679\n0.709503 0.925537 0.889679\n0.743652 0.926483 0.889679\n0.774872 0.927399 0.889679\n0.803192 0.928314 0.889679\n0.828766 0.929230 0.889679\n0.851959 0.930115 0.889679\n0.873108 0.930969 0.889679\n0.892242 0.931793 0.889679\n0.909760 0.932648 0.889679\n0.925659 0.933441 0.889679\n0.940063 0.934235 0.889679\n0.953186 0.934998 0.889679\n0.965027 0.935760 0.889679\n0.975616 0.936493 0.889679\n0.985077 0.937225 0.889679\n0.993378 0.937927 0.889679\n0.122559 0.925720 0.889679\n0.148895 0.926727 0.889679\n0.176697 0.927795 0.889679\n0.206055 0.928833 0.889679\n0.237183 0.929840 0.889679\n0.270355 0.930847 0.889679\n0.305634 0.931824 0.889679\n0.342987 0.932831 0.889679\n0.382324 0.933807 0.889679\n0.423248 0.934753 0.889679\n0.465607 0.935669 0.889679\n0.509155 0.936646 0.889679\n0.553223 0.937531 0.889679\n0.596283 0.938416 0.889679\n0.637573 0.939301 0.889679\n0.676636 0.940155 0.889679\n0.713287 0.941040 0.889679\n0.747101 0.941864 0.889679\n0.777954 0.942657 0.889679\n0.805908 0.943481 0.889679\n0.831207 0.944275 0.889679\n0.854156 0.945007 0.889679\n0.875031 0.945801 0.889679\n0.894012 0.946533 0.889679\n0.911285 0.947266 0.889679\n0.927063 0.947968 0.889679\n0.941284 0.948639 0.889679\n0.954285 0.949310 0.889679\n0.965973 0.949982 0.889679\n0.976471 0.950623 0.889679\n0.985809 0.951233 0.889679\n0.993988 0.951874 0.889679\n0.125702 0.941376 0.889679\n0.152191 0.942291 0.889679\n0.180115 0.943237 0.889679\n0.209717 0.944153 0.889679\n0.241028 0.945068 0.889679\n0.274384 0.945953 0.889679\n0.309937 0.946838 0.889679\n0.347443 0.947693 0.889679\n0.386902 0.948578 0.889679\n0.427948 0.949402 0.889679\n0.470428 0.950226 0.889679\n0.513947 0.951080 0.889679\n0.557953 0.951843 0.889679\n0.600830 0.952667 0.889679\n0.641846 0.953430 0.889679\n0.680634 0.954193 0.889679\n0.716919 0.954956 0.889679\n0.750397 0.955688 0.889679\n0.780853 0.956390 0.889679\n0.808472 0.957092 0.889679\n0.833496 0.957794 0.889679\n0.856262 0.958435 0.889679\n0.876862 0.959106 0.889679\n0.895660 0.959747 0.889679\n0.912750 0.960388 0.889679\n0.928314 0.960999 0.889679\n0.942444 0.961578 0.889679\n0.955292 0.962158 0.889679\n0.966858 0.962738 0.889679\n0.977234 0.963287 0.889679\n0.986481 0.963806 0.889679\n0.994537 0.964325 0.889679\n0.128815 0.955444 0.889679\n0.155426 0.956299 0.889679\n0.183563 0.957123 0.889679\n0.213318 0.957947 0.889679\n0.244781 0.958710 0.889679\n0.278381 0.959534 0.889679\n0.314087 0.960327 0.889679\n0.351868 0.961090 0.889679\n0.391418 0.961823 0.889679\n0.432587 0.962555 0.889679\n0.475159 0.963287 0.889679\n0.518799 0.964020 0.889679\n0.562622 0.964691 0.889679\n0.605225 0.965393 0.889679\n0.645996 0.966064 0.889679\n0.684479 0.966736 0.889679\n0.720459 0.967377 0.889679\n0.753540 0.968018 0.889679\n0.783691 0.968628 0.889679\n0.810974 0.969238 0.889679\n0.835724 0.969818 0.889679\n0.858215 0.970428 0.889679\n0.878632 0.971008 0.889679\n0.897217 0.971558 0.889679\n0.914154 0.972076 0.889679\n0.929596 0.972595 0.889679\n0.943542 0.973114 0.889679\n0.956268 0.973633 0.889679\n0.967712 0.974091 0.889679\n0.977966 0.974548 0.889679\n0.987091 0.975006 0.889679\n0.995056 0.975464 0.889679\n0.131897 0.968048 0.889679\n0.158661 0.968781 0.889679\n0.186920 0.969513 0.889679\n0.216827 0.970245 0.889679\n0.248566 0.970917 0.889679\n0.282349 0.971619 0.889679\n0.318176 0.972290 0.889679\n0.356140 0.972961 0.889679\n0.395874 0.973633 0.889679\n0.437134 0.974243 0.889679\n0.479767 0.974915 0.889679\n0.523407 0.975525 0.889679\n0.567139 0.976105 0.889679\n0.609497 0.976715 0.889679\n0.649963 0.977295 0.889679\n0.688171 0.977875 0.889679\n0.723785 0.978424 0.889679\n0.756592 0.978973 0.889679\n0.786377 0.979523 0.889679\n0.813354 0.980042 0.889679\n0.837860 0.980530 0.889679\n0.860077 0.981018 0.889679\n0.880310 0.981506 0.889679\n0.898712 0.981995 0.889679\n0.915497 0.982452 0.889679\n0.930725 0.982910 0.889679\n0.944580 0.983307 0.889679\n0.957153 0.983734 0.889679\n0.968475 0.984131 0.889679\n0.978668 0.984528 0.889679\n0.987640 0.984894 0.889679\n0.995544 0.985260 0.889679\n0.046631 0.007965 0.925446\n0.068848 0.008881 0.925171\n0.092102 0.009857 0.924957\n0.116425 0.010803 0.924713\n0.141998 0.011810 0.924438\n0.168945 0.012817 0.924164\n0.197388 0.013855 0.923889\n0.227509 0.014923 0.923584\n0.259613 0.016022 0.923279\n0.293854 0.017120 0.923004\n0.330170 0.018280 0.922668\n0.368500 0.019440 0.922363\n0.408600 0.020599 0.922028\n0.450348 0.021851 0.921692\n0.493225 0.023010 0.921356\n0.537170 0.024292 0.920990\n0.580750 0.025543 0.920624\n0.622681 0.026825 0.920258\n0.662720 0.028137 0.919922\n0.700378 0.029480 0.919525\n0.735382 0.030823 0.919159\n0.767487 0.032166 0.918793\n0.796600 0.033508 0.918396\n0.822998 0.034912 0.918030\n0.846985 0.036346 0.917633\n0.868744 0.037750 0.917267\n0.888519 0.039154 0.916870\n0.906586 0.040649 0.916443\n0.922943 0.042114 0.916077\n0.937897 0.043610 0.915680\n0.951416 0.045105 0.915253\n0.963593 0.046600 0.914886\n0.048431 0.029633 0.924988\n0.070801 0.030670 0.924713\n0.094177 0.031708 0.924438\n0.118652 0.032715 0.924164\n0.144379 0.033844 0.923889\n0.171509 0.034943 0.923584\n0.200134 0.036041 0.923279\n0.230560 0.037201 0.923004\n0.262909 0.038391 0.922699\n0.297363 0.039581 0.922363\n0.334015 0.040833 0.922028\n0.372589 0.042053 0.921722\n0.412933 0.043304 0.921356\n0.454803 0.044647 0.920990\n0.497894 0.045929 0.920654\n0.541962 0.047302 0.920288\n0.585480 0.048676 0.919922\n0.627289 0.050018 0.919556\n0.667114 0.051361 0.919159\n0.704529 0.052826 0.918793\n0.739227 0.054230 0.918427\n0.771027 0.055664 0.918030\n0.799805 0.057129 0.917664\n0.825958 0.058594 0.917267\n0.849670 0.060120 0.916870\n0.871185 0.061615 0.916473\n0.890808 0.063202 0.916077\n0.908630 0.064697 0.915680\n0.924866 0.066254 0.915283\n0.939606 0.067841 0.914886\n0.953003 0.069397 0.914459\n0.965027 0.070984 0.914032\n0.050323 0.052338 0.924438\n0.072815 0.053406 0.924164\n0.096344 0.054565 0.923889\n0.120972 0.055664 0.923615\n0.146912 0.056885 0.923309\n0.174225 0.058075 0.923004\n0.203064 0.059296 0.922729\n0.233734 0.060577 0.922394\n0.266296 0.061798 0.922058\n0.301056 0.063141 0.921722\n0.337952 0.064453 0.921387\n0.376740 0.065765 0.921021\n0.417389 0.067139 0.920654\n0.459442 0.068542 0.920288\n0.502777 0.069916 0.919952\n0.546906 0.071381 0.919556\n0.590302 0.072815 0.919159\n0.631927 0.074310 0.918823\n0.671570 0.075806 0.918427\n0.708679 0.077271 0.918060\n0.743134 0.078827 0.917694\n0.774597 0.080383 0.917267\n0.803070 0.081879 0.916901\n0.828918 0.083496 0.916504\n0.852386 0.085083 0.916077\n0.873688 0.086670 0.915710\n0.893097 0.088348 0.915283\n0.910706 0.089966 0.914886\n0.926758 0.091583 0.914490\n0.941315 0.093292 0.914032\n0.954529 0.094910 0.913666\n0.966431 0.096619 0.913269\n0.052368 0.076111 0.923920\n0.074982 0.077301 0.923615\n0.098633 0.078552 0.923340\n0.123444 0.079773 0.923004\n0.149506 0.081055 0.922729\n0.176971 0.082336 0.922424\n0.206055 0.083679 0.922089\n0.236969 0.085052 0.921722\n0.269836 0.086395 0.921387\n0.304901 0.087830 0.921021\n0.342072 0.089233 0.920685\n0.381104 0.090698 0.920319\n0.421936 0.092163 0.919952\n0.464264 0.093658 0.919586\n0.507721 0.095154 0.919189\n0.551910 0.096710 0.918823\n0.595184 0.098267 0.918427\n0.636719 0.099792 0.918060\n0.676056 0.101410 0.917694\n0.712891 0.102997 0.917297\n0.747009 0.104645 0.916901\n0.778198 0.106293 0.916504\n0.806335 0.107971 0.916107\n0.831879 0.109619 0.915710\n0.855103 0.111328 0.915314\n0.876190 0.113037 0.914917\n0.895355 0.114746 0.914520\n0.912781 0.116516 0.914062\n0.928619 0.118256 0.913666\n0.943085 0.120026 0.913269\n0.956116 0.121765 0.912872\n0.967834 0.123596 0.912476\n0.054474 0.101135 0.923340\n0.077209 0.102448 0.923035\n0.101013 0.103760 0.922729\n0.125977 0.105103 0.922424\n0.152252 0.106506 0.922089\n0.179932 0.107941 0.921722\n0.209259 0.109375 0.921387\n0.240387 0.110840 0.921051\n0.273499 0.112305 0.920715\n0.308868 0.113831 0.920349\n0.346283 0.115387 0.919952\n0.385620 0.116913 0.919586\n0.426666 0.118500 0.919220\n0.469177 0.120087 0.918823\n0.512787 0.121704 0.918457\n0.557037 0.123383 0.918060\n0.600128 0.125031 0.917694\n0.641449 0.126740 0.917328\n0.680603 0.128448 0.916931\n0.717102 0.130127 0.916534\n0.750916 0.131866 0.916138\n0.781738 0.133667 0.915710\n0.809601 0.135376 0.915314\n0.834869 0.137207 0.914917\n0.857819 0.139008 0.914520\n0.878632 0.140808 0.914093\n0.897614 0.142670 0.913666\n0.914886 0.144501 0.913300\n0.930511 0.146393 0.912903\n0.944763 0.148254 0.912476\n0.957642 0.150177 0.912109\n0.969269 0.152069 0.911743\n0.056641 0.127502 0.922729\n0.079529 0.128937 0.922424\n0.103455 0.130371 0.922089\n0.128662 0.131836 0.921722\n0.155060 0.133392 0.921417\n0.182983 0.134888 0.921051\n0.212524 0.136475 0.920715\n0.243927 0.138031 0.920349\n0.277283 0.139618 0.919983\n0.312927 0.141266 0.919586\n0.350677 0.142944 0.919220\n0.390198 0.144592 0.918854\n0.431488 0.146301 0.918457\n0.474152 0.148010 0.918060\n0.517975 0.149780 0.917725\n0.562225 0.151550 0.917328\n0.605164 0.153320 0.916931\n0.646301 0.155121 0.916534\n0.685181 0.156982 0.916138\n0.721405 0.158813 0.915741\n0.754852 0.160675 0.915344\n0.785309 0.162567 0.914948\n0.812866 0.164459 0.914520\n0.837860 0.166382 0.914124\n0.860535 0.168365 0.913696\n0.881134 0.170258 0.913300\n0.899872 0.172241 0.912903\n0.916901 0.174164 0.912506\n0.932404 0.176178 0.912109\n0.946472 0.178192 0.911743\n0.959167 0.180176 0.911346\n0.970642 0.182220 0.910980\n0.058929 0.155396 0.922089\n0.081970 0.156952 0.921753\n0.106049 0.158508 0.921448\n0.131378 0.160156 0.921082\n0.157990 0.161804 0.920715\n0.186096 0.163422 0.920349\n0.215912 0.165131 0.919983\n0.247498 0.166840 0.919617\n0.281250 0.168549 0.919250\n0.317169 0.170380 0.918854\n0.355103 0.172150 0.918488\n0.394928 0.173950 0.918091\n0.436432 0.175781 0.917725\n0.479279 0.177612 0.917358\n0.523224 0.179535 0.916931\n0.567413 0.181458 0.916534\n0.610229 0.183319 0.916168\n0.651154 0.185272 0.915741\n0.689758 0.187286 0.915344\n0.725677 0.189240 0.914948\n0.758789 0.191223 0.914551\n0.788910 0.193298 0.914124\n0.816101 0.195282 0.913727\n0.840790 0.197388 0.913300\n0.863190 0.199432 0.912933\n0.883575 0.201477 0.912537\n0.902100 0.203644 0.912140\n0.918945 0.205719 0.911743\n0.934265 0.207855 0.911377\n0.948181 0.210022 0.910980\n0.960693 0.212128 0.910583\n0.971985 0.214325 0.910217\n0.061279 0.184998 0.921448\n0.084473 0.186737 0.921082\n0.108704 0.188416 0.920715\n0.134216 0.190186 0.920380\n0.161041 0.191986 0.919983\n0.189331 0.193756 0.919617\n0.219330 0.195587 0.919250\n0.251251 0.197479 0.918884\n0.285248 0.199310 0.918518\n0.321472 0.201263 0.918091\n0.359619 0.203156 0.917755\n0.399750 0.205170 0.917358\n0.441498 0.207123 0.916962\n0.484497 0.209106 0.916565\n0.528595 0.211182 0.916168\n0.572723 0.213257 0.915771\n0.615326 0.215302 0.915344\n0.656006 0.217407 0.914948\n0.694305 0.219543 0.914581\n0.729950 0.221649 0.914154\n0.762726 0.223816 0.913727\n0.792450 0.226013 0.913330\n0.819336 0.228149 0.912933\n0.843750 0.230347 0.912537\n0.865845 0.232574 0.912170\n0.885986 0.234833 0.911743\n0.904327 0.237091 0.911377\n0.920959 0.239319 0.911011\n0.936096 0.241608 0.910614\n0.949860 0.243927 0.910217\n0.962219 0.246185 0.909882\n0.973358 0.248535 0.909515\n0.063751 0.216522 0.920715\n0.087067 0.218384 0.920380\n0.111481 0.220245 0.920013\n0.137146 0.222168 0.919617\n0.164154 0.224121 0.919250\n0.192657 0.226074 0.918884\n0.222931 0.228058 0.918518\n0.255096 0.230133 0.918121\n0.289368 0.232147 0.917755\n0.325836 0.234222 0.917358\n0.364349 0.236328 0.916992\n0.404633 0.238434 0.916565\n0.446625 0.240601 0.916168\n0.489807 0.242737 0.915802\n0.534058 0.244995 0.915375\n0.578064 0.247162 0.914978\n0.620453 0.249420 0.914581\n0.660919 0.251648 0.914154\n0.698914 0.253967 0.913727\n0.734161 0.256287 0.913361\n0.766602 0.258636 0.912933\n0.795959 0.260925 0.912567\n0.822510 0.263306 0.912170\n0.846649 0.265686 0.911743\n0.868530 0.268066 0.911377\n0.888428 0.270477 0.911011\n0.906555 0.272919 0.910614\n0.922943 0.275299 0.910278\n0.937927 0.277771 0.909912\n0.951477 0.280273 0.909515\n0.963684 0.282623 0.909180\n0.974670 0.285156 0.908783\n0.066254 0.250244 0.920013\n0.089722 0.252289 0.919647\n0.114288 0.254303 0.919281\n0.140106 0.256409 0.918915\n0.167358 0.258545 0.918518\n0.196075 0.260651 0.918152\n0.226593 0.262878 0.917786\n0.259064 0.265045 0.917358\n0.293610 0.267273 0.916992\n0.330414 0.269501 0.916595\n0.369110 0.271820 0.916199\n0.409668 0.274109 0.915802\n0.451813 0.276459 0.915375\n0.495178 0.278748 0.914978\n0.539551 0.281189 0.914581\n0.583344 0.283569 0.914154\n0.625610 0.285980 0.913757\n0.665741 0.288452 0.913361\n0.703491 0.290955 0.912933\n0.738403 0.293365 0.912567\n0.770477 0.295898 0.912170\n0.799438 0.298370 0.911774\n0.825684 0.300934 0.911407\n0.849548 0.303497 0.911011\n0.871155 0.306061 0.910645\n0.890808 0.308655 0.910278\n0.908691 0.311279 0.909912\n0.924927 0.313812 0.909546\n0.939697 0.316406 0.909180\n0.953094 0.319092 0.908783\n0.965118 0.321655 0.908417\n0.975983 0.324310 0.908112\n0.068848 0.286346 0.919281\n0.092468 0.288605 0.918915\n0.117188 0.290802 0.918518\n0.143219 0.293121 0.918152\n0.170654 0.295441 0.917786\n0.199615 0.297729 0.917389\n0.230316 0.300140 0.916992\n0.263031 0.302490 0.916626\n0.297943 0.304901 0.916199\n0.335022 0.307373 0.915802\n0.373932 0.309814 0.915405\n0.414764 0.312317 0.915009\n0.457123 0.314850 0.914612\n0.500641 0.317352 0.914185\n0.545074 0.319977 0.913757\n0.588776 0.322540 0.913361\n0.630737 0.325134 0.912964\n0.670624 0.327728 0.912567\n0.708008 0.330353 0.912201\n0.742615 0.333038 0.911804\n0.774292 0.335724 0.911407\n0.802917 0.338348 0.911041\n0.828888 0.341064 0.910645\n0.852386 0.343781 0.910278\n0.873718 0.346466 0.909912\n0.893158 0.349213 0.909546\n0.910828 0.351990 0.909180\n0.926880 0.354706 0.908783\n0.941437 0.357483 0.908447\n0.954620 0.360199 0.908112\n0.966583 0.362976 0.907806\n0.977234 0.365784 0.907471\n0.071503 0.325043 0.918549\n0.095276 0.327454 0.918152\n0.120178 0.329865 0.917786\n0.146393 0.332367 0.917389\n0.174011 0.334869 0.916992\n0.203186 0.337311 0.916626\n0.234192 0.339935 0.916199\n0.267120 0.342438 0.915802\n0.302338 0.345062 0.915405\n0.339722 0.347687 0.915009\n0.378906 0.350281 0.914612\n0.419922 0.352966 0.914185\n0.462494 0.355713 0.913757\n0.506226 0.358368 0.913391\n0.550598 0.361115 0.912994\n0.594177 0.363861 0.912567\n0.635925 0.366608 0.912201\n0.675507 0.369415 0.911804\n0.712555 0.372162 0.911438\n0.746796 0.374969 0.911041\n0.778107 0.377838 0.910645\n0.806305 0.380585 0.910278\n0.831940 0.383484 0.909912\n0.855194 0.386353 0.909546\n0.876282 0.389130 0.909210\n0.895508 0.392029 0.908813\n0.912933 0.394958 0.908447\n0.928772 0.397736 0.908142\n0.943176 0.400665 0.907806\n0.956207 0.403503 0.907471\n0.967957 0.406403 0.907166\n0.978485 0.409302 0.906860\n0.074249 0.366089 0.917786\n0.098175 0.368713 0.917419\n0.123230 0.371246 0.917023\n0.149597 0.373901 0.916626\n0.177399 0.376526 0.916260\n0.206879 0.379272 0.915802\n0.238129 0.381989 0.915436\n0.271301 0.384674 0.915039\n0.306824 0.387451 0.914612\n0.344421 0.390228 0.914185\n0.383942 0.393005 0.913788\n0.425171 0.395874 0.913391\n0.467926 0.398712 0.912994\n0.511719 0.401550 0.912598\n0.556152 0.404419 0.912201\n0.599426 0.407227 0.911835\n0.641052 0.410187 0.911469\n0.680359 0.413116 0.911041\n0.717041 0.416016 0.910675\n0.750916 0.418976 0.910278\n0.781830 0.421936 0.909912\n0.809723 0.424866 0.909546\n0.835022 0.427826 0.909210\n0.858002 0.430817 0.908813\n0.878815 0.433777 0.908478\n0.897797 0.436768 0.908142\n0.915009 0.439667 0.907806\n0.930664 0.442688 0.907501\n0.944916 0.445740 0.907166\n0.957733 0.448578 0.906860\n0.969330 0.451630 0.906555\n0.979706 0.454559 0.906555\n0.077026 0.409271 0.917023\n0.101135 0.412048 0.916626\n0.126312 0.414764 0.916260\n0.152924 0.417572 0.915833\n0.180939 0.420349 0.915436\n0.210602 0.423218 0.915070\n0.242096 0.426086 0.914642\n0.275635 0.428925 0.914246\n0.311401 0.431824 0.913818\n0.349243 0.434784 0.913391\n0.388977 0.437714 0.913025\n0.430450 0.440613 0.912628\n0.473389 0.443665 0.912231\n0.517334 0.446533 0.911835\n0.561768 0.449585 0.911469\n0.604797 0.452515 0.911072\n0.646149 0.455597 0.910706\n0.685181 0.458679 0.910309\n0.721466 0.461609 0.909943\n0.754974 0.464691 0.909576\n0.785492 0.467834 0.909210\n0.813080 0.470795 0.908844\n0.838043 0.473846 0.908508\n0.860718 0.476959 0.908142\n0.881287 0.479950 0.907806\n0.900024 0.483063 0.907501\n0.917053 0.486053 0.907196\n0.932526 0.489105 0.906891\n0.946564 0.492126 0.906586\n0.959229 0.495178 0.906555\n0.970673 0.498199 0.906555\n0.980865 0.501251 0.906555\n0.079895 0.454346 0.916260\n0.104065 0.457123 0.915863\n0.129517 0.460022 0.915436\n0.156281 0.462982 0.915070\n0.184479 0.465881 0.914642\n0.214417 0.468903 0.914246\n0.246155 0.471893 0.913818\n0.279999 0.474823 0.913422\n0.316010 0.477875 0.913025\n0.354156 0.480957 0.912628\n0.394135 0.483948 0.912231\n0.435822 0.487030 0.911835\n0.478760 0.490051 0.911469\n0.522919 0.493134 0.911102\n0.567291 0.496277 0.910706\n0.610168 0.499359 0.910339\n0.651215 0.502472 0.909973\n0.689911 0.505585 0.909576\n0.725861 0.508667 0.909241\n0.759064 0.511810 0.908875\n0.789154 0.514984 0.908508\n0.816345 0.517975 0.908142\n0.841003 0.521118 0.907837\n0.863434 0.524292 0.907501\n0.883728 0.527344 0.907196\n0.902222 0.530487 0.906891\n0.919006 0.533508 0.906586\n0.934296 0.536621 0.906555\n0.948212 0.539703 0.906555\n0.960663 0.542725 0.906555\n0.971985 0.545746 0.906555\n0.981995 0.548798 0.906555\n0.082764 0.500824 0.915466\n0.107117 0.503784 0.915070\n0.132721 0.506775 0.914673\n0.159668 0.509857 0.914276\n0.188110 0.512848 0.913849\n0.218231 0.515930 0.913422\n0.250275 0.519043 0.913025\n0.284393 0.522095 0.912659\n0.320709 0.525208 0.912231\n0.359131 0.528320 0.911865\n0.399323 0.531433 0.911469\n0.441193 0.534607 0.911102\n0.484344 0.537689 0.910706\n0.528595 0.540802 0.910339\n0.572815 0.543976 0.909973\n0.615479 0.547058 0.909607\n0.656219 0.550171 0.909241\n0.694611 0.553314 0.908875\n0.730194 0.556396 0.908508\n0.763000 0.559479 0.908173\n0.792694 0.562592 0.907837\n0.819550 0.565582 0.907501\n0.843933 0.568726 0.907196\n0.866028 0.571655 0.906891\n0.886108 0.574738 0.906586\n0.904388 0.577759 0.906555\n0.920990 0.580627 0.906555\n0.936096 0.583679 0.906555\n0.949799 0.586639 0.906555\n0.962128 0.589447 0.906555\n0.973236 0.592346 0.906555\n0.983124 0.595245 0.906555\n0.085754 0.548370 0.914673\n0.110229 0.551392 0.914276\n0.135986 0.554413 0.913849\n0.163147 0.557465 0.913422\n0.191772 0.560455 0.913055\n0.222168 0.563538 0.912659\n0.254486 0.566650 0.912262\n0.288879 0.569641 0.911865\n0.325500 0.572723 0.911469\n0.364105 0.575775 0.911102\n0.404541 0.578766 0.910736\n0.446533 0.581787 0.910370\n0.489899 0.584839 0.910004\n0.534241 0.587860 0.909637\n0.578308 0.590942 0.909241\n0.620728 0.593872 0.908875\n0.661255 0.596924 0.908539\n0.699219 0.599884 0.908173\n0.734497 0.602905 0.907867\n0.766907 0.605804 0.907532\n0.796204 0.608795 0.907196\n0.822723 0.611664 0.906891\n0.846802 0.614594 0.906586\n0.868591 0.617462 0.906555\n0.888428 0.620300 0.906555\n0.906525 0.623169 0.906555\n0.922913 0.625946 0.906555\n0.937836 0.628754 0.906555\n0.951294 0.631561 0.906555\n0.963501 0.634247 0.906555\n0.974457 0.636993 0.906555\n0.984192 0.639679 0.906555\n0.088715 0.594971 0.913849\n0.113373 0.597839 0.913452\n0.139313 0.600891 0.913055\n0.166656 0.603851 0.912659\n0.195496 0.606720 0.912292\n0.226105 0.609711 0.911896\n0.258698 0.612671 0.911499\n0.293335 0.615540 0.911133\n0.330292 0.618500 0.910736\n0.369171 0.621399 0.910370\n0.409760 0.624329 0.910004\n0.452026 0.627228 0.909637\n0.495483 0.630127 0.909271\n0.539856 0.632996 0.908875\n0.583740 0.635895 0.908539\n0.625946 0.638672 0.908203\n0.666168 0.641510 0.907867\n0.703827 0.644348 0.907532\n0.738678 0.647156 0.907227\n0.770660 0.649963 0.906891\n0.799652 0.652740 0.906616\n0.825836 0.655426 0.906555\n0.849609 0.658173 0.906555\n0.871124 0.660858 0.906555\n0.890747 0.663513 0.906555\n0.908569 0.666199 0.906555\n0.924774 0.668762 0.906555\n0.939484 0.671387 0.906555\n0.952820 0.673981 0.906555\n0.964844 0.676422 0.906555\n0.975616 0.679016 0.906555\n0.985229 0.681488 0.906555\n0.091766 0.639648 0.913086\n0.116577 0.642365 0.912689\n0.142670 0.645203 0.912292\n0.170227 0.648041 0.911896\n0.199280 0.650848 0.911530\n0.230133 0.653656 0.911133\n0.262970 0.656464 0.910736\n0.297913 0.659180 0.910370\n0.335052 0.661957 0.910004\n0.374115 0.664642 0.909637\n0.415039 0.667450 0.909271\n0.457458 0.670227 0.908875\n0.501007 0.672852 0.908569\n0.545471 0.675598 0.908234\n0.589172 0.678314 0.907867\n0.631134 0.680908 0.907532\n0.670959 0.683624 0.907227\n0.708313 0.686188 0.906921\n0.742828 0.688782 0.906616\n0.774414 0.691406 0.906555\n0.802979 0.693909 0.906555\n0.828857 0.696472 0.906555\n0.852295 0.699005 0.906555\n0.873566 0.701416 0.906555\n0.892944 0.703949 0.906555\n0.910583 0.706390 0.906555\n0.926544 0.708710 0.906555\n0.941132 0.711090 0.906555\n0.954285 0.713470 0.906555\n0.966125 0.715759 0.906555\n0.976807 0.718048 0.906555\n0.986237 0.720245 0.906555\n0.094788 0.681793 0.912292\n0.119781 0.684357 0.911926\n0.146088 0.687012 0.911530\n0.173828 0.689667 0.911163\n0.203094 0.692261 0.910767\n0.234192 0.694916 0.910400\n0.267303 0.697540 0.910004\n0.302490 0.700073 0.909637\n0.339935 0.702637 0.909271\n0.379181 0.705109 0.908905\n0.420288 0.707733 0.908569\n0.462921 0.710297 0.908234\n0.506592 0.712738 0.907898\n0.551025 0.715271 0.907562\n0.594543 0.717712 0.907227\n0.636169 0.720154 0.906952\n0.675781 0.722595 0.906616\n0.712738 0.725037 0.906555\n0.746887 0.727356 0.906555\n0.778076 0.729706 0.906555\n0.806213 0.732025 0.906555\n0.831787 0.734344 0.906555\n0.854980 0.736603 0.906555\n0.875977 0.738861 0.906555\n0.895111 0.741089 0.906555\n0.912506 0.743286 0.906555\n0.928314 0.745392 0.906555\n0.942688 0.747589 0.906555\n0.955688 0.749664 0.906555\n0.967407 0.751709 0.906555\n0.977905 0.753754 0.906555\n0.987213 0.755768 0.906555\n0.097900 0.720947 0.911560\n0.123047 0.723328 0.911163\n0.149506 0.725800 0.910767\n0.177429 0.728241 0.910400\n0.206909 0.730652 0.910034\n0.238251 0.733032 0.909637\n0.271576 0.735413 0.909302\n0.307129 0.737793 0.908905\n0.344757 0.740173 0.908569\n0.384308 0.742462 0.908234\n0.425598 0.744781 0.907898\n0.468292 0.747101 0.907562\n0.512115 0.749359 0.907257\n0.556549 0.751648 0.906952\n0.599762 0.753876 0.906616\n0.641174 0.756073 0.906555\n0.680420 0.758270 0.906555\n0.717072 0.760437 0.906555\n0.750824 0.762573 0.906555\n0.781647 0.764709 0.906555\n0.809448 0.766724 0.906555\n0.834686 0.768829 0.906555\n0.857574 0.770844 0.906555\n0.878326 0.772797 0.906555\n0.897217 0.774841 0.906555\n0.914429 0.776764 0.906555\n0.930023 0.778687 0.906555\n0.944214 0.780548 0.906555\n0.957062 0.782410 0.906555\n0.968597 0.784241 0.906555\n0.978973 0.786041 0.906555\n0.988129 0.787811 0.906555\n0.101013 0.756866 0.910797\n0.126312 0.759064 0.910400\n0.152985 0.761292 0.910034\n0.181091 0.763519 0.909668\n0.210754 0.765656 0.909332\n0.242371 0.767822 0.908936\n0.275909 0.769958 0.908600\n0.311768 0.772125 0.908234\n0.349609 0.774231 0.907928\n0.389343 0.776306 0.907593\n0.430817 0.778412 0.907257\n0.473694 0.780457 0.906952\n0.517578 0.782471 0.906647\n0.561920 0.784515 0.906555\n0.605011 0.786530 0.906555\n0.646118 0.788452 0.906555\n0.685028 0.790436 0.906555\n0.721222 0.792328 0.906555\n0.754669 0.794250 0.906555\n0.785065 0.796112 0.906555\n0.812531 0.797943 0.906555\n0.837494 0.799805 0.906555\n0.860077 0.801636 0.906555\n0.880585 0.803375 0.906555\n0.899261 0.805145 0.906555\n0.916260 0.806885 0.906555\n0.931671 0.808502 0.906555\n0.945709 0.810211 0.906555\n0.958374 0.811829 0.906555\n0.969788 0.813446 0.906555\n0.980011 0.815002 0.906555\n0.989014 0.816528 0.906555\n0.104156 0.789276 0.910065\n0.129608 0.791229 0.909668\n0.156403 0.793274 0.909332\n0.184692 0.795227 0.908966\n0.214691 0.797211 0.908600\n0.246460 0.799164 0.908234\n0.280304 0.801056 0.907928\n0.316345 0.802979 0.907593\n0.354492 0.804901 0.907257\n0.394440 0.806763 0.906952\n0.436127 0.808594 0.906647\n0.479126 0.810455 0.906555\n0.523041 0.812256 0.906555\n0.567291 0.814056 0.906555\n0.610046 0.815796 0.906555\n0.650940 0.817535 0.906555\n0.689514 0.819336 0.906555\n0.725403 0.820953 0.906555\n0.758423 0.822693 0.906555\n0.788452 0.824371 0.906555\n0.815552 0.825989 0.906555\n0.840179 0.827606 0.906555\n0.862518 0.829224 0.906555\n0.882812 0.830811 0.906555\n0.901245 0.832336 0.906555\n0.918030 0.833862 0.906555\n0.933258 0.835327 0.906555\n0.947144 0.836853 0.906555\n0.959625 0.838257 0.906555\n0.970917 0.839661 0.906555\n0.980988 0.841064 0.906555\n0.989868 0.842407 0.906555\n0.107300 0.818420 0.909363\n0.132904 0.820190 0.908966\n0.159943 0.821991 0.908600\n0.188385 0.823761 0.908264\n0.218506 0.825500 0.907928\n0.250549 0.827240 0.907593\n0.284668 0.828979 0.907288\n0.320984 0.830688 0.906982\n0.359375 0.832397 0.906677\n0.399536 0.834045 0.906555\n0.441284 0.835724 0.906555\n0.484375 0.837341 0.906555\n0.528442 0.838989 0.906555\n0.572540 0.840607 0.906555\n0.615051 0.842133 0.906555\n0.655640 0.843719 0.906555\n0.693909 0.845276 0.906555\n0.729401 0.846802 0.906555\n0.762054 0.848297 0.906555\n0.791687 0.849762 0.906555\n0.818481 0.851166 0.906555\n0.842773 0.852661 0.906555\n0.864868 0.854065 0.906555\n0.884918 0.855438 0.906555\n0.903137 0.856812 0.906555\n0.919708 0.858154 0.906555\n0.934784 0.859467 0.906555\n0.948486 0.860779 0.906555\n0.960846 0.862030 0.906555\n0.971985 0.863281 0.906555\n0.981934 0.864532 0.906555\n0.990662 0.865692 0.906555\n0.110443 0.844574 0.908630\n0.136261 0.846222 0.908264\n0.163422 0.847839 0.907959\n0.192047 0.849426 0.907593\n0.222443 0.850983 0.907318\n0.254700 0.852570 0.906982\n0.289062 0.854095 0.906677\n0.325653 0.855652 0.906555\n0.364197 0.857178 0.906555\n0.404541 0.858643 0.906555\n0.446472 0.860138 0.906555\n0.489594 0.861572 0.906555\n0.533783 0.863037 0.906555\n0.577728 0.864471 0.906555\n0.619904 0.865845 0.906555\n0.660217 0.867249 0.906555\n0.698181 0.868652 0.906555\n0.733307 0.869965 0.906555\n0.765594 0.871338 0.906555\n0.794861 0.872650 0.906555\n0.821350 0.873901 0.906555\n0.845367 0.875183 0.906555\n0.867157 0.876434 0.906555\n0.886963 0.877686 0.906555\n0.904999 0.878906 0.906555\n0.921387 0.880066 0.906555\n0.936279 0.881226 0.906555\n0.949829 0.882385 0.906555\n0.962036 0.883484 0.906555\n0.973022 0.884583 0.906555\n0.982819 0.885651 0.906555\n0.991455 0.886688 0.906555\n0.113617 0.868195 0.907959\n0.139587 0.869659 0.907623\n0.166901 0.871124 0.907318\n0.195740 0.872528 0.907013\n0.226349 0.873932 0.906677\n0.258820 0.875366 0.906555\n0.293427 0.876740 0.906555\n0.330231 0.878113 0.906555\n0.369019 0.879486 0.906555\n0.409485 0.880798 0.906555\n0.451538 0.882111 0.906555\n0.494873 0.883423 0.906555\n0.539062 0.884735 0.906555\n0.582733 0.885986 0.906555\n0.624725 0.887238 0.906555\n0.664703 0.888489 0.906555\n0.702332 0.889709 0.906555\n0.737122 0.890900 0.906555\n0.768982 0.892090 0.906555\n0.797913 0.893280 0.906555\n0.824036 0.894409 0.906555\n0.847778 0.895538 0.906555\n0.869324 0.896606 0.906555\n0.888916 0.897705 0.906555\n0.906769 0.898804 0.906555\n0.922943 0.899811 0.906555\n0.937714 0.900818 0.906555\n0.951080 0.901855 0.906555\n0.963135 0.902832 0.906555\n0.973999 0.903778 0.906555\n0.983673 0.904724 0.906555\n0.992188 0.905640 0.906555\n0.116791 0.889496 0.907318\n0.142914 0.890808 0.907013\n0.170410 0.892120 0.906677\n0.199432 0.893402 0.906555\n0.230194 0.894684 0.906555\n0.262970 0.895935 0.906555\n0.297821 0.897125 0.906555\n0.334839 0.898376 0.906555\n0.373749 0.899567 0.906555\n0.414459 0.900787 0.906555\n0.456696 0.901978 0.906555\n0.499969 0.903137 0.906555\n0.544189 0.904266 0.906555\n0.587677 0.905457 0.906555\n0.629395 0.906555 0.906555\n0.669037 0.907654 0.906555\n0.706329 0.908722 0.906555\n0.740784 0.909821 0.906555\n0.772278 0.910828 0.906555\n0.800842 0.911865 0.906555\n0.826691 0.912842 0.906555\n0.850159 0.913849 0.906555\n0.871429 0.914856 0.906555\n0.890808 0.915802 0.906555\n0.908417 0.916748 0.906555\n0.924438 0.917664 0.906555\n0.939056 0.918549 0.906555\n0.952240 0.919434 0.906555\n0.964203 0.920258 0.906555\n0.974945 0.921143 0.906555\n0.984436 0.921967 0.906555\n0.992859 0.922760 0.906555\n0.119934 0.908722 0.906708\n0.146179 0.909912 0.906555\n0.173889 0.911102 0.906555\n0.203094 0.912201 0.906555\n0.234100 0.913361 0.906555\n0.267059 0.914520 0.906555\n0.302124 0.915619 0.906555\n0.339355 0.916718 0.906555\n0.378448 0.917786 0.906555\n0.419312 0.918823 0.906555\n0.461609 0.919891 0.906555\n0.505035 0.920898 0.906555\n0.549194 0.921967 0.906555\n0.592499 0.922943 0.906555\n0.633942 0.923920 0.906555\n0.673340 0.924896 0.906555\n0.710266 0.925873 0.906555\n0.744324 0.926788 0.906555\n0.775482 0.927734 0.906555\n0.803650 0.928619 0.906555\n0.829193 0.929565 0.906555\n0.852386 0.930389 0.906555\n0.873444 0.931274 0.906555\n0.892609 0.932098 0.906555\n0.910065 0.932953 0.906555\n0.925873 0.933746 0.906555\n0.940308 0.934509 0.906555\n0.953400 0.935333 0.906555\n0.965179 0.936035 0.906555\n0.975800 0.936798 0.906555\n0.985229 0.937469 0.906555\n0.993500 0.938171 0.906555\n0.123108 0.926056 0.906555\n0.149506 0.927155 0.906555\n0.177338 0.928192 0.906555\n0.206757 0.929199 0.906555\n0.237946 0.930206 0.906555\n0.271088 0.931213 0.906555\n0.306396 0.932190 0.906555\n0.343811 0.933167 0.906555\n0.383118 0.934143 0.906555\n0.424103 0.935089 0.906555\n0.466553 0.936035 0.906555\n0.510010 0.936920 0.906555\n0.554108 0.937866 0.906555\n0.597168 0.938751 0.906555\n0.638336 0.939606 0.906555\n0.677429 0.940491 0.906555\n0.714020 0.941315 0.906555\n0.747742 0.942139 0.906555\n0.778503 0.942993 0.906555\n0.806335 0.943787 0.906555\n0.831635 0.944550 0.906555\n0.854553 0.945312 0.906555\n0.875366 0.946045 0.906555\n0.894348 0.946777 0.906555\n0.911560 0.947540 0.906555\n0.927277 0.948212 0.906555\n0.941528 0.948914 0.906555\n0.954498 0.949585 0.906555\n0.966125 0.950226 0.906555\n0.976624 0.950836 0.906555\n0.985931 0.951477 0.906555\n0.994110 0.952087 0.906555\n0.126221 0.941742 0.906555\n0.152771 0.942657 0.906555\n0.180786 0.943604 0.906555\n0.210358 0.944489 0.906555\n0.241760 0.945404 0.906555\n0.275116 0.946289 0.906555\n0.310669 0.947174 0.906555\n0.348328 0.948029 0.906555\n0.387695 0.948883 0.906555\n0.428833 0.949707 0.906555\n0.471344 0.950562 0.906555\n0.514862 0.951355 0.906555\n0.558899 0.952148 0.906555\n0.601654 0.952972 0.906555\n0.642609 0.953735 0.906555\n0.681396 0.954468 0.906555\n0.717560 0.955200 0.906555\n0.750977 0.955933 0.906555\n0.781433 0.956635 0.906555\n0.808960 0.957336 0.906555\n0.833954 0.958008 0.906555\n0.856598 0.958679 0.906555\n0.877228 0.959351 0.906555\n0.895966 0.959961 0.906555\n0.913025 0.960571 0.906555\n0.928558 0.961182 0.906555\n0.942688 0.961823 0.906555\n0.955475 0.962372 0.906555\n0.967041 0.962952 0.906555\n0.977386 0.963470 0.906555\n0.986572 0.963989 0.906555\n0.994659 0.964508 0.906555\n0.129395 0.955780 0.906555\n0.156067 0.956604 0.906555\n0.184204 0.957428 0.906555\n0.213928 0.958221 0.906555\n0.245544 0.959015 0.906555\n0.279114 0.959808 0.906555\n0.314850 0.960571 0.906555\n0.352692 0.961365 0.906555\n0.392242 0.962097 0.906555\n0.433472 0.962860 0.906555\n0.476044 0.963562 0.906555\n0.519653 0.964264 0.906555\n0.563538 0.964935 0.906555\n0.605988 0.965637 0.906555\n0.646729 0.966309 0.906555\n0.685211 0.966980 0.906555\n0.721039 0.967621 0.906555\n0.754089 0.968262 0.906555\n0.784210 0.968872 0.906555\n0.811432 0.969452 0.906555\n0.836121 0.970062 0.906555\n0.858582 0.970642 0.906555\n0.878967 0.971191 0.906555\n0.897522 0.971771 0.906555\n0.914429 0.972290 0.906555\n0.929810 0.972809 0.906555\n0.943787 0.973297 0.906555\n0.956421 0.973816 0.906555\n0.967834 0.974274 0.906555\n0.978088 0.974731 0.906555\n0.987213 0.975189 0.906555\n0.995178 0.975616 0.906555\n0.132446 0.968323 0.906555\n0.159271 0.969025 0.906555\n0.187561 0.969757 0.906555\n0.217499 0.970490 0.906555\n0.249268 0.971191 0.906555\n0.283020 0.971832 0.906555\n0.318970 0.972534 0.906555\n0.356964 0.973206 0.906555\n0.396667 0.973846 0.906555\n0.438019 0.974487 0.906555\n0.480652 0.975098 0.906555\n0.524231 0.975708 0.906555\n0.567993 0.976349 0.906555\n0.610260 0.976929 0.906555\n0.650696 0.977509 0.906555\n0.688843 0.978088 0.906555\n0.724365 0.978638 0.906555\n0.757080 0.979187 0.906555\n0.786835 0.979706 0.906555\n0.813782 0.980225 0.906555\n0.838226 0.980743 0.906555\n0.860443 0.981232 0.906555\n0.880615 0.981689 0.906555\n0.898987 0.982178 0.906555\n0.915710 0.982605 0.906555\n0.930939 0.983063 0.906555\n0.944763 0.983459 0.906555\n0.957306 0.983887 0.906555\n0.968597 0.984283 0.906555\n0.978760 0.984680 0.906555\n0.987762 0.985016 0.906555\n0.995667 0.985382 0.906555\n0.046967 0.008331 0.939148\n0.069214 0.009247 0.938934\n0.092468 0.010193 0.938721\n0.116821 0.011200 0.938477\n0.142456 0.012177 0.938232\n0.169373 0.013214 0.937988\n0.197906 0.014252 0.937744\n0.228058 0.015320 0.937469\n0.260254 0.016449 0.937195\n0.294495 0.017548 0.936890\n0.330841 0.018707 0.936646\n0.369263 0.019867 0.936310\n0.409454 0.021088 0.936035\n0.451111 0.022247 0.935730\n0.494110 0.023468 0.935425\n0.538086 0.024780 0.935059\n0.581573 0.026001 0.934753\n0.623596 0.027313 0.934418\n0.663513 0.028595 0.934082\n0.701141 0.029938 0.933777\n0.736084 0.031281 0.933380\n0.768097 0.032654 0.933044\n0.797211 0.034027 0.932739\n0.823578 0.035431 0.932373\n0.847473 0.036835 0.932007\n0.869171 0.038300 0.931641\n0.888947 0.039734 0.931274\n0.906952 0.041168 0.930908\n0.923309 0.042664 0.930542\n0.938171 0.044128 0.930176\n0.951691 0.045654 0.929810\n0.963867 0.047150 0.929474\n0.048798 0.030029 0.938721\n0.071198 0.031036 0.938477\n0.094574 0.032074 0.938263\n0.119110 0.033142 0.937988\n0.144806 0.034210 0.937744\n0.171997 0.035339 0.937469\n0.200684 0.036499 0.937195\n0.231140 0.037628 0.936920\n0.263550 0.038849 0.936646\n0.298096 0.040070 0.936310\n0.334686 0.041260 0.936035\n0.373383 0.042511 0.935730\n0.413727 0.043823 0.935425\n0.455658 0.045105 0.935089\n0.498810 0.046448 0.934753\n0.542877 0.047760 0.934418\n0.586334 0.049133 0.934082\n0.628204 0.050507 0.933777\n0.667908 0.051910 0.933441\n0.705292 0.053314 0.933044\n0.739990 0.054749 0.932739\n0.771667 0.056213 0.932373\n0.800446 0.057678 0.932007\n0.826538 0.059174 0.931641\n0.850189 0.060699 0.931305\n0.871704 0.062164 0.930908\n0.891205 0.063721 0.930573\n0.909027 0.065247 0.930206\n0.925232 0.066864 0.929840\n0.939941 0.068390 0.929504\n0.953247 0.070007 0.929077\n0.965332 0.071594 0.928711\n0.050720 0.052734 0.938263\n0.073212 0.053833 0.938019\n0.096771 0.054962 0.937775\n0.121429 0.056152 0.937469\n0.147339 0.057281 0.937195\n0.174713 0.058502 0.936920\n0.203644 0.059753 0.936646\n0.234283 0.061005 0.936340\n0.266937 0.062286 0.936035\n0.301819 0.063629 0.935730\n0.338715 0.064941 0.935425\n0.377625 0.066284 0.935089\n0.418243 0.067688 0.934784\n0.460327 0.069061 0.934418\n0.503723 0.070465 0.934082\n0.547791 0.071899 0.933777\n0.591187 0.073364 0.933441\n0.632874 0.074860 0.933075\n0.672394 0.076355 0.932739\n0.709473 0.077820 0.932373\n0.743835 0.079376 0.932007\n0.775208 0.080872 0.931641\n0.803711 0.082489 0.931305\n0.829529 0.084076 0.930939\n0.852875 0.085693 0.930573\n0.874176 0.087280 0.930206\n0.893494 0.088898 0.929840\n0.911102 0.090546 0.929504\n0.927124 0.092224 0.929077\n0.941650 0.093842 0.928741\n0.954834 0.095551 0.928345\n0.966736 0.097260 0.928009\n0.052734 0.076569 0.937775\n0.075378 0.077728 0.937500\n0.099060 0.078979 0.937225\n0.123932 0.080261 0.936920\n0.150024 0.081512 0.936676\n0.177551 0.082855 0.936371\n0.206726 0.084198 0.936035\n0.237549 0.085541 0.935730\n0.270538 0.086945 0.935455\n0.305634 0.088379 0.935120\n0.342834 0.089752 0.934784\n0.381989 0.091248 0.934448\n0.422791 0.092682 0.934143\n0.465088 0.094177 0.933807\n0.508667 0.095703 0.933441\n0.552826 0.097229 0.933075\n0.596069 0.098816 0.932739\n0.637573 0.100403 0.932373\n0.676849 0.101990 0.932037\n0.713684 0.103607 0.931641\n0.747772 0.105255 0.931305\n0.778809 0.106903 0.930939\n0.806976 0.108551 0.930573\n0.832489 0.110260 0.930206\n0.855591 0.111969 0.929840\n0.876617 0.113708 0.929504\n0.895752 0.115387 0.929108\n0.913147 0.117126 0.928741\n0.929016 0.118927 0.928375\n0.943359 0.120667 0.928009\n0.956390 0.122467 0.927673\n0.968140 0.124268 0.927307\n0.054840 0.101624 0.937225\n0.077637 0.102905 0.936920\n0.101471 0.104248 0.936676\n0.126465 0.105652 0.936371\n0.152710 0.106995 0.936066\n0.180511 0.108459 0.935730\n0.209900 0.109924 0.935455\n0.240997 0.111359 0.935150\n0.274261 0.112854 0.934784\n0.309631 0.114380 0.934448\n0.347046 0.115906 0.934143\n0.386475 0.117493 0.933807\n0.427521 0.119080 0.933441\n0.470123 0.120667 0.933075\n0.513733 0.122345 0.932770\n0.557953 0.123962 0.932404\n0.601044 0.125641 0.932037\n0.642365 0.127350 0.931671\n0.681427 0.129028 0.931305\n0.717957 0.130798 0.930939\n0.751678 0.132538 0.930573\n0.782379 0.134308 0.930206\n0.810211 0.136047 0.929840\n0.835388 0.137848 0.929504\n0.858307 0.139679 0.929138\n0.879120 0.141541 0.928741\n0.898010 0.143311 0.928406\n0.915253 0.145203 0.928009\n0.930908 0.147095 0.927673\n0.945068 0.148956 0.927338\n0.957947 0.150879 0.926971\n0.969543 0.152771 0.926575\n0.057068 0.128021 0.936676\n0.079987 0.129456 0.936371\n0.103943 0.130920 0.936066\n0.129150 0.132416 0.935760\n0.155609 0.133911 0.935486\n0.183563 0.135468 0.935150\n0.213165 0.137054 0.934784\n0.244537 0.138611 0.934479\n0.278076 0.140228 0.934174\n0.313660 0.141846 0.933807\n0.351471 0.143524 0.933441\n0.391083 0.145233 0.933075\n0.432373 0.146912 0.932770\n0.475128 0.148682 0.932434\n0.518982 0.150421 0.932037\n0.563141 0.152191 0.931702\n0.606110 0.153992 0.931335\n0.647217 0.155853 0.930969\n0.685974 0.157654 0.930603\n0.722198 0.159485 0.930237\n0.755585 0.161407 0.929871\n0.785980 0.163239 0.929504\n0.813477 0.165192 0.929138\n0.838379 0.167084 0.928772\n0.861023 0.169006 0.928406\n0.881592 0.171021 0.928040\n0.900269 0.172943 0.927704\n0.917297 0.174927 0.927338\n0.932770 0.176941 0.926971\n0.946777 0.178925 0.926605\n0.959473 0.180969 0.926239\n0.970917 0.183014 0.925873\n0.059387 0.156006 0.936096\n0.082428 0.157532 0.935760\n0.106567 0.159149 0.935486\n0.131897 0.160736 0.935150\n0.158539 0.162354 0.934784\n0.186737 0.164062 0.934479\n0.216522 0.165802 0.934174\n0.248199 0.167450 0.933807\n0.281982 0.169220 0.933472\n0.317902 0.170990 0.933105\n0.355927 0.172791 0.932800\n0.395844 0.174652 0.932434\n0.437317 0.176422 0.932068\n0.480316 0.178345 0.931702\n0.524292 0.180237 0.931335\n0.568420 0.182129 0.930969\n0.611237 0.184082 0.930603\n0.652100 0.186035 0.930237\n0.690552 0.187988 0.929901\n0.726471 0.189972 0.929535\n0.759491 0.191986 0.929138\n0.789520 0.193970 0.928772\n0.816742 0.196045 0.928406\n0.841339 0.198090 0.928040\n0.863708 0.200195 0.927704\n0.884033 0.202332 0.927338\n0.902496 0.204376 0.926971\n0.919312 0.206543 0.926605\n0.934601 0.208679 0.926239\n0.948456 0.210754 0.925903\n0.960999 0.212921 0.925568\n0.972260 0.215057 0.925232\n0.061737 0.185638 0.935486\n0.084961 0.187317 0.935150\n0.109253 0.189087 0.934814\n0.134766 0.190857 0.934479\n0.161591 0.192596 0.934174\n0.189941 0.194458 0.933807\n0.220001 0.196259 0.933502\n0.251953 0.198120 0.933136\n0.286011 0.200043 0.932800\n0.322205 0.201935 0.932465\n0.360535 0.203918 0.932068\n0.400665 0.205872 0.931702\n0.442383 0.207855 0.931366\n0.485535 0.209930 0.930969\n0.529663 0.211945 0.930634\n0.573700 0.213959 0.930267\n0.616333 0.216125 0.929901\n0.656921 0.218201 0.929535\n0.695129 0.220276 0.929138\n0.730743 0.222443 0.928772\n0.763397 0.224579 0.928406\n0.793060 0.226776 0.928040\n0.819946 0.229004 0.927704\n0.844269 0.231171 0.927338\n0.866364 0.233398 0.926971\n0.886475 0.235657 0.926605\n0.904724 0.237915 0.926270\n0.921356 0.240204 0.925903\n0.936432 0.242493 0.925568\n0.950134 0.244720 0.925262\n0.962494 0.247070 0.924896\n0.973572 0.249359 0.924530\n0.064209 0.217255 0.934814\n0.087524 0.219055 0.934509\n0.112030 0.220947 0.934174\n0.137695 0.222900 0.933838\n0.164703 0.224792 0.933502\n0.193329 0.226837 0.933136\n0.223572 0.228790 0.932831\n0.255829 0.230835 0.932465\n0.290131 0.232910 0.932098\n0.326691 0.234955 0.931732\n0.365234 0.237122 0.931366\n0.405640 0.239258 0.931000\n0.447510 0.241364 0.930634\n0.490845 0.243591 0.930267\n0.535126 0.245789 0.929901\n0.579010 0.248016 0.929565\n0.621399 0.250275 0.929169\n0.661774 0.252502 0.928802\n0.699738 0.254822 0.928436\n0.735016 0.257141 0.928040\n0.767273 0.259430 0.927734\n0.796600 0.261780 0.927368\n0.823151 0.264191 0.927002\n0.847198 0.266541 0.926605\n0.869019 0.268921 0.926270\n0.888885 0.271362 0.925934\n0.906921 0.273743 0.925598\n0.923340 0.276215 0.925262\n0.938232 0.278625 0.924896\n0.951721 0.281128 0.924561\n0.963959 0.283569 0.924255\n0.974915 0.286041 0.923920\n0.066742 0.251007 0.934174\n0.090240 0.252991 0.933868\n0.114838 0.255066 0.933502\n0.140686 0.257141 0.933167\n0.167938 0.259308 0.932831\n0.196777 0.261475 0.932465\n0.227264 0.263611 0.932098\n0.259735 0.265839 0.931732\n0.294434 0.268097 0.931366\n0.331207 0.270325 0.931030\n0.369965 0.272644 0.930634\n0.410645 0.274963 0.930267\n0.452759 0.277252 0.929932\n0.496216 0.279663 0.929596\n0.540558 0.282013 0.929199\n0.584320 0.284454 0.928802\n0.626556 0.286957 0.928436\n0.666626 0.289307 0.928070\n0.704315 0.291779 0.927734\n0.739227 0.294342 0.927368\n0.771149 0.296814 0.927032\n0.800110 0.299347 0.926636\n0.826324 0.301910 0.926270\n0.850067 0.304382 0.925934\n0.871643 0.306976 0.925629\n0.891235 0.309631 0.925262\n0.909088 0.312164 0.924927\n0.925323 0.314728 0.924561\n0.940033 0.317352 0.924255\n0.953369 0.320007 0.923920\n0.965454 0.322632 0.923615\n0.976166 0.325287 0.923279\n0.069336 0.287231 0.933502\n0.092957 0.289398 0.933167\n0.117767 0.291687 0.932831\n0.143799 0.293945 0.932465\n0.171265 0.296295 0.932098\n0.200287 0.298615 0.931732\n0.231049 0.300964 0.931396\n0.263794 0.303375 0.931030\n0.298798 0.305847 0.930664\n0.335785 0.308228 0.930298\n0.374908 0.310730 0.929932\n0.415771 0.313293 0.929596\n0.458069 0.315765 0.929199\n0.501740 0.318298 0.928833\n0.546051 0.320862 0.928467\n0.589752 0.323456 0.928101\n0.631744 0.326080 0.927734\n0.671478 0.328674 0.927399\n0.708893 0.331329 0.927032\n0.743439 0.334015 0.926636\n0.774933 0.336639 0.926300\n0.803528 0.339386 0.925964\n0.829468 0.342102 0.925629\n0.852905 0.344788 0.925262\n0.874237 0.347534 0.924927\n0.893585 0.350189 0.924591\n0.911194 0.352966 0.924255\n0.927246 0.355743 0.923950\n0.941772 0.358429 0.923615\n0.954987 0.361237 0.923309\n0.966827 0.364014 0.923004\n0.977448 0.366730 0.922729\n0.072021 0.325897 0.932831\n0.095795 0.328308 0.932495\n0.120758 0.330750 0.932098\n0.146973 0.333221 0.931763\n0.174652 0.335724 0.931396\n0.203918 0.338318 0.931030\n0.234894 0.340790 0.930664\n0.267914 0.343414 0.930298\n0.303192 0.346039 0.929932\n0.340515 0.348602 0.929596\n0.379852 0.351288 0.929230\n0.420868 0.353912 0.928864\n0.463501 0.356628 0.928467\n0.507202 0.359375 0.928101\n0.551636 0.362061 0.927765\n0.595123 0.364807 0.927399\n0.636902 0.367615 0.927063\n0.676392 0.370331 0.926666\n0.713409 0.373199 0.926331\n0.747620 0.376007 0.925964\n0.778748 0.378815 0.925629\n0.806976 0.381653 0.925262\n0.832550 0.384521 0.924957\n0.855713 0.387329 0.924622\n0.876770 0.390228 0.924255\n0.895905 0.393066 0.923950\n0.913300 0.395966 0.923615\n0.929138 0.398834 0.923309\n0.943512 0.401672 0.923004\n0.956512 0.404602 0.922729\n0.968231 0.407501 0.922455\n0.978699 0.410339 0.922180\n0.074768 0.367004 0.932129\n0.098694 0.369598 0.931763\n0.123840 0.372253 0.931427\n0.150208 0.374817 0.931030\n0.178070 0.377533 0.930664\n0.207611 0.380249 0.930298\n0.238831 0.382935 0.929962\n0.272186 0.385681 0.929596\n0.307678 0.388489 0.929230\n0.345276 0.391235 0.928864\n0.384888 0.394073 0.928467\n0.426117 0.396851 0.928131\n0.468903 0.399750 0.927795\n0.512787 0.402588 0.927399\n0.557190 0.405457 0.927063\n0.600464 0.408356 0.926697\n0.642029 0.411285 0.926331\n0.681213 0.414154 0.925964\n0.717865 0.417114 0.925629\n0.751709 0.420135 0.925293\n0.782471 0.422943 0.924988\n0.810364 0.425995 0.924622\n0.835571 0.428894 0.924286\n0.858490 0.431854 0.923981\n0.879303 0.434845 0.923615\n0.898163 0.437866 0.923340\n0.915375 0.440826 0.923004\n0.931030 0.443817 0.922729\n0.945190 0.446747 0.922455\n0.958038 0.449738 0.922180\n0.969574 0.452698 0.921997\n0.979919 0.455658 0.921997\n0.077545 0.410217 0.931427\n0.101654 0.412994 0.931061\n0.126953 0.415771 0.930695\n0.153503 0.418579 0.930328\n0.181610 0.421387 0.929962\n0.211304 0.424255 0.929626\n0.242828 0.427094 0.929230\n0.276459 0.430023 0.928864\n0.312256 0.432922 0.928497\n0.350128 0.435822 0.928131\n0.389984 0.438782 0.927795\n0.431427 0.441711 0.927429\n0.474365 0.444733 0.927063\n0.518372 0.447693 0.926697\n0.562744 0.450653 0.926331\n0.605896 0.453705 0.925995\n0.647156 0.456757 0.925629\n0.686005 0.459747 0.925323\n0.722321 0.462799 0.924988\n0.755798 0.465820 0.924622\n0.786163 0.468903 0.924286\n0.813660 0.471924 0.923981\n0.838593 0.474945 0.923615\n0.861237 0.477997 0.923340\n0.881805 0.481110 0.923035\n0.900421 0.484070 0.922729\n0.917450 0.487213 0.922455\n0.932861 0.490265 0.922180\n0.946838 0.493256 0.921997\n0.959534 0.496307 0.921997\n0.970917 0.499359 0.921997\n0.981079 0.502319 0.921997\n0.080414 0.455292 0.930695\n0.104675 0.458221 0.930328\n0.130127 0.461151 0.929962\n0.156891 0.464050 0.929657\n0.185150 0.467010 0.929230\n0.215088 0.470001 0.928864\n0.246887 0.472961 0.928497\n0.280792 0.476013 0.928131\n0.316864 0.478973 0.927795\n0.355072 0.482025 0.927429\n0.395172 0.485046 0.927063\n0.436768 0.488129 0.926697\n0.479889 0.491241 0.926331\n0.524048 0.494324 0.925995\n0.568298 0.497375 0.925659\n0.611237 0.500458 0.925323\n0.652191 0.503662 0.924988\n0.690735 0.506683 0.924652\n0.726746 0.509796 0.924316\n0.759735 0.512909 0.923981\n0.789795 0.516022 0.923645\n0.816956 0.519165 0.923340\n0.841553 0.522217 0.923065\n0.863922 0.525360 0.922760\n0.884216 0.528473 0.922455\n0.902649 0.531555 0.922180\n0.919403 0.534729 0.921997\n0.934662 0.537781 0.921997\n0.948456 0.540741 0.921997\n0.960968 0.543823 0.921997\n0.972198 0.546783 0.921997\n0.982208 0.549805 0.921997\n0.083313 0.501862 0.929993\n0.107727 0.504913 0.929657\n0.133392 0.507935 0.929260\n0.160309 0.510925 0.928864\n0.188812 0.513947 0.928528\n0.219025 0.517120 0.928131\n0.251007 0.520142 0.927795\n0.285248 0.523224 0.927460\n0.321564 0.526337 0.927094\n0.359985 0.529449 0.926697\n0.400299 0.532593 0.926331\n0.442139 0.535706 0.925995\n0.485413 0.538879 0.925690\n0.529724 0.541992 0.925323\n0.573822 0.545135 0.924988\n0.616486 0.548218 0.924652\n0.657196 0.551392 0.924316\n0.695435 0.554443 0.923981\n0.731049 0.557587 0.923645\n0.763702 0.560577 0.923340\n0.793335 0.563690 0.923065\n0.820190 0.566742 0.922760\n0.844452 0.569794 0.922485\n0.866516 0.572815 0.922180\n0.886566 0.575806 0.921997\n0.904785 0.578796 0.921997\n0.921356 0.581757 0.921997\n0.936401 0.584747 0.921997\n0.950043 0.587616 0.921997\n0.962372 0.590576 0.921997\n0.973450 0.593414 0.921997\n0.983307 0.596252 0.921997\n0.086243 0.549438 0.929291\n0.110840 0.552521 0.928894\n0.136658 0.555573 0.928528\n0.163788 0.558533 0.928162\n0.192505 0.561646 0.927826\n0.222900 0.564697 0.927460\n0.255219 0.567719 0.927094\n0.289673 0.570831 0.926697\n0.326324 0.573822 0.926361\n0.364990 0.576843 0.926025\n0.405518 0.579956 0.925690\n0.447571 0.582916 0.925354\n0.490997 0.585999 0.924988\n0.535370 0.589020 0.924652\n0.579285 0.592041 0.924347\n0.621765 0.595032 0.923981\n0.662170 0.598083 0.923676\n0.700073 0.600983 0.923340\n0.735352 0.603973 0.923065\n0.767548 0.606842 0.922791\n0.796844 0.609863 0.922485\n0.823334 0.612762 0.922180\n0.847290 0.615631 0.921997\n0.869080 0.618530 0.921997\n0.888885 0.621368 0.921997\n0.906891 0.624176 0.921997\n0.923248 0.626984 0.921997\n0.938110 0.629822 0.921997\n0.951569 0.632507 0.921997\n0.963776 0.635254 0.921997\n0.974670 0.637939 0.921997\n0.984406 0.640656 0.921997\n0.089233 0.596039 0.928528\n0.113983 0.598999 0.928162\n0.139954 0.601959 0.927826\n0.167297 0.604828 0.927460\n0.196228 0.607819 0.927124\n0.226837 0.610718 0.926758\n0.259430 0.613678 0.926392\n0.294220 0.616669 0.926025\n0.331116 0.619537 0.925720\n0.370056 0.622467 0.925354\n0.410767 0.625427 0.925018\n0.452972 0.628265 0.924652\n0.496490 0.631165 0.924347\n0.540955 0.634094 0.924011\n0.584747 0.636902 0.923706\n0.626953 0.639771 0.923370\n0.667053 0.642609 0.923065\n0.704681 0.645386 0.922791\n0.739532 0.648254 0.922516\n0.771362 0.650940 0.922211\n0.800232 0.653687 0.921997\n0.826416 0.656464 0.921997\n0.850098 0.659180 0.921997\n0.871613 0.661865 0.921997\n0.891174 0.664520 0.921997\n0.908905 0.667114 0.921997\n0.925110 0.669739 0.921997\n0.939789 0.672333 0.921997\n0.953094 0.674896 0.921997\n0.965088 0.677429 0.921997\n0.975861 0.679871 0.921997\n0.985443 0.682343 0.921997\n0.092285 0.640656 0.927856\n0.117157 0.643433 0.927490\n0.143311 0.646301 0.927124\n0.170898 0.649017 0.926758\n0.199982 0.651825 0.926392\n0.230835 0.654633 0.926056\n0.263733 0.657440 0.925720\n0.298798 0.660217 0.925354\n0.335938 0.662933 0.925049\n0.375122 0.665710 0.924683\n0.416016 0.668457 0.924347\n0.458466 0.671143 0.924042\n0.502045 0.673889 0.923706\n0.546570 0.676605 0.923370\n0.590149 0.679230 0.923096\n0.632080 0.681946 0.922821\n0.671844 0.684509 0.922546\n0.709106 0.687164 0.922241\n0.743622 0.689758 0.921997\n0.775024 0.692291 0.921997\n0.803589 0.694885 0.921997\n0.829437 0.697418 0.921997\n0.852783 0.699860 0.921997\n0.874054 0.702362 0.921997\n0.893402 0.704834 0.921997\n0.910919 0.707214 0.921997\n0.926910 0.709595 0.921997\n0.941376 0.711914 0.921997\n0.954529 0.714264 0.921997\n0.966400 0.716583 0.921997\n0.977020 0.718811 0.921997\n0.986420 0.721069 0.921997\n0.095337 0.682678 0.927155\n0.120422 0.685364 0.926758\n0.146759 0.688019 0.926422\n0.174469 0.690582 0.926056\n0.203827 0.693237 0.925720\n0.234894 0.695801 0.925385\n0.268066 0.698395 0.925049\n0.303375 0.701019 0.924713\n0.340759 0.703522 0.924347\n0.380157 0.706116 0.924042\n0.421326 0.708679 0.923706\n0.463867 0.711182 0.923401\n0.507629 0.713654 0.923096\n0.552032 0.716095 0.922821\n0.595459 0.718597 0.922546\n0.637177 0.721069 0.922241\n0.676605 0.723419 0.921997\n0.713531 0.725830 0.921997\n0.747650 0.728241 0.921997\n0.778717 0.730560 0.921997\n0.806885 0.732910 0.921997\n0.832367 0.735199 0.921997\n0.855438 0.737427 0.921997\n0.876434 0.739655 0.921997\n0.895538 0.741943 0.921997\n0.912842 0.744049 0.921997\n0.928650 0.746216 0.921997\n0.942993 0.748291 0.921997\n0.955933 0.750427 0.921997\n0.967651 0.752502 0.921997\n0.978119 0.754486 0.921997\n0.987396 0.756500 0.921997\n0.098419 0.721802 0.926422\n0.123657 0.724274 0.926056\n0.150146 0.726654 0.925751\n0.178070 0.729156 0.925385\n0.207672 0.731567 0.925049\n0.238983 0.733887 0.924713\n0.272369 0.736298 0.924347\n0.307983 0.738678 0.924042\n0.345642 0.740997 0.923706\n0.385254 0.743347 0.923401\n0.426544 0.745636 0.923126\n0.469269 0.747925 0.922821\n0.513153 0.750214 0.922546\n0.557465 0.752441 0.922241\n0.600739 0.754669 0.921997\n0.642120 0.756897 0.921997\n0.681244 0.759064 0.921997\n0.717834 0.761169 0.921997\n0.751587 0.763336 0.921997\n0.782227 0.765442 0.921997\n0.810028 0.767517 0.921997\n0.835236 0.769562 0.921997\n0.858032 0.771576 0.921997\n0.878754 0.773590 0.921997\n0.897614 0.775513 0.921997\n0.914764 0.777435 0.921997\n0.930328 0.779388 0.921997\n0.944489 0.781250 0.921997\n0.957306 0.783112 0.921997\n0.968872 0.784943 0.921997\n0.979187 0.786682 0.921997\n0.988312 0.788452 0.921997\n0.101593 0.757660 0.925751\n0.126953 0.759857 0.925385\n0.153595 0.762054 0.925049\n0.181732 0.764252 0.924713\n0.211517 0.766449 0.924377\n0.243073 0.768616 0.924072\n0.276794 0.770782 0.923706\n0.312622 0.772919 0.923431\n0.350494 0.774963 0.923126\n0.390320 0.777100 0.922821\n0.431824 0.779175 0.922546\n0.474701 0.781189 0.922241\n0.518646 0.783264 0.921997\n0.562897 0.785217 0.921997\n0.605927 0.787262 0.921997\n0.647034 0.789215 0.921997\n0.685822 0.791138 0.921997\n0.722076 0.793030 0.921997\n0.755371 0.794983 0.921997\n0.785706 0.796783 0.921997\n0.813141 0.798676 0.921997\n0.837982 0.800476 0.921997\n0.860535 0.802246 0.921997\n0.881042 0.804016 0.921997\n0.899597 0.805725 0.921997\n0.916595 0.807465 0.921997\n0.931976 0.809143 0.921997\n0.945953 0.810760 0.921997\n0.958588 0.812439 0.921997\n0.970032 0.814026 0.921997\n0.980194 0.815582 0.921997\n0.989197 0.817108 0.921997\n0.104736 0.789978 0.925079\n0.130249 0.791992 0.924713\n0.157074 0.793945 0.924408\n0.185394 0.795959 0.924072\n0.215393 0.797913 0.923737\n0.247162 0.799835 0.923431\n0.281158 0.801788 0.923126\n0.317261 0.803680 0.922821\n0.355377 0.805542 0.922546\n0.395416 0.807404 0.922241\n0.437012 0.809204 0.921997\n0.480042 0.811127 0.921997\n0.524078 0.812927 0.921997\n0.568207 0.814667 0.921997\n0.611023 0.816437 0.921997\n0.651794 0.818207 0.921997\n0.690277 0.819916 0.921997\n0.726166 0.821655 0.921997\n0.759155 0.823334 0.921997\n0.789001 0.824951 0.921997\n0.816132 0.826599 0.921997\n0.840637 0.828217 0.921997\n0.862946 0.829773 0.921997\n0.883179 0.831390 0.921997\n0.901581 0.832886 0.921997\n0.918335 0.834381 0.921997\n0.933563 0.835876 0.921997\n0.947388 0.837311 0.921997\n0.959869 0.838776 0.921997\n0.971130 0.840210 0.921997\n0.981171 0.841583 0.921997\n0.990021 0.842926 0.921997\n0.107910 0.819061 0.924408\n0.133606 0.820862 0.924072\n0.160583 0.822601 0.923737\n0.189087 0.824402 0.923431\n0.219269 0.826141 0.923126\n0.251312 0.827850 0.922852\n0.285553 0.829620 0.922546\n0.321899 0.831329 0.922272\n0.360199 0.833008 0.921997\n0.400482 0.834686 0.921997\n0.442230 0.836273 0.921997\n0.485382 0.837952 0.921997\n0.529510 0.839569 0.921997\n0.573456 0.841125 0.921997\n0.615967 0.842712 0.921997\n0.656525 0.844330 0.921997\n0.694702 0.845825 0.921997\n0.730164 0.847351 0.921997\n0.762756 0.848877 0.921997\n0.792267 0.850281 0.921997\n0.819031 0.851746 0.921997\n0.843292 0.853180 0.921997\n0.865265 0.854584 0.921997\n0.885284 0.855988 0.921997\n0.903473 0.857300 0.921997\n0.920013 0.858643 0.921997\n0.935089 0.859985 0.921997\n0.948730 0.861237 0.921997\n0.961090 0.862518 0.921997\n0.972198 0.863770 0.921997\n0.982086 0.864960 0.921997\n0.990845 0.866150 0.921997\n0.111053 0.845215 0.923767\n0.136902 0.846832 0.923431\n0.164062 0.848389 0.923157\n0.192780 0.850006 0.922852\n0.223175 0.851593 0.922577\n0.255463 0.853149 0.922272\n0.289886 0.854675 0.921997\n0.326416 0.856171 0.921997\n0.365051 0.857697 0.921997\n0.405487 0.859192 0.921997\n0.447388 0.860657 0.921997\n0.490570 0.862122 0.921997\n0.534821 0.863586 0.921997\n0.578644 0.864990 0.921997\n0.620880 0.866364 0.921997\n0.661133 0.867798 0.921997\n0.698914 0.869110 0.921997\n0.734039 0.870483 0.921997\n0.766235 0.871826 0.921997\n0.795441 0.873108 0.921997\n0.821838 0.874390 0.921997\n0.845795 0.875641 0.921997\n0.867554 0.876892 0.921997\n0.887329 0.878113 0.921997\n0.905304 0.879303 0.921997\n0.921661 0.880493 0.921997\n0.936584 0.881653 0.921997\n0.950012 0.882782 0.921997\n0.962250 0.883881 0.921997\n0.973206 0.884979 0.921997\n0.982971 0.886017 0.921997\n0.991608 0.887085 0.921997\n0.114258 0.868744 0.923157\n0.140198 0.870209 0.922882\n0.167542 0.871643 0.922577\n0.196442 0.873077 0.922272\n0.227112 0.874481 0.921997\n0.259583 0.875885 0.921997\n0.294281 0.877258 0.921997\n0.331085 0.878601 0.921997\n0.369873 0.879974 0.921997\n0.410461 0.881287 0.921997\n0.452484 0.882568 0.921997\n0.495819 0.883881 0.921997\n0.540009 0.885193 0.921997\n0.583618 0.886444 0.921997\n0.625671 0.887726 0.921997\n0.665588 0.888947 0.921997\n0.703033 0.890137 0.921997\n0.737823 0.891327 0.921997\n0.769562 0.892517 0.921997\n0.798462 0.893677 0.921997\n0.824554 0.894806 0.921997\n0.848236 0.895905 0.921997\n0.869720 0.897034 0.921997\n0.889282 0.898102 0.921997\n0.907043 0.899139 0.921997\n0.923248 0.900208 0.921997\n0.937958 0.901245 0.921997\n0.951294 0.902191 0.921997\n0.963379 0.903168 0.921997\n0.974152 0.904114 0.921997\n0.983826 0.905060 0.921997\n0.992310 0.905975 0.921997\n0.117401 0.890015 0.922607\n0.143555 0.891296 0.922302\n0.171051 0.892609 0.922028\n0.200104 0.893860 0.921997\n0.230927 0.895111 0.921997\n0.263702 0.896393 0.921997\n0.298615 0.897614 0.921997\n0.335602 0.898834 0.921997\n0.374603 0.900055 0.921997\n0.415375 0.901245 0.921997\n0.457581 0.902374 0.921997\n0.500946 0.903564 0.921997\n0.545166 0.904724 0.921997\n0.588562 0.905823 0.921997\n0.630280 0.906952 0.921997\n0.669861 0.908020 0.921997\n0.707092 0.909119 0.921997\n0.741455 0.910187 0.921997\n0.772827 0.911194 0.921997\n0.801392 0.912201 0.921997\n0.827179 0.913239 0.921997\n0.850555 0.914215 0.921997\n0.871826 0.915222 0.921997\n0.891144 0.916168 0.921997\n0.908722 0.917084 0.921997\n0.924744 0.917969 0.921997\n0.939270 0.918884 0.921997\n0.952454 0.919708 0.921997\n0.964386 0.920593 0.921997\n0.975067 0.921448 0.921997\n0.984619 0.922241 0.921997\n0.992981 0.923065 0.921997\n0.120544 0.909180 0.922028\n0.146851 0.910370 0.921997\n0.174530 0.911469 0.921997\n0.203796 0.912659 0.921997\n0.234772 0.913727 0.921997\n0.267792 0.914886 0.921997\n0.302979 0.916016 0.921997\n0.340149 0.917084 0.921997\n0.379364 0.918152 0.921997\n0.420258 0.919220 0.921997\n0.462494 0.920258 0.921997\n0.506012 0.921295 0.921997\n0.550171 0.922333 0.921997\n0.593323 0.923279 0.921997\n0.634857 0.924286 0.921997\n0.674072 0.925262 0.921997\n0.710938 0.926208 0.921997\n0.744965 0.927155 0.921997\n0.776031 0.928040 0.921997\n0.804169 0.928955 0.921997\n0.829712 0.929871 0.921997\n0.852814 0.930695 0.921997\n0.873840 0.931549 0.921997\n0.892944 0.932465 0.921997\n0.910339 0.933228 0.921997\n0.926147 0.934021 0.921997\n0.940552 0.934784 0.921997\n0.953613 0.935577 0.921997\n0.965393 0.936310 0.921997\n0.975952 0.937012 0.921997\n0.985352 0.937744 0.921997\n0.993622 0.938446 0.921997\n0.123718 0.926483 0.921997\n0.150116 0.927521 0.921997\n0.177979 0.928528 0.921997\n0.207397 0.929596 0.921997\n0.238647 0.930573 0.921997\n0.271881 0.931549 0.921997\n0.307220 0.932587 0.921997\n0.344635 0.933533 0.921997\n0.384003 0.934479 0.921997\n0.425018 0.935455 0.921997\n0.467407 0.936371 0.921997\n0.510956 0.937286 0.921997\n0.554993 0.938171 0.921997\n0.597961 0.939056 0.921997\n0.639221 0.939972 0.921997\n0.678192 0.940796 0.921997\n0.714661 0.941650 0.921997\n0.748352 0.942444 0.921997\n0.779022 0.943237 0.921997\n0.806885 0.944031 0.921997\n0.832092 0.944855 0.921997\n0.854950 0.945587 0.921997\n0.875732 0.946350 0.921997\n0.894653 0.947052 0.921997\n0.911835 0.947784 0.921997\n0.927521 0.948456 0.921997\n0.941742 0.949158 0.921997\n0.954651 0.949829 0.921997\n0.966309 0.950470 0.921997\n0.976746 0.951080 0.921997\n0.986053 0.951691 0.921997\n0.994202 0.952271 0.921997\n0.126862 0.942078 0.921997\n0.153381 0.942993 0.921997\n0.181427 0.943939 0.921997\n0.211029 0.944855 0.921997\n0.242432 0.945740 0.921997\n0.275879 0.946625 0.921997\n0.311523 0.947510 0.921997\n0.349091 0.948334 0.921997\n0.388580 0.949219 0.921997\n0.429718 0.950012 0.921997\n0.472198 0.950836 0.921997\n0.515778 0.951630 0.921997\n0.559723 0.952423 0.921997\n0.602478 0.953217 0.921997\n0.643433 0.953979 0.921997\n0.682068 0.954712 0.921997\n0.718292 0.955475 0.921997\n0.751617 0.956207 0.921997\n0.781921 0.956909 0.921997\n0.809448 0.957611 0.921997\n0.834381 0.958282 0.921997\n0.856995 0.958923 0.921997\n0.877563 0.959595 0.921997\n0.896271 0.960236 0.921997\n0.913269 0.960815 0.921997\n0.928802 0.961456 0.921997\n0.942902 0.962006 0.921997\n0.955658 0.962585 0.921997\n0.967194 0.963135 0.921997\n0.977539 0.963654 0.921997\n0.986694 0.964203 0.921997\n0.994751 0.964691 0.921997\n0.129974 0.956085 0.921997\n0.156647 0.956909 0.921997\n0.184814 0.957703 0.921997\n0.214630 0.958527 0.921997\n0.246185 0.959290 0.921997\n0.279846 0.960114 0.921997\n0.315674 0.960846 0.921997\n0.353455 0.961609 0.921997\n0.393127 0.962372 0.921997\n0.434296 0.963074 0.921997\n0.476898 0.963806 0.921997\n0.520569 0.964508 0.921997\n0.564331 0.965210 0.921997\n0.606842 0.965912 0.921997\n0.647522 0.966583 0.921997\n0.685822 0.967224 0.921997\n0.721710 0.967834 0.921997\n0.754700 0.968475 0.921997\n0.784698 0.969086 0.921997\n0.811920 0.969696 0.921997\n0.836578 0.970276 0.921997\n0.858917 0.970856 0.921997\n0.879272 0.971375 0.921997\n0.897797 0.971924 0.921997\n0.914673 0.972473 0.921997\n0.930023 0.972992 0.921997\n0.943970 0.973480 0.921997\n0.956604 0.973969 0.921997\n0.967987 0.974426 0.921997\n0.978241 0.974915 0.921997\n0.987305 0.975342 0.921997\n0.995300 0.975739 0.921997\n0.133026 0.968597 0.921997\n0.159882 0.969299 0.921997\n0.188171 0.970032 0.921997\n0.218140 0.970734 0.921997\n0.249939 0.971436 0.921997\n0.283783 0.972107 0.921997\n0.319794 0.972778 0.921997\n0.357727 0.973450 0.921997\n0.397522 0.974060 0.921997\n0.438812 0.974701 0.921997\n0.481445 0.975342 0.921997\n0.525085 0.975983 0.921997\n0.568787 0.976562 0.921997\n0.611084 0.977142 0.921997\n0.651459 0.977722 0.921997\n0.689423 0.978302 0.921997\n0.725006 0.978821 0.921997\n0.757660 0.979401 0.921997\n0.787292 0.979919 0.921997\n0.814240 0.980408 0.921997\n0.838593 0.980896 0.921997\n0.860748 0.981415 0.921997\n0.880920 0.981873 0.921997\n0.899231 0.982330 0.921997\n0.915955 0.982788 0.921997\n0.931122 0.983215 0.921997\n0.944946 0.983612 0.921997\n0.957428 0.984009 0.921997\n0.968781 0.984406 0.921997\n0.978882 0.984802 0.921997\n0.987854 0.985168 0.921997\n0.995728 0.985504 0.921997\n0.047302 0.008667 0.951691\n0.069550 0.009583 0.951508\n0.092834 0.010559 0.951294\n0.117218 0.011536 0.951080\n0.142853 0.012573 0.950836\n0.169861 0.013611 0.950623\n0.198364 0.014648 0.950378\n0.228638 0.015717 0.950134\n0.260834 0.016846 0.949890\n0.295166 0.017944 0.949615\n0.331573 0.019104 0.949341\n0.369934 0.020294 0.949097\n0.410187 0.021484 0.948822\n0.451965 0.022736 0.948517\n0.494934 0.023956 0.948242\n0.538910 0.025208 0.947937\n0.582520 0.026489 0.947632\n0.624390 0.027802 0.947327\n0.664337 0.029083 0.947052\n0.701935 0.030426 0.946716\n0.736786 0.031769 0.946411\n0.768768 0.033173 0.946075\n0.797791 0.034576 0.945740\n0.824097 0.035950 0.945435\n0.847992 0.037384 0.945099\n0.869659 0.038788 0.944794\n0.889374 0.040253 0.944458\n0.907349 0.041748 0.944122\n0.923615 0.043182 0.943787\n0.938507 0.044678 0.943451\n0.951996 0.046234 0.943115\n0.964172 0.047729 0.942810\n0.049133 0.030365 0.951294\n0.071564 0.031403 0.951080\n0.094971 0.032471 0.950836\n0.119476 0.033539 0.950653\n0.145294 0.034607 0.950378\n0.172485 0.035767 0.950134\n0.201233 0.036896 0.949890\n0.231720 0.038086 0.949615\n0.264191 0.039276 0.949341\n0.298737 0.040497 0.949097\n0.335480 0.041748 0.948822\n0.374054 0.042969 0.948547\n0.414581 0.044312 0.948242\n0.456573 0.045593 0.947937\n0.499695 0.046906 0.947662\n0.543793 0.048279 0.947357\n0.587311 0.049683 0.947052\n0.629028 0.051025 0.946747\n0.668762 0.052460 0.946442\n0.706085 0.053864 0.946075\n0.740631 0.055298 0.945801\n0.772339 0.056763 0.945465\n0.801056 0.058228 0.945129\n0.827057 0.059692 0.944794\n0.850708 0.061218 0.944458\n0.872131 0.062744 0.944122\n0.891663 0.064301 0.943787\n0.909454 0.065857 0.943481\n0.925568 0.067383 0.943146\n0.940247 0.069000 0.942810\n0.953583 0.070587 0.942444\n0.965546 0.072174 0.942139\n0.051086 0.053131 0.950836\n0.073639 0.054260 0.950653\n0.097198 0.055389 0.950409\n0.121887 0.056549 0.950134\n0.147858 0.057739 0.949921\n0.175262 0.058990 0.949646\n0.204163 0.060211 0.949371\n0.234894 0.061493 0.949097\n0.267639 0.062775 0.948822\n0.302490 0.064056 0.948547\n0.339478 0.065430 0.948273\n0.378387 0.066772 0.947937\n0.419098 0.068146 0.947662\n0.461243 0.069580 0.947357\n0.504608 0.070953 0.947052\n0.548767 0.072449 0.946747\n0.592102 0.073914 0.946442\n0.633728 0.075378 0.946106\n0.673248 0.076874 0.945801\n0.710297 0.078430 0.945465\n0.744568 0.079956 0.945129\n0.775909 0.081512 0.944824\n0.804291 0.083038 0.944489\n0.830017 0.084656 0.944122\n0.853424 0.086243 0.943787\n0.874603 0.087891 0.943481\n0.893921 0.089508 0.943146\n0.911469 0.091187 0.942810\n0.927460 0.092804 0.942474\n0.942017 0.094513 0.942139\n0.955139 0.096222 0.941803\n0.966980 0.097870 0.941467\n0.053131 0.076996 0.950409\n0.075806 0.078186 0.950165\n0.099518 0.079437 0.949921\n0.124359 0.080719 0.949646\n0.150513 0.082031 0.949371\n0.178101 0.083374 0.949127\n0.207275 0.084686 0.948822\n0.238251 0.086060 0.948547\n0.271179 0.087433 0.948273\n0.306335 0.088867 0.947968\n0.343628 0.090332 0.947662\n0.382751 0.091766 0.947388\n0.423706 0.093262 0.947052\n0.466095 0.094757 0.946747\n0.509552 0.096252 0.946442\n0.553772 0.097839 0.946106\n0.597046 0.099396 0.945801\n0.638428 0.100952 0.945465\n0.677734 0.102600 0.945129\n0.714447 0.104187 0.944855\n0.748444 0.105835 0.944489\n0.779510 0.107513 0.944153\n0.807556 0.109161 0.943817\n0.833038 0.110901 0.943481\n0.856140 0.112579 0.943146\n0.877106 0.114288 0.942810\n0.896179 0.116028 0.942474\n0.913544 0.117798 0.942139\n0.929352 0.119537 0.941833\n0.943695 0.121338 0.941467\n0.956665 0.123108 0.941162\n0.968414 0.124908 0.940826\n0.055237 0.102081 0.949921\n0.078064 0.103424 0.949646\n0.101929 0.104797 0.949371\n0.126953 0.106110 0.949158\n0.153290 0.107544 0.948853\n0.181091 0.108978 0.948547\n0.210449 0.110443 0.948273\n0.241699 0.111938 0.947968\n0.274902 0.113403 0.947662\n0.310303 0.114929 0.947388\n0.347839 0.116516 0.947052\n0.387299 0.118073 0.946747\n0.428467 0.119659 0.946442\n0.471039 0.121277 0.946136\n0.514709 0.122894 0.945801\n0.558960 0.124603 0.945465\n0.602051 0.126251 0.945129\n0.643250 0.127960 0.944855\n0.682312 0.129700 0.944489\n0.718719 0.131409 0.944153\n0.752380 0.133179 0.943848\n0.783081 0.134949 0.943512\n0.810822 0.136719 0.943176\n0.835968 0.138550 0.942841\n0.858826 0.140381 0.942505\n0.879578 0.142181 0.942169\n0.898438 0.144043 0.941833\n0.915619 0.145935 0.941467\n0.931244 0.147766 0.941193\n0.945404 0.149658 0.940826\n0.958221 0.151520 0.940491\n0.969788 0.153473 0.940186\n0.057465 0.128571 0.949402\n0.080444 0.130005 0.949158\n0.104492 0.131500 0.948853\n0.129639 0.132935 0.948578\n0.156158 0.134491 0.948273\n0.184113 0.135986 0.947998\n0.213745 0.137604 0.947662\n0.245239 0.139221 0.947418\n0.278748 0.140808 0.947052\n0.314453 0.142517 0.946747\n0.352264 0.144196 0.946442\n0.391907 0.145844 0.946167\n0.433350 0.147583 0.945801\n0.476135 0.149323 0.945465\n0.519928 0.151062 0.945160\n0.564117 0.152832 0.944855\n0.606995 0.154663 0.944489\n0.648132 0.156464 0.944153\n0.686859 0.158356 0.943848\n0.723022 0.160156 0.943512\n0.756317 0.162079 0.943176\n0.786652 0.163971 0.942841\n0.814056 0.165863 0.942505\n0.838959 0.167816 0.942169\n0.861511 0.169769 0.941833\n0.881989 0.171692 0.941498\n0.900696 0.173706 0.941193\n0.917664 0.175629 0.940857\n0.933075 0.177643 0.940491\n0.947113 0.179688 0.940186\n0.959747 0.181671 0.939880\n0.971161 0.183716 0.939575\n0.059784 0.156494 0.948853\n0.082916 0.158142 0.948578\n0.107056 0.159729 0.948273\n0.132416 0.161346 0.947998\n0.159149 0.162994 0.947693\n0.187286 0.164642 0.947418\n0.217194 0.166382 0.947083\n0.248901 0.168121 0.946777\n0.282684 0.169861 0.946472\n0.318756 0.171661 0.946167\n0.356812 0.173492 0.945831\n0.396698 0.175293 0.945496\n0.438293 0.177155 0.945190\n0.481293 0.179047 0.944855\n0.525208 0.180939 0.944519\n0.569397 0.182831 0.944183\n0.612122 0.184753 0.943878\n0.652924 0.186737 0.943512\n0.691437 0.188751 0.943176\n0.727264 0.190674 0.942871\n0.760223 0.192749 0.942505\n0.790222 0.194794 0.942169\n0.817291 0.196808 0.941864\n0.841888 0.198883 0.941498\n0.864227 0.200958 0.941193\n0.884460 0.203033 0.940857\n0.902954 0.205170 0.940521\n0.919678 0.207275 0.940216\n0.934937 0.209442 0.939880\n0.948792 0.211578 0.939575\n0.961273 0.213684 0.939240\n0.972504 0.215942 0.938934\n0.062164 0.186218 0.948303\n0.085419 0.187988 0.947998\n0.109711 0.189697 0.947723\n0.135284 0.191467 0.947418\n0.162201 0.193298 0.947083\n0.190552 0.195099 0.946777\n0.220703 0.196991 0.946472\n0.252716 0.198853 0.946167\n0.286774 0.200745 0.945862\n0.323059 0.202698 0.945496\n0.361420 0.204651 0.945190\n0.401550 0.206604 0.944855\n0.443359 0.208618 0.944519\n0.486450 0.210602 0.944214\n0.530640 0.212646 0.943878\n0.574738 0.214783 0.943512\n0.617249 0.216797 0.943207\n0.657837 0.218964 0.942871\n0.696045 0.221069 0.942535\n0.731506 0.223206 0.942169\n0.764130 0.225372 0.941864\n0.793762 0.227600 0.941528\n0.820526 0.229797 0.941193\n0.844788 0.231995 0.940857\n0.866852 0.234192 0.940552\n0.886902 0.236481 0.940216\n0.905151 0.238739 0.939880\n0.921692 0.240997 0.939575\n0.936768 0.243317 0.939240\n0.950409 0.245605 0.938965\n0.962769 0.247894 0.938660\n0.973846 0.250244 0.938354\n0.064636 0.217865 0.947723\n0.088043 0.219788 0.947418\n0.112518 0.221649 0.947113\n0.138245 0.223633 0.946777\n0.165344 0.225616 0.946503\n0.193909 0.227509 0.946167\n0.224304 0.229584 0.945862\n0.256592 0.231598 0.945526\n0.290894 0.233673 0.945190\n0.327515 0.235748 0.944885\n0.366180 0.237915 0.944519\n0.406464 0.240021 0.944214\n0.448547 0.242188 0.943878\n0.491760 0.244385 0.943542\n0.536102 0.246582 0.943207\n0.580048 0.248871 0.942871\n0.622375 0.251068 0.942535\n0.662689 0.253357 0.942169\n0.700592 0.255707 0.941895\n0.735779 0.257965 0.941559\n0.768005 0.260315 0.941193\n0.797302 0.262695 0.940887\n0.823730 0.265015 0.940552\n0.847717 0.267456 0.940216\n0.869507 0.269775 0.939911\n0.889313 0.272217 0.939606\n0.907349 0.274658 0.939270\n0.923676 0.277069 0.938965\n0.938568 0.279541 0.938660\n0.952087 0.282013 0.938354\n0.964233 0.284454 0.938049\n0.975128 0.286987 0.937775\n0.067230 0.251709 0.947144\n0.090759 0.253754 0.946777\n0.115387 0.255829 0.946533\n0.141296 0.257935 0.946167\n0.168549 0.260132 0.945862\n0.197418 0.262268 0.945557\n0.227997 0.264465 0.945190\n0.260529 0.266693 0.944885\n0.295227 0.268890 0.944550\n0.332123 0.271210 0.944214\n0.370880 0.273468 0.943909\n0.411591 0.275848 0.943542\n0.453827 0.278168 0.943207\n0.497253 0.280518 0.942902\n0.541595 0.282928 0.942566\n0.585388 0.285400 0.942200\n0.627533 0.287781 0.941895\n0.667603 0.290253 0.941559\n0.705139 0.292755 0.941223\n0.740021 0.295227 0.940887\n0.771851 0.297760 0.940582\n0.800751 0.300262 0.940216\n0.826874 0.302795 0.939941\n0.850616 0.305389 0.939606\n0.872101 0.307953 0.939270\n0.891663 0.310516 0.938995\n0.909485 0.313141 0.938660\n0.925659 0.315735 0.938354\n0.940369 0.318329 0.938049\n0.953674 0.320984 0.937775\n0.965668 0.323578 0.937469\n0.976440 0.326202 0.937195\n0.069824 0.287994 0.946533\n0.093506 0.290253 0.946198\n0.118317 0.292480 0.945862\n0.144379 0.294830 0.945557\n0.171906 0.297180 0.945221\n0.200928 0.299469 0.944916\n0.231781 0.301880 0.944580\n0.264618 0.304291 0.944214\n0.299561 0.306702 0.943909\n0.336700 0.309174 0.943542\n0.375793 0.311615 0.943237\n0.416687 0.314148 0.942902\n0.459137 0.316742 0.942566\n0.502747 0.319244 0.942230\n0.547150 0.321869 0.941895\n0.590759 0.324463 0.941559\n0.632690 0.327026 0.941254\n0.672485 0.329651 0.940918\n0.709717 0.332367 0.940582\n0.744171 0.334930 0.940247\n0.775696 0.337677 0.939941\n0.804199 0.340332 0.939606\n0.830017 0.343048 0.939270\n0.853455 0.345795 0.938995\n0.874664 0.348511 0.938690\n0.894043 0.351227 0.938354\n0.911621 0.354004 0.938049\n0.927612 0.356750 0.937805\n0.942108 0.359497 0.937469\n0.955231 0.362274 0.937195\n0.967102 0.364990 0.936920\n0.977692 0.367828 0.936676\n0.072510 0.326813 0.945892\n0.096344 0.329254 0.945557\n0.121307 0.331635 0.945221\n0.147583 0.334167 0.944916\n0.175293 0.336700 0.944580\n0.204559 0.339203 0.944244\n0.235626 0.341766 0.943939\n0.268707 0.344330 0.943604\n0.304016 0.346954 0.943237\n0.341431 0.349609 0.942902\n0.380737 0.352234 0.942566\n0.421906 0.354980 0.942230\n0.464508 0.357666 0.941925\n0.508240 0.360352 0.941559\n0.552704 0.363129 0.941254\n0.596130 0.365875 0.940918\n0.637787 0.368652 0.940582\n0.677307 0.371429 0.940247\n0.714264 0.374237 0.939972\n0.748352 0.377075 0.939606\n0.779480 0.379883 0.939301\n0.807617 0.382660 0.938995\n0.833130 0.385529 0.938690\n0.856262 0.388428 0.938385\n0.877258 0.391235 0.938080\n0.896362 0.394135 0.937805\n0.913696 0.397003 0.937500\n0.929504 0.399902 0.937195\n0.943817 0.402771 0.936920\n0.956787 0.405670 0.936676\n0.968475 0.408508 0.936401\n0.978912 0.411377 0.936157\n0.075256 0.367950 0.945221\n0.099274 0.370575 0.944916\n0.124390 0.373199 0.944580\n0.150848 0.375854 0.944244\n0.178741 0.378571 0.943939\n0.208221 0.381226 0.943604\n0.239563 0.384003 0.943237\n0.272919 0.386688 0.942932\n0.308533 0.389496 0.942596\n0.346222 0.392273 0.942230\n0.385803 0.395050 0.941925\n0.427124 0.397919 0.941559\n0.469971 0.400818 0.941254\n0.513794 0.403656 0.940948\n0.558258 0.406555 0.940582\n0.601532 0.409485 0.940247\n0.642914 0.412354 0.939972\n0.682129 0.415253 0.939636\n0.718719 0.418152 0.939301\n0.752472 0.421143 0.938995\n0.783203 0.424103 0.938690\n0.810944 0.427063 0.938385\n0.836151 0.430023 0.938080\n0.859039 0.433014 0.937805\n0.879730 0.435944 0.937500\n0.898621 0.438904 0.937225\n0.915802 0.441925 0.936920\n0.931366 0.444855 0.936707\n0.945496 0.447876 0.936401\n0.958282 0.450745 0.936157\n0.969818 0.453735 0.936096\n0.980133 0.456757 0.936096\n0.078064 0.411255 0.944580\n0.102203 0.414032 0.944244\n0.127533 0.416779 0.943970\n0.154144 0.419647 0.943604\n0.182220 0.422394 0.943237\n0.212006 0.425293 0.942932\n0.243591 0.428162 0.942596\n0.277222 0.431000 0.942261\n0.313110 0.433960 0.941956\n0.351044 0.436920 0.941589\n0.390900 0.439819 0.941254\n0.432404 0.442841 0.940948\n0.475433 0.445801 0.940613\n0.519379 0.448822 0.940277\n0.563782 0.451813 0.939972\n0.606812 0.454742 0.939636\n0.648041 0.457825 0.939301\n0.686920 0.460846 0.938995\n0.723114 0.463867 0.938721\n0.756500 0.466919 0.938385\n0.786835 0.470032 0.938080\n0.814270 0.473022 0.937836\n0.839172 0.476135 0.937531\n0.861755 0.479187 0.937225\n0.882202 0.482178 0.936920\n0.900848 0.485260 0.936707\n0.917786 0.488342 0.936432\n0.933167 0.491333 0.936157\n0.947174 0.494415 0.936096\n0.959808 0.497375 0.936096\n0.971161 0.500427 0.936096\n0.981293 0.503479 0.936096\n0.080933 0.456421 0.943970\n0.105255 0.459290 0.943604\n0.130707 0.462189 0.943268\n0.157562 0.465088 0.942932\n0.185791 0.468048 0.942627\n0.215820 0.471100 0.942261\n0.247650 0.474091 0.941956\n0.281586 0.477020 0.941620\n0.317749 0.480164 0.941254\n0.355957 0.483185 0.940948\n0.396057 0.486176 0.940643\n0.437866 0.489258 0.940308\n0.480957 0.492371 0.939972\n0.525055 0.495453 0.939667\n0.569336 0.498566 0.939331\n0.612152 0.501587 0.939056\n0.653137 0.504761 0.938721\n0.691681 0.507874 0.938416\n0.727509 0.510956 0.938080\n0.760498 0.514069 0.937836\n0.790466 0.517273 0.937531\n0.817505 0.520294 0.937256\n0.842102 0.523407 0.936951\n0.864410 0.526611 0.936707\n0.884583 0.529663 0.936432\n0.903046 0.532745 0.936188\n0.919739 0.535767 0.936096\n0.934967 0.538879 0.936096\n0.948792 0.541962 0.936096\n0.961212 0.544922 0.936096\n0.972412 0.547943 0.936096\n0.982452 0.550995 0.936096\n0.083862 0.503021 0.943268\n0.108276 0.506012 0.942963\n0.133942 0.509033 0.942627\n0.160950 0.512115 0.942261\n0.189453 0.515106 0.941956\n0.219696 0.518188 0.941620\n0.251801 0.521271 0.941284\n0.286011 0.524323 0.940948\n0.322449 0.527496 0.940643\n0.360992 0.530640 0.940308\n0.401276 0.533691 0.940002\n0.443207 0.536865 0.939667\n0.486420 0.539978 0.939331\n0.530701 0.543091 0.939056\n0.574890 0.546234 0.938721\n0.617462 0.549347 0.938416\n0.658112 0.552460 0.938110\n0.696350 0.555573 0.937836\n0.731812 0.558655 0.937531\n0.764465 0.561768 0.937256\n0.794006 0.564819 0.936951\n0.820740 0.567871 0.936737\n0.845001 0.570892 0.936432\n0.867004 0.573975 0.936188\n0.886993 0.576904 0.936096\n0.905182 0.579956 0.936096\n0.921692 0.582855 0.936096\n0.936737 0.585785 0.936096\n0.950348 0.588745 0.936096\n0.962646 0.591583 0.936096\n0.973694 0.594482 0.936096\n0.983521 0.597351 0.936096\n0.086853 0.550568 0.942627\n0.111450 0.553619 0.942261\n0.137238 0.556641 0.941986\n0.164459 0.559692 0.941650\n0.193146 0.562714 0.941284\n0.223633 0.565796 0.940979\n0.256012 0.568848 0.940643\n0.290527 0.571869 0.940308\n0.327240 0.574982 0.940002\n0.365997 0.578064 0.939667\n0.406433 0.580994 0.939331\n0.448578 0.584045 0.939056\n0.492035 0.587158 0.938721\n0.536377 0.590118 0.938416\n0.580383 0.593109 0.938110\n0.622681 0.596069 0.937836\n0.663055 0.599091 0.937561\n0.700989 0.602112 0.937286\n0.736084 0.605011 0.936981\n0.768311 0.608002 0.936737\n0.797485 0.610901 0.936462\n0.823883 0.613800 0.936218\n0.847839 0.616699 0.936096\n0.869568 0.619629 0.936096\n0.889282 0.622406 0.936096\n0.907288 0.625244 0.936096\n0.923553 0.628021 0.936096\n0.938416 0.630768 0.936096\n0.951904 0.633545 0.936096\n0.963989 0.636261 0.936096\n0.974915 0.638916 0.936096\n0.984589 0.641632 0.936096\n0.089813 0.597168 0.941986\n0.114563 0.600006 0.941650\n0.140594 0.603027 0.941315\n0.167999 0.605957 0.940979\n0.196899 0.608826 0.940674\n0.227600 0.611847 0.940308\n0.260284 0.614777 0.940002\n0.295013 0.617676 0.939697\n0.332001 0.620605 0.939362\n0.371033 0.623596 0.939056\n0.411682 0.626434 0.938751\n0.454041 0.629364 0.938416\n0.497559 0.632141 0.938141\n0.541962 0.635071 0.937836\n0.585785 0.637970 0.937561\n0.627869 0.640778 0.937286\n0.667938 0.643646 0.936981\n0.705505 0.646454 0.936737\n0.740234 0.649170 0.936462\n0.772064 0.651978 0.936218\n0.800903 0.654785 0.936096\n0.826965 0.657440 0.936096\n0.850616 0.660156 0.936096\n0.872070 0.662872 0.936096\n0.891571 0.665436 0.936096\n0.909332 0.668121 0.936096\n0.925446 0.670685 0.936096\n0.940094 0.673248 0.936096\n0.953369 0.675842 0.936096\n0.965332 0.678314 0.936096\n0.976074 0.680786 0.936096\n0.985596 0.683319 0.936096\n0.092865 0.641663 0.941315\n0.117767 0.644440 0.941010\n0.143951 0.647278 0.940674\n0.171539 0.650116 0.940308\n0.200684 0.652832 0.940033\n0.231628 0.655640 0.939697\n0.264557 0.658447 0.939362\n0.299591 0.661194 0.939056\n0.336823 0.663971 0.938751\n0.376068 0.666748 0.938446\n0.417023 0.669403 0.938141\n0.459503 0.672180 0.937866\n0.503113 0.674896 0.937561\n0.547516 0.677582 0.937286\n0.591156 0.680206 0.937012\n0.632996 0.682831 0.936737\n0.672791 0.685516 0.936493\n0.709961 0.688080 0.936218\n0.744354 0.690674 0.936096\n0.775757 0.693268 0.936096\n0.804230 0.695801 0.936096\n0.829956 0.698273 0.936096\n0.853333 0.700836 0.936096\n0.874481 0.703217 0.936096\n0.893768 0.705658 0.936096\n0.911285 0.708099 0.936096\n0.927246 0.710480 0.936096\n0.941711 0.712830 0.936096\n0.954803 0.715118 0.936096\n0.966614 0.717377 0.936096\n0.977203 0.719666 0.936096\n0.986603 0.721924 0.936096\n0.095978 0.683685 0.940674\n0.121002 0.686310 0.940338\n0.147339 0.688934 0.940063\n0.175171 0.691589 0.939697\n0.204468 0.694122 0.939362\n0.235657 0.696808 0.939056\n0.268860 0.699402 0.938782\n0.304169 0.701904 0.938446\n0.341736 0.704529 0.938171\n0.381073 0.707062 0.937897\n0.422272 0.709534 0.937561\n0.464874 0.712097 0.937286\n0.508606 0.714508 0.937012\n0.553070 0.717041 0.936768\n0.596466 0.719543 0.936493\n0.638031 0.721924 0.936218\n0.677521 0.724304 0.936096\n0.714386 0.726746 0.936096\n0.748352 0.729034 0.936096\n0.779388 0.731445 0.936096\n0.807465 0.733795 0.936096\n0.832886 0.736023 0.936096\n0.855957 0.738281 0.936096\n0.876862 0.740448 0.936096\n0.895905 0.742676 0.936096\n0.913208 0.744904 0.936096\n0.928955 0.746979 0.936096\n0.943237 0.749115 0.936096\n0.956207 0.751190 0.936096\n0.967834 0.753174 0.936096\n0.978333 0.755219 0.936096\n0.987549 0.757263 0.936096\n0.099060 0.722717 0.940063\n0.124268 0.725159 0.939697\n0.150818 0.727570 0.939392\n0.178772 0.730042 0.939087\n0.208344 0.732391 0.938782\n0.239777 0.734772 0.938446\n0.273224 0.737183 0.938171\n0.308807 0.739532 0.937897\n0.346588 0.741882 0.937592\n0.386169 0.744141 0.937317\n0.427582 0.746460 0.937012\n0.470276 0.748779 0.936768\n0.514160 0.751007 0.936493\n0.558533 0.753265 0.936218\n0.601746 0.755463 0.936096\n0.643036 0.757660 0.936096\n0.682129 0.759827 0.936096\n0.718658 0.761993 0.936096\n0.752258 0.764099 0.936096\n0.782898 0.766174 0.936096\n0.810608 0.768219 0.936096\n0.835724 0.770294 0.936096\n0.858521 0.772308 0.936096\n0.879150 0.774292 0.936096\n0.898010 0.776245 0.936096\n0.915131 0.778198 0.936096\n0.930634 0.780029 0.936096\n0.944763 0.781921 0.936096\n0.957550 0.783783 0.936096\n0.969025 0.785553 0.936096\n0.979370 0.787323 0.936096\n0.988495 0.789093 0.936096\n0.102173 0.758514 0.939392\n0.127563 0.760651 0.939117\n0.154266 0.762878 0.938782\n0.182465 0.765106 0.938477\n0.212219 0.767242 0.938171\n0.243896 0.769409 0.937897\n0.277527 0.771515 0.937592\n0.313446 0.773682 0.937317\n0.351471 0.775787 0.937012\n0.391235 0.777863 0.936768\n0.432770 0.779907 0.936493\n0.475708 0.781982 0.936218\n0.519653 0.783966 0.936096\n0.563934 0.785980 0.936096\n0.606934 0.787994 0.936096\n0.647888 0.789886 0.936096\n0.686707 0.791809 0.936096\n0.722839 0.793762 0.936096\n0.756073 0.795624 0.936096\n0.786346 0.797485 0.936096\n0.813660 0.799316 0.936096\n0.838470 0.801178 0.936096\n0.860992 0.802917 0.936096\n0.881409 0.804657 0.936096\n0.900024 0.806366 0.936096\n0.916931 0.808075 0.936096\n0.932281 0.809753 0.936096\n0.946228 0.811401 0.936096\n0.958862 0.813049 0.936096\n0.970215 0.814606 0.936096\n0.980377 0.816162 0.936096\n0.989349 0.817688 0.936096\n0.105347 0.790741 0.938812\n0.130829 0.792725 0.938477\n0.157745 0.794708 0.938171\n0.186096 0.796692 0.937897\n0.216125 0.798615 0.937592\n0.248016 0.800537 0.937317\n0.281891 0.802460 0.937012\n0.318085 0.804321 0.936768\n0.356293 0.806274 0.936493\n0.396332 0.808075 0.936218\n0.438019 0.809937 0.936096\n0.481079 0.811829 0.936096\n0.525085 0.813568 0.936096\n0.569244 0.815369 0.936096\n0.611969 0.817108 0.936096\n0.652649 0.818848 0.936096\n0.691132 0.820526 0.936096\n0.726898 0.822266 0.936096\n0.759766 0.823914 0.936096\n0.789673 0.825562 0.936096\n0.816650 0.827179 0.936096\n0.841156 0.828796 0.936096\n0.863434 0.830383 0.936096\n0.883575 0.831879 0.936096\n0.901947 0.833466 0.936096\n0.918640 0.834991 0.936096\n0.933868 0.836456 0.936096\n0.947632 0.837891 0.936096\n0.960114 0.839294 0.936096\n0.971313 0.840698 0.936096\n0.981354 0.842072 0.936096\n0.990173 0.843414 0.936096\n0.108490 0.819733 0.938171\n0.134186 0.821503 0.937927\n0.161194 0.823303 0.937622\n0.189728 0.825012 0.937317\n0.220001 0.826752 0.937042\n0.252136 0.828522 0.936798\n0.286285 0.830231 0.936523\n0.322693 0.831909 0.936218\n0.361176 0.833588 0.936096\n0.401367 0.835266 0.936096\n0.443207 0.836914 0.936096\n0.486328 0.838562 0.936096\n0.530457 0.840149 0.936096\n0.574463 0.841736 0.936096\n0.616882 0.843323 0.936096\n0.657349 0.844849 0.936096\n0.695526 0.846405 0.936096\n0.730865 0.847870 0.936096\n0.763367 0.849365 0.936096\n0.792908 0.850830 0.936096\n0.819550 0.852234 0.936096\n0.843750 0.853668 0.936096\n0.865723 0.855072 0.936096\n0.885681 0.856445 0.936096\n0.903809 0.857788 0.936096\n0.920349 0.859161 0.936096\n0.935364 0.860443 0.936096\n0.949005 0.861725 0.936096\n0.961304 0.862946 0.936096\n0.972351 0.864197 0.936096\n0.982269 0.865417 0.936096\n0.990967 0.866577 0.936096\n0.111664 0.845825 0.937622\n0.137482 0.847412 0.937347\n0.164703 0.849030 0.937042\n0.193420 0.850555 0.936798\n0.223907 0.852142 0.936523\n0.256256 0.853699 0.936249\n0.290680 0.855194 0.936096\n0.327332 0.856720 0.936096\n0.365997 0.858276 0.936096\n0.406372 0.859741 0.936096\n0.448364 0.861237 0.936096\n0.491638 0.862640 0.936096\n0.535767 0.864075 0.936096\n0.579559 0.865509 0.936096\n0.621765 0.866852 0.936096\n0.661957 0.868286 0.936096\n0.699738 0.869659 0.936096\n0.734711 0.870972 0.936096\n0.766846 0.872284 0.936096\n0.795990 0.873566 0.936096\n0.822357 0.874817 0.936096\n0.846283 0.876129 0.936096\n0.867981 0.877350 0.936096\n0.887695 0.878540 0.936096\n0.905640 0.879730 0.936096\n0.921967 0.880890 0.936096\n0.936798 0.882050 0.936096\n0.950287 0.883179 0.936096\n0.962433 0.884277 0.936096\n0.973389 0.885345 0.936096\n0.983154 0.886414 0.936096\n0.991730 0.887451 0.936096\n0.114807 0.869293 0.937073\n0.140808 0.870758 0.936798\n0.168213 0.872162 0.936523\n0.197113 0.873535 0.936279\n0.227722 0.874969 0.936096\n0.260376 0.876373 0.936096\n0.295044 0.877747 0.936096\n0.331970 0.879089 0.936096\n0.370789 0.880493 0.936096\n0.411316 0.881805 0.936096\n0.453461 0.883087 0.936096\n0.496826 0.884399 0.936096\n0.540955 0.885651 0.936096\n0.584595 0.886932 0.936096\n0.626495 0.888153 0.936096\n0.666382 0.889374 0.936096\n0.703827 0.890594 0.936096\n0.738464 0.891754 0.936096\n0.770233 0.892944 0.936096\n0.799011 0.894104 0.936096\n0.825043 0.895233 0.936096\n0.848694 0.896332 0.936096\n0.870117 0.897430 0.936096\n0.889618 0.898499 0.936096\n0.907379 0.899567 0.936096\n0.923492 0.900574 0.936096\n0.938202 0.901581 0.936096\n0.951508 0.902557 0.936096\n0.963531 0.903503 0.936096\n0.974335 0.904480 0.936096\n0.983948 0.905426 0.936096\n0.992462 0.906281 0.936096\n0.117981 0.890442 0.936554\n0.144135 0.891754 0.936279\n0.171692 0.893097 0.936096\n0.200775 0.894318 0.936096\n0.231628 0.895599 0.936096\n0.264496 0.896851 0.936096\n0.299438 0.898071 0.936096\n0.336517 0.899292 0.936096\n0.375519 0.900513 0.936096\n0.416260 0.901642 0.936096\n0.458496 0.902832 0.936096\n0.501862 0.903961 0.936096\n0.546051 0.905121 0.936096\n0.589447 0.906250 0.936096\n0.631134 0.907349 0.936096\n0.670685 0.908417 0.936096\n0.707825 0.909515 0.936096\n0.742096 0.910553 0.936096\n0.773499 0.911560 0.936096\n0.801910 0.912598 0.936096\n0.827637 0.913574 0.936096\n0.850983 0.914612 0.936096\n0.872192 0.915527 0.936096\n0.891479 0.916504 0.936096\n0.909027 0.917450 0.936096\n0.924988 0.918274 0.936096\n0.939514 0.919189 0.936096\n0.952698 0.920074 0.936096\n0.964569 0.920898 0.936096\n0.975250 0.921722 0.936096\n0.984772 0.922577 0.936096\n0.993103 0.923309 0.936096\n0.121124 0.909607 0.936096\n0.147430 0.910767 0.936096\n0.175201 0.911926 0.936096\n0.204437 0.913025 0.936096\n0.235504 0.914185 0.936096\n0.268616 0.915314 0.936096\n0.303741 0.916412 0.936096\n0.341003 0.917511 0.936096\n0.380249 0.918549 0.936096\n0.421082 0.919586 0.936096\n0.463501 0.920654 0.936096\n0.506897 0.921661 0.936096\n0.551117 0.922699 0.936096\n0.594238 0.923676 0.936096\n0.635620 0.924652 0.936096\n0.674896 0.925629 0.936096\n0.711639 0.926544 0.936096\n0.745575 0.927490 0.936096\n0.776581 0.928406 0.936096\n0.804718 0.929321 0.936096\n0.830139 0.930176 0.936096\n0.853241 0.931030 0.936096\n0.874207 0.931885 0.936096\n0.893280 0.932739 0.936096\n0.910645 0.933533 0.936096\n0.926422 0.934296 0.936096\n0.940796 0.935089 0.936096\n0.953796 0.935852 0.936096\n0.965546 0.936584 0.936096\n0.976105 0.937317 0.936096\n0.985474 0.938019 0.936096\n0.993744 0.938690 0.936096\n0.124298 0.926849 0.936096\n0.150757 0.927917 0.936096\n0.178619 0.928955 0.936096\n0.208099 0.929932 0.936096\n0.239380 0.930939 0.936096\n0.272644 0.931946 0.936096\n0.308014 0.932922 0.936096\n0.345551 0.933899 0.936096\n0.384857 0.934814 0.936096\n0.425903 0.935760 0.936096\n0.468323 0.936707 0.936096\n0.511810 0.937592 0.936096\n0.555878 0.938507 0.936096\n0.598877 0.939392 0.936096\n0.639954 0.940247 0.936096\n0.678955 0.941101 0.936096\n0.715393 0.941956 0.936096\n0.748932 0.942749 0.936096\n0.779602 0.943542 0.936096\n0.807343 0.944305 0.936096\n0.832489 0.945099 0.936096\n0.855316 0.945862 0.936096\n0.876068 0.946594 0.936096\n0.894958 0.947327 0.936096\n0.912109 0.948029 0.936096\n0.927765 0.948730 0.936096\n0.941986 0.949402 0.936096\n0.954834 0.950043 0.936096\n0.966492 0.950714 0.936096\n0.976929 0.951294 0.936096\n0.986176 0.951904 0.936096\n0.994324 0.952515 0.936096\n0.127411 0.942383 0.936096\n0.154022 0.943329 0.936096\n0.182068 0.944244 0.936096\n0.211700 0.945129 0.936096\n0.243164 0.946045 0.936096\n0.276672 0.946960 0.936096\n0.312225 0.947784 0.936096\n0.349945 0.948669 0.936096\n0.389404 0.949493 0.936096\n0.430603 0.950317 0.936096\n0.473114 0.951141 0.936096\n0.516632 0.951935 0.936096\n0.560608 0.952728 0.936096\n0.603333 0.953522 0.936096\n0.644165 0.954285 0.936096\n0.682831 0.955017 0.936096\n0.718903 0.955750 0.936096\n0.752167 0.956482 0.936096\n0.782471 0.957184 0.936096\n0.809875 0.957825 0.936096\n0.834808 0.958496 0.936096\n0.857361 0.959167 0.936096\n0.877869 0.959808 0.936096\n0.896545 0.960449 0.936096\n0.913544 0.961060 0.936096\n0.929016 0.961639 0.936096\n0.943115 0.962250 0.936096\n0.955841 0.962799 0.936096\n0.967316 0.963348 0.936096\n0.977661 0.963867 0.936096\n0.986816 0.964355 0.936096\n0.994873 0.964844 0.936096\n0.130524 0.956390 0.936096\n0.157257 0.957184 0.936096\n0.185486 0.958008 0.936096\n0.215271 0.958801 0.936096\n0.246887 0.959595 0.936096\n0.280548 0.960388 0.936096\n0.316376 0.961151 0.936096\n0.354279 0.961884 0.936096\n0.393921 0.962616 0.936096\n0.435181 0.963379 0.936096\n0.477783 0.964081 0.936096\n0.521332 0.964752 0.936096\n0.565216 0.965454 0.936096\n0.607666 0.966125 0.936096\n0.648254 0.966766 0.936096\n0.686554 0.967468 0.936096\n0.722321 0.968079 0.936096\n0.755219 0.968719 0.936096\n0.785217 0.969299 0.936096\n0.812317 0.969910 0.936096\n0.836945 0.970520 0.936096\n0.859283 0.971039 0.936096\n0.879578 0.971588 0.936096\n0.898071 0.972168 0.936096\n0.914917 0.972687 0.936096\n0.930206 0.973175 0.936096\n0.944122 0.973663 0.936096\n0.956726 0.974121 0.936096\n0.968170 0.974579 0.936096\n0.978363 0.975067 0.936096\n0.987427 0.975494 0.936096\n0.995361 0.975922 0.936096\n0.133606 0.968872 0.936096\n0.160461 0.969543 0.936096\n0.188843 0.970306 0.936096\n0.218781 0.970978 0.936096\n0.250641 0.971710 0.936096\n0.284454 0.972321 0.936096\n0.320526 0.973022 0.936096\n0.358551 0.973694 0.936096\n0.398285 0.974335 0.936096\n0.439667 0.974945 0.936096\n0.482300 0.975586 0.936096\n0.525940 0.976135 0.936096\n0.569641 0.976776 0.936096\n0.611877 0.977356 0.936096\n0.652130 0.977936 0.936096\n0.690125 0.978485 0.936096\n0.725555 0.979004 0.936096\n0.758179 0.979584 0.936096\n0.787811 0.980072 0.936096\n0.814636 0.980560 0.936096\n0.838989 0.981079 0.936096\n0.861084 0.981567 0.936096\n0.881195 0.982025 0.936096\n0.899475 0.982513 0.936096\n0.916199 0.982941 0.936096\n0.931335 0.983337 0.936096\n0.945099 0.983765 0.936096\n0.957611 0.984192 0.936096\n0.968903 0.984558 0.936096\n0.979004 0.984924 0.936096\n0.987976 0.985291 0.936096\n0.995789 0.985657 0.936096\n"
  },
  {
    "path": "packages/sdk/public/resource/luts/Chemical 168.CUBE",
    "content": "#Created by: Adobe Photoshop Export Color Lookup Plugin\n#Copyright: (C) Copyright 2017 RocketStock\nTITLE \"Untitled\"\n\n#LUT size\nLUT_3D_SIZE 32\n\n#data domain\nDOMAIN_MIN 0.0 0.0 0.0\nDOMAIN_MAX 1.0 1.0 1.0\n\n#LUT data points\n0.030975 0.000000 0.042267\n0.046356 0.000519 0.042511\n0.062866 0.001007 0.042755\n0.080841 0.001587 0.043030\n0.100555 0.002167 0.043304\n0.122345 0.002777 0.043579\n0.146667 0.003418 0.043854\n0.173859 0.004028 0.044220\n0.204193 0.004761 0.044525\n0.237457 0.005463 0.044861\n0.273529 0.006195 0.045227\n0.312256 0.006989 0.045563\n0.353241 0.007782 0.045959\n0.396088 0.008575 0.046326\n0.440552 0.009430 0.046722\n0.485718 0.010254 0.047119\n0.529175 0.011139 0.047546\n0.569794 0.012054 0.048004\n0.607635 0.012970 0.048431\n0.642609 0.013916 0.048828\n0.675140 0.014893 0.049347\n0.705536 0.015869 0.049774\n0.734161 0.016876 0.050232\n0.761292 0.017914 0.050751\n0.787201 0.018921 0.051239\n0.812164 0.020020 0.051758\n0.836487 0.021118 0.052246\n0.860352 0.022217 0.052734\n0.884186 0.023315 0.053314\n0.908325 0.024475 0.053833\n0.933258 0.025635 0.054382\n0.959961 0.026825 0.054932\n0.031555 0.015991 0.040802\n0.047028 0.016602 0.041077\n0.063599 0.017151 0.041351\n0.081665 0.017792 0.041626\n0.101440 0.018402 0.041931\n0.123413 0.019073 0.042236\n0.147797 0.019775 0.042572\n0.175110 0.020508 0.042877\n0.205536 0.021240 0.043243\n0.238953 0.022003 0.043579\n0.275146 0.022797 0.043976\n0.313904 0.023651 0.044342\n0.354950 0.024506 0.044769\n0.397827 0.025360 0.045135\n0.442291 0.026245 0.045563\n0.487335 0.027130 0.046021\n0.530670 0.028107 0.046417\n0.571136 0.029053 0.046844\n0.608795 0.030029 0.047333\n0.643616 0.031036 0.047791\n0.676056 0.032104 0.048248\n0.706329 0.033142 0.048737\n0.734833 0.034180 0.049255\n0.761902 0.035309 0.049774\n0.787659 0.036377 0.050232\n0.812592 0.037567 0.050751\n0.836792 0.038727 0.051300\n0.860687 0.039886 0.051819\n0.884369 0.041077 0.052368\n0.908417 0.042267 0.052856\n0.933319 0.043488 0.053467\n0.959961 0.044769 0.053986\n0.032318 0.032898 0.039307\n0.047791 0.033569 0.039581\n0.064423 0.034180 0.039856\n0.082581 0.034882 0.040161\n0.102448 0.035583 0.040527\n0.124512 0.036346 0.040802\n0.149017 0.037109 0.041168\n0.176483 0.037872 0.041504\n0.207031 0.038727 0.041901\n0.240570 0.039581 0.042297\n0.276917 0.040436 0.042664\n0.315704 0.041321 0.043060\n0.356750 0.042267 0.043457\n0.399689 0.043182 0.043884\n0.444092 0.044159 0.044312\n0.489075 0.045135 0.044769\n0.532257 0.046173 0.045197\n0.572540 0.047211 0.045685\n0.610016 0.048279 0.046112\n0.644745 0.049347 0.046600\n0.677002 0.050446 0.047119\n0.707123 0.051605 0.047577\n0.735535 0.052734 0.048126\n0.762482 0.053955 0.048615\n0.788239 0.055115 0.049103\n0.813049 0.056335 0.049652\n0.837158 0.057587 0.050201\n0.860931 0.058838 0.050720\n0.884644 0.060120 0.051270\n0.908600 0.061432 0.051819\n0.933441 0.062744 0.052368\n0.959961 0.064117 0.052948\n0.033081 0.051056 0.037659\n0.048615 0.051788 0.037964\n0.065338 0.052490 0.038300\n0.083557 0.053253 0.038605\n0.103546 0.054077 0.038971\n0.125671 0.054871 0.039276\n0.150360 0.055756 0.039673\n0.177948 0.056610 0.040039\n0.208649 0.057526 0.040405\n0.242279 0.058411 0.040833\n0.278656 0.059418 0.041199\n0.317566 0.060364 0.041626\n0.358673 0.061401 0.042084\n0.401611 0.062408 0.042480\n0.446014 0.063507 0.042938\n0.490875 0.064575 0.043396\n0.533813 0.065674 0.043823\n0.573975 0.066833 0.044312\n0.611267 0.067993 0.044800\n0.645813 0.069153 0.045319\n0.677948 0.070404 0.045776\n0.707916 0.071625 0.046295\n0.736267 0.072876 0.046814\n0.763062 0.074158 0.047333\n0.788727 0.075439 0.047852\n0.813446 0.076782 0.048340\n0.837524 0.078094 0.048920\n0.861237 0.079468 0.049469\n0.884888 0.080872 0.050018\n0.908783 0.082275 0.050568\n0.933502 0.083710 0.051117\n0.959961 0.085175 0.051666\n0.033875 0.070770 0.035919\n0.049469 0.071625 0.036194\n0.066254 0.072418 0.036591\n0.084564 0.073303 0.036896\n0.104706 0.074188 0.037231\n0.126953 0.075104 0.037628\n0.151794 0.076050 0.037964\n0.179504 0.077026 0.038391\n0.210358 0.078033 0.038788\n0.244080 0.079071 0.039185\n0.280518 0.080139 0.039612\n0.319519 0.081207 0.040009\n0.360657 0.082336 0.040497\n0.403595 0.083496 0.040924\n0.447968 0.084656 0.041351\n0.492737 0.085846 0.041840\n0.535522 0.087097 0.042297\n0.575470 0.088379 0.042816\n0.612579 0.089600 0.043243\n0.646973 0.090912 0.043762\n0.678894 0.092255 0.044250\n0.708771 0.093567 0.044800\n0.736969 0.094971 0.045288\n0.763672 0.096344 0.045776\n0.789276 0.097778 0.046326\n0.813965 0.099243 0.046875\n0.837891 0.100677 0.047394\n0.861542 0.102203 0.047943\n0.885040 0.103760 0.048492\n0.908936 0.105225 0.049042\n0.933594 0.106812 0.049622\n0.959961 0.108459 0.050201\n0.034760 0.092529 0.033936\n0.050415 0.093445 0.034241\n0.067322 0.094391 0.034607\n0.085693 0.095367 0.034973\n0.105927 0.096375 0.035339\n0.128296 0.097412 0.035736\n0.153259 0.098511 0.036102\n0.181122 0.099579 0.036530\n0.212097 0.100708 0.036896\n0.245972 0.101898 0.037323\n0.282501 0.103058 0.037750\n0.321533 0.104279 0.038208\n0.362640 0.105499 0.038635\n0.405701 0.106750 0.039093\n0.450043 0.108093 0.039581\n0.494629 0.109406 0.040039\n0.537231 0.110779 0.040497\n0.576965 0.112152 0.041016\n0.613892 0.113556 0.041473\n0.648132 0.115021 0.041962\n0.679932 0.116486 0.042480\n0.709625 0.117981 0.042969\n0.737732 0.119507 0.043457\n0.764343 0.121033 0.043976\n0.789795 0.122589 0.044495\n0.814392 0.124207 0.045074\n0.838287 0.125793 0.045624\n0.861847 0.127441 0.046143\n0.885284 0.129150 0.046692\n0.909088 0.130798 0.047272\n0.933655 0.132538 0.047821\n0.959961 0.134277 0.048401\n0.035706 0.116760 0.031708\n0.051453 0.117767 0.032043\n0.068390 0.118866 0.032410\n0.086884 0.119965 0.032776\n0.107208 0.121124 0.033142\n0.129730 0.122314 0.033539\n0.154785 0.123535 0.033936\n0.182831 0.124756 0.034332\n0.213928 0.126007 0.034760\n0.247894 0.127319 0.035187\n0.284515 0.128632 0.035614\n0.323639 0.130005 0.036072\n0.364807 0.131348 0.036499\n0.407837 0.132782 0.036987\n0.452087 0.134277 0.037445\n0.496582 0.135742 0.037872\n0.538971 0.137238 0.038391\n0.578522 0.138794 0.038849\n0.615234 0.140350 0.039337\n0.649292 0.141968 0.039825\n0.680878 0.143555 0.040314\n0.710541 0.145233 0.040833\n0.738495 0.146973 0.041321\n0.764984 0.148621 0.041840\n0.790375 0.150391 0.042389\n0.814819 0.152161 0.042908\n0.838684 0.153900 0.043457\n0.862122 0.155731 0.044006\n0.885529 0.157562 0.044556\n0.909210 0.159424 0.045044\n0.933746 0.161316 0.045624\n0.959961 0.163208 0.046204\n0.036713 0.143982 0.029114\n0.052490 0.145142 0.029480\n0.069550 0.146393 0.029846\n0.088135 0.147644 0.030243\n0.108551 0.148895 0.030609\n0.131195 0.150269 0.030975\n0.156403 0.151642 0.031433\n0.184631 0.153015 0.031860\n0.215851 0.154480 0.032257\n0.249878 0.155914 0.032654\n0.286682 0.157410 0.033081\n0.325806 0.158936 0.033600\n0.367035 0.160492 0.033966\n0.410004 0.162079 0.034454\n0.454254 0.163727 0.034912\n0.498627 0.165344 0.035400\n0.540802 0.167053 0.035858\n0.580109 0.168823 0.036285\n0.616608 0.170502 0.036804\n0.650452 0.172302 0.037323\n0.681946 0.174103 0.037781\n0.711456 0.175964 0.038300\n0.739288 0.177795 0.038788\n0.765656 0.179657 0.039276\n0.790924 0.181610 0.039825\n0.815338 0.183563 0.040375\n0.839050 0.185516 0.040863\n0.862457 0.187531 0.041412\n0.885742 0.189575 0.041931\n0.909393 0.191589 0.042480\n0.933838 0.193665 0.043030\n0.959961 0.195709 0.043549\n0.037750 0.174744 0.026154\n0.053650 0.176086 0.026520\n0.070740 0.177490 0.026886\n0.089478 0.178955 0.027252\n0.109985 0.180389 0.027649\n0.132751 0.181915 0.028076\n0.158112 0.183411 0.028412\n0.186493 0.185028 0.028870\n0.217834 0.186615 0.029297\n0.252045 0.188232 0.029724\n0.288849 0.189911 0.030151\n0.328033 0.191650 0.030609\n0.369293 0.193390 0.031036\n0.412292 0.195190 0.031494\n0.456451 0.196960 0.031982\n0.500702 0.198792 0.032410\n0.542633 0.200684 0.032867\n0.581726 0.202576 0.033356\n0.618011 0.204468 0.033813\n0.651672 0.206451 0.034302\n0.683014 0.208374 0.034821\n0.712341 0.210419 0.035278\n0.740082 0.212463 0.035828\n0.766357 0.214508 0.036316\n0.791473 0.216583 0.036804\n0.815796 0.218719 0.037323\n0.839447 0.220795 0.037811\n0.862762 0.222961 0.038391\n0.885956 0.225159 0.038940\n0.909576 0.227325 0.039429\n0.933960 0.229553 0.039948\n0.959961 0.231750 0.040497\n0.038879 0.209534 0.022705\n0.054810 0.210999 0.023071\n0.072052 0.212585 0.023468\n0.090820 0.214172 0.023834\n0.111481 0.215790 0.024231\n0.134369 0.217468 0.024628\n0.159882 0.219177 0.025055\n0.188416 0.220917 0.025482\n0.219910 0.222687 0.025848\n0.254211 0.224457 0.026306\n0.291077 0.226288 0.026733\n0.330383 0.228180 0.027191\n0.371643 0.230072 0.027649\n0.414581 0.232025 0.028076\n0.458771 0.233978 0.028534\n0.502808 0.235962 0.028961\n0.544495 0.237946 0.029449\n0.583313 0.239960 0.029907\n0.619446 0.242096 0.030396\n0.652924 0.244202 0.030914\n0.684052 0.246277 0.031403\n0.713287 0.248413 0.031891\n0.740814 0.250610 0.032379\n0.767029 0.252808 0.032837\n0.792053 0.255005 0.033386\n0.816254 0.257263 0.033905\n0.839844 0.259491 0.034424\n0.863068 0.261810 0.034912\n0.886261 0.264038 0.035461\n0.909729 0.266357 0.035980\n0.933990 0.268738 0.036469\n0.959961 0.271027 0.037018\n0.040009 0.248047 0.018829\n0.056000 0.249756 0.019226\n0.073364 0.251465 0.019592\n0.092255 0.253143 0.019989\n0.113007 0.254913 0.020386\n0.136078 0.256744 0.020813\n0.161743 0.258575 0.021179\n0.190399 0.260437 0.021606\n0.222076 0.262390 0.022034\n0.256439 0.264252 0.022461\n0.293427 0.266235 0.022919\n0.332764 0.268280 0.023315\n0.373993 0.270264 0.023773\n0.416962 0.272339 0.024231\n0.461060 0.274384 0.024658\n0.504944 0.276520 0.025146\n0.546326 0.278656 0.025604\n0.584991 0.280762 0.026093\n0.620880 0.282990 0.026581\n0.654175 0.285217 0.027069\n0.685150 0.287415 0.027557\n0.714233 0.289673 0.028046\n0.741638 0.291992 0.028534\n0.767700 0.294220 0.029083\n0.792633 0.296570 0.029572\n0.816772 0.298920 0.030090\n0.840240 0.301178 0.030609\n0.863403 0.303558 0.031128\n0.886475 0.305908 0.031616\n0.909851 0.308319 0.032135\n0.934082 0.310760 0.032684\n0.959961 0.313141 0.033173\n0.041290 0.290131 0.014526\n0.057312 0.291870 0.014923\n0.074768 0.293732 0.015320\n0.093750 0.295563 0.015717\n0.114624 0.297424 0.016113\n0.137817 0.299377 0.016541\n0.163605 0.301331 0.016968\n0.192474 0.303284 0.017395\n0.224243 0.305328 0.017822\n0.258728 0.307343 0.018219\n0.295807 0.309418 0.018677\n0.335205 0.311523 0.019135\n0.376495 0.313599 0.019562\n0.419373 0.315765 0.020050\n0.463348 0.317902 0.020477\n0.507080 0.320129 0.020966\n0.548248 0.322357 0.021454\n0.586670 0.324554 0.021942\n0.622345 0.326843 0.022430\n0.655426 0.329163 0.022919\n0.686218 0.331360 0.023407\n0.715149 0.333740 0.023926\n0.742432 0.336090 0.024445\n0.768372 0.338379 0.024902\n0.793274 0.340790 0.025452\n0.817230 0.343079 0.025940\n0.840668 0.345551 0.026459\n0.863739 0.347961 0.026978\n0.886719 0.350281 0.027527\n0.910004 0.352753 0.028046\n0.934174 0.355225 0.028564\n0.959961 0.357605 0.029083\n0.042511 0.335266 0.009888\n0.058655 0.337097 0.010284\n0.076172 0.338989 0.010681\n0.095245 0.340942 0.011108\n0.116302 0.342926 0.011536\n0.139648 0.344940 0.011963\n0.165649 0.346954 0.012360\n0.194611 0.348999 0.012787\n0.226532 0.351074 0.013275\n0.261139 0.353149 0.013672\n0.298248 0.355316 0.014130\n0.337677 0.357452 0.014587\n0.378937 0.359619 0.015045\n0.421844 0.361816 0.015533\n0.465729 0.364014 0.015991\n0.509247 0.366272 0.016479\n0.550171 0.368591 0.016968\n0.588348 0.370819 0.017456\n0.623810 0.373138 0.017944\n0.656708 0.375458 0.018494\n0.687317 0.377747 0.018982\n0.716095 0.380127 0.019440\n0.743256 0.382507 0.019989\n0.769073 0.384827 0.020508\n0.793823 0.387238 0.021027\n0.817719 0.389557 0.021515\n0.841064 0.391998 0.022095\n0.864044 0.394440 0.022583\n0.886963 0.396790 0.023132\n0.910217 0.399231 0.023651\n0.934296 0.401672 0.024200\n0.959961 0.404022 0.024750\n0.043793 0.382996 0.004944\n0.060028 0.384918 0.005371\n0.077637 0.386871 0.005798\n0.096832 0.388855 0.006226\n0.118042 0.390869 0.006653\n0.141510 0.392944 0.007080\n0.167664 0.394958 0.007507\n0.196838 0.397064 0.007965\n0.228851 0.399200 0.008392\n0.263550 0.401276 0.008881\n0.300781 0.403442 0.009338\n0.340179 0.405609 0.009796\n0.381500 0.407806 0.010284\n0.424377 0.410034 0.010773\n0.468201 0.412231 0.011292\n0.511444 0.414520 0.011749\n0.552094 0.416809 0.012268\n0.590088 0.419037 0.012756\n0.625275 0.421356 0.013306\n0.657990 0.423645 0.013794\n0.688416 0.425934 0.014313\n0.717010 0.428284 0.014832\n0.744049 0.430664 0.015289\n0.769775 0.432953 0.015869\n0.794403 0.435333 0.016418\n0.818237 0.437683 0.016937\n0.841461 0.440033 0.017487\n0.864380 0.442444 0.018036\n0.887207 0.444763 0.018585\n0.910400 0.447144 0.019135\n0.934357 0.449585 0.019684\n0.959961 0.451874 0.020233\n0.045166 0.432770 0.000000\n0.061493 0.434723 0.000244\n0.079193 0.436737 0.000671\n0.098450 0.438690 0.001099\n0.119781 0.440735 0.001526\n0.143402 0.442780 0.002014\n0.169769 0.444824 0.002472\n0.199066 0.446899 0.002930\n0.231171 0.448975 0.003387\n0.266022 0.451111 0.003876\n0.303284 0.453308 0.004395\n0.342773 0.455414 0.004883\n0.384064 0.457581 0.005371\n0.426941 0.459808 0.005859\n0.470612 0.462006 0.006378\n0.513641 0.464233 0.006866\n0.554077 0.466400 0.007416\n0.591766 0.468658 0.007904\n0.626770 0.470886 0.008453\n0.659241 0.473175 0.008972\n0.689545 0.475403 0.009491\n0.717987 0.477661 0.010040\n0.744843 0.479889 0.010620\n0.770477 0.482178 0.011139\n0.795013 0.484436 0.011688\n0.818726 0.486664 0.012238\n0.841858 0.488953 0.012787\n0.864655 0.491272 0.013367\n0.887451 0.493469 0.013916\n0.910553 0.495728 0.014496\n0.934448 0.498016 0.015076\n0.959961 0.500183 0.015625\n0.046539 0.483826 0.000000\n0.062958 0.485779 0.000000\n0.080780 0.487732 0.000000\n0.100159 0.489624 0.000000\n0.121582 0.491608 0.000000\n0.145355 0.493622 0.000000\n0.171906 0.495605 0.000000\n0.201355 0.497650 0.000000\n0.233643 0.499664 0.000000\n0.268555 0.501678 0.000000\n0.305908 0.503784 0.000000\n0.345337 0.505829 0.000000\n0.386688 0.507874 0.000336\n0.429443 0.509979 0.000916\n0.473053 0.512024 0.001465\n0.515839 0.514099 0.001984\n0.556030 0.516144 0.002533\n0.593445 0.518188 0.003113\n0.628235 0.520294 0.003662\n0.660492 0.522339 0.004211\n0.690674 0.524445 0.004791\n0.718903 0.526520 0.005371\n0.745697 0.528534 0.005951\n0.771149 0.530579 0.006500\n0.795593 0.532684 0.007111\n0.819214 0.534698 0.007690\n0.842285 0.536743 0.008301\n0.865021 0.538757 0.008881\n0.887726 0.540741 0.009491\n0.910675 0.542786 0.010101\n0.934509 0.544739 0.010681\n0.959961 0.546753 0.011292\n0.047974 0.534241 0.000000\n0.064484 0.535980 0.000000\n0.082336 0.537811 0.000000\n0.101929 0.539490 0.000000\n0.123474 0.541290 0.000000\n0.147430 0.543060 0.000000\n0.174072 0.544861 0.000000\n0.203705 0.546661 0.000000\n0.236084 0.548462 0.000000\n0.271088 0.550262 0.000000\n0.308502 0.552124 0.000000\n0.347992 0.553894 0.000000\n0.389313 0.555756 0.000000\n0.432068 0.557587 0.000000\n0.475555 0.559387 0.000000\n0.518097 0.561249 0.000000\n0.558014 0.563141 0.000000\n0.595184 0.564880 0.000000\n0.629730 0.566772 0.000000\n0.661804 0.568604 0.000000\n0.691742 0.570312 0.000488\n0.719879 0.572174 0.001068\n0.746521 0.573944 0.001678\n0.771820 0.575775 0.002350\n0.796143 0.577606 0.002991\n0.819702 0.579315 0.003571\n0.842651 0.581146 0.004211\n0.865295 0.582886 0.004852\n0.887939 0.584656 0.005463\n0.910889 0.586395 0.006134\n0.934601 0.588135 0.006744\n0.959961 0.589844 0.007416\n0.049469 0.581024 0.000000\n0.066040 0.582611 0.000000\n0.083984 0.584198 0.000000\n0.103699 0.585724 0.000000\n0.125427 0.587250 0.000000\n0.149536 0.588867 0.000000\n0.176331 0.590393 0.000000\n0.206055 0.592041 0.000000\n0.238617 0.593567 0.000000\n0.273712 0.595215 0.000000\n0.311188 0.596802 0.000000\n0.350708 0.598358 0.000000\n0.391968 0.599976 0.000000\n0.434692 0.601593 0.000000\n0.478058 0.603149 0.000000\n0.520294 0.604767 0.000000\n0.559998 0.606415 0.000000\n0.596924 0.607941 0.000000\n0.631195 0.609558 0.000000\n0.663086 0.611145 0.000000\n0.692841 0.612671 0.000000\n0.720825 0.614258 0.000000\n0.747345 0.615784 0.000000\n0.772552 0.617371 0.000000\n0.796783 0.618927 0.000000\n0.820190 0.620483 0.000000\n0.843079 0.622009 0.000610\n0.865631 0.623566 0.001282\n0.888153 0.625031 0.001923\n0.911011 0.626587 0.002594\n0.934723 0.628021 0.003235\n0.959961 0.629486 0.003937\n0.050964 0.624176 0.000000\n0.067657 0.625519 0.000000\n0.085724 0.626862 0.000000\n0.105499 0.628235 0.000000\n0.127350 0.629608 0.000000\n0.151611 0.630951 0.000000\n0.178619 0.632355 0.000000\n0.208557 0.633728 0.000000\n0.241150 0.635040 0.000000\n0.276367 0.636475 0.000000\n0.313873 0.637878 0.000000\n0.353394 0.639221 0.000000\n0.394653 0.640625 0.000000\n0.437286 0.641998 0.000000\n0.480530 0.643372 0.000000\n0.522552 0.644745 0.000000\n0.561981 0.646118 0.000000\n0.598633 0.647430 0.000000\n0.632721 0.648834 0.000000\n0.664337 0.650146 0.000000\n0.693970 0.651550 0.000000\n0.721771 0.652924 0.000000\n0.748138 0.654205 0.000000\n0.773224 0.655579 0.000000\n0.797333 0.656891 0.000000\n0.820648 0.658203 0.000000\n0.843445 0.659546 0.000000\n0.865936 0.660858 0.000000\n0.888428 0.662109 0.000000\n0.911194 0.663361 0.000000\n0.934814 0.664642 0.000183\n0.959961 0.665894 0.000885\n0.052490 0.663635 0.000000\n0.069244 0.664795 0.000000\n0.087463 0.665955 0.000000\n0.107361 0.667114 0.000000\n0.129364 0.668365 0.000000\n0.153778 0.669495 0.000000\n0.180969 0.670685 0.000000\n0.211029 0.671875 0.000000\n0.243713 0.673035 0.000000\n0.279083 0.674225 0.000000\n0.316620 0.675446 0.000000\n0.356110 0.676605 0.000000\n0.397369 0.677795 0.000000\n0.439941 0.678955 0.000000\n0.483063 0.680115 0.000000\n0.524780 0.681335 0.000000\n0.563843 0.682495 0.000000\n0.600342 0.683685 0.000000\n0.634155 0.684814 0.000000\n0.665588 0.685974 0.000000\n0.695038 0.687134 0.000000\n0.722717 0.688324 0.000000\n0.748901 0.689453 0.000000\n0.773895 0.690582 0.000000\n0.797882 0.691742 0.000000\n0.821136 0.692841 0.000000\n0.843872 0.693939 0.000000\n0.866241 0.695038 0.000000\n0.888672 0.696167 0.000000\n0.911346 0.697266 0.000000\n0.934875 0.698334 0.000000\n0.959961 0.699402 0.000000\n0.054077 0.699860 0.000000\n0.070923 0.700836 0.000000\n0.089203 0.701843 0.000000\n0.109283 0.702850 0.000000\n0.131378 0.703888 0.000000\n0.155975 0.704865 0.000000\n0.183289 0.705933 0.000000\n0.213501 0.706970 0.000000\n0.246338 0.707947 0.000000\n0.281738 0.708984 0.000000\n0.319336 0.709991 0.000000\n0.358887 0.710999 0.000000\n0.400085 0.712006 0.000000\n0.442596 0.713013 0.000000\n0.485565 0.714050 0.000000\n0.527008 0.715057 0.000000\n0.565826 0.716003 0.000000\n0.602051 0.717041 0.000000\n0.635620 0.718048 0.000000\n0.666870 0.719025 0.000000\n0.696106 0.720001 0.000000\n0.723663 0.721008 0.000000\n0.749695 0.721985 0.000000\n0.774597 0.722931 0.000000\n0.798492 0.723907 0.000000\n0.821625 0.724854 0.000000\n0.844208 0.725800 0.000000\n0.866577 0.726746 0.000000\n0.888855 0.727722 0.000000\n0.911530 0.728607 0.000000\n0.934967 0.729492 0.000000\n0.959961 0.730438 0.000000\n0.055725 0.733307 0.000000\n0.072632 0.734192 0.000000\n0.091003 0.735016 0.000000\n0.111206 0.735901 0.000000\n0.133484 0.736786 0.000000\n0.158203 0.737610 0.000000\n0.185730 0.738495 0.000000\n0.216095 0.739349 0.000000\n0.249054 0.740234 0.000000\n0.284424 0.741119 0.000000\n0.322083 0.742004 0.000000\n0.361603 0.742859 0.000000\n0.402802 0.743744 0.000000\n0.445221 0.744568 0.000000\n0.488098 0.745483 0.000000\n0.529236 0.746338 0.000000\n0.567780 0.747162 0.000000\n0.603699 0.748016 0.000000\n0.637085 0.748901 0.000000\n0.668121 0.749725 0.000000\n0.697205 0.750580 0.000000\n0.724548 0.751404 0.000000\n0.750488 0.752228 0.000000\n0.775238 0.753052 0.000000\n0.799042 0.753876 0.000000\n0.822083 0.754700 0.000000\n0.844635 0.755524 0.000000\n0.866821 0.756287 0.000000\n0.889099 0.757080 0.000000\n0.911713 0.757874 0.000000\n0.935089 0.758667 0.000000\n0.959961 0.759399 0.000000\n0.057312 0.764465 0.000000\n0.074310 0.765198 0.000000\n0.092834 0.765900 0.000000\n0.113159 0.766663 0.000000\n0.135590 0.767426 0.000000\n0.160492 0.768188 0.000000\n0.188171 0.768921 0.000000\n0.218597 0.769684 0.000000\n0.251648 0.770386 0.000000\n0.287170 0.771149 0.000000\n0.324829 0.771881 0.000000\n0.364410 0.772614 0.000000\n0.405518 0.773376 0.000000\n0.447845 0.774109 0.000000\n0.490540 0.774841 0.000000\n0.531372 0.775574 0.000000\n0.569641 0.776276 0.000000\n0.605377 0.777039 0.000000\n0.638519 0.777740 0.000000\n0.669373 0.778473 0.000000\n0.698242 0.779175 0.000000\n0.725464 0.779907 0.000000\n0.751282 0.780609 0.000000\n0.775940 0.781281 0.000000\n0.799591 0.781952 0.000000\n0.822540 0.782654 0.000000\n0.845001 0.783356 0.000000\n0.867157 0.783997 0.000000\n0.889313 0.784698 0.000000\n0.911835 0.785370 0.000000\n0.935150 0.785980 0.000000\n0.959961 0.786621 0.000000\n0.058960 0.793701 0.000000\n0.076080 0.794342 0.000000\n0.094727 0.794952 0.000000\n0.115143 0.795563 0.000000\n0.137726 0.796234 0.000000\n0.162781 0.796844 0.000000\n0.190613 0.797485 0.000000\n0.221222 0.798126 0.000000\n0.254364 0.798767 0.000000\n0.289917 0.799377 0.000000\n0.327606 0.799988 0.000000\n0.367157 0.800659 0.000000\n0.408295 0.801239 0.000000\n0.450470 0.801880 0.000000\n0.492981 0.802551 0.000000\n0.533539 0.803131 0.000000\n0.571594 0.803741 0.000000\n0.607025 0.804352 0.000000\n0.639923 0.804993 0.000000\n0.670593 0.805542 0.000000\n0.699310 0.806152 0.000000\n0.726379 0.806763 0.000000\n0.752075 0.807373 0.000000\n0.776581 0.807922 0.000000\n0.800140 0.808533 0.000000\n0.822968 0.809113 0.000000\n0.845367 0.809692 0.000000\n0.867432 0.810242 0.000000\n0.889557 0.810791 0.000000\n0.911987 0.811371 0.000000\n0.935211 0.811920 0.000000\n0.959961 0.812439 0.000000\n0.060638 0.821381 0.000000\n0.077881 0.821899 0.000000\n0.096588 0.822418 0.000000\n0.117188 0.822998 0.000000\n0.139893 0.823517 0.000000\n0.165100 0.824036 0.000000\n0.193146 0.824615 0.000000\n0.223816 0.825104 0.000000\n0.257050 0.825653 0.000000\n0.292694 0.826141 0.000000\n0.330353 0.826721 0.000000\n0.369904 0.827209 0.000000\n0.410950 0.827759 0.000000\n0.453125 0.828308 0.000000\n0.495422 0.828827 0.000000\n0.535675 0.829315 0.000000\n0.573456 0.829834 0.000000\n0.608612 0.830353 0.000000\n0.641357 0.830872 0.000000\n0.671814 0.831329 0.000000\n0.700317 0.831879 0.000000\n0.727264 0.832367 0.000000\n0.752808 0.832825 0.000000\n0.777222 0.833344 0.000000\n0.800720 0.833832 0.000000\n0.823456 0.834320 0.000000\n0.845734 0.834778 0.000000\n0.867767 0.835236 0.000000\n0.889771 0.835724 0.000000\n0.912109 0.836182 0.000000\n0.935303 0.836639 0.000000\n0.959961 0.837067 0.000000\n0.062408 0.847839 0.000000\n0.079651 0.848267 0.000000\n0.098480 0.848724 0.000000\n0.119202 0.849152 0.000000\n0.142090 0.849640 0.000000\n0.167419 0.850037 0.000000\n0.195618 0.850494 0.000000\n0.226410 0.850922 0.000000\n0.259766 0.851379 0.000000\n0.295410 0.851837 0.000000\n0.333160 0.852234 0.000000\n0.372711 0.852692 0.000000\n0.413696 0.853149 0.000000\n0.455688 0.853577 0.000000\n0.497833 0.854004 0.000000\n0.537811 0.854431 0.000000\n0.575348 0.854858 0.000000\n0.610229 0.855286 0.000000\n0.642731 0.855713 0.000000\n0.672974 0.856110 0.000000\n0.701355 0.856537 0.000000\n0.728119 0.856934 0.000000\n0.753571 0.857300 0.000000\n0.777832 0.857758 0.000000\n0.801208 0.858124 0.000000\n0.823883 0.858521 0.000000\n0.846100 0.858917 0.000000\n0.868042 0.859283 0.000000\n0.889954 0.859650 0.000000\n0.912262 0.860046 0.000000\n0.935364 0.860382 0.000000\n0.959961 0.860779 0.000000\n0.064087 0.873352 0.000000\n0.081512 0.873718 0.000000\n0.100433 0.874084 0.000000\n0.121246 0.874451 0.000000\n0.144287 0.874817 0.000000\n0.169830 0.875153 0.000000\n0.198090 0.875549 0.000000\n0.229034 0.875916 0.000000\n0.262421 0.876251 0.000000\n0.298187 0.876617 0.000000\n0.335907 0.876953 0.000000\n0.375397 0.877319 0.000000\n0.416382 0.877655 0.000000\n0.458282 0.878021 0.000000\n0.500183 0.878387 0.000000\n0.539886 0.878723 0.000000\n0.577118 0.879059 0.000000\n0.611877 0.879395 0.000000\n0.644073 0.879730 0.000000\n0.674133 0.880066 0.000000\n0.702362 0.880432 0.000000\n0.729004 0.880707 0.000000\n0.754272 0.881073 0.000000\n0.778473 0.881378 0.000000\n0.801727 0.881683 0.000000\n0.824310 0.882050 0.000000\n0.846405 0.882355 0.000000\n0.868286 0.882629 0.000000\n0.890137 0.882935 0.000000\n0.912384 0.883240 0.000000\n0.935425 0.883545 0.000000\n0.959961 0.883850 0.000000\n0.065826 0.898254 0.000000\n0.083344 0.898560 0.000000\n0.102356 0.898834 0.000000\n0.123322 0.899109 0.000000\n0.146484 0.899414 0.000000\n0.172150 0.899689 0.000000\n0.200653 0.899963 0.000000\n0.231598 0.900299 0.000000\n0.265198 0.900543 0.000000\n0.300934 0.900879 0.000000\n0.338623 0.901093 0.000000\n0.378113 0.901367 0.000000\n0.419006 0.901672 0.000000\n0.460846 0.901947 0.000000\n0.502472 0.902222 0.000000\n0.541901 0.902496 0.000000\n0.578918 0.902771 0.000000\n0.613373 0.903015 0.000000\n0.645386 0.903290 0.000000\n0.675293 0.903564 0.000000\n0.703339 0.903839 0.000000\n0.729828 0.904083 0.000000\n0.754974 0.904358 0.000000\n0.779053 0.904602 0.000000\n0.802246 0.904846 0.000000\n0.824738 0.905121 0.000000\n0.846771 0.905304 0.000000\n0.868561 0.905579 0.000000\n0.890350 0.905792 0.000000\n0.912537 0.906036 0.000000\n0.935486 0.906250 0.000000\n0.959961 0.906494 0.000000\n0.067596 0.922882 0.000000\n0.085175 0.923096 0.000000\n0.104340 0.923340 0.000000\n0.125427 0.923523 0.000000\n0.148712 0.923737 0.000000\n0.174561 0.923981 0.000000\n0.203125 0.924194 0.000000\n0.234283 0.924408 0.000000\n0.267853 0.924591 0.000000\n0.303650 0.924866 0.000000\n0.341370 0.925018 0.000000\n0.380859 0.925262 0.000000\n0.421692 0.925476 0.000000\n0.463348 0.925690 0.000000\n0.504791 0.925873 0.000000\n0.543976 0.926056 0.000000\n0.580658 0.926270 0.000000\n0.614868 0.926483 0.000000\n0.646667 0.926666 0.000000\n0.676422 0.926880 0.000000\n0.704285 0.927063 0.000000\n0.730621 0.927216 0.000000\n0.755676 0.927460 0.000000\n0.779602 0.927643 0.000000\n0.802704 0.927795 0.000000\n0.825104 0.928009 0.000000\n0.847076 0.928162 0.000000\n0.868835 0.928345 0.000000\n0.890564 0.928528 0.000000\n0.912628 0.928711 0.000000\n0.935547 0.928833 0.000000\n0.959961 0.929016 0.000000\n0.069336 0.947632 0.000000\n0.087006 0.947815 0.000000\n0.106293 0.947906 0.000000\n0.127502 0.948090 0.000000\n0.150940 0.948242 0.000000\n0.176941 0.948395 0.000000\n0.205627 0.948517 0.000000\n0.236877 0.948669 0.000000\n0.270508 0.948792 0.000000\n0.306335 0.948975 0.000000\n0.344086 0.949066 0.000000\n0.383514 0.949219 0.000000\n0.424194 0.949371 0.000000\n0.465790 0.949554 0.000000\n0.507019 0.949707 0.000000\n0.545898 0.949829 0.000000\n0.582367 0.949982 0.000000\n0.616364 0.950073 0.000000\n0.647949 0.950195 0.000000\n0.677490 0.950348 0.000000\n0.705231 0.950470 0.000000\n0.731415 0.950592 0.000000\n0.756348 0.950684 0.000000\n0.780212 0.950867 0.000000\n0.803192 0.950958 0.000000\n0.825531 0.951111 0.000000\n0.847412 0.951202 0.000000\n0.869049 0.951355 0.000000\n0.890778 0.951477 0.000000\n0.912781 0.951569 0.000000\n0.935577 0.951691 0.000000\n0.959961 0.951782 0.000000\n0.071106 0.973083 0.000000\n0.088867 0.973145 0.000000\n0.108246 0.973236 0.000000\n0.129608 0.973297 0.000000\n0.153168 0.973358 0.000000\n0.179321 0.973450 0.000000\n0.208160 0.973511 0.000000\n0.239502 0.973633 0.000000\n0.273224 0.973663 0.000000\n0.309052 0.973785 0.000000\n0.346771 0.973846 0.000000\n0.386108 0.973938 0.000000\n0.426819 0.973999 0.000000\n0.468231 0.974091 0.000000\n0.509247 0.974152 0.000000\n0.547791 0.974182 0.000000\n0.584076 0.974304 0.000000\n0.617798 0.974335 0.000000\n0.649200 0.974396 0.000000\n0.678528 0.974457 0.000000\n0.706146 0.974548 0.000000\n0.732208 0.974609 0.000000\n0.756989 0.974670 0.000000\n0.780792 0.974731 0.000000\n0.803680 0.974823 0.000000\n0.825897 0.974854 0.000000\n0.847717 0.974915 0.000000\n0.869324 0.974976 0.000000\n0.890930 0.975037 0.000000\n0.912903 0.975067 0.000000\n0.935699 0.975128 0.000000\n0.959961 0.975189 0.000000\n0.072876 1.000000 0.000000\n0.090729 1.000000 0.000000\n0.110229 1.000000 0.000000\n0.131683 1.000000 0.000000\n0.155426 1.000000 0.000000\n0.181732 1.000000 0.000000\n0.210663 1.000000 0.000000\n0.242035 1.000000 0.000000\n0.275818 1.000000 0.000000\n0.311646 1.000000 0.000000\n0.349365 1.000000 0.000000\n0.388733 1.000000 0.000000\n0.429230 1.000000 0.000000\n0.470642 1.000000 0.000000\n0.511353 1.000000 0.000000\n0.549683 1.000000 0.000000\n0.585693 1.000000 0.000000\n0.619263 1.000000 0.000000\n0.650391 1.000000 0.000000\n0.679565 1.000000 0.000000\n0.707001 1.000000 0.000000\n0.732941 1.000000 0.000000\n0.757660 1.000000 0.000000\n0.781311 1.000000 0.000000\n0.804108 1.000000 0.000000\n0.826324 1.000000 0.000000\n0.848022 1.000000 0.000000\n0.869537 1.000000 0.000000\n0.891083 1.000000 0.000000\n0.913025 1.000000 0.000000\n0.935730 1.000000 0.000000\n0.959961 1.000000 0.000000\n0.031067 0.000183 0.058380\n0.046448 0.000702 0.058655\n0.062988 0.001221 0.058929\n0.080963 0.001801 0.059174\n0.100708 0.002380 0.059479\n0.122559 0.002991 0.059784\n0.146820 0.003632 0.060150\n0.174072 0.004333 0.060455\n0.204468 0.005035 0.060822\n0.237762 0.005737 0.061157\n0.273895 0.006500 0.061523\n0.312561 0.007263 0.061920\n0.353546 0.008057 0.062347\n0.396423 0.008881 0.062744\n0.440826 0.009705 0.063171\n0.485962 0.010590 0.063568\n0.529449 0.011444 0.064026\n0.570038 0.012360 0.064484\n0.607819 0.013275 0.064972\n0.642792 0.014252 0.065430\n0.675293 0.015259 0.065918\n0.705688 0.016235 0.066406\n0.734283 0.017273 0.066895\n0.761353 0.018280 0.067444\n0.787292 0.019348 0.067963\n0.812256 0.020416 0.068481\n0.836548 0.021515 0.069000\n0.860413 0.022644 0.069611\n0.884247 0.023743 0.070160\n0.908356 0.024902 0.070709\n0.933289 0.026062 0.071320\n0.959961 0.027252 0.071869\n0.031708 0.016205 0.056946\n0.047150 0.016815 0.057220\n0.063751 0.017395 0.057526\n0.081818 0.017975 0.057800\n0.101654 0.018646 0.058167\n0.123596 0.019348 0.058502\n0.148041 0.020050 0.058838\n0.175354 0.020752 0.059204\n0.205841 0.021545 0.059540\n0.239288 0.022308 0.059906\n0.275482 0.023132 0.060364\n0.314270 0.023926 0.060760\n0.355286 0.024811 0.061157\n0.398193 0.025696 0.061615\n0.442627 0.026581 0.062042\n0.487640 0.027527 0.062500\n0.530975 0.028442 0.062988\n0.571411 0.029419 0.063446\n0.609009 0.030457 0.063904\n0.643860 0.031433 0.064392\n0.676239 0.032471 0.064911\n0.706451 0.033539 0.065430\n0.734985 0.034607 0.065979\n0.762024 0.035706 0.066467\n0.787781 0.036865 0.067017\n0.812683 0.037933 0.067566\n0.836884 0.039124 0.068115\n0.860718 0.040314 0.068695\n0.884399 0.041534 0.069275\n0.908478 0.042725 0.069824\n0.933319 0.043976 0.070465\n0.959961 0.045258 0.071014\n0.032410 0.033142 0.055481\n0.047913 0.033783 0.055756\n0.064636 0.034454 0.056091\n0.082733 0.035126 0.056427\n0.102661 0.035858 0.056763\n0.124725 0.036621 0.057129\n0.149261 0.037384 0.057495\n0.176758 0.038208 0.057831\n0.207336 0.039032 0.058258\n0.240906 0.039886 0.058655\n0.277191 0.040741 0.059113\n0.316040 0.041626 0.059509\n0.357147 0.042572 0.059967\n0.400085 0.043549 0.060394\n0.444458 0.044495 0.060852\n0.489410 0.045502 0.061340\n0.532532 0.046539 0.061829\n0.572784 0.047577 0.062286\n0.610260 0.048676 0.062775\n0.644958 0.049805 0.063293\n0.677155 0.050873 0.063812\n0.707275 0.052032 0.064331\n0.735687 0.053162 0.064880\n0.762604 0.054382 0.065430\n0.788330 0.055573 0.065979\n0.813141 0.056793 0.066498\n0.837280 0.058044 0.067108\n0.860962 0.059326 0.067657\n0.884674 0.060577 0.068237\n0.908630 0.061890 0.068848\n0.933441 0.063263 0.069427\n0.959961 0.064575 0.070038\n0.033203 0.051331 0.053894\n0.048737 0.052032 0.054230\n0.065521 0.052795 0.054565\n0.083740 0.053558 0.054901\n0.103760 0.054382 0.055298\n0.125946 0.055206 0.055634\n0.150574 0.056061 0.056030\n0.178253 0.056946 0.056458\n0.208954 0.057861 0.056885\n0.242584 0.058777 0.057251\n0.279022 0.059753 0.057709\n0.317902 0.060730 0.058167\n0.359009 0.061768 0.058563\n0.401978 0.062805 0.059082\n0.446350 0.063904 0.059509\n0.491241 0.065002 0.059998\n0.534119 0.066101 0.060516\n0.574219 0.067261 0.061035\n0.611511 0.068420 0.061523\n0.646027 0.069641 0.062042\n0.678101 0.070801 0.062561\n0.708099 0.072083 0.063080\n0.736389 0.073334 0.063629\n0.763184 0.074615 0.064178\n0.788849 0.075928 0.064758\n0.813538 0.077240 0.065308\n0.837616 0.078613 0.065887\n0.861298 0.079987 0.066498\n0.884888 0.081360 0.067047\n0.908813 0.082794 0.067657\n0.933533 0.084259 0.068268\n0.959961 0.085693 0.068848\n0.034027 0.071075 0.052155\n0.049652 0.071899 0.052521\n0.066498 0.072723 0.052856\n0.084808 0.073578 0.053253\n0.104950 0.074524 0.053619\n0.127197 0.075470 0.054047\n0.152039 0.076385 0.054443\n0.179779 0.077393 0.054840\n0.210632 0.078369 0.055267\n0.244415 0.079437 0.055725\n0.280884 0.080536 0.056122\n0.319885 0.081635 0.056580\n0.361053 0.082764 0.057068\n0.404053 0.083893 0.057526\n0.448364 0.085083 0.057983\n0.493134 0.086304 0.058533\n0.535828 0.087524 0.059021\n0.575714 0.088776 0.059509\n0.612823 0.090088 0.060059\n0.647156 0.091339 0.060547\n0.679108 0.092743 0.061096\n0.708954 0.094055 0.061646\n0.737122 0.095459 0.062225\n0.763824 0.096893 0.062744\n0.789368 0.098328 0.063324\n0.813995 0.099762 0.063873\n0.838013 0.101257 0.064453\n0.861572 0.102783 0.065033\n0.885071 0.104279 0.065613\n0.908966 0.105804 0.066254\n0.933624 0.107361 0.066833\n0.959961 0.108978 0.067413\n0.034882 0.092865 0.050232\n0.050598 0.093811 0.050598\n0.067505 0.094727 0.050964\n0.085938 0.095703 0.051392\n0.106140 0.096771 0.051758\n0.128571 0.097809 0.052155\n0.153503 0.098877 0.052582\n0.181427 0.100006 0.053009\n0.212433 0.101135 0.053436\n0.246246 0.102264 0.053894\n0.282867 0.103516 0.054352\n0.321930 0.104706 0.054779\n0.363129 0.105957 0.055267\n0.406067 0.107269 0.055756\n0.450378 0.108551 0.056244\n0.495056 0.109894 0.056732\n0.537537 0.111267 0.057251\n0.577240 0.112671 0.057739\n0.614136 0.114105 0.058289\n0.648315 0.115540 0.058807\n0.680084 0.117004 0.059387\n0.709808 0.118530 0.059906\n0.737885 0.120026 0.060455\n0.764435 0.121582 0.061035\n0.789917 0.123169 0.061584\n0.814453 0.124756 0.062164\n0.838348 0.126404 0.062714\n0.861877 0.128082 0.063354\n0.885345 0.129730 0.063904\n0.909119 0.131439 0.064484\n0.933685 0.133118 0.065063\n0.959961 0.134918 0.065704\n0.035889 0.117126 0.048065\n0.051636 0.118195 0.048431\n0.068634 0.119293 0.048828\n0.087097 0.120422 0.049194\n0.107483 0.121552 0.049622\n0.129944 0.122711 0.050018\n0.155121 0.123932 0.050476\n0.183136 0.125214 0.050873\n0.214233 0.126465 0.051331\n0.248291 0.127808 0.051788\n0.284973 0.129150 0.052216\n0.324005 0.130493 0.052734\n0.365295 0.131897 0.053192\n0.408203 0.133362 0.053680\n0.452484 0.134766 0.054169\n0.497009 0.136292 0.054657\n0.539307 0.137817 0.055176\n0.578796 0.139374 0.055725\n0.615570 0.140961 0.056244\n0.649506 0.142548 0.056732\n0.681122 0.144226 0.057281\n0.710724 0.145844 0.057861\n0.738617 0.147522 0.058380\n0.765106 0.149261 0.058960\n0.790497 0.151001 0.059509\n0.814941 0.152740 0.060089\n0.838745 0.154602 0.060669\n0.862183 0.156342 0.061249\n0.885559 0.158234 0.061829\n0.909271 0.160126 0.062408\n0.933746 0.161987 0.062988\n0.959961 0.163940 0.063599\n0.036896 0.144409 0.045532\n0.052704 0.145599 0.045898\n0.069794 0.146881 0.046326\n0.088379 0.148102 0.046722\n0.108856 0.149414 0.047119\n0.131470 0.150726 0.047546\n0.156769 0.152161 0.047974\n0.184998 0.153534 0.048431\n0.216217 0.154999 0.048859\n0.250305 0.156464 0.049316\n0.287079 0.157990 0.049805\n0.326233 0.159485 0.050232\n0.367462 0.161102 0.050751\n0.410431 0.162689 0.051239\n0.454651 0.164307 0.051758\n0.499023 0.165985 0.052246\n0.541107 0.167633 0.052765\n0.580414 0.169403 0.053253\n0.616882 0.171204 0.053772\n0.650696 0.172943 0.054321\n0.682159 0.174744 0.054810\n0.711609 0.176605 0.055359\n0.739410 0.178497 0.055908\n0.765747 0.180420 0.056458\n0.791016 0.182373 0.057037\n0.815430 0.184296 0.057587\n0.839142 0.186249 0.058136\n0.862488 0.188232 0.058685\n0.885803 0.190277 0.059296\n0.909424 0.192352 0.059845\n0.933868 0.194397 0.060455\n0.959961 0.196503 0.061035\n0.037933 0.175262 0.042603\n0.053864 0.176605 0.042999\n0.070984 0.178009 0.043365\n0.089691 0.179474 0.043793\n0.110260 0.180939 0.044220\n0.133057 0.182434 0.044647\n0.158417 0.184021 0.045074\n0.186859 0.185638 0.045532\n0.218201 0.187225 0.045959\n0.252411 0.188873 0.046417\n0.289337 0.190582 0.046906\n0.328461 0.192261 0.047363\n0.369781 0.194031 0.047852\n0.412689 0.195801 0.048340\n0.456909 0.197632 0.048828\n0.501099 0.199493 0.049316\n0.542969 0.201324 0.049805\n0.582001 0.203278 0.050354\n0.618317 0.205200 0.050873\n0.651917 0.207153 0.051361\n0.683197 0.209137 0.051910\n0.712524 0.211182 0.052460\n0.740173 0.213196 0.052979\n0.766449 0.215302 0.053528\n0.791595 0.217346 0.054077\n0.815857 0.219452 0.054596\n0.839539 0.221619 0.055206\n0.862854 0.223755 0.055756\n0.886017 0.225952 0.056305\n0.909576 0.228149 0.056915\n0.933960 0.230347 0.057465\n0.959961 0.232605 0.058044\n0.039093 0.210052 0.039215\n0.055054 0.211609 0.039612\n0.072235 0.213165 0.040039\n0.091064 0.214752 0.040436\n0.111755 0.216431 0.040863\n0.134705 0.218079 0.041290\n0.160248 0.219818 0.041687\n0.188812 0.221588 0.042175\n0.220276 0.223328 0.042633\n0.254639 0.225159 0.043060\n0.291565 0.227051 0.043549\n0.330811 0.228851 0.044006\n0.372101 0.230774 0.044525\n0.415039 0.232666 0.044983\n0.459167 0.234680 0.045441\n0.503174 0.236694 0.045990\n0.544800 0.238708 0.046448\n0.583618 0.240753 0.046997\n0.619751 0.242859 0.047485\n0.653107 0.244934 0.048065\n0.684265 0.247101 0.048523\n0.713470 0.249268 0.049072\n0.740967 0.251404 0.049652\n0.767151 0.253601 0.050171\n0.792175 0.255829 0.050659\n0.816345 0.258087 0.051270\n0.839935 0.260315 0.051819\n0.863098 0.262573 0.052368\n0.886292 0.264893 0.052948\n0.909760 0.267242 0.053528\n0.934021 0.269531 0.054077\n0.959961 0.271912 0.054657\n0.040253 0.248688 0.035400\n0.056274 0.250336 0.035797\n0.073578 0.252045 0.036163\n0.092529 0.253815 0.036621\n0.113342 0.255615 0.037048\n0.136383 0.257385 0.037476\n0.162109 0.259277 0.037964\n0.190826 0.261139 0.038361\n0.222443 0.263062 0.038849\n0.256866 0.265015 0.039276\n0.293854 0.266968 0.039764\n0.333191 0.268951 0.040222\n0.374481 0.271027 0.040741\n0.417419 0.273071 0.041229\n0.461426 0.275177 0.041687\n0.505280 0.277313 0.042236\n0.546661 0.279449 0.042755\n0.585297 0.281616 0.043243\n0.621185 0.283844 0.043762\n0.654419 0.286011 0.044281\n0.685303 0.288239 0.044830\n0.714417 0.290466 0.045349\n0.741760 0.292755 0.045868\n0.767822 0.295074 0.046448\n0.792755 0.297394 0.046967\n0.816833 0.299683 0.047546\n0.840332 0.302063 0.048065\n0.863434 0.304413 0.048645\n0.886505 0.306793 0.049225\n0.909882 0.309235 0.049774\n0.934113 0.311615 0.050354\n0.959961 0.314026 0.050934\n0.041473 0.290771 0.031128\n0.057556 0.292572 0.031555\n0.074982 0.294373 0.031982\n0.093994 0.296234 0.032410\n0.114960 0.298157 0.032867\n0.138123 0.300079 0.033295\n0.164032 0.302032 0.033783\n0.192871 0.304047 0.034210\n0.224640 0.306061 0.034668\n0.259186 0.308075 0.035156\n0.296295 0.310120 0.035614\n0.335602 0.312256 0.036102\n0.376953 0.314423 0.036591\n0.419861 0.316528 0.037079\n0.463837 0.318756 0.037567\n0.507446 0.320953 0.038116\n0.548584 0.323151 0.038635\n0.587006 0.325378 0.039124\n0.622620 0.327667 0.039673\n0.655670 0.329956 0.040192\n0.686462 0.332245 0.040710\n0.715271 0.334595 0.041260\n0.742554 0.336945 0.041779\n0.768524 0.339264 0.042358\n0.793365 0.341614 0.042938\n0.817352 0.343994 0.043457\n0.840729 0.346436 0.044067\n0.863770 0.348816 0.044586\n0.886749 0.351257 0.045135\n0.910095 0.353668 0.045746\n0.934174 0.356110 0.046295\n0.959961 0.358551 0.046906\n0.042755 0.335907 0.026581\n0.058899 0.337799 0.026978\n0.076447 0.339691 0.027405\n0.095551 0.341675 0.027893\n0.116638 0.343658 0.028320\n0.139954 0.345612 0.028778\n0.165985 0.347748 0.029266\n0.195007 0.349762 0.029694\n0.226929 0.351837 0.030182\n0.261566 0.353973 0.030640\n0.298706 0.356018 0.031158\n0.338135 0.358246 0.031647\n0.379456 0.360474 0.032135\n0.422302 0.362610 0.032684\n0.466278 0.364868 0.033173\n0.509644 0.367126 0.033722\n0.550598 0.369385 0.034180\n0.588684 0.371643 0.034729\n0.624084 0.373993 0.035278\n0.656891 0.376282 0.035828\n0.687531 0.378662 0.036346\n0.716248 0.380951 0.036926\n0.743408 0.383362 0.037445\n0.769196 0.385712 0.037994\n0.793945 0.388123 0.038574\n0.817841 0.390442 0.039154\n0.841095 0.392914 0.039734\n0.864075 0.395233 0.040314\n0.887024 0.397644 0.040894\n0.910248 0.400085 0.041443\n0.934296 0.402557 0.042053\n0.959961 0.404968 0.042603\n0.044067 0.383698 0.021698\n0.060303 0.385651 0.022156\n0.077911 0.387573 0.022583\n0.097168 0.389587 0.023041\n0.118347 0.391632 0.023529\n0.141815 0.393646 0.023987\n0.168030 0.395752 0.024445\n0.197174 0.397827 0.024933\n0.229309 0.399933 0.025421\n0.264008 0.402069 0.025970\n0.301208 0.404205 0.026459\n0.340668 0.406372 0.026947\n0.381958 0.408630 0.027466\n0.424774 0.410828 0.027985\n0.468628 0.413055 0.028503\n0.511810 0.415405 0.029053\n0.552490 0.417603 0.029602\n0.590363 0.419891 0.030121\n0.625549 0.422150 0.030670\n0.658173 0.424530 0.031219\n0.688660 0.426819 0.031769\n0.717224 0.429138 0.032349\n0.744202 0.431519 0.032898\n0.769897 0.433838 0.033539\n0.794495 0.436188 0.034058\n0.818298 0.438538 0.034698\n0.841553 0.440948 0.035217\n0.864441 0.443268 0.035828\n0.887238 0.445648 0.036407\n0.910431 0.447998 0.037018\n0.934357 0.450348 0.037598\n0.959961 0.452759 0.038239\n0.045441 0.433502 0.016602\n0.061798 0.435455 0.017059\n0.079437 0.437439 0.017517\n0.098816 0.439453 0.018005\n0.120148 0.441467 0.018494\n0.143768 0.443512 0.018951\n0.170135 0.445587 0.019470\n0.199463 0.447632 0.019958\n0.231598 0.449768 0.020508\n0.266510 0.451904 0.021027\n0.303772 0.454041 0.021545\n0.343231 0.456238 0.022034\n0.384583 0.458405 0.022614\n0.427368 0.460571 0.023132\n0.471069 0.462799 0.023682\n0.514008 0.464966 0.024231\n0.554474 0.467224 0.024780\n0.592102 0.469452 0.025360\n0.627045 0.471710 0.025940\n0.659485 0.473969 0.026520\n0.689758 0.476257 0.027069\n0.718140 0.478485 0.027679\n0.745026 0.480743 0.028259\n0.770630 0.483032 0.028870\n0.795135 0.485229 0.029449\n0.818817 0.487549 0.030060\n0.841919 0.489807 0.030640\n0.864746 0.492065 0.031281\n0.887482 0.494324 0.031891\n0.910583 0.496552 0.032471\n0.934479 0.498840 0.033081\n0.959961 0.501068 0.033722\n0.046844 0.484558 0.011414\n0.063263 0.486481 0.011902\n0.081024 0.488373 0.012360\n0.100525 0.490387 0.012878\n0.121948 0.492340 0.013397\n0.145782 0.494324 0.013885\n0.172302 0.496338 0.014435\n0.201752 0.498383 0.014954\n0.234070 0.500397 0.015472\n0.269012 0.502441 0.016052\n0.306335 0.504486 0.016571\n0.345886 0.506592 0.017120\n0.387207 0.508636 0.017700\n0.429932 0.510712 0.018280\n0.473572 0.512756 0.018860\n0.516266 0.514862 0.019440\n0.556427 0.516937 0.020050\n0.593811 0.518982 0.020630\n0.628510 0.521057 0.021210\n0.660767 0.523163 0.021851\n0.690887 0.525238 0.022461\n0.719086 0.527252 0.023071\n0.745850 0.529297 0.023682\n0.771301 0.531403 0.024353\n0.795685 0.533447 0.024963\n0.819275 0.535461 0.025604\n0.842346 0.537476 0.026245\n0.865051 0.539490 0.026855\n0.887756 0.541534 0.027527\n0.910706 0.543488 0.028168\n0.934540 0.545471 0.028839\n0.959961 0.547455 0.029480\n0.048248 0.534882 0.006317\n0.064758 0.536682 0.006836\n0.082642 0.538391 0.007385\n0.102234 0.540161 0.007935\n0.123840 0.541931 0.008484\n0.147797 0.543732 0.009033\n0.174500 0.545532 0.009583\n0.204132 0.547333 0.010162\n0.236572 0.549133 0.010742\n0.271576 0.550995 0.011353\n0.308990 0.552765 0.011932\n0.348541 0.554626 0.012573\n0.389832 0.556488 0.013153\n0.432495 0.558258 0.013794\n0.476013 0.560089 0.014404\n0.518494 0.561890 0.015015\n0.558380 0.563751 0.015656\n0.595490 0.565613 0.016296\n0.630035 0.567352 0.016937\n0.662018 0.569214 0.017578\n0.691956 0.571014 0.018280\n0.720062 0.572815 0.018921\n0.746643 0.574615 0.019592\n0.771973 0.576477 0.020264\n0.796265 0.578186 0.020905\n0.819824 0.580017 0.021576\n0.842712 0.581726 0.022278\n0.865356 0.583527 0.022949\n0.887970 0.585266 0.023651\n0.910889 0.586945 0.024323\n0.934662 0.588745 0.024994\n0.959961 0.590424 0.025696\n0.049744 0.581573 0.001740\n0.066315 0.583160 0.002319\n0.084351 0.584747 0.002899\n0.104065 0.586273 0.003510\n0.125763 0.587799 0.004059\n0.149872 0.589417 0.004669\n0.176758 0.591034 0.005310\n0.206543 0.592590 0.005920\n0.239044 0.594208 0.006531\n0.274231 0.595764 0.007172\n0.311676 0.597382 0.007812\n0.351227 0.598999 0.008484\n0.392517 0.600555 0.009125\n0.435150 0.602173 0.009766\n0.478546 0.603760 0.010406\n0.520721 0.605347 0.011108\n0.560333 0.606964 0.011810\n0.597260 0.608551 0.012451\n0.631470 0.610107 0.013123\n0.663300 0.611694 0.013855\n0.693085 0.613281 0.014526\n0.721008 0.614838 0.015198\n0.747467 0.616394 0.015961\n0.772675 0.617981 0.016663\n0.796875 0.619507 0.017334\n0.820282 0.621033 0.018066\n0.843140 0.622559 0.018738\n0.865692 0.624023 0.019501\n0.888214 0.625580 0.020203\n0.911041 0.627075 0.020874\n0.934723 0.628571 0.021637\n0.959961 0.630035 0.022339\n0.051270 0.624664 0.000000\n0.067902 0.626007 0.000000\n0.086029 0.627380 0.000000\n0.105865 0.628723 0.000000\n0.127686 0.630066 0.000183\n0.152008 0.631470 0.000824\n0.179047 0.632843 0.001526\n0.208984 0.634216 0.002167\n0.241669 0.635590 0.002838\n0.276886 0.636993 0.003510\n0.314362 0.638367 0.004181\n0.353912 0.639709 0.004883\n0.395111 0.641113 0.005524\n0.437805 0.642487 0.006287\n0.481079 0.643860 0.006989\n0.522919 0.645264 0.007690\n0.562286 0.646606 0.008362\n0.598938 0.647980 0.009094\n0.632996 0.649323 0.009796\n0.664612 0.650665 0.010559\n0.694153 0.652069 0.011292\n0.721954 0.653351 0.011993\n0.748260 0.654724 0.012726\n0.773346 0.656006 0.013489\n0.797424 0.657349 0.014221\n0.820740 0.658691 0.014984\n0.843536 0.659973 0.015686\n0.865997 0.661255 0.016418\n0.888489 0.662598 0.017181\n0.911224 0.663849 0.017914\n0.934814 0.665100 0.018646\n0.959961 0.666382 0.019379\n0.052826 0.664062 0.000000\n0.069550 0.665222 0.000000\n0.087769 0.666412 0.000000\n0.107758 0.667603 0.000000\n0.129761 0.668732 0.000000\n0.154175 0.669922 0.000000\n0.181427 0.671143 0.000000\n0.211456 0.672302 0.000000\n0.244263 0.673492 0.000000\n0.279541 0.674683 0.000336\n0.317078 0.675842 0.001007\n0.356659 0.677032 0.001770\n0.397827 0.678192 0.002472\n0.440430 0.679413 0.003204\n0.483582 0.680573 0.003906\n0.525177 0.681732 0.004700\n0.564240 0.682922 0.005402\n0.600647 0.684113 0.006165\n0.634460 0.685272 0.006927\n0.665863 0.686401 0.007690\n0.695251 0.687592 0.008453\n0.722870 0.688721 0.009216\n0.749054 0.689850 0.009979\n0.774017 0.690979 0.010681\n0.798004 0.692139 0.011505\n0.821259 0.693237 0.012238\n0.843903 0.694366 0.013000\n0.866302 0.695465 0.013763\n0.888702 0.696564 0.014526\n0.911377 0.697601 0.015289\n0.934875 0.698700 0.016052\n0.959961 0.699829 0.016876\n0.054413 0.700226 0.000000\n0.071259 0.701202 0.000000\n0.089569 0.702209 0.000000\n0.109650 0.703278 0.000000\n0.131744 0.704254 0.000000\n0.156372 0.705261 0.000000\n0.183777 0.706299 0.000000\n0.213989 0.707275 0.000000\n0.246918 0.708313 0.000000\n0.282166 0.709320 0.000000\n0.319855 0.710358 0.000000\n0.359406 0.711365 0.000000\n0.400604 0.712341 0.000000\n0.443054 0.713409 0.000549\n0.486084 0.714417 0.001282\n0.527374 0.715393 0.002045\n0.566193 0.716400 0.002838\n0.602325 0.717407 0.003662\n0.635895 0.718384 0.004425\n0.667114 0.719360 0.005188\n0.696320 0.720367 0.005981\n0.723846 0.721344 0.006744\n0.749878 0.722321 0.007568\n0.774750 0.723297 0.008301\n0.798615 0.724243 0.009125\n0.821716 0.725189 0.009888\n0.844299 0.726135 0.010651\n0.866608 0.727081 0.011444\n0.888916 0.728058 0.012207\n0.911560 0.728943 0.013031\n0.934967 0.729858 0.013794\n0.959961 0.730774 0.014587\n0.055969 0.733612 0.000000\n0.072906 0.734467 0.000000\n0.091370 0.735352 0.000000\n0.111572 0.736206 0.000000\n0.133881 0.737061 0.000000\n0.158630 0.737946 0.000000\n0.186188 0.738831 0.000000\n0.216522 0.739685 0.000000\n0.249542 0.740570 0.000000\n0.284943 0.741425 0.000000\n0.322571 0.742310 0.000000\n0.362122 0.743195 0.000000\n0.403290 0.744080 0.000000\n0.445709 0.744904 0.000000\n0.488525 0.745789 0.000000\n0.529602 0.746613 0.000000\n0.568115 0.747498 0.000641\n0.604004 0.748352 0.001434\n0.637329 0.749176 0.002197\n0.668365 0.750031 0.002991\n0.697418 0.750854 0.003784\n0.724731 0.751709 0.004608\n0.750641 0.752533 0.005402\n0.775360 0.753326 0.006195\n0.799133 0.754181 0.006989\n0.822205 0.754974 0.007782\n0.844666 0.755768 0.008545\n0.866882 0.756592 0.009399\n0.889130 0.757385 0.010193\n0.911743 0.758148 0.010956\n0.935089 0.758911 0.011780\n0.959961 0.759644 0.012543\n0.057648 0.764740 0.000000\n0.074646 0.765442 0.000000\n0.093201 0.766205 0.000000\n0.113556 0.766968 0.000000\n0.135956 0.767700 0.000000\n0.160889 0.768433 0.000000\n0.188599 0.769165 0.000000\n0.219086 0.769897 0.000000\n0.252167 0.770691 0.000000\n0.287659 0.771423 0.000000\n0.325348 0.772156 0.000000\n0.364899 0.772919 0.000000\n0.406036 0.773621 0.000000\n0.448364 0.774384 0.000000\n0.491028 0.775116 0.000000\n0.531738 0.775818 0.000000\n0.570038 0.776581 0.000000\n0.605682 0.777283 0.000000\n0.638824 0.778015 0.000244\n0.669586 0.778717 0.001068\n0.698425 0.779419 0.001862\n0.725647 0.780121 0.002686\n0.751434 0.780853 0.003540\n0.776031 0.781525 0.004303\n0.799683 0.782196 0.005127\n0.822662 0.782928 0.005981\n0.845062 0.783569 0.006744\n0.867218 0.784241 0.007538\n0.889343 0.784943 0.008362\n0.911865 0.785583 0.009155\n0.935150 0.786255 0.009949\n0.959961 0.786865 0.010712\n0.059296 0.793945 0.000000\n0.076447 0.794556 0.000000\n0.095062 0.795166 0.000000\n0.115540 0.795868 0.000000\n0.138123 0.796448 0.000000\n0.163208 0.797089 0.000000\n0.191040 0.797699 0.000000\n0.221680 0.798340 0.000000\n0.254883 0.799011 0.000000\n0.290436 0.799591 0.000000\n0.328156 0.800232 0.000000\n0.367676 0.800873 0.000000\n0.408722 0.801483 0.000000\n0.450989 0.802124 0.000000\n0.493439 0.802765 0.000000\n0.533936 0.803345 0.000000\n0.571869 0.803955 0.000000\n0.607300 0.804596 0.000000\n0.640228 0.805206 0.000000\n0.670776 0.805817 0.000000\n0.699493 0.806366 0.000122\n0.726532 0.807007 0.000946\n0.752197 0.807587 0.001801\n0.776672 0.808136 0.002625\n0.800262 0.808777 0.003448\n0.823059 0.809326 0.004272\n0.845428 0.809906 0.005096\n0.867493 0.810425 0.005890\n0.889587 0.811005 0.006683\n0.912018 0.811554 0.007477\n0.935211 0.812103 0.008270\n0.959961 0.812592 0.009094\n0.061035 0.821564 0.000000\n0.078156 0.822083 0.000000\n0.096954 0.822632 0.000000\n0.117523 0.823181 0.000000\n0.140289 0.823700 0.000000\n0.165558 0.824219 0.000000\n0.193542 0.824799 0.000000\n0.224274 0.825287 0.000000\n0.257599 0.825836 0.000000\n0.293152 0.826385 0.000000\n0.330872 0.826904 0.000000\n0.370453 0.827423 0.000000\n0.411499 0.827942 0.000000\n0.453644 0.828491 0.000000\n0.495880 0.828979 0.000000\n0.536072 0.829498 0.000000\n0.573792 0.830017 0.000000\n0.608948 0.830536 0.000000\n0.641602 0.831055 0.000000\n0.672028 0.831573 0.000000\n0.700562 0.832062 0.000000\n0.727448 0.832550 0.000000\n0.752930 0.833008 0.000275\n0.777344 0.833527 0.001099\n0.800812 0.834015 0.001923\n0.823517 0.834473 0.002716\n0.845795 0.834961 0.003540\n0.867798 0.835419 0.004333\n0.889801 0.835876 0.005157\n0.912109 0.836304 0.005981\n0.935303 0.836792 0.006775\n0.959961 0.837219 0.007538\n0.062683 0.848022 0.000000\n0.080017 0.848419 0.000000\n0.098877 0.848877 0.000000\n0.119598 0.849335 0.000000\n0.142456 0.849792 0.000000\n0.167877 0.850220 0.000000\n0.196045 0.850647 0.000000\n0.226898 0.851105 0.000000\n0.260284 0.851532 0.000000\n0.295929 0.851990 0.000000\n0.333679 0.852386 0.000000\n0.373169 0.852875 0.000000\n0.414154 0.853271 0.000000\n0.456207 0.853729 0.000000\n0.498199 0.854156 0.000000\n0.538177 0.854553 0.000000\n0.575653 0.855011 0.000000\n0.610535 0.855438 0.000000\n0.642975 0.855865 0.000000\n0.673187 0.856293 0.000000\n0.701538 0.856659 0.000000\n0.728333 0.857086 0.000000\n0.753723 0.857452 0.000000\n0.777954 0.857880 0.000000\n0.801300 0.858276 0.000488\n0.823975 0.858673 0.001282\n0.846130 0.859039 0.002106\n0.868073 0.859436 0.002930\n0.890015 0.859802 0.003723\n0.912292 0.860199 0.004547\n0.935394 0.860535 0.005310\n0.959961 0.860931 0.006073\n0.064423 0.873474 0.000000\n0.081818 0.873840 0.000000\n0.100769 0.874207 0.000000\n0.121613 0.874542 0.000000\n0.144653 0.874939 0.000000\n0.170258 0.875275 0.000000\n0.198578 0.875671 0.000000\n0.229523 0.876007 0.000000\n0.262970 0.876373 0.000000\n0.298645 0.876740 0.000000\n0.336395 0.877075 0.000000\n0.375916 0.877441 0.000000\n0.416809 0.877808 0.000000\n0.458771 0.878143 0.000000\n0.500641 0.878479 0.000000\n0.540314 0.878845 0.000000\n0.577454 0.879181 0.000000\n0.612091 0.879517 0.000000\n0.644348 0.879883 0.000000\n0.674347 0.880188 0.000000\n0.702545 0.880554 0.000000\n0.729126 0.880859 0.000000\n0.754395 0.881195 0.000000\n0.778564 0.881500 0.000000\n0.801819 0.881836 0.000000\n0.824402 0.882141 0.000000\n0.846497 0.882446 0.000732\n0.868347 0.882782 0.001556\n0.890228 0.883057 0.002350\n0.912415 0.883362 0.003143\n0.935425 0.883636 0.003906\n0.959961 0.883942 0.004669\n0.066162 0.898346 0.000000\n0.083649 0.898651 0.000000\n0.102753 0.898926 0.000000\n0.123688 0.899261 0.000000\n0.146881 0.899506 0.000000\n0.172638 0.899811 0.000000\n0.201080 0.900085 0.000000\n0.232178 0.900391 0.000000\n0.265686 0.900665 0.000000\n0.301392 0.900940 0.000000\n0.339172 0.901215 0.000000\n0.378632 0.901489 0.000000\n0.419464 0.901764 0.000000\n0.461334 0.902069 0.000000\n0.502930 0.902313 0.000000\n0.542297 0.902618 0.000000\n0.579254 0.902832 0.000000\n0.613617 0.903168 0.000000\n0.645691 0.903412 0.000000\n0.675537 0.903656 0.000000\n0.703522 0.903931 0.000000\n0.729980 0.904175 0.000000\n0.755096 0.904449 0.000000\n0.779175 0.904694 0.000000\n0.802338 0.904968 0.000000\n0.824799 0.905182 0.000000\n0.846832 0.905396 0.000000\n0.868622 0.905670 0.000214\n0.890411 0.905884 0.001007\n0.912537 0.906128 0.001801\n0.935486 0.906342 0.002563\n0.959961 0.906555 0.003326\n0.067871 0.922943 0.000000\n0.085510 0.923187 0.000000\n0.104736 0.923431 0.000000\n0.125824 0.923645 0.000000\n0.149109 0.923828 0.000000\n0.175049 0.924042 0.000000\n0.203613 0.924255 0.000000\n0.234741 0.924469 0.000000\n0.268311 0.924713 0.000000\n0.304138 0.924896 0.000000\n0.341888 0.925079 0.000000\n0.381287 0.925293 0.000000\n0.422119 0.925568 0.000000\n0.463837 0.925751 0.000000\n0.505219 0.925934 0.000000\n0.544312 0.926117 0.000000\n0.580994 0.926361 0.000000\n0.615173 0.926575 0.000000\n0.646973 0.926758 0.000000\n0.676575 0.926971 0.000000\n0.704437 0.927124 0.000000\n0.730804 0.927338 0.000000\n0.755829 0.927490 0.000000\n0.779724 0.927704 0.000000\n0.802795 0.927917 0.000000\n0.825195 0.928040 0.000000\n0.847137 0.928223 0.000000\n0.868866 0.928436 0.000000\n0.890625 0.928589 0.000000\n0.912659 0.928741 0.000397\n0.935547 0.928894 0.001129\n0.959961 0.929077 0.001862\n0.069641 0.947693 0.000000\n0.087372 0.947845 0.000000\n0.106659 0.947968 0.000000\n0.127869 0.948151 0.000000\n0.151337 0.948303 0.000000\n0.177429 0.948456 0.000000\n0.206085 0.948578 0.000000\n0.237366 0.948730 0.000000\n0.270996 0.948883 0.000000\n0.306824 0.949005 0.000000\n0.344574 0.949158 0.000000\n0.384003 0.949280 0.000000\n0.424744 0.949432 0.000000\n0.466309 0.949615 0.000000\n0.507416 0.949768 0.000000\n0.546265 0.949860 0.000000\n0.582703 0.950012 0.000000\n0.616608 0.950134 0.000000\n0.648224 0.950287 0.000000\n0.677704 0.950378 0.000000\n0.705383 0.950470 0.000000\n0.731567 0.950623 0.000000\n0.756470 0.950745 0.000000\n0.780304 0.950867 0.000000\n0.803284 0.951019 0.000000\n0.825623 0.951141 0.000000\n0.847473 0.951233 0.000000\n0.869080 0.951355 0.000000\n0.890808 0.951477 0.000000\n0.912781 0.951599 0.000000\n0.935638 0.951721 0.000000\n0.959961 0.951782 0.000336\n0.071442 0.973083 0.000000\n0.089203 0.973145 0.000000\n0.108643 0.973267 0.000000\n0.129944 0.973328 0.000000\n0.153625 0.973419 0.000000\n0.179779 0.973480 0.000000\n0.208649 0.973541 0.000000\n0.239990 0.973663 0.000000\n0.273651 0.973694 0.000000\n0.309540 0.973816 0.000000\n0.347229 0.973877 0.000000\n0.386627 0.973969 0.000000\n0.427216 0.974030 0.000000\n0.468750 0.974091 0.000000\n0.509613 0.974182 0.000000\n0.548218 0.974213 0.000000\n0.584381 0.974304 0.000000\n0.618042 0.974365 0.000000\n0.649414 0.974426 0.000000\n0.678741 0.974518 0.000000\n0.706299 0.974548 0.000000\n0.732361 0.974609 0.000000\n0.757111 0.974701 0.000000\n0.780914 0.974731 0.000000\n0.803741 0.974823 0.000000\n0.825958 0.974854 0.000000\n0.847778 0.974976 0.000000\n0.869385 0.975006 0.000000\n0.890930 0.975067 0.000000\n0.912933 0.975098 0.000000\n0.935699 0.975189 0.000000\n0.959961 0.975220 0.000000\n0.073181 1.000000 0.000000\n0.091095 1.000000 0.000000\n0.110626 1.000000 0.000000\n0.132080 1.000000 0.000000\n0.155823 1.000000 0.000000\n0.182159 1.000000 0.000000\n0.211121 1.000000 0.000000\n0.242554 1.000000 0.000000\n0.276276 1.000000 0.000000\n0.312164 1.000000 0.000000\n0.349915 1.000000 0.000000\n0.389160 1.000000 0.000000\n0.429810 1.000000 0.000000\n0.471130 1.000000 0.000000\n0.511780 1.000000 0.000000\n0.550049 1.000000 0.000000\n0.585968 1.000000 0.000000\n0.619446 1.000000 0.000000\n0.650665 1.000000 0.000000\n0.679749 1.000000 0.000000\n0.707153 1.000000 0.000000\n0.733063 1.000000 0.000000\n0.757751 1.000000 0.000000\n0.781403 1.000000 0.000000\n0.804199 1.000000 0.000000\n0.826385 1.000000 0.000000\n0.848083 1.000000 0.000000\n0.869568 1.000000 0.000000\n0.891113 1.000000 0.000000\n0.913055 1.000000 0.000000\n0.935730 1.000000 0.000000\n0.959961 1.000000 0.000000\n0.031189 0.000366 0.075806\n0.046570 0.000885 0.076080\n0.063141 0.001434 0.076385\n0.081146 0.002014 0.076691\n0.100891 0.002594 0.076996\n0.122711 0.003235 0.077332\n0.147064 0.003876 0.077698\n0.174347 0.004547 0.078064\n0.204651 0.005249 0.078430\n0.238068 0.006012 0.078796\n0.274139 0.006744 0.079193\n0.312866 0.007568 0.079620\n0.353851 0.008362 0.080017\n0.396729 0.009155 0.080505\n0.441162 0.010040 0.080933\n0.486298 0.010925 0.081421\n0.529724 0.011780 0.081879\n0.570312 0.012726 0.082367\n0.608063 0.013672 0.082855\n0.643005 0.014618 0.083374\n0.675476 0.015594 0.083893\n0.705811 0.016602 0.084412\n0.734406 0.017609 0.084961\n0.761475 0.018646 0.085571\n0.787384 0.019745 0.086090\n0.812317 0.020813 0.086639\n0.836639 0.021942 0.087280\n0.860504 0.023010 0.087830\n0.884247 0.024170 0.088470\n0.908356 0.025360 0.089050\n0.933289 0.026489 0.089661\n0.959961 0.027679 0.090332\n0.031830 0.016418 0.074432\n0.047272 0.016998 0.074768\n0.063904 0.017609 0.075043\n0.082001 0.018250 0.075378\n0.101837 0.018890 0.075745\n0.123810 0.019592 0.076080\n0.148254 0.020325 0.076447\n0.175629 0.021027 0.076843\n0.206085 0.021790 0.077240\n0.239594 0.022583 0.077667\n0.275787 0.023407 0.078064\n0.314545 0.024261 0.078552\n0.355621 0.025116 0.078949\n0.398529 0.026001 0.079407\n0.442963 0.026917 0.079895\n0.488007 0.027863 0.080383\n0.531250 0.028809 0.080872\n0.571686 0.029785 0.081360\n0.609253 0.030792 0.081909\n0.644073 0.031799 0.082428\n0.676392 0.032867 0.082947\n0.706604 0.033905 0.083527\n0.735077 0.035004 0.084076\n0.762085 0.036133 0.084656\n0.787872 0.037231 0.085236\n0.812775 0.038391 0.085846\n0.836945 0.039581 0.086456\n0.860779 0.040741 0.087036\n0.884460 0.041962 0.087616\n0.908508 0.043182 0.088257\n0.933380 0.044434 0.088898\n0.959961 0.045715 0.089569\n0.032562 0.033386 0.072998\n0.048065 0.034027 0.073334\n0.064758 0.034698 0.073669\n0.082947 0.035431 0.074005\n0.102844 0.036163 0.074371\n0.124939 0.036896 0.074768\n0.149567 0.037689 0.075195\n0.177032 0.038452 0.075562\n0.207642 0.039337 0.076019\n0.241180 0.040222 0.076447\n0.277557 0.041046 0.076843\n0.316345 0.041992 0.077332\n0.357452 0.042969 0.077820\n0.400391 0.043884 0.078247\n0.444794 0.044891 0.078796\n0.489777 0.045898 0.079285\n0.532867 0.046936 0.079773\n0.573059 0.048004 0.080322\n0.610504 0.049042 0.080841\n0.645111 0.050171 0.081390\n0.677338 0.051331 0.081970\n0.707428 0.052429 0.082520\n0.735779 0.053619 0.083099\n0.762695 0.054810 0.083679\n0.788391 0.056000 0.084259\n0.813202 0.057251 0.084869\n0.837341 0.058502 0.085480\n0.861023 0.059753 0.086121\n0.884705 0.061066 0.086700\n0.908661 0.062347 0.087372\n0.933441 0.063751 0.088013\n0.959961 0.065125 0.088654\n0.033325 0.051605 0.071442\n0.048920 0.052307 0.071808\n0.065674 0.053070 0.072174\n0.083923 0.053864 0.072540\n0.103973 0.054657 0.072937\n0.126160 0.055511 0.073334\n0.150879 0.056396 0.073761\n0.178497 0.057281 0.074188\n0.209290 0.058167 0.074585\n0.242950 0.059143 0.075073\n0.279358 0.060089 0.075531\n0.318237 0.061127 0.076019\n0.359406 0.062164 0.076508\n0.402313 0.063171 0.076996\n0.446686 0.064301 0.077515\n0.491547 0.065399 0.078033\n0.534485 0.066498 0.078583\n0.574524 0.067688 0.079102\n0.611786 0.068817 0.079651\n0.646271 0.070068 0.080200\n0.678284 0.071259 0.080780\n0.708252 0.072510 0.081329\n0.736481 0.073822 0.081909\n0.763336 0.075104 0.082520\n0.788940 0.076385 0.083130\n0.813629 0.077759 0.083740\n0.837677 0.079132 0.084351\n0.861359 0.080475 0.084961\n0.884949 0.081909 0.085602\n0.908844 0.083282 0.086273\n0.933533 0.084778 0.086884\n0.959961 0.086243 0.087585\n0.034210 0.071381 0.069763\n0.049835 0.072205 0.070160\n0.066650 0.073059 0.070526\n0.085022 0.073944 0.070892\n0.105103 0.074860 0.071320\n0.127441 0.075806 0.071747\n0.152283 0.076782 0.072174\n0.180115 0.077759 0.072632\n0.210938 0.078796 0.073120\n0.244751 0.079895 0.073547\n0.281281 0.080933 0.074036\n0.320221 0.082062 0.074554\n0.361420 0.083191 0.075043\n0.404358 0.084351 0.075531\n0.448700 0.085541 0.076080\n0.493439 0.086731 0.076599\n0.536133 0.087982 0.077148\n0.576019 0.089264 0.077667\n0.613037 0.090546 0.078247\n0.647339 0.091858 0.078796\n0.679291 0.093231 0.079376\n0.709106 0.094574 0.079956\n0.737213 0.096008 0.080536\n0.763977 0.097412 0.081146\n0.789459 0.098816 0.081757\n0.814117 0.100281 0.082397\n0.838074 0.101776 0.082977\n0.861633 0.103333 0.083618\n0.885132 0.104828 0.084290\n0.908966 0.106354 0.084900\n0.933624 0.108002 0.085571\n0.959961 0.109589 0.086212\n0.035095 0.093231 0.067902\n0.050781 0.094116 0.068268\n0.067688 0.095123 0.068695\n0.086151 0.096100 0.069092\n0.106415 0.097137 0.069550\n0.128845 0.098206 0.069977\n0.153839 0.099304 0.070404\n0.181763 0.100372 0.070862\n0.212738 0.101562 0.071350\n0.246674 0.102753 0.071838\n0.283264 0.103943 0.072327\n0.322296 0.105164 0.072784\n0.363495 0.106415 0.073303\n0.406433 0.107758 0.073822\n0.450836 0.109070 0.074402\n0.495361 0.110413 0.074890\n0.537903 0.111786 0.075470\n0.577545 0.113220 0.075989\n0.614380 0.114624 0.076599\n0.648560 0.116089 0.077179\n0.680267 0.117554 0.077728\n0.709991 0.119049 0.078308\n0.738007 0.120605 0.078918\n0.764587 0.122162 0.079529\n0.790009 0.123749 0.080109\n0.814575 0.125366 0.080750\n0.838440 0.126984 0.081360\n0.861938 0.128662 0.082001\n0.885376 0.130371 0.082642\n0.909119 0.132050 0.083252\n0.933685 0.133789 0.083923\n0.959961 0.135590 0.084564\n0.036102 0.117523 0.065765\n0.051819 0.118561 0.066132\n0.068848 0.119690 0.066589\n0.087372 0.120850 0.067017\n0.107697 0.121979 0.067444\n0.130280 0.123169 0.067871\n0.155396 0.124390 0.068390\n0.183502 0.125641 0.068817\n0.214630 0.126984 0.069305\n0.248657 0.128296 0.069794\n0.285339 0.129639 0.070282\n0.324432 0.131042 0.070770\n0.365631 0.132416 0.071289\n0.408630 0.133881 0.071838\n0.452911 0.135345 0.072388\n0.497375 0.136841 0.072906\n0.539612 0.138397 0.073486\n0.579132 0.139923 0.074036\n0.615723 0.141541 0.074585\n0.649750 0.143127 0.075165\n0.681305 0.144806 0.075745\n0.710846 0.146484 0.076355\n0.738770 0.148163 0.076935\n0.765228 0.149872 0.077515\n0.790588 0.151642 0.078156\n0.815002 0.153442 0.078796\n0.838837 0.155243 0.079376\n0.862274 0.157074 0.079956\n0.885651 0.158936 0.080627\n0.909302 0.160767 0.081268\n0.933807 0.162689 0.081909\n0.959961 0.164642 0.082550\n0.037079 0.144836 0.063293\n0.052917 0.146027 0.063721\n0.070007 0.147278 0.064117\n0.088623 0.148621 0.064545\n0.109070 0.149902 0.065033\n0.131744 0.151245 0.065460\n0.157043 0.152649 0.065948\n0.185303 0.154053 0.066406\n0.216583 0.155518 0.066925\n0.250671 0.156982 0.067413\n0.287476 0.158539 0.067871\n0.326691 0.160126 0.068420\n0.367889 0.161652 0.068909\n0.410828 0.163300 0.069458\n0.455078 0.164948 0.070007\n0.499420 0.166565 0.070557\n0.541443 0.168335 0.071075\n0.580688 0.170044 0.071655\n0.617157 0.171814 0.072235\n0.650909 0.173645 0.072815\n0.682312 0.175476 0.073364\n0.711761 0.177307 0.073914\n0.739532 0.179199 0.074554\n0.765900 0.181061 0.075134\n0.791138 0.183044 0.075745\n0.815491 0.185028 0.076355\n0.839203 0.186981 0.076935\n0.862549 0.188995 0.077576\n0.885834 0.191040 0.078217\n0.909454 0.193085 0.078827\n0.933868 0.195221 0.079437\n0.959961 0.197296 0.080048\n0.038208 0.175751 0.060425\n0.054077 0.177155 0.060822\n0.071228 0.178558 0.061279\n0.089935 0.180023 0.061737\n0.110565 0.181488 0.062195\n0.133331 0.183044 0.062653\n0.158783 0.184601 0.063110\n0.187164 0.186157 0.063629\n0.218567 0.187805 0.064087\n0.252808 0.189484 0.064575\n0.289673 0.191193 0.065063\n0.328888 0.192932 0.065582\n0.370178 0.194672 0.066071\n0.413086 0.196472 0.066650\n0.457306 0.198303 0.067169\n0.501495 0.200134 0.067688\n0.543304 0.202057 0.068268\n0.582306 0.203979 0.068848\n0.618591 0.205902 0.069366\n0.652191 0.207886 0.069916\n0.683380 0.209839 0.070526\n0.712677 0.211914 0.071106\n0.740326 0.213959 0.071686\n0.766571 0.215973 0.072266\n0.791718 0.218140 0.072906\n0.815979 0.220245 0.073456\n0.839600 0.222382 0.074097\n0.862885 0.224579 0.074707\n0.886108 0.226776 0.075317\n0.909607 0.228943 0.075928\n0.933990 0.231171 0.076538\n0.959961 0.233429 0.077209\n0.039276 0.210602 0.057098\n0.055267 0.212158 0.057526\n0.072510 0.213745 0.057953\n0.091339 0.215393 0.058411\n0.112030 0.217010 0.058868\n0.135010 0.218719 0.059357\n0.160583 0.220428 0.059845\n0.189117 0.222198 0.060303\n0.220673 0.223999 0.060791\n0.255005 0.225800 0.061279\n0.291962 0.227692 0.061768\n0.331238 0.229584 0.062317\n0.372528 0.231476 0.062836\n0.415497 0.233459 0.063324\n0.459595 0.235443 0.063904\n0.503601 0.237427 0.064453\n0.545166 0.239502 0.065002\n0.583984 0.241547 0.065552\n0.619995 0.243561 0.066101\n0.653351 0.245728 0.066681\n0.684479 0.247864 0.067261\n0.713623 0.250031 0.067810\n0.741089 0.252228 0.068451\n0.767242 0.254395 0.069000\n0.792267 0.256653 0.069611\n0.816467 0.258911 0.070221\n0.839996 0.261139 0.070801\n0.863220 0.263458 0.071442\n0.886383 0.265778 0.072021\n0.909760 0.268066 0.072662\n0.934021 0.270416 0.073303\n0.959961 0.272766 0.073883\n0.040497 0.249298 0.053314\n0.056519 0.250977 0.053772\n0.073883 0.252686 0.054230\n0.092804 0.254486 0.054688\n0.113617 0.256256 0.055115\n0.136719 0.258118 0.055603\n0.162445 0.259949 0.056091\n0.191193 0.261841 0.056580\n0.222870 0.263794 0.057068\n0.257294 0.265717 0.057587\n0.294342 0.267731 0.058105\n0.333618 0.269714 0.058624\n0.374908 0.271759 0.059113\n0.417847 0.273834 0.059692\n0.461914 0.275970 0.060242\n0.505707 0.278076 0.060791\n0.547028 0.280243 0.061340\n0.585602 0.282379 0.061859\n0.621460 0.284607 0.062469\n0.654633 0.286835 0.063019\n0.685577 0.289062 0.063599\n0.714539 0.291351 0.064178\n0.741943 0.293640 0.064789\n0.767914 0.295929 0.065369\n0.792847 0.298218 0.065979\n0.816925 0.300598 0.066559\n0.840393 0.302917 0.067169\n0.863525 0.305328 0.067810\n0.886536 0.307678 0.068420\n0.909912 0.310028 0.069061\n0.934113 0.312500 0.069672\n0.959961 0.314880 0.070251\n0.041718 0.291412 0.049194\n0.057831 0.293243 0.049591\n0.075226 0.295074 0.050079\n0.094299 0.296967 0.050568\n0.115234 0.298828 0.050995\n0.138519 0.300781 0.051514\n0.164398 0.302734 0.052002\n0.193268 0.304749 0.052490\n0.225067 0.306793 0.052979\n0.259613 0.308838 0.053497\n0.296722 0.310944 0.054016\n0.336121 0.313110 0.054535\n0.377380 0.315186 0.055115\n0.420349 0.317352 0.055634\n0.464264 0.319489 0.056213\n0.507904 0.321716 0.056763\n0.548981 0.323975 0.057281\n0.587311 0.326202 0.057861\n0.622894 0.328491 0.058472\n0.655945 0.330811 0.059052\n0.686646 0.333099 0.059601\n0.715485 0.335419 0.060181\n0.742706 0.337769 0.060791\n0.768646 0.340118 0.061371\n0.793488 0.342499 0.061981\n0.817444 0.344940 0.062622\n0.840820 0.347321 0.063232\n0.863831 0.349701 0.063873\n0.886810 0.352081 0.064484\n0.910126 0.354523 0.065063\n0.934235 0.357025 0.065735\n0.959961 0.359375 0.066376\n0.042999 0.336609 0.044678\n0.059143 0.338470 0.045105\n0.076721 0.340454 0.045593\n0.095856 0.342377 0.046051\n0.116913 0.344391 0.046539\n0.140320 0.346405 0.047089\n0.166412 0.348419 0.047546\n0.195435 0.350494 0.048035\n0.227386 0.352631 0.048584\n0.262024 0.354706 0.049133\n0.299194 0.356842 0.049652\n0.338562 0.359100 0.050201\n0.379913 0.361237 0.050781\n0.422791 0.363434 0.051331\n0.466644 0.365692 0.051849\n0.510071 0.367981 0.052399\n0.550934 0.370270 0.052979\n0.589020 0.372498 0.053589\n0.624359 0.374817 0.054169\n0.657166 0.377167 0.054779\n0.687744 0.379486 0.055328\n0.716461 0.381805 0.055939\n0.743561 0.384216 0.056580\n0.769318 0.386566 0.057159\n0.794067 0.388977 0.057800\n0.817932 0.391327 0.058411\n0.841187 0.393768 0.059021\n0.864166 0.396210 0.059631\n0.887054 0.398529 0.060272\n0.910278 0.400970 0.060913\n0.934296 0.403442 0.061554\n0.959961 0.405853 0.062195\n0.044312 0.384399 0.039886\n0.060577 0.386322 0.040344\n0.078186 0.388397 0.040802\n0.097473 0.390350 0.041321\n0.118713 0.392365 0.041840\n0.142212 0.394440 0.042328\n0.168427 0.396484 0.042877\n0.197632 0.398560 0.043427\n0.229706 0.400726 0.043976\n0.264465 0.402863 0.044464\n0.301727 0.405060 0.045044\n0.341187 0.407257 0.045593\n0.382446 0.409424 0.046112\n0.425293 0.411682 0.046722\n0.469055 0.413879 0.047302\n0.512268 0.416168 0.047882\n0.552856 0.418457 0.048462\n0.590698 0.420715 0.049042\n0.625854 0.423004 0.049683\n0.658447 0.425385 0.050262\n0.688843 0.427673 0.050873\n0.717407 0.430054 0.051514\n0.744354 0.432373 0.052124\n0.770020 0.434662 0.052734\n0.794647 0.437042 0.053375\n0.818390 0.439392 0.054016\n0.841644 0.441803 0.054657\n0.864471 0.444153 0.055298\n0.887268 0.446503 0.055939\n0.910461 0.448883 0.056580\n0.934387 0.451233 0.057281\n0.959961 0.453613 0.057861\n0.045685 0.434174 0.034821\n0.062012 0.436188 0.035339\n0.079742 0.438171 0.035858\n0.099152 0.440125 0.036377\n0.120483 0.442200 0.036896\n0.144165 0.444244 0.037445\n0.170532 0.446320 0.037964\n0.199921 0.448456 0.038513\n0.232117 0.450623 0.039093\n0.266937 0.452667 0.039642\n0.304230 0.454865 0.040222\n0.343689 0.456970 0.040802\n0.385040 0.459198 0.041382\n0.427887 0.461426 0.041962\n0.471527 0.463593 0.042572\n0.514465 0.465851 0.043152\n0.554810 0.468079 0.043793\n0.592407 0.470276 0.044434\n0.627350 0.472565 0.045013\n0.659698 0.474823 0.045654\n0.689941 0.477020 0.046295\n0.718323 0.479309 0.046906\n0.745148 0.481567 0.047546\n0.770721 0.483826 0.048218\n0.795227 0.486115 0.048859\n0.818909 0.488342 0.049500\n0.842010 0.490631 0.050171\n0.864838 0.492920 0.050842\n0.887543 0.495117 0.051514\n0.910583 0.497406 0.052155\n0.934479 0.499695 0.052795\n0.959961 0.501892 0.053497\n0.047089 0.485229 0.029724\n0.063507 0.487213 0.030212\n0.081360 0.489136 0.030762\n0.100800 0.491028 0.031342\n0.122345 0.493103 0.031891\n0.146179 0.495087 0.032471\n0.172729 0.497070 0.032990\n0.202209 0.499146 0.033600\n0.234558 0.501160 0.034180\n0.269501 0.503204 0.034760\n0.306854 0.505280 0.035400\n0.346344 0.507324 0.035980\n0.387665 0.509399 0.036591\n0.430450 0.511475 0.037201\n0.473969 0.513519 0.037842\n0.516663 0.515594 0.038513\n0.556793 0.517700 0.039124\n0.594116 0.519745 0.039764\n0.628815 0.521820 0.040436\n0.661041 0.523895 0.041077\n0.691071 0.525970 0.041748\n0.719269 0.528046 0.042450\n0.745972 0.530060 0.043121\n0.771423 0.532104 0.043793\n0.795807 0.534149 0.044495\n0.819397 0.536194 0.045135\n0.842438 0.538208 0.045837\n0.865112 0.540283 0.046570\n0.887817 0.542236 0.047241\n0.910767 0.544281 0.047974\n0.934570 0.546234 0.048676\n0.959961 0.548218 0.049377\n0.048523 0.535492 0.024689\n0.065063 0.537262 0.025299\n0.082977 0.539062 0.025909\n0.102570 0.540802 0.026459\n0.124176 0.542603 0.027069\n0.148193 0.544434 0.027679\n0.174927 0.546204 0.028259\n0.204559 0.548004 0.028931\n0.237061 0.549835 0.029572\n0.272064 0.551605 0.030182\n0.309540 0.553467 0.030853\n0.348999 0.555267 0.031494\n0.390320 0.557098 0.032135\n0.432983 0.558960 0.032837\n0.476471 0.560760 0.033478\n0.518921 0.562592 0.034180\n0.558746 0.564392 0.034882\n0.595825 0.566254 0.035553\n0.630310 0.568054 0.036255\n0.662292 0.569916 0.036957\n0.692169 0.571655 0.037689\n0.720276 0.573547 0.038391\n0.746796 0.575256 0.039124\n0.772095 0.577087 0.039825\n0.796356 0.578857 0.040527\n0.819855 0.580627 0.041260\n0.842834 0.582397 0.041992\n0.865387 0.584198 0.042755\n0.888000 0.585876 0.043488\n0.910919 0.587646 0.044220\n0.934692 0.589386 0.044983\n0.959961 0.591095 0.045685\n0.050049 0.582184 0.020264\n0.066620 0.583710 0.020905\n0.084656 0.585297 0.021515\n0.104340 0.586853 0.022125\n0.126129 0.588409 0.022797\n0.150269 0.590057 0.023438\n0.177185 0.591583 0.024078\n0.206970 0.593170 0.024750\n0.239594 0.594757 0.025452\n0.274719 0.596344 0.026154\n0.312195 0.597931 0.026825\n0.351715 0.599548 0.027496\n0.393005 0.601135 0.028229\n0.435638 0.602753 0.028931\n0.479004 0.604309 0.029663\n0.521179 0.605927 0.030396\n0.560730 0.607544 0.031128\n0.597565 0.609100 0.031830\n0.631805 0.610718 0.032593\n0.663544 0.612274 0.033325\n0.693268 0.613831 0.034088\n0.721161 0.615448 0.034790\n0.747620 0.616974 0.035553\n0.772827 0.618561 0.036316\n0.796997 0.620087 0.037079\n0.820343 0.621582 0.037842\n0.843231 0.623108 0.038605\n0.865753 0.624664 0.039398\n0.888245 0.626129 0.040161\n0.911072 0.627655 0.040924\n0.934723 0.629120 0.041687\n0.959961 0.630585 0.042450\n0.051575 0.625183 0.016296\n0.068237 0.626556 0.016937\n0.086365 0.627899 0.017670\n0.106201 0.629242 0.018311\n0.128143 0.630615 0.018982\n0.152435 0.631989 0.019714\n0.179504 0.633362 0.020386\n0.209473 0.634735 0.021149\n0.242126 0.636108 0.021820\n0.277344 0.637482 0.022552\n0.314911 0.638885 0.023315\n0.354431 0.640228 0.024017\n0.395660 0.641632 0.024780\n0.438293 0.643005 0.025543\n0.481537 0.644348 0.026306\n0.523376 0.645752 0.027069\n0.562653 0.647125 0.027832\n0.599243 0.648468 0.028564\n0.633270 0.649841 0.029358\n0.664795 0.651184 0.030121\n0.694366 0.652496 0.030914\n0.722137 0.653870 0.031708\n0.748413 0.655212 0.032440\n0.773499 0.656525 0.033264\n0.797546 0.657867 0.034088\n0.820831 0.659180 0.034882\n0.843628 0.660461 0.035675\n0.866058 0.661774 0.036438\n0.888519 0.662994 0.037231\n0.911255 0.664307 0.038055\n0.934845 0.665558 0.038849\n0.959961 0.666809 0.039642\n0.053101 0.664490 0.012848\n0.069885 0.665649 0.013580\n0.088135 0.666840 0.014252\n0.108032 0.667999 0.014984\n0.130127 0.669189 0.015717\n0.154633 0.670380 0.016479\n0.181854 0.671570 0.017181\n0.211945 0.672729 0.017975\n0.244720 0.673920 0.018677\n0.280029 0.675079 0.019470\n0.317596 0.676300 0.020264\n0.357147 0.677460 0.021027\n0.398407 0.678680 0.021820\n0.440948 0.679840 0.022614\n0.484009 0.681000 0.023407\n0.525574 0.682220 0.024139\n0.564606 0.683380 0.024994\n0.600952 0.684509 0.025757\n0.634735 0.685669 0.026581\n0.666077 0.686829 0.027405\n0.695465 0.687988 0.028168\n0.723083 0.689148 0.029022\n0.749237 0.690277 0.029816\n0.774139 0.691437 0.030640\n0.798126 0.692535 0.031494\n0.821320 0.693634 0.032257\n0.843994 0.694763 0.033081\n0.866364 0.695892 0.033905\n0.888763 0.696930 0.034760\n0.911407 0.698059 0.035553\n0.934937 0.699097 0.036407\n0.959961 0.700165 0.037170\n0.054688 0.700592 0.009857\n0.071564 0.701599 0.010590\n0.089874 0.702637 0.011383\n0.109985 0.703583 0.012146\n0.132172 0.704620 0.012878\n0.156799 0.705627 0.013672\n0.184204 0.706635 0.014404\n0.214478 0.707672 0.015198\n0.247345 0.708649 0.016022\n0.282745 0.709686 0.016815\n0.320374 0.710724 0.017578\n0.359894 0.711731 0.018402\n0.401123 0.712738 0.019226\n0.443604 0.713745 0.020020\n0.486511 0.714783 0.020844\n0.527832 0.715790 0.021667\n0.566528 0.716766 0.022491\n0.602692 0.717773 0.023346\n0.636200 0.718781 0.024170\n0.667328 0.719757 0.024994\n0.696503 0.720764 0.025818\n0.723999 0.721680 0.026733\n0.750000 0.722656 0.027496\n0.774841 0.723633 0.028320\n0.798706 0.724640 0.029205\n0.821777 0.725555 0.030029\n0.844391 0.726532 0.030884\n0.866669 0.727386 0.031677\n0.888947 0.728363 0.032532\n0.911591 0.729279 0.033386\n0.934998 0.730194 0.034180\n0.959961 0.731079 0.035034\n0.056305 0.733917 0.007233\n0.073273 0.734802 0.008057\n0.091736 0.735687 0.008820\n0.111938 0.736511 0.009613\n0.134277 0.737396 0.010406\n0.159058 0.738251 0.011200\n0.186646 0.739136 0.012054\n0.217010 0.740021 0.012817\n0.249939 0.740845 0.013641\n0.285461 0.741760 0.014496\n0.323090 0.742645 0.015320\n0.362610 0.743500 0.016113\n0.403839 0.744354 0.016998\n0.446228 0.745209 0.017822\n0.489014 0.746094 0.018677\n0.530029 0.746918 0.019531\n0.568451 0.747772 0.020355\n0.604340 0.748657 0.021210\n0.637604 0.749481 0.022095\n0.668579 0.750366 0.022919\n0.697601 0.751160 0.023773\n0.724884 0.752045 0.024628\n0.750793 0.752838 0.025482\n0.775513 0.753662 0.026337\n0.799255 0.754486 0.027222\n0.822266 0.755280 0.028076\n0.844727 0.756073 0.028900\n0.867004 0.756866 0.029755\n0.889191 0.757660 0.030609\n0.911743 0.758423 0.031433\n0.935089 0.759186 0.032257\n0.959961 0.759949 0.033142\n0.057922 0.765015 0.004944\n0.075012 0.765747 0.005768\n0.093536 0.766479 0.006592\n0.113892 0.767212 0.007416\n0.136383 0.767944 0.008301\n0.161346 0.768707 0.009094\n0.189087 0.769440 0.009888\n0.219604 0.770233 0.010773\n0.252686 0.770966 0.011597\n0.288208 0.771667 0.012451\n0.325897 0.772461 0.013306\n0.365448 0.773163 0.014160\n0.406494 0.773895 0.015015\n0.448853 0.774658 0.015869\n0.491486 0.775360 0.016754\n0.532227 0.776093 0.017639\n0.570343 0.776825 0.018494\n0.605988 0.777557 0.019379\n0.639099 0.778290 0.020233\n0.669800 0.778992 0.021118\n0.698669 0.779694 0.022003\n0.725800 0.780396 0.022858\n0.751587 0.781097 0.023712\n0.776154 0.781769 0.024597\n0.799805 0.782501 0.025421\n0.822723 0.783173 0.026337\n0.845154 0.783813 0.027191\n0.867310 0.784485 0.027985\n0.889435 0.785187 0.028870\n0.911896 0.785828 0.029755\n0.935181 0.786469 0.030579\n0.959961 0.787109 0.031372\n0.059631 0.794159 0.002960\n0.076782 0.794769 0.003784\n0.095398 0.795380 0.004669\n0.115875 0.796082 0.005493\n0.138550 0.796692 0.006348\n0.163605 0.797302 0.007202\n0.191528 0.797913 0.008087\n0.222198 0.798584 0.008942\n0.255402 0.799225 0.009766\n0.290924 0.799866 0.010681\n0.328674 0.800476 0.011566\n0.368195 0.801086 0.012421\n0.409302 0.801727 0.013306\n0.451477 0.802368 0.014191\n0.493896 0.802979 0.015106\n0.534363 0.803589 0.015961\n0.572235 0.804169 0.016815\n0.607666 0.804840 0.017731\n0.640503 0.805420 0.018616\n0.671051 0.806000 0.019501\n0.699707 0.806580 0.020386\n0.726715 0.807220 0.021240\n0.752350 0.807770 0.022125\n0.776794 0.808380 0.023041\n0.800354 0.808960 0.023895\n0.823181 0.809509 0.024750\n0.845459 0.810120 0.025604\n0.867554 0.810638 0.026459\n0.889618 0.811218 0.027313\n0.912048 0.811768 0.028168\n0.935242 0.812286 0.029022\n0.959961 0.812805 0.029846\n0.061310 0.821777 0.001190\n0.078552 0.822296 0.002045\n0.097321 0.822845 0.002899\n0.117920 0.823364 0.003784\n0.140747 0.823914 0.004669\n0.165955 0.824402 0.005524\n0.194031 0.824982 0.006409\n0.224823 0.825500 0.007324\n0.258057 0.826019 0.008179\n0.293701 0.826569 0.009064\n0.331390 0.827087 0.009979\n0.370972 0.827637 0.010864\n0.411957 0.828156 0.011780\n0.454071 0.828674 0.012665\n0.496338 0.829193 0.013550\n0.536469 0.829681 0.014465\n0.574097 0.830231 0.015350\n0.609222 0.830719 0.016235\n0.641876 0.831238 0.017151\n0.672241 0.831757 0.018005\n0.700714 0.832214 0.018951\n0.727600 0.832703 0.019836\n0.753082 0.833191 0.020721\n0.777435 0.833710 0.021576\n0.800903 0.834167 0.022430\n0.823608 0.834625 0.023315\n0.845856 0.835144 0.024200\n0.867859 0.835602 0.025055\n0.889862 0.836029 0.025909\n0.912140 0.836517 0.026733\n0.935333 0.836945 0.027588\n0.959961 0.837402 0.028412\n0.063019 0.848145 0.000000\n0.080322 0.848602 0.000488\n0.099213 0.849030 0.001373\n0.119965 0.849487 0.002258\n0.142883 0.849915 0.003174\n0.168335 0.850372 0.004028\n0.196503 0.850830 0.004944\n0.227417 0.851288 0.005859\n0.260773 0.851685 0.006744\n0.296448 0.852142 0.007660\n0.334167 0.852570 0.008545\n0.373657 0.853027 0.009491\n0.414703 0.853424 0.010376\n0.456665 0.853882 0.011261\n0.498688 0.854309 0.012177\n0.538605 0.854736 0.013123\n0.575989 0.855133 0.014008\n0.610840 0.855560 0.014893\n0.643250 0.855988 0.015808\n0.673431 0.856415 0.016724\n0.701721 0.856812 0.017609\n0.728455 0.857208 0.018463\n0.753845 0.857635 0.019379\n0.778076 0.858032 0.020233\n0.801422 0.858398 0.021179\n0.824036 0.858826 0.022034\n0.846191 0.859192 0.022858\n0.868134 0.859558 0.023712\n0.890045 0.859955 0.024567\n0.912323 0.860321 0.025421\n0.935394 0.860657 0.026245\n0.959961 0.861023 0.027039\n0.064758 0.873627 0.000000\n0.082184 0.873993 0.000000\n0.101135 0.874329 0.000000\n0.122040 0.874725 0.000854\n0.145111 0.875061 0.001801\n0.170685 0.875427 0.002655\n0.199036 0.875793 0.003632\n0.230011 0.876160 0.004486\n0.263458 0.876526 0.005463\n0.299194 0.876862 0.006348\n0.336914 0.877228 0.007263\n0.376434 0.877563 0.008179\n0.417389 0.877960 0.009064\n0.459198 0.878265 0.010010\n0.501038 0.878632 0.010925\n0.540649 0.878967 0.011841\n0.577759 0.879303 0.012787\n0.612396 0.879639 0.013672\n0.644592 0.880005 0.014587\n0.674561 0.880310 0.015442\n0.702728 0.880646 0.016327\n0.729279 0.880951 0.017273\n0.754547 0.881287 0.018158\n0.778687 0.881622 0.019043\n0.801941 0.881958 0.019836\n0.824493 0.882233 0.020721\n0.846558 0.882568 0.021606\n0.868378 0.882874 0.022430\n0.890259 0.883209 0.023285\n0.912415 0.883453 0.024139\n0.935455 0.883759 0.024933\n0.959961 0.884033 0.025787\n0.066498 0.898468 0.000000\n0.083984 0.898773 0.000000\n0.103088 0.899048 0.000000\n0.124084 0.899353 0.000000\n0.147308 0.899597 0.000488\n0.173065 0.899902 0.001404\n0.201569 0.900208 0.002319\n0.232635 0.900482 0.003235\n0.266174 0.900787 0.004150\n0.301910 0.901062 0.005127\n0.339691 0.901306 0.006012\n0.379120 0.901611 0.006958\n0.420013 0.901886 0.007874\n0.461761 0.902161 0.008759\n0.503357 0.902405 0.009705\n0.542694 0.902710 0.010651\n0.579559 0.902954 0.011536\n0.613922 0.903259 0.012451\n0.645844 0.903503 0.013367\n0.675690 0.903778 0.014282\n0.703705 0.904022 0.015167\n0.730103 0.904266 0.016022\n0.755249 0.904541 0.016907\n0.779297 0.904755 0.017792\n0.802399 0.905029 0.018646\n0.824890 0.905273 0.019501\n0.846893 0.905518 0.020355\n0.868652 0.905731 0.021179\n0.890472 0.905975 0.022003\n0.912567 0.906219 0.022858\n0.935486 0.906433 0.023651\n0.959961 0.906647 0.024445\n0.068237 0.923065 0.000000\n0.085846 0.923248 0.000000\n0.105042 0.923492 0.000000\n0.126221 0.923706 0.000000\n0.149567 0.923889 0.000000\n0.175476 0.924164 0.000122\n0.204071 0.924347 0.001099\n0.235260 0.924561 0.002014\n0.268860 0.924774 0.002960\n0.304657 0.924988 0.003876\n0.342377 0.925201 0.004791\n0.381775 0.925385 0.005737\n0.422607 0.925629 0.006683\n0.464264 0.925842 0.007599\n0.505585 0.926025 0.008514\n0.544678 0.926208 0.009430\n0.581329 0.926422 0.010376\n0.615479 0.926636 0.011261\n0.647156 0.926849 0.012146\n0.676788 0.927002 0.013092\n0.704651 0.927216 0.013947\n0.730957 0.927399 0.014801\n0.755951 0.927612 0.015686\n0.779846 0.927765 0.016541\n0.802887 0.927948 0.017426\n0.825256 0.928101 0.018250\n0.847229 0.928284 0.019104\n0.868896 0.928467 0.019958\n0.890656 0.928619 0.020782\n0.912689 0.928802 0.021545\n0.935577 0.928986 0.022339\n0.959961 0.929138 0.023132\n0.070007 0.947754 0.000000\n0.087677 0.947906 0.000000\n0.107025 0.948059 0.000000\n0.128265 0.948212 0.000000\n0.151794 0.948364 0.000000\n0.177826 0.948486 0.000000\n0.206604 0.948639 0.000000\n0.237854 0.948761 0.000763\n0.271515 0.948914 0.001709\n0.307343 0.949066 0.002655\n0.345062 0.949188 0.003540\n0.384491 0.949371 0.004486\n0.425232 0.949524 0.005463\n0.466736 0.949646 0.006348\n0.507904 0.949799 0.007294\n0.546631 0.949921 0.008179\n0.583008 0.950073 0.009094\n0.616882 0.950165 0.010040\n0.648438 0.950287 0.010925\n0.677887 0.950439 0.011780\n0.705566 0.950562 0.012665\n0.731689 0.950684 0.013550\n0.756592 0.950836 0.014404\n0.780426 0.950928 0.015259\n0.803375 0.951080 0.016113\n0.825684 0.951172 0.016998\n0.847534 0.951294 0.017761\n0.869141 0.951447 0.018585\n0.890808 0.951538 0.019379\n0.912811 0.951660 0.020172\n0.935638 0.951752 0.020874\n0.959961 0.951843 0.021698\n0.071777 0.973145 0.000000\n0.089539 0.973206 0.000000\n0.108978 0.973267 0.000000\n0.130402 0.973358 0.000000\n0.154022 0.973450 0.000000\n0.180206 0.973480 0.000000\n0.209106 0.973572 0.000000\n0.240417 0.973663 0.000000\n0.274170 0.973724 0.000336\n0.310059 0.973846 0.001312\n0.347717 0.973938 0.002228\n0.387054 0.973969 0.003174\n0.427673 0.974091 0.004089\n0.469177 0.974121 0.005035\n0.510010 0.974182 0.005981\n0.548523 0.974243 0.006866\n0.584686 0.974335 0.007751\n0.618317 0.974396 0.008667\n0.649658 0.974457 0.009552\n0.678925 0.974518 0.010437\n0.706451 0.974579 0.011322\n0.732483 0.974670 0.012177\n0.757233 0.974731 0.013031\n0.781006 0.974762 0.013885\n0.803802 0.974854 0.014679\n0.826050 0.974884 0.015503\n0.847839 0.974976 0.016327\n0.869415 0.975037 0.017090\n0.890961 0.975067 0.017853\n0.912933 0.975128 0.018646\n0.935699 0.975189 0.019379\n0.959961 0.975220 0.020142\n0.073547 1.000000 0.000000\n0.091400 1.000000 0.000000\n0.110962 1.000000 0.000000\n0.132477 1.000000 0.000000\n0.156219 1.000000 0.000000\n0.182587 1.000000 0.000000\n0.211578 1.000000 0.000000\n0.243042 1.000000 0.000000\n0.276794 1.000000 0.000000\n0.312653 1.000000 0.000000\n0.350342 1.000000 0.000732\n0.389648 1.000000 0.001617\n0.430206 1.000000 0.002563\n0.471527 1.000000 0.003479\n0.512146 1.000000 0.004425\n0.550415 1.000000 0.005310\n0.586273 1.000000 0.006195\n0.619751 1.000000 0.007111\n0.650848 1.000000 0.007996\n0.679962 1.000000 0.008850\n0.707306 1.000000 0.009705\n0.733215 1.000000 0.010559\n0.757904 1.000000 0.011414\n0.781494 1.000000 0.012207\n0.804291 1.000000 0.013031\n0.826416 1.000000 0.013824\n0.848114 1.000000 0.014587\n0.869598 1.000000 0.015381\n0.891144 1.000000 0.016113\n0.913055 1.000000 0.016907\n0.935730 1.000000 0.017548\n0.959961 1.000000 0.018280\n0.031311 0.000549 0.094818\n0.046722 0.001068 0.095062\n0.063293 0.001617 0.095428\n0.081299 0.002258 0.095764\n0.101074 0.002838 0.096100\n0.122925 0.003479 0.096466\n0.147278 0.004120 0.096802\n0.174530 0.004822 0.097198\n0.204956 0.005554 0.097626\n0.238281 0.006256 0.098022\n0.274445 0.007050 0.098480\n0.313202 0.007843 0.098969\n0.354156 0.008636 0.099426\n0.397034 0.009491 0.099884\n0.441528 0.010315 0.100342\n0.486633 0.011230 0.100861\n0.529999 0.012115 0.101379\n0.570496 0.013062 0.101898\n0.608307 0.014008 0.102448\n0.643219 0.014984 0.102997\n0.675659 0.015961 0.103546\n0.705963 0.016968 0.104126\n0.734558 0.018005 0.104706\n0.761566 0.019043 0.105316\n0.787476 0.020142 0.105927\n0.812408 0.021240 0.106567\n0.836670 0.022308 0.107208\n0.860535 0.023438 0.107849\n0.884277 0.024567 0.108490\n0.908386 0.025757 0.109131\n0.933319 0.026947 0.109833\n0.959961 0.028107 0.110504\n0.031982 0.016632 0.093445\n0.047424 0.017212 0.093811\n0.064056 0.017853 0.094147\n0.082153 0.018463 0.094482\n0.102020 0.019135 0.094879\n0.124023 0.019836 0.095276\n0.148499 0.020569 0.095642\n0.175903 0.021332 0.096069\n0.206421 0.022095 0.096527\n0.239838 0.022888 0.096954\n0.276154 0.023712 0.097443\n0.314941 0.024567 0.097900\n0.355957 0.025452 0.098389\n0.398895 0.026337 0.098877\n0.443237 0.027252 0.099396\n0.488312 0.028168 0.099945\n0.531555 0.029175 0.100464\n0.571869 0.030121 0.101013\n0.609497 0.031158 0.101562\n0.644257 0.032166 0.102142\n0.676544 0.033234 0.102722\n0.706757 0.034332 0.103333\n0.735199 0.035431 0.103943\n0.762207 0.036530 0.104553\n0.787994 0.037689 0.105194\n0.812836 0.038818 0.105804\n0.837006 0.039978 0.106476\n0.860809 0.041199 0.107147\n0.884491 0.042419 0.107758\n0.908539 0.043640 0.108459\n0.933411 0.044922 0.109192\n0.959961 0.046173 0.109833\n0.032684 0.033661 0.092072\n0.048218 0.034271 0.092438\n0.064941 0.034973 0.092804\n0.083069 0.035675 0.093201\n0.103058 0.036407 0.093597\n0.125183 0.037201 0.093994\n0.149750 0.037964 0.094421\n0.177338 0.038818 0.094879\n0.207977 0.039673 0.095337\n0.241516 0.040527 0.095795\n0.277863 0.041443 0.096283\n0.316742 0.042358 0.096771\n0.357788 0.043304 0.097321\n0.400757 0.044250 0.097839\n0.445190 0.045258 0.098328\n0.490051 0.046295 0.098877\n0.533112 0.047333 0.099457\n0.573334 0.048401 0.100006\n0.610687 0.049469 0.100555\n0.645325 0.050568 0.101196\n0.677490 0.051727 0.101807\n0.707581 0.052856 0.102417\n0.735931 0.054077 0.103027\n0.762787 0.055237 0.103668\n0.788483 0.056488 0.104309\n0.813263 0.057709 0.104919\n0.837402 0.058960 0.105621\n0.861084 0.060242 0.106293\n0.884766 0.061523 0.106964\n0.908691 0.062866 0.107635\n0.933472 0.064270 0.108307\n0.959961 0.065582 0.109009\n0.033478 0.051819 0.090576\n0.049072 0.052582 0.091003\n0.065857 0.053345 0.091400\n0.084137 0.054169 0.091766\n0.104218 0.054962 0.092224\n0.126404 0.055847 0.092621\n0.151093 0.056702 0.093109\n0.178802 0.057617 0.093567\n0.209595 0.058533 0.094055\n0.243286 0.059479 0.094513\n0.279724 0.060486 0.095093\n0.318634 0.061493 0.095520\n0.359741 0.062531 0.096069\n0.402740 0.063629 0.096588\n0.447083 0.064667 0.097168\n0.491943 0.065796 0.097717\n0.534760 0.066956 0.098297\n0.574768 0.068115 0.098907\n0.612000 0.069275 0.099457\n0.646423 0.070496 0.100098\n0.678436 0.071716 0.100708\n0.708405 0.073029 0.101349\n0.736633 0.074280 0.101959\n0.763428 0.075592 0.102600\n0.789062 0.076904 0.103271\n0.813721 0.078217 0.103912\n0.837738 0.079620 0.104584\n0.861389 0.081024 0.105255\n0.884979 0.082428 0.105927\n0.908875 0.083862 0.106628\n0.933533 0.085297 0.107361\n0.959961 0.086792 0.108063\n0.034363 0.071686 0.088989\n0.049988 0.072510 0.089386\n0.066895 0.073395 0.089813\n0.085205 0.074280 0.090240\n0.105347 0.075195 0.090668\n0.127686 0.076141 0.091156\n0.152557 0.077148 0.091614\n0.180359 0.078156 0.092072\n0.211304 0.079193 0.092621\n0.245117 0.080231 0.093109\n0.281647 0.081329 0.093597\n0.320648 0.082458 0.094116\n0.361786 0.083588 0.094666\n0.404755 0.084778 0.095215\n0.449127 0.085968 0.095795\n0.493805 0.087219 0.096405\n0.536469 0.088470 0.096954\n0.576294 0.089722 0.097565\n0.613312 0.091064 0.098175\n0.647614 0.092377 0.098785\n0.679413 0.093719 0.099396\n0.709290 0.095123 0.100037\n0.737396 0.096497 0.100677\n0.764069 0.097900 0.101349\n0.789551 0.099365 0.101990\n0.814178 0.100830 0.102661\n0.838135 0.102356 0.103333\n0.861664 0.103912 0.104034\n0.885162 0.105408 0.104706\n0.909027 0.106964 0.105408\n0.933655 0.108582 0.106110\n0.959961 0.110168 0.106812\n0.035278 0.093536 0.087158\n0.050995 0.094513 0.087616\n0.067902 0.095490 0.088043\n0.086365 0.096466 0.088470\n0.106628 0.097534 0.088928\n0.129089 0.098633 0.089417\n0.154083 0.099701 0.089935\n0.182068 0.100830 0.090424\n0.213104 0.101959 0.090912\n0.247009 0.103180 0.091400\n0.283661 0.104401 0.091980\n0.322662 0.105621 0.092468\n0.363892 0.106873 0.093048\n0.406891 0.108246 0.093628\n0.451172 0.109528 0.094238\n0.495758 0.110901 0.094788\n0.538239 0.112305 0.095398\n0.577820 0.113708 0.095978\n0.614685 0.115173 0.096588\n0.648743 0.116638 0.097229\n0.680450 0.118103 0.097839\n0.710144 0.119629 0.098511\n0.738129 0.121155 0.099121\n0.764709 0.122711 0.099792\n0.790131 0.124359 0.100464\n0.814636 0.125916 0.101105\n0.838501 0.127594 0.101807\n0.862000 0.129303 0.102509\n0.885437 0.130981 0.103149\n0.909149 0.132690 0.103851\n0.933716 0.134399 0.104584\n0.959961 0.136200 0.105255\n0.036224 0.117889 0.085083\n0.052063 0.118988 0.085571\n0.069061 0.120087 0.085999\n0.087555 0.121216 0.086456\n0.107941 0.122406 0.086945\n0.130554 0.123657 0.087433\n0.155670 0.124878 0.087921\n0.183807 0.126129 0.088409\n0.214966 0.127441 0.088959\n0.249054 0.128754 0.089447\n0.285706 0.130157 0.089996\n0.324829 0.131500 0.090576\n0.366058 0.132935 0.091156\n0.409058 0.134399 0.091705\n0.453278 0.135895 0.092285\n0.497742 0.137421 0.092865\n0.539948 0.138947 0.093475\n0.579407 0.140533 0.094055\n0.616058 0.142120 0.094696\n0.649933 0.143738 0.095306\n0.681519 0.145416 0.095947\n0.711029 0.147064 0.096619\n0.738892 0.148773 0.097229\n0.765381 0.150543 0.097870\n0.790680 0.152313 0.098572\n0.815094 0.154053 0.099213\n0.838898 0.155914 0.099854\n0.862305 0.157776 0.100586\n0.885681 0.159607 0.101288\n0.909332 0.161499 0.101959\n0.933807 0.163391 0.102661\n0.959961 0.165344 0.103363\n0.037262 0.145294 0.082703\n0.053131 0.146545 0.083130\n0.070221 0.147797 0.083618\n0.088867 0.149048 0.084106\n0.109375 0.150391 0.084595\n0.132080 0.151764 0.085083\n0.157379 0.153137 0.085602\n0.185638 0.154602 0.086090\n0.216949 0.156067 0.086609\n0.251099 0.157562 0.087189\n0.287903 0.159119 0.087738\n0.327026 0.160645 0.088257\n0.368286 0.162262 0.088806\n0.411285 0.163910 0.089417\n0.455505 0.165497 0.089996\n0.499786 0.167236 0.090576\n0.541809 0.168976 0.091217\n0.580994 0.170654 0.091797\n0.617432 0.172485 0.092407\n0.651154 0.174286 0.093018\n0.682556 0.176117 0.093628\n0.711945 0.178009 0.094299\n0.739685 0.179871 0.094910\n0.765991 0.181824 0.095581\n0.791260 0.183777 0.096222\n0.815582 0.185730 0.096954\n0.839294 0.187714 0.097595\n0.862640 0.189789 0.098267\n0.885864 0.191742 0.098938\n0.909454 0.193878 0.099640\n0.933868 0.195923 0.100281\n0.959961 0.198029 0.100952\n0.038391 0.176239 0.079895\n0.054291 0.177643 0.080353\n0.071472 0.179108 0.080841\n0.090210 0.180511 0.081329\n0.110840 0.182068 0.081818\n0.133636 0.183594 0.082306\n0.159119 0.185150 0.082825\n0.187592 0.186798 0.083374\n0.218964 0.188446 0.083893\n0.253235 0.190094 0.084412\n0.290100 0.191833 0.084991\n0.329315 0.193542 0.085541\n0.370605 0.195343 0.086090\n0.413574 0.197144 0.086670\n0.457733 0.198975 0.087219\n0.501862 0.200867 0.087830\n0.543640 0.202728 0.088409\n0.582611 0.204651 0.089050\n0.618835 0.206665 0.089661\n0.652344 0.208557 0.090271\n0.683624 0.210602 0.090942\n0.712891 0.212646 0.091553\n0.740479 0.214661 0.092194\n0.766693 0.216797 0.092865\n0.791840 0.218933 0.093475\n0.816040 0.221008 0.094147\n0.839691 0.223175 0.094818\n0.862946 0.225342 0.095490\n0.886139 0.227539 0.096191\n0.909668 0.229797 0.096832\n0.933990 0.231964 0.097534\n0.959961 0.234253 0.098206\n0.039490 0.211182 0.076630\n0.055511 0.212769 0.077087\n0.072784 0.214325 0.077606\n0.091614 0.215973 0.078094\n0.112335 0.217682 0.078613\n0.135315 0.219360 0.079071\n0.160889 0.221069 0.079620\n0.189545 0.222839 0.080170\n0.221100 0.224640 0.080658\n0.255463 0.226532 0.081238\n0.292419 0.228394 0.081787\n0.331726 0.230286 0.082367\n0.372986 0.232208 0.082916\n0.415894 0.234161 0.083496\n0.460022 0.236176 0.084045\n0.503967 0.238159 0.084686\n0.545471 0.240204 0.085266\n0.584259 0.242249 0.085907\n0.620270 0.244415 0.086548\n0.653625 0.246521 0.087097\n0.684692 0.248627 0.087769\n0.713776 0.250885 0.088409\n0.741272 0.253021 0.089020\n0.767395 0.255219 0.089691\n0.792419 0.257507 0.090332\n0.816559 0.259735 0.091003\n0.840088 0.261993 0.091644\n0.863251 0.264252 0.092316\n0.886383 0.266602 0.092987\n0.909821 0.268921 0.093658\n0.934082 0.271240 0.094391\n0.959961 0.273621 0.095062\n0.040710 0.249878 0.072968\n0.056763 0.251617 0.073425\n0.074127 0.253326 0.073914\n0.093048 0.255127 0.074432\n0.113922 0.256927 0.074951\n0.137054 0.258759 0.075470\n0.162811 0.260620 0.075989\n0.191559 0.262573 0.076508\n0.223267 0.264496 0.077057\n0.257751 0.266449 0.077637\n0.294769 0.268494 0.078186\n0.334076 0.270477 0.078735\n0.375397 0.272583 0.079315\n0.418274 0.274567 0.079895\n0.462402 0.276733 0.080505\n0.506104 0.278900 0.081116\n0.547424 0.281006 0.081726\n0.585907 0.283173 0.082306\n0.621704 0.285461 0.082947\n0.654907 0.287659 0.083588\n0.685760 0.289886 0.084198\n0.714722 0.292175 0.084869\n0.742096 0.294434 0.085510\n0.768066 0.296814 0.086151\n0.792969 0.299072 0.086761\n0.817017 0.301453 0.087463\n0.840485 0.303833 0.088135\n0.863556 0.306152 0.088806\n0.886627 0.308563 0.089478\n0.909943 0.310974 0.090179\n0.934143 0.313385 0.090820\n0.959961 0.315765 0.091553\n0.041931 0.292053 0.068878\n0.058075 0.293884 0.069366\n0.075531 0.295715 0.069855\n0.094604 0.297607 0.070374\n0.115570 0.299530 0.070892\n0.138763 0.301483 0.071442\n0.164764 0.303497 0.071960\n0.193665 0.305511 0.072540\n0.225494 0.307556 0.073090\n0.260071 0.309631 0.073639\n0.297180 0.311676 0.074219\n0.336578 0.313812 0.074768\n0.377869 0.316010 0.075378\n0.420715 0.318115 0.075989\n0.464752 0.320312 0.076599\n0.508270 0.322540 0.077179\n0.549286 0.324799 0.077789\n0.587616 0.327026 0.078430\n0.623169 0.329346 0.079041\n0.656097 0.331604 0.079681\n0.686829 0.333923 0.080353\n0.715698 0.336273 0.080994\n0.742889 0.338593 0.081635\n0.768768 0.341003 0.082336\n0.793549 0.343384 0.082977\n0.817505 0.345764 0.083649\n0.840881 0.348175 0.084290\n0.863892 0.350555 0.084991\n0.886871 0.353027 0.085663\n0.910126 0.355438 0.086365\n0.934235 0.357880 0.087036\n0.959961 0.360321 0.087738\n0.043243 0.337280 0.064484\n0.059448 0.339233 0.064941\n0.076965 0.341125 0.065460\n0.096161 0.343079 0.066010\n0.117279 0.345123 0.066528\n0.140686 0.347137 0.067078\n0.166779 0.349182 0.067657\n0.195801 0.351288 0.068207\n0.227783 0.353363 0.068756\n0.262482 0.355530 0.069366\n0.299622 0.357635 0.069946\n0.339050 0.359833 0.070557\n0.380371 0.362061 0.071136\n0.423248 0.364227 0.071716\n0.467133 0.366516 0.072327\n0.510468 0.368805 0.072998\n0.551270 0.371033 0.073578\n0.589325 0.373413 0.074219\n0.624603 0.375702 0.074890\n0.657410 0.377991 0.075500\n0.687958 0.380371 0.076172\n0.716614 0.382660 0.076813\n0.743713 0.385040 0.077515\n0.769470 0.387451 0.078217\n0.794159 0.389801 0.078827\n0.817993 0.392242 0.079559\n0.841248 0.394653 0.080200\n0.864258 0.397064 0.080933\n0.887085 0.399475 0.081604\n0.910339 0.401917 0.082306\n0.934296 0.404266 0.082977\n0.959961 0.406708 0.083710\n0.044556 0.385162 0.059723\n0.060883 0.387085 0.060272\n0.078491 0.389008 0.060791\n0.097748 0.391052 0.061340\n0.119019 0.393127 0.061920\n0.142548 0.395142 0.062469\n0.168854 0.397278 0.063019\n0.197998 0.399353 0.063599\n0.230133 0.401489 0.064209\n0.264954 0.403687 0.064850\n0.302155 0.405853 0.065430\n0.341614 0.408051 0.065979\n0.382965 0.410278 0.066650\n0.425751 0.412476 0.067291\n0.469543 0.414734 0.067902\n0.512634 0.417023 0.068542\n0.553223 0.419281 0.069214\n0.591003 0.421600 0.069855\n0.626099 0.423920 0.070496\n0.658691 0.426178 0.071167\n0.689056 0.428558 0.071838\n0.717560 0.430908 0.072510\n0.744507 0.433228 0.073151\n0.770142 0.435516 0.073883\n0.794739 0.437897 0.074554\n0.818481 0.440277 0.075287\n0.841705 0.442657 0.075989\n0.864502 0.445007 0.076630\n0.887329 0.447388 0.077362\n0.910492 0.449799 0.078094\n0.934387 0.452118 0.078796\n0.959961 0.454529 0.079529\n0.045929 0.434906 0.054810\n0.062317 0.436890 0.055389\n0.080048 0.438873 0.055908\n0.099457 0.440948 0.056488\n0.120819 0.442993 0.057098\n0.144501 0.445007 0.057678\n0.170929 0.447113 0.058258\n0.200317 0.449188 0.058868\n0.232544 0.451263 0.059479\n0.267426 0.453491 0.060089\n0.304718 0.455597 0.060730\n0.344238 0.457794 0.061371\n0.385559 0.460052 0.061981\n0.428314 0.462219 0.062653\n0.471954 0.464417 0.063324\n0.514923 0.466644 0.063965\n0.555145 0.468842 0.064636\n0.592712 0.471130 0.065308\n0.627594 0.473358 0.065948\n0.659973 0.475586 0.066681\n0.690155 0.477905 0.067352\n0.718506 0.480072 0.068085\n0.745331 0.482422 0.068756\n0.770844 0.484680 0.069489\n0.795349 0.486877 0.070190\n0.819000 0.489166 0.070892\n0.842102 0.491486 0.071594\n0.864868 0.493713 0.072327\n0.887573 0.495972 0.073059\n0.910614 0.498169 0.073792\n0.934509 0.500458 0.074524\n0.959961 0.502716 0.075256\n0.047333 0.485962 0.049805\n0.063782 0.487885 0.050385\n0.081604 0.489807 0.050964\n0.101135 0.491791 0.051575\n0.122650 0.493744 0.052155\n0.146545 0.495819 0.052795\n0.173126 0.497833 0.053436\n0.202667 0.499817 0.054016\n0.235016 0.501892 0.054688\n0.269989 0.503967 0.055328\n0.307343 0.506012 0.055969\n0.346863 0.508057 0.056671\n0.388184 0.510132 0.057343\n0.430908 0.512207 0.058014\n0.474487 0.514313 0.058716\n0.517120 0.516357 0.059357\n0.557159 0.518433 0.060120\n0.594482 0.520569 0.060791\n0.629089 0.522583 0.061493\n0.661224 0.524628 0.062256\n0.691254 0.526672 0.062958\n0.719452 0.528748 0.063721\n0.746155 0.530823 0.064453\n0.771545 0.532867 0.065186\n0.795898 0.534912 0.065887\n0.819489 0.536957 0.066681\n0.842499 0.539032 0.067444\n0.865173 0.540985 0.068237\n0.887878 0.542969 0.069000\n0.910767 0.544922 0.069763\n0.934570 0.546936 0.070496\n0.959961 0.548889 0.071289\n0.048798 0.536133 0.044922\n0.065369 0.537964 0.045532\n0.083252 0.539642 0.046173\n0.102905 0.541473 0.046814\n0.124573 0.543243 0.047516\n0.148590 0.545074 0.048126\n0.175323 0.546844 0.048828\n0.205048 0.548615 0.049469\n0.237488 0.550476 0.050201\n0.272583 0.552307 0.050873\n0.309998 0.554108 0.051575\n0.349518 0.555969 0.052307\n0.390839 0.557739 0.053040\n0.433533 0.559570 0.053711\n0.476959 0.561462 0.054474\n0.519348 0.563293 0.055267\n0.559082 0.565063 0.055939\n0.596161 0.566956 0.056702\n0.630554 0.568726 0.057465\n0.662506 0.570557 0.058258\n0.692352 0.572327 0.059021\n0.720428 0.574188 0.059753\n0.746948 0.575958 0.060577\n0.772217 0.577789 0.061371\n0.796478 0.579529 0.062134\n0.819977 0.581299 0.062958\n0.842896 0.583069 0.063751\n0.865509 0.584808 0.064545\n0.888031 0.586578 0.065338\n0.910950 0.588257 0.066101\n0.934692 0.589996 0.066925\n0.959961 0.591705 0.067719\n0.050293 0.582733 0.040588\n0.066956 0.584290 0.041229\n0.084961 0.585846 0.041962\n0.104736 0.587433 0.042603\n0.126465 0.588989 0.043304\n0.150665 0.590576 0.044006\n0.177612 0.592224 0.044708\n0.207428 0.593719 0.045441\n0.240051 0.595398 0.046204\n0.275177 0.596954 0.046936\n0.312622 0.598511 0.047699\n0.352234 0.600128 0.048431\n0.393494 0.601746 0.049255\n0.436157 0.603302 0.049988\n0.479431 0.604919 0.050751\n0.521545 0.606537 0.051544\n0.561066 0.608093 0.052338\n0.597870 0.609711 0.053101\n0.632019 0.611267 0.053925\n0.663788 0.612854 0.054718\n0.693451 0.614441 0.055542\n0.721344 0.615967 0.056335\n0.747772 0.617554 0.057190\n0.772949 0.619110 0.058014\n0.797089 0.620605 0.058838\n0.820465 0.622162 0.059662\n0.843262 0.623718 0.060486\n0.865814 0.625214 0.061279\n0.888306 0.626678 0.062134\n0.911133 0.628143 0.062927\n0.934723 0.629639 0.063782\n0.959961 0.631104 0.064636\n0.051849 0.625671 0.036743\n0.068542 0.627045 0.037445\n0.086700 0.628357 0.038177\n0.106537 0.629730 0.038910\n0.128448 0.631104 0.039612\n0.152832 0.632446 0.040405\n0.179962 0.633881 0.041199\n0.209900 0.635223 0.041901\n0.242584 0.636597 0.042725\n0.277863 0.638000 0.043518\n0.315369 0.639343 0.044312\n0.354919 0.640747 0.045105\n0.396179 0.642181 0.045898\n0.438782 0.643494 0.046722\n0.481964 0.644867 0.047516\n0.523804 0.646210 0.048340\n0.562988 0.647614 0.049194\n0.599609 0.648956 0.050018\n0.633514 0.650330 0.050812\n0.665070 0.651703 0.051666\n0.694580 0.653046 0.052521\n0.722290 0.654358 0.053345\n0.748566 0.655701 0.054230\n0.773651 0.657043 0.055115\n0.797638 0.658325 0.055939\n0.820892 0.659668 0.056763\n0.843689 0.660919 0.057617\n0.866089 0.662201 0.058502\n0.888550 0.663513 0.059357\n0.911285 0.664734 0.060242\n0.934845 0.666016 0.061035\n0.959961 0.667267 0.061951\n0.053406 0.664948 0.033386\n0.070190 0.666077 0.034149\n0.088440 0.667267 0.034912\n0.108429 0.668457 0.035706\n0.130524 0.669586 0.036499\n0.154968 0.670807 0.037262\n0.182281 0.671967 0.038086\n0.212402 0.673187 0.038879\n0.245239 0.674347 0.039734\n0.280579 0.675568 0.040558\n0.318085 0.676727 0.041382\n0.357666 0.677917 0.042206\n0.398895 0.679077 0.043030\n0.441406 0.680267 0.043884\n0.484467 0.681458 0.044769\n0.526001 0.682587 0.045593\n0.564972 0.683777 0.046448\n0.601288 0.684967 0.047333\n0.634979 0.686127 0.048157\n0.666321 0.687256 0.049072\n0.695648 0.688416 0.049957\n0.723206 0.689545 0.050812\n0.749390 0.690735 0.051666\n0.774292 0.691833 0.052582\n0.798248 0.692963 0.053467\n0.821411 0.694061 0.054321\n0.844025 0.695129 0.055237\n0.866394 0.696289 0.056122\n0.888763 0.697388 0.056946\n0.911469 0.698425 0.057861\n0.934937 0.699493 0.058716\n0.959961 0.700531 0.059631\n0.054993 0.700928 0.030518\n0.071869 0.701935 0.031311\n0.090210 0.702942 0.032104\n0.110352 0.703979 0.032959\n0.132538 0.704956 0.033813\n0.157227 0.706024 0.034576\n0.184692 0.707062 0.035461\n0.214935 0.708038 0.036285\n0.247833 0.709076 0.037140\n0.283264 0.710114 0.038025\n0.320831 0.711090 0.038879\n0.360413 0.712128 0.039703\n0.401550 0.713104 0.040588\n0.444061 0.714142 0.041473\n0.487000 0.715149 0.042328\n0.528168 0.716125 0.043213\n0.566895 0.717133 0.044098\n0.602966 0.718140 0.045013\n0.636414 0.719116 0.045898\n0.667603 0.720093 0.046814\n0.696716 0.721100 0.047729\n0.724152 0.722076 0.048615\n0.750153 0.723022 0.049530\n0.774963 0.723999 0.050415\n0.798798 0.724945 0.051331\n0.821869 0.725922 0.052216\n0.844452 0.726837 0.053101\n0.866699 0.727814 0.053986\n0.889008 0.728699 0.054901\n0.911621 0.729584 0.055786\n0.935028 0.730530 0.056702\n0.959961 0.731384 0.057587\n0.056610 0.734253 0.028046\n0.073547 0.735077 0.028870\n0.092041 0.735962 0.029755\n0.112305 0.736847 0.030579\n0.134644 0.737701 0.031403\n0.159454 0.738586 0.032288\n0.187073 0.739441 0.033173\n0.217468 0.740326 0.034027\n0.250519 0.741211 0.034912\n0.285919 0.742065 0.035767\n0.323608 0.742950 0.036682\n0.363251 0.743805 0.037598\n0.404327 0.744659 0.038483\n0.446686 0.745544 0.039368\n0.489441 0.746399 0.040283\n0.530396 0.747253 0.041199\n0.568878 0.748108 0.042145\n0.604645 0.748962 0.043030\n0.637878 0.749786 0.043976\n0.668823 0.750641 0.044861\n0.697784 0.751495 0.045807\n0.725098 0.752319 0.046692\n0.750946 0.753143 0.047638\n0.775604 0.753967 0.048523\n0.799347 0.754761 0.049438\n0.822327 0.755585 0.050354\n0.844788 0.756348 0.051270\n0.867035 0.757172 0.052185\n0.889252 0.757935 0.053070\n0.911774 0.758728 0.053986\n0.935120 0.759491 0.054901\n0.959961 0.760254 0.055786\n0.058258 0.765289 0.025909\n0.075317 0.765991 0.026733\n0.093933 0.766754 0.027618\n0.114258 0.767487 0.028534\n0.136749 0.768250 0.029388\n0.161774 0.768982 0.030273\n0.189545 0.769745 0.031189\n0.220062 0.770477 0.032074\n0.253204 0.771210 0.032990\n0.288666 0.771912 0.033905\n0.326385 0.772705 0.034821\n0.365967 0.773438 0.035736\n0.407043 0.774200 0.036621\n0.449341 0.774902 0.037567\n0.491943 0.775635 0.038544\n0.532593 0.776367 0.039429\n0.570770 0.777100 0.040375\n0.606293 0.777802 0.041321\n0.639282 0.778564 0.042206\n0.670044 0.779236 0.043182\n0.698853 0.779938 0.044098\n0.725983 0.780670 0.045013\n0.751740 0.781342 0.045959\n0.776276 0.782043 0.046906\n0.799927 0.782745 0.047821\n0.822815 0.783417 0.048767\n0.845215 0.784088 0.049622\n0.867340 0.784760 0.050568\n0.889465 0.785400 0.051483\n0.911957 0.786041 0.052399\n0.935181 0.786682 0.053284\n0.959961 0.787354 0.054169\n0.059937 0.794403 0.024017\n0.077087 0.795013 0.024872\n0.095764 0.795654 0.025818\n0.116302 0.796295 0.026703\n0.138916 0.796906 0.027588\n0.164093 0.797546 0.028534\n0.192047 0.798218 0.029449\n0.222656 0.798828 0.030396\n0.255859 0.799438 0.031311\n0.291473 0.800079 0.032227\n0.329163 0.800720 0.033173\n0.368713 0.801331 0.034119\n0.409729 0.801941 0.035065\n0.451996 0.802612 0.036011\n0.494354 0.803192 0.036957\n0.534729 0.803802 0.037872\n0.572632 0.804382 0.038849\n0.607941 0.805054 0.039795\n0.640747 0.805634 0.040710\n0.671265 0.806213 0.041687\n0.699860 0.806824 0.042603\n0.726898 0.807434 0.043579\n0.752472 0.807983 0.044495\n0.776917 0.808594 0.045441\n0.800476 0.809174 0.046326\n0.823303 0.809753 0.047333\n0.845551 0.810303 0.048187\n0.867584 0.810822 0.049133\n0.889648 0.811432 0.050079\n0.912048 0.811951 0.050934\n0.935242 0.812469 0.051849\n0.959961 0.813019 0.052734\n0.061646 0.821960 0.022369\n0.078857 0.822479 0.023254\n0.097656 0.823059 0.024170\n0.118317 0.823578 0.025116\n0.141083 0.824097 0.026031\n0.166443 0.824646 0.027008\n0.194458 0.825165 0.027924\n0.225250 0.825684 0.028870\n0.258575 0.826202 0.029846\n0.294189 0.826782 0.030731\n0.331879 0.827271 0.031708\n0.371460 0.827820 0.032684\n0.412445 0.828339 0.033630\n0.454559 0.828888 0.034576\n0.496735 0.829346 0.035553\n0.536896 0.829895 0.036530\n0.574463 0.830414 0.037506\n0.609528 0.830902 0.038452\n0.642090 0.831390 0.039398\n0.672455 0.831940 0.040344\n0.700928 0.832397 0.041260\n0.727722 0.832886 0.042236\n0.753235 0.833405 0.043182\n0.777557 0.833893 0.044128\n0.800995 0.834351 0.045044\n0.823669 0.834839 0.045990\n0.845917 0.835297 0.046906\n0.867889 0.835785 0.047821\n0.889893 0.836182 0.048737\n0.912201 0.836670 0.049652\n0.935333 0.837097 0.050537\n0.959961 0.837524 0.051422\n0.063324 0.848328 0.020905\n0.080658 0.848785 0.021820\n0.099609 0.849182 0.022766\n0.120361 0.849670 0.023743\n0.143280 0.850067 0.024658\n0.168762 0.850555 0.025604\n0.196960 0.850983 0.026550\n0.227905 0.851440 0.027496\n0.261292 0.851868 0.028473\n0.296967 0.852295 0.029449\n0.334686 0.852753 0.030426\n0.374237 0.853180 0.031403\n0.415161 0.853607 0.032349\n0.457184 0.854065 0.033356\n0.499176 0.854462 0.034332\n0.538971 0.854889 0.035309\n0.576324 0.855316 0.036255\n0.611115 0.855743 0.037201\n0.643494 0.856140 0.038147\n0.673615 0.856567 0.039124\n0.701904 0.856964 0.040070\n0.728607 0.857361 0.041046\n0.753967 0.857788 0.041962\n0.778137 0.858185 0.042938\n0.801544 0.858582 0.043884\n0.824158 0.858978 0.044769\n0.846252 0.859314 0.045715\n0.868195 0.859711 0.046631\n0.890076 0.860107 0.047516\n0.912323 0.860443 0.048431\n0.935394 0.860840 0.049316\n0.959961 0.861176 0.050171\n0.065094 0.873718 0.019531\n0.082489 0.874115 0.020508\n0.101501 0.874451 0.021454\n0.122406 0.874847 0.022430\n0.145508 0.875183 0.023376\n0.171143 0.875549 0.024353\n0.199493 0.875916 0.025330\n0.230499 0.876282 0.026337\n0.263977 0.876648 0.027313\n0.299652 0.876984 0.028290\n0.337433 0.877350 0.029266\n0.376953 0.877686 0.030273\n0.417816 0.878082 0.031219\n0.459747 0.878387 0.032227\n0.501495 0.878754 0.033142\n0.541016 0.879089 0.034149\n0.578156 0.879425 0.035095\n0.612732 0.879761 0.036102\n0.644806 0.880096 0.037018\n0.674774 0.880463 0.038055\n0.702911 0.880768 0.038910\n0.729462 0.881104 0.039948\n0.754700 0.881409 0.040863\n0.778809 0.881714 0.041748\n0.802032 0.882080 0.042725\n0.824554 0.882355 0.043640\n0.846649 0.882690 0.044556\n0.868439 0.882965 0.045471\n0.890289 0.883301 0.046356\n0.912476 0.883575 0.047272\n0.935455 0.883881 0.048096\n0.959961 0.884155 0.048950\n0.066833 0.898590 0.018311\n0.084351 0.898865 0.019257\n0.103485 0.899139 0.020233\n0.124481 0.899445 0.021210\n0.147705 0.899689 0.022217\n0.173523 0.900024 0.023193\n0.202026 0.900330 0.024170\n0.233124 0.900574 0.025177\n0.266693 0.900909 0.026154\n0.302429 0.901123 0.027191\n0.340179 0.901398 0.028168\n0.379639 0.901703 0.029144\n0.420441 0.901978 0.030090\n0.462280 0.902252 0.031097\n0.503754 0.902527 0.032074\n0.543091 0.902802 0.033081\n0.579865 0.903046 0.034027\n0.614227 0.903320 0.035004\n0.646118 0.903625 0.035950\n0.675873 0.903900 0.036957\n0.703888 0.904114 0.037872\n0.730286 0.904419 0.038818\n0.755371 0.904633 0.039764\n0.779419 0.904846 0.040680\n0.802521 0.905121 0.041626\n0.824951 0.905334 0.042542\n0.846924 0.905609 0.043427\n0.868744 0.905823 0.044342\n0.890503 0.906067 0.045197\n0.912598 0.906281 0.046082\n0.935516 0.906525 0.046906\n0.959961 0.906708 0.047729\n0.068542 0.923126 0.017090\n0.086182 0.923340 0.018066\n0.105438 0.923553 0.019073\n0.126587 0.923767 0.020050\n0.149933 0.923981 0.021088\n0.175903 0.924225 0.022064\n0.204498 0.924438 0.023071\n0.235718 0.924622 0.024109\n0.269348 0.924866 0.025085\n0.305115 0.925049 0.026062\n0.342896 0.925262 0.027039\n0.382294 0.925476 0.028046\n0.423126 0.925690 0.029022\n0.464783 0.925903 0.030029\n0.506073 0.926086 0.030975\n0.545074 0.926300 0.032013\n0.581635 0.926483 0.032959\n0.615692 0.926697 0.033936\n0.647400 0.926910 0.034882\n0.677032 0.927063 0.035828\n0.704834 0.927246 0.036804\n0.731079 0.927490 0.037750\n0.756073 0.927673 0.038666\n0.779968 0.927826 0.039581\n0.802979 0.928009 0.040466\n0.825348 0.928162 0.041382\n0.847290 0.928345 0.042267\n0.868958 0.928528 0.043152\n0.890656 0.928711 0.043976\n0.912750 0.928864 0.044830\n0.935577 0.929047 0.045685\n0.959961 0.929230 0.046478\n0.070343 0.947815 0.015869\n0.088043 0.947937 0.016907\n0.107391 0.948120 0.017914\n0.128662 0.948242 0.018890\n0.152191 0.948395 0.019928\n0.178314 0.948578 0.020966\n0.207031 0.948669 0.021912\n0.238312 0.948853 0.022949\n0.272034 0.948975 0.023956\n0.307800 0.949066 0.024963\n0.345581 0.949249 0.025940\n0.384918 0.949402 0.026917\n0.425629 0.949554 0.027924\n0.467163 0.949707 0.028931\n0.508240 0.949829 0.029877\n0.546967 0.949982 0.030884\n0.583313 0.950104 0.031830\n0.617157 0.950195 0.032776\n0.648651 0.950348 0.033752\n0.678101 0.950470 0.034729\n0.705688 0.950592 0.035645\n0.731873 0.950714 0.036591\n0.756714 0.950867 0.037476\n0.780548 0.950989 0.038391\n0.803467 0.951111 0.039276\n0.825745 0.951233 0.040161\n0.847595 0.951355 0.041046\n0.869232 0.951477 0.041901\n0.890839 0.951569 0.042725\n0.912842 0.951691 0.043579\n0.935638 0.951782 0.044403\n0.959961 0.951874 0.045197\n0.072083 0.973145 0.014587\n0.089905 0.973236 0.015625\n0.109375 0.973297 0.016693\n0.130737 0.973358 0.017670\n0.154449 0.973480 0.018707\n0.180664 0.973511 0.019745\n0.209534 0.973633 0.020691\n0.240997 0.973694 0.021729\n0.274628 0.973785 0.022705\n0.310486 0.973846 0.023712\n0.348236 0.973938 0.024719\n0.387543 0.973999 0.025757\n0.428192 0.974091 0.026703\n0.469574 0.974152 0.027710\n0.510376 0.974213 0.028687\n0.548889 0.974304 0.029633\n0.584991 0.974365 0.030609\n0.618591 0.974396 0.031586\n0.649872 0.974457 0.032501\n0.679138 0.974548 0.033447\n0.706604 0.974609 0.034393\n0.732635 0.974670 0.035309\n0.757355 0.974731 0.036194\n0.781067 0.974823 0.037048\n0.803925 0.974854 0.037964\n0.826080 0.974915 0.038818\n0.847900 0.974976 0.039703\n0.869446 0.975037 0.040527\n0.890991 0.975067 0.041351\n0.912933 0.975128 0.042145\n0.935699 0.975189 0.042908\n0.959961 0.975250 0.043671\n0.073883 1.000000 0.013153\n0.091797 1.000000 0.014221\n0.111359 1.000000 0.015228\n0.132843 1.000000 0.016235\n0.156677 1.000000 0.017242\n0.183044 1.000000 0.018280\n0.212036 1.000000 0.019257\n0.243500 1.000000 0.020294\n0.277283 1.000000 0.021271\n0.313110 1.000000 0.022339\n0.350861 1.000000 0.023285\n0.390106 1.000000 0.024292\n0.430664 1.000000 0.025299\n0.471954 1.000000 0.026276\n0.512543 1.000000 0.027252\n0.550781 1.000000 0.028229\n0.586578 1.000000 0.029175\n0.619995 1.000000 0.030121\n0.651031 1.000000 0.031067\n0.680115 1.000000 0.031952\n0.707489 1.000000 0.032867\n0.733368 1.000000 0.033783\n0.758026 1.000000 0.034668\n0.781586 1.000000 0.035522\n0.804352 1.000000 0.036407\n0.826477 1.000000 0.037201\n0.848175 1.000000 0.038086\n0.869629 1.000000 0.038879\n0.891174 1.000000 0.039673\n0.913086 1.000000 0.040436\n0.935791 1.000000 0.041199\n0.959961 1.000000 0.041931\n0.031433 0.000732 0.115662\n0.046844 0.001282 0.115997\n0.063385 0.001862 0.116333\n0.081451 0.002441 0.116730\n0.101257 0.003052 0.117096\n0.123108 0.003723 0.117493\n0.147491 0.004395 0.117859\n0.174805 0.005096 0.118317\n0.205200 0.005798 0.118774\n0.238586 0.006561 0.119232\n0.274750 0.007324 0.119720\n0.313477 0.008148 0.120178\n0.354492 0.008972 0.120697\n0.397369 0.009796 0.121185\n0.441864 0.010651 0.121765\n0.486938 0.011566 0.122284\n0.530273 0.012451 0.122864\n0.570801 0.013397 0.123413\n0.608490 0.014374 0.124054\n0.643402 0.015320 0.124634\n0.675781 0.016327 0.125275\n0.706146 0.017334 0.125885\n0.734650 0.018372 0.126495\n0.761688 0.019470 0.127136\n0.787598 0.020508 0.127808\n0.812500 0.021606 0.128479\n0.836731 0.022736 0.129181\n0.860596 0.023834 0.129883\n0.884338 0.025024 0.130554\n0.908386 0.026184 0.131317\n0.933319 0.027374 0.132019\n0.959961 0.028564 0.132782\n0.032074 0.016846 0.114380\n0.047577 0.017456 0.114746\n0.064178 0.018066 0.115112\n0.082336 0.018707 0.115509\n0.102203 0.019409 0.115906\n0.124176 0.020111 0.116333\n0.148743 0.020813 0.116791\n0.176147 0.021606 0.117279\n0.206696 0.022400 0.117737\n0.240173 0.023193 0.118195\n0.276398 0.024017 0.118713\n0.315247 0.024902 0.119232\n0.356262 0.025757 0.119751\n0.399170 0.026672 0.120300\n0.443634 0.027588 0.120880\n0.488617 0.028534 0.121460\n0.531799 0.029510 0.122009\n0.572174 0.030518 0.122620\n0.609741 0.031555 0.123260\n0.644470 0.032562 0.123840\n0.676697 0.033661 0.124512\n0.706909 0.034698 0.125122\n0.735321 0.035797 0.125824\n0.762299 0.036957 0.126465\n0.788086 0.038086 0.127136\n0.812927 0.039246 0.127838\n0.837097 0.040466 0.128540\n0.860840 0.041626 0.129242\n0.884583 0.042877 0.130005\n0.908539 0.044128 0.130737\n0.933411 0.045349 0.131470\n0.959961 0.046631 0.132233\n0.032806 0.033844 0.113068\n0.048340 0.034546 0.113464\n0.065094 0.035217 0.113861\n0.083282 0.035919 0.114258\n0.103271 0.036713 0.114746\n0.125397 0.037476 0.115173\n0.150024 0.038269 0.115631\n0.177582 0.039093 0.116150\n0.208221 0.039948 0.116608\n0.241821 0.040833 0.117126\n0.278168 0.041718 0.117645\n0.317078 0.042664 0.118195\n0.358185 0.043640 0.118744\n0.401154 0.044586 0.119324\n0.445526 0.045624 0.119934\n0.490479 0.046661 0.120483\n0.533417 0.047668 0.121124\n0.573608 0.048798 0.121704\n0.610992 0.049896 0.122375\n0.645538 0.050995 0.123016\n0.677704 0.052124 0.123688\n0.707733 0.053284 0.124298\n0.736053 0.054474 0.124969\n0.762909 0.055695 0.125671\n0.788605 0.056915 0.126373\n0.813354 0.058136 0.127075\n0.837463 0.059448 0.127808\n0.861115 0.060730 0.128540\n0.884766 0.062042 0.129272\n0.908691 0.063416 0.130035\n0.933472 0.064728 0.130798\n0.959961 0.066101 0.131561\n0.033661 0.052124 0.111664\n0.049286 0.052856 0.112061\n0.066040 0.053619 0.112518\n0.084320 0.054443 0.112946\n0.104401 0.055298 0.113434\n0.126617 0.056152 0.113892\n0.151398 0.057037 0.114380\n0.179077 0.057953 0.114868\n0.209900 0.058868 0.115417\n0.243591 0.059875 0.115936\n0.280029 0.060852 0.116486\n0.319000 0.061890 0.117065\n0.360168 0.062897 0.117645\n0.403076 0.063995 0.118225\n0.447479 0.065125 0.118835\n0.492249 0.066223 0.119446\n0.535065 0.067383 0.120056\n0.575073 0.068542 0.120697\n0.612244 0.069733 0.121338\n0.646637 0.070953 0.122009\n0.678650 0.072174 0.122681\n0.708557 0.073456 0.123322\n0.736786 0.074768 0.124023\n0.763519 0.076080 0.124695\n0.789124 0.077362 0.125458\n0.813812 0.078766 0.126190\n0.837799 0.080139 0.126892\n0.861450 0.081543 0.127625\n0.885010 0.082947 0.128387\n0.908875 0.084351 0.129120\n0.933533 0.085846 0.129913\n0.959961 0.087311 0.130646\n0.034515 0.071991 0.110107\n0.050140 0.072815 0.110535\n0.067047 0.073700 0.110992\n0.085419 0.074615 0.111450\n0.105652 0.075562 0.111938\n0.127960 0.076477 0.112457\n0.152863 0.077515 0.113007\n0.180695 0.078491 0.113495\n0.211609 0.079559 0.114044\n0.245483 0.080627 0.114624\n0.282013 0.081757 0.115143\n0.321014 0.082886 0.115753\n0.362213 0.084015 0.116364\n0.405121 0.085205 0.116943\n0.449493 0.086426 0.117554\n0.494171 0.087646 0.118195\n0.536774 0.088898 0.118835\n0.576569 0.090240 0.119476\n0.613556 0.091492 0.120178\n0.647797 0.092865 0.120819\n0.679657 0.094238 0.121490\n0.709412 0.095612 0.122162\n0.737549 0.097046 0.122864\n0.764221 0.098480 0.123596\n0.789673 0.099884 0.124268\n0.814240 0.101410 0.125000\n0.838165 0.102936 0.125763\n0.861755 0.104401 0.126526\n0.885223 0.105988 0.127258\n0.909058 0.107544 0.127991\n0.933655 0.109131 0.128784\n0.959961 0.110779 0.129578\n0.035492 0.093872 0.108337\n0.051208 0.094849 0.108826\n0.068115 0.095825 0.109283\n0.086609 0.096863 0.109802\n0.106873 0.097900 0.110321\n0.129333 0.098969 0.110840\n0.154358 0.100098 0.111359\n0.182373 0.101227 0.111877\n0.213470 0.102386 0.112457\n0.247406 0.103607 0.113037\n0.284027 0.104797 0.113617\n0.323059 0.106079 0.114227\n0.364319 0.107391 0.114838\n0.407257 0.108704 0.115417\n0.451569 0.110046 0.116058\n0.496155 0.111389 0.116669\n0.538574 0.112793 0.117371\n0.578156 0.114258 0.118011\n0.614899 0.115662 0.118652\n0.648987 0.117157 0.119324\n0.680695 0.118683 0.120026\n0.710297 0.120178 0.120728\n0.738281 0.121735 0.121429\n0.764862 0.123322 0.122131\n0.790222 0.124939 0.122864\n0.814728 0.126587 0.123596\n0.838593 0.128204 0.124298\n0.862061 0.129883 0.125061\n0.885468 0.131653 0.125824\n0.909180 0.133331 0.126587\n0.933746 0.135101 0.127350\n0.959961 0.136871 0.128113\n0.036407 0.118286 0.106384\n0.052246 0.119415 0.106842\n0.069244 0.120514 0.107361\n0.087830 0.121674 0.107849\n0.108185 0.122833 0.108368\n0.130798 0.124084 0.108887\n0.156006 0.125366 0.109436\n0.184143 0.126617 0.110016\n0.215363 0.127930 0.110596\n0.249420 0.129272 0.111176\n0.286102 0.130646 0.111755\n0.325226 0.132050 0.112366\n0.366486 0.133514 0.112976\n0.409424 0.134949 0.113617\n0.453705 0.136444 0.114258\n0.498138 0.137970 0.114868\n0.540344 0.139526 0.115509\n0.579712 0.141113 0.116211\n0.616272 0.142731 0.116852\n0.650177 0.144348 0.117554\n0.681702 0.146027 0.118256\n0.711182 0.147675 0.118896\n0.739044 0.149445 0.119659\n0.765503 0.151215 0.120361\n0.790771 0.152924 0.121094\n0.815186 0.154785 0.121796\n0.838959 0.156525 0.122528\n0.862335 0.158417 0.123322\n0.885681 0.160339 0.124054\n0.909363 0.162170 0.124786\n0.933838 0.164124 0.125580\n0.959961 0.166077 0.126312\n0.037506 0.145721 0.104065\n0.053345 0.146973 0.104553\n0.070465 0.148254 0.105042\n0.089081 0.149536 0.105591\n0.109619 0.150848 0.106110\n0.132355 0.152283 0.106659\n0.157684 0.153687 0.107239\n0.186005 0.155121 0.107788\n0.217346 0.156586 0.108368\n0.251465 0.158173 0.108948\n0.288300 0.159668 0.109558\n0.327454 0.161255 0.110168\n0.368713 0.162842 0.110779\n0.411682 0.164490 0.111389\n0.455902 0.166138 0.112030\n0.500183 0.167847 0.112701\n0.542145 0.169556 0.113342\n0.581329 0.171356 0.114014\n0.617676 0.173096 0.114685\n0.651428 0.174957 0.115356\n0.682739 0.176849 0.116058\n0.712128 0.178680 0.116760\n0.739838 0.180573 0.117462\n0.766174 0.182465 0.118134\n0.791321 0.184479 0.118896\n0.815674 0.186462 0.119629\n0.839355 0.188446 0.120331\n0.862671 0.190491 0.121094\n0.885925 0.192596 0.121857\n0.909546 0.194611 0.122589\n0.933899 0.196716 0.123352\n0.959961 0.198883 0.124146\n0.038574 0.176758 0.101349\n0.054504 0.178131 0.101837\n0.071716 0.179596 0.102356\n0.090454 0.181122 0.102875\n0.111084 0.182617 0.103455\n0.133972 0.184143 0.104004\n0.159454 0.185791 0.104523\n0.187897 0.187347 0.105103\n0.219391 0.189026 0.105743\n0.253632 0.190735 0.106293\n0.290558 0.192444 0.106903\n0.329773 0.194244 0.107513\n0.371033 0.195984 0.108154\n0.414001 0.197784 0.108765\n0.458191 0.199677 0.109406\n0.502289 0.201508 0.110046\n0.544006 0.203430 0.110718\n0.582916 0.205414 0.111389\n0.619080 0.207336 0.112061\n0.652588 0.209381 0.112732\n0.683777 0.211365 0.113434\n0.713043 0.213379 0.114136\n0.740631 0.215485 0.114868\n0.766846 0.217529 0.115540\n0.791931 0.219666 0.116241\n0.816162 0.221863 0.116974\n0.839752 0.223969 0.117737\n0.863007 0.226135 0.118469\n0.886200 0.228394 0.119202\n0.909668 0.230560 0.119934\n0.933990 0.232819 0.120667\n0.959961 0.235107 0.121460\n0.039734 0.211761 0.098145\n0.055725 0.213257 0.098663\n0.072998 0.214905 0.099213\n0.091858 0.216583 0.099762\n0.112640 0.218262 0.100311\n0.135651 0.220001 0.100861\n0.161316 0.221771 0.101440\n0.189880 0.223541 0.102051\n0.221466 0.225342 0.102631\n0.255829 0.227173 0.103180\n0.292877 0.229034 0.103821\n0.332153 0.230988 0.104431\n0.373413 0.232910 0.105042\n0.416382 0.234894 0.105682\n0.460480 0.236908 0.106384\n0.504395 0.238922 0.106995\n0.545868 0.240967 0.107635\n0.584625 0.243042 0.108368\n0.620514 0.245148 0.109009\n0.653839 0.247284 0.109711\n0.684875 0.249420 0.110413\n0.713959 0.251617 0.111084\n0.741455 0.253815 0.111786\n0.767487 0.256042 0.112488\n0.792511 0.258301 0.113281\n0.816650 0.260529 0.113953\n0.840149 0.262787 0.114685\n0.863342 0.265137 0.115417\n0.886414 0.267456 0.116150\n0.909851 0.269775 0.116913\n0.934082 0.272156 0.117645\n0.959961 0.274445 0.118378\n0.040924 0.250519 0.094574\n0.056976 0.252228 0.095093\n0.074341 0.253967 0.095642\n0.093323 0.255798 0.096191\n0.114197 0.257568 0.096771\n0.137360 0.259460 0.097351\n0.163177 0.261353 0.097931\n0.191956 0.263245 0.098480\n0.223663 0.265198 0.099121\n0.258148 0.267151 0.099701\n0.295227 0.269165 0.100281\n0.334564 0.271240 0.100983\n0.375793 0.273285 0.101593\n0.418793 0.275360 0.102234\n0.462830 0.277527 0.102875\n0.506500 0.279633 0.103546\n0.547729 0.281830 0.104218\n0.586273 0.284058 0.104889\n0.622009 0.286224 0.105621\n0.655121 0.288483 0.106262\n0.685944 0.290741 0.106964\n0.714905 0.293030 0.107666\n0.742218 0.295319 0.108429\n0.768188 0.297577 0.109100\n0.793060 0.299957 0.109802\n0.817108 0.302307 0.110535\n0.840546 0.304657 0.111237\n0.863647 0.307037 0.112030\n0.886658 0.309509 0.112762\n0.909973 0.311798 0.113495\n0.934174 0.314270 0.114258\n0.959961 0.316681 0.114990\n0.042175 0.292725 0.090576\n0.058319 0.294556 0.091095\n0.075775 0.296417 0.091675\n0.094849 0.298370 0.092255\n0.115875 0.300293 0.092834\n0.139160 0.302216 0.093414\n0.165100 0.304199 0.093994\n0.194061 0.306244 0.094635\n0.225922 0.308319 0.095215\n0.260498 0.310364 0.095825\n0.297607 0.312469 0.096466\n0.337006 0.314606 0.097107\n0.378357 0.316742 0.097748\n0.421234 0.318970 0.098389\n0.465179 0.321167 0.099091\n0.508698 0.323364 0.099762\n0.549683 0.325623 0.100464\n0.587952 0.327942 0.101105\n0.623444 0.330139 0.101807\n0.656372 0.332520 0.102509\n0.687073 0.334778 0.103241\n0.715851 0.337128 0.103912\n0.743042 0.339508 0.104645\n0.768890 0.341888 0.105347\n0.793671 0.344238 0.106079\n0.817657 0.346710 0.106842\n0.840942 0.349060 0.107544\n0.863922 0.351471 0.108307\n0.886902 0.353851 0.109070\n0.910156 0.356293 0.109833\n0.934265 0.358795 0.110596\n0.959961 0.361206 0.111359\n0.043518 0.338043 0.086273\n0.059692 0.339905 0.086792\n0.077209 0.341888 0.087402\n0.096436 0.343872 0.087982\n0.117554 0.345795 0.088562\n0.141022 0.347900 0.089172\n0.167145 0.349915 0.089783\n0.196228 0.352020 0.090393\n0.228210 0.354187 0.091034\n0.262939 0.356293 0.091675\n0.300110 0.358490 0.092316\n0.339539 0.360687 0.092957\n0.380859 0.362854 0.093628\n0.423706 0.365112 0.094299\n0.467590 0.367401 0.095001\n0.510895 0.369598 0.095673\n0.551605 0.371918 0.096375\n0.589600 0.374207 0.097015\n0.624939 0.376526 0.097809\n0.657623 0.378876 0.098480\n0.688141 0.381226 0.099213\n0.716766 0.383575 0.099945\n0.743835 0.385986 0.100647\n0.769592 0.388336 0.101410\n0.794250 0.390747 0.102142\n0.818085 0.393188 0.102905\n0.841339 0.395508 0.103668\n0.864288 0.397949 0.104370\n0.887146 0.400330 0.105133\n0.910370 0.402771 0.105927\n0.934326 0.405243 0.106689\n0.959961 0.407562 0.107452\n0.044830 0.385834 0.081665\n0.061127 0.387787 0.082275\n0.078766 0.389801 0.082855\n0.098053 0.391754 0.083435\n0.119324 0.393860 0.084045\n0.142944 0.395966 0.084656\n0.169220 0.397980 0.085297\n0.198456 0.400177 0.085938\n0.230621 0.402313 0.086578\n0.265381 0.404449 0.087250\n0.302643 0.406616 0.087891\n0.342133 0.408875 0.088593\n0.383453 0.411072 0.089264\n0.426270 0.413300 0.089996\n0.469971 0.415527 0.090637\n0.513092 0.417847 0.091339\n0.553558 0.420105 0.092102\n0.591339 0.422424 0.092773\n0.626373 0.424744 0.093506\n0.658875 0.427063 0.094238\n0.689240 0.429382 0.094971\n0.717743 0.431763 0.095734\n0.744629 0.434143 0.096466\n0.770294 0.436401 0.097229\n0.794861 0.438812 0.097992\n0.818604 0.441132 0.098785\n0.841736 0.443512 0.099518\n0.864563 0.445892 0.100281\n0.887390 0.448242 0.101044\n0.910492 0.450623 0.101837\n0.934387 0.453003 0.102631\n0.959961 0.455383 0.103394\n0.046204 0.435638 0.076874\n0.062561 0.437622 0.077454\n0.080322 0.439636 0.078094\n0.099762 0.441650 0.078674\n0.121124 0.443726 0.079346\n0.144867 0.445831 0.080017\n0.171356 0.447876 0.080627\n0.200775 0.450012 0.081299\n0.233032 0.452179 0.082001\n0.267883 0.454254 0.082672\n0.305237 0.456451 0.083344\n0.344727 0.458618 0.084076\n0.385986 0.460815 0.084717\n0.428833 0.463013 0.085449\n0.472443 0.465179 0.086182\n0.515289 0.467468 0.086884\n0.555542 0.469696 0.087646\n0.593048 0.471924 0.088348\n0.627899 0.474213 0.089111\n0.660217 0.476471 0.089905\n0.690338 0.478729 0.090637\n0.718689 0.480988 0.091400\n0.745483 0.483246 0.092194\n0.770966 0.485504 0.092957\n0.795471 0.487762 0.093750\n0.819092 0.490021 0.094513\n0.842163 0.492310 0.095337\n0.864929 0.494568 0.096100\n0.887665 0.496796 0.096893\n0.910675 0.499023 0.097687\n0.934509 0.501312 0.098480\n0.959961 0.503479 0.099274\n0.047638 0.486633 0.071930\n0.064056 0.488586 0.072601\n0.081940 0.490570 0.073212\n0.101440 0.492523 0.073883\n0.123016 0.494507 0.074524\n0.146881 0.496552 0.075226\n0.173523 0.498566 0.075897\n0.203094 0.500580 0.076599\n0.235504 0.502686 0.077362\n0.270416 0.504700 0.078033\n0.307861 0.506805 0.078735\n0.347290 0.508820 0.079468\n0.388702 0.510925 0.080261\n0.431366 0.512970 0.080963\n0.474945 0.515045 0.081726\n0.517517 0.517151 0.082489\n0.557465 0.519226 0.083221\n0.594757 0.521301 0.084015\n0.629395 0.523346 0.084808\n0.661499 0.525421 0.085602\n0.691437 0.527435 0.086395\n0.719635 0.529541 0.087189\n0.746307 0.531616 0.088013\n0.771667 0.533630 0.088837\n0.795990 0.535645 0.089661\n0.819580 0.537659 0.090485\n0.842529 0.539703 0.091309\n0.865204 0.541748 0.092102\n0.887878 0.543671 0.092926\n0.910797 0.545685 0.093781\n0.934601 0.547638 0.094635\n0.959961 0.549622 0.095459\n0.049103 0.536835 0.067169\n0.065613 0.538544 0.067871\n0.083618 0.540344 0.068573\n0.103241 0.542114 0.069275\n0.124908 0.543915 0.069977\n0.148956 0.545715 0.070709\n0.175751 0.547485 0.071472\n0.205475 0.549347 0.072205\n0.238007 0.551147 0.072906\n0.273071 0.552979 0.073730\n0.310486 0.554810 0.074524\n0.350037 0.556641 0.075256\n0.391327 0.558441 0.076050\n0.434021 0.560272 0.076813\n0.477417 0.562073 0.077637\n0.519775 0.563934 0.078461\n0.559479 0.565765 0.079254\n0.596466 0.567535 0.080078\n0.630829 0.569397 0.080933\n0.662750 0.571167 0.081757\n0.692535 0.572998 0.082581\n0.720581 0.574768 0.083466\n0.747131 0.576630 0.084320\n0.772369 0.578369 0.085144\n0.796600 0.580170 0.086029\n0.820068 0.581940 0.086853\n0.842957 0.583710 0.087738\n0.865540 0.585480 0.088562\n0.888092 0.587128 0.089447\n0.910980 0.588928 0.090332\n0.934692 0.590607 0.091217\n0.959961 0.592285 0.092072\n0.050568 0.583282 0.062988\n0.067230 0.584900 0.063721\n0.085266 0.586426 0.064423\n0.105011 0.587982 0.065247\n0.126862 0.589600 0.065979\n0.151093 0.591156 0.066742\n0.178070 0.592773 0.067505\n0.207916 0.594360 0.068298\n0.240540 0.595947 0.069153\n0.275665 0.597534 0.069885\n0.313141 0.599182 0.070740\n0.352692 0.600677 0.071533\n0.394012 0.602356 0.072357\n0.436646 0.603943 0.073242\n0.479919 0.605499 0.074066\n0.522003 0.607056 0.074890\n0.561462 0.608704 0.075775\n0.598175 0.610260 0.076660\n0.632324 0.611847 0.077515\n0.664032 0.613434 0.078400\n0.693634 0.614990 0.079285\n0.721527 0.616547 0.080170\n0.747955 0.618134 0.081055\n0.773041 0.619659 0.081909\n0.797180 0.621216 0.082825\n0.820557 0.622711 0.083710\n0.843323 0.624207 0.084595\n0.865875 0.625763 0.085510\n0.888336 0.627228 0.086426\n0.911163 0.628693 0.087280\n0.934784 0.630219 0.088196\n0.959961 0.631653 0.089111\n0.052124 0.626129 0.059265\n0.068848 0.627502 0.060059\n0.087006 0.628876 0.060852\n0.106873 0.630219 0.061615\n0.128845 0.631592 0.062439\n0.153259 0.632996 0.063293\n0.180359 0.634338 0.064087\n0.210388 0.635712 0.064880\n0.243134 0.637115 0.065765\n0.278320 0.638489 0.066620\n0.315857 0.639862 0.067474\n0.355438 0.641266 0.068359\n0.396667 0.642609 0.069214\n0.439270 0.644012 0.070099\n0.482452 0.645355 0.070984\n0.524231 0.646759 0.071869\n0.563385 0.648163 0.072754\n0.599915 0.649475 0.073669\n0.633850 0.650848 0.074585\n0.665344 0.652161 0.075500\n0.694733 0.653503 0.076385\n0.722473 0.654877 0.077301\n0.748718 0.656189 0.078217\n0.773743 0.657471 0.079163\n0.797791 0.658844 0.080109\n0.821045 0.660095 0.081024\n0.843750 0.661438 0.081940\n0.866150 0.662689 0.082886\n0.888611 0.663940 0.083740\n0.911316 0.665222 0.084747\n0.934845 0.666473 0.085632\n0.959961 0.667694 0.086517\n0.053711 0.665314 0.056030\n0.070526 0.666504 0.056885\n0.088776 0.667694 0.057739\n0.108765 0.668884 0.058563\n0.130890 0.670074 0.059418\n0.155457 0.671265 0.060242\n0.182709 0.672424 0.061157\n0.212891 0.673615 0.062042\n0.245667 0.674774 0.062897\n0.281006 0.675995 0.063812\n0.318634 0.677155 0.064697\n0.358185 0.678345 0.065582\n0.399414 0.679535 0.066528\n0.441925 0.680695 0.067444\n0.484924 0.681885 0.068329\n0.526428 0.683075 0.069275\n0.565338 0.684235 0.070190\n0.601593 0.685394 0.071136\n0.635254 0.686523 0.072083\n0.666565 0.687714 0.072998\n0.695831 0.688812 0.073944\n0.723389 0.690002 0.074890\n0.749512 0.691071 0.075867\n0.774445 0.692261 0.076813\n0.798370 0.693359 0.077759\n0.821472 0.694458 0.078705\n0.844086 0.695587 0.079651\n0.866516 0.696655 0.080627\n0.888824 0.697723 0.081512\n0.911499 0.698822 0.082489\n0.934967 0.699921 0.083405\n0.959961 0.700928 0.084381\n0.055298 0.701294 0.053314\n0.072174 0.702301 0.054199\n0.090576 0.703369 0.055054\n0.110718 0.704376 0.055908\n0.132935 0.705383 0.056854\n0.157654 0.706390 0.057739\n0.185120 0.707367 0.058624\n0.215393 0.708435 0.059570\n0.248383 0.709412 0.060486\n0.283722 0.710449 0.061371\n0.321381 0.711456 0.062347\n0.360931 0.712494 0.063293\n0.402069 0.713501 0.064178\n0.444580 0.714508 0.065155\n0.487427 0.715485 0.066101\n0.528625 0.716492 0.067078\n0.567291 0.717499 0.068024\n0.603271 0.718506 0.068939\n0.636719 0.719513 0.069946\n0.667786 0.720428 0.070923\n0.696930 0.721436 0.071899\n0.724335 0.722443 0.072845\n0.750305 0.723389 0.073761\n0.775116 0.724365 0.074799\n0.798889 0.725311 0.075745\n0.821991 0.726288 0.076752\n0.844513 0.727173 0.077698\n0.866760 0.728149 0.078644\n0.889038 0.729034 0.079590\n0.911621 0.729950 0.080566\n0.935028 0.730835 0.081543\n0.959961 0.731750 0.082458\n0.056885 0.734558 0.050995\n0.073914 0.735443 0.051849\n0.092377 0.736298 0.052795\n0.112671 0.737152 0.053680\n0.135040 0.738007 0.054626\n0.159882 0.738892 0.055511\n0.187561 0.739777 0.056519\n0.217987 0.740631 0.057434\n0.250977 0.741516 0.058380\n0.286469 0.742371 0.059357\n0.324127 0.743286 0.060303\n0.363678 0.744141 0.061249\n0.404877 0.744995 0.062225\n0.447235 0.745880 0.063263\n0.489899 0.746704 0.064209\n0.530823 0.747559 0.065155\n0.569214 0.748444 0.066162\n0.604950 0.749268 0.067108\n0.638153 0.750122 0.068115\n0.669037 0.750946 0.069061\n0.697968 0.751770 0.070038\n0.725281 0.752625 0.071106\n0.751068 0.753448 0.072021\n0.775757 0.754272 0.073090\n0.799438 0.755066 0.074036\n0.822449 0.755859 0.074982\n0.844879 0.756653 0.075989\n0.867096 0.757477 0.076965\n0.889282 0.758209 0.077911\n0.911804 0.759003 0.078888\n0.935120 0.759735 0.079865\n0.959961 0.760498 0.080780\n0.058563 0.765533 0.048950\n0.075653 0.766296 0.049896\n0.094269 0.767029 0.050842\n0.114624 0.767761 0.051727\n0.137177 0.768524 0.052734\n0.162170 0.769226 0.053650\n0.189972 0.769989 0.054657\n0.220581 0.770752 0.055664\n0.253662 0.771454 0.056580\n0.289246 0.772247 0.057556\n0.326904 0.772980 0.058563\n0.366425 0.773682 0.059570\n0.407562 0.774445 0.060577\n0.449860 0.775177 0.061554\n0.492371 0.775879 0.062561\n0.533020 0.776672 0.063538\n0.571075 0.777344 0.064514\n0.606628 0.778076 0.065521\n0.639587 0.778809 0.066498\n0.670258 0.779510 0.067535\n0.699066 0.780212 0.068542\n0.726166 0.780914 0.069550\n0.751862 0.781616 0.070526\n0.776428 0.782288 0.071533\n0.800049 0.783020 0.072510\n0.822876 0.783661 0.073547\n0.845276 0.784302 0.074524\n0.867401 0.785004 0.075439\n0.889496 0.785645 0.076447\n0.911957 0.786285 0.077423\n0.935181 0.786957 0.078369\n0.959961 0.787567 0.079346\n0.060242 0.794617 0.047180\n0.077393 0.795258 0.048126\n0.096100 0.795898 0.049133\n0.116669 0.796509 0.050079\n0.139343 0.797150 0.051086\n0.164490 0.797760 0.052094\n0.192444 0.798431 0.053040\n0.223145 0.799042 0.054047\n0.256378 0.799652 0.055054\n0.291962 0.800323 0.056091\n0.329681 0.800964 0.057068\n0.369171 0.801575 0.058044\n0.410248 0.802155 0.059113\n0.452454 0.802826 0.060089\n0.494781 0.803406 0.061127\n0.535126 0.804016 0.062103\n0.572998 0.804657 0.063080\n0.608276 0.805267 0.064178\n0.641022 0.805878 0.065186\n0.671478 0.806427 0.066193\n0.700073 0.807068 0.067200\n0.727051 0.807648 0.068207\n0.752594 0.808228 0.069183\n0.777039 0.808838 0.070251\n0.800568 0.809387 0.071167\n0.823364 0.809937 0.072174\n0.845612 0.810486 0.073212\n0.867706 0.811035 0.074158\n0.889740 0.811615 0.075134\n0.912079 0.812134 0.076141\n0.935303 0.812653 0.077057\n0.959961 0.813263 0.078033\n0.061951 0.822144 0.045715\n0.079224 0.822662 0.046692\n0.097992 0.823242 0.047668\n0.118713 0.823730 0.048676\n0.141510 0.824280 0.049652\n0.166840 0.824829 0.050659\n0.194977 0.825348 0.051666\n0.225739 0.825897 0.052734\n0.259033 0.826416 0.053741\n0.294708 0.826965 0.054718\n0.332458 0.827484 0.055786\n0.371948 0.828003 0.056763\n0.412994 0.828522 0.057831\n0.455017 0.829041 0.058838\n0.497192 0.829559 0.059845\n0.537262 0.830078 0.060913\n0.574829 0.830566 0.061920\n0.609833 0.831085 0.062958\n0.642365 0.831604 0.063995\n0.672668 0.832123 0.064941\n0.701111 0.832581 0.066040\n0.727905 0.833069 0.067047\n0.753357 0.833588 0.067993\n0.777679 0.834076 0.069031\n0.801056 0.834503 0.070038\n0.823761 0.834991 0.071045\n0.846008 0.835480 0.071991\n0.867950 0.835938 0.072937\n0.889923 0.836365 0.073975\n0.912231 0.836853 0.074921\n0.935333 0.837280 0.075867\n0.959961 0.837708 0.076843\n0.063660 0.848480 0.044373\n0.080994 0.848938 0.045410\n0.099915 0.849365 0.046356\n0.120728 0.849823 0.047394\n0.143738 0.850250 0.048401\n0.169189 0.850708 0.049408\n0.197479 0.851135 0.050507\n0.228394 0.851562 0.051514\n0.261780 0.852020 0.052551\n0.297455 0.852448 0.053589\n0.335205 0.852905 0.054596\n0.374725 0.853333 0.055634\n0.415680 0.853790 0.056671\n0.457642 0.854218 0.057709\n0.499573 0.854614 0.058777\n0.539337 0.855042 0.059814\n0.576630 0.855469 0.060822\n0.611450 0.855896 0.061829\n0.643768 0.856323 0.062897\n0.673828 0.856720 0.063934\n0.702057 0.857117 0.064941\n0.728790 0.857544 0.065948\n0.754089 0.857910 0.066986\n0.778290 0.858307 0.067993\n0.801575 0.858704 0.068909\n0.824219 0.859100 0.069946\n0.846313 0.859467 0.070953\n0.868225 0.859863 0.071869\n0.890076 0.860229 0.072876\n0.912354 0.860565 0.073822\n0.935394 0.860962 0.074738\n0.959961 0.861298 0.075684\n0.065399 0.873901 0.043152\n0.082855 0.874268 0.044189\n0.101868 0.874573 0.045227\n0.122803 0.874969 0.046265\n0.145966 0.875336 0.047333\n0.171570 0.875702 0.048309\n0.199982 0.876038 0.049408\n0.230988 0.876434 0.050415\n0.264465 0.876770 0.051453\n0.300232 0.877136 0.052521\n0.337921 0.877472 0.053528\n0.377441 0.877808 0.054626\n0.418304 0.878204 0.055695\n0.460175 0.878510 0.056702\n0.501923 0.878876 0.057770\n0.541443 0.879211 0.058807\n0.578461 0.879578 0.059875\n0.612976 0.879883 0.060852\n0.645050 0.880249 0.061920\n0.674988 0.880554 0.062927\n0.703094 0.880890 0.063965\n0.729614 0.881226 0.064941\n0.754791 0.881531 0.065918\n0.778931 0.881866 0.066956\n0.802124 0.882172 0.067902\n0.824646 0.882477 0.068909\n0.846680 0.882782 0.069916\n0.868469 0.883087 0.070892\n0.890320 0.883392 0.071777\n0.912506 0.883667 0.072784\n0.935486 0.883972 0.073669\n0.959961 0.884247 0.074615\n0.067139 0.898712 0.042053\n0.084686 0.898956 0.043121\n0.103821 0.899261 0.044189\n0.124847 0.899536 0.045227\n0.148163 0.899872 0.046265\n0.173981 0.900116 0.047302\n0.202515 0.900421 0.048370\n0.233612 0.900665 0.049408\n0.267151 0.900970 0.050446\n0.302948 0.901215 0.051544\n0.340668 0.901489 0.052612\n0.380096 0.901794 0.053650\n0.420990 0.902100 0.054718\n0.462769 0.902344 0.055756\n0.504211 0.902649 0.056824\n0.543457 0.902893 0.057831\n0.580200 0.903168 0.058868\n0.614532 0.903442 0.059937\n0.646393 0.903717 0.060974\n0.676147 0.903961 0.061951\n0.704071 0.904205 0.062988\n0.730438 0.904480 0.063995\n0.755493 0.904694 0.064972\n0.779510 0.904999 0.065979\n0.802612 0.905212 0.066956\n0.825012 0.905457 0.067932\n0.846985 0.905701 0.068848\n0.868805 0.905914 0.069824\n0.890533 0.906128 0.070801\n0.912628 0.906342 0.071747\n0.935516 0.906586 0.072571\n0.959961 0.906799 0.073456\n0.068878 0.923218 0.041046\n0.086548 0.923431 0.042084\n0.105774 0.923645 0.043152\n0.126953 0.923859 0.044189\n0.150360 0.924072 0.045258\n0.176331 0.924286 0.046295\n0.205017 0.924500 0.047363\n0.236237 0.924744 0.048431\n0.269806 0.924927 0.049561\n0.305664 0.925110 0.050568\n0.343414 0.925323 0.051636\n0.382782 0.925568 0.052704\n0.423584 0.925781 0.053802\n0.465179 0.925964 0.054779\n0.506470 0.926147 0.055847\n0.545441 0.926392 0.056915\n0.581940 0.926575 0.057922\n0.615997 0.926758 0.058960\n0.647644 0.926971 0.059998\n0.677185 0.927155 0.061005\n0.704987 0.927368 0.062012\n0.731232 0.927521 0.062988\n0.756195 0.927704 0.064026\n0.780060 0.927917 0.065002\n0.803070 0.928070 0.065918\n0.825439 0.928253 0.066895\n0.847321 0.928436 0.067871\n0.868988 0.928589 0.068787\n0.890747 0.928772 0.069672\n0.912781 0.928955 0.070557\n0.935577 0.929108 0.071442\n0.959961 0.929291 0.072296\n0.070618 0.947845 0.039948\n0.088409 0.948029 0.041046\n0.107758 0.948151 0.042114\n0.129059 0.948334 0.043152\n0.152588 0.948456 0.044220\n0.178711 0.948608 0.045319\n0.207520 0.948730 0.046417\n0.238831 0.948883 0.047424\n0.272522 0.949005 0.048523\n0.308319 0.949158 0.049591\n0.346039 0.949341 0.050659\n0.385437 0.949493 0.051697\n0.426178 0.949615 0.052765\n0.467651 0.949768 0.053833\n0.508667 0.949860 0.054871\n0.547394 0.950012 0.055939\n0.583618 0.950134 0.056946\n0.617462 0.950287 0.057983\n0.648865 0.950378 0.058960\n0.678253 0.950531 0.059998\n0.705902 0.950653 0.061005\n0.732025 0.950745 0.061981\n0.756866 0.950897 0.062927\n0.780670 0.951019 0.063904\n0.803558 0.951141 0.064850\n0.825806 0.951233 0.065796\n0.847656 0.951385 0.066711\n0.869263 0.951508 0.067596\n0.890869 0.951599 0.068512\n0.912872 0.951721 0.069366\n0.935669 0.951813 0.070251\n0.959961 0.951935 0.071075\n0.072418 0.973206 0.038818\n0.090271 0.973267 0.039917\n0.109711 0.973328 0.040985\n0.131165 0.973419 0.042053\n0.154816 0.973480 0.043121\n0.181122 0.973541 0.044189\n0.210022 0.973663 0.045288\n0.241394 0.973724 0.046387\n0.275146 0.973816 0.047424\n0.311005 0.973877 0.048492\n0.348724 0.973969 0.049561\n0.388092 0.974030 0.050659\n0.428711 0.974121 0.051666\n0.470062 0.974182 0.052734\n0.510803 0.974243 0.053802\n0.549225 0.974304 0.054779\n0.585236 0.974365 0.055847\n0.618866 0.974426 0.056854\n0.650116 0.974518 0.057831\n0.679321 0.974579 0.058807\n0.706757 0.974609 0.059814\n0.732788 0.974701 0.060822\n0.757477 0.974731 0.061798\n0.781158 0.974854 0.062714\n0.803986 0.974884 0.063629\n0.826172 0.974976 0.064545\n0.847961 0.975006 0.065399\n0.869476 0.975067 0.066315\n0.891052 0.975098 0.067200\n0.912994 0.975189 0.068024\n0.935699 0.975220 0.068817\n0.959961 0.975281 0.069672\n0.074188 1.000000 0.037476\n0.092133 1.000000 0.038605\n0.111694 1.000000 0.039673\n0.133240 1.000000 0.040741\n0.157043 1.000000 0.041840\n0.183502 1.000000 0.042908\n0.212524 1.000000 0.044006\n0.243958 1.000000 0.045074\n0.277740 1.000000 0.046173\n0.313629 1.000000 0.047272\n0.351349 1.000000 0.048279\n0.390625 1.000000 0.049347\n0.431183 1.000000 0.050415\n0.472382 1.000000 0.051422\n0.512939 1.000000 0.052490\n0.551117 1.000000 0.053467\n0.586884 1.000000 0.054504\n0.620239 1.000000 0.055511\n0.651276 1.000000 0.056458\n0.680298 1.000000 0.057465\n0.707642 1.000000 0.058441\n0.733490 1.000000 0.059387\n0.758118 1.000000 0.060333\n0.781708 1.000000 0.061279\n0.804474 1.000000 0.062134\n0.826538 1.000000 0.063049\n0.848236 1.000000 0.063904\n0.869690 1.000000 0.064758\n0.891235 1.000000 0.065582\n0.913086 1.000000 0.066406\n0.935791 1.000000 0.067200\n0.959961 1.000000 0.067993\n0.031555 0.000946 0.138763\n0.046967 0.001495 0.139130\n0.063568 0.002075 0.139496\n0.081604 0.002655 0.139923\n0.101410 0.003296 0.140320\n0.123322 0.003937 0.140747\n0.147705 0.004608 0.141205\n0.175049 0.005341 0.141693\n0.205475 0.006073 0.142181\n0.238892 0.006836 0.142670\n0.275024 0.007629 0.143219\n0.313843 0.008453 0.143707\n0.354797 0.009247 0.144318\n0.397705 0.010101 0.144867\n0.442169 0.010986 0.145447\n0.487213 0.011871 0.145996\n0.530579 0.012787 0.146637\n0.571075 0.013763 0.147247\n0.608734 0.014709 0.147888\n0.643555 0.015717 0.148560\n0.675964 0.016693 0.149231\n0.706268 0.017731 0.149963\n0.734802 0.018768 0.150635\n0.761841 0.019806 0.151337\n0.787659 0.020935 0.152069\n0.812531 0.022034 0.152802\n0.836761 0.023132 0.153534\n0.860657 0.024292 0.154327\n0.884338 0.025452 0.155121\n0.908417 0.026611 0.155884\n0.933319 0.027832 0.156677\n0.959961 0.029022 0.157440\n0.032227 0.017059 0.137543\n0.047760 0.017639 0.137939\n0.064392 0.018311 0.138336\n0.082520 0.018982 0.138794\n0.102386 0.019684 0.139221\n0.124451 0.020386 0.139709\n0.148956 0.021118 0.140167\n0.176392 0.021881 0.140686\n0.206940 0.022705 0.141235\n0.240448 0.023499 0.141724\n0.276733 0.024353 0.142303\n0.315582 0.025208 0.142883\n0.356628 0.026093 0.143463\n0.399597 0.027008 0.144012\n0.444000 0.027954 0.144653\n0.488953 0.028900 0.145264\n0.532135 0.029907 0.145905\n0.572418 0.030884 0.146576\n0.609924 0.031921 0.147217\n0.644684 0.032959 0.147949\n0.676910 0.033997 0.148590\n0.707062 0.035126 0.149323\n0.735504 0.036255 0.150085\n0.762421 0.037354 0.150818\n0.788208 0.038513 0.151489\n0.813019 0.039703 0.152283\n0.837158 0.040863 0.153046\n0.860901 0.042084 0.153839\n0.884613 0.043304 0.154633\n0.908569 0.044525 0.155426\n0.933441 0.045837 0.156250\n0.959961 0.047089 0.157074\n0.033020 0.034088 0.136292\n0.048523 0.034760 0.136719\n0.065277 0.035492 0.137146\n0.083496 0.036194 0.137634\n0.103485 0.036957 0.138123\n0.125610 0.037750 0.138611\n0.150238 0.038574 0.139130\n0.177826 0.039398 0.139648\n0.208557 0.040314 0.140198\n0.242157 0.041168 0.140778\n0.278534 0.042084 0.141357\n0.317444 0.043060 0.141937\n0.358551 0.043976 0.142548\n0.401459 0.045013 0.143127\n0.445862 0.045990 0.143768\n0.490753 0.047028 0.144440\n0.533752 0.048096 0.145081\n0.573914 0.049164 0.145813\n0.611206 0.050262 0.146454\n0.645752 0.051422 0.147156\n0.677887 0.052521 0.147888\n0.707886 0.053741 0.148621\n0.736206 0.054932 0.149353\n0.763031 0.056152 0.150085\n0.788696 0.057404 0.150879\n0.813416 0.058624 0.151642\n0.837494 0.059875 0.152435\n0.861237 0.061218 0.153229\n0.884857 0.062500 0.154022\n0.908752 0.063873 0.154846\n0.933502 0.065247 0.155670\n0.959961 0.066589 0.156494\n0.033813 0.052368 0.134949\n0.049408 0.053131 0.135406\n0.066223 0.053955 0.135864\n0.084503 0.054749 0.136353\n0.104584 0.055603 0.136902\n0.126862 0.056458 0.137421\n0.151642 0.057343 0.137970\n0.179382 0.058289 0.138519\n0.210236 0.059235 0.139130\n0.243958 0.060211 0.139648\n0.280426 0.061218 0.140289\n0.319397 0.062256 0.140869\n0.360504 0.063293 0.141541\n0.403473 0.064392 0.142181\n0.447845 0.065491 0.142792\n0.492676 0.066620 0.143494\n0.535370 0.067810 0.144135\n0.575378 0.068939 0.144867\n0.612488 0.070160 0.145569\n0.646912 0.071411 0.146301\n0.678833 0.072632 0.147034\n0.708740 0.073944 0.147736\n0.736938 0.075226 0.148560\n0.763641 0.076508 0.149292\n0.789215 0.077911 0.150055\n0.813904 0.079224 0.150848\n0.837891 0.080627 0.151642\n0.861511 0.082062 0.152466\n0.885040 0.083466 0.153259\n0.908936 0.084930 0.154114\n0.933594 0.086426 0.154877\n0.959961 0.087891 0.155762\n0.034698 0.072266 0.133453\n0.050323 0.073151 0.133972\n0.067261 0.074036 0.134491\n0.085632 0.074921 0.134979\n0.105835 0.075897 0.135529\n0.128235 0.076874 0.136108\n0.153137 0.077881 0.136688\n0.181030 0.078918 0.137207\n0.211945 0.079987 0.137848\n0.245819 0.081024 0.138397\n0.282379 0.082153 0.139038\n0.321381 0.083282 0.139679\n0.362549 0.084442 0.140320\n0.405518 0.085663 0.140991\n0.449860 0.086884 0.141632\n0.494537 0.088104 0.142334\n0.537140 0.089386 0.143066\n0.576843 0.090668 0.143738\n0.613831 0.092010 0.144470\n0.648010 0.093384 0.145233\n0.679810 0.094727 0.145966\n0.709595 0.096130 0.146729\n0.737671 0.097565 0.147491\n0.764282 0.098969 0.148285\n0.789764 0.100464 0.149017\n0.814331 0.101929 0.149811\n0.838257 0.103455 0.150635\n0.861816 0.104980 0.151459\n0.885254 0.106506 0.152283\n0.909088 0.108154 0.153107\n0.933655 0.109741 0.153961\n0.959961 0.111328 0.154785\n0.035614 0.094238 0.131866\n0.051392 0.095215 0.132355\n0.068329 0.096191 0.132904\n0.086792 0.097229 0.133392\n0.107147 0.098328 0.134003\n0.129639 0.099396 0.134521\n0.154694 0.100525 0.135101\n0.182709 0.101654 0.135681\n0.213776 0.102875 0.136353\n0.247742 0.104065 0.136963\n0.284393 0.105316 0.137573\n0.323486 0.106537 0.138275\n0.364716 0.107880 0.138885\n0.407684 0.109192 0.139557\n0.451904 0.110535 0.140289\n0.496490 0.111938 0.140991\n0.538849 0.113342 0.141693\n0.578400 0.114716 0.142426\n0.615173 0.116241 0.143127\n0.649200 0.117706 0.143890\n0.680817 0.119232 0.144653\n0.710480 0.120758 0.145416\n0.738434 0.122314 0.146149\n0.764954 0.123932 0.146942\n0.790344 0.125519 0.147736\n0.814789 0.127167 0.148529\n0.838654 0.128815 0.149323\n0.862091 0.130554 0.150177\n0.885529 0.132202 0.150970\n0.909210 0.133972 0.151825\n0.933746 0.135773 0.152618\n0.959961 0.137482 0.153503\n0.036621 0.118683 0.129944\n0.052399 0.119812 0.130463\n0.069458 0.120941 0.131042\n0.088043 0.122101 0.131561\n0.108490 0.123291 0.132141\n0.131134 0.124542 0.132721\n0.156311 0.125763 0.133331\n0.184509 0.127075 0.133942\n0.215668 0.128418 0.134521\n0.249786 0.129761 0.135223\n0.286530 0.131165 0.135864\n0.325653 0.132568 0.136505\n0.366913 0.134033 0.137207\n0.409882 0.135498 0.137878\n0.454132 0.136993 0.138550\n0.498505 0.138550 0.139282\n0.540649 0.140137 0.140015\n0.579956 0.141693 0.140747\n0.616547 0.143311 0.141510\n0.650391 0.144958 0.142242\n0.681885 0.146637 0.142975\n0.711395 0.148346 0.143738\n0.739197 0.150055 0.144470\n0.765625 0.151855 0.145325\n0.790894 0.153595 0.146088\n0.815308 0.155426 0.146881\n0.839050 0.157257 0.147705\n0.862427 0.159149 0.148529\n0.885742 0.160980 0.149292\n0.909363 0.162903 0.150177\n0.933838 0.164825 0.151031\n0.959961 0.166748 0.151825\n0.037689 0.146179 0.127716\n0.053558 0.147430 0.128265\n0.070679 0.148743 0.128815\n0.089355 0.150024 0.129364\n0.109894 0.151398 0.129974\n0.132660 0.152802 0.130585\n0.158020 0.154205 0.131195\n0.186371 0.155701 0.131836\n0.217682 0.157135 0.132446\n0.251892 0.158661 0.133087\n0.288696 0.160248 0.133789\n0.327881 0.161835 0.134430\n0.369141 0.163452 0.135071\n0.412140 0.165100 0.135803\n0.456268 0.166748 0.136505\n0.500610 0.168488 0.137238\n0.542511 0.170227 0.138000\n0.581573 0.171997 0.138672\n0.617950 0.173828 0.139404\n0.651581 0.175629 0.140167\n0.682922 0.177460 0.140930\n0.712280 0.179382 0.141724\n0.739990 0.181305 0.142426\n0.766327 0.183228 0.143219\n0.791443 0.185242 0.144043\n0.815765 0.187195 0.144806\n0.839447 0.189209 0.145630\n0.862762 0.191254 0.146454\n0.885956 0.193268 0.147247\n0.909576 0.195404 0.148071\n0.933960 0.197449 0.148895\n0.959961 0.199585 0.149750\n0.038788 0.177277 0.125092\n0.054718 0.178680 0.125671\n0.071960 0.180206 0.126221\n0.090729 0.181641 0.126801\n0.111389 0.183197 0.127380\n0.134247 0.184753 0.128052\n0.159790 0.186340 0.128632\n0.188293 0.187988 0.129272\n0.219757 0.189667 0.129913\n0.254059 0.191376 0.130585\n0.290924 0.193115 0.131226\n0.330200 0.194855 0.131897\n0.371460 0.196655 0.132599\n0.414490 0.198486 0.133270\n0.458588 0.200317 0.134003\n0.502655 0.202240 0.134705\n0.544342 0.204193 0.135468\n0.583221 0.206116 0.136169\n0.619385 0.208069 0.136932\n0.652832 0.210052 0.137665\n0.683990 0.212097 0.138397\n0.713226 0.214172 0.139160\n0.740784 0.216217 0.139984\n0.766998 0.218323 0.140778\n0.792053 0.220520 0.141510\n0.816193 0.222595 0.142365\n0.839844 0.224792 0.143127\n0.863037 0.226990 0.143982\n0.886230 0.229156 0.144775\n0.909698 0.231415 0.145569\n0.933990 0.233612 0.146362\n0.959961 0.235901 0.147217\n0.039948 0.212280 0.122009\n0.055969 0.213898 0.122620\n0.073273 0.215546 0.123199\n0.092133 0.217194 0.123810\n0.112915 0.218903 0.124359\n0.135925 0.220581 0.124969\n0.161621 0.222382 0.125671\n0.190277 0.224213 0.126282\n0.221893 0.225983 0.126923\n0.256287 0.227844 0.127594\n0.293274 0.229797 0.128296\n0.332550 0.231659 0.128937\n0.373871 0.233612 0.129669\n0.416809 0.235596 0.130371\n0.460846 0.237610 0.131073\n0.504791 0.239685 0.131775\n0.546234 0.241699 0.132507\n0.584900 0.243805 0.133240\n0.620819 0.245972 0.133972\n0.654083 0.248047 0.134735\n0.685089 0.250214 0.135529\n0.714142 0.252411 0.136292\n0.741577 0.254639 0.137024\n0.767639 0.256897 0.137878\n0.792633 0.259155 0.138641\n0.816711 0.261383 0.139465\n0.840240 0.263702 0.140259\n0.863373 0.265961 0.141022\n0.886444 0.268311 0.141846\n0.909851 0.270630 0.142670\n0.934082 0.272980 0.143494\n0.959961 0.275330 0.144318\n0.041168 0.251129 0.118500\n0.057220 0.252869 0.119141\n0.074646 0.254700 0.119690\n0.093628 0.256439 0.120300\n0.114532 0.258301 0.120972\n0.137695 0.260101 0.121582\n0.163544 0.262024 0.122223\n0.192322 0.263947 0.122894\n0.224091 0.265930 0.123535\n0.258606 0.267914 0.124207\n0.295685 0.269958 0.124878\n0.334991 0.272003 0.125610\n0.376312 0.274078 0.126312\n0.419159 0.276154 0.127014\n0.463226 0.278259 0.127747\n0.506927 0.280457 0.128448\n0.548096 0.282593 0.129181\n0.586578 0.284821 0.129944\n0.622284 0.287079 0.130707\n0.655304 0.289307 0.131470\n0.686157 0.291565 0.132202\n0.715088 0.293884 0.133026\n0.742340 0.296143 0.133789\n0.768341 0.298492 0.134613\n0.793182 0.300812 0.135376\n0.817230 0.303162 0.136169\n0.840637 0.305573 0.136963\n0.863678 0.307892 0.137817\n0.886719 0.310333 0.138580\n0.910004 0.312744 0.139435\n0.934174 0.315125 0.140289\n0.959961 0.317535 0.141113\n0.042419 0.293427 0.114624\n0.058563 0.295288 0.115204\n0.076050 0.297119 0.115845\n0.095154 0.299042 0.116486\n0.116211 0.300964 0.117126\n0.139496 0.302917 0.117798\n0.165497 0.304932 0.118439\n0.194458 0.307007 0.119110\n0.226318 0.309021 0.119781\n0.260925 0.311157 0.120514\n0.298126 0.313293 0.121185\n0.337463 0.315369 0.121887\n0.378784 0.317535 0.122620\n0.421692 0.319733 0.123291\n0.465576 0.321930 0.124054\n0.509094 0.324188 0.124786\n0.550049 0.326447 0.125549\n0.588257 0.328735 0.126312\n0.623749 0.331055 0.127045\n0.656616 0.333313 0.127838\n0.687256 0.335663 0.128601\n0.716034 0.338043 0.129425\n0.743195 0.340363 0.130157\n0.769012 0.342743 0.130981\n0.793793 0.345093 0.131775\n0.817688 0.347504 0.132599\n0.841034 0.349945 0.133423\n0.864014 0.352325 0.134247\n0.886932 0.354797 0.135101\n0.910217 0.357208 0.135925\n0.934265 0.359650 0.136719\n0.959961 0.362091 0.137573\n0.043701 0.338715 0.110413\n0.059967 0.340637 0.111053\n0.077515 0.342590 0.111664\n0.096741 0.344604 0.112335\n0.117889 0.346588 0.113007\n0.141327 0.348633 0.113647\n0.167542 0.350739 0.114349\n0.196655 0.352844 0.115051\n0.228668 0.354919 0.115723\n0.263397 0.357086 0.116425\n0.300629 0.359283 0.117157\n0.339996 0.361481 0.117889\n0.381348 0.363708 0.118591\n0.424164 0.365906 0.119324\n0.468018 0.368164 0.120087\n0.511261 0.370483 0.120850\n0.552002 0.372711 0.121582\n0.589996 0.375061 0.122406\n0.625214 0.377411 0.123169\n0.657898 0.379669 0.123932\n0.688324 0.382080 0.124725\n0.716980 0.384430 0.125549\n0.743988 0.386810 0.126343\n0.769714 0.389191 0.127167\n0.794342 0.391602 0.127960\n0.818207 0.394012 0.128815\n0.841431 0.396393 0.129669\n0.864349 0.398743 0.130463\n0.887177 0.401215 0.131287\n0.910400 0.403687 0.132141\n0.934357 0.406097 0.132996\n0.959961 0.408508 0.133789\n0.045074 0.386566 0.105957\n0.061401 0.388550 0.106598\n0.079071 0.390503 0.107239\n0.098389 0.392548 0.107910\n0.119659 0.394653 0.108612\n0.143250 0.396667 0.109283\n0.169586 0.398804 0.110016\n0.198914 0.400909 0.110718\n0.230988 0.403076 0.111420\n0.265900 0.405273 0.112152\n0.303101 0.407410 0.112885\n0.342560 0.409637 0.113617\n0.383881 0.411865 0.114380\n0.426697 0.414062 0.115143\n0.470490 0.416382 0.115906\n0.513489 0.418701 0.116699\n0.553925 0.420959 0.117462\n0.591644 0.423248 0.118256\n0.626678 0.425629 0.119049\n0.659180 0.427887 0.119873\n0.689484 0.430237 0.120667\n0.717896 0.432556 0.121460\n0.744781 0.434906 0.122314\n0.770447 0.437286 0.123169\n0.794983 0.439636 0.123962\n0.818695 0.441986 0.124817\n0.841827 0.444397 0.125671\n0.864655 0.446747 0.126495\n0.887451 0.449158 0.127350\n0.910522 0.451508 0.128174\n0.934448 0.453857 0.129028\n0.959961 0.456238 0.129913\n0.046448 0.436371 0.101288\n0.062866 0.438354 0.101929\n0.080627 0.440338 0.102631\n0.100067 0.442444 0.103302\n0.121490 0.444489 0.104034\n0.145233 0.446503 0.104736\n0.171722 0.448669 0.105438\n0.201202 0.450775 0.106232\n0.233459 0.452911 0.106934\n0.268402 0.455078 0.107697\n0.305725 0.457214 0.108459\n0.345184 0.459442 0.109253\n0.386505 0.461670 0.109985\n0.429230 0.463837 0.110809\n0.472961 0.466064 0.111572\n0.515717 0.468262 0.112366\n0.555847 0.470520 0.113159\n0.593353 0.472778 0.114014\n0.628143 0.475006 0.114807\n0.660400 0.477203 0.115631\n0.690521 0.479523 0.116486\n0.718872 0.481750 0.117310\n0.745667 0.484070 0.118164\n0.771088 0.486359 0.119019\n0.795563 0.488586 0.119873\n0.819153 0.490845 0.120728\n0.842255 0.493134 0.121613\n0.864990 0.495361 0.122467\n0.887695 0.497650 0.123291\n0.910675 0.499908 0.124207\n0.934509 0.502106 0.125061\n0.959961 0.504333 0.125946\n0.047913 0.487396 0.096497\n0.064362 0.489349 0.097198\n0.082245 0.491302 0.097931\n0.101776 0.493286 0.098663\n0.123383 0.495270 0.099396\n0.147247 0.497253 0.100128\n0.173981 0.499329 0.100891\n0.203522 0.501312 0.101624\n0.235901 0.503418 0.102417\n0.270966 0.505463 0.103241\n0.308319 0.507507 0.103973\n0.347839 0.509552 0.104797\n0.389130 0.511688 0.105621\n0.431885 0.513702 0.106415\n0.475403 0.515808 0.107269\n0.517944 0.517883 0.108154\n0.557892 0.519897 0.108948\n0.595123 0.522003 0.109772\n0.629639 0.524139 0.110657\n0.661713 0.526154 0.111511\n0.691681 0.528229 0.112396\n0.719788 0.530243 0.113251\n0.746460 0.532349 0.114136\n0.771790 0.534363 0.115051\n0.796112 0.536407 0.115936\n0.819672 0.538391 0.116852\n0.842621 0.540466 0.117737\n0.865234 0.542419 0.118591\n0.887909 0.544434 0.119537\n0.910858 0.546387 0.120453\n0.934601 0.548370 0.121368\n0.959961 0.550293 0.122253\n0.049377 0.537476 0.091919\n0.065948 0.539246 0.092651\n0.083893 0.540985 0.093414\n0.103577 0.542786 0.094177\n0.125305 0.544586 0.094971\n0.149353 0.546356 0.095795\n0.176178 0.548218 0.096558\n0.205963 0.549988 0.097412\n0.238434 0.551819 0.098206\n0.273529 0.553619 0.099060\n0.311005 0.555450 0.099884\n0.350494 0.557281 0.100708\n0.391815 0.559143 0.101593\n0.434479 0.560944 0.102509\n0.477905 0.562744 0.103363\n0.520172 0.564606 0.104248\n0.559814 0.566437 0.105103\n0.596802 0.568207 0.106018\n0.631104 0.570068 0.106934\n0.662994 0.571838 0.107819\n0.692749 0.573700 0.108734\n0.720764 0.575439 0.109650\n0.747284 0.577301 0.110596\n0.772522 0.579041 0.111542\n0.796722 0.580811 0.112457\n0.820160 0.582581 0.113373\n0.843048 0.584381 0.114319\n0.865601 0.586060 0.115265\n0.888153 0.587799 0.116180\n0.911011 0.589569 0.117126\n0.934692 0.591248 0.118073\n0.959961 0.592957 0.118988\n0.050842 0.583893 0.087799\n0.067535 0.585480 0.088593\n0.085602 0.586945 0.089447\n0.105377 0.588562 0.090271\n0.127258 0.590149 0.091064\n0.151459 0.591736 0.091949\n0.178467 0.593323 0.092804\n0.208313 0.594910 0.093658\n0.241028 0.596527 0.094513\n0.276215 0.598083 0.095398\n0.313660 0.599701 0.096283\n0.353241 0.601318 0.097229\n0.394501 0.602905 0.098114\n0.437164 0.604492 0.098969\n0.480408 0.606110 0.099945\n0.522461 0.607697 0.100861\n0.561798 0.609283 0.101776\n0.598480 0.610901 0.102753\n0.632599 0.612366 0.103668\n0.664276 0.613983 0.104645\n0.693878 0.615570 0.105591\n0.721710 0.617126 0.106537\n0.748077 0.618683 0.107483\n0.773163 0.620239 0.108429\n0.797272 0.621735 0.109406\n0.820618 0.623230 0.110413\n0.843414 0.624786 0.111359\n0.865906 0.626282 0.112335\n0.888367 0.627808 0.113281\n0.911194 0.629242 0.114227\n0.934814 0.630707 0.115204\n0.959961 0.632172 0.116150\n0.052399 0.626648 0.084259\n0.069153 0.628021 0.085114\n0.087341 0.629364 0.085907\n0.107239 0.630737 0.086853\n0.129211 0.632111 0.087738\n0.153625 0.633484 0.088623\n0.180786 0.634888 0.089508\n0.210846 0.636200 0.090363\n0.243591 0.637634 0.091309\n0.278839 0.639008 0.092285\n0.316345 0.640381 0.093201\n0.355957 0.641785 0.094147\n0.397186 0.643127 0.095123\n0.439758 0.644501 0.096039\n0.482910 0.645874 0.096985\n0.524658 0.647278 0.097992\n0.563721 0.648590 0.098938\n0.600281 0.649994 0.099945\n0.634064 0.651306 0.100891\n0.665497 0.652649 0.101837\n0.694946 0.653992 0.102875\n0.722626 0.655334 0.103851\n0.748871 0.656677 0.104828\n0.773865 0.657990 0.105835\n0.797882 0.659271 0.106812\n0.821106 0.660583 0.107880\n0.843842 0.661896 0.108795\n0.866241 0.663177 0.109802\n0.888611 0.664429 0.110779\n0.911346 0.665680 0.111755\n0.934875 0.666931 0.112823\n0.959961 0.668182 0.113739\n0.053986 0.665802 0.081146\n0.070801 0.666992 0.082092\n0.089081 0.668152 0.082977\n0.109131 0.669312 0.083923\n0.131256 0.670471 0.084839\n0.155792 0.671661 0.085754\n0.183136 0.672882 0.086731\n0.213318 0.674042 0.087677\n0.246216 0.675262 0.088593\n0.281555 0.676392 0.089569\n0.319122 0.677582 0.090576\n0.358704 0.678772 0.091522\n0.399902 0.679932 0.092529\n0.442383 0.681152 0.093475\n0.485443 0.682343 0.094513\n0.526825 0.683472 0.095520\n0.565704 0.684662 0.096527\n0.601929 0.685822 0.097504\n0.635529 0.686951 0.098511\n0.666809 0.688080 0.099579\n0.696045 0.689270 0.100555\n0.723572 0.690369 0.101562\n0.749664 0.691559 0.102600\n0.774567 0.692657 0.103638\n0.798462 0.693756 0.104614\n0.821594 0.694885 0.105682\n0.844177 0.695953 0.106628\n0.866547 0.697083 0.107635\n0.888855 0.698151 0.108734\n0.911530 0.699188 0.109650\n0.934967 0.700287 0.110687\n0.959961 0.701294 0.111725\n0.055603 0.701691 0.078644\n0.072510 0.702728 0.079559\n0.090881 0.703705 0.080505\n0.111084 0.704712 0.081451\n0.133331 0.705719 0.082428\n0.158051 0.706726 0.083405\n0.185577 0.707764 0.084351\n0.215881 0.708801 0.085327\n0.248840 0.709778 0.086365\n0.284271 0.710846 0.087372\n0.321869 0.711823 0.088318\n0.361450 0.712830 0.089355\n0.402618 0.713837 0.090393\n0.445038 0.714874 0.091400\n0.487885 0.715881 0.092407\n0.529053 0.716858 0.093445\n0.567596 0.717865 0.094482\n0.603577 0.718872 0.095520\n0.636963 0.719849 0.096497\n0.668060 0.720856 0.097595\n0.697113 0.721832 0.098633\n0.724518 0.722778 0.099670\n0.750427 0.723724 0.100708\n0.775208 0.724731 0.101776\n0.799011 0.725647 0.102753\n0.822083 0.726624 0.103790\n0.844604 0.727539 0.104828\n0.866821 0.728455 0.105865\n0.889069 0.729370 0.106903\n0.911682 0.730286 0.107880\n0.935089 0.731171 0.108917\n0.959961 0.732056 0.109955\n0.057220 0.734894 0.076416\n0.074249 0.735748 0.077393\n0.092712 0.736603 0.078400\n0.113007 0.737488 0.079346\n0.135437 0.738342 0.080353\n0.160309 0.739227 0.081360\n0.188049 0.740112 0.082397\n0.218414 0.740936 0.083405\n0.251495 0.741852 0.084412\n0.286987 0.742737 0.085480\n0.324615 0.743591 0.086456\n0.364258 0.744446 0.087555\n0.405365 0.745270 0.088531\n0.447693 0.746185 0.089600\n0.490417 0.747040 0.090668\n0.531189 0.747864 0.091675\n0.569580 0.748749 0.092712\n0.605286 0.749573 0.093842\n0.638397 0.750427 0.094849\n0.669281 0.751251 0.095947\n0.698181 0.752106 0.096985\n0.725433 0.752899 0.098083\n0.751251 0.753754 0.099091\n0.775879 0.754547 0.100128\n0.799530 0.755371 0.101166\n0.822510 0.756165 0.102203\n0.844940 0.756958 0.103241\n0.867126 0.757751 0.104279\n0.889313 0.758514 0.105347\n0.911835 0.759277 0.106354\n0.935120 0.760040 0.107391\n0.959961 0.760803 0.108398\n0.058899 0.765778 0.074585\n0.075958 0.766541 0.075531\n0.094604 0.767273 0.076538\n0.115051 0.768036 0.077606\n0.137543 0.768768 0.078613\n0.162628 0.769531 0.079651\n0.190460 0.770264 0.080688\n0.221008 0.770996 0.081757\n0.254211 0.771759 0.082794\n0.289764 0.772522 0.083832\n0.327393 0.773224 0.084869\n0.366974 0.773987 0.085968\n0.408051 0.774719 0.087036\n0.450287 0.775452 0.088074\n0.492798 0.776154 0.089142\n0.533386 0.776886 0.090240\n0.571442 0.777618 0.091278\n0.606934 0.778351 0.092377\n0.639832 0.779083 0.093414\n0.670502 0.779755 0.094513\n0.699219 0.780518 0.095581\n0.726318 0.781158 0.096649\n0.752014 0.781860 0.097687\n0.776550 0.782562 0.098724\n0.800079 0.783234 0.099823\n0.822937 0.783905 0.100891\n0.845337 0.784576 0.101898\n0.867432 0.785248 0.102936\n0.889557 0.785889 0.104004\n0.911987 0.786499 0.105011\n0.935211 0.787170 0.106018\n0.959961 0.787811 0.107056\n0.060547 0.794830 0.072937\n0.077759 0.795441 0.074005\n0.096466 0.796112 0.075043\n0.117035 0.796753 0.076080\n0.139709 0.797394 0.077087\n0.164948 0.797974 0.078217\n0.192963 0.798645 0.079254\n0.223633 0.799255 0.080322\n0.256866 0.799896 0.081390\n0.292450 0.800537 0.082458\n0.330200 0.801147 0.083557\n0.369781 0.801788 0.084656\n0.410767 0.802429 0.085693\n0.452942 0.803040 0.086792\n0.495270 0.803650 0.087891\n0.535522 0.804230 0.088959\n0.573334 0.804871 0.090057\n0.608521 0.805481 0.091156\n0.641266 0.806061 0.092194\n0.671753 0.806641 0.093292\n0.700256 0.807281 0.094360\n0.727203 0.807831 0.095428\n0.752747 0.808441 0.096497\n0.777161 0.809021 0.097565\n0.800690 0.809570 0.098602\n0.823456 0.810150 0.099670\n0.845673 0.810699 0.100708\n0.867737 0.811279 0.101776\n0.889771 0.811829 0.102783\n0.912109 0.812347 0.103821\n0.935303 0.812866 0.104797\n0.959961 0.813446 0.105804\n0.062256 0.822357 0.071594\n0.079529 0.822876 0.072662\n0.098389 0.823425 0.073700\n0.119049 0.823944 0.074799\n0.141907 0.824463 0.075836\n0.167297 0.825043 0.076965\n0.195435 0.825562 0.078003\n0.226227 0.826080 0.079102\n0.259583 0.826630 0.080231\n0.295227 0.827148 0.081299\n0.332977 0.827667 0.082367\n0.372528 0.828217 0.083466\n0.413483 0.828735 0.084564\n0.455536 0.829224 0.085693\n0.497650 0.829742 0.086792\n0.537659 0.830261 0.087860\n0.575226 0.830780 0.088959\n0.610138 0.831299 0.090057\n0.642609 0.831787 0.091125\n0.672852 0.832275 0.092224\n0.701294 0.832764 0.093323\n0.728058 0.833221 0.094391\n0.753510 0.833771 0.095428\n0.777802 0.834229 0.096497\n0.801147 0.834686 0.097565\n0.823853 0.835175 0.098633\n0.846069 0.835632 0.099670\n0.868011 0.836090 0.100708\n0.889954 0.836548 0.101746\n0.912231 0.837006 0.102692\n0.935364 0.837433 0.103729\n0.959961 0.837860 0.104706\n0.064026 0.848633 0.070404\n0.081360 0.849060 0.071442\n0.100281 0.849548 0.072540\n0.121094 0.849976 0.073700\n0.144104 0.850403 0.074768\n0.169617 0.850861 0.075836\n0.197906 0.851318 0.076965\n0.228851 0.851746 0.078064\n0.262299 0.852203 0.079193\n0.297974 0.852600 0.080231\n0.335693 0.853058 0.081360\n0.375214 0.853485 0.082520\n0.416138 0.853882 0.083618\n0.458099 0.854370 0.084717\n0.500061 0.854767 0.085815\n0.539734 0.855164 0.086884\n0.576996 0.855621 0.088013\n0.611755 0.856018 0.089111\n0.643982 0.856476 0.090210\n0.674072 0.856842 0.091278\n0.702271 0.857239 0.092346\n0.728943 0.857666 0.093445\n0.754242 0.858063 0.094482\n0.778381 0.858429 0.095551\n0.801697 0.858856 0.096619\n0.824280 0.859222 0.097687\n0.846375 0.859619 0.098663\n0.868286 0.859985 0.099701\n0.890137 0.860352 0.100708\n0.912384 0.860718 0.101715\n0.935425 0.861084 0.102692\n0.959961 0.861420 0.103638\n0.065704 0.874054 0.069336\n0.083160 0.874359 0.070465\n0.102234 0.874756 0.071594\n0.123230 0.875122 0.072662\n0.146332 0.875458 0.073792\n0.172028 0.875824 0.074921\n0.200409 0.876160 0.076019\n0.231476 0.876556 0.077118\n0.264984 0.876892 0.078278\n0.300720 0.877258 0.079315\n0.338470 0.877594 0.080505\n0.377899 0.877991 0.081604\n0.418823 0.878296 0.082703\n0.460663 0.878632 0.083832\n0.502350 0.878998 0.084961\n0.541779 0.879333 0.086029\n0.578796 0.879700 0.087128\n0.613281 0.880035 0.088226\n0.645264 0.880371 0.089325\n0.675201 0.880707 0.090424\n0.703278 0.881012 0.091461\n0.729767 0.881348 0.092529\n0.754944 0.881653 0.093597\n0.778992 0.881958 0.094666\n0.802216 0.882263 0.095703\n0.824707 0.882599 0.096741\n0.846771 0.882904 0.097717\n0.868530 0.883209 0.098724\n0.890350 0.883484 0.099762\n0.912537 0.883759 0.100739\n0.935486 0.884094 0.101685\n0.959961 0.884338 0.102631\n0.067474 0.898804 0.068390\n0.085022 0.899078 0.069519\n0.104218 0.899353 0.070648\n0.125275 0.899628 0.071777\n0.148560 0.899933 0.072906\n0.174408 0.900269 0.074005\n0.202942 0.900482 0.075165\n0.234100 0.900818 0.076233\n0.267700 0.901093 0.077423\n0.303406 0.901337 0.078522\n0.341217 0.901611 0.079651\n0.380676 0.901917 0.080750\n0.421448 0.902191 0.081848\n0.463165 0.902435 0.082977\n0.504578 0.902740 0.084076\n0.543823 0.902985 0.085205\n0.580566 0.903259 0.086334\n0.614777 0.903534 0.087372\n0.646606 0.903778 0.088501\n0.676331 0.904053 0.089539\n0.704224 0.904297 0.090607\n0.730591 0.904572 0.091675\n0.755646 0.904816 0.092743\n0.779602 0.905060 0.093750\n0.802704 0.905273 0.094818\n0.825104 0.905548 0.095795\n0.847046 0.905762 0.096802\n0.868835 0.906006 0.097809\n0.890564 0.906250 0.098755\n0.912628 0.906433 0.099731\n0.935547 0.906677 0.100677\n0.959961 0.906860 0.101593\n0.069214 0.923279 0.067535\n0.086884 0.923523 0.068604\n0.106171 0.923737 0.069794\n0.127350 0.923920 0.070892\n0.150787 0.924164 0.072083\n0.176758 0.924347 0.073151\n0.205444 0.924561 0.074310\n0.236694 0.924805 0.075409\n0.270355 0.924988 0.076569\n0.306152 0.925201 0.077667\n0.343903 0.925385 0.078827\n0.383331 0.925629 0.079987\n0.424011 0.925842 0.081085\n0.465668 0.926025 0.082184\n0.506866 0.926208 0.083282\n0.545746 0.926422 0.084351\n0.582275 0.926666 0.085480\n0.616272 0.926849 0.086517\n0.647888 0.927032 0.087646\n0.677399 0.927216 0.088715\n0.705139 0.927429 0.089752\n0.731354 0.927612 0.090759\n0.756287 0.927795 0.091858\n0.780151 0.927979 0.092865\n0.803162 0.928131 0.093872\n0.825500 0.928284 0.094849\n0.847412 0.928497 0.095856\n0.869049 0.928680 0.096832\n0.890778 0.928833 0.097748\n0.912781 0.928986 0.098694\n0.935577 0.929138 0.099670\n0.959961 0.929321 0.100555\n0.070984 0.947906 0.066589\n0.088745 0.948090 0.067719\n0.108124 0.948242 0.068878\n0.129425 0.948364 0.070038\n0.153046 0.948486 0.071167\n0.179199 0.948669 0.072266\n0.208008 0.948761 0.073456\n0.239319 0.948944 0.074524\n0.273041 0.949066 0.075745\n0.308807 0.949188 0.076843\n0.346558 0.949371 0.077972\n0.385925 0.949554 0.079071\n0.426605 0.949646 0.080200\n0.468079 0.949799 0.081299\n0.509064 0.949921 0.082367\n0.547699 0.950073 0.083496\n0.583954 0.950165 0.084595\n0.617706 0.950317 0.085663\n0.649109 0.950439 0.086731\n0.678467 0.950592 0.087769\n0.706055 0.950684 0.088806\n0.732147 0.950836 0.089844\n0.756958 0.950958 0.090881\n0.780731 0.951080 0.091858\n0.803650 0.951202 0.092896\n0.825867 0.951324 0.093811\n0.847687 0.951447 0.094788\n0.869293 0.951538 0.095764\n0.890900 0.951660 0.096649\n0.912903 0.951752 0.097595\n0.935669 0.951843 0.098511\n0.959961 0.951965 0.099304\n0.072754 0.973236 0.065582\n0.090607 0.973267 0.066742\n0.110107 0.973358 0.067902\n0.131531 0.973450 0.069000\n0.155304 0.973511 0.070221\n0.181580 0.973572 0.071289\n0.210449 0.973663 0.072479\n0.241882 0.973785 0.073639\n0.275635 0.973846 0.074768\n0.311493 0.973938 0.075867\n0.349243 0.973969 0.077026\n0.388550 0.974091 0.078094\n0.429138 0.974121 0.079224\n0.470490 0.974182 0.080353\n0.511200 0.974304 0.081421\n0.549591 0.974335 0.082520\n0.585571 0.974396 0.083588\n0.619110 0.974457 0.084625\n0.650330 0.974518 0.085663\n0.679474 0.974579 0.086700\n0.706940 0.974670 0.087769\n0.732910 0.974731 0.088806\n0.757629 0.974762 0.089752\n0.781281 0.974854 0.090729\n0.804077 0.974915 0.091705\n0.826263 0.974976 0.092712\n0.847992 0.975037 0.093597\n0.869537 0.975067 0.094513\n0.891083 0.975128 0.095398\n0.913025 0.975189 0.096313\n0.935730 0.975220 0.097137\n0.959961 0.975281 0.097961\n0.074493 1.000000 0.064392\n0.092468 1.000000 0.065552\n0.112091 1.000000 0.066742\n0.133636 1.000000 0.067841\n0.157501 1.000000 0.069031\n0.183960 1.000000 0.070190\n0.212952 1.000000 0.071350\n0.244446 1.000000 0.072449\n0.278198 1.000000 0.073547\n0.314087 1.000000 0.074738\n0.351776 1.000000 0.075867\n0.391083 1.000000 0.076935\n0.431610 1.000000 0.078033\n0.472839 1.000000 0.079163\n0.513275 1.000000 0.080200\n0.551392 1.000000 0.081299\n0.587189 1.000000 0.082367\n0.620483 1.000000 0.083374\n0.651520 1.000000 0.084442\n0.680542 1.000000 0.085480\n0.707794 1.000000 0.086487\n0.733612 1.000000 0.087463\n0.758240 1.000000 0.088409\n0.781769 1.000000 0.089386\n0.804504 1.000000 0.090332\n0.826599 1.000000 0.091248\n0.848297 1.000000 0.092163\n0.869751 1.000000 0.093048\n0.891266 1.000000 0.093903\n0.913116 1.000000 0.094757\n0.935822 1.000000 0.095581\n0.959961 1.000000 0.096375\n0.031647 0.001129 0.164459\n0.047089 0.001709 0.164886\n0.063690 0.002289 0.165283\n0.081757 0.002899 0.165741\n0.101562 0.003540 0.166168\n0.123505 0.004211 0.166656\n0.147980 0.004913 0.167175\n0.175293 0.005646 0.167694\n0.205750 0.006348 0.168213\n0.239136 0.007141 0.168793\n0.275391 0.007935 0.169342\n0.314117 0.008728 0.169952\n0.355164 0.009583 0.170532\n0.398102 0.010406 0.171173\n0.442474 0.011322 0.171783\n0.487549 0.012238 0.172485\n0.530823 0.013123 0.173096\n0.571320 0.014099 0.173828\n0.608948 0.015076 0.174530\n0.643799 0.016052 0.175262\n0.676178 0.017059 0.175934\n0.706421 0.018097 0.176727\n0.734924 0.019165 0.177490\n0.761963 0.020233 0.178253\n0.787750 0.021332 0.179047\n0.812653 0.022430 0.179901\n0.836853 0.023590 0.180695\n0.860687 0.024689 0.181519\n0.884399 0.025879 0.182373\n0.908478 0.027069 0.183228\n0.933319 0.028229 0.184052\n0.959961 0.029480 0.184967\n0.032410 0.017273 0.163330\n0.047882 0.017883 0.163757\n0.064575 0.018555 0.164185\n0.082672 0.019226 0.164673\n0.102600 0.019928 0.165161\n0.124634 0.020630 0.165741\n0.149200 0.021393 0.166260\n0.176697 0.022186 0.166840\n0.207275 0.022980 0.167358\n0.240784 0.023804 0.167999\n0.277100 0.024658 0.168579\n0.315948 0.025543 0.169159\n0.356995 0.026428 0.169830\n0.399902 0.027344 0.170502\n0.444366 0.028290 0.171112\n0.489288 0.029266 0.171814\n0.532410 0.030243 0.172516\n0.572693 0.031250 0.173248\n0.610199 0.032288 0.173950\n0.644836 0.033356 0.174713\n0.677094 0.034454 0.175476\n0.707184 0.035522 0.176239\n0.735626 0.036621 0.177002\n0.762543 0.037750 0.177826\n0.788269 0.038910 0.178619\n0.813110 0.040100 0.179443\n0.837250 0.041321 0.180328\n0.860931 0.042511 0.181183\n0.884674 0.043762 0.182007\n0.908630 0.045044 0.182892\n0.933441 0.046295 0.183777\n0.959961 0.047577 0.184662\n0.033142 0.034363 0.162140\n0.048676 0.035034 0.162628\n0.065460 0.035736 0.163086\n0.083679 0.036499 0.163666\n0.103699 0.037262 0.164154\n0.125824 0.038055 0.164734\n0.150482 0.038910 0.165253\n0.178162 0.039764 0.165924\n0.208862 0.040619 0.166443\n0.242523 0.041534 0.167084\n0.278839 0.042419 0.167664\n0.317810 0.043365 0.168335\n0.358887 0.044342 0.169006\n0.401825 0.045349 0.169708\n0.446228 0.046356 0.170410\n0.491150 0.047424 0.171112\n0.534058 0.048462 0.171814\n0.574127 0.049591 0.172577\n0.611450 0.050720 0.173370\n0.645966 0.051819 0.174072\n0.678040 0.052979 0.174866\n0.708008 0.054169 0.175629\n0.736359 0.055359 0.176453\n0.763153 0.056610 0.177277\n0.788788 0.057831 0.178131\n0.813507 0.059082 0.179016\n0.837585 0.060364 0.179840\n0.861267 0.061676 0.180725\n0.884888 0.062988 0.181580\n0.908813 0.064392 0.182404\n0.933502 0.065704 0.183319\n0.959961 0.067108 0.184265\n0.033997 0.052643 0.160889\n0.049591 0.053436 0.161438\n0.066406 0.054230 0.161926\n0.084747 0.055054 0.162506\n0.104858 0.055908 0.163055\n0.127106 0.056793 0.163666\n0.151917 0.057709 0.164215\n0.179688 0.058624 0.164825\n0.210541 0.059601 0.165436\n0.244293 0.060577 0.166107\n0.280731 0.061584 0.166748\n0.319733 0.062622 0.167419\n0.360931 0.063751 0.168152\n0.403839 0.064789 0.168823\n0.448212 0.065918 0.169495\n0.492981 0.067078 0.170288\n0.535675 0.068207 0.171021\n0.575592 0.069397 0.171783\n0.612762 0.070648 0.172546\n0.647095 0.071838 0.173309\n0.679016 0.073120 0.174164\n0.708893 0.074402 0.174927\n0.737061 0.075714 0.175781\n0.763763 0.077057 0.176605\n0.789307 0.078369 0.177460\n0.813995 0.079773 0.178314\n0.837982 0.081146 0.179199\n0.861542 0.082550 0.180054\n0.885071 0.084015 0.180939\n0.908966 0.085449 0.181854\n0.933594 0.086914 0.182709\n0.959961 0.088470 0.183655\n0.034851 0.072571 0.159546\n0.050537 0.073486 0.160095\n0.067444 0.074371 0.160553\n0.085846 0.075287 0.161224\n0.106079 0.076233 0.161835\n0.128448 0.077240 0.162384\n0.153412 0.078247 0.162994\n0.181305 0.079254 0.163635\n0.212280 0.080322 0.164276\n0.246185 0.081421 0.164978\n0.282745 0.082550 0.165649\n0.321808 0.083710 0.166351\n0.362976 0.084930 0.167053\n0.405914 0.086090 0.167786\n0.450256 0.087311 0.168488\n0.494934 0.088593 0.169250\n0.537415 0.089874 0.170013\n0.577148 0.091156 0.170807\n0.614075 0.092499 0.171600\n0.648254 0.093842 0.172424\n0.680023 0.095215 0.173248\n0.709747 0.096649 0.174011\n0.737823 0.098053 0.174896\n0.764404 0.099548 0.175720\n0.789886 0.101013 0.176544\n0.814423 0.102509 0.177429\n0.838318 0.104034 0.178314\n0.861847 0.105560 0.179199\n0.885284 0.107117 0.180054\n0.909119 0.108704 0.180969\n0.933685 0.110352 0.181854\n0.959961 0.111969 0.182800\n0.035828 0.094574 0.157928\n0.051575 0.095581 0.158539\n0.068512 0.096558 0.159149\n0.087036 0.097656 0.159698\n0.107391 0.098724 0.160309\n0.129883 0.099792 0.160950\n0.154968 0.100922 0.161591\n0.183044 0.102051 0.162262\n0.214111 0.103302 0.162872\n0.248138 0.104523 0.163605\n0.284821 0.105743 0.164276\n0.323883 0.107025 0.165009\n0.365143 0.108368 0.165771\n0.408051 0.109650 0.166473\n0.452423 0.111053 0.167236\n0.496857 0.112457 0.167999\n0.539154 0.113831 0.168793\n0.578674 0.115326 0.169586\n0.615448 0.116760 0.170380\n0.649414 0.118286 0.171173\n0.681030 0.119812 0.172028\n0.710632 0.121307 0.172821\n0.738586 0.122925 0.173706\n0.765045 0.124542 0.174530\n0.790436 0.126129 0.175354\n0.814880 0.127808 0.176270\n0.838745 0.129456 0.177155\n0.862152 0.131134 0.178009\n0.885559 0.132874 0.178894\n0.909271 0.134583 0.179779\n0.933746 0.136383 0.180695\n0.959961 0.138153 0.181641\n0.036835 0.119080 0.156189\n0.052643 0.120209 0.156769\n0.069702 0.121338 0.157349\n0.088257 0.122528 0.157990\n0.108734 0.123718 0.158569\n0.131378 0.124969 0.159241\n0.156647 0.126282 0.159912\n0.184814 0.127563 0.160583\n0.216095 0.128906 0.161255\n0.250153 0.130280 0.161987\n0.286926 0.131683 0.162689\n0.326080 0.133087 0.163422\n0.367310 0.134552 0.164154\n0.410248 0.136047 0.164917\n0.454529 0.137573 0.165680\n0.498901 0.139099 0.166443\n0.540985 0.140686 0.167236\n0.580292 0.142273 0.167999\n0.616791 0.143890 0.168854\n0.650635 0.145569 0.169647\n0.682068 0.147247 0.170532\n0.711548 0.148926 0.171295\n0.739349 0.150696 0.172150\n0.765717 0.152496 0.173035\n0.790985 0.154266 0.173859\n0.815399 0.156067 0.174744\n0.839111 0.157959 0.175629\n0.862488 0.159790 0.176483\n0.885773 0.161713 0.177368\n0.909424 0.163574 0.178284\n0.933868 0.165558 0.179169\n0.959961 0.167480 0.180115\n0.037872 0.146637 0.154022\n0.053772 0.147888 0.154694\n0.070892 0.149170 0.155273\n0.089630 0.150543 0.155914\n0.110107 0.151886 0.156555\n0.132935 0.153320 0.157227\n0.158356 0.154785 0.157898\n0.186707 0.156189 0.158569\n0.218079 0.157715 0.159271\n0.252258 0.159271 0.159973\n0.289093 0.160797 0.160736\n0.328339 0.162445 0.161499\n0.369598 0.164062 0.162231\n0.412567 0.165680 0.162964\n0.456757 0.167389 0.163757\n0.500916 0.169098 0.164490\n0.542816 0.170868 0.165344\n0.581940 0.172668 0.166107\n0.618225 0.174438 0.166931\n0.651794 0.176270 0.167725\n0.683136 0.178162 0.168549\n0.712433 0.180054 0.169403\n0.740112 0.181976 0.170258\n0.766418 0.183990 0.171112\n0.791595 0.185913 0.171967\n0.815857 0.187927 0.172791\n0.839508 0.189911 0.173676\n0.862823 0.191986 0.174561\n0.886017 0.194092 0.175446\n0.909576 0.196136 0.176331\n0.933960 0.198242 0.177246\n0.959961 0.200409 0.178162\n0.039032 0.177795 0.151520\n0.054962 0.179199 0.152130\n0.072174 0.180664 0.152771\n0.090973 0.182220 0.153473\n0.111603 0.183746 0.154083\n0.134552 0.185303 0.154755\n0.160126 0.186981 0.155426\n0.188629 0.188568 0.156128\n0.220123 0.190277 0.156860\n0.254486 0.192017 0.157623\n0.291382 0.193726 0.158325\n0.330627 0.195496 0.159088\n0.371887 0.197296 0.159821\n0.414856 0.199158 0.160553\n0.459015 0.201050 0.161346\n0.503021 0.202911 0.162140\n0.544678 0.204865 0.162933\n0.583527 0.206848 0.163757\n0.619629 0.208801 0.164520\n0.653046 0.210815 0.165405\n0.684204 0.212860 0.166229\n0.713379 0.214905 0.167023\n0.740906 0.217010 0.167908\n0.767090 0.219177 0.168732\n0.792145 0.221252 0.169556\n0.816315 0.223419 0.170441\n0.839905 0.225555 0.171295\n0.863098 0.227783 0.172211\n0.886261 0.230011 0.173096\n0.909729 0.232239 0.173950\n0.933990 0.234497 0.174866\n0.959961 0.236816 0.175751\n0.040161 0.212921 0.148590\n0.056152 0.214508 0.149231\n0.073517 0.216125 0.149841\n0.092438 0.217834 0.150513\n0.113190 0.219513 0.151184\n0.136261 0.221283 0.151886\n0.161987 0.223022 0.152557\n0.190643 0.224823 0.153259\n0.222290 0.226685 0.153992\n0.256714 0.228577 0.154755\n0.293701 0.230438 0.155457\n0.333038 0.232391 0.156219\n0.374329 0.234314 0.157013\n0.417267 0.236359 0.157776\n0.461334 0.238403 0.158539\n0.505219 0.240417 0.159332\n0.546570 0.242493 0.160156\n0.585205 0.244568 0.160980\n0.621063 0.246674 0.161743\n0.654327 0.248871 0.162598\n0.685242 0.251099 0.163422\n0.714355 0.253265 0.164246\n0.741699 0.255463 0.165100\n0.767792 0.257660 0.165955\n0.792725 0.259949 0.166809\n0.816833 0.262238 0.167694\n0.840302 0.264496 0.168518\n0.863434 0.266815 0.169403\n0.886505 0.269165 0.170319\n0.909882 0.271484 0.171204\n0.934113 0.273834 0.172119\n0.959961 0.276276 0.173004\n0.041382 0.251770 0.145203\n0.057465 0.253510 0.145844\n0.074890 0.255310 0.146484\n0.093933 0.257111 0.147186\n0.114807 0.258911 0.147888\n0.138031 0.260803 0.148560\n0.163849 0.262756 0.149292\n0.192749 0.264679 0.150024\n0.224487 0.266663 0.150726\n0.259003 0.268646 0.151459\n0.296143 0.270691 0.152252\n0.335449 0.272766 0.153015\n0.376770 0.274811 0.153748\n0.419708 0.276917 0.154541\n0.463684 0.279083 0.155365\n0.507355 0.281219 0.156158\n0.548462 0.283417 0.156952\n0.586884 0.285675 0.157776\n0.622528 0.287872 0.158600\n0.655579 0.290131 0.159424\n0.686401 0.292419 0.160248\n0.715210 0.294678 0.161133\n0.742523 0.297058 0.161957\n0.768463 0.299316 0.162811\n0.793304 0.301697 0.163666\n0.817291 0.304047 0.164551\n0.840698 0.306427 0.165405\n0.863739 0.308807 0.166321\n0.886749 0.311218 0.167206\n0.910065 0.313599 0.168060\n0.934174 0.316040 0.168976\n0.959961 0.318512 0.169830\n0.042694 0.294098 0.141449\n0.058838 0.295929 0.142120\n0.076324 0.297821 0.142792\n0.095490 0.299744 0.143463\n0.116486 0.301697 0.144196\n0.139832 0.303680 0.144928\n0.165863 0.305725 0.145630\n0.194885 0.307739 0.146362\n0.226776 0.309814 0.147095\n0.261414 0.311890 0.147888\n0.298523 0.314056 0.148651\n0.337982 0.316193 0.149414\n0.379272 0.318329 0.150177\n0.422150 0.320557 0.151031\n0.466064 0.322815 0.151825\n0.509460 0.325043 0.152618\n0.550446 0.327301 0.153442\n0.588562 0.329590 0.154266\n0.623993 0.331879 0.155090\n0.656830 0.334198 0.155945\n0.687439 0.336456 0.156769\n0.716187 0.338867 0.157623\n0.743347 0.341278 0.158508\n0.769165 0.343597 0.159363\n0.793884 0.346008 0.160217\n0.817810 0.348450 0.161133\n0.841064 0.350830 0.161987\n0.864075 0.353241 0.162903\n0.886993 0.355713 0.163788\n0.910248 0.358063 0.164673\n0.934296 0.360596 0.165558\n0.959961 0.362976 0.166473\n0.043976 0.339417 0.137360\n0.060211 0.341339 0.138062\n0.077820 0.343323 0.138763\n0.097046 0.345306 0.139465\n0.118225 0.347351 0.140198\n0.141724 0.349396 0.140930\n0.167877 0.351471 0.141663\n0.197083 0.353577 0.142395\n0.229126 0.355743 0.143250\n0.263794 0.357880 0.143982\n0.301056 0.360077 0.144745\n0.340515 0.362244 0.145569\n0.381775 0.364502 0.146362\n0.424652 0.366730 0.147125\n0.468475 0.369049 0.147980\n0.511688 0.371277 0.148773\n0.552368 0.373627 0.149628\n0.590240 0.375977 0.150513\n0.625458 0.378235 0.151306\n0.658112 0.380585 0.152191\n0.688568 0.382874 0.153046\n0.717163 0.385315 0.153900\n0.744141 0.387665 0.154785\n0.769836 0.390076 0.155670\n0.794495 0.392487 0.156555\n0.818268 0.394867 0.157440\n0.841492 0.397278 0.158325\n0.864410 0.399750 0.159241\n0.887238 0.402100 0.160156\n0.910400 0.404541 0.161011\n0.934357 0.406982 0.161926\n0.959961 0.409393 0.162811\n0.045349 0.387299 0.133026\n0.061676 0.389252 0.133728\n0.079376 0.391296 0.134460\n0.098694 0.393341 0.135193\n0.119995 0.395386 0.135925\n0.143646 0.397461 0.136688\n0.170044 0.399597 0.137482\n0.199341 0.401733 0.138245\n0.231506 0.403931 0.139008\n0.266327 0.406036 0.139801\n0.303589 0.408295 0.140625\n0.343048 0.410522 0.141449\n0.384399 0.412689 0.142303\n0.427185 0.414978 0.143097\n0.470917 0.417267 0.143921\n0.513916 0.419525 0.144806\n0.554321 0.421814 0.145630\n0.592010 0.424103 0.146484\n0.626953 0.426483 0.147400\n0.659424 0.428802 0.148224\n0.689667 0.431091 0.149078\n0.718109 0.433472 0.149963\n0.744965 0.435852 0.150879\n0.770569 0.438141 0.151764\n0.795074 0.440521 0.152649\n0.818817 0.442932 0.153595\n0.841888 0.445251 0.154449\n0.864716 0.447632 0.155426\n0.887482 0.449982 0.156250\n0.910583 0.452362 0.157227\n0.934479 0.454742 0.158142\n0.959961 0.457092 0.159027\n0.046722 0.437103 0.128479\n0.063141 0.439087 0.129181\n0.080933 0.441101 0.129974\n0.100403 0.443207 0.130737\n0.121826 0.445190 0.131500\n0.145630 0.447327 0.132294\n0.172150 0.449371 0.133057\n0.201630 0.451538 0.133850\n0.233917 0.453735 0.134735\n0.268860 0.455811 0.135529\n0.306213 0.458038 0.136383\n0.345703 0.460236 0.137177\n0.386963 0.462402 0.138062\n0.429810 0.464630 0.138916\n0.473358 0.466797 0.139709\n0.516144 0.469055 0.140625\n0.556305 0.471344 0.141510\n0.593689 0.473572 0.142334\n0.628448 0.475800 0.143280\n0.660706 0.478088 0.144135\n0.690796 0.480316 0.145050\n0.719025 0.482635 0.145935\n0.745789 0.484924 0.146851\n0.771240 0.487152 0.147827\n0.795685 0.489410 0.148712\n0.819244 0.491730 0.149658\n0.842316 0.493927 0.150543\n0.865021 0.496216 0.151520\n0.887726 0.498413 0.152405\n0.910706 0.500702 0.153320\n0.934540 0.502991 0.154297\n0.959961 0.505157 0.155182\n0.048187 0.488129 0.123840\n0.064667 0.490051 0.124573\n0.082550 0.492004 0.125397\n0.102081 0.493988 0.126190\n0.123718 0.495972 0.127014\n0.147644 0.498016 0.127808\n0.174347 0.500000 0.128662\n0.203979 0.502106 0.129486\n0.236389 0.504211 0.130310\n0.271393 0.506195 0.131165\n0.308838 0.508331 0.132050\n0.348358 0.510376 0.132935\n0.389618 0.512451 0.133759\n0.432373 0.514496 0.134674\n0.475861 0.516571 0.135559\n0.518372 0.518646 0.136505\n0.558228 0.520721 0.137421\n0.595398 0.522766 0.138306\n0.629944 0.524811 0.139252\n0.661957 0.526947 0.140137\n0.691833 0.528961 0.141113\n0.720001 0.531067 0.142090\n0.746613 0.533112 0.143005\n0.771942 0.535095 0.143951\n0.796234 0.537109 0.144897\n0.819733 0.539124 0.145874\n0.842682 0.541168 0.146851\n0.865326 0.543182 0.147766\n0.887939 0.545166 0.148743\n0.910889 0.547119 0.149689\n0.934662 0.549103 0.150665\n0.959961 0.551025 0.151642\n0.049652 0.538147 0.119385\n0.066223 0.539825 0.120209\n0.084229 0.541626 0.121063\n0.103912 0.543396 0.121857\n0.125610 0.545227 0.122742\n0.149719 0.547089 0.123627\n0.176575 0.548859 0.124481\n0.206390 0.550659 0.125366\n0.238922 0.552490 0.126282\n0.274017 0.554321 0.127167\n0.311493 0.556183 0.128082\n0.351044 0.557953 0.128998\n0.392273 0.559814 0.129913\n0.434998 0.561615 0.130890\n0.478333 0.563416 0.131805\n0.520599 0.565308 0.132782\n0.560211 0.567108 0.133728\n0.597107 0.568909 0.134674\n0.631378 0.570740 0.135651\n0.663239 0.572510 0.136627\n0.692993 0.574341 0.137604\n0.720947 0.576111 0.138580\n0.747437 0.577911 0.139557\n0.772614 0.579681 0.140564\n0.796814 0.581482 0.141571\n0.820251 0.583252 0.142548\n0.843109 0.584961 0.143524\n0.865662 0.586731 0.144531\n0.888184 0.588409 0.145538\n0.911041 0.590149 0.146515\n0.934723 0.591888 0.147552\n0.959961 0.593536 0.148529\n0.051178 0.584473 0.115448\n0.067810 0.586029 0.116302\n0.085938 0.587616 0.117188\n0.105713 0.589142 0.118103\n0.127594 0.590729 0.119019\n0.151855 0.592316 0.119934\n0.178894 0.593903 0.120819\n0.208832 0.595520 0.121765\n0.241486 0.597107 0.122742\n0.276672 0.598694 0.123688\n0.314209 0.600311 0.124634\n0.353729 0.601929 0.125610\n0.394989 0.603485 0.126587\n0.437653 0.605103 0.127594\n0.480865 0.606628 0.128540\n0.522797 0.608276 0.129517\n0.562164 0.609863 0.130524\n0.598816 0.611389 0.131561\n0.632874 0.613007 0.132538\n0.664520 0.614624 0.133545\n0.694061 0.616119 0.134583\n0.721893 0.617706 0.135590\n0.748230 0.619263 0.136597\n0.773285 0.620758 0.137634\n0.797394 0.622345 0.138641\n0.820709 0.623810 0.139679\n0.843475 0.625366 0.140686\n0.865967 0.626831 0.141724\n0.888458 0.628326 0.142731\n0.911194 0.629791 0.143799\n0.934814 0.631256 0.144775\n0.959961 0.632660 0.145813\n0.052673 0.627106 0.112030\n0.069458 0.628510 0.112946\n0.087646 0.629852 0.113892\n0.107605 0.631226 0.114807\n0.129608 0.632599 0.115784\n0.154022 0.633972 0.116730\n0.181213 0.635376 0.117706\n0.211304 0.636749 0.118683\n0.244080 0.638123 0.119690\n0.279358 0.639496 0.120667\n0.316895 0.640900 0.121674\n0.356445 0.642242 0.122711\n0.397675 0.643616 0.123718\n0.440247 0.645020 0.124725\n0.483398 0.646362 0.125702\n0.525024 0.647766 0.126801\n0.564117 0.649109 0.127808\n0.600525 0.650452 0.128815\n0.634369 0.651825 0.129913\n0.665771 0.653198 0.130951\n0.695160 0.654480 0.131989\n0.722809 0.655853 0.133026\n0.748993 0.657135 0.134094\n0.773987 0.658508 0.135132\n0.797974 0.659790 0.136200\n0.821228 0.661041 0.137207\n0.843903 0.662354 0.138275\n0.866272 0.663635 0.139374\n0.888672 0.664917 0.140350\n0.911346 0.666138 0.141418\n0.934875 0.667389 0.142487\n0.959961 0.668610 0.143494\n0.054291 0.666199 0.109131\n0.071106 0.667358 0.110107\n0.089447 0.668579 0.111084\n0.109497 0.669739 0.112030\n0.131653 0.670929 0.113068\n0.156219 0.672119 0.114044\n0.183594 0.673309 0.115051\n0.213806 0.674469 0.116089\n0.246704 0.675690 0.117126\n0.282043 0.676849 0.118164\n0.319641 0.678040 0.119202\n0.359222 0.679169 0.120239\n0.400421 0.680359 0.121246\n0.442932 0.681549 0.122375\n0.485901 0.682709 0.123383\n0.527252 0.683899 0.124420\n0.566040 0.685059 0.125549\n0.602203 0.686218 0.126556\n0.635803 0.687347 0.127686\n0.667053 0.688568 0.128754\n0.696228 0.689697 0.129822\n0.723755 0.690826 0.130890\n0.749817 0.691895 0.131958\n0.774689 0.693085 0.132996\n0.798584 0.694183 0.134125\n0.821686 0.695282 0.135162\n0.844269 0.696381 0.136261\n0.866608 0.697479 0.137329\n0.888885 0.698517 0.138367\n0.911530 0.699615 0.139435\n0.934967 0.700684 0.140533\n0.959961 0.701691 0.141541\n0.055878 0.702026 0.106659\n0.072815 0.703033 0.107697\n0.091248 0.704071 0.108704\n0.111450 0.705078 0.109741\n0.133728 0.706146 0.110779\n0.158478 0.707153 0.111816\n0.186005 0.708130 0.112854\n0.216339 0.709167 0.113922\n0.249329 0.710175 0.114960\n0.284790 0.711182 0.116058\n0.322388 0.712219 0.117096\n0.361969 0.713226 0.118195\n0.403107 0.714233 0.119263\n0.445557 0.715240 0.120331\n0.488342 0.716248 0.121429\n0.529449 0.717255 0.122498\n0.568024 0.718262 0.123627\n0.603912 0.719208 0.124725\n0.637268 0.720215 0.125854\n0.668304 0.721191 0.126923\n0.697327 0.722168 0.127991\n0.724670 0.723145 0.129059\n0.750580 0.724091 0.130157\n0.775330 0.725037 0.131256\n0.799103 0.726013 0.132385\n0.822144 0.726929 0.133423\n0.844666 0.727875 0.134491\n0.866882 0.728821 0.135620\n0.889099 0.729706 0.136688\n0.911743 0.730621 0.137726\n0.935089 0.731537 0.138824\n0.959961 0.732391 0.139862\n0.057495 0.735168 0.104614\n0.074524 0.736053 0.105682\n0.093079 0.736938 0.106750\n0.113403 0.737793 0.107788\n0.135864 0.738678 0.108856\n0.160736 0.739563 0.109924\n0.188416 0.740417 0.111023\n0.218933 0.741302 0.112091\n0.251984 0.742157 0.113159\n0.287476 0.743042 0.114288\n0.325165 0.743896 0.115387\n0.364716 0.744751 0.116486\n0.405853 0.745636 0.117584\n0.448181 0.746490 0.118683\n0.490845 0.747345 0.119781\n0.531616 0.748199 0.120941\n0.569916 0.749054 0.122040\n0.605560 0.749878 0.123169\n0.638672 0.750732 0.124268\n0.669525 0.751556 0.125336\n0.698395 0.752380 0.126434\n0.725555 0.753235 0.127563\n0.751373 0.754028 0.128662\n0.776001 0.754822 0.129761\n0.799652 0.755676 0.130859\n0.822601 0.756439 0.131958\n0.845062 0.757233 0.133057\n0.867218 0.758026 0.134155\n0.889343 0.758820 0.135193\n0.911835 0.759552 0.136292\n0.935150 0.760315 0.137329\n0.959961 0.761078 0.138397\n0.059143 0.766052 0.102905\n0.076294 0.766815 0.103973\n0.094940 0.767578 0.105072\n0.115356 0.768341 0.106140\n0.137970 0.769073 0.107269\n0.163055 0.769806 0.108368\n0.190918 0.770538 0.109467\n0.221497 0.771301 0.110565\n0.254669 0.772003 0.111694\n0.290222 0.772766 0.112793\n0.327942 0.773529 0.113922\n0.367462 0.774261 0.115051\n0.408600 0.774994 0.116180\n0.450867 0.775696 0.117340\n0.493256 0.776459 0.118408\n0.533783 0.777191 0.119568\n0.571808 0.777893 0.120667\n0.607178 0.778625 0.121796\n0.640106 0.779327 0.122925\n0.670685 0.780029 0.124023\n0.699402 0.780731 0.125153\n0.726501 0.781403 0.126282\n0.752167 0.782104 0.127380\n0.776672 0.782806 0.128479\n0.800232 0.783508 0.129608\n0.823059 0.784149 0.130707\n0.845428 0.784821 0.131805\n0.867462 0.785461 0.132874\n0.889557 0.786133 0.133972\n0.912018 0.786743 0.135040\n0.935211 0.787415 0.136108\n0.959961 0.788025 0.137146\n0.060883 0.795074 0.101410\n0.078064 0.795715 0.102539\n0.096832 0.796356 0.103699\n0.117432 0.796967 0.104767\n0.140106 0.797607 0.105896\n0.165344 0.798248 0.107056\n0.193420 0.798889 0.108185\n0.224152 0.799500 0.109314\n0.257385 0.800110 0.110443\n0.293030 0.800781 0.111542\n0.330719 0.801392 0.112701\n0.370209 0.802002 0.113861\n0.411285 0.802643 0.114990\n0.453430 0.803253 0.116150\n0.495697 0.803864 0.117279\n0.535950 0.804443 0.118408\n0.573669 0.805084 0.119537\n0.608826 0.805695 0.120697\n0.641510 0.806305 0.121796\n0.671936 0.806915 0.122925\n0.700439 0.807495 0.124054\n0.727386 0.808044 0.125183\n0.752869 0.808624 0.126282\n0.777283 0.809235 0.127441\n0.800781 0.809814 0.128540\n0.823517 0.810364 0.129608\n0.845764 0.810883 0.130737\n0.867798 0.811493 0.131744\n0.889801 0.812012 0.132843\n0.912109 0.812531 0.133972\n0.935303 0.813080 0.134949\n0.959961 0.813599 0.136017\n0.062561 0.822540 0.100189\n0.079895 0.823090 0.101379\n0.098755 0.823608 0.102509\n0.119446 0.824158 0.103607\n0.142334 0.824707 0.104797\n0.167694 0.825226 0.105896\n0.195862 0.825745 0.107086\n0.226746 0.826263 0.108215\n0.260071 0.826813 0.109375\n0.295715 0.827332 0.110535\n0.333466 0.827850 0.111694\n0.372986 0.828400 0.112793\n0.413971 0.828918 0.113983\n0.456055 0.829407 0.115112\n0.498108 0.829926 0.116272\n0.538086 0.830444 0.117462\n0.575470 0.830933 0.118591\n0.610474 0.831451 0.119690\n0.642853 0.831970 0.120850\n0.673096 0.832428 0.121979\n0.701477 0.832947 0.123077\n0.728241 0.833466 0.124268\n0.753662 0.833923 0.125336\n0.777924 0.834412 0.126465\n0.801270 0.834900 0.127594\n0.823944 0.835358 0.128632\n0.846130 0.835815 0.129761\n0.868042 0.836243 0.130798\n0.889984 0.836700 0.131866\n0.912262 0.837158 0.132935\n0.935364 0.837585 0.133942\n0.959961 0.838013 0.134949\n0.064270 0.848785 0.099152\n0.081696 0.849243 0.100342\n0.100616 0.849701 0.101471\n0.121490 0.850128 0.102631\n0.144501 0.850616 0.103821\n0.170105 0.851013 0.104950\n0.198395 0.851471 0.106110\n0.229370 0.851929 0.107269\n0.262787 0.852325 0.108490\n0.298492 0.852814 0.109589\n0.336212 0.853210 0.110809\n0.375732 0.853638 0.111938\n0.416656 0.854095 0.113098\n0.458588 0.854523 0.114227\n0.500458 0.854919 0.115387\n0.540161 0.855347 0.116608\n0.577301 0.855774 0.117706\n0.612000 0.856171 0.118866\n0.644257 0.856628 0.119995\n0.674255 0.856995 0.121124\n0.702454 0.857391 0.122253\n0.729126 0.857819 0.123413\n0.754364 0.858215 0.124481\n0.778534 0.858612 0.125580\n0.801788 0.859009 0.126678\n0.824371 0.859344 0.127777\n0.846466 0.859772 0.128845\n0.868317 0.860138 0.129852\n0.890198 0.860474 0.130951\n0.912415 0.860870 0.131989\n0.935425 0.861176 0.132996\n0.959961 0.861542 0.133972\n0.066040 0.874146 0.098267\n0.083557 0.874512 0.099426\n0.102600 0.874878 0.100586\n0.123566 0.875244 0.101776\n0.146729 0.875610 0.102966\n0.172424 0.875977 0.104126\n0.200928 0.876312 0.105316\n0.231995 0.876678 0.106506\n0.265472 0.877014 0.107635\n0.301239 0.877411 0.108826\n0.339020 0.877747 0.109985\n0.378448 0.878082 0.111145\n0.419342 0.878418 0.112335\n0.461151 0.878815 0.113495\n0.502747 0.879120 0.114624\n0.542175 0.879486 0.115784\n0.579132 0.879791 0.116943\n0.613556 0.880127 0.118073\n0.645569 0.880493 0.119232\n0.675415 0.880798 0.120361\n0.703491 0.881134 0.121460\n0.729919 0.881439 0.122589\n0.755035 0.881805 0.123688\n0.779144 0.882111 0.124786\n0.802277 0.882385 0.125854\n0.824768 0.882721 0.126923\n0.846802 0.882996 0.127991\n0.868591 0.883331 0.128998\n0.890381 0.883606 0.130035\n0.912537 0.883911 0.131042\n0.935486 0.884186 0.132050\n0.959961 0.884430 0.133057\n0.067749 0.898895 0.097412\n0.085358 0.899170 0.098633\n0.104553 0.899445 0.099823\n0.125641 0.899750 0.101013\n0.148987 0.900055 0.102173\n0.174835 0.900360 0.103333\n0.203461 0.900604 0.104523\n0.234589 0.900909 0.105713\n0.268158 0.901184 0.106903\n0.304016 0.901459 0.108063\n0.341644 0.901733 0.109253\n0.381165 0.902008 0.110443\n0.421936 0.902283 0.111603\n0.463623 0.902527 0.112762\n0.505066 0.902832 0.113922\n0.544159 0.903107 0.115051\n0.580872 0.903381 0.116211\n0.615051 0.903625 0.117340\n0.646851 0.903900 0.118469\n0.676514 0.904144 0.119598\n0.704376 0.904419 0.120697\n0.730743 0.904633 0.121796\n0.755768 0.904877 0.122894\n0.779694 0.905151 0.123993\n0.802795 0.905365 0.125061\n0.825165 0.905640 0.126068\n0.847107 0.905823 0.127136\n0.868866 0.906097 0.128143\n0.890594 0.906311 0.129150\n0.912659 0.906555 0.130157\n0.935547 0.906738 0.131134\n0.959961 0.906952 0.132080\n0.069550 0.923370 0.096649\n0.087219 0.923615 0.097870\n0.106476 0.923798 0.099030\n0.127716 0.924011 0.100220\n0.151215 0.924255 0.101410\n0.177216 0.924469 0.102570\n0.205963 0.924683 0.103821\n0.237213 0.924896 0.105011\n0.270813 0.925079 0.106201\n0.306671 0.925293 0.107361\n0.344391 0.925507 0.108551\n0.383789 0.925751 0.109741\n0.424530 0.925934 0.110870\n0.466125 0.926117 0.112030\n0.507294 0.926331 0.113190\n0.546173 0.926544 0.114349\n0.582581 0.926727 0.115479\n0.616547 0.926910 0.116608\n0.648132 0.927094 0.117706\n0.677643 0.927277 0.118835\n0.705322 0.927490 0.119934\n0.731506 0.927673 0.121002\n0.756439 0.927826 0.122070\n0.780243 0.928009 0.123138\n0.803253 0.928192 0.124176\n0.825592 0.928406 0.125214\n0.847443 0.928528 0.126221\n0.869049 0.928741 0.127228\n0.890778 0.928864 0.128235\n0.912781 0.929077 0.129181\n0.935638 0.929260 0.130096\n0.959961 0.929382 0.131073\n0.071350 0.947968 0.095886\n0.089081 0.948120 0.097076\n0.108521 0.948242 0.098267\n0.129822 0.948425 0.099487\n0.153442 0.948578 0.100677\n0.179626 0.948700 0.101868\n0.208466 0.948853 0.103058\n0.239777 0.948975 0.104248\n0.273499 0.949127 0.105469\n0.309326 0.949249 0.106659\n0.347076 0.949432 0.107758\n0.386444 0.949585 0.109009\n0.427094 0.949738 0.110138\n0.468597 0.949860 0.111237\n0.509460 0.949982 0.112427\n0.548065 0.950104 0.113556\n0.584259 0.950256 0.114685\n0.617950 0.950378 0.115784\n0.649353 0.950470 0.116943\n0.678680 0.950592 0.118011\n0.706238 0.950714 0.119080\n0.732300 0.950867 0.120117\n0.757080 0.950989 0.121185\n0.780853 0.951141 0.122253\n0.803741 0.951233 0.123260\n0.825928 0.951355 0.124268\n0.847748 0.951477 0.125275\n0.869354 0.951569 0.126221\n0.890930 0.951691 0.127197\n0.912903 0.951782 0.128113\n0.935699 0.951874 0.129028\n0.959961 0.951996 0.129913\n0.073059 0.973267 0.094971\n0.090942 0.973297 0.096222\n0.110474 0.973358 0.097382\n0.131958 0.973480 0.098602\n0.155701 0.973541 0.099823\n0.181976 0.973633 0.101013\n0.210938 0.973694 0.102234\n0.242371 0.973785 0.103394\n0.276093 0.973846 0.104584\n0.312042 0.973969 0.105774\n0.349701 0.973999 0.106934\n0.389008 0.974091 0.108093\n0.429626 0.974152 0.109222\n0.470917 0.974213 0.110382\n0.511597 0.974304 0.111511\n0.549896 0.974365 0.112640\n0.585846 0.974396 0.113739\n0.619385 0.974518 0.114838\n0.650543 0.974548 0.115936\n0.679688 0.974609 0.116974\n0.707092 0.974701 0.118073\n0.733032 0.974731 0.119110\n0.757721 0.974823 0.120148\n0.781342 0.974854 0.121216\n0.804169 0.974915 0.122162\n0.826324 0.974976 0.123169\n0.848053 0.975037 0.124115\n0.869568 0.975067 0.125061\n0.891083 0.975128 0.125977\n0.913055 0.975189 0.126892\n0.935730 0.975250 0.127747\n0.959961 0.975281 0.128632\n0.074890 1.000000 0.093903\n0.092834 1.000000 0.095123\n0.112427 1.000000 0.096313\n0.134033 1.000000 0.097565\n0.157898 1.000000 0.098724\n0.184357 1.000000 0.099945\n0.213440 1.000000 0.101166\n0.244904 1.000000 0.102325\n0.278687 1.000000 0.103485\n0.314575 1.000000 0.104706\n0.352264 1.000000 0.105804\n0.391510 1.000000 0.107025\n0.432068 1.000000 0.108124\n0.473267 1.000000 0.109253\n0.513672 1.000000 0.110413\n0.551727 1.000000 0.111481\n0.587494 1.000000 0.112610\n0.620758 1.000000 0.113678\n0.651672 1.000000 0.114746\n0.680695 1.000000 0.115784\n0.707947 1.000000 0.116852\n0.733795 1.000000 0.117859\n0.758331 1.000000 0.118866\n0.781860 1.000000 0.119904\n0.804596 1.000000 0.120850\n0.826660 1.000000 0.121796\n0.848358 1.000000 0.122742\n0.869781 1.000000 0.123627\n0.891296 1.000000 0.124512\n0.913147 1.000000 0.125397\n0.935822 1.000000 0.126221\n0.959961 1.000000 0.127045\n0.031830 0.001343 0.193146\n0.047211 0.001892 0.193604\n0.063843 0.002502 0.194061\n0.081909 0.003143 0.194550\n0.101746 0.003784 0.195038\n0.123718 0.004456 0.195557\n0.148193 0.005188 0.196106\n0.175537 0.005859 0.196686\n0.205994 0.006653 0.197266\n0.239471 0.007385 0.197876\n0.275665 0.008209 0.198486\n0.314484 0.009033 0.199158\n0.355469 0.009857 0.199799\n0.398407 0.010742 0.200470\n0.442841 0.011658 0.201141\n0.487854 0.012543 0.201904\n0.531128 0.013519 0.202606\n0.571594 0.014465 0.203308\n0.609161 0.015442 0.204102\n0.643982 0.016449 0.204865\n0.676331 0.017456 0.205658\n0.706543 0.018494 0.206482\n0.735046 0.019562 0.207306\n0.762054 0.020599 0.208130\n0.787811 0.021698 0.208984\n0.812744 0.022858 0.209869\n0.836914 0.023987 0.210693\n0.860748 0.025146 0.211609\n0.884460 0.026306 0.212524\n0.908508 0.027496 0.213409\n0.933380 0.028717 0.214355\n0.959961 0.029938 0.215302\n0.032532 0.017517 0.192108\n0.048004 0.018127 0.192566\n0.064728 0.018799 0.193054\n0.082886 0.019501 0.193604\n0.102783 0.020172 0.194153\n0.124847 0.020935 0.194733\n0.149445 0.021667 0.195312\n0.176941 0.022491 0.195862\n0.207520 0.023285 0.196503\n0.241089 0.024078 0.197144\n0.277435 0.024963 0.197845\n0.316254 0.025879 0.198486\n0.357361 0.026764 0.199158\n0.400299 0.027679 0.199890\n0.444641 0.028656 0.200653\n0.489624 0.029602 0.201324\n0.532715 0.030609 0.202148\n0.572998 0.031647 0.202881\n0.610443 0.032684 0.203674\n0.645020 0.033752 0.204498\n0.677216 0.034821 0.205261\n0.707367 0.035919 0.206116\n0.735748 0.037048 0.206970\n0.762665 0.038208 0.207794\n0.788391 0.039368 0.208679\n0.813171 0.040558 0.209564\n0.837311 0.041748 0.210480\n0.860992 0.042999 0.211365\n0.884705 0.044250 0.212341\n0.908661 0.045471 0.213257\n0.933441 0.046783 0.214172\n0.959961 0.048035 0.215118\n0.033295 0.034607 0.191010\n0.048859 0.035278 0.191528\n0.065613 0.036011 0.192078\n0.083832 0.036804 0.192627\n0.103912 0.037567 0.193176\n0.126068 0.038361 0.193817\n0.150787 0.039154 0.194397\n0.178436 0.040039 0.195068\n0.209137 0.040924 0.195740\n0.242828 0.041809 0.196381\n0.279236 0.042786 0.197083\n0.318115 0.043732 0.197815\n0.359253 0.044708 0.198486\n0.402191 0.045715 0.199188\n0.446594 0.046753 0.200012\n0.491394 0.047791 0.200745\n0.534363 0.048889 0.201538\n0.574402 0.049988 0.202301\n0.611694 0.051086 0.203125\n0.646179 0.052246 0.204010\n0.678223 0.053406 0.204773\n0.708191 0.054596 0.205688\n0.736450 0.055817 0.206512\n0.763275 0.057037 0.207367\n0.788879 0.058289 0.208282\n0.813599 0.059570 0.209167\n0.837646 0.060883 0.210114\n0.861328 0.062164 0.211060\n0.884918 0.063507 0.211945\n0.908844 0.064850 0.212891\n0.933533 0.066223 0.213837\n0.959961 0.067627 0.214783\n0.034149 0.052948 0.189880\n0.049744 0.053711 0.190399\n0.066589 0.054535 0.190979\n0.084930 0.055359 0.191589\n0.105072 0.056244 0.192200\n0.127350 0.057159 0.192810\n0.152191 0.058044 0.193481\n0.179993 0.058990 0.194122\n0.210846 0.059967 0.194824\n0.244629 0.060944 0.195496\n0.281158 0.061981 0.196228\n0.320129 0.063019 0.196960\n0.361267 0.064117 0.197693\n0.404236 0.065216 0.198425\n0.448547 0.066315 0.199219\n0.493286 0.067474 0.200012\n0.536041 0.068665 0.200836\n0.575867 0.069855 0.201660\n0.612976 0.071045 0.202454\n0.647278 0.072327 0.203339\n0.679199 0.073578 0.204163\n0.709045 0.074890 0.205048\n0.737183 0.076202 0.205933\n0.763916 0.077515 0.206818\n0.789429 0.078888 0.207733\n0.814056 0.080261 0.208649\n0.838074 0.081696 0.209534\n0.861603 0.083099 0.210480\n0.885132 0.084503 0.211395\n0.908966 0.085999 0.212372\n0.933624 0.087494 0.213348\n0.959961 0.088959 0.214294\n0.035034 0.072937 0.188568\n0.050751 0.073792 0.189178\n0.067657 0.074707 0.189758\n0.086060 0.075653 0.190369\n0.106293 0.076599 0.191040\n0.128754 0.077606 0.191711\n0.153717 0.078613 0.192352\n0.181641 0.079681 0.193054\n0.212616 0.080750 0.193756\n0.246521 0.081879 0.194458\n0.283112 0.082977 0.195221\n0.322174 0.084167 0.195984\n0.363312 0.085297 0.196747\n0.406311 0.086548 0.197510\n0.450623 0.087799 0.198242\n0.495209 0.089050 0.199097\n0.537750 0.090363 0.199890\n0.577423 0.091644 0.200745\n0.614288 0.092987 0.201599\n0.648468 0.094391 0.202484\n0.680176 0.095734 0.203369\n0.709930 0.097168 0.204224\n0.737946 0.098633 0.205109\n0.764526 0.100037 0.206024\n0.789978 0.101562 0.206940\n0.814514 0.103027 0.207886\n0.838409 0.104553 0.208801\n0.861938 0.106140 0.209747\n0.885376 0.107727 0.210663\n0.909119 0.109314 0.211670\n0.933685 0.110931 0.212646\n0.959961 0.112518 0.213562\n0.036011 0.094940 0.187134\n0.051758 0.095947 0.187714\n0.068756 0.096954 0.188385\n0.087280 0.097992 0.189026\n0.107635 0.099091 0.189667\n0.130157 0.100189 0.190369\n0.155304 0.101379 0.191071\n0.183350 0.102539 0.191772\n0.214539 0.103760 0.192474\n0.248474 0.104950 0.193237\n0.285187 0.106201 0.194000\n0.324280 0.107544 0.194763\n0.365479 0.108856 0.195496\n0.408478 0.110199 0.196320\n0.452789 0.111511 0.197144\n0.497253 0.112946 0.197968\n0.539520 0.114380 0.198822\n0.579010 0.115845 0.199615\n0.615692 0.117310 0.200531\n0.649628 0.118835 0.201385\n0.681213 0.120361 0.202271\n0.710815 0.121918 0.203186\n0.738708 0.123535 0.204071\n0.765167 0.125092 0.204987\n0.790558 0.126740 0.205933\n0.814972 0.128387 0.206848\n0.838776 0.130066 0.207733\n0.862274 0.131805 0.208679\n0.885620 0.133484 0.209625\n0.909271 0.135223 0.210571\n0.933746 0.137024 0.211578\n0.959961 0.138794 0.212494\n0.036987 0.119476 0.185394\n0.052856 0.120636 0.186066\n0.069916 0.121765 0.186707\n0.088531 0.122955 0.187378\n0.108978 0.124207 0.188049\n0.131683 0.125488 0.188782\n0.156952 0.126709 0.189484\n0.185181 0.128052 0.190216\n0.216431 0.129425 0.190948\n0.250549 0.130768 0.191681\n0.287323 0.132172 0.192444\n0.326477 0.133606 0.193237\n0.367737 0.135101 0.194061\n0.410736 0.136627 0.194885\n0.454956 0.138092 0.195679\n0.499237 0.139679 0.196503\n0.541351 0.141296 0.197357\n0.580597 0.142853 0.198212\n0.617065 0.144501 0.199097\n0.650848 0.146210 0.200012\n0.682281 0.147858 0.200867\n0.711700 0.149597 0.201721\n0.739471 0.151306 0.202667\n0.765839 0.153107 0.203583\n0.791107 0.154968 0.204468\n0.815460 0.156708 0.205383\n0.839172 0.158630 0.206360\n0.862549 0.160522 0.207306\n0.885834 0.162354 0.208221\n0.909454 0.164307 0.209167\n0.933868 0.166290 0.210114\n0.959961 0.168213 0.211090\n0.038086 0.147064 0.183380\n0.053986 0.148376 0.184052\n0.071167 0.149689 0.184692\n0.089813 0.151001 0.185425\n0.110474 0.152435 0.186096\n0.133240 0.153839 0.186829\n0.158630 0.155273 0.187561\n0.187042 0.156738 0.188324\n0.218475 0.158295 0.189026\n0.252686 0.159821 0.189819\n0.289551 0.161407 0.190613\n0.328766 0.162994 0.191376\n0.369965 0.164642 0.192200\n0.412994 0.166321 0.193024\n0.457184 0.168030 0.193848\n0.501373 0.169769 0.194702\n0.543213 0.171539 0.195557\n0.582214 0.173279 0.196411\n0.618469 0.175140 0.197296\n0.652069 0.177002 0.198151\n0.683319 0.178864 0.199036\n0.712616 0.180786 0.199951\n0.740265 0.182678 0.200836\n0.766541 0.184631 0.201721\n0.791687 0.186707 0.202667\n0.815918 0.188660 0.203552\n0.839569 0.190704 0.204498\n0.862854 0.192780 0.205444\n0.886047 0.194824 0.206360\n0.909607 0.196930 0.207367\n0.933990 0.199066 0.208313\n0.959961 0.201202 0.209229\n0.039185 0.178314 0.180939\n0.055206 0.179749 0.181641\n0.072449 0.181274 0.182312\n0.091248 0.182739 0.183044\n0.111969 0.184326 0.183777\n0.134949 0.185913 0.184479\n0.160492 0.187561 0.185242\n0.189026 0.189209 0.185974\n0.220551 0.190857 0.186737\n0.254883 0.192627 0.187500\n0.291809 0.194397 0.188354\n0.331085 0.196136 0.189117\n0.372375 0.197998 0.189911\n0.415314 0.199829 0.190796\n0.459473 0.201721 0.191589\n0.503448 0.203644 0.192413\n0.545074 0.205627 0.193298\n0.583801 0.207520 0.194153\n0.619934 0.209564 0.195007\n0.653290 0.211609 0.195892\n0.684418 0.213593 0.196747\n0.713562 0.215668 0.197662\n0.741028 0.217804 0.198547\n0.767212 0.219879 0.199493\n0.792236 0.222046 0.200409\n0.816437 0.224152 0.201294\n0.839966 0.226410 0.202240\n0.863159 0.228607 0.203217\n0.886322 0.230774 0.204102\n0.909760 0.233063 0.205048\n0.934021 0.235260 0.205994\n0.959961 0.237579 0.206940\n0.040405 0.213440 0.178131\n0.056427 0.215118 0.178772\n0.073792 0.216766 0.179504\n0.092651 0.218445 0.180176\n0.113525 0.220154 0.180969\n0.136597 0.221924 0.181702\n0.162323 0.223694 0.182434\n0.191040 0.225525 0.183228\n0.222687 0.227325 0.184021\n0.257172 0.229248 0.184784\n0.294189 0.231171 0.185577\n0.333466 0.233093 0.186401\n0.374786 0.235107 0.187256\n0.417725 0.237091 0.188049\n0.461731 0.239105 0.188873\n0.505554 0.241211 0.189728\n0.546936 0.243286 0.190613\n0.585480 0.245361 0.191467\n0.621368 0.247528 0.192322\n0.654510 0.249634 0.193237\n0.685486 0.251831 0.194092\n0.714478 0.254028 0.195038\n0.741852 0.256256 0.195892\n0.767883 0.258545 0.196838\n0.792816 0.260803 0.197754\n0.816925 0.263062 0.198639\n0.840363 0.265411 0.199554\n0.863495 0.267731 0.200562\n0.886536 0.269989 0.201447\n0.909912 0.272400 0.202393\n0.934113 0.274689 0.203339\n0.959961 0.277069 0.204285\n0.041626 0.252380 0.174866\n0.057739 0.254150 0.175537\n0.075165 0.255951 0.176300\n0.094147 0.257782 0.177002\n0.115143 0.259644 0.177734\n0.138367 0.261505 0.178497\n0.164276 0.263458 0.179291\n0.193176 0.265442 0.180084\n0.224915 0.267365 0.180817\n0.259460 0.269379 0.181702\n0.296600 0.271454 0.182495\n0.335907 0.273499 0.183289\n0.377228 0.275604 0.184143\n0.420166 0.277740 0.184967\n0.464081 0.279846 0.185822\n0.507751 0.282074 0.186676\n0.548859 0.284271 0.187531\n0.587189 0.286438 0.188416\n0.622833 0.288727 0.189270\n0.655823 0.290924 0.190155\n0.686584 0.293274 0.191071\n0.715393 0.295563 0.191986\n0.742645 0.297821 0.192871\n0.768616 0.300201 0.193787\n0.793457 0.302582 0.194702\n0.817383 0.304901 0.195618\n0.840790 0.307312 0.196533\n0.863831 0.309723 0.197510\n0.886780 0.312042 0.198425\n0.910126 0.314514 0.199371\n0.934174 0.316895 0.200317\n0.959961 0.319336 0.201263\n0.042877 0.294708 0.171234\n0.059082 0.296661 0.171906\n0.076599 0.298553 0.172668\n0.095734 0.300446 0.173401\n0.116821 0.302429 0.174164\n0.140167 0.304413 0.174957\n0.166229 0.306458 0.175751\n0.195251 0.308533 0.176575\n0.227203 0.310608 0.177338\n0.261871 0.312714 0.178162\n0.299042 0.314819 0.178986\n0.338409 0.316986 0.179810\n0.379791 0.319183 0.180695\n0.422607 0.321381 0.181519\n0.466492 0.323578 0.182404\n0.509949 0.325836 0.183258\n0.550781 0.328094 0.184113\n0.588867 0.330414 0.184998\n0.624298 0.332764 0.185913\n0.657074 0.335052 0.186798\n0.687653 0.337402 0.187714\n0.716370 0.339783 0.188629\n0.743500 0.342072 0.189545\n0.769287 0.344513 0.190460\n0.794006 0.346924 0.191345\n0.817871 0.349243 0.192352\n0.841156 0.351746 0.193268\n0.864136 0.354095 0.194153\n0.887054 0.356567 0.195099\n0.910278 0.359070 0.196075\n0.934296 0.361481 0.197021\n0.959961 0.363892 0.197968\n0.044250 0.340118 0.167206\n0.060455 0.342072 0.167999\n0.078094 0.344055 0.168732\n0.097351 0.346039 0.169495\n0.118591 0.348114 0.170288\n0.142059 0.350128 0.171082\n0.168304 0.352234 0.171906\n0.197510 0.354401 0.172699\n0.229523 0.356506 0.173523\n0.264282 0.358704 0.174377\n0.301544 0.360901 0.175232\n0.340973 0.363068 0.176056\n0.382294 0.365326 0.176910\n0.425110 0.367523 0.177795\n0.468903 0.369781 0.178680\n0.512115 0.372162 0.179535\n0.552734 0.374390 0.180420\n0.590576 0.376770 0.181335\n0.625763 0.379089 0.182281\n0.658325 0.381409 0.183136\n0.688751 0.383820 0.184082\n0.717346 0.386230 0.184998\n0.744293 0.388550 0.185913\n0.769989 0.390961 0.186890\n0.794586 0.393402 0.187836\n0.818390 0.395752 0.188721\n0.841583 0.398193 0.189667\n0.864471 0.400574 0.190613\n0.887268 0.403015 0.191589\n0.910461 0.405487 0.192535\n0.934387 0.407806 0.193451\n0.959961 0.410278 0.194427\n0.045593 0.388000 0.162994\n0.061951 0.390045 0.163757\n0.079620 0.391998 0.164551\n0.098999 0.394073 0.165344\n0.120361 0.396179 0.166199\n0.143982 0.398224 0.166992\n0.170380 0.400391 0.167816\n0.199738 0.402557 0.168671\n0.231903 0.404694 0.169464\n0.266785 0.406860 0.170319\n0.304077 0.409119 0.171204\n0.343536 0.411285 0.172058\n0.384827 0.413513 0.172974\n0.427673 0.415802 0.173828\n0.471375 0.418030 0.174713\n0.514313 0.420319 0.175629\n0.554657 0.422607 0.176514\n0.592285 0.424957 0.177460\n0.627228 0.427307 0.178406\n0.659607 0.429596 0.179321\n0.689880 0.432007 0.180237\n0.718262 0.434357 0.181183\n0.745087 0.436615 0.182159\n0.770691 0.439026 0.183105\n0.795166 0.441345 0.184021\n0.818878 0.443756 0.184998\n0.841980 0.446136 0.185913\n0.864807 0.448486 0.186890\n0.887512 0.450867 0.187836\n0.910583 0.453247 0.188843\n0.934479 0.455597 0.189758\n0.959961 0.457947 0.190704\n0.046967 0.437775 0.158569\n0.063416 0.439819 0.159393\n0.081238 0.441833 0.160187\n0.100708 0.443909 0.161041\n0.122223 0.446014 0.161865\n0.145996 0.448059 0.162689\n0.172546 0.450165 0.163513\n0.202087 0.452362 0.164398\n0.234375 0.454468 0.165283\n0.269318 0.456635 0.166168\n0.306671 0.458801 0.166992\n0.346191 0.461060 0.167938\n0.387512 0.463257 0.168823\n0.430206 0.465454 0.169708\n0.473846 0.467651 0.170685\n0.516571 0.469940 0.171600\n0.556610 0.472076 0.172516\n0.593994 0.474396 0.173431\n0.628723 0.476654 0.174377\n0.660919 0.478912 0.175354\n0.691010 0.481171 0.176331\n0.719208 0.483490 0.177246\n0.745941 0.485748 0.178192\n0.771393 0.488007 0.179199\n0.795746 0.490234 0.180145\n0.819366 0.492523 0.181152\n0.842407 0.494781 0.182098\n0.865082 0.496979 0.183075\n0.887787 0.499237 0.184052\n0.910736 0.501526 0.185059\n0.934540 0.503754 0.186035\n0.959961 0.505981 0.186981\n0.048431 0.488800 0.154053\n0.064972 0.490784 0.154907\n0.082855 0.492706 0.155701\n0.102448 0.494751 0.156555\n0.124084 0.496765 0.157471\n0.148041 0.498749 0.158325\n0.174774 0.500854 0.159210\n0.204468 0.502869 0.160126\n0.236847 0.504913 0.160980\n0.271851 0.506989 0.161926\n0.309326 0.509003 0.162842\n0.348816 0.511139 0.163757\n0.390106 0.513214 0.164734\n0.432831 0.515228 0.165649\n0.476318 0.517303 0.166595\n0.518829 0.519440 0.167572\n0.558624 0.521484 0.168549\n0.595703 0.523529 0.169556\n0.630219 0.525635 0.170532\n0.662201 0.527649 0.171448\n0.692078 0.529724 0.172424\n0.720184 0.531738 0.173462\n0.746735 0.533813 0.174469\n0.772034 0.535858 0.175476\n0.796356 0.537872 0.176453\n0.819855 0.539886 0.177460\n0.842804 0.541931 0.178497\n0.865387 0.543915 0.179504\n0.888000 0.545868 0.180481\n0.910919 0.547882 0.181519\n0.934662 0.549805 0.182465\n0.959961 0.551758 0.183533\n0.049927 0.538727 0.149689\n0.066498 0.540527 0.150604\n0.084503 0.542297 0.151489\n0.104279 0.544098 0.152374\n0.126007 0.545898 0.153351\n0.150116 0.547668 0.154236\n0.177032 0.549530 0.155151\n0.206848 0.551361 0.156097\n0.239380 0.553162 0.157074\n0.274536 0.554962 0.158051\n0.311951 0.556763 0.158997\n0.351501 0.558594 0.160004\n0.392792 0.560455 0.160980\n0.435455 0.562286 0.161957\n0.478821 0.564087 0.162964\n0.520996 0.565948 0.164001\n0.560547 0.567749 0.164978\n0.597443 0.569550 0.165985\n0.631683 0.571411 0.166992\n0.663422 0.573212 0.168030\n0.693207 0.575012 0.169098\n0.721100 0.576813 0.170105\n0.747559 0.578522 0.171143\n0.772766 0.580383 0.172180\n0.796936 0.582092 0.173187\n0.820312 0.583893 0.174255\n0.843201 0.585632 0.175323\n0.865723 0.587372 0.176331\n0.888245 0.589081 0.177368\n0.911072 0.590759 0.178436\n0.934723 0.592499 0.179443\n0.959961 0.594147 0.180481\n0.051483 0.585022 0.145905\n0.068115 0.586609 0.146820\n0.086212 0.588165 0.147766\n0.106110 0.589783 0.148743\n0.127991 0.591309 0.149719\n0.152283 0.592926 0.150696\n0.179321 0.594513 0.151672\n0.209320 0.596100 0.152679\n0.241943 0.597687 0.153625\n0.277191 0.599335 0.154663\n0.314667 0.600861 0.155701\n0.354279 0.602478 0.156708\n0.395477 0.604065 0.157745\n0.438080 0.605682 0.158752\n0.481354 0.607239 0.159821\n0.523254 0.608856 0.160858\n0.562531 0.610413 0.161926\n0.599121 0.612030 0.162933\n0.633179 0.613617 0.164001\n0.664734 0.615173 0.165070\n0.694305 0.616730 0.166138\n0.722046 0.618286 0.167175\n0.748383 0.619781 0.168274\n0.773438 0.621338 0.169373\n0.797516 0.622833 0.170410\n0.820801 0.624390 0.171478\n0.843597 0.625916 0.172546\n0.866028 0.627380 0.173645\n0.888519 0.628845 0.174713\n0.911224 0.630310 0.175751\n0.934845 0.631775 0.176788\n0.959961 0.633209 0.177856\n0.053040 0.627655 0.142609\n0.069763 0.628998 0.143616\n0.087982 0.630341 0.144623\n0.107941 0.631775 0.145599\n0.129974 0.633118 0.146606\n0.154449 0.634491 0.147614\n0.181702 0.635895 0.148651\n0.211761 0.637238 0.149658\n0.244537 0.638611 0.150757\n0.279846 0.640015 0.151764\n0.317413 0.641357 0.152863\n0.356964 0.642761 0.153900\n0.398193 0.644165 0.154968\n0.440735 0.645538 0.156036\n0.483826 0.646881 0.157135\n0.525452 0.648285 0.158203\n0.564484 0.649628 0.159271\n0.600861 0.650970 0.160370\n0.634644 0.652344 0.161499\n0.666016 0.653656 0.162537\n0.695404 0.654968 0.163666\n0.722992 0.656311 0.164764\n0.749176 0.657623 0.165833\n0.774078 0.658936 0.166962\n0.798065 0.660278 0.168030\n0.821289 0.661530 0.169159\n0.843994 0.662842 0.170227\n0.866333 0.664093 0.171295\n0.888733 0.665344 0.172424\n0.911407 0.666626 0.173492\n0.934937 0.667847 0.174561\n0.959961 0.669037 0.175659\n0.054596 0.666626 0.139862\n0.071442 0.667847 0.140930\n0.089722 0.668976 0.141907\n0.109863 0.670166 0.142975\n0.132080 0.671387 0.144012\n0.156647 0.672546 0.145050\n0.184021 0.673737 0.146149\n0.214264 0.674896 0.147217\n0.247162 0.676086 0.148315\n0.282562 0.677307 0.149384\n0.320129 0.678436 0.150482\n0.359711 0.679657 0.151550\n0.400970 0.680847 0.152679\n0.443390 0.681976 0.153809\n0.486328 0.683167 0.154877\n0.527679 0.684357 0.156036\n0.566437 0.685486 0.157135\n0.602539 0.686676 0.158264\n0.636108 0.687805 0.159363\n0.667267 0.688934 0.160492\n0.696442 0.690094 0.161591\n0.723938 0.691223 0.162689\n0.749939 0.692352 0.163818\n0.774811 0.693481 0.164978\n0.798645 0.694580 0.166046\n0.821747 0.695679 0.167175\n0.844360 0.696777 0.168335\n0.866669 0.697876 0.169403\n0.888947 0.698944 0.170471\n0.911560 0.699982 0.171570\n0.934998 0.701050 0.172699\n0.959961 0.702087 0.173767\n0.056152 0.702423 0.137543\n0.073151 0.703461 0.138611\n0.091583 0.704468 0.139648\n0.111786 0.705475 0.140747\n0.134094 0.706482 0.141815\n0.158875 0.707520 0.142944\n0.186493 0.708527 0.144073\n0.216827 0.709534 0.145111\n0.249817 0.710541 0.146271\n0.285309 0.711548 0.147400\n0.322937 0.712585 0.148499\n0.362457 0.713593 0.149658\n0.403656 0.714600 0.150757\n0.446014 0.715607 0.151886\n0.488831 0.716614 0.153046\n0.529846 0.717590 0.154175\n0.568329 0.718597 0.155304\n0.604218 0.719604 0.156464\n0.637512 0.720551 0.157593\n0.668518 0.721527 0.158691\n0.697540 0.722504 0.159882\n0.724823 0.723480 0.161011\n0.750732 0.724457 0.162140\n0.775452 0.725403 0.163300\n0.799225 0.726349 0.164429\n0.822235 0.727264 0.165558\n0.844727 0.728210 0.166687\n0.866974 0.729126 0.167755\n0.889130 0.730072 0.168884\n0.911743 0.730927 0.169952\n0.935089 0.731812 0.171051\n0.959961 0.732758 0.172119\n0.057831 0.735535 0.135620\n0.074890 0.736389 0.136719\n0.093414 0.737244 0.137787\n0.113770 0.738098 0.138947\n0.136200 0.738983 0.140045\n0.161194 0.739868 0.141144\n0.188904 0.740723 0.142303\n0.219391 0.741608 0.143463\n0.252502 0.742493 0.144562\n0.287994 0.743378 0.145721\n0.325653 0.744232 0.146881\n0.365295 0.745056 0.148041\n0.406433 0.745972 0.149200\n0.448669 0.746796 0.150330\n0.491333 0.747650 0.151489\n0.532013 0.748505 0.152649\n0.570282 0.749359 0.153809\n0.605865 0.750244 0.154968\n0.638947 0.751038 0.156128\n0.669739 0.751862 0.157257\n0.698608 0.752716 0.158447\n0.725739 0.753510 0.159546\n0.751556 0.754333 0.160767\n0.776123 0.755127 0.161896\n0.799744 0.755920 0.163025\n0.822693 0.756744 0.164124\n0.845093 0.757538 0.165253\n0.867279 0.758301 0.166382\n0.889374 0.759064 0.167480\n0.911865 0.759827 0.168579\n0.935181 0.760559 0.169678\n0.959961 0.761353 0.170776\n0.059509 0.766388 0.133942\n0.076630 0.767090 0.135132\n0.095276 0.767853 0.136261\n0.115784 0.768585 0.137421\n0.138367 0.769318 0.138519\n0.163452 0.770081 0.139740\n0.191406 0.770844 0.140839\n0.221985 0.771545 0.141998\n0.255219 0.772308 0.143219\n0.290771 0.773071 0.144379\n0.328430 0.773773 0.145538\n0.368011 0.774536 0.146698\n0.409058 0.775238 0.147888\n0.451294 0.775970 0.149048\n0.493744 0.776733 0.150238\n0.534210 0.777435 0.151367\n0.572144 0.778137 0.152557\n0.607544 0.778870 0.153717\n0.640350 0.779572 0.154907\n0.670959 0.780273 0.156036\n0.699646 0.780975 0.157257\n0.726654 0.781677 0.158356\n0.752289 0.782349 0.159515\n0.776764 0.783081 0.160675\n0.800293 0.783722 0.161835\n0.823120 0.784393 0.162964\n0.845459 0.785065 0.164093\n0.867554 0.785706 0.165192\n0.889618 0.786346 0.166321\n0.912048 0.786987 0.167419\n0.935211 0.787659 0.168488\n0.959961 0.788269 0.169556\n0.061188 0.795319 0.132660\n0.078430 0.795959 0.133759\n0.097168 0.796600 0.134949\n0.117798 0.797211 0.136169\n0.140533 0.797821 0.137299\n0.165771 0.798492 0.138489\n0.193878 0.799133 0.139709\n0.224609 0.799744 0.140808\n0.257904 0.800354 0.142059\n0.293518 0.801025 0.143219\n0.331207 0.801636 0.144409\n0.370789 0.802216 0.145630\n0.411804 0.802856 0.146790\n0.453949 0.803467 0.147949\n0.496185 0.804077 0.149170\n0.536316 0.804718 0.150299\n0.574005 0.805298 0.151520\n0.609161 0.805939 0.152679\n0.641785 0.806488 0.153900\n0.672119 0.807129 0.155029\n0.700653 0.807709 0.156189\n0.727539 0.808289 0.157349\n0.753021 0.808868 0.158478\n0.777405 0.809418 0.159668\n0.800842 0.809998 0.160828\n0.823578 0.810547 0.161926\n0.845856 0.811096 0.163025\n0.867828 0.811676 0.164154\n0.889862 0.812195 0.165253\n0.912140 0.812714 0.166351\n0.935303 0.813263 0.167419\n0.959961 0.813812 0.168488\n0.062897 0.822723 0.131531\n0.080200 0.823303 0.132721\n0.099121 0.823792 0.133911\n0.119843 0.824341 0.135101\n0.142700 0.824890 0.136261\n0.168182 0.825409 0.137451\n0.196411 0.825928 0.138702\n0.227203 0.826477 0.139832\n0.260590 0.826996 0.141052\n0.296234 0.827515 0.142273\n0.333984 0.828094 0.143494\n0.373505 0.828583 0.144684\n0.414490 0.829102 0.145844\n0.456451 0.829590 0.147064\n0.498566 0.830139 0.148254\n0.538452 0.830627 0.149445\n0.575836 0.831146 0.150665\n0.610718 0.831665 0.151825\n0.643127 0.832153 0.152954\n0.673340 0.832611 0.154144\n0.701660 0.833130 0.155334\n0.728394 0.833649 0.156464\n0.753784 0.834106 0.157623\n0.778015 0.834564 0.158752\n0.801392 0.835052 0.159882\n0.824036 0.835510 0.161011\n0.846191 0.835968 0.162109\n0.868103 0.836395 0.163208\n0.890045 0.836884 0.164307\n0.912292 0.837311 0.165375\n0.935394 0.837738 0.166473\n0.959961 0.838165 0.167542\n0.064667 0.848969 0.130585\n0.082001 0.849426 0.131775\n0.101013 0.849854 0.132996\n0.121887 0.850281 0.134186\n0.144928 0.850739 0.135376\n0.170532 0.851196 0.136597\n0.198883 0.851593 0.137848\n0.229828 0.852081 0.139069\n0.263275 0.852509 0.140259\n0.298981 0.852966 0.141449\n0.336761 0.853394 0.142670\n0.376282 0.853790 0.143860\n0.417145 0.854248 0.145081\n0.459106 0.854675 0.146301\n0.500854 0.855072 0.147522\n0.540527 0.855530 0.148682\n0.577667 0.855927 0.149811\n0.612335 0.856384 0.151031\n0.644470 0.856750 0.152222\n0.674500 0.857147 0.153381\n0.702637 0.857574 0.154541\n0.729218 0.857941 0.155701\n0.754486 0.858368 0.156860\n0.778625 0.858734 0.157928\n0.801910 0.859131 0.159058\n0.824463 0.859497 0.160187\n0.846527 0.859894 0.161285\n0.868378 0.860260 0.162384\n0.890259 0.860626 0.163422\n0.912415 0.860992 0.164551\n0.935455 0.861359 0.165558\n0.959961 0.861664 0.166534\n0.066345 0.874298 0.129791\n0.083832 0.874664 0.130951\n0.102966 0.875000 0.132202\n0.123993 0.875366 0.133392\n0.147156 0.875763 0.134644\n0.172913 0.876099 0.135864\n0.201385 0.876465 0.137115\n0.232452 0.876801 0.138306\n0.265961 0.877136 0.139557\n0.301727 0.877533 0.140717\n0.339447 0.877838 0.141998\n0.378906 0.878235 0.143188\n0.419769 0.878540 0.144379\n0.461639 0.878906 0.145599\n0.503174 0.879242 0.146790\n0.542542 0.879608 0.147919\n0.579468 0.879913 0.149170\n0.613861 0.880280 0.150360\n0.645782 0.880585 0.151520\n0.675629 0.880920 0.152679\n0.703613 0.881256 0.153809\n0.730042 0.881561 0.154968\n0.755188 0.881897 0.156097\n0.779236 0.882202 0.157196\n0.802368 0.882538 0.158325\n0.824860 0.882812 0.159424\n0.846863 0.883148 0.160461\n0.868622 0.883423 0.161560\n0.890472 0.883728 0.162598\n0.912567 0.884003 0.163635\n0.935486 0.884277 0.164673\n0.959961 0.884583 0.165649\n0.068115 0.898987 0.129059\n0.085693 0.899292 0.130310\n0.104950 0.899536 0.131500\n0.126068 0.899872 0.132751\n0.149384 0.900146 0.134003\n0.175293 0.900452 0.135254\n0.203888 0.900726 0.136475\n0.235077 0.901001 0.137665\n0.268707 0.901276 0.138885\n0.304443 0.901550 0.140106\n0.342194 0.901825 0.141327\n0.381622 0.902130 0.142578\n0.422424 0.902374 0.143707\n0.464142 0.902649 0.144897\n0.505463 0.902924 0.146179\n0.544525 0.903198 0.147339\n0.581207 0.903473 0.148529\n0.615326 0.903717 0.149628\n0.647095 0.903992 0.150818\n0.676697 0.904236 0.151978\n0.704559 0.904510 0.153076\n0.730896 0.904724 0.154236\n0.755920 0.905029 0.155365\n0.779816 0.905212 0.156464\n0.802856 0.905487 0.157532\n0.825226 0.905701 0.158630\n0.847198 0.905914 0.159668\n0.868866 0.906158 0.160706\n0.890625 0.906372 0.161743\n0.912689 0.906616 0.162750\n0.935577 0.906830 0.163788\n0.959961 0.907043 0.164734\n0.069885 0.923431 0.128357\n0.087524 0.923676 0.129608\n0.106873 0.923889 0.130890\n0.128174 0.924072 0.132111\n0.151611 0.924316 0.133362\n0.177673 0.924530 0.134552\n0.206421 0.924744 0.135773\n0.237671 0.924957 0.137054\n0.271301 0.925140 0.138275\n0.307159 0.925354 0.139465\n0.344910 0.925568 0.140686\n0.384308 0.925812 0.141876\n0.425018 0.925995 0.143097\n0.466614 0.926178 0.144287\n0.507721 0.926392 0.145477\n0.546478 0.926605 0.146637\n0.582886 0.926819 0.147797\n0.616791 0.926971 0.148956\n0.648346 0.927155 0.150116\n0.677856 0.927399 0.151245\n0.705505 0.927551 0.152405\n0.731659 0.927734 0.153503\n0.756561 0.927917 0.154602\n0.780365 0.928101 0.155701\n0.803375 0.928253 0.156738\n0.825684 0.928436 0.157806\n0.847504 0.928619 0.158844\n0.869110 0.928772 0.159882\n0.890808 0.928955 0.160828\n0.912811 0.929108 0.161804\n0.935638 0.929291 0.162842\n0.959961 0.929443 0.163727\n0.071655 0.948029 0.127686\n0.089417 0.948181 0.128937\n0.108887 0.948334 0.130219\n0.130219 0.948456 0.131378\n0.153870 0.948608 0.132690\n0.180084 0.948761 0.133911\n0.208893 0.948883 0.135162\n0.240295 0.949005 0.136383\n0.274017 0.949188 0.137543\n0.309814 0.949341 0.138794\n0.347565 0.949524 0.140015\n0.386932 0.949646 0.141205\n0.427551 0.949768 0.142426\n0.469025 0.949890 0.143585\n0.509888 0.950043 0.144775\n0.548401 0.950165 0.145935\n0.584534 0.950287 0.147125\n0.618225 0.950409 0.148224\n0.649567 0.950531 0.149414\n0.678864 0.950653 0.150482\n0.706390 0.950806 0.151550\n0.732422 0.950897 0.152710\n0.757202 0.951019 0.153778\n0.780945 0.951141 0.154816\n0.803772 0.951294 0.155884\n0.826019 0.951385 0.156860\n0.847839 0.951508 0.157898\n0.869385 0.951599 0.158875\n0.890961 0.951721 0.159851\n0.912933 0.951813 0.160828\n0.935699 0.951935 0.161774\n0.959961 0.952026 0.162628\n0.073425 0.973267 0.126923\n0.091309 0.973328 0.128174\n0.110840 0.973419 0.129395\n0.132324 0.973480 0.130646\n0.156128 0.973572 0.131866\n0.182434 0.973663 0.133148\n0.211395 0.973724 0.134338\n0.242859 0.973846 0.135529\n0.276642 0.973877 0.136810\n0.312469 0.973969 0.138000\n0.350189 0.974030 0.139252\n0.389557 0.974121 0.140411\n0.430084 0.974182 0.141602\n0.471375 0.974243 0.142792\n0.511963 0.974304 0.143890\n0.550293 0.974396 0.145081\n0.586182 0.974426 0.146240\n0.619629 0.974518 0.147339\n0.650757 0.974579 0.148438\n0.679901 0.974609 0.149567\n0.707245 0.974701 0.150635\n0.733154 0.974762 0.151672\n0.757843 0.974854 0.152771\n0.781464 0.974884 0.153809\n0.804230 0.974976 0.154846\n0.826416 0.975006 0.155792\n0.848083 0.975067 0.156769\n0.869598 0.975098 0.157776\n0.891113 0.975189 0.158691\n0.913055 0.975220 0.159607\n0.935730 0.975281 0.160492\n0.959961 0.975311 0.161377\n0.075165 1.000000 0.125916\n0.093170 1.000000 0.127167\n0.112823 1.000000 0.128418\n0.134399 1.000000 0.129639\n0.158356 1.000000 0.130890\n0.184784 1.000000 0.132111\n0.213867 1.000000 0.133331\n0.245422 1.000000 0.134552\n0.279205 1.000000 0.135834\n0.315033 1.000000 0.136963\n0.352783 1.000000 0.138184\n0.391998 1.000000 0.139343\n0.432495 1.000000 0.140533\n0.473724 1.000000 0.141724\n0.514038 1.000000 0.142883\n0.552063 1.000000 0.144012\n0.587738 1.000000 0.145111\n0.620941 1.000000 0.146240\n0.651917 1.000000 0.147308\n0.680847 1.000000 0.148407\n0.708069 1.000000 0.149475\n0.733917 1.000000 0.150513\n0.758423 1.000000 0.151520\n0.781921 1.000000 0.152527\n0.804657 1.000000 0.153534\n0.826721 1.000000 0.154480\n0.848389 1.000000 0.155426\n0.869812 1.000000 0.156342\n0.891327 1.000000 0.157257\n0.913147 1.000000 0.158142\n0.935822 1.000000 0.158997\n0.959961 1.000000 0.159790\n0.031921 0.001556 0.224823\n0.047394 0.002106 0.225372\n0.064026 0.002747 0.225861\n0.082123 0.003357 0.226379\n0.101929 0.004028 0.226929\n0.123932 0.004700 0.227478\n0.148407 0.005432 0.228088\n0.175812 0.006134 0.228668\n0.206268 0.006927 0.229279\n0.239777 0.007721 0.229919\n0.275970 0.008545 0.230621\n0.314758 0.009338 0.231293\n0.355835 0.010193 0.231995\n0.398773 0.011108 0.232727\n0.443176 0.011963 0.233429\n0.488190 0.012909 0.234192\n0.531403 0.013824 0.234955\n0.571808 0.014801 0.235779\n0.609375 0.015808 0.236603\n0.644165 0.016815 0.237396\n0.676483 0.017822 0.238220\n0.706696 0.018890 0.239105\n0.735138 0.019928 0.239960\n0.762146 0.021027 0.240845\n0.787933 0.022125 0.241760\n0.812805 0.023224 0.242615\n0.836975 0.024414 0.243591\n0.860809 0.025543 0.244507\n0.884491 0.026733 0.245453\n0.908539 0.027954 0.246429\n0.933380 0.029144 0.247375\n0.959961 0.030365 0.248383\n0.032623 0.017731 0.223907\n0.048187 0.018372 0.224396\n0.064880 0.019012 0.224915\n0.083038 0.019745 0.225494\n0.102966 0.020477 0.226105\n0.125092 0.021210 0.226685\n0.149658 0.021973 0.227295\n0.177216 0.022766 0.227966\n0.207825 0.023590 0.228607\n0.241425 0.024445 0.229279\n0.277740 0.025299 0.230011\n0.316620 0.026184 0.230743\n0.357666 0.027100 0.231476\n0.400604 0.028046 0.232208\n0.445038 0.028992 0.233002\n0.489960 0.029999 0.233795\n0.533020 0.030975 0.234558\n0.573212 0.032013 0.235413\n0.610626 0.033081 0.236206\n0.645233 0.034119 0.237061\n0.677429 0.035217 0.237946\n0.707520 0.036346 0.238831\n0.735870 0.037476 0.239685\n0.762787 0.038635 0.240631\n0.788452 0.039825 0.241577\n0.813232 0.040985 0.242462\n0.837372 0.042236 0.243408\n0.861053 0.043396 0.244354\n0.884735 0.044647 0.245331\n0.908691 0.045990 0.246307\n0.933441 0.047241 0.247314\n0.959961 0.048523 0.248291\n0.033417 0.034851 0.222870\n0.049011 0.035583 0.223450\n0.065796 0.036285 0.224030\n0.084015 0.037048 0.224579\n0.104126 0.037842 0.225250\n0.126312 0.038635 0.225891\n0.151062 0.039490 0.226532\n0.178711 0.040405 0.227203\n0.209442 0.041260 0.227844\n0.243164 0.042206 0.228577\n0.279572 0.043152 0.229340\n0.318512 0.044098 0.230103\n0.359619 0.045105 0.230865\n0.402527 0.046112 0.231689\n0.446991 0.047150 0.232422\n0.491760 0.048218 0.233276\n0.534607 0.049286 0.234100\n0.574707 0.050354 0.234955\n0.611938 0.051544 0.235809\n0.646393 0.052643 0.236664\n0.678375 0.053864 0.237518\n0.708344 0.055054 0.238434\n0.736572 0.056244 0.239349\n0.763397 0.057526 0.240295\n0.789001 0.058746 0.241211\n0.813690 0.060028 0.242188\n0.837738 0.061340 0.243134\n0.861359 0.062622 0.244080\n0.884979 0.064026 0.245117\n0.908875 0.065399 0.246094\n0.933533 0.066742 0.247070\n0.959961 0.068146 0.248077\n0.034302 0.053223 0.221802\n0.049957 0.054016 0.222382\n0.066772 0.054810 0.222992\n0.085144 0.055695 0.223633\n0.105286 0.056580 0.224274\n0.127594 0.057465 0.224945\n0.152496 0.058350 0.225647\n0.180298 0.059326 0.226379\n0.211182 0.060303 0.227051\n0.244965 0.061340 0.227844\n0.281494 0.062347 0.228607\n0.320496 0.063416 0.229370\n0.361694 0.064514 0.230133\n0.404572 0.065582 0.230988\n0.449005 0.066742 0.231781\n0.493713 0.067932 0.232605\n0.536316 0.069061 0.233459\n0.576202 0.070312 0.234375\n0.613251 0.071533 0.235229\n0.647491 0.072754 0.236084\n0.679352 0.074036 0.237000\n0.709229 0.075348 0.237946\n0.737335 0.076691 0.238892\n0.764038 0.078033 0.239838\n0.789520 0.079376 0.240753\n0.814148 0.080780 0.241699\n0.838135 0.082153 0.242706\n0.861633 0.083588 0.243683\n0.885132 0.085052 0.244690\n0.909027 0.086548 0.245667\n0.933655 0.087982 0.246674\n0.959961 0.089569 0.247681\n0.035217 0.073242 0.220581\n0.050903 0.074127 0.221252\n0.067810 0.075043 0.221863\n0.086273 0.075989 0.222534\n0.106537 0.076965 0.223175\n0.128998 0.077972 0.223907\n0.154022 0.079010 0.224640\n0.181976 0.080078 0.225342\n0.212982 0.081116 0.226135\n0.246918 0.082306 0.226898\n0.283508 0.083405 0.227661\n0.322540 0.084595 0.228455\n0.363770 0.085785 0.229309\n0.406677 0.087006 0.230103\n0.451050 0.088257 0.230927\n0.495636 0.089539 0.231812\n0.538116 0.090790 0.232666\n0.577698 0.092163 0.233551\n0.614594 0.093475 0.234467\n0.648682 0.094849 0.235352\n0.680389 0.096252 0.236267\n0.710083 0.097687 0.237183\n0.738098 0.099121 0.238159\n0.764679 0.100616 0.239136\n0.790100 0.102051 0.240082\n0.814606 0.103607 0.241028\n0.838501 0.105164 0.242004\n0.861969 0.106689 0.242981\n0.885437 0.108307 0.243958\n0.909149 0.109894 0.244995\n0.933716 0.111481 0.245972\n0.959961 0.113190 0.247009\n0.036194 0.095337 0.219208\n0.052002 0.096313 0.219849\n0.068939 0.097351 0.220520\n0.087494 0.098419 0.221222\n0.107880 0.099548 0.221924\n0.130463 0.100616 0.222656\n0.155579 0.101807 0.223389\n0.183716 0.102936 0.224182\n0.214844 0.104156 0.224915\n0.248901 0.105438 0.225708\n0.285553 0.106689 0.226532\n0.324707 0.108002 0.227325\n0.365967 0.109344 0.228210\n0.408875 0.110687 0.229004\n0.453156 0.112061 0.229858\n0.497650 0.113495 0.230743\n0.539825 0.114899 0.231628\n0.579285 0.116364 0.232513\n0.615936 0.117889 0.233429\n0.649872 0.119385 0.234344\n0.681427 0.120941 0.235260\n0.710968 0.122467 0.236206\n0.738861 0.124084 0.237183\n0.765320 0.125702 0.238129\n0.790619 0.127350 0.239075\n0.815033 0.128998 0.240051\n0.838867 0.130707 0.241028\n0.862274 0.132385 0.242004\n0.885681 0.134155 0.243011\n0.909332 0.135956 0.244019\n0.933807 0.137665 0.244995\n0.959961 0.139526 0.246002\n0.037231 0.119934 0.217590\n0.053040 0.121063 0.218292\n0.070160 0.122192 0.218964\n0.088776 0.123413 0.219666\n0.109283 0.124664 0.220398\n0.131958 0.125916 0.221161\n0.157257 0.127228 0.221924\n0.185486 0.128571 0.222687\n0.216827 0.129883 0.223511\n0.250946 0.131287 0.224304\n0.287689 0.132690 0.225098\n0.326904 0.134186 0.225952\n0.368195 0.135651 0.226807\n0.411102 0.137146 0.227631\n0.455383 0.138702 0.228516\n0.499634 0.140289 0.229401\n0.541656 0.141846 0.230286\n0.580872 0.143463 0.231171\n0.617279 0.145111 0.232086\n0.651093 0.146820 0.233002\n0.682495 0.148529 0.233978\n0.711884 0.150238 0.234894\n0.739624 0.152039 0.235870\n0.765961 0.153778 0.236816\n0.791199 0.155579 0.237762\n0.815552 0.157440 0.238739\n0.839264 0.159332 0.239685\n0.862610 0.161194 0.240662\n0.885834 0.163116 0.241699\n0.909454 0.165009 0.242645\n0.933868 0.166962 0.243652\n0.959961 0.168945 0.244690\n0.038300 0.147552 0.215668\n0.054230 0.148865 0.216339\n0.071350 0.150177 0.217041\n0.090118 0.151520 0.217834\n0.110718 0.152893 0.218536\n0.133545 0.154388 0.219299\n0.159027 0.155823 0.220123\n0.187408 0.157318 0.220825\n0.218872 0.158844 0.221649\n0.253113 0.160400 0.222504\n0.289948 0.161987 0.223328\n0.329193 0.163605 0.224182\n0.370514 0.165253 0.225067\n0.413422 0.166931 0.225891\n0.457581 0.168671 0.226776\n0.501709 0.170380 0.227661\n0.543518 0.172150 0.228546\n0.582489 0.173981 0.229492\n0.618744 0.175812 0.230408\n0.652283 0.177673 0.231262\n0.683563 0.179565 0.232269\n0.712830 0.181458 0.233124\n0.740417 0.183441 0.234100\n0.766663 0.185394 0.235077\n0.791809 0.187408 0.235962\n0.816010 0.189453 0.236969\n0.839661 0.191467 0.237976\n0.862946 0.193512 0.238892\n0.886108 0.195618 0.239899\n0.909637 0.197662 0.240875\n0.933990 0.199799 0.241913\n0.959961 0.201996 0.242859\n0.039429 0.178833 0.213318\n0.055420 0.180328 0.214050\n0.072693 0.181763 0.214783\n0.091522 0.183350 0.215546\n0.112213 0.184875 0.216248\n0.135162 0.186493 0.217010\n0.160767 0.188141 0.217834\n0.189362 0.189819 0.218628\n0.220947 0.191498 0.219482\n0.255310 0.193268 0.220276\n0.292236 0.195007 0.221100\n0.331512 0.196838 0.221954\n0.372833 0.198700 0.222809\n0.415771 0.200500 0.223724\n0.459869 0.202454 0.224579\n0.503784 0.204346 0.225433\n0.545410 0.206268 0.226379\n0.584198 0.208282 0.227264\n0.620178 0.210266 0.228180\n0.653564 0.212280 0.229095\n0.684601 0.214386 0.230042\n0.713745 0.216431 0.230957\n0.741211 0.218536 0.231903\n0.767334 0.220703 0.232880\n0.792358 0.222809 0.233826\n0.816528 0.224976 0.234833\n0.840057 0.227173 0.235779\n0.863251 0.229401 0.236725\n0.886383 0.231628 0.237732\n0.909821 0.233856 0.238678\n0.934082 0.236176 0.239655\n0.959961 0.238434 0.240662\n0.040619 0.214081 0.210571\n0.056702 0.215698 0.211273\n0.074036 0.217346 0.212036\n0.092957 0.219086 0.212769\n0.113770 0.220764 0.213531\n0.136932 0.222565 0.214355\n0.162689 0.224365 0.215149\n0.191437 0.226196 0.215973\n0.223114 0.228058 0.216797\n0.257599 0.229980 0.217651\n0.294586 0.231873 0.218445\n0.333954 0.233826 0.219360\n0.375214 0.235840 0.220184\n0.418152 0.237793 0.221069\n0.462189 0.239868 0.221985\n0.505981 0.241913 0.222839\n0.547272 0.244019 0.223755\n0.585815 0.246155 0.224670\n0.621582 0.248260 0.225586\n0.654785 0.250458 0.226532\n0.685699 0.252655 0.227417\n0.714630 0.254852 0.228394\n0.742035 0.257111 0.229340\n0.768005 0.259369 0.230286\n0.792908 0.261597 0.231293\n0.816986 0.263916 0.232208\n0.840454 0.266205 0.233154\n0.863525 0.268524 0.234131\n0.886566 0.270874 0.235107\n0.909943 0.273193 0.236053\n0.934143 0.275574 0.237091\n0.959961 0.277985 0.238037\n0.041870 0.253082 0.207367\n0.057953 0.254761 0.208130\n0.075409 0.256622 0.208862\n0.094482 0.258484 0.209656\n0.115448 0.260284 0.210419\n0.138672 0.262238 0.211273\n0.164642 0.264191 0.212097\n0.193512 0.266113 0.212860\n0.225372 0.268127 0.213745\n0.259918 0.270142 0.214630\n0.297028 0.272186 0.215454\n0.336395 0.274261 0.216309\n0.377716 0.276367 0.217194\n0.420593 0.278503 0.218079\n0.464569 0.280670 0.218994\n0.508118 0.282776 0.219879\n0.549194 0.285065 0.220795\n0.587524 0.287292 0.221710\n0.623047 0.289490 0.222595\n0.656036 0.291809 0.223541\n0.686768 0.294098 0.224487\n0.715576 0.296326 0.225433\n0.742828 0.298706 0.226410\n0.768738 0.301025 0.227356\n0.793518 0.303406 0.228333\n0.817474 0.305786 0.229248\n0.840851 0.308136 0.230255\n0.863861 0.310547 0.231201\n0.886841 0.312988 0.232239\n0.910126 0.315369 0.233154\n0.934235 0.317810 0.234131\n0.959961 0.320282 0.235138\n0.043152 0.295441 0.203827\n0.059326 0.297302 0.204590\n0.076874 0.299225 0.205353\n0.096039 0.301178 0.206177\n0.117157 0.303131 0.206940\n0.140533 0.305145 0.207764\n0.166656 0.307190 0.208649\n0.195679 0.309235 0.209473\n0.227631 0.311371 0.210327\n0.262329 0.313477 0.211212\n0.299469 0.315613 0.212097\n0.338898 0.317810 0.212891\n0.380188 0.319977 0.213806\n0.423096 0.322174 0.214691\n0.466980 0.324432 0.215637\n0.510345 0.326691 0.216553\n0.551147 0.328979 0.217468\n0.589203 0.331299 0.218384\n0.624512 0.333557 0.219299\n0.657318 0.335907 0.220245\n0.687866 0.338287 0.221222\n0.716553 0.340576 0.222168\n0.743683 0.343018 0.223145\n0.769409 0.345337 0.224060\n0.794098 0.347778 0.225067\n0.817993 0.350220 0.226013\n0.841217 0.352600 0.226990\n0.864227 0.355072 0.227966\n0.887085 0.357483 0.228943\n0.910278 0.359924 0.229950\n0.934296 0.362335 0.230927\n0.959961 0.364838 0.231903\n0.044464 0.340851 0.199921\n0.060730 0.342743 0.200714\n0.078430 0.344788 0.201508\n0.097656 0.346832 0.202362\n0.118896 0.348846 0.203125\n0.142426 0.350952 0.204010\n0.168701 0.353058 0.204865\n0.197906 0.355133 0.205719\n0.230011 0.357300 0.206604\n0.264709 0.359436 0.207458\n0.301971 0.361664 0.208374\n0.341461 0.363922 0.209229\n0.382751 0.366119 0.210144\n0.425598 0.368378 0.211060\n0.469360 0.370697 0.212006\n0.512512 0.372925 0.212952\n0.553070 0.375305 0.213867\n0.590912 0.377625 0.214783\n0.626007 0.379944 0.215759\n0.658630 0.382324 0.216705\n0.688965 0.384644 0.217651\n0.717468 0.387054 0.218628\n0.744476 0.389435 0.219604\n0.770081 0.391846 0.220551\n0.794708 0.394287 0.221558\n0.818420 0.396637 0.222534\n0.841644 0.399048 0.223480\n0.864502 0.401489 0.224457\n0.887329 0.403931 0.225464\n0.910492 0.406311 0.226471\n0.934387 0.408752 0.227448\n0.959961 0.411133 0.228424\n0.045837 0.388733 0.195801\n0.062195 0.390747 0.196564\n0.079926 0.392761 0.197418\n0.099335 0.394836 0.198303\n0.120667 0.396912 0.199127\n0.144379 0.399048 0.199982\n0.170837 0.401154 0.200897\n0.200134 0.403320 0.201721\n0.232391 0.405518 0.202637\n0.267242 0.407654 0.203522\n0.304565 0.409882 0.204437\n0.344055 0.412109 0.205353\n0.385315 0.414368 0.206238\n0.428162 0.416626 0.207245\n0.471863 0.418945 0.208160\n0.514740 0.421204 0.209076\n0.554993 0.423462 0.210052\n0.592621 0.425842 0.211029\n0.627472 0.428101 0.211975\n0.659821 0.430511 0.212952\n0.690063 0.432831 0.213898\n0.718445 0.435181 0.214874\n0.745270 0.437531 0.215912\n0.770813 0.439850 0.216827\n0.795319 0.442230 0.217865\n0.818970 0.444641 0.218872\n0.842072 0.446960 0.219849\n0.864838 0.449371 0.220825\n0.887543 0.451782 0.221832\n0.910614 0.454102 0.222809\n0.934509 0.456451 0.223785\n0.959961 0.458801 0.224762\n0.047241 0.438538 0.191467\n0.063690 0.440582 0.192291\n0.081543 0.442627 0.193146\n0.101044 0.444702 0.194000\n0.122528 0.446747 0.194916\n0.146393 0.448883 0.195801\n0.173004 0.450928 0.196716\n0.202515 0.453125 0.197601\n0.234833 0.455261 0.198517\n0.269745 0.457458 0.199432\n0.307190 0.459595 0.200378\n0.346680 0.461853 0.201294\n0.387970 0.464020 0.202209\n0.430695 0.466309 0.203217\n0.474304 0.468506 0.204193\n0.516937 0.470734 0.205170\n0.557007 0.472961 0.206116\n0.594360 0.475281 0.207092\n0.628967 0.477478 0.208069\n0.661133 0.479767 0.209045\n0.691162 0.481964 0.210114\n0.719391 0.484222 0.211060\n0.746094 0.486603 0.212067\n0.771515 0.488800 0.213074\n0.795868 0.491058 0.214050\n0.819458 0.493347 0.215088\n0.842468 0.495605 0.216064\n0.865143 0.497833 0.217102\n0.887848 0.500092 0.218079\n0.910767 0.502289 0.219116\n0.934570 0.504578 0.220154\n0.959961 0.506775 0.221130\n0.048706 0.489532 0.187042\n0.065277 0.491486 0.187897\n0.083160 0.493469 0.188782\n0.102783 0.495514 0.189667\n0.124420 0.497467 0.190613\n0.148438 0.499512 0.191528\n0.175171 0.501526 0.192444\n0.204865 0.503601 0.193420\n0.237335 0.505676 0.194366\n0.272400 0.507690 0.195282\n0.309814 0.509827 0.196259\n0.349365 0.511871 0.197266\n0.390625 0.513947 0.198242\n0.433319 0.516022 0.199219\n0.476807 0.518127 0.200226\n0.519165 0.520142 0.201202\n0.558960 0.522278 0.202240\n0.596008 0.524292 0.203247\n0.630463 0.526337 0.204285\n0.662445 0.528442 0.205292\n0.692291 0.530487 0.206268\n0.720367 0.532532 0.207367\n0.746887 0.534576 0.208374\n0.772156 0.536591 0.209381\n0.796417 0.538635 0.210449\n0.819946 0.540680 0.211487\n0.842865 0.542664 0.212494\n0.865479 0.544617 0.213593\n0.888031 0.546600 0.214600\n0.910950 0.548584 0.215637\n0.934692 0.550507 0.216705\n0.959961 0.552429 0.217712\n0.050201 0.539398 0.182800\n0.066833 0.541168 0.183716\n0.084869 0.542969 0.184662\n0.104584 0.544800 0.185608\n0.126373 0.546539 0.186554\n0.150513 0.548370 0.187531\n0.177429 0.550140 0.188538\n0.207306 0.551971 0.189514\n0.239868 0.553802 0.190521\n0.274994 0.555634 0.191498\n0.312469 0.557434 0.192566\n0.352051 0.559326 0.193573\n0.393280 0.561096 0.194580\n0.435974 0.562958 0.195648\n0.479340 0.564789 0.196655\n0.521393 0.566589 0.197723\n0.560974 0.568420 0.198792\n0.597748 0.570221 0.199768\n0.631927 0.572021 0.200836\n0.663727 0.573883 0.201935\n0.693359 0.575653 0.202972\n0.721283 0.577454 0.204041\n0.747711 0.579224 0.205139\n0.772888 0.580963 0.206177\n0.797058 0.582764 0.207245\n0.820435 0.584564 0.208374\n0.843262 0.586243 0.209442\n0.865784 0.587982 0.210510\n0.888275 0.589752 0.211517\n0.911072 0.591431 0.212646\n0.934723 0.593109 0.213745\n0.959961 0.594757 0.214752\n0.051727 0.585602 0.179108\n0.068420 0.587128 0.180054\n0.086548 0.588745 0.181030\n0.106445 0.590332 0.182098\n0.128326 0.591919 0.183075\n0.152679 0.593445 0.184113\n0.179749 0.595062 0.185089\n0.209717 0.596680 0.186188\n0.242432 0.598236 0.187195\n0.277649 0.599854 0.188263\n0.315216 0.601471 0.189301\n0.354736 0.603058 0.190399\n0.395966 0.604645 0.191437\n0.438629 0.606262 0.192505\n0.481812 0.607819 0.193634\n0.523621 0.609436 0.194641\n0.562897 0.611053 0.195740\n0.599457 0.612549 0.196869\n0.633423 0.614166 0.197968\n0.665009 0.615723 0.199066\n0.694489 0.617249 0.200134\n0.722229 0.618835 0.201263\n0.748505 0.620392 0.202332\n0.773590 0.621887 0.203430\n0.797607 0.623413 0.204590\n0.820892 0.624969 0.205658\n0.843658 0.626465 0.206757\n0.866089 0.627930 0.207886\n0.888519 0.629395 0.208954\n0.911255 0.630859 0.210052\n0.934845 0.632355 0.211151\n0.959961 0.633728 0.212219\n0.053284 0.628143 0.175934\n0.070099 0.629486 0.176971\n0.088287 0.630859 0.178009\n0.108307 0.632233 0.178986\n0.130371 0.633636 0.180023\n0.154846 0.634979 0.181183\n0.182098 0.636353 0.182220\n0.212219 0.637756 0.183289\n0.245056 0.639160 0.184387\n0.280334 0.640503 0.185455\n0.317932 0.641907 0.186554\n0.357513 0.643280 0.187653\n0.398743 0.644653 0.188751\n0.441284 0.646057 0.189850\n0.484283 0.647369 0.190979\n0.525818 0.648773 0.192139\n0.564850 0.650085 0.193237\n0.601166 0.651459 0.194366\n0.634918 0.652832 0.195496\n0.666229 0.654175 0.196655\n0.695557 0.655457 0.197723\n0.723145 0.656799 0.198883\n0.749329 0.658142 0.200043\n0.774231 0.659424 0.201111\n0.798187 0.660706 0.202271\n0.821381 0.662018 0.203339\n0.843994 0.663269 0.204498\n0.866394 0.664581 0.205658\n0.888763 0.665802 0.206757\n0.911469 0.667053 0.207855\n0.934937 0.668335 0.208984\n0.959961 0.669495 0.210052\n0.054901 0.667084 0.173248\n0.071777 0.668243 0.174286\n0.090118 0.669403 0.175354\n0.110168 0.670624 0.176453\n0.132416 0.671753 0.177582\n0.157043 0.672974 0.178680\n0.184509 0.674133 0.179749\n0.214752 0.675354 0.180908\n0.247681 0.676575 0.181976\n0.283051 0.677734 0.183136\n0.320709 0.678894 0.184296\n0.360291 0.680084 0.185455\n0.401428 0.681244 0.186554\n0.443878 0.682434 0.187744\n0.486816 0.683594 0.188843\n0.528076 0.684753 0.190002\n0.566742 0.685944 0.191162\n0.602875 0.687073 0.192291\n0.636322 0.688263 0.193451\n0.667542 0.689392 0.194641\n0.696625 0.690521 0.195740\n0.724091 0.691650 0.196899\n0.750122 0.692780 0.198090\n0.774933 0.693878 0.199188\n0.798767 0.694977 0.200348\n0.821869 0.696045 0.201477\n0.844421 0.697174 0.202637\n0.866669 0.698242 0.203735\n0.888977 0.699280 0.204865\n0.911621 0.700378 0.205994\n0.934998 0.701447 0.207123\n0.959961 0.702454 0.208191\n0.056519 0.702789 0.170990\n0.073456 0.703827 0.172119\n0.091888 0.704803 0.173248\n0.112152 0.705811 0.174377\n0.134521 0.706818 0.175507\n0.159302 0.707855 0.176636\n0.186920 0.708862 0.177765\n0.217316 0.709930 0.178955\n0.250336 0.710968 0.180115\n0.285767 0.711945 0.181213\n0.323456 0.712952 0.182404\n0.363007 0.713959 0.183533\n0.404175 0.714996 0.184723\n0.446533 0.715973 0.185913\n0.489227 0.716949 0.187042\n0.530273 0.717957 0.188232\n0.568726 0.718964 0.189392\n0.604523 0.719940 0.190613\n0.637787 0.720947 0.191772\n0.668732 0.721924 0.192902\n0.697693 0.722870 0.194061\n0.725037 0.723816 0.195251\n0.750885 0.724823 0.196411\n0.775574 0.725739 0.197571\n0.799316 0.726715 0.198761\n0.822327 0.727600 0.199890\n0.844788 0.728546 0.201050\n0.867004 0.729462 0.202179\n0.889221 0.730377 0.203308\n0.911774 0.731262 0.204468\n0.935089 0.732147 0.205566\n0.959961 0.733032 0.206635\n0.058136 0.735809 0.169128\n0.075195 0.736694 0.170349\n0.093811 0.737579 0.171478\n0.114105 0.738434 0.172607\n0.136627 0.739288 0.173798\n0.161621 0.740204 0.174957\n0.189331 0.741058 0.176147\n0.219879 0.741943 0.177277\n0.253052 0.742828 0.178497\n0.288544 0.743683 0.179657\n0.326233 0.744537 0.180817\n0.365723 0.745361 0.182068\n0.406860 0.746277 0.183197\n0.449188 0.747131 0.184418\n0.491730 0.747955 0.185577\n0.532440 0.748840 0.186798\n0.570618 0.749664 0.188019\n0.606201 0.750519 0.189148\n0.639191 0.751343 0.190338\n0.669983 0.752167 0.191589\n0.698792 0.752991 0.192719\n0.725922 0.753815 0.193939\n0.751678 0.754639 0.195068\n0.776215 0.755463 0.196259\n0.799866 0.756226 0.197449\n0.822784 0.757019 0.198578\n0.845184 0.757843 0.199677\n0.867310 0.758575 0.200867\n0.889465 0.759369 0.201965\n0.911896 0.760101 0.203125\n0.935181 0.760864 0.204224\n0.959961 0.761597 0.205292\n0.059784 0.766632 0.167633\n0.076965 0.767365 0.168823\n0.095642 0.768127 0.170013\n0.116150 0.768860 0.171173\n0.138733 0.769623 0.172363\n0.163879 0.770355 0.173553\n0.191803 0.771088 0.174713\n0.222473 0.771820 0.175964\n0.255676 0.772583 0.177155\n0.291260 0.773315 0.178375\n0.328979 0.774078 0.179596\n0.368500 0.774780 0.180786\n0.409637 0.775513 0.181946\n0.451813 0.776215 0.183197\n0.494171 0.776978 0.184387\n0.534576 0.777710 0.185577\n0.572510 0.778442 0.186829\n0.607819 0.779144 0.187988\n0.640594 0.779846 0.189178\n0.671204 0.780548 0.190430\n0.699829 0.781219 0.191620\n0.726837 0.781921 0.192780\n0.752411 0.782623 0.193909\n0.776855 0.783295 0.195099\n0.800446 0.783966 0.196259\n0.823242 0.784637 0.197418\n0.845520 0.785309 0.198578\n0.867584 0.785950 0.199707\n0.889648 0.786560 0.200836\n0.912048 0.787262 0.201904\n0.935242 0.787872 0.203064\n0.959961 0.788483 0.204163\n0.061493 0.795532 0.166351\n0.078735 0.796173 0.167572\n0.097534 0.796814 0.168823\n0.118164 0.797424 0.169952\n0.140961 0.798096 0.171204\n0.166260 0.798737 0.172485\n0.194275 0.799316 0.173645\n0.225098 0.799957 0.174866\n0.258392 0.800598 0.176086\n0.294037 0.801239 0.177307\n0.331757 0.801849 0.178528\n0.371277 0.802490 0.179749\n0.412292 0.803070 0.180969\n0.454407 0.803711 0.182190\n0.496552 0.804291 0.183411\n0.536743 0.804932 0.184601\n0.574371 0.805511 0.185822\n0.609406 0.806152 0.187012\n0.642029 0.806732 0.188263\n0.672363 0.807312 0.189392\n0.700867 0.807892 0.190613\n0.727661 0.808502 0.191803\n0.753174 0.809052 0.192963\n0.777496 0.809631 0.194153\n0.800934 0.810211 0.195282\n0.823669 0.810730 0.196442\n0.845917 0.811340 0.197601\n0.867889 0.811890 0.198730\n0.889862 0.812378 0.199860\n0.912201 0.812958 0.200958\n0.935333 0.813477 0.202026\n0.959961 0.813965 0.203125\n0.063232 0.822937 0.165375\n0.080536 0.823486 0.166565\n0.099457 0.824005 0.167816\n0.120209 0.824524 0.169037\n0.143127 0.825073 0.170258\n0.168610 0.825592 0.171448\n0.196838 0.826111 0.172699\n0.227722 0.826691 0.173981\n0.261108 0.827209 0.175140\n0.296753 0.827728 0.176453\n0.334503 0.828278 0.177643\n0.373993 0.828766 0.178864\n0.415009 0.829285 0.180115\n0.457001 0.829803 0.181335\n0.498993 0.830322 0.182556\n0.538849 0.830841 0.183777\n0.576202 0.831329 0.185028\n0.611053 0.831848 0.186188\n0.643372 0.832336 0.187439\n0.673553 0.832794 0.188629\n0.701843 0.833313 0.189728\n0.728546 0.833801 0.190979\n0.753937 0.834290 0.192108\n0.778137 0.834717 0.193268\n0.801514 0.835205 0.194427\n0.824097 0.835693 0.195557\n0.846222 0.836151 0.196716\n0.868134 0.836609 0.197815\n0.890076 0.837036 0.198914\n0.912323 0.837494 0.200043\n0.935394 0.837891 0.201050\n0.959961 0.838348 0.202118\n0.064941 0.849121 0.164459\n0.082367 0.849609 0.165741\n0.101379 0.850037 0.166962\n0.122284 0.850494 0.168182\n0.145355 0.850891 0.169464\n0.170929 0.851349 0.170685\n0.199341 0.851776 0.171936\n0.230316 0.852203 0.173218\n0.263763 0.852661 0.174438\n0.299500 0.853088 0.175659\n0.337250 0.853546 0.176910\n0.376709 0.853943 0.178162\n0.417633 0.854401 0.179413\n0.459595 0.854828 0.180664\n0.501373 0.855255 0.181824\n0.540924 0.855682 0.183075\n0.578003 0.856049 0.184265\n0.612579 0.856506 0.185486\n0.644745 0.856903 0.186676\n0.674683 0.857269 0.187836\n0.702820 0.857727 0.189056\n0.729401 0.858093 0.190247\n0.754639 0.858521 0.191345\n0.778778 0.858887 0.192566\n0.801971 0.859283 0.193665\n0.824524 0.859650 0.194794\n0.846619 0.860016 0.195923\n0.868408 0.860382 0.196991\n0.890259 0.860779 0.198090\n0.912476 0.861115 0.199127\n0.935455 0.861450 0.200195\n0.959961 0.861816 0.201294\n0.066681 0.874420 0.163727\n0.084229 0.874786 0.164978\n0.103363 0.875122 0.166260\n0.124329 0.875519 0.167511\n0.147583 0.875885 0.168762\n0.173309 0.876221 0.170044\n0.201874 0.876587 0.171265\n0.233002 0.876953 0.172546\n0.266479 0.877289 0.173798\n0.302216 0.877655 0.175049\n0.339996 0.878021 0.176270\n0.379395 0.878357 0.177521\n0.420349 0.878662 0.178741\n0.462097 0.879059 0.179962\n0.503632 0.879364 0.181183\n0.542969 0.879730 0.182434\n0.579803 0.880035 0.183624\n0.614105 0.880402 0.184814\n0.646027 0.880707 0.186035\n0.675812 0.881042 0.187164\n0.703827 0.881378 0.188385\n0.730225 0.881683 0.189545\n0.755341 0.881989 0.190674\n0.779358 0.882324 0.191833\n0.802490 0.882629 0.192963\n0.824921 0.882935 0.194031\n0.846924 0.883240 0.195129\n0.868713 0.883514 0.196198\n0.890472 0.883820 0.197235\n0.912598 0.884125 0.198334\n0.935516 0.884369 0.199371\n0.959961 0.884674 0.200348\n0.068420 0.899078 0.163147\n0.086090 0.899384 0.164398\n0.105255 0.899658 0.165588\n0.126404 0.899963 0.166931\n0.149811 0.900299 0.168152\n0.175720 0.900543 0.169403\n0.204407 0.900848 0.170715\n0.235565 0.901093 0.171967\n0.269135 0.901337 0.173187\n0.304962 0.901642 0.174469\n0.342743 0.901917 0.175720\n0.382080 0.902222 0.176910\n0.422943 0.902466 0.178162\n0.464569 0.902740 0.179413\n0.505890 0.902985 0.180573\n0.544922 0.903290 0.181854\n0.581482 0.903564 0.182983\n0.615631 0.903809 0.184174\n0.647308 0.904083 0.185394\n0.676941 0.904327 0.186523\n0.704773 0.904602 0.187683\n0.731018 0.904816 0.188843\n0.756042 0.905090 0.190002\n0.779907 0.905304 0.191101\n0.802948 0.905579 0.192200\n0.825348 0.905792 0.193268\n0.847260 0.906036 0.194305\n0.868927 0.906250 0.195435\n0.890656 0.906433 0.196472\n0.912750 0.906708 0.197479\n0.935577 0.906891 0.198425\n0.959961 0.907104 0.199432\n0.070221 0.923523 0.162476\n0.087952 0.923737 0.163788\n0.107239 0.923950 0.165039\n0.128510 0.924164 0.166321\n0.152069 0.924408 0.167603\n0.178131 0.924591 0.168823\n0.206879 0.924835 0.170135\n0.238159 0.925018 0.171356\n0.271820 0.925232 0.172577\n0.307678 0.925415 0.173828\n0.345398 0.925659 0.175079\n0.384766 0.925873 0.176331\n0.425476 0.926056 0.177582\n0.467010 0.926208 0.178772\n0.508118 0.926453 0.179993\n0.546906 0.926666 0.181213\n0.583221 0.926880 0.182343\n0.617096 0.927063 0.183533\n0.648590 0.927216 0.184723\n0.678009 0.927429 0.185883\n0.705658 0.927612 0.187042\n0.731812 0.927795 0.188141\n0.756683 0.928009 0.189240\n0.780487 0.928131 0.190369\n0.803436 0.928314 0.191376\n0.825684 0.928528 0.192505\n0.847595 0.928680 0.193542\n0.869202 0.928833 0.194580\n0.890839 0.929016 0.195557\n0.912842 0.929169 0.196533\n0.935638 0.929352 0.197510\n0.959961 0.929474 0.198486\n0.071991 0.948090 0.161835\n0.089783 0.948242 0.163147\n0.109222 0.948364 0.164398\n0.130615 0.948517 0.165710\n0.154297 0.948669 0.166992\n0.180481 0.948792 0.168243\n0.209381 0.948944 0.169464\n0.240784 0.949066 0.170776\n0.274475 0.949219 0.171997\n0.310333 0.949371 0.173248\n0.348053 0.949554 0.174438\n0.387421 0.949707 0.175690\n0.428040 0.949829 0.176941\n0.469391 0.949982 0.178101\n0.510284 0.950073 0.179321\n0.548767 0.950195 0.180542\n0.584900 0.950348 0.181671\n0.618530 0.950439 0.182861\n0.649811 0.950592 0.183990\n0.679047 0.950684 0.185120\n0.706543 0.950836 0.186218\n0.732574 0.950958 0.187317\n0.757294 0.951080 0.188385\n0.781067 0.951202 0.189514\n0.803864 0.951324 0.190552\n0.826080 0.951477 0.191620\n0.847870 0.951569 0.192596\n0.869446 0.951691 0.193604\n0.890991 0.951782 0.194580\n0.912933 0.951874 0.195557\n0.935699 0.951996 0.196472\n0.959961 0.952057 0.197357\n0.073730 0.973297 0.161133\n0.091675 0.973358 0.162445\n0.111206 0.973450 0.163696\n0.132751 0.973511 0.164978\n0.156525 0.973572 0.166199\n0.182861 0.973663 0.167480\n0.211853 0.973785 0.168762\n0.243317 0.973846 0.169952\n0.277100 0.973938 0.171234\n0.312958 0.973999 0.172516\n0.350677 0.974091 0.173706\n0.389923 0.974152 0.174927\n0.430542 0.974182 0.176178\n0.471802 0.974304 0.177307\n0.512390 0.974335 0.178528\n0.550629 0.974396 0.179688\n0.586456 0.974457 0.180878\n0.619904 0.974518 0.181976\n0.650970 0.974609 0.183105\n0.680084 0.974670 0.184204\n0.707428 0.974731 0.185333\n0.733307 0.974762 0.186371\n0.757965 0.974854 0.187439\n0.781555 0.974915 0.188507\n0.804352 0.974976 0.189545\n0.826447 0.975037 0.190552\n0.848145 0.975067 0.191528\n0.869629 0.975128 0.192474\n0.891174 0.975189 0.193420\n0.913055 0.975250 0.194336\n0.935791 0.975281 0.195190\n0.959961 0.975311 0.196136\n0.075531 1.000000 0.160217\n0.093506 1.000000 0.161499\n0.113159 1.000000 0.162750\n0.134827 1.000000 0.164032\n0.158752 1.000000 0.165314\n0.185272 1.000000 0.166565\n0.214325 1.000000 0.167816\n0.245850 1.000000 0.169067\n0.279694 1.000000 0.170319\n0.315582 1.000000 0.171570\n0.353241 1.000000 0.172729\n0.392517 1.000000 0.173950\n0.432953 1.000000 0.175110\n0.474121 1.000000 0.176331\n0.514465 1.000000 0.177521\n0.552429 1.000000 0.178680\n0.588013 1.000000 0.179779\n0.621216 1.000000 0.180908\n0.652130 1.000000 0.181946\n0.681030 1.000000 0.183075\n0.708252 1.000000 0.184174\n0.734039 1.000000 0.185181\n0.758545 1.000000 0.186218\n0.782043 1.000000 0.187256\n0.804749 1.000000 0.188232\n0.826813 1.000000 0.189178\n0.848450 1.000000 0.190186\n0.869843 1.000000 0.191101\n0.891357 1.000000 0.191986\n0.913147 1.000000 0.192841\n0.935822 1.000000 0.193695\n0.959961 1.000000 0.194550\n0.032043 0.001770 0.259491\n0.047516 0.002319 0.259979\n0.064148 0.002960 0.260498\n0.082275 0.003601 0.261078\n0.102112 0.004272 0.261627\n0.124115 0.004974 0.262238\n0.148651 0.005676 0.262878\n0.176025 0.006439 0.263519\n0.206573 0.007202 0.264160\n0.240051 0.007996 0.264862\n0.276337 0.008820 0.265503\n0.315125 0.009674 0.266266\n0.356140 0.010529 0.266968\n0.399109 0.011383 0.267731\n0.443573 0.012299 0.268524\n0.488464 0.013214 0.269318\n0.531708 0.014191 0.270111\n0.572052 0.015198 0.270935\n0.609589 0.016174 0.271729\n0.644409 0.017181 0.272614\n0.676636 0.018219 0.273499\n0.706848 0.019257 0.274384\n0.735291 0.020355 0.275269\n0.762238 0.021393 0.276245\n0.788055 0.022552 0.277161\n0.812897 0.023682 0.278076\n0.837067 0.024811 0.279022\n0.860840 0.025970 0.279999\n0.884521 0.027161 0.280975\n0.908539 0.028381 0.281982\n0.933411 0.029572 0.283020\n0.959961 0.030853 0.284058\n0.032776 0.017975 0.258545\n0.048309 0.018616 0.259125\n0.065033 0.019287 0.259644\n0.083221 0.019989 0.260284\n0.103210 0.020721 0.260864\n0.125336 0.021454 0.261505\n0.149902 0.022247 0.262207\n0.177429 0.023071 0.262878\n0.208130 0.023926 0.263519\n0.241730 0.024750 0.264252\n0.278046 0.025635 0.265015\n0.316925 0.026520 0.265747\n0.358002 0.027435 0.266510\n0.401001 0.028381 0.267303\n0.445404 0.029388 0.268097\n0.490326 0.030334 0.268951\n0.533325 0.031372 0.269745\n0.573517 0.032410 0.270630\n0.610840 0.033447 0.271484\n0.645477 0.034576 0.272400\n0.677582 0.035645 0.273254\n0.707672 0.036774 0.274200\n0.736023 0.037872 0.275146\n0.762878 0.039062 0.276062\n0.788574 0.040222 0.277008\n0.813293 0.041473 0.277924\n0.837402 0.042633 0.278961\n0.861084 0.043884 0.279968\n0.884766 0.045197 0.280975\n0.908691 0.046417 0.281921\n0.933472 0.047699 0.282990\n0.959961 0.048981 0.284027\n0.033600 0.035095 0.257599\n0.049225 0.035797 0.258209\n0.065979 0.036560 0.258789\n0.084290 0.037354 0.259430\n0.104309 0.038147 0.260071\n0.126556 0.038971 0.260742\n0.151276 0.039856 0.261444\n0.178955 0.040680 0.262146\n0.209778 0.041595 0.262909\n0.243439 0.042511 0.263641\n0.279907 0.043488 0.264374\n0.318848 0.044464 0.265167\n0.359985 0.045441 0.265961\n0.402954 0.046448 0.266846\n0.447388 0.047546 0.267639\n0.492126 0.048584 0.268494\n0.534973 0.049713 0.269318\n0.575012 0.050812 0.270264\n0.612183 0.051941 0.271149\n0.646576 0.053101 0.272034\n0.678619 0.054291 0.272919\n0.708496 0.055511 0.273865\n0.736725 0.056732 0.274872\n0.763519 0.057983 0.275757\n0.789093 0.059235 0.276764\n0.813812 0.060516 0.277740\n0.837769 0.061798 0.278717\n0.861450 0.063171 0.279724\n0.884979 0.064514 0.280762\n0.908875 0.065857 0.281769\n0.933533 0.067261 0.282837\n0.959961 0.068634 0.283813\n0.034454 0.053528 0.256561\n0.050079 0.054321 0.257202\n0.066956 0.055145 0.257843\n0.085327 0.056000 0.258545\n0.105499 0.056885 0.259216\n0.127838 0.057800 0.259918\n0.152740 0.058685 0.260651\n0.180573 0.059692 0.261353\n0.211517 0.060699 0.262146\n0.245361 0.061707 0.262878\n0.281860 0.062744 0.263702\n0.320862 0.063843 0.264557\n0.362000 0.064880 0.265350\n0.404999 0.066040 0.266174\n0.449341 0.067169 0.267029\n0.494049 0.068329 0.267944\n0.536652 0.069519 0.268799\n0.576477 0.070770 0.269745\n0.613464 0.071991 0.270630\n0.647736 0.073273 0.271515\n0.679565 0.074524 0.272461\n0.709351 0.075836 0.273376\n0.737488 0.077179 0.274445\n0.764160 0.078491 0.275391\n0.789642 0.079895 0.276306\n0.814240 0.081299 0.277374\n0.838135 0.082703 0.278320\n0.861755 0.084167 0.279358\n0.885193 0.085632 0.280396\n0.909058 0.087097 0.281403\n0.933655 0.088593 0.282440\n0.959961 0.090088 0.283508\n0.035431 0.073578 0.255432\n0.051117 0.074432 0.256104\n0.068024 0.075348 0.256744\n0.086548 0.076355 0.257477\n0.106781 0.077332 0.258179\n0.129211 0.078339 0.258911\n0.154266 0.079376 0.259674\n0.182281 0.080444 0.260468\n0.213318 0.081543 0.261230\n0.247223 0.082672 0.262054\n0.283875 0.083832 0.262848\n0.322968 0.085022 0.263672\n0.364136 0.086212 0.264526\n0.407135 0.087433 0.265411\n0.451447 0.088715 0.266266\n0.496002 0.089996 0.267181\n0.538452 0.091309 0.268066\n0.578003 0.092621 0.268982\n0.614807 0.093964 0.269928\n0.648865 0.095367 0.270844\n0.680603 0.096771 0.271790\n0.710236 0.098206 0.272797\n0.738251 0.099701 0.273743\n0.764801 0.101166 0.274719\n0.790192 0.102631 0.275726\n0.814697 0.104156 0.276733\n0.838562 0.105682 0.277740\n0.862030 0.107269 0.278717\n0.885468 0.108856 0.279755\n0.909149 0.110504 0.280823\n0.933716 0.112122 0.281860\n0.959961 0.113739 0.282898\n0.036346 0.095703 0.254120\n0.052185 0.096680 0.254822\n0.069183 0.097748 0.255524\n0.087677 0.098816 0.256195\n0.108124 0.099884 0.256989\n0.130707 0.101044 0.257751\n0.155853 0.102203 0.258514\n0.184021 0.103424 0.259338\n0.215240 0.104645 0.260162\n0.249268 0.105865 0.260925\n0.285980 0.107178 0.261749\n0.325104 0.108490 0.262634\n0.366302 0.109802 0.263519\n0.409302 0.111176 0.264374\n0.453522 0.112518 0.265289\n0.497986 0.114014 0.266174\n0.540192 0.115448 0.267120\n0.579590 0.116882 0.268005\n0.616211 0.118439 0.268951\n0.650116 0.119934 0.269958\n0.681641 0.121490 0.270844\n0.711121 0.123077 0.271881\n0.738983 0.124695 0.272827\n0.765472 0.126282 0.273834\n0.790741 0.127960 0.274780\n0.815155 0.129639 0.275787\n0.838928 0.131317 0.276825\n0.862335 0.133026 0.277863\n0.885681 0.134766 0.278809\n0.909363 0.136566 0.279877\n0.933807 0.138367 0.280945\n0.959961 0.140137 0.281982\n0.037415 0.120331 0.252563\n0.053253 0.121460 0.253265\n0.070374 0.122650 0.253998\n0.089020 0.123840 0.254761\n0.109528 0.125122 0.255493\n0.132263 0.126373 0.256317\n0.157593 0.127686 0.257080\n0.185913 0.129028 0.257904\n0.217194 0.130432 0.258728\n0.251343 0.131805 0.259583\n0.288147 0.133240 0.260437\n0.327332 0.134705 0.261322\n0.368561 0.136200 0.262146\n0.411560 0.137726 0.263031\n0.455719 0.139252 0.263916\n0.500061 0.140808 0.264862\n0.541992 0.142456 0.265839\n0.581207 0.144104 0.266754\n0.617584 0.145752 0.267700\n0.651276 0.147430 0.268677\n0.682678 0.149109 0.269623\n0.712067 0.150879 0.270569\n0.739807 0.152679 0.271545\n0.766113 0.154449 0.272552\n0.791321 0.156281 0.273560\n0.815613 0.158112 0.274506\n0.839325 0.160004 0.275513\n0.862640 0.161896 0.276550\n0.885895 0.163788 0.277557\n0.909485 0.165710 0.278595\n0.933899 0.167694 0.279663\n0.959961 0.169678 0.280670\n0.038483 0.148010 0.250641\n0.054443 0.149323 0.251373\n0.071625 0.150665 0.252197\n0.090363 0.152069 0.252960\n0.110992 0.153442 0.253693\n0.133881 0.154907 0.254547\n0.159302 0.156311 0.255310\n0.187775 0.157867 0.256165\n0.219238 0.159424 0.256958\n0.253510 0.160980 0.257843\n0.290344 0.162598 0.258698\n0.329620 0.164185 0.259552\n0.370850 0.165863 0.260437\n0.413818 0.167572 0.261322\n0.458008 0.169312 0.262268\n0.502136 0.171082 0.263214\n0.543854 0.172852 0.264130\n0.582825 0.174622 0.265076\n0.619019 0.176483 0.266052\n0.652527 0.178406 0.266968\n0.683716 0.180267 0.267944\n0.713013 0.182220 0.268890\n0.740570 0.184143 0.269867\n0.766785 0.186096 0.270874\n0.791901 0.188110 0.271820\n0.816101 0.190125 0.272827\n0.839722 0.192200 0.273834\n0.862976 0.194305 0.274872\n0.886169 0.196350 0.275879\n0.909668 0.198456 0.276886\n0.933990 0.200592 0.277924\n0.959961 0.202728 0.278900\n0.039642 0.179321 0.248413\n0.055664 0.180817 0.249146\n0.072906 0.182373 0.249939\n0.091797 0.183899 0.250671\n0.112518 0.185516 0.251495\n0.135529 0.187103 0.252319\n0.161163 0.188751 0.253143\n0.189758 0.190430 0.254028\n0.221344 0.192169 0.254852\n0.255707 0.193909 0.255676\n0.292694 0.195709 0.256561\n0.331909 0.197449 0.257416\n0.373291 0.199341 0.258331\n0.416168 0.201263 0.259247\n0.460297 0.203125 0.260132\n0.504211 0.205078 0.261078\n0.545746 0.207031 0.262024\n0.584442 0.209015 0.262939\n0.620453 0.210999 0.263916\n0.653778 0.213074 0.264832\n0.684814 0.215118 0.265808\n0.713898 0.217255 0.266785\n0.741394 0.219330 0.267761\n0.767456 0.221466 0.268738\n0.792450 0.223602 0.269745\n0.816620 0.225769 0.270691\n0.840118 0.227997 0.271729\n0.863312 0.230225 0.272766\n0.886414 0.232422 0.273712\n0.909851 0.234711 0.274750\n0.934082 0.237000 0.275757\n0.959961 0.239227 0.276764\n0.040802 0.214630 0.245728\n0.056885 0.216339 0.246460\n0.074280 0.218018 0.247253\n0.093262 0.219666 0.248047\n0.114105 0.221466 0.248840\n0.137238 0.223236 0.249695\n0.163025 0.225006 0.250519\n0.191803 0.226898 0.251343\n0.223511 0.228729 0.252228\n0.257996 0.230652 0.253052\n0.295105 0.232605 0.253998\n0.334381 0.234558 0.254883\n0.375702 0.236542 0.255737\n0.418640 0.238586 0.256744\n0.462646 0.240601 0.257599\n0.506348 0.242706 0.258514\n0.547668 0.244812 0.259460\n0.586090 0.246887 0.260376\n0.621887 0.249054 0.261383\n0.655029 0.251312 0.262329\n0.685883 0.253479 0.263245\n0.714813 0.255737 0.264252\n0.742157 0.257874 0.265198\n0.768127 0.260193 0.266205\n0.793030 0.262451 0.267212\n0.817078 0.264740 0.268188\n0.840515 0.267059 0.269165\n0.863617 0.269409 0.270172\n0.886658 0.271698 0.271210\n0.909943 0.274078 0.272186\n0.934143 0.276520 0.273193\n0.959961 0.278870 0.274170\n0.042084 0.253662 0.242554\n0.058228 0.255493 0.243378\n0.075714 0.257294 0.244202\n0.094757 0.259125 0.244934\n0.115753 0.261047 0.245789\n0.139038 0.262939 0.246674\n0.165009 0.264862 0.247528\n0.193939 0.266846 0.248352\n0.225739 0.268829 0.249237\n0.260345 0.270874 0.250122\n0.297455 0.272980 0.251007\n0.336884 0.275024 0.251862\n0.378143 0.277161 0.252838\n0.421082 0.279327 0.253723\n0.464996 0.281464 0.254639\n0.508514 0.283691 0.255615\n0.549561 0.285889 0.256561\n0.587799 0.288086 0.257507\n0.623352 0.290375 0.258423\n0.656281 0.292603 0.259399\n0.686981 0.294922 0.260376\n0.715790 0.297272 0.261353\n0.742981 0.299530 0.262329\n0.768860 0.301910 0.263336\n0.793640 0.304291 0.264313\n0.817566 0.306641 0.265289\n0.840942 0.309021 0.266327\n0.863922 0.311462 0.267273\n0.886902 0.313843 0.268250\n0.910156 0.316254 0.269318\n0.934265 0.318665 0.270264\n0.959961 0.321136 0.271271\n0.043396 0.296112 0.239075\n0.059601 0.298035 0.239899\n0.077148 0.299957 0.240723\n0.096313 0.301880 0.241516\n0.117432 0.303894 0.242401\n0.140900 0.305878 0.243195\n0.166992 0.307922 0.244110\n0.196106 0.310028 0.245026\n0.228058 0.312073 0.245850\n0.262787 0.314270 0.246735\n0.299957 0.316437 0.247711\n0.339325 0.318573 0.248596\n0.380676 0.320801 0.249542\n0.423553 0.323029 0.250458\n0.467346 0.325287 0.251373\n0.510712 0.327515 0.252350\n0.551483 0.329834 0.253296\n0.589478 0.332062 0.254242\n0.624847 0.334442 0.255219\n0.657532 0.336700 0.256195\n0.688080 0.339081 0.257141\n0.716705 0.341492 0.258118\n0.743774 0.343842 0.259155\n0.769531 0.346283 0.260101\n0.794250 0.348663 0.261139\n0.818085 0.351044 0.262115\n0.841339 0.353485 0.263092\n0.864288 0.355957 0.264130\n0.887146 0.358337 0.265106\n0.910339 0.360840 0.266083\n0.934326 0.363251 0.267090\n0.959961 0.365692 0.268097\n0.044708 0.341522 0.235260\n0.061035 0.343536 0.236115\n0.078674 0.345551 0.236938\n0.097961 0.347534 0.237793\n0.119232 0.349609 0.238708\n0.142792 0.351685 0.239532\n0.169067 0.353821 0.240387\n0.198334 0.355957 0.241333\n0.230377 0.358063 0.242218\n0.265228 0.360321 0.243103\n0.302521 0.362518 0.244080\n0.341919 0.364685 0.244965\n0.383240 0.366943 0.245911\n0.426117 0.369232 0.246918\n0.469818 0.371490 0.247833\n0.512939 0.373840 0.248810\n0.553436 0.376099 0.249725\n0.591187 0.378448 0.250702\n0.626312 0.380859 0.251678\n0.658813 0.383148 0.252655\n0.689178 0.385498 0.253632\n0.717682 0.387939 0.254700\n0.744568 0.390289 0.255646\n0.770233 0.392700 0.256683\n0.794800 0.395142 0.257629\n0.818542 0.397461 0.258606\n0.841736 0.399933 0.259674\n0.864563 0.402344 0.260681\n0.887329 0.404785 0.261658\n0.910492 0.407227 0.262695\n0.934387 0.409607 0.263672\n0.959961 0.412079 0.264648\n0.046112 0.389435 0.231232\n0.062531 0.391479 0.232056\n0.080231 0.393524 0.232941\n0.099609 0.395630 0.233795\n0.121033 0.397644 0.234711\n0.144714 0.399780 0.235565\n0.171204 0.401947 0.236511\n0.200592 0.404144 0.237396\n0.232849 0.406281 0.238312\n0.267731 0.408508 0.239258\n0.305084 0.410706 0.240234\n0.344513 0.412933 0.241119\n0.385864 0.415192 0.242096\n0.428619 0.417450 0.243042\n0.472290 0.419769 0.244019\n0.515198 0.422058 0.245026\n0.555359 0.424347 0.246002\n0.592926 0.426727 0.246979\n0.627747 0.429016 0.247955\n0.660095 0.431335 0.248932\n0.690277 0.433685 0.249969\n0.718628 0.436096 0.250977\n0.745422 0.438354 0.251953\n0.770905 0.440765 0.252960\n0.795410 0.443115 0.254028\n0.819061 0.445496 0.255005\n0.842133 0.447876 0.256042\n0.864899 0.450256 0.257019\n0.887604 0.452606 0.258057\n0.910645 0.455017 0.259064\n0.934509 0.457306 0.260071\n0.959961 0.459717 0.261078\n0.047546 0.439301 0.226929\n0.064026 0.441315 0.227814\n0.081818 0.443329 0.228699\n0.101349 0.445465 0.229584\n0.122894 0.447540 0.230560\n0.146729 0.449615 0.231415\n0.173401 0.451782 0.232361\n0.202942 0.453949 0.233337\n0.235291 0.456085 0.234253\n0.270294 0.458252 0.235229\n0.307678 0.460449 0.236176\n0.347168 0.462616 0.237152\n0.388489 0.464874 0.238129\n0.431213 0.467072 0.239075\n0.474762 0.469299 0.240112\n0.517365 0.471588 0.241089\n0.557312 0.473785 0.242126\n0.594666 0.476074 0.243103\n0.629242 0.478333 0.244171\n0.661377 0.480560 0.245148\n0.691376 0.482819 0.246155\n0.719574 0.485077 0.247192\n0.746216 0.487366 0.248199\n0.771606 0.489655 0.249237\n0.795990 0.491852 0.250275\n0.819550 0.494110 0.251282\n0.842529 0.496399 0.252350\n0.865204 0.498627 0.253326\n0.887878 0.500916 0.254395\n0.910797 0.503174 0.255432\n0.934570 0.505402 0.256409\n0.959961 0.507599 0.257446\n0.048981 0.490234 0.222565\n0.065521 0.492218 0.223511\n0.083466 0.494171 0.224426\n0.103119 0.496216 0.225342\n0.124756 0.498230 0.226349\n0.148834 0.500275 0.227234\n0.175598 0.502289 0.228210\n0.205292 0.504364 0.229187\n0.237793 0.506439 0.230194\n0.272888 0.508484 0.231201\n0.310333 0.510590 0.232208\n0.349823 0.512634 0.233154\n0.391113 0.514740 0.234161\n0.433777 0.516724 0.235138\n0.477234 0.518799 0.236237\n0.519623 0.520935 0.237244\n0.559357 0.523010 0.238281\n0.596375 0.525055 0.239349\n0.630768 0.527130 0.240387\n0.662659 0.529205 0.241394\n0.692505 0.531250 0.242493\n0.720551 0.533295 0.243530\n0.747040 0.535309 0.244598\n0.772308 0.537354 0.245636\n0.796570 0.539368 0.246674\n0.820038 0.541382 0.247742\n0.842926 0.543396 0.248810\n0.865509 0.545349 0.249878\n0.888062 0.547333 0.250946\n0.910980 0.549316 0.251984\n0.934692 0.551239 0.253052\n0.959961 0.553162 0.254120\n0.050476 0.540039 0.218445\n0.067139 0.541809 0.219391\n0.085175 0.543579 0.220367\n0.104950 0.545410 0.221344\n0.126770 0.547241 0.222351\n0.150909 0.548981 0.223358\n0.177887 0.550842 0.224396\n0.207764 0.552673 0.225433\n0.240326 0.554474 0.226410\n0.275482 0.556335 0.227417\n0.312988 0.558167 0.228455\n0.352509 0.559967 0.229523\n0.393829 0.561798 0.230591\n0.436432 0.563568 0.231628\n0.479767 0.565460 0.232697\n0.521851 0.567291 0.233856\n0.561310 0.569092 0.234894\n0.598083 0.570892 0.235931\n0.632263 0.572723 0.237061\n0.663971 0.574493 0.238098\n0.693573 0.576294 0.239197\n0.721466 0.578125 0.240295\n0.747894 0.579865 0.241394\n0.773010 0.581665 0.242493\n0.797150 0.583374 0.243561\n0.820496 0.585144 0.244659\n0.843292 0.586884 0.245728\n0.865845 0.588593 0.246826\n0.888336 0.590332 0.247955\n0.911133 0.592041 0.249023\n0.934784 0.593689 0.250061\n0.959961 0.595428 0.251190\n0.052032 0.586182 0.214783\n0.068756 0.587738 0.215851\n0.086884 0.589294 0.216858\n0.106781 0.590912 0.217896\n0.128754 0.592499 0.218903\n0.153076 0.594086 0.219971\n0.180206 0.595673 0.221039\n0.210236 0.597290 0.222076\n0.242950 0.598877 0.223145\n0.278168 0.600464 0.224213\n0.315704 0.602020 0.225311\n0.355286 0.603638 0.226410\n0.396484 0.605286 0.227509\n0.439117 0.606781 0.228638\n0.482300 0.608429 0.229736\n0.524048 0.610016 0.230804\n0.563232 0.611542 0.231934\n0.599762 0.613159 0.233063\n0.633698 0.614777 0.234192\n0.665253 0.616302 0.235291\n0.694702 0.617889 0.236420\n0.722412 0.619415 0.237549\n0.748657 0.620941 0.238647\n0.773682 0.622467 0.239807\n0.797729 0.623962 0.240875\n0.821014 0.625519 0.242035\n0.843719 0.627014 0.243103\n0.866119 0.628479 0.244202\n0.888580 0.629944 0.245361\n0.911316 0.631439 0.246490\n0.934845 0.632843 0.247559\n0.959961 0.634277 0.248688\n0.053589 0.628632 0.211700\n0.070404 0.630005 0.212769\n0.088623 0.631348 0.213837\n0.108673 0.632782 0.214905\n0.130737 0.634155 0.216003\n0.155273 0.635498 0.217041\n0.182556 0.636841 0.218201\n0.212708 0.638306 0.219269\n0.245544 0.639618 0.220428\n0.280853 0.641022 0.221527\n0.318451 0.642365 0.222656\n0.357971 0.643768 0.223785\n0.399231 0.645172 0.224915\n0.441711 0.646484 0.226044\n0.484772 0.647858 0.227203\n0.526306 0.649261 0.228333\n0.565216 0.650574 0.229462\n0.601501 0.651947 0.230591\n0.635193 0.653290 0.231750\n0.666473 0.654602 0.232880\n0.695770 0.655975 0.234039\n0.723328 0.657227 0.235199\n0.749481 0.658600 0.236328\n0.774353 0.659882 0.237518\n0.798309 0.661163 0.238647\n0.821472 0.662445 0.239777\n0.844086 0.663788 0.240936\n0.866486 0.665009 0.242035\n0.888794 0.666260 0.243164\n0.911499 0.667542 0.244293\n0.934967 0.668732 0.245392\n0.959961 0.669952 0.246521\n0.055206 0.667511 0.209106\n0.072083 0.668671 0.210236\n0.090424 0.669861 0.211334\n0.110596 0.671082 0.212433\n0.132812 0.672211 0.213562\n0.157471 0.673401 0.214630\n0.184967 0.674622 0.215820\n0.215240 0.675781 0.216919\n0.248199 0.676941 0.218140\n0.283569 0.678162 0.219330\n0.321198 0.679321 0.220428\n0.360718 0.680511 0.221588\n0.401947 0.681702 0.222748\n0.444366 0.682861 0.223907\n0.487274 0.684021 0.225098\n0.528473 0.685242 0.226257\n0.567108 0.686340 0.227417\n0.603180 0.687531 0.228577\n0.636658 0.688660 0.229797\n0.667725 0.689789 0.230927\n0.696869 0.690918 0.232086\n0.724274 0.692047 0.233276\n0.750275 0.693176 0.234467\n0.775055 0.694305 0.235626\n0.798859 0.695404 0.236694\n0.821930 0.696503 0.237946\n0.844513 0.697571 0.239105\n0.866730 0.698608 0.240234\n0.889008 0.699738 0.241333\n0.911621 0.700775 0.242523\n0.935028 0.701813 0.243591\n0.959961 0.702820 0.244720\n0.056793 0.703186 0.206909\n0.073792 0.704193 0.208069\n0.092255 0.705200 0.209198\n0.112518 0.706238 0.210358\n0.134949 0.707245 0.211548\n0.159729 0.708252 0.212708\n0.187408 0.709259 0.213837\n0.217743 0.710297 0.215057\n0.250793 0.711304 0.216217\n0.286285 0.712311 0.217407\n0.323944 0.713318 0.218567\n0.363495 0.714325 0.219788\n0.404663 0.715363 0.220978\n0.447021 0.716339 0.222168\n0.489777 0.717346 0.223358\n0.530731 0.718353 0.224548\n0.569061 0.719299 0.225769\n0.604797 0.720306 0.226929\n0.638031 0.721283 0.228088\n0.668976 0.722260 0.229309\n0.697906 0.723267 0.230499\n0.725189 0.724182 0.231628\n0.751038 0.725128 0.232819\n0.775696 0.726105 0.234070\n0.799408 0.727020 0.235168\n0.822418 0.727966 0.236328\n0.844849 0.728912 0.237488\n0.867065 0.729797 0.238617\n0.889252 0.730713 0.239807\n0.911804 0.731598 0.240875\n0.935120 0.732483 0.242065\n0.959961 0.733368 0.243164\n0.058441 0.736145 0.205139\n0.075562 0.737030 0.206329\n0.094086 0.737885 0.207489\n0.114502 0.738770 0.208710\n0.137085 0.739655 0.209869\n0.162048 0.740479 0.211090\n0.189819 0.741394 0.212311\n0.220367 0.742218 0.213470\n0.253510 0.743134 0.214661\n0.289062 0.744019 0.215912\n0.326691 0.744843 0.217072\n0.366241 0.745728 0.218323\n0.407379 0.746582 0.219513\n0.449646 0.747437 0.220734\n0.492218 0.748291 0.221924\n0.532898 0.749146 0.223145\n0.570953 0.749969 0.224365\n0.606537 0.750824 0.225586\n0.639465 0.751648 0.226776\n0.670197 0.752472 0.227905\n0.699005 0.753265 0.229156\n0.726074 0.754120 0.230316\n0.751801 0.754913 0.231476\n0.776398 0.755737 0.232697\n0.799988 0.756531 0.233856\n0.822845 0.757324 0.235016\n0.845245 0.758087 0.236267\n0.867371 0.758850 0.237335\n0.889465 0.759613 0.238464\n0.911957 0.760376 0.239624\n0.935181 0.761139 0.240692\n0.959961 0.761871 0.241852\n0.060120 0.766907 0.203674\n0.077271 0.767639 0.204926\n0.096008 0.768372 0.206116\n0.116516 0.769135 0.207306\n0.139160 0.769836 0.208557\n0.164368 0.770630 0.209747\n0.192291 0.771362 0.210968\n0.222961 0.772095 0.212189\n0.256226 0.772858 0.213440\n0.291809 0.773560 0.214661\n0.329498 0.774323 0.215851\n0.369019 0.775055 0.217072\n0.410095 0.775787 0.218292\n0.452271 0.776520 0.219543\n0.494629 0.777252 0.220764\n0.534973 0.777954 0.221985\n0.572876 0.778687 0.223236\n0.608124 0.779388 0.224426\n0.640869 0.780060 0.225616\n0.671387 0.780792 0.226807\n0.700012 0.781494 0.228027\n0.726959 0.782166 0.229218\n0.752533 0.782898 0.230377\n0.777008 0.783539 0.231598\n0.800507 0.784210 0.232758\n0.823334 0.784912 0.233917\n0.845581 0.785522 0.235077\n0.867645 0.786194 0.236206\n0.889709 0.786835 0.237335\n0.912048 0.787445 0.238525\n0.935303 0.788116 0.239594\n0.959961 0.788696 0.240692\n0.061829 0.795776 0.202515\n0.079102 0.796417 0.203705\n0.097870 0.797028 0.204987\n0.118561 0.797668 0.206207\n0.141327 0.798340 0.207397\n0.166718 0.798950 0.208679\n0.194794 0.799561 0.209930\n0.225555 0.800171 0.211090\n0.258881 0.800842 0.212402\n0.294495 0.801453 0.213623\n0.332245 0.802063 0.214844\n0.371796 0.802704 0.216125\n0.412842 0.803314 0.217346\n0.454865 0.803925 0.218567\n0.497101 0.804535 0.219818\n0.537140 0.805145 0.221008\n0.574738 0.805756 0.222229\n0.609772 0.806366 0.223480\n0.642242 0.806976 0.224670\n0.672607 0.807526 0.225891\n0.701050 0.808105 0.227081\n0.727844 0.808716 0.228271\n0.753296 0.809265 0.229492\n0.777649 0.809875 0.230652\n0.801056 0.810394 0.231812\n0.823730 0.810974 0.232941\n0.845978 0.811523 0.234070\n0.867920 0.812073 0.235260\n0.889923 0.812561 0.236389\n0.912231 0.813141 0.237427\n0.935333 0.813660 0.238556\n0.959961 0.814148 0.239685\n0.063538 0.823120 0.201538\n0.080872 0.823669 0.202728\n0.099823 0.824188 0.204010\n0.120575 0.824768 0.205292\n0.143555 0.825256 0.206512\n0.169037 0.825806 0.207764\n0.197296 0.826355 0.209015\n0.228180 0.826874 0.210297\n0.261627 0.827393 0.211548\n0.297302 0.827911 0.212769\n0.334991 0.828461 0.214020\n0.374542 0.828949 0.215271\n0.415497 0.829437 0.216553\n0.457458 0.829987 0.217743\n0.499420 0.830505 0.218994\n0.539154 0.830994 0.220215\n0.576508 0.831543 0.221436\n0.611328 0.832031 0.222656\n0.643616 0.832489 0.223877\n0.673767 0.833008 0.225067\n0.702026 0.833496 0.226318\n0.728729 0.833984 0.227448\n0.754028 0.834473 0.228638\n0.778229 0.834930 0.229828\n0.801544 0.835388 0.230988\n0.824188 0.835846 0.232117\n0.846283 0.836273 0.233276\n0.868195 0.836761 0.234375\n0.890076 0.837189 0.235474\n0.912323 0.837646 0.236542\n0.935394 0.838074 0.237640\n0.959961 0.838501 0.238708\n0.065277 0.849304 0.200684\n0.082703 0.849731 0.201996\n0.101746 0.850189 0.203217\n0.122681 0.850647 0.204529\n0.145782 0.851074 0.205780\n0.171448 0.851501 0.207062\n0.199829 0.851959 0.208313\n0.230835 0.852356 0.209564\n0.264282 0.852844 0.210846\n0.300049 0.853241 0.212128\n0.337738 0.853699 0.213318\n0.377228 0.854126 0.214569\n0.418091 0.854523 0.215820\n0.459991 0.854950 0.217041\n0.501740 0.855408 0.218262\n0.541260 0.855804 0.219513\n0.578369 0.856262 0.220764\n0.612854 0.856628 0.221985\n0.644989 0.857056 0.223145\n0.674896 0.857422 0.224365\n0.703033 0.857880 0.225555\n0.729553 0.858246 0.226715\n0.754761 0.858673 0.227875\n0.778870 0.859039 0.229065\n0.802094 0.859406 0.230194\n0.824615 0.859772 0.231354\n0.846649 0.860138 0.232452\n0.868469 0.860535 0.233551\n0.890320 0.860931 0.234650\n0.912476 0.861237 0.235687\n0.935486 0.861572 0.236755\n0.959961 0.861969 0.237823\n0.067047 0.874542 0.200012\n0.084534 0.874908 0.201263\n0.103729 0.875275 0.202576\n0.124756 0.875641 0.203827\n0.148010 0.876007 0.205139\n0.173767 0.876343 0.206390\n0.202332 0.876740 0.207703\n0.233398 0.877045 0.208923\n0.266968 0.877411 0.210205\n0.302734 0.877777 0.211456\n0.340515 0.878113 0.212708\n0.379974 0.878479 0.213989\n0.420776 0.878815 0.215210\n0.462555 0.879181 0.216461\n0.504089 0.879517 0.217682\n0.543274 0.879852 0.218903\n0.580078 0.880157 0.220123\n0.614380 0.880524 0.221313\n0.646301 0.880829 0.222534\n0.676056 0.881165 0.223724\n0.704010 0.881500 0.224884\n0.730377 0.881805 0.226044\n0.755463 0.882111 0.227264\n0.779449 0.882416 0.228363\n0.802551 0.882751 0.229462\n0.824982 0.883057 0.230591\n0.846954 0.883362 0.231659\n0.868774 0.883606 0.232758\n0.890533 0.883942 0.233856\n0.912628 0.884186 0.234863\n0.935516 0.884460 0.235931\n0.959961 0.884766 0.236877\n0.068787 0.899231 0.199432\n0.086395 0.899475 0.200684\n0.105682 0.899811 0.201996\n0.126831 0.900085 0.203278\n0.150208 0.900391 0.204559\n0.176178 0.900635 0.205841\n0.204834 0.900940 0.207123\n0.236023 0.901184 0.208405\n0.269623 0.901489 0.209625\n0.305450 0.901764 0.210907\n0.343201 0.902008 0.212158\n0.382599 0.902313 0.213440\n0.423370 0.902588 0.214661\n0.465027 0.902832 0.215881\n0.506317 0.903137 0.217102\n0.545288 0.903381 0.218323\n0.581848 0.903656 0.219543\n0.615875 0.903931 0.220764\n0.647583 0.904175 0.221893\n0.677155 0.904449 0.223114\n0.704956 0.904663 0.224213\n0.731171 0.904938 0.225403\n0.756134 0.905151 0.226562\n0.780029 0.905396 0.227631\n0.803040 0.905640 0.228790\n0.825409 0.905853 0.229858\n0.847290 0.906097 0.230896\n0.868958 0.906342 0.231995\n0.890686 0.906555 0.233063\n0.912781 0.906769 0.234039\n0.935577 0.906952 0.235046\n0.959961 0.907166 0.236023\n0.070557 0.923645 0.198883\n0.088226 0.923828 0.200134\n0.107635 0.924042 0.201385\n0.128937 0.924255 0.202698\n0.152466 0.924469 0.204010\n0.178558 0.924713 0.205261\n0.207336 0.924896 0.206573\n0.238647 0.925079 0.207825\n0.272369 0.925293 0.209106\n0.308136 0.925537 0.210327\n0.345886 0.925751 0.211609\n0.385284 0.925934 0.212830\n0.425964 0.926117 0.214050\n0.467499 0.926331 0.215302\n0.508514 0.926575 0.216553\n0.547211 0.926727 0.217712\n0.583496 0.926941 0.218903\n0.617340 0.927124 0.220123\n0.648804 0.927338 0.221222\n0.678223 0.927490 0.222443\n0.705841 0.927704 0.223572\n0.731964 0.927887 0.224670\n0.756805 0.928040 0.225800\n0.780609 0.928223 0.226898\n0.803528 0.928436 0.227997\n0.825806 0.928558 0.229065\n0.847626 0.928741 0.230103\n0.869232 0.928894 0.231140\n0.890839 0.929077 0.232117\n0.912842 0.929260 0.233124\n0.935669 0.929382 0.234100\n0.959961 0.929535 0.235016\n0.072296 0.948151 0.198273\n0.090118 0.948303 0.199554\n0.109619 0.948456 0.200836\n0.131042 0.948578 0.202148\n0.154724 0.948700 0.203400\n0.180969 0.948883 0.204712\n0.209839 0.948975 0.205963\n0.241241 0.949127 0.207275\n0.274963 0.949280 0.208496\n0.310791 0.949432 0.209747\n0.348572 0.949585 0.210999\n0.387939 0.949768 0.212219\n0.428497 0.949860 0.213409\n0.469910 0.950012 0.214661\n0.510712 0.950134 0.215851\n0.549103 0.950256 0.217041\n0.585175 0.950378 0.218231\n0.618774 0.950470 0.219421\n0.650055 0.950623 0.220581\n0.679260 0.950745 0.221710\n0.706696 0.950867 0.222809\n0.732727 0.951019 0.223907\n0.757446 0.951141 0.225006\n0.781097 0.951233 0.226074\n0.803986 0.951355 0.227142\n0.826141 0.951477 0.228180\n0.847931 0.951569 0.229156\n0.869476 0.951691 0.230164\n0.891022 0.951782 0.231110\n0.912994 0.951874 0.232086\n0.935699 0.951996 0.233002\n0.959961 0.952118 0.233887\n0.074097 0.973328 0.197601\n0.091980 0.973358 0.198883\n0.111572 0.973480 0.200165\n0.133118 0.973541 0.201447\n0.156952 0.973663 0.202728\n0.183289 0.973694 0.204041\n0.212311 0.973816 0.205261\n0.243805 0.973846 0.206512\n0.277588 0.973969 0.207764\n0.313446 0.974030 0.209045\n0.351166 0.974091 0.210236\n0.390411 0.974182 0.211517\n0.431000 0.974213 0.212708\n0.472260 0.974304 0.213898\n0.512756 0.974365 0.215057\n0.550964 0.974396 0.216278\n0.586792 0.974518 0.217407\n0.620087 0.974548 0.218506\n0.651184 0.974609 0.219696\n0.680237 0.974701 0.220795\n0.707581 0.974731 0.221924\n0.733459 0.974823 0.222961\n0.758087 0.974854 0.224030\n0.781647 0.974915 0.225067\n0.804413 0.975006 0.226044\n0.826538 0.975067 0.227112\n0.848236 0.975098 0.228058\n0.869629 0.975189 0.229065\n0.891235 0.975189 0.229950\n0.913086 0.975250 0.230865\n0.935791 0.975281 0.231750\n0.959961 0.975342 0.232605\n0.075867 1.000000 0.196716\n0.093842 1.000000 0.197968\n0.113556 1.000000 0.199280\n0.135162 1.000000 0.200562\n0.159149 1.000000 0.201843\n0.185699 1.000000 0.203125\n0.214752 1.000000 0.204346\n0.246338 1.000000 0.205627\n0.280182 1.000000 0.206879\n0.316010 1.000000 0.208069\n0.353729 1.000000 0.209290\n0.393005 1.000000 0.210541\n0.433441 1.000000 0.211670\n0.474518 1.000000 0.212860\n0.514801 1.000000 0.214050\n0.552734 1.000000 0.215210\n0.588318 1.000000 0.216370\n0.621460 1.000000 0.217468\n0.652313 1.000000 0.218567\n0.681213 1.000000 0.219635\n0.708374 1.000000 0.220734\n0.734161 1.000000 0.221802\n0.758667 1.000000 0.222809\n0.782135 1.000000 0.223816\n0.804810 1.000000 0.224823\n0.826874 1.000000 0.225769\n0.848480 1.000000 0.226715\n0.869904 1.000000 0.227631\n0.891357 1.000000 0.228516\n0.913208 1.000000 0.229370\n0.935822 1.000000 0.230255\n0.959961 1.000000 0.231079\n0.032166 0.001984 0.296814\n0.047668 0.002563 0.297333\n0.064331 0.003204 0.297913\n0.082428 0.003845 0.298462\n0.102295 0.004517 0.299042\n0.124329 0.005219 0.299683\n0.148865 0.005951 0.300293\n0.176300 0.006714 0.300964\n0.206818 0.007477 0.301636\n0.240356 0.008301 0.302368\n0.276642 0.009125 0.303070\n0.315460 0.009949 0.303833\n0.356506 0.010834 0.304565\n0.399445 0.011749 0.305359\n0.443848 0.012665 0.306122\n0.488861 0.013580 0.306976\n0.532013 0.014557 0.307800\n0.572357 0.015533 0.308655\n0.609863 0.016541 0.309540\n0.644592 0.017548 0.310364\n0.676819 0.018585 0.311279\n0.707001 0.019684 0.312195\n0.735443 0.020752 0.313141\n0.762390 0.021820 0.314056\n0.788177 0.022949 0.315002\n0.812988 0.024078 0.316010\n0.837128 0.025238 0.316956\n0.860870 0.026428 0.317963\n0.884583 0.027618 0.318939\n0.908569 0.028809 0.319946\n0.933411 0.030029 0.320953\n0.959961 0.031311 0.322021\n0.032959 0.018188 0.295898\n0.048462 0.018860 0.296509\n0.065247 0.019562 0.297089\n0.083405 0.020264 0.297699\n0.103455 0.020996 0.298340\n0.125488 0.021759 0.298950\n0.150177 0.022552 0.299683\n0.177734 0.023346 0.300385\n0.208405 0.024170 0.301056\n0.242035 0.025055 0.301819\n0.278412 0.025940 0.302582\n0.317291 0.026825 0.303375\n0.358398 0.027802 0.304169\n0.401337 0.028748 0.304993\n0.445740 0.029694 0.305817\n0.490601 0.030701 0.306641\n0.533600 0.031738 0.307495\n0.573761 0.032776 0.308380\n0.611115 0.033875 0.309296\n0.645691 0.034943 0.310150\n0.677795 0.036041 0.311096\n0.707855 0.037170 0.312073\n0.736145 0.038300 0.312988\n0.762970 0.039459 0.313934\n0.788666 0.040680 0.314941\n0.813385 0.041870 0.315918\n0.837494 0.043121 0.316895\n0.861176 0.044342 0.317902\n0.884796 0.045593 0.318909\n0.908752 0.046906 0.319946\n0.933502 0.048187 0.321014\n0.959961 0.049530 0.322052\n0.033722 0.035370 0.294983\n0.049377 0.036102 0.295624\n0.066162 0.036865 0.296234\n0.084473 0.037659 0.296906\n0.104553 0.038452 0.297607\n0.126770 0.039246 0.298279\n0.151550 0.040131 0.298981\n0.179321 0.041016 0.299744\n0.210083 0.041931 0.300476\n0.243805 0.042877 0.301239\n0.280304 0.043823 0.302032\n0.319244 0.044800 0.302856\n0.360352 0.045837 0.303711\n0.403290 0.046844 0.304535\n0.447693 0.047913 0.305389\n0.492462 0.048981 0.306274\n0.535248 0.050079 0.307129\n0.575256 0.051208 0.308014\n0.612396 0.052368 0.308929\n0.646790 0.053528 0.309875\n0.678772 0.054718 0.310791\n0.708679 0.055969 0.311768\n0.736877 0.057159 0.312744\n0.763580 0.058411 0.313690\n0.789185 0.059692 0.314728\n0.813873 0.060974 0.315674\n0.837860 0.062317 0.316742\n0.861511 0.063629 0.317749\n0.885010 0.065002 0.318756\n0.908905 0.066376 0.319885\n0.933594 0.067749 0.320923\n0.959961 0.069153 0.321899\n0.034637 0.053802 0.293976\n0.050262 0.054596 0.294678\n0.067169 0.055420 0.295349\n0.085571 0.056335 0.295990\n0.105743 0.057220 0.296722\n0.128143 0.058105 0.297455\n0.153046 0.059052 0.298248\n0.180939 0.060059 0.298981\n0.211823 0.061066 0.299774\n0.245667 0.062073 0.300598\n0.282227 0.063141 0.301422\n0.321289 0.064209 0.302277\n0.362427 0.065308 0.303101\n0.405396 0.066406 0.303925\n0.449707 0.067627 0.304810\n0.494415 0.068787 0.305725\n0.536987 0.069977 0.306610\n0.576782 0.071167 0.307587\n0.613708 0.072449 0.308502\n0.647919 0.073700 0.309418\n0.679749 0.075012 0.310425\n0.709534 0.076355 0.311340\n0.737610 0.077637 0.312378\n0.764252 0.079041 0.313324\n0.789734 0.080353 0.314331\n0.814301 0.081787 0.315338\n0.838226 0.083252 0.316376\n0.861786 0.084656 0.317413\n0.885254 0.086121 0.318451\n0.909088 0.087646 0.319489\n0.933655 0.089142 0.320557\n0.959961 0.090668 0.321594\n0.035553 0.073883 0.292969\n0.051300 0.074799 0.293610\n0.068237 0.075745 0.294312\n0.086731 0.076691 0.295013\n0.107025 0.077728 0.295776\n0.129517 0.078705 0.296539\n0.154602 0.079773 0.297302\n0.182587 0.080872 0.298157\n0.213654 0.081970 0.298920\n0.247650 0.083099 0.299744\n0.284271 0.084259 0.300568\n0.323303 0.085419 0.301453\n0.364594 0.086670 0.302307\n0.407532 0.087891 0.303162\n0.451813 0.089203 0.304077\n0.496368 0.090485 0.305023\n0.538757 0.091766 0.305908\n0.578339 0.093109 0.306885\n0.615051 0.094543 0.307861\n0.649109 0.095886 0.308746\n0.680786 0.097321 0.309753\n0.710419 0.098755 0.310760\n0.738373 0.100189 0.311768\n0.764923 0.101715 0.312744\n0.790314 0.103180 0.313751\n0.814789 0.104736 0.314789\n0.838654 0.106323 0.315765\n0.862091 0.107880 0.316803\n0.885498 0.109497 0.317841\n0.909210 0.111084 0.318909\n0.933746 0.112701 0.319977\n0.959961 0.114410 0.321014\n0.036560 0.096039 0.291656\n0.052338 0.097076 0.292358\n0.069366 0.098083 0.293091\n0.087982 0.099213 0.293854\n0.108398 0.100342 0.294647\n0.130981 0.101471 0.295410\n0.156189 0.102631 0.296204\n0.184418 0.103882 0.297028\n0.215546 0.105103 0.297852\n0.249664 0.106323 0.298676\n0.286407 0.107666 0.299561\n0.325470 0.108948 0.300415\n0.366760 0.110321 0.301331\n0.409698 0.111694 0.302246\n0.454010 0.113068 0.303162\n0.498383 0.114532 0.304108\n0.540527 0.115967 0.304993\n0.579865 0.117462 0.305908\n0.616455 0.118988 0.306946\n0.650299 0.120483 0.307831\n0.681824 0.122070 0.308838\n0.711334 0.123657 0.309814\n0.739136 0.125275 0.310852\n0.765564 0.126923 0.311890\n0.790833 0.128571 0.312836\n0.815247 0.130249 0.313873\n0.839020 0.131989 0.314880\n0.862396 0.133636 0.315948\n0.885712 0.135406 0.317017\n0.909363 0.137207 0.318054\n0.933838 0.138977 0.319092\n0.959961 0.140808 0.320129\n0.037598 0.120728 0.290100\n0.053467 0.121918 0.290894\n0.070587 0.123077 0.291626\n0.089264 0.124298 0.292419\n0.109802 0.125580 0.293243\n0.132538 0.126862 0.294006\n0.157898 0.128204 0.294800\n0.186218 0.129547 0.295685\n0.217560 0.130890 0.296478\n0.251740 0.132324 0.297363\n0.288574 0.133728 0.298218\n0.327728 0.135223 0.299133\n0.369019 0.136780 0.300049\n0.411957 0.138275 0.300934\n0.456207 0.139801 0.301880\n0.500458 0.141449 0.302795\n0.542328 0.143005 0.303741\n0.581482 0.144684 0.304688\n0.617859 0.146393 0.305664\n0.651550 0.148041 0.306610\n0.682861 0.149780 0.307678\n0.712219 0.151489 0.308594\n0.739960 0.153290 0.309601\n0.766266 0.155121 0.310638\n0.791382 0.156921 0.311615\n0.815735 0.158783 0.312622\n0.839417 0.160706 0.313690\n0.862762 0.162567 0.314636\n0.885925 0.164520 0.315735\n0.909546 0.166473 0.316742\n0.933899 0.168427 0.317810\n0.959961 0.170410 0.318848\n0.038727 0.148499 0.288300\n0.054657 0.149841 0.289062\n0.071869 0.151154 0.289856\n0.090607 0.152557 0.290649\n0.111267 0.153961 0.291473\n0.134155 0.155426 0.292267\n0.159668 0.156921 0.293091\n0.188141 0.158417 0.293945\n0.219635 0.159943 0.294800\n0.253937 0.161591 0.295685\n0.290802 0.163177 0.296570\n0.330078 0.164825 0.297485\n0.371338 0.166504 0.298370\n0.414276 0.168182 0.299255\n0.458435 0.169952 0.300232\n0.502533 0.171722 0.301147\n0.544159 0.173492 0.302124\n0.583160 0.175354 0.303070\n0.619293 0.177216 0.304016\n0.652740 0.179047 0.305023\n0.683929 0.180969 0.305969\n0.713135 0.182892 0.306946\n0.740723 0.184845 0.307953\n0.766937 0.186859 0.308960\n0.792023 0.188873 0.309937\n0.816193 0.190887 0.310944\n0.839813 0.192993 0.312012\n0.863007 0.195007 0.312988\n0.886230 0.197144 0.314026\n0.909698 0.199219 0.315063\n0.933990 0.201385 0.316071\n0.959961 0.203583 0.317139\n0.039886 0.179932 0.286102\n0.055878 0.181396 0.286896\n0.073151 0.182892 0.287689\n0.092041 0.184509 0.288483\n0.112823 0.186096 0.289276\n0.135834 0.187683 0.290070\n0.161499 0.189423 0.290955\n0.190094 0.191040 0.291779\n0.221741 0.192780 0.292694\n0.256134 0.194580 0.293579\n0.293121 0.196350 0.294464\n0.332428 0.198151 0.295380\n0.373688 0.200043 0.296326\n0.416656 0.201904 0.297150\n0.460724 0.203827 0.298157\n0.504639 0.205811 0.299072\n0.546143 0.207733 0.299988\n0.584747 0.209747 0.300964\n0.620728 0.211700 0.301941\n0.654022 0.213806 0.302887\n0.684998 0.215912 0.303864\n0.714050 0.217987 0.304871\n0.741547 0.220093 0.305847\n0.767578 0.222260 0.306854\n0.792572 0.224426 0.307831\n0.816681 0.226593 0.308868\n0.840210 0.228821 0.309875\n0.863342 0.231049 0.310883\n0.886444 0.233276 0.311890\n0.909851 0.235535 0.312927\n0.934082 0.237793 0.313904\n0.959961 0.240112 0.314941\n0.041077 0.215240 0.283417\n0.057159 0.216919 0.284241\n0.074493 0.218628 0.285034\n0.093506 0.220337 0.285797\n0.114410 0.222046 0.286652\n0.137543 0.223877 0.287476\n0.163391 0.225708 0.288361\n0.192169 0.227539 0.289246\n0.223938 0.229431 0.290100\n0.258453 0.231384 0.290985\n0.295502 0.233307 0.291870\n0.334839 0.235260 0.292816\n0.376190 0.237305 0.293732\n0.419067 0.239288 0.294617\n0.463104 0.241394 0.295624\n0.506744 0.243439 0.296539\n0.547974 0.245544 0.297485\n0.586456 0.247742 0.298492\n0.622131 0.249847 0.299438\n0.655212 0.252075 0.300385\n0.686066 0.254303 0.301392\n0.714996 0.256470 0.302338\n0.742310 0.258759 0.303375\n0.768311 0.261047 0.304352\n0.793152 0.263306 0.305298\n0.817169 0.265625 0.306366\n0.840607 0.267975 0.307343\n0.863678 0.270233 0.308350\n0.886688 0.272614 0.309357\n0.910004 0.274902 0.310394\n0.934174 0.277344 0.311432\n0.959961 0.279755 0.312378\n0.042358 0.254333 0.280365\n0.058502 0.256165 0.281158\n0.075958 0.257965 0.281952\n0.095062 0.259827 0.282806\n0.116058 0.261719 0.283661\n0.139374 0.263641 0.284515\n0.165344 0.265625 0.285370\n0.194275 0.267578 0.286255\n0.226166 0.269562 0.287170\n0.260803 0.271637 0.288055\n0.297943 0.273682 0.288971\n0.337311 0.275787 0.289856\n0.378632 0.277954 0.290833\n0.421509 0.280090 0.291779\n0.465454 0.282257 0.292694\n0.508911 0.284454 0.293610\n0.549866 0.286652 0.294617\n0.588135 0.288971 0.295563\n0.623627 0.291168 0.296539\n0.656525 0.293488 0.297485\n0.687195 0.295807 0.298523\n0.715942 0.298065 0.299469\n0.743134 0.300446 0.300476\n0.768982 0.302826 0.301483\n0.793732 0.305145 0.302490\n0.817657 0.307556 0.303497\n0.841003 0.309875 0.304474\n0.863983 0.312286 0.305481\n0.886932 0.314758 0.306488\n0.910187 0.317139 0.307465\n0.934265 0.319550 0.308533\n0.959961 0.322052 0.309540\n0.043610 0.296844 0.276917\n0.059845 0.298706 0.277679\n0.077423 0.300629 0.278534\n0.096649 0.302673 0.279419\n0.117767 0.304626 0.280273\n0.141205 0.306641 0.281158\n0.167358 0.308716 0.282043\n0.196472 0.310791 0.282898\n0.228485 0.312927 0.283844\n0.263214 0.315063 0.284729\n0.300385 0.317200 0.285675\n0.339874 0.319397 0.286621\n0.381165 0.321564 0.287537\n0.424011 0.323822 0.288483\n0.467896 0.326080 0.289429\n0.511078 0.328369 0.290405\n0.551880 0.330658 0.291382\n0.589844 0.332977 0.292358\n0.625122 0.335266 0.293304\n0.657806 0.337616 0.294312\n0.688263 0.339996 0.295319\n0.716888 0.342346 0.296326\n0.743927 0.344757 0.297302\n0.769653 0.347168 0.298309\n0.794312 0.349518 0.299255\n0.818146 0.351990 0.300293\n0.841400 0.354370 0.301300\n0.864349 0.356812 0.302307\n0.887146 0.359253 0.303345\n0.910370 0.361694 0.304321\n0.934326 0.364136 0.305328\n0.959961 0.366577 0.306366\n0.045013 0.342316 0.273102\n0.061279 0.344208 0.273956\n0.078949 0.346283 0.274780\n0.098297 0.348328 0.275726\n0.119568 0.350342 0.276581\n0.143127 0.352478 0.277496\n0.169434 0.354614 0.278442\n0.198700 0.356720 0.279297\n0.230865 0.358917 0.280212\n0.265686 0.361145 0.281158\n0.302948 0.363312 0.282104\n0.342407 0.365540 0.283051\n0.383759 0.367798 0.283997\n0.426575 0.370117 0.284943\n0.470276 0.372375 0.285889\n0.513306 0.374695 0.286865\n0.553802 0.376953 0.287903\n0.591553 0.379333 0.288879\n0.626556 0.381653 0.289825\n0.659027 0.384064 0.290833\n0.689392 0.386444 0.291840\n0.717834 0.388794 0.292816\n0.744720 0.391174 0.293823\n0.770386 0.393585 0.294861\n0.794952 0.396027 0.295898\n0.818665 0.398407 0.296875\n0.841797 0.400818 0.297852\n0.864624 0.403290 0.298889\n0.887421 0.405670 0.299896\n0.910522 0.408081 0.300934\n0.934448 0.410522 0.301971\n0.959961 0.412964 0.302917\n0.046387 0.390228 0.269073\n0.062775 0.392212 0.269958\n0.080505 0.394318 0.270844\n0.099945 0.396362 0.271729\n0.121338 0.398468 0.272644\n0.145111 0.400574 0.273560\n0.171600 0.402771 0.274506\n0.200989 0.404938 0.275452\n0.233276 0.407104 0.276337\n0.268158 0.409302 0.277283\n0.305481 0.411499 0.278290\n0.345001 0.413757 0.279236\n0.386261 0.416016 0.280182\n0.429077 0.418274 0.281189\n0.472778 0.420593 0.282166\n0.515533 0.422882 0.283142\n0.555756 0.425201 0.284088\n0.593292 0.427551 0.285126\n0.628052 0.429840 0.286194\n0.660339 0.432190 0.287140\n0.690460 0.434601 0.288177\n0.718842 0.436859 0.289185\n0.745605 0.439270 0.290222\n0.771057 0.441620 0.291168\n0.795532 0.443970 0.292206\n0.819122 0.446381 0.293274\n0.842194 0.448730 0.294250\n0.864960 0.451111 0.295319\n0.887695 0.453491 0.296326\n0.910675 0.455811 0.297302\n0.934509 0.458221 0.298370\n0.959961 0.460571 0.299377\n0.047821 0.440033 0.264862\n0.064270 0.442078 0.265778\n0.082123 0.444122 0.266693\n0.101685 0.446228 0.267578\n0.123230 0.448273 0.268524\n0.147125 0.450409 0.269470\n0.173767 0.452606 0.270416\n0.203369 0.454681 0.271393\n0.235748 0.456909 0.272278\n0.270721 0.459076 0.273285\n0.308136 0.461243 0.274292\n0.347687 0.463440 0.275269\n0.388977 0.465668 0.276215\n0.431732 0.467926 0.277283\n0.475250 0.470154 0.278259\n0.517761 0.472351 0.279297\n0.557709 0.474640 0.280304\n0.594971 0.476898 0.281311\n0.629547 0.479126 0.282318\n0.661652 0.481415 0.283325\n0.691559 0.483643 0.284363\n0.719727 0.485931 0.285431\n0.746399 0.488190 0.286469\n0.771729 0.490417 0.287476\n0.796082 0.492767 0.288513\n0.819611 0.494965 0.289551\n0.842590 0.497223 0.290558\n0.865234 0.499512 0.291595\n0.887878 0.501770 0.292664\n0.910858 0.503967 0.293671\n0.934601 0.506195 0.294708\n0.959961 0.508362 0.295685\n0.049286 0.490997 0.260590\n0.065796 0.492950 0.261475\n0.083771 0.494934 0.262451\n0.103455 0.496979 0.263397\n0.125122 0.498993 0.264343\n0.149231 0.501038 0.265350\n0.175995 0.503021 0.266266\n0.205780 0.505096 0.267273\n0.238251 0.507202 0.268280\n0.273346 0.509247 0.269287\n0.310791 0.511322 0.270264\n0.350311 0.513428 0.271301\n0.391632 0.515411 0.272308\n0.434296 0.517487 0.273376\n0.477722 0.519653 0.274414\n0.520020 0.521698 0.275421\n0.559692 0.523773 0.276489\n0.596680 0.525848 0.277496\n0.631012 0.527832 0.278625\n0.662903 0.529999 0.279663\n0.692657 0.531952 0.280701\n0.720703 0.533997 0.281769\n0.747223 0.536041 0.282867\n0.772461 0.538025 0.283875\n0.796661 0.540131 0.284943\n0.820129 0.542145 0.286041\n0.843018 0.544098 0.287079\n0.865601 0.546082 0.288177\n0.888153 0.548065 0.289246\n0.910980 0.549988 0.290253\n0.934692 0.551941 0.291321\n0.959961 0.553802 0.292419\n0.050781 0.540710 0.256470\n0.067413 0.542450 0.257416\n0.085480 0.544281 0.258453\n0.105255 0.546082 0.259430\n0.127075 0.547882 0.260376\n0.151306 0.549683 0.261475\n0.178345 0.551544 0.262543\n0.208191 0.553314 0.263519\n0.240845 0.555176 0.264557\n0.275970 0.557007 0.265594\n0.313477 0.558807 0.266663\n0.353058 0.560699 0.267731\n0.394287 0.562439 0.268768\n0.436981 0.564270 0.269836\n0.480255 0.566162 0.270966\n0.522278 0.567902 0.272003\n0.561646 0.569733 0.273132\n0.598389 0.571594 0.274200\n0.632507 0.573395 0.275299\n0.664154 0.575195 0.276428\n0.693817 0.576935 0.277527\n0.721649 0.578766 0.278595\n0.748016 0.580536 0.279694\n0.773102 0.582275 0.280792\n0.797241 0.584076 0.281891\n0.820587 0.585815 0.282990\n0.843384 0.587524 0.284027\n0.865906 0.589264 0.285156\n0.888367 0.590973 0.286255\n0.911194 0.592651 0.287323\n0.934784 0.594360 0.288391\n0.959961 0.595947 0.289459\n0.052307 0.586761 0.252930\n0.069031 0.588287 0.253845\n0.087189 0.589935 0.254883\n0.107147 0.591492 0.256012\n0.129089 0.593079 0.257050\n0.153473 0.594696 0.258118\n0.180603 0.596252 0.259125\n0.210663 0.597870 0.260254\n0.243408 0.599457 0.261383\n0.278625 0.601044 0.262451\n0.316193 0.602661 0.263550\n0.355774 0.604248 0.264648\n0.396942 0.605835 0.265747\n0.439575 0.607422 0.266846\n0.482727 0.609039 0.267975\n0.524475 0.610596 0.269104\n0.563599 0.612152 0.270203\n0.600159 0.613770 0.271362\n0.633972 0.615265 0.272430\n0.665466 0.616852 0.273590\n0.694855 0.618378 0.274689\n0.722565 0.619965 0.275787\n0.748840 0.621521 0.277008\n0.773804 0.622986 0.278137\n0.797821 0.624542 0.279205\n0.821075 0.626038 0.280365\n0.843811 0.627533 0.281433\n0.866211 0.628998 0.282532\n0.888611 0.630493 0.283661\n0.911346 0.631927 0.284760\n0.934845 0.633392 0.285858\n0.959961 0.634766 0.286926\n0.053894 0.629181 0.249786\n0.070679 0.630493 0.250885\n0.088959 0.631897 0.251984\n0.109009 0.633270 0.253113\n0.131134 0.634613 0.254120\n0.155670 0.636047 0.255280\n0.182983 0.637390 0.256317\n0.213165 0.638794 0.257477\n0.246033 0.640167 0.258636\n0.281342 0.641510 0.259735\n0.318939 0.642883 0.260895\n0.358551 0.644318 0.262024\n0.399719 0.645660 0.263184\n0.442230 0.647003 0.264343\n0.485229 0.648376 0.265503\n0.526642 0.649750 0.266602\n0.565552 0.651123 0.267761\n0.601776 0.652435 0.268860\n0.635437 0.653778 0.270050\n0.666748 0.655151 0.271210\n0.695953 0.656433 0.272339\n0.723511 0.657745 0.273529\n0.749603 0.659119 0.274658\n0.774506 0.660370 0.275787\n0.798431 0.661682 0.276947\n0.821564 0.662933 0.278137\n0.844147 0.664185 0.279236\n0.866516 0.665497 0.280396\n0.888855 0.666748 0.281433\n0.911530 0.667938 0.282623\n0.934967 0.669189 0.283752\n0.959961 0.670380 0.284821\n0.055481 0.667938 0.247284\n0.072357 0.669067 0.248352\n0.090759 0.670319 0.249481\n0.110901 0.671478 0.250580\n0.133179 0.672668 0.251709\n0.157898 0.673828 0.252899\n0.185425 0.675018 0.253998\n0.215668 0.676178 0.255188\n0.248657 0.677399 0.256378\n0.284088 0.678589 0.257507\n0.321716 0.679749 0.258728\n0.361298 0.680939 0.259888\n0.402405 0.682129 0.261017\n0.444885 0.683289 0.262207\n0.487701 0.684448 0.263397\n0.528839 0.685577 0.264557\n0.567474 0.686768 0.265747\n0.603485 0.687897 0.266907\n0.636902 0.689087 0.268097\n0.667938 0.690216 0.269257\n0.697021 0.691345 0.270416\n0.724457 0.692444 0.271606\n0.750366 0.693573 0.272797\n0.775177 0.694672 0.273895\n0.798950 0.695770 0.275085\n0.822052 0.696899 0.276276\n0.844574 0.697968 0.277374\n0.866791 0.699036 0.278564\n0.889038 0.700073 0.279633\n0.911682 0.701141 0.280792\n0.935028 0.702179 0.281952\n0.959961 0.703217 0.283020\n0.057129 0.703552 0.245148\n0.074097 0.704559 0.246246\n0.092590 0.705597 0.247406\n0.112854 0.706573 0.248596\n0.135284 0.707611 0.249756\n0.160187 0.708618 0.250946\n0.187805 0.709625 0.252106\n0.218262 0.710632 0.253326\n0.251343 0.711670 0.254517\n0.286774 0.712677 0.255646\n0.324463 0.713684 0.256927\n0.364014 0.714691 0.258118\n0.405151 0.715698 0.259277\n0.447540 0.716736 0.260498\n0.490204 0.717712 0.261658\n0.531067 0.718719 0.262878\n0.569397 0.719696 0.264069\n0.605103 0.720642 0.265289\n0.638336 0.721619 0.266449\n0.669189 0.722595 0.267700\n0.698090 0.723572 0.268799\n0.725372 0.724548 0.269989\n0.751190 0.725494 0.271179\n0.775848 0.726440 0.272339\n0.799500 0.727356 0.273529\n0.822479 0.728302 0.274658\n0.844910 0.729218 0.275848\n0.867126 0.730164 0.277008\n0.889313 0.731018 0.278107\n0.911835 0.731903 0.279266\n0.935120 0.732819 0.280365\n0.959961 0.733643 0.281494\n0.058777 0.736450 0.243347\n0.075867 0.737335 0.244568\n0.094452 0.738190 0.245758\n0.114868 0.739075 0.246918\n0.137390 0.739960 0.248138\n0.162476 0.740814 0.249359\n0.190247 0.741699 0.250519\n0.220856 0.742584 0.251770\n0.253998 0.743439 0.253021\n0.289520 0.744293 0.254181\n0.327240 0.745148 0.255432\n0.366760 0.746033 0.256592\n0.407867 0.746887 0.257843\n0.450165 0.747742 0.259064\n0.492676 0.748566 0.260254\n0.533234 0.749420 0.261475\n0.571320 0.750305 0.262726\n0.606812 0.751099 0.263916\n0.639771 0.751984 0.265137\n0.670441 0.752777 0.266327\n0.699158 0.753601 0.267517\n0.726257 0.754425 0.268707\n0.751953 0.755249 0.269897\n0.776489 0.756012 0.271027\n0.800079 0.756836 0.272217\n0.822906 0.757599 0.273376\n0.845306 0.758362 0.274536\n0.867401 0.759155 0.275665\n0.889526 0.759888 0.276825\n0.911987 0.760651 0.277893\n0.935181 0.761414 0.279022\n0.959961 0.762146 0.280090\n0.060394 0.767181 0.241913\n0.077606 0.767883 0.243164\n0.096344 0.768677 0.244385\n0.116852 0.769409 0.245605\n0.139587 0.770172 0.246826\n0.164825 0.770905 0.248047\n0.192749 0.771606 0.249268\n0.223480 0.772400 0.250519\n0.256714 0.773102 0.251770\n0.292297 0.773834 0.252960\n0.329987 0.774628 0.254181\n0.369537 0.775299 0.255432\n0.410583 0.776031 0.256653\n0.452789 0.776825 0.257904\n0.495056 0.777496 0.259094\n0.535370 0.778198 0.260345\n0.573212 0.778961 0.261597\n0.608398 0.779633 0.262756\n0.641144 0.780334 0.263977\n0.671631 0.781067 0.265167\n0.700195 0.781708 0.266388\n0.727142 0.782471 0.267578\n0.752686 0.783112 0.268738\n0.777100 0.783783 0.269928\n0.800629 0.784454 0.271057\n0.823425 0.785156 0.272247\n0.845673 0.785797 0.273407\n0.867706 0.786407 0.274536\n0.889771 0.787079 0.275665\n0.912079 0.787689 0.276794\n0.935303 0.788330 0.277924\n0.959961 0.788910 0.278931\n0.062134 0.796021 0.240784\n0.079407 0.796661 0.242004\n0.098267 0.797272 0.243286\n0.118896 0.797882 0.244476\n0.141724 0.798553 0.245697\n0.167145 0.799194 0.247009\n0.195221 0.799805 0.248230\n0.226044 0.800446 0.249481\n0.259369 0.801056 0.250702\n0.295044 0.801697 0.251984\n0.332764 0.802338 0.253235\n0.372284 0.802917 0.254486\n0.413300 0.803528 0.255676\n0.455414 0.804138 0.256989\n0.497437 0.804779 0.258118\n0.537476 0.805359 0.259338\n0.575073 0.805969 0.260620\n0.610046 0.806549 0.261780\n0.642517 0.807190 0.263062\n0.672791 0.807739 0.264252\n0.701233 0.808350 0.265472\n0.727997 0.808929 0.266663\n0.753448 0.809479 0.267792\n0.777740 0.810059 0.268982\n0.801147 0.810577 0.270142\n0.823822 0.811157 0.271271\n0.846039 0.811707 0.272430\n0.867981 0.812256 0.273560\n0.889954 0.812775 0.274689\n0.912231 0.813324 0.275757\n0.935364 0.813843 0.276855\n0.959961 0.814331 0.277924\n0.063843 0.823334 0.239807\n0.081238 0.823853 0.241058\n0.100159 0.824371 0.242340\n0.120972 0.824951 0.243591\n0.143951 0.825470 0.244873\n0.169464 0.825989 0.246124\n0.197754 0.826538 0.247345\n0.228699 0.827057 0.248596\n0.262085 0.827576 0.249847\n0.297791 0.828125 0.251160\n0.335510 0.828644 0.252350\n0.375000 0.829132 0.253632\n0.415955 0.829651 0.254852\n0.457916 0.830200 0.256134\n0.499817 0.830658 0.257355\n0.539612 0.831177 0.258606\n0.576904 0.831726 0.259827\n0.611572 0.832184 0.261017\n0.643890 0.832672 0.262268\n0.673981 0.833160 0.263397\n0.702209 0.833679 0.264618\n0.728882 0.834167 0.265808\n0.754181 0.834595 0.266998\n0.778320 0.835114 0.268158\n0.801666 0.835571 0.269257\n0.824249 0.836029 0.270386\n0.846375 0.836426 0.271515\n0.868286 0.836914 0.272675\n0.890106 0.837341 0.273743\n0.912354 0.837799 0.274811\n0.935394 0.838196 0.275909\n0.959961 0.838654 0.276978\n0.065582 0.849457 0.239044\n0.083069 0.849884 0.240326\n0.102081 0.850342 0.241577\n0.123077 0.850769 0.242828\n0.146179 0.851227 0.244080\n0.171875 0.851654 0.245361\n0.200226 0.852112 0.246613\n0.231293 0.852539 0.247955\n0.264740 0.852997 0.249176\n0.300568 0.853424 0.250427\n0.338348 0.853851 0.251709\n0.377747 0.854279 0.252930\n0.418671 0.854675 0.254211\n0.460510 0.855133 0.255463\n0.502228 0.855530 0.256683\n0.541656 0.855957 0.257904\n0.578674 0.856384 0.259094\n0.613129 0.856781 0.260345\n0.645203 0.857178 0.261536\n0.675140 0.857635 0.262726\n0.703217 0.858002 0.263885\n0.729706 0.858398 0.265106\n0.754883 0.858795 0.266205\n0.778992 0.859161 0.267365\n0.802185 0.859528 0.268524\n0.824677 0.859924 0.269623\n0.846741 0.860291 0.270782\n0.868500 0.860657 0.271820\n0.890350 0.861023 0.272858\n0.912537 0.861389 0.273956\n0.935486 0.861694 0.275024\n0.959961 0.862061 0.276031\n0.067322 0.874695 0.238373\n0.084930 0.875031 0.239685\n0.104126 0.875366 0.240936\n0.125122 0.875763 0.242218\n0.148407 0.876129 0.243500\n0.174225 0.876495 0.244781\n0.202759 0.876831 0.246033\n0.233917 0.877228 0.247314\n0.267426 0.877563 0.248535\n0.303284 0.877899 0.249817\n0.341064 0.878235 0.251099\n0.380463 0.878601 0.252319\n0.421265 0.878937 0.253601\n0.463043 0.879272 0.254883\n0.504486 0.879639 0.256042\n0.543701 0.879974 0.257263\n0.580414 0.880310 0.258453\n0.614685 0.880615 0.259644\n0.646515 0.880951 0.260895\n0.676270 0.881287 0.262024\n0.704163 0.881592 0.263214\n0.730560 0.881927 0.264404\n0.755585 0.882202 0.265472\n0.779572 0.882538 0.266663\n0.802673 0.882843 0.267822\n0.825073 0.883179 0.268860\n0.847015 0.883453 0.269958\n0.868805 0.883728 0.270996\n0.890564 0.884033 0.272125\n0.912628 0.884308 0.273132\n0.935547 0.884613 0.274109\n0.959961 0.884857 0.275146\n0.069122 0.899323 0.237762\n0.086761 0.899597 0.239044\n0.106049 0.899902 0.240387\n0.127228 0.900177 0.241669\n0.150635 0.900482 0.242950\n0.176636 0.900726 0.244232\n0.205261 0.901031 0.245453\n0.236542 0.901306 0.246765\n0.270142 0.901581 0.248016\n0.306000 0.901855 0.249298\n0.343719 0.902130 0.250519\n0.383087 0.902374 0.251740\n0.423859 0.902679 0.253021\n0.465515 0.902954 0.254242\n0.506683 0.903229 0.255463\n0.545624 0.903473 0.256653\n0.582153 0.903748 0.257904\n0.616150 0.903992 0.259094\n0.647797 0.904236 0.260223\n0.677338 0.904510 0.261383\n0.705078 0.904755 0.262543\n0.731323 0.905029 0.263702\n0.756256 0.905243 0.264832\n0.780121 0.905487 0.265961\n0.803162 0.905731 0.267029\n0.825500 0.905914 0.268066\n0.847382 0.906189 0.269165\n0.869019 0.906403 0.270172\n0.890778 0.906647 0.271210\n0.912781 0.906860 0.272247\n0.935577 0.907074 0.273193\n0.959961 0.907257 0.274231\n0.070862 0.923676 0.237213\n0.088623 0.923889 0.238556\n0.107971 0.924133 0.239807\n0.129303 0.924316 0.241089\n0.152893 0.924561 0.242401\n0.178986 0.924774 0.243652\n0.207825 0.924988 0.244934\n0.239136 0.925201 0.246216\n0.272797 0.925385 0.247467\n0.308655 0.925598 0.248718\n0.346436 0.925842 0.250000\n0.385742 0.926025 0.251221\n0.426422 0.926178 0.252411\n0.467896 0.926392 0.253632\n0.508911 0.926636 0.254852\n0.547577 0.926819 0.256073\n0.583801 0.927002 0.257233\n0.617615 0.927185 0.258423\n0.649048 0.927399 0.259583\n0.678375 0.927551 0.260742\n0.706024 0.927765 0.261841\n0.732117 0.927948 0.263031\n0.756927 0.928101 0.264099\n0.780701 0.928253 0.265167\n0.803589 0.928467 0.266235\n0.825836 0.928619 0.267303\n0.847687 0.928802 0.268341\n0.869293 0.928955 0.269318\n0.890900 0.929108 0.270355\n0.912872 0.929291 0.271301\n0.935669 0.929443 0.272217\n0.959961 0.929565 0.273193\n0.072662 0.948181 0.236664\n0.090454 0.948364 0.237976\n0.109955 0.948456 0.239166\n0.131378 0.948639 0.240509\n0.155151 0.948761 0.241791\n0.181396 0.948914 0.243011\n0.210327 0.949036 0.244354\n0.241730 0.949188 0.245605\n0.275482 0.949371 0.246857\n0.311340 0.949524 0.248108\n0.349091 0.949646 0.249359\n0.388336 0.949768 0.250580\n0.428986 0.949890 0.251831\n0.470276 0.950043 0.253021\n0.511078 0.950165 0.254150\n0.549469 0.950287 0.255402\n0.585449 0.950409 0.256561\n0.619019 0.950562 0.257690\n0.650238 0.950684 0.258881\n0.679413 0.950806 0.259979\n0.706879 0.950928 0.261078\n0.732849 0.951019 0.262177\n0.757599 0.951172 0.263275\n0.781219 0.951294 0.264313\n0.804047 0.951385 0.265320\n0.826233 0.951538 0.266388\n0.847992 0.951660 0.267426\n0.869507 0.951752 0.268341\n0.891083 0.951843 0.269318\n0.913025 0.951965 0.270233\n0.935699 0.952026 0.271088\n0.959961 0.952148 0.272095\n0.074402 0.973358 0.235901\n0.092346 0.973419 0.237274\n0.111938 0.973480 0.238525\n0.133514 0.973572 0.239807\n0.157379 0.973663 0.241119\n0.183777 0.973724 0.242371\n0.212799 0.973846 0.243652\n0.244293 0.973877 0.244904\n0.278046 0.973969 0.246124\n0.313904 0.974091 0.247406\n0.351593 0.974121 0.248566\n0.390930 0.974182 0.249847\n0.431396 0.974243 0.251038\n0.472656 0.974335 0.252197\n0.513153 0.974396 0.253387\n0.551300 0.974426 0.254608\n0.587036 0.974518 0.255707\n0.620361 0.974579 0.256836\n0.651459 0.974609 0.257996\n0.680420 0.974731 0.259064\n0.707733 0.974762 0.260132\n0.733551 0.974854 0.261261\n0.758179 0.974884 0.262268\n0.781738 0.974976 0.263336\n0.804474 0.975006 0.264252\n0.826569 0.975067 0.265320\n0.848267 0.975098 0.266266\n0.869720 0.975189 0.267212\n0.891266 0.975220 0.268066\n0.913116 0.975281 0.269012\n0.935822 0.975311 0.269867\n0.959961 0.975403 0.270752\n0.076172 1.000000 0.235046\n0.094177 1.000000 0.236359\n0.113892 1.000000 0.237640\n0.135590 1.000000 0.238922\n0.159576 1.000000 0.240234\n0.186127 1.000000 0.241486\n0.215271 1.000000 0.242737\n0.246826 1.000000 0.243988\n0.280609 1.000000 0.245178\n0.316528 1.000000 0.246460\n0.354156 1.000000 0.247620\n0.393433 1.000000 0.248840\n0.433899 1.000000 0.250031\n0.474945 1.000000 0.251221\n0.515228 1.000000 0.252411\n0.553070 1.000000 0.253510\n0.588562 1.000000 0.254608\n0.621704 1.000000 0.255737\n0.652557 1.000000 0.256866\n0.681396 1.000000 0.257904\n0.708557 1.000000 0.258972\n0.734283 1.000000 0.260010\n0.758759 1.000000 0.261017\n0.782227 1.000000 0.262024\n0.804901 1.000000 0.262939\n0.826904 1.000000 0.263977\n0.848541 1.000000 0.264832\n0.869965 1.000000 0.265778\n0.891388 1.000000 0.266663\n0.913239 1.000000 0.267517\n0.935822 1.000000 0.268341\n0.959961 1.000000 0.269165\n0.032318 0.002167 0.336578\n0.047821 0.002777 0.337128\n0.064484 0.003418 0.337677\n0.082611 0.004089 0.338318\n0.102509 0.004761 0.338898\n0.124542 0.005493 0.339569\n0.149109 0.006256 0.340179\n0.176575 0.006989 0.340881\n0.207153 0.007782 0.341583\n0.240692 0.008606 0.342285\n0.276978 0.009430 0.343018\n0.315796 0.010284 0.343750\n0.356842 0.011169 0.344513\n0.399841 0.012085 0.345367\n0.444214 0.013000 0.346191\n0.489136 0.013916 0.346924\n0.532349 0.014923 0.347809\n0.572632 0.015900 0.348663\n0.610077 0.016876 0.349548\n0.644775 0.017944 0.350433\n0.677032 0.018982 0.351379\n0.707153 0.020050 0.352295\n0.735596 0.021149 0.353210\n0.762512 0.022247 0.354156\n0.788269 0.023346 0.355103\n0.813080 0.024506 0.356110\n0.837219 0.025665 0.357086\n0.860931 0.026855 0.358093\n0.884644 0.028076 0.359131\n0.908600 0.029236 0.360107\n0.933441 0.030518 0.361145\n0.959961 0.031738 0.362152\n0.033112 0.018433 0.335754\n0.048615 0.019073 0.336334\n0.065399 0.019806 0.336914\n0.083618 0.020508 0.337616\n0.103577 0.021271 0.338196\n0.125763 0.022034 0.338837\n0.150421 0.022858 0.339600\n0.178040 0.023682 0.340302\n0.208740 0.024506 0.341034\n0.242371 0.025421 0.341766\n0.278748 0.026276 0.342560\n0.317627 0.027191 0.343323\n0.358734 0.028107 0.344177\n0.401703 0.029083 0.344940\n0.446106 0.030090 0.345856\n0.490997 0.031097 0.346680\n0.533936 0.032135 0.347565\n0.574036 0.033203 0.348450\n0.611328 0.034241 0.349365\n0.645844 0.035339 0.350281\n0.677979 0.036438 0.351166\n0.707977 0.037598 0.352142\n0.736298 0.038757 0.353088\n0.763092 0.039917 0.354034\n0.788757 0.041107 0.355011\n0.813477 0.042358 0.356049\n0.837555 0.043549 0.356995\n0.861267 0.044800 0.358063\n0.884888 0.046112 0.359100\n0.908783 0.047333 0.360107\n0.933502 0.048676 0.361176\n0.959961 0.050018 0.362213\n0.033905 0.035645 0.334839\n0.049530 0.036346 0.335480\n0.066315 0.037140 0.336121\n0.084656 0.037933 0.336792\n0.104767 0.038727 0.337463\n0.126984 0.039612 0.338165\n0.151855 0.040497 0.338928\n0.179565 0.041351 0.339661\n0.210388 0.042267 0.340424\n0.244141 0.043213 0.341217\n0.280609 0.044189 0.342041\n0.319580 0.045197 0.342834\n0.360718 0.046204 0.343658\n0.403687 0.047241 0.344574\n0.448090 0.048309 0.345398\n0.492798 0.049377 0.346252\n0.535583 0.050507 0.347198\n0.575531 0.051666 0.348083\n0.612640 0.052795 0.348999\n0.647034 0.053986 0.350006\n0.678955 0.055176 0.350891\n0.708832 0.056396 0.351868\n0.737030 0.057617 0.352875\n0.763702 0.058868 0.353851\n0.789276 0.060150 0.354828\n0.813995 0.061462 0.355835\n0.837952 0.062744 0.356873\n0.861542 0.064148 0.357880\n0.885040 0.065491 0.358948\n0.908936 0.066864 0.359985\n0.933594 0.068268 0.361023\n0.959961 0.069733 0.362061\n0.034790 0.054108 0.333923\n0.050476 0.054901 0.334534\n0.067383 0.055786 0.335266\n0.085754 0.056671 0.335968\n0.105988 0.057556 0.336700\n0.128387 0.058472 0.337433\n0.153290 0.059448 0.338196\n0.181213 0.060394 0.338989\n0.212189 0.061432 0.339783\n0.246033 0.062439 0.340546\n0.282623 0.063568 0.341400\n0.321625 0.064636 0.342255\n0.362793 0.065704 0.343109\n0.405762 0.066864 0.343964\n0.450104 0.068054 0.344849\n0.494751 0.069183 0.345764\n0.537323 0.070435 0.346649\n0.577026 0.071686 0.347656\n0.613953 0.072906 0.348572\n0.648193 0.074188 0.349548\n0.679962 0.075470 0.350525\n0.709686 0.076813 0.351501\n0.737762 0.078186 0.352448\n0.764374 0.079498 0.353485\n0.789856 0.080933 0.354462\n0.814392 0.082336 0.355530\n0.838287 0.083740 0.356537\n0.861847 0.085205 0.357544\n0.885284 0.086700 0.358612\n0.909088 0.088165 0.359650\n0.933655 0.089722 0.360718\n0.959961 0.091187 0.361786\n0.035736 0.074219 0.332825\n0.051514 0.075134 0.333496\n0.068451 0.076080 0.334229\n0.086945 0.077087 0.334961\n0.107269 0.078064 0.335724\n0.129791 0.079132 0.336517\n0.154846 0.080139 0.337280\n0.182922 0.081238 0.338074\n0.214020 0.082397 0.338898\n0.247986 0.083527 0.339783\n0.284607 0.084686 0.340607\n0.323730 0.085907 0.341461\n0.364929 0.087128 0.342346\n0.407898 0.088379 0.343262\n0.452209 0.089691 0.344147\n0.496704 0.090942 0.345123\n0.539093 0.092285 0.346008\n0.578583 0.093628 0.346985\n0.615326 0.094971 0.347931\n0.649323 0.096375 0.348907\n0.680939 0.097839 0.349884\n0.710602 0.099274 0.350861\n0.738525 0.100769 0.351837\n0.765015 0.102234 0.352844\n0.790405 0.103760 0.353851\n0.814850 0.105316 0.354919\n0.838684 0.106873 0.355896\n0.862152 0.108459 0.356934\n0.885559 0.110077 0.358063\n0.909271 0.111694 0.359070\n0.933746 0.113373 0.360107\n0.959961 0.115021 0.361145\n0.036774 0.096405 0.331573\n0.052551 0.097443 0.332275\n0.069611 0.098541 0.333008\n0.088196 0.099640 0.333862\n0.108643 0.100739 0.334595\n0.131317 0.101898 0.335388\n0.156494 0.103088 0.336182\n0.184723 0.104279 0.337006\n0.215942 0.105560 0.337891\n0.250000 0.106812 0.338715\n0.286774 0.108124 0.339569\n0.325928 0.109497 0.340485\n0.367157 0.110809 0.341339\n0.410126 0.112183 0.342285\n0.454407 0.113617 0.343231\n0.498749 0.115082 0.344147\n0.540863 0.116516 0.345062\n0.580170 0.118011 0.346069\n0.616699 0.119537 0.346985\n0.650543 0.121094 0.347992\n0.682007 0.122620 0.348938\n0.711517 0.124237 0.349976\n0.739319 0.125885 0.350952\n0.765686 0.127472 0.351990\n0.790955 0.129181 0.352966\n0.815369 0.130859 0.354034\n0.839081 0.132599 0.355042\n0.862457 0.134308 0.356079\n0.885742 0.136047 0.357147\n0.909393 0.137848 0.358185\n0.933868 0.139679 0.359253\n0.959961 0.141479 0.360229\n0.037811 0.121155 0.330048\n0.053711 0.122314 0.330811\n0.070831 0.123535 0.331573\n0.089539 0.124786 0.332367\n0.110046 0.126007 0.333221\n0.132843 0.127350 0.334015\n0.158203 0.128662 0.334808\n0.186584 0.130035 0.335663\n0.217957 0.131439 0.336548\n0.252106 0.132843 0.337402\n0.288971 0.134308 0.338287\n0.328186 0.135803 0.339172\n0.369415 0.137268 0.340088\n0.412384 0.138824 0.341034\n0.456543 0.140411 0.341919\n0.500824 0.141998 0.342896\n0.542694 0.143677 0.343842\n0.581757 0.145294 0.344818\n0.618073 0.146973 0.345734\n0.651733 0.148682 0.346771\n0.683014 0.150391 0.347748\n0.712372 0.152191 0.348694\n0.740082 0.153961 0.349731\n0.766388 0.155792 0.350739\n0.791504 0.157593 0.351776\n0.815826 0.159485 0.352783\n0.839478 0.161377 0.353790\n0.862793 0.163300 0.354828\n0.885986 0.165192 0.355865\n0.909576 0.167175 0.356873\n0.933960 0.169128 0.357941\n0.959961 0.171143 0.359009\n0.038940 0.148987 0.328278\n0.054871 0.150330 0.329010\n0.072083 0.151703 0.329803\n0.090851 0.153046 0.330627\n0.111572 0.154510 0.331421\n0.134460 0.155975 0.332275\n0.159943 0.157440 0.333099\n0.188507 0.158997 0.333954\n0.220001 0.160553 0.334869\n0.254272 0.162140 0.335724\n0.291229 0.163788 0.336639\n0.330475 0.165436 0.337585\n0.371796 0.167084 0.338440\n0.414734 0.168854 0.339386\n0.458832 0.170532 0.340271\n0.502899 0.172363 0.341248\n0.544586 0.174194 0.342224\n0.583405 0.175995 0.343170\n0.619507 0.177856 0.344116\n0.653015 0.179779 0.345093\n0.684113 0.181671 0.346069\n0.713318 0.183624 0.347076\n0.740845 0.185638 0.348083\n0.767059 0.187592 0.349091\n0.792084 0.189667 0.350098\n0.816284 0.191650 0.351074\n0.839874 0.193726 0.352081\n0.863068 0.195862 0.353119\n0.886261 0.197876 0.354126\n0.909729 0.200043 0.355194\n0.933990 0.202209 0.356201\n0.959961 0.204376 0.357208\n0.040070 0.180450 0.326050\n0.056061 0.181946 0.326843\n0.073425 0.183502 0.327637\n0.092316 0.185028 0.328491\n0.113098 0.186676 0.329315\n0.136169 0.188324 0.330139\n0.161835 0.189941 0.330994\n0.190491 0.191681 0.331818\n0.222137 0.193451 0.332764\n0.256531 0.195221 0.333588\n0.293549 0.196991 0.334564\n0.332916 0.198883 0.335449\n0.374146 0.200714 0.336304\n0.417114 0.202637 0.337280\n0.461151 0.204529 0.338196\n0.505035 0.206482 0.339172\n0.546448 0.208466 0.340149\n0.585052 0.210480 0.341034\n0.620972 0.212524 0.342010\n0.654236 0.214600 0.343079\n0.685181 0.216644 0.344025\n0.714294 0.218781 0.345001\n0.741669 0.220917 0.346008\n0.767731 0.223022 0.346924\n0.792694 0.225220 0.347961\n0.816803 0.227386 0.348938\n0.840271 0.229614 0.350006\n0.863434 0.231873 0.351013\n0.886475 0.234070 0.352020\n0.909851 0.236359 0.352997\n0.934082 0.238678 0.354034\n0.959961 0.240936 0.355042\n0.041351 0.215851 0.323364\n0.057404 0.217529 0.324219\n0.074829 0.219238 0.325012\n0.093811 0.220947 0.325836\n0.114716 0.222717 0.326691\n0.137909 0.224548 0.327545\n0.163727 0.226379 0.328461\n0.192566 0.228210 0.329315\n0.224365 0.230164 0.330170\n0.258850 0.232056 0.331085\n0.295959 0.234039 0.331970\n0.335266 0.235992 0.332916\n0.376617 0.238007 0.333832\n0.419525 0.240082 0.334747\n0.463501 0.242126 0.335693\n0.507172 0.244232 0.336639\n0.548370 0.246368 0.337616\n0.586792 0.248474 0.338531\n0.622406 0.250671 0.339539\n0.655487 0.252930 0.340576\n0.686279 0.255066 0.341492\n0.715179 0.257324 0.342468\n0.742462 0.259583 0.343445\n0.768402 0.261841 0.344482\n0.793274 0.264130 0.345490\n0.817261 0.266449 0.346497\n0.840698 0.268768 0.347443\n0.863739 0.271149 0.348480\n0.886749 0.273438 0.349487\n0.910065 0.275818 0.350464\n0.934174 0.278229 0.351501\n0.959961 0.280579 0.352509\n0.042572 0.254974 0.320343\n0.058746 0.256805 0.321167\n0.076233 0.258698 0.322021\n0.095337 0.260468 0.322815\n0.116364 0.262421 0.323700\n0.139740 0.264374 0.324585\n0.165710 0.266296 0.325470\n0.194702 0.268341 0.326355\n0.226624 0.270386 0.327209\n0.261261 0.272430 0.328186\n0.298370 0.274506 0.329041\n0.337738 0.276581 0.329987\n0.379120 0.278748 0.330872\n0.421997 0.280884 0.331879\n0.465851 0.283020 0.332764\n0.509338 0.285278 0.333771\n0.550293 0.287537 0.334717\n0.588470 0.289734 0.335693\n0.623901 0.292023 0.336639\n0.656738 0.294342 0.337616\n0.687378 0.296600 0.338654\n0.716125 0.298950 0.339630\n0.743286 0.301300 0.340546\n0.769104 0.303650 0.341583\n0.793854 0.306061 0.342560\n0.817749 0.308411 0.343536\n0.841064 0.310791 0.344574\n0.864044 0.313263 0.345581\n0.886993 0.315613 0.346558\n0.910217 0.318054 0.347565\n0.934296 0.320526 0.348633\n0.959961 0.322937 0.349548\n0.043884 0.297516 0.316895\n0.060120 0.299438 0.317780\n0.077728 0.301422 0.318634\n0.096954 0.303314 0.319489\n0.118134 0.305389 0.320312\n0.141571 0.307434 0.321228\n0.167755 0.309479 0.322113\n0.196899 0.311584 0.323029\n0.228943 0.313629 0.323883\n0.263672 0.315826 0.324860\n0.300903 0.317993 0.325775\n0.340302 0.320160 0.326691\n0.381622 0.322388 0.327637\n0.424500 0.324677 0.328613\n0.468292 0.326874 0.329590\n0.511536 0.329193 0.330566\n0.552216 0.331482 0.331482\n0.590149 0.333801 0.332428\n0.625366 0.336121 0.333435\n0.658020 0.338440 0.334442\n0.688446 0.340851 0.335388\n0.717072 0.343231 0.336395\n0.744110 0.345581 0.337402\n0.769806 0.348022 0.338409\n0.794434 0.350433 0.339417\n0.818237 0.352844 0.340393\n0.841492 0.355286 0.341400\n0.864380 0.357758 0.342377\n0.887207 0.360138 0.343384\n0.910400 0.362610 0.344391\n0.934357 0.365021 0.345367\n0.959961 0.367493 0.346405\n0.045258 0.342987 0.313171\n0.061584 0.344971 0.314026\n0.079254 0.347046 0.314880\n0.098572 0.349060 0.315765\n0.119904 0.351166 0.316620\n0.143524 0.353302 0.317535\n0.169861 0.355347 0.318481\n0.199158 0.357513 0.319366\n0.231293 0.359711 0.320251\n0.266113 0.361908 0.321198\n0.303436 0.364136 0.322205\n0.342865 0.366333 0.323120\n0.384186 0.368622 0.324127\n0.427002 0.370941 0.325073\n0.470764 0.373169 0.326019\n0.513763 0.375519 0.326996\n0.554230 0.377869 0.328003\n0.591858 0.380157 0.329010\n0.626862 0.382538 0.329956\n0.659302 0.384888 0.330963\n0.689606 0.387299 0.331940\n0.718048 0.389709 0.332947\n0.744904 0.392059 0.333954\n0.770508 0.394501 0.334930\n0.795044 0.396912 0.335968\n0.818756 0.399292 0.336945\n0.841858 0.401733 0.337921\n0.864655 0.404175 0.338959\n0.887451 0.406555 0.339966\n0.910553 0.409027 0.340942\n0.934448 0.411377 0.341949\n0.959961 0.413788 0.342926\n0.046631 0.390900 0.309143\n0.063049 0.392975 0.310059\n0.080841 0.395081 0.310913\n0.100250 0.397125 0.311829\n0.121704 0.399231 0.312744\n0.145447 0.401367 0.313629\n0.172028 0.403564 0.314545\n0.201477 0.405762 0.315491\n0.233765 0.407837 0.316437\n0.268707 0.410126 0.317444\n0.306030 0.412354 0.318359\n0.345520 0.414581 0.319336\n0.386780 0.416840 0.320312\n0.429596 0.419128 0.321289\n0.473206 0.421417 0.322296\n0.515991 0.423737 0.323273\n0.556152 0.426056 0.324280\n0.593597 0.428345 0.325256\n0.628296 0.430725 0.326263\n0.660553 0.433044 0.327240\n0.690735 0.435425 0.328278\n0.718964 0.437775 0.329315\n0.745728 0.440094 0.330292\n0.771179 0.442474 0.331268\n0.795654 0.444885 0.332336\n0.819244 0.447235 0.333344\n0.842285 0.449615 0.334290\n0.865021 0.452026 0.335358\n0.887726 0.454346 0.336334\n0.910706 0.456665 0.337341\n0.934509 0.459076 0.338318\n0.959961 0.461426 0.339355\n0.048065 0.440765 0.304932\n0.064575 0.442810 0.305847\n0.082428 0.444916 0.306732\n0.101990 0.446930 0.307678\n0.123566 0.449127 0.308624\n0.147491 0.451172 0.309540\n0.174194 0.453339 0.310547\n0.203796 0.455505 0.311493\n0.236237 0.457642 0.312439\n0.271240 0.459839 0.313446\n0.308655 0.462097 0.314423\n0.348114 0.464264 0.315399\n0.389526 0.466492 0.316376\n0.432220 0.468781 0.317383\n0.475677 0.470917 0.318390\n0.518188 0.473206 0.319397\n0.558075 0.475433 0.320435\n0.595276 0.477722 0.321442\n0.629791 0.479980 0.322418\n0.661835 0.482208 0.323456\n0.691803 0.484467 0.324463\n0.719910 0.486786 0.325470\n0.746552 0.488983 0.326538\n0.771881 0.491302 0.327545\n0.796173 0.493622 0.328552\n0.819702 0.495819 0.329620\n0.842651 0.498077 0.330658\n0.865295 0.500305 0.331604\n0.887939 0.502563 0.332672\n0.910889 0.504822 0.333710\n0.934662 0.506989 0.334686\n0.959961 0.509216 0.335693\n0.049561 0.491638 0.300659\n0.066132 0.493683 0.301605\n0.084076 0.495636 0.302551\n0.103790 0.497650 0.303497\n0.125488 0.499756 0.304474\n0.149597 0.501709 0.305420\n0.176453 0.503815 0.306427\n0.206207 0.505890 0.307434\n0.238739 0.507904 0.308380\n0.273865 0.510010 0.309357\n0.311340 0.512085 0.310425\n0.350830 0.514130 0.311462\n0.392120 0.516205 0.312469\n0.434784 0.518219 0.313477\n0.478180 0.520355 0.314484\n0.520447 0.522430 0.315582\n0.560059 0.524475 0.316589\n0.596985 0.526550 0.317627\n0.631287 0.528625 0.318695\n0.663177 0.530640 0.319733\n0.692932 0.532745 0.320801\n0.720886 0.534790 0.321869\n0.747375 0.536774 0.322845\n0.772614 0.538849 0.323944\n0.796783 0.540894 0.325043\n0.820221 0.542847 0.326050\n0.843079 0.544830 0.327118\n0.865662 0.546783 0.328186\n0.888184 0.548767 0.329224\n0.911011 0.550690 0.330261\n0.934723 0.552643 0.331299\n0.959961 0.554596 0.332397\n0.051056 0.541351 0.296539\n0.067688 0.543152 0.297546\n0.085815 0.544952 0.298584\n0.105621 0.546753 0.299561\n0.127472 0.548553 0.300537\n0.151733 0.550354 0.301575\n0.178741 0.552155 0.302612\n0.208649 0.554047 0.303619\n0.241272 0.555786 0.304688\n0.276489 0.557617 0.305756\n0.314026 0.559509 0.306824\n0.353546 0.561310 0.307831\n0.394806 0.563171 0.308929\n0.437439 0.564941 0.310028\n0.480682 0.566772 0.311066\n0.522675 0.568634 0.312134\n0.562012 0.570374 0.313202\n0.598755 0.572205 0.314301\n0.632782 0.574066 0.315430\n0.664429 0.575806 0.316498\n0.694000 0.577637 0.317535\n0.721832 0.579468 0.318665\n0.748138 0.581177 0.319733\n0.773224 0.582916 0.320831\n0.797363 0.584747 0.321899\n0.820648 0.586426 0.322937\n0.843445 0.588165 0.324127\n0.865967 0.589905 0.325134\n0.888428 0.591583 0.326202\n0.911194 0.593292 0.327332\n0.934814 0.594940 0.328369\n0.959961 0.596588 0.329437\n0.052582 0.587311 0.292969\n0.069336 0.588928 0.294037\n0.087494 0.590424 0.295074\n0.107483 0.592041 0.296143\n0.129486 0.593628 0.297241\n0.153900 0.595245 0.298248\n0.181091 0.596863 0.299316\n0.211151 0.598419 0.300415\n0.243866 0.600037 0.301514\n0.279144 0.601624 0.302551\n0.316742 0.603241 0.303711\n0.356262 0.604797 0.304810\n0.397491 0.606445 0.305878\n0.440063 0.607971 0.306976\n0.483215 0.609589 0.308136\n0.524933 0.611176 0.309204\n0.563934 0.612732 0.310303\n0.600403 0.614319 0.311432\n0.634216 0.615845 0.312531\n0.665680 0.617401 0.313660\n0.695099 0.618988 0.314758\n0.722748 0.620544 0.315918\n0.748932 0.622070 0.316925\n0.773926 0.623596 0.318115\n0.797913 0.625061 0.319244\n0.821198 0.626617 0.320343\n0.843872 0.628082 0.321472\n0.866241 0.629486 0.322540\n0.888672 0.631042 0.323639\n0.911346 0.632446 0.324707\n0.934875 0.633881 0.325836\n0.959961 0.635284 0.326904\n0.054169 0.629639 0.289948\n0.070984 0.631042 0.290985\n0.089294 0.632385 0.292114\n0.109375 0.633759 0.293213\n0.131500 0.635162 0.294312\n0.156097 0.636505 0.295441\n0.183472 0.637909 0.296509\n0.213654 0.639313 0.297638\n0.246490 0.640656 0.298737\n0.281860 0.642029 0.299927\n0.319489 0.643433 0.301025\n0.359009 0.644775 0.302155\n0.400238 0.646149 0.303314\n0.442749 0.647461 0.304443\n0.485718 0.648865 0.305603\n0.527130 0.650269 0.306702\n0.565948 0.651581 0.307861\n0.602112 0.652924 0.308990\n0.635681 0.654266 0.310150\n0.666931 0.655640 0.311340\n0.696167 0.656921 0.312408\n0.723694 0.658264 0.313568\n0.749756 0.659576 0.314728\n0.774628 0.660858 0.315826\n0.798523 0.662109 0.316925\n0.821625 0.663422 0.318085\n0.844269 0.664673 0.319214\n0.866608 0.665924 0.320343\n0.888885 0.667206 0.321411\n0.911530 0.668427 0.322571\n0.934967 0.669617 0.323608\n0.959961 0.670837 0.324707\n0.055786 0.668365 0.287384\n0.072723 0.669556 0.288544\n0.091095 0.670715 0.289642\n0.111298 0.671906 0.290741\n0.133575 0.673065 0.291901\n0.158356 0.674286 0.293030\n0.185883 0.675476 0.294220\n0.216217 0.676666 0.295380\n0.249146 0.677826 0.296509\n0.284546 0.678986 0.297699\n0.322174 0.680145 0.298798\n0.361755 0.681366 0.299988\n0.402954 0.682526 0.301178\n0.445374 0.683716 0.302338\n0.488190 0.684845 0.303467\n0.529327 0.686066 0.304688\n0.567871 0.687164 0.305817\n0.603790 0.688354 0.306976\n0.637177 0.689514 0.308136\n0.668182 0.690613 0.309357\n0.697266 0.691742 0.310486\n0.724609 0.692932 0.311646\n0.750519 0.694000 0.312775\n0.775269 0.695099 0.313934\n0.799042 0.696198 0.315094\n0.822113 0.697296 0.316162\n0.844635 0.698364 0.317352\n0.866852 0.699402 0.318481\n0.889099 0.700470 0.319580\n0.911713 0.701569 0.320709\n0.935089 0.702545 0.321777\n0.959961 0.703583 0.322906\n0.057404 0.703918 0.285248\n0.074432 0.704895 0.286438\n0.092957 0.705933 0.287628\n0.113281 0.706970 0.288757\n0.135712 0.707977 0.289978\n0.160583 0.709015 0.291138\n0.188293 0.710022 0.292267\n0.218750 0.711060 0.293488\n0.251801 0.712036 0.294678\n0.287323 0.713043 0.295837\n0.324921 0.714081 0.296997\n0.364532 0.715088 0.298248\n0.405701 0.716064 0.299377\n0.447968 0.717041 0.300537\n0.490662 0.718048 0.301819\n0.531525 0.719055 0.302979\n0.569763 0.720032 0.304138\n0.605469 0.721039 0.305328\n0.638580 0.722046 0.306549\n0.669434 0.722961 0.307709\n0.698303 0.723938 0.308868\n0.725494 0.724884 0.310028\n0.751312 0.725830 0.311218\n0.775940 0.726776 0.312347\n0.799622 0.727722 0.313507\n0.822571 0.728638 0.314667\n0.845032 0.729553 0.315765\n0.867218 0.730469 0.316864\n0.889343 0.731354 0.317963\n0.911835 0.732269 0.319122\n0.935150 0.733124 0.320221\n0.959961 0.734009 0.321320\n0.059052 0.736786 0.283539\n0.076202 0.737640 0.284790\n0.094788 0.738525 0.285889\n0.115234 0.739380 0.287109\n0.137848 0.740265 0.288269\n0.162903 0.741150 0.289490\n0.190765 0.742004 0.290710\n0.221313 0.742889 0.291931\n0.254517 0.743744 0.293121\n0.290070 0.744629 0.294342\n0.327728 0.745483 0.295532\n0.367310 0.746338 0.296722\n0.408417 0.747223 0.297943\n0.450623 0.748047 0.299164\n0.493134 0.748901 0.300354\n0.533691 0.749756 0.301575\n0.571686 0.750610 0.302704\n0.607086 0.751434 0.303925\n0.640015 0.752258 0.305145\n0.670624 0.753082 0.306335\n0.699341 0.753906 0.307465\n0.726410 0.754730 0.308655\n0.752106 0.755524 0.309814\n0.776642 0.756317 0.311035\n0.800171 0.757111 0.312164\n0.822998 0.757874 0.313293\n0.845398 0.758698 0.314423\n0.867462 0.759430 0.315521\n0.889557 0.760193 0.316711\n0.912018 0.760956 0.317780\n0.935211 0.761658 0.318909\n0.959961 0.762421 0.319946\n0.060760 0.767426 0.282135\n0.077942 0.768219 0.283325\n0.096680 0.768951 0.284515\n0.117279 0.769684 0.285767\n0.140015 0.770447 0.286987\n0.165222 0.771149 0.288239\n0.193237 0.771881 0.289459\n0.223938 0.772644 0.290680\n0.257172 0.773376 0.291901\n0.292786 0.774170 0.293091\n0.330475 0.774841 0.294281\n0.370026 0.775604 0.295563\n0.411102 0.776337 0.296753\n0.453278 0.777039 0.298004\n0.495544 0.777740 0.299194\n0.535797 0.778503 0.300415\n0.573517 0.779175 0.301636\n0.608734 0.779907 0.302826\n0.641418 0.780609 0.303986\n0.671875 0.781281 0.305145\n0.700378 0.781982 0.306396\n0.727325 0.782684 0.307526\n0.752808 0.783386 0.308685\n0.777252 0.784027 0.309845\n0.800720 0.784698 0.310974\n0.823486 0.785370 0.312134\n0.845734 0.786011 0.313324\n0.867767 0.786621 0.314423\n0.889771 0.787323 0.315491\n0.912109 0.787903 0.316620\n0.935303 0.788544 0.317657\n0.959961 0.789185 0.318726\n0.062500 0.796265 0.280914\n0.079773 0.796875 0.282227\n0.098602 0.797485 0.283447\n0.119324 0.798157 0.284729\n0.142151 0.798767 0.285828\n0.167542 0.799408 0.287140\n0.195709 0.800049 0.288422\n0.226532 0.800659 0.289581\n0.259888 0.801270 0.290863\n0.295563 0.801910 0.292084\n0.333282 0.802551 0.293304\n0.372833 0.803162 0.294525\n0.413818 0.803772 0.295776\n0.455841 0.804352 0.296997\n0.497955 0.805023 0.298218\n0.537903 0.805573 0.299377\n0.575409 0.806183 0.300598\n0.610352 0.806793 0.301819\n0.642792 0.807373 0.302979\n0.673035 0.807953 0.304199\n0.701416 0.808563 0.305420\n0.728180 0.809113 0.306549\n0.753601 0.809692 0.307739\n0.777863 0.810272 0.308868\n0.801208 0.810791 0.310059\n0.823883 0.811401 0.311157\n0.846100 0.811920 0.312256\n0.868042 0.812439 0.313324\n0.889984 0.813019 0.314484\n0.912262 0.813507 0.315552\n0.935364 0.814026 0.316620\n0.959961 0.814545 0.317627\n0.064178 0.823517 0.279999\n0.081573 0.824066 0.281311\n0.100525 0.824615 0.282440\n0.121338 0.825134 0.283722\n0.144379 0.825653 0.285004\n0.169922 0.826172 0.286224\n0.198212 0.826752 0.287476\n0.229156 0.827240 0.288727\n0.262573 0.827789 0.289948\n0.298309 0.828308 0.291229\n0.336029 0.828827 0.292511\n0.375519 0.829315 0.293671\n0.416504 0.829865 0.294952\n0.458405 0.830353 0.296143\n0.500336 0.830872 0.297394\n0.539948 0.831360 0.298584\n0.577209 0.831909 0.299774\n0.611938 0.832367 0.300995\n0.644135 0.832855 0.302185\n0.674194 0.833374 0.303345\n0.702393 0.833862 0.304535\n0.729034 0.834320 0.305664\n0.754333 0.834808 0.306854\n0.778503 0.835266 0.308014\n0.801758 0.835724 0.309143\n0.824341 0.836182 0.310242\n0.846466 0.836639 0.311279\n0.868317 0.837097 0.312439\n0.890198 0.837524 0.313507\n0.912384 0.837921 0.314575\n0.935425 0.838379 0.315643\n0.959961 0.838806 0.316681\n0.065948 0.849640 0.279205\n0.083405 0.850037 0.280457\n0.102448 0.850525 0.281738\n0.123413 0.850952 0.282990\n0.146606 0.851379 0.284271\n0.172302 0.851837 0.285553\n0.200775 0.852264 0.286743\n0.231750 0.852692 0.287994\n0.265289 0.853149 0.289276\n0.301056 0.853577 0.290527\n0.338745 0.854034 0.291779\n0.378265 0.854431 0.293030\n0.419098 0.854858 0.294220\n0.460938 0.855286 0.295471\n0.502594 0.855743 0.296661\n0.541992 0.856110 0.297852\n0.579010 0.856537 0.299133\n0.613464 0.856964 0.300262\n0.645477 0.857330 0.301422\n0.675323 0.857758 0.302612\n0.703430 0.858154 0.303802\n0.729858 0.858551 0.304962\n0.755005 0.858948 0.306061\n0.779114 0.859283 0.307220\n0.802277 0.859650 0.308289\n0.824738 0.860077 0.309479\n0.846802 0.860413 0.310516\n0.868561 0.860809 0.311584\n0.890381 0.861145 0.312683\n0.912537 0.861511 0.313690\n0.935486 0.861847 0.314697\n0.959961 0.862183 0.315704\n0.067688 0.874817 0.278534\n0.085236 0.875153 0.279785\n0.104431 0.875549 0.281036\n0.125488 0.875916 0.282318\n0.148834 0.876251 0.283600\n0.174652 0.876617 0.284851\n0.203217 0.876984 0.286163\n0.234406 0.877319 0.287323\n0.268005 0.877655 0.288635\n0.303772 0.878052 0.289917\n0.341492 0.878387 0.291168\n0.380981 0.878754 0.292328\n0.421783 0.879059 0.293549\n0.463501 0.879395 0.294800\n0.504944 0.879730 0.296021\n0.544006 0.880066 0.297180\n0.580719 0.880432 0.298401\n0.614990 0.880737 0.299622\n0.646759 0.881104 0.300751\n0.676422 0.881378 0.301910\n0.704315 0.881714 0.303070\n0.730682 0.882050 0.304230\n0.755737 0.882355 0.305328\n0.779633 0.882660 0.306396\n0.802734 0.882965 0.307587\n0.825134 0.883270 0.308655\n0.847076 0.883545 0.309662\n0.868866 0.883881 0.310699\n0.890564 0.884155 0.311768\n0.912659 0.884399 0.312744\n0.935547 0.884705 0.313812\n0.959961 0.884979 0.314758\n0.069427 0.899445 0.277893\n0.087067 0.899689 0.279205\n0.106415 0.899994 0.280487\n0.127625 0.900299 0.281738\n0.151062 0.900574 0.283051\n0.177094 0.900879 0.284271\n0.205780 0.901123 0.285553\n0.237000 0.901398 0.286804\n0.270660 0.901703 0.288086\n0.306458 0.901947 0.289215\n0.344238 0.902222 0.290527\n0.383636 0.902496 0.291809\n0.424377 0.902771 0.292999\n0.465942 0.903015 0.294189\n0.507172 0.903320 0.295349\n0.546021 0.903595 0.296570\n0.582458 0.903839 0.297760\n0.616455 0.904083 0.298950\n0.648010 0.904358 0.300110\n0.677521 0.904602 0.301239\n0.705261 0.904846 0.302368\n0.731476 0.905121 0.303497\n0.756378 0.905304 0.304596\n0.780243 0.905579 0.305664\n0.803223 0.905823 0.306763\n0.825562 0.906067 0.307800\n0.847443 0.906250 0.308868\n0.869049 0.906494 0.309875\n0.890778 0.906708 0.310883\n0.912781 0.906921 0.311859\n0.935577 0.907135 0.312836\n0.959961 0.907318 0.313751\n0.071228 0.923767 0.277313\n0.088928 0.923981 0.278656\n0.108368 0.924194 0.279907\n0.129730 0.924408 0.281189\n0.153290 0.924622 0.282471\n0.179504 0.924866 0.283752\n0.208282 0.925049 0.284973\n0.239624 0.925262 0.286194\n0.273315 0.925476 0.287476\n0.309143 0.925690 0.288666\n0.346924 0.925903 0.289948\n0.386230 0.926086 0.291138\n0.426941 0.926270 0.292358\n0.468353 0.926483 0.293549\n0.509338 0.926697 0.294800\n0.547913 0.926880 0.295959\n0.584167 0.927063 0.297150\n0.617889 0.927246 0.298309\n0.649261 0.927460 0.299377\n0.678619 0.927643 0.300537\n0.706177 0.927795 0.301636\n0.732269 0.928009 0.302704\n0.757019 0.928162 0.303833\n0.780823 0.928345 0.304871\n0.803711 0.928528 0.305908\n0.825928 0.928711 0.306946\n0.847748 0.928833 0.307953\n0.869324 0.929016 0.308929\n0.890930 0.929230 0.309875\n0.912903 0.929382 0.310852\n0.935699 0.929474 0.311798\n0.959961 0.929626 0.312683\n0.072968 0.948242 0.276733\n0.090820 0.948395 0.278046\n0.110352 0.948578 0.279297\n0.131805 0.948669 0.280609\n0.155518 0.948792 0.281860\n0.181854 0.948975 0.283081\n0.210815 0.949066 0.284393\n0.242188 0.949219 0.285583\n0.275940 0.949402 0.286835\n0.311798 0.949554 0.288055\n0.349518 0.949707 0.289246\n0.388885 0.949829 0.290497\n0.429413 0.949982 0.291687\n0.470795 0.950073 0.292877\n0.511444 0.950195 0.294067\n0.549805 0.950348 0.295227\n0.585754 0.950470 0.296387\n0.619324 0.950592 0.297546\n0.650421 0.950684 0.298645\n0.679626 0.950867 0.299713\n0.707031 0.950989 0.300842\n0.733002 0.951111 0.301910\n0.757660 0.951233 0.302979\n0.781311 0.951355 0.303986\n0.804138 0.951477 0.305023\n0.826324 0.951569 0.306000\n0.848022 0.951691 0.306976\n0.869568 0.951782 0.307892\n0.891083 0.951874 0.308868\n0.913025 0.951996 0.309753\n0.935730 0.952087 0.310669\n0.959961 0.952148 0.311523\n0.074768 0.973358 0.276031\n0.092651 0.973450 0.277374\n0.112305 0.973511 0.278625\n0.133942 0.973633 0.279846\n0.157745 0.973663 0.281097\n0.184204 0.973785 0.282410\n0.213257 0.973846 0.283630\n0.244751 0.973938 0.284821\n0.278534 0.973999 0.286102\n0.314392 0.974091 0.287262\n0.352142 0.974152 0.288544\n0.391388 0.974213 0.289734\n0.431885 0.974304 0.290894\n0.473114 0.974335 0.292114\n0.513519 0.974396 0.293243\n0.551605 0.974457 0.294403\n0.587341 0.974548 0.295471\n0.620605 0.974609 0.296570\n0.651611 0.974670 0.297699\n0.680634 0.974731 0.298798\n0.707886 0.974823 0.299866\n0.733704 0.974854 0.300934\n0.758331 0.974915 0.301941\n0.781799 0.974976 0.302917\n0.804565 0.975037 0.303894\n0.826660 0.975067 0.304871\n0.848328 0.975128 0.305817\n0.869781 0.975189 0.306732\n0.891266 0.975250 0.307556\n0.913147 0.975281 0.308472\n0.935822 0.975311 0.309357\n0.959961 0.975403 0.310150\n0.076508 1.000000 0.275146\n0.094543 1.000000 0.276398\n0.114258 1.000000 0.277649\n0.135986 1.000000 0.278931\n0.159943 1.000000 0.280151\n0.186554 1.000000 0.281433\n0.215668 1.000000 0.282623\n0.247253 1.000000 0.283875\n0.281158 1.000000 0.285126\n0.316956 1.000000 0.286346\n0.354645 1.000000 0.287506\n0.393951 1.000000 0.288696\n0.434265 1.000000 0.289886\n0.475403 1.000000 0.291046\n0.515564 1.000000 0.292175\n0.553406 1.000000 0.293274\n0.588867 1.000000 0.294403\n0.621918 1.000000 0.295471\n0.652740 1.000000 0.296539\n0.681580 1.000000 0.297577\n0.708710 1.000000 0.298584\n0.734406 1.000000 0.299652\n0.758881 1.000000 0.300659\n0.782349 1.000000 0.301575\n0.804993 1.000000 0.302582\n0.826996 1.000000 0.303497\n0.848602 1.000000 0.304352\n0.869965 1.000000 0.305267\n0.891418 1.000000 0.306122\n0.913269 1.000000 0.306946\n0.935852 1.000000 0.307739\n0.959961 1.000000 0.308533\n0.032471 0.002411 0.378571\n0.047943 0.003021 0.379120\n0.064667 0.003662 0.379669\n0.082794 0.004333 0.380310\n0.102722 0.005035 0.380890\n0.124756 0.005768 0.381561\n0.149353 0.006500 0.382172\n0.176849 0.007294 0.382904\n0.207397 0.008057 0.383606\n0.240997 0.008911 0.384247\n0.277313 0.009766 0.385040\n0.316132 0.010590 0.385803\n0.357208 0.011505 0.386627\n0.400146 0.012421 0.387360\n0.444550 0.013306 0.388214\n0.489471 0.014282 0.389008\n0.532623 0.015289 0.389893\n0.572876 0.016235 0.390686\n0.610291 0.017273 0.391602\n0.644989 0.018311 0.392487\n0.677155 0.019379 0.393433\n0.707306 0.020477 0.394287\n0.735687 0.021545 0.395172\n0.762634 0.022644 0.396179\n0.788361 0.023773 0.397125\n0.813141 0.024933 0.398041\n0.837280 0.026123 0.399109\n0.860962 0.027313 0.400116\n0.884674 0.028473 0.401093\n0.908630 0.029724 0.402100\n0.933441 0.030945 0.403107\n0.959961 0.032166 0.404144\n0.033234 0.018646 0.377716\n0.048767 0.019379 0.378357\n0.065552 0.020081 0.378937\n0.083771 0.020782 0.379608\n0.103821 0.021545 0.380219\n0.125977 0.022339 0.380951\n0.150665 0.023132 0.381592\n0.178314 0.023987 0.382294\n0.209015 0.024811 0.383057\n0.242676 0.025696 0.383820\n0.279144 0.026611 0.384613\n0.318024 0.027527 0.385376\n0.359131 0.028473 0.386200\n0.402069 0.029480 0.387054\n0.446472 0.030457 0.387878\n0.491333 0.031494 0.388702\n0.534271 0.032532 0.389587\n0.574280 0.033569 0.390472\n0.611572 0.034637 0.391357\n0.646057 0.035736 0.392273\n0.678162 0.036865 0.393188\n0.708130 0.038025 0.394135\n0.736420 0.039154 0.395081\n0.763245 0.040375 0.396027\n0.788879 0.041595 0.397064\n0.813568 0.042786 0.398041\n0.837646 0.044037 0.399078\n0.861298 0.045319 0.400024\n0.884918 0.046539 0.401062\n0.908813 0.047852 0.402069\n0.933533 0.049103 0.403076\n0.959961 0.050446 0.404144\n0.034058 0.035858 0.376801\n0.049713 0.036621 0.377472\n0.066528 0.037415 0.378174\n0.084869 0.038208 0.378845\n0.104980 0.039062 0.379517\n0.127289 0.039886 0.380188\n0.152100 0.040771 0.380951\n0.179901 0.041687 0.381744\n0.210724 0.042603 0.382477\n0.244507 0.043579 0.383301\n0.281006 0.044556 0.384094\n0.319977 0.045532 0.384857\n0.361084 0.046570 0.385712\n0.404114 0.047638 0.386566\n0.448425 0.048706 0.387451\n0.493195 0.049835 0.388275\n0.535919 0.050903 0.389191\n0.575775 0.052063 0.390106\n0.612915 0.053223 0.391022\n0.647186 0.054413 0.391968\n0.679169 0.055603 0.392944\n0.708984 0.056885 0.393860\n0.737152 0.058075 0.394836\n0.763855 0.059326 0.395874\n0.789398 0.060638 0.396881\n0.814026 0.061951 0.397827\n0.838043 0.063263 0.398865\n0.861572 0.064667 0.399902\n0.885101 0.066010 0.400879\n0.908966 0.067413 0.401917\n0.933624 0.068787 0.402924\n0.959961 0.070221 0.404022\n0.034973 0.054413 0.375916\n0.050690 0.055237 0.376587\n0.067596 0.056122 0.377258\n0.085968 0.056976 0.377960\n0.106262 0.057892 0.378754\n0.128601 0.058807 0.379456\n0.153595 0.059784 0.380249\n0.181549 0.060791 0.380981\n0.212494 0.061798 0.381775\n0.246368 0.062836 0.382629\n0.283020 0.063934 0.383453\n0.322021 0.065033 0.384247\n0.363251 0.066132 0.385101\n0.406189 0.067291 0.386017\n0.450470 0.068451 0.386902\n0.495148 0.069672 0.387817\n0.537628 0.070862 0.388672\n0.577301 0.072113 0.389618\n0.614227 0.073395 0.390625\n0.648407 0.074646 0.391510\n0.680115 0.075958 0.392487\n0.709839 0.077332 0.393524\n0.737885 0.078644 0.394470\n0.764496 0.080048 0.395447\n0.789917 0.081421 0.396484\n0.814484 0.082825 0.397430\n0.838379 0.084290 0.398468\n0.861877 0.085754 0.399445\n0.885345 0.087219 0.400513\n0.909119 0.088745 0.401520\n0.933685 0.090240 0.402588\n0.959961 0.091797 0.403625\n0.035919 0.074554 0.374817\n0.051697 0.075500 0.375549\n0.068665 0.076416 0.376312\n0.087189 0.077423 0.376984\n0.107544 0.078461 0.377747\n0.130035 0.079468 0.378540\n0.155182 0.080566 0.379333\n0.183258 0.081696 0.380127\n0.214325 0.082794 0.380951\n0.248413 0.083923 0.381805\n0.285065 0.085114 0.382629\n0.324127 0.086334 0.383484\n0.365387 0.087555 0.384399\n0.408325 0.088806 0.385284\n0.452637 0.090149 0.386139\n0.497131 0.091431 0.387115\n0.539398 0.092743 0.388031\n0.578857 0.094116 0.388916\n0.615631 0.095520 0.389923\n0.649536 0.096924 0.390839\n0.681152 0.098358 0.391876\n0.710754 0.099854 0.392883\n0.738647 0.101288 0.393799\n0.765137 0.102783 0.394867\n0.790527 0.104340 0.395844\n0.814941 0.105835 0.396820\n0.838745 0.107483 0.397858\n0.862244 0.109039 0.398865\n0.885620 0.110687 0.399902\n0.909271 0.112305 0.400940\n0.933746 0.113922 0.401978\n0.959961 0.115631 0.403015\n0.036926 0.096771 0.373596\n0.052765 0.097839 0.374359\n0.069824 0.098907 0.375061\n0.088440 0.100037 0.375854\n0.108887 0.101196 0.376587\n0.131531 0.102325 0.377380\n0.156830 0.103516 0.378235\n0.185059 0.104767 0.379059\n0.216309 0.105988 0.379883\n0.250397 0.107269 0.380737\n0.287201 0.108612 0.381653\n0.326355 0.109924 0.382507\n0.367554 0.111328 0.383392\n0.410553 0.112671 0.384308\n0.454742 0.114136 0.385223\n0.499176 0.115601 0.386139\n0.541168 0.117035 0.387054\n0.580505 0.118530 0.388062\n0.617004 0.120087 0.388977\n0.650757 0.121613 0.389984\n0.682190 0.123230 0.390961\n0.711639 0.124878 0.391968\n0.739410 0.126465 0.392914\n0.765778 0.128143 0.393921\n0.791046 0.129761 0.394897\n0.815430 0.131470 0.395874\n0.839142 0.133209 0.396942\n0.862488 0.134949 0.397980\n0.885803 0.136719 0.399017\n0.909424 0.138550 0.399994\n0.933868 0.140320 0.401001\n0.959961 0.142151 0.402069\n0.038025 0.121582 0.372131\n0.053894 0.122772 0.372833\n0.071045 0.123993 0.373627\n0.089752 0.125244 0.374390\n0.110352 0.126526 0.375214\n0.133118 0.127808 0.375977\n0.158539 0.129181 0.376831\n0.186951 0.130585 0.377686\n0.218292 0.131958 0.378540\n0.252533 0.133392 0.379425\n0.289368 0.134827 0.380310\n0.328613 0.136353 0.381226\n0.369873 0.137878 0.382111\n0.412842 0.139404 0.383026\n0.457001 0.140961 0.383942\n0.501221 0.142639 0.384888\n0.543030 0.144257 0.385803\n0.582092 0.145905 0.386810\n0.618408 0.147614 0.387756\n0.651947 0.149292 0.388702\n0.683258 0.151031 0.389679\n0.712555 0.152863 0.390656\n0.740204 0.154633 0.391602\n0.766479 0.156464 0.392609\n0.791626 0.158295 0.393585\n0.815887 0.160187 0.394623\n0.839539 0.162079 0.395691\n0.862854 0.163971 0.396637\n0.886047 0.165894 0.397675\n0.909607 0.167908 0.398682\n0.933960 0.169861 0.399689\n0.959961 0.171875 0.400787\n0.039124 0.149445 0.370300\n0.055145 0.150787 0.371033\n0.072327 0.152191 0.371826\n0.091125 0.153564 0.372589\n0.111847 0.155029 0.373474\n0.134766 0.156494 0.374268\n0.160309 0.158020 0.375122\n0.188904 0.159576 0.376038\n0.220398 0.161133 0.376801\n0.254730 0.162750 0.377686\n0.291656 0.164337 0.378601\n0.330933 0.166016 0.379517\n0.372192 0.167725 0.380432\n0.415161 0.169464 0.381348\n0.459229 0.171265 0.382263\n0.503326 0.173004 0.383209\n0.544891 0.174805 0.384155\n0.583740 0.176666 0.385101\n0.619812 0.178589 0.386108\n0.653168 0.180420 0.387054\n0.684326 0.182404 0.388000\n0.713501 0.184326 0.388977\n0.740967 0.186310 0.389923\n0.767181 0.188324 0.390961\n0.792206 0.190338 0.391907\n0.816376 0.192413 0.392914\n0.839935 0.194519 0.393921\n0.863129 0.196564 0.394897\n0.886292 0.198730 0.395935\n0.909760 0.200836 0.396912\n0.934021 0.202972 0.397919\n0.959961 0.205139 0.398956\n0.040314 0.180969 0.368103\n0.056335 0.182556 0.368835\n0.073669 0.184052 0.369690\n0.092560 0.185669 0.370453\n0.113403 0.187286 0.371338\n0.136444 0.188934 0.372101\n0.162170 0.190613 0.372955\n0.190857 0.192322 0.373810\n0.222534 0.194092 0.374695\n0.257019 0.195892 0.375549\n0.293976 0.197662 0.376526\n0.333313 0.199524 0.377411\n0.374634 0.201447 0.378357\n0.417480 0.203308 0.379242\n0.461548 0.205231 0.380188\n0.505432 0.207245 0.381104\n0.546783 0.209229 0.382019\n0.585419 0.211212 0.382996\n0.621246 0.213257 0.383942\n0.654480 0.215332 0.384888\n0.685425 0.217438 0.385834\n0.714447 0.219513 0.386871\n0.741821 0.221680 0.387848\n0.767883 0.223877 0.388794\n0.792786 0.225983 0.389771\n0.816864 0.228210 0.390778\n0.840332 0.230438 0.391754\n0.863464 0.232666 0.392700\n0.886536 0.234955 0.393738\n0.909912 0.237244 0.394775\n0.934113 0.239502 0.395721\n0.959961 0.241791 0.396698\n0.041534 0.216461 0.365417\n0.057648 0.218170 0.366211\n0.075043 0.219849 0.367065\n0.094055 0.221619 0.367859\n0.115051 0.223419 0.368683\n0.138245 0.225189 0.369507\n0.164124 0.227081 0.370422\n0.192993 0.228912 0.371246\n0.224792 0.230835 0.372131\n0.259338 0.232788 0.373047\n0.296387 0.234772 0.373962\n0.335754 0.236755 0.374847\n0.377075 0.238831 0.375732\n0.419983 0.240784 0.376678\n0.463928 0.242889 0.377625\n0.507599 0.245026 0.378571\n0.548706 0.247101 0.379486\n0.587067 0.249298 0.380463\n0.622681 0.251465 0.381378\n0.655731 0.253662 0.382416\n0.686523 0.255920 0.383362\n0.715332 0.258118 0.384308\n0.742584 0.260376 0.385284\n0.768585 0.262695 0.386292\n0.793396 0.264984 0.387207\n0.817383 0.267303 0.388184\n0.840759 0.269653 0.389221\n0.863800 0.272003 0.390137\n0.886780 0.274353 0.391144\n0.910095 0.276703 0.392120\n0.934174 0.279083 0.393127\n0.959961 0.281494 0.394135\n0.042816 0.255676 0.362366\n0.058960 0.257477 0.363129\n0.076477 0.259308 0.363953\n0.095642 0.261230 0.364807\n0.116699 0.263092 0.365662\n0.140076 0.265045 0.366486\n0.166077 0.267059 0.367371\n0.195129 0.269043 0.368256\n0.227051 0.271088 0.369202\n0.261719 0.273163 0.370117\n0.298889 0.275208 0.370972\n0.338257 0.277374 0.371887\n0.379608 0.279541 0.372833\n0.422424 0.281677 0.373779\n0.466339 0.283905 0.374695\n0.509735 0.286041 0.375610\n0.550629 0.288330 0.376556\n0.588745 0.290619 0.377533\n0.624207 0.292877 0.378510\n0.656982 0.295166 0.379425\n0.687592 0.297455 0.380402\n0.716309 0.299805 0.381348\n0.743439 0.302155 0.382355\n0.769226 0.304535 0.383331\n0.793976 0.306885 0.384277\n0.817841 0.309265 0.385315\n0.841125 0.311737 0.386292\n0.864105 0.314117 0.387207\n0.887024 0.316528 0.388214\n0.910278 0.318909 0.389252\n0.934296 0.321381 0.390167\n0.959961 0.323853 0.391174\n0.044159 0.298187 0.358887\n0.060364 0.300171 0.359711\n0.077972 0.302063 0.360565\n0.097229 0.304108 0.361420\n0.118408 0.306091 0.362244\n0.141937 0.308136 0.363190\n0.168182 0.310242 0.364105\n0.197296 0.312347 0.364960\n0.229370 0.314453 0.365845\n0.264130 0.316681 0.366791\n0.301331 0.318787 0.367706\n0.340790 0.321014 0.368591\n0.382080 0.323273 0.369507\n0.424927 0.325470 0.370483\n0.468750 0.327759 0.371429\n0.511932 0.329987 0.372345\n0.552551 0.332336 0.373352\n0.590424 0.334686 0.374298\n0.625671 0.336975 0.375244\n0.658234 0.339325 0.376221\n0.688690 0.341705 0.377167\n0.717255 0.344086 0.378174\n0.744232 0.346466 0.379120\n0.769928 0.348907 0.380127\n0.794525 0.351288 0.381104\n0.818359 0.353760 0.382050\n0.841553 0.356140 0.383026\n0.864441 0.358612 0.384003\n0.887238 0.361023 0.384979\n0.910431 0.363434 0.385925\n0.934387 0.365936 0.386993\n0.959961 0.368378 0.387909\n0.045532 0.343719 0.355133\n0.061829 0.345734 0.355988\n0.079498 0.347778 0.356842\n0.098907 0.349823 0.357727\n0.120239 0.351929 0.358582\n0.143860 0.354034 0.359528\n0.170258 0.356171 0.360413\n0.199585 0.358307 0.361267\n0.231750 0.360504 0.362244\n0.266632 0.362762 0.363159\n0.303894 0.364929 0.364075\n0.343414 0.367218 0.364990\n0.384644 0.369507 0.365936\n0.427460 0.371765 0.366913\n0.471191 0.374023 0.367889\n0.514160 0.376373 0.368805\n0.554535 0.378723 0.369781\n0.592163 0.381104 0.370758\n0.627136 0.383392 0.371704\n0.659546 0.385742 0.372681\n0.689819 0.388184 0.373688\n0.718170 0.390533 0.374634\n0.745026 0.392944 0.375702\n0.770660 0.395386 0.376617\n0.795135 0.397736 0.377563\n0.818848 0.400177 0.378571\n0.841919 0.402588 0.379547\n0.864777 0.405060 0.380524\n0.887512 0.407440 0.381500\n0.910583 0.409882 0.382477\n0.934479 0.412323 0.383453\n0.959961 0.414734 0.384460\n0.046906 0.391693 0.351105\n0.063293 0.393677 0.351990\n0.081116 0.395782 0.352875\n0.100616 0.397888 0.353821\n0.122040 0.400024 0.354645\n0.145905 0.402191 0.355560\n0.172394 0.404388 0.356506\n0.201904 0.406464 0.357422\n0.234222 0.408752 0.358307\n0.269165 0.410980 0.359283\n0.306519 0.413177 0.360229\n0.346008 0.415436 0.361206\n0.387299 0.417694 0.362122\n0.430084 0.419952 0.363159\n0.473694 0.422302 0.364105\n0.516388 0.424561 0.364990\n0.556458 0.426910 0.365997\n0.593903 0.429230 0.366974\n0.628601 0.431549 0.367981\n0.660828 0.433929 0.368988\n0.690918 0.436310 0.369965\n0.719147 0.438629 0.370911\n0.745911 0.440979 0.371918\n0.771332 0.443329 0.372925\n0.795746 0.445740 0.373901\n0.819305 0.448090 0.374908\n0.842377 0.450470 0.375885\n0.865082 0.452820 0.376831\n0.887787 0.455231 0.377838\n0.910736 0.457520 0.378845\n0.934540 0.459930 0.379822\n0.959961 0.462341 0.380798\n0.048340 0.441528 0.346924\n0.064819 0.443573 0.347778\n0.082733 0.445618 0.348694\n0.102325 0.447754 0.349609\n0.123932 0.449799 0.350525\n0.147888 0.451996 0.351501\n0.174622 0.454163 0.352417\n0.204285 0.456299 0.353333\n0.236694 0.458435 0.354309\n0.271729 0.460693 0.355286\n0.309143 0.462891 0.356232\n0.348663 0.465088 0.357239\n0.389893 0.467255 0.358154\n0.432678 0.469543 0.359161\n0.476166 0.471802 0.360168\n0.518646 0.473999 0.361145\n0.558472 0.476288 0.362152\n0.595581 0.478546 0.363159\n0.630096 0.480774 0.364166\n0.662109 0.483063 0.365143\n0.692017 0.485352 0.366150\n0.720093 0.487579 0.367096\n0.746674 0.489868 0.368134\n0.771973 0.492096 0.369141\n0.796295 0.494354 0.370148\n0.819855 0.496643 0.371124\n0.842743 0.498871 0.372101\n0.865356 0.501160 0.373138\n0.887970 0.503418 0.374146\n0.910889 0.505585 0.375122\n0.934662 0.507782 0.376129\n0.959961 0.510010 0.377106\n0.049835 0.492432 0.342590\n0.066376 0.494354 0.343506\n0.084412 0.496399 0.344421\n0.104126 0.498444 0.345428\n0.125824 0.500458 0.346313\n0.149994 0.502472 0.347290\n0.176880 0.504578 0.348328\n0.206696 0.506622 0.349274\n0.239197 0.508667 0.350281\n0.274323 0.510773 0.351227\n0.311798 0.512787 0.352234\n0.351349 0.514923 0.353210\n0.392548 0.516968 0.354218\n0.435303 0.519043 0.355225\n0.478668 0.521149 0.356293\n0.520844 0.523193 0.357269\n0.560425 0.525269 0.358337\n0.597351 0.527374 0.359344\n0.631561 0.529388 0.360352\n0.663361 0.531464 0.361389\n0.693115 0.533478 0.362427\n0.721069 0.535492 0.363464\n0.747498 0.537537 0.364502\n0.772705 0.539551 0.365448\n0.796906 0.541565 0.366516\n0.820312 0.543579 0.367584\n0.843170 0.545532 0.368591\n0.865692 0.547485 0.369659\n0.888245 0.549530 0.370697\n0.911072 0.551422 0.371643\n0.934723 0.553314 0.372650\n0.959961 0.555237 0.373718\n0.051361 0.541992 0.338501\n0.067993 0.543762 0.339508\n0.086121 0.545563 0.340424\n0.105957 0.547424 0.341400\n0.127808 0.549194 0.342438\n0.152100 0.551025 0.343445\n0.179199 0.552856 0.344482\n0.209106 0.554657 0.345520\n0.241760 0.556519 0.346527\n0.276978 0.558289 0.347565\n0.314484 0.560150 0.348572\n0.354065 0.561981 0.349609\n0.395325 0.563751 0.350708\n0.437897 0.565643 0.351746\n0.481201 0.567474 0.352814\n0.523041 0.569244 0.353790\n0.562378 0.571075 0.354950\n0.598999 0.572876 0.355988\n0.633057 0.574677 0.356995\n0.664673 0.576508 0.358063\n0.694214 0.578278 0.359131\n0.721985 0.580048 0.360168\n0.748322 0.581818 0.361298\n0.773376 0.583588 0.362335\n0.797455 0.585297 0.363434\n0.820770 0.587067 0.364471\n0.843536 0.588776 0.365479\n0.865997 0.590454 0.366577\n0.888489 0.592224 0.367584\n0.911224 0.593872 0.368622\n0.934845 0.595551 0.369659\n0.959961 0.597198 0.370697\n0.052887 0.587921 0.334930\n0.069641 0.589478 0.335907\n0.087860 0.591095 0.336914\n0.107819 0.592651 0.338043\n0.129822 0.594238 0.339081\n0.154297 0.595825 0.340088\n0.181549 0.597443 0.341187\n0.211609 0.599030 0.342255\n0.244385 0.600616 0.343323\n0.279663 0.602203 0.344330\n0.317200 0.603790 0.345428\n0.356750 0.605438 0.346497\n0.397980 0.606964 0.347656\n0.440582 0.608612 0.348694\n0.483704 0.610199 0.349792\n0.525269 0.611725 0.350830\n0.564362 0.613312 0.351959\n0.600769 0.614899 0.353088\n0.634521 0.616455 0.354126\n0.665924 0.618042 0.355225\n0.695282 0.619537 0.356293\n0.722931 0.621094 0.357422\n0.749115 0.622620 0.358521\n0.774048 0.624115 0.359619\n0.798035 0.625610 0.360626\n0.821289 0.627167 0.361786\n0.843933 0.628571 0.362823\n0.866302 0.630066 0.363922\n0.888702 0.631561 0.364990\n0.911377 0.632996 0.366028\n0.934937 0.634399 0.367096\n0.959961 0.635803 0.368134\n0.054504 0.630127 0.331848\n0.071350 0.631500 0.332886\n0.089630 0.632874 0.334015\n0.109741 0.634277 0.335083\n0.131897 0.635651 0.336151\n0.156494 0.637024 0.337219\n0.183929 0.638428 0.338348\n0.214081 0.639740 0.339417\n0.246979 0.641174 0.340546\n0.282349 0.642517 0.341644\n0.319977 0.643921 0.342773\n0.359558 0.645294 0.343903\n0.400726 0.646637 0.345032\n0.443207 0.648010 0.346130\n0.486206 0.649414 0.347260\n0.527527 0.650757 0.348358\n0.566315 0.652100 0.349487\n0.602448 0.653412 0.350586\n0.635956 0.654755 0.351715\n0.667175 0.656067 0.352814\n0.696350 0.657379 0.353973\n0.723877 0.658722 0.355042\n0.749908 0.660034 0.356171\n0.774750 0.661316 0.357300\n0.798615 0.662628 0.358398\n0.821716 0.663879 0.359528\n0.844330 0.665161 0.360535\n0.866638 0.666412 0.361664\n0.888947 0.667633 0.362793\n0.911560 0.668823 0.363770\n0.934998 0.670105 0.364868\n0.959961 0.671295 0.365936\n0.056061 0.668793 0.329315\n0.072998 0.669952 0.330383\n0.091461 0.671204 0.331512\n0.111633 0.672363 0.332611\n0.134003 0.673523 0.333740\n0.158752 0.674713 0.334869\n0.186310 0.675873 0.335968\n0.216644 0.677063 0.337128\n0.249664 0.678284 0.338257\n0.285065 0.679443 0.339417\n0.322693 0.680603 0.340576\n0.362305 0.681793 0.341675\n0.403442 0.682953 0.342804\n0.445862 0.684143 0.343964\n0.488678 0.685333 0.345154\n0.529694 0.686432 0.346283\n0.568207 0.687622 0.347412\n0.604065 0.688751 0.348541\n0.637421 0.689911 0.349701\n0.668427 0.691040 0.350830\n0.697449 0.692169 0.351929\n0.724762 0.693268 0.353058\n0.750702 0.694397 0.354218\n0.775391 0.695496 0.355316\n0.799164 0.696594 0.356415\n0.822235 0.697662 0.357544\n0.844696 0.698700 0.358612\n0.866943 0.699829 0.359772\n0.889130 0.700836 0.360809\n0.911743 0.701904 0.361877\n0.935089 0.702942 0.363007\n0.959961 0.703949 0.364014\n0.057739 0.704315 0.327179\n0.074768 0.705292 0.328278\n0.093292 0.706329 0.329468\n0.113647 0.707336 0.330597\n0.136078 0.708344 0.331726\n0.161011 0.709351 0.332886\n0.188751 0.710388 0.334076\n0.219208 0.711395 0.335205\n0.252319 0.712433 0.336426\n0.287811 0.713409 0.337555\n0.325470 0.714417 0.338715\n0.365051 0.715454 0.339905\n0.406189 0.716431 0.341003\n0.448456 0.717438 0.342194\n0.491180 0.718475 0.343323\n0.531891 0.719391 0.344513\n0.570129 0.720398 0.345703\n0.605774 0.721375 0.346832\n0.638885 0.722351 0.348022\n0.669647 0.723358 0.349121\n0.698486 0.724274 0.350281\n0.725677 0.725250 0.351410\n0.751495 0.726196 0.352570\n0.776062 0.727112 0.353638\n0.799713 0.728058 0.354797\n0.822693 0.729004 0.355927\n0.845062 0.729889 0.357056\n0.867249 0.730804 0.358124\n0.889374 0.731659 0.359222\n0.911865 0.732574 0.360260\n0.935181 0.733459 0.361298\n0.959961 0.734283 0.362396\n0.059418 0.737122 0.325439\n0.076508 0.737946 0.326569\n0.095154 0.738831 0.327789\n0.115631 0.739716 0.328888\n0.138245 0.740570 0.330048\n0.163330 0.741486 0.331268\n0.191223 0.742310 0.332458\n0.221832 0.743225 0.333618\n0.255005 0.744110 0.334808\n0.290588 0.744904 0.335999\n0.328247 0.745819 0.337189\n0.367798 0.746674 0.338348\n0.408875 0.747498 0.339539\n0.451111 0.748352 0.340759\n0.493530 0.749207 0.341888\n0.534058 0.750031 0.343079\n0.571991 0.750885 0.344269\n0.607422 0.751709 0.345398\n0.640289 0.752563 0.346588\n0.670898 0.753357 0.347748\n0.699524 0.754211 0.348907\n0.726624 0.755005 0.350037\n0.752228 0.755798 0.351166\n0.776703 0.756592 0.352264\n0.800293 0.757416 0.353394\n0.823090 0.758148 0.354492\n0.845459 0.758942 0.355621\n0.867523 0.759705 0.356750\n0.889587 0.760437 0.357788\n0.912048 0.761230 0.358826\n0.935211 0.761932 0.359955\n0.959961 0.762665 0.360931\n0.061096 0.767731 0.323944\n0.078278 0.768463 0.325104\n0.097046 0.769196 0.326324\n0.117615 0.769928 0.327545\n0.140381 0.770691 0.328735\n0.165680 0.771423 0.329926\n0.193665 0.772186 0.331085\n0.224426 0.772919 0.332336\n0.257721 0.773651 0.333527\n0.293335 0.774384 0.334686\n0.331085 0.775146 0.335907\n0.370575 0.775848 0.337128\n0.411621 0.776611 0.338287\n0.453735 0.777313 0.339539\n0.495941 0.778015 0.340668\n0.536194 0.778748 0.341858\n0.573914 0.779480 0.343018\n0.609009 0.780151 0.344208\n0.641663 0.780853 0.345367\n0.672058 0.781586 0.346558\n0.700592 0.782227 0.347687\n0.727509 0.782959 0.348816\n0.752991 0.783630 0.349976\n0.777374 0.784271 0.351105\n0.800812 0.784973 0.352203\n0.823517 0.785583 0.353302\n0.845825 0.786255 0.354401\n0.867798 0.786926 0.355499\n0.889832 0.787537 0.356506\n0.912109 0.788147 0.357635\n0.935303 0.788788 0.358704\n0.959961 0.789368 0.359711\n0.062775 0.796478 0.322723\n0.080109 0.797089 0.323944\n0.098969 0.797729 0.325195\n0.119659 0.798370 0.326385\n0.142578 0.799011 0.327576\n0.167969 0.799622 0.328827\n0.196198 0.800232 0.329987\n0.227051 0.800903 0.331207\n0.260437 0.801514 0.332458\n0.296082 0.802124 0.333679\n0.333832 0.802795 0.334839\n0.373291 0.803345 0.336060\n0.414276 0.803986 0.337250\n0.456360 0.804626 0.338470\n0.498383 0.805206 0.339630\n0.538300 0.805817 0.340820\n0.575714 0.806396 0.342010\n0.610626 0.807037 0.343201\n0.643036 0.807587 0.344330\n0.673279 0.808197 0.345490\n0.701569 0.808777 0.346649\n0.728394 0.809326 0.347809\n0.753754 0.809937 0.348969\n0.777985 0.810455 0.350067\n0.801300 0.811035 0.351166\n0.824005 0.811584 0.352234\n0.846161 0.812134 0.353333\n0.868103 0.812622 0.354401\n0.890015 0.813202 0.355469\n0.912292 0.813690 0.356537\n0.935394 0.814209 0.357544\n0.959961 0.814697 0.358521\n0.064484 0.823730 0.321747\n0.081879 0.824249 0.322998\n0.100891 0.824829 0.324219\n0.121735 0.825317 0.325439\n0.144745 0.825867 0.326660\n0.170349 0.826385 0.327911\n0.198669 0.826935 0.329102\n0.229645 0.827423 0.330292\n0.263092 0.827972 0.331573\n0.298828 0.828522 0.332794\n0.336578 0.829010 0.333984\n0.376038 0.829498 0.335205\n0.416962 0.830017 0.336395\n0.458923 0.830566 0.337616\n0.500702 0.831055 0.338776\n0.540344 0.831573 0.339996\n0.577545 0.832092 0.341125\n0.612183 0.832550 0.342285\n0.644409 0.833008 0.343445\n0.674408 0.833557 0.344604\n0.702576 0.834015 0.345703\n0.729156 0.834473 0.346863\n0.754425 0.834961 0.347992\n0.778595 0.835419 0.349121\n0.801849 0.835907 0.350189\n0.824432 0.836304 0.351318\n0.846497 0.836823 0.352356\n0.868378 0.837250 0.353485\n0.890228 0.837677 0.354462\n0.912415 0.838135 0.355469\n0.935455 0.838562 0.356445\n0.959961 0.838959 0.357422\n0.066223 0.849792 0.320892\n0.083740 0.850220 0.322113\n0.102814 0.850677 0.323395\n0.123810 0.851105 0.324615\n0.146973 0.851562 0.325867\n0.172791 0.851990 0.327087\n0.201202 0.852417 0.328308\n0.232300 0.852875 0.329559\n0.265808 0.853302 0.330780\n0.301575 0.853729 0.331970\n0.339294 0.854187 0.333221\n0.378754 0.854584 0.334381\n0.419617 0.855011 0.335602\n0.461426 0.855438 0.336792\n0.503021 0.855865 0.337982\n0.542419 0.856293 0.339142\n0.579346 0.856689 0.340363\n0.613708 0.857086 0.341492\n0.645691 0.857513 0.342651\n0.675568 0.857880 0.343811\n0.703552 0.858276 0.344910\n0.730011 0.858673 0.346039\n0.755127 0.859070 0.347137\n0.779205 0.859436 0.348206\n0.802338 0.859833 0.349396\n0.824829 0.860199 0.350403\n0.846863 0.860535 0.351440\n0.868622 0.860931 0.352478\n0.890411 0.861267 0.353455\n0.912537 0.861633 0.354492\n0.935486 0.862000 0.355499\n0.959961 0.862305 0.356415\n0.067963 0.874939 0.320190\n0.085602 0.875275 0.321472\n0.104797 0.875702 0.322723\n0.125885 0.876007 0.323944\n0.149231 0.876373 0.325195\n0.175140 0.876740 0.326416\n0.203735 0.877106 0.327606\n0.234894 0.877472 0.328857\n0.268463 0.877808 0.330078\n0.304291 0.878174 0.331299\n0.342041 0.878479 0.332550\n0.381470 0.878876 0.333740\n0.422241 0.879211 0.334930\n0.463928 0.879547 0.336121\n0.505280 0.879883 0.337250\n0.544403 0.880188 0.338440\n0.581085 0.880554 0.339630\n0.615234 0.880859 0.340790\n0.647034 0.881195 0.341919\n0.676636 0.881531 0.343018\n0.704498 0.881836 0.344116\n0.730835 0.882141 0.345276\n0.755859 0.882446 0.346313\n0.779755 0.882782 0.347443\n0.802826 0.883087 0.348480\n0.825226 0.883362 0.349518\n0.847198 0.883667 0.350555\n0.868866 0.883972 0.351562\n0.890625 0.884247 0.352539\n0.912659 0.884491 0.353546\n0.935547 0.884796 0.354492\n0.959961 0.885040 0.355408\n0.069733 0.899506 0.319550\n0.087433 0.899841 0.320801\n0.106781 0.900116 0.322083\n0.127991 0.900391 0.323303\n0.151459 0.900665 0.324524\n0.177490 0.900970 0.325745\n0.206238 0.901215 0.327026\n0.237488 0.901489 0.328247\n0.271118 0.901764 0.329468\n0.306946 0.902069 0.330688\n0.344727 0.902344 0.331940\n0.384125 0.902618 0.333069\n0.424866 0.902863 0.334259\n0.466431 0.903168 0.335449\n0.507568 0.903412 0.336609\n0.546387 0.903687 0.337830\n0.582764 0.903961 0.338959\n0.616699 0.904205 0.340057\n0.648285 0.904480 0.341187\n0.677734 0.904694 0.342316\n0.705444 0.904968 0.343384\n0.731628 0.905212 0.344513\n0.756531 0.905457 0.345520\n0.780334 0.905670 0.346588\n0.803314 0.905884 0.347626\n0.825653 0.906128 0.348663\n0.847473 0.906342 0.349670\n0.869110 0.906555 0.350616\n0.890808 0.906799 0.351624\n0.912781 0.907013 0.352570\n0.935638 0.907196 0.353455\n0.959961 0.907410 0.354340\n0.071503 0.923859 0.318878\n0.089294 0.924042 0.320190\n0.108734 0.924255 0.321442\n0.130066 0.924469 0.322693\n0.153717 0.924744 0.323944\n0.179901 0.924927 0.325134\n0.208771 0.925110 0.326447\n0.240143 0.925323 0.327606\n0.273804 0.925568 0.328796\n0.309631 0.925781 0.330048\n0.347412 0.925964 0.331238\n0.386719 0.926117 0.332367\n0.427368 0.926361 0.333557\n0.468811 0.926575 0.334808\n0.509705 0.926758 0.335938\n0.548279 0.926971 0.337067\n0.584442 0.927124 0.338196\n0.618134 0.927338 0.339325\n0.649506 0.927521 0.340424\n0.678802 0.927704 0.341522\n0.706360 0.927917 0.342621\n0.732391 0.928070 0.343689\n0.757141 0.928223 0.344635\n0.780914 0.928436 0.345734\n0.803772 0.928589 0.346741\n0.825989 0.928741 0.347656\n0.847809 0.928955 0.348633\n0.869385 0.929108 0.349640\n0.890930 0.929291 0.350586\n0.912933 0.929413 0.351471\n0.935699 0.929535 0.352386\n0.959961 0.929657 0.353210\n0.073303 0.948334 0.318207\n0.091156 0.948456 0.319550\n0.110718 0.948578 0.320770\n0.132172 0.948730 0.322021\n0.155975 0.948883 0.323273\n0.182281 0.949005 0.324493\n0.211243 0.949158 0.325714\n0.242676 0.949280 0.326965\n0.276398 0.949432 0.328156\n0.312286 0.949615 0.329315\n0.350037 0.949768 0.330536\n0.389313 0.949860 0.331696\n0.429901 0.950012 0.332916\n0.471191 0.950134 0.334015\n0.511810 0.950287 0.335144\n0.550140 0.950378 0.336334\n0.586060 0.950531 0.337402\n0.619507 0.950623 0.338531\n0.650696 0.950745 0.339630\n0.679810 0.950897 0.340637\n0.707153 0.951019 0.341675\n0.733124 0.951141 0.342773\n0.757782 0.951233 0.343719\n0.781433 0.951355 0.344727\n0.804199 0.951508 0.345703\n0.826385 0.951599 0.346680\n0.848083 0.951721 0.347565\n0.869568 0.951813 0.348541\n0.891113 0.951935 0.349457\n0.913055 0.951996 0.350311\n0.935730 0.952118 0.351166\n0.959961 0.952240 0.351990\n0.075043 0.973419 0.317505\n0.093048 0.973480 0.318756\n0.112671 0.973541 0.319977\n0.134277 0.973663 0.321259\n0.158173 0.973694 0.322510\n0.184631 0.973816 0.323669\n0.213715 0.973877 0.324890\n0.245270 0.973969 0.326141\n0.279022 0.974030 0.327301\n0.314911 0.974091 0.328522\n0.352600 0.974182 0.329712\n0.391846 0.974213 0.330902\n0.432312 0.974304 0.332001\n0.473541 0.974365 0.333130\n0.513947 0.974426 0.334259\n0.551941 0.974518 0.335358\n0.587616 0.974579 0.336426\n0.620880 0.974609 0.337524\n0.651825 0.974701 0.338593\n0.680817 0.974731 0.339661\n0.708038 0.974854 0.340637\n0.733887 0.974884 0.341644\n0.758392 0.974976 0.342651\n0.781921 0.975006 0.343628\n0.804626 0.975067 0.344513\n0.826691 0.975098 0.345428\n0.848389 0.975189 0.346436\n0.869812 0.975220 0.347260\n0.891296 0.975250 0.348145\n0.913147 0.975281 0.348907\n0.935822 0.975342 0.349762\n0.959961 0.975403 0.350525\n0.076843 1.000000 0.316528\n0.094879 1.000000 0.317841\n0.114624 1.000000 0.319031\n0.136353 1.000000 0.320251\n0.160400 1.000000 0.321503\n0.186951 1.000000 0.322723\n0.216156 1.000000 0.323914\n0.247772 1.000000 0.325134\n0.281586 1.000000 0.326294\n0.317444 1.000000 0.327484\n0.355164 1.000000 0.328552\n0.394318 1.000000 0.329803\n0.434753 1.000000 0.330933\n0.475769 1.000000 0.332001\n0.515961 1.000000 0.333099\n0.553711 1.000000 0.334229\n0.589172 1.000000 0.335266\n0.622223 1.000000 0.336334\n0.652985 1.000000 0.337341\n0.681763 1.000000 0.338348\n0.708862 1.000000 0.339355\n0.734558 1.000000 0.340332\n0.758972 1.000000 0.341278\n0.782410 1.000000 0.342194\n0.805023 1.000000 0.343140\n0.827057 1.000000 0.343964\n0.848633 1.000000 0.344849\n0.870026 1.000000 0.345673\n0.891449 1.000000 0.346558\n0.913269 1.000000 0.347321\n0.935852 1.000000 0.348083\n0.959961 1.000000 0.348846\n0.032562 0.002625 0.422394\n0.048096 0.003265 0.422974\n0.064819 0.003876 0.423553\n0.083008 0.004578 0.424164\n0.102905 0.005310 0.424744\n0.125000 0.006042 0.425323\n0.149597 0.006805 0.426025\n0.177094 0.007568 0.426697\n0.207733 0.008392 0.427368\n0.241302 0.009216 0.428101\n0.277618 0.010040 0.428802\n0.316498 0.010925 0.429626\n0.357544 0.011841 0.430359\n0.400482 0.012756 0.431122\n0.444885 0.013702 0.431915\n0.489807 0.014618 0.432739\n0.532928 0.015625 0.433594\n0.573151 0.016632 0.434418\n0.610596 0.017639 0.435303\n0.645172 0.018677 0.436218\n0.677368 0.019775 0.437073\n0.707458 0.020813 0.437958\n0.735809 0.021942 0.438873\n0.762726 0.023071 0.439819\n0.788422 0.024200 0.440765\n0.813232 0.025360 0.441681\n0.837372 0.026520 0.442657\n0.861053 0.027740 0.443634\n0.884705 0.028961 0.444611\n0.908661 0.030151 0.445587\n0.933441 0.031403 0.446564\n0.959961 0.032684 0.447601\n0.033386 0.018921 0.421539\n0.048950 0.019653 0.422119\n0.065704 0.020325 0.422729\n0.083984 0.021088 0.423370\n0.104034 0.021820 0.424042\n0.126221 0.022644 0.424744\n0.150970 0.023438 0.425385\n0.178589 0.024261 0.426147\n0.209351 0.025146 0.426849\n0.243042 0.026062 0.427643\n0.279449 0.026917 0.428314\n0.318359 0.027863 0.429138\n0.359497 0.028839 0.429932\n0.402435 0.029846 0.430756\n0.446838 0.030823 0.431519\n0.491638 0.031830 0.432434\n0.534546 0.032867 0.433258\n0.574585 0.033966 0.434113\n0.611847 0.035034 0.435059\n0.646332 0.036163 0.435913\n0.678314 0.037323 0.436829\n0.708282 0.038422 0.437775\n0.736511 0.039612 0.438721\n0.763336 0.040802 0.439667\n0.788971 0.041992 0.440582\n0.813660 0.043243 0.441528\n0.837677 0.044464 0.442505\n0.861359 0.045715 0.443542\n0.884949 0.047028 0.444550\n0.908844 0.048309 0.445496\n0.933533 0.049652 0.446533\n0.959961 0.050995 0.447571\n0.034241 0.036194 0.420685\n0.049866 0.036926 0.421265\n0.066711 0.037720 0.421967\n0.085052 0.038513 0.422607\n0.105194 0.039337 0.423309\n0.127502 0.040222 0.424011\n0.152374 0.041107 0.424744\n0.180176 0.042023 0.425507\n0.211060 0.042969 0.426239\n0.244843 0.043945 0.427032\n0.281372 0.044922 0.427826\n0.320374 0.045929 0.428650\n0.361511 0.046967 0.429382\n0.404480 0.048004 0.430328\n0.448853 0.049103 0.431152\n0.493530 0.050201 0.431976\n0.536224 0.051331 0.432892\n0.576111 0.052460 0.433807\n0.613098 0.053650 0.434692\n0.647430 0.054840 0.435638\n0.679321 0.056061 0.436493\n0.709167 0.057281 0.437469\n0.737274 0.058533 0.438416\n0.764008 0.059784 0.439362\n0.789490 0.061096 0.440338\n0.814117 0.062439 0.441284\n0.838074 0.063751 0.442261\n0.861633 0.065125 0.443298\n0.885132 0.066498 0.444336\n0.908966 0.067902 0.445282\n0.933624 0.069305 0.446320\n0.959961 0.070740 0.447357\n0.035156 0.054688 0.419708\n0.050842 0.055511 0.420410\n0.067749 0.056427 0.421082\n0.086212 0.057312 0.421783\n0.106445 0.058197 0.422485\n0.128906 0.059174 0.423248\n0.153931 0.060150 0.423981\n0.181854 0.061157 0.424744\n0.212830 0.062195 0.425507\n0.246796 0.063263 0.426392\n0.283356 0.064331 0.427124\n0.322418 0.065430 0.428009\n0.363586 0.066528 0.428864\n0.406586 0.067719 0.429718\n0.450897 0.068909 0.430603\n0.495483 0.070068 0.431488\n0.537994 0.071320 0.432343\n0.577606 0.072571 0.433319\n0.614502 0.073822 0.434174\n0.648590 0.075165 0.435120\n0.680298 0.076477 0.436096\n0.710052 0.077789 0.436981\n0.738037 0.079163 0.437958\n0.764618 0.080505 0.438904\n0.790039 0.081970 0.439880\n0.814606 0.083405 0.440918\n0.838470 0.084808 0.441864\n0.861938 0.086304 0.442902\n0.885406 0.087799 0.443848\n0.909149 0.089264 0.444855\n0.933685 0.090820 0.445862\n0.959961 0.092377 0.446930\n0.036163 0.074890 0.418610\n0.051880 0.075836 0.419342\n0.068878 0.076813 0.420074\n0.087433 0.077820 0.420837\n0.107788 0.078827 0.421539\n0.130371 0.079895 0.422302\n0.155487 0.080963 0.423065\n0.183563 0.082062 0.423889\n0.214752 0.083221 0.424652\n0.248749 0.084351 0.425507\n0.285461 0.085541 0.426331\n0.324524 0.086823 0.427185\n0.365753 0.088013 0.428040\n0.408691 0.089294 0.428925\n0.453033 0.090607 0.429840\n0.497437 0.091919 0.430695\n0.539734 0.093262 0.431641\n0.579163 0.094635 0.432526\n0.615814 0.096008 0.433472\n0.649780 0.097473 0.434418\n0.681335 0.098877 0.435364\n0.710907 0.100342 0.436310\n0.738800 0.101868 0.437256\n0.765259 0.103363 0.438202\n0.790588 0.104889 0.439270\n0.815033 0.106476 0.440216\n0.838837 0.108032 0.441193\n0.862274 0.109650 0.442200\n0.885651 0.111237 0.443237\n0.909302 0.112885 0.444214\n0.933807 0.114563 0.445190\n0.959961 0.116241 0.446198\n0.037170 0.097168 0.417419\n0.052979 0.098236 0.418152\n0.070068 0.099304 0.418854\n0.088715 0.100433 0.419617\n0.109161 0.101593 0.420349\n0.131866 0.102783 0.421173\n0.157135 0.104004 0.421936\n0.185425 0.105194 0.422729\n0.216675 0.106476 0.423615\n0.250793 0.107758 0.424408\n0.287598 0.109100 0.425293\n0.326721 0.110474 0.426147\n0.368011 0.111816 0.427002\n0.410950 0.113251 0.427917\n0.455231 0.114655 0.428833\n0.499512 0.116119 0.429688\n0.541595 0.117615 0.430603\n0.580811 0.119110 0.431549\n0.617218 0.120667 0.432465\n0.650970 0.122223 0.433411\n0.682373 0.123779 0.434387\n0.711823 0.125427 0.435333\n0.739594 0.127075 0.436310\n0.765900 0.128693 0.437286\n0.791168 0.130432 0.438263\n0.815521 0.132141 0.439240\n0.839233 0.133820 0.440186\n0.862579 0.135590 0.441193\n0.885834 0.137390 0.442200\n0.909454 0.139160 0.443207\n0.933868 0.140991 0.444214\n0.959961 0.142853 0.445190\n0.038269 0.122040 0.415863\n0.054138 0.123199 0.416565\n0.071320 0.124451 0.417328\n0.090027 0.125732 0.418182\n0.110626 0.126984 0.418945\n0.133423 0.128326 0.419739\n0.158844 0.129669 0.420563\n0.187317 0.131073 0.421326\n0.218719 0.132507 0.422241\n0.252930 0.133911 0.423096\n0.289795 0.135376 0.423920\n0.329010 0.136902 0.424805\n0.370270 0.138428 0.425659\n0.413269 0.139984 0.426575\n0.457458 0.141602 0.427460\n0.501556 0.143188 0.428375\n0.543427 0.144836 0.429291\n0.582367 0.146576 0.430237\n0.618622 0.148224 0.431152\n0.652252 0.149963 0.432129\n0.683472 0.151703 0.433044\n0.712769 0.153473 0.434021\n0.740387 0.155304 0.435028\n0.766602 0.157135 0.435944\n0.791748 0.158997 0.436920\n0.816010 0.160889 0.437897\n0.839630 0.162750 0.438843\n0.862915 0.164703 0.439850\n0.886108 0.166595 0.440796\n0.909637 0.168610 0.441803\n0.933990 0.170593 0.442810\n0.959961 0.172577 0.443817\n0.039368 0.149963 0.414032\n0.055298 0.151276 0.414764\n0.072601 0.152710 0.415527\n0.091400 0.154144 0.416351\n0.112152 0.155579 0.417175\n0.135071 0.157074 0.417938\n0.160645 0.158569 0.418762\n0.189240 0.160126 0.419647\n0.220795 0.161743 0.420502\n0.255127 0.163330 0.421295\n0.292084 0.165009 0.422180\n0.331360 0.166687 0.423096\n0.372650 0.168365 0.423950\n0.415588 0.170105 0.424835\n0.459747 0.171906 0.425751\n0.503662 0.173676 0.426666\n0.545288 0.175507 0.427612\n0.584015 0.177368 0.428497\n0.620056 0.179260 0.429443\n0.653412 0.181213 0.430420\n0.684509 0.183075 0.431305\n0.713684 0.185059 0.432281\n0.741180 0.187073 0.433228\n0.767273 0.189026 0.434235\n0.792328 0.191132 0.435150\n0.816498 0.193207 0.436157\n0.840027 0.195221 0.437042\n0.863251 0.197357 0.438080\n0.886383 0.199463 0.438995\n0.909760 0.201599 0.439972\n0.934021 0.203796 0.440948\n0.959961 0.205933 0.441925\n0.040588 0.181580 0.411774\n0.056580 0.183075 0.412537\n0.073944 0.184631 0.413391\n0.092834 0.186218 0.414124\n0.113708 0.187897 0.414948\n0.136810 0.189545 0.415771\n0.162567 0.191223 0.416534\n0.191284 0.192993 0.417450\n0.222961 0.194763 0.418304\n0.257416 0.196533 0.419189\n0.294464 0.198334 0.420074\n0.333771 0.200226 0.420929\n0.375000 0.202087 0.421814\n0.417999 0.204010 0.422699\n0.462006 0.205933 0.423584\n0.505829 0.207916 0.424500\n0.547150 0.209961 0.425446\n0.585693 0.211975 0.426331\n0.621521 0.214020 0.427277\n0.654694 0.216125 0.428223\n0.685608 0.218170 0.429138\n0.714569 0.220337 0.430084\n0.741974 0.222473 0.431061\n0.767944 0.224609 0.431976\n0.792877 0.226807 0.432953\n0.816956 0.229034 0.433868\n0.840424 0.231232 0.434845\n0.863525 0.233490 0.435791\n0.886566 0.235718 0.436737\n0.909943 0.238007 0.437714\n0.934113 0.240356 0.438690\n0.959961 0.242645 0.439606\n0.041779 0.217102 0.409088\n0.057892 0.218781 0.409851\n0.075317 0.220520 0.410645\n0.094360 0.222229 0.411469\n0.115295 0.224060 0.412262\n0.138580 0.225891 0.413147\n0.164459 0.227722 0.414001\n0.193420 0.229614 0.414825\n0.225220 0.231567 0.415680\n0.259735 0.233490 0.416565\n0.296844 0.235474 0.417450\n0.336212 0.237549 0.418304\n0.377533 0.239532 0.419220\n0.420410 0.241577 0.420135\n0.464355 0.243652 0.420990\n0.508026 0.245789 0.421936\n0.549072 0.247986 0.422852\n0.587372 0.250061 0.423767\n0.622955 0.252289 0.424683\n0.655975 0.254547 0.425598\n0.686676 0.256683 0.426514\n0.715515 0.258972 0.427521\n0.742767 0.261261 0.428436\n0.768677 0.263519 0.429352\n0.793488 0.265869 0.430298\n0.817444 0.268127 0.431244\n0.840851 0.270447 0.432220\n0.863831 0.272888 0.433136\n0.886810 0.275146 0.434052\n0.910126 0.277588 0.435028\n0.934235 0.279968 0.435974\n0.959961 0.282318 0.436890\n0.043030 0.256287 0.405975\n0.059235 0.258148 0.406799\n0.076782 0.260040 0.407562\n0.095917 0.261871 0.408417\n0.117035 0.263824 0.409241\n0.140411 0.265808 0.410126\n0.166473 0.267761 0.410950\n0.195557 0.269806 0.411835\n0.227478 0.271851 0.412689\n0.262146 0.273895 0.413544\n0.299316 0.276031 0.414429\n0.338715 0.278107 0.415253\n0.380005 0.280273 0.416229\n0.422943 0.282471 0.417114\n0.466766 0.284668 0.418030\n0.510193 0.286896 0.418976\n0.551056 0.289154 0.419861\n0.589081 0.291382 0.420776\n0.624481 0.293701 0.421692\n0.657257 0.296021 0.422638\n0.687775 0.298340 0.423584\n0.716492 0.300659 0.424500\n0.743622 0.303040 0.425476\n0.769348 0.305389 0.426361\n0.794098 0.307770 0.427277\n0.817963 0.310120 0.428223\n0.841217 0.312561 0.429199\n0.864166 0.315002 0.430084\n0.887054 0.317383 0.431061\n0.910278 0.319824 0.431976\n0.934296 0.322327 0.432953\n0.959961 0.324707 0.433899\n0.044403 0.298920 0.402496\n0.060638 0.300812 0.403320\n0.078278 0.302856 0.404144\n0.097534 0.304810 0.404938\n0.118774 0.306854 0.405792\n0.142303 0.308899 0.406647\n0.168549 0.310974 0.407501\n0.197754 0.313141 0.408447\n0.229828 0.315277 0.409302\n0.264557 0.317383 0.410156\n0.301819 0.319611 0.411102\n0.341248 0.321808 0.411957\n0.382568 0.324036 0.412842\n0.425476 0.326324 0.413788\n0.469208 0.328552 0.414703\n0.512390 0.330841 0.415588\n0.552917 0.333221 0.416534\n0.590820 0.335510 0.417480\n0.625946 0.337891 0.418396\n0.658508 0.340271 0.419281\n0.688904 0.342590 0.420227\n0.717407 0.344971 0.421234\n0.744415 0.347351 0.422119\n0.770050 0.349792 0.423035\n0.794678 0.352234 0.424011\n0.818420 0.354614 0.424896\n0.841644 0.357056 0.425903\n0.864471 0.359528 0.426788\n0.887299 0.361938 0.427704\n0.910461 0.364410 0.428680\n0.934387 0.366852 0.429565\n0.959961 0.369263 0.430511\n0.045715 0.344421 0.398651\n0.062103 0.346466 0.399506\n0.079834 0.348541 0.400391\n0.099182 0.350555 0.401215\n0.120544 0.352661 0.402069\n0.144257 0.354858 0.402954\n0.170685 0.356934 0.403809\n0.200043 0.359131 0.404724\n0.232239 0.361328 0.405609\n0.267090 0.363556 0.406525\n0.304413 0.365753 0.407379\n0.343811 0.368011 0.408356\n0.385162 0.370300 0.409210\n0.427979 0.372589 0.410156\n0.471649 0.374908 0.411072\n0.514587 0.377228 0.412018\n0.554871 0.379608 0.412933\n0.592468 0.381927 0.413849\n0.627411 0.384277 0.414825\n0.659760 0.386719 0.415771\n0.690002 0.389008 0.416626\n0.718384 0.391449 0.417633\n0.745209 0.393799 0.418549\n0.770782 0.396240 0.419464\n0.795258 0.398682 0.420410\n0.818909 0.401001 0.421326\n0.842010 0.403473 0.422302\n0.864838 0.405975 0.423218\n0.887543 0.408325 0.424133\n0.910614 0.410767 0.425140\n0.934479 0.413208 0.426025\n0.959961 0.415649 0.426941\n0.047150 0.392395 0.394623\n0.063568 0.394501 0.395508\n0.081421 0.396576 0.396362\n0.100891 0.398651 0.397217\n0.122406 0.400818 0.398071\n0.146271 0.403015 0.399017\n0.172821 0.405121 0.399872\n0.202332 0.407288 0.400787\n0.234650 0.409454 0.401672\n0.269623 0.411743 0.402618\n0.307007 0.414001 0.403534\n0.346436 0.416229 0.404388\n0.387787 0.418488 0.405365\n0.430573 0.420898 0.406281\n0.474121 0.423126 0.407257\n0.516815 0.425446 0.408173\n0.556915 0.427826 0.409119\n0.594208 0.430084 0.410065\n0.628906 0.432465 0.410950\n0.661072 0.434784 0.411896\n0.691101 0.437103 0.412903\n0.719330 0.439484 0.413849\n0.746033 0.441833 0.414795\n0.771484 0.444214 0.415680\n0.795837 0.446625 0.416656\n0.819427 0.448975 0.417572\n0.842438 0.451355 0.418518\n0.865112 0.453735 0.419464\n0.887817 0.456085 0.420441\n0.910767 0.458405 0.421356\n0.934570 0.460724 0.422302\n0.959961 0.463135 0.423218\n0.048615 0.442230 0.390411\n0.065155 0.444336 0.391266\n0.083069 0.446411 0.392151\n0.102661 0.448486 0.392975\n0.124268 0.450653 0.393890\n0.148285 0.452728 0.394806\n0.175049 0.454895 0.395782\n0.204681 0.457153 0.396667\n0.237152 0.459229 0.397583\n0.272217 0.461456 0.398468\n0.309631 0.463715 0.399475\n0.349152 0.465881 0.400391\n0.390411 0.468109 0.401428\n0.433136 0.470398 0.402283\n0.476624 0.472595 0.403259\n0.519073 0.474854 0.404205\n0.558868 0.477142 0.405151\n0.595947 0.479370 0.406097\n0.630371 0.481689 0.407074\n0.662354 0.483856 0.408020\n0.692200 0.486145 0.408936\n0.720306 0.488403 0.409943\n0.746826 0.490692 0.410919\n0.772125 0.492950 0.411835\n0.796417 0.495239 0.412811\n0.819885 0.497467 0.413757\n0.842834 0.499756 0.414703\n0.865448 0.501984 0.415710\n0.888031 0.504211 0.416595\n0.910950 0.506439 0.417511\n0.934692 0.508606 0.418488\n0.959961 0.510803 0.419434\n0.050079 0.493134 0.386047\n0.066711 0.495117 0.386932\n0.084747 0.497131 0.387848\n0.104462 0.499176 0.388794\n0.126221 0.501190 0.389709\n0.150360 0.503235 0.390656\n0.177338 0.505310 0.391571\n0.207123 0.507416 0.392487\n0.239655 0.509430 0.393433\n0.274811 0.511536 0.394470\n0.312317 0.513580 0.395416\n0.351837 0.515625 0.396332\n0.393097 0.517731 0.397369\n0.435760 0.519836 0.398376\n0.479156 0.521851 0.399292\n0.521271 0.523987 0.400238\n0.560822 0.526031 0.401215\n0.597626 0.528076 0.402283\n0.631836 0.530151 0.403198\n0.663635 0.532166 0.404175\n0.693298 0.534241 0.405182\n0.721222 0.536285 0.406219\n0.747650 0.538269 0.407104\n0.772827 0.540314 0.408142\n0.796997 0.542328 0.409119\n0.820374 0.544312 0.410065\n0.843231 0.546265 0.411102\n0.865784 0.548248 0.412048\n0.888245 0.550171 0.412994\n0.911072 0.552124 0.414032\n0.934723 0.554047 0.414917\n0.959961 0.555969 0.415955\n0.051636 0.542664 0.381866\n0.068298 0.544464 0.382843\n0.086456 0.546265 0.383789\n0.106293 0.548065 0.384735\n0.128235 0.549866 0.385773\n0.152496 0.551636 0.386719\n0.179626 0.553497 0.387695\n0.209595 0.555359 0.388702\n0.242249 0.557159 0.389709\n0.277496 0.558990 0.390686\n0.315002 0.560883 0.391663\n0.354553 0.562622 0.392670\n0.395813 0.564514 0.393738\n0.438385 0.566315 0.394714\n0.481628 0.568085 0.395721\n0.523529 0.569946 0.396729\n0.562775 0.571747 0.397797\n0.599396 0.573578 0.398804\n0.633331 0.575378 0.399811\n0.664886 0.577148 0.400787\n0.694427 0.578949 0.401825\n0.722168 0.580688 0.402863\n0.748444 0.582458 0.403870\n0.773529 0.584229 0.404907\n0.797607 0.585999 0.405945\n0.820831 0.587708 0.406891\n0.843628 0.589417 0.407867\n0.866058 0.591156 0.408936\n0.888519 0.592834 0.409882\n0.911255 0.594513 0.410919\n0.934845 0.596100 0.411865\n0.959961 0.597748 0.412842\n0.053192 0.588440 0.378265\n0.069946 0.590088 0.379303\n0.088165 0.591644 0.380310\n0.108154 0.593231 0.381287\n0.130219 0.594788 0.382324\n0.154724 0.596375 0.383362\n0.181946 0.597992 0.384399\n0.212067 0.599609 0.385376\n0.244843 0.601196 0.386383\n0.280151 0.602814 0.387451\n0.317749 0.604401 0.388489\n0.357300 0.605988 0.389526\n0.398529 0.607574 0.390594\n0.441101 0.609161 0.391602\n0.484131 0.610718 0.392670\n0.525696 0.612305 0.393707\n0.564697 0.613892 0.394775\n0.601074 0.615448 0.395813\n0.634766 0.617035 0.396851\n0.666138 0.618561 0.397888\n0.695496 0.620117 0.398956\n0.723114 0.621674 0.399994\n0.749298 0.623138 0.401031\n0.774200 0.624695 0.402069\n0.798157 0.626221 0.403107\n0.821350 0.627686 0.404114\n0.843994 0.629181 0.405121\n0.866394 0.630615 0.406128\n0.888763 0.632080 0.407166\n0.911407 0.633545 0.408203\n0.934937 0.634918 0.409149\n0.959961 0.636322 0.410156\n0.054779 0.630646 0.375183\n0.071625 0.632050 0.376190\n0.089966 0.633392 0.377258\n0.110077 0.634766 0.378265\n0.132294 0.636139 0.379395\n0.156921 0.637512 0.380402\n0.184326 0.638885 0.381470\n0.214600 0.640320 0.382568\n0.247498 0.641663 0.383606\n0.282867 0.643036 0.384674\n0.320496 0.644409 0.385742\n0.360046 0.645782 0.386841\n0.401276 0.647156 0.387939\n0.443726 0.648499 0.388977\n0.486664 0.649872 0.390045\n0.527924 0.651276 0.391113\n0.566681 0.652527 0.392212\n0.602753 0.653900 0.393219\n0.636230 0.655304 0.394379\n0.667389 0.656555 0.395416\n0.696564 0.657867 0.396484\n0.724030 0.659241 0.397552\n0.750031 0.660522 0.398560\n0.774902 0.661774 0.399628\n0.798737 0.663055 0.400696\n0.821808 0.664337 0.401733\n0.844421 0.665619 0.402802\n0.866669 0.666840 0.403778\n0.888947 0.668121 0.404816\n0.911591 0.669312 0.405853\n0.934998 0.670471 0.406830\n0.959961 0.671692 0.407837\n0.056396 0.669189 0.372589\n0.073364 0.670410 0.373627\n0.091797 0.671600 0.374725\n0.112000 0.672760 0.375793\n0.134338 0.673981 0.376923\n0.159149 0.675171 0.377930\n0.186768 0.676331 0.379089\n0.217133 0.677521 0.380188\n0.250092 0.678711 0.381256\n0.285614 0.679871 0.382324\n0.323212 0.681091 0.383453\n0.362762 0.682251 0.384552\n0.403961 0.683411 0.385681\n0.446350 0.684540 0.386780\n0.489136 0.685699 0.387848\n0.530090 0.686920 0.388916\n0.568573 0.687988 0.390015\n0.604431 0.689178 0.391113\n0.637665 0.690338 0.392242\n0.668640 0.691437 0.393311\n0.697662 0.692566 0.394379\n0.724976 0.693695 0.395508\n0.750824 0.694824 0.396545\n0.775543 0.695923 0.397614\n0.799255 0.696960 0.398621\n0.822296 0.698059 0.399719\n0.844757 0.699127 0.400787\n0.867004 0.700165 0.401764\n0.889191 0.701233 0.402832\n0.911743 0.702271 0.403870\n0.935089 0.703339 0.404846\n0.959961 0.704346 0.405853\n0.058014 0.704651 0.370361\n0.075073 0.705688 0.371490\n0.093628 0.706665 0.372528\n0.114014 0.707703 0.373718\n0.136475 0.708740 0.374847\n0.161438 0.709717 0.375885\n0.189178 0.710724 0.377075\n0.219727 0.711761 0.378204\n0.252808 0.712769 0.379272\n0.288330 0.713776 0.380402\n0.325958 0.714783 0.381531\n0.365540 0.715790 0.382629\n0.406677 0.716827 0.383789\n0.449005 0.717804 0.384857\n0.491547 0.718811 0.386017\n0.532349 0.719818 0.387085\n0.570465 0.720764 0.388214\n0.606049 0.721741 0.389313\n0.639130 0.722748 0.390442\n0.669891 0.723663 0.391510\n0.698730 0.724640 0.392578\n0.725861 0.725586 0.393738\n0.751648 0.726532 0.394775\n0.776184 0.727448 0.395844\n0.799835 0.728394 0.396942\n0.822754 0.729309 0.397980\n0.845154 0.730255 0.399017\n0.867310 0.731110 0.399994\n0.889435 0.731995 0.401123\n0.911896 0.732910 0.402161\n0.935181 0.733734 0.403107\n0.959961 0.734619 0.404114\n0.059692 0.737427 0.368561\n0.076874 0.738312 0.369690\n0.095490 0.739136 0.370789\n0.115997 0.740051 0.371948\n0.138641 0.740906 0.373077\n0.163727 0.741760 0.374207\n0.191681 0.742676 0.375366\n0.222321 0.743530 0.376556\n0.255524 0.744385 0.377686\n0.291046 0.745239 0.378754\n0.328766 0.746124 0.379913\n0.368347 0.746979 0.381073\n0.409424 0.747833 0.382172\n0.451599 0.748657 0.383331\n0.494049 0.749512 0.384430\n0.534485 0.750397 0.385590\n0.572357 0.751190 0.386658\n0.607697 0.752075 0.387817\n0.640564 0.752869 0.388916\n0.671112 0.753693 0.389984\n0.699768 0.754517 0.391113\n0.726776 0.755310 0.392151\n0.752380 0.756104 0.393280\n0.776855 0.756927 0.394379\n0.800385 0.757690 0.395416\n0.823212 0.758453 0.396454\n0.845490 0.759247 0.397522\n0.867584 0.759979 0.398529\n0.889648 0.760742 0.399567\n0.912048 0.761475 0.400604\n0.935242 0.762177 0.401550\n0.959961 0.762909 0.402588\n0.061401 0.767975 0.367035\n0.078644 0.768738 0.368195\n0.097412 0.769470 0.369324\n0.118042 0.770264 0.370514\n0.140839 0.770966 0.371674\n0.166077 0.771698 0.372803\n0.194153 0.772461 0.373993\n0.224884 0.773163 0.375061\n0.258148 0.773926 0.376312\n0.293823 0.774689 0.377441\n0.331512 0.775391 0.378540\n0.371094 0.776093 0.379730\n0.412109 0.776855 0.380890\n0.454224 0.777557 0.381989\n0.496429 0.778290 0.383118\n0.536591 0.779022 0.384247\n0.574219 0.779694 0.385406\n0.609314 0.780426 0.386505\n0.641937 0.781128 0.387665\n0.672302 0.781799 0.388702\n0.700806 0.782532 0.389862\n0.727631 0.783173 0.390869\n0.753143 0.783844 0.391937\n0.777496 0.784515 0.393036\n0.800903 0.785187 0.394104\n0.823639 0.785828 0.395172\n0.845886 0.786499 0.396240\n0.867859 0.787140 0.397186\n0.889862 0.787750 0.398224\n0.912140 0.788391 0.399261\n0.935333 0.788971 0.400208\n0.959961 0.789612 0.401184\n0.063110 0.796722 0.365753\n0.080414 0.797363 0.366943\n0.099304 0.797943 0.368103\n0.120056 0.798615 0.369293\n0.143005 0.799225 0.370422\n0.168427 0.799866 0.371582\n0.196655 0.800507 0.372772\n0.227509 0.801117 0.373901\n0.260895 0.801727 0.375092\n0.296600 0.802399 0.376312\n0.334259 0.802979 0.377441\n0.373840 0.803619 0.378601\n0.414825 0.804199 0.379700\n0.456818 0.804840 0.380859\n0.498810 0.805420 0.382019\n0.538696 0.806030 0.383148\n0.576050 0.806580 0.384216\n0.610962 0.807251 0.385376\n0.643280 0.807800 0.386475\n0.673492 0.808380 0.387573\n0.701782 0.808990 0.388672\n0.728485 0.809509 0.389740\n0.753876 0.810120 0.390808\n0.778107 0.810638 0.391846\n0.801453 0.811218 0.392914\n0.824066 0.811768 0.393951\n0.846222 0.812317 0.395020\n0.868134 0.812805 0.396057\n0.890076 0.813385 0.397003\n0.912323 0.813904 0.398010\n0.935394 0.814392 0.398926\n0.959961 0.814911 0.399933\n0.064819 0.823914 0.364685\n0.082275 0.824432 0.365875\n0.101288 0.825012 0.367065\n0.122131 0.825500 0.368256\n0.145203 0.826050 0.369415\n0.170807 0.826569 0.370575\n0.199158 0.827118 0.371765\n0.230133 0.827637 0.372925\n0.263580 0.828186 0.374146\n0.299316 0.828705 0.375305\n0.337067 0.829193 0.376434\n0.376556 0.829681 0.377594\n0.417480 0.830231 0.378784\n0.459351 0.830719 0.379852\n0.501160 0.831238 0.381012\n0.540802 0.831757 0.382172\n0.577850 0.832214 0.383301\n0.612488 0.832733 0.384399\n0.644653 0.833221 0.385498\n0.674622 0.833710 0.386536\n0.702789 0.834198 0.387634\n0.729309 0.834656 0.388702\n0.754578 0.835144 0.389801\n0.778717 0.835602 0.390839\n0.801941 0.836060 0.391876\n0.824493 0.836517 0.392883\n0.846588 0.836975 0.393951\n0.868408 0.837402 0.394958\n0.890259 0.837830 0.395874\n0.912415 0.838257 0.396851\n0.935455 0.838684 0.397827\n0.959961 0.839111 0.398712\n0.066559 0.849945 0.363800\n0.084106 0.850372 0.364990\n0.103210 0.850830 0.366150\n0.124207 0.851288 0.367340\n0.147400 0.851685 0.368500\n0.173187 0.852142 0.369720\n0.201660 0.852570 0.370941\n0.232788 0.853027 0.372131\n0.266327 0.853455 0.373291\n0.302063 0.853882 0.374451\n0.339813 0.854340 0.375549\n0.379272 0.854736 0.376740\n0.420166 0.855133 0.377899\n0.461914 0.855591 0.379028\n0.503479 0.855988 0.380157\n0.542786 0.856445 0.381256\n0.579651 0.856812 0.382385\n0.613983 0.857239 0.383484\n0.645935 0.857635 0.384552\n0.675751 0.858032 0.385620\n0.703766 0.858429 0.386749\n0.730133 0.858826 0.387787\n0.755280 0.859192 0.388855\n0.779327 0.859589 0.389893\n0.802429 0.859955 0.390900\n0.824890 0.860321 0.391876\n0.846893 0.860687 0.392883\n0.868652 0.861053 0.393829\n0.890472 0.861389 0.394867\n0.912567 0.861725 0.395721\n0.935486 0.862122 0.396667\n0.959961 0.862427 0.397552\n0.068298 0.875092 0.362976\n0.085968 0.875458 0.364197\n0.105133 0.875824 0.365356\n0.126282 0.876160 0.366577\n0.149628 0.876526 0.367767\n0.175568 0.876862 0.368927\n0.204224 0.877258 0.370117\n0.235382 0.877563 0.371246\n0.268982 0.877960 0.372437\n0.304779 0.878296 0.373657\n0.342529 0.878632 0.374817\n0.381927 0.878998 0.375946\n0.422760 0.879303 0.377106\n0.464417 0.879669 0.378235\n0.505737 0.880005 0.379333\n0.544769 0.880341 0.380402\n0.581360 0.880676 0.381561\n0.615570 0.881012 0.382629\n0.647186 0.881317 0.383698\n0.676849 0.881622 0.384827\n0.704712 0.881958 0.385834\n0.730988 0.882263 0.386902\n0.755981 0.882599 0.387939\n0.779877 0.882874 0.388947\n0.802917 0.883209 0.389923\n0.825287 0.883484 0.390930\n0.847229 0.883759 0.391846\n0.868927 0.884064 0.392822\n0.890656 0.884338 0.393738\n0.912689 0.884613 0.394623\n0.935577 0.884888 0.395538\n0.959961 0.885132 0.396393\n0.070099 0.899628 0.362244\n0.087769 0.899933 0.363434\n0.107147 0.900208 0.364655\n0.128387 0.900482 0.365845\n0.151855 0.900787 0.367004\n0.177948 0.901062 0.368195\n0.206726 0.901337 0.369415\n0.238007 0.901611 0.370544\n0.271606 0.901886 0.371765\n0.307495 0.902161 0.372925\n0.345215 0.902435 0.374054\n0.384583 0.902710 0.375183\n0.425293 0.902954 0.376312\n0.466888 0.903259 0.377441\n0.507965 0.903503 0.378540\n0.546722 0.903778 0.379669\n0.583099 0.904022 0.380737\n0.617004 0.904266 0.381775\n0.648499 0.904541 0.382874\n0.677948 0.904785 0.383942\n0.705597 0.905029 0.385010\n0.731750 0.905273 0.385986\n0.756622 0.905518 0.386963\n0.780457 0.905731 0.387970\n0.803375 0.905975 0.388947\n0.825684 0.906219 0.389893\n0.847565 0.906433 0.390808\n0.869202 0.906647 0.391754\n0.890839 0.906860 0.392609\n0.912811 0.907074 0.393494\n0.935638 0.907288 0.394379\n0.959961 0.907471 0.395233\n0.071869 0.923920 0.361542\n0.089630 0.924164 0.362671\n0.109100 0.924347 0.363922\n0.130524 0.924561 0.365112\n0.154114 0.924805 0.366272\n0.180359 0.924988 0.367462\n0.209198 0.925201 0.368622\n0.240570 0.925385 0.369843\n0.274292 0.925629 0.370972\n0.310181 0.925842 0.372192\n0.347839 0.926025 0.373322\n0.387207 0.926208 0.374390\n0.427887 0.926422 0.375519\n0.469330 0.926636 0.376617\n0.510162 0.926849 0.377747\n0.548584 0.927002 0.378815\n0.584747 0.927216 0.379883\n0.618408 0.927399 0.380981\n0.649689 0.927612 0.381958\n0.678986 0.927765 0.383057\n0.706482 0.927948 0.384064\n0.732513 0.928101 0.385040\n0.757263 0.928284 0.386017\n0.781006 0.928497 0.386932\n0.803833 0.928619 0.387939\n0.826080 0.928833 0.388824\n0.847839 0.928986 0.389709\n0.869415 0.929138 0.390656\n0.890991 0.929321 0.391510\n0.912933 0.929474 0.392273\n0.935699 0.929596 0.393127\n0.959961 0.929749 0.393982\n0.073608 0.948364 0.360779\n0.091522 0.948486 0.361969\n0.111084 0.948669 0.363159\n0.132568 0.948761 0.364349\n0.156342 0.948914 0.365509\n0.182709 0.949066 0.366760\n0.211731 0.949188 0.367889\n0.243164 0.949371 0.369019\n0.276947 0.949524 0.370209\n0.312775 0.949646 0.371307\n0.350494 0.949799 0.372467\n0.389771 0.949921 0.373535\n0.430328 0.950073 0.374664\n0.471649 0.950165 0.375763\n0.512268 0.950317 0.376862\n0.550476 0.950439 0.377899\n0.586334 0.950562 0.378967\n0.619812 0.950684 0.380005\n0.650879 0.950836 0.381012\n0.680023 0.950928 0.381989\n0.707367 0.951080 0.383057\n0.733246 0.951172 0.384003\n0.757935 0.951324 0.384918\n0.781525 0.951447 0.385864\n0.804291 0.951538 0.386780\n0.826447 0.951660 0.387665\n0.848145 0.951752 0.388519\n0.869598 0.951843 0.389374\n0.891144 0.951965 0.390198\n0.913055 0.952057 0.391052\n0.935791 0.952148 0.391785\n0.959961 0.952271 0.392578\n0.075409 0.973450 0.359924\n0.093353 0.973480 0.361115\n0.113037 0.973572 0.362305\n0.134705 0.973663 0.363495\n0.158569 0.973724 0.364685\n0.185059 0.973846 0.365845\n0.214172 0.973938 0.366974\n0.245667 0.973969 0.368103\n0.279510 0.974091 0.369293\n0.315369 0.974121 0.370361\n0.353058 0.974182 0.371490\n0.392303 0.974243 0.372650\n0.432800 0.974335 0.373627\n0.473938 0.974396 0.374756\n0.514313 0.974457 0.375854\n0.552246 0.974518 0.376862\n0.587921 0.974579 0.377899\n0.621124 0.974670 0.378906\n0.652069 0.974731 0.379944\n0.680969 0.974762 0.380890\n0.708160 0.974854 0.381836\n0.733978 0.974884 0.382782\n0.758514 0.974976 0.383728\n0.781982 0.975037 0.384583\n0.804718 0.975067 0.385437\n0.826782 0.975128 0.386322\n0.848419 0.975189 0.387177\n0.869843 0.975220 0.388031\n0.891357 0.975281 0.388763\n0.913147 0.975311 0.389526\n0.935822 0.975403 0.390289\n0.959961 0.975403 0.391022\n0.077148 1.000000 0.358856\n0.095245 1.000000 0.360016\n0.115021 1.000000 0.361176\n0.136749 1.000000 0.362427\n0.160767 1.000000 0.363556\n0.187408 1.000000 0.364716\n0.216614 1.000000 0.365814\n0.248230 1.000000 0.367004\n0.282043 1.000000 0.368103\n0.317902 1.000000 0.369202\n0.355621 1.000000 0.370300\n0.394775 1.000000 0.371429\n0.435181 1.000000 0.372467\n0.476227 1.000000 0.373566\n0.516327 1.000000 0.374603\n0.554047 1.000000 0.375580\n0.589386 1.000000 0.376587\n0.622406 1.000000 0.377594\n0.653137 1.000000 0.378571\n0.681946 1.000000 0.379517\n0.708984 1.000000 0.380402\n0.734650 1.000000 0.381348\n0.759094 1.000000 0.382202\n0.782532 1.000000 0.383057\n0.805115 1.000000 0.383881\n0.827118 1.000000 0.384766\n0.848694 1.000000 0.385529\n0.870056 1.000000 0.386322\n0.891510 1.000000 0.387085\n0.913269 1.000000 0.387817\n0.935852 1.000000 0.388519\n0.959961 1.000000 0.389160\n0.032715 0.002869 0.467682\n0.048248 0.003510 0.468231\n0.064972 0.004181 0.468750\n0.083160 0.004852 0.469360\n0.103119 0.005585 0.469971\n0.125244 0.006317 0.470612\n0.149811 0.007050 0.471161\n0.177399 0.007874 0.471832\n0.208038 0.008698 0.472534\n0.241608 0.009491 0.473236\n0.277924 0.010376 0.473938\n0.316803 0.011261 0.474640\n0.357880 0.012146 0.475403\n0.400879 0.013092 0.476166\n0.445251 0.014038 0.476929\n0.490173 0.015015 0.477722\n0.533203 0.015991 0.478516\n0.573425 0.016968 0.479370\n0.610779 0.018036 0.480133\n0.645386 0.019073 0.481018\n0.677521 0.020172 0.481812\n0.707642 0.021271 0.482727\n0.735962 0.022369 0.483582\n0.762817 0.023499 0.484497\n0.788513 0.024597 0.485382\n0.813263 0.025787 0.486267\n0.837402 0.026978 0.487183\n0.861084 0.028168 0.488098\n0.884766 0.029388 0.489044\n0.908691 0.030609 0.489960\n0.933472 0.031891 0.490936\n0.959961 0.033142 0.491882\n0.033539 0.019165 0.466766\n0.049133 0.019867 0.467407\n0.065918 0.020599 0.467957\n0.084167 0.021332 0.468567\n0.104279 0.022125 0.469208\n0.126434 0.022919 0.469879\n0.151184 0.023743 0.470520\n0.178894 0.024597 0.471252\n0.209625 0.025452 0.471954\n0.243347 0.026367 0.472687\n0.279816 0.027283 0.473419\n0.318695 0.028198 0.474121\n0.359833 0.029175 0.474945\n0.402802 0.030182 0.475769\n0.447235 0.031158 0.476501\n0.492004 0.032196 0.477356\n0.534851 0.033295 0.478119\n0.574890 0.034363 0.478943\n0.612061 0.035461 0.479828\n0.646515 0.036560 0.480682\n0.678497 0.037689 0.481567\n0.708435 0.038879 0.482422\n0.736664 0.040009 0.483337\n0.763458 0.041229 0.484222\n0.789093 0.042450 0.485168\n0.813751 0.043671 0.486053\n0.837738 0.044922 0.486969\n0.861420 0.046265 0.487915\n0.884979 0.047485 0.488800\n0.908875 0.048798 0.489777\n0.933533 0.050140 0.490753\n0.959961 0.051453 0.491730\n0.034393 0.036438 0.465912\n0.050049 0.037201 0.466522\n0.066956 0.038025 0.467133\n0.085236 0.038818 0.467773\n0.105438 0.039673 0.468445\n0.127747 0.040558 0.469177\n0.152618 0.041473 0.469849\n0.180450 0.042358 0.470581\n0.211365 0.043304 0.471283\n0.245209 0.044281 0.472046\n0.281738 0.045319 0.472839\n0.320740 0.046295 0.473602\n0.361847 0.047333 0.474396\n0.404907 0.048431 0.475189\n0.449219 0.049500 0.475983\n0.493927 0.050629 0.476837\n0.536591 0.051758 0.477692\n0.576355 0.052887 0.478516\n0.613373 0.054108 0.479431\n0.647644 0.055267 0.480255\n0.679474 0.056519 0.481110\n0.709320 0.057770 0.482025\n0.737427 0.058990 0.482971\n0.764130 0.060272 0.483795\n0.789581 0.061615 0.484802\n0.814209 0.062897 0.485687\n0.838135 0.064301 0.486603\n0.861725 0.065643 0.487610\n0.885162 0.066986 0.488525\n0.909058 0.068420 0.489502\n0.933655 0.069855 0.490448\n0.959961 0.071228 0.491425\n0.035339 0.054993 0.464905\n0.051025 0.055847 0.465546\n0.067963 0.056732 0.466217\n0.086426 0.057617 0.466919\n0.106689 0.058563 0.467621\n0.129150 0.059509 0.468353\n0.154144 0.060516 0.469025\n0.182159 0.061523 0.469757\n0.213226 0.062531 0.470551\n0.247101 0.063660 0.471283\n0.283783 0.064758 0.472107\n0.322784 0.065857 0.472870\n0.364014 0.066956 0.473724\n0.407013 0.068176 0.474548\n0.451263 0.069305 0.475342\n0.495880 0.070526 0.476196\n0.538300 0.071808 0.477051\n0.577881 0.073029 0.477905\n0.614746 0.074341 0.478821\n0.648804 0.075623 0.479675\n0.680542 0.076965 0.480560\n0.710175 0.078308 0.481476\n0.738190 0.079651 0.482361\n0.764771 0.081055 0.483337\n0.790131 0.082489 0.484222\n0.814667 0.083893 0.485138\n0.838531 0.085358 0.486053\n0.862000 0.086853 0.487091\n0.885468 0.088348 0.487946\n0.909149 0.089844 0.488922\n0.933716 0.091339 0.489838\n0.959961 0.092926 0.490875\n0.036285 0.075226 0.463806\n0.052094 0.076202 0.464478\n0.069122 0.077179 0.465210\n0.087616 0.078186 0.465851\n0.108002 0.079224 0.466583\n0.130615 0.080261 0.467285\n0.155762 0.081360 0.468079\n0.183929 0.082520 0.468842\n0.215057 0.083618 0.469574\n0.249146 0.084808 0.470398\n0.285797 0.086029 0.471191\n0.324921 0.087219 0.471954\n0.366180 0.088470 0.472839\n0.409149 0.089783 0.473694\n0.453400 0.091064 0.474518\n0.497894 0.092407 0.475403\n0.540070 0.093750 0.476196\n0.579468 0.095123 0.477142\n0.616119 0.096527 0.477997\n0.650024 0.097931 0.478882\n0.681549 0.099426 0.479797\n0.711090 0.100891 0.480743\n0.738953 0.102386 0.481567\n0.765411 0.103943 0.482544\n0.790710 0.105499 0.483429\n0.815094 0.106995 0.484375\n0.838898 0.108612 0.485291\n0.862335 0.110199 0.486237\n0.885681 0.111847 0.487183\n0.909332 0.113525 0.488129\n0.933807 0.115173 0.489044\n0.959961 0.116882 0.490051\n0.037354 0.097534 0.462494\n0.053192 0.098633 0.463196\n0.070282 0.099731 0.463928\n0.088928 0.100861 0.464630\n0.109436 0.102051 0.465393\n0.132141 0.103210 0.466125\n0.157440 0.104401 0.466858\n0.185760 0.105682 0.467651\n0.217010 0.106934 0.468445\n0.251221 0.108276 0.469208\n0.287994 0.109619 0.470062\n0.327179 0.110931 0.470886\n0.368439 0.112335 0.471741\n0.411407 0.113739 0.472595\n0.455627 0.115204 0.473419\n0.499908 0.116669 0.474243\n0.541901 0.118134 0.475128\n0.581085 0.119690 0.476044\n0.617493 0.121216 0.476929\n0.651215 0.122772 0.477783\n0.682617 0.124390 0.478729\n0.712006 0.126007 0.479614\n0.739746 0.127655 0.480530\n0.766052 0.129333 0.481476\n0.791290 0.131073 0.482361\n0.815613 0.132751 0.483307\n0.839294 0.134491 0.484222\n0.862640 0.136230 0.485138\n0.885895 0.138031 0.486084\n0.909485 0.139832 0.487000\n0.933868 0.141632 0.487946\n0.959961 0.143494 0.488861\n0.038422 0.122437 0.460938\n0.054352 0.123657 0.461609\n0.071533 0.124908 0.462311\n0.090271 0.126160 0.463104\n0.110870 0.127472 0.463837\n0.133728 0.128815 0.464661\n0.159180 0.130188 0.465424\n0.187653 0.131592 0.466156\n0.219086 0.132996 0.466949\n0.253357 0.134460 0.467773\n0.290192 0.135956 0.468658\n0.329437 0.137451 0.469421\n0.370758 0.138977 0.470306\n0.413696 0.140564 0.471130\n0.457855 0.142181 0.472015\n0.502014 0.143829 0.472900\n0.543762 0.145447 0.473694\n0.582703 0.147125 0.474609\n0.618896 0.148865 0.475464\n0.652435 0.150574 0.476379\n0.683655 0.152374 0.477264\n0.712952 0.154175 0.478210\n0.740540 0.155945 0.479095\n0.766754 0.157776 0.480042\n0.791840 0.159668 0.480896\n0.816071 0.161591 0.481812\n0.839691 0.163483 0.482727\n0.862946 0.165375 0.483612\n0.886139 0.167358 0.484528\n0.909668 0.169342 0.485474\n0.933990 0.171326 0.486359\n0.959961 0.173401 0.487305\n0.039551 0.150452 0.458984\n0.055573 0.151855 0.459778\n0.072815 0.153168 0.460480\n0.091705 0.154633 0.461243\n0.112396 0.156097 0.462036\n0.135376 0.157593 0.462738\n0.160980 0.159149 0.463531\n0.189606 0.160736 0.464355\n0.221191 0.162292 0.465149\n0.255554 0.163971 0.465973\n0.292542 0.165619 0.466827\n0.331787 0.167267 0.467651\n0.373077 0.169006 0.468475\n0.416016 0.170715 0.469299\n0.460114 0.172546 0.470184\n0.504089 0.174347 0.471069\n0.545593 0.176178 0.471893\n0.584320 0.178040 0.472809\n0.620331 0.179993 0.473663\n0.653687 0.181854 0.474548\n0.684753 0.183838 0.475464\n0.713837 0.185822 0.476318\n0.741333 0.187775 0.477234\n0.767426 0.189819 0.478149\n0.792419 0.191833 0.479034\n0.816589 0.193909 0.479919\n0.840088 0.196045 0.480804\n0.863281 0.198120 0.481689\n0.886414 0.200256 0.482605\n0.909851 0.202393 0.483490\n0.934082 0.204590 0.484344\n0.959961 0.206726 0.485229\n0.040771 0.182098 0.456665\n0.056824 0.183655 0.457397\n0.074188 0.185242 0.458160\n0.093170 0.186829 0.458954\n0.114014 0.188507 0.459717\n0.137146 0.190155 0.460510\n0.162903 0.191895 0.461273\n0.191681 0.193665 0.462097\n0.223358 0.195404 0.462921\n0.257874 0.197205 0.463745\n0.294861 0.199005 0.464539\n0.334198 0.200897 0.465393\n0.375519 0.202820 0.466217\n0.418427 0.204681 0.467102\n0.462463 0.206665 0.467896\n0.506256 0.208679 0.468781\n0.547485 0.210663 0.469604\n0.585999 0.212738 0.470520\n0.621765 0.214783 0.471344\n0.654938 0.216858 0.472229\n0.685822 0.218994 0.473175\n0.714752 0.221069 0.473999\n0.742126 0.223236 0.474884\n0.768066 0.225433 0.475800\n0.792999 0.227631 0.476624\n0.817047 0.229858 0.477539\n0.840485 0.232117 0.478394\n0.863586 0.234314 0.479279\n0.886658 0.236603 0.480194\n0.909943 0.238922 0.481018\n0.934143 0.241150 0.481934\n0.959961 0.243500 0.482788\n0.042023 0.217712 0.453918\n0.058136 0.219421 0.454681\n0.075592 0.221130 0.455444\n0.094696 0.222900 0.456207\n0.115662 0.224762 0.457001\n0.138885 0.226532 0.457794\n0.164856 0.228424 0.458557\n0.193787 0.230347 0.459381\n0.225616 0.232269 0.460205\n0.260193 0.234192 0.460999\n0.297302 0.236206 0.461853\n0.336700 0.238251 0.462677\n0.377991 0.240295 0.463531\n0.420868 0.242340 0.464386\n0.464813 0.244446 0.465240\n0.508362 0.246613 0.466095\n0.549377 0.248718 0.466888\n0.587708 0.250916 0.467804\n0.623260 0.253143 0.468658\n0.656158 0.255310 0.469513\n0.686920 0.257538 0.470428\n0.715729 0.259796 0.471252\n0.742920 0.262085 0.472168\n0.768799 0.264374 0.472992\n0.793579 0.266663 0.473846\n0.817535 0.269012 0.474701\n0.840912 0.271362 0.475616\n0.863922 0.273682 0.476471\n0.886871 0.276093 0.477356\n0.910156 0.278442 0.478180\n0.934235 0.280823 0.479065\n0.959961 0.283203 0.479919\n0.043304 0.256989 0.450745\n0.059509 0.258850 0.451447\n0.077057 0.260651 0.452301\n0.096222 0.262604 0.453094\n0.117371 0.264557 0.453827\n0.140778 0.266510 0.454651\n0.166870 0.268524 0.455444\n0.195892 0.270538 0.456268\n0.227905 0.272614 0.457092\n0.262573 0.274689 0.457947\n0.299744 0.276764 0.458710\n0.339172 0.278931 0.459595\n0.380493 0.281128 0.460419\n0.423370 0.283234 0.461243\n0.467194 0.285522 0.462128\n0.510529 0.287750 0.462982\n0.551361 0.289978 0.463837\n0.589386 0.292267 0.464691\n0.624725 0.294556 0.465546\n0.657440 0.296844 0.466400\n0.688019 0.299194 0.467316\n0.716675 0.301544 0.468109\n0.743744 0.303894 0.468994\n0.769501 0.306305 0.469818\n0.794189 0.308655 0.470703\n0.818024 0.311005 0.471588\n0.841278 0.313477 0.472412\n0.864258 0.315887 0.473297\n0.887146 0.318298 0.474091\n0.910339 0.320709 0.474976\n0.934296 0.323181 0.475861\n0.959961 0.325623 0.476654\n0.044617 0.299622 0.447205\n0.060944 0.301605 0.447968\n0.078583 0.303528 0.448730\n0.097839 0.305603 0.449554\n0.119110 0.307678 0.450317\n0.142670 0.309692 0.451172\n0.168945 0.311768 0.451996\n0.198151 0.313843 0.452759\n0.230255 0.316040 0.453613\n0.265076 0.318207 0.454407\n0.302307 0.320404 0.455261\n0.341736 0.322632 0.456116\n0.383057 0.324860 0.456970\n0.425873 0.327148 0.457825\n0.469666 0.329437 0.458679\n0.512756 0.331757 0.459564\n0.553314 0.334045 0.460388\n0.591095 0.336395 0.461243\n0.626190 0.338654 0.462097\n0.658752 0.341034 0.462982\n0.689087 0.343506 0.463837\n0.717590 0.345795 0.464630\n0.744537 0.348206 0.465546\n0.770203 0.350708 0.466339\n0.794769 0.353058 0.467224\n0.818512 0.355530 0.468109\n0.841705 0.358002 0.468933\n0.864532 0.360413 0.469788\n0.887329 0.362854 0.470612\n0.910492 0.365234 0.471497\n0.934387 0.367767 0.472290\n0.959961 0.370239 0.473145\n0.046021 0.345184 0.443329\n0.062408 0.347290 0.444061\n0.080109 0.349243 0.444885\n0.099518 0.351379 0.445709\n0.120880 0.353394 0.446533\n0.144592 0.355591 0.447357\n0.171021 0.357758 0.448120\n0.200439 0.359924 0.448944\n0.232666 0.362152 0.449829\n0.267578 0.364380 0.450653\n0.304840 0.366547 0.451538\n0.344330 0.368835 0.452362\n0.385681 0.371124 0.453247\n0.428436 0.373444 0.454071\n0.472107 0.375763 0.454956\n0.514984 0.378021 0.455750\n0.555267 0.380402 0.456635\n0.592834 0.382782 0.457520\n0.627655 0.385162 0.458344\n0.660034 0.387512 0.459198\n0.690216 0.389954 0.460114\n0.718567 0.392273 0.460907\n0.745361 0.394684 0.461731\n0.770874 0.397156 0.462708\n0.795349 0.399567 0.463470\n0.819031 0.401978 0.464355\n0.842102 0.404419 0.465179\n0.864899 0.406830 0.466064\n0.887573 0.409271 0.466858\n0.910645 0.411591 0.467682\n0.934509 0.414062 0.468536\n0.959961 0.416534 0.469330\n0.047424 0.393188 0.439178\n0.063904 0.395294 0.439972\n0.081696 0.397308 0.440765\n0.101257 0.399475 0.441589\n0.122711 0.401611 0.442413\n0.146637 0.403717 0.443268\n0.173218 0.405975 0.444061\n0.202759 0.408081 0.444916\n0.235138 0.410370 0.445770\n0.270111 0.412567 0.446594\n0.307465 0.414764 0.447479\n0.347015 0.417084 0.448395\n0.388306 0.419373 0.449249\n0.431030 0.421631 0.450104\n0.474640 0.423981 0.450989\n0.517181 0.426239 0.451843\n0.557220 0.428589 0.452698\n0.594543 0.430969 0.453552\n0.629150 0.433258 0.454376\n0.661285 0.435638 0.455292\n0.691315 0.438019 0.456116\n0.719513 0.440338 0.457031\n0.746155 0.442749 0.457886\n0.771576 0.445099 0.458771\n0.795929 0.447479 0.459564\n0.819519 0.449860 0.460358\n0.842529 0.452179 0.461273\n0.865173 0.454590 0.462097\n0.887878 0.456970 0.462952\n0.910767 0.459320 0.463745\n0.934570 0.461670 0.464569\n0.959961 0.464020 0.465363\n0.048859 0.443024 0.434784\n0.065430 0.445038 0.435638\n0.083374 0.447144 0.436432\n0.102966 0.449280 0.437286\n0.124634 0.451385 0.438141\n0.148682 0.453552 0.438965\n0.175476 0.455750 0.439819\n0.205139 0.457886 0.440674\n0.237640 0.460083 0.441589\n0.272736 0.462341 0.442413\n0.310120 0.464478 0.443298\n0.349640 0.466736 0.444214\n0.390930 0.468933 0.445068\n0.433655 0.471161 0.445953\n0.477081 0.473419 0.446838\n0.519440 0.475677 0.447693\n0.559235 0.477936 0.448578\n0.596222 0.480255 0.449463\n0.630615 0.482452 0.450317\n0.662567 0.484711 0.451202\n0.692413 0.487000 0.452087\n0.720459 0.489258 0.452911\n0.747009 0.491547 0.453827\n0.772278 0.493835 0.454651\n0.796509 0.496033 0.455475\n0.820007 0.498291 0.456360\n0.842926 0.500519 0.457275\n0.865509 0.502808 0.458038\n0.888062 0.505005 0.458893\n0.910980 0.507202 0.459717\n0.934692 0.509399 0.460571\n0.959961 0.511627 0.461395\n0.050385 0.493896 0.430359\n0.066986 0.495850 0.431213\n0.085052 0.497864 0.432098\n0.104797 0.499939 0.432922\n0.126617 0.501984 0.433807\n0.150787 0.503998 0.434692\n0.177734 0.506073 0.435577\n0.207550 0.508087 0.436462\n0.240173 0.510223 0.437347\n0.275360 0.512268 0.438202\n0.312805 0.514343 0.439178\n0.352325 0.516449 0.440063\n0.393585 0.518494 0.440887\n0.436279 0.520599 0.441803\n0.479614 0.522644 0.442749\n0.521667 0.524658 0.443665\n0.561157 0.526733 0.444519\n0.597992 0.528900 0.445435\n0.632141 0.530853 0.446320\n0.663879 0.532898 0.447235\n0.693512 0.535034 0.448090\n0.721405 0.537018 0.448975\n0.747833 0.539062 0.449890\n0.772980 0.541016 0.450775\n0.797119 0.543030 0.451660\n0.820465 0.545013 0.452545\n0.843292 0.546967 0.453400\n0.865814 0.548920 0.454315\n0.888306 0.550903 0.455109\n0.911133 0.552795 0.455994\n0.934784 0.554749 0.456879\n0.959961 0.556671 0.457764\n0.051910 0.543304 0.426147\n0.068604 0.545105 0.427032\n0.086761 0.546936 0.427948\n0.106628 0.548767 0.428833\n0.128571 0.550507 0.429779\n0.152924 0.552338 0.430664\n0.180084 0.554199 0.431610\n0.210022 0.555969 0.432495\n0.242737 0.557861 0.433441\n0.277985 0.559692 0.434418\n0.315552 0.561493 0.435272\n0.355072 0.563354 0.436218\n0.396301 0.565125 0.437195\n0.438904 0.566986 0.438080\n0.482117 0.568787 0.439026\n0.523865 0.570587 0.440002\n0.563110 0.572388 0.440887\n0.599670 0.574249 0.441803\n0.633575 0.575989 0.442749\n0.665131 0.577789 0.443695\n0.694611 0.579620 0.444580\n0.722351 0.581360 0.445496\n0.748627 0.583099 0.446411\n0.773651 0.584869 0.447357\n0.797668 0.586609 0.448212\n0.820923 0.588318 0.449127\n0.843689 0.590057 0.450012\n0.866119 0.591736 0.450958\n0.888580 0.593414 0.451843\n0.911285 0.595123 0.452698\n0.934845 0.596771 0.453552\n0.959961 0.598419 0.454437\n0.053467 0.589081 0.422424\n0.070282 0.590607 0.423370\n0.088531 0.592224 0.424255\n0.108551 0.593811 0.425293\n0.130615 0.595428 0.426239\n0.155151 0.597015 0.427124\n0.182404 0.598602 0.428101\n0.212524 0.600159 0.429077\n0.245392 0.601807 0.430054\n0.280640 0.603424 0.431030\n0.318207 0.604950 0.431915\n0.357788 0.606598 0.432892\n0.399048 0.608124 0.433868\n0.441559 0.609741 0.434814\n0.484619 0.611328 0.435791\n0.526123 0.612885 0.436768\n0.565094 0.614471 0.437683\n0.601379 0.616028 0.438690\n0.635071 0.617584 0.439636\n0.666382 0.619141 0.440582\n0.695709 0.620728 0.441528\n0.723267 0.622192 0.442444\n0.749420 0.623749 0.443390\n0.774292 0.625244 0.444305\n0.798279 0.626709 0.445221\n0.821442 0.628235 0.446167\n0.844055 0.629669 0.447113\n0.866455 0.631134 0.448029\n0.888794 0.632599 0.448914\n0.911469 0.634003 0.449768\n0.934967 0.635468 0.450623\n0.959961 0.636841 0.451538\n0.055084 0.631134 0.419220\n0.071930 0.632477 0.420197\n0.090302 0.633911 0.421143\n0.110474 0.635284 0.422150\n0.132660 0.636658 0.423126\n0.157349 0.638031 0.424133\n0.184784 0.639435 0.425079\n0.215057 0.640778 0.426117\n0.247986 0.642212 0.427094\n0.283356 0.643524 0.428070\n0.320953 0.644897 0.429016\n0.360535 0.646271 0.430054\n0.401733 0.647644 0.431061\n0.444214 0.649017 0.432007\n0.487091 0.650391 0.432983\n0.528320 0.651703 0.433990\n0.566986 0.653076 0.434998\n0.603088 0.654419 0.435944\n0.636475 0.655731 0.436890\n0.667664 0.657074 0.437866\n0.696777 0.658386 0.438843\n0.724213 0.659698 0.439758\n0.750214 0.660980 0.440765\n0.774994 0.662262 0.441711\n0.798828 0.663513 0.442627\n0.821899 0.664795 0.443573\n0.844482 0.666046 0.444458\n0.866699 0.667297 0.445435\n0.889008 0.668579 0.446320\n0.911621 0.669739 0.447235\n0.935028 0.670959 0.448059\n0.959961 0.672150 0.448975\n0.056702 0.669647 0.416504\n0.073669 0.670837 0.417511\n0.092133 0.672028 0.418549\n0.112396 0.673248 0.419556\n0.134766 0.674408 0.420502\n0.159607 0.675598 0.421539\n0.187225 0.676758 0.422577\n0.217621 0.677979 0.423615\n0.250641 0.679138 0.424591\n0.286102 0.680298 0.425598\n0.323730 0.681488 0.426575\n0.363312 0.682648 0.427643\n0.404449 0.683838 0.428619\n0.446838 0.684998 0.429626\n0.489594 0.686188 0.430634\n0.530548 0.687286 0.431641\n0.568909 0.688446 0.432648\n0.604736 0.689606 0.433655\n0.637970 0.690765 0.434601\n0.668884 0.691864 0.435577\n0.697815 0.692993 0.436554\n0.725128 0.694092 0.437500\n0.750977 0.695190 0.438477\n0.775635 0.696320 0.439423\n0.799347 0.697388 0.440399\n0.822357 0.698456 0.441315\n0.844818 0.699524 0.442261\n0.867035 0.700592 0.443146\n0.889252 0.701660 0.444092\n0.911774 0.702667 0.444946\n0.935120 0.703705 0.445862\n0.959961 0.704681 0.446747\n0.058350 0.705017 0.414185\n0.075409 0.706055 0.415222\n0.093994 0.707062 0.416229\n0.114380 0.708069 0.417267\n0.136902 0.709106 0.418304\n0.161896 0.710144 0.419403\n0.189636 0.711121 0.420380\n0.220184 0.712128 0.421448\n0.253326 0.713165 0.422455\n0.288818 0.714172 0.423431\n0.326508 0.715179 0.424469\n0.366119 0.716156 0.425568\n0.407227 0.717133 0.426575\n0.449493 0.718140 0.427582\n0.492065 0.719147 0.428589\n0.532715 0.720123 0.429657\n0.570831 0.721130 0.430634\n0.606415 0.722107 0.431641\n0.639374 0.723083 0.432617\n0.670105 0.724060 0.433563\n0.698914 0.724976 0.434601\n0.726013 0.725952 0.435547\n0.751770 0.726898 0.436493\n0.776337 0.727814 0.437469\n0.799957 0.728760 0.438385\n0.822815 0.729645 0.439392\n0.845215 0.730560 0.440247\n0.867371 0.731415 0.441223\n0.889465 0.732361 0.442108\n0.911957 0.733215 0.442963\n0.935181 0.734100 0.443939\n0.959961 0.734894 0.444733\n0.060028 0.737732 0.412231\n0.077179 0.738617 0.413269\n0.095886 0.739502 0.414337\n0.116364 0.740356 0.415375\n0.139008 0.741241 0.416443\n0.164246 0.742096 0.417480\n0.192108 0.742981 0.418549\n0.222809 0.743835 0.419586\n0.256012 0.744720 0.420624\n0.291565 0.745575 0.421722\n0.329285 0.746429 0.422760\n0.368835 0.747284 0.423798\n0.409912 0.748138 0.424774\n0.452087 0.748993 0.425873\n0.494446 0.749847 0.426910\n0.534851 0.750671 0.427887\n0.572723 0.751495 0.428864\n0.608032 0.752319 0.429871\n0.640808 0.753174 0.430908\n0.671326 0.753998 0.431915\n0.699921 0.754761 0.432831\n0.726929 0.755615 0.433807\n0.752533 0.756409 0.434814\n0.776947 0.757172 0.435730\n0.800507 0.757965 0.436676\n0.823303 0.758789 0.437653\n0.845581 0.759521 0.438507\n0.867615 0.760254 0.439453\n0.889648 0.761017 0.440399\n0.912048 0.761749 0.441254\n0.935242 0.762482 0.442200\n0.959961 0.763184 0.443024\n0.061737 0.768280 0.410583\n0.078949 0.769012 0.411621\n0.097748 0.769775 0.412689\n0.118378 0.770477 0.413757\n0.141174 0.771240 0.414856\n0.166534 0.771973 0.415863\n0.194580 0.772705 0.416931\n0.225403 0.773468 0.418030\n0.258698 0.774231 0.419098\n0.294342 0.774933 0.420105\n0.332062 0.775635 0.421173\n0.371582 0.776398 0.422241\n0.412598 0.777130 0.423248\n0.454712 0.777832 0.424316\n0.496826 0.778564 0.425293\n0.536957 0.779266 0.426361\n0.574585 0.779999 0.427338\n0.609589 0.780670 0.428345\n0.642151 0.781372 0.429352\n0.672546 0.782074 0.430328\n0.700989 0.782745 0.431366\n0.727783 0.783447 0.432281\n0.753265 0.784119 0.433258\n0.777588 0.784760 0.434204\n0.801025 0.785431 0.435150\n0.823700 0.786102 0.436066\n0.845947 0.786713 0.437042\n0.867920 0.787384 0.437897\n0.889893 0.787994 0.438812\n0.912201 0.788605 0.439697\n0.935333 0.789246 0.440552\n0.959961 0.789825 0.441406\n0.063416 0.796967 0.409149\n0.080811 0.797577 0.410187\n0.099701 0.798218 0.411316\n0.120453 0.798828 0.412354\n0.143372 0.799438 0.413452\n0.168915 0.800110 0.414520\n0.197113 0.800751 0.415619\n0.228027 0.801331 0.416687\n0.261444 0.801971 0.417755\n0.297119 0.802612 0.418793\n0.334839 0.803223 0.419830\n0.374359 0.803833 0.420929\n0.415314 0.804413 0.421875\n0.457306 0.805054 0.422974\n0.499237 0.805634 0.423981\n0.539062 0.806244 0.425018\n0.576416 0.806885 0.426025\n0.611206 0.807434 0.426971\n0.643524 0.808014 0.427979\n0.673676 0.808594 0.428986\n0.701965 0.809174 0.429962\n0.728668 0.809753 0.430939\n0.753998 0.810333 0.431854\n0.778168 0.810852 0.432831\n0.801544 0.811462 0.433807\n0.824158 0.811951 0.434662\n0.846252 0.812500 0.435577\n0.868195 0.813049 0.436523\n0.890076 0.813568 0.437347\n0.912323 0.814087 0.438202\n0.935394 0.814545 0.439056\n0.959961 0.815094 0.439880\n0.065155 0.824097 0.407898\n0.082581 0.824646 0.408966\n0.101593 0.825195 0.410065\n0.122498 0.825684 0.411163\n0.145630 0.826233 0.412262\n0.171295 0.826782 0.413330\n0.199646 0.827301 0.414368\n0.230652 0.827850 0.415497\n0.264130 0.828369 0.416534\n0.299835 0.828888 0.417572\n0.337616 0.829346 0.418640\n0.377045 0.829895 0.419678\n0.417938 0.830414 0.420715\n0.459869 0.830902 0.421753\n0.501556 0.831421 0.422760\n0.541138 0.831970 0.423767\n0.578247 0.832397 0.424774\n0.612793 0.832886 0.425781\n0.644867 0.833435 0.426819\n0.674835 0.833893 0.427795\n0.702942 0.834351 0.428711\n0.729492 0.834839 0.429718\n0.754730 0.835327 0.430634\n0.778839 0.835785 0.431580\n0.802063 0.836212 0.432495\n0.824585 0.836670 0.433411\n0.846649 0.837128 0.434265\n0.868469 0.837555 0.435150\n0.890289 0.838013 0.435974\n0.912476 0.838409 0.436859\n0.935455 0.838837 0.437714\n0.959961 0.839233 0.438477\n0.066895 0.850098 0.406799\n0.084442 0.850555 0.407867\n0.103577 0.850983 0.408997\n0.124603 0.851440 0.410065\n0.147827 0.851898 0.411163\n0.173645 0.852325 0.412323\n0.202148 0.852783 0.413361\n0.233246 0.853210 0.414429\n0.266785 0.853638 0.415466\n0.302551 0.854065 0.416504\n0.340332 0.854492 0.417542\n0.379791 0.854889 0.418610\n0.420593 0.855316 0.419617\n0.462433 0.855743 0.420654\n0.503876 0.856140 0.421661\n0.543182 0.856567 0.422699\n0.579956 0.856995 0.423737\n0.614288 0.857361 0.424683\n0.646240 0.857788 0.425659\n0.675964 0.858185 0.426666\n0.703918 0.858582 0.427582\n0.730347 0.858978 0.428497\n0.755463 0.859314 0.429474\n0.779419 0.859711 0.430328\n0.802551 0.860107 0.431244\n0.824982 0.860443 0.432159\n0.846954 0.860840 0.433014\n0.868744 0.861176 0.433868\n0.890503 0.861542 0.434723\n0.912598 0.861877 0.435516\n0.935516 0.862213 0.436371\n0.959961 0.862549 0.437103\n0.068665 0.875214 0.405823\n0.086273 0.875580 0.406921\n0.105530 0.875946 0.407990\n0.126709 0.876282 0.409119\n0.150055 0.876648 0.410187\n0.176025 0.876984 0.411316\n0.204651 0.877380 0.412354\n0.235870 0.877716 0.413391\n0.269470 0.878082 0.414459\n0.305267 0.878418 0.415527\n0.343018 0.878784 0.416565\n0.382416 0.879089 0.417603\n0.423248 0.879486 0.418610\n0.464844 0.879791 0.419678\n0.506134 0.880096 0.420624\n0.545135 0.880463 0.421631\n0.581726 0.880768 0.422638\n0.615753 0.881134 0.423584\n0.647461 0.881409 0.424591\n0.677094 0.881775 0.425507\n0.704895 0.882080 0.426453\n0.731140 0.882355 0.427368\n0.756104 0.882690 0.428253\n0.779999 0.882996 0.429199\n0.803009 0.883301 0.430084\n0.825378 0.883575 0.430939\n0.847290 0.883881 0.431793\n0.868958 0.884186 0.432617\n0.890686 0.884430 0.433472\n0.912750 0.884705 0.434235\n0.935577 0.885010 0.434998\n0.959961 0.885254 0.435730\n0.070435 0.899750 0.404877\n0.088135 0.900024 0.406006\n0.107513 0.900330 0.407104\n0.128784 0.900574 0.408173\n0.152313 0.900909 0.409271\n0.178436 0.901154 0.410370\n0.207184 0.901428 0.411438\n0.238464 0.901703 0.412445\n0.272125 0.901978 0.413483\n0.307983 0.902252 0.414551\n0.345703 0.902527 0.415619\n0.385071 0.902802 0.416626\n0.425812 0.903046 0.417633\n0.467316 0.903381 0.418610\n0.508331 0.903625 0.419647\n0.547089 0.903900 0.420593\n0.583405 0.904114 0.421631\n0.617218 0.904419 0.422516\n0.648712 0.904633 0.423523\n0.678131 0.904846 0.424438\n0.705750 0.905121 0.425354\n0.731934 0.905334 0.426300\n0.756775 0.905609 0.427124\n0.780579 0.905823 0.428040\n0.803497 0.906097 0.428925\n0.825745 0.906281 0.429718\n0.847595 0.906525 0.430542\n0.869232 0.906708 0.431335\n0.890839 0.906952 0.432129\n0.912842 0.907166 0.432892\n0.935669 0.907349 0.433685\n0.959961 0.907593 0.434357\n0.072144 0.924011 0.403992\n0.089996 0.924225 0.405060\n0.109497 0.924438 0.406219\n0.130859 0.924622 0.407288\n0.154541 0.924896 0.408325\n0.180786 0.925079 0.409393\n0.209625 0.925293 0.410461\n0.241089 0.925507 0.411530\n0.274750 0.925690 0.412537\n0.310608 0.925903 0.413544\n0.348419 0.926086 0.414642\n0.387695 0.926300 0.415619\n0.428314 0.926544 0.416626\n0.469757 0.926697 0.417633\n0.510498 0.926910 0.418640\n0.548981 0.927063 0.419556\n0.585052 0.927277 0.420563\n0.618622 0.927490 0.421478\n0.649933 0.927673 0.422394\n0.679199 0.927826 0.423279\n0.706635 0.928009 0.424194\n0.732666 0.928192 0.425110\n0.757385 0.928345 0.425964\n0.781097 0.928528 0.426758\n0.803955 0.928741 0.427643\n0.826111 0.928864 0.428436\n0.847900 0.929047 0.429260\n0.869476 0.929230 0.429993\n0.891022 0.929382 0.430847\n0.912994 0.929504 0.431519\n0.935699 0.929657 0.432251\n0.959961 0.929779 0.432953\n0.073975 0.948425 0.403015\n0.091858 0.948578 0.404083\n0.111450 0.948700 0.405151\n0.132965 0.948853 0.406250\n0.156799 0.948975 0.407318\n0.183136 0.949127 0.408386\n0.212158 0.949249 0.409454\n0.243622 0.949402 0.410492\n0.277405 0.949554 0.411560\n0.313293 0.949707 0.412567\n0.351013 0.949860 0.413574\n0.390289 0.949982 0.414581\n0.430786 0.950104 0.415527\n0.472107 0.950256 0.416504\n0.512604 0.950348 0.417480\n0.550873 0.950470 0.418488\n0.586670 0.950592 0.419373\n0.620026 0.950714 0.420288\n0.651123 0.950867 0.421173\n0.680145 0.950989 0.422058\n0.707520 0.951141 0.422974\n0.733398 0.951233 0.423828\n0.758057 0.951355 0.424683\n0.781616 0.951477 0.425507\n0.804352 0.951569 0.426270\n0.826477 0.951691 0.427063\n0.848206 0.951782 0.427856\n0.869629 0.951874 0.428589\n0.891174 0.951996 0.429321\n0.913086 0.952087 0.430054\n0.935791 0.952209 0.430725\n0.959961 0.952301 0.431427\n0.075714 0.973480 0.401917\n0.093750 0.973511 0.403015\n0.113403 0.973633 0.404114\n0.135040 0.973694 0.405182\n0.159027 0.973785 0.406281\n0.185486 0.973846 0.407257\n0.214600 0.973969 0.408356\n0.246185 0.973999 0.409363\n0.279938 0.974091 0.410370\n0.315826 0.974152 0.411407\n0.353577 0.974213 0.412415\n0.392761 0.974304 0.413330\n0.433197 0.974365 0.414337\n0.474396 0.974396 0.415314\n0.514679 0.974457 0.416290\n0.552673 0.974548 0.417175\n0.588196 0.974609 0.418060\n0.621399 0.974670 0.418945\n0.652283 0.974731 0.419922\n0.681152 0.974823 0.420715\n0.708344 0.974854 0.421600\n0.734131 0.974915 0.422424\n0.758606 0.974976 0.423218\n0.782104 0.975037 0.424011\n0.804810 0.975067 0.424835\n0.826843 0.975128 0.425568\n0.848480 0.975189 0.426331\n0.869904 0.975250 0.427002\n0.891357 0.975281 0.427734\n0.913208 0.975311 0.428436\n0.935822 0.975403 0.429016\n0.959961 0.975433 0.429688\n0.077484 1.000000 0.400635\n0.095581 1.000000 0.401733\n0.115326 1.000000 0.402802\n0.137146 1.000000 0.403870\n0.161255 1.000000 0.404907\n0.187836 1.000000 0.405945\n0.217041 1.000000 0.406982\n0.248688 1.000000 0.408051\n0.282501 1.000000 0.409027\n0.318359 1.000000 0.410004\n0.356079 1.000000 0.411011\n0.395203 1.000000 0.411926\n0.435638 1.000000 0.412903\n0.476624 1.000000 0.413849\n0.516663 1.000000 0.414764\n0.554352 1.000000 0.415649\n0.589661 1.000000 0.416595\n0.622681 1.000000 0.417419\n0.653351 1.000000 0.418335\n0.682098 1.000000 0.419098\n0.709137 1.000000 0.419952\n0.734772 1.000000 0.420746\n0.759155 1.000000 0.421539\n0.782593 1.000000 0.422272\n0.805206 1.000000 0.423065\n0.827148 1.000000 0.423737\n0.848755 1.000000 0.424530\n0.870087 1.000000 0.425201\n0.891541 1.000000 0.425812\n0.913300 1.000000 0.426483\n0.935883 1.000000 0.427124\n0.959961 1.000000 0.427704\n0.032898 0.003082 0.513428\n0.048431 0.003723 0.513916\n0.065155 0.004395 0.514435\n0.083344 0.005127 0.514954\n0.103363 0.005829 0.515533\n0.125488 0.006592 0.516113\n0.150055 0.007385 0.516724\n0.177612 0.008148 0.517242\n0.208282 0.008972 0.517883\n0.241943 0.009827 0.518524\n0.278290 0.010681 0.519226\n0.317169 0.011597 0.519836\n0.358246 0.012512 0.520538\n0.401215 0.013428 0.521210\n0.445648 0.014374 0.521912\n0.490540 0.015381 0.522614\n0.533508 0.016357 0.523285\n0.573700 0.017395 0.524078\n0.611023 0.018402 0.524811\n0.645599 0.019501 0.525543\n0.677734 0.020538 0.526367\n0.707764 0.021637 0.527100\n0.736084 0.022766 0.527863\n0.762939 0.023926 0.528656\n0.788635 0.025024 0.529419\n0.813354 0.026215 0.530273\n0.837463 0.027435 0.531097\n0.861145 0.028595 0.531891\n0.884796 0.029846 0.532715\n0.908752 0.031036 0.533508\n0.933472 0.032349 0.534363\n0.959961 0.033630 0.535217\n0.033691 0.019440 0.512482\n0.049316 0.020142 0.512970\n0.066071 0.020844 0.513550\n0.084381 0.021637 0.514130\n0.104431 0.022400 0.514679\n0.126709 0.023224 0.515289\n0.151459 0.024048 0.515930\n0.179138 0.024902 0.516510\n0.209961 0.025787 0.517212\n0.243683 0.026733 0.517853\n0.280151 0.027649 0.518524\n0.319122 0.028564 0.519226\n0.360260 0.029572 0.519928\n0.403229 0.030579 0.520630\n0.447571 0.031586 0.521332\n0.492371 0.032593 0.522064\n0.535126 0.033661 0.522827\n0.575195 0.034760 0.523560\n0.612335 0.035828 0.524323\n0.646698 0.036987 0.525085\n0.678711 0.038147 0.525818\n0.708618 0.039276 0.526642\n0.736816 0.040497 0.527435\n0.763550 0.041687 0.528259\n0.789124 0.042908 0.528992\n0.813843 0.044159 0.529846\n0.837830 0.045410 0.530670\n0.861481 0.046692 0.531464\n0.885010 0.047974 0.532318\n0.908905 0.049286 0.533142\n0.933533 0.050598 0.533966\n0.959961 0.052002 0.534821\n0.034576 0.036713 0.511444\n0.050201 0.037506 0.512054\n0.067108 0.038300 0.512573\n0.085480 0.039154 0.513214\n0.105682 0.039978 0.513794\n0.128021 0.040863 0.514435\n0.152924 0.041779 0.515137\n0.180756 0.042694 0.515747\n0.211731 0.043671 0.516388\n0.245544 0.044647 0.517120\n0.282074 0.045624 0.517792\n0.321075 0.046692 0.518463\n0.362274 0.047729 0.519226\n0.405243 0.048798 0.519928\n0.449554 0.049927 0.520660\n0.494263 0.050995 0.521423\n0.536896 0.052155 0.522156\n0.576630 0.053345 0.522949\n0.613617 0.054504 0.523682\n0.647888 0.055725 0.524445\n0.679688 0.056976 0.525269\n0.709473 0.058167 0.526062\n0.737579 0.059479 0.526825\n0.764221 0.060791 0.527679\n0.789703 0.062073 0.528473\n0.814270 0.063416 0.529266\n0.838196 0.064758 0.530060\n0.861755 0.066132 0.530914\n0.885223 0.067535 0.531769\n0.909088 0.068909 0.532593\n0.933655 0.070374 0.533417\n0.959961 0.071808 0.534241\n0.035492 0.055298 0.510376\n0.051208 0.056152 0.510925\n0.068176 0.057068 0.511566\n0.086670 0.057983 0.512207\n0.106934 0.058929 0.512817\n0.129395 0.059875 0.513519\n0.154510 0.060883 0.514160\n0.182495 0.061890 0.514832\n0.213501 0.062958 0.515503\n0.247498 0.064026 0.516174\n0.284119 0.065125 0.516937\n0.323181 0.066223 0.517670\n0.364410 0.067413 0.518341\n0.407379 0.068573 0.519104\n0.451691 0.069763 0.519867\n0.496246 0.070953 0.520630\n0.538635 0.072235 0.521332\n0.578247 0.073517 0.522125\n0.614990 0.074799 0.522888\n0.649017 0.076111 0.523743\n0.680725 0.077423 0.524475\n0.710358 0.078766 0.525269\n0.738312 0.080170 0.526123\n0.764862 0.081573 0.526917\n0.790253 0.082977 0.527679\n0.814728 0.084442 0.528534\n0.838623 0.085876 0.529358\n0.862061 0.087372 0.530182\n0.885468 0.088898 0.530975\n0.909180 0.090393 0.531769\n0.933746 0.091949 0.532654\n0.959961 0.093506 0.533417\n0.036499 0.075592 0.509125\n0.052307 0.076508 0.509766\n0.069275 0.077515 0.510376\n0.087891 0.078552 0.511047\n0.108276 0.079590 0.511658\n0.130890 0.080688 0.512390\n0.156128 0.081787 0.513062\n0.184235 0.082916 0.513702\n0.215485 0.084045 0.514404\n0.249542 0.085266 0.515106\n0.286224 0.086456 0.515869\n0.325348 0.087677 0.516632\n0.366577 0.088928 0.517365\n0.409546 0.090240 0.518036\n0.453857 0.091583 0.518799\n0.498199 0.092896 0.519592\n0.540405 0.094238 0.520355\n0.579803 0.095673 0.521179\n0.616333 0.097076 0.521912\n0.650238 0.098511 0.522675\n0.681763 0.100006 0.523468\n0.711243 0.101440 0.524292\n0.739075 0.102966 0.525085\n0.765503 0.104431 0.525879\n0.790802 0.106018 0.526703\n0.815186 0.107635 0.527496\n0.838989 0.109192 0.528259\n0.862366 0.110840 0.529083\n0.885712 0.112457 0.529907\n0.909363 0.114105 0.530701\n0.933838 0.115784 0.531555\n0.959961 0.117523 0.532379\n0.037567 0.097931 0.507721\n0.053406 0.099030 0.508362\n0.070526 0.100128 0.509003\n0.089172 0.101288 0.509644\n0.109711 0.102417 0.510315\n0.132446 0.103638 0.510986\n0.157776 0.104889 0.511719\n0.186127 0.106140 0.512360\n0.217468 0.107452 0.513153\n0.251587 0.108734 0.513763\n0.288422 0.110107 0.514496\n0.327606 0.111450 0.515289\n0.368835 0.112823 0.515991\n0.411835 0.114288 0.516785\n0.456055 0.115753 0.517517\n0.500275 0.117218 0.518280\n0.542236 0.118713 0.519073\n0.581360 0.120270 0.519836\n0.617737 0.121765 0.520630\n0.651459 0.123383 0.521362\n0.682800 0.125000 0.522156\n0.712158 0.126617 0.522949\n0.739899 0.128296 0.523804\n0.766205 0.129913 0.524567\n0.791351 0.131683 0.525360\n0.815704 0.133423 0.526093\n0.839386 0.135132 0.526917\n0.862732 0.136902 0.527710\n0.885925 0.138733 0.528534\n0.909546 0.140533 0.529266\n0.933899 0.142365 0.530121\n0.959961 0.144257 0.530914\n0.038635 0.122925 0.505981\n0.054565 0.124115 0.506653\n0.071777 0.125366 0.507263\n0.090515 0.126648 0.507996\n0.111176 0.127960 0.508636\n0.134033 0.129303 0.509369\n0.159515 0.130707 0.510071\n0.188049 0.132080 0.510742\n0.219482 0.133545 0.511475\n0.253754 0.134979 0.512207\n0.290649 0.136505 0.512909\n0.329895 0.138031 0.513702\n0.371185 0.139557 0.514404\n0.414093 0.141174 0.515137\n0.458252 0.142822 0.515930\n0.502350 0.144409 0.516663\n0.544067 0.146088 0.517426\n0.583008 0.147797 0.518188\n0.619141 0.149475 0.518951\n0.652649 0.151215 0.519745\n0.683807 0.152985 0.520538\n0.713074 0.154816 0.521271\n0.740662 0.156647 0.522064\n0.766876 0.158478 0.522827\n0.791992 0.160370 0.523590\n0.816193 0.162262 0.524414\n0.839783 0.164185 0.525177\n0.863007 0.166107 0.525940\n0.886200 0.168091 0.526764\n0.909668 0.170044 0.527527\n0.933990 0.172119 0.528290\n0.959961 0.174103 0.529083\n0.039825 0.150940 0.503967\n0.055786 0.152313 0.504639\n0.073059 0.153748 0.505280\n0.091949 0.155212 0.505951\n0.112701 0.156647 0.506622\n0.135712 0.158203 0.507355\n0.161346 0.159698 0.508026\n0.189972 0.161285 0.508728\n0.221619 0.162903 0.509491\n0.255951 0.164520 0.510193\n0.292969 0.166168 0.510956\n0.332245 0.167938 0.511658\n0.373535 0.169647 0.512390\n0.416473 0.171417 0.513092\n0.460602 0.173187 0.513916\n0.504486 0.174988 0.514557\n0.545990 0.176910 0.515381\n0.584686 0.178772 0.516144\n0.620575 0.180634 0.516876\n0.653900 0.182617 0.517670\n0.684937 0.184540 0.518402\n0.713989 0.186523 0.519165\n0.741486 0.188568 0.519928\n0.767517 0.190521 0.520721\n0.792542 0.192627 0.521484\n0.816681 0.194702 0.522186\n0.840179 0.196777 0.523010\n0.863342 0.198914 0.523773\n0.886444 0.201080 0.524506\n0.909851 0.203186 0.525238\n0.934082 0.205383 0.526031\n0.959961 0.207520 0.526764\n0.040985 0.182678 0.501526\n0.057037 0.184174 0.502167\n0.074432 0.185822 0.502838\n0.093414 0.187469 0.503479\n0.114288 0.189056 0.504181\n0.137421 0.190765 0.504883\n0.163239 0.192474 0.505554\n0.192078 0.194275 0.506256\n0.223785 0.196045 0.507050\n0.258270 0.197845 0.507751\n0.295349 0.199707 0.508423\n0.334686 0.201599 0.509186\n0.375946 0.203522 0.509888\n0.418884 0.205444 0.510620\n0.462891 0.207428 0.511353\n0.506653 0.209381 0.512115\n0.547882 0.211426 0.512848\n0.586304 0.213440 0.513580\n0.622070 0.215515 0.514343\n0.655182 0.217651 0.515076\n0.685974 0.219696 0.515869\n0.714935 0.221893 0.516602\n0.742279 0.224060 0.517365\n0.768250 0.226227 0.518066\n0.793091 0.228424 0.518860\n0.817139 0.230682 0.519623\n0.840576 0.232910 0.520294\n0.863647 0.235168 0.521088\n0.886658 0.237396 0.521851\n0.909973 0.239716 0.522552\n0.934174 0.242065 0.523315\n0.959961 0.244293 0.524017\n0.042267 0.218323 0.498596\n0.058380 0.220032 0.499237\n0.075867 0.221802 0.499939\n0.094940 0.223572 0.500580\n0.115967 0.225372 0.501282\n0.139252 0.227264 0.501984\n0.165222 0.229095 0.502655\n0.194183 0.231049 0.503418\n0.226044 0.233002 0.504059\n0.260620 0.234894 0.504822\n0.297760 0.236969 0.505493\n0.337158 0.239014 0.506226\n0.378510 0.240997 0.506958\n0.421326 0.243103 0.507690\n0.465271 0.245209 0.508423\n0.508820 0.247314 0.509155\n0.549774 0.249512 0.509918\n0.587982 0.251678 0.510620\n0.623505 0.253876 0.511383\n0.656464 0.256165 0.512115\n0.687103 0.258331 0.512848\n0.715912 0.260620 0.513580\n0.743103 0.262939 0.514374\n0.768951 0.265198 0.515076\n0.793701 0.267548 0.515747\n0.817657 0.269867 0.516541\n0.840973 0.272247 0.517273\n0.863953 0.274567 0.518005\n0.886902 0.276917 0.518738\n0.910187 0.279327 0.519470\n0.934265 0.281708 0.520172\n0.959961 0.284119 0.520844\n0.043549 0.257660 0.495178\n0.059753 0.259491 0.495880\n0.077332 0.261414 0.496582\n0.096527 0.263306 0.497253\n0.117645 0.265289 0.497925\n0.141083 0.267273 0.498596\n0.167206 0.269226 0.499298\n0.196381 0.271301 0.500061\n0.228363 0.273376 0.500793\n0.263031 0.275452 0.501465\n0.300293 0.277588 0.502167\n0.339691 0.279755 0.502930\n0.380981 0.281860 0.503662\n0.423859 0.284119 0.504364\n0.467712 0.286285 0.505066\n0.511017 0.288574 0.505829\n0.551727 0.290802 0.506561\n0.589661 0.293091 0.507294\n0.625000 0.295410 0.507996\n0.657715 0.297699 0.508759\n0.688171 0.300018 0.509491\n0.716827 0.302399 0.510193\n0.743866 0.304779 0.510925\n0.769592 0.307098 0.511688\n0.794281 0.309540 0.512390\n0.818115 0.311890 0.513123\n0.841370 0.314362 0.513824\n0.864319 0.316772 0.514557\n0.887146 0.319183 0.515289\n0.910370 0.321655 0.515961\n0.934326 0.324097 0.516724\n0.959961 0.326508 0.517395\n0.044891 0.300354 0.491516\n0.061188 0.302246 0.492188\n0.078857 0.304291 0.492859\n0.098145 0.306305 0.493530\n0.119415 0.308380 0.494232\n0.143036 0.310486 0.494904\n0.169312 0.312561 0.495636\n0.198608 0.314667 0.496368\n0.230743 0.316864 0.497040\n0.265503 0.319000 0.497803\n0.302795 0.321198 0.498474\n0.342224 0.323456 0.499237\n0.383575 0.325653 0.499939\n0.426361 0.327972 0.500641\n0.470123 0.330200 0.501404\n0.513184 0.332550 0.502167\n0.553680 0.334900 0.502869\n0.591400 0.337189 0.503571\n0.626465 0.339539 0.504333\n0.658936 0.342010 0.505035\n0.689301 0.344269 0.505737\n0.717804 0.346741 0.506500\n0.744690 0.349182 0.507233\n0.770325 0.351532 0.507904\n0.794922 0.353973 0.508667\n0.818634 0.356415 0.509369\n0.841766 0.358826 0.510071\n0.864594 0.361328 0.510773\n0.887390 0.363708 0.511505\n0.910522 0.366211 0.512238\n0.934387 0.368683 0.512909\n0.959961 0.371094 0.513611\n0.046295 0.345856 0.487427\n0.062653 0.347992 0.488098\n0.080414 0.350037 0.488770\n0.099854 0.352112 0.489441\n0.121216 0.354218 0.490173\n0.144958 0.356415 0.490875\n0.171478 0.358551 0.491608\n0.200897 0.360748 0.492371\n0.233124 0.362976 0.493042\n0.268036 0.365173 0.493805\n0.305359 0.367462 0.494446\n0.344818 0.369629 0.495209\n0.386139 0.372009 0.495972\n0.428986 0.374268 0.496674\n0.472595 0.376587 0.497375\n0.515411 0.378937 0.498108\n0.555634 0.381287 0.498840\n0.593140 0.383606 0.499542\n0.627960 0.386017 0.500305\n0.660278 0.388458 0.501099\n0.690369 0.390778 0.501770\n0.718781 0.393219 0.502441\n0.745514 0.395569 0.503204\n0.770996 0.397980 0.503937\n0.795502 0.400452 0.504669\n0.819122 0.402832 0.505371\n0.842194 0.405273 0.506104\n0.864929 0.407715 0.506775\n0.887665 0.410126 0.507507\n0.910675 0.412506 0.508209\n0.934509 0.415009 0.508942\n0.959961 0.417358 0.509613\n0.047699 0.393890 0.483063\n0.064148 0.396027 0.483765\n0.082001 0.398132 0.484497\n0.101532 0.400208 0.485138\n0.123077 0.402344 0.485901\n0.146973 0.404541 0.486664\n0.173645 0.406708 0.487305\n0.203186 0.408905 0.488068\n0.235596 0.411133 0.488770\n0.270569 0.413330 0.489502\n0.307983 0.415680 0.490265\n0.347473 0.417908 0.490936\n0.388824 0.420227 0.491699\n0.431519 0.422516 0.492462\n0.475006 0.424774 0.493164\n0.517670 0.427155 0.493896\n0.557587 0.429474 0.494598\n0.594849 0.431793 0.495331\n0.629456 0.434174 0.496094\n0.661560 0.436554 0.496826\n0.691498 0.438873 0.497589\n0.719666 0.441254 0.498322\n0.746338 0.443573 0.499023\n0.771698 0.445953 0.499695\n0.796021 0.448364 0.500458\n0.819611 0.450714 0.501160\n0.842560 0.453033 0.501923\n0.865234 0.455444 0.502625\n0.887878 0.457764 0.503296\n0.910797 0.460144 0.503998\n0.934601 0.462524 0.504700\n0.959961 0.464844 0.505402\n0.049164 0.443756 0.478485\n0.065704 0.445862 0.479156\n0.083710 0.447998 0.479919\n0.103363 0.450043 0.480652\n0.125031 0.452209 0.481384\n0.149078 0.454407 0.482086\n0.175873 0.456512 0.482849\n0.205597 0.458649 0.483612\n0.238129 0.460846 0.484314\n0.273193 0.463104 0.485046\n0.310608 0.465271 0.485840\n0.350098 0.467499 0.486511\n0.391449 0.469757 0.487335\n0.434143 0.472015 0.488037\n0.477539 0.474243 0.488770\n0.519867 0.476532 0.489532\n0.559540 0.478821 0.490295\n0.596619 0.481018 0.491028\n0.630890 0.483276 0.491791\n0.662811 0.485565 0.492432\n0.692596 0.487823 0.493225\n0.720642 0.490112 0.493958\n0.747162 0.492340 0.494720\n0.772400 0.494598 0.495453\n0.796631 0.496887 0.496185\n0.820068 0.499146 0.496918\n0.842987 0.501343 0.497589\n0.865570 0.503632 0.498352\n0.888092 0.505829 0.499054\n0.910980 0.508026 0.499786\n0.934692 0.510193 0.500458\n0.959961 0.512360 0.501129\n0.050690 0.494568 0.473877\n0.067322 0.496613 0.474579\n0.085327 0.498627 0.475311\n0.105103 0.500671 0.476044\n0.126953 0.502716 0.476807\n0.151184 0.504822 0.477570\n0.178162 0.506836 0.478302\n0.208069 0.508911 0.479095\n0.240631 0.510956 0.479828\n0.275787 0.513000 0.480621\n0.313324 0.515167 0.481354\n0.352875 0.517212 0.482147\n0.394104 0.519287 0.482910\n0.436798 0.521362 0.483673\n0.480072 0.523407 0.484406\n0.522095 0.525452 0.485229\n0.561554 0.527588 0.486053\n0.598236 0.529572 0.486725\n0.632446 0.531647 0.487518\n0.664062 0.533661 0.488281\n0.693695 0.535736 0.489014\n0.721588 0.537811 0.489807\n0.747955 0.539764 0.490601\n0.773071 0.541779 0.491272\n0.797180 0.543793 0.492096\n0.820587 0.545715 0.492828\n0.843353 0.547699 0.493591\n0.865875 0.549683 0.494354\n0.888336 0.551605 0.495056\n0.911163 0.553528 0.495789\n0.934784 0.555420 0.496521\n0.959961 0.557343 0.497253\n0.052216 0.543945 0.469391\n0.068939 0.545746 0.470184\n0.087067 0.547607 0.470978\n0.106964 0.549377 0.471710\n0.128967 0.551239 0.472534\n0.153320 0.553040 0.473328\n0.180450 0.554840 0.474152\n0.210480 0.556671 0.474884\n0.243256 0.558472 0.475708\n0.278473 0.560333 0.476471\n0.316040 0.562134 0.477295\n0.355591 0.563995 0.478119\n0.396790 0.565826 0.478912\n0.439362 0.567657 0.479675\n0.482544 0.569427 0.480530\n0.524323 0.571289 0.481293\n0.563446 0.573090 0.482117\n0.599976 0.574860 0.482880\n0.633911 0.576660 0.483704\n0.665375 0.578430 0.484497\n0.694794 0.580200 0.485291\n0.722534 0.582031 0.486053\n0.748779 0.583740 0.486877\n0.773773 0.585541 0.487640\n0.797821 0.587219 0.488403\n0.821075 0.588959 0.489166\n0.843750 0.590637 0.489960\n0.866180 0.592438 0.490723\n0.888611 0.594055 0.491486\n0.911316 0.595703 0.492218\n0.934845 0.597351 0.492981\n0.959961 0.599030 0.493713\n0.053772 0.589630 0.465424\n0.070587 0.591217 0.466248\n0.088898 0.592834 0.467102\n0.108887 0.594391 0.467896\n0.130981 0.596008 0.468689\n0.155548 0.597626 0.469543\n0.182831 0.599213 0.470398\n0.213013 0.600800 0.471222\n0.245819 0.602386 0.472015\n0.281189 0.603973 0.472839\n0.318726 0.605591 0.473694\n0.358307 0.607147 0.474487\n0.399567 0.608765 0.475372\n0.442108 0.610352 0.476196\n0.485046 0.611877 0.477051\n0.526550 0.613464 0.477814\n0.565460 0.615051 0.478668\n0.601685 0.616577 0.479492\n0.635345 0.618164 0.480347\n0.666626 0.619690 0.481140\n0.695892 0.621246 0.481934\n0.723450 0.622772 0.482758\n0.749542 0.624268 0.483521\n0.774475 0.625793 0.484375\n0.798401 0.627289 0.485199\n0.821533 0.628723 0.485962\n0.844116 0.630249 0.486786\n0.866516 0.631744 0.487518\n0.888824 0.633087 0.488281\n0.911499 0.634583 0.489044\n0.934967 0.635956 0.489777\n0.959961 0.637390 0.490601\n0.055389 0.631653 0.462036\n0.072266 0.633026 0.462860\n0.090668 0.634399 0.463715\n0.110809 0.635742 0.464539\n0.133087 0.637207 0.465454\n0.157715 0.638519 0.466248\n0.185272 0.639923 0.467072\n0.215546 0.641327 0.468018\n0.248444 0.642609 0.468842\n0.283875 0.644043 0.469666\n0.321533 0.645447 0.470581\n0.361084 0.646790 0.471405\n0.402222 0.648193 0.472290\n0.444702 0.649536 0.473145\n0.487549 0.650848 0.473969\n0.528717 0.652191 0.474823\n0.567383 0.653564 0.475708\n0.603363 0.654907 0.476532\n0.636780 0.656250 0.477386\n0.667847 0.657501 0.478180\n0.696960 0.658875 0.479034\n0.724396 0.660156 0.479889\n0.750336 0.661469 0.480743\n0.775146 0.662720 0.481476\n0.798920 0.664032 0.482361\n0.822021 0.665253 0.483124\n0.844543 0.666504 0.483917\n0.866791 0.667755 0.484711\n0.889038 0.668976 0.485504\n0.911682 0.670197 0.486328\n0.935028 0.671387 0.487061\n0.959961 0.672607 0.487823\n0.056976 0.670105 0.459015\n0.074005 0.671295 0.459930\n0.092499 0.672485 0.460815\n0.112762 0.673645 0.461639\n0.135162 0.674866 0.462555\n0.160004 0.675995 0.463470\n0.187653 0.677216 0.464294\n0.218109 0.678375 0.465210\n0.251129 0.679565 0.466095\n0.286591 0.680786 0.467010\n0.324280 0.681915 0.467926\n0.363800 0.683105 0.468719\n0.404999 0.684265 0.469604\n0.447388 0.685425 0.470520\n0.490021 0.686523 0.471375\n0.530975 0.687744 0.472260\n0.569305 0.688843 0.473053\n0.605011 0.690002 0.473938\n0.638245 0.691132 0.474823\n0.669098 0.692261 0.475708\n0.698029 0.693359 0.476532\n0.725311 0.694519 0.477356\n0.751129 0.695618 0.478149\n0.775787 0.696716 0.479034\n0.799469 0.697815 0.479828\n0.822479 0.698883 0.480652\n0.844879 0.699951 0.481476\n0.867096 0.700928 0.482300\n0.889313 0.701996 0.483063\n0.911804 0.703033 0.483826\n0.935120 0.704041 0.484619\n0.959961 0.705048 0.485352\n0.058624 0.705383 0.456482\n0.075745 0.706421 0.457336\n0.094299 0.707428 0.458252\n0.114746 0.708435 0.459229\n0.137268 0.709442 0.460114\n0.162292 0.710480 0.460999\n0.190094 0.711487 0.461945\n0.220673 0.712524 0.462799\n0.253784 0.713501 0.463684\n0.289368 0.714539 0.464600\n0.327026 0.715576 0.465546\n0.366577 0.716522 0.466431\n0.407684 0.717529 0.467316\n0.449921 0.718536 0.468170\n0.492462 0.719543 0.469086\n0.533112 0.720520 0.469940\n0.571198 0.721466 0.470825\n0.606689 0.722443 0.471741\n0.639679 0.723419 0.472565\n0.670319 0.724396 0.473450\n0.699127 0.725342 0.474274\n0.726196 0.726318 0.475128\n0.751892 0.727203 0.475952\n0.776459 0.728149 0.476837\n0.800079 0.729065 0.477600\n0.822906 0.730011 0.478455\n0.845306 0.730896 0.479279\n0.867401 0.731750 0.480072\n0.889496 0.732635 0.480896\n0.911957 0.733521 0.481659\n0.935181 0.734375 0.482422\n0.959961 0.735199 0.483185\n0.060303 0.738037 0.454285\n0.077515 0.738922 0.455261\n0.096191 0.739807 0.456116\n0.116730 0.740662 0.457031\n0.139435 0.741547 0.458008\n0.164642 0.742401 0.458862\n0.192566 0.743286 0.459839\n0.223297 0.744202 0.460754\n0.256500 0.744995 0.461670\n0.292114 0.745911 0.462555\n0.329803 0.746765 0.463531\n0.369354 0.747589 0.464386\n0.410431 0.748444 0.465271\n0.452576 0.749298 0.466187\n0.494934 0.750122 0.467072\n0.535248 0.750977 0.468048\n0.573059 0.751801 0.468842\n0.608337 0.752625 0.469757\n0.641083 0.753479 0.470612\n0.671570 0.754272 0.471466\n0.700104 0.755066 0.472321\n0.727081 0.755890 0.473175\n0.752625 0.756683 0.474030\n0.777069 0.757477 0.474884\n0.800598 0.758240 0.475708\n0.823395 0.759033 0.476532\n0.845612 0.759766 0.477295\n0.867706 0.760498 0.478119\n0.889740 0.761292 0.478912\n0.912079 0.762024 0.479706\n0.935303 0.762756 0.480469\n0.959961 0.763458 0.481232\n0.062012 0.768524 0.452332\n0.079315 0.769287 0.453308\n0.098114 0.770020 0.454285\n0.118774 0.770782 0.455170\n0.141602 0.771515 0.456116\n0.166931 0.772247 0.457031\n0.195099 0.773010 0.458008\n0.225891 0.773712 0.458954\n0.259186 0.774475 0.459869\n0.294861 0.775177 0.460785\n0.332550 0.775909 0.461670\n0.372101 0.776672 0.462616\n0.413086 0.777374 0.463531\n0.455200 0.778107 0.464386\n0.497314 0.778809 0.465302\n0.537415 0.779541 0.466248\n0.574921 0.780212 0.467072\n0.609924 0.780945 0.467987\n0.642426 0.781647 0.468842\n0.672729 0.782288 0.469727\n0.701172 0.783020 0.470551\n0.727936 0.783691 0.471466\n0.753387 0.784332 0.472321\n0.777710 0.785034 0.473083\n0.801086 0.785675 0.473907\n0.823792 0.786285 0.474731\n0.846008 0.786987 0.475555\n0.867981 0.787598 0.476349\n0.889923 0.788208 0.477112\n0.912231 0.788818 0.477905\n0.935364 0.789459 0.478638\n0.959961 0.790039 0.479401\n0.063721 0.797150 0.450653\n0.081116 0.797791 0.451660\n0.100006 0.798431 0.452606\n0.120850 0.799072 0.453552\n0.143799 0.799683 0.454468\n0.169342 0.800354 0.455414\n0.197601 0.800964 0.456390\n0.228546 0.801605 0.457336\n0.261932 0.802185 0.458221\n0.297577 0.802826 0.459198\n0.335358 0.803436 0.460052\n0.374817 0.804047 0.461029\n0.415802 0.804688 0.461945\n0.457764 0.805267 0.462799\n0.499725 0.805878 0.463715\n0.539490 0.806458 0.464661\n0.576782 0.807068 0.465485\n0.611511 0.807648 0.466400\n0.643829 0.808258 0.467285\n0.673889 0.808838 0.468170\n0.702118 0.809387 0.468994\n0.728821 0.809967 0.469818\n0.754120 0.810516 0.470673\n0.778320 0.811066 0.471497\n0.801636 0.811646 0.472290\n0.824249 0.812164 0.473083\n0.846344 0.812683 0.473938\n0.868256 0.813263 0.474701\n0.890106 0.813751 0.475464\n0.912354 0.814270 0.476227\n0.935394 0.814758 0.476929\n0.959961 0.815277 0.477692\n0.065491 0.824310 0.449188\n0.082977 0.824860 0.450134\n0.101959 0.825378 0.451080\n0.122925 0.825897 0.452087\n0.146027 0.826447 0.453064\n0.171661 0.826996 0.453949\n0.200104 0.827484 0.454926\n0.231110 0.828003 0.455872\n0.264587 0.828552 0.456787\n0.300354 0.829071 0.457733\n0.338104 0.829559 0.458679\n0.377563 0.830078 0.459564\n0.418457 0.830627 0.460510\n0.460327 0.831085 0.461426\n0.502075 0.831635 0.462280\n0.541504 0.832123 0.463196\n0.578522 0.832581 0.464081\n0.613037 0.833069 0.464996\n0.645142 0.833618 0.465820\n0.675049 0.834076 0.466675\n0.703125 0.834534 0.467529\n0.729645 0.835022 0.468353\n0.754822 0.835480 0.469177\n0.778961 0.835938 0.469940\n0.802155 0.836365 0.470734\n0.824646 0.836853 0.471619\n0.846710 0.837311 0.472382\n0.868500 0.837738 0.473145\n0.890350 0.838165 0.473877\n0.912506 0.838593 0.474640\n0.935486 0.838989 0.475403\n0.959961 0.839386 0.476074\n0.067230 0.850250 0.447815\n0.084808 0.850739 0.448822\n0.103943 0.851135 0.449799\n0.125000 0.851562 0.450775\n0.148254 0.852051 0.451691\n0.174072 0.852448 0.452667\n0.202637 0.852936 0.453583\n0.233765 0.853333 0.454559\n0.267303 0.853790 0.455475\n0.303101 0.854218 0.456390\n0.340790 0.854614 0.457367\n0.380310 0.855042 0.458221\n0.421112 0.855499 0.459167\n0.462830 0.855896 0.460052\n0.504364 0.856354 0.460938\n0.543579 0.856720 0.461853\n0.580353 0.857147 0.462738\n0.614594 0.857544 0.463562\n0.646423 0.857910 0.464447\n0.676178 0.858307 0.465302\n0.704102 0.858734 0.466125\n0.730499 0.859100 0.466949\n0.755524 0.859497 0.467743\n0.779541 0.859863 0.468536\n0.802612 0.860229 0.469360\n0.825043 0.860565 0.470154\n0.847015 0.860962 0.470917\n0.868805 0.861328 0.471649\n0.890564 0.861633 0.472382\n0.912628 0.862030 0.473083\n0.935516 0.862335 0.473816\n0.959961 0.862671 0.474518\n0.068970 0.875336 0.446655\n0.086639 0.875732 0.447571\n0.105896 0.876068 0.448517\n0.127075 0.876434 0.449524\n0.150421 0.876770 0.450439\n0.176483 0.877136 0.451477\n0.205139 0.877502 0.452393\n0.236359 0.877808 0.453308\n0.269989 0.878204 0.454254\n0.305786 0.878540 0.455170\n0.343536 0.878906 0.456085\n0.382965 0.879211 0.456970\n0.423706 0.879578 0.457916\n0.465302 0.879883 0.458801\n0.506622 0.880280 0.459747\n0.545471 0.880554 0.460541\n0.582062 0.880890 0.461456\n0.616089 0.881256 0.462311\n0.647705 0.881531 0.463135\n0.677246 0.881866 0.463959\n0.705017 0.882172 0.464752\n0.731293 0.882477 0.465576\n0.756195 0.882782 0.466370\n0.780090 0.883118 0.467194\n0.803101 0.883392 0.467957\n0.825470 0.883698 0.468750\n0.847351 0.884003 0.469482\n0.868988 0.884277 0.470215\n0.890747 0.884583 0.470917\n0.912781 0.884827 0.471619\n0.935577 0.885071 0.472260\n0.959961 0.885345 0.472961\n0.070740 0.899872 0.445435\n0.088531 0.900116 0.446442\n0.107849 0.900421 0.447388\n0.129150 0.900696 0.448364\n0.152679 0.901001 0.449280\n0.178833 0.901245 0.450256\n0.207672 0.901550 0.451141\n0.238922 0.901794 0.452118\n0.272644 0.902100 0.453064\n0.308472 0.902374 0.453949\n0.346222 0.902649 0.454865\n0.385590 0.902893 0.455780\n0.426300 0.903168 0.456726\n0.467743 0.903442 0.457581\n0.508820 0.903717 0.458435\n0.547424 0.903992 0.459351\n0.583679 0.904236 0.460205\n0.617523 0.904510 0.460968\n0.648956 0.904694 0.461823\n0.678314 0.904999 0.462646\n0.705963 0.905212 0.463440\n0.732056 0.905487 0.464233\n0.756897 0.905701 0.465027\n0.780701 0.905914 0.465759\n0.803589 0.906158 0.466553\n0.825836 0.906372 0.467285\n0.847656 0.906586 0.468048\n0.869263 0.906830 0.468781\n0.890869 0.907043 0.469421\n0.912872 0.907227 0.470093\n0.935669 0.907440 0.470734\n0.959961 0.907623 0.471405\n0.072510 0.924072 0.444244\n0.090332 0.924286 0.445251\n0.109833 0.924500 0.446198\n0.131287 0.924744 0.447174\n0.154938 0.924927 0.448090\n0.181213 0.925140 0.449066\n0.210144 0.925354 0.450043\n0.241516 0.925568 0.450928\n0.275269 0.925812 0.451874\n0.311157 0.925964 0.452789\n0.348846 0.926147 0.453644\n0.388184 0.926392 0.454559\n0.428772 0.926575 0.455414\n0.470154 0.926758 0.456299\n0.510956 0.926971 0.457214\n0.549286 0.927155 0.458008\n0.585388 0.927368 0.458862\n0.618927 0.927521 0.459686\n0.650177 0.927704 0.460510\n0.679352 0.927917 0.461334\n0.706818 0.928070 0.462128\n0.732788 0.928253 0.462860\n0.757507 0.928436 0.463654\n0.781189 0.928589 0.464417\n0.804016 0.928772 0.465118\n0.826202 0.928955 0.465790\n0.847961 0.929108 0.466522\n0.869476 0.929291 0.467224\n0.891052 0.929413 0.467865\n0.912994 0.929565 0.468567\n0.935699 0.929688 0.469208\n0.959961 0.929840 0.469818\n0.074280 0.948456 0.443054\n0.092194 0.948608 0.444031\n0.111786 0.948730 0.444977\n0.133331 0.948883 0.445984\n0.157166 0.949005 0.446838\n0.183594 0.949188 0.447815\n0.212616 0.949341 0.448730\n0.244080 0.949493 0.449677\n0.277863 0.949615 0.450592\n0.313751 0.949768 0.451508\n0.351471 0.949860 0.452362\n0.390778 0.950012 0.453278\n0.431244 0.950165 0.454102\n0.472504 0.950287 0.455017\n0.513031 0.950378 0.455872\n0.551208 0.950531 0.456696\n0.586945 0.950653 0.457489\n0.620300 0.950745 0.458344\n0.651337 0.950897 0.459106\n0.680359 0.951019 0.459869\n0.707703 0.951141 0.460693\n0.733521 0.951233 0.461426\n0.758148 0.951385 0.462189\n0.781708 0.951508 0.462830\n0.804474 0.951599 0.463593\n0.826538 0.951721 0.464294\n0.848236 0.951813 0.464935\n0.869690 0.951935 0.465637\n0.891266 0.952026 0.466278\n0.913116 0.952118 0.466888\n0.935791 0.952240 0.467468\n0.959961 0.952332 0.468079\n0.076050 0.973480 0.441742\n0.094025 0.973541 0.442688\n0.113770 0.973663 0.443634\n0.135468 0.973724 0.444611\n0.159393 0.973816 0.445496\n0.185974 0.973877 0.446472\n0.215088 0.973969 0.447418\n0.246643 0.974030 0.448273\n0.280457 0.974121 0.449219\n0.316315 0.974182 0.450104\n0.354034 0.974243 0.450989\n0.393250 0.974304 0.451813\n0.433685 0.974365 0.452667\n0.474792 0.974426 0.453583\n0.515076 0.974518 0.454376\n0.552917 0.974579 0.455170\n0.588501 0.974609 0.456024\n0.621613 0.974701 0.456818\n0.652466 0.974762 0.457581\n0.681335 0.974854 0.458313\n0.708496 0.974884 0.459137\n0.734253 0.974976 0.459808\n0.758759 0.975006 0.460480\n0.782166 0.975067 0.461243\n0.804871 0.975098 0.461914\n0.826904 0.975189 0.462616\n0.848511 0.975220 0.463226\n0.869934 0.975281 0.463867\n0.891388 0.975281 0.464478\n0.913239 0.975342 0.465057\n0.935822 0.975403 0.465637\n0.959961 0.975433 0.466248\n0.077820 1.000000 0.440186\n0.095886 1.000000 0.441132\n0.115723 1.000000 0.442108\n0.137512 1.000000 0.443085\n0.161621 1.000000 0.444000\n0.188293 1.000000 0.444885\n0.217529 1.000000 0.445831\n0.249146 1.000000 0.446716\n0.283020 1.000000 0.447601\n0.318848 1.000000 0.448425\n0.356537 1.000000 0.449341\n0.395691 1.000000 0.450195\n0.436066 1.000000 0.451019\n0.477020 1.000000 0.451843\n0.516998 1.000000 0.452698\n0.554657 1.000000 0.453491\n0.590027 1.000000 0.454254\n0.622894 1.000000 0.455048\n0.653595 1.000000 0.455841\n0.682251 1.000000 0.456512\n0.709290 1.000000 0.457214\n0.734894 1.000000 0.457916\n0.759277 1.000000 0.458649\n0.782684 1.000000 0.459351\n0.805237 1.000000 0.460022\n0.827179 1.000000 0.460571\n0.848785 1.000000 0.461243\n0.870117 1.000000 0.461853\n0.891541 1.000000 0.462433\n0.913361 1.000000 0.463013\n0.935883 1.000000 0.463501\n0.959961 1.000000 0.464050\n0.033051 0.003357 0.557159\n0.048584 0.003967 0.557617\n0.065338 0.004669 0.558044\n0.083557 0.005341 0.558502\n0.103546 0.006104 0.559021\n0.125671 0.006897 0.559540\n0.150330 0.007660 0.560028\n0.177917 0.008484 0.560516\n0.208649 0.009308 0.561066\n0.242218 0.010132 0.561646\n0.278625 0.011017 0.562225\n0.317535 0.011932 0.562775\n0.358612 0.012817 0.563354\n0.401550 0.013794 0.563934\n0.445984 0.014709 0.564545\n0.490845 0.015717 0.565155\n0.533813 0.016754 0.565796\n0.573944 0.017761 0.566406\n0.611267 0.018829 0.567017\n0.645782 0.019867 0.567688\n0.677917 0.020935 0.568359\n0.707916 0.022034 0.569000\n0.736237 0.023193 0.569702\n0.763062 0.024323 0.570404\n0.788727 0.025482 0.571075\n0.813446 0.026672 0.571747\n0.837524 0.027863 0.572449\n0.861237 0.029053 0.573151\n0.884857 0.030273 0.573853\n0.908783 0.031555 0.574585\n0.933502 0.032837 0.575287\n0.959961 0.034058 0.576050\n0.033844 0.019684 0.556091\n0.049469 0.020416 0.556549\n0.066254 0.021149 0.557068\n0.084534 0.021912 0.557556\n0.104675 0.022736 0.558014\n0.126953 0.023529 0.558563\n0.151733 0.024353 0.559082\n0.179504 0.025208 0.559692\n0.210327 0.026154 0.560181\n0.244019 0.027039 0.560760\n0.280518 0.027985 0.561310\n0.319489 0.028931 0.561920\n0.360565 0.029938 0.562561\n0.403564 0.030945 0.563171\n0.447937 0.031952 0.563751\n0.492737 0.032990 0.564453\n0.535431 0.034088 0.565033\n0.575439 0.035126 0.565704\n0.612549 0.036255 0.566376\n0.646942 0.037415 0.567017\n0.678864 0.038544 0.567688\n0.708771 0.039734 0.568390\n0.736969 0.040924 0.569061\n0.763672 0.042114 0.569733\n0.789246 0.043365 0.570435\n0.813965 0.044556 0.571106\n0.837891 0.045868 0.571838\n0.861511 0.047150 0.572540\n0.885040 0.048431 0.573242\n0.908936 0.049805 0.573944\n0.933594 0.051117 0.574646\n0.959961 0.052429 0.575409\n0.034760 0.037018 0.554901\n0.050415 0.037750 0.555481\n0.067322 0.038605 0.555969\n0.085693 0.039429 0.556458\n0.105896 0.040314 0.557007\n0.128265 0.041199 0.557556\n0.153229 0.042114 0.558075\n0.181091 0.043060 0.558655\n0.212067 0.044037 0.559235\n0.245911 0.045013 0.559814\n0.282471 0.046051 0.560455\n0.321472 0.047058 0.561035\n0.362610 0.048126 0.561615\n0.405640 0.049194 0.562286\n0.450012 0.050323 0.562897\n0.494629 0.051453 0.563568\n0.537231 0.052612 0.564178\n0.576935 0.053772 0.564850\n0.613892 0.054962 0.565521\n0.648041 0.056183 0.566254\n0.679901 0.057434 0.566895\n0.709625 0.058685 0.567566\n0.737701 0.059937 0.568207\n0.764343 0.061249 0.568939\n0.789795 0.062561 0.569672\n0.814392 0.063904 0.570282\n0.838287 0.065277 0.571014\n0.861847 0.066681 0.571716\n0.885284 0.068054 0.572388\n0.909088 0.069458 0.573151\n0.933655 0.070892 0.573853\n0.959961 0.072327 0.574554\n0.035645 0.055603 0.553711\n0.051422 0.056519 0.554230\n0.068390 0.057434 0.554718\n0.086853 0.058289 0.555298\n0.107178 0.059265 0.555847\n0.129730 0.060242 0.556427\n0.154755 0.061249 0.556946\n0.182800 0.062286 0.557587\n0.213898 0.063324 0.558136\n0.247833 0.064453 0.558746\n0.284515 0.065552 0.559357\n0.323608 0.066681 0.559967\n0.364807 0.067841 0.560608\n0.407776 0.069000 0.561249\n0.452057 0.070221 0.561829\n0.496582 0.071472 0.562500\n0.538971 0.072693 0.563232\n0.578491 0.073944 0.563904\n0.615234 0.075256 0.564514\n0.649261 0.076599 0.565186\n0.680878 0.077942 0.565857\n0.710541 0.079315 0.566528\n0.738464 0.080658 0.567230\n0.764984 0.082062 0.567932\n0.790344 0.083527 0.568665\n0.814819 0.084961 0.569305\n0.838654 0.086456 0.570007\n0.862122 0.087952 0.570770\n0.885529 0.089417 0.571411\n0.909210 0.090973 0.572113\n0.933746 0.092529 0.572845\n0.959961 0.094055 0.573547\n0.036682 0.075928 0.552307\n0.052490 0.076904 0.552887\n0.069550 0.077911 0.553406\n0.088135 0.078949 0.553955\n0.108551 0.079987 0.554504\n0.131165 0.081085 0.555115\n0.156372 0.082153 0.555695\n0.184601 0.083344 0.556274\n0.215790 0.084503 0.556854\n0.249878 0.085693 0.557495\n0.286621 0.086914 0.558105\n0.325745 0.088135 0.558685\n0.367004 0.089417 0.559326\n0.410004 0.090729 0.559998\n0.454224 0.092041 0.560638\n0.498627 0.093384 0.561310\n0.540802 0.094757 0.561981\n0.580048 0.096161 0.562622\n0.616608 0.097626 0.563293\n0.650421 0.099030 0.563965\n0.681946 0.100494 0.564636\n0.711456 0.102020 0.565338\n0.739258 0.103516 0.566010\n0.765656 0.105042 0.566711\n0.790924 0.106598 0.567352\n0.815308 0.108185 0.568054\n0.839050 0.109802 0.568756\n0.862427 0.111420 0.569458\n0.885742 0.113068 0.570129\n0.909393 0.114716 0.570862\n0.933838 0.116394 0.571503\n0.959961 0.118134 0.572174\n0.037720 0.098328 0.550751\n0.053619 0.099457 0.551300\n0.070740 0.100586 0.551819\n0.089417 0.101685 0.552399\n0.109985 0.102936 0.552948\n0.132751 0.104065 0.553528\n0.158081 0.105347 0.554169\n0.186462 0.106598 0.554779\n0.217804 0.107910 0.555359\n0.251984 0.109253 0.555939\n0.288818 0.110596 0.556580\n0.328003 0.111969 0.557190\n0.369263 0.113403 0.557800\n0.412292 0.114807 0.558502\n0.456421 0.116272 0.559143\n0.500671 0.117737 0.559814\n0.542542 0.119293 0.560455\n0.581665 0.120819 0.561127\n0.618011 0.122375 0.561768\n0.651642 0.123962 0.562408\n0.682983 0.125580 0.563080\n0.712311 0.127258 0.563782\n0.740051 0.128876 0.564453\n0.766357 0.130615 0.565094\n0.791473 0.132294 0.565826\n0.815765 0.134033 0.566498\n0.839447 0.135803 0.567169\n0.862762 0.137604 0.567841\n0.885956 0.139343 0.568512\n0.909576 0.141174 0.569183\n0.933960 0.143005 0.569824\n0.959961 0.144867 0.570496\n0.038879 0.123322 0.548828\n0.054779 0.124573 0.549438\n0.072021 0.125854 0.549957\n0.090790 0.127136 0.550537\n0.111450 0.128479 0.551117\n0.134308 0.129791 0.551758\n0.159882 0.131195 0.552338\n0.188385 0.132660 0.552856\n0.219849 0.134064 0.553467\n0.254211 0.135529 0.554138\n0.291077 0.137054 0.554749\n0.330322 0.138580 0.555389\n0.371582 0.140137 0.556030\n0.414520 0.141754 0.556641\n0.458649 0.143341 0.557312\n0.502747 0.145020 0.557953\n0.544434 0.146698 0.558594\n0.583313 0.148407 0.559204\n0.619446 0.150146 0.559875\n0.652893 0.151886 0.560516\n0.684052 0.153656 0.561188\n0.713257 0.155487 0.561859\n0.740814 0.157318 0.562469\n0.767029 0.159180 0.563202\n0.792053 0.161072 0.563843\n0.816223 0.162933 0.564484\n0.839844 0.164917 0.565155\n0.863068 0.166809 0.565765\n0.886261 0.168823 0.566437\n0.909698 0.170837 0.567139\n0.933990 0.172791 0.567749\n0.959961 0.174835 0.568420\n0.039978 0.151428 0.546631\n0.056000 0.152832 0.547180\n0.073334 0.154266 0.547699\n0.092224 0.155731 0.548279\n0.113007 0.157227 0.548859\n0.136017 0.158722 0.549438\n0.161743 0.160309 0.550079\n0.190369 0.161896 0.550659\n0.221985 0.163483 0.551270\n0.256439 0.165161 0.551910\n0.293427 0.166840 0.552551\n0.332672 0.168518 0.553131\n0.373993 0.170258 0.553741\n0.416931 0.172058 0.554413\n0.461029 0.173889 0.555054\n0.504913 0.175720 0.555634\n0.546295 0.177551 0.556274\n0.584961 0.179443 0.556915\n0.620880 0.181366 0.557587\n0.654144 0.183289 0.558228\n0.685120 0.185242 0.558838\n0.714233 0.187256 0.559540\n0.741608 0.189270 0.560150\n0.767670 0.191284 0.560791\n0.792633 0.193390 0.561432\n0.816772 0.195435 0.562042\n0.840240 0.197540 0.562714\n0.863403 0.199677 0.563324\n0.886444 0.201843 0.563965\n0.909851 0.203979 0.564636\n0.934082 0.206177 0.565216\n0.959961 0.208374 0.565887\n0.041260 0.183228 0.543945\n0.057312 0.184814 0.544495\n0.074707 0.186340 0.545044\n0.093719 0.188019 0.545654\n0.114594 0.189728 0.546265\n0.137787 0.191406 0.546783\n0.163574 0.193146 0.547394\n0.192444 0.194916 0.548035\n0.224213 0.196716 0.548645\n0.258698 0.198547 0.549225\n0.295807 0.200409 0.549835\n0.335114 0.202271 0.550476\n0.376434 0.204224 0.551086\n0.419342 0.206146 0.551697\n0.463318 0.208160 0.552277\n0.507019 0.210144 0.552917\n0.548218 0.212158 0.553528\n0.586670 0.214203 0.554169\n0.622314 0.216339 0.554779\n0.655365 0.218384 0.555450\n0.686218 0.220551 0.556061\n0.715118 0.222687 0.556671\n0.742401 0.224854 0.557251\n0.768372 0.227081 0.557922\n0.793243 0.229248 0.558533\n0.817230 0.231506 0.559204\n0.840668 0.233734 0.559784\n0.863739 0.235992 0.560455\n0.886719 0.238281 0.561035\n0.910004 0.240570 0.561676\n0.934174 0.242859 0.562256\n0.959961 0.245209 0.562866\n0.042480 0.218933 0.540802\n0.058655 0.220703 0.541382\n0.076141 0.222412 0.541931\n0.095245 0.224243 0.542542\n0.116272 0.226074 0.543121\n0.139587 0.227905 0.543732\n0.165619 0.229828 0.544281\n0.194580 0.231750 0.544861\n0.226440 0.233704 0.545441\n0.261108 0.235687 0.546051\n0.298187 0.237701 0.546631\n0.337616 0.239746 0.547302\n0.378906 0.241791 0.547913\n0.421814 0.243866 0.548492\n0.465729 0.246002 0.549072\n0.509247 0.248169 0.549774\n0.550140 0.250275 0.550354\n0.588348 0.252502 0.550934\n0.623810 0.254730 0.551636\n0.656677 0.256927 0.552216\n0.687317 0.259186 0.552795\n0.716064 0.261505 0.553436\n0.743256 0.263763 0.554016\n0.769073 0.266083 0.554688\n0.793823 0.268341 0.555267\n0.817719 0.270721 0.555878\n0.841064 0.273071 0.556488\n0.864044 0.275421 0.557129\n0.886963 0.277802 0.557709\n0.910217 0.280212 0.558289\n0.934296 0.282562 0.558899\n0.959961 0.284973 0.559509\n0.043793 0.258331 0.537262\n0.060028 0.260193 0.537842\n0.077606 0.262085 0.538422\n0.096832 0.264038 0.538971\n0.118011 0.266022 0.539581\n0.141449 0.267975 0.540100\n0.167603 0.269989 0.540710\n0.196777 0.272064 0.541321\n0.228760 0.274109 0.541901\n0.263519 0.276245 0.542480\n0.300720 0.278351 0.543121\n0.340149 0.280518 0.543732\n0.381470 0.282715 0.544312\n0.424286 0.284882 0.544952\n0.468109 0.287140 0.545532\n0.511414 0.289368 0.546143\n0.552063 0.291626 0.546783\n0.590057 0.293915 0.547394\n0.625275 0.296265 0.547943\n0.657959 0.298553 0.548584\n0.688385 0.300903 0.549194\n0.717010 0.303223 0.549744\n0.744049 0.305634 0.550385\n0.769745 0.308014 0.551025\n0.794373 0.310394 0.551605\n0.818207 0.312805 0.552216\n0.841461 0.315247 0.552826\n0.864380 0.317657 0.553375\n0.887207 0.320068 0.553986\n0.910400 0.322540 0.554626\n0.934357 0.324921 0.555176\n0.959961 0.327423 0.555695\n0.045135 0.301025 0.533295\n0.061462 0.303040 0.533905\n0.079163 0.304993 0.534485\n0.098450 0.307037 0.535034\n0.119751 0.309143 0.535614\n0.143341 0.311188 0.536224\n0.169708 0.313324 0.536774\n0.199036 0.315491 0.537384\n0.231140 0.317657 0.537964\n0.265961 0.319824 0.538605\n0.303284 0.322021 0.539154\n0.342743 0.324280 0.539795\n0.384033 0.326538 0.540405\n0.426849 0.328827 0.540985\n0.470581 0.331116 0.541626\n0.513641 0.333405 0.542236\n0.554047 0.335693 0.542786\n0.591766 0.338074 0.543396\n0.626770 0.340454 0.544037\n0.659210 0.342834 0.544617\n0.689545 0.345215 0.545258\n0.717957 0.347595 0.545807\n0.744843 0.350037 0.546448\n0.770477 0.352478 0.547058\n0.794983 0.354858 0.547607\n0.818726 0.357300 0.548218\n0.841827 0.359802 0.548828\n0.864655 0.362183 0.549438\n0.887451 0.364624 0.550018\n0.910553 0.367126 0.550568\n0.934448 0.369537 0.551178\n0.959961 0.372040 0.551727\n0.046509 0.346649 0.529053\n0.062958 0.348724 0.529602\n0.080719 0.350800 0.530182\n0.100128 0.352875 0.530762\n0.121582 0.355072 0.531372\n0.145325 0.357178 0.531921\n0.171844 0.359344 0.532562\n0.201263 0.361542 0.533112\n0.233551 0.363770 0.533722\n0.268494 0.365997 0.534363\n0.305817 0.368195 0.534912\n0.345337 0.370514 0.535553\n0.386658 0.372864 0.536194\n0.429413 0.375092 0.536774\n0.473022 0.377472 0.537354\n0.515839 0.379822 0.537964\n0.556000 0.382172 0.538574\n0.593445 0.384491 0.539185\n0.628204 0.386871 0.539795\n0.660461 0.389252 0.540375\n0.690582 0.391693 0.541016\n0.718903 0.394043 0.541626\n0.745697 0.396484 0.542206\n0.771118 0.398926 0.542786\n0.795593 0.401276 0.543396\n0.819183 0.403809 0.543945\n0.842285 0.406158 0.544586\n0.864990 0.408539 0.545135\n0.887726 0.411011 0.545807\n0.910675 0.413422 0.546295\n0.934509 0.415833 0.546875\n0.959961 0.418274 0.547485\n0.047974 0.394684 0.524445\n0.064453 0.396790 0.525055\n0.082306 0.398834 0.525665\n0.101898 0.400970 0.526184\n0.123444 0.403168 0.526825\n0.147400 0.405304 0.527435\n0.174042 0.407532 0.528046\n0.203644 0.409729 0.528595\n0.236023 0.411957 0.529236\n0.271088 0.414246 0.529816\n0.308411 0.416473 0.530457\n0.347961 0.418793 0.531067\n0.389282 0.421082 0.531677\n0.432007 0.423370 0.532227\n0.475525 0.425659 0.532928\n0.518036 0.428009 0.533508\n0.557922 0.430298 0.534119\n0.595184 0.432678 0.534729\n0.629700 0.434998 0.535309\n0.661804 0.437408 0.535950\n0.691742 0.439758 0.536499\n0.719849 0.442078 0.537170\n0.746490 0.444458 0.537750\n0.771820 0.446869 0.538330\n0.796143 0.449188 0.538940\n0.819702 0.451599 0.539520\n0.842651 0.453949 0.540131\n0.865265 0.456329 0.540741\n0.887939 0.458649 0.541321\n0.910889 0.460999 0.541870\n0.934601 0.463348 0.542480\n0.959961 0.465729 0.543091\n0.049469 0.444519 0.519684\n0.066010 0.446655 0.520264\n0.083954 0.448730 0.520844\n0.103668 0.450867 0.521484\n0.125397 0.452972 0.522064\n0.149475 0.455170 0.522705\n0.176300 0.457306 0.523315\n0.205994 0.459503 0.523895\n0.238586 0.461700 0.524567\n0.273682 0.463959 0.525177\n0.311127 0.466125 0.525757\n0.350677 0.468353 0.526398\n0.391968 0.470581 0.527039\n0.434601 0.472809 0.527649\n0.478058 0.475098 0.528290\n0.520264 0.477325 0.528900\n0.559937 0.479614 0.529480\n0.596863 0.481903 0.530151\n0.631165 0.484131 0.530731\n0.663086 0.486389 0.531342\n0.692841 0.488678 0.532013\n0.720795 0.490906 0.532593\n0.747314 0.493164 0.533234\n0.772552 0.495453 0.533813\n0.796753 0.497681 0.534424\n0.820190 0.499969 0.535034\n0.843048 0.502197 0.535614\n0.865631 0.504364 0.536224\n0.888153 0.506653 0.536835\n0.911011 0.508789 0.537415\n0.934723 0.510986 0.537994\n0.959961 0.513214 0.538635\n0.050934 0.495331 0.514801\n0.067627 0.497375 0.515411\n0.085663 0.499359 0.516022\n0.105499 0.501465 0.516632\n0.127350 0.503448 0.517273\n0.151550 0.505493 0.517944\n0.178589 0.507599 0.518616\n0.208466 0.509613 0.519226\n0.241119 0.511719 0.519836\n0.276337 0.513824 0.520447\n0.313782 0.515869 0.521118\n0.353363 0.518005 0.521759\n0.394653 0.520050 0.522430\n0.437195 0.522125 0.523071\n0.480530 0.524170 0.523682\n0.522522 0.526184 0.524414\n0.561859 0.528290 0.524994\n0.598633 0.530365 0.525635\n0.632690 0.532379 0.526306\n0.664337 0.534424 0.526917\n0.693939 0.536469 0.527588\n0.721771 0.538452 0.528198\n0.748108 0.540527 0.528870\n0.773224 0.542511 0.529510\n0.797302 0.544464 0.530121\n0.820648 0.546509 0.530701\n0.843445 0.548431 0.531372\n0.865936 0.550385 0.532013\n0.888428 0.552307 0.532623\n0.911194 0.554199 0.533203\n0.934814 0.556183 0.533844\n0.959961 0.558014 0.534424\n0.052490 0.544647 0.510132\n0.069214 0.546478 0.510773\n0.087433 0.548248 0.511475\n0.107330 0.550018 0.512115\n0.129303 0.551880 0.512756\n0.153748 0.553680 0.513458\n0.180939 0.555511 0.514130\n0.210938 0.557343 0.514740\n0.243683 0.559174 0.515442\n0.279022 0.561035 0.516113\n0.316528 0.562836 0.516846\n0.356079 0.564667 0.517487\n0.397308 0.566498 0.518158\n0.439911 0.568329 0.518829\n0.483063 0.570099 0.519531\n0.524750 0.571869 0.520172\n0.563843 0.573761 0.520905\n0.600342 0.575531 0.521545\n0.634125 0.577332 0.522217\n0.665588 0.579102 0.522858\n0.695007 0.580872 0.523590\n0.722687 0.582611 0.524200\n0.748871 0.584442 0.524933\n0.773865 0.586121 0.525513\n0.797882 0.587891 0.526245\n0.821136 0.589600 0.526886\n0.843842 0.591278 0.527496\n0.866241 0.592987 0.528168\n0.888672 0.594696 0.528778\n0.911346 0.596283 0.529419\n0.934875 0.597992 0.530060\n0.959961 0.599609 0.530731\n0.054077 0.590179 0.505951\n0.070892 0.591797 0.506683\n0.089172 0.593384 0.507385\n0.109253 0.594971 0.508026\n0.131348 0.596558 0.508759\n0.155975 0.598145 0.509430\n0.183289 0.599792 0.510162\n0.213470 0.601349 0.510864\n0.246307 0.602966 0.511597\n0.281708 0.604584 0.512238\n0.319275 0.606171 0.512970\n0.358826 0.607727 0.513702\n0.400085 0.609344 0.514404\n0.442535 0.610901 0.515076\n0.485565 0.612488 0.515839\n0.526947 0.614044 0.516510\n0.565826 0.615601 0.517212\n0.601990 0.617188 0.517883\n0.635590 0.618713 0.518646\n0.666870 0.620270 0.519287\n0.696106 0.621826 0.520050\n0.723633 0.623322 0.520660\n0.749695 0.624817 0.521393\n0.774597 0.626373 0.522095\n0.798492 0.627838 0.522736\n0.821625 0.629333 0.523407\n0.844208 0.630737 0.524078\n0.866577 0.632233 0.524689\n0.888855 0.633667 0.525421\n0.911530 0.635040 0.526062\n0.934967 0.636505 0.526733\n0.959961 0.637909 0.527344\n0.055695 0.632172 0.502289\n0.072601 0.633484 0.502991\n0.090973 0.634918 0.503723\n0.111176 0.636292 0.504456\n0.133423 0.637634 0.505219\n0.158173 0.639038 0.505951\n0.185699 0.640442 0.506714\n0.216003 0.641785 0.507385\n0.248993 0.643188 0.508179\n0.284393 0.644592 0.508911\n0.322021 0.645905 0.509644\n0.361572 0.647308 0.510345\n0.402771 0.648651 0.511047\n0.445190 0.650024 0.511780\n0.488037 0.651367 0.512573\n0.529175 0.652679 0.513245\n0.567749 0.654083 0.513977\n0.603668 0.655396 0.514740\n0.637054 0.656738 0.515442\n0.668091 0.658020 0.516144\n0.697205 0.659363 0.516907\n0.724548 0.660614 0.517609\n0.750458 0.661926 0.518280\n0.775238 0.663208 0.518951\n0.799042 0.664459 0.519684\n0.822083 0.665741 0.520355\n0.844604 0.666992 0.520996\n0.866821 0.668213 0.521729\n0.889069 0.669464 0.522400\n0.911713 0.670654 0.523041\n0.935089 0.671844 0.523773\n0.959961 0.673004 0.524414\n0.057312 0.670502 0.499084\n0.074310 0.671692 0.499817\n0.092834 0.672913 0.500580\n0.113129 0.674072 0.501373\n0.135529 0.675262 0.502136\n0.160461 0.676453 0.502869\n0.188141 0.677612 0.503632\n0.218567 0.678802 0.504425\n0.251617 0.679962 0.505127\n0.287170 0.681183 0.505920\n0.324768 0.682343 0.506683\n0.364349 0.683502 0.507446\n0.405457 0.684662 0.508179\n0.447815 0.685822 0.508942\n0.490540 0.687012 0.509705\n0.531342 0.688110 0.510406\n0.569611 0.689301 0.511139\n0.605377 0.690460 0.511902\n0.638458 0.691589 0.512665\n0.669342 0.692688 0.513367\n0.698242 0.693817 0.514130\n0.725464 0.694916 0.514832\n0.751282 0.696014 0.515533\n0.775909 0.697083 0.516235\n0.799561 0.698181 0.516968\n0.822540 0.699249 0.517700\n0.844940 0.700317 0.518341\n0.867157 0.701355 0.519043\n0.889313 0.702393 0.519745\n0.911835 0.703400 0.520386\n0.935150 0.704437 0.521057\n0.959961 0.705414 0.521729\n0.058960 0.705780 0.496307\n0.076050 0.706757 0.497070\n0.094696 0.707794 0.497894\n0.115143 0.708832 0.498627\n0.137695 0.709808 0.499420\n0.162750 0.710846 0.500244\n0.190613 0.711884 0.500946\n0.221161 0.712860 0.501770\n0.254333 0.713867 0.502563\n0.289825 0.714905 0.503326\n0.327576 0.715912 0.504089\n0.367157 0.716919 0.504883\n0.408173 0.717896 0.505676\n0.450470 0.718903 0.506409\n0.492950 0.719910 0.507172\n0.533508 0.720886 0.507904\n0.571594 0.721863 0.508728\n0.606964 0.722839 0.509460\n0.639893 0.723755 0.510223\n0.670563 0.724731 0.510956\n0.699280 0.725677 0.511658\n0.726349 0.726624 0.512360\n0.752045 0.727570 0.513123\n0.776581 0.728485 0.513885\n0.800140 0.729401 0.514587\n0.822968 0.730347 0.515259\n0.845337 0.731171 0.515961\n0.867432 0.732086 0.516632\n0.889557 0.733002 0.517303\n0.911987 0.733826 0.518005\n0.935211 0.734680 0.518646\n0.959961 0.735535 0.519318\n0.060638 0.738403 0.493896\n0.077850 0.739227 0.494629\n0.096558 0.740143 0.495453\n0.117157 0.741028 0.496307\n0.139832 0.741852 0.497040\n0.165039 0.742767 0.497833\n0.193085 0.743622 0.498688\n0.223755 0.744476 0.499420\n0.257019 0.745331 0.500244\n0.292603 0.746185 0.501007\n0.330322 0.747070 0.501831\n0.369873 0.747925 0.502594\n0.410858 0.748779 0.503387\n0.453094 0.749603 0.504181\n0.495361 0.750488 0.505005\n0.535614 0.751282 0.505737\n0.573425 0.752106 0.506470\n0.608612 0.752960 0.507263\n0.641327 0.753754 0.507996\n0.671814 0.754578 0.508759\n0.700317 0.755402 0.509460\n0.727264 0.756165 0.510223\n0.752808 0.756989 0.510956\n0.777191 0.757751 0.511658\n0.800720 0.758514 0.512421\n0.823456 0.759308 0.513092\n0.845673 0.760040 0.513763\n0.867767 0.760803 0.514465\n0.889771 0.761566 0.515167\n0.912109 0.762238 0.515839\n0.935303 0.763000 0.516510\n0.959961 0.763672 0.517151\n0.062347 0.768829 0.491730\n0.079620 0.769562 0.492523\n0.098450 0.770294 0.493347\n0.119171 0.771057 0.494141\n0.141998 0.771790 0.494995\n0.167389 0.772552 0.495758\n0.195557 0.773254 0.496582\n0.226379 0.773987 0.497406\n0.259705 0.774750 0.498260\n0.295349 0.775452 0.498993\n0.333130 0.776154 0.499817\n0.372650 0.776917 0.500580\n0.413666 0.777649 0.501373\n0.455658 0.778381 0.502167\n0.497803 0.779114 0.502960\n0.537750 0.779785 0.503754\n0.575287 0.780518 0.504486\n0.610229 0.781219 0.505249\n0.642700 0.781860 0.506012\n0.672943 0.782593 0.506775\n0.701324 0.783264 0.507477\n0.728119 0.783905 0.508270\n0.753540 0.784607 0.509003\n0.777832 0.785248 0.509705\n0.801178 0.785889 0.510406\n0.823883 0.786530 0.511139\n0.846100 0.787201 0.511810\n0.868042 0.787811 0.512482\n0.889954 0.788452 0.513153\n0.912231 0.789032 0.513855\n0.935364 0.789703 0.514465\n0.959961 0.790253 0.515137\n0.064056 0.797424 0.489777\n0.081451 0.798004 0.490631\n0.100403 0.798676 0.491486\n0.121216 0.799286 0.492249\n0.144226 0.799896 0.493134\n0.169800 0.800568 0.493927\n0.197998 0.801178 0.494751\n0.228973 0.801819 0.495544\n0.262390 0.802460 0.496399\n0.298126 0.803040 0.497162\n0.335876 0.803680 0.498016\n0.375366 0.804260 0.498810\n0.416290 0.804901 0.499573\n0.458252 0.805481 0.500336\n0.500122 0.806091 0.501129\n0.539825 0.806671 0.501892\n0.577057 0.807281 0.502686\n0.611786 0.807861 0.503448\n0.644073 0.808441 0.504150\n0.674133 0.809052 0.504944\n0.702332 0.809601 0.505707\n0.729004 0.810150 0.506439\n0.754272 0.810730 0.507172\n0.778412 0.811279 0.507874\n0.801727 0.811829 0.508545\n0.824280 0.812347 0.509308\n0.846405 0.812866 0.509949\n0.868286 0.813446 0.510651\n0.890137 0.813934 0.511292\n0.912384 0.814423 0.511993\n0.935425 0.814972 0.512573\n0.959961 0.815460 0.513214\n0.065796 0.824493 0.488068\n0.083252 0.825043 0.488892\n0.102325 0.825562 0.489716\n0.123291 0.826111 0.490570\n0.146454 0.826630 0.491394\n0.172150 0.827179 0.492249\n0.200562 0.827667 0.493042\n0.231567 0.828247 0.493866\n0.265167 0.828735 0.494720\n0.300873 0.829224 0.495483\n0.338562 0.829742 0.496307\n0.378082 0.830261 0.497101\n0.418915 0.830780 0.497864\n0.460815 0.831299 0.498688\n0.502441 0.831787 0.499481\n0.541901 0.832275 0.500244\n0.578857 0.832794 0.501007\n0.613342 0.833282 0.501770\n0.645386 0.833771 0.502563\n0.675262 0.834259 0.503296\n0.703308 0.834686 0.503967\n0.729828 0.835175 0.504700\n0.754974 0.835663 0.505432\n0.779053 0.836090 0.506195\n0.802246 0.836578 0.506897\n0.824738 0.837006 0.507599\n0.846771 0.837463 0.508240\n0.868561 0.837891 0.508881\n0.890350 0.838318 0.509521\n0.912537 0.838745 0.510193\n0.935486 0.839142 0.510803\n0.959961 0.839539 0.511444\n0.067596 0.850433 0.486511\n0.085114 0.850891 0.487335\n0.104309 0.851318 0.488190\n0.125397 0.851746 0.488983\n0.148682 0.852203 0.489838\n0.174530 0.852631 0.490692\n0.203033 0.853058 0.491486\n0.234253 0.853516 0.492310\n0.267822 0.853912 0.493164\n0.303558 0.854370 0.493958\n0.341339 0.854797 0.494751\n0.380798 0.855194 0.495544\n0.421570 0.855652 0.496368\n0.463318 0.856049 0.497162\n0.504761 0.856476 0.497894\n0.543915 0.856873 0.498688\n0.580627 0.857239 0.499451\n0.614838 0.857697 0.500183\n0.646667 0.858063 0.500916\n0.676392 0.858459 0.501678\n0.704254 0.858887 0.502411\n0.730621 0.859253 0.503113\n0.755676 0.859619 0.503845\n0.779602 0.859985 0.504547\n0.802704 0.860382 0.505219\n0.825104 0.860718 0.505859\n0.847046 0.861084 0.506531\n0.868835 0.861450 0.507233\n0.890564 0.861816 0.507812\n0.912628 0.862152 0.508453\n0.935547 0.862457 0.509064\n0.959961 0.862823 0.509674\n0.069275 0.875488 0.484985\n0.086975 0.875854 0.485809\n0.106293 0.876190 0.486694\n0.127441 0.876587 0.487518\n0.150909 0.876892 0.488403\n0.176910 0.877258 0.489197\n0.205566 0.877625 0.490021\n0.236847 0.877991 0.490845\n0.270477 0.878326 0.491669\n0.306244 0.878632 0.492493\n0.344055 0.879028 0.493317\n0.383453 0.879333 0.494110\n0.424164 0.879700 0.494843\n0.465759 0.880035 0.495667\n0.506989 0.880371 0.496399\n0.545898 0.880707 0.497162\n0.582336 0.881042 0.497894\n0.616333 0.881348 0.498688\n0.647919 0.881653 0.499420\n0.677460 0.881989 0.500153\n0.705200 0.882294 0.500854\n0.731415 0.882629 0.501587\n0.756348 0.882935 0.502289\n0.780212 0.883209 0.502930\n0.803192 0.883514 0.503632\n0.825531 0.883820 0.504272\n0.847412 0.884094 0.504913\n0.869049 0.884369 0.505554\n0.890778 0.884644 0.506165\n0.912781 0.884918 0.506805\n0.935577 0.885162 0.507416\n0.959961 0.885437 0.507965\n0.071075 0.899963 0.483582\n0.088837 0.900269 0.484406\n0.108215 0.900513 0.485291\n0.129578 0.900818 0.486084\n0.153137 0.901093 0.486969\n0.179321 0.901337 0.487823\n0.208130 0.901642 0.488617\n0.239471 0.901917 0.489441\n0.273193 0.902191 0.490295\n0.308960 0.902466 0.491058\n0.346741 0.902740 0.491852\n0.386078 0.902985 0.492615\n0.426727 0.903259 0.493408\n0.468231 0.903534 0.494202\n0.509155 0.903778 0.494934\n0.547760 0.904053 0.495667\n0.584015 0.904297 0.496460\n0.617767 0.904572 0.497192\n0.649200 0.904816 0.497925\n0.678528 0.905060 0.498657\n0.706116 0.905304 0.499329\n0.732208 0.905548 0.500031\n0.756989 0.905762 0.500702\n0.780762 0.906006 0.501404\n0.803680 0.906250 0.502014\n0.825897 0.906433 0.502655\n0.847717 0.906677 0.503296\n0.869324 0.906891 0.503906\n0.890900 0.907104 0.504517\n0.912903 0.907318 0.505096\n0.935699 0.907532 0.505707\n0.959961 0.907684 0.506226\n0.072815 0.924164 0.482178\n0.090698 0.924347 0.483032\n0.110199 0.924561 0.483887\n0.131653 0.924805 0.484680\n0.155396 0.925018 0.485565\n0.181702 0.925232 0.486389\n0.210602 0.925415 0.487213\n0.242004 0.925629 0.488068\n0.275757 0.925842 0.488831\n0.311646 0.926025 0.489624\n0.349365 0.926208 0.490417\n0.388702 0.926453 0.491180\n0.429230 0.926666 0.491943\n0.470612 0.926880 0.492706\n0.511322 0.927032 0.493500\n0.549683 0.927216 0.494232\n0.585663 0.927429 0.494995\n0.619202 0.927612 0.495697\n0.650360 0.927795 0.496399\n0.679565 0.927979 0.497101\n0.706970 0.928131 0.497803\n0.732941 0.928314 0.498444\n0.757660 0.928497 0.499115\n0.781311 0.928680 0.499786\n0.804108 0.928833 0.500427\n0.826263 0.928986 0.501038\n0.848022 0.929169 0.501648\n0.869537 0.929352 0.502258\n0.891083 0.929474 0.502838\n0.913025 0.929596 0.503387\n0.935730 0.929779 0.503937\n0.959961 0.929901 0.504517\n0.074615 0.948486 0.480743\n0.092529 0.948669 0.481567\n0.112213 0.948761 0.482452\n0.133728 0.948944 0.483276\n0.157623 0.949066 0.484100\n0.184021 0.949219 0.484924\n0.213074 0.949371 0.485748\n0.244568 0.949554 0.486542\n0.278381 0.949646 0.487335\n0.314270 0.949799 0.488129\n0.351929 0.949921 0.488892\n0.391144 0.950073 0.489655\n0.431732 0.950165 0.490417\n0.472961 0.950317 0.491211\n0.513428 0.950439 0.491974\n0.551483 0.950592 0.492706\n0.587219 0.950684 0.493378\n0.620544 0.950836 0.494080\n0.651550 0.950958 0.494812\n0.680573 0.951080 0.495453\n0.707855 0.951202 0.496155\n0.733643 0.951324 0.496765\n0.758270 0.951447 0.497467\n0.781799 0.951569 0.498077\n0.804535 0.951691 0.498718\n0.826630 0.951752 0.499298\n0.848297 0.951843 0.499847\n0.869751 0.951965 0.500427\n0.891266 0.952057 0.501038\n0.913116 0.952148 0.501587\n0.935822 0.952271 0.502106\n0.959961 0.952362 0.502594\n0.076385 0.973511 0.479187\n0.094421 0.973572 0.480042\n0.114136 0.973663 0.480896\n0.135834 0.973785 0.481689\n0.159851 0.973846 0.482544\n0.186401 0.973938 0.483337\n0.215485 0.973969 0.484131\n0.247070 0.974091 0.484955\n0.280884 0.974121 0.485718\n0.316803 0.974182 0.486511\n0.354492 0.974304 0.487274\n0.393707 0.974335 0.488068\n0.434143 0.974396 0.488831\n0.475250 0.974457 0.489563\n0.515411 0.974518 0.490234\n0.553253 0.974609 0.490997\n0.588745 0.974670 0.491730\n0.621857 0.974731 0.492401\n0.652649 0.974762 0.493042\n0.681519 0.974854 0.493683\n0.708618 0.974915 0.494354\n0.734375 0.974976 0.495056\n0.758820 0.975037 0.495667\n0.782318 0.975067 0.496216\n0.804962 0.975128 0.496826\n0.826965 0.975189 0.497437\n0.848572 0.975220 0.497986\n0.869965 0.975281 0.498566\n0.891418 0.975311 0.499084\n0.913239 0.975403 0.499603\n0.935852 0.975403 0.500122\n0.959961 0.975464 0.500549\n0.078125 1.000000 0.477417\n0.096252 1.000000 0.478271\n0.116119 1.000000 0.479126\n0.137909 1.000000 0.479950\n0.162079 1.000000 0.480743\n0.188721 1.000000 0.481537\n0.217987 1.000000 0.482361\n0.249603 1.000000 0.483154\n0.283478 1.000000 0.483917\n0.319366 1.000000 0.484711\n0.356995 1.000000 0.485504\n0.396149 1.000000 0.486176\n0.436462 1.000000 0.486938\n0.477448 1.000000 0.487671\n0.517456 1.000000 0.488403\n0.554993 1.000000 0.489105\n0.590240 1.000000 0.489777\n0.623108 1.000000 0.490417\n0.653778 1.000000 0.491089\n0.682465 1.000000 0.491730\n0.709412 1.000000 0.492371\n0.735016 1.000000 0.492981\n0.759399 1.000000 0.493561\n0.782806 1.000000 0.494141\n0.805328 1.000000 0.494781\n0.827301 1.000000 0.495331\n0.848816 1.000000 0.495880\n0.870148 1.000000 0.496368\n0.891541 1.000000 0.496887\n0.913361 1.000000 0.497375\n0.935883 1.000000 0.497833\n0.959961 1.000000 0.498291\n0.033203 0.003540 0.598145\n0.048737 0.004242 0.598511\n0.065491 0.004913 0.598907\n0.083740 0.005646 0.599304\n0.103760 0.006378 0.599701\n0.125885 0.007141 0.600159\n0.150574 0.007935 0.600586\n0.178223 0.008759 0.601044\n0.208923 0.009613 0.601471\n0.242554 0.010468 0.601929\n0.278992 0.011353 0.602478\n0.317902 0.012268 0.602966\n0.358978 0.013184 0.603424\n0.401947 0.014130 0.603912\n0.446350 0.015106 0.604462\n0.491211 0.016113 0.604950\n0.534119 0.017090 0.605499\n0.574219 0.018158 0.606079\n0.611511 0.019196 0.606598\n0.645996 0.020264 0.607178\n0.678101 0.021362 0.607666\n0.708069 0.022461 0.608276\n0.736389 0.023621 0.608856\n0.763184 0.024750 0.609436\n0.788818 0.025879 0.609985\n0.813538 0.027100 0.610626\n0.837616 0.028290 0.611206\n0.861267 0.029510 0.611755\n0.884888 0.030731 0.612366\n0.908813 0.032013 0.613007\n0.933502 0.033295 0.613586\n0.959961 0.034576 0.614227\n0.034027 0.019928 0.596954\n0.049652 0.020691 0.597351\n0.066437 0.021393 0.597748\n0.084778 0.022217 0.598175\n0.104919 0.023010 0.598602\n0.127197 0.023834 0.599091\n0.152008 0.024689 0.599518\n0.179749 0.025543 0.599976\n0.210602 0.026459 0.600433\n0.244385 0.027405 0.600922\n0.280853 0.028320 0.601410\n0.319855 0.029297 0.601929\n0.360992 0.030273 0.602478\n0.403961 0.031311 0.602966\n0.448273 0.032349 0.603485\n0.493073 0.033386 0.604034\n0.535797 0.034454 0.604584\n0.575684 0.035583 0.605133\n0.612793 0.036682 0.605652\n0.647125 0.037811 0.606262\n0.679047 0.039001 0.606812\n0.708923 0.040131 0.607391\n0.737122 0.041382 0.607971\n0.763794 0.042572 0.608551\n0.789337 0.043793 0.609161\n0.813995 0.045074 0.609741\n0.838013 0.046356 0.610352\n0.861572 0.047607 0.610931\n0.885071 0.048920 0.611542\n0.908966 0.050262 0.612152\n0.933594 0.051605 0.612762\n0.959961 0.052979 0.613373\n0.034882 0.037292 0.595673\n0.050598 0.038086 0.596130\n0.067505 0.038910 0.596527\n0.085907 0.039795 0.596985\n0.106140 0.040649 0.597412\n0.128540 0.041534 0.597870\n0.153503 0.042480 0.598358\n0.181396 0.043396 0.598846\n0.212402 0.044373 0.599335\n0.246246 0.045380 0.599823\n0.282837 0.046387 0.600372\n0.321869 0.047455 0.600830\n0.363098 0.048523 0.601379\n0.405975 0.049622 0.601898\n0.450348 0.050720 0.602448\n0.494995 0.051880 0.602997\n0.537476 0.053009 0.603516\n0.577240 0.054230 0.604126\n0.614105 0.055389 0.604645\n0.648315 0.056641 0.605255\n0.680084 0.057892 0.605804\n0.709778 0.059143 0.606354\n0.737854 0.060425 0.606964\n0.764435 0.061707 0.607544\n0.789917 0.063049 0.608154\n0.814453 0.064392 0.608734\n0.838348 0.065765 0.609344\n0.861877 0.067139 0.609894\n0.885345 0.068573 0.610504\n0.909119 0.069977 0.611053\n0.933685 0.071411 0.611664\n0.959961 0.072876 0.612305\n0.035858 0.055939 0.594269\n0.051636 0.056854 0.594757\n0.068604 0.057739 0.595184\n0.087067 0.058685 0.595642\n0.107422 0.059601 0.596069\n0.129944 0.060608 0.596558\n0.155090 0.061615 0.597107\n0.183105 0.062653 0.597565\n0.214233 0.063751 0.598114\n0.248260 0.064850 0.598572\n0.284943 0.065948 0.599060\n0.323975 0.067108 0.599609\n0.365204 0.068268 0.600159\n0.408173 0.069427 0.600708\n0.452484 0.070648 0.601227\n0.496979 0.071899 0.601807\n0.539276 0.073151 0.602356\n0.578796 0.074463 0.602875\n0.615509 0.075745 0.603455\n0.649475 0.077087 0.604034\n0.681061 0.078430 0.604614\n0.710693 0.079803 0.605164\n0.738617 0.081207 0.605774\n0.765076 0.082642 0.606354\n0.790466 0.084015 0.606903\n0.814911 0.085510 0.607513\n0.838745 0.086975 0.608093\n0.862183 0.088470 0.608643\n0.885559 0.089996 0.609253\n0.909271 0.091522 0.609833\n0.933746 0.093079 0.610443\n0.959961 0.094666 0.611023\n0.036896 0.076294 0.592743\n0.052673 0.077271 0.593231\n0.069733 0.078278 0.593658\n0.088348 0.079315 0.594116\n0.108795 0.080353 0.594635\n0.131439 0.081482 0.595093\n0.156738 0.082611 0.595612\n0.184937 0.083740 0.596100\n0.216187 0.084930 0.596619\n0.250305 0.086151 0.597137\n0.287048 0.087341 0.597656\n0.326172 0.088623 0.598206\n0.367432 0.089905 0.598694\n0.410431 0.091187 0.599304\n0.454620 0.092529 0.599823\n0.498993 0.093872 0.600311\n0.541077 0.095276 0.600922\n0.580383 0.096710 0.601410\n0.616852 0.098083 0.602051\n0.650696 0.099579 0.602600\n0.682129 0.101044 0.603180\n0.711578 0.102539 0.603729\n0.739410 0.104065 0.604279\n0.765747 0.105652 0.604858\n0.791016 0.107178 0.605469\n0.815430 0.108795 0.606018\n0.839142 0.110382 0.606567\n0.862488 0.112030 0.607147\n0.885773 0.113678 0.607758\n0.909424 0.115326 0.608246\n0.933868 0.117035 0.608887\n0.959961 0.118774 0.609467\n0.037933 0.098724 0.590973\n0.053802 0.099823 0.591431\n0.070984 0.100983 0.591919\n0.089661 0.102142 0.592407\n0.110229 0.103333 0.592834\n0.133026 0.104553 0.593384\n0.158417 0.105804 0.593872\n0.186798 0.107056 0.594391\n0.218201 0.108429 0.594940\n0.252411 0.109741 0.595398\n0.289246 0.111084 0.595917\n0.328461 0.112488 0.596466\n0.369751 0.113892 0.597015\n0.412689 0.115326 0.597534\n0.456848 0.116821 0.598083\n0.501007 0.118286 0.598633\n0.542969 0.119843 0.599152\n0.582001 0.121399 0.599731\n0.618286 0.122955 0.600281\n0.651886 0.124573 0.600861\n0.683197 0.126190 0.601410\n0.712494 0.127808 0.601959\n0.740143 0.129517 0.602539\n0.766449 0.131226 0.603088\n0.791595 0.132904 0.603607\n0.815857 0.134674 0.604218\n0.839539 0.136414 0.604736\n0.862823 0.138214 0.605286\n0.886017 0.140015 0.605835\n0.909576 0.141846 0.606384\n0.933960 0.143707 0.606995\n0.959961 0.145599 0.607574\n0.039062 0.123779 0.588959\n0.055023 0.125000 0.589386\n0.072235 0.126282 0.589874\n0.091064 0.127625 0.590332\n0.111725 0.128967 0.590851\n0.134674 0.130310 0.591339\n0.160217 0.131714 0.591797\n0.188751 0.133118 0.592316\n0.220245 0.134583 0.592865\n0.254578 0.136108 0.593414\n0.291504 0.137604 0.593872\n0.330750 0.139160 0.594421\n0.372040 0.140717 0.594910\n0.415009 0.142334 0.595459\n0.459137 0.143982 0.596008\n0.503143 0.145599 0.596527\n0.544769 0.147278 0.597107\n0.583618 0.149048 0.597656\n0.619720 0.150757 0.598175\n0.653107 0.152557 0.598755\n0.684265 0.154358 0.599243\n0.713440 0.156128 0.599823\n0.740936 0.157990 0.600372\n0.767151 0.159821 0.600922\n0.792175 0.161774 0.601440\n0.816345 0.163666 0.601929\n0.839935 0.165588 0.602478\n0.863098 0.167542 0.603058\n0.886292 0.169556 0.603577\n0.909760 0.171539 0.604126\n0.934021 0.173615 0.604675\n0.959961 0.175629 0.605255\n0.040222 0.151978 0.586517\n0.056244 0.153320 0.586975\n0.073578 0.154816 0.587463\n0.092499 0.156281 0.587982\n0.113312 0.157745 0.588409\n0.136353 0.159302 0.588928\n0.162079 0.160919 0.589386\n0.190765 0.162476 0.589966\n0.222412 0.164124 0.590424\n0.256836 0.165741 0.590973\n0.293823 0.167419 0.591431\n0.333160 0.169220 0.591949\n0.374451 0.170929 0.592499\n0.417389 0.172699 0.593018\n0.461426 0.174530 0.593536\n0.505249 0.176361 0.594055\n0.546661 0.178253 0.594604\n0.585297 0.180176 0.595093\n0.621124 0.182068 0.595642\n0.654388 0.184021 0.596191\n0.685303 0.186005 0.596710\n0.714386 0.187958 0.597198\n0.741760 0.190002 0.597717\n0.767822 0.192047 0.598236\n0.792755 0.194153 0.598785\n0.816833 0.196228 0.599304\n0.840332 0.198303 0.599823\n0.863434 0.200439 0.600372\n0.886505 0.202637 0.600922\n0.909882 0.204773 0.601410\n0.934113 0.206970 0.601868\n0.959961 0.209229 0.602448\n0.041443 0.183807 0.583710\n0.057556 0.185364 0.584137\n0.074982 0.187012 0.584595\n0.093994 0.188690 0.585083\n0.114899 0.190308 0.585541\n0.138123 0.192047 0.586090\n0.164001 0.193848 0.586548\n0.192810 0.195587 0.587067\n0.224640 0.197418 0.587555\n0.259155 0.199219 0.588043\n0.296234 0.201111 0.588531\n0.335571 0.203033 0.589081\n0.376831 0.204895 0.589569\n0.419769 0.206879 0.590118\n0.463837 0.208923 0.590576\n0.507416 0.210907 0.591034\n0.548553 0.212952 0.591614\n0.586945 0.215027 0.592102\n0.622589 0.217041 0.592590\n0.655670 0.219208 0.593140\n0.686432 0.221313 0.593628\n0.715271 0.223480 0.594147\n0.742554 0.225677 0.594666\n0.768524 0.227814 0.595154\n0.793365 0.230072 0.595703\n0.817322 0.232330 0.596191\n0.840729 0.234558 0.596741\n0.863770 0.236847 0.597198\n0.886749 0.239105 0.597687\n0.910065 0.241394 0.598206\n0.934174 0.243713 0.598694\n0.959961 0.246033 0.599182\n0.042725 0.219604 0.580353\n0.058899 0.221313 0.580841\n0.076416 0.223053 0.581299\n0.095551 0.224915 0.581818\n0.116608 0.226746 0.582245\n0.139923 0.228607 0.582672\n0.165955 0.230469 0.583160\n0.195007 0.232422 0.583710\n0.226898 0.234436 0.584198\n0.261566 0.236389 0.584686\n0.298706 0.238434 0.585205\n0.338104 0.240509 0.585663\n0.379364 0.242554 0.586151\n0.422302 0.244659 0.586670\n0.466187 0.246826 0.587219\n0.509613 0.248932 0.587677\n0.550568 0.251129 0.588165\n0.588623 0.253387 0.588684\n0.624054 0.255524 0.589172\n0.656891 0.257782 0.589661\n0.687469 0.260010 0.590149\n0.716248 0.262299 0.590698\n0.743378 0.264587 0.591187\n0.769165 0.266907 0.591644\n0.793915 0.269226 0.592194\n0.817841 0.271606 0.592682\n0.841095 0.273926 0.593140\n0.864075 0.276306 0.593658\n0.887024 0.278687 0.594116\n0.910248 0.281036 0.594635\n0.934296 0.283539 0.595093\n0.959961 0.285858 0.595612\n0.044067 0.259033 0.576599\n0.060303 0.260895 0.577087\n0.077881 0.262787 0.577576\n0.097137 0.264740 0.577972\n0.118286 0.266693 0.578461\n0.141785 0.268738 0.578979\n0.167969 0.270721 0.579468\n0.197174 0.272858 0.579956\n0.229248 0.274902 0.580414\n0.263947 0.277008 0.580872\n0.301147 0.279175 0.581390\n0.340637 0.281342 0.581879\n0.381927 0.283478 0.582428\n0.424744 0.285736 0.582855\n0.468628 0.287964 0.583374\n0.511810 0.290222 0.583862\n0.552429 0.292480 0.584351\n0.590302 0.294708 0.584839\n0.625519 0.297089 0.585358\n0.658142 0.299438 0.585846\n0.688629 0.301727 0.586334\n0.717194 0.304138 0.586823\n0.744171 0.306549 0.587280\n0.769867 0.308868 0.587799\n0.794495 0.311279 0.588257\n0.818298 0.313721 0.588745\n0.841522 0.316101 0.589233\n0.864441 0.318542 0.589722\n0.887238 0.320953 0.590210\n0.910400 0.323425 0.590668\n0.934357 0.325867 0.591156\n0.959961 0.328308 0.591644\n0.045410 0.301788 0.572479\n0.061768 0.303711 0.572876\n0.079407 0.305786 0.573395\n0.098785 0.307770 0.573853\n0.120087 0.309875 0.574371\n0.143768 0.311981 0.574860\n0.170105 0.314117 0.575256\n0.199432 0.316254 0.575775\n0.231598 0.318481 0.576263\n0.266418 0.320618 0.576721\n0.303741 0.322845 0.577240\n0.343201 0.325165 0.577728\n0.384491 0.327362 0.578247\n0.427338 0.329651 0.578735\n0.471039 0.331909 0.579193\n0.514008 0.334259 0.579681\n0.554382 0.336578 0.580170\n0.592072 0.338928 0.580688\n0.627045 0.341339 0.581177\n0.659485 0.343719 0.581635\n0.689728 0.346100 0.582153\n0.718140 0.348511 0.582642\n0.744995 0.350952 0.583099\n0.770599 0.353333 0.583557\n0.795135 0.355743 0.584076\n0.818817 0.358215 0.584564\n0.841888 0.360626 0.585052\n0.864746 0.363098 0.585510\n0.887482 0.365509 0.585968\n0.910583 0.367981 0.586426\n0.934479 0.370483 0.586884\n0.959961 0.372864 0.587372\n0.046814 0.347443 0.567932\n0.063232 0.349487 0.568420\n0.080994 0.351532 0.568939\n0.100464 0.353607 0.569397\n0.121918 0.355774 0.569855\n0.145782 0.357971 0.570312\n0.172272 0.360138 0.570801\n0.201721 0.362335 0.571320\n0.234039 0.364594 0.571808\n0.268921 0.366791 0.572296\n0.306335 0.369080 0.572784\n0.345825 0.371399 0.573273\n0.387146 0.373657 0.573792\n0.429901 0.376007 0.574249\n0.473511 0.378265 0.574707\n0.516266 0.380676 0.575256\n0.556366 0.383026 0.575714\n0.593781 0.385345 0.576202\n0.628510 0.387787 0.576721\n0.660767 0.390228 0.577209\n0.690857 0.392517 0.577667\n0.719086 0.394958 0.578156\n0.745850 0.397369 0.578644\n0.771271 0.399780 0.579163\n0.795685 0.402222 0.579620\n0.819275 0.404572 0.580078\n0.842346 0.407074 0.580536\n0.865051 0.409454 0.581024\n0.887756 0.411865 0.581482\n0.910706 0.414307 0.581940\n0.934540 0.416779 0.582428\n0.959961 0.419128 0.582916\n0.048248 0.395447 0.563171\n0.064758 0.397552 0.563629\n0.082611 0.399658 0.564117\n0.102203 0.401764 0.564606\n0.123810 0.403961 0.565125\n0.147766 0.406158 0.565582\n0.174469 0.408325 0.566101\n0.204102 0.410553 0.566589\n0.236542 0.412781 0.567108\n0.271515 0.415009 0.567596\n0.308960 0.417328 0.568054\n0.348450 0.419556 0.568512\n0.389740 0.421875 0.569061\n0.432495 0.424225 0.569550\n0.475983 0.426514 0.570038\n0.518433 0.428833 0.570557\n0.558289 0.431213 0.571045\n0.595459 0.433502 0.571564\n0.630005 0.435883 0.572021\n0.661987 0.438263 0.572510\n0.691925 0.440582 0.572998\n0.720032 0.442963 0.573517\n0.746643 0.445343 0.574036\n0.771942 0.447723 0.574432\n0.796265 0.450104 0.574951\n0.819763 0.452393 0.575439\n0.842712 0.454803 0.575867\n0.865356 0.457214 0.576355\n0.887939 0.459534 0.576843\n0.910889 0.461884 0.577301\n0.934662 0.464264 0.577789\n0.959961 0.466522 0.578217\n0.049713 0.445282 0.558167\n0.066254 0.447357 0.558685\n0.084290 0.449524 0.559174\n0.104004 0.451599 0.559662\n0.125732 0.453766 0.560181\n0.149841 0.455933 0.560699\n0.176697 0.458099 0.561157\n0.206512 0.460327 0.561707\n0.239044 0.462555 0.562164\n0.274139 0.464691 0.562653\n0.311646 0.466949 0.563171\n0.351105 0.469147 0.563660\n0.392426 0.471436 0.564209\n0.435089 0.473663 0.564697\n0.478455 0.475891 0.565216\n0.520691 0.478149 0.565735\n0.560303 0.480438 0.566223\n0.597198 0.482666 0.566711\n0.631439 0.484955 0.567230\n0.663269 0.487244 0.567749\n0.693054 0.489502 0.568268\n0.721008 0.491760 0.568695\n0.747467 0.493988 0.569244\n0.772675 0.496277 0.569702\n0.796844 0.498566 0.570190\n0.820282 0.500732 0.570679\n0.843140 0.503021 0.571167\n0.865692 0.505249 0.571686\n0.888214 0.507416 0.572113\n0.911041 0.509613 0.572632\n0.934723 0.511841 0.573090\n0.959961 0.513947 0.573578\n0.051208 0.496033 0.553070\n0.067871 0.498077 0.553619\n0.085999 0.500122 0.554138\n0.105804 0.502197 0.554657\n0.127686 0.504242 0.555115\n0.151978 0.506348 0.555695\n0.178986 0.508362 0.556152\n0.208954 0.510406 0.556702\n0.241638 0.512512 0.557251\n0.276825 0.514526 0.557770\n0.314301 0.516632 0.558289\n0.353821 0.518707 0.558807\n0.395111 0.520752 0.559387\n0.437805 0.522919 0.559906\n0.480988 0.524902 0.560394\n0.522919 0.526978 0.560944\n0.562286 0.529083 0.561462\n0.598877 0.531128 0.561981\n0.632965 0.533142 0.562531\n0.664581 0.535187 0.563049\n0.694153 0.537170 0.563599\n0.721954 0.539246 0.564117\n0.748260 0.541229 0.564636\n0.773315 0.543213 0.565125\n0.797424 0.545227 0.565704\n0.820740 0.547150 0.566193\n0.843536 0.549133 0.566681\n0.865997 0.551117 0.567200\n0.888458 0.553009 0.567688\n0.911224 0.554962 0.568237\n0.934814 0.556854 0.568726\n0.959961 0.558685 0.569214\n0.052765 0.545288 0.548248\n0.069550 0.547089 0.548737\n0.087738 0.548920 0.549286\n0.107666 0.550690 0.549835\n0.129730 0.552521 0.550385\n0.154144 0.554413 0.550964\n0.181366 0.556213 0.551544\n0.211426 0.558014 0.552094\n0.244232 0.559875 0.552673\n0.279449 0.561646 0.553253\n0.317047 0.563507 0.553741\n0.356567 0.565338 0.554382\n0.397797 0.567139 0.554871\n0.440399 0.569031 0.555450\n0.483551 0.570770 0.556000\n0.525177 0.572540 0.556580\n0.564209 0.574402 0.557159\n0.600616 0.576141 0.557678\n0.634430 0.577972 0.558289\n0.665833 0.579803 0.558807\n0.695221 0.581512 0.559357\n0.722870 0.583282 0.559937\n0.749023 0.585022 0.560486\n0.774017 0.586761 0.561035\n0.798004 0.588470 0.561554\n0.821259 0.590179 0.562042\n0.843903 0.591919 0.562622\n0.866302 0.593597 0.563171\n0.888702 0.595276 0.563721\n0.911377 0.596924 0.564240\n0.934875 0.598602 0.564728\n0.959961 0.600159 0.565277\n0.054382 0.590759 0.543854\n0.071228 0.592377 0.544434\n0.089539 0.593964 0.545013\n0.109589 0.595551 0.545593\n0.131744 0.597168 0.546173\n0.156372 0.598755 0.546814\n0.183746 0.600342 0.547394\n0.213928 0.601959 0.547943\n0.246826 0.603516 0.548492\n0.282135 0.605133 0.549133\n0.319794 0.606720 0.549744\n0.359344 0.608307 0.550323\n0.400574 0.609894 0.550903\n0.443024 0.611481 0.551514\n0.485992 0.613037 0.552124\n0.527344 0.614655 0.552643\n0.566193 0.616211 0.553253\n0.602295 0.617767 0.553833\n0.635864 0.619293 0.554443\n0.667114 0.620819 0.555023\n0.696289 0.622375 0.555603\n0.723816 0.623871 0.556213\n0.749847 0.625397 0.556732\n0.774719 0.626862 0.557281\n0.798615 0.628418 0.557861\n0.821686 0.629822 0.558411\n0.844299 0.631287 0.558990\n0.866608 0.632782 0.559570\n0.888916 0.634186 0.560089\n0.911560 0.635590 0.560669\n0.934967 0.637024 0.561188\n0.959961 0.638367 0.561737\n0.055969 0.632629 0.539978\n0.072876 0.634003 0.540588\n0.091339 0.635437 0.541229\n0.111542 0.636780 0.541840\n0.133850 0.638153 0.542450\n0.158600 0.639557 0.543060\n0.186127 0.640930 0.543640\n0.216522 0.642303 0.544281\n0.249451 0.643646 0.544922\n0.284943 0.645081 0.545502\n0.322540 0.646423 0.546112\n0.362091 0.647797 0.546783\n0.403259 0.649109 0.547394\n0.445709 0.650513 0.547974\n0.488464 0.651855 0.548615\n0.529541 0.653229 0.549225\n0.568085 0.654510 0.549805\n0.604004 0.655884 0.550415\n0.637329 0.657166 0.551086\n0.668335 0.658539 0.551666\n0.697388 0.659821 0.552246\n0.724731 0.661133 0.552795\n0.750641 0.662354 0.553436\n0.775360 0.663666 0.554016\n0.799133 0.664948 0.554626\n0.822174 0.666199 0.555176\n0.844666 0.667480 0.555756\n0.866882 0.668671 0.556335\n0.889130 0.669891 0.556854\n0.911743 0.671112 0.557465\n0.935089 0.672211 0.558014\n0.959961 0.673462 0.558594\n0.057587 0.670959 0.536560\n0.074646 0.672150 0.537201\n0.093201 0.673340 0.537872\n0.113495 0.674500 0.538452\n0.135925 0.675720 0.539093\n0.160828 0.676880 0.539764\n0.188568 0.678070 0.540405\n0.219055 0.679260 0.541046\n0.252106 0.680389 0.541656\n0.287628 0.681610 0.542328\n0.325287 0.682770 0.543030\n0.364838 0.683929 0.543610\n0.405975 0.685120 0.544281\n0.448364 0.686279 0.544861\n0.490936 0.687439 0.545502\n0.531738 0.688599 0.546143\n0.570007 0.689728 0.546783\n0.605652 0.690857 0.547394\n0.638733 0.691986 0.548065\n0.669556 0.693085 0.548615\n0.698425 0.694183 0.549286\n0.725616 0.695312 0.549896\n0.751434 0.696411 0.550476\n0.776001 0.697510 0.551086\n0.799652 0.698578 0.551697\n0.822662 0.699646 0.552246\n0.845062 0.700714 0.552856\n0.867218 0.701752 0.553467\n0.889343 0.702759 0.554016\n0.911865 0.703796 0.554565\n0.935150 0.704773 0.555115\n0.959961 0.705780 0.555695\n0.059235 0.706177 0.533600\n0.076385 0.707184 0.534180\n0.095032 0.708221 0.534882\n0.115479 0.709198 0.535553\n0.138092 0.710236 0.536224\n0.163147 0.711212 0.536865\n0.191040 0.712219 0.537537\n0.221649 0.713287 0.538177\n0.254822 0.714264 0.538879\n0.290344 0.715271 0.539520\n0.328125 0.716278 0.540192\n0.367615 0.717255 0.540802\n0.408691 0.718262 0.541504\n0.450989 0.719238 0.542145\n0.493408 0.720215 0.542786\n0.533936 0.721222 0.543427\n0.571838 0.722198 0.544098\n0.607300 0.723175 0.544708\n0.640198 0.724121 0.545380\n0.670746 0.725067 0.545990\n0.699463 0.726044 0.546600\n0.726532 0.726959 0.547241\n0.752167 0.727905 0.547821\n0.776672 0.728851 0.548462\n0.800262 0.729767 0.549042\n0.823059 0.730652 0.549683\n0.845428 0.731537 0.550293\n0.867493 0.732422 0.550812\n0.889587 0.733307 0.551422\n0.912018 0.734161 0.551971\n0.935211 0.734985 0.552551\n0.959961 0.735840 0.553101\n0.060974 0.738708 0.530884\n0.078156 0.739594 0.531586\n0.096954 0.740448 0.532288\n0.117493 0.741333 0.532928\n0.140259 0.742188 0.533600\n0.165497 0.743073 0.534271\n0.193512 0.743927 0.534973\n0.224274 0.744781 0.535675\n0.257538 0.745667 0.536316\n0.293121 0.746521 0.537018\n0.330841 0.747375 0.537689\n0.370392 0.748230 0.538361\n0.411438 0.749084 0.539032\n0.453522 0.749908 0.539673\n0.495789 0.750763 0.540375\n0.536041 0.751587 0.540985\n0.573761 0.752411 0.541687\n0.608917 0.753235 0.542328\n0.641602 0.754059 0.542969\n0.671997 0.754852 0.543579\n0.700531 0.755707 0.544220\n0.727448 0.756470 0.544830\n0.752930 0.757263 0.545441\n0.777344 0.758026 0.546112\n0.800812 0.758850 0.546692\n0.823517 0.759552 0.547272\n0.845795 0.760345 0.547882\n0.867798 0.761078 0.548462\n0.889801 0.761810 0.549042\n0.912109 0.762573 0.549591\n0.935303 0.763245 0.550201\n0.959961 0.763947 0.550751\n0.062653 0.769073 0.528534\n0.079956 0.769806 0.529236\n0.098816 0.770569 0.529877\n0.119568 0.771332 0.530609\n0.142426 0.772064 0.531311\n0.167816 0.772797 0.532013\n0.196014 0.773529 0.532654\n0.226837 0.774292 0.533386\n0.260193 0.774994 0.534088\n0.295898 0.775726 0.534790\n0.333618 0.776489 0.535431\n0.373077 0.777191 0.536102\n0.414093 0.777893 0.536774\n0.456207 0.778656 0.537445\n0.498199 0.779327 0.538116\n0.538177 0.780060 0.538818\n0.575592 0.780762 0.539459\n0.610535 0.781433 0.540131\n0.642975 0.782135 0.540741\n0.673157 0.782837 0.541351\n0.701538 0.783539 0.542023\n0.728333 0.784180 0.542725\n0.753693 0.784851 0.543304\n0.777924 0.785492 0.543884\n0.801300 0.786133 0.544495\n0.823975 0.786774 0.545105\n0.846130 0.787445 0.545715\n0.868073 0.788055 0.546295\n0.890015 0.788666 0.546844\n0.912292 0.789276 0.547455\n0.935394 0.789886 0.547974\n0.959961 0.790466 0.548584\n0.064392 0.797638 0.526367\n0.081787 0.798279 0.527069\n0.100739 0.798920 0.527802\n0.121582 0.799500 0.528503\n0.144623 0.800140 0.529205\n0.170197 0.800812 0.529907\n0.198547 0.801392 0.530640\n0.229492 0.802032 0.531342\n0.262878 0.802673 0.532013\n0.298615 0.803253 0.532715\n0.336395 0.803894 0.533417\n0.375824 0.804504 0.534088\n0.416779 0.805115 0.534760\n0.458740 0.805695 0.535461\n0.500610 0.806305 0.536102\n0.540222 0.806946 0.536774\n0.577423 0.807495 0.537415\n0.612091 0.808075 0.538086\n0.644318 0.808655 0.538727\n0.674316 0.809235 0.539398\n0.702515 0.809814 0.540039\n0.729126 0.810364 0.540649\n0.754395 0.810944 0.541290\n0.778564 0.811493 0.541870\n0.801819 0.812012 0.542480\n0.824402 0.812561 0.543060\n0.846497 0.813110 0.543671\n0.868347 0.813629 0.544250\n0.890228 0.814117 0.544800\n0.912415 0.814606 0.545380\n0.935425 0.815125 0.545959\n0.959961 0.815643 0.546478\n0.066132 0.824707 0.524414\n0.083649 0.825256 0.525177\n0.102692 0.825745 0.525848\n0.123657 0.826324 0.526550\n0.146851 0.826843 0.527283\n0.172546 0.827362 0.528015\n0.201019 0.827881 0.528748\n0.232117 0.828430 0.529419\n0.265625 0.828949 0.530121\n0.301361 0.829407 0.530823\n0.339111 0.829956 0.531525\n0.378632 0.830444 0.532257\n0.419464 0.830963 0.532898\n0.461304 0.831482 0.533539\n0.502899 0.831970 0.534241\n0.542267 0.832458 0.534882\n0.579163 0.832947 0.535553\n0.613617 0.833466 0.536194\n0.645630 0.833954 0.536865\n0.675476 0.834412 0.537506\n0.703522 0.834900 0.538147\n0.729950 0.835358 0.538757\n0.755066 0.835815 0.539398\n0.779175 0.836273 0.539978\n0.802307 0.836700 0.540588\n0.824799 0.837158 0.541138\n0.846832 0.837616 0.541748\n0.868591 0.838043 0.542297\n0.890411 0.838470 0.542877\n0.912537 0.838867 0.543457\n0.935486 0.839264 0.543976\n0.959961 0.839691 0.544495\n0.067871 0.850616 0.522583\n0.085480 0.851044 0.523346\n0.104645 0.851471 0.524048\n0.125763 0.851929 0.524811\n0.149078 0.852356 0.525482\n0.174957 0.852814 0.526215\n0.203583 0.853210 0.526947\n0.234711 0.853668 0.527679\n0.268280 0.854095 0.528351\n0.304077 0.854523 0.529022\n0.341858 0.854919 0.529724\n0.381287 0.855377 0.530457\n0.422058 0.855804 0.531128\n0.463776 0.856171 0.531769\n0.505219 0.856628 0.532471\n0.544281 0.857025 0.533142\n0.580963 0.857391 0.533813\n0.615112 0.857849 0.534424\n0.646942 0.858246 0.535095\n0.676544 0.858612 0.535736\n0.704437 0.859009 0.536346\n0.730774 0.859375 0.536957\n0.755829 0.859772 0.537537\n0.779724 0.860138 0.538147\n0.802795 0.860474 0.538757\n0.825195 0.860901 0.539337\n0.847137 0.861206 0.539948\n0.868866 0.861572 0.540466\n0.890594 0.861938 0.541046\n0.912659 0.862274 0.541565\n0.935547 0.862579 0.542084\n0.959961 0.862915 0.542572\n0.069641 0.875610 0.520905\n0.087341 0.875977 0.521667\n0.106628 0.876312 0.522339\n0.127838 0.876709 0.523132\n0.151306 0.877045 0.523834\n0.177368 0.877411 0.524567\n0.206055 0.877747 0.525269\n0.237335 0.878082 0.525940\n0.270966 0.878448 0.526642\n0.306824 0.878815 0.527374\n0.344513 0.879150 0.528046\n0.383911 0.879486 0.528748\n0.424683 0.879822 0.529419\n0.466278 0.880127 0.530090\n0.507385 0.880493 0.530792\n0.546265 0.880829 0.531433\n0.582672 0.881134 0.532043\n0.616608 0.881470 0.532684\n0.648193 0.881805 0.533386\n0.677673 0.882111 0.533966\n0.705383 0.882385 0.534607\n0.731567 0.882721 0.535187\n0.756470 0.883057 0.535767\n0.780273 0.883362 0.536377\n0.803284 0.883606 0.536987\n0.825623 0.883911 0.537537\n0.847473 0.884186 0.538147\n0.869080 0.884430 0.538635\n0.890808 0.884735 0.539215\n0.912781 0.885010 0.539703\n0.935638 0.885254 0.540222\n0.959961 0.885529 0.540710\n0.071411 0.900055 0.519257\n0.089172 0.900360 0.520020\n0.108612 0.900604 0.520752\n0.129944 0.900909 0.521484\n0.153534 0.901184 0.522186\n0.179718 0.901459 0.522888\n0.208618 0.901764 0.523621\n0.239929 0.902008 0.524292\n0.273621 0.902283 0.525055\n0.309479 0.902588 0.525726\n0.347168 0.902832 0.526398\n0.386597 0.903107 0.527100\n0.427216 0.903381 0.527771\n0.468628 0.903625 0.528442\n0.509583 0.903900 0.529083\n0.548157 0.904144 0.529755\n0.584320 0.904419 0.530396\n0.618011 0.904663 0.531036\n0.649384 0.904877 0.531647\n0.678711 0.905151 0.532288\n0.706299 0.905365 0.532867\n0.732330 0.905640 0.533447\n0.757111 0.905823 0.534058\n0.780884 0.906097 0.534668\n0.803741 0.906311 0.535217\n0.825958 0.906555 0.535767\n0.847778 0.906738 0.536316\n0.869385 0.906952 0.536804\n0.890930 0.907166 0.537354\n0.912933 0.907349 0.537842\n0.935699 0.907593 0.538361\n0.959961 0.907806 0.538849\n0.073181 0.924255 0.517670\n0.091034 0.924469 0.518402\n0.110596 0.924683 0.519104\n0.132080 0.924896 0.519836\n0.155762 0.925079 0.520569\n0.182129 0.925293 0.521271\n0.211090 0.925507 0.522003\n0.242523 0.925751 0.522644\n0.276245 0.925934 0.523376\n0.312134 0.926117 0.524078\n0.349823 0.926331 0.524811\n0.389130 0.926575 0.525421\n0.429718 0.926727 0.526093\n0.471039 0.926910 0.526764\n0.511719 0.927094 0.527405\n0.550018 0.927277 0.528076\n0.585938 0.927490 0.528717\n0.619446 0.927704 0.529327\n0.650635 0.927826 0.529907\n0.679749 0.928009 0.530518\n0.707153 0.928223 0.531128\n0.733063 0.928406 0.531738\n0.757751 0.928558 0.532288\n0.781403 0.928741 0.532837\n0.804199 0.928864 0.533356\n0.826355 0.929077 0.533936\n0.848083 0.929260 0.534485\n0.869568 0.929382 0.535004\n0.891113 0.929535 0.535492\n0.913055 0.929657 0.535980\n0.935730 0.929810 0.536438\n0.959961 0.929932 0.536896\n0.074982 0.948578 0.515991\n0.092926 0.948700 0.516724\n0.112549 0.948853 0.517456\n0.134155 0.948975 0.518158\n0.158020 0.949127 0.518921\n0.184479 0.949249 0.519592\n0.213531 0.949432 0.520294\n0.245056 0.949585 0.521027\n0.278839 0.949738 0.521729\n0.314728 0.949860 0.522400\n0.352417 0.949982 0.523041\n0.391693 0.950104 0.523743\n0.432220 0.950256 0.524414\n0.473358 0.950378 0.525024\n0.513794 0.950470 0.525665\n0.551849 0.950623 0.526306\n0.587555 0.950714 0.526947\n0.620819 0.950867 0.527557\n0.651733 0.950989 0.528137\n0.680756 0.951141 0.528778\n0.707977 0.951233 0.529358\n0.733826 0.951355 0.529846\n0.758362 0.951477 0.530426\n0.781891 0.951569 0.530945\n0.804596 0.951691 0.531555\n0.826691 0.951782 0.532074\n0.848358 0.951874 0.532593\n0.869812 0.951996 0.533081\n0.891296 0.952087 0.533508\n0.913147 0.952209 0.533966\n0.935822 0.952301 0.534454\n0.959961 0.952393 0.534943\n0.076721 0.973541 0.514252\n0.094757 0.973633 0.514923\n0.114502 0.973694 0.515717\n0.136230 0.973816 0.516357\n0.160217 0.973846 0.517059\n0.186859 0.973969 0.517853\n0.216003 0.974030 0.518585\n0.247559 0.974091 0.519226\n0.281403 0.974182 0.519897\n0.317291 0.974213 0.520599\n0.354950 0.974304 0.521240\n0.394135 0.974365 0.521912\n0.434540 0.974396 0.522522\n0.475616 0.974518 0.523193\n0.515778 0.974548 0.523804\n0.553558 0.974609 0.524445\n0.589050 0.974701 0.525055\n0.622101 0.974731 0.525635\n0.652863 0.974823 0.526245\n0.681702 0.974854 0.526794\n0.708801 0.974915 0.527374\n0.734497 0.974976 0.527924\n0.758942 0.975037 0.528503\n0.782379 0.975067 0.529022\n0.805023 0.975128 0.529541\n0.827057 0.975189 0.530029\n0.848633 0.975250 0.530487\n0.869995 0.975281 0.530975\n0.891449 0.975342 0.531464\n0.913269 0.975403 0.531921\n0.935852 0.975433 0.532349\n0.959961 0.975494 0.532745\n0.078491 1.000000 0.512299\n0.096619 1.000000 0.512939\n0.116455 1.000000 0.513672\n0.138336 1.000000 0.514435\n0.162445 1.000000 0.515137\n0.189148 1.000000 0.515869\n0.218414 1.000000 0.516510\n0.250031 1.000000 0.517212\n0.283936 1.000000 0.517914\n0.319855 1.000000 0.518585\n0.357452 1.000000 0.519196\n0.396637 1.000000 0.519867\n0.436951 1.000000 0.520477\n0.477875 1.000000 0.521149\n0.517761 1.000000 0.521729\n0.555298 1.000000 0.522308\n0.590546 1.000000 0.522980\n0.623352 1.000000 0.523529\n0.653931 1.000000 0.524078\n0.682617 1.000000 0.524628\n0.709564 1.000000 0.525238\n0.735107 1.000000 0.525787\n0.759491 1.000000 0.526306\n0.782867 1.000000 0.526794\n0.805420 1.000000 0.527252\n0.827332 1.000000 0.527771\n0.848877 1.000000 0.528229\n0.870209 1.000000 0.528717\n0.891571 1.000000 0.529144\n0.913391 1.000000 0.529541\n0.935944 1.000000 0.529938\n0.959961 1.000000 0.530334\n0.033295 0.003815 0.636353\n0.048889 0.004486 0.636688\n0.065643 0.005188 0.636993\n0.083893 0.005890 0.637329\n0.103943 0.006653 0.637695\n0.126160 0.007446 0.638031\n0.150848 0.008240 0.638428\n0.178467 0.009064 0.638763\n0.209259 0.009918 0.639160\n0.242889 0.010803 0.639587\n0.279297 0.011688 0.639923\n0.318237 0.012604 0.640381\n0.359375 0.013519 0.640778\n0.402313 0.014496 0.641205\n0.446655 0.015472 0.641632\n0.491516 0.016479 0.642090\n0.534454 0.017487 0.642517\n0.574463 0.018524 0.642975\n0.611755 0.019592 0.643433\n0.646271 0.020691 0.643921\n0.678253 0.021759 0.644348\n0.708221 0.022888 0.644867\n0.736481 0.024017 0.645325\n0.763306 0.025177 0.645782\n0.788910 0.026337 0.646301\n0.813629 0.027557 0.646790\n0.837646 0.028717 0.647278\n0.861359 0.029968 0.647736\n0.884949 0.031189 0.648254\n0.908844 0.032440 0.648773\n0.933533 0.033752 0.649231\n0.959961 0.035004 0.649750\n0.034180 0.020233 0.635040\n0.049805 0.020935 0.635376\n0.066620 0.021698 0.635742\n0.084991 0.022491 0.636078\n0.105103 0.023315 0.636444\n0.127441 0.024139 0.636810\n0.152283 0.024963 0.637207\n0.180084 0.025879 0.637573\n0.210938 0.026794 0.637970\n0.244720 0.027710 0.638397\n0.281281 0.028656 0.638794\n0.320190 0.029663 0.639252\n0.361389 0.030640 0.639648\n0.404327 0.031647 0.640106\n0.448700 0.032715 0.640533\n0.493439 0.033783 0.640961\n0.536102 0.034882 0.641418\n0.575989 0.035919 0.641907\n0.613037 0.037079 0.642365\n0.647339 0.038239 0.642822\n0.679260 0.039398 0.643311\n0.709106 0.040588 0.643768\n0.737213 0.041809 0.644287\n0.763977 0.043030 0.644745\n0.789459 0.044281 0.645233\n0.814087 0.045502 0.645691\n0.838074 0.046783 0.646240\n0.861633 0.048126 0.646729\n0.885132 0.049408 0.647217\n0.908966 0.050720 0.647675\n0.933624 0.052124 0.648163\n0.959961 0.053467 0.648712\n0.035065 0.037598 0.633667\n0.050781 0.038391 0.633972\n0.067688 0.039215 0.634369\n0.086121 0.040039 0.634735\n0.106384 0.040955 0.635101\n0.128815 0.041901 0.635498\n0.153778 0.042786 0.635864\n0.181732 0.043762 0.636292\n0.212738 0.044739 0.636719\n0.246643 0.045746 0.637085\n0.283234 0.046783 0.637543\n0.322266 0.047821 0.637970\n0.363434 0.048920 0.638397\n0.406433 0.050018 0.638855\n0.450745 0.051117 0.639282\n0.495361 0.052246 0.639801\n0.537842 0.053467 0.640198\n0.577515 0.054596 0.640686\n0.614349 0.055847 0.641113\n0.648529 0.057098 0.641602\n0.680237 0.058319 0.642120\n0.709991 0.059601 0.642548\n0.737976 0.060913 0.643066\n0.764557 0.062195 0.643494\n0.790009 0.063568 0.643951\n0.814545 0.064880 0.644501\n0.838440 0.066254 0.644989\n0.861938 0.067688 0.645447\n0.885376 0.069031 0.645935\n0.909119 0.070496 0.646484\n0.933685 0.071960 0.646973\n0.959961 0.073395 0.647430\n0.036072 0.056244 0.632141\n0.051819 0.057159 0.632507\n0.068817 0.058075 0.632874\n0.087341 0.058990 0.633240\n0.107666 0.059967 0.633636\n0.130249 0.061005 0.634033\n0.155365 0.061981 0.634430\n0.183472 0.063080 0.634857\n0.214600 0.064148 0.635284\n0.248596 0.065247 0.635681\n0.285309 0.066376 0.636139\n0.324402 0.067535 0.636566\n0.365601 0.068695 0.636993\n0.408600 0.069916 0.637390\n0.452850 0.071075 0.637909\n0.497314 0.072357 0.638367\n0.539612 0.073639 0.638824\n0.579102 0.074890 0.639221\n0.615723 0.076233 0.639801\n0.649689 0.077576 0.640228\n0.681274 0.078949 0.640686\n0.710846 0.080322 0.641144\n0.738739 0.081696 0.641602\n0.765228 0.083099 0.642120\n0.790558 0.084595 0.642609\n0.815002 0.086029 0.643066\n0.838806 0.087494 0.643555\n0.862274 0.089050 0.644073\n0.885651 0.090546 0.644531\n0.909302 0.092102 0.644989\n0.933807 0.093658 0.645447\n0.959961 0.095215 0.645966\n0.037048 0.076630 0.630432\n0.052887 0.077606 0.630829\n0.069977 0.078674 0.631195\n0.088593 0.079681 0.631592\n0.109070 0.080780 0.631989\n0.131744 0.081909 0.632355\n0.156982 0.083008 0.632782\n0.185272 0.084198 0.633240\n0.216553 0.085388 0.633667\n0.250641 0.086578 0.634094\n0.287445 0.087830 0.634491\n0.326599 0.089081 0.634918\n0.367798 0.090393 0.635376\n0.410797 0.091705 0.635864\n0.455017 0.093018 0.636261\n0.499359 0.094391 0.636688\n0.541443 0.095795 0.637177\n0.580658 0.097198 0.637634\n0.617126 0.098663 0.638123\n0.650909 0.100128 0.638550\n0.682281 0.101593 0.639008\n0.711761 0.103119 0.639496\n0.739502 0.104614 0.639984\n0.765869 0.106171 0.640411\n0.791138 0.107758 0.640900\n0.815460 0.109344 0.641388\n0.839203 0.110962 0.641846\n0.862549 0.112640 0.642303\n0.885834 0.114288 0.642792\n0.909454 0.115967 0.643219\n0.933868 0.117676 0.643707\n0.959961 0.119385 0.644196\n0.038147 0.099121 0.628510\n0.054077 0.100250 0.628906\n0.071228 0.101410 0.629272\n0.089905 0.102570 0.629669\n0.110535 0.103760 0.630035\n0.133331 0.105011 0.630524\n0.158722 0.106262 0.630920\n0.187164 0.107574 0.631317\n0.218567 0.108856 0.631744\n0.252808 0.110229 0.632141\n0.289673 0.111633 0.632599\n0.328888 0.113007 0.633026\n0.370117 0.114441 0.633484\n0.413086 0.115906 0.633911\n0.457275 0.117371 0.634308\n0.501434 0.118866 0.634827\n0.543274 0.120453 0.635254\n0.582275 0.121948 0.635712\n0.618561 0.123566 0.636108\n0.652130 0.125153 0.636597\n0.683380 0.126770 0.637024\n0.712677 0.128448 0.637512\n0.740295 0.130096 0.637970\n0.766571 0.131836 0.638428\n0.791718 0.133575 0.638916\n0.815948 0.135284 0.639313\n0.839600 0.137085 0.639801\n0.862885 0.138885 0.640259\n0.886108 0.140686 0.640656\n0.909607 0.142548 0.641174\n0.933990 0.144348 0.641602\n0.959961 0.146240 0.642029\n0.039276 0.124207 0.626312\n0.055237 0.125519 0.626678\n0.072510 0.126770 0.627045\n0.091309 0.128082 0.627472\n0.112000 0.129425 0.627869\n0.134979 0.130859 0.628296\n0.160553 0.132233 0.628662\n0.189117 0.133667 0.629089\n0.220642 0.135132 0.629547\n0.255005 0.136627 0.629944\n0.291962 0.138184 0.630371\n0.331207 0.139709 0.630768\n0.372528 0.141327 0.631226\n0.415436 0.142944 0.631683\n0.459564 0.144531 0.632080\n0.503540 0.146240 0.632538\n0.545135 0.147949 0.632935\n0.583923 0.149658 0.633423\n0.619995 0.151428 0.633850\n0.653351 0.153168 0.634277\n0.684479 0.154999 0.634674\n0.713623 0.156799 0.635193\n0.741058 0.158630 0.635620\n0.767212 0.160553 0.636047\n0.792267 0.162476 0.636444\n0.816437 0.164368 0.636902\n0.839996 0.166321 0.637329\n0.863220 0.168335 0.637817\n0.886322 0.170227 0.638245\n0.909760 0.172302 0.638641\n0.934021 0.174286 0.639069\n0.959961 0.176361 0.639465\n0.040497 0.152496 0.623688\n0.056519 0.153870 0.624084\n0.073853 0.155365 0.624512\n0.092773 0.156769 0.624908\n0.113586 0.158325 0.625275\n0.136688 0.159851 0.625671\n0.162415 0.161438 0.626068\n0.191162 0.163116 0.626495\n0.222809 0.164673 0.626892\n0.257263 0.166351 0.627289\n0.294312 0.168091 0.627716\n0.333588 0.169800 0.628082\n0.374908 0.171600 0.628571\n0.417816 0.173431 0.628998\n0.461884 0.175201 0.629364\n0.505646 0.177094 0.629822\n0.546967 0.178894 0.630249\n0.585571 0.180817 0.630646\n0.621429 0.182800 0.631073\n0.654602 0.184723 0.631500\n0.685547 0.186737 0.631927\n0.714508 0.188751 0.632355\n0.741913 0.190735 0.632751\n0.767914 0.192841 0.633148\n0.792816 0.194916 0.633606\n0.816925 0.196991 0.634033\n0.840393 0.199127 0.634460\n0.863495 0.201263 0.634827\n0.886536 0.203400 0.635254\n0.909912 0.205627 0.635651\n0.934113 0.207764 0.636047\n0.959961 0.209991 0.636475\n0.041687 0.184387 0.620697\n0.057800 0.185974 0.621094\n0.075226 0.187653 0.621460\n0.094269 0.189270 0.621796\n0.115234 0.190948 0.622223\n0.138489 0.192688 0.622620\n0.164368 0.194458 0.623016\n0.193237 0.196228 0.623413\n0.225037 0.198029 0.623810\n0.259583 0.199921 0.624176\n0.296692 0.201813 0.624634\n0.336029 0.203705 0.625031\n0.377380 0.205658 0.625427\n0.420258 0.207642 0.625854\n0.464233 0.209595 0.626190\n0.507904 0.211639 0.626648\n0.548889 0.213654 0.627045\n0.587250 0.215759 0.627441\n0.622894 0.217865 0.627899\n0.655884 0.219971 0.628265\n0.686646 0.222137 0.628662\n0.715454 0.224274 0.629059\n0.742706 0.226440 0.629456\n0.768616 0.228699 0.629913\n0.793488 0.230896 0.630310\n0.817413 0.233124 0.630676\n0.840820 0.235413 0.631042\n0.863831 0.237671 0.631439\n0.886810 0.239929 0.631866\n0.910126 0.242249 0.632294\n0.934235 0.244537 0.632660\n0.959961 0.246887 0.633026\n0.042938 0.220184 0.617218\n0.059143 0.221985 0.617554\n0.076691 0.223724 0.617950\n0.095825 0.225586 0.618347\n0.116882 0.227448 0.618713\n0.140289 0.229309 0.619080\n0.166351 0.231232 0.619476\n0.195404 0.233185 0.619873\n0.227325 0.235138 0.620270\n0.261993 0.237122 0.620667\n0.299164 0.239197 0.621033\n0.338531 0.241211 0.621399\n0.379852 0.243347 0.621796\n0.422699 0.245422 0.622223\n0.466614 0.247559 0.622589\n0.510010 0.249786 0.623016\n0.550873 0.251892 0.623444\n0.588959 0.254120 0.623810\n0.624359 0.256378 0.624207\n0.657135 0.258606 0.624573\n0.687714 0.260834 0.625000\n0.716431 0.263184 0.625397\n0.743561 0.265442 0.625793\n0.769318 0.267761 0.626160\n0.794037 0.270111 0.626526\n0.817902 0.272461 0.626923\n0.841187 0.274811 0.627289\n0.864136 0.277161 0.627716\n0.887054 0.279541 0.628082\n0.910278 0.281982 0.628448\n0.934296 0.284332 0.628845\n0.959961 0.286774 0.629181\n0.044312 0.259735 0.613281\n0.060547 0.261597 0.613647\n0.078156 0.263489 0.614044\n0.097443 0.265472 0.614380\n0.118683 0.267456 0.614777\n0.142151 0.269409 0.615112\n0.168396 0.271515 0.615509\n0.197601 0.273590 0.615936\n0.229645 0.275635 0.616272\n0.264435 0.277802 0.616638\n0.301697 0.279968 0.617035\n0.341095 0.282104 0.617432\n0.382416 0.284332 0.617828\n0.425232 0.286499 0.618225\n0.469055 0.288818 0.618561\n0.512268 0.291046 0.618988\n0.552795 0.293304 0.619385\n0.590698 0.295654 0.619751\n0.625824 0.297943 0.620178\n0.658417 0.300293 0.620544\n0.688812 0.302673 0.620911\n0.717377 0.304993 0.621307\n0.744354 0.307343 0.621674\n0.770020 0.309784 0.622070\n0.794617 0.312134 0.622437\n0.818390 0.314545 0.622803\n0.841614 0.317017 0.623230\n0.864471 0.319397 0.623566\n0.887268 0.321838 0.623962\n0.910461 0.324371 0.624298\n0.934387 0.326752 0.624664\n0.959961 0.329224 0.625061\n0.045685 0.302460 0.608948\n0.062012 0.304504 0.609283\n0.079681 0.306488 0.609680\n0.099121 0.308594 0.610016\n0.120453 0.310669 0.610443\n0.144104 0.312744 0.610809\n0.170502 0.314911 0.611176\n0.199890 0.317108 0.611511\n0.232056 0.319244 0.611908\n0.266907 0.321503 0.612335\n0.304199 0.323608 0.612701\n0.343658 0.325928 0.613068\n0.385040 0.328217 0.613434\n0.427765 0.330444 0.613861\n0.471497 0.332825 0.614197\n0.514404 0.335175 0.614594\n0.554779 0.337463 0.615021\n0.592377 0.339844 0.615417\n0.627319 0.342194 0.615784\n0.659668 0.344543 0.616180\n0.689941 0.347015 0.616516\n0.718323 0.349396 0.616913\n0.745148 0.351776 0.617279\n0.770721 0.354218 0.617645\n0.795227 0.356598 0.618011\n0.818909 0.359100 0.618408\n0.842010 0.361572 0.618774\n0.864807 0.363953 0.619141\n0.887543 0.366425 0.619476\n0.910583 0.368896 0.619873\n0.934479 0.371307 0.620239\n0.959961 0.373779 0.620544\n0.047058 0.348145 0.604218\n0.063477 0.350250 0.604584\n0.081299 0.352325 0.605011\n0.100769 0.354431 0.605408\n0.122314 0.356598 0.605713\n0.146118 0.358765 0.606079\n0.172668 0.360962 0.606476\n0.202179 0.363220 0.606812\n0.234497 0.365387 0.607239\n0.269470 0.367645 0.607635\n0.306824 0.369904 0.608002\n0.346313 0.372192 0.608429\n0.387665 0.374542 0.608795\n0.430328 0.376801 0.609161\n0.473969 0.379181 0.609558\n0.516663 0.381531 0.609955\n0.556732 0.383881 0.610291\n0.594116 0.386261 0.610718\n0.628815 0.388641 0.611084\n0.661011 0.391022 0.611481\n0.691071 0.393463 0.611816\n0.719269 0.395813 0.612213\n0.745972 0.398224 0.612579\n0.771423 0.400665 0.612976\n0.795776 0.403076 0.613342\n0.819397 0.405518 0.613739\n0.842438 0.407959 0.614105\n0.865112 0.410370 0.614441\n0.887817 0.412781 0.614807\n0.910767 0.415253 0.615173\n0.934570 0.417633 0.615570\n0.959961 0.420074 0.615875\n0.048523 0.396240 0.599213\n0.065033 0.398346 0.599640\n0.082947 0.400452 0.600037\n0.102539 0.402588 0.600403\n0.124146 0.404785 0.600769\n0.148163 0.406921 0.601135\n0.174896 0.409149 0.601562\n0.204498 0.411316 0.601929\n0.236969 0.413574 0.602325\n0.272034 0.415894 0.602722\n0.309448 0.418121 0.603058\n0.348999 0.420441 0.603516\n0.390289 0.422729 0.603912\n0.432953 0.425018 0.604248\n0.476440 0.427368 0.604614\n0.518890 0.429688 0.605042\n0.558685 0.432037 0.605408\n0.595825 0.434387 0.605774\n0.630280 0.436768 0.606201\n0.662292 0.439117 0.606537\n0.692139 0.441498 0.606964\n0.720245 0.443787 0.607330\n0.746765 0.446167 0.607727\n0.772095 0.448608 0.608124\n0.796356 0.450928 0.608490\n0.819855 0.453308 0.608887\n0.842834 0.455688 0.609253\n0.865387 0.458038 0.609558\n0.888000 0.460358 0.610016\n0.910919 0.462799 0.610291\n0.934692 0.465057 0.610718\n0.959961 0.467407 0.611053\n0.049988 0.446045 0.594086\n0.066589 0.448151 0.594452\n0.084564 0.450287 0.594849\n0.104340 0.452393 0.595215\n0.126099 0.454620 0.595642\n0.150238 0.456757 0.596039\n0.177155 0.458923 0.596405\n0.206909 0.461090 0.596863\n0.239532 0.463287 0.597168\n0.274689 0.465515 0.597595\n0.312134 0.467773 0.598022\n0.351593 0.470001 0.598419\n0.392944 0.472290 0.598785\n0.435608 0.474518 0.599213\n0.478943 0.476746 0.599609\n0.521149 0.479034 0.599976\n0.560699 0.481262 0.600403\n0.597534 0.483551 0.600769\n0.631775 0.485779 0.601196\n0.663483 0.488037 0.601593\n0.693268 0.490326 0.601959\n0.721130 0.492554 0.602386\n0.747589 0.494812 0.602753\n0.772827 0.497101 0.603119\n0.796967 0.499329 0.603546\n0.820343 0.501617 0.603882\n0.843231 0.503815 0.604309\n0.865753 0.506042 0.604675\n0.888245 0.508240 0.605072\n0.911072 0.510376 0.605438\n0.934723 0.512604 0.605804\n0.959961 0.514740 0.606171\n0.051544 0.496796 0.588776\n0.068207 0.498840 0.589172\n0.086304 0.500854 0.589600\n0.106171 0.502930 0.590027\n0.128052 0.504944 0.590393\n0.152374 0.507019 0.590820\n0.179474 0.509125 0.591217\n0.209412 0.511169 0.591614\n0.242096 0.513245 0.592072\n0.277313 0.515350 0.592499\n0.314819 0.517365 0.592896\n0.354401 0.519501 0.593353\n0.395660 0.521545 0.593750\n0.438232 0.523560 0.594177\n0.481445 0.525696 0.594604\n0.523346 0.527740 0.595001\n0.562592 0.529755 0.595398\n0.599213 0.531830 0.595917\n0.633270 0.533875 0.596283\n0.664764 0.535919 0.596741\n0.694336 0.537964 0.597137\n0.722107 0.539917 0.597534\n0.748383 0.541962 0.597961\n0.773468 0.543976 0.598389\n0.797546 0.545929 0.598785\n0.820801 0.547913 0.599213\n0.843628 0.549927 0.599670\n0.866028 0.551788 0.600037\n0.888519 0.553711 0.600464\n0.911255 0.555634 0.600830\n0.934845 0.557495 0.601227\n0.959961 0.559387 0.601654\n0.053070 0.545929 0.583710\n0.069855 0.547760 0.584198\n0.088074 0.549591 0.584595\n0.108002 0.551392 0.585052\n0.130096 0.553223 0.585449\n0.154572 0.554993 0.585938\n0.181824 0.556854 0.586395\n0.211884 0.558655 0.586823\n0.244690 0.560516 0.587250\n0.279999 0.562347 0.587799\n0.317535 0.564178 0.588196\n0.357147 0.565979 0.588623\n0.398376 0.567841 0.589111\n0.440826 0.569580 0.589539\n0.483978 0.571442 0.589996\n0.525574 0.573273 0.590485\n0.564575 0.575043 0.590942\n0.600952 0.576843 0.591400\n0.634705 0.578583 0.591858\n0.666077 0.580414 0.592285\n0.695465 0.582214 0.592743\n0.723053 0.583923 0.593170\n0.749237 0.585724 0.593597\n0.774139 0.587433 0.594055\n0.798096 0.589111 0.594513\n0.821320 0.590820 0.594940\n0.843994 0.592590 0.595398\n0.866364 0.594238 0.595795\n0.888733 0.595856 0.596252\n0.911407 0.597473 0.596680\n0.934937 0.599213 0.597107\n0.959961 0.600800 0.597534\n0.054657 0.591400 0.579132\n0.071533 0.592987 0.579590\n0.089813 0.594574 0.580048\n0.109955 0.596191 0.580566\n0.132141 0.597717 0.581055\n0.156799 0.599365 0.581543\n0.184174 0.600952 0.582001\n0.214417 0.602539 0.582489\n0.247314 0.604126 0.583008\n0.282715 0.605743 0.583466\n0.320282 0.607300 0.583954\n0.359833 0.608887 0.584442\n0.401123 0.610504 0.584900\n0.443573 0.612061 0.585419\n0.486481 0.613647 0.585876\n0.527802 0.615204 0.586365\n0.566498 0.616760 0.586853\n0.602661 0.618347 0.587311\n0.636169 0.619873 0.587830\n0.667328 0.621368 0.588257\n0.696503 0.622925 0.588745\n0.723999 0.624420 0.589233\n0.750000 0.625946 0.589691\n0.774841 0.627441 0.590179\n0.798676 0.628876 0.590637\n0.821777 0.630341 0.591095\n0.844391 0.631866 0.591553\n0.866669 0.633270 0.591980\n0.888947 0.634735 0.592468\n0.911591 0.636108 0.592926\n0.934998 0.637482 0.593353\n0.959961 0.638885 0.593811\n0.056244 0.633118 0.575043\n0.073242 0.634583 0.575562\n0.091675 0.635925 0.576080\n0.111908 0.637299 0.576599\n0.134186 0.638641 0.577087\n0.159027 0.640106 0.577576\n0.186615 0.641418 0.578125\n0.216949 0.642792 0.578613\n0.249939 0.644196 0.579102\n0.285400 0.645599 0.579651\n0.323029 0.646942 0.580139\n0.362579 0.648285 0.580719\n0.403809 0.649689 0.581207\n0.446167 0.651001 0.581696\n0.488953 0.652374 0.582214\n0.529968 0.653687 0.582703\n0.568451 0.655029 0.583252\n0.604279 0.656372 0.583710\n0.637573 0.657654 0.584198\n0.668579 0.658997 0.584717\n0.697601 0.660309 0.585236\n0.724854 0.661560 0.585693\n0.750793 0.662872 0.586212\n0.775482 0.664124 0.586700\n0.799255 0.665375 0.587158\n0.822266 0.666656 0.587646\n0.844727 0.667877 0.588135\n0.866974 0.669067 0.588593\n0.889191 0.670319 0.589050\n0.911743 0.671539 0.589539\n0.935089 0.672699 0.589996\n0.959961 0.673889 0.590485\n0.057922 0.671387 0.571472\n0.074982 0.672546 0.572021\n0.093506 0.673767 0.572510\n0.113861 0.674957 0.573029\n0.136322 0.676117 0.573578\n0.161316 0.677338 0.574127\n0.189056 0.678558 0.574646\n0.219543 0.679688 0.575195\n0.252655 0.680878 0.575714\n0.288177 0.682068 0.576263\n0.325806 0.683197 0.576813\n0.365387 0.684387 0.577332\n0.406464 0.685516 0.577881\n0.448792 0.686707 0.578400\n0.491394 0.687866 0.578918\n0.532166 0.688965 0.579468\n0.570343 0.690125 0.579987\n0.605988 0.691284 0.580536\n0.639038 0.692383 0.581024\n0.669800 0.693512 0.581543\n0.698639 0.694641 0.582031\n0.725800 0.695709 0.582550\n0.751587 0.696808 0.583069\n0.776154 0.697937 0.583557\n0.799774 0.698975 0.584076\n0.822723 0.700043 0.584595\n0.845123 0.701080 0.585052\n0.867279 0.702118 0.585541\n0.889435 0.703186 0.586029\n0.911896 0.704163 0.586517\n0.935181 0.705170 0.587006\n0.959961 0.706177 0.587433\n0.059601 0.706512 0.568237\n0.076721 0.707520 0.568787\n0.095398 0.708527 0.569397\n0.115875 0.709564 0.569916\n0.138489 0.710571 0.570465\n0.163574 0.711578 0.571045\n0.191498 0.712616 0.571564\n0.222107 0.713623 0.572113\n0.255371 0.714630 0.572723\n0.290894 0.715668 0.573273\n0.328613 0.716644 0.573822\n0.368195 0.717651 0.574371\n0.409180 0.718628 0.574921\n0.451447 0.719635 0.575439\n0.493835 0.720612 0.575989\n0.534302 0.721558 0.576538\n0.572205 0.722534 0.577087\n0.607635 0.723541 0.577637\n0.640411 0.724487 0.578156\n0.671021 0.725433 0.578705\n0.699707 0.726410 0.579193\n0.726715 0.727295 0.579712\n0.752350 0.728241 0.580231\n0.776794 0.729156 0.580780\n0.800323 0.730103 0.581268\n0.823181 0.730957 0.581787\n0.845459 0.731842 0.582275\n0.867554 0.732758 0.582733\n0.889618 0.733612 0.583313\n0.912048 0.734467 0.583710\n0.935242 0.735321 0.584198\n0.959961 0.736145 0.584686\n0.061279 0.739014 0.565369\n0.078522 0.739899 0.565948\n0.097290 0.740753 0.566498\n0.117889 0.741638 0.567139\n0.140656 0.742523 0.567657\n0.165924 0.743378 0.568237\n0.194000 0.744263 0.568848\n0.224762 0.745087 0.569427\n0.258026 0.745972 0.570007\n0.293640 0.746826 0.570587\n0.331360 0.747681 0.571136\n0.370911 0.748535 0.571686\n0.411926 0.749359 0.572235\n0.454010 0.750244 0.572784\n0.496277 0.751068 0.573364\n0.536438 0.751892 0.573914\n0.574097 0.752716 0.574432\n0.609222 0.753571 0.575043\n0.641846 0.754364 0.575562\n0.672211 0.755188 0.576080\n0.700684 0.755981 0.576630\n0.727570 0.756775 0.577179\n0.753082 0.757568 0.577698\n0.777435 0.758301 0.578217\n0.800873 0.759094 0.578735\n0.823608 0.759857 0.579224\n0.845856 0.760559 0.579773\n0.867859 0.761383 0.580231\n0.889862 0.762085 0.580719\n0.912140 0.762817 0.581177\n0.935333 0.763519 0.581665\n0.959961 0.764221 0.582123\n0.062988 0.769348 0.562805\n0.080292 0.770111 0.563385\n0.099182 0.770844 0.563965\n0.119965 0.771576 0.564545\n0.142822 0.772339 0.565186\n0.168304 0.773071 0.565735\n0.196472 0.773804 0.566406\n0.227356 0.774567 0.566925\n0.260742 0.775269 0.567505\n0.296387 0.775970 0.568085\n0.334106 0.776764 0.568665\n0.373657 0.777466 0.569244\n0.414581 0.778168 0.569824\n0.456635 0.778900 0.570404\n0.498688 0.779602 0.570923\n0.538574 0.780304 0.571533\n0.575958 0.781006 0.572083\n0.610809 0.781677 0.572601\n0.643219 0.782379 0.573151\n0.673401 0.783081 0.573730\n0.701691 0.783752 0.574249\n0.728455 0.784393 0.574829\n0.753815 0.785095 0.575348\n0.778046 0.785736 0.575836\n0.801422 0.786377 0.576355\n0.824036 0.787018 0.576843\n0.846191 0.787659 0.577393\n0.868134 0.788269 0.577850\n0.890045 0.788879 0.578400\n0.912292 0.789520 0.578857\n0.935394 0.790100 0.579315\n0.959961 0.790649 0.579773\n0.064758 0.797852 0.560425\n0.082123 0.798492 0.561035\n0.101135 0.799133 0.561676\n0.121979 0.799774 0.562256\n0.145020 0.800385 0.562866\n0.170685 0.801025 0.563507\n0.198975 0.801636 0.564056\n0.229980 0.802277 0.564636\n0.263428 0.802887 0.565247\n0.299133 0.803497 0.565826\n0.336914 0.804108 0.566467\n0.376434 0.804749 0.567047\n0.417267 0.805328 0.567596\n0.459198 0.805939 0.568146\n0.501007 0.806519 0.568756\n0.540619 0.807129 0.569305\n0.577759 0.807709 0.569855\n0.612396 0.808319 0.570465\n0.644531 0.808868 0.570953\n0.674561 0.809448 0.571533\n0.702698 0.809998 0.572083\n0.729248 0.810577 0.572601\n0.754547 0.811127 0.573151\n0.778687 0.811707 0.573578\n0.801941 0.812225 0.574158\n0.824493 0.812744 0.574677\n0.846558 0.813293 0.575195\n0.868378 0.813812 0.575653\n0.890259 0.814331 0.576141\n0.912415 0.814789 0.576599\n0.935455 0.815338 0.577118\n0.959961 0.815796 0.577545\n0.066467 0.824890 0.558319\n0.083923 0.825439 0.558899\n0.103058 0.825958 0.559540\n0.124084 0.826508 0.560150\n0.147247 0.826996 0.560760\n0.173035 0.827545 0.561340\n0.201477 0.828094 0.561981\n0.232574 0.828613 0.562531\n0.266113 0.829102 0.563141\n0.301849 0.829590 0.563782\n0.339661 0.830139 0.564331\n0.379120 0.830658 0.564941\n0.419922 0.831146 0.565552\n0.461731 0.831696 0.566071\n0.503326 0.832153 0.566650\n0.542664 0.832642 0.567230\n0.579559 0.833130 0.567810\n0.613892 0.833649 0.568359\n0.645844 0.834106 0.568939\n0.675690 0.834564 0.569458\n0.703674 0.835052 0.569977\n0.730072 0.835541 0.570496\n0.755219 0.835999 0.571075\n0.779266 0.836426 0.571564\n0.802399 0.836884 0.572113\n0.824890 0.837341 0.572601\n0.846893 0.837769 0.573059\n0.868652 0.838196 0.573578\n0.890472 0.838593 0.574036\n0.912567 0.839020 0.574493\n0.935486 0.839417 0.574951\n0.959961 0.839844 0.575409\n0.068207 0.850769 0.556305\n0.085815 0.851196 0.556915\n0.105011 0.851624 0.557526\n0.126190 0.852112 0.558105\n0.149536 0.852509 0.558777\n0.175385 0.852966 0.559387\n0.204010 0.853394 0.559967\n0.235229 0.853821 0.560608\n0.268799 0.854279 0.561188\n0.304626 0.854675 0.561798\n0.342316 0.855072 0.562408\n0.381714 0.855530 0.562988\n0.422577 0.855927 0.563538\n0.464233 0.856384 0.564117\n0.505554 0.856750 0.564728\n0.544647 0.857147 0.565308\n0.581329 0.857605 0.565857\n0.615387 0.857971 0.566376\n0.647156 0.858368 0.566956\n0.676788 0.858765 0.567474\n0.704651 0.859131 0.568024\n0.730927 0.859497 0.568573\n0.755920 0.859924 0.569092\n0.779816 0.860291 0.569611\n0.802887 0.860626 0.570099\n0.825256 0.861023 0.570587\n0.847198 0.861359 0.571075\n0.868896 0.861664 0.571564\n0.890656 0.862030 0.571991\n0.912689 0.862366 0.572479\n0.935577 0.862701 0.572906\n0.959961 0.863037 0.573364\n0.069977 0.875763 0.554413\n0.087646 0.876099 0.554993\n0.106995 0.876465 0.555634\n0.128235 0.876831 0.556244\n0.151764 0.877197 0.556885\n0.177826 0.877533 0.557526\n0.206543 0.877869 0.558105\n0.237823 0.878235 0.558685\n0.271454 0.878571 0.559357\n0.307312 0.878906 0.559906\n0.345032 0.879272 0.560516\n0.384491 0.879639 0.561096\n0.425110 0.879944 0.561707\n0.466675 0.880310 0.562256\n0.507782 0.880585 0.562836\n0.546600 0.880920 0.563416\n0.582977 0.881287 0.563934\n0.616852 0.881561 0.564484\n0.648438 0.881897 0.565063\n0.677887 0.882202 0.565552\n0.705536 0.882538 0.566071\n0.731689 0.882812 0.566650\n0.756592 0.883148 0.567108\n0.780396 0.883453 0.567657\n0.803375 0.883728 0.568146\n0.825684 0.884033 0.568634\n0.847534 0.884277 0.569122\n0.869141 0.884613 0.569580\n0.890808 0.884857 0.570038\n0.912811 0.885101 0.570496\n0.935638 0.885376 0.570953\n0.959961 0.885620 0.571350\n0.071747 0.900146 0.552551\n0.089539 0.900452 0.553162\n0.108978 0.900726 0.553802\n0.130371 0.901001 0.554443\n0.153992 0.901276 0.555023\n0.180176 0.901581 0.555664\n0.209015 0.901855 0.556274\n0.240387 0.902130 0.556885\n0.274139 0.902374 0.557495\n0.309937 0.902649 0.558075\n0.347687 0.902924 0.558655\n0.387054 0.903198 0.559296\n0.427673 0.903473 0.559875\n0.469116 0.903748 0.560425\n0.509979 0.903992 0.560974\n0.548462 0.904236 0.561523\n0.584656 0.904510 0.562073\n0.618286 0.904724 0.562592\n0.649628 0.905029 0.563141\n0.678925 0.905212 0.563721\n0.706421 0.905487 0.564209\n0.732483 0.905731 0.564728\n0.757202 0.905914 0.565247\n0.780975 0.906189 0.565735\n0.803802 0.906372 0.566223\n0.826019 0.906616 0.566681\n0.847839 0.906830 0.567169\n0.869415 0.907074 0.567627\n0.890961 0.907227 0.568085\n0.912933 0.907440 0.568512\n0.935699 0.907654 0.568939\n0.959961 0.907867 0.569305\n0.073517 0.924316 0.550690\n0.091400 0.924530 0.551331\n0.110931 0.924744 0.551971\n0.132416 0.924957 0.552582\n0.156219 0.925140 0.553223\n0.182556 0.925385 0.553864\n0.211548 0.925568 0.554443\n0.243011 0.925812 0.555084\n0.276733 0.925995 0.555634\n0.312592 0.926178 0.556274\n0.350311 0.926392 0.556885\n0.389618 0.926605 0.557434\n0.430145 0.926819 0.557983\n0.471497 0.926971 0.558563\n0.512115 0.927185 0.559113\n0.550385 0.927399 0.559662\n0.586273 0.927551 0.560181\n0.619720 0.927734 0.560760\n0.650818 0.927917 0.561279\n0.679962 0.928101 0.561829\n0.707306 0.928253 0.562317\n0.733185 0.928467 0.562805\n0.757874 0.928619 0.563324\n0.781494 0.928772 0.563812\n0.804260 0.928955 0.564270\n0.826416 0.929108 0.564758\n0.848114 0.929291 0.565216\n0.869598 0.929443 0.565613\n0.891144 0.929565 0.566071\n0.913055 0.929688 0.566467\n0.935730 0.929871 0.566864\n0.959961 0.930023 0.567261\n0.075226 0.948608 0.548859\n0.093292 0.948761 0.549500\n0.112915 0.948883 0.550140\n0.134521 0.949036 0.550751\n0.158417 0.949188 0.551361\n0.184937 0.949341 0.552002\n0.213989 0.949524 0.552582\n0.245544 0.949646 0.553223\n0.279358 0.949768 0.553802\n0.315216 0.949890 0.554382\n0.352905 0.950043 0.554962\n0.392151 0.950165 0.555511\n0.432678 0.950287 0.556122\n0.473816 0.950409 0.556641\n0.514160 0.950531 0.557220\n0.552185 0.950653 0.557770\n0.587799 0.950806 0.558289\n0.621033 0.950928 0.558838\n0.651947 0.951019 0.559357\n0.680908 0.951172 0.559875\n0.708130 0.951294 0.560364\n0.733948 0.951385 0.560852\n0.758453 0.951508 0.561279\n0.781952 0.951599 0.561798\n0.804688 0.951752 0.562256\n0.826752 0.951813 0.562683\n0.848389 0.951935 0.563171\n0.869812 0.952026 0.563538\n0.891327 0.952148 0.563995\n0.913147 0.952240 0.564362\n0.935822 0.952332 0.564789\n0.959961 0.952423 0.565125\n0.077026 0.973572 0.546875\n0.095093 0.973663 0.547546\n0.114868 0.973724 0.548187\n0.136597 0.973846 0.548767\n0.160645 0.973877 0.549377\n0.187317 0.973969 0.550018\n0.216431 0.974030 0.550629\n0.248077 0.974121 0.551239\n0.281860 0.974182 0.551819\n0.317749 0.974243 0.552399\n0.355438 0.974304 0.552979\n0.394623 0.974396 0.553528\n0.435028 0.974426 0.554077\n0.476074 0.974518 0.554657\n0.516174 0.974579 0.555176\n0.553925 0.974609 0.555756\n0.589355 0.974731 0.556274\n0.622314 0.974762 0.556763\n0.653046 0.974854 0.557281\n0.681854 0.974884 0.557770\n0.708954 0.974976 0.558258\n0.734619 0.975006 0.558746\n0.759033 0.975067 0.559235\n0.782501 0.975098 0.559662\n0.805084 0.975189 0.560120\n0.827087 0.975220 0.560516\n0.848663 0.975281 0.560944\n0.870056 0.975311 0.561371\n0.891449 0.975342 0.561768\n0.913269 0.975403 0.562164\n0.935852 0.975464 0.562500\n0.959961 0.975494 0.562866\n0.078766 1.000000 0.544739\n0.096954 1.000000 0.545380\n0.116821 1.000000 0.545990\n0.138672 1.000000 0.546600\n0.162842 1.000000 0.547241\n0.189575 1.000000 0.547852\n0.218872 1.000000 0.548431\n0.250519 1.000000 0.549011\n0.284363 1.000000 0.549622\n0.320282 1.000000 0.550171\n0.357941 1.000000 0.550751\n0.397003 1.000000 0.551331\n0.437347 1.000000 0.551880\n0.478271 1.000000 0.552460\n0.518097 1.000000 0.552948\n0.555634 1.000000 0.553497\n0.590820 1.000000 0.554016\n0.623566 1.000000 0.554504\n0.654144 1.000000 0.554993\n0.682770 1.000000 0.555481\n0.709717 1.000000 0.555939\n0.735229 1.000000 0.556427\n0.759583 1.000000 0.556885\n0.782959 1.000000 0.557312\n0.805481 1.000000 0.557739\n0.827393 1.000000 0.558136\n0.848907 1.000000 0.558563\n0.870270 1.000000 0.558929\n0.891602 1.000000 0.559326\n0.913391 1.000000 0.559692\n0.935944 1.000000 0.560059\n0.959961 1.000000 0.560394\n0.033478 0.004028 0.671875\n0.049072 0.004730 0.672119\n0.065826 0.005432 0.672363\n0.084106 0.006165 0.672668\n0.104187 0.006958 0.672913\n0.126373 0.007751 0.673187\n0.151093 0.008545 0.673553\n0.178802 0.009369 0.673828\n0.209534 0.010223 0.674164\n0.243286 0.011108 0.674500\n0.279663 0.012024 0.674805\n0.318604 0.012939 0.675171\n0.359741 0.013885 0.675537\n0.402679 0.014832 0.675873\n0.447083 0.015839 0.676239\n0.491943 0.016846 0.676575\n0.534729 0.017853 0.676941\n0.574738 0.018890 0.677307\n0.612000 0.019989 0.677673\n0.646423 0.021057 0.678070\n0.678436 0.022156 0.678467\n0.708405 0.023315 0.678864\n0.736633 0.024445 0.679230\n0.763428 0.025604 0.679626\n0.789032 0.026794 0.679993\n0.813721 0.027985 0.680389\n0.837738 0.029175 0.680817\n0.861389 0.030396 0.681244\n0.884979 0.031647 0.681580\n0.908875 0.032928 0.682037\n0.933533 0.034180 0.682495\n0.959961 0.035492 0.682861\n0.034363 0.020477 0.670380\n0.049988 0.021240 0.670715\n0.066864 0.022003 0.670959\n0.085205 0.022797 0.671234\n0.105347 0.023621 0.671570\n0.127686 0.024445 0.671844\n0.152557 0.025330 0.672211\n0.180359 0.026215 0.672485\n0.211243 0.027130 0.672852\n0.245087 0.028107 0.673187\n0.281586 0.029022 0.673523\n0.320557 0.029999 0.673859\n0.361755 0.031036 0.674225\n0.404724 0.032043 0.674591\n0.449066 0.033112 0.674896\n0.493805 0.034180 0.675323\n0.536438 0.035248 0.675659\n0.576263 0.036346 0.676086\n0.613312 0.037506 0.676453\n0.647583 0.038635 0.676819\n0.679413 0.039856 0.677216\n0.709259 0.041016 0.677582\n0.737396 0.042267 0.677979\n0.764069 0.043488 0.678375\n0.789551 0.044708 0.678772\n0.814178 0.045990 0.679169\n0.838135 0.047272 0.679565\n0.861664 0.048584 0.679962\n0.885162 0.049927 0.680420\n0.909027 0.051270 0.680817\n0.933655 0.052582 0.681183\n0.959961 0.053986 0.681610\n0.035278 0.037842 0.668915\n0.050964 0.038696 0.669159\n0.067871 0.039520 0.669495\n0.086334 0.040405 0.669769\n0.106628 0.041321 0.670105\n0.129059 0.042236 0.670410\n0.154083 0.043152 0.670715\n0.182068 0.044128 0.671051\n0.213074 0.045135 0.671417\n0.246979 0.046173 0.671753\n0.283600 0.047150 0.672119\n0.322662 0.048218 0.672485\n0.363831 0.049316 0.672791\n0.406799 0.050385 0.673187\n0.451172 0.051575 0.673523\n0.495697 0.052704 0.673950\n0.538177 0.053894 0.674316\n0.577759 0.055084 0.674683\n0.614624 0.056335 0.675049\n0.648712 0.057556 0.675415\n0.680450 0.058807 0.675812\n0.710114 0.060059 0.676178\n0.738129 0.061371 0.676575\n0.764709 0.062714 0.677002\n0.790131 0.064026 0.677368\n0.814636 0.065399 0.677795\n0.838501 0.066803 0.678223\n0.861969 0.068176 0.678589\n0.885437 0.069611 0.678955\n0.909149 0.071045 0.679382\n0.933716 0.072479 0.679779\n0.959961 0.073944 0.680176\n0.036224 0.056610 0.667267\n0.052032 0.057495 0.667542\n0.069031 0.058380 0.667908\n0.087524 0.059357 0.668152\n0.107910 0.060333 0.668488\n0.130524 0.061340 0.668823\n0.155670 0.062408 0.669159\n0.183777 0.063446 0.669495\n0.214966 0.064545 0.669800\n0.248993 0.065674 0.670166\n0.285675 0.066772 0.670502\n0.324768 0.067963 0.670898\n0.366028 0.069122 0.671265\n0.408966 0.070312 0.671661\n0.453278 0.071594 0.671997\n0.497742 0.072815 0.672333\n0.539917 0.074066 0.672729\n0.579407 0.075378 0.673096\n0.615997 0.076691 0.673492\n0.649902 0.078064 0.673859\n0.681519 0.079437 0.674225\n0.710999 0.080841 0.674622\n0.738892 0.082214 0.674988\n0.765350 0.083679 0.675385\n0.790649 0.085114 0.675781\n0.815063 0.086578 0.676208\n0.838898 0.088074 0.676544\n0.862305 0.089569 0.676971\n0.885681 0.091125 0.677338\n0.909332 0.092651 0.677734\n0.933807 0.094238 0.678101\n0.959961 0.095825 0.678497\n0.037262 0.076996 0.665436\n0.053101 0.078003 0.665741\n0.070190 0.079041 0.666046\n0.088837 0.080109 0.666351\n0.109344 0.081177 0.666718\n0.132050 0.082306 0.667053\n0.157349 0.083466 0.667358\n0.185608 0.084625 0.667725\n0.216919 0.085815 0.668030\n0.251068 0.087036 0.668427\n0.287842 0.088287 0.668732\n0.327026 0.089569 0.669067\n0.368286 0.090851 0.669434\n0.411194 0.092194 0.669800\n0.455475 0.093536 0.670197\n0.499756 0.094879 0.670532\n0.541779 0.096283 0.670898\n0.580963 0.097748 0.671265\n0.617371 0.099182 0.671631\n0.651123 0.100677 0.672058\n0.682526 0.102142 0.672363\n0.711914 0.103638 0.672791\n0.739685 0.105194 0.673126\n0.765991 0.106781 0.673492\n0.791229 0.108337 0.673889\n0.815582 0.109955 0.674286\n0.839294 0.111603 0.674652\n0.862610 0.113220 0.675018\n0.885864 0.114899 0.675415\n0.909454 0.116547 0.675781\n0.933868 0.118286 0.676147\n0.959961 0.120026 0.676544\n0.038361 0.099548 0.663361\n0.054260 0.100677 0.663696\n0.071442 0.101807 0.664032\n0.090210 0.103027 0.664368\n0.110779 0.104187 0.664642\n0.133606 0.105499 0.664978\n0.159088 0.106720 0.665314\n0.187531 0.108063 0.665649\n0.218964 0.109344 0.666016\n0.253235 0.110718 0.666321\n0.290070 0.112122 0.666656\n0.329315 0.113525 0.667023\n0.370575 0.114990 0.667419\n0.413544 0.116425 0.667725\n0.457733 0.117920 0.668091\n0.501831 0.119415 0.668457\n0.543610 0.121002 0.668793\n0.582581 0.122559 0.669128\n0.618805 0.124146 0.669525\n0.652344 0.125763 0.669891\n0.683594 0.127441 0.670258\n0.712860 0.129028 0.670593\n0.740479 0.130737 0.670990\n0.766693 0.132507 0.671356\n0.791809 0.134216 0.671722\n0.816040 0.135986 0.672058\n0.839691 0.137726 0.672424\n0.862946 0.139557 0.672760\n0.886139 0.141388 0.673126\n0.909668 0.143158 0.673523\n0.933990 0.145050 0.673859\n0.959961 0.146973 0.674164\n0.039490 0.124695 0.661041\n0.055481 0.125916 0.661316\n0.072723 0.127258 0.661621\n0.091583 0.128571 0.661987\n0.112305 0.129913 0.662262\n0.135284 0.131317 0.662628\n0.160889 0.132751 0.662903\n0.189484 0.134216 0.663239\n0.221069 0.135712 0.663574\n0.255432 0.137207 0.663940\n0.292328 0.138733 0.664307\n0.331665 0.140350 0.664612\n0.372925 0.141846 0.664948\n0.415894 0.143524 0.665283\n0.459991 0.145203 0.665619\n0.503937 0.146851 0.665955\n0.545471 0.148560 0.666321\n0.584259 0.150330 0.666687\n0.620239 0.152069 0.667023\n0.653625 0.153839 0.667328\n0.684662 0.155701 0.667694\n0.713776 0.157471 0.668091\n0.741272 0.159363 0.668427\n0.767365 0.161255 0.668762\n0.792389 0.163147 0.669098\n0.816559 0.165100 0.669434\n0.840088 0.166992 0.669769\n0.863251 0.169006 0.670166\n0.886383 0.171082 0.670441\n0.909821 0.173004 0.670807\n0.934082 0.175049 0.671112\n0.959961 0.177155 0.671448\n0.040680 0.152985 0.658295\n0.056702 0.154388 0.658600\n0.074097 0.155884 0.658905\n0.093048 0.157349 0.659210\n0.113861 0.158844 0.659515\n0.137024 0.160461 0.659821\n0.162781 0.162048 0.660156\n0.191498 0.163635 0.660492\n0.223236 0.165314 0.660797\n0.257721 0.166992 0.661133\n0.294708 0.168732 0.661469\n0.334045 0.170441 0.661804\n0.375366 0.172211 0.662109\n0.418243 0.174072 0.662415\n0.462311 0.175903 0.662750\n0.506073 0.177704 0.663116\n0.547394 0.179626 0.663452\n0.585907 0.181519 0.663727\n0.621674 0.183472 0.664062\n0.654877 0.185486 0.664459\n0.685760 0.187500 0.664764\n0.714691 0.189484 0.665100\n0.742065 0.191498 0.665405\n0.768036 0.193542 0.665710\n0.792938 0.195648 0.666046\n0.817017 0.197754 0.666351\n0.840485 0.199890 0.666687\n0.863556 0.202057 0.666992\n0.886627 0.204224 0.667328\n0.909943 0.206390 0.667633\n0.934143 0.208557 0.667938\n0.959961 0.210876 0.668274\n0.041931 0.184967 0.655090\n0.058014 0.186523 0.655365\n0.075500 0.188171 0.655670\n0.094574 0.189880 0.655975\n0.115509 0.191589 0.656311\n0.138763 0.193329 0.656586\n0.164734 0.195129 0.656952\n0.193634 0.196899 0.657196\n0.225464 0.198761 0.657532\n0.260040 0.200562 0.657837\n0.297150 0.202484 0.658142\n0.336517 0.204407 0.658478\n0.377838 0.206360 0.658783\n0.420715 0.208344 0.659088\n0.464691 0.210388 0.659424\n0.508209 0.212372 0.659698\n0.549286 0.214417 0.660034\n0.587616 0.216522 0.660339\n0.623108 0.218628 0.660706\n0.656097 0.220764 0.660950\n0.686829 0.222931 0.661316\n0.715668 0.225037 0.661621\n0.742859 0.227264 0.661926\n0.768738 0.229431 0.662231\n0.793549 0.231689 0.662537\n0.817505 0.233978 0.662842\n0.840881 0.236206 0.663147\n0.863892 0.238495 0.663452\n0.886871 0.240814 0.663757\n0.910126 0.243073 0.664032\n0.934235 0.245422 0.664337\n0.959961 0.247772 0.664642\n0.043213 0.220886 0.651428\n0.059418 0.222595 0.651703\n0.076965 0.224426 0.652039\n0.096130 0.226257 0.652313\n0.117249 0.228088 0.652618\n0.140656 0.230011 0.652893\n0.166718 0.231934 0.653229\n0.195770 0.233917 0.653503\n0.227753 0.235901 0.653809\n0.262390 0.237885 0.654114\n0.299591 0.239929 0.654388\n0.339020 0.242004 0.654724\n0.380341 0.244080 0.654999\n0.423218 0.246216 0.655273\n0.467133 0.248383 0.655609\n0.510376 0.250519 0.655914\n0.551239 0.252716 0.656189\n0.589325 0.254974 0.656525\n0.624573 0.257141 0.656860\n0.657379 0.259460 0.657135\n0.687927 0.261688 0.657410\n0.716614 0.263977 0.657745\n0.743713 0.266296 0.658051\n0.769440 0.268616 0.658325\n0.794159 0.270935 0.658630\n0.817993 0.273315 0.658905\n0.841248 0.275635 0.659210\n0.864258 0.278046 0.659515\n0.887085 0.280457 0.659760\n0.910278 0.282776 0.660095\n0.934296 0.285278 0.660339\n0.959961 0.287598 0.660645\n0.044525 0.260376 0.647339\n0.060822 0.262268 0.647614\n0.078491 0.264221 0.647919\n0.097717 0.266205 0.648193\n0.118958 0.268188 0.648499\n0.142548 0.270172 0.648773\n0.168793 0.272308 0.649048\n0.197968 0.274353 0.649323\n0.230103 0.276459 0.649628\n0.264862 0.278534 0.649963\n0.302094 0.280731 0.650238\n0.341553 0.282898 0.650513\n0.382874 0.285095 0.650848\n0.425720 0.287323 0.651123\n0.469513 0.289612 0.651398\n0.512604 0.291870 0.651703\n0.553192 0.294159 0.652008\n0.590973 0.296478 0.652313\n0.626068 0.298798 0.652588\n0.658691 0.301147 0.652863\n0.689026 0.303436 0.653168\n0.717529 0.305878 0.653473\n0.744476 0.308258 0.653748\n0.770142 0.310638 0.654022\n0.794708 0.313049 0.654327\n0.818451 0.315491 0.654602\n0.841675 0.317871 0.654877\n0.864502 0.320312 0.655182\n0.887329 0.322815 0.655457\n0.910492 0.325226 0.655731\n0.934387 0.327667 0.655975\n0.959961 0.330048 0.656250\n0.045929 0.303223 0.642822\n0.062286 0.305237 0.643097\n0.080017 0.307312 0.643402\n0.099426 0.309387 0.643677\n0.120758 0.311432 0.643982\n0.144501 0.313538 0.644257\n0.170868 0.315674 0.644501\n0.200256 0.317841 0.644836\n0.232483 0.320068 0.645142\n0.267365 0.322235 0.645386\n0.304688 0.324524 0.645691\n0.344208 0.326752 0.645966\n0.385437 0.329010 0.646271\n0.428284 0.331329 0.646545\n0.471954 0.333679 0.646881\n0.514832 0.335938 0.647156\n0.555115 0.338318 0.647430\n0.592651 0.340668 0.647736\n0.627594 0.343048 0.647980\n0.659943 0.345459 0.648315\n0.690125 0.347839 0.648590\n0.718475 0.350250 0.648865\n0.745300 0.352692 0.649170\n0.770813 0.355103 0.649445\n0.795349 0.357544 0.649719\n0.819000 0.359985 0.650024\n0.842072 0.362366 0.650299\n0.864868 0.364868 0.650574\n0.887573 0.367310 0.650818\n0.910614 0.369751 0.651093\n0.934509 0.372253 0.651398\n0.959961 0.374695 0.651642\n0.047333 0.348907 0.637970\n0.063751 0.350983 0.638245\n0.081604 0.353119 0.638519\n0.101135 0.355286 0.638824\n0.122620 0.357361 0.639099\n0.146515 0.359589 0.639404\n0.173065 0.361725 0.639679\n0.202637 0.363953 0.639954\n0.234985 0.366211 0.640259\n0.269897 0.368439 0.640533\n0.307312 0.370728 0.640839\n0.346802 0.373077 0.641113\n0.388092 0.375336 0.641449\n0.430878 0.377655 0.641724\n0.474426 0.380035 0.642029\n0.517059 0.382355 0.642273\n0.557129 0.384766 0.642548\n0.594452 0.387085 0.642883\n0.629089 0.389526 0.643158\n0.661194 0.391907 0.643463\n0.691223 0.394318 0.643738\n0.719452 0.396759 0.644012\n0.746124 0.399200 0.644318\n0.771545 0.401520 0.644592\n0.795898 0.403992 0.644897\n0.819458 0.406433 0.645142\n0.842468 0.408813 0.645416\n0.865173 0.411255 0.645691\n0.887848 0.413605 0.646027\n0.910767 0.416077 0.646240\n0.934570 0.418488 0.646484\n0.959961 0.420929 0.646759\n0.048798 0.397034 0.632812\n0.065338 0.399078 0.633118\n0.083252 0.401215 0.633362\n0.102844 0.403351 0.633698\n0.124542 0.405548 0.633972\n0.148560 0.407776 0.634247\n0.175293 0.409912 0.634552\n0.205017 0.412201 0.634857\n0.237457 0.414429 0.635132\n0.272522 0.416656 0.635437\n0.309937 0.418976 0.635773\n0.349487 0.421265 0.636047\n0.390778 0.423584 0.636322\n0.433472 0.425873 0.636597\n0.476898 0.428192 0.636902\n0.519257 0.430542 0.637238\n0.559052 0.432922 0.637451\n0.596100 0.435242 0.637817\n0.630524 0.437622 0.638092\n0.662506 0.439972 0.638367\n0.692352 0.442261 0.638672\n0.720398 0.444733 0.638947\n0.746948 0.447083 0.639252\n0.772217 0.449402 0.639526\n0.796448 0.451843 0.639801\n0.819946 0.454163 0.640076\n0.842896 0.456543 0.640411\n0.865479 0.458923 0.640686\n0.888031 0.461243 0.640930\n0.910950 0.463593 0.641205\n0.934692 0.466003 0.641449\n0.959961 0.468231 0.641724\n0.050262 0.446869 0.627441\n0.066895 0.448914 0.627747\n0.084930 0.451050 0.628052\n0.104675 0.453156 0.628326\n0.126434 0.455383 0.628632\n0.150635 0.457520 0.628967\n0.177582 0.459717 0.629211\n0.207397 0.461884 0.629547\n0.240021 0.464142 0.629852\n0.275116 0.466339 0.630157\n0.312622 0.468567 0.630493\n0.352173 0.470856 0.630737\n0.393433 0.473083 0.631073\n0.436127 0.475311 0.631378\n0.479401 0.477509 0.631683\n0.521484 0.479797 0.631989\n0.561035 0.482147 0.632294\n0.597839 0.484344 0.632599\n0.632019 0.486633 0.632874\n0.663788 0.488922 0.633209\n0.693420 0.491150 0.633514\n0.721344 0.493439 0.633820\n0.747772 0.495697 0.634094\n0.772919 0.497925 0.634399\n0.797089 0.500153 0.634735\n0.820465 0.502411 0.635010\n0.843262 0.504639 0.635254\n0.865814 0.506836 0.635590\n0.888275 0.509003 0.635864\n0.911133 0.511230 0.636139\n0.934723 0.513367 0.636444\n0.959961 0.515533 0.636749\n0.051819 0.497498 0.621979\n0.068481 0.499542 0.622284\n0.086670 0.501648 0.622620\n0.106476 0.503723 0.622925\n0.128418 0.505737 0.623260\n0.152802 0.507843 0.623566\n0.179901 0.509857 0.623871\n0.209869 0.511902 0.624237\n0.242554 0.514008 0.624542\n0.277771 0.516083 0.624878\n0.315338 0.518158 0.625183\n0.354858 0.520203 0.625519\n0.396088 0.522308 0.625824\n0.438721 0.524353 0.626190\n0.481934 0.526428 0.626526\n0.523712 0.528503 0.626862\n0.562988 0.530548 0.627167\n0.599579 0.532562 0.627472\n0.633514 0.534668 0.627838\n0.665070 0.536713 0.628174\n0.694550 0.538696 0.628479\n0.722290 0.540710 0.628815\n0.748566 0.542725 0.629150\n0.773621 0.544678 0.629486\n0.797638 0.546661 0.629791\n0.820892 0.548615 0.630127\n0.843689 0.550537 0.630432\n0.866089 0.552521 0.630737\n0.888550 0.554443 0.631042\n0.911285 0.556335 0.631378\n0.934845 0.558197 0.631744\n0.959961 0.560059 0.631989\n0.053375 0.546631 0.616791\n0.070160 0.548431 0.617096\n0.088409 0.550201 0.617462\n0.108398 0.552063 0.617798\n0.130493 0.553894 0.618164\n0.154938 0.555695 0.618500\n0.182220 0.557495 0.618866\n0.212372 0.559357 0.619202\n0.245209 0.561218 0.619568\n0.280487 0.562988 0.619965\n0.318054 0.564850 0.620300\n0.357635 0.566681 0.620667\n0.398865 0.568481 0.621063\n0.441376 0.570282 0.621429\n0.484436 0.572113 0.621735\n0.525970 0.573914 0.622101\n0.564911 0.575745 0.622498\n0.601227 0.577484 0.622864\n0.634979 0.579285 0.623199\n0.666290 0.581024 0.623566\n0.695618 0.582825 0.623901\n0.723206 0.584625 0.624298\n0.749359 0.586304 0.624634\n0.774261 0.588043 0.624969\n0.798248 0.589813 0.625336\n0.821411 0.591461 0.625671\n0.844025 0.593140 0.626038\n0.866394 0.594879 0.626373\n0.888763 0.596466 0.626709\n0.911469 0.598145 0.627045\n0.934937 0.599792 0.627411\n0.959961 0.601349 0.627747\n0.054962 0.591949 0.612000\n0.071838 0.593536 0.612396\n0.090210 0.595154 0.612762\n0.110291 0.596741 0.613129\n0.132507 0.598328 0.613586\n0.157196 0.599976 0.613922\n0.184631 0.601501 0.614319\n0.214905 0.603088 0.614716\n0.247803 0.604736 0.615082\n0.283203 0.606262 0.615540\n0.320831 0.607849 0.615906\n0.360352 0.609467 0.616302\n0.401550 0.611084 0.616638\n0.444031 0.612640 0.617065\n0.486938 0.614197 0.617432\n0.528168 0.615753 0.617859\n0.566895 0.617340 0.618256\n0.602936 0.618866 0.618622\n0.636414 0.620422 0.619019\n0.667603 0.621979 0.619385\n0.696686 0.623444 0.619781\n0.724152 0.625000 0.620178\n0.750153 0.626495 0.620544\n0.774963 0.627960 0.620911\n0.798798 0.629456 0.621277\n0.821869 0.630920 0.621674\n0.844452 0.632385 0.622070\n0.866699 0.633789 0.622437\n0.888977 0.635223 0.622772\n0.911621 0.636658 0.623138\n0.935028 0.638000 0.623535\n0.959961 0.639404 0.623901\n0.056580 0.633667 0.607758\n0.073547 0.635010 0.608154\n0.092010 0.636475 0.608551\n0.112274 0.637787 0.609009\n0.134613 0.639191 0.609406\n0.159454 0.640533 0.609863\n0.187042 0.641937 0.610229\n0.217468 0.643341 0.610657\n0.250488 0.644714 0.611115\n0.285889 0.646088 0.611511\n0.323578 0.647400 0.611938\n0.363129 0.648773 0.612335\n0.404297 0.650116 0.612762\n0.446655 0.651520 0.613220\n0.489410 0.652863 0.613586\n0.530365 0.654175 0.614044\n0.568848 0.655548 0.614441\n0.604614 0.656830 0.614838\n0.637848 0.658173 0.615265\n0.668823 0.659515 0.615631\n0.697754 0.660736 0.616058\n0.725067 0.662079 0.616486\n0.750916 0.663300 0.616852\n0.775604 0.664612 0.617279\n0.799347 0.665863 0.617676\n0.822327 0.667084 0.618073\n0.844788 0.668365 0.618469\n0.867035 0.669556 0.618835\n0.889221 0.670746 0.619232\n0.911774 0.671936 0.619659\n0.935089 0.673187 0.620026\n0.959961 0.674286 0.620361\n0.058197 0.671783 0.603973\n0.075287 0.673004 0.604401\n0.093903 0.674194 0.604858\n0.114227 0.675385 0.605316\n0.136719 0.676605 0.605713\n0.161743 0.677765 0.606171\n0.189484 0.678894 0.606659\n0.220001 0.680115 0.607086\n0.253113 0.681305 0.607483\n0.288635 0.682465 0.607941\n0.326355 0.683655 0.608368\n0.365906 0.684784 0.608887\n0.407043 0.685974 0.609283\n0.449310 0.687134 0.609741\n0.491882 0.688263 0.610199\n0.532593 0.689423 0.610596\n0.570709 0.690552 0.611023\n0.606262 0.691681 0.611450\n0.639252 0.692810 0.611877\n0.670044 0.693909 0.612335\n0.698853 0.695007 0.612732\n0.725983 0.696106 0.613159\n0.751740 0.697205 0.613617\n0.776245 0.698273 0.613983\n0.799866 0.699341 0.614441\n0.822784 0.700409 0.614807\n0.845215 0.701447 0.615265\n0.867340 0.702484 0.615662\n0.889465 0.703491 0.616058\n0.911957 0.704529 0.616455\n0.935181 0.705505 0.616791\n0.959961 0.706512 0.617218\n0.059906 0.706909 0.600555\n0.077057 0.707916 0.601074\n0.095734 0.708954 0.601501\n0.116211 0.709930 0.601990\n0.138885 0.710999 0.602478\n0.164062 0.712006 0.602936\n0.191956 0.712982 0.603363\n0.222626 0.714020 0.603821\n0.255798 0.715027 0.604309\n0.291412 0.716003 0.604736\n0.329132 0.717010 0.605225\n0.368622 0.717987 0.605682\n0.409729 0.718994 0.606140\n0.451904 0.720001 0.606628\n0.494293 0.720978 0.607086\n0.534729 0.721954 0.607483\n0.572632 0.722931 0.607971\n0.607910 0.723846 0.608398\n0.640656 0.724823 0.608856\n0.671234 0.725769 0.609283\n0.699860 0.726715 0.609741\n0.726868 0.727692 0.610168\n0.752441 0.728546 0.610596\n0.776917 0.729492 0.611023\n0.800446 0.730408 0.611450\n0.823273 0.731262 0.611847\n0.845551 0.732178 0.612335\n0.867584 0.733093 0.612732\n0.889648 0.733917 0.613098\n0.912048 0.734772 0.613556\n0.935242 0.735626 0.613892\n0.959961 0.736420 0.614319\n0.061584 0.739319 0.597534\n0.078827 0.740204 0.598022\n0.097656 0.741119 0.598511\n0.118225 0.741943 0.598999\n0.141083 0.742859 0.599457\n0.166351 0.743683 0.599945\n0.194427 0.744568 0.600433\n0.225250 0.745422 0.600891\n0.258484 0.746277 0.601410\n0.294189 0.747131 0.601898\n0.331879 0.748016 0.602356\n0.371368 0.748871 0.602844\n0.412384 0.749695 0.603302\n0.454529 0.750580 0.603790\n0.496704 0.751373 0.604248\n0.536804 0.752197 0.604736\n0.574463 0.753021 0.605164\n0.609497 0.753845 0.605652\n0.642090 0.754669 0.606110\n0.672424 0.755463 0.606537\n0.700897 0.756256 0.606995\n0.727722 0.757080 0.607452\n0.753235 0.757843 0.607910\n0.777557 0.758606 0.608276\n0.800964 0.759399 0.608734\n0.823669 0.760132 0.609192\n0.845917 0.760895 0.609589\n0.867889 0.761627 0.610046\n0.889862 0.762329 0.610413\n0.912201 0.763062 0.610809\n0.935333 0.763763 0.611206\n0.959961 0.764496 0.611633\n0.063293 0.769623 0.594757\n0.080658 0.770386 0.595306\n0.099579 0.771118 0.595795\n0.120361 0.771851 0.596283\n0.143250 0.772614 0.596802\n0.168701 0.773315 0.597260\n0.196930 0.774109 0.597778\n0.227875 0.774811 0.598267\n0.261230 0.775543 0.598755\n0.296875 0.776276 0.599243\n0.334686 0.777008 0.599762\n0.374146 0.777710 0.600220\n0.415161 0.778442 0.600708\n0.457153 0.779144 0.601196\n0.499054 0.779846 0.601654\n0.538940 0.780579 0.602142\n0.576294 0.781250 0.602600\n0.611115 0.781952 0.603088\n0.643433 0.782654 0.603546\n0.673584 0.783325 0.604004\n0.701904 0.783997 0.604462\n0.728607 0.784698 0.604889\n0.753937 0.785339 0.605347\n0.778137 0.785980 0.605774\n0.801514 0.786591 0.606232\n0.824158 0.787262 0.606659\n0.846222 0.787872 0.607086\n0.868195 0.788513 0.607513\n0.890076 0.789093 0.607941\n0.912323 0.789734 0.608368\n0.935394 0.790314 0.608704\n0.959961 0.790894 0.609100\n0.065033 0.798096 0.592255\n0.082458 0.798737 0.592804\n0.101440 0.799347 0.593292\n0.122375 0.799988 0.593781\n0.145447 0.800629 0.594299\n0.171051 0.801239 0.594849\n0.199463 0.801880 0.595306\n0.230469 0.802521 0.595825\n0.263885 0.803101 0.596344\n0.299622 0.803711 0.596802\n0.337402 0.804321 0.597351\n0.376831 0.804962 0.597839\n0.417816 0.805542 0.598328\n0.459717 0.806152 0.598785\n0.501434 0.806763 0.599243\n0.540985 0.807343 0.599762\n0.578094 0.807922 0.600250\n0.612640 0.808502 0.600708\n0.644806 0.809082 0.601227\n0.674744 0.809662 0.601624\n0.702850 0.810211 0.602112\n0.729431 0.810791 0.602539\n0.754669 0.811340 0.602997\n0.778809 0.811890 0.603485\n0.802002 0.812408 0.603882\n0.824554 0.812958 0.604279\n0.846619 0.813477 0.604736\n0.868439 0.813995 0.605164\n0.890289 0.814484 0.605591\n0.912476 0.815002 0.605957\n0.935455 0.815491 0.606354\n0.959961 0.815979 0.606750\n0.066772 0.825104 0.589905\n0.084320 0.825623 0.590424\n0.103455 0.826141 0.590973\n0.124451 0.826691 0.591522\n0.147675 0.827209 0.592010\n0.173431 0.827728 0.592529\n0.201996 0.828308 0.593048\n0.233093 0.828796 0.593567\n0.266632 0.829285 0.594086\n0.302399 0.829803 0.594574\n0.340149 0.830322 0.595062\n0.379608 0.830841 0.595581\n0.420441 0.831329 0.596069\n0.462189 0.831848 0.596558\n0.503693 0.832336 0.597076\n0.543030 0.832825 0.597534\n0.579865 0.833344 0.598022\n0.614197 0.833832 0.598450\n0.646088 0.834320 0.598969\n0.675873 0.834717 0.599396\n0.703857 0.835236 0.599884\n0.730286 0.835693 0.600372\n0.755371 0.836151 0.600769\n0.779388 0.836609 0.601196\n0.802521 0.837067 0.601654\n0.824951 0.837494 0.602081\n0.846924 0.837891 0.602509\n0.868713 0.838348 0.602905\n0.890503 0.838776 0.603333\n0.912598 0.839203 0.603699\n0.935516 0.839569 0.604126\n0.959961 0.839996 0.604492\n0.068512 0.850891 0.587738\n0.086151 0.851349 0.588318\n0.105377 0.851807 0.588806\n0.126556 0.852234 0.589355\n0.149902 0.852661 0.589874\n0.175842 0.853119 0.590363\n0.204498 0.853546 0.590881\n0.235687 0.854004 0.591431\n0.269287 0.854431 0.591919\n0.305115 0.854828 0.592468\n0.342834 0.855255 0.592926\n0.382294 0.855682 0.593445\n0.423096 0.856079 0.593994\n0.464691 0.856537 0.594452\n0.506012 0.856903 0.594971\n0.545013 0.857300 0.595398\n0.581573 0.857727 0.595917\n0.615692 0.858124 0.596375\n0.647400 0.858521 0.596863\n0.677002 0.858887 0.597321\n0.704834 0.859283 0.597748\n0.731079 0.859650 0.598206\n0.756073 0.860046 0.598663\n0.779938 0.860382 0.599091\n0.802948 0.860779 0.599548\n0.825348 0.861115 0.599945\n0.847290 0.861481 0.600372\n0.868958 0.861816 0.600769\n0.890656 0.862183 0.601166\n0.912750 0.862488 0.601562\n0.935577 0.862823 0.601990\n0.959961 0.863159 0.602325\n0.070312 0.875885 0.585663\n0.088013 0.876221 0.586212\n0.107361 0.876587 0.586731\n0.128632 0.876953 0.587280\n0.152161 0.877319 0.587799\n0.178253 0.877655 0.588318\n0.207001 0.878021 0.588837\n0.238281 0.878357 0.589386\n0.271942 0.878723 0.589874\n0.307800 0.879059 0.590424\n0.345520 0.879364 0.590912\n0.384857 0.879730 0.591431\n0.425598 0.880066 0.591919\n0.467163 0.880402 0.592377\n0.508209 0.880707 0.592896\n0.546936 0.881073 0.593353\n0.583282 0.881378 0.593872\n0.617157 0.881683 0.594330\n0.648651 0.882019 0.594788\n0.678070 0.882324 0.595245\n0.705688 0.882629 0.595734\n0.731873 0.882935 0.596100\n0.756714 0.883240 0.596588\n0.780518 0.883545 0.597046\n0.803467 0.883850 0.597412\n0.825714 0.884125 0.597839\n0.847595 0.884399 0.598267\n0.869232 0.884674 0.598663\n0.890839 0.884949 0.599091\n0.912842 0.885193 0.599457\n0.935638 0.885468 0.599823\n0.959961 0.885712 0.600189\n0.072083 0.900299 0.583649\n0.089874 0.900543 0.584167\n0.109344 0.900848 0.584717\n0.130737 0.901093 0.585236\n0.154388 0.901367 0.585815\n0.180603 0.901672 0.586304\n0.209534 0.901917 0.586823\n0.240906 0.902222 0.587372\n0.274597 0.902496 0.587921\n0.310486 0.902740 0.588409\n0.348206 0.903015 0.588928\n0.387512 0.903290 0.589417\n0.428192 0.903564 0.589905\n0.469543 0.903809 0.590393\n0.510376 0.904083 0.590881\n0.548859 0.904327 0.591370\n0.584961 0.904602 0.591827\n0.618591 0.904846 0.592316\n0.649872 0.905090 0.592773\n0.679108 0.905304 0.593201\n0.706604 0.905579 0.593689\n0.732605 0.905792 0.594116\n0.757324 0.906036 0.594543\n0.781067 0.906250 0.594971\n0.803894 0.906433 0.595367\n0.826080 0.906708 0.595795\n0.847870 0.906891 0.596222\n0.869446 0.907104 0.596588\n0.890991 0.907318 0.596954\n0.912933 0.907532 0.597382\n0.935699 0.907715 0.597717\n0.959961 0.907928 0.598053\n0.073822 0.924408 0.581665\n0.091736 0.924591 0.582184\n0.111298 0.924835 0.582733\n0.132812 0.925018 0.583282\n0.156647 0.925232 0.583801\n0.182983 0.925415 0.584320\n0.211975 0.925659 0.584839\n0.243439 0.925873 0.585358\n0.277252 0.926056 0.585938\n0.313110 0.926270 0.586395\n0.350800 0.926453 0.586914\n0.390076 0.926666 0.587402\n0.430664 0.926880 0.587921\n0.471924 0.927063 0.588379\n0.512512 0.927216 0.588898\n0.550720 0.927460 0.589355\n0.586548 0.927643 0.589844\n0.619965 0.927795 0.590271\n0.651031 0.928009 0.590729\n0.680084 0.928162 0.591217\n0.707458 0.928314 0.591644\n0.733337 0.928528 0.592041\n0.757996 0.928711 0.592468\n0.781586 0.928833 0.592896\n0.804352 0.929016 0.593292\n0.826477 0.929169 0.593689\n0.848175 0.929352 0.594116\n0.869629 0.929474 0.594482\n0.891174 0.929626 0.594879\n0.913086 0.929779 0.595184\n0.935791 0.929932 0.595551\n0.959961 0.930084 0.595917\n0.075623 0.948669 0.579590\n0.093597 0.948792 0.580170\n0.113281 0.948944 0.580688\n0.134949 0.949066 0.581268\n0.158844 0.949219 0.581757\n0.185364 0.949371 0.582306\n0.214478 0.949554 0.582886\n0.246002 0.949707 0.583313\n0.279816 0.949829 0.583893\n0.315704 0.949982 0.584381\n0.353363 0.950073 0.584869\n0.392639 0.950195 0.585388\n0.433105 0.950348 0.585876\n0.474213 0.950470 0.586334\n0.514526 0.950592 0.586823\n0.552490 0.950684 0.587280\n0.588104 0.950867 0.587769\n0.621277 0.950958 0.588226\n0.652222 0.951111 0.588654\n0.681061 0.951202 0.589111\n0.708282 0.951324 0.589539\n0.734070 0.951477 0.589966\n0.758575 0.951569 0.590363\n0.782074 0.951691 0.590790\n0.804779 0.951782 0.591156\n0.826813 0.951874 0.591583\n0.848450 0.951996 0.591949\n0.869873 0.952057 0.592285\n0.891357 0.952148 0.592682\n0.913208 0.952301 0.592987\n0.935822 0.952362 0.593323\n0.959961 0.952423 0.593658\n0.077362 0.973633 0.577484\n0.095490 0.973663 0.578064\n0.115234 0.973785 0.578583\n0.137024 0.973846 0.579132\n0.161041 0.973938 0.579681\n0.187683 0.973999 0.580170\n0.216919 0.974091 0.580688\n0.248474 0.974152 0.581207\n0.282349 0.974182 0.581757\n0.318207 0.974304 0.582214\n0.355896 0.974335 0.582733\n0.395081 0.974396 0.583221\n0.435455 0.974457 0.583740\n0.476471 0.974518 0.584167\n0.516571 0.974609 0.584656\n0.554260 0.974670 0.585114\n0.589600 0.974731 0.585602\n0.622559 0.974762 0.586029\n0.653259 0.974854 0.586456\n0.682037 0.974915 0.586914\n0.709106 0.974976 0.587341\n0.734741 0.975037 0.587708\n0.759125 0.975067 0.588135\n0.782562 0.975128 0.588531\n0.805176 0.975189 0.588928\n0.827148 0.975250 0.589264\n0.848724 0.975281 0.589630\n0.870056 0.975311 0.589996\n0.891510 0.975403 0.590332\n0.913269 0.975403 0.590668\n0.935883 0.975464 0.590973\n0.959961 0.975494 0.591278\n0.079163 1.000000 0.575165\n0.097351 1.000000 0.575714\n0.117188 1.000000 0.576263\n0.139069 1.000000 0.576782\n0.163239 1.000000 0.577332\n0.190002 1.000000 0.577820\n0.219299 1.000000 0.578369\n0.250946 1.000000 0.578888\n0.284851 1.000000 0.579376\n0.320740 1.000000 0.579895\n0.358368 1.000000 0.580383\n0.397491 1.000000 0.580841\n0.437805 1.000000 0.581329\n0.478638 1.000000 0.581818\n0.518433 1.000000 0.582275\n0.555908 1.000000 0.582733\n0.591064 1.000000 0.583191\n0.623810 1.000000 0.583618\n0.654358 1.000000 0.584015\n0.682953 1.000000 0.584473\n0.709839 1.000000 0.584900\n0.735352 1.000000 0.585297\n0.759705 1.000000 0.585693\n0.783020 1.000000 0.586060\n0.805542 1.000000 0.586426\n0.827454 1.000000 0.586792\n0.848969 1.000000 0.587097\n0.870270 1.000000 0.587463\n0.891632 1.000000 0.587799\n0.913391 1.000000 0.588104\n0.935944 1.000000 0.588409\n0.959961 1.000000 0.588715\n0.033630 0.004303 0.704895\n0.049225 0.005005 0.705109\n0.066040 0.005707 0.705383\n0.084320 0.006470 0.705566\n0.104370 0.007233 0.705780\n0.126617 0.008026 0.706055\n0.151337 0.008850 0.706299\n0.179047 0.009674 0.706543\n0.209869 0.010559 0.706787\n0.243561 0.011414 0.707031\n0.280029 0.012360 0.707336\n0.319000 0.013275 0.707611\n0.360077 0.014221 0.707886\n0.403076 0.015198 0.708191\n0.447449 0.016205 0.708466\n0.492218 0.017212 0.708771\n0.535065 0.018250 0.709045\n0.575043 0.019287 0.709351\n0.612213 0.020355 0.709625\n0.646637 0.021454 0.709961\n0.678650 0.022552 0.710297\n0.708557 0.023712 0.710571\n0.736755 0.024872 0.710938\n0.763519 0.026001 0.711212\n0.789124 0.027191 0.711578\n0.813812 0.028442 0.711884\n0.837799 0.029602 0.712189\n0.861450 0.030884 0.712524\n0.884979 0.032104 0.712830\n0.908875 0.033386 0.713196\n0.933533 0.034698 0.713501\n0.959961 0.035950 0.713867\n0.034485 0.020752 0.703430\n0.050140 0.021515 0.703583\n0.067047 0.022308 0.703796\n0.085388 0.023102 0.704102\n0.105591 0.023926 0.704315\n0.127930 0.024780 0.704559\n0.152832 0.025635 0.704803\n0.180664 0.026550 0.705078\n0.211609 0.027496 0.705383\n0.245453 0.028412 0.705627\n0.281982 0.029419 0.705902\n0.320953 0.030396 0.706238\n0.362122 0.031403 0.706451\n0.405121 0.032440 0.706787\n0.449493 0.033508 0.707031\n0.494141 0.034576 0.707367\n0.536743 0.035675 0.707642\n0.576508 0.036804 0.707947\n0.613525 0.037933 0.708313\n0.647766 0.039093 0.708588\n0.679626 0.040253 0.708923\n0.709412 0.041473 0.709198\n0.737549 0.042694 0.709534\n0.764191 0.043915 0.709869\n0.789673 0.045197 0.710175\n0.814240 0.046478 0.710480\n0.838165 0.047729 0.710815\n0.861755 0.049042 0.711121\n0.885193 0.050354 0.711456\n0.909058 0.051727 0.711823\n0.933655 0.053131 0.712097\n0.959961 0.054474 0.712463\n0.035461 0.038208 0.701721\n0.051147 0.039001 0.701996\n0.068115 0.039856 0.702240\n0.086548 0.040710 0.702484\n0.106842 0.041626 0.702728\n0.129303 0.042542 0.703003\n0.154327 0.043488 0.703278\n0.182343 0.044464 0.703522\n0.213440 0.045471 0.703796\n0.247345 0.046478 0.704102\n0.283997 0.047577 0.704376\n0.323059 0.048645 0.704681\n0.364258 0.049744 0.704926\n0.407257 0.050842 0.705231\n0.451538 0.051971 0.705536\n0.496094 0.053131 0.705811\n0.538513 0.054352 0.706116\n0.578094 0.055511 0.706421\n0.614868 0.056763 0.706757\n0.648956 0.058014 0.707031\n0.680664 0.059265 0.707397\n0.710297 0.060516 0.707642\n0.738281 0.061890 0.707977\n0.764832 0.063171 0.708282\n0.790222 0.064545 0.708588\n0.814728 0.065887 0.708923\n0.838562 0.067291 0.709259\n0.862061 0.068726 0.709595\n0.885468 0.070129 0.709900\n0.909180 0.071564 0.710205\n0.933746 0.073029 0.710510\n0.959961 0.074493 0.710846\n0.036407 0.056946 0.700043\n0.052246 0.057831 0.700256\n0.069214 0.058777 0.700500\n0.087799 0.059692 0.700745\n0.108154 0.060730 0.701050\n0.130768 0.061737 0.701263\n0.155975 0.062744 0.701538\n0.184082 0.063843 0.701843\n0.215332 0.064972 0.702057\n0.249359 0.066040 0.702393\n0.286102 0.067230 0.702637\n0.325226 0.068390 0.702942\n0.366425 0.069550 0.703217\n0.409424 0.070770 0.703522\n0.453674 0.072021 0.703796\n0.498108 0.073303 0.704102\n0.540344 0.074615 0.704407\n0.579651 0.075867 0.704681\n0.616272 0.077209 0.705017\n0.650146 0.078583 0.705322\n0.681671 0.079956 0.705627\n0.711182 0.081329 0.705933\n0.739044 0.082794 0.706238\n0.765503 0.084167 0.706543\n0.790741 0.085663 0.706818\n0.815186 0.087128 0.707184\n0.838959 0.088623 0.707458\n0.862335 0.090149 0.707794\n0.885681 0.091675 0.708099\n0.909363 0.093262 0.708405\n0.933838 0.094818 0.708679\n0.959961 0.096375 0.708984\n0.037476 0.077332 0.698059\n0.053314 0.078369 0.698303\n0.070465 0.079407 0.698608\n0.089081 0.080475 0.698792\n0.109589 0.081604 0.699097\n0.132324 0.082733 0.699371\n0.157654 0.083862 0.699615\n0.185974 0.085052 0.699921\n0.217316 0.086273 0.700165\n0.251434 0.087494 0.700439\n0.288269 0.088745 0.700714\n0.327393 0.090027 0.700989\n0.368683 0.091339 0.701263\n0.411652 0.092682 0.701569\n0.455841 0.094025 0.701874\n0.500122 0.095428 0.702148\n0.542114 0.096832 0.702484\n0.581268 0.098236 0.702728\n0.617676 0.099701 0.703033\n0.651398 0.101227 0.703308\n0.682709 0.102692 0.703613\n0.712097 0.104218 0.703918\n0.739838 0.105774 0.704224\n0.766174 0.107330 0.704529\n0.791321 0.108948 0.704803\n0.815643 0.110535 0.705139\n0.839355 0.112152 0.705414\n0.862671 0.113831 0.705719\n0.885925 0.115479 0.706024\n0.909485 0.117218 0.706268\n0.933899 0.118927 0.706604\n0.959961 0.120636 0.706879\n0.038544 0.099945 0.695892\n0.054504 0.101074 0.696136\n0.071716 0.102234 0.696411\n0.090393 0.103424 0.696686\n0.111053 0.104675 0.696930\n0.133942 0.105927 0.697205\n0.159393 0.107208 0.697418\n0.187866 0.108551 0.697693\n0.219330 0.109863 0.697937\n0.253601 0.111237 0.698242\n0.290497 0.112640 0.698517\n0.329742 0.114044 0.698792\n0.371002 0.115479 0.699097\n0.413971 0.117004 0.699341\n0.458099 0.118439 0.699646\n0.502258 0.119995 0.699890\n0.544006 0.121552 0.700195\n0.582886 0.123108 0.700470\n0.619080 0.124725 0.700745\n0.652588 0.126373 0.701019\n0.683746 0.127991 0.701294\n0.713013 0.129700 0.701630\n0.740601 0.131348 0.701874\n0.766846 0.133087 0.702209\n0.791931 0.134857 0.702454\n0.816132 0.136597 0.702698\n0.839752 0.138397 0.703003\n0.863007 0.140228 0.703247\n0.886169 0.141998 0.703583\n0.909668 0.143890 0.703827\n0.933990 0.145752 0.704102\n0.959961 0.147644 0.704376\n0.039734 0.125153 0.693390\n0.055725 0.126434 0.693665\n0.072998 0.127777 0.693878\n0.091827 0.129059 0.694183\n0.112610 0.130463 0.694397\n0.135620 0.131897 0.694641\n0.161255 0.133301 0.694916\n0.189850 0.134766 0.695160\n0.221405 0.136200 0.695404\n0.255829 0.137787 0.695709\n0.292786 0.139313 0.695984\n0.332062 0.140869 0.696198\n0.373383 0.142487 0.696533\n0.416321 0.144165 0.696747\n0.460419 0.145752 0.697021\n0.504364 0.147461 0.697266\n0.545868 0.149200 0.697540\n0.584503 0.150909 0.697815\n0.620514 0.152710 0.698090\n0.653839 0.154541 0.698364\n0.684875 0.156311 0.698639\n0.713959 0.158203 0.698853\n0.741425 0.160034 0.699158\n0.767487 0.161957 0.699402\n0.792480 0.163879 0.699707\n0.816620 0.165771 0.699921\n0.840149 0.167725 0.700226\n0.863342 0.169769 0.700439\n0.886414 0.171722 0.700714\n0.909851 0.173798 0.700958\n0.934082 0.175842 0.701233\n0.959961 0.177856 0.701477\n0.040894 0.153473 0.690521\n0.056946 0.154938 0.690826\n0.074341 0.156433 0.691010\n0.093292 0.157898 0.691254\n0.114166 0.159485 0.691467\n0.137329 0.161041 0.691742\n0.163116 0.162628 0.691986\n0.191925 0.164276 0.692230\n0.223633 0.165894 0.692505\n0.258118 0.167603 0.692749\n0.295227 0.169373 0.692993\n0.334503 0.171112 0.693237\n0.375793 0.172882 0.693481\n0.418793 0.174713 0.693726\n0.462769 0.176514 0.694000\n0.506500 0.178467 0.694214\n0.547729 0.180359 0.694458\n0.586243 0.182251 0.694763\n0.621979 0.184235 0.694977\n0.655090 0.186157 0.695221\n0.685944 0.188171 0.695496\n0.714874 0.190247 0.695679\n0.742218 0.192261 0.695984\n0.768158 0.194366 0.696198\n0.793060 0.196472 0.696472\n0.817108 0.198547 0.696686\n0.840546 0.200684 0.696930\n0.863617 0.202850 0.697205\n0.886658 0.204987 0.697418\n0.909973 0.207214 0.697662\n0.934174 0.209381 0.697845\n0.959961 0.211609 0.698090\n0.042145 0.185547 0.687195\n0.058289 0.187195 0.687439\n0.075775 0.188812 0.687653\n0.094849 0.190491 0.687897\n0.115845 0.192230 0.688141\n0.139130 0.193939 0.688354\n0.165070 0.195740 0.688629\n0.194031 0.197540 0.688812\n0.225830 0.199402 0.689056\n0.260468 0.201294 0.689270\n0.297577 0.203247 0.689514\n0.336975 0.205109 0.689758\n0.378296 0.207062 0.690002\n0.421143 0.209106 0.690247\n0.465057 0.211090 0.690491\n0.508667 0.213104 0.690704\n0.549683 0.215210 0.690948\n0.587860 0.217285 0.691132\n0.623444 0.219421 0.691406\n0.656342 0.221497 0.691620\n0.687042 0.223694 0.691895\n0.715851 0.225891 0.692108\n0.743011 0.228058 0.692322\n0.768890 0.230286 0.692566\n0.793671 0.232544 0.692780\n0.817596 0.234802 0.693024\n0.840942 0.237061 0.693237\n0.863922 0.239380 0.693451\n0.886902 0.241638 0.693665\n0.910156 0.243958 0.693878\n0.934265 0.246246 0.694092\n0.959961 0.248596 0.694336\n0.043457 0.221466 0.683411\n0.059662 0.223267 0.683624\n0.077209 0.225098 0.683838\n0.096405 0.226929 0.684052\n0.117554 0.228821 0.684296\n0.140961 0.230682 0.684509\n0.167145 0.232635 0.684753\n0.196228 0.234650 0.684937\n0.228180 0.236603 0.685150\n0.262878 0.238647 0.685394\n0.300110 0.240723 0.685608\n0.339447 0.242798 0.685852\n0.380798 0.244873 0.686066\n0.423676 0.247009 0.686310\n0.467499 0.249146 0.686523\n0.510864 0.251343 0.686707\n0.551575 0.253510 0.686951\n0.589600 0.255768 0.687134\n0.624908 0.257996 0.687408\n0.657593 0.260193 0.687622\n0.688141 0.262543 0.687866\n0.716766 0.264862 0.688049\n0.743805 0.267120 0.688263\n0.769592 0.269470 0.688477\n0.794250 0.271820 0.688690\n0.818085 0.274139 0.688904\n0.841339 0.276550 0.689117\n0.864288 0.278900 0.689331\n0.887146 0.281281 0.689545\n0.910370 0.283752 0.689728\n0.934326 0.286072 0.689911\n0.959961 0.288574 0.690125\n0.044800 0.261078 0.679169\n0.061096 0.263000 0.679382\n0.078735 0.264893 0.679626\n0.098022 0.266907 0.679779\n0.119324 0.268921 0.680023\n0.142883 0.270905 0.680206\n0.169189 0.273010 0.680420\n0.198425 0.275116 0.680634\n0.230530 0.277191 0.680847\n0.265350 0.279358 0.681091\n0.302612 0.281555 0.681305\n0.342041 0.283722 0.681488\n0.383362 0.285980 0.681732\n0.426178 0.288177 0.681915\n0.469971 0.290405 0.682159\n0.513031 0.292664 0.682343\n0.553528 0.295013 0.682556\n0.591309 0.297302 0.682770\n0.626373 0.299652 0.683044\n0.658875 0.301941 0.683228\n0.689240 0.304352 0.683441\n0.717712 0.306763 0.683624\n0.744629 0.309113 0.683838\n0.770294 0.311523 0.684052\n0.794861 0.313965 0.684235\n0.818604 0.316315 0.684448\n0.841736 0.318787 0.684631\n0.864563 0.321167 0.684845\n0.887390 0.323608 0.685059\n0.910492 0.326141 0.685242\n0.934387 0.328552 0.685455\n0.959961 0.331055 0.685608\n0.046204 0.303955 0.674469\n0.062561 0.305969 0.674713\n0.080292 0.307983 0.674896\n0.099731 0.310089 0.675110\n0.121094 0.312195 0.675323\n0.144806 0.314301 0.675537\n0.171326 0.316467 0.675751\n0.200745 0.318665 0.675964\n0.232971 0.320862 0.676147\n0.267883 0.323120 0.676392\n0.305176 0.325348 0.676575\n0.344696 0.327606 0.676788\n0.385956 0.329895 0.677032\n0.428741 0.332153 0.677185\n0.472382 0.334473 0.677429\n0.515289 0.336853 0.677612\n0.555511 0.339172 0.677856\n0.593018 0.341553 0.678040\n0.627899 0.343964 0.678253\n0.660187 0.346313 0.678467\n0.690338 0.348724 0.678650\n0.718689 0.351166 0.678894\n0.745483 0.353546 0.679047\n0.770966 0.355988 0.679291\n0.795441 0.358398 0.679504\n0.819061 0.360870 0.679688\n0.842133 0.363373 0.679840\n0.864929 0.365753 0.680054\n0.887604 0.368195 0.680267\n0.910675 0.370697 0.680420\n0.934509 0.373138 0.680634\n0.959961 0.375580 0.680817\n0.047607 0.349670 0.669495\n0.064056 0.351776 0.669678\n0.081879 0.353912 0.669891\n0.101410 0.355988 0.670105\n0.122986 0.358154 0.670319\n0.146820 0.360352 0.670502\n0.173492 0.362579 0.670746\n0.203033 0.364807 0.670929\n0.235413 0.367035 0.671173\n0.270386 0.369354 0.671326\n0.307770 0.371552 0.671600\n0.347290 0.373871 0.671783\n0.388611 0.376251 0.672028\n0.431335 0.378540 0.672180\n0.474884 0.380890 0.672424\n0.517517 0.383270 0.672638\n0.557434 0.385620 0.672821\n0.594727 0.388000 0.673035\n0.629395 0.390411 0.673218\n0.661438 0.392761 0.673462\n0.691437 0.395203 0.673645\n0.719604 0.397614 0.673859\n0.746277 0.400024 0.674042\n0.771637 0.402466 0.674286\n0.795990 0.404907 0.674438\n0.819580 0.407257 0.674683\n0.842529 0.409729 0.674866\n0.865204 0.412109 0.675049\n0.887878 0.414551 0.675262\n0.910797 0.416992 0.675415\n0.934601 0.419373 0.675629\n0.959961 0.421814 0.675812\n0.049072 0.397705 0.664185\n0.065613 0.399902 0.664398\n0.083557 0.401978 0.664612\n0.103210 0.404175 0.664825\n0.124878 0.406342 0.665039\n0.148895 0.408539 0.665222\n0.175720 0.410767 0.665466\n0.205444 0.413025 0.665649\n0.237946 0.415253 0.665894\n0.273041 0.417572 0.666077\n0.310425 0.419800 0.666321\n0.349945 0.422119 0.666504\n0.391235 0.424500 0.666748\n0.433929 0.426758 0.666962\n0.477417 0.429108 0.667175\n0.519714 0.431427 0.667389\n0.559387 0.433746 0.667572\n0.596466 0.436127 0.667816\n0.630829 0.438507 0.668030\n0.662720 0.440857 0.668213\n0.692535 0.443207 0.668457\n0.720551 0.445526 0.668671\n0.747101 0.447906 0.668854\n0.772339 0.450317 0.669037\n0.796570 0.452667 0.669250\n0.820068 0.455048 0.669434\n0.842957 0.457458 0.669647\n0.865540 0.459778 0.669830\n0.888092 0.462128 0.670074\n0.910980 0.464478 0.670258\n0.934692 0.466766 0.670441\n0.959961 0.469147 0.670624\n0.050537 0.447601 0.658661\n0.067200 0.449738 0.658905\n0.085236 0.451843 0.659119\n0.105011 0.454010 0.659332\n0.126831 0.456177 0.659576\n0.151031 0.458282 0.659760\n0.178040 0.460541 0.660004\n0.207886 0.462738 0.660217\n0.240448 0.464905 0.660431\n0.275635 0.467163 0.660645\n0.313110 0.469391 0.660889\n0.352631 0.471680 0.661102\n0.393982 0.473938 0.661346\n0.436523 0.476105 0.661560\n0.479889 0.478363 0.661774\n0.521973 0.480682 0.662018\n0.561401 0.482910 0.662231\n0.598145 0.485199 0.662445\n0.632324 0.487457 0.662659\n0.664001 0.489746 0.662903\n0.693634 0.492004 0.663086\n0.721497 0.494202 0.663361\n0.747925 0.496490 0.663574\n0.773010 0.498779 0.663757\n0.797180 0.500946 0.664001\n0.820526 0.503235 0.664185\n0.843323 0.505463 0.664459\n0.865875 0.507660 0.664612\n0.888336 0.509857 0.664825\n0.911163 0.512024 0.665070\n0.934784 0.514160 0.665253\n0.959961 0.516296 0.665497\n0.052124 0.498260 0.653046\n0.068817 0.500366 0.653290\n0.086945 0.502350 0.653534\n0.106873 0.504456 0.653748\n0.128845 0.506531 0.654022\n0.153198 0.508545 0.654236\n0.180328 0.510651 0.654510\n0.210327 0.512665 0.654724\n0.243103 0.514771 0.654999\n0.278290 0.516876 0.655212\n0.315796 0.518921 0.655457\n0.355408 0.520996 0.655731\n0.396637 0.523071 0.655945\n0.439209 0.525116 0.656219\n0.482452 0.527222 0.656433\n0.524200 0.529266 0.656708\n0.563354 0.531281 0.656982\n0.599884 0.533325 0.657227\n0.633728 0.535370 0.657440\n0.665314 0.537384 0.657715\n0.694733 0.539429 0.657959\n0.722473 0.541443 0.658203\n0.748718 0.543427 0.658447\n0.773743 0.545410 0.658691\n0.797760 0.547363 0.658966\n0.821014 0.549347 0.659210\n0.843719 0.551300 0.659454\n0.866150 0.553192 0.659698\n0.888611 0.555145 0.659912\n0.911316 0.557007 0.660156\n0.934845 0.558929 0.660431\n0.959961 0.560760 0.660645\n0.053680 0.547302 0.647705\n0.070496 0.549103 0.647919\n0.088715 0.550873 0.648224\n0.108734 0.552704 0.648499\n0.130859 0.554596 0.648804\n0.155365 0.556366 0.649017\n0.182678 0.558197 0.649323\n0.212799 0.559998 0.649597\n0.245667 0.561829 0.649872\n0.280945 0.563721 0.650177\n0.318573 0.565491 0.650421\n0.358154 0.567322 0.650726\n0.399353 0.569183 0.651001\n0.441864 0.570923 0.651276\n0.484924 0.572784 0.651550\n0.526428 0.574585 0.651886\n0.565277 0.576385 0.652100\n0.601593 0.578156 0.652405\n0.635254 0.579956 0.652710\n0.666534 0.581696 0.652954\n0.695831 0.583435 0.653259\n0.723389 0.585205 0.653473\n0.749512 0.586914 0.653839\n0.774384 0.588715 0.654053\n0.798340 0.590363 0.654327\n0.821472 0.592072 0.654633\n0.844086 0.593781 0.654877\n0.866516 0.595459 0.655182\n0.888824 0.597076 0.655457\n0.911499 0.598755 0.655701\n0.934967 0.600342 0.655945\n0.959961 0.601959 0.656250\n0.055267 0.592560 0.642792\n0.072144 0.594147 0.643066\n0.090485 0.595703 0.643433\n0.110687 0.597351 0.643707\n0.132935 0.598938 0.644043\n0.157623 0.600494 0.644318\n0.185059 0.602142 0.644623\n0.215363 0.603668 0.644958\n0.248352 0.605316 0.645233\n0.283722 0.606873 0.645569\n0.321320 0.608490 0.645844\n0.360840 0.610077 0.646179\n0.402069 0.611664 0.646515\n0.444489 0.613190 0.646820\n0.487427 0.614807 0.647095\n0.528625 0.616364 0.647400\n0.567261 0.617920 0.647736\n0.603271 0.619476 0.648041\n0.636688 0.620941 0.648346\n0.667786 0.622528 0.648651\n0.696930 0.624023 0.648987\n0.724304 0.625519 0.649292\n0.750305 0.627045 0.649567\n0.775085 0.628540 0.649872\n0.798889 0.629974 0.650177\n0.821991 0.631470 0.650452\n0.844513 0.632904 0.650787\n0.866760 0.634308 0.651062\n0.889038 0.635712 0.651337\n0.911621 0.637085 0.651672\n0.935028 0.638519 0.651917\n0.959961 0.639862 0.652252\n0.056885 0.634186 0.638397\n0.073883 0.635559 0.638733\n0.092346 0.636871 0.639069\n0.112640 0.638336 0.639374\n0.135010 0.639679 0.639740\n0.159851 0.641052 0.640076\n0.187531 0.642456 0.640411\n0.217896 0.643799 0.640747\n0.250946 0.645233 0.641083\n0.286438 0.646606 0.641418\n0.324066 0.647919 0.641754\n0.363647 0.649292 0.642120\n0.404816 0.650635 0.642456\n0.447205 0.652008 0.642731\n0.489868 0.653320 0.643127\n0.530762 0.654663 0.643433\n0.569183 0.656006 0.643768\n0.604950 0.657318 0.644104\n0.638123 0.658630 0.644470\n0.669037 0.659943 0.644775\n0.697968 0.661224 0.645111\n0.725250 0.662476 0.645416\n0.751068 0.663818 0.645752\n0.775726 0.665070 0.646088\n0.799438 0.666321 0.646423\n0.822418 0.667572 0.646729\n0.844879 0.668793 0.647064\n0.867096 0.669983 0.647369\n0.889282 0.671234 0.647644\n0.911804 0.672394 0.647980\n0.935120 0.673553 0.648285\n0.959961 0.674713 0.648560\n0.058533 0.672241 0.634491\n0.075653 0.673462 0.634827\n0.094177 0.674652 0.635193\n0.114594 0.675812 0.635559\n0.137146 0.676971 0.635895\n0.162140 0.678162 0.636292\n0.189941 0.679382 0.636658\n0.220490 0.680511 0.636993\n0.253632 0.681702 0.637390\n0.289185 0.682892 0.637756\n0.326813 0.684052 0.638092\n0.366394 0.685242 0.638428\n0.407532 0.686371 0.638824\n0.449799 0.687531 0.639160\n0.492310 0.688690 0.639526\n0.532959 0.689819 0.639862\n0.571075 0.690948 0.640259\n0.606598 0.692139 0.640594\n0.639557 0.693207 0.640930\n0.670258 0.694336 0.641266\n0.699036 0.695435 0.641632\n0.726135 0.696503 0.641998\n0.751831 0.697601 0.642365\n0.776428 0.698669 0.642670\n0.800018 0.699768 0.643005\n0.822876 0.700806 0.643341\n0.845276 0.701813 0.643677\n0.867401 0.702850 0.644043\n0.889496 0.703888 0.644318\n0.911957 0.704865 0.644653\n0.935181 0.705902 0.644958\n0.959961 0.706909 0.645264\n0.060211 0.707275 0.630920\n0.077393 0.708313 0.631317\n0.096069 0.709290 0.631653\n0.116638 0.710327 0.632111\n0.139282 0.711304 0.632477\n0.164459 0.712341 0.632843\n0.192413 0.713379 0.633240\n0.223083 0.714355 0.633636\n0.256317 0.715363 0.633972\n0.291931 0.716370 0.634369\n0.329620 0.717377 0.634766\n0.369141 0.718384 0.635162\n0.410217 0.719330 0.635559\n0.452423 0.720337 0.635864\n0.494781 0.721313 0.636261\n0.535095 0.722290 0.636658\n0.572968 0.723267 0.637024\n0.608246 0.724243 0.637390\n0.640961 0.725159 0.637756\n0.671448 0.726135 0.638153\n0.700043 0.727051 0.638519\n0.727020 0.727997 0.638855\n0.752594 0.728912 0.639221\n0.777039 0.729828 0.639587\n0.800537 0.730743 0.639893\n0.823364 0.731628 0.640259\n0.845581 0.732513 0.640594\n0.867645 0.733368 0.640930\n0.889709 0.734253 0.641266\n0.912048 0.735077 0.641632\n0.935303 0.735931 0.641937\n0.959961 0.736755 0.642242\n0.061920 0.739685 0.627716\n0.079193 0.740509 0.628113\n0.097961 0.741394 0.628540\n0.118683 0.742279 0.628937\n0.141449 0.743134 0.629303\n0.166809 0.744049 0.629761\n0.194946 0.744873 0.630157\n0.225708 0.745758 0.630524\n0.259003 0.746613 0.630951\n0.294647 0.747467 0.631348\n0.332428 0.748291 0.631744\n0.371948 0.749146 0.632141\n0.412903 0.750000 0.632538\n0.454987 0.750824 0.632935\n0.497162 0.751678 0.633331\n0.537231 0.752502 0.633667\n0.574768 0.753296 0.634094\n0.609833 0.754150 0.634460\n0.642303 0.754944 0.634857\n0.672668 0.755737 0.635254\n0.701111 0.756561 0.635590\n0.727875 0.757355 0.635986\n0.753357 0.758118 0.636322\n0.777679 0.758881 0.636719\n0.801056 0.759644 0.637054\n0.823761 0.760406 0.637421\n0.846008 0.761169 0.637726\n0.867950 0.761871 0.638092\n0.889923 0.762634 0.638428\n0.912231 0.763336 0.638763\n0.935333 0.764038 0.639130\n0.959961 0.764740 0.639435\n0.063629 0.769897 0.624817\n0.080963 0.770660 0.625244\n0.099884 0.771393 0.625641\n0.120697 0.772156 0.626099\n0.143646 0.772858 0.626495\n0.169159 0.773590 0.626892\n0.197449 0.774353 0.627350\n0.228333 0.775085 0.627716\n0.261780 0.775787 0.628143\n0.297424 0.776550 0.628571\n0.335144 0.777283 0.628967\n0.374664 0.777985 0.629395\n0.415619 0.778687 0.629791\n0.457581 0.779419 0.630157\n0.499573 0.780090 0.630585\n0.539307 0.780792 0.630981\n0.576630 0.781525 0.631409\n0.611359 0.782196 0.631775\n0.643646 0.782898 0.632141\n0.673798 0.783569 0.632568\n0.702057 0.784210 0.632935\n0.728760 0.784912 0.633301\n0.754059 0.785553 0.633698\n0.778259 0.786224 0.634033\n0.801575 0.786835 0.634399\n0.824219 0.787506 0.634766\n0.846313 0.788116 0.635132\n0.868225 0.788727 0.635468\n0.890076 0.789337 0.635834\n0.912323 0.789948 0.636169\n0.935394 0.790527 0.636505\n0.959961 0.791077 0.636841\n0.065369 0.798340 0.622131\n0.082794 0.798981 0.622589\n0.101837 0.799561 0.623016\n0.122772 0.800201 0.623413\n0.145905 0.800842 0.623901\n0.171539 0.801483 0.624298\n0.199951 0.802094 0.624725\n0.230927 0.802734 0.625153\n0.264435 0.803314 0.625580\n0.300140 0.803925 0.625977\n0.337891 0.804565 0.626404\n0.377380 0.805176 0.626801\n0.418243 0.805756 0.627228\n0.460114 0.806366 0.627655\n0.501862 0.807007 0.628082\n0.541351 0.807556 0.628479\n0.578400 0.808136 0.628876\n0.612946 0.808746 0.629272\n0.645020 0.809296 0.629669\n0.674988 0.809875 0.630066\n0.703064 0.810394 0.630432\n0.729584 0.811005 0.630798\n0.754791 0.811554 0.631165\n0.778900 0.812073 0.631561\n0.802124 0.812592 0.631927\n0.824646 0.813171 0.632263\n0.846680 0.813690 0.632660\n0.868469 0.814178 0.632996\n0.890320 0.814667 0.633362\n0.912506 0.815186 0.633698\n0.935486 0.815674 0.634003\n0.959961 0.816132 0.634369\n0.067139 0.825287 0.619659\n0.084625 0.825806 0.620056\n0.103790 0.826355 0.620544\n0.124817 0.826904 0.621002\n0.148102 0.827423 0.621399\n0.173920 0.827911 0.621826\n0.202484 0.828491 0.622284\n0.233551 0.828979 0.622742\n0.267120 0.829468 0.623169\n0.302856 0.830017 0.623535\n0.340637 0.830505 0.623993\n0.380096 0.831024 0.624451\n0.420929 0.831543 0.624878\n0.462677 0.832031 0.625275\n0.504181 0.832520 0.625702\n0.543427 0.833008 0.626099\n0.580200 0.833496 0.626526\n0.614502 0.834015 0.626862\n0.646362 0.834473 0.627289\n0.676117 0.834961 0.627655\n0.704041 0.835388 0.628082\n0.730438 0.835846 0.628479\n0.755493 0.836304 0.628845\n0.779480 0.836761 0.629211\n0.802582 0.837219 0.629578\n0.825012 0.837646 0.629944\n0.846985 0.838074 0.630280\n0.868774 0.838501 0.630646\n0.890533 0.838928 0.631012\n0.912628 0.839325 0.631317\n0.935516 0.839722 0.631653\n0.959961 0.840118 0.631989\n0.068878 0.851105 0.617340\n0.086517 0.851501 0.617767\n0.105774 0.851959 0.618225\n0.126953 0.852386 0.618652\n0.150330 0.852844 0.619110\n0.176300 0.853271 0.619568\n0.204956 0.853699 0.619995\n0.236176 0.854156 0.620422\n0.269775 0.854553 0.620880\n0.305573 0.854980 0.621307\n0.343323 0.855408 0.621765\n0.382751 0.855835 0.622192\n0.423462 0.856262 0.622589\n0.465179 0.856659 0.623016\n0.506470 0.857056 0.623413\n0.545410 0.857452 0.623840\n0.581940 0.857880 0.624268\n0.615967 0.858246 0.624634\n0.647644 0.858673 0.625000\n0.677185 0.859039 0.625458\n0.704987 0.859406 0.625793\n0.731232 0.859802 0.626190\n0.756165 0.860168 0.626587\n0.780029 0.860535 0.626953\n0.803070 0.860931 0.627319\n0.825439 0.861267 0.627686\n0.847321 0.861603 0.628021\n0.868988 0.861969 0.628357\n0.890686 0.862274 0.628693\n0.912781 0.862610 0.629059\n0.935577 0.862946 0.629364\n0.959961 0.863281 0.629700\n0.070618 0.876007 0.615082\n0.088348 0.876343 0.615509\n0.107727 0.876740 0.615997\n0.129028 0.877075 0.616455\n0.152557 0.877441 0.616913\n0.178680 0.877777 0.617340\n0.207458 0.878143 0.617798\n0.238800 0.878479 0.618225\n0.272491 0.878845 0.618713\n0.308289 0.879181 0.619110\n0.346008 0.879517 0.619537\n0.385406 0.879852 0.619995\n0.426117 0.880157 0.620392\n0.467590 0.880524 0.620789\n0.508667 0.880859 0.621246\n0.547272 0.881165 0.621643\n0.583588 0.881500 0.622040\n0.617432 0.881805 0.622467\n0.648834 0.882111 0.622864\n0.678253 0.882446 0.623230\n0.705872 0.882751 0.623627\n0.732025 0.883057 0.624023\n0.756866 0.883362 0.624359\n0.780640 0.883636 0.624756\n0.803558 0.883942 0.625122\n0.825806 0.884216 0.625488\n0.847656 0.884491 0.625824\n0.869232 0.884766 0.626160\n0.890869 0.885010 0.626495\n0.912842 0.885284 0.626831\n0.935669 0.885559 0.627136\n0.959961 0.885773 0.627472\n0.072388 0.900391 0.612915\n0.090210 0.900635 0.613373\n0.109711 0.900940 0.613831\n0.131134 0.901184 0.614288\n0.154785 0.901489 0.614716\n0.181091 0.901764 0.615204\n0.209961 0.902008 0.615662\n0.241394 0.902313 0.616119\n0.275116 0.902618 0.616516\n0.310913 0.902832 0.617004\n0.348694 0.903168 0.617401\n0.388031 0.903412 0.617828\n0.428589 0.903656 0.618256\n0.470032 0.903931 0.618683\n0.510742 0.904175 0.619080\n0.549194 0.904449 0.619507\n0.585236 0.904694 0.619934\n0.618835 0.904938 0.620300\n0.650085 0.905182 0.620728\n0.679321 0.905396 0.621124\n0.706757 0.905640 0.621490\n0.732758 0.905853 0.621887\n0.757477 0.906097 0.622253\n0.781158 0.906342 0.622589\n0.803986 0.906555 0.622955\n0.826172 0.906769 0.623322\n0.847961 0.906952 0.623627\n0.869476 0.907166 0.623962\n0.891052 0.907379 0.624298\n0.912994 0.907593 0.624634\n0.935699 0.907806 0.624939\n0.959961 0.907990 0.625244\n0.074158 0.924469 0.610748\n0.092102 0.924713 0.611176\n0.111633 0.924896 0.611694\n0.133209 0.925079 0.612152\n0.157013 0.925293 0.612640\n0.183472 0.925537 0.613068\n0.212463 0.925751 0.613495\n0.243958 0.925934 0.613983\n0.277710 0.926117 0.614410\n0.313538 0.926331 0.614838\n0.351288 0.926575 0.615265\n0.390564 0.926758 0.615723\n0.431152 0.926941 0.616119\n0.472351 0.927124 0.616547\n0.512848 0.927338 0.616943\n0.551086 0.927490 0.617371\n0.586853 0.927704 0.617798\n0.620209 0.927887 0.618164\n0.651245 0.928040 0.618530\n0.680267 0.928223 0.618958\n0.707611 0.928436 0.619324\n0.733490 0.928558 0.619690\n0.758118 0.928741 0.620026\n0.781677 0.928894 0.620422\n0.804413 0.929077 0.620758\n0.826538 0.929260 0.621094\n0.848236 0.929382 0.621429\n0.869690 0.929535 0.621765\n0.891235 0.929657 0.622070\n0.913086 0.929810 0.622406\n0.935791 0.929962 0.622681\n0.959961 0.930115 0.622955\n0.075897 0.948730 0.608551\n0.093933 0.948883 0.609070\n0.113678 0.948975 0.609558\n0.135284 0.949158 0.609985\n0.159241 0.949280 0.610443\n0.185852 0.949432 0.610901\n0.214905 0.949585 0.611359\n0.246460 0.949768 0.611786\n0.280304 0.949860 0.612244\n0.316162 0.950012 0.612671\n0.353851 0.950134 0.613068\n0.393066 0.950256 0.613525\n0.433533 0.950378 0.613922\n0.474670 0.950470 0.614380\n0.514923 0.950623 0.614777\n0.552795 0.950745 0.615204\n0.588409 0.950867 0.615570\n0.621521 0.951019 0.615967\n0.652374 0.951141 0.616364\n0.681274 0.951233 0.616730\n0.708435 0.951355 0.617096\n0.734192 0.951477 0.617493\n0.758698 0.951599 0.617828\n0.782135 0.951721 0.618134\n0.804840 0.951782 0.618500\n0.826904 0.951874 0.618866\n0.848480 0.951996 0.619171\n0.869934 0.952118 0.619476\n0.891357 0.952209 0.619781\n0.913208 0.952332 0.620087\n0.935822 0.952393 0.620392\n0.959961 0.952515 0.620636\n0.077698 0.973663 0.606323\n0.095795 0.973694 0.606781\n0.115631 0.973816 0.607239\n0.137360 0.973846 0.607727\n0.161469 0.973969 0.608154\n0.188141 0.974030 0.608612\n0.217346 0.974091 0.609070\n0.248993 0.974182 0.609528\n0.282837 0.974213 0.609955\n0.318695 0.974304 0.610382\n0.356354 0.974365 0.610809\n0.395538 0.974396 0.611237\n0.435913 0.974518 0.611664\n0.476898 0.974548 0.612061\n0.516907 0.974609 0.612457\n0.554565 0.974701 0.612854\n0.589874 0.974731 0.613281\n0.622833 0.974823 0.613647\n0.653442 0.974854 0.614014\n0.682220 0.974976 0.614441\n0.709259 0.975006 0.614746\n0.734863 0.975067 0.615112\n0.759247 0.975098 0.615448\n0.782654 0.975189 0.615845\n0.805206 0.975220 0.616150\n0.827179 0.975250 0.616455\n0.848785 0.975281 0.616760\n0.870117 0.975342 0.617065\n0.891541 0.975403 0.617401\n0.913300 0.975433 0.617645\n0.935883 0.975494 0.617920\n0.959961 0.975494 0.618164\n0.079437 1.000000 0.603821\n0.097656 1.000000 0.604309\n0.117554 1.000000 0.604767\n0.139435 1.000000 0.605225\n0.163635 1.000000 0.605682\n0.190430 1.000000 0.606140\n0.219757 1.000000 0.606567\n0.251373 1.000000 0.607056\n0.285309 1.000000 0.607483\n0.321198 1.000000 0.607880\n0.358826 1.000000 0.608307\n0.397919 1.000000 0.608734\n0.438232 1.000000 0.609161\n0.479034 1.000000 0.609558\n0.518829 1.000000 0.609985\n0.556274 1.000000 0.610352\n0.591339 1.000000 0.610748\n0.624023 1.000000 0.611145\n0.654510 1.000000 0.611511\n0.683075 1.000000 0.611877\n0.710022 1.000000 0.612213\n0.735535 1.000000 0.612549\n0.759827 1.000000 0.612915\n0.783112 1.000000 0.613251\n0.805634 1.000000 0.613556\n0.827515 1.000000 0.613861\n0.849030 1.000000 0.614197\n0.870300 1.000000 0.614441\n0.891632 1.000000 0.614716\n0.913422 1.000000 0.614990\n0.935944 1.000000 0.615234\n0.959961 1.000000 0.615479\n0.033783 0.004517 0.735901\n0.049377 0.005249 0.736115\n0.066223 0.005981 0.736267\n0.084503 0.006744 0.736420\n0.104584 0.007538 0.736633\n0.126862 0.008301 0.736816\n0.151642 0.009125 0.737000\n0.179382 0.010010 0.737213\n0.210175 0.010864 0.737427\n0.243927 0.011780 0.737640\n0.280365 0.012695 0.737885\n0.319366 0.013611 0.738098\n0.360474 0.014587 0.738312\n0.403442 0.015533 0.738525\n0.447815 0.016571 0.738739\n0.492584 0.017609 0.739014\n0.535339 0.018616 0.739258\n0.575348 0.019684 0.739471\n0.612457 0.020782 0.739716\n0.646851 0.021881 0.739990\n0.678802 0.022980 0.740204\n0.708710 0.024139 0.740448\n0.736908 0.025299 0.740723\n0.763641 0.026489 0.740936\n0.789215 0.027649 0.741211\n0.813904 0.028839 0.741455\n0.837891 0.030090 0.741760\n0.861511 0.031311 0.742004\n0.885040 0.032593 0.742249\n0.908905 0.033875 0.742523\n0.933594 0.035126 0.742798\n0.959961 0.036438 0.743042\n0.034698 0.021027 0.734314\n0.050323 0.021790 0.734467\n0.067230 0.022552 0.734650\n0.085632 0.023407 0.734833\n0.105804 0.024231 0.735046\n0.128204 0.025085 0.735260\n0.153107 0.025970 0.735443\n0.181030 0.026917 0.735657\n0.211914 0.027802 0.735901\n0.245789 0.028778 0.736115\n0.282318 0.029755 0.736298\n0.321350 0.030731 0.736542\n0.362518 0.031769 0.736786\n0.405457 0.032837 0.737000\n0.449860 0.033875 0.737244\n0.494537 0.034973 0.737488\n0.537109 0.036072 0.737701\n0.576843 0.037201 0.737976\n0.613800 0.038361 0.738220\n0.647980 0.039520 0.738464\n0.679810 0.040710 0.738739\n0.709564 0.041931 0.738953\n0.737640 0.043152 0.739166\n0.764282 0.044403 0.739441\n0.789734 0.045624 0.739716\n0.814331 0.046936 0.739960\n0.838257 0.048248 0.740234\n0.861816 0.049561 0.740479\n0.885254 0.050903 0.740723\n0.909088 0.052246 0.740997\n0.933655 0.053619 0.741241\n0.959961 0.054993 0.741486\n0.035583 0.038452 0.732574\n0.051361 0.039307 0.732788\n0.068298 0.040131 0.732941\n0.086761 0.041046 0.733154\n0.107117 0.041962 0.733368\n0.129578 0.042908 0.733551\n0.154694 0.043854 0.733795\n0.182678 0.044861 0.734009\n0.213745 0.045837 0.734222\n0.247742 0.046875 0.734467\n0.284363 0.047943 0.734650\n0.323456 0.049011 0.734894\n0.364685 0.050140 0.735138\n0.407593 0.051270 0.735352\n0.451904 0.052368 0.735565\n0.496490 0.053589 0.735840\n0.538849 0.054749 0.736053\n0.578400 0.055969 0.736298\n0.615112 0.057251 0.736572\n0.649139 0.058411 0.736786\n0.680817 0.059753 0.737030\n0.710449 0.061005 0.737244\n0.738403 0.062347 0.737549\n0.764954 0.063690 0.737793\n0.790344 0.065033 0.738007\n0.814789 0.066406 0.738251\n0.838654 0.067810 0.738495\n0.862091 0.069183 0.738770\n0.885498 0.070648 0.738983\n0.909210 0.072113 0.739258\n0.933746 0.073547 0.739502\n0.959961 0.075043 0.739746\n0.036621 0.057251 0.730713\n0.052399 0.058136 0.730957\n0.069458 0.059113 0.731110\n0.088013 0.060089 0.731323\n0.108459 0.061066 0.731506\n0.131104 0.062103 0.731750\n0.156281 0.063171 0.731964\n0.184479 0.064270 0.732147\n0.215637 0.065369 0.732361\n0.249786 0.066467 0.732635\n0.286469 0.067627 0.732819\n0.325592 0.068817 0.733063\n0.366913 0.070038 0.733276\n0.409821 0.071228 0.733521\n0.454071 0.072479 0.733765\n0.498505 0.073761 0.733978\n0.540619 0.075043 0.734253\n0.579956 0.076385 0.734436\n0.616516 0.077728 0.734680\n0.650360 0.079071 0.734894\n0.681885 0.080444 0.735168\n0.711365 0.081848 0.735413\n0.739166 0.083282 0.735657\n0.765625 0.084747 0.735870\n0.790863 0.086151 0.736115\n0.815277 0.087646 0.736359\n0.839050 0.089203 0.736572\n0.862427 0.090698 0.736816\n0.885742 0.092255 0.737061\n0.909363 0.093842 0.737305\n0.933838 0.095398 0.737518\n0.959961 0.097015 0.737793\n0.037689 0.077759 0.728699\n0.053558 0.078766 0.728882\n0.070618 0.079803 0.729065\n0.089325 0.080902 0.729309\n0.109894 0.082031 0.729492\n0.132599 0.083099 0.729706\n0.157990 0.084320 0.729889\n0.186310 0.085480 0.730133\n0.217682 0.086700 0.730347\n0.251831 0.087952 0.730560\n0.288666 0.089203 0.730743\n0.327850 0.090515 0.731018\n0.369110 0.091827 0.731232\n0.412109 0.093170 0.731445\n0.456268 0.094543 0.731720\n0.500549 0.095947 0.731903\n0.542450 0.097351 0.732117\n0.581573 0.098816 0.732330\n0.617920 0.100220 0.732574\n0.651581 0.101715 0.732819\n0.682922 0.103271 0.733032\n0.712280 0.104797 0.733246\n0.739990 0.106323 0.733459\n0.766296 0.107941 0.733734\n0.791412 0.109497 0.733917\n0.815765 0.111145 0.734161\n0.839447 0.112793 0.734375\n0.862762 0.114441 0.734589\n0.885956 0.116119 0.734833\n0.909576 0.117798 0.735077\n0.933899 0.119537 0.735260\n0.959961 0.121307 0.735504\n0.038788 0.100372 0.726410\n0.054718 0.101532 0.726624\n0.071930 0.102692 0.726807\n0.090698 0.103912 0.726990\n0.111389 0.105133 0.727203\n0.134216 0.106384 0.727417\n0.159760 0.107727 0.727631\n0.188263 0.108978 0.727814\n0.219727 0.110382 0.727997\n0.254059 0.111755 0.728241\n0.290894 0.113129 0.728455\n0.330200 0.114563 0.728638\n0.371460 0.116028 0.728851\n0.414368 0.117523 0.729065\n0.458527 0.119019 0.729279\n0.502594 0.120575 0.729492\n0.544312 0.122131 0.729706\n0.583221 0.123718 0.729919\n0.619354 0.125336 0.730164\n0.652802 0.126953 0.730377\n0.683990 0.128601 0.730591\n0.713196 0.130280 0.730804\n0.740753 0.132019 0.730988\n0.766968 0.133728 0.731201\n0.792023 0.135468 0.731384\n0.816193 0.137238 0.731628\n0.839844 0.139069 0.731812\n0.863037 0.140839 0.732086\n0.886230 0.142731 0.732239\n0.909698 0.144531 0.732452\n0.933990 0.146454 0.732666\n0.959961 0.148346 0.732849\n0.039917 0.125610 0.723816\n0.055939 0.126923 0.723999\n0.073242 0.128204 0.724152\n0.092102 0.129608 0.724365\n0.112885 0.130951 0.724579\n0.135925 0.132385 0.724762\n0.161591 0.133820 0.724945\n0.190216 0.135254 0.725159\n0.221863 0.136780 0.725372\n0.256287 0.138336 0.725555\n0.293243 0.139862 0.725769\n0.332550 0.141479 0.725952\n0.373840 0.143097 0.726135\n0.416748 0.144714 0.726318\n0.460846 0.146423 0.726562\n0.504761 0.148071 0.726776\n0.546204 0.149811 0.726929\n0.584900 0.151611 0.727173\n0.620789 0.153320 0.727325\n0.654053 0.155182 0.727539\n0.685059 0.157013 0.727753\n0.714111 0.158844 0.727936\n0.741547 0.160736 0.728119\n0.767639 0.162689 0.728333\n0.792603 0.164551 0.728516\n0.816711 0.166504 0.728699\n0.840240 0.168488 0.728882\n0.863373 0.170441 0.729065\n0.886444 0.172516 0.729248\n0.909851 0.174530 0.729431\n0.934082 0.176544 0.729614\n0.959961 0.178680 0.729797\n0.041168 0.153992 0.720825\n0.057220 0.155487 0.721008\n0.074615 0.156952 0.721191\n0.093597 0.158478 0.721375\n0.114502 0.160034 0.721527\n0.137665 0.161621 0.721741\n0.163513 0.163239 0.721924\n0.192261 0.164825 0.722107\n0.224030 0.166534 0.722260\n0.258575 0.168274 0.722473\n0.295593 0.169983 0.722656\n0.334930 0.171753 0.722809\n0.376312 0.173615 0.723022\n0.419128 0.175415 0.723175\n0.463165 0.177246 0.723389\n0.506866 0.179108 0.723572\n0.548065 0.181030 0.723755\n0.586548 0.182983 0.723907\n0.622253 0.184906 0.724091\n0.655273 0.186951 0.724243\n0.686157 0.188965 0.724457\n0.715057 0.190948 0.724609\n0.742340 0.193024 0.724792\n0.768311 0.195160 0.724976\n0.793182 0.197174 0.725128\n0.817230 0.199341 0.725311\n0.840637 0.201477 0.725494\n0.863678 0.203644 0.725616\n0.886719 0.205841 0.725800\n0.910004 0.208008 0.725952\n0.934174 0.210205 0.726074\n0.959961 0.212463 0.726288\n0.042419 0.186127 0.717377\n0.058533 0.187744 0.717560\n0.076050 0.189453 0.717712\n0.095123 0.191162 0.717865\n0.116180 0.192871 0.718048\n0.139465 0.194641 0.718231\n0.165466 0.196442 0.718384\n0.194427 0.198212 0.718536\n0.226318 0.200104 0.718689\n0.260925 0.201996 0.718872\n0.298096 0.203888 0.719055\n0.337433 0.205841 0.719238\n0.378723 0.207794 0.719391\n0.421631 0.209778 0.719543\n0.465546 0.211853 0.719696\n0.509064 0.213837 0.719879\n0.550018 0.215973 0.720062\n0.588257 0.218079 0.720215\n0.623718 0.220154 0.720367\n0.656586 0.222351 0.720551\n0.687256 0.224487 0.720703\n0.716003 0.226685 0.720856\n0.743195 0.228882 0.721008\n0.769012 0.231140 0.721161\n0.793762 0.233337 0.721313\n0.817688 0.235596 0.721466\n0.841034 0.237885 0.721619\n0.864014 0.240204 0.721771\n0.886932 0.242523 0.721893\n0.910187 0.244781 0.722046\n0.934265 0.247101 0.722198\n0.959961 0.249481 0.722321\n0.043671 0.222168 0.713440\n0.059906 0.223907 0.713623\n0.077515 0.225739 0.713776\n0.096741 0.227661 0.713928\n0.117828 0.229462 0.714050\n0.141327 0.231415 0.714233\n0.167511 0.233368 0.714386\n0.196594 0.235352 0.714508\n0.228638 0.237366 0.714722\n0.263367 0.239410 0.714874\n0.300568 0.241425 0.714996\n0.339966 0.243561 0.715149\n0.381287 0.245636 0.715332\n0.424133 0.247833 0.715454\n0.467926 0.249969 0.715607\n0.511230 0.252106 0.715759\n0.551941 0.254333 0.715942\n0.589935 0.256592 0.716064\n0.625214 0.258820 0.716187\n0.657867 0.261078 0.716400\n0.688324 0.263397 0.716522\n0.716949 0.265656 0.716644\n0.743988 0.268005 0.716797\n0.769684 0.270294 0.716980\n0.794342 0.272705 0.717072\n0.818176 0.275055 0.717224\n0.841431 0.277374 0.717316\n0.864349 0.279816 0.717499\n0.887177 0.282227 0.717651\n0.910400 0.284607 0.717773\n0.934357 0.287018 0.717896\n0.959961 0.289459 0.718048\n0.045044 0.261810 0.709076\n0.061371 0.263702 0.709229\n0.079041 0.265656 0.709351\n0.098358 0.267670 0.709503\n0.119629 0.269653 0.709625\n0.143219 0.271698 0.709808\n0.169556 0.273804 0.709961\n0.198853 0.275879 0.710114\n0.230957 0.278046 0.710266\n0.265808 0.280121 0.710388\n0.303070 0.282318 0.710510\n0.342529 0.284576 0.710693\n0.383820 0.286743 0.710815\n0.426666 0.289001 0.710968\n0.470428 0.291260 0.711090\n0.513458 0.293549 0.711243\n0.553925 0.295837 0.711395\n0.591644 0.298187 0.711578\n0.626617 0.300476 0.711670\n0.659149 0.302887 0.711823\n0.689423 0.305267 0.711945\n0.717896 0.307617 0.712128\n0.744781 0.309998 0.712250\n0.770416 0.312408 0.712341\n0.794983 0.314789 0.712463\n0.818695 0.317261 0.712646\n0.841797 0.319641 0.712769\n0.864655 0.322083 0.712891\n0.887451 0.324615 0.713013\n0.910522 0.326965 0.713135\n0.934448 0.329468 0.713257\n0.959961 0.331970 0.713348\n0.046448 0.304688 0.704285\n0.062836 0.306702 0.704407\n0.080597 0.308807 0.704559\n0.100006 0.310852 0.704681\n0.121460 0.312958 0.704865\n0.145203 0.315125 0.704987\n0.171722 0.317322 0.705109\n0.201141 0.319458 0.705261\n0.233398 0.321686 0.705414\n0.268311 0.323883 0.705566\n0.305664 0.326141 0.705688\n0.345184 0.328461 0.705841\n0.386444 0.330688 0.705994\n0.429199 0.333069 0.706085\n0.472870 0.335388 0.706268\n0.515656 0.337708 0.706421\n0.555847 0.340088 0.706543\n0.593353 0.342468 0.706635\n0.628113 0.344788 0.706818\n0.660400 0.347229 0.706940\n0.690521 0.349579 0.707062\n0.718872 0.352020 0.707184\n0.745636 0.354492 0.707275\n0.771088 0.356842 0.707458\n0.795563 0.359344 0.707611\n0.819153 0.361786 0.707703\n0.842224 0.364227 0.707825\n0.864990 0.366699 0.707977\n0.887695 0.369171 0.708069\n0.910675 0.371552 0.708221\n0.934509 0.374023 0.708344\n0.959961 0.376495 0.708466\n0.047913 0.350464 0.699127\n0.064331 0.352539 0.699280\n0.082214 0.354645 0.699432\n0.101746 0.356812 0.699554\n0.123322 0.358948 0.699707\n0.147247 0.361206 0.699860\n0.173889 0.363373 0.699951\n0.203491 0.365601 0.700134\n0.235901 0.367889 0.700256\n0.270874 0.370148 0.700409\n0.308289 0.372437 0.700531\n0.347809 0.374756 0.700684\n0.389069 0.377075 0.700806\n0.431854 0.379456 0.700958\n0.475342 0.381775 0.701080\n0.517883 0.384094 0.701202\n0.557831 0.386505 0.701355\n0.595093 0.388885 0.701538\n0.629608 0.391296 0.701630\n0.661713 0.393646 0.701782\n0.691650 0.396057 0.701874\n0.719788 0.398499 0.702026\n0.746429 0.400909 0.702179\n0.771759 0.403320 0.702301\n0.796112 0.405792 0.702423\n0.819672 0.408203 0.702576\n0.842621 0.410583 0.702698\n0.865234 0.413025 0.702789\n0.887909 0.415497 0.702972\n0.910858 0.417877 0.703064\n0.934601 0.420288 0.703186\n0.959961 0.422638 0.703278\n0.049377 0.398529 0.693726\n0.065887 0.400635 0.693848\n0.083862 0.402832 0.694000\n0.103577 0.405029 0.694122\n0.125244 0.407135 0.694275\n0.149323 0.409393 0.694427\n0.176117 0.411560 0.694550\n0.205933 0.413788 0.694702\n0.238373 0.416107 0.694855\n0.273468 0.418365 0.694977\n0.310974 0.420685 0.695129\n0.350494 0.422974 0.695312\n0.391754 0.425232 0.695404\n0.434479 0.427612 0.695557\n0.477875 0.429962 0.695709\n0.520111 0.432281 0.695862\n0.559814 0.434631 0.695984\n0.596771 0.436951 0.696136\n0.631073 0.439362 0.696228\n0.662964 0.441711 0.696411\n0.692719 0.444061 0.696564\n0.720734 0.446411 0.696686\n0.747253 0.448853 0.696808\n0.772491 0.451172 0.696991\n0.796692 0.453552 0.697083\n0.820160 0.455933 0.697235\n0.843048 0.458252 0.697357\n0.865601 0.460602 0.697510\n0.888153 0.462952 0.697632\n0.911011 0.465271 0.697723\n0.934692 0.467651 0.697876\n0.959961 0.469940 0.697998\n0.050842 0.448395 0.688080\n0.067505 0.450470 0.688232\n0.085571 0.452637 0.688385\n0.105347 0.454742 0.688507\n0.127197 0.456940 0.688660\n0.151428 0.459167 0.688812\n0.178436 0.461304 0.688995\n0.208313 0.463562 0.689117\n0.240997 0.465759 0.689270\n0.276154 0.467957 0.689423\n0.313629 0.470215 0.689575\n0.353180 0.472504 0.689728\n0.394409 0.474670 0.689880\n0.437103 0.476990 0.690063\n0.480347 0.479187 0.690186\n0.522339 0.481476 0.690338\n0.561768 0.483795 0.690460\n0.598450 0.485962 0.690643\n0.632538 0.488312 0.690796\n0.664215 0.490570 0.690948\n0.693878 0.492798 0.691101\n0.721710 0.495087 0.691254\n0.748047 0.497375 0.691376\n0.773163 0.499542 0.691528\n0.797272 0.501831 0.691681\n0.820618 0.504059 0.691833\n0.843384 0.506226 0.692017\n0.865906 0.508453 0.692108\n0.888367 0.510620 0.692261\n0.911194 0.512787 0.692444\n0.934784 0.514984 0.692566\n0.959961 0.517059 0.692688\n0.052368 0.499084 0.682312\n0.069122 0.501068 0.682465\n0.087311 0.503174 0.682617\n0.107208 0.505157 0.682800\n0.129181 0.507263 0.683014\n0.153595 0.509338 0.683136\n0.180725 0.511353 0.683319\n0.210815 0.513489 0.683533\n0.243561 0.515564 0.683685\n0.278778 0.517578 0.683838\n0.316315 0.519714 0.684021\n0.355896 0.521759 0.684235\n0.397095 0.523804 0.684387\n0.439728 0.525879 0.684570\n0.482849 0.527893 0.684692\n0.524597 0.530029 0.684906\n0.563721 0.532043 0.685120\n0.600189 0.534027 0.685272\n0.634003 0.536133 0.685425\n0.665497 0.538177 0.685669\n0.694916 0.540161 0.685791\n0.722626 0.542175 0.686005\n0.748840 0.544250 0.686157\n0.773834 0.546112 0.686371\n0.797882 0.548157 0.686523\n0.821106 0.550018 0.686707\n0.843811 0.551971 0.686890\n0.866211 0.553925 0.687042\n0.888611 0.555786 0.687256\n0.911346 0.557709 0.687378\n0.934845 0.559631 0.687561\n0.959961 0.561432 0.687775\n0.053986 0.547943 0.676819\n0.070770 0.549744 0.677002\n0.089081 0.551575 0.677216\n0.109100 0.553345 0.677399\n0.131226 0.555237 0.677612\n0.155762 0.557068 0.677856\n0.183105 0.558838 0.678040\n0.213287 0.560730 0.678253\n0.246185 0.562531 0.678436\n0.281494 0.564331 0.678680\n0.319092 0.566193 0.678864\n0.358673 0.568024 0.679047\n0.399872 0.569794 0.679260\n0.442352 0.571625 0.679504\n0.485382 0.573395 0.679718\n0.526794 0.575226 0.679932\n0.565674 0.577026 0.680115\n0.601898 0.578796 0.680359\n0.635498 0.580566 0.680542\n0.666809 0.582367 0.680756\n0.696014 0.584106 0.680969\n0.723572 0.585846 0.681183\n0.749634 0.587616 0.681396\n0.774536 0.589294 0.681580\n0.798462 0.591034 0.681793\n0.821594 0.592773 0.682007\n0.844177 0.594360 0.682220\n0.866547 0.596039 0.682404\n0.888855 0.597687 0.682617\n0.911530 0.599365 0.682831\n0.934967 0.600952 0.683014\n0.959961 0.602539 0.683228\n0.055573 0.593140 0.671844\n0.072479 0.594696 0.672028\n0.090851 0.596283 0.672272\n0.110992 0.597870 0.672485\n0.133270 0.599487 0.672760\n0.158020 0.601105 0.672974\n0.185486 0.602692 0.673218\n0.215851 0.604279 0.673462\n0.248810 0.605896 0.673676\n0.284241 0.607483 0.673950\n0.321838 0.609070 0.674164\n0.361420 0.610687 0.674408\n0.402527 0.612213 0.674652\n0.445038 0.613800 0.674896\n0.487762 0.615387 0.675110\n0.529022 0.616913 0.675385\n0.567596 0.618439 0.675598\n0.603546 0.619995 0.675842\n0.636932 0.621552 0.676086\n0.668030 0.623077 0.676331\n0.697083 0.624573 0.676575\n0.724518 0.626068 0.676788\n0.750397 0.627625 0.677032\n0.775208 0.629028 0.677277\n0.798981 0.630524 0.677490\n0.822052 0.631958 0.677704\n0.844574 0.633423 0.677948\n0.866821 0.634827 0.678192\n0.889069 0.636200 0.678436\n0.911682 0.637634 0.678650\n0.935089 0.639038 0.678864\n0.959961 0.640381 0.679077\n0.057190 0.634644 0.667267\n0.074188 0.636078 0.667542\n0.092682 0.637451 0.667816\n0.112976 0.638824 0.668060\n0.135406 0.640198 0.668304\n0.160278 0.641571 0.668610\n0.187958 0.642944 0.668854\n0.218414 0.644348 0.669128\n0.251434 0.645691 0.669403\n0.286957 0.647034 0.669678\n0.324585 0.648438 0.669922\n0.364136 0.649780 0.670227\n0.405273 0.651154 0.670471\n0.447662 0.652496 0.670746\n0.490326 0.653809 0.670990\n0.531158 0.655182 0.671265\n0.569550 0.656494 0.671539\n0.605255 0.657776 0.671814\n0.638397 0.659149 0.672089\n0.669250 0.660431 0.672302\n0.698151 0.661713 0.672577\n0.725433 0.662994 0.672852\n0.751251 0.664276 0.673126\n0.775879 0.665527 0.673370\n0.799530 0.666779 0.673615\n0.822510 0.667999 0.673889\n0.844940 0.669220 0.674133\n0.867126 0.670441 0.674408\n0.889313 0.671631 0.674622\n0.911835 0.672791 0.674866\n0.935120 0.674011 0.675110\n0.959961 0.675171 0.675323\n0.058838 0.672699 0.663208\n0.075958 0.673889 0.663483\n0.094574 0.675049 0.663788\n0.114990 0.676208 0.664062\n0.137512 0.677429 0.664368\n0.162598 0.678650 0.664673\n0.190369 0.679779 0.664948\n0.220978 0.680969 0.665253\n0.254150 0.682190 0.665558\n0.289673 0.683319 0.665833\n0.327362 0.684479 0.666107\n0.366913 0.685608 0.666443\n0.407990 0.686798 0.666687\n0.450287 0.687958 0.666992\n0.492798 0.689117 0.667267\n0.533386 0.690247 0.667572\n0.571442 0.691406 0.667877\n0.606873 0.692474 0.668152\n0.639832 0.693604 0.668427\n0.670502 0.694733 0.668701\n0.699219 0.695801 0.669006\n0.726288 0.696899 0.669250\n0.751984 0.697998 0.669525\n0.776520 0.699066 0.669800\n0.800079 0.700134 0.670105\n0.822937 0.701172 0.670380\n0.845337 0.702209 0.670624\n0.867432 0.703278 0.670898\n0.889526 0.704285 0.671204\n0.911987 0.705261 0.671417\n0.935181 0.706268 0.671692\n0.959961 0.707214 0.671906\n0.060516 0.707611 0.659515\n0.077698 0.708649 0.659851\n0.096436 0.709686 0.660187\n0.116974 0.710663 0.660461\n0.139679 0.711700 0.660797\n0.164917 0.712708 0.661133\n0.192871 0.713715 0.661407\n0.223602 0.714722 0.661743\n0.256805 0.715729 0.662018\n0.292419 0.716736 0.662384\n0.330170 0.717743 0.662659\n0.369690 0.718719 0.662964\n0.410736 0.719727 0.663300\n0.452911 0.720703 0.663635\n0.495178 0.721649 0.663940\n0.535431 0.722626 0.664215\n0.573273 0.723633 0.664520\n0.608490 0.724579 0.664825\n0.641205 0.725525 0.665131\n0.671722 0.726501 0.665405\n0.700256 0.727386 0.665710\n0.727203 0.728333 0.665985\n0.752716 0.729248 0.666290\n0.777130 0.730194 0.666595\n0.800659 0.731049 0.666901\n0.823456 0.731934 0.667145\n0.845673 0.732849 0.667450\n0.867737 0.733704 0.667694\n0.889771 0.734558 0.667999\n0.912109 0.735413 0.668243\n0.935303 0.736237 0.668549\n0.959961 0.737030 0.668823\n0.062225 0.739990 0.656219\n0.079498 0.740845 0.656555\n0.098358 0.741730 0.656891\n0.119019 0.742615 0.657196\n0.141876 0.743469 0.657562\n0.167236 0.744324 0.657898\n0.195374 0.745178 0.658203\n0.226166 0.746063 0.658569\n0.259491 0.746918 0.658844\n0.295227 0.747772 0.659180\n0.332947 0.748627 0.659546\n0.372406 0.749451 0.659851\n0.413452 0.750336 0.660187\n0.455505 0.751160 0.660492\n0.497589 0.752014 0.660797\n0.537628 0.752808 0.661133\n0.575195 0.753632 0.661499\n0.610107 0.754456 0.661743\n0.642609 0.755280 0.662079\n0.672852 0.756042 0.662354\n0.701294 0.756836 0.662720\n0.728058 0.757660 0.663025\n0.753479 0.758392 0.663300\n0.777771 0.759186 0.663574\n0.801147 0.759918 0.663940\n0.823853 0.760681 0.664215\n0.846069 0.761444 0.664490\n0.868011 0.762177 0.664764\n0.889954 0.762909 0.665039\n0.912231 0.763611 0.665375\n0.935364 0.764282 0.665619\n0.959961 0.764984 0.665894\n0.063934 0.770203 0.653168\n0.081329 0.770935 0.653534\n0.100250 0.771667 0.653900\n0.121094 0.772400 0.654236\n0.144073 0.773132 0.654572\n0.169556 0.773865 0.654907\n0.197906 0.774628 0.655243\n0.228851 0.775330 0.655579\n0.262207 0.776062 0.655945\n0.297943 0.776825 0.656281\n0.335693 0.777527 0.656647\n0.375153 0.778198 0.656952\n0.416107 0.778961 0.657318\n0.458069 0.779663 0.657654\n0.499939 0.780365 0.657990\n0.539734 0.781067 0.658295\n0.576996 0.781769 0.658630\n0.611725 0.782471 0.658936\n0.643951 0.783142 0.659302\n0.674042 0.783783 0.659607\n0.702271 0.784485 0.659912\n0.728943 0.785156 0.660187\n0.754211 0.785797 0.660553\n0.778351 0.786438 0.660858\n0.801697 0.787109 0.661163\n0.824280 0.787689 0.661438\n0.846375 0.788330 0.661743\n0.868286 0.788940 0.662079\n0.890137 0.789581 0.662354\n0.912384 0.790161 0.662628\n0.935425 0.790710 0.662903\n0.959961 0.791290 0.663147\n0.065674 0.798553 0.650360\n0.083160 0.799194 0.650757\n0.102203 0.799835 0.651062\n0.123138 0.800446 0.651459\n0.146301 0.801086 0.651825\n0.171936 0.801697 0.652161\n0.200378 0.802338 0.652527\n0.231445 0.802948 0.652893\n0.264923 0.803558 0.653229\n0.300690 0.804138 0.653595\n0.338409 0.804810 0.653931\n0.377899 0.805389 0.654266\n0.418823 0.806000 0.654663\n0.460602 0.806580 0.654968\n0.502289 0.807190 0.655334\n0.541779 0.807770 0.655640\n0.578766 0.808380 0.656006\n0.613251 0.808929 0.656342\n0.645264 0.809479 0.656647\n0.675201 0.810059 0.656952\n0.703247 0.810608 0.657318\n0.729767 0.811188 0.657623\n0.754913 0.811737 0.657928\n0.778992 0.812286 0.658234\n0.802216 0.812775 0.658569\n0.824707 0.813354 0.658875\n0.846741 0.813873 0.659149\n0.868530 0.814331 0.659454\n0.890350 0.814850 0.659729\n0.912537 0.815399 0.660004\n0.935486 0.815857 0.660339\n0.959961 0.816315 0.660583\n0.067413 0.825470 0.647736\n0.085022 0.826019 0.648102\n0.104187 0.826569 0.648468\n0.125244 0.827057 0.648834\n0.148529 0.827606 0.649231\n0.174347 0.828125 0.649597\n0.202911 0.828674 0.649963\n0.234070 0.829163 0.650299\n0.267609 0.829651 0.650696\n0.303375 0.830200 0.651062\n0.341187 0.830688 0.651428\n0.380615 0.831207 0.651733\n0.421417 0.831757 0.652100\n0.463135 0.832214 0.652435\n0.504578 0.832672 0.652832\n0.543793 0.833191 0.653168\n0.580536 0.833679 0.653503\n0.614777 0.834167 0.653839\n0.646576 0.834625 0.654205\n0.676331 0.835114 0.654510\n0.704224 0.835602 0.654846\n0.730591 0.836029 0.655121\n0.755615 0.836456 0.655457\n0.779602 0.836945 0.655823\n0.802704 0.837372 0.656097\n0.825073 0.837799 0.656403\n0.847046 0.838226 0.656708\n0.868805 0.838654 0.656982\n0.890564 0.839050 0.657288\n0.912628 0.839508 0.657562\n0.935547 0.839874 0.657837\n0.959961 0.840271 0.658112\n0.069183 0.851257 0.645233\n0.086853 0.851685 0.645630\n0.106110 0.852112 0.645996\n0.127350 0.852570 0.646393\n0.150757 0.853027 0.646820\n0.176727 0.853424 0.647156\n0.205414 0.853851 0.647522\n0.236694 0.854309 0.647888\n0.270294 0.854706 0.648285\n0.306122 0.855133 0.648651\n0.343872 0.855560 0.649017\n0.383240 0.855988 0.649323\n0.424011 0.856415 0.649719\n0.465576 0.856781 0.650116\n0.506866 0.857208 0.650421\n0.545746 0.857635 0.650787\n0.582245 0.858002 0.651123\n0.616272 0.858398 0.651459\n0.647888 0.858826 0.651794\n0.677399 0.859161 0.652100\n0.705139 0.859558 0.652466\n0.731354 0.859924 0.652802\n0.756287 0.860291 0.653107\n0.780151 0.860657 0.653442\n0.803162 0.861023 0.653687\n0.825500 0.861389 0.653992\n0.847412 0.861725 0.654327\n0.869019 0.862091 0.654602\n0.890778 0.862427 0.654907\n0.912781 0.862732 0.655182\n0.935577 0.863068 0.655457\n0.959961 0.863373 0.655731\n0.070953 0.876160 0.642883\n0.088715 0.876495 0.643311\n0.108063 0.876831 0.643677\n0.129395 0.877228 0.644043\n0.153015 0.877563 0.644440\n0.179108 0.877899 0.644836\n0.207977 0.878265 0.645203\n0.239288 0.878601 0.645569\n0.272949 0.878937 0.645935\n0.308807 0.879303 0.646301\n0.346527 0.879639 0.646698\n0.385895 0.879974 0.647064\n0.426575 0.880310 0.647400\n0.468048 0.880646 0.647766\n0.509064 0.880951 0.648163\n0.547668 0.881287 0.648468\n0.583923 0.881592 0.648834\n0.617676 0.881958 0.649139\n0.649078 0.882233 0.649475\n0.678436 0.882568 0.649872\n0.706055 0.882874 0.650146\n0.732147 0.883179 0.650482\n0.756958 0.883453 0.650787\n0.780731 0.883759 0.651093\n0.803619 0.884033 0.651459\n0.825867 0.884308 0.651703\n0.847687 0.884613 0.652008\n0.869293 0.884857 0.652283\n0.890900 0.885101 0.652588\n0.912903 0.885406 0.652863\n0.935669 0.885620 0.653168\n0.959961 0.885895 0.653412\n0.072723 0.900482 0.640625\n0.090576 0.900726 0.640991\n0.110046 0.901031 0.641357\n0.131500 0.901306 0.641785\n0.155243 0.901611 0.642181\n0.181488 0.901886 0.642517\n0.210419 0.902130 0.642944\n0.241852 0.902405 0.643280\n0.275574 0.902679 0.643677\n0.311432 0.902954 0.644073\n0.349152 0.903229 0.644409\n0.388489 0.903473 0.644806\n0.429077 0.903778 0.645172\n0.470428 0.904022 0.645477\n0.511200 0.904266 0.645844\n0.549561 0.904541 0.646179\n0.585541 0.904755 0.646545\n0.619080 0.905029 0.646912\n0.650299 0.905243 0.647247\n0.679443 0.905487 0.647583\n0.706909 0.905731 0.647888\n0.732880 0.905975 0.648163\n0.757629 0.906189 0.648529\n0.781250 0.906403 0.648834\n0.804077 0.906647 0.649139\n0.826263 0.906860 0.649414\n0.847992 0.907074 0.649689\n0.869537 0.907257 0.650024\n0.891083 0.907471 0.650299\n0.913025 0.907684 0.650543\n0.935730 0.907867 0.650818\n0.959961 0.908081 0.651093\n0.074493 0.924561 0.638306\n0.092438 0.924774 0.638733\n0.112030 0.924988 0.639099\n0.133606 0.925201 0.639465\n0.157471 0.925385 0.639893\n0.183868 0.925598 0.640289\n0.212921 0.925842 0.640686\n0.244415 0.926025 0.641083\n0.278168 0.926208 0.641418\n0.314087 0.926392 0.641815\n0.351746 0.926636 0.642181\n0.391083 0.926819 0.642517\n0.431580 0.927002 0.642914\n0.472809 0.927185 0.643250\n0.513275 0.927399 0.643585\n0.551361 0.927612 0.643982\n0.587097 0.927765 0.644287\n0.620453 0.927948 0.644684\n0.651520 0.928101 0.644989\n0.680481 0.928253 0.645264\n0.707794 0.928467 0.645630\n0.733582 0.928619 0.645935\n0.758209 0.928802 0.646240\n0.781769 0.928986 0.646515\n0.804504 0.929108 0.646851\n0.826599 0.929321 0.647156\n0.848267 0.929474 0.647430\n0.869751 0.929565 0.647705\n0.891266 0.929749 0.647980\n0.913116 0.929871 0.648224\n0.935822 0.930023 0.648468\n0.959961 0.930176 0.648712\n0.076263 0.948761 0.636017\n0.094299 0.948914 0.636383\n0.114014 0.949036 0.636810\n0.135712 0.949188 0.637207\n0.159668 0.949371 0.637604\n0.186218 0.949524 0.638000\n0.215363 0.949646 0.638367\n0.246948 0.949768 0.638763\n0.280731 0.949921 0.639130\n0.316650 0.950073 0.639496\n0.354309 0.950165 0.639862\n0.393494 0.950287 0.640228\n0.434021 0.950409 0.640594\n0.475067 0.950562 0.640961\n0.515289 0.950684 0.641327\n0.553192 0.950836 0.641663\n0.588623 0.950928 0.641998\n0.621765 0.951080 0.642303\n0.652588 0.951172 0.642700\n0.681427 0.951294 0.642975\n0.708588 0.951447 0.643311\n0.734314 0.951538 0.643585\n0.758789 0.951660 0.643921\n0.782288 0.951752 0.644196\n0.804932 0.951843 0.644501\n0.826935 0.951965 0.644775\n0.848541 0.952026 0.645050\n0.869965 0.952148 0.645355\n0.891418 0.952271 0.645569\n0.913239 0.952332 0.645844\n0.935822 0.952423 0.646057\n0.959961 0.952545 0.646301\n0.078003 0.973663 0.633575\n0.096161 0.973724 0.634003\n0.115967 0.973846 0.634399\n0.137756 0.973877 0.634827\n0.161926 0.973969 0.635193\n0.188568 0.974091 0.635590\n0.217804 0.974121 0.635986\n0.249420 0.974182 0.636383\n0.283325 0.974243 0.636749\n0.319153 0.974335 0.637085\n0.356842 0.974396 0.637482\n0.395966 0.974426 0.637878\n0.436401 0.974518 0.638214\n0.477325 0.974579 0.638580\n0.517303 0.974609 0.638916\n0.554871 0.974731 0.639252\n0.590149 0.974762 0.639587\n0.623016 0.974854 0.639893\n0.653687 0.974884 0.640259\n0.682373 0.974976 0.640564\n0.709381 0.975006 0.640839\n0.734985 0.975067 0.641174\n0.759369 0.975098 0.641479\n0.782745 0.975189 0.641754\n0.805298 0.975220 0.642029\n0.827271 0.975281 0.642334\n0.848816 0.975311 0.642578\n0.870148 0.975403 0.642853\n0.891541 0.975403 0.643097\n0.913361 0.975464 0.643311\n0.935883 0.975494 0.643555\n0.959961 0.975555 0.643799\n0.079773 1.000000 0.630981\n0.097961 1.000000 0.631409\n0.117889 1.000000 0.631805\n0.139832 1.000000 0.632202\n0.164062 1.000000 0.632599\n0.190857 1.000000 0.632996\n0.220184 1.000000 0.633392\n0.251892 1.000000 0.633728\n0.285736 1.000000 0.634125\n0.321686 1.000000 0.634552\n0.359253 1.000000 0.634888\n0.398407 1.000000 0.635254\n0.438629 1.000000 0.635590\n0.479431 1.000000 0.635925\n0.519165 1.000000 0.636322\n0.556519 1.000000 0.636627\n0.591614 1.000000 0.636963\n0.624298 1.000000 0.637299\n0.654694 1.000000 0.637604\n0.683258 1.000000 0.637909\n0.710144 1.000000 0.638245\n0.735657 1.000000 0.638519\n0.759888 1.000000 0.638824\n0.783234 1.000000 0.639099\n0.805664 1.000000 0.639343\n0.827576 1.000000 0.639618\n0.849030 1.000000 0.639893\n0.870331 1.000000 0.640137\n0.891663 1.000000 0.640381\n0.913422 1.000000 0.640625\n0.935944 1.000000 0.640839\n0.959961 1.000000 0.641083\n0.033997 0.004791 0.765198\n0.049561 0.005524 0.765289\n0.066376 0.006256 0.765472\n0.084717 0.007019 0.765594\n0.104828 0.007812 0.765778\n0.127075 0.008636 0.765900\n0.151886 0.009460 0.766052\n0.179657 0.010284 0.766205\n0.210480 0.011200 0.766388\n0.244232 0.012085 0.766571\n0.280701 0.013031 0.766724\n0.319733 0.013947 0.766907\n0.360809 0.014923 0.767059\n0.403839 0.015930 0.767242\n0.448212 0.016937 0.767426\n0.492950 0.017944 0.767609\n0.535675 0.019012 0.767792\n0.575592 0.020111 0.767975\n0.612732 0.021179 0.768188\n0.647064 0.022308 0.768341\n0.678986 0.023407 0.768524\n0.708893 0.024567 0.768677\n0.737061 0.025726 0.768951\n0.763763 0.026886 0.769135\n0.789307 0.028107 0.769318\n0.813995 0.029327 0.769501\n0.837982 0.030548 0.769684\n0.861542 0.031769 0.769958\n0.885071 0.033051 0.770111\n0.908936 0.034332 0.770325\n0.933594 0.035645 0.770508\n0.959961 0.036926 0.770721\n0.034851 0.021301 0.763519\n0.050507 0.022034 0.763641\n0.067413 0.022858 0.763824\n0.085846 0.023712 0.763947\n0.106049 0.024567 0.764069\n0.128418 0.025421 0.764252\n0.153351 0.026306 0.764404\n0.181305 0.027191 0.764587\n0.212250 0.028168 0.764740\n0.246155 0.029114 0.764923\n0.282715 0.030121 0.765106\n0.321747 0.031128 0.765259\n0.362885 0.032135 0.765442\n0.405853 0.033234 0.765594\n0.450256 0.034302 0.765808\n0.494904 0.035400 0.765961\n0.537415 0.036499 0.766174\n0.577118 0.037659 0.766357\n0.614014 0.038788 0.766510\n0.648224 0.039978 0.766693\n0.680023 0.041138 0.766937\n0.709747 0.042358 0.767120\n0.737793 0.043610 0.767303\n0.764404 0.044830 0.767487\n0.789886 0.046143 0.767670\n0.814423 0.047424 0.767883\n0.838318 0.048706 0.768097\n0.861847 0.050049 0.768250\n0.885284 0.051392 0.768463\n0.909119 0.052704 0.768646\n0.933685 0.054138 0.768829\n0.959961 0.055481 0.769012\n0.035828 0.038788 0.761719\n0.051575 0.039612 0.761871\n0.068512 0.040497 0.762024\n0.087006 0.041382 0.762177\n0.107330 0.042328 0.762329\n0.129852 0.043243 0.762512\n0.154938 0.044220 0.762634\n0.183014 0.045227 0.762817\n0.214081 0.046265 0.763000\n0.248108 0.047272 0.763153\n0.284790 0.048340 0.763306\n0.323853 0.049469 0.763458\n0.365051 0.050507 0.763702\n0.408051 0.051697 0.763855\n0.452332 0.052856 0.764038\n0.496826 0.054016 0.764191\n0.539154 0.055237 0.764374\n0.578674 0.056427 0.764557\n0.615387 0.057678 0.764771\n0.649384 0.058929 0.764954\n0.681000 0.060181 0.765137\n0.710632 0.061493 0.765289\n0.738556 0.062805 0.765503\n0.765045 0.064178 0.765717\n0.790436 0.065521 0.765869\n0.814880 0.066925 0.766052\n0.838715 0.068329 0.766266\n0.862152 0.069763 0.766418\n0.885559 0.071136 0.766602\n0.909271 0.072632 0.766785\n0.933746 0.074097 0.767029\n0.959961 0.075592 0.767181\n0.036804 0.057587 0.759766\n0.052612 0.058502 0.759918\n0.069672 0.059479 0.760101\n0.088226 0.060425 0.760254\n0.108704 0.061432 0.760406\n0.131348 0.062500 0.760559\n0.156586 0.063568 0.760712\n0.184784 0.064667 0.760895\n0.216034 0.065765 0.761047\n0.250092 0.066864 0.761200\n0.286865 0.068085 0.761414\n0.326019 0.069275 0.761566\n0.367249 0.070465 0.761749\n0.410217 0.071716 0.761902\n0.454468 0.072937 0.762054\n0.498840 0.074219 0.762238\n0.540985 0.075531 0.762451\n0.580231 0.076874 0.762634\n0.616760 0.078186 0.762787\n0.650635 0.079559 0.762939\n0.682068 0.080933 0.763123\n0.711548 0.082367 0.763336\n0.739349 0.083832 0.763489\n0.765686 0.085236 0.763641\n0.790955 0.086731 0.763855\n0.815399 0.088257 0.764008\n0.839111 0.089752 0.764191\n0.862488 0.091278 0.764374\n0.885773 0.092804 0.764557\n0.909393 0.094391 0.764709\n0.933868 0.096008 0.764862\n0.959961 0.097595 0.765076\n0.037842 0.078094 0.757690\n0.053741 0.079132 0.757812\n0.070892 0.080200 0.757965\n0.089600 0.081268 0.758118\n0.110107 0.082428 0.758270\n0.132935 0.083588 0.758392\n0.158325 0.084717 0.758575\n0.186676 0.085938 0.758698\n0.218079 0.087158 0.758911\n0.252228 0.088409 0.759064\n0.289093 0.089691 0.759216\n0.328308 0.091003 0.759399\n0.369537 0.092316 0.759521\n0.412476 0.093658 0.759705\n0.456665 0.095032 0.759888\n0.500854 0.096436 0.760071\n0.542816 0.097900 0.760193\n0.581909 0.099304 0.760376\n0.618195 0.100800 0.760529\n0.651794 0.102295 0.760712\n0.683075 0.103790 0.760864\n0.712433 0.105347 0.761047\n0.740112 0.106934 0.761230\n0.766418 0.108521 0.761353\n0.791565 0.110138 0.761505\n0.815857 0.111725 0.761658\n0.839508 0.113403 0.761871\n0.862823 0.115082 0.762024\n0.885986 0.116730 0.762177\n0.909576 0.118439 0.762360\n0.933960 0.120178 0.762512\n0.959961 0.121918 0.762665\n0.039001 0.100769 0.755280\n0.054962 0.101929 0.755402\n0.072144 0.103149 0.755585\n0.090942 0.104309 0.755707\n0.111603 0.105591 0.755859\n0.134552 0.106873 0.755981\n0.160065 0.108154 0.756195\n0.188629 0.109497 0.756317\n0.220123 0.110870 0.756470\n0.254395 0.112244 0.756592\n0.291351 0.113678 0.756744\n0.330597 0.115082 0.756897\n0.371857 0.116547 0.757080\n0.414856 0.118103 0.757233\n0.458954 0.119537 0.757385\n0.503021 0.121124 0.757507\n0.544647 0.122711 0.757660\n0.583496 0.124298 0.757843\n0.619598 0.125916 0.757996\n0.653046 0.127594 0.758148\n0.684174 0.129211 0.758301\n0.713379 0.130920 0.758453\n0.740906 0.132660 0.758575\n0.767090 0.134369 0.758698\n0.792114 0.136139 0.758942\n0.816284 0.137909 0.759033\n0.839905 0.139709 0.759155\n0.863068 0.141602 0.759338\n0.886261 0.143372 0.759460\n0.909729 0.145264 0.759644\n0.933990 0.147156 0.759766\n0.959961 0.149017 0.759888\n0.040131 0.126068 0.752563\n0.056152 0.127411 0.752686\n0.073517 0.128723 0.752838\n0.092377 0.130066 0.752960\n0.113190 0.131470 0.753143\n0.136230 0.132904 0.753265\n0.161957 0.134338 0.753387\n0.190613 0.135864 0.753540\n0.222260 0.137360 0.753662\n0.256683 0.138885 0.753815\n0.293701 0.140503 0.753967\n0.332977 0.142029 0.754120\n0.374268 0.143677 0.754272\n0.417236 0.145355 0.754364\n0.461304 0.147003 0.754486\n0.505127 0.148743 0.754639\n0.546570 0.150482 0.754822\n0.585175 0.152252 0.754944\n0.621063 0.154022 0.755066\n0.654327 0.155853 0.755219\n0.685211 0.157654 0.755310\n0.714325 0.159546 0.755432\n0.741699 0.161407 0.755615\n0.767761 0.163330 0.755737\n0.792725 0.165283 0.755859\n0.816833 0.167206 0.755981\n0.840302 0.169220 0.756104\n0.863434 0.171265 0.756226\n0.886475 0.173187 0.756348\n0.909882 0.175293 0.756470\n0.934113 0.177368 0.756561\n0.959961 0.179382 0.756714\n0.041351 0.154572 0.749481\n0.057465 0.156006 0.749573\n0.074890 0.157532 0.749756\n0.093872 0.159027 0.749847\n0.114777 0.160614 0.749969\n0.138000 0.162231 0.750122\n0.163818 0.163818 0.750214\n0.192719 0.165466 0.750366\n0.224457 0.167175 0.750488\n0.259003 0.168915 0.750610\n0.296082 0.170624 0.750732\n0.335419 0.172394 0.750824\n0.376709 0.174225 0.750916\n0.419617 0.176056 0.751099\n0.463593 0.177917 0.751221\n0.507294 0.179810 0.751373\n0.548431 0.181732 0.751495\n0.586853 0.183685 0.751556\n0.622498 0.185669 0.751678\n0.655548 0.187683 0.751770\n0.686371 0.189667 0.751923\n0.715210 0.191711 0.752045\n0.742493 0.193756 0.752106\n0.768463 0.195892 0.752258\n0.793304 0.197998 0.752350\n0.817291 0.200104 0.752472\n0.840698 0.202240 0.752563\n0.863739 0.204437 0.752655\n0.886749 0.206604 0.752777\n0.910065 0.208801 0.752869\n0.934174 0.211060 0.752960\n0.959961 0.213226 0.753082\n0.042633 0.186737 0.745941\n0.058807 0.188385 0.746033\n0.076324 0.190033 0.746155\n0.095428 0.191711 0.746246\n0.116455 0.193512 0.746338\n0.139801 0.195282 0.746460\n0.165802 0.197021 0.746582\n0.194855 0.198944 0.746704\n0.226746 0.200745 0.746826\n0.261383 0.202667 0.746887\n0.298523 0.204620 0.746979\n0.337891 0.206543 0.747101\n0.379181 0.208527 0.747253\n0.422119 0.210571 0.747345\n0.466003 0.212555 0.747437\n0.509460 0.214630 0.747559\n0.550415 0.216766 0.747620\n0.588531 0.218811 0.747711\n0.623962 0.220978 0.747864\n0.656799 0.223053 0.747955\n0.687408 0.225311 0.748016\n0.716187 0.227509 0.748138\n0.743317 0.229675 0.748230\n0.769135 0.231903 0.748322\n0.793884 0.234192 0.748413\n0.817780 0.236420 0.748505\n0.841064 0.238739 0.748596\n0.864075 0.241058 0.748657\n0.886993 0.243286 0.748749\n0.910248 0.245667 0.748840\n0.934296 0.247986 0.748932\n0.959961 0.250305 0.748993\n0.043945 0.222778 0.741882\n0.060181 0.224609 0.741974\n0.077820 0.226440 0.742035\n0.096985 0.228271 0.742157\n0.118164 0.230194 0.742279\n0.141693 0.232178 0.742401\n0.167847 0.234070 0.742462\n0.197021 0.236084 0.742554\n0.229034 0.238068 0.742645\n0.263794 0.240143 0.742737\n0.301025 0.242218 0.742859\n0.340424 0.244293 0.742950\n0.381714 0.246429 0.743042\n0.424652 0.248596 0.743103\n0.468445 0.250763 0.743195\n0.511688 0.252960 0.743256\n0.552338 0.255188 0.743408\n0.590210 0.257385 0.743500\n0.625458 0.259674 0.743561\n0.658081 0.261871 0.743652\n0.688538 0.264191 0.743744\n0.717133 0.266541 0.743835\n0.744141 0.268829 0.743896\n0.769806 0.271179 0.743958\n0.794464 0.273590 0.744080\n0.818268 0.275879 0.744141\n0.841492 0.278259 0.744202\n0.864410 0.280701 0.744263\n0.887238 0.283051 0.744324\n0.910400 0.285522 0.744385\n0.934357 0.287872 0.744446\n0.959961 0.290314 0.744507\n0.045319 0.262451 0.737366\n0.061646 0.264404 0.737457\n0.079346 0.266388 0.737549\n0.098663 0.268372 0.737671\n0.119965 0.270416 0.737732\n0.143585 0.272461 0.737793\n0.170013 0.274536 0.737885\n0.199280 0.276672 0.737976\n0.231445 0.278778 0.738098\n0.266266 0.280914 0.738159\n0.303558 0.283142 0.738251\n0.342987 0.285339 0.738342\n0.384369 0.287567 0.738373\n0.427155 0.289825 0.738464\n0.470886 0.292053 0.738586\n0.513885 0.294403 0.738647\n0.554260 0.296692 0.738739\n0.591919 0.299042 0.738800\n0.626923 0.301392 0.738861\n0.659393 0.303680 0.738983\n0.689667 0.306091 0.739044\n0.718079 0.308533 0.739105\n0.744934 0.310852 0.739197\n0.770538 0.313293 0.739258\n0.795074 0.315735 0.739319\n0.818787 0.318115 0.739410\n0.841858 0.320557 0.739471\n0.864716 0.322998 0.739502\n0.887451 0.325470 0.739563\n0.910583 0.327942 0.739624\n0.934448 0.330292 0.739716\n0.959961 0.332825 0.739777\n0.046722 0.305450 0.732483\n0.063110 0.307526 0.732574\n0.080872 0.309570 0.732635\n0.100342 0.311615 0.732727\n0.121826 0.313782 0.732788\n0.145569 0.315887 0.732880\n0.172119 0.318054 0.732971\n0.201569 0.320282 0.733063\n0.233856 0.322479 0.733154\n0.268799 0.324707 0.733185\n0.306152 0.326996 0.733246\n0.345642 0.329224 0.733337\n0.386932 0.331543 0.733459\n0.429718 0.333893 0.733521\n0.473358 0.336212 0.733612\n0.516113 0.338562 0.733673\n0.556183 0.340881 0.733734\n0.593658 0.343323 0.733826\n0.628387 0.345703 0.733887\n0.660645 0.348053 0.733948\n0.690765 0.350494 0.734039\n0.719025 0.352905 0.734100\n0.745758 0.355347 0.734161\n0.771210 0.357788 0.734222\n0.795685 0.360260 0.734314\n0.819244 0.362640 0.734375\n0.842285 0.365173 0.734406\n0.865021 0.367584 0.734467\n0.887726 0.370026 0.734558\n0.910706 0.372498 0.734619\n0.934540 0.374939 0.734650\n0.959961 0.377380 0.734711\n0.048126 0.351227 0.727203\n0.064667 0.353333 0.727264\n0.082520 0.355438 0.727356\n0.102081 0.357605 0.727448\n0.123688 0.359802 0.727539\n0.147583 0.361969 0.727631\n0.174316 0.364166 0.727692\n0.203949 0.366455 0.727753\n0.236359 0.368683 0.727844\n0.271362 0.371002 0.727905\n0.308807 0.373322 0.728027\n0.348267 0.375580 0.728088\n0.389618 0.377930 0.728180\n0.432281 0.380249 0.728241\n0.475800 0.382629 0.728333\n0.518311 0.385010 0.728394\n0.558197 0.387329 0.728485\n0.595337 0.389740 0.728516\n0.629913 0.392212 0.728607\n0.661896 0.394531 0.728668\n0.691833 0.396942 0.728760\n0.719971 0.399445 0.728821\n0.746613 0.401794 0.728882\n0.771912 0.404205 0.728943\n0.796204 0.406677 0.729004\n0.819733 0.409058 0.729065\n0.842682 0.411499 0.729187\n0.865326 0.413879 0.729248\n0.887939 0.416351 0.729279\n0.910889 0.418793 0.729340\n0.934662 0.421173 0.729370\n0.959961 0.423584 0.729431\n0.049652 0.399323 0.721649\n0.066223 0.401459 0.721710\n0.084167 0.403595 0.721832\n0.103882 0.405792 0.721924\n0.125610 0.408020 0.721985\n0.149658 0.410156 0.722046\n0.176575 0.412384 0.722137\n0.206360 0.414703 0.722229\n0.238892 0.416901 0.722351\n0.274017 0.419189 0.722412\n0.311493 0.421539 0.722504\n0.350952 0.423828 0.722565\n0.392273 0.426117 0.722626\n0.434906 0.428436 0.722748\n0.478302 0.430786 0.722809\n0.520599 0.433136 0.722900\n0.560150 0.435455 0.722992\n0.597076 0.437866 0.723022\n0.631348 0.440247 0.723083\n0.663208 0.442596 0.723175\n0.692993 0.444977 0.723267\n0.720917 0.447357 0.723328\n0.747406 0.449646 0.723389\n0.772614 0.452057 0.723450\n0.796814 0.454407 0.723572\n0.820221 0.456787 0.723633\n0.843109 0.459167 0.723694\n0.865662 0.461456 0.723755\n0.888184 0.463837 0.723816\n0.911041 0.466217 0.723877\n0.934723 0.468475 0.723969\n0.959961 0.470764 0.724030\n0.051117 0.449158 0.715912\n0.067780 0.451233 0.716034\n0.085876 0.453369 0.716064\n0.105713 0.455536 0.716156\n0.127594 0.457764 0.716248\n0.151825 0.459930 0.716370\n0.178864 0.462128 0.716461\n0.208801 0.464325 0.716553\n0.241425 0.466522 0.716614\n0.276642 0.468811 0.716736\n0.314117 0.471008 0.716766\n0.353638 0.473236 0.716919\n0.394928 0.475494 0.716980\n0.437531 0.477753 0.717102\n0.480835 0.480042 0.717163\n0.522797 0.482330 0.717255\n0.562134 0.484558 0.717346\n0.598816 0.486847 0.717438\n0.632874 0.489136 0.717499\n0.664490 0.491394 0.717590\n0.694031 0.493683 0.717651\n0.721893 0.495941 0.717743\n0.748199 0.498138 0.717896\n0.773285 0.500397 0.717957\n0.797394 0.502655 0.718048\n0.820709 0.504852 0.718109\n0.843445 0.507111 0.718201\n0.865967 0.509247 0.718292\n0.888458 0.511475 0.718384\n0.911194 0.513580 0.718475\n0.934814 0.515717 0.718536\n0.959961 0.517853 0.718628\n0.052673 0.499786 0.710052\n0.069427 0.501831 0.710144\n0.087585 0.503876 0.710236\n0.107574 0.505981 0.710358\n0.129578 0.508026 0.710480\n0.153992 0.510040 0.710571\n0.181213 0.512146 0.710693\n0.211273 0.514282 0.710785\n0.244019 0.516296 0.710907\n0.279297 0.518341 0.711029\n0.316833 0.520447 0.711121\n0.356415 0.522491 0.711273\n0.397675 0.524597 0.711365\n0.440155 0.526611 0.711487\n0.483307 0.528656 0.711578\n0.524994 0.530762 0.711731\n0.564087 0.532776 0.711853\n0.600494 0.534851 0.711945\n0.634369 0.536865 0.712036\n0.665741 0.538910 0.712128\n0.695160 0.540924 0.712311\n0.722809 0.542877 0.712433\n0.748993 0.544861 0.712524\n0.773956 0.546906 0.712646\n0.797943 0.548798 0.712738\n0.821198 0.550720 0.712860\n0.843872 0.552704 0.713013\n0.866272 0.554626 0.713135\n0.888672 0.556549 0.713226\n0.911346 0.558441 0.713318\n0.934875 0.560272 0.713470\n0.959961 0.562103 0.713562\n0.054260 0.548584 0.704407\n0.071075 0.550446 0.704559\n0.089386 0.552216 0.704742\n0.109467 0.554077 0.704865\n0.131622 0.555847 0.705017\n0.156189 0.557678 0.705170\n0.183563 0.559540 0.705292\n0.213776 0.561432 0.705444\n0.246643 0.563202 0.705566\n0.282013 0.565033 0.705719\n0.319550 0.566833 0.705872\n0.359161 0.568665 0.706024\n0.400391 0.570496 0.706146\n0.442841 0.572266 0.706299\n0.485809 0.574097 0.706451\n0.527191 0.575928 0.706604\n0.566010 0.577667 0.706726\n0.602173 0.579468 0.706879\n0.635773 0.581238 0.707062\n0.667023 0.583008 0.707214\n0.696228 0.584778 0.707336\n0.723724 0.586456 0.707489\n0.749786 0.588226 0.707642\n0.774689 0.589966 0.707764\n0.798553 0.591614 0.707947\n0.821655 0.593323 0.708099\n0.844269 0.595032 0.708221\n0.866608 0.596619 0.708374\n0.888885 0.598328 0.708527\n0.911530 0.599976 0.708649\n0.934967 0.601501 0.708832\n0.959961 0.603088 0.708954\n0.055847 0.593689 0.699310\n0.072815 0.595306 0.699493\n0.091187 0.596893 0.699677\n0.111420 0.598480 0.699829\n0.133698 0.600128 0.700012\n0.158417 0.601654 0.700165\n0.185974 0.603271 0.700348\n0.216309 0.604889 0.700562\n0.249268 0.606506 0.700714\n0.284729 0.608032 0.700867\n0.322296 0.609619 0.701019\n0.361938 0.611267 0.701233\n0.403076 0.612823 0.701416\n0.445496 0.614380 0.701569\n0.488312 0.615906 0.701752\n0.529449 0.617493 0.701935\n0.567932 0.619019 0.702118\n0.603912 0.620575 0.702332\n0.637238 0.622131 0.702484\n0.668243 0.623627 0.702667\n0.697327 0.625183 0.702820\n0.724640 0.626617 0.702972\n0.750580 0.628113 0.703186\n0.775330 0.629608 0.703369\n0.799072 0.631042 0.703522\n0.822144 0.632477 0.703674\n0.844666 0.633942 0.703888\n0.866852 0.635315 0.704010\n0.889099 0.636749 0.704254\n0.911713 0.638153 0.704407\n0.935089 0.639496 0.704559\n0.959961 0.640869 0.704712\n0.057465 0.635193 0.694702\n0.074493 0.636566 0.694885\n0.093048 0.637939 0.695068\n0.113373 0.639313 0.695282\n0.135803 0.640717 0.695465\n0.160675 0.642059 0.695679\n0.188416 0.643463 0.695892\n0.218872 0.644836 0.696106\n0.251953 0.646179 0.696289\n0.287445 0.647552 0.696503\n0.325104 0.648895 0.696686\n0.364685 0.650299 0.696899\n0.405792 0.651611 0.697113\n0.448120 0.652985 0.697327\n0.490784 0.654297 0.697540\n0.531555 0.655701 0.697723\n0.569824 0.656952 0.697937\n0.605530 0.658295 0.698120\n0.638641 0.659607 0.698334\n0.669495 0.660889 0.698517\n0.698395 0.662170 0.698761\n0.725555 0.663452 0.698975\n0.751373 0.664703 0.699127\n0.776001 0.665955 0.699341\n0.799652 0.667206 0.699554\n0.822601 0.668457 0.699707\n0.845032 0.669647 0.699951\n0.867218 0.670898 0.700134\n0.889343 0.672058 0.700348\n0.911835 0.673248 0.700500\n0.935150 0.674408 0.700684\n0.959961 0.675568 0.700867\n0.059143 0.673126 0.690460\n0.076263 0.674316 0.690735\n0.094879 0.675507 0.690948\n0.115326 0.676697 0.691193\n0.137939 0.677887 0.691406\n0.162994 0.679016 0.691620\n0.190857 0.680237 0.691864\n0.221436 0.681396 0.692108\n0.254669 0.682556 0.692322\n0.290192 0.683746 0.692535\n0.327850 0.684875 0.692749\n0.367432 0.686096 0.692993\n0.408569 0.687225 0.693268\n0.450745 0.688385 0.693481\n0.493195 0.689514 0.693695\n0.533783 0.690674 0.693909\n0.571777 0.691772 0.694153\n0.607178 0.692932 0.694366\n0.640076 0.694031 0.694580\n0.670685 0.695129 0.694855\n0.699402 0.696228 0.695038\n0.726471 0.697327 0.695251\n0.752167 0.698395 0.695496\n0.776672 0.699463 0.695679\n0.800201 0.700500 0.695953\n0.823029 0.701599 0.696136\n0.845398 0.702576 0.696350\n0.867462 0.703613 0.696533\n0.889557 0.704620 0.696747\n0.912018 0.705627 0.696960\n0.935211 0.706604 0.697144\n0.959961 0.707581 0.697388\n0.060883 0.708008 0.686737\n0.078033 0.709045 0.686981\n0.096802 0.710083 0.687225\n0.117401 0.711090 0.687469\n0.140106 0.712067 0.687683\n0.165314 0.713074 0.687958\n0.193390 0.714111 0.688232\n0.224091 0.715118 0.688446\n0.257324 0.716095 0.688690\n0.292969 0.717102 0.688965\n0.330627 0.718079 0.689240\n0.370178 0.719086 0.689484\n0.411255 0.720093 0.689728\n0.453400 0.721069 0.689941\n0.495697 0.722046 0.690186\n0.535919 0.722992 0.690430\n0.573669 0.723938 0.690704\n0.608826 0.724915 0.690979\n0.641449 0.725830 0.691162\n0.671936 0.726807 0.691437\n0.700439 0.727783 0.691681\n0.727356 0.728638 0.691864\n0.752869 0.729584 0.692108\n0.777283 0.730499 0.692383\n0.800751 0.731354 0.692596\n0.823517 0.732300 0.692810\n0.845764 0.733185 0.693054\n0.867798 0.734009 0.693237\n0.889801 0.734863 0.693451\n0.912109 0.735687 0.693726\n0.935303 0.736511 0.693939\n0.959961 0.737335 0.694153\n0.062561 0.740295 0.683258\n0.079865 0.741180 0.683563\n0.098694 0.742035 0.683807\n0.119415 0.742920 0.684082\n0.142273 0.743774 0.684326\n0.167664 0.744629 0.684601\n0.195831 0.745544 0.684875\n0.226654 0.746368 0.685150\n0.260040 0.747223 0.685455\n0.295685 0.748077 0.685699\n0.333405 0.748932 0.685974\n0.372925 0.749756 0.686218\n0.413971 0.750610 0.686462\n0.455994 0.751434 0.686737\n0.498016 0.752289 0.687012\n0.538025 0.753113 0.687286\n0.575470 0.753937 0.687500\n0.610443 0.754730 0.687805\n0.642822 0.755554 0.688019\n0.673096 0.756348 0.688263\n0.701447 0.757141 0.688538\n0.728210 0.757904 0.688782\n0.753662 0.758728 0.689026\n0.777924 0.759460 0.689270\n0.801239 0.760193 0.689514\n0.823914 0.760986 0.689728\n0.846100 0.761688 0.689972\n0.868042 0.762421 0.690247\n0.889984 0.763153 0.690460\n0.912262 0.763824 0.690674\n0.935364 0.764587 0.690918\n0.959961 0.765259 0.691132\n0.064270 0.770447 0.680084\n0.081635 0.771179 0.680389\n0.100616 0.771912 0.680695\n0.121460 0.772675 0.680939\n0.144501 0.773407 0.681213\n0.170074 0.774170 0.681519\n0.198395 0.774902 0.681854\n0.229309 0.775604 0.682098\n0.262726 0.776337 0.682373\n0.298462 0.777100 0.682678\n0.336182 0.777771 0.682922\n0.375702 0.778534 0.683228\n0.416626 0.779205 0.683502\n0.458527 0.779938 0.683807\n0.500427 0.780640 0.684052\n0.540100 0.781311 0.684326\n0.577301 0.782013 0.684601\n0.612000 0.782715 0.684845\n0.644226 0.783386 0.685120\n0.674255 0.784058 0.685394\n0.702454 0.784729 0.685638\n0.729095 0.785370 0.685883\n0.754364 0.786041 0.686157\n0.778534 0.786682 0.686401\n0.801758 0.787323 0.686615\n0.824341 0.787964 0.686920\n0.846466 0.788574 0.687164\n0.868317 0.789185 0.687378\n0.890198 0.789795 0.687622\n0.912384 0.790375 0.687836\n0.935425 0.790955 0.688080\n0.959961 0.791534 0.688263\n0.066010 0.798798 0.677155\n0.083496 0.799408 0.677460\n0.102600 0.800049 0.677765\n0.123535 0.800720 0.678070\n0.146698 0.801300 0.678406\n0.172394 0.801910 0.678680\n0.200897 0.802582 0.678955\n0.231903 0.803162 0.679260\n0.265442 0.803772 0.679535\n0.301147 0.804352 0.679840\n0.338928 0.805023 0.680145\n0.378448 0.805603 0.680450\n0.419250 0.806183 0.680695\n0.461090 0.806824 0.681000\n0.502747 0.807404 0.681305\n0.542145 0.807953 0.681549\n0.579102 0.808563 0.681824\n0.613525 0.809143 0.682129\n0.645538 0.809723 0.682404\n0.675385 0.810272 0.682648\n0.703461 0.810822 0.682922\n0.729889 0.811401 0.683197\n0.755035 0.811920 0.683411\n0.779114 0.812439 0.683716\n0.802277 0.813019 0.683990\n0.824768 0.813538 0.684235\n0.846802 0.814056 0.684448\n0.868591 0.814545 0.684692\n0.890381 0.815033 0.684937\n0.912537 0.815552 0.685150\n0.935486 0.816040 0.685394\n0.959961 0.816498 0.685669\n0.067749 0.825684 0.674438\n0.085297 0.826202 0.674744\n0.104523 0.826752 0.675018\n0.125610 0.827271 0.675385\n0.148926 0.827789 0.675690\n0.174805 0.828339 0.675995\n0.203430 0.828857 0.676270\n0.234497 0.829346 0.676544\n0.268158 0.829865 0.676910\n0.303894 0.830383 0.677216\n0.341614 0.830872 0.677490\n0.381134 0.831390 0.677826\n0.421875 0.831909 0.678070\n0.463593 0.832367 0.678345\n0.505035 0.832886 0.678650\n0.544128 0.833405 0.678955\n0.580841 0.833893 0.679230\n0.615051 0.834351 0.679504\n0.646820 0.834808 0.679779\n0.676483 0.835297 0.680084\n0.704376 0.835754 0.680328\n0.730713 0.836182 0.680634\n0.755768 0.836670 0.680878\n0.779663 0.837097 0.681122\n0.802765 0.837524 0.681396\n0.825165 0.837952 0.681671\n0.847107 0.838379 0.681885\n0.868866 0.838806 0.682129\n0.890594 0.839233 0.682373\n0.912659 0.839630 0.682648\n0.935547 0.840027 0.682861\n0.959961 0.840424 0.683075\n0.069519 0.851410 0.671814\n0.087189 0.851837 0.672180\n0.106476 0.852264 0.672485\n0.127686 0.852753 0.672791\n0.151154 0.853149 0.673096\n0.177216 0.853607 0.673401\n0.205963 0.854034 0.673767\n0.237152 0.854431 0.674103\n0.270813 0.854889 0.674347\n0.306580 0.855316 0.674683\n0.344330 0.855743 0.674988\n0.383759 0.856140 0.675262\n0.424438 0.856537 0.675568\n0.466125 0.856964 0.675903\n0.507233 0.857361 0.676178\n0.546143 0.857788 0.676453\n0.582520 0.858154 0.676758\n0.616516 0.858551 0.677063\n0.648041 0.858948 0.677277\n0.677582 0.859314 0.677643\n0.705292 0.859680 0.677887\n0.731506 0.860077 0.678162\n0.756439 0.860413 0.678406\n0.780243 0.860809 0.678650\n0.803253 0.861176 0.678925\n0.825592 0.861511 0.679169\n0.847443 0.861847 0.679382\n0.869049 0.862183 0.679718\n0.890778 0.862518 0.679932\n0.912781 0.862854 0.680176\n0.935638 0.863190 0.680359\n0.959961 0.863464 0.680573\n0.071320 0.876282 0.669373\n0.089050 0.876617 0.669678\n0.108490 0.876984 0.670013\n0.129822 0.877350 0.670319\n0.153381 0.877686 0.670654\n0.179565 0.878052 0.670990\n0.208405 0.878387 0.671295\n0.239746 0.878754 0.671631\n0.273468 0.879089 0.671936\n0.309265 0.879395 0.672241\n0.347046 0.879761 0.672546\n0.386383 0.880096 0.672852\n0.427002 0.880463 0.673157\n0.468506 0.880768 0.673431\n0.509430 0.881104 0.673737\n0.548035 0.881409 0.674072\n0.584259 0.881714 0.674316\n0.617950 0.882050 0.674652\n0.649323 0.882355 0.674927\n0.678650 0.882660 0.675201\n0.706207 0.882965 0.675476\n0.732300 0.883270 0.675751\n0.757050 0.883575 0.676025\n0.780853 0.883881 0.676270\n0.803741 0.884155 0.676483\n0.825928 0.884430 0.676819\n0.847748 0.884705 0.677032\n0.869354 0.884979 0.677277\n0.890930 0.885223 0.677490\n0.912903 0.885498 0.677704\n0.935699 0.885712 0.677948\n0.959961 0.885986 0.678162\n0.073059 0.900574 0.666931\n0.090912 0.900879 0.667236\n0.110443 0.901123 0.667603\n0.131927 0.901398 0.667969\n0.155609 0.901703 0.668243\n0.181946 0.901978 0.668579\n0.210876 0.902222 0.668915\n0.242310 0.902527 0.669220\n0.276093 0.902771 0.669556\n0.311920 0.903015 0.669891\n0.349640 0.903320 0.670166\n0.389008 0.903595 0.670471\n0.429565 0.903839 0.670776\n0.470886 0.904083 0.671112\n0.511566 0.904358 0.671356\n0.549866 0.904602 0.671722\n0.585815 0.904846 0.671997\n0.619354 0.905121 0.672272\n0.650482 0.905334 0.672546\n0.679688 0.905609 0.672821\n0.707092 0.905823 0.673096\n0.733032 0.906067 0.673370\n0.757690 0.906281 0.673615\n0.781342 0.906494 0.673920\n0.804169 0.906708 0.674164\n0.826324 0.906921 0.674408\n0.848053 0.907135 0.674622\n0.869568 0.907318 0.674866\n0.891083 0.907562 0.675110\n0.913055 0.907745 0.675354\n0.935730 0.907959 0.675568\n0.959961 0.908112 0.675812\n0.074860 0.924622 0.664551\n0.092773 0.924866 0.664886\n0.112396 0.925049 0.665222\n0.134003 0.925262 0.665558\n0.157867 0.925476 0.665863\n0.184326 0.925690 0.666199\n0.213348 0.925903 0.666504\n0.244843 0.926086 0.666870\n0.278656 0.926300 0.667206\n0.314514 0.926483 0.667511\n0.352264 0.926697 0.667786\n0.391510 0.926880 0.668152\n0.432037 0.927063 0.668396\n0.473206 0.927246 0.668793\n0.513641 0.927460 0.669067\n0.551697 0.927643 0.669342\n0.587433 0.927826 0.669617\n0.620728 0.928009 0.669891\n0.651672 0.928162 0.670197\n0.680695 0.928345 0.670471\n0.707916 0.928528 0.670715\n0.733765 0.928711 0.671021\n0.758331 0.928864 0.671295\n0.781830 0.929047 0.671509\n0.804596 0.929230 0.671753\n0.826660 0.929382 0.672028\n0.848328 0.929474 0.672272\n0.869781 0.929626 0.672516\n0.891296 0.929779 0.672699\n0.913147 0.929932 0.672974\n0.935822 0.930084 0.673187\n0.959961 0.930206 0.673370\n0.076599 0.948853 0.662140\n0.094666 0.948975 0.662445\n0.114349 0.949066 0.662811\n0.136078 0.949219 0.663116\n0.160065 0.949402 0.663452\n0.186707 0.949554 0.663818\n0.215820 0.949707 0.664124\n0.247406 0.949829 0.664459\n0.281281 0.949982 0.664764\n0.317078 0.950073 0.665100\n0.354797 0.950195 0.665405\n0.394012 0.950348 0.665741\n0.434418 0.950470 0.666046\n0.475494 0.950592 0.666351\n0.515656 0.950714 0.666656\n0.553497 0.950867 0.666931\n0.588959 0.950989 0.667236\n0.622009 0.951111 0.667511\n0.652802 0.951233 0.667755\n0.681641 0.951355 0.668060\n0.708740 0.951477 0.668335\n0.734436 0.951569 0.668579\n0.758911 0.951691 0.668854\n0.782379 0.951782 0.669067\n0.804993 0.951874 0.669342\n0.826996 0.951996 0.669556\n0.848602 0.952087 0.669800\n0.869995 0.952148 0.670074\n0.891449 0.952301 0.670288\n0.913269 0.952362 0.670502\n0.935852 0.952484 0.670715\n0.959961 0.952545 0.670898\n0.078369 0.973694 0.659607\n0.096497 0.973785 0.659943\n0.116333 0.973846 0.660278\n0.138153 0.973938 0.660645\n0.162292 0.973999 0.660980\n0.189026 0.974091 0.661285\n0.218231 0.974152 0.661621\n0.249878 0.974213 0.661987\n0.283783 0.974304 0.662231\n0.319641 0.974335 0.662628\n0.357300 0.974396 0.662933\n0.396423 0.974457 0.663239\n0.436798 0.974548 0.663513\n0.477722 0.974609 0.663818\n0.517670 0.974670 0.664124\n0.555145 0.974731 0.664459\n0.590393 0.974823 0.664673\n0.623291 0.974854 0.665009\n0.653870 0.974915 0.665283\n0.682556 0.974976 0.665558\n0.709503 0.975037 0.665802\n0.735077 0.975067 0.666046\n0.759460 0.975128 0.666321\n0.782837 0.975189 0.666565\n0.805389 0.975250 0.666779\n0.827301 0.975281 0.667053\n0.848846 0.975311 0.667267\n0.870209 0.975403 0.667511\n0.891571 0.975433 0.667725\n0.913391 0.975464 0.667908\n0.935944 0.975494 0.668091\n0.959961 0.975555 0.668304\n0.080078 1.000000 0.656860\n0.098297 1.000000 0.657227\n0.118256 1.000000 0.657562\n0.140198 1.000000 0.657898\n0.164459 1.000000 0.658234\n0.191315 1.000000 0.658600\n0.220612 1.000000 0.658905\n0.252350 1.000000 0.659271\n0.286255 1.000000 0.659607\n0.322113 1.000000 0.659912\n0.359711 1.000000 0.660217\n0.398804 1.000000 0.660522\n0.439056 1.000000 0.660828\n0.479889 1.000000 0.661133\n0.519501 1.000000 0.661407\n0.556824 1.000000 0.661743\n0.591858 1.000000 0.662018\n0.624481 1.000000 0.662292\n0.654938 1.000000 0.662567\n0.683441 1.000000 0.662811\n0.710266 1.000000 0.663086\n0.735748 1.000000 0.663330\n0.760010 1.000000 0.663544\n0.783264 1.000000 0.663849\n0.805756 1.000000 0.664062\n0.827637 1.000000 0.664276\n0.849091 1.000000 0.664520\n0.870361 1.000000 0.664703\n0.891693 1.000000 0.664917\n0.913452 1.000000 0.665131\n0.935944 1.000000 0.665314\n0.959961 1.000000 0.665497\n0.034088 0.005066 0.793030\n0.049744 0.005798 0.793121\n0.066589 0.006561 0.793213\n0.084930 0.007324 0.793365\n0.105042 0.008118 0.793427\n0.127350 0.008942 0.793549\n0.152161 0.009766 0.793671\n0.179993 0.010620 0.793793\n0.210846 0.011536 0.793884\n0.244568 0.012451 0.794037\n0.281128 0.013367 0.794189\n0.320068 0.014313 0.794312\n0.361267 0.015289 0.794434\n0.404205 0.016296 0.794586\n0.448517 0.017303 0.794708\n0.493286 0.018311 0.794830\n0.535950 0.019409 0.794952\n0.575836 0.020477 0.795105\n0.612976 0.021576 0.795258\n0.647217 0.022675 0.795380\n0.679199 0.023834 0.795532\n0.709045 0.024963 0.795715\n0.737152 0.026154 0.795837\n0.763885 0.027344 0.795959\n0.789429 0.028534 0.796112\n0.814056 0.029755 0.796234\n0.838043 0.031006 0.796387\n0.861603 0.032227 0.796570\n0.885101 0.033508 0.796661\n0.908966 0.034821 0.796814\n0.933624 0.036102 0.796967\n0.959961 0.037415 0.797119\n0.035004 0.021576 0.791260\n0.050720 0.022369 0.791412\n0.067627 0.023163 0.791473\n0.086060 0.023987 0.791595\n0.106293 0.024872 0.791718\n0.128693 0.025726 0.791840\n0.153687 0.026672 0.791901\n0.181641 0.027588 0.792084\n0.212585 0.028503 0.792236\n0.246490 0.029510 0.792328\n0.283112 0.030518 0.792450\n0.322113 0.031494 0.792603\n0.363312 0.032532 0.792725\n0.406281 0.033569 0.792847\n0.450623 0.034698 0.792938\n0.495209 0.035797 0.793091\n0.537720 0.036896 0.793213\n0.577393 0.038055 0.793396\n0.614288 0.039215 0.793518\n0.648468 0.040405 0.793671\n0.680176 0.041595 0.793823\n0.709930 0.042847 0.793915\n0.737915 0.044037 0.794098\n0.764526 0.045319 0.794220\n0.789978 0.046600 0.794373\n0.814514 0.047852 0.794525\n0.838409 0.049194 0.794647\n0.861908 0.050507 0.794769\n0.885376 0.051880 0.794922\n0.909119 0.053253 0.795013\n0.933685 0.054596 0.795227\n0.959961 0.056030 0.795349\n0.036011 0.039093 0.789429\n0.051727 0.039948 0.789520\n0.068756 0.040802 0.789612\n0.087250 0.041687 0.789764\n0.107605 0.042664 0.789825\n0.130127 0.043579 0.790009\n0.155273 0.044556 0.790100\n0.183319 0.045563 0.790222\n0.214447 0.046600 0.790344\n0.248474 0.047668 0.790497\n0.285187 0.048767 0.790588\n0.324249 0.049835 0.790741\n0.365479 0.050964 0.790833\n0.408417 0.052063 0.790955\n0.452698 0.053253 0.791077\n0.497192 0.054474 0.791260\n0.539490 0.055634 0.791351\n0.578949 0.056885 0.791534\n0.615662 0.058136 0.791656\n0.649597 0.059387 0.791748\n0.681213 0.060699 0.791931\n0.710815 0.062012 0.792023\n0.738678 0.063324 0.792145\n0.765167 0.064667 0.792328\n0.790558 0.066040 0.792450\n0.814941 0.067444 0.792572\n0.838776 0.068848 0.792725\n0.862274 0.070251 0.792816\n0.885620 0.071716 0.792969\n0.909271 0.073181 0.793121\n0.933746 0.074646 0.793213\n0.959961 0.076111 0.793365\n0.036987 0.057922 0.787384\n0.052826 0.058868 0.787506\n0.069885 0.059814 0.787598\n0.088531 0.060822 0.787720\n0.108978 0.061829 0.787872\n0.131622 0.062866 0.787964\n0.156921 0.063965 0.788086\n0.185181 0.065094 0.788208\n0.216400 0.066162 0.788330\n0.250519 0.067352 0.788422\n0.287292 0.068451 0.788574\n0.326477 0.069672 0.788666\n0.367676 0.070892 0.788788\n0.410706 0.072144 0.788971\n0.454865 0.073425 0.789062\n0.499237 0.074707 0.789185\n0.541260 0.076019 0.789307\n0.580566 0.077332 0.789429\n0.617065 0.078705 0.789551\n0.650818 0.080078 0.789673\n0.682251 0.081482 0.789795\n0.711700 0.082916 0.789948\n0.739471 0.084351 0.790070\n0.765839 0.085785 0.790161\n0.791077 0.087250 0.790314\n0.815460 0.088776 0.790405\n0.839172 0.090332 0.790558\n0.862518 0.091827 0.790680\n0.885803 0.093414 0.790771\n0.909454 0.094971 0.790924\n0.933868 0.096558 0.791016\n0.959961 0.098206 0.791138\n0.038086 0.078461 0.785187\n0.053986 0.079529 0.785309\n0.071106 0.080597 0.785431\n0.089813 0.081696 0.785522\n0.110413 0.082825 0.785614\n0.133209 0.083984 0.785767\n0.158630 0.085175 0.785828\n0.187042 0.086395 0.785950\n0.218414 0.087616 0.786072\n0.252655 0.088867 0.786163\n0.289490 0.090149 0.786255\n0.328705 0.091492 0.786438\n0.369965 0.092804 0.786530\n0.412933 0.094147 0.786652\n0.457153 0.095551 0.786774\n0.501282 0.096985 0.786835\n0.543182 0.098389 0.786987\n0.582214 0.099884 0.787109\n0.618469 0.101410 0.787201\n0.652008 0.102844 0.787354\n0.683319 0.104370 0.787476\n0.712585 0.105896 0.787537\n0.740265 0.107513 0.787659\n0.766541 0.109100 0.787750\n0.791656 0.110687 0.787903\n0.815918 0.112335 0.788025\n0.839569 0.114044 0.788116\n0.862854 0.115662 0.788208\n0.886047 0.117371 0.788300\n0.909607 0.119080 0.788422\n0.933990 0.120819 0.788483\n0.959961 0.122559 0.788605\n0.039185 0.101227 0.782715\n0.055206 0.102386 0.782806\n0.072388 0.103577 0.782898\n0.091217 0.104797 0.783051\n0.111938 0.106079 0.783142\n0.134888 0.107330 0.783203\n0.160461 0.108673 0.783295\n0.188965 0.109985 0.783417\n0.220551 0.111328 0.783508\n0.254852 0.112762 0.783661\n0.291779 0.114166 0.783722\n0.331085 0.115631 0.783875\n0.372345 0.117126 0.783966\n0.415222 0.118591 0.784027\n0.459381 0.120117 0.784149\n0.503418 0.121704 0.784241\n0.544952 0.123260 0.784332\n0.583801 0.124908 0.784454\n0.619904 0.126526 0.784576\n0.653259 0.128174 0.784607\n0.684418 0.129852 0.784760\n0.713531 0.131531 0.784821\n0.741028 0.133270 0.784912\n0.767212 0.135040 0.785065\n0.792206 0.136780 0.785126\n0.816437 0.138611 0.785217\n0.839966 0.140411 0.785278\n0.863159 0.142212 0.785400\n0.886322 0.144104 0.785461\n0.909760 0.145966 0.785583\n0.934021 0.147827 0.785645\n0.959961 0.149750 0.785736\n0.040405 0.126556 0.779907\n0.056427 0.127899 0.780029\n0.073730 0.129211 0.780121\n0.092651 0.130615 0.780182\n0.113495 0.132050 0.780273\n0.136536 0.133453 0.780365\n0.162292 0.134918 0.780457\n0.191010 0.136383 0.780609\n0.222656 0.137909 0.780640\n0.257141 0.139496 0.780762\n0.294159 0.141022 0.780853\n0.333435 0.142670 0.780914\n0.374756 0.144318 0.781006\n0.417633 0.145966 0.781097\n0.461731 0.147644 0.781189\n0.505524 0.149384 0.781281\n0.546906 0.151093 0.781372\n0.585480 0.152893 0.781403\n0.621338 0.154663 0.781525\n0.654510 0.156494 0.781586\n0.685486 0.158386 0.781647\n0.714478 0.160217 0.781769\n0.741852 0.162109 0.781830\n0.767883 0.164062 0.781921\n0.792816 0.165955 0.781982\n0.816895 0.167969 0.782043\n0.840363 0.169952 0.782104\n0.863495 0.171936 0.782166\n0.886536 0.173981 0.782257\n0.909912 0.176025 0.782288\n0.934113 0.178070 0.782349\n0.959961 0.180206 0.782410\n0.041595 0.155090 0.776733\n0.057709 0.156555 0.776825\n0.075134 0.158081 0.776886\n0.094147 0.159637 0.776947\n0.115112 0.161194 0.777008\n0.138336 0.162781 0.777130\n0.164246 0.164459 0.777191\n0.193085 0.166077 0.777283\n0.224884 0.167816 0.777344\n0.259430 0.169556 0.777405\n0.296509 0.171295 0.777496\n0.335876 0.173065 0.777557\n0.377197 0.174896 0.777649\n0.420105 0.176727 0.777710\n0.464050 0.178650 0.777771\n0.507721 0.180481 0.777832\n0.548767 0.182434 0.777924\n0.587158 0.184418 0.777954\n0.622803 0.186340 0.777985\n0.655792 0.188416 0.778107\n0.686584 0.190430 0.778168\n0.715393 0.192444 0.778198\n0.742645 0.194550 0.778259\n0.768616 0.196686 0.778290\n0.793427 0.198761 0.778320\n0.817383 0.200897 0.778412\n0.840790 0.203094 0.778473\n0.863831 0.205200 0.778503\n0.886780 0.207428 0.778534\n0.910095 0.209595 0.778564\n0.934174 0.211823 0.778595\n0.959961 0.214081 0.778625\n0.042847 0.187317 0.773102\n0.059052 0.188995 0.773132\n0.076569 0.190643 0.773193\n0.095703 0.192383 0.773285\n0.116760 0.194153 0.773346\n0.140137 0.195923 0.773407\n0.166199 0.197723 0.773438\n0.195221 0.199554 0.773529\n0.227173 0.201477 0.773560\n0.261841 0.203400 0.773590\n0.298981 0.205322 0.773682\n0.338409 0.207306 0.773743\n0.379730 0.209320 0.773773\n0.422577 0.211243 0.773804\n0.466461 0.213348 0.773895\n0.509888 0.215393 0.773926\n0.550720 0.217499 0.773926\n0.588837 0.219635 0.774048\n0.624268 0.221710 0.774048\n0.657043 0.223907 0.774109\n0.687653 0.226074 0.774139\n0.716370 0.228241 0.774200\n0.743500 0.230499 0.774200\n0.769287 0.232788 0.774200\n0.794006 0.234985 0.774323\n0.817871 0.237274 0.774323\n0.841156 0.239563 0.774323\n0.864136 0.241882 0.774384\n0.887054 0.244202 0.774414\n0.910278 0.246460 0.774414\n0.934296 0.248871 0.774445\n0.959961 0.251221 0.774475\n0.044220 0.223480 0.768921\n0.060425 0.225220 0.769012\n0.078033 0.227142 0.769043\n0.097351 0.229004 0.769073\n0.118530 0.230896 0.769135\n0.142029 0.232880 0.769165\n0.168274 0.234863 0.769196\n0.197449 0.236816 0.769257\n0.229523 0.238861 0.769318\n0.264282 0.240906 0.769379\n0.301483 0.242981 0.769409\n0.340912 0.245117 0.769409\n0.382263 0.247162 0.769470\n0.425079 0.249359 0.769501\n0.468842 0.251556 0.769501\n0.512085 0.253723 0.769592\n0.552704 0.255951 0.769623\n0.590576 0.258270 0.769623\n0.625732 0.260437 0.769684\n0.658325 0.262756 0.769684\n0.688751 0.265106 0.769714\n0.717316 0.267365 0.769714\n0.744293 0.269684 0.769775\n0.769958 0.272125 0.769775\n0.794556 0.274384 0.769806\n0.818359 0.276825 0.769836\n0.841583 0.279144 0.769836\n0.864441 0.281555 0.769836\n0.887268 0.283997 0.769867\n0.910431 0.286346 0.769897\n0.934387 0.288818 0.769897\n0.959961 0.291229 0.769897\n0.045593 0.263214 0.764374\n0.061890 0.265137 0.764404\n0.079590 0.267120 0.764404\n0.098999 0.269104 0.764465\n0.120361 0.271149 0.764496\n0.143951 0.273224 0.764496\n0.170349 0.275330 0.764557\n0.199677 0.277435 0.764587\n0.231903 0.279602 0.764618\n0.266754 0.281799 0.764648\n0.304047 0.283966 0.764679\n0.343536 0.286163 0.764709\n0.384796 0.288361 0.764709\n0.427673 0.290649 0.764801\n0.471344 0.292969 0.764771\n0.514282 0.295197 0.764832\n0.554657 0.297546 0.764862\n0.592285 0.299927 0.764862\n0.627197 0.302185 0.764893\n0.659607 0.304596 0.764862\n0.689880 0.307007 0.764923\n0.718231 0.309387 0.764923\n0.745087 0.311768 0.764954\n0.770691 0.314148 0.764954\n0.795166 0.316559 0.764984\n0.818878 0.319031 0.764954\n0.841949 0.321411 0.764984\n0.864777 0.323883 0.765015\n0.887512 0.326385 0.765015\n0.910583 0.328766 0.765015\n0.934479 0.331238 0.764984\n0.959961 0.333740 0.765045\n0.046967 0.306213 0.759338\n0.063385 0.308228 0.759369\n0.081207 0.310333 0.759369\n0.100647 0.312439 0.759399\n0.122131 0.314514 0.759460\n0.145966 0.316711 0.759491\n0.172516 0.318909 0.759521\n0.202026 0.321045 0.759552\n0.234375 0.323303 0.759583\n0.269226 0.325500 0.759613\n0.306610 0.327789 0.759583\n0.346161 0.330109 0.759674\n0.387421 0.332397 0.759644\n0.430206 0.334747 0.759644\n0.473816 0.337097 0.759674\n0.516479 0.339386 0.759735\n0.556610 0.341797 0.759705\n0.593994 0.344208 0.759705\n0.628693 0.346558 0.759796\n0.660889 0.348969 0.759766\n0.690979 0.351410 0.759766\n0.719208 0.353821 0.759796\n0.745941 0.356262 0.759827\n0.771362 0.358673 0.759766\n0.795746 0.361145 0.759827\n0.819336 0.363586 0.759857\n0.842377 0.365997 0.759827\n0.865082 0.368469 0.759857\n0.887787 0.370972 0.759827\n0.910736 0.373413 0.759888\n0.934540 0.375854 0.759827\n0.959961 0.378296 0.759888\n0.048431 0.351990 0.753967\n0.064911 0.354065 0.753998\n0.082825 0.356232 0.754059\n0.102417 0.358429 0.754089\n0.124023 0.360596 0.754089\n0.148010 0.362793 0.754120\n0.174713 0.365021 0.754120\n0.204407 0.367279 0.754150\n0.236786 0.369537 0.754150\n0.271820 0.371796 0.754242\n0.309265 0.374146 0.754242\n0.348816 0.376465 0.754242\n0.390045 0.378754 0.754272\n0.432800 0.381134 0.754272\n0.476318 0.383545 0.754303\n0.518707 0.385834 0.754303\n0.558563 0.388275 0.754364\n0.595703 0.390625 0.754364\n0.630188 0.393036 0.754364\n0.662170 0.395447 0.754395\n0.692047 0.397827 0.754395\n0.720184 0.400299 0.754364\n0.746704 0.402740 0.754425\n0.772034 0.405090 0.754456\n0.796326 0.407532 0.754456\n0.819855 0.409973 0.754456\n0.842804 0.412354 0.754425\n0.865387 0.414795 0.754486\n0.887970 0.417267 0.754456\n0.910919 0.419586 0.754486\n0.934662 0.422058 0.754486\n0.959961 0.424408 0.754486\n0.049927 0.400085 0.748322\n0.066498 0.402222 0.748352\n0.084503 0.404419 0.748383\n0.104248 0.406586 0.748413\n0.125977 0.408783 0.748444\n0.150085 0.411011 0.748474\n0.177002 0.413269 0.748474\n0.206787 0.415497 0.748566\n0.239349 0.417755 0.748566\n0.274445 0.420044 0.748566\n0.311920 0.422333 0.748596\n0.351471 0.424683 0.748627\n0.392761 0.426971 0.748627\n0.435394 0.429291 0.748627\n0.478821 0.431641 0.748718\n0.520966 0.433990 0.748718\n0.560547 0.436371 0.748718\n0.597412 0.438721 0.748749\n0.631653 0.441071 0.748779\n0.663422 0.443481 0.748779\n0.693176 0.445770 0.748779\n0.721069 0.448151 0.748871\n0.747528 0.450531 0.748871\n0.772766 0.452911 0.748840\n0.796936 0.455261 0.748840\n0.820312 0.457672 0.748901\n0.843201 0.459991 0.748871\n0.865723 0.462372 0.748932\n0.888245 0.464722 0.748932\n0.911072 0.466980 0.748962\n0.934723 0.469391 0.748962\n0.959961 0.471588 0.748962\n0.051453 0.449982 0.742462\n0.068085 0.452026 0.742493\n0.086212 0.454193 0.742523\n0.106079 0.456390 0.742584\n0.127930 0.458527 0.742584\n0.152252 0.460724 0.742645\n0.179291 0.462952 0.742706\n0.209259 0.465149 0.742676\n0.241882 0.467407 0.742737\n0.277130 0.469635 0.742737\n0.314636 0.471832 0.742798\n0.354187 0.474091 0.742798\n0.395447 0.476349 0.742920\n0.438049 0.478638 0.742889\n0.481262 0.480896 0.742920\n0.523193 0.483124 0.742981\n0.562500 0.485382 0.743011\n0.599091 0.487610 0.743042\n0.633148 0.489960 0.743042\n0.664734 0.492218 0.743134\n0.694275 0.494476 0.743134\n0.722046 0.496704 0.743164\n0.748352 0.498993 0.743164\n0.773407 0.501190 0.743225\n0.797485 0.503448 0.743225\n0.820801 0.505737 0.743317\n0.843567 0.507843 0.743317\n0.866028 0.510040 0.743347\n0.888489 0.512207 0.743408\n0.911224 0.514343 0.743408\n0.934845 0.516479 0.743439\n0.959961 0.518585 0.743439\n0.052979 0.500549 0.736511\n0.069733 0.502563 0.736542\n0.087982 0.504639 0.736572\n0.107910 0.506744 0.736664\n0.129913 0.508789 0.736725\n0.154388 0.510864 0.736755\n0.181641 0.512909 0.736786\n0.211731 0.514984 0.736847\n0.244507 0.517059 0.736908\n0.279816 0.519073 0.736938\n0.317383 0.521210 0.737061\n0.356903 0.523315 0.737091\n0.398132 0.525330 0.737152\n0.440735 0.527405 0.737183\n0.483826 0.529449 0.737274\n0.525421 0.531494 0.737335\n0.564453 0.533600 0.737366\n0.600800 0.535583 0.737488\n0.634583 0.537628 0.737518\n0.665985 0.539612 0.737579\n0.695374 0.541595 0.737610\n0.722992 0.543610 0.737701\n0.749146 0.545654 0.737762\n0.774078 0.547516 0.737854\n0.798065 0.549591 0.737885\n0.821289 0.551544 0.737946\n0.843964 0.553406 0.738037\n0.866333 0.555298 0.738098\n0.888733 0.557190 0.738159\n0.911377 0.559082 0.738190\n0.934937 0.560974 0.738251\n0.959961 0.562744 0.738373\n0.054565 0.549316 0.730774\n0.071411 0.551086 0.730927\n0.089722 0.552948 0.730988\n0.109833 0.554749 0.731049\n0.131989 0.556549 0.731110\n0.156616 0.558411 0.731201\n0.183990 0.560181 0.731293\n0.214233 0.562012 0.731354\n0.247101 0.563904 0.731506\n0.282501 0.565674 0.731567\n0.320129 0.567505 0.731659\n0.359680 0.569366 0.731750\n0.400879 0.571106 0.731842\n0.443359 0.572968 0.731903\n0.486328 0.574738 0.731995\n0.527618 0.576569 0.732147\n0.566376 0.578308 0.732239\n0.602539 0.580078 0.732300\n0.636078 0.581909 0.732361\n0.667236 0.583679 0.732513\n0.696411 0.585419 0.732544\n0.723938 0.587097 0.732697\n0.749939 0.588867 0.732788\n0.774780 0.590546 0.732880\n0.798645 0.592285 0.732971\n0.821747 0.593933 0.733063\n0.844360 0.595612 0.733124\n0.866638 0.597290 0.733215\n0.888947 0.598907 0.733337\n0.911560 0.600494 0.733459\n0.934998 0.602142 0.733521\n0.959961 0.603668 0.733643\n0.056152 0.594299 0.725616\n0.073090 0.595856 0.725677\n0.091553 0.597473 0.725800\n0.111755 0.599091 0.725922\n0.134094 0.600647 0.726044\n0.158844 0.602295 0.726135\n0.186432 0.603821 0.726288\n0.216766 0.605469 0.726410\n0.249786 0.607025 0.726532\n0.285217 0.608643 0.726654\n0.322906 0.610229 0.726746\n0.362427 0.611816 0.726868\n0.403564 0.613342 0.726990\n0.445984 0.614929 0.727173\n0.488770 0.616486 0.727234\n0.529816 0.618073 0.727356\n0.568329 0.619629 0.727478\n0.604156 0.621094 0.727631\n0.637512 0.622620 0.727722\n0.668488 0.624176 0.727875\n0.697510 0.625671 0.727997\n0.724792 0.627197 0.728088\n0.750732 0.628662 0.728241\n0.775421 0.630127 0.728333\n0.799225 0.631592 0.728455\n0.822235 0.633057 0.728577\n0.844727 0.634430 0.728699\n0.866974 0.635895 0.728882\n0.889130 0.637268 0.728943\n0.911743 0.638641 0.729065\n0.935089 0.640015 0.729187\n0.959961 0.641357 0.729248\n0.057831 0.635712 0.720825\n0.074860 0.637054 0.720978\n0.093384 0.638489 0.721130\n0.113708 0.639801 0.721252\n0.136169 0.641235 0.721436\n0.161163 0.642578 0.721588\n0.188873 0.643921 0.721680\n0.219330 0.645325 0.721832\n0.252472 0.646729 0.722015\n0.287933 0.648041 0.722168\n0.325653 0.649445 0.722260\n0.365204 0.650818 0.722473\n0.406311 0.652100 0.722626\n0.448639 0.653473 0.722778\n0.491241 0.654785 0.722870\n0.532013 0.656158 0.723053\n0.570282 0.657471 0.723206\n0.605835 0.658783 0.723358\n0.638947 0.660065 0.723511\n0.669708 0.661407 0.723633\n0.698578 0.662659 0.723816\n0.725739 0.663910 0.723938\n0.751526 0.665222 0.724091\n0.776093 0.666443 0.724243\n0.799744 0.667694 0.724365\n0.822693 0.668884 0.724548\n0.845093 0.670105 0.724670\n0.867279 0.671326 0.724823\n0.889374 0.672485 0.724945\n0.911865 0.673676 0.725067\n0.935181 0.674805 0.725220\n0.959961 0.675934 0.725403\n0.059509 0.673584 0.716522\n0.076599 0.674744 0.716705\n0.095245 0.675934 0.716919\n0.115723 0.677124 0.717072\n0.138336 0.678314 0.717224\n0.163422 0.679504 0.717407\n0.191345 0.680634 0.717590\n0.221954 0.681824 0.717743\n0.255157 0.683044 0.717896\n0.290710 0.684174 0.718140\n0.328430 0.685364 0.718292\n0.368011 0.686493 0.718445\n0.408997 0.687653 0.718597\n0.451263 0.688782 0.718811\n0.493683 0.689941 0.718994\n0.534210 0.691040 0.719177\n0.572083 0.692230 0.719330\n0.607513 0.693298 0.719452\n0.640350 0.694427 0.719696\n0.670959 0.695557 0.719818\n0.699615 0.696625 0.719971\n0.726654 0.697693 0.720184\n0.752289 0.698761 0.720337\n0.776733 0.699860 0.720520\n0.800293 0.700897 0.720673\n0.823120 0.701904 0.720856\n0.845459 0.702942 0.720978\n0.867523 0.703979 0.721130\n0.889618 0.704956 0.721283\n0.912048 0.705994 0.721497\n0.935211 0.707001 0.721649\n0.959961 0.707916 0.721771\n0.061157 0.708374 0.712677\n0.078430 0.709381 0.712891\n0.097168 0.710419 0.713043\n0.117737 0.711395 0.713226\n0.140533 0.712463 0.713440\n0.165741 0.713470 0.713623\n0.193817 0.714447 0.713806\n0.224579 0.715454 0.714050\n0.257874 0.716461 0.714233\n0.293427 0.717468 0.714417\n0.331146 0.718506 0.714600\n0.370697 0.719482 0.714813\n0.411774 0.720398 0.715027\n0.453888 0.721405 0.715210\n0.496094 0.722382 0.715424\n0.536285 0.723358 0.715546\n0.574005 0.724365 0.715790\n0.609131 0.725281 0.715942\n0.641754 0.726257 0.716125\n0.672119 0.727142 0.716309\n0.700623 0.728088 0.716492\n0.727539 0.729004 0.716736\n0.753021 0.729919 0.716888\n0.777405 0.730804 0.717072\n0.800842 0.731720 0.717255\n0.823547 0.732574 0.717407\n0.845856 0.733459 0.717560\n0.867828 0.734344 0.717834\n0.889832 0.735138 0.717987\n0.912140 0.735992 0.718140\n0.935303 0.736847 0.718292\n0.959961 0.737640 0.718475\n0.062866 0.740601 0.709106\n0.080170 0.741486 0.709320\n0.099091 0.742371 0.709534\n0.119781 0.743225 0.709778\n0.142700 0.744141 0.709930\n0.168121 0.744965 0.710205\n0.196350 0.745819 0.710419\n0.227173 0.746704 0.710632\n0.260529 0.747559 0.710815\n0.296204 0.748383 0.711060\n0.333954 0.749237 0.711243\n0.373444 0.750061 0.711487\n0.414429 0.750916 0.711670\n0.456451 0.751770 0.711853\n0.498505 0.752594 0.712097\n0.538422 0.753387 0.712311\n0.575836 0.754242 0.712494\n0.610687 0.755005 0.712708\n0.643097 0.755829 0.712891\n0.673340 0.756653 0.713135\n0.701630 0.757416 0.713318\n0.728394 0.758209 0.713501\n0.753754 0.758972 0.713684\n0.778015 0.759705 0.713898\n0.801361 0.760498 0.714050\n0.824005 0.761230 0.714294\n0.846191 0.761963 0.714508\n0.868103 0.762726 0.714661\n0.890045 0.763397 0.714844\n0.912292 0.764099 0.714996\n0.935394 0.764801 0.715179\n0.959961 0.765472 0.715332\n0.064606 0.770721 0.705841\n0.082001 0.771454 0.706085\n0.100983 0.772217 0.706268\n0.121826 0.772949 0.706573\n0.144897 0.773651 0.706787\n0.170502 0.774445 0.707001\n0.198822 0.775146 0.707245\n0.229797 0.775879 0.707458\n0.263214 0.776611 0.707703\n0.298981 0.777313 0.707916\n0.336700 0.778046 0.708160\n0.376190 0.778748 0.708344\n0.417114 0.779480 0.708618\n0.459015 0.780182 0.708832\n0.500824 0.780884 0.709015\n0.540466 0.781586 0.709259\n0.577667 0.782257 0.709473\n0.612274 0.782959 0.709717\n0.644470 0.783630 0.709930\n0.674438 0.784271 0.710083\n0.702637 0.784973 0.710297\n0.729218 0.785645 0.710510\n0.754486 0.786285 0.710693\n0.778625 0.786926 0.710968\n0.801880 0.787567 0.711151\n0.824432 0.788147 0.711334\n0.846527 0.788788 0.711517\n0.868378 0.789429 0.711700\n0.890259 0.789978 0.711914\n0.912415 0.790588 0.712067\n0.935455 0.791138 0.712280\n0.959961 0.791748 0.712463\n0.066315 0.799011 0.702789\n0.083801 0.799652 0.703094\n0.102936 0.800323 0.703339\n0.123932 0.800903 0.703552\n0.147095 0.801544 0.703796\n0.172882 0.802155 0.704041\n0.201324 0.802795 0.704285\n0.232422 0.803375 0.704529\n0.265930 0.803986 0.704742\n0.301697 0.804626 0.704987\n0.339447 0.805237 0.705231\n0.378876 0.805847 0.705475\n0.419739 0.806396 0.705688\n0.461548 0.807068 0.705902\n0.503143 0.807617 0.706146\n0.542542 0.808197 0.706390\n0.579437 0.808807 0.706635\n0.613831 0.809357 0.706818\n0.645782 0.809937 0.707062\n0.675629 0.810455 0.707275\n0.703613 0.811035 0.707458\n0.730042 0.811615 0.707764\n0.755157 0.812134 0.707977\n0.779236 0.812653 0.708130\n0.802368 0.813232 0.708344\n0.824860 0.813721 0.708557\n0.846863 0.814240 0.708771\n0.868622 0.814728 0.708954\n0.890472 0.815247 0.709137\n0.912567 0.815735 0.709351\n0.935486 0.816193 0.709534\n0.959961 0.816650 0.709717\n0.068054 0.825867 0.699982\n0.085693 0.826416 0.700226\n0.104919 0.826965 0.700470\n0.126007 0.827454 0.700714\n0.149353 0.827972 0.700989\n0.175232 0.828522 0.701263\n0.203857 0.829041 0.701508\n0.235046 0.829529 0.701752\n0.268616 0.830048 0.701996\n0.304413 0.830566 0.702240\n0.342163 0.831085 0.702484\n0.381561 0.831604 0.702728\n0.422363 0.832092 0.702972\n0.464081 0.832581 0.703247\n0.505432 0.833038 0.703491\n0.544525 0.833557 0.703674\n0.581207 0.834045 0.703918\n0.615326 0.834503 0.704132\n0.647064 0.834991 0.704346\n0.676666 0.835449 0.704620\n0.704529 0.835907 0.704834\n0.730896 0.836334 0.705078\n0.755890 0.836823 0.705231\n0.779816 0.837280 0.705505\n0.802856 0.837708 0.705688\n0.825226 0.838135 0.705902\n0.847198 0.838562 0.706085\n0.868866 0.838989 0.706329\n0.890625 0.839386 0.706543\n0.912689 0.839783 0.706726\n0.935577 0.840149 0.706879\n0.959961 0.840546 0.707092\n0.069824 0.851562 0.697266\n0.087524 0.852020 0.697540\n0.106873 0.852448 0.697815\n0.128113 0.852905 0.698059\n0.151581 0.853333 0.698334\n0.177612 0.853760 0.698578\n0.206390 0.854187 0.698883\n0.237640 0.854614 0.699127\n0.271240 0.855042 0.699341\n0.307068 0.855469 0.699615\n0.344879 0.855896 0.699860\n0.384277 0.856293 0.700165\n0.424927 0.856689 0.700409\n0.466553 0.857117 0.700623\n0.507629 0.857513 0.700836\n0.546448 0.857880 0.701111\n0.582855 0.858276 0.701294\n0.616760 0.858673 0.701599\n0.648315 0.859070 0.701843\n0.677795 0.859467 0.702057\n0.705475 0.859833 0.702271\n0.731659 0.860199 0.702484\n0.756561 0.860535 0.702728\n0.780365 0.860931 0.702942\n0.803345 0.861298 0.703125\n0.825653 0.861633 0.703369\n0.847504 0.862000 0.703583\n0.869110 0.862305 0.703766\n0.890808 0.862640 0.703979\n0.912781 0.862976 0.704163\n0.935638 0.863281 0.704346\n0.959961 0.863586 0.704559\n0.071625 0.876434 0.694672\n0.089386 0.876740 0.694977\n0.108826 0.877106 0.695221\n0.130188 0.877472 0.695496\n0.153839 0.877808 0.695770\n0.180023 0.878174 0.696045\n0.208862 0.878510 0.696289\n0.240265 0.878876 0.696564\n0.273926 0.879211 0.696838\n0.309784 0.879578 0.697113\n0.347534 0.879883 0.697357\n0.386871 0.880188 0.697601\n0.427521 0.880554 0.697845\n0.468903 0.880859 0.698090\n0.509857 0.881226 0.698334\n0.548370 0.881531 0.698608\n0.584503 0.881836 0.698883\n0.618225 0.882172 0.699097\n0.649567 0.882477 0.699310\n0.678833 0.882782 0.699554\n0.706390 0.883087 0.699799\n0.732422 0.883392 0.699982\n0.757202 0.883667 0.700226\n0.780945 0.883972 0.700470\n0.803772 0.884247 0.700684\n0.825989 0.884521 0.700867\n0.847809 0.884796 0.701080\n0.869385 0.885071 0.701263\n0.890961 0.885345 0.701477\n0.912933 0.885590 0.701660\n0.935699 0.885803 0.701874\n0.959961 0.886047 0.702057\n0.073364 0.900665 0.692169\n0.091248 0.900970 0.692413\n0.110809 0.901215 0.692719\n0.132294 0.901489 0.692993\n0.156097 0.901794 0.693268\n0.182373 0.902069 0.693542\n0.211365 0.902344 0.693848\n0.242828 0.902649 0.694092\n0.276550 0.902863 0.694366\n0.312439 0.903168 0.694611\n0.350128 0.903442 0.694885\n0.389435 0.903687 0.695129\n0.430054 0.903961 0.695374\n0.471313 0.904205 0.695679\n0.511963 0.904480 0.695923\n0.550293 0.904694 0.696198\n0.586151 0.904968 0.696381\n0.619598 0.905212 0.696625\n0.650757 0.905457 0.696838\n0.679871 0.905670 0.697083\n0.707245 0.905884 0.697357\n0.733154 0.906128 0.697601\n0.757843 0.906342 0.697815\n0.781464 0.906586 0.698029\n0.804230 0.906799 0.698242\n0.826416 0.907013 0.698425\n0.848083 0.907196 0.698639\n0.869598 0.907410 0.698822\n0.891113 0.907623 0.699036\n0.913055 0.907806 0.699219\n0.935730 0.908020 0.699371\n0.959961 0.908203 0.699585\n0.075134 0.924744 0.689636\n0.093140 0.924927 0.689972\n0.112762 0.925110 0.690216\n0.134369 0.925323 0.690491\n0.158325 0.925568 0.690826\n0.184753 0.925781 0.691071\n0.213806 0.925964 0.691345\n0.245392 0.926147 0.691620\n0.279144 0.926361 0.691864\n0.315033 0.926575 0.692139\n0.352753 0.926758 0.692413\n0.391968 0.926971 0.692719\n0.432465 0.927124 0.692963\n0.473602 0.927368 0.693207\n0.514008 0.927521 0.693420\n0.552063 0.927704 0.693695\n0.587708 0.927917 0.693939\n0.620941 0.928070 0.694183\n0.651886 0.928253 0.694427\n0.680817 0.928436 0.694672\n0.708069 0.928589 0.694916\n0.733917 0.928772 0.695129\n0.758423 0.928955 0.695312\n0.781921 0.929108 0.695557\n0.804626 0.929291 0.695740\n0.826721 0.929413 0.695953\n0.848389 0.929565 0.696198\n0.869812 0.929657 0.696381\n0.891327 0.929840 0.696564\n0.913147 0.929962 0.696747\n0.935822 0.930115 0.696899\n0.959961 0.930237 0.697083\n0.076935 0.948883 0.687134\n0.094971 0.949005 0.687408\n0.114746 0.949158 0.687714\n0.136444 0.949341 0.688019\n0.160522 0.949493 0.688293\n0.187103 0.949615 0.688568\n0.216278 0.949768 0.688843\n0.247894 0.949860 0.689117\n0.281708 0.950012 0.689392\n0.317566 0.950134 0.689667\n0.355286 0.950287 0.689972\n0.394501 0.950378 0.690216\n0.434875 0.950531 0.690460\n0.475891 0.950623 0.690704\n0.516022 0.950745 0.690979\n0.553802 0.950897 0.691193\n0.589233 0.951019 0.691467\n0.622284 0.951141 0.691711\n0.653015 0.951233 0.691956\n0.681793 0.951355 0.692169\n0.708893 0.951508 0.692383\n0.734589 0.951599 0.692627\n0.759003 0.951721 0.692810\n0.782471 0.951813 0.693024\n0.805054 0.951935 0.693268\n0.827057 0.951996 0.693451\n0.848633 0.952118 0.693665\n0.870026 0.952240 0.693817\n0.891449 0.952332 0.694031\n0.913269 0.952393 0.694214\n0.935852 0.952515 0.694366\n0.959961 0.952576 0.694550\n0.078674 0.973694 0.684540\n0.096832 0.973816 0.684814\n0.116699 0.973877 0.685120\n0.138580 0.973969 0.685425\n0.162720 0.974030 0.685699\n0.189392 0.974091 0.685944\n0.218689 0.974182 0.686249\n0.250336 0.974213 0.686554\n0.284241 0.974304 0.686798\n0.320129 0.974365 0.687103\n0.357697 0.974426 0.687347\n0.396912 0.974518 0.687592\n0.437195 0.974579 0.687836\n0.478088 0.974609 0.688110\n0.517975 0.974701 0.688416\n0.555511 0.974731 0.688660\n0.590698 0.974854 0.688873\n0.623505 0.974884 0.689117\n0.654083 0.974976 0.689362\n0.682709 0.975006 0.689545\n0.709656 0.975067 0.689789\n0.735199 0.975098 0.690002\n0.759552 0.975189 0.690247\n0.782928 0.975220 0.690430\n0.805420 0.975281 0.690643\n0.827362 0.975281 0.690826\n0.848877 0.975342 0.691010\n0.870239 0.975403 0.691223\n0.891602 0.975433 0.691376\n0.913391 0.975494 0.691559\n0.935944 0.975494 0.691742\n0.959961 0.975586 0.691895\n0.080414 1.000000 0.681702\n0.098663 1.000000 0.682007\n0.118622 1.000000 0.682281\n0.140594 1.000000 0.682587\n0.164886 1.000000 0.682861\n0.191711 1.000000 0.683197\n0.221100 1.000000 0.683472\n0.252808 1.000000 0.683746\n0.286682 1.000000 0.684021\n0.322540 1.000000 0.684265\n0.360199 1.000000 0.684540\n0.399231 1.000000 0.684814\n0.439453 1.000000 0.685089\n0.480255 1.000000 0.685333\n0.519867 1.000000 0.685608\n0.557159 1.000000 0.685852\n0.592102 1.000000 0.686066\n0.624725 1.000000 0.686310\n0.655121 1.000000 0.686523\n0.683594 1.000000 0.686768\n0.710419 1.000000 0.687012\n0.735840 1.000000 0.687225\n0.760071 1.000000 0.687439\n0.783356 1.000000 0.687622\n0.805786 1.000000 0.687805\n0.827667 1.000000 0.687988\n0.849152 1.000000 0.688171\n0.870392 1.000000 0.688385\n0.891754 1.000000 0.688568\n0.913483 1.000000 0.688721\n0.935974 1.000000 0.688873\n0.959961 1.000000 0.689087\n0.034302 0.005310 0.819672\n0.049927 0.006073 0.819733\n0.066772 0.006836 0.819824\n0.085114 0.007599 0.819946\n0.105255 0.008392 0.820007\n0.127594 0.009216 0.820099\n0.152466 0.010101 0.820160\n0.180267 0.010956 0.820221\n0.211151 0.011841 0.820343\n0.244965 0.012787 0.820404\n0.281494 0.013702 0.820496\n0.320435 0.014679 0.820587\n0.361572 0.015656 0.820648\n0.404572 0.016663 0.820770\n0.448914 0.017700 0.820862\n0.493622 0.018738 0.820923\n0.536316 0.019806 0.821045\n0.576202 0.020874 0.821136\n0.613220 0.021973 0.821228\n0.647491 0.023132 0.821350\n0.679352 0.024261 0.821472\n0.709198 0.025421 0.821533\n0.737335 0.026581 0.821625\n0.764008 0.027771 0.821716\n0.789490 0.028961 0.821838\n0.814148 0.030212 0.821899\n0.838104 0.031433 0.822021\n0.861633 0.032715 0.822113\n0.885132 0.033997 0.822205\n0.909027 0.035278 0.822327\n0.933655 0.036591 0.822418\n0.959961 0.037933 0.822510\n0.035187 0.021881 0.817871\n0.050873 0.022644 0.817993\n0.067810 0.023468 0.818054\n0.086273 0.024323 0.818115\n0.106476 0.025177 0.818207\n0.128967 0.026062 0.818268\n0.153992 0.027008 0.818329\n0.181915 0.027924 0.818420\n0.212952 0.028870 0.818512\n0.246857 0.029846 0.818573\n0.283478 0.030884 0.818665\n0.322479 0.031891 0.818787\n0.363708 0.032898 0.818878\n0.406647 0.033997 0.818939\n0.451050 0.035095 0.819061\n0.495605 0.036194 0.819122\n0.538086 0.037323 0.819214\n0.577698 0.038452 0.819305\n0.614563 0.039642 0.819427\n0.648651 0.040833 0.819519\n0.680359 0.042023 0.819580\n0.710083 0.043274 0.819702\n0.738098 0.044525 0.819794\n0.764648 0.045776 0.819885\n0.790100 0.047058 0.819977\n0.814606 0.048401 0.820068\n0.838470 0.049683 0.820190\n0.861969 0.051025 0.820282\n0.885437 0.052368 0.820343\n0.909149 0.053741 0.820435\n0.933716 0.055145 0.820496\n0.959961 0.056519 0.820587\n0.036194 0.039398 0.815979\n0.051941 0.040222 0.816071\n0.068939 0.041138 0.816132\n0.087463 0.042084 0.816193\n0.107849 0.042999 0.816254\n0.130432 0.043945 0.816345\n0.155548 0.044983 0.816406\n0.183685 0.045990 0.816467\n0.214813 0.047028 0.816559\n0.248840 0.048035 0.816681\n0.285522 0.049103 0.816772\n0.324646 0.050262 0.816833\n0.365875 0.051361 0.816895\n0.408813 0.052521 0.816986\n0.453125 0.053711 0.817078\n0.497559 0.054871 0.817169\n0.539825 0.056122 0.817291\n0.579285 0.057343 0.817383\n0.615875 0.058563 0.817444\n0.649841 0.059875 0.817535\n0.681396 0.061157 0.817627\n0.710938 0.062469 0.817719\n0.738861 0.063843 0.817780\n0.765320 0.065186 0.817902\n0.790619 0.066559 0.817993\n0.815033 0.067993 0.818054\n0.838867 0.069336 0.818146\n0.862274 0.070770 0.818237\n0.885681 0.072266 0.818268\n0.909302 0.073700 0.818359\n0.933807 0.075195 0.818481\n0.959961 0.076691 0.818573\n0.037201 0.058228 0.813873\n0.053040 0.059204 0.813934\n0.070129 0.060150 0.814026\n0.088745 0.061218 0.814087\n0.109253 0.062195 0.814148\n0.131958 0.063263 0.814240\n0.157227 0.064362 0.814301\n0.185486 0.065460 0.814392\n0.216766 0.066589 0.814484\n0.250916 0.067749 0.814575\n0.287659 0.068909 0.814636\n0.326874 0.070129 0.814728\n0.368134 0.071350 0.814789\n0.411041 0.072601 0.814880\n0.455353 0.073883 0.815002\n0.499603 0.075165 0.815063\n0.541656 0.076477 0.815125\n0.580841 0.077850 0.815186\n0.617279 0.079193 0.815277\n0.651031 0.080597 0.815338\n0.682465 0.081970 0.815430\n0.711853 0.083405 0.815521\n0.739624 0.084900 0.815582\n0.765930 0.086334 0.815674\n0.791199 0.087830 0.815735\n0.815552 0.089325 0.815826\n0.839264 0.090851 0.815857\n0.862610 0.092407 0.815948\n0.885834 0.093964 0.816040\n0.909454 0.095551 0.816101\n0.933868 0.097168 0.816132\n0.959961 0.098785 0.816223\n0.038300 0.078857 0.811584\n0.054199 0.079926 0.811646\n0.071350 0.081024 0.811707\n0.090118 0.082123 0.811768\n0.110718 0.083252 0.811859\n0.133545 0.084442 0.811951\n0.158966 0.085602 0.812012\n0.187408 0.086823 0.812042\n0.218811 0.088074 0.812134\n0.253052 0.089325 0.812225\n0.289917 0.090637 0.812286\n0.329163 0.091949 0.812347\n0.370392 0.093292 0.812408\n0.413422 0.094666 0.812500\n0.457550 0.096100 0.812561\n0.501678 0.097504 0.812622\n0.543488 0.098907 0.812683\n0.582458 0.100372 0.812775\n0.618744 0.101898 0.812805\n0.652283 0.103424 0.812927\n0.683502 0.104950 0.812958\n0.712799 0.106506 0.813049\n0.740417 0.108093 0.813080\n0.766632 0.109650 0.813141\n0.791809 0.111298 0.813171\n0.816010 0.112976 0.813232\n0.839630 0.114624 0.813324\n0.862915 0.116272 0.813416\n0.886108 0.118011 0.813446\n0.909637 0.119720 0.813477\n0.933990 0.121490 0.813507\n0.959961 0.123199 0.813568\n0.039398 0.101654 0.809021\n0.055389 0.102783 0.809082\n0.072662 0.104004 0.809113\n0.091492 0.105225 0.809204\n0.112213 0.106506 0.809296\n0.135162 0.107849 0.809326\n0.160736 0.109131 0.809418\n0.189331 0.110504 0.809448\n0.220917 0.111877 0.809509\n0.255249 0.113281 0.809570\n0.292236 0.114716 0.809631\n0.331482 0.116180 0.809723\n0.372803 0.117645 0.809753\n0.415710 0.119171 0.809814\n0.459839 0.120697 0.809845\n0.503784 0.122284 0.809906\n0.545349 0.123871 0.809967\n0.584137 0.125488 0.810059\n0.620087 0.127106 0.810059\n0.653534 0.128815 0.810120\n0.684570 0.130463 0.810181\n0.713745 0.132172 0.810211\n0.741211 0.133942 0.810242\n0.767303 0.135651 0.810303\n0.792358 0.137451 0.810364\n0.816528 0.139221 0.810394\n0.840027 0.141052 0.810425\n0.863251 0.142914 0.810486\n0.886383 0.144714 0.810486\n0.909821 0.146637 0.810516\n0.934021 0.148560 0.810547\n0.959961 0.150421 0.810577\n0.040619 0.127045 0.806122\n0.056641 0.128387 0.806213\n0.074036 0.129730 0.806274\n0.092926 0.131073 0.806305\n0.113770 0.132507 0.806335\n0.136932 0.133972 0.806396\n0.162628 0.135406 0.806458\n0.191406 0.136932 0.806488\n0.223083 0.138489 0.806549\n0.257538 0.140045 0.806610\n0.294556 0.141632 0.806641\n0.333923 0.143250 0.806641\n0.375153 0.144897 0.806702\n0.418091 0.146606 0.806732\n0.462128 0.148285 0.806793\n0.505951 0.149994 0.806854\n0.547241 0.151794 0.806854\n0.585785 0.153534 0.806915\n0.621582 0.155365 0.806946\n0.654785 0.157196 0.806976\n0.685669 0.159027 0.806976\n0.714630 0.160950 0.807007\n0.742035 0.162872 0.807068\n0.768005 0.164734 0.807098\n0.792908 0.166748 0.807068\n0.816986 0.168671 0.807098\n0.840454 0.170624 0.807098\n0.863525 0.172699 0.807129\n0.886566 0.174713 0.807129\n0.909943 0.176758 0.807159\n0.934143 0.178864 0.807159\n0.959961 0.180908 0.807159\n0.041840 0.155609 0.802887\n0.057953 0.157135 0.802917\n0.075409 0.158630 0.802948\n0.094421 0.160187 0.802979\n0.115417 0.161804 0.803009\n0.138672 0.163391 0.803040\n0.164581 0.165039 0.803070\n0.193481 0.166748 0.803101\n0.225311 0.168457 0.803162\n0.259888 0.170166 0.803162\n0.296997 0.171936 0.803192\n0.336304 0.173737 0.803223\n0.377655 0.175568 0.803223\n0.420532 0.177429 0.803284\n0.464478 0.179321 0.803284\n0.508087 0.181244 0.803314\n0.549133 0.183167 0.803314\n0.587494 0.185089 0.803314\n0.623016 0.187103 0.803345\n0.656036 0.189178 0.803314\n0.686737 0.191162 0.803345\n0.715576 0.193207 0.803406\n0.742798 0.195374 0.803345\n0.768707 0.197418 0.803375\n0.793518 0.199554 0.803345\n0.817474 0.201691 0.803345\n0.840851 0.203827 0.803375\n0.863861 0.206024 0.803345\n0.886841 0.208221 0.803345\n0.910126 0.210449 0.803314\n0.934235 0.212708 0.803314\n0.959961 0.214874 0.803284\n0.043121 0.187897 0.799133\n0.059296 0.189636 0.799133\n0.076874 0.191284 0.799164\n0.096008 0.192993 0.799194\n0.117126 0.194763 0.799194\n0.140533 0.196625 0.799225\n0.166565 0.198395 0.799255\n0.195648 0.200287 0.799255\n0.227600 0.202179 0.799255\n0.262268 0.204071 0.799255\n0.299438 0.206085 0.799255\n0.338867 0.208008 0.799316\n0.380157 0.210022 0.799286\n0.423096 0.212067 0.799255\n0.466919 0.214081 0.799286\n0.510284 0.216156 0.799286\n0.551117 0.218292 0.799286\n0.589172 0.220367 0.799255\n0.624481 0.222504 0.799286\n0.657318 0.224701 0.799286\n0.687836 0.226898 0.799255\n0.716553 0.229126 0.799255\n0.743652 0.231323 0.799194\n0.769379 0.233582 0.799194\n0.794098 0.235840 0.799164\n0.817963 0.238098 0.799164\n0.841217 0.240417 0.799164\n0.864227 0.242737 0.799133\n0.887085 0.245026 0.799072\n0.910278 0.247375 0.799042\n0.934296 0.249756 0.799042\n0.959961 0.252045 0.799011\n0.044464 0.224091 0.794891\n0.060730 0.225952 0.794891\n0.078369 0.227814 0.794891\n0.097626 0.229675 0.794952\n0.118866 0.231628 0.794922\n0.142395 0.233582 0.794922\n0.168640 0.235565 0.794891\n0.197906 0.237579 0.794891\n0.229950 0.239563 0.794891\n0.264709 0.241669 0.794861\n0.301941 0.243774 0.794891\n0.341370 0.245850 0.794891\n0.382721 0.248016 0.794861\n0.425568 0.250183 0.794861\n0.469360 0.252319 0.794861\n0.512451 0.254578 0.794830\n0.553040 0.256805 0.794830\n0.590881 0.259033 0.794830\n0.625977 0.261292 0.794800\n0.658600 0.263641 0.794739\n0.688934 0.265900 0.794678\n0.717468 0.268280 0.794678\n0.744446 0.270538 0.794678\n0.770081 0.272919 0.794617\n0.794708 0.275299 0.794617\n0.818420 0.277618 0.794586\n0.841644 0.280060 0.794525\n0.864502 0.282440 0.794495\n0.887299 0.284821 0.794464\n0.910492 0.287262 0.794434\n0.934387 0.289673 0.794403\n0.959961 0.292114 0.794342\n0.045807 0.263885 0.790222\n0.062164 0.265869 0.790222\n0.079926 0.267883 0.790222\n0.099274 0.269836 0.790222\n0.120636 0.271942 0.790161\n0.144379 0.273987 0.790161\n0.170776 0.276093 0.790131\n0.200104 0.278229 0.790131\n0.232300 0.280365 0.790161\n0.267212 0.282532 0.790131\n0.304535 0.284760 0.790070\n0.343964 0.286957 0.790070\n0.385315 0.289215 0.790039\n0.428162 0.291504 0.790009\n0.471802 0.293762 0.790009\n0.514679 0.296082 0.789978\n0.554993 0.298431 0.789978\n0.592590 0.300720 0.789917\n0.627472 0.303070 0.789856\n0.659790 0.305450 0.789825\n0.690063 0.307861 0.789825\n0.718414 0.310242 0.789795\n0.745239 0.312622 0.789734\n0.770813 0.315033 0.789703\n0.795319 0.317505 0.789673\n0.818939 0.319885 0.789642\n0.842010 0.322357 0.789581\n0.864838 0.324829 0.789581\n0.887543 0.327209 0.789520\n0.910614 0.329712 0.789459\n0.934509 0.332123 0.789398\n0.959961 0.334625 0.789337\n0.047211 0.306915 0.785126\n0.063660 0.308990 0.785126\n0.081543 0.311096 0.785065\n0.100983 0.313171 0.785065\n0.122498 0.315338 0.785034\n0.146362 0.317474 0.785034\n0.172974 0.319641 0.785034\n0.202484 0.321869 0.784973\n0.234741 0.324097 0.784973\n0.269745 0.326385 0.784943\n0.307159 0.328705 0.784912\n0.346558 0.330872 0.784882\n0.387970 0.333252 0.784882\n0.430695 0.335602 0.784851\n0.474243 0.337921 0.784821\n0.516937 0.340302 0.784760\n0.556976 0.342682 0.784729\n0.594330 0.345032 0.784698\n0.628967 0.347473 0.784668\n0.661102 0.349823 0.784607\n0.691162 0.352295 0.784607\n0.719391 0.354706 0.784546\n0.746063 0.357147 0.784485\n0.771515 0.359589 0.784485\n0.795868 0.362061 0.784424\n0.819458 0.364471 0.784424\n0.842468 0.366913 0.784332\n0.865143 0.369415 0.784302\n0.887848 0.371857 0.784241\n0.910767 0.374329 0.784180\n0.934570 0.376678 0.784149\n0.959961 0.379211 0.784119\n0.048676 0.352692 0.779663\n0.065247 0.354889 0.779633\n0.083130 0.357056 0.779602\n0.102753 0.359192 0.779572\n0.124390 0.361420 0.779602\n0.148407 0.363586 0.779572\n0.175140 0.365814 0.779541\n0.204834 0.368103 0.779510\n0.237244 0.370331 0.779510\n0.272369 0.372681 0.779449\n0.309784 0.375000 0.779449\n0.349274 0.377319 0.779419\n0.390564 0.379639 0.779388\n0.433289 0.382019 0.779327\n0.476715 0.384308 0.779266\n0.519135 0.386749 0.779266\n0.558929 0.389069 0.779266\n0.596008 0.391479 0.779205\n0.630463 0.393921 0.779144\n0.662415 0.396301 0.779144\n0.692261 0.398712 0.779083\n0.720337 0.401154 0.779053\n0.746857 0.403564 0.778992\n0.772156 0.406006 0.779022\n0.796417 0.408478 0.778961\n0.819916 0.410828 0.778900\n0.842865 0.413269 0.778839\n0.865479 0.415680 0.778809\n0.888031 0.418091 0.778778\n0.910950 0.420532 0.778748\n0.934692 0.422882 0.778717\n0.959961 0.425354 0.778656\n0.050140 0.400848 0.773895\n0.066772 0.403046 0.773895\n0.084839 0.405212 0.773895\n0.104553 0.407379 0.773865\n0.126343 0.409607 0.773865\n0.150452 0.411804 0.773804\n0.177429 0.414032 0.773804\n0.207275 0.416351 0.773773\n0.239807 0.418579 0.773773\n0.274963 0.420929 0.773773\n0.312439 0.423218 0.773743\n0.351929 0.425476 0.773682\n0.393250 0.427856 0.773621\n0.435852 0.430115 0.773590\n0.479218 0.432495 0.773560\n0.521393 0.434875 0.773560\n0.560852 0.437225 0.773529\n0.597687 0.439606 0.773499\n0.631927 0.441956 0.773468\n0.663696 0.444336 0.773438\n0.693359 0.446655 0.773407\n0.721283 0.449036 0.773407\n0.747711 0.451385 0.773346\n0.772888 0.453796 0.773315\n0.797028 0.456177 0.773285\n0.820404 0.458435 0.773254\n0.843262 0.460907 0.773163\n0.865784 0.463165 0.773193\n0.888275 0.465515 0.773163\n0.911072 0.467926 0.773132\n0.934723 0.470154 0.773071\n0.959961 0.472504 0.773041\n0.051727 0.450714 0.768005\n0.068390 0.452881 0.767975\n0.086548 0.454926 0.767944\n0.106415 0.457184 0.767914\n0.128296 0.459381 0.767914\n0.152588 0.461487 0.767914\n0.179718 0.463745 0.767883\n0.209717 0.466034 0.767883\n0.242401 0.468201 0.767853\n0.277618 0.470428 0.767853\n0.315155 0.472748 0.767792\n0.354645 0.474915 0.767792\n0.395905 0.477173 0.767761\n0.438538 0.479401 0.767761\n0.481750 0.481720 0.767761\n0.523621 0.483978 0.767731\n0.562836 0.486206 0.767731\n0.599457 0.488464 0.767700\n0.633392 0.490814 0.767670\n0.664948 0.493073 0.767670\n0.694458 0.495270 0.767639\n0.722229 0.497559 0.767609\n0.748474 0.499786 0.767609\n0.773560 0.502045 0.767578\n0.797607 0.504242 0.767548\n0.820892 0.506470 0.767548\n0.843628 0.508667 0.767548\n0.866089 0.510864 0.767548\n0.888519 0.512970 0.767517\n0.911255 0.515198 0.767487\n0.934845 0.517273 0.767456\n0.959961 0.519379 0.767487\n0.053284 0.501282 0.761932\n0.070068 0.503357 0.761932\n0.088257 0.505402 0.761932\n0.108246 0.507477 0.761932\n0.130371 0.509521 0.761932\n0.154785 0.511627 0.761963\n0.182068 0.513641 0.761963\n0.212189 0.515747 0.761963\n0.244965 0.517822 0.761932\n0.280304 0.519867 0.761932\n0.317871 0.521912 0.761963\n0.357422 0.524017 0.761963\n0.398651 0.526123 0.761963\n0.441162 0.528137 0.761963\n0.484253 0.530212 0.761993\n0.525757 0.532318 0.761963\n0.564819 0.534271 0.761993\n0.601135 0.536316 0.762054\n0.634857 0.538361 0.762054\n0.666199 0.540344 0.762024\n0.695557 0.542358 0.762054\n0.723145 0.544403 0.762085\n0.749298 0.546295 0.762085\n0.774231 0.548340 0.762115\n0.798187 0.550201 0.762146\n0.821350 0.552155 0.762177\n0.843994 0.554108 0.762177\n0.866394 0.555969 0.762207\n0.888763 0.557892 0.762177\n0.911407 0.559814 0.762207\n0.934937 0.561584 0.762238\n0.959961 0.563477 0.762238\n0.054871 0.549927 0.756134\n0.071716 0.551788 0.756165\n0.090057 0.553528 0.756195\n0.110138 0.555420 0.756256\n0.132385 0.557220 0.756287\n0.156982 0.559021 0.756348\n0.184479 0.560913 0.756348\n0.214752 0.562714 0.756348\n0.247650 0.564514 0.756378\n0.283020 0.566376 0.756470\n0.320679 0.568176 0.756500\n0.360199 0.569977 0.756531\n0.401367 0.571777 0.756622\n0.443848 0.573608 0.756622\n0.486816 0.575409 0.756653\n0.527985 0.577240 0.756714\n0.566711 0.578979 0.756775\n0.602814 0.580719 0.756775\n0.636322 0.582550 0.756836\n0.667480 0.584259 0.756866\n0.696625 0.586029 0.756897\n0.724091 0.587769 0.756989\n0.750092 0.589478 0.757019\n0.774933 0.591217 0.757080\n0.798767 0.592896 0.757111\n0.821838 0.594574 0.757141\n0.844421 0.596222 0.757172\n0.866669 0.597870 0.757263\n0.888977 0.599487 0.757324\n0.911621 0.601105 0.757355\n0.934998 0.602692 0.757416\n0.959961 0.604279 0.757446\n0.056488 0.594879 0.750824\n0.073425 0.596466 0.750885\n0.091858 0.598022 0.750977\n0.112152 0.599670 0.751038\n0.134460 0.601288 0.751099\n0.159241 0.602814 0.751129\n0.186890 0.604431 0.751221\n0.217285 0.606079 0.751312\n0.250244 0.607605 0.751373\n0.285736 0.609222 0.751434\n0.323364 0.610779 0.751526\n0.362976 0.612335 0.751556\n0.404114 0.613953 0.751648\n0.446472 0.615540 0.751740\n0.489197 0.617096 0.751831\n0.530212 0.618622 0.751862\n0.568665 0.620148 0.751953\n0.604492 0.621704 0.752014\n0.637787 0.623199 0.752075\n0.668701 0.624725 0.752167\n0.697693 0.626251 0.752258\n0.725006 0.627716 0.752319\n0.750854 0.629211 0.752380\n0.775574 0.630676 0.752472\n0.799286 0.632111 0.752533\n0.822327 0.633545 0.752625\n0.844788 0.634979 0.752716\n0.867004 0.636353 0.752777\n0.889221 0.637787 0.752838\n0.911743 0.639160 0.752930\n0.935089 0.640503 0.752991\n0.959961 0.641846 0.753021\n0.058105 0.636169 0.746002\n0.075165 0.637604 0.746094\n0.093750 0.638916 0.746185\n0.114075 0.640350 0.746246\n0.136597 0.641754 0.746368\n0.161560 0.643097 0.746490\n0.189301 0.644440 0.746552\n0.219849 0.645844 0.746674\n0.252960 0.647186 0.746796\n0.288483 0.648560 0.746857\n0.326141 0.649933 0.746948\n0.365723 0.651306 0.747101\n0.406860 0.652618 0.747192\n0.449127 0.653931 0.747284\n0.491699 0.655334 0.747345\n0.532410 0.656616 0.747437\n0.570557 0.657898 0.747559\n0.606201 0.659271 0.747681\n0.639191 0.660553 0.747803\n0.669952 0.661835 0.747894\n0.698761 0.663147 0.747986\n0.725891 0.664398 0.748047\n0.751678 0.665649 0.748138\n0.776215 0.666931 0.748291\n0.799866 0.668152 0.748383\n0.822784 0.669342 0.748444\n0.845184 0.670563 0.748566\n0.867310 0.671722 0.748657\n0.889465 0.672943 0.748779\n0.911896 0.674103 0.748840\n0.935181 0.675262 0.748962\n0.959961 0.676361 0.749023\n0.059753 0.674011 0.741608\n0.076935 0.675232 0.741699\n0.095612 0.676361 0.741821\n0.116119 0.677551 0.742004\n0.138702 0.678741 0.742096\n0.163818 0.679901 0.742218\n0.191772 0.681122 0.742371\n0.222412 0.682281 0.742462\n0.255646 0.683441 0.742584\n0.291229 0.684601 0.742737\n0.328888 0.685760 0.742859\n0.368469 0.686951 0.742981\n0.409546 0.688049 0.743103\n0.451721 0.689209 0.743225\n0.494171 0.690369 0.743347\n0.534546 0.691498 0.743469\n0.572479 0.692566 0.743591\n0.607758 0.693695 0.743744\n0.640594 0.694855 0.743866\n0.671143 0.695923 0.743958\n0.699829 0.697052 0.744049\n0.726807 0.698090 0.744232\n0.752411 0.699158 0.744354\n0.776855 0.700256 0.744446\n0.800415 0.701263 0.744568\n0.823242 0.702301 0.744690\n0.845520 0.703369 0.744812\n0.867584 0.704376 0.744904\n0.889648 0.705353 0.745056\n0.912048 0.706360 0.745148\n0.935242 0.707306 0.745270\n0.959961 0.708282 0.745392\n0.061462 0.708771 0.737610\n0.078705 0.709778 0.737793\n0.097504 0.710754 0.737946\n0.118164 0.711792 0.738098\n0.140930 0.712799 0.738220\n0.166168 0.713806 0.738373\n0.194275 0.714844 0.738525\n0.225037 0.715820 0.738678\n0.258301 0.716827 0.738831\n0.293976 0.717834 0.738983\n0.331665 0.718842 0.739075\n0.371246 0.719818 0.739227\n0.412292 0.720825 0.739380\n0.454346 0.721802 0.739532\n0.496552 0.722748 0.739685\n0.536682 0.723724 0.739838\n0.574280 0.724670 0.739990\n0.609406 0.725616 0.740112\n0.641998 0.726562 0.740234\n0.672363 0.727509 0.740417\n0.700836 0.728424 0.740540\n0.727661 0.729309 0.740662\n0.753174 0.730255 0.740784\n0.777496 0.731140 0.740936\n0.800934 0.732025 0.741089\n0.823669 0.732941 0.741180\n0.845886 0.733795 0.741364\n0.867889 0.734619 0.741455\n0.889862 0.735504 0.741608\n0.912201 0.736298 0.741699\n0.935333 0.737122 0.741852\n0.959961 0.737915 0.741974\n0.063202 0.740936 0.734009\n0.080505 0.741821 0.734192\n0.099426 0.742706 0.734344\n0.120178 0.743561 0.734497\n0.143066 0.744385 0.734650\n0.168579 0.745270 0.734863\n0.196777 0.746155 0.735016\n0.227631 0.747009 0.735168\n0.261017 0.747864 0.735291\n0.296722 0.748749 0.735474\n0.334473 0.749542 0.735626\n0.373962 0.750427 0.735809\n0.414978 0.751221 0.735992\n0.456940 0.752075 0.736145\n0.498932 0.752899 0.736328\n0.538788 0.753693 0.736450\n0.576202 0.754517 0.736572\n0.611023 0.755341 0.736755\n0.643341 0.756104 0.736938\n0.673523 0.756927 0.737091\n0.701843 0.757721 0.737213\n0.728516 0.758484 0.737366\n0.753906 0.759247 0.737549\n0.778137 0.760010 0.737640\n0.801483 0.760742 0.737823\n0.824097 0.761505 0.737976\n0.846222 0.762207 0.738098\n0.868134 0.762939 0.738251\n0.890076 0.763641 0.738403\n0.912323 0.764374 0.738525\n0.935394 0.765076 0.738678\n0.959961 0.765747 0.738800\n0.064911 0.770996 0.730682\n0.082336 0.771729 0.730865\n0.101349 0.772491 0.730988\n0.122253 0.773224 0.731201\n0.145264 0.773926 0.731384\n0.170898 0.774719 0.731567\n0.199341 0.775421 0.731720\n0.230255 0.776093 0.731903\n0.263733 0.776886 0.732086\n0.299469 0.777618 0.732208\n0.337189 0.778320 0.732422\n0.376678 0.779053 0.732605\n0.417633 0.779755 0.732788\n0.459503 0.780426 0.732971\n0.501282 0.781158 0.733093\n0.540863 0.781830 0.733337\n0.578003 0.782532 0.733521\n0.612579 0.783203 0.733673\n0.644714 0.783844 0.733826\n0.674683 0.784546 0.733978\n0.702789 0.785217 0.734161\n0.729370 0.785858 0.734283\n0.754639 0.786499 0.734497\n0.778748 0.787170 0.734650\n0.801971 0.787750 0.734772\n0.824524 0.788391 0.734955\n0.846588 0.789001 0.735107\n0.868408 0.789642 0.735229\n0.890259 0.790222 0.735413\n0.912415 0.790771 0.735535\n0.935455 0.791321 0.735687\n0.959961 0.791962 0.735809\n0.066650 0.799255 0.727509\n0.084198 0.799896 0.727753\n0.103302 0.800507 0.727936\n0.124298 0.801147 0.728088\n0.147491 0.801758 0.728302\n0.173279 0.802399 0.728485\n0.201782 0.803040 0.728668\n0.232941 0.803619 0.728851\n0.266418 0.804230 0.729065\n0.302185 0.804840 0.729279\n0.339905 0.805450 0.729462\n0.379395 0.806061 0.729614\n0.420227 0.806610 0.729797\n0.462067 0.807251 0.729980\n0.503601 0.807831 0.730194\n0.542938 0.808411 0.730377\n0.579773 0.809021 0.730530\n0.614105 0.809540 0.730743\n0.645996 0.810150 0.730896\n0.675781 0.810669 0.731079\n0.703796 0.811249 0.731262\n0.730225 0.811798 0.731445\n0.755310 0.812347 0.731598\n0.779358 0.812836 0.731781\n0.802460 0.813416 0.731903\n0.824921 0.813904 0.732086\n0.846924 0.814392 0.732239\n0.868713 0.814911 0.732422\n0.890472 0.815460 0.732544\n0.912598 0.815887 0.732727\n0.935516 0.816376 0.732880\n0.959961 0.816833 0.733032\n0.068390 0.826080 0.724609\n0.085999 0.826599 0.724792\n0.105255 0.827118 0.724976\n0.126404 0.827637 0.725189\n0.149750 0.828186 0.725403\n0.175720 0.828735 0.725586\n0.204346 0.829193 0.725830\n0.235535 0.829712 0.726044\n0.269135 0.830231 0.726257\n0.304932 0.830750 0.726410\n0.342682 0.831268 0.726593\n0.382080 0.831787 0.726807\n0.422852 0.832245 0.727020\n0.464569 0.832733 0.727234\n0.505890 0.833221 0.727386\n0.544830 0.833740 0.727570\n0.581482 0.834229 0.727783\n0.615631 0.834656 0.727936\n0.647278 0.835175 0.728119\n0.676941 0.835602 0.728363\n0.704773 0.836090 0.728516\n0.731018 0.836517 0.728668\n0.756012 0.836975 0.728851\n0.779907 0.837402 0.729004\n0.802948 0.837860 0.729187\n0.825348 0.838287 0.729370\n0.847260 0.838684 0.729523\n0.868927 0.839111 0.729706\n0.890656 0.839508 0.729858\n0.912689 0.839905 0.729980\n0.935577 0.840302 0.730164\n0.959961 0.840668 0.730316\n0.070190 0.851746 0.721771\n0.087891 0.852173 0.721985\n0.107239 0.852570 0.722198\n0.128479 0.853058 0.722412\n0.152008 0.853455 0.722656\n0.178101 0.853882 0.722870\n0.206848 0.854340 0.723114\n0.238129 0.854736 0.723297\n0.271759 0.855164 0.723480\n0.307617 0.855621 0.723694\n0.345337 0.855988 0.723938\n0.384766 0.856445 0.724121\n0.425476 0.856842 0.724304\n0.467010 0.857239 0.724518\n0.508087 0.857666 0.724731\n0.546844 0.858032 0.724884\n0.583191 0.858429 0.725128\n0.617065 0.858856 0.725311\n0.648560 0.859192 0.725494\n0.678009 0.859589 0.725677\n0.705658 0.859985 0.725861\n0.731781 0.860352 0.726013\n0.756653 0.860718 0.726227\n0.780487 0.861053 0.726379\n0.803436 0.861420 0.726562\n0.825684 0.861786 0.726746\n0.847565 0.862122 0.726898\n0.869202 0.862427 0.727081\n0.890839 0.862793 0.727234\n0.912811 0.863068 0.727417\n0.935638 0.863434 0.727539\n0.959961 0.863678 0.727692\n0.071930 0.876556 0.719086\n0.089722 0.876892 0.719330\n0.109192 0.877258 0.719543\n0.130615 0.877594 0.719788\n0.154205 0.877960 0.720001\n0.180450 0.878296 0.720245\n0.209381 0.878632 0.720459\n0.240723 0.878998 0.720673\n0.274445 0.879303 0.720886\n0.310242 0.879669 0.721100\n0.347992 0.880005 0.721313\n0.387421 0.880341 0.721497\n0.427979 0.880676 0.721710\n0.469360 0.881012 0.721893\n0.510223 0.881317 0.722137\n0.548737 0.881653 0.722351\n0.584839 0.881958 0.722534\n0.618469 0.882263 0.722717\n0.649780 0.882599 0.722900\n0.679016 0.882904 0.723083\n0.706512 0.883209 0.723297\n0.732574 0.883484 0.723480\n0.757294 0.883759 0.723663\n0.781036 0.884064 0.723816\n0.803864 0.884338 0.723999\n0.826080 0.884644 0.724182\n0.847870 0.884888 0.724335\n0.869446 0.885132 0.724548\n0.890991 0.885437 0.724701\n0.912933 0.885651 0.724854\n0.935699 0.885925 0.725037\n0.959961 0.886139 0.725159\n0.073730 0.900787 0.716492\n0.091614 0.901062 0.716736\n0.111176 0.901337 0.716980\n0.132721 0.901611 0.717224\n0.156464 0.901917 0.717377\n0.182831 0.902161 0.717621\n0.211823 0.902435 0.717865\n0.243286 0.902740 0.718109\n0.277100 0.902985 0.718323\n0.312866 0.903259 0.718536\n0.350616 0.903534 0.718750\n0.389893 0.903778 0.718933\n0.430511 0.904053 0.719147\n0.471741 0.904297 0.719360\n0.512390 0.904541 0.719604\n0.550598 0.904785 0.719788\n0.586456 0.905060 0.719971\n0.619904 0.905273 0.720184\n0.650940 0.905518 0.720398\n0.680054 0.905762 0.720581\n0.707397 0.905975 0.720764\n0.733276 0.906219 0.720947\n0.757965 0.906433 0.721130\n0.781525 0.906677 0.721313\n0.804321 0.906860 0.721466\n0.826447 0.907074 0.721680\n0.848145 0.907288 0.721832\n0.869629 0.907471 0.722015\n0.891174 0.907684 0.722168\n0.913055 0.907898 0.722321\n0.935791 0.908081 0.722473\n0.959961 0.908234 0.722626\n0.075500 0.924805 0.713898\n0.093445 0.924988 0.714142\n0.113129 0.925201 0.714355\n0.134796 0.925385 0.714630\n0.158691 0.925629 0.714874\n0.185211 0.925842 0.715088\n0.214264 0.926025 0.715332\n0.245819 0.926208 0.715515\n0.279663 0.926422 0.715759\n0.315491 0.926666 0.715942\n0.353180 0.926849 0.716187\n0.392456 0.927032 0.716431\n0.432922 0.927216 0.716644\n0.474091 0.927399 0.716858\n0.514404 0.927612 0.717041\n0.552368 0.927795 0.717224\n0.587982 0.927979 0.717499\n0.621216 0.928101 0.717651\n0.652100 0.928284 0.717865\n0.681000 0.928497 0.718048\n0.708221 0.928619 0.718262\n0.734009 0.928833 0.718445\n0.758545 0.928986 0.718597\n0.782013 0.929138 0.718781\n0.804749 0.929321 0.718964\n0.826782 0.929474 0.719147\n0.848419 0.929596 0.719330\n0.869843 0.929749 0.719482\n0.891357 0.929901 0.719604\n0.913147 0.930054 0.719788\n0.935822 0.930176 0.719910\n0.959961 0.930328 0.720062\n0.077209 0.948944 0.711273\n0.095337 0.949066 0.711517\n0.115143 0.949188 0.711761\n0.136902 0.949371 0.712006\n0.160889 0.949554 0.712250\n0.187592 0.949646 0.712463\n0.216705 0.949799 0.712708\n0.248383 0.949921 0.712921\n0.282166 0.950073 0.713165\n0.318054 0.950165 0.713409\n0.355743 0.950317 0.713623\n0.394897 0.950439 0.713867\n0.435303 0.950592 0.714050\n0.476318 0.950684 0.714264\n0.516418 0.950836 0.714508\n0.554138 0.950928 0.714691\n0.589478 0.951080 0.714874\n0.622498 0.951172 0.715088\n0.653168 0.951324 0.715271\n0.681976 0.951447 0.715485\n0.709045 0.951538 0.715668\n0.734680 0.951660 0.715851\n0.759125 0.951752 0.716034\n0.782532 0.951843 0.716248\n0.805145 0.951965 0.716400\n0.827118 0.952057 0.716583\n0.848694 0.952148 0.716736\n0.870056 0.952271 0.716888\n0.891510 0.952332 0.717041\n0.913269 0.952423 0.717163\n0.935883 0.952545 0.717346\n0.959961 0.952606 0.717499\n0.079010 0.973785 0.708588\n0.097168 0.973846 0.708832\n0.117035 0.973938 0.709076\n0.138916 0.973969 0.709320\n0.163086 0.974091 0.709534\n0.189850 0.974121 0.709747\n0.219116 0.974182 0.710022\n0.250793 0.974243 0.710297\n0.284698 0.974335 0.710510\n0.320557 0.974396 0.710724\n0.358185 0.974457 0.710968\n0.397308 0.974518 0.711151\n0.437653 0.974579 0.711365\n0.478485 0.974670 0.711609\n0.518311 0.974731 0.711823\n0.555786 0.974762 0.712006\n0.590942 0.974854 0.712219\n0.623749 0.974884 0.712433\n0.654266 0.974976 0.712646\n0.682892 0.975037 0.712799\n0.709778 0.975067 0.713013\n0.735321 0.975128 0.713226\n0.759644 0.975189 0.713409\n0.783020 0.975220 0.713531\n0.805511 0.975281 0.713715\n0.827454 0.975311 0.713898\n0.848938 0.975403 0.714050\n0.870270 0.975403 0.714203\n0.891632 0.975464 0.714355\n0.913391 0.975494 0.714478\n0.935944 0.975555 0.714661\n0.959961 0.975586 0.714783\n0.080780 1.000000 0.705688\n0.099030 1.000000 0.705933\n0.118988 1.000000 0.706177\n0.140961 1.000000 0.706390\n0.165253 1.000000 0.706665\n0.192139 1.000000 0.706909\n0.221497 1.000000 0.707153\n0.253235 1.000000 0.707397\n0.287170 1.000000 0.707642\n0.322998 1.000000 0.707855\n0.360565 1.000000 0.708069\n0.399689 1.000000 0.708313\n0.439911 1.000000 0.708527\n0.480652 1.000000 0.708740\n0.520172 1.000000 0.708954\n0.557404 1.000000 0.709167\n0.592377 1.000000 0.709351\n0.624939 1.000000 0.709564\n0.655273 1.000000 0.709778\n0.683746 1.000000 0.709991\n0.710541 1.000000 0.710144\n0.735962 1.000000 0.710327\n0.760193 1.000000 0.710510\n0.783417 1.000000 0.710663\n0.805908 1.000000 0.710846\n0.827728 1.000000 0.710999\n0.849182 1.000000 0.711182\n0.870422 1.000000 0.711304\n0.891754 1.000000 0.711487\n0.913483 1.000000 0.711609\n0.935974 1.000000 0.711731\n0.959961 1.000000 0.711884\n0.034424 0.005585 0.845459\n0.050079 0.006348 0.845459\n0.066956 0.007111 0.845520\n0.085297 0.007874 0.845581\n0.105499 0.008728 0.845642\n0.127808 0.009552 0.845673\n0.152679 0.010376 0.845734\n0.180542 0.011292 0.845764\n0.211456 0.012207 0.845825\n0.245300 0.013123 0.845856\n0.281830 0.014069 0.845947\n0.320831 0.015045 0.846008\n0.362000 0.016022 0.846069\n0.404999 0.017059 0.846100\n0.449310 0.018066 0.846161\n0.494049 0.019135 0.846222\n0.536652 0.020203 0.846283\n0.576447 0.021301 0.846283\n0.613464 0.022400 0.846405\n0.647705 0.023499 0.846436\n0.679565 0.024658 0.846497\n0.709351 0.025848 0.846527\n0.737488 0.027008 0.846588\n0.764160 0.028198 0.846649\n0.789612 0.029449 0.846741\n0.814240 0.030640 0.846771\n0.838135 0.031921 0.846802\n0.861755 0.033234 0.846893\n0.885193 0.034454 0.846924\n0.909058 0.035767 0.846954\n0.933655 0.037048 0.847046\n0.959961 0.038391 0.847107\n0.035400 0.022125 0.843567\n0.051086 0.022949 0.843628\n0.068024 0.023773 0.843689\n0.086487 0.024597 0.843719\n0.106781 0.025513 0.843750\n0.129181 0.026398 0.843811\n0.154236 0.027344 0.843872\n0.182251 0.028259 0.843903\n0.213287 0.029205 0.843994\n0.247192 0.030212 0.844025\n0.283844 0.031219 0.844086\n0.322937 0.032257 0.844116\n0.364105 0.033325 0.844177\n0.407074 0.034424 0.844208\n0.451385 0.035492 0.844269\n0.495941 0.036621 0.844299\n0.538422 0.037720 0.844360\n0.578003 0.038910 0.844421\n0.614807 0.040070 0.844482\n0.648865 0.041260 0.844513\n0.680603 0.042480 0.844574\n0.710236 0.043732 0.844635\n0.738220 0.044983 0.844727\n0.764801 0.046265 0.844727\n0.790161 0.047546 0.844788\n0.814697 0.048828 0.844818\n0.838562 0.050201 0.844879\n0.862030 0.051514 0.844910\n0.885468 0.052856 0.845001\n0.909149 0.054260 0.845032\n0.933716 0.055634 0.845062\n0.959961 0.057068 0.845093\n0.036316 0.039703 0.841614\n0.052185 0.040588 0.841644\n0.069153 0.041473 0.841675\n0.087677 0.042419 0.841705\n0.108093 0.043365 0.841736\n0.130646 0.044281 0.841827\n0.155853 0.045319 0.841888\n0.183990 0.046356 0.841949\n0.215149 0.047363 0.841949\n0.249237 0.048462 0.842010\n0.285919 0.049561 0.842041\n0.325043 0.050629 0.842133\n0.366241 0.051788 0.842163\n0.409271 0.052917 0.842163\n0.453522 0.054138 0.842255\n0.497955 0.055328 0.842316\n0.540161 0.056519 0.842316\n0.579559 0.057800 0.842377\n0.616211 0.059052 0.842407\n0.650085 0.060303 0.842438\n0.681580 0.061615 0.842529\n0.711121 0.062988 0.842560\n0.738953 0.064331 0.842590\n0.765442 0.065674 0.842621\n0.790741 0.067078 0.842682\n0.815125 0.068451 0.842712\n0.838928 0.069916 0.842743\n0.862335 0.071289 0.842834\n0.885681 0.072754 0.842804\n0.909363 0.074280 0.842865\n0.933807 0.075745 0.842957\n0.959961 0.077240 0.842926\n0.037415 0.058594 0.839478\n0.053253 0.059570 0.839478\n0.070343 0.060516 0.839508\n0.088989 0.061554 0.839569\n0.109497 0.062622 0.839600\n0.132202 0.063660 0.839691\n0.157562 0.064758 0.839691\n0.185883 0.065887 0.839752\n0.217133 0.066986 0.839783\n0.251343 0.068176 0.839813\n0.288147 0.069366 0.839874\n0.327301 0.070587 0.839874\n0.368561 0.071808 0.839935\n0.411499 0.073090 0.839966\n0.455688 0.074341 0.840027\n0.500000 0.075684 0.840057\n0.541962 0.076996 0.840057\n0.581146 0.078339 0.840118\n0.617584 0.079742 0.840179\n0.651245 0.081085 0.840210\n0.682648 0.082520 0.840240\n0.712036 0.083954 0.840271\n0.739777 0.085388 0.840302\n0.766113 0.086884 0.840302\n0.791321 0.088379 0.840363\n0.815613 0.089874 0.840393\n0.839325 0.091461 0.840393\n0.862640 0.092957 0.840424\n0.885895 0.094543 0.840485\n0.909485 0.096161 0.840485\n0.933899 0.097748 0.840515\n0.959961 0.099365 0.840515\n0.038452 0.079254 0.837097\n0.054443 0.080322 0.837128\n0.071625 0.081390 0.837189\n0.090332 0.082550 0.837250\n0.110962 0.083679 0.837250\n0.133820 0.084839 0.837280\n0.159271 0.086060 0.837311\n0.187744 0.087311 0.837311\n0.219177 0.088531 0.837372\n0.253479 0.089813 0.837372\n0.290314 0.091125 0.837402\n0.329590 0.092438 0.837463\n0.370850 0.093811 0.837494\n0.413788 0.095184 0.837524\n0.457916 0.096588 0.837524\n0.502106 0.098022 0.837555\n0.543823 0.099457 0.837616\n0.582764 0.100952 0.837616\n0.618958 0.102448 0.837616\n0.652496 0.103943 0.837646\n0.683716 0.105499 0.837677\n0.712982 0.107086 0.837646\n0.740540 0.108673 0.837708\n0.766785 0.110291 0.837738\n0.791870 0.111877 0.837738\n0.816101 0.113556 0.837738\n0.839722 0.115234 0.837799\n0.862976 0.116913 0.837769\n0.886169 0.118622 0.837799\n0.909668 0.120392 0.837799\n0.933990 0.122101 0.837769\n0.959961 0.123901 0.837799\n0.039642 0.102051 0.834503\n0.055664 0.103271 0.834534\n0.072876 0.104431 0.834564\n0.091766 0.105682 0.834564\n0.112488 0.106995 0.834595\n0.135498 0.108307 0.834595\n0.161133 0.109650 0.834595\n0.189758 0.111023 0.834595\n0.221313 0.112396 0.834656\n0.255707 0.113800 0.834686\n0.292603 0.115234 0.834717\n0.331879 0.116699 0.834717\n0.373230 0.118225 0.834686\n0.416138 0.119690 0.834717\n0.460297 0.121277 0.834747\n0.504211 0.122864 0.834778\n0.545654 0.124451 0.834747\n0.584442 0.126068 0.834747\n0.620392 0.127777 0.834778\n0.653748 0.129364 0.834747\n0.684784 0.131073 0.834808\n0.713867 0.132782 0.834808\n0.741364 0.134552 0.834747\n0.767426 0.136322 0.834778\n0.792450 0.138062 0.834808\n0.816589 0.139893 0.834808\n0.840118 0.141754 0.834778\n0.863281 0.143555 0.834778\n0.886414 0.145447 0.834747\n0.909851 0.147339 0.834717\n0.934082 0.149200 0.834717\n0.959961 0.151154 0.834717\n0.040802 0.127502 0.831543\n0.056885 0.128876 0.831543\n0.074249 0.130249 0.831543\n0.093201 0.131653 0.831573\n0.114075 0.133057 0.831573\n0.137177 0.134491 0.831573\n0.162994 0.135986 0.831573\n0.191772 0.137512 0.831604\n0.223511 0.139038 0.831573\n0.257996 0.140625 0.831604\n0.295013 0.142212 0.831573\n0.334351 0.143890 0.831573\n0.375671 0.145538 0.831604\n0.418579 0.147156 0.831604\n0.462616 0.148895 0.831573\n0.506317 0.150635 0.831573\n0.547577 0.152435 0.831543\n0.586090 0.154205 0.831543\n0.621857 0.156036 0.831543\n0.654999 0.157837 0.831543\n0.685883 0.159729 0.831482\n0.714813 0.161621 0.831482\n0.742157 0.163544 0.831512\n0.768127 0.165466 0.831482\n0.793030 0.167389 0.831451\n0.817047 0.169403 0.831421\n0.840515 0.171448 0.831360\n0.863586 0.173431 0.831329\n0.886658 0.175476 0.831299\n0.909943 0.177582 0.831268\n0.934143 0.179596 0.831238\n0.959961 0.181732 0.831177\n0.042084 0.156158 0.828156\n0.058197 0.157654 0.828186\n0.075684 0.159210 0.828156\n0.094757 0.160767 0.828156\n0.115723 0.162384 0.828156\n0.138977 0.163971 0.828125\n0.164978 0.165680 0.828125\n0.193878 0.167328 0.828125\n0.225708 0.169067 0.828064\n0.260315 0.170837 0.828064\n0.297424 0.172577 0.828094\n0.336823 0.174377 0.828064\n0.378113 0.176270 0.828003\n0.420990 0.178070 0.828003\n0.464966 0.180023 0.827972\n0.508514 0.181946 0.827942\n0.549530 0.183868 0.827911\n0.587799 0.185883 0.827881\n0.623322 0.187805 0.827850\n0.656250 0.189880 0.827820\n0.686981 0.191925 0.827759\n0.715790 0.193970 0.827759\n0.742981 0.196106 0.827698\n0.768829 0.198181 0.827667\n0.793610 0.200287 0.827637\n0.817566 0.202484 0.827545\n0.840942 0.204651 0.827515\n0.863922 0.206818 0.827454\n0.886902 0.209045 0.827362\n0.910156 0.211182 0.827332\n0.934235 0.213440 0.827301\n0.959961 0.215759 0.827240\n0.043396 0.188538 0.824371\n0.059601 0.190247 0.824310\n0.077118 0.191925 0.824310\n0.096283 0.193665 0.824280\n0.117432 0.195465 0.824249\n0.140839 0.197235 0.824249\n0.166962 0.199127 0.824188\n0.196045 0.200928 0.824158\n0.228027 0.202850 0.824158\n0.262726 0.204834 0.824097\n0.299927 0.206726 0.824036\n0.339294 0.208740 0.824005\n0.380646 0.210785 0.823975\n0.423462 0.212769 0.823914\n0.467346 0.214844 0.823914\n0.510712 0.216949 0.823853\n0.551422 0.219055 0.823792\n0.589478 0.221161 0.823730\n0.624786 0.223328 0.823700\n0.657532 0.225525 0.823669\n0.688080 0.227692 0.823578\n0.716705 0.229889 0.823547\n0.743774 0.232178 0.823486\n0.769531 0.234436 0.823395\n0.794220 0.236664 0.823334\n0.818054 0.238953 0.823273\n0.841339 0.241272 0.823181\n0.864258 0.243561 0.823120\n0.887146 0.245880 0.823090\n0.910339 0.248199 0.822968\n0.934326 0.250580 0.822937\n0.959961 0.252960 0.822845\n0.044678 0.224792 0.819977\n0.061035 0.226624 0.819977\n0.078644 0.228455 0.819977\n0.097931 0.230408 0.819916\n0.119171 0.232330 0.819855\n0.142761 0.234283 0.819824\n0.169037 0.236298 0.819794\n0.198273 0.238281 0.819733\n0.230377 0.240356 0.819672\n0.265228 0.242432 0.819611\n0.302429 0.244507 0.819580\n0.341888 0.246643 0.819519\n0.383209 0.248840 0.819458\n0.426025 0.250977 0.819427\n0.469788 0.253174 0.819336\n0.512878 0.255341 0.819275\n0.553436 0.257568 0.819244\n0.591156 0.259888 0.819183\n0.626251 0.262115 0.819092\n0.658813 0.264435 0.819061\n0.689148 0.266785 0.819000\n0.717651 0.269043 0.818878\n0.744568 0.271454 0.818817\n0.770233 0.273804 0.818756\n0.794800 0.276123 0.818665\n0.818542 0.278534 0.818604\n0.841736 0.280853 0.818512\n0.864532 0.283295 0.818390\n0.887329 0.285736 0.818359\n0.910492 0.288116 0.818298\n0.934387 0.290558 0.818146\n0.959961 0.293030 0.818085\n0.046082 0.264587 0.815277\n0.062500 0.266602 0.815186\n0.080170 0.268585 0.815155\n0.099609 0.270599 0.815094\n0.120972 0.272705 0.815063\n0.144684 0.274750 0.815002\n0.171173 0.276886 0.814941\n0.200562 0.279022 0.814850\n0.232819 0.281158 0.814789\n0.267700 0.283386 0.814758\n0.304993 0.285553 0.814697\n0.344513 0.287811 0.814636\n0.385834 0.290100 0.814514\n0.428589 0.292297 0.814484\n0.472260 0.294647 0.814392\n0.515076 0.296936 0.814362\n0.555359 0.299286 0.814270\n0.592896 0.301636 0.814209\n0.627716 0.303955 0.814117\n0.660095 0.306335 0.814026\n0.690277 0.308746 0.813965\n0.718597 0.311096 0.813904\n0.745422 0.313538 0.813812\n0.770905 0.316010 0.813690\n0.795410 0.318359 0.813629\n0.819061 0.320831 0.813538\n0.842133 0.323212 0.813446\n0.864899 0.325653 0.813385\n0.887604 0.328186 0.813263\n0.910645 0.330566 0.813202\n0.934509 0.333069 0.813110\n0.959961 0.335541 0.813019\n0.047516 0.307709 0.810059\n0.063934 0.309723 0.810028\n0.081787 0.311829 0.809998\n0.101349 0.313965 0.809906\n0.122833 0.316101 0.809845\n0.146698 0.318298 0.809753\n0.173340 0.320526 0.809692\n0.202881 0.322693 0.809631\n0.235260 0.324951 0.809570\n0.270264 0.327209 0.809479\n0.307617 0.329468 0.809418\n0.347168 0.331787 0.809326\n0.388367 0.334076 0.809265\n0.431183 0.336426 0.809235\n0.474701 0.338806 0.809143\n0.517334 0.341125 0.809052\n0.557312 0.343536 0.808990\n0.594604 0.345978 0.808899\n0.629211 0.348328 0.808838\n0.661346 0.350739 0.808716\n0.691376 0.353180 0.808655\n0.719574 0.355591 0.808563\n0.746216 0.358032 0.808472\n0.771606 0.360504 0.808380\n0.795959 0.362946 0.808289\n0.819550 0.365387 0.808228\n0.842529 0.367798 0.808136\n0.865204 0.370270 0.808044\n0.887878 0.372772 0.807953\n0.910767 0.375183 0.807861\n0.934570 0.377625 0.807770\n0.959961 0.380066 0.807648\n0.048950 0.353546 0.804565\n0.065491 0.355621 0.804474\n0.083435 0.357849 0.804413\n0.103088 0.359985 0.804352\n0.124725 0.362183 0.804291\n0.148804 0.364410 0.804199\n0.175568 0.366699 0.804138\n0.205231 0.368927 0.804077\n0.237762 0.371216 0.803986\n0.272827 0.373566 0.803894\n0.310272 0.375793 0.803864\n0.349792 0.378174 0.803802\n0.391083 0.380524 0.803680\n0.433777 0.382843 0.803650\n0.477203 0.385254 0.803558\n0.519562 0.387573 0.803436\n0.559296 0.389984 0.803406\n0.596375 0.392395 0.803314\n0.630737 0.394745 0.803253\n0.662628 0.397247 0.803131\n0.692474 0.399628 0.803070\n0.720520 0.402008 0.802948\n0.747040 0.404510 0.802887\n0.772278 0.406860 0.802826\n0.796570 0.409302 0.802734\n0.820038 0.411743 0.802643\n0.842926 0.414124 0.802582\n0.865509 0.416595 0.802490\n0.888062 0.419006 0.802368\n0.910980 0.421417 0.802277\n0.934692 0.423828 0.802185\n0.959961 0.426208 0.802094\n0.050446 0.401672 0.798706\n0.067078 0.403839 0.798645\n0.085144 0.406006 0.798584\n0.104919 0.408203 0.798523\n0.126709 0.410400 0.798431\n0.150879 0.412598 0.798401\n0.177856 0.414917 0.798309\n0.207703 0.417114 0.798248\n0.240295 0.419403 0.798187\n0.275482 0.421692 0.798126\n0.312897 0.424042 0.798035\n0.352478 0.426361 0.797974\n0.393738 0.428711 0.797882\n0.436432 0.431030 0.797821\n0.479736 0.433380 0.797791\n0.521759 0.435699 0.797699\n0.561310 0.438080 0.797638\n0.598053 0.440491 0.797485\n0.632202 0.442810 0.797424\n0.663940 0.445190 0.797333\n0.693573 0.447601 0.797302\n0.721436 0.449890 0.797241\n0.747864 0.452332 0.797150\n0.773010 0.454620 0.797058\n0.797150 0.457031 0.797028\n0.820496 0.459381 0.796906\n0.843292 0.461700 0.796814\n0.865845 0.464081 0.796753\n0.888336 0.466400 0.796661\n0.911133 0.468689 0.796570\n0.934784 0.471008 0.796539\n0.959961 0.473358 0.796417\n0.052002 0.451508 0.792664\n0.068695 0.453613 0.792603\n0.086853 0.455780 0.792542\n0.106750 0.457947 0.792480\n0.128693 0.460144 0.792450\n0.153046 0.462372 0.792358\n0.180176 0.464600 0.792297\n0.210144 0.466766 0.792267\n0.242889 0.469025 0.792206\n0.278076 0.471283 0.792114\n0.315674 0.473480 0.792084\n0.355225 0.475739 0.791992\n0.396423 0.477966 0.791992\n0.439056 0.480286 0.791901\n0.482239 0.482544 0.791809\n0.524017 0.484772 0.791748\n0.563202 0.487061 0.791687\n0.599731 0.489380 0.791595\n0.633667 0.491577 0.791565\n0.665222 0.493896 0.791504\n0.694672 0.496094 0.791473\n0.722412 0.498383 0.791382\n0.748657 0.500671 0.791321\n0.773682 0.502838 0.791260\n0.797729 0.505096 0.791168\n0.820953 0.507324 0.791138\n0.843719 0.509430 0.791077\n0.866119 0.511658 0.790985\n0.888580 0.513824 0.790955\n0.911285 0.515930 0.790863\n0.934845 0.518066 0.790833\n0.959961 0.520081 0.790802\n0.053558 0.502075 0.786530\n0.070374 0.504059 0.786499\n0.088623 0.506165 0.786469\n0.108643 0.508240 0.786377\n0.130676 0.510284 0.786346\n0.155243 0.512360 0.786346\n0.182526 0.514404 0.786285\n0.212616 0.516479 0.786255\n0.245514 0.518585 0.786224\n0.280762 0.520630 0.786163\n0.318359 0.522675 0.786133\n0.357971 0.524780 0.786133\n0.399139 0.526825 0.786072\n0.441650 0.528931 0.786011\n0.484741 0.530975 0.785980\n0.526276 0.533020 0.785889\n0.565186 0.535065 0.785919\n0.601501 0.537079 0.785889\n0.635132 0.539093 0.785889\n0.666473 0.541107 0.785797\n0.695740 0.543060 0.785828\n0.723328 0.545074 0.785767\n0.749481 0.547089 0.785736\n0.774323 0.549042 0.785675\n0.798309 0.550995 0.785675\n0.821472 0.552948 0.785645\n0.844086 0.554810 0.785645\n0.866486 0.556732 0.785583\n0.888794 0.558594 0.785583\n0.911499 0.560455 0.785553\n0.934967 0.562286 0.785522\n0.959961 0.564087 0.785492\n0.055176 0.550629 0.780701\n0.072052 0.552399 0.780640\n0.090393 0.554291 0.780640\n0.110596 0.556091 0.780640\n0.132782 0.557861 0.780640\n0.157440 0.559723 0.780640\n0.184937 0.561584 0.780640\n0.215179 0.563385 0.780609\n0.248138 0.565186 0.780640\n0.283508 0.567017 0.780640\n0.321167 0.568878 0.780609\n0.360687 0.570648 0.780579\n0.401917 0.572449 0.780579\n0.444366 0.574280 0.780548\n0.487213 0.576080 0.780579\n0.528442 0.577820 0.780609\n0.567078 0.579651 0.780579\n0.603180 0.581421 0.780548\n0.636627 0.583160 0.780609\n0.667694 0.584930 0.780609\n0.696838 0.586639 0.780579\n0.724243 0.588379 0.780579\n0.750244 0.590118 0.780548\n0.775055 0.591766 0.780548\n0.798859 0.593445 0.780609\n0.821930 0.595215 0.780579\n0.844482 0.596802 0.780579\n0.866730 0.598419 0.780609\n0.889008 0.600067 0.780609\n0.911621 0.601654 0.780609\n0.935028 0.603271 0.780609\n0.959961 0.604797 0.780609\n0.056763 0.595490 0.775269\n0.073761 0.597046 0.775330\n0.092255 0.598663 0.775330\n0.112488 0.600250 0.775360\n0.134888 0.601837 0.775391\n0.159698 0.603455 0.775421\n0.187347 0.605042 0.775452\n0.217712 0.606598 0.775482\n0.250763 0.608215 0.775452\n0.286224 0.609802 0.775482\n0.323883 0.611389 0.775513\n0.363434 0.612976 0.775513\n0.404572 0.614532 0.775574\n0.446991 0.616058 0.775604\n0.489716 0.617645 0.775635\n0.530640 0.619171 0.775665\n0.569061 0.620758 0.775726\n0.604797 0.622314 0.775696\n0.638031 0.623779 0.775757\n0.668945 0.625336 0.775787\n0.697876 0.626770 0.775787\n0.725189 0.628296 0.775818\n0.751038 0.629730 0.775879\n0.775696 0.631195 0.775909\n0.799377 0.632629 0.775940\n0.822388 0.634125 0.775940\n0.844849 0.635498 0.776001\n0.867065 0.636871 0.776031\n0.889252 0.638306 0.776062\n0.911804 0.639618 0.776093\n0.935120 0.641022 0.776123\n0.959961 0.642334 0.776154\n0.058441 0.636719 0.770386\n0.075500 0.638031 0.770447\n0.094055 0.639465 0.770477\n0.114502 0.640869 0.770538\n0.136993 0.642242 0.770630\n0.162018 0.643555 0.770660\n0.189758 0.644928 0.770691\n0.220337 0.646332 0.770721\n0.253479 0.647705 0.770782\n0.288971 0.649048 0.770844\n0.326691 0.650421 0.770905\n0.366211 0.651794 0.770966\n0.407349 0.653107 0.771027\n0.449615 0.654449 0.771088\n0.492188 0.655792 0.771149\n0.532776 0.657104 0.771179\n0.570923 0.658417 0.771271\n0.606476 0.659729 0.771301\n0.639435 0.661011 0.771362\n0.670166 0.662323 0.771393\n0.698975 0.663544 0.771484\n0.726074 0.664856 0.771515\n0.751801 0.666107 0.771576\n0.776367 0.667328 0.771637\n0.799988 0.668610 0.771698\n0.822845 0.669830 0.771759\n0.845245 0.670990 0.771820\n0.867371 0.672180 0.771851\n0.889465 0.673340 0.771912\n0.911957 0.674500 0.771973\n0.935181 0.675690 0.772034\n0.959961 0.676758 0.772095\n0.060120 0.674438 0.765961\n0.077209 0.675629 0.766022\n0.095978 0.676788 0.766113\n0.116455 0.677979 0.766205\n0.139130 0.679138 0.766266\n0.164337 0.680328 0.766327\n0.192230 0.681488 0.766388\n0.222931 0.682709 0.766449\n0.256134 0.683899 0.766541\n0.291718 0.685028 0.766663\n0.329437 0.686218 0.766724\n0.368958 0.687317 0.766785\n0.410065 0.688477 0.766907\n0.452271 0.689636 0.766968\n0.494568 0.690765 0.767029\n0.534912 0.691895 0.767120\n0.572845 0.693054 0.767181\n0.608093 0.694122 0.767242\n0.640869 0.695221 0.767365\n0.671387 0.696350 0.767426\n0.699982 0.697418 0.767487\n0.726959 0.698486 0.767578\n0.752533 0.699585 0.767670\n0.776978 0.700623 0.767731\n0.800507 0.701691 0.767853\n0.823303 0.702728 0.767883\n0.845581 0.703735 0.767975\n0.867645 0.704712 0.768066\n0.889709 0.705719 0.768097\n0.912048 0.706665 0.768188\n0.935303 0.707672 0.768280\n0.959961 0.708588 0.768341\n0.061829 0.709137 0.761902\n0.079071 0.710175 0.761993\n0.097870 0.711182 0.762054\n0.118500 0.712158 0.762177\n0.141296 0.713165 0.762268\n0.166687 0.714203 0.762360\n0.194733 0.715210 0.762482\n0.225555 0.716217 0.762604\n0.258850 0.717224 0.762665\n0.294495 0.718170 0.762756\n0.332184 0.719177 0.762909\n0.371735 0.720184 0.763000\n0.412720 0.721161 0.763092\n0.454834 0.722137 0.763214\n0.496979 0.723114 0.763245\n0.537109 0.724060 0.763336\n0.574707 0.725006 0.763489\n0.609741 0.725983 0.763580\n0.642212 0.726898 0.763641\n0.672607 0.727875 0.763763\n0.701019 0.728760 0.763855\n0.727814 0.729645 0.763977\n0.753296 0.730591 0.764069\n0.777618 0.731445 0.764130\n0.801056 0.732361 0.764221\n0.823730 0.733246 0.764313\n0.845978 0.734100 0.764435\n0.867920 0.734955 0.764526\n0.889893 0.735779 0.764618\n0.912231 0.736603 0.764709\n0.935333 0.737427 0.764801\n0.959961 0.738190 0.764893\n0.063477 0.741272 0.758148\n0.080841 0.742126 0.758301\n0.099792 0.743011 0.758392\n0.120544 0.743866 0.758514\n0.143524 0.744720 0.758606\n0.169006 0.745605 0.758759\n0.197266 0.746460 0.758881\n0.228180 0.747314 0.758972\n0.261566 0.748169 0.759125\n0.297241 0.748993 0.759247\n0.334930 0.749847 0.759369\n0.374451 0.750702 0.759460\n0.415436 0.751526 0.759583\n0.457458 0.752380 0.759674\n0.499359 0.753174 0.759796\n0.539154 0.754028 0.759949\n0.576508 0.754822 0.760010\n0.611298 0.755646 0.760132\n0.643585 0.756409 0.760284\n0.673737 0.757233 0.760376\n0.702026 0.757965 0.760498\n0.728699 0.758789 0.760590\n0.754028 0.759552 0.760681\n0.778229 0.760284 0.760803\n0.801544 0.761047 0.760925\n0.824188 0.761749 0.761017\n0.846283 0.762512 0.761139\n0.868195 0.763214 0.761261\n0.890076 0.763885 0.761322\n0.912323 0.764618 0.761475\n0.935394 0.765289 0.761566\n0.959961 0.765961 0.761658\n0.065277 0.771271 0.754700\n0.082672 0.771973 0.754822\n0.101715 0.772766 0.754974\n0.122620 0.773468 0.755127\n0.145752 0.774261 0.755280\n0.171417 0.774963 0.755371\n0.199738 0.775665 0.755554\n0.230804 0.776428 0.755707\n0.264252 0.777161 0.755798\n0.299957 0.777863 0.755920\n0.337708 0.778595 0.756042\n0.377167 0.779266 0.756165\n0.418060 0.779999 0.756317\n0.459991 0.780731 0.756439\n0.501678 0.781372 0.756561\n0.541229 0.782104 0.756683\n0.578369 0.782776 0.756866\n0.612823 0.783478 0.756989\n0.644958 0.784119 0.757111\n0.674896 0.784821 0.757202\n0.703003 0.785431 0.757324\n0.729523 0.786102 0.757446\n0.754730 0.786713 0.757599\n0.778870 0.787415 0.757690\n0.802094 0.788025 0.757812\n0.824615 0.788605 0.757935\n0.846649 0.789276 0.758026\n0.868469 0.789856 0.758179\n0.890320 0.790405 0.758270\n0.912476 0.791016 0.758392\n0.935455 0.791595 0.758514\n0.959961 0.792114 0.758606\n0.066956 0.799469 0.751495\n0.084503 0.800110 0.751678\n0.103668 0.800781 0.751801\n0.124695 0.801361 0.751923\n0.147980 0.801971 0.752136\n0.173767 0.802643 0.752289\n0.202301 0.803223 0.752380\n0.233368 0.803864 0.752563\n0.266907 0.804413 0.752655\n0.302704 0.805054 0.752838\n0.340454 0.805664 0.752991\n0.379913 0.806244 0.753143\n0.420715 0.806885 0.753235\n0.462494 0.807465 0.753387\n0.503967 0.808014 0.753571\n0.543274 0.808594 0.753693\n0.580078 0.809204 0.753845\n0.614349 0.809784 0.753967\n0.646301 0.810333 0.754089\n0.676056 0.810883 0.754242\n0.703979 0.811462 0.754364\n0.730377 0.811981 0.754486\n0.755463 0.812500 0.754608\n0.779449 0.813080 0.754761\n0.802551 0.813599 0.754852\n0.824982 0.814087 0.755035\n0.846954 0.814575 0.755127\n0.868774 0.815094 0.755249\n0.890533 0.815613 0.755371\n0.912628 0.816101 0.755493\n0.935516 0.816528 0.755585\n0.959961 0.817017 0.755737\n0.068756 0.826263 0.748474\n0.086395 0.826782 0.748627\n0.105652 0.827332 0.748840\n0.126770 0.827850 0.748993\n0.150177 0.828400 0.749115\n0.176147 0.828918 0.749298\n0.204742 0.829376 0.749420\n0.235992 0.829926 0.749603\n0.269623 0.830444 0.749786\n0.305450 0.830933 0.749939\n0.343170 0.831451 0.750031\n0.382538 0.831970 0.750183\n0.423309 0.832428 0.750397\n0.464996 0.832916 0.750519\n0.506287 0.833435 0.750671\n0.545288 0.833893 0.750824\n0.581818 0.834412 0.750946\n0.615845 0.834869 0.751099\n0.647522 0.835327 0.751282\n0.677124 0.835815 0.751404\n0.704926 0.836243 0.751526\n0.731171 0.836700 0.751678\n0.756134 0.837128 0.751801\n0.780029 0.837585 0.751984\n0.803040 0.838013 0.752075\n0.825409 0.838409 0.752228\n0.847290 0.838837 0.752350\n0.868958 0.839264 0.752472\n0.890686 0.839661 0.752563\n0.912781 0.840057 0.752716\n0.935577 0.840454 0.752869\n0.959961 0.840790 0.752991\n0.070526 0.851898 0.745605\n0.088226 0.852325 0.745819\n0.107605 0.852814 0.745941\n0.128876 0.853210 0.746124\n0.152435 0.853638 0.746277\n0.178497 0.854065 0.746429\n0.207336 0.854492 0.746643\n0.238617 0.854889 0.746826\n0.272308 0.855316 0.746948\n0.308105 0.855743 0.747101\n0.345825 0.856171 0.747314\n0.385223 0.856598 0.747437\n0.425964 0.856995 0.747620\n0.467468 0.857391 0.747772\n0.508453 0.857788 0.747894\n0.547150 0.858215 0.748047\n0.583496 0.858612 0.748260\n0.617279 0.858978 0.748383\n0.648773 0.859344 0.748535\n0.678192 0.859711 0.748688\n0.705811 0.860138 0.748810\n0.731964 0.860474 0.749023\n0.756805 0.860840 0.749115\n0.780609 0.861176 0.749268\n0.803528 0.861542 0.749390\n0.825775 0.861908 0.749542\n0.847626 0.862244 0.749634\n0.869232 0.862579 0.749786\n0.890839 0.862915 0.749939\n0.912842 0.863220 0.750061\n0.935669 0.863525 0.750153\n0.959961 0.863831 0.750275\n0.072235 0.876678 0.742828\n0.090118 0.877014 0.743011\n0.109558 0.877380 0.743195\n0.130981 0.877716 0.743347\n0.154694 0.878082 0.743591\n0.180908 0.878418 0.743713\n0.209778 0.878784 0.743896\n0.241180 0.879120 0.744049\n0.274872 0.879486 0.744232\n0.310730 0.879791 0.744415\n0.348541 0.880127 0.744598\n0.387817 0.880463 0.744781\n0.428436 0.880798 0.744904\n0.469910 0.881134 0.745087\n0.510620 0.881439 0.745239\n0.549072 0.881775 0.745392\n0.585083 0.882080 0.745575\n0.618744 0.882355 0.745758\n0.650024 0.882690 0.745880\n0.679230 0.882996 0.746033\n0.706696 0.883331 0.746216\n0.732727 0.883606 0.746338\n0.757416 0.883881 0.746490\n0.781097 0.884186 0.746643\n0.803955 0.884430 0.746765\n0.826141 0.884705 0.746918\n0.847931 0.885010 0.747070\n0.869476 0.885254 0.747192\n0.891022 0.885529 0.747284\n0.912994 0.885742 0.747406\n0.935699 0.886017 0.747559\n0.959961 0.886230 0.747711\n0.074066 0.900909 0.740143\n0.091949 0.901154 0.740326\n0.111572 0.901428 0.740570\n0.133087 0.901733 0.740692\n0.156921 0.902008 0.740875\n0.183258 0.902252 0.741058\n0.212280 0.902527 0.741241\n0.243774 0.902802 0.741425\n0.277557 0.903107 0.741577\n0.313416 0.903381 0.741791\n0.351105 0.903625 0.741943\n0.390381 0.903900 0.742096\n0.430939 0.904114 0.742279\n0.472229 0.904419 0.742462\n0.512695 0.904633 0.742645\n0.550934 0.904877 0.742798\n0.586731 0.905121 0.742981\n0.620087 0.905365 0.743134\n0.651184 0.905640 0.743317\n0.680206 0.905823 0.743439\n0.707581 0.906097 0.743622\n0.733429 0.906311 0.743744\n0.758087 0.906525 0.743896\n0.781647 0.906738 0.744049\n0.804382 0.906952 0.744202\n0.826508 0.907166 0.744354\n0.848206 0.907349 0.744446\n0.869629 0.907593 0.744568\n0.891235 0.907745 0.744751\n0.913086 0.907959 0.744904\n0.935791 0.908142 0.744965\n0.959961 0.908325 0.745087\n0.075775 0.924896 0.737488\n0.093842 0.925079 0.737671\n0.113525 0.925293 0.737854\n0.135162 0.925507 0.738037\n0.159119 0.925751 0.738220\n0.185608 0.925934 0.738403\n0.214752 0.926086 0.738617\n0.246307 0.926300 0.738800\n0.280121 0.926544 0.738953\n0.315979 0.926727 0.739136\n0.353699 0.926910 0.739319\n0.392914 0.927063 0.739502\n0.433411 0.927277 0.739716\n0.474487 0.927490 0.739868\n0.514801 0.927673 0.740021\n0.552734 0.927826 0.740204\n0.588287 0.928009 0.740387\n0.621460 0.928192 0.740540\n0.652313 0.928406 0.740692\n0.681213 0.928528 0.740845\n0.708374 0.928741 0.740997\n0.734161 0.928864 0.741180\n0.758636 0.929047 0.741333\n0.782135 0.929230 0.741455\n0.804810 0.929382 0.741608\n0.826874 0.929504 0.741730\n0.848480 0.929657 0.741882\n0.869904 0.929779 0.742035\n0.891357 0.929932 0.742126\n0.913208 0.930115 0.742249\n0.935822 0.930206 0.742401\n0.959961 0.930359 0.742493\n0.077576 0.948975 0.734772\n0.095703 0.949127 0.734985\n0.115448 0.949249 0.735138\n0.137238 0.949402 0.735352\n0.161346 0.949585 0.735565\n0.187958 0.949738 0.735748\n0.217163 0.949860 0.735901\n0.248810 0.949982 0.736115\n0.282654 0.950104 0.736298\n0.318573 0.950256 0.736511\n0.356171 0.950378 0.736694\n0.395355 0.950470 0.736877\n0.435760 0.950592 0.737030\n0.476715 0.950714 0.737244\n0.516754 0.950867 0.737427\n0.554474 0.950989 0.737579\n0.589783 0.951141 0.737732\n0.622711 0.951233 0.737915\n0.653412 0.951355 0.738068\n0.682129 0.951477 0.738251\n0.709198 0.951569 0.738403\n0.734833 0.951691 0.738556\n0.759216 0.951782 0.738647\n0.782623 0.951874 0.738831\n0.805206 0.951996 0.738953\n0.827148 0.952087 0.739136\n0.848755 0.952209 0.739227\n0.870087 0.952301 0.739380\n0.891541 0.952393 0.739532\n0.913300 0.952484 0.739624\n0.935883 0.952545 0.739746\n0.959961 0.952637 0.739868\n0.079346 0.973785 0.731964\n0.097534 0.973846 0.732178\n0.117432 0.973969 0.732391\n0.139343 0.973999 0.732605\n0.163544 0.974091 0.732758\n0.190277 0.974152 0.732971\n0.219604 0.974213 0.733154\n0.251282 0.974304 0.733368\n0.285156 0.974365 0.733582\n0.321014 0.974396 0.733734\n0.358673 0.974457 0.733948\n0.397766 0.974548 0.734100\n0.438080 0.974609 0.734344\n0.478882 0.974670 0.734497\n0.518677 0.974731 0.734680\n0.556122 0.974823 0.734833\n0.591187 0.974854 0.734985\n0.623962 0.974915 0.735199\n0.654480 0.974976 0.735382\n0.683014 0.975037 0.735504\n0.709961 0.975067 0.735626\n0.735474 0.975128 0.735779\n0.759766 0.975189 0.735962\n0.783081 0.975250 0.736115\n0.805603 0.975281 0.736237\n0.827515 0.975342 0.736389\n0.848999 0.975403 0.736511\n0.870300 0.975433 0.736664\n0.891632 0.975464 0.736755\n0.913422 0.975494 0.736847\n0.935944 0.975586 0.736969\n0.959961 0.975616 0.737152\n0.081055 1.000000 0.729004\n0.099365 1.000000 0.729187\n0.119324 1.000000 0.729401\n0.141327 1.000000 0.729614\n0.165680 1.000000 0.729797\n0.192535 1.000000 0.730042\n0.221954 1.000000 0.730255\n0.253662 1.000000 0.730408\n0.287598 1.000000 0.730621\n0.323456 1.000000 0.730804\n0.361053 1.000000 0.731018\n0.400116 1.000000 0.731171\n0.440277 1.000000 0.731384\n0.481018 1.000000 0.731537\n0.520538 1.000000 0.731720\n0.557739 1.000000 0.731934\n0.592590 1.000000 0.732086\n0.625183 1.000000 0.732269\n0.655487 1.000000 0.732391\n0.683899 1.000000 0.732544\n0.710693 1.000000 0.732727\n0.736084 1.000000 0.732910\n0.760284 1.000000 0.733032\n0.783508 1.000000 0.733185\n0.805939 1.000000 0.733307\n0.827759 1.000000 0.733429\n0.849213 1.000000 0.733582\n0.870453 1.000000 0.733673\n0.891785 1.000000 0.733795\n0.913483 1.000000 0.733948\n0.935974 1.000000 0.734070\n0.959961 1.000000 0.734161\n0.034637 0.005829 0.870544\n0.050232 0.006622 0.870575\n0.067139 0.007385 0.870605\n0.085541 0.008209 0.870605\n0.105713 0.008972 0.870636\n0.128113 0.009857 0.870667\n0.153015 0.010742 0.870667\n0.180878 0.011627 0.870728\n0.211792 0.012543 0.870728\n0.245636 0.013458 0.870758\n0.282166 0.014435 0.870758\n0.321228 0.015411 0.870758\n0.362366 0.016388 0.870819\n0.405365 0.017395 0.870850\n0.449707 0.018463 0.870850\n0.494354 0.019501 0.870880\n0.536957 0.020569 0.870880\n0.576752 0.021698 0.870911\n0.613708 0.022797 0.870941\n0.647919 0.023956 0.870941\n0.679749 0.025116 0.870972\n0.709503 0.026245 0.870972\n0.737610 0.027466 0.870972\n0.764252 0.028656 0.871033\n0.789703 0.029877 0.871033\n0.814301 0.031128 0.871063\n0.838226 0.032349 0.871063\n0.861786 0.033661 0.871094\n0.885254 0.034943 0.871094\n0.909088 0.036255 0.871124\n0.933655 0.037567 0.871124\n0.959961 0.038910 0.871094\n0.035522 0.022461 0.868622\n0.051270 0.023224 0.868652\n0.068237 0.024078 0.868683\n0.086700 0.024933 0.868683\n0.106995 0.025818 0.868713\n0.129486 0.026733 0.868744\n0.154572 0.027679 0.868744\n0.182556 0.028595 0.868774\n0.213593 0.029572 0.868774\n0.247620 0.030609 0.868805\n0.284241 0.031616 0.868835\n0.323303 0.032654 0.868866\n0.364471 0.033691 0.868896\n0.407501 0.034790 0.868896\n0.451813 0.035889 0.868896\n0.496338 0.037018 0.868896\n0.538757 0.038177 0.868958\n0.578339 0.039337 0.868958\n0.615051 0.040527 0.868958\n0.649078 0.041718 0.868958\n0.680786 0.042969 0.868958\n0.710388 0.044189 0.868988\n0.738342 0.045441 0.869019\n0.764893 0.046692 0.869019\n0.790283 0.048004 0.869049\n0.814758 0.049347 0.869049\n0.838623 0.050629 0.869080\n0.862091 0.052002 0.869080\n0.885498 0.053406 0.869080\n0.909180 0.054749 0.869049\n0.933746 0.056152 0.869049\n0.959961 0.057587 0.869080\n0.036560 0.040009 0.866608\n0.052307 0.040894 0.866608\n0.069366 0.041809 0.866608\n0.087952 0.042755 0.866669\n0.108337 0.043671 0.866669\n0.130951 0.044647 0.866699\n0.156189 0.045715 0.866669\n0.184326 0.046692 0.866699\n0.215546 0.047760 0.866730\n0.249603 0.048828 0.866730\n0.286316 0.049927 0.866760\n0.325470 0.051086 0.866760\n0.366730 0.052155 0.866791\n0.409698 0.053375 0.866791\n0.453949 0.054565 0.866821\n0.498291 0.055786 0.866821\n0.540466 0.057007 0.866791\n0.579865 0.058228 0.866821\n0.616425 0.059509 0.866821\n0.650269 0.060822 0.866821\n0.681793 0.062134 0.866852\n0.711273 0.063477 0.866821\n0.739136 0.064819 0.866852\n0.765564 0.066162 0.866821\n0.790833 0.067596 0.866821\n0.815247 0.068970 0.866852\n0.839020 0.070404 0.866821\n0.862396 0.071838 0.866821\n0.885712 0.073334 0.866821\n0.909363 0.074799 0.866852\n0.933838 0.076294 0.866821\n0.959961 0.077820 0.866821\n0.037598 0.058960 0.864380\n0.053467 0.059906 0.864410\n0.070587 0.060913 0.864441\n0.089233 0.061951 0.864410\n0.109741 0.062988 0.864441\n0.132507 0.064087 0.864441\n0.157867 0.065186 0.864471\n0.186188 0.066284 0.864471\n0.217529 0.067474 0.864471\n0.251678 0.068604 0.864471\n0.288544 0.069824 0.864471\n0.327728 0.071045 0.864502\n0.368927 0.072266 0.864502\n0.411926 0.073547 0.864502\n0.456146 0.074860 0.864471\n0.500427 0.076111 0.864471\n0.542297 0.077484 0.864471\n0.581451 0.078857 0.864471\n0.617798 0.080200 0.864471\n0.651520 0.081635 0.864471\n0.682831 0.083008 0.864471\n0.712219 0.084473 0.864441\n0.739929 0.085968 0.864441\n0.766235 0.087402 0.864441\n0.791382 0.088928 0.864441\n0.815735 0.090485 0.864410\n0.839417 0.091980 0.864380\n0.862732 0.093567 0.864410\n0.885925 0.095154 0.864380\n0.909546 0.096710 0.864319\n0.933899 0.098358 0.864288\n0.959961 0.099976 0.864319\n0.038696 0.079651 0.862000\n0.054626 0.080719 0.861969\n0.071838 0.081818 0.862000\n0.090607 0.082947 0.861969\n0.111237 0.084106 0.862000\n0.134125 0.085297 0.862000\n0.159607 0.086487 0.862000\n0.188110 0.087738 0.862000\n0.219604 0.088989 0.861969\n0.253845 0.090302 0.861969\n0.290771 0.091614 0.862000\n0.329987 0.092957 0.861969\n0.371277 0.094269 0.861969\n0.414246 0.095703 0.861938\n0.458405 0.097137 0.861938\n0.502472 0.098541 0.861938\n0.544159 0.100006 0.861877\n0.583099 0.101532 0.861877\n0.619263 0.102997 0.861877\n0.652710 0.104553 0.861847\n0.683899 0.106079 0.861847\n0.713135 0.107666 0.861816\n0.740692 0.109253 0.861786\n0.766907 0.110870 0.861755\n0.792023 0.112488 0.861694\n0.816193 0.114197 0.861694\n0.839783 0.115845 0.861694\n0.863007 0.117523 0.861633\n0.886230 0.119293 0.861572\n0.909698 0.121033 0.861542\n0.933990 0.122742 0.861542\n0.959961 0.124512 0.861481\n0.039886 0.102509 0.859314\n0.055817 0.103699 0.859283\n0.073151 0.104919 0.859283\n0.092041 0.106171 0.859283\n0.112793 0.107483 0.859283\n0.135803 0.108795 0.859253\n0.161438 0.110138 0.859222\n0.190094 0.111481 0.859222\n0.221710 0.112915 0.859222\n0.256104 0.114319 0.859192\n0.293091 0.115784 0.859131\n0.332397 0.117279 0.859131\n0.373657 0.118774 0.859100\n0.416626 0.120300 0.859100\n0.460663 0.121887 0.859039\n0.504578 0.123413 0.859039\n0.546112 0.125031 0.859009\n0.584717 0.126648 0.858978\n0.620697 0.128326 0.858948\n0.653961 0.130035 0.858917\n0.684967 0.131683 0.858887\n0.714050 0.133453 0.858826\n0.741547 0.135193 0.858765\n0.767578 0.136932 0.858734\n0.792572 0.138763 0.858704\n0.816681 0.140594 0.858643\n0.840179 0.142426 0.858582\n0.863342 0.144287 0.858521\n0.886444 0.146118 0.858490\n0.909851 0.148010 0.858429\n0.934082 0.149963 0.858337\n0.959961 0.151855 0.858307\n0.041077 0.128021 0.856293\n0.057129 0.129333 0.856293\n0.074493 0.130707 0.856262\n0.093445 0.132111 0.856232\n0.114380 0.133575 0.856201\n0.137512 0.135071 0.856140\n0.163361 0.136536 0.856110\n0.192139 0.138062 0.856110\n0.223877 0.139648 0.856049\n0.258392 0.141174 0.856018\n0.295441 0.142853 0.855957\n0.334747 0.144470 0.855957\n0.376068 0.146118 0.855896\n0.419006 0.147827 0.855865\n0.463013 0.149536 0.855804\n0.506683 0.151276 0.855713\n0.547943 0.153076 0.855713\n0.586426 0.154846 0.855652\n0.622131 0.156677 0.855621\n0.655212 0.158569 0.855560\n0.686035 0.160400 0.855469\n0.714996 0.162323 0.855438\n0.742279 0.164246 0.855377\n0.768280 0.166138 0.855316\n0.793121 0.168152 0.855225\n0.817169 0.170166 0.855164\n0.840576 0.172150 0.855072\n0.863678 0.174194 0.855042\n0.886688 0.176208 0.854919\n0.910004 0.178314 0.854858\n0.934174 0.180389 0.854797\n0.959961 0.182465 0.854675\n0.042328 0.156708 0.852844\n0.058441 0.158203 0.852814\n0.075928 0.159760 0.852783\n0.095001 0.161346 0.852722\n0.116058 0.162933 0.852692\n0.139343 0.164612 0.852661\n0.165283 0.166260 0.852570\n0.194275 0.167999 0.852539\n0.226166 0.169739 0.852478\n0.260773 0.171448 0.852448\n0.297913 0.173248 0.852386\n0.337250 0.175079 0.852325\n0.378632 0.176941 0.852234\n0.421509 0.178802 0.852142\n0.465363 0.180695 0.852112\n0.508911 0.182617 0.852051\n0.549866 0.184601 0.851959\n0.588074 0.186554 0.851898\n0.623627 0.188568 0.851807\n0.656525 0.190643 0.851776\n0.687164 0.192688 0.851685\n0.715942 0.194763 0.851562\n0.743134 0.196869 0.851501\n0.768951 0.198975 0.851410\n0.793732 0.201141 0.851318\n0.817657 0.203278 0.851227\n0.841003 0.205444 0.851135\n0.863983 0.207672 0.851044\n0.886932 0.209808 0.850952\n0.910187 0.212067 0.850830\n0.934265 0.214325 0.850739\n0.959961 0.216522 0.850647\n0.043579 0.189148 0.848938\n0.059845 0.190826 0.848907\n0.077393 0.192596 0.848816\n0.096588 0.194305 0.848785\n0.117767 0.196106 0.848694\n0.141174 0.197937 0.848633\n0.167328 0.199768 0.848572\n0.196442 0.201691 0.848541\n0.228455 0.203613 0.848419\n0.263123 0.205536 0.848328\n0.300385 0.207489 0.848267\n0.339783 0.209473 0.848145\n0.381134 0.211487 0.848114\n0.423981 0.213562 0.848022\n0.467773 0.215576 0.847961\n0.511078 0.217712 0.847839\n0.551849 0.219849 0.847748\n0.589813 0.221954 0.847656\n0.625092 0.224121 0.847595\n0.657806 0.226349 0.847473\n0.688232 0.228485 0.847382\n0.716888 0.230713 0.847290\n0.743927 0.233002 0.847168\n0.769653 0.235199 0.847076\n0.794281 0.237549 0.846954\n0.818146 0.239777 0.846893\n0.841400 0.242096 0.846771\n0.864349 0.244415 0.846649\n0.887146 0.246735 0.846527\n0.910370 0.249054 0.846436\n0.934326 0.251465 0.846313\n0.959961 0.253784 0.846191\n0.044952 0.225433 0.844574\n0.061279 0.227295 0.844513\n0.078918 0.229187 0.844421\n0.098236 0.231079 0.844330\n0.119537 0.233063 0.844238\n0.143127 0.235016 0.844208\n0.169403 0.237000 0.844086\n0.198669 0.239075 0.843964\n0.230865 0.241119 0.843903\n0.265656 0.243195 0.843781\n0.302917 0.245331 0.843719\n0.342316 0.247406 0.843628\n0.383667 0.249603 0.843536\n0.426544 0.251770 0.843414\n0.470245 0.253937 0.843323\n0.513275 0.256195 0.843231\n0.553802 0.258484 0.843140\n0.591522 0.260651 0.843018\n0.626556 0.263000 0.842896\n0.658997 0.265320 0.842804\n0.689362 0.267578 0.842682\n0.717834 0.269958 0.842560\n0.744720 0.272278 0.842438\n0.770386 0.274597 0.842346\n0.794952 0.277039 0.842224\n0.818665 0.279388 0.842102\n0.841797 0.281799 0.841980\n0.864624 0.284210 0.841858\n0.887421 0.286591 0.841705\n0.910522 0.289032 0.841614\n0.934448 0.291473 0.841431\n0.959961 0.293854 0.841339\n0.046356 0.265320 0.839691\n0.062714 0.267303 0.839600\n0.080505 0.269348 0.839539\n0.099884 0.271362 0.839447\n0.121307 0.273438 0.839355\n0.145081 0.275513 0.839233\n0.171570 0.277649 0.839142\n0.200989 0.279816 0.839020\n0.233246 0.281982 0.838959\n0.268158 0.284180 0.838867\n0.305481 0.286377 0.838745\n0.344971 0.288605 0.838654\n0.386261 0.290894 0.838531\n0.429077 0.293182 0.838409\n0.472717 0.295441 0.838318\n0.515503 0.297760 0.838165\n0.555756 0.300171 0.838043\n0.593201 0.302429 0.837982\n0.628021 0.304810 0.837830\n0.660339 0.307251 0.837708\n0.690430 0.309631 0.837585\n0.718811 0.311981 0.837463\n0.745575 0.314392 0.837372\n0.771057 0.316864 0.837219\n0.795532 0.319305 0.837067\n0.819122 0.321686 0.837006\n0.842194 0.324127 0.836853\n0.864960 0.326630 0.836731\n0.887695 0.329010 0.836578\n0.910675 0.331482 0.836456\n0.934509 0.334015 0.836304\n0.959961 0.336395 0.836182\n0.047791 0.308441 0.834412\n0.064240 0.310516 0.834351\n0.082123 0.312622 0.834259\n0.101624 0.314758 0.834137\n0.123230 0.316895 0.834045\n0.147095 0.319122 0.833923\n0.173737 0.321259 0.833832\n0.203339 0.323486 0.833740\n0.235687 0.325745 0.833618\n0.270691 0.328064 0.833496\n0.308105 0.330353 0.833405\n0.347595 0.332642 0.833282\n0.388885 0.334930 0.833191\n0.431641 0.337280 0.833038\n0.475159 0.339630 0.832916\n0.517761 0.342041 0.832825\n0.557709 0.344421 0.832672\n0.594940 0.346802 0.832550\n0.629517 0.349213 0.832458\n0.661621 0.351593 0.832336\n0.691559 0.354065 0.832184\n0.719727 0.356506 0.832092\n0.746368 0.358917 0.831909\n0.771729 0.361420 0.831818\n0.796082 0.363831 0.831696\n0.819611 0.366241 0.831543\n0.842560 0.368713 0.831421\n0.865234 0.371216 0.831299\n0.887878 0.373627 0.831177\n0.910858 0.376099 0.831024\n0.934601 0.378479 0.830872\n0.959961 0.380981 0.830811\n0.049255 0.354279 0.828827\n0.065796 0.356445 0.828705\n0.083771 0.358673 0.828583\n0.103455 0.360779 0.828522\n0.125092 0.363007 0.828400\n0.149200 0.365295 0.828308\n0.175964 0.367493 0.828186\n0.205750 0.369751 0.828064\n0.238159 0.372040 0.827972\n0.273315 0.374359 0.827881\n0.310730 0.376678 0.827759\n0.350250 0.378967 0.827606\n0.391602 0.381378 0.827484\n0.434265 0.383759 0.827423\n0.477692 0.386078 0.827271\n0.520020 0.388489 0.827148\n0.559692 0.390900 0.827026\n0.596680 0.393280 0.826904\n0.631012 0.395691 0.826782\n0.662872 0.398010 0.826660\n0.692657 0.400513 0.826508\n0.720673 0.402924 0.826416\n0.747192 0.405304 0.826263\n0.772430 0.407776 0.826172\n0.796661 0.410217 0.826019\n0.820099 0.412598 0.825897\n0.843018 0.415070 0.825775\n0.865570 0.417480 0.825653\n0.888153 0.419830 0.825500\n0.910980 0.422302 0.825409\n0.934692 0.424652 0.825287\n0.959961 0.427063 0.825134\n0.050751 0.402374 0.822906\n0.067413 0.404663 0.822815\n0.085449 0.406830 0.822723\n0.105225 0.408936 0.822662\n0.127045 0.411255 0.822510\n0.151245 0.413452 0.822388\n0.178284 0.415710 0.822296\n0.208160 0.417999 0.822174\n0.240784 0.420258 0.822083\n0.275940 0.422546 0.821960\n0.313446 0.424927 0.821838\n0.352966 0.427185 0.821747\n0.394257 0.429565 0.821625\n0.436951 0.431885 0.821503\n0.480164 0.434204 0.821381\n0.522186 0.436584 0.821289\n0.561584 0.438904 0.821167\n0.598358 0.441315 0.821045\n0.632507 0.443726 0.820923\n0.664124 0.446014 0.820831\n0.693756 0.448395 0.820679\n0.721649 0.450775 0.820587\n0.747986 0.453156 0.820435\n0.773102 0.455505 0.820312\n0.797241 0.457916 0.820221\n0.820587 0.460236 0.820099\n0.843384 0.462585 0.819946\n0.865906 0.464905 0.819855\n0.888336 0.467224 0.819733\n0.911163 0.469543 0.819611\n0.934784 0.471832 0.819489\n0.959961 0.474182 0.819366\n0.052307 0.452240 0.816803\n0.069031 0.454437 0.816742\n0.087189 0.456573 0.816620\n0.107086 0.458771 0.816498\n0.129059 0.460999 0.816406\n0.153412 0.463135 0.816315\n0.180573 0.465363 0.816193\n0.210632 0.467621 0.816101\n0.243347 0.469849 0.815979\n0.278625 0.472046 0.815918\n0.316162 0.474365 0.815796\n0.355682 0.476593 0.815704\n0.396942 0.478882 0.815582\n0.439545 0.481140 0.815491\n0.482697 0.483368 0.815399\n0.524414 0.485626 0.815277\n0.563568 0.487854 0.815155\n0.600128 0.490143 0.815094\n0.633972 0.492432 0.814941\n0.665436 0.494659 0.814850\n0.694855 0.496918 0.814758\n0.722565 0.499207 0.814636\n0.748810 0.501465 0.814545\n0.773804 0.503723 0.814423\n0.797821 0.505890 0.814331\n0.821075 0.508057 0.814270\n0.843781 0.510284 0.814148\n0.866211 0.512451 0.814026\n0.888611 0.514587 0.813934\n0.911346 0.516724 0.813843\n0.934845 0.518799 0.813751\n0.959961 0.520905 0.813660\n0.053864 0.502808 0.810608\n0.070648 0.504852 0.810516\n0.088928 0.506927 0.810455\n0.108978 0.508972 0.810364\n0.131134 0.511078 0.810272\n0.155609 0.513092 0.810181\n0.182953 0.515198 0.810089\n0.213135 0.517273 0.810028\n0.245972 0.519348 0.809967\n0.281342 0.521423 0.809875\n0.318909 0.523499 0.809784\n0.358459 0.525513 0.809723\n0.399689 0.527618 0.809631\n0.442169 0.529633 0.809570\n0.485199 0.531677 0.809448\n0.526642 0.533752 0.809387\n0.565521 0.535767 0.809326\n0.601776 0.537842 0.809235\n0.635437 0.539825 0.809174\n0.666718 0.541809 0.809113\n0.695953 0.543884 0.809021\n0.723511 0.545837 0.808960\n0.749603 0.547760 0.808899\n0.774475 0.549744 0.808838\n0.798431 0.551636 0.808777\n0.821533 0.553558 0.808685\n0.844147 0.555511 0.808624\n0.866516 0.557373 0.808563\n0.888855 0.559296 0.808502\n0.911530 0.561157 0.808441\n0.934967 0.562958 0.808380\n0.959961 0.564758 0.808289\n0.055450 0.551270 0.804657\n0.072327 0.553131 0.804626\n0.090759 0.554932 0.804565\n0.110901 0.556732 0.804535\n0.133179 0.558563 0.804443\n0.157837 0.560394 0.804443\n0.185394 0.562164 0.804382\n0.215668 0.564056 0.804291\n0.248596 0.565857 0.804291\n0.284027 0.567688 0.804260\n0.321686 0.569519 0.804169\n0.361206 0.571320 0.804138\n0.402344 0.573120 0.804077\n0.444794 0.574921 0.804047\n0.487671 0.576752 0.803986\n0.528839 0.578491 0.803955\n0.567444 0.580322 0.803894\n0.603455 0.582062 0.803894\n0.636871 0.583862 0.803833\n0.667908 0.585571 0.803802\n0.697021 0.587250 0.803772\n0.724457 0.589050 0.803680\n0.750366 0.590698 0.803680\n0.775177 0.592438 0.803650\n0.798950 0.594147 0.803589\n0.822052 0.595734 0.803589\n0.844543 0.597412 0.803528\n0.866791 0.599060 0.803497\n0.889038 0.600677 0.803467\n0.911682 0.602295 0.803436\n0.935028 0.603821 0.803406\n0.959961 0.605438 0.803375\n0.057068 0.596039 0.799225\n0.074097 0.597656 0.799194\n0.092560 0.599243 0.799164\n0.112854 0.600830 0.799164\n0.135254 0.602478 0.799164\n0.160095 0.604004 0.799103\n0.187775 0.605621 0.799072\n0.218231 0.607208 0.799133\n0.251282 0.608795 0.799072\n0.286743 0.610382 0.799042\n0.324432 0.612000 0.799011\n0.364014 0.613525 0.799042\n0.405121 0.615112 0.799011\n0.447449 0.616608 0.799011\n0.490173 0.618195 0.798981\n0.531036 0.619751 0.798981\n0.569366 0.621277 0.798950\n0.605103 0.622803 0.798950\n0.638336 0.624359 0.798950\n0.669159 0.625824 0.798889\n0.698090 0.627319 0.798920\n0.725372 0.628815 0.798920\n0.751190 0.630249 0.798920\n0.775818 0.631744 0.798889\n0.799469 0.633118 0.798889\n0.822479 0.634613 0.798859\n0.844910 0.636047 0.798859\n0.867096 0.637421 0.798859\n0.889313 0.638794 0.798859\n0.911835 0.640167 0.798859\n0.935120 0.641449 0.798859\n0.959961 0.642822 0.798859\n0.058716 0.637238 0.794220\n0.075806 0.638580 0.794250\n0.094421 0.639954 0.794250\n0.114838 0.641357 0.794250\n0.137360 0.642731 0.794281\n0.162415 0.644073 0.794312\n0.190216 0.645477 0.794312\n0.220795 0.646851 0.794312\n0.253937 0.648224 0.794281\n0.289490 0.649536 0.794373\n0.327209 0.650940 0.794373\n0.366760 0.652222 0.794342\n0.407837 0.653625 0.794373\n0.450073 0.654907 0.794434\n0.492676 0.656281 0.794403\n0.533203 0.657593 0.794434\n0.571289 0.658875 0.794464\n0.606781 0.660156 0.794434\n0.639740 0.661499 0.794495\n0.670410 0.662750 0.794464\n0.699127 0.664062 0.794495\n0.726227 0.665314 0.794495\n0.751923 0.666534 0.794556\n0.776489 0.667816 0.794556\n0.800079 0.669006 0.794586\n0.822906 0.670227 0.794617\n0.845306 0.671478 0.794617\n0.867401 0.672607 0.794617\n0.889526 0.673798 0.794647\n0.911987 0.674957 0.794678\n0.935181 0.676056 0.794739\n0.959961 0.677216 0.794739\n0.060364 0.674866 0.789734\n0.077606 0.676056 0.789764\n0.096283 0.677246 0.789795\n0.116852 0.678406 0.789856\n0.139557 0.679596 0.789886\n0.164764 0.680786 0.789917\n0.192719 0.681946 0.789917\n0.223450 0.683136 0.790009\n0.256653 0.684265 0.790039\n0.292236 0.685455 0.790039\n0.329926 0.686584 0.790070\n0.369507 0.687775 0.790161\n0.410583 0.688934 0.790161\n0.452698 0.690033 0.790192\n0.495056 0.691162 0.790253\n0.535339 0.692322 0.790253\n0.573151 0.693390 0.790344\n0.608398 0.694550 0.790344\n0.641144 0.695648 0.790375\n0.671631 0.696747 0.790436\n0.700165 0.697845 0.790497\n0.727112 0.698914 0.790497\n0.752686 0.699951 0.790558\n0.777100 0.701019 0.790588\n0.800629 0.702026 0.790619\n0.823425 0.703064 0.790680\n0.845642 0.704071 0.790710\n0.867706 0.705078 0.790741\n0.889771 0.706116 0.790833\n0.912079 0.707092 0.790833\n0.935303 0.708008 0.790863\n0.959961 0.708984 0.790924\n0.062103 0.709473 0.785553\n0.079376 0.710510 0.785675\n0.098206 0.711517 0.785706\n0.118896 0.712555 0.785767\n0.141724 0.713562 0.785797\n0.167114 0.714539 0.785858\n0.195190 0.715576 0.785980\n0.226013 0.716614 0.785980\n0.259338 0.717560 0.786041\n0.295013 0.718597 0.786163\n0.332672 0.719574 0.786163\n0.372253 0.720551 0.786224\n0.413269 0.721497 0.786285\n0.455353 0.722473 0.786316\n0.497437 0.723450 0.786438\n0.537476 0.724426 0.786469\n0.575012 0.725372 0.786530\n0.610016 0.726349 0.786591\n0.642517 0.727234 0.786682\n0.672791 0.728180 0.786713\n0.701233 0.729095 0.786774\n0.727997 0.730011 0.786804\n0.753448 0.730896 0.786865\n0.777740 0.731812 0.786926\n0.801117 0.732666 0.787018\n0.823822 0.733551 0.787048\n0.846039 0.734436 0.787140\n0.867981 0.735260 0.787170\n0.889954 0.736084 0.787201\n0.912231 0.736938 0.787292\n0.935364 0.737701 0.787354\n0.959961 0.738525 0.787415\n0.063843 0.741577 0.781799\n0.081207 0.742432 0.781860\n0.100128 0.743317 0.781921\n0.120941 0.744202 0.782013\n0.143951 0.745056 0.782104\n0.169403 0.745911 0.782166\n0.197723 0.746796 0.782257\n0.228638 0.747620 0.782318\n0.262054 0.748474 0.782410\n0.297760 0.749329 0.782501\n0.335449 0.750153 0.782562\n0.374969 0.751007 0.782623\n0.415924 0.751831 0.782715\n0.457886 0.752655 0.782806\n0.499817 0.753510 0.782867\n0.539581 0.754333 0.782959\n0.576843 0.755096 0.783020\n0.611572 0.755920 0.783112\n0.643890 0.756714 0.783173\n0.673981 0.757507 0.783234\n0.702209 0.758270 0.783325\n0.728851 0.759033 0.783417\n0.754150 0.759796 0.783447\n0.778320 0.760529 0.783539\n0.801636 0.761322 0.783600\n0.824249 0.762054 0.783691\n0.846375 0.762787 0.783752\n0.868256 0.763458 0.783813\n0.890106 0.764160 0.783936\n0.912354 0.764862 0.783966\n0.935394 0.765533 0.784027\n0.959961 0.766235 0.784088\n0.065552 0.771515 0.778259\n0.083038 0.772308 0.778351\n0.102081 0.773010 0.778473\n0.123016 0.773743 0.778564\n0.146179 0.774506 0.778656\n0.171814 0.775208 0.778748\n0.200195 0.775940 0.778870\n0.231262 0.776703 0.778900\n0.264709 0.777405 0.779022\n0.300507 0.778137 0.779083\n0.338226 0.778839 0.779205\n0.377747 0.779572 0.779297\n0.418640 0.780243 0.779358\n0.460480 0.780945 0.779449\n0.502136 0.781647 0.779572\n0.541656 0.782349 0.779663\n0.578613 0.783051 0.779724\n0.613098 0.783722 0.779816\n0.645172 0.784363 0.779938\n0.675110 0.785065 0.780029\n0.703186 0.785706 0.780090\n0.729706 0.786316 0.780151\n0.754852 0.786987 0.780273\n0.778992 0.787628 0.780365\n0.802155 0.788208 0.780426\n0.824677 0.788818 0.780518\n0.846741 0.789490 0.780609\n0.868500 0.790039 0.780701\n0.890350 0.790619 0.780762\n0.912506 0.791199 0.780853\n0.935486 0.791779 0.780914\n0.959961 0.792358 0.781006\n0.067322 0.799713 0.774994\n0.084900 0.800354 0.775116\n0.104034 0.800995 0.775177\n0.125092 0.801605 0.775299\n0.148346 0.802185 0.775452\n0.174194 0.802826 0.775513\n0.202728 0.803467 0.775604\n0.233856 0.804047 0.775726\n0.267426 0.804718 0.775848\n0.303253 0.805298 0.775970\n0.340973 0.805908 0.776031\n0.380432 0.806488 0.776154\n0.421265 0.807098 0.776276\n0.462982 0.807678 0.776398\n0.504425 0.808258 0.776459\n0.543640 0.808838 0.776581\n0.580414 0.809418 0.776672\n0.614685 0.809967 0.776764\n0.646484 0.810516 0.776855\n0.676239 0.811096 0.776947\n0.704163 0.811676 0.777069\n0.730530 0.812164 0.777130\n0.755585 0.812714 0.777252\n0.779572 0.813263 0.777344\n0.802673 0.813782 0.777466\n0.825073 0.814270 0.777527\n0.847015 0.814758 0.777618\n0.868805 0.815308 0.777710\n0.890564 0.815796 0.777802\n0.912628 0.816254 0.777893\n0.935547 0.816711 0.777954\n0.959961 0.817200 0.778046\n0.069092 0.826477 0.771881\n0.086731 0.826996 0.772003\n0.105988 0.827515 0.772156\n0.127197 0.828064 0.772247\n0.150574 0.828552 0.772369\n0.176575 0.829102 0.772430\n0.205231 0.829559 0.772614\n0.236511 0.830109 0.772736\n0.270111 0.830627 0.772827\n0.305969 0.831116 0.772949\n0.343658 0.831635 0.773102\n0.383057 0.832123 0.773193\n0.423859 0.832611 0.773285\n0.465454 0.833099 0.773376\n0.506683 0.833618 0.773529\n0.545593 0.834106 0.773621\n0.582123 0.834564 0.773743\n0.616150 0.835022 0.773834\n0.647766 0.835510 0.773956\n0.677307 0.835968 0.774048\n0.705078 0.836395 0.774170\n0.731323 0.836884 0.774261\n0.756226 0.837311 0.774384\n0.780121 0.837738 0.774506\n0.803131 0.838165 0.774597\n0.825500 0.838593 0.774689\n0.847382 0.839020 0.774780\n0.869019 0.839386 0.774872\n0.890747 0.839813 0.774963\n0.912781 0.840210 0.775055\n0.935577 0.840576 0.775146\n0.959961 0.840912 0.775208\n0.070831 0.852081 0.768982\n0.088562 0.852478 0.769073\n0.107941 0.852936 0.769196\n0.129242 0.853363 0.769287\n0.152832 0.853790 0.769440\n0.178955 0.854248 0.769592\n0.207794 0.854645 0.769714\n0.239044 0.855042 0.769836\n0.272797 0.855499 0.769989\n0.308624 0.855896 0.770111\n0.346344 0.856354 0.770172\n0.385712 0.856750 0.770325\n0.426361 0.857147 0.770477\n0.467896 0.857574 0.770569\n0.508911 0.857941 0.770691\n0.547546 0.858337 0.770813\n0.583771 0.858734 0.770905\n0.617615 0.859131 0.771057\n0.649017 0.859497 0.771149\n0.678375 0.859894 0.771271\n0.705994 0.860260 0.771423\n0.732086 0.860596 0.771515\n0.756927 0.860992 0.771637\n0.780701 0.861328 0.771729\n0.803589 0.861633 0.771820\n0.825836 0.862030 0.771912\n0.847687 0.862335 0.772034\n0.869293 0.862671 0.772125\n0.890900 0.863007 0.772217\n0.912872 0.863312 0.772308\n0.935669 0.863617 0.772430\n0.959961 0.863953 0.772491\n0.072632 0.876801 0.766083\n0.090424 0.877136 0.766205\n0.109924 0.877502 0.766357\n0.131378 0.877838 0.766510\n0.155090 0.878204 0.766632\n0.181366 0.878540 0.766754\n0.210297 0.878906 0.766907\n0.241669 0.879211 0.767059\n0.275421 0.879608 0.767151\n0.311310 0.879913 0.767303\n0.348999 0.880280 0.767487\n0.388336 0.880585 0.767578\n0.428894 0.880890 0.767700\n0.470276 0.881256 0.767822\n0.511078 0.881531 0.767944\n0.549377 0.881897 0.768097\n0.585419 0.882202 0.768188\n0.619019 0.882538 0.768341\n0.650208 0.882812 0.768463\n0.679413 0.883118 0.768585\n0.706879 0.883423 0.768707\n0.732819 0.883698 0.768799\n0.757599 0.884003 0.768921\n0.781219 0.884277 0.769043\n0.804047 0.884583 0.769135\n0.826233 0.884827 0.769257\n0.847992 0.885071 0.769318\n0.869507 0.885376 0.769440\n0.891052 0.885620 0.769592\n0.912994 0.885864 0.769653\n0.935699 0.886108 0.769775\n0.959961 0.886322 0.769867\n0.074371 0.901001 0.763306\n0.092285 0.901245 0.763458\n0.111908 0.901550 0.763611\n0.133484 0.901825 0.763733\n0.157318 0.902100 0.763916\n0.183746 0.902374 0.764038\n0.212769 0.902649 0.764160\n0.244232 0.902893 0.764313\n0.278015 0.903198 0.764496\n0.313873 0.903473 0.764618\n0.351562 0.903717 0.764740\n0.390900 0.903992 0.764893\n0.431366 0.904236 0.765015\n0.472626 0.904510 0.765137\n0.513153 0.904724 0.765259\n0.551270 0.904999 0.765381\n0.587036 0.905212 0.765533\n0.620361 0.905487 0.765686\n0.651428 0.905701 0.765778\n0.680420 0.905914 0.765900\n0.707733 0.906158 0.766022\n0.733551 0.906372 0.766144\n0.758179 0.906586 0.766296\n0.781738 0.906830 0.766418\n0.804474 0.907043 0.766479\n0.826569 0.907227 0.766602\n0.848236 0.907440 0.766754\n0.869720 0.907654 0.766815\n0.891266 0.907837 0.766937\n0.913116 0.908020 0.766998\n0.935822 0.908203 0.767120\n0.959961 0.908386 0.767212\n0.076141 0.924957 0.760559\n0.094147 0.925140 0.760712\n0.113861 0.925354 0.760895\n0.135559 0.925568 0.761047\n0.159485 0.925812 0.761169\n0.186127 0.925995 0.761322\n0.215240 0.926178 0.761475\n0.246765 0.926392 0.761627\n0.280609 0.926605 0.761749\n0.316437 0.926758 0.761902\n0.354156 0.926971 0.762054\n0.393341 0.927155 0.762207\n0.433807 0.927368 0.762329\n0.474884 0.927551 0.762451\n0.515198 0.927734 0.762634\n0.553009 0.927917 0.762756\n0.588562 0.928101 0.762878\n0.621674 0.928253 0.763000\n0.652527 0.928436 0.763153\n0.681366 0.928619 0.763275\n0.708527 0.928772 0.763397\n0.734253 0.928955 0.763519\n0.758759 0.929108 0.763611\n0.782196 0.929291 0.763733\n0.804871 0.929413 0.763885\n0.826904 0.929565 0.763977\n0.848511 0.929688 0.764099\n0.869934 0.929840 0.764191\n0.891388 0.930023 0.764282\n0.913239 0.930145 0.764343\n0.935822 0.930298 0.764465\n0.959961 0.930420 0.764587\n0.077911 0.949005 0.757812\n0.096008 0.949188 0.757965\n0.115845 0.949341 0.758118\n0.137634 0.949493 0.758240\n0.161743 0.949615 0.758423\n0.188416 0.949768 0.758606\n0.217651 0.949890 0.758728\n0.249237 0.950043 0.758881\n0.283112 0.950165 0.759033\n0.319000 0.950287 0.759216\n0.356659 0.950378 0.759338\n0.395844 0.950531 0.759491\n0.436218 0.950653 0.759644\n0.477142 0.950806 0.759766\n0.517151 0.950897 0.759918\n0.554779 0.951019 0.760040\n0.590088 0.951141 0.760193\n0.622955 0.951294 0.760315\n0.653625 0.951385 0.760468\n0.682281 0.951508 0.760590\n0.709320 0.951599 0.760681\n0.734955 0.951721 0.760803\n0.759338 0.951813 0.760956\n0.782715 0.951935 0.761078\n0.805267 0.952026 0.761169\n0.827209 0.952148 0.761292\n0.848785 0.952240 0.761383\n0.870148 0.952332 0.761475\n0.891541 0.952423 0.761566\n0.913361 0.952515 0.761719\n0.935883 0.952576 0.761810\n0.959961 0.952637 0.761902\n0.079651 0.973846 0.754883\n0.097839 0.973877 0.755066\n0.117798 0.973969 0.755280\n0.139709 0.974030 0.755463\n0.163879 0.974121 0.755585\n0.190735 0.974182 0.755737\n0.220001 0.974243 0.755890\n0.251678 0.974304 0.756073\n0.285614 0.974396 0.756226\n0.321472 0.974426 0.756378\n0.359131 0.974518 0.756531\n0.398193 0.974579 0.756683\n0.438507 0.974609 0.756836\n0.479340 0.974701 0.756989\n0.519073 0.974762 0.757111\n0.556427 0.974854 0.757263\n0.591522 0.974884 0.757416\n0.624207 0.974976 0.757538\n0.654633 0.975006 0.757629\n0.683197 0.975067 0.757782\n0.710083 0.975098 0.757935\n0.735596 0.975189 0.758057\n0.759857 0.975220 0.758148\n0.783173 0.975281 0.758270\n0.805634 0.975311 0.758392\n0.827545 0.975342 0.758484\n0.849030 0.975403 0.758606\n0.870331 0.975464 0.758728\n0.891663 0.975494 0.758820\n0.913422 0.975494 0.758911\n0.935944 0.975586 0.759003\n0.959961 0.975616 0.759064\n0.081421 1.000000 0.751892\n0.099701 1.000000 0.752045\n0.119690 1.000000 0.752228\n0.141693 1.000000 0.752380\n0.166077 1.000000 0.752533\n0.193024 1.000000 0.752747\n0.222351 1.000000 0.752899\n0.254120 1.000000 0.753052\n0.288055 1.000000 0.753235\n0.323883 1.000000 0.753357\n0.361511 1.000000 0.753540\n0.400574 1.000000 0.753693\n0.440735 1.000000 0.753815\n0.481415 1.000000 0.753998\n0.520874 1.000000 0.754150\n0.558014 1.000000 0.754272\n0.592865 1.000000 0.754395\n0.625366 1.000000 0.754547\n0.655670 1.000000 0.754700\n0.684052 1.000000 0.754822\n0.710815 1.000000 0.754944\n0.736206 1.000000 0.755066\n0.760376 1.000000 0.755188\n0.783600 1.000000 0.755280\n0.806000 1.000000 0.755371\n0.827850 1.000000 0.755554\n0.849274 1.000000 0.755646\n0.870483 1.000000 0.755737\n0.891815 1.000000 0.755798\n0.913513 1.000000 0.755890\n0.936005 1.000000 0.756012\n0.959961 1.000000 0.756104\n0.034790 0.006134 0.895325\n0.050446 0.006897 0.895325\n0.067352 0.007690 0.895294\n0.085754 0.008484 0.895325\n0.105957 0.009338 0.895294\n0.128357 0.010193 0.895294\n0.153290 0.011047 0.895294\n0.181183 0.011963 0.895264\n0.212128 0.012878 0.895233\n0.246002 0.013794 0.895203\n0.282593 0.014801 0.895264\n0.321564 0.015747 0.895233\n0.362762 0.016754 0.895233\n0.405701 0.017822 0.895203\n0.450073 0.018829 0.895233\n0.494751 0.019928 0.895203\n0.537292 0.020996 0.895172\n0.576996 0.022095 0.895172\n0.613953 0.023224 0.895172\n0.648163 0.024353 0.895142\n0.679962 0.025513 0.895111\n0.709686 0.026733 0.895111\n0.737732 0.027863 0.895111\n0.764374 0.029083 0.895050\n0.789825 0.030334 0.895050\n0.814392 0.031555 0.895020\n0.838287 0.032837 0.895020\n0.861847 0.034119 0.894989\n0.885284 0.035400 0.894928\n0.909088 0.036713 0.894928\n0.933655 0.038025 0.894928\n0.959961 0.039368 0.894867\n0.035736 0.022736 0.893341\n0.051483 0.023560 0.893372\n0.068420 0.024414 0.893341\n0.086914 0.025269 0.893311\n0.107239 0.026154 0.893311\n0.129791 0.027069 0.893311\n0.154846 0.028015 0.893280\n0.182892 0.028961 0.893250\n0.213989 0.029938 0.893311\n0.247955 0.030975 0.893250\n0.284607 0.032013 0.893250\n0.323700 0.033020 0.893219\n0.364899 0.034088 0.893250\n0.407898 0.035187 0.893219\n0.452148 0.036316 0.893158\n0.496704 0.037445 0.893158\n0.539062 0.038605 0.893188\n0.578552 0.039795 0.893158\n0.615326 0.040955 0.893127\n0.649292 0.042175 0.893097\n0.680939 0.043365 0.893097\n0.710571 0.044647 0.893036\n0.738495 0.045898 0.893005\n0.765015 0.047211 0.892975\n0.790405 0.048492 0.892975\n0.814850 0.049835 0.892944\n0.838684 0.051178 0.892883\n0.862152 0.052521 0.892853\n0.885559 0.053894 0.892883\n0.909271 0.055267 0.892822\n0.933746 0.056671 0.892761\n0.959961 0.058075 0.892761\n0.036743 0.040344 0.891266\n0.052551 0.041229 0.891266\n0.069611 0.042175 0.891235\n0.088165 0.043091 0.891205\n0.108643 0.044067 0.891174\n0.131256 0.045044 0.891144\n0.156464 0.046082 0.891205\n0.184692 0.047119 0.891144\n0.215881 0.048157 0.891144\n0.249939 0.049255 0.891113\n0.286743 0.050354 0.891144\n0.325897 0.051483 0.891083\n0.367157 0.052612 0.891052\n0.410095 0.053833 0.891022\n0.454346 0.054993 0.890991\n0.498718 0.056244 0.891022\n0.540833 0.057434 0.890991\n0.580170 0.058685 0.890930\n0.616699 0.059998 0.890930\n0.650482 0.061279 0.890869\n0.682007 0.062622 0.890808\n0.711487 0.063965 0.890808\n0.739319 0.065308 0.890778\n0.765686 0.066681 0.890747\n0.790955 0.068115 0.890686\n0.815338 0.069489 0.890656\n0.839081 0.070923 0.890656\n0.862457 0.072357 0.890564\n0.885742 0.073853 0.890533\n0.909393 0.075348 0.890503\n0.933838 0.076843 0.890472\n0.959961 0.078369 0.890381\n0.037781 0.059296 0.889008\n0.053680 0.060272 0.888947\n0.070801 0.061279 0.888947\n0.089508 0.062317 0.888916\n0.110046 0.063416 0.888947\n0.132812 0.064484 0.888916\n0.158203 0.065582 0.888885\n0.186554 0.066711 0.888855\n0.217896 0.067871 0.888794\n0.252075 0.069031 0.888794\n0.288910 0.070282 0.888763\n0.328156 0.071503 0.888733\n0.369415 0.072723 0.888672\n0.412354 0.074036 0.888702\n0.456512 0.075287 0.888672\n0.500824 0.076630 0.888611\n0.542664 0.077972 0.888580\n0.581757 0.079346 0.888519\n0.618073 0.080750 0.888458\n0.651703 0.082123 0.888397\n0.683014 0.083588 0.888397\n0.712372 0.085022 0.888367\n0.740082 0.086487 0.888306\n0.766388 0.087982 0.888275\n0.791504 0.089508 0.888245\n0.815796 0.091003 0.888153\n0.839478 0.092590 0.888092\n0.862793 0.094116 0.888062\n0.885986 0.095703 0.888000\n0.909576 0.097351 0.887939\n0.933960 0.098907 0.887878\n0.959961 0.100586 0.887848\n0.038910 0.080017 0.886475\n0.054871 0.081116 0.886475\n0.072083 0.082214 0.886475\n0.090851 0.083374 0.886444\n0.111542 0.084534 0.886414\n0.134399 0.085724 0.886353\n0.159912 0.086975 0.886322\n0.188477 0.088226 0.886322\n0.219940 0.089447 0.886261\n0.254272 0.090759 0.886230\n0.291229 0.092133 0.886169\n0.330414 0.093445 0.886139\n0.371735 0.094818 0.886078\n0.414703 0.096191 0.886078\n0.458801 0.097656 0.886017\n0.502899 0.099060 0.885956\n0.544525 0.100555 0.885895\n0.583405 0.102051 0.885834\n0.619507 0.103577 0.885803\n0.652985 0.105103 0.885742\n0.684113 0.106659 0.885681\n0.713318 0.108276 0.885620\n0.740814 0.109833 0.885590\n0.767029 0.111481 0.885498\n0.792084 0.113129 0.885437\n0.816254 0.114746 0.885406\n0.839844 0.116486 0.885284\n0.863068 0.118134 0.885223\n0.886261 0.119904 0.885162\n0.909729 0.121643 0.885101\n0.933990 0.123383 0.885010\n0.959961 0.125183 0.884888\n0.040039 0.102936 0.883789\n0.056061 0.104156 0.883759\n0.073395 0.105347 0.883698\n0.092285 0.106628 0.883636\n0.113068 0.107971 0.883575\n0.136108 0.109253 0.883575\n0.161804 0.110626 0.883514\n0.190491 0.112030 0.883453\n0.222076 0.113434 0.883392\n0.256531 0.114868 0.883362\n0.293549 0.116333 0.883301\n0.332825 0.117798 0.883240\n0.374146 0.119354 0.883209\n0.417023 0.120850 0.883148\n0.461151 0.122406 0.883057\n0.505035 0.124023 0.882965\n0.546387 0.125610 0.882935\n0.585052 0.127289 0.882843\n0.620941 0.128967 0.882782\n0.654205 0.130646 0.882690\n0.685181 0.132355 0.882660\n0.714264 0.134125 0.882538\n0.741669 0.135834 0.882477\n0.767731 0.137634 0.882416\n0.792664 0.139404 0.882324\n0.816772 0.141235 0.882233\n0.840240 0.143097 0.882141\n0.863403 0.144928 0.882080\n0.886475 0.146851 0.881927\n0.909851 0.148743 0.881836\n0.934082 0.150635 0.881744\n0.959961 0.152588 0.881653\n0.041321 0.128510 0.880676\n0.057404 0.129852 0.880615\n0.074799 0.131226 0.880585\n0.093811 0.132660 0.880524\n0.114685 0.134155 0.880463\n0.137878 0.135590 0.880402\n0.163696 0.137085 0.880341\n0.192535 0.138641 0.880280\n0.224274 0.140198 0.880188\n0.258820 0.141785 0.880127\n0.295898 0.143402 0.880096\n0.335236 0.145081 0.880005\n0.376556 0.146790 0.879883\n0.419464 0.148438 0.879791\n0.463470 0.150177 0.879761\n0.507172 0.151978 0.879639\n0.548309 0.153717 0.879578\n0.586731 0.155548 0.879456\n0.622406 0.157379 0.879395\n0.655487 0.159241 0.879272\n0.686279 0.161133 0.879181\n0.715179 0.163055 0.879120\n0.742432 0.164948 0.878998\n0.768402 0.166901 0.878906\n0.793274 0.168884 0.878754\n0.817261 0.170868 0.878693\n0.840698 0.172913 0.878540\n0.863739 0.174896 0.878448\n0.886749 0.176971 0.878326\n0.910065 0.179077 0.878204\n0.934174 0.181152 0.878082\n0.959961 0.183258 0.877960\n0.042542 0.157257 0.877197\n0.058716 0.158813 0.877136\n0.076202 0.160339 0.877075\n0.095337 0.161926 0.876984\n0.116364 0.163544 0.876892\n0.139679 0.165192 0.876831\n0.165680 0.166870 0.876740\n0.194702 0.168640 0.876617\n0.226562 0.170349 0.876587\n0.261230 0.172150 0.876465\n0.298340 0.173889 0.876343\n0.337708 0.175751 0.876251\n0.379059 0.177612 0.876190\n0.421936 0.179504 0.876068\n0.465851 0.181427 0.875946\n0.509308 0.183380 0.875854\n0.550262 0.185303 0.875763\n0.588440 0.187317 0.875641\n0.623840 0.189392 0.875519\n0.656738 0.191376 0.875458\n0.687378 0.193451 0.875305\n0.716095 0.195496 0.875153\n0.743256 0.197632 0.875031\n0.769104 0.199738 0.874939\n0.793854 0.201874 0.874786\n0.817749 0.204041 0.874664\n0.841064 0.206238 0.874512\n0.864044 0.208435 0.874390\n0.886963 0.210632 0.874268\n0.910217 0.212921 0.874115\n0.934296 0.215118 0.873962\n0.959961 0.217377 0.873840\n0.043854 0.189758 0.873199\n0.060120 0.191467 0.873108\n0.077698 0.193207 0.873016\n0.096924 0.194977 0.872925\n0.118103 0.196777 0.872864\n0.141541 0.198608 0.872742\n0.167725 0.200470 0.872620\n0.196869 0.202332 0.872559\n0.228882 0.204285 0.872406\n0.263611 0.206207 0.872284\n0.300842 0.208191 0.872223\n0.340240 0.210205 0.872070\n0.381561 0.212250 0.871948\n0.424408 0.214294 0.871826\n0.468231 0.216400 0.871735\n0.511505 0.218506 0.871582\n0.552185 0.220581 0.871460\n0.590088 0.222778 0.871368\n0.625366 0.224945 0.871216\n0.658020 0.227112 0.871033\n0.688446 0.229309 0.870911\n0.717010 0.231537 0.870819\n0.744080 0.233795 0.870636\n0.769806 0.236084 0.870483\n0.794434 0.238312 0.870331\n0.818237 0.240631 0.870178\n0.841492 0.242981 0.870056\n0.864380 0.245239 0.869904\n0.887207 0.247589 0.869751\n0.910400 0.250000 0.869598\n0.934357 0.252289 0.869446\n0.959961 0.254700 0.869293\n0.045227 0.226105 0.868744\n0.061554 0.228027 0.868652\n0.079224 0.229858 0.868561\n0.098541 0.231781 0.868439\n0.119873 0.233795 0.868286\n0.143463 0.235718 0.868225\n0.169861 0.237762 0.868042\n0.199127 0.239777 0.867950\n0.231262 0.241882 0.867859\n0.266083 0.243988 0.867706\n0.303375 0.246094 0.867554\n0.342834 0.248199 0.867432\n0.384155 0.250427 0.867279\n0.426941 0.252533 0.867157\n0.470703 0.254761 0.867035\n0.513702 0.257050 0.866913\n0.554138 0.259277 0.866730\n0.591827 0.261566 0.866577\n0.626831 0.263794 0.866425\n0.659271 0.266174 0.866302\n0.689606 0.268494 0.866119\n0.718018 0.270752 0.865967\n0.744904 0.273163 0.865784\n0.770508 0.275513 0.865631\n0.795013 0.277893 0.865509\n0.818756 0.280273 0.865356\n0.841858 0.282684 0.865204\n0.864655 0.285065 0.865051\n0.887451 0.287476 0.864899\n0.910553 0.289886 0.864685\n0.934448 0.292328 0.864532\n0.959961 0.294739 0.864380\n0.046600 0.266083 0.863861\n0.063019 0.268066 0.863708\n0.080811 0.270081 0.863586\n0.100220 0.272156 0.863464\n0.121674 0.274139 0.863312\n0.145416 0.276306 0.863190\n0.171936 0.278412 0.863098\n0.201416 0.280548 0.862915\n0.233704 0.282745 0.862793\n0.268646 0.284973 0.862640\n0.305969 0.287170 0.862518\n0.345490 0.289459 0.862366\n0.386749 0.291748 0.862213\n0.429565 0.294006 0.862091\n0.473175 0.296295 0.861908\n0.515961 0.298584 0.861755\n0.556091 0.300934 0.861603\n0.593567 0.303314 0.861481\n0.628265 0.305664 0.861298\n0.660522 0.308044 0.861115\n0.690704 0.310516 0.860931\n0.718933 0.312866 0.860779\n0.745728 0.315277 0.860657\n0.771179 0.317749 0.860504\n0.795624 0.320160 0.860321\n0.819214 0.322601 0.860168\n0.842285 0.325104 0.859955\n0.865021 0.327515 0.859802\n0.887726 0.329956 0.859650\n0.910706 0.332397 0.859467\n0.934509 0.334869 0.859314\n0.959961 0.337280 0.859161\n0.048035 0.309204 0.858490\n0.064575 0.311340 0.858368\n0.082397 0.313416 0.858215\n0.101959 0.315552 0.858093\n0.123505 0.317688 0.858002\n0.147461 0.319885 0.857819\n0.174164 0.322144 0.857666\n0.203766 0.324371 0.857483\n0.236176 0.326599 0.857391\n0.271210 0.328888 0.857239\n0.308624 0.331177 0.857086\n0.348083 0.333527 0.856964\n0.389435 0.335846 0.856781\n0.432098 0.338165 0.856628\n0.475677 0.340546 0.856445\n0.518158 0.342896 0.856323\n0.558075 0.345276 0.856171\n0.595245 0.347748 0.855957\n0.629761 0.350098 0.855804\n0.661835 0.352539 0.855652\n0.691803 0.354950 0.855499\n0.719910 0.357330 0.855347\n0.746552 0.359833 0.855164\n0.771881 0.362305 0.854950\n0.796173 0.364685 0.854828\n0.819702 0.367188 0.854645\n0.842651 0.369598 0.854492\n0.865295 0.372070 0.854309\n0.887939 0.374542 0.854156\n0.910889 0.376953 0.853973\n0.934601 0.379456 0.853821\n0.959961 0.381866 0.853668\n0.049530 0.355103 0.852814\n0.066071 0.357208 0.852692\n0.084045 0.359375 0.852570\n0.103760 0.361633 0.852386\n0.125488 0.363800 0.852264\n0.149597 0.366089 0.852081\n0.176422 0.368347 0.851959\n0.206146 0.370605 0.851807\n0.238678 0.372894 0.851654\n0.273804 0.375275 0.851532\n0.311218 0.377502 0.851349\n0.350800 0.379883 0.851196\n0.392029 0.382202 0.851013\n0.434753 0.384583 0.850891\n0.478149 0.386963 0.850739\n0.520416 0.389313 0.850555\n0.560028 0.391754 0.850403\n0.596954 0.394165 0.850220\n0.631256 0.396545 0.850067\n0.663147 0.398987 0.849915\n0.692902 0.401398 0.849762\n0.720856 0.403839 0.849548\n0.747375 0.406281 0.849426\n0.772583 0.408661 0.849274\n0.796783 0.411072 0.849091\n0.820221 0.413513 0.848938\n0.843079 0.415924 0.848755\n0.865662 0.418304 0.848602\n0.888184 0.420776 0.848450\n0.911011 0.423157 0.848297\n0.934723 0.425598 0.848114\n0.959961 0.427979 0.847961\n0.051025 0.403198 0.846863\n0.067688 0.405396 0.846710\n0.085754 0.407562 0.846527\n0.105591 0.409851 0.846405\n0.127411 0.412048 0.846283\n0.151703 0.414276 0.846130\n0.178711 0.416595 0.845978\n0.208618 0.418823 0.845856\n0.241241 0.421173 0.845673\n0.276489 0.423431 0.845520\n0.313934 0.425690 0.845367\n0.353455 0.428070 0.845245\n0.394745 0.430328 0.845123\n0.437347 0.432739 0.844910\n0.480652 0.435120 0.844757\n0.522644 0.437439 0.844574\n0.562012 0.439819 0.844452\n0.598694 0.442200 0.844299\n0.632751 0.444519 0.844147\n0.664429 0.446930 0.843964\n0.694000 0.449280 0.843842\n0.721802 0.451630 0.843689\n0.748138 0.454041 0.843536\n0.773224 0.456360 0.843384\n0.797363 0.458710 0.843201\n0.820648 0.461151 0.843018\n0.843445 0.463379 0.842926\n0.865936 0.465759 0.842743\n0.888428 0.468109 0.842590\n0.911194 0.470398 0.842438\n0.934814 0.472748 0.842255\n0.959961 0.475006 0.842102\n0.052582 0.453033 0.840637\n0.069275 0.455200 0.840515\n0.087494 0.457428 0.840363\n0.107452 0.459564 0.840240\n0.129395 0.461731 0.840118\n0.153870 0.463989 0.839996\n0.181030 0.466217 0.839844\n0.211090 0.468414 0.839661\n0.243835 0.470642 0.839539\n0.279114 0.472870 0.839417\n0.316650 0.475159 0.839294\n0.356232 0.477386 0.839111\n0.397430 0.479675 0.838959\n0.440033 0.481934 0.838806\n0.483154 0.484192 0.838684\n0.524872 0.486450 0.838562\n0.563904 0.488739 0.838409\n0.600372 0.491028 0.838226\n0.634186 0.493256 0.838104\n0.665680 0.495514 0.837952\n0.695068 0.497803 0.837799\n0.722748 0.500000 0.837708\n0.748932 0.502258 0.837524\n0.773895 0.504456 0.837402\n0.797913 0.506744 0.837219\n0.821167 0.508911 0.837128\n0.843872 0.511078 0.837006\n0.866241 0.513245 0.836884\n0.888672 0.515381 0.836731\n0.911346 0.517456 0.836609\n0.934875 0.519623 0.836456\n0.959961 0.521698 0.836334\n0.054169 0.503571 0.834381\n0.070984 0.505585 0.834259\n0.089264 0.507660 0.834137\n0.109375 0.509766 0.833984\n0.131439 0.511810 0.833923\n0.156067 0.513855 0.833771\n0.183441 0.515991 0.833649\n0.213562 0.518036 0.833557\n0.246460 0.520081 0.833435\n0.281799 0.522156 0.833282\n0.319397 0.524261 0.833160\n0.358978 0.526306 0.833038\n0.400146 0.528320 0.832947\n0.442688 0.530396 0.832855\n0.485718 0.532501 0.832733\n0.527069 0.534485 0.832581\n0.565918 0.536560 0.832458\n0.602081 0.538574 0.832367\n0.635651 0.540558 0.832245\n0.666931 0.542572 0.832184\n0.696136 0.544525 0.832062\n0.723663 0.546539 0.831909\n0.749725 0.548523 0.831787\n0.774628 0.550385 0.831757\n0.798523 0.552399 0.831635\n0.821625 0.554321 0.831543\n0.844269 0.556213 0.831421\n0.866577 0.558044 0.831329\n0.888885 0.559967 0.831238\n0.911530 0.561798 0.831116\n0.934967 0.563660 0.831024\n0.959961 0.565430 0.830994\n0.055786 0.551941 0.828400\n0.072693 0.553711 0.828278\n0.091095 0.555573 0.828217\n0.111267 0.557404 0.828125\n0.133545 0.559204 0.828033\n0.158295 0.561066 0.827972\n0.185852 0.562897 0.827850\n0.216125 0.564728 0.827759\n0.249146 0.566528 0.827667\n0.284454 0.568329 0.827576\n0.322144 0.570129 0.827545\n0.361725 0.571960 0.827454\n0.402863 0.573792 0.827332\n0.445282 0.575592 0.827240\n0.488190 0.577423 0.827148\n0.529297 0.579132 0.827087\n0.567810 0.580902 0.827026\n0.603760 0.582733 0.826965\n0.637146 0.584442 0.826874\n0.668152 0.586182 0.826752\n0.697266 0.587952 0.826691\n0.724579 0.589630 0.826660\n0.750519 0.591400 0.826569\n0.775269 0.593048 0.826477\n0.799042 0.594727 0.826416\n0.822113 0.596375 0.826324\n0.844635 0.598022 0.826294\n0.866852 0.599609 0.826202\n0.889099 0.601288 0.826141\n0.911713 0.602875 0.826050\n0.935089 0.604431 0.826019\n0.959961 0.605988 0.825928\n0.057404 0.596619 0.822906\n0.074371 0.598175 0.822784\n0.092926 0.599823 0.822723\n0.113251 0.601440 0.822693\n0.135681 0.602966 0.822662\n0.160553 0.604614 0.822571\n0.188263 0.606201 0.822510\n0.218689 0.607758 0.822449\n0.251770 0.609406 0.822418\n0.287231 0.610962 0.822357\n0.324890 0.612518 0.822296\n0.364471 0.614136 0.822235\n0.405609 0.615631 0.822205\n0.447937 0.617218 0.822144\n0.490601 0.618774 0.822083\n0.531403 0.620300 0.822083\n0.569763 0.621857 0.821960\n0.605438 0.623383 0.821930\n0.638550 0.624908 0.821869\n0.669434 0.626404 0.821869\n0.698273 0.627869 0.821838\n0.725494 0.629364 0.821747\n0.751312 0.630829 0.821716\n0.775940 0.632263 0.821655\n0.799622 0.633698 0.821655\n0.822571 0.635162 0.821594\n0.845001 0.636536 0.821564\n0.867218 0.637909 0.821503\n0.889343 0.639313 0.821472\n0.911835 0.640656 0.821411\n0.935150 0.641998 0.821381\n0.959961 0.643280 0.821381\n0.059021 0.637726 0.817810\n0.076141 0.639069 0.817810\n0.094757 0.640472 0.817780\n0.115234 0.641846 0.817719\n0.137787 0.643219 0.817688\n0.162872 0.644623 0.817657\n0.190674 0.645935 0.817657\n0.221283 0.647339 0.817627\n0.254486 0.648743 0.817596\n0.289978 0.650024 0.817566\n0.327698 0.651428 0.817566\n0.367249 0.652740 0.817535\n0.408325 0.654114 0.817474\n0.450592 0.655426 0.817505\n0.493073 0.656769 0.817444\n0.533600 0.658051 0.817413\n0.571655 0.659393 0.817413\n0.607086 0.660675 0.817383\n0.639954 0.661987 0.817413\n0.670593 0.663269 0.817352\n0.699310 0.664490 0.817322\n0.726410 0.665771 0.817291\n0.752106 0.667023 0.817322\n0.776611 0.668243 0.817291\n0.800171 0.669464 0.817291\n0.822998 0.670715 0.817230\n0.845367 0.671875 0.817261\n0.867462 0.673035 0.817230\n0.889557 0.674194 0.817200\n0.911987 0.675354 0.817169\n0.935211 0.676483 0.817200\n0.959961 0.677582 0.817169\n0.060730 0.675323 0.813263\n0.077911 0.676483 0.813232\n0.096680 0.677673 0.813202\n0.117279 0.678864 0.813202\n0.139954 0.680023 0.813232\n0.165192 0.681213 0.813232\n0.193207 0.682373 0.813232\n0.223877 0.683533 0.813232\n0.257172 0.684723 0.813232\n0.292725 0.685883 0.813232\n0.330444 0.687042 0.813202\n0.369965 0.688202 0.813232\n0.411011 0.689301 0.813202\n0.453186 0.690491 0.813202\n0.495483 0.691620 0.813171\n0.535706 0.692749 0.813232\n0.573517 0.693848 0.813263\n0.608673 0.694946 0.813232\n0.641388 0.696014 0.813232\n0.671875 0.697144 0.813232\n0.700348 0.698181 0.813263\n0.727295 0.699249 0.813263\n0.752808 0.700348 0.813263\n0.777222 0.701385 0.813263\n0.800720 0.702423 0.813263\n0.823486 0.703461 0.813263\n0.845734 0.704468 0.813263\n0.867767 0.705444 0.813263\n0.889771 0.706421 0.813263\n0.912109 0.707428 0.813263\n0.935303 0.708374 0.813263\n0.959961 0.709290 0.813263\n0.062439 0.709869 0.809021\n0.079712 0.710876 0.809052\n0.098572 0.711884 0.809082\n0.119293 0.712952 0.809113\n0.142151 0.713898 0.809143\n0.167542 0.714966 0.809143\n0.195679 0.715912 0.809143\n0.226501 0.716949 0.809174\n0.259857 0.717957 0.809174\n0.295502 0.718933 0.809235\n0.333252 0.719910 0.809235\n0.372803 0.720917 0.809265\n0.413757 0.721893 0.809265\n0.455811 0.722839 0.809326\n0.497894 0.723785 0.809387\n0.537903 0.724762 0.809326\n0.575378 0.725708 0.809357\n0.610291 0.726654 0.809387\n0.642761 0.727600 0.809418\n0.673004 0.728516 0.809448\n0.701385 0.729401 0.809479\n0.728149 0.730347 0.809509\n0.753601 0.731232 0.809540\n0.777863 0.732086 0.809509\n0.801208 0.733032 0.809540\n0.823883 0.733856 0.809570\n0.846100 0.734711 0.809601\n0.868042 0.735565 0.809601\n0.889954 0.736359 0.809631\n0.912262 0.737213 0.809631\n0.935364 0.738007 0.809692\n0.959961 0.738800 0.809723\n0.064148 0.741913 0.805176\n0.081543 0.742767 0.805237\n0.100525 0.743652 0.805267\n0.121307 0.744476 0.805298\n0.144348 0.745361 0.805328\n0.169891 0.746246 0.805359\n0.198181 0.747070 0.805389\n0.229156 0.747955 0.805481\n0.262543 0.748810 0.805481\n0.298218 0.749634 0.805511\n0.335999 0.750519 0.805542\n0.375519 0.751312 0.805603\n0.416412 0.752136 0.805634\n0.458405 0.752960 0.805664\n0.500214 0.753784 0.805725\n0.539917 0.754608 0.805756\n0.577209 0.755432 0.805817\n0.611908 0.756195 0.805878\n0.644135 0.757019 0.805878\n0.674164 0.757812 0.805939\n0.702393 0.758545 0.806000\n0.729034 0.759338 0.805969\n0.754303 0.760101 0.806030\n0.778473 0.760834 0.806061\n0.801727 0.761566 0.806122\n0.824310 0.762268 0.806152\n0.846405 0.763000 0.806183\n0.868286 0.763702 0.806213\n0.890198 0.764435 0.806274\n0.912384 0.765137 0.806305\n0.935425 0.765778 0.806335\n0.959961 0.766479 0.806335\n0.065887 0.771820 0.801575\n0.083374 0.772583 0.801636\n0.102448 0.773285 0.801697\n0.123413 0.774048 0.801758\n0.146545 0.774750 0.801819\n0.172302 0.775482 0.801880\n0.200714 0.776184 0.801941\n0.231720 0.776947 0.801941\n0.265228 0.777679 0.802002\n0.300995 0.778412 0.802094\n0.338745 0.779114 0.802124\n0.378265 0.779816 0.802185\n0.419067 0.780548 0.802246\n0.460938 0.781219 0.802307\n0.502563 0.781891 0.802368\n0.541962 0.782623 0.802399\n0.578949 0.783295 0.802460\n0.613434 0.783936 0.802521\n0.645477 0.784607 0.802612\n0.675323 0.785278 0.802612\n0.703369 0.785919 0.802643\n0.729858 0.786560 0.802704\n0.755005 0.787231 0.802795\n0.779083 0.787842 0.802826\n0.802277 0.788483 0.802856\n0.824738 0.789062 0.802917\n0.846802 0.789703 0.802979\n0.868561 0.790283 0.803040\n0.890381 0.790833 0.803040\n0.912537 0.791412 0.803101\n0.935486 0.791992 0.803162\n0.959961 0.792542 0.803192\n0.067627 0.799927 0.798248\n0.085205 0.800598 0.798309\n0.104401 0.801208 0.798370\n0.125488 0.801819 0.798431\n0.148804 0.802460 0.798523\n0.174652 0.803070 0.798553\n0.203156 0.803711 0.798615\n0.234406 0.804291 0.798737\n0.267975 0.804932 0.798767\n0.303680 0.805481 0.798859\n0.341461 0.806122 0.798920\n0.380890 0.806671 0.799011\n0.421722 0.807312 0.799072\n0.463470 0.807892 0.799133\n0.504822 0.808472 0.799194\n0.544006 0.809052 0.799255\n0.580688 0.809601 0.799347\n0.614899 0.810181 0.799377\n0.646759 0.810730 0.799438\n0.676422 0.811310 0.799469\n0.704315 0.811859 0.799591\n0.730652 0.812378 0.799652\n0.755707 0.812866 0.799683\n0.779633 0.813477 0.799744\n0.802734 0.813965 0.799835\n0.825134 0.814453 0.799896\n0.847076 0.814972 0.799896\n0.868866 0.815460 0.799957\n0.890564 0.815948 0.800049\n0.912659 0.816406 0.800079\n0.935547 0.816895 0.800140\n0.959961 0.817352 0.800171\n0.069366 0.826660 0.795044\n0.087067 0.827179 0.795166\n0.106384 0.827698 0.795227\n0.127563 0.828247 0.795288\n0.151031 0.828766 0.795380\n0.177032 0.829254 0.795471\n0.205750 0.829803 0.795532\n0.236969 0.830292 0.795624\n0.270630 0.830811 0.795715\n0.306427 0.831299 0.795807\n0.344208 0.831848 0.795898\n0.383575 0.832306 0.795959\n0.424286 0.832794 0.796051\n0.465912 0.833313 0.796082\n0.507080 0.833771 0.796173\n0.545990 0.834259 0.796234\n0.582428 0.834717 0.796295\n0.616425 0.835205 0.796356\n0.647980 0.835663 0.796478\n0.677521 0.836121 0.796539\n0.705231 0.836578 0.796631\n0.731445 0.837036 0.796692\n0.756378 0.837463 0.796753\n0.780243 0.837891 0.796814\n0.803192 0.838318 0.796875\n0.825531 0.838745 0.796936\n0.847443 0.839172 0.796997\n0.869049 0.839569 0.797089\n0.890778 0.839935 0.797150\n0.912781 0.840332 0.797211\n0.935577 0.840698 0.797241\n0.959961 0.841095 0.797302\n0.071167 0.852203 0.792053\n0.088928 0.852631 0.792084\n0.108337 0.853088 0.792175\n0.129669 0.853516 0.792297\n0.153290 0.853943 0.792419\n0.179443 0.854401 0.792511\n0.208221 0.854797 0.792603\n0.239624 0.855194 0.792694\n0.273254 0.855652 0.792755\n0.309082 0.856049 0.792877\n0.346863 0.856506 0.792938\n0.386200 0.856873 0.793030\n0.426910 0.857269 0.793121\n0.468353 0.857727 0.793213\n0.509277 0.858063 0.793274\n0.547913 0.858521 0.793335\n0.584137 0.858887 0.793488\n0.617859 0.859253 0.793518\n0.649261 0.859650 0.793610\n0.678619 0.860016 0.793671\n0.706146 0.860382 0.793762\n0.732239 0.860779 0.793854\n0.757019 0.861115 0.793915\n0.780792 0.861450 0.794006\n0.803680 0.861816 0.794067\n0.825928 0.862152 0.794159\n0.847717 0.862457 0.794220\n0.869324 0.862823 0.794281\n0.890930 0.863129 0.794342\n0.912903 0.863434 0.794403\n0.935699 0.863708 0.794495\n0.959961 0.864044 0.794556\n0.072906 0.876923 0.789093\n0.090790 0.877289 0.789215\n0.110291 0.877655 0.789337\n0.131744 0.877991 0.789429\n0.155487 0.878357 0.789551\n0.181824 0.878662 0.789642\n0.210724 0.879028 0.789734\n0.242157 0.879364 0.789825\n0.275879 0.879700 0.789917\n0.311768 0.880035 0.790039\n0.349487 0.880402 0.790131\n0.388824 0.880707 0.790222\n0.429413 0.881042 0.790283\n0.470764 0.881378 0.790375\n0.511414 0.881683 0.790527\n0.549774 0.881989 0.790558\n0.585754 0.882294 0.790649\n0.619293 0.882629 0.790741\n0.650421 0.882935 0.790833\n0.679596 0.883209 0.790924\n0.707031 0.883514 0.791016\n0.732971 0.883820 0.791077\n0.757660 0.884094 0.791168\n0.781311 0.884369 0.791260\n0.804138 0.884674 0.791351\n0.826324 0.884918 0.791412\n0.848022 0.885162 0.791473\n0.869568 0.885437 0.791565\n0.891083 0.885681 0.791656\n0.913025 0.885956 0.791687\n0.935730 0.886169 0.791748\n0.959961 0.886414 0.791809\n0.074707 0.901093 0.786255\n0.092651 0.901337 0.786407\n0.112305 0.901642 0.786530\n0.133850 0.901917 0.786591\n0.157715 0.902222 0.786713\n0.184143 0.902466 0.786804\n0.213226 0.902740 0.786926\n0.244720 0.902985 0.787018\n0.278473 0.903259 0.787170\n0.314362 0.903564 0.787231\n0.352112 0.903809 0.787323\n0.391327 0.904083 0.787415\n0.431854 0.904327 0.787567\n0.473053 0.904602 0.787628\n0.513489 0.904816 0.787720\n0.551605 0.905090 0.787811\n0.587341 0.905304 0.787933\n0.620575 0.905548 0.788025\n0.651581 0.905792 0.788116\n0.680634 0.906006 0.788177\n0.707886 0.906250 0.788300\n0.733704 0.906433 0.788391\n0.758301 0.906677 0.788483\n0.781799 0.906891 0.788544\n0.804565 0.907104 0.788605\n0.826630 0.907318 0.788696\n0.848328 0.907532 0.788818\n0.869781 0.907684 0.788879\n0.891266 0.907928 0.788940\n0.913147 0.908112 0.789001\n0.935822 0.908264 0.789093\n0.959961 0.908447 0.789185\n0.076447 0.925018 0.783478\n0.094543 0.925232 0.783569\n0.114227 0.925415 0.783691\n0.135925 0.925659 0.783783\n0.159912 0.925873 0.783905\n0.186523 0.926025 0.784027\n0.215637 0.926208 0.784180\n0.247223 0.926453 0.784271\n0.281036 0.926666 0.784332\n0.316925 0.926880 0.784454\n0.354614 0.927032 0.784637\n0.393829 0.927216 0.784698\n0.434265 0.927429 0.784790\n0.475342 0.927612 0.784882\n0.515503 0.927795 0.785004\n0.553406 0.927979 0.785126\n0.588837 0.928131 0.785187\n0.621918 0.928314 0.785278\n0.652710 0.928497 0.785400\n0.681549 0.928680 0.785492\n0.708679 0.928833 0.785614\n0.734406 0.929016 0.785675\n0.758850 0.929169 0.785736\n0.782349 0.929352 0.785858\n0.804993 0.929474 0.785950\n0.826996 0.929596 0.786041\n0.848572 0.929779 0.786102\n0.869965 0.929901 0.786163\n0.891418 0.930084 0.786285\n0.913269 0.930206 0.786346\n0.935852 0.930328 0.786407\n0.959961 0.930420 0.786469\n0.078217 0.949066 0.780640\n0.096344 0.949219 0.780731\n0.116211 0.949371 0.780853\n0.138000 0.949554 0.780975\n0.162140 0.949646 0.781128\n0.188843 0.949799 0.781250\n0.218109 0.949921 0.781311\n0.249756 0.950073 0.781433\n0.283569 0.950195 0.781616\n0.319489 0.950317 0.781677\n0.357147 0.950439 0.781799\n0.396240 0.950592 0.781891\n0.436646 0.950684 0.782043\n0.477539 0.950836 0.782135\n0.517517 0.950958 0.782227\n0.555084 0.951080 0.782318\n0.590271 0.951202 0.782471\n0.623169 0.951324 0.782532\n0.653809 0.951447 0.782684\n0.682495 0.951569 0.782745\n0.709442 0.951691 0.782837\n0.735046 0.951782 0.782928\n0.759399 0.951874 0.783051\n0.782806 0.951965 0.783112\n0.805359 0.952057 0.783203\n0.827301 0.952148 0.783295\n0.848846 0.952271 0.783386\n0.870148 0.952362 0.783447\n0.891541 0.952423 0.783508\n0.913361 0.952545 0.783600\n0.935883 0.952606 0.783691\n0.959961 0.952667 0.783722\n0.079987 0.973846 0.777679\n0.098206 0.973938 0.777802\n0.118164 0.973969 0.777954\n0.140106 0.974091 0.778076\n0.164337 0.974152 0.778168\n0.191162 0.974182 0.778320\n0.220490 0.974304 0.778442\n0.252167 0.974335 0.778564\n0.286041 0.974396 0.778687\n0.321960 0.974457 0.778809\n0.359589 0.974518 0.778931\n0.398651 0.974609 0.779053\n0.438904 0.974670 0.779144\n0.479675 0.974731 0.779266\n0.519409 0.974762 0.779358\n0.556732 0.974854 0.779480\n0.591766 0.974915 0.779602\n0.624390 0.974976 0.779724\n0.654877 0.975037 0.779785\n0.683350 0.975067 0.779907\n0.710236 0.975128 0.779999\n0.735718 0.975189 0.780121\n0.759979 0.975220 0.780182\n0.783264 0.975281 0.780273\n0.805725 0.975311 0.780396\n0.827606 0.975403 0.780457\n0.849091 0.975403 0.780548\n0.870361 0.975464 0.780609\n0.891693 0.975494 0.780670\n0.913452 0.975555 0.780762\n0.935944 0.975586 0.780884\n0.959961 0.975647 0.780914\n0.081696 1.000000 0.774567\n0.100006 1.000000 0.774719\n0.120056 1.000000 0.774811\n0.142120 1.000000 0.774963\n0.166504 1.000000 0.775116\n0.193420 1.000000 0.775238\n0.222809 1.000000 0.775330\n0.254578 1.000000 0.775482\n0.288483 1.000000 0.775604\n0.324371 1.000000 0.775757\n0.361938 1.000000 0.775848\n0.400970 1.000000 0.775970\n0.441132 1.000000 0.776093\n0.481812 1.000000 0.776215\n0.521240 1.000000 0.776337\n0.558289 1.000000 0.776459\n0.593140 1.000000 0.776550\n0.625549 1.000000 0.776672\n0.655853 1.000000 0.776764\n0.684204 1.000000 0.776855\n0.710907 1.000000 0.776978\n0.736328 1.000000 0.777069\n0.760468 1.000000 0.777191\n0.783661 1.000000 0.777252\n0.806061 1.000000 0.777344\n0.827881 1.000000 0.777435\n0.849304 1.000000 0.777496\n0.870514 1.000000 0.777588\n0.891846 1.000000 0.777710\n0.913513 1.000000 0.777740\n0.936005 1.000000 0.777802\n0.959961 1.000000 0.777924\n0.034943 0.006409 0.920044\n0.050659 0.007172 0.920013\n0.067566 0.007965 0.919983\n0.085968 0.008820 0.919922\n0.106201 0.009644 0.919891\n0.128601 0.010498 0.919861\n0.153595 0.011383 0.919861\n0.181458 0.012299 0.919800\n0.212494 0.013184 0.919800\n0.246368 0.014191 0.919739\n0.282898 0.015137 0.919708\n0.321991 0.016144 0.919678\n0.363159 0.017151 0.919647\n0.406158 0.018158 0.919586\n0.450470 0.019226 0.919525\n0.495056 0.020294 0.919495\n0.537567 0.021362 0.919434\n0.577301 0.022522 0.919403\n0.614197 0.023651 0.919342\n0.648346 0.024780 0.919342\n0.680115 0.025940 0.919281\n0.709839 0.027130 0.919220\n0.737885 0.028351 0.919128\n0.764496 0.029541 0.919067\n0.789917 0.030792 0.919067\n0.814484 0.032043 0.919006\n0.838379 0.033295 0.918915\n0.861877 0.034576 0.918915\n0.885345 0.035858 0.918823\n0.909119 0.037201 0.918793\n0.933685 0.038513 0.918701\n0.959961 0.039886 0.918610\n0.035919 0.023041 0.918030\n0.051636 0.023834 0.917999\n0.068665 0.024689 0.917938\n0.087158 0.025574 0.917908\n0.107483 0.026489 0.917847\n0.130005 0.027435 0.917816\n0.155151 0.028381 0.917816\n0.183228 0.029327 0.917755\n0.214325 0.030304 0.917725\n0.248383 0.031342 0.917725\n0.285004 0.032349 0.917664\n0.324097 0.033417 0.917603\n0.365326 0.034515 0.917542\n0.408295 0.035583 0.917480\n0.452576 0.036713 0.917450\n0.497101 0.037842 0.917419\n0.539398 0.039032 0.917358\n0.578857 0.040222 0.917328\n0.615570 0.041382 0.917267\n0.649536 0.042603 0.917206\n0.681152 0.043854 0.917114\n0.710724 0.045105 0.917053\n0.738617 0.046387 0.917053\n0.765106 0.047668 0.916962\n0.790497 0.048950 0.916901\n0.814941 0.050323 0.916840\n0.838745 0.051636 0.916748\n0.862244 0.052979 0.916748\n0.885559 0.054413 0.916626\n0.909271 0.055786 0.916565\n0.933746 0.057190 0.916504\n0.959961 0.058594 0.916443\n0.036926 0.040680 0.915863\n0.052765 0.041565 0.915833\n0.069824 0.042480 0.915771\n0.088440 0.043427 0.915741\n0.108887 0.044403 0.915741\n0.131531 0.045410 0.915680\n0.156799 0.046417 0.915619\n0.185028 0.047485 0.915619\n0.216278 0.048553 0.915527\n0.250366 0.049652 0.915497\n0.287170 0.050751 0.915436\n0.326294 0.051910 0.915344\n0.367523 0.053070 0.915314\n0.410492 0.054260 0.915283\n0.454742 0.055450 0.915222\n0.499054 0.056671 0.915192\n0.541168 0.057922 0.915100\n0.580444 0.059204 0.915009\n0.616943 0.060425 0.914948\n0.650757 0.061768 0.914886\n0.682190 0.063110 0.914856\n0.711639 0.064484 0.914795\n0.739410 0.065826 0.914703\n0.765778 0.067169 0.914642\n0.791046 0.068604 0.914551\n0.815430 0.070038 0.914520\n0.839142 0.071472 0.914429\n0.862488 0.072937 0.914337\n0.885803 0.074432 0.914246\n0.909424 0.075867 0.914185\n0.933868 0.077393 0.914124\n0.959961 0.078949 0.914001\n0.038025 0.059662 0.913544\n0.053864 0.060608 0.913513\n0.071014 0.061646 0.913513\n0.089722 0.062714 0.913422\n0.110291 0.063751 0.913391\n0.133118 0.064880 0.913361\n0.158508 0.066010 0.913269\n0.186920 0.067108 0.913208\n0.218292 0.068298 0.913147\n0.252502 0.069489 0.913055\n0.289368 0.070679 0.913025\n0.328522 0.071930 0.912994\n0.369812 0.073181 0.912933\n0.412750 0.074493 0.912872\n0.457001 0.075806 0.912781\n0.501160 0.077118 0.912689\n0.543030 0.078461 0.912598\n0.582092 0.079895 0.912537\n0.618378 0.081238 0.912506\n0.651947 0.082672 0.912415\n0.683228 0.084137 0.912323\n0.712524 0.085541 0.912262\n0.740204 0.087036 0.912170\n0.766479 0.088501 0.912048\n0.791626 0.090027 0.912018\n0.815887 0.091614 0.911896\n0.839539 0.093109 0.911804\n0.862854 0.094727 0.911743\n0.886017 0.096313 0.911652\n0.909607 0.097900 0.911530\n0.933960 0.099548 0.911407\n0.959961 0.101227 0.911316\n0.039124 0.080444 0.911072\n0.055084 0.081512 0.910980\n0.072296 0.082642 0.910919\n0.091095 0.083801 0.910889\n0.111786 0.084961 0.910797\n0.134735 0.086151 0.910736\n0.160278 0.087402 0.910645\n0.188843 0.088654 0.910583\n0.220367 0.089935 0.910522\n0.254700 0.091248 0.910492\n0.291626 0.092590 0.910370\n0.330872 0.093964 0.910278\n0.372131 0.095337 0.910217\n0.415161 0.096741 0.910126\n0.459229 0.098175 0.910034\n0.503265 0.099609 0.909943\n0.544891 0.101105 0.909882\n0.583679 0.102600 0.909821\n0.619781 0.104126 0.909729\n0.653168 0.105652 0.909637\n0.684296 0.107208 0.909546\n0.713470 0.108826 0.909424\n0.740967 0.110443 0.909363\n0.767151 0.112061 0.909241\n0.792206 0.113739 0.909119\n0.816376 0.115417 0.909058\n0.839935 0.117065 0.908966\n0.863129 0.118835 0.908813\n0.886292 0.120544 0.908691\n0.909760 0.122284 0.908600\n0.934021 0.124054 0.908447\n0.959961 0.125824 0.908386\n0.040314 0.103394 0.908234\n0.056335 0.104584 0.908203\n0.073639 0.105804 0.908112\n0.092560 0.107117 0.908020\n0.113373 0.108459 0.907898\n0.136444 0.109772 0.907837\n0.162140 0.111145 0.907776\n0.190857 0.112518 0.907684\n0.222504 0.113953 0.907593\n0.256958 0.115356 0.907501\n0.293945 0.116882 0.907440\n0.333282 0.118378 0.907318\n0.374603 0.119873 0.907227\n0.417480 0.121460 0.907104\n0.461548 0.123047 0.907013\n0.505371 0.124573 0.906952\n0.546753 0.126251 0.906830\n0.585388 0.127930 0.906769\n0.621216 0.129547 0.906647\n0.654449 0.131256 0.906494\n0.685364 0.132965 0.906403\n0.714447 0.134705 0.906311\n0.741791 0.136505 0.906158\n0.767853 0.138275 0.906067\n0.792786 0.140076 0.905975\n0.816864 0.141907 0.905823\n0.840332 0.143738 0.905670\n0.863464 0.145630 0.905548\n0.886536 0.147522 0.905396\n0.909882 0.149414 0.905304\n0.934113 0.151337 0.905182\n0.959961 0.153259 0.905029\n0.041504 0.128998 0.905090\n0.057617 0.130341 0.904999\n0.075043 0.131775 0.904877\n0.094055 0.133209 0.904785\n0.114990 0.134613 0.904724\n0.138214 0.136139 0.904633\n0.164093 0.137665 0.904510\n0.192932 0.139191 0.904419\n0.224762 0.140778 0.904327\n0.259277 0.142395 0.904205\n0.296356 0.144043 0.904083\n0.335754 0.145691 0.903961\n0.376984 0.147339 0.903870\n0.419922 0.149078 0.903778\n0.463898 0.150818 0.903625\n0.507568 0.152618 0.903534\n0.548706 0.154388 0.903412\n0.587036 0.156189 0.903259\n0.622681 0.158051 0.903137\n0.655731 0.159912 0.903015\n0.686493 0.161804 0.902863\n0.715332 0.163727 0.902740\n0.742584 0.165680 0.902618\n0.768555 0.167603 0.902496\n0.793396 0.169586 0.902313\n0.817352 0.171661 0.902161\n0.840759 0.173645 0.902008\n0.863800 0.175690 0.901886\n0.886749 0.177704 0.901764\n0.910095 0.179810 0.901581\n0.934174 0.181946 0.901428\n0.959961 0.184021 0.901245\n0.042786 0.157806 0.901489\n0.058960 0.159363 0.901398\n0.076477 0.160950 0.901276\n0.095612 0.162537 0.901184\n0.116699 0.164154 0.901062\n0.140045 0.165833 0.900940\n0.166046 0.167480 0.900848\n0.195099 0.169250 0.900726\n0.226990 0.171051 0.900574\n0.261658 0.172760 0.900452\n0.298828 0.174591 0.900330\n0.338226 0.176453 0.900208\n0.379517 0.178314 0.900055\n0.422363 0.180206 0.899933\n0.466339 0.182159 0.899811\n0.509705 0.184082 0.899658\n0.550598 0.186066 0.899506\n0.588715 0.188019 0.899353\n0.624115 0.190033 0.899200\n0.656982 0.192139 0.899048\n0.687561 0.194214 0.898895\n0.716309 0.196289 0.898773\n0.743439 0.198395 0.898590\n0.769226 0.200500 0.898438\n0.793945 0.202698 0.898224\n0.817841 0.204895 0.898102\n0.841125 0.207031 0.897949\n0.864105 0.209290 0.897736\n0.887024 0.211426 0.897552\n0.910248 0.213684 0.897400\n0.934296 0.215973 0.897217\n0.959961 0.218170 0.897034\n0.044159 0.190399 0.897461\n0.060364 0.192108 0.897339\n0.077942 0.193878 0.897217\n0.097198 0.195618 0.897064\n0.118378 0.197449 0.896973\n0.141907 0.199310 0.896820\n0.168091 0.201141 0.896667\n0.197296 0.203064 0.896515\n0.229370 0.204987 0.896393\n0.264038 0.206940 0.896240\n0.301331 0.208923 0.896088\n0.340729 0.210968 0.895935\n0.382050 0.213013 0.895782\n0.424896 0.215057 0.895630\n0.468658 0.217133 0.895477\n0.511932 0.219238 0.895294\n0.552551 0.221436 0.895142\n0.590393 0.223541 0.894989\n0.625610 0.225708 0.894806\n0.658203 0.227936 0.894653\n0.688660 0.230133 0.894470\n0.717255 0.232361 0.894287\n0.744232 0.234650 0.894073\n0.769897 0.236908 0.893951\n0.794525 0.239197 0.893768\n0.818329 0.241425 0.893555\n0.841553 0.243805 0.893341\n0.864441 0.246155 0.893158\n0.887238 0.248413 0.893005\n0.910431 0.250793 0.892822\n0.934387 0.253174 0.892609\n0.959961 0.255524 0.892395\n0.045471 0.226807 0.892944\n0.061829 0.228699 0.892792\n0.079498 0.230560 0.892670\n0.098846 0.232513 0.892487\n0.120209 0.234467 0.892334\n0.143829 0.236511 0.892151\n0.170197 0.238495 0.892029\n0.199524 0.240540 0.891876\n0.231720 0.242676 0.891693\n0.266571 0.244720 0.891541\n0.303894 0.246857 0.891357\n0.343323 0.249023 0.891205\n0.384613 0.251190 0.891052\n0.427460 0.253418 0.890839\n0.471161 0.255615 0.890686\n0.514130 0.257843 0.890533\n0.554504 0.260101 0.890350\n0.592133 0.262329 0.890167\n0.627106 0.264679 0.889984\n0.659546 0.266998 0.889801\n0.689789 0.269318 0.889587\n0.718170 0.271667 0.889435\n0.745026 0.274048 0.889221\n0.770630 0.276398 0.889038\n0.795135 0.278778 0.888824\n0.818817 0.281128 0.888641\n0.841919 0.283569 0.888428\n0.864777 0.285980 0.888214\n0.887482 0.288361 0.888062\n0.910583 0.290802 0.887817\n0.934479 0.293274 0.887665\n0.959961 0.295654 0.887451\n0.046875 0.266754 0.887970\n0.063293 0.268799 0.887787\n0.081085 0.270844 0.887604\n0.100555 0.272888 0.887451\n0.122009 0.274963 0.887299\n0.145874 0.277130 0.887146\n0.172333 0.279205 0.886963\n0.201874 0.281372 0.886780\n0.234192 0.283600 0.886597\n0.269073 0.285767 0.886414\n0.306458 0.288055 0.886261\n0.345917 0.290253 0.886078\n0.387268 0.292511 0.885895\n0.430054 0.294861 0.885712\n0.473602 0.297150 0.885529\n0.516327 0.299469 0.885315\n0.556458 0.301880 0.885132\n0.593842 0.304169 0.884949\n0.628571 0.306580 0.884735\n0.660828 0.308990 0.884583\n0.690887 0.311371 0.884369\n0.719116 0.313782 0.884186\n0.745880 0.316223 0.883942\n0.771301 0.318634 0.883728\n0.795715 0.321045 0.883575\n0.819305 0.323456 0.883331\n0.842346 0.325928 0.883179\n0.865051 0.328400 0.882935\n0.887756 0.330811 0.882782\n0.910736 0.333313 0.882538\n0.934540 0.335754 0.882324\n0.959961 0.338196 0.882111\n0.048309 0.309937 0.882538\n0.064819 0.312042 0.882355\n0.082703 0.314209 0.882172\n0.102264 0.316315 0.882050\n0.123901 0.318512 0.881836\n0.147858 0.320740 0.881683\n0.174561 0.322937 0.881500\n0.204224 0.325195 0.881287\n0.236694 0.327484 0.881134\n0.271667 0.329712 0.880951\n0.309082 0.332031 0.880768\n0.348602 0.334320 0.880554\n0.389893 0.336670 0.880402\n0.432617 0.339050 0.880188\n0.476074 0.341400 0.879974\n0.518555 0.343750 0.879822\n0.558441 0.346191 0.879608\n0.595551 0.348572 0.879425\n0.630066 0.350983 0.879211\n0.662079 0.353455 0.879028\n0.691986 0.355804 0.878815\n0.720093 0.358307 0.878571\n0.746674 0.360687 0.878418\n0.771973 0.363129 0.878204\n0.796295 0.365662 0.878021\n0.819824 0.368042 0.877808\n0.842712 0.370514 0.877625\n0.865356 0.372955 0.877411\n0.887970 0.375427 0.877167\n0.910889 0.377869 0.876953\n0.934662 0.380371 0.876740\n0.959961 0.382751 0.876556\n0.049774 0.355804 0.876770\n0.066376 0.358032 0.876587\n0.084412 0.360199 0.876434\n0.104126 0.362366 0.876282\n0.125824 0.364624 0.876068\n0.149963 0.366913 0.875854\n0.176788 0.369171 0.875702\n0.206635 0.371429 0.875519\n0.239136 0.373688 0.875366\n0.274292 0.376038 0.875153\n0.311768 0.378418 0.874969\n0.351288 0.380707 0.874786\n0.392548 0.383087 0.874573\n0.435211 0.385468 0.874390\n0.478607 0.387817 0.874176\n0.520844 0.390259 0.874023\n0.560425 0.392670 0.873810\n0.597290 0.394989 0.873596\n0.631531 0.397430 0.873413\n0.663330 0.399902 0.873169\n0.693115 0.402252 0.873016\n0.721039 0.404755 0.872772\n0.747498 0.407104 0.872589\n0.772705 0.409576 0.872406\n0.796906 0.411957 0.872253\n0.820282 0.414368 0.872009\n0.843140 0.416840 0.871796\n0.865692 0.419220 0.871582\n0.888214 0.421631 0.871368\n0.911041 0.424042 0.871185\n0.934723 0.426483 0.871002\n0.959961 0.428833 0.870789\n0.051300 0.403992 0.870758\n0.067963 0.406189 0.870575\n0.086090 0.408386 0.870392\n0.105927 0.410583 0.870209\n0.127777 0.412842 0.870026\n0.152069 0.415161 0.869843\n0.179108 0.417358 0.869690\n0.209076 0.419647 0.869476\n0.241730 0.421906 0.869263\n0.276947 0.424286 0.869110\n0.314484 0.426605 0.868896\n0.353973 0.428955 0.868744\n0.395264 0.431244 0.868561\n0.437897 0.433594 0.868378\n0.481079 0.435913 0.868195\n0.523010 0.438324 0.867950\n0.562347 0.440735 0.867767\n0.598969 0.443024 0.867554\n0.633026 0.445465 0.867371\n0.664642 0.447754 0.867188\n0.694183 0.450134 0.867004\n0.721954 0.452545 0.866791\n0.748291 0.454865 0.866669\n0.773376 0.457275 0.866455\n0.797455 0.459595 0.866241\n0.820770 0.461945 0.866028\n0.843536 0.464294 0.865814\n0.865997 0.466644 0.865662\n0.888489 0.468933 0.865479\n0.911224 0.471283 0.865265\n0.934845 0.473511 0.865112\n0.959961 0.475800 0.864929\n0.052856 0.453796 0.864502\n0.069641 0.456024 0.864288\n0.087830 0.458221 0.864136\n0.107788 0.460358 0.863953\n0.129822 0.462585 0.863800\n0.154236 0.464783 0.863617\n0.181458 0.466980 0.863434\n0.211578 0.469269 0.863281\n0.244354 0.471466 0.863068\n0.279602 0.473724 0.862915\n0.317169 0.476013 0.862732\n0.356720 0.478241 0.862579\n0.397949 0.480530 0.862396\n0.440552 0.482788 0.862183\n0.483612 0.484985 0.862030\n0.525238 0.487274 0.861816\n0.564362 0.489563 0.861633\n0.600708 0.491791 0.861481\n0.634491 0.494080 0.861298\n0.665863 0.496307 0.861115\n0.695282 0.498596 0.860992\n0.722931 0.500885 0.860779\n0.749084 0.503052 0.860596\n0.774048 0.505280 0.860413\n0.798004 0.507507 0.860199\n0.821289 0.509644 0.860016\n0.843933 0.511871 0.859894\n0.866302 0.514008 0.859711\n0.888702 0.516113 0.859558\n0.911377 0.518219 0.859375\n0.934937 0.520355 0.859222\n0.959961 0.522430 0.859100\n0.054474 0.504303 0.858154\n0.071320 0.506378 0.857971\n0.089630 0.508453 0.857849\n0.109711 0.510468 0.857666\n0.131866 0.512604 0.857483\n0.156433 0.514648 0.857391\n0.183838 0.516693 0.857208\n0.214050 0.518799 0.857056\n0.246948 0.520844 0.856903\n0.282318 0.522949 0.856750\n0.319916 0.524994 0.856628\n0.359467 0.527039 0.856445\n0.400665 0.529144 0.856262\n0.443176 0.531219 0.856110\n0.486115 0.533173 0.855988\n0.527466 0.535217 0.855804\n0.566284 0.537231 0.855713\n0.602417 0.539307 0.855530\n0.635925 0.541290 0.855438\n0.667145 0.543243 0.855286\n0.696350 0.545288 0.855103\n0.723877 0.547302 0.854950\n0.749878 0.549194 0.854797\n0.774750 0.551147 0.854614\n0.798615 0.553131 0.854553\n0.821716 0.554993 0.854401\n0.844330 0.556885 0.854279\n0.866638 0.558746 0.854126\n0.888916 0.560638 0.854004\n0.911560 0.562469 0.853882\n0.934967 0.564270 0.853729\n0.959961 0.566101 0.853607\n0.056000 0.552582 0.852081\n0.072998 0.554443 0.851959\n0.091431 0.556305 0.851807\n0.111603 0.558044 0.851715\n0.133942 0.559906 0.851593\n0.158661 0.561737 0.851471\n0.186249 0.563538 0.851379\n0.216614 0.565430 0.851257\n0.249603 0.567200 0.851105\n0.285034 0.569031 0.850983\n0.322662 0.570831 0.850861\n0.362244 0.572601 0.850708\n0.403442 0.574432 0.850616\n0.445831 0.576263 0.850464\n0.488617 0.578003 0.850403\n0.529694 0.579834 0.850250\n0.568207 0.581573 0.850220\n0.604065 0.583344 0.850067\n0.637421 0.585083 0.849945\n0.668396 0.586792 0.849823\n0.697449 0.588562 0.849670\n0.724731 0.590302 0.849548\n0.750671 0.591949 0.849487\n0.775391 0.593628 0.849396\n0.799164 0.595398 0.849274\n0.822205 0.596954 0.849152\n0.844696 0.598663 0.849060\n0.866943 0.600250 0.848938\n0.889130 0.601837 0.848846\n0.911743 0.603455 0.848755\n0.935089 0.604950 0.848633\n0.959961 0.606567 0.848572\n0.057678 0.597198 0.846497\n0.074768 0.598816 0.846405\n0.093292 0.600403 0.846344\n0.113586 0.601990 0.846252\n0.136047 0.603607 0.846161\n0.160950 0.605194 0.846069\n0.188690 0.606750 0.845978\n0.219177 0.608368 0.845886\n0.252228 0.609955 0.845764\n0.287811 0.611511 0.845642\n0.325409 0.613098 0.845612\n0.365021 0.614685 0.845490\n0.406158 0.616241 0.845428\n0.448456 0.617828 0.845337\n0.491058 0.619354 0.845245\n0.531860 0.620880 0.845215\n0.570099 0.622406 0.845093\n0.605713 0.623932 0.845001\n0.638855 0.625427 0.844879\n0.669617 0.626892 0.844788\n0.698486 0.628448 0.844727\n0.725677 0.629883 0.844666\n0.751465 0.631317 0.844604\n0.776031 0.632812 0.844513\n0.799713 0.634216 0.844452\n0.822662 0.635651 0.844360\n0.845062 0.637054 0.844269\n0.867249 0.638397 0.844177\n0.889343 0.639801 0.844116\n0.911865 0.641144 0.844055\n0.935150 0.642456 0.843994\n0.959961 0.643768 0.843903\n0.059326 0.638184 0.841431\n0.076477 0.639587 0.841370\n0.095093 0.640930 0.841278\n0.115601 0.642334 0.841248\n0.138214 0.643738 0.841156\n0.163269 0.645111 0.841095\n0.191162 0.646454 0.841034\n0.221802 0.647858 0.840942\n0.254974 0.649170 0.840912\n0.290558 0.650543 0.840820\n0.328217 0.651917 0.840729\n0.367737 0.653259 0.840729\n0.408813 0.654541 0.840668\n0.451080 0.655914 0.840637\n0.493530 0.657196 0.840576\n0.534027 0.658569 0.840485\n0.571960 0.659851 0.840424\n0.607422 0.661163 0.840332\n0.640259 0.662415 0.840332\n0.670837 0.663727 0.840240\n0.699524 0.664978 0.840240\n0.726624 0.666229 0.840179\n0.752228 0.667480 0.840118\n0.776703 0.668701 0.840057\n0.800293 0.669922 0.839996\n0.823059 0.671143 0.839935\n0.845459 0.672302 0.839905\n0.867523 0.673492 0.839874\n0.889587 0.674652 0.839813\n0.912048 0.675781 0.839752\n0.935211 0.676910 0.839722\n0.959961 0.678040 0.839661\n0.061066 0.675751 0.836761\n0.078278 0.676941 0.836700\n0.096985 0.678101 0.836700\n0.117584 0.679291 0.836670\n0.140350 0.680481 0.836609\n0.165619 0.681641 0.836548\n0.193634 0.682831 0.836517\n0.224396 0.683990 0.836487\n0.257629 0.685150 0.836426\n0.293274 0.686310 0.836426\n0.330994 0.687500 0.836395\n0.370544 0.688599 0.836365\n0.411560 0.689758 0.836334\n0.453674 0.690887 0.836304\n0.495941 0.692017 0.836243\n0.536133 0.693146 0.836182\n0.573822 0.694214 0.836182\n0.609009 0.695374 0.836121\n0.641663 0.696472 0.836121\n0.672058 0.697510 0.836090\n0.700592 0.698578 0.836090\n0.727478 0.699738 0.836029\n0.752960 0.700714 0.835999\n0.777374 0.701782 0.835938\n0.800812 0.702789 0.835938\n0.823517 0.703827 0.835938\n0.845825 0.704803 0.835876\n0.867798 0.705811 0.835846\n0.889832 0.706787 0.835846\n0.912109 0.707764 0.835815\n0.935303 0.708679 0.835754\n0.959961 0.709656 0.835754\n0.062775 0.710266 0.832520\n0.080078 0.711273 0.832520\n0.098938 0.712250 0.832489\n0.119629 0.713287 0.832428\n0.142548 0.714325 0.832428\n0.167938 0.715302 0.832428\n0.196167 0.716309 0.832367\n0.226990 0.717316 0.832397\n0.260345 0.718292 0.832397\n0.296051 0.719269 0.832397\n0.333710 0.720245 0.832397\n0.373230 0.721252 0.832336\n0.414276 0.722229 0.832306\n0.456238 0.723206 0.832275\n0.498291 0.724152 0.832306\n0.538269 0.725098 0.832275\n0.575684 0.726044 0.832275\n0.610596 0.726990 0.832275\n0.643036 0.727966 0.832275\n0.673218 0.728851 0.832245\n0.701569 0.729767 0.832214\n0.728363 0.730682 0.832184\n0.753723 0.731567 0.832184\n0.777954 0.732452 0.832214\n0.801300 0.733307 0.832184\n0.823975 0.734192 0.832153\n0.846161 0.735016 0.832184\n0.868073 0.735870 0.832153\n0.890015 0.736664 0.832123\n0.912292 0.737518 0.832123\n0.935394 0.738312 0.832123\n0.959961 0.739075 0.832092\n0.064484 0.742218 0.828583\n0.081879 0.743103 0.828552\n0.100861 0.743988 0.828583\n0.121704 0.744812 0.828583\n0.144745 0.745697 0.828552\n0.170288 0.746552 0.828613\n0.198639 0.747406 0.828613\n0.229614 0.748260 0.828613\n0.263031 0.749084 0.828644\n0.298767 0.749939 0.828613\n0.336456 0.750763 0.828613\n0.376007 0.751617 0.828583\n0.416931 0.752441 0.828644\n0.458832 0.753265 0.828613\n0.500671 0.754089 0.828644\n0.540344 0.754883 0.828613\n0.577515 0.755707 0.828674\n0.612183 0.756500 0.828644\n0.644379 0.757294 0.828644\n0.674377 0.758057 0.828644\n0.702576 0.758850 0.828644\n0.729126 0.759583 0.828674\n0.754425 0.760345 0.828674\n0.778595 0.761108 0.828674\n0.801849 0.761841 0.828705\n0.824402 0.762573 0.828644\n0.846497 0.763275 0.828674\n0.868347 0.763977 0.828705\n0.890228 0.764679 0.828705\n0.912415 0.765381 0.828705\n0.935425 0.766022 0.828705\n0.959961 0.766693 0.828674\n0.066223 0.772095 0.824921\n0.083740 0.772827 0.824951\n0.102783 0.773529 0.824951\n0.123810 0.774292 0.825012\n0.146973 0.775055 0.825012\n0.172729 0.775726 0.825073\n0.201172 0.776520 0.825043\n0.232239 0.777222 0.825073\n0.265747 0.777924 0.825073\n0.301544 0.778687 0.825073\n0.339203 0.779358 0.825104\n0.378723 0.780060 0.825134\n0.419617 0.780762 0.825165\n0.461365 0.781464 0.825165\n0.503021 0.782135 0.825165\n0.542419 0.782867 0.825226\n0.579315 0.783539 0.825226\n0.613708 0.784210 0.825226\n0.645691 0.784882 0.825287\n0.675537 0.785522 0.825317\n0.703552 0.786163 0.825317\n0.729980 0.786804 0.825317\n0.755127 0.787445 0.825348\n0.779205 0.788086 0.825348\n0.802338 0.788666 0.825348\n0.824829 0.789307 0.825409\n0.846863 0.789917 0.825409\n0.868622 0.790466 0.825439\n0.890411 0.791077 0.825439\n0.912537 0.791656 0.825439\n0.935486 0.792175 0.825531\n0.959961 0.792725 0.825500\n0.067932 0.800140 0.821503\n0.085571 0.800812 0.821564\n0.104767 0.801422 0.821594\n0.125854 0.802063 0.821625\n0.149231 0.802704 0.821655\n0.175110 0.803284 0.821686\n0.203705 0.803925 0.821686\n0.234833 0.804504 0.821716\n0.268433 0.805115 0.821747\n0.304230 0.805725 0.821808\n0.341980 0.806335 0.821838\n0.381409 0.806946 0.821869\n0.422211 0.807526 0.821869\n0.463898 0.808105 0.821930\n0.505249 0.808716 0.821960\n0.544403 0.809265 0.821991\n0.581055 0.809845 0.822021\n0.615204 0.810364 0.822083\n0.646973 0.810944 0.822113\n0.676605 0.811493 0.822113\n0.704498 0.812042 0.822144\n0.730835 0.812561 0.822174\n0.755859 0.813141 0.822174\n0.779755 0.813660 0.822235\n0.802795 0.814117 0.822266\n0.825226 0.814636 0.822296\n0.847198 0.815155 0.822327\n0.868866 0.815674 0.822296\n0.890625 0.816101 0.822357\n0.912659 0.816559 0.822418\n0.935547 0.817047 0.822418\n0.959961 0.817505 0.822449\n0.069733 0.826843 0.818268\n0.087433 0.827393 0.818359\n0.106720 0.827881 0.818390\n0.127960 0.828430 0.818420\n0.151428 0.828949 0.818451\n0.177429 0.829437 0.818481\n0.206207 0.829987 0.818542\n0.237457 0.830475 0.818542\n0.271088 0.830994 0.818634\n0.306946 0.831543 0.818665\n0.344696 0.832001 0.818695\n0.384064 0.832489 0.818756\n0.424774 0.832977 0.818817\n0.466400 0.833466 0.818817\n0.507477 0.833954 0.818909\n0.546326 0.834442 0.818909\n0.582733 0.834930 0.819000\n0.616699 0.835388 0.819031\n0.648254 0.835815 0.819061\n0.677734 0.836273 0.819092\n0.705414 0.836731 0.819122\n0.731598 0.837189 0.819183\n0.756500 0.837616 0.819214\n0.780334 0.838074 0.819244\n0.803314 0.838470 0.819244\n0.825653 0.838898 0.819305\n0.847473 0.839294 0.819336\n0.869110 0.839691 0.819397\n0.890808 0.840088 0.819427\n0.912781 0.840485 0.819458\n0.935638 0.840851 0.819489\n0.959961 0.841217 0.819519\n0.071503 0.852356 0.815186\n0.089264 0.852814 0.815216\n0.108673 0.853241 0.815277\n0.130035 0.853668 0.815338\n0.153687 0.854095 0.815399\n0.179840 0.854523 0.815430\n0.208740 0.854950 0.815521\n0.240051 0.855377 0.815582\n0.273773 0.855804 0.815613\n0.309601 0.856201 0.815674\n0.347290 0.856628 0.815704\n0.386688 0.857025 0.815765\n0.427368 0.857422 0.815826\n0.468781 0.857849 0.815857\n0.509705 0.858246 0.815918\n0.548248 0.858643 0.815979\n0.584412 0.859039 0.816040\n0.618073 0.859406 0.816071\n0.649475 0.859772 0.816132\n0.678772 0.860138 0.816193\n0.706329 0.860504 0.816254\n0.732361 0.860901 0.816284\n0.757141 0.861237 0.816315\n0.780914 0.861572 0.816345\n0.803772 0.861938 0.816406\n0.825958 0.862274 0.816467\n0.847809 0.862579 0.816498\n0.869385 0.862915 0.816528\n0.890930 0.863251 0.816589\n0.912933 0.863525 0.816620\n0.935699 0.863861 0.816650\n0.959961 0.864136 0.816711\n0.073273 0.877045 0.812164\n0.091125 0.877411 0.812256\n0.110687 0.877747 0.812317\n0.132141 0.878113 0.812378\n0.155884 0.878448 0.812469\n0.182220 0.878815 0.812531\n0.211212 0.879150 0.812561\n0.242584 0.879486 0.812653\n0.276398 0.879852 0.812683\n0.312286 0.880127 0.812744\n0.349945 0.880493 0.812836\n0.389282 0.880829 0.812866\n0.429840 0.881134 0.812958\n0.471161 0.881470 0.812988\n0.511810 0.881805 0.813080\n0.550110 0.882111 0.813141\n0.585999 0.882416 0.813171\n0.619507 0.882751 0.813263\n0.650665 0.883057 0.813324\n0.679779 0.883362 0.813354\n0.707153 0.883606 0.813385\n0.733093 0.883911 0.813446\n0.757782 0.884186 0.813507\n0.781403 0.884460 0.813599\n0.804199 0.884735 0.813629\n0.826385 0.885010 0.813660\n0.848083 0.885254 0.813721\n0.869568 0.885529 0.813751\n0.891113 0.885773 0.813782\n0.913055 0.886047 0.813873\n0.935730 0.886261 0.813904\n0.959961 0.886475 0.813965\n0.075043 0.901184 0.809296\n0.092987 0.901459 0.809326\n0.112640 0.901764 0.809448\n0.134247 0.902008 0.809509\n0.158112 0.902283 0.809570\n0.184601 0.902588 0.809662\n0.213684 0.902832 0.809723\n0.245209 0.903137 0.809753\n0.278992 0.903381 0.809845\n0.314911 0.903625 0.809906\n0.352570 0.903900 0.809998\n0.391815 0.904144 0.810059\n0.432281 0.904419 0.810150\n0.473511 0.904663 0.810211\n0.513916 0.904938 0.810272\n0.551910 0.905151 0.810364\n0.587616 0.905365 0.810425\n0.620880 0.905640 0.810455\n0.651794 0.905853 0.810516\n0.680786 0.906097 0.810577\n0.708008 0.906342 0.810638\n0.733856 0.906555 0.810699\n0.758392 0.906769 0.810760\n0.781921 0.906952 0.810822\n0.804596 0.907166 0.810883\n0.826691 0.907379 0.810913\n0.848389 0.907593 0.810944\n0.869812 0.907806 0.811035\n0.891296 0.907990 0.811096\n0.913147 0.908173 0.811157\n0.935822 0.908356 0.811188\n0.959961 0.908508 0.811249\n0.076813 0.925079 0.806427\n0.094849 0.925293 0.806488\n0.114594 0.925537 0.806549\n0.136322 0.925751 0.806641\n0.160309 0.925934 0.806702\n0.186951 0.926117 0.806763\n0.216125 0.926331 0.806885\n0.247681 0.926575 0.806915\n0.281555 0.926727 0.807037\n0.317413 0.926941 0.807098\n0.355103 0.927094 0.807190\n0.394287 0.927338 0.807251\n0.434692 0.927490 0.807343\n0.475769 0.927704 0.807434\n0.515869 0.927887 0.807495\n0.553680 0.928040 0.807526\n0.589111 0.928223 0.807587\n0.622223 0.928406 0.807678\n0.652924 0.928558 0.807739\n0.681732 0.928741 0.807800\n0.708832 0.928894 0.807892\n0.734528 0.929077 0.807953\n0.758972 0.929260 0.808014\n0.782410 0.929382 0.808075\n0.805023 0.929535 0.808105\n0.827057 0.929657 0.808197\n0.848633 0.929810 0.808258\n0.870026 0.929932 0.808319\n0.891449 0.930115 0.808350\n0.913269 0.930237 0.808441\n0.935852 0.930359 0.808472\n0.959961 0.930481 0.808533\n0.078583 0.949127 0.803497\n0.096680 0.949249 0.803589\n0.116577 0.949432 0.803650\n0.138428 0.949585 0.803741\n0.162567 0.949738 0.803833\n0.189270 0.949860 0.803894\n0.218536 0.949982 0.804016\n0.250153 0.950104 0.804077\n0.284088 0.950256 0.804199\n0.319916 0.950378 0.804260\n0.357574 0.950470 0.804352\n0.396729 0.950623 0.804443\n0.437042 0.950714 0.804535\n0.477936 0.950867 0.804565\n0.517822 0.951019 0.804626\n0.555359 0.951141 0.804718\n0.590607 0.951233 0.804810\n0.623444 0.951355 0.804871\n0.654022 0.951477 0.804962\n0.682678 0.951569 0.805023\n0.709595 0.951691 0.805115\n0.735138 0.951782 0.805145\n0.759521 0.951874 0.805206\n0.782898 0.951996 0.805298\n0.805420 0.952087 0.805359\n0.827362 0.952209 0.805420\n0.848877 0.952301 0.805481\n0.870209 0.952393 0.805573\n0.891571 0.952484 0.805603\n0.913391 0.952545 0.805664\n0.935944 0.952637 0.805725\n0.959961 0.952698 0.805725\n0.080322 0.973846 0.800476\n0.098511 0.973969 0.800568\n0.118500 0.974030 0.800690\n0.140472 0.974091 0.800751\n0.164734 0.974182 0.800873\n0.191559 0.974213 0.800964\n0.220917 0.974304 0.801056\n0.252625 0.974365 0.801147\n0.286530 0.974396 0.801239\n0.322388 0.974518 0.801331\n0.360016 0.974548 0.801422\n0.399109 0.974609 0.801483\n0.439331 0.974701 0.801575\n0.480103 0.974731 0.801666\n0.519775 0.974823 0.801727\n0.557007 0.974854 0.801819\n0.592041 0.974915 0.801910\n0.624603 0.974976 0.802002\n0.655060 0.975037 0.802063\n0.683533 0.975098 0.802124\n0.710358 0.975128 0.802185\n0.735779 0.975189 0.802307\n0.760071 0.975250 0.802338\n0.783295 0.975281 0.802429\n0.805786 0.975342 0.802460\n0.827667 0.975403 0.802582\n0.849121 0.975433 0.802643\n0.870392 0.975494 0.802673\n0.891754 0.975494 0.802704\n0.913452 0.975586 0.802765\n0.935944 0.975616 0.802826\n0.959961 0.975647 0.802856\n0.082031 1.000000 0.797302\n0.100372 1.000000 0.797363\n0.120422 1.000000 0.797516\n0.142487 1.000000 0.797607\n0.166901 1.000000 0.797729\n0.193848 1.000000 0.797821\n0.223236 1.000000 0.797913\n0.255005 1.000000 0.798035\n0.288910 1.000000 0.798126\n0.324768 1.000000 0.798187\n0.362366 1.000000 0.798279\n0.401367 1.000000 0.798370\n0.441559 1.000000 0.798462\n0.482147 1.000000 0.798553\n0.521545 1.000000 0.798645\n0.558624 1.000000 0.798706\n0.593353 1.000000 0.798828\n0.625793 1.000000 0.798889\n0.656006 1.000000 0.798950\n0.684357 1.000000 0.799072\n0.711060 1.000000 0.799133\n0.736420 1.000000 0.799194\n0.760590 1.000000 0.799255\n0.783722 1.000000 0.799377\n0.806122 1.000000 0.799438\n0.827911 1.000000 0.799500\n0.849335 1.000000 0.799530\n0.870544 1.000000 0.799591\n0.891876 1.000000 0.799652\n0.913544 1.000000 0.799683\n0.936005 1.000000 0.799744\n0.959961 1.000000 0.799774\n0.035126 0.006683 0.945160\n0.050842 0.007446 0.945068\n0.067749 0.008270 0.945068\n0.086151 0.009094 0.944977\n0.106445 0.009918 0.944946\n0.128876 0.010803 0.944855\n0.153870 0.011688 0.944794\n0.181854 0.012634 0.944733\n0.212830 0.013580 0.944672\n0.246704 0.014496 0.944580\n0.283356 0.015503 0.944550\n0.322296 0.016479 0.944458\n0.363556 0.017548 0.944397\n0.406494 0.018585 0.944366\n0.450867 0.019623 0.944244\n0.495453 0.020691 0.944183\n0.537994 0.021820 0.944122\n0.577576 0.022888 0.944061\n0.614471 0.024048 0.943970\n0.648590 0.025208 0.943878\n0.680267 0.026367 0.943817\n0.710052 0.027588 0.943726\n0.738007 0.028778 0.943634\n0.764618 0.029999 0.943512\n0.790039 0.031250 0.943451\n0.814575 0.032501 0.943359\n0.838470 0.033752 0.943237\n0.861938 0.035065 0.943146\n0.885406 0.036346 0.943054\n0.909149 0.037689 0.942963\n0.933685 0.039032 0.942841\n0.959961 0.040375 0.942780\n0.036102 0.023315 0.943115\n0.051880 0.024170 0.943024\n0.068878 0.025024 0.942963\n0.087402 0.025909 0.942902\n0.107758 0.026825 0.942841\n0.130341 0.027771 0.942780\n0.155457 0.028717 0.942719\n0.183563 0.029694 0.942627\n0.214661 0.030670 0.942535\n0.248688 0.031708 0.942474\n0.285400 0.032776 0.942444\n0.324493 0.033813 0.942383\n0.365723 0.034912 0.942261\n0.408691 0.036011 0.942200\n0.452972 0.037140 0.942139\n0.497437 0.038269 0.942047\n0.539734 0.039459 0.941956\n0.579132 0.040619 0.941864\n0.615814 0.041809 0.941803\n0.649780 0.043091 0.941711\n0.681335 0.044281 0.941620\n0.710876 0.045563 0.941467\n0.738800 0.046814 0.941437\n0.765259 0.048126 0.941315\n0.790588 0.049469 0.941193\n0.815033 0.050781 0.941101\n0.838837 0.052124 0.941010\n0.862274 0.053528 0.940887\n0.885651 0.054871 0.940765\n0.909302 0.056305 0.940704\n0.933807 0.057739 0.940582\n0.959961 0.059143 0.940491\n0.037109 0.040985 0.940918\n0.052948 0.041901 0.940826\n0.070068 0.042877 0.940765\n0.088654 0.043762 0.940704\n0.109131 0.044800 0.940613\n0.131836 0.045807 0.940521\n0.157074 0.046814 0.940460\n0.185394 0.047852 0.940369\n0.216644 0.048920 0.940338\n0.250763 0.050049 0.940277\n0.287537 0.051178 0.940155\n0.326691 0.052307 0.940063\n0.367950 0.053497 0.940002\n0.410919 0.054688 0.939911\n0.455200 0.055878 0.939819\n0.499451 0.057159 0.939728\n0.541504 0.058350 0.939636\n0.580719 0.059631 0.939545\n0.617188 0.060944 0.939453\n0.650940 0.062256 0.939301\n0.682373 0.063599 0.939240\n0.711792 0.064972 0.939117\n0.739563 0.066315 0.939026\n0.765900 0.067719 0.938904\n0.791168 0.069122 0.938812\n0.815491 0.070526 0.938690\n0.839233 0.071991 0.938568\n0.862579 0.073486 0.938477\n0.885834 0.074921 0.938354\n0.909454 0.076416 0.938263\n0.933868 0.077942 0.938110\n0.959961 0.079468 0.938019\n0.038208 0.059998 0.938538\n0.054108 0.061005 0.938446\n0.071320 0.062073 0.938385\n0.089996 0.063080 0.938293\n0.110596 0.064209 0.938202\n0.133392 0.065277 0.938110\n0.158844 0.066376 0.938080\n0.187286 0.067566 0.937988\n0.218658 0.068726 0.937897\n0.252899 0.069946 0.937775\n0.289795 0.071136 0.937714\n0.328949 0.072357 0.937592\n0.370270 0.073669 0.937500\n0.413177 0.074982 0.937408\n0.457397 0.076263 0.937286\n0.501556 0.077606 0.937225\n0.543335 0.078979 0.937103\n0.582336 0.080353 0.936951\n0.618622 0.081787 0.936890\n0.652191 0.083160 0.936768\n0.683441 0.084625 0.936646\n0.712708 0.086090 0.936523\n0.740356 0.087555 0.936401\n0.766571 0.089081 0.936279\n0.791748 0.090637 0.936127\n0.815979 0.092133 0.936066\n0.839630 0.093719 0.935913\n0.862915 0.095337 0.935791\n0.886108 0.096893 0.935669\n0.909637 0.098541 0.935547\n0.933990 0.100128 0.935394\n0.959961 0.101807 0.935242\n0.039337 0.080841 0.935944\n0.055298 0.081940 0.935822\n0.072601 0.083069 0.935730\n0.091400 0.084229 0.935669\n0.112122 0.085419 0.935577\n0.135040 0.086609 0.935516\n0.160614 0.087891 0.935394\n0.189209 0.089142 0.935303\n0.220764 0.090393 0.935211\n0.255127 0.091736 0.935089\n0.292084 0.093079 0.934998\n0.331299 0.094421 0.934845\n0.372650 0.095856 0.934753\n0.415588 0.097260 0.934662\n0.459717 0.098724 0.934540\n0.503662 0.100159 0.934387\n0.545227 0.101624 0.934296\n0.584015 0.103180 0.934174\n0.620056 0.104706 0.934021\n0.653381 0.106201 0.933899\n0.684509 0.107819 0.933777\n0.713654 0.109436 0.933624\n0.741150 0.111023 0.933472\n0.767273 0.112671 0.933380\n0.792297 0.114349 0.933228\n0.816467 0.116028 0.933075\n0.839996 0.117706 0.932953\n0.863220 0.119415 0.932831\n0.886383 0.121155 0.932648\n0.909760 0.122955 0.932495\n0.934021 0.124695 0.932373\n0.959961 0.126495 0.932220\n0.040558 0.103790 0.933044\n0.056580 0.105042 0.932953\n0.073914 0.106293 0.932892\n0.092834 0.107605 0.932770\n0.113708 0.108948 0.932648\n0.136749 0.110260 0.932556\n0.162537 0.111633 0.932465\n0.191254 0.113068 0.932312\n0.222931 0.114471 0.932220\n0.257385 0.115936 0.932068\n0.294434 0.117432 0.931946\n0.333710 0.118896 0.931854\n0.375000 0.120483 0.931671\n0.417938 0.122009 0.931549\n0.462006 0.123596 0.931458\n0.505829 0.125214 0.931305\n0.547089 0.126801 0.931122\n0.585693 0.128510 0.931000\n0.621490 0.130219 0.930878\n0.654663 0.131897 0.930725\n0.685608 0.133606 0.930542\n0.714569 0.135376 0.930450\n0.741974 0.137146 0.930267\n0.767944 0.138916 0.930115\n0.792877 0.140778 0.929962\n0.816956 0.142609 0.929810\n0.840424 0.144470 0.929626\n0.863525 0.146301 0.929443\n0.886566 0.148224 0.929321\n0.909943 0.150146 0.929138\n0.934113 0.152069 0.928955\n0.959961 0.153992 0.928772\n0.041748 0.129486 0.929871\n0.057861 0.130859 0.929749\n0.075287 0.132263 0.929626\n0.094330 0.133698 0.929504\n0.115265 0.135193 0.929413\n0.138550 0.136688 0.929230\n0.164429 0.138245 0.929138\n0.193390 0.139771 0.928955\n0.225159 0.141388 0.928833\n0.259705 0.143005 0.928711\n0.296814 0.144623 0.928528\n0.336182 0.146301 0.928375\n0.377472 0.148010 0.928284\n0.420349 0.149719 0.928101\n0.464355 0.151428 0.927948\n0.507965 0.153259 0.927795\n0.549042 0.155029 0.927643\n0.587341 0.156860 0.927460\n0.622955 0.158752 0.927277\n0.655945 0.160583 0.927124\n0.686676 0.162537 0.926971\n0.715515 0.164459 0.926788\n0.742737 0.166351 0.926636\n0.768677 0.168365 0.926453\n0.793488 0.170319 0.926270\n0.817444 0.172333 0.926086\n0.840851 0.174377 0.925934\n0.863831 0.176422 0.925720\n0.886810 0.178528 0.925507\n0.910126 0.180634 0.925293\n0.934235 0.182678 0.925140\n0.959961 0.184814 0.924927\n0.043030 0.158386 0.926239\n0.059235 0.159912 0.926086\n0.076782 0.161469 0.925995\n0.095886 0.163116 0.925812\n0.117004 0.164764 0.925690\n0.140350 0.166412 0.925507\n0.166443 0.168152 0.925354\n0.195526 0.169891 0.925201\n0.227448 0.171661 0.925018\n0.262115 0.173462 0.924866\n0.299255 0.175262 0.924744\n0.338654 0.177124 0.924530\n0.379974 0.179016 0.924347\n0.422852 0.180878 0.924194\n0.466736 0.182831 0.924042\n0.510162 0.184814 0.923828\n0.550964 0.186798 0.923645\n0.589081 0.188782 0.923462\n0.624420 0.190857 0.923309\n0.657196 0.192902 0.923096\n0.687775 0.194977 0.922913\n0.716492 0.197083 0.922729\n0.743591 0.199188 0.922516\n0.769348 0.201324 0.922302\n0.794067 0.203491 0.922150\n0.817932 0.205658 0.921936\n0.841217 0.207855 0.921692\n0.864166 0.210052 0.921478\n0.887054 0.212280 0.921295\n0.910278 0.214569 0.921051\n0.934296 0.216766 0.920807\n0.959961 0.219055 0.920624\n0.044373 0.190979 0.922150\n0.060638 0.192780 0.921967\n0.078247 0.194489 0.921814\n0.097534 0.196289 0.921631\n0.118744 0.198120 0.921478\n0.142273 0.199951 0.921295\n0.168518 0.201874 0.921112\n0.197723 0.203796 0.920929\n0.229797 0.205719 0.920776\n0.264526 0.207703 0.920563\n0.301788 0.209625 0.920380\n0.341217 0.211670 0.920197\n0.382538 0.213745 0.920013\n0.425354 0.215790 0.919800\n0.469177 0.217896 0.919617\n0.512329 0.220062 0.919373\n0.552887 0.222168 0.919220\n0.590790 0.224335 0.919006\n0.625916 0.226532 0.918823\n0.658478 0.228729 0.918640\n0.688873 0.230957 0.918396\n0.717407 0.233154 0.918182\n0.744385 0.235443 0.917999\n0.770020 0.237732 0.917725\n0.794647 0.239990 0.917511\n0.818420 0.242340 0.917297\n0.841644 0.244659 0.917084\n0.864471 0.246948 0.916840\n0.887299 0.249329 0.916595\n0.910461 0.251709 0.916382\n0.934387 0.253998 0.916168\n0.959961 0.256409 0.915924\n0.045715 0.227478 0.917542\n0.062073 0.229401 0.917328\n0.079773 0.231262 0.917175\n0.099182 0.233215 0.916962\n0.120514 0.235229 0.916779\n0.144196 0.237213 0.916565\n0.170624 0.239258 0.916412\n0.200012 0.241333 0.916199\n0.232208 0.243408 0.915985\n0.267059 0.245514 0.915802\n0.304321 0.247620 0.915619\n0.343781 0.249817 0.915375\n0.385162 0.251984 0.915192\n0.427917 0.254150 0.914948\n0.471619 0.256439 0.914795\n0.514526 0.258728 0.914551\n0.554840 0.260925 0.914368\n0.592468 0.263214 0.914154\n0.627411 0.265564 0.913910\n0.659729 0.267853 0.913666\n0.690002 0.270172 0.913422\n0.718353 0.272491 0.913208\n0.745209 0.274872 0.912964\n0.770752 0.277283 0.912750\n0.795258 0.279633 0.912537\n0.818909 0.282013 0.912292\n0.842010 0.284454 0.912018\n0.864838 0.286835 0.911804\n0.887543 0.289276 0.911591\n0.910614 0.291718 0.911316\n0.934479 0.294098 0.911133\n0.959961 0.296570 0.910889\n0.047150 0.267517 0.912445\n0.063568 0.269531 0.912262\n0.081390 0.271545 0.912048\n0.100891 0.273651 0.911835\n0.122375 0.275757 0.911652\n0.146210 0.277832 0.911469\n0.172791 0.279999 0.911224\n0.202301 0.282135 0.911041\n0.234619 0.284363 0.910858\n0.269592 0.286621 0.910583\n0.306946 0.288849 0.910400\n0.346436 0.291107 0.910156\n0.387787 0.293427 0.909973\n0.430511 0.295685 0.909760\n0.474091 0.298035 0.909546\n0.516754 0.300415 0.909302\n0.556824 0.302704 0.909058\n0.594208 0.305084 0.908844\n0.628876 0.307434 0.908600\n0.661072 0.309845 0.908356\n0.691071 0.312256 0.908112\n0.719299 0.314606 0.907898\n0.746002 0.317108 0.907654\n0.771454 0.319519 0.907410\n0.795807 0.321930 0.907166\n0.819397 0.324402 0.906921\n0.842438 0.326874 0.906708\n0.865112 0.329285 0.906464\n0.887817 0.331757 0.906250\n0.910767 0.334198 0.905975\n0.934570 0.336609 0.905792\n0.959961 0.339111 0.905518\n0.048584 0.310699 0.906982\n0.065125 0.312866 0.906738\n0.083008 0.314941 0.906586\n0.102631 0.317139 0.906342\n0.124237 0.319336 0.906128\n0.148254 0.321533 0.905945\n0.175018 0.323761 0.905701\n0.204651 0.325958 0.905487\n0.237122 0.328278 0.905273\n0.272217 0.330566 0.905029\n0.309570 0.332855 0.904846\n0.349121 0.335236 0.904602\n0.390381 0.337585 0.904388\n0.433105 0.339874 0.904175\n0.476593 0.342316 0.903900\n0.519043 0.344666 0.903687\n0.558777 0.347046 0.903442\n0.595917 0.349487 0.903229\n0.630341 0.351837 0.902985\n0.662323 0.354340 0.902740\n0.692200 0.356720 0.902527\n0.720306 0.359131 0.902283\n0.746796 0.361633 0.902008\n0.772125 0.364105 0.901764\n0.796387 0.366516 0.901550\n0.819885 0.368958 0.901306\n0.842834 0.371429 0.901093\n0.865448 0.373871 0.900818\n0.888031 0.376373 0.900604\n0.910919 0.378754 0.900360\n0.934692 0.381226 0.900146\n0.959961 0.383636 0.899902\n0.050079 0.356659 0.901154\n0.066681 0.358887 0.900940\n0.084686 0.360992 0.900726\n0.104431 0.363251 0.900513\n0.126190 0.365417 0.900299\n0.150330 0.367676 0.900055\n0.177246 0.369995 0.899841\n0.207031 0.372284 0.899628\n0.239624 0.374573 0.899445\n0.274750 0.376923 0.899200\n0.312256 0.379242 0.898987\n0.351776 0.381592 0.898743\n0.393066 0.383972 0.898499\n0.435699 0.386322 0.898285\n0.479095 0.388702 0.898041\n0.521240 0.391113 0.897797\n0.560760 0.393494 0.897552\n0.597595 0.395935 0.897339\n0.631805 0.398346 0.897125\n0.663605 0.400696 0.896881\n0.693268 0.403198 0.896606\n0.721191 0.405609 0.896393\n0.747650 0.408051 0.896149\n0.772827 0.410492 0.895905\n0.796997 0.412842 0.895660\n0.820374 0.415283 0.895447\n0.843231 0.417694 0.895233\n0.865753 0.420105 0.894989\n0.888245 0.422516 0.894775\n0.911072 0.424866 0.894562\n0.934723 0.427338 0.894287\n0.959961 0.429688 0.894043\n0.051605 0.404816 0.895020\n0.068298 0.407074 0.894806\n0.086395 0.409271 0.894592\n0.106293 0.411469 0.894379\n0.128174 0.413666 0.894165\n0.152496 0.415924 0.893951\n0.179565 0.418213 0.893768\n0.209534 0.420502 0.893494\n0.242218 0.422791 0.893341\n0.277466 0.425140 0.893097\n0.314972 0.427429 0.892853\n0.354492 0.429810 0.892639\n0.395813 0.432159 0.892395\n0.438354 0.434418 0.892181\n0.481598 0.436829 0.891937\n0.523468 0.439148 0.891724\n0.562714 0.441528 0.891510\n0.599365 0.443939 0.891266\n0.633301 0.446289 0.891022\n0.664825 0.448639 0.890808\n0.694397 0.451019 0.890564\n0.722137 0.453369 0.890320\n0.748444 0.455750 0.890076\n0.773529 0.458160 0.889862\n0.797577 0.460449 0.889679\n0.820831 0.462860 0.889435\n0.843628 0.465149 0.889221\n0.866058 0.467468 0.889008\n0.888519 0.469788 0.888794\n0.911255 0.472046 0.888550\n0.934845 0.474396 0.888306\n0.959961 0.476654 0.888092\n0.053131 0.454651 0.888702\n0.069916 0.456787 0.888489\n0.088165 0.458954 0.888306\n0.108154 0.461212 0.888062\n0.130157 0.463348 0.887909\n0.154694 0.465576 0.887665\n0.181915 0.467865 0.887451\n0.211975 0.470032 0.887268\n0.244812 0.472321 0.887024\n0.280151 0.474579 0.886810\n0.317627 0.476837 0.886597\n0.357269 0.479095 0.886383\n0.398438 0.481323 0.886139\n0.440979 0.483582 0.885956\n0.484100 0.485870 0.885742\n0.525604 0.488129 0.885529\n0.564667 0.490387 0.885284\n0.601013 0.492676 0.885071\n0.634735 0.494873 0.884857\n0.666138 0.497131 0.884613\n0.695496 0.499420 0.884399\n0.723083 0.501648 0.884216\n0.749268 0.503937 0.884033\n0.774170 0.506165 0.883820\n0.798126 0.508331 0.883636\n0.821320 0.510498 0.883423\n0.843994 0.512634 0.883179\n0.866364 0.514771 0.882996\n0.888763 0.516968 0.882782\n0.911407 0.518982 0.882599\n0.934937 0.521149 0.882385\n0.959961 0.523224 0.882202\n0.054749 0.505066 0.882294\n0.071625 0.507111 0.882111\n0.089935 0.509155 0.881927\n0.110046 0.511261 0.881714\n0.132233 0.513275 0.881561\n0.156891 0.515381 0.881378\n0.184296 0.517456 0.881165\n0.214569 0.519531 0.880981\n0.247467 0.521576 0.880768\n0.282837 0.523712 0.880585\n0.320435 0.525757 0.880371\n0.360016 0.527802 0.880219\n0.401184 0.529846 0.880035\n0.443726 0.531921 0.879822\n0.486633 0.533966 0.879608\n0.527863 0.535950 0.879425\n0.566589 0.537994 0.879242\n0.602722 0.540039 0.879059\n0.636200 0.541992 0.878876\n0.667358 0.544067 0.878693\n0.696564 0.546051 0.878571\n0.723999 0.547943 0.878387\n0.750031 0.549927 0.878235\n0.774872 0.551880 0.878052\n0.798706 0.553741 0.877838\n0.821808 0.555695 0.877686\n0.844421 0.557556 0.877502\n0.866669 0.559509 0.877350\n0.888947 0.561310 0.877167\n0.911591 0.563141 0.876984\n0.934998 0.564941 0.876831\n0.959961 0.566772 0.876678\n0.056335 0.553284 0.876190\n0.073303 0.555115 0.876007\n0.091766 0.556885 0.875885\n0.112000 0.558746 0.875732\n0.134308 0.560547 0.875549\n0.159149 0.562408 0.875397\n0.186737 0.564240 0.875244\n0.217041 0.566101 0.875092\n0.250061 0.567871 0.874908\n0.285553 0.569733 0.874756\n0.323181 0.571472 0.874634\n0.362762 0.573334 0.874420\n0.403931 0.575104 0.874268\n0.446289 0.576904 0.874115\n0.489075 0.578705 0.873962\n0.530060 0.580475 0.873779\n0.568542 0.582245 0.873657\n0.604401 0.584015 0.873505\n0.637634 0.585754 0.873413\n0.668640 0.587463 0.873260\n0.697662 0.589233 0.873108\n0.724945 0.590912 0.872955\n0.750824 0.592621 0.872803\n0.775513 0.594269 0.872681\n0.799255 0.595917 0.872528\n0.822296 0.597595 0.872406\n0.844757 0.599243 0.872253\n0.867004 0.600830 0.872101\n0.889191 0.602478 0.871948\n0.911743 0.604004 0.871826\n0.935089 0.605591 0.871704\n0.959961 0.607147 0.871552\n0.058014 0.597839 0.870575\n0.075043 0.599396 0.870453\n0.093597 0.601013 0.870300\n0.113953 0.602631 0.870178\n0.136444 0.604156 0.870056\n0.161407 0.605774 0.869934\n0.189148 0.607361 0.869781\n0.219666 0.608917 0.869629\n0.252808 0.610535 0.869507\n0.288300 0.612122 0.869385\n0.325928 0.613678 0.869263\n0.365479 0.615265 0.869110\n0.406616 0.616791 0.869019\n0.448914 0.618378 0.868866\n0.491547 0.619934 0.868774\n0.532257 0.621460 0.868652\n0.570435 0.622955 0.868591\n0.606049 0.624512 0.868439\n0.639130 0.625977 0.868347\n0.669891 0.627502 0.868195\n0.698700 0.628967 0.868073\n0.725830 0.630432 0.867981\n0.751617 0.631897 0.867859\n0.776184 0.633301 0.867767\n0.799805 0.634735 0.867645\n0.822754 0.636169 0.867493\n0.845154 0.637573 0.867371\n0.867310 0.638916 0.867310\n0.889435 0.640320 0.867188\n0.911896 0.641632 0.867065\n0.935181 0.642944 0.866974\n0.959961 0.644257 0.866882\n0.059662 0.638702 0.865417\n0.076813 0.640137 0.865326\n0.095490 0.641449 0.865173\n0.115967 0.642853 0.865112\n0.138580 0.644226 0.864990\n0.163696 0.645630 0.864868\n0.191650 0.647003 0.864746\n0.222260 0.648346 0.864685\n0.255463 0.649719 0.864594\n0.291016 0.651031 0.864471\n0.328705 0.652405 0.864380\n0.368286 0.653778 0.864288\n0.409363 0.655060 0.864197\n0.451569 0.656433 0.864105\n0.493988 0.657715 0.864075\n0.534393 0.659027 0.863953\n0.572357 0.660339 0.863892\n0.607666 0.661621 0.863770\n0.640533 0.662903 0.863678\n0.671082 0.664154 0.863586\n0.699738 0.665466 0.863495\n0.726746 0.666718 0.863403\n0.752380 0.667908 0.863312\n0.776825 0.669098 0.863220\n0.800385 0.670349 0.863129\n0.823212 0.671570 0.863068\n0.845490 0.672729 0.862976\n0.867584 0.673920 0.862885\n0.889648 0.675049 0.862793\n0.912048 0.676178 0.862732\n0.935242 0.677338 0.862640\n0.959961 0.678406 0.862579\n0.061371 0.676178 0.860657\n0.078613 0.677368 0.860596\n0.097382 0.678589 0.860535\n0.118011 0.679749 0.860443\n0.140778 0.680908 0.860352\n0.166046 0.682098 0.860291\n0.194122 0.683289 0.860229\n0.224884 0.684418 0.860138\n0.258148 0.685577 0.860077\n0.293732 0.686737 0.859985\n0.331482 0.687866 0.859924\n0.371033 0.689026 0.859894\n0.412048 0.690186 0.859863\n0.454163 0.691315 0.859772\n0.496399 0.692413 0.859680\n0.536560 0.693542 0.859619\n0.574188 0.694672 0.859528\n0.609314 0.695740 0.859497\n0.641907 0.696838 0.859406\n0.672272 0.697937 0.859344\n0.700775 0.699005 0.859283\n0.727631 0.700043 0.859222\n0.753113 0.701111 0.859131\n0.777466 0.702148 0.859100\n0.800903 0.703217 0.859009\n0.823608 0.704193 0.858948\n0.845856 0.705200 0.858887\n0.867859 0.706207 0.858826\n0.889862 0.707184 0.858765\n0.912140 0.708099 0.858704\n0.935333 0.709076 0.858643\n0.959961 0.709991 0.858612\n0.063080 0.710602 0.856384\n0.080383 0.711639 0.856293\n0.099274 0.712646 0.856232\n0.120026 0.713654 0.856201\n0.142944 0.714630 0.856171\n0.168396 0.715698 0.856079\n0.196594 0.716675 0.856049\n0.227478 0.717682 0.855988\n0.260864 0.718689 0.855927\n0.296509 0.719666 0.855896\n0.334229 0.720642 0.855835\n0.373749 0.721588 0.855835\n0.414734 0.722565 0.855774\n0.456757 0.723541 0.855743\n0.498810 0.724548 0.855652\n0.538635 0.725464 0.855621\n0.576050 0.726440 0.855560\n0.610870 0.727325 0.855530\n0.643280 0.728271 0.855469\n0.673492 0.729187 0.855438\n0.701752 0.730103 0.855377\n0.728455 0.730988 0.855347\n0.753876 0.731873 0.855286\n0.778107 0.732788 0.855225\n0.801453 0.733643 0.855194\n0.824066 0.734497 0.855164\n0.846222 0.735352 0.855072\n0.868134 0.736176 0.855072\n0.890076 0.736969 0.854980\n0.912323 0.737793 0.855011\n0.935394 0.738617 0.854919\n0.959961 0.739349 0.854919\n0.064819 0.742554 0.852356\n0.082214 0.743408 0.852325\n0.101257 0.744263 0.852295\n0.122101 0.745148 0.852264\n0.145172 0.746002 0.852234\n0.170776 0.746857 0.852173\n0.199097 0.747711 0.852142\n0.230103 0.748566 0.852142\n0.263550 0.749420 0.852081\n0.299255 0.750275 0.852112\n0.337006 0.751099 0.852051\n0.376526 0.751953 0.852051\n0.417419 0.752747 0.851990\n0.459351 0.753571 0.851990\n0.501160 0.754395 0.851929\n0.540741 0.755219 0.851898\n0.577850 0.755981 0.851898\n0.612427 0.756775 0.851837\n0.644623 0.757599 0.851807\n0.674622 0.758362 0.851776\n0.702759 0.759125 0.851746\n0.729309 0.759888 0.851715\n0.754578 0.760651 0.851685\n0.778717 0.761383 0.851685\n0.801941 0.762115 0.851593\n0.824493 0.762848 0.851593\n0.846558 0.763550 0.851532\n0.868408 0.764252 0.851562\n0.890259 0.764923 0.851501\n0.912415 0.765625 0.851532\n0.935455 0.766296 0.851501\n0.959961 0.766937 0.851471\n0.066559 0.772369 0.848663\n0.084015 0.773071 0.848633\n0.103180 0.773804 0.848633\n0.124146 0.774567 0.848572\n0.147400 0.775269 0.848541\n0.173157 0.776031 0.848572\n0.201630 0.776764 0.848541\n0.232727 0.777466 0.848572\n0.266266 0.778198 0.848541\n0.301971 0.778931 0.848541\n0.339783 0.779602 0.848511\n0.379272 0.780334 0.848511\n0.420074 0.781036 0.848450\n0.461884 0.781708 0.848450\n0.503418 0.782379 0.848450\n0.542755 0.783081 0.848419\n0.579620 0.783752 0.848389\n0.613953 0.784424 0.848389\n0.645935 0.785126 0.848389\n0.675720 0.785767 0.848328\n0.703735 0.786377 0.848328\n0.730133 0.787048 0.848328\n0.755280 0.787659 0.848297\n0.779297 0.788300 0.848297\n0.802429 0.788879 0.848267\n0.824890 0.789551 0.848297\n0.846893 0.790100 0.848236\n0.868652 0.790680 0.848267\n0.890472 0.791260 0.848236\n0.912567 0.791840 0.848236\n0.935486 0.792419 0.848206\n0.959961 0.792938 0.848206\n0.068298 0.800415 0.845154\n0.085907 0.801025 0.845154\n0.105103 0.801666 0.845123\n0.126221 0.802277 0.845184\n0.149628 0.802917 0.845154\n0.175537 0.803528 0.845184\n0.204132 0.804138 0.845184\n0.235352 0.804779 0.845184\n0.268921 0.805359 0.845154\n0.304718 0.805939 0.845154\n0.342499 0.806549 0.845123\n0.381927 0.807159 0.845154\n0.422699 0.807709 0.845154\n0.464355 0.808319 0.845154\n0.505707 0.808899 0.845093\n0.544739 0.809479 0.845154\n0.581360 0.810059 0.845123\n0.615509 0.810577 0.845093\n0.647186 0.811157 0.845123\n0.676849 0.811707 0.845123\n0.704681 0.812225 0.845093\n0.730988 0.812775 0.845123\n0.755981 0.813324 0.845062\n0.779846 0.813843 0.845123\n0.802917 0.814331 0.845093\n0.825287 0.814789 0.845093\n0.847229 0.815369 0.845123\n0.868896 0.815826 0.845123\n0.890656 0.816284 0.845123\n0.912689 0.816742 0.845123\n0.935577 0.817200 0.845093\n0.959961 0.817657 0.845123\n0.070068 0.827026 0.841827\n0.087738 0.827576 0.841888\n0.107117 0.828094 0.841888\n0.128326 0.828613 0.841919\n0.151855 0.829132 0.841919\n0.177917 0.829620 0.841949\n0.206696 0.830170 0.841949\n0.237976 0.830658 0.841949\n0.271606 0.831177 0.841949\n0.307404 0.831696 0.841949\n0.345184 0.832184 0.841980\n0.384521 0.832642 0.841949\n0.425262 0.833160 0.841949\n0.466858 0.833679 0.842010\n0.507935 0.834137 0.842010\n0.546722 0.834564 0.841980\n0.583038 0.835083 0.842010\n0.616943 0.835541 0.842010\n0.648499 0.836029 0.842010\n0.677948 0.836426 0.842041\n0.705597 0.836884 0.842010\n0.731720 0.837341 0.842072\n0.756622 0.837769 0.842041\n0.780457 0.838196 0.842072\n0.803375 0.838623 0.842102\n0.825684 0.839020 0.842102\n0.847565 0.839447 0.842102\n0.869141 0.839874 0.842102\n0.890839 0.840240 0.842102\n0.912811 0.840637 0.842133\n0.935638 0.841003 0.842133\n0.959961 0.841370 0.842163\n0.071808 0.852539 0.838715\n0.089630 0.852966 0.838776\n0.109070 0.853424 0.838776\n0.130463 0.853821 0.838806\n0.154083 0.854279 0.838806\n0.180298 0.854675 0.838837\n0.209167 0.855103 0.838837\n0.240540 0.855530 0.838867\n0.274261 0.855957 0.838898\n0.310089 0.856384 0.838867\n0.347839 0.856781 0.838898\n0.387177 0.857178 0.838959\n0.427795 0.857605 0.838959\n0.469238 0.858002 0.838928\n0.510132 0.858368 0.838989\n0.548584 0.858765 0.838989\n0.584717 0.859131 0.839020\n0.618378 0.859528 0.839050\n0.649689 0.859924 0.839020\n0.678955 0.860291 0.839111\n0.706451 0.860626 0.839081\n0.732513 0.861023 0.839081\n0.757233 0.861359 0.839142\n0.781006 0.861694 0.839172\n0.803833 0.862061 0.839172\n0.826050 0.862366 0.839203\n0.847839 0.862701 0.839172\n0.869415 0.863068 0.839233\n0.890961 0.863342 0.839233\n0.912933 0.863647 0.839264\n0.935699 0.863953 0.839264\n0.959961 0.864258 0.839294\n0.073547 0.877197 0.835693\n0.091492 0.877563 0.835724\n0.111023 0.877869 0.835754\n0.132538 0.878235 0.835754\n0.156311 0.878571 0.835785\n0.182678 0.878937 0.835815\n0.211670 0.879272 0.835876\n0.243134 0.879639 0.835846\n0.276886 0.879944 0.835876\n0.312714 0.880310 0.835938\n0.350464 0.880615 0.835968\n0.389740 0.880951 0.835968\n0.430298 0.881287 0.835999\n0.471619 0.881592 0.836029\n0.512238 0.881927 0.836060\n0.550476 0.882202 0.836090\n0.586334 0.882538 0.836090\n0.619781 0.882843 0.836151\n0.650879 0.883179 0.836151\n0.679993 0.883453 0.836182\n0.707336 0.883728 0.836243\n0.733246 0.884033 0.836273\n0.757904 0.884277 0.836304\n0.781525 0.884613 0.836273\n0.804291 0.884857 0.836304\n0.826447 0.885101 0.836365\n0.848145 0.885406 0.836365\n0.869598 0.885620 0.836426\n0.891144 0.885895 0.836426\n0.913055 0.886108 0.836456\n0.935791 0.886353 0.836456\n0.959961 0.886536 0.836517\n0.075348 0.901276 0.832703\n0.093323 0.901581 0.832733\n0.113007 0.901855 0.832764\n0.134644 0.902130 0.832825\n0.158539 0.902374 0.832855\n0.185059 0.902679 0.832855\n0.214081 0.902924 0.832886\n0.245636 0.903229 0.832977\n0.279449 0.903473 0.832977\n0.315338 0.903748 0.833008\n0.353027 0.903992 0.833069\n0.392273 0.904236 0.833099\n0.432739 0.904510 0.833099\n0.473938 0.904755 0.833160\n0.514221 0.905029 0.833160\n0.552246 0.905212 0.833221\n0.587921 0.905487 0.833252\n0.621094 0.905731 0.833282\n0.652008 0.905914 0.833344\n0.680939 0.906189 0.833374\n0.708160 0.906403 0.833405\n0.733978 0.906616 0.833405\n0.758484 0.906830 0.833466\n0.781982 0.907074 0.833496\n0.804718 0.907257 0.833527\n0.826752 0.907471 0.833588\n0.848419 0.907654 0.833588\n0.869843 0.907867 0.833618\n0.891327 0.908051 0.833618\n0.913147 0.908203 0.833710\n0.935822 0.908417 0.833710\n0.959961 0.908569 0.833710\n0.077118 0.925201 0.829712\n0.095215 0.925385 0.829803\n0.114990 0.925598 0.829834\n0.136719 0.925812 0.829865\n0.160736 0.925995 0.829895\n0.187378 0.926178 0.829956\n0.216553 0.926392 0.829987\n0.248199 0.926636 0.830017\n0.282013 0.926819 0.830078\n0.317902 0.927002 0.830139\n0.355591 0.927185 0.830170\n0.394745 0.927399 0.830200\n0.435150 0.927551 0.830231\n0.476166 0.927765 0.830292\n0.516296 0.927917 0.830353\n0.554016 0.928101 0.830383\n0.589386 0.928253 0.830444\n0.622375 0.928467 0.830475\n0.653107 0.928619 0.830536\n0.681915 0.928802 0.830536\n0.708984 0.928955 0.830566\n0.734650 0.929108 0.830658\n0.759064 0.929291 0.830658\n0.782501 0.929443 0.830719\n0.805115 0.929565 0.830750\n0.827087 0.929688 0.830780\n0.848663 0.929871 0.830780\n0.870056 0.930023 0.830872\n0.891510 0.930145 0.830872\n0.913269 0.930298 0.830902\n0.935852 0.930420 0.830933\n0.959961 0.930511 0.830933\n0.078857 0.949188 0.826752\n0.097046 0.949341 0.826813\n0.116913 0.949524 0.826843\n0.138733 0.949646 0.826904\n0.162964 0.949768 0.826965\n0.189697 0.949890 0.826996\n0.219025 0.950043 0.827057\n0.250641 0.950165 0.827118\n0.284454 0.950287 0.827179\n0.320404 0.950409 0.827209\n0.358032 0.950562 0.827240\n0.397125 0.950684 0.827332\n0.437500 0.950806 0.827362\n0.478333 0.950928 0.827423\n0.518188 0.951019 0.827454\n0.555695 0.951172 0.827545\n0.590851 0.951294 0.827576\n0.623688 0.951385 0.827606\n0.654205 0.951508 0.827637\n0.682831 0.951660 0.827728\n0.709747 0.951752 0.827728\n0.735291 0.951843 0.827820\n0.759613 0.951935 0.827850\n0.782990 0.952026 0.827881\n0.805481 0.952148 0.827911\n0.827423 0.952240 0.827911\n0.848907 0.952332 0.828003\n0.870270 0.952423 0.828003\n0.891602 0.952515 0.828064\n0.913391 0.952576 0.828064\n0.935944 0.952667 0.828094\n0.959961 0.952759 0.828125\n0.080627 0.973877 0.823669\n0.098907 0.973969 0.823761\n0.118866 0.974030 0.823822\n0.140839 0.974121 0.823853\n0.165131 0.974182 0.823914\n0.191986 0.974243 0.824005\n0.221344 0.974335 0.824036\n0.253082 0.974396 0.824097\n0.286987 0.974426 0.824158\n0.322815 0.974518 0.824219\n0.360474 0.974579 0.824280\n0.399506 0.974609 0.824341\n0.439758 0.974731 0.824402\n0.480469 0.974762 0.824463\n0.520050 0.974854 0.824524\n0.557281 0.974884 0.824554\n0.592285 0.974976 0.824615\n0.624878 0.975006 0.824677\n0.655212 0.975067 0.824707\n0.683685 0.975098 0.824799\n0.710510 0.975189 0.824829\n0.735901 0.975220 0.824860\n0.760162 0.975281 0.824890\n0.783417 0.975311 0.824921\n0.805847 0.975342 0.825012\n0.827728 0.975403 0.825043\n0.849182 0.975464 0.825073\n0.870392 0.975494 0.825073\n0.891754 0.975555 0.825134\n0.913483 0.975586 0.825165\n0.935974 0.975647 0.825226\n0.959961 0.975708 0.825226\n0.082336 1.000000 0.820435\n0.100677 1.000000 0.820496\n0.120758 1.000000 0.820557\n0.142853 1.000000 0.820648\n0.167267 1.000000 0.820709\n0.194244 1.000000 0.820770\n0.223694 1.000000 0.820831\n0.255463 1.000000 0.820923\n0.289368 1.000000 0.820984\n0.325226 1.000000 0.821045\n0.362793 1.000000 0.821106\n0.401794 1.000000 0.821198\n0.441925 1.000000 0.821259\n0.482544 1.000000 0.821289\n0.521851 1.000000 0.821350\n0.558899 1.000000 0.821442\n0.593628 1.000000 0.821472\n0.625977 1.000000 0.821564\n0.656219 1.000000 0.821594\n0.684479 1.000000 0.821625\n0.711182 1.000000 0.821686\n0.736481 1.000000 0.821716\n0.760651 1.000000 0.821808\n0.783813 1.000000 0.821838\n0.806183 1.000000 0.821869\n0.827972 1.000000 0.821899\n0.849396 1.000000 0.821960\n0.870575 1.000000 0.821991\n0.891876 1.000000 0.822052\n0.913544 1.000000 0.822083\n0.936005 1.000000 0.822113\n0.959961 1.000000 0.822144\n0.035339 0.006989 0.971130\n0.051025 0.007782 0.971069\n0.067932 0.008575 0.971008\n0.086395 0.009430 0.970947\n0.106659 0.010254 0.970825\n0.129150 0.011139 0.970764\n0.154114 0.012054 0.970673\n0.182129 0.012970 0.970581\n0.213165 0.013916 0.970459\n0.247070 0.014893 0.970428\n0.283691 0.015869 0.970306\n0.322754 0.016876 0.970184\n0.364014 0.017914 0.970093\n0.406952 0.018921 0.969971\n0.451263 0.020020 0.969879\n0.495880 0.021118 0.969788\n0.538269 0.022217 0.969666\n0.577881 0.023315 0.969574\n0.614716 0.024475 0.969452\n0.648773 0.025635 0.969330\n0.680542 0.026825 0.969208\n0.710175 0.028015 0.969116\n0.738190 0.029205 0.968994\n0.764740 0.030487 0.968842\n0.790131 0.031708 0.968719\n0.814667 0.032959 0.968628\n0.838501 0.034271 0.968475\n0.862000 0.035522 0.968353\n0.885468 0.036865 0.968201\n0.909149 0.038177 0.968109\n0.933716 0.039520 0.967957\n0.959961 0.040863 0.967834\n0.036255 0.023651 0.969025\n0.052094 0.024506 0.968994\n0.069092 0.025360 0.968872\n0.087616 0.026245 0.968781\n0.107971 0.027130 0.968719\n0.130585 0.028107 0.968597\n0.155762 0.029053 0.968475\n0.183868 0.030029 0.968445\n0.215027 0.031036 0.968353\n0.249115 0.032104 0.968201\n0.285767 0.033142 0.968109\n0.324890 0.034180 0.968018\n0.366150 0.035309 0.967896\n0.409119 0.036377 0.967804\n0.453400 0.037567 0.967682\n0.497833 0.038696 0.967560\n0.540070 0.039886 0.967438\n0.579468 0.041077 0.967316\n0.616089 0.042267 0.967194\n0.649963 0.043488 0.967102\n0.681549 0.044769 0.966949\n0.711060 0.046051 0.966827\n0.738953 0.047333 0.966705\n0.765411 0.048645 0.966583\n0.790680 0.049927 0.966461\n0.815094 0.051300 0.966309\n0.838898 0.052612 0.966156\n0.862305 0.054016 0.966034\n0.885681 0.055420 0.965881\n0.909332 0.056793 0.965729\n0.933807 0.058228 0.965576\n0.959961 0.059662 0.965454\n0.037323 0.041321 0.966797\n0.053162 0.042267 0.966705\n0.070282 0.043182 0.966614\n0.088898 0.044159 0.966522\n0.109375 0.045135 0.966400\n0.132111 0.046173 0.966339\n0.157410 0.047211 0.966248\n0.185699 0.048279 0.966125\n0.217010 0.049347 0.966003\n0.251190 0.050446 0.965881\n0.287933 0.051605 0.965759\n0.327148 0.052734 0.965698\n0.368408 0.053955 0.965546\n0.411316 0.055115 0.965424\n0.455566 0.056335 0.965302\n0.499878 0.057587 0.965179\n0.541840 0.058838 0.965057\n0.581085 0.060120 0.964935\n0.617462 0.061432 0.964813\n0.651184 0.062744 0.964661\n0.682587 0.064117 0.964478\n0.711975 0.065460 0.964386\n0.739716 0.066833 0.964264\n0.766022 0.068268 0.964081\n0.791260 0.069641 0.963959\n0.815613 0.071075 0.963837\n0.839294 0.072510 0.963654\n0.862640 0.073975 0.963501\n0.885895 0.075500 0.963348\n0.909454 0.076996 0.963196\n0.933868 0.078491 0.963074\n0.959961 0.080078 0.962860\n0.038422 0.060364 0.964386\n0.054352 0.061371 0.964294\n0.071503 0.062408 0.964142\n0.090271 0.063507 0.964111\n0.110840 0.064575 0.963989\n0.133728 0.065674 0.963837\n0.159149 0.066833 0.963745\n0.187622 0.067993 0.963623\n0.219055 0.069153 0.963501\n0.253326 0.070404 0.963379\n0.290131 0.071625 0.963257\n0.329407 0.072876 0.963135\n0.370636 0.074127 0.963013\n0.413696 0.075439 0.962860\n0.457794 0.076782 0.962708\n0.501923 0.078094 0.962616\n0.543701 0.079468 0.962463\n0.582672 0.080872 0.962311\n0.618866 0.082275 0.962128\n0.652374 0.083710 0.962036\n0.683655 0.085175 0.961853\n0.712921 0.086639 0.961700\n0.740509 0.088104 0.961548\n0.766724 0.089691 0.961395\n0.791840 0.091156 0.961243\n0.816071 0.092743 0.961060\n0.839691 0.094238 0.960907\n0.862946 0.095886 0.960754\n0.886139 0.097504 0.960602\n0.909668 0.099091 0.960388\n0.933990 0.100769 0.960236\n0.959961 0.102417 0.960052\n0.039551 0.081207 0.961700\n0.055542 0.082336 0.961639\n0.072815 0.083496 0.961548\n0.091675 0.084656 0.961395\n0.112366 0.085846 0.961273\n0.135345 0.087097 0.961121\n0.160950 0.088379 0.960999\n0.189575 0.089600 0.960907\n0.221161 0.090912 0.960754\n0.255554 0.092255 0.960602\n0.292480 0.093567 0.960449\n0.331787 0.094971 0.960327\n0.373016 0.096344 0.960175\n0.415955 0.097778 0.959991\n0.460114 0.099243 0.959900\n0.504028 0.100677 0.959747\n0.545563 0.102203 0.959534\n0.584320 0.103760 0.959412\n0.620300 0.105225 0.959259\n0.653687 0.106812 0.959076\n0.684723 0.108459 0.958893\n0.713806 0.110016 0.958771\n0.741302 0.111633 0.958588\n0.767395 0.113281 0.958405\n0.792419 0.114960 0.958221\n0.816589 0.116638 0.958069\n0.840088 0.118317 0.957886\n0.863281 0.120087 0.957672\n0.886414 0.121826 0.957520\n0.909821 0.123566 0.957306\n0.934082 0.125366 0.957062\n0.959961 0.127197 0.956940\n0.040741 0.104279 0.958832\n0.056763 0.105499 0.958679\n0.074158 0.106750 0.958557\n0.093140 0.108093 0.958405\n0.113953 0.109406 0.958252\n0.137146 0.110779 0.958160\n0.162872 0.112152 0.958008\n0.191650 0.113556 0.957855\n0.223328 0.115021 0.957642\n0.257843 0.116425 0.957520\n0.294800 0.117981 0.957367\n0.334167 0.119507 0.957153\n0.375488 0.121033 0.957062\n0.418396 0.122589 0.956879\n0.462433 0.124207 0.956665\n0.506165 0.125793 0.956573\n0.547455 0.127441 0.956390\n0.585968 0.129150 0.956177\n0.621735 0.130798 0.955994\n0.654938 0.132538 0.955841\n0.685822 0.134277 0.955658\n0.714752 0.135986 0.955444\n0.742126 0.137817 0.955231\n0.768066 0.139587 0.955078\n0.792999 0.141418 0.954895\n0.817017 0.143250 0.954651\n0.840485 0.145142 0.954468\n0.863586 0.147003 0.954254\n0.886627 0.148895 0.954010\n0.909943 0.150787 0.953857\n0.934143 0.152771 0.953644\n0.959961 0.154755 0.953400\n0.041992 0.130005 0.955536\n0.058105 0.131348 0.955383\n0.075562 0.132782 0.955231\n0.094666 0.134277 0.955109\n0.115631 0.135742 0.954926\n0.138885 0.137238 0.954773\n0.164856 0.138794 0.954559\n0.193726 0.140350 0.954437\n0.225586 0.141968 0.954254\n0.260132 0.143555 0.954041\n0.297272 0.145233 0.953918\n0.336670 0.146973 0.953705\n0.377899 0.148621 0.953491\n0.420868 0.150391 0.953369\n0.464813 0.152161 0.953156\n0.508331 0.153900 0.952972\n0.549377 0.155731 0.952759\n0.587708 0.157562 0.952576\n0.623199 0.159424 0.952362\n0.656158 0.161316 0.952148\n0.686859 0.163208 0.951935\n0.715698 0.165161 0.951752\n0.742920 0.167145 0.951569\n0.768768 0.169067 0.951294\n0.793579 0.171082 0.951080\n0.817505 0.173096 0.950867\n0.840912 0.175110 0.950623\n0.863892 0.177216 0.950439\n0.886871 0.179291 0.950195\n0.910126 0.181335 0.949951\n0.934235 0.183472 0.949707\n0.959961 0.185577 0.949524\n0.043304 0.158936 0.951843\n0.059509 0.160492 0.951630\n0.077026 0.162079 0.951508\n0.096191 0.163727 0.951324\n0.117310 0.165344 0.951111\n0.140747 0.167053 0.950958\n0.166809 0.168762 0.950775\n0.195862 0.170502 0.950531\n0.227905 0.172302 0.950409\n0.262543 0.174103 0.950195\n0.299683 0.175964 0.949951\n0.339142 0.177795 0.949799\n0.380463 0.179657 0.949585\n0.423309 0.181610 0.949341\n0.467163 0.183563 0.949158\n0.510498 0.185516 0.948944\n0.551331 0.187531 0.948730\n0.589355 0.189575 0.948486\n0.624695 0.191589 0.948273\n0.657410 0.193665 0.948059\n0.687988 0.195709 0.947845\n0.716675 0.197845 0.947571\n0.743744 0.199982 0.947327\n0.769470 0.202087 0.947113\n0.794189 0.204285 0.946838\n0.818024 0.206482 0.946625\n0.841278 0.208618 0.946381\n0.864258 0.210907 0.946106\n0.887146 0.213104 0.945862\n0.910339 0.215332 0.945679\n0.934296 0.217590 0.945404\n0.959961 0.219818 0.945129\n0.044617 0.191650 0.947662\n0.060883 0.193390 0.947479\n0.078552 0.195190 0.947235\n0.097809 0.196960 0.947083\n0.119049 0.198792 0.946869\n0.142639 0.200684 0.946625\n0.168884 0.202545 0.946472\n0.198120 0.204468 0.946259\n0.230225 0.206451 0.945984\n0.264984 0.208374 0.945831\n0.302277 0.210419 0.945587\n0.341705 0.212463 0.945343\n0.383026 0.214508 0.945129\n0.425842 0.216583 0.944916\n0.469666 0.218719 0.944672\n0.512695 0.220795 0.944427\n0.553314 0.222961 0.944183\n0.591064 0.225098 0.943970\n0.626190 0.227325 0.943756\n0.658752 0.229553 0.943451\n0.689087 0.231750 0.943207\n0.717590 0.234009 0.942963\n0.744537 0.236298 0.942657\n0.770172 0.238556 0.942474\n0.794739 0.240845 0.942200\n0.818512 0.243195 0.941925\n0.841705 0.245483 0.941650\n0.864502 0.247864 0.941437\n0.887329 0.250153 0.941162\n0.910492 0.252502 0.940887\n0.934387 0.254883 0.940613\n0.959961 0.257233 0.940369\n0.045990 0.228180 0.942963\n0.062347 0.230072 0.942749\n0.080109 0.232025 0.942566\n0.099457 0.233948 0.942291\n0.120880 0.235962 0.942139\n0.144562 0.237946 0.941895\n0.170959 0.239960 0.941650\n0.200409 0.242096 0.941467\n0.232635 0.244202 0.941223\n0.267487 0.246277 0.940948\n0.304810 0.248413 0.940735\n0.344299 0.250610 0.940491\n0.385590 0.252808 0.940247\n0.428406 0.255005 0.940002\n0.472076 0.257233 0.939728\n0.514954 0.259491 0.939514\n0.555206 0.261810 0.939270\n0.592773 0.264038 0.938965\n0.627655 0.266357 0.938690\n0.660004 0.268738 0.938446\n0.690186 0.271027 0.938171\n0.718536 0.273376 0.937958\n0.745361 0.275757 0.937653\n0.770874 0.278107 0.937378\n0.795349 0.280518 0.937103\n0.819031 0.282928 0.936890\n0.842102 0.285309 0.936615\n0.864868 0.287750 0.936310\n0.887573 0.290131 0.936035\n0.910645 0.292572 0.935791\n0.934509 0.295044 0.935516\n0.959961 0.297424 0.935211\n0.047394 0.268280 0.937836\n0.063843 0.270264 0.937592\n0.081696 0.272339 0.937378\n0.101196 0.274384 0.937164\n0.122681 0.276520 0.936890\n0.146606 0.278656 0.936707\n0.173187 0.280762 0.936462\n0.202728 0.282990 0.936188\n0.235138 0.285217 0.935944\n0.270081 0.287415 0.935730\n0.307465 0.289673 0.935455\n0.346954 0.291992 0.935181\n0.388245 0.294220 0.934937\n0.431000 0.296570 0.934692\n0.474518 0.298828 0.934418\n0.517181 0.301178 0.934143\n0.557220 0.303558 0.933868\n0.594482 0.305908 0.933624\n0.629150 0.308319 0.933319\n0.661255 0.310760 0.933075\n0.691284 0.313141 0.932800\n0.719482 0.315552 0.932526\n0.746155 0.317993 0.932251\n0.771545 0.320404 0.931946\n0.795929 0.322845 0.931732\n0.819489 0.325287 0.931458\n0.842499 0.327698 0.931152\n0.865173 0.330200 0.930908\n0.887878 0.332642 0.930634\n0.910767 0.335144 0.930328\n0.934570 0.337585 0.930084\n0.959961 0.339996 0.929810\n0.048859 0.311493 0.932281\n0.065399 0.313599 0.932068\n0.083344 0.315765 0.931793\n0.102936 0.317902 0.931610\n0.124603 0.320129 0.931366\n0.148651 0.322357 0.931061\n0.175385 0.324554 0.930847\n0.205139 0.326843 0.930603\n0.237610 0.329163 0.930328\n0.272644 0.331360 0.930084\n0.310089 0.333740 0.929810\n0.349548 0.335999 0.929565\n0.390900 0.338379 0.929291\n0.433594 0.340790 0.929016\n0.477020 0.343079 0.928741\n0.519409 0.345551 0.928467\n0.559204 0.347961 0.928162\n0.596191 0.350281 0.927948\n0.630615 0.352753 0.927673\n0.662567 0.355225 0.927368\n0.692383 0.357605 0.927094\n0.720459 0.360077 0.926819\n0.746979 0.362518 0.926575\n0.772247 0.364929 0.926270\n0.796478 0.367462 0.925995\n0.819977 0.369873 0.925751\n0.842896 0.372345 0.925476\n0.865509 0.374817 0.925171\n0.888031 0.377197 0.924957\n0.910950 0.379669 0.924652\n0.934692 0.382172 0.924347\n0.959961 0.384552 0.924072\n0.050323 0.357452 0.926392\n0.066956 0.359619 0.926178\n0.085022 0.361816 0.925934\n0.104767 0.364014 0.925659\n0.126587 0.366272 0.925415\n0.150757 0.368591 0.925171\n0.177643 0.370819 0.924927\n0.207520 0.373138 0.924652\n0.240143 0.375458 0.924377\n0.275269 0.377747 0.924133\n0.312775 0.380127 0.923859\n0.352264 0.382477 0.923584\n0.393555 0.384827 0.923309\n0.436249 0.387238 0.923065\n0.479553 0.389557 0.922760\n0.521637 0.391998 0.922546\n0.561157 0.394440 0.922241\n0.597931 0.396790 0.921936\n0.632141 0.399231 0.921692\n0.663879 0.401672 0.921387\n0.693481 0.404022 0.921173\n0.721375 0.406464 0.920868\n0.747803 0.408875 0.920624\n0.772980 0.411316 0.920349\n0.797119 0.413757 0.920105\n0.820465 0.416168 0.919800\n0.843262 0.418579 0.919586\n0.865814 0.421021 0.919281\n0.888306 0.423401 0.918976\n0.911133 0.425781 0.918732\n0.934784 0.428192 0.918488\n0.959961 0.430542 0.918213\n0.051910 0.405609 0.920258\n0.068604 0.407806 0.919952\n0.086731 0.410034 0.919739\n0.106598 0.412231 0.919525\n0.128540 0.414520 0.919220\n0.152893 0.416809 0.918976\n0.180023 0.419037 0.918732\n0.210022 0.421356 0.918488\n0.242706 0.423645 0.918213\n0.277893 0.425934 0.917938\n0.315491 0.428284 0.917664\n0.354980 0.430664 0.917419\n0.396240 0.432953 0.917114\n0.438873 0.435333 0.916901\n0.482086 0.437683 0.916626\n0.523865 0.440033 0.916321\n0.563080 0.442444 0.916077\n0.599640 0.444763 0.915802\n0.633575 0.447144 0.915588\n0.665131 0.449585 0.915283\n0.694580 0.451874 0.915039\n0.722351 0.454315 0.914764\n0.748596 0.456573 0.914551\n0.773651 0.458954 0.914246\n0.797668 0.461304 0.914032\n0.820923 0.463623 0.913757\n0.843689 0.466034 0.913452\n0.866119 0.468353 0.913208\n0.888550 0.470642 0.912964\n0.911285 0.472961 0.912689\n0.934845 0.475250 0.912415\n0.959961 0.477478 0.912170\n0.053467 0.455414 0.913849\n0.070251 0.457581 0.913635\n0.088531 0.459808 0.913330\n0.108521 0.462006 0.913116\n0.130585 0.464233 0.912842\n0.155121 0.466400 0.912628\n0.182312 0.468658 0.912354\n0.212494 0.470886 0.912109\n0.245300 0.473114 0.911835\n0.280609 0.475403 0.911591\n0.318176 0.477661 0.911316\n0.357697 0.479889 0.911133\n0.399017 0.482178 0.910858\n0.441559 0.484436 0.910553\n0.484528 0.486664 0.910339\n0.526123 0.488953 0.910065\n0.565033 0.491272 0.909851\n0.601318 0.493469 0.909576\n0.635040 0.495728 0.909332\n0.666351 0.497986 0.909119\n0.695679 0.500183 0.908875\n0.723267 0.502472 0.908569\n0.749390 0.504669 0.908386\n0.774292 0.506927 0.908142\n0.798248 0.509125 0.907837\n0.821442 0.511261 0.907623\n0.844055 0.513489 0.907410\n0.866455 0.515594 0.907166\n0.888794 0.517700 0.906921\n0.911469 0.519806 0.906677\n0.934967 0.521820 0.906433\n0.959961 0.523895 0.906189\n0.055054 0.505829 0.907349\n0.071930 0.507874 0.907135\n0.090302 0.509979 0.906921\n0.110413 0.512024 0.906708\n0.132629 0.514099 0.906464\n0.157318 0.516144 0.906219\n0.184753 0.518188 0.906006\n0.215027 0.520294 0.905762\n0.247925 0.522339 0.905518\n0.283325 0.524445 0.905304\n0.320923 0.526520 0.905090\n0.360474 0.528534 0.904846\n0.401703 0.530579 0.904633\n0.444183 0.532684 0.904388\n0.487061 0.534698 0.904205\n0.528259 0.536743 0.903961\n0.566956 0.538757 0.903748\n0.602997 0.540741 0.903564\n0.636475 0.542786 0.903351\n0.667633 0.544739 0.903107\n0.696747 0.546753 0.902924\n0.724182 0.548737 0.902710\n0.750183 0.550629 0.902466\n0.774994 0.552582 0.902252\n0.798798 0.554565 0.902069\n0.821869 0.556366 0.901855\n0.844452 0.558258 0.901642\n0.866699 0.560150 0.901428\n0.889008 0.561981 0.901215\n0.911621 0.563812 0.901001\n0.935028 0.565613 0.900848\n0.959961 0.567383 0.900635\n0.056671 0.553894 0.901215\n0.073608 0.555756 0.901031\n0.092102 0.557587 0.900818\n0.112335 0.559387 0.900604\n0.134735 0.561249 0.900391\n0.159576 0.563141 0.900177\n0.187134 0.564880 0.899994\n0.217560 0.566772 0.899811\n0.250610 0.568512 0.899628\n0.286041 0.570312 0.899414\n0.323730 0.572174 0.899231\n0.363281 0.573944 0.899017\n0.404388 0.575775 0.898895\n0.446808 0.577606 0.898651\n0.489563 0.579315 0.898468\n0.530518 0.581146 0.898315\n0.568909 0.582886 0.898132\n0.604675 0.584656 0.897919\n0.637909 0.586395 0.897766\n0.668884 0.588074 0.897583\n0.697815 0.589844 0.897369\n0.725128 0.591553 0.897186\n0.750946 0.593170 0.897034\n0.775635 0.594910 0.896851\n0.799347 0.596558 0.896667\n0.822357 0.598145 0.896484\n0.844818 0.599792 0.896301\n0.867035 0.601440 0.896118\n0.889252 0.602966 0.895996\n0.911774 0.604584 0.895813\n0.935120 0.606110 0.895630\n0.959961 0.607635 0.895477\n0.058289 0.598358 0.895508\n0.075378 0.599976 0.895355\n0.093964 0.601593 0.895172\n0.114319 0.603149 0.894989\n0.136871 0.604767 0.894806\n0.161835 0.606384 0.894653\n0.189575 0.607941 0.894531\n0.220123 0.609558 0.894318\n0.253235 0.611145 0.894165\n0.288757 0.612671 0.893982\n0.326508 0.614258 0.893890\n0.366028 0.615784 0.893677\n0.407166 0.617371 0.893524\n0.449463 0.618927 0.893402\n0.491974 0.620483 0.893250\n0.532684 0.622009 0.893066\n0.570801 0.623566 0.892883\n0.606354 0.625031 0.892792\n0.639343 0.626587 0.892578\n0.670074 0.628021 0.892456\n0.698883 0.629486 0.892334\n0.726013 0.630981 0.892181\n0.751740 0.632416 0.891998\n0.776337 0.633820 0.891846\n0.799927 0.635254 0.891693\n0.822815 0.636688 0.891541\n0.845215 0.638031 0.891449\n0.867340 0.639435 0.891296\n0.889465 0.640778 0.891144\n0.911957 0.642151 0.890991\n0.935181 0.643433 0.890869\n0.959961 0.644745 0.890717\n0.059967 0.639221 0.890259\n0.077148 0.640625 0.890137\n0.095856 0.641998 0.889984\n0.116333 0.643372 0.889862\n0.138977 0.644745 0.889740\n0.164154 0.646118 0.889557\n0.192078 0.647430 0.889465\n0.222778 0.648834 0.889313\n0.255951 0.650146 0.889221\n0.291534 0.651550 0.889038\n0.329254 0.652924 0.888916\n0.368744 0.654205 0.888824\n0.409882 0.655579 0.888702\n0.452057 0.656891 0.888519\n0.494415 0.658203 0.888397\n0.534790 0.659546 0.888306\n0.572662 0.660828 0.888153\n0.608002 0.662109 0.888031\n0.640778 0.663361 0.887939\n0.671295 0.664642 0.887756\n0.699921 0.665894 0.887665\n0.726929 0.667175 0.887543\n0.752502 0.668365 0.887390\n0.776947 0.669586 0.887268\n0.800507 0.670807 0.887177\n0.823303 0.671967 0.887054\n0.845581 0.673187 0.886932\n0.867615 0.674316 0.886810\n0.889648 0.675476 0.886688\n0.912048 0.676636 0.886566\n0.935242 0.677734 0.886505\n0.959961 0.678802 0.886383\n0.061707 0.676605 0.885468\n0.078918 0.677795 0.885376\n0.097717 0.678955 0.885284\n0.118347 0.680115 0.885132\n0.141174 0.681335 0.885040\n0.166473 0.682495 0.884918\n0.194580 0.683685 0.884857\n0.225372 0.684814 0.884705\n0.258636 0.685974 0.884583\n0.294312 0.687134 0.884552\n0.332001 0.688324 0.884430\n0.371552 0.689453 0.884308\n0.412598 0.690582 0.884186\n0.454651 0.691711 0.884125\n0.496826 0.692841 0.883972\n0.536957 0.693939 0.883911\n0.574554 0.695038 0.883820\n0.609589 0.696167 0.883667\n0.642151 0.697266 0.883575\n0.672485 0.698334 0.883484\n0.700958 0.699402 0.883362\n0.727783 0.700439 0.883270\n0.753265 0.701477 0.883209\n0.777588 0.702515 0.883087\n0.800995 0.703552 0.882996\n0.823700 0.704559 0.882874\n0.845947 0.705566 0.882782\n0.867889 0.706512 0.882690\n0.889893 0.707520 0.882629\n0.912201 0.708466 0.882507\n0.935333 0.709381 0.882446\n0.959961 0.710327 0.882355\n0.063385 0.710999 0.881134\n0.080750 0.712006 0.881012\n0.099609 0.713013 0.880920\n0.120422 0.714050 0.880829\n0.143341 0.715057 0.880798\n0.168793 0.716003 0.880676\n0.197083 0.717041 0.880554\n0.227997 0.718048 0.880524\n0.261383 0.719025 0.880432\n0.297089 0.720001 0.880341\n0.334747 0.721008 0.880219\n0.374268 0.721985 0.880188\n0.415222 0.722931 0.880066\n0.457214 0.723877 0.880005\n0.499207 0.724854 0.879944\n0.539062 0.725800 0.879822\n0.576355 0.726746 0.879761\n0.611206 0.727722 0.879669\n0.643524 0.728607 0.879578\n0.673645 0.729492 0.879486\n0.701935 0.730438 0.879425\n0.728638 0.731323 0.879333\n0.753998 0.732178 0.879272\n0.778168 0.733093 0.879181\n0.801544 0.733917 0.879089\n0.824158 0.734802 0.879028\n0.846252 0.735657 0.878967\n0.868195 0.736450 0.878876\n0.890076 0.737274 0.878815\n0.912323 0.738068 0.878754\n0.935394 0.738861 0.878632\n0.959961 0.739685 0.878601\n0.065125 0.742859 0.877045\n0.082581 0.743744 0.876984\n0.101562 0.744568 0.876953\n0.122498 0.745483 0.876831\n0.145599 0.746338 0.876770\n0.171204 0.747162 0.876740\n0.199585 0.748016 0.876648\n0.230621 0.748901 0.876587\n0.264038 0.749725 0.876495\n0.299774 0.750580 0.876495\n0.337585 0.751404 0.876373\n0.376984 0.752228 0.876343\n0.417938 0.753052 0.876282\n0.459839 0.753876 0.876190\n0.501556 0.754700 0.876129\n0.541107 0.755524 0.876038\n0.578186 0.756287 0.875977\n0.612793 0.757080 0.875916\n0.644867 0.757874 0.875854\n0.674805 0.758667 0.875793\n0.702942 0.759399 0.875732\n0.729492 0.760162 0.875671\n0.754730 0.760925 0.875580\n0.778839 0.761658 0.875519\n0.802032 0.762390 0.875488\n0.824585 0.763092 0.875397\n0.846649 0.763794 0.875366\n0.868439 0.764526 0.875305\n0.890289 0.765198 0.875214\n0.912476 0.765839 0.875214\n0.935455 0.766510 0.875153\n0.959961 0.767181 0.875092\n0.066895 0.772614 0.873291\n0.084412 0.773376 0.873230\n0.103546 0.774109 0.873138\n0.124542 0.774841 0.873138\n0.147797 0.775574 0.873077\n0.173584 0.776276 0.873016\n0.202118 0.777039 0.872955\n0.233185 0.777740 0.872955\n0.266693 0.778473 0.872864\n0.302521 0.779175 0.872833\n0.340240 0.779877 0.872803\n0.379730 0.780609 0.872711\n0.420532 0.781281 0.872681\n0.462311 0.781952 0.872620\n0.503815 0.782654 0.872559\n0.543182 0.783356 0.872498\n0.579926 0.783997 0.872467\n0.614258 0.784698 0.872406\n0.646179 0.785370 0.872345\n0.675934 0.785980 0.872314\n0.703918 0.786621 0.872223\n0.730316 0.787292 0.872192\n0.755432 0.787903 0.872192\n0.779419 0.788544 0.872101\n0.802521 0.789154 0.872070\n0.824982 0.789734 0.872040\n0.846924 0.790344 0.871948\n0.868744 0.790894 0.871948\n0.890503 0.791504 0.871887\n0.912598 0.792053 0.871857\n0.935516 0.792603 0.871826\n0.959961 0.793121 0.871796\n0.068634 0.800659 0.869690\n0.086243 0.801239 0.869720\n0.105499 0.801880 0.869659\n0.126648 0.802551 0.869598\n0.150024 0.803131 0.869568\n0.175964 0.803741 0.869537\n0.204620 0.804352 0.869507\n0.235840 0.804993 0.869476\n0.269440 0.805542 0.869476\n0.305237 0.806152 0.869385\n0.342957 0.806763 0.869354\n0.382416 0.807373 0.869324\n0.423218 0.807922 0.869263\n0.464813 0.808533 0.869232\n0.506104 0.809113 0.869202\n0.545135 0.809692 0.869171\n0.581665 0.810242 0.869141\n0.615723 0.810791 0.869080\n0.647461 0.811371 0.869019\n0.677063 0.811920 0.868988\n0.704865 0.812439 0.868988\n0.731110 0.812958 0.868927\n0.756104 0.813507 0.868927\n0.779968 0.814026 0.868896\n0.802979 0.814514 0.868805\n0.825378 0.815002 0.868805\n0.847290 0.815521 0.868774\n0.868958 0.815979 0.868744\n0.890686 0.816467 0.868713\n0.912750 0.816956 0.868713\n0.935577 0.817383 0.868683\n0.959961 0.817841 0.868622\n0.070404 0.827209 0.866364\n0.088135 0.827759 0.866333\n0.107452 0.828308 0.866302\n0.128784 0.828827 0.866302\n0.152283 0.829315 0.866241\n0.178375 0.829834 0.866211\n0.207153 0.830353 0.866241\n0.238373 0.830872 0.866180\n0.272064 0.831329 0.866180\n0.307953 0.831879 0.866150\n0.345673 0.832367 0.866058\n0.385071 0.832825 0.866058\n0.425751 0.833344 0.866058\n0.467285 0.833832 0.866028\n0.508331 0.834320 0.865997\n0.547089 0.834778 0.865967\n0.583374 0.835236 0.865906\n0.617218 0.835724 0.865906\n0.648712 0.836182 0.865906\n0.678101 0.836639 0.865845\n0.705719 0.837067 0.865845\n0.731903 0.837524 0.865814\n0.756744 0.837921 0.865784\n0.780548 0.838379 0.865784\n0.803497 0.838806 0.865753\n0.825745 0.839203 0.865723\n0.847595 0.839600 0.865723\n0.869232 0.839996 0.865723\n0.890839 0.840393 0.865692\n0.912842 0.840759 0.865662\n0.935669 0.841156 0.865631\n0.959961 0.841492 0.865631\n0.072144 0.852692 0.863129\n0.089966 0.853149 0.863129\n0.109406 0.853577 0.863098\n0.130829 0.854004 0.863068\n0.154541 0.854431 0.863129\n0.180725 0.854858 0.863068\n0.209625 0.855286 0.863037\n0.241028 0.855713 0.863037\n0.274750 0.856110 0.862976\n0.310577 0.856537 0.863007\n0.348328 0.856934 0.863007\n0.387665 0.857300 0.862976\n0.428284 0.857758 0.862946\n0.469696 0.858124 0.862946\n0.510468 0.858521 0.862885\n0.548950 0.858917 0.862885\n0.585022 0.859283 0.862915\n0.618622 0.859650 0.862854\n0.649902 0.860046 0.862885\n0.679169 0.860382 0.862854\n0.706635 0.860779 0.862823\n0.732666 0.861145 0.862823\n0.757385 0.861481 0.862823\n0.781097 0.861847 0.862793\n0.803925 0.862183 0.862793\n0.826111 0.862488 0.862793\n0.847900 0.862854 0.862793\n0.869476 0.863159 0.862732\n0.891022 0.863464 0.862732\n0.912933 0.863739 0.862732\n0.935699 0.864075 0.862732\n0.959961 0.864349 0.862701\n0.073914 0.877319 0.860016\n0.091827 0.877655 0.860016\n0.111420 0.878021 0.860046\n0.132935 0.878387 0.860016\n0.156738 0.878723 0.859985\n0.183105 0.879059 0.860016\n0.212128 0.879395 0.859955\n0.243561 0.879730 0.859985\n0.277344 0.880066 0.859985\n0.313263 0.880432 0.859985\n0.350891 0.880707 0.859985\n0.390198 0.881073 0.859955\n0.430786 0.881378 0.859924\n0.472046 0.881683 0.859955\n0.512573 0.882050 0.859955\n0.550812 0.882324 0.859924\n0.586609 0.882629 0.859955\n0.620026 0.882935 0.859924\n0.651093 0.883240 0.859894\n0.680145 0.883545 0.859924\n0.707520 0.883850 0.859894\n0.733368 0.884125 0.859894\n0.758026 0.884399 0.859894\n0.781616 0.884705 0.859924\n0.804352 0.884949 0.859924\n0.826477 0.885193 0.859894\n0.848206 0.885468 0.859863\n0.869629 0.885712 0.859863\n0.891174 0.885956 0.859894\n0.913086 0.886200 0.859863\n0.935791 0.886444 0.859863\n0.959961 0.886658 0.859863\n0.075714 0.901367 0.857025\n0.093719 0.901672 0.856964\n0.113373 0.901947 0.856964\n0.135010 0.902222 0.856995\n0.158966 0.902496 0.856964\n0.185486 0.902771 0.856995\n0.214600 0.903015 0.857025\n0.246124 0.903290 0.856995\n0.279907 0.903564 0.856995\n0.315796 0.903839 0.856995\n0.353455 0.904083 0.856964\n0.392731 0.904358 0.856995\n0.433197 0.904602 0.857025\n0.474335 0.904846 0.856995\n0.514648 0.905121 0.857025\n0.552551 0.905304 0.857025\n0.588196 0.905579 0.856995\n0.621368 0.905792 0.857025\n0.652252 0.906036 0.857025\n0.681152 0.906250 0.857025\n0.708313 0.906494 0.857025\n0.734100 0.906708 0.857056\n0.758606 0.906921 0.857056\n0.782104 0.907135 0.857025\n0.804810 0.907318 0.857025\n0.826843 0.907562 0.857025\n0.848480 0.907715 0.857086\n0.869873 0.907959 0.857056\n0.891357 0.908112 0.857056\n0.913208 0.908325 0.857056\n0.935822 0.908447 0.857056\n0.959961 0.908630 0.857056\n0.077454 0.925262 0.853943\n0.095551 0.925415 0.853973\n0.115295 0.925690 0.853943\n0.137146 0.925873 0.853973\n0.161194 0.926056 0.854034\n0.187805 0.926270 0.854004\n0.217010 0.926483 0.854034\n0.248627 0.926666 0.854034\n0.282471 0.926880 0.854004\n0.318359 0.927063 0.854034\n0.355988 0.927216 0.854095\n0.395203 0.927460 0.854065\n0.435608 0.927643 0.854065\n0.476593 0.927795 0.854095\n0.516632 0.928009 0.854065\n0.554321 0.928162 0.854126\n0.589661 0.928345 0.854126\n0.622620 0.928528 0.854126\n0.653320 0.928711 0.854126\n0.682068 0.928833 0.854187\n0.709137 0.929016 0.854187\n0.734772 0.929169 0.854156\n0.759155 0.929352 0.854187\n0.782593 0.929474 0.854187\n0.805206 0.929626 0.854248\n0.827148 0.929779 0.854218\n0.848724 0.929932 0.854218\n0.870087 0.930084 0.854248\n0.891541 0.930206 0.854218\n0.913300 0.930328 0.854248\n0.935883 0.930450 0.854218\n0.959961 0.930603 0.854218\n0.079224 0.949219 0.850891\n0.097382 0.949371 0.850891\n0.117279 0.949554 0.850983\n0.139160 0.949707 0.850952\n0.163361 0.949829 0.851013\n0.190125 0.949982 0.851013\n0.219421 0.950073 0.850983\n0.251099 0.950195 0.851044\n0.285004 0.950348 0.851074\n0.320831 0.950470 0.851074\n0.358490 0.950592 0.851074\n0.397583 0.950684 0.851135\n0.437897 0.950867 0.851105\n0.478790 0.950958 0.851166\n0.518555 0.951111 0.851166\n0.556000 0.951202 0.851196\n0.591125 0.951355 0.851166\n0.623901 0.951477 0.851257\n0.654419 0.951569 0.851257\n0.682983 0.951691 0.851257\n0.709930 0.951782 0.851257\n0.735382 0.951874 0.851288\n0.759735 0.951996 0.851318\n0.783051 0.952087 0.851318\n0.805573 0.952148 0.851349\n0.827484 0.952301 0.851349\n0.848969 0.952362 0.851349\n0.870270 0.952423 0.851349\n0.891632 0.952545 0.851349\n0.913391 0.952637 0.851379\n0.935944 0.952698 0.851379\n0.959961 0.952759 0.851440\n0.080963 0.973938 0.847809\n0.099213 0.973999 0.847809\n0.119202 0.974091 0.847839\n0.141205 0.974152 0.847870\n0.165527 0.974182 0.847870\n0.192383 0.974304 0.847900\n0.221832 0.974335 0.847961\n0.253510 0.974396 0.847961\n0.287445 0.974457 0.847992\n0.323273 0.974518 0.847992\n0.360931 0.974609 0.848022\n0.399933 0.974670 0.848083\n0.440094 0.974731 0.848114\n0.480865 0.974823 0.848114\n0.520447 0.974854 0.848114\n0.557617 0.974915 0.848145\n0.592499 0.974976 0.848236\n0.625092 0.975037 0.848206\n0.655396 0.975067 0.848236\n0.683807 0.975128 0.848267\n0.710632 0.975189 0.848328\n0.736023 0.975250 0.848297\n0.760254 0.975281 0.848328\n0.783478 0.975311 0.848358\n0.805939 0.975403 0.848358\n0.827759 0.975433 0.848389\n0.849213 0.975464 0.848358\n0.870453 0.975494 0.848389\n0.891785 0.975555 0.848419\n0.913483 0.975616 0.848419\n0.935974 0.975647 0.848480\n0.959961 0.975708 0.848450\n0.082672 1.000000 0.844482\n0.101013 1.000000 0.844513\n0.121094 1.000000 0.844513\n0.143219 1.000000 0.844574\n0.167664 1.000000 0.844635\n0.194702 1.000000 0.844635\n0.224152 1.000000 0.844666\n0.255859 1.000000 0.844696\n0.289825 1.000000 0.844727\n0.325653 1.000000 0.844788\n0.363281 1.000000 0.844818\n0.402222 1.000000 0.844849\n0.442291 1.000000 0.844849\n0.482910 1.000000 0.844879\n0.522186 1.000000 0.844971\n0.559204 1.000000 0.844971\n0.593842 1.000000 0.845001\n0.626221 1.000000 0.845032\n0.656372 1.000000 0.845093\n0.684662 1.000000 0.845093\n0.711334 1.000000 0.845123\n0.736603 1.000000 0.845154\n0.760712 1.000000 0.845154\n0.783875 1.000000 0.845184\n0.806244 1.000000 0.845184\n0.828033 1.000000 0.845215\n0.849426 1.000000 0.845245\n0.870605 1.000000 0.845245\n0.891907 1.000000 0.845306\n0.913574 1.000000 0.845306\n0.936035 1.000000 0.845337\n0.959961 1.000000 0.845337\n0.035492 0.007263 0.999054\n0.051208 0.008057 0.998962\n0.068176 0.008881 0.998840\n0.086639 0.009705 0.998749\n0.106903 0.010590 0.998627\n0.129364 0.011444 0.998505\n0.154449 0.012360 0.998383\n0.182434 0.013275 0.998291\n0.213501 0.014252 0.998138\n0.247467 0.015259 0.998016\n0.284119 0.016235 0.997894\n0.323120 0.017212 0.997772\n0.364349 0.018280 0.997620\n0.407349 0.019348 0.997498\n0.451599 0.020416 0.997345\n0.496246 0.021515 0.997192\n0.538605 0.022644 0.997070\n0.578186 0.023743 0.996918\n0.614990 0.024902 0.996765\n0.649017 0.026062 0.996613\n0.680695 0.027252 0.996460\n0.710358 0.028442 0.996307\n0.738312 0.029694 0.996155\n0.764862 0.030914 0.995972\n0.790253 0.032135 0.995819\n0.814728 0.033386 0.995667\n0.838593 0.034698 0.995483\n0.862061 0.036011 0.995331\n0.885468 0.037323 0.995148\n0.909180 0.038635 0.994995\n0.933746 0.040009 0.994812\n0.959961 0.041382 0.994629\n0.036469 0.023926 0.996887\n0.052277 0.024811 0.996765\n0.069275 0.025696 0.996674\n0.087830 0.026581 0.996552\n0.108246 0.027527 0.996429\n0.130859 0.028442 0.996307\n0.156067 0.029419 0.996185\n0.184235 0.030457 0.996033\n0.215454 0.031433 0.995911\n0.249481 0.032471 0.995789\n0.286224 0.033539 0.995636\n0.325287 0.034607 0.995514\n0.366516 0.035706 0.995361\n0.409515 0.036865 0.995209\n0.453827 0.037933 0.995087\n0.498199 0.039124 0.994904\n0.540405 0.040314 0.994751\n0.579773 0.041534 0.994598\n0.616333 0.042725 0.994446\n0.650208 0.043976 0.994293\n0.681732 0.045258 0.994110\n0.711243 0.046509 0.993958\n0.739075 0.047760 0.993805\n0.765503 0.049103 0.993622\n0.790771 0.050446 0.993439\n0.815186 0.051788 0.993286\n0.838989 0.053131 0.993103\n0.862366 0.054535 0.992920\n0.885712 0.055908 0.992737\n0.909363 0.057343 0.992554\n0.933838 0.058777 0.992371\n0.959961 0.060150 0.992188\n0.037537 0.041626 0.994598\n0.053375 0.042572 0.994476\n0.070526 0.043549 0.994354\n0.089142 0.044495 0.994232\n0.109680 0.045502 0.994080\n0.132416 0.046539 0.993958\n0.157715 0.047577 0.993835\n0.186096 0.048676 0.993683\n0.217438 0.049805 0.993530\n0.251526 0.050873 0.993378\n0.288391 0.052032 0.993256\n0.327515 0.053162 0.993103\n0.368774 0.054382 0.992950\n0.411804 0.055573 0.992767\n0.455994 0.056793 0.992615\n0.500214 0.058044 0.992462\n0.542175 0.059326 0.992310\n0.581329 0.060577 0.992126\n0.617737 0.061890 0.991974\n0.651459 0.063263 0.991791\n0.682770 0.064575 0.991608\n0.712158 0.065948 0.991425\n0.739868 0.067352 0.991241\n0.766205 0.068726 0.991089\n0.791351 0.070190 0.990875\n0.815674 0.071625 0.990692\n0.839355 0.073090 0.990509\n0.862732 0.074585 0.990326\n0.885925 0.076019 0.990112\n0.909546 0.077545 0.989929\n0.933899 0.079102 0.989716\n0.959961 0.080597 0.989532\n0.038605 0.060730 0.992126\n0.054535 0.061768 0.991974\n0.071777 0.062805 0.991852\n0.090454 0.063904 0.991699\n0.111145 0.065002 0.991547\n0.134033 0.066101 0.991425\n0.159454 0.067261 0.991272\n0.188019 0.068420 0.991119\n0.219421 0.069611 0.990967\n0.253693 0.070801 0.990814\n0.290619 0.072083 0.990631\n0.329834 0.073334 0.990479\n0.371124 0.074615 0.990295\n0.414093 0.075928 0.990143\n0.458221 0.077240 0.989960\n0.502289 0.078613 0.989777\n0.544067 0.079987 0.989624\n0.582977 0.081360 0.989441\n0.619141 0.082794 0.989258\n0.652618 0.084229 0.989075\n0.683807 0.085693 0.988861\n0.713074 0.087219 0.988678\n0.740631 0.088654 0.988495\n0.766876 0.090210 0.988281\n0.791962 0.091736 0.988098\n0.816162 0.093292 0.987885\n0.839783 0.094879 0.987671\n0.863007 0.096497 0.987457\n0.886200 0.098053 0.987274\n0.909668 0.099701 0.987061\n0.933990 0.101349 0.986847\n0.959961 0.103027 0.986633\n0.039795 0.081635 0.989410\n0.055786 0.082764 0.989258\n0.073059 0.083893 0.989105\n0.091888 0.085083 0.988953\n0.112671 0.086304 0.988800\n0.135712 0.087524 0.988617\n0.161346 0.088776 0.988464\n0.189941 0.090088 0.988312\n0.221527 0.091339 0.988129\n0.255951 0.092743 0.987946\n0.292938 0.094055 0.987793\n0.332184 0.095459 0.987610\n0.373505 0.096893 0.987427\n0.416473 0.098328 0.987244\n0.460571 0.099762 0.987030\n0.504425 0.101257 0.986847\n0.545959 0.102783 0.986664\n0.584656 0.104279 0.986450\n0.620575 0.105804 0.986267\n0.653870 0.107361 0.986053\n0.684906 0.108978 0.985840\n0.713989 0.110626 0.985626\n0.741486 0.112213 0.985413\n0.767517 0.113892 0.985199\n0.792542 0.115570 0.984985\n0.816681 0.117279 0.984772\n0.840179 0.118958 0.984558\n0.863342 0.120697 0.984314\n0.886414 0.122467 0.984100\n0.909851 0.124237 0.983856\n0.934082 0.125977 0.983643\n0.959961 0.127808 0.983398\n0.040955 0.104706 0.986389\n0.057037 0.105957 0.986237\n0.074402 0.107269 0.986053\n0.093353 0.108551 0.985901\n0.114258 0.109894 0.985718\n0.137390 0.111237 0.985565\n0.163208 0.112671 0.985352\n0.192047 0.114105 0.985168\n0.223724 0.115540 0.984985\n0.258240 0.117004 0.984802\n0.295288 0.118530 0.984619\n0.334625 0.120026 0.984406\n0.375916 0.121582 0.984222\n0.418854 0.123169 0.984009\n0.462860 0.124756 0.983795\n0.506622 0.126404 0.983582\n0.547791 0.128052 0.983368\n0.586304 0.129730 0.983154\n0.622040 0.131439 0.982941\n0.655151 0.133118 0.982697\n0.685974 0.134918 0.982483\n0.714935 0.136658 0.982239\n0.742249 0.138458 0.982025\n0.768250 0.140289 0.981781\n0.793091 0.142090 0.981537\n0.817139 0.143951 0.981293\n0.840576 0.145813 0.981049\n0.863647 0.147675 0.980804\n0.886658 0.149597 0.980560\n0.909973 0.151581 0.980316\n0.934174 0.153442 0.980072\n0.959961 0.155457 0.979797\n0.042206 0.130493 0.983063\n0.058350 0.131897 0.982880\n0.075836 0.133362 0.982666\n0.094910 0.134766 0.982483\n0.115936 0.136292 0.982300\n0.139221 0.137817 0.982086\n0.165192 0.139374 0.981903\n0.194153 0.140961 0.981689\n0.225983 0.142548 0.981476\n0.260620 0.144226 0.981262\n0.297699 0.145844 0.981049\n0.337067 0.147522 0.980835\n0.378448 0.149261 0.980621\n0.421295 0.151001 0.980377\n0.465210 0.152740 0.980164\n0.508789 0.154602 0.979919\n0.549744 0.156342 0.979706\n0.587982 0.158234 0.979462\n0.623505 0.160126 0.979218\n0.656403 0.161987 0.978973\n0.687103 0.163940 0.978699\n0.715912 0.165894 0.978455\n0.743073 0.167816 0.978210\n0.768921 0.169800 0.977936\n0.793701 0.171844 0.977692\n0.817657 0.173859 0.977417\n0.840973 0.175903 0.977142\n0.863953 0.177917 0.976898\n0.886902 0.180023 0.976624\n0.910187 0.182159 0.976349\n0.934265 0.184235 0.976074\n0.959961 0.186340 0.975800\n0.043549 0.159485 0.979279\n0.059753 0.161102 0.979065\n0.077271 0.162689 0.978882\n0.096497 0.164307 0.978668\n0.117615 0.165985 0.978455\n0.141083 0.167633 0.978241\n0.167206 0.169403 0.977997\n0.196350 0.171204 0.977753\n0.228271 0.172943 0.977539\n0.263000 0.174744 0.977295\n0.300232 0.176605 0.977051\n0.339661 0.178497 0.976807\n0.380920 0.180420 0.976562\n0.423798 0.182312 0.976318\n0.467651 0.184296 0.976074\n0.511017 0.186249 0.975800\n0.551666 0.188232 0.975555\n0.589661 0.190277 0.975281\n0.624969 0.192352 0.975006\n0.657684 0.194397 0.974762\n0.688171 0.196503 0.974487\n0.716827 0.198639 0.974213\n0.743866 0.200745 0.973938\n0.769592 0.202911 0.973633\n0.794281 0.205078 0.973358\n0.818115 0.207275 0.973083\n0.841370 0.209503 0.972778\n0.864319 0.211639 0.972504\n0.887146 0.213898 0.972229\n0.910370 0.216187 0.971924\n0.934326 0.218384 0.971649\n0.959961 0.220703 0.971344\n0.044861 0.192261 0.975037\n0.061188 0.194031 0.974792\n0.078796 0.195801 0.974579\n0.098114 0.197632 0.974335\n0.119415 0.199493 0.974091\n0.142975 0.201324 0.973846\n0.169312 0.203278 0.973602\n0.198578 0.205200 0.973358\n0.230682 0.207153 0.973083\n0.265472 0.209137 0.972839\n0.302734 0.211182 0.972565\n0.342163 0.213196 0.972321\n0.383514 0.215302 0.972046\n0.426300 0.217346 0.971771\n0.470062 0.219452 0.971497\n0.513153 0.221619 0.971222\n0.553650 0.223755 0.970947\n0.591400 0.225952 0.970642\n0.626465 0.228149 0.970367\n0.658936 0.230347 0.970093\n0.689270 0.232605 0.969788\n0.717773 0.234894 0.969482\n0.744659 0.237091 0.969208\n0.770325 0.239410 0.968903\n0.794922 0.241699 0.968597\n0.818634 0.244019 0.968292\n0.841766 0.246368 0.967987\n0.864594 0.248688 0.967712\n0.887390 0.251068 0.967377\n0.910522 0.253448 0.967072\n0.934387 0.255768 0.966766\n0.959961 0.258118 0.966461\n0.046265 0.228851 0.970276\n0.062622 0.230774 0.970032\n0.080353 0.232666 0.969788\n0.099823 0.234680 0.969513\n0.121216 0.236694 0.969269\n0.144928 0.238708 0.968994\n0.171448 0.240753 0.968719\n0.200867 0.242859 0.968445\n0.233093 0.244934 0.968201\n0.268005 0.247101 0.967896\n0.305328 0.249176 0.967651\n0.344818 0.251404 0.967346\n0.386108 0.253601 0.967072\n0.428864 0.255829 0.966766\n0.472504 0.258087 0.966492\n0.515381 0.260315 0.966187\n0.555603 0.262573 0.965881\n0.593140 0.264893 0.965607\n0.627960 0.267242 0.965302\n0.660248 0.269531 0.964996\n0.690369 0.271912 0.964691\n0.718750 0.274261 0.964386\n0.745514 0.276611 0.964081\n0.770996 0.279022 0.963745\n0.795471 0.281372 0.963440\n0.819092 0.283813 0.963135\n0.842163 0.286224 0.962830\n0.864929 0.288605 0.962524\n0.887665 0.291046 0.962189\n0.910675 0.293488 0.961884\n0.934509 0.295868 0.961578\n0.959961 0.298340 0.961243\n0.047668 0.268951 0.965057\n0.064117 0.271027 0.964813\n0.081970 0.273071 0.964539\n0.101501 0.275177 0.964264\n0.123077 0.277313 0.963989\n0.146942 0.279449 0.963715\n0.173615 0.281616 0.963409\n0.203156 0.283844 0.963135\n0.235565 0.286011 0.962860\n0.270538 0.288239 0.962555\n0.307892 0.290466 0.962280\n0.347443 0.292755 0.961975\n0.388763 0.295074 0.961670\n0.431488 0.297394 0.961365\n0.475006 0.299683 0.961090\n0.517639 0.302063 0.960754\n0.557556 0.304413 0.960449\n0.594849 0.306793 0.960144\n0.629456 0.309235 0.959839\n0.661530 0.311615 0.959534\n0.691498 0.314026 0.959229\n0.719635 0.316406 0.958893\n0.746307 0.318878 0.958588\n0.771698 0.321289 0.958282\n0.796021 0.323700 0.957947\n0.819611 0.326172 0.957642\n0.842529 0.328705 0.957306\n0.865234 0.331085 0.957001\n0.887878 0.333557 0.956665\n0.910797 0.336029 0.956360\n0.934601 0.338440 0.956055\n0.959961 0.340942 0.955719\n0.049133 0.312256 0.959442\n0.065674 0.314423 0.959167\n0.083649 0.316528 0.958893\n0.103302 0.318756 0.958588\n0.125000 0.320953 0.958313\n0.149017 0.323151 0.958038\n0.175842 0.325378 0.957733\n0.205536 0.327637 0.957458\n0.238098 0.329956 0.957153\n0.273132 0.332245 0.956848\n0.310547 0.334595 0.956543\n0.350098 0.336945 0.956238\n0.391388 0.339264 0.955933\n0.434082 0.341614 0.955627\n0.477478 0.343994 0.955322\n0.519867 0.346436 0.955017\n0.559509 0.348816 0.954681\n0.596588 0.351257 0.954376\n0.630890 0.353668 0.954071\n0.662811 0.356110 0.953735\n0.692566 0.358551 0.953430\n0.720612 0.360901 0.953125\n0.747131 0.363403 0.952789\n0.772400 0.365906 0.952484\n0.796600 0.368317 0.952148\n0.820068 0.370789 0.951843\n0.842957 0.373260 0.951508\n0.865540 0.375610 0.951202\n0.888092 0.378143 0.950897\n0.910980 0.380585 0.950562\n0.934692 0.382996 0.950256\n0.959961 0.385406 0.949951\n0.050629 0.358246 0.953461\n0.067291 0.360474 0.953186\n0.085297 0.362610 0.952911\n0.105103 0.364868 0.952606\n0.126953 0.367126 0.952332\n0.151123 0.369385 0.952026\n0.178162 0.371643 0.951721\n0.208008 0.373962 0.951416\n0.240601 0.376282 0.951141\n0.275787 0.378662 0.950806\n0.313263 0.380951 0.950531\n0.352814 0.383362 0.950195\n0.394073 0.385712 0.949890\n0.436676 0.388123 0.949585\n0.479980 0.390442 0.949280\n0.522095 0.392914 0.948975\n0.561493 0.395233 0.948669\n0.598206 0.397644 0.948364\n0.632416 0.400085 0.948029\n0.664062 0.402557 0.947723\n0.693695 0.404968 0.947388\n0.721558 0.407379 0.947083\n0.747955 0.409760 0.946777\n0.773041 0.412231 0.946472\n0.797180 0.414612 0.946136\n0.820557 0.417084 0.945831\n0.843323 0.419525 0.945526\n0.865875 0.421875 0.945221\n0.888336 0.424286 0.944885\n0.911163 0.426636 0.944580\n0.934784 0.429047 0.944275\n0.959961 0.431458 0.943970\n0.052185 0.406372 0.947205\n0.068909 0.408630 0.946930\n0.087036 0.410828 0.946655\n0.106964 0.413055 0.946350\n0.128937 0.415375 0.946045\n0.153290 0.417603 0.945770\n0.180420 0.419891 0.945465\n0.210419 0.422150 0.945160\n0.243195 0.424530 0.944855\n0.278412 0.426819 0.944550\n0.315979 0.429138 0.944275\n0.355499 0.431519 0.943939\n0.396790 0.433838 0.943665\n0.439362 0.436188 0.943359\n0.482544 0.438538 0.943054\n0.524261 0.440887 0.942749\n0.563416 0.443268 0.942413\n0.599976 0.445648 0.942108\n0.633850 0.447998 0.941803\n0.665344 0.450348 0.941498\n0.694763 0.452759 0.941193\n0.722504 0.455078 0.940887\n0.748749 0.457489 0.940582\n0.773743 0.459839 0.940277\n0.797791 0.462219 0.939972\n0.821045 0.464508 0.939667\n0.843750 0.466919 0.939362\n0.866180 0.469177 0.939056\n0.888611 0.471527 0.938751\n0.911316 0.473785 0.938477\n0.934845 0.476074 0.938171\n0.959961 0.478333 0.937866\n0.053741 0.456238 0.940735\n0.070587 0.458405 0.940460\n0.088806 0.460571 0.940186\n0.108856 0.462799 0.939880\n0.130951 0.464966 0.939606\n0.155487 0.467224 0.939301\n0.182800 0.469452 0.939026\n0.212952 0.471710 0.938721\n0.245789 0.473969 0.938446\n0.281158 0.476257 0.938141\n0.318695 0.478485 0.937866\n0.358246 0.480743 0.937561\n0.399506 0.483032 0.937256\n0.441986 0.485229 0.936981\n0.485046 0.487549 0.936676\n0.526489 0.489777 0.936401\n0.565369 0.492065 0.936096\n0.601685 0.494324 0.935791\n0.635284 0.496552 0.935516\n0.666595 0.498840 0.935211\n0.695892 0.501068 0.934906\n0.723419 0.503296 0.934631\n0.749542 0.505493 0.934357\n0.774475 0.507751 0.934052\n0.798370 0.509888 0.933777\n0.821503 0.512085 0.933502\n0.844116 0.514221 0.933197\n0.866516 0.516357 0.932922\n0.888824 0.518494 0.932648\n0.911499 0.520569 0.932373\n0.934967 0.522614 0.932129\n0.959961 0.524658 0.931854\n0.055359 0.506592 0.934204\n0.072205 0.508606 0.933929\n0.090607 0.510712 0.933655\n0.110779 0.512756 0.933411\n0.133026 0.514862 0.933136\n0.157684 0.516937 0.932861\n0.185211 0.518982 0.932587\n0.215485 0.521057 0.932312\n0.248413 0.523163 0.932037\n0.283844 0.525238 0.931793\n0.321472 0.527252 0.931519\n0.361053 0.529297 0.931244\n0.402191 0.531342 0.931000\n0.444611 0.533447 0.930725\n0.487518 0.535461 0.930450\n0.528656 0.537476 0.930206\n0.567322 0.539490 0.929932\n0.603333 0.541534 0.929657\n0.636749 0.543488 0.929413\n0.667847 0.545471 0.929138\n0.696960 0.547455 0.928894\n0.724365 0.549377 0.928650\n0.750336 0.551392 0.928375\n0.775146 0.553284 0.928131\n0.798889 0.555176 0.927887\n0.822021 0.557068 0.927643\n0.844513 0.558929 0.927399\n0.866760 0.560791 0.927155\n0.889038 0.562683 0.926910\n0.911621 0.564453 0.926697\n0.935028 0.566284 0.926453\n0.959961 0.568054 0.926208\n0.056946 0.554626 0.927979\n0.073975 0.556488 0.927734\n0.092438 0.558258 0.927490\n0.112732 0.560089 0.927246\n0.135071 0.561890 0.927032\n0.159943 0.563751 0.926788\n0.187622 0.565613 0.926544\n0.218048 0.567352 0.926300\n0.251099 0.569214 0.926056\n0.286560 0.571014 0.925842\n0.324219 0.572815 0.925598\n0.363800 0.574615 0.925354\n0.404938 0.576477 0.925140\n0.447266 0.578186 0.924896\n0.489960 0.580017 0.924652\n0.530853 0.581726 0.924438\n0.569244 0.583527 0.924225\n0.605011 0.585266 0.923981\n0.638184 0.586945 0.923767\n0.669098 0.588745 0.923523\n0.697998 0.590424 0.923309\n0.725311 0.592102 0.923096\n0.751129 0.593811 0.922882\n0.775787 0.595520 0.922638\n0.799438 0.597107 0.922455\n0.822449 0.598816 0.922211\n0.844879 0.600372 0.922028\n0.867096 0.601990 0.921814\n0.889313 0.603607 0.921600\n0.911804 0.605133 0.921417\n0.935120 0.606720 0.921204\n0.959961 0.608276 0.920990\n0.058624 0.598999 0.922211\n0.075714 0.600525 0.921997\n0.094299 0.602173 0.921783\n0.114716 0.603760 0.921570\n0.137238 0.605347 0.921387\n0.162262 0.606964 0.921173\n0.190063 0.608551 0.920959\n0.220612 0.610107 0.920746\n0.253784 0.611694 0.920563\n0.289368 0.613281 0.920349\n0.326996 0.614838 0.920135\n0.366516 0.616394 0.919952\n0.407654 0.617950 0.919739\n0.449890 0.619507 0.919525\n0.492432 0.621033 0.919342\n0.533020 0.622559 0.919128\n0.571136 0.624023 0.918945\n0.606659 0.625580 0.918762\n0.639648 0.627075 0.918549\n0.670319 0.628571 0.918365\n0.699097 0.630035 0.918182\n0.726196 0.631500 0.917969\n0.751892 0.632965 0.917786\n0.776459 0.634369 0.917603\n0.800049 0.635742 0.917419\n0.822876 0.637207 0.917236\n0.845306 0.638550 0.917053\n0.867401 0.639923 0.916870\n0.889496 0.641296 0.916718\n0.911957 0.642578 0.916534\n0.935181 0.643921 0.916351\n0.959961 0.645233 0.916199\n0.060303 0.639709 0.916901\n0.077484 0.641113 0.916718\n0.096191 0.642487 0.916565\n0.116699 0.643860 0.916382\n0.139374 0.645264 0.916199\n0.164581 0.646606 0.916016\n0.192535 0.647980 0.915833\n0.223236 0.649323 0.915649\n0.256439 0.650665 0.915497\n0.292084 0.652069 0.915314\n0.329773 0.653351 0.915131\n0.369293 0.654724 0.914948\n0.410339 0.656006 0.914795\n0.452545 0.657349 0.914612\n0.494904 0.658691 0.914459\n0.535187 0.659973 0.914276\n0.573029 0.661255 0.914124\n0.608337 0.662598 0.913940\n0.641052 0.663849 0.913788\n0.671509 0.665100 0.913605\n0.700104 0.666382 0.913452\n0.727081 0.667603 0.913300\n0.752625 0.668793 0.913147\n0.777069 0.670044 0.912964\n0.800568 0.671265 0.912811\n0.823395 0.672424 0.912659\n0.845612 0.673584 0.912506\n0.867706 0.674744 0.912354\n0.889740 0.675903 0.912201\n0.912079 0.677002 0.912079\n0.935303 0.678131 0.911926\n0.959961 0.679199 0.911774\n0.062012 0.677032 0.912079\n0.079285 0.678192 0.911926\n0.098083 0.679413 0.911743\n0.118744 0.680573 0.911591\n0.141541 0.681732 0.911469\n0.166931 0.682922 0.911285\n0.195038 0.684113 0.911133\n0.225830 0.685272 0.910980\n0.259155 0.686401 0.910858\n0.294769 0.687561 0.910706\n0.332550 0.688721 0.910553\n0.372070 0.689850 0.910400\n0.413055 0.690979 0.910248\n0.455200 0.692139 0.910095\n0.497284 0.693237 0.909973\n0.537323 0.694366 0.909821\n0.574921 0.695465 0.909668\n0.609863 0.696564 0.909515\n0.642395 0.697601 0.909393\n0.672729 0.698700 0.909241\n0.701172 0.699829 0.909119\n0.727936 0.700806 0.908966\n0.753387 0.701874 0.908844\n0.777710 0.702881 0.908722\n0.801086 0.703918 0.908569\n0.823792 0.704895 0.908447\n0.846008 0.705933 0.908325\n0.867981 0.706909 0.908173\n0.889923 0.707855 0.908051\n0.912231 0.708801 0.907928\n0.935364 0.709747 0.907806\n0.959961 0.710663 0.907684\n0.063721 0.711365 0.907593\n0.081055 0.712341 0.907471\n0.099976 0.713409 0.907349\n0.120819 0.714417 0.907196\n0.143768 0.715393 0.907074\n0.169312 0.716400 0.906952\n0.197571 0.717407 0.906830\n0.228455 0.718384 0.906708\n0.261871 0.719360 0.906555\n0.297546 0.720337 0.906433\n0.335266 0.721344 0.906311\n0.374817 0.722321 0.906189\n0.415771 0.723297 0.906067\n0.457733 0.724243 0.905945\n0.499634 0.725189 0.905823\n0.539429 0.726135 0.905701\n0.576752 0.727081 0.905579\n0.611481 0.728058 0.905426\n0.643799 0.728943 0.905334\n0.673859 0.729858 0.905212\n0.702087 0.730743 0.905090\n0.728821 0.731659 0.904968\n0.754120 0.732544 0.904846\n0.778290 0.733398 0.904755\n0.801605 0.734283 0.904633\n0.824249 0.735107 0.904510\n0.846344 0.735931 0.904419\n0.868256 0.736786 0.904297\n0.890106 0.737579 0.904205\n0.912354 0.738373 0.904083\n0.935394 0.739166 0.903992\n0.959961 0.739929 0.903900\n0.065460 0.743195 0.903473\n0.082886 0.744080 0.903351\n0.101929 0.744904 0.903259\n0.122894 0.745789 0.903137\n0.145966 0.746613 0.903015\n0.171631 0.747498 0.902924\n0.200043 0.748322 0.902802\n0.231079 0.749176 0.902710\n0.264557 0.750031 0.902588\n0.300293 0.750854 0.902466\n0.338074 0.751709 0.902374\n0.377563 0.752533 0.902252\n0.418396 0.753326 0.902161\n0.460297 0.754181 0.902039\n0.502014 0.754974 0.901947\n0.541473 0.755768 0.901825\n0.578522 0.756592 0.901733\n0.613037 0.757385 0.901642\n0.645111 0.758148 0.901520\n0.675049 0.758911 0.901428\n0.703125 0.759644 0.901337\n0.729645 0.760437 0.901245\n0.754822 0.761200 0.901123\n0.778931 0.761902 0.901031\n0.802155 0.762665 0.900940\n0.824646 0.763367 0.900848\n0.846680 0.764038 0.900757\n0.868500 0.764771 0.900665\n0.890350 0.765442 0.900574\n0.912506 0.766113 0.900482\n0.935486 0.766785 0.900421\n0.959961 0.767395 0.900330\n0.067200 0.772919 0.899597\n0.084747 0.773621 0.899506\n0.103912 0.774384 0.899414\n0.124969 0.775116 0.899323\n0.148193 0.775818 0.899231\n0.174042 0.776581 0.899139\n0.202545 0.777283 0.899048\n0.233704 0.778015 0.898956\n0.267273 0.778717 0.898865\n0.303040 0.779419 0.898773\n0.340790 0.780121 0.898682\n0.380219 0.780853 0.898590\n0.421082 0.781525 0.898499\n0.462830 0.782196 0.898407\n0.504303 0.782928 0.898315\n0.543488 0.783569 0.898224\n0.580292 0.784241 0.898132\n0.614563 0.784943 0.898041\n0.646423 0.785583 0.897980\n0.676178 0.786255 0.897888\n0.704071 0.786865 0.897797\n0.730469 0.787506 0.897705\n0.755524 0.788116 0.897644\n0.779510 0.788727 0.897552\n0.802612 0.789368 0.897461\n0.825043 0.789948 0.897400\n0.847015 0.790527 0.897339\n0.868805 0.791107 0.897247\n0.890533 0.791718 0.897156\n0.912628 0.792236 0.897095\n0.935516 0.792786 0.897034\n0.959961 0.793304 0.896973\n0.068939 0.800873 0.895966\n0.086609 0.801483 0.895905\n0.105865 0.802124 0.895813\n0.126984 0.802734 0.895752\n0.150421 0.803345 0.895660\n0.176422 0.803955 0.895569\n0.205078 0.804596 0.895508\n0.236298 0.805206 0.895416\n0.269958 0.805817 0.895325\n0.305725 0.806366 0.895264\n0.343536 0.807007 0.895172\n0.382874 0.807587 0.895111\n0.423645 0.808136 0.895050\n0.465271 0.808777 0.894958\n0.506500 0.809296 0.894897\n0.545471 0.809906 0.894806\n0.582001 0.810425 0.894745\n0.616058 0.811005 0.894653\n0.647705 0.811554 0.894592\n0.677216 0.812103 0.894531\n0.705017 0.812592 0.894470\n0.731262 0.813202 0.894379\n0.756195 0.813690 0.894318\n0.780060 0.814178 0.894257\n0.803101 0.814697 0.894196\n0.825470 0.815216 0.894104\n0.847351 0.815674 0.894043\n0.868988 0.816162 0.893982\n0.890747 0.816620 0.893921\n0.912781 0.817108 0.893860\n0.935577 0.817566 0.893799\n0.959961 0.817963 0.893768\n0.070709 0.827423 0.892517\n0.088440 0.827942 0.892456\n0.107819 0.828491 0.892395\n0.129150 0.828979 0.892334\n0.152679 0.829498 0.892273\n0.178833 0.830017 0.892181\n0.207581 0.830536 0.892120\n0.238922 0.831055 0.892059\n0.272614 0.831573 0.891998\n0.308411 0.832062 0.891937\n0.346191 0.832550 0.891876\n0.385559 0.833008 0.891815\n0.426208 0.833527 0.891754\n0.467743 0.834015 0.891663\n0.508789 0.834473 0.891602\n0.547424 0.834961 0.891541\n0.583649 0.835419 0.891479\n0.617493 0.835876 0.891449\n0.648926 0.836304 0.891388\n0.678314 0.836792 0.891327\n0.705933 0.837219 0.891266\n0.732056 0.837677 0.891205\n0.756897 0.838104 0.891144\n0.780670 0.838531 0.891083\n0.803589 0.838928 0.891052\n0.825836 0.839325 0.890991\n0.847656 0.839752 0.890930\n0.869263 0.840118 0.890869\n0.890869 0.840515 0.890839\n0.912872 0.840881 0.890778\n0.935669 0.841278 0.890747\n0.959961 0.841614 0.890686\n0.072479 0.852875 0.889221\n0.090302 0.853271 0.889160\n0.109802 0.853729 0.889130\n0.131226 0.854156 0.889069\n0.154938 0.854553 0.889008\n0.181213 0.855011 0.888947\n0.210083 0.855438 0.888885\n0.241516 0.855865 0.888824\n0.275208 0.856293 0.888794\n0.311066 0.856659 0.888733\n0.348816 0.857086 0.888672\n0.388184 0.857452 0.888641\n0.428741 0.857880 0.888580\n0.470154 0.858276 0.888519\n0.510895 0.858673 0.888458\n0.549286 0.859039 0.888428\n0.585327 0.859436 0.888367\n0.618896 0.859802 0.888336\n0.650146 0.860199 0.888275\n0.679352 0.860535 0.888245\n0.706787 0.860931 0.888184\n0.732788 0.861267 0.888123\n0.757507 0.861603 0.888092\n0.781189 0.861969 0.888031\n0.803986 0.862274 0.888000\n0.826202 0.862640 0.887970\n0.847961 0.862946 0.887909\n0.869476 0.863281 0.887878\n0.891052 0.863556 0.887848\n0.912994 0.863892 0.887787\n0.935699 0.864166 0.887756\n0.959961 0.864471 0.887726\n0.074249 0.877441 0.886047\n0.092163 0.877808 0.885986\n0.111755 0.878143 0.885956\n0.133301 0.878479 0.885895\n0.157135 0.878845 0.885864\n0.183563 0.879181 0.885803\n0.212585 0.879517 0.885773\n0.244049 0.879883 0.885712\n0.277863 0.880188 0.885681\n0.313721 0.880554 0.885620\n0.351440 0.880859 0.885590\n0.390656 0.881195 0.885559\n0.431213 0.881500 0.885498\n0.472473 0.881836 0.885468\n0.512970 0.882141 0.885437\n0.551147 0.882446 0.885376\n0.586914 0.882782 0.885345\n0.620270 0.883057 0.885315\n0.651337 0.883362 0.885254\n0.680359 0.883636 0.885223\n0.707672 0.883942 0.885193\n0.733521 0.884216 0.885162\n0.758118 0.884491 0.885132\n0.781708 0.884796 0.885071\n0.804474 0.885040 0.885040\n0.826538 0.885284 0.885010\n0.848236 0.885559 0.884979\n0.869690 0.885803 0.884949\n0.891266 0.886047 0.884918\n0.913116 0.886292 0.884888\n0.935791 0.886505 0.884857\n0.959961 0.886749 0.884827\n0.075989 0.901489 0.882904\n0.094025 0.901764 0.882874\n0.113739 0.902069 0.882843\n0.135376 0.902313 0.882812\n0.159363 0.902618 0.882751\n0.185944 0.902832 0.882751\n0.215027 0.903168 0.882690\n0.246613 0.903412 0.882660\n0.280426 0.903656 0.882629\n0.316284 0.903931 0.882599\n0.353973 0.904175 0.882568\n0.393219 0.904449 0.882538\n0.433655 0.904694 0.882507\n0.474762 0.904968 0.882446\n0.515045 0.905182 0.882446\n0.552917 0.905396 0.882416\n0.588470 0.905670 0.882355\n0.621582 0.905884 0.882355\n0.652466 0.906128 0.882324\n0.681335 0.906342 0.882294\n0.708466 0.906555 0.882263\n0.734253 0.906769 0.882233\n0.758728 0.907013 0.882202\n0.782166 0.907196 0.882172\n0.804840 0.907410 0.882141\n0.826904 0.907593 0.882111\n0.848511 0.907806 0.882080\n0.869934 0.907990 0.882080\n0.891388 0.908173 0.882050\n0.913239 0.908356 0.882019\n0.935822 0.908539 0.881989\n0.959961 0.908691 0.881989\n0.077789 0.925293 0.879822\n0.095886 0.925568 0.879791\n0.115723 0.925751 0.879761\n0.137482 0.925934 0.879730\n0.161591 0.926117 0.879700\n0.188263 0.926361 0.879669\n0.217468 0.926575 0.879639\n0.249115 0.926758 0.879639\n0.282898 0.926941 0.879608\n0.318817 0.927124 0.879578\n0.356506 0.927338 0.879547\n0.395660 0.927490 0.879547\n0.436066 0.927704 0.879517\n0.476990 0.927917 0.879486\n0.516968 0.928040 0.879456\n0.554657 0.928223 0.879425\n0.589996 0.928436 0.879425\n0.622894 0.928589 0.879395\n0.653564 0.928741 0.879364\n0.682251 0.928894 0.879364\n0.709290 0.929077 0.879333\n0.734894 0.929291 0.879303\n0.759277 0.929413 0.879272\n0.782684 0.929535 0.879272\n0.805237 0.929657 0.879242\n0.827179 0.929810 0.879242\n0.848785 0.929962 0.879211\n0.870117 0.930115 0.879181\n0.891541 0.930237 0.879181\n0.913300 0.930389 0.879150\n0.935883 0.930511 0.879150\n0.959961 0.930634 0.879120\n0.079498 0.949280 0.876709\n0.097717 0.949432 0.876678\n0.117645 0.949615 0.876648\n0.139526 0.949768 0.876648\n0.163757 0.949860 0.876617\n0.190552 0.950012 0.876617\n0.219849 0.950134 0.876587\n0.251526 0.950287 0.876587\n0.285400 0.950378 0.876556\n0.321320 0.950470 0.876556\n0.358948 0.950623 0.876526\n0.398010 0.950745 0.876526\n0.438293 0.950867 0.876495\n0.479187 0.951019 0.876465\n0.518890 0.951141 0.876465\n0.556335 0.951233 0.876465\n0.591400 0.951355 0.876434\n0.624084 0.951477 0.876434\n0.654572 0.951599 0.876404\n0.683136 0.951721 0.876373\n0.710052 0.951782 0.876373\n0.735565 0.951874 0.876373\n0.759857 0.951996 0.876343\n0.783142 0.952118 0.876343\n0.805634 0.952209 0.876312\n0.827515 0.952332 0.876312\n0.849030 0.952393 0.876312\n0.870331 0.952515 0.876282\n0.891632 0.952576 0.876282\n0.913422 0.952637 0.876282\n0.935944 0.952759 0.876251\n0.959961 0.952789 0.876251\n0.081268 0.973969 0.873505\n0.099579 0.974030 0.873505\n0.119598 0.974091 0.873474\n0.141571 0.974182 0.873474\n0.165924 0.974213 0.873474\n0.192810 0.974304 0.873444\n0.222229 0.974365 0.873444\n0.253967 0.974426 0.873444\n0.287872 0.974518 0.873413\n0.323730 0.974548 0.873413\n0.361328 0.974609 0.873413\n0.400391 0.974701 0.873413\n0.440582 0.974731 0.873413\n0.481262 0.974823 0.873383\n0.520721 0.974854 0.873383\n0.557892 0.974976 0.873383\n0.592773 0.975006 0.873352\n0.625275 0.975067 0.873352\n0.655609 0.975098 0.873352\n0.683990 0.975189 0.873352\n0.710785 0.975220 0.873322\n0.736145 0.975250 0.873322\n0.760315 0.975281 0.873322\n0.783539 0.975342 0.873322\n0.805969 0.975403 0.873322\n0.827820 0.975433 0.873322\n0.849243 0.975494 0.873291\n0.870483 0.975494 0.873291\n0.891785 0.975586 0.873291\n0.913483 0.975616 0.873291\n0.935974 0.975647 0.873291\n0.959961 0.975708 0.873260\n0.083008 1.000000 0.870117\n0.101349 1.000000 0.870117\n0.121490 1.000000 0.870117\n0.143585 1.000000 0.870117\n0.168060 1.000000 0.870117\n0.195099 1.000000 0.870117\n0.224548 1.000000 0.870117\n0.256317 1.000000 0.870117\n0.290222 1.000000 0.870117\n0.326080 1.000000 0.870117\n0.363678 1.000000 0.870117\n0.402618 1.000000 0.870117\n0.442780 1.000000 0.870117\n0.483276 1.000000 0.870117\n0.522522 1.000000 0.870117\n0.559418 1.000000 0.870117\n0.594086 1.000000 0.870117\n0.626404 1.000000 0.870117\n0.656555 1.000000 0.870117\n0.684814 1.000000 0.870117\n0.711487 1.000000 0.870117\n0.736725 1.000000 0.870117\n0.760803 1.000000 0.870117\n0.783966 1.000000 0.870117\n0.806305 1.000000 0.870117\n0.828064 1.000000 0.870117\n0.849457 1.000000 0.870117\n0.870636 1.000000 0.870117\n0.891907 1.000000 0.870117\n0.913574 1.000000 0.870117\n0.936035 1.000000 0.870117\n0.959961 1.000000 0.870117\n"
  },
  {
    "path": "packages/sdk/public/resource/luts/Clayton 33.CUBE",
    "content": "#Created by: Adobe Photoshop Export Color Lookup Plugin\n#Copyright: (C) Copyright 2017 RocketStock\nTITLE \"Black and White\"\n\n#LUT size\nLUT_3D_SIZE 32\n\n#data domain\nDOMAIN_MIN 0.0 0.0 0.0\nDOMAIN_MAX 1.0 1.0 1.0\n\n#LUT data points\n0.039612 0.039612 0.039612\n0.045746 0.045746 0.045746\n0.051208 0.051208 0.051208\n0.057251 0.057251 0.057251\n0.061523 0.061523 0.061523\n0.065521 0.065521 0.065521\n0.069702 0.069702 0.069702\n0.073975 0.073975 0.073975\n0.078613 0.078613 0.078613\n0.083466 0.083466 0.083466\n0.088379 0.088379 0.088379\n0.093750 0.093750 0.093750\n0.099365 0.099365 0.099365\n0.105133 0.105133 0.105133\n0.111328 0.111328 0.111328\n0.117859 0.117859 0.117859\n0.124634 0.124634 0.124634\n0.131927 0.131927 0.131927\n0.139435 0.139435 0.139435\n0.147614 0.147614 0.147614\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.051086 0.051086 0.051086\n0.057098 0.057098 0.057098\n0.061371 0.061371 0.061371\n0.065430 0.065430 0.065430\n0.069580 0.069580 0.069580\n0.073883 0.073883 0.073883\n0.078491 0.078491 0.078491\n0.083191 0.083191 0.083191\n0.088257 0.088257 0.088257\n0.093597 0.093597 0.093597\n0.099060 0.099060 0.099060\n0.104950 0.104950 0.104950\n0.111145 0.111145 0.111145\n0.117523 0.117523 0.117523\n0.124420 0.124420 0.124420\n0.131531 0.131531 0.131531\n0.139221 0.139221 0.139221\n0.147400 0.147400 0.147400\n0.155792 0.155792 0.155792\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.061249 0.061249 0.061249\n0.065308 0.065308 0.065308\n0.069366 0.069366 0.069366\n0.073761 0.073761 0.073761\n0.078247 0.078247 0.078247\n0.083069 0.083069 0.083069\n0.088165 0.088165 0.088165\n0.093353 0.093353 0.093353\n0.098907 0.098907 0.098907\n0.104797 0.104797 0.104797\n0.110870 0.110870 0.110870\n0.117340 0.117340 0.117340\n0.124268 0.124268 0.124268\n0.131348 0.131348 0.131348\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.069275 0.069275 0.069275\n0.073639 0.073639 0.073639\n0.078094 0.078094 0.078094\n0.082947 0.082947 0.082947\n0.087891 0.087891 0.087891\n0.093231 0.093231 0.093231\n0.098785 0.098785 0.098785\n0.104492 0.104492 0.104492\n0.110687 0.110687 0.110687\n0.117218 0.117218 0.117218\n0.123901 0.123901 0.123901\n0.131134 0.131134 0.131134\n0.138824 0.138824 0.138824\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.078003 0.078003 0.078003\n0.082703 0.082703 0.082703\n0.087769 0.087769 0.087769\n0.093079 0.093079 0.093079\n0.098480 0.098480 0.098480\n0.104370 0.104370 0.104370\n0.110504 0.110504 0.110504\n0.116852 0.116852 0.116852\n0.123718 0.123718 0.123718\n0.130981 0.130981 0.130981\n0.138458 0.138458 0.138458\n0.146576 0.146576 0.146576\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.087646 0.087646 0.087646\n0.092804 0.092804 0.092804\n0.098358 0.098358 0.098358\n0.104218 0.104218 0.104218\n0.110229 0.110229 0.110229\n0.116699 0.116699 0.116699\n0.123535 0.123535 0.123535\n0.130615 0.130615 0.130615\n0.138245 0.138245 0.138245\n0.146332 0.146332 0.146332\n0.154694 0.154694 0.154694\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.098206 0.098206 0.098206\n0.103882 0.103882 0.103882\n0.110077 0.110077 0.110077\n0.116516 0.116516 0.116516\n0.123199 0.123199 0.123199\n0.130432 0.130432 0.130432\n0.138062 0.138062 0.138062\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.109894 0.109894 0.109894\n0.116211 0.116211 0.116211\n0.123016 0.123016 0.123016\n0.130219 0.130219 0.130219\n0.137665 0.137665 0.137665\n0.145721 0.145721 0.145721\n0.154266 0.154266 0.154266\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.122833 0.122833 0.122833\n0.129852 0.129852 0.129852\n0.137451 0.137451 0.137451\n0.145538 0.145538 0.145538\n0.153839 0.153839 0.153839\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281342 0.281342 0.281342\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371796 0.371796 0.371796\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.137268 0.137268 0.137268\n0.145111 0.145111 0.145111\n0.153595 0.153595 0.153595\n0.162628 0.162628 0.162628\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271759 0.271759 0.271759\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.153381 0.153381 0.153381\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378601 0.378601 0.378601\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.171417 0.171417 0.171417\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280426 0.280426 0.280426\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385376 0.385376 0.385376\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288910 0.288910 0.288910\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.392029 0.392029 0.392029\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297272 0.297272 0.297272\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479797 0.479797 0.479797\n0.486694 0.486694 0.486694\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314331 0.314331 0.314331\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398590 0.398590 0.398590\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419220 0.419220 0.419220\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305450 0.305450 0.305450\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330719 0.330719 0.330719\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412170 0.412170 0.412170\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.322205 0.322205 0.322205\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.405060 0.405060 0.405060\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425537 0.425537 0.425537\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338257 0.338257 0.338257\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418549 0.418549 0.418549\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411469 0.411469 0.411469\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506683 0.506683 0.506683\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424866 0.424866 0.424866\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513367 0.513367 0.513367\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424164 0.424164 0.424164\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444336 0.444336 0.444336\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.520142 0.520142 0.520142\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437378 0.437378 0.437378\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450562 0.450562 0.450562\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.527008 0.527008 0.527008\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615967 0.615967 0.615967\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.436890 0.436890 0.436890\n0.443665 0.443665 0.443665\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.676025 0.676025 0.676025\n0.450073 0.450073 0.450073\n0.456818 0.456818 0.456818\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533966 0.533966 0.533966\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.624023 0.624023 0.624023\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.684143 0.684143 0.684143\n0.692566 0.692566 0.692566\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.692139 0.692139 0.692139\n0.700470 0.700470 0.700470\n0.708679 0.708679 0.708679\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.541046 0.541046 0.541046\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.632141 0.632141 0.632141\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.666565 0.666565 0.666565\n0.675201 0.675201 0.675201\n0.683502 0.683502 0.683502\n0.691956 0.691956 0.691956\n0.700287 0.700287 0.700287\n0.708282 0.708282 0.708282\n0.716339 0.716339 0.716339\n0.724304 0.724304 0.724304\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.649170 0.649170 0.649170\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.674744 0.674744 0.674744\n0.683319 0.683319 0.683319\n0.691742 0.691742 0.691742\n0.699890 0.699890 0.699890\n0.708069 0.708069 0.708069\n0.716156 0.716156 0.716156\n0.723907 0.723907 0.723907\n0.731659 0.731659 0.731659\n0.739258 0.739258 0.739258\n0.041809 0.041809 0.041809\n0.047821 0.047821 0.047821\n0.053406 0.053406 0.053406\n0.059113 0.059113 0.059113\n0.062958 0.062958 0.062958\n0.067017 0.067017 0.067017\n0.071228 0.071228 0.071228\n0.075684 0.075684 0.075684\n0.080414 0.080414 0.080414\n0.085205 0.085205 0.085205\n0.090393 0.090393 0.090393\n0.095795 0.095795 0.095795\n0.101379 0.101379 0.101379\n0.107391 0.107391 0.107391\n0.113586 0.113586 0.113586\n0.120239 0.120239 0.120239\n0.127289 0.127289 0.127289\n0.134583 0.134583 0.134583\n0.142426 0.142426 0.142426\n0.150787 0.150787 0.150787\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.053070 0.053070 0.053070\n0.059021 0.059021 0.059021\n0.062836 0.062836 0.062836\n0.066833 0.066833 0.066833\n0.071106 0.071106 0.071106\n0.075562 0.075562 0.075562\n0.080170 0.080170 0.080170\n0.085083 0.085083 0.085083\n0.090271 0.090271 0.090271\n0.095520 0.095520 0.095520\n0.101227 0.101227 0.101227\n0.107117 0.107117 0.107117\n0.113403 0.113403 0.113403\n0.120056 0.120056 0.120056\n0.126923 0.126923 0.126923\n0.134369 0.134369 0.134369\n0.142242 0.142242 0.142242\n0.150360 0.150360 0.150360\n0.159180 0.159180 0.159180\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198364 0.198364 0.198364\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.062622 0.062622 0.062622\n0.066711 0.066711 0.066711\n0.071014 0.071014 0.071014\n0.075378 0.075378 0.075378\n0.080048 0.080048 0.080048\n0.084961 0.084961 0.084961\n0.089996 0.089996 0.089996\n0.095367 0.095367 0.095367\n0.101105 0.101105 0.101105\n0.106964 0.106964 0.106964\n0.113251 0.113251 0.113251\n0.119720 0.119720 0.119720\n0.126740 0.126740 0.126740\n0.134186 0.134186 0.134186\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.070801 0.070801 0.070801\n0.075256 0.075256 0.075256\n0.079956 0.079956 0.079956\n0.084717 0.084717 0.084717\n0.089874 0.089874 0.089874\n0.095245 0.095245 0.095245\n0.100800 0.100800 0.100800\n0.106812 0.106812 0.106812\n0.112946 0.112946 0.112946\n0.119568 0.119568 0.119568\n0.126587 0.126587 0.126587\n0.133789 0.133789 0.133789\n0.141632 0.141632 0.141632\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.208008 0.208008 0.208008\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.079681 0.079681 0.079681\n0.084595 0.084595 0.084595\n0.089722 0.089722 0.089722\n0.094971 0.094971 0.094971\n0.100647 0.100647 0.100647\n0.106628 0.106628 0.106628\n0.112762 0.112762 0.112762\n0.119415 0.119415 0.119415\n0.126221 0.126221 0.126221\n0.133606 0.133606 0.133606\n0.141449 0.141449 0.141449\n0.149506 0.149506 0.149506\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.089447 0.089447 0.089447\n0.094818 0.094818 0.094818\n0.100525 0.100525 0.100525\n0.106323 0.106323 0.106323\n0.112610 0.112610 0.112610\n0.119080 0.119080 0.119080\n0.126068 0.126068 0.126068\n0.133423 0.133423 0.133423\n0.141052 0.141052 0.141052\n0.149323 0.149323 0.149323\n0.158081 0.158081 0.158081\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217621 0.217621 0.217621\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.100220 0.100220 0.100220\n0.106171 0.106171 0.106171\n0.112427 0.112427 0.112427\n0.118896 0.118896 0.118896\n0.125854 0.125854 0.125854\n0.133057 0.133057 0.133057\n0.140839 0.140839 0.140839\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.112122 0.112122 0.112122\n0.118713 0.118713 0.118713\n0.125671 0.125671 0.125671\n0.132843 0.132843 0.132843\n0.140625 0.140625 0.140625\n0.148682 0.148682 0.148682\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.125305 0.125305 0.125305\n0.132660 0.132660 0.132660\n0.140228 0.140228 0.140228\n0.148438 0.148438 0.148438\n0.157166 0.157166 0.157166\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.140045 0.140045 0.140045\n0.148285 0.148285 0.148285\n0.156708 0.156708 0.156708\n0.165894 0.165894 0.165894\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236572 0.236572 0.236572\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245880 0.245880 0.245880\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358551 0.358551 0.358551\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.435883 0.435883 0.435883\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254974 0.254974 0.254974\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449036 0.449036 0.449036\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.254211 0.254211 0.254211\n0.263916 0.263916 0.263916\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357788 0.357788 0.357788\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455292 0.455292 0.455292\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.272949 0.272949 0.272949\n0.282257 0.282257 0.282257\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372528 0.372528 0.372528\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.290985 0.290985 0.290985\n0.299896 0.299896 0.299896\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364838 0.364838 0.364838\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386810 0.386810 0.386810\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379333 0.379333 0.379333\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371796 0.371796 0.371796\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393463 0.393463 0.393463\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.386078 0.386078 0.386078\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481354 0.481354 0.481354\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.562134 0.562134 0.562134\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378601 0.378601 0.378601\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399963 0.399963 0.399963\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392731 0.392731 0.392731\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487762 0.487762 0.487762\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569672 0.569672 0.569672\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.385376 0.385376 0.385376\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406464 0.406464 0.406464\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.399292 0.399292 0.399292\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577301 0.577301 0.577301\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.412872 0.412872 0.412872\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.585052 0.585052 0.585052\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.679047 0.679047 0.679047\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592865 0.592865 0.592865\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.687317 0.687317 0.687317\n0.695496 0.695496 0.695496\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.695282 0.695282 0.695282\n0.703400 0.703400 0.703400\n0.711548 0.711548 0.711548\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.514099 0.514099 0.514099\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600800 0.600800 0.600800\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.669800 0.669800 0.669800\n0.678162 0.678162 0.678162\n0.686676 0.686676 0.686676\n0.695099 0.695099 0.695099\n0.703156 0.703156 0.703156\n0.711334 0.711334 0.711334\n0.719147 0.719147 0.719147\n0.727020 0.727020 0.727020\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506683 0.506683 0.506683\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.677979 0.677979 0.677979\n0.686493 0.686493 0.686493\n0.694672 0.694672 0.694672\n0.702972 0.702972 0.702972\n0.710938 0.710938 0.710938\n0.718964 0.718964 0.718964\n0.726807 0.726807 0.726807\n0.734344 0.734344 0.734344\n0.741882 0.741882 0.741882\n0.043915 0.043915 0.043915\n0.049835 0.049835 0.049835\n0.055511 0.055511 0.055511\n0.060486 0.060486 0.060486\n0.064514 0.064514 0.064514\n0.068512 0.068512 0.068512\n0.072845 0.072845 0.072845\n0.077454 0.077454 0.077454\n0.082092 0.082092 0.082092\n0.087097 0.087097 0.087097\n0.092255 0.092255 0.092255\n0.097778 0.097778 0.097778\n0.103638 0.103638 0.103638\n0.109589 0.109589 0.109589\n0.116058 0.116058 0.116058\n0.122833 0.122833 0.122833\n0.129852 0.129852 0.129852\n0.137451 0.137451 0.137451\n0.145538 0.145538 0.145538\n0.153839 0.153839 0.153839\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.055359 0.055359 0.055359\n0.060394 0.060394 0.060394\n0.064270 0.064270 0.064270\n0.068390 0.068390 0.068390\n0.072693 0.072693 0.072693\n0.077179 0.077179 0.077179\n0.081970 0.081970 0.081970\n0.086853 0.086853 0.086853\n0.092133 0.092133 0.092133\n0.097656 0.097656 0.097656\n0.103333 0.103333 0.103333\n0.109436 0.109436 0.109436\n0.115875 0.115875 0.115875\n0.122498 0.122498 0.122498\n0.129700 0.129700 0.129700\n0.137268 0.137268 0.137268\n0.145111 0.145111 0.145111\n0.153595 0.153595 0.153595\n0.162628 0.162628 0.162628\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271545 0.271545 0.271545\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.064178 0.064178 0.064178\n0.068268 0.068268 0.068268\n0.072510 0.072510 0.072510\n0.077057 0.077057 0.077057\n0.081848 0.081848 0.081848\n0.086731 0.086731 0.086731\n0.091980 0.091980 0.091980\n0.097351 0.097351 0.097351\n0.103149 0.103149 0.103149\n0.109283 0.109283 0.109283\n0.115540 0.115540 0.115540\n0.122314 0.122314 0.122314\n0.129486 0.129486 0.129486\n0.136871 0.136871 0.136871\n0.144897 0.144897 0.144897\n0.153381 0.153381 0.153381\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.072388 0.072388 0.072388\n0.076965 0.076965 0.076965\n0.081604 0.081604 0.081604\n0.086609 0.086609 0.086609\n0.091705 0.091705 0.091705\n0.097229 0.097229 0.097229\n0.102997 0.102997 0.102997\n0.108948 0.108948 0.108948\n0.115387 0.115387 0.115387\n0.122162 0.122162 0.122162\n0.129120 0.129120 0.129120\n0.136688 0.136688 0.136688\n0.144684 0.144684 0.144684\n0.152954 0.152954 0.152954\n0.161926 0.161926 0.161926\n0.171173 0.171173 0.171173\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280426 0.280426 0.280426\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.081482 0.081482 0.081482\n0.086487 0.086487 0.086487\n0.091583 0.091583 0.091583\n0.097076 0.097076 0.097076\n0.102692 0.102692 0.102692\n0.108795 0.108795 0.108795\n0.115204 0.115204 0.115204\n0.121796 0.121796 0.121796\n0.128937 0.128937 0.128937\n0.136475 0.136475 0.136475\n0.144257 0.144257 0.144257\n0.152740 0.152740 0.152740\n0.161713 0.161713 0.161713\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.091431 0.091431 0.091431\n0.096802 0.096802 0.096802\n0.102570 0.102570 0.102570\n0.108612 0.108612 0.108612\n0.114868 0.114868 0.114868\n0.121643 0.121643 0.121643\n0.128784 0.128784 0.128784\n0.136108 0.136108 0.136108\n0.144073 0.144073 0.144073\n0.152557 0.152557 0.152557\n0.161255 0.161255 0.161255\n0.170685 0.170685 0.170685\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288910 0.288910 0.288910\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.102417 0.102417 0.102417\n0.108307 0.108307 0.108307\n0.114716 0.114716 0.114716\n0.121460 0.121460 0.121460\n0.128387 0.128387 0.128387\n0.135895 0.135895 0.135895\n0.143860 0.143860 0.143860\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170441 0.170441 0.170441\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.114532 0.114532 0.114532\n0.121094 0.121094 0.121094\n0.128204 0.128204 0.128204\n0.135712 0.135712 0.135712\n0.143463 0.143463 0.143463\n0.151886 0.151886 0.151886\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297272 0.297272 0.297272\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.128021 0.128021 0.128021\n0.135315 0.135315 0.135315\n0.143250 0.143250 0.143250\n0.151642 0.151642 0.151642\n0.160339 0.160339 0.160339\n0.169708 0.169708 0.169708\n0.179504 0.179504 0.179504\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.143066 0.143066 0.143066\n0.151215 0.151215 0.151215\n0.160095 0.160095 0.160095\n0.169464 0.169464 0.169464\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305450 0.305450 0.305450\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188812 0.188812 0.188812\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.209045 0.209045 0.209045\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.198364 0.198364 0.198364\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411316 0.411316 0.411316\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.218628 0.218628 0.218628\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321320 0.321320 0.321320\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.329071 0.329071 0.329071\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344879 0.344879 0.344879\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424164 0.424164 0.424164\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336639 0.336639 0.336639\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437378 0.437378 0.437378\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.352173 0.352173 0.352173\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.344086 0.344086 0.344086\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.367126 0.367126 0.367126\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443665 0.443665 0.443665\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359314 0.359314 0.359314\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373993 0.373993 0.373993\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449890 0.449890 0.449890\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442963 0.442963 0.442963\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.456146 0.456146 0.456146\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548248 0.548248 0.548248\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462402 0.462402 0.462402\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555542 0.555542 0.555542\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648315 0.648315 0.648315\n0.656830 0.656830 0.656830\n0.665497 0.665497 0.665497\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468658 0.468658 0.468658\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.673706 0.673706 0.673706\n0.682251 0.682251 0.682251\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656403 0.656403 0.656403\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.681793 0.681793 0.681793\n0.690277 0.690277 0.690277\n0.698608 0.698608 0.698608\n0.468140 0.468140 0.468140\n0.474976 0.474976 0.474976\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554749 0.554749 0.554749\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.655914 0.655914 0.655914\n0.664612 0.664612 0.664612\n0.673065 0.673065 0.673065\n0.681610 0.681610 0.681610\n0.690063 0.690063 0.690063\n0.698212 0.698212 0.698212\n0.706451 0.706451 0.706451\n0.714569 0.714569 0.714569\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.664459 0.664459 0.664459\n0.672821 0.672821 0.672821\n0.681366 0.681366 0.681366\n0.689667 0.689667 0.689667\n0.697998 0.697998 0.697998\n0.706238 0.706238 0.706238\n0.714142 0.714142 0.714142\n0.722107 0.722107 0.722107\n0.729919 0.729919 0.729919\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.562134 0.562134 0.562134\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655518 0.655518 0.655518\n0.664001 0.664001 0.664001\n0.672607 0.672607 0.672607\n0.680969 0.680969 0.680969\n0.689423 0.689423 0.689423\n0.697784 0.697784 0.697784\n0.705841 0.705841 0.705841\n0.713959 0.713959 0.713959\n0.721924 0.721924 0.721924\n0.729553 0.729553 0.729553\n0.737213 0.737213 0.737213\n0.744690 0.744690 0.744690\n0.046448 0.046448 0.046448\n0.051758 0.051758 0.051758\n0.057892 0.057892 0.057892\n0.061920 0.061920 0.061920\n0.065918 0.065918 0.065918\n0.070160 0.070160 0.070160\n0.074432 0.074432 0.074432\n0.079041 0.079041 0.079041\n0.083954 0.083954 0.083954\n0.088928 0.088928 0.088928\n0.094299 0.094299 0.094299\n0.099915 0.099915 0.099915\n0.105713 0.105713 0.105713\n0.111938 0.111938 0.111938\n0.118378 0.118378 0.118378\n0.125305 0.125305 0.125305\n0.132660 0.132660 0.132660\n0.140228 0.140228 0.140228\n0.148438 0.148438 0.148438\n0.157166 0.157166 0.157166\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.057709 0.057709 0.057709\n0.061737 0.061737 0.061737\n0.065796 0.065796 0.065796\n0.069916 0.069916 0.069916\n0.074310 0.074310 0.074310\n0.078949 0.078949 0.078949\n0.083710 0.083710 0.083710\n0.088806 0.088806 0.088806\n0.094147 0.094147 0.094147\n0.099640 0.099640 0.099640\n0.105560 0.105560 0.105560\n0.111786 0.111786 0.111786\n0.118225 0.118225 0.118225\n0.125153 0.125153 0.125153\n0.132294 0.132294 0.132294\n0.140045 0.140045 0.140045\n0.148285 0.148285 0.148285\n0.156708 0.156708 0.156708\n0.165894 0.165894 0.165894\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.065704 0.065704 0.065704\n0.069824 0.069824 0.069824\n0.074219 0.074219 0.074219\n0.078705 0.078705 0.078705\n0.083588 0.083588 0.083588\n0.088684 0.088684 0.088684\n0.093903 0.093903 0.093903\n0.099518 0.099518 0.099518\n0.105377 0.105377 0.105377\n0.111481 0.111481 0.111481\n0.118042 0.118042 0.118042\n0.124969 0.124969 0.124969\n0.132111 0.132111 0.132111\n0.139832 0.139832 0.139832\n0.147827 0.147827 0.147827\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.073975 0.073975 0.073975\n0.078613 0.078613 0.078613\n0.083466 0.083466 0.083466\n0.088379 0.088379 0.088379\n0.093750 0.093750 0.093750\n0.099365 0.099365 0.099365\n0.105133 0.105133 0.105133\n0.111328 0.111328 0.111328\n0.117859 0.117859 0.117859\n0.124634 0.124634 0.124634\n0.131927 0.131927 0.131927\n0.139435 0.139435 0.139435\n0.147614 0.147614 0.147614\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.083191 0.083191 0.083191\n0.088257 0.088257 0.088257\n0.093597 0.093597 0.093597\n0.099060 0.099060 0.099060\n0.104950 0.104950 0.104950\n0.111145 0.111145 0.111145\n0.117523 0.117523 0.117523\n0.124420 0.124420 0.124420\n0.131714 0.131714 0.131714\n0.139221 0.139221 0.139221\n0.147400 0.147400 0.147400\n0.155792 0.155792 0.155792\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.093353 0.093353 0.093353\n0.098907 0.098907 0.098907\n0.104797 0.104797 0.104797\n0.110870 0.110870 0.110870\n0.117340 0.117340 0.117340\n0.124268 0.124268 0.124268\n0.131348 0.131348 0.131348\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254974 0.254974 0.254974\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.358154 0.358154 0.358154\n0.104492 0.104492 0.104492\n0.110687 0.110687 0.110687\n0.117218 0.117218 0.117218\n0.123901 0.123901 0.123901\n0.131134 0.131134 0.131134\n0.138824 0.138824 0.138824\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.116852 0.116852 0.116852\n0.123718 0.123718 0.123718\n0.130981 0.130981 0.130981\n0.138458 0.138458 0.138458\n0.146576 0.146576 0.146576\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263916 0.263916 0.263916\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357788 0.357788 0.357788\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.130615 0.130615 0.130615\n0.138245 0.138245 0.138245\n0.146332 0.146332 0.146332\n0.154694 0.154694 0.154694\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364838 0.364838 0.364838\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371796 0.371796 0.371796\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271759 0.271759 0.271759\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378601 0.378601 0.378601\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280426 0.280426 0.280426\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467133 0.467133 0.467133\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480499 0.480499 0.480499\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.279724 0.279724 0.279724\n0.288910 0.288910 0.288910\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.315186 0.315186 0.315186\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399292 0.399292 0.399292\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.297485 0.297485 0.297485\n0.306335 0.306335 0.306335\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.392029 0.392029 0.392029\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.314545 0.314545 0.314545\n0.322998 0.322998 0.322998\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405762 0.405762 0.405762\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398590 0.398590 0.398590\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412170 0.412170 0.412170\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.405060 0.405060 0.405060\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418549 0.418549 0.418549\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411469 0.411469 0.411469\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431793 0.431793 0.431793\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506683 0.506683 0.506683\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424866 0.424866 0.424866\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.438049 0.438049 0.438049\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513367 0.513367 0.513367\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.668518 0.668518 0.668518\n0.444336 0.444336 0.444336\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.520142 0.520142 0.520142\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.676880 0.676880 0.676880\n0.685211 0.685211 0.685211\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624908 0.624908 0.624908\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.684998 0.684998 0.684998\n0.693420 0.693420 0.693420\n0.701508 0.701508 0.701508\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.527008 0.527008 0.527008\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615967 0.615967 0.615967\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.667664 0.667664 0.667664\n0.676300 0.676300 0.676300\n0.684753 0.684753 0.684753\n0.693024 0.693024 0.693024\n0.701324 0.701324 0.701324\n0.709503 0.709503 0.709503\n0.717377 0.717377 0.717377\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632996 0.632996 0.632996\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.676025 0.676025 0.676025\n0.684357 0.684357 0.684357\n0.692810 0.692810 0.692810\n0.701111 0.701111 0.701111\n0.709076 0.709076 0.709076\n0.717163 0.717163 0.717163\n0.725067 0.725067 0.725067\n0.732605 0.732605 0.732605\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533966 0.533966 0.533966\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.624023 0.624023 0.624023\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.684143 0.684143 0.684143\n0.692566 0.692566 0.692566\n0.700684 0.700684 0.700684\n0.708862 0.708862 0.708862\n0.716949 0.716949 0.716949\n0.724670 0.724670 0.724670\n0.732422 0.732422 0.732422\n0.739807 0.739807 0.739807\n0.747223 0.747223 0.747223\n0.048370 0.048370 0.048370\n0.053986 0.053986 0.053986\n0.059479 0.059479 0.059479\n0.063354 0.063354 0.063354\n0.067444 0.067444 0.067444\n0.071625 0.071625 0.071625\n0.076172 0.076172 0.076172\n0.080872 0.080872 0.080872\n0.085724 0.085724 0.085724\n0.090912 0.090912 0.090912\n0.096222 0.096222 0.096222\n0.101990 0.101990 0.101990\n0.108002 0.108002 0.108002\n0.114227 0.114227 0.114227\n0.120941 0.120941 0.120941\n0.128021 0.128021 0.128021\n0.135315 0.135315 0.135315\n0.143250 0.143250 0.143250\n0.151642 0.151642 0.151642\n0.160339 0.160339 0.160339\n0.169708 0.169708 0.169708\n0.179504 0.179504 0.179504\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.059387 0.059387 0.059387\n0.063263 0.063263 0.063263\n0.067230 0.067230 0.067230\n0.071533 0.071533 0.071533\n0.076050 0.076050 0.076050\n0.080658 0.080658 0.080658\n0.085602 0.085602 0.085602\n0.090790 0.090790 0.090790\n0.096100 0.096100 0.096100\n0.101837 0.101837 0.101837\n0.107727 0.107727 0.107727\n0.114044 0.114044 0.114044\n0.120758 0.120758 0.120758\n0.127686 0.127686 0.127686\n0.135162 0.135162 0.135162\n0.143066 0.143066 0.143066\n0.151215 0.151215 0.151215\n0.160095 0.160095 0.160095\n0.169464 0.169464 0.169464\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.067139 0.067139 0.067139\n0.071442 0.071442 0.071442\n0.075836 0.075836 0.075836\n0.080505 0.080505 0.080505\n0.085480 0.085480 0.085480\n0.090515 0.090515 0.090515\n0.095978 0.095978 0.095978\n0.101501 0.101501 0.101501\n0.107544 0.107544 0.107544\n0.113892 0.113892 0.113892\n0.120422 0.120422 0.120422\n0.127502 0.127502 0.127502\n0.134949 0.134949 0.134949\n0.142639 0.142639 0.142639\n0.151001 0.151001 0.151001\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188812 0.188812 0.188812\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.075684 0.075684 0.075684\n0.080414 0.080414 0.080414\n0.085205 0.085205 0.085205\n0.090393 0.090393 0.090393\n0.095795 0.095795 0.095795\n0.101379 0.101379 0.101379\n0.107391 0.107391 0.107391\n0.113586 0.113586 0.113586\n0.120239 0.120239 0.120239\n0.127289 0.127289 0.127289\n0.134583 0.134583 0.134583\n0.142426 0.142426 0.142426\n0.150787 0.150787 0.150787\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.085083 0.085083 0.085083\n0.090271 0.090271 0.090271\n0.095520 0.095520 0.095520\n0.101227 0.101227 0.101227\n0.107239 0.107239 0.107239\n0.113403 0.113403 0.113403\n0.120056 0.120056 0.120056\n0.126923 0.126923 0.126923\n0.134369 0.134369 0.134369\n0.142242 0.142242 0.142242\n0.150360 0.150360 0.150360\n0.159180 0.159180 0.159180\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198120 0.198120 0.198120\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.095367 0.095367 0.095367\n0.101105 0.101105 0.101105\n0.106964 0.106964 0.106964\n0.113251 0.113251 0.113251\n0.119720 0.119720 0.119720\n0.126740 0.126740 0.126740\n0.134186 0.134186 0.134186\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.106812 0.106812 0.106812\n0.113098 0.113098 0.113098\n0.119568 0.119568 0.119568\n0.126587 0.126587 0.126587\n0.133789 0.133789 0.133789\n0.141632 0.141632 0.141632\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.208008 0.208008 0.208008\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.119415 0.119415 0.119415\n0.126221 0.126221 0.126221\n0.133606 0.133606 0.133606\n0.141449 0.141449 0.141449\n0.149506 0.149506 0.149506\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.133423 0.133423 0.133423\n0.141052 0.141052 0.141052\n0.149323 0.149323 0.149323\n0.158081 0.158081 0.158081\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217621 0.217621 0.217621\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.416962 0.416962 0.416962\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.227173 0.227173 0.227173\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430298 0.430298 0.430298\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.344086 0.344086 0.344086\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236572 0.236572 0.236572\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.245880 0.245880 0.245880\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442780 0.442780 0.442780\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.283203 0.283203 0.283203\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373291 0.373291 0.373291\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365601 0.365601 0.365601\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462402 0.462402 0.462402\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357788 0.357788 0.357788\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.380096 0.380096 0.380096\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372528 0.372528 0.372528\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468658 0.468658 0.468658\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364838 0.364838 0.364838\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386810 0.386810 0.386810\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379333 0.379333 0.379333\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474976 0.474976 0.474976\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554749 0.554749 0.554749\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393463 0.393463 0.393463\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.562134 0.562134 0.562134\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569672 0.569672 0.569672\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.671753 0.671753 0.671753\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577301 0.577301 0.577301\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671539 0.671539 0.671539\n0.679901 0.679901 0.679901\n0.688354 0.688354 0.688354\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.687958 0.687958 0.687958\n0.696350 0.696350 0.696350\n0.704590 0.704590 0.704590\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500763 0.500763 0.500763\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.585052 0.585052 0.585052\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.670898 0.670898 0.670898\n0.679474 0.679474 0.679474\n0.687714 0.687714 0.687714\n0.696167 0.696167 0.696167\n0.704193 0.704193 0.704193\n0.712341 0.712341 0.712341\n0.720337 0.720337 0.720337\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.679047 0.679047 0.679047\n0.687531 0.687531 0.687531\n0.695709 0.695709 0.695709\n0.703979 0.703979 0.703979\n0.712128 0.712128 0.712128\n0.719940 0.719940 0.719940\n0.727783 0.727783 0.727783\n0.735504 0.735504 0.735504\n0.500244 0.500244 0.500244\n0.507416 0.507416 0.507416\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592865 0.592865 0.592865\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.687317 0.687317 0.687317\n0.695496 0.695496 0.695496\n0.703796 0.703796 0.703796\n0.711731 0.711731 0.711731\n0.719788 0.719788 0.719788\n0.727600 0.727600 0.727600\n0.735107 0.735107 0.735107\n0.742615 0.742615 0.742615\n0.749969 0.749969 0.749969\n0.050354 0.050354 0.050354\n0.056122 0.056122 0.056122\n0.060852 0.060852 0.060852\n0.064941 0.064941 0.064941\n0.068939 0.068939 0.068939\n0.073303 0.073303 0.073303\n0.077759 0.077759 0.077759\n0.082581 0.082581 0.082581\n0.087646 0.087646 0.087646\n0.092804 0.092804 0.092804\n0.098358 0.098358 0.098358\n0.104218 0.104218 0.104218\n0.110229 0.110229 0.110229\n0.116699 0.116699 0.116699\n0.123535 0.123535 0.123535\n0.130615 0.130615 0.130615\n0.138245 0.138245 0.138245\n0.146332 0.146332 0.146332\n0.154694 0.154694 0.154694\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.060791 0.060791 0.060791\n0.064728 0.064728 0.064728\n0.068817 0.068817 0.068817\n0.073212 0.073212 0.073212\n0.077637 0.077637 0.077637\n0.082458 0.082458 0.082458\n0.087372 0.087372 0.087372\n0.092682 0.092682 0.092682\n0.098206 0.098206 0.098206\n0.103882 0.103882 0.103882\n0.110077 0.110077 0.110077\n0.116516 0.116516 0.116516\n0.123199 0.123199 0.123199\n0.130432 0.130432 0.130432\n0.138062 0.138062 0.138062\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.068695 0.068695 0.068695\n0.072968 0.072968 0.072968\n0.077515 0.077515 0.077515\n0.082184 0.082184 0.082184\n0.087219 0.087219 0.087219\n0.092529 0.092529 0.092529\n0.097931 0.097931 0.097931\n0.103760 0.103760 0.103760\n0.109894 0.109894 0.109894\n0.116211 0.116211 0.116211\n0.123016 0.123016 0.123016\n0.130219 0.130219 0.130219\n0.137665 0.137665 0.137665\n0.145721 0.145721 0.145721\n0.154022 0.154022 0.154022\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.077454 0.077454 0.077454\n0.082092 0.082092 0.082092\n0.087097 0.087097 0.087097\n0.092255 0.092255 0.092255\n0.097778 0.097778 0.097778\n0.103638 0.103638 0.103638\n0.109589 0.109589 0.109589\n0.116058 0.116058 0.116058\n0.122833 0.122833 0.122833\n0.129852 0.129852 0.129852\n0.137451 0.137451 0.137451\n0.145538 0.145538 0.145538\n0.153839 0.153839 0.153839\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.086853 0.086853 0.086853\n0.092133 0.092133 0.092133\n0.097656 0.097656 0.097656\n0.103333 0.103333 0.103333\n0.109436 0.109436 0.109436\n0.115875 0.115875 0.115875\n0.122498 0.122498 0.122498\n0.129700 0.129700 0.129700\n0.137268 0.137268 0.137268\n0.145111 0.145111 0.145111\n0.153595 0.153595 0.153595\n0.162415 0.162415 0.162415\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271759 0.271759 0.271759\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.097351 0.097351 0.097351\n0.103149 0.103149 0.103149\n0.109283 0.109283 0.109283\n0.115540 0.115540 0.115540\n0.122314 0.122314 0.122314\n0.129486 0.129486 0.129486\n0.136871 0.136871 0.136871\n0.144897 0.144897 0.144897\n0.153381 0.153381 0.153381\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.108948 0.108948 0.108948\n0.115387 0.115387 0.115387\n0.122162 0.122162 0.122162\n0.129120 0.129120 0.129120\n0.136688 0.136688 0.136688\n0.144684 0.144684 0.144684\n0.152954 0.152954 0.152954\n0.161926 0.161926 0.161926\n0.171173 0.171173 0.171173\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280426 0.280426 0.280426\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.121796 0.121796 0.121796\n0.128937 0.128937 0.128937\n0.136475 0.136475 0.136475\n0.144257 0.144257 0.144257\n0.152740 0.152740 0.152740\n0.161713 0.161713 0.161713\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.136108 0.136108 0.136108\n0.144073 0.144073 0.144073\n0.152557 0.152557 0.152557\n0.161255 0.161255 0.161255\n0.170685 0.170685 0.170685\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288910 0.288910 0.288910\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170441 0.170441 0.170441\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189850 0.189850 0.189850\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305450 0.305450 0.305450\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313446 0.313446 0.313446\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411469 0.411469 0.411469\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485504 0.485504 0.485504\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321320 0.321320 0.321320\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345673 0.345673 0.345673\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424866 0.424866 0.424866\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337463 0.337463 0.337463\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.320709 0.320709 0.320709\n0.329071 0.329071 0.329071\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352936 0.352936 0.352936\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.336853 0.336853 0.336853\n0.344879 0.344879 0.344879\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424164 0.424164 0.424164\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.352325 0.352325 0.352325\n0.360077 0.360077 0.360077\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437378 0.437378 0.437378\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443665 0.443665 0.443665\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533966 0.533966 0.533966\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.624023 0.624023 0.624023\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449890 0.449890 0.449890\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442963 0.442963 0.442963\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.541046 0.541046 0.541046\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.632141 0.632141 0.632141\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.456146 0.456146 0.456146\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.674744 0.674744 0.674744\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.640228 0.640228 0.640228\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.674561 0.674561 0.674561\n0.683075 0.683075 0.683075\n0.691315 0.691315 0.691315\n0.462402 0.462402 0.462402\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.657074 0.657074 0.657074\n0.665680 0.665680 0.665680\n0.674347 0.674347 0.674347\n0.682648 0.682648 0.682648\n0.691101 0.691101 0.691101\n0.699432 0.699432 0.699432\n0.707458 0.707458 0.707458\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648315 0.648315 0.648315\n0.656830 0.656830 0.656830\n0.665497 0.665497 0.665497\n0.673889 0.673889 0.673889\n0.682465 0.682465 0.682465\n0.690887 0.690887 0.690887\n0.699036 0.699036 0.699036\n0.707275 0.707275 0.707275\n0.715363 0.715363 0.715363\n0.723145 0.723145 0.723145\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.673706 0.673706 0.673706\n0.682251 0.682251 0.682251\n0.690491 0.690491 0.690491\n0.698822 0.698822 0.698822\n0.707062 0.707062 0.707062\n0.714966 0.714966 0.714966\n0.722931 0.722931 0.722931\n0.730682 0.730682 0.730682\n0.738129 0.738129 0.738129\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656403 0.656403 0.656403\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.681793 0.681793 0.681793\n0.690277 0.690277 0.690277\n0.698608 0.698608 0.698608\n0.706665 0.706665 0.706665\n0.714783 0.714783 0.714783\n0.722717 0.722717 0.722717\n0.730316 0.730316 0.730316\n0.737946 0.737946 0.737946\n0.745392 0.745392 0.745392\n0.752472 0.752472 0.752472\n0.052338 0.052338 0.052338\n0.058594 0.058594 0.058594\n0.062256 0.062256 0.062256\n0.066284 0.066284 0.066284\n0.070618 0.070618 0.070618\n0.074890 0.074890 0.074890\n0.079559 0.079559 0.079559\n0.084473 0.084473 0.084473\n0.089447 0.089447 0.089447\n0.094818 0.094818 0.094818\n0.100525 0.100525 0.100525\n0.106323 0.106323 0.106323\n0.112610 0.112610 0.112610\n0.119080 0.119080 0.119080\n0.126068 0.126068 0.126068\n0.133423 0.133423 0.133423\n0.141052 0.141052 0.141052\n0.149323 0.149323 0.149323\n0.158081 0.158081 0.158081\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217346 0.217346 0.217346\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.062134 0.062134 0.062134\n0.066223 0.066223 0.066223\n0.070374 0.070374 0.070374\n0.074768 0.074768 0.074768\n0.079468 0.079468 0.079468\n0.084229 0.084229 0.084229\n0.089325 0.089325 0.089325\n0.094696 0.094696 0.094696\n0.100220 0.100220 0.100220\n0.106171 0.106171 0.106171\n0.112427 0.112427 0.112427\n0.118896 0.118896 0.118896\n0.125854 0.125854 0.125854\n0.133057 0.133057 0.133057\n0.140839 0.140839 0.140839\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.070251 0.070251 0.070251\n0.074646 0.074646 0.074646\n0.079193 0.079193 0.079193\n0.084106 0.084106 0.084106\n0.089203 0.089203 0.089203\n0.094421 0.094421 0.094421\n0.100098 0.100098 0.100098\n0.106018 0.106018 0.106018\n0.112122 0.112122 0.112122\n0.118713 0.118713 0.118713\n0.125488 0.125488 0.125488\n0.132843 0.132843 0.132843\n0.140625 0.140625 0.140625\n0.148682 0.148682 0.148682\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.079041 0.079041 0.079041\n0.083954 0.083954 0.083954\n0.088928 0.088928 0.088928\n0.094299 0.094299 0.094299\n0.099915 0.099915 0.099915\n0.105713 0.105713 0.105713\n0.111938 0.111938 0.111938\n0.118530 0.118530 0.118530\n0.125305 0.125305 0.125305\n0.132660 0.132660 0.132660\n0.140228 0.140228 0.140228\n0.148438 0.148438 0.148438\n0.157166 0.157166 0.157166\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.088806 0.088806 0.088806\n0.094147 0.094147 0.094147\n0.099640 0.099640 0.099640\n0.105560 0.105560 0.105560\n0.111786 0.111786 0.111786\n0.118225 0.118225 0.118225\n0.125153 0.125153 0.125153\n0.132294 0.132294 0.132294\n0.140045 0.140045 0.140045\n0.148285 0.148285 0.148285\n0.156708 0.156708 0.156708\n0.165894 0.165894 0.165894\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236572 0.236572 0.236572\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335632 0.335632 0.335632\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.099518 0.099518 0.099518\n0.105377 0.105377 0.105377\n0.111481 0.111481 0.111481\n0.118042 0.118042 0.118042\n0.124969 0.124969 0.124969\n0.132111 0.132111 0.132111\n0.139832 0.139832 0.139832\n0.147827 0.147827 0.147827\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.111328 0.111328 0.111328\n0.117859 0.117859 0.117859\n0.124634 0.124634 0.124634\n0.131927 0.131927 0.131927\n0.139435 0.139435 0.139435\n0.147614 0.147614 0.147614\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.124420 0.124420 0.124420\n0.131714 0.131714 0.131714\n0.139221 0.139221 0.139221\n0.147400 0.147400 0.147400\n0.155792 0.155792 0.155792\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357788 0.357788 0.357788\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448364 0.448364 0.448364\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364838 0.364838 0.364838\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461548 0.461548 0.461548\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454590 0.454590 0.454590\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281342 0.281342 0.281342\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467834 0.467834 0.467834\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.271759 0.271759 0.271759\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.460846 0.460846 0.460846\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.289825 0.289825 0.289825\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378601 0.378601 0.378601\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.307190 0.307190 0.307190\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392731 0.392731 0.392731\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385376 0.385376 0.385376\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399292 0.399292 0.399292\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.392029 0.392029 0.392029\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405762 0.405762 0.405762\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398590 0.398590 0.398590\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419220 0.419220 0.419220\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412170 0.412170 0.412170\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425537 0.425537 0.425537\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506683 0.506683 0.506683\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.677979 0.677979 0.677979\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608795 0.608795 0.608795\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.677734 0.677734 0.677734\n0.686035 0.686035 0.686035\n0.694458 0.694458 0.694458\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513367 0.513367 0.513367\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.660309 0.660309 0.660309\n0.668945 0.668945 0.668945\n0.677338 0.677338 0.677338\n0.685822 0.685822 0.685822\n0.694244 0.694244 0.694244\n0.702362 0.702362 0.702362\n0.710510 0.710510 0.710510\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616852 0.616852 0.616852\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.668518 0.668518 0.668518\n0.677094 0.677094 0.677094\n0.685638 0.685638 0.685638\n0.693817 0.693817 0.693817\n0.702118 0.702118 0.702118\n0.710297 0.710297 0.710297\n0.718140 0.718140 0.718140\n0.726044 0.726044 0.726044\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.520142 0.520142 0.520142\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.676880 0.676880 0.676880\n0.685211 0.685211 0.685211\n0.693634 0.693634 0.693634\n0.701904 0.701904 0.701904\n0.709900 0.709900 0.709900\n0.717957 0.717957 0.717957\n0.725677 0.725677 0.725677\n0.733398 0.733398 0.733398\n0.740967 0.740967 0.740967\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.684998 0.684998 0.684998\n0.693420 0.693420 0.693420\n0.701508 0.701508 0.701508\n0.709686 0.709686 0.709686\n0.717743 0.717743 0.717743\n0.725464 0.725464 0.725464\n0.733215 0.733215 0.733215\n0.740570 0.740570 0.740570\n0.747955 0.747955 0.747955\n0.755127 0.755127 0.755127\n0.054565 0.054565 0.054565\n0.059814 0.059814 0.059814\n0.063751 0.063751 0.063751\n0.067841 0.067841 0.067841\n0.072083 0.072083 0.072083\n0.076630 0.076630 0.076630\n0.081360 0.081360 0.081360\n0.086212 0.086212 0.086212\n0.091431 0.091431 0.091431\n0.096802 0.096802 0.096802\n0.102570 0.102570 0.102570\n0.108612 0.108612 0.108612\n0.114868 0.114868 0.114868\n0.121643 0.121643 0.121643\n0.128784 0.128784 0.128784\n0.136108 0.136108 0.136108\n0.144073 0.144073 0.144073\n0.152557 0.152557 0.152557\n0.161255 0.161255 0.161255\n0.170685 0.170685 0.170685\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288696 0.288696 0.288696\n0.063629 0.063629 0.063629\n0.067657 0.067657 0.067657\n0.071960 0.071960 0.071960\n0.076508 0.076508 0.076508\n0.081146 0.081146 0.081146\n0.086090 0.086090 0.086090\n0.091187 0.091187 0.091187\n0.096649 0.096649 0.096649\n0.102417 0.102417 0.102417\n0.108307 0.108307 0.108307\n0.114716 0.114716 0.114716\n0.121460 0.121460 0.121460\n0.128387 0.128387 0.128387\n0.135895 0.135895 0.135895\n0.143860 0.143860 0.143860\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170441 0.170441 0.170441\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.071869 0.071869 0.071869\n0.076263 0.076263 0.076263\n0.080963 0.080963 0.080963\n0.085968 0.085968 0.085968\n0.091034 0.091034 0.091034\n0.096527 0.096527 0.096527\n0.102112 0.102112 0.102112\n0.108185 0.108185 0.108185\n0.114532 0.114532 0.114532\n0.121094 0.121094 0.121094\n0.128204 0.128204 0.128204\n0.135712 0.135712 0.135712\n0.143463 0.143463 0.143463\n0.151886 0.151886 0.151886\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.080872 0.080872 0.080872\n0.085724 0.085724 0.085724\n0.090912 0.090912 0.090912\n0.096375 0.096375 0.096375\n0.101990 0.101990 0.101990\n0.108002 0.108002 0.108002\n0.114227 0.114227 0.114227\n0.120941 0.120941 0.120941\n0.128021 0.128021 0.128021\n0.135315 0.135315 0.135315\n0.143250 0.143250 0.143250\n0.151642 0.151642 0.151642\n0.160339 0.160339 0.160339\n0.169708 0.169708 0.169708\n0.179260 0.179260 0.179260\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.090790 0.090790 0.090790\n0.096100 0.096100 0.096100\n0.101837 0.101837 0.101837\n0.107727 0.107727 0.107727\n0.114044 0.114044 0.114044\n0.120758 0.120758 0.120758\n0.127686 0.127686 0.127686\n0.135162 0.135162 0.135162\n0.143066 0.143066 0.143066\n0.151215 0.151215 0.151215\n0.160095 0.160095 0.160095\n0.169464 0.169464 0.169464\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.101685 0.101685 0.101685\n0.107544 0.107544 0.107544\n0.113892 0.113892 0.113892\n0.120422 0.120422 0.120422\n0.127502 0.127502 0.127502\n0.134949 0.134949 0.134949\n0.142639 0.142639 0.142639\n0.151001 0.151001 0.151001\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188812 0.188812 0.188812\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.113586 0.113586 0.113586\n0.120239 0.120239 0.120239\n0.127289 0.127289 0.127289\n0.134583 0.134583 0.134583\n0.142426 0.142426 0.142426\n0.150787 0.150787 0.150787\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.126923 0.126923 0.126923\n0.134369 0.134369 0.134369\n0.142242 0.142242 0.142242\n0.150360 0.150360 0.150360\n0.159180 0.159180 0.159180\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198364 0.198364 0.198364\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321320 0.321320 0.321320\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404175 0.404175 0.404175\n0.411133 0.411133 0.411133\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.208008 0.208008 0.208008\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.424500 0.424500 0.424500\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.329071 0.329071 0.329071\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.437744 0.437744 0.437744\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217621 0.217621 0.217621\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430298 0.430298 0.430298\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351379 0.351379 0.351379\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449890 0.449890 0.449890\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366364 0.366364 0.366364\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442963 0.442963 0.442963\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358551 0.358551 0.358551\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.456146 0.456146 0.456146\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373291 0.373291 0.373291\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.357971 0.357971 0.357971\n0.365601 0.365601 0.365601\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.372711 0.372711 0.372711\n0.380096 0.380096 0.380096\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554749 0.554749 0.554749\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.664215 0.664215 0.664215\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481354 0.481354 0.481354\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.562134 0.562134 0.562134\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655518 0.655518 0.655518\n0.664001 0.664001 0.664001\n0.672607 0.672607 0.672607\n0.680969 0.680969 0.680969\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672150 0.672150 0.672150\n0.680756 0.680756 0.680756\n0.689209 0.689209 0.689209\n0.697388 0.697388 0.697388\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487762 0.487762 0.487762\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569672 0.569672 0.569672\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.663574 0.663574 0.663574\n0.671936 0.671936 0.671936\n0.680511 0.680511 0.680511\n0.688812 0.688812 0.688812\n0.697205 0.697205 0.697205\n0.705414 0.705414 0.705414\n0.713348 0.713348 0.713348\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.671753 0.671753 0.671753\n0.680084 0.680084 0.680084\n0.688568 0.688568 0.688568\n0.696991 0.696991 0.696991\n0.705017 0.705017 0.705017\n0.713165 0.713165 0.713165\n0.721130 0.721130 0.721130\n0.728760 0.728760 0.728760\n0.494232 0.494232 0.494232\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577301 0.577301 0.577301\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671539 0.671539 0.671539\n0.679901 0.679901 0.679901\n0.688354 0.688354 0.688354\n0.696533 0.696533 0.696533\n0.704803 0.704803 0.704803\n0.712952 0.712952 0.712952\n0.720703 0.720703 0.720703\n0.728607 0.728607 0.728607\n0.736237 0.736237 0.736237\n0.743530 0.743530 0.743530\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.687958 0.687958 0.687958\n0.696350 0.696350 0.696350\n0.704590 0.704590 0.704590\n0.712524 0.712524 0.712524\n0.720551 0.720551 0.720551\n0.728363 0.728363 0.728363\n0.735870 0.735870 0.735870\n0.743378 0.743378 0.743378\n0.750671 0.750671 0.750671\n0.757599 0.757599 0.757599\n0.056793 0.056793 0.056793\n0.061249 0.061249 0.061249\n0.065308 0.065308 0.065308\n0.069366 0.069366 0.069366\n0.073761 0.073761 0.073761\n0.078247 0.078247 0.078247\n0.083069 0.083069 0.083069\n0.088165 0.088165 0.088165\n0.093353 0.093353 0.093353\n0.098907 0.098907 0.098907\n0.104797 0.104797 0.104797\n0.110870 0.110870 0.110870\n0.117340 0.117340 0.117340\n0.124268 0.124268 0.124268\n0.131348 0.131348 0.131348\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.065125 0.065125 0.065125\n0.069275 0.069275 0.069275\n0.073517 0.073517 0.073517\n0.078094 0.078094 0.078094\n0.082947 0.082947 0.082947\n0.087891 0.087891 0.087891\n0.093231 0.093231 0.093231\n0.098785 0.098785 0.098785\n0.104492 0.104492 0.104492\n0.110687 0.110687 0.110687\n0.117218 0.117218 0.117218\n0.123901 0.123901 0.123901\n0.131134 0.131134 0.131134\n0.138641 0.138641 0.138641\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.073395 0.073395 0.073395\n0.078003 0.078003 0.078003\n0.082703 0.082703 0.082703\n0.087769 0.087769 0.087769\n0.093079 0.093079 0.093079\n0.098480 0.098480 0.098480\n0.104370 0.104370 0.104370\n0.110504 0.110504 0.110504\n0.116852 0.116852 0.116852\n0.123718 0.123718 0.123718\n0.130981 0.130981 0.130981\n0.138458 0.138458 0.138458\n0.146576 0.146576 0.146576\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.082581 0.082581 0.082581\n0.087646 0.087646 0.087646\n0.092804 0.092804 0.092804\n0.098358 0.098358 0.098358\n0.104218 0.104218 0.104218\n0.110229 0.110229 0.110229\n0.116699 0.116699 0.116699\n0.123535 0.123535 0.123535\n0.130615 0.130615 0.130615\n0.138245 0.138245 0.138245\n0.146149 0.146149 0.146149\n0.154694 0.154694 0.154694\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.092682 0.092682 0.092682\n0.098206 0.098206 0.098206\n0.103882 0.103882 0.103882\n0.110077 0.110077 0.110077\n0.116516 0.116516 0.116516\n0.123199 0.123199 0.123199\n0.130432 0.130432 0.130432\n0.138062 0.138062 0.138062\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.103760 0.103760 0.103760\n0.109894 0.109894 0.109894\n0.116211 0.116211 0.116211\n0.123016 0.123016 0.123016\n0.130219 0.130219 0.130219\n0.137665 0.137665 0.137665\n0.145721 0.145721 0.145721\n0.154022 0.154022 0.154022\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.116058 0.116058 0.116058\n0.122833 0.122833 0.122833\n0.129852 0.129852 0.129852\n0.137451 0.137451 0.137451\n0.145538 0.145538 0.145538\n0.153839 0.153839 0.153839\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.129700 0.129700 0.129700\n0.137268 0.137268 0.137268\n0.145111 0.145111 0.145111\n0.153595 0.153595 0.153595\n0.162415 0.162415 0.162415\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271545 0.271545 0.271545\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.144897 0.144897 0.144897\n0.153381 0.153381 0.153381\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.161926 0.161926 0.161926\n0.171417 0.171417 0.171417\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280426 0.280426 0.280426\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288910 0.288910 0.288910\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466461 0.466461 0.466461\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297272 0.297272 0.297272\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479797 0.479797 0.479797\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398590 0.398590 0.398590\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472778 0.472778 0.472778\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493378 0.493378 0.493378\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305450 0.305450 0.305450\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486176 0.486176 0.486176\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.322205 0.322205 0.322205\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.405060 0.405060 0.405060\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.313446 0.313446 0.313446\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338257 0.338257 0.338257\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418549 0.418549 0.418549\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.329895 0.329895 0.329895\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411469 0.411469 0.411469\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506500 0.506500 0.506500\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.345673 0.345673 0.345673\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424866 0.424866 0.424866\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513367 0.513367 0.513367\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424164 0.424164 0.424164\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.520142 0.520142 0.520142\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437378 0.437378 0.437378\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.527008 0.527008 0.527008\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615967 0.615967 0.615967\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443665 0.443665 0.443665\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.624023 0.624023 0.624023\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.684143 0.684143 0.684143\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.692139 0.692139 0.692139\n0.700470 0.700470 0.700470\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.632141 0.632141 0.632141\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.666565 0.666565 0.666565\n0.675201 0.675201 0.675201\n0.683502 0.683502 0.683502\n0.691956 0.691956 0.691956\n0.700287 0.700287 0.700287\n0.708282 0.708282 0.708282\n0.716339 0.716339 0.716339\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.674744 0.674744 0.674744\n0.683319 0.683319 0.683319\n0.691742 0.691742 0.691742\n0.699890 0.699890 0.699890\n0.708069 0.708069 0.708069\n0.716156 0.716156 0.716156\n0.723907 0.723907 0.723907\n0.731659 0.731659 0.731659\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.640228 0.640228 0.640228\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.674561 0.674561 0.674561\n0.683075 0.683075 0.683075\n0.691315 0.691315 0.691315\n0.699677 0.699677 0.699677\n0.707855 0.707855 0.707855\n0.715759 0.715759 0.715759\n0.723694 0.723694 0.723694\n0.731445 0.731445 0.731445\n0.738892 0.738892 0.738892\n0.746307 0.746307 0.746307\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.657074 0.657074 0.657074\n0.665680 0.665680 0.665680\n0.674347 0.674347 0.674347\n0.682648 0.682648 0.682648\n0.691101 0.691101 0.691101\n0.699432 0.699432 0.699432\n0.707458 0.707458 0.707458\n0.715576 0.715576 0.715576\n0.723511 0.723511 0.723511\n0.731079 0.731079 0.731079\n0.738708 0.738708 0.738708\n0.745941 0.745941 0.745941\n0.753174 0.753174 0.753174\n0.760193 0.760193 0.760193\n0.058929 0.058929 0.058929\n0.062622 0.062622 0.062622\n0.066711 0.066711 0.066711\n0.071014 0.071014 0.071014\n0.075378 0.075378 0.075378\n0.080048 0.080048 0.080048\n0.084961 0.084961 0.084961\n0.089996 0.089996 0.089996\n0.095367 0.095367 0.095367\n0.101105 0.101105 0.101105\n0.106964 0.106964 0.106964\n0.113251 0.113251 0.113251\n0.119720 0.119720 0.119720\n0.126740 0.126740 0.126740\n0.134186 0.134186 0.134186\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.066589 0.066589 0.066589\n0.070801 0.070801 0.070801\n0.075256 0.075256 0.075256\n0.079956 0.079956 0.079956\n0.084717 0.084717 0.084717\n0.089874 0.089874 0.089874\n0.095245 0.095245 0.095245\n0.100800 0.100800 0.100800\n0.106812 0.106812 0.106812\n0.112946 0.112946 0.112946\n0.119568 0.119568 0.119568\n0.126587 0.126587 0.126587\n0.133789 0.133789 0.133789\n0.141632 0.141632 0.141632\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.207733 0.207733 0.207733\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312378 0.312378 0.312378\n0.075134 0.075134 0.075134\n0.079681 0.079681 0.079681\n0.084595 0.084595 0.084595\n0.089722 0.089722 0.089722\n0.094971 0.094971 0.094971\n0.100647 0.100647 0.100647\n0.106628 0.106628 0.106628\n0.112762 0.112762 0.112762\n0.119415 0.119415 0.119415\n0.126221 0.126221 0.126221\n0.133606 0.133606 0.133606\n0.141449 0.141449 0.141449\n0.149506 0.149506 0.149506\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.084473 0.084473 0.084473\n0.089447 0.089447 0.089447\n0.094818 0.094818 0.094818\n0.100525 0.100525 0.100525\n0.106323 0.106323 0.106323\n0.112610 0.112610 0.112610\n0.119080 0.119080 0.119080\n0.126068 0.126068 0.126068\n0.133423 0.133423 0.133423\n0.141052 0.141052 0.141052\n0.149323 0.149323 0.149323\n0.158081 0.158081 0.158081\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217621 0.217621 0.217621\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.094696 0.094696 0.094696\n0.100220 0.100220 0.100220\n0.106171 0.106171 0.106171\n0.112427 0.112427 0.112427\n0.118896 0.118896 0.118896\n0.125854 0.125854 0.125854\n0.133057 0.133057 0.133057\n0.140839 0.140839 0.140839\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.106018 0.106018 0.106018\n0.112122 0.112122 0.112122\n0.118713 0.118713 0.118713\n0.125488 0.125488 0.125488\n0.132843 0.132843 0.132843\n0.140625 0.140625 0.140625\n0.148682 0.148682 0.148682\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.118530 0.118530 0.118530\n0.125305 0.125305 0.125305\n0.132660 0.132660 0.132660\n0.140228 0.140228 0.140228\n0.148438 0.148438 0.148438\n0.157166 0.157166 0.157166\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.132294 0.132294 0.132294\n0.140045 0.140045 0.140045\n0.148285 0.148285 0.148285\n0.156708 0.156708 0.156708\n0.165894 0.165894 0.165894\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.147827 0.147827 0.147827\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.435883 0.435883 0.435883\n0.442627 0.442627 0.442627\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449036 0.449036 0.449036\n0.455780 0.455780 0.455780\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442108 0.442108 0.442108\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263916 0.263916 0.263916\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455292 0.455292 0.455292\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448364 0.448364 0.448364\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364838 0.364838 0.364838\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461548 0.461548 0.461548\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379333 0.379333 0.379333\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371796 0.371796 0.371796\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.386078 0.386078 0.386078\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378601 0.378601 0.378601\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392731 0.392731 0.392731\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569458 0.569458 0.569458\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.378082 0.378082 0.378082\n0.385376 0.385376 0.385376\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406464 0.406464 0.406464\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.392181 0.392181 0.392181\n0.399292 0.399292 0.399292\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.405914 0.405914 0.405914\n0.412872 0.412872 0.412872\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592865 0.592865 0.592865\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.687103 0.687103 0.687103\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.695282 0.695282 0.695282\n0.703400 0.703400 0.703400\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600800 0.600800 0.600800\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.669800 0.669800 0.669800\n0.678162 0.678162 0.678162\n0.686676 0.686676 0.686676\n0.695099 0.695099 0.695099\n0.703156 0.703156 0.703156\n0.711334 0.711334 0.711334\n0.719147 0.719147 0.719147\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506683 0.506683 0.506683\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.677979 0.677979 0.677979\n0.686493 0.686493 0.686493\n0.694672 0.694672 0.694672\n0.702972 0.702972 0.702972\n0.710938 0.710938 0.710938\n0.718964 0.718964 0.718964\n0.726807 0.726807 0.726807\n0.734344 0.734344 0.734344\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.677734 0.677734 0.677734\n0.686035 0.686035 0.686035\n0.694458 0.694458 0.694458\n0.702759 0.702759 0.702759\n0.710724 0.710724 0.710724\n0.718750 0.718750 0.718750\n0.726440 0.726440 0.726440\n0.734192 0.734192 0.734192\n0.741699 0.741699 0.741699\n0.748840 0.748840 0.748840\n0.513367 0.513367 0.513367\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.660309 0.660309 0.660309\n0.668945 0.668945 0.668945\n0.677338 0.677338 0.677338\n0.685822 0.685822 0.685822\n0.694244 0.694244 0.694244\n0.702362 0.702362 0.702362\n0.710510 0.710510 0.710510\n0.718353 0.718353 0.718353\n0.726257 0.726257 0.726257\n0.733978 0.733978 0.733978\n0.741333 0.741333 0.741333\n0.748688 0.748688 0.748688\n0.755859 0.755859 0.755859\n0.762604 0.762604 0.762604\n0.060211 0.060211 0.060211\n0.064178 0.064178 0.064178\n0.068268 0.068268 0.068268\n0.072510 0.072510 0.072510\n0.077057 0.077057 0.077057\n0.081726 0.081726 0.081726\n0.086731 0.086731 0.086731\n0.091980 0.091980 0.091980\n0.097351 0.097351 0.097351\n0.103149 0.103149 0.103149\n0.109283 0.109283 0.109283\n0.115540 0.115540 0.115540\n0.122314 0.122314 0.122314\n0.129486 0.129486 0.129486\n0.136871 0.136871 0.136871\n0.144897 0.144897 0.144897\n0.153381 0.153381 0.153381\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.068085 0.068085 0.068085\n0.072388 0.072388 0.072388\n0.076965 0.076965 0.076965\n0.081604 0.081604 0.081604\n0.086609 0.086609 0.086609\n0.091705 0.091705 0.091705\n0.097229 0.097229 0.097229\n0.102997 0.102997 0.102997\n0.108948 0.108948 0.108948\n0.115387 0.115387 0.115387\n0.122162 0.122162 0.122162\n0.129120 0.129120 0.129120\n0.136688 0.136688 0.136688\n0.144684 0.144684 0.144684\n0.152954 0.152954 0.152954\n0.161926 0.161926 0.161926\n0.171173 0.171173 0.171173\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280182 0.280182 0.280182\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.076721 0.076721 0.076721\n0.081482 0.081482 0.081482\n0.086487 0.086487 0.086487\n0.091583 0.091583 0.091583\n0.097076 0.097076 0.097076\n0.102692 0.102692 0.102692\n0.108795 0.108795 0.108795\n0.115204 0.115204 0.115204\n0.121796 0.121796 0.121796\n0.128937 0.128937 0.128937\n0.136475 0.136475 0.136475\n0.144257 0.144257 0.144257\n0.152740 0.152740 0.152740\n0.161499 0.161499 0.161499\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.086212 0.086212 0.086212\n0.091431 0.091431 0.091431\n0.096802 0.096802 0.096802\n0.102570 0.102570 0.102570\n0.108612 0.108612 0.108612\n0.114868 0.114868 0.114868\n0.121643 0.121643 0.121643\n0.128784 0.128784 0.128784\n0.136108 0.136108 0.136108\n0.144073 0.144073 0.144073\n0.152557 0.152557 0.152557\n0.161255 0.161255 0.161255\n0.170685 0.170685 0.170685\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288696 0.288696 0.288696\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.096649 0.096649 0.096649\n0.102417 0.102417 0.102417\n0.108307 0.108307 0.108307\n0.114716 0.114716 0.114716\n0.121460 0.121460 0.121460\n0.128387 0.128387 0.128387\n0.135895 0.135895 0.135895\n0.143860 0.143860 0.143860\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170441 0.170441 0.170441\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.108185 0.108185 0.108185\n0.114532 0.114532 0.114532\n0.121094 0.121094 0.121094\n0.128204 0.128204 0.128204\n0.135712 0.135712 0.135712\n0.143463 0.143463 0.143463\n0.151886 0.151886 0.151886\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.120941 0.120941 0.120941\n0.128021 0.128021 0.128021\n0.135315 0.135315 0.135315\n0.143250 0.143250 0.143250\n0.151642 0.151642 0.151642\n0.160339 0.160339 0.160339\n0.169708 0.169708 0.169708\n0.179504 0.179504 0.179504\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.135162 0.135162 0.135162\n0.143066 0.143066 0.143066\n0.151215 0.151215 0.151215\n0.160095 0.160095 0.160095\n0.169464 0.169464 0.169464\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305450 0.305450 0.305450\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391113 0.391113 0.391113\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.151001 0.151001 0.151001\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188812 0.188812 0.188812\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.188080 0.188080 0.188080\n0.198364 0.198364 0.198364\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411316 0.411316 0.411316\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498474 0.498474 0.498474\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512451 0.512451 0.512451\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.352173 0.352173 0.352173\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.344086 0.344086 0.344086\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443665 0.443665 0.443665\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359314 0.359314 0.359314\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.351379 0.351379 0.351379\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.366364 0.366364 0.366364\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442963 0.442963 0.442963\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648132 0.648132 0.648132\n0.656830 0.656830 0.656830\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468658 0.468658 0.468658\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.673706 0.673706 0.673706\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656158 0.656158 0.656158\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.681793 0.681793 0.681793\n0.690277 0.690277 0.690277\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474976 0.474976 0.474976\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554749 0.554749 0.554749\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.655914 0.655914 0.655914\n0.664612 0.664612 0.664612\n0.673065 0.673065 0.673065\n0.681610 0.681610 0.681610\n0.690063 0.690063 0.690063\n0.698212 0.698212 0.698212\n0.706451 0.706451 0.706451\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.664215 0.664215 0.664215\n0.672821 0.672821 0.672821\n0.681366 0.681366 0.681366\n0.689667 0.689667 0.689667\n0.697998 0.697998 0.697998\n0.706238 0.706238 0.706238\n0.714142 0.714142 0.714142\n0.722107 0.722107 0.722107\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.562134 0.562134 0.562134\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655518 0.655518 0.655518\n0.664001 0.664001 0.664001\n0.672607 0.672607 0.672607\n0.680969 0.680969 0.680969\n0.689423 0.689423 0.689423\n0.697784 0.697784 0.697784\n0.705841 0.705841 0.705841\n0.713959 0.713959 0.713959\n0.721924 0.721924 0.721924\n0.729553 0.729553 0.729553\n0.737213 0.737213 0.737213\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672394 0.672394 0.672394\n0.680756 0.680756 0.680756\n0.689209 0.689209 0.689209\n0.697388 0.697388 0.697388\n0.705627 0.705627 0.705627\n0.713776 0.713776 0.713776\n0.721527 0.721527 0.721527\n0.729370 0.729370 0.729370\n0.737000 0.737000 0.737000\n0.744293 0.744293 0.744293\n0.751556 0.751556 0.751556\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569672 0.569672 0.569672\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.663574 0.663574 0.663574\n0.671936 0.671936 0.671936\n0.680511 0.680511 0.680511\n0.688812 0.688812 0.688812\n0.697205 0.697205 0.697205\n0.705414 0.705414 0.705414\n0.713348 0.713348 0.713348\n0.721344 0.721344 0.721344\n0.729126 0.729126 0.729126\n0.736633 0.736633 0.736633\n0.744110 0.744110 0.744110\n0.751373 0.751373 0.751373\n0.758301 0.758301 0.758301\n0.765167 0.765167 0.765167\n0.061615 0.061615 0.061615\n0.065613 0.065613 0.065613\n0.069824 0.069824 0.069824\n0.074219 0.074219 0.074219\n0.078705 0.078705 0.078705\n0.083588 0.083588 0.083588\n0.088684 0.088684 0.088684\n0.093903 0.093903 0.093903\n0.099518 0.099518 0.099518\n0.105377 0.105377 0.105377\n0.111481 0.111481 0.111481\n0.118042 0.118042 0.118042\n0.124786 0.124786 0.124786\n0.132111 0.132111 0.132111\n0.139832 0.139832 0.139832\n0.147827 0.147827 0.147827\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.069702 0.069702 0.069702\n0.073975 0.073975 0.073975\n0.078613 0.078613 0.078613\n0.083466 0.083466 0.083466\n0.088379 0.088379 0.088379\n0.093750 0.093750 0.093750\n0.099365 0.099365 0.099365\n0.105133 0.105133 0.105133\n0.111328 0.111328 0.111328\n0.117859 0.117859 0.117859\n0.124634 0.124634 0.124634\n0.131927 0.131927 0.131927\n0.139435 0.139435 0.139435\n0.147614 0.147614 0.147614\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.078491 0.078491 0.078491\n0.083191 0.083191 0.083191\n0.088257 0.088257 0.088257\n0.093597 0.093597 0.093597\n0.099060 0.099060 0.099060\n0.104950 0.104950 0.104950\n0.111145 0.111145 0.111145\n0.117523 0.117523 0.117523\n0.124420 0.124420 0.124420\n0.131531 0.131531 0.131531\n0.139221 0.139221 0.139221\n0.147400 0.147400 0.147400\n0.155792 0.155792 0.155792\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.088165 0.088165 0.088165\n0.093353 0.093353 0.093353\n0.098907 0.098907 0.098907\n0.104797 0.104797 0.104797\n0.110870 0.110870 0.110870\n0.117340 0.117340 0.117340\n0.124268 0.124268 0.124268\n0.131348 0.131348 0.131348\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.098785 0.098785 0.098785\n0.104492 0.104492 0.104492\n0.110687 0.110687 0.110687\n0.117218 0.117218 0.117218\n0.123901 0.123901 0.123901\n0.131134 0.131134 0.131134\n0.138641 0.138641 0.138641\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.110504 0.110504 0.110504\n0.116852 0.116852 0.116852\n0.123718 0.123718 0.123718\n0.130981 0.130981 0.130981\n0.138458 0.138458 0.138458\n0.146576 0.146576 0.146576\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.123535 0.123535 0.123535\n0.130615 0.130615 0.130615\n0.138245 0.138245 0.138245\n0.146332 0.146332 0.146332\n0.154694 0.154694 0.154694\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253723 0.253723 0.253723\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.138062 0.138062 0.138062\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.154266 0.154266 0.154266\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271759 0.271759 0.271759\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.453949 0.453949 0.453949\n0.460693 0.460693 0.460693\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280426 0.280426 0.280426\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467133 0.467133 0.467133\n0.473938 0.473938 0.473938\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385376 0.385376 0.385376\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480499 0.480499 0.480499\n0.487427 0.487427 0.487427\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288910 0.288910 0.288910\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473450 0.473450 0.473450\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.486908 0.486908 0.486908\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322998 0.322998 0.322998\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405762 0.405762 0.405762\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398590 0.398590 0.398590\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493378 0.493378 0.493378\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412170 0.412170 0.412170\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.405060 0.405060 0.405060\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418549 0.418549 0.418549\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411469 0.411469 0.411469\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506683 0.506683 0.506683\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424866 0.424866 0.424866\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.410980 0.410980 0.410980\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.424347 0.424347 0.424347\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.676880 0.676880 0.676880\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.684998 0.684998 0.684998\n0.693420 0.693420 0.693420\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615967 0.615967 0.615967\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.667664 0.667664 0.667664\n0.676300 0.676300 0.676300\n0.684753 0.684753 0.684753\n0.693024 0.693024 0.693024\n0.701324 0.701324 0.701324\n0.709503 0.709503 0.709503\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.676025 0.676025 0.676025\n0.684357 0.684357 0.684357\n0.692810 0.692810 0.692810\n0.701111 0.701111 0.701111\n0.709076 0.709076 0.709076\n0.717163 0.717163 0.717163\n0.724854 0.724854 0.724854\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533966 0.533966 0.533966\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.624023 0.624023 0.624023\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.684143 0.684143 0.684143\n0.692566 0.692566 0.692566\n0.700684 0.700684 0.700684\n0.708862 0.708862 0.708862\n0.716949 0.716949 0.716949\n0.724670 0.724670 0.724670\n0.732422 0.732422 0.732422\n0.739807 0.739807 0.739807\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.692139 0.692139 0.692139\n0.700470 0.700470 0.700470\n0.708679 0.708679 0.708679\n0.716553 0.716553 0.716553\n0.724457 0.724457 0.724457\n0.732056 0.732056 0.732056\n0.739624 0.739624 0.739624\n0.747040 0.747040 0.747040\n0.754059 0.754059 0.754059\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.541046 0.541046 0.541046\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.632141 0.632141 0.632141\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.666565 0.666565 0.666565\n0.675201 0.675201 0.675201\n0.683502 0.683502 0.683502\n0.691956 0.691956 0.691956\n0.700287 0.700287 0.700287\n0.708282 0.708282 0.708282\n0.716339 0.716339 0.716339\n0.724304 0.724304 0.724304\n0.731842 0.731842 0.731842\n0.739471 0.739471 0.739471\n0.746674 0.746674 0.746674\n0.753906 0.753906 0.753906\n0.760895 0.760895 0.760895\n0.767548 0.767548 0.767548\n0.063049 0.063049 0.063049\n0.067139 0.067139 0.067139\n0.071442 0.071442 0.071442\n0.075836 0.075836 0.075836\n0.080505 0.080505 0.080505\n0.085480 0.085480 0.085480\n0.090515 0.090515 0.090515\n0.095978 0.095978 0.095978\n0.101501 0.101501 0.101501\n0.107544 0.107544 0.107544\n0.113892 0.113892 0.113892\n0.120422 0.120422 0.120422\n0.127502 0.127502 0.127502\n0.134949 0.134949 0.134949\n0.142639 0.142639 0.142639\n0.151001 0.151001 0.151001\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188812 0.188812 0.188812\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296112 0.296112 0.296112\n0.304993 0.304993 0.304993\n0.071228 0.071228 0.071228\n0.075684 0.075684 0.075684\n0.080414 0.080414 0.080414\n0.085205 0.085205 0.085205\n0.090393 0.090393 0.090393\n0.095795 0.095795 0.095795\n0.101379 0.101379 0.101379\n0.107391 0.107391 0.107391\n0.113586 0.113586 0.113586\n0.120239 0.120239 0.120239\n0.127289 0.127289 0.127289\n0.134583 0.134583 0.134583\n0.142426 0.142426 0.142426\n0.150787 0.150787 0.150787\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.080170 0.080170 0.080170\n0.085083 0.085083 0.085083\n0.090271 0.090271 0.090271\n0.095520 0.095520 0.095520\n0.101227 0.101227 0.101227\n0.107117 0.107117 0.107117\n0.113403 0.113403 0.113403\n0.120056 0.120056 0.120056\n0.126923 0.126923 0.126923\n0.134369 0.134369 0.134369\n0.142242 0.142242 0.142242\n0.150360 0.150360 0.150360\n0.159180 0.159180 0.159180\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198364 0.198364 0.198364\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.089996 0.089996 0.089996\n0.095367 0.095367 0.095367\n0.101105 0.101105 0.101105\n0.106964 0.106964 0.106964\n0.113251 0.113251 0.113251\n0.119720 0.119720 0.119720\n0.126740 0.126740 0.126740\n0.134186 0.134186 0.134186\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.100800 0.100800 0.100800\n0.106812 0.106812 0.106812\n0.112946 0.112946 0.112946\n0.119568 0.119568 0.119568\n0.126587 0.126587 0.126587\n0.133789 0.133789 0.133789\n0.141632 0.141632 0.141632\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.207733 0.207733 0.207733\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.112762 0.112762 0.112762\n0.119415 0.119415 0.119415\n0.126221 0.126221 0.126221\n0.133606 0.133606 0.133606\n0.141449 0.141449 0.141449\n0.149506 0.149506 0.149506\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.126068 0.126068 0.126068\n0.133423 0.133423 0.133423\n0.141052 0.141052 0.141052\n0.149323 0.149323 0.149323\n0.158081 0.158081 0.158081\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217346 0.217346 0.217346\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.140839 0.140839 0.140839\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335632 0.335632 0.335632\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429596 0.429596 0.429596\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.235840 0.235840 0.235840\n0.245880 0.245880 0.245880\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442780 0.442780 0.442780\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.435883 0.435883 0.435883\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449036 0.449036 0.449036\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442108 0.442108 0.442108\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517731 0.517731 0.517731\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357788 0.357788 0.357788\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372528 0.372528 0.372528\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547272 0.547272 0.547272\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364838 0.364838 0.364838\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386810 0.386810 0.386810\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379333 0.379333 0.379333\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554535 0.554535 0.554535\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.371796 0.371796 0.371796\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393463 0.393463 0.393463\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.386078 0.386078 0.386078\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.561951 0.561951 0.561951\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.399963 0.399963 0.399963\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569672 0.569672 0.569672\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577301 0.577301 0.577301\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671539 0.671539 0.671539\n0.679901 0.679901 0.679901\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.687958 0.687958 0.687958\n0.696350 0.696350 0.696350\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.585052 0.585052 0.585052\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.670898 0.670898 0.670898\n0.679474 0.679474 0.679474\n0.687714 0.687714 0.687714\n0.696167 0.696167 0.696167\n0.704193 0.704193 0.704193\n0.712341 0.712341 0.712341\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.679047 0.679047 0.679047\n0.687531 0.687531 0.687531\n0.695709 0.695709 0.695709\n0.703979 0.703979 0.703979\n0.712128 0.712128 0.712128\n0.719940 0.719940 0.719940\n0.727783 0.727783 0.727783\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.687317 0.687317 0.687317\n0.695496 0.695496 0.695496\n0.703796 0.703796 0.703796\n0.711731 0.711731 0.711731\n0.719788 0.719788 0.719788\n0.727600 0.727600 0.727600\n0.735107 0.735107 0.735107\n0.742615 0.742615 0.742615\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.695282 0.695282 0.695282\n0.703400 0.703400 0.703400\n0.711548 0.711548 0.711548\n0.719543 0.719543 0.719543\n0.727203 0.727203 0.727203\n0.734924 0.734924 0.734924\n0.742462 0.742462 0.742462\n0.749603 0.749603 0.749603\n0.756714 0.756714 0.756714\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.669800 0.669800 0.669800\n0.678162 0.678162 0.678162\n0.686676 0.686676 0.686676\n0.695099 0.695099 0.695099\n0.703156 0.703156 0.703156\n0.711334 0.711334 0.711334\n0.719147 0.719147 0.719147\n0.727020 0.727020 0.727020\n0.734711 0.734711 0.734711\n0.742065 0.742065 0.742065\n0.749420 0.749420 0.749420\n0.756561 0.756561 0.756561\n0.763306 0.763306 0.763306\n0.770020 0.770020 0.770020\n0.064606 0.064606 0.064606\n0.068695 0.068695 0.068695\n0.072968 0.072968 0.072968\n0.077515 0.077515 0.077515\n0.082184 0.082184 0.082184\n0.087219 0.087219 0.087219\n0.092529 0.092529 0.092529\n0.097931 0.097931 0.097931\n0.103760 0.103760 0.103760\n0.109894 0.109894 0.109894\n0.116211 0.116211 0.116211\n0.123016 0.123016 0.123016\n0.130219 0.130219 0.130219\n0.137665 0.137665 0.137665\n0.145721 0.145721 0.145721\n0.154022 0.154022 0.154022\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262726 0.262726 0.262726\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.072845 0.072845 0.072845\n0.077454 0.077454 0.077454\n0.082092 0.082092 0.082092\n0.087097 0.087097 0.087097\n0.092255 0.092255 0.092255\n0.097778 0.097778 0.097778\n0.103638 0.103638 0.103638\n0.109589 0.109589 0.109589\n0.116058 0.116058 0.116058\n0.122833 0.122833 0.122833\n0.129852 0.129852 0.129852\n0.137451 0.137451 0.137451\n0.145538 0.145538 0.145538\n0.153839 0.153839 0.153839\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.081970 0.081970 0.081970\n0.086853 0.086853 0.086853\n0.092133 0.092133 0.092133\n0.097656 0.097656 0.097656\n0.103333 0.103333 0.103333\n0.109436 0.109436 0.109436\n0.115875 0.115875 0.115875\n0.122498 0.122498 0.122498\n0.129700 0.129700 0.129700\n0.137268 0.137268 0.137268\n0.145111 0.145111 0.145111\n0.153595 0.153595 0.153595\n0.162415 0.162415 0.162415\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271545 0.271545 0.271545\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.091980 0.091980 0.091980\n0.097351 0.097351 0.097351\n0.103149 0.103149 0.103149\n0.109283 0.109283 0.109283\n0.115540 0.115540 0.115540\n0.122314 0.122314 0.122314\n0.129486 0.129486 0.129486\n0.136871 0.136871 0.136871\n0.144897 0.144897 0.144897\n0.153381 0.153381 0.153381\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.102997 0.102997 0.102997\n0.108948 0.108948 0.108948\n0.115387 0.115387 0.115387\n0.122162 0.122162 0.122162\n0.129120 0.129120 0.129120\n0.136688 0.136688 0.136688\n0.144684 0.144684 0.144684\n0.152954 0.152954 0.152954\n0.161926 0.161926 0.161926\n0.171173 0.171173 0.171173\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280182 0.280182 0.280182\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.370880 0.370880 0.370880\n0.115204 0.115204 0.115204\n0.121796 0.121796 0.121796\n0.128937 0.128937 0.128937\n0.136475 0.136475 0.136475\n0.144257 0.144257 0.144257\n0.152740 0.152740 0.152740\n0.161713 0.161713 0.161713\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.128784 0.128784 0.128784\n0.136108 0.136108 0.136108\n0.144073 0.144073 0.144073\n0.152557 0.152557 0.152557\n0.161255 0.161255 0.161255\n0.170685 0.170685 0.170685\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288910 0.288910 0.288910\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377716 0.377716 0.377716\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.143860 0.143860 0.143860\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170441 0.170441 0.170441\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.179504 0.179504 0.179504\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411316 0.411316 0.411316\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485504 0.485504 0.485504\n0.492493 0.492493 0.492493\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499176 0.499176 0.499176\n0.506317 0.506317 0.506317\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.491974 0.491974 0.491974\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.329071 0.329071 0.329071\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344879 0.344879 0.344879\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424164 0.424164 0.424164\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442963 0.442963 0.442963\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.631897 0.631897 0.631897\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.456146 0.456146 0.456146\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.639984 0.639984 0.639984\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.674561 0.674561 0.674561\n0.683075 0.683075 0.683075\n0.455627 0.455627 0.455627\n0.462402 0.462402 0.462402\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.657074 0.657074 0.657074\n0.665680 0.665680 0.665680\n0.674347 0.674347 0.674347\n0.682648 0.682648 0.682648\n0.691101 0.691101 0.691101\n0.699432 0.699432 0.699432\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648132 0.648132 0.648132\n0.656830 0.656830 0.656830\n0.665497 0.665497 0.665497\n0.673889 0.673889 0.673889\n0.682465 0.682465 0.682465\n0.690887 0.690887 0.690887\n0.699036 0.699036 0.699036\n0.707275 0.707275 0.707275\n0.715363 0.715363 0.715363\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.673706 0.673706 0.673706\n0.682251 0.682251 0.682251\n0.690491 0.690491 0.690491\n0.698822 0.698822 0.698822\n0.707062 0.707062 0.707062\n0.714966 0.714966 0.714966\n0.722931 0.722931 0.722931\n0.730682 0.730682 0.730682\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656403 0.656403 0.656403\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.681793 0.681793 0.681793\n0.690277 0.690277 0.690277\n0.698608 0.698608 0.698608\n0.706665 0.706665 0.706665\n0.714783 0.714783 0.714783\n0.722717 0.722717 0.722717\n0.730316 0.730316 0.730316\n0.737946 0.737946 0.737946\n0.745209 0.745209 0.745209\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554749 0.554749 0.554749\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.655914 0.655914 0.655914\n0.664612 0.664612 0.664612\n0.673065 0.673065 0.673065\n0.681610 0.681610 0.681610\n0.690063 0.690063 0.690063\n0.698212 0.698212 0.698212\n0.706451 0.706451 0.706451\n0.714569 0.714569 0.714569\n0.722351 0.722351 0.722351\n0.730164 0.730164 0.730164\n0.737793 0.737793 0.737793\n0.745026 0.745026 0.745026\n0.752289 0.752289 0.752289\n0.759155 0.759155 0.759155\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.664459 0.664459 0.664459\n0.672821 0.672821 0.672821\n0.681366 0.681366 0.681366\n0.689667 0.689667 0.689667\n0.697998 0.697998 0.697998\n0.706238 0.706238 0.706238\n0.714142 0.714142 0.714142\n0.722107 0.722107 0.722107\n0.729919 0.729919 0.729919\n0.737396 0.737396 0.737396\n0.744843 0.744843 0.744843\n0.752106 0.752106 0.752106\n0.758972 0.758972 0.758972\n0.765839 0.765839 0.765839\n0.772339 0.772339 0.772339\n0.066010 0.066010 0.066010\n0.070251 0.070251 0.070251\n0.074646 0.074646 0.074646\n0.079193 0.079193 0.079193\n0.084106 0.084106 0.084106\n0.089203 0.089203 0.089203\n0.094421 0.094421 0.094421\n0.100098 0.100098 0.100098\n0.106018 0.106018 0.106018\n0.112122 0.112122 0.112122\n0.118713 0.118713 0.118713\n0.125488 0.125488 0.125488\n0.132843 0.132843 0.132843\n0.140625 0.140625 0.140625\n0.148682 0.148682 0.148682\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.074432 0.074432 0.074432\n0.079041 0.079041 0.079041\n0.083954 0.083954 0.083954\n0.088928 0.088928 0.088928\n0.094299 0.094299 0.094299\n0.099915 0.099915 0.099915\n0.105713 0.105713 0.105713\n0.111938 0.111938 0.111938\n0.118378 0.118378 0.118378\n0.125305 0.125305 0.125305\n0.132660 0.132660 0.132660\n0.140228 0.140228 0.140228\n0.148438 0.148438 0.148438\n0.157166 0.157166 0.157166\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.083710 0.083710 0.083710\n0.088806 0.088806 0.088806\n0.094147 0.094147 0.094147\n0.099640 0.099640 0.099640\n0.105560 0.105560 0.105560\n0.111786 0.111786 0.111786\n0.118225 0.118225 0.118225\n0.125153 0.125153 0.125153\n0.132294 0.132294 0.132294\n0.140045 0.140045 0.140045\n0.148285 0.148285 0.148285\n0.156708 0.156708 0.156708\n0.165894 0.165894 0.165894\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335632 0.335632 0.335632\n0.343689 0.343689 0.343689\n0.093903 0.093903 0.093903\n0.099518 0.099518 0.099518\n0.105377 0.105377 0.105377\n0.111481 0.111481 0.111481\n0.118042 0.118042 0.118042\n0.124786 0.124786 0.124786\n0.132111 0.132111 0.132111\n0.139832 0.139832 0.139832\n0.147827 0.147827 0.147827\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.105133 0.105133 0.105133\n0.111328 0.111328 0.111328\n0.117859 0.117859 0.117859\n0.124634 0.124634 0.124634\n0.131927 0.131927 0.131927\n0.139435 0.139435 0.139435\n0.147614 0.147614 0.147614\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343109 0.343109 0.343109\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.117523 0.117523 0.117523\n0.124420 0.124420 0.124420\n0.131714 0.131714 0.131714\n0.139221 0.139221 0.139221\n0.147400 0.147400 0.147400\n0.155792 0.155792 0.155792\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235321 0.235321 0.235321\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.131348 0.131348 0.131348\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364838 0.364838 0.364838\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441437 0.441437 0.441437\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454590 0.454590 0.454590\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467834 0.467834 0.467834\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.262238 0.262238 0.262238\n0.271759 0.271759 0.271759\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.460846 0.460846 0.460846\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474121 0.474121 0.474121\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467133 0.467133 0.467133\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385376 0.385376 0.385376\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480499 0.480499 0.480499\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399292 0.399292 0.399292\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.392029 0.392029 0.392029\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405762 0.405762 0.405762\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398590 0.398590 0.398590\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412170 0.412170 0.412170\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.405060 0.405060 0.405060\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.418549 0.418549 0.418549\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506500 0.506500 0.506500\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.677734 0.677734 0.677734\n0.686035 0.686035 0.686035\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.660309 0.660309 0.660309\n0.668945 0.668945 0.668945\n0.677338 0.677338 0.677338\n0.685822 0.685822 0.685822\n0.694244 0.694244 0.694244\n0.702362 0.702362 0.702362\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.668518 0.668518 0.668518\n0.677094 0.677094 0.677094\n0.685638 0.685638 0.685638\n0.693817 0.693817 0.693817\n0.702118 0.702118 0.702118\n0.710114 0.710114 0.710114\n0.718140 0.718140 0.718140\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.520142 0.520142 0.520142\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.676880 0.676880 0.676880\n0.685211 0.685211 0.685211\n0.693634 0.693634 0.693634\n0.701904 0.701904 0.701904\n0.709900 0.709900 0.709900\n0.717957 0.717957 0.717957\n0.725677 0.725677 0.725677\n0.733398 0.733398 0.733398\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.684998 0.684998 0.684998\n0.693420 0.693420 0.693420\n0.701508 0.701508 0.701508\n0.709686 0.709686 0.709686\n0.717560 0.717560 0.717560\n0.725464 0.725464 0.725464\n0.733215 0.733215 0.733215\n0.740570 0.740570 0.740570\n0.747955 0.747955 0.747955\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.527008 0.527008 0.527008\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615967 0.615967 0.615967\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.667664 0.667664 0.667664\n0.676300 0.676300 0.676300\n0.684753 0.684753 0.684753\n0.693024 0.693024 0.693024\n0.701324 0.701324 0.701324\n0.709503 0.709503 0.709503\n0.717377 0.717377 0.717377\n0.725250 0.725250 0.725250\n0.732819 0.732819 0.732819\n0.740387 0.740387 0.740387\n0.747742 0.747742 0.747742\n0.754791 0.754791 0.754791\n0.761749 0.761749 0.761749\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.676025 0.676025 0.676025\n0.684357 0.684357 0.684357\n0.692810 0.692810 0.692810\n0.701111 0.701111 0.701111\n0.709076 0.709076 0.709076\n0.717163 0.717163 0.717163\n0.724854 0.724854 0.724854\n0.732605 0.732605 0.732605\n0.740173 0.740173 0.740173\n0.747406 0.747406 0.747406\n0.754608 0.754608 0.754608\n0.761566 0.761566 0.761566\n0.768188 0.768188 0.768188\n0.774719 0.774719 0.774719\n0.067535 0.067535 0.067535\n0.071869 0.071869 0.071869\n0.076263 0.076263 0.076263\n0.080963 0.080963 0.080963\n0.085968 0.085968 0.085968\n0.091034 0.091034 0.091034\n0.096527 0.096527 0.096527\n0.102112 0.102112 0.102112\n0.108185 0.108185 0.108185\n0.114532 0.114532 0.114532\n0.121094 0.121094 0.121094\n0.128204 0.128204 0.128204\n0.135712 0.135712 0.135712\n0.143463 0.143463 0.143463\n0.151886 0.151886 0.151886\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.076172 0.076172 0.076172\n0.080872 0.080872 0.080872\n0.085724 0.085724 0.085724\n0.090912 0.090912 0.090912\n0.096222 0.096222 0.096222\n0.101990 0.101990 0.101990\n0.108002 0.108002 0.108002\n0.114227 0.114227 0.114227\n0.120941 0.120941 0.120941\n0.128021 0.128021 0.128021\n0.135315 0.135315 0.135315\n0.143250 0.143250 0.143250\n0.151642 0.151642 0.151642\n0.160339 0.160339 0.160339\n0.169708 0.169708 0.169708\n0.179260 0.179260 0.179260\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.085602 0.085602 0.085602\n0.090790 0.090790 0.090790\n0.096100 0.096100 0.096100\n0.101837 0.101837 0.101837\n0.107727 0.107727 0.107727\n0.114044 0.114044 0.114044\n0.120758 0.120758 0.120758\n0.127686 0.127686 0.127686\n0.135162 0.135162 0.135162\n0.143066 0.143066 0.143066\n0.151215 0.151215 0.151215\n0.160095 0.160095 0.160095\n0.169464 0.169464 0.169464\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.095978 0.095978 0.095978\n0.101501 0.101501 0.101501\n0.107544 0.107544 0.107544\n0.113892 0.113892 0.113892\n0.120422 0.120422 0.120422\n0.127502 0.127502 0.127502\n0.134949 0.134949 0.134949\n0.142639 0.142639 0.142639\n0.151001 0.151001 0.151001\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188568 0.188568 0.188568\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.107391 0.107391 0.107391\n0.113586 0.113586 0.113586\n0.120239 0.120239 0.120239\n0.127289 0.127289 0.127289\n0.134583 0.134583 0.134583\n0.142426 0.142426 0.142426\n0.150787 0.150787 0.150787\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.120056 0.120056 0.120056\n0.126923 0.126923 0.126923\n0.134369 0.134369 0.134369\n0.142242 0.142242 0.142242\n0.150360 0.150360 0.150360\n0.159180 0.159180 0.159180\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198120 0.198120 0.198120\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.134186 0.134186 0.134186\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404175 0.404175 0.404175\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.207733 0.207733 0.207733\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410614 0.410614 0.410614\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217621 0.217621 0.217621\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320251 0.320251 0.320251\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.416962 0.416962 0.416962\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.227173 0.227173 0.227173\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430298 0.430298 0.430298\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429596 0.429596 0.429596\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504333 0.504333 0.504333\n0.511536 0.511536 0.511536\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442780 0.442780 0.442780\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518463 0.518463 0.518463\n0.525879 0.525879 0.525879\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358551 0.358551 0.358551\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533020 0.533020 0.533020\n0.540680 0.540680 0.540680\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373291 0.373291 0.373291\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365601 0.365601 0.365601\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540100 0.540100 0.540100\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.380096 0.380096 0.380096\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547272 0.547272 0.547272\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554749 0.554749 0.554749\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.562134 0.562134 0.562134\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655518 0.655518 0.655518\n0.664001 0.664001 0.664001\n0.672607 0.672607 0.672607\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672150 0.672150 0.672150\n0.680756 0.680756 0.680756\n0.689209 0.689209 0.689209\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569458 0.569458 0.569458\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.663574 0.663574 0.663574\n0.671936 0.671936 0.671936\n0.680511 0.680511 0.680511\n0.688812 0.688812 0.688812\n0.697205 0.697205 0.697205\n0.705414 0.705414 0.705414\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.671753 0.671753 0.671753\n0.680084 0.680084 0.680084\n0.688568 0.688568 0.688568\n0.696991 0.696991 0.696991\n0.705017 0.705017 0.705017\n0.713165 0.713165 0.713165\n0.721130 0.721130 0.721130\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671539 0.671539 0.671539\n0.679901 0.679901 0.679901\n0.688354 0.688354 0.688354\n0.696533 0.696533 0.696533\n0.704803 0.704803 0.704803\n0.712952 0.712952 0.712952\n0.720703 0.720703 0.720703\n0.728607 0.728607 0.728607\n0.736237 0.736237 0.736237\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.687958 0.687958 0.687958\n0.696350 0.696350 0.696350\n0.704590 0.704590 0.704590\n0.712524 0.712524 0.712524\n0.720551 0.720551 0.720551\n0.728363 0.728363 0.728363\n0.735870 0.735870 0.735870\n0.743378 0.743378 0.743378\n0.750671 0.750671 0.750671\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.670898 0.670898 0.670898\n0.679474 0.679474 0.679474\n0.687714 0.687714 0.687714\n0.696167 0.696167 0.696167\n0.704193 0.704193 0.704193\n0.712341 0.712341 0.712341\n0.720337 0.720337 0.720337\n0.727997 0.727997 0.727997\n0.735687 0.735687 0.735687\n0.743195 0.743195 0.743195\n0.750305 0.750305 0.750305\n0.757416 0.757416 0.757416\n0.764313 0.764313 0.764313\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.679047 0.679047 0.679047\n0.687531 0.687531 0.687531\n0.695709 0.695709 0.695709\n0.703979 0.703979 0.703979\n0.712128 0.712128 0.712128\n0.719940 0.719940 0.719940\n0.727783 0.727783 0.727783\n0.735504 0.735504 0.735504\n0.742798 0.742798 0.742798\n0.750153 0.750153 0.750153\n0.757263 0.757263 0.757263\n0.764008 0.764008 0.764008\n0.770660 0.770660 0.770660\n0.776978 0.776978 0.776978\n0.069153 0.069153 0.069153\n0.073395 0.073395 0.073395\n0.078003 0.078003 0.078003\n0.082703 0.082703 0.082703\n0.087769 0.087769 0.087769\n0.093079 0.093079 0.093079\n0.098480 0.098480 0.098480\n0.104370 0.104370 0.104370\n0.110504 0.110504 0.110504\n0.116852 0.116852 0.116852\n0.123718 0.123718 0.123718\n0.130981 0.130981 0.130981\n0.138458 0.138458 0.138458\n0.146576 0.146576 0.146576\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.077759 0.077759 0.077759\n0.082581 0.082581 0.082581\n0.087646 0.087646 0.087646\n0.092804 0.092804 0.092804\n0.098358 0.098358 0.098358\n0.104218 0.104218 0.104218\n0.110229 0.110229 0.110229\n0.116699 0.116699 0.116699\n0.123535 0.123535 0.123535\n0.130615 0.130615 0.130615\n0.138245 0.138245 0.138245\n0.146149 0.146149 0.146149\n0.154694 0.154694 0.154694\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.087372 0.087372 0.087372\n0.092682 0.092682 0.092682\n0.098206 0.098206 0.098206\n0.103882 0.103882 0.103882\n0.110077 0.110077 0.110077\n0.116516 0.116516 0.116516\n0.123199 0.123199 0.123199\n0.130432 0.130432 0.130432\n0.138062 0.138062 0.138062\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.097931 0.097931 0.097931\n0.103760 0.103760 0.103760\n0.109894 0.109894 0.109894\n0.116211 0.116211 0.116211\n0.123016 0.123016 0.123016\n0.130219 0.130219 0.130219\n0.137665 0.137665 0.137665\n0.145721 0.145721 0.145721\n0.154022 0.154022 0.154022\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.109589 0.109589 0.109589\n0.116058 0.116058 0.116058\n0.122833 0.122833 0.122833\n0.129852 0.129852 0.129852\n0.137451 0.137451 0.137451\n0.145538 0.145538 0.145538\n0.153839 0.153839 0.153839\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.122498 0.122498 0.122498\n0.129700 0.129700 0.129700\n0.137268 0.137268 0.137268\n0.145111 0.145111 0.145111\n0.153595 0.153595 0.153595\n0.162415 0.162415 0.162415\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271759 0.271759 0.271759\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.136871 0.136871 0.136871\n0.144897 0.144897 0.144897\n0.153381 0.153381 0.153381\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.152954 0.152954 0.152954\n0.161926 0.161926 0.161926\n0.171173 0.171173 0.171173\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280182 0.280182 0.280182\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288696 0.288696 0.288696\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297272 0.297272 0.297272\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472778 0.472778 0.472778\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305450 0.305450 0.305450\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486176 0.486176 0.486176\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479095 0.479095 0.479095\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.304810 0.304810 0.304810\n0.313446 0.313446 0.313446\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492645 0.492645 0.492645\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.321564 0.321564 0.321564\n0.329895 0.329895 0.329895\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411469 0.411469 0.411469\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506500 0.506500 0.506500\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.337677 0.337677 0.337677\n0.345673 0.345673 0.345673\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424866 0.424866 0.424866\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424164 0.424164 0.424164\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607727 0.607727 0.607727\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437378 0.437378 0.437378\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.527008 0.527008 0.527008\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615784 0.615784 0.615784\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443665 0.443665 0.443665\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.624023 0.624023 0.624023\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.449890 0.449890 0.449890\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.692139 0.692139 0.692139\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.632141 0.632141 0.632141\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.666565 0.666565 0.666565\n0.675201 0.675201 0.675201\n0.683502 0.683502 0.683502\n0.691956 0.691956 0.691956\n0.700287 0.700287 0.700287\n0.708282 0.708282 0.708282\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.674744 0.674744 0.674744\n0.683319 0.683319 0.683319\n0.691742 0.691742 0.691742\n0.699890 0.699890 0.699890\n0.708069 0.708069 0.708069\n0.716156 0.716156 0.716156\n0.723907 0.723907 0.723907\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.640228 0.640228 0.640228\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.674561 0.674561 0.674561\n0.683075 0.683075 0.683075\n0.691315 0.691315 0.691315\n0.699677 0.699677 0.699677\n0.707855 0.707855 0.707855\n0.715759 0.715759 0.715759\n0.723694 0.723694 0.723694\n0.731445 0.731445 0.731445\n0.738892 0.738892 0.738892\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.657074 0.657074 0.657074\n0.665680 0.665680 0.665680\n0.674347 0.674347 0.674347\n0.682648 0.682648 0.682648\n0.691101 0.691101 0.691101\n0.699432 0.699432 0.699432\n0.707458 0.707458 0.707458\n0.715576 0.715576 0.715576\n0.723511 0.723511 0.723511\n0.731079 0.731079 0.731079\n0.738708 0.738708 0.738708\n0.745941 0.745941 0.745941\n0.753174 0.753174 0.753174\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648315 0.648315 0.648315\n0.656830 0.656830 0.656830\n0.665497 0.665497 0.665497\n0.673889 0.673889 0.673889\n0.682465 0.682465 0.682465\n0.690887 0.690887 0.690887\n0.699036 0.699036 0.699036\n0.707275 0.707275 0.707275\n0.715363 0.715363 0.715363\n0.723145 0.723145 0.723145\n0.730927 0.730927 0.730927\n0.738495 0.738495 0.738495\n0.745758 0.745758 0.745758\n0.752991 0.752991 0.752991\n0.759888 0.759888 0.759888\n0.766693 0.766693 0.766693\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.673706 0.673706 0.673706\n0.682251 0.682251 0.682251\n0.690491 0.690491 0.690491\n0.698822 0.698822 0.698822\n0.707062 0.707062 0.707062\n0.714966 0.714966 0.714966\n0.722931 0.722931 0.722931\n0.730682 0.730682 0.730682\n0.738129 0.738129 0.738129\n0.745605 0.745605 0.745605\n0.752655 0.752655 0.752655\n0.759674 0.759674 0.759674\n0.766510 0.766510 0.766510\n0.772949 0.772949 0.772949\n0.779327 0.779327 0.779327\n0.070679 0.070679 0.070679\n0.075134 0.075134 0.075134\n0.079681 0.079681 0.079681\n0.084595 0.084595 0.084595\n0.089722 0.089722 0.089722\n0.094971 0.094971 0.094971\n0.100647 0.100647 0.100647\n0.106628 0.106628 0.106628\n0.112762 0.112762 0.112762\n0.119415 0.119415 0.119415\n0.126221 0.126221 0.126221\n0.133606 0.133606 0.133606\n0.141449 0.141449 0.141449\n0.149506 0.149506 0.149506\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.079559 0.079559 0.079559\n0.084473 0.084473 0.084473\n0.089447 0.089447 0.089447\n0.094818 0.094818 0.094818\n0.100525 0.100525 0.100525\n0.106323 0.106323 0.106323\n0.112610 0.112610 0.112610\n0.119080 0.119080 0.119080\n0.126068 0.126068 0.126068\n0.133423 0.133423 0.133423\n0.141052 0.141052 0.141052\n0.149323 0.149323 0.149323\n0.158081 0.158081 0.158081\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217346 0.217346 0.217346\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320251 0.320251 0.320251\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.089325 0.089325 0.089325\n0.094696 0.094696 0.094696\n0.100220 0.100220 0.100220\n0.106171 0.106171 0.106171\n0.112427 0.112427 0.112427\n0.118896 0.118896 0.118896\n0.125854 0.125854 0.125854\n0.133057 0.133057 0.133057\n0.140839 0.140839 0.140839\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.100098 0.100098 0.100098\n0.106018 0.106018 0.106018\n0.112122 0.112122 0.112122\n0.118713 0.118713 0.118713\n0.125488 0.125488 0.125488\n0.132843 0.132843 0.132843\n0.140625 0.140625 0.140625\n0.148682 0.148682 0.148682\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328033 0.328033 0.328033\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.111938 0.111938 0.111938\n0.118530 0.118530 0.118530\n0.125305 0.125305 0.125305\n0.132660 0.132660 0.132660\n0.140228 0.140228 0.140228\n0.148438 0.148438 0.148438\n0.157166 0.157166 0.157166\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.125153 0.125153 0.125153\n0.132294 0.132294 0.132294\n0.140045 0.140045 0.140045\n0.148285 0.148285 0.148285\n0.156708 0.156708 0.156708\n0.165894 0.165894 0.165894\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.139832 0.139832 0.139832\n0.147827 0.147827 0.147827\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.435883 0.435883 0.435883\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449036 0.449036 0.449036\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442108 0.442108 0.442108\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455292 0.455292 0.455292\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448364 0.448364 0.448364\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461548 0.461548 0.461548\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454590 0.454590 0.454590\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371796 0.371796 0.371796\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467834 0.467834 0.467834\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.386078 0.386078 0.386078\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378601 0.378601 0.378601\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392731 0.392731 0.392731\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569458 0.569458 0.569458\n0.577698 0.577698 0.577698\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385376 0.385376 0.385376\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399292 0.399292 0.399292\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412872 0.412872 0.412872\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.486908 0.486908 0.486908\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.695282 0.695282 0.695282\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600800 0.600800 0.600800\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.669800 0.669800 0.669800\n0.678162 0.678162 0.678162\n0.686676 0.686676 0.686676\n0.694885 0.694885 0.694885\n0.703156 0.703156 0.703156\n0.711334 0.711334 0.711334\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506683 0.506683 0.506683\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.677979 0.677979 0.677979\n0.686493 0.686493 0.686493\n0.694672 0.694672 0.694672\n0.702972 0.702972 0.702972\n0.710938 0.710938 0.710938\n0.718964 0.718964 0.718964\n0.726807 0.726807 0.726807\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.677734 0.677734 0.677734\n0.686035 0.686035 0.686035\n0.694458 0.694458 0.694458\n0.702759 0.702759 0.702759\n0.710724 0.710724 0.710724\n0.718750 0.718750 0.718750\n0.726440 0.726440 0.726440\n0.734192 0.734192 0.734192\n0.741699 0.741699 0.741699\n0.506134 0.506134 0.506134\n0.513367 0.513367 0.513367\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.660309 0.660309 0.660309\n0.668945 0.668945 0.668945\n0.677338 0.677338 0.677338\n0.685822 0.685822 0.685822\n0.694244 0.694244 0.694244\n0.702362 0.702362 0.702362\n0.710510 0.710510 0.710510\n0.718353 0.718353 0.718353\n0.726257 0.726257 0.726257\n0.733978 0.733978 0.733978\n0.741333 0.741333 0.741333\n0.748688 0.748688 0.748688\n0.755859 0.755859 0.755859\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.668518 0.668518 0.668518\n0.677094 0.677094 0.677094\n0.685638 0.685638 0.685638\n0.693817 0.693817 0.693817\n0.702118 0.702118 0.702118\n0.710297 0.710297 0.710297\n0.718140 0.718140 0.718140\n0.726044 0.726044 0.726044\n0.733582 0.733582 0.733582\n0.741150 0.741150 0.741150\n0.748474 0.748474 0.748474\n0.755493 0.755493 0.755493\n0.762451 0.762451 0.762451\n0.769226 0.769226 0.769226\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.676880 0.676880 0.676880\n0.685211 0.685211 0.685211\n0.693634 0.693634 0.693634\n0.701904 0.701904 0.701904\n0.709900 0.709900 0.709900\n0.717957 0.717957 0.717957\n0.725677 0.725677 0.725677\n0.733398 0.733398 0.733398\n0.740967 0.740967 0.740967\n0.748138 0.748138 0.748138\n0.755341 0.755341 0.755341\n0.762268 0.762268 0.762268\n0.768829 0.768829 0.768829\n0.775360 0.775360 0.775360\n0.781677 0.781677 0.781677\n0.072296 0.072296 0.072296\n0.076721 0.076721 0.076721\n0.081482 0.081482 0.081482\n0.086365 0.086365 0.086365\n0.091583 0.091583 0.091583\n0.097076 0.097076 0.097076\n0.102692 0.102692 0.102692\n0.108795 0.108795 0.108795\n0.115204 0.115204 0.115204\n0.121796 0.121796 0.121796\n0.128937 0.128937 0.128937\n0.136475 0.136475 0.136475\n0.144257 0.144257 0.144257\n0.152740 0.152740 0.152740\n0.161499 0.161499 0.161499\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.081360 0.081360 0.081360\n0.086212 0.086212 0.086212\n0.091431 0.091431 0.091431\n0.096802 0.096802 0.096802\n0.102570 0.102570 0.102570\n0.108612 0.108612 0.108612\n0.114868 0.114868 0.114868\n0.121643 0.121643 0.121643\n0.128784 0.128784 0.128784\n0.136108 0.136108 0.136108\n0.144073 0.144073 0.144073\n0.152557 0.152557 0.152557\n0.161255 0.161255 0.161255\n0.170685 0.170685 0.170685\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288696 0.288696 0.288696\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.091309 0.091309 0.091309\n0.096649 0.096649 0.096649\n0.102417 0.102417 0.102417\n0.108307 0.108307 0.108307\n0.114716 0.114716 0.114716\n0.121460 0.121460 0.121460\n0.128387 0.128387 0.128387\n0.135895 0.135895 0.135895\n0.143860 0.143860 0.143860\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170197 0.170197 0.170197\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.102112 0.102112 0.102112\n0.108185 0.108185 0.108185\n0.114532 0.114532 0.114532\n0.121094 0.121094 0.121094\n0.128204 0.128204 0.128204\n0.135712 0.135712 0.135712\n0.143463 0.143463 0.143463\n0.151886 0.151886 0.151886\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.114227 0.114227 0.114227\n0.120941 0.120941 0.120941\n0.128021 0.128021 0.128021\n0.135315 0.135315 0.135315\n0.143250 0.143250 0.143250\n0.151642 0.151642 0.151642\n0.160339 0.160339 0.160339\n0.169708 0.169708 0.169708\n0.179504 0.179504 0.179504\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.127686 0.127686 0.127686\n0.135162 0.135162 0.135162\n0.143066 0.143066 0.143066\n0.151215 0.151215 0.151215\n0.160095 0.160095 0.160095\n0.169464 0.169464 0.169464\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391113 0.391113 0.391113\n0.398224 0.398224 0.398224\n0.142639 0.142639 0.142639\n0.151001 0.151001 0.151001\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188812 0.188812 0.188812\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397705 0.397705 0.397705\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198364 0.198364 0.198364\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411316 0.411316 0.411316\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430298 0.430298 0.430298\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505066 0.505066 0.505066\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519226 0.519226 0.519226\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359314 0.359314 0.359314\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.343506 0.343506 0.343506\n0.351379 0.351379 0.351379\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.358734 0.358734 0.358734\n0.366364 0.366364 0.366364\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442963 0.442963 0.442963\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648132 0.648132 0.648132\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656158 0.656158 0.656158\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.681793 0.681793 0.681793\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474976 0.474976 0.474976\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554535 0.554535 0.554535\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.655914 0.655914 0.655914\n0.664612 0.664612 0.664612\n0.673065 0.673065 0.673065\n0.681610 0.681610 0.681610\n0.690063 0.690063 0.690063\n0.698212 0.698212 0.698212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.664215 0.664215 0.664215\n0.672821 0.672821 0.672821\n0.681366 0.681366 0.681366\n0.689667 0.689667 0.689667\n0.697998 0.697998 0.697998\n0.706238 0.706238 0.706238\n0.714142 0.714142 0.714142\n0.481354 0.481354 0.481354\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.562134 0.562134 0.562134\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655518 0.655518 0.655518\n0.664001 0.664001 0.664001\n0.672607 0.672607 0.672607\n0.680969 0.680969 0.680969\n0.689423 0.689423 0.689423\n0.697784 0.697784 0.697784\n0.705841 0.705841 0.705841\n0.713959 0.713959 0.713959\n0.721924 0.721924 0.721924\n0.729553 0.729553 0.729553\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672150 0.672150 0.672150\n0.680756 0.680756 0.680756\n0.689209 0.689209 0.689209\n0.697388 0.697388 0.697388\n0.705627 0.705627 0.705627\n0.713776 0.713776 0.713776\n0.721527 0.721527 0.721527\n0.729370 0.729370 0.729370\n0.737000 0.737000 0.737000\n0.744293 0.744293 0.744293\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569672 0.569672 0.569672\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.663574 0.663574 0.663574\n0.671936 0.671936 0.671936\n0.680511 0.680511 0.680511\n0.688812 0.688812 0.688812\n0.697205 0.697205 0.697205\n0.705414 0.705414 0.705414\n0.713348 0.713348 0.713348\n0.721344 0.721344 0.721344\n0.729126 0.729126 0.729126\n0.736633 0.736633 0.736633\n0.744110 0.744110 0.744110\n0.751373 0.751373 0.751373\n0.758301 0.758301 0.758301\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.671753 0.671753 0.671753\n0.680084 0.680084 0.680084\n0.688568 0.688568 0.688568\n0.696991 0.696991 0.696991\n0.705017 0.705017 0.705017\n0.713165 0.713165 0.713165\n0.721130 0.721130 0.721130\n0.728760 0.728760 0.728760\n0.736450 0.736450 0.736450\n0.743927 0.743927 0.743927\n0.751038 0.751038 0.751038\n0.758118 0.758118 0.758118\n0.764832 0.764832 0.764832\n0.771515 0.771515 0.771515\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577301 0.577301 0.577301\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671539 0.671539 0.671539\n0.679901 0.679901 0.679901\n0.688354 0.688354 0.688354\n0.696533 0.696533 0.696533\n0.704803 0.704803 0.704803\n0.712952 0.712952 0.712952\n0.720703 0.720703 0.720703\n0.728607 0.728607 0.728607\n0.736237 0.736237 0.736237\n0.743530 0.743530 0.743530\n0.750854 0.750854 0.750854\n0.757935 0.757935 0.757935\n0.764679 0.764679 0.764679\n0.771332 0.771332 0.771332\n0.777588 0.777588 0.777588\n0.783813 0.783813 0.783813\n0.073883 0.073883 0.073883\n0.078491 0.078491 0.078491\n0.083191 0.083191 0.083191\n0.088257 0.088257 0.088257\n0.093597 0.093597 0.093597\n0.099060 0.099060 0.099060\n0.104950 0.104950 0.104950\n0.111145 0.111145 0.111145\n0.117523 0.117523 0.117523\n0.124420 0.124420 0.124420\n0.131531 0.131531 0.131531\n0.139221 0.139221 0.139221\n0.147400 0.147400 0.147400\n0.155792 0.155792 0.155792\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.083069 0.083069 0.083069\n0.088165 0.088165 0.088165\n0.093353 0.093353 0.093353\n0.098907 0.098907 0.098907\n0.104797 0.104797 0.104797\n0.110870 0.110870 0.110870\n0.117340 0.117340 0.117340\n0.124268 0.124268 0.124268\n0.131348 0.131348 0.131348\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.093231 0.093231 0.093231\n0.098785 0.098785 0.098785\n0.104492 0.104492 0.104492\n0.110687 0.110687 0.110687\n0.117218 0.117218 0.117218\n0.123901 0.123901 0.123901\n0.131134 0.131134 0.131134\n0.138641 0.138641 0.138641\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.104370 0.104370 0.104370\n0.110504 0.110504 0.110504\n0.116852 0.116852 0.116852\n0.123718 0.123718 0.123718\n0.130981 0.130981 0.130981\n0.138458 0.138458 0.138458\n0.146576 0.146576 0.146576\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.116699 0.116699 0.116699\n0.123535 0.123535 0.123535\n0.130615 0.130615 0.130615\n0.138245 0.138245 0.138245\n0.146149 0.146149 0.146149\n0.154694 0.154694 0.154694\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253723 0.253723 0.253723\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.130432 0.130432 0.130432\n0.138062 0.138062 0.138062\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.145721 0.145721 0.145721\n0.154022 0.154022 0.154022\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262726 0.262726 0.262726\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271545 0.271545 0.271545\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.453949 0.453949 0.453949\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280426 0.280426 0.280426\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467133 0.467133 0.467133\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460175 0.460175 0.460175\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480499 0.480499 0.480499\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288910 0.288910 0.288910\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473450 0.473450 0.473450\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466461 0.466461 0.466461\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.486908 0.486908 0.486908\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.297272 0.297272 0.297272\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479797 0.479797 0.479797\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493378 0.493378 0.493378\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.330719 0.330719 0.330719\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412170 0.412170 0.412170\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.405060 0.405060 0.405060\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418549 0.418549 0.418549\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411469 0.411469 0.411469\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506683 0.506683 0.506683\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.591827 0.591827 0.591827\n0.600372 0.600372 0.600372\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424866 0.424866 0.424866\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513367 0.513367 0.513367\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.684998 0.684998 0.684998\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615967 0.615967 0.615967\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.667664 0.667664 0.667664\n0.676300 0.676300 0.676300\n0.684753 0.684753 0.684753\n0.693024 0.693024 0.693024\n0.701324 0.701324 0.701324\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.676025 0.676025 0.676025\n0.684357 0.684357 0.684357\n0.692810 0.692810 0.692810\n0.701111 0.701111 0.701111\n0.709076 0.709076 0.709076\n0.717163 0.717163 0.717163\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.624023 0.624023 0.624023\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.684143 0.684143 0.684143\n0.692566 0.692566 0.692566\n0.700684 0.700684 0.700684\n0.708862 0.708862 0.708862\n0.716949 0.716949 0.716949\n0.724670 0.724670 0.724670\n0.732422 0.732422 0.732422\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.692139 0.692139 0.692139\n0.700470 0.700470 0.700470\n0.708679 0.708679 0.708679\n0.716553 0.716553 0.716553\n0.724457 0.724457 0.724457\n0.732056 0.732056 0.732056\n0.739624 0.739624 0.739624\n0.747040 0.747040 0.747040\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.631897 0.631897 0.631897\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.666565 0.666565 0.666565\n0.675201 0.675201 0.675201\n0.683502 0.683502 0.683502\n0.691956 0.691956 0.691956\n0.700287 0.700287 0.700287\n0.708282 0.708282 0.708282\n0.716339 0.716339 0.716339\n0.724304 0.724304 0.724304\n0.731842 0.731842 0.731842\n0.739471 0.739471 0.739471\n0.746674 0.746674 0.746674\n0.753906 0.753906 0.753906\n0.760895 0.760895 0.760895\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.674744 0.674744 0.674744\n0.683319 0.683319 0.683319\n0.691742 0.691742 0.691742\n0.699890 0.699890 0.699890\n0.708069 0.708069 0.708069\n0.716156 0.716156 0.716156\n0.723907 0.723907 0.723907\n0.731659 0.731659 0.731659\n0.739075 0.739075 0.739075\n0.746490 0.746490 0.746490\n0.753693 0.753693 0.753693\n0.760559 0.760559 0.760559\n0.767395 0.767395 0.767395\n0.773926 0.773926 0.773926\n0.540466 0.540466 0.540466\n0.548248 0.548248 0.548248\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.639984 0.639984 0.639984\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.674561 0.674561 0.674561\n0.683075 0.683075 0.683075\n0.691315 0.691315 0.691315\n0.699677 0.699677 0.699677\n0.707855 0.707855 0.707855\n0.715759 0.715759 0.715759\n0.723694 0.723694 0.723694\n0.731445 0.731445 0.731445\n0.738892 0.738892 0.738892\n0.746307 0.746307 0.746307\n0.753357 0.753357 0.753357\n0.760376 0.760376 0.760376\n0.767151 0.767151 0.767151\n0.773621 0.773621 0.773621\n0.779999 0.779999 0.779999\n0.786072 0.786072 0.786072\n0.075562 0.075562 0.075562\n0.080170 0.080170 0.080170\n0.085083 0.085083 0.085083\n0.090271 0.090271 0.090271\n0.095520 0.095520 0.095520\n0.101227 0.101227 0.101227\n0.107117 0.107117 0.107117\n0.113403 0.113403 0.113403\n0.120056 0.120056 0.120056\n0.126923 0.126923 0.126923\n0.134369 0.134369 0.134369\n0.142242 0.142242 0.142242\n0.150360 0.150360 0.150360\n0.159180 0.159180 0.159180\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198120 0.198120 0.198120\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304352 0.304352 0.304352\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.084961 0.084961 0.084961\n0.089996 0.089996 0.089996\n0.095367 0.095367 0.095367\n0.101105 0.101105 0.101105\n0.106964 0.106964 0.106964\n0.113251 0.113251 0.113251\n0.119720 0.119720 0.119720\n0.126740 0.126740 0.126740\n0.134186 0.134186 0.134186\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.095245 0.095245 0.095245\n0.100800 0.100800 0.100800\n0.106812 0.106812 0.106812\n0.112946 0.112946 0.112946\n0.119568 0.119568 0.119568\n0.126587 0.126587 0.126587\n0.133789 0.133789 0.133789\n0.141632 0.141632 0.141632\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.207733 0.207733 0.207733\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312378 0.312378 0.312378\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.106628 0.106628 0.106628\n0.112762 0.112762 0.112762\n0.119415 0.119415 0.119415\n0.126221 0.126221 0.126221\n0.133606 0.133606 0.133606\n0.141449 0.141449 0.141449\n0.149506 0.149506 0.149506\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.119080 0.119080 0.119080\n0.126068 0.126068 0.126068\n0.133423 0.133423 0.133423\n0.141052 0.141052 0.141052\n0.149323 0.149323 0.149323\n0.158081 0.158081 0.158081\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217346 0.217346 0.217346\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.133057 0.133057 0.133057\n0.140839 0.140839 0.140839\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.148682 0.148682 0.148682\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.430115 0.430115 0.430115\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.443298 0.443298 0.443298\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429596 0.429596 0.429596\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343109 0.343109 0.343109\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442780 0.442780 0.442780\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.435883 0.435883 0.435883\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449036 0.449036 0.449036\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442108 0.442108 0.442108\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357788 0.357788 0.357788\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455292 0.455292 0.455292\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448364 0.448364 0.448364\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524567 0.524567 0.524567\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364838 0.364838 0.364838\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379333 0.379333 0.379333\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554535 0.554535 0.554535\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.364258 0.364258 0.364258\n0.371796 0.371796 0.371796\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467834 0.467834 0.467834\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.378815 0.378815 0.378815\n0.386078 0.386078 0.386078\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.561951 0.561951 0.561951\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.392883 0.392883 0.392883\n0.399963 0.399963 0.399963\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569458 0.569458 0.569458\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671326 0.671326 0.671326\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.687958 0.687958 0.687958\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.585052 0.585052 0.585052\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.670898 0.670898 0.670898\n0.679260 0.679260 0.679260\n0.687714 0.687714 0.687714\n0.696167 0.696167 0.696167\n0.704193 0.704193 0.704193\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.679047 0.679047 0.679047\n0.687531 0.687531 0.687531\n0.695709 0.695709 0.695709\n0.703979 0.703979 0.703979\n0.712128 0.712128 0.712128\n0.719940 0.719940 0.719940\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.687317 0.687317 0.687317\n0.695496 0.695496 0.695496\n0.703796 0.703796 0.703796\n0.711731 0.711731 0.711731\n0.719788 0.719788 0.719788\n0.727600 0.727600 0.727600\n0.735107 0.735107 0.735107\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.695282 0.695282 0.695282\n0.703400 0.703400 0.703400\n0.711548 0.711548 0.711548\n0.719543 0.719543 0.719543\n0.727203 0.727203 0.727203\n0.734924 0.734924 0.734924\n0.742462 0.742462 0.742462\n0.749603 0.749603 0.749603\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.669800 0.669800 0.669800\n0.678162 0.678162 0.678162\n0.686676 0.686676 0.686676\n0.695099 0.695099 0.695099\n0.703156 0.703156 0.703156\n0.711334 0.711334 0.711334\n0.719147 0.719147 0.719147\n0.727020 0.727020 0.727020\n0.734711 0.734711 0.734711\n0.742065 0.742065 0.742065\n0.749420 0.749420 0.749420\n0.756561 0.756561 0.756561\n0.763306 0.763306 0.763306\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.677979 0.677979 0.677979\n0.686493 0.686493 0.686493\n0.694672 0.694672 0.694672\n0.702972 0.702972 0.702972\n0.710938 0.710938 0.710938\n0.718964 0.718964 0.718964\n0.726807 0.726807 0.726807\n0.734344 0.734344 0.734344\n0.741882 0.741882 0.741882\n0.749237 0.749237 0.749237\n0.756226 0.756226 0.756226\n0.763123 0.763123 0.763123\n0.769867 0.769867 0.769867\n0.776184 0.776184 0.776184\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.677734 0.677734 0.677734\n0.686035 0.686035 0.686035\n0.694458 0.694458 0.694458\n0.702759 0.702759 0.702759\n0.710724 0.710724 0.710724\n0.718750 0.718750 0.718750\n0.726440 0.726440 0.726440\n0.734192 0.734192 0.734192\n0.741699 0.741699 0.741699\n0.748840 0.748840 0.748840\n0.756042 0.756042 0.756042\n0.762970 0.762970 0.762970\n0.769531 0.769531 0.769531\n0.776031 0.776031 0.776031\n0.782288 0.782288 0.782288\n0.788147 0.788147 0.788147\n0.077179 0.077179 0.077179\n0.081970 0.081970 0.081970\n0.086853 0.086853 0.086853\n0.092133 0.092133 0.092133\n0.097656 0.097656 0.097656\n0.103333 0.103333 0.103333\n0.109436 0.109436 0.109436\n0.115875 0.115875 0.115875\n0.122498 0.122498 0.122498\n0.129700 0.129700 0.129700\n0.137268 0.137268 0.137268\n0.145111 0.145111 0.145111\n0.153595 0.153595 0.153595\n0.162415 0.162415 0.162415\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271545 0.271545 0.271545\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.086731 0.086731 0.086731\n0.091980 0.091980 0.091980\n0.097351 0.097351 0.097351\n0.103149 0.103149 0.103149\n0.109283 0.109283 0.109283\n0.115540 0.115540 0.115540\n0.122314 0.122314 0.122314\n0.129486 0.129486 0.129486\n0.136871 0.136871 0.136871\n0.144897 0.144897 0.144897\n0.153198 0.153198 0.153198\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.097229 0.097229 0.097229\n0.102997 0.102997 0.102997\n0.108948 0.108948 0.108948\n0.115387 0.115387 0.115387\n0.122162 0.122162 0.122162\n0.129120 0.129120 0.129120\n0.136688 0.136688 0.136688\n0.144684 0.144684 0.144684\n0.152954 0.152954 0.152954\n0.161926 0.161926 0.161926\n0.171173 0.171173 0.171173\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280182 0.280182 0.280182\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.108795 0.108795 0.108795\n0.115204 0.115204 0.115204\n0.121796 0.121796 0.121796\n0.128937 0.128937 0.128937\n0.136475 0.136475 0.136475\n0.144257 0.144257 0.144257\n0.152740 0.152740 0.152740\n0.161713 0.161713 0.161713\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.121643 0.121643 0.121643\n0.128784 0.128784 0.128784\n0.136108 0.136108 0.136108\n0.144073 0.144073 0.144073\n0.152557 0.152557 0.152557\n0.161255 0.161255 0.161255\n0.170685 0.170685 0.170685\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288696 0.288696 0.288696\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377716 0.377716 0.377716\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.135895 0.135895 0.135895\n0.143860 0.143860 0.143860\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170441 0.170441 0.170441\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.151886 0.151886 0.151886\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384460 0.384460 0.384460\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.169708 0.169708 0.169708\n0.179504 0.179504 0.179504\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411316 0.411316 0.411316\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485504 0.485504 0.485504\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499176 0.499176 0.499176\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.491974 0.491974 0.491974\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410614 0.410614 0.410614\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505768 0.505768 0.505768\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498474 0.498474 0.498474\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.336639 0.336639 0.336639\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.352173 0.352173 0.352173\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442963 0.442963 0.442963\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.631897 0.631897 0.631897\n0.640656 0.640656 0.640656\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.639984 0.639984 0.639984\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.674561 0.674561 0.674561\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462402 0.462402 0.462402\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540100 0.540100 0.540100\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.657074 0.657074 0.657074\n0.665680 0.665680 0.665680\n0.674347 0.674347 0.674347\n0.682648 0.682648 0.682648\n0.691101 0.691101 0.691101\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648132 0.648132 0.648132\n0.656830 0.656830 0.656830\n0.665497 0.665497 0.665497\n0.673889 0.673889 0.673889\n0.682465 0.682465 0.682465\n0.690887 0.690887 0.690887\n0.699036 0.699036 0.699036\n0.707275 0.707275 0.707275\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.673706 0.673706 0.673706\n0.682251 0.682251 0.682251\n0.690491 0.690491 0.690491\n0.698822 0.698822 0.698822\n0.707062 0.707062 0.707062\n0.714966 0.714966 0.714966\n0.722931 0.722931 0.722931\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656158 0.656158 0.656158\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.681793 0.681793 0.681793\n0.690277 0.690277 0.690277\n0.698608 0.698608 0.698608\n0.706665 0.706665 0.706665\n0.714783 0.714783 0.714783\n0.722717 0.722717 0.722717\n0.730316 0.730316 0.730316\n0.737946 0.737946 0.737946\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554749 0.554749 0.554749\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.655914 0.655914 0.655914\n0.664612 0.664612 0.664612\n0.673065 0.673065 0.673065\n0.681610 0.681610 0.681610\n0.690063 0.690063 0.690063\n0.698212 0.698212 0.698212\n0.706451 0.706451 0.706451\n0.714569 0.714569 0.714569\n0.722351 0.722351 0.722351\n0.730164 0.730164 0.730164\n0.737793 0.737793 0.737793\n0.745026 0.745026 0.745026\n0.752289 0.752289 0.752289\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.664459 0.664459 0.664459\n0.672821 0.672821 0.672821\n0.681366 0.681366 0.681366\n0.689667 0.689667 0.689667\n0.697998 0.697998 0.697998\n0.706238 0.706238 0.706238\n0.714142 0.714142 0.714142\n0.722107 0.722107 0.722107\n0.729919 0.729919 0.729919\n0.737396 0.737396 0.737396\n0.744843 0.744843 0.744843\n0.751923 0.751923 0.751923\n0.758972 0.758972 0.758972\n0.765839 0.765839 0.765839\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.562134 0.562134 0.562134\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655518 0.655518 0.655518\n0.664001 0.664001 0.664001\n0.672607 0.672607 0.672607\n0.680969 0.680969 0.680969\n0.689423 0.689423 0.689423\n0.697784 0.697784 0.697784\n0.705841 0.705841 0.705841\n0.713959 0.713959 0.713959\n0.721924 0.721924 0.721924\n0.729553 0.729553 0.729553\n0.737213 0.737213 0.737213\n0.744690 0.744690 0.744690\n0.751740 0.751740 0.751740\n0.758850 0.758850 0.758850\n0.765533 0.765533 0.765533\n0.772125 0.772125 0.772125\n0.778564 0.778564 0.778564\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672150 0.672150 0.672150\n0.680756 0.680756 0.680756\n0.689209 0.689209 0.689209\n0.697388 0.697388 0.697388\n0.705627 0.705627 0.705627\n0.713776 0.713776 0.713776\n0.721527 0.721527 0.721527\n0.729370 0.729370 0.729370\n0.737000 0.737000 0.737000\n0.744293 0.744293 0.744293\n0.751556 0.751556 0.751556\n0.758667 0.758667 0.758667\n0.765350 0.765350 0.765350\n0.771973 0.771973 0.771973\n0.778229 0.778229 0.778229\n0.784424 0.784424 0.784424\n0.790344 0.790344 0.790344\n0.078949 0.078949 0.078949\n0.083710 0.083710 0.083710\n0.088806 0.088806 0.088806\n0.094147 0.094147 0.094147\n0.099640 0.099640 0.099640\n0.105560 0.105560 0.105560\n0.111786 0.111786 0.111786\n0.118225 0.118225 0.118225\n0.125153 0.125153 0.125153\n0.132294 0.132294 0.132294\n0.140045 0.140045 0.140045\n0.148285 0.148285 0.148285\n0.156708 0.156708 0.156708\n0.165894 0.165894 0.165894\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335632 0.335632 0.335632\n0.088684 0.088684 0.088684\n0.093903 0.093903 0.093903\n0.099518 0.099518 0.099518\n0.105377 0.105377 0.105377\n0.111481 0.111481 0.111481\n0.118042 0.118042 0.118042\n0.124786 0.124786 0.124786\n0.132111 0.132111 0.132111\n0.139832 0.139832 0.139832\n0.147827 0.147827 0.147827\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.099365 0.099365 0.099365\n0.105133 0.105133 0.105133\n0.111328 0.111328 0.111328\n0.117859 0.117859 0.117859\n0.124634 0.124634 0.124634\n0.131927 0.131927 0.131927\n0.139435 0.139435 0.139435\n0.147614 0.147614 0.147614\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343109 0.343109 0.343109\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.111145 0.111145 0.111145\n0.117523 0.117523 0.117523\n0.124420 0.124420 0.124420\n0.131531 0.131531 0.131531\n0.139221 0.139221 0.139221\n0.147400 0.147400 0.147400\n0.155792 0.155792 0.155792\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235321 0.235321 0.235321\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.124268 0.124268 0.124268\n0.131348 0.131348 0.131348\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.138824 0.138824 0.138824\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244598 0.244598 0.244598\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441437 0.441437 0.441437\n0.448212 0.448212 0.448212\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262970 0.262970 0.262970\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454590 0.454590 0.454590\n0.461365 0.461365 0.461365\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447693 0.447693 0.447693\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467834 0.467834 0.467834\n0.474640 0.474640 0.474640\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271759 0.271759 0.271759\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.460846 0.460846 0.460846\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474121 0.474121 0.474121\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467133 0.467133 0.467133\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480499 0.480499 0.480499\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473450 0.473450 0.473450\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.392029 0.392029 0.392029\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.486908 0.486908 0.486908\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405762 0.405762 0.405762\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398590 0.398590 0.398590\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493530 0.493530 0.493530\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576263 0.576263 0.576263\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412170 0.412170 0.412170\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.398010 0.398010 0.398010\n0.405060 0.405060 0.405060\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.411652 0.411652 0.411652\n0.418549 0.418549 0.418549\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506500 0.506500 0.506500\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.677734 0.677734 0.677734\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.660309 0.660309 0.660309\n0.668945 0.668945 0.668945\n0.677338 0.677338 0.677338\n0.685822 0.685822 0.685822\n0.694244 0.694244 0.694244\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.668518 0.668518 0.668518\n0.677094 0.677094 0.677094\n0.685638 0.685638 0.685638\n0.693817 0.693817 0.693817\n0.702118 0.702118 0.702118\n0.710114 0.710114 0.710114\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.676880 0.676880 0.676880\n0.685211 0.685211 0.685211\n0.693634 0.693634 0.693634\n0.701904 0.701904 0.701904\n0.709900 0.709900 0.709900\n0.717957 0.717957 0.717957\n0.725677 0.725677 0.725677\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.684998 0.684998 0.684998\n0.693420 0.693420 0.693420\n0.701508 0.701508 0.701508\n0.709686 0.709686 0.709686\n0.717560 0.717560 0.717560\n0.725464 0.725464 0.725464\n0.733215 0.733215 0.733215\n0.740570 0.740570 0.740570\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615784 0.615784 0.615784\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.667664 0.667664 0.667664\n0.676300 0.676300 0.676300\n0.684753 0.684753 0.684753\n0.693024 0.693024 0.693024\n0.701324 0.701324 0.701324\n0.709503 0.709503 0.709503\n0.717377 0.717377 0.717377\n0.725250 0.725250 0.725250\n0.732819 0.732819 0.732819\n0.740387 0.740387 0.740387\n0.747742 0.747742 0.747742\n0.754791 0.754791 0.754791\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.676025 0.676025 0.676025\n0.684357 0.684357 0.684357\n0.692810 0.692810 0.692810\n0.701111 0.701111 0.701111\n0.709076 0.709076 0.709076\n0.717163 0.717163 0.717163\n0.724854 0.724854 0.724854\n0.732605 0.732605 0.732605\n0.740173 0.740173 0.740173\n0.747406 0.747406 0.747406\n0.754608 0.754608 0.754608\n0.761566 0.761566 0.761566\n0.768188 0.768188 0.768188\n0.533966 0.533966 0.533966\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.624023 0.624023 0.624023\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.684143 0.684143 0.684143\n0.692566 0.692566 0.692566\n0.700684 0.700684 0.700684\n0.708862 0.708862 0.708862\n0.716949 0.716949 0.716949\n0.724670 0.724670 0.724670\n0.732422 0.732422 0.732422\n0.739807 0.739807 0.739807\n0.747223 0.747223 0.747223\n0.754425 0.754425 0.754425\n0.761230 0.761230 0.761230\n0.768036 0.768036 0.768036\n0.774567 0.774567 0.774567\n0.780762 0.780762 0.780762\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.692139 0.692139 0.692139\n0.700470 0.700470 0.700470\n0.708679 0.708679 0.708679\n0.716553 0.716553 0.716553\n0.724457 0.724457 0.724457\n0.732056 0.732056 0.732056\n0.739624 0.739624 0.739624\n0.747040 0.747040 0.747040\n0.754059 0.754059 0.754059\n0.761047 0.761047 0.761047\n0.767853 0.767853 0.767853\n0.774231 0.774231 0.774231\n0.780579 0.780579 0.780579\n0.786652 0.786652 0.786652\n0.792358 0.792358 0.792358\n0.080658 0.080658 0.080658\n0.085602 0.085602 0.085602\n0.090790 0.090790 0.090790\n0.096100 0.096100 0.096100\n0.101837 0.101837 0.101837\n0.107727 0.107727 0.107727\n0.114044 0.114044 0.114044\n0.120758 0.120758 0.120758\n0.127686 0.127686 0.127686\n0.135162 0.135162 0.135162\n0.143066 0.143066 0.143066\n0.151215 0.151215 0.151215\n0.160095 0.160095 0.160095\n0.169464 0.169464 0.169464\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.090515 0.090515 0.090515\n0.095978 0.095978 0.095978\n0.101501 0.101501 0.101501\n0.107544 0.107544 0.107544\n0.113892 0.113892 0.113892\n0.120422 0.120422 0.120422\n0.127502 0.127502 0.127502\n0.134949 0.134949 0.134949\n0.142639 0.142639 0.142639\n0.151001 0.151001 0.151001\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188568 0.188568 0.188568\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.101379 0.101379 0.101379\n0.107391 0.107391 0.107391\n0.113586 0.113586 0.113586\n0.120239 0.120239 0.120239\n0.127289 0.127289 0.127289\n0.134583 0.134583 0.134583\n0.142426 0.142426 0.142426\n0.150787 0.150787 0.150787\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.113403 0.113403 0.113403\n0.120056 0.120056 0.120056\n0.126923 0.126923 0.126923\n0.134369 0.134369 0.134369\n0.142242 0.142242 0.142242\n0.150360 0.150360 0.150360\n0.159180 0.159180 0.159180\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198120 0.198120 0.198120\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.126740 0.126740 0.126740\n0.134186 0.134186 0.134186\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.141632 0.141632 0.141632\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.207733 0.207733 0.207733\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410614 0.410614 0.410614\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217346 0.217346 0.217346\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320251 0.320251 0.320251\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.416962 0.416962 0.416962\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328033 0.328033 0.328033\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430298 0.430298 0.430298\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335632 0.335632 0.335632\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429596 0.429596 0.429596\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504333 0.504333 0.504333\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343262 0.343262 0.343262\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442780 0.442780 0.442780\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518463 0.518463 0.518463\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.435883 0.435883 0.435883\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511017 0.511017 0.511017\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533020 0.533020 0.533020\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350616 0.350616 0.350616\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449036 0.449036 0.449036\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525330 0.525330 0.525330\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365601 0.365601 0.365601\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540100 0.540100 0.540100\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.357788 0.357788 0.357788\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.380096 0.380096 0.380096\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455292 0.455292 0.455292\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.372528 0.372528 0.372528\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547272 0.547272 0.547272\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.386810 0.386810 0.386810\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554535 0.554535 0.554535\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.561951 0.561951 0.561951\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655304 0.655304 0.655304\n0.664001 0.664001 0.664001\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474304 0.474304 0.474304\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672150 0.672150 0.672150\n0.680756 0.680756 0.680756\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569672 0.569672 0.569672\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.663574 0.663574 0.663574\n0.671936 0.671936 0.671936\n0.680511 0.680511 0.680511\n0.688812 0.688812 0.688812\n0.697205 0.697205 0.697205\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.671753 0.671753 0.671753\n0.680084 0.680084 0.680084\n0.688568 0.688568 0.688568\n0.696991 0.696991 0.696991\n0.705017 0.705017 0.705017\n0.713165 0.713165 0.713165\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671539 0.671539 0.671539\n0.679901 0.679901 0.679901\n0.688354 0.688354 0.688354\n0.696533 0.696533 0.696533\n0.704803 0.704803 0.704803\n0.712952 0.712952 0.712952\n0.720703 0.720703 0.720703\n0.728607 0.728607 0.728607\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.687958 0.687958 0.687958\n0.696350 0.696350 0.696350\n0.704590 0.704590 0.704590\n0.712524 0.712524 0.712524\n0.720551 0.720551 0.720551\n0.728363 0.728363 0.728363\n0.735870 0.735870 0.735870\n0.743378 0.743378 0.743378\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.670898 0.670898 0.670898\n0.679474 0.679474 0.679474\n0.687714 0.687714 0.687714\n0.696167 0.696167 0.696167\n0.704193 0.704193 0.704193\n0.712341 0.712341 0.712341\n0.720337 0.720337 0.720337\n0.727997 0.727997 0.727997\n0.735687 0.735687 0.735687\n0.743195 0.743195 0.743195\n0.750305 0.750305 0.750305\n0.757416 0.757416 0.757416\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.679047 0.679047 0.679047\n0.687531 0.687531 0.687531\n0.695709 0.695709 0.695709\n0.703979 0.703979 0.703979\n0.712128 0.712128 0.712128\n0.719940 0.719940 0.719940\n0.727783 0.727783 0.727783\n0.735504 0.735504 0.735504\n0.742798 0.742798 0.742798\n0.750153 0.750153 0.750153\n0.757263 0.757263 0.757263\n0.764008 0.764008 0.764008\n0.770660 0.770660 0.770660\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.687317 0.687317 0.687317\n0.695496 0.695496 0.695496\n0.703796 0.703796 0.703796\n0.711731 0.711731 0.711731\n0.719788 0.719788 0.719788\n0.727600 0.727600 0.727600\n0.735107 0.735107 0.735107\n0.742615 0.742615 0.742615\n0.749969 0.749969 0.749969\n0.756897 0.756897 0.756897\n0.763824 0.763824 0.763824\n0.770508 0.770508 0.770508\n0.776794 0.776794 0.776794\n0.783051 0.783051 0.783051\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.695282 0.695282 0.695282\n0.703400 0.703400 0.703400\n0.711548 0.711548 0.711548\n0.719543 0.719543 0.719543\n0.727203 0.727203 0.727203\n0.734924 0.734924 0.734924\n0.742462 0.742462 0.742462\n0.749603 0.749603 0.749603\n0.756714 0.756714 0.756714\n0.763641 0.763641 0.763641\n0.770142 0.770142 0.770142\n0.776642 0.776642 0.776642\n0.782745 0.782745 0.782745\n0.788757 0.788757 0.788757\n0.794495 0.794495 0.794495\n0.082458 0.082458 0.082458\n0.087372 0.087372 0.087372\n0.092682 0.092682 0.092682\n0.098206 0.098206 0.098206\n0.103882 0.103882 0.103882\n0.110077 0.110077 0.110077\n0.116516 0.116516 0.116516\n0.123199 0.123199 0.123199\n0.130432 0.130432 0.130432\n0.138062 0.138062 0.138062\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.092529 0.092529 0.092529\n0.097931 0.097931 0.097931\n0.103760 0.103760 0.103760\n0.109894 0.109894 0.109894\n0.116211 0.116211 0.116211\n0.123016 0.123016 0.123016\n0.130219 0.130219 0.130219\n0.137665 0.137665 0.137665\n0.145721 0.145721 0.145721\n0.154022 0.154022 0.154022\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262726 0.262726 0.262726\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356812 0.356812 0.356812\n0.103638 0.103638 0.103638\n0.109589 0.109589 0.109589\n0.116058 0.116058 0.116058\n0.122833 0.122833 0.122833\n0.129852 0.129852 0.129852\n0.137451 0.137451 0.137451\n0.145538 0.145538 0.145538\n0.153839 0.153839 0.153839\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.115875 0.115875 0.115875\n0.122498 0.122498 0.122498\n0.129700 0.129700 0.129700\n0.137268 0.137268 0.137268\n0.145111 0.145111 0.145111\n0.153595 0.153595 0.153595\n0.162415 0.162415 0.162415\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271545 0.271545 0.271545\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.363892 0.363892 0.363892\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.129486 0.129486 0.129486\n0.136871 0.136871 0.136871\n0.144897 0.144897 0.144897\n0.153381 0.153381 0.153381\n0.162170 0.162170 0.162170\n0.171631 0.171631 0.171631\n0.181244 0.181244 0.181244\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.144684 0.144684 0.144684\n0.152954 0.152954 0.152954\n0.161926 0.161926 0.161926\n0.171173 0.171173 0.171173\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280182 0.280182 0.280182\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.370880 0.370880 0.370880\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.161713 0.161713 0.161713\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288696 0.288696 0.288696\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472778 0.472778 0.472778\n0.479614 0.479614 0.479614\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486176 0.486176 0.486176\n0.493195 0.493195 0.493195\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479095 0.479095 0.479095\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397705 0.397705 0.397705\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492645 0.492645 0.492645\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411316 0.411316 0.411316\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485504 0.485504 0.485504\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506500 0.506500 0.506500\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404175 0.404175 0.404175\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499176 0.499176 0.499176\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424164 0.424164 0.424164\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.417175 0.417175 0.417175\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430450 0.430450 0.430450\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615784 0.615784 0.615784\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.416656 0.416656 0.416656\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519226 0.519226 0.519226\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.429932 0.429932 0.429932\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.623840 0.623840 0.623840\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.443146 0.443146 0.443146\n0.449890 0.449890 0.449890\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526062 0.526062 0.526062\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.631897 0.631897 0.631897\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.666565 0.666565 0.666565\n0.675201 0.675201 0.675201\n0.683502 0.683502 0.683502\n0.691956 0.691956 0.691956\n0.700287 0.700287 0.700287\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.674744 0.674744 0.674744\n0.683319 0.683319 0.683319\n0.691742 0.691742 0.691742\n0.699890 0.699890 0.699890\n0.708069 0.708069 0.708069\n0.716156 0.716156 0.716156\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.639984 0.639984 0.639984\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.674561 0.674561 0.674561\n0.683075 0.683075 0.683075\n0.691315 0.691315 0.691315\n0.699677 0.699677 0.699677\n0.707855 0.707855 0.707855\n0.715759 0.715759 0.715759\n0.723694 0.723694 0.723694\n0.731293 0.731293 0.731293\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540283 0.540283 0.540283\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.657074 0.657074 0.657074\n0.665680 0.665680 0.665680\n0.674347 0.674347 0.674347\n0.682648 0.682648 0.682648\n0.691101 0.691101 0.691101\n0.699432 0.699432 0.699432\n0.707458 0.707458 0.707458\n0.715576 0.715576 0.715576\n0.723511 0.723511 0.723511\n0.731079 0.731079 0.731079\n0.738708 0.738708 0.738708\n0.745941 0.745941 0.745941\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648315 0.648315 0.648315\n0.656830 0.656830 0.656830\n0.665497 0.665497 0.665497\n0.673889 0.673889 0.673889\n0.682465 0.682465 0.682465\n0.690887 0.690887 0.690887\n0.699036 0.699036 0.699036\n0.707275 0.707275 0.707275\n0.715363 0.715363 0.715363\n0.723145 0.723145 0.723145\n0.730927 0.730927 0.730927\n0.738342 0.738342 0.738342\n0.745758 0.745758 0.745758\n0.752991 0.752991 0.752991\n0.759888 0.759888 0.759888\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.673706 0.673706 0.673706\n0.682251 0.682251 0.682251\n0.690491 0.690491 0.690491\n0.698822 0.698822 0.698822\n0.707062 0.707062 0.707062\n0.714966 0.714966 0.714966\n0.722931 0.722931 0.722931\n0.730682 0.730682 0.730682\n0.738129 0.738129 0.738129\n0.745605 0.745605 0.745605\n0.752655 0.752655 0.752655\n0.759674 0.759674 0.759674\n0.766510 0.766510 0.766510\n0.772949 0.772949 0.772949\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656158 0.656158 0.656158\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.681793 0.681793 0.681793\n0.690277 0.690277 0.690277\n0.698608 0.698608 0.698608\n0.706665 0.706665 0.706665\n0.714783 0.714783 0.714783\n0.722717 0.722717 0.722717\n0.730316 0.730316 0.730316\n0.737946 0.737946 0.737946\n0.745392 0.745392 0.745392\n0.752472 0.752472 0.752472\n0.759491 0.759491 0.759491\n0.766174 0.766174 0.766174\n0.772797 0.772797 0.772797\n0.779205 0.779205 0.779205\n0.785187 0.785187 0.785187\n0.554749 0.554749 0.554749\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.655914 0.655914 0.655914\n0.664612 0.664612 0.664612\n0.673065 0.673065 0.673065\n0.681610 0.681610 0.681610\n0.690063 0.690063 0.690063\n0.698212 0.698212 0.698212\n0.706451 0.706451 0.706451\n0.714569 0.714569 0.714569\n0.722351 0.722351 0.722351\n0.730164 0.730164 0.730164\n0.737793 0.737793 0.737793\n0.745026 0.745026 0.745026\n0.752289 0.752289 0.752289\n0.759155 0.759155 0.759155\n0.765991 0.765991 0.765991\n0.772644 0.772644 0.772644\n0.778900 0.778900 0.778900\n0.785034 0.785034 0.785034\n0.790924 0.790924 0.790924\n0.796417 0.796417 0.796417\n0.084229 0.084229 0.084229\n0.089325 0.089325 0.089325\n0.094696 0.094696 0.094696\n0.100220 0.100220 0.100220\n0.106171 0.106171 0.106171\n0.112274 0.112274 0.112274\n0.118896 0.118896 0.118896\n0.125854 0.125854 0.125854\n0.133057 0.133057 0.133057\n0.140839 0.140839 0.140839\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.094421 0.094421 0.094421\n0.100098 0.100098 0.100098\n0.106018 0.106018 0.106018\n0.112122 0.112122 0.112122\n0.118713 0.118713 0.118713\n0.125488 0.125488 0.125488\n0.132843 0.132843 0.132843\n0.140625 0.140625 0.140625\n0.148682 0.148682 0.148682\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328033 0.328033 0.328033\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.105713 0.105713 0.105713\n0.111938 0.111938 0.111938\n0.118378 0.118378 0.118378\n0.125305 0.125305 0.125305\n0.132660 0.132660 0.132660\n0.140228 0.140228 0.140228\n0.148438 0.148438 0.148438\n0.157166 0.157166 0.157166\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216309 0.216309 0.216309\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.118225 0.118225 0.118225\n0.125153 0.125153 0.125153\n0.132294 0.132294 0.132294\n0.140045 0.140045 0.140045\n0.148285 0.148285 0.148285\n0.156708 0.156708 0.156708\n0.165894 0.165894 0.165894\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335632 0.335632 0.335632\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.132111 0.132111 0.132111\n0.139832 0.139832 0.139832\n0.147827 0.147827 0.147827\n0.156494 0.156494 0.156494\n0.165680 0.165680 0.165680\n0.175049 0.175049 0.175049\n0.185028 0.185028 0.185028\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.225891 0.225891 0.225891\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.147614 0.147614 0.147614\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343109 0.343109 0.343109\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.428925 0.428925 0.428925\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244843 0.244843 0.244843\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442108 0.442108 0.442108\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435181 0.435181 0.435181\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455292 0.455292 0.455292\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.244110 0.244110 0.244110\n0.253967 0.253967 0.253967\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448364 0.448364 0.448364\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461548 0.461548 0.461548\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454590 0.454590 0.454590\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467834 0.467834 0.467834\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.460846 0.460846 0.460846\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538574 0.538574 0.538574\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474121 0.474121 0.474121\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553772 0.553772 0.553772\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392731 0.392731 0.392731\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569458 0.569458 0.569458\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385376 0.385376 0.385376\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480682 0.480682 0.480682\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561157 0.561157 0.561157\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399292 0.399292 0.399292\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.392029 0.392029 0.392029\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.486908 0.486908 0.486908\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.405762 0.405762 0.405762\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493378 0.493378 0.493378\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.669800 0.669800 0.669800\n0.678162 0.678162 0.678162\n0.686676 0.686676 0.686676\n0.694885 0.694885 0.694885\n0.703156 0.703156 0.703156\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506500 0.506500 0.506500\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.677979 0.677979 0.677979\n0.686493 0.686493 0.686493\n0.694672 0.694672 0.694672\n0.702972 0.702972 0.702972\n0.710938 0.710938 0.710938\n0.718964 0.718964 0.718964\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.677734 0.677734 0.677734\n0.686035 0.686035 0.686035\n0.694458 0.694458 0.694458\n0.702545 0.702545 0.702545\n0.710724 0.710724 0.710724\n0.718750 0.718750 0.718750\n0.726440 0.726440 0.726440\n0.734192 0.734192 0.734192\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513367 0.513367 0.513367\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599731 0.599731 0.599731\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.660309 0.660309 0.660309\n0.668945 0.668945 0.668945\n0.677338 0.677338 0.677338\n0.685822 0.685822 0.685822\n0.694244 0.694244 0.694244\n0.702362 0.702362 0.702362\n0.710510 0.710510 0.710510\n0.718353 0.718353 0.718353\n0.726257 0.726257 0.726257\n0.733978 0.733978 0.733978\n0.741333 0.741333 0.741333\n0.748688 0.748688 0.748688\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.668518 0.668518 0.668518\n0.677094 0.677094 0.677094\n0.685638 0.685638 0.685638\n0.693817 0.693817 0.693817\n0.702118 0.702118 0.702118\n0.710114 0.710114 0.710114\n0.718140 0.718140 0.718140\n0.726044 0.726044 0.726044\n0.733582 0.733582 0.733582\n0.741150 0.741150 0.741150\n0.748474 0.748474 0.748474\n0.755493 0.755493 0.755493\n0.762451 0.762451 0.762451\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.676880 0.676880 0.676880\n0.685211 0.685211 0.685211\n0.693634 0.693634 0.693634\n0.701904 0.701904 0.701904\n0.709900 0.709900 0.709900\n0.717957 0.717957 0.717957\n0.725677 0.725677 0.725677\n0.733398 0.733398 0.733398\n0.740967 0.740967 0.740967\n0.748138 0.748138 0.748138\n0.755341 0.755341 0.755341\n0.762268 0.762268 0.762268\n0.768829 0.768829 0.768829\n0.775360 0.775360 0.775360\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.684998 0.684998 0.684998\n0.693420 0.693420 0.693420\n0.701508 0.701508 0.701508\n0.709686 0.709686 0.709686\n0.717560 0.717560 0.717560\n0.725464 0.725464 0.725464\n0.733215 0.733215 0.733215\n0.740570 0.740570 0.740570\n0.747955 0.747955 0.747955\n0.755127 0.755127 0.755127\n0.761932 0.761932 0.761932\n0.768707 0.768707 0.768707\n0.775208 0.775208 0.775208\n0.781342 0.781342 0.781342\n0.787415 0.787415 0.787415\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615967 0.615967 0.615967\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.667664 0.667664 0.667664\n0.676300 0.676300 0.676300\n0.684753 0.684753 0.684753\n0.693024 0.693024 0.693024\n0.701324 0.701324 0.701324\n0.709503 0.709503 0.709503\n0.717377 0.717377 0.717377\n0.725250 0.725250 0.725250\n0.732819 0.732819 0.732819\n0.740387 0.740387 0.740387\n0.747742 0.747742 0.747742\n0.754791 0.754791 0.754791\n0.761749 0.761749 0.761749\n0.768524 0.768524 0.768524\n0.774902 0.774902 0.774902\n0.781189 0.781189 0.781189\n0.787262 0.787262 0.787262\n0.792908 0.792908 0.792908\n0.798492 0.798492 0.798492\n0.086090 0.086090 0.086090\n0.091187 0.091187 0.091187\n0.096649 0.096649 0.096649\n0.102417 0.102417 0.102417\n0.108307 0.108307 0.108307\n0.114716 0.114716 0.114716\n0.121460 0.121460 0.121460\n0.128387 0.128387 0.128387\n0.135895 0.135895 0.135895\n0.143860 0.143860 0.143860\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170197 0.170197 0.170197\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.096527 0.096527 0.096527\n0.102112 0.102112 0.102112\n0.108185 0.108185 0.108185\n0.114532 0.114532 0.114532\n0.121094 0.121094 0.121094\n0.128204 0.128204 0.128204\n0.135712 0.135712 0.135712\n0.143463 0.143463 0.143463\n0.151886 0.151886 0.151886\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.108002 0.108002 0.108002\n0.114227 0.114227 0.114227\n0.120941 0.120941 0.120941\n0.128021 0.128021 0.128021\n0.135315 0.135315 0.135315\n0.143250 0.143250 0.143250\n0.151642 0.151642 0.151642\n0.160339 0.160339 0.160339\n0.169708 0.169708 0.169708\n0.179260 0.179260 0.179260\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.288025 0.288025 0.288025\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.120758 0.120758 0.120758\n0.127686 0.127686 0.127686\n0.135162 0.135162 0.135162\n0.143066 0.143066 0.143066\n0.151215 0.151215 0.151215\n0.160095 0.160095 0.160095\n0.169464 0.169464 0.169464\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391113 0.391113 0.391113\n0.134949 0.134949 0.134949\n0.142639 0.142639 0.142639\n0.151001 0.151001 0.151001\n0.159882 0.159882 0.159882\n0.169006 0.169006 0.169006\n0.178772 0.178772 0.178772\n0.188568 0.188568 0.188568\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296387 0.296387 0.296387\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.150787 0.150787 0.150787\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178528 0.178528 0.178528\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397705 0.397705 0.397705\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198120 0.198120 0.198120\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304352 0.304352 0.304352\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411316 0.411316 0.411316\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404175 0.404175 0.404175\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.207733 0.207733 0.207733\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312378 0.312378 0.312378\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410614 0.410614 0.410614\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.416962 0.416962 0.416962\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491272 0.491272 0.491272\n0.498291 0.498291 0.498291\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328247 0.328247 0.328247\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430298 0.430298 0.430298\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505066 0.505066 0.505066\n0.512268 0.512268 0.512268\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497772 0.497772 0.497772\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519226 0.519226 0.519226\n0.526642 0.526642 0.526642\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335846 0.335846 0.335846\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511719 0.511719 0.511719\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429596 0.429596 0.429596\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504333 0.504333 0.504333\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526062 0.526062 0.526062\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366364 0.366364 0.366364\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442780 0.442780 0.442780\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533020 0.533020 0.533020\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540100 0.540100 0.540100\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547455 0.547455 0.547455\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639160 0.639160 0.639160\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461700 0.461700 0.461700\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656158 0.656158 0.656158\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554535 0.554535 0.554535\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.655914 0.655914 0.655914\n0.664612 0.664612 0.664612\n0.673065 0.673065 0.673065\n0.681610 0.681610 0.681610\n0.690063 0.690063 0.690063\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.664215 0.664215 0.664215\n0.672821 0.672821 0.672821\n0.681366 0.681366 0.681366\n0.689667 0.689667 0.689667\n0.697998 0.697998 0.697998\n0.706238 0.706238 0.706238\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.561951 0.561951 0.561951\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655518 0.655518 0.655518\n0.664001 0.664001 0.664001\n0.672607 0.672607 0.672607\n0.680969 0.680969 0.680969\n0.689423 0.689423 0.689423\n0.697784 0.697784 0.697784\n0.705841 0.705841 0.705841\n0.713959 0.713959 0.713959\n0.721924 0.721924 0.721924\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672150 0.672150 0.672150\n0.680756 0.680756 0.680756\n0.689209 0.689209 0.689209\n0.697388 0.697388 0.697388\n0.705627 0.705627 0.705627\n0.713776 0.713776 0.713776\n0.721527 0.721527 0.721527\n0.729370 0.729370 0.729370\n0.737000 0.737000 0.737000\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569458 0.569458 0.569458\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.663574 0.663574 0.663574\n0.671936 0.671936 0.671936\n0.680511 0.680511 0.680511\n0.688812 0.688812 0.688812\n0.697205 0.697205 0.697205\n0.705414 0.705414 0.705414\n0.713348 0.713348 0.713348\n0.721344 0.721344 0.721344\n0.729126 0.729126 0.729126\n0.736633 0.736633 0.736633\n0.744110 0.744110 0.744110\n0.751373 0.751373 0.751373\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.671753 0.671753 0.671753\n0.680084 0.680084 0.680084\n0.688568 0.688568 0.688568\n0.696991 0.696991 0.696991\n0.705017 0.705017 0.705017\n0.713165 0.713165 0.713165\n0.721130 0.721130 0.721130\n0.728760 0.728760 0.728760\n0.736450 0.736450 0.736450\n0.743927 0.743927 0.743927\n0.751038 0.751038 0.751038\n0.758118 0.758118 0.758118\n0.764832 0.764832 0.764832\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671539 0.671539 0.671539\n0.679901 0.679901 0.679901\n0.688354 0.688354 0.688354\n0.696533 0.696533 0.696533\n0.704803 0.704803 0.704803\n0.712952 0.712952 0.712952\n0.720703 0.720703 0.720703\n0.728607 0.728607 0.728607\n0.736237 0.736237 0.736237\n0.743530 0.743530 0.743530\n0.750854 0.750854 0.750854\n0.757935 0.757935 0.757935\n0.764679 0.764679 0.764679\n0.771332 0.771332 0.771332\n0.777588 0.777588 0.777588\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.687958 0.687958 0.687958\n0.696350 0.696350 0.696350\n0.704590 0.704590 0.704590\n0.712524 0.712524 0.712524\n0.720551 0.720551 0.720551\n0.728363 0.728363 0.728363\n0.735870 0.735870 0.735870\n0.743378 0.743378 0.743378\n0.750671 0.750671 0.750671\n0.757599 0.757599 0.757599\n0.764526 0.764526 0.764526\n0.770996 0.770996 0.770996\n0.777435 0.777435 0.777435\n0.783630 0.783630 0.783630\n0.789490 0.789490 0.789490\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.670898 0.670898 0.670898\n0.679260 0.679260 0.679260\n0.687714 0.687714 0.687714\n0.696167 0.696167 0.696167\n0.704193 0.704193 0.704193\n0.712341 0.712341 0.712341\n0.720337 0.720337 0.720337\n0.727997 0.727997 0.727997\n0.735687 0.735687 0.735687\n0.743195 0.743195 0.743195\n0.750305 0.750305 0.750305\n0.757416 0.757416 0.757416\n0.764313 0.764313 0.764313\n0.770813 0.770813 0.770813\n0.777283 0.777283 0.777283\n0.783386 0.783386 0.783386\n0.789307 0.789307 0.789307\n0.795044 0.795044 0.795044\n0.800385 0.800385 0.800385\n0.087891 0.087891 0.087891\n0.093231 0.093231 0.093231\n0.098785 0.098785 0.098785\n0.104492 0.104492 0.104492\n0.110687 0.110687 0.110687\n0.117218 0.117218 0.117218\n0.123901 0.123901 0.123901\n0.131134 0.131134 0.131134\n0.138641 0.138641 0.138641\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244598 0.244598 0.244598\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342285 0.342285 0.342285\n0.350189 0.350189 0.350189\n0.098480 0.098480 0.098480\n0.104370 0.104370 0.104370\n0.110504 0.110504 0.110504\n0.116852 0.116852 0.116852\n0.123718 0.123718 0.123718\n0.130981 0.130981 0.130981\n0.138458 0.138458 0.138458\n0.146576 0.146576 0.146576\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.110229 0.110229 0.110229\n0.116699 0.116699 0.116699\n0.123535 0.123535 0.123535\n0.130615 0.130615 0.130615\n0.138245 0.138245 0.138245\n0.146149 0.146149 0.146149\n0.154694 0.154694 0.154694\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253723 0.253723 0.253723\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349609 0.349609 0.349609\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.123199 0.123199 0.123199\n0.130432 0.130432 0.130432\n0.138062 0.138062 0.138062\n0.145935 0.145935 0.145935\n0.154510 0.154510 0.154510\n0.163330 0.163330 0.163330\n0.172852 0.172852 0.172852\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.137665 0.137665 0.137665\n0.145721 0.145721 0.145721\n0.154022 0.154022 0.154022\n0.163116 0.163116 0.163116\n0.172638 0.172638 0.172638\n0.182251 0.182251 0.182251\n0.192413 0.192413 0.192413\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262726 0.262726 0.262726\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.153839 0.153839 0.153839\n0.162872 0.162872 0.162872\n0.172150 0.172150 0.172150\n0.182007 0.182007 0.182007\n0.192169 0.192169 0.192169\n0.202271 0.202271 0.202271\n0.212646 0.212646 0.212646\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.171906 0.171906 0.171906\n0.181732 0.181732 0.181732\n0.191650 0.191650 0.191650\n0.202026 0.202026 0.202026\n0.212402 0.212402 0.212402\n0.222534 0.222534 0.222534\n0.232788 0.232788 0.232788\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271545 0.271545 0.271545\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.364105 0.364105 0.364105\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.191376 0.191376 0.191376\n0.201721 0.201721 0.201721\n0.211884 0.211884 0.211884\n0.222260 0.222260 0.222260\n0.232513 0.232513 0.232513\n0.242371 0.242371 0.242371\n0.252258 0.252258 0.252258\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280182 0.280182 0.280182\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.371033 0.371033 0.371033\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460175 0.460175 0.460175\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288696 0.288696 0.288696\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377716 0.377716 0.377716\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473450 0.473450 0.473450\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466461 0.466461 0.466461\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.486908 0.486908 0.486908\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384460 0.384460 0.384460\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479797 0.479797 0.479797\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472778 0.472778 0.472778\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493378 0.493378 0.493378\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391113 0.391113 0.391113\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486176 0.486176 0.486176\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479095 0.479095 0.479095\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559509 0.559509 0.559509\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397858 0.397858 0.397858\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492828 0.492828 0.492828\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411469 0.411469 0.411469\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506500 0.506500 0.506500\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.591827 0.591827 0.591827\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404358 0.404358 0.404358\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417847 0.417847 0.417847\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599731 0.599731 0.599731\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.410797 0.410797 0.410797\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.431122 0.431122 0.431122\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505768 0.505768 0.505768\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.424164 0.424164 0.424164\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607727 0.607727 0.607727\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.437378 0.437378 0.437378\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615784 0.615784 0.615784\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.667664 0.667664 0.667664\n0.676300 0.676300 0.676300\n0.684753 0.684753 0.684753\n0.693024 0.693024 0.693024\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.676025 0.676025 0.676025\n0.684357 0.684357 0.684357\n0.692810 0.692810 0.692810\n0.701111 0.701111 0.701111\n0.709076 0.709076 0.709076\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.623840 0.623840 0.623840\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.684143 0.684143 0.684143\n0.692566 0.692566 0.692566\n0.700684 0.700684 0.700684\n0.708862 0.708862 0.708862\n0.716766 0.716766 0.716766\n0.724670 0.724670 0.724670\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526245 0.526245 0.526245\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.692139 0.692139 0.692139\n0.700470 0.700470 0.700470\n0.708679 0.708679 0.708679\n0.716553 0.716553 0.716553\n0.724457 0.724457 0.724457\n0.732056 0.732056 0.732056\n0.739624 0.739624 0.739624\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.632141 0.632141 0.632141\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.666565 0.666565 0.666565\n0.675201 0.675201 0.675201\n0.683502 0.683502 0.683502\n0.691956 0.691956 0.691956\n0.700287 0.700287 0.700287\n0.708282 0.708282 0.708282\n0.716339 0.716339 0.716339\n0.724304 0.724304 0.724304\n0.731842 0.731842 0.731842\n0.739471 0.739471 0.739471\n0.746674 0.746674 0.746674\n0.753906 0.753906 0.753906\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.674744 0.674744 0.674744\n0.683319 0.683319 0.683319\n0.691742 0.691742 0.691742\n0.699890 0.699890 0.699890\n0.708069 0.708069 0.708069\n0.716156 0.716156 0.716156\n0.723907 0.723907 0.723907\n0.731659 0.731659 0.731659\n0.739075 0.739075 0.739075\n0.746490 0.746490 0.746490\n0.753693 0.753693 0.753693\n0.760559 0.760559 0.760559\n0.767395 0.767395 0.767395\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.639984 0.639984 0.639984\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.674561 0.674561 0.674561\n0.683075 0.683075 0.683075\n0.691315 0.691315 0.691315\n0.699677 0.699677 0.699677\n0.707855 0.707855 0.707855\n0.715759 0.715759 0.715759\n0.723694 0.723694 0.723694\n0.731445 0.731445 0.731445\n0.738892 0.738892 0.738892\n0.746307 0.746307 0.746307\n0.753357 0.753357 0.753357\n0.760376 0.760376 0.760376\n0.767151 0.767151 0.767151\n0.773621 0.773621 0.773621\n0.779999 0.779999 0.779999\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.657074 0.657074 0.657074\n0.665680 0.665680 0.665680\n0.674347 0.674347 0.674347\n0.682648 0.682648 0.682648\n0.691101 0.691101 0.691101\n0.699432 0.699432 0.699432\n0.707458 0.707458 0.707458\n0.715576 0.715576 0.715576\n0.723511 0.723511 0.723511\n0.731079 0.731079 0.731079\n0.738708 0.738708 0.738708\n0.745941 0.745941 0.745941\n0.753174 0.753174 0.753174\n0.760193 0.760193 0.760193\n0.766846 0.766846 0.766846\n0.773468 0.773468 0.773468\n0.779816 0.779816 0.779816\n0.785767 0.785767 0.785767\n0.791626 0.791626 0.791626\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648132 0.648132 0.648132\n0.656830 0.656830 0.656830\n0.665497 0.665497 0.665497\n0.673889 0.673889 0.673889\n0.682465 0.682465 0.682465\n0.690887 0.690887 0.690887\n0.699036 0.699036 0.699036\n0.707275 0.707275 0.707275\n0.715363 0.715363 0.715363\n0.723145 0.723145 0.723145\n0.730927 0.730927 0.730927\n0.738495 0.738495 0.738495\n0.745758 0.745758 0.745758\n0.752991 0.752991 0.752991\n0.759888 0.759888 0.759888\n0.766693 0.766693 0.766693\n0.773285 0.773285 0.773285\n0.779480 0.779480 0.779480\n0.785614 0.785614 0.785614\n0.791534 0.791534 0.791534\n0.796967 0.796967 0.796967\n0.802338 0.802338 0.802338\n0.089874 0.089874 0.089874\n0.095245 0.095245 0.095245\n0.100800 0.100800 0.100800\n0.106812 0.106812 0.106812\n0.112946 0.112946 0.112946\n0.119568 0.119568 0.119568\n0.126587 0.126587 0.126587\n0.133789 0.133789 0.133789\n0.141632 0.141632 0.141632\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.207733 0.207733 0.207733\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312378 0.312378 0.312378\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.100647 0.100647 0.100647\n0.106476 0.106476 0.106476\n0.112762 0.112762 0.112762\n0.119415 0.119415 0.119415\n0.126221 0.126221 0.126221\n0.133606 0.133606 0.133606\n0.141449 0.141449 0.141449\n0.149506 0.149506 0.149506\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197052 0.197052 0.197052\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.112610 0.112610 0.112610\n0.119080 0.119080 0.119080\n0.126068 0.126068 0.126068\n0.133423 0.133423 0.133423\n0.141052 0.141052 0.141052\n0.149323 0.149323 0.149323\n0.158081 0.158081 0.158081\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217346 0.217346 0.217346\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320251 0.320251 0.320251\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.125854 0.125854 0.125854\n0.133057 0.133057 0.133057\n0.140839 0.140839 0.140839\n0.149078 0.149078 0.149078\n0.157623 0.157623 0.157623\n0.166840 0.166840 0.166840\n0.176544 0.176544 0.176544\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206696 0.206696 0.206696\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.140625 0.140625 0.140625\n0.148682 0.148682 0.148682\n0.157410 0.157410 0.157410\n0.166595 0.166595 0.166595\n0.176056 0.176056 0.176056\n0.186035 0.186035 0.186035\n0.196289 0.196289 0.196289\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328033 0.328033 0.328033\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.409943 0.409943 0.409943\n0.157166 0.157166 0.157166\n0.166138 0.166138 0.166138\n0.175781 0.175781 0.175781\n0.185791 0.185791 0.185791\n0.195801 0.195801 0.195801\n0.206177 0.206177 0.206177\n0.216583 0.216583 0.216583\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.175537 0.175537 0.175537\n0.185272 0.185272 0.185272\n0.195526 0.195526 0.195526\n0.205902 0.205902 0.205902\n0.216064 0.216064 0.216064\n0.226410 0.226410 0.226410\n0.236328 0.236328 0.236328\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335632 0.335632 0.335632\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416321 0.416321 0.416321\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.195251 0.195251 0.195251\n0.205383 0.205383 0.205383\n0.215790 0.215790 0.215790\n0.226166 0.226166 0.226166\n0.236053 0.236053 0.236053\n0.246094 0.246094 0.246094\n0.255707 0.255707 0.255707\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429596 0.429596 0.429596\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343109 0.343109 0.343109\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422638 0.422638 0.422638\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442780 0.442780 0.442780\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.235596 0.235596 0.235596\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.435883 0.435883 0.435883\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449036 0.449036 0.449036\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442108 0.442108 0.442108\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435364 0.435364 0.435364\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455292 0.455292 0.455292\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448364 0.448364 0.448364\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524567 0.524567 0.524567\n0.532104 0.532104 0.532104\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461548 0.461548 0.461548\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539337 0.539337 0.539337\n0.547058 0.547058 0.547058\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454590 0.454590 0.454590\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531525 0.531525 0.531525\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554535 0.554535 0.554535\n0.562561 0.562561 0.562561\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371796 0.371796 0.371796\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467987 0.467987 0.467987\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.386078 0.386078 0.386078\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.561951 0.561951 0.561951\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474121 0.474121 0.474121\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569458 0.569458 0.569458\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480499 0.480499 0.480499\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561340 0.561340 0.561340\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466614 0.466614 0.466614\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.486908 0.486908 0.486908\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479950 0.479950 0.479950\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.670898 0.670898 0.670898\n0.679260 0.679260 0.679260\n0.687714 0.687714 0.687714\n0.696167 0.696167 0.696167\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493378 0.493378 0.493378\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576263 0.576263 0.576263\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.679047 0.679047 0.679047\n0.687531 0.687531 0.687531\n0.695709 0.695709 0.695709\n0.703979 0.703979 0.703979\n0.712128 0.712128 0.712128\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.687103 0.687103 0.687103\n0.695496 0.695496 0.695496\n0.703796 0.703796 0.703796\n0.711731 0.711731 0.711731\n0.719788 0.719788 0.719788\n0.727600 0.727600 0.727600\n0.493011 0.493011 0.493011\n0.500061 0.500061 0.500061\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584015 0.584015 0.584015\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.695282 0.695282 0.695282\n0.703400 0.703400 0.703400\n0.711548 0.711548 0.711548\n0.719543 0.719543 0.719543\n0.727203 0.727203 0.727203\n0.734924 0.734924 0.734924\n0.742462 0.742462 0.742462\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.669800 0.669800 0.669800\n0.678162 0.678162 0.678162\n0.686676 0.686676 0.686676\n0.694885 0.694885 0.694885\n0.703156 0.703156 0.703156\n0.711334 0.711334 0.711334\n0.719147 0.719147 0.719147\n0.727020 0.727020 0.727020\n0.734711 0.734711 0.734711\n0.742065 0.742065 0.742065\n0.749420 0.749420 0.749420\n0.756561 0.756561 0.756561\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.677979 0.677979 0.677979\n0.686493 0.686493 0.686493\n0.694672 0.694672 0.694672\n0.702972 0.702972 0.702972\n0.710938 0.710938 0.710938\n0.718964 0.718964 0.718964\n0.726807 0.726807 0.726807\n0.734344 0.734344 0.734344\n0.741882 0.741882 0.741882\n0.749237 0.749237 0.749237\n0.756226 0.756226 0.756226\n0.763123 0.763123 0.763123\n0.769867 0.769867 0.769867\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.677734 0.677734 0.677734\n0.686035 0.686035 0.686035\n0.694458 0.694458 0.694458\n0.702545 0.702545 0.702545\n0.710724 0.710724 0.710724\n0.718750 0.718750 0.718750\n0.726440 0.726440 0.726440\n0.734192 0.734192 0.734192\n0.741699 0.741699 0.741699\n0.748840 0.748840 0.748840\n0.756042 0.756042 0.756042\n0.762970 0.762970 0.762970\n0.769531 0.769531 0.769531\n0.776031 0.776031 0.776031\n0.782135 0.782135 0.782135\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599945 0.599945 0.599945\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.660309 0.660309 0.660309\n0.668945 0.668945 0.668945\n0.677338 0.677338 0.677338\n0.685822 0.685822 0.685822\n0.694244 0.694244 0.694244\n0.702362 0.702362 0.702362\n0.710510 0.710510 0.710510\n0.718353 0.718353 0.718353\n0.726257 0.726257 0.726257\n0.733978 0.733978 0.733978\n0.741333 0.741333 0.741333\n0.748688 0.748688 0.748688\n0.755859 0.755859 0.755859\n0.762604 0.762604 0.762604\n0.769348 0.769348 0.769348\n0.775848 0.775848 0.775848\n0.781952 0.781952 0.781952\n0.787994 0.787994 0.787994\n0.793640 0.793640 0.793640\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.668518 0.668518 0.668518\n0.677094 0.677094 0.677094\n0.685638 0.685638 0.685638\n0.693817 0.693817 0.693817\n0.702118 0.702118 0.702118\n0.710297 0.710297 0.710297\n0.718140 0.718140 0.718140\n0.726044 0.726044 0.726044\n0.733582 0.733582 0.733582\n0.741150 0.741150 0.741150\n0.748474 0.748474 0.748474\n0.755493 0.755493 0.755493\n0.762451 0.762451 0.762451\n0.769226 0.769226 0.769226\n0.775574 0.775574 0.775574\n0.781799 0.781799 0.781799\n0.787720 0.787720 0.787720\n0.793488 0.793488 0.793488\n0.799011 0.799011 0.799011\n0.804138 0.804138 0.804138\n0.091705 0.091705 0.091705\n0.097229 0.097229 0.097229\n0.102997 0.102997 0.102997\n0.108948 0.108948 0.108948\n0.115387 0.115387 0.115387\n0.122162 0.122162 0.122162\n0.129120 0.129120 0.129120\n0.136688 0.136688 0.136688\n0.144684 0.144684 0.144684\n0.152954 0.152954 0.152954\n0.161926 0.161926 0.161926\n0.171173 0.171173 0.171173\n0.181000 0.181000 0.181000\n0.191132 0.191132 0.191132\n0.201233 0.201233 0.201233\n0.211639 0.211639 0.211639\n0.222015 0.222015 0.222015\n0.232025 0.232025 0.232025\n0.242126 0.242126 0.242126\n0.252014 0.252014 0.252014\n0.261505 0.261505 0.261505\n0.271057 0.271057 0.271057\n0.280182 0.280182 0.280182\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.102692 0.102692 0.102692\n0.108795 0.108795 0.108795\n0.115204 0.115204 0.115204\n0.121796 0.121796 0.121796\n0.128937 0.128937 0.128937\n0.136475 0.136475 0.136475\n0.144257 0.144257 0.144257\n0.152740 0.152740 0.152740\n0.161499 0.161499 0.161499\n0.170929 0.170929 0.170929\n0.180725 0.180725 0.180725\n0.190643 0.190643 0.190643\n0.200958 0.200958 0.200958\n0.211365 0.211365 0.211365\n0.221527 0.221527 0.221527\n0.231750 0.231750 0.231750\n0.241882 0.241882 0.241882\n0.251526 0.251526 0.251526\n0.261261 0.261261 0.261261\n0.270813 0.270813 0.270813\n0.279968 0.279968 0.279968\n0.289124 0.289124 0.289124\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.114868 0.114868 0.114868\n0.121643 0.121643 0.121643\n0.128784 0.128784 0.128784\n0.136108 0.136108 0.136108\n0.144073 0.144073 0.144073\n0.152557 0.152557 0.152557\n0.161255 0.161255 0.161255\n0.170685 0.170685 0.170685\n0.180237 0.180237 0.180237\n0.190399 0.190399 0.190399\n0.200714 0.200714 0.200714\n0.210846 0.210846 0.210846\n0.221252 0.221252 0.221252\n0.231476 0.231476 0.231476\n0.241364 0.241364 0.241364\n0.251282 0.251282 0.251282\n0.261047 0.261047 0.261047\n0.270355 0.270355 0.270355\n0.279724 0.279724 0.279724\n0.288696 0.288696 0.288696\n0.297699 0.297699 0.297699\n0.306519 0.306519 0.306519\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377716 0.377716 0.377716\n0.385010 0.385010 0.385010\n0.128387 0.128387 0.128387\n0.135895 0.135895 0.135895\n0.143860 0.143860 0.143860\n0.152100 0.152100 0.152100\n0.161011 0.161011 0.161011\n0.170197 0.170197 0.170197\n0.179993 0.179993 0.179993\n0.190094 0.190094 0.190094\n0.200165 0.200165 0.200165\n0.210602 0.210602 0.210602\n0.220978 0.220978 0.220978\n0.231018 0.231018 0.231018\n0.241119 0.241119 0.241119\n0.251038 0.251038 0.251038\n0.260559 0.260559 0.260559\n0.270142 0.270142 0.270142\n0.279510 0.279510 0.279510\n0.288483 0.288483 0.288483\n0.297485 0.297485 0.297485\n0.306122 0.306122 0.306122\n0.314728 0.314728 0.314728\n0.323242 0.323242 0.323242\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.143463 0.143463 0.143463\n0.151886 0.151886 0.151886\n0.160767 0.160767 0.160767\n0.169952 0.169952 0.169952\n0.179749 0.179749 0.179749\n0.189606 0.189606 0.189606\n0.199921 0.199921 0.199921\n0.210327 0.210327 0.210327\n0.220459 0.220459 0.220459\n0.230774 0.230774 0.230774\n0.240875 0.240875 0.240875\n0.250549 0.250549 0.250549\n0.260315 0.260315 0.260315\n0.269867 0.269867 0.269867\n0.279053 0.279053 0.279053\n0.288239 0.288239 0.288239\n0.297028 0.297028 0.297028\n0.305878 0.305878 0.305878\n0.314545 0.314545 0.314545\n0.322815 0.322815 0.322815\n0.331116 0.331116 0.331116\n0.339264 0.339264 0.339264\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384460 0.384460 0.384460\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.160339 0.160339 0.160339\n0.169708 0.169708 0.169708\n0.179260 0.179260 0.179260\n0.189301 0.189301 0.189301\n0.199677 0.199677 0.199677\n0.209808 0.209808 0.209808\n0.220215 0.220215 0.220215\n0.230530 0.230530 0.230530\n0.240356 0.240356 0.240356\n0.250305 0.250305 0.250305\n0.260040 0.260040 0.260040\n0.269379 0.269379 0.269379\n0.278809 0.278809 0.278809\n0.287781 0.287781 0.287781\n0.296783 0.296783 0.296783\n0.305664 0.305664 0.305664\n0.314117 0.314117 0.314117\n0.322601 0.322601 0.322601\n0.330902 0.330902 0.330902\n0.338837 0.338837 0.338837\n0.346863 0.346863 0.346863\n0.354675 0.354675 0.354675\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398407 0.398407 0.398407\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.179016 0.179016 0.179016\n0.189056 0.189056 0.189056\n0.199158 0.199158 0.199158\n0.209564 0.209564 0.209564\n0.219940 0.219940 0.219940\n0.230011 0.230011 0.230011\n0.240112 0.240112 0.240112\n0.250031 0.250031 0.250031\n0.259583 0.259583 0.259583\n0.269135 0.269135 0.269135\n0.278564 0.278564 0.278564\n0.287567 0.287567 0.287567\n0.296600 0.296600 0.296600\n0.305206 0.305206 0.305206\n0.313904 0.313904 0.313904\n0.322388 0.322388 0.322388\n0.330505 0.330505 0.330505\n0.338684 0.338684 0.338684\n0.346649 0.346649 0.346649\n0.354279 0.354279 0.354279\n0.362000 0.362000 0.362000\n0.369568 0.369568 0.369568\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391113 0.391113 0.391113\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.198914 0.198914 0.198914\n0.209290 0.209290 0.209290\n0.219452 0.219452 0.219452\n0.229736 0.229736 0.229736\n0.239868 0.239868 0.239868\n0.249542 0.249542 0.249542\n0.259338 0.259338 0.259338\n0.268921 0.268921 0.268921\n0.278107 0.278107 0.278107\n0.287323 0.287323 0.287323\n0.296112 0.296112 0.296112\n0.304993 0.304993 0.304993\n0.313690 0.313690 0.313690\n0.321960 0.321960 0.321960\n0.330322 0.330322 0.330322\n0.338470 0.338470 0.338470\n0.346252 0.346252 0.346252\n0.354095 0.354095 0.354095\n0.361816 0.361816 0.361816\n0.369171 0.369171 0.369171\n0.376587 0.376587 0.376587\n0.383911 0.383911 0.383911\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.404907 0.404907 0.404907\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.368988 0.368988 0.368988\n0.376434 0.376434 0.376434\n0.383545 0.383545 0.383545\n0.390747 0.390747 0.390747\n0.397705 0.397705 0.397705\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418365 0.418365 0.418365\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304565 0.304565 0.304565\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.383362 0.383362 0.383362\n0.390594 0.390594 0.390594\n0.397522 0.397522 0.397522\n0.404510 0.404510 0.404510\n0.411316 0.411316 0.411316\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.397339 0.397339 0.397339\n0.404175 0.404175 0.404175\n0.411133 0.411133 0.411133\n0.417999 0.417999 0.417999\n0.424683 0.424683 0.424683\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478424 0.478424 0.478424\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312622 0.312622 0.312622\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.397186 0.397186 0.397186\n0.403992 0.403992 0.403992\n0.410980 0.410980 0.410980\n0.417664 0.417664 0.417664\n0.424500 0.424500 0.424500\n0.431305 0.431305 0.431305\n0.437897 0.437897 0.437897\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.491974 0.491974 0.491974\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410614 0.410614 0.410614\n0.417480 0.417480 0.417480\n0.424347 0.424347 0.424347\n0.430969 0.430969 0.430969\n0.437744 0.437744 0.437744\n0.444489 0.444489 0.444489\n0.451080 0.451080 0.451080\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484802 0.484802 0.484802\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505768 0.505768 0.505768\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.311981 0.311981 0.311981\n0.320496 0.320496 0.320496\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403656 0.403656 0.403656\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.437592 0.437592 0.437592\n0.444153 0.444153 0.444153\n0.450897 0.450897 0.450897\n0.457642 0.457642 0.457642\n0.464233 0.464233 0.464233\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498474 0.498474 0.498474\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.416962 0.416962 0.416962\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.450714 0.450714 0.450714\n0.457306 0.457306 0.457306\n0.464081 0.464081 0.464081\n0.470886 0.470886 0.470886\n0.477570 0.477570 0.477570\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512451 0.512451 0.512451\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.410095 0.410095 0.410095\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430298 0.430298 0.430298\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.463928 0.463928 0.463928\n0.470551 0.470551 0.470551\n0.477386 0.477386 0.477386\n0.484283 0.484283 0.484283\n0.491089 0.491089 0.491089\n0.498077 0.498077 0.498077\n0.505066 0.505066 0.505066\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423462 0.423462 0.423462\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.477203 0.477203 0.477203\n0.483948 0.483948 0.483948\n0.490906 0.490906 0.490906\n0.497955 0.497955 0.497955\n0.504883 0.504883 0.504883\n0.512085 0.512085 0.512085\n0.519226 0.519226 0.519226\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436707 0.436707 0.436707\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.490692 0.490692 0.490692\n0.497589 0.497589 0.497589\n0.504700 0.504700 0.504700\n0.511902 0.511902 0.511902\n0.519043 0.519043 0.519043\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429779 0.429779 0.429779\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.504517 0.504517 0.504517\n0.511536 0.511536 0.511536\n0.518860 0.518860 0.518860\n0.526062 0.526062 0.526062\n0.533600 0.533600 0.533600\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.614899 0.614899 0.614899\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442963 0.442963 0.442963\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.518677 0.518677 0.518677\n0.525879 0.525879 0.525879\n0.533417 0.533417 0.533417\n0.540863 0.540863 0.540863\n0.548645 0.548645 0.548645\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.631897 0.631897 0.631897\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.436035 0.436035 0.436035\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511200 0.511200 0.511200\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.533234 0.533234 0.533234\n0.540680 0.540680 0.540680\n0.548431 0.548431 0.548431\n0.556152 0.556152 0.556152\n0.564178 0.564178 0.564178\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.622955 0.622955 0.622955\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.429108 0.429108 0.429108\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449188 0.449188 0.449188\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525513 0.525513 0.525513\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.548065 0.548065 0.548065\n0.555939 0.555939 0.555939\n0.563995 0.563995 0.563995\n0.571899 0.571899 0.571899\n0.580231 0.580231 0.580231\n0.588623 0.588623 0.588623\n0.596954 0.596954 0.596954\n0.605560 0.605560 0.605560\n0.614258 0.614258 0.614258\n0.622742 0.622742 0.622742\n0.631500 0.631500 0.631500\n0.639984 0.639984 0.639984\n0.648773 0.648773 0.648773\n0.657471 0.657471 0.657471\n0.665924 0.665924 0.665924\n0.442291 0.442291 0.442291\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517944 0.517944 0.517944\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540100 0.540100 0.540100\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.563538 0.563538 0.563538\n0.571686 0.571686 0.571686\n0.580017 0.580017 0.580017\n0.588196 0.588196 0.588196\n0.596741 0.596741 0.596741\n0.605347 0.605347 0.605347\n0.613770 0.613770 0.613770\n0.622528 0.622528 0.622528\n0.631256 0.631256 0.631256\n0.639801 0.639801 0.639801\n0.648529 0.648529 0.648529\n0.657074 0.657074 0.657074\n0.665680 0.665680 0.665680\n0.674347 0.674347 0.674347\n0.682648 0.682648 0.682648\n0.455444 0.455444 0.455444\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532471 0.532471 0.532471\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.579590 0.579590 0.579590\n0.588013 0.588013 0.588013\n0.596527 0.596527 0.596527\n0.604919 0.604919 0.604919\n0.613586 0.613586 0.613586\n0.622284 0.622284 0.622284\n0.630829 0.630829 0.630829\n0.639557 0.639557 0.639557\n0.648132 0.648132 0.648132\n0.656830 0.656830 0.656830\n0.665497 0.665497 0.665497\n0.673889 0.673889 0.673889\n0.682465 0.682465 0.682465\n0.690887 0.690887 0.690887\n0.699036 0.699036 0.699036\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547272 0.547272 0.547272\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.596100 0.596100 0.596100\n0.604675 0.604675 0.604675\n0.613342 0.613342 0.613342\n0.621857 0.621857 0.621857\n0.630615 0.630615 0.630615\n0.639374 0.639374 0.639374\n0.647888 0.647888 0.647888\n0.656616 0.656616 0.656616\n0.665039 0.665039 0.665039\n0.673706 0.673706 0.673706\n0.682251 0.682251 0.682251\n0.690491 0.690491 0.690491\n0.698822 0.698822 0.698822\n0.707062 0.707062 0.707062\n0.714966 0.714966 0.714966\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.612946 0.612946 0.612946\n0.621643 0.621643 0.621643\n0.630371 0.630371 0.630371\n0.638916 0.638916 0.638916\n0.647675 0.647675 0.647675\n0.656158 0.656158 0.656158\n0.664856 0.664856 0.664856\n0.673462 0.673462 0.673462\n0.681793 0.681793 0.681793\n0.690277 0.690277 0.690277\n0.698608 0.698608 0.698608\n0.706665 0.706665 0.706665\n0.714783 0.714783 0.714783\n0.722717 0.722717 0.722717\n0.730316 0.730316 0.730316\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554535 0.554535 0.554535\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.629944 0.629944 0.629944\n0.638702 0.638702 0.638702\n0.647430 0.647430 0.647430\n0.655914 0.655914 0.655914\n0.664612 0.664612 0.664612\n0.673065 0.673065 0.673065\n0.681610 0.681610 0.681610\n0.690063 0.690063 0.690063\n0.698212 0.698212 0.698212\n0.706451 0.706451 0.706451\n0.714569 0.714569 0.714569\n0.722351 0.722351 0.722351\n0.730164 0.730164 0.730164\n0.737793 0.737793 0.737793\n0.745026 0.745026 0.745026\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.647003 0.647003 0.647003\n0.655731 0.655731 0.655731\n0.664215 0.664215 0.664215\n0.672821 0.672821 0.672821\n0.681366 0.681366 0.681366\n0.689667 0.689667 0.689667\n0.697998 0.697998 0.697998\n0.706238 0.706238 0.706238\n0.714142 0.714142 0.714142\n0.722107 0.722107 0.722107\n0.729919 0.729919 0.729919\n0.737396 0.737396 0.737396\n0.744843 0.744843 0.744843\n0.751923 0.751923 0.751923\n0.758972 0.758972 0.758972\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.561951 0.561951 0.561951\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655518 0.655518 0.655518\n0.664001 0.664001 0.664001\n0.672607 0.672607 0.672607\n0.680969 0.680969 0.680969\n0.689423 0.689423 0.689423\n0.697784 0.697784 0.697784\n0.705841 0.705841 0.705841\n0.713959 0.713959 0.713959\n0.721924 0.721924 0.721924\n0.729553 0.729553 0.729553\n0.737213 0.737213 0.737213\n0.744690 0.744690 0.744690\n0.751740 0.751740 0.751740\n0.758850 0.758850 0.758850\n0.765533 0.765533 0.765533\n0.772125 0.772125 0.772125\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672150 0.672150 0.672150\n0.680756 0.680756 0.680756\n0.689209 0.689209 0.689209\n0.697388 0.697388 0.697388\n0.705627 0.705627 0.705627\n0.713776 0.713776 0.713776\n0.721527 0.721527 0.721527\n0.729370 0.729370 0.729370\n0.737000 0.737000 0.737000\n0.744293 0.744293 0.744293\n0.751556 0.751556 0.751556\n0.758453 0.758453 0.758453\n0.765350 0.765350 0.765350\n0.771973 0.771973 0.771973\n0.778229 0.778229 0.778229\n0.784424 0.784424 0.784424\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569672 0.569672 0.569672\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.663330 0.663330 0.663330\n0.671936 0.671936 0.671936\n0.680511 0.680511 0.680511\n0.688812 0.688812 0.688812\n0.697205 0.697205 0.697205\n0.705414 0.705414 0.705414\n0.713348 0.713348 0.713348\n0.721344 0.721344 0.721344\n0.729126 0.729126 0.729126\n0.736633 0.736633 0.736633\n0.744110 0.744110 0.744110\n0.751373 0.751373 0.751373\n0.758301 0.758301 0.758301\n0.765167 0.765167 0.765167\n0.771667 0.771667 0.771667\n0.778076 0.778076 0.778076\n0.784271 0.784271 0.784271\n0.790039 0.790039 0.790039\n0.795715 0.795715 0.795715\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.671753 0.671753 0.671753\n0.680084 0.680084 0.680084\n0.688568 0.688568 0.688568\n0.696991 0.696991 0.696991\n0.705017 0.705017 0.705017\n0.713165 0.713165 0.713165\n0.721130 0.721130 0.721130\n0.728760 0.728760 0.728760\n0.736450 0.736450 0.736450\n0.743927 0.743927 0.743927\n0.751038 0.751038 0.751038\n0.758118 0.758118 0.758118\n0.764832 0.764832 0.764832\n0.771515 0.771515 0.771515\n0.777924 0.777924 0.777924\n0.783966 0.783966 0.783966\n0.789886 0.789886 0.789886\n0.795593 0.795593 0.795593\n0.800873 0.800873 0.800873\n0.806061 0.806061 0.806061\n0.093750 0.093750 0.093750\n0.099365 0.099365 0.099365\n0.105133 0.105133 0.105133\n0.111328 0.111328 0.111328\n0.117859 0.117859 0.117859\n0.124634 0.124634 0.124634\n0.131927 0.131927 0.131927\n0.139435 0.139435 0.139435\n0.147614 0.147614 0.147614\n0.156281 0.156281 0.156281\n0.165222 0.165222 0.165222\n0.174805 0.174805 0.174805\n0.184753 0.184753 0.184753\n0.194763 0.194763 0.194763\n0.205109 0.205109 0.205109\n0.215546 0.215546 0.215546\n0.225647 0.225647 0.225647\n0.235840 0.235840 0.235840\n0.245636 0.245636 0.245636\n0.255463 0.255463 0.255463\n0.265106 0.265106 0.265106\n0.274323 0.274323 0.274323\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343109 0.343109 0.343109\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.104950 0.104950 0.104950\n0.111145 0.111145 0.111145\n0.117523 0.117523 0.117523\n0.124420 0.124420 0.124420\n0.131531 0.131531 0.131531\n0.139221 0.139221 0.139221\n0.147400 0.147400 0.147400\n0.155792 0.155792 0.155792\n0.164978 0.164978 0.164978\n0.174591 0.174591 0.174591\n0.184265 0.184265 0.184265\n0.194489 0.194489 0.194489\n0.204865 0.204865 0.204865\n0.215027 0.215027 0.215027\n0.225372 0.225372 0.225372\n0.235321 0.235321 0.235321\n0.245361 0.245361 0.245361\n0.255219 0.255219 0.255219\n0.264618 0.264618 0.264618\n0.274109 0.274109 0.274109\n0.283417 0.283417 0.283417\n0.292328 0.292328 0.292328\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.334808 0.334808 0.334808\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.117340 0.117340 0.117340\n0.124268 0.124268 0.124268\n0.131348 0.131348 0.131348\n0.139038 0.139038 0.139038\n0.146973 0.146973 0.146973\n0.155609 0.155609 0.155609\n0.164734 0.164734 0.164734\n0.174072 0.174072 0.174072\n0.184021 0.184021 0.184021\n0.194244 0.194244 0.194244\n0.204346 0.204346 0.204346\n0.214752 0.214752 0.214752\n0.225128 0.225128 0.225128\n0.235077 0.235077 0.235077\n0.245117 0.245117 0.245117\n0.254730 0.254730 0.254730\n0.264404 0.264404 0.264404\n0.273895 0.273895 0.273895\n0.282990 0.282990 0.282990\n0.292114 0.292114 0.292114\n0.301056 0.301056 0.301056\n0.309601 0.309601 0.309601\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.131134 0.131134 0.131134\n0.138641 0.138641 0.138641\n0.146759 0.146759 0.146759\n0.155396 0.155396 0.155396\n0.164246 0.164246 0.164246\n0.173828 0.173828 0.173828\n0.183777 0.183777 0.183777\n0.193695 0.193695 0.193695\n0.204102 0.204102 0.204102\n0.214508 0.214508 0.214508\n0.224609 0.224609 0.224609\n0.234833 0.234833 0.234833\n0.244598 0.244598 0.244598\n0.254456 0.254456 0.254456\n0.264160 0.264160 0.264160\n0.273407 0.273407 0.273407\n0.282745 0.282745 0.282745\n0.291870 0.291870 0.291870\n0.300598 0.300598 0.300598\n0.309357 0.309357 0.309357\n0.317932 0.317932 0.317932\n0.326172 0.326172 0.326172\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.146576 0.146576 0.146576\n0.154907 0.154907 0.154907\n0.164001 0.164001 0.164001\n0.173584 0.173584 0.173584\n0.183289 0.183289 0.183289\n0.193451 0.193451 0.193451\n0.203827 0.203827 0.203827\n0.213989 0.213989 0.213989\n0.224335 0.224335 0.224335\n0.234558 0.234558 0.234558\n0.244354 0.244354 0.244354\n0.254211 0.254211 0.254211\n0.263672 0.263672 0.263672\n0.273193 0.273193 0.273193\n0.282501 0.282501 0.282501\n0.291412 0.291412 0.291412\n0.300385 0.300385 0.300385\n0.309143 0.309143 0.309143\n0.317535 0.317535 0.317535\n0.325958 0.325958 0.325958\n0.334167 0.334167 0.334167\n0.342072 0.342072 0.342072\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.163788 0.163788 0.163788\n0.173096 0.173096 0.173096\n0.182983 0.182983 0.182983\n0.193207 0.193207 0.193207\n0.203308 0.203308 0.203308\n0.213745 0.213745 0.213745\n0.224091 0.224091 0.224091\n0.234070 0.234070 0.234070\n0.244110 0.244110 0.244110\n0.253723 0.253723 0.253723\n0.263428 0.263428 0.263428\n0.272949 0.272949 0.272949\n0.282043 0.282043 0.282043\n0.291199 0.291199 0.291199\n0.300140 0.300140 0.300140\n0.308716 0.308716 0.308716\n0.317291 0.317291 0.317291\n0.325745 0.325745 0.325745\n0.333801 0.333801 0.333801\n0.341858 0.341858 0.341858\n0.349823 0.349823 0.349823\n0.357391 0.357391 0.357391\n0.365051 0.365051 0.365051\n0.372314 0.372314 0.372314\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.182739 0.182739 0.182739\n0.192657 0.192657 0.192657\n0.203033 0.203033 0.203033\n0.213470 0.213470 0.213470\n0.223572 0.223572 0.223572\n0.233826 0.233826 0.233826\n0.243866 0.243866 0.243866\n0.253479 0.253479 0.253479\n0.263184 0.263184 0.263184\n0.272491 0.272491 0.272491\n0.281830 0.281830 0.281830\n0.290985 0.290985 0.290985\n0.299713 0.299713 0.299713\n0.308502 0.308502 0.308502\n0.317108 0.317108 0.317108\n0.325317 0.325317 0.325317\n0.333588 0.333588 0.333588\n0.341675 0.341675 0.341675\n0.349396 0.349396 0.349396\n0.357208 0.357208 0.357208\n0.364655 0.364655 0.364655\n0.372192 0.372192 0.372192\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441437 0.441437 0.441437\n0.202789 0.202789 0.202789\n0.212952 0.212952 0.212952\n0.223328 0.223328 0.223328\n0.233551 0.233551 0.233551\n0.243378 0.243378 0.243378\n0.253265 0.253265 0.253265\n0.262726 0.262726 0.262726\n0.272247 0.272247 0.272247\n0.281586 0.281586 0.281586\n0.290527 0.290527 0.290527\n0.299500 0.299500 0.299500\n0.308289 0.308289 0.308289\n0.316681 0.316681 0.316681\n0.325104 0.325104 0.325104\n0.333374 0.333374 0.333374\n0.341278 0.341278 0.341278\n0.349213 0.349213 0.349213\n0.356995 0.356995 0.356995\n0.364471 0.364471 0.364471\n0.371979 0.371979 0.371979\n0.379181 0.379181 0.379181\n0.386444 0.386444 0.386444\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454590 0.454590 0.454590\n0.223053 0.223053 0.223053\n0.233032 0.233032 0.233032\n0.243103 0.243103 0.243103\n0.253021 0.253021 0.253021\n0.262482 0.262482 0.262482\n0.272003 0.272003 0.272003\n0.281097 0.281097 0.281097\n0.290283 0.290283 0.290283\n0.299255 0.299255 0.299255\n0.307861 0.307861 0.307861\n0.316467 0.316467 0.316467\n0.324890 0.324890 0.324890\n0.332977 0.332977 0.332977\n0.341064 0.341064 0.341064\n0.349030 0.349030 0.349030\n0.356598 0.356598 0.356598\n0.364258 0.364258 0.364258\n0.371613 0.371613 0.371613\n0.378967 0.378967 0.378967\n0.386261 0.386261 0.386261\n0.393250 0.393250 0.393250\n0.400360 0.400360 0.400360\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447693 0.447693 0.447693\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467834 0.467834 0.467834\n0.242828 0.242828 0.242828\n0.252502 0.252502 0.252502\n0.262238 0.262238 0.262238\n0.271545 0.271545 0.271545\n0.280884 0.280884 0.280884\n0.290039 0.290039 0.290039\n0.298828 0.298828 0.298828\n0.307617 0.307617 0.307617\n0.316254 0.316254 0.316254\n0.324493 0.324493 0.324493\n0.332764 0.332764 0.332764\n0.340881 0.340881 0.340881\n0.348633 0.348633 0.348633\n0.356445 0.356445 0.356445\n0.363892 0.363892 0.363892\n0.371399 0.371399 0.371399\n0.378815 0.378815 0.378815\n0.385925 0.385925 0.385925\n0.393097 0.393097 0.393097\n0.400146 0.400146 0.400146\n0.406982 0.406982 0.406982\n0.413879 0.413879 0.413879\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.460846 0.460846 0.460846\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.261993 0.261993 0.261993\n0.271301 0.271301 0.271301\n0.280670 0.280670 0.280670\n0.289612 0.289612 0.289612\n0.298584 0.298584 0.298584\n0.307434 0.307434 0.307434\n0.315826 0.315826 0.315826\n0.324280 0.324280 0.324280\n0.332581 0.332581 0.332581\n0.340485 0.340485 0.340485\n0.348419 0.348419 0.348419\n0.356232 0.356232 0.356232\n0.363708 0.363708 0.363708\n0.371246 0.371246 0.371246\n0.378448 0.378448 0.378448\n0.385742 0.385742 0.385742\n0.392883 0.392883 0.392883\n0.399811 0.399811 0.399811\n0.406799 0.406799 0.406799\n0.413727 0.413727 0.413727\n0.420410 0.420410 0.420410\n0.427246 0.427246 0.427246\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.453949 0.453949 0.453949\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474121 0.474121 0.474121\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.280182 0.280182 0.280182\n0.289368 0.289368 0.289368\n0.298370 0.298370 0.298370\n0.306976 0.306976 0.306976\n0.315613 0.315613 0.315613\n0.324066 0.324066 0.324066\n0.332153 0.332153 0.332153\n0.340271 0.340271 0.340271\n0.348236 0.348236 0.348236\n0.355835 0.355835 0.355835\n0.363495 0.363495 0.363495\n0.370880 0.370880 0.370880\n0.378265 0.378265 0.378265\n0.385559 0.385559 0.385559\n0.392548 0.392548 0.392548\n0.399628 0.399628 0.399628\n0.406616 0.406616 0.406616\n0.413361 0.413361 0.413361\n0.420227 0.420227 0.420227\n0.427063 0.427063 0.427063\n0.433685 0.433685 0.433685\n0.440430 0.440430 0.440430\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467133 0.467133 0.467133\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.297943 0.297943 0.297943\n0.306763 0.306763 0.306763\n0.315399 0.315399 0.315399\n0.323639 0.323639 0.323639\n0.331940 0.331940 0.331940\n0.340088 0.340088 0.340088\n0.347870 0.347870 0.347870\n0.355682 0.355682 0.355682\n0.363312 0.363312 0.363312\n0.370667 0.370667 0.370667\n0.378082 0.378082 0.378082\n0.385162 0.385162 0.385162\n0.392365 0.392365 0.392365\n0.399445 0.399445 0.399445\n0.406281 0.406281 0.406281\n0.413208 0.413208 0.413208\n0.420074 0.420074 0.420074\n0.426727 0.426727 0.426727\n0.433502 0.433502 0.433502\n0.440277 0.440277 0.440277\n0.446838 0.446838 0.446838\n0.453613 0.453613 0.453613\n0.460175 0.460175 0.460175\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480499 0.480499 0.480499\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.314972 0.314972 0.314972\n0.323425 0.323425 0.323425\n0.331757 0.331757 0.331757\n0.339691 0.339691 0.339691\n0.347656 0.347656 0.347656\n0.355469 0.355469 0.355469\n0.362946 0.362946 0.362946\n0.370514 0.370514 0.370514\n0.377899 0.377899 0.377899\n0.385010 0.385010 0.385010\n0.392181 0.392181 0.392181\n0.399078 0.399078 0.399078\n0.406097 0.406097 0.406097\n0.413055 0.413055 0.413055\n0.419708 0.419708 0.419708\n0.426544 0.426544 0.426544\n0.433319 0.433319 0.433319\n0.439941 0.439941 0.439941\n0.446686 0.446686 0.446686\n0.453430 0.453430 0.453430\n0.460022 0.460022 0.460022\n0.466797 0.466797 0.466797\n0.473450 0.473450 0.473450\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.331329 0.331329 0.331329\n0.339478 0.339478 0.339478\n0.347443 0.347443 0.347443\n0.355072 0.355072 0.355072\n0.362762 0.362762 0.362762\n0.370300 0.370300 0.370300\n0.377502 0.377502 0.377502\n0.384827 0.384827 0.384827\n0.391846 0.391846 0.391846\n0.398926 0.398926 0.398926\n0.405914 0.405914 0.405914\n0.412689 0.412689 0.412689\n0.419556 0.419556 0.419556\n0.426392 0.426392 0.426392\n0.432983 0.432983 0.432983\n0.439758 0.439758 0.439758\n0.446503 0.446503 0.446503\n0.453064 0.453064 0.453064\n0.459869 0.459869 0.459869\n0.466461 0.466461 0.466461\n0.473297 0.473297 0.473297\n0.480164 0.480164 0.480164\n0.486908 0.486908 0.486908\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.544922 0.544922 0.544922\n0.552734 0.552734 0.552734\n0.347046 0.347046 0.347046\n0.354889 0.354889 0.354889\n0.362579 0.362579 0.362579\n0.369904 0.369904 0.369904\n0.377350 0.377350 0.377350\n0.384644 0.384644 0.384644\n0.391663 0.391663 0.391663\n0.398773 0.398773 0.398773\n0.405579 0.405579 0.405579\n0.412537 0.412537 0.412537\n0.419403 0.419403 0.419403\n0.426056 0.426056 0.426056\n0.432831 0.432831 0.432831\n0.439606 0.439606 0.439606\n0.446167 0.446167 0.446167\n0.452911 0.452911 0.452911\n0.459656 0.459656 0.459656\n0.466278 0.466278 0.466278\n0.473114 0.473114 0.473114\n0.479797 0.479797 0.479797\n0.486694 0.486694 0.486694\n0.493683 0.493683 0.493683\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560303 0.560303 0.560303\n0.568451 0.568451 0.568451\n0.362183 0.362183 0.362183\n0.369751 0.369751 0.369751\n0.377136 0.377136 0.377136\n0.384277 0.384277 0.384277\n0.391449 0.391449 0.391449\n0.398590 0.398590 0.398590\n0.405426 0.405426 0.405426\n0.412354 0.412354 0.412354\n0.419037 0.419037 0.419037\n0.425873 0.425873 0.425873\n0.432648 0.432648 0.432648\n0.439270 0.439270 0.439270\n0.446014 0.446014 0.446014\n0.452728 0.452728 0.452728\n0.459320 0.459320 0.459320\n0.466125 0.466125 0.466125\n0.472931 0.472931 0.472931\n0.479614 0.479614 0.479614\n0.486542 0.486542 0.486542\n0.493378 0.493378 0.493378\n0.500427 0.500427 0.500427\n0.507568 0.507568 0.507568\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576263 0.576263 0.576263\n0.584656 0.584656 0.584656\n0.376770 0.376770 0.376770\n0.384094 0.384094 0.384094\n0.391296 0.391296 0.391296\n0.398224 0.398224 0.398224\n0.405243 0.405243 0.405243\n0.412018 0.412018 0.412018\n0.418884 0.418884 0.418884\n0.425690 0.425690 0.425690\n0.432312 0.432312 0.432312\n0.439087 0.439087 0.439087\n0.445831 0.445831 0.445831\n0.452393 0.452393 0.452393\n0.459167 0.459167 0.459167\n0.465942 0.465942 0.465942\n0.472595 0.472595 0.472595\n0.479462 0.479462 0.479462\n0.486359 0.486359 0.486359\n0.493195 0.493195 0.493195\n0.500244 0.500244 0.500244\n0.507202 0.507202 0.507202\n0.514465 0.514465 0.514465\n0.521820 0.521820 0.521820\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.390961 0.390961 0.390961\n0.398010 0.398010 0.398010\n0.405060 0.405060 0.405060\n0.411804 0.411804 0.411804\n0.418732 0.418732 0.418732\n0.425385 0.425385 0.425385\n0.432159 0.432159 0.432159\n0.438904 0.438904 0.438904\n0.445496 0.445496 0.445496\n0.452271 0.452271 0.452271\n0.459015 0.459015 0.459015\n0.465607 0.465607 0.465607\n0.472412 0.472412 0.472412\n0.479279 0.479279 0.479279\n0.486023 0.486023 0.486023\n0.493011 0.493011 0.493011\n0.499878 0.499878 0.499878\n0.507050 0.507050 0.507050\n0.514282 0.514282 0.514282\n0.521423 0.521423 0.521423\n0.528870 0.528870 0.528870\n0.536438 0.536438 0.536438\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584015 0.584015 0.584015\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.404724 0.404724 0.404724\n0.411652 0.411652 0.411652\n0.418549 0.418549 0.418549\n0.425171 0.425171 0.425171\n0.431976 0.431976 0.431976\n0.438568 0.438568 0.438568\n0.445343 0.445343 0.445343\n0.452087 0.452087 0.452087\n0.458649 0.458649 0.458649\n0.465454 0.465454 0.465454\n0.472260 0.472260 0.472260\n0.478943 0.478943 0.478943\n0.485870 0.485870 0.485870\n0.492645 0.492645 0.492645\n0.499695 0.499695 0.499695\n0.506836 0.506836 0.506836\n0.513885 0.513885 0.513885\n0.521240 0.521240 0.521240\n0.528687 0.528687 0.528687\n0.536072 0.536072 0.536072\n0.543762 0.543762 0.543762\n0.551575 0.551575 0.551575\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.418182 0.418182 0.418182\n0.425018 0.425018 0.425018\n0.431641 0.431641 0.431641\n0.438385 0.438385 0.438385\n0.445160 0.445160 0.445160\n0.451752 0.451752 0.451752\n0.458496 0.458496 0.458496\n0.465271 0.465271 0.465271\n0.471893 0.471893 0.471893\n0.478760 0.478760 0.478760\n0.485687 0.485687 0.485687\n0.492493 0.492493 0.492493\n0.499512 0.499512 0.499512\n0.506500 0.506500 0.506500\n0.513702 0.513702 0.513702\n0.521057 0.521057 0.521057\n0.528320 0.528320 0.528320\n0.535858 0.535858 0.535858\n0.543579 0.543579 0.543579\n0.551178 0.551178 0.551178\n0.559113 0.559113 0.559113\n0.567200 0.567200 0.567200\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.591827 0.591827 0.591827\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.431488 0.431488 0.431488\n0.438263 0.438263 0.438263\n0.444824 0.444824 0.444824\n0.451569 0.451569 0.451569\n0.458313 0.458313 0.458313\n0.464935 0.464935 0.464935\n0.471741 0.471741 0.471741\n0.478607 0.478607 0.478607\n0.485321 0.485321 0.485321\n0.492310 0.492310 0.492310\n0.499329 0.499329 0.499329\n0.506317 0.506317 0.506317\n0.513519 0.513519 0.513519\n0.520660 0.520660 0.520660\n0.528137 0.528137 0.528137\n0.535706 0.535706 0.535706\n0.543182 0.543182 0.543182\n0.550995 0.550995 0.550995\n0.558929 0.558929 0.558929\n0.566803 0.566803 0.566803\n0.575012 0.575012 0.575012\n0.583374 0.583374 0.583374\n0.591614 0.591614 0.591614\n0.600159 0.600159 0.600159\n0.608582 0.608582 0.608582\n0.617279 0.617279 0.617279\n0.626038 0.626038 0.626038\n0.634521 0.634521 0.634521\n0.643311 0.643311 0.643311\n0.652039 0.652039 0.652039\n0.660522 0.660522 0.660522\n0.669159 0.669159 0.669159\n0.444641 0.444641 0.444641\n0.451416 0.451416 0.451416\n0.457977 0.457977 0.457977\n0.464752 0.464752 0.464752\n0.471588 0.471588 0.471588\n0.478241 0.478241 0.478241\n0.485138 0.485138 0.485138\n0.492126 0.492126 0.492126\n0.498993 0.498993 0.498993\n0.506134 0.506134 0.506134\n0.513184 0.513184 0.513184\n0.520508 0.520508 0.520508\n0.527954 0.527954 0.527954\n0.535339 0.535339 0.535339\n0.542999 0.542999 0.542999\n0.550781 0.550781 0.550781\n0.558563 0.558563 0.558563\n0.566589 0.566589 0.566589\n0.574799 0.574799 0.574799\n0.582947 0.582947 0.582947\n0.591400 0.591400 0.591400\n0.599731 0.599731 0.599731\n0.608368 0.608368 0.608368\n0.617065 0.617065 0.617065\n0.625580 0.625580 0.625580\n0.634308 0.634308 0.634308\n0.643066 0.643066 0.643066\n0.651611 0.651611 0.651611\n0.660309 0.660309 0.660309\n0.668945 0.668945 0.668945\n0.677338 0.677338 0.677338\n0.685822 0.685822 0.685822\n0.457825 0.457825 0.457825\n0.464600 0.464600 0.464600\n0.471222 0.471222 0.471222\n0.478088 0.478088 0.478088\n0.484985 0.484985 0.484985\n0.491760 0.491760 0.491760\n0.498840 0.498840 0.498840\n0.505951 0.505951 0.505951\n0.513000 0.513000 0.513000\n0.520325 0.520325 0.520325\n0.527557 0.527557 0.527557\n0.535126 0.535126 0.535126\n0.542786 0.542786 0.542786\n0.550385 0.550385 0.550385\n0.558319 0.558319 0.558319\n0.566376 0.566376 0.566376\n0.574402 0.574402 0.574402\n0.582703 0.582703 0.582703\n0.591187 0.591187 0.591187\n0.599518 0.599518 0.599518\n0.608154 0.608154 0.608154\n0.616638 0.616638 0.616638\n0.625336 0.625336 0.625336\n0.634125 0.634125 0.634125\n0.642670 0.642670 0.642670\n0.651367 0.651367 0.651367\n0.660095 0.660095 0.660095\n0.668518 0.668518 0.668518\n0.677094 0.677094 0.677094\n0.685638 0.685638 0.685638\n0.693817 0.693817 0.693817\n0.702118 0.702118 0.702118\n0.471069 0.471069 0.471069\n0.477936 0.477936 0.477936\n0.484650 0.484650 0.484650\n0.491608 0.491608 0.491608\n0.498627 0.498627 0.498627\n0.505615 0.505615 0.505615\n0.512817 0.512817 0.512817\n0.519958 0.519958 0.519958\n0.527374 0.527374 0.527374\n0.534943 0.534943 0.534943\n0.542389 0.542389 0.542389\n0.550201 0.550201 0.550201\n0.558136 0.558136 0.558136\n0.565979 0.565979 0.565979\n0.574188 0.574188 0.574188\n0.582520 0.582520 0.582520\n0.590759 0.590759 0.590759\n0.599304 0.599304 0.599304\n0.607941 0.607941 0.607941\n0.616394 0.616394 0.616394\n0.625153 0.625153 0.625153\n0.633667 0.633667 0.633667\n0.642426 0.642426 0.642426\n0.651154 0.651154 0.651154\n0.659637 0.659637 0.659637\n0.668304 0.668304 0.668304\n0.676880 0.676880 0.676880\n0.685211 0.685211 0.685211\n0.693634 0.693634 0.693634\n0.701721 0.701721 0.701721\n0.709900 0.709900 0.709900\n0.717957 0.717957 0.717957\n0.484467 0.484467 0.484467\n0.491425 0.491425 0.491425\n0.498291 0.498291 0.498291\n0.505432 0.505432 0.505432\n0.512634 0.512634 0.512634\n0.519775 0.519775 0.519775\n0.527191 0.527191 0.527191\n0.534546 0.534546 0.534546\n0.542206 0.542206 0.542206\n0.550018 0.550018 0.550018\n0.557709 0.557709 0.557709\n0.565765 0.565765 0.565765\n0.573975 0.573975 0.573975\n0.582092 0.582092 0.582092\n0.590546 0.590546 0.590546\n0.599091 0.599091 0.599091\n0.607513 0.607513 0.607513\n0.616211 0.616211 0.616211\n0.624695 0.624695 0.624695\n0.633453 0.633453 0.633453\n0.642181 0.642181 0.642181\n0.650726 0.650726 0.650726\n0.659424 0.659424 0.659424\n0.668091 0.668091 0.668091\n0.676483 0.676483 0.676483\n0.684998 0.684998 0.684998\n0.693420 0.693420 0.693420\n0.701508 0.701508 0.701508\n0.709686 0.709686 0.709686\n0.717560 0.717560 0.717560\n0.725464 0.725464 0.725464\n0.733215 0.733215 0.733215\n0.498077 0.498077 0.498077\n0.505219 0.505219 0.505219\n0.512268 0.512268 0.512268\n0.519592 0.519592 0.519592\n0.526825 0.526825 0.526825\n0.534363 0.534363 0.534363\n0.542023 0.542023 0.542023\n0.549622 0.549622 0.549622\n0.557526 0.557526 0.557526\n0.565582 0.565582 0.565582\n0.573578 0.573578 0.573578\n0.581909 0.581909 0.581909\n0.590332 0.590332 0.590332\n0.598663 0.598663 0.598663\n0.607269 0.607269 0.607269\n0.615784 0.615784 0.615784\n0.624481 0.624481 0.624481\n0.633240 0.633240 0.633240\n0.641785 0.641785 0.641785\n0.650513 0.650513 0.650513\n0.659210 0.659210 0.659210\n0.667664 0.667664 0.667664\n0.676300 0.676300 0.676300\n0.684753 0.684753 0.684753\n0.693024 0.693024 0.693024\n0.701324 0.701324 0.701324\n0.709503 0.709503 0.709503\n0.717377 0.717377 0.717377\n0.725250 0.725250 0.725250\n0.732819 0.732819 0.732819\n0.740387 0.740387 0.740387\n0.747742 0.747742 0.747742\n0.512085 0.512085 0.512085\n0.519379 0.519379 0.519379\n0.526642 0.526642 0.526642\n0.534180 0.534180 0.534180\n0.541656 0.541656 0.541656\n0.549408 0.549408 0.549408\n0.557343 0.557343 0.557343\n0.565186 0.565186 0.565186\n0.573364 0.573364 0.573364\n0.581696 0.581696 0.581696\n0.589905 0.589905 0.589905\n0.598450 0.598450 0.598450\n0.607056 0.607056 0.607056\n0.615540 0.615540 0.615540\n0.624237 0.624237 0.624237\n0.632812 0.632812 0.632812\n0.641541 0.641541 0.641541\n0.650299 0.650299 0.650299\n0.658783 0.658783 0.658783\n0.667450 0.667450 0.667450\n0.676025 0.676025 0.676025\n0.684357 0.684357 0.684357\n0.692810 0.692810 0.692810\n0.701111 0.701111 0.701111\n0.709076 0.709076 0.709076\n0.717163 0.717163 0.717163\n0.724854 0.724854 0.724854\n0.732605 0.732605 0.732605\n0.740173 0.740173 0.740173\n0.747406 0.747406 0.747406\n0.754608 0.754608 0.754608\n0.761566 0.761566 0.761566\n0.526428 0.526428 0.526428\n0.533783 0.533783 0.533783\n0.541443 0.541443 0.541443\n0.549225 0.549225 0.549225\n0.556946 0.556946 0.556946\n0.564972 0.564972 0.564972\n0.573151 0.573151 0.573151\n0.581268 0.581268 0.581268\n0.589691 0.589691 0.589691\n0.598236 0.598236 0.598236\n0.606628 0.606628 0.606628\n0.615295 0.615295 0.615295\n0.623840 0.623840 0.623840\n0.632568 0.632568 0.632568\n0.641296 0.641296 0.641296\n0.649841 0.649841 0.649841\n0.658569 0.658569 0.658569\n0.667206 0.667206 0.667206\n0.675629 0.675629 0.675629\n0.684143 0.684143 0.684143\n0.692566 0.692566 0.692566\n0.700684 0.700684 0.700684\n0.708862 0.708862 0.708862\n0.716949 0.716949 0.716949\n0.724670 0.724670 0.724670\n0.732422 0.732422 0.732422\n0.739807 0.739807 0.739807\n0.747223 0.747223 0.747223\n0.754425 0.754425 0.754425\n0.761230 0.761230 0.761230\n0.768036 0.768036 0.768036\n0.774567 0.774567 0.774567\n0.541260 0.541260 0.541260\n0.548828 0.548828 0.548828\n0.556732 0.556732 0.556732\n0.564758 0.564758 0.564758\n0.572754 0.572754 0.572754\n0.581024 0.581024 0.581024\n0.589478 0.589478 0.589478\n0.597809 0.597809 0.597809\n0.606445 0.606445 0.606445\n0.615112 0.615112 0.615112\n0.623596 0.623596 0.623596\n0.632355 0.632355 0.632355\n0.640869 0.640869 0.640869\n0.649628 0.649628 0.649628\n0.658356 0.658356 0.658356\n0.666779 0.666779 0.666779\n0.675385 0.675385 0.675385\n0.683960 0.683960 0.683960\n0.692139 0.692139 0.692139\n0.700470 0.700470 0.700470\n0.708679 0.708679 0.708679\n0.716553 0.716553 0.716553\n0.724457 0.724457 0.724457\n0.732056 0.732056 0.732056\n0.739624 0.739624 0.739624\n0.747040 0.747040 0.747040\n0.754059 0.754059 0.754059\n0.761047 0.761047 0.761047\n0.767853 0.767853 0.767853\n0.774231 0.774231 0.774231\n0.780579 0.780579 0.780579\n0.786652 0.786652 0.786652\n0.556519 0.556519 0.556519\n0.564362 0.564362 0.564362\n0.572540 0.572540 0.572540\n0.580841 0.580841 0.580841\n0.589081 0.589081 0.589081\n0.597595 0.597595 0.597595\n0.606201 0.606201 0.606201\n0.614655 0.614655 0.614655\n0.623383 0.623383 0.623383\n0.631897 0.631897 0.631897\n0.640656 0.640656 0.640656\n0.649414 0.649414 0.649414\n0.657898 0.657898 0.657898\n0.666565 0.666565 0.666565\n0.675201 0.675201 0.675201\n0.683502 0.683502 0.683502\n0.691956 0.691956 0.691956\n0.700287 0.700287 0.700287\n0.708282 0.708282 0.708282\n0.716339 0.716339 0.716339\n0.724304 0.724304 0.724304\n0.731842 0.731842 0.731842\n0.739471 0.739471 0.739471\n0.746674 0.746674 0.746674\n0.753906 0.753906 0.753906\n0.760895 0.760895 0.760895\n0.767548 0.767548 0.767548\n0.774078 0.774078 0.774078\n0.780396 0.780396 0.780396\n0.786346 0.786346 0.786346\n0.792206 0.792206 0.792206\n0.797791 0.797791 0.797791\n0.572327 0.572327 0.572327\n0.580414 0.580414 0.580414\n0.588837 0.588837 0.588837\n0.597382 0.597382 0.597382\n0.605774 0.605774 0.605774\n0.614441 0.614441 0.614441\n0.623169 0.623169 0.623169\n0.631683 0.631683 0.631683\n0.640472 0.640472 0.640472\n0.648987 0.648987 0.648987\n0.657684 0.657684 0.657684\n0.666351 0.666351 0.666351\n0.674744 0.674744 0.674744\n0.683319 0.683319 0.683319\n0.691742 0.691742 0.691742\n0.699890 0.699890 0.699890\n0.708069 0.708069 0.708069\n0.716156 0.716156 0.716156\n0.723907 0.723907 0.723907\n0.731659 0.731659 0.731659\n0.739075 0.739075 0.739075\n0.746490 0.746490 0.746490\n0.753693 0.753693 0.753693\n0.760559 0.760559 0.760559\n0.767395 0.767395 0.767395\n0.773926 0.773926 0.773926\n0.780121 0.780121 0.780121\n0.786224 0.786224 0.786224\n0.792084 0.792084 0.792084\n0.797516 0.797516 0.797516\n0.802856 0.802856 0.802856\n0.807800 0.807800 0.807800\n0.095795 0.095795 0.095795\n0.101379 0.101379 0.101379\n0.107391 0.107391 0.107391\n0.113586 0.113586 0.113586\n0.120239 0.120239 0.120239\n0.127289 0.127289 0.127289\n0.134583 0.134583 0.134583\n0.142426 0.142426 0.142426\n0.150787 0.150787 0.150787\n0.159454 0.159454 0.159454\n0.168762 0.168762 0.168762\n0.178253 0.178253 0.178253\n0.188324 0.188324 0.188324\n0.198639 0.198639 0.198639\n0.208771 0.208771 0.208771\n0.219177 0.219177 0.219177\n0.229462 0.229462 0.229462\n0.239349 0.239349 0.239349\n0.249329 0.249329 0.249329\n0.259094 0.259094 0.259094\n0.268463 0.268463 0.268463\n0.277863 0.277863 0.277863\n0.287109 0.287109 0.287109\n0.295898 0.295898 0.295898\n0.304810 0.304810 0.304810\n0.313263 0.313263 0.313263\n0.321747 0.321747 0.321747\n0.330109 0.330109 0.330109\n0.338043 0.338043 0.338043\n0.346069 0.346069 0.346069\n0.353912 0.353912 0.353912\n0.361420 0.361420 0.361420\n0.107117 0.107117 0.107117\n0.113403 0.113403 0.113403\n0.120056 0.120056 0.120056\n0.126923 0.126923 0.126923\n0.134369 0.134369 0.134369\n0.142242 0.142242 0.142242\n0.150360 0.150360 0.150360\n0.159180 0.159180 0.159180\n0.168518 0.168518 0.168518\n0.178009 0.178009 0.178009\n0.188080 0.188080 0.188080\n0.198120 0.198120 0.198120\n0.208527 0.208527 0.208527\n0.218933 0.218933 0.218933\n0.228973 0.228973 0.228973\n0.239136 0.239136 0.239136\n0.249084 0.249084 0.249084\n0.258606 0.258606 0.258606\n0.268219 0.268219 0.268219\n0.277618 0.277618 0.277618\n0.286652 0.286652 0.286652\n0.295715 0.295715 0.295715\n0.304352 0.304352 0.304352\n0.313049 0.313049 0.313049\n0.321564 0.321564 0.321564\n0.329712 0.329712 0.329712\n0.337860 0.337860 0.337860\n0.345886 0.345886 0.345886\n0.353516 0.353516 0.353516\n0.361267 0.361267 0.361267\n0.368805 0.368805 0.368805\n0.376068 0.376068 0.376068\n0.119720 0.119720 0.119720\n0.126740 0.126740 0.126740\n0.134186 0.134186 0.134186\n0.141846 0.141846 0.141846\n0.150146 0.150146 0.150146\n0.158966 0.158966 0.158966\n0.168060 0.168060 0.168060\n0.177734 0.177734 0.177734\n0.187805 0.187805 0.187805\n0.197845 0.197845 0.197845\n0.208252 0.208252 0.208252\n0.218414 0.218414 0.218414\n0.228699 0.228699 0.228699\n0.238892 0.238892 0.238892\n0.248596 0.248596 0.248596\n0.258362 0.258362 0.258362\n0.267975 0.267975 0.267975\n0.277161 0.277161 0.277161\n0.286407 0.286407 0.286407\n0.295471 0.295471 0.295471\n0.304138 0.304138 0.304138\n0.312836 0.312836 0.312836\n0.321167 0.321167 0.321167\n0.329468 0.329468 0.329468\n0.337677 0.337677 0.337677\n0.345459 0.345459 0.345459\n0.353363 0.353363 0.353363\n0.361053 0.361053 0.361053\n0.368408 0.368408 0.368408\n0.375854 0.375854 0.375854\n0.383179 0.383179 0.383179\n0.390228 0.390228 0.390228\n0.133789 0.133789 0.133789\n0.141632 0.141632 0.141632\n0.149963 0.149963 0.149963\n0.158508 0.158508 0.158508\n0.167816 0.167816 0.167816\n0.177490 0.177490 0.177490\n0.187317 0.187317 0.187317\n0.197601 0.197601 0.197601\n0.207733 0.207733 0.207733\n0.218140 0.218140 0.218140\n0.228455 0.228455 0.228455\n0.238373 0.238373 0.238373\n0.248352 0.248352 0.248352\n0.258118 0.258118 0.258118\n0.267517 0.267517 0.267517\n0.276917 0.276917 0.276917\n0.286194 0.286194 0.286194\n0.295013 0.295013 0.295013\n0.303925 0.303925 0.303925\n0.312378 0.312378 0.312378\n0.320923 0.320923 0.320923\n0.329285 0.329285 0.329285\n0.337250 0.337250 0.337250\n0.345306 0.345306 0.345306\n0.353149 0.353149 0.353149\n0.360657 0.360657 0.360657\n0.368225 0.368225 0.368225\n0.375702 0.375702 0.375702\n0.382843 0.382843 0.382843\n0.390045 0.390045 0.390045\n0.396973 0.396973 0.396973\n0.403992 0.403992 0.403992\n0.149506 0.149506 0.149506\n0.158264 0.158264 0.158264\n0.167572 0.167572 0.167572\n0.177032 0.177032 0.177032\n0.187073 0.187073 0.187073\n0.197357 0.197357 0.197357\n0.207458 0.207458 0.207458\n0.217896 0.217896 0.217896\n0.227966 0.227966 0.227966\n0.238098 0.238098 0.238098\n0.248108 0.248108 0.248108\n0.257629 0.257629 0.257629\n0.267273 0.267273 0.267273\n0.276703 0.276703 0.276703\n0.285736 0.285736 0.285736\n0.294830 0.294830 0.294830\n0.303680 0.303680 0.303680\n0.312195 0.312195 0.312195\n0.320709 0.320709 0.320709\n0.328827 0.328827 0.328827\n0.337036 0.337036 0.337036\n0.345062 0.345062 0.345062\n0.352722 0.352722 0.352722\n0.360474 0.360474 0.360474\n0.368042 0.368042 0.368042\n0.375336 0.375336 0.375336\n0.382660 0.382660 0.382660\n0.389862 0.389862 0.389862\n0.396820 0.396820 0.396820\n0.403839 0.403839 0.403839\n0.410614 0.410614 0.410614\n0.417480 0.417480 0.417480\n0.167114 0.167114 0.167114\n0.176788 0.176788 0.176788\n0.186829 0.186829 0.186829\n0.196808 0.196808 0.196808\n0.207214 0.207214 0.207214\n0.217346 0.217346 0.217346\n0.227692 0.227692 0.227692\n0.237854 0.237854 0.237854\n0.247589 0.247589 0.247589\n0.257385 0.257385 0.257385\n0.267059 0.267059 0.267059\n0.276245 0.276245 0.276245\n0.285492 0.285492 0.285492\n0.294586 0.294586 0.294586\n0.303253 0.303253 0.303253\n0.311981 0.311981 0.311981\n0.320251 0.320251 0.320251\n0.328674 0.328674 0.328674\n0.336853 0.336853 0.336853\n0.344666 0.344666 0.344666\n0.352539 0.352539 0.352539\n0.360260 0.360260 0.360260\n0.367676 0.367676 0.367676\n0.375122 0.375122 0.375122\n0.382446 0.382446 0.382446\n0.389526 0.389526 0.389526\n0.396637 0.396637 0.396637\n0.403503 0.403503 0.403503\n0.410461 0.410461 0.410461\n0.417328 0.417328 0.417328\n0.424011 0.424011 0.424011\n0.430817 0.430817 0.430817\n0.186310 0.186310 0.186310\n0.196564 0.196564 0.196564\n0.206940 0.206940 0.206940\n0.217102 0.217102 0.217102\n0.227448 0.227448 0.227448\n0.237335 0.237335 0.237335\n0.247314 0.247314 0.247314\n0.257172 0.257172 0.257172\n0.266541 0.266541 0.266541\n0.276001 0.276001 0.276001\n0.285248 0.285248 0.285248\n0.294128 0.294128 0.294128\n0.303009 0.303009 0.303009\n0.311737 0.311737 0.311737\n0.320099 0.320099 0.320099\n0.328461 0.328461 0.328461\n0.336426 0.336426 0.336426\n0.344482 0.344482 0.344482\n0.352325 0.352325 0.352325\n0.359894 0.359894 0.359894\n0.367462 0.367462 0.367462\n0.374969 0.374969 0.374969\n0.382080 0.382080 0.382080\n0.389313 0.389313 0.389313\n0.396454 0.396454 0.396454\n0.403320 0.403320 0.403320\n0.410278 0.410278 0.410278\n0.416962 0.416962 0.416962\n0.423828 0.423828 0.423828\n0.430603 0.430603 0.430603\n0.437225 0.437225 0.437225\n0.443970 0.443970 0.443970\n0.206421 0.206421 0.206421\n0.216827 0.216827 0.216827\n0.226929 0.226929 0.226929\n0.237091 0.237091 0.237091\n0.247070 0.247070 0.247070\n0.256653 0.256653 0.256653\n0.266296 0.266296 0.266296\n0.275757 0.275757 0.275757\n0.284821 0.284821 0.284821\n0.293915 0.293915 0.293915\n0.302795 0.302795 0.302795\n0.311310 0.311310 0.311310\n0.319855 0.319855 0.319855\n0.328033 0.328033 0.328033\n0.336243 0.336243 0.336243\n0.344269 0.344269 0.344269\n0.351959 0.351959 0.351959\n0.359711 0.359711 0.359711\n0.367310 0.367310 0.367310\n0.374573 0.374573 0.374573\n0.381927 0.381927 0.381927\n0.389160 0.389160 0.389160\n0.396088 0.396088 0.396088\n0.403168 0.403168 0.403168\n0.409943 0.409943 0.409943\n0.416840 0.416840 0.416840\n0.423676 0.423676 0.423676\n0.430298 0.430298 0.430298\n0.437073 0.437073 0.437073\n0.443817 0.443817 0.443817\n0.450378 0.450378 0.450378\n0.457123 0.457123 0.457123\n0.226685 0.226685 0.226685\n0.236847 0.236847 0.236847\n0.246582 0.246582 0.246582\n0.256409 0.256409 0.256409\n0.266052 0.266052 0.266052\n0.275299 0.275299 0.275299\n0.284576 0.284576 0.284576\n0.293671 0.293671 0.293671\n0.302368 0.302368 0.302368\n0.311066 0.311066 0.311066\n0.319641 0.319641 0.319641\n0.327789 0.327789 0.327789\n0.336029 0.336029 0.336029\n0.343872 0.343872 0.343872\n0.351776 0.351776 0.351776\n0.359497 0.359497 0.359497\n0.366943 0.366943 0.366943\n0.374390 0.374390 0.374390\n0.381744 0.381744 0.381744\n0.388794 0.388794 0.388794\n0.395935 0.395935 0.395935\n0.402954 0.402954 0.402954\n0.409760 0.409760 0.409760\n0.416656 0.416656 0.416656\n0.423340 0.423340 0.423340\n0.430115 0.430115 0.430115\n0.436890 0.436890 0.436890\n0.443451 0.443451 0.443451\n0.450226 0.450226 0.450226\n0.456970 0.456970 0.456970\n0.463562 0.463562 0.463562\n0.470367 0.470367 0.470367\n0.246338 0.246338 0.246338\n0.256165 0.256165 0.256165\n0.265594 0.265594 0.265594\n0.275085 0.275085 0.275085\n0.284332 0.284332 0.284332\n0.293213 0.293213 0.293213\n0.302155 0.302155 0.302155\n0.310913 0.310913 0.310913\n0.319214 0.319214 0.319214\n0.327637 0.327637 0.327637\n0.335632 0.335632 0.335632\n0.343689 0.343689 0.343689\n0.351562 0.351562 0.351562\n0.359131 0.359131 0.359131\n0.366730 0.366730 0.366730\n0.374207 0.374207 0.374207\n0.381378 0.381378 0.381378\n0.388611 0.388611 0.388611\n0.395752 0.395752 0.395752\n0.402618 0.402618 0.402618\n0.409576 0.409576 0.409576\n0.416473 0.416473 0.416473\n0.423126 0.423126 0.423126\n0.429932 0.429932 0.429932\n0.436554 0.436554 0.436554\n0.443298 0.443298 0.443298\n0.450073 0.450073 0.450073\n0.456635 0.456635 0.456635\n0.463409 0.463409 0.463409\n0.470184 0.470184 0.470184\n0.476868 0.476868 0.476868\n0.483734 0.483734 0.483734\n0.265350 0.265350 0.265350\n0.274841 0.274841 0.274841\n0.283905 0.283905 0.283905\n0.292999 0.292999 0.292999\n0.301941 0.301941 0.301941\n0.310455 0.310455 0.310455\n0.319000 0.319000 0.319000\n0.327393 0.327393 0.327393\n0.335419 0.335419 0.335419\n0.343506 0.343506 0.343506\n0.351166 0.351166 0.351166\n0.358948 0.358948 0.358948\n0.366547 0.366547 0.366547\n0.373840 0.373840 0.373840\n0.381195 0.381195 0.381195\n0.388428 0.388428 0.388428\n0.395416 0.395416 0.395416\n0.402435 0.402435 0.402435\n0.409424 0.409424 0.409424\n0.416138 0.416138 0.416138\n0.422974 0.422974 0.422974\n0.429596 0.429596 0.429596\n0.436371 0.436371 0.436371\n0.443146 0.443146 0.443146\n0.449707 0.449707 0.449707\n0.456451 0.456451 0.456451\n0.463226 0.463226 0.463226\n0.469879 0.469879 0.469879\n0.476685 0.476685 0.476685\n0.483612 0.483612 0.483612\n0.490387 0.490387 0.490387\n0.497406 0.497406 0.497406\n0.283661 0.283661 0.283661\n0.292786 0.292786 0.292786\n0.301483 0.301483 0.301483\n0.310242 0.310242 0.310242\n0.318817 0.318817 0.318817\n0.326996 0.326996 0.326996\n0.335205 0.335205 0.335205\n0.343109 0.343109 0.343109\n0.350983 0.350983 0.350983\n0.358734 0.358734 0.358734\n0.366180 0.366180 0.366180\n0.373657 0.373657 0.373657\n0.381012 0.381012 0.381012\n0.388062 0.388062 0.388062\n0.395203 0.395203 0.395203\n0.402252 0.402252 0.402252\n0.409058 0.409058 0.409058\n0.415955 0.415955 0.415955\n0.422791 0.422791 0.422791\n0.429443 0.429443 0.429443\n0.436218 0.436218 0.436218\n0.442780 0.442780 0.442780\n0.449554 0.449554 0.449554\n0.456299 0.456299 0.456299\n0.462921 0.462921 0.462921\n0.469696 0.469696 0.469696\n0.476532 0.476532 0.476532\n0.483246 0.483246 0.483246\n0.490173 0.490173 0.490173\n0.497223 0.497223 0.497223\n0.504181 0.504181 0.504181\n0.511353 0.511353 0.511353\n0.301270 0.301270 0.301270\n0.310028 0.310028 0.310028\n0.318390 0.318390 0.318390\n0.326782 0.326782 0.326782\n0.335022 0.335022 0.335022\n0.342865 0.342865 0.342865\n0.350800 0.350800 0.350800\n0.358368 0.358368 0.358368\n0.365967 0.365967 0.365967\n0.373474 0.373474 0.373474\n0.380615 0.380615 0.380615\n0.387878 0.387878 0.387878\n0.395020 0.395020 0.395020\n0.401917 0.401917 0.401917\n0.408905 0.408905 0.408905\n0.415802 0.415802 0.415802\n0.422455 0.422455 0.422455\n0.429260 0.429260 0.429260\n0.435883 0.435883 0.435883\n0.442627 0.442627 0.442627\n0.449371 0.449371 0.449371\n0.455963 0.455963 0.455963\n0.462708 0.462708 0.462708\n0.469543 0.469543 0.469543\n0.476196 0.476196 0.476196\n0.483063 0.483063 0.483063\n0.490051 0.490051 0.490051\n0.496887 0.496887 0.496887\n0.503967 0.503967 0.503967\n0.511017 0.511017 0.511017\n0.518280 0.518280 0.518280\n0.525696 0.525696 0.525696\n0.318176 0.318176 0.318176\n0.326599 0.326599 0.326599\n0.334625 0.334625 0.334625\n0.342682 0.342682 0.342682\n0.350372 0.350372 0.350372\n0.358154 0.358154 0.358154\n0.365784 0.365784 0.365784\n0.373077 0.373077 0.373077\n0.380463 0.380463 0.380463\n0.387695 0.387695 0.387695\n0.394684 0.394684 0.394684\n0.401764 0.401764 0.401764\n0.408722 0.408722 0.408722\n0.415436 0.415436 0.415436\n0.422272 0.422272 0.422272\n0.428925 0.428925 0.428925\n0.435699 0.435699 0.435699\n0.442444 0.442444 0.442444\n0.449036 0.449036 0.449036\n0.455780 0.455780 0.455780\n0.462555 0.462555 0.462555\n0.469177 0.469177 0.469177\n0.476013 0.476013 0.476013\n0.482910 0.482910 0.482910\n0.489685 0.489685 0.489685\n0.496704 0.496704 0.496704\n0.503784 0.503784 0.503784\n0.510803 0.510803 0.510803\n0.518127 0.518127 0.518127\n0.525330 0.525330 0.525330\n0.532867 0.532867 0.532867\n0.540466 0.540466 0.540466\n0.334412 0.334412 0.334412\n0.342468 0.342468 0.342468\n0.350189 0.350189 0.350189\n0.357971 0.357971 0.357971\n0.365417 0.365417 0.365417\n0.372894 0.372894 0.372894\n0.380280 0.380280 0.380280\n0.387360 0.387360 0.387360\n0.394501 0.394501 0.394501\n0.401550 0.401550 0.401550\n0.408386 0.408386 0.408386\n0.415283 0.415283 0.415283\n0.422119 0.422119 0.422119\n0.428772 0.428772 0.428772\n0.435516 0.435516 0.435516\n0.442108 0.442108 0.442108\n0.448883 0.448883 0.448883\n0.455627 0.455627 0.455627\n0.462219 0.462219 0.462219\n0.469025 0.469025 0.469025\n0.475861 0.475861 0.475861\n0.482544 0.482544 0.482544\n0.489502 0.489502 0.489502\n0.496521 0.496521 0.496521\n0.503418 0.503418 0.503418\n0.510651 0.510651 0.510651\n0.517731 0.517731 0.517731\n0.525146 0.525146 0.525146\n0.532654 0.532654 0.532654\n0.540100 0.540100 0.540100\n0.547821 0.547821 0.547821\n0.555725 0.555725 0.555725\n0.349976 0.349976 0.349976\n0.357574 0.357574 0.357574\n0.365204 0.365204 0.365204\n0.372711 0.372711 0.372711\n0.379883 0.379883 0.379883\n0.387177 0.387177 0.387177\n0.394318 0.394318 0.394318\n0.401215 0.401215 0.401215\n0.408203 0.408203 0.408203\n0.415100 0.415100 0.415100\n0.421753 0.421753 0.421753\n0.428589 0.428589 0.428589\n0.435181 0.435181 0.435181\n0.441956 0.441956 0.441956\n0.448700 0.448700 0.448700\n0.455292 0.455292 0.455292\n0.462036 0.462036 0.462036\n0.468842 0.468842 0.468842\n0.475494 0.475494 0.475494\n0.482391 0.482391 0.482391\n0.489349 0.489349 0.489349\n0.496155 0.496155 0.496155\n0.503265 0.503265 0.503265\n0.510437 0.510437 0.510437\n0.517548 0.517548 0.517548\n0.524963 0.524963 0.524963\n0.532257 0.532257 0.532257\n0.539886 0.539886 0.539886\n0.547668 0.547668 0.547668\n0.555328 0.555328 0.555328\n0.563354 0.563354 0.563354\n0.571503 0.571503 0.571503\n0.365051 0.365051 0.365051\n0.372528 0.372528 0.372528\n0.379700 0.379700 0.379700\n0.386993 0.386993 0.386993\n0.393982 0.393982 0.393982\n0.401031 0.401031 0.401031\n0.408020 0.408020 0.408020\n0.414764 0.414764 0.414764\n0.421631 0.421631 0.421631\n0.428406 0.428406 0.428406\n0.435028 0.435028 0.435028\n0.441772 0.441772 0.441772\n0.448517 0.448517 0.448517\n0.455109 0.455109 0.455109\n0.461884 0.461884 0.461884\n0.468506 0.468506 0.468506\n0.475342 0.475342 0.475342\n0.482208 0.482208 0.482208\n0.488983 0.488983 0.488983\n0.496002 0.496002 0.496002\n0.503082 0.503082 0.503082\n0.510101 0.510101 0.510101\n0.517395 0.517395 0.517395\n0.524780 0.524780 0.524780\n0.532104 0.532104 0.532104\n0.539734 0.539734 0.539734\n0.547272 0.547272 0.547272\n0.555115 0.555115 0.555115\n0.563141 0.563141 0.563141\n0.571106 0.571106 0.571106\n0.579376 0.579376 0.579376\n0.587799 0.587799 0.587799\n0.379547 0.379547 0.379547\n0.386597 0.386597 0.386597\n0.393768 0.393768 0.393768\n0.400848 0.400848 0.400848\n0.407684 0.407684 0.407684\n0.414612 0.414612 0.414612\n0.421448 0.421448 0.421448\n0.428101 0.428101 0.428101\n0.434875 0.434875 0.434875\n0.441620 0.441620 0.441620\n0.448212 0.448212 0.448212\n0.454956 0.454956 0.454956\n0.461548 0.461548 0.461548\n0.468323 0.468323 0.468323\n0.475159 0.475159 0.475159\n0.481873 0.481873 0.481873\n0.488831 0.488831 0.488831\n0.495819 0.495819 0.495819\n0.502747 0.502747 0.502747\n0.509888 0.509888 0.509888\n0.517212 0.517212 0.517212\n0.524414 0.524414 0.524414\n0.531891 0.531891 0.531891\n0.539520 0.539520 0.539520\n0.547058 0.547058 0.547058\n0.554932 0.554932 0.554932\n0.562775 0.562775 0.562775\n0.570892 0.570892 0.570892\n0.579193 0.579193 0.579193\n0.587372 0.587372 0.587372\n0.595856 0.595856 0.595856\n0.604462 0.604462 0.604462\n0.393616 0.393616 0.393616\n0.400482 0.400482 0.400482\n0.407501 0.407501 0.407501\n0.414429 0.414429 0.414429\n0.421112 0.421112 0.421112\n0.427887 0.427887 0.427887\n0.434692 0.434692 0.434692\n0.441284 0.441284 0.441284\n0.448029 0.448029 0.448029\n0.454773 0.454773 0.454773\n0.461365 0.461365 0.461365\n0.468140 0.468140 0.468140\n0.474823 0.474823 0.474823\n0.481689 0.481689 0.481689\n0.488617 0.488617 0.488617\n0.495483 0.495483 0.495483\n0.502533 0.502533 0.502533\n0.509735 0.509735 0.509735\n0.516815 0.516815 0.516815\n0.524200 0.524200 0.524200\n0.531708 0.531708 0.531708\n0.539093 0.539093 0.539093\n0.546875 0.546875 0.546875\n0.554535 0.554535 0.554535\n0.562561 0.562561 0.562561\n0.570679 0.570679 0.570679\n0.578766 0.578766 0.578766\n0.587128 0.587128 0.587128\n0.595673 0.595673 0.595673\n0.604034 0.604034 0.604034\n0.612701 0.612701 0.612701\n0.621399 0.621399 0.621399\n0.407318 0.407318 0.407318\n0.414062 0.414062 0.414062\n0.420929 0.420929 0.420929\n0.427734 0.427734 0.427734\n0.434357 0.434357 0.434357\n0.441101 0.441101 0.441101\n0.447845 0.447845 0.447845\n0.454437 0.454437 0.454437\n0.461212 0.461212 0.461212\n0.467834 0.467834 0.467834\n0.474640 0.474640 0.474640\n0.481506 0.481506 0.481506\n0.488281 0.488281 0.488281\n0.495270 0.495270 0.495270\n0.502380 0.502380 0.502380\n0.509369 0.509369 0.509369\n0.516663 0.516663 0.516663\n0.524017 0.524017 0.524017\n0.531342 0.531342 0.531342\n0.538940 0.538940 0.538940\n0.546661 0.546661 0.546661\n0.554352 0.554352 0.554352\n0.562347 0.562347 0.562347\n0.570282 0.570282 0.570282\n0.578552 0.578552 0.578552\n0.586945 0.586945 0.586945\n0.595215 0.595215 0.595215\n0.603821 0.603821 0.603821\n0.612488 0.612488 0.612488\n0.621002 0.621002 0.621002\n0.629730 0.629730 0.629730\n0.638489 0.638489 0.638489\n0.420776 0.420776 0.420776\n0.427399 0.427399 0.427399\n0.434204 0.434204 0.434204\n0.440948 0.440948 0.440948\n0.447510 0.447510 0.447510\n0.454254 0.454254 0.454254\n0.461029 0.461029 0.461029\n0.467651 0.467651 0.467651\n0.474457 0.474457 0.474457\n0.481201 0.481201 0.481201\n0.488098 0.488098 0.488098\n0.495087 0.495087 0.495087\n0.502014 0.502014 0.502014\n0.509186 0.509186 0.509186\n0.516449 0.516449 0.516449\n0.523651 0.523651 0.523651\n0.531158 0.531158 0.531158\n0.538727 0.538727 0.538727\n0.546295 0.546295 0.546295\n0.554169 0.554169 0.554169\n0.561951 0.561951 0.561951\n0.570068 0.570068 0.570068\n0.578308 0.578308 0.578308\n0.586517 0.586517 0.586517\n0.595032 0.595032 0.595032\n0.603607 0.603607 0.603607\n0.612061 0.612061 0.612061\n0.620758 0.620758 0.620758\n0.629517 0.629517 0.629517\n0.638031 0.638031 0.638031\n0.646790 0.646790 0.646790\n0.655304 0.655304 0.655304\n0.433990 0.433990 0.433990\n0.440582 0.440582 0.440582\n0.447357 0.447357 0.447357\n0.454102 0.454102 0.454102\n0.460693 0.460693 0.460693\n0.467468 0.467468 0.467468\n0.474121 0.474121 0.474121\n0.481018 0.481018 0.481018\n0.487915 0.487915 0.487915\n0.494781 0.494781 0.494781\n0.501862 0.501862 0.501862\n0.509003 0.509003 0.509003\n0.516113 0.516113 0.516113\n0.523468 0.523468 0.523468\n0.530945 0.530945 0.530945\n0.538361 0.538361 0.538361\n0.546112 0.546112 0.546112\n0.553955 0.553955 0.553955\n0.561737 0.561737 0.561737\n0.569885 0.569885 0.569885\n0.577911 0.577911 0.577911\n0.586304 0.586304 0.586304\n0.594818 0.594818 0.594818\n0.603180 0.603180 0.603180\n0.611847 0.611847 0.611847\n0.620544 0.620544 0.620544\n0.629059 0.629059 0.629059\n0.637817 0.637817 0.637817\n0.646576 0.646576 0.646576\n0.655090 0.655090 0.655090\n0.663788 0.663788 0.663788\n0.672150 0.672150 0.672150\n0.447205 0.447205 0.447205\n0.453766 0.453766 0.453766\n0.460541 0.460541 0.460541\n0.467316 0.467316 0.467316\n0.473938 0.473938 0.473938\n0.480835 0.480835 0.480835\n0.487579 0.487579 0.487579\n0.494568 0.494568 0.494568\n0.501678 0.501678 0.501678\n0.508636 0.508636 0.508636\n0.515900 0.515900 0.515900\n0.523285 0.523285 0.523285\n0.530579 0.530579 0.530579\n0.538177 0.538177 0.538177\n0.545898 0.545898 0.545898\n0.553558 0.553558 0.553558\n0.561554 0.561554 0.561554\n0.569458 0.569458 0.569458\n0.577698 0.577698 0.577698\n0.586090 0.586090 0.586090\n0.594391 0.594391 0.594391\n0.602966 0.602966 0.602966\n0.611603 0.611603 0.611603\n0.620117 0.620117 0.620117\n0.628845 0.628845 0.628845\n0.637604 0.637604 0.637604\n0.646149 0.646149 0.646149\n0.654877 0.654877 0.654877\n0.663330 0.663330 0.663330\n0.671936 0.671936 0.671936\n0.680511 0.680511 0.680511\n0.688812 0.688812 0.688812\n0.460358 0.460358 0.460358\n0.466949 0.466949 0.466949\n0.473785 0.473785 0.473785\n0.480499 0.480499 0.480499\n0.487427 0.487427 0.487427\n0.494415 0.494415 0.494415\n0.501312 0.501312 0.501312\n0.508453 0.508453 0.508453\n0.515747 0.515747 0.515747\n0.522888 0.522888 0.522888\n0.530396 0.530396 0.530396\n0.537964 0.537964 0.537964\n0.545502 0.545502 0.545502\n0.553375 0.553375 0.553375\n0.561157 0.561157 0.561157\n0.569244 0.569244 0.569244\n0.577515 0.577515 0.577515\n0.585663 0.585663 0.585663\n0.594147 0.594147 0.594147\n0.602722 0.602722 0.602722\n0.611176 0.611176 0.611176\n0.619873 0.619873 0.619873\n0.628632 0.628632 0.628632\n0.637146 0.637146 0.637146\n0.645905 0.645905 0.645905\n0.654633 0.654633 0.654633\n0.663116 0.663116 0.663116\n0.671753 0.671753 0.671753\n0.680084 0.680084 0.680084\n0.688568 0.688568 0.688568\n0.696991 0.696991 0.696991\n0.705017 0.705017 0.705017\n0.473633 0.473633 0.473633\n0.480316 0.480316 0.480316\n0.487244 0.487244 0.487244\n0.494049 0.494049 0.494049\n0.501129 0.501129 0.501129\n0.508301 0.508301 0.508301\n0.515381 0.515381 0.515381\n0.522736 0.522736 0.522736\n0.530212 0.530212 0.530212\n0.537598 0.537598 0.537598\n0.545319 0.545319 0.545319\n0.553162 0.553162 0.553162\n0.560944 0.560944 0.560944\n0.569061 0.569061 0.569061\n0.577118 0.577118 0.577118\n0.585449 0.585449 0.585449\n0.593964 0.593964 0.593964\n0.602325 0.602325 0.602325\n0.610992 0.610992 0.610992\n0.619690 0.619690 0.619690\n0.628174 0.628174 0.628174\n0.636963 0.636963 0.636963\n0.645691 0.645691 0.645691\n0.654236 0.654236 0.654236\n0.662933 0.662933 0.662933\n0.671326 0.671326 0.671326\n0.679901 0.679901 0.679901\n0.688354 0.688354 0.688354\n0.696533 0.696533 0.696533\n0.704803 0.704803 0.704803\n0.712952 0.712952 0.712952\n0.720703 0.720703 0.720703\n0.487061 0.487061 0.487061\n0.493896 0.493896 0.493896\n0.500946 0.500946 0.500946\n0.507935 0.507935 0.507935\n0.515198 0.515198 0.515198\n0.522552 0.522552 0.522552\n0.529816 0.529816 0.529816\n0.537415 0.537415 0.537415\n0.545135 0.545135 0.545135\n0.552734 0.552734 0.552734\n0.560760 0.560760 0.560760\n0.568817 0.568817 0.568817\n0.576874 0.576874 0.576874\n0.585266 0.585266 0.585266\n0.593536 0.593536 0.593536\n0.602081 0.602081 0.602081\n0.610748 0.610748 0.610748\n0.619232 0.619232 0.619232\n0.627960 0.627960 0.627960\n0.636719 0.636719 0.636719\n0.645264 0.645264 0.645264\n0.653992 0.653992 0.653992\n0.662689 0.662689 0.662689\n0.671112 0.671112 0.671112\n0.679657 0.679657 0.679657\n0.687958 0.687958 0.687958\n0.696350 0.696350 0.696350\n0.704590 0.704590 0.704590\n0.712524 0.712524 0.712524\n0.720551 0.720551 0.720551\n0.728363 0.728363 0.728363\n0.735870 0.735870 0.735870\n0.500610 0.500610 0.500610\n0.507751 0.507751 0.507751\n0.514984 0.514984 0.514984\n0.522186 0.522186 0.522186\n0.529633 0.529633 0.529633\n0.537201 0.537201 0.537201\n0.544739 0.544739 0.544739\n0.552582 0.552582 0.552582\n0.560516 0.560516 0.560516\n0.568451 0.568451 0.568451\n0.576691 0.576691 0.576691\n0.584839 0.584839 0.584839\n0.593323 0.593323 0.593323\n0.601898 0.601898 0.601898\n0.610321 0.610321 0.610321\n0.619049 0.619049 0.619049\n0.627747 0.627747 0.627747\n0.636322 0.636322 0.636322\n0.645050 0.645050 0.645050\n0.653778 0.653778 0.653778\n0.662262 0.662262 0.662262\n0.670898 0.670898 0.670898\n0.679260 0.679260 0.679260\n0.687714 0.687714 0.687714\n0.696167 0.696167 0.696167\n0.704193 0.704193 0.704193\n0.712341 0.712341 0.712341\n0.720337 0.720337 0.720337\n0.727997 0.727997 0.727997\n0.735687 0.735687 0.735687\n0.743195 0.743195 0.743195\n0.750305 0.750305 0.750305\n0.514618 0.514618 0.514618\n0.521973 0.521973 0.521973\n0.529449 0.529449 0.529449\n0.536835 0.536835 0.536835\n0.544525 0.544525 0.544525\n0.552368 0.552368 0.552368\n0.560120 0.560120 0.560120\n0.568237 0.568237 0.568237\n0.576477 0.576477 0.576477\n0.584656 0.584656 0.584656\n0.593079 0.593079 0.593079\n0.601440 0.601440 0.601440\n0.610107 0.610107 0.610107\n0.618805 0.618805 0.618805\n0.627319 0.627319 0.627319\n0.636078 0.636078 0.636078\n0.644836 0.644836 0.644836\n0.653320 0.653320 0.653320\n0.662018 0.662018 0.662018\n0.670685 0.670685 0.670685\n0.679047 0.679047 0.679047\n0.687531 0.687531 0.687531\n0.695709 0.695709 0.695709\n0.703979 0.703979 0.703979\n0.712128 0.712128 0.712128\n0.719940 0.719940 0.719940\n0.727783 0.727783 0.727783\n0.735504 0.735504 0.735504\n0.742798 0.742798 0.742798\n0.750153 0.750153 0.750153\n0.757263 0.757263 0.757263\n0.764008 0.764008 0.764008\n0.529083 0.529083 0.529083\n0.536621 0.536621 0.536621\n0.544342 0.544342 0.544342\n0.551971 0.551971 0.551971\n0.559937 0.559937 0.559937\n0.568024 0.568024 0.568024\n0.576080 0.576080 0.576080\n0.584412 0.584412 0.584412\n0.592682 0.592682 0.592682\n0.601257 0.601257 0.601257\n0.609894 0.609894 0.609894\n0.618378 0.618378 0.618378\n0.627106 0.627106 0.627106\n0.635864 0.635864 0.635864\n0.644379 0.644379 0.644379\n0.653137 0.653137 0.653137\n0.661804 0.661804 0.661804\n0.670227 0.670227 0.670227\n0.678833 0.678833 0.678833\n0.687103 0.687103 0.687103\n0.695496 0.695496 0.695496\n0.703796 0.703796 0.703796\n0.711731 0.711731 0.711731\n0.719788 0.719788 0.719788\n0.727600 0.727600 0.727600\n0.735107 0.735107 0.735107\n0.742615 0.742615 0.742615\n0.749969 0.749969 0.749969\n0.756897 0.756897 0.756897\n0.763824 0.763824 0.763824\n0.770325 0.770325 0.770325\n0.776794 0.776794 0.776794\n0.543945 0.543945 0.543945\n0.551788 0.551788 0.551788\n0.559753 0.559753 0.559753\n0.567627 0.567627 0.567627\n0.575867 0.575867 0.575867\n0.584198 0.584198 0.584198\n0.592438 0.592438 0.592438\n0.601013 0.601013 0.601013\n0.609467 0.609467 0.609467\n0.618134 0.618134 0.618134\n0.626862 0.626862 0.626862\n0.635406 0.635406 0.635406\n0.644196 0.644196 0.644196\n0.652924 0.652924 0.652924\n0.661377 0.661377 0.661377\n0.670044 0.670044 0.670044\n0.678650 0.678650 0.678650\n0.686920 0.686920 0.686920\n0.695282 0.695282 0.695282\n0.703400 0.703400 0.703400\n0.711548 0.711548 0.711548\n0.719543 0.719543 0.719543\n0.727203 0.727203 0.727203\n0.734924 0.734924 0.734924\n0.742462 0.742462 0.742462\n0.749603 0.749603 0.749603\n0.756714 0.756714 0.756714\n0.763641 0.763641 0.763641\n0.770142 0.770142 0.770142\n0.776642 0.776642 0.776642\n0.782745 0.782745 0.782745\n0.788757 0.788757 0.788757\n0.559326 0.559326 0.559326\n0.567383 0.567383 0.567383\n0.575653 0.575653 0.575653\n0.583771 0.583771 0.583771\n0.592255 0.592255 0.592255\n0.600616 0.600616 0.600616\n0.609253 0.609253 0.609253\n0.617950 0.617950 0.617950\n0.626465 0.626465 0.626465\n0.635193 0.635193 0.635193\n0.643982 0.643982 0.643982\n0.652466 0.652466 0.652466\n0.661194 0.661194 0.661194\n0.669800 0.669800 0.669800\n0.678162 0.678162 0.678162\n0.686676 0.686676 0.686676\n0.695099 0.695099 0.695099\n0.703156 0.703156 0.703156\n0.711334 0.711334 0.711334\n0.719147 0.719147 0.719147\n0.727020 0.727020 0.727020\n0.734711 0.734711 0.734711\n0.742065 0.742065 0.742065\n0.749420 0.749420 0.749420\n0.756561 0.756561 0.756561\n0.763306 0.763306 0.763306\n0.770020 0.770020 0.770020\n0.776337 0.776337 0.776337\n0.782593 0.782593 0.782593\n0.788574 0.788574 0.788574\n0.794189 0.794189 0.794189\n0.799713 0.799713 0.799713\n0.575195 0.575195 0.575195\n0.583557 0.583557 0.583557\n0.592041 0.592041 0.592041\n0.600372 0.600372 0.600372\n0.609009 0.609009 0.609009\n0.617493 0.617493 0.617493\n0.626221 0.626221 0.626221\n0.635010 0.635010 0.635010\n0.643524 0.643524 0.643524\n0.652252 0.652252 0.652252\n0.660980 0.660980 0.660980\n0.669403 0.669403 0.669403\n0.677979 0.677979 0.677979\n0.686493 0.686493 0.686493\n0.694672 0.694672 0.694672\n0.702972 0.702972 0.702972\n0.710938 0.710938 0.710938\n0.718964 0.718964 0.718964\n0.726807 0.726807 0.726807\n0.734344 0.734344 0.734344\n0.741882 0.741882 0.741882\n0.749237 0.749237 0.749237\n0.756226 0.756226 0.756226\n0.763123 0.763123 0.763123\n0.769867 0.769867 0.769867\n0.776184 0.776184 0.776184\n0.782440 0.782440 0.782440\n0.788300 0.788300 0.788300\n0.794037 0.794037 0.794037\n0.799530 0.799530 0.799530\n0.804657 0.804657 0.804657\n0.809631 0.809631 0.809631\n"
  },
  {
    "path": "packages/sdk/public/resource/luts/Cubicle 99.CUBE",
    "content": "#Created by: Adobe Photoshop Export Color Lookup Plugin\n#Copyright: (C) Copyright 2017 RocketStock\nTITLE \"Cool \"\n\n#LUT size\nLUT_3D_SIZE 32\n\n#data domain\nDOMAIN_MIN 0.0 0.0 0.0\nDOMAIN_MAX 1.0 1.0 1.0\n\n#LUT data points\n0.000000 0.000000 0.120178\n0.000000 0.000000 0.120575\n0.000000 0.000000 0.121033\n0.000000 0.000000 0.121429\n0.025360 0.000000 0.121918\n0.058624 0.000000 0.122314\n0.087830 0.000000 0.122833\n0.115326 0.000000 0.123352\n0.140869 0.000000 0.123871\n0.164948 0.000000 0.124451\n0.187317 0.000000 0.125000\n0.208771 0.000000 0.125641\n0.229523 0.000000 0.126160\n0.249725 0.000000 0.126801\n0.270264 0.000000 0.127441\n0.291107 0.000000 0.128082\n0.312622 0.000000 0.128723\n0.335327 0.000000 0.129456\n0.359558 0.000000 0.130127\n0.385864 0.000000 0.130798\n0.414581 0.000000 0.131500\n0.445984 0.000000 0.132263\n0.480438 0.000000 0.133026\n0.518585 0.000000 0.133759\n0.560486 0.000000 0.134491\n0.605652 0.000000 0.135315\n0.653625 0.000000 0.136078\n0.704041 0.000000 0.136902\n0.756439 0.000000 0.137695\n0.810120 0.000000 0.138489\n0.864868 0.000000 0.139282\n0.915527 0.000000 0.140167\n0.000000 0.000000 0.120972\n0.000000 0.000000 0.121399\n0.000000 0.000000 0.121857\n0.000244 0.000000 0.122314\n0.026672 0.000000 0.122833\n0.059784 0.000000 0.123322\n0.089020 0.000000 0.123840\n0.116425 0.000000 0.124390\n0.141937 0.000000 0.124969\n0.165741 0.000000 0.125549\n0.188202 0.000000 0.126160\n0.209656 0.000000 0.126801\n0.230377 0.000000 0.127441\n0.250580 0.000000 0.128082\n0.271057 0.000000 0.128723\n0.291718 0.000000 0.129425\n0.313385 0.000000 0.130096\n0.336182 0.000000 0.130798\n0.360413 0.000916 0.131470\n0.386749 0.001984 0.132233\n0.415466 0.003082 0.133026\n0.446869 0.004211 0.133728\n0.481384 0.005402 0.134491\n0.519470 0.006653 0.135284\n0.561279 0.007843 0.136047\n0.606384 0.009155 0.136841\n0.654266 0.010437 0.137665\n0.704498 0.011749 0.138458\n0.756805 0.013153 0.139282\n0.810364 0.014587 0.140076\n0.865112 0.015961 0.140961\n0.915527 0.017334 0.141815\n0.000000 0.011719 0.121857\n0.000000 0.012512 0.122314\n0.000000 0.013275 0.122803\n0.001343 0.014008 0.123322\n0.027832 0.014893 0.123840\n0.061066 0.015778 0.124390\n0.090454 0.016571 0.124969\n0.117737 0.017487 0.125519\n0.143036 0.018494 0.126129\n0.166779 0.019531 0.126801\n0.189209 0.020386 0.127411\n0.210510 0.021454 0.128082\n0.231049 0.022522 0.128693\n0.251495 0.023621 0.129395\n0.271729 0.024750 0.130096\n0.292572 0.025909 0.130737\n0.314087 0.027069 0.131470\n0.336853 0.028290 0.132233\n0.361298 0.029297 0.132996\n0.387573 0.030548 0.133728\n0.416290 0.031799 0.134460\n0.447632 0.033051 0.135254\n0.482300 0.034332 0.135986\n0.520416 0.035614 0.136810\n0.562164 0.036926 0.137634\n0.607147 0.038239 0.138428\n0.655090 0.039551 0.139252\n0.705261 0.041016 0.140076\n0.757233 0.042480 0.140930\n0.810760 0.043793 0.141754\n0.865356 0.045227 0.142609\n0.915527 0.047516 0.143433\n0.000000 0.040649 0.122803\n0.000000 0.041504 0.123322\n0.000000 0.042358 0.123810\n0.002441 0.043091 0.124390\n0.029205 0.044037 0.124939\n0.062622 0.044861 0.125519\n0.091766 0.045868 0.126129\n0.118927 0.047760 0.126770\n0.144226 0.049530 0.127411\n0.167847 0.051086 0.128021\n0.190216 0.052948 0.128662\n0.211334 0.054932 0.129395\n0.231995 0.057037 0.130035\n0.252319 0.058960 0.130737\n0.272614 0.060059 0.131470\n0.293396 0.061218 0.132202\n0.315002 0.062561 0.132935\n0.337708 0.063904 0.133728\n0.362030 0.065277 0.134430\n0.388336 0.066589 0.135223\n0.417084 0.067932 0.135986\n0.448547 0.069366 0.136780\n0.483032 0.070770 0.137604\n0.521393 0.072205 0.138428\n0.563080 0.073456 0.139221\n0.607971 0.074921 0.140045\n0.655640 0.076324 0.140900\n0.705719 0.077789 0.141724\n0.757751 0.079193 0.142609\n0.811127 0.080719 0.143402\n0.865509 0.082153 0.144318\n0.915527 0.083710 0.145203\n0.000000 0.077332 0.123810\n0.000000 0.078278 0.124359\n0.000000 0.079102 0.124939\n0.003784 0.080109 0.125488\n0.030548 0.081085 0.126129\n0.064148 0.082001 0.126709\n0.093201 0.083099 0.127380\n0.120331 0.084076 0.127991\n0.145355 0.085083 0.128662\n0.168976 0.086243 0.129333\n0.191193 0.087433 0.130005\n0.212402 0.088379 0.130737\n0.232971 0.089600 0.131439\n0.253113 0.090790 0.132172\n0.273468 0.092041 0.132904\n0.294159 0.093292 0.133698\n0.315765 0.094360 0.134399\n0.338623 0.095612 0.135223\n0.362946 0.096954 0.135956\n0.389252 0.098206 0.136780\n0.418030 0.099579 0.137604\n0.449524 0.100861 0.138397\n0.484039 0.102173 0.139191\n0.522095 0.103333 0.140015\n0.563812 0.104706 0.140869\n0.608887 0.106110 0.141724\n0.656433 0.107452 0.142578\n0.706482 0.108856 0.143402\n0.758209 0.110260 0.144318\n0.811401 0.111603 0.145172\n0.865662 0.113037 0.145996\n0.915527 0.114441 0.146942\n0.000000 0.108459 0.124908\n0.000000 0.109161 0.125458\n0.000000 0.110168 0.126068\n0.005188 0.110931 0.126709\n0.032135 0.111969 0.127350\n0.065857 0.113007 0.127991\n0.094604 0.113861 0.128662\n0.121613 0.114899 0.129303\n0.146729 0.115875 0.130005\n0.170135 0.116882 0.130737\n0.192352 0.118011 0.131409\n0.213379 0.119171 0.132172\n0.233948 0.120087 0.132843\n0.254028 0.121246 0.133667\n0.274323 0.122406 0.134399\n0.295074 0.123474 0.135162\n0.316620 0.124573 0.135925\n0.339478 0.125793 0.136749\n0.363892 0.127014 0.137573\n0.390259 0.128113 0.138367\n0.419037 0.129272 0.139191\n0.450500 0.130493 0.140015\n0.485016 0.131744 0.140839\n0.523071 0.133026 0.141693\n0.564789 0.134064 0.142548\n0.609589 0.135345 0.143372\n0.657074 0.136627 0.144257\n0.706940 0.137878 0.145111\n0.758636 0.139160 0.145966\n0.811646 0.140320 0.146851\n0.865814 0.141571 0.147766\n0.915527 0.142853 0.148651\n0.000000 0.137604 0.126068\n0.000000 0.138336 0.126678\n0.000000 0.139252 0.127350\n0.006744 0.139984 0.127960\n0.033600 0.140961 0.128601\n0.067444 0.141724 0.129303\n0.096283 0.142731 0.129944\n0.123016 0.143646 0.130646\n0.148041 0.144562 0.131378\n0.171326 0.145569 0.132141\n0.193481 0.146484 0.132843\n0.214447 0.147491 0.133636\n0.234955 0.148560 0.134399\n0.255035 0.149445 0.135132\n0.275238 0.150543 0.135925\n0.296051 0.151642 0.136719\n0.317596 0.152527 0.137543\n0.340332 0.153656 0.138336\n0.364746 0.154785 0.139160\n0.391174 0.155701 0.140015\n0.419922 0.156860 0.140808\n0.451385 0.157990 0.141693\n0.486053 0.158936 0.142487\n0.524078 0.160095 0.143341\n0.565796 0.161285 0.144257\n0.610474 0.162415 0.145081\n0.657898 0.163391 0.145966\n0.707672 0.164581 0.146851\n0.759277 0.165771 0.147766\n0.812195 0.166748 0.148621\n0.865936 0.167877 0.149506\n0.915527 0.169067 0.150391\n0.000000 0.164520 0.127258\n0.000000 0.165161 0.127899\n0.000000 0.166046 0.128601\n0.008331 0.166748 0.129272\n0.035248 0.167633 0.129913\n0.069275 0.168365 0.130615\n0.097809 0.169281 0.131378\n0.124634 0.170135 0.132080\n0.149384 0.170990 0.132812\n0.172516 0.171967 0.133545\n0.194489 0.172729 0.134308\n0.215515 0.173737 0.135101\n0.235748 0.174469 0.135864\n0.256042 0.175507 0.136688\n0.276215 0.176453 0.137543\n0.296936 0.177338 0.138306\n0.318542 0.178406 0.139130\n0.341309 0.179230 0.139984\n0.365662 0.180237 0.140808\n0.392120 0.181274 0.141663\n0.420807 0.182098 0.142456\n0.452332 0.183167 0.143311\n0.487030 0.184143 0.144226\n0.525085 0.185120 0.145050\n0.566528 0.186188 0.145935\n0.611420 0.187042 0.146820\n0.658722 0.188141 0.147675\n0.708221 0.189209 0.148590\n0.759644 0.190063 0.149475\n0.812469 0.191162 0.150330\n0.866089 0.192139 0.151245\n0.915527 0.193115 0.152130\n0.000000 0.189423 0.128601\n0.000000 0.190002 0.129211\n0.000000 0.190826 0.129913\n0.010040 0.191467 0.130615\n0.037018 0.192322 0.131348\n0.071106 0.192993 0.132080\n0.099548 0.193909 0.132782\n0.126099 0.194580 0.133545\n0.150757 0.195465 0.134308\n0.173798 0.196136 0.135071\n0.195770 0.197052 0.135864\n0.216644 0.197784 0.136688\n0.236816 0.198700 0.137421\n0.257050 0.199432 0.138306\n0.277222 0.200439 0.139069\n0.297852 0.201141 0.139923\n0.319489 0.202118 0.140747\n0.342316 0.202881 0.141602\n0.366638 0.203827 0.142456\n0.393036 0.204712 0.143311\n0.421875 0.205566 0.144165\n0.453339 0.206573 0.145020\n0.487854 0.207306 0.145935\n0.526093 0.208313 0.146790\n0.567535 0.209106 0.147675\n0.612122 0.210114 0.148590\n0.659424 0.210968 0.149445\n0.708984 0.211884 0.150299\n0.760284 0.212830 0.151245\n0.812744 0.213654 0.152100\n0.866302 0.214661 0.153015\n0.915527 0.215485 0.153931\n0.000000 0.212372 0.129883\n0.000000 0.213165 0.130585\n0.000000 0.213745 0.131317\n0.011749 0.214569 0.132050\n0.038818 0.215179 0.132782\n0.072968 0.215912 0.133514\n0.101135 0.216583 0.134277\n0.127594 0.217346 0.135071\n0.152100 0.218048 0.135834\n0.175262 0.218719 0.136658\n0.196991 0.219574 0.137421\n0.217804 0.220245 0.138275\n0.237915 0.221100 0.139038\n0.257874 0.221771 0.139893\n0.278259 0.222687 0.140717\n0.298798 0.223358 0.141571\n0.320374 0.224243 0.142395\n0.343323 0.224945 0.143250\n0.367645 0.225861 0.144135\n0.394104 0.226562 0.145020\n0.422882 0.227448 0.145905\n0.454407 0.228180 0.146759\n0.488953 0.229095 0.147644\n0.526978 0.229797 0.148499\n0.568512 0.230713 0.149414\n0.613068 0.231445 0.150269\n0.660278 0.232361 0.151184\n0.709564 0.233063 0.152100\n0.760712 0.234039 0.152985\n0.813171 0.234741 0.153900\n0.866608 0.235657 0.154785\n0.915527 0.236420 0.155640\n0.000000 0.234161 0.131317\n0.000000 0.234680 0.132019\n0.000000 0.235443 0.132751\n0.013550 0.235992 0.133484\n0.040680 0.236694 0.134247\n0.074890 0.237335 0.135040\n0.103027 0.237915 0.135803\n0.129303 0.238708 0.136627\n0.153748 0.239319 0.137421\n0.176544 0.240082 0.138245\n0.198212 0.240692 0.139038\n0.218933 0.241455 0.139832\n0.239014 0.242157 0.140686\n0.258942 0.242920 0.141571\n0.279236 0.243591 0.142365\n0.299835 0.244263 0.143250\n0.321350 0.245117 0.144135\n0.344147 0.245758 0.144958\n0.368713 0.246582 0.145844\n0.395111 0.247253 0.146729\n0.423981 0.248108 0.147614\n0.455505 0.248779 0.148499\n0.490021 0.249664 0.149414\n0.528046 0.250305 0.150269\n0.569550 0.251190 0.151154\n0.614075 0.251862 0.152069\n0.660889 0.252563 0.152985\n0.710297 0.253387 0.153870\n0.761139 0.254120 0.154724\n0.813538 0.254944 0.155640\n0.866760 0.255707 0.156555\n0.915527 0.256500 0.157410\n0.000000 0.254822 0.132751\n0.000000 0.255280 0.133484\n0.000000 0.256042 0.134247\n0.015472 0.256561 0.135010\n0.042572 0.257050 0.135803\n0.076874 0.257843 0.136566\n0.104889 0.258392 0.137390\n0.130798 0.259064 0.138153\n0.155151 0.259705 0.139038\n0.177856 0.260284 0.139801\n0.199432 0.261078 0.140686\n0.220093 0.261627 0.141541\n0.240112 0.262329 0.142365\n0.260040 0.263031 0.143219\n0.280060 0.263580 0.144043\n0.300873 0.264435 0.144958\n0.322357 0.265015 0.145813\n0.345154 0.265808 0.146698\n0.369751 0.266418 0.147614\n0.396210 0.267273 0.148468\n0.424988 0.267853 0.149323\n0.456451 0.268463 0.150269\n0.491058 0.269318 0.151154\n0.529083 0.269897 0.151978\n0.570496 0.270752 0.152954\n0.614777 0.271393 0.153839\n0.661804 0.272217 0.154694\n0.710815 0.272827 0.155609\n0.761780 0.273529 0.156525\n0.813873 0.274323 0.157410\n0.866882 0.274963 0.158325\n0.915527 0.275726 0.159241\n0.000000 0.274658 0.134216\n0.000000 0.275299 0.135010\n0.000000 0.275848 0.135773\n0.017395 0.276367 0.136536\n0.044525 0.277069 0.137329\n0.078918 0.277618 0.138153\n0.106720 0.278168 0.139008\n0.132629 0.278870 0.139801\n0.156586 0.279388 0.140656\n0.179169 0.280060 0.141510\n0.200684 0.280670 0.142334\n0.221252 0.281250 0.143188\n0.241272 0.281982 0.144043\n0.261139 0.282593 0.144928\n0.281158 0.283325 0.145782\n0.301910 0.283936 0.146698\n0.323456 0.284485 0.147583\n0.346222 0.285278 0.148438\n0.370819 0.285828 0.149323\n0.397278 0.286652 0.150238\n0.425873 0.287231 0.151123\n0.457458 0.287811 0.151978\n0.492157 0.288574 0.152893\n0.530121 0.289154 0.153778\n0.571381 0.290009 0.154694\n0.615692 0.290558 0.155579\n0.662659 0.291260 0.156525\n0.711639 0.291962 0.157379\n0.762238 0.292542 0.158264\n0.814117 0.293335 0.159210\n0.867035 0.293976 0.160095\n0.915527 0.294769 0.160980\n0.000000 0.294250 0.135712\n0.000000 0.294952 0.136536\n0.000000 0.295441 0.137329\n0.019531 0.295898 0.138123\n0.047180 0.296631 0.138977\n0.081024 0.297150 0.139771\n0.108521 0.297699 0.140656\n0.134186 0.298370 0.141479\n0.158173 0.298889 0.142334\n0.180542 0.299622 0.143158\n0.201935 0.300171 0.144012\n0.222443 0.300690 0.144897\n0.242401 0.301422 0.145721\n0.262207 0.301941 0.146667\n0.282257 0.302582 0.147522\n0.302887 0.303253 0.148407\n0.324524 0.303833 0.149323\n0.347290 0.304596 0.150116\n0.371674 0.305145 0.151093\n0.398163 0.305878 0.151947\n0.426971 0.306488 0.152863\n0.458496 0.307007 0.153748\n0.493225 0.307800 0.154663\n0.531250 0.308380 0.155548\n0.572388 0.309052 0.156494\n0.616699 0.309753 0.157349\n0.663391 0.310303 0.158264\n0.712250 0.311096 0.159149\n0.762787 0.311646 0.160034\n0.814545 0.312439 0.160950\n0.867157 0.313019 0.161865\n0.915527 0.313599 0.162750\n0.000000 0.314056 0.137299\n0.000000 0.314636 0.138092\n0.000000 0.315125 0.138977\n0.021545 0.315796 0.139740\n0.050659 0.316315 0.140625\n0.083130 0.316803 0.141479\n0.110535 0.317505 0.142303\n0.136017 0.318024 0.143158\n0.159729 0.318481 0.144012\n0.182129 0.319244 0.144836\n0.203217 0.319733 0.145721\n0.223663 0.320312 0.146667\n0.243530 0.321014 0.147522\n0.263336 0.321564 0.148376\n0.283325 0.322327 0.149292\n0.303955 0.322845 0.150116\n0.325592 0.323334 0.151062\n0.348419 0.324097 0.151947\n0.372772 0.324646 0.152832\n0.399231 0.325226 0.153748\n0.428101 0.325989 0.154633\n0.459595 0.326538 0.155548\n0.494324 0.327301 0.156433\n0.532166 0.327850 0.157318\n0.573425 0.328522 0.158234\n0.617554 0.329163 0.159119\n0.664185 0.329712 0.160034\n0.712891 0.330475 0.160950\n0.763275 0.331024 0.161804\n0.814972 0.331604 0.162720\n0.867310 0.332367 0.163605\n0.915527 0.332916 0.164673\n0.000000 0.334229 0.138885\n0.000000 0.334686 0.139709\n0.000000 0.335419 0.140625\n0.023712 0.335907 0.141388\n0.054718 0.336395 0.142242\n0.085297 0.337097 0.143127\n0.112518 0.337585 0.143982\n0.137726 0.338104 0.144836\n0.161377 0.338806 0.145660\n0.183533 0.339325 0.146576\n0.204559 0.339996 0.147461\n0.224884 0.340546 0.148346\n0.244690 0.341095 0.149261\n0.264465 0.341675 0.150085\n0.284454 0.342346 0.151031\n0.305023 0.342865 0.151917\n0.326630 0.343628 0.152832\n0.349457 0.344147 0.153717\n0.373840 0.344757 0.154602\n0.400330 0.345459 0.155487\n0.429199 0.345978 0.156403\n0.460693 0.346619 0.157318\n0.495209 0.347321 0.158234\n0.533203 0.347839 0.159088\n0.574493 0.348602 0.160004\n0.618378 0.349121 0.160919\n0.665070 0.349792 0.161804\n0.713531 0.350464 0.162659\n0.763794 0.351013 0.163544\n0.815216 0.351776 0.164673\n0.867462 0.352295 0.165558\n0.915527 0.352814 0.166473\n0.000000 0.355286 0.140503\n0.000000 0.355774 0.141388\n0.000061 0.356384 0.142212\n0.025909 0.356964 0.143097\n0.058655 0.357422 0.143982\n0.087463 0.358002 0.144806\n0.114410 0.358704 0.145660\n0.139496 0.359161 0.146545\n0.162964 0.359863 0.147430\n0.184937 0.360382 0.148346\n0.205902 0.360901 0.149200\n0.226135 0.361633 0.150055\n0.245911 0.362183 0.150970\n0.265625 0.362762 0.151917\n0.285583 0.363434 0.152771\n0.306030 0.363983 0.153687\n0.327698 0.364594 0.154602\n0.350555 0.365234 0.155457\n0.374939 0.365753 0.156372\n0.401398 0.366516 0.157288\n0.430267 0.367065 0.158203\n0.461823 0.367645 0.159088\n0.496307 0.368347 0.159943\n0.534241 0.368927 0.160858\n0.575439 0.369537 0.161774\n0.619385 0.370209 0.162628\n0.665710 0.370728 0.163544\n0.714233 0.371521 0.164642\n0.764313 0.372040 0.165527\n0.815521 0.372620 0.166412\n0.867615 0.373322 0.167297\n0.915527 0.373871 0.168152\n0.000000 0.377350 0.142181\n0.000000 0.378082 0.143066\n0.002014 0.378571 0.143951\n0.028046 0.379059 0.144775\n0.060852 0.379761 0.145660\n0.089630 0.380219 0.146545\n0.116272 0.380768 0.147400\n0.141296 0.381500 0.148346\n0.164459 0.381989 0.149170\n0.186493 0.382599 0.150024\n0.207367 0.383240 0.150970\n0.227386 0.383759 0.151825\n0.247070 0.384521 0.152771\n0.266754 0.385040 0.153625\n0.286652 0.385559 0.154541\n0.307129 0.386322 0.155457\n0.328766 0.386871 0.156372\n0.351654 0.387421 0.157257\n0.376038 0.388153 0.158173\n0.402527 0.388672 0.159027\n0.431396 0.389435 0.159912\n0.462952 0.390015 0.160858\n0.497406 0.390503 0.161743\n0.535370 0.391266 0.162598\n0.576355 0.391815 0.163513\n0.620361 0.392365 0.164612\n0.666595 0.393127 0.165527\n0.714905 0.393677 0.166412\n0.764740 0.394409 0.167236\n0.816010 0.394958 0.168121\n0.867920 0.395447 0.168976\n0.915527 0.396210 0.169830\n0.000000 0.401154 0.143890\n0.000000 0.401703 0.144745\n0.004089 0.402283 0.145660\n0.030396 0.402893 0.146515\n0.063202 0.403381 0.147369\n0.091766 0.403900 0.148224\n0.118317 0.404663 0.149139\n0.143005 0.405182 0.150024\n0.166168 0.405823 0.150940\n0.187958 0.406433 0.151825\n0.208679 0.406982 0.152740\n0.228577 0.407684 0.153595\n0.248230 0.408234 0.154541\n0.267914 0.408905 0.155426\n0.287811 0.409485 0.156311\n0.308228 0.410034 0.157227\n0.329712 0.410706 0.158173\n0.352539 0.411346 0.159027\n0.377167 0.411896 0.159912\n0.403656 0.412659 0.160828\n0.432526 0.413208 0.161713\n0.464050 0.413818 0.162598\n0.498535 0.414520 0.163452\n0.536377 0.415039 0.164581\n0.577362 0.415680 0.165527\n0.621094 0.416321 0.166321\n0.667480 0.416870 0.167236\n0.715515 0.417603 0.168121\n0.765411 0.418182 0.168945\n0.816315 0.418701 0.169800\n0.868103 0.419434 0.170624\n0.915527 0.419952 0.171509\n0.000000 0.426666 0.145599\n0.000000 0.427277 0.146484\n0.006195 0.427917 0.147308\n0.032562 0.428406 0.148224\n0.065796 0.429169 0.149139\n0.093994 0.429657 0.149963\n0.120331 0.430176 0.150940\n0.144897 0.430908 0.151764\n0.167755 0.431458 0.152710\n0.189362 0.432098 0.153595\n0.209961 0.432739 0.154510\n0.229828 0.433228 0.155396\n0.249451 0.433990 0.156311\n0.269043 0.434570 0.157196\n0.288910 0.435089 0.158081\n0.309357 0.435852 0.158966\n0.330872 0.436401 0.159882\n0.353699 0.437042 0.160797\n0.378265 0.437714 0.161682\n0.404755 0.438232 0.162537\n0.433624 0.438873 0.163422\n0.465179 0.439545 0.164581\n0.499634 0.440094 0.165466\n0.537476 0.440826 0.166321\n0.578369 0.441376 0.167175\n0.622009 0.441986 0.168060\n0.668091 0.442688 0.168915\n0.716278 0.443176 0.169769\n0.765808 0.443817 0.170593\n0.816559 0.444489 0.171448\n0.868225 0.445007 0.172241\n0.915527 0.445770 0.173126\n0.000000 0.454498 0.147308\n0.000000 0.454987 0.148193\n0.008484 0.455719 0.149048\n0.034973 0.456268 0.149963\n0.068115 0.456787 0.150879\n0.096191 0.457520 0.151733\n0.122253 0.458008 0.152679\n0.146637 0.458740 0.153595\n0.169373 0.459320 0.154449\n0.190765 0.459869 0.155334\n0.211304 0.460602 0.156281\n0.231049 0.461182 0.157166\n0.250610 0.461670 0.158081\n0.270203 0.462463 0.158936\n0.290039 0.462982 0.159851\n0.310455 0.463562 0.160767\n0.331970 0.464264 0.161652\n0.354797 0.464844 0.162537\n0.379364 0.465607 0.163391\n0.405914 0.466125 0.164520\n0.434753 0.466675 0.165466\n0.466278 0.467438 0.166290\n0.500732 0.467957 0.167175\n0.538483 0.468506 0.168060\n0.579376 0.469269 0.168915\n0.622986 0.469818 0.169739\n0.668976 0.470581 0.170593\n0.716797 0.471100 0.171417\n0.766205 0.471619 0.172241\n0.817017 0.472351 0.173126\n0.868408 0.472870 0.173859\n0.915527 0.473389 0.174713\n0.000000 0.484741 0.149048\n0.000000 0.485321 0.149933\n0.010742 0.485992 0.150848\n0.037201 0.486511 0.151703\n0.070557 0.487274 0.152649\n0.098389 0.487793 0.153503\n0.124237 0.488342 0.154419\n0.148438 0.489075 0.155304\n0.170990 0.489624 0.156250\n0.192383 0.490143 0.157135\n0.212616 0.490936 0.158020\n0.232391 0.491425 0.158905\n0.251862 0.492188 0.159851\n0.271362 0.492737 0.160706\n0.291199 0.493317 0.161652\n0.311584 0.494019 0.162506\n0.333069 0.494598 0.163361\n0.355865 0.495209 0.164459\n0.380524 0.495880 0.165405\n0.406982 0.496399 0.166260\n0.435852 0.496979 0.167145\n0.467377 0.497711 0.167999\n0.501831 0.498230 0.168854\n0.539459 0.499023 0.169708\n0.580444 0.499512 0.170532\n0.623932 0.500061 0.171417\n0.669556 0.500793 0.172211\n0.717438 0.501312 0.173065\n0.766876 0.501831 0.173859\n0.817322 0.502594 0.174683\n0.868530 0.503052 0.175476\n0.915527 0.503632 0.176300\n0.000000 0.517944 0.150818\n0.000000 0.518463 0.151672\n0.013031 0.519165 0.152618\n0.039612 0.519714 0.153503\n0.073029 0.520264 0.154388\n0.100616 0.520966 0.155273\n0.126221 0.521515 0.156250\n0.150299 0.522186 0.157135\n0.172516 0.522797 0.157990\n0.193817 0.523346 0.158875\n0.214050 0.524048 0.159821\n0.233765 0.524597 0.160645\n0.253052 0.525146 0.161560\n0.272522 0.525848 0.162476\n0.292236 0.526428 0.163330\n0.312714 0.526947 0.164459\n0.334198 0.527710 0.165375\n0.356964 0.528198 0.166229\n0.381592 0.528992 0.167114\n0.408112 0.529510 0.167969\n0.436768 0.530029 0.168854\n0.468262 0.530762 0.169708\n0.502716 0.531311 0.170502\n0.540466 0.531799 0.171387\n0.581238 0.532562 0.172180\n0.624664 0.533081 0.173035\n0.670410 0.533539 0.173798\n0.718018 0.534302 0.174622\n0.767212 0.534790 0.175476\n0.817566 0.535370 0.176270\n0.868683 0.536011 0.177094\n0.915527 0.536499 0.177765\n0.000000 0.554169 0.152557\n0.000000 0.554779 0.153473\n0.015472 0.555298 0.154358\n0.041870 0.556030 0.155273\n0.075531 0.556519 0.156189\n0.102814 0.557068 0.157043\n0.128265 0.557831 0.157959\n0.151947 0.558289 0.158875\n0.174255 0.558929 0.159790\n0.195251 0.559509 0.160645\n0.215454 0.560059 0.161560\n0.235046 0.560577 0.162445\n0.254211 0.561371 0.163330\n0.273651 0.561829 0.164429\n0.293396 0.562500 0.165314\n0.313812 0.563141 0.166199\n0.335236 0.563568 0.167084\n0.358063 0.564362 0.167938\n0.382507 0.564850 0.168823\n0.409180 0.565338 0.169647\n0.437866 0.565979 0.170502\n0.469360 0.566559 0.171326\n0.503815 0.567078 0.172150\n0.541473 0.567780 0.173004\n0.582184 0.568268 0.173767\n0.625549 0.568756 0.174622\n0.671234 0.569489 0.175415\n0.718689 0.569916 0.176208\n0.767792 0.570435 0.177002\n0.817871 0.571136 0.177765\n0.868866 0.571625 0.178528\n0.915527 0.572052 0.179321\n0.000000 0.593445 0.154327\n0.000000 0.593933 0.155273\n0.017914 0.594635 0.156128\n0.044342 0.595093 0.157043\n0.077850 0.595612 0.157928\n0.104980 0.596161 0.158813\n0.130280 0.596832 0.159760\n0.153839 0.597260 0.160614\n0.175781 0.597961 0.161530\n0.196808 0.598511 0.162384\n0.216797 0.598907 0.163269\n0.236298 0.599579 0.164398\n0.255432 0.600159 0.165283\n0.274780 0.600616 0.166168\n0.294525 0.601166 0.167053\n0.314911 0.601807 0.167938\n0.336365 0.602264 0.168793\n0.359161 0.602783 0.169647\n0.383575 0.603455 0.170502\n0.410065 0.603912 0.171295\n0.438965 0.604462 0.172150\n0.470459 0.605103 0.172974\n0.504852 0.605560 0.173767\n0.542572 0.606018 0.174591\n0.583191 0.606689 0.175415\n0.626465 0.607117 0.176178\n0.671844 0.607513 0.176971\n0.719269 0.608154 0.177765\n0.768188 0.608673 0.178497\n0.818085 0.609070 0.179291\n0.869080 0.609497 0.180054\n0.915527 0.610107 0.180756\n0.000000 0.635284 0.156097\n0.000000 0.635742 0.157013\n0.020386 0.636139 0.157898\n0.047394 0.636566 0.158813\n0.080231 0.637268 0.159668\n0.107178 0.637695 0.160583\n0.132233 0.638153 0.161499\n0.155457 0.638824 0.162354\n0.177429 0.639221 0.163269\n0.198273 0.639648 0.164368\n0.218079 0.640289 0.165253\n0.237518 0.640778 0.166138\n0.256592 0.641205 0.167053\n0.275940 0.641663 0.167877\n0.295471 0.642334 0.168732\n0.316040 0.642761 0.169586\n0.337463 0.643188 0.170471\n0.360260 0.643860 0.171295\n0.384644 0.644257 0.172119\n0.411163 0.644684 0.172974\n0.440033 0.645142 0.173767\n0.471527 0.645721 0.174561\n0.505890 0.646149 0.175354\n0.543579 0.646545 0.176178\n0.584167 0.647186 0.176941\n0.627136 0.647583 0.177734\n0.672638 0.647980 0.178497\n0.719940 0.648346 0.179260\n0.768555 0.648956 0.180023\n0.818573 0.649353 0.180725\n0.869293 0.649689 0.181458\n0.915527 0.650116 0.182190\n0.000000 0.678925 0.157867\n0.000000 0.679565 0.158783\n0.022736 0.679932 0.159637\n0.051575 0.680267 0.160583\n0.082672 0.680756 0.161469\n0.109344 0.681335 0.162354\n0.134064 0.681702 0.163239\n0.157288 0.682068 0.164307\n0.179047 0.682556 0.165253\n0.199585 0.683075 0.166138\n0.219360 0.683472 0.166992\n0.238739 0.683868 0.167847\n0.257751 0.684235 0.168701\n0.277008 0.684845 0.169556\n0.296570 0.685211 0.170380\n0.317108 0.685577 0.171265\n0.338531 0.686005 0.172119\n0.361298 0.686523 0.172943\n0.385742 0.686920 0.173706\n0.412262 0.687225 0.174530\n0.441071 0.687775 0.175354\n0.472565 0.688171 0.176147\n0.506927 0.688568 0.176910\n0.544556 0.688904 0.177704\n0.584930 0.689209 0.178436\n0.628021 0.689819 0.179260\n0.673187 0.690125 0.180023\n0.720459 0.690491 0.180725\n0.769165 0.690826 0.181427\n0.818817 0.691223 0.182159\n0.869415 0.691681 0.182831\n0.915527 0.691956 0.183533\n0.000000 0.724579 0.159607\n0.000092 0.724884 0.160553\n0.025177 0.725220 0.161438\n0.055756 0.725769 0.162323\n0.085114 0.726044 0.163208\n0.111511 0.726379 0.164246\n0.136047 0.726715 0.165222\n0.158905 0.727203 0.166107\n0.180450 0.727539 0.166992\n0.200958 0.727875 0.167847\n0.220673 0.728210 0.168671\n0.239960 0.728546 0.169525\n0.258881 0.729034 0.170380\n0.278168 0.729340 0.171234\n0.297638 0.729614 0.172089\n0.317963 0.729919 0.172913\n0.339539 0.730225 0.173706\n0.362396 0.730804 0.174530\n0.386780 0.731079 0.175323\n0.413300 0.731415 0.176117\n0.442169 0.731659 0.176910\n0.473633 0.731964 0.177673\n0.507965 0.732513 0.178436\n0.545349 0.732758 0.179230\n0.585815 0.733032 0.179962\n0.628937 0.733307 0.180664\n0.673950 0.733582 0.181396\n0.720917 0.734070 0.182129\n0.769501 0.734344 0.182831\n0.819031 0.734589 0.183502\n0.869507 0.734863 0.184204\n0.915527 0.735077 0.184845\n0.000000 0.771301 0.161438\n0.002197 0.771759 0.162292\n0.027679 0.772034 0.163177\n0.059570 0.772278 0.164246\n0.087494 0.772522 0.165192\n0.113647 0.772736 0.166077\n0.138031 0.773010 0.166931\n0.160706 0.773407 0.167847\n0.182129 0.773682 0.168671\n0.202423 0.773956 0.169495\n0.222076 0.774170 0.170319\n0.241180 0.774414 0.171173\n0.260071 0.774689 0.172058\n0.279297 0.775116 0.172882\n0.298767 0.775360 0.173676\n0.319031 0.775574 0.174469\n0.340454 0.775818 0.175293\n0.363251 0.776062 0.176086\n0.387848 0.776215 0.176880\n0.414337 0.776550 0.177643\n0.443207 0.776917 0.178436\n0.474609 0.777161 0.179199\n0.508911 0.777374 0.179962\n0.546326 0.777618 0.180664\n0.586761 0.777802 0.181396\n0.629517 0.778015 0.182098\n0.674530 0.778168 0.182800\n0.721588 0.778564 0.183472\n0.769867 0.778809 0.184174\n0.819244 0.778992 0.184814\n0.869629 0.779205 0.185455\n0.915527 0.779388 0.186096\n0.000000 0.819061 0.163147\n0.004486 0.819153 0.164062\n0.029999 0.819336 0.165192\n0.062042 0.819489 0.166046\n0.089752 0.819794 0.166901\n0.115631 0.820068 0.167786\n0.139740 0.820282 0.168640\n0.162292 0.820404 0.169495\n0.183624 0.820557 0.170319\n0.203949 0.820740 0.171143\n0.223419 0.820892 0.171997\n0.242340 0.821045 0.172852\n0.261169 0.821259 0.173645\n0.280182 0.821564 0.174469\n0.299835 0.821808 0.175262\n0.320038 0.821899 0.176056\n0.341492 0.822052 0.176849\n0.364288 0.822266 0.177643\n0.388855 0.822388 0.178406\n0.415375 0.822510 0.179169\n0.444000 0.822693 0.179901\n0.475433 0.822815 0.180634\n0.509766 0.823120 0.181396\n0.547272 0.823364 0.182068\n0.587433 0.823456 0.182739\n0.630341 0.823608 0.183472\n0.675293 0.823792 0.184143\n0.722015 0.823853 0.184784\n0.770264 0.823975 0.185455\n0.819702 0.824127 0.186066\n0.869751 0.824249 0.186737\n0.915527 0.824402 0.187347\n0.000000 0.867218 0.165131\n0.006805 0.867310 0.166016\n0.032410 0.867401 0.166870\n0.064758 0.867493 0.167725\n0.092010 0.867554 0.168579\n0.117737 0.867645 0.169495\n0.141663 0.867737 0.170288\n0.164062 0.867798 0.171143\n0.185028 0.867920 0.171997\n0.205231 0.868103 0.172852\n0.224670 0.868286 0.173615\n0.243530 0.868378 0.174469\n0.262329 0.868439 0.175232\n0.281311 0.868530 0.176025\n0.300903 0.868622 0.176849\n0.321106 0.868652 0.177612\n0.342529 0.868744 0.178375\n0.365295 0.868835 0.179169\n0.389832 0.868896 0.179871\n0.416321 0.868988 0.180603\n0.445038 0.869049 0.181366\n0.476440 0.869110 0.182068\n0.510712 0.869171 0.182739\n0.548065 0.869263 0.183441\n0.588318 0.869293 0.184113\n0.631042 0.869385 0.184784\n0.675812 0.869446 0.185425\n0.722626 0.869568 0.186066\n0.770721 0.869720 0.186707\n0.819916 0.869781 0.187317\n0.869812 0.869934 0.187897\n0.915527 0.869995 0.188446\n0.000000 0.915527 0.166840\n0.009216 0.915527 0.167694\n0.034912 0.915527 0.168579\n0.067108 0.915527 0.169434\n0.094269 0.915527 0.170258\n0.119720 0.915527 0.171112\n0.143585 0.915527 0.171967\n0.165588 0.915527 0.172760\n0.186676 0.915527 0.173615\n0.206573 0.915527 0.174408\n0.225861 0.915527 0.175201\n0.244659 0.915527 0.176025\n0.263428 0.915527 0.176788\n0.282349 0.915527 0.177582\n0.301910 0.915527 0.178375\n0.322144 0.915527 0.179108\n0.343536 0.915527 0.179871\n0.366333 0.915527 0.180573\n0.390717 0.915527 0.181335\n0.417175 0.915527 0.182068\n0.446014 0.915527 0.182739\n0.477417 0.915527 0.183411\n0.511658 0.915527 0.184113\n0.548920 0.915527 0.184753\n0.589203 0.915527 0.185394\n0.631744 0.915527 0.186035\n0.676544 0.915527 0.186676\n0.723053 0.915527 0.187286\n0.770966 0.915527 0.187897\n0.820160 0.915527 0.188446\n0.869904 0.915527 0.189026\n0.915527 0.915527 0.189575\n0.000000 0.000000 0.153900\n0.000000 0.000000 0.154236\n0.000000 0.000000 0.154633\n0.000000 0.000000 0.154999\n0.025665 0.000000 0.155457\n0.058807 0.000000 0.155914\n0.088013 0.000000 0.156372\n0.115540 0.000000 0.156860\n0.141083 0.000000 0.157318\n0.165100 0.000000 0.157837\n0.187408 0.000000 0.158386\n0.208893 0.000000 0.158905\n0.229614 0.000000 0.159485\n0.249908 0.000000 0.160065\n0.270386 0.000000 0.160614\n0.291229 0.000000 0.161285\n0.312744 0.000000 0.161865\n0.335449 0.000000 0.162476\n0.359711 0.000000 0.163147\n0.386108 0.000000 0.163788\n0.414673 0.000000 0.164673\n0.446106 0.000000 0.165375\n0.480621 0.000000 0.166077\n0.518829 0.000000 0.166748\n0.560730 0.000000 0.167480\n0.605743 0.000000 0.168152\n0.653748 0.000000 0.168915\n0.704132 0.000000 0.169647\n0.756531 0.000000 0.170349\n0.810150 0.000000 0.171143\n0.864929 0.000000 0.171906\n0.915527 0.000000 0.172668\n0.000000 0.000000 0.154602\n0.000000 0.000000 0.154999\n0.000000 0.000000 0.155457\n0.000488 0.000000 0.155884\n0.026825 0.000000 0.156342\n0.059998 0.000000 0.156830\n0.089325 0.000000 0.157318\n0.116730 0.000000 0.157837\n0.142212 0.000000 0.158386\n0.165955 0.000000 0.158875\n0.188354 0.000000 0.159485\n0.209808 0.000000 0.160034\n0.230499 0.000000 0.160583\n0.250702 0.000000 0.161255\n0.271179 0.000000 0.161835\n0.291840 0.000000 0.162476\n0.313568 0.000000 0.163116\n0.336304 0.000244 0.163727\n0.360535 0.001251 0.164642\n0.386841 0.002350 0.165375\n0.415558 0.003448 0.166046\n0.447021 0.004639 0.166748\n0.481476 0.005829 0.167450\n0.519592 0.007050 0.168152\n0.561401 0.008331 0.168884\n0.606567 0.009644 0.169586\n0.654419 0.010986 0.170349\n0.704803 0.012329 0.171143\n0.756927 0.013641 0.171875\n0.810394 0.015045 0.172668\n0.865112 0.016418 0.173431\n0.915527 0.017761 0.174164\n0.000000 0.011963 0.155426\n0.000000 0.012726 0.155884\n0.000000 0.013580 0.156342\n0.001495 0.014313 0.156830\n0.028015 0.015167 0.157288\n0.061432 0.016083 0.157806\n0.090637 0.016968 0.158325\n0.118011 0.017822 0.158875\n0.143341 0.018829 0.159485\n0.167023 0.019867 0.160004\n0.189362 0.020874 0.160583\n0.210693 0.021851 0.161224\n0.231201 0.022858 0.161835\n0.251587 0.024017 0.162476\n0.271881 0.025085 0.163086\n0.292664 0.026276 0.163727\n0.314209 0.027435 0.164642\n0.336945 0.028656 0.165314\n0.361389 0.029877 0.166016\n0.387787 0.031097 0.166718\n0.416504 0.032349 0.167419\n0.447906 0.033630 0.168152\n0.482422 0.034882 0.168854\n0.520538 0.036194 0.169586\n0.562317 0.037537 0.170319\n0.607178 0.038788 0.171082\n0.655182 0.040192 0.171844\n0.705353 0.041565 0.172638\n0.757263 0.042908 0.173401\n0.810913 0.044312 0.174133\n0.865356 0.045715 0.174988\n0.915527 0.048157 0.175751\n0.000000 0.040955 0.156311\n0.000000 0.041779 0.156799\n0.000000 0.042633 0.157288\n0.002747 0.043396 0.157806\n0.029449 0.044342 0.158295\n0.062897 0.045288 0.158875\n0.092010 0.046661 0.159424\n0.119232 0.048340 0.160004\n0.144409 0.050018 0.160583\n0.168152 0.051910 0.161224\n0.190369 0.053772 0.161804\n0.211609 0.055573 0.162445\n0.232117 0.057770 0.163086\n0.252502 0.059326 0.163727\n0.272705 0.060516 0.164612\n0.293579 0.061829 0.165283\n0.315094 0.062988 0.166016\n0.337891 0.064331 0.166656\n0.362305 0.065704 0.167419\n0.388580 0.067017 0.168121\n0.417206 0.068359 0.168854\n0.448700 0.069794 0.169556\n0.483337 0.071228 0.170288\n0.521454 0.072601 0.171082\n0.563232 0.074036 0.171844\n0.608124 0.075500 0.172607\n0.655823 0.076935 0.173370\n0.705811 0.078400 0.174133\n0.757935 0.079865 0.174957\n0.811188 0.081360 0.175751\n0.865509 0.082855 0.176514\n0.915527 0.084381 0.177338\n0.000000 0.077545 0.157257\n0.000000 0.078583 0.157776\n0.000000 0.079468 0.158295\n0.004089 0.080444 0.158844\n0.030823 0.081451 0.159393\n0.064423 0.082458 0.159943\n0.093445 0.083374 0.160553\n0.120483 0.084534 0.161194\n0.145660 0.085632 0.161774\n0.169128 0.086578 0.162384\n0.191467 0.087769 0.163025\n0.212524 0.088989 0.163666\n0.233093 0.090118 0.164581\n0.253326 0.091156 0.165253\n0.273682 0.092438 0.165985\n0.294403 0.093689 0.166656\n0.316071 0.094940 0.167389\n0.338776 0.096191 0.168091\n0.363068 0.097412 0.168823\n0.389435 0.098602 0.169525\n0.418213 0.099945 0.170258\n0.449677 0.101288 0.171051\n0.484161 0.102600 0.171814\n0.522278 0.103973 0.172577\n0.563995 0.105255 0.173370\n0.609009 0.106537 0.174103\n0.656586 0.107849 0.174866\n0.706573 0.109253 0.175690\n0.758301 0.110657 0.176453\n0.811462 0.112061 0.177277\n0.865662 0.113464 0.178101\n0.915527 0.114838 0.178894\n0.000000 0.108673 0.158264\n0.000000 0.109467 0.158813\n0.000000 0.110443 0.159393\n0.005432 0.111389 0.159912\n0.032379 0.112274 0.160553\n0.066101 0.113312 0.161194\n0.095032 0.114319 0.161774\n0.121857 0.115204 0.162384\n0.147003 0.116272 0.162994\n0.170319 0.117249 0.163666\n0.192505 0.118347 0.164581\n0.213531 0.119446 0.165253\n0.234100 0.120514 0.165955\n0.254181 0.121613 0.166626\n0.274536 0.122772 0.167358\n0.295227 0.123962 0.168091\n0.316895 0.125153 0.168823\n0.339722 0.126129 0.169495\n0.364014 0.127380 0.170258\n0.390381 0.128601 0.171021\n0.419189 0.129852 0.171783\n0.450684 0.130890 0.172516\n0.485138 0.132141 0.173279\n0.523193 0.133392 0.174072\n0.564911 0.134705 0.174835\n0.609711 0.135895 0.175659\n0.657257 0.137024 0.176453\n0.707092 0.138306 0.177277\n0.758667 0.139526 0.178070\n0.811768 0.140869 0.178894\n0.865814 0.141968 0.179718\n0.915527 0.143250 0.180481\n0.000000 0.137848 0.159363\n0.000000 0.138580 0.159912\n0.000000 0.139526 0.160553\n0.006958 0.140350 0.161133\n0.034027 0.141235 0.161743\n0.067780 0.142120 0.162354\n0.096527 0.143005 0.162994\n0.123352 0.144043 0.163635\n0.148315 0.144836 0.164551\n0.171661 0.145905 0.165222\n0.193634 0.147003 0.165955\n0.214600 0.147797 0.166595\n0.235107 0.148895 0.167297\n0.255188 0.149994 0.168060\n0.275391 0.150879 0.168793\n0.296204 0.151978 0.169495\n0.317719 0.152985 0.170227\n0.340454 0.153992 0.171021\n0.364990 0.155151 0.171783\n0.391388 0.156250 0.172516\n0.420166 0.157227 0.173279\n0.451660 0.158356 0.174072\n0.486176 0.159515 0.174805\n0.524231 0.160461 0.175629\n0.565857 0.161621 0.176453\n0.610596 0.162781 0.177216\n0.658020 0.163788 0.178040\n0.707764 0.164886 0.178833\n0.759308 0.166107 0.179718\n0.812225 0.167267 0.180481\n0.865936 0.168213 0.181305\n0.915527 0.169434 0.182129\n0.000000 0.164734 0.160492\n0.000000 0.165619 0.161133\n0.000000 0.166290 0.161743\n0.008606 0.167175 0.162323\n0.035736 0.167877 0.162964\n0.069519 0.168854 0.163605\n0.098175 0.169525 0.164520\n0.124847 0.170502 0.165222\n0.149628 0.171265 0.165924\n0.172852 0.172241 0.166595\n0.194794 0.173126 0.167297\n0.215698 0.174011 0.167999\n0.236053 0.174957 0.168732\n0.256165 0.175781 0.169495\n0.276367 0.176849 0.170197\n0.297150 0.177643 0.170990\n0.318695 0.178650 0.171692\n0.341461 0.179657 0.172516\n0.365967 0.180542 0.173248\n0.392334 0.181610 0.174011\n0.420959 0.182434 0.174805\n0.452454 0.183502 0.175629\n0.487183 0.184601 0.176392\n0.525238 0.185455 0.177216\n0.566833 0.186493 0.178040\n0.611542 0.187592 0.178802\n0.658905 0.188446 0.179657\n0.708374 0.189545 0.180420\n0.759705 0.190369 0.181305\n0.812531 0.191467 0.182098\n0.866089 0.192566 0.182892\n0.915527 0.193420 0.183746\n0.000000 0.189667 0.161713\n0.000000 0.190247 0.162323\n0.000000 0.191071 0.162903\n0.010254 0.191681 0.163605\n0.037415 0.192596 0.164520\n0.071442 0.193237 0.165222\n0.099823 0.194122 0.165863\n0.126312 0.194855 0.166565\n0.150970 0.195709 0.167267\n0.174164 0.196411 0.167999\n0.195984 0.197357 0.168701\n0.216827 0.198059 0.169434\n0.237091 0.199005 0.170166\n0.257202 0.199707 0.170929\n0.277344 0.200653 0.171692\n0.298126 0.201416 0.172485\n0.319672 0.202362 0.173218\n0.342499 0.203278 0.174011\n0.366852 0.204132 0.174805\n0.393280 0.205078 0.175568\n0.422028 0.205872 0.176392\n0.453522 0.206879 0.177185\n0.488220 0.207611 0.177948\n0.526306 0.208588 0.178772\n0.567719 0.209442 0.179596\n0.612335 0.210358 0.180420\n0.659607 0.211365 0.181244\n0.709045 0.212189 0.182068\n0.760376 0.213165 0.182861\n0.812836 0.213959 0.183716\n0.866302 0.214935 0.184509\n0.915527 0.215912 0.185364\n0.000000 0.212585 0.162903\n0.000000 0.213379 0.163574\n0.000000 0.213928 0.164459\n0.012024 0.214752 0.165192\n0.039124 0.215393 0.165863\n0.073303 0.216156 0.166534\n0.101624 0.216827 0.167236\n0.128021 0.217682 0.167969\n0.152496 0.218292 0.168671\n0.175446 0.219055 0.169434\n0.197174 0.219818 0.170166\n0.217957 0.220551 0.170898\n0.238220 0.221375 0.171661\n0.258179 0.222107 0.172455\n0.278381 0.222931 0.173187\n0.298920 0.223602 0.173981\n0.320679 0.224487 0.174774\n0.343506 0.225189 0.175568\n0.367828 0.226135 0.176361\n0.394226 0.226898 0.177155\n0.423035 0.227722 0.177948\n0.454559 0.228668 0.178772\n0.489136 0.229340 0.179565\n0.527191 0.230072 0.180389\n0.568665 0.231018 0.181183\n0.613251 0.231873 0.182068\n0.660400 0.232666 0.182861\n0.709656 0.233582 0.183716\n0.760803 0.234314 0.184479\n0.813324 0.235229 0.185364\n0.866608 0.235931 0.186127\n0.915527 0.236908 0.187012\n0.000000 0.234344 0.164429\n0.000000 0.234833 0.165192\n0.000000 0.235626 0.165833\n0.013885 0.236206 0.166534\n0.041016 0.237000 0.167236\n0.075287 0.237549 0.167938\n0.103424 0.238342 0.168671\n0.129547 0.238953 0.169403\n0.153961 0.239624 0.170135\n0.176758 0.240326 0.170898\n0.198395 0.240967 0.171631\n0.219116 0.241760 0.172424\n0.239197 0.242371 0.173187\n0.259186 0.243256 0.173920\n0.279419 0.243866 0.174744\n0.299957 0.244690 0.175537\n0.321503 0.245361 0.176331\n0.344360 0.246002 0.177124\n0.368866 0.246857 0.177917\n0.395264 0.247498 0.178741\n0.424133 0.248352 0.179565\n0.455627 0.248993 0.180359\n0.490143 0.249878 0.181152\n0.528168 0.250549 0.182068\n0.569672 0.251434 0.182831\n0.614166 0.252075 0.183685\n0.661133 0.252960 0.184479\n0.710358 0.253601 0.185333\n0.761230 0.254517 0.186127\n0.813599 0.255188 0.186981\n0.866760 0.256073 0.187805\n0.915527 0.256744 0.188660\n0.000000 0.254944 0.165802\n0.000000 0.255493 0.166534\n0.000000 0.256226 0.167175\n0.015778 0.256775 0.167908\n0.042938 0.257294 0.168640\n0.077148 0.258026 0.169373\n0.105164 0.258575 0.170105\n0.131317 0.259369 0.170837\n0.155365 0.259918 0.171631\n0.178101 0.260620 0.172424\n0.199585 0.261261 0.173157\n0.220245 0.261841 0.173920\n0.240326 0.262665 0.174713\n0.260254 0.263184 0.175507\n0.280273 0.264038 0.176300\n0.301056 0.264648 0.177124\n0.322510 0.265228 0.177887\n0.345367 0.266083 0.178741\n0.369904 0.266663 0.179535\n0.396362 0.267456 0.180298\n0.425201 0.268097 0.181152\n0.456726 0.268890 0.181976\n0.491211 0.269531 0.182800\n0.529236 0.270264 0.183655\n0.570740 0.270966 0.184448\n0.615051 0.271606 0.185303\n0.661896 0.272430 0.186096\n0.710999 0.273041 0.186951\n0.761871 0.273926 0.187775\n0.813873 0.274536 0.188629\n0.866913 0.275360 0.189392\n0.915527 0.276001 0.190247\n0.000000 0.274811 0.167175\n0.000000 0.275543 0.167908\n0.000000 0.276031 0.168610\n0.017883 0.276642 0.169312\n0.044861 0.277283 0.170105\n0.079224 0.277771 0.170837\n0.107117 0.278534 0.171600\n0.132874 0.279022 0.172394\n0.157013 0.279602 0.173126\n0.179596 0.280365 0.173889\n0.200897 0.280884 0.174683\n0.221436 0.281494 0.175476\n0.241425 0.282227 0.176300\n0.261261 0.282776 0.177094\n0.281372 0.283569 0.177856\n0.302094 0.284119 0.178711\n0.323608 0.284698 0.179474\n0.346405 0.285492 0.180298\n0.370972 0.286041 0.181122\n0.397430 0.286865 0.181976\n0.426208 0.287415 0.182739\n0.457733 0.288239 0.183594\n0.492310 0.288818 0.184418\n0.530273 0.289490 0.185303\n0.571655 0.290192 0.186066\n0.615845 0.290802 0.186951\n0.662750 0.291565 0.187744\n0.711700 0.292206 0.188599\n0.762299 0.292908 0.189362\n0.814178 0.293549 0.190216\n0.867096 0.294159 0.191010\n0.915527 0.294983 0.191864\n0.000000 0.294647 0.168610\n0.000000 0.295135 0.169312\n0.000000 0.295593 0.170074\n0.019867 0.296234 0.170807\n0.048065 0.296814 0.171570\n0.081299 0.297333 0.172363\n0.108887 0.298065 0.173126\n0.134674 0.298553 0.173859\n0.158508 0.299103 0.174683\n0.181000 0.299835 0.175476\n0.202148 0.300354 0.176208\n0.222656 0.301117 0.177094\n0.242584 0.301636 0.177856\n0.262421 0.302155 0.178650\n0.282440 0.302917 0.179474\n0.303162 0.303467 0.180267\n0.324646 0.304047 0.181091\n0.347443 0.304810 0.181946\n0.372040 0.305359 0.182739\n0.398499 0.306122 0.183533\n0.427307 0.306732 0.184387\n0.458832 0.307220 0.185211\n0.493408 0.308044 0.186035\n0.531372 0.308594 0.186890\n0.572571 0.309357 0.187683\n0.616791 0.309967 0.188538\n0.663666 0.310547 0.189362\n0.712402 0.311310 0.190186\n0.762939 0.311859 0.191010\n0.814575 0.312653 0.191803\n0.867188 0.313202 0.192657\n0.915527 0.313782 0.193451\n0.000000 0.314362 0.170044\n0.000000 0.314819 0.170807\n0.000000 0.315308 0.171539\n0.021881 0.316010 0.172333\n0.051483 0.316498 0.173065\n0.083435 0.317047 0.173798\n0.110809 0.317688 0.174622\n0.136261 0.318207 0.175415\n0.159973 0.318695 0.176208\n0.182404 0.319397 0.177002\n0.203461 0.319946 0.177765\n0.223846 0.320679 0.178619\n0.243713 0.321198 0.179443\n0.263489 0.321716 0.180237\n0.283478 0.322479 0.181091\n0.304230 0.323029 0.181915\n0.325714 0.323700 0.182709\n0.348541 0.324310 0.183533\n0.373108 0.324860 0.184387\n0.399506 0.325653 0.185211\n0.428406 0.326172 0.186005\n0.459778 0.326721 0.186829\n0.494507 0.327515 0.187683\n0.532440 0.328064 0.188507\n0.573578 0.328796 0.189362\n0.617798 0.329346 0.190155\n0.664307 0.329926 0.191010\n0.713013 0.330688 0.191772\n0.763336 0.331268 0.192627\n0.815002 0.331940 0.193420\n0.867340 0.332581 0.194275\n0.915527 0.333099 0.195038\n0.000000 0.334412 0.171539\n0.000000 0.334991 0.172333\n0.000000 0.335602 0.173065\n0.024139 0.336090 0.173767\n0.055267 0.336548 0.174591\n0.085602 0.337280 0.175415\n0.112823 0.337799 0.176178\n0.138092 0.338379 0.176971\n0.161682 0.338989 0.177765\n0.183716 0.339539 0.178619\n0.204926 0.340240 0.179443\n0.225067 0.340790 0.180206\n0.244904 0.341278 0.181061\n0.264648 0.342041 0.181885\n0.284637 0.342529 0.182709\n0.305328 0.343079 0.183502\n0.326813 0.343842 0.184326\n0.349640 0.344360 0.185181\n0.374115 0.345093 0.186005\n0.400604 0.345642 0.186829\n0.429382 0.346191 0.187683\n0.460876 0.346954 0.188446\n0.495514 0.347504 0.189331\n0.533539 0.348145 0.190155\n0.574646 0.348816 0.190979\n0.618591 0.349335 0.191772\n0.665161 0.350128 0.192596\n0.713715 0.350647 0.193420\n0.763885 0.351196 0.194244\n0.815277 0.351959 0.195007\n0.867493 0.352478 0.195862\n0.915527 0.353088 0.196655\n0.000000 0.355469 0.173035\n0.000000 0.355957 0.173767\n0.000366 0.356659 0.174561\n0.026276 0.357117 0.175354\n0.058960 0.357605 0.176147\n0.087708 0.358337 0.176971\n0.114807 0.358856 0.177765\n0.139771 0.359344 0.178528\n0.163208 0.360077 0.179382\n0.185242 0.360596 0.180206\n0.206207 0.361145 0.181030\n0.226318 0.361816 0.181885\n0.246063 0.362366 0.182678\n0.265778 0.363068 0.183472\n0.285675 0.363647 0.184326\n0.306183 0.364166 0.185150\n0.327911 0.364929 0.186005\n0.350739 0.365448 0.186798\n0.375122 0.365967 0.187653\n0.401581 0.366730 0.188416\n0.430450 0.367310 0.189301\n0.461975 0.368011 0.190094\n0.496643 0.368561 0.190948\n0.534393 0.369110 0.191742\n0.575714 0.369873 0.192566\n0.619476 0.370361 0.193390\n0.665833 0.370941 0.194214\n0.714294 0.371704 0.195007\n0.764404 0.372253 0.195801\n0.815643 0.372986 0.196625\n0.867737 0.373535 0.197388\n0.915527 0.374054 0.198212\n0.000000 0.377563 0.174561\n0.000000 0.378235 0.175354\n0.002289 0.378723 0.176117\n0.028564 0.379395 0.176941\n0.061310 0.379913 0.177734\n0.089935 0.380432 0.178528\n0.116730 0.380951 0.179382\n0.141632 0.381653 0.180145\n0.164917 0.382202 0.181030\n0.186768 0.382935 0.181854\n0.207550 0.383423 0.182648\n0.227539 0.383972 0.183441\n0.247253 0.384705 0.184296\n0.266907 0.385254 0.185089\n0.286865 0.385925 0.185974\n0.307312 0.386505 0.186768\n0.329010 0.387054 0.187622\n0.351807 0.387756 0.188416\n0.376221 0.388336 0.189240\n0.402710 0.388855 0.190094\n0.431580 0.389648 0.190887\n0.463104 0.390167 0.191711\n0.497650 0.390839 0.192535\n0.535461 0.391479 0.193359\n0.576660 0.391998 0.194183\n0.620483 0.392731 0.195007\n0.666687 0.393311 0.195770\n0.715088 0.393829 0.196594\n0.764862 0.394623 0.197388\n0.816071 0.395142 0.198151\n0.867981 0.395782 0.198944\n0.915527 0.396423 0.199768\n0.000000 0.401398 0.176117\n0.000000 0.401886 0.176910\n0.004456 0.402588 0.177704\n0.030762 0.403076 0.178497\n0.063782 0.403595 0.179352\n0.092133 0.404266 0.180145\n0.118622 0.404846 0.181000\n0.143524 0.405365 0.181824\n0.166473 0.406128 0.182617\n0.188171 0.406647 0.183441\n0.208862 0.407196 0.184265\n0.228760 0.407898 0.185059\n0.248444 0.408417 0.185883\n0.268097 0.409180 0.186737\n0.287994 0.409729 0.187592\n0.308411 0.410217 0.188354\n0.329956 0.410980 0.189209\n0.352875 0.411560 0.190063\n0.377289 0.412048 0.190857\n0.403809 0.412872 0.191681\n0.432709 0.413391 0.192535\n0.464233 0.414124 0.193329\n0.498688 0.414703 0.194183\n0.536560 0.415222 0.194977\n0.577484 0.415955 0.195740\n0.621368 0.416534 0.196594\n0.667572 0.417053 0.197327\n0.715637 0.417816 0.198151\n0.765503 0.418335 0.198944\n0.816345 0.419098 0.199707\n0.868134 0.419586 0.200500\n0.915527 0.420197 0.201263\n0.000000 0.426849 0.177704\n0.000000 0.427582 0.178467\n0.006683 0.428070 0.179321\n0.033112 0.428558 0.180115\n0.066132 0.429321 0.180939\n0.094330 0.429840 0.181793\n0.120667 0.430450 0.182617\n0.145142 0.431122 0.183411\n0.168030 0.431641 0.184235\n0.189575 0.432404 0.185059\n0.210175 0.432892 0.185883\n0.230164 0.433472 0.186737\n0.249603 0.434204 0.187561\n0.269226 0.434753 0.188354\n0.289062 0.435333 0.189209\n0.309509 0.436035 0.190033\n0.331024 0.436584 0.190857\n0.354034 0.437347 0.191681\n0.378418 0.437897 0.192505\n0.404938 0.438416 0.193329\n0.433807 0.439178 0.194122\n0.465332 0.439758 0.194946\n0.499817 0.440338 0.195740\n0.537659 0.441040 0.196533\n0.578552 0.441559 0.197327\n0.622162 0.442352 0.198120\n0.668243 0.442871 0.198914\n0.716370 0.443390 0.199677\n0.765900 0.444183 0.200470\n0.816620 0.444672 0.201233\n0.868286 0.445221 0.201996\n0.915527 0.445984 0.202759\n0.000000 0.454651 0.179291\n0.000000 0.455170 0.180115\n0.008911 0.455963 0.180908\n0.035309 0.456451 0.181732\n0.068512 0.457092 0.182556\n0.096527 0.457703 0.183411\n0.122711 0.458252 0.184204\n0.147003 0.458984 0.185028\n0.169769 0.459534 0.185852\n0.191101 0.460052 0.186676\n0.211609 0.460815 0.187531\n0.231354 0.461334 0.188354\n0.250793 0.461945 0.189148\n0.270386 0.462646 0.190002\n0.290222 0.463226 0.190826\n0.310638 0.463959 0.191650\n0.332214 0.464508 0.192474\n0.355103 0.465057 0.193329\n0.379547 0.465820 0.194092\n0.406067 0.466339 0.194885\n0.434906 0.466888 0.195709\n0.466431 0.467651 0.196533\n0.500885 0.468201 0.197296\n0.538727 0.468903 0.198090\n0.579529 0.469482 0.198914\n0.623108 0.470001 0.199677\n0.669067 0.470764 0.200439\n0.716919 0.471283 0.201202\n0.766327 0.471924 0.201965\n0.817139 0.472534 0.202698\n0.868439 0.473083 0.203491\n0.915527 0.473633 0.204254\n0.000000 0.484955 0.180878\n0.000000 0.485687 0.181702\n0.011169 0.486176 0.182495\n0.037750 0.486725 0.183380\n0.071045 0.487457 0.184174\n0.098724 0.488007 0.185028\n0.124725 0.488708 0.185852\n0.148682 0.489288 0.186676\n0.171295 0.489838 0.187500\n0.192627 0.490448 0.188324\n0.212921 0.491089 0.189148\n0.232758 0.491638 0.189972\n0.252014 0.492401 0.190765\n0.271545 0.492950 0.191589\n0.291351 0.493561 0.192444\n0.311768 0.494263 0.193298\n0.333252 0.494781 0.194061\n0.356049 0.495575 0.194885\n0.380646 0.496063 0.195679\n0.407166 0.496643 0.196503\n0.436035 0.497345 0.197296\n0.467560 0.497925 0.198059\n0.501984 0.498413 0.198853\n0.539734 0.499207 0.199615\n0.580597 0.499695 0.200409\n0.624054 0.500427 0.201202\n0.669739 0.500977 0.201935\n0.717621 0.501495 0.202667\n0.766907 0.502167 0.203461\n0.817413 0.502777 0.204224\n0.868561 0.503265 0.204926\n0.915527 0.503967 0.205627\n0.000000 0.518158 0.182495\n0.000000 0.518799 0.183350\n0.013580 0.519409 0.184143\n0.039978 0.519867 0.184998\n0.073456 0.520569 0.185791\n0.100922 0.521179 0.186646\n0.126526 0.521698 0.187439\n0.150574 0.522461 0.188293\n0.172943 0.523010 0.189117\n0.194031 0.523499 0.189941\n0.214355 0.524292 0.190735\n0.234039 0.524811 0.191589\n0.253265 0.525330 0.192413\n0.272675 0.526093 0.193237\n0.292511 0.526611 0.194031\n0.312866 0.527374 0.194824\n0.334351 0.527863 0.195648\n0.357117 0.528412 0.196503\n0.381744 0.529175 0.197266\n0.408295 0.529694 0.198029\n0.437012 0.530243 0.198822\n0.468536 0.530945 0.199615\n0.503052 0.531464 0.200409\n0.540741 0.532013 0.201172\n0.581360 0.532715 0.201935\n0.624969 0.533264 0.202667\n0.670532 0.533875 0.203430\n0.718140 0.534454 0.204193\n0.767303 0.535034 0.204926\n0.817627 0.535706 0.205597\n0.868683 0.536224 0.206360\n0.915527 0.536682 0.207062\n0.000000 0.554474 0.184143\n0.000000 0.554932 0.184967\n0.016022 0.555481 0.185791\n0.042389 0.556213 0.186615\n0.075867 0.556732 0.187408\n0.103149 0.557373 0.188263\n0.128540 0.557953 0.189056\n0.152252 0.558502 0.189941\n0.174530 0.559204 0.190704\n0.195465 0.559753 0.191559\n0.215668 0.560242 0.192383\n0.235260 0.560883 0.193207\n0.254395 0.561523 0.194000\n0.273834 0.562042 0.194824\n0.293579 0.562744 0.195618\n0.313965 0.563293 0.196411\n0.335449 0.563782 0.197235\n0.358246 0.564514 0.197998\n0.382843 0.565033 0.198792\n0.409363 0.565521 0.199585\n0.438110 0.566254 0.200378\n0.469513 0.566772 0.201141\n0.504120 0.567230 0.201935\n0.541656 0.567993 0.202606\n0.582336 0.568451 0.203400\n0.625671 0.568909 0.204163\n0.671356 0.569672 0.204895\n0.718872 0.570099 0.205597\n0.767883 0.570587 0.206299\n0.817902 0.571320 0.207031\n0.868866 0.571777 0.207733\n0.915527 0.572174 0.208405\n0.000000 0.593628 0.185760\n0.000000 0.594116 0.186584\n0.018311 0.594818 0.187408\n0.044678 0.595276 0.188232\n0.078217 0.595795 0.189056\n0.105347 0.596497 0.189911\n0.130585 0.596954 0.190674\n0.154053 0.597412 0.191528\n0.176056 0.598175 0.192383\n0.197052 0.598633 0.193176\n0.216980 0.599152 0.194000\n0.236481 0.599823 0.194794\n0.255615 0.600342 0.195587\n0.274963 0.600830 0.196411\n0.294739 0.601471 0.197174\n0.315063 0.601990 0.197998\n0.336548 0.602448 0.198792\n0.359314 0.603149 0.199554\n0.383850 0.603577 0.200348\n0.410309 0.604126 0.201111\n0.439148 0.604767 0.201874\n0.470612 0.605225 0.202606\n0.505066 0.605713 0.203400\n0.542694 0.606323 0.204132\n0.583313 0.606812 0.204895\n0.626617 0.607300 0.205566\n0.671967 0.607727 0.206299\n0.719360 0.608368 0.207031\n0.768250 0.608795 0.207703\n0.818207 0.609222 0.208374\n0.869110 0.609894 0.209076\n0.915527 0.610291 0.209778\n0.000000 0.635468 0.187347\n0.000000 0.635895 0.188232\n0.020752 0.636322 0.189026\n0.048279 0.636871 0.189880\n0.080719 0.637421 0.190674\n0.107513 0.637848 0.191498\n0.132568 0.638306 0.192322\n0.155914 0.638947 0.193146\n0.177765 0.639404 0.193970\n0.198456 0.639832 0.194763\n0.218292 0.640503 0.195587\n0.237701 0.640930 0.196381\n0.256836 0.641357 0.197174\n0.276093 0.641876 0.197968\n0.295746 0.642487 0.198761\n0.316193 0.642883 0.199524\n0.337616 0.643311 0.200317\n0.360413 0.643982 0.201080\n0.384857 0.644409 0.201874\n0.411377 0.644836 0.202606\n0.440155 0.645477 0.203369\n0.471649 0.645874 0.204132\n0.506073 0.646332 0.204865\n0.543701 0.646698 0.205566\n0.584290 0.647339 0.206268\n0.627350 0.647736 0.206970\n0.672791 0.648102 0.207703\n0.720062 0.648499 0.208374\n0.768585 0.649139 0.209045\n0.818604 0.649475 0.209717\n0.869293 0.649872 0.210419\n0.915527 0.650299 0.211060\n0.000000 0.679047 0.188995\n0.000000 0.679657 0.189850\n0.023254 0.680115 0.190674\n0.052216 0.680481 0.191467\n0.083130 0.681000 0.192322\n0.109680 0.681488 0.193146\n0.134460 0.681885 0.193939\n0.157562 0.682220 0.194733\n0.179230 0.682861 0.195557\n0.199829 0.683228 0.196350\n0.219727 0.683624 0.197144\n0.238922 0.683960 0.197937\n0.257904 0.684540 0.198730\n0.277252 0.684937 0.199524\n0.296875 0.685333 0.200287\n0.317291 0.685730 0.201080\n0.338715 0.686340 0.201843\n0.361450 0.686646 0.202576\n0.385864 0.687042 0.203339\n0.412384 0.687378 0.204102\n0.441254 0.687988 0.204834\n0.472748 0.688324 0.205566\n0.507111 0.688690 0.206268\n0.544678 0.689026 0.206940\n0.585236 0.689331 0.207672\n0.628143 0.689911 0.208344\n0.673309 0.690247 0.209045\n0.720551 0.690582 0.209717\n0.769226 0.690887 0.210388\n0.818817 0.691498 0.211029\n0.869415 0.691803 0.211639\n0.915527 0.692108 0.212250\n0.000000 0.724670 0.190643\n0.000488 0.724976 0.191437\n0.025726 0.725403 0.192291\n0.056763 0.725891 0.193054\n0.085510 0.726196 0.193909\n0.111847 0.726501 0.194733\n0.136353 0.726868 0.195526\n0.159332 0.727356 0.196320\n0.180878 0.727661 0.197113\n0.201385 0.727997 0.197906\n0.221008 0.728333 0.198669\n0.240143 0.728821 0.199493\n0.259155 0.729187 0.200256\n0.278381 0.729462 0.201050\n0.297882 0.729767 0.201813\n0.318237 0.730072 0.202545\n0.339783 0.730438 0.203278\n0.362549 0.730896 0.204071\n0.386932 0.731171 0.204834\n0.413452 0.731506 0.205536\n0.442322 0.731781 0.206238\n0.473816 0.732208 0.206940\n0.508118 0.732574 0.207642\n0.545593 0.732819 0.208313\n0.585968 0.733154 0.209015\n0.628998 0.733398 0.209686\n0.674072 0.733734 0.210358\n0.720978 0.734161 0.210968\n0.769562 0.734436 0.211609\n0.819092 0.734711 0.212219\n0.869537 0.734955 0.212830\n0.915527 0.735168 0.213501\n0.000000 0.771515 0.192261\n0.002686 0.771851 0.193054\n0.028046 0.772125 0.193848\n0.059967 0.772369 0.194672\n0.087830 0.772614 0.195496\n0.113922 0.772827 0.196289\n0.138306 0.773071 0.197083\n0.160980 0.773560 0.197876\n0.182404 0.773773 0.198639\n0.202759 0.774048 0.199432\n0.222351 0.774261 0.200256\n0.241333 0.774506 0.201019\n0.260315 0.774811 0.201782\n0.279510 0.775238 0.202545\n0.298889 0.775452 0.203247\n0.319275 0.775665 0.204041\n0.340576 0.775879 0.204803\n0.363464 0.776123 0.205505\n0.388000 0.776337 0.206207\n0.414520 0.776764 0.206909\n0.443359 0.777008 0.207611\n0.474823 0.777222 0.208313\n0.509125 0.777496 0.208984\n0.546478 0.777649 0.209656\n0.586914 0.777863 0.210358\n0.629639 0.778076 0.210938\n0.674774 0.778259 0.211578\n0.721649 0.778625 0.212219\n0.769867 0.778900 0.212830\n0.819336 0.779114 0.213470\n0.869659 0.779266 0.214081\n0.915527 0.779449 0.214630\n0.000000 0.819092 0.193817\n0.004913 0.819244 0.194672\n0.030518 0.819427 0.195465\n0.062592 0.819580 0.196259\n0.090179 0.819946 0.197083\n0.116089 0.820190 0.197876\n0.140137 0.820312 0.198608\n0.162750 0.820496 0.199402\n0.183838 0.820648 0.200195\n0.204132 0.820831 0.200958\n0.223572 0.820923 0.201782\n0.242523 0.821136 0.202515\n0.261383 0.821381 0.203247\n0.280487 0.821716 0.203949\n0.299957 0.821808 0.204742\n0.320221 0.821960 0.205475\n0.341644 0.822144 0.206207\n0.364471 0.822296 0.206909\n0.389038 0.822449 0.207611\n0.415558 0.822540 0.208252\n0.444183 0.822754 0.208984\n0.475616 0.822906 0.209625\n0.510040 0.823151 0.210327\n0.547424 0.823395 0.210938\n0.587646 0.823517 0.211578\n0.630463 0.823700 0.212189\n0.675415 0.823792 0.212830\n0.722046 0.823944 0.213470\n0.770386 0.824036 0.214050\n0.819763 0.824158 0.214630\n0.869751 0.824310 0.215179\n0.915527 0.824402 0.215729\n0.000000 0.867249 0.195435\n0.007324 0.867371 0.196259\n0.032898 0.867401 0.197052\n0.065125 0.867493 0.197815\n0.092468 0.867584 0.198608\n0.118164 0.867676 0.199402\n0.141937 0.867737 0.200165\n0.164337 0.867798 0.200958\n0.185486 0.867981 0.201721\n0.205414 0.868164 0.202484\n0.224854 0.868286 0.203247\n0.243683 0.868378 0.203949\n0.262482 0.868469 0.204681\n0.281555 0.868561 0.205475\n0.301056 0.868622 0.206177\n0.321259 0.868713 0.206879\n0.342712 0.868774 0.207581\n0.365448 0.868835 0.208252\n0.390076 0.868958 0.208954\n0.416565 0.868988 0.209564\n0.445129 0.869110 0.210266\n0.476562 0.869110 0.210907\n0.510864 0.869202 0.211517\n0.548370 0.869263 0.212189\n0.588409 0.869354 0.212830\n0.631226 0.869385 0.213409\n0.676117 0.869446 0.214020\n0.722717 0.869568 0.214600\n0.770752 0.869720 0.215179\n0.819977 0.869873 0.215729\n0.869812 0.869934 0.216248\n0.915527 0.869995 0.216797\n0.000000 0.915527 0.197021\n0.009613 0.915527 0.197815\n0.035248 0.915527 0.198608\n0.067474 0.915527 0.199371\n0.094666 0.915527 0.200134\n0.120148 0.915527 0.200928\n0.143829 0.915527 0.201691\n0.165894 0.915527 0.202454\n0.186890 0.915527 0.203217\n0.206757 0.915527 0.203949\n0.226074 0.915527 0.204651\n0.244873 0.915527 0.205383\n0.263611 0.915527 0.206177\n0.282623 0.915527 0.206879\n0.302063 0.915527 0.207550\n0.322327 0.915527 0.208221\n0.343689 0.915527 0.208923\n0.366455 0.915527 0.209564\n0.390808 0.915527 0.210266\n0.417328 0.915527 0.210876\n0.446136 0.915527 0.211517\n0.477539 0.915527 0.212189\n0.511841 0.915527 0.212799\n0.549042 0.915527 0.213379\n0.589294 0.915527 0.214020\n0.631836 0.915527 0.214569\n0.676605 0.915527 0.215118\n0.723083 0.915527 0.215698\n0.770996 0.915527 0.216248\n0.820160 0.915527 0.216766\n0.869904 0.915527 0.217255\n0.915527 0.915527 0.217773\n0.000000 0.000000 0.186127\n0.000000 0.000000 0.186523\n0.000000 0.000000 0.186829\n0.000000 0.000000 0.187225\n0.025879 0.000000 0.187653\n0.058960 0.000000 0.188019\n0.088348 0.000000 0.188446\n0.115875 0.000000 0.188934\n0.141388 0.000000 0.189362\n0.165222 0.000000 0.189880\n0.187653 0.000000 0.190338\n0.209015 0.000000 0.190826\n0.229706 0.000000 0.191376\n0.250153 0.000000 0.191895\n0.270447 0.000000 0.192444\n0.291321 0.000000 0.192993\n0.312836 0.000000 0.193542\n0.335571 0.000000 0.194122\n0.359924 0.000000 0.194733\n0.386322 0.000000 0.195312\n0.414795 0.000000 0.195984\n0.446228 0.000000 0.196594\n0.480865 0.000000 0.197235\n0.519043 0.000000 0.197845\n0.560852 0.000000 0.198486\n0.605804 0.000000 0.199188\n0.653931 0.000000 0.199860\n0.704224 0.000000 0.200500\n0.756622 0.000000 0.201202\n0.810211 0.000000 0.201904\n0.864929 0.000000 0.202576\n0.915527 0.000000 0.203247\n0.000000 0.000000 0.186829\n0.000000 0.000000 0.187225\n0.000000 0.000000 0.187622\n0.000641 0.000000 0.188019\n0.027008 0.000000 0.188416\n0.060211 0.000000 0.188904\n0.089630 0.000000 0.189362\n0.117004 0.000000 0.189850\n0.142487 0.000000 0.190338\n0.166260 0.000000 0.190826\n0.188507 0.000000 0.191345\n0.209930 0.000000 0.191864\n0.230652 0.000000 0.192444\n0.250854 0.000000 0.192993\n0.271301 0.000000 0.193542\n0.291962 0.000000 0.194122\n0.313721 0.000000 0.194702\n0.336395 0.000702 0.195312\n0.360687 0.001709 0.195984\n0.386993 0.002838 0.196564\n0.415741 0.003998 0.197174\n0.447144 0.005127 0.197815\n0.481628 0.006348 0.198486\n0.519745 0.007599 0.199158\n0.561523 0.008820 0.199829\n0.606720 0.010132 0.200470\n0.654449 0.011444 0.201172\n0.704956 0.012756 0.201874\n0.756989 0.014069 0.202576\n0.810455 0.015533 0.203247\n0.865173 0.016968 0.203949\n0.915527 0.018402 0.204681\n0.000000 0.012329 0.187622\n0.000000 0.012970 0.188019\n0.000000 0.013794 0.188385\n0.001770 0.014679 0.188904\n0.028351 0.015472 0.189362\n0.061707 0.016327 0.189819\n0.090851 0.017303 0.190338\n0.118164 0.018311 0.190765\n0.143646 0.019165 0.191315\n0.167267 0.020172 0.191864\n0.189484 0.021210 0.192413\n0.210876 0.022278 0.192963\n0.231476 0.023376 0.193512\n0.251740 0.024506 0.194092\n0.272156 0.025513 0.194702\n0.292816 0.026642 0.195312\n0.314362 0.027832 0.195923\n0.337189 0.029022 0.196564\n0.361542 0.030243 0.197144\n0.387909 0.031494 0.197815\n0.416626 0.032745 0.198456\n0.448090 0.033997 0.199127\n0.482544 0.035278 0.199799\n0.520691 0.036621 0.200470\n0.562439 0.037933 0.201141\n0.607483 0.039276 0.201843\n0.655273 0.040619 0.202545\n0.705414 0.041962 0.203247\n0.757355 0.043365 0.203949\n0.810944 0.044678 0.204620\n0.865448 0.046753 0.205383\n0.915527 0.049194 0.206146\n0.000000 0.041321 0.188385\n0.000000 0.042023 0.188873\n0.000000 0.042938 0.189331\n0.002960 0.043823 0.189819\n0.029663 0.044586 0.190277\n0.063141 0.045593 0.190765\n0.092224 0.047424 0.191315\n0.119415 0.048737 0.191803\n0.144775 0.050598 0.192383\n0.168427 0.052490 0.192963\n0.190521 0.054535 0.193481\n0.211884 0.056580 0.194061\n0.232269 0.058350 0.194672\n0.252625 0.059692 0.195282\n0.272858 0.060944 0.195892\n0.293701 0.062195 0.196503\n0.315247 0.063568 0.197144\n0.337982 0.064972 0.197784\n0.362488 0.066254 0.198425\n0.388824 0.067627 0.199097\n0.417389 0.068848 0.199799\n0.448822 0.070251 0.200439\n0.483551 0.071655 0.201141\n0.521637 0.073029 0.201843\n0.563385 0.074463 0.202515\n0.608246 0.075989 0.203217\n0.656036 0.077393 0.203918\n0.705933 0.078857 0.204620\n0.757965 0.080414 0.205353\n0.811249 0.081848 0.206085\n0.865570 0.083313 0.206848\n0.915527 0.084839 0.207550\n0.000000 0.078064 0.189331\n0.000000 0.078857 0.189819\n0.000000 0.079865 0.190277\n0.004333 0.080719 0.190735\n0.031189 0.081757 0.191284\n0.064880 0.082794 0.191803\n0.093842 0.083740 0.192383\n0.120728 0.084839 0.192932\n0.145966 0.085999 0.193481\n0.169434 0.087128 0.194061\n0.191620 0.088104 0.194611\n0.212677 0.089355 0.195251\n0.233215 0.090546 0.195892\n0.253571 0.091766 0.196503\n0.273804 0.092957 0.197113\n0.294617 0.094055 0.197754\n0.316193 0.095337 0.198425\n0.338898 0.096649 0.199097\n0.363220 0.097900 0.199768\n0.389618 0.099182 0.200409\n0.418335 0.100372 0.201111\n0.449768 0.101715 0.201813\n0.484436 0.103058 0.202484\n0.522491 0.104401 0.203217\n0.564270 0.105774 0.203888\n0.609161 0.107147 0.204590\n0.656738 0.108521 0.205322\n0.706635 0.109833 0.206055\n0.758362 0.111206 0.206787\n0.811493 0.112488 0.207550\n0.865692 0.113892 0.208252\n0.915527 0.115326 0.209015\n0.000000 0.108978 0.190247\n0.000000 0.109863 0.190704\n0.000000 0.110748 0.191284\n0.005768 0.111755 0.191772\n0.032593 0.112518 0.192322\n0.066315 0.113586 0.192902\n0.095245 0.114685 0.193451\n0.122070 0.115540 0.194031\n0.147217 0.116638 0.194611\n0.170654 0.117798 0.195251\n0.192688 0.118683 0.195862\n0.213684 0.119812 0.196503\n0.234253 0.120972 0.197083\n0.254303 0.122040 0.197754\n0.274750 0.123108 0.198395\n0.295349 0.124329 0.199066\n0.317108 0.125488 0.199707\n0.339874 0.126648 0.200409\n0.364166 0.127747 0.201080\n0.390533 0.128998 0.201782\n0.419312 0.130219 0.202484\n0.450806 0.131439 0.203186\n0.485321 0.132507 0.203857\n0.523376 0.133789 0.204590\n0.565063 0.135071 0.205292\n0.609802 0.136322 0.206055\n0.657410 0.137543 0.206757\n0.707306 0.138672 0.207458\n0.758881 0.139954 0.208252\n0.811829 0.141235 0.208984\n0.865845 0.142578 0.209717\n0.915527 0.143860 0.210510\n0.000000 0.138123 0.191254\n0.000000 0.138977 0.191772\n0.000000 0.139771 0.192322\n0.007324 0.140747 0.192902\n0.034271 0.141541 0.193451\n0.068115 0.142548 0.194031\n0.096863 0.143311 0.194580\n0.123657 0.144348 0.195221\n0.148499 0.145386 0.195801\n0.171906 0.146210 0.196472\n0.193787 0.147278 0.197052\n0.214783 0.148254 0.197723\n0.235291 0.149231 0.198364\n0.255341 0.150299 0.199036\n0.275696 0.151306 0.199677\n0.296326 0.152283 0.200378\n0.317841 0.153442 0.201050\n0.340576 0.154419 0.201782\n0.365112 0.155457 0.202423\n0.391510 0.156586 0.203156\n0.420288 0.157776 0.203857\n0.451843 0.158691 0.204559\n0.486328 0.159851 0.205292\n0.524384 0.161011 0.205963\n0.566010 0.161957 0.206726\n0.610779 0.163147 0.207458\n0.658112 0.164307 0.208191\n0.707947 0.165344 0.208984\n0.759399 0.166473 0.209717\n0.812286 0.167633 0.210449\n0.865997 0.168854 0.211182\n0.915527 0.169830 0.211945\n0.000000 0.165009 0.192322\n0.000000 0.165863 0.192841\n0.000000 0.166534 0.193420\n0.008911 0.167480 0.194000\n0.035980 0.168152 0.194580\n0.069855 0.169128 0.195190\n0.098511 0.169830 0.195801\n0.125092 0.170776 0.196411\n0.149841 0.171692 0.197052\n0.173126 0.172516 0.197662\n0.194977 0.173492 0.198334\n0.215851 0.174286 0.199036\n0.236298 0.175293 0.199646\n0.256348 0.176086 0.200348\n0.276489 0.177124 0.201050\n0.297272 0.178131 0.201691\n0.318848 0.178955 0.202423\n0.341553 0.180054 0.203156\n0.366150 0.180817 0.203827\n0.392517 0.181915 0.204559\n0.421173 0.182983 0.205261\n0.452698 0.183807 0.205963\n0.487366 0.184906 0.206726\n0.525421 0.185852 0.207428\n0.567047 0.186798 0.208191\n0.611664 0.187927 0.208954\n0.659027 0.188843 0.209686\n0.708649 0.189850 0.210449\n0.759796 0.190948 0.211182\n0.812531 0.191772 0.211914\n0.866119 0.192902 0.212677\n0.915527 0.193970 0.213470\n0.000000 0.189850 0.193390\n0.000000 0.190521 0.193970\n0.000000 0.191345 0.194550\n0.010590 0.191986 0.195190\n0.037750 0.192841 0.195770\n0.071716 0.193604 0.196381\n0.100281 0.194366 0.197052\n0.126587 0.195160 0.197632\n0.151276 0.195984 0.198334\n0.174377 0.196686 0.199005\n0.196167 0.197632 0.199646\n0.216980 0.198456 0.200348\n0.237366 0.199249 0.201019\n0.257355 0.200226 0.201691\n0.277496 0.200958 0.202393\n0.298279 0.201904 0.203094\n0.319824 0.202667 0.203796\n0.342590 0.203613 0.204529\n0.367126 0.204346 0.205231\n0.393555 0.205322 0.205933\n0.422150 0.206238 0.206665\n0.453644 0.207153 0.207397\n0.488403 0.208038 0.208160\n0.526428 0.208893 0.208923\n0.567993 0.209869 0.209656\n0.612640 0.210663 0.210419\n0.659790 0.211670 0.211151\n0.709198 0.212463 0.211914\n0.760437 0.213501 0.212646\n0.812897 0.214417 0.213409\n0.866425 0.215240 0.214172\n0.915527 0.216217 0.214874\n0.000000 0.213013 0.194519\n0.000000 0.213562 0.195160\n0.000000 0.214233 0.195740\n0.012482 0.214966 0.196381\n0.039551 0.215607 0.197021\n0.073608 0.216431 0.197632\n0.101868 0.217041 0.198303\n0.128265 0.217896 0.198944\n0.152802 0.218506 0.199615\n0.175659 0.219391 0.200287\n0.197327 0.220062 0.200958\n0.218140 0.220917 0.201660\n0.238434 0.221558 0.202362\n0.258453 0.222504 0.203094\n0.278534 0.223175 0.203766\n0.299072 0.223999 0.204498\n0.320801 0.224762 0.205200\n0.343628 0.225677 0.205933\n0.367981 0.226349 0.206665\n0.394379 0.227295 0.207397\n0.423187 0.227966 0.208130\n0.454712 0.228882 0.208893\n0.489471 0.229645 0.209625\n0.527405 0.230530 0.210388\n0.568787 0.231262 0.211121\n0.613373 0.232208 0.211884\n0.660553 0.232880 0.212616\n0.709808 0.233856 0.213379\n0.760895 0.234558 0.214172\n0.813385 0.235504 0.214874\n0.866669 0.236237 0.215668\n0.915527 0.237152 0.216400\n0.000000 0.234528 0.195740\n0.000000 0.235291 0.196350\n0.000000 0.235809 0.196960\n0.014313 0.236420 0.197632\n0.041412 0.237183 0.198303\n0.075684 0.237732 0.198944\n0.103729 0.238556 0.199585\n0.129791 0.239136 0.200287\n0.154175 0.239990 0.200958\n0.176971 0.240570 0.201630\n0.198547 0.241211 0.202362\n0.219269 0.241974 0.203064\n0.239410 0.242645 0.203735\n0.259491 0.243469 0.204498\n0.279602 0.244110 0.205200\n0.300140 0.244934 0.205902\n0.321716 0.245605 0.206635\n0.344635 0.246399 0.207336\n0.368988 0.247070 0.208099\n0.395447 0.247894 0.208862\n0.424255 0.248566 0.209564\n0.455780 0.249390 0.210358\n0.490387 0.250122 0.211121\n0.528412 0.250977 0.211853\n0.569855 0.251648 0.212585\n0.614288 0.252319 0.213348\n0.661377 0.253204 0.214142\n0.710480 0.253876 0.214844\n0.761353 0.254761 0.215607\n0.813629 0.255402 0.216400\n0.866791 0.256317 0.217133\n0.915527 0.256927 0.217865\n0.000000 0.255157 0.196960\n0.000000 0.255859 0.197601\n0.000000 0.256439 0.198273\n0.016205 0.256927 0.198914\n0.043335 0.257690 0.199585\n0.077667 0.258240 0.200256\n0.105469 0.258820 0.200928\n0.131531 0.259552 0.201630\n0.155609 0.260132 0.202332\n0.178375 0.260895 0.203033\n0.199799 0.261444 0.203735\n0.220459 0.262085 0.204468\n0.240509 0.262848 0.205170\n0.260559 0.263458 0.205902\n0.280609 0.264252 0.206604\n0.301178 0.264832 0.207336\n0.322723 0.265686 0.208099\n0.345642 0.266235 0.208832\n0.370056 0.267029 0.209534\n0.396484 0.267700 0.210358\n0.425354 0.268311 0.211090\n0.456909 0.269135 0.211853\n0.491364 0.269745 0.212585\n0.529358 0.270599 0.213318\n0.570862 0.271210 0.214111\n0.615295 0.272064 0.214844\n0.662018 0.272675 0.215576\n0.711243 0.273285 0.216370\n0.761932 0.274109 0.217102\n0.813934 0.274750 0.217834\n0.866913 0.275604 0.218597\n0.915527 0.276215 0.219391\n0.000000 0.275055 0.198273\n0.000000 0.275696 0.198914\n0.000000 0.276215 0.199554\n0.018127 0.276947 0.200195\n0.045227 0.277466 0.200928\n0.079742 0.277954 0.201599\n0.107391 0.278717 0.202301\n0.133087 0.279266 0.203033\n0.157257 0.279785 0.203705\n0.179840 0.280548 0.204437\n0.201111 0.281067 0.205139\n0.221649 0.281860 0.205872\n0.241699 0.282410 0.206573\n0.261444 0.283112 0.207306\n0.281616 0.283752 0.208038\n0.302216 0.284302 0.208832\n0.323730 0.285095 0.209534\n0.346649 0.285706 0.210266\n0.371155 0.286316 0.211060\n0.397583 0.287079 0.211853\n0.426453 0.287598 0.212555\n0.457947 0.288422 0.213287\n0.492462 0.289032 0.214081\n0.530457 0.289856 0.214813\n0.571869 0.290436 0.215546\n0.616058 0.290985 0.216339\n0.662933 0.291779 0.217102\n0.711792 0.292389 0.217834\n0.762329 0.293213 0.218567\n0.814209 0.293823 0.219360\n0.867096 0.294556 0.220123\n0.915527 0.295197 0.220825\n0.000000 0.294861 0.199554\n0.000000 0.295319 0.200195\n0.000000 0.295776 0.200897\n0.020294 0.296509 0.201569\n0.048584 0.296997 0.202271\n0.081818 0.297516 0.202972\n0.109314 0.298218 0.203674\n0.134918 0.298767 0.204407\n0.158783 0.299500 0.205109\n0.181213 0.300018 0.205841\n0.202423 0.300537 0.206573\n0.222839 0.301270 0.207306\n0.242737 0.301849 0.208038\n0.262543 0.302368 0.208801\n0.282684 0.303131 0.209534\n0.303314 0.303680 0.210266\n0.324829 0.304474 0.211029\n0.347656 0.304993 0.211792\n0.372223 0.305603 0.212524\n0.398682 0.306366 0.213287\n0.427521 0.306885 0.214050\n0.459076 0.307587 0.214813\n0.493561 0.308228 0.215546\n0.531525 0.308777 0.216309\n0.572937 0.309601 0.217072\n0.617004 0.310120 0.217804\n0.663757 0.310944 0.218536\n0.712616 0.311493 0.219330\n0.763031 0.312103 0.220093\n0.814758 0.312836 0.220825\n0.867188 0.313416 0.221588\n0.915527 0.314178 0.222321\n0.000000 0.314514 0.200867\n0.000000 0.315002 0.201569\n0.000000 0.315582 0.202271\n0.022369 0.316162 0.202942\n0.052124 0.316681 0.203644\n0.083801 0.317383 0.204407\n0.111298 0.317871 0.205078\n0.136536 0.318359 0.205841\n0.160400 0.319061 0.206573\n0.182556 0.319611 0.207245\n0.203857 0.320129 0.208008\n0.224060 0.320862 0.208771\n0.243896 0.321381 0.209503\n0.263733 0.322083 0.210236\n0.283661 0.322662 0.210968\n0.304382 0.323242 0.211792\n0.325897 0.323975 0.212524\n0.348724 0.324493 0.213257\n0.373291 0.325043 0.214020\n0.399750 0.325836 0.214783\n0.428619 0.326355 0.215515\n0.459961 0.327118 0.216309\n0.494629 0.327698 0.217041\n0.532623 0.328278 0.217804\n0.573730 0.329010 0.218536\n0.617920 0.329559 0.219269\n0.664459 0.330139 0.220062\n0.713135 0.330902 0.220795\n0.763428 0.331451 0.221558\n0.815063 0.332214 0.222290\n0.867401 0.332764 0.223053\n0.915527 0.333374 0.223785\n0.000000 0.334564 0.202240\n0.000000 0.335266 0.202942\n0.000000 0.335815 0.203644\n0.024445 0.336243 0.204346\n0.055847 0.336884 0.205078\n0.086090 0.337494 0.205811\n0.113098 0.337952 0.206543\n0.138367 0.338684 0.207245\n0.161926 0.339203 0.208008\n0.183960 0.339722 0.208710\n0.205170 0.340454 0.209473\n0.225250 0.340942 0.210205\n0.245209 0.341461 0.210968\n0.264801 0.342224 0.211761\n0.284790 0.342743 0.212494\n0.305481 0.343475 0.213226\n0.326996 0.343994 0.214020\n0.349792 0.344543 0.214752\n0.374390 0.345306 0.215515\n0.400879 0.345825 0.216278\n0.429535 0.346405 0.217010\n0.461060 0.347137 0.217773\n0.495697 0.347687 0.218506\n0.533691 0.348450 0.219269\n0.574799 0.349030 0.220062\n0.618896 0.349548 0.220764\n0.665314 0.350311 0.221527\n0.713898 0.350830 0.222290\n0.764038 0.351624 0.223022\n0.815308 0.352112 0.223785\n0.867493 0.352692 0.224701\n0.915527 0.353455 0.225403\n0.000000 0.355652 0.203613\n0.000000 0.356140 0.204346\n0.000732 0.356812 0.205048\n0.026733 0.357300 0.205780\n0.059479 0.357788 0.206482\n0.088135 0.358551 0.207214\n0.115112 0.359039 0.207947\n0.140137 0.359589 0.208710\n0.163452 0.360260 0.209473\n0.185577 0.360748 0.210205\n0.206451 0.361511 0.210938\n0.226624 0.362030 0.211670\n0.246246 0.362549 0.212433\n0.265961 0.363312 0.213196\n0.285889 0.363800 0.213989\n0.306519 0.364349 0.214722\n0.328064 0.365082 0.215485\n0.350861 0.365631 0.216248\n0.375305 0.366333 0.217010\n0.401794 0.366943 0.217773\n0.430603 0.367462 0.218475\n0.462158 0.368225 0.219238\n0.496857 0.368744 0.220001\n0.534607 0.369324 0.220734\n0.575836 0.370056 0.221497\n0.619720 0.370605 0.222260\n0.666138 0.371338 0.222992\n0.714417 0.371948 0.223755\n0.764496 0.372437 0.224670\n0.815735 0.373199 0.225403\n0.867798 0.373718 0.226135\n0.915527 0.374420 0.226868\n0.000000 0.377930 0.205017\n0.000000 0.378448 0.205719\n0.002747 0.378906 0.206482\n0.028870 0.379639 0.207214\n0.061798 0.380127 0.207916\n0.090454 0.380615 0.208679\n0.117126 0.381348 0.209442\n0.141876 0.381866 0.210175\n0.165161 0.382355 0.210907\n0.186981 0.383118 0.211639\n0.207764 0.383636 0.212433\n0.227753 0.384247 0.213165\n0.247467 0.384888 0.213959\n0.267090 0.385437 0.214722\n0.286987 0.386169 0.215454\n0.307648 0.386688 0.216217\n0.329193 0.387268 0.216980\n0.351990 0.388000 0.217712\n0.376373 0.388550 0.218475\n0.402863 0.389160 0.219208\n0.431732 0.389832 0.219971\n0.463257 0.390381 0.220734\n0.497955 0.391144 0.221436\n0.535675 0.391693 0.222229\n0.576843 0.392212 0.222992\n0.620575 0.392975 0.223724\n0.666809 0.393494 0.224640\n0.715210 0.394104 0.225403\n0.765045 0.394806 0.226105\n0.816101 0.395355 0.226837\n0.868073 0.396088 0.227539\n0.915527 0.396606 0.228241\n0.000000 0.401550 0.206451\n0.000000 0.402069 0.207184\n0.004761 0.402771 0.207886\n0.031250 0.403259 0.208649\n0.064178 0.403748 0.209412\n0.092621 0.404510 0.210144\n0.119080 0.405029 0.210876\n0.143768 0.405548 0.211639\n0.166718 0.406311 0.212372\n0.188385 0.406799 0.213165\n0.209076 0.407562 0.213898\n0.229126 0.408081 0.214691\n0.248779 0.408630 0.215424\n0.268219 0.409363 0.216187\n0.288147 0.409912 0.216949\n0.308746 0.410461 0.217712\n0.330261 0.411224 0.218475\n0.353088 0.411713 0.219177\n0.377502 0.412476 0.219940\n0.403992 0.413025 0.220673\n0.432831 0.413574 0.221436\n0.464386 0.414368 0.222168\n0.498871 0.414886 0.222900\n0.536713 0.415405 0.223694\n0.577698 0.416199 0.224640\n0.621552 0.416718 0.225372\n0.667664 0.417450 0.226074\n0.715729 0.417969 0.226807\n0.765564 0.418549 0.227509\n0.816406 0.419281 0.228210\n0.868164 0.419830 0.228912\n0.915527 0.420471 0.229645\n0.000000 0.427002 0.207886\n0.000000 0.427795 0.208618\n0.007050 0.428253 0.209381\n0.033447 0.428925 0.210114\n0.066498 0.429504 0.210876\n0.094788 0.430054 0.211609\n0.121063 0.430756 0.212341\n0.145416 0.431305 0.213165\n0.168457 0.431824 0.213867\n0.190033 0.432587 0.214661\n0.210449 0.433105 0.215424\n0.230438 0.433624 0.216156\n0.249817 0.434448 0.216919\n0.269409 0.434937 0.217682\n0.289246 0.435730 0.218445\n0.309845 0.436218 0.219177\n0.331421 0.436768 0.219910\n0.354187 0.437561 0.220673\n0.378601 0.438110 0.221436\n0.405060 0.438599 0.222137\n0.433990 0.439392 0.222900\n0.465515 0.439941 0.223633\n0.499969 0.440704 0.224609\n0.537811 0.441223 0.225342\n0.578705 0.441742 0.226074\n0.622375 0.442535 0.226746\n0.668427 0.443085 0.227509\n0.716461 0.443604 0.228180\n0.765991 0.444366 0.228912\n0.816650 0.444855 0.229645\n0.868317 0.445587 0.230316\n0.915527 0.446136 0.231018\n0.000000 0.454865 0.209351\n0.000000 0.455505 0.210083\n0.009338 0.456146 0.210846\n0.035828 0.456635 0.211578\n0.069061 0.457397 0.212311\n0.097046 0.457916 0.213135\n0.122986 0.458435 0.213837\n0.147308 0.459198 0.214630\n0.169952 0.459717 0.215363\n0.191467 0.460449 0.216125\n0.211945 0.461029 0.216888\n0.231689 0.461578 0.217651\n0.251129 0.462280 0.218414\n0.270538 0.462891 0.219147\n0.290405 0.463379 0.219879\n0.310791 0.464172 0.220642\n0.332489 0.464661 0.221405\n0.355316 0.465424 0.222107\n0.379700 0.465973 0.222870\n0.406189 0.466553 0.223602\n0.435120 0.467224 0.224579\n0.466583 0.467865 0.225311\n0.501038 0.468384 0.226013\n0.538879 0.469177 0.226746\n0.579712 0.469666 0.227478\n0.623291 0.470245 0.228149\n0.669189 0.470947 0.228882\n0.716980 0.471497 0.229553\n0.766479 0.472198 0.230286\n0.817169 0.472748 0.230988\n0.868439 0.473267 0.231628\n0.915527 0.473999 0.232330\n0.000000 0.485138 0.210846\n0.000000 0.485870 0.211548\n0.011719 0.486420 0.212311\n0.038086 0.487030 0.213074\n0.071472 0.487671 0.213837\n0.099213 0.488190 0.214600\n0.125031 0.488953 0.215363\n0.149170 0.489471 0.216125\n0.171661 0.490021 0.216827\n0.192871 0.490753 0.217621\n0.213257 0.491302 0.218384\n0.232971 0.491821 0.219147\n0.252380 0.492615 0.219879\n0.271729 0.493164 0.220642\n0.291534 0.493896 0.221375\n0.311920 0.494446 0.222107\n0.333405 0.494995 0.222809\n0.356262 0.495728 0.223602\n0.380829 0.496277 0.224548\n0.407349 0.496826 0.225281\n0.436188 0.497559 0.226013\n0.467712 0.498108 0.226715\n0.502136 0.498779 0.227417\n0.539948 0.499390 0.228149\n0.580719 0.499939 0.228882\n0.624146 0.500641 0.229553\n0.669983 0.501221 0.230286\n0.717712 0.501648 0.230927\n0.766968 0.502441 0.231628\n0.817444 0.502930 0.232330\n0.868561 0.503448 0.232971\n0.915527 0.504150 0.233582\n0.000000 0.518341 0.212280\n0.000000 0.519073 0.213043\n0.013947 0.519592 0.213837\n0.040497 0.520111 0.214569\n0.073853 0.520844 0.215332\n0.101349 0.521362 0.216095\n0.127045 0.521881 0.216827\n0.150818 0.522644 0.217621\n0.173248 0.523163 0.218353\n0.194275 0.523834 0.219116\n0.214539 0.524475 0.219849\n0.234222 0.525024 0.220581\n0.253601 0.525696 0.221344\n0.272827 0.526276 0.222107\n0.292633 0.526794 0.222778\n0.313049 0.527588 0.223572\n0.334503 0.528076 0.224518\n0.357391 0.528625 0.225281\n0.381897 0.529388 0.225983\n0.408417 0.529877 0.226715\n0.437286 0.530640 0.227386\n0.468811 0.531158 0.228119\n0.503265 0.531677 0.228821\n0.541016 0.532379 0.229523\n0.581635 0.532928 0.230194\n0.625092 0.533417 0.230927\n0.670624 0.534180 0.231598\n0.718231 0.534668 0.232269\n0.767334 0.535187 0.232941\n0.817657 0.535919 0.233582\n0.868744 0.536346 0.234253\n0.915527 0.536865 0.234894\n0.000000 0.554626 0.213776\n0.000000 0.555145 0.214569\n0.016357 0.555756 0.215302\n0.042755 0.556396 0.216064\n0.076447 0.556915 0.216827\n0.103668 0.557648 0.217560\n0.129089 0.558167 0.218323\n0.152710 0.558716 0.219086\n0.174774 0.559418 0.219818\n0.195892 0.559906 0.220581\n0.215881 0.560455 0.221344\n0.235443 0.561218 0.222076\n0.254761 0.561676 0.222778\n0.274017 0.562225 0.223511\n0.293793 0.562958 0.224518\n0.314117 0.563477 0.225250\n0.335571 0.564087 0.225952\n0.358459 0.564728 0.226685\n0.383057 0.565216 0.227386\n0.409515 0.565765 0.228088\n0.438416 0.566437 0.228821\n0.469879 0.566925 0.229523\n0.504303 0.567535 0.230194\n0.541840 0.568176 0.230896\n0.582489 0.568634 0.231567\n0.625793 0.569336 0.232269\n0.671509 0.569824 0.232941\n0.718933 0.570282 0.233551\n0.767975 0.571014 0.234222\n0.817963 0.571442 0.234863\n0.868927 0.571930 0.235474\n0.915527 0.572357 0.236115\n0.000000 0.593842 0.215271\n0.000000 0.594391 0.216034\n0.018799 0.594940 0.216797\n0.045197 0.595490 0.217560\n0.078766 0.595917 0.218323\n0.105835 0.596649 0.219055\n0.130859 0.597137 0.219788\n0.154358 0.597626 0.220551\n0.176453 0.598328 0.221283\n0.197296 0.598816 0.222046\n0.217163 0.599365 0.222748\n0.236664 0.600006 0.223480\n0.255951 0.600525 0.224487\n0.275146 0.600952 0.225220\n0.294891 0.601685 0.225922\n0.315247 0.602173 0.226685\n0.336700 0.602600 0.227356\n0.359467 0.603302 0.228058\n0.384125 0.603821 0.228790\n0.410614 0.604248 0.229462\n0.439453 0.604950 0.230164\n0.470856 0.605469 0.230896\n0.505310 0.605865 0.231537\n0.542847 0.606567 0.232239\n0.583435 0.606964 0.232910\n0.626709 0.607452 0.233521\n0.672119 0.608002 0.234192\n0.719452 0.608551 0.234833\n0.768341 0.608948 0.235474\n0.818268 0.609436 0.236084\n0.869110 0.610077 0.236694\n0.915527 0.610474 0.237335\n0.000000 0.635620 0.216766\n0.000000 0.636017 0.217529\n0.021301 0.636475 0.218292\n0.048920 0.637115 0.219055\n0.081207 0.637573 0.219788\n0.108032 0.638031 0.220490\n0.132874 0.638672 0.221283\n0.156189 0.639099 0.222046\n0.177979 0.639557 0.222748\n0.198639 0.640045 0.223480\n0.218567 0.640625 0.224426\n0.237915 0.641083 0.225189\n0.257141 0.641541 0.225922\n0.276276 0.642212 0.226624\n0.296021 0.642639 0.227356\n0.316345 0.643066 0.228058\n0.337799 0.643616 0.228760\n0.360596 0.644165 0.229462\n0.385193 0.644562 0.230164\n0.411713 0.645020 0.230835\n0.440338 0.645630 0.231537\n0.471863 0.646027 0.232178\n0.506287 0.646454 0.232880\n0.543884 0.647064 0.233521\n0.584442 0.647461 0.234161\n0.627625 0.647858 0.234802\n0.672852 0.648254 0.235443\n0.720154 0.648743 0.236053\n0.768768 0.649261 0.236664\n0.818665 0.649597 0.237335\n0.869324 0.649994 0.237885\n0.915527 0.650543 0.238464\n0.000000 0.679413 0.218262\n0.000000 0.679840 0.219025\n0.023712 0.680237 0.219757\n0.053192 0.680573 0.220459\n0.083496 0.681244 0.221252\n0.110199 0.681610 0.221985\n0.134857 0.682007 0.222717\n0.157806 0.682373 0.223450\n0.179718 0.682953 0.224426\n0.200165 0.683350 0.225189\n0.220001 0.683746 0.225891\n0.239136 0.684113 0.226624\n0.258270 0.684723 0.227325\n0.277405 0.685089 0.228058\n0.297119 0.685455 0.228729\n0.317444 0.685852 0.229431\n0.338867 0.686462 0.230103\n0.361633 0.686768 0.230835\n0.386200 0.687195 0.231506\n0.412628 0.687531 0.232178\n0.441406 0.688110 0.232849\n0.472870 0.688446 0.233459\n0.507233 0.688843 0.234161\n0.544922 0.689148 0.234802\n0.585388 0.689636 0.235413\n0.628265 0.690033 0.236053\n0.673523 0.690399 0.236664\n0.720581 0.690704 0.237305\n0.769318 0.691040 0.237854\n0.818878 0.691589 0.238464\n0.869415 0.691864 0.239044\n0.915527 0.692169 0.239624\n0.000000 0.724792 0.219757\n0.000854 0.725098 0.220459\n0.026123 0.725647 0.221191\n0.057434 0.725952 0.221985\n0.085968 0.726288 0.222717\n0.112213 0.726624 0.223450\n0.136719 0.727051 0.224396\n0.159637 0.727448 0.225098\n0.181152 0.727814 0.225861\n0.201630 0.728119 0.226593\n0.221252 0.728424 0.227295\n0.240326 0.728943 0.228027\n0.259491 0.729309 0.228729\n0.278534 0.729523 0.229401\n0.298187 0.729858 0.230103\n0.318512 0.730194 0.230804\n0.339905 0.730621 0.231476\n0.362701 0.730988 0.232147\n0.387146 0.731323 0.232819\n0.413605 0.731598 0.233459\n0.442444 0.731873 0.234131\n0.473907 0.732391 0.234772\n0.508270 0.732666 0.235413\n0.545868 0.732941 0.236023\n0.586090 0.733215 0.236664\n0.629150 0.733490 0.237274\n0.674194 0.733887 0.237854\n0.721161 0.734253 0.238434\n0.769592 0.734497 0.239044\n0.819153 0.734802 0.239594\n0.869537 0.735016 0.240143\n0.915527 0.735291 0.240662\n0.000000 0.771729 0.221161\n0.003052 0.771942 0.221954\n0.028564 0.772186 0.222656\n0.060486 0.772461 0.223419\n0.088287 0.772705 0.224365\n0.114349 0.772888 0.225098\n0.138580 0.773254 0.225830\n0.161316 0.773651 0.226562\n0.182617 0.773834 0.227264\n0.202972 0.774139 0.227997\n0.222534 0.774353 0.228729\n0.241547 0.774567 0.229401\n0.260620 0.774994 0.230072\n0.279663 0.775330 0.230743\n0.299072 0.775513 0.231445\n0.319550 0.775757 0.232117\n0.340912 0.775970 0.232819\n0.363770 0.776184 0.233429\n0.388153 0.776459 0.234100\n0.414642 0.776886 0.234741\n0.443512 0.777100 0.235382\n0.474945 0.777313 0.235992\n0.509277 0.777527 0.236664\n0.546600 0.777740 0.237274\n0.587006 0.777985 0.237823\n0.629822 0.778137 0.238403\n0.674957 0.778442 0.238983\n0.721680 0.778778 0.239563\n0.769958 0.778931 0.240143\n0.819397 0.779144 0.240631\n0.869659 0.779358 0.241211\n0.915527 0.779510 0.241699\n0.000000 0.819153 0.222656\n0.005341 0.819305 0.223419\n0.030914 0.819489 0.224365\n0.063019 0.819794 0.225067\n0.090637 0.820038 0.225800\n0.116364 0.820221 0.226532\n0.140503 0.820374 0.227264\n0.162994 0.820526 0.227966\n0.184143 0.820679 0.228699\n0.204346 0.820831 0.229401\n0.223785 0.821045 0.230042\n0.242706 0.821167 0.230713\n0.261627 0.821472 0.231445\n0.280731 0.821747 0.232086\n0.300140 0.821869 0.232758\n0.320557 0.822052 0.233398\n0.341858 0.822174 0.234100\n0.364685 0.822357 0.234741\n0.389160 0.822510 0.235352\n0.415710 0.822632 0.235992\n0.444550 0.822815 0.236633\n0.475830 0.822968 0.237213\n0.510223 0.823273 0.237793\n0.547577 0.823456 0.238403\n0.587891 0.823578 0.238983\n0.630615 0.823730 0.239563\n0.675476 0.823853 0.240112\n0.722137 0.823975 0.240631\n0.770538 0.824066 0.241211\n0.819824 0.824219 0.241669\n0.869751 0.824341 0.242218\n0.915527 0.824463 0.242706\n0.000000 0.867310 0.224304\n0.007690 0.867371 0.225067\n0.033356 0.867462 0.225800\n0.065582 0.867554 0.226532\n0.092926 0.867645 0.227203\n0.118469 0.867676 0.227966\n0.142365 0.867767 0.228699\n0.164551 0.867920 0.229370\n0.185699 0.868103 0.230042\n0.205627 0.868164 0.230713\n0.225037 0.868347 0.231415\n0.243896 0.868439 0.232086\n0.262787 0.868469 0.232727\n0.281830 0.868561 0.233398\n0.301208 0.868652 0.234070\n0.321411 0.868744 0.234711\n0.342834 0.868774 0.235352\n0.365631 0.868896 0.235992\n0.390198 0.868958 0.236603\n0.416687 0.869049 0.237213\n0.445343 0.869110 0.237793\n0.476746 0.869171 0.238342\n0.510986 0.869202 0.238983\n0.548492 0.869293 0.239563\n0.588531 0.869354 0.240082\n0.631378 0.869446 0.240631\n0.676239 0.869446 0.241180\n0.722809 0.869720 0.241669\n0.770813 0.869781 0.242218\n0.820007 0.869873 0.242676\n0.869873 0.869934 0.243195\n0.915527 0.870087 0.243652\n0.000000 0.915527 0.225769\n0.010101 0.915527 0.226471\n0.035797 0.915527 0.227203\n0.068054 0.915527 0.227936\n0.095154 0.915527 0.228638\n0.120453 0.915527 0.229309\n0.144104 0.915527 0.230042\n0.166290 0.915527 0.230682\n0.187103 0.915527 0.231384\n0.207092 0.915527 0.232056\n0.226257 0.915527 0.232697\n0.245087 0.915527 0.233368\n0.263885 0.915527 0.234039\n0.282898 0.915527 0.234680\n0.302216 0.915527 0.235321\n0.322418 0.915527 0.235962\n0.343842 0.915527 0.236572\n0.366608 0.915527 0.237152\n0.391083 0.915527 0.237762\n0.417542 0.915527 0.238342\n0.446289 0.915527 0.238953\n0.477692 0.915527 0.239502\n0.511932 0.915527 0.240082\n0.549255 0.915527 0.240601\n0.589417 0.915527 0.241150\n0.631958 0.915527 0.241638\n0.676666 0.915527 0.242188\n0.723175 0.915527 0.242645\n0.771118 0.915527 0.243164\n0.820190 0.915527 0.243622\n0.869995 0.915527 0.244080\n0.915527 0.915527 0.244537\n0.000000 0.000000 0.216461\n0.000000 0.000000 0.216766\n0.000000 0.000000 0.217102\n0.000000 0.000000 0.217468\n0.026062 0.000000 0.217804\n0.059326 0.000000 0.218170\n0.088593 0.000000 0.218567\n0.115997 0.000000 0.219025\n0.141571 0.000000 0.219452\n0.165405 0.000000 0.219849\n0.187927 0.000000 0.220306\n0.209167 0.000000 0.220764\n0.229858 0.000000 0.221252\n0.250336 0.000000 0.221741\n0.270569 0.000000 0.222260\n0.291443 0.000000 0.222717\n0.312958 0.000000 0.223267\n0.335663 0.000000 0.223785\n0.360138 0.000000 0.224579\n0.386475 0.000000 0.225098\n0.414948 0.000000 0.225708\n0.446381 0.000000 0.226257\n0.481079 0.000000 0.226837\n0.519135 0.000000 0.227386\n0.561005 0.000000 0.228027\n0.605988 0.000000 0.228668\n0.653992 0.000000 0.229187\n0.704315 0.000000 0.229858\n0.756683 0.000000 0.230438\n0.810211 0.000000 0.231110\n0.864990 0.000000 0.231720\n0.915527 0.000000 0.232361\n0.000000 0.000000 0.217102\n0.000000 0.000000 0.217438\n0.000000 0.000000 0.217804\n0.000793 0.000000 0.218170\n0.027161 0.000000 0.218567\n0.060577 0.000000 0.218994\n0.089813 0.000000 0.219421\n0.117157 0.000000 0.219849\n0.142639 0.000000 0.220306\n0.166412 0.000000 0.220764\n0.188812 0.000000 0.221191\n0.210083 0.000000 0.221741\n0.230743 0.000000 0.222229\n0.251007 0.000000 0.222717\n0.271423 0.000000 0.223236\n0.292206 0.000000 0.223785\n0.313812 0.000061 0.224548\n0.336548 0.001007 0.225067\n0.360779 0.002075 0.225677\n0.387146 0.003204 0.226227\n0.415863 0.004333 0.226807\n0.447296 0.005524 0.227386\n0.481903 0.006775 0.227997\n0.520020 0.007965 0.228607\n0.561707 0.009277 0.229187\n0.606812 0.010529 0.229828\n0.654663 0.011841 0.230438\n0.705048 0.013336 0.231079\n0.757050 0.014679 0.231689\n0.810516 0.016083 0.232361\n0.865295 0.017456 0.233032\n0.915527 0.018860 0.233643\n0.000000 0.012573 0.217804\n0.000000 0.013367 0.218170\n0.000000 0.014069 0.218536\n0.001984 0.014954 0.218994\n0.028564 0.015869 0.219421\n0.061920 0.016632 0.219818\n0.091064 0.017609 0.220276\n0.118378 0.018585 0.220734\n0.143799 0.019623 0.221191\n0.167450 0.020508 0.221710\n0.189728 0.021545 0.222229\n0.211029 0.022614 0.222717\n0.231689 0.023712 0.223236\n0.251862 0.024872 0.223785\n0.272339 0.026001 0.224518\n0.292938 0.027161 0.225067\n0.314545 0.028381 0.225677\n0.337341 0.029480 0.226196\n0.361694 0.030731 0.226807\n0.388031 0.032013 0.227386\n0.416779 0.033295 0.227997\n0.448212 0.034454 0.228607\n0.482727 0.035828 0.229187\n0.520813 0.037140 0.229797\n0.562561 0.038422 0.230408\n0.607727 0.039825 0.231049\n0.655426 0.041199 0.231689\n0.705505 0.042572 0.232330\n0.757416 0.043945 0.233002\n0.811005 0.045349 0.233612\n0.865448 0.047699 0.234283\n0.915527 0.050018 0.234955\n0.000000 0.041595 0.218536\n0.000000 0.042450 0.218994\n0.000000 0.043182 0.219391\n0.003113 0.044098 0.219788\n0.029907 0.045044 0.220276\n0.063416 0.046021 0.220734\n0.092529 0.047852 0.221161\n0.119629 0.049652 0.221710\n0.144958 0.051300 0.222168\n0.168549 0.053131 0.222687\n0.190674 0.055145 0.223206\n0.212036 0.057190 0.223755\n0.232513 0.059052 0.224518\n0.252777 0.060242 0.225067\n0.273010 0.061340 0.225647\n0.293854 0.062622 0.226196\n0.315399 0.064026 0.226807\n0.338104 0.065369 0.227356\n0.362640 0.066711 0.227966\n0.388947 0.068085 0.228577\n0.417603 0.069489 0.229156\n0.449005 0.070892 0.229797\n0.483673 0.072266 0.230377\n0.521759 0.073639 0.231049\n0.563507 0.075195 0.231659\n0.608368 0.076569 0.232330\n0.656219 0.078064 0.232971\n0.706116 0.079407 0.233582\n0.758026 0.080902 0.234253\n0.811310 0.082428 0.234924\n0.865570 0.083832 0.235596\n0.915527 0.085388 0.236298\n0.000000 0.078339 0.219391\n0.000000 0.079163 0.219788\n0.000000 0.080200 0.220245\n0.004517 0.081207 0.220703\n0.031403 0.082092 0.221161\n0.065125 0.083130 0.221680\n0.094025 0.084290 0.222137\n0.121063 0.085205 0.222656\n0.146179 0.086365 0.223206\n0.169708 0.087494 0.223755\n0.191742 0.088654 0.224487\n0.212860 0.089691 0.225037\n0.233368 0.090881 0.225616\n0.253723 0.092194 0.226166\n0.273956 0.093384 0.226715\n0.294769 0.094513 0.227325\n0.316315 0.095764 0.227936\n0.339020 0.097015 0.228546\n0.363403 0.098358 0.229126\n0.389893 0.099670 0.229767\n0.418457 0.100983 0.230377\n0.449921 0.102325 0.231018\n0.484650 0.103607 0.231628\n0.522736 0.104858 0.232300\n0.564453 0.106201 0.232941\n0.609314 0.107544 0.233551\n0.656769 0.108948 0.234253\n0.706726 0.110352 0.234924\n0.758453 0.111725 0.235565\n0.811554 0.113190 0.236237\n0.865692 0.114532 0.236908\n0.915527 0.115814 0.237579\n0.000000 0.109222 0.220215\n0.000000 0.110260 0.220703\n0.000000 0.111023 0.221161\n0.006042 0.112030 0.221649\n0.032990 0.113098 0.222137\n0.066681 0.113922 0.222656\n0.095490 0.114960 0.223175\n0.122467 0.116058 0.223755\n0.147430 0.116974 0.224426\n0.170837 0.118134 0.225037\n0.192902 0.119232 0.225616\n0.213898 0.120148 0.226166\n0.234375 0.121338 0.226715\n0.254547 0.122528 0.227325\n0.274872 0.123688 0.227936\n0.295502 0.124695 0.228546\n0.317261 0.125916 0.229095\n0.339996 0.127106 0.229736\n0.364319 0.128357 0.230377\n0.390686 0.129364 0.231018\n0.419464 0.130615 0.231628\n0.450958 0.131866 0.232300\n0.485504 0.133087 0.232910\n0.523682 0.134308 0.233551\n0.565338 0.135437 0.234222\n0.610077 0.136719 0.234863\n0.657654 0.138000 0.235535\n0.707458 0.139313 0.236206\n0.759033 0.140503 0.236877\n0.811951 0.141632 0.237549\n0.865845 0.142944 0.238220\n0.915527 0.144257 0.238922\n0.000000 0.138397 0.221130\n0.000000 0.139374 0.221649\n0.000000 0.140076 0.222137\n0.007599 0.141022 0.222626\n0.034576 0.141785 0.223145\n0.068420 0.142822 0.223724\n0.097168 0.143829 0.224426\n0.123871 0.144653 0.225037\n0.148682 0.145660 0.225586\n0.172119 0.146637 0.226135\n0.193970 0.147614 0.226715\n0.214996 0.148651 0.227295\n0.235413 0.149506 0.227905\n0.255463 0.150635 0.228516\n0.275848 0.151733 0.229095\n0.296478 0.152618 0.229706\n0.317993 0.153748 0.230377\n0.340851 0.154877 0.231018\n0.365265 0.155884 0.231598\n0.391693 0.156921 0.232269\n0.420441 0.158081 0.232910\n0.451965 0.159149 0.233521\n0.486420 0.160217 0.234192\n0.524536 0.161377 0.234863\n0.566162 0.162537 0.235535\n0.610870 0.163483 0.236176\n0.658295 0.164673 0.236847\n0.708008 0.165863 0.237549\n0.759491 0.166901 0.238220\n0.812378 0.167999 0.238892\n0.865997 0.169189 0.239563\n0.915527 0.170349 0.240265\n0.000000 0.165222 0.222107\n0.000000 0.166107 0.222626\n0.000000 0.166901 0.223145\n0.009216 0.167694 0.223694\n0.036255 0.168427 0.224426\n0.070312 0.169373 0.225006\n0.098755 0.170288 0.225525\n0.125458 0.171082 0.226105\n0.150238 0.172028 0.226715\n0.173309 0.172791 0.227264\n0.195160 0.173798 0.227875\n0.216095 0.174591 0.228485\n0.236450 0.175598 0.229065\n0.256500 0.176605 0.229706\n0.276642 0.177429 0.230347\n0.297424 0.178467 0.230988\n0.319000 0.179291 0.231598\n0.341766 0.180328 0.232239\n0.366302 0.181396 0.232880\n0.392700 0.182190 0.233490\n0.421448 0.183258 0.234192\n0.453003 0.184357 0.234833\n0.487488 0.185211 0.235504\n0.525574 0.186310 0.236176\n0.567169 0.187134 0.236847\n0.611847 0.188202 0.237518\n0.659119 0.189331 0.238190\n0.708740 0.190155 0.238892\n0.759949 0.191254 0.239563\n0.812622 0.192291 0.240234\n0.866119 0.193176 0.240936\n0.915527 0.194275 0.241608\n0.000000 0.190033 0.223114\n0.000000 0.190918 0.223694\n0.000000 0.191559 0.224426\n0.010925 0.192383 0.224976\n0.038025 0.193054 0.225525\n0.072113 0.193970 0.226105\n0.100555 0.194641 0.226685\n0.126984 0.195526 0.227264\n0.151611 0.196228 0.227875\n0.174561 0.197144 0.228485\n0.196320 0.197845 0.229065\n0.217163 0.198792 0.229706\n0.237549 0.199524 0.230316\n0.257538 0.200500 0.230927\n0.277649 0.201233 0.231567\n0.298431 0.202209 0.232178\n0.319977 0.202942 0.232849\n0.342743 0.203918 0.233459\n0.367310 0.204895 0.234161\n0.393738 0.205658 0.234802\n0.422424 0.206635 0.235474\n0.453979 0.207397 0.236145\n0.488556 0.208405 0.236816\n0.526611 0.209198 0.237488\n0.568176 0.210205 0.238159\n0.612762 0.211151 0.238831\n0.660004 0.211975 0.239532\n0.709320 0.212921 0.240204\n0.760529 0.213745 0.240906\n0.812958 0.214752 0.241577\n0.866547 0.215546 0.242249\n0.915527 0.216522 0.242950\n0.000000 0.213196 0.224396\n0.000000 0.213806 0.224976\n0.000000 0.214600 0.225494\n0.012756 0.215210 0.226074\n0.039825 0.216034 0.226654\n0.073944 0.216675 0.227234\n0.102203 0.217468 0.227844\n0.128479 0.218140 0.228455\n0.152985 0.218781 0.229065\n0.175842 0.219666 0.229675\n0.197540 0.220306 0.230286\n0.218292 0.221161 0.230927\n0.238617 0.221832 0.231537\n0.258575 0.222717 0.232147\n0.278687 0.223419 0.232849\n0.299408 0.224335 0.233459\n0.320984 0.225006 0.234131\n0.343781 0.225952 0.234802\n0.368195 0.226624 0.235443\n0.394592 0.227509 0.236115\n0.423309 0.228271 0.236786\n0.454956 0.229156 0.237457\n0.489624 0.229889 0.238129\n0.527649 0.230804 0.238831\n0.569092 0.231537 0.239532\n0.613464 0.232452 0.240204\n0.660614 0.233307 0.240906\n0.709991 0.234100 0.241547\n0.760925 0.234802 0.242249\n0.813416 0.235748 0.242920\n0.866669 0.236603 0.243591\n0.915527 0.237396 0.244263\n0.000000 0.234680 0.225494\n0.000000 0.235504 0.226074\n0.000000 0.236023 0.226624\n0.014618 0.236816 0.227203\n0.041687 0.237396 0.227814\n0.075958 0.238007 0.228394\n0.104065 0.238739 0.229034\n0.130188 0.239349 0.229675\n0.154388 0.240173 0.230286\n0.177216 0.240784 0.230896\n0.198761 0.241638 0.231537\n0.219452 0.242249 0.232147\n0.239655 0.242950 0.232819\n0.259644 0.243683 0.233429\n0.279755 0.244324 0.234100\n0.300354 0.245178 0.234772\n0.321991 0.245850 0.235413\n0.344818 0.246674 0.236084\n0.369171 0.247314 0.236786\n0.395599 0.248199 0.237427\n0.424408 0.248840 0.238129\n0.455963 0.249695 0.238800\n0.490692 0.250366 0.239471\n0.528717 0.251282 0.240173\n0.570007 0.251862 0.240814\n0.614441 0.252747 0.241516\n0.661499 0.253448 0.242218\n0.710602 0.254272 0.242889\n0.761505 0.254974 0.243591\n0.813721 0.255859 0.244263\n0.866821 0.256531 0.244934\n0.915527 0.257172 0.245605\n0.000000 0.255341 0.226624\n0.000000 0.256104 0.227203\n0.000000 0.256592 0.227783\n0.016479 0.257111 0.228394\n0.043640 0.257874 0.229004\n0.077942 0.258453 0.229645\n0.105927 0.259155 0.230225\n0.131805 0.259766 0.230865\n0.156036 0.260345 0.231506\n0.178741 0.261139 0.232117\n0.200043 0.261658 0.232758\n0.220642 0.262451 0.233398\n0.240845 0.263092 0.234100\n0.260712 0.263641 0.234741\n0.280792 0.264465 0.235413\n0.301422 0.265106 0.236084\n0.322998 0.265900 0.236725\n0.345856 0.266479 0.237427\n0.370239 0.267365 0.238068\n0.396667 0.267914 0.238770\n0.425537 0.268555 0.239471\n0.457031 0.269409 0.240173\n0.491547 0.269958 0.240814\n0.529724 0.270813 0.241516\n0.571045 0.271423 0.242188\n0.615387 0.272308 0.242859\n0.662170 0.272919 0.243561\n0.711334 0.273651 0.244232\n0.762024 0.274353 0.244934\n0.813965 0.275055 0.245605\n0.867004 0.275818 0.246246\n0.915527 0.276428 0.246948\n0.000000 0.275391 0.227783\n0.000000 0.275909 0.228363\n0.000000 0.276398 0.228973\n0.018585 0.277130 0.229584\n0.045593 0.277679 0.230194\n0.080078 0.278290 0.230835\n0.107788 0.278900 0.231476\n0.133545 0.279449 0.232117\n0.157501 0.280182 0.232727\n0.180054 0.280731 0.233398\n0.201477 0.281311 0.234070\n0.221802 0.282043 0.234711\n0.241974 0.282623 0.235382\n0.261749 0.283386 0.236053\n0.281891 0.283966 0.236725\n0.302399 0.284546 0.237396\n0.324005 0.285309 0.238037\n0.346924 0.285889 0.238770\n0.371307 0.286682 0.239441\n0.397736 0.287262 0.240112\n0.426605 0.287933 0.240784\n0.458130 0.288635 0.241486\n0.492615 0.289246 0.242157\n0.530640 0.290039 0.242828\n0.572052 0.290649 0.243530\n0.616364 0.291351 0.244202\n0.663025 0.292023 0.244904\n0.711945 0.292572 0.245575\n0.762421 0.293427 0.246246\n0.814331 0.294037 0.246948\n0.867126 0.294861 0.247589\n0.915527 0.295410 0.248291\n0.000000 0.295013 0.228973\n0.000000 0.295502 0.229584\n0.000000 0.295959 0.230164\n0.020630 0.296661 0.230835\n0.049103 0.297211 0.231445\n0.082153 0.297821 0.232086\n0.109650 0.298431 0.232727\n0.135162 0.298920 0.233368\n0.158966 0.299683 0.234039\n0.181396 0.300201 0.234711\n0.202728 0.300812 0.235352\n0.223145 0.301483 0.236023\n0.243073 0.302002 0.236694\n0.262878 0.302704 0.237366\n0.282959 0.303345 0.238007\n0.303467 0.303864 0.238708\n0.324982 0.304657 0.239410\n0.347992 0.305206 0.240112\n0.372375 0.306000 0.240784\n0.398865 0.306549 0.241455\n0.427673 0.307098 0.242157\n0.459229 0.307861 0.242798\n0.493683 0.308441 0.243500\n0.531677 0.309143 0.244171\n0.573059 0.309784 0.244873\n0.617096 0.310364 0.245544\n0.663879 0.311157 0.246246\n0.712677 0.311707 0.246918\n0.763092 0.312500 0.247589\n0.814819 0.313080 0.248260\n0.867249 0.313629 0.248932\n0.915527 0.314392 0.249573\n0.000000 0.314697 0.230164\n0.000000 0.315186 0.230804\n0.000000 0.315857 0.231415\n0.022736 0.316376 0.232056\n0.053040 0.316833 0.232697\n0.084290 0.317535 0.233368\n0.111603 0.318054 0.234039\n0.137024 0.318542 0.234680\n0.160675 0.319275 0.235321\n0.182922 0.319794 0.235992\n0.204041 0.320404 0.236664\n0.224213 0.321045 0.237335\n0.244263 0.321625 0.238007\n0.264069 0.322327 0.238678\n0.283936 0.322906 0.239380\n0.304535 0.323425 0.240082\n0.326050 0.324188 0.240723\n0.348877 0.324707 0.241425\n0.373474 0.325317 0.242126\n0.399963 0.326019 0.242767\n0.428802 0.326599 0.243500\n0.460327 0.327332 0.244141\n0.494812 0.327911 0.244843\n0.532776 0.328613 0.245544\n0.573853 0.329224 0.246216\n0.618042 0.329773 0.246918\n0.664703 0.330566 0.247559\n0.713226 0.331085 0.248230\n0.763550 0.331635 0.248932\n0.815125 0.332397 0.249542\n0.867401 0.332947 0.250244\n0.915527 0.333710 0.250885\n0.000000 0.334747 0.231415\n0.000000 0.335480 0.232056\n0.000000 0.335938 0.232697\n0.024963 0.336456 0.233337\n0.056763 0.337158 0.234009\n0.086456 0.337646 0.234680\n0.113617 0.338165 0.235321\n0.138641 0.338867 0.235992\n0.162201 0.339386 0.236664\n0.184418 0.340057 0.237335\n0.205322 0.340607 0.237976\n0.225586 0.341156 0.238647\n0.245483 0.341797 0.239380\n0.264954 0.342407 0.240051\n0.285034 0.342896 0.240723\n0.305634 0.343689 0.241394\n0.327148 0.344208 0.242096\n0.349976 0.344849 0.242767\n0.374603 0.345490 0.243469\n0.401062 0.346039 0.244110\n0.429871 0.346741 0.244843\n0.461365 0.347382 0.245483\n0.495941 0.347870 0.246185\n0.533844 0.348663 0.246918\n0.574951 0.349182 0.247528\n0.619049 0.349915 0.248230\n0.665405 0.350494 0.248901\n0.714020 0.351044 0.249542\n0.764160 0.351807 0.250244\n0.815399 0.352356 0.250885\n0.867554 0.352875 0.251556\n0.915527 0.353668 0.252197\n0.000000 0.355804 0.232697\n0.000000 0.356537 0.233337\n0.001099 0.357025 0.234009\n0.027069 0.357483 0.234650\n0.059845 0.358093 0.235291\n0.088623 0.358704 0.235992\n0.115417 0.359222 0.236664\n0.140472 0.359955 0.237335\n0.163879 0.360443 0.237976\n0.185791 0.360962 0.238647\n0.206665 0.361694 0.239319\n0.226898 0.362213 0.240021\n0.246582 0.362885 0.240692\n0.266144 0.363495 0.241364\n0.286133 0.364014 0.242065\n0.306793 0.364685 0.242737\n0.328247 0.365295 0.243439\n0.351074 0.365845 0.244110\n0.375610 0.366577 0.244812\n0.402130 0.367096 0.245483\n0.431030 0.367737 0.246185\n0.462524 0.368408 0.246826\n0.497040 0.368988 0.247528\n0.534973 0.369629 0.248230\n0.575989 0.370270 0.248871\n0.619934 0.370789 0.249542\n0.666351 0.371552 0.250214\n0.714539 0.372101 0.250854\n0.764587 0.372742 0.251556\n0.815857 0.373383 0.252197\n0.867798 0.373932 0.252869\n0.915527 0.374664 0.253510\n0.000000 0.378113 0.233978\n0.000000 0.378601 0.234650\n0.003052 0.379120 0.235260\n0.029388 0.379791 0.235962\n0.062134 0.380249 0.236633\n0.090790 0.380798 0.237305\n0.117432 0.381561 0.237946\n0.142273 0.382050 0.238617\n0.165436 0.382660 0.239319\n0.187225 0.383301 0.239990\n0.207977 0.383789 0.240662\n0.228149 0.384583 0.241364\n0.247833 0.385101 0.242065\n0.267365 0.385590 0.242706\n0.287170 0.386383 0.243408\n0.307831 0.386902 0.244080\n0.329315 0.387482 0.244751\n0.352142 0.388184 0.245453\n0.376709 0.388733 0.246155\n0.403198 0.389496 0.246826\n0.432098 0.390045 0.247498\n0.463440 0.390564 0.248169\n0.498138 0.391357 0.248871\n0.536011 0.391876 0.249512\n0.576996 0.392456 0.250214\n0.620728 0.393158 0.250854\n0.666962 0.393707 0.251526\n0.715302 0.394440 0.252167\n0.765167 0.395020 0.252838\n0.816162 0.395508 0.253479\n0.868073 0.396271 0.254089\n0.915527 0.396790 0.254730\n0.000000 0.401733 0.235260\n0.000000 0.402344 0.235962\n0.005249 0.402954 0.236603\n0.031586 0.403473 0.237274\n0.064697 0.403961 0.237915\n0.093018 0.404694 0.238617\n0.119446 0.405212 0.239319\n0.144043 0.405945 0.239990\n0.167023 0.406464 0.240631\n0.188751 0.407013 0.241333\n0.209290 0.407715 0.242035\n0.229401 0.408264 0.242706\n0.249023 0.408966 0.243408\n0.268433 0.409576 0.244080\n0.288300 0.410065 0.244720\n0.308960 0.410767 0.245422\n0.330475 0.411377 0.246124\n0.353241 0.411926 0.246796\n0.377808 0.412689 0.247467\n0.404297 0.413239 0.248169\n0.433044 0.413879 0.248840\n0.464539 0.414551 0.249481\n0.499084 0.415070 0.250183\n0.536957 0.415741 0.250824\n0.578003 0.416382 0.251495\n0.621704 0.416931 0.252167\n0.667816 0.417633 0.252808\n0.715790 0.418243 0.253448\n0.765625 0.418823 0.254089\n0.816467 0.419464 0.254700\n0.868164 0.419983 0.255371\n0.915527 0.420776 0.255981\n0.000000 0.427399 0.236603\n0.000000 0.427948 0.237244\n0.007507 0.428436 0.237915\n0.033966 0.429199 0.238586\n0.067047 0.429688 0.239288\n0.095184 0.430206 0.239990\n0.121490 0.430969 0.240631\n0.145905 0.431488 0.241302\n0.168701 0.432190 0.242004\n0.190247 0.432831 0.242676\n0.210815 0.433289 0.243347\n0.230652 0.434052 0.244080\n0.250153 0.434601 0.244690\n0.269592 0.435120 0.245392\n0.289429 0.435883 0.246124\n0.310059 0.436432 0.246765\n0.331573 0.437134 0.247437\n0.354370 0.437775 0.248138\n0.378784 0.438293 0.248810\n0.405426 0.438995 0.249481\n0.434143 0.439575 0.250153\n0.465637 0.440125 0.250793\n0.500183 0.440887 0.251465\n0.537994 0.441437 0.252106\n0.578857 0.442108 0.252777\n0.622620 0.442749 0.253448\n0.668671 0.443237 0.254028\n0.716553 0.443939 0.254700\n0.766022 0.444550 0.255371\n0.816772 0.445038 0.255951\n0.868317 0.445831 0.256592\n0.915527 0.446350 0.257172\n0.000000 0.455078 0.237885\n0.000000 0.455780 0.238556\n0.009766 0.456299 0.239258\n0.036224 0.456848 0.239929\n0.069458 0.457581 0.240601\n0.097382 0.458069 0.241302\n0.123444 0.458862 0.241974\n0.147583 0.459381 0.242645\n0.170197 0.459930 0.243347\n0.191681 0.460663 0.244049\n0.212158 0.461212 0.244659\n0.231903 0.461731 0.245392\n0.251404 0.462494 0.246063\n0.270752 0.463043 0.246735\n0.290558 0.463623 0.247437\n0.311035 0.464325 0.248108\n0.332672 0.464905 0.248779\n0.355469 0.465668 0.249451\n0.379883 0.466187 0.250122\n0.406342 0.466736 0.250763\n0.435272 0.467529 0.251465\n0.466766 0.468018 0.252075\n0.501190 0.468597 0.252777\n0.539001 0.469330 0.253418\n0.579865 0.469849 0.254028\n0.623383 0.470612 0.254669\n0.669312 0.471161 0.255310\n0.717102 0.471680 0.255920\n0.766632 0.472412 0.256561\n0.817200 0.472931 0.257172\n0.868469 0.473450 0.257782\n0.915527 0.474182 0.258423\n0.000000 0.485413 0.239258\n0.000000 0.486053 0.239899\n0.012054 0.486572 0.240601\n0.038605 0.487335 0.241302\n0.071899 0.487854 0.241943\n0.099609 0.488373 0.242645\n0.125458 0.489136 0.243317\n0.149414 0.489716 0.244019\n0.171967 0.490204 0.244659\n0.193146 0.490967 0.245331\n0.213440 0.491486 0.246063\n0.233124 0.492310 0.246735\n0.252563 0.492798 0.247375\n0.271942 0.493347 0.248077\n0.291687 0.494080 0.248749\n0.312134 0.494659 0.249420\n0.333710 0.495331 0.250122\n0.356567 0.495941 0.250763\n0.380981 0.496460 0.251434\n0.407501 0.497101 0.252075\n0.436371 0.497772 0.252747\n0.467896 0.498291 0.253387\n0.502319 0.499054 0.253998\n0.540039 0.499573 0.254669\n0.580872 0.500153 0.255280\n0.624329 0.500854 0.255920\n0.670105 0.501373 0.256531\n0.717865 0.501892 0.257141\n0.767059 0.502625 0.257782\n0.817505 0.503113 0.258362\n0.868652 0.503754 0.258972\n0.915527 0.504364 0.259552\n0.000000 0.518555 0.240570\n0.000000 0.519257 0.241272\n0.014465 0.519775 0.241943\n0.040863 0.520355 0.242645\n0.074402 0.521027 0.243286\n0.101837 0.521576 0.243988\n0.127350 0.522247 0.244629\n0.151093 0.522827 0.245331\n0.173462 0.523407 0.246033\n0.194641 0.524109 0.246674\n0.214783 0.524658 0.247375\n0.234375 0.525208 0.248077\n0.253784 0.525940 0.248718\n0.273041 0.526489 0.249390\n0.292816 0.527069 0.250092\n0.313263 0.527740 0.250702\n0.334778 0.528290 0.251404\n0.357666 0.529053 0.252045\n0.382080 0.529572 0.252716\n0.408600 0.530090 0.253357\n0.437439 0.530823 0.253967\n0.468964 0.531372 0.254639\n0.503387 0.531860 0.255249\n0.541138 0.532593 0.255890\n0.581879 0.533112 0.256500\n0.625244 0.533630 0.257141\n0.670746 0.534363 0.257782\n0.718323 0.534851 0.258362\n0.767426 0.535461 0.258972\n0.817749 0.536072 0.259521\n0.868744 0.536560 0.260132\n0.915527 0.537018 0.260681\n0.000000 0.554871 0.241943\n0.000000 0.555328 0.242584\n0.016876 0.556061 0.243286\n0.043304 0.556580 0.243988\n0.076782 0.557129 0.244598\n0.104034 0.557861 0.245300\n0.129364 0.558350 0.246002\n0.152954 0.558990 0.246674\n0.175232 0.559631 0.247345\n0.196106 0.560120 0.248047\n0.216187 0.560608 0.248718\n0.235626 0.561401 0.249390\n0.254944 0.561890 0.250061\n0.274170 0.562561 0.250702\n0.293945 0.563141 0.251404\n0.314301 0.563629 0.252014\n0.335907 0.564392 0.252686\n0.358795 0.564911 0.253357\n0.383179 0.565430 0.253967\n0.409698 0.566101 0.254639\n0.438568 0.566650 0.255219\n0.470062 0.567108 0.255859\n0.504456 0.567841 0.256500\n0.541992 0.568359 0.257111\n0.582703 0.568817 0.257751\n0.625946 0.569519 0.258331\n0.671600 0.570038 0.258942\n0.719025 0.570465 0.259491\n0.768066 0.571167 0.260132\n0.817993 0.571655 0.260681\n0.868927 0.572083 0.261230\n0.915527 0.572723 0.261780\n0.000000 0.593964 0.243286\n0.000000 0.594666 0.243927\n0.019196 0.595154 0.244598\n0.045593 0.595642 0.245300\n0.079163 0.596222 0.245972\n0.106201 0.596863 0.246643\n0.131378 0.597321 0.247314\n0.154724 0.598022 0.248016\n0.176758 0.598541 0.248688\n0.197510 0.598999 0.249329\n0.217529 0.599731 0.250031\n0.236847 0.600189 0.250671\n0.256165 0.600647 0.251343\n0.275330 0.601196 0.251984\n0.295074 0.601868 0.252686\n0.315399 0.602295 0.253326\n0.336884 0.602875 0.253937\n0.359650 0.603485 0.254608\n0.384247 0.603943 0.255219\n0.410797 0.604492 0.255859\n0.439636 0.605133 0.256470\n0.471130 0.605591 0.257111\n0.505554 0.606079 0.257751\n0.542969 0.606720 0.258301\n0.583618 0.607178 0.258911\n0.626831 0.607574 0.259491\n0.672394 0.608276 0.260101\n0.719543 0.608704 0.260651\n0.768372 0.609131 0.261169\n0.818390 0.609680 0.261780\n0.869232 0.610199 0.262329\n0.915527 0.610565 0.262848\n0.000000 0.635773 0.244598\n0.000000 0.636200 0.245270\n0.021667 0.636627 0.245972\n0.049835 0.637299 0.246643\n0.081604 0.637726 0.247284\n0.108368 0.638184 0.247986\n0.133148 0.638855 0.248657\n0.156494 0.639221 0.249329\n0.178253 0.639709 0.250031\n0.198944 0.640381 0.250641\n0.218903 0.640839 0.251343\n0.238220 0.641235 0.251984\n0.257324 0.641693 0.252655\n0.276459 0.642365 0.253296\n0.296204 0.642822 0.253906\n0.316498 0.643188 0.254578\n0.337921 0.643860 0.255188\n0.360718 0.644287 0.255829\n0.385345 0.644714 0.256439\n0.411896 0.645233 0.257111\n0.440552 0.645782 0.257721\n0.471985 0.646179 0.258301\n0.506561 0.646576 0.258911\n0.544006 0.647217 0.259491\n0.584625 0.647614 0.260071\n0.627747 0.648041 0.260651\n0.672974 0.648407 0.261169\n0.720245 0.649017 0.261780\n0.768890 0.649384 0.262299\n0.818695 0.649750 0.262848\n0.869324 0.650116 0.263397\n0.915527 0.650696 0.263916\n0.000000 0.679565 0.245941\n0.000000 0.679962 0.246613\n0.024139 0.680389 0.247284\n0.053833 0.680817 0.247955\n0.084045 0.681366 0.248627\n0.110565 0.681763 0.249298\n0.135162 0.682129 0.250000\n0.158234 0.682617 0.250610\n0.179932 0.683167 0.251312\n0.200500 0.683472 0.251923\n0.220184 0.683899 0.252625\n0.239349 0.684357 0.253265\n0.258484 0.684875 0.253876\n0.277588 0.685211 0.254547\n0.297241 0.685577 0.255188\n0.317596 0.686096 0.255829\n0.339020 0.686554 0.256439\n0.361786 0.686920 0.257080\n0.386444 0.687286 0.257690\n0.412933 0.687866 0.258270\n0.441528 0.688202 0.258881\n0.473022 0.688568 0.259460\n0.507385 0.688965 0.260071\n0.545044 0.689270 0.260590\n0.585541 0.689819 0.261139\n0.628448 0.690186 0.261749\n0.673706 0.690491 0.262268\n0.720642 0.690826 0.262817\n0.769348 0.691345 0.263367\n0.818939 0.691681 0.263885\n0.869446 0.691986 0.264404\n0.915527 0.692291 0.264893\n0.000000 0.724884 0.247253\n0.001251 0.725220 0.247955\n0.026672 0.725800 0.248596\n0.058472 0.726105 0.249268\n0.086395 0.726379 0.249969\n0.112671 0.726746 0.250610\n0.137085 0.727264 0.251282\n0.159912 0.727539 0.251923\n0.181396 0.727905 0.252625\n0.201843 0.728241 0.253235\n0.221436 0.728607 0.253876\n0.240631 0.729095 0.254547\n0.259644 0.729401 0.255157\n0.278687 0.729675 0.255798\n0.298370 0.729980 0.256409\n0.318695 0.730286 0.257050\n0.340088 0.730835 0.257660\n0.362885 0.731171 0.258240\n0.387299 0.731445 0.258850\n0.413727 0.731689 0.259460\n0.442627 0.732025 0.260040\n0.474091 0.732513 0.260590\n0.508423 0.732788 0.261139\n0.545990 0.733063 0.261719\n0.586212 0.733307 0.262268\n0.629242 0.733582 0.262787\n0.674316 0.734131 0.263336\n0.721344 0.734406 0.263885\n0.769714 0.734589 0.264404\n0.819153 0.734863 0.264893\n0.869537 0.735107 0.265411\n0.915527 0.735474 0.265869\n0.000000 0.771759 0.248566\n0.003510 0.772034 0.249268\n0.028961 0.772308 0.249939\n0.060913 0.772522 0.250580\n0.088745 0.772797 0.251251\n0.114807 0.773010 0.251892\n0.139038 0.773407 0.252563\n0.161682 0.773743 0.253235\n0.183014 0.773956 0.253876\n0.203217 0.774231 0.254547\n0.222778 0.774475 0.255157\n0.241943 0.774689 0.255768\n0.260803 0.775116 0.256409\n0.279846 0.775421 0.257019\n0.299347 0.775604 0.257599\n0.319702 0.775848 0.258209\n0.341156 0.776062 0.258820\n0.363922 0.776306 0.259430\n0.388306 0.776642 0.260010\n0.414825 0.776978 0.260559\n0.443665 0.777191 0.261139\n0.475128 0.777374 0.261719\n0.509399 0.777618 0.262238\n0.546753 0.777802 0.262787\n0.587128 0.778015 0.263336\n0.630066 0.778229 0.263855\n0.675049 0.778564 0.264374\n0.721771 0.778839 0.264862\n0.770020 0.779022 0.265381\n0.819519 0.779205 0.265839\n0.869720 0.779388 0.266357\n0.915527 0.779572 0.266785\n0.000000 0.819214 0.249908\n0.005829 0.819397 0.250549\n0.031403 0.819489 0.251251\n0.063416 0.819885 0.251862\n0.090973 0.820160 0.252563\n0.116913 0.820282 0.253204\n0.140778 0.820465 0.253845\n0.163239 0.820557 0.254517\n0.184540 0.820770 0.255127\n0.204559 0.820892 0.255737\n0.223999 0.821106 0.256378\n0.242950 0.821259 0.256989\n0.261932 0.821625 0.257599\n0.280914 0.821808 0.258209\n0.300354 0.821899 0.258820\n0.320770 0.822113 0.259399\n0.342194 0.822266 0.260010\n0.364929 0.822388 0.260529\n0.389313 0.822540 0.261108\n0.415863 0.822693 0.261688\n0.444672 0.822815 0.262207\n0.476105 0.823120 0.262787\n0.510376 0.823364 0.263306\n0.547668 0.823456 0.263824\n0.588074 0.823608 0.264374\n0.630646 0.823792 0.264832\n0.675568 0.823883 0.265381\n0.722260 0.824036 0.265839\n0.770538 0.824127 0.266327\n0.819885 0.824249 0.266785\n0.869781 0.824402 0.267242\n0.915527 0.824463 0.267700\n0.000000 0.867310 0.251221\n0.008118 0.867401 0.251862\n0.033813 0.867493 0.252533\n0.066040 0.867554 0.253204\n0.093292 0.867645 0.253815\n0.118774 0.867737 0.254486\n0.142670 0.867798 0.255096\n0.165009 0.867981 0.255737\n0.185944 0.868103 0.256348\n0.205902 0.868286 0.256989\n0.225220 0.868378 0.257568\n0.244232 0.868439 0.258179\n0.263062 0.868530 0.258820\n0.281982 0.868622 0.259399\n0.301422 0.868713 0.259979\n0.321564 0.868744 0.260529\n0.343140 0.868835 0.261108\n0.365967 0.868896 0.261658\n0.390381 0.868988 0.262207\n0.416840 0.869110 0.262787\n0.445648 0.869110 0.263275\n0.476898 0.869202 0.263824\n0.511139 0.869263 0.264343\n0.548584 0.869293 0.264832\n0.588684 0.869385 0.265350\n0.631500 0.869446 0.265808\n0.676331 0.869568 0.266327\n0.722900 0.869720 0.266785\n0.770844 0.869781 0.267212\n0.820068 0.869934 0.267700\n0.869873 0.869995 0.268097\n0.915527 0.870087 0.268494\n0.000000 0.915527 0.252533\n0.010468 0.915527 0.253174\n0.036163 0.915527 0.253815\n0.068420 0.915527 0.254456\n0.095490 0.915527 0.255096\n0.120789 0.915527 0.255707\n0.144409 0.915527 0.256348\n0.166534 0.915527 0.256958\n0.187347 0.915527 0.257538\n0.207367 0.915527 0.258179\n0.226440 0.915527 0.258759\n0.245422 0.915527 0.259369\n0.264130 0.915527 0.259949\n0.283051 0.915527 0.260498\n0.302368 0.915527 0.261078\n0.322601 0.915527 0.261658\n0.343994 0.915527 0.262177\n0.366791 0.915527 0.262756\n0.391327 0.915527 0.263275\n0.417755 0.915527 0.263794\n0.446411 0.915527 0.264313\n0.477814 0.915527 0.264801\n0.512085 0.915527 0.265320\n0.549561 0.915527 0.265808\n0.589539 0.915527 0.266327\n0.632050 0.915527 0.266754\n0.676758 0.915527 0.267212\n0.723236 0.915527 0.267700\n0.771179 0.915527 0.268066\n0.820221 0.915527 0.268463\n0.869995 0.915527 0.268921\n0.915527 0.915527 0.269318\n0.000000 0.000000 0.245117\n0.000000 0.000000 0.245392\n0.000000 0.000000 0.245667\n0.000061 0.000000 0.246033\n0.026215 0.000000 0.246368\n0.059509 0.000000 0.246704\n0.088776 0.000000 0.247101\n0.116211 0.000000 0.247437\n0.141724 0.000000 0.247833\n0.165527 0.000000 0.248230\n0.188019 0.000000 0.248627\n0.209351 0.000000 0.249084\n0.230103 0.000000 0.249481\n0.250458 0.000000 0.249939\n0.270721 0.000000 0.250397\n0.291565 0.000000 0.250854\n0.313080 0.000000 0.251312\n0.335907 0.000000 0.251770\n0.360260 0.000000 0.252289\n0.386566 0.000000 0.252808\n0.415253 0.000000 0.253296\n0.446594 0.000000 0.253815\n0.481171 0.000000 0.254333\n0.519257 0.000000 0.254852\n0.561127 0.000000 0.255432\n0.606110 0.000000 0.255951\n0.654114 0.000000 0.256500\n0.704376 0.000000 0.257050\n0.756714 0.000000 0.257599\n0.810272 0.000000 0.258179\n0.864990 0.000000 0.258728\n0.915527 0.000000 0.259338\n0.000000 0.000000 0.245667\n0.000000 0.000000 0.246033\n0.000000 0.000000 0.246338\n0.001038 0.000000 0.246704\n0.027527 0.000000 0.247070\n0.060791 0.000000 0.247406\n0.089996 0.000000 0.247833\n0.117371 0.000000 0.248230\n0.142822 0.000000 0.248596\n0.166565 0.000000 0.249054\n0.188995 0.000000 0.249451\n0.210205 0.000000 0.249908\n0.230896 0.000000 0.250397\n0.251282 0.000000 0.250824\n0.271576 0.000000 0.251312\n0.292419 0.000000 0.251770\n0.313934 0.000336 0.252258\n0.336670 0.001343 0.252777\n0.360992 0.002502 0.253296\n0.387238 0.003510 0.253784\n0.415955 0.004730 0.254333\n0.447388 0.005951 0.254852\n0.482117 0.007294 0.255402\n0.520172 0.008514 0.255920\n0.562012 0.009796 0.256470\n0.606934 0.011108 0.257050\n0.654785 0.012451 0.257568\n0.705139 0.013763 0.258179\n0.757080 0.015167 0.258728\n0.810608 0.016510 0.259308\n0.865295 0.017883 0.259857\n0.915527 0.019501 0.260468\n0.000000 0.012756 0.246338\n0.000000 0.013641 0.246674\n0.000000 0.014465 0.247070\n0.002167 0.015228 0.247406\n0.028809 0.016144 0.247833\n0.062195 0.017090 0.248230\n0.091278 0.017944 0.248596\n0.118530 0.018890 0.249054\n0.143982 0.019928 0.249451\n0.167633 0.020966 0.249908\n0.190033 0.022003 0.250366\n0.211182 0.023041 0.250793\n0.231842 0.024078 0.251282\n0.252014 0.025177 0.251770\n0.272430 0.026398 0.252258\n0.293060 0.027527 0.252777\n0.314758 0.028748 0.253265\n0.337555 0.029968 0.253784\n0.361786 0.031219 0.254303\n0.388153 0.032410 0.254822\n0.416901 0.033752 0.255402\n0.448364 0.035004 0.255890\n0.482819 0.036255 0.256439\n0.521088 0.037659 0.257019\n0.562714 0.038940 0.257538\n0.607819 0.040283 0.258148\n0.655487 0.041687 0.258698\n0.705566 0.043030 0.259277\n0.757568 0.044403 0.259827\n0.811096 0.045868 0.260468\n0.865479 0.048401 0.261047\n0.915527 0.050873 0.261627\n0.000000 0.041809 0.247040\n0.000000 0.042725 0.247406\n0.000000 0.043427 0.247803\n0.003479 0.044403 0.248199\n0.030273 0.045380 0.248596\n0.063812 0.046997 0.249023\n0.092834 0.048401 0.249451\n0.119812 0.050201 0.249878\n0.145142 0.052094 0.250336\n0.168732 0.054016 0.250793\n0.190857 0.055817 0.251251\n0.212189 0.057922 0.251770\n0.232758 0.059448 0.252228\n0.252899 0.060669 0.252747\n0.273132 0.061951 0.253235\n0.293976 0.063232 0.253784\n0.315491 0.064453 0.254272\n0.338348 0.065796 0.254822\n0.362732 0.067108 0.255371\n0.389099 0.068512 0.255859\n0.417877 0.069946 0.256439\n0.449280 0.071289 0.256989\n0.483795 0.072723 0.257538\n0.521912 0.074188 0.258148\n0.563629 0.075623 0.258667\n0.608521 0.077087 0.259247\n0.656342 0.078552 0.259827\n0.706360 0.080017 0.260437\n0.758118 0.081482 0.261047\n0.811371 0.082947 0.261597\n0.865601 0.084473 0.262177\n0.915527 0.085999 0.262817\n0.000000 0.078644 0.247803\n0.000000 0.079620 0.248199\n0.000000 0.080475 0.248566\n0.004761 0.081543 0.249023\n0.031677 0.082611 0.249420\n0.065338 0.083496 0.249878\n0.094238 0.084625 0.250336\n0.121368 0.085754 0.250763\n0.146362 0.086670 0.251251\n0.169861 0.087860 0.251740\n0.191925 0.089081 0.252197\n0.213196 0.090271 0.252716\n0.233673 0.091309 0.253235\n0.253876 0.092560 0.253754\n0.274078 0.093811 0.254272\n0.294891 0.095032 0.254791\n0.316406 0.096344 0.255310\n0.339172 0.097595 0.255859\n0.363647 0.098755 0.256409\n0.390076 0.100067 0.256989\n0.418640 0.101410 0.257507\n0.450073 0.102722 0.258118\n0.484802 0.104126 0.258667\n0.522919 0.105469 0.259247\n0.564606 0.106781 0.259827\n0.609436 0.108093 0.260406\n0.656891 0.109406 0.261017\n0.706818 0.110779 0.261597\n0.758545 0.112152 0.262177\n0.811615 0.113586 0.262787\n0.865784 0.114960 0.263397\n0.915527 0.116394 0.264038\n0.000000 0.109528 0.248566\n0.000000 0.110565 0.248993\n0.000000 0.111511 0.249420\n0.006256 0.112366 0.249878\n0.033264 0.113373 0.250305\n0.067047 0.114441 0.250763\n0.095856 0.115326 0.251251\n0.122742 0.116394 0.251709\n0.147614 0.117432 0.252197\n0.171051 0.118469 0.252716\n0.193024 0.119537 0.253204\n0.214203 0.120728 0.253723\n0.234589 0.121704 0.254272\n0.254852 0.122864 0.254761\n0.275024 0.124054 0.255310\n0.295746 0.125244 0.255859\n0.317383 0.126251 0.256409\n0.340149 0.127502 0.256958\n0.364471 0.128662 0.257507\n0.390808 0.129974 0.258087\n0.419586 0.131012 0.258636\n0.451080 0.132263 0.259216\n0.485809 0.133514 0.259796\n0.523865 0.134796 0.260406\n0.565552 0.136017 0.260986\n0.610291 0.137115 0.261566\n0.657776 0.138397 0.262146\n0.707581 0.139679 0.262787\n0.759125 0.140961 0.263367\n0.812012 0.142151 0.263977\n0.865906 0.143311 0.264557\n0.915527 0.144653 0.265198\n0.000000 0.138672 0.249390\n0.000000 0.139587 0.249878\n0.000000 0.140442 0.250305\n0.007843 0.141327 0.250732\n0.034943 0.142273 0.251221\n0.068756 0.143127 0.251709\n0.097473 0.144104 0.252197\n0.124115 0.144989 0.252686\n0.149017 0.145966 0.253204\n0.172241 0.147064 0.253723\n0.194153 0.147888 0.254211\n0.215302 0.148987 0.254761\n0.235596 0.150085 0.255280\n0.255737 0.150970 0.255829\n0.276001 0.152069 0.256409\n0.296600 0.153137 0.256927\n0.318298 0.154083 0.257507\n0.341125 0.155243 0.258087\n0.365387 0.156342 0.258606\n0.391815 0.157318 0.259186\n0.420624 0.158447 0.259796\n0.452087 0.159576 0.260406\n0.486755 0.160614 0.260986\n0.524811 0.161713 0.261566\n0.566315 0.162872 0.262115\n0.610992 0.164001 0.262756\n0.658386 0.165009 0.263336\n0.708099 0.166199 0.263977\n0.759583 0.167358 0.264526\n0.812439 0.168335 0.265137\n0.866028 0.169525 0.265778\n0.915527 0.170715 0.266418\n0.000000 0.165710 0.250275\n0.000000 0.166351 0.250732\n0.000000 0.167267 0.251190\n0.009491 0.167969 0.251709\n0.036652 0.168884 0.252197\n0.070557 0.169617 0.252686\n0.099121 0.170593 0.253204\n0.125763 0.171326 0.253693\n0.150452 0.172302 0.254211\n0.173462 0.173218 0.254730\n0.195312 0.174103 0.255249\n0.216431 0.175110 0.255829\n0.236633 0.175873 0.256378\n0.256622 0.176941 0.256927\n0.276978 0.177765 0.257477\n0.297577 0.178741 0.258057\n0.319092 0.179810 0.258606\n0.342072 0.180634 0.259186\n0.366394 0.181702 0.259766\n0.392822 0.182617 0.260376\n0.421661 0.183594 0.260956\n0.453125 0.184692 0.261505\n0.487640 0.185547 0.262115\n0.525696 0.186584 0.262726\n0.567322 0.187683 0.263336\n0.611969 0.188538 0.263947\n0.659241 0.189636 0.264496\n0.708862 0.190582 0.265137\n0.760132 0.191589 0.265778\n0.812683 0.192657 0.266388\n0.866241 0.193604 0.266968\n0.915527 0.194641 0.267639\n0.000000 0.190308 0.251190\n0.000000 0.191162 0.251678\n0.000000 0.191772 0.252167\n0.011200 0.192657 0.252655\n0.038452 0.193298 0.253174\n0.072449 0.194183 0.253693\n0.100830 0.194885 0.254181\n0.127228 0.195770 0.254700\n0.151825 0.196503 0.255249\n0.174774 0.197418 0.255798\n0.196533 0.198120 0.256348\n0.217377 0.199097 0.256897\n0.237671 0.199890 0.257446\n0.257660 0.200745 0.258026\n0.277832 0.201569 0.258575\n0.298584 0.202454 0.259155\n0.320099 0.203400 0.259735\n0.342957 0.204193 0.260376\n0.367462 0.205170 0.260925\n0.393860 0.205933 0.261505\n0.422699 0.206940 0.262115\n0.454163 0.207703 0.262726\n0.488708 0.208679 0.263306\n0.526733 0.209656 0.263916\n0.568359 0.210449 0.264496\n0.612854 0.211487 0.265106\n0.660095 0.212250 0.265747\n0.709381 0.213257 0.266388\n0.760620 0.214050 0.266968\n0.813110 0.215027 0.267578\n0.866547 0.216064 0.268158\n0.915527 0.216827 0.268768\n0.000000 0.213440 0.252167\n0.000000 0.213989 0.252625\n0.000000 0.214813 0.253174\n0.013031 0.215454 0.253662\n0.040253 0.216248 0.254181\n0.074463 0.216858 0.254700\n0.102661 0.217743 0.255219\n0.128876 0.218353 0.255798\n0.153229 0.219147 0.256317\n0.176056 0.219879 0.256866\n0.197876 0.220673 0.257446\n0.218567 0.221436 0.257996\n0.238770 0.222260 0.258545\n0.258728 0.222961 0.259155\n0.278839 0.223694 0.259735\n0.299591 0.224548 0.260345\n0.321136 0.225372 0.260895\n0.343933 0.226166 0.261475\n0.368469 0.227051 0.262115\n0.394928 0.227783 0.262695\n0.423676 0.228729 0.263275\n0.455231 0.229401 0.263885\n0.489746 0.230255 0.264496\n0.527740 0.231049 0.265106\n0.569336 0.232025 0.265717\n0.613739 0.232727 0.266357\n0.660736 0.233673 0.266937\n0.710175 0.234344 0.267578\n0.761017 0.235352 0.268158\n0.813477 0.235992 0.268768\n0.866699 0.236969 0.269409\n0.915527 0.237671 0.269989\n0.000000 0.235016 0.253143\n0.000000 0.235657 0.253632\n0.000000 0.236267 0.254150\n0.015045 0.237030 0.254669\n0.042053 0.237610 0.255188\n0.076477 0.238403 0.255768\n0.104309 0.238983 0.256317\n0.130493 0.239716 0.256866\n0.154724 0.240387 0.257416\n0.177582 0.240997 0.257965\n0.199066 0.241821 0.258514\n0.219818 0.242462 0.259155\n0.239899 0.243286 0.259735\n0.259827 0.243927 0.260315\n0.279907 0.244751 0.260895\n0.300629 0.245422 0.261475\n0.322174 0.246094 0.262085\n0.344971 0.246918 0.262695\n0.369507 0.247589 0.263245\n0.395905 0.248413 0.263885\n0.424683 0.249084 0.264465\n0.456085 0.249908 0.265106\n0.490814 0.250641 0.265717\n0.528870 0.251495 0.266327\n0.570129 0.252136 0.266907\n0.614563 0.253052 0.267548\n0.661591 0.253662 0.268127\n0.710663 0.254578 0.268768\n0.761658 0.255249 0.269379\n0.813782 0.256134 0.269958\n0.866821 0.256805 0.270599\n0.915527 0.257629 0.271179\n0.000000 0.255585 0.254150\n0.000000 0.256256 0.254669\n0.000000 0.256805 0.255188\n0.016937 0.257416 0.255768\n0.044098 0.258087 0.256287\n0.078339 0.258667 0.256836\n0.106201 0.259430 0.257385\n0.132141 0.259949 0.257965\n0.156250 0.260803 0.258514\n0.178925 0.261322 0.259125\n0.200409 0.261902 0.259705\n0.220856 0.262726 0.260284\n0.240997 0.263275 0.260864\n0.260895 0.264099 0.261475\n0.280975 0.264709 0.262085\n0.301666 0.265350 0.262665\n0.323212 0.266113 0.263245\n0.346039 0.266754 0.263855\n0.370453 0.267517 0.264435\n0.396912 0.268127 0.265076\n0.425659 0.268982 0.265686\n0.457214 0.269623 0.266296\n0.491852 0.270386 0.266907\n0.529907 0.271057 0.267517\n0.571167 0.271759 0.268097\n0.615540 0.272491 0.268738\n0.662415 0.273102 0.269348\n0.711456 0.273987 0.269928\n0.762085 0.274597 0.270569\n0.814056 0.275391 0.271149\n0.867004 0.276031 0.271790\n0.915527 0.276917 0.272400\n0.000000 0.275604 0.255188\n0.000000 0.276062 0.255707\n0.000000 0.276672 0.256287\n0.018951 0.277344 0.256836\n0.046387 0.277832 0.257385\n0.080414 0.278595 0.257935\n0.108154 0.279083 0.258484\n0.133850 0.279663 0.259094\n0.157715 0.280426 0.259674\n0.180298 0.280945 0.260254\n0.201660 0.281647 0.260834\n0.222137 0.282288 0.261444\n0.242157 0.282837 0.262054\n0.262024 0.283630 0.262634\n0.282043 0.284180 0.263214\n0.302521 0.284821 0.263824\n0.324280 0.285553 0.264435\n0.347076 0.286102 0.265045\n0.371429 0.286926 0.265656\n0.397919 0.287476 0.266296\n0.426788 0.288269 0.266876\n0.458282 0.288879 0.267517\n0.492859 0.289581 0.268097\n0.530762 0.290253 0.268707\n0.572174 0.290863 0.269318\n0.616486 0.291626 0.269928\n0.663147 0.292236 0.270538\n0.712006 0.293030 0.271149\n0.762604 0.293610 0.271759\n0.814392 0.294250 0.272400\n0.867126 0.295044 0.273010\n0.915527 0.295624 0.273590\n0.000000 0.295197 0.256256\n0.000000 0.295654 0.256836\n0.000000 0.296356 0.257355\n0.021088 0.296875 0.257935\n0.049927 0.297363 0.258484\n0.082458 0.298126 0.259094\n0.109985 0.298615 0.259644\n0.135620 0.299194 0.260254\n0.159424 0.299866 0.260834\n0.181702 0.300415 0.261444\n0.202942 0.301178 0.262024\n0.223419 0.301697 0.262604\n0.243317 0.302216 0.263214\n0.263123 0.302979 0.263824\n0.283112 0.303528 0.264435\n0.303619 0.304138 0.265045\n0.325134 0.304871 0.265625\n0.348145 0.305420 0.266266\n0.372528 0.306183 0.266876\n0.399017 0.306793 0.267487\n0.427856 0.307281 0.268066\n0.459381 0.308075 0.268707\n0.493927 0.308655 0.269318\n0.531830 0.309418 0.269897\n0.573242 0.310028 0.270538\n0.617249 0.310669 0.271118\n0.664001 0.311340 0.271759\n0.712769 0.311920 0.272369\n0.763184 0.312714 0.272980\n0.814880 0.313263 0.273560\n0.867310 0.313904 0.274139\n0.915527 0.314636 0.274750\n0.000000 0.314880 0.257355\n0.000000 0.315338 0.257904\n0.000000 0.316071 0.258484\n0.023163 0.316528 0.259094\n0.053558 0.317139 0.259644\n0.084656 0.317719 0.260223\n0.111877 0.318237 0.260803\n0.137299 0.318787 0.261444\n0.160950 0.319458 0.261993\n0.183197 0.320007 0.262573\n0.204254 0.320740 0.263214\n0.224609 0.321259 0.263794\n0.244476 0.321777 0.264404\n0.264221 0.322540 0.265015\n0.284241 0.323090 0.265594\n0.304688 0.323822 0.266235\n0.326233 0.324341 0.266846\n0.349182 0.324921 0.267426\n0.373596 0.325684 0.268066\n0.400116 0.326233 0.268677\n0.428986 0.326843 0.269287\n0.460480 0.327576 0.269867\n0.494995 0.328125 0.270508\n0.532959 0.328888 0.271088\n0.574158 0.329407 0.271729\n0.618164 0.329956 0.272339\n0.664917 0.330750 0.272919\n0.713318 0.331299 0.273529\n0.763580 0.332031 0.274109\n0.815155 0.332581 0.274719\n0.867462 0.333160 0.275330\n0.915527 0.333893 0.275879\n0.000000 0.335114 0.258453\n0.000000 0.335663 0.259064\n0.000000 0.336151 0.259613\n0.025299 0.336578 0.260193\n0.057465 0.337311 0.260803\n0.086761 0.337860 0.261414\n0.113861 0.338501 0.261963\n0.139099 0.339050 0.262573\n0.162445 0.339569 0.263184\n0.184631 0.340302 0.263794\n0.205536 0.340851 0.264404\n0.225861 0.341309 0.264984\n0.245636 0.342102 0.265594\n0.265320 0.342590 0.266235\n0.285339 0.343170 0.266815\n0.305817 0.343842 0.267426\n0.327301 0.344421 0.268036\n0.350189 0.345154 0.268646\n0.374756 0.345703 0.269257\n0.401184 0.346252 0.269867\n0.430054 0.347015 0.270477\n0.461609 0.347565 0.271088\n0.496094 0.348175 0.271729\n0.533997 0.348877 0.272308\n0.575073 0.349426 0.272919\n0.619171 0.350128 0.273499\n0.665527 0.350708 0.274078\n0.714111 0.351318 0.274689\n0.764252 0.351990 0.275299\n0.815430 0.352539 0.275879\n0.867615 0.353241 0.276489\n0.915527 0.353851 0.277039\n0.000000 0.356018 0.259613\n0.000000 0.356689 0.260193\n0.001434 0.357178 0.260773\n0.027527 0.357666 0.261383\n0.060272 0.358368 0.261963\n0.088959 0.358887 0.262573\n0.115875 0.359375 0.263153\n0.140747 0.360138 0.263763\n0.164185 0.360657 0.264374\n0.186005 0.361267 0.264923\n0.206879 0.361877 0.265594\n0.227081 0.362396 0.266205\n0.246826 0.363190 0.266785\n0.266510 0.363678 0.267426\n0.286438 0.364227 0.268005\n0.306915 0.364960 0.268616\n0.328430 0.365479 0.269226\n0.351318 0.366028 0.269836\n0.375854 0.366791 0.270477\n0.402344 0.367340 0.271088\n0.431183 0.368073 0.271698\n0.462738 0.368622 0.272308\n0.497192 0.369171 0.272888\n0.535095 0.369934 0.273499\n0.576141 0.370453 0.274078\n0.620117 0.370972 0.274689\n0.666412 0.371765 0.275269\n0.714630 0.372284 0.275848\n0.764648 0.373047 0.276459\n0.815887 0.373596 0.277008\n0.867920 0.374146 0.277649\n0.915527 0.374908 0.278198\n0.000000 0.378296 0.260742\n0.000000 0.378784 0.261353\n0.003540 0.379456 0.261932\n0.029724 0.379974 0.262543\n0.062683 0.380493 0.263123\n0.091156 0.381165 0.263763\n0.117859 0.381714 0.264343\n0.142639 0.382233 0.264923\n0.165680 0.382996 0.265594\n0.187408 0.383484 0.266174\n0.208374 0.384033 0.266785\n0.228333 0.384766 0.267365\n0.247986 0.385284 0.268005\n0.267700 0.386047 0.268616\n0.287415 0.386536 0.269226\n0.308014 0.387146 0.269836\n0.329529 0.387848 0.270447\n0.352295 0.388397 0.271057\n0.376923 0.388916 0.271698\n0.403381 0.389740 0.272278\n0.432281 0.390198 0.272858\n0.463623 0.390961 0.273468\n0.498322 0.391510 0.274048\n0.536194 0.392090 0.274689\n0.577148 0.392822 0.275269\n0.620850 0.393372 0.275818\n0.667114 0.393890 0.276428\n0.715424 0.394684 0.277008\n0.765289 0.395203 0.277618\n0.816193 0.395874 0.278198\n0.868103 0.396454 0.278748\n0.915527 0.396973 0.279327\n0.000000 0.401917 0.261902\n0.000000 0.402649 0.262512\n0.005646 0.403107 0.263123\n0.032135 0.403656 0.263733\n0.065125 0.404358 0.264313\n0.093353 0.404907 0.264923\n0.119720 0.405365 0.265533\n0.144318 0.406158 0.266144\n0.167389 0.406677 0.266754\n0.189026 0.407318 0.267365\n0.209686 0.407959 0.267975\n0.229584 0.408447 0.268585\n0.249207 0.409241 0.269226\n0.268738 0.409760 0.269806\n0.288544 0.410309 0.270416\n0.309113 0.411041 0.271027\n0.330627 0.411591 0.271667\n0.353424 0.412170 0.272247\n0.378082 0.412903 0.272827\n0.404541 0.413422 0.273438\n0.433289 0.414185 0.274048\n0.464722 0.414734 0.274689\n0.499359 0.415253 0.275238\n0.537292 0.416016 0.275818\n0.578186 0.416595 0.276428\n0.621826 0.417175 0.277008\n0.667938 0.417877 0.277588\n0.715973 0.418427 0.278168\n0.765717 0.419128 0.278717\n0.816498 0.419678 0.279297\n0.868225 0.420227 0.279846\n0.915527 0.420929 0.280396\n0.000000 0.427612 0.263123\n0.000000 0.428131 0.263702\n0.007874 0.428619 0.264313\n0.034332 0.429382 0.264893\n0.067474 0.429871 0.265533\n0.095520 0.430603 0.266144\n0.121765 0.431152 0.266754\n0.146179 0.431671 0.267334\n0.168945 0.432465 0.267944\n0.190460 0.432953 0.268555\n0.210999 0.433502 0.269196\n0.230804 0.434265 0.269775\n0.250397 0.434784 0.270386\n0.269897 0.435455 0.271027\n0.289612 0.436096 0.271637\n0.310211 0.436646 0.272217\n0.331757 0.437408 0.272827\n0.354523 0.437958 0.273438\n0.379028 0.438446 0.274048\n0.405701 0.439240 0.274689\n0.434326 0.439758 0.275208\n0.465820 0.440399 0.275787\n0.500549 0.441071 0.276367\n0.538116 0.441620 0.276978\n0.579163 0.442413 0.277588\n0.622803 0.442932 0.278137\n0.668793 0.443420 0.278687\n0.716644 0.444214 0.279297\n0.766113 0.444733 0.279846\n0.816833 0.445312 0.280365\n0.868408 0.446045 0.280975\n0.915527 0.446533 0.281464\n0.000000 0.455261 0.264282\n0.000000 0.455994 0.264893\n0.010193 0.456512 0.265503\n0.036713 0.457153 0.266113\n0.069916 0.457764 0.266754\n0.097717 0.458282 0.267334\n0.123810 0.459045 0.267944\n0.147980 0.459595 0.268555\n0.170654 0.460175 0.269165\n0.191895 0.460907 0.269745\n0.212372 0.461426 0.270386\n0.232056 0.461975 0.270966\n0.251556 0.462708 0.271637\n0.271088 0.463257 0.272217\n0.290802 0.464020 0.272797\n0.311371 0.464569 0.273438\n0.332855 0.465149 0.274048\n0.355652 0.465851 0.274658\n0.380127 0.466400 0.275208\n0.406555 0.466888 0.275757\n0.435425 0.467712 0.276367\n0.466919 0.468231 0.276978\n0.501526 0.468994 0.277557\n0.539154 0.469513 0.278107\n0.580017 0.470032 0.278687\n0.623627 0.470825 0.279266\n0.669434 0.471313 0.279846\n0.717194 0.472046 0.280365\n0.766754 0.472595 0.280945\n0.817261 0.473145 0.281464\n0.868469 0.473755 0.282013\n0.915527 0.474365 0.282562\n0.000000 0.485748 0.265472\n0.000000 0.486267 0.266083\n0.012573 0.486755 0.266724\n0.038971 0.487518 0.267303\n0.072388 0.488068 0.267944\n0.099976 0.488739 0.268494\n0.125824 0.489349 0.269135\n0.149719 0.489868 0.269745\n0.172180 0.490570 0.270355\n0.193512 0.491150 0.270966\n0.213654 0.491699 0.271606\n0.233307 0.492462 0.272186\n0.252777 0.493011 0.272797\n0.272308 0.493622 0.273407\n0.291901 0.494324 0.274017\n0.312469 0.494843 0.274628\n0.333954 0.495636 0.275177\n0.356720 0.496124 0.275726\n0.381134 0.496674 0.276367\n0.407684 0.497406 0.276978\n0.436554 0.497986 0.277527\n0.468079 0.498474 0.278107\n0.502472 0.499268 0.278687\n0.540253 0.499756 0.279236\n0.580963 0.500488 0.279816\n0.624420 0.501007 0.280334\n0.670258 0.501556 0.280914\n0.717957 0.502228 0.281464\n0.767120 0.502808 0.281982\n0.817535 0.503296 0.282532\n0.868652 0.504028 0.283295\n0.915527 0.504578 0.283844\n0.000000 0.518890 0.266693\n0.000000 0.519440 0.267303\n0.014954 0.519958 0.267914\n0.041382 0.520752 0.268494\n0.074799 0.521240 0.269135\n0.102112 0.521790 0.269714\n0.127777 0.522491 0.270355\n0.151611 0.523041 0.270935\n0.173767 0.523621 0.271545\n0.194916 0.524323 0.272156\n0.215118 0.524841 0.272766\n0.234650 0.525421 0.273376\n0.253967 0.526123 0.273987\n0.273315 0.526672 0.274597\n0.292969 0.527405 0.275146\n0.313568 0.527924 0.275726\n0.335052 0.528442 0.276367\n0.357819 0.529205 0.276947\n0.382233 0.529755 0.277527\n0.408722 0.530396 0.278076\n0.437622 0.531036 0.278656\n0.469177 0.531555 0.279236\n0.503571 0.532043 0.279785\n0.541321 0.532837 0.280334\n0.582001 0.533295 0.280914\n0.625336 0.533936 0.281433\n0.670990 0.534515 0.281982\n0.718445 0.535034 0.282501\n0.767578 0.535736 0.283264\n0.817810 0.536255 0.283813\n0.868774 0.536743 0.284302\n0.915527 0.537323 0.284821\n0.000000 0.554993 0.267883\n0.000000 0.555573 0.268463\n0.017242 0.556244 0.269104\n0.043640 0.556763 0.269714\n0.077148 0.557434 0.270325\n0.104309 0.558044 0.270905\n0.129700 0.558533 0.271515\n0.153259 0.559296 0.272125\n0.175446 0.559784 0.272736\n0.196320 0.560303 0.273376\n0.216492 0.561066 0.273987\n0.235779 0.561554 0.274567\n0.255188 0.562073 0.275116\n0.274475 0.562805 0.275696\n0.294128 0.563324 0.276367\n0.314545 0.563812 0.276917\n0.336151 0.564545 0.277466\n0.358948 0.565094 0.278046\n0.383362 0.565582 0.278656\n0.409882 0.566284 0.279205\n0.438721 0.566803 0.279755\n0.470215 0.567261 0.280304\n0.504608 0.568024 0.280884\n0.542328 0.568481 0.281403\n0.582977 0.569092 0.281982\n0.626129 0.569702 0.282501\n0.671692 0.570190 0.283264\n0.719116 0.570770 0.283783\n0.768097 0.571350 0.284302\n0.818054 0.571808 0.284790\n0.869080 0.572205 0.285278\n0.915527 0.572937 0.285797\n0.000000 0.594147 0.269073\n0.000000 0.594879 0.269684\n0.019714 0.595367 0.270294\n0.046417 0.595825 0.270905\n0.079742 0.596527 0.271515\n0.106567 0.597046 0.272095\n0.131683 0.597534 0.272736\n0.155060 0.598206 0.273376\n0.176971 0.598663 0.273926\n0.197937 0.599213 0.274567\n0.217804 0.599854 0.275116\n0.237213 0.600372 0.275696\n0.256348 0.600861 0.276337\n0.275635 0.601501 0.276886\n0.295227 0.602020 0.277466\n0.315613 0.602509 0.278046\n0.337067 0.603210 0.278625\n0.359924 0.603668 0.279205\n0.384430 0.604156 0.279755\n0.410950 0.604828 0.280273\n0.439819 0.605255 0.280884\n0.471283 0.605774 0.281403\n0.505646 0.606384 0.281952\n0.543213 0.606842 0.282501\n0.583801 0.607330 0.283234\n0.626953 0.607788 0.283752\n0.672546 0.608459 0.284302\n0.719666 0.608826 0.284760\n0.768463 0.609283 0.285278\n0.818481 0.609924 0.285767\n0.869232 0.610382 0.286255\n0.915527 0.610748 0.286713\n0.000000 0.635925 0.270294\n0.000000 0.636353 0.270905\n0.022186 0.636902 0.271484\n0.050415 0.637451 0.272095\n0.082123 0.637909 0.272705\n0.108673 0.638428 0.273346\n0.133667 0.639008 0.273926\n0.156799 0.639465 0.274536\n0.178680 0.639862 0.275085\n0.199341 0.640533 0.275696\n0.219116 0.640961 0.276306\n0.238495 0.641418 0.276886\n0.257507 0.641998 0.277435\n0.276642 0.642517 0.278015\n0.296356 0.642914 0.278625\n0.316681 0.643372 0.279175\n0.338104 0.644043 0.279724\n0.360931 0.644440 0.280273\n0.385529 0.644897 0.280884\n0.412018 0.645508 0.281372\n0.440887 0.645905 0.281921\n0.472321 0.646332 0.282501\n0.506744 0.646820 0.283203\n0.544189 0.647400 0.283752\n0.584686 0.647766 0.284271\n0.627838 0.648163 0.284760\n0.673065 0.648621 0.285278\n0.720306 0.649139 0.285736\n0.769073 0.649475 0.286255\n0.818756 0.649902 0.286713\n0.869385 0.650391 0.287170\n0.915527 0.650848 0.287659\n0.000000 0.679718 0.271454\n0.000000 0.680145 0.272064\n0.024506 0.680511 0.272705\n0.054840 0.681122 0.273315\n0.084473 0.681488 0.273895\n0.110840 0.681885 0.274506\n0.135620 0.682251 0.275085\n0.158569 0.682892 0.275696\n0.180145 0.683258 0.276276\n0.200714 0.683655 0.276855\n0.220398 0.684021 0.277405\n0.239655 0.684601 0.278015\n0.258698 0.684967 0.278595\n0.277740 0.685364 0.279144\n0.297424 0.685760 0.279694\n0.317749 0.686340 0.280243\n0.339172 0.686707 0.280853\n0.362030 0.687103 0.281342\n0.386597 0.687408 0.281921\n0.413086 0.688019 0.282440\n0.441864 0.688354 0.283203\n0.473206 0.688690 0.283722\n0.507599 0.689087 0.284271\n0.545197 0.689453 0.284729\n0.585632 0.689972 0.285248\n0.628754 0.690308 0.285736\n0.673859 0.690674 0.286224\n0.720734 0.690918 0.286682\n0.769440 0.691498 0.287140\n0.819000 0.691803 0.287628\n0.869446 0.692139 0.288086\n0.915527 0.692444 0.288513\n0.000000 0.725006 0.272675\n0.001648 0.725525 0.273285\n0.027008 0.725891 0.273865\n0.058899 0.726227 0.274475\n0.086792 0.726532 0.275055\n0.112976 0.726868 0.275665\n0.137421 0.727417 0.276276\n0.160248 0.727722 0.276825\n0.181702 0.727997 0.277405\n0.202087 0.728333 0.278015\n0.221649 0.728821 0.278564\n0.240906 0.729187 0.279114\n0.259827 0.729523 0.279694\n0.278870 0.729797 0.280243\n0.298523 0.730133 0.280823\n0.318848 0.730499 0.281342\n0.340210 0.730896 0.281891\n0.363037 0.731232 0.282440\n0.387634 0.731506 0.283173\n0.414062 0.731842 0.283722\n0.442810 0.732208 0.284241\n0.474213 0.732605 0.284729\n0.508575 0.732849 0.285217\n0.546143 0.733154 0.285736\n0.586365 0.733459 0.286194\n0.629333 0.733826 0.286682\n0.674408 0.734222 0.287140\n0.721405 0.734467 0.287598\n0.769775 0.734772 0.288055\n0.819214 0.734955 0.288513\n0.869629 0.735168 0.288910\n0.915527 0.735657 0.289368\n0.000000 0.771912 0.273865\n0.003876 0.772125 0.274475\n0.029449 0.772400 0.275024\n0.061432 0.772614 0.275635\n0.089142 0.772858 0.276245\n0.115143 0.773102 0.276794\n0.139374 0.773590 0.277374\n0.161926 0.773834 0.277985\n0.183289 0.774048 0.278564\n0.203400 0.774323 0.279114\n0.222992 0.774536 0.279663\n0.242096 0.774811 0.280243\n0.260986 0.775238 0.280792\n0.279968 0.775452 0.281311\n0.299591 0.775696 0.281860\n0.319855 0.775940 0.282410\n0.341278 0.776154 0.283142\n0.364075 0.776398 0.283691\n0.388519 0.776825 0.284210\n0.414948 0.777008 0.284729\n0.443787 0.777222 0.285217\n0.475220 0.777496 0.285706\n0.509552 0.777710 0.286194\n0.547058 0.777863 0.286652\n0.587250 0.778107 0.287109\n0.630219 0.778259 0.287598\n0.675171 0.778748 0.288055\n0.721893 0.778900 0.288513\n0.770081 0.779114 0.288910\n0.819580 0.779297 0.289368\n0.869720 0.779480 0.289795\n0.915527 0.779663 0.290192\n0.000000 0.819244 0.275024\n0.006195 0.819427 0.275604\n0.031860 0.819641 0.276215\n0.063995 0.819946 0.276794\n0.091492 0.820190 0.277374\n0.117188 0.820312 0.277954\n0.141144 0.820496 0.278534\n0.163544 0.820679 0.279083\n0.184723 0.820831 0.279663\n0.204956 0.820984 0.280212\n0.224152 0.821136 0.280762\n0.243286 0.821472 0.281311\n0.262115 0.821716 0.281860\n0.281067 0.821808 0.282410\n0.300659 0.822021 0.283142\n0.320923 0.822144 0.283661\n0.342346 0.822296 0.284210\n0.365051 0.822479 0.284698\n0.389496 0.822601 0.285187\n0.415985 0.822754 0.285706\n0.444824 0.822906 0.286163\n0.476227 0.823151 0.286621\n0.510559 0.823395 0.287109\n0.547821 0.823517 0.287598\n0.588196 0.823700 0.288025\n0.630798 0.823792 0.288483\n0.675659 0.823944 0.288910\n0.722473 0.824066 0.289337\n0.770630 0.824158 0.289764\n0.819885 0.824310 0.290192\n0.869781 0.824463 0.290558\n0.915527 0.824554 0.290985\n0.000000 0.867371 0.276184\n0.008606 0.867401 0.276764\n0.034241 0.867493 0.277344\n0.066406 0.867584 0.277954\n0.093842 0.867676 0.278503\n0.119263 0.867767 0.279053\n0.142975 0.867920 0.279663\n0.165253 0.867981 0.280182\n0.186127 0.868164 0.280762\n0.206268 0.868347 0.281311\n0.225464 0.868378 0.281830\n0.244446 0.868469 0.282379\n0.263184 0.868561 0.283112\n0.282135 0.868622 0.283630\n0.301666 0.868713 0.284180\n0.321899 0.868774 0.284668\n0.343384 0.868835 0.285156\n0.366119 0.868958 0.285675\n0.390472 0.868988 0.286133\n0.416962 0.869110 0.286621\n0.445831 0.869110 0.287109\n0.477173 0.869202 0.287567\n0.511383 0.869263 0.288025\n0.548767 0.869354 0.288483\n0.588989 0.869385 0.288910\n0.631622 0.869446 0.289337\n0.676392 0.869568 0.289734\n0.722900 0.869720 0.290161\n0.770905 0.869873 0.290558\n0.820129 0.869934 0.290955\n0.869873 0.869995 0.291321\n0.915527 0.870087 0.291687\n0.000000 0.915527 0.277344\n0.010986 0.915527 0.277924\n0.036652 0.915527 0.278473\n0.069000 0.915527 0.279053\n0.096008 0.915527 0.279633\n0.121307 0.915527 0.280182\n0.144867 0.915527 0.280731\n0.166779 0.915527 0.281281\n0.187653 0.915527 0.281799\n0.207550 0.915527 0.282349\n0.226776 0.915527 0.283112\n0.245605 0.915527 0.283630\n0.264282 0.915527 0.284180\n0.283203 0.915527 0.284668\n0.302490 0.915527 0.285156\n0.322784 0.915527 0.285645\n0.344177 0.915527 0.286133\n0.367065 0.915527 0.286621\n0.391479 0.915527 0.287079\n0.417969 0.915527 0.287567\n0.446716 0.915527 0.287994\n0.477966 0.915527 0.288452\n0.512207 0.915527 0.288910\n0.549683 0.915527 0.289307\n0.589630 0.915527 0.289734\n0.632263 0.915527 0.290161\n0.676849 0.915527 0.290558\n0.723267 0.915527 0.290955\n0.771210 0.915527 0.291290\n0.820282 0.915527 0.291656\n0.869995 0.915527 0.292053\n0.915527 0.915527 0.292389\n0.000000 0.000000 0.271484\n0.000000 0.000000 0.271759\n0.000000 0.000000 0.272064\n0.000214 0.000000 0.272369\n0.026581 0.000000 0.272644\n0.059692 0.000000 0.272980\n0.088959 0.000000 0.273315\n0.116364 0.000000 0.273651\n0.141876 0.000000 0.273987\n0.165680 0.000000 0.274292\n0.188171 0.000000 0.274689\n0.209595 0.000000 0.275055\n0.230347 0.000000 0.275452\n0.250549 0.000000 0.275818\n0.270935 0.000000 0.276276\n0.291687 0.000000 0.276672\n0.313263 0.000000 0.277069\n0.336121 0.000000 0.277527\n0.360382 0.000000 0.277985\n0.386688 0.000000 0.278381\n0.415375 0.000000 0.278839\n0.446808 0.000000 0.279327\n0.481323 0.000000 0.279785\n0.519440 0.000000 0.280243\n0.561218 0.000000 0.280731\n0.606323 0.000000 0.281219\n0.654236 0.000000 0.281647\n0.704498 0.000000 0.282227\n0.756805 0.000000 0.282745\n0.810364 0.000000 0.283417\n0.865112 0.000000 0.283966\n0.915527 0.000000 0.284454\n0.000000 0.000000 0.272064\n0.000000 0.000000 0.272369\n0.000000 0.000000 0.272644\n0.001251 0.000000 0.272980\n0.027740 0.000000 0.273285\n0.061005 0.000000 0.273621\n0.090302 0.000000 0.273956\n0.117554 0.000000 0.274292\n0.142975 0.000000 0.274689\n0.166748 0.000000 0.275055\n0.189148 0.000000 0.275452\n0.210388 0.000000 0.275818\n0.231018 0.000000 0.276245\n0.251434 0.000000 0.276642\n0.271698 0.000000 0.277069\n0.292542 0.000000 0.277496\n0.314056 0.000793 0.277985\n0.336792 0.001801 0.278351\n0.361206 0.002930 0.278809\n0.387512 0.004059 0.279297\n0.416168 0.005249 0.279755\n0.447571 0.006470 0.280243\n0.482269 0.007690 0.280731\n0.520355 0.008942 0.281189\n0.562134 0.010223 0.281647\n0.607056 0.011597 0.282227\n0.655029 0.012878 0.282745\n0.705231 0.014221 0.283386\n0.757172 0.015747 0.283966\n0.810760 0.017120 0.284424\n0.865356 0.018524 0.284943\n0.915527 0.019928 0.285492\n0.000000 0.013092 0.272644\n0.000000 0.013885 0.272919\n0.000000 0.014771 0.273285\n0.002350 0.015625 0.273621\n0.029083 0.016449 0.273956\n0.062561 0.017395 0.274292\n0.091675 0.018372 0.274689\n0.118774 0.019318 0.275024\n0.144135 0.020233 0.275421\n0.167816 0.021301 0.275787\n0.190155 0.022369 0.276245\n0.211304 0.023468 0.276642\n0.231995 0.024597 0.277039\n0.252228 0.025696 0.277496\n0.272583 0.026764 0.277954\n0.293335 0.027893 0.278351\n0.314941 0.029144 0.278809\n0.337677 0.030334 0.279266\n0.361969 0.031555 0.279755\n0.388275 0.032837 0.280212\n0.417023 0.034119 0.280701\n0.448486 0.035400 0.281189\n0.483002 0.036713 0.281647\n0.521301 0.038025 0.282196\n0.562866 0.039368 0.282745\n0.607941 0.040710 0.283386\n0.655609 0.042114 0.283936\n0.705658 0.043427 0.284424\n0.757629 0.044861 0.284943\n0.811127 0.047089 0.285431\n0.865509 0.049530 0.285950\n0.915527 0.052002 0.286499\n0.000000 0.042145 0.273285\n0.000000 0.042999 0.273590\n0.000000 0.043915 0.273956\n0.003662 0.044678 0.274261\n0.030487 0.045715 0.274689\n0.064056 0.047516 0.275024\n0.093079 0.048920 0.275421\n0.120239 0.050720 0.275787\n0.145325 0.052734 0.276215\n0.168915 0.054657 0.276611\n0.191132 0.056763 0.277039\n0.212341 0.058655 0.277466\n0.232910 0.059784 0.277924\n0.253052 0.061066 0.278351\n0.273376 0.062317 0.278809\n0.294128 0.063660 0.279266\n0.315704 0.065094 0.279724\n0.338562 0.066376 0.280182\n0.362885 0.067749 0.280670\n0.389221 0.069061 0.281158\n0.417999 0.070435 0.281647\n0.449463 0.071808 0.282166\n0.484009 0.073212 0.282684\n0.522064 0.074585 0.283356\n0.563782 0.076111 0.283936\n0.608826 0.077515 0.284393\n0.656433 0.079010 0.284943\n0.706421 0.080505 0.285400\n0.758179 0.081970 0.285950\n0.811401 0.083466 0.286469\n0.865601 0.084991 0.286987\n0.915527 0.086456 0.287537\n0.000000 0.078918 0.273926\n0.000000 0.079956 0.274261\n0.000000 0.080872 0.274689\n0.005127 0.081848 0.275024\n0.032074 0.082916 0.275391\n0.065765 0.083832 0.275757\n0.094482 0.084961 0.276215\n0.121582 0.086090 0.276611\n0.146637 0.087250 0.277008\n0.170044 0.088226 0.277466\n0.192261 0.089447 0.277924\n0.213318 0.090607 0.278351\n0.233887 0.091888 0.278778\n0.253998 0.093140 0.279236\n0.274231 0.094147 0.279694\n0.295044 0.095459 0.280182\n0.316559 0.096771 0.280670\n0.339355 0.098022 0.281158\n0.363831 0.099365 0.281647\n0.390198 0.100586 0.282166\n0.418945 0.101837 0.282623\n0.450409 0.103180 0.283325\n0.484955 0.104553 0.283905\n0.523041 0.105865 0.284363\n0.564758 0.107269 0.284912\n0.609497 0.108643 0.285370\n0.657074 0.110016 0.285950\n0.706909 0.111328 0.286469\n0.758575 0.112640 0.286957\n0.811646 0.114075 0.287537\n0.865814 0.115417 0.288055\n0.915527 0.116821 0.288574\n0.000000 0.109985 0.274658\n0.000000 0.110809 0.275024\n0.000000 0.111847 0.275360\n0.006622 0.112762 0.275757\n0.033539 0.113678 0.276184\n0.067322 0.114777 0.276581\n0.096191 0.115601 0.277008\n0.122925 0.116730 0.277435\n0.147980 0.117828 0.277893\n0.171234 0.118896 0.278320\n0.193390 0.119904 0.278778\n0.214386 0.121094 0.279236\n0.234863 0.122253 0.279694\n0.254974 0.123230 0.280182\n0.275146 0.124451 0.280670\n0.295990 0.125610 0.281128\n0.317535 0.126831 0.281647\n0.340240 0.127808 0.282135\n0.364685 0.129089 0.282623\n0.391083 0.130341 0.283295\n0.419800 0.131561 0.283875\n0.451294 0.132751 0.284363\n0.485962 0.133850 0.284882\n0.524048 0.135162 0.285370\n0.565704 0.136444 0.285950\n0.610443 0.137726 0.286438\n0.657867 0.138824 0.286957\n0.707672 0.140076 0.287506\n0.759247 0.141357 0.288025\n0.812195 0.142670 0.288544\n0.865906 0.143982 0.289124\n0.915527 0.145142 0.289642\n0.000000 0.139130 0.275360\n0.000000 0.139893 0.275726\n0.000000 0.140839 0.276184\n0.008118 0.141602 0.276581\n0.035187 0.142609 0.277008\n0.069153 0.143433 0.277435\n0.097656 0.144409 0.277863\n0.124512 0.145447 0.278320\n0.149323 0.146301 0.278748\n0.172455 0.147339 0.279236\n0.194366 0.148376 0.279694\n0.215485 0.149323 0.280151\n0.235687 0.150391 0.280670\n0.255981 0.151489 0.281128\n0.276123 0.152405 0.281616\n0.296875 0.153534 0.282104\n0.318512 0.154572 0.282623\n0.341248 0.155548 0.283295\n0.365570 0.156708 0.283875\n0.391968 0.157867 0.284332\n0.420746 0.158783 0.284882\n0.452271 0.159943 0.285370\n0.486969 0.161072 0.285919\n0.525055 0.162201 0.286407\n0.566467 0.163208 0.286926\n0.611237 0.164429 0.287476\n0.658661 0.165558 0.287994\n0.708191 0.166534 0.288544\n0.759613 0.167694 0.289062\n0.812469 0.168915 0.289612\n0.866028 0.169861 0.290161\n0.915527 0.171082 0.290680\n0.000000 0.165894 0.276154\n0.000000 0.166595 0.276550\n0.000000 0.167511 0.277008\n0.009888 0.168213 0.277405\n0.036957 0.169189 0.277863\n0.070953 0.169891 0.278290\n0.099457 0.170837 0.278717\n0.126007 0.171844 0.279236\n0.150635 0.172607 0.279663\n0.173706 0.173553 0.280121\n0.195648 0.174377 0.280670\n0.216553 0.175385 0.281097\n0.236755 0.176208 0.281586\n0.256927 0.177185 0.282104\n0.277161 0.178223 0.282593\n0.297729 0.179077 0.283295\n0.319366 0.180115 0.283844\n0.342255 0.181000 0.284332\n0.366577 0.182007 0.284851\n0.393005 0.183075 0.285309\n0.421783 0.183899 0.285889\n0.453308 0.184998 0.286407\n0.487793 0.186005 0.286926\n0.526031 0.186890 0.287476\n0.567474 0.188019 0.287994\n0.612091 0.189026 0.288513\n0.659332 0.189911 0.289062\n0.708984 0.191010 0.289612\n0.760254 0.191864 0.290131\n0.812744 0.192993 0.290680\n0.866302 0.194031 0.291229\n0.915527 0.194916 0.291748\n0.000000 0.190674 0.276978\n0.000000 0.191376 0.277405\n0.000000 0.192139 0.277863\n0.011627 0.192902 0.278259\n0.038727 0.193695 0.278717\n0.072723 0.194427 0.279205\n0.101044 0.195312 0.279663\n0.127472 0.196045 0.280090\n0.152008 0.196869 0.280640\n0.175140 0.197662 0.281067\n0.196960 0.198578 0.281586\n0.217743 0.199310 0.282104\n0.237854 0.200287 0.282562\n0.257843 0.201050 0.283295\n0.278107 0.201965 0.283813\n0.298737 0.202728 0.284332\n0.320282 0.203705 0.284851\n0.343231 0.204437 0.285309\n0.367615 0.205444 0.285889\n0.394043 0.206390 0.286377\n0.422852 0.207214 0.286926\n0.454346 0.208221 0.287445\n0.488861 0.208984 0.287964\n0.526917 0.209961 0.288513\n0.568481 0.210754 0.289032\n0.613037 0.211761 0.289581\n0.660217 0.212524 0.290100\n0.709503 0.213531 0.290680\n0.760651 0.214539 0.291199\n0.813171 0.215332 0.291718\n0.866608 0.216339 0.292236\n0.915527 0.217133 0.292816\n0.000000 0.213623 0.277832\n0.000000 0.214355 0.278259\n0.000000 0.215057 0.278717\n0.013458 0.215729 0.279175\n0.040588 0.216492 0.279663\n0.074738 0.217102 0.280090\n0.102936 0.217957 0.280609\n0.129211 0.218597 0.281067\n0.153595 0.219452 0.281555\n0.176453 0.220123 0.282074\n0.198120 0.221008 0.282562\n0.218842 0.221649 0.283264\n0.238953 0.222565 0.283813\n0.258881 0.223267 0.284302\n0.279114 0.224091 0.284790\n0.299774 0.224854 0.285309\n0.321259 0.225739 0.285858\n0.344086 0.226410 0.286346\n0.368652 0.227386 0.286896\n0.395050 0.228027 0.287415\n0.423920 0.228973 0.287933\n0.455444 0.229706 0.288513\n0.489960 0.230621 0.289001\n0.527985 0.231354 0.289581\n0.569458 0.232269 0.290100\n0.613983 0.232971 0.290649\n0.660858 0.233917 0.291199\n0.710266 0.234619 0.291687\n0.761139 0.235596 0.292236\n0.813538 0.236328 0.292786\n0.866760 0.237244 0.293335\n0.915527 0.237976 0.293884\n0.000000 0.235352 0.278687\n0.000000 0.235870 0.279175\n0.000000 0.236542 0.279663\n0.015320 0.237244 0.280060\n0.042480 0.237823 0.280609\n0.076752 0.238617 0.281067\n0.104736 0.239197 0.281525\n0.130737 0.239990 0.282074\n0.155060 0.240631 0.282532\n0.177765 0.241272 0.283264\n0.199371 0.242065 0.283783\n0.220001 0.242676 0.284302\n0.240051 0.243530 0.284790\n0.259979 0.244141 0.285278\n0.279999 0.244965 0.285828\n0.300842 0.245636 0.286346\n0.322327 0.246521 0.286865\n0.345123 0.247162 0.287415\n0.369690 0.247986 0.287933\n0.396118 0.248657 0.288483\n0.424957 0.249512 0.288971\n0.456299 0.250214 0.289551\n0.491028 0.251099 0.290100\n0.529022 0.251709 0.290619\n0.570435 0.252411 0.291168\n0.614685 0.253235 0.291687\n0.661774 0.253937 0.292236\n0.710754 0.254822 0.292786\n0.761780 0.255493 0.293304\n0.813812 0.256378 0.293884\n0.866882 0.257019 0.294373\n0.915527 0.257904 0.294952\n0.000000 0.255951 0.279633\n0.000000 0.256500 0.280060\n0.000000 0.256958 0.280579\n0.017273 0.257751 0.281036\n0.044403 0.258301 0.281525\n0.078735 0.258911 0.282013\n0.106567 0.259583 0.282532\n0.132507 0.260193 0.283264\n0.156525 0.260956 0.283752\n0.179138 0.261505 0.284302\n0.200623 0.262146 0.284760\n0.221191 0.262909 0.285278\n0.241211 0.263489 0.285828\n0.261078 0.264313 0.286316\n0.281128 0.264923 0.286865\n0.301849 0.265747 0.287384\n0.323364 0.266327 0.287933\n0.346161 0.267120 0.288452\n0.370728 0.267761 0.288971\n0.397217 0.268372 0.289520\n0.425842 0.269226 0.290070\n0.457336 0.269806 0.290588\n0.492096 0.270660 0.291138\n0.530060 0.271271 0.291656\n0.571320 0.272095 0.292236\n0.615662 0.272705 0.292755\n0.662598 0.273376 0.293304\n0.711609 0.274170 0.293854\n0.762177 0.274811 0.294373\n0.814117 0.275665 0.294952\n0.867035 0.276276 0.295441\n0.915527 0.277100 0.295990\n0.000000 0.275757 0.280579\n0.000000 0.276276 0.281036\n0.000000 0.277008 0.281464\n0.019318 0.277527 0.281982\n0.046997 0.278046 0.282501\n0.080902 0.278748 0.283234\n0.108459 0.279297 0.283752\n0.134094 0.279907 0.284271\n0.158020 0.280579 0.284729\n0.180450 0.281158 0.285278\n0.201904 0.281921 0.285797\n0.222412 0.282471 0.286316\n0.242310 0.283234 0.286835\n0.262146 0.283844 0.287354\n0.282196 0.284363 0.287933\n0.302795 0.285156 0.288422\n0.324432 0.285736 0.288940\n0.347229 0.286438 0.289520\n0.371613 0.287140 0.290070\n0.398102 0.287689 0.290558\n0.426910 0.288483 0.291138\n0.458466 0.289062 0.291656\n0.493164 0.289917 0.292206\n0.531128 0.290497 0.292755\n0.572357 0.291046 0.293274\n0.616669 0.291870 0.293823\n0.663300 0.292450 0.294342\n0.712189 0.293243 0.294891\n0.762787 0.293854 0.295441\n0.814545 0.294678 0.295959\n0.867157 0.295258 0.296509\n0.915527 0.295837 0.296997\n0.000000 0.295380 0.281464\n0.000000 0.295837 0.281982\n0.000000 0.296539 0.282501\n0.021423 0.297058 0.283203\n0.050507 0.297577 0.283722\n0.083008 0.298279 0.284241\n0.110382 0.298798 0.284729\n0.135925 0.299530 0.285278\n0.159637 0.300079 0.285767\n0.182068 0.300568 0.286285\n0.203156 0.301331 0.286804\n0.223572 0.301849 0.287354\n0.243469 0.302429 0.287903\n0.263275 0.303162 0.288391\n0.283295 0.303741 0.288910\n0.303833 0.304504 0.289520\n0.325409 0.305054 0.290039\n0.348297 0.305725 0.290558\n0.372681 0.306427 0.291138\n0.399139 0.306946 0.291656\n0.428040 0.307709 0.292206\n0.459564 0.308289 0.292725\n0.494202 0.308838 0.293243\n0.532074 0.309631 0.293823\n0.573395 0.310181 0.294312\n0.617401 0.311005 0.294891\n0.664154 0.311554 0.295410\n0.712860 0.312286 0.295929\n0.763275 0.312897 0.296509\n0.814911 0.313477 0.296997\n0.867310 0.314240 0.297546\n0.915527 0.314850 0.298065\n0.000000 0.315063 0.282471\n0.000000 0.315704 0.283203\n0.000000 0.316223 0.283691\n0.023499 0.316711 0.284241\n0.054443 0.317413 0.284729\n0.085114 0.317932 0.285248\n0.112244 0.318420 0.285767\n0.137543 0.319153 0.286285\n0.161224 0.319672 0.286804\n0.183441 0.320190 0.287323\n0.204437 0.320923 0.287872\n0.224823 0.321442 0.288391\n0.244629 0.322144 0.288910\n0.264404 0.322723 0.289490\n0.284393 0.323273 0.290009\n0.304901 0.324036 0.290558\n0.326477 0.324554 0.291107\n0.349426 0.325104 0.291626\n0.373779 0.325897 0.292175\n0.400269 0.326416 0.292694\n0.429138 0.327209 0.293243\n0.460632 0.327728 0.293793\n0.495148 0.328308 0.294312\n0.533142 0.329071 0.294891\n0.574402 0.329620 0.295380\n0.618378 0.330261 0.295929\n0.665009 0.330933 0.296478\n0.713409 0.331512 0.296967\n0.763672 0.332245 0.297516\n0.815186 0.332825 0.298035\n0.867462 0.333496 0.298553\n0.915527 0.334137 0.299103\n0.000000 0.335327 0.283691\n0.000000 0.335846 0.284210\n0.000000 0.336304 0.284698\n0.025787 0.336975 0.285217\n0.058472 0.337555 0.285736\n0.087189 0.338013 0.286285\n0.114166 0.338745 0.286774\n0.139374 0.339233 0.287323\n0.162872 0.339783 0.287872\n0.184845 0.340485 0.288361\n0.205750 0.341003 0.288910\n0.226074 0.341522 0.289490\n0.245850 0.342285 0.290009\n0.265533 0.342773 0.290527\n0.285522 0.343536 0.291077\n0.305969 0.344055 0.291626\n0.327606 0.344574 0.292145\n0.350494 0.345367 0.292694\n0.374908 0.345886 0.293243\n0.401398 0.346466 0.293793\n0.430237 0.347229 0.294281\n0.461761 0.347748 0.294861\n0.496246 0.348511 0.295380\n0.534149 0.349060 0.295929\n0.575378 0.349640 0.296448\n0.619293 0.350372 0.296936\n0.665680 0.350891 0.297516\n0.714172 0.351654 0.298035\n0.764282 0.352203 0.298523\n0.815491 0.352722 0.299042\n0.867615 0.353516 0.299591\n0.915527 0.354065 0.300140\n0.000000 0.356201 0.284698\n0.000000 0.356873 0.285217\n0.001862 0.357361 0.285736\n0.027893 0.357849 0.286255\n0.060730 0.358612 0.286774\n0.089478 0.359070 0.287292\n0.116211 0.359711 0.287842\n0.141083 0.360321 0.288361\n0.164429 0.360809 0.288910\n0.186371 0.361572 0.289459\n0.207275 0.362061 0.289948\n0.227295 0.362579 0.290527\n0.247009 0.363342 0.291077\n0.266693 0.363861 0.291565\n0.286621 0.364380 0.292145\n0.307129 0.365143 0.292664\n0.328644 0.365662 0.293243\n0.351593 0.366425 0.293762\n0.376007 0.367004 0.294281\n0.402496 0.367523 0.294861\n0.431335 0.368317 0.295349\n0.462891 0.368805 0.295898\n0.497345 0.369354 0.296417\n0.535248 0.370117 0.296936\n0.576263 0.370636 0.297485\n0.620300 0.371429 0.298004\n0.666534 0.371948 0.298523\n0.714783 0.372498 0.299011\n0.764740 0.373260 0.299561\n0.816010 0.373779 0.300110\n0.867920 0.374542 0.300568\n0.915527 0.375061 0.301086\n0.000000 0.378479 0.285736\n0.000000 0.378967 0.286255\n0.003845 0.379669 0.286713\n0.030182 0.380188 0.287292\n0.063080 0.380676 0.287842\n0.091614 0.381409 0.288330\n0.118195 0.381897 0.288910\n0.142914 0.382416 0.289429\n0.166016 0.383148 0.289948\n0.187866 0.383698 0.290497\n0.208588 0.384430 0.291046\n0.228516 0.384949 0.291565\n0.248199 0.385498 0.292114\n0.267853 0.386200 0.292633\n0.287750 0.386780 0.293213\n0.308167 0.387329 0.293762\n0.329651 0.388062 0.294250\n0.352448 0.388580 0.294830\n0.377106 0.389252 0.295349\n0.403595 0.389893 0.295868\n0.432495 0.390442 0.296417\n0.463989 0.391174 0.296906\n0.498444 0.391724 0.297485\n0.536346 0.392273 0.298004\n0.577301 0.393036 0.298523\n0.621033 0.393555 0.299011\n0.667419 0.394226 0.299561\n0.715515 0.394867 0.300079\n0.765411 0.395416 0.300568\n0.816223 0.396118 0.301056\n0.868103 0.396637 0.301575\n0.915527 0.397247 0.302094\n0.000000 0.402100 0.286713\n0.000000 0.402802 0.287262\n0.006042 0.403320 0.287811\n0.032440 0.403809 0.288300\n0.065582 0.404572 0.288879\n0.093872 0.405090 0.289398\n0.120239 0.405670 0.289917\n0.144775 0.406342 0.290497\n0.167664 0.406860 0.291046\n0.189301 0.407623 0.291565\n0.209869 0.408112 0.292084\n0.229736 0.408661 0.292633\n0.249390 0.409424 0.293213\n0.268982 0.409943 0.293732\n0.288879 0.410553 0.294220\n0.309296 0.411255 0.294830\n0.330811 0.411774 0.295319\n0.353607 0.412567 0.295868\n0.378235 0.413086 0.296387\n0.404694 0.413635 0.296906\n0.433563 0.414398 0.297485\n0.465088 0.414948 0.297974\n0.499603 0.415466 0.298492\n0.537415 0.416229 0.299011\n0.578339 0.416779 0.299561\n0.621979 0.417511 0.300079\n0.668060 0.418091 0.300537\n0.716278 0.418579 0.301056\n0.765808 0.419342 0.301575\n0.816528 0.419861 0.302063\n0.868225 0.420593 0.302551\n0.915527 0.421173 0.303040\n0.000000 0.427826 0.287781\n0.000000 0.428314 0.288300\n0.008362 0.429047 0.288849\n0.034851 0.429565 0.289398\n0.067993 0.430084 0.289917\n0.096039 0.430847 0.290466\n0.122070 0.431335 0.291046\n0.146423 0.431915 0.291534\n0.169189 0.432678 0.292084\n0.190704 0.433167 0.292633\n0.211212 0.433746 0.293182\n0.231018 0.434479 0.293701\n0.250580 0.434998 0.294220\n0.270111 0.435791 0.294800\n0.289978 0.436310 0.295319\n0.310394 0.436859 0.295868\n0.331940 0.437592 0.296356\n0.354706 0.438141 0.296875\n0.379303 0.438690 0.297455\n0.405823 0.439453 0.297943\n0.434662 0.439972 0.298492\n0.466187 0.440765 0.298981\n0.500671 0.441284 0.299530\n0.538422 0.441803 0.300049\n0.579346 0.442596 0.300507\n0.622955 0.443115 0.301056\n0.668915 0.443665 0.301514\n0.716797 0.444397 0.302032\n0.766174 0.444916 0.302551\n0.816956 0.445648 0.303009\n0.868408 0.446198 0.303467\n0.915527 0.446716 0.304016\n0.000000 0.455627 0.288818\n0.000000 0.456177 0.289368\n0.010529 0.456665 0.289917\n0.037079 0.457428 0.290466\n0.070435 0.457947 0.291016\n0.098236 0.458527 0.291534\n0.124115 0.459259 0.292053\n0.148346 0.459778 0.292603\n0.170898 0.460541 0.293152\n0.192261 0.461090 0.293701\n0.212524 0.461609 0.294189\n0.232269 0.462372 0.294800\n0.251770 0.462921 0.295288\n0.271271 0.463440 0.295837\n0.291138 0.464203 0.296326\n0.311493 0.464722 0.296875\n0.333008 0.465546 0.297455\n0.355804 0.466034 0.297943\n0.380402 0.466583 0.298462\n0.406891 0.467346 0.298981\n0.435760 0.467896 0.299530\n0.467224 0.468445 0.300018\n0.501770 0.469208 0.300507\n0.539337 0.469727 0.301025\n0.580353 0.470398 0.301514\n0.623901 0.471008 0.302032\n0.669525 0.471527 0.302521\n0.717316 0.472260 0.303009\n0.766785 0.472809 0.303467\n0.817322 0.473297 0.303986\n0.868530 0.474060 0.304443\n0.915527 0.474548 0.304932\n0.000000 0.485901 0.289917\n0.000000 0.486420 0.290436\n0.012909 0.487122 0.290985\n0.039520 0.487732 0.291504\n0.072754 0.488251 0.292053\n0.100464 0.489014 0.292572\n0.126129 0.489532 0.293152\n0.150116 0.490051 0.293640\n0.172485 0.490845 0.294189\n0.193726 0.491364 0.294739\n0.213898 0.491943 0.295258\n0.233673 0.492676 0.295837\n0.252960 0.493195 0.296295\n0.272430 0.493958 0.296875\n0.292145 0.494476 0.297424\n0.312653 0.495026 0.297913\n0.334137 0.495789 0.298462\n0.356903 0.496307 0.298950\n0.381531 0.496887 0.299500\n0.408020 0.497620 0.299988\n0.436707 0.498169 0.300507\n0.468201 0.498901 0.300995\n0.502625 0.499451 0.301514\n0.540375 0.499969 0.302002\n0.581146 0.500702 0.302490\n0.624542 0.501251 0.302979\n0.670349 0.501709 0.303467\n0.718018 0.502502 0.303986\n0.767212 0.502991 0.304443\n0.817566 0.503510 0.304901\n0.868683 0.504211 0.305359\n0.915527 0.504730 0.305817\n0.000000 0.519135 0.290955\n0.000000 0.519623 0.291473\n0.015320 0.520142 0.292023\n0.041748 0.520905 0.292572\n0.075348 0.521423 0.293121\n0.102692 0.522003 0.293640\n0.128143 0.522736 0.294189\n0.151855 0.523254 0.294708\n0.174164 0.523987 0.295258\n0.195160 0.524536 0.295807\n0.215393 0.525085 0.296295\n0.234985 0.525787 0.296844\n0.254150 0.526337 0.297394\n0.273590 0.526855 0.297882\n0.293243 0.527618 0.298431\n0.313751 0.528137 0.298920\n0.335236 0.528748 0.299500\n0.358032 0.529419 0.299988\n0.382416 0.529907 0.300507\n0.409058 0.530701 0.300995\n0.437805 0.531219 0.301483\n0.469299 0.531708 0.302002\n0.503693 0.532471 0.302490\n0.541443 0.532990 0.302979\n0.582153 0.533478 0.303467\n0.625519 0.534210 0.303955\n0.671173 0.534698 0.304443\n0.718628 0.535248 0.304901\n0.767731 0.535980 0.305359\n0.817841 0.536438 0.305786\n0.868866 0.536896 0.306244\n0.915527 0.537628 0.306702\n0.000000 0.555206 0.292023\n0.000000 0.555908 0.292542\n0.017761 0.556488 0.293091\n0.044189 0.556976 0.293610\n0.077698 0.557678 0.294159\n0.104858 0.558197 0.294708\n0.130096 0.558746 0.295227\n0.153687 0.559479 0.295776\n0.175720 0.559998 0.296295\n0.196594 0.560486 0.296844\n0.216705 0.561249 0.297363\n0.236237 0.561768 0.297882\n0.255341 0.562286 0.298401\n0.274750 0.562988 0.298920\n0.294403 0.563507 0.299469\n0.314819 0.564178 0.299957\n0.336304 0.564789 0.300507\n0.359100 0.565277 0.300964\n0.383514 0.565796 0.301483\n0.410004 0.566498 0.302002\n0.438873 0.567017 0.302490\n0.470398 0.567657 0.302979\n0.504791 0.568207 0.303436\n0.542511 0.568695 0.303925\n0.583160 0.569427 0.304443\n0.626404 0.569855 0.304871\n0.671783 0.570343 0.305359\n0.719238 0.571075 0.305786\n0.768188 0.571503 0.306244\n0.818085 0.571991 0.306702\n0.869080 0.572418 0.307129\n0.915527 0.573090 0.307556\n0.000000 0.594574 0.293060\n0.000000 0.595032 0.293610\n0.020172 0.595551 0.294159\n0.047180 0.595978 0.294678\n0.080109 0.596680 0.295227\n0.107056 0.597198 0.295746\n0.132050 0.597809 0.296295\n0.155365 0.598358 0.296814\n0.177277 0.598846 0.297363\n0.198151 0.599487 0.297852\n0.218048 0.600067 0.298401\n0.237488 0.600525 0.298920\n0.256500 0.601013 0.299438\n0.275848 0.601715 0.299927\n0.295410 0.602203 0.300476\n0.315887 0.602661 0.300934\n0.337341 0.603394 0.301483\n0.360199 0.603821 0.301971\n0.384583 0.604279 0.302460\n0.411102 0.605011 0.302948\n0.439941 0.605499 0.303436\n0.471466 0.605896 0.303925\n0.505829 0.606598 0.304413\n0.543549 0.607025 0.304840\n0.583984 0.607452 0.305328\n0.627075 0.608063 0.305786\n0.672638 0.608582 0.306213\n0.719879 0.609039 0.306702\n0.768555 0.609467 0.307129\n0.818573 0.610107 0.307556\n0.869293 0.610504 0.307983\n0.915527 0.610901 0.308411\n0.000000 0.636078 0.294128\n0.000000 0.636536 0.294647\n0.022583 0.637177 0.295227\n0.051392 0.637604 0.295746\n0.082458 0.638062 0.296234\n0.109253 0.638733 0.296814\n0.133942 0.639160 0.297333\n0.157196 0.639557 0.297852\n0.178925 0.640198 0.298370\n0.199524 0.640717 0.298889\n0.219299 0.641144 0.299438\n0.238647 0.641571 0.299927\n0.257660 0.642242 0.300446\n0.276978 0.642670 0.300934\n0.296539 0.643127 0.301453\n0.317017 0.643677 0.301941\n0.338409 0.644196 0.302460\n0.361267 0.644592 0.302917\n0.385651 0.645020 0.303406\n0.412170 0.645691 0.303925\n0.441040 0.646088 0.304382\n0.472534 0.646484 0.304810\n0.506897 0.647125 0.305328\n0.544373 0.647491 0.305756\n0.584839 0.647919 0.306213\n0.627991 0.648285 0.306702\n0.673187 0.648834 0.307098\n0.720428 0.649292 0.307556\n0.769135 0.649658 0.307953\n0.818787 0.650024 0.308380\n0.869385 0.650635 0.308777\n0.915527 0.650970 0.309174\n0.000000 0.679901 0.295227\n0.000000 0.680237 0.295746\n0.025024 0.680634 0.296234\n0.055573 0.681274 0.296783\n0.084869 0.681641 0.297302\n0.111389 0.682037 0.297852\n0.135925 0.682434 0.298370\n0.158844 0.683014 0.298859\n0.180420 0.683380 0.299408\n0.200928 0.683777 0.299927\n0.220612 0.684143 0.300415\n0.239899 0.684753 0.300903\n0.258820 0.685150 0.301422\n0.278046 0.685516 0.301910\n0.297577 0.685883 0.302429\n0.317932 0.686523 0.302887\n0.339417 0.686829 0.303406\n0.362305 0.687195 0.303894\n0.386749 0.687561 0.304352\n0.413269 0.688141 0.304810\n0.442108 0.688507 0.305298\n0.473572 0.688843 0.305756\n0.507904 0.689178 0.306213\n0.545319 0.689697 0.306671\n0.585785 0.690094 0.307098\n0.628906 0.690430 0.307526\n0.673950 0.690735 0.307922\n0.720825 0.691162 0.308380\n0.769501 0.691620 0.308777\n0.819031 0.691895 0.309174\n0.869507 0.692230 0.309601\n0.915527 0.692474 0.309998\n0.000000 0.725098 0.296204\n0.002075 0.725677 0.296753\n0.027496 0.726013 0.297272\n0.059479 0.726288 0.297821\n0.087280 0.726654 0.298340\n0.113525 0.727173 0.298859\n0.137756 0.727478 0.299377\n0.160614 0.727844 0.299896\n0.182068 0.728180 0.300415\n0.202271 0.728455 0.300903\n0.221893 0.729004 0.301392\n0.241089 0.729309 0.301910\n0.260010 0.729584 0.302429\n0.279175 0.729858 0.302887\n0.298676 0.730194 0.303375\n0.319000 0.730682 0.303864\n0.340393 0.731049 0.304352\n0.363190 0.731354 0.304810\n0.387817 0.731598 0.305267\n0.414307 0.731903 0.305725\n0.443115 0.732452 0.306152\n0.474487 0.732697 0.306641\n0.508759 0.732941 0.307068\n0.546265 0.733276 0.307495\n0.586731 0.733551 0.307922\n0.629456 0.734009 0.308350\n0.674500 0.734314 0.308777\n0.721527 0.734558 0.309143\n0.769806 0.734802 0.309570\n0.819244 0.735077 0.309998\n0.869629 0.735291 0.310364\n0.915527 0.735779 0.310730\n0.000000 0.772003 0.297272\n0.004333 0.772186 0.297821\n0.029846 0.772491 0.298340\n0.061859 0.772705 0.298828\n0.089630 0.772888 0.299377\n0.115448 0.773254 0.299866\n0.139648 0.773651 0.300385\n0.162201 0.773926 0.300873\n0.183533 0.774139 0.301392\n0.203857 0.774353 0.301880\n0.223297 0.774658 0.302399\n0.242310 0.774994 0.302887\n0.261139 0.775330 0.303345\n0.280090 0.775513 0.303864\n0.299774 0.775757 0.304321\n0.320007 0.775970 0.304810\n0.341461 0.776215 0.305267\n0.364227 0.776459 0.305725\n0.388824 0.776917 0.306152\n0.415344 0.777100 0.306641\n0.443939 0.777313 0.307068\n0.475372 0.777557 0.307465\n0.509705 0.777802 0.307922\n0.547272 0.777985 0.308319\n0.587402 0.778168 0.308777\n0.630310 0.778442 0.309143\n0.675262 0.778778 0.309570\n0.721954 0.778992 0.309967\n0.770203 0.779175 0.310333\n0.819702 0.779358 0.310699\n0.869751 0.779510 0.311066\n0.915527 0.779724 0.311432\n0.000000 0.819336 0.298309\n0.006714 0.819489 0.298828\n0.032318 0.819794 0.299377\n0.064362 0.820038 0.299835\n0.091919 0.820221 0.300354\n0.117493 0.820404 0.300873\n0.141571 0.820526 0.301392\n0.163971 0.820740 0.301849\n0.184998 0.820831 0.302399\n0.205170 0.821045 0.302887\n0.224487 0.821167 0.303345\n0.243439 0.821564 0.303833\n0.262268 0.821747 0.304321\n0.281250 0.821899 0.304810\n0.300842 0.822052 0.305237\n0.321075 0.822174 0.305725\n0.342499 0.822388 0.306152\n0.365234 0.822510 0.306610\n0.389801 0.822632 0.307068\n0.416290 0.822815 0.307465\n0.444977 0.822968 0.307892\n0.476379 0.823273 0.308319\n0.510681 0.823456 0.308746\n0.548004 0.823578 0.309143\n0.588287 0.823730 0.309570\n0.630890 0.823853 0.309937\n0.675812 0.823975 0.310333\n0.722565 0.824127 0.310699\n0.770660 0.824219 0.311066\n0.819916 0.824341 0.311432\n0.869812 0.824463 0.311768\n0.915527 0.824615 0.312103\n0.000000 0.867371 0.299347\n0.009094 0.867462 0.299835\n0.034760 0.867554 0.300354\n0.066925 0.867645 0.300842\n0.094177 0.867737 0.301361\n0.119598 0.867767 0.301849\n0.143402 0.867920 0.302368\n0.165527 0.868103 0.302856\n0.186554 0.868286 0.303345\n0.206482 0.868347 0.303833\n0.225800 0.868439 0.304291\n0.244598 0.868530 0.304779\n0.263367 0.868561 0.305206\n0.282318 0.868652 0.305695\n0.301849 0.868744 0.306122\n0.322083 0.868774 0.306610\n0.343506 0.868896 0.307068\n0.366241 0.868958 0.307465\n0.390625 0.869049 0.307892\n0.417145 0.869110 0.308319\n0.445984 0.869171 0.308716\n0.477356 0.869263 0.309113\n0.511627 0.869293 0.309540\n0.548889 0.869385 0.309937\n0.589142 0.869446 0.310303\n0.631714 0.869446 0.310669\n0.676483 0.869720 0.311066\n0.722992 0.869781 0.311432\n0.770966 0.869873 0.311768\n0.820129 0.869995 0.312103\n0.869904 0.870087 0.312439\n0.915527 0.870087 0.312744\n0.000000 0.915527 0.300354\n0.011322 0.915527 0.300842\n0.037048 0.915527 0.301361\n0.069397 0.915527 0.301849\n0.096375 0.915527 0.302338\n0.121582 0.915527 0.302826\n0.145111 0.915527 0.303314\n0.167175 0.915527 0.303833\n0.187988 0.915527 0.304291\n0.207764 0.915527 0.304749\n0.227020 0.915527 0.305206\n0.245758 0.915527 0.305664\n0.264435 0.915527 0.306122\n0.283325 0.915527 0.306610\n0.302673 0.915527 0.307037\n0.323059 0.915527 0.307465\n0.344360 0.915527 0.307892\n0.367279 0.915527 0.308289\n0.391663 0.915527 0.308716\n0.418121 0.915527 0.309113\n0.446899 0.915527 0.309540\n0.478210 0.915527 0.309937\n0.512268 0.915527 0.310303\n0.549805 0.915527 0.310669\n0.589752 0.915527 0.311035\n0.632446 0.915527 0.311401\n0.676910 0.915527 0.311768\n0.723389 0.915527 0.312103\n0.771271 0.915527 0.312408\n0.820282 0.915527 0.312744\n0.870117 0.915527 0.313080\n0.915527 0.915527 0.313354\n0.000000 0.000000 0.295959\n0.000000 0.000000 0.296204\n0.000000 0.000000 0.296448\n0.000427 0.000000 0.296692\n0.026764 0.000000 0.296936\n0.059937 0.000000 0.297241\n0.089264 0.000000 0.297516\n0.116638 0.000000 0.297852\n0.142059 0.000000 0.298157\n0.165863 0.000000 0.298462\n0.188324 0.000000 0.298798\n0.209747 0.000000 0.299133\n0.230469 0.000000 0.299500\n0.250641 0.000000 0.299805\n0.271149 0.000000 0.300171\n0.291809 0.000000 0.300507\n0.313477 0.000000 0.300903\n0.336243 0.000000 0.301270\n0.360504 0.000000 0.301697\n0.386810 0.000000 0.302063\n0.415558 0.000000 0.302460\n0.446991 0.000000 0.302887\n0.481445 0.000000 0.303253\n0.519562 0.000000 0.303680\n0.561371 0.000000 0.304138\n0.606537 0.000000 0.304535\n0.654358 0.000000 0.304993\n0.704712 0.000000 0.305420\n0.756897 0.000000 0.305847\n0.810394 0.000000 0.306274\n0.865112 0.000000 0.306763\n0.915527 0.000000 0.307190\n0.000000 0.000000 0.296417\n0.000000 0.000000 0.296692\n0.000000 0.000000 0.296936\n0.001434 0.000000 0.297241\n0.027985 0.000000 0.297516\n0.061249 0.000000 0.297852\n0.090576 0.000000 0.298157\n0.117920 0.000000 0.298462\n0.143250 0.000000 0.298798\n0.166870 0.000000 0.299133\n0.189331 0.000000 0.299469\n0.210632 0.000000 0.299805\n0.231140 0.000000 0.300171\n0.251556 0.000000 0.300507\n0.271820 0.000000 0.300873\n0.292633 0.000092 0.301239\n0.314178 0.001129 0.301666\n0.336884 0.002167 0.302063\n0.361359 0.003296 0.302460\n0.387756 0.004456 0.302856\n0.416382 0.005615 0.303253\n0.447845 0.006836 0.303680\n0.482391 0.008087 0.304138\n0.520477 0.009369 0.304535\n0.562256 0.010773 0.304962\n0.607147 0.012115 0.305389\n0.655151 0.013458 0.305847\n0.705322 0.014801 0.306274\n0.757263 0.016174 0.306732\n0.810822 0.017609 0.307190\n0.865356 0.018982 0.307617\n0.915527 0.020416 0.308105\n0.000000 0.013458 0.296906\n0.000000 0.014130 0.297241\n0.000000 0.015045 0.297516\n0.002686 0.015961 0.297821\n0.029388 0.016724 0.298126\n0.062805 0.017670 0.298431\n0.091919 0.018677 0.298767\n0.119141 0.019714 0.299103\n0.144318 0.020691 0.299438\n0.167969 0.021606 0.299805\n0.190308 0.022705 0.300140\n0.211517 0.023834 0.300507\n0.232056 0.024933 0.300873\n0.252441 0.026093 0.301239\n0.272705 0.027283 0.301636\n0.293549 0.028473 0.302032\n0.315063 0.029694 0.302429\n0.337799 0.030884 0.302826\n0.362183 0.032166 0.303253\n0.388489 0.033417 0.303680\n0.417175 0.034698 0.304108\n0.448639 0.035980 0.304504\n0.483154 0.037354 0.304962\n0.521454 0.038605 0.305389\n0.563171 0.039978 0.305786\n0.608093 0.041321 0.306244\n0.655731 0.042694 0.306732\n0.705750 0.044067 0.307159\n0.757812 0.045471 0.307617\n0.811188 0.047852 0.308075\n0.865509 0.050293 0.308502\n0.915527 0.052856 0.308990\n0.000000 0.042511 0.297516\n0.000000 0.043243 0.297821\n0.000000 0.044189 0.298126\n0.003906 0.045135 0.298431\n0.030731 0.046204 0.298767\n0.064301 0.048035 0.299103\n0.093323 0.049805 0.299438\n0.120453 0.051636 0.299805\n0.145599 0.053284 0.300140\n0.169098 0.055267 0.300507\n0.191376 0.057373 0.300842\n0.212494 0.059174 0.301239\n0.233063 0.060394 0.301636\n0.253265 0.061554 0.302002\n0.273621 0.062775 0.302429\n0.294281 0.064148 0.302826\n0.315948 0.065460 0.303223\n0.338715 0.066833 0.303650\n0.363037 0.068176 0.304077\n0.389404 0.069580 0.304474\n0.418152 0.071045 0.304932\n0.449615 0.072388 0.305359\n0.484100 0.073822 0.305786\n0.522186 0.075317 0.306244\n0.563904 0.076752 0.306702\n0.608978 0.078186 0.307129\n0.656555 0.079651 0.307587\n0.706512 0.081146 0.308075\n0.758301 0.082642 0.308502\n0.811462 0.084076 0.308990\n0.865662 0.085602 0.309448\n0.915527 0.087128 0.309937\n0.000000 0.079224 0.298096\n0.000000 0.080261 0.298431\n0.000000 0.081299 0.298737\n0.005341 0.082153 0.299042\n0.032288 0.083252 0.299438\n0.066040 0.084381 0.299774\n0.094849 0.085297 0.300140\n0.121796 0.086426 0.300507\n0.147003 0.087585 0.300842\n0.170197 0.088806 0.301239\n0.192444 0.089783 0.301636\n0.213501 0.091003 0.302002\n0.234039 0.092255 0.302429\n0.254150 0.093506 0.302826\n0.274475 0.094727 0.303223\n0.295197 0.095917 0.303650\n0.316772 0.097137 0.304077\n0.339630 0.098450 0.304474\n0.363983 0.099792 0.304932\n0.390350 0.101105 0.305359\n0.419128 0.102448 0.305786\n0.450623 0.103790 0.306213\n0.485077 0.104950 0.306702\n0.523163 0.106293 0.307129\n0.564880 0.107697 0.307556\n0.609619 0.109100 0.308044\n0.657196 0.110504 0.308502\n0.707001 0.111847 0.308960\n0.758667 0.113312 0.309448\n0.811768 0.114655 0.309906\n0.865814 0.116058 0.310394\n0.915527 0.117371 0.310822\n0.000000 0.110321 0.298737\n0.000000 0.111206 0.299042\n0.000000 0.112122 0.299408\n0.006897 0.113190 0.299774\n0.033936 0.114075 0.300140\n0.067596 0.115082 0.300476\n0.096405 0.116211 0.300842\n0.123108 0.117065 0.301208\n0.148254 0.118164 0.301636\n0.171509 0.119354 0.302002\n0.193573 0.120209 0.302399\n0.214539 0.121429 0.302826\n0.235046 0.122589 0.303192\n0.255127 0.123779 0.303619\n0.275330 0.124817 0.304077\n0.296143 0.126007 0.304474\n0.317688 0.127167 0.304901\n0.340393 0.128418 0.305359\n0.364929 0.129486 0.305786\n0.391327 0.130737 0.306213\n0.420074 0.131989 0.306702\n0.451569 0.133209 0.307129\n0.486115 0.134491 0.307556\n0.524170 0.135529 0.308044\n0.565826 0.136810 0.308472\n0.610565 0.138092 0.308929\n0.657990 0.139404 0.309448\n0.707764 0.140656 0.309906\n0.759308 0.141754 0.310364\n0.812225 0.143036 0.310791\n0.865936 0.144379 0.311279\n0.915527 0.145660 0.311768\n0.000000 0.139404 0.299408\n0.000000 0.140137 0.299744\n0.000000 0.141083 0.300110\n0.008514 0.141907 0.300476\n0.035553 0.142883 0.300842\n0.069427 0.143890 0.301208\n0.098053 0.144714 0.301605\n0.124756 0.145752 0.301971\n0.149536 0.146820 0.302399\n0.172699 0.147675 0.302795\n0.194672 0.148712 0.303162\n0.215637 0.149658 0.303619\n0.235962 0.150726 0.304077\n0.256134 0.151825 0.304474\n0.276306 0.152710 0.304871\n0.297089 0.153839 0.305328\n0.318634 0.154938 0.305756\n0.341400 0.156006 0.306213\n0.365845 0.157013 0.306671\n0.392273 0.158203 0.307098\n0.420898 0.159271 0.307556\n0.452393 0.160278 0.308014\n0.487122 0.161469 0.308441\n0.525208 0.162628 0.308929\n0.566742 0.163574 0.309418\n0.611511 0.164795 0.309875\n0.658813 0.165924 0.310333\n0.708282 0.167114 0.310791\n0.759705 0.168121 0.311279\n0.812531 0.169220 0.311737\n0.866089 0.170471 0.312256\n0.915527 0.171417 0.312714\n0.000000 0.166199 0.300110\n0.000000 0.167053 0.300446\n0.000000 0.167786 0.300842\n0.010193 0.168640 0.301178\n0.037201 0.169434 0.301575\n0.071320 0.170380 0.301971\n0.099731 0.171143 0.302368\n0.126221 0.172089 0.302765\n0.150879 0.172852 0.303162\n0.174103 0.173859 0.303589\n0.195923 0.174652 0.304047\n0.216766 0.175659 0.304443\n0.237000 0.176727 0.304871\n0.257141 0.177490 0.305298\n0.277313 0.178558 0.305756\n0.298004 0.179382 0.306183\n0.319611 0.180420 0.306641\n0.342438 0.181458 0.307098\n0.366730 0.182312 0.307526\n0.393127 0.183380 0.308014\n0.421936 0.184448 0.308441\n0.453430 0.185303 0.308899\n0.488098 0.186371 0.309418\n0.526215 0.187286 0.309875\n0.567657 0.188293 0.310303\n0.612274 0.189392 0.310791\n0.659454 0.190247 0.311249\n0.709045 0.191345 0.311737\n0.760345 0.192413 0.312225\n0.812805 0.193268 0.312714\n0.866302 0.194336 0.313141\n0.915527 0.195465 0.313660\n0.000000 0.191010 0.300842\n0.000000 0.191620 0.301178\n0.000000 0.192474 0.301575\n0.011932 0.193115 0.301971\n0.039001 0.194000 0.302338\n0.073242 0.194702 0.302765\n0.101501 0.195618 0.303162\n0.127899 0.196320 0.303558\n0.152344 0.197235 0.304016\n0.175385 0.197937 0.304443\n0.197083 0.198853 0.304840\n0.217896 0.199585 0.305298\n0.238037 0.200531 0.305725\n0.258057 0.201294 0.306152\n0.278351 0.202271 0.306641\n0.298889 0.203033 0.307068\n0.320618 0.203979 0.307526\n0.343445 0.204956 0.307983\n0.367737 0.205719 0.308441\n0.394165 0.206696 0.308868\n0.422974 0.207489 0.309418\n0.454498 0.208496 0.309845\n0.489044 0.209229 0.310303\n0.527069 0.210266 0.310791\n0.568634 0.211243 0.311218\n0.613129 0.212067 0.311707\n0.660309 0.213043 0.312195\n0.709595 0.213837 0.312683\n0.760742 0.214844 0.313141\n0.813263 0.215668 0.313629\n0.866608 0.216644 0.314056\n0.915527 0.217651 0.314575\n0.000000 0.213837 0.301575\n0.000000 0.214630 0.301941\n0.000000 0.215240 0.302338\n0.013763 0.216095 0.302765\n0.040833 0.216736 0.303162\n0.075073 0.217560 0.303558\n0.103180 0.218201 0.304016\n0.129456 0.218811 0.304443\n0.153900 0.219727 0.304840\n0.176666 0.220367 0.305267\n0.198303 0.221252 0.305725\n0.219025 0.221924 0.306122\n0.239105 0.222778 0.306610\n0.259033 0.223480 0.307068\n0.279358 0.224426 0.307495\n0.299896 0.225067 0.307953\n0.321442 0.226013 0.308441\n0.344238 0.226715 0.308868\n0.368805 0.227600 0.309387\n0.395203 0.228394 0.309814\n0.424072 0.229248 0.310303\n0.455566 0.229950 0.310760\n0.490082 0.230865 0.311218\n0.528076 0.231598 0.311707\n0.569641 0.232544 0.312195\n0.614136 0.233459 0.312683\n0.661041 0.234192 0.313141\n0.710327 0.234955 0.313599\n0.761169 0.235809 0.314056\n0.813538 0.236694 0.314545\n0.866760 0.237488 0.315002\n0.915527 0.238464 0.315521\n0.000000 0.235565 0.302338\n0.000000 0.236084 0.302765\n0.000000 0.236877 0.303131\n0.015625 0.237457 0.303528\n0.042755 0.238129 0.303986\n0.077057 0.238831 0.304413\n0.105103 0.239441 0.304810\n0.131104 0.240234 0.305267\n0.155273 0.240845 0.305725\n0.178009 0.241669 0.306122\n0.199554 0.242279 0.306610\n0.220184 0.243103 0.307068\n0.240234 0.243744 0.307465\n0.260162 0.244507 0.307922\n0.280212 0.245270 0.308441\n0.300995 0.245911 0.308868\n0.322479 0.246735 0.309357\n0.345276 0.247375 0.309814\n0.369843 0.248230 0.310272\n0.396301 0.248901 0.310760\n0.425140 0.249786 0.311188\n0.456665 0.250458 0.311707\n0.491180 0.251343 0.312134\n0.529144 0.251953 0.312653\n0.570709 0.252869 0.313110\n0.614990 0.253510 0.313599\n0.661835 0.254395 0.314056\n0.710999 0.255066 0.314514\n0.761871 0.255951 0.315002\n0.813873 0.256622 0.315491\n0.866882 0.257233 0.315979\n0.915527 0.258179 0.316437\n0.000000 0.256134 0.303131\n0.000000 0.256683 0.303497\n0.000000 0.257172 0.303955\n0.017731 0.257935 0.304413\n0.044678 0.258484 0.304810\n0.079132 0.259277 0.305237\n0.106995 0.259827 0.305695\n0.132751 0.260406 0.306122\n0.156860 0.261169 0.306610\n0.179443 0.261749 0.307037\n0.200806 0.262543 0.307465\n0.221375 0.263123 0.307922\n0.241333 0.263794 0.308411\n0.261200 0.264557 0.308838\n0.281311 0.265106 0.309357\n0.302002 0.265961 0.309784\n0.323547 0.266571 0.310272\n0.346344 0.267426 0.310760\n0.370941 0.267975 0.311188\n0.397369 0.268677 0.311676\n0.426117 0.269440 0.312103\n0.457611 0.270050 0.312622\n0.492249 0.270905 0.313110\n0.530212 0.271484 0.313568\n0.571533 0.272369 0.314056\n0.615814 0.272980 0.314514\n0.662720 0.273804 0.315002\n0.711670 0.274414 0.315460\n0.762268 0.275116 0.315979\n0.814178 0.275879 0.316437\n0.867096 0.276520 0.316895\n0.915527 0.277344 0.317352\n0.000000 0.275970 0.303955\n0.000000 0.276428 0.304382\n0.000000 0.277191 0.304810\n0.019745 0.277679 0.305237\n0.047760 0.278442 0.305664\n0.081207 0.278961 0.306122\n0.108734 0.279510 0.306580\n0.134460 0.280273 0.307007\n0.158417 0.280792 0.307465\n0.180817 0.281311 0.307922\n0.202087 0.282135 0.308380\n0.222565 0.282654 0.308838\n0.242493 0.283447 0.309326\n0.262360 0.284027 0.309784\n0.282379 0.284607 0.310242\n0.303070 0.285370 0.310730\n0.324615 0.285950 0.311188\n0.347412 0.286774 0.311676\n0.371887 0.287292 0.312103\n0.398346 0.288086 0.312622\n0.427185 0.288696 0.313080\n0.458710 0.289276 0.313538\n0.493347 0.290100 0.314056\n0.531342 0.290680 0.314484\n0.572479 0.291473 0.314972\n0.616760 0.292084 0.315460\n0.663483 0.292694 0.315918\n0.712402 0.293488 0.316406\n0.762909 0.294098 0.316895\n0.814575 0.294891 0.317352\n0.867157 0.295471 0.317810\n0.915527 0.296082 0.318268\n0.000000 0.295532 0.304810\n0.000000 0.296021 0.305206\n0.000000 0.296722 0.305664\n0.021759 0.297241 0.306091\n0.051300 0.297913 0.306549\n0.083313 0.298492 0.307007\n0.110718 0.298981 0.307434\n0.136200 0.299744 0.307892\n0.159912 0.300262 0.308380\n0.182312 0.300903 0.308807\n0.203339 0.301514 0.309296\n0.223785 0.302094 0.309784\n0.243622 0.302826 0.310211\n0.263458 0.303406 0.310699\n0.283447 0.303925 0.311157\n0.304169 0.304718 0.311646\n0.325684 0.305267 0.312103\n0.348480 0.306030 0.312622\n0.372925 0.306610 0.313080\n0.399414 0.307129 0.313538\n0.428223 0.307922 0.313995\n0.459717 0.308472 0.314453\n0.494446 0.309204 0.314941\n0.532379 0.309845 0.315430\n0.573547 0.310425 0.315918\n0.617767 0.311218 0.316406\n0.664276 0.311768 0.316864\n0.712982 0.312561 0.317322\n0.763275 0.313110 0.317780\n0.814972 0.313690 0.318268\n0.867340 0.314484 0.318695\n0.915527 0.315063 0.319214\n0.000000 0.315216 0.305634\n0.000000 0.315918 0.306091\n0.000000 0.316406 0.306549\n0.024017 0.316895 0.306976\n0.055084 0.317596 0.307434\n0.085480 0.318085 0.307892\n0.112671 0.318604 0.308350\n0.138031 0.319336 0.308777\n0.161621 0.319855 0.309296\n0.183655 0.320526 0.309784\n0.204865 0.321106 0.310211\n0.225037 0.321686 0.310699\n0.244812 0.322388 0.311127\n0.264557 0.322968 0.311615\n0.284546 0.323486 0.312103\n0.305237 0.324219 0.312592\n0.326752 0.324768 0.313080\n0.349579 0.325439 0.313507\n0.373932 0.326080 0.313995\n0.400482 0.326630 0.314453\n0.429260 0.327393 0.314911\n0.460815 0.327972 0.315430\n0.495392 0.328735 0.315918\n0.533417 0.329285 0.316376\n0.574554 0.329834 0.316833\n0.618530 0.330597 0.317322\n0.665131 0.331146 0.317780\n0.713593 0.331757 0.318237\n0.763885 0.332458 0.318695\n0.815216 0.333008 0.319183\n0.867493 0.333771 0.319641\n0.915527 0.334320 0.320099\n0.000000 0.335510 0.306488\n0.000000 0.335999 0.306976\n0.000214 0.336517 0.307434\n0.026123 0.337219 0.307861\n0.058868 0.337708 0.308319\n0.087646 0.338257 0.308777\n0.114685 0.338898 0.309265\n0.139679 0.339447 0.309753\n0.163116 0.340179 0.310181\n0.185059 0.340698 0.310669\n0.206085 0.341187 0.311127\n0.226288 0.341888 0.311615\n0.246002 0.342468 0.312073\n0.265747 0.342987 0.312592\n0.285645 0.343719 0.313019\n0.306122 0.344269 0.313507\n0.327850 0.344971 0.313965\n0.350677 0.345551 0.314423\n0.375061 0.346130 0.314911\n0.401520 0.346832 0.315399\n0.430389 0.347443 0.315887\n0.461945 0.347961 0.316376\n0.496490 0.348724 0.316803\n0.534332 0.349243 0.317322\n0.575623 0.349976 0.317749\n0.619446 0.350555 0.318207\n0.665802 0.351105 0.318695\n0.714294 0.351837 0.319183\n0.764374 0.352417 0.319611\n0.815521 0.352936 0.320099\n0.867737 0.353729 0.320557\n0.915527 0.354248 0.321014\n0.000000 0.356598 0.307434\n0.000000 0.357056 0.307831\n0.002167 0.357544 0.308319\n0.028381 0.358154 0.308777\n0.061066 0.358765 0.309265\n0.089844 0.359283 0.309753\n0.116486 0.360016 0.310150\n0.141510 0.360504 0.310669\n0.164764 0.361023 0.311096\n0.186676 0.361725 0.311584\n0.207489 0.362274 0.312073\n0.227478 0.362946 0.312561\n0.247192 0.363556 0.313019\n0.266846 0.364075 0.313477\n0.286774 0.364807 0.313934\n0.307251 0.365356 0.314423\n0.328949 0.365906 0.314911\n0.351776 0.366638 0.315399\n0.376160 0.367157 0.315887\n0.402649 0.367859 0.316376\n0.431488 0.368469 0.316803\n0.463043 0.368988 0.317291\n0.497589 0.369690 0.317749\n0.535431 0.370300 0.318176\n0.576599 0.370850 0.318695\n0.620422 0.371613 0.319183\n0.666656 0.372162 0.319611\n0.715057 0.372864 0.320068\n0.764771 0.373444 0.320526\n0.816071 0.373932 0.321014\n0.867981 0.374756 0.321411\n0.915527 0.375275 0.321869\n0.000000 0.378632 0.308289\n0.000000 0.379181 0.308777\n0.004333 0.379852 0.309265\n0.030579 0.380341 0.309723\n0.063568 0.380859 0.310150\n0.092010 0.381592 0.310638\n0.118500 0.382111 0.311096\n0.143311 0.382782 0.311554\n0.166382 0.383362 0.312042\n0.188049 0.383850 0.312531\n0.208771 0.384644 0.313019\n0.228729 0.385193 0.313477\n0.248352 0.385712 0.313934\n0.268005 0.386444 0.314392\n0.287933 0.386963 0.314880\n0.308350 0.387573 0.315399\n0.329834 0.388245 0.315857\n0.352753 0.388794 0.316345\n0.377258 0.389557 0.316772\n0.403748 0.390106 0.317261\n0.432648 0.390686 0.317719\n0.464172 0.391388 0.318176\n0.498627 0.391907 0.318665\n0.536499 0.392487 0.319153\n0.577423 0.393219 0.319611\n0.621307 0.393768 0.320038\n0.667542 0.394531 0.320496\n0.715576 0.395081 0.320984\n0.765472 0.395599 0.321411\n0.816345 0.396301 0.321869\n0.868134 0.396851 0.322296\n0.915527 0.397614 0.322693\n0.000000 0.402435 0.309174\n0.000000 0.402985 0.309692\n0.006470 0.403503 0.310150\n0.032837 0.404053 0.310608\n0.066040 0.404755 0.311066\n0.094177 0.405273 0.311554\n0.120514 0.406006 0.312012\n0.145050 0.406555 0.312500\n0.167877 0.407074 0.313019\n0.189484 0.407776 0.313446\n0.210114 0.408325 0.313934\n0.230042 0.409058 0.314392\n0.249542 0.409607 0.314880\n0.269135 0.410156 0.315399\n0.289001 0.410889 0.315826\n0.309448 0.411469 0.316345\n0.330963 0.411987 0.316772\n0.353851 0.412750 0.317230\n0.378387 0.413300 0.317719\n0.404877 0.414032 0.318176\n0.433746 0.414612 0.318634\n0.465271 0.415131 0.319153\n0.499756 0.415863 0.319611\n0.537567 0.416443 0.320038\n0.578461 0.416962 0.320496\n0.622101 0.417725 0.320953\n0.668152 0.418243 0.321381\n0.716339 0.418915 0.321838\n0.765839 0.419525 0.322296\n0.816559 0.420074 0.322693\n0.868286 0.420837 0.323181\n0.915527 0.421326 0.323608\n0.000000 0.427979 0.310120\n0.000000 0.428497 0.310608\n0.008698 0.429230 0.311066\n0.035156 0.429749 0.311523\n0.068359 0.430267 0.312012\n0.096375 0.431061 0.312500\n0.122559 0.431519 0.312988\n0.146942 0.432281 0.313416\n0.169678 0.432831 0.313934\n0.190948 0.433380 0.314392\n0.211456 0.434143 0.314850\n0.231201 0.434662 0.315369\n0.250732 0.435181 0.315826\n0.270325 0.435974 0.316315\n0.290161 0.436493 0.316742\n0.310577 0.437195 0.317230\n0.332092 0.437775 0.317719\n0.354980 0.438324 0.318146\n0.379486 0.439117 0.318634\n0.406006 0.439667 0.319122\n0.434845 0.440155 0.319580\n0.466400 0.440948 0.320038\n0.500824 0.441467 0.320465\n0.538666 0.442230 0.320953\n0.579498 0.442780 0.321381\n0.623047 0.443298 0.321808\n0.669006 0.444061 0.322296\n0.716888 0.444611 0.322693\n0.766266 0.445129 0.323181\n0.817017 0.445862 0.323608\n0.868439 0.446381 0.324005\n0.915527 0.446960 0.324432\n0.000000 0.455841 0.311066\n0.000000 0.456329 0.311523\n0.011047 0.456940 0.311981\n0.037598 0.457611 0.312469\n0.070801 0.458160 0.312958\n0.098572 0.458923 0.313416\n0.124603 0.459442 0.313904\n0.148590 0.459961 0.314392\n0.171143 0.460693 0.314819\n0.192535 0.461273 0.315369\n0.212769 0.461792 0.315826\n0.232635 0.462555 0.316284\n0.251953 0.463104 0.316742\n0.271454 0.463837 0.317230\n0.291290 0.464386 0.317688\n0.311707 0.464966 0.318146\n0.333191 0.465698 0.318634\n0.355988 0.466217 0.319092\n0.380615 0.466797 0.319550\n0.407135 0.467560 0.320038\n0.435974 0.468079 0.320465\n0.467529 0.468811 0.320923\n0.501923 0.469391 0.321350\n0.539642 0.469910 0.321808\n0.580536 0.470673 0.322266\n0.623993 0.471191 0.322662\n0.669678 0.471771 0.323181\n0.717621 0.472473 0.323608\n0.766907 0.472992 0.323975\n0.817352 0.473480 0.324402\n0.868530 0.474243 0.324860\n0.915527 0.474762 0.325256\n0.000000 0.486084 0.311951\n0.000000 0.486633 0.312469\n0.013458 0.487396 0.312958\n0.039825 0.487915 0.313385\n0.073303 0.488434 0.313873\n0.100861 0.489197 0.314392\n0.126404 0.489716 0.314819\n0.150452 0.490295 0.315308\n0.172760 0.491028 0.315796\n0.193970 0.491547 0.316284\n0.214264 0.492371 0.316711\n0.233948 0.492859 0.317200\n0.253174 0.493378 0.317688\n0.272614 0.494141 0.318115\n0.292419 0.494690 0.318604\n0.312805 0.495392 0.319061\n0.334259 0.496002 0.319550\n0.357056 0.496552 0.320007\n0.381683 0.497223 0.320465\n0.408203 0.497833 0.320923\n0.436890 0.498322 0.321350\n0.468414 0.499115 0.321808\n0.502930 0.499634 0.322235\n0.540619 0.500214 0.322662\n0.581299 0.500885 0.323151\n0.624786 0.501404 0.323578\n0.670502 0.501953 0.323975\n0.718109 0.502655 0.324402\n0.767242 0.503204 0.324829\n0.817627 0.503876 0.325256\n0.868683 0.504395 0.325653\n0.915527 0.504913 0.326050\n0.000000 0.519318 0.312927\n0.000000 0.519806 0.313385\n0.015747 0.520416 0.313873\n0.042236 0.521118 0.314331\n0.075775 0.521606 0.314819\n0.103027 0.522369 0.315308\n0.128448 0.522888 0.315796\n0.152100 0.523438 0.316254\n0.174438 0.524170 0.316711\n0.195374 0.524750 0.317200\n0.215607 0.525238 0.317657\n0.235168 0.526031 0.318085\n0.254303 0.526520 0.318604\n0.273743 0.527191 0.319061\n0.293549 0.527771 0.319519\n0.313904 0.528351 0.320007\n0.335388 0.529083 0.320435\n0.358154 0.529602 0.320923\n0.382721 0.530151 0.321350\n0.409332 0.530853 0.321777\n0.437988 0.531403 0.322205\n0.469482 0.531952 0.322662\n0.503998 0.532654 0.323120\n0.541595 0.533173 0.323547\n0.582306 0.533722 0.323975\n0.625641 0.534393 0.324371\n0.671295 0.534912 0.324829\n0.718811 0.535583 0.325226\n0.767883 0.536102 0.325653\n0.817871 0.536591 0.326019\n0.868866 0.537048 0.326416\n0.915527 0.537811 0.326813\n0.000000 0.555420 0.313843\n0.000000 0.556183 0.314331\n0.018158 0.556610 0.314819\n0.044525 0.557159 0.315277\n0.078064 0.557892 0.315765\n0.105164 0.558380 0.316223\n0.130493 0.559113 0.316711\n0.153992 0.559662 0.317169\n0.175934 0.560150 0.317627\n0.196991 0.560791 0.318085\n0.216919 0.561462 0.318573\n0.236420 0.561920 0.319031\n0.255524 0.562683 0.319519\n0.274902 0.563232 0.319977\n0.294647 0.563690 0.320404\n0.315033 0.564423 0.320892\n0.336456 0.564941 0.321350\n0.359283 0.565460 0.321747\n0.383728 0.566132 0.322205\n0.410187 0.566681 0.322632\n0.439026 0.567169 0.323090\n0.470551 0.567902 0.323547\n0.504944 0.568390 0.323944\n0.542633 0.568848 0.324341\n0.583313 0.569580 0.324799\n0.626556 0.570068 0.325226\n0.671936 0.570496 0.325623\n0.719299 0.571198 0.325989\n0.768250 0.571686 0.326385\n0.818207 0.572113 0.326813\n0.869110 0.572784 0.327179\n0.915527 0.573303 0.327576\n0.000000 0.594727 0.314758\n0.000000 0.595215 0.315277\n0.020599 0.595703 0.315735\n0.048126 0.596283 0.316223\n0.080475 0.596893 0.316711\n0.107391 0.597351 0.317139\n0.132477 0.598083 0.317627\n0.155670 0.598541 0.318085\n0.177673 0.599030 0.318542\n0.198395 0.599762 0.319031\n0.218201 0.600250 0.319519\n0.237640 0.600677 0.319946\n0.256744 0.601257 0.320404\n0.276031 0.601898 0.320892\n0.295624 0.602386 0.321320\n0.316132 0.603027 0.321747\n0.337555 0.603516 0.322205\n0.360352 0.604034 0.322632\n0.384796 0.604645 0.323090\n0.411285 0.605164 0.323517\n0.440094 0.605621 0.323944\n0.471619 0.606140 0.324341\n0.506012 0.606750 0.324768\n0.543671 0.607208 0.325226\n0.584259 0.607666 0.325623\n0.627258 0.608307 0.325989\n0.672729 0.608765 0.326385\n0.720032 0.609192 0.326782\n0.768585 0.609741 0.327148\n0.818604 0.610260 0.327576\n0.869293 0.610626 0.327972\n0.915527 0.611053 0.328339\n0.000000 0.636230 0.315704\n0.000000 0.636688 0.316223\n0.023071 0.637329 0.316681\n0.052002 0.637756 0.317139\n0.083038 0.638245 0.317627\n0.109558 0.638885 0.318054\n0.134247 0.639313 0.318542\n0.157471 0.639771 0.319031\n0.179169 0.640411 0.319458\n0.199738 0.640869 0.319946\n0.219543 0.641266 0.320374\n0.238861 0.641724 0.320862\n0.257843 0.642426 0.321289\n0.277161 0.642822 0.321716\n0.296753 0.643219 0.322205\n0.317230 0.643921 0.322632\n0.338623 0.644318 0.323059\n0.361389 0.644745 0.323517\n0.385834 0.645294 0.323944\n0.412354 0.645844 0.324341\n0.441193 0.646210 0.324768\n0.472687 0.646637 0.325195\n0.507050 0.647278 0.325592\n0.544647 0.647644 0.325989\n0.585022 0.648041 0.326385\n0.628113 0.648438 0.326782\n0.673279 0.649048 0.327148\n0.720520 0.649445 0.327545\n0.769226 0.649811 0.327972\n0.818817 0.650238 0.328308\n0.869415 0.650757 0.328674\n0.915527 0.651093 0.329041\n0.000000 0.680023 0.316650\n0.000366 0.680389 0.317139\n0.025421 0.680817 0.317596\n0.056427 0.681396 0.318054\n0.085358 0.681824 0.318542\n0.111694 0.682159 0.319031\n0.136261 0.682739 0.319458\n0.159210 0.683197 0.319916\n0.180725 0.683563 0.320374\n0.201233 0.683929 0.320831\n0.220856 0.684448 0.321289\n0.240051 0.684875 0.321686\n0.259033 0.685272 0.322174\n0.278320 0.685608 0.322601\n0.297791 0.686188 0.323029\n0.318115 0.686615 0.323517\n0.339722 0.686951 0.323914\n0.362518 0.687317 0.324310\n0.386871 0.687927 0.324738\n0.413391 0.688293 0.325165\n0.442261 0.688599 0.325592\n0.473755 0.688995 0.325989\n0.508057 0.689270 0.326355\n0.545532 0.689880 0.326752\n0.585938 0.690216 0.327148\n0.628967 0.690491 0.327515\n0.674042 0.690857 0.327972\n0.720917 0.691406 0.328308\n0.769531 0.691711 0.328674\n0.819092 0.692078 0.329041\n0.869507 0.692352 0.329376\n0.915527 0.692657 0.329712\n0.000000 0.725311 0.317566\n0.002441 0.725800 0.318054\n0.027863 0.726135 0.318512\n0.059814 0.726471 0.319000\n0.087677 0.726746 0.319427\n0.113831 0.727325 0.319916\n0.138184 0.727631 0.320343\n0.160919 0.727905 0.320801\n0.182343 0.728241 0.321259\n0.202667 0.728760 0.321686\n0.222260 0.729126 0.322144\n0.241302 0.729431 0.322571\n0.260193 0.729706 0.323029\n0.279419 0.730042 0.323486\n0.298859 0.730316 0.323914\n0.319153 0.730865 0.324310\n0.340515 0.731171 0.324738\n0.363342 0.731445 0.325165\n0.387939 0.731750 0.325562\n0.414459 0.732025 0.325989\n0.443329 0.732513 0.326355\n0.474792 0.732788 0.326721\n0.509094 0.733124 0.327148\n0.546448 0.733368 0.327515\n0.586823 0.733673 0.327911\n0.629608 0.734131 0.328308\n0.674683 0.734406 0.328644\n0.721588 0.734680 0.329010\n0.769867 0.734894 0.329376\n0.819336 0.735138 0.329712\n0.869659 0.735474 0.330017\n0.915527 0.735870 0.330353\n0.000000 0.772095 0.318481\n0.004730 0.772308 0.319000\n0.030365 0.772552 0.319427\n0.062378 0.772797 0.319916\n0.089996 0.773071 0.320343\n0.115936 0.773468 0.320770\n0.139923 0.773743 0.321259\n0.162537 0.774017 0.321686\n0.183716 0.774231 0.322113\n0.204071 0.774475 0.322571\n0.223511 0.774750 0.323029\n0.242462 0.775177 0.323456\n0.261292 0.775421 0.323883\n0.280365 0.775604 0.324310\n0.299896 0.775848 0.324738\n0.320160 0.776062 0.325134\n0.341553 0.776306 0.325562\n0.364349 0.776642 0.325958\n0.388977 0.776978 0.326324\n0.415497 0.777191 0.326721\n0.444061 0.777466 0.327118\n0.475525 0.777618 0.327484\n0.509918 0.777802 0.327911\n0.547394 0.778076 0.328308\n0.587616 0.778229 0.328644\n0.630432 0.778625 0.329010\n0.675354 0.778839 0.329376\n0.722046 0.779022 0.329712\n0.770386 0.779266 0.330017\n0.819763 0.779449 0.330353\n0.869751 0.779633 0.330658\n0.915527 0.779816 0.330963\n0.000000 0.819397 0.319427\n0.007050 0.819580 0.319885\n0.032654 0.819885 0.320343\n0.064972 0.820160 0.320770\n0.092255 0.820312 0.321259\n0.118042 0.820465 0.321686\n0.141815 0.820648 0.322113\n0.164185 0.820770 0.322540\n0.185333 0.820923 0.322998\n0.205353 0.821106 0.323456\n0.224762 0.821381 0.323853\n0.243591 0.821625 0.324280\n0.262482 0.821808 0.324707\n0.281433 0.821960 0.325134\n0.300995 0.822113 0.325562\n0.321228 0.822266 0.325958\n0.342651 0.822449 0.326294\n0.365356 0.822540 0.326721\n0.390015 0.822693 0.327118\n0.416504 0.822815 0.327484\n0.445068 0.823120 0.327881\n0.476501 0.823364 0.328308\n0.510834 0.823456 0.328613\n0.548248 0.823608 0.328979\n0.588379 0.823792 0.329346\n0.631104 0.823883 0.329712\n0.675995 0.824036 0.330017\n0.722687 0.824158 0.330322\n0.770752 0.824249 0.330658\n0.819977 0.824402 0.330963\n0.869812 0.824463 0.331268\n0.915527 0.824768 0.331604\n0.000000 0.867401 0.320312\n0.009460 0.867493 0.320770\n0.035126 0.867584 0.321228\n0.067383 0.867676 0.321686\n0.094482 0.867737 0.322113\n0.119965 0.867798 0.322540\n0.143738 0.867981 0.322998\n0.165771 0.868164 0.323425\n0.186798 0.868286 0.323853\n0.206696 0.868378 0.324280\n0.226013 0.868469 0.324677\n0.244781 0.868530 0.325134\n0.263550 0.868622 0.325531\n0.282501 0.868713 0.325928\n0.302032 0.868744 0.326294\n0.322266 0.868835 0.326721\n0.343658 0.868958 0.327087\n0.366394 0.868988 0.327484\n0.390778 0.869110 0.327881\n0.417267 0.869110 0.328278\n0.446075 0.869202 0.328613\n0.477478 0.869263 0.328949\n0.511749 0.869293 0.329346\n0.549011 0.869385 0.329681\n0.589264 0.869446 0.329987\n0.631805 0.869568 0.330322\n0.676575 0.869720 0.330627\n0.723083 0.869781 0.330933\n0.770996 0.869934 0.331268\n0.820160 0.869995 0.331604\n0.869904 0.870087 0.331879\n0.915527 0.870087 0.332184\n0.000000 0.915527 0.321198\n0.011902 0.915527 0.321655\n0.037537 0.915527 0.322083\n0.069794 0.915527 0.322540\n0.096771 0.915527 0.322968\n0.121918 0.915527 0.323425\n0.145355 0.915527 0.323853\n0.167450 0.915527 0.324280\n0.188171 0.915527 0.324677\n0.207977 0.915527 0.325104\n0.227173 0.915527 0.325500\n0.245941 0.915527 0.325897\n0.264618 0.915527 0.326294\n0.283478 0.915527 0.326691\n0.303009 0.915527 0.327057\n0.323273 0.915527 0.327454\n0.344635 0.915527 0.327850\n0.367401 0.915527 0.328278\n0.391785 0.915527 0.328613\n0.418243 0.915527 0.328949\n0.447052 0.915527 0.329315\n0.478455 0.915527 0.329651\n0.512573 0.915527 0.329987\n0.549896 0.915527 0.330292\n0.589844 0.915527 0.330627\n0.632538 0.915527 0.330933\n0.677032 0.915527 0.331268\n0.723511 0.915527 0.331573\n0.771332 0.915527 0.331879\n0.820312 0.915527 0.332153\n0.870117 0.915527 0.332428\n0.915527 0.915527 0.332672\n0.000000 0.000000 0.318054\n0.000000 0.000000 0.318237\n0.000000 0.000000 0.318451\n0.000610 0.000000 0.318695\n0.026917 0.000000 0.318970\n0.060120 0.000000 0.319214\n0.089569 0.000000 0.319458\n0.116943 0.000000 0.319702\n0.142365 0.000000 0.320038\n0.166168 0.000000 0.320282\n0.188446 0.000000 0.320557\n0.209869 0.000000 0.320892\n0.230621 0.000000 0.321167\n0.250793 0.000000 0.321472\n0.271271 0.000000 0.321808\n0.291901 0.000000 0.322113\n0.313660 0.000000 0.322449\n0.336365 0.000000 0.322784\n0.360626 0.000000 0.323151\n0.386932 0.000000 0.323517\n0.415649 0.000000 0.323853\n0.447113 0.000000 0.324188\n0.481567 0.000000 0.324554\n0.519684 0.000000 0.324951\n0.561462 0.000000 0.325317\n0.606689 0.000000 0.325684\n0.654449 0.000000 0.326050\n0.704865 0.000000 0.326416\n0.756989 0.000000 0.326813\n0.810455 0.000000 0.327209\n0.865173 0.000000 0.327637\n0.915527 0.000000 0.328033\n0.000000 0.000000 0.318451\n0.000000 0.000000 0.318695\n0.000000 0.000000 0.318970\n0.001648 0.000000 0.319214\n0.028229 0.000000 0.319458\n0.061584 0.000000 0.319702\n0.090790 0.000000 0.320007\n0.118103 0.000000 0.320282\n0.143555 0.000000 0.320557\n0.167175 0.000000 0.320862\n0.189453 0.000000 0.321167\n0.210846 0.000000 0.321472\n0.231323 0.000000 0.321777\n0.251678 0.000000 0.322113\n0.272095 0.000000 0.322449\n0.292786 0.000397 0.322754\n0.314301 0.001495 0.323151\n0.337067 0.002625 0.323486\n0.361481 0.003662 0.323822\n0.387848 0.004913 0.324188\n0.416595 0.006165 0.324524\n0.448029 0.007416 0.324921\n0.482513 0.008667 0.325317\n0.520599 0.009918 0.325653\n0.562378 0.011261 0.326050\n0.607361 0.012573 0.326416\n0.655212 0.013885 0.326813\n0.705383 0.015259 0.327209\n0.757324 0.016632 0.327637\n0.810913 0.018158 0.328033\n0.865448 0.019623 0.328430\n0.915527 0.021027 0.328827\n0.000000 0.013702 0.318909\n0.000000 0.014587 0.319183\n0.000000 0.015320 0.319427\n0.002899 0.016266 0.319702\n0.029572 0.017181 0.320007\n0.063049 0.018066 0.320282\n0.092133 0.018982 0.320557\n0.119354 0.020020 0.320862\n0.144653 0.021057 0.321167\n0.168304 0.022095 0.321442\n0.190460 0.023193 0.321777\n0.211853 0.024292 0.322113\n0.232208 0.025299 0.322418\n0.252594 0.026489 0.322723\n0.272827 0.027649 0.323120\n0.293671 0.028839 0.323456\n0.315216 0.030121 0.323822\n0.337921 0.031281 0.324188\n0.362457 0.032562 0.324524\n0.388763 0.033844 0.324921\n0.417328 0.035095 0.325287\n0.448761 0.036407 0.325653\n0.483490 0.037750 0.326019\n0.521545 0.039062 0.326385\n0.563354 0.040405 0.326782\n0.608154 0.041809 0.327179\n0.655884 0.043121 0.327606\n0.705933 0.044525 0.328033\n0.757965 0.046021 0.328400\n0.811218 0.048615 0.328827\n0.865570 0.051178 0.329254\n0.915527 0.053864 0.329620\n0.000000 0.042816 0.319427\n0.000000 0.043579 0.319702\n0.000000 0.044495 0.320007\n0.004272 0.045471 0.320282\n0.031036 0.047150 0.320526\n0.064758 0.048584 0.320831\n0.093689 0.050385 0.321136\n0.120667 0.052216 0.321411\n0.145905 0.054230 0.321747\n0.169250 0.056091 0.322083\n0.191559 0.058075 0.322388\n0.212616 0.059509 0.322723\n0.233154 0.060791 0.323120\n0.253510 0.062042 0.323456\n0.273743 0.063416 0.323792\n0.294556 0.064728 0.324158\n0.316132 0.066010 0.324524\n0.338867 0.067200 0.324890\n0.363159 0.068604 0.325287\n0.389496 0.070038 0.325653\n0.418243 0.071442 0.325989\n0.449707 0.072845 0.326385\n0.484314 0.074310 0.326782\n0.522400 0.075745 0.327148\n0.564148 0.077209 0.327576\n0.609100 0.078674 0.328003\n0.656677 0.080139 0.328400\n0.706604 0.081604 0.328796\n0.758301 0.083099 0.329224\n0.811493 0.084625 0.329620\n0.865692 0.086121 0.330017\n0.915527 0.087585 0.330444\n0.000000 0.079773 0.319977\n0.000000 0.080566 0.320251\n0.000000 0.081604 0.320526\n0.005615 0.082703 0.320831\n0.032532 0.083588 0.321136\n0.066284 0.084747 0.321411\n0.095154 0.085846 0.321747\n0.122009 0.086853 0.322083\n0.147156 0.087952 0.322388\n0.170532 0.089172 0.322693\n0.192627 0.090393 0.323090\n0.213654 0.091492 0.323425\n0.234192 0.092651 0.323792\n0.254272 0.093903 0.324158\n0.274689 0.095154 0.324493\n0.295319 0.096466 0.324890\n0.317017 0.097778 0.325256\n0.339813 0.098846 0.325653\n0.364105 0.100189 0.325989\n0.390472 0.101532 0.326385\n0.419250 0.102875 0.326752\n0.450745 0.104248 0.327148\n0.485229 0.105560 0.327576\n0.523315 0.106964 0.327972\n0.565002 0.108276 0.328400\n0.609772 0.109528 0.328796\n0.657379 0.110870 0.329224\n0.707153 0.112305 0.329620\n0.758789 0.113678 0.329987\n0.811829 0.115112 0.330414\n0.865845 0.116547 0.330841\n0.915527 0.117920 0.331268\n0.000000 0.110596 0.320526\n0.000000 0.111603 0.320801\n0.000000 0.112427 0.321106\n0.007141 0.113464 0.321411\n0.034210 0.114532 0.321716\n0.068054 0.115387 0.322052\n0.096680 0.116486 0.322357\n0.123566 0.117615 0.322693\n0.148438 0.118530 0.323090\n0.171814 0.119659 0.323425\n0.193756 0.120789 0.323761\n0.214722 0.121796 0.324127\n0.235229 0.122955 0.324493\n0.255280 0.124146 0.324890\n0.275574 0.125336 0.325256\n0.296265 0.126373 0.325623\n0.317810 0.127594 0.325989\n0.340515 0.128784 0.326355\n0.365051 0.130066 0.326752\n0.391479 0.131134 0.327148\n0.420258 0.132324 0.327545\n0.451782 0.133636 0.327972\n0.486267 0.134888 0.328369\n0.524323 0.136169 0.328796\n0.565979 0.137238 0.329193\n0.610687 0.138458 0.329620\n0.658081 0.139771 0.329987\n0.707886 0.141052 0.330383\n0.759338 0.142365 0.330811\n0.812286 0.143555 0.331238\n0.865997 0.144745 0.331635\n0.915527 0.146027 0.332062\n0.000000 0.139679 0.321106\n0.000000 0.140625 0.321411\n0.000000 0.141418 0.321716\n0.008728 0.142365 0.322052\n0.035889 0.143188 0.322357\n0.069733 0.144226 0.322693\n0.098419 0.145142 0.323059\n0.125031 0.146057 0.323425\n0.149750 0.147125 0.323761\n0.173004 0.147980 0.324097\n0.194916 0.149078 0.324463\n0.215820 0.150146 0.324890\n0.236237 0.151062 0.325226\n0.256287 0.152161 0.325623\n0.276459 0.153290 0.325989\n0.297211 0.154175 0.326355\n0.318756 0.155334 0.326721\n0.341522 0.156464 0.327118\n0.366058 0.157501 0.327515\n0.392487 0.158539 0.327972\n0.421051 0.159698 0.328369\n0.452606 0.160797 0.328796\n0.487305 0.161774 0.329193\n0.525391 0.162964 0.329590\n0.566986 0.164154 0.329956\n0.611633 0.165100 0.330353\n0.658997 0.166290 0.330780\n0.708588 0.167511 0.331238\n0.759766 0.168488 0.331604\n0.812531 0.169617 0.332062\n0.866119 0.170837 0.332489\n0.915527 0.171997 0.332886\n0.000000 0.166412 0.321686\n0.000000 0.167328 0.322021\n0.000000 0.168060 0.322357\n0.010437 0.168976 0.322693\n0.037659 0.169708 0.323059\n0.071594 0.170685 0.323425\n0.100067 0.171417 0.323761\n0.126465 0.172394 0.324097\n0.151123 0.173401 0.324463\n0.174286 0.174133 0.324860\n0.196106 0.175171 0.325226\n0.216919 0.175964 0.325592\n0.237274 0.177032 0.325989\n0.257324 0.177979 0.326324\n0.277435 0.178802 0.326721\n0.298218 0.179901 0.327118\n0.319763 0.180725 0.327515\n0.342529 0.181763 0.327972\n0.367004 0.182770 0.328369\n0.393463 0.183685 0.328766\n0.422119 0.184723 0.329163\n0.453613 0.185608 0.329590\n0.488373 0.186676 0.329956\n0.526428 0.187744 0.330353\n0.567932 0.188660 0.330780\n0.612457 0.189697 0.331207\n0.659668 0.190704 0.331604\n0.709137 0.191681 0.332031\n0.760437 0.192719 0.332458\n0.812836 0.193817 0.332886\n0.866425 0.194702 0.333282\n0.915527 0.195770 0.333710\n0.000000 0.191223 0.322357\n0.000000 0.191864 0.322662\n0.000000 0.192719 0.323029\n0.012299 0.193329 0.323395\n0.039429 0.194275 0.323761\n0.073547 0.195007 0.324097\n0.101837 0.195831 0.324432\n0.128143 0.196564 0.324829\n0.152679 0.197479 0.325226\n0.175568 0.198212 0.325592\n0.197296 0.199158 0.325958\n0.218048 0.199982 0.326294\n0.238342 0.200836 0.326721\n0.258392 0.201660 0.327087\n0.278473 0.202545 0.327484\n0.299042 0.203491 0.327972\n0.320770 0.204254 0.328339\n0.343567 0.205231 0.328735\n0.367920 0.206024 0.329163\n0.394348 0.207031 0.329559\n0.423126 0.207764 0.329956\n0.454651 0.208771 0.330353\n0.489380 0.209778 0.330780\n0.527374 0.210541 0.331207\n0.568756 0.211517 0.331604\n0.613342 0.212341 0.332031\n0.660431 0.213348 0.332458\n0.709686 0.214172 0.332855\n0.760834 0.215118 0.333252\n0.813324 0.216125 0.333710\n0.866669 0.216888 0.334137\n0.915527 0.217896 0.334564\n0.000000 0.214050 0.323029\n0.000000 0.214874 0.323395\n0.000000 0.215515 0.323730\n0.014160 0.216309 0.324097\n0.041321 0.216949 0.324432\n0.075562 0.217804 0.324829\n0.103668 0.218414 0.325195\n0.129730 0.219299 0.325562\n0.154053 0.219971 0.325958\n0.176880 0.220764 0.326294\n0.198517 0.221466 0.326691\n0.219177 0.222412 0.327057\n0.239319 0.223053 0.327484\n0.259430 0.223846 0.327911\n0.279541 0.224640 0.328308\n0.300079 0.225464 0.328735\n0.321625 0.226227 0.329132\n0.344574 0.227173 0.329559\n0.368988 0.227875 0.329956\n0.395386 0.228760 0.330322\n0.424225 0.229462 0.330750\n0.455719 0.230377 0.331207\n0.490295 0.231140 0.331604\n0.528290 0.232056 0.332031\n0.569763 0.232758 0.332458\n0.614258 0.233704 0.332855\n0.661316 0.234436 0.333252\n0.710480 0.235413 0.333679\n0.761292 0.236115 0.334106\n0.813629 0.237061 0.334564\n0.866791 0.237732 0.334961\n0.915527 0.238678 0.335419\n0.000000 0.235718 0.323700\n0.000000 0.236328 0.324066\n0.000000 0.237091 0.324432\n0.016083 0.237671 0.324799\n0.043243 0.238464 0.325195\n0.077484 0.239014 0.325562\n0.105377 0.239899 0.325928\n0.131439 0.240448 0.326294\n0.155518 0.241058 0.326660\n0.178192 0.241913 0.327057\n0.199738 0.242523 0.327484\n0.220367 0.243347 0.327881\n0.240448 0.243988 0.328308\n0.260406 0.244843 0.328705\n0.280487 0.245483 0.329132\n0.301147 0.246216 0.329559\n0.322662 0.246979 0.329926\n0.345520 0.247681 0.330322\n0.369995 0.248505 0.330750\n0.396454 0.249176 0.331177\n0.425293 0.250000 0.331604\n0.456818 0.250763 0.332001\n0.491302 0.251526 0.332428\n0.529327 0.252197 0.332825\n0.570831 0.253113 0.333252\n0.615204 0.253754 0.333679\n0.661987 0.254639 0.334106\n0.711182 0.255310 0.334534\n0.761902 0.256195 0.334961\n0.813934 0.256836 0.335388\n0.866913 0.257721 0.335785\n0.915527 0.258392 0.336243\n0.000000 0.256317 0.324402\n0.000000 0.256836 0.324799\n0.000000 0.257507 0.325165\n0.018036 0.258179 0.325562\n0.045197 0.258728 0.325928\n0.079590 0.259491 0.326294\n0.107269 0.260010 0.326660\n0.133057 0.260834 0.327057\n0.157196 0.261383 0.327454\n0.179779 0.261963 0.327881\n0.200958 0.262787 0.328308\n0.221527 0.263336 0.328705\n0.241547 0.264160 0.329102\n0.261383 0.264771 0.329529\n0.281555 0.265503 0.329895\n0.302155 0.266144 0.330322\n0.323669 0.266785 0.330719\n0.346588 0.267578 0.331146\n0.371063 0.268219 0.331573\n0.397491 0.269043 0.331970\n0.426361 0.269684 0.332397\n0.457886 0.270508 0.332825\n0.492401 0.271088 0.333252\n0.530396 0.271881 0.333679\n0.571808 0.272552 0.334106\n0.615967 0.273163 0.334534\n0.662842 0.274048 0.334930\n0.711731 0.274658 0.335358\n0.762329 0.275482 0.335785\n0.814209 0.276093 0.336243\n0.867096 0.276947 0.336609\n0.915527 0.277588 0.337067\n0.000000 0.276123 0.325165\n0.000000 0.276794 0.325531\n0.000000 0.277374 0.325897\n0.020081 0.277863 0.326294\n0.048401 0.278625 0.326660\n0.081573 0.279144 0.327057\n0.109253 0.279694 0.327454\n0.134827 0.280487 0.327881\n0.158661 0.280975 0.328308\n0.181122 0.281769 0.328705\n0.202271 0.282318 0.329102\n0.222778 0.282898 0.329498\n0.242645 0.283661 0.329895\n0.262482 0.284210 0.330261\n0.282623 0.284943 0.330719\n0.303253 0.285614 0.331146\n0.324738 0.286163 0.331543\n0.347534 0.286957 0.331970\n0.372162 0.287537 0.332397\n0.398621 0.288330 0.332794\n0.427490 0.288910 0.333252\n0.458984 0.289764 0.333649\n0.493500 0.290314 0.334076\n0.531464 0.290894 0.334534\n0.572754 0.291687 0.334930\n0.616913 0.292297 0.335358\n0.663696 0.293121 0.335785\n0.712524 0.293701 0.336212\n0.762970 0.294373 0.336578\n0.814697 0.295105 0.337036\n0.867188 0.295654 0.337433\n0.915527 0.296509 0.337891\n0.000000 0.295715 0.325897\n0.000000 0.296417 0.326263\n0.000000 0.296906 0.326630\n0.022247 0.297424 0.327026\n0.051910 0.298187 0.327423\n0.083618 0.298645 0.327850\n0.111115 0.299255 0.328308\n0.136444 0.299957 0.328674\n0.160248 0.300476 0.329071\n0.182465 0.301178 0.329498\n0.203766 0.301758 0.329895\n0.223999 0.302277 0.330261\n0.243835 0.303040 0.330688\n0.263611 0.303589 0.331116\n0.283600 0.304260 0.331543\n0.304321 0.304901 0.331940\n0.325836 0.305481 0.332367\n0.348633 0.306244 0.332794\n0.373260 0.306824 0.333221\n0.399689 0.307373 0.333618\n0.428558 0.308105 0.334076\n0.459869 0.308716 0.334503\n0.494598 0.309479 0.334900\n0.532562 0.310059 0.335358\n0.573669 0.310760 0.335754\n0.617889 0.311401 0.336182\n0.664368 0.311981 0.336578\n0.713074 0.312744 0.337006\n0.763367 0.313354 0.337433\n0.815002 0.314026 0.337860\n0.867340 0.314667 0.338226\n0.915527 0.315277 0.338684\n0.000000 0.315399 0.326630\n0.000000 0.316101 0.327026\n0.000000 0.316589 0.327393\n0.024292 0.317200 0.327850\n0.055664 0.317780 0.328278\n0.085785 0.318298 0.328644\n0.112976 0.318848 0.329071\n0.138306 0.319519 0.329468\n0.161865 0.320038 0.329865\n0.183899 0.320770 0.330261\n0.205078 0.321320 0.330688\n0.225189 0.321869 0.331116\n0.245026 0.322601 0.331543\n0.264771 0.323151 0.331940\n0.284729 0.323883 0.332367\n0.305450 0.324432 0.332764\n0.326935 0.324982 0.333191\n0.349762 0.325745 0.333618\n0.374268 0.326294 0.334045\n0.400818 0.326965 0.334473\n0.429474 0.327606 0.334900\n0.460968 0.328156 0.335358\n0.495667 0.328949 0.335754\n0.533630 0.329498 0.336182\n0.574707 0.330017 0.336548\n0.618774 0.330811 0.336975\n0.665253 0.331360 0.337433\n0.713776 0.332123 0.337830\n0.763977 0.332642 0.338226\n0.815308 0.333221 0.338654\n0.867493 0.333954 0.339050\n0.915527 0.334503 0.339478\n0.000000 0.335724 0.327393\n0.000000 0.336182 0.327850\n0.000610 0.336700 0.328247\n0.026642 0.337402 0.328644\n0.059387 0.337891 0.329041\n0.087921 0.338593 0.329468\n0.114990 0.339111 0.329865\n0.139984 0.339600 0.330261\n0.163361 0.340332 0.330658\n0.185516 0.340851 0.331116\n0.206360 0.341370 0.331512\n0.226440 0.342133 0.331940\n0.246185 0.342651 0.332367\n0.265869 0.343292 0.332764\n0.285797 0.343903 0.333191\n0.306427 0.344482 0.333588\n0.328003 0.345184 0.334015\n0.350830 0.345764 0.334473\n0.375214 0.346344 0.334900\n0.401703 0.347076 0.335327\n0.430542 0.347626 0.335724\n0.462097 0.348297 0.336182\n0.496796 0.348907 0.336548\n0.534485 0.349457 0.336975\n0.575745 0.350220 0.337402\n0.619598 0.350739 0.337830\n0.666016 0.351440 0.338226\n0.714386 0.352051 0.338623\n0.764496 0.352600 0.339050\n0.815735 0.353363 0.339478\n0.867737 0.353912 0.339874\n0.915527 0.354431 0.340271\n0.000000 0.356720 0.328247\n0.000000 0.357239 0.328613\n0.002563 0.357727 0.329041\n0.028748 0.358398 0.329468\n0.061646 0.358948 0.329834\n0.090179 0.359436 0.330261\n0.117004 0.360199 0.330658\n0.141785 0.360718 0.331085\n0.165070 0.361359 0.331512\n0.186920 0.361938 0.331940\n0.207672 0.362427 0.332336\n0.227692 0.363220 0.332764\n0.247375 0.363739 0.333191\n0.267029 0.364288 0.333588\n0.286957 0.365021 0.334015\n0.307526 0.365540 0.334442\n0.329102 0.366150 0.334869\n0.351929 0.366821 0.335297\n0.376312 0.367401 0.335724\n0.402802 0.368134 0.336151\n0.431702 0.368652 0.336548\n0.463226 0.369232 0.336975\n0.497833 0.369965 0.337402\n0.535583 0.370514 0.337799\n0.576752 0.371094 0.338196\n0.620544 0.371826 0.338623\n0.666748 0.372345 0.339050\n0.715149 0.373108 0.339447\n0.764923 0.373627 0.339844\n0.816101 0.374268 0.340240\n0.867981 0.374939 0.340851\n0.915527 0.375458 0.341248\n0.000000 0.378845 0.329041\n0.000000 0.379547 0.329437\n0.004639 0.380035 0.329834\n0.031097 0.380524 0.330231\n0.064056 0.381256 0.330627\n0.092316 0.381775 0.331055\n0.118896 0.382263 0.331482\n0.143646 0.383057 0.331940\n0.166626 0.383545 0.332306\n0.188324 0.384155 0.332733\n0.208984 0.384827 0.333160\n0.229034 0.385345 0.333588\n0.248657 0.386108 0.334015\n0.268188 0.386597 0.334442\n0.288086 0.387177 0.334869\n0.308624 0.387909 0.335297\n0.330170 0.388458 0.335693\n0.353058 0.388977 0.336121\n0.377441 0.389771 0.336548\n0.403961 0.390289 0.336945\n0.432800 0.391052 0.337372\n0.464325 0.391571 0.337799\n0.498810 0.392120 0.338196\n0.536682 0.392883 0.338593\n0.577606 0.393433 0.339020\n0.621521 0.393951 0.339417\n0.667664 0.394775 0.339813\n0.715668 0.395264 0.340210\n0.765564 0.395996 0.340851\n0.816406 0.396515 0.341217\n0.868134 0.397064 0.341644\n0.915527 0.397797 0.342041\n0.000000 0.402710 0.329834\n0.000000 0.403168 0.330231\n0.006897 0.403687 0.330597\n0.033356 0.404419 0.331024\n0.066376 0.404968 0.331482\n0.094513 0.405426 0.331879\n0.120819 0.406219 0.332306\n0.145325 0.406708 0.332703\n0.168304 0.407410 0.333130\n0.189850 0.407990 0.333588\n0.210297 0.408539 0.333984\n0.230377 0.409302 0.334442\n0.249725 0.409821 0.334869\n0.269318 0.410309 0.335266\n0.289215 0.411102 0.335663\n0.309753 0.411652 0.336121\n0.331268 0.412323 0.336517\n0.354156 0.412964 0.336945\n0.378540 0.413483 0.337372\n0.405029 0.414276 0.337799\n0.433929 0.414795 0.338196\n0.465424 0.415314 0.338593\n0.499908 0.416077 0.339020\n0.537720 0.416626 0.339417\n0.578613 0.417267 0.339813\n0.622345 0.417908 0.340210\n0.668335 0.418457 0.340851\n0.716431 0.419220 0.341217\n0.765930 0.419739 0.341644\n0.816650 0.420288 0.342041\n0.868286 0.420990 0.342407\n0.915527 0.421539 0.342804\n0.000000 0.428192 0.330597\n0.000000 0.428741 0.331024\n0.009186 0.429443 0.331451\n0.035736 0.429932 0.331879\n0.068970 0.430695 0.332275\n0.096863 0.431213 0.332672\n0.122864 0.431763 0.333130\n0.147186 0.432495 0.333557\n0.169861 0.433044 0.333984\n0.191345 0.433563 0.334412\n0.211853 0.434326 0.334839\n0.231598 0.434814 0.335266\n0.250946 0.435577 0.335663\n0.270447 0.436157 0.336090\n0.290314 0.436707 0.336517\n0.310760 0.437439 0.336914\n0.332367 0.437988 0.337341\n0.355225 0.438538 0.337769\n0.379639 0.439301 0.338196\n0.406158 0.439819 0.338562\n0.435028 0.440521 0.338989\n0.466553 0.441132 0.339417\n0.500977 0.441681 0.339813\n0.538849 0.442444 0.340210\n0.579651 0.442993 0.340851\n0.623169 0.443481 0.341217\n0.669128 0.444275 0.341644\n0.716949 0.444794 0.342010\n0.766479 0.445404 0.342377\n0.817139 0.446045 0.342773\n0.868439 0.446594 0.343170\n0.915527 0.447327 0.343536\n0.000000 0.456055 0.331451\n0.000000 0.456543 0.331879\n0.011475 0.457306 0.332275\n0.037964 0.457825 0.332672\n0.071320 0.458344 0.333099\n0.099030 0.459076 0.333557\n0.124908 0.459625 0.333954\n0.148926 0.460236 0.334381\n0.171509 0.460938 0.334839\n0.192780 0.461456 0.335236\n0.213165 0.462189 0.335663\n0.232880 0.462769 0.336090\n0.252258 0.463318 0.336487\n0.271637 0.464081 0.336884\n0.291473 0.464600 0.337341\n0.311859 0.465210 0.337738\n0.333344 0.465881 0.338165\n0.356140 0.466461 0.338562\n0.380768 0.467072 0.338989\n0.407288 0.467773 0.339386\n0.436127 0.468292 0.339813\n0.467651 0.469086 0.340210\n0.502075 0.469574 0.340790\n0.539917 0.470093 0.341187\n0.580658 0.470856 0.341614\n0.624115 0.471405 0.341980\n0.669952 0.472168 0.342377\n0.717712 0.472626 0.342773\n0.766937 0.473175 0.343170\n0.817413 0.473846 0.343506\n0.868561 0.474426 0.343903\n0.915527 0.474915 0.344269\n0.000000 0.486328 0.332275\n0.000000 0.486847 0.332672\n0.013794 0.487579 0.333099\n0.040405 0.488098 0.333527\n0.073669 0.488861 0.333923\n0.101135 0.489380 0.334381\n0.126923 0.489929 0.334808\n0.150726 0.490631 0.335236\n0.173157 0.491211 0.335632\n0.194183 0.491730 0.336090\n0.214478 0.492523 0.336487\n0.234131 0.493042 0.336884\n0.253540 0.493713 0.337311\n0.272766 0.494324 0.337708\n0.292572 0.494904 0.338165\n0.312958 0.495667 0.338531\n0.334442 0.496155 0.338959\n0.357269 0.496735 0.339386\n0.381836 0.497467 0.339752\n0.408356 0.498016 0.340210\n0.437225 0.498596 0.340790\n0.468689 0.499298 0.341187\n0.503143 0.499786 0.341583\n0.540924 0.500580 0.341980\n0.581482 0.501038 0.342346\n0.625061 0.501617 0.342773\n0.670593 0.502319 0.343140\n0.718201 0.502869 0.343506\n0.767334 0.503357 0.343872\n0.817657 0.504059 0.344238\n0.868744 0.504608 0.344604\n0.915527 0.505066 0.344971\n0.000000 0.519501 0.333099\n0.000000 0.520020 0.333527\n0.016235 0.520782 0.333923\n0.042633 0.521301 0.334351\n0.076141 0.521790 0.334778\n0.103455 0.522552 0.335236\n0.128937 0.523102 0.335632\n0.152618 0.523682 0.336060\n0.174683 0.524384 0.336487\n0.195831 0.524902 0.336884\n0.215820 0.525452 0.337311\n0.235352 0.526184 0.337708\n0.254578 0.526703 0.338135\n0.273956 0.527496 0.338531\n0.293701 0.528015 0.338959\n0.314056 0.528534 0.339355\n0.335541 0.529297 0.339752\n0.358337 0.529785 0.340179\n0.382965 0.530457 0.340729\n0.409485 0.531067 0.341187\n0.438324 0.531616 0.341553\n0.469727 0.532196 0.341949\n0.504272 0.532867 0.342346\n0.541779 0.533386 0.342773\n0.582428 0.534088 0.343140\n0.625732 0.534607 0.343506\n0.671417 0.535065 0.343842\n0.718933 0.535828 0.344238\n0.767914 0.536316 0.344574\n0.817902 0.536774 0.344940\n0.868927 0.537415 0.345306\n0.915527 0.537994 0.345673\n0.000000 0.555634 0.333923\n0.000000 0.556335 0.334351\n0.018707 0.556854 0.334778\n0.045044 0.557526 0.335205\n0.078644 0.558075 0.335571\n0.105621 0.558563 0.336029\n0.130737 0.559326 0.336456\n0.154236 0.559845 0.336884\n0.176300 0.560333 0.337311\n0.197205 0.561096 0.337708\n0.217102 0.561615 0.338135\n0.236603 0.562164 0.338531\n0.255859 0.562836 0.338928\n0.275055 0.563385 0.339325\n0.294861 0.563873 0.339752\n0.315186 0.564606 0.340149\n0.336639 0.565125 0.340668\n0.359436 0.565674 0.341187\n0.384003 0.566376 0.341553\n0.410461 0.566864 0.341949\n0.439362 0.567413 0.342346\n0.470764 0.568054 0.342743\n0.505249 0.568542 0.343109\n0.542786 0.569153 0.343475\n0.583405 0.569763 0.343842\n0.626678 0.570221 0.344208\n0.672058 0.570831 0.344574\n0.719452 0.571381 0.344940\n0.768280 0.571838 0.345306\n0.818268 0.572296 0.345642\n0.869110 0.572998 0.346008\n0.915527 0.573425 0.346313\n0.000000 0.594910 0.334778\n0.000000 0.595398 0.335205\n0.021149 0.595856 0.335571\n0.048706 0.596558 0.336029\n0.081024 0.597076 0.336456\n0.107849 0.597565 0.336884\n0.132751 0.598236 0.337280\n0.156128 0.598755 0.337677\n0.177887 0.599243 0.338135\n0.198578 0.599884 0.338531\n0.218475 0.600403 0.338928\n0.237823 0.600861 0.339325\n0.257080 0.601624 0.339722\n0.276215 0.602081 0.340149\n0.295959 0.602539 0.340668\n0.316284 0.603241 0.341156\n0.337708 0.603699 0.341553\n0.360504 0.604156 0.341949\n0.385101 0.604858 0.342316\n0.411621 0.605347 0.342712\n0.440277 0.605804 0.343109\n0.471802 0.606476 0.343475\n0.506256 0.606873 0.343842\n0.543823 0.607361 0.344177\n0.584381 0.607819 0.344574\n0.627533 0.608459 0.344910\n0.672821 0.608887 0.345276\n0.720123 0.609344 0.345642\n0.768768 0.609955 0.345978\n0.818665 0.610413 0.346313\n0.869324 0.610779 0.346619\n0.915527 0.611328 0.346985\n0.000000 0.636414 0.335571\n0.000000 0.637024 0.335999\n0.023468 0.637512 0.336456\n0.053009 0.637939 0.336853\n0.083374 0.638519 0.337250\n0.109955 0.639038 0.337677\n0.134766 0.639526 0.338104\n0.157684 0.639893 0.338501\n0.179535 0.640564 0.338928\n0.199982 0.641022 0.339325\n0.219940 0.641479 0.339722\n0.239044 0.642059 0.340149\n0.258118 0.642548 0.340668\n0.277344 0.642975 0.341156\n0.296997 0.643433 0.341553\n0.317383 0.644073 0.341919\n0.338806 0.644501 0.342316\n0.361572 0.644928 0.342712\n0.386108 0.645538 0.343079\n0.412598 0.645935 0.343475\n0.441345 0.646362 0.343842\n0.472839 0.646881 0.344177\n0.507202 0.647400 0.344543\n0.544830 0.647797 0.344879\n0.585358 0.648163 0.345276\n0.628235 0.648682 0.345612\n0.673462 0.649170 0.345978\n0.720581 0.649536 0.346313\n0.769257 0.649933 0.346619\n0.818878 0.650482 0.346985\n0.869415 0.650879 0.347290\n0.915527 0.651215 0.347595\n0.000000 0.680176 0.336426\n0.000702 0.680573 0.336823\n0.026001 0.681183 0.337250\n0.057190 0.681549 0.337677\n0.085724 0.681915 0.338074\n0.112030 0.682312 0.338501\n0.136536 0.682922 0.338898\n0.159546 0.683289 0.339294\n0.181091 0.683716 0.339722\n0.201569 0.684052 0.340118\n0.221191 0.684662 0.340607\n0.240295 0.685059 0.341156\n0.259369 0.685425 0.341522\n0.278473 0.685822 0.341888\n0.298126 0.686371 0.342316\n0.318451 0.686737 0.342682\n0.339874 0.687134 0.343079\n0.362671 0.687439 0.343445\n0.387024 0.688080 0.343842\n0.413544 0.688416 0.344177\n0.442413 0.688782 0.344513\n0.473877 0.689087 0.344879\n0.508209 0.689484 0.345276\n0.545837 0.689972 0.345612\n0.586060 0.690338 0.345947\n0.629089 0.690674 0.346283\n0.674133 0.690979 0.346619\n0.721039 0.691559 0.346954\n0.769592 0.691803 0.347290\n0.819153 0.692139 0.347595\n0.869537 0.692444 0.347900\n0.915527 0.692841 0.348236\n0.000000 0.725555 0.337219\n0.002899 0.725922 0.337616\n0.028412 0.726257 0.338074\n0.060303 0.726562 0.338470\n0.088013 0.726959 0.338867\n0.114166 0.727417 0.339294\n0.138428 0.727753 0.339691\n0.161224 0.728058 0.340118\n0.182526 0.728363 0.340607\n0.202911 0.728912 0.341125\n0.222473 0.729187 0.341522\n0.241455 0.729523 0.341888\n0.260498 0.729797 0.342285\n0.279602 0.730133 0.342682\n0.299011 0.730499 0.343079\n0.319427 0.730957 0.343445\n0.340820 0.731262 0.343811\n0.363647 0.731506 0.344177\n0.388123 0.731842 0.344513\n0.414612 0.732269 0.344879\n0.443420 0.732605 0.345245\n0.474915 0.732910 0.345612\n0.509216 0.733185 0.345917\n0.546600 0.733459 0.346283\n0.586945 0.733826 0.346619\n0.629761 0.734253 0.346954\n0.674896 0.734467 0.347260\n0.721680 0.734772 0.347565\n0.769928 0.734985 0.347870\n0.819397 0.735229 0.348236\n0.869659 0.735657 0.348541\n0.915527 0.735962 0.348816\n0.000000 0.772186 0.338043\n0.005219 0.772400 0.338440\n0.030762 0.772644 0.338867\n0.062866 0.772858 0.339264\n0.090515 0.773102 0.339691\n0.116272 0.773590 0.340088\n0.140381 0.773834 0.340546\n0.162933 0.774109 0.341125\n0.183990 0.774323 0.341522\n0.204254 0.774536 0.341858\n0.223724 0.774902 0.342255\n0.242645 0.775269 0.342682\n0.261444 0.775482 0.343048\n0.280670 0.775696 0.343445\n0.300079 0.775940 0.343811\n0.320435 0.776154 0.344177\n0.341766 0.776398 0.344513\n0.364594 0.776825 0.344849\n0.389130 0.777069 0.345245\n0.415619 0.777283 0.345581\n0.444427 0.777496 0.345917\n0.475708 0.777710 0.346283\n0.510223 0.777924 0.346588\n0.547516 0.778107 0.346954\n0.587830 0.778381 0.347260\n0.630554 0.778748 0.347565\n0.675446 0.778931 0.347870\n0.722107 0.779144 0.348236\n0.770447 0.779297 0.348541\n0.819763 0.779480 0.348816\n0.869751 0.779663 0.349091\n0.915527 0.779816 0.349396\n0.000000 0.819427 0.338867\n0.007568 0.819641 0.339233\n0.033234 0.820038 0.339661\n0.065338 0.820190 0.340057\n0.092804 0.820374 0.340515\n0.118347 0.820496 0.341095\n0.142151 0.820679 0.341492\n0.164459 0.820831 0.341858\n0.185638 0.820984 0.342255\n0.205566 0.821136 0.342651\n0.224976 0.821472 0.343018\n0.243805 0.821716 0.343414\n0.262604 0.821869 0.343811\n0.281769 0.822021 0.344177\n0.301147 0.822144 0.344513\n0.321350 0.822357 0.344849\n0.342804 0.822479 0.345215\n0.365540 0.822601 0.345581\n0.390137 0.822754 0.345917\n0.416626 0.822906 0.346283\n0.445221 0.823151 0.346588\n0.476654 0.823456 0.346924\n0.510925 0.823578 0.347260\n0.548431 0.823700 0.347565\n0.588501 0.823792 0.347870\n0.631317 0.823944 0.348236\n0.676178 0.824066 0.348511\n0.722809 0.824219 0.348785\n0.770813 0.824310 0.349091\n0.820007 0.824463 0.349396\n0.869873 0.824554 0.349670\n0.915527 0.824860 0.349915\n0.000000 0.867462 0.339661\n0.009979 0.867554 0.340057\n0.035614 0.867584 0.340515\n0.067871 0.867676 0.341095\n0.095062 0.867767 0.341492\n0.120361 0.867920 0.341858\n0.144012 0.867981 0.342255\n0.166168 0.868164 0.342621\n0.187012 0.868347 0.343018\n0.206909 0.868439 0.343384\n0.226196 0.868469 0.343781\n0.244965 0.868561 0.344147\n0.263733 0.868652 0.344513\n0.282806 0.868713 0.344849\n0.302155 0.868774 0.345215\n0.322388 0.868896 0.345551\n0.343811 0.868958 0.345917\n0.366547 0.869049 0.346252\n0.391022 0.869110 0.346588\n0.417419 0.869171 0.346924\n0.446228 0.869202 0.347229\n0.477661 0.869293 0.347565\n0.511871 0.869354 0.347870\n0.549194 0.869446 0.348206\n0.589355 0.869446 0.348511\n0.631958 0.869568 0.348785\n0.676636 0.869781 0.349091\n0.723145 0.869873 0.349396\n0.771057 0.869934 0.349640\n0.820190 0.869995 0.349884\n0.869995 0.870087 0.350159\n0.915527 0.870148 0.350433\n0.000000 0.915527 0.340515\n0.012329 0.915527 0.341095\n0.037933 0.915527 0.341492\n0.070343 0.915527 0.341858\n0.097229 0.915527 0.342224\n0.122345 0.915527 0.342621\n0.145844 0.915527 0.342987\n0.167725 0.915527 0.343384\n0.188416 0.915527 0.343781\n0.208313 0.915527 0.344116\n0.227386 0.915527 0.344513\n0.246094 0.915527 0.344849\n0.264771 0.915527 0.345215\n0.283630 0.915527 0.345551\n0.303192 0.915527 0.345886\n0.323395 0.915527 0.346252\n0.344788 0.915527 0.346588\n0.367554 0.915527 0.346893\n0.391937 0.915527 0.347229\n0.418396 0.915527 0.347534\n0.447205 0.915527 0.347839\n0.478546 0.915527 0.348206\n0.512817 0.915527 0.348480\n0.549988 0.915527 0.348785\n0.589935 0.915527 0.349091\n0.632690 0.915527 0.349365\n0.677124 0.915527 0.349640\n0.723633 0.915527 0.349884\n0.771484 0.915527 0.350159\n0.820404 0.915527 0.350433\n0.870178 0.915527 0.350647\n0.915527 0.915527 0.350861\n0.000000 0.000000 0.338348\n0.000000 0.000000 0.338531\n0.000000 0.000000 0.338745\n0.000763 0.000000 0.338928\n0.027130 0.000000 0.339172\n0.060455 0.000000 0.339386\n0.089722 0.000000 0.339600\n0.117126 0.000000 0.339844\n0.142578 0.000000 0.340088\n0.166351 0.000000 0.340332\n0.188721 0.000000 0.340851\n0.210022 0.000000 0.341095\n0.230713 0.000000 0.341339\n0.250946 0.000000 0.341644\n0.271393 0.000000 0.341888\n0.292084 0.000000 0.342194\n0.313751 0.000000 0.342499\n0.336487 0.000000 0.342834\n0.360748 0.000000 0.343109\n0.387054 0.000000 0.343414\n0.415802 0.000000 0.343719\n0.447235 0.000000 0.344055\n0.481781 0.000000 0.344391\n0.519958 0.000000 0.344727\n0.561584 0.000000 0.345062\n0.606812 0.000000 0.345367\n0.654541 0.000000 0.345734\n0.704987 0.000000 0.346069\n0.756989 0.000000 0.346405\n0.810516 0.000000 0.346771\n0.865173 0.000000 0.347107\n0.915527 0.000000 0.347473\n0.000000 0.000000 0.338745\n0.000000 0.000000 0.338928\n0.000000 0.000000 0.339142\n0.001923 0.000000 0.339355\n0.028534 0.000000 0.339600\n0.061859 0.000000 0.339844\n0.090973 0.000000 0.340088\n0.118317 0.000000 0.340332\n0.143707 0.000000 0.340790\n0.167389 0.000000 0.341095\n0.189636 0.000000 0.341339\n0.210968 0.000000 0.341614\n0.231659 0.000000 0.341888\n0.251831 0.000000 0.342194\n0.272308 0.000000 0.342499\n0.292908 0.000885 0.342804\n0.314423 0.001923 0.343079\n0.337280 0.003021 0.343414\n0.361633 0.004181 0.343719\n0.387970 0.005341 0.344025\n0.416718 0.006561 0.344391\n0.448181 0.007812 0.344696\n0.482666 0.009064 0.345032\n0.520752 0.010315 0.345367\n0.562531 0.011688 0.345703\n0.607666 0.012970 0.346069\n0.655334 0.014465 0.346405\n0.705444 0.015869 0.346741\n0.757416 0.017242 0.347107\n0.810944 0.018677 0.347473\n0.865448 0.020050 0.347809\n0.915527 0.021484 0.348206\n0.000000 0.013947 0.339142\n0.000000 0.014832 0.339355\n0.000000 0.015747 0.339569\n0.003052 0.016479 0.339813\n0.029846 0.017487 0.340057\n0.063263 0.018433 0.340332\n0.092346 0.019470 0.340790\n0.119568 0.020325 0.341095\n0.144897 0.021393 0.341309\n0.168488 0.022430 0.341614\n0.190643 0.023590 0.341858\n0.211975 0.024689 0.342194\n0.232391 0.025848 0.342499\n0.252716 0.026978 0.342773\n0.272980 0.028168 0.343079\n0.293793 0.029236 0.343414\n0.315338 0.030457 0.343719\n0.338043 0.031677 0.344025\n0.362579 0.032990 0.344360\n0.388916 0.034210 0.344666\n0.417480 0.035553 0.345001\n0.448883 0.036835 0.345367\n0.483612 0.038147 0.345703\n0.521698 0.039490 0.346039\n0.563477 0.040894 0.346405\n0.608337 0.042358 0.346741\n0.656189 0.043671 0.347107\n0.705994 0.045105 0.347443\n0.757996 0.047333 0.347809\n0.811249 0.049713 0.348206\n0.865570 0.052216 0.348541\n0.915527 0.054840 0.348907\n0.000000 0.043060 0.339569\n0.000000 0.043945 0.339813\n0.000000 0.044800 0.340057\n0.004456 0.045807 0.340302\n0.031342 0.047699 0.340729\n0.065002 0.049316 0.341064\n0.093964 0.050903 0.341309\n0.120880 0.052917 0.341614\n0.146057 0.054901 0.341858\n0.169647 0.056946 0.342194\n0.191681 0.058807 0.342468\n0.212830 0.059906 0.342773\n0.233307 0.061188 0.343079\n0.253662 0.062469 0.343384\n0.273895 0.063843 0.343719\n0.294708 0.065186 0.344025\n0.316254 0.066528 0.344330\n0.338989 0.067871 0.344666\n0.363312 0.069305 0.345001\n0.389801 0.070679 0.345337\n0.418396 0.072052 0.345703\n0.449890 0.073303 0.346039\n0.484528 0.074738 0.346375\n0.522705 0.076233 0.346710\n0.564423 0.077606 0.347076\n0.609253 0.079163 0.347443\n0.656769 0.080658 0.347809\n0.706696 0.082092 0.348175\n0.758392 0.083588 0.348541\n0.811554 0.085083 0.348907\n0.865692 0.086578 0.349274\n0.915527 0.088074 0.349640\n0.000000 0.080048 0.340057\n0.000000 0.081055 0.340302\n0.000000 0.081909 0.340729\n0.005951 0.083008 0.341064\n0.032837 0.084045 0.341309\n0.066498 0.085022 0.341583\n0.095398 0.086182 0.341858\n0.122345 0.087372 0.342194\n0.147339 0.088318 0.342438\n0.170837 0.089539 0.342773\n0.192780 0.090729 0.343079\n0.213806 0.091980 0.343384\n0.234344 0.093262 0.343689\n0.254425 0.094238 0.343994\n0.274811 0.095551 0.344330\n0.295471 0.096893 0.344666\n0.317200 0.098145 0.344971\n0.339935 0.099487 0.345337\n0.364288 0.100830 0.345703\n0.390625 0.102020 0.346008\n0.419403 0.103302 0.346375\n0.450867 0.104614 0.346710\n0.485443 0.106018 0.347076\n0.523529 0.107391 0.347443\n0.565186 0.108734 0.347809\n0.609985 0.110138 0.348145\n0.657593 0.111542 0.348541\n0.707367 0.112915 0.348877\n0.758972 0.114319 0.349274\n0.811951 0.115540 0.349640\n0.865845 0.116943 0.350006\n0.915527 0.118378 0.350403\n0.000000 0.110870 0.340668\n0.000000 0.111908 0.341064\n0.000000 0.112915 0.341309\n0.007477 0.113770 0.341583\n0.034424 0.114838 0.341858\n0.068268 0.115753 0.342163\n0.097107 0.116821 0.342438\n0.123810 0.117920 0.342773\n0.148621 0.119080 0.343048\n0.172028 0.120026 0.343384\n0.193939 0.121155 0.343689\n0.214844 0.122345 0.343994\n0.235352 0.123383 0.344330\n0.255432 0.124512 0.344666\n0.275818 0.125732 0.344971\n0.296417 0.126923 0.345337\n0.317932 0.128021 0.345673\n0.340820 0.129181 0.346008\n0.365234 0.130432 0.346344\n0.391602 0.131683 0.346710\n0.420410 0.132935 0.347076\n0.451935 0.134003 0.347443\n0.486420 0.135254 0.347778\n0.524506 0.136566 0.348145\n0.566132 0.137787 0.348511\n0.610809 0.139069 0.348877\n0.658234 0.140167 0.349243\n0.707977 0.141449 0.349640\n0.759430 0.142731 0.350006\n0.812317 0.144073 0.350372\n0.865997 0.145355 0.350739\n0.915527 0.146545 0.351105\n0.000000 0.139923 0.341309\n0.000000 0.140930 0.341583\n0.000000 0.141663 0.341858\n0.009155 0.142670 0.342163\n0.036133 0.143616 0.342438\n0.070190 0.144470 0.342773\n0.098633 0.145569 0.343048\n0.125214 0.146362 0.343353\n0.150085 0.147400 0.343658\n0.173248 0.148529 0.343964\n0.195068 0.149384 0.344330\n0.215973 0.150482 0.344635\n0.236420 0.151611 0.344971\n0.256470 0.152466 0.345306\n0.276611 0.153595 0.345642\n0.297394 0.154755 0.346008\n0.318939 0.155609 0.346313\n0.341675 0.156799 0.346680\n0.366241 0.157898 0.347046\n0.392639 0.158875 0.347412\n0.421326 0.160034 0.347778\n0.452881 0.161194 0.348145\n0.487427 0.162323 0.348511\n0.525482 0.163330 0.348877\n0.567108 0.164490 0.349243\n0.611786 0.165710 0.349609\n0.659088 0.166656 0.350006\n0.708679 0.167816 0.350342\n0.759888 0.169037 0.350739\n0.812592 0.170013 0.351105\n0.866119 0.171173 0.351440\n0.915527 0.172363 0.351807\n0.000000 0.166687 0.341858\n0.000000 0.167633 0.342163\n0.000000 0.168304 0.342438\n0.010864 0.169220 0.342743\n0.037903 0.170013 0.343018\n0.071991 0.170929 0.343353\n0.100433 0.171936 0.343658\n0.126831 0.172668 0.343964\n0.151489 0.173645 0.344299\n0.174500 0.174469 0.344635\n0.196259 0.175446 0.344940\n0.217102 0.176392 0.345306\n0.237488 0.177277 0.345642\n0.257477 0.178314 0.345978\n0.277618 0.179138 0.346313\n0.298370 0.180145 0.346649\n0.319916 0.181152 0.347015\n0.342712 0.182068 0.347412\n0.367249 0.183136 0.347748\n0.393646 0.184052 0.348145\n0.422363 0.185059 0.348480\n0.453796 0.186127 0.348846\n0.488495 0.186981 0.349243\n0.526520 0.188080 0.349609\n0.568115 0.189148 0.349976\n0.612732 0.190033 0.350342\n0.659912 0.191132 0.350739\n0.709229 0.192017 0.351105\n0.760468 0.193054 0.351440\n0.812897 0.194122 0.351776\n0.866425 0.195099 0.352173\n0.915527 0.196106 0.352570\n0.000000 0.191437 0.342407\n0.000000 0.192291 0.342743\n0.000000 0.192963 0.343018\n0.012634 0.193817 0.343323\n0.039734 0.194519 0.343628\n0.073853 0.195404 0.343933\n0.102081 0.196106 0.344299\n0.128418 0.196960 0.344604\n0.152924 0.197723 0.344940\n0.175781 0.198669 0.345276\n0.197449 0.199402 0.345612\n0.218231 0.200378 0.345978\n0.238586 0.201111 0.346313\n0.258514 0.202057 0.346649\n0.278656 0.202789 0.347015\n0.299286 0.203766 0.347382\n0.320923 0.204559 0.347748\n0.343719 0.205536 0.348145\n0.368073 0.206482 0.348450\n0.394470 0.207245 0.348846\n0.423279 0.208282 0.349213\n0.454803 0.209045 0.349579\n0.489563 0.210083 0.349945\n0.527618 0.210846 0.350342\n0.569061 0.211853 0.350708\n0.613434 0.212708 0.351105\n0.660583 0.213593 0.351440\n0.709900 0.214630 0.351776\n0.760925 0.215424 0.352142\n0.813416 0.216431 0.352539\n0.866669 0.217285 0.352936\n0.915527 0.218201 0.353333\n0.000000 0.214508 0.342987\n0.000000 0.215118 0.343323\n0.000000 0.215820 0.343628\n0.014496 0.216553 0.343933\n0.041595 0.217224 0.344269\n0.075836 0.218018 0.344604\n0.103943 0.218658 0.344940\n0.130066 0.219513 0.345276\n0.154297 0.220184 0.345612\n0.177094 0.221100 0.345947\n0.198669 0.221741 0.346313\n0.219360 0.222656 0.346619\n0.239624 0.223328 0.347015\n0.259583 0.224182 0.347351\n0.279694 0.224915 0.347748\n0.300232 0.225800 0.348083\n0.321899 0.226501 0.348450\n0.344788 0.227417 0.348846\n0.369110 0.228088 0.349182\n0.395538 0.229065 0.349548\n0.424377 0.229767 0.349945\n0.455872 0.230682 0.350342\n0.490631 0.231415 0.350708\n0.528656 0.232330 0.351074\n0.569916 0.233032 0.351440\n0.614349 0.234009 0.351776\n0.661438 0.234680 0.352142\n0.710571 0.235626 0.352539\n0.761505 0.236359 0.352936\n0.813721 0.237305 0.353302\n0.866791 0.238129 0.353699\n0.915527 0.238953 0.354065\n0.000000 0.235931 0.343628\n0.000000 0.236603 0.343933\n0.000000 0.237305 0.344269\n0.016418 0.237885 0.344574\n0.043518 0.238647 0.344910\n0.077820 0.239258 0.345276\n0.105835 0.240082 0.345612\n0.131714 0.240662 0.345917\n0.155945 0.241425 0.346283\n0.178619 0.242126 0.346619\n0.199921 0.242798 0.347015\n0.220581 0.243591 0.347351\n0.240692 0.244232 0.347717\n0.260651 0.245056 0.348083\n0.280731 0.245728 0.348450\n0.301270 0.246552 0.348816\n0.322906 0.247223 0.349182\n0.345825 0.248077 0.349548\n0.370148 0.248718 0.349945\n0.396606 0.249603 0.350311\n0.425476 0.250275 0.350677\n0.456970 0.251160 0.351044\n0.491486 0.251801 0.351440\n0.529541 0.252472 0.351776\n0.570984 0.253326 0.352142\n0.615387 0.254059 0.352539\n0.662109 0.254883 0.352905\n0.711334 0.255585 0.353302\n0.761963 0.256470 0.353668\n0.813965 0.257080 0.354065\n0.867004 0.257965 0.354431\n0.915527 0.258667 0.354797\n0.000000 0.256531 0.344269\n0.000000 0.257019 0.344574\n0.000000 0.257812 0.344879\n0.018372 0.258362 0.345245\n0.045441 0.259033 0.345581\n0.079987 0.259644 0.345917\n0.107574 0.260223 0.346283\n0.133362 0.261017 0.346619\n0.157440 0.261566 0.346985\n0.179993 0.262268 0.347351\n0.201324 0.262970 0.347717\n0.221741 0.263550 0.348053\n0.241943 0.264404 0.348450\n0.261688 0.264984 0.348785\n0.281830 0.265808 0.349152\n0.302307 0.266388 0.349548\n0.323914 0.267242 0.349915\n0.346863 0.267792 0.350281\n0.371246 0.268433 0.350647\n0.397675 0.269287 0.351044\n0.426544 0.269867 0.351410\n0.458069 0.270721 0.351776\n0.492554 0.271362 0.352112\n0.530579 0.272156 0.352509\n0.571991 0.272766 0.352875\n0.616302 0.273468 0.353271\n0.663025 0.274261 0.353668\n0.711914 0.274872 0.354034\n0.762390 0.275726 0.354401\n0.814240 0.276337 0.354767\n0.867126 0.277161 0.355133\n0.915527 0.277802 0.355530\n0.000000 0.276306 0.344879\n0.000000 0.277039 0.345215\n0.000000 0.277588 0.345581\n0.020508 0.278168 0.345917\n0.048920 0.278839 0.346283\n0.082031 0.279358 0.346588\n0.109528 0.279999 0.346985\n0.135071 0.280640 0.347321\n0.158905 0.281219 0.347687\n0.181335 0.281982 0.348053\n0.202606 0.282532 0.348450\n0.222992 0.283295 0.348785\n0.242920 0.283905 0.349152\n0.262787 0.284424 0.349518\n0.282928 0.285248 0.349915\n0.303406 0.285797 0.350281\n0.324921 0.286560 0.350647\n0.347931 0.287201 0.351044\n0.372314 0.287720 0.351410\n0.398773 0.288544 0.351746\n0.427612 0.289124 0.352112\n0.459198 0.289948 0.352509\n0.493652 0.290558 0.352875\n0.531647 0.291168 0.353241\n0.573029 0.291901 0.353638\n0.617065 0.292511 0.354034\n0.663818 0.293304 0.354401\n0.712646 0.293915 0.354767\n0.763092 0.294739 0.355133\n0.814758 0.295319 0.355499\n0.867249 0.295868 0.355896\n0.915527 0.296692 0.356232\n0.000000 0.295868 0.345581\n0.000000 0.296600 0.345886\n0.000000 0.297089 0.346252\n0.022583 0.297699 0.346588\n0.052673 0.298340 0.346954\n0.084167 0.298859 0.347321\n0.111511 0.299591 0.347687\n0.136871 0.300171 0.348053\n0.160583 0.300629 0.348450\n0.182739 0.301361 0.348785\n0.203979 0.301910 0.349152\n0.224152 0.302521 0.349518\n0.244171 0.303223 0.349884\n0.263947 0.303802 0.350250\n0.283752 0.304565 0.350647\n0.304474 0.305115 0.351044\n0.325989 0.305817 0.351410\n0.348785 0.306458 0.351746\n0.373413 0.307007 0.352112\n0.399872 0.307770 0.352509\n0.428741 0.308319 0.352844\n0.460175 0.308990 0.353241\n0.494720 0.309692 0.353638\n0.532715 0.310242 0.354004\n0.573822 0.311066 0.354401\n0.618042 0.311615 0.354767\n0.664581 0.312347 0.355103\n0.713165 0.312988 0.355499\n0.763458 0.313538 0.355865\n0.815063 0.314331 0.356232\n0.867401 0.314911 0.356598\n0.915527 0.315521 0.356995\n0.000000 0.315796 0.346252\n0.000000 0.316284 0.346588\n0.000000 0.316772 0.346954\n0.024780 0.317474 0.347321\n0.056580 0.317963 0.347656\n0.086304 0.318451 0.348022\n0.113373 0.319183 0.348389\n0.138519 0.319702 0.348785\n0.162079 0.320251 0.349121\n0.184204 0.320984 0.349487\n0.205231 0.321503 0.349854\n0.225403 0.322266 0.350250\n0.245361 0.322784 0.350616\n0.264923 0.323334 0.351013\n0.284943 0.324066 0.351410\n0.305603 0.324646 0.351746\n0.327087 0.325165 0.352081\n0.349884 0.325958 0.352478\n0.374512 0.326508 0.352844\n0.400970 0.327271 0.353241\n0.429779 0.327789 0.353607\n0.461304 0.328400 0.354004\n0.495880 0.329132 0.354370\n0.533783 0.329681 0.354767\n0.574860 0.330353 0.355103\n0.618988 0.330994 0.355469\n0.665375 0.331543 0.355835\n0.713959 0.332306 0.356201\n0.764130 0.332855 0.356598\n0.815399 0.333588 0.356995\n0.867554 0.334198 0.357361\n0.915527 0.334686 0.357697\n0.000000 0.335907 0.346954\n0.000000 0.336365 0.347290\n0.000916 0.337067 0.347656\n0.026978 0.337585 0.348022\n0.059692 0.338074 0.348389\n0.088501 0.338806 0.348785\n0.115265 0.339294 0.349121\n0.140381 0.339874 0.349487\n0.163757 0.340515 0.349854\n0.185699 0.341064 0.350220\n0.206573 0.341614 0.350616\n0.226776 0.342316 0.350983\n0.246399 0.342834 0.351379\n0.266083 0.343597 0.351715\n0.286011 0.344116 0.352081\n0.306702 0.344635 0.352448\n0.328186 0.345428 0.352844\n0.351013 0.345917 0.353210\n0.375488 0.346558 0.353607\n0.402039 0.347290 0.354004\n0.430847 0.347809 0.354340\n0.462402 0.348572 0.354736\n0.496979 0.349121 0.355103\n0.534821 0.349701 0.355438\n0.575928 0.350433 0.355835\n0.619812 0.350983 0.356201\n0.666199 0.351715 0.356598\n0.714508 0.352264 0.356964\n0.764526 0.352783 0.357330\n0.815857 0.353546 0.357697\n0.867798 0.354095 0.358063\n0.915527 0.354767 0.358398\n0.000000 0.356934 0.347656\n0.000000 0.357391 0.347992\n0.002960 0.357941 0.348389\n0.029266 0.358643 0.348755\n0.062012 0.359131 0.349121\n0.090668 0.359802 0.349457\n0.117279 0.360382 0.349854\n0.142059 0.360870 0.350220\n0.165344 0.361633 0.350616\n0.187134 0.362122 0.350983\n0.207886 0.362671 0.351349\n0.228058 0.363403 0.351715\n0.247711 0.363953 0.352081\n0.267242 0.364532 0.352448\n0.287140 0.365234 0.352814\n0.307770 0.365723 0.353210\n0.329285 0.366486 0.353607\n0.352112 0.367004 0.353973\n0.376556 0.367584 0.354340\n0.403076 0.368347 0.354736\n0.431915 0.368866 0.355103\n0.463379 0.369476 0.355438\n0.498077 0.370178 0.355835\n0.535889 0.370667 0.356201\n0.576965 0.371490 0.356567\n0.620667 0.372009 0.356964\n0.666931 0.372589 0.357330\n0.715271 0.373291 0.357697\n0.765167 0.373810 0.358063\n0.816162 0.374603 0.358398\n0.868073 0.375153 0.358765\n0.915527 0.375641 0.359070\n0.000000 0.378998 0.348389\n0.000000 0.379700 0.348755\n0.005127 0.380219 0.349091\n0.031433 0.380737 0.349457\n0.064423 0.381470 0.349823\n0.092865 0.381958 0.350220\n0.119293 0.382507 0.350555\n0.143951 0.383209 0.350952\n0.166870 0.383728 0.351349\n0.188568 0.384521 0.351685\n0.209198 0.385010 0.352051\n0.229340 0.385529 0.352448\n0.248932 0.386292 0.352814\n0.268341 0.386810 0.353180\n0.288269 0.387390 0.353577\n0.308899 0.388123 0.353943\n0.330414 0.388641 0.354309\n0.353149 0.389313 0.354706\n0.377625 0.389954 0.355072\n0.404175 0.390472 0.355438\n0.432953 0.391235 0.355835\n0.464508 0.391785 0.356171\n0.499023 0.392334 0.356567\n0.536774 0.393097 0.356934\n0.577820 0.393616 0.357300\n0.621674 0.394348 0.357666\n0.667755 0.394928 0.358063\n0.715759 0.395447 0.358398\n0.765564 0.396179 0.358734\n0.816467 0.396729 0.359070\n0.868164 0.397369 0.359467\n0.915527 0.398010 0.359802\n0.000000 0.402863 0.349091\n0.000000 0.403381 0.349457\n0.007385 0.403870 0.349823\n0.033722 0.404602 0.350189\n0.066895 0.405121 0.350555\n0.095093 0.405762 0.350952\n0.121368 0.406372 0.351349\n0.145782 0.406921 0.351685\n0.168579 0.407654 0.352051\n0.190155 0.408173 0.352417\n0.210693 0.408783 0.352814\n0.230591 0.409454 0.353180\n0.250031 0.409973 0.353546\n0.269501 0.410614 0.353943\n0.289337 0.411316 0.354309\n0.309998 0.411835 0.354706\n0.331512 0.412628 0.355072\n0.354309 0.413147 0.355408\n0.378693 0.413696 0.355804\n0.405243 0.414459 0.356171\n0.434082 0.414978 0.356537\n0.465576 0.415588 0.356903\n0.500061 0.416290 0.357300\n0.537933 0.416840 0.357666\n0.578766 0.417603 0.358032\n0.622559 0.418121 0.358368\n0.668610 0.418640 0.358704\n0.716522 0.419403 0.359070\n0.765991 0.419922 0.359436\n0.816772 0.420685 0.359802\n0.868317 0.421204 0.360138\n0.915527 0.421692 0.360474\n0.000000 0.428375 0.349792\n0.000000 0.429138 0.350159\n0.009583 0.429626 0.350555\n0.036072 0.430115 0.350922\n0.069336 0.430908 0.351318\n0.097260 0.431427 0.351685\n0.123169 0.431976 0.352051\n0.147461 0.432709 0.352417\n0.170166 0.433228 0.352783\n0.191589 0.433868 0.353149\n0.212097 0.434509 0.353546\n0.231842 0.435059 0.353943\n0.251343 0.435822 0.354309\n0.270660 0.436371 0.354706\n0.290497 0.436981 0.355072\n0.310974 0.437653 0.355408\n0.332611 0.438202 0.355774\n0.355408 0.438782 0.356171\n0.379791 0.439484 0.356506\n0.406311 0.440063 0.356903\n0.435211 0.440765 0.357300\n0.466705 0.441345 0.357635\n0.501160 0.441925 0.358032\n0.538971 0.442627 0.358368\n0.579803 0.443176 0.358704\n0.623352 0.443756 0.359039\n0.669281 0.444427 0.359406\n0.717041 0.445007 0.359772\n0.766541 0.445709 0.360107\n0.817169 0.446228 0.360474\n0.868469 0.446777 0.360809\n0.915527 0.447479 0.361145\n0.000000 0.456238 0.350555\n0.000000 0.456757 0.350922\n0.011932 0.457489 0.351318\n0.038483 0.458008 0.351654\n0.071716 0.458618 0.352051\n0.099487 0.459290 0.352417\n0.125183 0.459839 0.352753\n0.149323 0.460571 0.353149\n0.171875 0.461151 0.353546\n0.192993 0.461639 0.353912\n0.213379 0.462433 0.354279\n0.233063 0.462921 0.354675\n0.252502 0.463531 0.355042\n0.271820 0.464233 0.355408\n0.291626 0.464783 0.355774\n0.312042 0.465576 0.356140\n0.333588 0.466095 0.356506\n0.356476 0.466644 0.356903\n0.380920 0.467407 0.357300\n0.407440 0.467926 0.357635\n0.436279 0.468506 0.358002\n0.467834 0.469238 0.358337\n0.502289 0.469788 0.358704\n0.540009 0.470520 0.359039\n0.580780 0.471069 0.359406\n0.624237 0.471588 0.359741\n0.670105 0.472321 0.360107\n0.717834 0.472839 0.360474\n0.767029 0.473358 0.360809\n0.817444 0.474152 0.361145\n0.868561 0.474609 0.361481\n0.915527 0.475098 0.361786\n0.000000 0.486481 0.351288\n0.000000 0.487244 0.351624\n0.014343 0.487762 0.352020\n0.040710 0.488281 0.352417\n0.074127 0.489044 0.352753\n0.101715 0.489594 0.353149\n0.127228 0.490112 0.353516\n0.151001 0.490875 0.353912\n0.173401 0.491394 0.354279\n0.194489 0.492004 0.354645\n0.214691 0.492706 0.355042\n0.234344 0.493256 0.355408\n0.253693 0.494019 0.355743\n0.272980 0.494568 0.356140\n0.292755 0.495148 0.356506\n0.313141 0.495850 0.356903\n0.334656 0.496338 0.357269\n0.357544 0.496948 0.357605\n0.382019 0.497650 0.357971\n0.408539 0.498230 0.358337\n0.437408 0.498962 0.358704\n0.468903 0.499481 0.359039\n0.503326 0.500031 0.359375\n0.541077 0.500732 0.359741\n0.581787 0.501282 0.360107\n0.625214 0.501770 0.360443\n0.670685 0.502533 0.360809\n0.718292 0.503021 0.361115\n0.767395 0.503601 0.361450\n0.817749 0.504272 0.361786\n0.868744 0.504791 0.362122\n0.915527 0.505371 0.362427\n0.000000 0.519684 0.351990\n0.000000 0.520203 0.352417\n0.016693 0.520935 0.352753\n0.043121 0.521484 0.353119\n0.076691 0.522064 0.353516\n0.103912 0.522766 0.353882\n0.129272 0.523315 0.354248\n0.152893 0.524048 0.354645\n0.175049 0.524567 0.355011\n0.196014 0.525116 0.355408\n0.216095 0.525848 0.355743\n0.235565 0.526398 0.356110\n0.254913 0.526886 0.356506\n0.274139 0.527679 0.356873\n0.293884 0.528168 0.357239\n0.314209 0.528870 0.357605\n0.335785 0.529449 0.357971\n0.358643 0.529968 0.358337\n0.383148 0.530731 0.358704\n0.409668 0.531311 0.359039\n0.438507 0.531738 0.359375\n0.470032 0.532501 0.359741\n0.504425 0.533051 0.360077\n0.541962 0.533508 0.360443\n0.582611 0.534271 0.360809\n0.625885 0.534729 0.361115\n0.671539 0.535309 0.361450\n0.718994 0.536011 0.361786\n0.768005 0.536469 0.362091\n0.817963 0.536987 0.362427\n0.868927 0.537659 0.362732\n0.915527 0.538116 0.363068\n0.000000 0.555969 0.352753\n0.000000 0.556519 0.353119\n0.019043 0.557037 0.353485\n0.045380 0.557770 0.353851\n0.079010 0.558258 0.354218\n0.106079 0.558838 0.354614\n0.131195 0.559509 0.355011\n0.154510 0.560028 0.355377\n0.176636 0.560547 0.355743\n0.197418 0.561340 0.356110\n0.217377 0.561798 0.356476\n0.236786 0.562408 0.356842\n0.256073 0.563110 0.357239\n0.275269 0.563538 0.357574\n0.295013 0.564301 0.357971\n0.315369 0.564789 0.358307\n0.336823 0.565308 0.358673\n0.359589 0.565857 0.359039\n0.384216 0.566559 0.359375\n0.410706 0.567047 0.359711\n0.439575 0.567749 0.360077\n0.471100 0.568268 0.360443\n0.505493 0.568726 0.360748\n0.542969 0.569427 0.361115\n0.583557 0.569916 0.361450\n0.626801 0.570404 0.361755\n0.672302 0.571075 0.362091\n0.719482 0.571594 0.362396\n0.768372 0.572021 0.362732\n0.818390 0.572540 0.363037\n0.869232 0.573120 0.363342\n0.915527 0.573608 0.363678\n0.000000 0.595062 0.353455\n0.000000 0.595551 0.353851\n0.021545 0.596100 0.354218\n0.049438 0.596771 0.354614\n0.081421 0.597229 0.355011\n0.108246 0.597809 0.355377\n0.133087 0.598480 0.355743\n0.156372 0.598907 0.356110\n0.178131 0.599518 0.356476\n0.198822 0.600128 0.356842\n0.218811 0.600555 0.357208\n0.238037 0.601074 0.357574\n0.257263 0.601776 0.357971\n0.276398 0.602234 0.358307\n0.296143 0.602692 0.358643\n0.316437 0.603424 0.359009\n0.337891 0.603882 0.359375\n0.360687 0.604340 0.359711\n0.385315 0.605042 0.360077\n0.411804 0.605499 0.360413\n0.440430 0.605927 0.360748\n0.471924 0.606628 0.361084\n0.506531 0.607117 0.361420\n0.543945 0.607513 0.361755\n0.584534 0.608124 0.362091\n0.627655 0.608643 0.362396\n0.672943 0.609070 0.362732\n0.720215 0.609497 0.363037\n0.768890 0.610107 0.363342\n0.818695 0.610535 0.363678\n0.869324 0.610931 0.363983\n0.915527 0.611572 0.364258\n0.000000 0.636566 0.354218\n0.000000 0.637238 0.354614\n0.024017 0.637634 0.354980\n0.053650 0.638092 0.355377\n0.083801 0.638794 0.355743\n0.110382 0.639191 0.356079\n0.135071 0.639618 0.356476\n0.158081 0.640289 0.356812\n0.179840 0.640747 0.357208\n0.200409 0.641174 0.357544\n0.220123 0.641602 0.357941\n0.239258 0.642273 0.358307\n0.258453 0.642731 0.358643\n0.277496 0.643188 0.359009\n0.297211 0.643738 0.359375\n0.317535 0.644257 0.359711\n0.338928 0.644623 0.360046\n0.361694 0.645081 0.360382\n0.386383 0.645721 0.360748\n0.412872 0.646118 0.361053\n0.441467 0.646515 0.361420\n0.472961 0.647156 0.361755\n0.507324 0.647522 0.362091\n0.544952 0.647949 0.362366\n0.585480 0.648346 0.362701\n0.628387 0.648895 0.363037\n0.673645 0.649353 0.363342\n0.720642 0.649689 0.363647\n0.769348 0.650085 0.363983\n0.818939 0.650665 0.364258\n0.869446 0.651001 0.364532\n0.915527 0.651398 0.364838\n0.000000 0.680267 0.354980\n0.001160 0.680664 0.355347\n0.026398 0.681274 0.355743\n0.058167 0.681702 0.356079\n0.086273 0.682068 0.356445\n0.112518 0.682556 0.356812\n0.137024 0.683044 0.357208\n0.159821 0.683441 0.357544\n0.181335 0.683838 0.357910\n0.201782 0.684204 0.358276\n0.221405 0.684814 0.358643\n0.240509 0.685181 0.359009\n0.259583 0.685516 0.359375\n0.278656 0.686005 0.359711\n0.298279 0.686523 0.360046\n0.318634 0.686859 0.360382\n0.340027 0.687225 0.360748\n0.362793 0.687714 0.361053\n0.387207 0.688171 0.361389\n0.413696 0.688507 0.361755\n0.442566 0.688873 0.362061\n0.474030 0.689209 0.362366\n0.508362 0.689697 0.362701\n0.545959 0.690094 0.363037\n0.586182 0.690430 0.363342\n0.629211 0.690796 0.363647\n0.674286 0.691223 0.363953\n0.721252 0.691620 0.364258\n0.769684 0.691956 0.364532\n0.819153 0.692261 0.364838\n0.869537 0.692535 0.365082\n0.915527 0.693085 0.365356\n0.000000 0.725769 0.355713\n0.003357 0.726044 0.356079\n0.028778 0.726349 0.356415\n0.060760 0.726715 0.356812\n0.088623 0.727203 0.357178\n0.114685 0.727539 0.357544\n0.138885 0.727844 0.357910\n0.161621 0.728210 0.358276\n0.182861 0.728546 0.358643\n0.203125 0.729034 0.359009\n0.222687 0.729340 0.359375\n0.241821 0.729614 0.359711\n0.260712 0.729919 0.360046\n0.279755 0.730225 0.360382\n0.299286 0.730804 0.360718\n0.319672 0.731079 0.361053\n0.341095 0.731354 0.361389\n0.363861 0.731659 0.361725\n0.388275 0.731964 0.362061\n0.414734 0.732452 0.362366\n0.443604 0.732758 0.362701\n0.475067 0.733032 0.363037\n0.509369 0.733276 0.363342\n0.546722 0.733582 0.363647\n0.587097 0.734009 0.363953\n0.629883 0.734344 0.364227\n0.674988 0.734589 0.364532\n0.721771 0.734802 0.364807\n0.769958 0.735077 0.365082\n0.819519 0.735413 0.365356\n0.869659 0.735779 0.365631\n0.915527 0.736053 0.365906\n0.000000 0.772278 0.356415\n0.005615 0.772491 0.356781\n0.031281 0.772736 0.357147\n0.063232 0.772980 0.357544\n0.090851 0.773407 0.357880\n0.116699 0.773682 0.358246\n0.140656 0.773926 0.358612\n0.163177 0.774170 0.358978\n0.184448 0.774414 0.359344\n0.204468 0.774658 0.359680\n0.223907 0.774994 0.360046\n0.242859 0.775360 0.360382\n0.261841 0.775574 0.360718\n0.280853 0.775818 0.361053\n0.300293 0.776031 0.361389\n0.320709 0.776215 0.361694\n0.342072 0.776550 0.362030\n0.364868 0.776917 0.362366\n0.389252 0.777161 0.362701\n0.415771 0.777313 0.363007\n0.444641 0.777557 0.363312\n0.475983 0.777802 0.363647\n0.510345 0.777985 0.363953\n0.547638 0.778168 0.364227\n0.587952 0.778442 0.364502\n0.630615 0.778809 0.364807\n0.675568 0.778992 0.365051\n0.722229 0.779175 0.365356\n0.770538 0.779388 0.365631\n0.819824 0.779572 0.365875\n0.869781 0.779724 0.366119\n0.915527 0.779877 0.366364\n0.000000 0.819489 0.357147\n0.007935 0.819794 0.357513\n0.033539 0.820068 0.357880\n0.065918 0.820221 0.358246\n0.093201 0.820404 0.358612\n0.118622 0.820557 0.358948\n0.142578 0.820740 0.359314\n0.164917 0.820892 0.359680\n0.185852 0.821045 0.360016\n0.205780 0.821259 0.360382\n0.225128 0.821564 0.360718\n0.244110 0.821808 0.361053\n0.263000 0.821899 0.361359\n0.281921 0.822052 0.361694\n0.301300 0.822266 0.362030\n0.321533 0.822388 0.362366\n0.343018 0.822510 0.362701\n0.365784 0.822632 0.363007\n0.390320 0.822815 0.363312\n0.416779 0.822968 0.363617\n0.445587 0.823364 0.363922\n0.476807 0.823456 0.364197\n0.511078 0.823608 0.364502\n0.548584 0.823792 0.364807\n0.588623 0.823853 0.365051\n0.631409 0.823975 0.365356\n0.676270 0.824127 0.365631\n0.722839 0.824249 0.365875\n0.770844 0.824341 0.366119\n0.820068 0.824463 0.366364\n0.869873 0.824615 0.366608\n0.915527 0.824921 0.366852\n0.000000 0.867462 0.357880\n0.010315 0.867554 0.358246\n0.036011 0.867645 0.358612\n0.068268 0.867737 0.358948\n0.095367 0.867798 0.359314\n0.120697 0.867920 0.359680\n0.144287 0.868103 0.360016\n0.166473 0.868286 0.360352\n0.187286 0.868378 0.360687\n0.207275 0.868439 0.361053\n0.226349 0.868530 0.361359\n0.245300 0.868622 0.361694\n0.264069 0.868652 0.362030\n0.282959 0.868744 0.362366\n0.302307 0.868774 0.362671\n0.322540 0.868896 0.363007\n0.343964 0.868988 0.363281\n0.366669 0.869049 0.363586\n0.391296 0.869110 0.363922\n0.417694 0.869171 0.364197\n0.446381 0.869263 0.364502\n0.477783 0.869293 0.364777\n0.511993 0.869385 0.365051\n0.549500 0.869446 0.365356\n0.589508 0.869446 0.365601\n0.631989 0.869720 0.365845\n0.676727 0.869781 0.366089\n0.723236 0.869873 0.366364\n0.771179 0.869995 0.366608\n0.820221 0.870087 0.366821\n0.869995 0.870087 0.367065\n0.915527 0.870148 0.367310\n0.000000 0.915527 0.358582\n0.012756 0.915527 0.358948\n0.038452 0.915527 0.359314\n0.070740 0.915527 0.359680\n0.097565 0.915527 0.360016\n0.122711 0.915527 0.360352\n0.146118 0.915527 0.360687\n0.167969 0.915527 0.361023\n0.188721 0.915527 0.361359\n0.208557 0.915527 0.361694\n0.227539 0.915527 0.362030\n0.246246 0.915527 0.362366\n0.264923 0.915527 0.362671\n0.283875 0.915527 0.363007\n0.303345 0.915527 0.363281\n0.323547 0.915527 0.363586\n0.344910 0.915527 0.363892\n0.367645 0.915527 0.364166\n0.392120 0.915527 0.364471\n0.418518 0.915527 0.364777\n0.447327 0.915527 0.365051\n0.478729 0.915527 0.365326\n0.512939 0.915527 0.365601\n0.550140 0.915527 0.365845\n0.590149 0.915527 0.366058\n0.632751 0.915527 0.366333\n0.677277 0.915527 0.366608\n0.723755 0.915527 0.366791\n0.771545 0.915527 0.367065\n0.820435 0.915527 0.367279\n0.870178 0.915527 0.367523\n0.915527 0.915527 0.367706\n0.000000 0.000000 0.357391\n0.000000 0.000000 0.357544\n0.000000 0.000000 0.357727\n0.000946 0.000000 0.357910\n0.027435 0.000000 0.358093\n0.060699 0.000000 0.358307\n0.089935 0.000000 0.358521\n0.117279 0.000000 0.358704\n0.142761 0.000000 0.358948\n0.166534 0.000000 0.359161\n0.188965 0.000000 0.359406\n0.210175 0.000000 0.359680\n0.230835 0.000000 0.359894\n0.251190 0.000000 0.360138\n0.271515 0.000000 0.360413\n0.292358 0.000000 0.360687\n0.313904 0.000000 0.360962\n0.336609 0.000000 0.361206\n0.360931 0.000000 0.361481\n0.387207 0.000000 0.361755\n0.415955 0.000000 0.362061\n0.447357 0.000000 0.362366\n0.482086 0.000000 0.362671\n0.520142 0.000000 0.362915\n0.561829 0.000000 0.363251\n0.606903 0.000000 0.363556\n0.654724 0.000000 0.363861\n0.705078 0.000000 0.364166\n0.757080 0.000000 0.364471\n0.810608 0.000000 0.364807\n0.865295 0.000000 0.365112\n0.915527 0.000000 0.365417\n0.000000 0.000000 0.357727\n0.000000 0.000000 0.357910\n0.000000 0.000000 0.358093\n0.002106 0.000000 0.358307\n0.028717 0.000000 0.358521\n0.062073 0.000000 0.358704\n0.091217 0.000000 0.358948\n0.118500 0.000000 0.359161\n0.143921 0.000000 0.359406\n0.167542 0.000000 0.359680\n0.189911 0.000000 0.359894\n0.211151 0.000000 0.360138\n0.231750 0.000000 0.360382\n0.251953 0.000000 0.360687\n0.272400 0.000214 0.360931\n0.292999 0.001221 0.361206\n0.314667 0.002289 0.361481\n0.337524 0.003387 0.361755\n0.361755 0.004547 0.362030\n0.388123 0.005737 0.362335\n0.416840 0.006897 0.362640\n0.448303 0.008179 0.362915\n0.482788 0.009583 0.363220\n0.520935 0.010895 0.363556\n0.562653 0.012238 0.363831\n0.607788 0.013611 0.364136\n0.655426 0.014954 0.364471\n0.705536 0.016327 0.364777\n0.757446 0.017731 0.365082\n0.811005 0.019104 0.365417\n0.865479 0.020599 0.365753\n0.915527 0.022095 0.366028\n0.000000 0.014221 0.358093\n0.000000 0.015106 0.358307\n0.000000 0.016022 0.358490\n0.003387 0.016907 0.358704\n0.030121 0.017761 0.358948\n0.063690 0.018768 0.359161\n0.092804 0.019806 0.359375\n0.119751 0.020844 0.359680\n0.145050 0.021729 0.359894\n0.168640 0.022797 0.360138\n0.190796 0.023895 0.360382\n0.212158 0.025024 0.360687\n0.232697 0.026184 0.360931\n0.252869 0.027374 0.361206\n0.273102 0.028595 0.361450\n0.293915 0.029785 0.361755\n0.315460 0.031006 0.362030\n0.338226 0.032257 0.362335\n0.362701 0.033539 0.362610\n0.389038 0.034851 0.362915\n0.417755 0.036102 0.363220\n0.449158 0.037415 0.363525\n0.483734 0.038757 0.363831\n0.521820 0.040100 0.364136\n0.563599 0.041443 0.364441\n0.608459 0.042816 0.364777\n0.656311 0.044189 0.365082\n0.706299 0.045593 0.365417\n0.758087 0.048126 0.365723\n0.811310 0.050507 0.366028\n0.865601 0.053101 0.366364\n0.915527 0.055664 0.366669\n0.000000 0.043335 0.358490\n0.000000 0.044281 0.358704\n0.000000 0.045227 0.358948\n0.004669 0.046478 0.359161\n0.031555 0.048157 0.359375\n0.065277 0.049988 0.359650\n0.094177 0.051819 0.359863\n0.121246 0.053558 0.360107\n0.146301 0.055450 0.360382\n0.169800 0.057526 0.360657\n0.191864 0.059265 0.360901\n0.213104 0.060455 0.361206\n0.233490 0.061768 0.361450\n0.253815 0.062866 0.361755\n0.274048 0.064301 0.362030\n0.294861 0.065613 0.362305\n0.316376 0.066925 0.362610\n0.339142 0.068329 0.362915\n0.363586 0.069733 0.363190\n0.390015 0.071136 0.363525\n0.418549 0.072510 0.363800\n0.450012 0.073975 0.364136\n0.484741 0.075470 0.364441\n0.522827 0.076813 0.364777\n0.564575 0.078339 0.365051\n0.609375 0.079834 0.365417\n0.656860 0.081268 0.365723\n0.706787 0.082764 0.366028\n0.758484 0.084320 0.366364\n0.811554 0.085785 0.366669\n0.865784 0.087280 0.367004\n0.915527 0.088776 0.367340\n0.000000 0.080383 0.358948\n0.000000 0.081390 0.359161\n0.000000 0.082336 0.359375\n0.006165 0.083313 0.359650\n0.033173 0.084442 0.359863\n0.066925 0.085541 0.360107\n0.095703 0.086517 0.360382\n0.122620 0.087677 0.360657\n0.147552 0.088928 0.360901\n0.170959 0.089966 0.361176\n0.192993 0.091125 0.361450\n0.214111 0.092377 0.361725\n0.234436 0.093628 0.362030\n0.254761 0.094849 0.362305\n0.274963 0.096100 0.362610\n0.295685 0.097260 0.362885\n0.317352 0.098541 0.363190\n0.340088 0.099884 0.363495\n0.364380 0.101196 0.363800\n0.390778 0.102539 0.364136\n0.419556 0.103912 0.364441\n0.451019 0.105133 0.364746\n0.485748 0.106445 0.365051\n0.523834 0.107819 0.365387\n0.565491 0.109192 0.365723\n0.610229 0.110565 0.366028\n0.657745 0.112000 0.366333\n0.707520 0.113373 0.366669\n0.759125 0.114807 0.367004\n0.812012 0.116211 0.367340\n0.865906 0.117645 0.367676\n0.915527 0.118927 0.367981\n0.000000 0.111298 0.359375\n0.000000 0.112183 0.359619\n0.000000 0.113281 0.359833\n0.007751 0.114166 0.360107\n0.034851 0.115173 0.360382\n0.068604 0.116241 0.360626\n0.097321 0.117157 0.360901\n0.124023 0.118256 0.361176\n0.148865 0.119385 0.361450\n0.172180 0.120361 0.361694\n0.194092 0.121521 0.362030\n0.215179 0.122681 0.362305\n0.235504 0.123871 0.362610\n0.255615 0.125000 0.362885\n0.275940 0.126068 0.363190\n0.296539 0.127289 0.363495\n0.318176 0.128540 0.363800\n0.341064 0.129700 0.364075\n0.365356 0.130798 0.364441\n0.391815 0.132111 0.364746\n0.420563 0.133331 0.365051\n0.452026 0.134613 0.365387\n0.486664 0.135773 0.365692\n0.524719 0.136932 0.365997\n0.566284 0.138214 0.366333\n0.610962 0.139496 0.366669\n0.658386 0.140778 0.367004\n0.708038 0.141876 0.367310\n0.759521 0.143158 0.367645\n0.812378 0.144409 0.367981\n0.866028 0.145752 0.368317\n0.915527 0.147064 0.368652\n0.000000 0.140259 0.359833\n0.000000 0.141174 0.360107\n0.000000 0.142059 0.360382\n0.009369 0.142975 0.360626\n0.036469 0.144012 0.360901\n0.070526 0.144775 0.361176\n0.098907 0.145874 0.361420\n0.125671 0.146912 0.361694\n0.150391 0.147766 0.362000\n0.173431 0.148834 0.362305\n0.195282 0.149841 0.362610\n0.216339 0.150818 0.362885\n0.236542 0.151917 0.363159\n0.256592 0.152832 0.363495\n0.276794 0.153931 0.363770\n0.297516 0.155060 0.364075\n0.319031 0.156219 0.364410\n0.341858 0.157135 0.364716\n0.366364 0.158295 0.365051\n0.392792 0.159454 0.365356\n0.421570 0.160370 0.365662\n0.453064 0.161560 0.365997\n0.487579 0.162750 0.366333\n0.525665 0.163666 0.366669\n0.567261 0.164856 0.367004\n0.611908 0.166016 0.367310\n0.659210 0.167206 0.367645\n0.708771 0.168182 0.367981\n0.760071 0.169373 0.368317\n0.812622 0.170532 0.368652\n0.866241 0.171631 0.368988\n0.915527 0.172668 0.369354\n0.000000 0.167145 0.360352\n0.000000 0.167847 0.360596\n0.000000 0.168732 0.360870\n0.011139 0.169495 0.361145\n0.038269 0.170471 0.361420\n0.072357 0.171204 0.361694\n0.100739 0.172150 0.362000\n0.127167 0.172974 0.362274\n0.151764 0.173950 0.362579\n0.174713 0.174866 0.362854\n0.196442 0.175781 0.363159\n0.217255 0.176758 0.363464\n0.237640 0.177582 0.363770\n0.257629 0.178650 0.364075\n0.277740 0.179474 0.364380\n0.298523 0.180481 0.364716\n0.320038 0.181549 0.365021\n0.342834 0.182373 0.365356\n0.367401 0.183441 0.365662\n0.393829 0.184540 0.365997\n0.422577 0.185394 0.366302\n0.454132 0.186432 0.366638\n0.488647 0.187469 0.367004\n0.526703 0.188385 0.367310\n0.568329 0.189484 0.367645\n0.612823 0.190338 0.367981\n0.660065 0.191406 0.368317\n0.709351 0.192505 0.368652\n0.760559 0.193329 0.368988\n0.812958 0.194458 0.369354\n0.866547 0.195587 0.369659\n0.915527 0.196411 0.370026\n0.000000 0.191681 0.360870\n0.000000 0.192535 0.361115\n0.000000 0.193176 0.361389\n0.012909 0.194061 0.361694\n0.040009 0.194763 0.361969\n0.074310 0.195679 0.362274\n0.102539 0.196381 0.362549\n0.128723 0.197296 0.362823\n0.153137 0.197998 0.363159\n0.175995 0.198914 0.363464\n0.197784 0.199677 0.363739\n0.218414 0.200592 0.364075\n0.238708 0.201355 0.364380\n0.258698 0.202301 0.364685\n0.278778 0.203217 0.365021\n0.299530 0.204071 0.365356\n0.321075 0.205048 0.365662\n0.343872 0.205811 0.365997\n0.368408 0.206787 0.366302\n0.394775 0.207550 0.366638\n0.423553 0.208557 0.366974\n0.455109 0.209442 0.367310\n0.489716 0.210297 0.367645\n0.527740 0.211334 0.367981\n0.569305 0.212158 0.368317\n0.613556 0.213135 0.368652\n0.660706 0.213898 0.368988\n0.710114 0.214905 0.369324\n0.760956 0.215820 0.369629\n0.813477 0.216736 0.369995\n0.866699 0.217743 0.370331\n0.915527 0.218475 0.370697\n0.000000 0.214722 0.361389\n0.000000 0.215332 0.361694\n0.000000 0.216156 0.361969\n0.014832 0.216797 0.362244\n0.041901 0.217621 0.362549\n0.076263 0.218262 0.362823\n0.104218 0.218933 0.363129\n0.130402 0.219788 0.363434\n0.154572 0.220459 0.363739\n0.177429 0.221313 0.364075\n0.198944 0.222046 0.364380\n0.219666 0.222870 0.364685\n0.239807 0.223541 0.365021\n0.259766 0.224457 0.365356\n0.279846 0.225128 0.365662\n0.300568 0.226074 0.365997\n0.322113 0.226776 0.366302\n0.344910 0.227692 0.366638\n0.369324 0.228485 0.366974\n0.395782 0.229309 0.367310\n0.424561 0.230042 0.367645\n0.456024 0.230957 0.367950\n0.490753 0.231812 0.368286\n0.528809 0.232635 0.368652\n0.570099 0.233551 0.368988\n0.614532 0.234283 0.369324\n0.661591 0.235107 0.369629\n0.710663 0.235901 0.369995\n0.761658 0.236847 0.370300\n0.813782 0.237549 0.370667\n0.866821 0.238495 0.371002\n0.915527 0.239197 0.371368\n0.000000 0.236145 0.361938\n0.000000 0.236938 0.362244\n0.000000 0.237518 0.362549\n0.016846 0.238251 0.362823\n0.043945 0.238892 0.363129\n0.078186 0.239563 0.363434\n0.106140 0.240295 0.363708\n0.131989 0.240936 0.364044\n0.156189 0.241699 0.364380\n0.178833 0.242340 0.364685\n0.200348 0.243195 0.365021\n0.220764 0.243805 0.365326\n0.240936 0.244598 0.365662\n0.260834 0.245331 0.365967\n0.280884 0.245941 0.366302\n0.301544 0.246796 0.366638\n0.323151 0.247467 0.366974\n0.345947 0.248291 0.367279\n0.370331 0.248962 0.367615\n0.396759 0.249847 0.367950\n0.425629 0.250519 0.368286\n0.457153 0.251434 0.368652\n0.491699 0.252014 0.368988\n0.529877 0.252899 0.369324\n0.571136 0.253571 0.369629\n0.615479 0.254486 0.369995\n0.662384 0.255127 0.370300\n0.711456 0.256042 0.370667\n0.762085 0.256683 0.371002\n0.814026 0.257416 0.371338\n0.867004 0.258209 0.371674\n0.915527 0.259033 0.372040\n0.000000 0.256744 0.362549\n0.000000 0.257202 0.362823\n0.000000 0.257996 0.363129\n0.018799 0.258545 0.363434\n0.045990 0.259338 0.363708\n0.080261 0.259857 0.364014\n0.108063 0.260559 0.364349\n0.133759 0.261230 0.364685\n0.157593 0.261780 0.364990\n0.180206 0.262634 0.365326\n0.201599 0.263184 0.365662\n0.222015 0.263916 0.365936\n0.242065 0.264618 0.366272\n0.261963 0.265167 0.366608\n0.281982 0.266022 0.366943\n0.302490 0.266632 0.367249\n0.324188 0.267426 0.367615\n0.347015 0.268066 0.367950\n0.371399 0.268829 0.368286\n0.397858 0.269501 0.368622\n0.426697 0.270142 0.368958\n0.458252 0.270966 0.369324\n0.492676 0.271576 0.369629\n0.530701 0.272400 0.369995\n0.572113 0.273041 0.370300\n0.616425 0.273865 0.370667\n0.663116 0.274475 0.371002\n0.711975 0.275299 0.371338\n0.762543 0.275970 0.371674\n0.814331 0.276672 0.372009\n0.867126 0.277374 0.372314\n0.915527 0.278015 0.372650\n0.000000 0.276520 0.363098\n0.000000 0.277252 0.363434\n0.000000 0.277740 0.363708\n0.020844 0.278473 0.364014\n0.049744 0.279022 0.364349\n0.082367 0.279572 0.364685\n0.109802 0.280334 0.364990\n0.135376 0.280853 0.365326\n0.159271 0.281433 0.365631\n0.181580 0.282196 0.365936\n0.202881 0.282745 0.366272\n0.223297 0.283539 0.366577\n0.243256 0.284058 0.366913\n0.263062 0.284637 0.367249\n0.283051 0.285431 0.367615\n0.303589 0.286011 0.367920\n0.325073 0.286804 0.368256\n0.348083 0.287354 0.368591\n0.372498 0.288208 0.368958\n0.398956 0.288757 0.369293\n0.427795 0.289368 0.369629\n0.459320 0.290161 0.369965\n0.493835 0.290741 0.370300\n0.531769 0.291565 0.370636\n0.573151 0.292145 0.370972\n0.617218 0.292816 0.371338\n0.663971 0.293549 0.371674\n0.712708 0.294128 0.371979\n0.763123 0.294952 0.372314\n0.814819 0.295532 0.372650\n0.867249 0.296234 0.373016\n0.915527 0.296906 0.373322\n0.000000 0.296143 0.363708\n0.000000 0.296783 0.364014\n0.000000 0.297272 0.364349\n0.023041 0.298004 0.364655\n0.053375 0.298523 0.364990\n0.084473 0.299042 0.365295\n0.111816 0.299805 0.365631\n0.137177 0.300323 0.365936\n0.160828 0.301086 0.366241\n0.183136 0.301605 0.366577\n0.204193 0.302155 0.366913\n0.224487 0.302887 0.367249\n0.244415 0.303467 0.367584\n0.264160 0.303986 0.367889\n0.284088 0.304779 0.368256\n0.304657 0.305328 0.368591\n0.326172 0.306091 0.368927\n0.349030 0.306671 0.369293\n0.373596 0.307190 0.369629\n0.400055 0.307983 0.369965\n0.428894 0.308563 0.370300\n0.460419 0.309326 0.370636\n0.494934 0.309906 0.370972\n0.532867 0.310425 0.371307\n0.574036 0.311279 0.371643\n0.618134 0.311798 0.371979\n0.664825 0.312622 0.372314\n0.713318 0.313171 0.372620\n0.763580 0.313751 0.372986\n0.815155 0.314514 0.373322\n0.867401 0.315094 0.373627\n0.915527 0.315887 0.373993\n0.000000 0.315979 0.364349\n0.000000 0.316467 0.364655\n0.000000 0.316925 0.364990\n0.025146 0.317657 0.365295\n0.057190 0.318146 0.365631\n0.086639 0.318634 0.365906\n0.113770 0.319366 0.366211\n0.138977 0.319916 0.366577\n0.162323 0.320648 0.366882\n0.184540 0.321167 0.367218\n0.205475 0.321686 0.367584\n0.225769 0.322449 0.367889\n0.245575 0.322998 0.368256\n0.265198 0.323639 0.368561\n0.285278 0.324280 0.368927\n0.305756 0.324829 0.369263\n0.327271 0.325562 0.369598\n0.350098 0.326141 0.369965\n0.374695 0.326660 0.370300\n0.401123 0.327454 0.370636\n0.430023 0.328003 0.370972\n0.461578 0.328796 0.371307\n0.496033 0.329315 0.371613\n0.533966 0.329895 0.371979\n0.575012 0.330658 0.372284\n0.619141 0.331207 0.372620\n0.665497 0.331879 0.372986\n0.714050 0.332520 0.373291\n0.764221 0.333069 0.373627\n0.815430 0.333832 0.373993\n0.867554 0.334351 0.374298\n0.915527 0.335114 0.374634\n0.000000 0.336060 0.364960\n0.000000 0.336548 0.365295\n0.001343 0.337219 0.365601\n0.027313 0.337769 0.365906\n0.060089 0.338318 0.366211\n0.088806 0.338959 0.366577\n0.115753 0.339478 0.366882\n0.140656 0.340210 0.367218\n0.164062 0.340759 0.367554\n0.185944 0.341248 0.367889\n0.206818 0.341980 0.368256\n0.227020 0.342529 0.368561\n0.246765 0.343048 0.368927\n0.266357 0.343781 0.369232\n0.286346 0.344330 0.369598\n0.306854 0.345093 0.369965\n0.328339 0.345612 0.370300\n0.351196 0.346161 0.370636\n0.375763 0.346924 0.370972\n0.402252 0.347473 0.371307\n0.431152 0.348022 0.371613\n0.462677 0.348785 0.371979\n0.497131 0.349304 0.372284\n0.535034 0.350067 0.372620\n0.576050 0.350586 0.372955\n0.620087 0.351135 0.373291\n0.666382 0.351898 0.373596\n0.714600 0.352417 0.373962\n0.764587 0.353058 0.374298\n0.815887 0.353760 0.374634\n0.867920 0.354309 0.374969\n0.915527 0.355072 0.375275\n0.000000 0.357086 0.365601\n0.000000 0.357574 0.365906\n0.003357 0.358276 0.366211\n0.029602 0.358826 0.366547\n0.062592 0.359314 0.366882\n0.090973 0.360046 0.367218\n0.117737 0.360565 0.367554\n0.142548 0.361084 0.367889\n0.165558 0.361786 0.368225\n0.187347 0.362335 0.368561\n0.208252 0.363068 0.368896\n0.228271 0.363617 0.369232\n0.247925 0.364136 0.369598\n0.267517 0.364899 0.369934\n0.287292 0.365387 0.370270\n0.307953 0.365967 0.370636\n0.329468 0.366669 0.370941\n0.352234 0.367249 0.371307\n0.376892 0.367981 0.371613\n0.403351 0.368530 0.371948\n0.432220 0.369080 0.372284\n0.463562 0.369843 0.372620\n0.498260 0.370331 0.372955\n0.536133 0.370911 0.373291\n0.577057 0.371643 0.373596\n0.620819 0.372223 0.373962\n0.667053 0.372925 0.374298\n0.715332 0.373505 0.374634\n0.765228 0.373993 0.374969\n0.816193 0.374817 0.375275\n0.868073 0.375305 0.375610\n0.915527 0.375854 0.375916\n0.000000 0.379272 0.366180\n0.000000 0.379883 0.366547\n0.005432 0.380371 0.366852\n0.031982 0.380951 0.367218\n0.065002 0.381622 0.367554\n0.093231 0.382172 0.367859\n0.119629 0.382904 0.368225\n0.144226 0.383392 0.368530\n0.167297 0.383911 0.368896\n0.188965 0.384674 0.369232\n0.209534 0.385193 0.369568\n0.229523 0.385864 0.369934\n0.249115 0.386505 0.370270\n0.268494 0.387024 0.370605\n0.288391 0.387634 0.370941\n0.309052 0.388306 0.371277\n0.330566 0.388824 0.371613\n0.353363 0.389618 0.371948\n0.377991 0.390137 0.372284\n0.404480 0.390808 0.372620\n0.433167 0.391449 0.372955\n0.464630 0.391968 0.373291\n0.499298 0.392670 0.373596\n0.537201 0.393280 0.373962\n0.578094 0.393799 0.374268\n0.621765 0.394592 0.374603\n0.667877 0.395111 0.374939\n0.715973 0.395721 0.375275\n0.765656 0.396393 0.375610\n0.816498 0.396881 0.375916\n0.868164 0.397644 0.376251\n0.915527 0.398193 0.376556\n0.000000 0.403046 0.366852\n0.000000 0.403564 0.367188\n0.007751 0.404205 0.367523\n0.034210 0.404816 0.367859\n0.067322 0.405334 0.368195\n0.095367 0.406067 0.368530\n0.121643 0.406586 0.368866\n0.146057 0.407135 0.369232\n0.168854 0.407837 0.369568\n0.190369 0.408386 0.369904\n0.210907 0.409149 0.370239\n0.230743 0.409668 0.370605\n0.250336 0.410187 0.370941\n0.269714 0.410980 0.371277\n0.289520 0.411499 0.371613\n0.310181 0.412018 0.371948\n0.331696 0.412811 0.372253\n0.354462 0.413330 0.372589\n0.378876 0.414093 0.372925\n0.405609 0.414642 0.373260\n0.434235 0.415192 0.373596\n0.465759 0.415924 0.373932\n0.500366 0.416473 0.374268\n0.538055 0.417023 0.374603\n0.579041 0.417755 0.374939\n0.622711 0.418335 0.375275\n0.668762 0.419037 0.375610\n0.716644 0.419586 0.375916\n0.766083 0.420135 0.376221\n0.816833 0.420898 0.376556\n0.868317 0.421387 0.376892\n0.915527 0.421906 0.377197\n0.000000 0.428528 0.367523\n0.000000 0.429291 0.367828\n0.010071 0.429810 0.368195\n0.036469 0.430450 0.368530\n0.069733 0.431122 0.368866\n0.097565 0.431580 0.369202\n0.123657 0.432343 0.369568\n0.147736 0.432861 0.369904\n0.170502 0.433441 0.370239\n0.191803 0.434174 0.370575\n0.212280 0.434692 0.370911\n0.232025 0.435272 0.371277\n0.251526 0.436005 0.371613\n0.270935 0.436554 0.371918\n0.290741 0.437286 0.372253\n0.311249 0.437866 0.372589\n0.332794 0.438385 0.372925\n0.355560 0.439178 0.373260\n0.379974 0.439728 0.373596\n0.406494 0.440216 0.373932\n0.435364 0.440979 0.374268\n0.466858 0.441528 0.374603\n0.501373 0.442322 0.374939\n0.539124 0.442810 0.375275\n0.579956 0.443359 0.375580\n0.623566 0.444122 0.375916\n0.669373 0.444641 0.376221\n0.717163 0.445190 0.376556\n0.766693 0.445923 0.376862\n0.817261 0.446411 0.377197\n0.868469 0.447052 0.377441\n0.915527 0.447693 0.377747\n0.000000 0.456390 0.368195\n0.000000 0.457031 0.368500\n0.012390 0.457642 0.368866\n0.038818 0.458252 0.369202\n0.072296 0.458954 0.369537\n0.099823 0.459534 0.369904\n0.125732 0.460022 0.370239\n0.149628 0.460754 0.370544\n0.172119 0.461304 0.370911\n0.193390 0.461853 0.371246\n0.213531 0.462616 0.371613\n0.233246 0.463165 0.371918\n0.252716 0.463898 0.372253\n0.272156 0.464478 0.372589\n0.291840 0.465027 0.372925\n0.312378 0.465759 0.373260\n0.333893 0.466278 0.373596\n0.356689 0.466827 0.373932\n0.381073 0.467590 0.374268\n0.407593 0.468140 0.374603\n0.436493 0.468872 0.374939\n0.467957 0.469452 0.375244\n0.502441 0.469971 0.375580\n0.540192 0.470764 0.375916\n0.580933 0.471252 0.376221\n0.624390 0.471863 0.376526\n0.670227 0.472504 0.376862\n0.717926 0.473053 0.377167\n0.767120 0.473572 0.377441\n0.817505 0.474274 0.377747\n0.868652 0.474823 0.378052\n0.915527 0.475494 0.378357\n0.000000 0.486694 0.368835\n0.000000 0.487457 0.369171\n0.014679 0.487976 0.369537\n0.041260 0.488556 0.369873\n0.074677 0.489258 0.370209\n0.102020 0.489777 0.370544\n0.127533 0.490387 0.370911\n0.151428 0.491058 0.371216\n0.173645 0.491608 0.371582\n0.194855 0.492371 0.371918\n0.214874 0.492889 0.372253\n0.234528 0.493439 0.372589\n0.253876 0.494202 0.372925\n0.273132 0.494751 0.373260\n0.292908 0.495514 0.373596\n0.313477 0.496033 0.373932\n0.334991 0.496613 0.374268\n0.357758 0.497314 0.374573\n0.382202 0.497894 0.374908\n0.408661 0.498383 0.375244\n0.437561 0.499176 0.375580\n0.469055 0.499664 0.375916\n0.503510 0.500305 0.376221\n0.541260 0.500946 0.376526\n0.581970 0.501465 0.376862\n0.625336 0.502014 0.377167\n0.670868 0.502716 0.377441\n0.718353 0.503265 0.377716\n0.767548 0.503937 0.378052\n0.817810 0.504486 0.378326\n0.868774 0.504913 0.378632\n0.915527 0.505676 0.378937\n0.000000 0.519836 0.369507\n0.000000 0.520508 0.369873\n0.017120 0.521149 0.370178\n0.043518 0.521667 0.370544\n0.077026 0.522400 0.370880\n0.104218 0.522919 0.371216\n0.129578 0.523468 0.371582\n0.153107 0.524231 0.371887\n0.175354 0.524780 0.372223\n0.196228 0.525299 0.372559\n0.216431 0.526062 0.372925\n0.235718 0.526581 0.373230\n0.255096 0.527313 0.373566\n0.274384 0.527832 0.373901\n0.294067 0.528381 0.374237\n0.314392 0.529114 0.374573\n0.336060 0.529663 0.374908\n0.358887 0.530182 0.375214\n0.383270 0.530914 0.375549\n0.409790 0.531433 0.375885\n0.438660 0.531982 0.376190\n0.470184 0.532715 0.376495\n0.504578 0.533203 0.376862\n0.542236 0.533783 0.377136\n0.582886 0.534424 0.377411\n0.626007 0.535004 0.377716\n0.671661 0.535645 0.378052\n0.719116 0.536194 0.378326\n0.768066 0.536682 0.378601\n0.817993 0.537140 0.378906\n0.869080 0.537872 0.379211\n0.915527 0.538330 0.379486\n0.000000 0.556183 0.370178\n0.000000 0.556702 0.370544\n0.019592 0.557312 0.370880\n0.045990 0.557953 0.371185\n0.079529 0.558441 0.371552\n0.106415 0.559174 0.371887\n0.131561 0.559723 0.372223\n0.154999 0.560181 0.372528\n0.176880 0.560822 0.372894\n0.197784 0.561493 0.373230\n0.217743 0.562012 0.373535\n0.237091 0.562714 0.373901\n0.256256 0.563263 0.374237\n0.275513 0.563721 0.374573\n0.295197 0.564484 0.374908\n0.315491 0.565002 0.375214\n0.336945 0.565491 0.375519\n0.359802 0.566223 0.375885\n0.384369 0.566742 0.376190\n0.410919 0.567200 0.376495\n0.439758 0.567932 0.376831\n0.471222 0.568451 0.377136\n0.505615 0.568878 0.377411\n0.543152 0.569641 0.377716\n0.583679 0.570099 0.378021\n0.626923 0.570587 0.378326\n0.672424 0.571289 0.378601\n0.719666 0.571747 0.378906\n0.768433 0.572174 0.379211\n0.818481 0.572845 0.379456\n0.869232 0.573334 0.379791\n0.915527 0.573730 0.380035\n0.000000 0.595276 0.370880\n0.000000 0.595703 0.371185\n0.021912 0.596466 0.371552\n0.050262 0.596954 0.371887\n0.081940 0.597382 0.372223\n0.108551 0.598114 0.372528\n0.133484 0.598602 0.372864\n0.156586 0.599091 0.373199\n0.178558 0.599792 0.373535\n0.199249 0.600281 0.373901\n0.219025 0.600800 0.374207\n0.238434 0.601410 0.374542\n0.257446 0.601959 0.374878\n0.276581 0.602448 0.375214\n0.296295 0.603088 0.375519\n0.316589 0.603546 0.375854\n0.338013 0.604065 0.376190\n0.360809 0.604706 0.376495\n0.385498 0.605164 0.376801\n0.411987 0.605713 0.377136\n0.440765 0.606323 0.377411\n0.472137 0.606781 0.377716\n0.506653 0.607239 0.378021\n0.544098 0.607727 0.378296\n0.584656 0.608337 0.378601\n0.627808 0.608795 0.378906\n0.673035 0.609222 0.379181\n0.720276 0.609833 0.379456\n0.769012 0.610291 0.379761\n0.818756 0.610657 0.380035\n0.869385 0.611115 0.380310\n0.915527 0.611755 0.380554\n0.000000 0.636810 0.371552\n0.000000 0.637390 0.371857\n0.024353 0.637817 0.372223\n0.054626 0.638245 0.372528\n0.084320 0.638916 0.372864\n0.110779 0.639343 0.373199\n0.135376 0.639832 0.373535\n0.158447 0.640442 0.373901\n0.180084 0.640930 0.374207\n0.200623 0.641357 0.374542\n0.220306 0.641815 0.374878\n0.239563 0.642456 0.375183\n0.258606 0.642853 0.375488\n0.277679 0.643280 0.375854\n0.297363 0.643951 0.376160\n0.317719 0.644379 0.376465\n0.339111 0.644806 0.376801\n0.361908 0.645416 0.377136\n0.386505 0.645874 0.377380\n0.413025 0.646240 0.377686\n0.441742 0.646698 0.377991\n0.473114 0.647308 0.378296\n0.507507 0.647736 0.378601\n0.545105 0.648071 0.378906\n0.585632 0.648499 0.379181\n0.628632 0.649139 0.379456\n0.673828 0.649475 0.379761\n0.720734 0.649811 0.380035\n0.769409 0.650238 0.380310\n0.819000 0.650787 0.380554\n0.869446 0.651123 0.380859\n0.915527 0.651489 0.381073\n0.000000 0.680450 0.372223\n0.001495 0.681000 0.372498\n0.026855 0.681458 0.372833\n0.058777 0.681854 0.373199\n0.086639 0.682190 0.373505\n0.112885 0.682800 0.373871\n0.137329 0.683228 0.374207\n0.160095 0.683563 0.374512\n0.181549 0.683960 0.374847\n0.201965 0.684448 0.375183\n0.221588 0.684937 0.375488\n0.240845 0.685272 0.375854\n0.259766 0.685638 0.376160\n0.278809 0.686249 0.376465\n0.298492 0.686646 0.376801\n0.318756 0.687012 0.377106\n0.340179 0.687378 0.377380\n0.362976 0.687927 0.377686\n0.387512 0.688324 0.377960\n0.414001 0.688660 0.378296\n0.442719 0.688995 0.378571\n0.474152 0.689301 0.378906\n0.508484 0.689911 0.379181\n0.546112 0.690216 0.379456\n0.586304 0.690552 0.379761\n0.629303 0.690887 0.380035\n0.674347 0.691406 0.380280\n0.721405 0.691772 0.380554\n0.769775 0.692078 0.380829\n0.819214 0.692383 0.381073\n0.869629 0.692719 0.381317\n0.915527 0.693146 0.381561\n0.000000 0.725861 0.372833\n0.003723 0.726135 0.373169\n0.029358 0.726501 0.373505\n0.061249 0.726807 0.373871\n0.088959 0.727356 0.374176\n0.115021 0.727661 0.374512\n0.139252 0.727966 0.374847\n0.161865 0.728271 0.375183\n0.183197 0.728760 0.375488\n0.203308 0.729126 0.375824\n0.222870 0.729431 0.376129\n0.242035 0.729706 0.376465\n0.260895 0.730042 0.376801\n0.279907 0.730316 0.377075\n0.299530 0.730865 0.377380\n0.319824 0.731171 0.377655\n0.341217 0.731506 0.377960\n0.364014 0.731781 0.378296\n0.388428 0.732147 0.378571\n0.414917 0.732513 0.378876\n0.443726 0.732819 0.379150\n0.475189 0.733124 0.379456\n0.509491 0.733398 0.379730\n0.546875 0.733734 0.380005\n0.587219 0.734161 0.380280\n0.630127 0.734436 0.380554\n0.675140 0.734711 0.380798\n0.721863 0.734894 0.381073\n0.770081 0.735138 0.381317\n0.819519 0.735596 0.381561\n0.869720 0.735870 0.381836\n0.915527 0.736115 0.382050\n0.000000 0.772369 0.373474\n0.006042 0.772552 0.373840\n0.031647 0.772827 0.374176\n0.063873 0.773071 0.374481\n0.091217 0.773560 0.374847\n0.117096 0.773773 0.375183\n0.140961 0.774017 0.375488\n0.163422 0.774261 0.375824\n0.184662 0.774506 0.376129\n0.204865 0.774750 0.376434\n0.224121 0.775177 0.376770\n0.243256 0.775452 0.377075\n0.262054 0.775665 0.377350\n0.281006 0.775879 0.377655\n0.300568 0.776123 0.377960\n0.320862 0.776337 0.378265\n0.342285 0.776764 0.378571\n0.365021 0.777008 0.378876\n0.389435 0.777222 0.379150\n0.415955 0.777466 0.379425\n0.444733 0.777649 0.379730\n0.476196 0.777863 0.380005\n0.510468 0.778076 0.380280\n0.547791 0.778259 0.380554\n0.588135 0.778625 0.380798\n0.630768 0.778839 0.381073\n0.675629 0.779114 0.381287\n0.722412 0.779266 0.381561\n0.770630 0.779449 0.381805\n0.819885 0.779633 0.382050\n0.869781 0.779816 0.382263\n0.915527 0.780029 0.382507\n0.000000 0.819580 0.374176\n0.008453 0.819946 0.374481\n0.034119 0.820160 0.374847\n0.066284 0.820312 0.375153\n0.093628 0.820465 0.375458\n0.119141 0.820648 0.375793\n0.142883 0.820831 0.376129\n0.165161 0.820923 0.376434\n0.186066 0.821136 0.376770\n0.206146 0.821381 0.377075\n0.225311 0.821625 0.377350\n0.244385 0.821808 0.377655\n0.263123 0.821960 0.377960\n0.282074 0.822113 0.378265\n0.301605 0.822296 0.378571\n0.321777 0.822449 0.378876\n0.343292 0.822540 0.379150\n0.366058 0.822693 0.379425\n0.390472 0.822906 0.379730\n0.416931 0.823151 0.380005\n0.445770 0.823395 0.380249\n0.477081 0.823517 0.380554\n0.511292 0.823700 0.380798\n0.548676 0.823792 0.381042\n0.588959 0.823883 0.381287\n0.631561 0.824036 0.381561\n0.676361 0.824158 0.381805\n0.722900 0.824310 0.382050\n0.770874 0.824402 0.382233\n0.820068 0.824554 0.382507\n0.869873 0.824768 0.382690\n0.915527 0.825012 0.382904\n0.000000 0.867493 0.374817\n0.010834 0.867584 0.375122\n0.036407 0.867676 0.375458\n0.068756 0.867737 0.375793\n0.095856 0.867798 0.376099\n0.121124 0.867981 0.376404\n0.144714 0.868164 0.376740\n0.166718 0.868286 0.377045\n0.187531 0.868378 0.377319\n0.207520 0.868469 0.377625\n0.226685 0.868561 0.377930\n0.245544 0.868622 0.378235\n0.264221 0.868713 0.378571\n0.283142 0.868744 0.378845\n0.302460 0.868835 0.379150\n0.322723 0.868958 0.379425\n0.344086 0.868988 0.379730\n0.366974 0.869110 0.379974\n0.391418 0.869110 0.380249\n0.417938 0.869202 0.380524\n0.446594 0.869263 0.380798\n0.477905 0.869354 0.381042\n0.512146 0.869385 0.381287\n0.549591 0.869446 0.381561\n0.589600 0.869568 0.381775\n0.632233 0.869720 0.382019\n0.676819 0.869781 0.382233\n0.723267 0.869934 0.382477\n0.771210 0.869995 0.382690\n0.820221 0.870087 0.382904\n0.869995 0.870148 0.383118\n0.915527 0.870178 0.383331\n0.000000 0.915527 0.375458\n0.013092 0.915527 0.375793\n0.038818 0.915527 0.376099\n0.071259 0.915527 0.376404\n0.097961 0.915527 0.376709\n0.123016 0.915527 0.377045\n0.146362 0.915527 0.377319\n0.168427 0.915527 0.377625\n0.189026 0.915527 0.377930\n0.208740 0.915527 0.378235\n0.227753 0.915527 0.378540\n0.246582 0.915527 0.378845\n0.265198 0.915527 0.379120\n0.284149 0.915527 0.379395\n0.303467 0.915527 0.379700\n0.323669 0.915527 0.379974\n0.345093 0.915527 0.380249\n0.367828 0.915527 0.380524\n0.392395 0.915527 0.380798\n0.418793 0.915527 0.381042\n0.447418 0.915527 0.381287\n0.478851 0.915527 0.381561\n0.513062 0.915527 0.381775\n0.550232 0.915527 0.381989\n0.590332 0.915527 0.382233\n0.632874 0.915527 0.382477\n0.677429 0.915527 0.382690\n0.723877 0.915527 0.382904\n0.771698 0.915527 0.383118\n0.820435 0.915527 0.383301\n0.870178 0.915527 0.383514\n0.915527 0.915527 0.383728\n0.000000 0.000000 0.375031\n0.000000 0.000000 0.375214\n0.000000 0.000000 0.375336\n0.001221 0.000000 0.375549\n0.027679 0.000000 0.375732\n0.060913 0.000000 0.375916\n0.090179 0.000000 0.376068\n0.117493 0.000000 0.376282\n0.142944 0.000000 0.376495\n0.166656 0.000000 0.376709\n0.189087 0.000000 0.376923\n0.210297 0.000000 0.377136\n0.230957 0.000000 0.377319\n0.251404 0.000000 0.377563\n0.271637 0.000000 0.377777\n0.292511 0.000000 0.378052\n0.314026 0.000000 0.378296\n0.336731 0.000000 0.378540\n0.361145 0.000000 0.378784\n0.387421 0.000000 0.379028\n0.416046 0.000000 0.379272\n0.447479 0.000000 0.379547\n0.482208 0.000000 0.379852\n0.520325 0.000000 0.380096\n0.562103 0.000000 0.380371\n0.606995 0.000000 0.380646\n0.654968 0.000000 0.380920\n0.705170 0.000000 0.381226\n0.757141 0.000000 0.381500\n0.810760 0.000000 0.381775\n0.865295 0.000000 0.382050\n0.915527 0.000000 0.382355\n0.000000 0.000000 0.375336\n0.000000 0.000000 0.375519\n0.000000 0.000000 0.375732\n0.002258 0.000000 0.375916\n0.028961 0.000000 0.376068\n0.062439 0.000000 0.376251\n0.091522 0.000000 0.376495\n0.118713 0.000000 0.376678\n0.144043 0.000000 0.376923\n0.167755 0.000000 0.377136\n0.190125 0.000000 0.377319\n0.211243 0.000000 0.377563\n0.231934 0.000000 0.377777\n0.252197 0.000000 0.378052\n0.272522 0.000641 0.378265\n0.293243 0.001648 0.378540\n0.314880 0.002747 0.378754\n0.337616 0.003876 0.379028\n0.361908 0.005066 0.379272\n0.388245 0.006287 0.379547\n0.416962 0.007507 0.379822\n0.448425 0.008789 0.380096\n0.482941 0.010040 0.380371\n0.521179 0.011353 0.380646\n0.562805 0.012695 0.380920\n0.607910 0.014038 0.381226\n0.655548 0.015411 0.381500\n0.705627 0.016754 0.381775\n0.757629 0.018311 0.382050\n0.811127 0.019745 0.382355\n0.865479 0.021149 0.382629\n0.915527 0.022583 0.382935\n0.000000 0.014648 0.375702\n0.000000 0.015411 0.375916\n0.000000 0.016327 0.376068\n0.003632 0.017242 0.376251\n0.030426 0.018250 0.376465\n0.063965 0.019073 0.376678\n0.093018 0.020081 0.376923\n0.120117 0.021149 0.377136\n0.145233 0.022186 0.377319\n0.168854 0.023285 0.377563\n0.191040 0.024445 0.377777\n0.212280 0.025391 0.378021\n0.232849 0.026581 0.378265\n0.253021 0.027710 0.378540\n0.273315 0.028961 0.378754\n0.294067 0.030182 0.378998\n0.315613 0.031403 0.379272\n0.338531 0.032654 0.379547\n0.362854 0.033966 0.379822\n0.389160 0.035217 0.380096\n0.417938 0.036530 0.380341\n0.449371 0.037872 0.380646\n0.483948 0.039154 0.380890\n0.522034 0.040527 0.381195\n0.563751 0.041901 0.381500\n0.608734 0.043243 0.381775\n0.656403 0.044678 0.382050\n0.706390 0.046387 0.382324\n0.758179 0.048798 0.382629\n0.811371 0.051575 0.382935\n0.865601 0.054199 0.383209\n0.915527 0.056885 0.383514\n0.000000 0.043762 0.376068\n0.000000 0.044556 0.376251\n0.000000 0.045563 0.376465\n0.004974 0.047272 0.376678\n0.031982 0.048706 0.376923\n0.065582 0.050507 0.377106\n0.094421 0.052399 0.377319\n0.121490 0.054443 0.377533\n0.146454 0.056427 0.377747\n0.169983 0.058258 0.378021\n0.192108 0.059631 0.378235\n0.213257 0.060883 0.378510\n0.233826 0.062164 0.378754\n0.253937 0.063507 0.378998\n0.274170 0.064911 0.379242\n0.294983 0.066193 0.379547\n0.316528 0.067474 0.379822\n0.339233 0.068756 0.380096\n0.363770 0.070221 0.380341\n0.390137 0.071533 0.380615\n0.418854 0.072968 0.380890\n0.450317 0.074432 0.381195\n0.484894 0.075897 0.381470\n0.522980 0.077332 0.381775\n0.564697 0.078735 0.382050\n0.609467 0.080261 0.382324\n0.656982 0.081757 0.382629\n0.706909 0.083191 0.382904\n0.758575 0.084778 0.383209\n0.811615 0.086243 0.383514\n0.865784 0.087708 0.383820\n0.915527 0.089294 0.384125\n0.000000 0.080658 0.376465\n0.000000 0.081665 0.376648\n0.000000 0.082764 0.376923\n0.006470 0.083679 0.377106\n0.033447 0.084839 0.377319\n0.067200 0.085938 0.377533\n0.096069 0.087006 0.377747\n0.122864 0.088074 0.377991\n0.147797 0.089294 0.378235\n0.171173 0.090515 0.378510\n0.193268 0.091736 0.378754\n0.214294 0.092804 0.378998\n0.234741 0.094025 0.379242\n0.254913 0.095245 0.379517\n0.275085 0.096588 0.379822\n0.295959 0.097870 0.380066\n0.317474 0.098999 0.380310\n0.340210 0.100342 0.380585\n0.364655 0.101624 0.380890\n0.390961 0.102966 0.381165\n0.419678 0.104309 0.381439\n0.451172 0.105713 0.381744\n0.485870 0.107056 0.382019\n0.523987 0.108459 0.382324\n0.565674 0.109589 0.382599\n0.610413 0.111023 0.382904\n0.657867 0.112427 0.383209\n0.707611 0.113800 0.383514\n0.759155 0.115204 0.383820\n0.812134 0.116638 0.384125\n0.865906 0.118073 0.384430\n0.915527 0.119446 0.384735\n0.000000 0.111664 0.376923\n0.000000 0.112518 0.377106\n0.000000 0.113586 0.377319\n0.007965 0.114594 0.377533\n0.035126 0.115509 0.377747\n0.069031 0.116577 0.377991\n0.097565 0.117706 0.378235\n0.124359 0.118622 0.378479\n0.149261 0.119781 0.378723\n0.172394 0.120911 0.378998\n0.194275 0.121948 0.379242\n0.215424 0.123047 0.379517\n0.235657 0.124237 0.379822\n0.255890 0.125458 0.380035\n0.276062 0.126465 0.380310\n0.296753 0.127686 0.380585\n0.318451 0.128906 0.380890\n0.341187 0.130127 0.381165\n0.365509 0.131348 0.381439\n0.391937 0.132477 0.381714\n0.420685 0.133728 0.382019\n0.452209 0.134979 0.382294\n0.486938 0.136292 0.382599\n0.524994 0.137451 0.382874\n0.566406 0.138580 0.383179\n0.611145 0.139893 0.383514\n0.658539 0.141174 0.383820\n0.708130 0.142456 0.384094\n0.759583 0.143738 0.384430\n0.812439 0.144836 0.384735\n0.866028 0.146118 0.385040\n0.915527 0.147430 0.385315\n0.000000 0.140686 0.377319\n0.000000 0.141479 0.377533\n0.000000 0.142456 0.377747\n0.009766 0.143311 0.377960\n0.036835 0.144287 0.378235\n0.070770 0.145325 0.378479\n0.099365 0.146118 0.378723\n0.125916 0.147217 0.378967\n0.150574 0.148071 0.379242\n0.173615 0.149170 0.379517\n0.195465 0.150238 0.379791\n0.216492 0.151245 0.380035\n0.236725 0.152252 0.380310\n0.256836 0.153351 0.380585\n0.277069 0.154266 0.380890\n0.297668 0.155426 0.381165\n0.319275 0.156555 0.381439\n0.342194 0.157684 0.381714\n0.366516 0.158630 0.382019\n0.392914 0.159790 0.382294\n0.421722 0.160950 0.382599\n0.453247 0.161865 0.382874\n0.487732 0.163055 0.383179\n0.525909 0.164276 0.383514\n0.567413 0.165222 0.383789\n0.612030 0.166382 0.384094\n0.659332 0.167603 0.384399\n0.708954 0.168640 0.384705\n0.760254 0.169739 0.385040\n0.812744 0.170898 0.385315\n0.866241 0.172089 0.385590\n0.915527 0.173157 0.385925\n0.000000 0.167419 0.377716\n0.000000 0.168152 0.377960\n0.000000 0.169037 0.378235\n0.011475 0.169800 0.378479\n0.038666 0.170746 0.378723\n0.072601 0.171570 0.378967\n0.100983 0.172516 0.379242\n0.127380 0.173462 0.379486\n0.151947 0.174225 0.379761\n0.175049 0.175262 0.380035\n0.196808 0.176056 0.380310\n0.217590 0.177094 0.380585\n0.237793 0.178101 0.380890\n0.257751 0.178894 0.381165\n0.278015 0.179993 0.381439\n0.298676 0.180786 0.381714\n0.320190 0.181854 0.381989\n0.343140 0.182892 0.382263\n0.367584 0.183777 0.382568\n0.393982 0.184814 0.382874\n0.422791 0.185730 0.383179\n0.454315 0.186707 0.383484\n0.488800 0.187836 0.383789\n0.526825 0.188782 0.384094\n0.568420 0.189789 0.384369\n0.613007 0.190857 0.384705\n0.660187 0.191742 0.385010\n0.709473 0.192841 0.385315\n0.760651 0.193939 0.385590\n0.813171 0.194763 0.385895\n0.866547 0.195862 0.386230\n0.915527 0.196869 0.386566\n0.000000 0.191925 0.378235\n0.000000 0.192810 0.378479\n0.000000 0.193420 0.378723\n0.013306 0.194336 0.378937\n0.040466 0.195160 0.379242\n0.074646 0.195923 0.379486\n0.102814 0.196655 0.379761\n0.129089 0.197571 0.380035\n0.153473 0.198364 0.380310\n0.176300 0.199219 0.380554\n0.198059 0.200165 0.380859\n0.218811 0.200928 0.381134\n0.238892 0.201782 0.381409\n0.258820 0.202606 0.381714\n0.279022 0.203583 0.381989\n0.299713 0.204315 0.382263\n0.321228 0.205292 0.382568\n0.344025 0.206207 0.382874\n0.368622 0.207092 0.383179\n0.395020 0.207916 0.383484\n0.423859 0.208832 0.383789\n0.455353 0.209839 0.384064\n0.489868 0.210602 0.384369\n0.527893 0.211609 0.384705\n0.569427 0.212433 0.384979\n0.613861 0.213440 0.385315\n0.660797 0.214355 0.385590\n0.710205 0.215210 0.385864\n0.761047 0.216187 0.386230\n0.813538 0.216980 0.386536\n0.866760 0.217987 0.386841\n0.915527 0.218811 0.387177\n0.000000 0.214935 0.378723\n0.000000 0.215546 0.378937\n0.000000 0.216370 0.379211\n0.015259 0.217010 0.379456\n0.042358 0.217834 0.379761\n0.076660 0.218475 0.380005\n0.104553 0.219360 0.380280\n0.130646 0.220032 0.380554\n0.154999 0.220886 0.380859\n0.177734 0.221527 0.381134\n0.199310 0.222443 0.381409\n0.219971 0.223114 0.381683\n0.239990 0.223938 0.381989\n0.259918 0.224731 0.382263\n0.279999 0.225647 0.382538\n0.300751 0.226288 0.382874\n0.322296 0.227234 0.383179\n0.345062 0.227936 0.383453\n0.369629 0.228821 0.383759\n0.396088 0.229553 0.384064\n0.424896 0.230499 0.384369\n0.456207 0.231201 0.384674\n0.490997 0.232147 0.384979\n0.528992 0.232849 0.385284\n0.570251 0.233795 0.385559\n0.614655 0.234528 0.385864\n0.661713 0.235474 0.386230\n0.710724 0.236176 0.386536\n0.761719 0.237152 0.386841\n0.813812 0.237823 0.387146\n0.866882 0.238739 0.387451\n0.915527 0.239563 0.387787\n0.000000 0.236328 0.379211\n0.000000 0.237152 0.379456\n0.000000 0.237701 0.379761\n0.017151 0.238525 0.380005\n0.044281 0.239075 0.380280\n0.078705 0.239960 0.380554\n0.106415 0.240509 0.380859\n0.132416 0.241150 0.381134\n0.156433 0.241943 0.381409\n0.179077 0.242584 0.381683\n0.200531 0.243408 0.381958\n0.221100 0.244049 0.382263\n0.241119 0.244904 0.382538\n0.260986 0.245575 0.382843\n0.281067 0.246338 0.383179\n0.301819 0.247040 0.383453\n0.323334 0.247803 0.383759\n0.346130 0.248566 0.384064\n0.370636 0.249329 0.384369\n0.397095 0.250061 0.384644\n0.425781 0.250885 0.384979\n0.457275 0.251587 0.385284\n0.492035 0.252258 0.385559\n0.530060 0.253204 0.385864\n0.571289 0.253815 0.386200\n0.615631 0.254730 0.386505\n0.662567 0.255341 0.386841\n0.711548 0.256256 0.387146\n0.762177 0.256927 0.387451\n0.814056 0.257812 0.387756\n0.867035 0.258484 0.388092\n0.915527 0.259338 0.388397\n0.000000 0.256897 0.379730\n0.000000 0.257629 0.380005\n0.000000 0.258209 0.380280\n0.019135 0.258789 0.380554\n0.046814 0.259491 0.380829\n0.080658 0.260101 0.381104\n0.108368 0.260895 0.381409\n0.134003 0.261444 0.381653\n0.157898 0.262024 0.381958\n0.180420 0.262848 0.382233\n0.201782 0.263397 0.382538\n0.222321 0.264221 0.382843\n0.242279 0.264801 0.383148\n0.262115 0.265625 0.383453\n0.282166 0.266235 0.383728\n0.302673 0.266968 0.384064\n0.324371 0.267639 0.384338\n0.347198 0.268280 0.384644\n0.371552 0.269073 0.384949\n0.398041 0.269714 0.385254\n0.426880 0.270538 0.385559\n0.458374 0.271149 0.385864\n0.493103 0.272064 0.386200\n0.531036 0.272644 0.386505\n0.572266 0.273224 0.386841\n0.616577 0.274078 0.387146\n0.663208 0.274719 0.387421\n0.712067 0.275543 0.387756\n0.762726 0.276154 0.388062\n0.814392 0.277008 0.388367\n0.867157 0.277679 0.388672\n0.915527 0.278473 0.388977\n0.000000 0.276947 0.380280\n0.000000 0.277435 0.380554\n0.000000 0.277924 0.380829\n0.021332 0.278687 0.381104\n0.050262 0.279205 0.381378\n0.082855 0.279724 0.381622\n0.110321 0.280548 0.381958\n0.135834 0.281036 0.382233\n0.159576 0.281830 0.382538\n0.181946 0.282379 0.382843\n0.203064 0.282990 0.383118\n0.223541 0.283752 0.383453\n0.243378 0.284271 0.383728\n0.263214 0.285034 0.384033\n0.283234 0.285645 0.384338\n0.303741 0.286285 0.384644\n0.325317 0.287018 0.384949\n0.348236 0.287598 0.385254\n0.372620 0.288391 0.385529\n0.399078 0.288971 0.385834\n0.427948 0.289795 0.386169\n0.459503 0.290375 0.386505\n0.494141 0.290955 0.386841\n0.531982 0.291748 0.387115\n0.573303 0.292358 0.387421\n0.617371 0.293182 0.387756\n0.664093 0.293762 0.388031\n0.712860 0.294495 0.388367\n0.763214 0.295166 0.388672\n0.814911 0.295746 0.388947\n0.867310 0.296539 0.389252\n0.915527 0.297150 0.389587\n0.000000 0.296478 0.380829\n0.000000 0.296936 0.381073\n0.000000 0.297485 0.381378\n0.023407 0.298218 0.381622\n0.054016 0.298706 0.381927\n0.084930 0.299377 0.382233\n0.112091 0.300018 0.382538\n0.137451 0.300507 0.382843\n0.161072 0.301239 0.383118\n0.183380 0.301788 0.383423\n0.204376 0.302307 0.383728\n0.224762 0.303101 0.384033\n0.244598 0.303650 0.384338\n0.264343 0.304443 0.384644\n0.284332 0.304962 0.384918\n0.304810 0.305511 0.385254\n0.326355 0.306305 0.385529\n0.349365 0.306854 0.385834\n0.373718 0.307465 0.386169\n0.400208 0.308167 0.386505\n0.429077 0.308777 0.386810\n0.460602 0.309540 0.387115\n0.495087 0.310120 0.387421\n0.533051 0.310883 0.387726\n0.574371 0.311432 0.388031\n0.618286 0.312073 0.388367\n0.664948 0.312775 0.388672\n0.713379 0.313385 0.388947\n0.763611 0.314056 0.389252\n0.815186 0.314728 0.389557\n0.867462 0.315308 0.389862\n0.915527 0.316071 0.390167\n0.000000 0.316162 0.381348\n0.000000 0.316650 0.381622\n0.000000 0.317322 0.381927\n0.025635 0.317810 0.382233\n0.058075 0.318359 0.382538\n0.086945 0.318970 0.382812\n0.114105 0.319611 0.383118\n0.139313 0.320099 0.383392\n0.162750 0.320831 0.383728\n0.184723 0.321350 0.384003\n0.205658 0.321991 0.384308\n0.226013 0.322662 0.384613\n0.245758 0.323181 0.384918\n0.265472 0.323944 0.385223\n0.285461 0.324493 0.385498\n0.305908 0.325012 0.385834\n0.327484 0.325806 0.386169\n0.350433 0.326355 0.386505\n0.374847 0.327057 0.386810\n0.401306 0.327637 0.387115\n0.430176 0.328217 0.387390\n0.461700 0.328979 0.387695\n0.496185 0.329559 0.388031\n0.534088 0.330078 0.388336\n0.575256 0.330841 0.388641\n0.619263 0.331390 0.388916\n0.665619 0.332184 0.389252\n0.714142 0.332703 0.389557\n0.764282 0.333313 0.389862\n0.815491 0.334015 0.390167\n0.867615 0.334564 0.390472\n0.915527 0.335358 0.390808\n0.000000 0.336243 0.381897\n0.000000 0.336823 0.382202\n0.001709 0.337463 0.382538\n0.027802 0.337921 0.382812\n0.060608 0.338654 0.383118\n0.089264 0.339172 0.383392\n0.116089 0.339661 0.383698\n0.140930 0.340393 0.384003\n0.164307 0.340912 0.384308\n0.186188 0.341431 0.384613\n0.207092 0.342194 0.384918\n0.227234 0.342712 0.385223\n0.246918 0.343414 0.385498\n0.266632 0.343964 0.385834\n0.286560 0.344513 0.386169\n0.307037 0.345245 0.386475\n0.328552 0.345825 0.386810\n0.351471 0.346405 0.387115\n0.375946 0.347137 0.387390\n0.402405 0.347656 0.387695\n0.431305 0.348419 0.388031\n0.462830 0.348969 0.388336\n0.497314 0.349518 0.388641\n0.535187 0.350281 0.388916\n0.576233 0.350800 0.389252\n0.620270 0.351532 0.389526\n0.666504 0.352112 0.389862\n0.714783 0.352631 0.390167\n0.764679 0.353424 0.390472\n0.815979 0.353973 0.390808\n0.867920 0.354492 0.391083\n0.915527 0.355225 0.391388\n0.000000 0.357269 0.382507\n0.000000 0.357727 0.382812\n0.003723 0.358490 0.383087\n0.029999 0.359039 0.383392\n0.062927 0.359528 0.383667\n0.091431 0.360229 0.384003\n0.118103 0.360718 0.384308\n0.142822 0.361481 0.384613\n0.165863 0.362000 0.384918\n0.187683 0.362457 0.385193\n0.208527 0.363281 0.385498\n0.228455 0.363770 0.385834\n0.248108 0.364319 0.386169\n0.267761 0.365051 0.386475\n0.287628 0.365601 0.386810\n0.308105 0.366272 0.387085\n0.329620 0.366882 0.387390\n0.352417 0.367432 0.387695\n0.377045 0.368195 0.388000\n0.403564 0.368713 0.388306\n0.432434 0.369263 0.388641\n0.463898 0.370026 0.388916\n0.498383 0.370575 0.389221\n0.536316 0.371246 0.389526\n0.577271 0.371887 0.389832\n0.620972 0.372406 0.390137\n0.667328 0.373169 0.390472\n0.715454 0.373657 0.390778\n0.765320 0.374359 0.391083\n0.816223 0.374969 0.391388\n0.868103 0.375519 0.391693\n0.915527 0.376129 0.391937\n0.000000 0.379578 0.383087\n0.000000 0.380096 0.383362\n0.005951 0.380585 0.383667\n0.032349 0.381317 0.384003\n0.065369 0.381836 0.384277\n0.093750 0.382355 0.384583\n0.120026 0.383057 0.384888\n0.144592 0.383575 0.385193\n0.167572 0.384247 0.385498\n0.189209 0.384857 0.385803\n0.209839 0.385406 0.386139\n0.229706 0.386139 0.386475\n0.249298 0.386658 0.386780\n0.268890 0.387207 0.387085\n0.288757 0.387970 0.387390\n0.309204 0.388489 0.387695\n0.330750 0.389099 0.388000\n0.353546 0.389801 0.388306\n0.378174 0.390350 0.388611\n0.404663 0.391113 0.388885\n0.433472 0.391632 0.389191\n0.464966 0.392181 0.389526\n0.499542 0.392944 0.389832\n0.537323 0.393463 0.390137\n0.578278 0.394073 0.390472\n0.621918 0.394775 0.390778\n0.667999 0.395325 0.391083\n0.716156 0.396057 0.391357\n0.765747 0.396545 0.391693\n0.816528 0.397095 0.391937\n0.868225 0.397858 0.392212\n0.915527 0.398407 0.392487\n0.000000 0.403259 0.383667\n0.000000 0.403717 0.383972\n0.008118 0.404480 0.384277\n0.034637 0.405029 0.384583\n0.067780 0.405487 0.384888\n0.095917 0.406281 0.385193\n0.121948 0.406738 0.385498\n0.146332 0.407532 0.385803\n0.169098 0.408051 0.386108\n0.190643 0.408569 0.386444\n0.211151 0.409332 0.386749\n0.230957 0.409882 0.387085\n0.250519 0.410400 0.387360\n0.270050 0.411163 0.387665\n0.289917 0.411682 0.387970\n0.310333 0.412415 0.388306\n0.331848 0.412994 0.388611\n0.354645 0.413544 0.388885\n0.379211 0.414307 0.389191\n0.405762 0.414856 0.389496\n0.434540 0.415344 0.389801\n0.465973 0.416138 0.390137\n0.500641 0.416687 0.390472\n0.538239 0.417328 0.390747\n0.579315 0.417938 0.391052\n0.622925 0.418518 0.391357\n0.668884 0.419250 0.391663\n0.716736 0.419769 0.391937\n0.766174 0.420410 0.392181\n0.816956 0.421082 0.392487\n0.868408 0.421570 0.392792\n0.915527 0.422119 0.393097\n0.000000 0.428864 0.384277\n0.000000 0.429504 0.384552\n0.010437 0.429993 0.384888\n0.036957 0.430695 0.385193\n0.070282 0.431274 0.385468\n0.098053 0.431824 0.385803\n0.123962 0.432526 0.386108\n0.148224 0.433075 0.386444\n0.170837 0.433594 0.386749\n0.192108 0.434387 0.387054\n0.212494 0.434875 0.387360\n0.232208 0.435699 0.387665\n0.251678 0.436188 0.387970\n0.271210 0.436768 0.388275\n0.291016 0.437500 0.388580\n0.311432 0.438049 0.388885\n0.332947 0.438568 0.389191\n0.355743 0.439362 0.389496\n0.380280 0.439880 0.389801\n0.406830 0.440643 0.390137\n0.435638 0.441162 0.390442\n0.467072 0.441742 0.390747\n0.501740 0.442505 0.391052\n0.539307 0.443024 0.391357\n0.580231 0.443573 0.391663\n0.623779 0.444336 0.391937\n0.669464 0.444824 0.392181\n0.717316 0.445526 0.392487\n0.766754 0.446075 0.392792\n0.817322 0.446655 0.393066\n0.868530 0.447357 0.393372\n0.915527 0.447845 0.393646\n0.000000 0.456604 0.384857\n0.000000 0.457336 0.385193\n0.012817 0.457886 0.385468\n0.039215 0.458405 0.385773\n0.072601 0.459137 0.386108\n0.100372 0.459717 0.386444\n0.126007 0.460327 0.386749\n0.149963 0.460999 0.387054\n0.172394 0.461548 0.387329\n0.193634 0.462250 0.387665\n0.213806 0.462830 0.387970\n0.233490 0.463348 0.388275\n0.252869 0.464142 0.388580\n0.272400 0.464630 0.388885\n0.291962 0.465302 0.389160\n0.312592 0.465912 0.389496\n0.334045 0.466522 0.389801\n0.356842 0.467194 0.390106\n0.381348 0.467834 0.390442\n0.407867 0.468353 0.390747\n0.436646 0.469116 0.391022\n0.468170 0.469604 0.391357\n0.502594 0.470184 0.391632\n0.540344 0.470886 0.391907\n0.581116 0.471466 0.392181\n0.624512 0.472198 0.392456\n0.670319 0.472687 0.392792\n0.717987 0.473236 0.393066\n0.767151 0.473969 0.393341\n0.817535 0.474487 0.393616\n0.868683 0.474976 0.393921\n0.915527 0.475739 0.394165\n0.000000 0.486969 0.385468\n0.000000 0.487640 0.385773\n0.015228 0.488159 0.386108\n0.041626 0.488922 0.386444\n0.075012 0.489410 0.386749\n0.102570 0.489990 0.387054\n0.128052 0.490723 0.387329\n0.151764 0.491272 0.387634\n0.174072 0.491791 0.387939\n0.195038 0.492584 0.388245\n0.215302 0.493134 0.388580\n0.234924 0.493835 0.388855\n0.254059 0.494385 0.389160\n0.273468 0.494965 0.389496\n0.293121 0.495697 0.389801\n0.313721 0.496216 0.390106\n0.335175 0.496796 0.390442\n0.357941 0.497528 0.390717\n0.382385 0.498077 0.391022\n0.408936 0.498718 0.391327\n0.437744 0.499329 0.391632\n0.469238 0.499847 0.391907\n0.503632 0.500641 0.392181\n0.541382 0.501160 0.392456\n0.582062 0.501648 0.392792\n0.625427 0.502411 0.393066\n0.671051 0.502930 0.393341\n0.718506 0.503418 0.393616\n0.767731 0.504120 0.393890\n0.817841 0.504639 0.394165\n0.868774 0.505096 0.394440\n0.915527 0.505829 0.394714\n0.000000 0.520081 0.386078\n0.000000 0.520813 0.386414\n0.017670 0.521332 0.386719\n0.044006 0.521851 0.387024\n0.077576 0.522614 0.387329\n0.104645 0.523102 0.387634\n0.129883 0.523773 0.387939\n0.153564 0.524445 0.388245\n0.175629 0.525024 0.388580\n0.196442 0.525635 0.388855\n0.216644 0.526276 0.389160\n0.236053 0.526764 0.389496\n0.255280 0.527527 0.389801\n0.274658 0.528076 0.390106\n0.294220 0.528564 0.390411\n0.314728 0.529358 0.390717\n0.336243 0.529846 0.391022\n0.359039 0.530579 0.391327\n0.383453 0.531128 0.391632\n0.409973 0.531647 0.391876\n0.438812 0.532318 0.392151\n0.470337 0.532928 0.392456\n0.504700 0.533386 0.392761\n0.542389 0.534149 0.393036\n0.583038 0.534637 0.393341\n0.626312 0.535156 0.393616\n0.671722 0.535858 0.393890\n0.719238 0.536346 0.394165\n0.768158 0.536835 0.394440\n0.818054 0.537476 0.394714\n0.869080 0.538025 0.394958\n0.915527 0.538483 0.395203\n0.000000 0.556366 0.386719\n0.000000 0.556885 0.387024\n0.019989 0.557587 0.387299\n0.046875 0.558136 0.387604\n0.080017 0.558685 0.387939\n0.106964 0.559418 0.388245\n0.131836 0.559875 0.388550\n0.155273 0.560394 0.388855\n0.177094 0.561188 0.389160\n0.198059 0.561646 0.389465\n0.217957 0.562195 0.389771\n0.237366 0.562927 0.390106\n0.256470 0.563446 0.390411\n0.275818 0.564087 0.390717\n0.295349 0.564667 0.390991\n0.315765 0.565186 0.391296\n0.337219 0.565704 0.391602\n0.360077 0.566406 0.391876\n0.384521 0.566895 0.392151\n0.411041 0.567444 0.392456\n0.439880 0.568146 0.392761\n0.471375 0.568604 0.393036\n0.505768 0.569214 0.393311\n0.543396 0.569794 0.393616\n0.583954 0.570251 0.393890\n0.627045 0.570892 0.394135\n0.672607 0.571442 0.394440\n0.719727 0.571930 0.394714\n0.768524 0.572327 0.394928\n0.818573 0.573029 0.395203\n0.869293 0.573456 0.395477\n0.915527 0.573944 0.395721\n0.000000 0.595428 0.387268\n0.000000 0.595886 0.387604\n0.022430 0.596588 0.387939\n0.050903 0.597107 0.388214\n0.082336 0.597595 0.388519\n0.109100 0.598297 0.388855\n0.133881 0.598785 0.389160\n0.157104 0.599304 0.389465\n0.178833 0.599945 0.389771\n0.199463 0.600433 0.390076\n0.219208 0.600922 0.390381\n0.238617 0.601654 0.390686\n0.257599 0.602142 0.390991\n0.276794 0.602570 0.391296\n0.296478 0.603302 0.391602\n0.316895 0.603729 0.391876\n0.338287 0.604248 0.392120\n0.361145 0.604950 0.392456\n0.385620 0.605408 0.392761\n0.412109 0.605835 0.393036\n0.440979 0.606506 0.393311\n0.472504 0.606964 0.393616\n0.506805 0.607391 0.393860\n0.544281 0.607880 0.394135\n0.584808 0.608521 0.394440\n0.627930 0.608948 0.394684\n0.673157 0.609375 0.394928\n0.720337 0.610046 0.395203\n0.769135 0.610443 0.395447\n0.818787 0.610809 0.395721\n0.869385 0.611420 0.395935\n0.915527 0.611847 0.396179\n0.000000 0.637085 0.387909\n0.000000 0.637543 0.388214\n0.024902 0.637970 0.388519\n0.055267 0.638550 0.388824\n0.084686 0.639099 0.389130\n0.111298 0.639557 0.389465\n0.135834 0.640045 0.389771\n0.158752 0.640625 0.390076\n0.180328 0.641052 0.390381\n0.200867 0.641510 0.390686\n0.220520 0.642120 0.390991\n0.239807 0.642578 0.391296\n0.258759 0.643066 0.391571\n0.277954 0.643494 0.391876\n0.297516 0.644104 0.392120\n0.317871 0.644501 0.392426\n0.339294 0.644958 0.392731\n0.362183 0.645599 0.393036\n0.386688 0.645996 0.393311\n0.413177 0.646423 0.393585\n0.442078 0.647064 0.393860\n0.473480 0.647430 0.394135\n0.507812 0.647827 0.394409\n0.545258 0.648224 0.394684\n0.585724 0.648743 0.394928\n0.628784 0.649231 0.395172\n0.673950 0.649567 0.395447\n0.720825 0.649994 0.395721\n0.769440 0.650543 0.395935\n0.819031 0.650879 0.396179\n0.869507 0.651276 0.396423\n0.915527 0.651611 0.396667\n0.000000 0.680573 0.388519\n0.001953 0.681213 0.388824\n0.027222 0.681549 0.389130\n0.059265 0.681946 0.389465\n0.086975 0.682312 0.389771\n0.113281 0.682953 0.390045\n0.137604 0.683350 0.390381\n0.160553 0.683746 0.390656\n0.181946 0.684113 0.390991\n0.202209 0.684723 0.391266\n0.221802 0.685089 0.391571\n0.241028 0.685455 0.391846\n0.259949 0.685822 0.392120\n0.279053 0.686432 0.392426\n0.298615 0.686768 0.392731\n0.318939 0.687195 0.393005\n0.340332 0.687531 0.393311\n0.363129 0.688080 0.393585\n0.387756 0.688446 0.393860\n0.414246 0.688812 0.394104\n0.443024 0.689117 0.394409\n0.474304 0.689484 0.394684\n0.508636 0.690002 0.394928\n0.546265 0.690338 0.395172\n0.586639 0.690704 0.395447\n0.629425 0.691040 0.395721\n0.674500 0.691559 0.395935\n0.721497 0.691864 0.396179\n0.769806 0.692169 0.396423\n0.819244 0.692474 0.396667\n0.869629 0.692902 0.396912\n0.915527 0.693298 0.397125\n0.000000 0.725952 0.389130\n0.004211 0.726257 0.389435\n0.029724 0.726624 0.389740\n0.061737 0.727051 0.390045\n0.089539 0.727448 0.390350\n0.115326 0.727753 0.390656\n0.139557 0.728119 0.390961\n0.162109 0.728424 0.391266\n0.183441 0.728943 0.391571\n0.203705 0.729218 0.391846\n0.223175 0.729523 0.392120\n0.242218 0.729858 0.392426\n0.261078 0.730164 0.392700\n0.280060 0.730621 0.393005\n0.299713 0.730988 0.393280\n0.319977 0.731323 0.393585\n0.341400 0.731567 0.393860\n0.364166 0.731873 0.394104\n0.388763 0.732269 0.394409\n0.415192 0.732666 0.394653\n0.443878 0.732910 0.394897\n0.475342 0.733215 0.395172\n0.509644 0.733490 0.395447\n0.547180 0.733887 0.395691\n0.587372 0.734253 0.395905\n0.630280 0.734497 0.396149\n0.675232 0.734802 0.396423\n0.721924 0.735016 0.396667\n0.770203 0.735229 0.396881\n0.819580 0.735748 0.397125\n0.869720 0.735962 0.397339\n0.915527 0.736176 0.397705\n0.000000 0.772461 0.389740\n0.006500 0.772644 0.390045\n0.032166 0.772888 0.390320\n0.064270 0.773193 0.390656\n0.091766 0.773651 0.390961\n0.117401 0.773834 0.391266\n0.141449 0.774109 0.391571\n0.163879 0.774353 0.391846\n0.184875 0.774567 0.392120\n0.205109 0.774902 0.392426\n0.224396 0.775269 0.392700\n0.243378 0.775482 0.392975\n0.262207 0.775757 0.393280\n0.281158 0.775970 0.393555\n0.300812 0.776184 0.393829\n0.321014 0.776459 0.394104\n0.342438 0.776886 0.394379\n0.365173 0.777100 0.394653\n0.389679 0.777283 0.394897\n0.416107 0.777527 0.395142\n0.444916 0.777740 0.395447\n0.476349 0.777924 0.395691\n0.510620 0.778137 0.395905\n0.547913 0.778381 0.396149\n0.588257 0.778778 0.396423\n0.630890 0.778931 0.396667\n0.675751 0.779144 0.396881\n0.722565 0.779297 0.397125\n0.770660 0.779480 0.397339\n0.819916 0.779663 0.397705\n0.869781 0.779816 0.397980\n0.915527 0.780151 0.398163\n0.000000 0.819641 0.390320\n0.008820 0.820038 0.390656\n0.034454 0.820221 0.390930\n0.066742 0.820374 0.391266\n0.094055 0.820526 0.391541\n0.119476 0.820679 0.391815\n0.143188 0.820831 0.392090\n0.165466 0.820984 0.392395\n0.186371 0.821167 0.392700\n0.206421 0.821472 0.392975\n0.225739 0.821747 0.393250\n0.244568 0.821869 0.393555\n0.263306 0.822021 0.393829\n0.282257 0.822174 0.394104\n0.301819 0.822357 0.394379\n0.322021 0.822479 0.394653\n0.343475 0.822601 0.394867\n0.366211 0.822815 0.395142\n0.390594 0.822968 0.395447\n0.417053 0.823273 0.395660\n0.445923 0.823456 0.395905\n0.477325 0.823578 0.396149\n0.511597 0.823730 0.396423\n0.548859 0.823853 0.396667\n0.589081 0.823944 0.396881\n0.631653 0.824066 0.397125\n0.676453 0.824219 0.397339\n0.722992 0.824310 0.397705\n0.770966 0.824463 0.397949\n0.820129 0.824615 0.398163\n0.869904 0.824860 0.398407\n0.915527 0.825043 0.398590\n0.000000 0.867554 0.390930\n0.011200 0.867645 0.391235\n0.036896 0.867676 0.391541\n0.069275 0.867767 0.391815\n0.096283 0.867920 0.392090\n0.121490 0.867981 0.392365\n0.144989 0.868164 0.392670\n0.167023 0.868347 0.392975\n0.187927 0.868439 0.393250\n0.207703 0.868469 0.393524\n0.226929 0.868561 0.393799\n0.245697 0.868652 0.394104\n0.264404 0.868713 0.394348\n0.283295 0.868774 0.394623\n0.302612 0.868896 0.394867\n0.322998 0.868958 0.395142\n0.344238 0.869049 0.395416\n0.367188 0.869110 0.395660\n0.391571 0.869171 0.395905\n0.418030 0.869202 0.396149\n0.446838 0.869293 0.396393\n0.478119 0.869354 0.396637\n0.512238 0.869446 0.396881\n0.549744 0.869446 0.397095\n0.589691 0.869568 0.397308\n0.632324 0.869781 0.397644\n0.676910 0.869873 0.397949\n0.723328 0.869934 0.398163\n0.771271 0.869995 0.398376\n0.820282 0.870087 0.398590\n0.870117 0.870148 0.398773\n0.915527 0.870178 0.398956\n0.000000 0.915527 0.391541\n0.013611 0.915527 0.391815\n0.039124 0.915527 0.392090\n0.071594 0.915527 0.392365\n0.098450 0.915527 0.392670\n0.123444 0.915527 0.392975\n0.146790 0.915527 0.393250\n0.168610 0.915527 0.393524\n0.189301 0.915527 0.393799\n0.208923 0.915527 0.394104\n0.228088 0.915527 0.394348\n0.246826 0.915527 0.394623\n0.265472 0.915527 0.394867\n0.284332 0.915527 0.395111\n0.303619 0.915527 0.395386\n0.323914 0.915527 0.395660\n0.345215 0.915527 0.395874\n0.367981 0.915527 0.396149\n0.392548 0.915527 0.396393\n0.419037 0.915527 0.396637\n0.447632 0.915527 0.396851\n0.478973 0.915527 0.397095\n0.513184 0.915527 0.397308\n0.550385 0.915527 0.397644\n0.590546 0.915527 0.397949\n0.632935 0.915527 0.398163\n0.677582 0.915527 0.398376\n0.723907 0.915527 0.398560\n0.771759 0.915527 0.398773\n0.820496 0.915527 0.398956\n0.870331 0.915527 0.399109\n0.915527 0.915527 0.399323\n0.000000 0.000000 0.391815\n0.000000 0.000000 0.391968\n0.000000 0.000000 0.392120\n0.001373 0.000000 0.392273\n0.027863 0.000000 0.392456\n0.061127 0.000000 0.392609\n0.090515 0.000000 0.392792\n0.117767 0.000000 0.392975\n0.143127 0.000000 0.393158\n0.166840 0.000000 0.393372\n0.189270 0.000000 0.393555\n0.210541 0.000000 0.393768\n0.231049 0.000000 0.393982\n0.251526 0.000000 0.394165\n0.271759 0.000000 0.394409\n0.292572 0.000000 0.394623\n0.314117 0.000000 0.394836\n0.336884 0.000000 0.395050\n0.361328 0.000000 0.395294\n0.387695 0.000000 0.395508\n0.416321 0.000000 0.395782\n0.447723 0.000000 0.395996\n0.482361 0.000000 0.396240\n0.520447 0.000000 0.396484\n0.562195 0.000000 0.396759\n0.607147 0.000000 0.397034\n0.655090 0.000000 0.397278\n0.705261 0.000000 0.397644\n0.757233 0.000000 0.398010\n0.810822 0.000000 0.398285\n0.865356 0.000000 0.398560\n0.915527 0.000000 0.398804\n0.000000 0.000000 0.392090\n0.000000 0.000000 0.392273\n0.000000 0.000000 0.392426\n0.002502 0.000000 0.392609\n0.029297 0.000000 0.392792\n0.062683 0.000000 0.392975\n0.091858 0.000000 0.393158\n0.118988 0.000000 0.393341\n0.144257 0.000000 0.393555\n0.167877 0.000000 0.393768\n0.190247 0.000000 0.393951\n0.211395 0.000000 0.394165\n0.232025 0.000000 0.394379\n0.252380 0.000000 0.394592\n0.272644 0.000946 0.394806\n0.293457 0.002014 0.395050\n0.315033 0.003113 0.395264\n0.337769 0.004303 0.395508\n0.362122 0.005463 0.395752\n0.388367 0.006683 0.395996\n0.417114 0.007935 0.396240\n0.448578 0.009186 0.396484\n0.483093 0.010468 0.396759\n0.521393 0.011749 0.397003\n0.563141 0.013184 0.397278\n0.608002 0.014648 0.397644\n0.655701 0.015961 0.398010\n0.705750 0.017395 0.398254\n0.757812 0.018799 0.398529\n0.811188 0.020172 0.398804\n0.865509 0.021576 0.399078\n0.915527 0.023224 0.399384\n0.000000 0.014923 0.392426\n0.000000 0.015778 0.392609\n0.000000 0.016602 0.392792\n0.003815 0.017578 0.392975\n0.030640 0.018524 0.393158\n0.064240 0.019531 0.393341\n0.093262 0.020447 0.393524\n0.120331 0.021454 0.393768\n0.145477 0.022552 0.393951\n0.169037 0.023651 0.394135\n0.191345 0.024780 0.394379\n0.212402 0.025940 0.394592\n0.233002 0.027130 0.394806\n0.253174 0.028290 0.395020\n0.273529 0.029419 0.395264\n0.294189 0.030548 0.395508\n0.315887 0.031830 0.395752\n0.338684 0.033112 0.395966\n0.362976 0.034332 0.396210\n0.389313 0.035675 0.396454\n0.418091 0.037018 0.396759\n0.449554 0.038269 0.397003\n0.484070 0.039673 0.397247\n0.522125 0.041107 0.397614\n0.563873 0.042511 0.397980\n0.608917 0.043884 0.398254\n0.656494 0.045227 0.398499\n0.706482 0.047516 0.398804\n0.758209 0.049988 0.399078\n0.811462 0.052399 0.399353\n0.865662 0.055084 0.399628\n0.915527 0.057861 0.399933\n0.000000 0.044067 0.392792\n0.000000 0.044922 0.392944\n0.000000 0.045898 0.393127\n0.005280 0.047821 0.393341\n0.032227 0.049591 0.393524\n0.065918 0.051178 0.393768\n0.094727 0.053101 0.393951\n0.121704 0.054993 0.394135\n0.146912 0.057098 0.394379\n0.170166 0.058990 0.394562\n0.192383 0.060120 0.394806\n0.213409 0.061249 0.395020\n0.234009 0.062592 0.395233\n0.254089 0.063934 0.395477\n0.274384 0.065338 0.395752\n0.295135 0.066589 0.395966\n0.316650 0.067993 0.396210\n0.339569 0.069397 0.396454\n0.363953 0.070801 0.396729\n0.390289 0.072235 0.397003\n0.419067 0.073486 0.397247\n0.450531 0.074982 0.397614\n0.485077 0.076447 0.397980\n0.523102 0.077881 0.398224\n0.564819 0.079224 0.398499\n0.609589 0.080750 0.398773\n0.657104 0.082214 0.399048\n0.707001 0.083740 0.399323\n0.758636 0.085236 0.399628\n0.811646 0.086700 0.399902\n0.865814 0.088257 0.400177\n0.915527 0.089722 0.400421\n0.000000 0.081177 0.393127\n0.000000 0.082031 0.393341\n0.000000 0.083130 0.393524\n0.006805 0.084198 0.393768\n0.033722 0.085114 0.393951\n0.067474 0.086273 0.394135\n0.096344 0.087433 0.394348\n0.123077 0.088440 0.394562\n0.148163 0.089630 0.394806\n0.171356 0.090820 0.395020\n0.193512 0.092102 0.395233\n0.214508 0.093353 0.395477\n0.235016 0.094391 0.395752\n0.255066 0.095673 0.395966\n0.275269 0.096985 0.396210\n0.296112 0.098236 0.396454\n0.317657 0.099609 0.396729\n0.340363 0.100922 0.397003\n0.364868 0.102203 0.397247\n0.391235 0.103455 0.397614\n0.419952 0.104736 0.397949\n0.451447 0.106140 0.398224\n0.486084 0.107513 0.398499\n0.524109 0.108856 0.398773\n0.565796 0.110291 0.399048\n0.610504 0.111664 0.399323\n0.657959 0.113068 0.399597\n0.707733 0.114471 0.399872\n0.759277 0.115662 0.400146\n0.812195 0.117065 0.400421\n0.865936 0.118530 0.400726\n0.915527 0.119843 0.401001\n0.000000 0.112000 0.393524\n0.000000 0.113007 0.393738\n0.000000 0.113861 0.393951\n0.008392 0.114929 0.394135\n0.035370 0.115906 0.394348\n0.069336 0.116913 0.394562\n0.097870 0.118042 0.394806\n0.124695 0.119202 0.395020\n0.149445 0.120117 0.395233\n0.172577 0.121277 0.395477\n0.194580 0.122437 0.395721\n0.215576 0.123566 0.395966\n0.235779 0.124603 0.396179\n0.256073 0.125854 0.396454\n0.276245 0.127045 0.396729\n0.296997 0.128143 0.396973\n0.318604 0.129303 0.397247\n0.341339 0.130524 0.397552\n0.365784 0.131775 0.397949\n0.392151 0.133087 0.398224\n0.420868 0.134094 0.398499\n0.452332 0.135376 0.398773\n0.487091 0.136688 0.399048\n0.525116 0.137909 0.399323\n0.566589 0.139191 0.399597\n0.611450 0.140350 0.399872\n0.658783 0.141602 0.400116\n0.708282 0.142883 0.400391\n0.759644 0.144135 0.400726\n0.812531 0.145447 0.401001\n0.866089 0.146729 0.401276\n0.915527 0.147797 0.401550\n0.000000 0.140991 0.393951\n0.000000 0.141754 0.394135\n0.000000 0.142731 0.394348\n0.010101 0.143738 0.394562\n0.037109 0.144592 0.394775\n0.071228 0.145630 0.395020\n0.099640 0.146545 0.395233\n0.126129 0.147522 0.395477\n0.150818 0.148590 0.395721\n0.173920 0.149475 0.395935\n0.195831 0.150543 0.396179\n0.216705 0.151672 0.396423\n0.236847 0.152557 0.396729\n0.257080 0.153656 0.396973\n0.277252 0.154816 0.397217\n0.297882 0.155731 0.397552\n0.319550 0.156921 0.397949\n0.342377 0.158020 0.398224\n0.366669 0.158966 0.398468\n0.393097 0.160156 0.398773\n0.421906 0.161285 0.399017\n0.453400 0.162445 0.399323\n0.487915 0.163452 0.399597\n0.526154 0.164612 0.399872\n0.567566 0.165771 0.400116\n0.612152 0.166809 0.400391\n0.659424 0.167908 0.400696\n0.709015 0.169128 0.401001\n0.760284 0.170166 0.401245\n0.812805 0.171265 0.401550\n0.866302 0.172485 0.401825\n0.915527 0.173615 0.402100\n0.000000 0.167664 0.394348\n0.000000 0.168396 0.394562\n0.000000 0.169312 0.394775\n0.011810 0.170166 0.394989\n0.038910 0.171021 0.395233\n0.073120 0.171997 0.395477\n0.101288 0.172760 0.395721\n0.127777 0.173737 0.395935\n0.152191 0.174530 0.396179\n0.175323 0.175537 0.396423\n0.197021 0.176514 0.396729\n0.217804 0.177368 0.396973\n0.237976 0.178406 0.397217\n0.257935 0.179230 0.397552\n0.278290 0.180237 0.397919\n0.298859 0.181335 0.398193\n0.320496 0.182159 0.398468\n0.343384 0.183197 0.398743\n0.367706 0.184174 0.399017\n0.394104 0.185150 0.399292\n0.422913 0.186218 0.399567\n0.454437 0.187073 0.399872\n0.488983 0.188141 0.400116\n0.527039 0.189240 0.400391\n0.568542 0.190094 0.400696\n0.613098 0.191193 0.400970\n0.660309 0.192169 0.401245\n0.709564 0.193115 0.401520\n0.760712 0.194214 0.401825\n0.813263 0.195282 0.402100\n0.866608 0.196198 0.402374\n0.915527 0.197296 0.402710\n0.000000 0.192352 0.394775\n0.000000 0.193024 0.394989\n0.000000 0.193939 0.395203\n0.013641 0.194611 0.395447\n0.040771 0.195496 0.395721\n0.074951 0.196198 0.395905\n0.103088 0.197113 0.396179\n0.129364 0.197815 0.396423\n0.153809 0.198761 0.396698\n0.176575 0.199463 0.396942\n0.198273 0.200470 0.397217\n0.218964 0.201172 0.397552\n0.239044 0.202148 0.397919\n0.259003 0.202881 0.398193\n0.279297 0.203857 0.398438\n0.299835 0.204712 0.398743\n0.321381 0.205597 0.399017\n0.344177 0.206573 0.399292\n0.368744 0.207336 0.399567\n0.395172 0.208344 0.399872\n0.423981 0.209137 0.400116\n0.455536 0.210144 0.400391\n0.490051 0.211029 0.400665\n0.528076 0.211914 0.400970\n0.569580 0.212860 0.401245\n0.614075 0.213684 0.401520\n0.660950 0.214691 0.401794\n0.710297 0.215515 0.402100\n0.761169 0.216492 0.402374\n0.813538 0.217468 0.402710\n0.866760 0.218292 0.402954\n0.915527 0.219238 0.403259\n0.000000 0.215179 0.395203\n0.000000 0.215912 0.395447\n0.000000 0.216614 0.395721\n0.015503 0.217346 0.395905\n0.042664 0.218079 0.396149\n0.076935 0.218750 0.396423\n0.104980 0.219604 0.396698\n0.130890 0.220276 0.396942\n0.155212 0.221130 0.397217\n0.177917 0.221771 0.397491\n0.199463 0.222717 0.397919\n0.220123 0.223389 0.398163\n0.240173 0.224274 0.398438\n0.260101 0.224976 0.398743\n0.280121 0.225891 0.398987\n0.300934 0.226562 0.399261\n0.322418 0.227509 0.399567\n0.345215 0.228180 0.399841\n0.369812 0.229095 0.400085\n0.396240 0.229828 0.400391\n0.425079 0.230743 0.400665\n0.456573 0.231476 0.400940\n0.491089 0.232391 0.401215\n0.529083 0.233124 0.401520\n0.570557 0.234070 0.401794\n0.614899 0.234741 0.402100\n0.661804 0.235687 0.402374\n0.710876 0.236542 0.402679\n0.761810 0.237366 0.402954\n0.813873 0.238312 0.403229\n0.866882 0.239014 0.403503\n0.915527 0.239990 0.403809\n0.000000 0.236694 0.395691\n0.000000 0.237335 0.395905\n0.000000 0.237976 0.396149\n0.017548 0.238708 0.396423\n0.044586 0.239319 0.396667\n0.078979 0.240143 0.396942\n0.106873 0.240723 0.397186\n0.132690 0.241516 0.397491\n0.156616 0.242188 0.397888\n0.179260 0.242920 0.398163\n0.200745 0.243652 0.398438\n0.221283 0.244263 0.398743\n0.241302 0.245148 0.398987\n0.261169 0.245789 0.399261\n0.281219 0.246613 0.399536\n0.301941 0.247284 0.399811\n0.323486 0.248138 0.400085\n0.346252 0.248810 0.400391\n0.370850 0.249664 0.400665\n0.397308 0.250336 0.400940\n0.425995 0.251221 0.401215\n0.457520 0.251862 0.401489\n0.492188 0.252625 0.401794\n0.530182 0.253387 0.402069\n0.571472 0.254211 0.402374\n0.615723 0.254944 0.402649\n0.662689 0.255768 0.402954\n0.711639 0.256500 0.403229\n0.762238 0.257172 0.403473\n0.814117 0.258057 0.403809\n0.867035 0.258728 0.404083\n0.915527 0.259552 0.404358\n0.000000 0.257080 0.396149\n0.000000 0.257843 0.396423\n0.000000 0.258423 0.396667\n0.019592 0.259125 0.396912\n0.047394 0.259735 0.397186\n0.081085 0.260315 0.397430\n0.108582 0.261078 0.397888\n0.134308 0.261627 0.398163\n0.158264 0.262329 0.398438\n0.180664 0.263031 0.398743\n0.201996 0.263611 0.398987\n0.222504 0.264435 0.399261\n0.242432 0.265045 0.399536\n0.262268 0.265839 0.399811\n0.282318 0.266418 0.400085\n0.302948 0.267303 0.400391\n0.324554 0.267883 0.400665\n0.347321 0.268463 0.400940\n0.371796 0.269348 0.401184\n0.398285 0.269897 0.401489\n0.427094 0.270782 0.401794\n0.458618 0.271393 0.402069\n0.493286 0.272247 0.402344\n0.531281 0.272858 0.402649\n0.572449 0.273590 0.402924\n0.616730 0.274323 0.403229\n0.663391 0.274963 0.403473\n0.712341 0.275757 0.403778\n0.762909 0.276398 0.404083\n0.814575 0.277252 0.404358\n0.867157 0.277832 0.404663\n0.915527 0.278687 0.404938\n0.000000 0.277069 0.396667\n0.000000 0.277618 0.396912\n0.000000 0.278229 0.397156\n0.021606 0.278870 0.397430\n0.050903 0.279419 0.397888\n0.083221 0.280121 0.398163\n0.110596 0.280670 0.398407\n0.136108 0.281250 0.398712\n0.159821 0.282013 0.398956\n0.182220 0.282593 0.399231\n0.203278 0.283356 0.399536\n0.223724 0.283936 0.399811\n0.243591 0.284485 0.400085\n0.263397 0.285278 0.400360\n0.283356 0.285858 0.400635\n0.304077 0.286652 0.400940\n0.325653 0.287262 0.401184\n0.348450 0.287872 0.401459\n0.372833 0.288605 0.401764\n0.399292 0.289185 0.402069\n0.428192 0.290009 0.402344\n0.459656 0.290588 0.402649\n0.494385 0.291260 0.402893\n0.532349 0.291962 0.403198\n0.573456 0.292572 0.403473\n0.617706 0.293365 0.403778\n0.664246 0.293976 0.404083\n0.712952 0.294800 0.404358\n0.763275 0.295380 0.404663\n0.814972 0.295929 0.404938\n0.867310 0.296722 0.405212\n0.915527 0.297363 0.405487\n0.000000 0.296631 0.397156\n0.000000 0.297150 0.397430\n0.000000 0.297821 0.397888\n0.023865 0.298401 0.398132\n0.054840 0.298920 0.398407\n0.085327 0.299652 0.398712\n0.112549 0.300171 0.398956\n0.137817 0.300812 0.399231\n0.161499 0.301453 0.399506\n0.183594 0.301971 0.399811\n0.204681 0.302643 0.400085\n0.224945 0.303284 0.400360\n0.244751 0.303833 0.400604\n0.264496 0.304626 0.400909\n0.284515 0.305145 0.401184\n0.305145 0.305878 0.401459\n0.326691 0.306519 0.401764\n0.349487 0.307037 0.402069\n0.373901 0.307831 0.402344\n0.400391 0.308380 0.402649\n0.429199 0.309052 0.402893\n0.460754 0.309784 0.403198\n0.495300 0.310303 0.403473\n0.533264 0.311096 0.403748\n0.574524 0.311676 0.404053\n0.618408 0.312439 0.404358\n0.665070 0.313049 0.404633\n0.713531 0.313599 0.404938\n0.763794 0.314392 0.405212\n0.815216 0.314941 0.405457\n0.867462 0.315643 0.405762\n0.915527 0.316315 0.406036\n0.000000 0.316345 0.397858\n0.000000 0.316803 0.398132\n0.000122 0.317505 0.398407\n0.026001 0.318024 0.398712\n0.058746 0.318512 0.398956\n0.087524 0.319244 0.399231\n0.114532 0.319763 0.399506\n0.139557 0.320343 0.399780\n0.163025 0.321014 0.400085\n0.184998 0.321564 0.400360\n0.205994 0.322327 0.400604\n0.226166 0.322876 0.400879\n0.245941 0.323364 0.401154\n0.265686 0.324127 0.401459\n0.285614 0.324677 0.401733\n0.306091 0.325287 0.402069\n0.327759 0.325989 0.402344\n0.350616 0.326538 0.402618\n0.375000 0.327301 0.402893\n0.401459 0.327850 0.403168\n0.430328 0.328522 0.403442\n0.461884 0.329193 0.403748\n0.496368 0.329742 0.404022\n0.534271 0.330475 0.404358\n0.575562 0.331055 0.404633\n0.619385 0.331604 0.404907\n0.665741 0.332367 0.405212\n0.714264 0.332916 0.405426\n0.764313 0.333679 0.405731\n0.815521 0.334229 0.406036\n0.867737 0.334747 0.406311\n0.915527 0.335571 0.406616\n0.000000 0.336426 0.398407\n0.000000 0.337128 0.398712\n0.002075 0.337616 0.398926\n0.028168 0.338104 0.399231\n0.060944 0.338867 0.399506\n0.089691 0.339325 0.399780\n0.116364 0.339996 0.400085\n0.141388 0.340576 0.400360\n0.164520 0.341125 0.400604\n0.186584 0.341736 0.400879\n0.207428 0.342377 0.401154\n0.227386 0.342865 0.401459\n0.247101 0.343658 0.401733\n0.266785 0.344177 0.402039\n0.286713 0.344757 0.402344\n0.307190 0.345490 0.402618\n0.328827 0.345978 0.402863\n0.351715 0.346680 0.403168\n0.376099 0.347351 0.403442\n0.402588 0.347839 0.403748\n0.431458 0.348602 0.404022\n0.462982 0.349152 0.404327\n0.497437 0.349792 0.404633\n0.535370 0.350464 0.404907\n0.576477 0.351044 0.405182\n0.620361 0.351776 0.405426\n0.666626 0.352325 0.405731\n0.714966 0.352844 0.406036\n0.764771 0.353638 0.406311\n0.816010 0.354156 0.406586\n0.867981 0.354858 0.406891\n0.915527 0.355438 0.407135\n0.000000 0.357452 0.398926\n0.000000 0.358002 0.399231\n0.004211 0.358704 0.399506\n0.030457 0.359161 0.399780\n0.063324 0.359924 0.400085\n0.091888 0.360413 0.400330\n0.118408 0.360931 0.400604\n0.143066 0.361664 0.400879\n0.166260 0.362183 0.401154\n0.188019 0.362762 0.401428\n0.208710 0.363495 0.401733\n0.228638 0.364014 0.402039\n0.248291 0.364655 0.402313\n0.267975 0.365295 0.402618\n0.287872 0.365784 0.402863\n0.308289 0.366547 0.403168\n0.329773 0.367065 0.403412\n0.352661 0.367645 0.403717\n0.377228 0.368378 0.404022\n0.403687 0.368927 0.404297\n0.432587 0.369598 0.404602\n0.464111 0.370239 0.404907\n0.498596 0.370758 0.405182\n0.536438 0.371521 0.405426\n0.577393 0.372070 0.405731\n0.621094 0.372681 0.406006\n0.667480 0.373322 0.406311\n0.715546 0.373871 0.406586\n0.765472 0.374603 0.406860\n0.816315 0.375183 0.407135\n0.868134 0.375702 0.407410\n0.915527 0.376434 0.407684\n0.000000 0.379761 0.399475\n0.000000 0.380249 0.399780\n0.006256 0.380768 0.400055\n0.032654 0.381531 0.400330\n0.065887 0.382019 0.400574\n0.094055 0.382599 0.400879\n0.120422 0.383240 0.401154\n0.144989 0.383789 0.401428\n0.167816 0.384521 0.401733\n0.189423 0.385071 0.402039\n0.210022 0.385559 0.402313\n0.229889 0.386353 0.402588\n0.249512 0.386871 0.402863\n0.269073 0.387421 0.403137\n0.288971 0.388153 0.403412\n0.309418 0.388702 0.403717\n0.330933 0.389465 0.404022\n0.353790 0.390015 0.404297\n0.378326 0.390533 0.404602\n0.404785 0.391296 0.404907\n0.433655 0.391815 0.405182\n0.465240 0.392395 0.405426\n0.499664 0.393127 0.405701\n0.537506 0.393677 0.406006\n0.578400 0.394440 0.406281\n0.622040 0.394989 0.406586\n0.668152 0.395477 0.406860\n0.716278 0.396210 0.407104\n0.765839 0.396759 0.407410\n0.816559 0.397461 0.407684\n0.868225 0.398071 0.407928\n0.915527 0.398590 0.408203\n0.000000 0.403412 0.400055\n0.000000 0.403900 0.400330\n0.008575 0.404694 0.400574\n0.035065 0.405182 0.400848\n0.068237 0.405884 0.401123\n0.096283 0.406433 0.401398\n0.122406 0.407013 0.401733\n0.146729 0.407715 0.402039\n0.169495 0.408234 0.402283\n0.190857 0.408905 0.402588\n0.211334 0.409546 0.402863\n0.231140 0.410034 0.403137\n0.250671 0.410767 0.403412\n0.270264 0.411346 0.403687\n0.290100 0.411896 0.404022\n0.310516 0.412689 0.404297\n0.332001 0.413208 0.404572\n0.354858 0.413879 0.404877\n0.379425 0.414551 0.405182\n0.405945 0.415039 0.405396\n0.434784 0.415680 0.405701\n0.466309 0.416351 0.406006\n0.500763 0.416870 0.406281\n0.538544 0.417603 0.406586\n0.579437 0.418182 0.406860\n0.623016 0.418762 0.407104\n0.668976 0.419464 0.407379\n0.716827 0.419952 0.407684\n0.766205 0.420746 0.407928\n0.817017 0.421234 0.408203\n0.868408 0.421753 0.408478\n0.915527 0.422516 0.408691\n0.000000 0.429169 0.400574\n0.000000 0.429688 0.400848\n0.010895 0.430176 0.401123\n0.037354 0.430939 0.401398\n0.070648 0.431488 0.401703\n0.098480 0.432159 0.402008\n0.124420 0.432770 0.402283\n0.148499 0.433258 0.402588\n0.171051 0.433990 0.402832\n0.192444 0.434570 0.403137\n0.212677 0.435089 0.403381\n0.232513 0.435852 0.403687\n0.251892 0.436401 0.404022\n0.271393 0.437042 0.404297\n0.291229 0.437714 0.404572\n0.311646 0.438263 0.404877\n0.333099 0.438873 0.405151\n0.355896 0.439575 0.405396\n0.380554 0.440094 0.405701\n0.407013 0.440826 0.406006\n0.435913 0.441376 0.406250\n0.467468 0.442078 0.406555\n0.501892 0.442719 0.406860\n0.539581 0.443207 0.407104\n0.580475 0.443878 0.407379\n0.623993 0.444489 0.407684\n0.669586 0.445038 0.407898\n0.717499 0.445770 0.408173\n0.766876 0.446289 0.408447\n0.817352 0.446838 0.408691\n0.868530 0.447540 0.408997\n0.915527 0.448029 0.409271\n0.000000 0.456818 0.401123\n0.000000 0.457550 0.401398\n0.013184 0.458038 0.401703\n0.039734 0.458740 0.402008\n0.073242 0.459351 0.402283\n0.100708 0.459900 0.402557\n0.126312 0.460602 0.402832\n0.150391 0.461212 0.403137\n0.172607 0.461700 0.403381\n0.193878 0.462494 0.403687\n0.214172 0.462982 0.403992\n0.233856 0.463562 0.404266\n0.253113 0.464325 0.404572\n0.272552 0.464844 0.404846\n0.292358 0.465637 0.405151\n0.312744 0.466156 0.405396\n0.334229 0.466705 0.405701\n0.357025 0.467438 0.406006\n0.381653 0.467987 0.406250\n0.408142 0.468536 0.406525\n0.436829 0.469299 0.406830\n0.468323 0.469818 0.407104\n0.502777 0.470581 0.407379\n0.540497 0.471130 0.407684\n0.581268 0.471649 0.407898\n0.624695 0.472382 0.408173\n0.670441 0.472900 0.408447\n0.718079 0.473419 0.408691\n0.767242 0.474182 0.408997\n0.817566 0.474670 0.409271\n0.868683 0.475159 0.409485\n0.915527 0.475861 0.409729\n0.000000 0.487305 0.401703\n0.000000 0.487823 0.401978\n0.015594 0.488342 0.402252\n0.041992 0.489105 0.402557\n0.075623 0.489624 0.402802\n0.102905 0.490173 0.403107\n0.128357 0.490936 0.403381\n0.152008 0.491455 0.403687\n0.174347 0.492188 0.403992\n0.195312 0.492767 0.404266\n0.215515 0.493317 0.404572\n0.235107 0.494049 0.404846\n0.254242 0.494629 0.405151\n0.273712 0.495209 0.405396\n0.293457 0.495911 0.405701\n0.313843 0.496429 0.406006\n0.335297 0.497040 0.406250\n0.358124 0.497711 0.406525\n0.382538 0.498291 0.406830\n0.409271 0.499023 0.407074\n0.437927 0.499542 0.407379\n0.469391 0.500061 0.407684\n0.503876 0.500793 0.407898\n0.541565 0.501343 0.408173\n0.582245 0.501862 0.408447\n0.625610 0.502594 0.408691\n0.671265 0.503082 0.408997\n0.718811 0.503693 0.409241\n0.767792 0.504333 0.409485\n0.817871 0.504822 0.409729\n0.868866 0.505493 0.409973\n0.915527 0.506012 0.410248\n0.000000 0.520264 0.402252\n0.000000 0.520996 0.402557\n0.018036 0.521515 0.402802\n0.044403 0.522186 0.403107\n0.077942 0.522797 0.403381\n0.105103 0.523346 0.403687\n0.130371 0.524109 0.403992\n0.153900 0.524628 0.404266\n0.175812 0.525146 0.404541\n0.196960 0.525879 0.404846\n0.216827 0.526428 0.405121\n0.236328 0.526947 0.405365\n0.255463 0.527740 0.405701\n0.274811 0.528259 0.405975\n0.294617 0.528992 0.406250\n0.314972 0.529541 0.406525\n0.336395 0.530060 0.406799\n0.359192 0.530792 0.407074\n0.383575 0.531342 0.407349\n0.410126 0.531830 0.407654\n0.438995 0.532593 0.407898\n0.470520 0.533081 0.408142\n0.504883 0.533600 0.408447\n0.542633 0.534302 0.408691\n0.583221 0.534790 0.408966\n0.626495 0.535400 0.409241\n0.671906 0.536041 0.409485\n0.719299 0.536499 0.409729\n0.768188 0.537018 0.409973\n0.818085 0.537720 0.410217\n0.869080 0.538177 0.410461\n0.915527 0.538666 0.410706\n0.000000 0.556549 0.402802\n0.000000 0.557098 0.403076\n0.020477 0.557831 0.403381\n0.047760 0.558289 0.403687\n0.080353 0.558929 0.403961\n0.107269 0.559570 0.404266\n0.132385 0.560120 0.404541\n0.155518 0.560577 0.404846\n0.177582 0.561371 0.405121\n0.198273 0.561859 0.405365\n0.218140 0.562500 0.405670\n0.237610 0.563141 0.405975\n0.256622 0.563629 0.406219\n0.276001 0.564362 0.406525\n0.295502 0.564880 0.406799\n0.316071 0.565338 0.407043\n0.337494 0.566040 0.407349\n0.360321 0.566589 0.407654\n0.384705 0.567078 0.407867\n0.411224 0.567780 0.408142\n0.440063 0.568298 0.408417\n0.471527 0.568756 0.408661\n0.505920 0.569489 0.408966\n0.543610 0.570007 0.409210\n0.584229 0.570435 0.409454\n0.627197 0.571136 0.409729\n0.672699 0.571625 0.409973\n0.720032 0.572052 0.410217\n0.768555 0.572632 0.410431\n0.818604 0.573151 0.410706\n0.869293 0.573669 0.410950\n0.915527 0.574097 0.411163\n0.000000 0.595612 0.403381\n0.000000 0.596161 0.403687\n0.022919 0.596832 0.403961\n0.051819 0.597260 0.404236\n0.082794 0.597961 0.404510\n0.109436 0.598511 0.404816\n0.134125 0.598969 0.405121\n0.157349 0.599579 0.405365\n0.179077 0.600159 0.405670\n0.199677 0.600616 0.405975\n0.219421 0.601166 0.406219\n0.238770 0.601837 0.406494\n0.257812 0.602264 0.406799\n0.277130 0.602844 0.407043\n0.296600 0.603455 0.407349\n0.317139 0.603912 0.407623\n0.338562 0.604462 0.407867\n0.361359 0.605103 0.408142\n0.385773 0.605560 0.408386\n0.412262 0.606018 0.408661\n0.441132 0.606689 0.408936\n0.472626 0.607147 0.409210\n0.506958 0.607574 0.409454\n0.544617 0.608154 0.409698\n0.584961 0.608673 0.409973\n0.628052 0.609131 0.410217\n0.673248 0.609619 0.410431\n0.720459 0.610168 0.410675\n0.769165 0.610565 0.410950\n0.818817 0.610992 0.411163\n0.869415 0.611633 0.411407\n0.915527 0.612030 0.411652\n0.000000 0.637268 0.403961\n0.000183 0.637695 0.404236\n0.025299 0.638153 0.404510\n0.056000 0.638855 0.404816\n0.085236 0.639221 0.405090\n0.111572 0.639709 0.405365\n0.136139 0.640381 0.405670\n0.158966 0.640839 0.405945\n0.180542 0.641235 0.406219\n0.201111 0.641663 0.406494\n0.220734 0.642334 0.406769\n0.240021 0.642761 0.407043\n0.258942 0.643188 0.407349\n0.278259 0.643860 0.407623\n0.297699 0.644287 0.407867\n0.318024 0.644684 0.408112\n0.339569 0.645142 0.408386\n0.362457 0.645782 0.408661\n0.386841 0.646149 0.408936\n0.413300 0.646545 0.409210\n0.442230 0.647186 0.409454\n0.473694 0.647583 0.409698\n0.508026 0.647980 0.409973\n0.545471 0.648407 0.410217\n0.585876 0.648956 0.410431\n0.628937 0.649353 0.410675\n0.674011 0.649750 0.410950\n0.720917 0.650116 0.411163\n0.769531 0.650696 0.411377\n0.819092 0.651062 0.411621\n0.869507 0.651428 0.411865\n0.915527 0.651733 0.412048\n0.000000 0.680756 0.404510\n0.002289 0.681335 0.404785\n0.027740 0.681702 0.405090\n0.059692 0.682129 0.405365\n0.087524 0.682617 0.405640\n0.113739 0.683075 0.405945\n0.138092 0.683472 0.406219\n0.160797 0.683868 0.406494\n0.182220 0.684235 0.406769\n0.202545 0.684845 0.407013\n0.222137 0.685211 0.407318\n0.241211 0.685577 0.407623\n0.260132 0.686005 0.407837\n0.279358 0.686523 0.408112\n0.298798 0.686920 0.408386\n0.319031 0.687225 0.408661\n0.340485 0.687775 0.408936\n0.363312 0.688202 0.409210\n0.387909 0.688568 0.409454\n0.414398 0.688904 0.409698\n0.443268 0.689209 0.409943\n0.474670 0.689819 0.410187\n0.509003 0.690125 0.410431\n0.546326 0.690491 0.410645\n0.586792 0.690826 0.410950\n0.629547 0.691345 0.411163\n0.674591 0.691681 0.411377\n0.721588 0.691956 0.411621\n0.769867 0.692291 0.411865\n0.819336 0.692566 0.412048\n0.869629 0.693146 0.412262\n0.915527 0.693420 0.412476\n0.000000 0.726105 0.405060\n0.004608 0.726379 0.405334\n0.030151 0.726715 0.405640\n0.062195 0.727264 0.405914\n0.089905 0.727539 0.406189\n0.115845 0.727875 0.406494\n0.139832 0.728210 0.406769\n0.162354 0.728546 0.407013\n0.183685 0.729095 0.407318\n0.203979 0.729401 0.407593\n0.223450 0.729675 0.407837\n0.242401 0.729980 0.408112\n0.261230 0.730286 0.408386\n0.280212 0.730804 0.408661\n0.299835 0.731079 0.408905\n0.320099 0.731415 0.409180\n0.341522 0.731689 0.409424\n0.364349 0.731964 0.409698\n0.388916 0.732513 0.409943\n0.415405 0.732758 0.410187\n0.444031 0.733063 0.410400\n0.475464 0.733307 0.410645\n0.509888 0.733582 0.410919\n0.547333 0.734070 0.411133\n0.587555 0.734344 0.411377\n0.630402 0.734589 0.411621\n0.675293 0.734863 0.411835\n0.722015 0.735107 0.412048\n0.770264 0.735413 0.412262\n0.819702 0.735840 0.412476\n0.869751 0.736053 0.412628\n0.915527 0.736267 0.412872\n0.000000 0.772522 0.405640\n0.006927 0.772736 0.405914\n0.032532 0.773010 0.406158\n0.064880 0.773407 0.406464\n0.092133 0.773743 0.406769\n0.117859 0.773956 0.407013\n0.141724 0.774170 0.407318\n0.164154 0.774414 0.407593\n0.185181 0.774689 0.407837\n0.205261 0.775116 0.408081\n0.224731 0.775360 0.408356\n0.243591 0.775574 0.408661\n0.262360 0.775818 0.408905\n0.281372 0.776062 0.409180\n0.300934 0.776306 0.409424\n0.321167 0.776642 0.409668\n0.342590 0.776917 0.409912\n0.365326 0.777161 0.410187\n0.389954 0.777374 0.410400\n0.416382 0.777618 0.410645\n0.445038 0.777802 0.410919\n0.476471 0.778015 0.411133\n0.510773 0.778229 0.411377\n0.548218 0.778564 0.411621\n0.588348 0.778809 0.411835\n0.631042 0.779022 0.412048\n0.675934 0.779205 0.412262\n0.722626 0.779388 0.412445\n0.770721 0.779572 0.412628\n0.819977 0.779755 0.412872\n0.869812 0.779968 0.413055\n0.915527 0.780212 0.413269\n0.000000 0.819885 0.406158\n0.009308 0.820068 0.406433\n0.035004 0.820282 0.406738\n0.067200 0.820404 0.407013\n0.094360 0.820557 0.407318\n0.119781 0.820770 0.407593\n0.143646 0.820892 0.407837\n0.165649 0.821106 0.408081\n0.186707 0.821259 0.408356\n0.206604 0.821564 0.408630\n0.225922 0.821808 0.408905\n0.244720 0.821899 0.409180\n0.263458 0.822113 0.409424\n0.282410 0.822266 0.409668\n0.301971 0.822388 0.409912\n0.322205 0.822510 0.410187\n0.343597 0.822693 0.410370\n0.366333 0.822815 0.410645\n0.390747 0.823120 0.410919\n0.417206 0.823364 0.411102\n0.446045 0.823456 0.411346\n0.477448 0.823608 0.411621\n0.511719 0.823792 0.411835\n0.548920 0.823853 0.412018\n0.589233 0.823975 0.412231\n0.631744 0.824127 0.412445\n0.676544 0.824249 0.412628\n0.723053 0.824402 0.412872\n0.770996 0.824463 0.413055\n0.820160 0.824768 0.413269\n0.869904 0.824921 0.413422\n0.915527 0.825043 0.413635\n0.000000 0.867554 0.406738\n0.011749 0.867645 0.407013\n0.037323 0.867737 0.407318\n0.069672 0.867798 0.407593\n0.096558 0.867920 0.407806\n0.121826 0.868103 0.408081\n0.145264 0.868286 0.408356\n0.167358 0.868378 0.408630\n0.188110 0.868439 0.408905\n0.207855 0.868530 0.409149\n0.227112 0.868622 0.409424\n0.245911 0.868713 0.409668\n0.264557 0.868744 0.409912\n0.283447 0.868835 0.410156\n0.302887 0.868896 0.410370\n0.323181 0.868988 0.410645\n0.344574 0.869049 0.410919\n0.367340 0.869110 0.411102\n0.391724 0.869171 0.411346\n0.418213 0.869263 0.411621\n0.447021 0.869293 0.411835\n0.478333 0.869385 0.412018\n0.512512 0.869446 0.412231\n0.549866 0.869568 0.412445\n0.589844 0.869720 0.412628\n0.632538 0.869781 0.412842\n0.677002 0.869934 0.413055\n0.723511 0.869995 0.413269\n0.771332 0.870087 0.413422\n0.820312 0.870087 0.413635\n0.870117 0.870148 0.413818\n0.915527 0.870178 0.413971\n0.000000 0.915527 0.407288\n0.014038 0.915527 0.407562\n0.039673 0.915527 0.407806\n0.072174 0.915527 0.408081\n0.098785 0.915527 0.408356\n0.123810 0.915527 0.408630\n0.147095 0.915527 0.408875\n0.168854 0.915527 0.409149\n0.189484 0.915527 0.409393\n0.209137 0.915527 0.409668\n0.228302 0.915527 0.409912\n0.247009 0.915527 0.410156\n0.265656 0.915527 0.410370\n0.284515 0.915527 0.410645\n0.303833 0.915527 0.410889\n0.324188 0.915527 0.411102\n0.345428 0.915527 0.411316\n0.368134 0.915527 0.411591\n0.392670 0.915527 0.411804\n0.419159 0.915527 0.412018\n0.447906 0.915527 0.412231\n0.479126 0.915527 0.412445\n0.513275 0.915527 0.412628\n0.550537 0.915527 0.412842\n0.590637 0.915527 0.413055\n0.633026 0.915527 0.413269\n0.677673 0.915527 0.413422\n0.723999 0.915527 0.413635\n0.771820 0.915527 0.413788\n0.820526 0.915527 0.413971\n0.870331 0.915527 0.414124\n0.915527 0.915527 0.414276\n0.000000 0.000000 0.408264\n0.000000 0.000000 0.408386\n0.000000 0.000000 0.408569\n0.001526 0.000000 0.408691\n0.028076 0.000000 0.408844\n0.061523 0.000000 0.409027\n0.090729 0.000000 0.409210\n0.118042 0.000000 0.409363\n0.143463 0.000000 0.409515\n0.167084 0.000000 0.409698\n0.189392 0.000000 0.409882\n0.210785 0.000000 0.410065\n0.231262 0.000000 0.410278\n0.251617 0.000000 0.410461\n0.272003 0.000000 0.410645\n0.292725 0.000000 0.410889\n0.314240 0.000000 0.411072\n0.336975 0.000000 0.411316\n0.361450 0.000000 0.411530\n0.387817 0.000000 0.411743\n0.416565 0.000000 0.411987\n0.447998 0.000000 0.412170\n0.482452 0.000000 0.412415\n0.520569 0.000000 0.412628\n0.562347 0.000000 0.412903\n0.607239 0.000000 0.413116\n0.655182 0.000000 0.413361\n0.705353 0.000000 0.413605\n0.757263 0.000000 0.413879\n0.810913 0.000000 0.414093\n0.865356 0.000000 0.414337\n0.915527 0.000000 0.414642\n0.000000 0.000000 0.408569\n0.000000 0.000000 0.408691\n0.000000 0.000000 0.408844\n0.002808 0.000000 0.408997\n0.029541 0.000000 0.409180\n0.062958 0.000000 0.409363\n0.092041 0.000000 0.409515\n0.119293 0.000000 0.409698\n0.144531 0.000000 0.409882\n0.168182 0.000000 0.410065\n0.190399 0.000000 0.410278\n0.211731 0.000000 0.410431\n0.232147 0.000000 0.410645\n0.252533 0.000275 0.410889\n0.272766 0.001282 0.411072\n0.293610 0.002350 0.411316\n0.315155 0.003479 0.411530\n0.337891 0.004639 0.411743\n0.362366 0.005890 0.411987\n0.388641 0.007202 0.412170\n0.417267 0.008362 0.412384\n0.448700 0.009766 0.412628\n0.483398 0.011017 0.412872\n0.521515 0.012360 0.413116\n0.563293 0.013702 0.413330\n0.608124 0.015045 0.413605\n0.655823 0.016449 0.413879\n0.705841 0.017822 0.414093\n0.757935 0.019379 0.414337\n0.811218 0.020844 0.414612\n0.865509 0.022247 0.414825\n0.915527 0.023682 0.415100\n0.000000 0.015167 0.408844\n0.000000 0.016113 0.408997\n0.000000 0.017029 0.409180\n0.004181 0.017822 0.409332\n0.030914 0.018860 0.409515\n0.064545 0.019867 0.409698\n0.093567 0.020935 0.409882\n0.120575 0.021912 0.410065\n0.145782 0.022919 0.410248\n0.169189 0.024017 0.410431\n0.191498 0.025146 0.410645\n0.212555 0.026306 0.410858\n0.233124 0.027466 0.411072\n0.253448 0.028717 0.411316\n0.273712 0.029907 0.411530\n0.294464 0.031128 0.411743\n0.316071 0.032379 0.411987\n0.338806 0.033630 0.412170\n0.363098 0.034943 0.412384\n0.389465 0.036224 0.412628\n0.418213 0.037537 0.412872\n0.449707 0.038879 0.413116\n0.484192 0.040192 0.413330\n0.522339 0.041595 0.413605\n0.564117 0.042969 0.413849\n0.609039 0.044312 0.414062\n0.656647 0.045746 0.414307\n0.706573 0.048340 0.414612\n0.758301 0.050690 0.414825\n0.811493 0.053284 0.415100\n0.865662 0.056091 0.415344\n0.915527 0.058777 0.415619\n0.000000 0.044373 0.409180\n0.000000 0.045319 0.409332\n0.000000 0.046875 0.409515\n0.005493 0.048370 0.409698\n0.032440 0.050110 0.409882\n0.066132 0.052002 0.410034\n0.095093 0.053864 0.410248\n0.121918 0.055664 0.410431\n0.147064 0.057770 0.410645\n0.170380 0.059357 0.410858\n0.192566 0.060638 0.411072\n0.213562 0.061859 0.411285\n0.234131 0.063049 0.411499\n0.254211 0.064362 0.411743\n0.274597 0.065735 0.411957\n0.295258 0.067047 0.412170\n0.316895 0.068390 0.412384\n0.339783 0.069824 0.412628\n0.364044 0.071259 0.412842\n0.390442 0.072632 0.413116\n0.419250 0.074066 0.413330\n0.450684 0.075562 0.413605\n0.485168 0.076965 0.413849\n0.523285 0.078430 0.414062\n0.564972 0.079956 0.414307\n0.609741 0.081421 0.414581\n0.657257 0.082886 0.414825\n0.707092 0.084381 0.415070\n0.758789 0.085907 0.415344\n0.811829 0.087433 0.415619\n0.865814 0.088928 0.415863\n0.915527 0.090454 0.416107\n0.000000 0.081482 0.409515\n0.000000 0.082458 0.409698\n0.000000 0.083435 0.409882\n0.007050 0.084564 0.410034\n0.034119 0.085693 0.410248\n0.067932 0.086609 0.410431\n0.096558 0.087799 0.410645\n0.123444 0.089050 0.410858\n0.148376 0.090179 0.411041\n0.171722 0.091187 0.411285\n0.193695 0.092499 0.411499\n0.214630 0.093719 0.411713\n0.235138 0.094971 0.411957\n0.255188 0.096252 0.412140\n0.275452 0.097412 0.412384\n0.296234 0.098694 0.412628\n0.317749 0.100006 0.412842\n0.340485 0.101318 0.413086\n0.365021 0.102661 0.413330\n0.391418 0.104004 0.413574\n0.420227 0.105316 0.413849\n0.451691 0.106689 0.414062\n0.486206 0.107880 0.414307\n0.524292 0.109314 0.414581\n0.565918 0.110718 0.414825\n0.610657 0.112091 0.415070\n0.658081 0.113525 0.415344\n0.707825 0.114899 0.415619\n0.759338 0.116272 0.415863\n0.812286 0.117737 0.416107\n0.865936 0.119171 0.416351\n0.915527 0.120361 0.416626\n0.000000 0.112274 0.409882\n0.000000 0.113312 0.410034\n0.000000 0.114380 0.410248\n0.008636 0.115234 0.410431\n0.035797 0.116333 0.410645\n0.069611 0.117310 0.410858\n0.098297 0.118378 0.411041\n0.124908 0.119507 0.411285\n0.149658 0.120544 0.411469\n0.172882 0.121613 0.411713\n0.194855 0.122803 0.411926\n0.215759 0.123993 0.412109\n0.236176 0.125183 0.412354\n0.256195 0.126160 0.412598\n0.276398 0.127411 0.412842\n0.297211 0.128632 0.413086\n0.318726 0.129883 0.413300\n0.341492 0.130920 0.413574\n0.366028 0.132202 0.413849\n0.392456 0.133423 0.414062\n0.420990 0.134735 0.414307\n0.452515 0.135986 0.414581\n0.487244 0.137054 0.414795\n0.525269 0.138336 0.415070\n0.566895 0.139587 0.415314\n0.611572 0.140900 0.415619\n0.658936 0.142059 0.415863\n0.708466 0.143280 0.416107\n0.759766 0.144562 0.416351\n0.812531 0.145905 0.416626\n0.866089 0.147156 0.416931\n0.915527 0.148376 0.417175\n0.000000 0.141266 0.410248\n0.000000 0.142212 0.410431\n0.000000 0.143036 0.410645\n0.010315 0.144073 0.410858\n0.037537 0.144867 0.411041\n0.071472 0.145935 0.411255\n0.099884 0.147003 0.411469\n0.126404 0.147827 0.411713\n0.151001 0.148895 0.411926\n0.174225 0.150024 0.412109\n0.196014 0.150909 0.412354\n0.216858 0.151978 0.412598\n0.237152 0.153015 0.412842\n0.257233 0.154022 0.413055\n0.277374 0.155151 0.413300\n0.298187 0.156281 0.413574\n0.319702 0.157257 0.413818\n0.342499 0.158386 0.414062\n0.366974 0.159546 0.414307\n0.393341 0.160522 0.414551\n0.422058 0.161652 0.414795\n0.453552 0.162842 0.415039\n0.488281 0.163879 0.415314\n0.526337 0.164948 0.415588\n0.567749 0.166107 0.415863\n0.612427 0.167297 0.416107\n0.659607 0.168304 0.416351\n0.709106 0.169464 0.416595\n0.760376 0.170624 0.416931\n0.812836 0.171844 0.417175\n0.866302 0.172791 0.417450\n0.915527 0.173981 0.417694\n0.000000 0.167908 0.410645\n0.000000 0.168854 0.410858\n0.000000 0.169556 0.411041\n0.012085 0.170502 0.411255\n0.039246 0.171295 0.411469\n0.073425 0.172241 0.411713\n0.101715 0.173126 0.411926\n0.128082 0.174072 0.412109\n0.152618 0.175018 0.412354\n0.175507 0.175842 0.412567\n0.197205 0.176849 0.412811\n0.218018 0.177673 0.413055\n0.238251 0.178711 0.413300\n0.258209 0.179718 0.413574\n0.278412 0.180573 0.413818\n0.298981 0.181671 0.414062\n0.320709 0.182495 0.414307\n0.343506 0.183533 0.414551\n0.367859 0.184631 0.414795\n0.394287 0.185486 0.415039\n0.423096 0.186554 0.415314\n0.454620 0.187592 0.415588\n0.489197 0.188477 0.415833\n0.527252 0.189606 0.416077\n0.568695 0.190399 0.416321\n0.613251 0.191498 0.416595\n0.660400 0.192627 0.416901\n0.709656 0.193481 0.417145\n0.760803 0.194550 0.417419\n0.813324 0.195648 0.417694\n0.866669 0.196503 0.417969\n0.915527 0.197632 0.418243\n0.000000 0.192627 0.411011\n0.000000 0.193268 0.411255\n0.000000 0.194153 0.411469\n0.013947 0.194855 0.411682\n0.041199 0.195740 0.411926\n0.075470 0.196442 0.412109\n0.103516 0.197357 0.412354\n0.129608 0.198059 0.412567\n0.153992 0.199005 0.412811\n0.176788 0.199829 0.413055\n0.198425 0.200684 0.413300\n0.219147 0.201447 0.413544\n0.239258 0.202393 0.413788\n0.259247 0.203278 0.414062\n0.279480 0.204163 0.414276\n0.300018 0.205139 0.414520\n0.321533 0.205902 0.414795\n0.344421 0.206879 0.415039\n0.368927 0.207642 0.415314\n0.395325 0.208618 0.415588\n0.424194 0.209595 0.415833\n0.455658 0.210388 0.416077\n0.490173 0.211395 0.416321\n0.528229 0.212189 0.416595\n0.569763 0.213196 0.416901\n0.614197 0.213989 0.417145\n0.661255 0.214996 0.417419\n0.710388 0.215973 0.417694\n0.761230 0.216797 0.417938\n0.813599 0.217804 0.418213\n0.866791 0.218567 0.418457\n0.915527 0.219574 0.418762\n0.000000 0.215424 0.411469\n0.000000 0.216187 0.411682\n0.000000 0.216827 0.411896\n0.015961 0.217682 0.412109\n0.043091 0.218323 0.412354\n0.077301 0.219055 0.412567\n0.105255 0.219818 0.412811\n0.131378 0.220551 0.413055\n0.155457 0.221405 0.413300\n0.178131 0.222137 0.413544\n0.199646 0.222931 0.413788\n0.220306 0.223633 0.414062\n0.240326 0.224518 0.414276\n0.260315 0.225250 0.414520\n0.280365 0.226135 0.414764\n0.301086 0.226959 0.415039\n0.322571 0.227722 0.415283\n0.345490 0.228668 0.415588\n0.369965 0.229370 0.415833\n0.396393 0.230133 0.416077\n0.425232 0.231018 0.416321\n0.456757 0.231934 0.416595\n0.491272 0.232697 0.416901\n0.529266 0.233643 0.417145\n0.570740 0.234314 0.417419\n0.615143 0.235291 0.417664\n0.661926 0.235992 0.417938\n0.711060 0.236908 0.418213\n0.761902 0.237640 0.418457\n0.813873 0.238586 0.418732\n0.866913 0.239288 0.419006\n0.915527 0.240204 0.419281\n0.000000 0.237000 0.411896\n0.000000 0.237579 0.412079\n0.000000 0.238373 0.412323\n0.017944 0.238953 0.412567\n0.044983 0.239655 0.412781\n0.079376 0.240326 0.413025\n0.107208 0.240967 0.413300\n0.132935 0.241791 0.413513\n0.157104 0.242401 0.413788\n0.179718 0.243256 0.414032\n0.200928 0.243896 0.414246\n0.221497 0.244690 0.414520\n0.241455 0.245361 0.414764\n0.261322 0.246033 0.415009\n0.281433 0.246887 0.415283\n0.302124 0.247528 0.415558\n0.323639 0.248383 0.415833\n0.346436 0.249023 0.416077\n0.371002 0.249878 0.416290\n0.397461 0.250580 0.416595\n0.426300 0.251465 0.416901\n0.457825 0.252075 0.417114\n0.492371 0.252991 0.417419\n0.530365 0.253632 0.417664\n0.571747 0.254547 0.417938\n0.615906 0.255188 0.418213\n0.662811 0.256104 0.418457\n0.711731 0.256775 0.418732\n0.762299 0.257507 0.419006\n0.814209 0.258301 0.419250\n0.867096 0.259125 0.419556\n0.915527 0.259827 0.419830\n0.000000 0.257355 0.412323\n0.000000 0.258087 0.412567\n0.000000 0.258606 0.412781\n0.019928 0.259399 0.413025\n0.048157 0.259918 0.413300\n0.081390 0.260681 0.413513\n0.109100 0.261292 0.413788\n0.134735 0.261841 0.414032\n0.158569 0.262695 0.414246\n0.181091 0.263214 0.414520\n0.202209 0.264038 0.414764\n0.222717 0.264679 0.415009\n0.242615 0.265350 0.415283\n0.262482 0.266083 0.415558\n0.282501 0.266693 0.415833\n0.303192 0.267487 0.416046\n0.324707 0.268097 0.416290\n0.347504 0.268951 0.416595\n0.372101 0.269562 0.416870\n0.398560 0.270264 0.417114\n0.427368 0.270996 0.417389\n0.458893 0.271667 0.417664\n0.493439 0.272461 0.417938\n0.531403 0.273071 0.418213\n0.572632 0.273926 0.418457\n0.616852 0.274567 0.418732\n0.663666 0.275360 0.419006\n0.712494 0.276001 0.419250\n0.762939 0.276794 0.419556\n0.814697 0.277466 0.419830\n0.867188 0.278107 0.420044\n0.915527 0.278931 0.420349\n0.000000 0.277313 0.412781\n0.000000 0.277802 0.413025\n0.000000 0.278534 0.413300\n0.022095 0.279053 0.413513\n0.051666 0.279633 0.413757\n0.083496 0.280365 0.414001\n0.110962 0.280914 0.414246\n0.136353 0.281555 0.414490\n0.160095 0.282257 0.414764\n0.182404 0.282806 0.415009\n0.203583 0.283569 0.415283\n0.223907 0.284119 0.415558\n0.243774 0.284760 0.415802\n0.263550 0.285492 0.416046\n0.283539 0.286072 0.416290\n0.304260 0.286865 0.416565\n0.325775 0.287415 0.416840\n0.348572 0.288269 0.417114\n0.373169 0.288818 0.417358\n0.399628 0.289490 0.417664\n0.428467 0.290222 0.417938\n0.459808 0.290802 0.418182\n0.494537 0.291595 0.418427\n0.532471 0.292206 0.418732\n0.573608 0.292908 0.419006\n0.617859 0.293579 0.419250\n0.664368 0.294189 0.419556\n0.713013 0.294983 0.419800\n0.763367 0.295563 0.420044\n0.815002 0.296356 0.420319\n0.867340 0.296967 0.420593\n0.915527 0.297577 0.420868\n0.000000 0.296814 0.413269\n0.000000 0.297333 0.413513\n0.000000 0.298065 0.413757\n0.024200 0.298553 0.414001\n0.055420 0.299103 0.414215\n0.085663 0.299835 0.414490\n0.112885 0.300385 0.414734\n0.138184 0.301117 0.414978\n0.161774 0.301636 0.415283\n0.183807 0.302155 0.415558\n0.204987 0.302948 0.415771\n0.225128 0.303467 0.416046\n0.244934 0.304047 0.416290\n0.264709 0.304810 0.416565\n0.284668 0.305389 0.416840\n0.305359 0.306122 0.417084\n0.326874 0.306732 0.417358\n0.349701 0.307251 0.417633\n0.374176 0.308044 0.417908\n0.400726 0.308594 0.418182\n0.429413 0.309418 0.418427\n0.460938 0.309967 0.418701\n0.495575 0.310608 0.418976\n0.533569 0.311310 0.419250\n0.574677 0.311859 0.419556\n0.618713 0.312683 0.419800\n0.665222 0.313232 0.420044\n0.713776 0.313843 0.420319\n0.763977 0.314606 0.420593\n0.815277 0.315155 0.420868\n0.867493 0.315948 0.421143\n0.915527 0.316498 0.421387\n0.000000 0.316528 0.413727\n0.000000 0.317047 0.414001\n0.000488 0.317688 0.414215\n0.026428 0.318207 0.414490\n0.059113 0.318695 0.414734\n0.087830 0.319427 0.414978\n0.114868 0.319977 0.415283\n0.139832 0.320679 0.415527\n0.163269 0.321228 0.415771\n0.185364 0.321747 0.416046\n0.206268 0.322510 0.416290\n0.226379 0.323029 0.416565\n0.246094 0.323761 0.416840\n0.265808 0.324310 0.417084\n0.285736 0.324890 0.417358\n0.306305 0.325653 0.417633\n0.327972 0.326202 0.417908\n0.350769 0.326782 0.418152\n0.375153 0.327515 0.418396\n0.401642 0.328064 0.418701\n0.430511 0.328857 0.418976\n0.462036 0.329376 0.419250\n0.496674 0.329956 0.419525\n0.534454 0.330688 0.419800\n0.575714 0.331268 0.420013\n0.619568 0.331970 0.420319\n0.665955 0.332581 0.420593\n0.714325 0.333130 0.420868\n0.764404 0.333893 0.421143\n0.815643 0.334412 0.421387\n0.867737 0.335236 0.421661\n0.915527 0.335785 0.421906\n0.000000 0.336578 0.414215\n0.000000 0.337280 0.414490\n0.002380 0.337799 0.414734\n0.028656 0.338440 0.414978\n0.061462 0.339020 0.415253\n0.090027 0.339539 0.415527\n0.116913 0.340240 0.415771\n0.141693 0.340790 0.416046\n0.165009 0.341309 0.416290\n0.186829 0.342041 0.416565\n0.207581 0.342560 0.416840\n0.227600 0.343140 0.417084\n0.247284 0.343842 0.417358\n0.266937 0.344391 0.417633\n0.286896 0.345154 0.417908\n0.307373 0.345673 0.418152\n0.329041 0.346191 0.418396\n0.351868 0.346985 0.418671\n0.376251 0.347504 0.418945\n0.402740 0.348145 0.419220\n0.431610 0.348816 0.419525\n0.463165 0.349335 0.419800\n0.497772 0.350128 0.420013\n0.535522 0.350647 0.420288\n0.576721 0.351257 0.420593\n0.620514 0.351959 0.420837\n0.666718 0.352478 0.421112\n0.715088 0.353180 0.421356\n0.764862 0.353821 0.421631\n0.816071 0.354370 0.421906\n0.867981 0.355103 0.422150\n0.915527 0.355621 0.422394\n0.000000 0.357635 0.414734\n0.000000 0.358368 0.414948\n0.004517 0.358856 0.415253\n0.030853 0.359375 0.415527\n0.063873 0.360107 0.415771\n0.092224 0.360596 0.416046\n0.118713 0.361206 0.416290\n0.143585 0.361847 0.416534\n0.166534 0.362366 0.416809\n0.188202 0.363098 0.417053\n0.208893 0.363647 0.417328\n0.228912 0.364166 0.417633\n0.248474 0.364929 0.417908\n0.268097 0.365448 0.418152\n0.288025 0.365997 0.418396\n0.308502 0.366730 0.418671\n0.330048 0.367310 0.418945\n0.352997 0.368042 0.419220\n0.377350 0.368591 0.419495\n0.403870 0.369141 0.419769\n0.432770 0.369904 0.420013\n0.464233 0.370392 0.420288\n0.498718 0.370972 0.420593\n0.536591 0.371704 0.420837\n0.577576 0.372284 0.421112\n0.621399 0.373016 0.421356\n0.667633 0.373566 0.421631\n0.715637 0.374054 0.421906\n0.765503 0.374847 0.422119\n0.816345 0.375366 0.422394\n0.868134 0.375916 0.422668\n0.915527 0.376617 0.422913\n0.000000 0.379944 0.415253\n0.000000 0.380432 0.415497\n0.006775 0.381012 0.415741\n0.033203 0.381714 0.416016\n0.066254 0.382202 0.416260\n0.094421 0.382935 0.416534\n0.120758 0.383484 0.416809\n0.145203 0.383972 0.417053\n0.168182 0.384735 0.417328\n0.189697 0.385254 0.417603\n0.210236 0.385925 0.417877\n0.230286 0.386505 0.418152\n0.249634 0.387085 0.418365\n0.269257 0.387817 0.418671\n0.289124 0.388367 0.418945\n0.309631 0.388885 0.419220\n0.331146 0.389679 0.419495\n0.354095 0.390198 0.419769\n0.378479 0.390839 0.420013\n0.404999 0.391479 0.420258\n0.433838 0.391998 0.420563\n0.465363 0.392792 0.420807\n0.499847 0.393341 0.421082\n0.537659 0.393829 0.421326\n0.578583 0.394653 0.421600\n0.622192 0.395172 0.421906\n0.668243 0.395782 0.422119\n0.716370 0.396423 0.422394\n0.765900 0.396973 0.422668\n0.816620 0.397736 0.422882\n0.868286 0.398254 0.423187\n0.915527 0.398743 0.423431\n0.000000 0.403625 0.415741\n0.000000 0.404327 0.415985\n0.009033 0.404846 0.416260\n0.035492 0.405365 0.416534\n0.068665 0.406128 0.416779\n0.096588 0.406647 0.417053\n0.122772 0.407257 0.417328\n0.147095 0.407898 0.417603\n0.169800 0.408447 0.417877\n0.191193 0.409210 0.418121\n0.211731 0.409729 0.418365\n0.231476 0.410248 0.418640\n0.250854 0.411011 0.418915\n0.270386 0.411560 0.419220\n0.290253 0.412109 0.419495\n0.310669 0.412872 0.419769\n0.332245 0.413391 0.420013\n0.355194 0.414154 0.420258\n0.379547 0.414703 0.420563\n0.406097 0.415253 0.420807\n0.434937 0.415955 0.421082\n0.466492 0.416534 0.421326\n0.500946 0.417114 0.421600\n0.538757 0.417816 0.421906\n0.579590 0.418365 0.422119\n0.623138 0.419098 0.422394\n0.669098 0.419617 0.422638\n0.716919 0.420197 0.422882\n0.766327 0.420929 0.423187\n0.817139 0.421448 0.423401\n0.868439 0.421967 0.423676\n0.915527 0.422699 0.423889\n0.000000 0.429352 0.416260\n0.000000 0.429840 0.416504\n0.011292 0.430511 0.416779\n0.037842 0.431152 0.417053\n0.071198 0.431671 0.417297\n0.098816 0.432434 0.417603\n0.124786 0.432922 0.417847\n0.148743 0.433472 0.418091\n0.171356 0.434235 0.418365\n0.192657 0.434753 0.418640\n0.213043 0.435394 0.418915\n0.232819 0.436066 0.419220\n0.252136 0.436584 0.419464\n0.271576 0.437347 0.419769\n0.291412 0.437927 0.420013\n0.311798 0.438416 0.420258\n0.333282 0.439209 0.420563\n0.356079 0.439758 0.420807\n0.380707 0.440399 0.421082\n0.407227 0.441071 0.421326\n0.436096 0.441559 0.421600\n0.467590 0.442383 0.421906\n0.502045 0.442902 0.422119\n0.539825 0.443390 0.422363\n0.580627 0.444183 0.422638\n0.624084 0.444733 0.422882\n0.669891 0.445221 0.423157\n0.717651 0.445984 0.423401\n0.766937 0.446503 0.423645\n0.817413 0.447174 0.423889\n0.868561 0.447723 0.424164\n0.915527 0.448242 0.424377\n0.000000 0.457092 0.416779\n0.000000 0.457703 0.417023\n0.013672 0.458282 0.417297\n0.040161 0.459015 0.417603\n0.073578 0.459564 0.417847\n0.101013 0.460114 0.418091\n0.126709 0.460815 0.418365\n0.150635 0.461365 0.418610\n0.173065 0.461945 0.418915\n0.194061 0.462677 0.419189\n0.214417 0.463226 0.419464\n0.234039 0.463989 0.419739\n0.253387 0.464539 0.419983\n0.272705 0.465057 0.420258\n0.292542 0.465820 0.420563\n0.312897 0.466339 0.420807\n0.334381 0.466888 0.421082\n0.357178 0.467651 0.421326\n0.381805 0.468201 0.421600\n0.408325 0.468994 0.421906\n0.437103 0.469513 0.422089\n0.468567 0.470001 0.422363\n0.503113 0.470795 0.422638\n0.540802 0.471283 0.422882\n0.581421 0.471985 0.423157\n0.625000 0.472565 0.423401\n0.670532 0.473114 0.423645\n0.718140 0.473694 0.423889\n0.767303 0.474335 0.424133\n0.817627 0.474823 0.424377\n0.868744 0.475586 0.424622\n0.915527 0.476074 0.424866\n0.000000 0.487518 0.417297\n0.000000 0.488037 0.417603\n0.016113 0.488708 0.417847\n0.042511 0.489288 0.418091\n0.075958 0.489838 0.418365\n0.103271 0.490509 0.418610\n0.128693 0.491119 0.418915\n0.152405 0.491638 0.419189\n0.174591 0.492432 0.419464\n0.195648 0.492950 0.419708\n0.215729 0.493561 0.419983\n0.235352 0.494293 0.420258\n0.254486 0.494812 0.420532\n0.273895 0.495575 0.420776\n0.293640 0.496063 0.421051\n0.314026 0.496643 0.421295\n0.335480 0.497375 0.421570\n0.358276 0.497955 0.421875\n0.382874 0.498444 0.422089\n0.409424 0.499237 0.422363\n0.438202 0.499695 0.422607\n0.469604 0.500427 0.422882\n0.504181 0.500977 0.423157\n0.541687 0.501526 0.423401\n0.582367 0.502167 0.423645\n0.625702 0.502777 0.423889\n0.671417 0.503265 0.424133\n0.718933 0.503998 0.424377\n0.767914 0.504517 0.424591\n0.817902 0.504974 0.424866\n0.868866 0.505707 0.425110\n0.915527 0.506195 0.425323\n0.000000 0.520569 0.417847\n0.000000 0.521179 0.418091\n0.018463 0.521759 0.418335\n0.044769 0.522461 0.418610\n0.078369 0.523010 0.418915\n0.105408 0.523560 0.419189\n0.130646 0.524292 0.419434\n0.154144 0.524811 0.419708\n0.176086 0.525360 0.419952\n0.197113 0.526093 0.420227\n0.217041 0.526642 0.420502\n0.236542 0.527374 0.420776\n0.255737 0.527893 0.421051\n0.275024 0.528412 0.421295\n0.294769 0.529175 0.421570\n0.315094 0.529694 0.421844\n0.336548 0.530304 0.422058\n0.359375 0.531006 0.422333\n0.383942 0.531494 0.422607\n0.410400 0.532043 0.422882\n0.439209 0.532715 0.423126\n0.470642 0.533264 0.423370\n0.505157 0.533936 0.423645\n0.542755 0.534485 0.423859\n0.583374 0.535034 0.424133\n0.626617 0.535706 0.424347\n0.672058 0.536224 0.424591\n0.719391 0.536682 0.424866\n0.768280 0.537201 0.425079\n0.818207 0.537903 0.425323\n0.869110 0.538330 0.425537\n0.915527 0.538940 0.425751\n0.000000 0.556732 0.418335\n0.000000 0.557373 0.418610\n0.020905 0.558014 0.418915\n0.048462 0.558502 0.419159\n0.080933 0.559204 0.419434\n0.107635 0.559753 0.419708\n0.132660 0.560272 0.419952\n0.156006 0.561005 0.420227\n0.177795 0.561554 0.420502\n0.198547 0.562042 0.420746\n0.218323 0.562805 0.421021\n0.237762 0.563293 0.421295\n0.256927 0.563812 0.421570\n0.276154 0.564514 0.421844\n0.295868 0.565063 0.422058\n0.316254 0.565521 0.422333\n0.337677 0.566254 0.422607\n0.360443 0.566772 0.422852\n0.384979 0.567230 0.423126\n0.411499 0.567993 0.423370\n0.440216 0.568451 0.423615\n0.471710 0.569031 0.423859\n0.506134 0.569672 0.424133\n0.543732 0.570129 0.424347\n0.584320 0.570709 0.424591\n0.627411 0.571320 0.424835\n0.672791 0.571777 0.425079\n0.720062 0.572205 0.425323\n0.768707 0.572876 0.425537\n0.818665 0.573395 0.425751\n0.869324 0.573792 0.425964\n0.915527 0.574402 0.426208\n0.000000 0.595795 0.418884\n0.000000 0.596497 0.419159\n0.023346 0.596985 0.419434\n0.052490 0.597473 0.419708\n0.083252 0.598206 0.419952\n0.109802 0.598663 0.420227\n0.134613 0.599152 0.420502\n0.157593 0.599823 0.420746\n0.179382 0.600342 0.421021\n0.199890 0.600830 0.421295\n0.219818 0.601501 0.421570\n0.238983 0.601990 0.421844\n0.257996 0.602478 0.422058\n0.277313 0.603149 0.422333\n0.296875 0.603638 0.422577\n0.317322 0.604126 0.422852\n0.338745 0.604767 0.423126\n0.361511 0.605255 0.423370\n0.385986 0.605743 0.423615\n0.412476 0.606384 0.423859\n0.441284 0.606842 0.424103\n0.472778 0.607300 0.424316\n0.507141 0.607758 0.424591\n0.544800 0.608368 0.424835\n0.585297 0.608826 0.425079\n0.628143 0.609253 0.425293\n0.673340 0.609894 0.425537\n0.720551 0.610321 0.425751\n0.769257 0.610748 0.425964\n0.818878 0.611176 0.426208\n0.869415 0.611786 0.426422\n0.915527 0.612183 0.426636\n0.000000 0.637421 0.419403\n0.000610 0.637848 0.419708\n0.025818 0.638428 0.419952\n0.056885 0.639008 0.420227\n0.085602 0.639435 0.420502\n0.111938 0.639862 0.420746\n0.136414 0.640533 0.421021\n0.159454 0.640961 0.421265\n0.181000 0.641357 0.421570\n0.201477 0.641876 0.421844\n0.221100 0.642487 0.422058\n0.240204 0.642914 0.422302\n0.259247 0.643311 0.422577\n0.278412 0.643982 0.422852\n0.298004 0.644440 0.423126\n0.318359 0.644836 0.423370\n0.339844 0.645477 0.423584\n0.362610 0.645874 0.423859\n0.386993 0.646332 0.424103\n0.413513 0.646820 0.424316\n0.442352 0.647339 0.424561\n0.473816 0.647766 0.424835\n0.508148 0.648102 0.425049\n0.545715 0.648499 0.425293\n0.585968 0.649139 0.425537\n0.629028 0.649475 0.425720\n0.674133 0.649872 0.425964\n0.720978 0.650299 0.426208\n0.769562 0.650787 0.426392\n0.819153 0.651184 0.426605\n0.869537 0.651520 0.426849\n0.915527 0.651917 0.427063\n0.000000 0.681000 0.419922\n0.002777 0.681488 0.420197\n0.028168 0.681885 0.420502\n0.060089 0.682220 0.420715\n0.087891 0.682861 0.421021\n0.114044 0.683228 0.421265\n0.138367 0.683624 0.421539\n0.161041 0.684021 0.421814\n0.182434 0.684540 0.422028\n0.202850 0.684937 0.422302\n0.222412 0.685333 0.422577\n0.241394 0.685730 0.422852\n0.260406 0.686340 0.423096\n0.279541 0.686707 0.423370\n0.298920 0.687042 0.423584\n0.319336 0.687408 0.423859\n0.340698 0.687988 0.424072\n0.363586 0.688354 0.424316\n0.388062 0.688690 0.424561\n0.414551 0.689026 0.424835\n0.443390 0.689331 0.425049\n0.474854 0.689911 0.425293\n0.509155 0.690247 0.425537\n0.546509 0.690582 0.425720\n0.586914 0.690918 0.425964\n0.629669 0.691498 0.426208\n0.674774 0.691803 0.426392\n0.721649 0.692108 0.426605\n0.769928 0.692383 0.426849\n0.819397 0.692719 0.427063\n0.869659 0.693207 0.427216\n0.915527 0.693481 0.427429\n0.000000 0.726196 0.420471\n0.005096 0.726532 0.420715\n0.030640 0.726868 0.420990\n0.062683 0.727356 0.421265\n0.090363 0.727722 0.421539\n0.116150 0.727997 0.421814\n0.140289 0.728333 0.422028\n0.162842 0.728821 0.422302\n0.183899 0.729187 0.422577\n0.204193 0.729462 0.422821\n0.223663 0.729767 0.423096\n0.242584 0.730072 0.423340\n0.261414 0.730438 0.423584\n0.280548 0.730896 0.423828\n0.300018 0.731232 0.424072\n0.320343 0.731506 0.424316\n0.341705 0.731781 0.424561\n0.364532 0.732208 0.424835\n0.389069 0.732574 0.425049\n0.415558 0.732819 0.425262\n0.444336 0.733154 0.425537\n0.475647 0.733398 0.425720\n0.510101 0.733734 0.425934\n0.547485 0.734161 0.426178\n0.587708 0.734436 0.426392\n0.630463 0.734711 0.426575\n0.675415 0.734955 0.426849\n0.722107 0.735168 0.427063\n0.770447 0.735596 0.427216\n0.819763 0.735931 0.427429\n0.869751 0.736145 0.427612\n0.915527 0.736359 0.427795\n0.000000 0.772614 0.420990\n0.007416 0.772827 0.421265\n0.033112 0.773102 0.421539\n0.065216 0.773560 0.421814\n0.092682 0.773773 0.422028\n0.118195 0.774048 0.422272\n0.142029 0.774261 0.422577\n0.164398 0.774536 0.422821\n0.185547 0.774811 0.423065\n0.205475 0.775238 0.423340\n0.224915 0.775452 0.423584\n0.243744 0.775665 0.423798\n0.262512 0.775879 0.424072\n0.281616 0.776123 0.424286\n0.301086 0.776337 0.424561\n0.321350 0.776764 0.424805\n0.342743 0.777008 0.425018\n0.365509 0.777222 0.425262\n0.390106 0.777496 0.425537\n0.416595 0.777649 0.425690\n0.445160 0.777863 0.425934\n0.476593 0.778107 0.426178\n0.510895 0.778259 0.426361\n0.548401 0.778625 0.426575\n0.588470 0.778900 0.426849\n0.631287 0.779114 0.427032\n0.676117 0.779266 0.427216\n0.722717 0.779449 0.427399\n0.770752 0.779633 0.427612\n0.819977 0.779816 0.427795\n0.869812 0.780029 0.427948\n0.915527 0.780426 0.428162\n0.000000 0.819946 0.421539\n0.009796 0.820190 0.421814\n0.035309 0.820312 0.421997\n0.067596 0.820496 0.422272\n0.094849 0.820648 0.422577\n0.120270 0.820831 0.422791\n0.143921 0.820923 0.423065\n0.166016 0.821136 0.423340\n0.186951 0.821381 0.423553\n0.206818 0.821716 0.423798\n0.226135 0.821808 0.424072\n0.244904 0.822021 0.424286\n0.263641 0.822144 0.424530\n0.282684 0.822296 0.424805\n0.302124 0.822449 0.425018\n0.322327 0.822601 0.425262\n0.343750 0.822754 0.425537\n0.366486 0.822906 0.425690\n0.390900 0.823151 0.425903\n0.417389 0.823395 0.426178\n0.446167 0.823517 0.426361\n0.477570 0.823700 0.426575\n0.511871 0.823792 0.426819\n0.549072 0.823944 0.427032\n0.589325 0.824066 0.427216\n0.631866 0.824158 0.427399\n0.676605 0.824310 0.427612\n0.723145 0.824402 0.427795\n0.771057 0.824554 0.427948\n0.820190 0.824768 0.428162\n0.869904 0.825012 0.428345\n0.915527 0.825104 0.428528\n0.000000 0.867584 0.421997\n0.012085 0.867676 0.422272\n0.037781 0.867767 0.422546\n0.070221 0.867798 0.422791\n0.097137 0.867981 0.423065\n0.122101 0.868164 0.423309\n0.145660 0.868347 0.423553\n0.167633 0.868378 0.423798\n0.188324 0.868469 0.424042\n0.208221 0.868561 0.424286\n0.227325 0.868622 0.424530\n0.246033 0.868713 0.424805\n0.264740 0.868774 0.425018\n0.283600 0.868835 0.425232\n0.303131 0.868958 0.425537\n0.323334 0.868988 0.425690\n0.344727 0.869110 0.425903\n0.367493 0.869110 0.426178\n0.391876 0.869202 0.426361\n0.418304 0.869263 0.426575\n0.447144 0.869354 0.426819\n0.478516 0.869385 0.427002\n0.512787 0.869446 0.427185\n0.549957 0.869568 0.427368\n0.589935 0.869720 0.427582\n0.632629 0.869873 0.427765\n0.677063 0.869934 0.427948\n0.723572 0.869995 0.428162\n0.771484 0.870087 0.428314\n0.820404 0.870148 0.428528\n0.870117 0.870178 0.428680\n0.915527 0.870239 0.428833\n0.000000 0.915527 0.422546\n0.014496 0.915527 0.422791\n0.040009 0.915527 0.423035\n0.072510 0.915527 0.423309\n0.099304 0.915527 0.423553\n0.124084 0.915527 0.423798\n0.147369 0.915527 0.424042\n0.169128 0.915527 0.424286\n0.189728 0.915527 0.424530\n0.209412 0.915527 0.424805\n0.228485 0.915527 0.424988\n0.247162 0.915527 0.425232\n0.265778 0.915527 0.425507\n0.284637 0.915527 0.425690\n0.304138 0.915527 0.425903\n0.324310 0.915527 0.426178\n0.345642 0.915527 0.426361\n0.368408 0.915527 0.426575\n0.392792 0.915527 0.426819\n0.419250 0.915527 0.427002\n0.448090 0.915527 0.427185\n0.479218 0.915527 0.427368\n0.513458 0.915527 0.427582\n0.550690 0.915527 0.427765\n0.590698 0.915527 0.427948\n0.633148 0.915527 0.428162\n0.677765 0.915527 0.428314\n0.724060 0.915527 0.428528\n0.771851 0.915527 0.428650\n0.820648 0.915527 0.428833\n0.870331 0.915527 0.428986\n0.915527 0.915527 0.429138\n0.000000 0.000000 0.424225\n0.000000 0.000000 0.424347\n0.000000 0.000000 0.424500\n0.001862 0.000000 0.424652\n0.028412 0.000000 0.424805\n0.061768 0.000000 0.424927\n0.090912 0.000000 0.425110\n0.118225 0.000000 0.425262\n0.143646 0.000000 0.425446\n0.167328 0.000000 0.425568\n0.189514 0.000000 0.425751\n0.210907 0.000000 0.425934\n0.231537 0.000000 0.426147\n0.251770 0.000000 0.426300\n0.272217 0.000000 0.426514\n0.292847 0.000000 0.426697\n0.314392 0.000000 0.426910\n0.337219 0.000000 0.427124\n0.361572 0.000000 0.427277\n0.387909 0.000000 0.427521\n0.416656 0.000000 0.427734\n0.448120 0.000000 0.427917\n0.482574 0.000000 0.428162\n0.520721 0.000000 0.428406\n0.562469 0.000000 0.428589\n0.607544 0.000000 0.428864\n0.655304 0.000000 0.429047\n0.705414 0.000000 0.429291\n0.757355 0.000000 0.429504\n0.810944 0.000000 0.429779\n0.865448 0.000000 0.430023\n0.915527 0.000000 0.430237\n0.000000 0.000000 0.424500\n0.000000 0.000000 0.424652\n0.000000 0.000000 0.424805\n0.003021 0.000000 0.424927\n0.029724 0.000000 0.425110\n0.063171 0.000000 0.425262\n0.092285 0.000000 0.425446\n0.119476 0.000000 0.425568\n0.144836 0.000000 0.425751\n0.168457 0.000000 0.425903\n0.190582 0.000000 0.426117\n0.211914 0.000000 0.426300\n0.232300 0.000000 0.426514\n0.252686 0.000702 0.426697\n0.272919 0.001770 0.426910\n0.293732 0.002838 0.427124\n0.315308 0.003998 0.427277\n0.338013 0.005188 0.427521\n0.362518 0.006348 0.427734\n0.388855 0.007629 0.427917\n0.417389 0.008911 0.428162\n0.448822 0.010162 0.428375\n0.483582 0.011475 0.428589\n0.521667 0.012787 0.428833\n0.563446 0.014130 0.429047\n0.608246 0.015625 0.429291\n0.656097 0.016998 0.429504\n0.705994 0.018433 0.429749\n0.757996 0.019867 0.430023\n0.811249 0.021271 0.430206\n0.865570 0.022736 0.430511\n0.915527 0.024292 0.430725\n0.000000 0.015533 0.424805\n0.000000 0.016357 0.424896\n0.000000 0.017334 0.425110\n0.004364 0.018311 0.425232\n0.031281 0.019165 0.425415\n0.064941 0.020203 0.425568\n0.093872 0.021240 0.425751\n0.120789 0.022308 0.425903\n0.145996 0.023438 0.426117\n0.169525 0.024567 0.426300\n0.191650 0.025574 0.426514\n0.212708 0.026672 0.426697\n0.233276 0.027832 0.426880\n0.253632 0.029053 0.427094\n0.273834 0.030273 0.427277\n0.294647 0.031494 0.427490\n0.316223 0.032776 0.427704\n0.338928 0.034058 0.427887\n0.363251 0.035339 0.428162\n0.389740 0.036621 0.428375\n0.418365 0.037964 0.428589\n0.449829 0.039276 0.428833\n0.484467 0.040649 0.429047\n0.522614 0.041962 0.429260\n0.564392 0.043396 0.429504\n0.609161 0.044800 0.429749\n0.656738 0.046875 0.429993\n0.706635 0.049225 0.430206\n0.758392 0.051849 0.430481\n0.811554 0.054443 0.430695\n0.865692 0.057098 0.430939\n0.915527 0.059357 0.431183\n0.000000 0.044678 0.425079\n0.000000 0.045624 0.425232\n0.000000 0.047485 0.425415\n0.005890 0.048828 0.425568\n0.032654 0.050659 0.425751\n0.066406 0.052551 0.425903\n0.095276 0.054565 0.426117\n0.122192 0.056610 0.426300\n0.147308 0.058411 0.426483\n0.170746 0.059723 0.426697\n0.192719 0.060974 0.426880\n0.213745 0.062256 0.427094\n0.234314 0.063599 0.427277\n0.254364 0.065002 0.427490\n0.274780 0.066315 0.427704\n0.295410 0.067657 0.427887\n0.317139 0.068909 0.428162\n0.339874 0.070312 0.428375\n0.364197 0.071686 0.428589\n0.390594 0.073059 0.428833\n0.419373 0.074524 0.429047\n0.450836 0.076019 0.429260\n0.485352 0.077423 0.429504\n0.523438 0.078888 0.429749\n0.565125 0.080444 0.429993\n0.609863 0.081879 0.430206\n0.657532 0.083313 0.430481\n0.707306 0.084869 0.430695\n0.758881 0.086395 0.430908\n0.811951 0.087860 0.431183\n0.865845 0.089417 0.431458\n0.915527 0.090912 0.431671\n0.000000 0.081787 0.425415\n0.000000 0.082825 0.425568\n0.000000 0.083771 0.425751\n0.007416 0.084900 0.425903\n0.034363 0.085999 0.426117\n0.068207 0.087158 0.426270\n0.097015 0.088165 0.426483\n0.123718 0.089355 0.426666\n0.148560 0.090576 0.426880\n0.171936 0.091797 0.427094\n0.193848 0.092987 0.427277\n0.214844 0.094086 0.427490\n0.235321 0.095367 0.427704\n0.255402 0.096680 0.427887\n0.275726 0.097961 0.428162\n0.296387 0.099213 0.428375\n0.317902 0.100403 0.428558\n0.340698 0.101776 0.428833\n0.365143 0.103088 0.429047\n0.391541 0.104462 0.429260\n0.420319 0.105804 0.429474\n0.451874 0.107178 0.429749\n0.486359 0.108551 0.429962\n0.524445 0.109863 0.430176\n0.566071 0.111237 0.430450\n0.610779 0.112518 0.430695\n0.658203 0.113922 0.430908\n0.707947 0.115356 0.431183\n0.759430 0.116791 0.431458\n0.812317 0.118164 0.431671\n0.865997 0.119568 0.431915\n0.915527 0.120972 0.432159\n0.000000 0.112640 0.425720\n0.000000 0.113617 0.425903\n0.000000 0.114716 0.426117\n0.009033 0.115570 0.426270\n0.036072 0.116669 0.426483\n0.069977 0.117798 0.426666\n0.098572 0.118805 0.426880\n0.125153 0.119843 0.427094\n0.149963 0.121033 0.427277\n0.173187 0.122101 0.427490\n0.195007 0.123138 0.427704\n0.215912 0.124390 0.427887\n0.236328 0.125519 0.428131\n0.256409 0.126678 0.428345\n0.276550 0.127777 0.428558\n0.297302 0.128998 0.428802\n0.318878 0.130249 0.429047\n0.341614 0.131500 0.429230\n0.366150 0.132538 0.429474\n0.392578 0.133789 0.429718\n0.421234 0.135071 0.429962\n0.452759 0.136353 0.430176\n0.487396 0.137665 0.430450\n0.525452 0.138702 0.430664\n0.567078 0.139984 0.430908\n0.611755 0.141296 0.431152\n0.659058 0.142578 0.431427\n0.708649 0.143890 0.431671\n0.759888 0.145081 0.431915\n0.812592 0.146271 0.432159\n0.866119 0.147552 0.432434\n0.915527 0.148834 0.432648\n0.000000 0.141571 0.426117\n0.000000 0.142548 0.426270\n0.000000 0.143311 0.426453\n0.010681 0.144379 0.426666\n0.037842 0.145386 0.426880\n0.071777 0.146240 0.427094\n0.100372 0.147278 0.427246\n0.126709 0.148254 0.427490\n0.151367 0.149261 0.427704\n0.174438 0.150330 0.427856\n0.196167 0.151367 0.428131\n0.217010 0.152344 0.428345\n0.237396 0.153473 0.428558\n0.257416 0.154480 0.428802\n0.277557 0.155487 0.429047\n0.298340 0.156616 0.429230\n0.319855 0.157806 0.429474\n0.342651 0.158722 0.429718\n0.367188 0.159882 0.429962\n0.393616 0.161041 0.430176\n0.422211 0.161957 0.430450\n0.453735 0.163177 0.430664\n0.488434 0.164368 0.430908\n0.526459 0.165405 0.431152\n0.568054 0.166504 0.431427\n0.612701 0.167664 0.431671\n0.659851 0.168854 0.431885\n0.709229 0.169830 0.432159\n0.760468 0.170990 0.432404\n0.812897 0.172150 0.432648\n0.866425 0.173370 0.432922\n0.915527 0.174316 0.433167\n0.000000 0.168182 0.426453\n0.000000 0.169128 0.426636\n0.000000 0.169830 0.426880\n0.012543 0.170837 0.427094\n0.039642 0.171753 0.427246\n0.073700 0.172546 0.427490\n0.101959 0.173523 0.427673\n0.128326 0.174316 0.427856\n0.152863 0.175354 0.428101\n0.175720 0.176117 0.428314\n0.197388 0.177124 0.428558\n0.218170 0.178192 0.428802\n0.238495 0.178986 0.429016\n0.258484 0.180084 0.429230\n0.278564 0.180878 0.429474\n0.299194 0.181946 0.429688\n0.320892 0.183014 0.429962\n0.343658 0.183838 0.430176\n0.367981 0.184906 0.430450\n0.394440 0.185974 0.430664\n0.423218 0.186829 0.430878\n0.454742 0.187927 0.431152\n0.489502 0.188934 0.431427\n0.527527 0.189850 0.431641\n0.568848 0.190979 0.431885\n0.613403 0.191833 0.432159\n0.660553 0.192932 0.432404\n0.709900 0.194000 0.432648\n0.760895 0.194855 0.432922\n0.813385 0.195984 0.433167\n0.866669 0.196991 0.433411\n0.915527 0.197906 0.433685\n0.000000 0.192871 0.426880\n0.000000 0.193604 0.427063\n0.000000 0.194397 0.427246\n0.014374 0.195221 0.427460\n0.041534 0.195984 0.427673\n0.075775 0.196747 0.427856\n0.103851 0.197632 0.428101\n0.129883 0.198456 0.428314\n0.154236 0.199280 0.428558\n0.177032 0.200256 0.428772\n0.198608 0.200989 0.429016\n0.219330 0.201935 0.429230\n0.239532 0.202667 0.429474\n0.259521 0.203644 0.429688\n0.279663 0.204376 0.429932\n0.300171 0.205353 0.430176\n0.321777 0.206329 0.430420\n0.344696 0.207184 0.430664\n0.369049 0.208099 0.430878\n0.395477 0.208923 0.431152\n0.424316 0.209900 0.431396\n0.455841 0.210693 0.431641\n0.490448 0.211700 0.431885\n0.528534 0.212494 0.432159\n0.569885 0.213501 0.432404\n0.614319 0.214508 0.432648\n0.661407 0.215271 0.432892\n0.710510 0.216278 0.433167\n0.761353 0.217072 0.433411\n0.813629 0.218048 0.433685\n0.866791 0.218872 0.433929\n0.915527 0.219849 0.434143\n0.000000 0.215668 0.427246\n0.000000 0.216461 0.427429\n0.000000 0.217072 0.427643\n0.016296 0.217896 0.427856\n0.043396 0.218536 0.428101\n0.077728 0.219421 0.428314\n0.105560 0.220093 0.428528\n0.131592 0.220947 0.428772\n0.155792 0.221619 0.429016\n0.178436 0.222504 0.429199\n0.199860 0.223175 0.429443\n0.220490 0.224091 0.429688\n0.240631 0.224792 0.429932\n0.260590 0.225708 0.430176\n0.280670 0.226379 0.430420\n0.301208 0.227325 0.430634\n0.322784 0.228027 0.430847\n0.345703 0.228882 0.431152\n0.370087 0.229645 0.431396\n0.396545 0.230560 0.431641\n0.425415 0.231293 0.431885\n0.456940 0.232208 0.432159\n0.491425 0.232910 0.432404\n0.529480 0.233856 0.432617\n0.570892 0.234589 0.432892\n0.615326 0.235535 0.433136\n0.662048 0.236267 0.433411\n0.711243 0.237183 0.433685\n0.761932 0.237885 0.433899\n0.813934 0.238831 0.434143\n0.866913 0.239716 0.434418\n0.915527 0.240479 0.434692\n0.000000 0.237183 0.427643\n0.000000 0.237762 0.427856\n0.000000 0.238586 0.428101\n0.018219 0.239136 0.428314\n0.045349 0.239990 0.428528\n0.079865 0.240570 0.428772\n0.107452 0.241211 0.428986\n0.133179 0.242004 0.429199\n0.157318 0.242645 0.429443\n0.179901 0.243469 0.429688\n0.201233 0.244110 0.429901\n0.221680 0.244934 0.430176\n0.241821 0.245605 0.430420\n0.261505 0.246460 0.430634\n0.281708 0.247101 0.430847\n0.302246 0.247925 0.431122\n0.323792 0.248596 0.431366\n0.346710 0.249390 0.431610\n0.371185 0.250153 0.431854\n0.397644 0.251038 0.432159\n0.426514 0.251648 0.432404\n0.458008 0.252350 0.432617\n0.492523 0.253204 0.432861\n0.530487 0.253876 0.433136\n0.571960 0.254791 0.433411\n0.616119 0.255432 0.433655\n0.662964 0.256317 0.433899\n0.711823 0.256958 0.434143\n0.762390 0.257843 0.434418\n0.814240 0.258514 0.434692\n0.867096 0.259430 0.434937\n0.915527 0.260071 0.435181\n0.000000 0.257690 0.428070\n0.000000 0.258240 0.428314\n0.000000 0.258850 0.428528\n0.020386 0.259552 0.428772\n0.048706 0.260162 0.428986\n0.081909 0.260925 0.429199\n0.109406 0.261475 0.429413\n0.135010 0.262085 0.429688\n0.158844 0.262878 0.429901\n0.181274 0.263458 0.430176\n0.202484 0.264282 0.430420\n0.222900 0.264862 0.430603\n0.242798 0.265686 0.430847\n0.262665 0.266296 0.431122\n0.282806 0.267090 0.431366\n0.303345 0.267731 0.431610\n0.324860 0.268341 0.431854\n0.347778 0.269165 0.432159\n0.372284 0.269745 0.432373\n0.398743 0.270630 0.432617\n0.427521 0.271210 0.432861\n0.459106 0.272064 0.433136\n0.493591 0.272705 0.433380\n0.531586 0.273315 0.433655\n0.572998 0.274139 0.433868\n0.617035 0.274780 0.434143\n0.663788 0.275604 0.434418\n0.712616 0.276215 0.434662\n0.763031 0.277069 0.434937\n0.814758 0.277679 0.435181\n0.867249 0.278534 0.435455\n0.915527 0.279114 0.435699\n0.000000 0.277466 0.428528\n0.000000 0.277985 0.428741\n0.000000 0.278748 0.428986\n0.022430 0.279266 0.429199\n0.052277 0.279846 0.429413\n0.083984 0.280579 0.429657\n0.111389 0.281097 0.429901\n0.136688 0.281891 0.430176\n0.160492 0.282410 0.430389\n0.182648 0.283112 0.430603\n0.203918 0.283813 0.430847\n0.224091 0.284302 0.431091\n0.243988 0.285126 0.431366\n0.263824 0.285706 0.431610\n0.283691 0.286377 0.431854\n0.304443 0.287079 0.432159\n0.325958 0.287628 0.432373\n0.348755 0.288452 0.432587\n0.373352 0.289032 0.432861\n0.399841 0.289886 0.433136\n0.428680 0.290436 0.433380\n0.460114 0.291046 0.433624\n0.494659 0.291809 0.433868\n0.532654 0.292419 0.434143\n0.573730 0.293243 0.434418\n0.618011 0.293823 0.434662\n0.664520 0.294586 0.434937\n0.713165 0.295227 0.435150\n0.763428 0.295776 0.435455\n0.815063 0.296600 0.435669\n0.867401 0.297211 0.435944\n0.915527 0.297974 0.436157\n0.000000 0.296997 0.428986\n0.000000 0.297516 0.429199\n0.000000 0.298248 0.429413\n0.024536 0.298767 0.429657\n0.056152 0.299500 0.429901\n0.086182 0.300079 0.430176\n0.113220 0.300537 0.430389\n0.138428 0.301300 0.430603\n0.161987 0.301849 0.430847\n0.184052 0.302368 0.431091\n0.205231 0.303162 0.431366\n0.225311 0.303711 0.431610\n0.245270 0.304474 0.431854\n0.264862 0.305023 0.432129\n0.284821 0.305603 0.432343\n0.305542 0.306366 0.432587\n0.327026 0.306915 0.432861\n0.349823 0.307587 0.433136\n0.374481 0.308228 0.433380\n0.400909 0.308807 0.433624\n0.429657 0.309601 0.433868\n0.461121 0.310150 0.434143\n0.495819 0.310944 0.434387\n0.533752 0.311493 0.434662\n0.574829 0.312164 0.434937\n0.618958 0.312866 0.435150\n0.665344 0.313446 0.435425\n0.713928 0.314240 0.435669\n0.764130 0.314789 0.435944\n0.815308 0.315369 0.436157\n0.867554 0.316132 0.436432\n0.915527 0.316711 0.436707\n0.000000 0.316711 0.429413\n0.000000 0.317383 0.429626\n0.000793 0.317871 0.429901\n0.026825 0.318359 0.430145\n0.059570 0.319061 0.430359\n0.088287 0.319641 0.430603\n0.115173 0.320160 0.430847\n0.140289 0.320892 0.431091\n0.163544 0.321411 0.431335\n0.185669 0.322083 0.431580\n0.206543 0.322723 0.431854\n0.226685 0.323242 0.432098\n0.246277 0.323975 0.432343\n0.265991 0.324554 0.432587\n0.285950 0.325073 0.432831\n0.306641 0.325836 0.433136\n0.328125 0.326385 0.433380\n0.350922 0.327179 0.433624\n0.375366 0.327698 0.433868\n0.401855 0.328278 0.434143\n0.430725 0.329041 0.434387\n0.462280 0.329620 0.434662\n0.496918 0.330200 0.434906\n0.534698 0.330933 0.435120\n0.575867 0.331451 0.435425\n0.619751 0.332245 0.435669\n0.666199 0.332794 0.435913\n0.714417 0.333435 0.436157\n0.764526 0.334076 0.436432\n0.815735 0.334625 0.436707\n0.867798 0.335419 0.436951\n0.915527 0.335968 0.437164\n0.000000 0.336914 0.429871\n0.000000 0.337524 0.430145\n0.002869 0.337982 0.430359\n0.029022 0.338715 0.430573\n0.061859 0.339203 0.430847\n0.090515 0.339722 0.431091\n0.117157 0.340454 0.431335\n0.141968 0.340973 0.431580\n0.165222 0.341492 0.431824\n0.187012 0.342224 0.432098\n0.207855 0.342773 0.432343\n0.227875 0.343506 0.432556\n0.247589 0.344025 0.432831\n0.267120 0.344574 0.433105\n0.287048 0.345306 0.433350\n0.307770 0.345856 0.433624\n0.329224 0.346436 0.433868\n0.352051 0.347168 0.434113\n0.376434 0.347717 0.434387\n0.402985 0.348450 0.434631\n0.431824 0.349030 0.434906\n0.463318 0.349579 0.435120\n0.498016 0.350342 0.435425\n0.535736 0.350861 0.435638\n0.576904 0.351624 0.435913\n0.620636 0.352142 0.436127\n0.666840 0.352692 0.436432\n0.715210 0.353455 0.436676\n0.765045 0.354004 0.436920\n0.816101 0.354584 0.437164\n0.868073 0.355286 0.437408\n0.915527 0.355835 0.437683\n0.000000 0.357788 0.430359\n0.000000 0.358582 0.430573\n0.004913 0.359039 0.430847\n0.031311 0.359650 0.431061\n0.064301 0.360291 0.431335\n0.092743 0.360748 0.431580\n0.119232 0.361542 0.431824\n0.143829 0.362030 0.432098\n0.166779 0.362549 0.432343\n0.188446 0.363342 0.432556\n0.209137 0.363861 0.432831\n0.229279 0.364349 0.433105\n0.248901 0.365112 0.433350\n0.268280 0.365662 0.433594\n0.288208 0.366364 0.433868\n0.308838 0.366943 0.434113\n0.330322 0.367493 0.434387\n0.353119 0.368225 0.434631\n0.377563 0.368774 0.434875\n0.404053 0.369324 0.435120\n0.432892 0.370056 0.435425\n0.464417 0.370636 0.435638\n0.498932 0.371399 0.435883\n0.536743 0.371948 0.436127\n0.577759 0.372467 0.436432\n0.621613 0.373230 0.436676\n0.667725 0.373718 0.436920\n0.715759 0.374481 0.437164\n0.765564 0.375031 0.437408\n0.816406 0.375580 0.437683\n0.868164 0.376282 0.437897\n0.915527 0.376862 0.438141\n0.000000 0.380127 0.430817\n0.000000 0.380615 0.431061\n0.007141 0.381409 0.431335\n0.033539 0.381866 0.431580\n0.066681 0.382385 0.431824\n0.094849 0.383118 0.432098\n0.121185 0.383636 0.432343\n0.145599 0.384369 0.432556\n0.168518 0.384918 0.432831\n0.190094 0.385468 0.433105\n0.210541 0.386200 0.433350\n0.230499 0.386719 0.433594\n0.249908 0.387299 0.433868\n0.269440 0.388031 0.434113\n0.289276 0.388550 0.434357\n0.309906 0.389191 0.434601\n0.331451 0.389862 0.434875\n0.354248 0.390381 0.435120\n0.378632 0.391144 0.435394\n0.405121 0.391693 0.435638\n0.434052 0.392212 0.435883\n0.465546 0.393005 0.436127\n0.500000 0.393494 0.436401\n0.537842 0.394165 0.436676\n0.578705 0.394836 0.436920\n0.622375 0.395355 0.437134\n0.668549 0.396088 0.437408\n0.716461 0.396606 0.437653\n0.765991 0.397186 0.437897\n0.816650 0.397919 0.438110\n0.868317 0.398407 0.438416\n0.915527 0.398987 0.438629\n0.000000 0.403778 0.431305\n0.000000 0.404541 0.431549\n0.009399 0.405029 0.431824\n0.035950 0.405609 0.432068\n0.069183 0.406342 0.432343\n0.097137 0.406830 0.432556\n0.123047 0.407562 0.432831\n0.147369 0.408081 0.433105\n0.170044 0.408661 0.433350\n0.191528 0.409363 0.433594\n0.212006 0.409912 0.433868\n0.231750 0.410461 0.434113\n0.251221 0.411224 0.434326\n0.270599 0.411743 0.434601\n0.290436 0.412537 0.434875\n0.310852 0.413055 0.435120\n0.332550 0.413605 0.435394\n0.355347 0.414368 0.435638\n0.379761 0.414917 0.435883\n0.406250 0.415436 0.436127\n0.435150 0.416199 0.436401\n0.466644 0.416748 0.436676\n0.501068 0.417511 0.436920\n0.538910 0.417999 0.437134\n0.579742 0.418579 0.437408\n0.623291 0.419281 0.437622\n0.669220 0.419830 0.437866\n0.716980 0.420471 0.438110\n0.766541 0.421112 0.438385\n0.817169 0.421631 0.438629\n0.868469 0.422272 0.438812\n0.915527 0.422882 0.439087\n0.000000 0.429535 0.431824\n0.000000 0.430054 0.432068\n0.011780 0.430817 0.432312\n0.038239 0.431335 0.432526\n0.071533 0.431854 0.432831\n0.099335 0.432617 0.433075\n0.125122 0.433136 0.433319\n0.149261 0.433685 0.433594\n0.171814 0.434448 0.433838\n0.192932 0.434967 0.434082\n0.213287 0.435760 0.434326\n0.233032 0.436249 0.434601\n0.252472 0.436768 0.434875\n0.271729 0.437561 0.435120\n0.291565 0.438110 0.435364\n0.311951 0.438629 0.435638\n0.333435 0.439423 0.435883\n0.356323 0.439972 0.436127\n0.380890 0.440735 0.436401\n0.407349 0.441223 0.436646\n0.436218 0.441742 0.436890\n0.467773 0.442566 0.437134\n0.502197 0.443085 0.437378\n0.539978 0.443634 0.437622\n0.580750 0.444397 0.437866\n0.624207 0.444885 0.438110\n0.670074 0.445587 0.438385\n0.717743 0.446136 0.438629\n0.766968 0.446686 0.438812\n0.817444 0.447418 0.439087\n0.868561 0.447906 0.439331\n0.915527 0.448425 0.439545\n0.000000 0.457397 0.432312\n0.000000 0.457947 0.432526\n0.014160 0.458466 0.432800\n0.040619 0.459198 0.433075\n0.073975 0.459717 0.433319\n0.101501 0.460510 0.433563\n0.127136 0.461029 0.433838\n0.150909 0.461609 0.434082\n0.173309 0.462341 0.434326\n0.194336 0.462891 0.434601\n0.214600 0.463379 0.434845\n0.234283 0.464203 0.435120\n0.253662 0.464691 0.435364\n0.272888 0.465424 0.435638\n0.292664 0.466003 0.435852\n0.313080 0.466553 0.436127\n0.334564 0.467285 0.436401\n0.357422 0.467865 0.436646\n0.381958 0.468414 0.436890\n0.408478 0.469177 0.437134\n0.437347 0.469666 0.437378\n0.468872 0.470337 0.437622\n0.503265 0.470947 0.437866\n0.541046 0.471527 0.438110\n0.581665 0.472229 0.438354\n0.625183 0.472778 0.438629\n0.670654 0.473297 0.438812\n0.718231 0.473999 0.439056\n0.767395 0.474518 0.439301\n0.817749 0.475037 0.439545\n0.868744 0.475769 0.439758\n0.915527 0.476257 0.440002\n0.000000 0.487701 0.432800\n0.000000 0.488220 0.433075\n0.016449 0.488983 0.433319\n0.042877 0.489471 0.433563\n0.076538 0.490051 0.433807\n0.103729 0.490753 0.434082\n0.129150 0.491333 0.434326\n0.152802 0.491882 0.434570\n0.174866 0.492645 0.434845\n0.195984 0.493164 0.435120\n0.215942 0.493927 0.435364\n0.235504 0.494446 0.435638\n0.254852 0.494995 0.435852\n0.274048 0.495758 0.436127\n0.293854 0.496277 0.436371\n0.314178 0.496826 0.436615\n0.335632 0.497559 0.436890\n0.358521 0.498108 0.437103\n0.383087 0.498840 0.437347\n0.409576 0.499390 0.437622\n0.438446 0.499939 0.437866\n0.469940 0.500641 0.438110\n0.504364 0.501221 0.438354\n0.541870 0.501678 0.438599\n0.582550 0.502441 0.438782\n0.625854 0.502930 0.439056\n0.671509 0.503510 0.439301\n0.718994 0.504181 0.439545\n0.767975 0.504700 0.439758\n0.817963 0.505249 0.440002\n0.868927 0.505920 0.440216\n0.915527 0.506348 0.440430\n0.000000 0.520844 0.433319\n0.000000 0.521393 0.433533\n0.018921 0.521942 0.433807\n0.045258 0.522644 0.434082\n0.078888 0.523193 0.434296\n0.105927 0.523956 0.434570\n0.131012 0.524475 0.434814\n0.154419 0.525055 0.435089\n0.176544 0.525757 0.435364\n0.197327 0.526306 0.435608\n0.217224 0.526794 0.435852\n0.236725 0.527588 0.436127\n0.256012 0.528107 0.436371\n0.275177 0.528687 0.436615\n0.294922 0.529388 0.436890\n0.315308 0.529907 0.437103\n0.336731 0.530640 0.437347\n0.359528 0.531189 0.437622\n0.384186 0.531708 0.437836\n0.410645 0.532379 0.438110\n0.439514 0.532959 0.438354\n0.470917 0.533447 0.438599\n0.505402 0.534180 0.438782\n0.542908 0.534698 0.439056\n0.583496 0.535217 0.439270\n0.626740 0.535950 0.439514\n0.672241 0.536407 0.439758\n0.719482 0.536865 0.439972\n0.768372 0.537567 0.440216\n0.818268 0.538055 0.440430\n0.869232 0.538513 0.440643\n0.915527 0.539185 0.440857\n0.000000 0.556946 0.433807\n0.000000 0.557678 0.434082\n0.021393 0.558167 0.434296\n0.049042 0.558716 0.434540\n0.081268 0.559448 0.434814\n0.108154 0.559967 0.435089\n0.132965 0.560455 0.435333\n0.156250 0.561218 0.435608\n0.178070 0.561737 0.435852\n0.198700 0.562286 0.436096\n0.218689 0.562958 0.436340\n0.237976 0.563477 0.436615\n0.257172 0.564148 0.436859\n0.276337 0.564728 0.437103\n0.296051 0.565216 0.437347\n0.316376 0.565765 0.437592\n0.337830 0.566437 0.437836\n0.360626 0.566925 0.438080\n0.385223 0.567535 0.438354\n0.411743 0.568176 0.438568\n0.440399 0.568634 0.438782\n0.471863 0.569397 0.439056\n0.506348 0.569824 0.439270\n0.543915 0.570343 0.439514\n0.584473 0.571045 0.439758\n0.627625 0.571472 0.439972\n0.672913 0.571960 0.440216\n0.720154 0.572418 0.440430\n0.768768 0.573059 0.440643\n0.818695 0.573517 0.440826\n0.869324 0.573975 0.441071\n0.915527 0.574615 0.441284\n0.000000 0.595947 0.434265\n0.000000 0.596680 0.434540\n0.023865 0.597198 0.434814\n0.053375 0.597748 0.435089\n0.083618 0.598358 0.435333\n0.110291 0.598816 0.435608\n0.134949 0.599365 0.435822\n0.157898 0.600006 0.436066\n0.179779 0.600525 0.436340\n0.200287 0.601013 0.436615\n0.220032 0.601685 0.436859\n0.239197 0.602173 0.437103\n0.258392 0.602661 0.437347\n0.277466 0.603363 0.437592\n0.297150 0.603821 0.437836\n0.317474 0.604279 0.438080\n0.338867 0.604980 0.438324\n0.361694 0.605469 0.438568\n0.386322 0.605865 0.438782\n0.412750 0.606567 0.439026\n0.441437 0.607025 0.439270\n0.472900 0.607452 0.439484\n0.507294 0.608002 0.439758\n0.544952 0.608551 0.439972\n0.585419 0.608978 0.440186\n0.628265 0.609436 0.440399\n0.673523 0.610077 0.440613\n0.720612 0.610474 0.440826\n0.769318 0.610901 0.441071\n0.818939 0.611481 0.441254\n0.869446 0.611877 0.441467\n0.915527 0.612335 0.441681\n0.000000 0.637604 0.434784\n0.000946 0.638062 0.435089\n0.026184 0.638733 0.435333\n0.057709 0.639160 0.435608\n0.086121 0.639557 0.435791\n0.112366 0.640198 0.436066\n0.136871 0.640717 0.436340\n0.159698 0.641083 0.436584\n0.181213 0.641541 0.436829\n0.201691 0.642212 0.437103\n0.221313 0.642639 0.437317\n0.240387 0.643097 0.437592\n0.259521 0.643616 0.437836\n0.278564 0.644165 0.438080\n0.298218 0.644562 0.438324\n0.318542 0.645020 0.438568\n0.339935 0.645630 0.438782\n0.362762 0.646027 0.439026\n0.387177 0.646454 0.439270\n0.413635 0.647064 0.439484\n0.442505 0.647491 0.439758\n0.473969 0.647858 0.439941\n0.508301 0.648254 0.440186\n0.545898 0.648834 0.440399\n0.586121 0.649261 0.440613\n0.629150 0.649597 0.440826\n0.674255 0.649994 0.441071\n0.721161 0.650543 0.441254\n0.769684 0.650940 0.441467\n0.819153 0.651306 0.441650\n0.869537 0.651642 0.441864\n0.915527 0.652161 0.442078\n0.000000 0.681244 0.435333\n0.003113 0.681610 0.435577\n0.028687 0.682007 0.435791\n0.060669 0.682434 0.436066\n0.088470 0.682953 0.436340\n0.114502 0.683380 0.436584\n0.138672 0.683777 0.436829\n0.161499 0.684143 0.437103\n0.182709 0.684753 0.437317\n0.203033 0.685150 0.437592\n0.222595 0.685455 0.437805\n0.241638 0.685852 0.438080\n0.260651 0.686462 0.438324\n0.279694 0.686829 0.438568\n0.299133 0.687195 0.438782\n0.319580 0.687561 0.438995\n0.341034 0.688110 0.439240\n0.363800 0.688507 0.439484\n0.388184 0.688843 0.439758\n0.414703 0.689148 0.439941\n0.443542 0.689636 0.440155\n0.475006 0.690033 0.440399\n0.509308 0.690399 0.440613\n0.546631 0.690735 0.440826\n0.587036 0.691040 0.441071\n0.629883 0.691589 0.441254\n0.674957 0.691864 0.441467\n0.721741 0.692230 0.441650\n0.769958 0.692474 0.441864\n0.819397 0.693024 0.442078\n0.869659 0.693359 0.442261\n0.915527 0.693634 0.442413\n0.000000 0.726288 0.435791\n0.005432 0.726624 0.436066\n0.031097 0.727051 0.436310\n0.063110 0.727478 0.436554\n0.090759 0.727814 0.436829\n0.116455 0.728119 0.437073\n0.140594 0.728424 0.437317\n0.163086 0.729004 0.437561\n0.184326 0.729309 0.437805\n0.204376 0.729584 0.438049\n0.223846 0.729858 0.438293\n0.242767 0.730194 0.438568\n0.261688 0.730682 0.438782\n0.280792 0.730988 0.438995\n0.300171 0.731323 0.439240\n0.320618 0.731598 0.439484\n0.341949 0.731903 0.439758\n0.364746 0.732391 0.439941\n0.389221 0.732666 0.440155\n0.415741 0.732941 0.440399\n0.444580 0.733215 0.440613\n0.475861 0.733551 0.440826\n0.510284 0.734009 0.441071\n0.547577 0.734314 0.441223\n0.587952 0.734558 0.441437\n0.630615 0.734802 0.441650\n0.675537 0.735016 0.441833\n0.722137 0.735291 0.442047\n0.770538 0.735748 0.442261\n0.819824 0.736023 0.442413\n0.869781 0.736206 0.442627\n0.915527 0.736450 0.442810\n0.000000 0.772705 0.436310\n0.007782 0.772888 0.436554\n0.033447 0.773254 0.436829\n0.065765 0.773651 0.437073\n0.093048 0.773834 0.437317\n0.118530 0.774139 0.437561\n0.142487 0.774353 0.437805\n0.164734 0.774567 0.438049\n0.185760 0.774994 0.438293\n0.205688 0.775330 0.438538\n0.225067 0.775513 0.438782\n0.243988 0.775757 0.438995\n0.262817 0.775970 0.439209\n0.281860 0.776184 0.439453\n0.301239 0.776459 0.439728\n0.321472 0.776886 0.439941\n0.342896 0.777100 0.440155\n0.365723 0.777313 0.440399\n0.390228 0.777557 0.440582\n0.416748 0.777740 0.440796\n0.445465 0.777985 0.441040\n0.476776 0.778137 0.441223\n0.511017 0.778442 0.441437\n0.548523 0.778778 0.441620\n0.588562 0.778931 0.441833\n0.631409 0.779175 0.442047\n0.676239 0.779358 0.442230\n0.722839 0.779510 0.442413\n0.770844 0.779724 0.442627\n0.820007 0.779877 0.442780\n0.869873 0.780212 0.442993\n0.915527 0.780457 0.443115\n0.000000 0.820038 0.436829\n0.010193 0.820221 0.437073\n0.035889 0.820374 0.437286\n0.068146 0.820526 0.437531\n0.095245 0.820740 0.437805\n0.120575 0.820831 0.438019\n0.144165 0.821045 0.438293\n0.166351 0.821167 0.438538\n0.187195 0.821564 0.438782\n0.207123 0.821747 0.438995\n0.226318 0.821869 0.439209\n0.245209 0.822052 0.439453\n0.263947 0.822174 0.439728\n0.282928 0.822357 0.439911\n0.302246 0.822510 0.440155\n0.322479 0.822632 0.440369\n0.343903 0.822815 0.440582\n0.366669 0.822968 0.440796\n0.391174 0.823273 0.441040\n0.417633 0.823456 0.441223\n0.446320 0.823578 0.441437\n0.477722 0.823730 0.441620\n0.511963 0.823853 0.441833\n0.549316 0.823975 0.442047\n0.589478 0.824066 0.442230\n0.631958 0.824219 0.442413\n0.676727 0.824341 0.442596\n0.723175 0.824463 0.442780\n0.771118 0.824615 0.442963\n0.820221 0.824860 0.443115\n0.869995 0.825043 0.443298\n0.915527 0.825104 0.443451\n0.000000 0.867645 0.437286\n0.012604 0.867676 0.437531\n0.038208 0.867767 0.437775\n0.070557 0.867920 0.438019\n0.097443 0.868103 0.438263\n0.122589 0.868286 0.438538\n0.145996 0.868347 0.438751\n0.167847 0.868439 0.438965\n0.188629 0.868530 0.439209\n0.208496 0.868561 0.439453\n0.227478 0.868652 0.439697\n0.246216 0.868744 0.439911\n0.264862 0.868774 0.440125\n0.283752 0.868896 0.440369\n0.303314 0.868958 0.440582\n0.323486 0.869049 0.440796\n0.344879 0.869110 0.441040\n0.367645 0.869171 0.441223\n0.391998 0.869263 0.441437\n0.418457 0.869293 0.441620\n0.447296 0.869354 0.441803\n0.478668 0.869446 0.442047\n0.512909 0.869446 0.442230\n0.550079 0.869720 0.442413\n0.590027 0.869781 0.442596\n0.632751 0.869873 0.442780\n0.677185 0.869934 0.442963\n0.723755 0.870087 0.443085\n0.771545 0.870087 0.443298\n0.820404 0.870148 0.443451\n0.870178 0.870178 0.443604\n0.915527 0.870239 0.443726\n0.000000 0.915527 0.437775\n0.014954 0.915527 0.438019\n0.040527 0.915527 0.438263\n0.073029 0.915527 0.438538\n0.099640 0.915527 0.438751\n0.124542 0.915527 0.438965\n0.147614 0.915527 0.439209\n0.169495 0.915527 0.439453\n0.190125 0.915527 0.439697\n0.209717 0.915527 0.439911\n0.228668 0.915527 0.440125\n0.247314 0.915527 0.440338\n0.265930 0.915527 0.440552\n0.284790 0.915527 0.440796\n0.304291 0.915527 0.441040\n0.324493 0.915527 0.441193\n0.345825 0.915527 0.441437\n0.368622 0.915527 0.441620\n0.392944 0.915527 0.441803\n0.419434 0.915527 0.442047\n0.448181 0.915527 0.442230\n0.479370 0.915527 0.442413\n0.513672 0.915527 0.442596\n0.550903 0.915527 0.442749\n0.590851 0.915527 0.442963\n0.633240 0.915527 0.443085\n0.677795 0.915527 0.443298\n0.724152 0.915527 0.443451\n0.771881 0.915527 0.443604\n0.820648 0.915527 0.443726\n0.870331 0.915527 0.443909\n0.915527 0.915527 0.444061\n0.000000 0.000000 0.440186\n0.000000 0.000000 0.440308\n0.000000 0.000000 0.440430\n0.002045 0.000000 0.440582\n0.028656 0.000000 0.440735\n0.062012 0.000000 0.440887\n0.091156 0.000000 0.441040\n0.118439 0.000000 0.441193\n0.143829 0.000000 0.441345\n0.167511 0.000000 0.441498\n0.189789 0.000000 0.441681\n0.211060 0.000000 0.441833\n0.231720 0.000000 0.442047\n0.251892 0.000000 0.442230\n0.272369 0.000000 0.442413\n0.292938 0.000000 0.442566\n0.314606 0.000000 0.442749\n0.337463 0.000000 0.442993\n0.361694 0.000000 0.443146\n0.388062 0.000000 0.443390\n0.416779 0.000000 0.443542\n0.448273 0.000000 0.443756\n0.482758 0.000000 0.443970\n0.520874 0.000000 0.444183\n0.562622 0.000000 0.444427\n0.607727 0.000000 0.444641\n0.655426 0.000000 0.444855\n0.705505 0.000000 0.445038\n0.757446 0.000000 0.445282\n0.811005 0.000000 0.445526\n0.865479 0.000000 0.445770\n0.915527 0.000000 0.445984\n0.000000 0.000000 0.440430\n0.000000 0.000000 0.440582\n0.000000 0.000000 0.440735\n0.003235 0.000000 0.440887\n0.029968 0.000000 0.441040\n0.063507 0.000000 0.441193\n0.092682 0.000000 0.441345\n0.119720 0.000000 0.441498\n0.144989 0.000000 0.441681\n0.168579 0.000000 0.441833\n0.190735 0.000000 0.442047\n0.212067 0.000000 0.442200\n0.232574 0.000061 0.442383\n0.252838 0.001068 0.442566\n0.273041 0.002106 0.442749\n0.293884 0.003204 0.442963\n0.315399 0.004364 0.443146\n0.338196 0.005554 0.443359\n0.362671 0.006775 0.443542\n0.389008 0.008057 0.443756\n0.417694 0.009277 0.443970\n0.449036 0.010620 0.444183\n0.483704 0.011902 0.444397\n0.521790 0.013367 0.444641\n0.563568 0.014771 0.444855\n0.608368 0.016113 0.445038\n0.656250 0.017487 0.445282\n0.706177 0.018921 0.445526\n0.758026 0.020294 0.445740\n0.811310 0.021851 0.445984\n0.865570 0.023376 0.446198\n0.915527 0.024811 0.446442\n0.000000 0.015900 0.440735\n0.000000 0.016663 0.440887\n0.000000 0.017639 0.441040\n0.004608 0.018585 0.441162\n0.031464 0.019653 0.441345\n0.065186 0.020569 0.441498\n0.094086 0.021576 0.441650\n0.121124 0.022644 0.441833\n0.146210 0.023712 0.442017\n0.169769 0.024872 0.442200\n0.191803 0.026062 0.442383\n0.212982 0.027191 0.442566\n0.233429 0.028412 0.442749\n0.253754 0.029572 0.442963\n0.273987 0.030792 0.443146\n0.294800 0.032043 0.443359\n0.316345 0.033386 0.443542\n0.339081 0.034454 0.443726\n0.363464 0.035858 0.443970\n0.389954 0.037201 0.444183\n0.418518 0.038483 0.444397\n0.449982 0.039917 0.444641\n0.484680 0.041229 0.444824\n0.522766 0.042603 0.445038\n0.564453 0.043945 0.445282\n0.609344 0.045380 0.445496\n0.656830 0.047729 0.445740\n0.706787 0.050171 0.445953\n0.758453 0.052643 0.446198\n0.811554 0.055267 0.446442\n0.865692 0.058014 0.446686\n0.915527 0.059814 0.446899\n0.000000 0.045044 0.441040\n0.000000 0.046021 0.441162\n0.000000 0.047974 0.441345\n0.006073 0.049652 0.441498\n0.033112 0.051392 0.441650\n0.066803 0.053192 0.441803\n0.095520 0.055176 0.442017\n0.122528 0.057281 0.442200\n0.147461 0.059052 0.442383\n0.170898 0.060303 0.442566\n0.192932 0.061462 0.442749\n0.214020 0.062653 0.442963\n0.234406 0.064056 0.443115\n0.254639 0.065399 0.443359\n0.274902 0.066711 0.443512\n0.295563 0.068085 0.443726\n0.317291 0.069550 0.443970\n0.340027 0.070923 0.444183\n0.364349 0.072296 0.444397\n0.390717 0.073730 0.444611\n0.419495 0.075226 0.444824\n0.450989 0.076660 0.445038\n0.485626 0.078094 0.445251\n0.523743 0.079468 0.445496\n0.565460 0.080994 0.445709\n0.610107 0.082458 0.445953\n0.657684 0.083893 0.446198\n0.707458 0.085510 0.446442\n0.759033 0.086945 0.446686\n0.812012 0.088379 0.446899\n0.865845 0.089905 0.447113\n0.915527 0.091492 0.447388\n0.000000 0.082092 0.441345\n0.000000 0.083160 0.441498\n0.000000 0.084351 0.441650\n0.007629 0.085205 0.441803\n0.034729 0.086395 0.442017\n0.068481 0.087524 0.442169\n0.097260 0.088715 0.442352\n0.123932 0.089722 0.442535\n0.148743 0.090942 0.442749\n0.172150 0.092224 0.442963\n0.194031 0.093445 0.443115\n0.215057 0.094574 0.443359\n0.235474 0.095795 0.443512\n0.255524 0.097107 0.443726\n0.275909 0.098389 0.443970\n0.296539 0.099701 0.444153\n0.318054 0.101013 0.444397\n0.340973 0.102356 0.444611\n0.365326 0.103699 0.444824\n0.391724 0.104858 0.445038\n0.420502 0.106201 0.445251\n0.451996 0.107635 0.445496\n0.486542 0.109009 0.445709\n0.524658 0.110382 0.445953\n0.566223 0.111816 0.446167\n0.610901 0.113220 0.446411\n0.658325 0.114563 0.446686\n0.708008 0.115875 0.446869\n0.759491 0.117188 0.447113\n0.812378 0.118591 0.447357\n0.865997 0.120026 0.447601\n0.915527 0.121429 0.447845\n0.000000 0.113129 0.441620\n0.000000 0.113953 0.441803\n0.000000 0.115021 0.442017\n0.009308 0.116119 0.442169\n0.036316 0.117004 0.442352\n0.070374 0.118134 0.442535\n0.098785 0.119263 0.442749\n0.125519 0.120178 0.442963\n0.150299 0.121338 0.443115\n0.173370 0.122528 0.443359\n0.195221 0.123718 0.443512\n0.216187 0.124695 0.443726\n0.236511 0.125916 0.443939\n0.256531 0.127136 0.444153\n0.276672 0.128387 0.444397\n0.297485 0.129395 0.444611\n0.319031 0.130646 0.444824\n0.341827 0.131897 0.445038\n0.366333 0.133148 0.445251\n0.392731 0.134369 0.445496\n0.421539 0.135468 0.445709\n0.453033 0.136749 0.445953\n0.487518 0.138031 0.446167\n0.525604 0.139343 0.446411\n0.567200 0.140625 0.446686\n0.611877 0.141693 0.446869\n0.659180 0.142975 0.447113\n0.708740 0.144257 0.447357\n0.759949 0.145569 0.447601\n0.812622 0.146881 0.447845\n0.866241 0.147949 0.448090\n0.915527 0.149261 0.448364\n0.000000 0.141815 0.442017\n0.000000 0.142853 0.442169\n0.000000 0.143860 0.442352\n0.011047 0.144653 0.442535\n0.038086 0.145721 0.442749\n0.072266 0.146667 0.442932\n0.100616 0.147614 0.443085\n0.127075 0.148682 0.443329\n0.151642 0.149536 0.443512\n0.174652 0.150635 0.443726\n0.196350 0.151794 0.443939\n0.217163 0.152649 0.444153\n0.237579 0.153778 0.444397\n0.257568 0.154907 0.444611\n0.277679 0.155914 0.444794\n0.298492 0.156982 0.445038\n0.320007 0.158112 0.445251\n0.342804 0.159210 0.445465\n0.367340 0.160217 0.445709\n0.393768 0.161407 0.445953\n0.422485 0.162537 0.446167\n0.454010 0.163544 0.446381\n0.488586 0.164703 0.446655\n0.526642 0.165863 0.446869\n0.568237 0.166931 0.447113\n0.612793 0.167999 0.447357\n0.660034 0.169189 0.447601\n0.709351 0.170380 0.447815\n0.760529 0.171356 0.448059\n0.812958 0.172546 0.448364\n0.866547 0.173737 0.448578\n0.915527 0.174774 0.448822\n0.000000 0.168488 0.442352\n0.000000 0.169403 0.442535\n0.000000 0.170349 0.442719\n0.012817 0.171112 0.442932\n0.039948 0.172058 0.443085\n0.074036 0.172821 0.443329\n0.102325 0.173798 0.443512\n0.128571 0.174622 0.443726\n0.153015 0.175629 0.443909\n0.175903 0.176636 0.444153\n0.197632 0.177429 0.444397\n0.218323 0.178467 0.444611\n0.238647 0.179291 0.444794\n0.258606 0.180328 0.445007\n0.278717 0.181396 0.445221\n0.299469 0.182281 0.445465\n0.321014 0.183289 0.445709\n0.343842 0.184387 0.445953\n0.368317 0.185242 0.446167\n0.394714 0.186340 0.446381\n0.423431 0.187164 0.446655\n0.454987 0.188232 0.446869\n0.489655 0.189362 0.447113\n0.527679 0.190186 0.447357\n0.569153 0.191284 0.447571\n0.613495 0.192352 0.447815\n0.660675 0.193237 0.448059\n0.710052 0.194305 0.448334\n0.760956 0.195404 0.448578\n0.813416 0.196289 0.448792\n0.866699 0.197357 0.449036\n0.915527 0.198303 0.449280\n0.000000 0.193085 0.442719\n0.000000 0.193970 0.442932\n0.000000 0.194672 0.443085\n0.014679 0.195557 0.443298\n0.041809 0.196259 0.443481\n0.076050 0.197174 0.443726\n0.104156 0.197876 0.443909\n0.130310 0.198853 0.444153\n0.154449 0.199554 0.444366\n0.177338 0.200500 0.444580\n0.198792 0.201263 0.444763\n0.219543 0.202240 0.445007\n0.239746 0.202942 0.445221\n0.259705 0.203918 0.445435\n0.279785 0.204895 0.445709\n0.300476 0.205688 0.445953\n0.322021 0.206635 0.446136\n0.344849 0.207428 0.446381\n0.369293 0.208435 0.446625\n0.395660 0.209198 0.446838\n0.424469 0.210205 0.447083\n0.455963 0.211151 0.447357\n0.490723 0.211975 0.447571\n0.528778 0.213013 0.447815\n0.570038 0.213745 0.448059\n0.614502 0.214783 0.448334\n0.661530 0.215576 0.448578\n0.710602 0.216583 0.448792\n0.761566 0.217590 0.449036\n0.813782 0.218353 0.449280\n0.866821 0.219360 0.449524\n0.915527 0.220154 0.449768\n0.000000 0.216064 0.443085\n0.000000 0.216675 0.443298\n0.000000 0.217499 0.443481\n0.016632 0.218140 0.443695\n0.043701 0.218811 0.443909\n0.078033 0.219666 0.444122\n0.106049 0.220306 0.444366\n0.131866 0.221222 0.444580\n0.156128 0.221863 0.444763\n0.178772 0.222748 0.445007\n0.200165 0.223450 0.445221\n0.220673 0.224365 0.445435\n0.240906 0.225067 0.445679\n0.260773 0.225952 0.445923\n0.280853 0.226654 0.446136\n0.301483 0.227539 0.446381\n0.323059 0.228271 0.446625\n0.345886 0.229187 0.446838\n0.370270 0.229919 0.447083\n0.396729 0.230804 0.447357\n0.425537 0.231537 0.447540\n0.457092 0.232483 0.447784\n0.491608 0.233307 0.448059\n0.529785 0.234161 0.448303\n0.571075 0.234833 0.448578\n0.615417 0.235748 0.448792\n0.662231 0.236664 0.449036\n0.711426 0.237427 0.449280\n0.762024 0.238403 0.449524\n0.814026 0.239075 0.449768\n0.867004 0.239990 0.450012\n0.915527 0.240753 0.450256\n0.000000 0.237396 0.443481\n0.000000 0.238068 0.443695\n0.000000 0.238770 0.443909\n0.018738 0.239380 0.444122\n0.045746 0.240204 0.444366\n0.080139 0.240784 0.444580\n0.107941 0.241638 0.444763\n0.133636 0.242249 0.445007\n0.157562 0.243042 0.445221\n0.180115 0.243713 0.445435\n0.201538 0.244385 0.445679\n0.221893 0.245209 0.445923\n0.242035 0.245850 0.446136\n0.261841 0.246674 0.446381\n0.281921 0.247345 0.446625\n0.302429 0.248199 0.446838\n0.324066 0.248840 0.447052\n0.346954 0.249725 0.447357\n0.371307 0.250427 0.447540\n0.397797 0.251282 0.447784\n0.426666 0.251923 0.448059\n0.458160 0.252747 0.448303\n0.492676 0.253479 0.448547\n0.530670 0.254333 0.448792\n0.572083 0.255005 0.449036\n0.616394 0.255859 0.449280\n0.663055 0.256592 0.449493\n0.711945 0.257172 0.449768\n0.762421 0.258118 0.450012\n0.814331 0.258789 0.450256\n0.867126 0.259644 0.450500\n0.915527 0.260315 0.450745\n0.000000 0.257904 0.443909\n0.000000 0.258484 0.444122\n0.000000 0.259216 0.444336\n0.020721 0.259796 0.444580\n0.049347 0.260406 0.444763\n0.082245 0.261139 0.444977\n0.109741 0.261719 0.445221\n0.135223 0.262482 0.445435\n0.159149 0.263092 0.445679\n0.181458 0.263763 0.445923\n0.202789 0.264496 0.446106\n0.223175 0.265106 0.446381\n0.243195 0.265900 0.446625\n0.263000 0.266510 0.446838\n0.282990 0.267365 0.447052\n0.303497 0.267944 0.447327\n0.325012 0.268555 0.447540\n0.348022 0.269409 0.447784\n0.372406 0.269989 0.448029\n0.398865 0.270844 0.448303\n0.427734 0.271454 0.448547\n0.459259 0.272308 0.448792\n0.493774 0.272919 0.449036\n0.531708 0.273743 0.449249\n0.573090 0.274384 0.449493\n0.617126 0.275055 0.449738\n0.663910 0.275848 0.450012\n0.712677 0.276428 0.450226\n0.763123 0.277313 0.450500\n0.814819 0.277893 0.450714\n0.867249 0.278748 0.450989\n0.915527 0.279358 0.451233\n0.000000 0.277679 0.444336\n0.000000 0.278351 0.444580\n0.000000 0.278931 0.444763\n0.022858 0.279480 0.444977\n0.053131 0.280243 0.445190\n0.084412 0.280731 0.445435\n0.111694 0.281311 0.445679\n0.137085 0.282074 0.445923\n0.160767 0.282623 0.446106\n0.183014 0.283417 0.446350\n0.204102 0.283966 0.446594\n0.224335 0.284546 0.446808\n0.244354 0.285339 0.447052\n0.264099 0.285919 0.447327\n0.283966 0.286713 0.447540\n0.304596 0.287262 0.447784\n0.326111 0.287964 0.448029\n0.348907 0.288666 0.448303\n0.373505 0.289246 0.448517\n0.399994 0.290070 0.448792\n0.428864 0.290649 0.449005\n0.460358 0.291351 0.449249\n0.494843 0.292053 0.449493\n0.532837 0.292633 0.449738\n0.573883 0.293427 0.450012\n0.618103 0.294037 0.450226\n0.664764 0.294891 0.450500\n0.713257 0.295441 0.450714\n0.763550 0.296021 0.450989\n0.815125 0.296814 0.451233\n0.867401 0.297424 0.451477\n0.915527 0.298218 0.451721\n0.000000 0.297211 0.444733\n0.000000 0.297913 0.444977\n0.000000 0.298431 0.445190\n0.025024 0.298981 0.445404\n0.056946 0.299683 0.445648\n0.086517 0.300232 0.445892\n0.113678 0.300842 0.446106\n0.138702 0.301514 0.446350\n0.162231 0.302032 0.446594\n0.184479 0.302765 0.446808\n0.205353 0.303345 0.447052\n0.225708 0.303894 0.447296\n0.245514 0.304688 0.447540\n0.265045 0.305206 0.447784\n0.285156 0.306000 0.448029\n0.305695 0.306549 0.448273\n0.327209 0.307129 0.448517\n0.350006 0.307892 0.448761\n0.374603 0.308441 0.449005\n0.401062 0.309143 0.449219\n0.429962 0.309814 0.449493\n0.461487 0.310364 0.449707\n0.495972 0.311157 0.450012\n0.533905 0.311737 0.450226\n0.574982 0.312531 0.450470\n0.619080 0.313080 0.450714\n0.665466 0.313660 0.450989\n0.714020 0.314423 0.451233\n0.764160 0.315002 0.451477\n0.815399 0.315735 0.451691\n0.867554 0.316376 0.451965\n0.915527 0.316895 0.452209\n0.000000 0.316864 0.445160\n0.000000 0.317535 0.445404\n0.001221 0.318054 0.445648\n0.027161 0.318573 0.445892\n0.059937 0.319305 0.446075\n0.088745 0.319824 0.446350\n0.115540 0.320465 0.446594\n0.140564 0.321045 0.446777\n0.163971 0.321625 0.447052\n0.185852 0.322357 0.447296\n0.206696 0.322906 0.447510\n0.226959 0.323486 0.447754\n0.246613 0.324188 0.448029\n0.266266 0.324738 0.448273\n0.286255 0.325378 0.448517\n0.306793 0.326019 0.448761\n0.328278 0.326599 0.449005\n0.351105 0.327362 0.449219\n0.375702 0.327942 0.449463\n0.402191 0.328613 0.449707\n0.431091 0.329254 0.450012\n0.462585 0.329773 0.450226\n0.497070 0.330566 0.450439\n0.535004 0.331116 0.450714\n0.576019 0.331635 0.450958\n0.619995 0.332428 0.451233\n0.666351 0.332977 0.451477\n0.714600 0.333740 0.451691\n0.764587 0.334259 0.451965\n0.815857 0.334839 0.452179\n0.867798 0.335602 0.452423\n0.915527 0.336182 0.452698\n0.000000 0.337158 0.445648\n0.000000 0.337677 0.445862\n0.003174 0.338165 0.446075\n0.029510 0.338867 0.446350\n0.062256 0.339386 0.446594\n0.090851 0.340057 0.446777\n0.117493 0.340637 0.447021\n0.142365 0.341187 0.447296\n0.165497 0.341858 0.447510\n0.187317 0.342438 0.447754\n0.208038 0.342926 0.448029\n0.228210 0.343719 0.448242\n0.247864 0.344208 0.448517\n0.267456 0.344849 0.448761\n0.287231 0.345520 0.449005\n0.307861 0.346039 0.449219\n0.329407 0.346802 0.449463\n0.352173 0.347382 0.449707\n0.376831 0.347900 0.449982\n0.403320 0.348694 0.450226\n0.432098 0.349213 0.450439\n0.463470 0.349915 0.450684\n0.498169 0.350525 0.450958\n0.536011 0.351074 0.451202\n0.577026 0.351807 0.451477\n0.620758 0.352386 0.451660\n0.666992 0.352905 0.451935\n0.715332 0.353699 0.452179\n0.765228 0.354218 0.452423\n0.816193 0.354980 0.452667\n0.868073 0.355499 0.452942\n0.915527 0.356049 0.453125\n0.000000 0.358093 0.446075\n0.000000 0.358704 0.446320\n0.005341 0.359222 0.446594\n0.031708 0.359985 0.446777\n0.064850 0.360474 0.447021\n0.093079 0.360992 0.447296\n0.119537 0.361694 0.447510\n0.144104 0.362244 0.447723\n0.167175 0.362885 0.447998\n0.188873 0.363525 0.448242\n0.209412 0.364044 0.448486\n0.229462 0.364685 0.448761\n0.249054 0.365326 0.448975\n0.268463 0.365845 0.449219\n0.288361 0.366608 0.449432\n0.308990 0.367126 0.449707\n0.330536 0.367798 0.449982\n0.353302 0.368439 0.450195\n0.377899 0.368988 0.450439\n0.404358 0.369629 0.450684\n0.433075 0.370300 0.450958\n0.464569 0.370789 0.451202\n0.499207 0.371582 0.451447\n0.537018 0.372101 0.451660\n0.578033 0.372742 0.451935\n0.621735 0.373413 0.452179\n0.667847 0.373932 0.452423\n0.715912 0.374695 0.452667\n0.765656 0.375244 0.452942\n0.816467 0.375763 0.453125\n0.868164 0.376495 0.453369\n0.915527 0.377014 0.453613\n0.000000 0.380310 0.446564\n0.000000 0.380829 0.446777\n0.007629 0.381561 0.447021\n0.034058 0.382080 0.447266\n0.067139 0.382721 0.447479\n0.095276 0.383301 0.447723\n0.121582 0.383850 0.447998\n0.145966 0.384583 0.448242\n0.168762 0.385132 0.448486\n0.190308 0.385712 0.448730\n0.210846 0.386383 0.448975\n0.230682 0.386932 0.449188\n0.250244 0.387512 0.449432\n0.269623 0.388214 0.449677\n0.289490 0.388733 0.449982\n0.310120 0.389496 0.450165\n0.331604 0.390076 0.450439\n0.354431 0.390625 0.450684\n0.378815 0.391357 0.450958\n0.405487 0.391876 0.451202\n0.434174 0.392487 0.451447\n0.465698 0.393158 0.451660\n0.500244 0.393738 0.451904\n0.537994 0.394470 0.452148\n0.578918 0.395050 0.452423\n0.622681 0.395538 0.452667\n0.668701 0.396271 0.452911\n0.716614 0.396790 0.453125\n0.766083 0.397522 0.453369\n0.816772 0.398102 0.453613\n0.868317 0.398621 0.453949\n0.915527 0.399384 0.454285\n0.000000 0.404053 0.447021\n0.000000 0.404694 0.447266\n0.009918 0.405243 0.447479\n0.036285 0.405975 0.447723\n0.069550 0.406494 0.447998\n0.097504 0.407013 0.448242\n0.123566 0.407745 0.448486\n0.147614 0.408295 0.448730\n0.170258 0.408997 0.448975\n0.191681 0.409576 0.449188\n0.212189 0.410095 0.449432\n0.231964 0.410828 0.449677\n0.251465 0.411407 0.449951\n0.270813 0.411957 0.450165\n0.290588 0.412720 0.450409\n0.311127 0.413269 0.450684\n0.332733 0.413940 0.450928\n0.355499 0.414581 0.451202\n0.379913 0.415100 0.451416\n0.406403 0.415802 0.451660\n0.435333 0.416382 0.451904\n0.466797 0.416931 0.452148\n0.501312 0.417664 0.452393\n0.539062 0.418243 0.452667\n0.579926 0.418884 0.452911\n0.623505 0.419495 0.453125\n0.669342 0.420013 0.453339\n0.717163 0.420807 0.453613\n0.766632 0.421295 0.453949\n0.817200 0.421814 0.454285\n0.868469 0.422577 0.454498\n0.915527 0.423065 0.454712\n0.000000 0.429718 0.447479\n0.000000 0.430267 0.447723\n0.012177 0.431000 0.447968\n0.038727 0.431488 0.448242\n0.072021 0.432251 0.448486\n0.099701 0.432831 0.448700\n0.125580 0.433350 0.448975\n0.149506 0.434052 0.449158\n0.172058 0.434631 0.449432\n0.193268 0.435150 0.449677\n0.213501 0.435913 0.449951\n0.233185 0.436462 0.450165\n0.252625 0.437134 0.450409\n0.272064 0.437775 0.450684\n0.291748 0.438324 0.450928\n0.312256 0.439056 0.451172\n0.333771 0.439606 0.451416\n0.356598 0.440155 0.451660\n0.381012 0.440887 0.451904\n0.407532 0.441437 0.452148\n0.436401 0.442108 0.452393\n0.467896 0.442749 0.452667\n0.502380 0.443268 0.452881\n0.540161 0.443939 0.453094\n0.580902 0.444580 0.453339\n0.624329 0.445068 0.453613\n0.670135 0.445831 0.453949\n0.717865 0.446350 0.454285\n0.767059 0.446899 0.454498\n0.817505 0.447601 0.454712\n0.868652 0.448090 0.454987\n0.915527 0.448761 0.455200\n0.000000 0.457611 0.447968\n0.000000 0.458130 0.448212\n0.014557 0.458862 0.448486\n0.041016 0.459412 0.448700\n0.074524 0.459930 0.448944\n0.101868 0.460663 0.449158\n0.127411 0.461212 0.449402\n0.151245 0.461761 0.449677\n0.173523 0.462524 0.449951\n0.194763 0.463043 0.450165\n0.214844 0.463715 0.450409\n0.234406 0.464355 0.450684\n0.253845 0.464905 0.450928\n0.273071 0.465698 0.451172\n0.292877 0.466217 0.451416\n0.313385 0.466766 0.451660\n0.334900 0.467529 0.451904\n0.357727 0.468048 0.452148\n0.382141 0.468658 0.452362\n0.408661 0.469360 0.452667\n0.437469 0.469849 0.452881\n0.468994 0.470642 0.453094\n0.503448 0.471191 0.453339\n0.541199 0.471710 0.453583\n0.581909 0.472443 0.453949\n0.625305 0.472961 0.454285\n0.670807 0.473480 0.454498\n0.718353 0.474182 0.454712\n0.767426 0.474731 0.454956\n0.817810 0.475281 0.455170\n0.868774 0.475922 0.455383\n0.915527 0.476471 0.455597\n0.000000 0.487885 0.448456\n0.000000 0.488373 0.448700\n0.017029 0.489166 0.448944\n0.043396 0.489716 0.449158\n0.076874 0.490234 0.449402\n0.104126 0.490997 0.449677\n0.129456 0.491486 0.449921\n0.153015 0.492310 0.450165\n0.175323 0.492828 0.450378\n0.196167 0.493347 0.450653\n0.216278 0.494110 0.450928\n0.235657 0.494659 0.451172\n0.255005 0.495331 0.451416\n0.274231 0.495972 0.451660\n0.294006 0.496490 0.451904\n0.314362 0.497162 0.452148\n0.335938 0.497772 0.452362\n0.358826 0.498322 0.452637\n0.383240 0.499084 0.452881\n0.409729 0.499603 0.453094\n0.438599 0.500153 0.453308\n0.470123 0.500854 0.453583\n0.504547 0.501404 0.453888\n0.542053 0.501892 0.454285\n0.582764 0.502625 0.454468\n0.625977 0.503143 0.454712\n0.671631 0.503754 0.454956\n0.719086 0.504364 0.455170\n0.768066 0.504852 0.455383\n0.817993 0.505585 0.455597\n0.868927 0.506073 0.455811\n0.915527 0.506561 0.456024\n0.000000 0.521057 0.448944\n0.000000 0.521576 0.449158\n0.019440 0.522308 0.449402\n0.045654 0.522827 0.449677\n0.079254 0.523407 0.449921\n0.106262 0.524139 0.450134\n0.131409 0.524658 0.450378\n0.154907 0.525208 0.450653\n0.176788 0.526001 0.450928\n0.197571 0.526489 0.451141\n0.217651 0.527100 0.451385\n0.236938 0.527740 0.451660\n0.256195 0.528320 0.451874\n0.275391 0.529083 0.452118\n0.295135 0.529572 0.452362\n0.315430 0.530090 0.452637\n0.336884 0.530853 0.452881\n0.359711 0.531372 0.453064\n0.384308 0.531860 0.453308\n0.410828 0.532623 0.453552\n0.439697 0.533142 0.453888\n0.471191 0.533630 0.454254\n0.505585 0.534363 0.454468\n0.542999 0.534851 0.454681\n0.583649 0.535461 0.454956\n0.626862 0.536072 0.455170\n0.672424 0.536560 0.455383\n0.719574 0.537048 0.455597\n0.768433 0.537781 0.455811\n0.818390 0.538239 0.455994\n0.869232 0.538696 0.456238\n0.915527 0.539337 0.456421\n0.000000 0.557129 0.449402\n0.000000 0.557861 0.449677\n0.021759 0.558380 0.449921\n0.049988 0.558990 0.450104\n0.081757 0.559631 0.450378\n0.108459 0.560150 0.450653\n0.133301 0.560730 0.450897\n0.156555 0.561432 0.451141\n0.178436 0.561890 0.451385\n0.199066 0.562622 0.451660\n0.218964 0.563171 0.451874\n0.238312 0.563660 0.452118\n0.257355 0.564392 0.452362\n0.276520 0.564911 0.452606\n0.296234 0.565430 0.452850\n0.316528 0.566101 0.453064\n0.337982 0.566681 0.453308\n0.360748 0.567108 0.453552\n0.385406 0.567871 0.453888\n0.411926 0.568359 0.454254\n0.440674 0.568817 0.454437\n0.472076 0.569550 0.454681\n0.506592 0.570038 0.454926\n0.544037 0.570465 0.455139\n0.584656 0.571198 0.455383\n0.627747 0.571655 0.455597\n0.672974 0.572083 0.455780\n0.720276 0.572723 0.455994\n0.769012 0.573242 0.456238\n0.818695 0.573700 0.456421\n0.869324 0.574158 0.456635\n0.915527 0.574738 0.456848\n0.000000 0.596222 0.449890\n0.000000 0.596863 0.450104\n0.024261 0.597351 0.450378\n0.054138 0.598022 0.450653\n0.084167 0.598541 0.450897\n0.110626 0.598999 0.451141\n0.135223 0.599731 0.451355\n0.158356 0.600220 0.451660\n0.179993 0.600677 0.451874\n0.200562 0.601196 0.452087\n0.220245 0.601868 0.452362\n0.239471 0.602295 0.452606\n0.258545 0.602875 0.452850\n0.277618 0.603485 0.453064\n0.297302 0.604004 0.453308\n0.317657 0.604492 0.453552\n0.339050 0.605133 0.453888\n0.361847 0.605591 0.454254\n0.386475 0.606079 0.454437\n0.412964 0.606720 0.454681\n0.441620 0.607178 0.454926\n0.473083 0.607605 0.455139\n0.507416 0.608276 0.455383\n0.545074 0.608704 0.455597\n0.585602 0.609131 0.455780\n0.628448 0.609680 0.455994\n0.673828 0.610199 0.456238\n0.720703 0.610626 0.456421\n0.769348 0.611023 0.456635\n0.819000 0.611664 0.456848\n0.869446 0.612061 0.457001\n0.915527 0.612427 0.457214\n0.000000 0.637726 0.450348\n0.001343 0.638245 0.450653\n0.026733 0.638885 0.450867\n0.058624 0.639313 0.451111\n0.086517 0.639740 0.451355\n0.112762 0.640411 0.451630\n0.137177 0.640869 0.451874\n0.159943 0.641266 0.452087\n0.181458 0.641693 0.452332\n0.201904 0.642365 0.452606\n0.221497 0.642822 0.452850\n0.240692 0.643188 0.453033\n0.259705 0.643860 0.453308\n0.278717 0.644318 0.453552\n0.298401 0.644714 0.453827\n0.318695 0.645294 0.454254\n0.340149 0.645813 0.454437\n0.362915 0.646179 0.454681\n0.387421 0.646576 0.454926\n0.413818 0.647217 0.455139\n0.442657 0.647614 0.455353\n0.474121 0.648041 0.455597\n0.508423 0.648407 0.455780\n0.546021 0.649017 0.455994\n0.586273 0.649384 0.456207\n0.629272 0.649811 0.456421\n0.674316 0.650146 0.456635\n0.721344 0.650757 0.456848\n0.769714 0.651062 0.457001\n0.819153 0.651428 0.457214\n0.869537 0.651764 0.457397\n0.915527 0.652313 0.457611\n0.000000 0.681366 0.450867\n0.003632 0.681763 0.451111\n0.029144 0.682159 0.451355\n0.061005 0.682739 0.451630\n0.088837 0.683167 0.451843\n0.114868 0.683533 0.452087\n0.139130 0.683899 0.452332\n0.161774 0.684357 0.452606\n0.183105 0.684875 0.452850\n0.203247 0.685242 0.453033\n0.222809 0.685608 0.453308\n0.241974 0.686096 0.453522\n0.260834 0.686554 0.453827\n0.279877 0.686951 0.454254\n0.299469 0.687286 0.454437\n0.319763 0.687866 0.454681\n0.341187 0.688202 0.454926\n0.363953 0.688599 0.455139\n0.388367 0.688965 0.455353\n0.414856 0.689270 0.455597\n0.443695 0.689819 0.455780\n0.475159 0.690186 0.455994\n0.509430 0.690491 0.456207\n0.546814 0.690857 0.456421\n0.587158 0.691345 0.456635\n0.630066 0.691711 0.456848\n0.675079 0.691986 0.457001\n0.721863 0.692291 0.457214\n0.770020 0.692566 0.457397\n0.819519 0.693146 0.457611\n0.869720 0.693420 0.457794\n0.915527 0.693726 0.457947\n0.000000 0.726471 0.451355\n0.005951 0.726746 0.451630\n0.031525 0.727264 0.451843\n0.063660 0.727539 0.452087\n0.091125 0.727905 0.452332\n0.117004 0.728241 0.452576\n0.140869 0.728607 0.452820\n0.163330 0.729095 0.453033\n0.184570 0.729401 0.453278\n0.204681 0.729675 0.453522\n0.224060 0.729980 0.453827\n0.243073 0.730286 0.454224\n0.261993 0.730835 0.454437\n0.280945 0.731171 0.454651\n0.300476 0.731445 0.454895\n0.320801 0.731689 0.455109\n0.342224 0.732025 0.455322\n0.364990 0.732513 0.455566\n0.389404 0.732788 0.455780\n0.415894 0.733063 0.455963\n0.444733 0.733307 0.456207\n0.476135 0.733673 0.456421\n0.510406 0.734131 0.456635\n0.547699 0.734406 0.456818\n0.588104 0.734680 0.457001\n0.630707 0.734863 0.457184\n0.675598 0.735107 0.457397\n0.722260 0.735474 0.457611\n0.770538 0.735840 0.457764\n0.819885 0.736115 0.457947\n0.869781 0.736298 0.458130\n0.915527 0.736542 0.458282\n0.000000 0.772797 0.451813\n0.008331 0.773010 0.452057\n0.033966 0.773468 0.452332\n0.066101 0.773743 0.452576\n0.093445 0.773956 0.452820\n0.118927 0.774231 0.453033\n0.142761 0.774475 0.453278\n0.165100 0.774689 0.453522\n0.186005 0.775116 0.453766\n0.205994 0.775421 0.454224\n0.225250 0.775604 0.454407\n0.244324 0.775848 0.454651\n0.263092 0.776062 0.454895\n0.282013 0.776306 0.455109\n0.301514 0.776642 0.455322\n0.321686 0.776978 0.455566\n0.343231 0.777191 0.455750\n0.365967 0.777466 0.455963\n0.390411 0.777618 0.456207\n0.416870 0.777802 0.456390\n0.445709 0.778076 0.456635\n0.476959 0.778229 0.456818\n0.511200 0.778564 0.456970\n0.548615 0.778839 0.457184\n0.588837 0.779022 0.457367\n0.631531 0.779205 0.457581\n0.676331 0.779388 0.457764\n0.722900 0.779572 0.457947\n0.770874 0.779755 0.458130\n0.820068 0.779968 0.458282\n0.869873 0.780334 0.458435\n0.915527 0.780487 0.458618\n0.000000 0.820160 0.452332\n0.010590 0.820282 0.452576\n0.036255 0.820465 0.452820\n0.068512 0.820557 0.453003\n0.095581 0.820770 0.453278\n0.120880 0.820923 0.453522\n0.144531 0.821106 0.453766\n0.166626 0.821259 0.454193\n0.187378 0.821625 0.454407\n0.207428 0.821808 0.454651\n0.226562 0.821960 0.454865\n0.245453 0.822113 0.455109\n0.264191 0.822266 0.455322\n0.283081 0.822449 0.455566\n0.302399 0.822540 0.455750\n0.322662 0.822693 0.455963\n0.344025 0.822815 0.456207\n0.366852 0.823120 0.456390\n0.391388 0.823364 0.456635\n0.417877 0.823456 0.456787\n0.446472 0.823608 0.456970\n0.477875 0.823792 0.457184\n0.512115 0.823883 0.457367\n0.549591 0.824036 0.457581\n0.589569 0.824127 0.457764\n0.632111 0.824249 0.457947\n0.676819 0.824402 0.458130\n0.723236 0.824463 0.458282\n0.771179 0.824768 0.458435\n0.820221 0.824921 0.458618\n0.869995 0.825104 0.458771\n0.915527 0.825165 0.458954\n0.000000 0.867645 0.452789\n0.012939 0.867737 0.453003\n0.038696 0.867798 0.453278\n0.071106 0.867981 0.453522\n0.097809 0.868103 0.453766\n0.122864 0.868286 0.454193\n0.146301 0.868378 0.454407\n0.168243 0.868469 0.454651\n0.188965 0.868530 0.454865\n0.208679 0.868622 0.455109\n0.227692 0.868713 0.455322\n0.246460 0.868744 0.455566\n0.265106 0.868835 0.455719\n0.284027 0.868896 0.455963\n0.303467 0.868988 0.456177\n0.323639 0.869110 0.456360\n0.345001 0.869110 0.456604\n0.367737 0.869202 0.456787\n0.392273 0.869263 0.456970\n0.418640 0.869293 0.457184\n0.447388 0.869385 0.457367\n0.478821 0.869446 0.457581\n0.513000 0.869568 0.457733\n0.550201 0.869720 0.457947\n0.590271 0.869781 0.458130\n0.632843 0.869934 0.458282\n0.677368 0.869995 0.458435\n0.723816 0.870087 0.458618\n0.771637 0.870087 0.458771\n0.820435 0.870148 0.458954\n0.870178 0.870178 0.459106\n0.915527 0.870270 0.459259\n0.000000 0.915527 0.453247\n0.015350 0.915527 0.453491\n0.040894 0.915527 0.453766\n0.073456 0.915527 0.454193\n0.100037 0.915527 0.454407\n0.124847 0.915527 0.454651\n0.148041 0.915527 0.454865\n0.169800 0.915527 0.455109\n0.190308 0.915527 0.455292\n0.209900 0.915527 0.455536\n0.228851 0.915527 0.455719\n0.247589 0.915527 0.455963\n0.266144 0.915527 0.456177\n0.284973 0.915527 0.456360\n0.304443 0.915527 0.456604\n0.324615 0.915527 0.456787\n0.345978 0.915527 0.456970\n0.368744 0.915527 0.457184\n0.393097 0.915527 0.457367\n0.419556 0.915527 0.457581\n0.448334 0.915527 0.457733\n0.479584 0.915527 0.457947\n0.513885 0.915527 0.458099\n0.551086 0.915527 0.458282\n0.590942 0.915527 0.458435\n0.633331 0.915527 0.458618\n0.677887 0.915527 0.458771\n0.724182 0.915527 0.458923\n0.771912 0.915527 0.459076\n0.820740 0.915527 0.459259\n0.870392 0.915527 0.459381\n0.915527 0.915527 0.459534\n0.000000 0.000000 0.456696\n0.000000 0.000000 0.456818\n0.000000 0.000000 0.456909\n0.002197 0.000000 0.457031\n0.028870 0.000000 0.457184\n0.062256 0.000000 0.457336\n0.091431 0.000000 0.457489\n0.118591 0.000000 0.457642\n0.144012 0.000000 0.457794\n0.167694 0.000000 0.457947\n0.190063 0.000000 0.458130\n0.211212 0.000000 0.458282\n0.231873 0.000000 0.458466\n0.252075 0.000000 0.458618\n0.272491 0.000000 0.458801\n0.293121 0.000000 0.458984\n0.314819 0.000000 0.459229\n0.337585 0.000000 0.459412\n0.361847 0.000000 0.459595\n0.388184 0.000000 0.459778\n0.416931 0.000000 0.459961\n0.448364 0.000000 0.460175\n0.482880 0.000000 0.460358\n0.521149 0.000000 0.460602\n0.562775 0.000000 0.460754\n0.607849 0.000000 0.460968\n0.655518 0.000000 0.461243\n0.705627 0.000000 0.461456\n0.757568 0.000000 0.461670\n0.811096 0.000000 0.461884\n0.865479 0.000000 0.462067\n0.915527 0.000000 0.462280\n0.000000 0.000000 0.456909\n0.000000 0.000000 0.457031\n0.000000 0.000000 0.457184\n0.003540 0.000000 0.457306\n0.030304 0.000000 0.457489\n0.063873 0.000000 0.457642\n0.092926 0.000000 0.457794\n0.119965 0.000000 0.457947\n0.145172 0.000000 0.458130\n0.168793 0.000000 0.458282\n0.190948 0.000000 0.458435\n0.212250 0.000000 0.458618\n0.232788 0.000366 0.458801\n0.252960 0.001343 0.458954\n0.273254 0.002533 0.459198\n0.294006 0.003571 0.459381\n0.315521 0.004761 0.459564\n0.338470 0.006104 0.459778\n0.362793 0.007324 0.459930\n0.389130 0.008575 0.460175\n0.417908 0.009888 0.460358\n0.449341 0.011139 0.460571\n0.483887 0.012482 0.460754\n0.521973 0.013824 0.460968\n0.563660 0.015167 0.461212\n0.608673 0.016571 0.461456\n0.656403 0.018036 0.461670\n0.706360 0.019531 0.461884\n0.758118 0.020966 0.462067\n0.811371 0.022339 0.462280\n0.865601 0.023834 0.462555\n0.915527 0.025299 0.462799\n0.000000 0.016174 0.457184\n0.000000 0.017120 0.457306\n0.000000 0.018005 0.457489\n0.004852 0.018921 0.457611\n0.031738 0.019928 0.457794\n0.065369 0.020996 0.457947\n0.094330 0.022064 0.458130\n0.121399 0.023071 0.458282\n0.146362 0.024139 0.458435\n0.169922 0.025208 0.458618\n0.191986 0.026428 0.458801\n0.213226 0.027588 0.458954\n0.233765 0.028809 0.459198\n0.253876 0.029999 0.459381\n0.274109 0.031250 0.459564\n0.294922 0.032440 0.459747\n0.316467 0.033783 0.459930\n0.339203 0.035034 0.460175\n0.363739 0.036316 0.460358\n0.390106 0.037689 0.460571\n0.418701 0.038971 0.460754\n0.450195 0.040314 0.460968\n0.484833 0.041687 0.461212\n0.522949 0.043060 0.461426\n0.564636 0.044434 0.461639\n0.609467 0.045898 0.461884\n0.656952 0.048462 0.462067\n0.706848 0.050903 0.462280\n0.758545 0.053589 0.462555\n0.811615 0.056488 0.462769\n0.865784 0.058990 0.463013\n0.915527 0.060516 0.463226\n0.000000 0.045410 0.457458\n0.000000 0.046997 0.457611\n0.000000 0.048462 0.457794\n0.006348 0.050293 0.457947\n0.033356 0.052124 0.458130\n0.067108 0.054108 0.458282\n0.095978 0.056000 0.458435\n0.122772 0.057953 0.458618\n0.147675 0.059448 0.458801\n0.171112 0.060730 0.458954\n0.193146 0.061981 0.459198\n0.214264 0.063232 0.459381\n0.234650 0.064545 0.459564\n0.254883 0.065796 0.459747\n0.275024 0.067169 0.459930\n0.295868 0.068512 0.460144\n0.317413 0.069977 0.460358\n0.340179 0.071350 0.460571\n0.364532 0.072784 0.460754\n0.390839 0.074219 0.460968\n0.419617 0.075684 0.461212\n0.451111 0.077087 0.461426\n0.485840 0.078583 0.461639\n0.523956 0.080109 0.461884\n0.565582 0.081512 0.462067\n0.610382 0.083038 0.462280\n0.657806 0.084503 0.462524\n0.707611 0.086029 0.462769\n0.759155 0.087524 0.462982\n0.812134 0.089081 0.463226\n0.865906 0.090546 0.463440\n0.915527 0.092102 0.463654\n0.000000 0.082642 0.457794\n0.000000 0.083527 0.457947\n0.000000 0.084656 0.458130\n0.007904 0.085815 0.458252\n0.035004 0.086700 0.458405\n0.068909 0.087860 0.458618\n0.097534 0.089111 0.458801\n0.124146 0.090302 0.458954\n0.149170 0.091370 0.459198\n0.172302 0.092621 0.459381\n0.194214 0.093842 0.459534\n0.215332 0.095093 0.459747\n0.235626 0.096375 0.459930\n0.255798 0.097656 0.460144\n0.276031 0.098816 0.460358\n0.296692 0.100098 0.460571\n0.318359 0.101471 0.460724\n0.341156 0.102814 0.460968\n0.365448 0.104156 0.461212\n0.391876 0.105469 0.461426\n0.420654 0.106903 0.461609\n0.452148 0.108154 0.461884\n0.486816 0.109436 0.462067\n0.524872 0.110809 0.462280\n0.566376 0.112213 0.462524\n0.611053 0.113617 0.462769\n0.658478 0.114990 0.462982\n0.708130 0.116425 0.463226\n0.759583 0.117828 0.463409\n0.812439 0.119232 0.463654\n0.866028 0.120605 0.463898\n0.915527 0.122009 0.464172\n0.000000 0.113403 0.458130\n0.000000 0.114471 0.458252\n0.000000 0.115326 0.458405\n0.009583 0.116425 0.458618\n0.036743 0.117493 0.458801\n0.070648 0.118500 0.458954\n0.099274 0.119598 0.459198\n0.125824 0.120758 0.459381\n0.150513 0.121704 0.459534\n0.173523 0.122894 0.459717\n0.195374 0.124084 0.459930\n0.216492 0.125275 0.460144\n0.236664 0.126282 0.460327\n0.256744 0.127502 0.460571\n0.277008 0.128723 0.460724\n0.297607 0.129974 0.460938\n0.319214 0.131042 0.461212\n0.342133 0.132263 0.461395\n0.366455 0.133545 0.461609\n0.392883 0.134796 0.461884\n0.421692 0.136078 0.462036\n0.453186 0.137146 0.462280\n0.487671 0.138397 0.462524\n0.525757 0.139709 0.462738\n0.567383 0.140991 0.462982\n0.612000 0.142273 0.463226\n0.659241 0.143341 0.463409\n0.708893 0.144653 0.463654\n0.760132 0.145966 0.463898\n0.812683 0.147247 0.464142\n0.866241 0.148560 0.464355\n0.915527 0.149719 0.464600\n0.000000 0.142365 0.458405\n0.000000 0.143127 0.458618\n0.000000 0.144135 0.458771\n0.011292 0.145081 0.458954\n0.038544 0.145996 0.459198\n0.072510 0.147064 0.459381\n0.100922 0.147949 0.459534\n0.127289 0.149017 0.459717\n0.151886 0.150116 0.459930\n0.174866 0.150970 0.460144\n0.196655 0.152069 0.460327\n0.217468 0.153229 0.460571\n0.237732 0.154114 0.460724\n0.257721 0.155273 0.460938\n0.277893 0.156403 0.461182\n0.298615 0.157379 0.461395\n0.320129 0.158447 0.461609\n0.343018 0.159637 0.461853\n0.367493 0.160675 0.462036\n0.393921 0.161743 0.462280\n0.422729 0.162903 0.462494\n0.454224 0.164062 0.462738\n0.488739 0.165070 0.462982\n0.526764 0.166199 0.463226\n0.568390 0.167419 0.463409\n0.612915 0.168396 0.463654\n0.660126 0.169525 0.463898\n0.709412 0.170746 0.464142\n0.760620 0.171936 0.464355\n0.813110 0.172882 0.464569\n0.866547 0.174103 0.464813\n0.915527 0.175232 0.465088\n0.000000 0.168945 0.458771\n0.000000 0.169647 0.458954\n0.000000 0.170593 0.459167\n0.013153 0.171356 0.459351\n0.040375 0.172333 0.459534\n0.074524 0.173279 0.459717\n0.102692 0.174103 0.459930\n0.128998 0.175110 0.460114\n0.153290 0.175903 0.460327\n0.176086 0.176941 0.460541\n0.197968 0.177826 0.460724\n0.218689 0.178772 0.460938\n0.238831 0.179840 0.461182\n0.258759 0.180664 0.461395\n0.278870 0.181732 0.461609\n0.299652 0.182678 0.461823\n0.321167 0.183624 0.462006\n0.343964 0.184723 0.462280\n0.368530 0.185547 0.462494\n0.394958 0.186646 0.462738\n0.423798 0.187683 0.462952\n0.455292 0.188568 0.463226\n0.489777 0.189667 0.463409\n0.527832 0.190643 0.463623\n0.569366 0.191620 0.463898\n0.613800 0.192688 0.464142\n0.660767 0.193634 0.464355\n0.710175 0.194672 0.464569\n0.761017 0.195709 0.464813\n0.813477 0.196625 0.465088\n0.866699 0.197662 0.465302\n0.915527 0.198730 0.465546\n0.000000 0.193329 0.459167\n0.000000 0.194183 0.459351\n0.000000 0.194916 0.459534\n0.015137 0.195831 0.459717\n0.042236 0.196533 0.459930\n0.076538 0.197449 0.460114\n0.104370 0.198151 0.460327\n0.130585 0.199097 0.460541\n0.154907 0.199921 0.460724\n0.177643 0.200775 0.460938\n0.199188 0.201599 0.461182\n0.219910 0.202484 0.461395\n0.239929 0.203430 0.461609\n0.259857 0.204224 0.461823\n0.279938 0.205231 0.462006\n0.300720 0.205963 0.462280\n0.322235 0.206940 0.462494\n0.345001 0.207703 0.462738\n0.369568 0.208710 0.462952\n0.396027 0.209717 0.463196\n0.424744 0.210480 0.463409\n0.456146 0.211487 0.463623\n0.490906 0.212280 0.463898\n0.528900 0.213287 0.464142\n0.570190 0.214050 0.464325\n0.614624 0.215088 0.464569\n0.661621 0.216064 0.464813\n0.710724 0.216858 0.465088\n0.761719 0.217865 0.465302\n0.813812 0.218658 0.465546\n0.866821 0.219666 0.465759\n0.915527 0.220459 0.466034\n0.000000 0.216278 0.459534\n0.000000 0.216858 0.459717\n0.000000 0.217773 0.459930\n0.017059 0.218414 0.460114\n0.044159 0.219177 0.460297\n0.078491 0.219910 0.460510\n0.106293 0.220673 0.460693\n0.132294 0.221436 0.460938\n0.156342 0.222321 0.461182\n0.178986 0.222992 0.461365\n0.200470 0.223755 0.461609\n0.220978 0.224609 0.461823\n0.241058 0.225372 0.462006\n0.260925 0.226196 0.462250\n0.280975 0.227051 0.462463\n0.301758 0.227814 0.462708\n0.323273 0.228729 0.462952\n0.346069 0.229431 0.463196\n0.370514 0.230286 0.463379\n0.397034 0.231110 0.463623\n0.425690 0.232025 0.463898\n0.457245 0.232758 0.464111\n0.491913 0.233673 0.464325\n0.529999 0.234375 0.464569\n0.571198 0.235352 0.464813\n0.615601 0.236053 0.465088\n0.662537 0.237000 0.465302\n0.711517 0.237701 0.465546\n0.762146 0.238647 0.465759\n0.814056 0.239349 0.466003\n0.867004 0.240295 0.466248\n0.915527 0.240997 0.466522\n0.000000 0.237640 0.459930\n0.000000 0.238434 0.460083\n0.000000 0.238983 0.460297\n0.019012 0.239777 0.460510\n0.046539 0.240417 0.460693\n0.080475 0.241058 0.460907\n0.108246 0.241852 0.461151\n0.133911 0.242462 0.461365\n0.157806 0.243317 0.461609\n0.180359 0.243927 0.461823\n0.201721 0.244781 0.462006\n0.222260 0.245453 0.462250\n0.242188 0.246094 0.462463\n0.262054 0.246918 0.462708\n0.282074 0.247589 0.462921\n0.302582 0.248444 0.463165\n0.324310 0.249115 0.463379\n0.347137 0.249939 0.463593\n0.371490 0.250641 0.463898\n0.397980 0.251495 0.464111\n0.426819 0.252167 0.464325\n0.458313 0.253052 0.464569\n0.493011 0.253723 0.464813\n0.530823 0.254578 0.465057\n0.572235 0.255249 0.465302\n0.616547 0.256165 0.465546\n0.663147 0.256836 0.465759\n0.712067 0.257690 0.466003\n0.762604 0.258362 0.466248\n0.814392 0.259247 0.466492\n0.867157 0.259888 0.466736\n0.915527 0.260803 0.466949\n0.000000 0.258118 0.460297\n0.000000 0.258667 0.460510\n0.000000 0.259460 0.460693\n0.021179 0.259979 0.460907\n0.050110 0.260803 0.461151\n0.082611 0.261353 0.461365\n0.110138 0.261902 0.461609\n0.135712 0.262756 0.461823\n0.159485 0.263306 0.462006\n0.181793 0.264099 0.462219\n0.203003 0.264709 0.462463\n0.223450 0.265472 0.462708\n0.243347 0.266113 0.462921\n0.263123 0.266754 0.463165\n0.283173 0.267517 0.463379\n0.303680 0.268158 0.463593\n0.325195 0.269012 0.463867\n0.348175 0.269653 0.464111\n0.372589 0.270416 0.464325\n0.399078 0.271088 0.464569\n0.427887 0.271759 0.464783\n0.459442 0.272491 0.465057\n0.494019 0.273132 0.465302\n0.531860 0.274017 0.465546\n0.573273 0.274628 0.465759\n0.617310 0.275421 0.466003\n0.664062 0.276031 0.466217\n0.712799 0.276917 0.466492\n0.763214 0.277527 0.466705\n0.814880 0.278229 0.466949\n0.867310 0.278992 0.467224\n0.915527 0.279633 0.467438\n0.000000 0.277832 0.460663\n0.000000 0.278595 0.460907\n0.000000 0.279114 0.461151\n0.023285 0.279663 0.461334\n0.053741 0.280426 0.461609\n0.084717 0.280975 0.461823\n0.111969 0.281647 0.461975\n0.137360 0.282318 0.462219\n0.161011 0.282867 0.462433\n0.183289 0.283630 0.462708\n0.204315 0.284180 0.462921\n0.224701 0.284821 0.463165\n0.244507 0.285583 0.463379\n0.264282 0.286133 0.463593\n0.284271 0.286926 0.463867\n0.304749 0.287476 0.464111\n0.326263 0.288300 0.464325\n0.349243 0.288910 0.464539\n0.373657 0.289642 0.464783\n0.400146 0.290283 0.465027\n0.428986 0.290863 0.465271\n0.460541 0.291656 0.465546\n0.494995 0.292236 0.465729\n0.532990 0.293030 0.466003\n0.574219 0.293671 0.466217\n0.618195 0.294250 0.466492\n0.664917 0.295044 0.466705\n0.713318 0.295624 0.466949\n0.763611 0.296448 0.467194\n0.815155 0.297028 0.467438\n0.867462 0.297699 0.467651\n0.915527 0.298401 0.467926\n0.000000 0.297394 0.461121\n0.000000 0.298126 0.461334\n0.000000 0.298615 0.461578\n0.025360 0.299194 0.461792\n0.057709 0.299896 0.461975\n0.086853 0.300446 0.462219\n0.113922 0.301178 0.462433\n0.139191 0.301697 0.462708\n0.162598 0.302216 0.462921\n0.184692 0.302979 0.463165\n0.205597 0.303558 0.463348\n0.225891 0.304199 0.463593\n0.245697 0.304871 0.463867\n0.265442 0.305450 0.464111\n0.285400 0.306183 0.464325\n0.305847 0.306793 0.464539\n0.327362 0.307312 0.464783\n0.350250 0.308105 0.465027\n0.374786 0.308655 0.465271\n0.401245 0.309448 0.465515\n0.430115 0.310028 0.465729\n0.461639 0.310730 0.466003\n0.496124 0.311371 0.466217\n0.534058 0.311951 0.466492\n0.575134 0.312714 0.466705\n0.619232 0.313293 0.466919\n0.665588 0.313904 0.467194\n0.714142 0.314667 0.467407\n0.764252 0.315216 0.467651\n0.815491 0.315979 0.467926\n0.867615 0.316559 0.468140\n0.915527 0.317261 0.468353\n0.000000 0.317139 0.461578\n0.000000 0.317719 0.461761\n0.001526 0.318268 0.461975\n0.027679 0.318787 0.462219\n0.060425 0.319489 0.462433\n0.089050 0.320038 0.462677\n0.115936 0.320740 0.462921\n0.140839 0.321289 0.463165\n0.164185 0.321808 0.463348\n0.186066 0.322571 0.463562\n0.206970 0.323090 0.463867\n0.227142 0.323853 0.464081\n0.246887 0.324371 0.464325\n0.266541 0.324951 0.464539\n0.286469 0.325684 0.464783\n0.306976 0.326263 0.465027\n0.328461 0.326904 0.465240\n0.351379 0.327576 0.465515\n0.375885 0.328125 0.465698\n0.402374 0.328888 0.465973\n0.431213 0.329437 0.466217\n0.462769 0.329987 0.466492\n0.497223 0.330750 0.466705\n0.535156 0.331299 0.466919\n0.576172 0.332092 0.467194\n0.620148 0.332611 0.467407\n0.666443 0.333160 0.467651\n0.714722 0.333923 0.467896\n0.764648 0.334473 0.468109\n0.815979 0.335266 0.468353\n0.867920 0.335815 0.468597\n0.915527 0.336365 0.468842\n0.000000 0.337341 0.461975\n0.000000 0.337860 0.462219\n0.003632 0.338531 0.462433\n0.029846 0.339050 0.462677\n0.062805 0.339569 0.462921\n0.091217 0.340302 0.463135\n0.118011 0.340851 0.463318\n0.142670 0.341370 0.463562\n0.165741 0.342102 0.463837\n0.187531 0.342621 0.464081\n0.208466 0.343231 0.464294\n0.228394 0.343872 0.464539\n0.248047 0.344452 0.464752\n0.267731 0.345184 0.465027\n0.287537 0.345734 0.465240\n0.308075 0.346252 0.465515\n0.329559 0.347046 0.465698\n0.352356 0.347565 0.465973\n0.376953 0.348175 0.466217\n0.403473 0.348877 0.466461\n0.432343 0.349426 0.466675\n0.463776 0.350159 0.466919\n0.498322 0.350708 0.467194\n0.536224 0.351379 0.467407\n0.577179 0.352020 0.467621\n0.620880 0.352539 0.467896\n0.667267 0.353302 0.468109\n0.715424 0.353882 0.468323\n0.765289 0.354431 0.468597\n0.816223 0.355164 0.468842\n0.868103 0.355682 0.469055\n0.915527 0.356384 0.469269\n0.000000 0.358398 0.462402\n0.000000 0.358917 0.462646\n0.005798 0.359406 0.462921\n0.032196 0.360138 0.463135\n0.065216 0.360657 0.463318\n0.093567 0.361328 0.463562\n0.119812 0.361908 0.463837\n0.144409 0.362396 0.464050\n0.167450 0.363190 0.464294\n0.189087 0.363678 0.464508\n0.209747 0.364258 0.464752\n0.229614 0.364990 0.465027\n0.249237 0.365509 0.465240\n0.268768 0.366089 0.465515\n0.288574 0.366791 0.465698\n0.309143 0.367371 0.465942\n0.330688 0.368103 0.466217\n0.353455 0.368652 0.466461\n0.378113 0.369202 0.466675\n0.404572 0.369934 0.466919\n0.433350 0.370453 0.467163\n0.464844 0.371033 0.467407\n0.499420 0.371796 0.467621\n0.537323 0.372284 0.467896\n0.578247 0.373077 0.468109\n0.621857 0.373596 0.468323\n0.667969 0.374146 0.468597\n0.716095 0.374908 0.468842\n0.765717 0.375427 0.469055\n0.816528 0.375946 0.469269\n0.868225 0.376678 0.469513\n0.915527 0.377228 0.469757\n0.000000 0.380493 0.462891\n0.000000 0.381165 0.463135\n0.007965 0.381744 0.463318\n0.034393 0.382233 0.463562\n0.067505 0.382996 0.463806\n0.095703 0.383514 0.464050\n0.121857 0.384094 0.464264\n0.146240 0.384796 0.464508\n0.169006 0.385315 0.464722\n0.190521 0.386047 0.464996\n0.211060 0.386566 0.465240\n0.230896 0.387146 0.465485\n0.250458 0.387878 0.465698\n0.269958 0.388428 0.465942\n0.289734 0.388916 0.466217\n0.310272 0.389740 0.466431\n0.331818 0.390228 0.466675\n0.354584 0.391022 0.466888\n0.379089 0.391541 0.467163\n0.405701 0.392090 0.467377\n0.434387 0.392822 0.467621\n0.465912 0.393402 0.467896\n0.500580 0.393921 0.468109\n0.538147 0.394714 0.468323\n0.579224 0.395233 0.468597\n0.622833 0.395935 0.468842\n0.668854 0.396454 0.469055\n0.716705 0.397034 0.469238\n0.766113 0.397766 0.469513\n0.816833 0.398315 0.469727\n0.868408 0.398804 0.469971\n0.915527 0.399567 0.470184\n0.000000 0.404388 0.463318\n0.000000 0.404938 0.463562\n0.010284 0.405426 0.463806\n0.036835 0.406189 0.464050\n0.070099 0.406677 0.464264\n0.097839 0.407318 0.464508\n0.123871 0.407959 0.464722\n0.148102 0.408508 0.464996\n0.170746 0.409241 0.465240\n0.191956 0.409790 0.465485\n0.212402 0.410309 0.465698\n0.232117 0.411072 0.465942\n0.251617 0.411621 0.466217\n0.271149 0.412231 0.466431\n0.290894 0.412933 0.466644\n0.311401 0.413452 0.466888\n0.332886 0.414185 0.467133\n0.355682 0.414764 0.467377\n0.380188 0.415283 0.467621\n0.406677 0.416046 0.467896\n0.435516 0.416595 0.468109\n0.466949 0.417236 0.468323\n0.501617 0.417877 0.468567\n0.539185 0.418427 0.468842\n0.580139 0.419189 0.469055\n0.623718 0.419678 0.469238\n0.669434 0.420258 0.469513\n0.717285 0.420959 0.469727\n0.766754 0.421509 0.469971\n0.817261 0.422028 0.470184\n0.868530 0.422760 0.470428\n0.915527 0.423218 0.470612\n0.000000 0.429901 0.463806\n0.000000 0.430603 0.464050\n0.012665 0.431183 0.464264\n0.039062 0.431702 0.464508\n0.072479 0.432495 0.464722\n0.100159 0.432983 0.464966\n0.125916 0.433502 0.465240\n0.149811 0.434296 0.465485\n0.172241 0.434784 0.465668\n0.193573 0.435516 0.465942\n0.213715 0.436127 0.466217\n0.233368 0.436646 0.466431\n0.252838 0.437439 0.466644\n0.272339 0.437988 0.466888\n0.291901 0.438477 0.467133\n0.312500 0.439270 0.467377\n0.333984 0.439789 0.467590\n0.356750 0.440460 0.467896\n0.381287 0.441101 0.468079\n0.407745 0.441620 0.468292\n0.436584 0.442413 0.468567\n0.468109 0.442963 0.468811\n0.502502 0.443451 0.469025\n0.540283 0.444214 0.469238\n0.581055 0.444763 0.469513\n0.624451 0.445312 0.469727\n0.670319 0.446045 0.469940\n0.717957 0.446564 0.470184\n0.767151 0.447235 0.470398\n0.817535 0.447784 0.470612\n0.868652 0.448273 0.470856\n0.915527 0.449005 0.471039\n0.000000 0.457764 0.464264\n0.000000 0.458313 0.464508\n0.015045 0.459045 0.464722\n0.041504 0.459595 0.464966\n0.074921 0.460236 0.465240\n0.102264 0.460907 0.465454\n0.127899 0.461426 0.465668\n0.151672 0.462128 0.465942\n0.173859 0.462738 0.466187\n0.195007 0.463257 0.466431\n0.215179 0.464050 0.466644\n0.234741 0.464569 0.466888\n0.253998 0.465149 0.467133\n0.273376 0.465881 0.467346\n0.293030 0.466400 0.467590\n0.313660 0.467010 0.467865\n0.335083 0.467712 0.468048\n0.357880 0.468231 0.468292\n0.382263 0.469025 0.468567\n0.408752 0.469543 0.468811\n0.437653 0.470062 0.469025\n0.469208 0.470856 0.469238\n0.503601 0.471313 0.469482\n0.541321 0.472107 0.469727\n0.582031 0.472595 0.469940\n0.625397 0.473175 0.470184\n0.670990 0.473816 0.470398\n0.718506 0.474396 0.470612\n0.767578 0.474854 0.470856\n0.817841 0.475647 0.471039\n0.868774 0.476135 0.471252\n0.915527 0.476624 0.471497\n0.000000 0.488068 0.464722\n0.000000 0.488800 0.464966\n0.017395 0.489349 0.465240\n0.043823 0.489899 0.465454\n0.077362 0.490631 0.465637\n0.104401 0.491180 0.465912\n0.129761 0.491699 0.466187\n0.153412 0.492493 0.466400\n0.175507 0.493011 0.466644\n0.196350 0.493683 0.466888\n0.216553 0.494324 0.467133\n0.235901 0.494873 0.467346\n0.255188 0.495636 0.467590\n0.274536 0.496124 0.467865\n0.294159 0.496674 0.468048\n0.314606 0.497437 0.468292\n0.336182 0.497986 0.468536\n0.359009 0.498535 0.468781\n0.383423 0.499298 0.469025\n0.409912 0.499756 0.469208\n0.438782 0.500549 0.469482\n0.470245 0.501038 0.469727\n0.504669 0.501556 0.469910\n0.542358 0.502289 0.470184\n0.583008 0.502838 0.470398\n0.626190 0.503326 0.470612\n0.671722 0.504059 0.470825\n0.719177 0.504578 0.471039\n0.768097 0.505005 0.471252\n0.818054 0.505768 0.471497\n0.869080 0.506256 0.471680\n0.915527 0.506744 0.471893\n0.000000 0.521271 0.465210\n0.000000 0.521790 0.465454\n0.019836 0.522522 0.465637\n0.046661 0.523071 0.465881\n0.079865 0.523621 0.466156\n0.106720 0.524353 0.466400\n0.131744 0.524872 0.466644\n0.155151 0.525421 0.466858\n0.177032 0.526154 0.467133\n0.197998 0.526672 0.467346\n0.217865 0.527405 0.467590\n0.237335 0.527924 0.467865\n0.256409 0.528503 0.468048\n0.275726 0.529266 0.468292\n0.295258 0.529755 0.468536\n0.315674 0.530396 0.468781\n0.337128 0.531036 0.469025\n0.360046 0.531555 0.469208\n0.384460 0.532135 0.469482\n0.410980 0.532837 0.469696\n0.439850 0.533356 0.469910\n0.471313 0.533997 0.470184\n0.505676 0.534515 0.470398\n0.543335 0.535065 0.470612\n0.583862 0.535767 0.470825\n0.627014 0.536285 0.471039\n0.672546 0.536743 0.471252\n0.719727 0.537354 0.471497\n0.768463 0.537933 0.471649\n0.818481 0.538391 0.471893\n0.869232 0.539001 0.472107\n0.915527 0.539551 0.472290\n0.000000 0.557495 0.465637\n0.000000 0.558075 0.465881\n0.022308 0.558533 0.466156\n0.050568 0.559296 0.466370\n0.082214 0.559845 0.466614\n0.108765 0.560303 0.466858\n0.133759 0.561066 0.467102\n0.156952 0.561584 0.467346\n0.178741 0.562134 0.467560\n0.199402 0.562805 0.467865\n0.219147 0.563354 0.468048\n0.238556 0.563812 0.468292\n0.257538 0.564575 0.468536\n0.276672 0.565094 0.468781\n0.296417 0.565582 0.469025\n0.316772 0.566345 0.469208\n0.338135 0.566833 0.469482\n0.360992 0.567352 0.469696\n0.385559 0.568054 0.469879\n0.412079 0.568481 0.470184\n0.440948 0.569092 0.470398\n0.472382 0.569702 0.470581\n0.506775 0.570190 0.470825\n0.544220 0.570770 0.471039\n0.584747 0.571350 0.471252\n0.627899 0.571808 0.471497\n0.673126 0.572266 0.471649\n0.720306 0.572968 0.471863\n0.769073 0.573395 0.472107\n0.818787 0.573853 0.472290\n0.869385 0.574463 0.472504\n0.915527 0.574921 0.472656\n0.000000 0.596527 0.466156\n0.000000 0.597046 0.466370\n0.024719 0.597534 0.466614\n0.055023 0.598206 0.466858\n0.084595 0.598694 0.467102\n0.111023 0.599213 0.467316\n0.135742 0.599884 0.467560\n0.158600 0.600372 0.467834\n0.180237 0.600861 0.468048\n0.200775 0.601562 0.468262\n0.220459 0.602020 0.468536\n0.239746 0.602509 0.468781\n0.258728 0.603241 0.468994\n0.277771 0.603668 0.469208\n0.297485 0.604156 0.469452\n0.317780 0.604858 0.469666\n0.339203 0.605316 0.469879\n0.362061 0.605774 0.470184\n0.386627 0.606476 0.470367\n0.413116 0.606873 0.470581\n0.441986 0.607330 0.470825\n0.473328 0.607788 0.471008\n0.507751 0.608459 0.471252\n0.545227 0.608887 0.471497\n0.585663 0.609283 0.471649\n0.628754 0.609924 0.471863\n0.673889 0.610382 0.472107\n0.720795 0.610779 0.472290\n0.769440 0.611237 0.472504\n0.819031 0.611816 0.472656\n0.869446 0.612213 0.472839\n0.915527 0.612579 0.473053\n0.000000 0.637939 0.466614\n0.001831 0.638519 0.466858\n0.027069 0.639038 0.467072\n0.059021 0.639465 0.467316\n0.086884 0.639893 0.467560\n0.113068 0.640564 0.467834\n0.137512 0.641022 0.468048\n0.160339 0.641418 0.468262\n0.181793 0.641998 0.468536\n0.202118 0.642517 0.468781\n0.221741 0.642975 0.468994\n0.240967 0.643372 0.469208\n0.259888 0.644043 0.469452\n0.278961 0.644501 0.469666\n0.298553 0.644897 0.469879\n0.318878 0.645538 0.470184\n0.340271 0.645935 0.470367\n0.363068 0.646362 0.470581\n0.387695 0.646881 0.470825\n0.414124 0.647400 0.471008\n0.442871 0.647797 0.471222\n0.474243 0.648163 0.471466\n0.508575 0.648621 0.471649\n0.546173 0.649170 0.471863\n0.586517 0.649536 0.472076\n0.629395 0.649902 0.472290\n0.674438 0.650391 0.472504\n0.721497 0.650848 0.472656\n0.769775 0.651215 0.472839\n0.819214 0.651520 0.473053\n0.869629 0.652069 0.473236\n0.915527 0.652466 0.473450\n0.000000 0.681549 0.467072\n0.004089 0.681915 0.467316\n0.029572 0.682251 0.467560\n0.061584 0.682892 0.467834\n0.089264 0.683258 0.468048\n0.115173 0.683655 0.468231\n0.139435 0.684021 0.468536\n0.162018 0.684601 0.468750\n0.183380 0.684967 0.468964\n0.203583 0.685364 0.469177\n0.223053 0.685760 0.469452\n0.242157 0.686371 0.469666\n0.261017 0.686737 0.469879\n0.279999 0.687103 0.470154\n0.299652 0.687439 0.470367\n0.319916 0.688019 0.470551\n0.341339 0.688354 0.470795\n0.364105 0.688782 0.471008\n0.388641 0.689087 0.471222\n0.415070 0.689453 0.471466\n0.443817 0.689972 0.471649\n0.475281 0.690308 0.471863\n0.509583 0.690674 0.472076\n0.547119 0.690979 0.472260\n0.587280 0.691498 0.472504\n0.630249 0.691803 0.472656\n0.675171 0.692139 0.472839\n0.721893 0.692444 0.473053\n0.770203 0.692841 0.473236\n0.819580 0.693268 0.473419\n0.869720 0.693542 0.473633\n0.915527 0.693817 0.473755\n0.000000 0.726532 0.467560\n0.006348 0.726959 0.467804\n0.032043 0.727417 0.468048\n0.064087 0.727722 0.468231\n0.091583 0.727997 0.468506\n0.117279 0.728363 0.468750\n0.141296 0.728912 0.468964\n0.163696 0.729187 0.469177\n0.184784 0.729523 0.469452\n0.205017 0.729797 0.469666\n0.224213 0.730133 0.469879\n0.243347 0.730499 0.470123\n0.262115 0.730957 0.470337\n0.281128 0.731232 0.470520\n0.300720 0.731506 0.470795\n0.320984 0.731842 0.471008\n0.342377 0.732208 0.471191\n0.365112 0.732605 0.471466\n0.389496 0.732849 0.471619\n0.416016 0.733154 0.471863\n0.444855 0.733459 0.472076\n0.476288 0.733826 0.472260\n0.510590 0.734222 0.472504\n0.547852 0.734467 0.472656\n0.588226 0.734772 0.472839\n0.630859 0.734985 0.473053\n0.675659 0.735168 0.473236\n0.722473 0.735657 0.473419\n0.770660 0.735931 0.473602\n0.819916 0.736145 0.473755\n0.869781 0.736389 0.473938\n0.915527 0.736633 0.474121\n0.000000 0.772858 0.468048\n0.008667 0.773102 0.468231\n0.034363 0.773590 0.468506\n0.066528 0.773834 0.468750\n0.093903 0.774048 0.468964\n0.119354 0.774323 0.469177\n0.143036 0.774536 0.469452\n0.165314 0.774811 0.469635\n0.186310 0.775269 0.469849\n0.206329 0.775482 0.470123\n0.225586 0.775696 0.470337\n0.244507 0.775940 0.470520\n0.263214 0.776154 0.470795\n0.282196 0.776398 0.471008\n0.301758 0.776825 0.471191\n0.321960 0.777069 0.471466\n0.343414 0.777283 0.471619\n0.366150 0.777496 0.471832\n0.390533 0.777710 0.472046\n0.416992 0.777924 0.472229\n0.445862 0.778107 0.472504\n0.477234 0.778259 0.472656\n0.511444 0.778748 0.472839\n0.548798 0.778900 0.473053\n0.588989 0.779144 0.473236\n0.631622 0.779297 0.473419\n0.676453 0.779480 0.473602\n0.722961 0.779663 0.473755\n0.770905 0.779816 0.473907\n0.820129 0.780029 0.474121\n0.869904 0.780426 0.474274\n0.915527 0.780579 0.474457\n0.000000 0.820190 0.468506\n0.011078 0.820374 0.468719\n0.036804 0.820496 0.468964\n0.069092 0.820679 0.469177\n0.096130 0.820831 0.469421\n0.121399 0.820984 0.469635\n0.144897 0.821136 0.469849\n0.166840 0.821472 0.470123\n0.187744 0.821716 0.470337\n0.207611 0.821869 0.470520\n0.226868 0.822021 0.470764\n0.245636 0.822144 0.470978\n0.264343 0.822296 0.471191\n0.283234 0.822479 0.471466\n0.302551 0.822601 0.471619\n0.322906 0.822754 0.471832\n0.344177 0.822906 0.472046\n0.367126 0.823151 0.472229\n0.391510 0.823395 0.472473\n0.417999 0.823517 0.472626\n0.446808 0.823700 0.472839\n0.477997 0.823792 0.473053\n0.512207 0.823944 0.473206\n0.549683 0.824066 0.473389\n0.589691 0.824158 0.473572\n0.632263 0.824310 0.473755\n0.676910 0.824463 0.473907\n0.723328 0.824554 0.474091\n0.771210 0.824860 0.474274\n0.820282 0.825012 0.474426\n0.869995 0.825104 0.474579\n0.915527 0.825195 0.474762\n0.000000 0.867676 0.468964\n0.013458 0.867767 0.469177\n0.039032 0.867920 0.469421\n0.071472 0.867981 0.469635\n0.098297 0.868164 0.469849\n0.123230 0.868347 0.470123\n0.146637 0.868439 0.470337\n0.168518 0.868469 0.470520\n0.189178 0.868561 0.470764\n0.208862 0.868622 0.470978\n0.227997 0.868713 0.471191\n0.246765 0.868774 0.471436\n0.265381 0.868835 0.471588\n0.284302 0.868958 0.471832\n0.303589 0.868988 0.472046\n0.323792 0.869110 0.472229\n0.345154 0.869171 0.472473\n0.367920 0.869202 0.472626\n0.392487 0.869293 0.472839\n0.418945 0.869354 0.473053\n0.447571 0.869385 0.473206\n0.478943 0.869446 0.473389\n0.513153 0.869568 0.473572\n0.550262 0.869720 0.473755\n0.590485 0.869873 0.473907\n0.632935 0.869934 0.474091\n0.677551 0.869995 0.474243\n0.723907 0.870087 0.474426\n0.771698 0.870148 0.474579\n0.820496 0.870178 0.474731\n0.870178 0.870239 0.474884\n0.915527 0.870270 0.475037\n0.000000 0.915527 0.469391\n0.015747 0.915527 0.469604\n0.041412 0.915527 0.469849\n0.073822 0.915527 0.470123\n0.100464 0.915527 0.470306\n0.125153 0.915527 0.470520\n0.148376 0.915527 0.470764\n0.170013 0.915527 0.470978\n0.190521 0.915527 0.471191\n0.210114 0.915527 0.471436\n0.229248 0.915527 0.471588\n0.247894 0.915527 0.471832\n0.266418 0.915527 0.472046\n0.285309 0.915527 0.472229\n0.304565 0.915527 0.472443\n0.324738 0.915527 0.472626\n0.346130 0.915527 0.472839\n0.368866 0.915527 0.473022\n0.393341 0.915527 0.473175\n0.419647 0.915527 0.473389\n0.448456 0.915527 0.473572\n0.479797 0.915527 0.473755\n0.514038 0.915527 0.473907\n0.551208 0.915527 0.474091\n0.591064 0.915527 0.474243\n0.633392 0.915527 0.474426\n0.677948 0.915527 0.474548\n0.724213 0.915527 0.474731\n0.771973 0.915527 0.474884\n0.820740 0.915527 0.475037\n0.870392 0.915527 0.475159\n0.915527 0.915527 0.475281\n0.000000 0.000000 0.473541\n0.000000 0.000000 0.473663\n0.000000 0.000000 0.473755\n0.002380 0.000000 0.473877\n0.029144 0.000000 0.474030\n0.062622 0.000000 0.474182\n0.091766 0.000000 0.474335\n0.118896 0.000000 0.474487\n0.144196 0.000000 0.474640\n0.167847 0.000000 0.474823\n0.190186 0.000000 0.474976\n0.211334 0.000000 0.475128\n0.231995 0.000000 0.475311\n0.252258 0.000000 0.475494\n0.272614 0.000000 0.475647\n0.293396 0.000000 0.475830\n0.315002 0.000000 0.476044\n0.337708 0.000000 0.476196\n0.362030 0.000000 0.476410\n0.388336 0.000000 0.476562\n0.417053 0.000000 0.476807\n0.448517 0.000000 0.476990\n0.483032 0.000000 0.477203\n0.521362 0.000000 0.477356\n0.562927 0.000000 0.477600\n0.607971 0.000000 0.477814\n0.655640 0.000000 0.478027\n0.705719 0.000000 0.478241\n0.757751 0.000000 0.478455\n0.811127 0.000000 0.478638\n0.865509 0.000000 0.478882\n0.915527 0.000000 0.479126\n0.000000 0.000000 0.473755\n0.000000 0.000000 0.473877\n0.000000 0.000000 0.474030\n0.003723 0.000000 0.474182\n0.030548 0.000000 0.474335\n0.064117 0.000000 0.474487\n0.093140 0.000000 0.474609\n0.120300 0.000000 0.474823\n0.145355 0.000000 0.474976\n0.168945 0.000000 0.475128\n0.191193 0.000000 0.475311\n0.212402 0.000000 0.475464\n0.232941 0.000793 0.475647\n0.253113 0.001862 0.475830\n0.273407 0.002930 0.476013\n0.294159 0.004089 0.476196\n0.315765 0.005280 0.476379\n0.338623 0.006470 0.476562\n0.362946 0.007721 0.476807\n0.389252 0.009033 0.476990\n0.418030 0.010284 0.477203\n0.449524 0.011597 0.477356\n0.484039 0.012939 0.477570\n0.522095 0.014313 0.477814\n0.563812 0.015778 0.478027\n0.608887 0.017181 0.478210\n0.656433 0.018555 0.478455\n0.706421 0.020020 0.478638\n0.758209 0.021423 0.478882\n0.811401 0.022858 0.479095\n0.865662 0.024475 0.479340\n0.915527 0.025909 0.479523\n0.000000 0.016449 0.474030\n0.000000 0.017426 0.474182\n0.000000 0.018402 0.474335\n0.005188 0.019379 0.474487\n0.032135 0.020264 0.474609\n0.065826 0.021332 0.474823\n0.094513 0.022369 0.474976\n0.121613 0.023499 0.475128\n0.146729 0.024658 0.475311\n0.170105 0.025726 0.475464\n0.192322 0.026855 0.475647\n0.213379 0.027954 0.475830\n0.233948 0.029144 0.476013\n0.254028 0.030396 0.476166\n0.274261 0.031586 0.476379\n0.295074 0.032867 0.476562\n0.316620 0.034149 0.476776\n0.339417 0.035431 0.476959\n0.363861 0.036774 0.477173\n0.390228 0.038116 0.477356\n0.419037 0.039398 0.477570\n0.450470 0.040741 0.477814\n0.485016 0.042145 0.478027\n0.523071 0.043518 0.478210\n0.564789 0.045013 0.478455\n0.609558 0.047150 0.478638\n0.657074 0.049591 0.478882\n0.706940 0.052094 0.479095\n0.758575 0.054657 0.479340\n0.811646 0.057373 0.479492\n0.865814 0.059479 0.479767\n0.915527 0.061005 0.480011\n0.000000 0.045715 0.474335\n0.000000 0.047546 0.474487\n0.000000 0.049194 0.474609\n0.006683 0.050781 0.474792\n0.033569 0.052765 0.474976\n0.067413 0.054749 0.475128\n0.096252 0.056793 0.475281\n0.122986 0.058716 0.475464\n0.147980 0.059814 0.475647\n0.171295 0.061096 0.475830\n0.193451 0.062378 0.476013\n0.214417 0.063721 0.476166\n0.234955 0.065155 0.476349\n0.255035 0.066467 0.476562\n0.275177 0.067780 0.476776\n0.296051 0.069153 0.476959\n0.317596 0.070557 0.477173\n0.340302 0.071869 0.477356\n0.364746 0.073242 0.477570\n0.391144 0.074677 0.477783\n0.419922 0.076141 0.478027\n0.451385 0.077545 0.478210\n0.485992 0.079041 0.478424\n0.524078 0.080536 0.478638\n0.565735 0.082031 0.478851\n0.610474 0.083496 0.479095\n0.657898 0.084991 0.479340\n0.707672 0.086517 0.479492\n0.759277 0.088013 0.479767\n0.812195 0.089539 0.480011\n0.865936 0.091064 0.480194\n0.915527 0.092590 0.480438\n0.000000 0.082947 0.474609\n0.000000 0.083893 0.474792\n0.000000 0.084991 0.474945\n0.008270 0.086121 0.475098\n0.035248 0.087280 0.475281\n0.069244 0.088287 0.475464\n0.097748 0.089478 0.475647\n0.124634 0.090698 0.475830\n0.149353 0.091919 0.475983\n0.172516 0.093170 0.476166\n0.194427 0.094177 0.476349\n0.215515 0.095490 0.476562\n0.235718 0.096802 0.476776\n0.256042 0.098083 0.476929\n0.276184 0.099396 0.477142\n0.296936 0.100616 0.477356\n0.318542 0.101868 0.477570\n0.341278 0.103210 0.477783\n0.365631 0.104553 0.477997\n0.392059 0.105896 0.478210\n0.420807 0.107300 0.478424\n0.452301 0.108673 0.478638\n0.487000 0.110046 0.478851\n0.525085 0.111450 0.479095\n0.566528 0.112793 0.479309\n0.611298 0.114136 0.479492\n0.658722 0.115479 0.479767\n0.708221 0.116882 0.479980\n0.759644 0.118286 0.480194\n0.812469 0.119720 0.480438\n0.866089 0.121094 0.480652\n0.915527 0.122528 0.480896\n0.000000 0.113708 0.474945\n0.000000 0.114807 0.475098\n0.000000 0.115662 0.475281\n0.009979 0.116760 0.475464\n0.037018 0.117859 0.475647\n0.071106 0.118927 0.475830\n0.099518 0.119934 0.475983\n0.126068 0.121124 0.476135\n0.150726 0.122284 0.476349\n0.173798 0.123260 0.476532\n0.195709 0.124481 0.476776\n0.216614 0.125641 0.476929\n0.236786 0.126831 0.477142\n0.257050 0.127899 0.477325\n0.277191 0.129120 0.477570\n0.297852 0.130341 0.477783\n0.319489 0.131622 0.477997\n0.342285 0.132782 0.478210\n0.366608 0.133942 0.478424\n0.393036 0.135193 0.478607\n0.421875 0.136475 0.478821\n0.453339 0.137756 0.479095\n0.487823 0.138885 0.479309\n0.526093 0.140076 0.479492\n0.567535 0.141418 0.479767\n0.612091 0.142670 0.479980\n0.659393 0.144012 0.480194\n0.708984 0.145325 0.480438\n0.760284 0.146332 0.480652\n0.812744 0.147644 0.480865\n0.866302 0.148926 0.481110\n0.915527 0.150238 0.481384\n0.000000 0.142639 0.475250\n0.000000 0.143494 0.475464\n0.000000 0.144440 0.475647\n0.011749 0.145477 0.475800\n0.038818 0.146332 0.475983\n0.072906 0.147339 0.476135\n0.101135 0.148438 0.476349\n0.127533 0.149323 0.476532\n0.152100 0.150421 0.476776\n0.175262 0.151520 0.476929\n0.196960 0.152435 0.477142\n0.217773 0.153534 0.477325\n0.237915 0.154633 0.477570\n0.257874 0.155579 0.477783\n0.278229 0.156738 0.477966\n0.298798 0.157867 0.478180\n0.320374 0.158783 0.478394\n0.343323 0.159973 0.478607\n0.367645 0.161133 0.478821\n0.394104 0.162231 0.479065\n0.422882 0.163239 0.479279\n0.454376 0.164459 0.479492\n0.488922 0.165619 0.479736\n0.526978 0.166565 0.479950\n0.568512 0.167786 0.480194\n0.613068 0.168945 0.480438\n0.660278 0.169891 0.480621\n0.709503 0.171112 0.480865\n0.760712 0.172272 0.481110\n0.813171 0.173462 0.481354\n0.866608 0.174408 0.481567\n0.915527 0.175629 0.481812\n0.000000 0.169189 0.475616\n0.000000 0.169952 0.475800\n0.000000 0.170837 0.475983\n0.013550 0.171844 0.476135\n0.040649 0.172607 0.476349\n0.074829 0.173584 0.476501\n0.102997 0.174408 0.476746\n0.129303 0.175415 0.476929\n0.153687 0.176270 0.477142\n0.176514 0.177216 0.477325\n0.198181 0.178284 0.477539\n0.218903 0.179108 0.477783\n0.238983 0.180145 0.477966\n0.258911 0.181000 0.478180\n0.279175 0.182037 0.478394\n0.299835 0.183075 0.478607\n0.321350 0.183929 0.478821\n0.344147 0.184998 0.479065\n0.368683 0.186096 0.479279\n0.395111 0.186920 0.479462\n0.423950 0.188019 0.479736\n0.455475 0.189087 0.479950\n0.489990 0.189941 0.480194\n0.528015 0.191040 0.480438\n0.569489 0.191986 0.480621\n0.614044 0.192993 0.480865\n0.660889 0.194092 0.481110\n0.710297 0.194946 0.481354\n0.761139 0.196045 0.481567\n0.813538 0.197144 0.481781\n0.866760 0.197968 0.482056\n0.915527 0.199097 0.482269\n0.000000 0.193756 0.475983\n0.000000 0.194458 0.476135\n0.000000 0.195312 0.476349\n0.015411 0.196045 0.476501\n0.042542 0.196930 0.476746\n0.076813 0.197662 0.476929\n0.104858 0.198578 0.477142\n0.130798 0.199371 0.477325\n0.155121 0.200317 0.477539\n0.177826 0.201050 0.477753\n0.199402 0.201996 0.477966\n0.220062 0.202759 0.478149\n0.240112 0.203735 0.478394\n0.260040 0.204468 0.478577\n0.280060 0.205475 0.478821\n0.300842 0.206451 0.479034\n0.322357 0.207214 0.479279\n0.345154 0.208221 0.479462\n0.369720 0.209015 0.479706\n0.396179 0.209991 0.479950\n0.424988 0.210785 0.480164\n0.456451 0.211792 0.480438\n0.491028 0.212585 0.480621\n0.529083 0.213562 0.480865\n0.570496 0.214569 0.481110\n0.614777 0.215363 0.481323\n0.661774 0.216370 0.481567\n0.710815 0.217163 0.481781\n0.761780 0.218140 0.482056\n0.813873 0.219055 0.482269\n0.866882 0.219940 0.482483\n0.915527 0.220917 0.482758\n0.000000 0.216492 0.476318\n0.000000 0.217133 0.476501\n0.000000 0.217957 0.476746\n0.017395 0.218628 0.476929\n0.044495 0.219482 0.477142\n0.078857 0.220123 0.477325\n0.106659 0.221039 0.477509\n0.132599 0.221710 0.477753\n0.156555 0.222595 0.477966\n0.179169 0.223267 0.478149\n0.200653 0.224121 0.478394\n0.221252 0.224854 0.478577\n0.241241 0.225739 0.478821\n0.261139 0.226440 0.479034\n0.281158 0.227386 0.479279\n0.301880 0.228058 0.479462\n0.323425 0.228973 0.479706\n0.346191 0.229706 0.479919\n0.370819 0.230652 0.480164\n0.397278 0.231354 0.480408\n0.425873 0.232300 0.480621\n0.457397 0.233002 0.480865\n0.492126 0.233948 0.481110\n0.530090 0.234680 0.481323\n0.571350 0.235626 0.481567\n0.615692 0.236328 0.481781\n0.662659 0.237274 0.482025\n0.711609 0.238007 0.482269\n0.762238 0.238892 0.482483\n0.814117 0.239838 0.482758\n0.867035 0.240540 0.482971\n0.915527 0.241364 0.483185\n0.000000 0.237823 0.476715\n0.000000 0.238647 0.476898\n0.000000 0.239227 0.477142\n0.019501 0.240021 0.477325\n0.047180 0.240631 0.477509\n0.080994 0.241302 0.477722\n0.108521 0.242096 0.477966\n0.134186 0.242706 0.478149\n0.158173 0.243561 0.478363\n0.180511 0.244171 0.478577\n0.201935 0.244995 0.478790\n0.222443 0.245667 0.479034\n0.242371 0.246552 0.479279\n0.262207 0.247162 0.479462\n0.282257 0.248016 0.479706\n0.302826 0.248688 0.479919\n0.324493 0.249542 0.480133\n0.347290 0.250214 0.480408\n0.371674 0.251129 0.480621\n0.398102 0.251740 0.480835\n0.426971 0.252411 0.481110\n0.458496 0.253265 0.481323\n0.493225 0.253937 0.481537\n0.531189 0.254852 0.481781\n0.572388 0.255493 0.482025\n0.616699 0.256409 0.482269\n0.663300 0.257050 0.482483\n0.712250 0.257935 0.482727\n0.762787 0.258606 0.482971\n0.814545 0.259491 0.483185\n0.867157 0.260132 0.483429\n0.915527 0.260986 0.483704\n0.000000 0.258301 0.477142\n0.000000 0.258972 0.477295\n0.000000 0.259613 0.477509\n0.021515 0.260193 0.477722\n0.050598 0.260986 0.477966\n0.083099 0.261536 0.478149\n0.110504 0.262146 0.478363\n0.136017 0.262939 0.478577\n0.159729 0.263489 0.478790\n0.182098 0.264343 0.479034\n0.203217 0.264923 0.479248\n0.223633 0.265778 0.479462\n0.243530 0.266357 0.479706\n0.263336 0.267181 0.479919\n0.283325 0.267761 0.480133\n0.303955 0.268433 0.480408\n0.325592 0.269226 0.480591\n0.348389 0.269806 0.480835\n0.372742 0.270691 0.481110\n0.399200 0.271301 0.481323\n0.428101 0.272125 0.481537\n0.459595 0.272736 0.481781\n0.494324 0.273376 0.482025\n0.532166 0.274200 0.482239\n0.573425 0.274841 0.482483\n0.617554 0.275696 0.482727\n0.664185 0.276306 0.482971\n0.712891 0.277100 0.483185\n0.763275 0.277740 0.483429\n0.814911 0.278595 0.483704\n0.867310 0.279205 0.483887\n0.915527 0.279846 0.484131\n0.000000 0.278046 0.477509\n0.000000 0.278809 0.477722\n0.000000 0.279327 0.477936\n0.023651 0.279968 0.478149\n0.054657 0.280609 0.478363\n0.085236 0.281158 0.478577\n0.112457 0.281952 0.478790\n0.137604 0.282501 0.479034\n0.161316 0.283234 0.479248\n0.183502 0.283844 0.479462\n0.204529 0.284393 0.479706\n0.224884 0.285187 0.479919\n0.244659 0.285767 0.480133\n0.264435 0.286499 0.480377\n0.284454 0.287140 0.480591\n0.305023 0.287720 0.480835\n0.326538 0.288513 0.481079\n0.349457 0.289093 0.481323\n0.373840 0.289917 0.481537\n0.400299 0.290527 0.481750\n0.429199 0.291107 0.482025\n0.460693 0.291870 0.482239\n0.495209 0.292450 0.482483\n0.533203 0.293274 0.482727\n0.574432 0.293884 0.482941\n0.618378 0.294708 0.483185\n0.665039 0.295258 0.483429\n0.713409 0.295837 0.483704\n0.763794 0.296661 0.483887\n0.815186 0.297211 0.484100\n0.867462 0.298035 0.484375\n0.915527 0.298615 0.484589\n0.000000 0.297577 0.477936\n0.000000 0.298309 0.478149\n0.000031 0.298828 0.478333\n0.025879 0.299530 0.478546\n0.058624 0.300110 0.478790\n0.087402 0.300598 0.479004\n0.114349 0.301361 0.479248\n0.139465 0.301880 0.479462\n0.162933 0.302490 0.479675\n0.184937 0.303192 0.479919\n0.205780 0.303772 0.480133\n0.226105 0.304504 0.480377\n0.245911 0.305084 0.480560\n0.265594 0.305786 0.480804\n0.285583 0.306427 0.481079\n0.306030 0.306976 0.481293\n0.327637 0.307770 0.481537\n0.350555 0.308289 0.481750\n0.374939 0.308868 0.481995\n0.401398 0.309662 0.482208\n0.430267 0.310211 0.482452\n0.461823 0.311005 0.482697\n0.496307 0.311584 0.482941\n0.534241 0.312286 0.483185\n0.575439 0.312927 0.483429\n0.619385 0.313507 0.483673\n0.665710 0.314301 0.483887\n0.714233 0.314850 0.484100\n0.764313 0.315460 0.484375\n0.815521 0.316193 0.484589\n0.867615 0.316742 0.484833\n0.915527 0.317505 0.485077\n0.000000 0.317444 0.478333\n0.000000 0.317932 0.478546\n0.001953 0.318420 0.478790\n0.028015 0.319153 0.479004\n0.060822 0.319702 0.479218\n0.089569 0.320221 0.479431\n0.116272 0.320953 0.479675\n0.141235 0.321472 0.479889\n0.164459 0.322205 0.480133\n0.186432 0.322754 0.480377\n0.207306 0.323303 0.480560\n0.227356 0.324036 0.480774\n0.247070 0.324615 0.481049\n0.266754 0.325134 0.481293\n0.286652 0.325897 0.481537\n0.307129 0.326447 0.481750\n0.328705 0.327240 0.481995\n0.351624 0.327789 0.482208\n0.376038 0.328339 0.482452\n0.402527 0.329071 0.482697\n0.431396 0.329620 0.482941\n0.462921 0.330292 0.483154\n0.497406 0.330963 0.483429\n0.535339 0.331512 0.483673\n0.576355 0.332275 0.483856\n0.620361 0.332855 0.484100\n0.666595 0.333496 0.484344\n0.714905 0.334137 0.484589\n0.764740 0.334686 0.484833\n0.816010 0.335449 0.485077\n0.867920 0.336029 0.485291\n0.915527 0.336548 0.485535\n0.000000 0.337555 0.478790\n0.000000 0.338043 0.479004\n0.004028 0.338745 0.479218\n0.030365 0.339264 0.479431\n0.063171 0.339783 0.479645\n0.091766 0.340515 0.479889\n0.118286 0.341034 0.480133\n0.142975 0.341553 0.480377\n0.166168 0.342285 0.480560\n0.187958 0.342834 0.480774\n0.208618 0.343567 0.481049\n0.228577 0.344086 0.481293\n0.248230 0.344635 0.481506\n0.267914 0.345398 0.481750\n0.287811 0.345917 0.481995\n0.308197 0.346497 0.482178\n0.329681 0.347229 0.482452\n0.352539 0.347778 0.482697\n0.377136 0.348511 0.482941\n0.403656 0.349091 0.483154\n0.432526 0.349701 0.483429\n0.464050 0.350372 0.483643\n0.498535 0.350922 0.483856\n0.536377 0.351715 0.484100\n0.577362 0.352203 0.484344\n0.621033 0.352753 0.484558\n0.667419 0.353516 0.484833\n0.715515 0.354095 0.485046\n0.765411 0.354706 0.485291\n0.816315 0.355347 0.485504\n0.868103 0.355896 0.485748\n0.915527 0.356659 0.485962\n0.000000 0.358612 0.479187\n0.000000 0.359100 0.479431\n0.006134 0.359711 0.479645\n0.032532 0.360352 0.479858\n0.065704 0.360809 0.480133\n0.093964 0.361572 0.480347\n0.120331 0.362091 0.480560\n0.144867 0.362610 0.480774\n0.167755 0.363373 0.481018\n0.189362 0.363922 0.481293\n0.209930 0.364410 0.481506\n0.229797 0.365173 0.481750\n0.249451 0.365692 0.481995\n0.269043 0.366455 0.482178\n0.288910 0.367004 0.482452\n0.309357 0.367523 0.482697\n0.330872 0.368317 0.482941\n0.353699 0.368835 0.483124\n0.378235 0.369415 0.483398\n0.404724 0.370148 0.483643\n0.433624 0.370636 0.483856\n0.465149 0.371429 0.484070\n0.499634 0.371979 0.484344\n0.537476 0.372528 0.484558\n0.578369 0.373260 0.484802\n0.622009 0.373810 0.485046\n0.668060 0.374542 0.485260\n0.716278 0.375092 0.485504\n0.765808 0.375610 0.485748\n0.816559 0.376373 0.485962\n0.868225 0.376892 0.486176\n0.915527 0.377411 0.486420\n0.000000 0.380676 0.479614\n0.000000 0.381439 0.479858\n0.008453 0.381927 0.480133\n0.034943 0.382446 0.480347\n0.068085 0.383179 0.480530\n0.096161 0.383698 0.480774\n0.122253 0.384430 0.481018\n0.146576 0.384979 0.481293\n0.169312 0.385498 0.481476\n0.190765 0.386261 0.481720\n0.211273 0.386780 0.481964\n0.231049 0.387329 0.482178\n0.250580 0.388092 0.482452\n0.270172 0.388611 0.482666\n0.290009 0.389313 0.482910\n0.310425 0.389923 0.483124\n0.331940 0.390472 0.483398\n0.354767 0.391205 0.483643\n0.379333 0.391754 0.483826\n0.405884 0.392273 0.484070\n0.434753 0.393066 0.484344\n0.466217 0.393585 0.484558\n0.500732 0.394287 0.484802\n0.538483 0.394897 0.485046\n0.579376 0.395416 0.485260\n0.622986 0.396118 0.485474\n0.668915 0.396667 0.485748\n0.716797 0.397308 0.485962\n0.766205 0.397949 0.486176\n0.817017 0.398499 0.486420\n0.868408 0.399078 0.486633\n0.915527 0.399750 0.486816\n0.000000 0.404572 0.480133\n0.000000 0.405090 0.480316\n0.010742 0.405701 0.480530\n0.037170 0.406372 0.480774\n0.070526 0.406860 0.481018\n0.098358 0.407623 0.481262\n0.124176 0.408173 0.481476\n0.148407 0.408661 0.481720\n0.170959 0.409424 0.481964\n0.192383 0.409973 0.482178\n0.212585 0.410553 0.482422\n0.232330 0.411285 0.482666\n0.251831 0.411774 0.482910\n0.271332 0.412598 0.483124\n0.291199 0.413116 0.483398\n0.311554 0.413635 0.483612\n0.333038 0.414429 0.483826\n0.355865 0.414948 0.484070\n0.380493 0.415466 0.484314\n0.406982 0.416290 0.484558\n0.435791 0.416809 0.484802\n0.467377 0.417542 0.485016\n0.501831 0.418091 0.485260\n0.539459 0.418610 0.485474\n0.580444 0.419373 0.485748\n0.623932 0.419891 0.485931\n0.669556 0.420593 0.486145\n0.717438 0.421173 0.486420\n0.766876 0.421661 0.486633\n0.817322 0.422333 0.486786\n0.868530 0.422913 0.487061\n0.915527 0.423431 0.487274\n0.000000 0.430115 0.480530\n0.000000 0.430847 0.480774\n0.013031 0.431366 0.481018\n0.039612 0.431976 0.481262\n0.072937 0.432678 0.481445\n0.100586 0.433167 0.481720\n0.126190 0.433807 0.481964\n0.150269 0.434479 0.482178\n0.172516 0.434998 0.482422\n0.193787 0.435791 0.482666\n0.214050 0.436310 0.482880\n0.233765 0.436920 0.483124\n0.253021 0.437592 0.483398\n0.272491 0.438171 0.483612\n0.292236 0.438751 0.483826\n0.312683 0.439453 0.484070\n0.334167 0.440002 0.484314\n0.356934 0.440765 0.484558\n0.381561 0.441315 0.484772\n0.408081 0.441803 0.485016\n0.436768 0.442596 0.485229\n0.468262 0.443115 0.485443\n0.502716 0.443726 0.485748\n0.540405 0.444397 0.485931\n0.581177 0.444946 0.486145\n0.624664 0.445709 0.486389\n0.670410 0.446228 0.486603\n0.718018 0.446716 0.486786\n0.767212 0.447449 0.487061\n0.817566 0.447968 0.487274\n0.868683 0.448486 0.487457\n0.915527 0.449219 0.487732\n0.000000 0.457977 0.481018\n0.000000 0.458588 0.481232\n0.015472 0.459259 0.481445\n0.041870 0.459808 0.481720\n0.075500 0.460571 0.481964\n0.102783 0.461090 0.482178\n0.128235 0.461609 0.482422\n0.151917 0.462402 0.482666\n0.174255 0.462921 0.482880\n0.195190 0.463440 0.483124\n0.215454 0.464233 0.483398\n0.235046 0.464752 0.483612\n0.254181 0.465546 0.483795\n0.273621 0.466064 0.484070\n0.293335 0.466614 0.484314\n0.313782 0.467377 0.484528\n0.335236 0.467896 0.484772\n0.358063 0.468475 0.485016\n0.382477 0.469208 0.485229\n0.409119 0.469727 0.485443\n0.437836 0.470459 0.485718\n0.469330 0.471008 0.485931\n0.503754 0.471558 0.486145\n0.541473 0.472290 0.486389\n0.582184 0.472839 0.486603\n0.625549 0.473328 0.486786\n0.671234 0.474060 0.487030\n0.718689 0.474579 0.487244\n0.767792 0.475067 0.487457\n0.817841 0.475800 0.487732\n0.868866 0.476288 0.487885\n0.915527 0.476837 0.488098\n0.000000 0.488251 0.481445\n0.000000 0.489044 0.481689\n0.017883 0.489532 0.481934\n0.044281 0.490082 0.482147\n0.077789 0.490845 0.482422\n0.104980 0.491364 0.482666\n0.130249 0.491943 0.482880\n0.153778 0.492676 0.483093\n0.175751 0.493225 0.483368\n0.196747 0.493958 0.483612\n0.216766 0.494507 0.483795\n0.236298 0.495087 0.484070\n0.255402 0.495819 0.484283\n0.274780 0.496307 0.484528\n0.294525 0.496887 0.484772\n0.314880 0.497620 0.485016\n0.336365 0.498169 0.485229\n0.359131 0.498901 0.485443\n0.383545 0.499451 0.485718\n0.410034 0.500000 0.485931\n0.438934 0.500702 0.486115\n0.470459 0.501282 0.486389\n0.504852 0.501740 0.486603\n0.542542 0.502502 0.486786\n0.583191 0.502991 0.487030\n0.626404 0.503540 0.487244\n0.671844 0.504242 0.487457\n0.719269 0.504730 0.487732\n0.768188 0.505371 0.487885\n0.818085 0.505920 0.488098\n0.869080 0.506439 0.488312\n0.915527 0.507019 0.488525\n0.000000 0.521454 0.481934\n0.000000 0.522003 0.482147\n0.020355 0.522736 0.482422\n0.047302 0.523285 0.482666\n0.080200 0.523987 0.482849\n0.107178 0.524536 0.483093\n0.132141 0.525085 0.483337\n0.155457 0.525787 0.483582\n0.177429 0.526367 0.483795\n0.198212 0.526855 0.484070\n0.218079 0.527649 0.484283\n0.237518 0.528137 0.484528\n0.256561 0.528748 0.484772\n0.275909 0.529419 0.484985\n0.295471 0.529938 0.485229\n0.315948 0.530701 0.485443\n0.337402 0.531219 0.485687\n0.360260 0.531708 0.485931\n0.384613 0.532471 0.486115\n0.411133 0.533020 0.486359\n0.440002 0.533478 0.486572\n0.471527 0.534241 0.486786\n0.505859 0.534698 0.487030\n0.543579 0.535248 0.487244\n0.584106 0.535980 0.487457\n0.627136 0.536438 0.487732\n0.672638 0.536957 0.487885\n0.719940 0.537628 0.488098\n0.768555 0.538086 0.488312\n0.818573 0.538605 0.488525\n0.869293 0.539276 0.488708\n0.915527 0.539703 0.488922\n0.000000 0.557739 0.482422\n0.000000 0.558228 0.482666\n0.022675 0.558777 0.482849\n0.051544 0.559509 0.483093\n0.082611 0.559998 0.483337\n0.109314 0.560516 0.483582\n0.134033 0.561279 0.483795\n0.157257 0.561768 0.484070\n0.179016 0.562347 0.484253\n0.199585 0.562988 0.484528\n0.219360 0.563507 0.484741\n0.238708 0.564301 0.484985\n0.257721 0.564789 0.485199\n0.277008 0.565277 0.485443\n0.296539 0.565857 0.485687\n0.317047 0.566528 0.485931\n0.338470 0.567017 0.486115\n0.361298 0.567719 0.486359\n0.385712 0.568237 0.486572\n0.412231 0.568695 0.486786\n0.441071 0.569427 0.487000\n0.472565 0.569885 0.487244\n0.506927 0.570374 0.487457\n0.544434 0.571075 0.487701\n0.584930 0.571503 0.487885\n0.627991 0.571991 0.488098\n0.673187 0.572479 0.488312\n0.720428 0.573090 0.488495\n0.769165 0.573578 0.488708\n0.818787 0.574005 0.488922\n0.869415 0.574646 0.489075\n0.915527 0.575073 0.489288\n0.000000 0.596710 0.482849\n0.000061 0.597198 0.483093\n0.025146 0.597809 0.483337\n0.055664 0.598389 0.483582\n0.085083 0.598877 0.483765\n0.111481 0.599518 0.484039\n0.136017 0.600067 0.484253\n0.158905 0.600525 0.484497\n0.180450 0.601044 0.484741\n0.200958 0.601715 0.484955\n0.220673 0.602203 0.485199\n0.239960 0.602692 0.485443\n0.258881 0.603394 0.485687\n0.278168 0.603882 0.485931\n0.297638 0.604309 0.486115\n0.317963 0.605011 0.486359\n0.339539 0.605499 0.486572\n0.362366 0.605896 0.486786\n0.386780 0.606598 0.487000\n0.413300 0.607086 0.487244\n0.442139 0.607452 0.487427\n0.473633 0.608063 0.487701\n0.507935 0.608643 0.487885\n0.545349 0.609039 0.488068\n0.585815 0.609467 0.488312\n0.628906 0.610107 0.488495\n0.673950 0.610504 0.488708\n0.720917 0.610931 0.488922\n0.769501 0.611542 0.489075\n0.819031 0.611969 0.489288\n0.869507 0.612366 0.489471\n0.915527 0.612762 0.489655\n0.000000 0.638092 0.483337\n0.002167 0.638794 0.483551\n0.027649 0.639191 0.483765\n0.059509 0.639618 0.484039\n0.087463 0.640228 0.484253\n0.113617 0.640747 0.484497\n0.137909 0.641174 0.484741\n0.160706 0.641571 0.484955\n0.182129 0.642242 0.485199\n0.202362 0.642670 0.485413\n0.222015 0.643127 0.485687\n0.241150 0.643677 0.485931\n0.260071 0.644196 0.486115\n0.279297 0.644592 0.486359\n0.298706 0.645081 0.486572\n0.319031 0.645691 0.486786\n0.340454 0.646088 0.487000\n0.363220 0.646484 0.487213\n0.387817 0.647125 0.487427\n0.414337 0.647522 0.487671\n0.443207 0.647919 0.487885\n0.474548 0.648285 0.488068\n0.508911 0.648895 0.488312\n0.546295 0.649292 0.488495\n0.586761 0.649658 0.488708\n0.629517 0.650024 0.488922\n0.674530 0.650635 0.489044\n0.721588 0.650970 0.489288\n0.769867 0.651337 0.489471\n0.819244 0.651642 0.489655\n0.869629 0.652252 0.489838\n0.915527 0.652588 0.490051\n0.000000 0.681641 0.483765\n0.004456 0.682037 0.484039\n0.029968 0.682434 0.484253\n0.061981 0.683014 0.484467\n0.089722 0.683441 0.484741\n0.115631 0.683838 0.484955\n0.139709 0.684204 0.485168\n0.162262 0.684814 0.485413\n0.183624 0.685181 0.485687\n0.203918 0.685516 0.485901\n0.223389 0.685883 0.486084\n0.242310 0.686523 0.486328\n0.261169 0.686859 0.486542\n0.280151 0.687195 0.486786\n0.299805 0.687714 0.487000\n0.320038 0.688141 0.487213\n0.341492 0.688507 0.487396\n0.364288 0.688873 0.487671\n0.388855 0.689178 0.487854\n0.415344 0.689697 0.488068\n0.443970 0.690094 0.488281\n0.475433 0.690430 0.488464\n0.509735 0.690796 0.488708\n0.547272 0.691162 0.488922\n0.587433 0.691620 0.489044\n0.630341 0.691895 0.489258\n0.675262 0.692230 0.489441\n0.721954 0.692535 0.489655\n0.770264 0.693085 0.489838\n0.819702 0.693390 0.490051\n0.869751 0.693634 0.490173\n0.915527 0.693939 0.490387\n0.000000 0.726654 0.484222\n0.006805 0.727173 0.484467\n0.032410 0.727539 0.484741\n0.064606 0.727844 0.484924\n0.092010 0.728180 0.485168\n0.117737 0.728455 0.485413\n0.141632 0.729004 0.485657\n0.164062 0.729340 0.485901\n0.185028 0.729614 0.486084\n0.205231 0.729919 0.486328\n0.224609 0.730194 0.486542\n0.243469 0.730682 0.486755\n0.262329 0.731049 0.487000\n0.281281 0.731354 0.487213\n0.300873 0.731659 0.487396\n0.321106 0.731903 0.487640\n0.342529 0.732452 0.487854\n0.365265 0.732697 0.488068\n0.389832 0.733032 0.488281\n0.416290 0.733276 0.488464\n0.445007 0.733551 0.488708\n0.476410 0.734009 0.488892\n0.510712 0.734314 0.489044\n0.548065 0.734558 0.489258\n0.588318 0.734802 0.489441\n0.630981 0.735077 0.489655\n0.675812 0.735291 0.489838\n0.722626 0.735779 0.490051\n0.770721 0.736023 0.490173\n0.819916 0.736206 0.490387\n0.869812 0.736450 0.490540\n0.915527 0.736725 0.490692\n0.000000 0.772980 0.484741\n0.009186 0.773254 0.484924\n0.034882 0.773682 0.485138\n0.067047 0.773926 0.485413\n0.094238 0.774139 0.485657\n0.119690 0.774414 0.485870\n0.143524 0.774658 0.486084\n0.165558 0.774994 0.486328\n0.186646 0.775330 0.486542\n0.206543 0.775574 0.486755\n0.225861 0.775818 0.486969\n0.244659 0.776031 0.487183\n0.263428 0.776215 0.487396\n0.282349 0.776550 0.487640\n0.301880 0.776917 0.487854\n0.322144 0.777100 0.488068\n0.343536 0.777313 0.488281\n0.366302 0.777557 0.488464\n0.390686 0.777802 0.488678\n0.417175 0.777985 0.488892\n0.445984 0.778168 0.489044\n0.477386 0.778442 0.489258\n0.511658 0.778809 0.489441\n0.548920 0.778992 0.489655\n0.589142 0.779175 0.489838\n0.631714 0.779358 0.490051\n0.676544 0.779510 0.490173\n0.723053 0.779724 0.490356\n0.770966 0.779877 0.490509\n0.820160 0.780212 0.490692\n0.869904 0.780487 0.490875\n0.915527 0.780609 0.491028\n0.000000 0.820221 0.485138\n0.011566 0.820404 0.485413\n0.037109 0.820526 0.485657\n0.069489 0.820740 0.485870\n0.096466 0.820831 0.486084\n0.121704 0.821045 0.486328\n0.145172 0.821167 0.486511\n0.167267 0.821564 0.486755\n0.188019 0.821747 0.486969\n0.207855 0.821899 0.487183\n0.227051 0.822052 0.487396\n0.245819 0.822174 0.487640\n0.264496 0.822388 0.487854\n0.283386 0.822510 0.488068\n0.302795 0.822632 0.488251\n0.323151 0.822815 0.488434\n0.344421 0.822968 0.488678\n0.367279 0.823273 0.488861\n0.391693 0.823456 0.489044\n0.418152 0.823578 0.489258\n0.446960 0.823730 0.489410\n0.478271 0.823853 0.489624\n0.512390 0.823975 0.489807\n0.549835 0.824127 0.490051\n0.589813 0.824219 0.490173\n0.632507 0.824341 0.490356\n0.676910 0.824463 0.490509\n0.723389 0.824615 0.490692\n0.771332 0.824860 0.490845\n0.820312 0.825043 0.491028\n0.870117 0.825104 0.491119\n0.915527 0.825195 0.491302\n0.000000 0.867737 0.485626\n0.013855 0.867798 0.485870\n0.039551 0.867920 0.486084\n0.071930 0.868103 0.486328\n0.098633 0.868286 0.486511\n0.123657 0.868347 0.486755\n0.147003 0.868439 0.486969\n0.168793 0.868530 0.487152\n0.189392 0.868561 0.487396\n0.209076 0.868652 0.487640\n0.228241 0.868744 0.487854\n0.246918 0.868774 0.488068\n0.265594 0.868896 0.488251\n0.284424 0.868988 0.488434\n0.303741 0.869049 0.488678\n0.324066 0.869110 0.488861\n0.345306 0.869171 0.489044\n0.368011 0.869263 0.489258\n0.392639 0.869293 0.489410\n0.419098 0.869385 0.489624\n0.447784 0.869446 0.489807\n0.479065 0.869446 0.490021\n0.513245 0.869720 0.490173\n0.550446 0.869781 0.490356\n0.590607 0.869873 0.490509\n0.633026 0.869995 0.490692\n0.677612 0.870087 0.490845\n0.723969 0.870087 0.490997\n0.771759 0.870148 0.491119\n0.820496 0.870178 0.491302\n0.870331 0.870239 0.491425\n0.915527 0.870270 0.491577\n0.000000 0.915527 0.486053\n0.016266 0.915527 0.486298\n0.041779 0.915527 0.486511\n0.074341 0.915527 0.486725\n0.100830 0.915527 0.486938\n0.125641 0.915527 0.487152\n0.148590 0.915527 0.487396\n0.170227 0.915527 0.487640\n0.190735 0.915527 0.487823\n0.210297 0.915527 0.488037\n0.229401 0.915527 0.488251\n0.248016 0.915527 0.488434\n0.266632 0.915527 0.488678\n0.285461 0.915527 0.488861\n0.304718 0.915527 0.489044\n0.324921 0.915527 0.489258\n0.346252 0.915527 0.489410\n0.368988 0.915527 0.489624\n0.393555 0.915527 0.489807\n0.419922 0.915527 0.490021\n0.448608 0.915527 0.490143\n0.479980 0.915527 0.490326\n0.514191 0.915527 0.490479\n0.551300 0.915527 0.490692\n0.591156 0.915527 0.490845\n0.633575 0.915527 0.490997\n0.678040 0.915527 0.491119\n0.724304 0.915527 0.491302\n0.772064 0.915527 0.491425\n0.820831 0.915527 0.491577\n0.870392 0.915527 0.491699\n0.915527 0.915527 0.491852\n0.000000 0.000000 0.491211\n0.000000 0.000000 0.491333\n0.000000 0.000000 0.491455\n0.002747 0.000000 0.491608\n0.029419 0.000000 0.491730\n0.062836 0.000000 0.491882\n0.091980 0.000000 0.492035\n0.119232 0.000000 0.492188\n0.144409 0.000000 0.492340\n0.168091 0.000000 0.492493\n0.190338 0.000000 0.492645\n0.211609 0.000000 0.492828\n0.232086 0.000000 0.493011\n0.252502 0.000000 0.493134\n0.272705 0.000000 0.493347\n0.293549 0.000000 0.493530\n0.315094 0.000000 0.493683\n0.337860 0.000000 0.493896\n0.362305 0.000000 0.494049\n0.388519 0.000000 0.494263\n0.417206 0.000000 0.494446\n0.448669 0.000000 0.494659\n0.483276 0.000000 0.494843\n0.521454 0.000000 0.495056\n0.563232 0.000000 0.495270\n0.608124 0.000000 0.495483\n0.655731 0.000000 0.495667\n0.705811 0.000000 0.495911\n0.757935 0.000000 0.496094\n0.811188 0.000000 0.496307\n0.865509 0.000000 0.496521\n0.915527 0.000000 0.496765\n0.000000 0.000000 0.491455\n0.000000 0.000000 0.491608\n0.000000 0.000000 0.491730\n0.004059 0.000000 0.491882\n0.030792 0.000000 0.492035\n0.064362 0.000000 0.492157\n0.093445 0.000000 0.492310\n0.120453 0.000000 0.492493\n0.145660 0.000000 0.492645\n0.169128 0.000000 0.492828\n0.191406 0.000000 0.493011\n0.212524 0.000153 0.493134\n0.233063 0.001129 0.493347\n0.253326 0.002197 0.493500\n0.273651 0.003326 0.493683\n0.294342 0.004486 0.493896\n0.316040 0.005646 0.494049\n0.338776 0.006897 0.494263\n0.363037 0.008118 0.494446\n0.389435 0.009430 0.494659\n0.418182 0.010864 0.494843\n0.449677 0.012146 0.495056\n0.484131 0.013489 0.495239\n0.522217 0.014893 0.495453\n0.563995 0.016235 0.495667\n0.609009 0.017609 0.495911\n0.656586 0.019043 0.496063\n0.706512 0.020447 0.496307\n0.758301 0.022034 0.496521\n0.811462 0.023468 0.496765\n0.865662 0.024902 0.496979\n0.915527 0.026428 0.497192\n0.000000 0.016754 0.491730\n0.000000 0.017731 0.491852\n0.000000 0.018707 0.492035\n0.005402 0.019745 0.492157\n0.032349 0.020752 0.492310\n0.066071 0.021637 0.492462\n0.095001 0.022736 0.492645\n0.121857 0.023834 0.492798\n0.147003 0.024963 0.492981\n0.170258 0.026154 0.493134\n0.192505 0.027283 0.493317\n0.213501 0.028503 0.493500\n0.234070 0.029755 0.493683\n0.254181 0.030945 0.493866\n0.274536 0.032196 0.494049\n0.295227 0.033447 0.494232\n0.316833 0.034698 0.494446\n0.339722 0.036072 0.494659\n0.364014 0.037354 0.494843\n0.390381 0.038666 0.495056\n0.419189 0.040039 0.495239\n0.450653 0.041382 0.495453\n0.485138 0.042755 0.495667\n0.523193 0.044098 0.495911\n0.564911 0.045502 0.496063\n0.609650 0.047913 0.496307\n0.657196 0.050385 0.496521\n0.707031 0.052917 0.496765\n0.758667 0.055573 0.496979\n0.811768 0.058258 0.497192\n0.865814 0.059967 0.497406\n0.915527 0.061737 0.497650\n0.000000 0.046265 0.492035\n0.000000 0.048126 0.492157\n0.000000 0.049835 0.492310\n0.006958 0.051697 0.492462\n0.033966 0.053314 0.492615\n0.067749 0.055328 0.492798\n0.096497 0.057465 0.492981\n0.123291 0.059204 0.493134\n0.148315 0.060425 0.493317\n0.171600 0.061646 0.493500\n0.193634 0.062805 0.493683\n0.214569 0.064178 0.493866\n0.235077 0.065552 0.494049\n0.255188 0.066864 0.494232\n0.275360 0.068176 0.494446\n0.296204 0.069611 0.494659\n0.317719 0.071045 0.494843\n0.340454 0.072418 0.495056\n0.364960 0.073853 0.495239\n0.391357 0.075348 0.495453\n0.420166 0.076782 0.495667\n0.451660 0.078217 0.495880\n0.486145 0.079712 0.496063\n0.524200 0.081207 0.496307\n0.565857 0.082672 0.496521\n0.610596 0.084137 0.496735\n0.658020 0.085693 0.496979\n0.707764 0.087158 0.497162\n0.759308 0.088715 0.497406\n0.812225 0.090179 0.497620\n0.865936 0.091736 0.497864\n0.915527 0.093292 0.498047\n0.000000 0.083282 0.492310\n0.000000 0.084412 0.492462\n0.000000 0.085388 0.492615\n0.008575 0.086487 0.492798\n0.035675 0.087616 0.492981\n0.069489 0.088837 0.493134\n0.098175 0.089874 0.493317\n0.124847 0.091034 0.493469\n0.149597 0.092316 0.493683\n0.172821 0.093567 0.493866\n0.194763 0.094788 0.494019\n0.215698 0.095947 0.494232\n0.236053 0.097229 0.494446\n0.256165 0.098480 0.494659\n0.276367 0.099823 0.494843\n0.297150 0.101135 0.495056\n0.318695 0.102478 0.495209\n0.341431 0.103882 0.495453\n0.365967 0.104980 0.495667\n0.392334 0.106354 0.495880\n0.420929 0.107758 0.496033\n0.452454 0.109100 0.496307\n0.487183 0.110535 0.496521\n0.525238 0.111938 0.496735\n0.566833 0.113312 0.496979\n0.611542 0.114716 0.497162\n0.658905 0.116119 0.497375\n0.708374 0.117493 0.497620\n0.759705 0.118866 0.497864\n0.812531 0.120117 0.498047\n0.866089 0.121552 0.498322\n0.915527 0.122955 0.498566\n0.000000 0.114075 0.492615\n0.000000 0.115112 0.492767\n0.000000 0.116211 0.492981\n0.010254 0.117096 0.493103\n0.037323 0.118195 0.493317\n0.071411 0.119385 0.493469\n0.099823 0.120270 0.493683\n0.126282 0.121429 0.493835\n0.150940 0.122620 0.494019\n0.174164 0.123810 0.494202\n0.195984 0.124847 0.494415\n0.216827 0.126038 0.494659\n0.237030 0.127197 0.494843\n0.257172 0.128448 0.495026\n0.277344 0.129608 0.495209\n0.298126 0.130737 0.495453\n0.319641 0.132019 0.495667\n0.342468 0.133240 0.495880\n0.366791 0.134521 0.496033\n0.393219 0.135651 0.496307\n0.421997 0.136871 0.496490\n0.453491 0.138123 0.496704\n0.488159 0.139435 0.496979\n0.526306 0.140717 0.497162\n0.567719 0.141785 0.497375\n0.612335 0.143097 0.497620\n0.659546 0.144379 0.497864\n0.709045 0.145691 0.498047\n0.760345 0.147003 0.498322\n0.812805 0.148041 0.498566\n0.866302 0.149353 0.498779\n0.915527 0.150635 0.498993\n0.000000 0.142944 0.492981\n0.000000 0.143921 0.493103\n0.000000 0.144745 0.493317\n0.012024 0.145813 0.493469\n0.039093 0.146851 0.493683\n0.073273 0.147705 0.493835\n0.101624 0.148773 0.494019\n0.128021 0.149658 0.494202\n0.152435 0.150726 0.494415\n0.175415 0.151855 0.494629\n0.197144 0.152740 0.494843\n0.217957 0.153900 0.495026\n0.238098 0.154968 0.495209\n0.258118 0.156067 0.495422\n0.278381 0.157074 0.495636\n0.298920 0.158234 0.495850\n0.320679 0.159332 0.496033\n0.343475 0.160339 0.496307\n0.367798 0.161499 0.496490\n0.394226 0.162659 0.496704\n0.423035 0.163605 0.496979\n0.454559 0.164795 0.497131\n0.489075 0.165955 0.497375\n0.527100 0.167145 0.497620\n0.568665 0.168152 0.497864\n0.613159 0.169281 0.498047\n0.660370 0.170471 0.498291\n0.709656 0.171448 0.498535\n0.760803 0.172638 0.498749\n0.813263 0.173798 0.498962\n0.866608 0.174957 0.499237\n0.915527 0.175964 0.499451\n0.000000 0.169464 0.493317\n0.000000 0.170410 0.493439\n0.000000 0.171173 0.493683\n0.013855 0.172150 0.493835\n0.040985 0.172882 0.494019\n0.075226 0.173920 0.494202\n0.103363 0.174774 0.494415\n0.129486 0.175690 0.494629\n0.153931 0.176727 0.494812\n0.176758 0.177490 0.495026\n0.198364 0.178558 0.495209\n0.219086 0.179382 0.495422\n0.239166 0.180420 0.495636\n0.259155 0.181488 0.495850\n0.279419 0.182343 0.496033\n0.299957 0.183380 0.496277\n0.321472 0.184479 0.496490\n0.344360 0.185333 0.496704\n0.368835 0.186401 0.496948\n0.395264 0.187347 0.497131\n0.424133 0.188354 0.497375\n0.455627 0.189423 0.497620\n0.490112 0.190308 0.497864\n0.528168 0.191376 0.498016\n0.569672 0.192444 0.498291\n0.614166 0.193329 0.498535\n0.661133 0.194366 0.498749\n0.710358 0.195496 0.498962\n0.761230 0.196381 0.499237\n0.813599 0.197449 0.499451\n0.866760 0.198425 0.499695\n0.915527 0.199402 0.499908\n0.000000 0.194031 0.493683\n0.000000 0.194733 0.493835\n0.000000 0.195648 0.494019\n0.015747 0.196320 0.494202\n0.042816 0.197235 0.494385\n0.077118 0.197937 0.494629\n0.105164 0.198914 0.494812\n0.131195 0.199615 0.494995\n0.155365 0.200562 0.495209\n0.178070 0.201324 0.495422\n0.199585 0.202271 0.495636\n0.220245 0.203094 0.495850\n0.240295 0.203979 0.496033\n0.260193 0.204987 0.496277\n0.280273 0.205780 0.496490\n0.301025 0.206757 0.496674\n0.322510 0.207520 0.496948\n0.345367 0.208527 0.497131\n0.369904 0.209259 0.497375\n0.396362 0.210266 0.497620\n0.425171 0.211273 0.497833\n0.456696 0.212067 0.498016\n0.491211 0.213074 0.498291\n0.529205 0.213837 0.498505\n0.570740 0.214844 0.498718\n0.615051 0.215729 0.498962\n0.661896 0.216675 0.499207\n0.710999 0.217682 0.499420\n0.761871 0.218475 0.499664\n0.813873 0.219421 0.499908\n0.866913 0.220215 0.500122\n0.915527 0.221222 0.500366\n0.000000 0.216766 0.494019\n0.000000 0.217590 0.494202\n0.000000 0.218201 0.494385\n0.017822 0.218872 0.494598\n0.044769 0.219727 0.494812\n0.079193 0.220398 0.494995\n0.107086 0.221283 0.495178\n0.132843 0.221924 0.495392\n0.156952 0.222809 0.495605\n0.179535 0.223511 0.495850\n0.200867 0.224426 0.496002\n0.221436 0.225098 0.496277\n0.241394 0.226044 0.496490\n0.261261 0.226715 0.496674\n0.281311 0.227631 0.496948\n0.302063 0.228424 0.497131\n0.323578 0.229248 0.497375\n0.346375 0.229980 0.497589\n0.370972 0.230896 0.497833\n0.397400 0.231689 0.498016\n0.426208 0.232574 0.498260\n0.457733 0.233459 0.498505\n0.492310 0.234253 0.498718\n0.530273 0.235016 0.498962\n0.571594 0.235840 0.499207\n0.615845 0.236816 0.499420\n0.662750 0.237518 0.499664\n0.711700 0.238464 0.499908\n0.762268 0.239166 0.500122\n0.814178 0.240082 0.500366\n0.867096 0.240814 0.500610\n0.915527 0.241730 0.500824\n0.000000 0.238190 0.494385\n0.000000 0.238861 0.494598\n0.000000 0.239502 0.494781\n0.019836 0.240265 0.494995\n0.048035 0.240875 0.495178\n0.081268 0.241669 0.495392\n0.108856 0.242310 0.495605\n0.134613 0.243164 0.495850\n0.158478 0.243774 0.496002\n0.181000 0.244537 0.496246\n0.202118 0.245270 0.496460\n0.222626 0.245911 0.496674\n0.242523 0.246735 0.496918\n0.262390 0.247406 0.497131\n0.282410 0.248260 0.497345\n0.303131 0.248901 0.497589\n0.324646 0.249786 0.497833\n0.347443 0.250458 0.498016\n0.371979 0.251373 0.498260\n0.398438 0.251984 0.498505\n0.427246 0.252869 0.498718\n0.458832 0.253540 0.498962\n0.493378 0.254425 0.499207\n0.531372 0.255066 0.499390\n0.572571 0.255981 0.499634\n0.616791 0.256653 0.499878\n0.663544 0.257294 0.500092\n0.712402 0.258179 0.500336\n0.762939 0.258911 0.500580\n0.814575 0.259705 0.500824\n0.867188 0.260406 0.501038\n0.915527 0.261230 0.501282\n0.000000 0.258514 0.494781\n0.000000 0.259277 0.494995\n0.000000 0.259827 0.495178\n0.021820 0.260468 0.495392\n0.051483 0.261169 0.495605\n0.083405 0.261780 0.495819\n0.110779 0.262573 0.496002\n0.136261 0.263123 0.496246\n0.159943 0.263855 0.496460\n0.182373 0.264557 0.496674\n0.203400 0.265106 0.496918\n0.223846 0.265991 0.497101\n0.243683 0.266571 0.497345\n0.263489 0.267426 0.497589\n0.283478 0.268005 0.497803\n0.304199 0.268738 0.498016\n0.325714 0.269470 0.498260\n0.348511 0.270050 0.498474\n0.373047 0.270905 0.498688\n0.399506 0.271545 0.498962\n0.428345 0.272369 0.499176\n0.459778 0.272980 0.499390\n0.494476 0.273834 0.499634\n0.532410 0.274445 0.499878\n0.573578 0.275177 0.500092\n0.617798 0.275909 0.500336\n0.664307 0.276581 0.500580\n0.712982 0.277374 0.500824\n0.763336 0.277954 0.501038\n0.815002 0.278809 0.501282\n0.867340 0.279419 0.501526\n0.915527 0.280273 0.501770\n0.000000 0.278442 0.495178\n0.000000 0.278992 0.495361\n0.000000 0.279541 0.495605\n0.024078 0.280304 0.495819\n0.055237 0.280792 0.496002\n0.085571 0.281372 0.496216\n0.112762 0.282135 0.496429\n0.138062 0.282684 0.496674\n0.161652 0.283478 0.496918\n0.183716 0.284027 0.497101\n0.204926 0.284637 0.497314\n0.225067 0.285400 0.497589\n0.244873 0.285950 0.497803\n0.264618 0.286774 0.498016\n0.284607 0.287323 0.498230\n0.305328 0.288086 0.498474\n0.326813 0.288727 0.498688\n0.349609 0.289276 0.498962\n0.374054 0.290131 0.499176\n0.400543 0.290710 0.499390\n0.429321 0.291534 0.499634\n0.460876 0.292114 0.499847\n0.495453 0.292755 0.500092\n0.533478 0.293488 0.500336\n0.574585 0.294098 0.500580\n0.618530 0.294891 0.500824\n0.665161 0.295502 0.501038\n0.713715 0.296143 0.501282\n0.763885 0.296875 0.501526\n0.815277 0.297485 0.501770\n0.867493 0.298248 0.501984\n0.915527 0.298859 0.502197\n0.000000 0.297974 0.495605\n0.000000 0.298492 0.495819\n0.000366 0.299042 0.496002\n0.026184 0.299744 0.496216\n0.058929 0.300262 0.496429\n0.087708 0.300964 0.496674\n0.114746 0.301544 0.496918\n0.139740 0.302094 0.497070\n0.163177 0.302856 0.497314\n0.185181 0.303406 0.497589\n0.206207 0.303955 0.497772\n0.226318 0.304749 0.497986\n0.246063 0.305298 0.498230\n0.265778 0.306061 0.498474\n0.285675 0.306610 0.498688\n0.306183 0.307129 0.498962\n0.327911 0.307953 0.499176\n0.350739 0.308502 0.499390\n0.375122 0.309265 0.499634\n0.401581 0.309875 0.499847\n0.430450 0.310425 0.500092\n0.461975 0.311218 0.500336\n0.496552 0.311768 0.500580\n0.534363 0.312592 0.500824\n0.575653 0.313141 0.501038\n0.619476 0.313721 0.501282\n0.665833 0.314484 0.501526\n0.714294 0.315063 0.501770\n0.764404 0.315826 0.501953\n0.815643 0.316376 0.502197\n0.867737 0.316986 0.502441\n0.915527 0.317719 0.502655\n0.000000 0.317596 0.496002\n0.000000 0.318115 0.496216\n0.002258 0.318634 0.496429\n0.028503 0.319366 0.496643\n0.061249 0.319885 0.496918\n0.089905 0.320587 0.497070\n0.116699 0.321136 0.497314\n0.141602 0.321686 0.497559\n0.164917 0.322418 0.497772\n0.186707 0.322968 0.497986\n0.207550 0.323608 0.498230\n0.227509 0.324249 0.498474\n0.247253 0.324768 0.498688\n0.266907 0.325500 0.498962\n0.286835 0.326080 0.499176\n0.307281 0.326630 0.499390\n0.328979 0.327423 0.499634\n0.351776 0.327972 0.499847\n0.376221 0.328766 0.500092\n0.402710 0.329285 0.500336\n0.431549 0.329834 0.500580\n0.463104 0.330597 0.500824\n0.497650 0.331177 0.501007\n0.535461 0.331757 0.501282\n0.576660 0.332489 0.501495\n0.620422 0.333008 0.501740\n0.666687 0.333801 0.501953\n0.715057 0.334320 0.502197\n0.764862 0.334991 0.502411\n0.816071 0.335663 0.502655\n0.867981 0.336243 0.502899\n0.915527 0.336884 0.503082\n0.000000 0.337738 0.496429\n0.000000 0.338257 0.496643\n0.004425 0.338928 0.496887\n0.030701 0.339447 0.497070\n0.063751 0.340179 0.497314\n0.092102 0.340698 0.497559\n0.118561 0.341217 0.497772\n0.143463 0.341949 0.497986\n0.166473 0.342499 0.498230\n0.188141 0.342987 0.498474\n0.208862 0.343781 0.498688\n0.228760 0.344299 0.498962\n0.248444 0.344971 0.499146\n0.268066 0.345581 0.499359\n0.287933 0.346130 0.499634\n0.308411 0.346893 0.499847\n0.329956 0.347443 0.500061\n0.352875 0.347961 0.500305\n0.377289 0.348755 0.500549\n0.403809 0.349274 0.500793\n0.432678 0.350037 0.501007\n0.464233 0.350586 0.501282\n0.498657 0.351105 0.501495\n0.536530 0.351868 0.501740\n0.577484 0.352417 0.501953\n0.621368 0.352936 0.502167\n0.667572 0.353760 0.502411\n0.715637 0.354279 0.502655\n0.765503 0.355042 0.502869\n0.816345 0.355560 0.503082\n0.868134 0.356079 0.503326\n0.915527 0.356812 0.503601\n0.000000 0.358765 0.496887\n0.000000 0.359283 0.497040\n0.006622 0.360046 0.497314\n0.033081 0.360504 0.497528\n0.066101 0.361023 0.497772\n0.094299 0.361755 0.497986\n0.120605 0.362305 0.498230\n0.145111 0.362946 0.498444\n0.168030 0.363586 0.498657\n0.189545 0.364075 0.498932\n0.210175 0.364807 0.499146\n0.230103 0.365356 0.499359\n0.249603 0.365906 0.499634\n0.269196 0.366669 0.499847\n0.289062 0.367188 0.500061\n0.309479 0.367920 0.500305\n0.331024 0.368500 0.500549\n0.354034 0.369019 0.500793\n0.378418 0.369751 0.501007\n0.404938 0.370331 0.501282\n0.433807 0.370850 0.501465\n0.465302 0.371613 0.501709\n0.499786 0.372192 0.501953\n0.537659 0.372925 0.502167\n0.578552 0.373474 0.502411\n0.622162 0.373962 0.502625\n0.668182 0.374756 0.502869\n0.716339 0.375305 0.503082\n0.765900 0.375824 0.503326\n0.816620 0.376556 0.503571\n0.868286 0.377075 0.503784\n0.915527 0.377716 0.503998\n0.000000 0.380890 0.497314\n0.000000 0.381592 0.497528\n0.008820 0.382141 0.497772\n0.035248 0.382843 0.497986\n0.068481 0.383362 0.498199\n0.096497 0.383850 0.498444\n0.122650 0.384644 0.498657\n0.147003 0.385193 0.498932\n0.169708 0.385773 0.499146\n0.191101 0.386444 0.499359\n0.211609 0.386993 0.499603\n0.231323 0.387573 0.499847\n0.250793 0.388275 0.500031\n0.270386 0.388824 0.500305\n0.290222 0.389557 0.500549\n0.310638 0.390106 0.500763\n0.332153 0.390686 0.500977\n0.355103 0.391418 0.501251\n0.379547 0.391937 0.501465\n0.406036 0.392609 0.501709\n0.434906 0.393250 0.501953\n0.466431 0.393799 0.502167\n0.500854 0.394562 0.502380\n0.538696 0.395111 0.502625\n0.579529 0.395599 0.502869\n0.623108 0.396332 0.503082\n0.669067 0.396851 0.503326\n0.716888 0.397644 0.503571\n0.766327 0.398163 0.503754\n0.817139 0.398682 0.503967\n0.868439 0.399414 0.504211\n0.915527 0.399933 0.504425\n0.000000 0.404755 0.497742\n0.000000 0.405273 0.497986\n0.011169 0.406006 0.498199\n0.037689 0.406555 0.498444\n0.071014 0.407074 0.498657\n0.098724 0.407806 0.498901\n0.124695 0.408356 0.499115\n0.148682 0.409119 0.499329\n0.171234 0.409637 0.499603\n0.192596 0.410156 0.499847\n0.212860 0.410950 0.500031\n0.232727 0.411469 0.500305\n0.252014 0.411987 0.500549\n0.271515 0.412781 0.500763\n0.291351 0.413300 0.500977\n0.311768 0.414032 0.501251\n0.333221 0.414642 0.501465\n0.356018 0.415161 0.501678\n0.380646 0.415924 0.501923\n0.407135 0.416443 0.502136\n0.436005 0.416962 0.502380\n0.467560 0.417725 0.502625\n0.501984 0.418274 0.502869\n0.539734 0.418915 0.503082\n0.580597 0.419556 0.503296\n0.624054 0.420074 0.503540\n0.669739 0.420837 0.503754\n0.717621 0.421356 0.503967\n0.766907 0.421875 0.504211\n0.817352 0.422607 0.504425\n0.868561 0.423126 0.504608\n0.915527 0.423584 0.504852\n0.000000 0.430328 0.498169\n0.000000 0.431061 0.498413\n0.013550 0.431549 0.498657\n0.039978 0.432281 0.498901\n0.073425 0.432831 0.499115\n0.100922 0.433380 0.499329\n0.126526 0.434143 0.499603\n0.150543 0.434662 0.499847\n0.172882 0.435181 0.500031\n0.194000 0.435974 0.500305\n0.214325 0.436523 0.500549\n0.234009 0.437195 0.500763\n0.253265 0.437805 0.500977\n0.272675 0.438354 0.501251\n0.292480 0.439117 0.501434\n0.312836 0.439667 0.501678\n0.334320 0.440186 0.501923\n0.357086 0.440979 0.502136\n0.381744 0.441498 0.502380\n0.408264 0.442230 0.502625\n0.437012 0.442780 0.502869\n0.468475 0.443329 0.503052\n0.502991 0.444061 0.503296\n0.540741 0.444611 0.503540\n0.581329 0.445160 0.503754\n0.624908 0.445862 0.503967\n0.670532 0.446381 0.504211\n0.718140 0.447021 0.504425\n0.767303 0.447662 0.504608\n0.817627 0.448151 0.504852\n0.868683 0.448883 0.505066\n0.915527 0.449371 0.505249\n0.000000 0.458191 0.498657\n0.000000 0.458923 0.498901\n0.015961 0.459503 0.499115\n0.042389 0.459991 0.499298\n0.075836 0.460724 0.499573\n0.103119 0.461273 0.499817\n0.128510 0.461823 0.500000\n0.152191 0.462585 0.500275\n0.174500 0.463104 0.500519\n0.195404 0.463837 0.500732\n0.215668 0.464447 0.500977\n0.235229 0.464966 0.501221\n0.254364 0.465729 0.501434\n0.273804 0.466248 0.501678\n0.293579 0.466797 0.501923\n0.313965 0.467560 0.502136\n0.335419 0.468109 0.502380\n0.358246 0.468811 0.502625\n0.382843 0.469421 0.502838\n0.409332 0.469910 0.503052\n0.438049 0.470703 0.503265\n0.469513 0.471222 0.503540\n0.504059 0.471832 0.503754\n0.541626 0.472504 0.503937\n0.582336 0.473022 0.504211\n0.625641 0.473511 0.504425\n0.671356 0.474243 0.504608\n0.718872 0.474762 0.504852\n0.767883 0.475433 0.505066\n0.817902 0.475983 0.505249\n0.868866 0.476501 0.505493\n0.915527 0.477203 0.505676\n0.000000 0.488495 0.499084\n0.000000 0.489197 0.499298\n0.018280 0.489746 0.499573\n0.044647 0.490295 0.499817\n0.078186 0.491028 0.500000\n0.105286 0.491547 0.500275\n0.130554 0.492371 0.500519\n0.154053 0.492889 0.500732\n0.175995 0.493408 0.500977\n0.197021 0.494141 0.501221\n0.216949 0.494720 0.501434\n0.236450 0.495453 0.501678\n0.255615 0.496002 0.501923\n0.274933 0.496552 0.502136\n0.294708 0.497284 0.502380\n0.315063 0.497864 0.502625\n0.336517 0.498352 0.502838\n0.359314 0.499146 0.503052\n0.383789 0.499634 0.503265\n0.410309 0.500275 0.503510\n0.439117 0.500916 0.503754\n0.470581 0.501434 0.503937\n0.505005 0.501953 0.504181\n0.542664 0.502686 0.504395\n0.583313 0.503204 0.504608\n0.626556 0.503876 0.504852\n0.671967 0.504456 0.505066\n0.719360 0.504913 0.505249\n0.768250 0.505615 0.505493\n0.818207 0.506134 0.505646\n0.869110 0.506592 0.505890\n0.915527 0.507294 0.506104\n0.000000 0.521637 0.499573\n0.000000 0.522369 0.499817\n0.020721 0.522888 0.500000\n0.048248 0.523438 0.500275\n0.080658 0.524231 0.500488\n0.107452 0.524750 0.500732\n0.132538 0.525269 0.500977\n0.155853 0.526031 0.501221\n0.177734 0.526550 0.501434\n0.198425 0.527191 0.501678\n0.218262 0.527802 0.501923\n0.237671 0.528351 0.502106\n0.256836 0.529114 0.502350\n0.276062 0.529633 0.502625\n0.295685 0.530151 0.502838\n0.316162 0.530884 0.503052\n0.337616 0.531403 0.503265\n0.360382 0.531952 0.503510\n0.384857 0.532684 0.503754\n0.411316 0.533173 0.503937\n0.440155 0.533722 0.504181\n0.471649 0.534424 0.504395\n0.506042 0.534973 0.504608\n0.543701 0.535645 0.504852\n0.584290 0.536102 0.505035\n0.627350 0.536591 0.505249\n0.672729 0.537079 0.505493\n0.720062 0.537811 0.505646\n0.768585 0.538300 0.505890\n0.818604 0.538818 0.506073\n0.869293 0.539429 0.506287\n0.915527 0.539886 0.506500\n0.000000 0.557892 0.500000\n0.000000 0.558411 0.500275\n0.023163 0.559113 0.500488\n0.052185 0.559692 0.500732\n0.083130 0.560181 0.500977\n0.109650 0.560791 0.501221\n0.134399 0.561462 0.501434\n0.157562 0.561951 0.501678\n0.179169 0.562683 0.501892\n0.199799 0.563232 0.502106\n0.219666 0.563721 0.502350\n0.238922 0.564453 0.502625\n0.257904 0.564941 0.502808\n0.277222 0.565460 0.503052\n0.296814 0.566193 0.503265\n0.317261 0.566711 0.503510\n0.338684 0.567169 0.503754\n0.361450 0.567902 0.503937\n0.385864 0.568420 0.504181\n0.412354 0.568848 0.504364\n0.441223 0.569580 0.504608\n0.472717 0.570099 0.504822\n0.507080 0.570526 0.505035\n0.544678 0.571228 0.505249\n0.585114 0.571747 0.505463\n0.628113 0.572144 0.505646\n0.673309 0.572784 0.505890\n0.720520 0.573303 0.506073\n0.769226 0.573730 0.506287\n0.818817 0.574310 0.506500\n0.869415 0.574768 0.506653\n0.915527 0.575226 0.506836\n0.000000 0.596924 0.500488\n0.000488 0.597382 0.500732\n0.025635 0.598083 0.500977\n0.056671 0.598541 0.501190\n0.085480 0.599091 0.501404\n0.111816 0.599762 0.501648\n0.136322 0.600250 0.501892\n0.159271 0.600708 0.502106\n0.180878 0.601257 0.502319\n0.201324 0.601898 0.502594\n0.220978 0.602417 0.502808\n0.240112 0.603027 0.503021\n0.259155 0.603546 0.503265\n0.278351 0.604034 0.503510\n0.297852 0.604645 0.503754\n0.318237 0.605164 0.503937\n0.339752 0.605621 0.504150\n0.362549 0.606201 0.504364\n0.386932 0.606781 0.504608\n0.413422 0.607208 0.504822\n0.442291 0.607666 0.505035\n0.473785 0.608307 0.505249\n0.508118 0.608795 0.505463\n0.545593 0.609192 0.505615\n0.585968 0.609741 0.505859\n0.628998 0.610260 0.506042\n0.674072 0.610657 0.506287\n0.720978 0.611053 0.506470\n0.769562 0.611725 0.506653\n0.819092 0.612091 0.506836\n0.869507 0.612457 0.507019\n0.915527 0.612854 0.507233\n0.000000 0.638245 0.500946\n0.002594 0.638916 0.501190\n0.028015 0.639343 0.501404\n0.059937 0.639771 0.501648\n0.087799 0.640442 0.501892\n0.113892 0.640900 0.502106\n0.138275 0.641327 0.502319\n0.160950 0.641815 0.502594\n0.182404 0.642426 0.502808\n0.202759 0.642853 0.503021\n0.222321 0.643280 0.503265\n0.241333 0.643921 0.503510\n0.260315 0.644379 0.503723\n0.279449 0.644745 0.503937\n0.298889 0.645416 0.504150\n0.319214 0.645844 0.504364\n0.340546 0.646210 0.504608\n0.363464 0.646637 0.504822\n0.388000 0.647278 0.505005\n0.414520 0.647644 0.505249\n0.443359 0.648071 0.505463\n0.474823 0.648438 0.505615\n0.509125 0.649048 0.505859\n0.546478 0.649445 0.506042\n0.586884 0.649811 0.506256\n0.629639 0.650238 0.506470\n0.674683 0.650787 0.506653\n0.721649 0.651093 0.506836\n0.769867 0.651459 0.507019\n0.819336 0.651855 0.507233\n0.869659 0.652405 0.507416\n0.915527 0.652710 0.507568\n0.000000 0.681824 0.501404\n0.004852 0.682190 0.501617\n0.030457 0.682800 0.501862\n0.062561 0.683197 0.502106\n0.090118 0.683563 0.502319\n0.116028 0.683929 0.502563\n0.140076 0.684448 0.502777\n0.162598 0.684906 0.503021\n0.183807 0.685272 0.503265\n0.204132 0.685638 0.503510\n0.223572 0.686188 0.503723\n0.242523 0.686615 0.503937\n0.261353 0.687012 0.504150\n0.280426 0.687317 0.504364\n0.299957 0.687927 0.504608\n0.320221 0.688293 0.504791\n0.341614 0.688599 0.505005\n0.364410 0.688995 0.505249\n0.389038 0.689301 0.505432\n0.415527 0.689880 0.505615\n0.444183 0.690216 0.505859\n0.475586 0.690552 0.506042\n0.509979 0.690857 0.506256\n0.547424 0.691406 0.506470\n0.587646 0.691711 0.506622\n0.630463 0.692078 0.506836\n0.675415 0.692352 0.506989\n0.722046 0.692657 0.507202\n0.770386 0.693146 0.507416\n0.819763 0.693451 0.507568\n0.869751 0.693756 0.507721\n0.915527 0.694031 0.507904\n0.000000 0.726807 0.501862\n0.007294 0.727325 0.502106\n0.032837 0.727631 0.502289\n0.065125 0.727905 0.502563\n0.092407 0.728271 0.502777\n0.118103 0.728760 0.502991\n0.141907 0.729126 0.503265\n0.164276 0.729431 0.503479\n0.185425 0.729706 0.503693\n0.205414 0.730042 0.503937\n0.224823 0.730316 0.504120\n0.243652 0.730865 0.504364\n0.262482 0.731171 0.504608\n0.281555 0.731445 0.504791\n0.301056 0.731750 0.505005\n0.321259 0.732147 0.505219\n0.342682 0.732513 0.505432\n0.365387 0.732819 0.505615\n0.390045 0.733124 0.505829\n0.416565 0.733368 0.506042\n0.445129 0.733673 0.506256\n0.476532 0.734131 0.506470\n0.510864 0.734406 0.506622\n0.548309 0.734680 0.506836\n0.588409 0.734894 0.506989\n0.631226 0.735138 0.507202\n0.675995 0.735474 0.507385\n0.722687 0.735870 0.507568\n0.770752 0.736115 0.507721\n0.819977 0.736298 0.507904\n0.869812 0.736542 0.508057\n0.915527 0.736755 0.508240\n0.000000 0.773071 0.502289\n0.009583 0.773468 0.502563\n0.035217 0.773773 0.502777\n0.067474 0.774017 0.502991\n0.094543 0.774231 0.503235\n0.120117 0.774506 0.503479\n0.143829 0.774750 0.503693\n0.165863 0.775177 0.503906\n0.186859 0.775421 0.504120\n0.206757 0.775604 0.504364\n0.226044 0.775879 0.504578\n0.244843 0.776123 0.504761\n0.263611 0.776337 0.505005\n0.282562 0.776764 0.505219\n0.302063 0.776978 0.505402\n0.322296 0.777191 0.505615\n0.343689 0.777466 0.505829\n0.366425 0.777649 0.506042\n0.390808 0.777802 0.506256\n0.417328 0.778076 0.506470\n0.446106 0.778229 0.506622\n0.477509 0.778625 0.506805\n0.511780 0.778839 0.506989\n0.549042 0.779114 0.507202\n0.589264 0.779266 0.507385\n0.631836 0.779449 0.507568\n0.676605 0.779633 0.507721\n0.723083 0.779816 0.507904\n0.770996 0.779968 0.508057\n0.820160 0.780334 0.508240\n0.869904 0.780518 0.508362\n0.915527 0.780670 0.508545\n0.000000 0.820312 0.502777\n0.011963 0.820465 0.502991\n0.037689 0.820648 0.503235\n0.069946 0.820770 0.503448\n0.096924 0.820923 0.503693\n0.122009 0.821106 0.503906\n0.145477 0.821381 0.504120\n0.167511 0.821625 0.504333\n0.188263 0.821808 0.504578\n0.208038 0.821960 0.504761\n0.227234 0.822113 0.505005\n0.246002 0.822296 0.505219\n0.264679 0.822449 0.505402\n0.283539 0.822540 0.505585\n0.303101 0.822693 0.505829\n0.323303 0.822815 0.506042\n0.344696 0.823151 0.506256\n0.367432 0.823364 0.506470\n0.391815 0.823456 0.506592\n0.418274 0.823608 0.506805\n0.447083 0.823792 0.506989\n0.478455 0.823883 0.507202\n0.512634 0.824036 0.507355\n0.549927 0.824158 0.507568\n0.589874 0.824249 0.507721\n0.632599 0.824402 0.507904\n0.677063 0.824463 0.508057\n0.723572 0.824768 0.508240\n0.771484 0.825012 0.508362\n0.820404 0.825104 0.508545\n0.870117 0.825165 0.508698\n0.915527 0.825256 0.508850\n0.000000 0.867737 0.503235\n0.014343 0.867798 0.503448\n0.039917 0.867981 0.503662\n0.072388 0.868164 0.503906\n0.099030 0.868286 0.504120\n0.123962 0.868378 0.504333\n0.147308 0.868469 0.504578\n0.169037 0.868530 0.504761\n0.189636 0.868622 0.505005\n0.209290 0.868713 0.505188\n0.228424 0.868744 0.505402\n0.247101 0.868835 0.505585\n0.265747 0.868958 0.505798\n0.284607 0.868988 0.506042\n0.304016 0.869110 0.506226\n0.324280 0.869110 0.506439\n0.345581 0.869202 0.506592\n0.368317 0.869263 0.506805\n0.392761 0.869354 0.506989\n0.419250 0.869385 0.507172\n0.448029 0.869446 0.507355\n0.479156 0.869568 0.507538\n0.513428 0.869720 0.507721\n0.550629 0.869781 0.507904\n0.590698 0.869934 0.508057\n0.633118 0.869995 0.508240\n0.677704 0.870087 0.508362\n0.724060 0.870087 0.508545\n0.771851 0.870178 0.508667\n0.820526 0.870239 0.508850\n0.870331 0.870270 0.508972\n0.915527 0.870331 0.509125\n0.000000 0.915527 0.503662\n0.016693 0.915527 0.503906\n0.042236 0.915527 0.504089\n0.074738 0.915527 0.504333\n0.101074 0.915527 0.504547\n0.125946 0.915527 0.504761\n0.148926 0.915527 0.504974\n0.170654 0.915527 0.505188\n0.191040 0.915527 0.505402\n0.210632 0.915527 0.505585\n0.229584 0.915527 0.505798\n0.248199 0.915527 0.506012\n0.266754 0.915527 0.506226\n0.285614 0.915527 0.506439\n0.304840 0.915527 0.506592\n0.325012 0.915527 0.506775\n0.346405 0.915527 0.506989\n0.369141 0.915527 0.507172\n0.393738 0.915527 0.507355\n0.420135 0.915527 0.507538\n0.448700 0.915527 0.507721\n0.480103 0.915527 0.507904\n0.514282 0.915527 0.508057\n0.551392 0.915527 0.508240\n0.591400 0.915527 0.508362\n0.633759 0.915527 0.508545\n0.678131 0.915527 0.508667\n0.724335 0.915527 0.508820\n0.772095 0.915527 0.508942\n0.820892 0.915527 0.509125\n0.870453 0.915527 0.509247\n0.915527 0.915527 0.509369\n0.000000 0.000000 0.510223\n0.000000 0.000000 0.510345\n0.000000 0.000000 0.510498\n0.002930 0.000000 0.510590\n0.029663 0.000000 0.510773\n0.063110 0.000000 0.510895\n0.092194 0.000000 0.511047\n0.119415 0.000000 0.511200\n0.144714 0.000000 0.511322\n0.168396 0.000000 0.511505\n0.190521 0.000000 0.511658\n0.211853 0.000000 0.511871\n0.232239 0.000000 0.511993\n0.252625 0.000000 0.512207\n0.272858 0.000000 0.512360\n0.293701 0.000000 0.512543\n0.315247 0.000000 0.512756\n0.337952 0.000000 0.512878\n0.362457 0.000000 0.513092\n0.388824 0.000000 0.513306\n0.417358 0.000000 0.513489\n0.448792 0.000000 0.513702\n0.483521 0.000000 0.513855\n0.521606 0.000000 0.514099\n0.563385 0.000000 0.514282\n0.608215 0.000000 0.514526\n0.656036 0.000000 0.514740\n0.705933 0.000000 0.514923\n0.757965 0.000000 0.515137\n0.811249 0.000000 0.515381\n0.865570 0.000000 0.515564\n0.915527 0.000000 0.515778\n0.000000 0.000000 0.510498\n0.000000 0.000000 0.510590\n0.000000 0.000000 0.510773\n0.004303 0.000000 0.510895\n0.031158 0.000000 0.511047\n0.064850 0.000000 0.511169\n0.093811 0.000000 0.511322\n0.120697 0.000000 0.511505\n0.145966 0.000000 0.511658\n0.169373 0.000000 0.511871\n0.191620 0.000000 0.511993\n0.212646 0.000519 0.512207\n0.233215 0.001556 0.512360\n0.253571 0.002686 0.512543\n0.273773 0.003693 0.512756\n0.294617 0.004944 0.512878\n0.316162 0.006195 0.513092\n0.338867 0.007446 0.513306\n0.363190 0.008698 0.513489\n0.389618 0.009979 0.513702\n0.418304 0.011292 0.513855\n0.449768 0.012604 0.514069\n0.484375 0.013947 0.514282\n0.522461 0.015289 0.514496\n0.564209 0.016693 0.514740\n0.609131 0.018188 0.514893\n0.656677 0.019653 0.515137\n0.706635 0.021057 0.515350\n0.758362 0.022461 0.515564\n0.811493 0.023987 0.515778\n0.865692 0.025421 0.515991\n0.915527 0.027039 0.516235\n0.000000 0.017212 0.510773\n0.000000 0.018127 0.510895\n0.000000 0.019012 0.511047\n0.005737 0.020020 0.511169\n0.032562 0.021057 0.511322\n0.066315 0.022156 0.511505\n0.095215 0.023254 0.511658\n0.122040 0.024353 0.511871\n0.147217 0.025360 0.511993\n0.170593 0.026520 0.512177\n0.192657 0.027679 0.512360\n0.213684 0.028870 0.512543\n0.234253 0.030121 0.512756\n0.254303 0.031311 0.512878\n0.274750 0.032562 0.513092\n0.295349 0.033844 0.513275\n0.317108 0.035156 0.513489\n0.339844 0.036438 0.513672\n0.364136 0.037811 0.513855\n0.390503 0.039124 0.514069\n0.419281 0.040436 0.514282\n0.450806 0.041809 0.514496\n0.485321 0.043182 0.514740\n0.523346 0.044525 0.514893\n0.565033 0.046082 0.515137\n0.609772 0.048676 0.515350\n0.657410 0.051270 0.515533\n0.707153 0.054108 0.515778\n0.758881 0.056702 0.515991\n0.811829 0.059082 0.516205\n0.865845 0.060669 0.516479\n0.915527 0.062195 0.516663\n0.000000 0.047180 0.511017\n0.000000 0.048615 0.511169\n0.000000 0.050415 0.511322\n0.007294 0.052277 0.511505\n0.034271 0.054291 0.511658\n0.068085 0.056244 0.511841\n0.096832 0.058105 0.511993\n0.123627 0.059570 0.512177\n0.148499 0.060822 0.512360\n0.171875 0.062073 0.512512\n0.193787 0.063477 0.512726\n0.214752 0.064758 0.512878\n0.235260 0.066040 0.513092\n0.255310 0.067352 0.513275\n0.275635 0.068634 0.513489\n0.296326 0.070068 0.513672\n0.317841 0.071472 0.513855\n0.340546 0.072876 0.514038\n0.365082 0.074341 0.514252\n0.391510 0.075806 0.514496\n0.420258 0.077240 0.514740\n0.451813 0.078705 0.514893\n0.486298 0.080170 0.515137\n0.524384 0.081665 0.515350\n0.566010 0.083130 0.515533\n0.610748 0.084656 0.515778\n0.658112 0.086182 0.515961\n0.707886 0.087646 0.516205\n0.759399 0.089172 0.516479\n0.812286 0.090729 0.516663\n0.865997 0.092255 0.516876\n0.915527 0.093750 0.517120\n0.000000 0.083618 0.511322\n0.000000 0.084778 0.511505\n0.000000 0.085907 0.511658\n0.008759 0.086914 0.511841\n0.035980 0.087982 0.511993\n0.069794 0.089203 0.512177\n0.098480 0.090424 0.512329\n0.125061 0.091553 0.512512\n0.149841 0.092712 0.512726\n0.173126 0.093933 0.512878\n0.194977 0.095184 0.513062\n0.215851 0.096497 0.513275\n0.236298 0.097809 0.513489\n0.256348 0.098877 0.513672\n0.276489 0.100220 0.513855\n0.297272 0.101562 0.514038\n0.318848 0.102905 0.514252\n0.341553 0.104248 0.514465\n0.366119 0.105621 0.514709\n0.392517 0.106995 0.514893\n0.421112 0.108368 0.515137\n0.452667 0.109558 0.515320\n0.487335 0.110931 0.515533\n0.525421 0.112335 0.515747\n0.567047 0.113739 0.515961\n0.611664 0.115143 0.516205\n0.659027 0.116547 0.516449\n0.708588 0.117981 0.516632\n0.759796 0.119385 0.516846\n0.812531 0.120789 0.517120\n0.866119 0.122223 0.517334\n0.915527 0.123505 0.517548\n0.000000 0.114532 0.511658\n0.000000 0.115417 0.511841\n0.000000 0.116547 0.511993\n0.010498 0.117645 0.512177\n0.037720 0.118561 0.512329\n0.071686 0.119720 0.512512\n0.100220 0.120819 0.512726\n0.126587 0.121857 0.512878\n0.151184 0.122955 0.513062\n0.174347 0.124146 0.513245\n0.196136 0.125397 0.513489\n0.216949 0.126404 0.513641\n0.237335 0.127625 0.513855\n0.257355 0.128845 0.514038\n0.277466 0.130096 0.514252\n0.298279 0.131134 0.514465\n0.319824 0.132416 0.514709\n0.342590 0.133636 0.514862\n0.367126 0.134918 0.515137\n0.393494 0.136200 0.515320\n0.422150 0.137299 0.515533\n0.453644 0.138550 0.515747\n0.488373 0.139801 0.515961\n0.526428 0.141083 0.516174\n0.567993 0.142395 0.516449\n0.612579 0.143616 0.516632\n0.659790 0.144775 0.516846\n0.709198 0.146057 0.517120\n0.760437 0.147339 0.517334\n0.812897 0.148682 0.517548\n0.866425 0.149902 0.517792\n0.915527 0.151031 0.518036\n0.000000 0.143219 0.511993\n0.000000 0.144257 0.512177\n0.000000 0.145264 0.512329\n0.012390 0.146088 0.512512\n0.039551 0.147156 0.512726\n0.073608 0.148010 0.512878\n0.101868 0.149078 0.513062\n0.128235 0.150208 0.513245\n0.152740 0.151062 0.513458\n0.175629 0.152191 0.513641\n0.197327 0.153320 0.513855\n0.218109 0.154205 0.514038\n0.238434 0.155365 0.514221\n0.258453 0.156494 0.514465\n0.278534 0.157532 0.514709\n0.299072 0.158539 0.514862\n0.320801 0.159729 0.515106\n0.343597 0.160858 0.515320\n0.367950 0.161835 0.515533\n0.394379 0.162994 0.515747\n0.423157 0.164185 0.515930\n0.454712 0.165161 0.516174\n0.489410 0.166321 0.516449\n0.527405 0.167511 0.516632\n0.568787 0.168579 0.516846\n0.613342 0.169647 0.517090\n0.660461 0.170837 0.517303\n0.709808 0.172028 0.517517\n0.760834 0.173035 0.517792\n0.813385 0.174164 0.518005\n0.866669 0.175354 0.518219\n0.915527 0.176453 0.518463\n0.000000 0.169739 0.512329\n0.000000 0.170685 0.512512\n0.000000 0.171448 0.512695\n0.014313 0.172424 0.512848\n0.041382 0.173401 0.513062\n0.075653 0.174164 0.513245\n0.103729 0.175201 0.513458\n0.129761 0.176025 0.513641\n0.154144 0.177032 0.513824\n0.176941 0.178040 0.514038\n0.198547 0.178864 0.514221\n0.219208 0.179932 0.514465\n0.239349 0.180756 0.514679\n0.259491 0.181793 0.514862\n0.279602 0.182831 0.515106\n0.300110 0.183716 0.515289\n0.321686 0.184753 0.515533\n0.344635 0.185638 0.515717\n0.368988 0.186676 0.515930\n0.395416 0.187744 0.516174\n0.424225 0.188660 0.516418\n0.455780 0.189728 0.516602\n0.490356 0.190765 0.516846\n0.528351 0.191681 0.517090\n0.569794 0.192780 0.517303\n0.614288 0.193878 0.517517\n0.661377 0.194733 0.517792\n0.710480 0.195801 0.518005\n0.761353 0.196686 0.518219\n0.813629 0.197754 0.518463\n0.866791 0.198853 0.518707\n0.915527 0.199707 0.518921\n0.000000 0.194275 0.512695\n0.000000 0.195038 0.512848\n0.000000 0.195892 0.513062\n0.016174 0.196594 0.513214\n0.043304 0.197540 0.513458\n0.077637 0.198273 0.513641\n0.105438 0.199158 0.513824\n0.131500 0.200043 0.514038\n0.155609 0.200867 0.514221\n0.178314 0.201721 0.514465\n0.199799 0.202576 0.514679\n0.220428 0.203522 0.514862\n0.240509 0.204254 0.515076\n0.260498 0.205261 0.515289\n0.280548 0.206085 0.515503\n0.301178 0.207031 0.515717\n0.322662 0.207825 0.515930\n0.345642 0.208801 0.516174\n0.370056 0.209808 0.516418\n0.396484 0.210541 0.516602\n0.425354 0.211548 0.516846\n0.456879 0.212372 0.517090\n0.491364 0.213379 0.517303\n0.529358 0.214172 0.517517\n0.570862 0.215179 0.517792\n0.615234 0.216156 0.518005\n0.662018 0.216949 0.518219\n0.711243 0.217926 0.518463\n0.761932 0.218750 0.518707\n0.813934 0.219757 0.518921\n0.866913 0.220551 0.519135\n0.915527 0.221466 0.519379\n0.000000 0.216949 0.513062\n0.000000 0.217804 0.513214\n0.000000 0.218445 0.513428\n0.018097 0.219299 0.513641\n0.045227 0.219971 0.513824\n0.079681 0.220825 0.514008\n0.107361 0.221466 0.514221\n0.133087 0.222443 0.514465\n0.157257 0.223083 0.514679\n0.179810 0.223846 0.514862\n0.201050 0.224670 0.515076\n0.221588 0.225525 0.515289\n0.241638 0.226257 0.515503\n0.261444 0.227173 0.515686\n0.281616 0.227875 0.515930\n0.302216 0.228821 0.516174\n0.323700 0.229492 0.516388\n0.346649 0.230438 0.516602\n0.371124 0.231171 0.516846\n0.397552 0.232086 0.517059\n0.426422 0.232788 0.517273\n0.457947 0.233765 0.517517\n0.492462 0.234467 0.517761\n0.530457 0.235413 0.517975\n0.571838 0.236115 0.518188\n0.616058 0.237061 0.518433\n0.662933 0.237793 0.518707\n0.711792 0.238708 0.518921\n0.762329 0.239441 0.519135\n0.814209 0.240356 0.519379\n0.867096 0.241089 0.519623\n0.915527 0.241974 0.519836\n0.000000 0.238464 0.513428\n0.000000 0.239044 0.513641\n0.000000 0.239899 0.513794\n0.020264 0.240479 0.514008\n0.048523 0.241089 0.514191\n0.081757 0.241913 0.514435\n0.109314 0.242523 0.514648\n0.134918 0.243378 0.514862\n0.158722 0.243988 0.515076\n0.181183 0.244843 0.515289\n0.202362 0.245514 0.515503\n0.222809 0.246246 0.515686\n0.242706 0.247009 0.515930\n0.262512 0.247742 0.516144\n0.282684 0.248505 0.516388\n0.303314 0.249237 0.516602\n0.324799 0.250000 0.516846\n0.347656 0.250824 0.517059\n0.372223 0.251556 0.517273\n0.398682 0.252197 0.517517\n0.427521 0.253143 0.517761\n0.459076 0.253784 0.517975\n0.493530 0.254669 0.518188\n0.531494 0.255310 0.518433\n0.572876 0.256226 0.518677\n0.617004 0.256866 0.518890\n0.663757 0.257751 0.519135\n0.712524 0.258423 0.519379\n0.762970 0.259277 0.519623\n0.814758 0.259949 0.519836\n0.867188 0.260834 0.520081\n0.915527 0.261475 0.520294\n0.000000 0.258728 0.513794\n0.000000 0.259491 0.514008\n0.000000 0.260040 0.514191\n0.022308 0.260834 0.514435\n0.052094 0.261414 0.514648\n0.083740 0.261993 0.514832\n0.111298 0.262787 0.515076\n0.136505 0.263367 0.515289\n0.160278 0.264160 0.515503\n0.182556 0.264771 0.515686\n0.203827 0.265503 0.515900\n0.224060 0.266174 0.516144\n0.243896 0.266846 0.516388\n0.263672 0.267578 0.516602\n0.283630 0.268219 0.516846\n0.304382 0.269073 0.517059\n0.325867 0.269714 0.517273\n0.348694 0.270508 0.517517\n0.373291 0.271118 0.517761\n0.399750 0.271942 0.517975\n0.428589 0.272583 0.518188\n0.459961 0.273193 0.518433\n0.494629 0.274048 0.518677\n0.532593 0.274689 0.518890\n0.573730 0.275482 0.519135\n0.617920 0.276123 0.519379\n0.664459 0.277008 0.519592\n0.713135 0.277618 0.519806\n0.763428 0.278381 0.520050\n0.815063 0.279022 0.520294\n0.867340 0.279663 0.520508\n0.915527 0.280518 0.520782\n0.000000 0.278656 0.514191\n0.000000 0.279175 0.514435\n0.000000 0.279694 0.514648\n0.024414 0.280487 0.514832\n0.055847 0.281006 0.515045\n0.085968 0.281769 0.515259\n0.113068 0.282349 0.515503\n0.138367 0.282959 0.515686\n0.161926 0.283691 0.515900\n0.183929 0.284241 0.516144\n0.205109 0.284943 0.516388\n0.225220 0.285614 0.516571\n0.245148 0.286194 0.516815\n0.264771 0.286987 0.517029\n0.284790 0.287567 0.517273\n0.305481 0.288361 0.517517\n0.326965 0.288940 0.517731\n0.349792 0.289764 0.517944\n0.374359 0.290344 0.518188\n0.400848 0.290924 0.518402\n0.429504 0.291718 0.518677\n0.460999 0.292328 0.518860\n0.495697 0.293152 0.519135\n0.533691 0.293732 0.519379\n0.574738 0.294373 0.519592\n0.618896 0.295105 0.519806\n0.665314 0.295715 0.520050\n0.713898 0.296509 0.520294\n0.764038 0.297089 0.520508\n0.815308 0.297821 0.520782\n0.867493 0.298492 0.520966\n0.915527 0.299072 0.521210\n0.000000 0.298187 0.514618\n0.000000 0.298676 0.514832\n0.000671 0.299316 0.515045\n0.026703 0.299957 0.515259\n0.059479 0.300507 0.515503\n0.088013 0.301208 0.515686\n0.115082 0.301758 0.515900\n0.140015 0.302277 0.516113\n0.163422 0.303040 0.516388\n0.185577 0.303619 0.516571\n0.206421 0.304321 0.516815\n0.226562 0.304932 0.517029\n0.246216 0.305481 0.517273\n0.265930 0.306274 0.517517\n0.285858 0.306824 0.517731\n0.306458 0.307434 0.517944\n0.328033 0.308136 0.518188\n0.350861 0.308746 0.518402\n0.375275 0.309479 0.518646\n0.401733 0.310089 0.518860\n0.430603 0.310822 0.519135\n0.462128 0.311401 0.519348\n0.496857 0.312012 0.519562\n0.534607 0.312775 0.519806\n0.575806 0.313354 0.520050\n0.619629 0.314026 0.520294\n0.666138 0.314728 0.520508\n0.714386 0.315277 0.520782\n0.764496 0.316071 0.520966\n0.815735 0.316650 0.521210\n0.867737 0.317383 0.521454\n0.915527 0.317932 0.521667\n0.000000 0.317780 0.515045\n0.000000 0.318329 0.515259\n0.002716 0.318909 0.515472\n0.028870 0.319550 0.515686\n0.061768 0.320068 0.515900\n0.090393 0.320770 0.516113\n0.117096 0.321350 0.516388\n0.141846 0.321869 0.516571\n0.165161 0.322632 0.516815\n0.186981 0.323151 0.517029\n0.207733 0.323914 0.517242\n0.227722 0.324432 0.517487\n0.247467 0.324982 0.517700\n0.267059 0.325745 0.517944\n0.286987 0.326294 0.518158\n0.307648 0.326996 0.518402\n0.329163 0.327637 0.518646\n0.351959 0.328186 0.518860\n0.376343 0.328949 0.519135\n0.402863 0.329498 0.519348\n0.431732 0.330048 0.519562\n0.463226 0.330811 0.519806\n0.497955 0.331360 0.520020\n0.535675 0.332153 0.520264\n0.576843 0.332672 0.520477\n0.620575 0.333221 0.520752\n0.666809 0.333984 0.520966\n0.715210 0.334534 0.521179\n0.764923 0.335297 0.521454\n0.816101 0.335876 0.521667\n0.867981 0.336426 0.521881\n0.915527 0.337189 0.522125\n0.000000 0.337891 0.515472\n0.000000 0.338593 0.515686\n0.004761 0.339111 0.515869\n0.031219 0.339630 0.516113\n0.064117 0.340363 0.516357\n0.092529 0.340881 0.516541\n0.119019 0.341400 0.516785\n0.143738 0.342163 0.517029\n0.166687 0.342682 0.517242\n0.188354 0.343353 0.517487\n0.209015 0.343933 0.517700\n0.229126 0.344513 0.517944\n0.248718 0.345215 0.518158\n0.268188 0.345795 0.518402\n0.288147 0.346344 0.518616\n0.308685 0.347076 0.518860\n0.330231 0.347626 0.519135\n0.353088 0.348297 0.519348\n0.377502 0.348938 0.519562\n0.403992 0.349457 0.519806\n0.432831 0.350220 0.520020\n0.464355 0.350769 0.520264\n0.498871 0.351471 0.520477\n0.536682 0.352081 0.520752\n0.577667 0.352600 0.520966\n0.621552 0.353363 0.521179\n0.667664 0.353943 0.521454\n0.715729 0.354431 0.521667\n0.765564 0.355225 0.521851\n0.816406 0.355743 0.522125\n0.868164 0.356476 0.522339\n0.915527 0.357056 0.522552\n0.000000 0.358978 0.515869\n0.000000 0.359467 0.516113\n0.006989 0.360199 0.516357\n0.033417 0.360718 0.516541\n0.066467 0.361420 0.516785\n0.094666 0.361938 0.517029\n0.121063 0.362457 0.517242\n0.145355 0.363251 0.517487\n0.168427 0.363739 0.517700\n0.190033 0.364319 0.517944\n0.210388 0.365021 0.518158\n0.230438 0.365570 0.518402\n0.249786 0.366211 0.518616\n0.269379 0.366821 0.518860\n0.289246 0.367401 0.519104\n0.309845 0.368134 0.519348\n0.331360 0.368683 0.519531\n0.354187 0.369232 0.519806\n0.378571 0.369965 0.520020\n0.405060 0.370544 0.520264\n0.433990 0.371246 0.520477\n0.465485 0.371857 0.520752\n0.499939 0.372345 0.520966\n0.537811 0.373138 0.521179\n0.578674 0.373627 0.521423\n0.622345 0.374298 0.521667\n0.668427 0.374939 0.521851\n0.716461 0.375458 0.522125\n0.765930 0.376129 0.522339\n0.816650 0.376740 0.522552\n0.868286 0.377258 0.522766\n0.915527 0.378021 0.523010\n0.000000 0.381256 0.516357\n0.000000 0.381805 0.516541\n0.009277 0.382294 0.516785\n0.035828 0.383057 0.516998\n0.069031 0.383545 0.517212\n0.097015 0.384155 0.517456\n0.122955 0.384857 0.517700\n0.147278 0.385376 0.517914\n0.169952 0.386139 0.518158\n0.191437 0.386627 0.518402\n0.211914 0.387177 0.518616\n0.231689 0.387909 0.518860\n0.251068 0.388489 0.519104\n0.270508 0.388977 0.519318\n0.290375 0.389801 0.519531\n0.310760 0.390289 0.519806\n0.332428 0.391083 0.520020\n0.355286 0.391602 0.520233\n0.379700 0.392120 0.520477\n0.406189 0.392914 0.520721\n0.435089 0.393463 0.520935\n0.466553 0.394012 0.521149\n0.501038 0.394775 0.521423\n0.538879 0.395294 0.521667\n0.579681 0.395996 0.521851\n0.623230 0.396545 0.522095\n0.669189 0.397095 0.522339\n0.716980 0.397797 0.522522\n0.766479 0.398346 0.522766\n0.817169 0.398834 0.522980\n0.868439 0.399628 0.523193\n0.915527 0.400116 0.523438\n0.000000 0.404968 0.516785\n0.000000 0.405457 0.516998\n0.011658 0.406219 0.517212\n0.038055 0.406708 0.517456\n0.071442 0.407410 0.517700\n0.099182 0.408020 0.517914\n0.125000 0.408539 0.518158\n0.149048 0.409302 0.518372\n0.171600 0.409821 0.518616\n0.192841 0.410370 0.518829\n0.213196 0.411102 0.519073\n0.232941 0.411652 0.519318\n0.252319 0.412323 0.519531\n0.271698 0.412964 0.519806\n0.291534 0.413483 0.520020\n0.311890 0.414276 0.520233\n0.333405 0.414795 0.520477\n0.356262 0.415314 0.520721\n0.380829 0.416077 0.520935\n0.407318 0.416626 0.521149\n0.436188 0.417328 0.521423\n0.467712 0.417938 0.521637\n0.502136 0.418488 0.521820\n0.539948 0.419250 0.522095\n0.580658 0.419739 0.522339\n0.624146 0.420349 0.522522\n0.669952 0.421021 0.522766\n0.717712 0.421539 0.522980\n0.766968 0.422058 0.523163\n0.817413 0.422791 0.523438\n0.868561 0.423279 0.523621\n0.915527 0.423981 0.523834\n0.000000 0.430695 0.517212\n0.000000 0.431244 0.517456\n0.013885 0.431763 0.517700\n0.040466 0.432495 0.517914\n0.073792 0.433044 0.518158\n0.101288 0.433563 0.518372\n0.127014 0.434357 0.518616\n0.150818 0.434845 0.518829\n0.173248 0.435577 0.519073\n0.194244 0.436188 0.519287\n0.214539 0.436707 0.519531\n0.234192 0.437469 0.519775\n0.253571 0.438019 0.519989\n0.272827 0.438538 0.520233\n0.292633 0.439331 0.520477\n0.313019 0.439850 0.520691\n0.334503 0.440582 0.520935\n0.357330 0.441162 0.521149\n0.381866 0.441681 0.521393\n0.408417 0.442444 0.521637\n0.437286 0.442993 0.521820\n0.468811 0.443542 0.522095\n0.503265 0.444275 0.522308\n0.540985 0.444794 0.522522\n0.581635 0.445404 0.522736\n0.625092 0.446045 0.522980\n0.670624 0.446625 0.523163\n0.718231 0.447327 0.523438\n0.767334 0.447845 0.523590\n0.817657 0.448364 0.523804\n0.868744 0.449036 0.524048\n0.915527 0.449585 0.524261\n0.000000 0.458374 0.517670\n0.000000 0.459106 0.517883\n0.016327 0.459656 0.518127\n0.042755 0.460266 0.518341\n0.076324 0.460968 0.518585\n0.103668 0.461487 0.518829\n0.129059 0.462250 0.519073\n0.152679 0.462799 0.519287\n0.174744 0.463318 0.519531\n0.195892 0.464111 0.519775\n0.215851 0.464600 0.519989\n0.235443 0.465240 0.520203\n0.254700 0.465881 0.520477\n0.274017 0.466461 0.520691\n0.293762 0.467133 0.520905\n0.314087 0.467773 0.521149\n0.335571 0.468292 0.521393\n0.358459 0.469086 0.521637\n0.383026 0.469574 0.521820\n0.409515 0.470154 0.522064\n0.438416 0.470886 0.522308\n0.469788 0.471405 0.522491\n0.504303 0.472168 0.522736\n0.541840 0.472656 0.522949\n0.582489 0.473206 0.523163\n0.625793 0.473907 0.523438\n0.671448 0.474457 0.523590\n0.718933 0.474915 0.523804\n0.767975 0.475708 0.524048\n0.817963 0.476135 0.524261\n0.868927 0.476654 0.524445\n0.915527 0.477386 0.524658\n0.000000 0.488892 0.518127\n0.000000 0.489380 0.518341\n0.018768 0.489960 0.518585\n0.045197 0.490692 0.518829\n0.078735 0.491241 0.519043\n0.105774 0.491730 0.519257\n0.130859 0.492554 0.519531\n0.154297 0.493042 0.519745\n0.176422 0.493774 0.519989\n0.197266 0.494354 0.520203\n0.217163 0.494904 0.520477\n0.236664 0.495667 0.520691\n0.255951 0.496185 0.520905\n0.275116 0.496735 0.521149\n0.294891 0.497467 0.521393\n0.315247 0.498016 0.521606\n0.336670 0.498596 0.521790\n0.359467 0.499298 0.522064\n0.384094 0.499817 0.522308\n0.410583 0.500610 0.522491\n0.439423 0.501129 0.522736\n0.470856 0.501617 0.522949\n0.505310 0.502380 0.523163\n0.542847 0.502869 0.523407\n0.583435 0.503357 0.523590\n0.626709 0.504089 0.523804\n0.672119 0.504608 0.524048\n0.719452 0.505066 0.524231\n0.768341 0.505798 0.524445\n0.818268 0.506256 0.524658\n0.869110 0.506805 0.524841\n0.915527 0.507477 0.525085\n0.000000 0.521820 0.518585\n0.000000 0.522552 0.518829\n0.021271 0.523102 0.519043\n0.048889 0.523743 0.519257\n0.081146 0.524384 0.519501\n0.108002 0.524902 0.519745\n0.132874 0.525513 0.519958\n0.156158 0.526184 0.520203\n0.177979 0.526764 0.520447\n0.198608 0.527496 0.520660\n0.218567 0.528046 0.520874\n0.237885 0.528534 0.521149\n0.257141 0.529297 0.521362\n0.276276 0.529816 0.521606\n0.295990 0.530518 0.521790\n0.316345 0.531097 0.522034\n0.337769 0.531616 0.522278\n0.360565 0.532257 0.522491\n0.385193 0.532867 0.522705\n0.411652 0.533386 0.522949\n0.440338 0.534119 0.523163\n0.471832 0.534607 0.523407\n0.506287 0.535095 0.523590\n0.543854 0.535828 0.523804\n0.584442 0.536316 0.524048\n0.627594 0.536804 0.524231\n0.672852 0.537415 0.524445\n0.720154 0.537994 0.524628\n0.768768 0.538422 0.524841\n0.818665 0.539093 0.525085\n0.869324 0.539642 0.525208\n0.915527 0.540039 0.525421\n0.000000 0.558105 0.519043\n0.000000 0.558563 0.519257\n0.023590 0.559326 0.519501\n0.053131 0.559845 0.519745\n0.083466 0.560364 0.519958\n0.110138 0.561127 0.520203\n0.134796 0.561615 0.520447\n0.157776 0.562164 0.520660\n0.179657 0.562866 0.520874\n0.200104 0.563385 0.521149\n0.220001 0.563995 0.521362\n0.239105 0.564606 0.521606\n0.258209 0.565125 0.521790\n0.277405 0.565674 0.522034\n0.297089 0.566376 0.522278\n0.317383 0.566864 0.522491\n0.338837 0.567413 0.522705\n0.361633 0.568085 0.522919\n0.386169 0.568573 0.523163\n0.412628 0.569153 0.523407\n0.441376 0.569763 0.523590\n0.472839 0.570221 0.523804\n0.507233 0.570892 0.524048\n0.544861 0.571411 0.524231\n0.585388 0.571869 0.524445\n0.628235 0.572327 0.524628\n0.673462 0.572998 0.524841\n0.720581 0.573425 0.525085\n0.769318 0.573883 0.525208\n0.818878 0.574524 0.525421\n0.869415 0.574951 0.525635\n0.915527 0.575378 0.525818\n0.000000 0.597107 0.519501\n0.000793 0.597565 0.519714\n0.026062 0.598236 0.519958\n0.057373 0.598755 0.520203\n0.085907 0.599243 0.520447\n0.112152 0.599915 0.520660\n0.136627 0.600433 0.520874\n0.159607 0.600861 0.521118\n0.181122 0.601624 0.521332\n0.201599 0.602112 0.521576\n0.221252 0.602539 0.521790\n0.240326 0.603271 0.522034\n0.259491 0.603699 0.522247\n0.278534 0.604187 0.522491\n0.298187 0.604889 0.522705\n0.318481 0.605347 0.522919\n0.339905 0.605804 0.523132\n0.362701 0.606476 0.523376\n0.387085 0.606903 0.523590\n0.413605 0.607391 0.523804\n0.442444 0.607819 0.524017\n0.473907 0.608521 0.524200\n0.508240 0.608917 0.524445\n0.545868 0.609344 0.524628\n0.586060 0.609955 0.524841\n0.629120 0.610413 0.525085\n0.674194 0.610809 0.525208\n0.721161 0.611328 0.525421\n0.769592 0.611847 0.525635\n0.819153 0.612274 0.525787\n0.869537 0.612640 0.526031\n0.915527 0.613098 0.526154\n0.000000 0.638550 0.519958\n0.002991 0.639069 0.520172\n0.028534 0.639526 0.520416\n0.060455 0.639984 0.520630\n0.088226 0.640594 0.520874\n0.114349 0.641052 0.521118\n0.138519 0.641479 0.521332\n0.161316 0.642059 0.521576\n0.182587 0.642548 0.521790\n0.202942 0.643005 0.522003\n0.222534 0.643433 0.522247\n0.241547 0.644073 0.522491\n0.260590 0.644501 0.522675\n0.279663 0.644928 0.522919\n0.299042 0.645538 0.523132\n0.319489 0.645996 0.523376\n0.340912 0.646423 0.523560\n0.363739 0.646942 0.523773\n0.388153 0.647430 0.524017\n0.414642 0.647827 0.524200\n0.443481 0.648163 0.524445\n0.474945 0.648682 0.524628\n0.509277 0.649170 0.524841\n0.546600 0.649567 0.525055\n0.587006 0.649933 0.525208\n0.629822 0.650482 0.525421\n0.674957 0.650879 0.525604\n0.721680 0.651276 0.525787\n0.769928 0.651581 0.526031\n0.819397 0.652130 0.526154\n0.869659 0.652496 0.526367\n0.915527 0.652802 0.526520\n0.000000 0.681946 0.520416\n0.005310 0.682312 0.520630\n0.030884 0.682922 0.520874\n0.062958 0.683289 0.521118\n0.090637 0.683716 0.521332\n0.116333 0.684052 0.521576\n0.140472 0.684662 0.521790\n0.162994 0.685059 0.522003\n0.184082 0.685425 0.522247\n0.204315 0.685822 0.522461\n0.223785 0.686432 0.522675\n0.242706 0.686737 0.522919\n0.261566 0.687134 0.523132\n0.280701 0.687439 0.523376\n0.300110 0.688080 0.523560\n0.320557 0.688416 0.523773\n0.341827 0.688812 0.524017\n0.364685 0.689117 0.524200\n0.389160 0.689484 0.524445\n0.415649 0.690002 0.524628\n0.444489 0.690338 0.524841\n0.475769 0.690704 0.525055\n0.510223 0.690979 0.525208\n0.547546 0.691559 0.525421\n0.587891 0.691803 0.525604\n0.630554 0.692139 0.525787\n0.675476 0.692474 0.526031\n0.722137 0.692902 0.526154\n0.770447 0.693298 0.526337\n0.819824 0.693542 0.526520\n0.869751 0.693817 0.526703\n0.915527 0.694153 0.526855\n0.000000 0.726959 0.520874\n0.007660 0.727448 0.521088\n0.033325 0.727753 0.521301\n0.065491 0.728058 0.521576\n0.092896 0.728363 0.521790\n0.118439 0.728943 0.522003\n0.142303 0.729187 0.522247\n0.164551 0.729523 0.522461\n0.185699 0.729858 0.522675\n0.205597 0.730164 0.522919\n0.225037 0.730621 0.523102\n0.243866 0.730957 0.523376\n0.262726 0.731262 0.523560\n0.281799 0.731567 0.523773\n0.301178 0.731842 0.524017\n0.321411 0.732269 0.524200\n0.342834 0.732666 0.524414\n0.365631 0.732910 0.524628\n0.390198 0.733185 0.524811\n0.416687 0.733459 0.525055\n0.445343 0.733887 0.525208\n0.476746 0.734253 0.525421\n0.510986 0.734497 0.525604\n0.548492 0.734772 0.525787\n0.588531 0.734985 0.526001\n0.631378 0.735229 0.526154\n0.676178 0.735657 0.526337\n0.722809 0.735962 0.526520\n0.770813 0.736176 0.526703\n0.820007 0.736389 0.526855\n0.869873 0.736633 0.527039\n0.915527 0.736816 0.527161\n0.000000 0.773193 0.521301\n0.010071 0.773590 0.521576\n0.035767 0.773834 0.521790\n0.068024 0.774109 0.521973\n0.095123 0.774323 0.522247\n0.120453 0.774567 0.522461\n0.144043 0.774902 0.522644\n0.166260 0.775269 0.522919\n0.187103 0.775482 0.523102\n0.207031 0.775696 0.523346\n0.226257 0.775940 0.523529\n0.245026 0.776154 0.523773\n0.263824 0.776398 0.523987\n0.282867 0.776825 0.524200\n0.302185 0.777069 0.524414\n0.322418 0.777283 0.524628\n0.343842 0.777527 0.524811\n0.366577 0.777710 0.525024\n0.391083 0.777924 0.525208\n0.417542 0.778137 0.525421\n0.446259 0.778381 0.525604\n0.477692 0.778778 0.525757\n0.511902 0.778931 0.526001\n0.549255 0.779144 0.526154\n0.589417 0.779297 0.526337\n0.631958 0.779480 0.526520\n0.676666 0.779663 0.526703\n0.723175 0.779816 0.526855\n0.771118 0.780151 0.527008\n0.820190 0.780457 0.527161\n0.869995 0.780579 0.527344\n0.915527 0.780792 0.527466\n0.000000 0.820374 0.521759\n0.012482 0.820496 0.521973\n0.038025 0.820679 0.522247\n0.070465 0.820831 0.522461\n0.097290 0.820984 0.522644\n0.122498 0.821167 0.522888\n0.145905 0.821472 0.523102\n0.167816 0.821716 0.523346\n0.188477 0.821869 0.523529\n0.208405 0.822021 0.523773\n0.227386 0.822174 0.523987\n0.246155 0.822357 0.524200\n0.264832 0.822479 0.524414\n0.283691 0.822601 0.524597\n0.303223 0.822754 0.524811\n0.323456 0.822906 0.525024\n0.344818 0.823273 0.525208\n0.367584 0.823456 0.525391\n0.391937 0.823578 0.525574\n0.418396 0.823700 0.525757\n0.447235 0.823792 0.526001\n0.478607 0.823944 0.526123\n0.512848 0.824066 0.526306\n0.550049 0.824219 0.526520\n0.589966 0.824310 0.526703\n0.632690 0.824463 0.526825\n0.677185 0.824615 0.527008\n0.723633 0.824860 0.527130\n0.771545 0.825012 0.527344\n0.820404 0.825104 0.527466\n0.870178 0.825195 0.527618\n0.915527 0.825287 0.527740\n0.000000 0.867767 0.522217\n0.014709 0.867920 0.522461\n0.040436 0.867981 0.522644\n0.072754 0.868164 0.522888\n0.099518 0.868347 0.523102\n0.124359 0.868439 0.523315\n0.147522 0.868469 0.523529\n0.169312 0.868561 0.523773\n0.190033 0.868652 0.523956\n0.209595 0.868713 0.524170\n0.228577 0.868774 0.524384\n0.247253 0.868896 0.524597\n0.265900 0.868958 0.524780\n0.284729 0.869049 0.525024\n0.304230 0.869110 0.525208\n0.324432 0.869171 0.525391\n0.345795 0.869202 0.525574\n0.368530 0.869293 0.525757\n0.392883 0.869354 0.525970\n0.419373 0.869446 0.526123\n0.448181 0.869446 0.526306\n0.479340 0.869568 0.526489\n0.513550 0.869781 0.526672\n0.550873 0.869873 0.526825\n0.590820 0.869934 0.527008\n0.633179 0.869995 0.527130\n0.677795 0.870087 0.527344\n0.724091 0.870148 0.527466\n0.771881 0.870178 0.527588\n0.820648 0.870239 0.527740\n0.870331 0.870270 0.527893\n0.915527 0.870331 0.528015\n0.000000 0.915527 0.522644\n0.017120 0.915527 0.522888\n0.042633 0.915527 0.523102\n0.075165 0.915527 0.523315\n0.101624 0.915527 0.523499\n0.126221 0.915527 0.523773\n0.149323 0.915527 0.523956\n0.170868 0.915527 0.524170\n0.191345 0.915527 0.524384\n0.210876 0.915527 0.524567\n0.229706 0.915527 0.524780\n0.248322 0.915527 0.524994\n0.266907 0.915527 0.525208\n0.285706 0.915527 0.525391\n0.305176 0.915527 0.525574\n0.325195 0.915527 0.525757\n0.346649 0.915527 0.525970\n0.369324 0.915527 0.526093\n0.393829 0.915527 0.526306\n0.420258 0.915527 0.526489\n0.448822 0.915527 0.526672\n0.480194 0.915527 0.526825\n0.514404 0.915527 0.527008\n0.551514 0.915527 0.527130\n0.591614 0.915527 0.527313\n0.633911 0.915527 0.527466\n0.678192 0.915527 0.527588\n0.724457 0.915527 0.527740\n0.772156 0.915527 0.527893\n0.820892 0.915527 0.528015\n0.870453 0.915527 0.528137\n0.915527 0.915527 0.528290\n0.000000 0.000000 0.530426\n0.000000 0.000000 0.530579\n0.000000 0.000000 0.530731\n0.003113 0.000000 0.530853\n0.029907 0.000000 0.530975\n0.063324 0.000000 0.531097\n0.092529 0.000000 0.531281\n0.119629 0.000000 0.531403\n0.144928 0.000000 0.531586\n0.168518 0.000000 0.531708\n0.190674 0.000000 0.531891\n0.212006 0.000000 0.532043\n0.232513 0.000000 0.532257\n0.252777 0.000000 0.532379\n0.273010 0.000000 0.532562\n0.293854 0.000000 0.532715\n0.315399 0.000000 0.532959\n0.338104 0.000000 0.533112\n0.362640 0.000000 0.533356\n0.388947 0.000000 0.533478\n0.417603 0.000000 0.533691\n0.449005 0.000000 0.533905\n0.483673 0.000000 0.534088\n0.521729 0.000000 0.534302\n0.563477 0.000000 0.534485\n0.608337 0.000000 0.534698\n0.656219 0.000000 0.534943\n0.706116 0.000000 0.535156\n0.758026 0.000000 0.535339\n0.811310 0.000000 0.535553\n0.865570 0.000000 0.535797\n0.915527 0.000000 0.536011\n0.000000 0.000000 0.530731\n0.000000 0.000000 0.530853\n0.000000 0.000000 0.530975\n0.004517 0.000000 0.531097\n0.031403 0.000000 0.531250\n0.065094 0.000000 0.531403\n0.093994 0.000000 0.531586\n0.121002 0.000000 0.531708\n0.146118 0.000000 0.531891\n0.169708 0.000000 0.532043\n0.191711 0.000000 0.532227\n0.212860 0.000916 0.532379\n0.233368 0.001923 0.532562\n0.253693 0.003052 0.532715\n0.273926 0.004211 0.532959\n0.294769 0.005402 0.533112\n0.316284 0.006592 0.533325\n0.339020 0.007843 0.533478\n0.363342 0.009125 0.533691\n0.389832 0.010345 0.533905\n0.418457 0.011719 0.534088\n0.449921 0.013000 0.534302\n0.484650 0.014557 0.534485\n0.522736 0.015930 0.534698\n0.564453 0.017303 0.534943\n0.609314 0.018677 0.535126\n0.656769 0.020111 0.535339\n0.706726 0.021515 0.535553\n0.758453 0.023041 0.535767\n0.811554 0.024628 0.536011\n0.865692 0.026062 0.536224\n0.915527 0.027496 0.536438\n0.000000 0.017487 0.530975\n0.000000 0.018494 0.531097\n0.000000 0.019470 0.531250\n0.006012 0.020386 0.531403\n0.032990 0.021423 0.531586\n0.066589 0.022461 0.531708\n0.095459 0.023590 0.531891\n0.122406 0.024719 0.532043\n0.147400 0.025879 0.532227\n0.170837 0.027039 0.532379\n0.192841 0.028198 0.532562\n0.213837 0.029266 0.532715\n0.234375 0.030487 0.532928\n0.254486 0.031708 0.533112\n0.274872 0.032990 0.533325\n0.295502 0.034302 0.533478\n0.317230 0.035553 0.533691\n0.339966 0.036865 0.533905\n0.364288 0.038239 0.534088\n0.390656 0.039551 0.534302\n0.419434 0.040955 0.534485\n0.450928 0.042389 0.534698\n0.485504 0.043762 0.534912\n0.523682 0.045197 0.535126\n0.565247 0.047394 0.535339\n0.610077 0.049744 0.535553\n0.657654 0.052277 0.535767\n0.707458 0.054901 0.536011\n0.758972 0.057617 0.536224\n0.811951 0.059631 0.536438\n0.865845 0.061157 0.536652\n0.915527 0.062775 0.536896\n0.000000 0.047729 0.531250\n0.000000 0.049500 0.531403\n0.000000 0.050995 0.531586\n0.007568 0.052917 0.531708\n0.034546 0.054901 0.531891\n0.068359 0.056946 0.532043\n0.097168 0.058899 0.532227\n0.123871 0.059937 0.532379\n0.148682 0.061218 0.532562\n0.172089 0.062531 0.532715\n0.193970 0.063873 0.532928\n0.214935 0.065247 0.533081\n0.235413 0.066559 0.533325\n0.255463 0.067902 0.533478\n0.275848 0.069336 0.533691\n0.296478 0.070770 0.533875\n0.317963 0.072113 0.534088\n0.340851 0.073334 0.534302\n0.365234 0.074768 0.534485\n0.391693 0.076294 0.534698\n0.420441 0.077728 0.534912\n0.451965 0.079163 0.535126\n0.486420 0.080688 0.535339\n0.524536 0.082123 0.535553\n0.566162 0.083618 0.535767\n0.610870 0.085114 0.536011\n0.658295 0.086609 0.536194\n0.708008 0.088135 0.536407\n0.759491 0.089691 0.536652\n0.812317 0.091156 0.536865\n0.865997 0.092743 0.537079\n0.915527 0.094208 0.537323\n0.000000 0.084076 0.531586\n0.000000 0.085083 0.531708\n0.000000 0.086212 0.531860\n0.009216 0.087402 0.532043\n0.036224 0.088348 0.532196\n0.070282 0.089569 0.532379\n0.098724 0.090759 0.532562\n0.125397 0.092010 0.532715\n0.150177 0.093262 0.532928\n0.173309 0.094299 0.533081\n0.195129 0.095551 0.533325\n0.216095 0.096924 0.533447\n0.236450 0.098175 0.533691\n0.256500 0.099518 0.533875\n0.276642 0.100830 0.534088\n0.297424 0.102081 0.534302\n0.319000 0.103302 0.534454\n0.341705 0.104706 0.534698\n0.366272 0.106049 0.534912\n0.392670 0.107422 0.535126\n0.421448 0.108826 0.535339\n0.453003 0.110199 0.535553\n0.487488 0.111603 0.535736\n0.525574 0.112976 0.535980\n0.567108 0.114380 0.536194\n0.611847 0.115570 0.536407\n0.659119 0.117004 0.536652\n0.708740 0.118408 0.536865\n0.759949 0.119812 0.537079\n0.812622 0.121216 0.537323\n0.866119 0.122620 0.537537\n0.915527 0.124084 0.537750\n0.000000 0.114868 0.531860\n0.000000 0.115814 0.532043\n0.000000 0.116821 0.532196\n0.010925 0.117981 0.532379\n0.037994 0.119110 0.532562\n0.072083 0.120026 0.532715\n0.100555 0.121216 0.532898\n0.126953 0.122345 0.533081\n0.151581 0.123444 0.533295\n0.174561 0.124542 0.533447\n0.196320 0.125763 0.533691\n0.217133 0.126984 0.533875\n0.237518 0.128113 0.534088\n0.257507 0.129211 0.534302\n0.277649 0.130463 0.534454\n0.298431 0.131714 0.534668\n0.319946 0.132996 0.534912\n0.342743 0.134033 0.535126\n0.367279 0.135284 0.535339\n0.393738 0.136597 0.535522\n0.422424 0.137848 0.535736\n0.453918 0.139130 0.535980\n0.488525 0.140259 0.536194\n0.526581 0.141510 0.536407\n0.568176 0.142792 0.536652\n0.612762 0.144104 0.536835\n0.660004 0.145386 0.537048\n0.709320 0.146606 0.537323\n0.760529 0.147766 0.537537\n0.812958 0.149048 0.537750\n0.866425 0.150330 0.537994\n0.915527 0.151672 0.538177\n0.000000 0.143646 0.532196\n0.000000 0.144501 0.532379\n0.000000 0.145569 0.532562\n0.012756 0.146484 0.532715\n0.039825 0.147430 0.532898\n0.073914 0.148560 0.533081\n0.102173 0.149414 0.533295\n0.128479 0.150513 0.533447\n0.152954 0.151611 0.533691\n0.175812 0.152527 0.533875\n0.197510 0.153595 0.534058\n0.218262 0.154785 0.534271\n0.238617 0.155640 0.534454\n0.258545 0.156830 0.534668\n0.278687 0.157959 0.534882\n0.299347 0.158905 0.535126\n0.320984 0.160065 0.535309\n0.343781 0.161255 0.535522\n0.368134 0.162384 0.535736\n0.394592 0.163361 0.535950\n0.423309 0.164520 0.536163\n0.454895 0.165710 0.536407\n0.489594 0.166687 0.536652\n0.527649 0.167847 0.536835\n0.569092 0.169037 0.537048\n0.613464 0.170135 0.537323\n0.660614 0.171204 0.537537\n0.709991 0.172394 0.537750\n0.760925 0.173553 0.537994\n0.813416 0.174500 0.538177\n0.866669 0.175690 0.538422\n0.915527 0.176910 0.538666\n0.000000 0.170074 0.532562\n0.000000 0.170959 0.532715\n0.000000 0.171936 0.532898\n0.014557 0.172699 0.533051\n0.041687 0.173676 0.533295\n0.075958 0.174469 0.533417\n0.104065 0.175476 0.533661\n0.130127 0.176422 0.533875\n0.154388 0.177307 0.534058\n0.177155 0.178375 0.534271\n0.198730 0.179169 0.534424\n0.219421 0.180206 0.534668\n0.239655 0.181213 0.534882\n0.259613 0.182098 0.535126\n0.279724 0.183167 0.535309\n0.300293 0.184082 0.535522\n0.321991 0.185089 0.535736\n0.344818 0.186188 0.535950\n0.369171 0.187012 0.536163\n0.395569 0.188080 0.536407\n0.424408 0.189178 0.536652\n0.455933 0.190033 0.536835\n0.490692 0.191162 0.537048\n0.528717 0.192078 0.537323\n0.569946 0.193085 0.537537\n0.614441 0.194153 0.537720\n0.661499 0.195160 0.537994\n0.710602 0.196136 0.538177\n0.761505 0.197235 0.538422\n0.813721 0.198090 0.538666\n0.866821 0.199188 0.538910\n0.915527 0.200256 0.539124\n0.000000 0.194550 0.532898\n0.000000 0.195435 0.533051\n0.000000 0.196136 0.533264\n0.016479 0.196991 0.533417\n0.043610 0.197754 0.533661\n0.077942 0.198669 0.533875\n0.105896 0.199432 0.534058\n0.131744 0.200409 0.534271\n0.156036 0.201141 0.534424\n0.178680 0.202087 0.534668\n0.200043 0.202850 0.534882\n0.220612 0.203827 0.535095\n0.240814 0.204590 0.535309\n0.260712 0.205536 0.535492\n0.280792 0.206543 0.535706\n0.301361 0.207275 0.535950\n0.322968 0.208313 0.536163\n0.345856 0.209106 0.536407\n0.370209 0.210083 0.536621\n0.396667 0.210907 0.536835\n0.425507 0.211853 0.537048\n0.457031 0.212769 0.537323\n0.491516 0.213654 0.537537\n0.529633 0.214630 0.537720\n0.571045 0.215454 0.537994\n0.615387 0.216461 0.538177\n0.662170 0.217346 0.538391\n0.711334 0.218231 0.538666\n0.762024 0.219177 0.538910\n0.813965 0.220032 0.539093\n0.867004 0.221039 0.539337\n0.915527 0.221802 0.539612\n0.000000 0.217285 0.533264\n0.000000 0.218018 0.533417\n0.000000 0.218689 0.533630\n0.018555 0.219543 0.533875\n0.045563 0.220184 0.534027\n0.080048 0.221100 0.534271\n0.107758 0.221771 0.534424\n0.133484 0.222656 0.534668\n0.157471 0.223328 0.534851\n0.180023 0.224182 0.535095\n0.201447 0.224915 0.535278\n0.221771 0.225830 0.535492\n0.241943 0.226501 0.535706\n0.261749 0.227448 0.535950\n0.281860 0.228149 0.536133\n0.302368 0.229065 0.536377\n0.324005 0.229767 0.536621\n0.346893 0.230682 0.536804\n0.371277 0.231415 0.537018\n0.397736 0.232330 0.537292\n0.426605 0.233032 0.537506\n0.458099 0.234009 0.537689\n0.492615 0.234711 0.537994\n0.530609 0.235657 0.538177\n0.572021 0.236420 0.538391\n0.616364 0.237335 0.538666\n0.663025 0.238190 0.538879\n0.711914 0.238983 0.539093\n0.762421 0.239960 0.539337\n0.814240 0.240631 0.539581\n0.867126 0.241455 0.539825\n0.915527 0.242249 0.540009\n0.000000 0.238678 0.533630\n0.000000 0.239288 0.533844\n0.000000 0.240082 0.534027\n0.020599 0.240692 0.534241\n0.049042 0.241455 0.534424\n0.082123 0.242126 0.534668\n0.109619 0.242859 0.534851\n0.135162 0.243591 0.535065\n0.158936 0.244263 0.535278\n0.181396 0.245056 0.535492\n0.202728 0.245758 0.535675\n0.223114 0.246582 0.535919\n0.242950 0.247253 0.536133\n0.262878 0.248108 0.536377\n0.282959 0.248749 0.536621\n0.303467 0.249603 0.536804\n0.324982 0.250305 0.537018\n0.347992 0.251190 0.537292\n0.372345 0.251801 0.537506\n0.398834 0.252563 0.537689\n0.427643 0.253326 0.537964\n0.459229 0.254120 0.538177\n0.493683 0.254913 0.538391\n0.531677 0.255646 0.538635\n0.573059 0.256470 0.538879\n0.617096 0.257111 0.539093\n0.663879 0.257996 0.539337\n0.712677 0.258667 0.539581\n0.763092 0.259521 0.539825\n0.814819 0.260193 0.540009\n0.867249 0.261078 0.540283\n0.915527 0.261719 0.540527\n0.000000 0.259064 0.534027\n0.000000 0.259674 0.534241\n0.000000 0.260254 0.534424\n0.022675 0.261047 0.534637\n0.052948 0.261597 0.534851\n0.084290 0.262268 0.535065\n0.111542 0.262970 0.535278\n0.136993 0.263550 0.535461\n0.160645 0.264435 0.535675\n0.182861 0.264984 0.535919\n0.204041 0.265808 0.536133\n0.224213 0.266418 0.536377\n0.244263 0.267273 0.536591\n0.264069 0.267822 0.536804\n0.283875 0.268463 0.537018\n0.304535 0.269287 0.537292\n0.326050 0.269867 0.537506\n0.348846 0.270721 0.537689\n0.373444 0.271362 0.537964\n0.399933 0.272217 0.538177\n0.428772 0.272797 0.538391\n0.460266 0.273468 0.538635\n0.494812 0.274292 0.538879\n0.532776 0.274872 0.539093\n0.573853 0.275726 0.539337\n0.618042 0.276367 0.539581\n0.664581 0.277191 0.539795\n0.713226 0.277802 0.539978\n0.763458 0.278656 0.540253\n0.815125 0.279266 0.540527\n0.867401 0.279968 0.540710\n0.915527 0.280670 0.540955\n0.000000 0.278839 0.534424\n0.000000 0.279358 0.534637\n0.000000 0.280060 0.534821\n0.024902 0.280670 0.535065\n0.056763 0.281219 0.535248\n0.086426 0.281982 0.535461\n0.113586 0.282532 0.535675\n0.138611 0.283325 0.535919\n0.162170 0.283905 0.536133\n0.184326 0.284454 0.536346\n0.205292 0.285248 0.536591\n0.225525 0.285828 0.536774\n0.245422 0.286621 0.537018\n0.264954 0.287231 0.537262\n0.285034 0.287811 0.537476\n0.305634 0.288574 0.537689\n0.327148 0.289154 0.537964\n0.349915 0.289978 0.538177\n0.374573 0.290558 0.538361\n0.401031 0.291229 0.538605\n0.429871 0.291901 0.538879\n0.461365 0.292542 0.539093\n0.495941 0.293335 0.539337\n0.533813 0.293945 0.539551\n0.574951 0.294739 0.539795\n0.619049 0.295349 0.539978\n0.665405 0.295868 0.540253\n0.713959 0.296692 0.540497\n0.764160 0.297302 0.540680\n0.815399 0.298126 0.540955\n0.867554 0.298706 0.541199\n0.915527 0.299438 0.541412\n0.000000 0.298370 0.534821\n0.000000 0.298859 0.535065\n0.001068 0.299591 0.535248\n0.027008 0.300171 0.535461\n0.059784 0.300690 0.535675\n0.088623 0.301422 0.535889\n0.115356 0.301910 0.536102\n0.140472 0.302582 0.536346\n0.163879 0.303253 0.536591\n0.185760 0.303802 0.536774\n0.206635 0.304596 0.537018\n0.226898 0.305145 0.537262\n0.246521 0.305817 0.537476\n0.266144 0.306458 0.537659\n0.286072 0.307007 0.537933\n0.306763 0.307770 0.538177\n0.328247 0.308380 0.538361\n0.351044 0.308990 0.538605\n0.375610 0.309723 0.538849\n0.402069 0.310272 0.539093\n0.430969 0.311096 0.539337\n0.462463 0.311615 0.539551\n0.497009 0.312439 0.539795\n0.534882 0.312988 0.539978\n0.575958 0.313568 0.540253\n0.619934 0.314362 0.540497\n0.666321 0.314911 0.540680\n0.714539 0.315582 0.540924\n0.764587 0.316254 0.541168\n0.815857 0.316803 0.541382\n0.867798 0.317566 0.541626\n0.915527 0.318115 0.541840\n0.000000 0.317993 0.535248\n0.000000 0.318481 0.535461\n0.003052 0.319214 0.535675\n0.029358 0.319733 0.535889\n0.062103 0.320251 0.536102\n0.090790 0.321014 0.536346\n0.117371 0.321533 0.536560\n0.142212 0.322296 0.536774\n0.165436 0.322815 0.537018\n0.187195 0.323334 0.537262\n0.207916 0.324097 0.537476\n0.228149 0.324646 0.537659\n0.247772 0.325226 0.537933\n0.267303 0.325989 0.538147\n0.287170 0.326508 0.538361\n0.307831 0.327301 0.538605\n0.329315 0.327850 0.538849\n0.352112 0.328461 0.539062\n0.376648 0.329132 0.539337\n0.403198 0.329681 0.539551\n0.432037 0.330414 0.539795\n0.463409 0.331024 0.539978\n0.498108 0.331573 0.540253\n0.535950 0.332306 0.540497\n0.576996 0.332886 0.540680\n0.620697 0.333588 0.540924\n0.666962 0.334198 0.541168\n0.715302 0.334747 0.541382\n0.765167 0.335510 0.541626\n0.816162 0.336090 0.541840\n0.868073 0.336639 0.542053\n0.915527 0.337372 0.542297\n0.000000 0.338074 0.535675\n0.000000 0.338806 0.535889\n0.005219 0.339325 0.536072\n0.031555 0.339874 0.536346\n0.064636 0.340515 0.536560\n0.092987 0.341095 0.536743\n0.119385 0.341675 0.536987\n0.144012 0.342346 0.537231\n0.167023 0.342865 0.537476\n0.188721 0.343628 0.537659\n0.209290 0.344147 0.537933\n0.229401 0.344696 0.538147\n0.248993 0.345459 0.538361\n0.268402 0.345947 0.538605\n0.288300 0.346619 0.538849\n0.308929 0.347290 0.539062\n0.330475 0.347809 0.539307\n0.353210 0.348572 0.539520\n0.377747 0.349121 0.539795\n0.404297 0.349792 0.539978\n0.433014 0.350464 0.540222\n0.464539 0.350983 0.540466\n0.499084 0.351776 0.540680\n0.536957 0.352295 0.540924\n0.577942 0.352783 0.541168\n0.621674 0.353577 0.541382\n0.667816 0.354126 0.541626\n0.715790 0.354797 0.541840\n0.765625 0.355408 0.542053\n0.816467 0.355957 0.542297\n0.868164 0.356689 0.542511\n0.915527 0.357208 0.542755\n0.000000 0.359161 0.536072\n0.000000 0.359802 0.536346\n0.007477 0.360382 0.536560\n0.033875 0.360901 0.536743\n0.067017 0.361633 0.536987\n0.095154 0.362152 0.537231\n0.121429 0.362701 0.537445\n0.145874 0.363434 0.537659\n0.168671 0.363953 0.537933\n0.190216 0.364532 0.538116\n0.210785 0.365234 0.538361\n0.230652 0.365753 0.538605\n0.250153 0.366516 0.538818\n0.269562 0.367035 0.539062\n0.289398 0.367584 0.539307\n0.310059 0.368347 0.539520\n0.331573 0.368896 0.539764\n0.354370 0.369476 0.539978\n0.378784 0.370178 0.540222\n0.405365 0.370697 0.540466\n0.434143 0.371490 0.540649\n0.465637 0.372009 0.540924\n0.500122 0.372620 0.541138\n0.537964 0.373291 0.541351\n0.578857 0.373871 0.541626\n0.622620 0.374603 0.541840\n0.668671 0.375153 0.542053\n0.716553 0.375671 0.542297\n0.766022 0.376404 0.542511\n0.816772 0.376923 0.542755\n0.868317 0.377441 0.542938\n0.915527 0.378235 0.543152\n0.000000 0.381500 0.536560\n0.000000 0.381989 0.536743\n0.009735 0.382538 0.536987\n0.036133 0.383209 0.537231\n0.069427 0.383759 0.537445\n0.097351 0.384521 0.537659\n0.123352 0.385010 0.537903\n0.147522 0.385529 0.538116\n0.170166 0.386292 0.538361\n0.191650 0.386841 0.538605\n0.212158 0.387390 0.538818\n0.231903 0.388123 0.539032\n0.251373 0.388672 0.539276\n0.270721 0.389435 0.539520\n0.290558 0.389984 0.539764\n0.311035 0.390472 0.539978\n0.332672 0.391266 0.540222\n0.355438 0.391815 0.540466\n0.379883 0.392365 0.540649\n0.406342 0.393097 0.540924\n0.435242 0.393616 0.541138\n0.466736 0.394409 0.541351\n0.501190 0.394928 0.541595\n0.539001 0.395447 0.541840\n0.579834 0.396210 0.542053\n0.623383 0.396729 0.542297\n0.669312 0.397369 0.542511\n0.717102 0.398041 0.542725\n0.766632 0.398529 0.542938\n0.817200 0.399200 0.543152\n0.868469 0.399811 0.543365\n0.915527 0.400299 0.543610\n0.000000 0.405151 0.536987\n0.000000 0.405762 0.537201\n0.012024 0.406403 0.537445\n0.038544 0.406952 0.537659\n0.071838 0.407684 0.537903\n0.099579 0.408203 0.538116\n0.125397 0.408844 0.538330\n0.149414 0.409485 0.538605\n0.171936 0.410004 0.538818\n0.193085 0.410645 0.539032\n0.213409 0.411316 0.539276\n0.233093 0.411865 0.539490\n0.252533 0.412628 0.539764\n0.271881 0.413177 0.539978\n0.291687 0.413757 0.540192\n0.312134 0.414490 0.540436\n0.333649 0.415009 0.540649\n0.356537 0.415588 0.540894\n0.380951 0.416290 0.541138\n0.407471 0.416840 0.541351\n0.436340 0.417603 0.541595\n0.467896 0.418152 0.541840\n0.502319 0.418640 0.542053\n0.540039 0.419403 0.542297\n0.580811 0.419922 0.542480\n0.624298 0.420715 0.542725\n0.670105 0.421234 0.542938\n0.717834 0.421722 0.543121\n0.767029 0.422455 0.543365\n0.817444 0.422974 0.543610\n0.868652 0.423492 0.543793\n0.915527 0.424225 0.544006\n0.000000 0.430908 0.537445\n0.000000 0.431427 0.537659\n0.014465 0.432037 0.537872\n0.040833 0.432709 0.538116\n0.074341 0.433228 0.538330\n0.101807 0.433929 0.538574\n0.127289 0.434540 0.538788\n0.151062 0.435059 0.539032\n0.173462 0.435822 0.539276\n0.194641 0.436371 0.539490\n0.214752 0.437042 0.539734\n0.234344 0.437683 0.539978\n0.253754 0.438202 0.540192\n0.273010 0.438873 0.540436\n0.292786 0.439514 0.540649\n0.313263 0.440063 0.540894\n0.334778 0.440796 0.541138\n0.357605 0.441376 0.541321\n0.382080 0.441925 0.541595\n0.408600 0.442657 0.541840\n0.437439 0.443176 0.542023\n0.468933 0.443817 0.542267\n0.503357 0.444458 0.542480\n0.541138 0.445007 0.542725\n0.581879 0.445740 0.542938\n0.625244 0.446259 0.543121\n0.670746 0.446777 0.543335\n0.718323 0.447510 0.543610\n0.767426 0.448029 0.543793\n0.817749 0.448608 0.543976\n0.868744 0.449249 0.544220\n0.915527 0.449738 0.544403\n0.000000 0.458679 0.537872\n0.000000 0.459290 0.538086\n0.016876 0.459869 0.538330\n0.043243 0.460602 0.538574\n0.076752 0.461151 0.538788\n0.104004 0.461670 0.539032\n0.129333 0.462463 0.539246\n0.152954 0.462952 0.539490\n0.175201 0.463531 0.539734\n0.196106 0.464264 0.539948\n0.216187 0.464813 0.540192\n0.235626 0.465576 0.540405\n0.254944 0.466125 0.540649\n0.274170 0.466675 0.540894\n0.293915 0.467407 0.541107\n0.314301 0.467957 0.541321\n0.335846 0.468506 0.541565\n0.358734 0.469238 0.541809\n0.383179 0.469788 0.542023\n0.409668 0.470551 0.542267\n0.438568 0.471069 0.542480\n0.470062 0.471619 0.542694\n0.504456 0.472351 0.542938\n0.541992 0.472870 0.543121\n0.582703 0.473389 0.543335\n0.625946 0.474152 0.543610\n0.671600 0.474640 0.543793\n0.719025 0.475128 0.543976\n0.768005 0.475830 0.544220\n0.817993 0.476349 0.544403\n0.868927 0.476959 0.544617\n0.915527 0.477539 0.544830\n0.000000 0.489075 0.538330\n0.000000 0.489594 0.538544\n0.019165 0.490143 0.538788\n0.045502 0.490906 0.539032\n0.079163 0.491425 0.539246\n0.106171 0.492065 0.539459\n0.131378 0.492737 0.539734\n0.154663 0.493286 0.539948\n0.176697 0.494019 0.540192\n0.197479 0.494598 0.540405\n0.217468 0.495148 0.540649\n0.236816 0.495850 0.540894\n0.256134 0.496399 0.541107\n0.275330 0.496979 0.541321\n0.295044 0.497681 0.541565\n0.315399 0.498230 0.541809\n0.336853 0.498993 0.542023\n0.359619 0.499512 0.542267\n0.384247 0.500031 0.542450\n0.410767 0.500763 0.542694\n0.439636 0.501282 0.542938\n0.471130 0.501831 0.543091\n0.505524 0.502563 0.543335\n0.542969 0.503052 0.543579\n0.583618 0.503632 0.543793\n0.626831 0.504272 0.543976\n0.672394 0.504791 0.544220\n0.719543 0.505432 0.544403\n0.768372 0.505981 0.544617\n0.818390 0.506470 0.544830\n0.869232 0.507141 0.545013\n0.915527 0.507629 0.545227\n0.000000 0.522125 0.538757\n0.000000 0.522797 0.539032\n0.021637 0.523315 0.539246\n0.049744 0.524048 0.539459\n0.081573 0.524597 0.539703\n0.108337 0.525116 0.539948\n0.133118 0.525848 0.540192\n0.156464 0.526398 0.540405\n0.178192 0.526917 0.540619\n0.198914 0.527710 0.540863\n0.218872 0.528198 0.541107\n0.238159 0.528870 0.541321\n0.257324 0.529449 0.541534\n0.276459 0.530029 0.541809\n0.296173 0.530762 0.541992\n0.316467 0.531311 0.542236\n0.337921 0.531799 0.542450\n0.360718 0.532501 0.542694\n0.385345 0.533051 0.542938\n0.411865 0.533539 0.543091\n0.440552 0.534271 0.543335\n0.471985 0.534790 0.543579\n0.506561 0.535370 0.543793\n0.543976 0.536011 0.543976\n0.584564 0.536499 0.544220\n0.627716 0.536987 0.544403\n0.672943 0.537689 0.544617\n0.720245 0.538147 0.544800\n0.768890 0.538635 0.545013\n0.818695 0.539307 0.545227\n0.869324 0.539795 0.545380\n0.915527 0.540192 0.545593\n0.000000 0.558258 0.539246\n0.000000 0.558838 0.539459\n0.024109 0.559509 0.539703\n0.053772 0.560059 0.539917\n0.083984 0.560577 0.540161\n0.110504 0.561340 0.540405\n0.135132 0.561829 0.540619\n0.158173 0.562500 0.540863\n0.179901 0.563110 0.541107\n0.200500 0.563568 0.541321\n0.220154 0.564331 0.541534\n0.239319 0.564789 0.541779\n0.258484 0.565338 0.541992\n0.277557 0.565979 0.542236\n0.297241 0.566559 0.542450\n0.317596 0.567047 0.542694\n0.338989 0.567749 0.542908\n0.361755 0.568268 0.543091\n0.386414 0.568756 0.543304\n0.412933 0.569427 0.543549\n0.441528 0.569916 0.543793\n0.473022 0.570404 0.543976\n0.507385 0.571075 0.544189\n0.544983 0.571594 0.544403\n0.585510 0.572052 0.544586\n0.628387 0.572540 0.544800\n0.673706 0.573151 0.545013\n0.720642 0.573608 0.545197\n0.769348 0.574066 0.545380\n0.818939 0.574677 0.545593\n0.869446 0.575104 0.545776\n0.915527 0.575531 0.545959\n0.000000 0.597229 0.539673\n0.001251 0.597870 0.539917\n0.026611 0.598480 0.540161\n0.058350 0.598907 0.540375\n0.086365 0.599579 0.540619\n0.112640 0.600159 0.540863\n0.137085 0.600555 0.541107\n0.159882 0.601074 0.541321\n0.181396 0.601807 0.541534\n0.201843 0.602234 0.541779\n0.221436 0.602783 0.541992\n0.240631 0.603424 0.542206\n0.259613 0.603912 0.542419\n0.278687 0.604340 0.542664\n0.298340 0.605042 0.542908\n0.318665 0.605499 0.543091\n0.340088 0.605927 0.543304\n0.362885 0.606628 0.543549\n0.387238 0.607117 0.543793\n0.413727 0.607513 0.543976\n0.442627 0.608124 0.544189\n0.474060 0.608673 0.544403\n0.508392 0.609070 0.544586\n0.545990 0.609497 0.544800\n0.586212 0.610107 0.544983\n0.629242 0.610535 0.545197\n0.674316 0.610992 0.545380\n0.721252 0.611572 0.545593\n0.769684 0.612030 0.545776\n0.819153 0.612427 0.545959\n0.869537 0.612762 0.546173\n0.915527 0.613281 0.546326\n0.000000 0.638824 0.540161\n0.003479 0.639221 0.540375\n0.028900 0.639648 0.540588\n0.060883 0.640289 0.540833\n0.088745 0.640778 0.541077\n0.114777 0.641205 0.541321\n0.139038 0.641663 0.541504\n0.161652 0.642334 0.541779\n0.182953 0.642731 0.541962\n0.203186 0.643188 0.542206\n0.222717 0.643738 0.542419\n0.241943 0.644257 0.542664\n0.260773 0.644623 0.542908\n0.279816 0.645142 0.543091\n0.299347 0.645721 0.543304\n0.319702 0.646118 0.543549\n0.341125 0.646515 0.543762\n0.363922 0.647156 0.543945\n0.388306 0.647522 0.544189\n0.414795 0.647949 0.544403\n0.443634 0.648346 0.544586\n0.475098 0.648895 0.544800\n0.509399 0.649353 0.544983\n0.546753 0.649689 0.545197\n0.587128 0.650085 0.545349\n0.630005 0.650665 0.545593\n0.675049 0.651001 0.545776\n0.721771 0.651398 0.545959\n0.770020 0.651703 0.546173\n0.819519 0.652283 0.546326\n0.869720 0.652618 0.546509\n0.915527 0.652924 0.546692\n0.000000 0.682068 0.540588\n0.005798 0.682556 0.540833\n0.031372 0.683044 0.541077\n0.063354 0.683441 0.541321\n0.090973 0.683868 0.541504\n0.116821 0.684204 0.541748\n0.140747 0.684845 0.541962\n0.163208 0.685181 0.542206\n0.184509 0.685516 0.542419\n0.204559 0.686005 0.542664\n0.223969 0.686523 0.542908\n0.242950 0.686859 0.543091\n0.261932 0.687225 0.543304\n0.280884 0.687775 0.543549\n0.300354 0.688171 0.543762\n0.320740 0.688507 0.543945\n0.342194 0.688904 0.544159\n0.364899 0.689209 0.544373\n0.389313 0.689819 0.544586\n0.415833 0.690125 0.544769\n0.444672 0.690491 0.544983\n0.476044 0.690796 0.545197\n0.510376 0.691223 0.545349\n0.547668 0.691681 0.545563\n0.588013 0.691956 0.545746\n0.630646 0.692261 0.545929\n0.675568 0.692535 0.546173\n0.722260 0.693085 0.546295\n0.770538 0.693390 0.546509\n0.819885 0.693665 0.546661\n0.869781 0.693939 0.546814\n0.915527 0.694214 0.546967\n0.000000 0.727203 0.541077\n0.008057 0.727539 0.541321\n0.033722 0.727875 0.541504\n0.066040 0.728210 0.541748\n0.093262 0.728546 0.541962\n0.118713 0.729034 0.542206\n0.142670 0.729340 0.542389\n0.164978 0.729614 0.542633\n0.185913 0.729919 0.542908\n0.205902 0.730225 0.543060\n0.225189 0.730804 0.543304\n0.244232 0.731079 0.543518\n0.263031 0.731415 0.543762\n0.281982 0.731659 0.543945\n0.301422 0.731964 0.544159\n0.321564 0.732452 0.544373\n0.343140 0.732758 0.544586\n0.365906 0.733032 0.544769\n0.390350 0.733307 0.544983\n0.416809 0.733582 0.545197\n0.445648 0.734070 0.545349\n0.476837 0.734344 0.545563\n0.511139 0.734589 0.545746\n0.548584 0.734802 0.545929\n0.588684 0.735077 0.546143\n0.631500 0.735413 0.546295\n0.676331 0.735779 0.546509\n0.722900 0.736053 0.546661\n0.770844 0.736267 0.546814\n0.820068 0.736450 0.546967\n0.869873 0.736725 0.547150\n0.915527 0.736908 0.547302\n0.000000 0.773407 0.541504\n0.010437 0.773682 0.541718\n0.036133 0.773926 0.541962\n0.068390 0.774170 0.542206\n0.095459 0.774414 0.542389\n0.120758 0.774689 0.542633\n0.144379 0.775116 0.542877\n0.166534 0.775360 0.543060\n0.187317 0.775574 0.543304\n0.207336 0.775818 0.543518\n0.226410 0.776031 0.543732\n0.245361 0.776215 0.543945\n0.264130 0.776550 0.544159\n0.283020 0.776917 0.544373\n0.302368 0.777161 0.544586\n0.322601 0.777374 0.544769\n0.343964 0.777557 0.544952\n0.366791 0.777802 0.545197\n0.391327 0.778015 0.545319\n0.417755 0.778168 0.545563\n0.446411 0.778564 0.545746\n0.477814 0.778809 0.545929\n0.512024 0.778992 0.546143\n0.549561 0.779175 0.546295\n0.589508 0.779388 0.546478\n0.632050 0.779572 0.546661\n0.676758 0.779755 0.546814\n0.723236 0.779877 0.546967\n0.771179 0.780212 0.547150\n0.820221 0.780487 0.547302\n0.869995 0.780609 0.547455\n0.915527 0.780792 0.547607\n0.000000 0.820404 0.541962\n0.012817 0.820557 0.542206\n0.038544 0.820740 0.542389\n0.070862 0.820892 0.542633\n0.097656 0.821045 0.542877\n0.122772 0.821259 0.543060\n0.146179 0.821564 0.543304\n0.168091 0.821808 0.543518\n0.188873 0.821899 0.543732\n0.208618 0.822052 0.543945\n0.227600 0.822266 0.544128\n0.246277 0.822388 0.544342\n0.264984 0.822510 0.544586\n0.283936 0.822632 0.544769\n0.303406 0.822815 0.544952\n0.323608 0.823120 0.545197\n0.344971 0.823364 0.545319\n0.367706 0.823456 0.545563\n0.392151 0.823608 0.545746\n0.418579 0.823792 0.545929\n0.447357 0.823853 0.546143\n0.478760 0.823975 0.546265\n0.512970 0.824127 0.546478\n0.550171 0.824249 0.546661\n0.590240 0.824341 0.546814\n0.632812 0.824463 0.546967\n0.677368 0.824615 0.547150\n0.723816 0.824921 0.547272\n0.771637 0.825043 0.547455\n0.820435 0.825165 0.547607\n0.870178 0.825256 0.547729\n0.915527 0.825378 0.547913\n0.000000 0.867798 0.542389\n0.015259 0.867920 0.542633\n0.040771 0.868103 0.542877\n0.073303 0.868286 0.543060\n0.099823 0.868378 0.543304\n0.124756 0.868439 0.543488\n0.147858 0.868530 0.543732\n0.169708 0.868622 0.543945\n0.190247 0.868652 0.544128\n0.209869 0.868744 0.544342\n0.228760 0.868774 0.544556\n0.247467 0.868896 0.544769\n0.266052 0.868988 0.544952\n0.284943 0.869049 0.545166\n0.304382 0.869110 0.545319\n0.324585 0.869171 0.545532\n0.345947 0.869263 0.545715\n0.368683 0.869293 0.545929\n0.393036 0.869385 0.546112\n0.419495 0.869446 0.546265\n0.448303 0.869568 0.546478\n0.479523 0.869720 0.546631\n0.513855 0.869781 0.546814\n0.550995 0.869873 0.546967\n0.590942 0.869995 0.547150\n0.633270 0.870087 0.547272\n0.677887 0.870087 0.547455\n0.724182 0.870148 0.547607\n0.771912 0.870178 0.547729\n0.820740 0.870270 0.547913\n0.870392 0.870331 0.548004\n0.915527 0.870331 0.548157\n0.000000 0.915527 0.542877\n0.017609 0.915527 0.543030\n0.043091 0.915527 0.543304\n0.075684 0.915527 0.543488\n0.101929 0.915527 0.543701\n0.126526 0.915527 0.543945\n0.149597 0.915527 0.544128\n0.171143 0.915527 0.544342\n0.191589 0.915527 0.544556\n0.211090 0.915527 0.544769\n0.229950 0.915527 0.544952\n0.248566 0.915527 0.545166\n0.267090 0.915527 0.545288\n0.285858 0.915527 0.545532\n0.305389 0.915527 0.545715\n0.325470 0.915527 0.545929\n0.346863 0.915527 0.546112\n0.369629 0.915527 0.546265\n0.393982 0.915527 0.546448\n0.420380 0.915527 0.546631\n0.449005 0.915527 0.546814\n0.480316 0.915527 0.546936\n0.514496 0.915527 0.547119\n0.551605 0.915527 0.547272\n0.591675 0.915527 0.547455\n0.634003 0.915527 0.547607\n0.678253 0.915527 0.547729\n0.724518 0.915527 0.547882\n0.772186 0.915527 0.548004\n0.820984 0.915527 0.548157\n0.870453 0.915527 0.548279\n0.915527 0.915527 0.548401\n0.000000 0.000000 0.552277\n0.000000 0.000000 0.552429\n0.000000 0.000000 0.552551\n0.003479 0.000000 0.552673\n0.030182 0.000000 0.552856\n0.063782 0.000000 0.552948\n0.092834 0.000000 0.553101\n0.119812 0.000000 0.553253\n0.145111 0.000000 0.553406\n0.168701 0.000000 0.553589\n0.190826 0.000000 0.553741\n0.212189 0.000000 0.553925\n0.232758 0.000000 0.554108\n0.252899 0.000000 0.554260\n0.273132 0.000000 0.554443\n0.293945 0.000000 0.554596\n0.315491 0.000000 0.554810\n0.338348 0.000000 0.554993\n0.362732 0.000000 0.555176\n0.389069 0.000000 0.555359\n0.417816 0.000000 0.555573\n0.449280 0.000000 0.555786\n0.483765 0.000000 0.555939\n0.521881 0.000000 0.556183\n0.563629 0.000000 0.556366\n0.608521 0.000000 0.556580\n0.656311 0.000000 0.556793\n0.706299 0.000000 0.557007\n0.758087 0.000000 0.557220\n0.811371 0.000000 0.557434\n0.865601 0.000000 0.557648\n0.915527 0.000031 0.557861\n0.000000 0.000000 0.552551\n0.000000 0.000000 0.552673\n0.000000 0.000000 0.552856\n0.004761 0.000000 0.552948\n0.031647 0.000000 0.553101\n0.065308 0.000000 0.553253\n0.094208 0.000000 0.553406\n0.121338 0.000000 0.553589\n0.146332 0.000000 0.553741\n0.169830 0.000000 0.553925\n0.191895 0.000214 0.554108\n0.213165 0.001221 0.554260\n0.233612 0.002319 0.554413\n0.253845 0.003418 0.554596\n0.274048 0.004639 0.554810\n0.294891 0.005768 0.554962\n0.316406 0.007019 0.555176\n0.339142 0.008209 0.555328\n0.363647 0.009613 0.555542\n0.390076 0.010956 0.555786\n0.418640 0.012268 0.555939\n0.450073 0.013611 0.556152\n0.484741 0.015015 0.556366\n0.522858 0.016327 0.556549\n0.564606 0.017731 0.556793\n0.609436 0.019226 0.557007\n0.656891 0.020691 0.557220\n0.706818 0.022156 0.557404\n0.758484 0.023590 0.557617\n0.811615 0.025024 0.557861\n0.865784 0.026581 0.558044\n0.915527 0.028137 0.558258\n0.000000 0.017792 0.552856\n0.000000 0.018768 0.552948\n0.000000 0.019836 0.553101\n0.006226 0.020874 0.553223\n0.033264 0.021790 0.553406\n0.067017 0.022858 0.553589\n0.095795 0.023926 0.553741\n0.122711 0.025085 0.553925\n0.147614 0.026276 0.554108\n0.171021 0.027405 0.554260\n0.193024 0.028625 0.554413\n0.214203 0.029846 0.554596\n0.234528 0.031036 0.554779\n0.254822 0.032288 0.554962\n0.275024 0.033569 0.555176\n0.295746 0.034851 0.555328\n0.317383 0.036163 0.555542\n0.340118 0.037445 0.555756\n0.364471 0.038757 0.555908\n0.390808 0.040161 0.556152\n0.419586 0.041473 0.556335\n0.451050 0.042877 0.556549\n0.485779 0.044281 0.556793\n0.523865 0.045654 0.556976\n0.565552 0.048126 0.557190\n0.610291 0.050568 0.557404\n0.657745 0.053131 0.557617\n0.707581 0.055817 0.557861\n0.759125 0.058502 0.558044\n0.812012 0.060303 0.558258\n0.865906 0.061859 0.558502\n0.915527 0.063507 0.558746\n0.000000 0.048248 0.553101\n0.000000 0.049988 0.553223\n0.000000 0.051910 0.553406\n0.007812 0.053589 0.553558\n0.034912 0.055573 0.553711\n0.068756 0.057617 0.553894\n0.097412 0.059265 0.554077\n0.124115 0.060516 0.554230\n0.149017 0.061829 0.554413\n0.172211 0.062897 0.554565\n0.194122 0.064331 0.554779\n0.215302 0.065674 0.554962\n0.235535 0.066925 0.555176\n0.255676 0.068329 0.555328\n0.276001 0.069763 0.555542\n0.296600 0.071167 0.555756\n0.318237 0.072571 0.555908\n0.341095 0.074005 0.556122\n0.365387 0.075500 0.556335\n0.391815 0.076935 0.556549\n0.420593 0.078339 0.556763\n0.452087 0.079834 0.556976\n0.486725 0.081329 0.557190\n0.524780 0.082794 0.557404\n0.566315 0.084351 0.557617\n0.610992 0.085815 0.557861\n0.658386 0.087311 0.558044\n0.708099 0.088867 0.558258\n0.759521 0.090332 0.558502\n0.812439 0.091919 0.558746\n0.866028 0.093414 0.558960\n0.915527 0.094879 0.559174\n0.000000 0.084473 0.553406\n0.000000 0.085602 0.553558\n0.000000 0.086578 0.553711\n0.009460 0.087708 0.553894\n0.036591 0.088959 0.554077\n0.070557 0.090057 0.554230\n0.099030 0.091156 0.554413\n0.125763 0.092407 0.554565\n0.150452 0.093658 0.554779\n0.173462 0.094879 0.554962\n0.195312 0.096161 0.555176\n0.216400 0.097290 0.555298\n0.236603 0.098572 0.555542\n0.256622 0.099915 0.555756\n0.276855 0.101227 0.555908\n0.297546 0.102600 0.556122\n0.319092 0.103943 0.556335\n0.342010 0.105194 0.556519\n0.366394 0.106476 0.556763\n0.392822 0.107849 0.556976\n0.421631 0.109192 0.557190\n0.453125 0.110626 0.557373\n0.487640 0.112030 0.557587\n0.525696 0.113434 0.557861\n0.567291 0.114807 0.558014\n0.611969 0.116241 0.558228\n0.659241 0.117676 0.558502\n0.708862 0.119080 0.558746\n0.760071 0.120209 0.558929\n0.812683 0.121704 0.559174\n0.866241 0.123108 0.559418\n0.915527 0.124512 0.559601\n0.000000 0.115173 0.553711\n0.000000 0.116272 0.553894\n0.000000 0.117188 0.554077\n0.011200 0.118286 0.554230\n0.038391 0.119415 0.554382\n0.072449 0.120453 0.554565\n0.100830 0.121552 0.554779\n0.127228 0.122711 0.554932\n0.151794 0.123932 0.555145\n0.174774 0.125061 0.555298\n0.196472 0.126129 0.555542\n0.217316 0.127319 0.555725\n0.237671 0.128571 0.555908\n0.257660 0.129822 0.556122\n0.277771 0.130829 0.556335\n0.298553 0.132111 0.556519\n0.320099 0.133392 0.556763\n0.342896 0.134644 0.556946\n0.367432 0.135834 0.557190\n0.393860 0.136993 0.557373\n0.422668 0.138245 0.557587\n0.454163 0.139526 0.557861\n0.488708 0.140808 0.558014\n0.526733 0.141907 0.558228\n0.568359 0.143219 0.558472\n0.612854 0.144470 0.558716\n0.660095 0.145782 0.558929\n0.709381 0.147095 0.559174\n0.760620 0.148254 0.559387\n0.813110 0.149475 0.559601\n0.866547 0.150726 0.559845\n0.915527 0.152039 0.560059\n0.000000 0.144012 0.554047\n0.000000 0.144806 0.554230\n0.000000 0.145905 0.554382\n0.012970 0.146942 0.554565\n0.040222 0.147766 0.554749\n0.074432 0.148865 0.554932\n0.102631 0.149902 0.555145\n0.128815 0.150848 0.555298\n0.153168 0.151947 0.555542\n0.176056 0.152954 0.555725\n0.197876 0.153992 0.555878\n0.218506 0.155090 0.556122\n0.238739 0.156250 0.556305\n0.258728 0.157196 0.556519\n0.278809 0.158325 0.556732\n0.299591 0.159485 0.556946\n0.321106 0.160400 0.557190\n0.343903 0.161560 0.557373\n0.368469 0.162750 0.557587\n0.394867 0.163727 0.557861\n0.423676 0.164856 0.558014\n0.455231 0.166077 0.558228\n0.489716 0.167236 0.558472\n0.527740 0.168213 0.558716\n0.569336 0.169403 0.558899\n0.613617 0.170563 0.559174\n0.660736 0.171692 0.559387\n0.710175 0.172760 0.559570\n0.761017 0.173920 0.559845\n0.813477 0.175110 0.560059\n0.866699 0.176086 0.560333\n0.915527 0.177246 0.560516\n0.000000 0.170471 0.554382\n0.000000 0.171234 0.554535\n0.000000 0.172211 0.554749\n0.014954 0.173035 0.554932\n0.041992 0.173981 0.555145\n0.076447 0.174896 0.555298\n0.104279 0.175781 0.555542\n0.130493 0.176819 0.555725\n0.154724 0.177582 0.555878\n0.177551 0.178650 0.556091\n0.199066 0.179535 0.556305\n0.219788 0.180481 0.556519\n0.239868 0.181610 0.556732\n0.259796 0.182434 0.556946\n0.279907 0.183441 0.557190\n0.300629 0.184570 0.557373\n0.322144 0.185425 0.557587\n0.344940 0.186462 0.557831\n0.369446 0.187531 0.558014\n0.395905 0.188385 0.558228\n0.424683 0.189514 0.558472\n0.456085 0.190369 0.558716\n0.490784 0.191437 0.558899\n0.528839 0.192535 0.559143\n0.570099 0.193420 0.559387\n0.614563 0.194489 0.559570\n0.661591 0.195618 0.559814\n0.710663 0.196472 0.560059\n0.761658 0.197571 0.560303\n0.813782 0.198578 0.560486\n0.866821 0.199463 0.560760\n0.915527 0.200531 0.560974\n0.000000 0.194794 0.554749\n0.000000 0.195709 0.554932\n0.000000 0.196381 0.555145\n0.016907 0.197296 0.555298\n0.044098 0.198029 0.555511\n0.078247 0.198944 0.555725\n0.106201 0.199707 0.555878\n0.132141 0.200623 0.556091\n0.156250 0.201385 0.556305\n0.178925 0.202332 0.556519\n0.200409 0.203247 0.556732\n0.220856 0.204071 0.556946\n0.240967 0.205048 0.557159\n0.260895 0.205841 0.557373\n0.280945 0.206818 0.557556\n0.301666 0.207581 0.557831\n0.323212 0.208588 0.558014\n0.346008 0.209442 0.558197\n0.370392 0.210358 0.558441\n0.396851 0.211365 0.558716\n0.425629 0.212158 0.558899\n0.457184 0.213165 0.559143\n0.491791 0.213898 0.559357\n0.529907 0.214935 0.559570\n0.571167 0.215851 0.559814\n0.615509 0.216736 0.560028\n0.662415 0.217743 0.560303\n0.711456 0.218506 0.560486\n0.762085 0.219513 0.560760\n0.814026 0.220306 0.560974\n0.867004 0.221313 0.561157\n0.915527 0.222260 0.561432\n0.000000 0.217651 0.555145\n0.000000 0.218292 0.555298\n0.000000 0.219055 0.555511\n0.018890 0.219788 0.555725\n0.046326 0.220490 0.555878\n0.080353 0.221344 0.556091\n0.108154 0.222046 0.556274\n0.133820 0.222900 0.556519\n0.157684 0.223572 0.556732\n0.180267 0.224457 0.556915\n0.201660 0.225159 0.557159\n0.222107 0.226074 0.557373\n0.242126 0.226776 0.557556\n0.262024 0.227722 0.557831\n0.282013 0.228546 0.558014\n0.302521 0.229340 0.558197\n0.324280 0.230042 0.558441\n0.347076 0.230988 0.558685\n0.371429 0.231873 0.558899\n0.397888 0.232635 0.559143\n0.426758 0.233582 0.559357\n0.458282 0.234314 0.559570\n0.492798 0.235168 0.559814\n0.530762 0.235901 0.560028\n0.572174 0.236877 0.560303\n0.616486 0.237579 0.560486\n0.663116 0.238525 0.560730\n0.711975 0.239227 0.560944\n0.762604 0.240173 0.561157\n0.814392 0.240906 0.561432\n0.867126 0.241821 0.561676\n0.915527 0.242523 0.561859\n0.000000 0.238892 0.555511\n0.000000 0.239624 0.555725\n0.000000 0.240326 0.555878\n0.021027 0.240967 0.556091\n0.049927 0.241760 0.556274\n0.082428 0.242371 0.556519\n0.109955 0.243225 0.556732\n0.135559 0.243866 0.556915\n0.159393 0.244629 0.557159\n0.181641 0.245331 0.557373\n0.202942 0.245972 0.557556\n0.223389 0.246826 0.557800\n0.243286 0.247498 0.558014\n0.263092 0.248322 0.558197\n0.283112 0.248962 0.558441\n0.303619 0.249847 0.558685\n0.325104 0.250549 0.558868\n0.348145 0.251434 0.559143\n0.372528 0.252045 0.559357\n0.399017 0.252930 0.559570\n0.427856 0.253571 0.559784\n0.459381 0.254517 0.560028\n0.493927 0.255157 0.560272\n0.531830 0.256042 0.560486\n0.573212 0.256744 0.560730\n0.617249 0.257416 0.560944\n0.664001 0.258240 0.561157\n0.712769 0.259033 0.561401\n0.763184 0.259796 0.561646\n0.814880 0.260559 0.561859\n0.867249 0.261322 0.562103\n0.915527 0.261963 0.562347\n0.000000 0.259338 0.555878\n0.000000 0.259888 0.556091\n0.000000 0.260620 0.556274\n0.023132 0.261261 0.556519\n0.053558 0.261810 0.556732\n0.084625 0.262634 0.556915\n0.111847 0.263184 0.557159\n0.137268 0.263977 0.557343\n0.160919 0.264618 0.557526\n0.183197 0.265228 0.557800\n0.204254 0.266052 0.558014\n0.224548 0.266632 0.558197\n0.244476 0.267456 0.558441\n0.264221 0.268066 0.558655\n0.284210 0.268829 0.558868\n0.304688 0.269531 0.559113\n0.326202 0.270142 0.559326\n0.349121 0.270966 0.559570\n0.373596 0.271606 0.559784\n0.400085 0.272400 0.559998\n0.428955 0.273041 0.560272\n0.460480 0.273895 0.560486\n0.494995 0.274506 0.560730\n0.532959 0.275299 0.560944\n0.574158 0.275970 0.561157\n0.618164 0.276672 0.561401\n0.664917 0.277435 0.561646\n0.713318 0.278015 0.561859\n0.763580 0.278870 0.562103\n0.815155 0.279510 0.562347\n0.867462 0.280334 0.562531\n0.915527 0.280945 0.562805\n0.000000 0.279022 0.556274\n0.000000 0.279602 0.556488\n0.000000 0.280334 0.556732\n0.025269 0.280853 0.556885\n0.057373 0.281494 0.557129\n0.086700 0.282196 0.557343\n0.113861 0.282745 0.557526\n0.139069 0.283539 0.557800\n0.162384 0.284088 0.558014\n0.184601 0.284698 0.558197\n0.205505 0.285461 0.558411\n0.225830 0.286011 0.558655\n0.245605 0.286835 0.558868\n0.265259 0.287354 0.559113\n0.285309 0.288208 0.559326\n0.305786 0.288818 0.559570\n0.327301 0.289429 0.559784\n0.350189 0.290192 0.559998\n0.374725 0.290771 0.560272\n0.401184 0.291565 0.560486\n0.430054 0.292175 0.560699\n0.461609 0.292877 0.560944\n0.496094 0.293549 0.561157\n0.533997 0.294159 0.561371\n0.575043 0.294952 0.561646\n0.619171 0.295532 0.561829\n0.665527 0.296234 0.562103\n0.714111 0.296906 0.562347\n0.764252 0.297516 0.562531\n0.815430 0.298340 0.562805\n0.867615 0.298889 0.563019\n0.915527 0.299713 0.563202\n0.000000 0.298523 0.556702\n0.000000 0.299072 0.556885\n0.001373 0.299835 0.557129\n0.027527 0.300323 0.557343\n0.060211 0.301086 0.557526\n0.088928 0.301605 0.557800\n0.115875 0.302155 0.558014\n0.140717 0.302917 0.558197\n0.164124 0.303467 0.558411\n0.186005 0.304047 0.558655\n0.206848 0.304810 0.558868\n0.227051 0.305328 0.559082\n0.246796 0.306122 0.559326\n0.266449 0.306702 0.559540\n0.286438 0.307190 0.559784\n0.306915 0.308014 0.559998\n0.328369 0.308563 0.560242\n0.351257 0.309357 0.560486\n0.375854 0.309937 0.560699\n0.402313 0.310486 0.560913\n0.431152 0.311279 0.561157\n0.462708 0.311829 0.561371\n0.497162 0.312622 0.561646\n0.535095 0.313202 0.561829\n0.576080 0.313751 0.562073\n0.620117 0.314545 0.562347\n0.666412 0.315125 0.562531\n0.714630 0.315887 0.562775\n0.764648 0.316467 0.562988\n0.815887 0.317139 0.563202\n0.867920 0.317749 0.563477\n0.915527 0.318359 0.563690\n0.000000 0.318176 0.557129\n0.000000 0.318695 0.557343\n0.003479 0.319397 0.557526\n0.029724 0.319946 0.557770\n0.062653 0.320679 0.558014\n0.091095 0.321198 0.558167\n0.117859 0.321716 0.558411\n0.142609 0.322479 0.558655\n0.165619 0.322998 0.558868\n0.187378 0.323700 0.559082\n0.208313 0.324310 0.559296\n0.228333 0.324829 0.559540\n0.247955 0.325623 0.559784\n0.267639 0.326172 0.559998\n0.287354 0.326691 0.560242\n0.307983 0.327484 0.560455\n0.329498 0.328003 0.560699\n0.352264 0.328796 0.560913\n0.376923 0.329346 0.561157\n0.403381 0.329895 0.561371\n0.432251 0.330658 0.561615\n0.463623 0.331238 0.561829\n0.498291 0.331879 0.562073\n0.536194 0.332550 0.562317\n0.577148 0.333069 0.562531\n0.620850 0.333862 0.562775\n0.667053 0.334381 0.562988\n0.715363 0.335114 0.563171\n0.765289 0.335754 0.563446\n0.816193 0.336273 0.563690\n0.868103 0.336975 0.563873\n0.915527 0.337585 0.564117\n0.000000 0.338379 0.557526\n0.000000 0.338989 0.557770\n0.005585 0.339508 0.557983\n0.032104 0.340210 0.558167\n0.065125 0.340759 0.558411\n0.093292 0.341248 0.558624\n0.119720 0.342010 0.558868\n0.144287 0.342529 0.559082\n0.167358 0.343079 0.559296\n0.189026 0.343842 0.559540\n0.209595 0.344360 0.559784\n0.229584 0.345093 0.559967\n0.249176 0.345642 0.560242\n0.268616 0.346161 0.560455\n0.288483 0.346924 0.560669\n0.309113 0.347473 0.560913\n0.330627 0.348022 0.561157\n0.353394 0.348785 0.561371\n0.378052 0.349304 0.561615\n0.404541 0.350098 0.561829\n0.433228 0.350647 0.562073\n0.464722 0.351196 0.562317\n0.499359 0.351929 0.562531\n0.537262 0.352478 0.562775\n0.578156 0.353058 0.562988\n0.621826 0.353790 0.563171\n0.667938 0.354340 0.563446\n0.715973 0.355103 0.563660\n0.765717 0.355621 0.563843\n0.816498 0.356140 0.564117\n0.868225 0.356873 0.564331\n0.915527 0.357391 0.564545\n0.000000 0.359314 0.557983\n0.000000 0.360046 0.558167\n0.007812 0.360565 0.558411\n0.034302 0.361084 0.558624\n0.067444 0.361816 0.558868\n0.095459 0.362335 0.559082\n0.121735 0.363068 0.559296\n0.146118 0.363617 0.559509\n0.168915 0.364136 0.559784\n0.190430 0.364899 0.559967\n0.210968 0.365387 0.560211\n0.230804 0.365967 0.560455\n0.250397 0.366699 0.560669\n0.269836 0.367279 0.560883\n0.289612 0.368011 0.561157\n0.310211 0.368561 0.561340\n0.331726 0.369080 0.561615\n0.354523 0.369843 0.561829\n0.378967 0.370361 0.562073\n0.405670 0.370911 0.562317\n0.434265 0.371704 0.562531\n0.465790 0.372253 0.562744\n0.500549 0.372955 0.562958\n0.538116 0.373535 0.563171\n0.579102 0.374023 0.563446\n0.622803 0.374817 0.563660\n0.668793 0.375336 0.563843\n0.716644 0.375885 0.564117\n0.766113 0.376587 0.564331\n0.816833 0.377136 0.564545\n0.868408 0.377838 0.564758\n0.915527 0.378387 0.565216\n0.000000 0.381653 0.558411\n0.000000 0.382202 0.558624\n0.010162 0.382904 0.558838\n0.036682 0.383423 0.559052\n0.069855 0.383972 0.559296\n0.097687 0.384674 0.559509\n0.123779 0.385223 0.559753\n0.147919 0.385864 0.559967\n0.170593 0.386505 0.560211\n0.191864 0.387054 0.560455\n0.212341 0.387695 0.560669\n0.232025 0.388336 0.560883\n0.251556 0.388824 0.561157\n0.271057 0.389648 0.561340\n0.290802 0.390137 0.561584\n0.311340 0.390839 0.561829\n0.332825 0.391449 0.562042\n0.355652 0.391968 0.562286\n0.380066 0.392670 0.562531\n0.406555 0.393311 0.562744\n0.435425 0.393829 0.562958\n0.466888 0.394592 0.563171\n0.501526 0.395142 0.563446\n0.539154 0.395782 0.563660\n0.579987 0.396393 0.563843\n0.623627 0.396912 0.564117\n0.669434 0.397705 0.564331\n0.717194 0.398224 0.564545\n0.766693 0.398743 0.564728\n0.817261 0.399445 0.565155\n0.868469 0.399994 0.565399\n0.915527 0.400482 0.565613\n0.000000 0.405334 0.558838\n0.000000 0.406097 0.559052\n0.012543 0.406616 0.559265\n0.038940 0.407196 0.559509\n0.072327 0.407837 0.559753\n0.099915 0.408386 0.559967\n0.125793 0.409180 0.560211\n0.149658 0.409668 0.560425\n0.172180 0.410217 0.560638\n0.193481 0.410980 0.560883\n0.213623 0.411530 0.561127\n0.233307 0.412048 0.561340\n0.252777 0.412842 0.561584\n0.272278 0.413361 0.561798\n0.291870 0.414124 0.562042\n0.312439 0.414642 0.562286\n0.333923 0.415192 0.562500\n0.356720 0.415955 0.562744\n0.381134 0.416504 0.562958\n0.407654 0.417023 0.563171\n0.436523 0.417786 0.563416\n0.468048 0.418335 0.563629\n0.502472 0.419098 0.563812\n0.540253 0.419586 0.564117\n0.580963 0.420135 0.564301\n0.624420 0.420898 0.564514\n0.670258 0.421417 0.564728\n0.717957 0.421906 0.565155\n0.767120 0.422638 0.565399\n0.817505 0.423157 0.565613\n0.868652 0.423676 0.565826\n0.915527 0.424408 0.566010\n0.000000 0.431122 0.559265\n0.000000 0.431610 0.559509\n0.014832 0.432343 0.559753\n0.041351 0.432892 0.559967\n0.074738 0.433441 0.560181\n0.102081 0.434204 0.560425\n0.127716 0.434723 0.560638\n0.151581 0.435272 0.560883\n0.173706 0.436005 0.561127\n0.194916 0.436584 0.561340\n0.215057 0.437317 0.561584\n0.234650 0.437866 0.561798\n0.253967 0.438416 0.562042\n0.273254 0.439178 0.562286\n0.292938 0.439728 0.562500\n0.313568 0.440277 0.562714\n0.335022 0.441010 0.562958\n0.357788 0.441559 0.563171\n0.382202 0.442322 0.563416\n0.408722 0.442841 0.563629\n0.437592 0.443390 0.563812\n0.469116 0.444122 0.564087\n0.503540 0.444672 0.564301\n0.541290 0.445221 0.564514\n0.582001 0.445953 0.564728\n0.625336 0.446442 0.565155\n0.670868 0.447113 0.565369\n0.718445 0.447693 0.565613\n0.767578 0.448242 0.565826\n0.817810 0.448914 0.566010\n0.868774 0.449463 0.566223\n0.915527 0.449951 0.566467\n0.000000 0.458954 0.559723\n0.000000 0.459534 0.559967\n0.017212 0.460052 0.560181\n0.043640 0.460785 0.560394\n0.077087 0.461304 0.560638\n0.104279 0.461884 0.560852\n0.129669 0.462616 0.561127\n0.153198 0.463196 0.561340\n0.175415 0.463928 0.561554\n0.196320 0.464478 0.561798\n0.216492 0.465057 0.562012\n0.235779 0.465790 0.562256\n0.255157 0.466339 0.562500\n0.274414 0.466858 0.562714\n0.294098 0.467621 0.562927\n0.314484 0.468170 0.563141\n0.336121 0.468903 0.563416\n0.358948 0.469482 0.563629\n0.383331 0.469971 0.563812\n0.409851 0.470764 0.564087\n0.438721 0.471252 0.564301\n0.470184 0.471863 0.564514\n0.504608 0.472534 0.564728\n0.542297 0.473083 0.565125\n0.582977 0.473572 0.565369\n0.626129 0.474304 0.565613\n0.671692 0.474823 0.565796\n0.719116 0.475525 0.566010\n0.768097 0.476044 0.566223\n0.817993 0.476532 0.566437\n0.869080 0.477234 0.566650\n0.915527 0.477722 0.566833\n0.000000 0.489288 0.560181\n0.000000 0.489807 0.560394\n0.019684 0.490387 0.560638\n0.046387 0.491089 0.560852\n0.079681 0.491608 0.561096\n0.106506 0.492401 0.561340\n0.131653 0.492920 0.561554\n0.155060 0.493500 0.561768\n0.176971 0.494202 0.562012\n0.197876 0.494781 0.562256\n0.217804 0.495544 0.562500\n0.237152 0.496033 0.562714\n0.256317 0.496613 0.562927\n0.275574 0.497345 0.563141\n0.295227 0.497925 0.563416\n0.315552 0.498383 0.563599\n0.337006 0.499176 0.563812\n0.359863 0.499664 0.564087\n0.384430 0.500366 0.564301\n0.410950 0.500946 0.564514\n0.439789 0.501495 0.564697\n0.471252 0.502075 0.565125\n0.505646 0.502716 0.565369\n0.543213 0.503265 0.565582\n0.583679 0.503967 0.565796\n0.626953 0.504517 0.565979\n0.672485 0.504944 0.566223\n0.719666 0.505676 0.566437\n0.768463 0.506165 0.566650\n0.818481 0.506653 0.566833\n0.869232 0.507324 0.567047\n0.915527 0.507843 0.567230\n0.000000 0.522430 0.560608\n0.000000 0.522980 0.560822\n0.022125 0.523468 0.561096\n0.050385 0.524261 0.561340\n0.082062 0.524780 0.561554\n0.108643 0.525299 0.561768\n0.133636 0.526093 0.562012\n0.156738 0.526581 0.562256\n0.178680 0.527313 0.562469\n0.199310 0.527863 0.562714\n0.219116 0.528412 0.562927\n0.238495 0.529144 0.563141\n0.257507 0.529663 0.563385\n0.276642 0.530182 0.563599\n0.296326 0.530945 0.563812\n0.316650 0.531433 0.564056\n0.338104 0.532013 0.564270\n0.360931 0.532715 0.564514\n0.385498 0.533234 0.564697\n0.411987 0.533875 0.565125\n0.440887 0.534454 0.565369\n0.472260 0.535004 0.565582\n0.506683 0.535675 0.565796\n0.544128 0.536194 0.565979\n0.584686 0.536682 0.566193\n0.627838 0.537201 0.566437\n0.673065 0.537872 0.566650\n0.720306 0.538330 0.566833\n0.769073 0.538879 0.567047\n0.818756 0.539459 0.567200\n0.869385 0.539948 0.567444\n0.915527 0.540405 0.567596\n0.000000 0.558502 0.561096\n0.000000 0.559174 0.561310\n0.024475 0.559723 0.561554\n0.054810 0.560242 0.561768\n0.084412 0.560883 0.561981\n0.110840 0.561523 0.562256\n0.135559 0.562012 0.562469\n0.158539 0.562744 0.562683\n0.180115 0.563263 0.562927\n0.200684 0.563782 0.563141\n0.220398 0.564484 0.563385\n0.239624 0.565033 0.563599\n0.258636 0.565491 0.563812\n0.277710 0.566223 0.564056\n0.297424 0.566772 0.564270\n0.317719 0.567200 0.564514\n0.339172 0.567932 0.564697\n0.361969 0.568451 0.565125\n0.386566 0.568909 0.565338\n0.413086 0.569641 0.565582\n0.441864 0.570099 0.565796\n0.473206 0.570587 0.565979\n0.507599 0.571289 0.566193\n0.545135 0.571747 0.566406\n0.585632 0.572174 0.566650\n0.628632 0.572876 0.566833\n0.673859 0.573334 0.567017\n0.720734 0.573730 0.567200\n0.769440 0.574402 0.567444\n0.819000 0.574799 0.567566\n0.869446 0.575256 0.567749\n0.915527 0.575714 0.567963\n0.000000 0.597412 0.561523\n0.001587 0.598175 0.561768\n0.026947 0.598633 0.561981\n0.058868 0.599152 0.562225\n0.086700 0.599823 0.562469\n0.112976 0.600281 0.562683\n0.137421 0.600800 0.562927\n0.160248 0.601471 0.563141\n0.181641 0.601990 0.563385\n0.202026 0.602448 0.563599\n0.221649 0.603149 0.563812\n0.240906 0.603577 0.564056\n0.259827 0.604065 0.564270\n0.278870 0.604767 0.564514\n0.298523 0.605225 0.564697\n0.318787 0.605713 0.565063\n0.340210 0.606323 0.565338\n0.363037 0.606812 0.565582\n0.387573 0.607239 0.565796\n0.414062 0.607727 0.565979\n0.442749 0.608337 0.566193\n0.474182 0.608795 0.566406\n0.508575 0.609222 0.566620\n0.546112 0.609833 0.566803\n0.586365 0.610291 0.567017\n0.629333 0.610687 0.567200\n0.674408 0.611115 0.567444\n0.721405 0.611755 0.567566\n0.769775 0.612152 0.567749\n0.819214 0.612488 0.567963\n0.869629 0.612885 0.568115\n0.915527 0.613495 0.568298\n0.000000 0.638947 0.561981\n0.003815 0.639404 0.562225\n0.029419 0.639832 0.562469\n0.061371 0.640503 0.562683\n0.089050 0.640930 0.562927\n0.115112 0.641357 0.563141\n0.139343 0.641815 0.563354\n0.161926 0.642456 0.563568\n0.183289 0.642883 0.563812\n0.203400 0.643311 0.564026\n0.222931 0.643951 0.564240\n0.242065 0.644409 0.564484\n0.260925 0.644806 0.564697\n0.279968 0.645477 0.565063\n0.299561 0.645874 0.565338\n0.319855 0.646240 0.565552\n0.341248 0.646698 0.565796\n0.364044 0.647308 0.565979\n0.388519 0.647736 0.566193\n0.414948 0.648102 0.566406\n0.443756 0.648499 0.566620\n0.475220 0.649139 0.566803\n0.509552 0.649475 0.567017\n0.546936 0.649811 0.567200\n0.587250 0.650299 0.567413\n0.630219 0.650787 0.567566\n0.675140 0.651123 0.567749\n0.721893 0.651489 0.567963\n0.770081 0.651855 0.568115\n0.819580 0.652435 0.568298\n0.869720 0.652740 0.568481\n0.915527 0.653076 0.568665\n0.000000 0.682220 0.562469\n0.006165 0.682861 0.562653\n0.031830 0.683228 0.562897\n0.063995 0.683624 0.563141\n0.091400 0.683960 0.563354\n0.117157 0.684540 0.563568\n0.141083 0.684937 0.563812\n0.163544 0.685333 0.564026\n0.184723 0.685730 0.564240\n0.204926 0.686249 0.564484\n0.224152 0.686646 0.564697\n0.243286 0.687042 0.565063\n0.262085 0.687378 0.565338\n0.281036 0.687988 0.565552\n0.300659 0.688324 0.565796\n0.320892 0.688660 0.565979\n0.342346 0.689026 0.566162\n0.365051 0.689331 0.566376\n0.389496 0.689911 0.566620\n0.415955 0.690247 0.566803\n0.444794 0.690552 0.567017\n0.476227 0.690887 0.567169\n0.510498 0.691498 0.567413\n0.547821 0.691772 0.567566\n0.588135 0.692108 0.567749\n0.630798 0.692383 0.567963\n0.675629 0.692719 0.568115\n0.722412 0.693207 0.568298\n0.770630 0.693451 0.568481\n0.819885 0.693756 0.568634\n0.869781 0.694092 0.568817\n0.915527 0.694366 0.569000\n0.000000 0.727356 0.562897\n0.008545 0.727661 0.563141\n0.034210 0.727966 0.563354\n0.066345 0.728271 0.563568\n0.093811 0.728821 0.563812\n0.119263 0.729187 0.564026\n0.142975 0.729462 0.564240\n0.165222 0.729767 0.564484\n0.186127 0.730072 0.564697\n0.206238 0.730438 0.565002\n0.225403 0.730865 0.565338\n0.244415 0.731171 0.565552\n0.263184 0.731506 0.565765\n0.282135 0.731781 0.565979\n0.301666 0.732147 0.566162\n0.321838 0.732574 0.566376\n0.343384 0.732819 0.566589\n0.366089 0.733124 0.566772\n0.390472 0.733398 0.566986\n0.416962 0.733734 0.567169\n0.445801 0.734161 0.567413\n0.477142 0.734436 0.567535\n0.511383 0.734711 0.567749\n0.548737 0.734955 0.567932\n0.588959 0.735138 0.568115\n0.631622 0.735596 0.568298\n0.676392 0.735870 0.568451\n0.722900 0.736145 0.568634\n0.770905 0.736359 0.568817\n0.820129 0.736572 0.568970\n0.869873 0.736786 0.569122\n0.915527 0.737030 0.569305\n0.000000 0.773560 0.563324\n0.010925 0.773773 0.563538\n0.036591 0.774048 0.563812\n0.068970 0.774261 0.563995\n0.096008 0.774506 0.564209\n0.121277 0.774750 0.564484\n0.144836 0.775177 0.564697\n0.166779 0.775452 0.565002\n0.187653 0.775665 0.565338\n0.207550 0.775879 0.565521\n0.226776 0.776123 0.565765\n0.245575 0.776337 0.565948\n0.264282 0.776764 0.566162\n0.283203 0.777008 0.566376\n0.302490 0.777222 0.566589\n0.322784 0.777466 0.566772\n0.344147 0.777649 0.566986\n0.367004 0.777863 0.567169\n0.391479 0.778076 0.567413\n0.417969 0.778259 0.567535\n0.446655 0.778625 0.567749\n0.477966 0.778839 0.567932\n0.512177 0.779114 0.568115\n0.549652 0.779266 0.568268\n0.589630 0.779449 0.568451\n0.632233 0.779633 0.568634\n0.676849 0.779816 0.568817\n0.723267 0.780029 0.568970\n0.771210 0.780334 0.569092\n0.820282 0.780518 0.569305\n0.869995 0.780701 0.569427\n0.915527 0.780853 0.569580\n0.000000 0.820496 0.563782\n0.013306 0.820648 0.563995\n0.038910 0.820831 0.564209\n0.071350 0.820923 0.564453\n0.098175 0.821136 0.564697\n0.123077 0.821381 0.565002\n0.146423 0.821716 0.565338\n0.168488 0.821808 0.565521\n0.189087 0.821960 0.565765\n0.208801 0.822144 0.565948\n0.227875 0.822296 0.566162\n0.246674 0.822449 0.566376\n0.265320 0.822540 0.566589\n0.284241 0.822754 0.566772\n0.303528 0.822906 0.566986\n0.323700 0.823151 0.567169\n0.345123 0.823395 0.567383\n0.367859 0.823517 0.567535\n0.392456 0.823700 0.567719\n0.418854 0.823792 0.567932\n0.447479 0.823944 0.568115\n0.478882 0.824036 0.568268\n0.513123 0.824158 0.568451\n0.550232 0.824310 0.568634\n0.590454 0.824402 0.568817\n0.632874 0.824554 0.568970\n0.677429 0.824768 0.569092\n0.723877 0.825012 0.569275\n0.771698 0.825104 0.569427\n0.820496 0.825165 0.569580\n0.870178 0.825287 0.569733\n0.915527 0.825409 0.569855\n0.000000 0.867798 0.564209\n0.015594 0.867981 0.564453\n0.041290 0.868164 0.564697\n0.073639 0.868286 0.564941\n0.100372 0.868378 0.565338\n0.125061 0.868469 0.565521\n0.148285 0.868561 0.565735\n0.169922 0.868622 0.565948\n0.190430 0.868713 0.566132\n0.210052 0.868744 0.566345\n0.229126 0.868835 0.566589\n0.247772 0.868958 0.566772\n0.266327 0.868988 0.566956\n0.285217 0.869110 0.567169\n0.304504 0.869110 0.567383\n0.324707 0.869202 0.567535\n0.346100 0.869263 0.567719\n0.368835 0.869354 0.567932\n0.393158 0.869385 0.568115\n0.419617 0.869446 0.568268\n0.448395 0.869568 0.568451\n0.479767 0.869720 0.568634\n0.513977 0.869873 0.568787\n0.551117 0.869934 0.568970\n0.591003 0.869995 0.569092\n0.633392 0.870087 0.569275\n0.677917 0.870148 0.569427\n0.724213 0.870178 0.569580\n0.771973 0.870239 0.569733\n0.820740 0.870270 0.569855\n0.870392 0.870331 0.570007\n0.915527 0.870361 0.570099\n0.000000 0.915527 0.564667\n0.018005 0.915527 0.564941\n0.043488 0.915527 0.565338\n0.075989 0.915527 0.565491\n0.102325 0.915527 0.565735\n0.126984 0.915527 0.565948\n0.149841 0.915527 0.566132\n0.171356 0.915527 0.566345\n0.191742 0.915527 0.566559\n0.211273 0.915527 0.566772\n0.230286 0.915527 0.566956\n0.248901 0.915527 0.567139\n0.267242 0.915527 0.567383\n0.286072 0.915527 0.567535\n0.305481 0.915527 0.567719\n0.325653 0.915527 0.567902\n0.347015 0.915527 0.568115\n0.369720 0.915527 0.568268\n0.394104 0.915527 0.568451\n0.420563 0.915527 0.568604\n0.449280 0.915527 0.568787\n0.480438 0.915527 0.568939\n0.514587 0.915527 0.569092\n0.551880 0.915527 0.569275\n0.591797 0.915527 0.569427\n0.634064 0.915527 0.569580\n0.678406 0.915527 0.569733\n0.724548 0.915527 0.569855\n0.772217 0.915527 0.569977\n0.821014 0.915527 0.570099\n0.870514 0.915527 0.570251\n0.915527 0.915527 0.570343\n0.000000 0.000000 0.576294\n0.000000 0.000000 0.576416\n0.000000 0.000000 0.576508\n0.003662 0.000000 0.576660\n0.030457 0.000000 0.576813\n0.064026 0.000000 0.576965\n0.093079 0.000000 0.577118\n0.120209 0.000000 0.577271\n0.145294 0.000000 0.577393\n0.168884 0.000000 0.577576\n0.191132 0.000000 0.577728\n0.212341 0.000000 0.577942\n0.232910 0.000000 0.578064\n0.253052 0.000000 0.578247\n0.273376 0.000000 0.578400\n0.294098 0.000000 0.578613\n0.315674 0.000000 0.578766\n0.338562 0.000000 0.579010\n0.362885 0.000000 0.579163\n0.389191 0.000000 0.579346\n0.417999 0.000000 0.579529\n0.449463 0.000000 0.579742\n0.483978 0.000000 0.579956\n0.522064 0.000000 0.580109\n0.563751 0.000000 0.580353\n0.608826 0.000000 0.580566\n0.656433 0.000000 0.580750\n0.706421 0.000000 0.580963\n0.758179 0.000000 0.581207\n0.811401 0.000000 0.581390\n0.865601 0.000000 0.581604\n0.915527 0.000458 0.581818\n0.000000 0.000000 0.576508\n0.000000 0.000000 0.576660\n0.000000 0.000000 0.576813\n0.005096 0.000000 0.576965\n0.032043 0.000000 0.577118\n0.065704 0.000000 0.577271\n0.094482 0.000000 0.577393\n0.121552 0.000000 0.577576\n0.146576 0.000000 0.577728\n0.170044 0.000000 0.577942\n0.192200 0.000641 0.578064\n0.213318 0.001678 0.578247\n0.233887 0.002808 0.578400\n0.253967 0.003876 0.578613\n0.274200 0.005096 0.578766\n0.295044 0.006348 0.578979\n0.316559 0.007568 0.579132\n0.339355 0.008820 0.579346\n0.363831 0.010101 0.579529\n0.390198 0.011414 0.579742\n0.418945 0.012726 0.579956\n0.450409 0.014069 0.580109\n0.484924 0.015442 0.580353\n0.523010 0.016907 0.580566\n0.564728 0.018341 0.580719\n0.609497 0.019745 0.580963\n0.657074 0.021210 0.581177\n0.706909 0.022614 0.581360\n0.758575 0.024078 0.581604\n0.811646 0.025635 0.581818\n0.865784 0.027161 0.582001\n0.915527 0.028687 0.582245\n0.000000 0.018250 0.576782\n0.000000 0.019165 0.576965\n0.000000 0.020111 0.577118\n0.006592 0.021179 0.577271\n0.033539 0.022278 0.577362\n0.067291 0.023315 0.577576\n0.096161 0.024475 0.577728\n0.122894 0.025421 0.577911\n0.147919 0.026581 0.578064\n0.171204 0.027802 0.578217\n0.193298 0.028992 0.578400\n0.214355 0.030212 0.578613\n0.234863 0.031464 0.578766\n0.254944 0.032684 0.578979\n0.275146 0.033966 0.579132\n0.295990 0.035248 0.579346\n0.317535 0.036560 0.579529\n0.340240 0.037872 0.579712\n0.364685 0.039215 0.579956\n0.391083 0.040527 0.580109\n0.419800 0.041962 0.580353\n0.451233 0.043274 0.580536\n0.485962 0.044678 0.580719\n0.524017 0.046661 0.580963\n0.565704 0.048828 0.581177\n0.610413 0.051636 0.581360\n0.657867 0.054352 0.581573\n0.707672 0.056946 0.581787\n0.759247 0.059265 0.582001\n0.812195 0.060822 0.582245\n0.865906 0.062378 0.582458\n0.915527 0.064056 0.582703\n0.000000 0.048706 0.577087\n0.000000 0.050598 0.577240\n0.000000 0.052460 0.577362\n0.008118 0.054474 0.577545\n0.035156 0.056519 0.577728\n0.069122 0.058319 0.577911\n0.097656 0.059662 0.578033\n0.124512 0.060944 0.578217\n0.149323 0.062195 0.578400\n0.172455 0.063568 0.578613\n0.194336 0.064941 0.578766\n0.215454 0.066223 0.578979\n0.235687 0.067596 0.579132\n0.255951 0.068787 0.579315\n0.276123 0.070221 0.579529\n0.296875 0.071625 0.579712\n0.318481 0.072998 0.579956\n0.341217 0.074463 0.580078\n0.365570 0.075958 0.580322\n0.391968 0.077362 0.580536\n0.420746 0.078827 0.580719\n0.452240 0.080322 0.580963\n0.486969 0.081787 0.581177\n0.525055 0.083282 0.581360\n0.566437 0.084808 0.581573\n0.611237 0.086304 0.581787\n0.658661 0.087799 0.582001\n0.708191 0.089325 0.582245\n0.759613 0.090820 0.582458\n0.812469 0.092377 0.582703\n0.866028 0.093903 0.582916\n0.915527 0.095398 0.583130\n0.000000 0.084839 0.577362\n0.000000 0.085999 0.577545\n0.000000 0.087067 0.577698\n0.009888 0.088074 0.577911\n0.036926 0.089325 0.578033\n0.070862 0.090515 0.578217\n0.099426 0.091736 0.578400\n0.125977 0.092834 0.578613\n0.150635 0.094055 0.578766\n0.173676 0.095306 0.578979\n0.195587 0.096588 0.579132\n0.216553 0.097870 0.579315\n0.236755 0.099121 0.579529\n0.256866 0.100342 0.579712\n0.277130 0.101654 0.579956\n0.297729 0.103027 0.580078\n0.319366 0.104340 0.580322\n0.342255 0.105743 0.580536\n0.366577 0.107117 0.580719\n0.392975 0.108521 0.580963\n0.421783 0.109772 0.581177\n0.453278 0.111053 0.581360\n0.487762 0.112457 0.581573\n0.525970 0.113861 0.581787\n0.567444 0.115234 0.582001\n0.612091 0.116669 0.582245\n0.659332 0.118134 0.582458\n0.708954 0.119476 0.582672\n0.760254 0.120911 0.582886\n0.812744 0.122345 0.583130\n0.866241 0.123749 0.583344\n0.915527 0.125183 0.583557\n0.000000 0.115509 0.577698\n0.000000 0.116638 0.577911\n0.000000 0.117737 0.578033\n0.011627 0.118683 0.578217\n0.038727 0.119812 0.578400\n0.072723 0.120941 0.578583\n0.101044 0.122009 0.578735\n0.127472 0.123077 0.578949\n0.152008 0.124268 0.579132\n0.175140 0.125458 0.579315\n0.196930 0.126526 0.579498\n0.217712 0.127716 0.579712\n0.237823 0.128967 0.579926\n0.257812 0.130157 0.580078\n0.278107 0.131409 0.580322\n0.298737 0.132477 0.580505\n0.320221 0.133728 0.580688\n0.343231 0.135040 0.580933\n0.367584 0.136292 0.581146\n0.394012 0.137482 0.581329\n0.422821 0.138641 0.581573\n0.454315 0.139893 0.581787\n0.488831 0.141205 0.582001\n0.526917 0.142548 0.582214\n0.568451 0.143799 0.582458\n0.613007 0.144867 0.582672\n0.660217 0.146179 0.582886\n0.709473 0.147461 0.583130\n0.760651 0.148773 0.583344\n0.813171 0.150055 0.583527\n0.866608 0.151245 0.583771\n0.915527 0.152466 0.584015\n0.000000 0.144318 0.578033\n0.000000 0.145386 0.578217\n0.000000 0.146149 0.578369\n0.013458 0.147247 0.578583\n0.040527 0.148132 0.578735\n0.074738 0.149200 0.578949\n0.102905 0.150269 0.579102\n0.129181 0.151245 0.579315\n0.153564 0.152283 0.579498\n0.176422 0.153412 0.579712\n0.198120 0.154297 0.579926\n0.218811 0.155457 0.580078\n0.238922 0.156586 0.580292\n0.258850 0.157715 0.580505\n0.279053 0.158661 0.580688\n0.299744 0.159790 0.580933\n0.321259 0.160980 0.581146\n0.344086 0.161926 0.581329\n0.368652 0.163086 0.581543\n0.395050 0.164276 0.581757\n0.423889 0.165283 0.582001\n0.455414 0.166412 0.582214\n0.489929 0.167633 0.582428\n0.527985 0.168793 0.582672\n0.569458 0.169769 0.582886\n0.613983 0.170929 0.583130\n0.660858 0.172089 0.583344\n0.710266 0.173218 0.583527\n0.761139 0.174255 0.583771\n0.813538 0.175446 0.583984\n0.866760 0.176605 0.584229\n0.915527 0.177582 0.584473\n0.000000 0.170776 0.578369\n0.000000 0.171631 0.578583\n0.000000 0.172516 0.578735\n0.015320 0.173462 0.578949\n0.042419 0.174225 0.579102\n0.076721 0.175293 0.579315\n0.104736 0.176086 0.579498\n0.130707 0.177094 0.579681\n0.155060 0.178131 0.579926\n0.177765 0.178955 0.580048\n0.199341 0.180023 0.580292\n0.220001 0.180786 0.580505\n0.240051 0.181885 0.580688\n0.259979 0.182953 0.580933\n0.279999 0.183777 0.581146\n0.300812 0.184845 0.581329\n0.322327 0.185791 0.581543\n0.345093 0.186768 0.581757\n0.369659 0.187866 0.581970\n0.396118 0.188782 0.582214\n0.424927 0.189819 0.582428\n0.456268 0.190918 0.582642\n0.491028 0.191772 0.582886\n0.529022 0.192902 0.583099\n0.570312 0.193970 0.583344\n0.614685 0.194855 0.583527\n0.661713 0.195892 0.583771\n0.710754 0.196930 0.583984\n0.761780 0.197845 0.584229\n0.813812 0.198914 0.584442\n0.866882 0.199890 0.584656\n0.915527 0.200897 0.584900\n0.000000 0.195160 0.578735\n0.000000 0.195953 0.578949\n0.000000 0.196655 0.579102\n0.017242 0.197632 0.579315\n0.044373 0.198425 0.579468\n0.078735 0.199249 0.579681\n0.106506 0.200195 0.579926\n0.132477 0.200928 0.580048\n0.156525 0.201843 0.580292\n0.179108 0.202637 0.580505\n0.200592 0.203613 0.580658\n0.221191 0.204346 0.580933\n0.241180 0.205292 0.581116\n0.261047 0.206238 0.581329\n0.281097 0.207123 0.581543\n0.301849 0.207916 0.581757\n0.323364 0.208893 0.581970\n0.346161 0.209869 0.582184\n0.370667 0.210632 0.582428\n0.397186 0.211639 0.582642\n0.425842 0.212463 0.582886\n0.457306 0.213440 0.583099\n0.492035 0.214355 0.583313\n0.530060 0.215240 0.583527\n0.571320 0.216217 0.583740\n0.615662 0.217010 0.583984\n0.662598 0.218018 0.584198\n0.711609 0.218811 0.584442\n0.762177 0.219818 0.584656\n0.814117 0.220764 0.584900\n0.867035 0.221558 0.585144\n0.915527 0.222595 0.585327\n0.000000 0.217896 0.579102\n0.000000 0.218475 0.579315\n0.000000 0.219360 0.579468\n0.019257 0.220062 0.579681\n0.046936 0.220917 0.579895\n0.080841 0.221558 0.580048\n0.108429 0.222473 0.580292\n0.134064 0.223114 0.580475\n0.157959 0.223999 0.580658\n0.180450 0.224762 0.580902\n0.201843 0.225647 0.581116\n0.222382 0.226318 0.581329\n0.242310 0.227264 0.581512\n0.262146 0.227966 0.581757\n0.282196 0.228851 0.581970\n0.302734 0.229584 0.582184\n0.324432 0.230530 0.582397\n0.347229 0.231262 0.582642\n0.371582 0.232178 0.582855\n0.398102 0.232880 0.583099\n0.426880 0.233826 0.583313\n0.458435 0.234528 0.583527\n0.493164 0.235504 0.583740\n0.531067 0.236206 0.583984\n0.572327 0.237152 0.584198\n0.616669 0.237854 0.584442\n0.663239 0.238770 0.584656\n0.712189 0.239624 0.584900\n0.762726 0.240417 0.585114\n0.814545 0.241150 0.585327\n0.867157 0.242065 0.585571\n0.915527 0.242920 0.585815\n0.000000 0.239136 0.579468\n0.000000 0.239960 0.579681\n0.000000 0.240540 0.579895\n0.021393 0.241180 0.580048\n0.050415 0.241943 0.580261\n0.082977 0.242615 0.580475\n0.110382 0.243439 0.580658\n0.135864 0.244080 0.580902\n0.159637 0.244904 0.581116\n0.182068 0.245575 0.581329\n0.203125 0.246338 0.581512\n0.223572 0.247070 0.581757\n0.243439 0.247833 0.581970\n0.263245 0.248566 0.582184\n0.283295 0.249390 0.582397\n0.303802 0.250092 0.582642\n0.325409 0.250916 0.582855\n0.348297 0.251617 0.583069\n0.372650 0.252289 0.583313\n0.399139 0.253204 0.583496\n0.428040 0.253876 0.583740\n0.459564 0.254730 0.583984\n0.494202 0.255402 0.584198\n0.532043 0.256287 0.584412\n0.573395 0.256927 0.584656\n0.617401 0.257843 0.584869\n0.664154 0.258484 0.585114\n0.712860 0.259369 0.585327\n0.763275 0.260040 0.585571\n0.814911 0.260895 0.585815\n0.867310 0.261536 0.585999\n0.915527 0.262329 0.586273\n0.000000 0.259521 0.579895\n0.000000 0.260101 0.580017\n0.000000 0.260895 0.580261\n0.023468 0.261444 0.580475\n0.054230 0.262054 0.580658\n0.085083 0.262848 0.580902\n0.112213 0.263428 0.581116\n0.137512 0.264252 0.581329\n0.161224 0.264832 0.581512\n0.183411 0.265625 0.581726\n0.204437 0.266235 0.581940\n0.224792 0.267029 0.582184\n0.244629 0.267670 0.582397\n0.264374 0.268311 0.582642\n0.284363 0.269104 0.582855\n0.304840 0.269714 0.583069\n0.326477 0.270569 0.583313\n0.349426 0.271179 0.583496\n0.373749 0.272064 0.583710\n0.400269 0.272644 0.583984\n0.429108 0.273254 0.584167\n0.460632 0.274078 0.584412\n0.495148 0.274750 0.584656\n0.533051 0.275543 0.584869\n0.574402 0.276184 0.585114\n0.618378 0.277039 0.585297\n0.665009 0.277679 0.585571\n0.713409 0.278473 0.585785\n0.763672 0.279114 0.585999\n0.815186 0.279694 0.586243\n0.867462 0.280579 0.586487\n0.915527 0.281158 0.586670\n0.000000 0.279236 0.580261\n0.000000 0.279755 0.580475\n0.000000 0.280548 0.580658\n0.025757 0.281067 0.580872\n0.058319 0.281830 0.581085\n0.087128 0.282410 0.581329\n0.114166 0.283051 0.581512\n0.139374 0.283752 0.581726\n0.162872 0.284302 0.581940\n0.184784 0.285034 0.582153\n0.205719 0.285675 0.582397\n0.226044 0.286285 0.582642\n0.245819 0.287048 0.582825\n0.265533 0.287598 0.583069\n0.285522 0.288391 0.583313\n0.305969 0.289001 0.583496\n0.327545 0.289825 0.583710\n0.350494 0.290405 0.583984\n0.374878 0.290985 0.584167\n0.401367 0.291779 0.584412\n0.430206 0.292358 0.584656\n0.461761 0.293213 0.584869\n0.496246 0.293793 0.585114\n0.534149 0.294556 0.585297\n0.575378 0.295197 0.585541\n0.619293 0.295746 0.585785\n0.665680 0.296539 0.585968\n0.714172 0.297150 0.586243\n0.764282 0.297913 0.586487\n0.815491 0.298523 0.586670\n0.867615 0.299164 0.586914\n0.915527 0.299927 0.587158\n0.000000 0.298767 0.580658\n0.000000 0.299377 0.580872\n0.001831 0.300018 0.581085\n0.027863 0.300537 0.581299\n0.060669 0.301239 0.581512\n0.089447 0.301819 0.581696\n0.116180 0.302338 0.581940\n0.141022 0.303131 0.582153\n0.164398 0.303680 0.582367\n0.186310 0.304443 0.582611\n0.207214 0.304962 0.582825\n0.227295 0.305542 0.583069\n0.246979 0.306335 0.583313\n0.266693 0.306885 0.583466\n0.286621 0.307526 0.583710\n0.307068 0.308197 0.583954\n0.328613 0.308777 0.584167\n0.351593 0.309540 0.584381\n0.375977 0.310120 0.584656\n0.402466 0.310913 0.584869\n0.431305 0.311462 0.585083\n0.462891 0.312073 0.585297\n0.497345 0.312836 0.585541\n0.535248 0.313385 0.585785\n0.576263 0.314117 0.585968\n0.620300 0.314758 0.586243\n0.666534 0.315338 0.586456\n0.714783 0.316101 0.586670\n0.764679 0.316681 0.586914\n0.815979 0.317413 0.587128\n0.867920 0.317993 0.587341\n0.915527 0.318512 0.587585\n0.000000 0.318359 0.581085\n0.000000 0.319031 0.581299\n0.003815 0.319611 0.581512\n0.030121 0.320099 0.581696\n0.063049 0.320862 0.581909\n0.091583 0.321381 0.582153\n0.118164 0.321991 0.582367\n0.142914 0.322662 0.582611\n0.166016 0.323242 0.582825\n0.187866 0.323944 0.583038\n0.208557 0.324493 0.583313\n0.228485 0.325043 0.583466\n0.248169 0.325806 0.583710\n0.267822 0.326355 0.583954\n0.287689 0.327057 0.584167\n0.308167 0.327667 0.584381\n0.329651 0.328247 0.584656\n0.352417 0.328979 0.584839\n0.377075 0.329559 0.585083\n0.403595 0.330139 0.585297\n0.432495 0.330872 0.585541\n0.463989 0.331421 0.585754\n0.498444 0.332184 0.585968\n0.536346 0.332733 0.586212\n0.577301 0.333374 0.586456\n0.621002 0.334045 0.586639\n0.667328 0.334564 0.586914\n0.715454 0.335358 0.587128\n0.765320 0.335907 0.587311\n0.816223 0.336456 0.587585\n0.868103 0.337219 0.587799\n0.915527 0.337769 0.587982\n0.000000 0.338654 0.581512\n0.000000 0.339203 0.581696\n0.006042 0.339691 0.581909\n0.032410 0.340393 0.582123\n0.065491 0.340942 0.582367\n0.093872 0.341461 0.582611\n0.120148 0.342194 0.582825\n0.144714 0.342743 0.583038\n0.167633 0.343475 0.583282\n0.189270 0.343994 0.583466\n0.209869 0.344543 0.583679\n0.229736 0.345276 0.583954\n0.249329 0.345825 0.584137\n0.268982 0.346405 0.584381\n0.288818 0.347137 0.584625\n0.309296 0.347656 0.584839\n0.330780 0.348419 0.585083\n0.353577 0.348969 0.585297\n0.378204 0.349518 0.585541\n0.404694 0.350311 0.585754\n0.433502 0.350800 0.585968\n0.465027 0.351593 0.586212\n0.499573 0.352112 0.586456\n0.537415 0.352661 0.586639\n0.578339 0.353424 0.586884\n0.621948 0.353973 0.587128\n0.667999 0.354523 0.587311\n0.716156 0.355255 0.587555\n0.765747 0.355774 0.587769\n0.816528 0.356537 0.587982\n0.868225 0.357086 0.588226\n0.915527 0.357574 0.588440\n0.000000 0.359589 0.581909\n0.000000 0.360260 0.582123\n0.008331 0.360718 0.582367\n0.034821 0.361481 0.582611\n0.067963 0.362000 0.582794\n0.096008 0.362518 0.583038\n0.122040 0.363312 0.583282\n0.146393 0.363800 0.583466\n0.169159 0.364349 0.583679\n0.190674 0.365051 0.583954\n0.211182 0.365631 0.584137\n0.231018 0.366333 0.584381\n0.250549 0.366913 0.584625\n0.270111 0.367462 0.584839\n0.289948 0.368225 0.585052\n0.310364 0.368744 0.585297\n0.331909 0.369293 0.585510\n0.354706 0.370026 0.585754\n0.379242 0.370605 0.585968\n0.405823 0.371307 0.586212\n0.434601 0.371887 0.586426\n0.466125 0.372406 0.586639\n0.500671 0.373199 0.586884\n0.538330 0.373688 0.587097\n0.579346 0.374359 0.587311\n0.622955 0.375000 0.587555\n0.668884 0.375549 0.587769\n0.716736 0.376251 0.587982\n0.766174 0.376801 0.588226\n0.816956 0.377319 0.588440\n0.868408 0.378082 0.588623\n0.915527 0.378571 0.588837\n0.000000 0.381866 0.582336\n0.000000 0.382355 0.582611\n0.010498 0.383118 0.582794\n0.037018 0.383606 0.583008\n0.070374 0.384247 0.583282\n0.098175 0.384888 0.583435\n0.124054 0.385406 0.583679\n0.148315 0.386169 0.583923\n0.170868 0.386688 0.584137\n0.192200 0.387238 0.584351\n0.212524 0.388000 0.584625\n0.232269 0.388519 0.584839\n0.251740 0.389099 0.585052\n0.271271 0.389832 0.585297\n0.291107 0.390350 0.585510\n0.311493 0.391113 0.585754\n0.332977 0.391663 0.585968\n0.355774 0.392181 0.586212\n0.380341 0.392944 0.586426\n0.406891 0.393494 0.586639\n0.435699 0.394073 0.586884\n0.467133 0.394806 0.587097\n0.501770 0.395355 0.587311\n0.539337 0.396057 0.587555\n0.580292 0.396576 0.587769\n0.623840 0.397095 0.587952\n0.669525 0.397858 0.588196\n0.717316 0.398407 0.588409\n0.766785 0.398926 0.588623\n0.817322 0.399689 0.588837\n0.868530 0.400177 0.589081\n0.915527 0.400787 0.589264\n0.000000 0.405548 0.582794\n0.000000 0.406311 0.583008\n0.012909 0.406799 0.583282\n0.039398 0.407532 0.583435\n0.072723 0.408051 0.583679\n0.100433 0.408630 0.583923\n0.126099 0.409332 0.584137\n0.150116 0.409882 0.584351\n0.172455 0.410461 0.584625\n0.193726 0.411163 0.584808\n0.213837 0.411713 0.585052\n0.233612 0.412415 0.585297\n0.252930 0.412994 0.585510\n0.272430 0.413574 0.585724\n0.292084 0.414307 0.585968\n0.312622 0.414856 0.586182\n0.334137 0.415375 0.586426\n0.356873 0.416168 0.586639\n0.381470 0.416718 0.586884\n0.407990 0.417389 0.587097\n0.436676 0.417938 0.587280\n0.468201 0.418518 0.587555\n0.502625 0.419250 0.587769\n0.540375 0.419800 0.587952\n0.581146 0.420471 0.588196\n0.624542 0.421082 0.588409\n0.670349 0.421570 0.588623\n0.718018 0.422241 0.588837\n0.767212 0.422852 0.589081\n0.817566 0.423370 0.589264\n0.868683 0.424103 0.589508\n0.915527 0.424591 0.589691\n0.000000 0.431274 0.583252\n0.000000 0.431824 0.583435\n0.015320 0.432587 0.583649\n0.041687 0.433075 0.583923\n0.075287 0.433624 0.584106\n0.102661 0.434418 0.584351\n0.128082 0.434906 0.584595\n0.151825 0.435730 0.584808\n0.174164 0.436218 0.585052\n0.195129 0.436768 0.585297\n0.215393 0.437531 0.585510\n0.234955 0.438080 0.585724\n0.254120 0.438568 0.585968\n0.273590 0.439392 0.586182\n0.293243 0.439911 0.586395\n0.313751 0.440643 0.586639\n0.335205 0.441193 0.586853\n0.357971 0.441742 0.587097\n0.382416 0.442505 0.587280\n0.408997 0.443054 0.587524\n0.437775 0.443604 0.587738\n0.469269 0.444336 0.587952\n0.503662 0.444824 0.588196\n0.541412 0.445526 0.588409\n0.582092 0.446106 0.588623\n0.625488 0.446655 0.588837\n0.671173 0.447357 0.589081\n0.718628 0.447876 0.589264\n0.767731 0.448364 0.589478\n0.817841 0.449097 0.589691\n0.868866 0.449646 0.589905\n0.915527 0.450104 0.590088\n0.000000 0.459167 0.583649\n0.000000 0.459717 0.583893\n0.017761 0.460449 0.584106\n0.044159 0.460999 0.584351\n0.077667 0.461548 0.584595\n0.104858 0.462280 0.584808\n0.130066 0.462860 0.585022\n0.153687 0.463348 0.585297\n0.175659 0.464142 0.585480\n0.196594 0.464661 0.585724\n0.216705 0.465363 0.585968\n0.236176 0.465942 0.586182\n0.255341 0.466522 0.586395\n0.274719 0.467224 0.586639\n0.294342 0.467834 0.586853\n0.314819 0.468353 0.587067\n0.336304 0.469147 0.587280\n0.359070 0.469635 0.587524\n0.383514 0.470245 0.587738\n0.410004 0.470917 0.587952\n0.438873 0.471466 0.588165\n0.470398 0.472198 0.588409\n0.504791 0.472748 0.588623\n0.542511 0.473267 0.588806\n0.583160 0.473969 0.589050\n0.626343 0.474487 0.589264\n0.671783 0.474976 0.589478\n0.719238 0.475739 0.589691\n0.768158 0.476196 0.589905\n0.818085 0.476715 0.590057\n0.869080 0.477448 0.590271\n0.915527 0.477905 0.590485\n0.000000 0.489441 0.584106\n0.000000 0.490021 0.584320\n0.020142 0.490723 0.584595\n0.047089 0.491302 0.584778\n0.080109 0.491791 0.585022\n0.107025 0.492615 0.585297\n0.131927 0.493134 0.585480\n0.155334 0.493896 0.585724\n0.177216 0.494415 0.585968\n0.198151 0.494965 0.586182\n0.218018 0.495728 0.586395\n0.237427 0.496246 0.586609\n0.256500 0.496796 0.586853\n0.275848 0.497528 0.587067\n0.295380 0.498077 0.587280\n0.315887 0.498718 0.587524\n0.337341 0.499359 0.587738\n0.360168 0.499878 0.587952\n0.384552 0.500641 0.588165\n0.411102 0.501160 0.588379\n0.439941 0.501648 0.588593\n0.471466 0.502411 0.588806\n0.505798 0.502930 0.589050\n0.543457 0.503418 0.589264\n0.583984 0.504150 0.589478\n0.627075 0.504639 0.589661\n0.672638 0.505188 0.589905\n0.719879 0.505890 0.590057\n0.768524 0.506317 0.590271\n0.818573 0.506897 0.590485\n0.869293 0.507507 0.590668\n0.915527 0.507965 0.590851\n0.000000 0.522614 0.584564\n0.000000 0.523163 0.584778\n0.022552 0.523834 0.585022\n0.051300 0.524445 0.585266\n0.082428 0.525024 0.585480\n0.109192 0.525635 0.585693\n0.133942 0.526276 0.585968\n0.157196 0.526794 0.586151\n0.178894 0.527557 0.586395\n0.199524 0.528076 0.586609\n0.219269 0.528625 0.586853\n0.238647 0.529358 0.587067\n0.257660 0.529877 0.587280\n0.276917 0.530640 0.587524\n0.296509 0.531128 0.587738\n0.317017 0.531677 0.587952\n0.338348 0.532318 0.588165\n0.361206 0.532928 0.588379\n0.385651 0.533417 0.588593\n0.412170 0.534149 0.588806\n0.441010 0.534668 0.589050\n0.472504 0.535187 0.589264\n0.506897 0.535919 0.589447\n0.544373 0.536346 0.589661\n0.584808 0.536835 0.589905\n0.627960 0.537537 0.590057\n0.673157 0.538025 0.590271\n0.720428 0.538513 0.590485\n0.769135 0.539154 0.590668\n0.818787 0.539642 0.590851\n0.869385 0.540100 0.591064\n0.915527 0.540710 0.591248\n0.000000 0.558685 0.584991\n0.000000 0.559418 0.585266\n0.024994 0.559906 0.585449\n0.055420 0.560394 0.585693\n0.084839 0.561188 0.585938\n0.111359 0.561676 0.586151\n0.135895 0.562195 0.586365\n0.158844 0.562927 0.586609\n0.180420 0.563477 0.586823\n0.200928 0.564087 0.587067\n0.220581 0.564728 0.587280\n0.239868 0.565186 0.587494\n0.258820 0.565704 0.587708\n0.278046 0.566437 0.587952\n0.297577 0.566895 0.588165\n0.317902 0.567535 0.588379\n0.339355 0.568146 0.588593\n0.362244 0.568604 0.588806\n0.386719 0.569336 0.589050\n0.413239 0.569794 0.589233\n0.442108 0.570282 0.589447\n0.473511 0.571014 0.589661\n0.507904 0.571442 0.589874\n0.545288 0.571930 0.590057\n0.585754 0.572357 0.590271\n0.628815 0.573029 0.590454\n0.673950 0.573517 0.590668\n0.720825 0.573944 0.590851\n0.769501 0.574585 0.591064\n0.819031 0.575012 0.591248\n0.869507 0.575378 0.591400\n0.915527 0.576050 0.591583\n0.000000 0.597626 0.585449\n0.002075 0.598328 0.585693\n0.027435 0.598816 0.585938\n0.059448 0.599304 0.586121\n0.087189 0.599945 0.586365\n0.113403 0.600494 0.586609\n0.137756 0.600952 0.586823\n0.160614 0.601685 0.587036\n0.182068 0.602142 0.587280\n0.202271 0.602600 0.587494\n0.221893 0.603302 0.587708\n0.241058 0.603729 0.587921\n0.259979 0.604248 0.588135\n0.279114 0.604950 0.588348\n0.298645 0.605408 0.588593\n0.319000 0.605835 0.588806\n0.340363 0.606506 0.589020\n0.363159 0.606964 0.589233\n0.387817 0.607452 0.589447\n0.414307 0.607880 0.589630\n0.443115 0.608551 0.589874\n0.474426 0.608948 0.590057\n0.508759 0.609375 0.590271\n0.546265 0.610046 0.590454\n0.586731 0.610443 0.590637\n0.629456 0.610870 0.590820\n0.674500 0.611420 0.591034\n0.721527 0.611877 0.591248\n0.769806 0.612305 0.591400\n0.819244 0.612671 0.591583\n0.869629 0.613159 0.591766\n0.915527 0.613617 0.591919\n0.000000 0.639099 0.585938\n0.004333 0.639557 0.586121\n0.029816 0.640045 0.586365\n0.061859 0.640625 0.586609\n0.089630 0.641083 0.586823\n0.115417 0.641541 0.587036\n0.139648 0.642212 0.587250\n0.162201 0.642578 0.587494\n0.183502 0.643066 0.587708\n0.203827 0.643616 0.587921\n0.223297 0.644104 0.588135\n0.242279 0.644562 0.588348\n0.261139 0.644958 0.588562\n0.280090 0.645599 0.588776\n0.299744 0.646027 0.589020\n0.320007 0.646454 0.589233\n0.341431 0.647064 0.589417\n0.364197 0.647461 0.589630\n0.388824 0.647858 0.589874\n0.415283 0.648224 0.590027\n0.443909 0.648743 0.590271\n0.475372 0.649231 0.590454\n0.509674 0.649597 0.590637\n0.547241 0.649994 0.590820\n0.587372 0.650543 0.591034\n0.630310 0.650940 0.591248\n0.675262 0.651306 0.591400\n0.721954 0.651611 0.591583\n0.770203 0.652161 0.591766\n0.819702 0.652527 0.591919\n0.869751 0.652832 0.592072\n0.915527 0.653168 0.592255\n0.000000 0.682373 0.586365\n0.006683 0.682953 0.586609\n0.032257 0.683350 0.586792\n0.064331 0.683746 0.587036\n0.091919 0.684113 0.587250\n0.117493 0.684723 0.587463\n0.141541 0.685089 0.587677\n0.163971 0.685455 0.587921\n0.184967 0.685852 0.588135\n0.205170 0.686462 0.588348\n0.224487 0.686768 0.588562\n0.243439 0.687195 0.588776\n0.262238 0.687531 0.589020\n0.281219 0.688110 0.589233\n0.300842 0.688446 0.589417\n0.321075 0.688812 0.589630\n0.342499 0.689117 0.589844\n0.365204 0.689636 0.590027\n0.389801 0.690033 0.590271\n0.416229 0.690338 0.590454\n0.444946 0.690704 0.590637\n0.476379 0.691040 0.590820\n0.510651 0.691559 0.591034\n0.547943 0.691864 0.591248\n0.588287 0.692169 0.591370\n0.630890 0.692474 0.591583\n0.675751 0.692902 0.591766\n0.722565 0.693298 0.591919\n0.770660 0.693573 0.592072\n0.819916 0.693909 0.592255\n0.869812 0.694153 0.592407\n0.915527 0.694611 0.592590\n0.000000 0.727448 0.586792\n0.009033 0.727814 0.587036\n0.034698 0.728119 0.587250\n0.066895 0.728424 0.587463\n0.094147 0.728943 0.587677\n0.119537 0.729218 0.587891\n0.143341 0.729523 0.588135\n0.165497 0.729858 0.588348\n0.186554 0.730164 0.588562\n0.206482 0.730621 0.588776\n0.225769 0.730988 0.588989\n0.244598 0.731323 0.589203\n0.263367 0.731598 0.589417\n0.282318 0.731873 0.589630\n0.301849 0.732391 0.589844\n0.322052 0.732666 0.590027\n0.343506 0.732910 0.590240\n0.366241 0.733215 0.590454\n0.390625 0.733490 0.590637\n0.417114 0.733887 0.590820\n0.445953 0.734253 0.591034\n0.477356 0.734497 0.591217\n0.511627 0.734802 0.591370\n0.548889 0.735016 0.591583\n0.589111 0.735229 0.591736\n0.631653 0.735748 0.591919\n0.676483 0.735962 0.592072\n0.722992 0.736206 0.592255\n0.770966 0.736450 0.592407\n0.820129 0.736664 0.592590\n0.869904 0.736877 0.592743\n0.915527 0.737091 0.592896\n0.000000 0.773651 0.587250\n0.011292 0.773834 0.587463\n0.036987 0.774109 0.587677\n0.069366 0.774353 0.587891\n0.096344 0.774567 0.588104\n0.121582 0.774902 0.588318\n0.145081 0.775330 0.588531\n0.167175 0.775513 0.588776\n0.187988 0.775757 0.588989\n0.207764 0.775970 0.589203\n0.226990 0.776184 0.589417\n0.245758 0.776459 0.589600\n0.264435 0.776886 0.589844\n0.283325 0.777100 0.590027\n0.302673 0.777283 0.590240\n0.323059 0.777527 0.590424\n0.344360 0.777740 0.590607\n0.367249 0.777924 0.590790\n0.391602 0.778137 0.591003\n0.418091 0.778442 0.591217\n0.446869 0.778778 0.591370\n0.478149 0.778931 0.591583\n0.512268 0.779144 0.591736\n0.549805 0.779297 0.591919\n0.589722 0.779480 0.592072\n0.632446 0.779663 0.592255\n0.676910 0.779877 0.592407\n0.723389 0.780151 0.592590\n0.771271 0.780457 0.592712\n0.820282 0.780609 0.592896\n0.870117 0.780792 0.593018\n0.915527 0.780945 0.593170\n0.000000 0.820526 0.587677\n0.013763 0.820679 0.587891\n0.039337 0.820831 0.588104\n0.071716 0.820984 0.588318\n0.098541 0.821167 0.588531\n0.123566 0.821472 0.588745\n0.146942 0.821747 0.588989\n0.168701 0.821869 0.589203\n0.189362 0.822052 0.589417\n0.208984 0.822174 0.589600\n0.228180 0.822357 0.589844\n0.246887 0.822479 0.590027\n0.265533 0.822601 0.590240\n0.284363 0.822815 0.590424\n0.303680 0.822968 0.590607\n0.323975 0.823273 0.590790\n0.345245 0.823456 0.591003\n0.367981 0.823578 0.591217\n0.392578 0.823730 0.591370\n0.419037 0.823853 0.591553\n0.447723 0.823944 0.591736\n0.479004 0.824066 0.591919\n0.513214 0.824219 0.592072\n0.550415 0.824341 0.592255\n0.590576 0.824463 0.592407\n0.632996 0.824615 0.592590\n0.677582 0.824860 0.592712\n0.723969 0.825043 0.592896\n0.771759 0.825104 0.593018\n0.820496 0.825195 0.593170\n0.870331 0.825287 0.593262\n0.915527 0.825439 0.593414\n0.000000 0.867920 0.588104\n0.016144 0.868103 0.588318\n0.041626 0.868164 0.588531\n0.074097 0.868347 0.588745\n0.100708 0.868439 0.588989\n0.125458 0.868469 0.589203\n0.148499 0.868561 0.589386\n0.170166 0.868652 0.589600\n0.190674 0.868744 0.589813\n0.210236 0.868774 0.590027\n0.229370 0.868896 0.590210\n0.247925 0.868958 0.590424\n0.266571 0.869049 0.590607\n0.285431 0.869110 0.590790\n0.304657 0.869171 0.591003\n0.324860 0.869202 0.591217\n0.346161 0.869293 0.591370\n0.368958 0.869354 0.591553\n0.393463 0.869446 0.591736\n0.419800 0.869446 0.591919\n0.448547 0.869568 0.592041\n0.479889 0.869781 0.592224\n0.514099 0.869873 0.592407\n0.551239 0.869934 0.592590\n0.591095 0.870087 0.592712\n0.633514 0.870087 0.592896\n0.677979 0.870148 0.593018\n0.724304 0.870178 0.593170\n0.772064 0.870239 0.593262\n0.820831 0.870270 0.593414\n0.870392 0.870331 0.593567\n0.915527 0.870361 0.593719\n0.000000 0.915527 0.588531\n0.018372 0.915527 0.588745\n0.043945 0.915527 0.588989\n0.076538 0.915527 0.589172\n0.102783 0.915527 0.589386\n0.127258 0.915527 0.589600\n0.150269 0.915527 0.589813\n0.171814 0.915527 0.590027\n0.191986 0.915527 0.590210\n0.211517 0.915527 0.590393\n0.230469 0.915527 0.590607\n0.249054 0.915527 0.590790\n0.267578 0.915527 0.591003\n0.286346 0.915527 0.591217\n0.305634 0.915527 0.591339\n0.325775 0.915527 0.591553\n0.347137 0.915527 0.591736\n0.369873 0.915527 0.591919\n0.394226 0.915527 0.592041\n0.420654 0.915527 0.592224\n0.449402 0.915527 0.592377\n0.480560 0.915527 0.592590\n0.514709 0.915527 0.592712\n0.552032 0.915527 0.592865\n0.591858 0.915527 0.593018\n0.634216 0.915527 0.593170\n0.678589 0.915527 0.593262\n0.724701 0.915527 0.593414\n0.772247 0.915527 0.593567\n0.821014 0.915527 0.593689\n0.870514 0.915527 0.593842\n0.915527 0.915527 0.593903\n0.000000 0.000000 0.602173\n0.000000 0.000000 0.602356\n0.000000 0.000000 0.602478\n0.003876 0.000000 0.602600\n0.030701 0.000000 0.602753\n0.064301 0.000000 0.602875\n0.093292 0.000000 0.603027\n0.120422 0.000000 0.603180\n0.145599 0.000000 0.603333\n0.169067 0.000000 0.603485\n0.191345 0.000000 0.603668\n0.212463 0.000000 0.603821\n0.233032 0.000000 0.603973\n0.253204 0.000000 0.604156\n0.273621 0.000000 0.604340\n0.294220 0.000000 0.604492\n0.315948 0.000000 0.604706\n0.338715 0.000000 0.604889\n0.363037 0.000000 0.605103\n0.389343 0.000000 0.605255\n0.418121 0.000000 0.605469\n0.449615 0.000000 0.605621\n0.484100 0.000000 0.605835\n0.522186 0.000000 0.606018\n0.563904 0.000000 0.606232\n0.608978 0.000000 0.606445\n0.656555 0.000000 0.606628\n0.706512 0.000000 0.606873\n0.758301 0.000000 0.607086\n0.811462 0.000000 0.607239\n0.865662 0.000000 0.607483\n0.915527 0.000946 0.607697\n0.000000 0.000000 0.602478\n0.000000 0.000000 0.602600\n0.000000 0.000000 0.602753\n0.005341 0.000000 0.602875\n0.032257 0.000000 0.603027\n0.066010 0.000000 0.603180\n0.094849 0.000000 0.603333\n0.121765 0.000000 0.603485\n0.146973 0.000000 0.603668\n0.170166 0.000000 0.603821\n0.192444 0.000977 0.603973\n0.213470 0.002075 0.604156\n0.234039 0.003143 0.604340\n0.254120 0.004303 0.604492\n0.274475 0.005493 0.604675\n0.295166 0.006714 0.604889\n0.316711 0.007965 0.605072\n0.339630 0.009247 0.605255\n0.363953 0.010468 0.605438\n0.390350 0.011810 0.605621\n0.419098 0.013214 0.605835\n0.450562 0.014648 0.606018\n0.485077 0.016052 0.606232\n0.523132 0.017426 0.606445\n0.564850 0.018829 0.606628\n0.609619 0.020233 0.606873\n0.657104 0.021637 0.607086\n0.707001 0.023285 0.607239\n0.758667 0.024719 0.607452\n0.811768 0.026184 0.607697\n0.865814 0.027649 0.607880\n0.915527 0.029144 0.608124\n0.000000 0.018585 0.602753\n0.000000 0.019562 0.602875\n0.000000 0.020447 0.603027\n0.006897 0.021515 0.603180\n0.033844 0.022583 0.603333\n0.067535 0.023682 0.603485\n0.096375 0.024811 0.603668\n0.123108 0.025970 0.603821\n0.148224 0.027130 0.603943\n0.171448 0.028351 0.604156\n0.193573 0.029419 0.604340\n0.214539 0.030670 0.604492\n0.235016 0.031860 0.604675\n0.255127 0.033264 0.604889\n0.275299 0.034393 0.605072\n0.296143 0.035736 0.605255\n0.317657 0.037109 0.605438\n0.340393 0.038300 0.605621\n0.364899 0.039734 0.605835\n0.391327 0.041168 0.606018\n0.420013 0.042511 0.606232\n0.451569 0.043915 0.606445\n0.486115 0.045319 0.606628\n0.524139 0.047546 0.606842\n0.565826 0.049988 0.607056\n0.610565 0.052551 0.607239\n0.657990 0.055145 0.607452\n0.707733 0.057922 0.607666\n0.759308 0.059692 0.607880\n0.812225 0.061279 0.608124\n0.865936 0.062927 0.608337\n0.915527 0.064728 0.608521\n0.000000 0.049622 0.603027\n0.000000 0.051270 0.603180\n0.000000 0.053131 0.603302\n0.008453 0.055023 0.603485\n0.035492 0.057129 0.603668\n0.069397 0.059052 0.603821\n0.097961 0.060181 0.603943\n0.124725 0.061279 0.604156\n0.149506 0.062622 0.604340\n0.172638 0.063965 0.604492\n0.194672 0.065338 0.604675\n0.215607 0.066681 0.604858\n0.235901 0.068024 0.605072\n0.256134 0.069427 0.605225\n0.276276 0.070831 0.605438\n0.297089 0.072235 0.605621\n0.318634 0.073608 0.605835\n0.341370 0.075043 0.606018\n0.365845 0.076538 0.606232\n0.392212 0.078033 0.606445\n0.420898 0.079285 0.606628\n0.452393 0.080872 0.606842\n0.487122 0.082397 0.607056\n0.525177 0.083740 0.607208\n0.566650 0.085266 0.607452\n0.611511 0.086823 0.607666\n0.658813 0.088287 0.607880\n0.708282 0.089813 0.608124\n0.759644 0.091309 0.608337\n0.812531 0.092987 0.608521\n0.866089 0.094360 0.608795\n0.915527 0.095947 0.608948\n0.000000 0.085175 0.603302\n0.000000 0.086304 0.603485\n0.000000 0.087463 0.603638\n0.010162 0.088531 0.603821\n0.037170 0.089661 0.603943\n0.071289 0.090851 0.604156\n0.099701 0.092133 0.604309\n0.126190 0.093353 0.604492\n0.150848 0.094482 0.604675\n0.174011 0.095703 0.604858\n0.195892 0.096985 0.605072\n0.216766 0.098328 0.605225\n0.236938 0.099640 0.605438\n0.257141 0.100952 0.605621\n0.277313 0.102203 0.605804\n0.298004 0.103577 0.605988\n0.319611 0.104797 0.606201\n0.342407 0.106140 0.606415\n0.366730 0.107544 0.606628\n0.393127 0.108917 0.606842\n0.421936 0.110291 0.607056\n0.453430 0.111694 0.607208\n0.488098 0.113129 0.607452\n0.526215 0.114502 0.607666\n0.567596 0.115692 0.607849\n0.612274 0.117096 0.608124\n0.659454 0.118530 0.608307\n0.709015 0.119934 0.608521\n0.760345 0.121338 0.608765\n0.812805 0.122772 0.608948\n0.866302 0.124176 0.609192\n0.915527 0.125580 0.609436\n0.000000 0.115997 0.603638\n0.000000 0.116943 0.603821\n0.000000 0.118103 0.603943\n0.011902 0.119202 0.604156\n0.038971 0.120117 0.604309\n0.073242 0.121307 0.604492\n0.101501 0.122467 0.604645\n0.127899 0.123627 0.604858\n0.152344 0.124664 0.605072\n0.175354 0.125885 0.605225\n0.197083 0.127075 0.605438\n0.217865 0.128204 0.605591\n0.238037 0.129303 0.605804\n0.258057 0.130585 0.605988\n0.278320 0.131805 0.606201\n0.298859 0.133087 0.606415\n0.320618 0.134277 0.606598\n0.343414 0.135376 0.606812\n0.367737 0.136719 0.607056\n0.394165 0.137970 0.607208\n0.422943 0.139221 0.607452\n0.454498 0.140411 0.607666\n0.489014 0.141602 0.607849\n0.527069 0.142914 0.608124\n0.568604 0.144196 0.608307\n0.613129 0.145477 0.608521\n0.660309 0.146790 0.608765\n0.709595 0.147888 0.608948\n0.760742 0.149170 0.609192\n0.813263 0.150452 0.609436\n0.866608 0.151794 0.609619\n0.915527 0.152893 0.609833\n0.000000 0.144623 0.603943\n0.000000 0.145660 0.604156\n0.000000 0.146606 0.604309\n0.013763 0.147552 0.604492\n0.040833 0.148621 0.604645\n0.075012 0.149475 0.604858\n0.103149 0.150574 0.605042\n0.129425 0.151703 0.605225\n0.153870 0.152618 0.605438\n0.176666 0.153687 0.605591\n0.198273 0.154846 0.605804\n0.219025 0.155762 0.605988\n0.239105 0.156921 0.606201\n0.259033 0.158081 0.606415\n0.279358 0.159027 0.606598\n0.299896 0.160156 0.606812\n0.321411 0.161316 0.607056\n0.344238 0.162476 0.607208\n0.368805 0.163452 0.607452\n0.395203 0.164642 0.607666\n0.424042 0.165802 0.607849\n0.455566 0.166870 0.608093\n0.490051 0.167938 0.608307\n0.528076 0.169128 0.608490\n0.569641 0.170349 0.608765\n0.614105 0.171295 0.608917\n0.661041 0.172516 0.609161\n0.710327 0.173645 0.609436\n0.761169 0.174622 0.609619\n0.813538 0.175781 0.609833\n0.866760 0.177032 0.610107\n0.915527 0.178131 0.610291\n0.000000 0.171021 0.604279\n0.000000 0.171997 0.604492\n0.000000 0.172760 0.604645\n0.015594 0.173767 0.604858\n0.042755 0.174561 0.605042\n0.077057 0.175568 0.605225\n0.105042 0.176575 0.605408\n0.131042 0.177399 0.605591\n0.155273 0.178436 0.605804\n0.177979 0.179260 0.605988\n0.199524 0.180298 0.606201\n0.220154 0.181366 0.606415\n0.240234 0.182190 0.606598\n0.260162 0.183228 0.606812\n0.280151 0.184235 0.607025\n0.300964 0.185181 0.607208\n0.322479 0.186279 0.607452\n0.345245 0.187103 0.607635\n0.369843 0.188171 0.607849\n0.396301 0.189301 0.608093\n0.425110 0.190125 0.608307\n0.456635 0.191254 0.608490\n0.491150 0.192230 0.608765\n0.529144 0.193146 0.608917\n0.570618 0.194275 0.609161\n0.614990 0.195282 0.609406\n0.661835 0.196228 0.609589\n0.710999 0.197296 0.609833\n0.761871 0.198181 0.610107\n0.813873 0.199249 0.610260\n0.866882 0.200348 0.610474\n0.915527 0.201202 0.610748\n0.000000 0.195526 0.604645\n0.000000 0.196198 0.604828\n0.000000 0.197144 0.605042\n0.017700 0.197845 0.605194\n0.044678 0.198761 0.605408\n0.079102 0.199493 0.605591\n0.106964 0.200470 0.605804\n0.132751 0.201202 0.605988\n0.156799 0.202179 0.606171\n0.179382 0.202911 0.606415\n0.200806 0.203888 0.606598\n0.221344 0.204773 0.606812\n0.241333 0.205627 0.607025\n0.261200 0.206604 0.607178\n0.281281 0.207367 0.607452\n0.302002 0.208374 0.607635\n0.323517 0.209167 0.607849\n0.346313 0.210175 0.608093\n0.370911 0.211090 0.608276\n0.397369 0.211945 0.608490\n0.426117 0.212921 0.608734\n0.457611 0.213715 0.608917\n0.492218 0.214722 0.609161\n0.530212 0.215515 0.609406\n0.571533 0.216492 0.609589\n0.615784 0.217499 0.609833\n0.662720 0.218323 0.610046\n0.711670 0.219299 0.610260\n0.762268 0.220123 0.610474\n0.814178 0.221100 0.610718\n0.867035 0.221863 0.610931\n0.915527 0.222870 0.611176\n0.000000 0.218109 0.605011\n0.000000 0.218781 0.605194\n0.000000 0.219635 0.605408\n0.019684 0.220276 0.605591\n0.047699 0.221130 0.605804\n0.081207 0.221832 0.605957\n0.108704 0.222717 0.606171\n0.134399 0.223419 0.606384\n0.158356 0.224274 0.606537\n0.180756 0.225006 0.606781\n0.202057 0.225922 0.607025\n0.222565 0.226593 0.607178\n0.242493 0.227509 0.607422\n0.262329 0.228210 0.607635\n0.282318 0.229126 0.607819\n0.303070 0.229858 0.608093\n0.324615 0.230774 0.608276\n0.347351 0.231476 0.608490\n0.371887 0.232422 0.608734\n0.398346 0.233185 0.608917\n0.427185 0.234070 0.609131\n0.458710 0.234802 0.609406\n0.493347 0.235718 0.609589\n0.531342 0.236542 0.609833\n0.572479 0.237396 0.610046\n0.616760 0.238342 0.610260\n0.663483 0.239014 0.610443\n0.712341 0.239990 0.610718\n0.762909 0.240662 0.610931\n0.814575 0.241638 0.611176\n0.867157 0.242310 0.611389\n0.915527 0.243256 0.611603\n0.000000 0.239319 0.605408\n0.000000 0.240143 0.605560\n0.000000 0.240753 0.605804\n0.021729 0.241516 0.605957\n0.051208 0.242218 0.606171\n0.083282 0.242950 0.606384\n0.110687 0.243652 0.606537\n0.136200 0.244324 0.606781\n0.159882 0.245148 0.606995\n0.182281 0.245819 0.607178\n0.203339 0.246643 0.607422\n0.223785 0.247284 0.607635\n0.243622 0.248138 0.607819\n0.263458 0.248840 0.608093\n0.283417 0.249664 0.608276\n0.304138 0.250366 0.608459\n0.325653 0.251221 0.608734\n0.348450 0.251862 0.608917\n0.372925 0.252686 0.609131\n0.399353 0.253418 0.609406\n0.428192 0.254211 0.609558\n0.459717 0.254974 0.609772\n0.494415 0.255768 0.610046\n0.532379 0.256531 0.610260\n0.573517 0.257172 0.610443\n0.617706 0.258087 0.610718\n0.664276 0.258759 0.610931\n0.712982 0.259583 0.611145\n0.763275 0.260254 0.611389\n0.814972 0.261139 0.611603\n0.867340 0.261780 0.611816\n0.915527 0.262695 0.612091\n0.000000 0.259735 0.605804\n0.000000 0.260315 0.605957\n0.000000 0.261108 0.606171\n0.023987 0.261658 0.606384\n0.055023 0.262451 0.606537\n0.085419 0.263062 0.606781\n0.112671 0.263641 0.606995\n0.137970 0.264465 0.607178\n0.161591 0.265076 0.607422\n0.183655 0.265869 0.607605\n0.204803 0.266479 0.607819\n0.225006 0.267303 0.608063\n0.244812 0.267914 0.608276\n0.264557 0.268494 0.608459\n0.284546 0.269379 0.608734\n0.305237 0.269958 0.608887\n0.326752 0.270782 0.609131\n0.349548 0.271393 0.609406\n0.373932 0.272278 0.609558\n0.400421 0.272888 0.609772\n0.429260 0.273651 0.610046\n0.460815 0.274353 0.610229\n0.495331 0.275024 0.610443\n0.533417 0.275787 0.610718\n0.574554 0.276398 0.610901\n0.618469 0.277252 0.611145\n0.665131 0.277863 0.611389\n0.713593 0.278717 0.611572\n0.763885 0.279358 0.611816\n0.815216 0.280121 0.612091\n0.867493 0.280731 0.612244\n0.915527 0.281372 0.612488\n0.000000 0.279419 0.606140\n0.000000 0.280121 0.606354\n0.000214 0.280670 0.606537\n0.026093 0.281281 0.606781\n0.058838 0.282043 0.606995\n0.087555 0.282593 0.607147\n0.114685 0.283386 0.607422\n0.139648 0.283966 0.607605\n0.163086 0.284515 0.607788\n0.185028 0.285278 0.608063\n0.206024 0.285889 0.608276\n0.226227 0.286682 0.608459\n0.246002 0.287262 0.608734\n0.265717 0.287933 0.608887\n0.285645 0.288605 0.609131\n0.306122 0.289215 0.609344\n0.327820 0.290039 0.609558\n0.350677 0.290619 0.609772\n0.375031 0.291321 0.610016\n0.401520 0.291992 0.610229\n0.430389 0.292572 0.610443\n0.461945 0.293396 0.610718\n0.496429 0.293976 0.610901\n0.534302 0.294830 0.611145\n0.575623 0.295410 0.611359\n0.619446 0.295959 0.611572\n0.665802 0.296783 0.611816\n0.714264 0.297363 0.612061\n0.764374 0.298187 0.612244\n0.815521 0.298767 0.612488\n0.867737 0.299530 0.612732\n0.915527 0.300171 0.612946\n0.000000 0.298920 0.606506\n0.000000 0.299683 0.606781\n0.002136 0.300201 0.606995\n0.028351 0.300812 0.607147\n0.061035 0.301483 0.607391\n0.089783 0.302002 0.607605\n0.116455 0.302704 0.607788\n0.141479 0.303314 0.608063\n0.164673 0.303864 0.608246\n0.186646 0.304657 0.608459\n0.207458 0.305176 0.608704\n0.227417 0.305939 0.608887\n0.247162 0.306549 0.609100\n0.266815 0.307068 0.609344\n0.286743 0.307831 0.609558\n0.307251 0.308441 0.609772\n0.328949 0.309113 0.610016\n0.351746 0.309784 0.610229\n0.376129 0.310333 0.610443\n0.402618 0.311127 0.610687\n0.431488 0.311707 0.610901\n0.463043 0.312500 0.611145\n0.497528 0.313049 0.611359\n0.535400 0.313629 0.611572\n0.576538 0.314392 0.611786\n0.620392 0.314972 0.612061\n0.666656 0.315704 0.612244\n0.714966 0.316315 0.612457\n0.764771 0.316833 0.612732\n0.816010 0.317627 0.612915\n0.867981 0.318176 0.613129\n0.915527 0.318787 0.613373\n0.000000 0.318512 0.606964\n0.000000 0.319275 0.607147\n0.004303 0.319794 0.607391\n0.030548 0.320343 0.607574\n0.063507 0.321045 0.607788\n0.091949 0.321564 0.608032\n0.118500 0.322327 0.608246\n0.143250 0.322876 0.608459\n0.166351 0.323364 0.608704\n0.188049 0.324158 0.608887\n0.208740 0.324677 0.609100\n0.228699 0.325317 0.609344\n0.248352 0.326019 0.609528\n0.268005 0.326538 0.609772\n0.287933 0.327301 0.610016\n0.308319 0.327881 0.610199\n0.329803 0.328583 0.610443\n0.352753 0.329224 0.610687\n0.377258 0.329742 0.610901\n0.403748 0.330536 0.611115\n0.432617 0.331085 0.611359\n0.464172 0.331635 0.611572\n0.498627 0.332367 0.611786\n0.536499 0.332916 0.612061\n0.577423 0.333710 0.612213\n0.621155 0.334229 0.612457\n0.667542 0.334778 0.612732\n0.715576 0.335571 0.612915\n0.765472 0.336151 0.613129\n0.816345 0.336761 0.613373\n0.868134 0.337433 0.613525\n0.915527 0.337952 0.613770\n0.000000 0.338867 0.607391\n0.000000 0.339386 0.607574\n0.006409 0.339996 0.607788\n0.032837 0.340607 0.608032\n0.066010 0.341125 0.608246\n0.094177 0.341797 0.608459\n0.120483 0.342407 0.608704\n0.145020 0.342896 0.608856\n0.167847 0.343689 0.609100\n0.189484 0.344177 0.609344\n0.210052 0.344818 0.609528\n0.230011 0.345490 0.609772\n0.249542 0.346039 0.610016\n0.269104 0.346680 0.610199\n0.289001 0.347351 0.610443\n0.309448 0.347870 0.610687\n0.330933 0.348633 0.610870\n0.353851 0.349182 0.611115\n0.378357 0.349915 0.611359\n0.404846 0.350494 0.611542\n0.433746 0.351044 0.611786\n0.465240 0.351776 0.612030\n0.499695 0.352356 0.612213\n0.537537 0.352875 0.612457\n0.578461 0.353638 0.612701\n0.622101 0.354187 0.612915\n0.668152 0.354919 0.613098\n0.716339 0.355469 0.613373\n0.765839 0.356018 0.613525\n0.816559 0.356720 0.613739\n0.868286 0.357269 0.613983\n0.915527 0.357788 0.614197\n0.000000 0.359924 0.607788\n0.000000 0.360443 0.608032\n0.008667 0.360962 0.608215\n0.035126 0.361694 0.608459\n0.068329 0.362213 0.608704\n0.096344 0.362823 0.608856\n0.122528 0.363495 0.609100\n0.146912 0.364014 0.609314\n0.169586 0.364655 0.609528\n0.190948 0.365295 0.609772\n0.211395 0.365814 0.609985\n0.231201 0.366547 0.610199\n0.250732 0.367096 0.610443\n0.270294 0.367676 0.610657\n0.290131 0.368408 0.610870\n0.310577 0.368958 0.611115\n0.332062 0.369598 0.611328\n0.354980 0.370239 0.611542\n0.379456 0.370758 0.611786\n0.405975 0.371552 0.612030\n0.434845 0.372101 0.612213\n0.466370 0.372681 0.612457\n0.500824 0.373352 0.612701\n0.538666 0.373901 0.612915\n0.579468 0.374664 0.613098\n0.623047 0.375214 0.613373\n0.669006 0.375732 0.613525\n0.716827 0.376465 0.613739\n0.766266 0.376953 0.613953\n0.817017 0.377533 0.614197\n0.868439 0.378235 0.614410\n0.915527 0.378784 0.614594\n0.000000 0.382050 0.608215\n0.000000 0.382660 0.608459\n0.011047 0.383270 0.608643\n0.037567 0.383789 0.608856\n0.070770 0.384583 0.609100\n0.098572 0.385101 0.609314\n0.124542 0.385590 0.609528\n0.148590 0.386383 0.609772\n0.171143 0.386871 0.609985\n0.192535 0.387482 0.610199\n0.212708 0.388153 0.610413\n0.232574 0.388702 0.610657\n0.251953 0.389465 0.610870\n0.271423 0.390045 0.611084\n0.291260 0.390533 0.611328\n0.311676 0.391327 0.611542\n0.333160 0.391846 0.611786\n0.355957 0.392395 0.612030\n0.380585 0.393158 0.612213\n0.407104 0.393677 0.612427\n0.435944 0.394440 0.612701\n0.467499 0.395020 0.612885\n0.501923 0.395477 0.613098\n0.539642 0.396240 0.613312\n0.580505 0.396759 0.613525\n0.623993 0.397522 0.613739\n0.669678 0.398102 0.613953\n0.717499 0.398590 0.614166\n0.766907 0.399261 0.614410\n0.817352 0.399841 0.614594\n0.868530 0.400360 0.614807\n0.915527 0.401062 0.615051\n0.000000 0.405945 0.608643\n0.000000 0.406464 0.608856\n0.013428 0.407013 0.609070\n0.039825 0.407715 0.609314\n0.073273 0.408264 0.609528\n0.100830 0.408966 0.609741\n0.126404 0.409546 0.609985\n0.150421 0.410065 0.610168\n0.172760 0.410767 0.610413\n0.193939 0.411377 0.610657\n0.214233 0.411926 0.610870\n0.233917 0.412689 0.611084\n0.253174 0.413239 0.611328\n0.272614 0.413879 0.611542\n0.292419 0.414551 0.611786\n0.312805 0.415070 0.612030\n0.334259 0.415741 0.612183\n0.357056 0.416382 0.612427\n0.381683 0.416931 0.612701\n0.408173 0.417633 0.612885\n0.436890 0.418213 0.613098\n0.468353 0.418762 0.613312\n0.502930 0.419464 0.613495\n0.540558 0.419983 0.613739\n0.581299 0.420746 0.613953\n0.624786 0.421265 0.614166\n0.670441 0.421814 0.614380\n0.718109 0.422516 0.614563\n0.767242 0.423035 0.614807\n0.817627 0.423523 0.615051\n0.868683 0.424255 0.615173\n0.915527 0.424774 0.615387\n0.000000 0.431488 0.609070\n0.000000 0.432190 0.609314\n0.015686 0.432800 0.609497\n0.042236 0.433289 0.609741\n0.075745 0.433990 0.609985\n0.102966 0.434570 0.610168\n0.128418 0.435120 0.610413\n0.152100 0.435852 0.610657\n0.174438 0.436432 0.610840\n0.195343 0.437103 0.611084\n0.215576 0.437744 0.611328\n0.235168 0.438263 0.611511\n0.254303 0.438995 0.611786\n0.273743 0.439575 0.612030\n0.293549 0.440094 0.612183\n0.313904 0.440857 0.612427\n0.335358 0.441406 0.612671\n0.358154 0.442108 0.612885\n0.382660 0.442719 0.613098\n0.409302 0.443237 0.613312\n0.437927 0.443939 0.613495\n0.469452 0.444519 0.613739\n0.503937 0.445038 0.613953\n0.541595 0.445801 0.614166\n0.582275 0.446320 0.614380\n0.625610 0.446838 0.614563\n0.671295 0.447571 0.614777\n0.718811 0.448029 0.615021\n0.767883 0.448700 0.615173\n0.817871 0.449310 0.615387\n0.868866 0.449799 0.615631\n0.915527 0.450348 0.615753\n0.000000 0.459351 0.609497\n0.000000 0.459930 0.609741\n0.018097 0.460632 0.609955\n0.044525 0.461212 0.610168\n0.078003 0.461700 0.610413\n0.105164 0.462494 0.610626\n0.130463 0.463013 0.610840\n0.153961 0.463562 0.611084\n0.175903 0.464325 0.611328\n0.196960 0.464874 0.611511\n0.216888 0.465637 0.611786\n0.236389 0.466187 0.612000\n0.255524 0.466736 0.612183\n0.274872 0.467499 0.612427\n0.294647 0.468018 0.612671\n0.315002 0.468536 0.612823\n0.336456 0.469299 0.613098\n0.359253 0.469849 0.613312\n0.383667 0.470581 0.613495\n0.410126 0.471130 0.613739\n0.439026 0.471680 0.613953\n0.470520 0.472382 0.614166\n0.504913 0.472931 0.614380\n0.542633 0.473450 0.614563\n0.583252 0.474182 0.614777\n0.626495 0.474701 0.615021\n0.671936 0.475220 0.615173\n0.719299 0.475891 0.615387\n0.768250 0.476440 0.615631\n0.818207 0.477020 0.615753\n0.869110 0.477600 0.615997\n0.915527 0.478088 0.616180\n0.000000 0.489685 0.609955\n0.000000 0.490204 0.610168\n0.020599 0.490967 0.610382\n0.048035 0.491486 0.610626\n0.080444 0.492249 0.610840\n0.107361 0.492767 0.611084\n0.132477 0.493347 0.611298\n0.155609 0.494049 0.611511\n0.177643 0.494659 0.611786\n0.198364 0.495300 0.612000\n0.218170 0.495911 0.612183\n0.237640 0.496460 0.612427\n0.256744 0.497101 0.612671\n0.276031 0.497742 0.612823\n0.295563 0.498291 0.613098\n0.316101 0.499054 0.613281\n0.337555 0.499573 0.613495\n0.360352 0.500092 0.613739\n0.384735 0.500793 0.613922\n0.411255 0.501343 0.614166\n0.440094 0.501892 0.614380\n0.471588 0.502625 0.614563\n0.505951 0.503113 0.614777\n0.543671 0.503754 0.615021\n0.584259 0.504333 0.615173\n0.627258 0.504822 0.615387\n0.672699 0.505554 0.615601\n0.720032 0.506042 0.615753\n0.768585 0.506531 0.615997\n0.818604 0.507202 0.616180\n0.869293 0.507690 0.616364\n0.915527 0.508148 0.616547\n0.000000 0.522797 0.610382\n0.000000 0.523376 0.610626\n0.023071 0.524109 0.610809\n0.051941 0.524628 0.611084\n0.083008 0.525177 0.611298\n0.109528 0.525879 0.611511\n0.134216 0.526428 0.611755\n0.157440 0.526947 0.612000\n0.179138 0.527740 0.612152\n0.199738 0.528290 0.612427\n0.219543 0.529053 0.612671\n0.238831 0.529541 0.612823\n0.257843 0.530060 0.613068\n0.277161 0.530792 0.613281\n0.296692 0.531372 0.613495\n0.317200 0.531830 0.613739\n0.338623 0.532593 0.613922\n0.361389 0.533112 0.614136\n0.385834 0.533600 0.614349\n0.412323 0.534363 0.614563\n0.441162 0.534821 0.614777\n0.472656 0.535400 0.614960\n0.507050 0.536041 0.615143\n0.544647 0.536530 0.615387\n0.585022 0.537018 0.615601\n0.628052 0.537720 0.615753\n0.673279 0.538177 0.615967\n0.720520 0.538666 0.616180\n0.769226 0.539337 0.616364\n0.818817 0.539825 0.616547\n0.869415 0.540253 0.616730\n0.915527 0.540924 0.616943\n0.000000 0.558990 0.610809\n0.000244 0.559570 0.611084\n0.025391 0.560120 0.611298\n0.056335 0.560608 0.611481\n0.085327 0.561371 0.611755\n0.111664 0.561859 0.612000\n0.136230 0.562561 0.612152\n0.159149 0.563141 0.612427\n0.180664 0.563629 0.612610\n0.201233 0.564392 0.612823\n0.220795 0.564880 0.613068\n0.240051 0.565369 0.613281\n0.259003 0.566040 0.613464\n0.278290 0.566650 0.613739\n0.297729 0.567108 0.613922\n0.318054 0.567780 0.614136\n0.339722 0.568298 0.614349\n0.362488 0.568756 0.614563\n0.386841 0.569519 0.614746\n0.413361 0.570007 0.614960\n0.442261 0.570465 0.615143\n0.473724 0.571167 0.615387\n0.508057 0.571655 0.615601\n0.545471 0.572052 0.615723\n0.585938 0.572632 0.615967\n0.628967 0.573242 0.616180\n0.674042 0.573669 0.616364\n0.720917 0.574097 0.616516\n0.769531 0.574707 0.616730\n0.819092 0.575165 0.616943\n0.869507 0.575592 0.617065\n0.915527 0.576202 0.617279\n0.000000 0.598022 0.611267\n0.002380 0.598511 0.611481\n0.027863 0.598969 0.611755\n0.059784 0.599640 0.611969\n0.087646 0.600189 0.612152\n0.113831 0.600647 0.612427\n0.138184 0.601166 0.612610\n0.160858 0.601837 0.612823\n0.182312 0.602295 0.613068\n0.202606 0.602844 0.613251\n0.222260 0.603485 0.613464\n0.241272 0.603943 0.613708\n0.260162 0.604462 0.613892\n0.279419 0.605103 0.614136\n0.298859 0.605591 0.614349\n0.319092 0.606018 0.614532\n0.340515 0.606689 0.614746\n0.363342 0.607147 0.614960\n0.387939 0.607574 0.615143\n0.414429 0.608276 0.615387\n0.443329 0.608704 0.615601\n0.474731 0.609131 0.615723\n0.509064 0.609619 0.615967\n0.546417 0.610168 0.616180\n0.586823 0.610565 0.616364\n0.629608 0.611023 0.616516\n0.674591 0.611633 0.616730\n0.721588 0.612030 0.616943\n0.769867 0.612427 0.617065\n0.819336 0.612793 0.617279\n0.869659 0.613403 0.617401\n0.915527 0.613770 0.617584\n0.000000 0.639221 0.611755\n0.004669 0.639709 0.611969\n0.030334 0.640381 0.612152\n0.062317 0.640839 0.612366\n0.089966 0.641235 0.612610\n0.115906 0.641693 0.612793\n0.139893 0.642365 0.613068\n0.162445 0.642761 0.613251\n0.183716 0.643188 0.613464\n0.204041 0.643860 0.613708\n0.223480 0.644287 0.613892\n0.242462 0.644714 0.614136\n0.261292 0.645233 0.614349\n0.280334 0.645782 0.614532\n0.299896 0.646149 0.614746\n0.320129 0.646545 0.614960\n0.341553 0.647217 0.615143\n0.364349 0.647614 0.615387\n0.388947 0.647980 0.615570\n0.415466 0.648407 0.615723\n0.444061 0.648956 0.615967\n0.475525 0.649384 0.616119\n0.509918 0.649750 0.616364\n0.547363 0.650116 0.616516\n0.587616 0.650696 0.616730\n0.630432 0.651062 0.616943\n0.675354 0.651428 0.617065\n0.722015 0.651733 0.617249\n0.770386 0.652313 0.617401\n0.819702 0.652649 0.617584\n0.869751 0.652954 0.617737\n0.915527 0.653290 0.617920\n0.000000 0.682617 0.612152\n0.007050 0.683075 0.612366\n0.032654 0.683472 0.612610\n0.064972 0.683899 0.612793\n0.092224 0.684235 0.613068\n0.118011 0.684845 0.613251\n0.141785 0.685211 0.613434\n0.164185 0.685577 0.613708\n0.185242 0.686096 0.613892\n0.205322 0.686554 0.614105\n0.224762 0.686920 0.614319\n0.243591 0.687286 0.614532\n0.262421 0.687775 0.614746\n0.281433 0.688202 0.614960\n0.300995 0.688568 0.615143\n0.321198 0.688904 0.615356\n0.342621 0.689270 0.615570\n0.365356 0.689819 0.615723\n0.390015 0.690186 0.615967\n0.416504 0.690491 0.616119\n0.445068 0.690826 0.616333\n0.476471 0.691345 0.616516\n0.510834 0.691681 0.616730\n0.548248 0.691986 0.616913\n0.588379 0.692291 0.617065\n0.631104 0.692566 0.617249\n0.675995 0.693146 0.617401\n0.722687 0.693420 0.617584\n0.770721 0.693726 0.617706\n0.819977 0.694000 0.617920\n0.869812 0.694214 0.618042\n0.915527 0.694763 0.618195\n0.000000 0.727539 0.612579\n0.009399 0.727875 0.612793\n0.035095 0.728241 0.613037\n0.067352 0.728607 0.613251\n0.094482 0.729095 0.613434\n0.119904 0.729401 0.613678\n0.143677 0.729675 0.613892\n0.165741 0.729980 0.614105\n0.186798 0.730286 0.614319\n0.206665 0.730835 0.614502\n0.226013 0.731171 0.614716\n0.244751 0.731415 0.614929\n0.263519 0.731689 0.615112\n0.282440 0.731964 0.615356\n0.302002 0.732513 0.615570\n0.322235 0.732758 0.615723\n0.343628 0.733063 0.615936\n0.366364 0.733307 0.616119\n0.390778 0.733582 0.616333\n0.417267 0.734070 0.616516\n0.446045 0.734344 0.616730\n0.477478 0.734589 0.616913\n0.511749 0.734863 0.617065\n0.548981 0.735107 0.617249\n0.589233 0.735413 0.617401\n0.631805 0.735840 0.617584\n0.676575 0.736053 0.617706\n0.723083 0.736267 0.617889\n0.770996 0.736542 0.618042\n0.820160 0.736755 0.618195\n0.869904 0.736908 0.618378\n0.915527 0.737183 0.618500\n0.000000 0.773743 0.613037\n0.011810 0.773956 0.613220\n0.037506 0.774170 0.613434\n0.069733 0.774475 0.613678\n0.096710 0.774689 0.613892\n0.121887 0.775116 0.614105\n0.145325 0.775360 0.614319\n0.167450 0.775604 0.614502\n0.188171 0.775848 0.614716\n0.207916 0.776062 0.614929\n0.227173 0.776306 0.615112\n0.245911 0.776642 0.615356\n0.264618 0.776978 0.615570\n0.283478 0.777161 0.615723\n0.302948 0.777374 0.615936\n0.323242 0.777618 0.616119\n0.344635 0.777802 0.616333\n0.367371 0.778015 0.616486\n0.391785 0.778229 0.616730\n0.418243 0.778564 0.616913\n0.447021 0.778809 0.617065\n0.478455 0.779022 0.617249\n0.512573 0.779205 0.617401\n0.549896 0.779388 0.617554\n0.589844 0.779572 0.617706\n0.632538 0.779755 0.617889\n0.677032 0.779968 0.618042\n0.723511 0.780334 0.618195\n0.771332 0.780487 0.618378\n0.820312 0.780670 0.618500\n0.870117 0.780792 0.618683\n0.915527 0.780975 0.618774\n0.000000 0.820557 0.613434\n0.014252 0.820770 0.613678\n0.039795 0.820892 0.613861\n0.072266 0.821106 0.614075\n0.098846 0.821259 0.614319\n0.123871 0.821625 0.614502\n0.147186 0.821808 0.614716\n0.168945 0.821899 0.614929\n0.189514 0.822113 0.615112\n0.209198 0.822266 0.615356\n0.228363 0.822388 0.615570\n0.247040 0.822540 0.615723\n0.265686 0.822693 0.615936\n0.284546 0.822815 0.616089\n0.303894 0.823120 0.616333\n0.324249 0.823364 0.616486\n0.345490 0.823456 0.616730\n0.368195 0.823608 0.616913\n0.392731 0.823792 0.617065\n0.419220 0.823883 0.617249\n0.447968 0.823975 0.617401\n0.479126 0.824127 0.617554\n0.513397 0.824249 0.617706\n0.550568 0.824402 0.617889\n0.590637 0.824463 0.618042\n0.633057 0.824768 0.618195\n0.677673 0.824921 0.618378\n0.723999 0.825043 0.618500\n0.771820 0.825165 0.618652\n0.820526 0.825256 0.618774\n0.870331 0.825378 0.618927\n0.915527 0.825439 0.619049\n0.000000 0.867981 0.613861\n0.016479 0.868103 0.614075\n0.042053 0.868286 0.614319\n0.074585 0.868378 0.614502\n0.100983 0.868439 0.614716\n0.125824 0.868530 0.614929\n0.148743 0.868622 0.615112\n0.170502 0.868713 0.615356\n0.190887 0.868744 0.615540\n0.210541 0.868835 0.615723\n0.229523 0.868896 0.615936\n0.248138 0.868988 0.616089\n0.266754 0.869049 0.616333\n0.285583 0.869110 0.616486\n0.304810 0.869202 0.616699\n0.324982 0.869263 0.616852\n0.346344 0.869293 0.617035\n0.369080 0.869385 0.617218\n0.393646 0.869446 0.617401\n0.420074 0.869568 0.617554\n0.448669 0.869720 0.617706\n0.480042 0.869781 0.617889\n0.514221 0.869934 0.618042\n0.551361 0.869995 0.618164\n0.591248 0.870087 0.618378\n0.633698 0.870087 0.618500\n0.678070 0.870148 0.618652\n0.724335 0.870178 0.618774\n0.772095 0.870270 0.618896\n0.820892 0.870331 0.619049\n0.870453 0.870361 0.619171\n0.915527 0.870361 0.619324\n0.000000 0.915527 0.614288\n0.018860 0.915527 0.614441\n0.044342 0.915527 0.614716\n0.076874 0.915527 0.614899\n0.103088 0.915527 0.615112\n0.127533 0.915527 0.615326\n0.150513 0.915527 0.615540\n0.172028 0.915527 0.615723\n0.192352 0.915527 0.615875\n0.211853 0.915527 0.616089\n0.230682 0.915527 0.616333\n0.249176 0.915527 0.616486\n0.267761 0.915527 0.616699\n0.286530 0.915527 0.616852\n0.305786 0.915527 0.617035\n0.325928 0.915527 0.617218\n0.347260 0.915527 0.617401\n0.369965 0.915527 0.617554\n0.394348 0.915527 0.617706\n0.420776 0.915527 0.617889\n0.449554 0.915527 0.618042\n0.480804 0.915527 0.618164\n0.514832 0.915527 0.618347\n0.552185 0.915527 0.618469\n0.591949 0.915527 0.618652\n0.634247 0.915527 0.618774\n0.678650 0.915527 0.618896\n0.724854 0.915527 0.619049\n0.772308 0.915527 0.619171\n0.821075 0.915527 0.619324\n0.870514 0.915527 0.619385\n0.915527 0.915527 0.619537\n0.000000 0.000000 0.630798\n0.000000 0.000000 0.630951\n0.000000 0.000000 0.631042\n0.004211 0.000000 0.631165\n0.031036 0.000000 0.631287\n0.064697 0.000000 0.631439\n0.093689 0.000000 0.631622\n0.120636 0.000000 0.631744\n0.145905 0.000000 0.631866\n0.169250 0.000000 0.632050\n0.191559 0.000000 0.632233\n0.212585 0.000000 0.632355\n0.233154 0.000000 0.632538\n0.253510 0.000000 0.632690\n0.273712 0.000000 0.632874\n0.294525 0.000000 0.633057\n0.316101 0.000000 0.633240\n0.338837 0.000000 0.633423\n0.363129 0.000000 0.633606\n0.389496 0.000000 0.633789\n0.418243 0.000000 0.633942\n0.449707 0.000000 0.634155\n0.484253 0.000000 0.634338\n0.522400 0.000000 0.634521\n0.564148 0.000000 0.634705\n0.609100 0.000000 0.634918\n0.656647 0.000000 0.635132\n0.706604 0.000000 0.635284\n0.758301 0.000000 0.635559\n0.811493 0.000000 0.635712\n0.865662 0.000153 0.635925\n0.915527 0.001404 0.636139\n0.000000 0.000000 0.631042\n0.000000 0.000000 0.631165\n0.000000 0.000000 0.631287\n0.005585 0.000000 0.631439\n0.032501 0.000000 0.631622\n0.066254 0.000000 0.631714\n0.095154 0.000000 0.631866\n0.122009 0.000000 0.632019\n0.147125 0.000000 0.632172\n0.170502 0.000305 0.632355\n0.192627 0.001312 0.632538\n0.213623 0.002380 0.632690\n0.234192 0.003510 0.632874\n0.254242 0.004669 0.633026\n0.274689 0.005920 0.633240\n0.295288 0.007263 0.633423\n0.317017 0.008453 0.633545\n0.339813 0.009796 0.633759\n0.364105 0.011078 0.633942\n0.390472 0.012390 0.634125\n0.419250 0.013733 0.634338\n0.450745 0.015137 0.634521\n0.485229 0.016449 0.634705\n0.523315 0.017853 0.634918\n0.565002 0.019440 0.635132\n0.609741 0.020874 0.635284\n0.657379 0.022278 0.635529\n0.707153 0.023712 0.635712\n0.758789 0.025177 0.635925\n0.811829 0.026672 0.636139\n0.865814 0.028290 0.636322\n0.915527 0.029816 0.636536\n0.000000 0.018890 0.631287\n0.000000 0.019897 0.631439\n0.000000 0.020935 0.631592\n0.007111 0.021942 0.631714\n0.034180 0.023010 0.631866\n0.068024 0.024017 0.632019\n0.096619 0.025146 0.632172\n0.123566 0.026367 0.632324\n0.148438 0.027496 0.632538\n0.171814 0.028717 0.632690\n0.193726 0.029968 0.632874\n0.214691 0.031128 0.633026\n0.235199 0.032410 0.633240\n0.255249 0.033661 0.633423\n0.275513 0.034973 0.633545\n0.296265 0.036255 0.633759\n0.317780 0.037567 0.633911\n0.340515 0.038910 0.634125\n0.365051 0.040253 0.634308\n0.391449 0.041626 0.634491\n0.420258 0.042969 0.634705\n0.451752 0.044373 0.634918\n0.486237 0.045776 0.635101\n0.524323 0.048370 0.635284\n0.565948 0.050720 0.635529\n0.610687 0.053375 0.635712\n0.658081 0.056335 0.635925\n0.707825 0.058807 0.636139\n0.759338 0.060425 0.636322\n0.812286 0.062012 0.636536\n0.865997 0.063629 0.636780\n0.915527 0.065338 0.636963\n0.000000 0.050171 0.631592\n0.000000 0.052032 0.631714\n0.000000 0.053925 0.631866\n0.008698 0.055695 0.632019\n0.035858 0.057861 0.632172\n0.069702 0.059387 0.632324\n0.098389 0.060638 0.632538\n0.125000 0.061920 0.632690\n0.149750 0.063141 0.632843\n0.173004 0.064392 0.633026\n0.194885 0.065735 0.633240\n0.215820 0.067078 0.633362\n0.236237 0.068451 0.633545\n0.256256 0.069855 0.633759\n0.276428 0.071259 0.633911\n0.297211 0.072693 0.634125\n0.318756 0.074097 0.634308\n0.341522 0.075592 0.634491\n0.366058 0.077057 0.634705\n0.392456 0.078461 0.634918\n0.421051 0.079987 0.635101\n0.452545 0.081482 0.635284\n0.487305 0.082916 0.635529\n0.525391 0.084442 0.635712\n0.566956 0.085938 0.635925\n0.611633 0.087463 0.636139\n0.658997 0.089020 0.636292\n0.708588 0.090485 0.636536\n0.759766 0.092010 0.636780\n0.812531 0.093567 0.636932\n0.866089 0.095032 0.637177\n0.915527 0.096588 0.637360\n0.000000 0.085724 0.631866\n0.000000 0.086639 0.632019\n0.000000 0.087830 0.632172\n0.010406 0.089081 0.632324\n0.037659 0.090240 0.632507\n0.071533 0.091217 0.632690\n0.100037 0.092529 0.632843\n0.126434 0.093781 0.633026\n0.151062 0.095001 0.633209\n0.174255 0.096344 0.633362\n0.196045 0.097473 0.633545\n0.216919 0.098724 0.633759\n0.237274 0.100037 0.633911\n0.257294 0.101349 0.634125\n0.277435 0.102692 0.634308\n0.298218 0.104095 0.634491\n0.319733 0.105347 0.634674\n0.342529 0.106720 0.634918\n0.367004 0.108032 0.635101\n0.393402 0.109344 0.635254\n0.422119 0.110748 0.635529\n0.453583 0.112122 0.635681\n0.488342 0.113556 0.635925\n0.526398 0.114960 0.636139\n0.567810 0.116333 0.636292\n0.612457 0.117798 0.636536\n0.659668 0.119202 0.636749\n0.709137 0.120422 0.636932\n0.760376 0.121796 0.637177\n0.812836 0.123230 0.637360\n0.866425 0.124634 0.637573\n0.915527 0.126068 0.637787\n0.000000 0.116364 0.632172\n0.000000 0.117432 0.632324\n0.000000 0.118408 0.632507\n0.012177 0.119537 0.632690\n0.039398 0.120667 0.632843\n0.073486 0.121643 0.632996\n0.101807 0.122833 0.633209\n0.128113 0.124023 0.633362\n0.152649 0.125214 0.633545\n0.175568 0.126221 0.633759\n0.197266 0.127441 0.633911\n0.218048 0.128662 0.634125\n0.238342 0.129944 0.634308\n0.258331 0.130951 0.634491\n0.278473 0.132233 0.634674\n0.299042 0.133453 0.634888\n0.320740 0.134766 0.635101\n0.343536 0.136017 0.635254\n0.367920 0.137085 0.635529\n0.394318 0.138367 0.635681\n0.423126 0.139648 0.635925\n0.454651 0.140930 0.636108\n0.489258 0.142120 0.636292\n0.527313 0.143311 0.636505\n0.568756 0.144592 0.636749\n0.613281 0.145905 0.636932\n0.660431 0.147186 0.637177\n0.709686 0.148499 0.637329\n0.760834 0.149567 0.637573\n0.813324 0.150879 0.637787\n0.866669 0.152130 0.638000\n0.915527 0.153473 0.638245\n0.000000 0.144928 0.632507\n0.000000 0.145966 0.632660\n0.000000 0.147034 0.632843\n0.014099 0.147858 0.632996\n0.041321 0.148956 0.633209\n0.075531 0.150024 0.633362\n0.103668 0.150940 0.633545\n0.129700 0.152008 0.633728\n0.154053 0.153076 0.633911\n0.176880 0.154083 0.634094\n0.198486 0.155182 0.634277\n0.219177 0.156342 0.634491\n0.239319 0.157257 0.634674\n0.259369 0.158417 0.634888\n0.279510 0.159576 0.635101\n0.300049 0.160583 0.635254\n0.321564 0.161652 0.635498\n0.344513 0.162872 0.635681\n0.368958 0.163879 0.635864\n0.395386 0.165009 0.636108\n0.424194 0.166168 0.636292\n0.455688 0.167328 0.636505\n0.490295 0.168304 0.636749\n0.528290 0.169495 0.636932\n0.569763 0.170685 0.637146\n0.614258 0.171875 0.637329\n0.661316 0.172821 0.637573\n0.710388 0.174042 0.637787\n0.761292 0.175201 0.637970\n0.813599 0.176147 0.638214\n0.866791 0.177338 0.638428\n0.915527 0.178528 0.638611\n0.000000 0.171326 0.632843\n0.000000 0.172272 0.632996\n0.000000 0.173157 0.633209\n0.016083 0.174103 0.633362\n0.043213 0.175018 0.633514\n0.077423 0.175873 0.633728\n0.105347 0.176910 0.633911\n0.131409 0.177734 0.634094\n0.155518 0.178711 0.634277\n0.178192 0.179779 0.634491\n0.199707 0.180573 0.634674\n0.220367 0.181671 0.634888\n0.240387 0.182617 0.635071\n0.260406 0.183533 0.635254\n0.280487 0.184662 0.635498\n0.301117 0.185486 0.635681\n0.322632 0.186584 0.635864\n0.345520 0.187653 0.636108\n0.369965 0.188477 0.636261\n0.396423 0.189606 0.636505\n0.425293 0.190521 0.636749\n0.456818 0.191559 0.636902\n0.491302 0.192657 0.637146\n0.529297 0.193604 0.637329\n0.570770 0.194580 0.637573\n0.615204 0.195679 0.637756\n0.661987 0.196564 0.637970\n0.711182 0.197632 0.638214\n0.761902 0.198669 0.638428\n0.813934 0.199554 0.638611\n0.866913 0.200623 0.638885\n0.915527 0.201599 0.639069\n0.000000 0.195740 0.633209\n0.000000 0.196472 0.633331\n0.000000 0.197388 0.633514\n0.018036 0.198090 0.633728\n0.045135 0.199036 0.633911\n0.079529 0.199829 0.634094\n0.107269 0.200714 0.634277\n0.133026 0.201508 0.634491\n0.157196 0.202423 0.634644\n0.179779 0.203400 0.634888\n0.200958 0.204163 0.635071\n0.221527 0.205139 0.635254\n0.241547 0.205902 0.635498\n0.261383 0.206909 0.635651\n0.281494 0.207672 0.635864\n0.302155 0.208649 0.636047\n0.323639 0.209595 0.636261\n0.346527 0.210449 0.636505\n0.371063 0.211426 0.636688\n0.397491 0.212250 0.636902\n0.426331 0.213257 0.637146\n0.457855 0.213989 0.637329\n0.492401 0.215027 0.637573\n0.530396 0.216034 0.637756\n0.571808 0.216827 0.637970\n0.615967 0.217804 0.638214\n0.662811 0.218567 0.638428\n0.711731 0.219604 0.638611\n0.762329 0.220398 0.638824\n0.814209 0.221405 0.639038\n0.867096 0.222412 0.639252\n0.915527 0.223145 0.639526\n0.000000 0.218353 0.633514\n0.000000 0.219116 0.633728\n0.000000 0.219849 0.633911\n0.020050 0.220612 0.634094\n0.048340 0.221405 0.634277\n0.081512 0.222198 0.634491\n0.109222 0.222961 0.634644\n0.134766 0.223633 0.634888\n0.158630 0.224548 0.635071\n0.181091 0.225311 0.635254\n0.202271 0.226166 0.635498\n0.222778 0.227020 0.635651\n0.242645 0.227753 0.635864\n0.262482 0.228668 0.636047\n0.282623 0.229401 0.636261\n0.303223 0.230194 0.636475\n0.324738 0.231049 0.636688\n0.347534 0.231995 0.636902\n0.372162 0.232697 0.637146\n0.398621 0.233643 0.637329\n0.427460 0.234344 0.637543\n0.458954 0.235291 0.637756\n0.493500 0.235992 0.637970\n0.531464 0.236969 0.638214\n0.572693 0.237671 0.638397\n0.616913 0.238586 0.638580\n0.663696 0.239319 0.638824\n0.712494 0.240234 0.639038\n0.762970 0.240967 0.639252\n0.814697 0.241882 0.639526\n0.867188 0.242615 0.639679\n0.915527 0.243530 0.639893\n0.000000 0.239716 0.633911\n0.000000 0.240356 0.634094\n0.000000 0.240997 0.634277\n0.022247 0.241821 0.634491\n0.051819 0.242401 0.634644\n0.083588 0.243286 0.634857\n0.111084 0.243927 0.635071\n0.136414 0.244720 0.635254\n0.160217 0.245392 0.635498\n0.182465 0.246094 0.635651\n0.203644 0.246887 0.635864\n0.223969 0.247559 0.636047\n0.243805 0.248383 0.636261\n0.263611 0.249054 0.636475\n0.283600 0.249908 0.636688\n0.304321 0.250580 0.636902\n0.325836 0.251465 0.637146\n0.348633 0.252136 0.637299\n0.373260 0.252991 0.637543\n0.399689 0.253662 0.637756\n0.428558 0.254547 0.637970\n0.459839 0.255188 0.638184\n0.494568 0.256134 0.638397\n0.532501 0.256775 0.638580\n0.573669 0.257568 0.638824\n0.617889 0.258301 0.639038\n0.664368 0.259155 0.639252\n0.713074 0.259827 0.639465\n0.763367 0.260681 0.639679\n0.815002 0.261383 0.639893\n0.867340 0.262054 0.640167\n0.915527 0.262909 0.640350\n0.000000 0.259949 0.634247\n0.000000 0.260681 0.634491\n0.000000 0.261322 0.634644\n0.024292 0.261871 0.634857\n0.055573 0.262695 0.635040\n0.085785 0.263245 0.635254\n0.112946 0.264099 0.635437\n0.138275 0.264679 0.635651\n0.161835 0.265350 0.635834\n0.183838 0.266083 0.636047\n0.205048 0.266724 0.636230\n0.225189 0.267517 0.636475\n0.244965 0.268127 0.636688\n0.264771 0.268951 0.636902\n0.284698 0.269592 0.637115\n0.305420 0.270325 0.637299\n0.326935 0.271027 0.637543\n0.349762 0.271729 0.637756\n0.374268 0.272461 0.637909\n0.400818 0.273071 0.638184\n0.429443 0.273956 0.638397\n0.460938 0.274597 0.638580\n0.495636 0.275391 0.638824\n0.533600 0.276031 0.639038\n0.574707 0.276855 0.639221\n0.618774 0.277496 0.639465\n0.665253 0.278168 0.639679\n0.713776 0.278931 0.639893\n0.763977 0.279572 0.640167\n0.815277 0.280396 0.640320\n0.867493 0.280975 0.640564\n0.915527 0.281830 0.640778\n0.000000 0.279663 0.634644\n0.000000 0.280396 0.634857\n0.000580 0.280945 0.635040\n0.026611 0.281616 0.635254\n0.059296 0.282257 0.635437\n0.087891 0.282806 0.635651\n0.114960 0.283630 0.635834\n0.139893 0.284119 0.636047\n0.163330 0.284821 0.636230\n0.185425 0.285522 0.636475\n0.206329 0.286102 0.636688\n0.226440 0.286926 0.636871\n0.246155 0.287445 0.637115\n0.265869 0.288269 0.637299\n0.285797 0.288879 0.637543\n0.306366 0.289551 0.637726\n0.327972 0.290222 0.637909\n0.350800 0.290833 0.638184\n0.375214 0.291595 0.638397\n0.401703 0.292236 0.638580\n0.430511 0.292969 0.638794\n0.462067 0.293610 0.639008\n0.496735 0.294220 0.639221\n0.534485 0.295013 0.639465\n0.575745 0.295593 0.639679\n0.619598 0.296417 0.639893\n0.665955 0.296967 0.640106\n0.714386 0.297638 0.640320\n0.764496 0.298370 0.640564\n0.815735 0.298981 0.640778\n0.867737 0.299774 0.640961\n0.915527 0.300323 0.641205\n0.000000 0.299164 0.635040\n0.000000 0.299866 0.635223\n0.002502 0.300385 0.635437\n0.028717 0.301147 0.635590\n0.061584 0.301666 0.635834\n0.090179 0.302185 0.636017\n0.117004 0.302948 0.636230\n0.141724 0.303497 0.636475\n0.165070 0.304138 0.636658\n0.186859 0.304840 0.636871\n0.207672 0.305389 0.637115\n0.227661 0.306183 0.637299\n0.247345 0.306763 0.637512\n0.266998 0.307281 0.637726\n0.286957 0.308075 0.637909\n0.307465 0.308624 0.638184\n0.329102 0.309418 0.638397\n0.351898 0.309998 0.638580\n0.376282 0.310669 0.638794\n0.402771 0.311340 0.639008\n0.431671 0.311890 0.639221\n0.463196 0.312683 0.639465\n0.497833 0.313263 0.639679\n0.535583 0.313843 0.639893\n0.576752 0.314606 0.640106\n0.620544 0.315186 0.640320\n0.666748 0.315948 0.640564\n0.715149 0.316528 0.640717\n0.764923 0.317200 0.640961\n0.816101 0.317810 0.641205\n0.867981 0.318359 0.641357\n0.915527 0.319122 0.641571\n0.000000 0.318726 0.635437\n0.000000 0.319458 0.635590\n0.004639 0.319977 0.635834\n0.031006 0.320709 0.636017\n0.063995 0.321259 0.636230\n0.092316 0.321777 0.636475\n0.118774 0.322540 0.636658\n0.143646 0.323059 0.636871\n0.166595 0.323761 0.637115\n0.188263 0.324341 0.637268\n0.208954 0.324890 0.637512\n0.229034 0.325653 0.637726\n0.248566 0.326233 0.637909\n0.268158 0.326782 0.638184\n0.288086 0.327545 0.638397\n0.308563 0.328064 0.638550\n0.330109 0.328857 0.638794\n0.352997 0.329407 0.639008\n0.377411 0.329956 0.639221\n0.403961 0.330719 0.639465\n0.432800 0.331268 0.639618\n0.464294 0.331970 0.639893\n0.498810 0.332581 0.640106\n0.536652 0.333130 0.640320\n0.577606 0.333893 0.640564\n0.621521 0.334473 0.640717\n0.667664 0.335236 0.640961\n0.715668 0.335815 0.641174\n0.765564 0.336304 0.641357\n0.816406 0.337067 0.641571\n0.868134 0.337646 0.641815\n0.915527 0.338165 0.641998\n0.000000 0.339020 0.635803\n0.000000 0.339539 0.636017\n0.006897 0.340271 0.636230\n0.033325 0.340820 0.636444\n0.066315 0.341309 0.636658\n0.094482 0.342072 0.636871\n0.120789 0.342560 0.637054\n0.145294 0.343170 0.637268\n0.168304 0.343842 0.637512\n0.189789 0.344421 0.637726\n0.210297 0.345154 0.637909\n0.230377 0.345673 0.638123\n0.249695 0.346222 0.638367\n0.269318 0.346985 0.638550\n0.289185 0.347534 0.638794\n0.309692 0.348145 0.639008\n0.331268 0.348846 0.639221\n0.354126 0.349365 0.639435\n0.378510 0.350128 0.639618\n0.405029 0.350708 0.639893\n0.433899 0.351318 0.640106\n0.465424 0.351990 0.640320\n0.499908 0.352539 0.640533\n0.537720 0.353180 0.640717\n0.578613 0.353851 0.640961\n0.622284 0.354401 0.641174\n0.668335 0.355103 0.641357\n0.716431 0.355682 0.641571\n0.765930 0.356262 0.641815\n0.816650 0.356934 0.641968\n0.868286 0.357452 0.642212\n0.915527 0.358063 0.642365\n0.000000 0.360107 0.636230\n0.000000 0.360626 0.636444\n0.009186 0.361206 0.636658\n0.035706 0.361877 0.636841\n0.068878 0.362366 0.637054\n0.096832 0.363129 0.637268\n0.122833 0.363678 0.637512\n0.147186 0.364197 0.637726\n0.169861 0.364960 0.637878\n0.191345 0.365448 0.638123\n0.211853 0.365997 0.638367\n0.231598 0.366760 0.638550\n0.250885 0.367310 0.638794\n0.270447 0.368073 0.638977\n0.290283 0.368622 0.639221\n0.310730 0.369141 0.639435\n0.332306 0.369934 0.639618\n0.355225 0.370422 0.639893\n0.379608 0.370972 0.640106\n0.406128 0.371735 0.640289\n0.434998 0.372284 0.640533\n0.466522 0.373016 0.640717\n0.500977 0.373566 0.640900\n0.538788 0.374084 0.641174\n0.579651 0.374878 0.641357\n0.623169 0.375397 0.641541\n0.669128 0.375916 0.641815\n0.716949 0.376648 0.641968\n0.766479 0.377197 0.642212\n0.817139 0.377930 0.642365\n0.868439 0.378479 0.642609\n0.915527 0.378937 0.642822\n0.000000 0.382233 0.636627\n0.000000 0.382965 0.636841\n0.011444 0.383484 0.637054\n0.037933 0.384003 0.637268\n0.071289 0.384766 0.637482\n0.098969 0.385254 0.637695\n0.124847 0.385986 0.637878\n0.148865 0.386505 0.638123\n0.171448 0.387115 0.638367\n0.192719 0.387817 0.638550\n0.213165 0.388397 0.638763\n0.232880 0.388885 0.638977\n0.252228 0.389709 0.639221\n0.271637 0.390198 0.639435\n0.291473 0.390900 0.639618\n0.311829 0.391510 0.639893\n0.333344 0.392059 0.640076\n0.356140 0.392792 0.640289\n0.380737 0.393341 0.640533\n0.407288 0.393890 0.640717\n0.436127 0.394684 0.640900\n0.467651 0.395172 0.641174\n0.502075 0.395874 0.641357\n0.539856 0.396423 0.641541\n0.580658 0.396973 0.641815\n0.624115 0.397736 0.641968\n0.669952 0.398254 0.642212\n0.717651 0.398773 0.642365\n0.766937 0.399536 0.642578\n0.817413 0.400024 0.642822\n0.868561 0.400513 0.643005\n0.915527 0.401245 0.643188\n0.000000 0.406158 0.637054\n0.000000 0.406647 0.637238\n0.013794 0.407257 0.637482\n0.040314 0.407928 0.637695\n0.073639 0.408447 0.637878\n0.101105 0.409210 0.638123\n0.126831 0.409729 0.638306\n0.150696 0.410278 0.638550\n0.173126 0.411011 0.638763\n0.194153 0.411560 0.638977\n0.214447 0.412109 0.639221\n0.234131 0.412903 0.639435\n0.253510 0.413391 0.639587\n0.272766 0.414154 0.639832\n0.292572 0.414703 0.640076\n0.312958 0.415253 0.640289\n0.334442 0.416016 0.640533\n0.357208 0.416565 0.640686\n0.381836 0.417175 0.640900\n0.408325 0.417847 0.641174\n0.437164 0.418396 0.641327\n0.468689 0.419128 0.641541\n0.503143 0.419647 0.641754\n0.540924 0.420227 0.641968\n0.581482 0.420929 0.642181\n0.625000 0.421448 0.642365\n0.670593 0.421967 0.642578\n0.718201 0.422729 0.642792\n0.767334 0.423218 0.643005\n0.817657 0.423798 0.643188\n0.868744 0.424469 0.643372\n0.915527 0.424927 0.643585\n0.000000 0.431671 0.637482\n0.000000 0.432465 0.637695\n0.016205 0.432953 0.637878\n0.042572 0.433472 0.638092\n0.076141 0.434235 0.638306\n0.103455 0.434784 0.638550\n0.128815 0.435394 0.638763\n0.152557 0.436096 0.638977\n0.174683 0.436615 0.639221\n0.195709 0.437408 0.639404\n0.215790 0.437927 0.639587\n0.235352 0.438446 0.639832\n0.254578 0.439209 0.640076\n0.273926 0.439758 0.640289\n0.293701 0.440399 0.640503\n0.314056 0.441071 0.640686\n0.335541 0.441589 0.640900\n0.358337 0.442383 0.641113\n0.382965 0.442902 0.641327\n0.409454 0.443420 0.641541\n0.438263 0.444214 0.641754\n0.469666 0.444733 0.641968\n0.504272 0.445251 0.642181\n0.541718 0.446014 0.642365\n0.582428 0.446503 0.642578\n0.625732 0.447235 0.642792\n0.671417 0.447723 0.642975\n0.718933 0.448273 0.643188\n0.767914 0.448975 0.643372\n0.817902 0.449524 0.643585\n0.868927 0.449982 0.643768\n0.915527 0.450653 0.643951\n0.000000 0.459595 0.637878\n0.000000 0.460175 0.638092\n0.018677 0.460876 0.638306\n0.044952 0.461365 0.638550\n0.078583 0.461975 0.638763\n0.105499 0.462708 0.638977\n0.130737 0.463226 0.639191\n0.154236 0.463989 0.639404\n0.176270 0.464569 0.639587\n0.197174 0.465057 0.639832\n0.217102 0.465851 0.640045\n0.236572 0.466370 0.640259\n0.255859 0.466888 0.640503\n0.275055 0.467682 0.640686\n0.294830 0.468201 0.640869\n0.315186 0.468994 0.641113\n0.336639 0.469513 0.641327\n0.359406 0.470001 0.641541\n0.384003 0.470825 0.641754\n0.410461 0.471313 0.641968\n0.439362 0.471985 0.642181\n0.470764 0.472595 0.642365\n0.505219 0.473114 0.642578\n0.542786 0.473694 0.642792\n0.583405 0.474365 0.642975\n0.626678 0.474823 0.643158\n0.672058 0.475616 0.643372\n0.719391 0.476105 0.643585\n0.768280 0.476593 0.643768\n0.818268 0.477295 0.643921\n0.869110 0.477814 0.644104\n0.915527 0.478241 0.644287\n0.000000 0.489838 0.638306\n0.000000 0.490509 0.638550\n0.021118 0.491150 0.638733\n0.048615 0.491669 0.638947\n0.080994 0.492462 0.639191\n0.107788 0.492981 0.639404\n0.132751 0.493622 0.639587\n0.156097 0.494293 0.639832\n0.177887 0.494843 0.640045\n0.198547 0.495605 0.640259\n0.218414 0.496094 0.640503\n0.237823 0.496643 0.640686\n0.257050 0.497375 0.640869\n0.276215 0.497986 0.641113\n0.295898 0.498444 0.641327\n0.316284 0.499237 0.641541\n0.337708 0.499725 0.641754\n0.360504 0.500427 0.641937\n0.385040 0.500977 0.642181\n0.411560 0.501556 0.642365\n0.440277 0.502228 0.642548\n0.471741 0.502808 0.642792\n0.506195 0.503296 0.642975\n0.543823 0.503998 0.643158\n0.584351 0.504547 0.643341\n0.627533 0.504974 0.643524\n0.672821 0.505737 0.643768\n0.720123 0.506226 0.643921\n0.768707 0.506683 0.644104\n0.818665 0.507385 0.644287\n0.869324 0.507904 0.644501\n0.915527 0.508270 0.644684\n0.000000 0.523010 0.638733\n0.000000 0.523560 0.638947\n0.023438 0.524323 0.639191\n0.052917 0.524811 0.639404\n0.083344 0.525360 0.639587\n0.109955 0.526123 0.639832\n0.134735 0.526642 0.640045\n0.157684 0.527405 0.640259\n0.179474 0.527893 0.640503\n0.199921 0.528412 0.640656\n0.219910 0.529205 0.640869\n0.239014 0.529724 0.641113\n0.258118 0.530304 0.641296\n0.277344 0.531006 0.641541\n0.296997 0.531494 0.641724\n0.317383 0.532043 0.641937\n0.338806 0.532745 0.642181\n0.361542 0.533264 0.642365\n0.386108 0.533936 0.642548\n0.412537 0.534485 0.642761\n0.441345 0.535034 0.642975\n0.472839 0.535736 0.643158\n0.507172 0.536255 0.643341\n0.544830 0.536682 0.643524\n0.585358 0.537323 0.643738\n0.628204 0.537903 0.643921\n0.673340 0.538361 0.644104\n0.720581 0.539001 0.644287\n0.769257 0.539520 0.644501\n0.818878 0.539978 0.644684\n0.869415 0.540466 0.644836\n0.915527 0.541077 0.645020\n0.000000 0.559265 0.639191\n0.000671 0.559784 0.639404\n0.025970 0.560303 0.639587\n0.057098 0.561005 0.639801\n0.085693 0.561554 0.640045\n0.112030 0.562073 0.640259\n0.136505 0.562805 0.640472\n0.159546 0.563324 0.640656\n0.181091 0.563812 0.640869\n0.201538 0.564545 0.641113\n0.221191 0.565063 0.641296\n0.240265 0.565521 0.641541\n0.259308 0.566284 0.641724\n0.278473 0.566803 0.641937\n0.298065 0.567261 0.642120\n0.318451 0.568024 0.642365\n0.339874 0.568481 0.642548\n0.362640 0.569031 0.642761\n0.387024 0.569702 0.642975\n0.413513 0.570129 0.643158\n0.442413 0.570709 0.643341\n0.473846 0.571350 0.643524\n0.508209 0.571777 0.643738\n0.545776 0.572205 0.643921\n0.586029 0.572937 0.644104\n0.629089 0.573395 0.644257\n0.674133 0.573822 0.644501\n0.721039 0.574463 0.644684\n0.769592 0.574890 0.644836\n0.819153 0.575348 0.645020\n0.869537 0.575867 0.645172\n0.915527 0.576355 0.645325\n0.000000 0.598206 0.639587\n0.002899 0.598663 0.639801\n0.028381 0.599182 0.640045\n0.060211 0.599854 0.640228\n0.088013 0.600372 0.640472\n0.114136 0.600830 0.640656\n0.138428 0.601501 0.640869\n0.161163 0.602020 0.641083\n0.182495 0.602478 0.641296\n0.202881 0.603210 0.641510\n0.222443 0.603638 0.641724\n0.241455 0.604126 0.641937\n0.260468 0.604828 0.642120\n0.279602 0.605255 0.642365\n0.298981 0.605743 0.642548\n0.319366 0.606384 0.642761\n0.340820 0.606842 0.642975\n0.363647 0.607330 0.643158\n0.388092 0.607758 0.643341\n0.414581 0.608368 0.643524\n0.443420 0.608826 0.643738\n0.474884 0.609253 0.643921\n0.509216 0.609894 0.644104\n0.546570 0.610321 0.644257\n0.586945 0.610748 0.644501\n0.629669 0.611237 0.644653\n0.674896 0.611786 0.644836\n0.721680 0.612183 0.644989\n0.769928 0.612549 0.645172\n0.819397 0.612915 0.645325\n0.869659 0.613525 0.645508\n0.915527 0.613892 0.645660\n0.000000 0.639435 0.640015\n0.005188 0.639862 0.640228\n0.030731 0.640533 0.640472\n0.062805 0.640961 0.640656\n0.090485 0.641418 0.640869\n0.116211 0.641998 0.641083\n0.140381 0.642487 0.641296\n0.162903 0.642914 0.641510\n0.183960 0.643372 0.641724\n0.204254 0.643982 0.641907\n0.223724 0.644440 0.642120\n0.242615 0.644836 0.642334\n0.261444 0.645508 0.642548\n0.280670 0.645905 0.642761\n0.300049 0.646332 0.642944\n0.320435 0.646820 0.643127\n0.341705 0.647339 0.643311\n0.364594 0.647766 0.643524\n0.389130 0.648163 0.643738\n0.415619 0.648499 0.643921\n0.444397 0.649139 0.644073\n0.475708 0.649475 0.644257\n0.510162 0.649872 0.644501\n0.547516 0.650299 0.644653\n0.587830 0.650848 0.644836\n0.630524 0.651184 0.644989\n0.675446 0.651520 0.645172\n0.722107 0.651917 0.645325\n0.770447 0.652466 0.645508\n0.819763 0.652771 0.645660\n0.869751 0.653107 0.645813\n0.915527 0.653442 0.645966\n0.000000 0.682861 0.640472\n0.007538 0.683258 0.640656\n0.033173 0.683655 0.640869\n0.065308 0.684021 0.641083\n0.092804 0.684601 0.641296\n0.118286 0.684967 0.641510\n0.142090 0.685333 0.641724\n0.164459 0.685730 0.641907\n0.185638 0.686340 0.642120\n0.205566 0.686707 0.642334\n0.224976 0.687103 0.642517\n0.243805 0.687408 0.642761\n0.262604 0.688019 0.642944\n0.281708 0.688354 0.643127\n0.301147 0.688690 0.643311\n0.321350 0.689026 0.643524\n0.342773 0.689331 0.643707\n0.365509 0.689911 0.643890\n0.390137 0.690247 0.644073\n0.416595 0.690582 0.644257\n0.445221 0.690918 0.644501\n0.476624 0.691498 0.644653\n0.510925 0.691803 0.644836\n0.548431 0.692108 0.644989\n0.588501 0.692444 0.645172\n0.631317 0.692841 0.645325\n0.676178 0.693268 0.645508\n0.722717 0.693481 0.645660\n0.770813 0.693787 0.645813\n0.820007 0.694092 0.645966\n0.869873 0.694489 0.646118\n0.915527 0.694824 0.646271\n0.000000 0.727722 0.640869\n0.009918 0.727997 0.641083\n0.035553 0.728333 0.641296\n0.067841 0.728821 0.641510\n0.095032 0.729187 0.641724\n0.120331 0.729462 0.641907\n0.144012 0.729797 0.642090\n0.166168 0.730133 0.642334\n0.187012 0.730438 0.642517\n0.206879 0.730896 0.642761\n0.226166 0.731232 0.642944\n0.244934 0.731506 0.643127\n0.263733 0.731781 0.643311\n0.282745 0.732208 0.643524\n0.302155 0.732574 0.643707\n0.322357 0.732849 0.643890\n0.343781 0.733154 0.644073\n0.366516 0.733398 0.644257\n0.390961 0.733826 0.644501\n0.417389 0.734222 0.644653\n0.446228 0.734467 0.644836\n0.477600 0.734772 0.644989\n0.511871 0.734955 0.645142\n0.549194 0.735168 0.645325\n0.589325 0.735596 0.645508\n0.631866 0.735931 0.645660\n0.676636 0.736145 0.645813\n0.723145 0.736359 0.645935\n0.771057 0.736572 0.646118\n0.820190 0.736816 0.646271\n0.869904 0.737030 0.646423\n0.915527 0.737366 0.646515\n0.000000 0.773834 0.641296\n0.012299 0.774048 0.641510\n0.037872 0.774261 0.641693\n0.070312 0.774536 0.641907\n0.097198 0.774811 0.642090\n0.122253 0.775238 0.642334\n0.145782 0.775452 0.642517\n0.167694 0.775696 0.642700\n0.188354 0.775940 0.642883\n0.208313 0.776154 0.643127\n0.227386 0.776398 0.643311\n0.246094 0.776764 0.643524\n0.264771 0.777008 0.643707\n0.283630 0.777222 0.643890\n0.303192 0.777496 0.644073\n0.323395 0.777710 0.644257\n0.344788 0.777863 0.644440\n0.367523 0.778107 0.644653\n0.391907 0.778259 0.644806\n0.418365 0.778748 0.644989\n0.447174 0.778900 0.645142\n0.478546 0.779114 0.645294\n0.512817 0.779266 0.645508\n0.549988 0.779480 0.645630\n0.589935 0.779633 0.645782\n0.632690 0.779816 0.645935\n0.677124 0.780029 0.646118\n0.723633 0.780426 0.646240\n0.771484 0.780518 0.646423\n0.820404 0.780701 0.646515\n0.870117 0.780853 0.646667\n0.915527 0.781036 0.646820\n0.000000 0.820648 0.641693\n0.014618 0.820831 0.641907\n0.040253 0.820984 0.642090\n0.072601 0.821136 0.642303\n0.099396 0.821472 0.642517\n0.124146 0.821716 0.642700\n0.147430 0.821808 0.642883\n0.169159 0.822021 0.643127\n0.189911 0.822144 0.643311\n0.209503 0.822296 0.643524\n0.228516 0.822449 0.643707\n0.247192 0.822601 0.643890\n0.265839 0.822754 0.644073\n0.284668 0.822906 0.644226\n0.304169 0.823151 0.644440\n0.324371 0.823395 0.644653\n0.345703 0.823517 0.644806\n0.368469 0.823700 0.644989\n0.392853 0.823792 0.645142\n0.419312 0.823944 0.645294\n0.448120 0.824066 0.645477\n0.479248 0.824158 0.645630\n0.513519 0.824310 0.645782\n0.550812 0.824463 0.645935\n0.590759 0.824554 0.646118\n0.633148 0.824860 0.646240\n0.677765 0.825012 0.646423\n0.724091 0.825104 0.646515\n0.771851 0.825195 0.646667\n0.820648 0.825287 0.646820\n0.870331 0.825409 0.646912\n0.915527 0.825470 0.647034\n0.000000 0.867981 0.642090\n0.017029 0.868164 0.642303\n0.042511 0.868347 0.642517\n0.074951 0.868378 0.642700\n0.101501 0.868469 0.642883\n0.126099 0.868561 0.643097\n0.149231 0.868622 0.643311\n0.170837 0.868713 0.643494\n0.191254 0.868774 0.643707\n0.210815 0.868835 0.643890\n0.229675 0.868958 0.644073\n0.248291 0.868988 0.644226\n0.266846 0.869110 0.644440\n0.285645 0.869110 0.644623\n0.305084 0.869202 0.644806\n0.325104 0.869263 0.644928\n0.346527 0.869354 0.645142\n0.369293 0.869385 0.645294\n0.393799 0.869446 0.645477\n0.420227 0.869568 0.645630\n0.448792 0.869720 0.645782\n0.480133 0.869873 0.645935\n0.514343 0.869934 0.646118\n0.551483 0.869995 0.646240\n0.591522 0.870087 0.646423\n0.633881 0.870148 0.646515\n0.678192 0.870178 0.646667\n0.724426 0.870239 0.646820\n0.772156 0.870270 0.646912\n0.820892 0.870331 0.647034\n0.870453 0.870361 0.647156\n0.915527 0.870422 0.647247\n0.000000 0.915527 0.642487\n0.019257 0.915527 0.642700\n0.044678 0.915527 0.642883\n0.077240 0.915527 0.643097\n0.103638 0.915527 0.643280\n0.128052 0.915527 0.643494\n0.150787 0.915527 0.643646\n0.172211 0.915527 0.643860\n0.192566 0.915527 0.644073\n0.212067 0.915527 0.644226\n0.230804 0.915527 0.644440\n0.249329 0.915527 0.644623\n0.267914 0.915527 0.644806\n0.286652 0.915527 0.644928\n0.305908 0.915527 0.645142\n0.326080 0.915527 0.645294\n0.347382 0.915527 0.645477\n0.370117 0.915527 0.645630\n0.394440 0.915527 0.645782\n0.420898 0.915527 0.645935\n0.449677 0.915527 0.646118\n0.481018 0.915527 0.646240\n0.515076 0.915527 0.646393\n0.552246 0.915527 0.646515\n0.592041 0.915527 0.646667\n0.634338 0.915527 0.646820\n0.678802 0.915527 0.646912\n0.724884 0.915527 0.647034\n0.772339 0.915527 0.647156\n0.821106 0.915527 0.647247\n0.870544 0.915527 0.647400\n0.915527 0.915527 0.647491\n0.000000 0.000000 0.661560\n0.000000 0.000000 0.661713\n0.000000 0.000000 0.661804\n0.004456 0.000000 0.661957\n0.031281 0.000000 0.662079\n0.065002 0.000000 0.662201\n0.093933 0.000000 0.662354\n0.120789 0.000000 0.662476\n0.146057 0.000000 0.662628\n0.169586 0.000000 0.662750\n0.191681 0.000000 0.662964\n0.212830 0.000000 0.663086\n0.233307 0.000000 0.663239\n0.253662 0.000000 0.663391\n0.273895 0.000000 0.663544\n0.294708 0.000000 0.663696\n0.316254 0.000000 0.663879\n0.338959 0.000000 0.664032\n0.363281 0.000000 0.664246\n0.389801 0.000000 0.664429\n0.418396 0.000000 0.664612\n0.449860 0.000000 0.664734\n0.484528 0.000000 0.664978\n0.522675 0.000000 0.665131\n0.564423 0.000000 0.665314\n0.609192 0.000000 0.665497\n0.656769 0.000000 0.665680\n0.706696 0.000000 0.665833\n0.758392 0.000000 0.666046\n0.811554 0.000000 0.666229\n0.865692 0.000671 0.666412\n0.915527 0.002014 0.666656\n0.000000 0.000000 0.661804\n0.000000 0.000000 0.661957\n0.000000 0.000000 0.662079\n0.005920 0.000000 0.662201\n0.032776 0.000000 0.662354\n0.066467 0.000000 0.662476\n0.095367 0.000000 0.662598\n0.122253 0.000000 0.662750\n0.147339 0.000000 0.662903\n0.170807 0.000732 0.663086\n0.192780 0.001770 0.663239\n0.213806 0.002899 0.663361\n0.234344 0.004028 0.663544\n0.254425 0.005219 0.663696\n0.274811 0.006439 0.663879\n0.295441 0.007629 0.664032\n0.317200 0.008942 0.664246\n0.339935 0.010193 0.664368\n0.364227 0.011475 0.664612\n0.390594 0.012817 0.664734\n0.419403 0.014160 0.664917\n0.450867 0.015717 0.665131\n0.485443 0.017090 0.665314\n0.523529 0.018494 0.665497\n0.565186 0.019897 0.665680\n0.609985 0.021332 0.665833\n0.657593 0.022736 0.666046\n0.707367 0.024353 0.666229\n0.758972 0.025848 0.666412\n0.811951 0.027283 0.666656\n0.865845 0.028809 0.666840\n0.915527 0.030273 0.666992\n0.000000 0.019287 0.662079\n0.000000 0.020203 0.662201\n0.000000 0.021271 0.662354\n0.007477 0.022308 0.662476\n0.034393 0.023438 0.662598\n0.068237 0.024567 0.662750\n0.097107 0.025635 0.662903\n0.123810 0.026703 0.663086\n0.148621 0.027863 0.663208\n0.171997 0.029053 0.663361\n0.193909 0.030304 0.663544\n0.214844 0.031555 0.663696\n0.235352 0.032806 0.663879\n0.255432 0.034119 0.664032\n0.275787 0.035400 0.664246\n0.296417 0.036652 0.664368\n0.317932 0.037994 0.664581\n0.340759 0.039337 0.664734\n0.365173 0.040680 0.664917\n0.391602 0.042053 0.665131\n0.420380 0.043396 0.665314\n0.451935 0.044830 0.665497\n0.486389 0.046997 0.665680\n0.524445 0.049316 0.665833\n0.566101 0.051910 0.666016\n0.610809 0.054565 0.666229\n0.658203 0.057190 0.666412\n0.707977 0.059387 0.666656\n0.759430 0.060944 0.666809\n0.812317 0.062531 0.666992\n0.865997 0.064209 0.667206\n0.915527 0.065796 0.667419\n0.000000 0.050690 0.662354\n0.000000 0.052582 0.662476\n0.000000 0.054626 0.662598\n0.009125 0.056702 0.662750\n0.036133 0.058502 0.662903\n0.070129 0.059753 0.663086\n0.098602 0.061005 0.663208\n0.125183 0.062286 0.663361\n0.150085 0.063660 0.663544\n0.173218 0.065033 0.663696\n0.195068 0.066376 0.663879\n0.215973 0.067749 0.664032\n0.236389 0.068970 0.664246\n0.256439 0.070374 0.664368\n0.276611 0.071747 0.664581\n0.297363 0.073151 0.664734\n0.318939 0.074554 0.664917\n0.341644 0.076050 0.665100\n0.366211 0.077454 0.665314\n0.392639 0.078979 0.665436\n0.421265 0.080475 0.665680\n0.452881 0.081909 0.665833\n0.487427 0.083435 0.666016\n0.525482 0.084900 0.666229\n0.567108 0.086426 0.666412\n0.611755 0.087921 0.666626\n0.659088 0.089447 0.666809\n0.708679 0.090973 0.666992\n0.759888 0.092468 0.667206\n0.812592 0.094025 0.667419\n0.866119 0.095520 0.667603\n0.915527 0.097046 0.667816\n0.000000 0.086060 0.662598\n0.000000 0.087189 0.662720\n0.000000 0.088196 0.662903\n0.010834 0.089417 0.663086\n0.037872 0.090607 0.663208\n0.071930 0.091858 0.663361\n0.100433 0.093048 0.663544\n0.126831 0.094116 0.663696\n0.151489 0.095428 0.663879\n0.174469 0.096710 0.664032\n0.196228 0.097992 0.664246\n0.217072 0.099304 0.664368\n0.237457 0.100464 0.664581\n0.257477 0.101807 0.664703\n0.277588 0.103149 0.664917\n0.298370 0.104492 0.665100\n0.319916 0.105835 0.665314\n0.342682 0.107208 0.665436\n0.367249 0.108582 0.665680\n0.393646 0.109985 0.665802\n0.422302 0.111298 0.666016\n0.453796 0.112579 0.666229\n0.488495 0.113983 0.666412\n0.526520 0.115387 0.666626\n0.568115 0.116791 0.666809\n0.612732 0.118195 0.666992\n0.659912 0.119598 0.667206\n0.709229 0.121063 0.667419\n0.760468 0.122437 0.667572\n0.812897 0.123840 0.667786\n0.866425 0.125275 0.667999\n0.915527 0.126526 0.668213\n0.000000 0.116730 0.662903\n0.000000 0.117798 0.663025\n0.000000 0.118866 0.663208\n0.012604 0.119843 0.663361\n0.039703 0.121063 0.663544\n0.073822 0.122192 0.663666\n0.102081 0.123169 0.663818\n0.128387 0.124420 0.664032\n0.152924 0.125580 0.664185\n0.175751 0.126740 0.664368\n0.197449 0.127808 0.664581\n0.218201 0.129089 0.664703\n0.238556 0.130280 0.664917\n0.258514 0.131531 0.665100\n0.278595 0.132568 0.665283\n0.299286 0.133820 0.665436\n0.320923 0.135132 0.665680\n0.343689 0.136383 0.665802\n0.368073 0.137695 0.666016\n0.394440 0.138824 0.666229\n0.423248 0.140015 0.666382\n0.454803 0.141327 0.666626\n0.489563 0.142639 0.666809\n0.527557 0.143921 0.666992\n0.568970 0.145081 0.667206\n0.613434 0.146301 0.667389\n0.660583 0.147614 0.667572\n0.709900 0.148895 0.667786\n0.760895 0.150177 0.667999\n0.813385 0.151428 0.668213\n0.866669 0.152557 0.668396\n0.915527 0.153839 0.668610\n0.000000 0.145416 0.663208\n0.000000 0.146271 0.663361\n0.000000 0.147308 0.663513\n0.014465 0.148315 0.663666\n0.041565 0.149292 0.663818\n0.075806 0.150360 0.664032\n0.103912 0.151428 0.664185\n0.130005 0.152374 0.664368\n0.154297 0.153503 0.664581\n0.177063 0.154541 0.664703\n0.198639 0.155518 0.664886\n0.219360 0.156677 0.665100\n0.239563 0.157806 0.665283\n0.259552 0.158752 0.665436\n0.279663 0.159882 0.665649\n0.300171 0.161041 0.665802\n0.321899 0.162079 0.666016\n0.344757 0.163208 0.666199\n0.369080 0.164398 0.666382\n0.395508 0.165527 0.666626\n0.424347 0.166534 0.666809\n0.455872 0.167694 0.666992\n0.490631 0.168884 0.667175\n0.528595 0.169830 0.667389\n0.569916 0.171051 0.667572\n0.614349 0.172180 0.667786\n0.661407 0.173401 0.667999\n0.710571 0.174377 0.668213\n0.761505 0.175537 0.668396\n0.813721 0.176727 0.668610\n0.866791 0.177765 0.668793\n0.915527 0.178833 0.668976\n0.000000 0.171814 0.663513\n0.000000 0.172577 0.663666\n0.000000 0.173553 0.663818\n0.016357 0.174316 0.664032\n0.043488 0.175354 0.664185\n0.077820 0.176147 0.664368\n0.105713 0.177155 0.664581\n0.131683 0.178223 0.664703\n0.155914 0.179047 0.664886\n0.178619 0.180115 0.665100\n0.199921 0.180939 0.665283\n0.220520 0.181946 0.665436\n0.240692 0.183044 0.665649\n0.260651 0.183868 0.665802\n0.280701 0.184937 0.665985\n0.301270 0.185974 0.666199\n0.322906 0.186890 0.666382\n0.345795 0.187958 0.666626\n0.370148 0.188934 0.666779\n0.396576 0.189880 0.666992\n0.425446 0.191010 0.667175\n0.456970 0.191864 0.667389\n0.491455 0.192963 0.667572\n0.529541 0.194031 0.667786\n0.570923 0.194916 0.667999\n0.615326 0.195984 0.668213\n0.662109 0.196991 0.668396\n0.711334 0.197937 0.668610\n0.761963 0.199005 0.668793\n0.813965 0.200043 0.668976\n0.866913 0.200958 0.669189\n0.915527 0.202026 0.669373\n0.000000 0.195984 0.663818\n0.000000 0.196747 0.664032\n0.000000 0.197662 0.664185\n0.018311 0.198517 0.664368\n0.045410 0.199310 0.664520\n0.079956 0.200256 0.664703\n0.107544 0.201019 0.664886\n0.133362 0.201935 0.665100\n0.157410 0.202728 0.665283\n0.179962 0.203674 0.665405\n0.201324 0.204437 0.665649\n0.221741 0.205383 0.665802\n0.241943 0.206329 0.665985\n0.261627 0.207214 0.666199\n0.281769 0.208099 0.666382\n0.302307 0.208954 0.666595\n0.323914 0.209961 0.666779\n0.346802 0.210693 0.666992\n0.371246 0.211731 0.667175\n0.397675 0.212524 0.667389\n0.426544 0.213531 0.667572\n0.458038 0.214508 0.667786\n0.492554 0.215302 0.667999\n0.530548 0.216309 0.668152\n0.571991 0.217102 0.668396\n0.616180 0.218079 0.668610\n0.662964 0.218872 0.668762\n0.711823 0.219910 0.668976\n0.762390 0.220856 0.669159\n0.814240 0.221649 0.669373\n0.867126 0.222687 0.669586\n0.915527 0.223450 0.669769\n0.000000 0.218567 0.664185\n0.000000 0.219452 0.664368\n0.000000 0.220123 0.664520\n0.020447 0.220978 0.664703\n0.048889 0.221649 0.664886\n0.082001 0.222534 0.665039\n0.109497 0.223206 0.665283\n0.135071 0.224091 0.665405\n0.158905 0.224792 0.665649\n0.181335 0.225708 0.665771\n0.202576 0.226410 0.665985\n0.222992 0.227325 0.666199\n0.242920 0.228027 0.666382\n0.262787 0.228943 0.666595\n0.282867 0.229675 0.666779\n0.303406 0.230591 0.666992\n0.324921 0.231323 0.667175\n0.347809 0.232239 0.667389\n0.372284 0.232941 0.667572\n0.398773 0.233917 0.667786\n0.427582 0.234619 0.667938\n0.459167 0.235565 0.668152\n0.493652 0.236267 0.668365\n0.531616 0.237213 0.668549\n0.573029 0.237976 0.668762\n0.617065 0.238861 0.668945\n0.663818 0.239716 0.669159\n0.712646 0.240509 0.669373\n0.763092 0.241272 0.669586\n0.814758 0.242126 0.669769\n0.867249 0.242981 0.669983\n0.915527 0.243774 0.670166\n0.000000 0.239990 0.664520\n0.000000 0.240601 0.664703\n0.000000 0.241272 0.664886\n0.022552 0.242035 0.665039\n0.052582 0.242676 0.665283\n0.084137 0.243530 0.665405\n0.111450 0.244141 0.665649\n0.136780 0.244965 0.665771\n0.160553 0.245605 0.665985\n0.182709 0.246490 0.666199\n0.203949 0.247131 0.666382\n0.224121 0.247925 0.666595\n0.244110 0.248627 0.666779\n0.263885 0.249512 0.666992\n0.283752 0.250153 0.667175\n0.304474 0.251038 0.667389\n0.325989 0.251709 0.667542\n0.348785 0.252350 0.667725\n0.373413 0.253235 0.667938\n0.399841 0.253876 0.668152\n0.428711 0.254822 0.668365\n0.460175 0.255463 0.668549\n0.494690 0.256348 0.668762\n0.532715 0.256989 0.668945\n0.573792 0.257874 0.669159\n0.618011 0.258545 0.669373\n0.664581 0.259430 0.669586\n0.713165 0.260101 0.669769\n0.763458 0.260956 0.669983\n0.815063 0.261597 0.670166\n0.867401 0.262451 0.670380\n0.915527 0.263123 0.670624\n0.000000 0.260162 0.664856\n0.000000 0.260956 0.665039\n0.000000 0.261505 0.665253\n0.024719 0.262085 0.665405\n0.056488 0.262878 0.665588\n0.086273 0.263458 0.665771\n0.113312 0.264313 0.665985\n0.138519 0.264893 0.666168\n0.162079 0.265717 0.666382\n0.184143 0.266296 0.666595\n0.205231 0.267120 0.666779\n0.225403 0.267731 0.666931\n0.245361 0.268372 0.667145\n0.264893 0.269196 0.667328\n0.284882 0.269775 0.667542\n0.305573 0.270660 0.667725\n0.327087 0.271271 0.667938\n0.349884 0.272095 0.668152\n0.374512 0.272705 0.668365\n0.400970 0.273315 0.668549\n0.429718 0.274170 0.668762\n0.461273 0.274811 0.668945\n0.495850 0.275635 0.669159\n0.533783 0.276245 0.669373\n0.574860 0.277100 0.669586\n0.618988 0.277679 0.669769\n0.665375 0.278534 0.669983\n0.713959 0.279144 0.670166\n0.764130 0.279785 0.670380\n0.815399 0.280579 0.670624\n0.867554 0.281219 0.670776\n0.915527 0.282043 0.670990\n0.000000 0.279846 0.665253\n0.000000 0.280579 0.665405\n0.000885 0.281128 0.665588\n0.026886 0.281891 0.665771\n0.059692 0.282440 0.665985\n0.088440 0.283173 0.666168\n0.115234 0.283813 0.666382\n0.140381 0.284332 0.666595\n0.163666 0.285126 0.666779\n0.185699 0.285736 0.666931\n0.206573 0.286438 0.667145\n0.226776 0.287109 0.667328\n0.246399 0.287659 0.667542\n0.266052 0.288483 0.667725\n0.285950 0.289032 0.667938\n0.306702 0.289917 0.668152\n0.328186 0.290466 0.668365\n0.350983 0.291046 0.668549\n0.375488 0.291840 0.668762\n0.401978 0.292419 0.668945\n0.430847 0.293243 0.669159\n0.462311 0.293854 0.669373\n0.496948 0.294647 0.669586\n0.534821 0.295227 0.669769\n0.575928 0.295807 0.669983\n0.619751 0.296600 0.670166\n0.666199 0.297211 0.670349\n0.714508 0.298004 0.670593\n0.764526 0.298584 0.670776\n0.815857 0.299255 0.670990\n0.867798 0.299957 0.671173\n0.915527 0.300537 0.671356\n0.000000 0.299500 0.665588\n0.000000 0.300079 0.665771\n0.002930 0.300537 0.665955\n0.029205 0.301300 0.666168\n0.061981 0.301849 0.666382\n0.090637 0.302399 0.666534\n0.117279 0.303162 0.666748\n0.142059 0.303741 0.666931\n0.165314 0.304474 0.667145\n0.187103 0.305054 0.667328\n0.207855 0.305664 0.667542\n0.227997 0.306366 0.667725\n0.247650 0.306946 0.667938\n0.267181 0.307648 0.668121\n0.287109 0.308258 0.668365\n0.307770 0.308838 0.668518\n0.329254 0.309601 0.668732\n0.352081 0.310181 0.668945\n0.376556 0.310974 0.669128\n0.403046 0.311523 0.669342\n0.431915 0.312225 0.669586\n0.463348 0.312897 0.669739\n0.498047 0.313446 0.669983\n0.535797 0.314240 0.670135\n0.576935 0.314819 0.670349\n0.620667 0.315369 0.670593\n0.666931 0.316162 0.670776\n0.715271 0.316711 0.670990\n0.765045 0.317474 0.671173\n0.816162 0.318054 0.671356\n0.868073 0.318573 0.671570\n0.915527 0.319366 0.671753\n0.000000 0.319122 0.665955\n0.000000 0.319672 0.666168\n0.005096 0.320160 0.666351\n0.031403 0.320923 0.666534\n0.064362 0.321411 0.666748\n0.092834 0.322083 0.666931\n0.119293 0.322723 0.667145\n0.143921 0.323273 0.667328\n0.166840 0.323975 0.667542\n0.188507 0.324554 0.667725\n0.209198 0.325104 0.667908\n0.229340 0.325867 0.668121\n0.248932 0.326416 0.668335\n0.268341 0.327179 0.668518\n0.288269 0.327728 0.668732\n0.308868 0.328308 0.668945\n0.330353 0.329041 0.669128\n0.353149 0.329620 0.669342\n0.377625 0.330261 0.669586\n0.404175 0.330933 0.669739\n0.432953 0.331482 0.669983\n0.464478 0.332245 0.670135\n0.498962 0.332794 0.670349\n0.536774 0.333496 0.670593\n0.577759 0.334076 0.670776\n0.621643 0.334625 0.670990\n0.667755 0.335419 0.671173\n0.715759 0.335968 0.671326\n0.765564 0.336517 0.671570\n0.816467 0.337280 0.671753\n0.868164 0.337830 0.671967\n0.915527 0.338531 0.672119\n0.000000 0.339233 0.666351\n0.000000 0.339783 0.666534\n0.007324 0.340454 0.666748\n0.033691 0.340973 0.666931\n0.066864 0.341522 0.667145\n0.095032 0.342255 0.667328\n0.121338 0.342773 0.667511\n0.145721 0.343536 0.667694\n0.168549 0.344055 0.667908\n0.190125 0.344574 0.668121\n0.210632 0.345337 0.668335\n0.230560 0.345856 0.668518\n0.250031 0.346466 0.668732\n0.269501 0.347198 0.668945\n0.289337 0.347748 0.669128\n0.309998 0.348480 0.669342\n0.331512 0.349030 0.669586\n0.354279 0.349579 0.669739\n0.378693 0.350372 0.669983\n0.405182 0.350891 0.670135\n0.434082 0.351654 0.670349\n0.465576 0.352173 0.670593\n0.500061 0.352722 0.670776\n0.537872 0.353485 0.670959\n0.578766 0.354034 0.671112\n0.622498 0.354645 0.671326\n0.668610 0.355347 0.671570\n0.716522 0.355865 0.671753\n0.765991 0.356598 0.671936\n0.816772 0.357117 0.672119\n0.868317 0.357635 0.672302\n0.915527 0.358398 0.672485\n0.000000 0.360291 0.666748\n0.000000 0.360809 0.666931\n0.009521 0.361542 0.667114\n0.036041 0.362030 0.667328\n0.069275 0.362579 0.667511\n0.097229 0.363342 0.667694\n0.123169 0.363861 0.667908\n0.147430 0.364380 0.668121\n0.170105 0.365143 0.668335\n0.191589 0.365662 0.668518\n0.212067 0.366425 0.668732\n0.231812 0.366974 0.668945\n0.251343 0.367523 0.669128\n0.270660 0.368256 0.669342\n0.290497 0.368774 0.669586\n0.310913 0.369324 0.669739\n0.332581 0.370056 0.669983\n0.355408 0.370636 0.670135\n0.379791 0.371399 0.670349\n0.406311 0.371948 0.670593\n0.435181 0.372498 0.670715\n0.466675 0.373260 0.670959\n0.501129 0.373749 0.671112\n0.538971 0.374481 0.671326\n0.579803 0.375061 0.671570\n0.623322 0.375610 0.671722\n0.669281 0.376282 0.671936\n0.717041 0.376862 0.672119\n0.766541 0.377380 0.672302\n0.817169 0.378143 0.672485\n0.868469 0.378601 0.672729\n0.915527 0.379242 0.672882\n0.000000 0.382416 0.667114\n0.000000 0.383148 0.667328\n0.011902 0.383667 0.667511\n0.038452 0.384369 0.667694\n0.071686 0.384918 0.667908\n0.099426 0.385468 0.668121\n0.125153 0.386200 0.668335\n0.149323 0.386749 0.668518\n0.171844 0.387299 0.668732\n0.192993 0.388031 0.668945\n0.213318 0.388580 0.669128\n0.233063 0.389191 0.669342\n0.252502 0.389893 0.669586\n0.271790 0.390411 0.669739\n0.291626 0.391174 0.669983\n0.312042 0.391724 0.670105\n0.333557 0.392242 0.670319\n0.356415 0.393005 0.670563\n0.380890 0.393555 0.670715\n0.407410 0.394226 0.670959\n0.436279 0.394836 0.671112\n0.467834 0.395416 0.671326\n0.502289 0.396088 0.671570\n0.539978 0.396637 0.671722\n0.580780 0.397186 0.671936\n0.624237 0.397949 0.672119\n0.670074 0.398438 0.672302\n0.717834 0.398987 0.672485\n0.767029 0.399719 0.672668\n0.817444 0.400208 0.672882\n0.868561 0.400909 0.673035\n0.915527 0.401428 0.673248\n0.000000 0.406342 0.667511\n0.000000 0.406860 0.667694\n0.014313 0.407593 0.667908\n0.040680 0.408112 0.668121\n0.074097 0.408661 0.668335\n0.101654 0.409393 0.668518\n0.127228 0.409943 0.668732\n0.150970 0.410492 0.668915\n0.173401 0.411255 0.669067\n0.194427 0.411774 0.669342\n0.214661 0.412567 0.669525\n0.234314 0.413086 0.669708\n0.253693 0.413635 0.669922\n0.272949 0.414398 0.670105\n0.292725 0.414948 0.670319\n0.313141 0.415466 0.670563\n0.334595 0.416199 0.670715\n0.357544 0.416748 0.670959\n0.381989 0.417511 0.671112\n0.408508 0.418030 0.671326\n0.437408 0.418579 0.671539\n0.468872 0.419312 0.671722\n0.503326 0.419830 0.671936\n0.541077 0.420532 0.672089\n0.581726 0.421143 0.672302\n0.625214 0.421631 0.672485\n0.670685 0.422333 0.672668\n0.718292 0.422882 0.672882\n0.767395 0.423401 0.673035\n0.817749 0.424133 0.673248\n0.868744 0.424652 0.673431\n0.915527 0.425140 0.673615\n0.000000 0.431915 0.667877\n0.000000 0.432648 0.668121\n0.016602 0.433136 0.668304\n0.043091 0.433685 0.668518\n0.076660 0.434448 0.668671\n0.103851 0.434967 0.668915\n0.129242 0.435791 0.669067\n0.152863 0.436279 0.669312\n0.174988 0.436798 0.669525\n0.196014 0.437592 0.669708\n0.216034 0.438110 0.669922\n0.235535 0.438629 0.670105\n0.254883 0.439453 0.670319\n0.274078 0.439972 0.670563\n0.293884 0.440735 0.670715\n0.314209 0.441254 0.670959\n0.335724 0.441772 0.671082\n0.358643 0.442596 0.671295\n0.383148 0.443085 0.671539\n0.409637 0.443634 0.671722\n0.438477 0.444397 0.671936\n0.470001 0.444885 0.672089\n0.504395 0.445648 0.672302\n0.541901 0.446198 0.672455\n0.582611 0.446716 0.672668\n0.625885 0.447418 0.672882\n0.671539 0.447937 0.673035\n0.718994 0.448486 0.673218\n0.768005 0.449188 0.673431\n0.817963 0.449677 0.673615\n0.868927 0.450134 0.673767\n0.915527 0.450867 0.673950\n0.000000 0.459747 0.668304\n0.000000 0.460541 0.668518\n0.019012 0.461060 0.668671\n0.045380 0.461609 0.668915\n0.078979 0.462372 0.669067\n0.106049 0.462921 0.669312\n0.131134 0.463409 0.669525\n0.154480 0.464203 0.669708\n0.176605 0.464722 0.669922\n0.197388 0.465485 0.670105\n0.217316 0.466003 0.670319\n0.236755 0.466553 0.670563\n0.256073 0.467346 0.670715\n0.275238 0.467865 0.670959\n0.294983 0.468414 0.671082\n0.315338 0.469177 0.671295\n0.336792 0.469696 0.671539\n0.359589 0.470398 0.671722\n0.384186 0.470978 0.671906\n0.410706 0.471527 0.672089\n0.439575 0.472260 0.672302\n0.471039 0.472778 0.672455\n0.505432 0.473297 0.672668\n0.542938 0.474030 0.672882\n0.583527 0.474548 0.673035\n0.626801 0.475037 0.673218\n0.672302 0.475769 0.673431\n0.719482 0.476257 0.673615\n0.768372 0.476807 0.673767\n0.818390 0.477478 0.673950\n0.869232 0.477966 0.674103\n0.915527 0.478455 0.674377\n0.000000 0.490051 0.668671\n0.000000 0.490814 0.668915\n0.021484 0.491333 0.669067\n0.049347 0.491882 0.669312\n0.081329 0.492645 0.669525\n0.108246 0.493195 0.669708\n0.133057 0.493927 0.669922\n0.156342 0.494476 0.670105\n0.178101 0.494995 0.670319\n0.198792 0.495789 0.670563\n0.218811 0.496307 0.670685\n0.238037 0.496857 0.670929\n0.257233 0.497589 0.671082\n0.276367 0.498138 0.671295\n0.296112 0.498840 0.671539\n0.316406 0.499390 0.671692\n0.337891 0.499939 0.671906\n0.360687 0.500671 0.672089\n0.385284 0.501221 0.672302\n0.411774 0.501709 0.672455\n0.440430 0.502472 0.672668\n0.471893 0.502960 0.672852\n0.506531 0.503510 0.673035\n0.543945 0.504211 0.673218\n0.584534 0.504700 0.673370\n0.627655 0.505280 0.673615\n0.672943 0.505920 0.673767\n0.720215 0.506348 0.673950\n0.768890 0.506958 0.674103\n0.818695 0.507568 0.674377\n0.869324 0.508026 0.674652\n0.915527 0.508453 0.674835\n0.000000 0.523254 0.669067\n0.000000 0.523956 0.669312\n0.023987 0.524506 0.669525\n0.053589 0.525055 0.669708\n0.083710 0.525757 0.669891\n0.110382 0.526337 0.670074\n0.135040 0.526825 0.670319\n0.158020 0.527618 0.670502\n0.179810 0.528107 0.670685\n0.200378 0.528748 0.670929\n0.220093 0.529419 0.671082\n0.239258 0.529907 0.671295\n0.258453 0.530670 0.671539\n0.277496 0.531189 0.671692\n0.297211 0.531708 0.671906\n0.317535 0.532410 0.672089\n0.338928 0.532990 0.672272\n0.361694 0.533447 0.672455\n0.386353 0.534210 0.672668\n0.412872 0.534698 0.672852\n0.441467 0.535217 0.673035\n0.472961 0.535950 0.673218\n0.507324 0.536407 0.673370\n0.544952 0.536896 0.673584\n0.585480 0.537567 0.673767\n0.628326 0.538086 0.673950\n0.673645 0.538544 0.674103\n0.720612 0.539246 0.674377\n0.769348 0.539703 0.674652\n0.818939 0.540131 0.674835\n0.869446 0.540802 0.674988\n0.915527 0.541229 0.675140\n0.000000 0.559448 0.669495\n0.001099 0.559967 0.669708\n0.026337 0.560486 0.669891\n0.058075 0.561249 0.670074\n0.086212 0.561737 0.670288\n0.112518 0.562286 0.670502\n0.136993 0.562988 0.670685\n0.159790 0.563477 0.670929\n0.181305 0.564178 0.671082\n0.201782 0.564758 0.671295\n0.221375 0.565216 0.671478\n0.240509 0.565796 0.671692\n0.259552 0.566498 0.671906\n0.278625 0.566986 0.672058\n0.298279 0.567657 0.672272\n0.318604 0.568207 0.672455\n0.340027 0.568695 0.672638\n0.362793 0.569397 0.672852\n0.387207 0.569824 0.673004\n0.413696 0.570343 0.673218\n0.442566 0.571045 0.673370\n0.473999 0.571472 0.673584\n0.508331 0.571960 0.673767\n0.545929 0.572418 0.673950\n0.586121 0.573059 0.674103\n0.629211 0.573547 0.674377\n0.674286 0.573975 0.674652\n0.721252 0.574615 0.674835\n0.769684 0.575043 0.674957\n0.819153 0.575470 0.675140\n0.869537 0.576111 0.675293\n0.915527 0.576477 0.675415\n0.000000 0.598358 0.669891\n0.003296 0.598846 0.670074\n0.028748 0.599487 0.670288\n0.060730 0.600006 0.670502\n0.088593 0.600525 0.670685\n0.114655 0.601013 0.670929\n0.138824 0.601715 0.671082\n0.161591 0.602173 0.671265\n0.182861 0.602661 0.671478\n0.203125 0.603363 0.671692\n0.222656 0.603821 0.671906\n0.241760 0.604279 0.672058\n0.260712 0.604980 0.672272\n0.279755 0.605469 0.672455\n0.299225 0.605865 0.672638\n0.319641 0.606567 0.672852\n0.341064 0.607025 0.673004\n0.363861 0.607452 0.673218\n0.388245 0.608002 0.673370\n0.414734 0.608582 0.673584\n0.443604 0.608978 0.673706\n0.475037 0.609436 0.673920\n0.509338 0.610077 0.674103\n0.546692 0.610474 0.674377\n0.587097 0.610901 0.674622\n0.629883 0.611542 0.674835\n0.674988 0.611938 0.674957\n0.721771 0.612335 0.675140\n0.769958 0.612701 0.675293\n0.819519 0.613220 0.675415\n0.869659 0.613708 0.675598\n0.915527 0.614044 0.675751\n0.000000 0.639557 0.670288\n0.005493 0.640198 0.670502\n0.031250 0.640717 0.670685\n0.063202 0.641144 0.670868\n0.090820 0.641571 0.671051\n0.116638 0.642242 0.671265\n0.140656 0.642639 0.671478\n0.163147 0.643097 0.671692\n0.184418 0.643677 0.671875\n0.204437 0.644165 0.672058\n0.223907 0.644592 0.672272\n0.242798 0.645020 0.672424\n0.261780 0.645630 0.672638\n0.280823 0.646088 0.672821\n0.300232 0.646484 0.673004\n0.320679 0.647125 0.673187\n0.342072 0.647491 0.673370\n0.364868 0.647919 0.673584\n0.389252 0.648254 0.673706\n0.415771 0.648834 0.673920\n0.444641 0.649261 0.674103\n0.475922 0.649658 0.674347\n0.510315 0.650024 0.674622\n0.547607 0.650635 0.674774\n0.587952 0.650970 0.674957\n0.630615 0.651306 0.675140\n0.675537 0.651642 0.675262\n0.722229 0.652252 0.675415\n0.770538 0.652588 0.675598\n0.819824 0.652893 0.675751\n0.869781 0.653229 0.675903\n0.915527 0.653534 0.676025\n0.000000 0.683014 0.670685\n0.007904 0.683380 0.670868\n0.033539 0.683777 0.671051\n0.065887 0.684143 0.671265\n0.093140 0.684753 0.671478\n0.118591 0.685150 0.671692\n0.142578 0.685516 0.671875\n0.164856 0.685883 0.672058\n0.185822 0.686462 0.672272\n0.205750 0.686829 0.672424\n0.225128 0.687195 0.672638\n0.244110 0.687561 0.672821\n0.262939 0.688141 0.673004\n0.281921 0.688507 0.673187\n0.301300 0.688843 0.673370\n0.321533 0.689148 0.673584\n0.342957 0.689697 0.673706\n0.365784 0.690094 0.673920\n0.390289 0.690399 0.674072\n0.416779 0.690735 0.674347\n0.445526 0.691162 0.674622\n0.476807 0.691589 0.674774\n0.511078 0.691895 0.674957\n0.548553 0.692230 0.675140\n0.588623 0.692474 0.675262\n0.631409 0.693024 0.675415\n0.676270 0.693359 0.675598\n0.722839 0.693634 0.675751\n0.770844 0.693909 0.675903\n0.820068 0.694183 0.676025\n0.869873 0.694611 0.676178\n0.915527 0.694916 0.676300\n0.000000 0.727844 0.671051\n0.010284 0.728180 0.671265\n0.035980 0.728455 0.671478\n0.068237 0.729004 0.671661\n0.095306 0.729309 0.671875\n0.120667 0.729584 0.672058\n0.144257 0.729858 0.672272\n0.166443 0.730194 0.672424\n0.187256 0.730682 0.672638\n0.207214 0.731049 0.672821\n0.226349 0.731323 0.673004\n0.245270 0.731598 0.673187\n0.264069 0.731903 0.673340\n0.282959 0.732391 0.673584\n0.302307 0.732697 0.673706\n0.322510 0.732941 0.673920\n0.343933 0.733215 0.674072\n0.366669 0.733551 0.674347\n0.391235 0.734009 0.674622\n0.417694 0.734314 0.674774\n0.446350 0.734558 0.674957\n0.477783 0.734802 0.675110\n0.511993 0.735016 0.675262\n0.549377 0.735291 0.675415\n0.589508 0.735748 0.675598\n0.631989 0.736023 0.675720\n0.676727 0.736206 0.675903\n0.723236 0.736450 0.676025\n0.771118 0.736664 0.676178\n0.820221 0.736877 0.676300\n0.869995 0.737122 0.676422\n0.915527 0.737518 0.676605\n0.000000 0.773926 0.671448\n0.012726 0.774139 0.671661\n0.038391 0.774353 0.671875\n0.070709 0.774658 0.672058\n0.097534 0.774994 0.672211\n0.122681 0.775330 0.672424\n0.146057 0.775513 0.672638\n0.167908 0.775757 0.672821\n0.188721 0.775970 0.673004\n0.208557 0.776184 0.673187\n0.227539 0.776459 0.673340\n0.246246 0.776886 0.673553\n0.264923 0.777100 0.673706\n0.283813 0.777313 0.673920\n0.303345 0.777557 0.674072\n0.323547 0.777740 0.674347\n0.344910 0.777985 0.674622\n0.367645 0.778137 0.674774\n0.392120 0.778442 0.674957\n0.418518 0.778778 0.675110\n0.447296 0.778992 0.675262\n0.478699 0.779175 0.675415\n0.512939 0.779358 0.675598\n0.550079 0.779510 0.675720\n0.590149 0.779724 0.675842\n0.632751 0.779877 0.676025\n0.677277 0.780212 0.676178\n0.723755 0.780457 0.676300\n0.771545 0.780609 0.676422\n0.820435 0.780792 0.676544\n0.870178 0.780945 0.676666\n0.915527 0.781067 0.676788\n0.000000 0.820740 0.671875\n0.015106 0.820831 0.672028\n0.040649 0.821045 0.672211\n0.073212 0.821167 0.672424\n0.099701 0.821564 0.672638\n0.124664 0.821747 0.672821\n0.147675 0.821869 0.672974\n0.169525 0.822052 0.673187\n0.190155 0.822174 0.673340\n0.209778 0.822357 0.673553\n0.228699 0.822510 0.673676\n0.247375 0.822632 0.673920\n0.265991 0.822815 0.674072\n0.284851 0.822968 0.674347\n0.304321 0.823273 0.674622\n0.324524 0.823456 0.674774\n0.345886 0.823578 0.674957\n0.368652 0.823730 0.675110\n0.393005 0.823853 0.675262\n0.419434 0.823975 0.675385\n0.448242 0.824127 0.675598\n0.479431 0.824219 0.675720\n0.513733 0.824341 0.675842\n0.550934 0.824463 0.675964\n0.590881 0.824615 0.676178\n0.633270 0.824860 0.676300\n0.677826 0.825043 0.676422\n0.724152 0.825104 0.676544\n0.771881 0.825195 0.676666\n0.820648 0.825378 0.676788\n0.870392 0.825439 0.676910\n0.915527 0.825531 0.677032\n0.000000 0.868103 0.672211\n0.017334 0.868286 0.672394\n0.042877 0.868347 0.672638\n0.075531 0.868439 0.672821\n0.101837 0.868530 0.672974\n0.126404 0.868561 0.673157\n0.149475 0.868652 0.673340\n0.171051 0.868744 0.673553\n0.191528 0.868774 0.673676\n0.210999 0.868896 0.673859\n0.229828 0.868958 0.674072\n0.248474 0.869049 0.674347\n0.267029 0.869110 0.674622\n0.285797 0.869171 0.674744\n0.305328 0.869263 0.674957\n0.325348 0.869293 0.675110\n0.346802 0.869385 0.675262\n0.369507 0.869446 0.675385\n0.393921 0.869446 0.675598\n0.420349 0.869720 0.675720\n0.448944 0.869781 0.675842\n0.480286 0.869873 0.675964\n0.514465 0.869934 0.676178\n0.551575 0.870087 0.676300\n0.591644 0.870087 0.676392\n0.634003 0.870148 0.676544\n0.678253 0.870178 0.676666\n0.724518 0.870239 0.676788\n0.772186 0.870270 0.676910\n0.820984 0.870331 0.677032\n0.870453 0.870361 0.677155\n0.915527 0.870422 0.677216\n0.000000 0.915527 0.672638\n0.019745 0.915527 0.672760\n0.045197 0.915527 0.672974\n0.077728 0.915527 0.673157\n0.103912 0.915527 0.673340\n0.128296 0.915527 0.673553\n0.151001 0.915527 0.673676\n0.172485 0.915527 0.673859\n0.192780 0.915527 0.674042\n0.212250 0.915527 0.674286\n0.230988 0.915527 0.674591\n0.249542 0.915527 0.674744\n0.268036 0.915527 0.674957\n0.286804 0.915527 0.675110\n0.306061 0.915527 0.675262\n0.326172 0.915527 0.675385\n0.347504 0.915527 0.675598\n0.370239 0.915527 0.675720\n0.394714 0.915527 0.675842\n0.421021 0.915527 0.675964\n0.449768 0.915527 0.676117\n0.481110 0.915527 0.676270\n0.515289 0.915527 0.676392\n0.552368 0.915527 0.676544\n0.592133 0.915527 0.676666\n0.634430 0.915527 0.676788\n0.678894 0.915527 0.676910\n0.725037 0.915527 0.677032\n0.772400 0.915527 0.677155\n0.821106 0.915527 0.677216\n0.870544 0.915527 0.677307\n0.915527 0.915527 0.677429\n0.000000 0.000000 0.694702\n0.000000 0.000000 0.694794\n0.000000 0.000000 0.694916\n0.004669 0.000000 0.695007\n0.031555 0.000000 0.695160\n0.065216 0.000000 0.695282\n0.094177 0.000000 0.695435\n0.121246 0.000000 0.695557\n0.146271 0.000000 0.695648\n0.169800 0.000000 0.695801\n0.191833 0.000000 0.695953\n0.213104 0.000000 0.696075\n0.233490 0.000000 0.696228\n0.253784 0.000000 0.696381\n0.274017 0.000000 0.696472\n0.294861 0.000000 0.696625\n0.316376 0.000000 0.696808\n0.339111 0.000000 0.696960\n0.363525 0.000000 0.697144\n0.390015 0.000000 0.697296\n0.418549 0.000000 0.697449\n0.450012 0.000000 0.697601\n0.484741 0.000000 0.697754\n0.522797 0.000000 0.697937\n0.564545 0.000000 0.698090\n0.609344 0.000000 0.698303\n0.656860 0.000000 0.698456\n0.706787 0.000000 0.698639\n0.758484 0.000000 0.698792\n0.811554 0.000000 0.699005\n0.865784 0.001068 0.699127\n0.915527 0.002380 0.699341\n0.000000 0.000000 0.694916\n0.000000 0.000000 0.695007\n0.000000 0.000000 0.695160\n0.006134 0.000000 0.695282\n0.033173 0.000000 0.695435\n0.066895 0.000000 0.695496\n0.095642 0.000000 0.695648\n0.122620 0.000000 0.695801\n0.147522 0.000061 0.695953\n0.170959 0.001068 0.696075\n0.192993 0.002167 0.696228\n0.214050 0.003235 0.696381\n0.234436 0.004395 0.696472\n0.254700 0.005585 0.696625\n0.274963 0.006775 0.696808\n0.295624 0.008057 0.696960\n0.317322 0.009338 0.697113\n0.340088 0.010651 0.697296\n0.364349 0.012054 0.697449\n0.390747 0.013428 0.697601\n0.419556 0.014771 0.697754\n0.450989 0.016174 0.697937\n0.485687 0.017548 0.698090\n0.523773 0.018951 0.698303\n0.565491 0.020386 0.698425\n0.610229 0.021881 0.698608\n0.657745 0.023407 0.698792\n0.707520 0.024872 0.699005\n0.759125 0.026306 0.699127\n0.812012 0.027832 0.699341\n0.865906 0.029266 0.699463\n0.915527 0.030945 0.699677\n0.000000 0.019684 0.695160\n0.000000 0.020599 0.695282\n0.000000 0.021576 0.695435\n0.007751 0.022675 0.695496\n0.034821 0.023804 0.695648\n0.068542 0.024872 0.695801\n0.097290 0.026093 0.695953\n0.123993 0.027252 0.696075\n0.148865 0.028412 0.696228\n0.172180 0.029602 0.696381\n0.194061 0.030853 0.696472\n0.215149 0.032104 0.696625\n0.235504 0.033417 0.696777\n0.255554 0.034576 0.696960\n0.275940 0.035919 0.697113\n0.296539 0.037262 0.697296\n0.318115 0.038544 0.697449\n0.341034 0.039948 0.697601\n0.365326 0.041290 0.697754\n0.391785 0.042633 0.697937\n0.420563 0.044037 0.698090\n0.452026 0.045441 0.698303\n0.486603 0.047760 0.698425\n0.524719 0.050201 0.698608\n0.566254 0.052826 0.698792\n0.610962 0.055328 0.699005\n0.658325 0.058105 0.699127\n0.708038 0.059845 0.699341\n0.759521 0.061554 0.699463\n0.812378 0.063171 0.699677\n0.866028 0.064941 0.699860\n0.915527 0.066528 0.700043\n0.000000 0.051483 0.695435\n0.000000 0.053223 0.695496\n0.000000 0.055237 0.695648\n0.009369 0.057343 0.695801\n0.036407 0.059113 0.695953\n0.070465 0.060333 0.696075\n0.098846 0.061523 0.696228\n0.125671 0.062744 0.696381\n0.150360 0.064087 0.696472\n0.173401 0.065430 0.696625\n0.195251 0.066803 0.696777\n0.216278 0.068115 0.696960\n0.236542 0.069580 0.697113\n0.256561 0.070953 0.697266\n0.276794 0.072327 0.697449\n0.297516 0.073792 0.697601\n0.319031 0.075256 0.697754\n0.341858 0.076691 0.697937\n0.366333 0.078156 0.698090\n0.392761 0.079559 0.698242\n0.421570 0.081085 0.698425\n0.453033 0.082611 0.698608\n0.487549 0.083954 0.698792\n0.525635 0.085541 0.699005\n0.567261 0.087006 0.699097\n0.611908 0.088440 0.699341\n0.659180 0.090057 0.699463\n0.708771 0.091553 0.699677\n0.760071 0.093201 0.699860\n0.812622 0.094574 0.700043\n0.866241 0.096191 0.700195\n0.915527 0.097778 0.700378\n0.000000 0.086426 0.695648\n0.000000 0.087555 0.695801\n0.000000 0.088745 0.695923\n0.011108 0.089752 0.696075\n0.038239 0.091003 0.696228\n0.072296 0.092224 0.696381\n0.100708 0.093475 0.696472\n0.127167 0.094696 0.696625\n0.151703 0.095825 0.696777\n0.174683 0.097137 0.696899\n0.196411 0.098419 0.697113\n0.217224 0.099731 0.697266\n0.237640 0.101074 0.697449\n0.257599 0.102386 0.697571\n0.277710 0.103760 0.697754\n0.298523 0.104919 0.697937\n0.320038 0.106232 0.698059\n0.342834 0.107666 0.698242\n0.367401 0.109070 0.698425\n0.393799 0.110413 0.698608\n0.422577 0.111847 0.698792\n0.454132 0.113251 0.699005\n0.488617 0.114624 0.699097\n0.526672 0.115936 0.699341\n0.568268 0.117249 0.699432\n0.612823 0.118622 0.699677\n0.660065 0.120087 0.699829\n0.709351 0.121460 0.700012\n0.760559 0.122894 0.700195\n0.812958 0.124329 0.700378\n0.866547 0.125732 0.700562\n0.915527 0.127136 0.700745\n0.000000 0.117035 0.695923\n0.000000 0.118164 0.696075\n0.000000 0.119293 0.696198\n0.012909 0.120209 0.696350\n0.039978 0.121368 0.696472\n0.074188 0.122528 0.696625\n0.102478 0.123749 0.696777\n0.128693 0.124756 0.696899\n0.153076 0.125946 0.697113\n0.175964 0.127167 0.697266\n0.197723 0.128387 0.697449\n0.218414 0.129456 0.697571\n0.238678 0.130737 0.697754\n0.258667 0.131897 0.697937\n0.278778 0.133179 0.698059\n0.299530 0.134460 0.698242\n0.321075 0.135498 0.698425\n0.343842 0.136780 0.698608\n0.368347 0.138062 0.698792\n0.394775 0.139374 0.698944\n0.423553 0.140656 0.699097\n0.455048 0.141724 0.699280\n0.489685 0.143005 0.699432\n0.527710 0.144318 0.699646\n0.569275 0.145599 0.699829\n0.613556 0.146912 0.700012\n0.660706 0.147980 0.700165\n0.710114 0.149292 0.700317\n0.760956 0.150543 0.700562\n0.813477 0.151855 0.700745\n0.866699 0.153076 0.700928\n0.915527 0.154205 0.701080\n0.000000 0.145752 0.696198\n0.000000 0.146790 0.696350\n0.000000 0.147614 0.696472\n0.014771 0.148712 0.696625\n0.041870 0.149628 0.696777\n0.076202 0.150665 0.696899\n0.104218 0.151825 0.697113\n0.130402 0.152679 0.697266\n0.154572 0.153809 0.697449\n0.177429 0.154938 0.697571\n0.198853 0.155914 0.697754\n0.219666 0.156982 0.697906\n0.239807 0.158173 0.698059\n0.259735 0.159241 0.698242\n0.279846 0.160248 0.698425\n0.300507 0.161438 0.698578\n0.322083 0.162567 0.698761\n0.344910 0.163574 0.698944\n0.369324 0.164734 0.699097\n0.395721 0.165894 0.699280\n0.424561 0.167053 0.699432\n0.455994 0.168030 0.699646\n0.490753 0.169220 0.699829\n0.528809 0.170441 0.700012\n0.570099 0.171356 0.700165\n0.614532 0.172577 0.700317\n0.661530 0.173767 0.700562\n0.710663 0.174805 0.700745\n0.761658 0.175903 0.700928\n0.813782 0.177094 0.701080\n0.866821 0.178253 0.701294\n0.915527 0.179230 0.701447\n0.000000 0.172089 0.696472\n0.000000 0.172821 0.696625\n0.000000 0.173828 0.696777\n0.016785 0.174622 0.696899\n0.043884 0.175659 0.697113\n0.078125 0.176666 0.697266\n0.106110 0.177460 0.697418\n0.131927 0.178497 0.697571\n0.156158 0.179321 0.697754\n0.178833 0.180389 0.697906\n0.200256 0.181427 0.698059\n0.220734 0.182281 0.698242\n0.240936 0.183319 0.698425\n0.260803 0.184387 0.698578\n0.280884 0.185272 0.698761\n0.301544 0.186371 0.698944\n0.323151 0.187225 0.699097\n0.345947 0.188263 0.699280\n0.370300 0.189362 0.699432\n0.396759 0.190216 0.699646\n0.425598 0.191345 0.699829\n0.457123 0.192383 0.700012\n0.491669 0.193268 0.700165\n0.529846 0.194336 0.700317\n0.571075 0.195435 0.700500\n0.615479 0.196320 0.700714\n0.662384 0.197388 0.700897\n0.711426 0.198303 0.701080\n0.762085 0.199341 0.701294\n0.814026 0.200409 0.701447\n0.867004 0.201263 0.701660\n0.915527 0.202332 0.701813\n0.000000 0.196289 0.696777\n0.000000 0.197205 0.696899\n0.000000 0.197906 0.697083\n0.018799 0.198853 0.697266\n0.045898 0.199585 0.697418\n0.080231 0.200500 0.697571\n0.108032 0.201263 0.697754\n0.133728 0.202240 0.697906\n0.157593 0.203033 0.698059\n0.180176 0.203949 0.698212\n0.201569 0.204926 0.698395\n0.222015 0.205719 0.698578\n0.242065 0.206696 0.698761\n0.261932 0.207458 0.698944\n0.281982 0.208466 0.699097\n0.302490 0.209198 0.699280\n0.324188 0.210236 0.699432\n0.347015 0.211182 0.699646\n0.371368 0.212006 0.699829\n0.397827 0.213013 0.700012\n0.426697 0.213806 0.700165\n0.458221 0.214813 0.700317\n0.492676 0.215607 0.700500\n0.530701 0.216614 0.700714\n0.572113 0.217621 0.700897\n0.616425 0.218384 0.701080\n0.663055 0.219391 0.701294\n0.711975 0.220154 0.701447\n0.762543 0.221161 0.701660\n0.814331 0.221924 0.701813\n0.867126 0.222931 0.701996\n0.915527 0.223785 0.702179\n0.000000 0.218811 0.697083\n0.000000 0.219696 0.697266\n0.000000 0.220337 0.697418\n0.020813 0.221222 0.697571\n0.049622 0.221863 0.697723\n0.082367 0.222778 0.697906\n0.109802 0.223450 0.698059\n0.135345 0.224365 0.698212\n0.159241 0.225067 0.698395\n0.181549 0.226013 0.698578\n0.202850 0.226654 0.698761\n0.223297 0.227570 0.698944\n0.243256 0.228333 0.699097\n0.263062 0.229187 0.699280\n0.283051 0.229919 0.699432\n0.303528 0.230835 0.699615\n0.325043 0.231598 0.699829\n0.348083 0.232513 0.700012\n0.372467 0.233368 0.700165\n0.398926 0.234161 0.700317\n0.427795 0.234894 0.700500\n0.459320 0.235779 0.700714\n0.493835 0.236694 0.700897\n0.531769 0.237457 0.701080\n0.573151 0.238403 0.701263\n0.617188 0.239105 0.701416\n0.663971 0.240021 0.701660\n0.712708 0.240753 0.701813\n0.763123 0.241669 0.701996\n0.814819 0.242371 0.702179\n0.867249 0.243317 0.702362\n0.915527 0.244019 0.702515\n0.000000 0.240234 0.697418\n0.000000 0.240814 0.697571\n0.000000 0.241638 0.697723\n0.023010 0.242279 0.697906\n0.053284 0.243042 0.698029\n0.084473 0.243744 0.698212\n0.111786 0.244446 0.698395\n0.137115 0.245239 0.698578\n0.160828 0.245880 0.698761\n0.183105 0.246735 0.698944\n0.204193 0.247345 0.699066\n0.224426 0.248230 0.699280\n0.244385 0.248901 0.699432\n0.264160 0.249725 0.699615\n0.284088 0.250427 0.699829\n0.304626 0.251312 0.699951\n0.326141 0.251923 0.700134\n0.349030 0.252808 0.700317\n0.373566 0.253479 0.700500\n0.400055 0.254395 0.700714\n0.428894 0.255035 0.700897\n0.460419 0.255920 0.701080\n0.494934 0.256592 0.701263\n0.532867 0.257233 0.701416\n0.573975 0.258148 0.701630\n0.618134 0.258820 0.701813\n0.664764 0.259644 0.701996\n0.713318 0.260345 0.702179\n0.763580 0.261200 0.702362\n0.815155 0.261841 0.702515\n0.867401 0.262756 0.702728\n0.915527 0.263367 0.702881\n0.000000 0.260406 0.697723\n0.000000 0.261139 0.697906\n0.000000 0.261719 0.698029\n0.025146 0.262543 0.698212\n0.057098 0.263092 0.698395\n0.086609 0.263763 0.698578\n0.113739 0.264526 0.698761\n0.138885 0.265106 0.698914\n0.162323 0.265961 0.699066\n0.184540 0.266541 0.699249\n0.205414 0.267395 0.699432\n0.225769 0.267944 0.699615\n0.245575 0.268616 0.699768\n0.265137 0.269409 0.699951\n0.285278 0.270020 0.700134\n0.305756 0.270874 0.700287\n0.327240 0.271484 0.700500\n0.350098 0.272339 0.700714\n0.374664 0.272949 0.700897\n0.401093 0.273743 0.701080\n0.430023 0.274384 0.701263\n0.461548 0.275116 0.701416\n0.496033 0.275879 0.701630\n0.533966 0.276520 0.701752\n0.575012 0.277344 0.701996\n0.619141 0.277924 0.702179\n0.665497 0.278748 0.702362\n0.714050 0.279388 0.702515\n0.764221 0.280243 0.702728\n0.815430 0.280792 0.702881\n0.867554 0.281494 0.703064\n0.915527 0.282288 0.703247\n0.000000 0.280243 0.698029\n0.000000 0.280731 0.698212\n0.001282 0.281311 0.698395\n0.027283 0.282104 0.698578\n0.060028 0.282654 0.698730\n0.088776 0.283447 0.698914\n0.115692 0.283997 0.699066\n0.140656 0.284576 0.699249\n0.164062 0.285339 0.699432\n0.185944 0.285950 0.699615\n0.206757 0.286713 0.699768\n0.227020 0.287292 0.699951\n0.246735 0.287964 0.700134\n0.266327 0.288666 0.700287\n0.286285 0.289276 0.700470\n0.306854 0.290070 0.700714\n0.328308 0.290680 0.700897\n0.351135 0.291412 0.701080\n0.375732 0.292053 0.701263\n0.402252 0.292633 0.701416\n0.431122 0.293457 0.701630\n0.462646 0.294067 0.701752\n0.497131 0.294891 0.701965\n0.535034 0.295441 0.702118\n0.576050 0.296082 0.702332\n0.620087 0.296844 0.702515\n0.666382 0.297424 0.702728\n0.714600 0.298218 0.702881\n0.764587 0.298828 0.703064\n0.815887 0.299591 0.703247\n0.867920 0.300171 0.703430\n0.915527 0.300842 0.703613\n0.000000 0.299744 0.698395\n0.000000 0.300232 0.698517\n0.003326 0.300903 0.698730\n0.029572 0.301514 0.698914\n0.062531 0.302032 0.699066\n0.090973 0.302765 0.699249\n0.117676 0.303375 0.699432\n0.142487 0.303894 0.699615\n0.165558 0.304718 0.699768\n0.187347 0.305237 0.699951\n0.208221 0.306030 0.700134\n0.228241 0.306610 0.700287\n0.247894 0.307129 0.700470\n0.267517 0.307922 0.700684\n0.287262 0.308472 0.700867\n0.307892 0.309143 0.701050\n0.329437 0.309814 0.701263\n0.352234 0.310394 0.701416\n0.376862 0.311188 0.701630\n0.403351 0.311768 0.701752\n0.432190 0.312531 0.701965\n0.463531 0.313080 0.702118\n0.498260 0.313690 0.702332\n0.536133 0.314423 0.702484\n0.577057 0.315033 0.702728\n0.620758 0.315796 0.702881\n0.666992 0.316376 0.703064\n0.715332 0.316925 0.703247\n0.765228 0.317688 0.703430\n0.816193 0.318237 0.703613\n0.868073 0.318848 0.703766\n0.915527 0.319550 0.703949\n0.000000 0.319336 0.698730\n0.000000 0.319824 0.698914\n0.005432 0.320465 0.699066\n0.031860 0.321106 0.699249\n0.064972 0.321625 0.699432\n0.093201 0.322388 0.699615\n0.119598 0.322937 0.699768\n0.144165 0.323486 0.699951\n0.167267 0.324219 0.700134\n0.188965 0.324738 0.700287\n0.209503 0.325439 0.700470\n0.229492 0.326080 0.700684\n0.249084 0.326630 0.700867\n0.268494 0.327362 0.701050\n0.288391 0.327942 0.701263\n0.309052 0.328674 0.701416\n0.330566 0.329285 0.701630\n0.353333 0.329834 0.701752\n0.377960 0.330597 0.701965\n0.404449 0.331116 0.702118\n0.433136 0.331696 0.702332\n0.464630 0.332458 0.702484\n0.499268 0.332977 0.702698\n0.537079 0.333771 0.702881\n0.578094 0.334290 0.703064\n0.621765 0.334930 0.703247\n0.667847 0.335632 0.703430\n0.715912 0.336182 0.703583\n0.765656 0.336884 0.703766\n0.816498 0.337494 0.703918\n0.868164 0.338013 0.704102\n0.915527 0.338745 0.704315\n0.000000 0.339447 0.699066\n0.000000 0.340118 0.699249\n0.007690 0.340668 0.699432\n0.034180 0.341187 0.699615\n0.067261 0.341858 0.699768\n0.095337 0.342468 0.699951\n0.121582 0.342957 0.700134\n0.146027 0.343719 0.700287\n0.168854 0.344238 0.700470\n0.190338 0.344910 0.700684\n0.210907 0.345520 0.700867\n0.230743 0.346100 0.701050\n0.250305 0.346802 0.701202\n0.269714 0.347412 0.701385\n0.289520 0.347961 0.701630\n0.310150 0.348694 0.701752\n0.331665 0.349243 0.701965\n0.354431 0.349976 0.702118\n0.378876 0.350555 0.702332\n0.405548 0.351105 0.702484\n0.434235 0.351837 0.702698\n0.465729 0.352417 0.702850\n0.500366 0.352936 0.703064\n0.538055 0.353699 0.703217\n0.579041 0.354248 0.703400\n0.622711 0.355011 0.703583\n0.668701 0.355530 0.703735\n0.716614 0.356049 0.703918\n0.766083 0.356781 0.704102\n0.816833 0.357330 0.704315\n0.868317 0.357849 0.704468\n0.915527 0.358612 0.704620\n0.000000 0.360504 0.699432\n0.000000 0.360992 0.699554\n0.010040 0.361694 0.699738\n0.036407 0.362244 0.699951\n0.069672 0.362885 0.700104\n0.097565 0.363556 0.700287\n0.123657 0.364044 0.700470\n0.147705 0.364746 0.700684\n0.170441 0.365356 0.700867\n0.191772 0.365845 0.701050\n0.212250 0.366608 0.701202\n0.231995 0.367126 0.701385\n0.251495 0.367798 0.701630\n0.270935 0.368439 0.701752\n0.290680 0.368988 0.701965\n0.311249 0.369690 0.702118\n0.332794 0.370300 0.702332\n0.355560 0.370850 0.702484\n0.379974 0.371613 0.702698\n0.406464 0.372131 0.702850\n0.435364 0.372742 0.703064\n0.466858 0.373413 0.703217\n0.501373 0.373932 0.703400\n0.539093 0.374725 0.703583\n0.579956 0.375275 0.703735\n0.623566 0.375793 0.703918\n0.669342 0.376526 0.704102\n0.717163 0.377014 0.704315\n0.766693 0.377625 0.704468\n0.817261 0.378296 0.704620\n0.868469 0.378845 0.704773\n0.915527 0.379547 0.704987\n0.000000 0.382782 0.699738\n0.000000 0.383301 0.699921\n0.012360 0.383850 0.700104\n0.038818 0.384613 0.700287\n0.072205 0.385132 0.700470\n0.099823 0.385712 0.700684\n0.125671 0.386414 0.700867\n0.149597 0.386963 0.701050\n0.172119 0.387573 0.701202\n0.193329 0.388245 0.701385\n0.213531 0.388763 0.701569\n0.233215 0.389557 0.701752\n0.252686 0.390076 0.701904\n0.272156 0.390625 0.702118\n0.291809 0.391357 0.702332\n0.312317 0.391907 0.702484\n0.333893 0.392487 0.702698\n0.356689 0.393219 0.702850\n0.381073 0.393768 0.703064\n0.407593 0.394470 0.703217\n0.436462 0.395050 0.703400\n0.467957 0.395599 0.703583\n0.502411 0.396301 0.703735\n0.540192 0.396790 0.703918\n0.580933 0.397583 0.704102\n0.624329 0.398132 0.704315\n0.670227 0.398651 0.704468\n0.717926 0.399384 0.704620\n0.767059 0.399902 0.704773\n0.817505 0.400391 0.704987\n0.868652 0.401123 0.705109\n0.915527 0.401611 0.705322\n0.000000 0.406525 0.700104\n0.000000 0.407043 0.700287\n0.014648 0.407776 0.700439\n0.041260 0.408325 0.700623\n0.074615 0.408997 0.700867\n0.101990 0.409607 0.701050\n0.127502 0.410095 0.701202\n0.151367 0.410889 0.701385\n0.173615 0.411438 0.701569\n0.194824 0.411987 0.701752\n0.214874 0.412750 0.701904\n0.234467 0.413300 0.702118\n0.253876 0.413971 0.702332\n0.273132 0.414612 0.702484\n0.292908 0.415131 0.702698\n0.313416 0.415802 0.702850\n0.334991 0.416412 0.703064\n0.357727 0.416931 0.703217\n0.382172 0.417694 0.703400\n0.408661 0.418243 0.703583\n0.437531 0.418915 0.703735\n0.469055 0.419525 0.703918\n0.503510 0.420044 0.704102\n0.541229 0.420807 0.704254\n0.581940 0.421295 0.704407\n0.625336 0.421844 0.704620\n0.670868 0.422577 0.704773\n0.718353 0.423096 0.704987\n0.767548 0.423553 0.705109\n0.817810 0.424316 0.705322\n0.868774 0.424835 0.705444\n0.915527 0.425323 0.705658\n0.000000 0.432251 0.700439\n0.000000 0.432831 0.700623\n0.017090 0.433350 0.700867\n0.043488 0.434113 0.700989\n0.076996 0.434631 0.701202\n0.104218 0.435181 0.701385\n0.129517 0.435913 0.701569\n0.153107 0.436462 0.701752\n0.175354 0.437195 0.701904\n0.196228 0.437775 0.702087\n0.216431 0.438324 0.702301\n0.235718 0.439117 0.702484\n0.255066 0.439606 0.702698\n0.274323 0.440155 0.702850\n0.294006 0.440918 0.703064\n0.314392 0.441437 0.703217\n0.335999 0.442169 0.703400\n0.358887 0.442749 0.703583\n0.383270 0.443298 0.703735\n0.409790 0.444000 0.703918\n0.438629 0.444580 0.704041\n0.470154 0.445068 0.704254\n0.504578 0.445831 0.704407\n0.542236 0.446381 0.704620\n0.582825 0.446960 0.704773\n0.626007 0.447632 0.704926\n0.671661 0.448120 0.705109\n0.719086 0.448822 0.705322\n0.768066 0.449341 0.705444\n0.817993 0.449860 0.705658\n0.868927 0.450348 0.705780\n0.915527 0.450989 0.705933\n0.000000 0.459961 0.700806\n0.000000 0.460693 0.700989\n0.019562 0.461243 0.701202\n0.045837 0.461761 0.701385\n0.079407 0.462555 0.701569\n0.106415 0.463074 0.701752\n0.131500 0.463776 0.701904\n0.154968 0.464386 0.702087\n0.176849 0.464905 0.702301\n0.197662 0.465698 0.702454\n0.217743 0.466217 0.702637\n0.237030 0.466766 0.702820\n0.256256 0.467560 0.703064\n0.275513 0.468079 0.703217\n0.295166 0.468658 0.703369\n0.315491 0.469360 0.703583\n0.336945 0.469879 0.703705\n0.359741 0.470673 0.703888\n0.384338 0.471191 0.704041\n0.410889 0.471771 0.704254\n0.439758 0.472443 0.704407\n0.471191 0.472992 0.704620\n0.505585 0.473480 0.704742\n0.543152 0.474213 0.704926\n0.583649 0.474762 0.705109\n0.626923 0.475372 0.705292\n0.672424 0.475952 0.705444\n0.719574 0.476471 0.705658\n0.768433 0.477142 0.705780\n0.818481 0.477661 0.705933\n0.869232 0.478119 0.706085\n0.915527 0.478668 0.706207\n0.000000 0.490234 0.701172\n0.000000 0.491028 0.701355\n0.021881 0.491516 0.701569\n0.050171 0.492310 0.701752\n0.081909 0.492828 0.701904\n0.108521 0.493378 0.702087\n0.133423 0.494110 0.702301\n0.156586 0.494690 0.702454\n0.178497 0.495392 0.702637\n0.199188 0.495972 0.702820\n0.219025 0.496490 0.703003\n0.238342 0.497162 0.703186\n0.257416 0.497833 0.703369\n0.276550 0.498322 0.703552\n0.296265 0.499084 0.703705\n0.316589 0.499603 0.703888\n0.338013 0.500214 0.704041\n0.360809 0.500854 0.704254\n0.385468 0.501404 0.704407\n0.411957 0.501923 0.704620\n0.440735 0.502625 0.704742\n0.472137 0.503143 0.704926\n0.506622 0.503815 0.705109\n0.544098 0.504395 0.705292\n0.584656 0.504883 0.705444\n0.627808 0.505585 0.705597\n0.673035 0.506073 0.705780\n0.720276 0.506561 0.705933\n0.769012 0.507233 0.706055\n0.818756 0.507721 0.706207\n0.869385 0.508209 0.706360\n0.915527 0.508667 0.706512\n0.000000 0.523407 0.701538\n0.000000 0.524139 0.701752\n0.024323 0.524689 0.701904\n0.054474 0.525208 0.702087\n0.084290 0.526001 0.702301\n0.110718 0.526520 0.702454\n0.135345 0.527100 0.702637\n0.158447 0.527771 0.702820\n0.180084 0.528320 0.703003\n0.200592 0.529083 0.703186\n0.220306 0.529602 0.703369\n0.239532 0.530121 0.703552\n0.258606 0.530853 0.703705\n0.277679 0.531372 0.703888\n0.297363 0.531921 0.704041\n0.317688 0.532654 0.704254\n0.339111 0.533173 0.704407\n0.361908 0.533691 0.704590\n0.386505 0.534363 0.704742\n0.412994 0.534912 0.704926\n0.441681 0.535583 0.705109\n0.473114 0.536102 0.705292\n0.507446 0.536560 0.705444\n0.545105 0.537048 0.705597\n0.585602 0.537811 0.705780\n0.628601 0.538269 0.705933\n0.673828 0.538696 0.706055\n0.720734 0.539368 0.706207\n0.769409 0.539856 0.706360\n0.819000 0.540314 0.706512\n0.869446 0.540955 0.706635\n0.915527 0.541412 0.706787\n0.000000 0.559662 0.701874\n0.001465 0.560150 0.702087\n0.026855 0.560730 0.702301\n0.058716 0.561432 0.702454\n0.086609 0.561920 0.702637\n0.112854 0.562622 0.702820\n0.137268 0.563171 0.703003\n0.160034 0.563690 0.703186\n0.181519 0.564423 0.703369\n0.201965 0.564911 0.703552\n0.221588 0.565460 0.703705\n0.240814 0.566132 0.703888\n0.259766 0.566681 0.704041\n0.278778 0.567108 0.704254\n0.298462 0.567871 0.704407\n0.318726 0.568390 0.704590\n0.340179 0.568848 0.704742\n0.362976 0.569550 0.704926\n0.387512 0.570068 0.705078\n0.413940 0.570496 0.705292\n0.442688 0.571198 0.705383\n0.474152 0.571686 0.705597\n0.508484 0.572113 0.705750\n0.546051 0.572784 0.705933\n0.586304 0.573273 0.706055\n0.629303 0.573700 0.706207\n0.674347 0.574310 0.706360\n0.721344 0.574768 0.706512\n0.769714 0.575195 0.706635\n0.819214 0.575623 0.706787\n0.869629 0.576263 0.706940\n0.915527 0.576630 0.707092\n0.000000 0.598541 0.702301\n0.003693 0.598999 0.702454\n0.029297 0.599731 0.702637\n0.061127 0.600220 0.702820\n0.088959 0.600677 0.703003\n0.114960 0.601257 0.703186\n0.139221 0.601868 0.703369\n0.161865 0.602386 0.703552\n0.183167 0.602875 0.703705\n0.203278 0.603516 0.703888\n0.222839 0.604004 0.704041\n0.242035 0.604492 0.704224\n0.260895 0.605164 0.704376\n0.279907 0.605621 0.704590\n0.299530 0.606140 0.704742\n0.319794 0.606750 0.704895\n0.341217 0.607208 0.705078\n0.364014 0.607605 0.705292\n0.388428 0.608307 0.705383\n0.414886 0.608765 0.705597\n0.443726 0.609131 0.705750\n0.475159 0.609680 0.705933\n0.509460 0.610199 0.706055\n0.546875 0.610626 0.706207\n0.587219 0.611053 0.706360\n0.630127 0.611664 0.706512\n0.675079 0.612091 0.706635\n0.721863 0.612457 0.706787\n0.770081 0.612854 0.706940\n0.819519 0.613403 0.707092\n0.869720 0.613800 0.707214\n0.915527 0.614136 0.707367\n0.000000 0.639740 0.702637\n0.006042 0.640411 0.702820\n0.031616 0.640869 0.703003\n0.063812 0.641266 0.703186\n0.091187 0.641724 0.703369\n0.117035 0.642365 0.703552\n0.140961 0.642822 0.703705\n0.163391 0.643219 0.703888\n0.184631 0.643860 0.704041\n0.204865 0.644318 0.704224\n0.224091 0.644745 0.704376\n0.243195 0.645294 0.704590\n0.262024 0.645813 0.704742\n0.280975 0.646179 0.704895\n0.300568 0.646576 0.705078\n0.320831 0.647217 0.705292\n0.342285 0.647644 0.705383\n0.365021 0.648041 0.705597\n0.389435 0.648438 0.705750\n0.415955 0.649017 0.705933\n0.444733 0.649445 0.706055\n0.476166 0.649811 0.706207\n0.510468 0.650146 0.706360\n0.547760 0.650757 0.706512\n0.588104 0.651093 0.706635\n0.630768 0.651459 0.706787\n0.675598 0.651764 0.706940\n0.722412 0.652405 0.707062\n0.770538 0.652710 0.707214\n0.819885 0.653015 0.707367\n0.869781 0.653290 0.707489\n0.915527 0.653595 0.707611\n0.000000 0.683167 0.702972\n0.008423 0.683533 0.703186\n0.034058 0.683899 0.703369\n0.066254 0.684357 0.703552\n0.093597 0.684875 0.703705\n0.119080 0.685242 0.703857\n0.142853 0.685608 0.704041\n0.165161 0.686188 0.704224\n0.186035 0.686554 0.704376\n0.206146 0.686951 0.704590\n0.225311 0.687317 0.704742\n0.244354 0.687866 0.704895\n0.263123 0.688293 0.705078\n0.282074 0.688599 0.705292\n0.301544 0.688965 0.705383\n0.321777 0.689270 0.705597\n0.343292 0.689819 0.705750\n0.366028 0.690186 0.705872\n0.390442 0.690491 0.706055\n0.416931 0.690857 0.706207\n0.445740 0.691345 0.706329\n0.477081 0.691711 0.706512\n0.511230 0.691986 0.706635\n0.548676 0.692352 0.706787\n0.588837 0.692657 0.706940\n0.631561 0.693146 0.707062\n0.676361 0.693451 0.707214\n0.722900 0.693726 0.707367\n0.770874 0.694031 0.707458\n0.820068 0.694305 0.707611\n0.869873 0.694763 0.707672\n0.915527 0.695007 0.707855\n0.000000 0.727905 0.703339\n0.010742 0.728241 0.703491\n0.036377 0.728607 0.703705\n0.068665 0.729095 0.703857\n0.095734 0.729431 0.704041\n0.121063 0.729675 0.704224\n0.144653 0.730042 0.704376\n0.166687 0.730316 0.704590\n0.187408 0.730835 0.704712\n0.207458 0.731171 0.704895\n0.226685 0.731445 0.705078\n0.245514 0.731750 0.705231\n0.264221 0.732025 0.705383\n0.283142 0.732513 0.705566\n0.302460 0.732788 0.705750\n0.322662 0.733124 0.705872\n0.344086 0.733368 0.706055\n0.366974 0.733673 0.706207\n0.391418 0.734131 0.706329\n0.417908 0.734406 0.706482\n0.446594 0.734680 0.706635\n0.477905 0.734894 0.706757\n0.512146 0.735107 0.706909\n0.549591 0.735474 0.707062\n0.589569 0.735840 0.707214\n0.632111 0.736115 0.707367\n0.676819 0.736298 0.707458\n0.723236 0.736542 0.707611\n0.771210 0.736755 0.707672\n0.820221 0.736969 0.707855\n0.869995 0.737244 0.707977\n0.915527 0.737579 0.708069\n0.000000 0.773956 0.703705\n0.013062 0.774231 0.703857\n0.038757 0.774475 0.704041\n0.071228 0.774750 0.704224\n0.097900 0.775177 0.704376\n0.122955 0.775421 0.704590\n0.146332 0.775604 0.704712\n0.168396 0.775848 0.704895\n0.189026 0.776062 0.705078\n0.208710 0.776306 0.705231\n0.227722 0.776642 0.705383\n0.246521 0.776978 0.705566\n0.265198 0.777191 0.705750\n0.284149 0.777466 0.705872\n0.303467 0.777618 0.706055\n0.323669 0.777802 0.706207\n0.345062 0.778076 0.706329\n0.367798 0.778229 0.706482\n0.392334 0.778625 0.706635\n0.418701 0.778839 0.706757\n0.447418 0.779022 0.706909\n0.478851 0.779205 0.707062\n0.513031 0.779388 0.707214\n0.550232 0.779572 0.707367\n0.590332 0.779755 0.707458\n0.632843 0.779968 0.707611\n0.677429 0.780334 0.707672\n0.723877 0.780518 0.707855\n0.771698 0.780670 0.707977\n0.820435 0.780853 0.708069\n0.870178 0.780975 0.708160\n0.915527 0.781128 0.708282\n0.000000 0.820770 0.704041\n0.015472 0.820923 0.704224\n0.041077 0.821106 0.704346\n0.073547 0.821259 0.704529\n0.100220 0.821625 0.704712\n0.124939 0.821808 0.704895\n0.148163 0.821960 0.705078\n0.169830 0.822113 0.705231\n0.190338 0.822266 0.705383\n0.209961 0.822449 0.705566\n0.228973 0.822540 0.705750\n0.247650 0.822693 0.705872\n0.266205 0.822815 0.706024\n0.285095 0.823120 0.706207\n0.304474 0.823364 0.706329\n0.324646 0.823456 0.706482\n0.346039 0.823608 0.706635\n0.368774 0.823792 0.706757\n0.393127 0.823883 0.706909\n0.419586 0.824036 0.707062\n0.448364 0.824158 0.707214\n0.479706 0.824249 0.707367\n0.513947 0.824402 0.707458\n0.551086 0.824463 0.707611\n0.590973 0.824768 0.707672\n0.633362 0.824921 0.707855\n0.677917 0.825104 0.707977\n0.724182 0.825165 0.708069\n0.771912 0.825256 0.708160\n0.820740 0.825378 0.708282\n0.870392 0.825439 0.708374\n0.915527 0.825531 0.708527\n0.000000 0.868164 0.704346\n0.017883 0.868286 0.704529\n0.043365 0.868378 0.704712\n0.075867 0.868469 0.704895\n0.102142 0.868530 0.705048\n0.126831 0.868622 0.705231\n0.149750 0.868713 0.705383\n0.171295 0.868744 0.705566\n0.191681 0.868835 0.705750\n0.211182 0.868896 0.705872\n0.230103 0.868988 0.706024\n0.248718 0.869110 0.706207\n0.267181 0.869110 0.706329\n0.285950 0.869202 0.706482\n0.305481 0.869263 0.706635\n0.325623 0.869293 0.706757\n0.346954 0.869385 0.706909\n0.369690 0.869446 0.707062\n0.394073 0.869568 0.707214\n0.420441 0.869720 0.707306\n0.449158 0.869781 0.707458\n0.480408 0.869934 0.707581\n0.514557 0.869995 0.707672\n0.551727 0.870087 0.707794\n0.591766 0.870087 0.707977\n0.634064 0.870148 0.708069\n0.678284 0.870239 0.708160\n0.724548 0.870270 0.708282\n0.772217 0.870331 0.708374\n0.820984 0.870361 0.708527\n0.870514 0.870422 0.708588\n0.915527 0.870422 0.708679\n0.000000 0.915527 0.704712\n0.020172 0.915527 0.704865\n0.045502 0.915527 0.705048\n0.078094 0.915527 0.705231\n0.104218 0.915527 0.705383\n0.128571 0.915527 0.705566\n0.151428 0.915527 0.705719\n0.172760 0.915527 0.705872\n0.192993 0.915527 0.706024\n0.212402 0.915527 0.706177\n0.231110 0.915527 0.706329\n0.249634 0.915527 0.706482\n0.268188 0.915527 0.706635\n0.286957 0.915527 0.706757\n0.306152 0.915527 0.706909\n0.326355 0.915527 0.707062\n0.347778 0.915527 0.707214\n0.370453 0.915527 0.707306\n0.394958 0.915527 0.707458\n0.421173 0.915527 0.707581\n0.449890 0.915527 0.707672\n0.481262 0.915527 0.707794\n0.515411 0.915527 0.707977\n0.552460 0.915527 0.708069\n0.592255 0.915527 0.708160\n0.634552 0.915527 0.708282\n0.678925 0.915527 0.708374\n0.725098 0.915527 0.708527\n0.772461 0.915527 0.708588\n0.821136 0.915527 0.708679\n0.870544 0.915527 0.708740\n0.915527 0.915527 0.708862\n0.000000 0.000000 0.729614\n0.000000 0.000000 0.729706\n0.000000 0.000000 0.729828\n0.004974 0.000000 0.729919\n0.031860 0.000000 0.730042\n0.065521 0.000000 0.730164\n0.094391 0.000000 0.730255\n0.121490 0.000000 0.730316\n0.146423 0.000000 0.730469\n0.169952 0.000000 0.730560\n0.192108 0.000000 0.730682\n0.213257 0.000000 0.730804\n0.233765 0.000000 0.730957\n0.253906 0.000000 0.731079\n0.274170 0.000000 0.731201\n0.294983 0.000000 0.731323\n0.316498 0.000000 0.731476\n0.339233 0.000000 0.731598\n0.363770 0.000000 0.731750\n0.390137 0.000000 0.731873\n0.418854 0.000000 0.732056\n0.450256 0.000000 0.732178\n0.484863 0.000000 0.732300\n0.522980 0.000000 0.732452\n0.564697 0.000000 0.732574\n0.609467 0.000000 0.732727\n0.656982 0.000000 0.732880\n0.706848 0.000000 0.733032\n0.758545 0.000000 0.733185\n0.811615 0.000214 0.733337\n0.865784 0.001648 0.733490\n0.915527 0.002991 0.733673\n0.000000 0.000000 0.729828\n0.000000 0.000000 0.729919\n0.000000 0.000000 0.729980\n0.006439 0.000000 0.730133\n0.033417 0.000000 0.730225\n0.067169 0.000000 0.730316\n0.096039 0.000000 0.730438\n0.122833 0.000000 0.730560\n0.147736 0.000366 0.730682\n0.171143 0.001434 0.730804\n0.193268 0.002563 0.730957\n0.214294 0.003601 0.731079\n0.234680 0.004791 0.731201\n0.254913 0.006134 0.731323\n0.275085 0.007385 0.731476\n0.295898 0.008606 0.731598\n0.317444 0.009918 0.731750\n0.340210 0.011200 0.731873\n0.364594 0.012512 0.732025\n0.390961 0.013855 0.732178\n0.419678 0.015228 0.732300\n0.451172 0.016602 0.732452\n0.485870 0.018066 0.732574\n0.523987 0.019531 0.732727\n0.565643 0.020996 0.732880\n0.610382 0.022430 0.733032\n0.657806 0.023865 0.733185\n0.707611 0.025299 0.733337\n0.759155 0.026978 0.733490\n0.812134 0.028442 0.733612\n0.865906 0.029938 0.733826\n0.915527 0.031433 0.733978\n0.000000 0.020020 0.729980\n0.000000 0.021027 0.730133\n0.000000 0.022095 0.730225\n0.007965 0.023193 0.730316\n0.035065 0.024170 0.730438\n0.069031 0.025238 0.730560\n0.097565 0.026459 0.730682\n0.124298 0.027618 0.730804\n0.149261 0.028839 0.730957\n0.172363 0.030029 0.731079\n0.194275 0.031281 0.731171\n0.215393 0.032562 0.731323\n0.235657 0.033813 0.731476\n0.255890 0.035065 0.731598\n0.276062 0.036407 0.731750\n0.296753 0.037689 0.731873\n0.318451 0.039001 0.732025\n0.341187 0.040375 0.732178\n0.365509 0.041718 0.732300\n0.391907 0.043091 0.732452\n0.420685 0.044495 0.732574\n0.452179 0.045990 0.732727\n0.486877 0.048523 0.732880\n0.524994 0.050995 0.733032\n0.566406 0.053772 0.733185\n0.611145 0.056610 0.733337\n0.658539 0.059052 0.733490\n0.708130 0.060547 0.733612\n0.759583 0.062164 0.733795\n0.812439 0.063812 0.733978\n0.866028 0.065430 0.734131\n0.915527 0.067017 0.734283\n0.000000 0.052216 0.730225\n0.000000 0.054138 0.730316\n0.000000 0.056000 0.730438\n0.009735 0.058014 0.730530\n0.036835 0.059479 0.730682\n0.070740 0.060760 0.730804\n0.099335 0.062012 0.730896\n0.125885 0.063385 0.731079\n0.150574 0.064667 0.731171\n0.173584 0.065857 0.731323\n0.195404 0.067169 0.731445\n0.216492 0.068573 0.731598\n0.236694 0.069977 0.731750\n0.256805 0.071411 0.731873\n0.277069 0.072845 0.732025\n0.297638 0.074249 0.732178\n0.319275 0.075745 0.732300\n0.342194 0.077148 0.732452\n0.366486 0.078583 0.732574\n0.392914 0.080109 0.732727\n0.421692 0.081573 0.732880\n0.453217 0.083069 0.733032\n0.487732 0.084595 0.733185\n0.525909 0.086060 0.733337\n0.567413 0.087555 0.733490\n0.612030 0.089111 0.733612\n0.659302 0.090576 0.733795\n0.708893 0.092163 0.733948\n0.760132 0.093658 0.734131\n0.812683 0.095154 0.734283\n0.866241 0.096710 0.734436\n0.915527 0.098206 0.734558\n0.000000 0.086823 0.730438\n0.000000 0.087891 0.730530\n0.000000 0.089142 0.730682\n0.011444 0.090363 0.730804\n0.038605 0.091431 0.730896\n0.072601 0.092651 0.731079\n0.100922 0.093872 0.731171\n0.127380 0.095123 0.731323\n0.151947 0.096436 0.731445\n0.174927 0.097717 0.731598\n0.196747 0.098846 0.731750\n0.217590 0.100159 0.731842\n0.237762 0.101501 0.732025\n0.257751 0.102844 0.732178\n0.278015 0.104218 0.732300\n0.298645 0.105499 0.732452\n0.320190 0.106964 0.732574\n0.343140 0.108215 0.732727\n0.367554 0.109497 0.732880\n0.393982 0.110870 0.733032\n0.422760 0.112244 0.733185\n0.454285 0.113647 0.733337\n0.488770 0.115082 0.733490\n0.526825 0.116455 0.733612\n0.568420 0.117889 0.733795\n0.612946 0.119324 0.733948\n0.660126 0.120667 0.734131\n0.709473 0.122040 0.734283\n0.760651 0.123444 0.734436\n0.813171 0.124756 0.734558\n0.866547 0.126160 0.734711\n0.915527 0.127563 0.734894\n0.000000 0.117584 0.730682\n0.000000 0.118530 0.730804\n0.000000 0.119629 0.730896\n0.013275 0.120789 0.731079\n0.040466 0.121735 0.731171\n0.074615 0.122925 0.731323\n0.102814 0.124115 0.731445\n0.129089 0.125305 0.731598\n0.153412 0.126343 0.731750\n0.176270 0.127533 0.731842\n0.198029 0.128754 0.732025\n0.218750 0.130035 0.732178\n0.238861 0.131042 0.732300\n0.258820 0.132294 0.732452\n0.278961 0.133606 0.732574\n0.299683 0.134827 0.732697\n0.321228 0.136108 0.732819\n0.343994 0.137177 0.733002\n0.368561 0.138428 0.733185\n0.394989 0.139740 0.733337\n0.423859 0.140991 0.733490\n0.455322 0.142334 0.733612\n0.489868 0.143494 0.733795\n0.527893 0.144684 0.733948\n0.569427 0.145996 0.734131\n0.613861 0.147308 0.734283\n0.660797 0.148590 0.734436\n0.710205 0.149780 0.734558\n0.761047 0.150970 0.734711\n0.813538 0.152252 0.734894\n0.866760 0.153534 0.735046\n0.915527 0.154816 0.735199\n0.000000 0.146057 0.730896\n0.000000 0.147095 0.731079\n0.000000 0.147980 0.731171\n0.015198 0.149017 0.731293\n0.042328 0.150116 0.731445\n0.076630 0.151031 0.731598\n0.104431 0.152100 0.731720\n0.130615 0.153259 0.731842\n0.154968 0.154175 0.732025\n0.177673 0.155273 0.732178\n0.199280 0.156433 0.732300\n0.219971 0.157440 0.732422\n0.239990 0.158478 0.732544\n0.259888 0.159668 0.732697\n0.279968 0.160675 0.732819\n0.300751 0.161743 0.733002\n0.322266 0.162933 0.733185\n0.345032 0.164124 0.733337\n0.369629 0.165100 0.733490\n0.396088 0.166260 0.733612\n0.424866 0.167450 0.733795\n0.456177 0.168396 0.733948\n0.490936 0.169586 0.734100\n0.528961 0.170776 0.734283\n0.570251 0.171967 0.734436\n0.614655 0.172913 0.734558\n0.661682 0.174103 0.734711\n0.710724 0.175293 0.734863\n0.761719 0.176331 0.735046\n0.813812 0.177429 0.735199\n0.866882 0.178619 0.735321\n0.915527 0.179718 0.735504\n0.000000 0.172394 0.731171\n0.000000 0.173340 0.731293\n0.000000 0.174133 0.731445\n0.017120 0.175110 0.731598\n0.044250 0.175964 0.731720\n0.078674 0.177002 0.731842\n0.106384 0.177887 0.732025\n0.132385 0.178772 0.732178\n0.156433 0.179871 0.732239\n0.179047 0.180664 0.732422\n0.200531 0.181732 0.732544\n0.221069 0.182770 0.732697\n0.241089 0.183624 0.732819\n0.260986 0.184723 0.733002\n0.281036 0.185547 0.733154\n0.301788 0.186646 0.733307\n0.323334 0.187714 0.733490\n0.346100 0.188568 0.733612\n0.370636 0.189667 0.733795\n0.397095 0.190674 0.733948\n0.425751 0.191620 0.734100\n0.457275 0.192719 0.734222\n0.492035 0.193756 0.734436\n0.530029 0.194672 0.734558\n0.571228 0.195740 0.734711\n0.615601 0.196655 0.734863\n0.662567 0.197693 0.735046\n0.711548 0.198792 0.735199\n0.762177 0.199615 0.735321\n0.814056 0.200714 0.735474\n0.867035 0.201721 0.735687\n0.915527 0.202667 0.735809\n0.000000 0.196564 0.731445\n0.000000 0.197479 0.731598\n0.000000 0.198181 0.731720\n0.019073 0.199127 0.731842\n0.046753 0.199982 0.732025\n0.080597 0.200806 0.732147\n0.108307 0.201599 0.732239\n0.133972 0.202515 0.732422\n0.157867 0.203461 0.732544\n0.180420 0.204224 0.732697\n0.201782 0.205231 0.732819\n0.222290 0.205963 0.733002\n0.242249 0.206970 0.733154\n0.262115 0.207764 0.733307\n0.282104 0.208740 0.733429\n0.302612 0.209747 0.733612\n0.324371 0.210541 0.733795\n0.347168 0.211517 0.733948\n0.371521 0.212311 0.734100\n0.398010 0.213318 0.734222\n0.426880 0.214142 0.734436\n0.458374 0.215118 0.734558\n0.493042 0.216125 0.734711\n0.531036 0.216858 0.734863\n0.572266 0.217896 0.735016\n0.616577 0.218658 0.735199\n0.663208 0.219666 0.735321\n0.712067 0.220490 0.735474\n0.762726 0.221436 0.735687\n0.814392 0.222443 0.735809\n0.867157 0.223236 0.735992\n0.915527 0.224182 0.736145\n0.000000 0.219238 0.731720\n0.000000 0.219940 0.731842\n0.000000 0.220764 0.732025\n0.021271 0.221436 0.732147\n0.050262 0.222382 0.732239\n0.082794 0.223022 0.732422\n0.110291 0.223755 0.732544\n0.135803 0.224609 0.732697\n0.159576 0.225464 0.732819\n0.181885 0.226196 0.733002\n0.203064 0.227173 0.733154\n0.223480 0.227814 0.733307\n0.243378 0.228760 0.733429\n0.263184 0.229462 0.733582\n0.283203 0.230347 0.733734\n0.303741 0.231110 0.733948\n0.325317 0.232056 0.734100\n0.348206 0.232758 0.734222\n0.372620 0.233704 0.734406\n0.399078 0.234406 0.734558\n0.427917 0.235352 0.734711\n0.459503 0.236053 0.734863\n0.494080 0.237000 0.735016\n0.531921 0.237732 0.735199\n0.573303 0.238647 0.735321\n0.617371 0.239380 0.735474\n0.664093 0.240326 0.735657\n0.712799 0.241058 0.735809\n0.763214 0.241943 0.735992\n0.814880 0.242676 0.736145\n0.867310 0.243591 0.736298\n0.915527 0.244263 0.736450\n0.000000 0.240417 0.731964\n0.000000 0.241058 0.732147\n0.000000 0.241882 0.732239\n0.023346 0.242493 0.732422\n0.053864 0.243317 0.732544\n0.084869 0.243958 0.732697\n0.112030 0.244781 0.732819\n0.137451 0.245483 0.733002\n0.161041 0.246216 0.733154\n0.183380 0.246948 0.733307\n0.204346 0.247681 0.733429\n0.224762 0.248474 0.733582\n0.244568 0.249115 0.733734\n0.264313 0.249969 0.733948\n0.284302 0.250702 0.734100\n0.304810 0.251526 0.734222\n0.326355 0.252197 0.734406\n0.349304 0.253082 0.734497\n0.373688 0.253723 0.734711\n0.400177 0.254639 0.734863\n0.429047 0.255249 0.735016\n0.460602 0.256165 0.735199\n0.495087 0.256836 0.735321\n0.533020 0.257690 0.735474\n0.574280 0.258392 0.735657\n0.618256 0.259247 0.735809\n0.664948 0.259918 0.735992\n0.713379 0.260803 0.736145\n0.763611 0.261444 0.736267\n0.815186 0.262115 0.736450\n0.867462 0.262970 0.736633\n0.915527 0.263611 0.736786\n0.000000 0.260803 0.732239\n0.000000 0.261383 0.732422\n0.000000 0.261932 0.732544\n0.025513 0.262787 0.732697\n0.057953 0.263306 0.732819\n0.086914 0.264130 0.733002\n0.114044 0.264740 0.733154\n0.139282 0.265472 0.733307\n0.162689 0.266113 0.733429\n0.184723 0.266785 0.733582\n0.205627 0.267578 0.733734\n0.225983 0.268188 0.733887\n0.245758 0.269043 0.734100\n0.265472 0.269684 0.734222\n0.285431 0.270416 0.734406\n0.305908 0.271088 0.734497\n0.327423 0.271881 0.734711\n0.350433 0.272522 0.734863\n0.374847 0.273163 0.735016\n0.401276 0.274017 0.735168\n0.430176 0.274628 0.735321\n0.461700 0.275452 0.735474\n0.496185 0.276062 0.735657\n0.534088 0.276947 0.735809\n0.575195 0.277588 0.735992\n0.619263 0.278290 0.736145\n0.665619 0.278992 0.736267\n0.714142 0.279633 0.736420\n0.764282 0.280457 0.736633\n0.815491 0.281036 0.736786\n0.867615 0.281860 0.736908\n0.915527 0.282471 0.737091\n0.000000 0.280457 0.732544\n0.000000 0.280975 0.732697\n0.001648 0.281708 0.732819\n0.027740 0.282318 0.733002\n0.060577 0.282867 0.733154\n0.089264 0.283661 0.733307\n0.116058 0.284210 0.733429\n0.140930 0.284882 0.733582\n0.164276 0.285583 0.733734\n0.186127 0.286163 0.733887\n0.207092 0.286957 0.734070\n0.227203 0.287506 0.734222\n0.246918 0.288300 0.734406\n0.266602 0.288910 0.734497\n0.286530 0.289642 0.734680\n0.307007 0.290283 0.734863\n0.328491 0.290894 0.735016\n0.351471 0.291656 0.735168\n0.375916 0.292267 0.735321\n0.402405 0.293091 0.735474\n0.431274 0.293671 0.735657\n0.462830 0.294312 0.735809\n0.497314 0.295074 0.735931\n0.535187 0.295654 0.736145\n0.576233 0.296478 0.736267\n0.620239 0.297058 0.736420\n0.666504 0.297699 0.736633\n0.714722 0.298431 0.736786\n0.764679 0.299042 0.736908\n0.815979 0.299835 0.737091\n0.867920 0.300385 0.737213\n0.915527 0.301178 0.737396\n0.000000 0.299927 0.732819\n0.000000 0.300476 0.732971\n0.003693 0.301178 0.733124\n0.029938 0.301727 0.733246\n0.062897 0.302246 0.733429\n0.091339 0.303009 0.733582\n0.118042 0.303589 0.733734\n0.142792 0.304260 0.733887\n0.165802 0.304901 0.734070\n0.187653 0.305481 0.734192\n0.208496 0.306213 0.734406\n0.228424 0.306793 0.734497\n0.248108 0.307373 0.734680\n0.267761 0.308105 0.734863\n0.287598 0.308685 0.735016\n0.308105 0.309448 0.735168\n0.329590 0.310059 0.735321\n0.352386 0.310730 0.735474\n0.377014 0.311401 0.735657\n0.403534 0.311951 0.735809\n0.432404 0.312744 0.735931\n0.463898 0.313324 0.736145\n0.498352 0.313965 0.736267\n0.536316 0.314667 0.736420\n0.577240 0.315247 0.736572\n0.620972 0.316010 0.736786\n0.667267 0.316589 0.736908\n0.715454 0.317322 0.737091\n0.765320 0.317871 0.737213\n0.816223 0.318451 0.737396\n0.868103 0.319183 0.737518\n0.915527 0.319733 0.737671\n0.000000 0.319519 0.733124\n0.000000 0.320038 0.733246\n0.005920 0.320770 0.733429\n0.032288 0.321289 0.733582\n0.065308 0.321869 0.733734\n0.093628 0.322601 0.733887\n0.119965 0.323120 0.734070\n0.144592 0.323853 0.734192\n0.167511 0.324402 0.734406\n0.189178 0.324951 0.734497\n0.209808 0.325714 0.734680\n0.229675 0.326263 0.734833\n0.249298 0.326904 0.735016\n0.268890 0.327606 0.735168\n0.288696 0.328125 0.735321\n0.309204 0.328918 0.735474\n0.330719 0.329468 0.735657\n0.353516 0.330017 0.735809\n0.378174 0.330780 0.735931\n0.404633 0.331299 0.736145\n0.433411 0.332092 0.736267\n0.464966 0.332642 0.736420\n0.499512 0.333191 0.736572\n0.537323 0.333923 0.736755\n0.578278 0.334503 0.736908\n0.621918 0.335266 0.737091\n0.667969 0.335876 0.737213\n0.716156 0.336365 0.737396\n0.765747 0.337128 0.737518\n0.816528 0.337677 0.737671\n0.868225 0.338257 0.737793\n0.915527 0.338928 0.737976\n0.000000 0.339600 0.733429\n0.000000 0.340332 0.733582\n0.008057 0.340851 0.733734\n0.034546 0.341370 0.733887\n0.067749 0.342133 0.734070\n0.095795 0.342621 0.734192\n0.121918 0.343292 0.734344\n0.146332 0.343903 0.734497\n0.169098 0.344452 0.734680\n0.190613 0.345184 0.734833\n0.211151 0.345734 0.735016\n0.230927 0.346252 0.735168\n0.250519 0.347046 0.735321\n0.270020 0.347565 0.735474\n0.289856 0.348236 0.735657\n0.310333 0.348907 0.735809\n0.331818 0.349426 0.735931\n0.354614 0.350189 0.736115\n0.379211 0.350739 0.736267\n0.405731 0.351440 0.736420\n0.434479 0.352051 0.736572\n0.465973 0.352570 0.736755\n0.500641 0.353302 0.736877\n0.538177 0.353882 0.737091\n0.579315 0.354431 0.737213\n0.622864 0.355164 0.737396\n0.668854 0.355713 0.737518\n0.716705 0.356384 0.737671\n0.766174 0.356995 0.737793\n0.816956 0.357513 0.737976\n0.868408 0.358154 0.738129\n0.915527 0.358765 0.738281\n0.000000 0.360657 0.733734\n0.000000 0.361359 0.733887\n0.010376 0.361938 0.734070\n0.036926 0.362427 0.734192\n0.070251 0.363220 0.734344\n0.097961 0.363708 0.734497\n0.123932 0.364258 0.734680\n0.148224 0.365021 0.734833\n0.170837 0.365540 0.734985\n0.192108 0.366150 0.735168\n0.212463 0.366821 0.735321\n0.232147 0.367371 0.735474\n0.251678 0.368103 0.735596\n0.271179 0.368652 0.735809\n0.291016 0.369202 0.735931\n0.311432 0.369965 0.736115\n0.332916 0.370483 0.736267\n0.355743 0.371033 0.736420\n0.380280 0.371796 0.736572\n0.406769 0.372314 0.736755\n0.435638 0.373108 0.736877\n0.467072 0.373596 0.737030\n0.501678 0.374207 0.737213\n0.539276 0.374939 0.737396\n0.580231 0.375458 0.737518\n0.623779 0.376007 0.737671\n0.669464 0.376709 0.737793\n0.717285 0.377228 0.737976\n0.766754 0.377991 0.738129\n0.817322 0.378540 0.738281\n0.868530 0.378998 0.738434\n0.915527 0.379730 0.738556\n0.000000 0.382996 0.734070\n0.000000 0.383514 0.734192\n0.012756 0.384094 0.734344\n0.039154 0.384796 0.734497\n0.072601 0.385345 0.734680\n0.100342 0.386078 0.734833\n0.125977 0.386597 0.734985\n0.149933 0.387177 0.735138\n0.172333 0.387878 0.735321\n0.193634 0.388428 0.735474\n0.213776 0.388977 0.735596\n0.233429 0.389740 0.735809\n0.252869 0.390259 0.735931\n0.272369 0.391022 0.736115\n0.291962 0.391571 0.736206\n0.312561 0.392120 0.736420\n0.334045 0.392853 0.736572\n0.356812 0.393402 0.736755\n0.381348 0.393921 0.736877\n0.407806 0.394714 0.737030\n0.436646 0.395264 0.737213\n0.468170 0.395935 0.737396\n0.502563 0.396484 0.737518\n0.540314 0.397064 0.737671\n0.581055 0.397766 0.737793\n0.624512 0.398346 0.737976\n0.670319 0.398834 0.738129\n0.717987 0.399597 0.738281\n0.767151 0.400085 0.738434\n0.817535 0.400696 0.738556\n0.868683 0.401306 0.738708\n0.915527 0.401825 0.738861\n0.000000 0.406708 0.734344\n0.000000 0.407410 0.734467\n0.015167 0.407959 0.734680\n0.041565 0.408508 0.734833\n0.074982 0.409271 0.734985\n0.102478 0.409790 0.735138\n0.128021 0.410309 0.735321\n0.151733 0.411102 0.735474\n0.173950 0.411621 0.735596\n0.195038 0.412323 0.735748\n0.215302 0.412964 0.735931\n0.234863 0.413483 0.736115\n0.254059 0.414276 0.736206\n0.273407 0.414764 0.736389\n0.293060 0.415283 0.736572\n0.313690 0.416046 0.736755\n0.335144 0.416595 0.736877\n0.357910 0.417236 0.737030\n0.382324 0.417908 0.737213\n0.408875 0.418427 0.737396\n0.437714 0.419189 0.737518\n0.469238 0.419708 0.737671\n0.503632 0.420258 0.737793\n0.541382 0.420990 0.737976\n0.582062 0.421509 0.738129\n0.625427 0.422058 0.738281\n0.671051 0.422791 0.738434\n0.718506 0.423248 0.738556\n0.767578 0.423920 0.738708\n0.817841 0.424530 0.738800\n0.868774 0.424988 0.738953\n0.915527 0.425720 0.739105\n0.000000 0.432495 0.734619\n0.000000 0.433014 0.734833\n0.017548 0.433533 0.734985\n0.043976 0.434296 0.735138\n0.077545 0.434814 0.735291\n0.104553 0.435516 0.735474\n0.129822 0.436127 0.735596\n0.153564 0.436676 0.735748\n0.175598 0.437439 0.735901\n0.196442 0.437988 0.736115\n0.216614 0.438477 0.736206\n0.236053 0.439270 0.736389\n0.255249 0.439819 0.736572\n0.274658 0.440460 0.736755\n0.294220 0.441101 0.736877\n0.314728 0.441650 0.737030\n0.336243 0.442413 0.737183\n0.359039 0.442963 0.737396\n0.383453 0.443481 0.737518\n0.409943 0.444244 0.737671\n0.438812 0.444763 0.737793\n0.470337 0.445374 0.737976\n0.504700 0.446045 0.738129\n0.542389 0.446594 0.738281\n0.583038 0.447296 0.738434\n0.626312 0.447784 0.738556\n0.671722 0.448334 0.738708\n0.719177 0.449036 0.738800\n0.768158 0.449554 0.738953\n0.818054 0.450012 0.739105\n0.869080 0.450714 0.739227\n0.915527 0.451233 0.739380\n0.000000 0.460236 0.734985\n0.000000 0.460938 0.735138\n0.019928 0.461456 0.735291\n0.046875 0.462128 0.735474\n0.079987 0.462769 0.735596\n0.106873 0.463287 0.735748\n0.131836 0.464050 0.735901\n0.155243 0.464600 0.736115\n0.177094 0.465210 0.736206\n0.198059 0.465881 0.736389\n0.217926 0.466431 0.736542\n0.237366 0.467010 0.736755\n0.256470 0.467743 0.736877\n0.275787 0.468262 0.737030\n0.295319 0.469055 0.737183\n0.315765 0.469574 0.737335\n0.337189 0.470062 0.737488\n0.360077 0.470856 0.737671\n0.384521 0.471375 0.737793\n0.411041 0.472107 0.737976\n0.439880 0.472626 0.738129\n0.471344 0.473175 0.738220\n0.505768 0.473816 0.738403\n0.543396 0.474426 0.738556\n0.583954 0.474884 0.738678\n0.627045 0.475647 0.738800\n0.672607 0.476135 0.738953\n0.719727 0.476624 0.739105\n0.768524 0.477356 0.739227\n0.818573 0.477814 0.739380\n0.869293 0.478302 0.739532\n0.915527 0.478973 0.739655\n0.000000 0.490631 0.735291\n0.000000 0.491211 0.735474\n0.022400 0.491699 0.735596\n0.050873 0.492523 0.735748\n0.082306 0.493011 0.735901\n0.109009 0.493713 0.736084\n0.133820 0.494324 0.736206\n0.157074 0.494873 0.736389\n0.178802 0.495667 0.736542\n0.199432 0.496155 0.736725\n0.219177 0.496704 0.736877\n0.238617 0.497437 0.737030\n0.257599 0.497986 0.737183\n0.276794 0.498535 0.737335\n0.296448 0.499298 0.737488\n0.316895 0.499786 0.737640\n0.338226 0.500549 0.737793\n0.361084 0.501038 0.737915\n0.385590 0.501617 0.738068\n0.412109 0.502289 0.738220\n0.440948 0.502869 0.738403\n0.472443 0.503326 0.738495\n0.506805 0.504059 0.738678\n0.544281 0.504608 0.738800\n0.584778 0.505035 0.738953\n0.627930 0.505768 0.739105\n0.673157 0.506256 0.739227\n0.720337 0.506744 0.739380\n0.769135 0.507446 0.739471\n0.818787 0.507904 0.739655\n0.869385 0.508331 0.739777\n0.915527 0.509033 0.739929\n0.000000 0.523682 0.735596\n0.000000 0.524384 0.735748\n0.024872 0.524872 0.735901\n0.055237 0.525452 0.736084\n0.084686 0.526184 0.736206\n0.111206 0.526703 0.736389\n0.135803 0.527435 0.736542\n0.158691 0.528015 0.736725\n0.180298 0.528503 0.736816\n0.200836 0.529266 0.737030\n0.220490 0.529785 0.737183\n0.239777 0.530457 0.737335\n0.258759 0.531067 0.737488\n0.277893 0.531586 0.737640\n0.297516 0.532196 0.737793\n0.317841 0.532867 0.737915\n0.339233 0.533356 0.738068\n0.362183 0.534088 0.738220\n0.386658 0.534546 0.738403\n0.413177 0.535065 0.738495\n0.442047 0.535767 0.738678\n0.473419 0.536285 0.738800\n0.507812 0.536774 0.738953\n0.545258 0.537415 0.739105\n0.585724 0.537994 0.739227\n0.628784 0.538391 0.739380\n0.673950 0.539032 0.739471\n0.720795 0.539612 0.739655\n0.769440 0.540039 0.739777\n0.819031 0.540619 0.739929\n0.869507 0.541138 0.740021\n0.915527 0.541565 0.740173\n0.000000 0.559845 0.735901\n0.001953 0.560333 0.736084\n0.027161 0.561096 0.736176\n0.059204 0.561584 0.736389\n0.086914 0.562134 0.736542\n0.113159 0.562836 0.736725\n0.137573 0.563354 0.736816\n0.160492 0.563873 0.737030\n0.181885 0.564575 0.737183\n0.202179 0.565125 0.737335\n0.221771 0.565643 0.737488\n0.240997 0.566345 0.737640\n0.259918 0.566833 0.737793\n0.279022 0.567352 0.737915\n0.298615 0.568054 0.738068\n0.318939 0.568542 0.738220\n0.340332 0.569092 0.738403\n0.363129 0.569733 0.738495\n0.387756 0.570190 0.738678\n0.414246 0.570831 0.738800\n0.443024 0.571381 0.738953\n0.474274 0.571838 0.739105\n0.508636 0.572296 0.739227\n0.546204 0.572968 0.739380\n0.586578 0.573425 0.739471\n0.629425 0.573853 0.739655\n0.674438 0.574493 0.739777\n0.721497 0.574921 0.739929\n0.769806 0.575378 0.740021\n0.819244 0.575928 0.740112\n0.869629 0.576385 0.740265\n0.915527 0.576782 0.740387\n0.000000 0.598694 0.736176\n0.004211 0.599213 0.736389\n0.029663 0.599884 0.736542\n0.061707 0.600403 0.736725\n0.089478 0.600861 0.736816\n0.115295 0.601562 0.737000\n0.139526 0.602081 0.737183\n0.162079 0.602509 0.737335\n0.183411 0.603241 0.737488\n0.203644 0.603699 0.737640\n0.223145 0.604156 0.737793\n0.242218 0.604858 0.737915\n0.261078 0.605316 0.738068\n0.280029 0.605774 0.738220\n0.299683 0.606476 0.738403\n0.319946 0.606873 0.738495\n0.341370 0.607361 0.738678\n0.364166 0.607788 0.738800\n0.388702 0.608459 0.738922\n0.415192 0.608887 0.739105\n0.443878 0.609283 0.739227\n0.475311 0.609924 0.739380\n0.509644 0.610382 0.739471\n0.547180 0.610779 0.739655\n0.587341 0.611328 0.739777\n0.630280 0.611816 0.739929\n0.675232 0.612213 0.740021\n0.721924 0.612579 0.740112\n0.770203 0.612976 0.740265\n0.819580 0.613586 0.740387\n0.869720 0.613922 0.740509\n0.915527 0.614319 0.740631\n0.000000 0.639893 0.736542\n0.006439 0.640564 0.736725\n0.032135 0.641022 0.736816\n0.064209 0.641479 0.737000\n0.091766 0.642059 0.737152\n0.117371 0.642517 0.737335\n0.141418 0.642975 0.737488\n0.163818 0.643433 0.737640\n0.184875 0.644043 0.737793\n0.205078 0.644501 0.737915\n0.224335 0.644897 0.738068\n0.243347 0.645538 0.738220\n0.262177 0.645935 0.738403\n0.281158 0.646362 0.738495\n0.300781 0.646881 0.738678\n0.321014 0.647400 0.738800\n0.342438 0.647797 0.738922\n0.365143 0.648163 0.739105\n0.389618 0.648621 0.739227\n0.416107 0.649170 0.739349\n0.444916 0.649536 0.739471\n0.476318 0.649902 0.739655\n0.510620 0.650391 0.739777\n0.547913 0.650848 0.739929\n0.588226 0.651215 0.740021\n0.630859 0.651581 0.740112\n0.675751 0.652069 0.740265\n0.722473 0.652466 0.740387\n0.770660 0.652802 0.740509\n0.819916 0.653137 0.740631\n0.869781 0.653442 0.740753\n0.915527 0.653870 0.740845\n0.000000 0.683289 0.736816\n0.008759 0.683716 0.737000\n0.034424 0.684052 0.737152\n0.066681 0.684662 0.737305\n0.093994 0.684967 0.737488\n0.119446 0.685425 0.737640\n0.143188 0.685760 0.737793\n0.165405 0.686371 0.737915\n0.186371 0.686737 0.738068\n0.206390 0.687103 0.738220\n0.225708 0.687439 0.738403\n0.244568 0.688019 0.738495\n0.263275 0.688416 0.738617\n0.282257 0.688782 0.738770\n0.301819 0.689087 0.738922\n0.322021 0.689453 0.739105\n0.343445 0.689972 0.739227\n0.366180 0.690308 0.739349\n0.390564 0.690674 0.739471\n0.417053 0.690979 0.739624\n0.445923 0.691498 0.739777\n0.477295 0.691803 0.739899\n0.511536 0.692139 0.740021\n0.548798 0.692444 0.740112\n0.589081 0.692841 0.740265\n0.631653 0.693268 0.740387\n0.676453 0.693542 0.740509\n0.722992 0.693817 0.740631\n0.770905 0.694122 0.740753\n0.820129 0.694489 0.740845\n0.869904 0.694885 0.740906\n0.915527 0.695129 0.741058\n0.000000 0.728058 0.737152\n0.011169 0.728363 0.737305\n0.036865 0.728912 0.737488\n0.069244 0.729187 0.737640\n0.096222 0.729523 0.737793\n0.121490 0.729797 0.737915\n0.144989 0.730133 0.738068\n0.166962 0.730499 0.738220\n0.187897 0.730957 0.738403\n0.207672 0.731232 0.738464\n0.226898 0.731506 0.738617\n0.245697 0.731842 0.738770\n0.264374 0.732208 0.738922\n0.283295 0.732605 0.739105\n0.302582 0.732910 0.739227\n0.322968 0.733185 0.739349\n0.344238 0.733459 0.739471\n0.367188 0.733826 0.739624\n0.391541 0.734222 0.739777\n0.418030 0.734467 0.739899\n0.446838 0.734772 0.740021\n0.478058 0.734985 0.740112\n0.512238 0.735168 0.740265\n0.549713 0.735657 0.740387\n0.589691 0.735931 0.740448\n0.632324 0.736176 0.740631\n0.676910 0.736389 0.740753\n0.723328 0.736633 0.740845\n0.771271 0.736816 0.740906\n0.820282 0.737091 0.741058\n0.870117 0.737366 0.741150\n0.915527 0.737671 0.741272\n0.000000 0.774109 0.737457\n0.013580 0.774323 0.737610\n0.039124 0.774536 0.737793\n0.071564 0.774811 0.737915\n0.098419 0.775269 0.738068\n0.123383 0.775482 0.738220\n0.146729 0.775696 0.738342\n0.168579 0.775940 0.738464\n0.189270 0.776154 0.738617\n0.208893 0.776398 0.738770\n0.228088 0.776825 0.738922\n0.246826 0.777069 0.739105\n0.265472 0.777283 0.739197\n0.284302 0.777496 0.739349\n0.303619 0.777710 0.739471\n0.323853 0.777924 0.739624\n0.345184 0.778107 0.739777\n0.367950 0.778381 0.739899\n0.392517 0.778748 0.739990\n0.419006 0.778900 0.740112\n0.447632 0.779144 0.740265\n0.478973 0.779297 0.740387\n0.513184 0.779480 0.740448\n0.550354 0.779663 0.740601\n0.590546 0.779816 0.740753\n0.632935 0.780151 0.740784\n0.677582 0.780426 0.740906\n0.723907 0.780579 0.741058\n0.771759 0.780701 0.741150\n0.820496 0.780884 0.741211\n0.870178 0.781036 0.741333\n0.915527 0.781128 0.741425\n0.000000 0.820831 0.737732\n0.015961 0.820984 0.737885\n0.041534 0.821136 0.738068\n0.073914 0.821472 0.738190\n0.100586 0.821716 0.738342\n0.125214 0.821869 0.738464\n0.148438 0.822021 0.738617\n0.170074 0.822144 0.738770\n0.190582 0.822296 0.738922\n0.210175 0.822479 0.739044\n0.229279 0.822601 0.739197\n0.247894 0.822754 0.739349\n0.266510 0.822906 0.739471\n0.285370 0.823151 0.739624\n0.304596 0.823395 0.739746\n0.324768 0.823517 0.739899\n0.346161 0.823700 0.739990\n0.368927 0.823792 0.740112\n0.393402 0.823944 0.740265\n0.419739 0.824066 0.740387\n0.448486 0.824158 0.740448\n0.479828 0.824310 0.740601\n0.514069 0.824463 0.740723\n0.551208 0.824554 0.740784\n0.591095 0.824860 0.740906\n0.633453 0.825012 0.741058\n0.677979 0.825104 0.741150\n0.724243 0.825195 0.741211\n0.771973 0.825287 0.741333\n0.820831 0.825409 0.741425\n0.870392 0.825470 0.741516\n0.915527 0.825562 0.741608\n0.000000 0.868164 0.738068\n0.018219 0.868347 0.738190\n0.043701 0.868439 0.738342\n0.076385 0.868469 0.738464\n0.102661 0.868561 0.738617\n0.127167 0.868652 0.738770\n0.150116 0.868713 0.738922\n0.171661 0.868774 0.739044\n0.191895 0.868896 0.739197\n0.211334 0.868958 0.739349\n0.230408 0.868988 0.739441\n0.248993 0.869110 0.739624\n0.267456 0.869171 0.739746\n0.286255 0.869202 0.739899\n0.305603 0.869293 0.739990\n0.325714 0.869354 0.740112\n0.347107 0.869385 0.740265\n0.369812 0.869446 0.740387\n0.394165 0.869568 0.740448\n0.420624 0.869781 0.740601\n0.449341 0.869873 0.740723\n0.480499 0.869934 0.740784\n0.514679 0.869995 0.740906\n0.551971 0.870087 0.741058\n0.591827 0.870148 0.741150\n0.634155 0.870178 0.741211\n0.678467 0.870239 0.741333\n0.724640 0.870270 0.741425\n0.772247 0.870331 0.741516\n0.821014 0.870361 0.741608\n0.870514 0.870422 0.741669\n0.915527 0.870422 0.741760\n0.000000 0.915527 0.738342\n0.020599 0.915527 0.738464\n0.046326 0.915527 0.738617\n0.078644 0.915527 0.738770\n0.104584 0.915527 0.738892\n0.129059 0.915527 0.739044\n0.151703 0.915527 0.739197\n0.173126 0.915527 0.739349\n0.193298 0.915527 0.739441\n0.212585 0.915527 0.739624\n0.231415 0.915527 0.739746\n0.249878 0.915527 0.739899\n0.268341 0.915527 0.739990\n0.287079 0.915527 0.740112\n0.306427 0.915527 0.740265\n0.326630 0.915527 0.740387\n0.348022 0.915527 0.740448\n0.370667 0.915527 0.740601\n0.395050 0.915527 0.740723\n0.421509 0.915527 0.740784\n0.450012 0.915527 0.740906\n0.481384 0.915527 0.741058\n0.515503 0.915527 0.741150\n0.552551 0.915527 0.741211\n0.592377 0.915527 0.741333\n0.634583 0.915527 0.741425\n0.678986 0.915527 0.741516\n0.725128 0.915527 0.741608\n0.772461 0.915527 0.741669\n0.821136 0.915527 0.741760\n0.870544 0.915527 0.741821\n0.915527 0.915527 0.741913\n0.000000 0.000000 0.765747\n0.000000 0.000000 0.765839\n0.000000 0.000000 0.765900\n0.005249 0.000000 0.765991\n0.032196 0.000000 0.766083\n0.065918 0.000000 0.766174\n0.094666 0.000000 0.766235\n0.121704 0.000000 0.766388\n0.146851 0.000000 0.766449\n0.170166 0.000000 0.766571\n0.192383 0.000000 0.766663\n0.213409 0.000000 0.766754\n0.233978 0.000000 0.766876\n0.254059 0.000000 0.766968\n0.274323 0.000000 0.767090\n0.295135 0.000000 0.767181\n0.316650 0.000000 0.767273\n0.339539 0.000000 0.767395\n0.363922 0.000000 0.767548\n0.390259 0.000000 0.767639\n0.419037 0.000000 0.767761\n0.450531 0.000000 0.767883\n0.485046 0.000000 0.767975\n0.523102 0.000000 0.768097\n0.564819 0.000000 0.768219\n0.609589 0.000000 0.768372\n0.657074 0.000000 0.768494\n0.707001 0.000000 0.768585\n0.758636 0.000000 0.768768\n0.811646 0.000793 0.768890\n0.865814 0.002075 0.768982\n0.915527 0.003448 0.769104\n0.000000 0.000000 0.765900\n0.000000 0.000000 0.765991\n0.000000 0.000000 0.766083\n0.006775 0.000000 0.766174\n0.033691 0.000000 0.766235\n0.067474 0.000000 0.766388\n0.096344 0.000000 0.766449\n0.123047 0.000000 0.766571\n0.148102 0.000824 0.766663\n0.171356 0.001892 0.766754\n0.193512 0.002991 0.766876\n0.214478 0.004120 0.766968\n0.234985 0.005341 0.767090\n0.255066 0.006531 0.767181\n0.275238 0.007751 0.767273\n0.296082 0.009033 0.767395\n0.317627 0.010315 0.767548\n0.340332 0.011597 0.767639\n0.364868 0.012939 0.767761\n0.391235 0.014343 0.767883\n0.419952 0.015839 0.767975\n0.451447 0.017212 0.768097\n0.486084 0.018585 0.768219\n0.524109 0.020020 0.768372\n0.565796 0.021454 0.768494\n0.610504 0.022858 0.768585\n0.657959 0.024536 0.768768\n0.707733 0.026001 0.768890\n0.759277 0.027435 0.768982\n0.812195 0.028931 0.769104\n0.865936 0.030396 0.769226\n0.915527 0.032013 0.769379\n0.000000 0.020294 0.766052\n0.000000 0.021362 0.766174\n0.000000 0.022430 0.766235\n0.008362 0.023499 0.766388\n0.035309 0.024658 0.766449\n0.069275 0.025757 0.766571\n0.097839 0.026886 0.766663\n0.124695 0.028076 0.766754\n0.149414 0.029175 0.766876\n0.172546 0.030426 0.766968\n0.194550 0.031647 0.767059\n0.215546 0.032898 0.767181\n0.235779 0.034180 0.767273\n0.256073 0.035492 0.767395\n0.276215 0.036804 0.767548\n0.296997 0.038116 0.767639\n0.318604 0.039429 0.767761\n0.341339 0.040833 0.767883\n0.365723 0.042328 0.767975\n0.392151 0.043579 0.768097\n0.420868 0.045044 0.768219\n0.452332 0.047272 0.768372\n0.487061 0.049622 0.768494\n0.525116 0.052185 0.768585\n0.566589 0.054749 0.768768\n0.611420 0.057434 0.768890\n0.658783 0.059479 0.768982\n0.708221 0.061035 0.769104\n0.759644 0.062622 0.769226\n0.812531 0.064331 0.769379\n0.866089 0.066040 0.769470\n0.915527 0.067749 0.769623\n0.000000 0.052826 0.766235\n0.000000 0.054840 0.766388\n0.000000 0.056885 0.766449\n0.010040 0.058777 0.766571\n0.037109 0.059875 0.766632\n0.071198 0.061127 0.766754\n0.099609 0.062408 0.766876\n0.126129 0.063812 0.766968\n0.150787 0.065155 0.767059\n0.173920 0.066498 0.767181\n0.195831 0.067841 0.767273\n0.216675 0.069214 0.767395\n0.236847 0.070618 0.767548\n0.257080 0.071991 0.767639\n0.277252 0.073242 0.767761\n0.297882 0.074707 0.767883\n0.319489 0.076141 0.767975\n0.342346 0.077576 0.768097\n0.366669 0.079102 0.768219\n0.393066 0.080566 0.768372\n0.421906 0.082062 0.768494\n0.453369 0.083557 0.768585\n0.487854 0.085022 0.768707\n0.526123 0.086548 0.768860\n0.567566 0.088074 0.768982\n0.612122 0.089600 0.769104\n0.659424 0.091125 0.769226\n0.709015 0.092651 0.769379\n0.760284 0.094116 0.769470\n0.812744 0.095673 0.769623\n0.866302 0.097198 0.769775\n0.915527 0.098755 0.769867\n0.000000 0.087311 0.766449\n0.000000 0.088287 0.766571\n0.000000 0.089508 0.766632\n0.011780 0.090698 0.766754\n0.038910 0.091949 0.766876\n0.073029 0.093201 0.766907\n0.101227 0.094208 0.767059\n0.127716 0.095520 0.767181\n0.152161 0.096832 0.767273\n0.175323 0.098114 0.767395\n0.197021 0.099457 0.767548\n0.217804 0.100708 0.767639\n0.237976 0.101929 0.767761\n0.257904 0.103241 0.767883\n0.278259 0.104584 0.767975\n0.298828 0.105957 0.768097\n0.320435 0.107330 0.768219\n0.343384 0.108704 0.768311\n0.367676 0.110107 0.768494\n0.394104 0.111511 0.768585\n0.422913 0.112854 0.768707\n0.454437 0.114227 0.768860\n0.488953 0.115509 0.768982\n0.527008 0.116913 0.769104\n0.568542 0.118347 0.769226\n0.613098 0.119751 0.769379\n0.660278 0.121155 0.769470\n0.709564 0.122528 0.769592\n0.760712 0.124023 0.769775\n0.813263 0.125427 0.769867\n0.866608 0.126740 0.770020\n0.915527 0.128113 0.770172\n0.000000 0.117889 0.766632\n0.000000 0.119049 0.766754\n0.000000 0.119965 0.766876\n0.013611 0.121155 0.766907\n0.040741 0.122314 0.767059\n0.074921 0.123322 0.767181\n0.103058 0.124512 0.767273\n0.129333 0.125702 0.767395\n0.153778 0.126862 0.767548\n0.176575 0.127960 0.767639\n0.198242 0.129181 0.767761\n0.218933 0.130371 0.767883\n0.239044 0.131622 0.767975\n0.258972 0.132812 0.768097\n0.279297 0.133972 0.768219\n0.299835 0.135223 0.768311\n0.321350 0.136505 0.768494\n0.344177 0.137756 0.768585\n0.368744 0.138977 0.768707\n0.395142 0.140106 0.768860\n0.423981 0.141418 0.768982\n0.455536 0.142731 0.769104\n0.490051 0.144012 0.769226\n0.528076 0.145325 0.769379\n0.569550 0.146362 0.769470\n0.614075 0.147705 0.769592\n0.660950 0.149017 0.769775\n0.710297 0.150269 0.769867\n0.761169 0.151581 0.770020\n0.813538 0.152649 0.770172\n0.866760 0.153931 0.770233\n0.915527 0.155243 0.770416\n0.000000 0.146332 0.766846\n0.000000 0.147400 0.766907\n0.000000 0.148499 0.767059\n0.015503 0.149384 0.767181\n0.042633 0.150452 0.767273\n0.076904 0.151550 0.767395\n0.104950 0.152466 0.767548\n0.130890 0.153564 0.767639\n0.155182 0.154694 0.767761\n0.177887 0.155609 0.767883\n0.199432 0.156738 0.767975\n0.220123 0.157898 0.768097\n0.240173 0.158844 0.768219\n0.260071 0.160004 0.768311\n0.280090 0.161163 0.768494\n0.300903 0.162262 0.768585\n0.322388 0.163269 0.768707\n0.345184 0.164490 0.768860\n0.369781 0.165680 0.768982\n0.396210 0.166595 0.769104\n0.425049 0.167786 0.769226\n0.456512 0.169006 0.769379\n0.491089 0.170013 0.769470\n0.529083 0.171143 0.769592\n0.570557 0.172302 0.769775\n0.614777 0.173462 0.769867\n0.661804 0.174469 0.770020\n0.710815 0.175629 0.770172\n0.761810 0.176849 0.770233\n0.813873 0.177917 0.770416\n0.866882 0.178955 0.770538\n0.915527 0.180145 0.770630\n0.000000 0.172638 0.767059\n0.000000 0.173645 0.767181\n0.000000 0.174408 0.767273\n0.017548 0.175415 0.767395\n0.044556 0.176331 0.767548\n0.078949 0.177246 0.767609\n0.106812 0.178314 0.767700\n0.132660 0.179108 0.767883\n0.156616 0.180145 0.767975\n0.179230 0.181091 0.768097\n0.200714 0.182037 0.768219\n0.221283 0.183105 0.768311\n0.241302 0.183990 0.768463\n0.261139 0.185028 0.768555\n0.281219 0.186096 0.768707\n0.301941 0.186981 0.768860\n0.323456 0.188019 0.768951\n0.346252 0.189117 0.769104\n0.370850 0.190002 0.769226\n0.397278 0.191071 0.769318\n0.425995 0.191986 0.769470\n0.457458 0.193024 0.769592\n0.492188 0.194092 0.769775\n0.530182 0.195038 0.769867\n0.571381 0.196045 0.769989\n0.615723 0.197144 0.770172\n0.662689 0.198029 0.770233\n0.711639 0.199097 0.770355\n0.762238 0.200195 0.770538\n0.814117 0.201080 0.770630\n0.867035 0.202148 0.770782\n0.915527 0.202972 0.770905\n0.000000 0.196930 0.767273\n0.000000 0.197723 0.767395\n0.000000 0.198608 0.767487\n0.019592 0.199402 0.767609\n0.047302 0.200348 0.767700\n0.081055 0.201080 0.767822\n0.108551 0.202026 0.767975\n0.134216 0.202759 0.768097\n0.158234 0.203766 0.768219\n0.180603 0.204559 0.768311\n0.201965 0.205505 0.768463\n0.222473 0.206482 0.768555\n0.242432 0.207214 0.768707\n0.262268 0.208221 0.768860\n0.282318 0.209045 0.768951\n0.302948 0.210022 0.769104\n0.324524 0.210785 0.769226\n0.347321 0.211823 0.769318\n0.371735 0.212646 0.769470\n0.398224 0.213593 0.769592\n0.427032 0.214630 0.769714\n0.458557 0.215393 0.769867\n0.493256 0.216400 0.769989\n0.531250 0.217224 0.770172\n0.572418 0.218170 0.770233\n0.616730 0.219116 0.770355\n0.663391 0.219971 0.770538\n0.712250 0.220947 0.770630\n0.762909 0.221741 0.770782\n0.814575 0.222748 0.770905\n0.867157 0.223511 0.771027\n0.915527 0.224487 0.771179\n0.000000 0.219482 0.767487\n0.000000 0.220154 0.767609\n0.000000 0.221069 0.767700\n0.021576 0.221741 0.767822\n0.050873 0.222626 0.767944\n0.083160 0.223267 0.768097\n0.110565 0.224152 0.768219\n0.136047 0.224884 0.768311\n0.159821 0.225769 0.768463\n0.182190 0.226471 0.768555\n0.203247 0.227386 0.768707\n0.223724 0.228088 0.768860\n0.243591 0.229034 0.768951\n0.263367 0.229736 0.769043\n0.283356 0.230682 0.769226\n0.304016 0.231384 0.769318\n0.325623 0.232330 0.769470\n0.348419 0.233032 0.769592\n0.372833 0.233978 0.769714\n0.399231 0.234680 0.769867\n0.428131 0.235626 0.769989\n0.459625 0.236328 0.770172\n0.494354 0.237274 0.770233\n0.532227 0.238068 0.770355\n0.573456 0.238922 0.770538\n0.617615 0.239899 0.770630\n0.664246 0.240570 0.770782\n0.712952 0.241364 0.770905\n0.763275 0.242218 0.771027\n0.814972 0.243103 0.771179\n0.867310 0.243866 0.771301\n0.915527 0.244751 0.771484\n0.000000 0.240631 0.767700\n0.000000 0.241364 0.767822\n0.000000 0.242096 0.767944\n0.023804 0.242737 0.768097\n0.054749 0.243591 0.768219\n0.085327 0.244202 0.768311\n0.112518 0.245026 0.768463\n0.137756 0.245697 0.768555\n0.161499 0.246552 0.768677\n0.183563 0.247223 0.768860\n0.204620 0.248047 0.768951\n0.224945 0.248688 0.769043\n0.244720 0.249573 0.769226\n0.264465 0.250214 0.769318\n0.284485 0.251160 0.769440\n0.305084 0.251740 0.769592\n0.326691 0.252472 0.769714\n0.349487 0.253296 0.769867\n0.373871 0.253998 0.769989\n0.400360 0.254852 0.770111\n0.429199 0.255585 0.770233\n0.460724 0.256409 0.770355\n0.495239 0.257050 0.770538\n0.533264 0.257965 0.770630\n0.574524 0.258636 0.770752\n0.618408 0.259491 0.770905\n0.665070 0.260162 0.771027\n0.713531 0.261047 0.771179\n0.763794 0.261658 0.771301\n0.815216 0.262543 0.771423\n0.867462 0.263184 0.771545\n0.915527 0.264099 0.771698\n0.000000 0.260986 0.767944\n0.000000 0.261566 0.768066\n0.000092 0.262207 0.768219\n0.026001 0.262970 0.768311\n0.058685 0.263519 0.768463\n0.087494 0.264374 0.768555\n0.114502 0.264954 0.768677\n0.139557 0.265778 0.768860\n0.162994 0.266388 0.768951\n0.184998 0.267212 0.769043\n0.205902 0.267761 0.769226\n0.226166 0.268433 0.769318\n0.245911 0.269257 0.769440\n0.265656 0.269836 0.769592\n0.285614 0.270721 0.769714\n0.306061 0.271332 0.769867\n0.327759 0.272156 0.769989\n0.350616 0.272766 0.770111\n0.374969 0.273407 0.770233\n0.401428 0.274231 0.770355\n0.430328 0.274841 0.770477\n0.461853 0.275696 0.770630\n0.496338 0.276306 0.770752\n0.534271 0.277161 0.770905\n0.575500 0.277771 0.771027\n0.619385 0.278625 0.771179\n0.665710 0.279205 0.771301\n0.714233 0.279846 0.771423\n0.764313 0.280670 0.771545\n0.815521 0.281281 0.771698\n0.867737 0.282104 0.771851\n0.915527 0.282715 0.771942\n0.000000 0.280609 0.768158\n0.000000 0.281158 0.768280\n0.002045 0.281982 0.768463\n0.028137 0.282501 0.768555\n0.060913 0.283234 0.768677\n0.089661 0.283875 0.768860\n0.116364 0.284424 0.768951\n0.141388 0.285217 0.769043\n0.164520 0.285797 0.769226\n0.186554 0.286560 0.769318\n0.207367 0.287201 0.769440\n0.227386 0.287720 0.769592\n0.247101 0.288544 0.769714\n0.266754 0.289124 0.769836\n0.286713 0.289917 0.769989\n0.307159 0.290527 0.770111\n0.328827 0.291107 0.770203\n0.351685 0.291901 0.770355\n0.376068 0.292480 0.770477\n0.402588 0.293304 0.770630\n0.431458 0.293884 0.770752\n0.462952 0.294708 0.770905\n0.497437 0.295288 0.771027\n0.535370 0.295868 0.771179\n0.576477 0.296661 0.771301\n0.620361 0.297272 0.771423\n0.666626 0.298065 0.771545\n0.714966 0.298645 0.771698\n0.764740 0.299377 0.771820\n0.816010 0.300049 0.771942\n0.867981 0.300568 0.772064\n0.915527 0.301392 0.772186\n0.000000 0.300140 0.768463\n0.000000 0.300598 0.768555\n0.004181 0.301361 0.768677\n0.030426 0.301910 0.768799\n0.063263 0.302490 0.768951\n0.091858 0.303192 0.769043\n0.118378 0.303802 0.769196\n0.143036 0.304535 0.769318\n0.166260 0.305115 0.769440\n0.187988 0.305786 0.769592\n0.208679 0.306458 0.769714\n0.228638 0.307007 0.769836\n0.248260 0.307770 0.769989\n0.267944 0.308319 0.770111\n0.287842 0.308929 0.770203\n0.308258 0.309662 0.770355\n0.329742 0.310211 0.770477\n0.352661 0.311066 0.770630\n0.377197 0.311584 0.770752\n0.403687 0.312347 0.770905\n0.432587 0.312958 0.771027\n0.464081 0.313507 0.771149\n0.498596 0.314301 0.771301\n0.536438 0.314850 0.771423\n0.577362 0.315460 0.771545\n0.621094 0.316223 0.771698\n0.667480 0.316772 0.771820\n0.715546 0.317535 0.771942\n0.765411 0.318085 0.772064\n0.816315 0.318634 0.772186\n0.868134 0.319397 0.772308\n0.915527 0.319977 0.772461\n0.000000 0.319702 0.768677\n0.000000 0.320221 0.768799\n0.006256 0.320984 0.768951\n0.032654 0.321472 0.769043\n0.065826 0.322205 0.769196\n0.094055 0.322784 0.769318\n0.120392 0.323334 0.769440\n0.144928 0.324036 0.769531\n0.167816 0.324615 0.769714\n0.189392 0.325165 0.769836\n0.209991 0.325928 0.769928\n0.229858 0.326477 0.770111\n0.249481 0.327240 0.770203\n0.269073 0.327789 0.770355\n0.288940 0.328400 0.770477\n0.309387 0.329102 0.770630\n0.330902 0.329651 0.770752\n0.353760 0.330353 0.770874\n0.378296 0.330963 0.771027\n0.404785 0.331543 0.771149\n0.433655 0.332306 0.771301\n0.465210 0.332855 0.771423\n0.499664 0.333588 0.771545\n0.537476 0.334137 0.771698\n0.578369 0.334686 0.771820\n0.622009 0.335480 0.771942\n0.668091 0.336029 0.772064\n0.716278 0.336548 0.772186\n0.765839 0.337341 0.772308\n0.816559 0.337891 0.772461\n0.868225 0.338593 0.772552\n0.915527 0.339172 0.772705\n0.000000 0.339874 0.768951\n0.000000 0.340515 0.769043\n0.008545 0.341034 0.769196\n0.035034 0.341553 0.769318\n0.068176 0.342316 0.769440\n0.096252 0.342834 0.769531\n0.122406 0.343567 0.769714\n0.146729 0.344116 0.769836\n0.169434 0.344635 0.769928\n0.190826 0.345398 0.770111\n0.211304 0.345917 0.770203\n0.231110 0.346497 0.770355\n0.250641 0.347229 0.770477\n0.270233 0.347809 0.770599\n0.290070 0.348541 0.770752\n0.310486 0.349091 0.770874\n0.332001 0.349701 0.771027\n0.354797 0.350433 0.771149\n0.379395 0.350952 0.771301\n0.405945 0.351715 0.771423\n0.434784 0.352234 0.771545\n0.466309 0.352753 0.771698\n0.500763 0.353546 0.771820\n0.538544 0.354095 0.771881\n0.579437 0.354767 0.772064\n0.623016 0.355408 0.772186\n0.668976 0.355927 0.772308\n0.716827 0.356659 0.772461\n0.766205 0.357178 0.772552\n0.817017 0.357697 0.772705\n0.868408 0.358459 0.772797\n0.915527 0.358978 0.772919\n0.000000 0.360870 0.769196\n0.000000 0.361572 0.769287\n0.010895 0.362091 0.769440\n0.037323 0.362671 0.769531\n0.070587 0.363403 0.769684\n0.098450 0.363922 0.769836\n0.124359 0.364471 0.769928\n0.148499 0.365173 0.770111\n0.171051 0.365723 0.770203\n0.192413 0.366486 0.770325\n0.212646 0.367004 0.770477\n0.232452 0.367584 0.770599\n0.251862 0.368317 0.770752\n0.271393 0.368835 0.770874\n0.291229 0.369415 0.771027\n0.311615 0.370148 0.771149\n0.333099 0.370667 0.771240\n0.355896 0.371460 0.771423\n0.380524 0.371979 0.771545\n0.407013 0.372528 0.771698\n0.435883 0.373291 0.771820\n0.467438 0.373810 0.771881\n0.501862 0.374573 0.772064\n0.539520 0.375092 0.772186\n0.580475 0.375610 0.772308\n0.623932 0.376373 0.772400\n0.669586 0.376923 0.772552\n0.717438 0.377411 0.772705\n0.766876 0.378174 0.772797\n0.817352 0.378693 0.772919\n0.868530 0.379272 0.773041\n0.915527 0.379913 0.773163\n0.000000 0.383179 0.769440\n0.000000 0.383698 0.769531\n0.013153 0.384491 0.769684\n0.039703 0.385010 0.769836\n0.073120 0.385498 0.769928\n0.100677 0.386261 0.770111\n0.126312 0.386780 0.770203\n0.150360 0.387360 0.770325\n0.172607 0.388092 0.770477\n0.193848 0.388641 0.770599\n0.214111 0.389313 0.770752\n0.233856 0.389954 0.770874\n0.253052 0.390472 0.771027\n0.272552 0.391205 0.771149\n0.292297 0.391785 0.771240\n0.312744 0.392303 0.771423\n0.334229 0.393097 0.771545\n0.357025 0.393585 0.771698\n0.381622 0.394287 0.771820\n0.408112 0.394928 0.771881\n0.436768 0.395447 0.772003\n0.468292 0.396149 0.772186\n0.502777 0.396698 0.772308\n0.540497 0.397369 0.772400\n0.581238 0.397980 0.772552\n0.624695 0.398499 0.772705\n0.670410 0.399078 0.772797\n0.718079 0.399750 0.772919\n0.767242 0.400269 0.773041\n0.817566 0.401001 0.773163\n0.868683 0.401489 0.773224\n0.915527 0.402008 0.773376\n0.000000 0.406891 0.769684\n0.000000 0.407654 0.769836\n0.015564 0.408173 0.769928\n0.041962 0.408722 0.770081\n0.075562 0.409454 0.770203\n0.102875 0.409973 0.770325\n0.128296 0.410614 0.770477\n0.151978 0.411285 0.770599\n0.174316 0.411804 0.770752\n0.195282 0.412598 0.770874\n0.215515 0.413147 0.770996\n0.235077 0.413696 0.771149\n0.254211 0.414429 0.771240\n0.273682 0.414948 0.771423\n0.293396 0.415527 0.771545\n0.313843 0.416290 0.771637\n0.335297 0.416809 0.771820\n0.358093 0.417572 0.771881\n0.382538 0.418121 0.772003\n0.409241 0.418640 0.772186\n0.437897 0.419373 0.772308\n0.469391 0.419922 0.772400\n0.503876 0.420685 0.772522\n0.541534 0.421173 0.772705\n0.582245 0.421692 0.772797\n0.625549 0.422394 0.772919\n0.671265 0.422943 0.773041\n0.718689 0.423462 0.773163\n0.767792 0.424225 0.773224\n0.817871 0.424683 0.773376\n0.868866 0.425171 0.773499\n0.915527 0.425873 0.773590\n0.000000 0.432678 0.769928\n0.000000 0.433197 0.770081\n0.017975 0.433807 0.770203\n0.044373 0.434509 0.770325\n0.077911 0.435028 0.770477\n0.105072 0.435791 0.770599\n0.130341 0.436340 0.770691\n0.153870 0.436920 0.770874\n0.175812 0.437653 0.770996\n0.196869 0.438171 0.771149\n0.216827 0.438782 0.771240\n0.236328 0.439484 0.771423\n0.255432 0.440033 0.771545\n0.274811 0.440765 0.771637\n0.294617 0.441345 0.771820\n0.314941 0.441864 0.771881\n0.336395 0.442627 0.772003\n0.359192 0.443146 0.772156\n0.383575 0.443726 0.772308\n0.410095 0.444427 0.772400\n0.438965 0.444946 0.772522\n0.470490 0.445709 0.772705\n0.504883 0.446228 0.772797\n0.542572 0.446747 0.772919\n0.583221 0.447449 0.773041\n0.626465 0.447998 0.773163\n0.671906 0.448547 0.773224\n0.719299 0.449219 0.773376\n0.768188 0.449707 0.773499\n0.818085 0.450195 0.773590\n0.869080 0.450897 0.773712\n0.915527 0.451385 0.773834\n0.000000 0.460571 0.770203\n0.000000 0.461121 0.770325\n0.020447 0.461609 0.770477\n0.047699 0.462433 0.770599\n0.080322 0.462921 0.770691\n0.107239 0.463470 0.770874\n0.132294 0.464233 0.770996\n0.155487 0.464783 0.771149\n0.177551 0.465546 0.771240\n0.198273 0.466064 0.771393\n0.218140 0.466614 0.771545\n0.237579 0.467407 0.771637\n0.256592 0.467896 0.771790\n0.275970 0.468475 0.771881\n0.295502 0.469208 0.772003\n0.316071 0.469757 0.772156\n0.337494 0.470459 0.772308\n0.360260 0.471039 0.772400\n0.384674 0.471558 0.772522\n0.411194 0.472290 0.772705\n0.440033 0.472839 0.772797\n0.471527 0.473328 0.772919\n0.505920 0.474121 0.773041\n0.543610 0.474579 0.773163\n0.584167 0.475098 0.773224\n0.627197 0.475830 0.773376\n0.672699 0.476318 0.773499\n0.719940 0.476898 0.773590\n0.768555 0.477509 0.773712\n0.818573 0.477997 0.773834\n0.869293 0.478485 0.773956\n0.915527 0.479156 0.774078\n0.000000 0.490875 0.770447\n0.000000 0.491364 0.770599\n0.022858 0.492004 0.770691\n0.051697 0.492676 0.770874\n0.082764 0.493256 0.770996\n0.109406 0.493988 0.771149\n0.134094 0.494568 0.771240\n0.157349 0.495087 0.771393\n0.179077 0.495819 0.771545\n0.199646 0.496307 0.771637\n0.219421 0.496948 0.771790\n0.238770 0.497650 0.771881\n0.257782 0.498199 0.772003\n0.277069 0.498962 0.772156\n0.296600 0.499451 0.772308\n0.317139 0.500000 0.772400\n0.338531 0.500732 0.772522\n0.361359 0.501282 0.772644\n0.385742 0.501740 0.772797\n0.412262 0.502533 0.772919\n0.441101 0.503021 0.773041\n0.472595 0.503601 0.773163\n0.506958 0.504242 0.773224\n0.544556 0.504761 0.773376\n0.584961 0.505371 0.773499\n0.628021 0.505951 0.773590\n0.673248 0.506439 0.773712\n0.720459 0.507080 0.773834\n0.769165 0.507599 0.773956\n0.818817 0.508057 0.774078\n0.869415 0.508545 0.774170\n0.915527 0.509186 0.774261\n0.000000 0.524017 0.770691\n0.000122 0.524536 0.770874\n0.025269 0.525116 0.770996\n0.055817 0.525787 0.771088\n0.085236 0.526367 0.771240\n0.111542 0.526886 0.771393\n0.136108 0.527649 0.771545\n0.158936 0.528168 0.771637\n0.180511 0.528809 0.771790\n0.201050 0.529419 0.771881\n0.220734 0.529968 0.772003\n0.239990 0.530731 0.772156\n0.258942 0.531250 0.772247\n0.278259 0.531738 0.772400\n0.297668 0.532471 0.772522\n0.317993 0.533020 0.772644\n0.339569 0.533508 0.772797\n0.362427 0.534241 0.772919\n0.386841 0.534698 0.773041\n0.413300 0.535309 0.773163\n0.442200 0.536011 0.773224\n0.473663 0.536469 0.773376\n0.508026 0.536957 0.773499\n0.545410 0.537659 0.773590\n0.585815 0.538116 0.773712\n0.628937 0.538605 0.773834\n0.674011 0.539276 0.773956\n0.720917 0.539734 0.774078\n0.769531 0.540161 0.774170\n0.819092 0.540863 0.774261\n0.869507 0.541290 0.774414\n0.915527 0.541687 0.774475\n0.000000 0.560028 0.770996\n0.002228 0.560516 0.771088\n0.027710 0.561279 0.771240\n0.059662 0.561798 0.771393\n0.087524 0.562347 0.771545\n0.113708 0.563049 0.771637\n0.138062 0.563538 0.771790\n0.160767 0.564301 0.771881\n0.182220 0.564789 0.772003\n0.202484 0.565308 0.772156\n0.222107 0.565857 0.772247\n0.241180 0.566528 0.772400\n0.260132 0.567017 0.772522\n0.279358 0.567719 0.772644\n0.298767 0.568237 0.772766\n0.319031 0.568726 0.772919\n0.340485 0.569427 0.773041\n0.363281 0.569885 0.773163\n0.387878 0.570374 0.773224\n0.414368 0.571075 0.773376\n0.443237 0.571594 0.773499\n0.474609 0.571991 0.773590\n0.509003 0.572479 0.773712\n0.546326 0.573120 0.773834\n0.586792 0.573578 0.773956\n0.629517 0.574005 0.774017\n0.674591 0.574646 0.774170\n0.721588 0.575073 0.774261\n0.769867 0.575500 0.774414\n0.819336 0.576141 0.774475\n0.869629 0.576538 0.774567\n0.915527 0.576935 0.774658\n0.000000 0.598877 0.771240\n0.004547 0.599518 0.771393\n0.030121 0.600128 0.771484\n0.062103 0.600525 0.771637\n0.089844 0.601044 0.771790\n0.115784 0.601776 0.771881\n0.139801 0.602234 0.772003\n0.162323 0.602692 0.772156\n0.183655 0.603424 0.772247\n0.203949 0.603882 0.772400\n0.223450 0.604309 0.772522\n0.242401 0.605011 0.772644\n0.261200 0.605499 0.772766\n0.280212 0.605927 0.772919\n0.299835 0.606598 0.773010\n0.320099 0.607086 0.773163\n0.341522 0.607483 0.773224\n0.364319 0.608124 0.773376\n0.388916 0.608643 0.773499\n0.415405 0.609039 0.773590\n0.444031 0.609467 0.773712\n0.475464 0.610107 0.773834\n0.509766 0.610504 0.773926\n0.547333 0.610931 0.774017\n0.587433 0.611572 0.774170\n0.630402 0.611969 0.774261\n0.675293 0.612366 0.774353\n0.722015 0.612762 0.774475\n0.770264 0.613281 0.774567\n0.819702 0.613708 0.774658\n0.869751 0.614075 0.774811\n0.915527 0.614410 0.774872\n0.000000 0.640228 0.771484\n0.006897 0.640747 0.771606\n0.032501 0.641174 0.771790\n0.064819 0.641602 0.771881\n0.092102 0.642273 0.772003\n0.117859 0.642670 0.772156\n0.141724 0.643127 0.772247\n0.164124 0.643738 0.772369\n0.185059 0.644196 0.772522\n0.205231 0.644623 0.772644\n0.224701 0.645081 0.772766\n0.243530 0.645691 0.772858\n0.262360 0.646118 0.773010\n0.281311 0.646515 0.773163\n0.300903 0.647156 0.773224\n0.321167 0.647522 0.773376\n0.342560 0.647949 0.773499\n0.365326 0.648285 0.773590\n0.389954 0.648895 0.773712\n0.416321 0.649292 0.773804\n0.445038 0.649658 0.773926\n0.476471 0.650085 0.774017\n0.510742 0.650665 0.774170\n0.548218 0.651001 0.774261\n0.588348 0.651337 0.774353\n0.631042 0.651703 0.774475\n0.675934 0.652252 0.774567\n0.722626 0.652618 0.774658\n0.770721 0.652893 0.774811\n0.819977 0.653259 0.774872\n0.869812 0.653534 0.774933\n0.915527 0.654114 0.775055\n0.000000 0.683441 0.771790\n0.009277 0.683838 0.771881\n0.034973 0.684204 0.771973\n0.067169 0.684814 0.772156\n0.094360 0.685181 0.772247\n0.119751 0.685516 0.772369\n0.143616 0.685883 0.772522\n0.165619 0.686523 0.772644\n0.186676 0.686859 0.772766\n0.206573 0.687195 0.772858\n0.225922 0.687714 0.773010\n0.244690 0.688141 0.773132\n0.263458 0.688507 0.773224\n0.282379 0.688873 0.773376\n0.301941 0.689178 0.773499\n0.322174 0.689697 0.773590\n0.343597 0.690094 0.773682\n0.366333 0.690430 0.773804\n0.390747 0.690796 0.773926\n0.417175 0.691162 0.774017\n0.446045 0.691620 0.774170\n0.477448 0.691895 0.774261\n0.511688 0.692261 0.774353\n0.548920 0.692535 0.774475\n0.589203 0.693085 0.774536\n0.631744 0.693390 0.774658\n0.676544 0.693665 0.774811\n0.723053 0.693939 0.774872\n0.770996 0.694183 0.774933\n0.820160 0.694733 0.775055\n0.869904 0.694977 0.775116\n0.915527 0.695221 0.775177\n0.000000 0.728180 0.771973\n0.011719 0.728546 0.772156\n0.037231 0.729034 0.772247\n0.069611 0.729340 0.772369\n0.096558 0.729614 0.772522\n0.121765 0.729919 0.772644\n0.145233 0.730225 0.772766\n0.167358 0.730682 0.772858\n0.188049 0.731049 0.773010\n0.207855 0.731354 0.773132\n0.227112 0.731659 0.773193\n0.245880 0.731903 0.773315\n0.264526 0.732452 0.773499\n0.283417 0.732758 0.773590\n0.302826 0.733032 0.773682\n0.323181 0.733276 0.773804\n0.344513 0.733551 0.773926\n0.367310 0.734009 0.774017\n0.391724 0.734314 0.774170\n0.418213 0.734558 0.774231\n0.447021 0.734802 0.774353\n0.478333 0.735077 0.774475\n0.512512 0.735413 0.774536\n0.549866 0.735779 0.774658\n0.589813 0.736053 0.774811\n0.632507 0.736267 0.774872\n0.677002 0.736450 0.774933\n0.723511 0.736725 0.775055\n0.771332 0.736908 0.775116\n0.820312 0.737183 0.775177\n0.870117 0.737518 0.775269\n0.915527 0.737793 0.775360\n0.000000 0.774139 0.772247\n0.013977 0.774414 0.772369\n0.039673 0.774658 0.772491\n0.072083 0.774994 0.772644\n0.098755 0.775360 0.772766\n0.123779 0.775574 0.772858\n0.147064 0.775818 0.773010\n0.168854 0.776031 0.773132\n0.189453 0.776215 0.773193\n0.209137 0.776550 0.773315\n0.228302 0.776917 0.773499\n0.246979 0.777161 0.773560\n0.265656 0.777313 0.773682\n0.284485 0.777557 0.773804\n0.303802 0.777802 0.773926\n0.324127 0.777985 0.774017\n0.345367 0.778168 0.774170\n0.368134 0.778442 0.774231\n0.392670 0.778809 0.774353\n0.419159 0.778992 0.774475\n0.447906 0.779175 0.774536\n0.479095 0.779358 0.774658\n0.513275 0.779510 0.774750\n0.550537 0.779724 0.774872\n0.590637 0.779877 0.774933\n0.633026 0.780212 0.775055\n0.677673 0.780487 0.775116\n0.723999 0.780609 0.775177\n0.771820 0.780792 0.775269\n0.820526 0.780945 0.775360\n0.870331 0.781067 0.775452\n0.915527 0.781250 0.775482\n0.000000 0.820892 0.772491\n0.016327 0.821045 0.772644\n0.041840 0.821259 0.772766\n0.074463 0.821564 0.772858\n0.100891 0.821747 0.773010\n0.125702 0.821899 0.773132\n0.148682 0.822052 0.773193\n0.170319 0.822266 0.773315\n0.190796 0.822388 0.773468\n0.210388 0.822510 0.773560\n0.229462 0.822632 0.773682\n0.248047 0.822815 0.773804\n0.266663 0.822968 0.773926\n0.285522 0.823273 0.774017\n0.304749 0.823456 0.774170\n0.324951 0.823608 0.774231\n0.346283 0.823730 0.774353\n0.369019 0.823853 0.774475\n0.393616 0.823975 0.774536\n0.419952 0.824127 0.774658\n0.448639 0.824249 0.774750\n0.480011 0.824341 0.774872\n0.514191 0.824463 0.774933\n0.551331 0.824615 0.775055\n0.591217 0.824921 0.775116\n0.633575 0.825043 0.775177\n0.678040 0.825104 0.775269\n0.724304 0.825256 0.775360\n0.772064 0.825378 0.775452\n0.820831 0.825439 0.775482\n0.870392 0.825531 0.775574\n0.915527 0.825623 0.775665\n0.000000 0.868286 0.772766\n0.018738 0.868378 0.772858\n0.044189 0.868439 0.773010\n0.076752 0.868530 0.773132\n0.102997 0.868622 0.773193\n0.127441 0.868652 0.773315\n0.150421 0.868744 0.773468\n0.171936 0.868774 0.773560\n0.192261 0.868896 0.773682\n0.211731 0.868988 0.773804\n0.230621 0.869049 0.773926\n0.249115 0.869110 0.774017\n0.267731 0.869171 0.774109\n0.286469 0.869263 0.774231\n0.305756 0.869293 0.774353\n0.325867 0.869385 0.774475\n0.347198 0.869446 0.774536\n0.369965 0.869446 0.774658\n0.394318 0.869720 0.774750\n0.420715 0.869781 0.774872\n0.449524 0.869873 0.774933\n0.480774 0.869995 0.775024\n0.514771 0.870087 0.775116\n0.552155 0.870087 0.775177\n0.591919 0.870148 0.775269\n0.634247 0.870178 0.775360\n0.678650 0.870239 0.775452\n0.724854 0.870270 0.775482\n0.772247 0.870331 0.775574\n0.821075 0.870361 0.775665\n0.870514 0.870422 0.775726\n0.915527 0.870422 0.775818\n0.000000 0.915527 0.773010\n0.021088 0.915527 0.773132\n0.046967 0.915527 0.773193\n0.078979 0.915527 0.773315\n0.105042 0.915527 0.773468\n0.129333 0.915527 0.773560\n0.151947 0.915527 0.773682\n0.173340 0.915527 0.773804\n0.193573 0.915527 0.773926\n0.212769 0.915527 0.774017\n0.231689 0.915527 0.774109\n0.250153 0.915527 0.774231\n0.268463 0.915527 0.774353\n0.287231 0.915527 0.774475\n0.306671 0.915527 0.774536\n0.326813 0.915527 0.774658\n0.348145 0.915527 0.774750\n0.370850 0.915527 0.774841\n0.395172 0.915527 0.774933\n0.421600 0.915527 0.775024\n0.450256 0.915527 0.775116\n0.481445 0.915527 0.775177\n0.515594 0.915527 0.775269\n0.552673 0.915527 0.775360\n0.592590 0.915527 0.775452\n0.634735 0.915527 0.775482\n0.679047 0.915527 0.775574\n0.725189 0.915527 0.775665\n0.772552 0.915527 0.775726\n0.821198 0.915527 0.775818\n0.870605 0.915527 0.775879\n0.915527 0.915527 0.775879\n0.000000 0.000000 0.803223\n0.000000 0.000000 0.803253\n0.000000 0.000000 0.803314\n0.005463 0.000000 0.803406\n0.032410 0.000000 0.803467\n0.066132 0.000000 0.803528\n0.095093 0.000000 0.803619\n0.121918 0.000000 0.803680\n0.147034 0.000000 0.803772\n0.170380 0.000000 0.803864\n0.192566 0.000000 0.803955\n0.213562 0.000000 0.803986\n0.234131 0.000000 0.804077\n0.254211 0.000000 0.804169\n0.274597 0.000000 0.804260\n0.295227 0.000000 0.804321\n0.316895 0.000000 0.804382\n0.339752 0.000000 0.804474\n0.364014 0.000000 0.804596\n0.390442 0.000000 0.804657\n0.419220 0.000000 0.804749\n0.450684 0.000000 0.804871\n0.485168 0.000000 0.804932\n0.523254 0.000000 0.805023\n0.564972 0.000000 0.805145\n0.609711 0.000000 0.805206\n0.657257 0.000000 0.805267\n0.707092 0.000000 0.805420\n0.758789 0.000000 0.805511\n0.811829 0.001221 0.805603\n0.865814 0.002625 0.805664\n0.915527 0.004059 0.805817\n0.000000 0.000000 0.803314\n0.000000 0.000000 0.803406\n0.000000 0.000000 0.803467\n0.007019 0.000000 0.803528\n0.034027 0.000000 0.803619\n0.067871 0.000000 0.803680\n0.096558 0.000000 0.803772\n0.123383 0.000183 0.803864\n0.148346 0.001190 0.803955\n0.171722 0.002228 0.803986\n0.193634 0.003357 0.804077\n0.214630 0.004517 0.804169\n0.235138 0.005676 0.804260\n0.255188 0.006897 0.804321\n0.275391 0.008179 0.804382\n0.296204 0.009460 0.804474\n0.317719 0.010895 0.804596\n0.340485 0.012238 0.804657\n0.364990 0.013519 0.804749\n0.391418 0.014923 0.804871\n0.420197 0.016296 0.804932\n0.451660 0.017639 0.805023\n0.486206 0.019073 0.805115\n0.524231 0.020569 0.805206\n0.565918 0.022064 0.805267\n0.610657 0.023499 0.805420\n0.658081 0.024963 0.805511\n0.707825 0.026459 0.805603\n0.759338 0.027954 0.805664\n0.812225 0.029480 0.805817\n0.865936 0.031067 0.805908\n0.915527 0.032562 0.806030\n0.000000 0.020813 0.803467\n0.000000 0.021637 0.803528\n0.000000 0.022766 0.803619\n0.008606 0.023865 0.803680\n0.035767 0.024994 0.803772\n0.069580 0.026154 0.803864\n0.098267 0.027313 0.803955\n0.124878 0.028534 0.803955\n0.149658 0.029755 0.804077\n0.172882 0.030975 0.804169\n0.194824 0.032196 0.804260\n0.215729 0.033539 0.804321\n0.236115 0.034760 0.804382\n0.256195 0.036102 0.804474\n0.276367 0.037415 0.804596\n0.297180 0.038696 0.804657\n0.318726 0.040070 0.804749\n0.341461 0.041443 0.804871\n0.365997 0.042786 0.804932\n0.392395 0.044159 0.805023\n0.420990 0.045593 0.805115\n0.452484 0.048035 0.805206\n0.487244 0.050476 0.805267\n0.525269 0.052948 0.805420\n0.566895 0.055573 0.805511\n0.611572 0.058350 0.805603\n0.658936 0.060120 0.805664\n0.708466 0.061768 0.805817\n0.759766 0.063446 0.805908\n0.812531 0.065063 0.806030\n0.866089 0.066620 0.806091\n0.915527 0.068268 0.806244\n0.000000 0.053467 0.803619\n0.000000 0.055359 0.803680\n0.000000 0.057526 0.803772\n0.010315 0.059265 0.803802\n0.037506 0.060425 0.803955\n0.071472 0.061707 0.803955\n0.099884 0.062836 0.804077\n0.126373 0.064209 0.804169\n0.150970 0.065582 0.804260\n0.174194 0.066895 0.804321\n0.196014 0.068237 0.804382\n0.216827 0.069702 0.804474\n0.237152 0.071075 0.804596\n0.257202 0.072479 0.804657\n0.277374 0.073944 0.804749\n0.298187 0.075409 0.804810\n0.319702 0.076813 0.804932\n0.342499 0.078278 0.805023\n0.366913 0.079773 0.805115\n0.393341 0.081238 0.805206\n0.422058 0.082733 0.805267\n0.453522 0.084198 0.805420\n0.488281 0.085754 0.805511\n0.526306 0.087189 0.805603\n0.567749 0.088745 0.805664\n0.612427 0.090271 0.805817\n0.659607 0.091797 0.805908\n0.709106 0.093323 0.806030\n0.760376 0.094818 0.806091\n0.812836 0.096344 0.806244\n0.866302 0.097870 0.806305\n0.915527 0.099426 0.806427\n0.000000 0.087646 0.803772\n0.000000 0.088867 0.803802\n0.000000 0.089905 0.803894\n0.012085 0.091095 0.803955\n0.039154 0.092346 0.804016\n0.073395 0.093597 0.804169\n0.101715 0.094818 0.804260\n0.128082 0.095978 0.804321\n0.152618 0.097260 0.804382\n0.175476 0.098511 0.804474\n0.197205 0.099854 0.804565\n0.218018 0.101166 0.804657\n0.238220 0.102509 0.804749\n0.258209 0.103882 0.804810\n0.278412 0.105133 0.804932\n0.298950 0.106384 0.805023\n0.320709 0.107788 0.805115\n0.343506 0.109161 0.805206\n0.367828 0.110565 0.805267\n0.394257 0.111969 0.805359\n0.423065 0.113312 0.805511\n0.454590 0.114746 0.805603\n0.489197 0.116180 0.805664\n0.527252 0.117523 0.805756\n0.568695 0.118896 0.805908\n0.613251 0.120178 0.806030\n0.660400 0.121582 0.806091\n0.709656 0.122986 0.806244\n0.760803 0.124451 0.806305\n0.813324 0.125854 0.806427\n0.866608 0.127228 0.806488\n0.915527 0.128662 0.806610\n0.000000 0.118225 0.803894\n0.000000 0.119385 0.803955\n0.000000 0.120300 0.804016\n0.013885 0.121490 0.804169\n0.041107 0.122620 0.804260\n0.075439 0.123840 0.804321\n0.103455 0.124969 0.804382\n0.129608 0.126068 0.804474\n0.153992 0.127258 0.804565\n0.176788 0.128479 0.804657\n0.198425 0.129639 0.804749\n0.219147 0.130768 0.804810\n0.239227 0.132050 0.804901\n0.259247 0.133301 0.805023\n0.279449 0.134613 0.805115\n0.299988 0.135681 0.805206\n0.321533 0.136902 0.805267\n0.344421 0.138214 0.805359\n0.368896 0.139465 0.805511\n0.395325 0.140747 0.805603\n0.424164 0.141815 0.805664\n0.455627 0.143127 0.805756\n0.490173 0.144409 0.805908\n0.528198 0.145721 0.805969\n0.569733 0.147003 0.806091\n0.614197 0.148193 0.806183\n0.661133 0.149414 0.806305\n0.710388 0.150665 0.806396\n0.761230 0.151978 0.806488\n0.813599 0.153290 0.806610\n0.866791 0.154419 0.806702\n0.915527 0.155579 0.806824\n0.000000 0.146881 0.804016\n0.000000 0.147736 0.804169\n0.000000 0.148804 0.804260\n0.015961 0.149780 0.804321\n0.042999 0.150757 0.804382\n0.077240 0.151886 0.804474\n0.105194 0.152740 0.804565\n0.131378 0.153931 0.804626\n0.155457 0.155029 0.804749\n0.178101 0.156128 0.804810\n0.199646 0.157135 0.804901\n0.220306 0.158234 0.805023\n0.240326 0.159393 0.805115\n0.260315 0.160370 0.805206\n0.280365 0.161530 0.805267\n0.301056 0.162659 0.805359\n0.322571 0.163635 0.805511\n0.345428 0.164825 0.805603\n0.369934 0.165985 0.805664\n0.396393 0.167175 0.805756\n0.425201 0.168152 0.805908\n0.456757 0.169342 0.805969\n0.491241 0.170502 0.806091\n0.529236 0.171570 0.806183\n0.570740 0.172668 0.806305\n0.615143 0.173859 0.806396\n0.661926 0.175018 0.806488\n0.711060 0.175995 0.806610\n0.761902 0.177155 0.806702\n0.813873 0.178375 0.806824\n0.866913 0.179291 0.806885\n0.915527 0.180450 0.807007\n0.000000 0.172913 0.804199\n0.000000 0.173920 0.804321\n0.000000 0.174805 0.804382\n0.017914 0.175751 0.804474\n0.044952 0.176758 0.804565\n0.079315 0.177551 0.804626\n0.107178 0.178589 0.804749\n0.132904 0.179474 0.804810\n0.157104 0.180450 0.804901\n0.179657 0.181519 0.805023\n0.200928 0.182343 0.805115\n0.221466 0.183411 0.805206\n0.241455 0.184509 0.805267\n0.261322 0.185364 0.805359\n0.281433 0.186401 0.805511\n0.302094 0.187378 0.805603\n0.323639 0.188354 0.805664\n0.346436 0.189423 0.805756\n0.371002 0.190308 0.805908\n0.397430 0.191376 0.805969\n0.426270 0.192474 0.806091\n0.457794 0.193329 0.806183\n0.492371 0.194427 0.806305\n0.530334 0.195526 0.806396\n0.571655 0.196381 0.806488\n0.615906 0.197510 0.806610\n0.662750 0.198456 0.806702\n0.711700 0.199402 0.806824\n0.762299 0.200500 0.806885\n0.814209 0.201355 0.807007\n0.867096 0.202423 0.807098\n0.915527 0.203491 0.807220\n0.000000 0.197296 0.804382\n0.000000 0.197968 0.804474\n0.000000 0.198914 0.804565\n0.019897 0.199615 0.804626\n0.048126 0.200592 0.804749\n0.081390 0.201355 0.804810\n0.109009 0.202271 0.804901\n0.134705 0.203156 0.805023\n0.158539 0.204041 0.805115\n0.181061 0.205017 0.805206\n0.202179 0.205780 0.805267\n0.222687 0.206757 0.805359\n0.242584 0.207550 0.805511\n0.262451 0.208527 0.805603\n0.282440 0.209259 0.805664\n0.303162 0.210297 0.805756\n0.324677 0.211304 0.805908\n0.347473 0.212097 0.805969\n0.372040 0.213104 0.806091\n0.398499 0.213867 0.806183\n0.427307 0.214874 0.806305\n0.458893 0.215790 0.806396\n0.493439 0.216705 0.806488\n0.531403 0.217682 0.806580\n0.572632 0.218475 0.806702\n0.616852 0.219452 0.806793\n0.663666 0.220276 0.806885\n0.712494 0.221252 0.807007\n0.762939 0.222107 0.807098\n0.814697 0.223022 0.807220\n0.867188 0.223938 0.807281\n0.915527 0.224792 0.807404\n0.000000 0.219757 0.804565\n0.000000 0.220398 0.804626\n0.000000 0.221313 0.804749\n0.021973 0.221985 0.804810\n0.051636 0.222839 0.804901\n0.083496 0.223541 0.805023\n0.110870 0.224426 0.805115\n0.136353 0.225098 0.805206\n0.160034 0.226074 0.805267\n0.182404 0.226715 0.805359\n0.203522 0.227661 0.805511\n0.223907 0.228485 0.805603\n0.243744 0.229279 0.805634\n0.263550 0.230011 0.805756\n0.283539 0.230927 0.805908\n0.304260 0.231689 0.805969\n0.325775 0.232605 0.806091\n0.348541 0.233521 0.806183\n0.373108 0.234253 0.806305\n0.399567 0.235046 0.806396\n0.428467 0.235870 0.806488\n0.459808 0.236816 0.806580\n0.494537 0.237549 0.806702\n0.532471 0.238464 0.806793\n0.573608 0.239166 0.806885\n0.617859 0.240112 0.806946\n0.664307 0.240845 0.807098\n0.713013 0.241760 0.807220\n0.763367 0.242462 0.807281\n0.815002 0.243378 0.807404\n0.867340 0.244110 0.807495\n0.915527 0.244995 0.807587\n0.000000 0.240875 0.804749\n0.000000 0.241699 0.804810\n0.000000 0.242310 0.804901\n0.024139 0.243164 0.805023\n0.055420 0.243805 0.805115\n0.085632 0.244598 0.805206\n0.112854 0.245270 0.805267\n0.138153 0.245911 0.805359\n0.161743 0.246796 0.805511\n0.183777 0.247437 0.805603\n0.204956 0.248260 0.805634\n0.225098 0.248932 0.805756\n0.244904 0.249786 0.805908\n0.264679 0.250519 0.805969\n0.284637 0.251373 0.806030\n0.305359 0.251984 0.806183\n0.326843 0.252899 0.806305\n0.349670 0.253540 0.806396\n0.374176 0.254456 0.806488\n0.400665 0.255127 0.806580\n0.429413 0.255981 0.806702\n0.460907 0.256683 0.806793\n0.495575 0.257355 0.806885\n0.533569 0.258209 0.806946\n0.574677 0.258972 0.807098\n0.618591 0.259735 0.807220\n0.665222 0.260468 0.807281\n0.713776 0.261261 0.807404\n0.763977 0.261902 0.807495\n0.815277 0.262817 0.807587\n0.867493 0.263458 0.807678\n0.915527 0.264313 0.807800\n0.000000 0.261200 0.804901\n0.000000 0.261780 0.804962\n0.000488 0.262604 0.805115\n0.026306 0.263123 0.805206\n0.059052 0.263855 0.805267\n0.087799 0.264587 0.805359\n0.114807 0.265137 0.805450\n0.139801 0.265991 0.805603\n0.163239 0.266602 0.805634\n0.185303 0.267426 0.805756\n0.206268 0.268036 0.805847\n0.226349 0.268738 0.805969\n0.246094 0.269501 0.806030\n0.265808 0.270142 0.806183\n0.285736 0.270935 0.806305\n0.306244 0.271545 0.806396\n0.327942 0.272400 0.806488\n0.350769 0.273010 0.806580\n0.375153 0.273865 0.806702\n0.401642 0.274475 0.806793\n0.430481 0.275177 0.806885\n0.462006 0.275940 0.806946\n0.496643 0.276642 0.807098\n0.534393 0.277374 0.807220\n0.575714 0.277985 0.807281\n0.619568 0.278839 0.807404\n0.665833 0.279449 0.807495\n0.714325 0.280304 0.807587\n0.764404 0.280884 0.807678\n0.815643 0.281647 0.807800\n0.867737 0.282318 0.807892\n0.915527 0.282990 0.807983\n0.000000 0.280823 0.805115\n0.000000 0.281433 0.805206\n0.002350 0.282166 0.805267\n0.028595 0.282715 0.805359\n0.061432 0.283508 0.805450\n0.089996 0.284058 0.805603\n0.116821 0.284637 0.805634\n0.141693 0.285431 0.805756\n0.164948 0.285980 0.805847\n0.186798 0.286774 0.805969\n0.207581 0.287323 0.806030\n0.227570 0.288147 0.806183\n0.247284 0.288757 0.806305\n0.266937 0.289368 0.806396\n0.286865 0.290161 0.806488\n0.307373 0.290741 0.806580\n0.329041 0.291534 0.806702\n0.351837 0.292114 0.806793\n0.376251 0.292755 0.806885\n0.402740 0.293549 0.806946\n0.431610 0.294128 0.807098\n0.463135 0.294922 0.807190\n0.497681 0.295502 0.807281\n0.535522 0.296204 0.807343\n0.576721 0.296875 0.807495\n0.620483 0.297485 0.807587\n0.666718 0.298309 0.807678\n0.715088 0.298859 0.807800\n0.764862 0.299652 0.807892\n0.816071 0.300232 0.807983\n0.867981 0.300964 0.808075\n0.915527 0.301575 0.808197\n0.000000 0.300293 0.805267\n0.000000 0.301025 0.805359\n0.004517 0.301575 0.805450\n0.030792 0.302094 0.805603\n0.063873 0.302887 0.805634\n0.092194 0.303436 0.805756\n0.118683 0.303955 0.805847\n0.143555 0.304779 0.805969\n0.166504 0.305298 0.806030\n0.188202 0.306091 0.806183\n0.208893 0.306641 0.806274\n0.228851 0.307159 0.806396\n0.248474 0.307983 0.806458\n0.268097 0.308533 0.806580\n0.287994 0.309326 0.806641\n0.308441 0.309875 0.806793\n0.329987 0.310425 0.806885\n0.352966 0.311218 0.806946\n0.377319 0.311798 0.807098\n0.403870 0.312592 0.807190\n0.432739 0.313141 0.807281\n0.464233 0.313751 0.807343\n0.498718 0.314484 0.807495\n0.536591 0.315063 0.807587\n0.577545 0.315857 0.807678\n0.621399 0.316406 0.807800\n0.667633 0.317047 0.807892\n0.715637 0.317719 0.807983\n0.765503 0.318298 0.808075\n0.816345 0.318970 0.808197\n0.868134 0.319611 0.808258\n0.915527 0.320160 0.808350\n0.000000 0.319885 0.805450\n0.000000 0.320587 0.805603\n0.006744 0.321136 0.805634\n0.033173 0.321686 0.805756\n0.066223 0.322449 0.805847\n0.094360 0.322968 0.805969\n0.120697 0.323608 0.806030\n0.145203 0.324280 0.806183\n0.168152 0.324799 0.806274\n0.189636 0.325562 0.806396\n0.210205 0.326111 0.806458\n0.230225 0.326660 0.806580\n0.249634 0.327454 0.806641\n0.269257 0.327972 0.806793\n0.289093 0.328766 0.806885\n0.309570 0.329315 0.806946\n0.331146 0.329895 0.807098\n0.354095 0.330627 0.807190\n0.378479 0.331177 0.807281\n0.404968 0.331818 0.807343\n0.433838 0.332520 0.807495\n0.465363 0.333038 0.807587\n0.499817 0.333801 0.807678\n0.537659 0.334351 0.807739\n0.578583 0.335052 0.807892\n0.622192 0.335693 0.807953\n0.668243 0.336243 0.808075\n0.716370 0.336975 0.808197\n0.765900 0.337555 0.808258\n0.816620 0.338074 0.808350\n0.868286 0.338806 0.808472\n0.915527 0.339355 0.808563\n0.000000 0.340210 0.805634\n0.000000 0.340729 0.805756\n0.009033 0.341217 0.805847\n0.035400 0.341980 0.805939\n0.068604 0.342499 0.806030\n0.096558 0.343018 0.806183\n0.122772 0.343781 0.806274\n0.147064 0.344299 0.806396\n0.169769 0.345032 0.806458\n0.191193 0.345581 0.806580\n0.211731 0.346161 0.806641\n0.231415 0.346893 0.806793\n0.250854 0.347473 0.806885\n0.270386 0.348022 0.806946\n0.290222 0.348785 0.807098\n0.310669 0.349304 0.807190\n0.332214 0.350067 0.807281\n0.355133 0.350586 0.807343\n0.379547 0.351135 0.807495\n0.406067 0.351898 0.807587\n0.434937 0.352417 0.807678\n0.466461 0.353058 0.807739\n0.500916 0.353760 0.807892\n0.538727 0.354309 0.807953\n0.579590 0.355042 0.808075\n0.623138 0.355560 0.808136\n0.669098 0.356079 0.808258\n0.716919 0.356812 0.808350\n0.766327 0.357361 0.808472\n0.817139 0.357880 0.808563\n0.868439 0.358673 0.808594\n0.915527 0.359161 0.808746\n0.000000 0.361053 0.805847\n0.000000 0.361786 0.805939\n0.011230 0.362305 0.806030\n0.037811 0.363007 0.806183\n0.071136 0.363617 0.806274\n0.098785 0.364075 0.806396\n0.124756 0.364868 0.806458\n0.148743 0.365356 0.806580\n0.171295 0.365906 0.806641\n0.192657 0.366669 0.806793\n0.212982 0.367249 0.806885\n0.232788 0.367920 0.806946\n0.252075 0.368500 0.807098\n0.271576 0.369080 0.807190\n0.291382 0.369812 0.807281\n0.311768 0.370331 0.807343\n0.333282 0.370880 0.807495\n0.356079 0.371643 0.807587\n0.380707 0.372192 0.807678\n0.407196 0.372925 0.807739\n0.436066 0.373474 0.807892\n0.467590 0.373993 0.807953\n0.502014 0.374756 0.808075\n0.539825 0.375305 0.808136\n0.580627 0.375854 0.808258\n0.624084 0.376556 0.808350\n0.669891 0.377106 0.808472\n0.717651 0.377777 0.808563\n0.766937 0.378357 0.808594\n0.817413 0.378876 0.808746\n0.868561 0.379578 0.808838\n0.915527 0.380127 0.808899\n0.000000 0.383392 0.806030\n0.000000 0.383911 0.806183\n0.013641 0.384674 0.806274\n0.040039 0.385193 0.806396\n0.073547 0.385834 0.806458\n0.100983 0.386444 0.806580\n0.126709 0.387024 0.806641\n0.150604 0.387634 0.806793\n0.173004 0.388275 0.806885\n0.194061 0.388824 0.806946\n0.214386 0.389618 0.807037\n0.234039 0.390137 0.807190\n0.253326 0.390747 0.807251\n0.272705 0.391449 0.807343\n0.292542 0.391937 0.807495\n0.312897 0.392609 0.807587\n0.334351 0.393250 0.807678\n0.357147 0.393799 0.807739\n0.381775 0.394592 0.807892\n0.408325 0.395111 0.807953\n0.437073 0.395660 0.808075\n0.468567 0.396362 0.808136\n0.503082 0.396881 0.808258\n0.540802 0.397644 0.808350\n0.581360 0.398163 0.808472\n0.624969 0.398682 0.808563\n0.670532 0.399414 0.808594\n0.718140 0.399933 0.808746\n0.767303 0.400421 0.808838\n0.817627 0.401154 0.808899\n0.868744 0.401703 0.809021\n0.915527 0.402283 0.809113\n0.000000 0.407074 0.806274\n0.000000 0.407806 0.806335\n0.016083 0.408356 0.806458\n0.042480 0.409119 0.806549\n0.075958 0.409668 0.806641\n0.103180 0.410156 0.806793\n0.128632 0.410950 0.806885\n0.152344 0.411469 0.806946\n0.174561 0.411987 0.807037\n0.195587 0.412781 0.807190\n0.215729 0.413300 0.807251\n0.235291 0.414032 0.807343\n0.254425 0.414642 0.807495\n0.273865 0.415161 0.807587\n0.293640 0.415924 0.807678\n0.313995 0.416473 0.807739\n0.335480 0.416992 0.807892\n0.358276 0.417725 0.807953\n0.382874 0.418304 0.808075\n0.409393 0.418976 0.808136\n0.438141 0.419586 0.808258\n0.469543 0.420135 0.808350\n0.504120 0.420868 0.808472\n0.541687 0.421356 0.808563\n0.582367 0.421906 0.808594\n0.625671 0.422638 0.808746\n0.671356 0.423157 0.808838\n0.718872 0.423615 0.808899\n0.767914 0.424347 0.809021\n0.817902 0.424866 0.809113\n0.868866 0.425537 0.809174\n0.915527 0.426086 0.809235\n0.000000 0.432861 0.806458\n0.000000 0.433411 0.806549\n0.018372 0.434143 0.806641\n0.044708 0.434692 0.806793\n0.078339 0.435211 0.806885\n0.105377 0.436005 0.806946\n0.130646 0.436523 0.807037\n0.154144 0.437286 0.807190\n0.176086 0.437805 0.807251\n0.197083 0.438385 0.807343\n0.217010 0.439148 0.807495\n0.236511 0.439697 0.807587\n0.255676 0.440216 0.807678\n0.274994 0.440979 0.807739\n0.294769 0.441498 0.807892\n0.315094 0.442291 0.807953\n0.336548 0.442780 0.808075\n0.359375 0.443359 0.808136\n0.383881 0.444092 0.808228\n0.410339 0.444611 0.808350\n0.439209 0.445190 0.808441\n0.470642 0.445892 0.808563\n0.505066 0.446411 0.808594\n0.542755 0.447052 0.808746\n0.583313 0.447662 0.808838\n0.626617 0.448181 0.808899\n0.671967 0.448883 0.809021\n0.719360 0.449371 0.809113\n0.768280 0.449921 0.809174\n0.818207 0.450470 0.809235\n0.869110 0.451080 0.809326\n0.915527 0.451569 0.809479\n0.000000 0.460754 0.806641\n0.000000 0.461273 0.806793\n0.020844 0.461823 0.806885\n0.048401 0.462585 0.806946\n0.080902 0.463165 0.807037\n0.107544 0.463837 0.807190\n0.132629 0.464447 0.807251\n0.156006 0.465027 0.807343\n0.177765 0.465729 0.807434\n0.198517 0.466278 0.807587\n0.218323 0.466827 0.807648\n0.237732 0.467590 0.807739\n0.256927 0.468140 0.807892\n0.276123 0.468811 0.807953\n0.295807 0.469421 0.808075\n0.316223 0.469940 0.808136\n0.337646 0.470703 0.808228\n0.360413 0.471222 0.808350\n0.384979 0.471832 0.808441\n0.411377 0.472504 0.808563\n0.440216 0.473053 0.808594\n0.471710 0.473511 0.808746\n0.506073 0.474274 0.808838\n0.543732 0.474792 0.808899\n0.584320 0.475433 0.809021\n0.627411 0.476013 0.809113\n0.672791 0.476532 0.809174\n0.720062 0.477203 0.809235\n0.768707 0.477692 0.809326\n0.818665 0.478180 0.809479\n0.869324 0.478668 0.809570\n0.915527 0.479340 0.809601\n0.000000 0.491058 0.806885\n0.000000 0.491577 0.806946\n0.023285 0.492371 0.807037\n0.052460 0.492889 0.807190\n0.083221 0.493439 0.807251\n0.109741 0.494171 0.807343\n0.134552 0.494720 0.807434\n0.157593 0.495514 0.807587\n0.179260 0.496002 0.807648\n0.199890 0.496582 0.807739\n0.219788 0.497284 0.807831\n0.238983 0.497864 0.807953\n0.257996 0.498383 0.808044\n0.277283 0.499146 0.808136\n0.296875 0.499634 0.808228\n0.317291 0.500305 0.808350\n0.338715 0.500916 0.808441\n0.361481 0.501465 0.808563\n0.385925 0.502014 0.808594\n0.412415 0.502686 0.808685\n0.441284 0.503235 0.808838\n0.472748 0.503876 0.808899\n0.507111 0.504456 0.808990\n0.544739 0.504913 0.809113\n0.585236 0.505646 0.809174\n0.628143 0.506134 0.809235\n0.673309 0.506622 0.809326\n0.720551 0.507294 0.809479\n0.769257 0.507812 0.809570\n0.818878 0.508240 0.809601\n0.869415 0.508820 0.809692\n0.915527 0.509369 0.809784\n0.000000 0.524231 0.807037\n0.000549 0.524780 0.807190\n0.025787 0.525269 0.807251\n0.056854 0.526062 0.807343\n0.085602 0.526581 0.807434\n0.111877 0.527252 0.807587\n0.136383 0.527802 0.807648\n0.159424 0.528351 0.807739\n0.181000 0.529114 0.807831\n0.201477 0.529663 0.807953\n0.221069 0.530151 0.808044\n0.240204 0.530914 0.808136\n0.259186 0.531433 0.808228\n0.278381 0.531952 0.808350\n0.297943 0.532684 0.808441\n0.318359 0.533203 0.808563\n0.339813 0.533722 0.808594\n0.362610 0.534424 0.808685\n0.386993 0.534973 0.808838\n0.413483 0.535645 0.808899\n0.442352 0.536163 0.808990\n0.473816 0.536621 0.809113\n0.508148 0.537079 0.809174\n0.545715 0.537842 0.809235\n0.585968 0.538300 0.809326\n0.629028 0.538818 0.809418\n0.674072 0.539429 0.809570\n0.720978 0.539917 0.809601\n0.769562 0.540344 0.809692\n0.819153 0.541016 0.809784\n0.869537 0.541443 0.809875\n0.915527 0.541870 0.809937\n0.000000 0.560181 0.807251\n0.002747 0.560822 0.807343\n0.028107 0.561462 0.807434\n0.060059 0.561951 0.807587\n0.087860 0.562714 0.807648\n0.113983 0.563232 0.807739\n0.138367 0.563721 0.807831\n0.161011 0.564453 0.807953\n0.182404 0.565002 0.808044\n0.202820 0.565460 0.808136\n0.222382 0.566193 0.808228\n0.241394 0.566711 0.808350\n0.260406 0.567200 0.808441\n0.279510 0.567902 0.808533\n0.298920 0.568420 0.808594\n0.319336 0.568878 0.808685\n0.340698 0.569580 0.808838\n0.363525 0.570099 0.808899\n0.388031 0.570526 0.808990\n0.414551 0.571228 0.809082\n0.443390 0.571747 0.809174\n0.474823 0.572144 0.809235\n0.509155 0.572845 0.809326\n0.546509 0.573303 0.809418\n0.586914 0.573730 0.809509\n0.629639 0.574371 0.809601\n0.674774 0.574799 0.809692\n0.721649 0.575226 0.809784\n0.769928 0.575684 0.809875\n0.819336 0.576294 0.809937\n0.869659 0.576691 0.809998\n0.915527 0.577118 0.810028\n0.000000 0.599091 0.807434\n0.005066 0.599792 0.807587\n0.030548 0.600250 0.807648\n0.062653 0.600708 0.807739\n0.090240 0.601410 0.807831\n0.116119 0.601898 0.807953\n0.140228 0.602417 0.808044\n0.162750 0.603027 0.808136\n0.183899 0.603546 0.808228\n0.204193 0.604034 0.808350\n0.223633 0.604706 0.808441\n0.242584 0.605164 0.808533\n0.261414 0.605652 0.808594\n0.280548 0.606201 0.808685\n0.299988 0.606781 0.808807\n0.320282 0.607208 0.808899\n0.341644 0.607666 0.808990\n0.364471 0.608337 0.809082\n0.389038 0.608795 0.809174\n0.415558 0.609192 0.809235\n0.444244 0.609833 0.809326\n0.475647 0.610260 0.809418\n0.510101 0.610657 0.809509\n0.547485 0.611115 0.809601\n0.587708 0.611725 0.809631\n0.630463 0.612152 0.809784\n0.675415 0.612488 0.809875\n0.722107 0.612854 0.809937\n0.770447 0.613464 0.809998\n0.819763 0.613861 0.810028\n0.869751 0.614197 0.810120\n0.915527 0.614532 0.810211\n0.000000 0.640442 0.807648\n0.007416 0.640900 0.807739\n0.033020 0.641327 0.807831\n0.065186 0.641815 0.807953\n0.092560 0.642426 0.808044\n0.118164 0.642853 0.808136\n0.141998 0.643280 0.808228\n0.164368 0.643921 0.808289\n0.185516 0.644379 0.808441\n0.205475 0.644806 0.808533\n0.224884 0.645416 0.808594\n0.243713 0.645844 0.808685\n0.262512 0.646240 0.808807\n0.281616 0.646698 0.808899\n0.301086 0.647278 0.808990\n0.321289 0.647644 0.809082\n0.342743 0.648071 0.809174\n0.365479 0.648499 0.809235\n0.390106 0.649048 0.809326\n0.416595 0.649475 0.809418\n0.445160 0.649811 0.809509\n0.476562 0.650238 0.809570\n0.510864 0.650787 0.809631\n0.548401 0.651123 0.809784\n0.588470 0.651459 0.809814\n0.631287 0.651855 0.809906\n0.676117 0.652405 0.809967\n0.722717 0.652710 0.810028\n0.770752 0.653015 0.810120\n0.819977 0.653351 0.810211\n0.869812 0.653687 0.810272\n0.915527 0.654205 0.810333\n0.000000 0.683563 0.807831\n0.009766 0.683929 0.807953\n0.035309 0.684448 0.808044\n0.067535 0.684906 0.808136\n0.094788 0.685272 0.808228\n0.120270 0.685638 0.808289\n0.143890 0.686249 0.808441\n0.165955 0.686615 0.808533\n0.186920 0.687012 0.808594\n0.206818 0.687378 0.808685\n0.226074 0.687927 0.808807\n0.244904 0.688324 0.808899\n0.263641 0.688660 0.808990\n0.282654 0.688995 0.809082\n0.302094 0.689301 0.809174\n0.322327 0.689880 0.809235\n0.343750 0.690216 0.809326\n0.366486 0.690552 0.809418\n0.390839 0.690887 0.809509\n0.417358 0.691406 0.809570\n0.446167 0.691772 0.809631\n0.477539 0.692078 0.809723\n0.511841 0.692352 0.809814\n0.549072 0.692719 0.809906\n0.589294 0.693146 0.809967\n0.631866 0.693451 0.810028\n0.676605 0.693756 0.810120\n0.723145 0.694031 0.810211\n0.771057 0.694366 0.810272\n0.820190 0.694794 0.810333\n0.869904 0.695099 0.810425\n0.915527 0.695312 0.810486\n0.000000 0.728271 0.808044\n0.012054 0.728760 0.808136\n0.037750 0.729126 0.808228\n0.070190 0.729431 0.808289\n0.097076 0.729706 0.808441\n0.122070 0.730042 0.808533\n0.145660 0.730316 0.808594\n0.167603 0.730865 0.808685\n0.188324 0.731171 0.808807\n0.208221 0.731506 0.808899\n0.227295 0.731750 0.808990\n0.246033 0.732147 0.809082\n0.264709 0.732513 0.809174\n0.283600 0.732819 0.809235\n0.303131 0.733124 0.809326\n0.323334 0.733368 0.809418\n0.344727 0.733673 0.809509\n0.367493 0.734161 0.809570\n0.391846 0.734436 0.809631\n0.418304 0.734680 0.809723\n0.447144 0.734894 0.809814\n0.478485 0.735138 0.809906\n0.512787 0.735474 0.809967\n0.549957 0.735870 0.810028\n0.589935 0.736115 0.810120\n0.632629 0.736359 0.810211\n0.677063 0.736572 0.810272\n0.723572 0.736786 0.810333\n0.771484 0.737030 0.810425\n0.820404 0.737244 0.810486\n0.870117 0.737640 0.810516\n0.915527 0.737823 0.810577\n0.000000 0.774261 0.808228\n0.014465 0.774506 0.808289\n0.039978 0.774750 0.808441\n0.072479 0.775177 0.808533\n0.099213 0.775421 0.808563\n0.124054 0.775665 0.808685\n0.147369 0.775879 0.808807\n0.169098 0.776123 0.808899\n0.189728 0.776337 0.808990\n0.209412 0.776764 0.809082\n0.228455 0.776978 0.809174\n0.247162 0.777191 0.809235\n0.265778 0.777466 0.809326\n0.284637 0.777649 0.809418\n0.304077 0.777802 0.809509\n0.324310 0.778076 0.809570\n0.345642 0.778259 0.809631\n0.368408 0.778625 0.809723\n0.392792 0.778839 0.809814\n0.419250 0.779114 0.809906\n0.448090 0.779266 0.809967\n0.479187 0.779449 0.810028\n0.513458 0.779633 0.810120\n0.550690 0.779816 0.810211\n0.590698 0.780029 0.810272\n0.633118 0.780334 0.810333\n0.677704 0.780518 0.810425\n0.724060 0.780670 0.810486\n0.771851 0.780853 0.810516\n0.820526 0.780975 0.810577\n0.870331 0.781128 0.810638\n0.915527 0.781311 0.810730\n0.000000 0.820923 0.808441\n0.016846 0.821106 0.808533\n0.042389 0.821381 0.808563\n0.074860 0.821625 0.808685\n0.101196 0.821808 0.808807\n0.126007 0.821960 0.808899\n0.149048 0.822113 0.808990\n0.170746 0.822296 0.809082\n0.191132 0.822449 0.809174\n0.210754 0.822540 0.809235\n0.229584 0.822693 0.809326\n0.248230 0.822906 0.809418\n0.266785 0.823151 0.809509\n0.285614 0.823395 0.809570\n0.304962 0.823517 0.809631\n0.325043 0.823608 0.809723\n0.346436 0.823792 0.809814\n0.369171 0.823883 0.809906\n0.393738 0.824036 0.809967\n0.420197 0.824158 0.810028\n0.448730 0.824249 0.810120\n0.480133 0.824402 0.810211\n0.514282 0.824554 0.810272\n0.551453 0.824768 0.810333\n0.591461 0.825012 0.810425\n0.633881 0.825104 0.810486\n0.678131 0.825165 0.810516\n0.724426 0.825287 0.810577\n0.772095 0.825409 0.810638\n0.820892 0.825470 0.810730\n0.870453 0.825562 0.810760\n0.915527 0.825653 0.810822\n0.000000 0.868286 0.808563\n0.019043 0.868378 0.808685\n0.044525 0.868469 0.808807\n0.077087 0.868561 0.808899\n0.103363 0.868622 0.808990\n0.127899 0.868713 0.809082\n0.150665 0.868744 0.809174\n0.172150 0.868835 0.809235\n0.192505 0.868958 0.809326\n0.211975 0.868988 0.809418\n0.230743 0.869110 0.809509\n0.249298 0.869110 0.809570\n0.267853 0.869202 0.809631\n0.286621 0.869263 0.809723\n0.305878 0.869354 0.809814\n0.326019 0.869385 0.809906\n0.347351 0.869446 0.809967\n0.370056 0.869568 0.810028\n0.394440 0.869720 0.810120\n0.420868 0.869781 0.810211\n0.449646 0.869934 0.810272\n0.480988 0.869995 0.810333\n0.514984 0.870087 0.810425\n0.552246 0.870087 0.810425\n0.591980 0.870178 0.810516\n0.634308 0.870239 0.810577\n0.678711 0.870270 0.810638\n0.724884 0.870331 0.810730\n0.772339 0.870361 0.810760\n0.821075 0.870422 0.810822\n0.870514 0.870422 0.810883\n0.915527 0.870483 0.810883\n0.000000 0.915527 0.808807\n0.021454 0.915527 0.808899\n0.047852 0.915527 0.808990\n0.079407 0.915527 0.809082\n0.105347 0.915527 0.809174\n0.129639 0.915527 0.809235\n0.152191 0.915527 0.809326\n0.173523 0.915527 0.809418\n0.193787 0.915527 0.809509\n0.213104 0.915527 0.809570\n0.231873 0.915527 0.809631\n0.250366 0.915527 0.809723\n0.268738 0.915527 0.809814\n0.287415 0.915527 0.809906\n0.306824 0.915527 0.809967\n0.326935 0.915527 0.810028\n0.348236 0.915527 0.810120\n0.370972 0.915527 0.810211\n0.395294 0.915527 0.810242\n0.421722 0.915527 0.810333\n0.450470 0.915527 0.810425\n0.481567 0.915527 0.810425\n0.515747 0.915527 0.810516\n0.552765 0.915527 0.810577\n0.592743 0.915527 0.810638\n0.634918 0.915527 0.810730\n0.679169 0.915527 0.810760\n0.725220 0.915527 0.810822\n0.772644 0.915527 0.810883\n0.821198 0.915527 0.810883\n0.870605 0.915527 0.810944\n0.915527 0.915527 0.810974\n0.000000 0.000000 0.841431\n0.000000 0.000000 0.841492\n0.000000 0.000000 0.841522\n0.005829 0.000000 0.841614\n0.032654 0.000000 0.841644\n0.066406 0.000000 0.841675\n0.095276 0.000000 0.841736\n0.122162 0.000000 0.841766\n0.147278 0.000000 0.841858\n0.170715 0.000000 0.841919\n0.192719 0.000000 0.841949\n0.213715 0.000000 0.841980\n0.234283 0.000000 0.842041\n0.254364 0.000000 0.842072\n0.274780 0.000000 0.842163\n0.295380 0.000000 0.842224\n0.317139 0.000000 0.842316\n0.339874 0.000000 0.842316\n0.364197 0.000000 0.842377\n0.390564 0.000000 0.842438\n0.419342 0.000000 0.842529\n0.450836 0.000000 0.842560\n0.485352 0.000000 0.842651\n0.523438 0.000000 0.842682\n0.565125 0.000000 0.842773\n0.609863 0.000000 0.842865\n0.657532 0.000000 0.842896\n0.707306 0.000000 0.842987\n0.758881 0.000366 0.843018\n0.811951 0.001770 0.843079\n0.865845 0.003143 0.843170\n0.915527 0.004517 0.843201\n0.000000 0.000000 0.841522\n0.000000 0.000000 0.841614\n0.000000 0.000000 0.841644\n0.007385 0.000000 0.841675\n0.034332 0.000000 0.841736\n0.068176 0.000000 0.841766\n0.096924 0.000000 0.841858\n0.123688 0.000580 0.841919\n0.148499 0.001587 0.841949\n0.171936 0.002716 0.841980\n0.193848 0.003784 0.842041\n0.214813 0.005035 0.842072\n0.235291 0.006226 0.842163\n0.255371 0.007477 0.842224\n0.275696 0.008698 0.842316\n0.296356 0.010010 0.842316\n0.317871 0.011322 0.842377\n0.340637 0.012604 0.842438\n0.365143 0.013977 0.842529\n0.391541 0.015350 0.842560\n0.420319 0.016724 0.842651\n0.451874 0.018311 0.842682\n0.486328 0.019714 0.842773\n0.524445 0.021118 0.842865\n0.566071 0.022552 0.842896\n0.610779 0.024017 0.842987\n0.658203 0.025421 0.843018\n0.707947 0.027130 0.843079\n0.759399 0.028564 0.843170\n0.812317 0.030090 0.843201\n0.865997 0.031555 0.843292\n0.915527 0.033112 0.843353\n0.000000 0.021118 0.841644\n0.000000 0.022156 0.841675\n0.000000 0.023285 0.841736\n0.008972 0.024384 0.841766\n0.036041 0.025391 0.841858\n0.069946 0.026581 0.841919\n0.098541 0.027710 0.841949\n0.125153 0.028931 0.841980\n0.149872 0.030121 0.842041\n0.173157 0.031342 0.842072\n0.195007 0.032623 0.842163\n0.215881 0.033936 0.842224\n0.236328 0.035187 0.842316\n0.256378 0.036499 0.842316\n0.276520 0.037842 0.842377\n0.297302 0.039124 0.842438\n0.318878 0.040497 0.842529\n0.341583 0.041809 0.842560\n0.366150 0.043213 0.842651\n0.392548 0.044556 0.842682\n0.421173 0.046265 0.842773\n0.452759 0.048706 0.842804\n0.487396 0.051300 0.842896\n0.525421 0.054138 0.842987\n0.567078 0.056854 0.842987\n0.611694 0.059174 0.843079\n0.659058 0.060699 0.843170\n0.708649 0.062286 0.843201\n0.759796 0.063934 0.843292\n0.812592 0.065582 0.843353\n0.866119 0.067139 0.843384\n0.915527 0.068787 0.843475\n0.000000 0.054352 0.841736\n0.000000 0.056335 0.841766\n0.000000 0.058228 0.841827\n0.010620 0.059601 0.841919\n0.037811 0.060852 0.841949\n0.071747 0.062103 0.841980\n0.100372 0.063477 0.842041\n0.126709 0.064880 0.842072\n0.151276 0.066101 0.842163\n0.174438 0.067413 0.842224\n0.196167 0.068726 0.842316\n0.217010 0.070099 0.842316\n0.237396 0.071503 0.842377\n0.257416 0.072937 0.842438\n0.277496 0.074371 0.842529\n0.298309 0.075806 0.842560\n0.319855 0.077301 0.842651\n0.342621 0.078735 0.842682\n0.367157 0.080261 0.842773\n0.393585 0.081665 0.842804\n0.422211 0.083160 0.842896\n0.453674 0.084747 0.842987\n0.488403 0.086182 0.842987\n0.526459 0.087677 0.843079\n0.568054 0.089264 0.843170\n0.612640 0.090759 0.843201\n0.659851 0.092285 0.843292\n0.709198 0.093811 0.843353\n0.760468 0.095306 0.843384\n0.812897 0.096863 0.843475\n0.866425 0.098358 0.843567\n0.915527 0.099915 0.843628\n0.000000 0.088013 0.841827\n0.000000 0.089233 0.841919\n0.000000 0.090485 0.841949\n0.012512 0.091614 0.841980\n0.039612 0.092743 0.842041\n0.073669 0.093964 0.842072\n0.101929 0.095215 0.842163\n0.128296 0.096558 0.842224\n0.152802 0.097839 0.842255\n0.175690 0.098907 0.842316\n0.197357 0.100311 0.842346\n0.218140 0.101562 0.842438\n0.238495 0.102936 0.842529\n0.258484 0.104279 0.842560\n0.278564 0.105652 0.842651\n0.299194 0.107025 0.842682\n0.320862 0.108398 0.842773\n0.343658 0.109558 0.842804\n0.367981 0.110992 0.842896\n0.394440 0.112396 0.842987\n0.423218 0.113770 0.842987\n0.454742 0.115173 0.843079\n0.489471 0.116577 0.843109\n0.527466 0.118042 0.843201\n0.568848 0.119415 0.843292\n0.613373 0.120789 0.843353\n0.660553 0.122253 0.843384\n0.709808 0.123627 0.843475\n0.760895 0.125000 0.843567\n0.813385 0.126312 0.843628\n0.866669 0.127686 0.843689\n0.915527 0.129089 0.843781\n0.000000 0.118561 0.841949\n0.000000 0.119751 0.841980\n0.000000 0.120850 0.842041\n0.014343 0.121857 0.842072\n0.041504 0.123016 0.842163\n0.075745 0.124176 0.842224\n0.103821 0.125427 0.842255\n0.129822 0.126465 0.842316\n0.154205 0.127625 0.842346\n0.177032 0.128876 0.842438\n0.198608 0.130127 0.842499\n0.219269 0.131195 0.842560\n0.239471 0.132446 0.842651\n0.259491 0.133667 0.842682\n0.279633 0.134949 0.842773\n0.300140 0.136261 0.842804\n0.321777 0.137360 0.842896\n0.344696 0.138580 0.842987\n0.369049 0.139862 0.842987\n0.395447 0.141113 0.843079\n0.424286 0.142426 0.843109\n0.455811 0.143677 0.843201\n0.490448 0.144775 0.843292\n0.528534 0.146088 0.843353\n0.569855 0.147400 0.843384\n0.614319 0.148682 0.843475\n0.661377 0.150024 0.843567\n0.710510 0.151062 0.843628\n0.761353 0.152374 0.843689\n0.813629 0.153656 0.843781\n0.866791 0.154938 0.843811\n0.915527 0.156219 0.843903\n0.000000 0.147186 0.842041\n0.000000 0.148041 0.842072\n0.000000 0.149109 0.842163\n0.016266 0.150208 0.842224\n0.043396 0.151184 0.842255\n0.077698 0.152222 0.842316\n0.105560 0.153320 0.842346\n0.131592 0.154236 0.842438\n0.155731 0.155365 0.842499\n0.178436 0.156525 0.842560\n0.199860 0.157684 0.842651\n0.220459 0.158539 0.842682\n0.240570 0.159760 0.842773\n0.260559 0.160950 0.842804\n0.280670 0.161865 0.842896\n0.301208 0.163025 0.842987\n0.322784 0.164215 0.842987\n0.345703 0.165192 0.843079\n0.370087 0.166382 0.843109\n0.396515 0.167511 0.843201\n0.425415 0.168640 0.843292\n0.456940 0.169708 0.843353\n0.491394 0.170837 0.843384\n0.529419 0.172058 0.843475\n0.570892 0.173096 0.843567\n0.615295 0.174194 0.843628\n0.662048 0.175385 0.843689\n0.711243 0.176514 0.843781\n0.761932 0.177521 0.843811\n0.813934 0.178711 0.843903\n0.866913 0.179871 0.843964\n0.915527 0.180786 0.844055\n0.000000 0.173431 0.842163\n0.000000 0.174225 0.842224\n0.000000 0.175201 0.842255\n0.018219 0.176025 0.842316\n0.045319 0.177094 0.842346\n0.079803 0.178040 0.842438\n0.107452 0.178864 0.842499\n0.133148 0.179962 0.842560\n0.157318 0.180756 0.842651\n0.179871 0.181824 0.842682\n0.201172 0.182892 0.842773\n0.221649 0.183716 0.842804\n0.241760 0.184814 0.842896\n0.261444 0.185638 0.842957\n0.281708 0.186707 0.842987\n0.302246 0.187805 0.843079\n0.323792 0.188690 0.843109\n0.346710 0.189728 0.843201\n0.371155 0.190826 0.843292\n0.397614 0.191681 0.843323\n0.426483 0.192810 0.843384\n0.457977 0.193909 0.843475\n0.492493 0.194763 0.843536\n0.530487 0.195831 0.843628\n0.571869 0.196747 0.843689\n0.616119 0.197754 0.843781\n0.662933 0.198883 0.843811\n0.711823 0.199768 0.843903\n0.762390 0.200836 0.843964\n0.814240 0.201935 0.844055\n0.867096 0.202728 0.844086\n0.915527 0.203827 0.844177\n0.000000 0.197571 0.842255\n0.000000 0.198303 0.842316\n0.000000 0.199188 0.842346\n0.020386 0.200104 0.842438\n0.048706 0.200897 0.842499\n0.081879 0.201782 0.842560\n0.109375 0.202606 0.842590\n0.135010 0.203552 0.842682\n0.158813 0.204285 0.842773\n0.181244 0.205292 0.842804\n0.202423 0.206085 0.842896\n0.222870 0.207062 0.842957\n0.242767 0.207886 0.842987\n0.262604 0.208801 0.843079\n0.282745 0.209808 0.843109\n0.303345 0.210602 0.843201\n0.324829 0.211578 0.843292\n0.347778 0.212402 0.843323\n0.372253 0.213409 0.843384\n0.398712 0.214233 0.843475\n0.427521 0.215179 0.843536\n0.459106 0.216156 0.843628\n0.493591 0.216949 0.843689\n0.531586 0.217957 0.843781\n0.572937 0.218781 0.843811\n0.617035 0.219757 0.843903\n0.663788 0.220673 0.843964\n0.712616 0.221527 0.843994\n0.763031 0.222534 0.844086\n0.814758 0.223328 0.844177\n0.867249 0.224274 0.844238\n0.915527 0.225067 0.844299\n0.000000 0.220001 0.842346\n0.000000 0.220856 0.842438\n0.000000 0.221497 0.842499\n0.022430 0.222443 0.842560\n0.052216 0.223114 0.842590\n0.083954 0.223907 0.842682\n0.111389 0.224701 0.842773\n0.136627 0.225525 0.842804\n0.160461 0.226257 0.842896\n0.182617 0.227234 0.842957\n0.203888 0.227905 0.842987\n0.224091 0.228821 0.843079\n0.243988 0.229553 0.843109\n0.263794 0.230469 0.843201\n0.283691 0.231201 0.843292\n0.304413 0.232117 0.843323\n0.325928 0.232819 0.843384\n0.348755 0.233765 0.843475\n0.373322 0.234497 0.843536\n0.399811 0.235413 0.843628\n0.428650 0.236176 0.843689\n0.460022 0.237091 0.843781\n0.494659 0.237793 0.843811\n0.532623 0.238739 0.843903\n0.573730 0.239502 0.843964\n0.617981 0.240356 0.843994\n0.664459 0.241119 0.844086\n0.713135 0.242004 0.844177\n0.763428 0.242798 0.844238\n0.815063 0.243652 0.844299\n0.867401 0.244446 0.844360\n0.915527 0.245270 0.844421\n0.000000 0.241119 0.842499\n0.000000 0.241943 0.842560\n0.000000 0.242554 0.842590\n0.024506 0.243408 0.842682\n0.056091 0.244019 0.842773\n0.086121 0.244873 0.842804\n0.113159 0.245544 0.842896\n0.138397 0.246277 0.842957\n0.161957 0.247009 0.842987\n0.183990 0.247742 0.843079\n0.205170 0.248535 0.843109\n0.225281 0.249268 0.843201\n0.245270 0.250061 0.843292\n0.264832 0.250824 0.843323\n0.284821 0.251556 0.843384\n0.305511 0.252258 0.843475\n0.326996 0.253143 0.843536\n0.349823 0.253815 0.843628\n0.374420 0.254669 0.843689\n0.400909 0.255341 0.843781\n0.429596 0.256256 0.843811\n0.461121 0.256897 0.843903\n0.495819 0.257782 0.843964\n0.533722 0.258453 0.843994\n0.574799 0.259338 0.844086\n0.618958 0.259979 0.844177\n0.665344 0.260864 0.844238\n0.713928 0.261475 0.844299\n0.764130 0.262268 0.844360\n0.815308 0.263031 0.844421\n0.867554 0.263702 0.844513\n0.915527 0.264557 0.844604\n0.000000 0.261414 0.842590\n0.000000 0.261993 0.842682\n0.000793 0.262817 0.842712\n0.026794 0.263367 0.842804\n0.059540 0.264191 0.842896\n0.088226 0.264771 0.842957\n0.115173 0.265625 0.842987\n0.140167 0.266205 0.843079\n0.163544 0.266907 0.843109\n0.185638 0.267639 0.843201\n0.206482 0.268250 0.843262\n0.226685 0.269073 0.843323\n0.246246 0.269714 0.843384\n0.265991 0.270508 0.843475\n0.285919 0.271149 0.843536\n0.306641 0.272003 0.843628\n0.328125 0.272614 0.843689\n0.350922 0.273224 0.843750\n0.375305 0.274048 0.843811\n0.401794 0.274689 0.843903\n0.430664 0.275513 0.843964\n0.462219 0.276123 0.843994\n0.496887 0.277008 0.844086\n0.534698 0.277618 0.844177\n0.575836 0.278442 0.844238\n0.619720 0.279053 0.844299\n0.666138 0.279663 0.844360\n0.714417 0.280518 0.844421\n0.764526 0.281097 0.844513\n0.815735 0.281921 0.844604\n0.867798 0.282532 0.844635\n0.915527 0.283356 0.844696\n0.000000 0.281006 0.842712\n0.000000 0.281799 0.842804\n0.002777 0.282349 0.842896\n0.028992 0.282990 0.842957\n0.061859 0.283691 0.842987\n0.090515 0.284271 0.843079\n0.117157 0.284973 0.843109\n0.141937 0.285614 0.843201\n0.165222 0.286224 0.843262\n0.187012 0.287018 0.843323\n0.207794 0.287567 0.843384\n0.227814 0.288361 0.843475\n0.247528 0.288971 0.843536\n0.267090 0.289795 0.843628\n0.287018 0.290375 0.843689\n0.307709 0.290924 0.843750\n0.329224 0.291718 0.843811\n0.352051 0.292328 0.843903\n0.376373 0.293152 0.843933\n0.402924 0.293732 0.843994\n0.431763 0.294495 0.844086\n0.463287 0.295135 0.844147\n0.497986 0.295715 0.844238\n0.535736 0.296539 0.844299\n0.576904 0.297089 0.844360\n0.620636 0.297852 0.844421\n0.666809 0.298492 0.844513\n0.715210 0.299072 0.844604\n0.765045 0.299866 0.844635\n0.816101 0.300476 0.844696\n0.868073 0.301208 0.844788\n0.915527 0.301819 0.844818\n0.000000 0.300507 0.842896\n0.000000 0.301239 0.842957\n0.004852 0.301788 0.842987\n0.031281 0.302307 0.843018\n0.064240 0.303070 0.843109\n0.092682 0.303619 0.843201\n0.119202 0.304382 0.843262\n0.143829 0.304932 0.843323\n0.166779 0.305511 0.843384\n0.188416 0.306274 0.843475\n0.209106 0.306854 0.843536\n0.229248 0.307465 0.843628\n0.248840 0.308167 0.843689\n0.268250 0.308746 0.843750\n0.288208 0.309509 0.843811\n0.308777 0.310120 0.843903\n0.330292 0.310822 0.843933\n0.353088 0.311432 0.843994\n0.377533 0.312012 0.844086\n0.404053 0.312775 0.844147\n0.432861 0.313385 0.844238\n0.464417 0.314056 0.844299\n0.498901 0.314728 0.844360\n0.536713 0.315308 0.844421\n0.577698 0.316071 0.844513\n0.621613 0.316650 0.844604\n0.667725 0.317383 0.844635\n0.715729 0.317932 0.844696\n0.765564 0.318481 0.844788\n0.816406 0.319244 0.844818\n0.868164 0.319824 0.844879\n0.915527 0.320465 0.844971\n0.000000 0.320068 0.842987\n0.000000 0.320801 0.843018\n0.007050 0.321350 0.843109\n0.033539 0.321991 0.843201\n0.066589 0.322632 0.843262\n0.094849 0.323181 0.843323\n0.121185 0.323914 0.843384\n0.145477 0.324463 0.843445\n0.168488 0.325012 0.843536\n0.190063 0.325775 0.843628\n0.210510 0.326294 0.843689\n0.230499 0.326996 0.843750\n0.249878 0.327637 0.843811\n0.269409 0.328217 0.843903\n0.289276 0.328949 0.843933\n0.309906 0.329498 0.843994\n0.331451 0.330048 0.844086\n0.354218 0.330841 0.844147\n0.378632 0.331360 0.844238\n0.405121 0.332153 0.844299\n0.434021 0.332703 0.844360\n0.465515 0.333252 0.844421\n0.500000 0.334015 0.844513\n0.537842 0.334564 0.844604\n0.578705 0.335327 0.844635\n0.622375 0.335907 0.844696\n0.668549 0.336426 0.844788\n0.716461 0.337189 0.844818\n0.765991 0.337738 0.844879\n0.816650 0.338318 0.844971\n0.868317 0.338989 0.845001\n0.915527 0.339539 0.845093\n0.000000 0.340393 0.843109\n0.000000 0.340881 0.843201\n0.009369 0.341400 0.843262\n0.035950 0.342194 0.843323\n0.069122 0.342682 0.843384\n0.097137 0.343353 0.843445\n0.123047 0.343964 0.843536\n0.147339 0.344513 0.843628\n0.170044 0.345215 0.843658\n0.191498 0.345795 0.843750\n0.211975 0.346344 0.843811\n0.231750 0.347107 0.843903\n0.251129 0.347626 0.843933\n0.270569 0.348358 0.843994\n0.290436 0.348969 0.844086\n0.310791 0.349487 0.844147\n0.332550 0.350250 0.844238\n0.355347 0.350800 0.844299\n0.379730 0.351471 0.844360\n0.406250 0.352112 0.844421\n0.435120 0.352631 0.844513\n0.466614 0.353424 0.844604\n0.501068 0.353943 0.844635\n0.538910 0.354462 0.844696\n0.579742 0.355225 0.844788\n0.623291 0.355743 0.844818\n0.669220 0.356476 0.844879\n0.716980 0.357056 0.844940\n0.766541 0.357574 0.845001\n0.817169 0.358276 0.845093\n0.868469 0.358826 0.845123\n0.915527 0.359344 0.845215\n0.000000 0.361420 0.843262\n0.000000 0.361969 0.843323\n0.011749 0.362457 0.843384\n0.038208 0.363281 0.843445\n0.071472 0.363770 0.843536\n0.099335 0.364319 0.843628\n0.125092 0.365021 0.843658\n0.149170 0.365601 0.843750\n0.171783 0.366272 0.843811\n0.192932 0.366882 0.843842\n0.213257 0.367432 0.843933\n0.233002 0.368164 0.843994\n0.252380 0.368683 0.844086\n0.271729 0.369232 0.844147\n0.291565 0.369995 0.844238\n0.311951 0.370544 0.844299\n0.333435 0.371246 0.844360\n0.356323 0.371887 0.844421\n0.380859 0.372375 0.844513\n0.407349 0.373169 0.844543\n0.436188 0.373657 0.844635\n0.467743 0.374298 0.844696\n0.502167 0.374969 0.844788\n0.539978 0.375488 0.844818\n0.580719 0.376129 0.844879\n0.624207 0.376770 0.844940\n0.669983 0.377258 0.845001\n0.717743 0.378052 0.845093\n0.766968 0.378571 0.845123\n0.817444 0.379059 0.845215\n0.868561 0.379791 0.845276\n0.915527 0.380249 0.845306\n0.000000 0.383575 0.843384\n0.000000 0.384186 0.843445\n0.014099 0.384857 0.843536\n0.040588 0.385406 0.843628\n0.073914 0.386139 0.843658\n0.101501 0.386627 0.843750\n0.127106 0.387207 0.843811\n0.150879 0.387939 0.843842\n0.173309 0.388489 0.843933\n0.194336 0.389038 0.843994\n0.214569 0.389801 0.844086\n0.234253 0.390320 0.844147\n0.253632 0.391083 0.844238\n0.272858 0.391602 0.844299\n0.292664 0.392151 0.844299\n0.313049 0.392914 0.844421\n0.334564 0.393463 0.844513\n0.357422 0.394073 0.844543\n0.381927 0.394775 0.844635\n0.408478 0.395294 0.844696\n0.437347 0.396057 0.844788\n0.468842 0.396545 0.844818\n0.503265 0.397095 0.844879\n0.541016 0.397797 0.844940\n0.581665 0.398376 0.845001\n0.625183 0.398865 0.845093\n0.670654 0.399628 0.845123\n0.718231 0.400116 0.845215\n0.767395 0.400726 0.845276\n0.817657 0.401367 0.845306\n0.868744 0.401886 0.845367\n0.915527 0.402588 0.845459\n0.000000 0.407471 0.843536\n0.000000 0.408020 0.843628\n0.016418 0.408569 0.843658\n0.042816 0.409332 0.843750\n0.076508 0.409821 0.843811\n0.103729 0.410400 0.843842\n0.129120 0.411133 0.843933\n0.152740 0.411652 0.843994\n0.174866 0.412354 0.844086\n0.195923 0.412964 0.844147\n0.215912 0.413513 0.844238\n0.235474 0.414307 0.844299\n0.254822 0.414825 0.844299\n0.274048 0.415344 0.844421\n0.293823 0.416138 0.844513\n0.314148 0.416656 0.844543\n0.335632 0.417328 0.844635\n0.358521 0.417938 0.844696\n0.383057 0.418488 0.844727\n0.409576 0.419250 0.844818\n0.438446 0.419739 0.844879\n0.469940 0.420349 0.844940\n0.504333 0.421051 0.845001\n0.541870 0.421539 0.845093\n0.582520 0.422119 0.845123\n0.625854 0.422821 0.845215\n0.671509 0.423309 0.845276\n0.718994 0.424042 0.845306\n0.767975 0.424530 0.845367\n0.817963 0.425049 0.845459\n0.868927 0.425751 0.845490\n0.915527 0.426239 0.845612\n0.000000 0.433044 0.843658\n0.000000 0.433563 0.843750\n0.018890 0.434387 0.843811\n0.045227 0.434875 0.843842\n0.078827 0.435638 0.843933\n0.105896 0.436188 0.843994\n0.131012 0.436737 0.844086\n0.154388 0.437500 0.844147\n0.176514 0.438049 0.844238\n0.197296 0.438538 0.844299\n0.217224 0.439362 0.844299\n0.236694 0.439880 0.844421\n0.255981 0.440582 0.844513\n0.275177 0.441162 0.844543\n0.294922 0.441711 0.844635\n0.315308 0.442474 0.844696\n0.336731 0.442993 0.844727\n0.359528 0.443573 0.844818\n0.384155 0.444305 0.844879\n0.410645 0.444794 0.844940\n0.439514 0.445465 0.845001\n0.470917 0.446075 0.845093\n0.505402 0.446655 0.845123\n0.542908 0.447357 0.845215\n0.583496 0.447845 0.845276\n0.626740 0.448364 0.845306\n0.672241 0.449066 0.845367\n0.719482 0.449615 0.845459\n0.768341 0.450073 0.845490\n0.818268 0.450745 0.845612\n0.869232 0.451294 0.845642\n0.915527 0.451752 0.845673\n0.000000 0.460999 0.843811\n0.000000 0.461517 0.843842\n0.021362 0.462250 0.843933\n0.049011 0.462830 0.843994\n0.081238 0.463318 0.844055\n0.108093 0.464111 0.844147\n0.132935 0.464600 0.844238\n0.156250 0.465302 0.844238\n0.178040 0.465912 0.844299\n0.198669 0.466492 0.844421\n0.218689 0.467133 0.844513\n0.237946 0.467804 0.844543\n0.257172 0.468323 0.844635\n0.276337 0.469116 0.844696\n0.296051 0.469604 0.844727\n0.316376 0.470154 0.844818\n0.337799 0.470886 0.844849\n0.360596 0.471436 0.844940\n0.385223 0.472168 0.845001\n0.411713 0.472656 0.845032\n0.440369 0.473206 0.845123\n0.471863 0.473907 0.845215\n0.506348 0.474487 0.845276\n0.543884 0.474945 0.845306\n0.584473 0.475708 0.845367\n0.627625 0.476166 0.845459\n0.672852 0.476685 0.845490\n0.720154 0.477417 0.845612\n0.768768 0.477875 0.845642\n0.818665 0.478363 0.845673\n0.869324 0.479065 0.845734\n0.915527 0.479492 0.845764\n0.000000 0.491272 0.843933\n0.000000 0.491760 0.843994\n0.023804 0.492554 0.844055\n0.053314 0.493103 0.844147\n0.083557 0.493774 0.844238\n0.110291 0.494385 0.844238\n0.134918 0.494934 0.844299\n0.157867 0.495667 0.844421\n0.179779 0.496216 0.844513\n0.200256 0.496765 0.844543\n0.220032 0.497498 0.844635\n0.239166 0.498047 0.844696\n0.258331 0.498627 0.844727\n0.277435 0.499329 0.844818\n0.297150 0.499847 0.844849\n0.317444 0.500610 0.844940\n0.338867 0.501160 0.845001\n0.361664 0.501617 0.845032\n0.386261 0.502380 0.845123\n0.412750 0.502899 0.845215\n0.441437 0.503387 0.845276\n0.472900 0.504120 0.845306\n0.507263 0.504608 0.845367\n0.544922 0.505096 0.845459\n0.585419 0.505829 0.845490\n0.628265 0.506287 0.845612\n0.673523 0.506805 0.845642\n0.720612 0.507477 0.845673\n0.769318 0.507935 0.845734\n0.818878 0.508362 0.845764\n0.869446 0.509064 0.845856\n0.915527 0.509521 0.845917\n0.000000 0.524414 0.844055\n0.000885 0.524933 0.844147\n0.026154 0.525513 0.844238\n0.057526 0.526245 0.844238\n0.086090 0.526764 0.844299\n0.112305 0.527527 0.844421\n0.136780 0.528046 0.844513\n0.159668 0.528564 0.844543\n0.181213 0.529327 0.844635\n0.201660 0.529816 0.844696\n0.221313 0.530579 0.844727\n0.240387 0.531128 0.844818\n0.259491 0.531616 0.844849\n0.278564 0.532257 0.844940\n0.298218 0.532898 0.845001\n0.318542 0.533386 0.845032\n0.339935 0.534119 0.845123\n0.362732 0.534607 0.845215\n0.387177 0.535156 0.845276\n0.413635 0.535858 0.845276\n0.442474 0.536346 0.845367\n0.473938 0.536804 0.845459\n0.508301 0.537476 0.845490\n0.545898 0.537994 0.845612\n0.586090 0.538483 0.845642\n0.629150 0.539154 0.845673\n0.674255 0.539642 0.845734\n0.721161 0.540070 0.845764\n0.769592 0.540649 0.845856\n0.819153 0.541168 0.845917\n0.869537 0.541626 0.845947\n0.915527 0.541992 0.846008\n0.000000 0.560394 0.844238\n0.003082 0.561127 0.844238\n0.028625 0.561646 0.844299\n0.060608 0.562164 0.844421\n0.088440 0.562866 0.844513\n0.114502 0.563446 0.844543\n0.138611 0.563995 0.844635\n0.161438 0.564667 0.844635\n0.182678 0.565155 0.844727\n0.203003 0.565674 0.844818\n0.222565 0.566406 0.844849\n0.241638 0.566895 0.844940\n0.260620 0.567444 0.845001\n0.279694 0.568146 0.845032\n0.299072 0.568573 0.845123\n0.319580 0.569214 0.845184\n0.341034 0.569763 0.845276\n0.363770 0.570251 0.845276\n0.388184 0.570892 0.845367\n0.414703 0.571411 0.845459\n0.443512 0.571869 0.845490\n0.474976 0.572327 0.845612\n0.509308 0.573029 0.845642\n0.546631 0.573456 0.845673\n0.587006 0.573883 0.845734\n0.629822 0.574524 0.845764\n0.674957 0.574951 0.845856\n0.721741 0.575378 0.845917\n0.769958 0.575989 0.845947\n0.819397 0.576447 0.846008\n0.869659 0.576874 0.846069\n0.915527 0.577209 0.846100\n0.000000 0.599243 0.844299\n0.005402 0.599915 0.844421\n0.031036 0.600433 0.844452\n0.063049 0.600922 0.844543\n0.090729 0.601624 0.844635\n0.116425 0.602112 0.844635\n0.140564 0.602570 0.844727\n0.163055 0.603271 0.844818\n0.184204 0.603729 0.844849\n0.204376 0.604187 0.844940\n0.223816 0.604889 0.845001\n0.242737 0.605347 0.845032\n0.261688 0.605804 0.845123\n0.280762 0.606476 0.845184\n0.300171 0.606903 0.845276\n0.320618 0.607391 0.845276\n0.341949 0.607880 0.845367\n0.364746 0.608521 0.845398\n0.389191 0.608917 0.845490\n0.415741 0.609375 0.845551\n0.444580 0.609955 0.845642\n0.475861 0.610413 0.845673\n0.510284 0.610809 0.845734\n0.547577 0.611420 0.845764\n0.587952 0.611847 0.845856\n0.630615 0.612274 0.845917\n0.675476 0.612640 0.845947\n0.722137 0.613098 0.845978\n0.770538 0.613617 0.846069\n0.819824 0.613953 0.846100\n0.869781 0.614349 0.846130\n0.915527 0.614838 0.846222\n0.000000 0.640594 0.844452\n0.007751 0.641052 0.844543\n0.033417 0.641510 0.844635\n0.065674 0.642120 0.844635\n0.093018 0.642578 0.844727\n0.118500 0.643005 0.844818\n0.142456 0.643494 0.844849\n0.164673 0.644073 0.844940\n0.185760 0.644501 0.845001\n0.205658 0.644928 0.845032\n0.225067 0.645599 0.845123\n0.243927 0.645996 0.845184\n0.262817 0.646423 0.845276\n0.281860 0.646942 0.845276\n0.301208 0.647430 0.845367\n0.321472 0.647827 0.845398\n0.342896 0.648224 0.845490\n0.365662 0.648682 0.845551\n0.390228 0.649231 0.845642\n0.416718 0.649567 0.845673\n0.445374 0.649933 0.845734\n0.476776 0.650482 0.845764\n0.510986 0.650879 0.845825\n0.548523 0.651276 0.845917\n0.588562 0.651611 0.845947\n0.631378 0.652130 0.845978\n0.676239 0.652496 0.846069\n0.722839 0.652832 0.846100\n0.770844 0.653137 0.846130\n0.820007 0.653442 0.846222\n0.869873 0.653931 0.846252\n0.915527 0.654297 0.846283\n0.000000 0.683716 0.844635\n0.010193 0.684052 0.844635\n0.035858 0.684723 0.844727\n0.068085 0.685059 0.844818\n0.095215 0.685425 0.844849\n0.120544 0.685822 0.844940\n0.144135 0.686432 0.844971\n0.166351 0.686768 0.845032\n0.187164 0.687134 0.845123\n0.207092 0.687531 0.845184\n0.226318 0.688080 0.845276\n0.245148 0.688446 0.845276\n0.263947 0.688812 0.845367\n0.282928 0.689117 0.845398\n0.302216 0.689484 0.845490\n0.322479 0.690002 0.845551\n0.343872 0.690338 0.845642\n0.366638 0.690704 0.845673\n0.391144 0.690979 0.845734\n0.417603 0.691559 0.845764\n0.446320 0.691803 0.845825\n0.477722 0.692169 0.845917\n0.511932 0.692474 0.845947\n0.549316 0.692902 0.845978\n0.589417 0.693298 0.846069\n0.631958 0.693573 0.846100\n0.676666 0.693817 0.846130\n0.723175 0.694153 0.846161\n0.771118 0.694550 0.846252\n0.820190 0.694885 0.846283\n0.869995 0.695129 0.846344\n0.915527 0.695404 0.846375\n0.000000 0.728363 0.844727\n0.012573 0.728943 0.844818\n0.038147 0.729218 0.844849\n0.070526 0.729523 0.844940\n0.097443 0.729858 0.844971\n0.122559 0.730164 0.845032\n0.145966 0.730621 0.845123\n0.167847 0.730988 0.845184\n0.188568 0.731262 0.845276\n0.208496 0.731567 0.845276\n0.227448 0.731873 0.845367\n0.246185 0.732269 0.845398\n0.264862 0.732666 0.845490\n0.283722 0.732910 0.845551\n0.303284 0.733185 0.845642\n0.323486 0.733490 0.845673\n0.344849 0.733887 0.845734\n0.367615 0.734253 0.845764\n0.391998 0.734497 0.845825\n0.418427 0.734802 0.845917\n0.447266 0.734985 0.845947\n0.478668 0.735229 0.845978\n0.512848 0.735748 0.846069\n0.550049 0.735962 0.846100\n0.590027 0.736176 0.846130\n0.632721 0.736389 0.846161\n0.677185 0.736633 0.846252\n0.723755 0.736816 0.846283\n0.771545 0.737091 0.846344\n0.820404 0.737427 0.846375\n0.870178 0.737671 0.846436\n0.915527 0.737915 0.846466\n0.000000 0.774323 0.844849\n0.014893 0.774567 0.844940\n0.040527 0.774902 0.844971\n0.072937 0.775269 0.845032\n0.099609 0.775482 0.845123\n0.124512 0.775696 0.845184\n0.147614 0.775940 0.845276\n0.169434 0.776184 0.845276\n0.190094 0.776459 0.845367\n0.209686 0.776825 0.845398\n0.228638 0.777069 0.845490\n0.247284 0.777283 0.845551\n0.265930 0.777527 0.845642\n0.284790 0.777740 0.845673\n0.304260 0.777924 0.845734\n0.324463 0.778137 0.845764\n0.345825 0.778381 0.845825\n0.368561 0.778778 0.845917\n0.392944 0.778931 0.845947\n0.419403 0.779144 0.845978\n0.448181 0.779297 0.846069\n0.479370 0.779480 0.846100\n0.513611 0.779663 0.846130\n0.550903 0.779816 0.846161\n0.590851 0.780151 0.846252\n0.633240 0.780457 0.846283\n0.677795 0.780579 0.846344\n0.724152 0.780792 0.846375\n0.771881 0.780884 0.846436\n0.820648 0.781036 0.846466\n0.870331 0.781219 0.846527\n0.915527 0.781342 0.846558\n0.000000 0.820984 0.844971\n0.017212 0.821167 0.845032\n0.042725 0.821472 0.845123\n0.075378 0.821747 0.845184\n0.101715 0.821869 0.845276\n0.126282 0.822021 0.845276\n0.149353 0.822174 0.845367\n0.170959 0.822357 0.845398\n0.191406 0.822479 0.845490\n0.210938 0.822601 0.845551\n0.229767 0.822754 0.845642\n0.248383 0.822968 0.845673\n0.266968 0.823273 0.845734\n0.285767 0.823456 0.845764\n0.305237 0.823578 0.845825\n0.325256 0.823730 0.845917\n0.346710 0.823792 0.845947\n0.369385 0.823944 0.845978\n0.393860 0.824066 0.846008\n0.420288 0.824219 0.846100\n0.448853 0.824310 0.846130\n0.480225 0.824463 0.846161\n0.514435 0.824615 0.846222\n0.551544 0.824860 0.846283\n0.591614 0.825012 0.846344\n0.633942 0.825104 0.846375\n0.678253 0.825195 0.846436\n0.724457 0.825287 0.846466\n0.772156 0.825409 0.846527\n0.820984 0.825470 0.846558\n0.870453 0.825562 0.846588\n0.915527 0.825653 0.846588\n0.000000 0.868347 0.845093\n0.019592 0.868439 0.845184\n0.045044 0.868469 0.845276\n0.077637 0.868561 0.845276\n0.103790 0.868652 0.845367\n0.128174 0.868713 0.845398\n0.150940 0.868774 0.845490\n0.172394 0.868896 0.845551\n0.192688 0.868958 0.845642\n0.212189 0.869049 0.845673\n0.230896 0.869110 0.845673\n0.249451 0.869171 0.845764\n0.268005 0.869202 0.845825\n0.286743 0.869293 0.845917\n0.306000 0.869354 0.845947\n0.326141 0.869446 0.845978\n0.347473 0.869446 0.846008\n0.370209 0.869568 0.846100\n0.394592 0.869781 0.846130\n0.420959 0.869873 0.846161\n0.449738 0.869934 0.846222\n0.481110 0.869995 0.846283\n0.515167 0.870087 0.846344\n0.552338 0.870148 0.846375\n0.592102 0.870178 0.846436\n0.634369 0.870239 0.846466\n0.678833 0.870270 0.846527\n0.725006 0.870331 0.846558\n0.772339 0.870361 0.846588\n0.821106 0.870422 0.846588\n0.870544 0.870422 0.846619\n0.915527 0.870483 0.846649\n0.000000 0.915527 0.845276\n0.021790 0.915527 0.845276\n0.048401 0.915527 0.845367\n0.079895 0.915527 0.845398\n0.105774 0.915527 0.845490\n0.129883 0.915527 0.845551\n0.152649 0.915527 0.845642\n0.173798 0.915527 0.845673\n0.193970 0.915527 0.845673\n0.213287 0.915527 0.845764\n0.232025 0.915527 0.845825\n0.250519 0.915527 0.845917\n0.268982 0.915527 0.845947\n0.287689 0.915527 0.845978\n0.306946 0.915527 0.846008\n0.327057 0.915527 0.846100\n0.348419 0.915527 0.846130\n0.371063 0.915527 0.846161\n0.395416 0.915527 0.846222\n0.421875 0.915527 0.846252\n0.450623 0.915527 0.846344\n0.481781 0.915527 0.846375\n0.515839 0.915527 0.846436\n0.552948 0.915527 0.846466\n0.592834 0.915527 0.846527\n0.634979 0.915527 0.846558\n0.679199 0.915527 0.846588\n0.725250 0.915527 0.846588\n0.772766 0.915527 0.846619\n0.821228 0.915527 0.846649\n0.870605 0.915527 0.846710\n0.915527 0.915527 0.846741\n0.000000 0.000000 0.879974\n0.000000 0.000000 0.880005\n0.000000 0.000000 0.880005\n0.006042 0.000000 0.880035\n0.033112 0.000000 0.880035\n0.066742 0.000000 0.880035\n0.095520 0.000000 0.880096\n0.122528 0.000000 0.880127\n0.147430 0.000000 0.880127\n0.170868 0.000000 0.880188\n0.192902 0.000000 0.880188\n0.213959 0.000000 0.880249\n0.234375 0.000000 0.880280\n0.254578 0.000000 0.880341\n0.274902 0.000000 0.880341\n0.295563 0.000000 0.880341\n0.317291 0.000000 0.880402\n0.340027 0.000000 0.880402\n0.364349 0.000000 0.880432\n0.390717 0.000000 0.880463\n0.419495 0.000000 0.880524\n0.450958 0.000000 0.880524\n0.485565 0.000000 0.880554\n0.523743 0.000000 0.880615\n0.565338 0.000000 0.880646\n0.610107 0.000000 0.880676\n0.657684 0.000000 0.880676\n0.707458 0.000000 0.880707\n0.759033 0.000916 0.880768\n0.812012 0.002197 0.880798\n0.865845 0.003571 0.880829\n0.915527 0.005127 0.880890\n0.000000 0.000000 0.880005\n0.000000 0.000000 0.880035\n0.000000 0.000000 0.880035\n0.007629 0.000000 0.880035\n0.034698 0.000000 0.880096\n0.068451 0.000000 0.880096\n0.097229 0.000000 0.880127\n0.123901 0.000916 0.880188\n0.148743 0.001984 0.880188\n0.172119 0.003082 0.880249\n0.194000 0.004211 0.880280\n0.215057 0.005402 0.880341\n0.235443 0.006653 0.880341\n0.255524 0.007843 0.880341\n0.275879 0.009155 0.880402\n0.296509 0.010406 0.880402\n0.318054 0.011749 0.880432\n0.340973 0.013153 0.880463\n0.365295 0.014587 0.880524\n0.391724 0.015961 0.880524\n0.420502 0.017334 0.880554\n0.451996 0.018738 0.880615\n0.486542 0.020142 0.880646\n0.524597 0.021576 0.880676\n0.566223 0.023163 0.880676\n0.610901 0.024658 0.880707\n0.658295 0.026093 0.880768\n0.708008 0.027557 0.880798\n0.759491 0.029053 0.880829\n0.812378 0.030548 0.880890\n0.865997 0.032196 0.880890\n0.915527 0.033752 0.880920\n0.000000 0.021454 0.880035\n0.000000 0.022522 0.880035\n0.000000 0.023621 0.880096\n0.009277 0.024750 0.880096\n0.036285 0.025909 0.880127\n0.070343 0.027069 0.880188\n0.098785 0.028290 0.880188\n0.125458 0.029297 0.880249\n0.150269 0.030548 0.880280\n0.173370 0.031799 0.880280\n0.195190 0.033051 0.880341\n0.216187 0.034332 0.880341\n0.236481 0.035614 0.880402\n0.256531 0.036926 0.880402\n0.276672 0.038239 0.880432\n0.297455 0.039551 0.880463\n0.319031 0.041016 0.880524\n0.341827 0.042480 0.880524\n0.366333 0.043793 0.880554\n0.392731 0.045227 0.880615\n0.421509 0.047516 0.880646\n0.453003 0.049805 0.880676\n0.487518 0.052368 0.880676\n0.525604 0.054993 0.880707\n0.567169 0.057678 0.880768\n0.611877 0.059631 0.880798\n0.659119 0.061218 0.880829\n0.708740 0.062836 0.880890\n0.759949 0.064606 0.880890\n0.812622 0.066254 0.880920\n0.866241 0.067871 0.880981\n0.915527 0.069550 0.881012\n0.000000 0.054932 0.880096\n0.000000 0.057007 0.880096\n0.000000 0.058960 0.880127\n0.011047 0.060059 0.880188\n0.038055 0.061218 0.880188\n0.072235 0.062561 0.880249\n0.100616 0.063904 0.880280\n0.127045 0.065277 0.880280\n0.151642 0.066589 0.880341\n0.174622 0.067932 0.880341\n0.196350 0.069366 0.880341\n0.217163 0.070770 0.880402\n0.237579 0.072144 0.880432\n0.257538 0.073456 0.880463\n0.277679 0.074921 0.880524\n0.298492 0.076324 0.880524\n0.320007 0.077789 0.880554\n0.342804 0.079193 0.880615\n0.367310 0.080719 0.880646\n0.393768 0.082153 0.880646\n0.422485 0.083710 0.880676\n0.453979 0.085144 0.880707\n0.488586 0.086670 0.880768\n0.526642 0.088196 0.880798\n0.568237 0.089722 0.880829\n0.612793 0.091217 0.880890\n0.660004 0.092804 0.880890\n0.709320 0.094238 0.880920\n0.760529 0.095825 0.880981\n0.812958 0.097412 0.881012\n0.866547 0.098846 0.881012\n0.915527 0.100403 0.881073\n0.000000 0.088379 0.880127\n0.000000 0.089600 0.880188\n0.000000 0.090790 0.880188\n0.012787 0.092041 0.880249\n0.039886 0.093292 0.880280\n0.074005 0.094360 0.880280\n0.102325 0.095612 0.880341\n0.128510 0.096954 0.880341\n0.152985 0.098206 0.880341\n0.175873 0.099579 0.880402\n0.197571 0.100861 0.880432\n0.218323 0.102173 0.880463\n0.238647 0.103333 0.880524\n0.258606 0.104706 0.880524\n0.278717 0.106110 0.880554\n0.299469 0.107452 0.880615\n0.321014 0.108856 0.880646\n0.343842 0.110260 0.880646\n0.368256 0.111603 0.880676\n0.394653 0.113037 0.880707\n0.423431 0.114441 0.880768\n0.454956 0.115601 0.880798\n0.489655 0.117065 0.880829\n0.527679 0.118469 0.880890\n0.569153 0.119843 0.880890\n0.613495 0.121277 0.880920\n0.660675 0.122650 0.880981\n0.710052 0.124115 0.881012\n0.760956 0.125519 0.881012\n0.813416 0.126892 0.881073\n0.866699 0.128357 0.881073\n0.915527 0.129700 0.881104\n0.000000 0.119171 0.880188\n0.000000 0.120087 0.880249\n0.000000 0.121246 0.880280\n0.014648 0.122406 0.880280\n0.041748 0.123474 0.880341\n0.076019 0.124573 0.880341\n0.104126 0.125793 0.880341\n0.130249 0.127014 0.880402\n0.154419 0.128113 0.880432\n0.177216 0.129242 0.880463\n0.198792 0.130493 0.880524\n0.219482 0.131744 0.880524\n0.239716 0.133026 0.880554\n0.259674 0.134064 0.880615\n0.279785 0.135345 0.880646\n0.300415 0.136627 0.880646\n0.322021 0.137878 0.880676\n0.344849 0.139160 0.880707\n0.369232 0.140320 0.880768\n0.395599 0.141571 0.880798\n0.424469 0.142853 0.880829\n0.455963 0.144104 0.880829\n0.490723 0.145416 0.880890\n0.528748 0.146606 0.880920\n0.570007 0.147766 0.880981\n0.614441 0.149078 0.881012\n0.661499 0.150360 0.881012\n0.710602 0.151672 0.881012\n0.761566 0.152740 0.881073\n0.813721 0.154053 0.881104\n0.866821 0.155334 0.881165\n0.915527 0.156616 0.881195\n0.000000 0.147491 0.880280\n0.000000 0.148560 0.880280\n0.000000 0.149445 0.880341\n0.016602 0.150543 0.880341\n0.043671 0.151642 0.880341\n0.078003 0.152527 0.880402\n0.106018 0.153656 0.880432\n0.131836 0.154785 0.880463\n0.156097 0.155701 0.880463\n0.178741 0.156860 0.880524\n0.200104 0.157990 0.880554\n0.220673 0.158936 0.880615\n0.240845 0.160095 0.880646\n0.260773 0.161285 0.880646\n0.280823 0.162415 0.880676\n0.301422 0.163391 0.880707\n0.323059 0.164581 0.880768\n0.345886 0.165771 0.880798\n0.370239 0.166748 0.880798\n0.396729 0.167877 0.880829\n0.425537 0.169067 0.880890\n0.457062 0.170166 0.880920\n0.491608 0.171234 0.880981\n0.529785 0.172394 0.881012\n0.571075 0.173584 0.881012\n0.615417 0.174561 0.881012\n0.662231 0.175751 0.881073\n0.711334 0.176941 0.881104\n0.762024 0.178101 0.881165\n0.813965 0.179077 0.881195\n0.867004 0.180206 0.881256\n0.915527 0.181396 0.881256\n0.000000 0.173737 0.880341\n0.000000 0.174469 0.880341\n0.000000 0.175507 0.880341\n0.018707 0.176453 0.880402\n0.045654 0.177338 0.880432\n0.080109 0.178406 0.880463\n0.107849 0.179199 0.880463\n0.133606 0.180237 0.880524\n0.157562 0.181274 0.880554\n0.180115 0.182098 0.880615\n0.201538 0.183167 0.880646\n0.221832 0.184143 0.880646\n0.242004 0.185120 0.880676\n0.261841 0.186188 0.880707\n0.281921 0.187042 0.880768\n0.302399 0.188141 0.880798\n0.324066 0.189209 0.880798\n0.346954 0.190063 0.880829\n0.371307 0.191162 0.880890\n0.397766 0.192139 0.880920\n0.426636 0.193115 0.880981\n0.458160 0.194183 0.881012\n0.492645 0.195221 0.881012\n0.530640 0.196136 0.881012\n0.572083 0.197235 0.881073\n0.616394 0.198120 0.881104\n0.663025 0.199219 0.881165\n0.711945 0.200287 0.881195\n0.762421 0.201141 0.881256\n0.814331 0.202240 0.881256\n0.867126 0.203217 0.881287\n0.915527 0.204132 0.881348\n0.000000 0.197784 0.880341\n0.000000 0.198700 0.880402\n0.000000 0.199432 0.880432\n0.020691 0.200439 0.880463\n0.049225 0.201141 0.880463\n0.082214 0.202118 0.880524\n0.109680 0.202850 0.880554\n0.135223 0.203827 0.880615\n0.159088 0.204712 0.880646\n0.181458 0.205566 0.880646\n0.202789 0.206573 0.880676\n0.223175 0.207306 0.880707\n0.243073 0.208313 0.880768\n0.262939 0.209106 0.880798\n0.282990 0.210114 0.880798\n0.303467 0.210968 0.880829\n0.325012 0.211884 0.880890\n0.348022 0.212769 0.880920\n0.372406 0.213654 0.880981\n0.398865 0.214661 0.881012\n0.427704 0.215485 0.881012\n0.459259 0.216492 0.881012\n0.493744 0.217407 0.881073\n0.531708 0.218262 0.881104\n0.573090 0.219238 0.881165\n0.617126 0.220062 0.881195\n0.663910 0.221069 0.881256\n0.712677 0.221832 0.881256\n0.763123 0.222778 0.881287\n0.814819 0.223572 0.881348\n0.867249 0.224579 0.881348\n0.915527 0.225464 0.881409\n0.000000 0.220245 0.880432\n0.000000 0.221100 0.880463\n0.000000 0.221771 0.880463\n0.022797 0.222687 0.880524\n0.053101 0.223358 0.880554\n0.084381 0.224243 0.880615\n0.111633 0.224945 0.880646\n0.137054 0.225861 0.880646\n0.160736 0.226562 0.880676\n0.182953 0.227448 0.880707\n0.204071 0.228180 0.880768\n0.224274 0.229095 0.880798\n0.244324 0.229797 0.880798\n0.264099 0.230713 0.880829\n0.283966 0.231415 0.880890\n0.304565 0.232361 0.880920\n0.326080 0.233063 0.880981\n0.348877 0.234039 0.881012\n0.373505 0.234741 0.881012\n0.399994 0.235657 0.881012\n0.428833 0.236420 0.881073\n0.460358 0.237335 0.881104\n0.494843 0.238251 0.881165\n0.532806 0.238983 0.881195\n0.573883 0.239960 0.881256\n0.618103 0.240631 0.881256\n0.664703 0.241516 0.881287\n0.713257 0.242279 0.881348\n0.763550 0.243195 0.881348\n0.815125 0.243927 0.881409\n0.867401 0.244843 0.881439\n0.915527 0.245544 0.881470\n0.000000 0.241455 0.880463\n0.000000 0.242157 0.880524\n0.000000 0.242920 0.880554\n0.024994 0.243591 0.880615\n0.056946 0.244263 0.880646\n0.086517 0.245117 0.880646\n0.113647 0.245758 0.880676\n0.138702 0.246582 0.880707\n0.162231 0.247253 0.880768\n0.184448 0.248108 0.880798\n0.205353 0.248779 0.880798\n0.225708 0.249664 0.880829\n0.245483 0.250305 0.880890\n0.265045 0.251190 0.880920\n0.285095 0.251831 0.880981\n0.305695 0.252563 0.881012\n0.327179 0.253387 0.881012\n0.349976 0.254120 0.881012\n0.374603 0.254944 0.881073\n0.401062 0.255707 0.881104\n0.429932 0.256500 0.881165\n0.461487 0.257141 0.881195\n0.495972 0.258026 0.881256\n0.533905 0.258698 0.881256\n0.574982 0.259552 0.881287\n0.619049 0.260193 0.881348\n0.665466 0.261108 0.881348\n0.714020 0.261749 0.881409\n0.764160 0.262634 0.881439\n0.815399 0.263245 0.881470\n0.867554 0.264130 0.881470\n0.915527 0.264771 0.881531\n0.000000 0.261627 0.880554\n0.000000 0.262329 0.880615\n0.001190 0.263031 0.880646\n0.027130 0.263580 0.880646\n0.059906 0.264435 0.880676\n0.088715 0.265015 0.880707\n0.115448 0.265808 0.880768\n0.140564 0.266418 0.880798\n0.163971 0.267273 0.880798\n0.185822 0.267853 0.880829\n0.206696 0.268463 0.880890\n0.226929 0.269318 0.880920\n0.246582 0.269897 0.880981\n0.266266 0.270752 0.881012\n0.286194 0.271393 0.881012\n0.306793 0.272217 0.881012\n0.328278 0.272827 0.881073\n0.351105 0.273529 0.881104\n0.375702 0.274323 0.881165\n0.402191 0.274963 0.881195\n0.431030 0.275726 0.881256\n0.462585 0.276367 0.881256\n0.497070 0.277222 0.881287\n0.534973 0.277802 0.881348\n0.575989 0.278687 0.881348\n0.619995 0.279297 0.881409\n0.666351 0.279999 0.881439\n0.714539 0.280701 0.881470\n0.764587 0.281311 0.881470\n0.815857 0.282166 0.881531\n0.867798 0.282776 0.881561\n0.915527 0.283600 0.881622\n0.000000 0.281250 0.880615\n0.000000 0.281982 0.880646\n0.003113 0.282593 0.880676\n0.029449 0.283325 0.880707\n0.062256 0.283936 0.880768\n0.090851 0.284485 0.880798\n0.117462 0.285278 0.880798\n0.142365 0.285828 0.880829\n0.165497 0.286652 0.880890\n0.187286 0.287231 0.880920\n0.208038 0.287811 0.880981\n0.228180 0.288574 0.880981\n0.247864 0.289154 0.881012\n0.267426 0.290009 0.881012\n0.287231 0.290558 0.881073\n0.307861 0.291260 0.881104\n0.329376 0.291962 0.881165\n0.352173 0.292542 0.881195\n0.376770 0.293335 0.881256\n0.403320 0.293976 0.881256\n0.432098 0.294769 0.881287\n0.463470 0.295380 0.881348\n0.498138 0.295898 0.881348\n0.536011 0.296722 0.881409\n0.577026 0.297333 0.881439\n0.620728 0.298126 0.881470\n0.666962 0.298706 0.881470\n0.715332 0.299500 0.881531\n0.765167 0.300110 0.881561\n0.816162 0.300690 0.881622\n0.868073 0.301453 0.881653\n0.915527 0.302002 0.881653\n0.000000 0.300690 0.880676\n0.000000 0.301422 0.880707\n0.005341 0.301941 0.880768\n0.031647 0.302582 0.880798\n0.064850 0.303253 0.880798\n0.093079 0.303833 0.880829\n0.119476 0.304596 0.880890\n0.144073 0.305145 0.880920\n0.167114 0.305878 0.880981\n0.188751 0.306488 0.880981\n0.209351 0.307007 0.881012\n0.229431 0.307800 0.881012\n0.249054 0.308380 0.881073\n0.268433 0.309052 0.881104\n0.288330 0.309753 0.881165\n0.308990 0.310303 0.881195\n0.330505 0.311096 0.881256\n0.353271 0.311646 0.881256\n0.377869 0.312439 0.881287\n0.404358 0.313019 0.881348\n0.433075 0.313599 0.881348\n0.464569 0.314362 0.881409\n0.499146 0.314941 0.881439\n0.537018 0.315582 0.881470\n0.578003 0.316284 0.881470\n0.621704 0.316803 0.881531\n0.667847 0.317596 0.881561\n0.715912 0.318146 0.881622\n0.765656 0.318695 0.881653\n0.816467 0.319458 0.881653\n0.868164 0.320038 0.881683\n0.915527 0.320770 0.881744\n0.000000 0.320312 0.880768\n0.000000 0.321014 0.880768\n0.007599 0.321564 0.880798\n0.034027 0.322327 0.880829\n0.067108 0.322845 0.880890\n0.095276 0.323334 0.880920\n0.121490 0.324097 0.880981\n0.145966 0.324646 0.880981\n0.168701 0.325226 0.881012\n0.190277 0.325989 0.881012\n0.210846 0.326538 0.881073\n0.230682 0.327301 0.881104\n0.250214 0.327850 0.881165\n0.269623 0.328522 0.881195\n0.289429 0.329163 0.881195\n0.310089 0.329712 0.881256\n0.331604 0.330475 0.881287\n0.354401 0.331024 0.881348\n0.378784 0.331604 0.881348\n0.405426 0.332336 0.881409\n0.434143 0.332916 0.881409\n0.465668 0.333649 0.881439\n0.500244 0.334198 0.881470\n0.537994 0.334747 0.881531\n0.578918 0.335571 0.881561\n0.622681 0.336090 0.881622\n0.668701 0.336639 0.881653\n0.716614 0.337402 0.881653\n0.766022 0.337921 0.881683\n0.816772 0.338654 0.881744\n0.868317 0.339203 0.881775\n0.915527 0.339722 0.881836\n0.000000 0.340546 0.880798\n0.000000 0.341095 0.880829\n0.009888 0.341675 0.880890\n0.036255 0.342346 0.880920\n0.069519 0.342865 0.880981\n0.097473 0.343628 0.880981\n0.123474 0.344147 0.881012\n0.147614 0.344757 0.881012\n0.170227 0.345459 0.881073\n0.191681 0.345978 0.881104\n0.212189 0.346619 0.881165\n0.231934 0.347321 0.881195\n0.251434 0.347839 0.881195\n0.270813 0.348602 0.881256\n0.290558 0.349121 0.881287\n0.311127 0.349792 0.881348\n0.332703 0.350464 0.881348\n0.355469 0.351013 0.881409\n0.379913 0.351776 0.881409\n0.406372 0.352295 0.881439\n0.435303 0.352814 0.881470\n0.466797 0.353607 0.881531\n0.501282 0.354156 0.881561\n0.539032 0.354858 0.881622\n0.579926 0.355408 0.881653\n0.623383 0.355988 0.881653\n0.669312 0.356720 0.881683\n0.717102 0.357239 0.881744\n0.766632 0.357727 0.881775\n0.817200 0.358521 0.881836\n0.868469 0.359039 0.881836\n0.915527 0.359589 0.881866\n0.000000 0.361633 0.880890\n0.000000 0.362183 0.880920\n0.012115 0.362762 0.880981\n0.038696 0.363434 0.880981\n0.071991 0.363983 0.881012\n0.099670 0.364594 0.881012\n0.125519 0.365234 0.881073\n0.149506 0.365753 0.881104\n0.172028 0.366516 0.881165\n0.193268 0.367065 0.881195\n0.213470 0.367645 0.881195\n0.233154 0.368347 0.881256\n0.252594 0.368927 0.881287\n0.272003 0.369537 0.881348\n0.291748 0.370209 0.881348\n0.312195 0.370728 0.881409\n0.333771 0.371521 0.881409\n0.356598 0.372040 0.881439\n0.380981 0.372620 0.881470\n0.407501 0.373322 0.881531\n0.436401 0.373871 0.881561\n0.467896 0.374603 0.881622\n0.502350 0.375153 0.881653\n0.540100 0.375702 0.881653\n0.580872 0.376434 0.881683\n0.624329 0.376923 0.881744\n0.670135 0.377472 0.881775\n0.717865 0.378235 0.881836\n0.767059 0.378723 0.881836\n0.817505 0.379456 0.881866\n0.868652 0.379944 0.881897\n0.915527 0.380463 0.881927\n0.000000 0.383759 0.880981\n0.000000 0.384521 0.880981\n0.014526 0.385040 0.881012\n0.040955 0.385559 0.881012\n0.074493 0.386322 0.881073\n0.101868 0.386841 0.881104\n0.127380 0.387421 0.881165\n0.151184 0.388153 0.881195\n0.173492 0.388672 0.881195\n0.194733 0.389435 0.881256\n0.214844 0.390015 0.881287\n0.234375 0.390503 0.881348\n0.253815 0.391266 0.881348\n0.273041 0.391815 0.881409\n0.292847 0.392365 0.881409\n0.313385 0.393127 0.881439\n0.334900 0.393677 0.881470\n0.357697 0.394409 0.881531\n0.382111 0.394958 0.881561\n0.408630 0.395447 0.881622\n0.437469 0.396210 0.881653\n0.468994 0.396759 0.881653\n0.503418 0.397430 0.881683\n0.541199 0.398071 0.881744\n0.581909 0.398560 0.881775\n0.625305 0.399200 0.881836\n0.670746 0.399811 0.881836\n0.718323 0.400330 0.881866\n0.767426 0.401031 0.881897\n0.817749 0.401550 0.881927\n0.868774 0.402069 0.881927\n0.915527 0.402771 0.881989\n0.000000 0.407684 0.881012\n0.000000 0.408234 0.881012\n0.016937 0.408905 0.881073\n0.043365 0.409485 0.881104\n0.076843 0.410034 0.881165\n0.104095 0.410645 0.881195\n0.129425 0.411346 0.881195\n0.152985 0.411896 0.881256\n0.175293 0.412659 0.881287\n0.196167 0.413208 0.881348\n0.216278 0.413818 0.881348\n0.235657 0.414520 0.881409\n0.255005 0.415039 0.881409\n0.274231 0.415680 0.881439\n0.293976 0.416321 0.881470\n0.314331 0.416870 0.881531\n0.335907 0.417603 0.881561\n0.358826 0.418182 0.881622\n0.383209 0.418701 0.881653\n0.409698 0.419434 0.881653\n0.438568 0.419952 0.881683\n0.470093 0.420715 0.881744\n0.504517 0.421234 0.881775\n0.542053 0.421753 0.881836\n0.582764 0.422516 0.881836\n0.625977 0.423004 0.881866\n0.671631 0.423523 0.881897\n0.719025 0.424225 0.881927\n0.768066 0.424744 0.881927\n0.817993 0.425201 0.881989\n0.868927 0.425934 0.882019\n0.915527 0.426453 0.882050\n0.000000 0.433228 0.881073\n0.000000 0.433990 0.881104\n0.019379 0.434570 0.881165\n0.045624 0.435089 0.881195\n0.079224 0.435852 0.881195\n0.106232 0.436401 0.881256\n0.131409 0.437042 0.881287\n0.154846 0.437714 0.881348\n0.176758 0.438232 0.881348\n0.197540 0.438873 0.881409\n0.217590 0.439545 0.881409\n0.236877 0.440094 0.881439\n0.256165 0.440826 0.881470\n0.275360 0.441376 0.881531\n0.295105 0.441986 0.881561\n0.315430 0.442688 0.881622\n0.336884 0.443176 0.881622\n0.359680 0.443817 0.881653\n0.384308 0.444489 0.881683\n0.410797 0.445007 0.881744\n0.439697 0.445770 0.881775\n0.471191 0.446289 0.881836\n0.505554 0.446808 0.881836\n0.542999 0.447510 0.881866\n0.583649 0.448029 0.881897\n0.626862 0.448608 0.881927\n0.672424 0.449310 0.881927\n0.719543 0.449768 0.881989\n0.768433 0.450256 0.882019\n0.818390 0.450928 0.882050\n0.869232 0.451447 0.882050\n0.915527 0.451996 0.882080\n0.000000 0.461182 0.881165\n0.000000 0.461670 0.881195\n0.021729 0.462463 0.881195\n0.049927 0.462982 0.881256\n0.081757 0.463562 0.881287\n0.108429 0.464264 0.881348\n0.133240 0.464844 0.881348\n0.156525 0.465607 0.881409\n0.178314 0.466125 0.881409\n0.199066 0.466675 0.881439\n0.218964 0.467438 0.881470\n0.238251 0.467957 0.881531\n0.257355 0.468506 0.881561\n0.276489 0.469269 0.881622\n0.296204 0.469818 0.881622\n0.316528 0.470581 0.881653\n0.337952 0.471100 0.881683\n0.360748 0.471619 0.881744\n0.385406 0.472351 0.881775\n0.411896 0.472870 0.881775\n0.440613 0.473389 0.881836\n0.472015 0.474152 0.881866\n0.506592 0.474640 0.881897\n0.544037 0.475159 0.881927\n0.584625 0.475861 0.881927\n0.627747 0.476410 0.881989\n0.672974 0.477020 0.882019\n0.720245 0.477570 0.882050\n0.769012 0.478058 0.882050\n0.818695 0.478516 0.882080\n0.869324 0.479218 0.882141\n0.915527 0.479675 0.882141\n0.000000 0.491425 0.881195\n0.000000 0.492188 0.881256\n0.024170 0.492737 0.881287\n0.054108 0.493317 0.881348\n0.084137 0.494019 0.881348\n0.110565 0.494598 0.881409\n0.135193 0.495209 0.881409\n0.158325 0.495880 0.881439\n0.179962 0.496399 0.881470\n0.200531 0.496979 0.881531\n0.220215 0.497711 0.881561\n0.239410 0.498230 0.881622\n0.258514 0.499023 0.881622\n0.277618 0.499512 0.881653\n0.297302 0.500061 0.881683\n0.317657 0.500793 0.881744\n0.339020 0.501312 0.881775\n0.361786 0.501831 0.881775\n0.386475 0.502594 0.881836\n0.412964 0.503052 0.881866\n0.441620 0.503632 0.881897\n0.473053 0.504272 0.881927\n0.507416 0.504791 0.881927\n0.545044 0.505493 0.881989\n0.585541 0.506012 0.882019\n0.628448 0.506500 0.882050\n0.673706 0.507141 0.882050\n0.720703 0.507660 0.882080\n0.769348 0.508118 0.882141\n0.819000 0.508575 0.882141\n0.869446 0.509247 0.882202\n0.915527 0.509674 0.882233\n0.000000 0.524597 0.881287\n0.001343 0.525146 0.881348\n0.026703 0.525848 0.881348\n0.058563 0.526428 0.881348\n0.086517 0.526947 0.881409\n0.112732 0.527710 0.881439\n0.137146 0.528198 0.881470\n0.159943 0.528992 0.881531\n0.181427 0.529510 0.881561\n0.201904 0.530029 0.881622\n0.221497 0.530762 0.881622\n0.240692 0.531311 0.881653\n0.259705 0.531799 0.881683\n0.278717 0.532562 0.881744\n0.298401 0.533081 0.881775\n0.318695 0.533539 0.881775\n0.340118 0.534302 0.881836\n0.362885 0.534790 0.881866\n0.387360 0.535370 0.881897\n0.413818 0.536011 0.881927\n0.442657 0.536499 0.881927\n0.474091 0.536987 0.881989\n0.508423 0.537689 0.882019\n0.546021 0.538147 0.882050\n0.586273 0.538635 0.882050\n0.629272 0.539307 0.882080\n0.674316 0.539795 0.882141\n0.721344 0.540222 0.882141\n0.769714 0.540894 0.882202\n0.819153 0.541351 0.882233\n0.869537 0.541748 0.882233\n0.915527 0.542145 0.882294\n0.000000 0.560577 0.881348\n0.003601 0.561371 0.881348\n0.029022 0.561829 0.881409\n0.060974 0.562500 0.881439\n0.088776 0.563141 0.881470\n0.114838 0.563568 0.881531\n0.139099 0.564362 0.881561\n0.161743 0.564850 0.881622\n0.183075 0.565338 0.881622\n0.203247 0.565979 0.881653\n0.222778 0.566559 0.881683\n0.241943 0.567078 0.881744\n0.260803 0.567780 0.881775\n0.279877 0.568268 0.881775\n0.299469 0.568756 0.881836\n0.319733 0.569489 0.881866\n0.341156 0.569916 0.881897\n0.363953 0.570435 0.881927\n0.388336 0.571136 0.881927\n0.414825 0.571625 0.881989\n0.443695 0.572052 0.882019\n0.475128 0.572540 0.882050\n0.509430 0.573151 0.882050\n0.546814 0.573608 0.882080\n0.587158 0.574097 0.882141\n0.630066 0.574707 0.882141\n0.675079 0.575104 0.882202\n0.721863 0.575531 0.882233\n0.770020 0.576172 0.882233\n0.819519 0.576599 0.882294\n0.869720 0.576996 0.882294\n0.915527 0.577362 0.882294\n0.000000 0.599579 0.881409\n0.005920 0.600159 0.881439\n0.031433 0.600616 0.881470\n0.063599 0.601166 0.881531\n0.091095 0.601807 0.881561\n0.116943 0.602264 0.881622\n0.140839 0.602783 0.881622\n0.163300 0.603455 0.881653\n0.184540 0.603912 0.881683\n0.204681 0.604462 0.881744\n0.224030 0.605103 0.881775\n0.243073 0.605560 0.881775\n0.261963 0.606018 0.881836\n0.280945 0.606689 0.881866\n0.300476 0.607117 0.881897\n0.320770 0.607513 0.881927\n0.342194 0.608154 0.881927\n0.364960 0.608673 0.881989\n0.389404 0.609070 0.882019\n0.415894 0.609497 0.882050\n0.444702 0.610107 0.882050\n0.476105 0.610535 0.882080\n0.510406 0.610992 0.882141\n0.547699 0.611633 0.882141\n0.588074 0.612030 0.882202\n0.630707 0.612427 0.882233\n0.675598 0.612762 0.882233\n0.722260 0.613403 0.882294\n0.770538 0.613739 0.882294\n0.819885 0.614105 0.882294\n0.869781 0.614471 0.882355\n0.915527 0.615051 0.882355\n0.000000 0.640778 0.881470\n0.008270 0.641205 0.881531\n0.033936 0.641663 0.881561\n0.066101 0.642334 0.881622\n0.093384 0.642761 0.881622\n0.118896 0.643188 0.881653\n0.142731 0.643860 0.881683\n0.165070 0.644257 0.881744\n0.185974 0.644684 0.881775\n0.205994 0.645142 0.881775\n0.225220 0.645721 0.881836\n0.244324 0.646149 0.881866\n0.263092 0.646545 0.881897\n0.282013 0.647186 0.881927\n0.301483 0.647583 0.881927\n0.321686 0.647980 0.881989\n0.343170 0.648346 0.882019\n0.365967 0.648956 0.882050\n0.390381 0.649353 0.882050\n0.416870 0.649689 0.882080\n0.445709 0.650116 0.882141\n0.476959 0.650696 0.882141\n0.511200 0.651001 0.882202\n0.548615 0.651398 0.882233\n0.588745 0.651733 0.882233\n0.631531 0.652283 0.882294\n0.676331 0.652618 0.882294\n0.722900 0.652924 0.882294\n0.770874 0.653259 0.882355\n0.820068 0.653564 0.882355\n0.869873 0.654114 0.882385\n0.915527 0.654449 0.882416\n0.000000 0.683868 0.881561\n0.010529 0.684235 0.881622\n0.036224 0.684845 0.881622\n0.068512 0.685211 0.881653\n0.095520 0.685516 0.881683\n0.120819 0.686005 0.881744\n0.144531 0.686523 0.881775\n0.166565 0.686920 0.881775\n0.187347 0.687225 0.881836\n0.207428 0.687775 0.881866\n0.226501 0.688171 0.881897\n0.245453 0.688568 0.881927\n0.264160 0.688904 0.881927\n0.283051 0.689209 0.881989\n0.302399 0.689819 0.882019\n0.322632 0.690125 0.882050\n0.344025 0.690491 0.882050\n0.366791 0.690826 0.882080\n0.391357 0.691223 0.882141\n0.417816 0.691681 0.882141\n0.446472 0.691956 0.882202\n0.477814 0.692261 0.882233\n0.512085 0.692566 0.882233\n0.549591 0.693146 0.882294\n0.589539 0.693390 0.882294\n0.632111 0.693665 0.882294\n0.676758 0.694000 0.882355\n0.723236 0.694214 0.882355\n0.771179 0.694733 0.882385\n0.820221 0.694977 0.882416\n0.869995 0.695221 0.882416\n0.915527 0.695465 0.882477\n0.000000 0.728546 0.881622\n0.012909 0.729034 0.881653\n0.038635 0.729340 0.881683\n0.071045 0.729614 0.881744\n0.097748 0.729919 0.881775\n0.122864 0.730225 0.881775\n0.146271 0.730804 0.881836\n0.168243 0.731079 0.881866\n0.188965 0.731415 0.881897\n0.208679 0.731659 0.881897\n0.227661 0.731964 0.881927\n0.246399 0.732513 0.881989\n0.265106 0.732758 0.882019\n0.284027 0.733032 0.882050\n0.303436 0.733307 0.882050\n0.323639 0.733582 0.882080\n0.345001 0.734070 0.882141\n0.367737 0.734344 0.882141\n0.392273 0.734589 0.882202\n0.418640 0.734863 0.882233\n0.447357 0.735077 0.882233\n0.478790 0.735413 0.882294\n0.513000 0.735779 0.882294\n0.550201 0.736053 0.882294\n0.590271 0.736267 0.882355\n0.632843 0.736450 0.882355\n0.677368 0.736725 0.882385\n0.723816 0.736908 0.882385\n0.771637 0.737183 0.882416\n0.820435 0.737518 0.882477\n0.870178 0.737793 0.882477\n0.915527 0.737946 0.882507\n0.000000 0.774414 0.881683\n0.015320 0.774689 0.881744\n0.040833 0.775116 0.881775\n0.073425 0.775360 0.881775\n0.099915 0.775574 0.881836\n0.124847 0.775818 0.881866\n0.147980 0.776062 0.881897\n0.169769 0.776215 0.881897\n0.190308 0.776550 0.881927\n0.209900 0.776917 0.881989\n0.228851 0.777161 0.882019\n0.247528 0.777374 0.882019\n0.266083 0.777618 0.882050\n0.284973 0.777802 0.882080\n0.304413 0.778015 0.882141\n0.324615 0.778168 0.882141\n0.345978 0.778564 0.882202\n0.368744 0.778809 0.882233\n0.393066 0.778992 0.882233\n0.419525 0.779205 0.882294\n0.448334 0.779388 0.882294\n0.479584 0.779572 0.882294\n0.513885 0.779755 0.882355\n0.551056 0.779968 0.882355\n0.590942 0.780212 0.882385\n0.633331 0.780487 0.882385\n0.677887 0.780670 0.882416\n0.724182 0.780792 0.882477\n0.771912 0.780945 0.882477\n0.820740 0.781128 0.882507\n0.870392 0.781250 0.882507\n0.915527 0.781403 0.882568\n0.000000 0.821045 0.881775\n0.017731 0.821259 0.881775\n0.043243 0.821564 0.881836\n0.075775 0.821808 0.881866\n0.102020 0.821899 0.881897\n0.126709 0.822052 0.881897\n0.149628 0.822266 0.881927\n0.171173 0.822388 0.881989\n0.191650 0.822510 0.882019\n0.211151 0.822693 0.882019\n0.230042 0.822815 0.882050\n0.248657 0.823120 0.882080\n0.267090 0.823364 0.882080\n0.285919 0.823456 0.882141\n0.305420 0.823608 0.882202\n0.325531 0.823792 0.882233\n0.346893 0.823853 0.882233\n0.369629 0.823975 0.882294\n0.394012 0.824127 0.882294\n0.420441 0.824249 0.882294\n0.449097 0.824402 0.882355\n0.480347 0.824463 0.882355\n0.514526 0.824615 0.882385\n0.551666 0.824921 0.882385\n0.591705 0.825043 0.882416\n0.634033 0.825165 0.882416\n0.678284 0.825256 0.882477\n0.724518 0.825378 0.882507\n0.772186 0.825439 0.882507\n0.820984 0.825531 0.882568\n0.870514 0.825623 0.882568\n0.915527 0.825714 0.882568\n0.000000 0.868378 0.881836\n0.019928 0.868439 0.881866\n0.045380 0.868530 0.881897\n0.077972 0.868622 0.881897\n0.104126 0.868652 0.881927\n0.128479 0.868744 0.881989\n0.151276 0.868835 0.882019\n0.172607 0.868896 0.882019\n0.192932 0.868988 0.882050\n0.212341 0.869049 0.882080\n0.231049 0.869110 0.882080\n0.249603 0.869171 0.882141\n0.268127 0.869263 0.882202\n0.286896 0.869293 0.882233\n0.306122 0.869385 0.882233\n0.326294 0.869446 0.882294\n0.347656 0.869568 0.882294\n0.370331 0.869720 0.882294\n0.394806 0.869781 0.882355\n0.421112 0.869934 0.882355\n0.449860 0.869995 0.882385\n0.481171 0.870087 0.882385\n0.515350 0.870087 0.882416\n0.552429 0.870148 0.882416\n0.592224 0.870178 0.882477\n0.634460 0.870270 0.882507\n0.678925 0.870331 0.882507\n0.725037 0.870361 0.882568\n0.772400 0.870361 0.882568\n0.821106 0.870422 0.882568\n0.870544 0.870422 0.882599\n0.915527 0.870483 0.882599\n0.000000 0.915527 0.881897\n0.022308 0.915527 0.881897\n0.049011 0.915527 0.881927\n0.080200 0.915527 0.881989\n0.106140 0.915527 0.882019\n0.130341 0.915527 0.882019\n0.152924 0.915527 0.882050\n0.174164 0.915527 0.882080\n0.194153 0.915527 0.882080\n0.213470 0.915527 0.882141\n0.232147 0.915527 0.882202\n0.250610 0.915527 0.882233\n0.269104 0.915527 0.882233\n0.287872 0.915527 0.882294\n0.307098 0.915527 0.882294\n0.327179 0.915527 0.882294\n0.348511 0.915527 0.882355\n0.371216 0.915527 0.882355\n0.395508 0.915527 0.882385\n0.421967 0.915527 0.882385\n0.450714 0.915527 0.882416\n0.481964 0.915527 0.882416\n0.515961 0.915527 0.882477\n0.553131 0.915527 0.882507\n0.592926 0.915527 0.882507\n0.635132 0.915527 0.882568\n0.679260 0.915527 0.882568\n0.725372 0.915527 0.882568\n0.772827 0.915527 0.882599\n0.821228 0.915527 0.882599\n0.870605 0.915527 0.882660\n0.915527 0.915527 0.882660\n0.000000 0.000000 0.915527\n0.000000 0.000000 0.915527\n0.000000 0.000000 0.915527\n0.006287 0.000000 0.915527\n0.033325 0.000000 0.915527\n0.067078 0.000000 0.915527\n0.095917 0.000000 0.915527\n0.122772 0.000000 0.915527\n0.147675 0.000000 0.915527\n0.171082 0.000000 0.915527\n0.193146 0.000000 0.915527\n0.214233 0.000000 0.915527\n0.234650 0.000000 0.915527\n0.254852 0.000000 0.915527\n0.275024 0.000000 0.915527\n0.295807 0.000000 0.915527\n0.317413 0.000000 0.915527\n0.340149 0.000000 0.915527\n0.364471 0.000000 0.915527\n0.390808 0.000000 0.915527\n0.419617 0.000000 0.915527\n0.451111 0.000000 0.915527\n0.485809 0.000000 0.915527\n0.523895 0.000000 0.915527\n0.565582 0.000000 0.915527\n0.610352 0.000000 0.915527\n0.657776 0.000000 0.915527\n0.707611 0.000061 0.915527\n0.759155 0.001312 0.915527\n0.812134 0.002808 0.915527\n0.865906 0.004211 0.915527\n0.915527 0.005585 0.915527\n0.000000 0.000000 0.915527\n0.000000 0.000000 0.915527\n0.000000 0.000000 0.915527\n0.007904 0.000000 0.915527\n0.034973 0.000000 0.915527\n0.068909 0.000000 0.915527\n0.097504 0.000244 0.915527\n0.124146 0.001251 0.915527\n0.149109 0.002350 0.915527\n0.172302 0.003448 0.915527\n0.194183 0.004639 0.915527\n0.215332 0.005768 0.915527\n0.235596 0.007050 0.915527\n0.255798 0.008331 0.915527\n0.276031 0.009644 0.915527\n0.296631 0.010986 0.915527\n0.318359 0.012329 0.915527\n0.341156 0.013641 0.915527\n0.365448 0.015045 0.915527\n0.391846 0.016418 0.915527\n0.420624 0.017761 0.915527\n0.452148 0.019287 0.915527\n0.486755 0.020752 0.915527\n0.524811 0.022156 0.915527\n0.566376 0.023651 0.915527\n0.611053 0.025085 0.915527\n0.658478 0.026581 0.915527\n0.708099 0.028198 0.915527\n0.759583 0.029694 0.915527\n0.812439 0.031189 0.915527\n0.866028 0.032684 0.915527\n0.915527 0.034180 0.915527\n0.000000 0.021851 0.915527\n0.000000 0.022858 0.915527\n0.000000 0.024017 0.915527\n0.009552 0.025085 0.915527\n0.036713 0.026276 0.915527\n0.070618 0.027435 0.915527\n0.099213 0.028656 0.915527\n0.125793 0.029877 0.915527\n0.150482 0.031097 0.915527\n0.173523 0.032349 0.915527\n0.195343 0.033630 0.915527\n0.216431 0.034882 0.915527\n0.236633 0.036194 0.915527\n0.256683 0.037537 0.915527\n0.276978 0.038788 0.915527\n0.297577 0.040192 0.915527\n0.319153 0.041565 0.915527\n0.342072 0.042908 0.915527\n0.366455 0.044312 0.915527\n0.392883 0.045715 0.915527\n0.421661 0.048157 0.915527\n0.453186 0.050598 0.915527\n0.487671 0.053223 0.915527\n0.525757 0.055908 0.915527\n0.567322 0.058716 0.915527\n0.612000 0.060333 0.915527\n0.659241 0.061920 0.915527\n0.708893 0.063568 0.915527\n0.760132 0.065186 0.915527\n0.812683 0.066803 0.915527\n0.866241 0.068420 0.915527\n0.915527 0.070038 0.915527\n0.000000 0.055573 0.915527\n0.000000 0.057770 0.915527\n0.000000 0.059326 0.915527\n0.011261 0.060516 0.915527\n0.038544 0.061829 0.915527\n0.072479 0.062988 0.915527\n0.100861 0.064331 0.915527\n0.127289 0.065704 0.915527\n0.151855 0.066986 0.915527\n0.174866 0.068359 0.915527\n0.196594 0.069794 0.915527\n0.217438 0.071228 0.915527\n0.237701 0.072601 0.915527\n0.257721 0.074036 0.915527\n0.277893 0.075500 0.915527\n0.298615 0.076935 0.915527\n0.320129 0.078400 0.915527\n0.342957 0.079865 0.915527\n0.367493 0.081360 0.915527\n0.393890 0.082794 0.915527\n0.422729 0.084381 0.915527\n0.454193 0.085876 0.915527\n0.488708 0.087341 0.915527\n0.526764 0.088898 0.915527\n0.568390 0.090424 0.915527\n0.612915 0.091919 0.915527\n0.660095 0.093445 0.915527\n0.709412 0.094971 0.915527\n0.760620 0.096497 0.915527\n0.813110 0.098022 0.915527\n0.866547 0.099548 0.915527\n0.915527 0.101074 0.915527\n0.000000 0.088989 0.915527\n0.000000 0.090118 0.915527\n0.000000 0.091156 0.915527\n0.013062 0.092438 0.915527\n0.040314 0.093689 0.915527\n0.074524 0.094940 0.915527\n0.102692 0.096191 0.915527\n0.128998 0.097412 0.915527\n0.153259 0.098602 0.915527\n0.176086 0.099945 0.915527\n0.197968 0.101288 0.915527\n0.218567 0.102600 0.915527\n0.238800 0.103973 0.915527\n0.258759 0.105255 0.915527\n0.278870 0.106537 0.915527\n0.299622 0.107849 0.915527\n0.321167 0.109253 0.915527\n0.343964 0.110657 0.915527\n0.368530 0.112061 0.915527\n0.394958 0.113464 0.915527\n0.423737 0.114838 0.915527\n0.455292 0.116272 0.915527\n0.489746 0.117706 0.915527\n0.527802 0.119110 0.915527\n0.569366 0.120300 0.915527\n0.613739 0.121704 0.915527\n0.660767 0.123108 0.915527\n0.710175 0.124542 0.915527\n0.761017 0.125946 0.915527\n0.813477 0.127411 0.915527\n0.866699 0.128723 0.915527\n0.915527 0.130157 0.915527\n0.000000 0.119446 0.915527\n0.000000 0.120514 0.915527\n0.000000 0.121613 0.915527\n0.015106 0.122772 0.915527\n0.042175 0.123962 0.915527\n0.076538 0.125122 0.915527\n0.104340 0.126129 0.915527\n0.130554 0.127380 0.915527\n0.154846 0.128601 0.915527\n0.177612 0.129852 0.915527\n0.199127 0.130890 0.915527\n0.219818 0.132141 0.915527\n0.239929 0.133392 0.915527\n0.259827 0.134705 0.915527\n0.279907 0.135895 0.915527\n0.300690 0.137024 0.915527\n0.322205 0.138275 0.915527\n0.345001 0.139526 0.915527\n0.369507 0.140869 0.915527\n0.395966 0.141968 0.915527\n0.424683 0.143250 0.915527\n0.456146 0.144531 0.915527\n0.490875 0.145813 0.915527\n0.528900 0.147125 0.915527\n0.570129 0.148346 0.915527\n0.614624 0.149475 0.915527\n0.661621 0.150787 0.915527\n0.710663 0.152069 0.915527\n0.761719 0.153351 0.915527\n0.813812 0.154633 0.915527\n0.866821 0.155701 0.915527\n0.915527 0.156982 0.915527\n0.000000 0.147797 0.915527\n0.000000 0.148895 0.915527\n0.000000 0.149994 0.915527\n0.017029 0.150879 0.915527\n0.044159 0.151978 0.915527\n0.078369 0.152985 0.915527\n0.106262 0.153992 0.915527\n0.132233 0.155151 0.915527\n0.156311 0.156250 0.915527\n0.178986 0.157227 0.915527\n0.200470 0.158356 0.915527\n0.220978 0.159515 0.915527\n0.241028 0.160461 0.915527\n0.260925 0.161621 0.915527\n0.280975 0.162781 0.915527\n0.301727 0.163788 0.915527\n0.323242 0.164886 0.915527\n0.346069 0.166107 0.915527\n0.370514 0.167267 0.915527\n0.396973 0.168213 0.915527\n0.425690 0.169434 0.915527\n0.457245 0.170593 0.915527\n0.491913 0.171753 0.915527\n0.529938 0.172760 0.915527\n0.571198 0.173950 0.915527\n0.615540 0.175110 0.915527\n0.662537 0.176086 0.915527\n0.711517 0.177246 0.915527\n0.762146 0.178436 0.915527\n0.814056 0.179443 0.915527\n0.867004 0.180573 0.915527\n0.915527 0.181732 0.915527\n0.000000 0.174011 0.915527\n0.000000 0.174957 0.915527\n0.000000 0.175781 0.915527\n0.018982 0.176849 0.915527\n0.046478 0.177643 0.915527\n0.080444 0.178650 0.915527\n0.108215 0.179657 0.915527\n0.133911 0.180542 0.915527\n0.157776 0.181610 0.915527\n0.180328 0.182434 0.915527\n0.201691 0.183502 0.915527\n0.222198 0.184601 0.915527\n0.242188 0.185455 0.915527\n0.262054 0.186493 0.915527\n0.282043 0.187592 0.915527\n0.302551 0.188446 0.915527\n0.324310 0.189545 0.915527\n0.347137 0.190369 0.915527\n0.371490 0.191467 0.915527\n0.397949 0.192566 0.915527\n0.426819 0.193420 0.915527\n0.458313 0.194519 0.915527\n0.492859 0.195618 0.915527\n0.530823 0.196472 0.915527\n0.572174 0.197571 0.915527\n0.616547 0.198608 0.915527\n0.663147 0.199524 0.915527\n0.712006 0.200562 0.915527\n0.762604 0.201447 0.915527\n0.814392 0.202545 0.915527\n0.867126 0.203613 0.915527\n0.915527 0.204437 0.915527\n0.000000 0.198059 0.915527\n0.000000 0.199005 0.915527\n0.000000 0.199707 0.915527\n0.021149 0.200653 0.915527\n0.050079 0.201416 0.915527\n0.082550 0.202362 0.915527\n0.110077 0.203278 0.915527\n0.135681 0.204132 0.915527\n0.159485 0.205078 0.915527\n0.181732 0.205872 0.915527\n0.202972 0.206879 0.915527\n0.223450 0.207611 0.915527\n0.243347 0.208588 0.915527\n0.263123 0.209442 0.915527\n0.283142 0.210358 0.915527\n0.303650 0.211365 0.915527\n0.325195 0.212189 0.915527\n0.348145 0.213165 0.915527\n0.372589 0.213959 0.915527\n0.399048 0.214935 0.915527\n0.427887 0.215912 0.915527\n0.459442 0.216797 0.915527\n0.493988 0.217773 0.915527\n0.531860 0.218536 0.915527\n0.573242 0.219513 0.915527\n0.617249 0.220337 0.915527\n0.664062 0.221375 0.915527\n0.712799 0.222260 0.915527\n0.763214 0.223114 0.915527\n0.814880 0.224060 0.915527\n0.867310 0.224854 0.915527\n0.915527 0.225861 0.915527\n0.000000 0.220551 0.915527\n0.000000 0.221375 0.915527\n0.000000 0.222107 0.915527\n0.023254 0.222931 0.915527\n0.053680 0.223602 0.915527\n0.084686 0.224487 0.915527\n0.111938 0.225189 0.915527\n0.137329 0.226135 0.915527\n0.160950 0.226898 0.915527\n0.183258 0.227722 0.915527\n0.204285 0.228546 0.915527\n0.224670 0.229340 0.915527\n0.244507 0.230072 0.915527\n0.264221 0.231018 0.915527\n0.284271 0.231873 0.915527\n0.304749 0.232666 0.915527\n0.326233 0.233582 0.915527\n0.349243 0.234314 0.915527\n0.373657 0.235229 0.915527\n0.400146 0.235931 0.915527\n0.428986 0.236908 0.915527\n0.460541 0.237610 0.915527\n0.494995 0.238525 0.915527\n0.532990 0.239288 0.915527\n0.574219 0.240204 0.915527\n0.618195 0.240936 0.915527\n0.664917 0.241852 0.915527\n0.713318 0.242554 0.915527\n0.763611 0.243469 0.915527\n0.815155 0.244171 0.915527\n0.867462 0.245056 0.915527\n0.915527 0.245819 0.915527\n0.000000 0.241760 0.915527\n0.000000 0.242371 0.915527\n0.000000 0.243256 0.915527\n0.025330 0.243866 0.915527\n0.057617 0.244690 0.915527\n0.086823 0.245361 0.915527\n0.113922 0.246002 0.915527\n0.139160 0.246857 0.915527\n0.162537 0.247498 0.915527\n0.184662 0.248352 0.915527\n0.205566 0.248993 0.915527\n0.225891 0.249878 0.915527\n0.245667 0.250549 0.915527\n0.265381 0.251434 0.915527\n0.285370 0.252075 0.915527\n0.305817 0.252960 0.915527\n0.327301 0.253601 0.915527\n0.350250 0.254517 0.915527\n0.374786 0.255188 0.915527\n0.401215 0.256073 0.915527\n0.430115 0.256744 0.915527\n0.461609 0.257477 0.915527\n0.496124 0.258270 0.915527\n0.534058 0.259064 0.915527\n0.575134 0.259796 0.915527\n0.619232 0.260620 0.915527\n0.665588 0.261353 0.915527\n0.714111 0.261993 0.915527\n0.764252 0.262878 0.915527\n0.815491 0.263489 0.915527\n0.867615 0.264404 0.915527\n0.915527 0.265015 0.915527\n0.000000 0.261841 0.915527\n0.000000 0.262665 0.915527\n0.001495 0.263184 0.915527\n0.027649 0.264038 0.915527\n0.060425 0.264648 0.915527\n0.088989 0.265228 0.915527\n0.115936 0.266083 0.915527\n0.140778 0.266663 0.915527\n0.164185 0.267456 0.915527\n0.186035 0.268097 0.915527\n0.206909 0.268890 0.915527\n0.227142 0.269531 0.915527\n0.246887 0.270264 0.915527\n0.266541 0.270966 0.915527\n0.286469 0.271606 0.915527\n0.306976 0.272430 0.915527\n0.328430 0.273041 0.915527\n0.351379 0.273926 0.915527\n0.375885 0.274536 0.915527\n0.402374 0.275360 0.915527\n0.431213 0.276001 0.915527\n0.462738 0.276733 0.915527\n0.497223 0.277435 0.915527\n0.535126 0.278046 0.915527\n0.576141 0.278900 0.915527\n0.620148 0.279541 0.915527\n0.666443 0.280365 0.915527\n0.714722 0.280945 0.915527\n0.764648 0.281769 0.915527\n0.815887 0.282379 0.915527\n0.867920 0.283112 0.915527\n0.915527 0.283844 0.915527\n0.000000 0.281494 0.915527\n0.000000 0.282227 0.915527\n0.003571 0.282776 0.915527\n0.029816 0.283569 0.915527\n0.062775 0.284119 0.915527\n0.091187 0.284698 0.915527\n0.117981 0.285492 0.915527\n0.142670 0.286041 0.915527\n0.165710 0.286865 0.915527\n0.187531 0.287415 0.915527\n0.208405 0.288239 0.915527\n0.228394 0.288818 0.915527\n0.248016 0.289490 0.915527\n0.267700 0.290192 0.915527\n0.287476 0.290802 0.915527\n0.308075 0.291565 0.915527\n0.329529 0.292206 0.915527\n0.352356 0.292908 0.915527\n0.376953 0.293549 0.915527\n0.403442 0.294159 0.915527\n0.432343 0.294983 0.915527\n0.463684 0.295563 0.915527\n0.498322 0.296356 0.915527\n0.536224 0.296936 0.915527\n0.577179 0.297516 0.915527\n0.620880 0.298340 0.915527\n0.667114 0.298920 0.915527\n0.715424 0.299744 0.915527\n0.765289 0.300293 0.915527\n0.816193 0.301086 0.915527\n0.868103 0.301636 0.915527\n0.915527 0.302216 0.915527\n0.000000 0.301117 0.915527\n0.000000 0.301636 0.915527\n0.005737 0.302155 0.915527\n0.032166 0.302917 0.915527\n0.065186 0.303467 0.915527\n0.093445 0.304047 0.915527\n0.119812 0.304810 0.915527\n0.144379 0.305359 0.915527\n0.167450 0.306122 0.915527\n0.189087 0.306732 0.915527\n0.209717 0.307220 0.915527\n0.229584 0.308044 0.915527\n0.249237 0.308594 0.915527\n0.268738 0.309357 0.915527\n0.288574 0.309967 0.915527\n0.309113 0.310547 0.915527\n0.330658 0.311310 0.915527\n0.353424 0.311859 0.915527\n0.378082 0.312653 0.915527\n0.404572 0.313202 0.915527\n0.433289 0.313782 0.915527\n0.464783 0.314575 0.915527\n0.499420 0.315125 0.915527\n0.537292 0.315918 0.915527\n0.578186 0.316498 0.915527\n0.621857 0.317139 0.915527\n0.667969 0.317780 0.915527\n0.716095 0.318359 0.915527\n0.765717 0.319061 0.915527\n0.816528 0.319672 0.915527\n0.868225 0.320221 0.915527\n0.915527 0.320984 0.915527\n0.000000 0.320679 0.915527\n0.000000 0.321198 0.915527\n0.007904 0.321716 0.915527\n0.034393 0.322479 0.915527\n0.067474 0.323029 0.915527\n0.095581 0.323700 0.915527\n0.121857 0.324310 0.915527\n0.146210 0.324860 0.915527\n0.169006 0.325653 0.915527\n0.190491 0.326172 0.915527\n0.211060 0.326721 0.915527\n0.230865 0.327515 0.915527\n0.250458 0.328064 0.915527\n0.269958 0.328796 0.915527\n0.289734 0.329346 0.915527\n0.310242 0.329926 0.915527\n0.331757 0.330688 0.915527\n0.354553 0.331268 0.915527\n0.379028 0.331940 0.915527\n0.405701 0.332581 0.915527\n0.434387 0.333099 0.915527\n0.465881 0.333862 0.915527\n0.500580 0.334412 0.915527\n0.538147 0.335175 0.915527\n0.579163 0.335754 0.915527\n0.622833 0.336273 0.915527\n0.668793 0.337036 0.915527\n0.716705 0.337585 0.915527\n0.766113 0.338135 0.915527\n0.816833 0.338867 0.915527\n0.868408 0.339417 0.915527\n0.915527 0.340118 0.915527\n0.000000 0.340790 0.915527\n0.000000 0.341248 0.915527\n0.010254 0.342041 0.915527\n0.036804 0.342529 0.915527\n0.069977 0.343079 0.915527\n0.097809 0.343842 0.915527\n0.123840 0.344360 0.915527\n0.148041 0.345093 0.915527\n0.170715 0.345642 0.915527\n0.191956 0.346191 0.915527\n0.212402 0.346954 0.915527\n0.232086 0.347504 0.915527\n0.251587 0.348083 0.915527\n0.271149 0.348816 0.915527\n0.290894 0.349335 0.915527\n0.311371 0.350128 0.915527\n0.332886 0.350647 0.915527\n0.355682 0.351196 0.915527\n0.380127 0.351959 0.915527\n0.406616 0.352478 0.915527\n0.435516 0.353088 0.915527\n0.466919 0.353790 0.915527\n0.501587 0.354370 0.915527\n0.539185 0.355103 0.915527\n0.580017 0.355621 0.915527\n0.623718 0.356201 0.915527\n0.669434 0.356903 0.915527\n0.717285 0.357422 0.915527\n0.766754 0.358002 0.915527\n0.817261 0.358704 0.915527\n0.868530 0.359222 0.915527\n0.915527 0.359955 0.915527\n0.000000 0.361816 0.915527\n0.000000 0.362366 0.915527\n0.012604 0.363068 0.915527\n0.039032 0.363647 0.915527\n0.072449 0.364166 0.915527\n0.100128 0.364929 0.915527\n0.125885 0.365448 0.915527\n0.149750 0.365967 0.915527\n0.172211 0.366730 0.915527\n0.193573 0.367310 0.915527\n0.213684 0.368011 0.915527\n0.233368 0.368561 0.915527\n0.252838 0.369110 0.915527\n0.272308 0.369873 0.915527\n0.291901 0.370361 0.915527\n0.312469 0.370941 0.915527\n0.333954 0.371704 0.915527\n0.356750 0.372253 0.915527\n0.381226 0.372986 0.915527\n0.407745 0.373535 0.915527\n0.436584 0.374054 0.915527\n0.468079 0.374847 0.915527\n0.502502 0.375366 0.915527\n0.540283 0.375916 0.915527\n0.581024 0.376617 0.915527\n0.624451 0.377167 0.915527\n0.670319 0.377899 0.915527\n0.717957 0.378418 0.915527\n0.767151 0.378937 0.915527\n0.817535 0.379639 0.915527\n0.868652 0.380157 0.915527\n0.915527 0.380646 0.915527\n0.000000 0.383972 0.915527\n0.000000 0.384705 0.915527\n0.015045 0.385254 0.915527\n0.041473 0.385925 0.915527\n0.074890 0.386505 0.915527\n0.102203 0.387054 0.915527\n0.127899 0.387756 0.915527\n0.151642 0.388336 0.915527\n0.173798 0.388855 0.915527\n0.194977 0.389648 0.915527\n0.215118 0.390167 0.915527\n0.234680 0.390839 0.915527\n0.253998 0.391479 0.915527\n0.273315 0.391998 0.915527\n0.292999 0.392731 0.915527\n0.313599 0.393311 0.915527\n0.335083 0.393829 0.915527\n0.357849 0.394623 0.915527\n0.382263 0.395142 0.915527\n0.408752 0.395782 0.915527\n0.437653 0.396423 0.915527\n0.469177 0.396912 0.915527\n0.503601 0.397705 0.915527\n0.541321 0.398254 0.915527\n0.582031 0.398743 0.915527\n0.625397 0.399506 0.915527\n0.670990 0.400024 0.915527\n0.718506 0.400482 0.915527\n0.767578 0.401215 0.915527\n0.817810 0.401733 0.915527\n0.868774 0.402344 0.915527\n0.915527 0.402954 0.915527\n0.000000 0.407898 0.915527\n0.000000 0.408417 0.915527\n0.017334 0.409180 0.915527\n0.043762 0.409729 0.915527\n0.077209 0.410217 0.915527\n0.104370 0.410980 0.915527\n0.129761 0.411560 0.915527\n0.153290 0.412048 0.915527\n0.175507 0.412872 0.915527\n0.196350 0.413391 0.915527\n0.216522 0.414124 0.915527\n0.235901 0.414703 0.915527\n0.255188 0.415222 0.915527\n0.274536 0.415955 0.915527\n0.294159 0.416534 0.915527\n0.314545 0.417053 0.915527\n0.336182 0.417816 0.915527\n0.359009 0.418335 0.915527\n0.383392 0.419098 0.915527\n0.409912 0.419586 0.915527\n0.438782 0.420197 0.915527\n0.470245 0.420929 0.915527\n0.504639 0.421448 0.915527\n0.542328 0.421936 0.915527\n0.583008 0.422668 0.915527\n0.626190 0.423187 0.915527\n0.671692 0.423737 0.915527\n0.719177 0.424438 0.915527\n0.768097 0.424896 0.915527\n0.818054 0.425629 0.915527\n0.869080 0.426147 0.915527\n0.915527 0.426575 0.915527\n0.000000 0.433472 0.915527\n0.000000 0.434204 0.915527\n0.019806 0.434753 0.915527\n0.046539 0.435333 0.915527\n0.079803 0.436035 0.915527\n0.106659 0.436584 0.915527\n0.131744 0.437347 0.915527\n0.155121 0.437897 0.915527\n0.177032 0.438416 0.915527\n0.197968 0.439178 0.915527\n0.217865 0.439758 0.915527\n0.237274 0.440338 0.915527\n0.256348 0.441040 0.915527\n0.275696 0.441559 0.915527\n0.295258 0.442352 0.915527\n0.315674 0.442871 0.915527\n0.337067 0.443390 0.915527\n0.359985 0.444183 0.915527\n0.384460 0.444672 0.915527\n0.410980 0.445221 0.915527\n0.439850 0.445984 0.915527\n0.471313 0.446442 0.915527\n0.505676 0.447174 0.915527\n0.543304 0.447693 0.915527\n0.583801 0.448242 0.915527\n0.627014 0.448944 0.915527\n0.672546 0.449463 0.915527\n0.719727 0.449951 0.915527\n0.768463 0.450592 0.915527\n0.818481 0.451141 0.915527\n0.869232 0.451630 0.915527\n0.915527 0.452301 0.915527\n0.000000 0.461334 0.915527\n0.000000 0.461945 0.915527\n0.022278 0.462646 0.915527\n0.050568 0.463226 0.915527\n0.082153 0.463959 0.915527\n0.108765 0.464508 0.915527\n0.133728 0.465057 0.915527\n0.156921 0.465820 0.915527\n0.178741 0.466339 0.915527\n0.199371 0.466888 0.915527\n0.219147 0.467651 0.915527\n0.238525 0.468201 0.915527\n0.257538 0.468903 0.915527\n0.276672 0.469482 0.915527\n0.296387 0.470001 0.915527\n0.316711 0.470764 0.915527\n0.338135 0.471283 0.915527\n0.360992 0.471924 0.915527\n0.385559 0.472534 0.915527\n0.412048 0.473083 0.915527\n0.440918 0.473633 0.915527\n0.472321 0.474304 0.915527\n0.506744 0.474823 0.915527\n0.544220 0.475525 0.915527\n0.584747 0.476044 0.915527\n0.627899 0.476562 0.915527\n0.673126 0.477264 0.915527\n0.720306 0.477722 0.915527\n0.769073 0.478241 0.915527\n0.818756 0.478790 0.915527\n0.869385 0.479401 0.915527\n0.915527 0.479797 0.915527\n0.000000 0.491638 0.915527\n0.000000 0.492401 0.915527\n0.024658 0.492950 0.915527\n0.054993 0.493561 0.915527\n0.084534 0.494263 0.915527\n0.110962 0.494781 0.915527\n0.135681 0.495544 0.915527\n0.158600 0.496063 0.915527\n0.180206 0.496643 0.915527\n0.200745 0.497345 0.915527\n0.220459 0.497925 0.915527\n0.239746 0.498413 0.915527\n0.258698 0.499207 0.915527\n0.277771 0.499695 0.915527\n0.297455 0.500427 0.915527\n0.317780 0.500977 0.915527\n0.339203 0.501495 0.915527\n0.362030 0.502167 0.915527\n0.386597 0.502777 0.915527\n0.413116 0.503265 0.915527\n0.441925 0.503967 0.915527\n0.473267 0.504517 0.915527\n0.507690 0.504974 0.915527\n0.545197 0.505676 0.915527\n0.585663 0.506195 0.915527\n0.628754 0.506683 0.915527\n0.673889 0.507355 0.915527\n0.720795 0.507843 0.915527\n0.769440 0.508270 0.915527\n0.819000 0.508881 0.915527\n0.869446 0.509399 0.915527\n0.915527 0.509857 0.915527\n0.000000 0.524811 0.915527\n0.001770 0.525330 0.915527\n0.027039 0.526093 0.915527\n0.058990 0.526611 0.915527\n0.086823 0.527374 0.915527\n0.113037 0.527863 0.915527\n0.137451 0.528412 0.915527\n0.160278 0.529175 0.915527\n0.181732 0.529694 0.915527\n0.202087 0.530243 0.915527\n0.221710 0.530945 0.915527\n0.240936 0.531464 0.915527\n0.259827 0.532013 0.915527\n0.278900 0.532715 0.915527\n0.298553 0.533264 0.915527\n0.318848 0.533875 0.915527\n0.340240 0.534454 0.915527\n0.363037 0.535004 0.915527\n0.387695 0.535706 0.915527\n0.414124 0.536224 0.915527\n0.442871 0.536682 0.915527\n0.474243 0.537201 0.915527\n0.508575 0.537903 0.915527\n0.546173 0.538330 0.915527\n0.586517 0.538940 0.915527\n0.629395 0.539520 0.915527\n0.674438 0.539948 0.915527\n0.721497 0.540466 0.915527\n0.769775 0.541046 0.915527\n0.819214 0.541504 0.915527\n0.869629 0.541931 0.915527\n0.915527 0.542511 0.915527\n0.000000 0.560883 0.915527\n0.003937 0.561523 0.915527\n0.029572 0.562042 0.915527\n0.061554 0.562744 0.915527\n0.089264 0.563293 0.915527\n0.115173 0.563782 0.915527\n0.139404 0.564514 0.915527\n0.161987 0.565033 0.915527\n0.183380 0.565521 0.915527\n0.203461 0.566254 0.915527\n0.223053 0.566772 0.915527\n0.242126 0.567230 0.915527\n0.260986 0.567993 0.915527\n0.279999 0.568451 0.915527\n0.299622 0.568909 0.915527\n0.319885 0.569672 0.915527\n0.341309 0.570099 0.915527\n0.364105 0.570587 0.915527\n0.388641 0.571320 0.915527\n0.415070 0.571777 0.915527\n0.443787 0.572174 0.915527\n0.475250 0.572876 0.915527\n0.509583 0.573395 0.915527\n0.547119 0.573792 0.915527\n0.587280 0.574402 0.915527\n0.630249 0.574860 0.915527\n0.675171 0.575317 0.915527\n0.721893 0.575714 0.915527\n0.770081 0.576324 0.915527\n0.819580 0.576752 0.915527\n0.869720 0.577118 0.915527\n0.915527 0.577545 0.915527\n0.000000 0.599823 0.915527\n0.006256 0.600342 0.915527\n0.031982 0.600830 0.915527\n0.064056 0.601471 0.915527\n0.091522 0.601990 0.915527\n0.117279 0.602448 0.915527\n0.141235 0.603149 0.915527\n0.163666 0.603577 0.915527\n0.184784 0.604126 0.915527\n0.204987 0.604767 0.915527\n0.224213 0.605225 0.915527\n0.243317 0.605713 0.915527\n0.262115 0.606323 0.915527\n0.281097 0.606812 0.915527\n0.300690 0.607300 0.915527\n0.320953 0.607727 0.915527\n0.342377 0.608368 0.915527\n0.365082 0.608795 0.915527\n0.389496 0.609222 0.915527\n0.416016 0.609894 0.915527\n0.444824 0.610291 0.915527\n0.476257 0.610687 0.915527\n0.510559 0.611176 0.915527\n0.547852 0.611755 0.915527\n0.588196 0.612183 0.915527\n0.630798 0.612549 0.915527\n0.675659 0.612915 0.915527\n0.722473 0.613495 0.915527\n0.770630 0.613892 0.915527\n0.819916 0.614227 0.915527\n0.869781 0.614563 0.915527\n0.915527 0.615173 0.915527\n0.000000 0.640930 0.915527\n0.008636 0.641357 0.915527\n0.034302 0.641876 0.915527\n0.066467 0.642487 0.915527\n0.093903 0.642883 0.915527\n0.119324 0.643311 0.915527\n0.142975 0.643982 0.915527\n0.165314 0.644409 0.915527\n0.186249 0.644836 0.915527\n0.206299 0.645477 0.915527\n0.225525 0.645874 0.915527\n0.244476 0.646332 0.915527\n0.263214 0.646698 0.915527\n0.282166 0.647339 0.915527\n0.301727 0.647736 0.915527\n0.321960 0.648102 0.915527\n0.343384 0.648499 0.915527\n0.366150 0.649139 0.915527\n0.390503 0.649475 0.915527\n0.416992 0.649872 0.915527\n0.445831 0.650299 0.915527\n0.477234 0.650787 0.915527\n0.511444 0.651184 0.915527\n0.548767 0.651489 0.915527\n0.588989 0.651917 0.915527\n0.631622 0.652435 0.915527\n0.676392 0.652740 0.915527\n0.722961 0.653076 0.915527\n0.770905 0.653381 0.915527\n0.820129 0.653748 0.915527\n0.869904 0.654205 0.915527\n0.915527 0.654510 0.915527\n0.000000 0.683960 0.915527\n0.011047 0.684540 0.915527\n0.036774 0.684937 0.915527\n0.069061 0.685333 0.915527\n0.096100 0.685730 0.915527\n0.121368 0.686340 0.915527\n0.144897 0.686646 0.915527\n0.166840 0.687042 0.915527\n0.187683 0.687378 0.915527\n0.207581 0.687988 0.915527\n0.226868 0.688324 0.915527\n0.245605 0.688660 0.915527\n0.264313 0.689026 0.915527\n0.283234 0.689331 0.915527\n0.302521 0.689911 0.915527\n0.322906 0.690247 0.915527\n0.344177 0.690582 0.915527\n0.367126 0.690887 0.915527\n0.391510 0.691498 0.915527\n0.417999 0.691803 0.915527\n0.446747 0.692108 0.915527\n0.477997 0.692383 0.915527\n0.512207 0.692719 0.915527\n0.549683 0.693207 0.915527\n0.589630 0.693481 0.915527\n0.632263 0.693756 0.915527\n0.676849 0.694092 0.915527\n0.723328 0.694366 0.915527\n0.771210 0.694824 0.915527\n0.820282 0.695129 0.915527\n0.869995 0.695343 0.915527\n0.915527 0.695557 0.915527\n0.000000 0.728821 0.915527\n0.013458 0.729187 0.915527\n0.039001 0.729462 0.915527\n0.071472 0.729767 0.915527\n0.098267 0.730072 0.915527\n0.123169 0.730438 0.915527\n0.146576 0.730896 0.915527\n0.168518 0.731171 0.915527\n0.189178 0.731506 0.915527\n0.208862 0.731781 0.915527\n0.227997 0.732208 0.915527\n0.246735 0.732574 0.915527\n0.265381 0.732819 0.915527\n0.284271 0.733154 0.915527\n0.303558 0.733398 0.915527\n0.323761 0.733734 0.915527\n0.345154 0.734161 0.915527\n0.367889 0.734436 0.915527\n0.392487 0.734711 0.915527\n0.418945 0.734955 0.915527\n0.447510 0.735168 0.915527\n0.478912 0.735596 0.915527\n0.513153 0.735870 0.915527\n0.550262 0.736145 0.915527\n0.590485 0.736359 0.915527\n0.632935 0.736572 0.915527\n0.677551 0.736786 0.915527\n0.723907 0.737030 0.915527\n0.771698 0.737366 0.915527\n0.820496 0.737640 0.915527\n0.870178 0.737854 0.915527\n0.915527 0.738037 0.915527\n0.000000 0.774506 0.915527\n0.015717 0.774811 0.915527\n0.041382 0.775238 0.915527\n0.073761 0.775452 0.915527\n0.100433 0.775665 0.915527\n0.125153 0.775879 0.915527\n0.148346 0.776123 0.915527\n0.169983 0.776337 0.915527\n0.190491 0.776764 0.915527\n0.210114 0.777008 0.915527\n0.229187 0.777222 0.915527\n0.247864 0.777496 0.915527\n0.266418 0.777649 0.915527\n0.285309 0.777863 0.915527\n0.304535 0.778076 0.915527\n0.324738 0.778259 0.915527\n0.346130 0.778625 0.915527\n0.368866 0.778900 0.915527\n0.393280 0.779114 0.915527\n0.419617 0.779266 0.915527\n0.448456 0.779449 0.915527\n0.479797 0.779633 0.915527\n0.514038 0.779816 0.915527\n0.551178 0.780029 0.915527\n0.591003 0.780426 0.915527\n0.633392 0.780518 0.915527\n0.677948 0.780701 0.915527\n0.724213 0.780853 0.915527\n0.771973 0.781036 0.915527\n0.820740 0.781128 0.915527\n0.870392 0.781311 0.915527\n0.915527 0.781433 0.915527\n0.000000 0.821136 0.915527\n0.018097 0.821381 0.915527\n0.043579 0.821716 0.915527\n0.076141 0.821808 0.915527\n0.102539 0.821960 0.915527\n0.127106 0.822144 0.915527\n0.149963 0.822296 0.915527\n0.171509 0.822449 0.915527\n0.191803 0.822540 0.915527\n0.211304 0.822754 0.915527\n0.230377 0.822906 0.915527\n0.248932 0.823151 0.915527\n0.267365 0.823395 0.915527\n0.286133 0.823517 0.915527\n0.305542 0.823700 0.915527\n0.325684 0.823792 0.915527\n0.347046 0.823944 0.915527\n0.369781 0.824036 0.915527\n0.394104 0.824158 0.915527\n0.420593 0.824310 0.915527\n0.449341 0.824402 0.915527\n0.480469 0.824554 0.915527\n0.514648 0.824768 0.915527\n0.551910 0.825012 0.915527\n0.591797 0.825104 0.915527\n0.634125 0.825165 0.915527\n0.678406 0.825287 0.915527\n0.724640 0.825409 0.915527\n0.772217 0.825470 0.915527\n0.821014 0.825562 0.915527\n0.870514 0.825653 0.915527\n0.915527 0.825775 0.915527\n0.000000 0.868378 0.915527\n0.020447 0.868469 0.915527\n0.045837 0.868561 0.915527\n0.078369 0.868622 0.915527\n0.104401 0.868713 0.915527\n0.128876 0.868774 0.915527\n0.151642 0.868835 0.915527\n0.173004 0.868958 0.915527\n0.193207 0.868988 0.915527\n0.212524 0.869110 0.915527\n0.231323 0.869110 0.915527\n0.249756 0.869202 0.915527\n0.268280 0.869263 0.915527\n0.287018 0.869354 0.915527\n0.306305 0.869385 0.915527\n0.326538 0.869446 0.915527\n0.347931 0.869568 0.915527\n0.370575 0.869720 0.915527\n0.395020 0.869873 0.915527\n0.421326 0.869934 0.915527\n0.449982 0.869995 0.915527\n0.481323 0.870087 0.915527\n0.515472 0.870148 0.915527\n0.552521 0.870178 0.915527\n0.592316 0.870239 0.915527\n0.634583 0.870270 0.915527\n0.678955 0.870331 0.915527\n0.725098 0.870361 0.915527\n0.772461 0.870422 0.915527\n0.821136 0.870422 0.915527\n0.870544 0.870483 0.915527\n0.915527 0.870483 0.915527\n0.000000 0.915527 0.915527\n0.022644 0.915527 0.915527\n0.049927 0.915527 0.915527\n0.080597 0.915527 0.915527\n0.106415 0.915527 0.915527\n0.130585 0.915527 0.915527\n0.153107 0.915527 0.915527\n0.174408 0.915527 0.915527\n0.194366 0.915527 0.915527\n0.213654 0.915527 0.915527\n0.232391 0.915527 0.915527\n0.250793 0.915527 0.915527\n0.269257 0.915527 0.915527\n0.287994 0.915527 0.915527\n0.307190 0.915527 0.915527\n0.327301 0.915527 0.915527\n0.348633 0.915527 0.915527\n0.371307 0.915527 0.915527\n0.395660 0.915527 0.915527\n0.422089 0.915527 0.915527\n0.450836 0.915527 0.915527\n0.482147 0.915527 0.915527\n0.516113 0.915527 0.915527\n0.553253 0.915527 0.915527\n0.592987 0.915527 0.915527\n0.635223 0.915527 0.915527\n0.679291 0.915527 0.915527\n0.725403 0.915527 0.915527\n0.772888 0.915527 0.915527\n0.821320 0.915527 0.915527\n0.870636 0.915527 0.915527\n0.915527 0.915527 0.915527\n"
  },
  {
    "path": "packages/sdk/public/resource/luts/Presetpro-Cinematic.3dl",
    "content": "#Created by: Adobe Photoshop Export Color Lookup Plugin\n#Copyright: (C) Copyright 2018 https://www.presetpro.com and Tim Martin\n#Description: Presetpro - Cinematic\n0 33 66 99 132 165 198 231 264 297 330 363 396 429 462 495 528 561 594 627 660 693 726 759 792 825 858 891 924 957 990 1023\n418 385 434\n418 385 435\n418 369 484\n451 355 518\n466 369 594\n482 369 658\n495 353 697\n509 337 762\n518 341 864\n535 342 929\n556 358 1016\n588 343 1088\n620 347 1195\n649 337 1302\n689 352 1442\n706 321 1548\n723 329 1687\n780 305 1818\n824 286 1948\n881 257 2091\n914 214 2225\n1007 171 2415\n1089 90 2562\n1148 8 2709\n1251 0 2885\n1340 0 3010\n1438 0 3167\n1533 14 3316\n1664 14 3477\n1763 0 3608\n1892 0 3787\n2007 0 3918\n449 370 433\n418 386 434\n417 386 468\n418 386 563\n422 385 598\n454 390 663\n470 389 716\n489 396 791\n534 389 862\n551 390 941\n585 397 1017\n595 386 1104\n630 376 1217\n665 376 1322\n712 377 1449\n723 363 1580\n755 370 1687\n796 353 1818\n828 337 1958\n880 306 2111\n926 263 2264\n1001 204 2400\n1088 155 2572\n1148 53 2718\n1245 0 2884\n1324 12 3023\n1453 15 3156\n1548 0 3327\n1678 0 3477\n1777 0 3625\n1892 0 3757\n2007 0 3887\n433 435 404\n434 435 467\n432 451 514\n418 420 547\n436 434 627\n467 435 664\n499 421 741\n505 426 786\n561 420 860\n557 428 945\n609 425 1044\n611 429 1126\n632 428 1250\n675 419 1334\n695 420 1464\n721 395 1565\n755 395 1703\n787 395 1833\n820 377 1966\n871 346 2106\n935 306 2268\n994 254 2430\n1083 204 2593\n1145 126 2748\n1218 37 2868\n1348 0 3048\n1446 13 3185\n1522 0 3332\n1648 0 3466\n1775 0 3624\n1874 16 3787\n2007 1 3921\n385 486 421\n400 502 469\n403 486 532\n405 485 549\n434 483 629\n478 486 678\n454 485 730\n518 501 799\n522 490 864\n577 485 953\n572 480 1036\n596 483 1146\n626 479 1260\n669 458 1354\n696 469 1473\n714 466 1603\n741 459 1710\n794 437 1844\n843 428 2003\n853 403 2105\n923 378 2275\n993 329 2428\n1075 269 2594\n1142 204 2740\n1218 112 2905\n1311 11 3033\n1408 3 3194\n1522 0 3335\n1643 0 3461\n1759 0 3610\n1890 2 3759\n2006 0 3918\n385 566 464\n418 566 513\n450 552 548\n434 566 595\n464 548 616\n466 537 684\n454 547 769\n494 550 828\n520 536 896\n590 550 996\n595 537 1069\n616 539 1157\n646 514 1279\n644 518 1364\n685 520 1499\n710 518 1608\n743 504 1742\n791 502 1852\n822 482 1987\n863 452 2139\n901 413 2278\n977 402 2458\n1055 362 2597\n1140 294 2752\n1208 224 2882\n1316 128 3056\n1395 27 3199\n1503 0 3334\n1603 14 3462\n1731 0 3622\n1846 15 3787\n1977 0 3909\n367 634 471\n391 631 519\n431 631 565\n449 621 604\n461 632 648\n455 631 728\n469 602 761\n495 599 829\n499 587 901\n518 588 991\n554 613 1064\n594 596 1192\n614 596 1293\n630 595 1393\n666 603 1515\n687 584 1625\n734 567 1741\n770 572 1891\n803 560 2019\n842 519 2146\n904 501 2300\n953 470 2463\n1016 435 2604\n1139 390 2775\n1197 346 2905\n1295 278 3049\n1398 173 3193\n1498 52 3350\n1590 13 3491\n1726 0 3626\n1817 13 3772\n1954 16 3948\n356 716 517\n386 713 560\n431 712 609\n434 700 649\n460 700 694\n454 710 717\n456 697 809\n485 684 874\n486 681 917\n498 676 1011\n514 675 1120\n542 651 1205\n575 661 1310\n620 677 1417\n646 669 1526\n663 652 1642\n730 646 1771\n747 629 1910\n783 616 2022\n820 607 2162\n878 568 2319\n949 557 2464\n1004 519 2620\n1076 501 2765\n1165 441 2902\n1260 404 3065\n1385 341 3209\n1466 262 3343\n1580 126 3505\n1695 27 3616\n1822 0 3800\n1940 3 3934\n334 782 537\n373 791 582\n399 797 593\n437 782 666\n439 767 724\n453 782 750\n468 794 816\n469 774 874\n478 782 979\n499 754 1054\n510 760 1138\n496 737 1224\n513 726 1316\n529 736 1438\n607 717 1553\n631 730 1673\n652 722 1796\n715 721 1931\n741 711 2046\n781 679 2199\n843 660 2336\n915 635 2495\n964 617 2636\n1056 593 2786\n1142 557 2928\n1230 518 3055\n1340 459 3191\n1419 416 3356\n1544 353 3509\n1674 265 3641\n1785 191 3790\n1904 100 3927\n313 892 566\n366 875 627\n374 864 658\n387 877 680\n418 870 723\n418 892 804\n409 880 821\n461 888 911\n462 871 960\n474 852 1054\n466 851 1147\n478 846 1243\n446 827 1335\n467 825 1466\n489 802 1579\n542 807 1698\n598 808 1815\n643 808 1934\n672 788 2069\n724 783 2213\n792 761 2363\n850 724 2521\n913 727 2663\n999 695 2797\n1081 671 2933\n1171 636 3068\n1274 597 3202\n1385 553 3348\n1499 497 3502\n1601 467 3652\n1744 423 3804\n1883 378 3927\n232 978 599\n312 966 652\n333 978 668\n362 974 700\n371 966 738\n413 964 808\n420 979 864\n401 993 927\n424 989 1004\n418 966 1083\n451 961 1165\n433 959 1252\n423 934 1356\n418 927 1487\n378 936 1598\n380 900 1716\n401 888 1825\n527 901 1958\n587 891 2102\n649 892 2233\n714 860 2364\n797 838 2506\n849 828 2670\n929 812 2812\n1023 789 2964\n1117 756 3067\n1220 737 3222\n1343 700 3369\n1467 653 3515\n1562 618 3624\n1717 595 3810\n1837 585 3950\n97 1097 631\n205 1071 668\n243 1064 697\n291 1090 729\n331 1088 791\n330 1083 827\n324 1098 882\n349 1102 946\n313 1107 1013\n342 1103 1098\n359 1081 1204\n359 1086 1306\n322 1075 1385\n310 1051 1503\n288 1048 1614\n266 1033 1731\n253 1016 1856\n265 984 1981\n338 966 2110\n497 995 2262\n595 984 2402\n660 974 2522\n752 941 2667\n850 922 2808\n966 906 2964\n1040 872 3095\n1162 842 3230\n1251 837 3364\n1382 803 3516\n1505 781 3647\n1646 759 3819\n1772 754 3940\n0 1216 670\n47 1200 717\n85 1196 729\n131 1202 772\n116 1221 788\n169 1227 850\n198 1217 914\n177 1213 967\n191 1232 1059\n159 1222 1112\n236 1217 1200\n223 1227 1308\n176 1227 1412\n175 1188 1536\n138 1177 1643\n80 1163 1746\n54 1139 1893\n62 1122 2028\n59 1097 2144\n80 1067 2309\n271 1082 2431\n475 1093 2560\n611 1082 2701\n720 1055 2836\n850 1029 2970\n948 1000 3093\n1065 994 3244\n1181 967 3374\n1330 956 3541\n1430 929 3656\n1592 906 3788\n1713 922 3950\n0 1342 707\n0 1331 745\n10 1342 789\n0 1332 801\n0 1338 841\n0 1348 892\n3 1348 960\n10 1354 999\n10 1346 1092\n5 1356 1167\n15 1358 1273\n69 1359 1331\n20 1358 1441\n0 1342 1555\n0 1325 1666\n6 1316 1815\n2 1299 1910\n3 1266 2050\n13 1249 2192\n6 1219 2348\n18 1177 2471\n51 1169 2598\n295 1190 2718\n534 1181 2858\n667 1181 2956\n824 1139 3109\n956 1119 3251\n1091 1099 3394\n1206 1089 3499\n1372 1069 3671\n1502 1065 3811\n1645 1075 3918\n9 1466 739\n7 1472 768\n0 1473 795\n0 1471 827\n0 1477 887\n0 1492 936\n0 1488 984\n0 1497 1060\n0 1498 1140\n7 1490 1206\n0 1503 1298\n0 1511 1387\n0 1505 1487\n0 1479 1601\n0 1474 1717\n8 1455 1821\n18 1426 1952\n7 1408 2081\n0 1405 2212\n0 1383 2359\n0 1354 2496\n0 1335 2624\n5 1293 2757\n73 1281 2883\n388 1312 3001\n624 1289 3125\n784 1266 3252\n923 1233 3373\n1091 1231 3516\n1238 1223 3672\n1400 1222 3818\n1563 1241 3957\n14 1603 762\n0 1610 794\n0 1617 836\n0 1626 867\n7 1616 907\n0 1635 953\n3 1623 1001\n0 1635 1074\n0 1636 1163\n0 1631 1240\n0 1651 1343\n0 1640 1426\n0 1664 1549\n0 1651 1636\n7 1635 1738\n16 1603 1861\n15 1587 1975\n9 1579 2105\n7 1574 2242\n14 1552 2373\n10 1519 2511\n4 1499 2633\n0 1466 2767\n7 1433 2894\n10 1394 3021\n164 1401 3163\n533 1432 3246\n770 1399 3399\n914 1385 3528\n1092 1369 3664\n1270 1377 3827\n1425 1391 3975\n17 1740 771\n7 1748 818\n0 1765 859\n8 1749 894\n4 1743 949\n0 1765 987\n8 1765 1074\n4 1777 1135\n4 1778 1212\n0 1781 1285\n3 1808 1388\n6 1789 1470\n23 1804 1578\n1 1813 1690\n24 1782 1787\n8 1773 1902\n15 1765 2047\n8 1750 2108\n0 1732 2277\n14 1709 2399\n21 1704 2544\n13 1679 2650\n0 1633 2783\n4 1612 2906\n0 1582 3049\n0 1546 3172\n0 1526 3296\n348 1561 3414\n740 1556 3526\n936 1558 3675\n1106 1540 3804\n1310 1557 3967\n25 1881 803\n0 1897 821\n0 1889 884\n0 1920 924\n15 1912 968\n29 1918 1026\n5 1907 1073\n0 1917 1152\n12 1916 1233\n0 1920 1302\n0 1936 1415\n0 1931 1511\n6 1944 1608\n8 1951 1706\n1 1960 1828\n15 1938 1911\n0 1929 2041\n0 1905 2170\n0 1897 2278\n0 1890 2415\n8 1864 2547\n0 1843 2654\n3 1813 2757\n8 1781 2926\n24 1740 3037\n0 1721 3165\n0 1696 3289\n0 1672 3423\n167 1671 3562\n744 1744 3688\n1023 1744 3811\n1228 1736 3974\n16 2035 828\n0 2043 854\n0 2051 894\n7 2053 954\n7 2061 999\n3 2060 1055\n13 2067 1121\n9 2073 1177\n13 2082 1281\n5 2075 1353\n0 2087 1445\n16 2088 1543\n9 2077 1624\n9 2091 1722\n7 2100 1860\n1 2123 1969\n16 2100 2065\n14 2076 2196\n15 2059 2311\n2 2065 2426\n1 2037 2554\n9 2012 2683\n0 1987 2807\n18 1967 2912\n7 1944 3055\n3 1891 3170\n9 1873 3316\n5 1857 3439\n0 1830 3575\n32 1816 3718\n722 1895 3848\n1178 1989 3958\n7 2189 851\n0 2199 893\n15 2213 949\n14 2207 976\n0 2212 1032\n7 2210 1093\n0 2220 1153\n4 2224 1241\n20 2225 1306\n5 2219 1393\n16 2215 1489\n6 2231 1583\n7 2234 1676\n13 2240 1773\n15 2239 1880\n18 2254 2003\n7 2285 2137\n25 2240 2235\n16 2237 2357\n26 2230 2467\n1 2214 2572\n5 2182 2687\n9 2157 2807\n19 2141 2960\n16 2106 3056\n3 2088 3155\n19 2054 3323\n5 2031 3440\n5 2017 3575\n0 2006 3714\n9 1999 3829\n798 2065 3976\n10 2342 899\n0 2353 926\n0 2352 972\n6 2362 1025\n14 2376 1080\n12 2372 1154\n16 2372 1205\n12 2378 1269\n0 2384 1349\n0 2388 1442\n12 2389 1519\n10 2390 1622\n7 2387 1705\n3 2388 1803\n0 2389 1911\n2 2400 2016\n1 2402 2155\n1 2417 2292\n0 2384 2366\n0 2378 2468\n6 2373 2606\n6 2345 2714\n11 2317 2833\n4 2298 2964\n0 2272 3079\n3 2246 3199\n13 2223 3324\n4 2199 3458\n5 2171 3569\n0 2169 3713\n22 2173 3852\n529 2214 3983\n6 2504 952\n6 2499 965\n24 2510 1043\n23 2500 1064\n0 2515 1139\n6 2504 1194\n9 2523 1278\n7 2519 1329\n10 2524 1410\n10 2520 1480\n11 2520 1573\n0 2525 1660\n4 2531 1756\n10 2519 1842\n32 2531 1957\n8 2531 2064\n0 2542 2175\n12 2547 2317\n6 2557 2435\n26 2521 2509\n32 2503 2616\n0 2497 2746\n0 2481 2855\n0 2446 2965\n0 2432 3100\n0 2416 3207\n3 2386 3324\n2 2364 3442\n20 2357 3579\n1 2343 3723\n0 2359 3863\n239 2392 3999\n0 2645 1012\n15 2655 1060\n1 2652 1088\n5 2636 1115\n5 2659 1164\n11 2666 1242\n0 2664 1294\n4 2660 1371\n5 2658 1447\n5 2661 1534\n0 2666 1600\n21 2661 1692\n11 2650 1812\n0 2668 1896\n0 2670 1988\n0 2669 2097\n3 2666 2206\n0 2663 2314\n5 2701 2441\n11 2672 2567\n27 2645 2664\n16 2629 2768\n5 2623 2860\n9 2608 2986\n0 2584 3115\n0 2562 3207\n0 2546 3324\n11 2528 3463\n11 2497 3587\n11 2507 3735\n11 2522 3870\n11 2549 3994\n9 2776 1067\n11 2792 1110\n12 2788 1143\n1 2770 1168\n21 2788 1250\n22 2780 1313\n13 2789 1370\n12 2779 1439\n0 2808 1504\n0 2801 1588\n0 2798 1660\n0 2796 1746\n0 2792 1838\n5 2808 1941\n7 2804 2028\n4 2792 2121\n0 2795 2242\n9 2817 2359\n16 2808 2458\n5 2822 2591\n26 2789 2679\n0 2780 2768\n9 2739 2904\n0 2759 3013\n5 2715 3118\n3 2707 3244\n0 2693 3357\n0 2665 3472\n13 2663 3605\n11 2656 3739\n4 2670 3864\n9 2718 4026\n0 2910 1144\n11 2911 1184\n5 2923 1199\n0 2916 1263\n10 2920 1318\n0 2926 1389\n9 2922 1446\n8 2919 1484\n8 2938 1574\n5 2931 1636\n21 2926 1728\n8 2921 1801\n6 2922 1887\n0 2934 1992\n0 2934 2076\n0 2914 2167\n0 2919 2249\n9 2926 2371\n3 2936 2485\n0 2918 2599\n12 2941 2752\n11 2933 2817\n0 2894 2901\n16 2866 2995\n16 2858 3145\n0 2857 3236\n8 2852 3372\n0 2824 3495\n0 2820 3611\n15 2798 3740\n0 2837 3880\n8 2882 4007\n0 3033 1210\n7 3052 1279\n0 3040 1310\n7 3049 1357\n0 3037 1406\n0 3043 1453\n0 3062 1511\n4 3033 1563\n4 3049 1640\n7 3048 1689\n23 3064 1783\n4 3065 1855\n4 3056 1942\n4 3065 2012\n11 3054 2111\n8 3045 2188\n4 3040 2290\n0 3060 2394\n12 3047 2497\n12 3053 2634\n10 3056 2729\n4 3067 2861\n0 3048 2937\n0 3001 3047\n12 2976 3137\n3 2985 3260\n4 2960 3378\n12 2983 3514\n1 2970 3638\n25 2957 3747\n0 2976 3882\n164 3021 4027\n0 3180 1324\n4 3168 1359\n12 3183 1380\n0 3180 1436\n3 3192 1502\n0 3173 1559\n0 3183 1619\n0 3187 1687\n0 3189 1707\n3 3195 1785\n0 3183 1842\n0 3181 1894\n6 3180 1965\n0 3190 2060\n0 3189 2125\n0 3183 2223\n0 3186 2315\n4 3185 2423\n13 3183 2521\n0 3167 2628\n3 3168 2735\n3 3170 2868\n13 3199 3013\n0 3169 3083\n13 3108 3150\n16 3119 3280\n13 3092 3396\n13 3101 3511\n0 3101 3636\n15 3104 3768\n1 3131 3913\n418 3161 4031\n0 3298 1440\n13 3298 1482\n0 3316 1490\n24 3312 1561\n3 3311 1575\n0 3303 1649\n0 3317 1737\n4 3327 1754\n9 3307 1811\n5 3314 1871\n0 3316 1916\n0 3322 1989\n0 3314 2049\n0 3319 2115\n0 3324 2186\n10 3314 2275\n5 3298 2359\n13 3305 2467\n4 3310 2558\n0 3320 2679\n0 3295 2782\n0 3289 2870\n3 3330 2996\n4 3316 3119\n12 3256 3191\n1 3237 3291\n0 3234 3424\n2 3234 3522\n3 3219 3627\n17 3235 3781\n2 3254 3930\n656 3298 4047\n14 3442 1609\n4 3456 1615\n13 3444 1649\n14 3430 1665\n0 3428 1724\n11 3444 1786\n4 3440 1827\n0 3432 1888\n0 3440 1919\n2 3436 1962\n0 3435 2028\n6 3450 2079\n0 3436 2126\n2 3437 2189\n11 3437 2245\n0 3446 2344\n2 3430 2389\n0 3430 2527\n11 3428 2616\n6 3436 2683\n24 3434 2784\n0 3430 2891\n0 3429 3031\n0 3452 3149\n0 3459 3245\n3 3399 3332\n0 3380 3425\n4 3376 3527\n28 3366 3653\n15 3365 3812\n14 3413 3932\n833 3430 4063\n1 3560 1743\n1 3560 1747\n1 3575 1820\n1 3573 1852\n1 3573 1862\n3 3565 1913\n11 3564 1987\n0 3564 2023\n16 3561 2047\n0 3557 2084\n0 3575 2144\n13 3575 2169\n14 3570 2225\n13 3587 2274\n14 3588 2346\n8 3589 2395\n1 3582 2453\n18 3582 2549\n0 3575 2669\n5 3589 2743\n0 3573 2846\n11 3569 2966\n14 3580 3063\n25 3573 3170\n12 3573 3292\n14 3588 3411\n0 3530 3459\n0 3510 3571\n31 3480 3687\n1 3512 3831\n0 3526 3918\n989 3575 4052\n1 3704 1936\n0 3704 1969\n1 3703 2000\n4 3706 2007\n26 3676 2064\n15 3704 2096\n15 3703 2137\n0 3705 2193\n19 3678 2229\n10 3700 2242\n16 3705 2270\n9 3700 2297\n18 3689 2339\n15 3706 2389\n30 3719 2437\n1 3720 2486\n23 3715 2536\n16 3712 2616\n21 3720 2707\n5 3723 2802\n0 3721 2894\n0 3726 3002\n0 3709 3092\n16 3709 3224\n2 3718 3354\n0 3720 3424\n0 3736 3555\n16 3673 3593\n0 3627 3688\n0 3655 3832\n317 3673 3963\n1153 3723 4080\n15 3835 2164\n1 3836 2181\n15 3836 2181\n16 3820 2216\n16 3820 2245\n0 3833 2296\n1 3835 2329\n0 3832 2350\n4 3825 2386\n5 3825 2411\n5 3846 2422\n10 3836 2460\n7 3843 2478\n9 3852 2501\n8 3845 2551\n16 3867 2598\n8 3859 2640\n31 3867 2682\n6 3883 2804\n10 3877 2887\n11 3868 2963\n0 3884 3067\n0 3868 3169\n0 3868 3262\n12 3868 3388\n13 3855 3475\n16 3869 3591\n0 3870 3689\n14 3805 3739\n0 3787 3850\n669 3819 3980\n1378 3868 4095\n418 3967 2409\n483 3967 2409\n564 3983 2442\n616 3967 2426\n743 3953 2487\n827 3969 2494\n941 3976 2569\n997 3967 2585\n903 3955 2578\n784 3978 2618\n580 3977 2634\n176 3983 2613\n6 3992 2650\n19 4012 2684\n16 4008 2712\n24 4015 2721\n8 4014 2770\n7 4031 2780\n0 4038 2861\n0 4021 2942\n16 4020 3034\n16 4031 3153\n23 4035 3251\n0 4031 3328\n0 4027 3435\n0 4031 3527\n0 4031 3651\n30 4031 3766\n18 4002 3853\n0 3968 3916\n888 3934 3997\n1590 3967 4095\n417 385 433\n419 385 435\n451 370 468\n467 368 532\n485 355 596\n485 339 618\n515 366 713\n546 338 775\n542 353 855\n545 338 929\n595 353 1022\n621 353 1099\n639 343 1197\n671 346 1318\n700 339 1419\n730 322 1557\n779 329 1687\n803 306 1825\n838 287 1955\n893 263 2085\n953 224 2242\n1007 159 2383\n1099 78 2557\n1160 8 2709\n1261 0 2889\n1356 3 3020\n1467 3 3183\n1552 0 3304\n1678 0 3463\n1778 0 3623\n1894 0 3786\n2055 0 3933\n450 370 433\n451 370 435\n466 387 483\n437 387 532\n456 402 585\n499 386 647\n515 386 729\n531 399 807\n551 374 863\n574 393 949\n596 402 1023\n601 391 1110\n649 386 1204\n678 386 1309\n714 377 1435\n731 362 1566\n755 369 1687\n804 338 1810\n829 329 1949\n878 290 2095\n956 269 2262\n1018 220 2416\n1084 154 2572\n1176 57 2722\n1258 0 2878\n1343 3 3007\n1439 0 3140\n1563 0 3314\n1678 0 3477\n1778 0 3623\n1893 0 3755\n2008 0 3917\n434 435 403\n435 436 465\n451 436 515\n437 422 519\n468 434 614\n485 449 676\n515 449 730\n531 451 810\n566 423 865\n586 435 946\n627 436 1054\n628 420 1125\n650 425 1235\n686 428 1343\n723 421 1474\n741 411 1582\n763 403 1695\n803 386 1819\n839 368 1968\n872 345 2106\n937 307 2270\n1012 269 2446\n1078 199 2589\n1161 112 2748\n1258 9 2861\n1356 0 3026\n1451 13 3180\n1549 0 3332\n1650 0 3462\n1778 0 3623\n1894 0 3787\n1993 0 3919\n417 499 431\n448 485 468\n437 501 516\n452 499 580\n482 485 615\n498 500 693\n517 498 731\n549 498 812\n554 485 877\n596 495 959\n599 485 1051\n617 485 1152\n644 484 1257\n684 473 1365\n701 470 1474\n722 467 1582\n762 444 1710\n805 442 1848\n845 419 1979\n885 401 2113\n945 356 2270\n1007 329 2435\n1078 271 2586\n1151 204 2741\n1241 105 2898\n1323 21 3043\n1438 0 3169\n1549 1 3334\n1661 13 3476\n1776 0 3624\n1892 0 3758\n2007 0 3918\n418 580 452\n448 551 484\n466 566 532\n467 565 569\n484 564 628\n485 549 693\n502 551 785\n515 534 825\n565 538 906\n593 550 990\n613 561 1071\n632 534 1163\n653 529 1265\n673 542 1386\n709 529 1513\n735 520 1619\n775 516 1728\n796 500 1852\n838 479 1985\n885 462 2137\n936 431 2279\n1001 384 2457\n1076 354 2599\n1143 287 2740\n1254 226 2896\n1332 118 3039\n1422 25 3187\n1520 0 3330\n1633 14 3477\n1759 0 3624\n1877 15 3787\n1992 0 3918\n413 632 485\n419 633 515\n468 648 579\n468 632 614\n496 633 661\n500 618 712\n499 617 777\n514 613 845\n543 600 913\n539 611 978\n597 613 1103\n609 592 1192\n627 603 1289\n667 596 1407\n689 595 1517\n714 589 1612\n755 567 1749\n780 559 1880\n813 551 2019\n868 510 2147\n930 508 2314\n972 483 2460\n1067 435 2617\n1135 376 2762\n1210 334 2894\n1305 258 3039\n1415 155 3191\n1515 38 3350\n1600 14 3493\n1729 1 3625\n1848 13 3786\n1986 3 3949\n372 700 517\n415 697 534\n452 699 584\n468 713 633\n482 725 682\n483 713 726\n491 700 827\n503 707 862\n542 695 968\n531 669 1013\n539 662 1117\n576 652 1217\n607 668 1293\n640 668 1418\n666 665 1533\n709 651 1648\n741 651 1778\n758 632 1901\n813 623 2039\n845 607 2169\n900 576 2301\n972 553 2466\n1030 530 2631\n1095 488 2764\n1203 438 2908\n1289 394 3052\n1386 325 3199\n1478 233 3329\n1584 124 3493\n1712 21 3625\n1830 0 3803\n1947 3 3937\n354 791 550\n412 782 579\n433 796 609\n464 795 649\n469 782 711\n481 792 761\n500 798 825\n502 782 891\n510 781 984\n522 753 1051\n504 750 1120\n517 744 1226\n550 730 1322\n568 743 1449\n634 734 1565\n667 722 1665\n704 725 1810\n725 716 1910\n770 708 2048\n810 691 2195\n875 659 2338\n935 642 2492\n1004 624 2633\n1073 586 2791\n1158 548 2932\n1246 506 3055\n1351 457 3186\n1438 405 3350\n1561 342 3506\n1680 265 3643\n1806 164 3779\n1940 100 3931\n329 884 570\n370 876 615\n411 880 644\n419 879 678\n434 880 731\n458 882 783\n464 884 836\n478 880 915\n494 880 980\n494 868 1069\n500 862 1169\n499 845 1249\n477 831 1342\n491 812 1466\n509 790 1584\n582 836 1709\n631 819 1816\n665 810 1946\n707 796 2076\n763 793 2217\n822 767 2368\n881 753 2526\n943 721 2667\n1028 706 2798\n1117 670 2945\n1189 621 3064\n1301 587 3191\n1404 564 3364\n1516 503 3497\n1627 470 3644\n1760 411 3803\n1891 379 3919\n249 973 590\n340 967 654\n365 982 684\n409 974 712\n413 977 743\n438 967 821\n432 981 864\n446 996 942\n448 979 1006\n466 971 1090\n458 966 1161\n466 961 1258\n439 950 1372\n427 937 1463\n420 921 1583\n437 889 1715\n451 896 1849\n557 904 1956\n627 903 2102\n686 887 2244\n762 871 2385\n822 843 2507\n881 838 2681\n967 810 2826\n1059 778 2941\n1146 765 3079\n1241 725 3222\n1366 690 3365\n1483 658 3524\n1590 633 3640\n1734 575 3810\n1847 585 3950\n140 1085 615\n220 1076 664\n276 1085 694\n331 1088 741\n337 1096 765\n364 1094 816\n368 1107 898\n365 1095 947\n362 1119 1036\n379 1107 1117\n402 1081 1198\n392 1075 1276\n379 1074 1400\n347 1044 1492\n321 1037 1619\n302 1025 1742\n308 1011 1862\n312 984 1995\n420 982 2128\n541 995 2266\n627 978 2412\n688 968 2522\n792 952 2689\n888 929 2821\n981 903 2968\n1060 894 3096\n1185 853 3236\n1289 840 3378\n1419 799 3503\n1537 786 3656\n1674 765 3804\n1809 760 3957\n6 1216 638\n63 1185 681\n113 1196 731\n176 1212 774\n183 1233 798\n222 1221 856\n244 1215 904\n256 1214 992\n253 1234 1049\n223 1227 1133\n301 1212 1220\n262 1221 1308\n235 1221 1421\n215 1181 1522\n193 1181 1660\n152 1161 1764\n106 1139 1888\n106 1106 2026\n103 1093 2145\n127 1077 2292\n370 1092 2445\n524 1088 2549\n650 1083 2707\n769 1060 2852\n874 1029 2979\n983 1009 3108\n1086 989 3250\n1230 975 3383\n1340 947 3540\n1467 932 3666\n1593 907 3789\n1761 912 3956\n1 1335 706\n0 1316 729\n0 1332 757\n0 1326 799\n16 1332 844\n22 1344 871\n46 1345 970\n49 1345 1010\n49 1365 1094\n30 1355 1171\n27 1357 1254\n86 1348 1330\n56 1335 1444\n29 1341 1564\n11 1332 1675\n0 1295 1790\n3 1297 1908\n10 1265 2042\n10 1246 2191\n6 1213 2336\n6 1191 2456\n71 1180 2602\n379 1196 2738\n574 1191 2854\n712 1174 2966\n859 1149 3122\n972 1127 3253\n1094 1109 3368\n1239 1077 3501\n1374 1068 3670\n1522 1066 3811\n1673 1084 3934\n9 1466 739\n7 1454 746\n6 1472 787\n0 1472 835\n0 1475 876\n0 1475 904\n0 1488 977\n13 1488 1055\n4 1495 1111\n7 1490 1202\n0 1503 1298\n0 1519 1394\n9 1495 1487\n9 1495 1617\n7 1481 1706\n18 1457 1823\n3 1454 1966\n0 1438 2084\n0 1405 2212\n0 1370 2352\n0 1357 2489\n0 1335 2624\n0 1298 2757\n102 1286 2875\n452 1321 3008\n670 1302 3142\n816 1258 3259\n955 1245 3387\n1102 1239 3525\n1268 1217 3679\n1417 1216 3800\n1589 1231 3944\n7 1596 740\n0 1610 781\n9 1612 817\n0 1626 866\n1 1629 905\n5 1626 971\n0 1638 1009\n6 1632 1074\n0 1636 1156\n13 1639 1250\n5 1647 1320\n0 1640 1426\n0 1672 1531\n7 1642 1633\n7 1635 1738\n7 1611 1861\n23 1595 1984\n15 1587 2112\n2 1582 2244\n0 1559 2372\n14 1523 2515\n4 1500 2633\n7 1459 2767\n16 1437 2899\n0 1399 3021\n191 1427 3157\n582 1430 3260\n787 1411 3406\n940 1394 3535\n1115 1362 3672\n1295 1378 3828\n1490 1385 3961\n8 1749 761\n7 1757 818\n15 1765 837\n9 1757 882\n10 1743 929\n3 1768 973\n8 1775 1051\n4 1769 1119\n7 1797 1219\n0 1785 1273\n11 1789 1373\n0 1781 1448\n1 1796 1555\n1 1813 1690\n9 1789 1786\n8 1773 1902\n8 1773 2017\n8 1750 2124\n8 1739 2269\n10 1725 2386\n0 1682 2495\n8 1674 2644\n0 1633 2783\n16 1624 2918\n4 1578 3053\n0 1551 3167\n25 1523 3293\n436 1570 3422\n772 1574 3528\n975 1535 3674\n1138 1540 3813\n1334 1540 3967\n8 1897 786\n8 1897 827\n0 1904 860\n7 1906 894\n10 1906 962\n24 1913 1009\n18 1924 1080\n0 1921 1140\n12 1925 1237\n11 1937 1315\n0 1936 1397\n0 1937 1498\n14 1956 1618\n22 1936 1706\n0 1977 1836\n0 1938 1911\n8 1936 2049\n0 1913 2163\n8 1910 2286\n1 1895 2408\n19 1870 2547\n24 1853 2677\n15 1813 2787\n12 1788 2927\n8 1755 3041\n0 1728 3165\n0 1706 3300\n8 1676 3436\n202 1694 3552\n778 1744 3658\n1049 1744 3819\n1245 1737 3959\n9 2043 828\n0 2050 853\n0 2044 884\n7 2052 950\n0 2054 991\n0 2059 1038\n13 2067 1107\n9 2080 1185\n5 2079 1274\n4 2079 1357\n0 2087 1445\n9 2080 1535\n14 2084 1631\n7 2091 1716\n14 2100 1845\n14 2122 1969\n15 2098 2066\n7 2084 2178\n31 2074 2326\n8 2067 2432\n11 2043 2561\n0 2009 2679\n0 1988 2813\n0 1960 2926\n15 1947 3057\n6 1894 3173\n17 1877 3310\n5 1848 3439\n1 1830 3573\n82 1828 3724\n773 1896 3834\n1221 1973 3967\n16 2199 860\n7 2190 866\n1 2200 926\n16 2208 969\n15 2207 1034\n9 2212 1090\n7 2228 1158\n7 2221 1243\n15 2222 1302\n18 2219 1400\n28 2233 1487\n13 2230 1582\n13 2241 1669\n15 2241 1755\n7 2245 1878\n16 2253 2001\n1 2278 2130\n7 2247 2213\n15 2237 2356\n25 2230 2466\n7 2207 2581\n6 2182 2687\n13 2162 2812\n16 2122 2929\n19 2109 3065\n16 2082 3178\n16 2054 3323\n0 2027 3426\n7 2015 3575\n1 1996 3686\n52 2015 3845\n857 2072 3960\n16 2330 873\n0 2362 910\n1 2347 958\n8 2356 1002\n8 2370 1074\n14 2370 1139\n18 2368 1195\n10 2375 1250\n6 2384 1351\n6 2379 1426\n5 2394 1518\n15 2385 1622\n0 2390 1705\n7 2384 1801\n7 2396 1925\n2 2400 2016\n1 2402 2155\n9 2425 2301\n0 2384 2366\n7 2384 2474\n10 2376 2610\n1 2339 2709\n12 2318 2835\n6 2300 2966\n0 2269 3079\n3 2249 3193\n10 2220 3320\n16 2187 3458\n14 2180 3579\n11 2173 3698\n28 2179 3857\n585 2218 3999\n6 2504 931\n16 2509 974\n16 2508 1008\n18 2494 1058\n2 2517 1141\n3 2515 1183\n0 2515 1263\n3 2523 1311\n6 2515 1400\n10 2521 1479\n10 2525 1561\n16 2521 1645\n11 2542 1754\n13 2537 1852\n17 2531 1942\n0 2529 2067\n0 2534 2172\n10 2551 2304\n8 2557 2436\n10 2516 2492\n26 2515 2621\n20 2487 2745\n5 2476 2854\n4 2447 2967\n0 2432 3100\n6 2410 3207\n22 2386 3324\n6 2368 3446\n10 2347 3573\n1 2343 3723\n17 2332 3853\n320 2400 4018\n10 2635 980\n21 2640 1024\n0 2640 1046\n7 2636 1117\n7 2661 1162\n11 2661 1237\n5 2651 1286\n0 2656 1367\n12 2672 1441\n11 2655 1535\n0 2666 1600\n21 2651 1687\n22 2661 1822\n0 2665 1901\n7 2666 1985\n18 2669 2110\n21 2666 2206\n5 2666 2317\n7 2703 2443\n20 2669 2567\n16 2646 2654\n16 2629 2768\n6 2623 2862\n1 2599 2980\n0 2581 3113\n0 2565 3206\n3 2531 3322\n11 2528 3463\n11 2497 3587\n0 2501 3729\n6 2507 3860\n21 2549 3993\n0 2776 1039\n11 2770 1099\n22 2777 1142\n11 2785 1182\n13 2780 1233\n27 2781 1323\n5 2780 1362\n17 2784 1436\n16 2792 1504\n7 2801 1578\n0 2798 1660\n6 2796 1742\n11 2803 1840\n14 2803 1941\n11 2804 2028\n4 2804 2126\n20 2792 2246\n0 2805 2348\n14 2806 2456\n5 2814 2593\n15 2810 2689\n0 2771 2764\n0 2743 2904\n0 2728 2998\n5 2726 3129\n13 2700 3244\n5 2693 3359\n0 2663 3472\n13 2663 3605\n11 2660 3742\n23 2663 3864\n5 2713 3999\n5 2907 1132\n0 2911 1149\n4 2918 1193\n15 2921 1271\n8 2909 1312\n19 2923 1380\n3 2909 1431\n16 2919 1484\n4 2926 1565\n5 2931 1636\n12 2923 1709\n16 2922 1791\n0 2933 1884\n0 2934 1969\n9 2929 2067\n12 2918 2175\n4 2931 2261\n0 2914 2371\n11 2910 2472\n6 2924 2593\n19 2942 2732\n17 2924 2835\n16 2883 2906\n15 2867 2995\n16 2858 3145\n12 2846 3237\n6 2838 3358\n0 2824 3495\n0 2832 3623\n12 2796 3737\n12 2837 3880\n25 2869 4014\n4 3049 1226\n19 3041 1270\n15 3037 1276\n7 3049 1347\n0 3037 1402\n12 3053 1456\n3 3050 1511\n4 3041 1567\n0 3045 1632\n5 3053 1692\n11 3052 1766\n17 3060 1843\n19 3053 1945\n4 3052 2005\n7 3053 2093\n16 3053 2195\n32 3053 2294\n0 3061 2399\n7 3056 2508\n16 3053 2626\n12 3059 2724\n14 3082 2873\n25 3040 2940\n1 3002 3048\n12 2980 3140\n3 2985 3260\n15 2972 3390\n1 2973 3503\n0 2943 3622\n26 2955 3746\n4 2975 3882\n222 3021 4023\n0 3168 1323\n4 3171 1328\n28 3156 1368\n11 3179 1412\n4 3182 1477\n6 3168 1560\n3 3174 1619\n0 3183 1668\n12 3192 1719\n0 3183 1767\n3 3186 1845\n8 3184 1900\n12 3184 1972\n19 3174 2047\n0 3186 2125\n0 3188 2229\n0 3194 2339\n15 3187 2435\n15 3180 2521\n0 3171 2632\n13 3180 2744\n3 3172 2870\n19 3195 3012\n13 3132 3071\n15 3111 3153\n19 3122 3283\n13 3092 3396\n13 3103 3507\n1 3087 3623\n13 3102 3766\n27 3131 3887\n484 3164 4050\n13 3311 1454\n19 3311 1455\n14 3298 1488\n24 3313 1560\n3 3300 1572\n0 3301 1646\n0 3301 1704\n0 3314 1750\n16 3314 1818\n3 3302 1872\n13 3303 1916\n0 3314 1989\n3 3314 2047\n0 3314 2112\n0 3311 2180\n13 3314 2280\n19 3313 2375\n11 3300 2465\n4 3301 2541\n0 3310 2670\n3 3298 2790\n13 3298 2881\n0 3312 2991\n11 3327 3128\n3 3284 3206\n0 3254 3311\n0 3236 3426\n3 3221 3510\n1 3218 3626\n17 3249 3767\n13 3265 3941\n678 3282 4047\n16 3444 1584\n16 3444 1612\n3 3429 1631\n16 3428 1665\n4 3430 1726\n14 3444 1775\n15 3429 1827\n29 3442 1879\n0 3444 1919\n7 3444 1973\n9 3434 2025\n8 3444 2071\n32 3429 2134\n16 3438 2182\n12 3438 2231\n12 3440 2340\n10 3439 2398\n19 3446 2520\n3 3420 2607\n28 3440 2687\n14 3436 2786\n0 3441 2902\n2 3440 3039\n2 3444 3135\n2 3463 3249\n2 3400 3332\n16 3364 3425\n5 3375 3528\n3 3378 3656\n2 3351 3798\n14 3412 3930\n855 3444 4065\n0 3559 1741\n16 3575 1760\n1 3559 1778\n14 3560 1823\n1 3573 1862\n0 3559 1908\n16 3559 1987\n7 3550 1999\n18 3555 2044\n14 3575 2089\n14 3568 2125\n25 3570 2173\n12 3569 2224\n25 3575 2286\n0 3562 2308\n10 3582 2410\n8 3589 2461\n20 3587 2555\n0 3575 2651\n6 3589 2742\n0 3573 2846\n5 3573 2965\n4 3561 3049\n26 3569 3168\n15 3578 3296\n14 3588 3411\n1 3529 3460\n1 3495 3558\n16 3509 3673\n2 3525 3816\n1 3541 3932\n1020 3575 4063\n16 3689 1938\n1 3690 1954\n1 3690 1956\n2 3703 2003\n26 3689 2038\n0 3689 2069\n0 3687 2121\n4 3702 2193\n26 3704 2218\n6 3695 2237\n6 3696 2261\n17 3699 2303\n9 3696 2338\n15 3714 2380\n22 3712 2429\n16 3713 2486\n13 3705 2527\n25 3721 2625\n16 3716 2702\n17 3711 2801\n2 3725 2899\n15 3721 3002\n0 3709 3092\n4 3720 3226\n15 3719 3322\n18 3733 3442\n1 3734 3554\n14 3674 3594\n1 3626 3687\n1 3656 3833\n381 3672 3948\n1216 3720 4095\n15 3835 2164\n16 3836 2166\n1 3821 2166\n17 3835 2186\n16 3820 2218\n29 3833 2291\n0 3823 2316\n0 3833 2350\n0 3820 2375\n16 3836 2400\n11 3841 2422\n11 3837 2455\n6 3842 2476\n10 3853 2502\n16 3836 2551\n23 3860 2599\n24 3861 2649\n21 3875 2689\n9 3868 2767\n10 3858 2877\n15 3874 2968\n5 3874 3071\n8 3863 3168\n12 3883 3278\n12 3869 3389\n15 3884 3491\n31 3880 3604\n0 3870 3689\n14 3804 3739\n15 3772 3850\n669 3804 3964\n1410 3835 4095\n449 3982 2408\n514 3967 2425\n550 3967 2425\n631 3981 2441\n729 3953 2445\n829 3967 2492\n928 3967 2525\n1024 3982 2576\n944 3967 2574\n833 3983 2606\n635 3967 2607\n287 3983 2639\n15 3983 2650\n10 3990 2651\n9 4000 2705\n16 3999 2730\n16 4008 2770\n16 4015 2794\n7 4024 2854\n0 4031 2930\n6 4031 3034\n16 4031 3153\n16 4015 3235\n0 4027 3324\n0 4027 3435\n13 4034 3543\n16 4042 3665\n17 4017 3752\n3 4031 3867\n0 3953 3902\n920 3919 3997\n1590 3967 4095\n452 370 435\n482 384 449\n470 354 468\n516 354 503\n531 353 580\n532 352 632\n547 352 711\n553 341 774\n583 364 859\n587 351 924\n612 338 1021\n643 364 1103\n665 357 1217\n694 347 1329\n717 327 1417\n753 328 1548\n795 321 1671\n828 313 1802\n853 289 1933\n919 247 2085\n989 219 2277\n1045 156 2416\n1110 67 2578\n1204 4 2721\n1263 4 2857\n1364 1 3021\n1472 0 3183\n1568 2 3316\n1683 0 3464\n1797 0 3624\n1911 1 3756\n2055 0 3902\n468 386 448\n484 386 449\n485 371 484\n515 400 532\n517 385 597\n520 386 632\n536 388 700\n552 389 781\n599 390 847\n615 389 955\n643 391 1027\n659 412 1114\n680 396 1212\n698 385 1319\n715 377 1435\n754 377 1564\n788 370 1680\n821 353 1817\n871 336 1951\n910 303 2104\n963 272 2252\n1049 204 2415\n1096 138 2553\n1189 44 2722\n1290 4 2881\n1369 15 3032\n1473 1 3157\n1566 0 3314\n1680 1 3464\n1781 1 3625\n1925 16 3771\n2055 0 3932\n484 420 402\n500 436 450\n515 435 499\n517 437 549\n532 436 598\n547 449 677\n550 438 701\n567 438 783\n587 439 872\n615 438 959\n627 435 1023\n644 446 1110\n681 440 1245\n709 429 1332\n731 420 1450\n755 400 1573\n788 403 1695\n815 394 1828\n871 370 1959\n905 337 2099\n959 301 2263\n1021 263 2410\n1109 194 2568\n1185 112 2729\n1271 13 2889\n1379 13 3036\n1465 0 3180\n1565 0 3314\n1678 0 3463\n1779 1 3624\n1895 0 3756\n2023 16 3934\n482 486 449\n482 516 496\n500 501 531\n516 500 581\n515 499 629\n530 498 678\n536 498 729\n567 488 812\n584 501 892\n606 499 963\n648 489 1058\n665 490 1143\n681 479 1244\n709 478 1356\n725 477 1453\n763 454 1580\n797 451 1726\n829 437 1857\n860 419 1987\n909 385 2113\n954 366 2264\n1024 310 2416\n1096 255 2586\n1194 194 2750\n1269 104 2883\n1356 8 3024\n1451 13 3180\n1565 0 3315\n1664 14 3463\n1780 2 3625\n1893 0 3756\n1993 0 3919\n468 550 452\n466 552 485\n498 564 545\n502 566 583\n504 550 630\n547 550 683\n546 552 750\n567 551 838\n588 549 896\n615 549 991\n632 553 1072\n654 549 1173\n675 532 1267\n696 540 1381\n711 529 1485\n760 522 1594\n782 517 1731\n815 478 1847\n871 476 1992\n896 467 2145\n955 428 2286\n1034 389 2465\n1087 357 2594\n1166 278 2738\n1272 222 2891\n1352 101 3036\n1450 22 3186\n1527 0 3333\n1664 12 3479\n1777 0 3627\n1893 0 3756\n2021 14 3932\n437 631 471\n453 633 503\n484 631 550\n526 632 598\n529 620 661\n531 616 686\n548 617 766\n558 627 828\n566 614 907\n597 600 992\n632 623 1091\n660 601 1182\n660 608 1281\n702 586 1412\n721 592 1495\n742 583 1608\n771 567 1746\n825 551 1876\n864 543 2017\n907 519 2144\n945 509 2289\n1000 466 2461\n1077 435 2610\n1159 380 2751\n1243 331 2903\n1331 268 3044\n1425 150 3186\n1522 37 3346\n1629 12 3476\n1734 0 3623\n1877 15 3762\n2002 1 3918\n433 702 514\n438 699 534\n498 713 594\n504 700 630\n533 700 681\n546 711 742\n550 699 809\n563 698 872\n553 672 930\n566 666 1021\n569 665 1098\n620 663 1206\n659 655 1304\n686 666 1431\n707 653 1502\n723 643 1626\n760 645 1784\n790 645 1889\n834 625 2032\n875 602 2178\n925 583 2314\n998 547 2472\n1060 523 2626\n1131 480 2766\n1225 447 2905\n1305 381 3052\n1401 324 3176\n1504 218 3332\n1601 122 3492\n1729 21 3626\n1855 0 3800\n1982 0 3947\n388 781 521\n422 781 581\n488 794 600\n495 781 649\n514 783 720\n525 794 750\n527 796 800\n531 780 865\n548 778 961\n552 752 1049\n534 772 1125\n557 747 1234\n577 741 1321\n620 747 1443\n674 740 1544\n688 725 1652\n724 730 1787\n750 712 1909\n794 699 2048\n837 679 2196\n892 676 2344\n953 639 2499\n1034 629 2639\n1113 588 2794\n1185 557 2924\n1281 508 3064\n1372 468 3201\n1471 404 3352\n1588 327 3499\n1707 256 3643\n1814 162 3782\n1957 87 3931\n345 875 541\n395 863 607\n421 880 636\n449 882 692\n488 879 714\n494 868 782\n511 882 843\n521 884 899\n526 880 960\n540 875 1058\n530 860 1142\n532 847 1238\n508 832 1335\n540 803 1450\n558 806 1579\n623 822 1689\n657 838 1835\n692 815 1954\n742 794 2083\n797 778 2221\n850 761 2371\n913 752 2519\n978 720 2649\n1061 684 2785\n1142 662 2924\n1227 629 3076\n1331 593 3197\n1438 552 3359\n1526 501 3470\n1662 452 3643\n1787 399 3804\n1904 367 3919\n303 963 570\n333 958 615\n386 978 648\n427 975 699\n443 979 757\n456 969 797\n461 980 878\n464 991 936\n466 982 1011\n493 978 1078\n494 963 1172\n483 966 1264\n473 951 1357\n452 931 1471\n468 911 1596\n487 886 1728\n538 893 1846\n613 901 1965\n665 893 2108\n720 887 2252\n778 876 2391\n854 849 2523\n920 826 2672\n1002 811 2806\n1085 776 2938\n1166 753 3079\n1267 718 3221\n1386 694 3355\n1499 646 3496\n1604 631 3641\n1740 580 3814\n1868 581 3924\n187 1074 611\n243 1075 632\n291 1091 694\n350 1082 739\n380 1089 779\n391 1087 820\n410 1092 873\n433 1098 973\n406 1100 1034\n416 1120 1107\n436 1091 1205\n420 1081 1290\n418 1064 1384\n392 1058 1502\n385 1036 1626\n379 1025 1758\n384 1011 1884\n402 978 2011\n507 983 2138\n606 991 2282\n671 974 2423\n754 964 2544\n816 957 2689\n908 929 2824\n991 908 2973\n1093 880 3092\n1206 855 3231\n1310 825 3358\n1431 797 3500\n1557 771 3657\n1678 759 3788\n1832 747 3950\n26 1195 638\n63 1195 658\n139 1210 723\n213 1221 789\n272 1221 808\n281 1214 860\n297 1213 914\n321 1235 1000\n289 1226 1046\n290 1213 1130\n325 1226 1227\n352 1216 1316\n312 1211 1432\n303 1189 1534\n260 1172 1658\n233 1161 1778\n210 1127 1878\n219 1110 2033\n206 1090 2152\n244 1075 2308\n476 1088 2447\n600 1092 2574\n700 1065 2712\n808 1059 2848\n908 1036 2992\n1010 1017 3110\n1124 995 3243\n1244 957 3381\n1370 934 3512\n1487 922 3654\n1628 912 3784\n1771 901 3956\n12 1310 671\n0 1332 697\n0 1332 747\n20 1326 799\n56 1331 831\n70 1344 883\n92 1341 940\n104 1348 1009\n97 1356 1079\n98 1348 1164\n82 1346 1239\n170 1358 1352\n141 1327 1439\n83 1332 1563\n79 1315 1668\n40 1293 1790\n30 1275 1910\n25 1264 2042\n10 1251 2179\n12 1201 2330\n1 1175 2446\n163 1173 2581\n475 1197 2727\n633 1187 2859\n763 1160 2979\n896 1154 3130\n1019 1128 3268\n1129 1106 3380\n1265 1086 3516\n1402 1060 3656\n1542 1065 3817\n1695 1074 3952\n9 1472 707\n10 1466 739\n8 1473 769\n0 1473 826\n0 1473 871\n5 1490 919\n3 1491 980\n12 1495 1058\n0 1491 1107\n7 1490 1193\n3 1504 1296\n10 1511 1396\n9 1495 1487\n10 1476 1606\n0 1488 1706\n8 1463 1820\n0 1447 1940\n0 1418 2067\n5 1405 2185\n0 1382 2359\n1 1357 2478\n0 1322 2614\n5 1297 2724\n186 1301 2869\n544 1314 3002\n718 1295 3150\n858 1267 3264\n996 1244 3401\n1132 1232 3526\n1280 1225 3652\n1444 1230 3791\n1596 1237 3950\n0 1602 720\n0 1609 761\n0 1610 794\n1 1625 845\n9 1619 899\n3 1621 957\n0 1633 1001\n0 1627 1074\n0 1642 1156\n0 1635 1219\n9 1642 1313\n6 1639 1425\n0 1652 1526\n6 1642 1633\n0 1635 1738\n0 1618 1854\n12 1606 1976\n0 1594 2105\n0 1585 2226\n0 1554 2356\n2 1523 2491\n0 1503 2625\n12 1461 2760\n1 1422 2880\n5 1399 3010\n295 1431 3150\n652 1431 3266\n832 1417 3411\n991 1386 3549\n1139 1363 3681\n1324 1370 3828\n1505 1379 3962\n0 1757 747\n0 1750 785\n1 1759 803\n8 1756 862\n0 1765 923\n0 1768 966\n8 1773 1042\n12 1789 1111\n8 1773 1179\n1 1786 1274\n9 1788 1355\n2 1790 1451\n8 1804 1558\n1 1816 1676\n1 1797 1772\n9 1774 1871\n9 1773 2014\n8 1751 2111\n1 1734 2260\n8 1723 2388\n6 1709 2512\n8 1674 2642\n0 1633 2781\n4 1612 2906\n4 1571 3024\n0 1542 3153\n98 1532 3272\n560 1578 3411\n812 1564 3536\n993 1541 3668\n1164 1539 3819\n1336 1542 3966\n0 1898 756\n0 1897 787\n8 1912 837\n0 1907 894\n0 1920 950\n7 1920 1009\n0 1936 1080\n5 1940 1148\n0 1940 1211\n0 1937 1291\n0 1947 1411\n0 1944 1497\n0 1953 1591\n21 1939 1692\n0 1983 1834\n0 1945 1919\n0 1944 2049\n0 1929 2164\n8 1917 2293\n1 1893 2407\n8 1870 2553\n12 1841 2682\n0 1829 2804\n7 1788 2920\n4 1752 3033\n0 1723 3154\n0 1687 3289\n6 1662 3428\n250 1701 3532\n847 1735 3681\n1088 1752 3835\n1261 1738 3952\n0 2051 796\n0 2051 828\n0 2050 869\n0 2050 927\n0 2061 991\n13 2076 1053\n10 2071 1110\n5 2091 1185\n0 2079 1259\n0 2088 1340\n7 2084 1448\n7 2093 1528\n6 2090 1631\n8 2093 1709\n7 2114 1849\n1 2131 1977\n9 2091 2059\n7 2085 2179\n0 2075 2327\n0 2059 2424\n0 2044 2552\n0 2009 2679\n11 1999 2824\n16 1951 2938\n0 1939 3054\n0 1903 3164\n17 1884 3315\n5 1846 3417\n7 1830 3565\n179 1815 3706\n872 1904 3858\n1260 1980 3983\n0 2214 837\n0 2206 860\n0 2199 895\n16 2205 968\n9 2201 1025\n7 2216 1091\n0 2231 1153\n0 2234 1209\n7 2235 1306\n0 2226 1377\n0 2247 1481\n0 2236 1572\n0 2241 1676\n0 2256 1755\n0 2252 1886\n7 2247 1993\n8 2292 2137\n16 2256 2221\n9 2231 2350\n16 2221 2458\n6 2206 2579\n9 2185 2693\n0 2157 2807\n9 2135 2933\n12 2106 3043\n12 2073 3183\n16 2054 3304\n8 2032 3432\n9 2004 3564\n1 2005 3695\n119 2004 3837\n908 2080 3985\n0 2362 877\n0 2362 897\n0 2360 935\n14 2363 1007\n6 2368 1056\n7 2379 1128\n10 2385 1182\n6 2374 1272\n0 2390 1355\n5 2382 1430\n6 2383 1513\n6 2394 1622\n1 2401 1697\n6 2391 1819\n6 2410 1931\n2 2400 2016\n8 2408 2161\n1 2443 2282\n0 2384 2366\n6 2378 2487\n10 2358 2620\n5 2346 2714\n3 2321 2831\n8 2300 2967\n5 2266 3080\n3 2249 3193\n11 2217 3320\n12 2191 3454\n7 2172 3570\n10 2179 3703\n0 2189 3852\n658 2227 3999\n10 2499 914\n10 2508 955\n16 2509 995\n12 2506 1041\n0 2518 1111\n0 2520 1180\n0 2523 1237\n0 2537 1314\n1 2522 1389\n0 2531 1471\n0 2531 1562\n10 2530 1659\n0 2540 1746\n4 2548 1853\n0 2547 1950\n0 2549 2083\n0 2549 2179\n1 2558 2301\n0 2573 2436\n0 2531 2503\n0 2525 2621\n24 2484 2741\n10 2461 2845\n24 2449 2968\n4 2429 3100\n0 2416 3207\n0 2386 3324\n2 2364 3442\n1 2356 3597\n1 2344 3720\n16 2333 3853\n436 2399 3999\n0 2641 964\n0 2645 1012\n5 2647 1051\n7 2636 1117\n7 2661 1164\n10 2661 1226\n0 2672 1302\n0 2656 1367\n1 2666 1435\n11 2667 1541\n11 2667 1605\n6 2667 1692\n5 2667 1818\n1 2677 1915\n4 2677 1988\n8 2669 2105\n21 2663 2225\n9 2672 2325\n6 2700 2441\n9 2694 2577\n16 2648 2665\n15 2630 2768\n0 2624 2861\n13 2597 2966\n4 2577 3092\n1 2563 3203\n1 2536 3325\n11 2528 3463\n10 2498 3587\n1 2501 3728\n10 2521 3846\n78 2559 4003\n0 2787 1046\n0 2776 1062\n1 2781 1100\n1 2780 1146\n9 2782 1220\n5 2791 1323\n13 2789 1370\n1 2793 1432\n16 2792 1504\n13 2808 1585\n0 2798 1660\n6 2796 1742\n6 2798 1835\n14 2803 1941\n7 2804 2028\n4 2796 2121\n14 2788 2241\n0 2805 2348\n7 2808 2462\n10 2827 2601\n1 2815 2680\n5 2777 2768\n0 2743 2904\n5 2753 3012\n1 2725 3126\n0 2710 3243\n0 2688 3332\n0 2666 3474\n12 2664 3605\n11 2663 3742\n1 2675 3873\n15 2717 4014\n0 2925 1139\n11 2922 1160\n4 2918 1162\n1 2926 1233\n15 2919 1308\n12 2934 1382\n12 2918 1440\n12 2925 1497\n0 2930 1574\n0 2946 1644\n9 2930 1732\n10 2928 1791\n6 2933 1889\n4 2938 1975\n9 2928 2066\n9 2927 2172\n0 2926 2277\n5 2919 2375\n0 2936 2487\n4 2924 2595\n15 2939 2736\n7 2914 2825\n15 2876 2902\n5 2879 2996\n12 2854 3141\n3 2866 3248\n0 2842 3363\n0 2823 3485\n4 2831 3623\n0 2831 3748\n12 2837 3880\n134 2870 4023\n5 3049 1224\n7 3053 1246\n0 3049 1274\n7 3051 1325\n0 3049 1388\n0 3047 1440\n0 3053 1518\n10 3047 1580\n0 3053 1640\n12 3065 1707\n12 3056 1786\n4 3059 1848\n19 3053 1945\n5 3041 2006\n4 3049 2108\n12 3053 2212\n8 3053 2302\n5 3060 2399\n3 3053 2504\n13 3047 2631\n0 3070 2733\n11 3083 2866\n0 3051 2940\n0 3009 3051\n1 2991 3140\n0 2988 3260\n0 2957 3375\n1 2971 3506\n3 2945 3624\n25 2954 3746\n4 3000 3894\n349 3009 4037\n0 3180 1308\n15 3182 1339\n12 3182 1371\n0 3180 1413\n4 3182 1474\n13 3180 1561\n6 3184 1620\n0 3173 1658\n1 3184 1708\n1 3188 1779\n0 3183 1842\n3 3189 1913\n5 3185 1969\n6 3182 2052\n6 3180 2125\n0 3188 2229\n7 3183 2339\n1 3181 2424\n3 3177 2517\n3 3180 2641\n0 3180 2734\n14 3183 2881\n11 3198 3012\n0 3147 3072\n3 3123 3155\n16 3119 3280\n0 3105 3395\n13 3104 3508\n0 3101 3636\n0 3091 3754\n0 3118 3874\n545 3155 4055\n12 3313 1445\n13 3311 1455\n13 3300 1483\n14 3301 1524\n3 3300 1570\n0 3299 1644\n13 3312 1715\n0 3314 1750\n0 3302 1807\n11 3311 1880\n13 3303 1916\n8 3306 1981\n3 3320 2058\n1 3308 2126\n3 3314 2182\n10 3320 2280\n5 3308 2362\n13 3302 2467\n4 3309 2558\n3 3310 2669\n9 3294 2786\n19 3303 2886\n4 3317 2997\n3 3318 3119\n0 3284 3203\n0 3250 3307\n3 3236 3426\n0 3232 3521\n3 3246 3641\n15 3250 3767\n12 3266 3941\n722 3286 4063\n13 3442 1578\n13 3442 1609\n2 3428 1630\n4 3428 1650\n1 3440 1700\n14 3444 1775\n11 3431 1827\n17 3431 1866\n0 3449 1919\n4 3443 1966\n0 3444 2019\n8 3448 2073\n10 3430 2128\n23 3445 2204\n15 3448 2241\n0 3454 2340\n7 3438 2401\n13 3455 2507\n16 3433 2621\n23 3449 2695\n14 3434 2786\n0 3441 2902\n0 3438 3037\n12 3444 3147\n0 3457 3249\n17 3412 3346\n2 3351 3412\n15 3363 3554\n0 3380 3682\n1 3381 3785\n14 3413 3931\n892 3444 4075\n0 3559 1740\n0 3559 1744\n15 3574 1788\n3 3573 1820\n2 3573 1857\n1 3560 1909\n16 3559 1986\n0 3567 2007\n10 3571 2055\n14 3575 2112\n14 3560 2148\n20 3568 2178\n0 3575 2224\n1 3583 2288\n9 3576 2316\n10 3575 2389\n6 3592 2479\n3 3589 2549\n8 3583 2659\n0 3585 2736\n6 3570 2861\n17 3585 2976\n14 3572 3060\n24 3575 3168\n4 3589 3296\n13 3589 3411\n1 3529 3460\n1 3505 3569\n16 3509 3673\n2 3525 3816\n19 3540 3933\n1040 3589 4080\n0 3705 1936\n2 3720 1952\n2 3704 1968\n2 3704 2004\n0 3703 2033\n13 3703 2082\n14 3699 2135\n0 3682 2158\n11 3678 2225\n14 3705 2242\n4 3695 2260\n11 3703 2309\n20 3713 2353\n7 3697 2380\n22 3704 2444\n0 3721 2486\n15 3728 2543\n9 3719 2616\n16 3716 2702\n8 3720 2802\n0 3725 2901\n11 3716 3000\n2 3711 3095\n6 3720 3227\n13 3720 3328\n0 3721 3428\n14 3721 3555\n14 3659 3623\n14 3639 3701\n30 3642 3833\n433 3673 3962\n1231 3692 4080\n16 3837 2161\n15 3837 2164\n16 3836 2181\n17 3835 2186\n29 3834 2258\n30 3834 2291\n1 3835 2326\n0 3832 2350\n4 3824 2387\n14 3835 2420\n11 3841 2422\n10 3836 2460\n16 3852 2487\n10 3853 2520\n7 3846 2551\n14 3868 2599\n14 3870 2649\n0 3875 2682\n8 3867 2766\n15 3857 2864\n6 3863 2958\n7 3873 3071\n1 3868 3169\n0 3863 3283\n4 3884 3391\n1 3869 3476\n28 3881 3603\n1 3871 3690\n16 3805 3740\n15 3772 3850\n702 3805 3965\n1396 3821 4095\n450 3983 2407\n515 3967 2424\n565 3982 2440\n660 3982 2441\n743 3981 2473\n830 3968 2493\n944 3983 2540\n1035 3979 2577\n1021 3977 2601\n911 3970 2590\n738 3983 2616\n478 3992 2644\n0 3999 2652\n1 4000 2683\n9 4015 2712\n17 4000 2739\n8 4023 2754\n17 4016 2797\n7 4024 2854\n0 4047 2940\n16 4020 3046\n21 4031 3143\n17 4016 3236\n0 4027 3324\n4 4031 3438\n15 4035 3543\n15 4041 3663\n28 4031 3764\n14 4002 3848\n18 3938 3902\n954 3935 3998\n1577 3952 4080\n486 385 419\n531 354 420\n517 339 438\n547 353 514\n563 339 580\n565 353 630\n594 353 697\n588 352 766\n617 352 840\n637 350 936\n680 342 1011\n702 346 1114\n695 352 1203\n740 347 1341\n771 337 1442\n795 345 1573\n828 337 1687\n869 299 1809\n903 294 1956\n959 256 2089\n1024 201 2243\n1074 142 2416\n1158 57 2590\n1244 4 2734\n1320 5 2874\n1397 11 3036\n1502 0 3191\n1587 1 3316\n1686 1 3463\n1828 0 3594\n1929 14 3771\n2073 1 3904\n531 387 434\n550 372 436\n534 388 469\n563 400 530\n580 388 581\n582 399 660\n585 399 689\n616 389 798\n632 390 861\n637 387 931\n675 391 1018\n677 402 1115\n713 392 1223\n725 385 1315\n747 385 1442\n797 370 1572\n828 362 1680\n853 361 1818\n888 335 1957\n934 297 2097\n1010 253 2258\n1081 193 2419\n1144 126 2583\n1226 28 2722\n1323 1 2882\n1381 1 3021\n1502 0 3167\n1601 13 3330\n1712 1 3475\n1814 14 3609\n1927 15 3771\n2073 16 3918\n532 450 403\n563 435 435\n534 436 497\n549 436 549\n564 436 612\n580 450 663\n582 439 714\n624 439 796\n606 440 863\n660 447 943\n663 436 1025\n702 440 1120\n703 435 1221\n730 444 1347\n763 427 1454\n790 411 1574\n837 396 1703\n861 371 1826\n904 369 1964\n935 336 2105\n995 305 2271\n1057 257 2420\n1147 194 2583\n1224 90 2722\n1299 8 2900\n1378 0 3021\n1499 0 3194\n1586 0 3316\n1712 0 3478\n1812 15 3639\n1928 14 3770\n2072 0 3931\n514 498 432\n545 486 466\n518 487 502\n577 501 564\n549 499 613\n598 500 691\n612 514 746\n615 485 827\n629 498 881\n649 495 971\n678 496 1052\n682 483 1143\n730 474 1221\n747 469 1340\n772 462 1461\n802 461 1590\n830 450 1734\n845 435 1828\n902 424 1966\n960 387 2124\n993 355 2274\n1055 313 2406\n1123 271 2590\n1221 190 2734\n1304 72 2876\n1391 16 3036\n1484 12 3195\n1587 1 3317\n1683 0 3464\n1799 1 3626\n1898 1 3786\n2057 1 3936\n531 552 450\n518 552 471\n547 551 516\n564 568 566\n566 550 630\n582 563 666\n595 565 749\n599 555 829\n630 554 906\n646 550 977\n660 548 1056\n706 546 1162\n720 530 1251\n744 546 1376\n764 536 1472\n793 512 1596\n835 499 1732\n863 476 1840\n903 484 1989\n941 450 2135\n989 434 2275\n1052 390 2446\n1118 351 2604\n1206 287 2753\n1292 207 2879\n1371 98 3014\n1467 7 3182\n1583 0 3345\n1678 0 3480\n1790 0 3627\n1923 13 3770\n2028 14 3930\n501 618 484\n516 631 502\n516 620 546\n547 617 596\n564 633 644\n608 631 711\n583 630 750\n611 603 833\n625 613 912\n647 615 996\n667 615 1094\n695 604 1191\n714 596 1286\n727 590 1399\n769 585 1510\n772 577 1619\n803 578 1743\n867 554 1882\n905 536 2010\n949 519 2146\n991 494 2292\n1034 472 2457\n1100 437 2602\n1167 377 2746\n1274 331 2897\n1381 246 3050\n1467 136 3185\n1564 20 3323\n1663 13 3476\n1781 0 3626\n1893 0 3761\n2049 1 3933\n495 703 524\n512 714 549\n504 684 552\n560 711 628\n564 714 664\n566 698 727\n596 711 809\n584 685 874\n607 668 940\n612 656 1011\n644 670 1127\n675 688 1207\n698 669 1302\n730 658 1413\n766 662 1527\n748 658 1643\n792 639 1784\n834 637 1888\n857 620 2031\n921 592 2185\n972 584 2322\n1030 544 2474\n1102 518 2620\n1169 486 2779\n1230 436 2891\n1338 369 3053\n1424 311 3178\n1537 228 3343\n1646 94 3490\n1768 12 3622\n1886 4 3787\n1991 0 3921\n453 792 526\n482 782 552\n495 769 586\n525 796 631\n550 798 708\n575 782 749\n560 797 808\n578 807 862\n605 776 944\n605 766 1018\n590 742 1109\n583 732 1211\n639 747 1336\n677 743 1439\n707 750 1558\n736 735 1670\n761 732 1788\n806 716 1911\n838 704 2042\n881 692 2189\n932 662 2343\n993 646 2515\n1080 618 2645\n1142 579 2778\n1217 550 2919\n1323 489 3062\n1413 453 3186\n1487 392 3352\n1617 326 3504\n1722 239 3642\n1841 134 3776\n1975 70 3931\n417 866 551\n428 878 591\n463 869 627\n505 881 676\n527 880 729\n542 871 767\n558 880 844\n560 870 898\n578 865 974\n578 853 1054\n564 852 1133\n566 846 1246\n563 841 1349\n590 810 1439\n625 816 1576\n669 828 1689\n707 815 1832\n739 799 1943\n787 793 2068\n834 776 2216\n892 755 2368\n941 738 2498\n1015 724 2637\n1097 694 2790\n1181 650 2928\n1283 618 3067\n1369 584 3204\n1471 537 3341\n1561 494 3472\n1689 429 3632\n1810 399 3776\n1947 366 3955\n381 966 571\n387 955 625\n411 969 645\n463 978 684\n493 1005 757\n507 971 811\n522 984 868\n494 991 921\n502 996 1001\n520 968 1085\n531 974 1167\n531 962 1286\n527 945 1378\n513 917 1485\n528 906 1609\n560 894 1759\n627 897 1864\n675 894 1982\n724 884 2114\n760 887 2256\n810 867 2397\n879 854 2533\n940 826 2654\n1054 807 2806\n1119 769 2939\n1195 746 3082\n1313 716 3215\n1425 679 3357\n1545 633 3496\n1632 615 3661\n1748 575 3814\n1903 581 3939\n282 1085 623\n277 1088 624\n320 1092 663\n373 1107 729\n418 1104 780\n448 1097 816\n473 1107 898\n478 1095 963\n465 1107 1029\n445 1117 1116\n505 1082 1227\n463 1092 1284\n470 1064 1403\n455 1047 1515\n446 1036 1638\n452 1016 1756\n459 992 1883\n472 983 2021\n605 991 2152\n675 987 2289\n735 978 2434\n813 952 2556\n878 949 2697\n952 923 2835\n1050 897 2963\n1153 875 3096\n1239 847 3239\n1354 807 3360\n1479 784 3507\n1592 763 3651\n1705 751 3771\n1865 761 3949\n110 1195 632\n92 1196 638\n162 1197 683\n246 1220 762\n336 1213 808\n373 1211 858\n370 1223 942\n372 1227 982\n354 1229 1038\n366 1229 1141\n401 1215 1241\n411 1211 1321\n396 1213 1445\n376 1190 1542\n367 1182 1663\n328 1170 1783\n298 1144 1902\n308 1128 2042\n314 1098 2189\n396 1085 2305\n583 1093 2452\n681 1077 2582\n782 1071 2728\n869 1048 2847\n938 1034 2976\n1055 1021 3130\n1153 984 3242\n1277 958 3375\n1396 935 3515\n1510 924 3643\n1654 916 3790\n1789 910 3967\n9 1326 649\n0 1316 671\n10 1325 709\n57 1337 779\n126 1332 838\n144 1344 884\n190 1359 952\n206 1346 1038\n203 1361 1108\n191 1351 1186\n173 1359 1275\n255 1370 1373\n239 1345 1480\n196 1342 1595\n175 1320 1682\n135 1303 1807\n107 1277 1918\n70 1259 2053\n64 1244 2188\n69 1210 2348\n94 1182 2472\n343 1185 2596\n591 1207 2749\n701 1193 2869\n811 1169 2996\n922 1150 3130\n1048 1131 3269\n1170 1104 3394\n1308 1086 3521\n1423 1074 3657\n1570 1067 3816\n1720 1083 3963\n16 1456 665\n26 1457 707\n15 1462 753\n27 1474 799\n23 1477 846\n4 1486 913\n1 1490 978\n12 1495 1055\n19 1487 1111\n18 1501 1204\n12 1495 1286\n16 1505 1384\n36 1491 1478\n36 1487 1611\n9 1481 1708\n8 1463 1807\n0 1454 1930\n0 1440 2060\n5 1400 2180\n15 1379 2362\n32 1340 2477\n15 1312 2613\n63 1289 2732\n372 1304 2875\n628 1309 3012\n786 1286 3154\n896 1258 3271\n1043 1249 3406\n1171 1238 3541\n1323 1224 3663\n1474 1229 3795\n1630 1238 3963\n0 1607 695\n18 1597 724\n0 1610 762\n6 1617 823\n10 1636 877\n13 1629 941\n0 1633 993\n0 1646 1046\n13 1637 1156\n12 1646 1225\n19 1652 1315\n6 1644 1416\n2 1651 1526\n5 1641 1615\n9 1642 1724\n2 1620 1839\n15 1619 1984\n0 1608 2120\n0 1586 2215\n3 1551 2347\n9 1530 2498\n5 1498 2624\n20 1461 2764\n16 1420 2886\n98 1414 3030\n494 1428 3160\n728 1421 3283\n873 1408 3426\n1023 1378 3556\n1173 1372 3674\n1360 1359 3804\n1530 1392 3959\n10 1757 727\n17 1742 761\n0 1750 785\n6 1757 830\n0 1773 908\n8 1776 974\n10 1775 1043\n20 1777 1111\n8 1785 1180\n0 1809 1276\n4 1801 1352\n4 1811 1460\n8 1814 1568\n8 1814 1674\n2 1800 1774\n8 1789 1877\n8 1781 1985\n7 1757 2123\n3 1739 2241\n9 1721 2372\n6 1701 2499\n0 1666 2621\n5 1636 2768\n4 1612 2906\n6 1572 3018\n8 1543 3161\n177 1527 3270\n662 1570 3396\n861 1558 3553\n1036 1538 3698\n1211 1540 3820\n1401 1548 3967\n0 1888 739\n8 1897 764\n0 1904 826\n0 1920 870\n10 1914 911\n10 1919 994\n8 1925 1073\n0 1954 1117\n0 1953 1201\n12 1948 1296\n6 1936 1383\n0 1942 1484\n8 1942 1574\n8 1953 1676\n12 1970 1815\n15 1953 1927\n1 1946 2050\n7 1929 2171\n8 1919 2292\n8 1896 2408\n7 1871 2523\n0 1854 2666\n1 1830 2805\n4 1809 2914\n4 1757 3035\n21 1715 3159\n8 1690 3300\n13 1668 3427\n463 1701 3562\n923 1736 3688\n1115 1737 3835\n1293 1738 3958\n0 2059 764\n8 2050 811\n2 2044 845\n0 2050 894\n7 2067 973\n15 2074 1041\n9 2069 1109\n5 2084 1185\n0 2076 1264\n0 2098 1342\n7 2089 1448\n11 2089 1520\n16 2092 1619\n2 2104 1715\n9 2113 1849\n3 2130 1974\n8 2107 2050\n14 2092 2187\n0 2076 2301\n18 2059 2424\n3 2046 2556\n5 2014 2680\n11 2003 2809\n0 1981 2950\n18 1930 3054\n0 1907 3166\n26 1871 3294\n14 1845 3423\n10 1821 3546\n259 1820 3712\n927 1910 3831\n1285 1973 3959\n1 2197 823\n7 2208 838\n2 2199 877\n16 2215 941\n23 2208 1002\n7 2215 1074\n12 2224 1140\n12 2241 1221\n0 2233 1305\n20 2250 1397\n0 2247 1481\n14 2239 1578\n0 2244 1656\n0 2263 1755\n14 2259 1892\n8 2250 1993\n7 2293 2145\n23 2260 2227\n16 2237 2357\n22 2215 2455\n22 2189 2572\n9 2180 2688\n0 2170 2820\n7 2132 2929\n24 2114 3051\n12 2077 3180\n12 2050 3300\n10 2016 3423\n14 2006 3563\n31 1990 3695\n300 1998 3844\n1012 2083 3993\n0 2370 837\n1 2360 876\n0 2362 917\n14 2363 973\n8 2370 1049\n1 2376 1109\n3 2384 1182\n9 2386 1267\n16 2388 1358\n8 2382 1418\n16 2395 1524\n12 2400 1617\n0 2396 1692\n3 2400 1816\n15 2404 1940\n4 2399 2016\n8 2408 2161\n14 2439 2288\n8 2392 2373\n6 2368 2483\n11 2348 2616\n6 2347 2715\n10 2337 2843\n16 2286 2964\n26 2265 3088\n13 2239 3193\n6 2220 3315\n12 2191 3458\n5 2185 3551\n22 2173 3703\n0 2186 3851\n726 2209 3974\n0 2509 894\n7 2493 926\n16 2509 974\n21 2523 1020\n0 2516 1096\n6 2516 1171\n0 2522 1237\n16 2525 1309\n18 2531 1386\n9 2535 1475\n0 2536 1567\n10 2531 1646\n13 2538 1748\n10 2540 1852\n3 2545 1936\n1 2549 2068\n2 2551 2181\n9 2552 2304\n6 2588 2439\n0 2546 2506\n6 2525 2621\n27 2482 2741\n13 2461 2848\n25 2450 2969\n23 2417 3099\n0 2416 3207\n0 2376 3314\n0 2358 3434\n12 2343 3594\n5 2343 3719\n11 2337 3849\n544 2391 3988\n8 2649 969\n2 2646 981\n0 2645 1012\n14 2653 1094\n14 2651 1142\n16 2656 1226\n22 2661 1291\n4 2665 1360\n16 2668 1432\n12 2660 1525\n12 2674 1612\n11 2672 1698\n14 2663 1799\n7 2693 1899\n7 2666 1985\n13 2674 2110\n25 2669 2221\n7 2670 2320\n18 2692 2443\n1 2714 2583\n12 2660 2659\n0 2645 2768\n0 2623 2861\n20 2600 2969\n7 2576 3088\n17 2553 3207\n1 2534 3324\n9 2526 3461\n11 2501 3587\n1 2501 3728\n5 2507 3837\n255 2549 4023\n12 2792 1029\n11 2776 1062\n10 2790 1108\n11 2796 1147\n19 2792 1225\n9 2792 1290\n5 2803 1362\n8 2800 1430\n20 2795 1504\n7 2801 1578\n12 2810 1662\n10 2806 1752\n11 2799 1838\n27 2803 1947\n11 2808 2032\n4 2804 2126\n18 2799 2231\n0 2808 2350\n22 2814 2468\n8 2827 2598\n1 2830 2695\n10 2783 2763\n5 2748 2909\n5 2732 3002\n4 2736 3103\n1 2710 3240\n19 2680 3337\n4 2665 3474\n18 2684 3615\n11 2660 3740\n4 2679 3857\n182 2708 4006\n4 2921 1100\n0 2911 1132\n5 2918 1160\n6 2924 1230\n17 2923 1297\n22 2914 1365\n16 2926 1440\n12 2926 1500\n3 2930 1571\n0 2930 1630\n4 2933 1723\n6 2921 1783\n6 2931 1888\n4 2938 1973\n1 2932 2053\n16 2934 2179\n0 2930 2281\n13 2931 2377\n0 2932 2486\n10 2940 2603\n20 2944 2732\n15 2924 2835\n8 2890 2905\n16 2890 3007\n15 2858 3145\n16 2841 3232\n17 2826 3364\n4 2824 3486\n14 2822 3620\n4 2821 3740\n24 2825 3881\n324 2861 4044\n20 3049 1194\n7 3041 1218\n16 3037 1242\n0 3053 1282\n0 3052 1359\n4 3063 1452\n13 3049 1498\n5 3056 1575\n12 3049 1640\n12 3052 1687\n12 3053 1757\n4 3065 1855\n1 3058 1944\n22 3059 2023\n4 3056 2093\n12 3056 2206\n21 3049 2298\n7 3048 2398\n0 3053 2497\n13 3050 2624\n21 3070 2743\n5 3074 2857\n1 3049 2939\n17 2995 3053\n12 2980 3140\n0 2989 3260\n1 2957 3375\n3 2971 3503\n14 2960 3628\n5 2969 3761\n5 2977 3878\n476 3005 4036\n6 3179 1275\n4 3184 1312\n25 3174 1328\n0 3195 1381\n5 3185 1473\n15 3180 1537\n22 3173 1606\n0 3183 1668\n0 3180 1707\n8 3175 1758\n9 3182 1839\n0 3180 1920\n13 3193 1978\n6 3183 2053\n10 3182 2128\n15 3181 2229\n0 3187 2326\n12 3181 2428\n7 3180 2521\n9 3182 2644\n3 3182 2737\n5 3174 2871\n11 3198 3012\n17 3154 3084\n4 3123 3178\n16 3119 3280\n0 3106 3396\n13 3104 3508\n0 3101 3636\n3 3092 3755\n15 3117 3879\n617 3151 4042\n15 3288 1407\n1 3302 1437\n13 3313 1456\n14 3302 1515\n18 3298 1557\n3 3318 1618\n14 3312 1706\n10 3304 1750\n16 3314 1823\n4 3301 1872\n24 3306 1921\n21 3311 1989\n7 3312 2056\n7 3314 2132\n16 3312 2187\n10 3317 2283\n7 3302 2374\n16 3305 2470\n8 3306 2574\n4 3306 2664\n24 3303 2793\n3 3314 2883\n13 3322 3003\n24 3327 3128\n0 3281 3203\n0 3240 3271\n0 3235 3398\n14 3248 3536\n1 3247 3641\n15 3250 3767\n0 3277 3912\n777 3282 4057\n18 3432 1539\n4 3432 1571\n15 3442 1615\n4 3441 1645\n14 3431 1694\n25 3431 1770\n14 3428 1818\n26 3442 1878\n0 3444 1903\n3 3441 1934\n0 3437 1996\n10 3448 2075\n4 3437 2112\n23 3445 2204\n16 3442 2236\n0 3458 2325\n2 3430 2393\n1 3443 2492\n14 3435 2621\n0 3437 2685\n21 3448 2818\n0 3444 2911\n0 3442 3039\n18 3441 3151\n0 3455 3247\n3 3399 3332\n13 3367 3425\n16 3364 3555\n0 3380 3659\n14 3380 3784\n14 3410 3927\n941 3428 4046\n0 3559 1727\n1 3560 1728\n13 3572 1757\n3 3575 1791\n4 3574 1832\n26 3561 1916\n14 3570 1956\n16 3566 2011\n4 3565 2049\n9 3565 2104\n14 3568 2125\n20 3568 2172\n1 3573 2224\n8 3583 2280\n16 3575 2337\n10 3578 2391\n10 3575 2471\n6 3585 2549\n0 3575 2648\n1 3568 2729\n6 3569 2849\n7 3573 2943\n14 3578 3063\n3 3587 3162\n14 3575 3294\n14 3588 3411\n1 3529 3460\n17 3481 3558\n13 3511 3671\n17 3513 3789\n169 3538 3948\n1086 3564 4076\n1 3704 1904\n1 3704 1936\n3 3704 1967\n2 3705 1972\n0 3705 2006\n1 3692 2066\n0 3691 2121\n12 3693 2170\n0 3689 2225\n1 3698 2231\n11 3706 2268\n16 3699 2305\n20 3713 2370\n15 3705 2389\n22 3704 2428\n18 3713 2486\n8 3729 2529\n18 3713 2605\n22 3719 2707\n16 3711 2800\n21 3716 2899\n6 3711 2995\n12 3720 3103\n22 3717 3213\n26 3732 3336\n2 3719 3428\n16 3723 3556\n16 3659 3623\n17 3640 3701\n30 3642 3833\n541 3671 3963\n1252 3706 4082\n14 3835 2131\n2 3822 2150\n15 3835 2177\n16 3836 2181\n3 3834 2213\n28 3834 2264\n1 3836 2300\n1 3832 2350\n4 3825 2387\n15 3837 2422\n0 3850 2421\n0 3836 2460\n16 3852 2487\n11 3847 2514\n13 3851 2557\n8 3858 2594\n0 3876 2649\n0 3868 2675\n8 3876 2743\n15 3858 2865\n16 3873 2968\n25 3862 3070\n1 3868 3169\n4 3858 3280\n5 3875 3364\n6 3868 3477\n29 3882 3600\n15 3882 3701\n16 3805 3740\n15 3786 3834\n800 3787 3982\n1412 3839 4093\n482 3967 2377\n546 3967 2393\n595 3981 2424\n647 3968 2425\n759 3983 2444\n843 3994 2475\n944 3957 2527\n1069 3968 2575\n1087 3967 2591\n969 3957 2593\n850 3977 2646\n621 3983 2663\n165 3994 2664\n1 3997 2682\n7 3999 2704\n16 3999 2746\n24 4023 2762\n25 4016 2813\n16 4031 2861\n3 4021 2930\n14 4022 3046\n14 4024 3136\n14 4016 3235\n0 4027 3324\n16 4043 3451\n16 4028 3540\n14 4040 3663\n7 4043 3739\n27 4016 3862\n82 3938 3889\n986 3934 4012\n1654 3967 4095\n552 381 402\n563 369 434\n583 338 423\n568 353 500\n584 369 536\n614 342 604\n629 353 657\n650 353 745\n674 353 825\n681 364 900\n711 352 994\n716 344 1098\n757 353 1207\n772 342 1314\n821 328 1436\n843 335 1560\n862 335 1671\n910 297 1802\n931 289 1942\n987 231 2080\n1034 196 2244\n1111 142 2431\n1181 48 2583\n1272 12 2737\n1344 0 2875\n1441 13 3041\n1533 5 3167\n1648 2 3320\n1748 0 3478\n1862 0 3609\n1975 0 3815\n2090 14 3918\n567 402 388\n610 370 418\n599 402 469\n597 389 531\n598 388 554\n626 403 644\n620 402 694\n646 404 773\n647 394 842\n681 402 927\n717 400 1022\n731 378 1120\n757 394 1213\n770 381 1313\n804 384 1457\n831 384 1569\n871 362 1689\n903 338 1819\n937 322 1950\n984 291 2105\n1041 238 2246\n1112 193 2431\n1168 106 2572\n1245 13 2711\n1334 0 2874\n1435 16 3041\n1560 0 3185\n1647 0 3329\n1758 12 3488\n1845 1 3609\n1975 14 3783\n2090 14 3918\n584 422 404\n600 406 433\n584 435 485\n600 437 564\n600 436 582\n631 465 650\n636 450 712\n661 450 779\n680 449 888\n686 436 945\n732 428 1030\n722 437 1123\n786 431 1212\n781 422 1338\n802 427 1452\n837 412 1564\n858 386 1702\n911 386 1828\n942 348 1952\n972 344 2106\n1058 295 2287\n1125 241 2416\n1191 161 2569\n1260 75 2724\n1304 11 2852\n1422 3 3007\n1510 4 3170\n1644 3 3319\n1718 1 3477\n1845 0 3610\n1933 1 3800\n2075 15 3918\n613 500 404\n612 486 437\n627 500 499\n645 501 549\n643 501 586\n647 488 639\n664 486 718\n666 490 775\n686 489 881\n701 488 949\n722 475 1051\n728 483 1130\n760 486 1227\n775 478 1341\n807 473 1451\n813 458 1587\n855 444 1703\n894 443 1819\n955 412 1964\n985 386 2135\n1047 346 2261\n1111 309 2442\n1166 255 2602\n1239 168 2717\n1326 67 2881\n1424 2 3012\n1528 3 3169\n1604 12 3317\n1716 1 3477\n1818 13 3635\n1957 0 3768\n2087 14 3917\n598 550 434\n613 566 455\n586 564 530\n613 552 567\n660 566 635\n646 564 684\n658 568 759\n677 565 825\n679 552 926\n695 550 989\n705 550 1059\n727 542 1157\n767 552 1269\n788 529 1373\n823 530 1510\n853 504 1597\n880 488 1744\n908 479 1861\n959 463 1991\n993 458 2137\n1051 419 2279\n1112 395 2463\n1172 330 2591\n1264 276 2758\n1322 194 2891\n1432 90 3019\n1509 0 3192\n1594 0 3314\n1719 1 3480\n1807 13 3636\n1971 0 3772\n2058 0 3906\n583 604 473\n570 615 478\n597 617 521\n602 604 569\n630 631 662\n663 631 712\n647 618 788\n666 629 843\n684 605 929\n722 609 1009\n727 622 1086\n754 605 1175\n753 614 1292\n768 605 1380\n810 593 1488\n838 588 1631\n842 572 1740\n893 554 1875\n943 541 2026\n976 518 2154\n1027 505 2308\n1097 469 2455\n1155 421 2594\n1238 379 2766\n1331 318 2909\n1397 241 3052\n1494 134 3191\n1586 28 3337\n1700 0 3484\n1799 2 3628\n1916 13 3776\n2054 0 3962\n526 710 487\n551 713 535\n581 697 567\n572 726 600\n602 699 639\n629 728 728\n639 728 792\n658 712 864\n673 670 933\n682 672 1014\n671 695 1106\n724 678 1198\n753 681 1299\n785 668 1407\n817 657 1526\n829 664 1650\n845 655 1764\n855 637 1897\n915 622 2036\n959 594 2174\n1025 580 2329\n1080 540 2475\n1143 514 2605\n1216 467 2770\n1305 437 2916\n1378 382 3045\n1471 286 3201\n1562 200 3333\n1693 75 3498\n1784 9 3638\n1907 1 3763\n2015 1 3921\n532 766 526\n561 766 569\n571 778 613\n579 767 656\n609 796 696\n627 784 762\n615 810 810\n629 784 868\n606 804 957\n654 767 1030\n634 764 1112\n672 739 1241\n732 750 1311\n730 759 1417\n750 751 1546\n769 738 1655\n810 735 1785\n856 718 1939\n876 697 2065\n941 687 2194\n993 659 2352\n1027 644 2490\n1106 622 2630\n1180 585 2761\n1266 548 2901\n1354 497 3078\n1441 434 3201\n1549 390 3354\n1662 312 3480\n1758 212 3652\n1879 129 3783\n1995 36 3922\n496 854 592\n508 865 609\n517 864 617\n538 864 664\n554 880 699\n593 881 749\n610 883 829\n622 899 893\n620 880 966\n612 888 1037\n601 866 1145\n600 846 1234\n634 833 1336\n657 823 1470\n689 832 1593\n731 832 1694\n774 825 1838\n798 804 1944\n834 803 2072\n905 783 2221\n934 751 2364\n995 737 2504\n1065 708 2654\n1173 670 2776\n1212 642 2912\n1291 633 3066\n1402 576 3177\n1501 525 3342\n1613 483 3479\n1723 420 3631\n1837 383 3773\n1955 348 3944\n483 966 596\n483 952 624\n489 978 647\n516 977 667\n529 980 729\n555 982 774\n577 1007 858\n577 992 925\n575 990 994\n591 973 1076\n575 975 1176\n580 963 1265\n573 934 1376\n564 935 1500\n584 908 1602\n629 900 1706\n681 920 1864\n726 911 1964\n768 900 2107\n840 881 2253\n905 859 2395\n937 834 2520\n991 833 2675\n1064 805 2814\n1170 787 2969\n1255 739 3093\n1351 712 3199\n1457 674 3351\n1546 635 3484\n1690 597 3640\n1792 563 3780\n1899 567 3918\n385 1068 621\n408 1072 641\n419 1068 651\n446 1090 686\n493 1084 784\n513 1083 815\n531 1109 870\n531 1117 958\n552 1112 1015\n534 1113 1095\n536 1083 1168\n543 1104 1296\n531 1056 1375\n529 1057 1508\n517 1041 1647\n543 1023 1747\n538 995 1874\n589 998 1989\n683 1007 2099\n749 998 2271\n799 981 2401\n880 959 2562\n947 946 2689\n1035 926 2808\n1111 900 2975\n1190 872 3102\n1282 834 3249\n1402 813 3364\n1466 798 3475\n1618 766 3648\n1737 757 3772\n1871 745 3934\n265 1191 651\n289 1207 652\n299 1193 679\n308 1210 708\n371 1215 768\n444 1215 830\n469 1240 905\n456 1241 971\n486 1232 1049\n450 1240 1116\n488 1229 1218\n467 1227 1310\n475 1199 1444\n456 1190 1517\n439 1170 1660\n417 1163 1775\n432 1142 1906\n424 1120 2021\n426 1104 2148\n560 1111 2303\n676 1101 2424\n766 1083 2554\n840 1071 2711\n934 1057 2850\n1043 1031 2997\n1096 1006 3105\n1205 985 3243\n1297 962 3382\n1440 935 3528\n1552 925 3614\n1676 905 3772\n1844 912 3950\n53 1329 657\n64 1324 681\n77 1324 709\n87 1342 737\n174 1363 815\n295 1360 885\n341 1357 942\n337 1370 1004\n347 1368 1092\n344 1362 1156\n326 1363 1234\n371 1372 1341\n381 1374 1450\n347 1342 1577\n338 1327 1663\n288 1321 1786\n254 1291 1906\n228 1259 2038\n248 1232 2180\n244 1222 2330\n305 1183 2445\n551 1209 2603\n693 1199 2735\n774 1191 2854\n897 1160 2980\n1005 1139 3134\n1130 1124 3240\n1238 1099 3376\n1356 1085 3535\n1469 1083 3674\n1615 1057 3831\n1740 1067 3944\n16 1452 707\n10 1461 743\n11 1463 747\n10 1469 795\n9 1484 874\n44 1488 930\n58 1496 955\n95 1503 1046\n112 1502 1118\n110 1490 1204\n90 1499 1275\n67 1509 1382\n202 1503 1467\n131 1495 1596\n110 1488 1702\n84 1463 1859\n51 1439 1931\n28 1419 2079\n13 1399 2221\n0 1393 2352\n9 1365 2484\n46 1319 2629\n227 1296 2734\n581 1322 2879\n740 1308 3007\n864 1282 3128\n981 1275 3270\n1103 1246 3373\n1239 1236 3537\n1371 1225 3667\n1508 1215 3812\n1679 1222 3934\n28 1599 715\n9 1609 749\n0 1615 748\n14 1625 798\n14 1628 857\n34 1626 953\n20 1637 1000\n1 1657 1108\n2 1662 1173\n8 1646 1268\n23 1649 1348\n7 1638 1442\n2 1667 1549\n0 1658 1611\n0 1644 1766\n0 1650 1884\n11 1623 1997\n18 1587 2132\n14 1573 2275\n19 1545 2384\n19 1522 2539\n9 1494 2652\n12 1454 2778\n2 1422 2905\n264 1420 3023\n636 1436 3119\n825 1413 3275\n956 1405 3421\n1089 1367 3530\n1259 1367 3659\n1397 1360 3806\n1567 1378 3961\n0 1747 751\n0 1758 763\n1 1765 782\n0 1767 821\n0 1773 900\n3 1776 977\n8 1785 1055\n8 1791 1116\n0 1803 1197\n0 1802 1277\n2 1802 1383\n4 1816 1462\n1 1820 1559\n14 1830 1679\n8 1798 1803\n10 1803 1902\n10 1785 2022\n19 1764 2137\n2 1749 2253\n6 1731 2406\n3 1709 2553\n5 1676 2666\n6 1635 2776\n19 1610 2925\n6 1562 3046\n12 1530 3178\n404 1554 3289\n800 1570 3417\n957 1558 3553\n1074 1537 3687\n1255 1527 3840\n1442 1538 3975\n0 1895 754\n1 1904 740\n0 1904 780\n0 1912 813\n2 1918 887\n6 1920 992\n0 1936 1077\n10 1935 1142\n8 1952 1217\n12 1944 1301\n20 1940 1402\n0 1942 1486\n14 1951 1585\n8 1951 1689\n0 1976 1811\n0 1955 1921\n8 1936 2045\n2 1936 2148\n1 1927 2275\n6 1917 2386\n4 1880 2540\n5 1850 2649\n0 1823 2784\n6 1778 2915\n12 1740 3054\n0 1710 3188\n6 1686 3306\n136 1663 3450\n701 1709 3562\n976 1729 3674\n1171 1719 3844\n1350 1714 4001\n2 2052 757\n1 2052 758\n9 2043 811\n0 2073 846\n7 2089 920\n14 2073 1000\n3 2084 1095\n7 2084 1156\n0 2098 1230\n0 2095 1321\n0 2094 1416\n7 2100 1514\n5 2095 1624\n7 2102 1731\n0 2124 1861\n0 2135 1974\n0 2107 2050\n18 2091 2180\n7 2090 2292\n1 2066 2424\n12 2053 2553\n9 2031 2675\n0 1983 2816\n0 1959 2926\n14 1929 3051\n14 1893 3172\n3 1879 3321\n12 1843 3462\n0 1809 3579\n455 1840 3690\n1022 1914 3842\n1305 1957 3974\n7 2206 785\n9 2191 813\n7 2191 844\n0 2222 913\n13 2215 988\n3 2208 1050\n0 2231 1133\n0 2227 1210\n19 2237 1275\n5 2244 1369\n3 2246 1465\n0 2245 1563\n0 2262 1667\n7 2253 1741\n0 2265 1864\n14 2277 1999\n8 2291 2123\n2 2256 2215\n7 2247 2311\n0 2236 2444\n19 2218 2565\n10 2196 2669\n0 2175 2791\n16 2122 2949\n26 2102 3047\n9 2080 3187\n9 2044 3313\n13 2013 3430\n4 1999 3568\n1 1983 3725\n487 2011 3831\n1133 2083 3968\n16 2346 809\n18 2360 837\n2 2356 869\n8 2382 926\n0 2376 982\n23 2368 1095\n15 2378 1182\n6 2379 1246\n28 2376 1330\n6 2394 1436\n7 2402 1506\n6 2394 1611\n0 2392 1721\n3 2400 1822\n8 2411 1921\n8 2414 2034\n14 2408 2161\n3 2438 2287\n13 2390 2367\n14 2378 2487\n6 2361 2620\n18 2342 2741\n11 2323 2836\n14 2298 2956\n14 2266 3060\n9 2242 3188\n10 2211 3330\n10 2185 3458\n24 2177 3589\n18 2167 3698\n83 2182 3823\n812 2219 3990\n20 2499 866\n6 2483 884\n17 2494 925\n10 2520 982\n11 2525 1059\n0 2531 1148\n0 2525 1252\n4 2539 1322\n8 2539 1382\n11 2531 1476\n0 2536 1581\n7 2547 1653\n12 2547 1753\n4 2547 1848\n0 2552 1956\n3 2547 2063\n12 2552 2179\n0 2568 2310\n19 2576 2456\n4 2531 2525\n0 2515 2622\n5 2493 2764\n21 2467 2876\n25 2454 2977\n6 2430 3093\n19 2402 3213\n0 2378 3323\n4 2364 3424\n8 2357 3577\n5 2348 3727\n10 2349 3857\n669 2393 4007\n10 2633 932\n2 2638 948\n15 2646 992\n10 2643 1060\n7 2649 1114\n8 2664 1204\n0 2661 1281\n0 2674 1387\n12 2677 1442\n21 2660 1529\n10 2666 1601\n22 2661 1698\n17 2672 1801\n0 2689 1908\n5 2682 2002\n21 2682 2121\n0 2674 2221\n2 2687 2338\n14 2688 2451\n15 2700 2588\n17 2646 2666\n14 2631 2768\n9 2620 2879\n4 2594 2996\n14 2594 3096\n20 2561 3215\n16 2544 3325\n26 2502 3458\n0 2511 3578\n4 2491 3748\n13 2508 3863\n483 2544 4013\n9 2790 976\n12 2782 1011\n15 2797 1056\n22 2799 1099\n9 2787 1169\n2 2794 1251\n8 2790 1348\n18 2798 1424\n12 2805 1490\n0 2810 1558\n0 2805 1667\n9 2804 1751\n24 2796 1854\n5 2808 1941\n7 2808 2042\n5 2807 2147\n3 2814 2236\n5 2806 2318\n16 2808 2458\n7 2825 2572\n6 2829 2694\n0 2781 2791\n14 2743 2909\n38 2748 3003\n1 2719 3111\n1 2718 3241\n0 2691 3332\n2 2679 3447\n5 2669 3600\n5 2666 3702\n2 2687 3885\n384 2711 4019\n4 2922 1044\n0 2918 1072\n12 2914 1138\n15 2926 1181\n2 2908 1258\n11 2928 1318\n12 2939 1412\n4 2945 1504\n2 2931 1562\n23 2924 1615\n16 2937 1709\n27 2938 1803\n12 2932 1867\n0 2936 1978\n11 2940 2079\n6 2945 2137\n2 2948 2235\n16 2932 2359\n26 2908 2492\n20 2923 2599\n13 2942 2722\n5 2929 2807\n0 2899 2904\n4 2878 3019\n0 2874 3120\n16 2841 3240\n5 2837 3383\n0 2824 3486\n0 2824 3607\n13 2804 3744\n13 2810 3875\n478 2870 4001\n14 3051 1159\n0 3062 1192\n16 3038 1237\n18 3040 1280\n4 3047 1343\n24 3041 1404\n2 3051 1490\n12 3064 1567\n15 3059 1640\n0 3051 1693\n4 3056 1794\n13 3062 1847\n4 3063 1948\n4 3062 2034\n5 3058 2105\n5 3056 2199\n4 3056 2310\n4 3062 2407\n4 3053 2505\n10 3055 2617\n2 3068 2716\n9 3071 2865\n5 3054 2948\n1 3014 3053\n0 3005 3166\n0 2988 3254\n13 2973 3382\n0 2971 3484\n4 2954 3619\n0 2977 3751\n10 2975 3877\n561 3017 4001\n24 3184 1241\n3 3199 1272\n0 3182 1302\n1 3195 1374\n0 3180 1440\n15 3183 1505\n13 3170 1587\n4 3181 1668\n3 3179 1732\n3 3175 1784\n11 3185 1863\n6 3182 1928\n9 3181 1981\n18 3172 2060\n32 3170 2153\n5 3194 2222\n11 3188 2314\n0 3180 2423\n0 3187 2543\n26 3170 2641\n0 3173 2732\n5 3173 2864\n23 3186 2989\n20 3160 3089\n13 3132 3192\n13 3108 3305\n14 3116 3389\n12 3105 3507\n3 3099 3635\n14 3104 3739\n1 3141 3877\n723 3154 4017\n11 3314 1398\n12 3315 1417\n16 3316 1451\n12 3304 1483\n11 3300 1547\n0 3313 1587\n15 3313 1697\n3 3311 1750\n5 3301 1815\n16 3309 1873\n15 3314 1939\n4 3314 1989\n15 3312 2051\n7 3312 2110\n3 3314 2182\n8 3297 2269\n0 3317 2358\n27 3311 2476\n4 3310 2585\n3 3320 2679\n11 3322 2775\n22 3307 2895\n4 3314 3013\n12 3330 3123\n3 3284 3200\n47 3235 3309\n0 3247 3437\n0 3234 3553\n25 3231 3633\n9 3243 3783\n12 3265 3914\n843 3304 4058\n2 3432 1561\n4 3434 1564\n0 3429 1593\n4 3430 1631\n16 3432 1692\n1 3440 1730\n25 3428 1797\n37 3428 1876\n10 3425 1913\n2 3433 1988\n11 3428 2050\n2 3434 2095\n12 3439 2114\n21 3438 2196\n10 3446 2252\n0 3444 2342\n2 3453 2402\n5 3439 2488\n0 3458 2602\n14 3435 2683\n6 3446 2789\n2 3442 2907\n2 3438 3038\n18 3444 3149\n26 3449 3274\n13 3411 3308\n2 3376 3401\n14 3366 3569\n0 3380 3685\n2 3354 3800\n18 3408 3934\n978 3432 4089\n3 3561 1722\n0 3560 1727\n15 3573 1754\n3 3575 1790\n12 3563 1824\n2 3561 1880\n3 3559 1945\n1 3559 1998\n2 3561 2066\n24 3565 2092\n7 3551 2145\n9 3566 2182\n25 3563 2240\n26 3563 2282\n7 3582 2325\n5 3574 2393\n18 3580 2462\n6 3585 2549\n1 3582 2639\n1 3580 2747\n4 3569 2854\n14 3566 2965\n3 3589 3063\n4 3587 3163\n15 3573 3295\n1 3588 3437\n0 3550 3472\n28 3497 3546\n16 3497 3698\n3 3523 3816\n371 3541 3958\n1137 3577 4081\n16 3689 1932\n17 3692 1938\n44 3691 1964\n28 3691 1993\n28 3691 2005\n0 3691 2064\n2 3713 2095\n0 3703 2169\n4 3693 2198\n16 3685 2239\n2 3715 2272\n6 3700 2321\n5 3709 2342\n15 3705 2403\n10 3723 2427\n17 3716 2488\n0 3713 2543\n11 3729 2593\n11 3730 2683\n1 3725 2805\n8 3730 2898\n10 3716 3004\n12 3717 3125\n5 3712 3202\n6 3728 3301\n3 3719 3423\n1 3731 3554\n14 3658 3622\n14 3642 3702\n30 3642 3807\n611 3686 3981\n1286 3721 4095\n16 3824 2114\n16 3835 2133\n16 3836 2163\n16 3836 2180\n17 3821 2214\n14 3823 2253\n1 3824 2314\n1 3832 2350\n55 3813 2387\n0 3827 2432\n0 3841 2396\n33 3835 2467\n10 3829 2486\n18 3841 2534\n6 3857 2556\n10 3854 2608\n29 3859 2647\n24 3853 2706\n34 3862 2762\n12 3856 2860\n14 3860 2966\n14 3861 3054\n2 3870 3163\n10 3863 3263\n0 3855 3372\n0 3882 3494\n15 3868 3586\n15 3881 3700\n15 3790 3769\n4 3786 3816\n865 3803 3979\n1474 3837 4080\n486 3969 2379\n565 3953 2364\n599 3969 2380\n667 3953 2395\n777 3969 2443\n888 3966 2476\n986 3967 2510\n1071 3969 2575\n1164 3953 2599\n1080 3969 2618\n946 3983 2609\n763 3985 2629\n472 3997 2674\n5 3991 2700\n2 3995 2721\n11 3987 2729\n14 4005 2784\n16 4015 2840\n30 4029 2859\n19 4020 2945\n21 4025 3039\n11 4026 3148\n28 4026 3258\n42 4003 3352\n0 4017 3442\n13 4031 3559\n3 4028 3651\n26 4027 3761\n1 4029 3866\n294 3938 3875\n1051 3934 3997\n1670 3967 4095\n634 369 415\n635 369 420\n664 353 422\n662 340 484\n652 371 537\n691 353 599\n682 372 678\n703 382 749\n732 357 818\n744 353 883\n763 356 1001\n792 348 1096\n814 346 1213\n838 347 1306\n872 346 1428\n874 337 1551\n908 315 1661\n939 301 1807\n987 280 1935\n1043 237 2095\n1102 198 2260\n1175 112 2426\n1251 39 2578\n1323 0 2731\n1401 17 2873\n1479 0 3020\n1576 5 3156\n1683 5 3332\n1787 3 3491\n1892 1 3594\n2037 13 3769\n2138 0 3921\n644 413 413\n649 384 403\n679 403 493\n650 402 488\n664 403 567\n678 416 627\n701 418 710\n712 420 775\n730 403 842\n736 413 912\n765 405 1022\n803 395 1125\n828 390 1222\n848 384 1333\n868 384 1442\n898 363 1571\n940 353 1706\n948 339 1798\n997 322 1962\n1039 285 2102\n1102 239 2246\n1170 169 2431\n1253 86 2583\n1318 14 2734\n1401 10 2869\n1478 0 3025\n1579 3 3161\n1680 2 3325\n1782 1 3489\n1892 0 3593\n1998 3 3758\n2138 3 3905\n665 406 403\n679 418 435\n691 435 483\n651 437 546\n666 450 595\n683 464 633\n712 439 696\n700 453 765\n721 461 850\n758 453 942\n750 467 1027\n801 438 1120\n814 424 1216\n833 424 1329\n849 423 1452\n904 407 1570\n929 394 1695\n959 370 1826\n997 363 1960\n1051 318 2113\n1109 281 2275\n1167 213 2411\n1246 158 2583\n1302 56 2718\n1399 0 2866\n1477 1 3022\n1576 1 3186\n1654 1 3316\n1768 15 3461\n1878 12 3620\n2021 1 3757\n2110 1 3903\n662 482 416\n665 485 452\n679 484 515\n664 486 548\n679 500 599\n692 513 646\n712 517 743\n729 511 793\n723 489 864\n747 510 955\n780 499 1055\n780 488 1117\n818 480 1232\n826 485 1356\n869 468 1467\n910 457 1594\n935 432 1712\n963 407 1830\n1015 411 1988\n1037 378 2117\n1112 341 2269\n1163 282 2420\n1252 236 2606\n1330 151 2732\n1379 35 2876\n1494 5 3025\n1569 0 3178\n1666 11 3328\n1775 0 3489\n1869 0 3605\n1996 1 3783\n2107 1 3920\n691 551 435\n680 566 439\n680 551 516\n678 552 551\n709 564 616\n685 564 695\n728 566 744\n742 565 824\n724 566 911\n771 561 998\n781 563 1066\n793 539 1139\n814 540 1251\n854 527 1373\n853 507 1476\n883 516 1595\n921 510 1743\n973 479 1864\n1010 470 1983\n1038 451 2131\n1085 411 2268\n1172 362 2431\n1225 323 2596\n1292 255 2736\n1374 177 2889\n1466 52 3018\n1570 0 3207\n1641 0 3330\n1751 0 3483\n1846 0 3611\n1976 13 3786\n2090 13 3904\n634 629 463\n637 629 503\n651 630 546\n655 630 595\n671 629 642\n725 645 714\n738 618 785\n724 632 827\n756 616 917\n771 616 1003\n786 613 1070\n802 589 1157\n812 613 1277\n848 599 1376\n864 583 1498\n902 578 1618\n921 567 1740\n939 552 1872\n987 542 2006\n1033 512 2156\n1089 485 2287\n1149 447 2447\n1224 389 2597\n1291 353 2757\n1367 294 2886\n1450 205 3045\n1534 120 3201\n1607 14 3330\n1744 1 3480\n1845 0 3639\n1986 3 3787\n2072 0 3929\n645 683 472\n660 696 519\n648 695 547\n650 699 584\n693 700 663\n708 689 699\n709 700 793\n715 710 850\n726 698 926\n753 697 1018\n775 686 1105\n778 671 1188\n789 681 1310\n825 677 1424\n860 653 1519\n879 664 1652\n907 651 1777\n937 640 1910\n988 613 2048\n1024 600 2165\n1082 573 2328\n1130 541 2475\n1184 513 2623\n1259 474 2777\n1351 403 2905\n1428 343 3058\n1531 278 3212\n1609 185 3334\n1725 40 3492\n1815 19 3643\n1929 13 3771\n2087 13 3924\n596 781 517\n603 781 552\n643 781 598\n643 768 631\n660 784 668\n676 785 746\n693 800 798\n710 794 889\n724 794 973\n728 766 1048\n723 767 1127\n743 752 1220\n775 759 1323\n810 766 1432\n849 735 1559\n869 727 1665\n888 722 1774\n918 709 1911\n968 705 2074\n1005 674 2174\n1046 659 2364\n1100 641 2492\n1178 601 2632\n1235 575 2766\n1310 535 2909\n1403 475 3048\n1501 436 3220\n1598 363 3356\n1706 288 3482\n1779 192 3623\n1886 93 3758\n2054 30 3934\n601 850 566\n592 880 609\n619 865 612\n602 864 647\n616 881 697\n658 881 732\n688 896 826\n689 897 894\n700 892 989\n681 888 1046\n670 853 1159\n681 843 1256\n712 832 1328\n747 834 1464\n767 831 1592\n812 824 1706\n832 826 1821\n858 808 1946\n917 798 2079\n970 775 2216\n1000 745 2367\n1059 726 2511\n1135 713 2657\n1197 695 2800\n1289 658 2925\n1384 603 3084\n1448 577 3220\n1559 517 3350\n1652 469 3484\n1770 412 3630\n1887 379 3788\n2019 337 3929\n526 952 592\n553 954 617\n572 961 636\n577 966 667\n594 969 713\n624 998 785\n658 1001 855\n647 996 911\n658 1005 983\n678 996 1090\n651 980 1160\n666 972 1264\n656 945 1378\n670 920 1493\n687 916 1603\n742 921 1725\n771 920 1863\n827 919 1982\n852 902 2106\n922 872 2247\n952 859 2377\n1024 855 2524\n1081 817 2679\n1141 808 2808\n1225 771 2961\n1316 744 3102\n1424 710 3214\n1525 665 3365\n1609 630 3480\n1707 600 3646\n1829 570 3777\n1971 576 3932\n461 1064 607\n498 1062 642\n511 1078 677\n515 1081 688\n512 1093 754\n568 1097 819\n599 1097 884\n590 1112 933\n608 1112 1018\n615 1134 1095\n626 1105 1187\n603 1093 1289\n600 1065 1401\n600 1060 1511\n573 1037 1643\n613 1009 1765\n635 1006 1880\n710 1026 2011\n779 1010 2134\n824 1002 2273\n872 989 2416\n943 962 2567\n998 943 2704\n1086 926 2811\n1182 888 2948\n1270 869 3100\n1344 831 3234\n1430 812 3371\n1557 786 3509\n1664 758 3656\n1784 753 3807\n1938 732 3948\n379 1195 650\n392 1216 647\n417 1208 680\n422 1198 714\n453 1201 750\n489 1225 808\n534 1238 908\n542 1227 961\n558 1233 1064\n555 1242 1118\n550 1254 1236\n570 1221 1331\n562 1214 1431\n551 1195 1520\n521 1187 1641\n520 1165 1797\n537 1131 1917\n542 1116 2042\n587 1094 2160\n713 1107 2303\n763 1118 2443\n850 1087 2555\n919 1077 2714\n1009 1049 2839\n1097 1028 2985\n1165 1023 3113\n1262 981 3227\n1363 965 3389\n1490 927 3509\n1625 921 3647\n1747 903 3799\n1870 898 3942\n203 1316 656\n214 1325 691\n226 1312 704\n251 1339 754\n273 1354 787\n360 1354 859\n429 1368 957\n418 1373 990\n459 1372 1089\n447 1388 1168\n434 1386 1245\n455 1387 1345\n474 1380 1476\n454 1350 1567\n441 1327 1673\n436 1310 1814\n411 1280 1920\n401 1268 2069\n396 1245 2211\n405 1212 2330\n500 1226 2482\n688 1225 2614\n793 1204 2733\n897 1192 2863\n993 1169 3002\n1098 1153 3135\n1183 1117 3264\n1293 1098 3391\n1419 1090 3528\n1537 1069 3657\n1652 1069 3804\n1804 1075 3943\n9 1463 673\n19 1463 701\n19 1464 729\n20 1469 763\n29 1484 814\n104 1491 916\n221 1511 989\n231 1509 1023\n262 1507 1123\n269 1511 1202\n255 1519 1299\n231 1536 1404\n332 1525 1501\n299 1495 1601\n265 1491 1716\n246 1470 1853\n225 1453 1969\n201 1441 2100\n148 1412 2215\n125 1389 2343\n169 1375 2498\n247 1319 2627\n471 1328 2762\n696 1328 2883\n836 1303 2996\n950 1296 3123\n1047 1259 3255\n1186 1239 3405\n1301 1232 3531\n1446 1223 3671\n1592 1227 3829\n1742 1225 3948\n19 1605 700\n0 1609 716\n8 1599 743\n1 1632 773\n7 1624 832\n0 1633 902\n0 1645 994\n26 1645 1056\n40 1642 1149\n52 1647 1242\n3 1665 1317\n14 1670 1413\n12 1673 1511\n96 1659 1627\n63 1644 1745\n40 1639 1853\n36 1622 1974\n32 1603 2114\n0 1585 2240\n0 1564 2363\n3 1528 2497\n8 1495 2625\n36 1454 2764\n148 1429 2898\n518 1454 3050\n776 1463 3148\n918 1424 3270\n1030 1406 3417\n1170 1387 3540\n1335 1371 3683\n1441 1378 3791\n1626 1388 3960\n11 1744 725\n0 1757 758\n0 1764 773\n8 1757 819\n0 1781 858\n3 1792 950\n11 1793 1031\n12 1789 1111\n0 1800 1187\n8 1808 1267\n11 1797 1364\n20 1805 1454\n14 1825 1567\n17 1819 1698\n7 1815 1779\n21 1808 1891\n18 1776 2001\n12 1784 2152\n23 1747 2260\n14 1731 2392\n16 1688 2518\n24 1679 2672\n10 1643 2793\n15 1602 2914\n5 1563 3023\n188 1540 3167\n629 1571 3301\n883 1580 3418\n1024 1559 3548\n1172 1522 3703\n1321 1527 3825\n1508 1540 3978\n8 1896 746\n6 1895 745\n8 1912 772\n17 1897 816\n8 1920 876\n6 1934 937\n13 1931 1053\n6 1936 1131\n0 1944 1201\n8 1947 1292\n5 1942 1379\n8 1956 1495\n22 1959 1592\n14 1961 1698\n3 1978 1814\n3 1961 1916\n0 1949 2035\n8 1929 2154\n13 1926 2281\n6 1902 2397\n22 1870 2545\n8 1864 2661\n3 1826 2784\n0 1772 2907\n4 1746 3040\n20 1717 3187\n10 1671 3285\n319 1662 3437\n826 1726 3576\n1058 1736 3693\n1210 1720 3839\n1394 1699 3969\n9 2051 756\n16 2051 765\n16 2043 796\n0 2060 826\n0 2061 878\n25 2067 986\n6 2072 1060\n25 2087 1160\n0 2095 1230\n7 2104 1323\n10 2104 1426\n14 2104 1518\n12 2110 1617\n7 2102 1733\n7 2114 1849\n8 2125 1955\n7 2110 2053\n27 2093 2187\n0 2093 2304\n4 2062 2440\n0 2050 2546\n13 2026 2689\n14 1985 2807\n0 1959 2926\n14 1935 3058\n29 1904 3183\n23 1861 3321\n19 1834 3441\n103 1815 3557\n704 1860 3689\n1131 1910 3814\n1354 1941 3962\n0 2196 783\n9 2199 806\n1 2214 838\n1 2207 865\n11 2223 943\n9 2228 1024\n11 2229 1109\n9 2231 1196\n8 2250 1266\n7 2251 1366\n0 2253 1454\n4 2249 1561\n13 2259 1672\n23 2265 1771\n12 2258 1864\n14 2270 2006\n18 2287 2139\n13 2259 2218\n7 2247 2330\n1 2228 2483\n13 2215 2588\n32 2188 2706\n27 2162 2822\n13 2125 2944\n17 2105 3043\n16 2073 3187\n16 2036 3310\n18 2022 3440\n19 2002 3584\n75 1987 3691\n677 2002 3843\n1220 2109 3983\n16 2346 797\n16 2346 816\n2 2370 841\n14 2354 880\n14 2378 957\n23 2371 1059\n22 2388 1156\n12 2377 1234\n0 2396 1321\n7 2387 1417\n9 2392 1509\n21 2399 1602\n6 2404 1715\n3 2403 1804\n6 2410 1904\n15 2403 2025\n12 2427 2170\n24 2448 2304\n0 2406 2368\n3 2383 2479\n3 2371 2623\n14 2341 2739\n3 2323 2821\n2 2300 2956\n18 2266 3076\n0 2247 3195\n16 2220 3308\n6 2177 3453\n21 2176 3588\n9 2183 3716\n340 2176 3853\n911 2220 3989\n13 2499 847\n14 2485 872\n8 2490 886\n8 2507 937\n6 2509 1026\n3 2531 1100\n0 2518 1198\n9 2536 1305\n10 2535 1365\n11 2544 1473\n0 2536 1557\n11 2534 1644\n13 2548 1755\n11 2547 1833\n7 2554 1958\n16 2541 2063\n10 2550 2177\n16 2568 2300\n28 2572 2439\n25 2531 2539\n27 2520 2640\n5 2493 2741\n10 2461 2845\n31 2453 2970\n4 2429 3097\n5 2408 3207\n10 2379 3335\n6 2363 3442\n22 2332 3569\n4 2340 3723\n17 2342 3850\n770 2394 3975\n22 2629 911\n11 2635 952\n3 2646 961\n28 2651 1016\n9 2659 1073\n13 2667 1170\n13 2656 1256\n7 2679 1359\n5 2665 1426\n19 2664 1505\n16 2672 1587\n16 2672 1692\n14 2670 1788\n0 2686 1886\n0 2681 1983\n19 2680 2090\n18 2680 2215\n0 2680 2317\n24 2701 2450\n5 2721 2594\n19 2653 2673\n19 2637 2774\n7 2613 2878\n15 2590 2983\n23 2581 3094\n15 2552 3207\n5 2533 3319\n8 2514 3469\n14 2502 3583\n14 2509 3731\n15 2518 3888\n609 2549 4010\n9 2785 943\n2 2787 977\n5 2787 1014\n12 2793 1055\n15 2788 1126\n3 2803 1228\n0 2793 1314\n20 2812 1407\n12 2805 1493\n9 2803 1565\n5 2813 1657\n6 2808 1736\n13 2810 1823\n7 2819 1938\n11 2808 2032\n10 2811 2139\n13 2808 2238\n11 2799 2339\n16 2808 2458\n25 2830 2592\n17 2814 2703\n11 2792 2802\n0 2753 2909\n0 2734 2993\n12 2715 3113\n0 2698 3231\n0 2691 3337\n11 2683 3465\n10 2652 3598\n11 2664 3733\n45 2667 3885\n529 2707 4038\n0 2920 1026\n8 2914 1041\n1 2909 1094\n6 2928 1144\n5 2923 1201\n20 2927 1292\n12 2931 1399\n6 2946 1471\n4 2940 1571\n4 2925 1607\n16 2950 1716\n16 2934 1774\n4 2946 1881\n4 2932 1978\n5 2929 2048\n25 2928 2152\n0 2946 2249\n0 2940 2371\n4 2959 2499\n0 2939 2599\n20 2944 2723\n4 2951 2829\n25 2879 2912\n47 2874 3020\n9 2861 3127\n19 2844 3237\n14 2825 3363\n4 2822 3486\n3 2811 3607\n3 2833 3749\n10 2812 3875\n592 2858 4020\n4 3053 1117\n15 3052 1161\n16 3053 1194\n17 3037 1237\n4 3053 1309\n23 3047 1383\n16 3052 1458\n18 3065 1557\n14 3055 1639\n5 3057 1689\n11 3067 1773\n0 3069 1844\n4 3070 1927\n0 3065 2017\n13 3061 2098\n4 3060 2195\n7 3053 2290\n4 3044 2394\n0 3053 2497\n3 3058 2599\n12 3055 2720\n0 3083 2874\n0 3059 2944\n1 3027 3031\n0 3005 3145\n6 2980 3257\n0 2957 3375\n4 2964 3500\n5 2945 3620\n0 2970 3757\n3 2979 3893\n699 3027 4021\n10 3173 1198\n0 3183 1243\n2 3182 1275\n16 3184 1339\n4 3178 1399\n21 3178 1481\n13 3183 1564\n11 3187 1643\n16 3182 1730\n3 3188 1775\n6 3183 1841\n3 3189 1903\n13 3194 1991\n13 3189 2060\n23 3183 2141\n0 3188 2217\n11 3183 2314\n3 3180 2423\n4 3183 2539\n20 3170 2641\n0 3173 2739\n6 3175 2864\n11 3198 2989\n18 3159 3085\n3 3122 3177\n3 3109 3269\n13 3106 3379\n3 3112 3506\n3 3101 3641\n15 3099 3768\n11 3106 3897\n809 3167 4038\n0 3314 1352\n2 3302 1389\n19 3311 1417\n31 3299 1446\n25 3312 1523\n5 3311 1569\n3 3301 1656\n12 3301 1740\n13 3298 1818\n5 3298 1869\n10 3309 1933\n9 3313 1992\n7 3317 2040\n5 3323 2121\n5 3316 2185\n13 3314 2269\n13 3314 2365\n0 3311 2449\n4 3310 2567\n7 3309 2669\n0 3311 2764\n11 3303 2876\n0 3312 2989\n14 3329 3124\n14 3296 3211\n41 3235 3309\n0 3250 3399\n0 3231 3524\n1 3243 3651\n18 3237 3780\n20 3263 3876\n929 3300 4047\n0 3444 1503\n11 3456 1537\n0 3430 1560\n26 3431 1608\n19 3443 1647\n11 3456 1709\n14 3444 1786\n38 3432 1869\n25 3432 1919\n9 3424 1981\n2 3433 2015\n2 3442 2075\n11 3456 2129\n18 3440 2198\n7 3445 2238\n0 3451 2338\n0 3440 2393\n13 3441 2497\n5 3431 2581\n7 3437 2680\n4 3442 2784\n0 3441 2893\n13 3440 3021\n2 3456 3143\n0 3459 3243\n15 3414 3333\n11 3369 3397\n16 3364 3555\n0 3380 3677\n21 3366 3813\n268 3411 3934\n1041 3433 4074\n0 3575 1662\n0 3575 1691\n0 3584 1735\n0 3572 1744\n14 3575 1795\n3 3575 1860\n16 3572 1947\n15 3565 1990\n16 3561 2047\n13 3569 2088\n14 3568 2134\n7 3581 2188\n5 3577 2227\n10 3585 2283\n10 3580 2325\n8 3583 2395\n17 3585 2463\n15 3585 2552\n1 3575 2632\n1 3585 2737\n13 3578 2854\n1 3579 2940\n11 3577 3060\n6 3584 3162\n11 3578 3294\n26 3603 3417\n0 3519 3448\n29 3494 3570\n16 3511 3671\n25 3504 3819\n532 3540 3946\n1200 3587 4088\n15 3703 1873\n12 3691 1902\n13 3692 1908\n0 3718 1951\n0 3707 1969\n15 3720 2047\n3 3704 2075\n1 3704 2145\n5 3703 2209\n3 3692 2247\n16 3708 2293\n9 3705 2303\n20 3708 2368\n11 3709 2388\n0 3735 2435\n2 3716 2481\n9 3721 2552\n7 3720 2604\n16 3716 2679\n5 3731 2810\n5 3731 2902\n0 3716 2994\n1 3708 3093\n13 3711 3226\n14 3718 3297\n5 3721 3427\n19 3726 3559\n18 3658 3620\n15 3641 3702\n0 3655 3832\n734 3673 3973\n1350 3720 4083\n0 3836 2084\n16 3839 2127\n15 3837 2133\n16 3836 2165\n14 3836 2185\n0 3851 2234\n6 3835 2293\n24 3824 2341\n313 3835 2420\n209 3826 2416\n39 3823 2452\n4 3845 2484\n4 3846 2516\n4 3849 2534\n0 3852 2551\n5 3868 2599\n19 3863 2649\n0 3875 2699\n0 3883 2756\n6 3868 2864\n16 3873 2968\n0 3870 3051\n0 3872 3160\n1 3865 3263\n0 3880 3364\n10 3878 3485\n15 3868 3586\n23 3869 3686\n15 3805 3740\n195 3790 3826\n926 3801 3990\n1528 3852 4095\n549 3967 2355\n597 3983 2388\n632 3996 2404\n724 3981 2393\n794 3994 2425\n891 3972 2473\n965 3980 2503\n1092 3968 2545\n1193 3967 2581\n1189 3967 2620\n1100 3980 2634\n942 3969 2645\n730 3979 2682\n244 4005 2700\n12 3985 2724\n8 4006 2738\n10 4017 2773\n16 4015 2812\n13 4017 2848\n12 4028 2937\n11 4031 3037\n13 4033 3135\n0 4033 3228\n0 4047 3340\n4 4031 3438\n3 4034 3544\n3 4033 3654\n16 4017 3752\n24 4019 3867\n452 3954 3901\n1124 3929 4008\n1718 3967 4092\n681 372 405\n709 383 418\n710 382 420\n711 368 486\n726 380 534\n742 388 628\n745 369 661\n761 369 733\n771 381 811\n796 387 909\n817 369 1014\n833 370 1093\n867 366 1194\n877 359 1298\n906 337 1419\n957 326 1566\n991 305 1674\n1024 289 1827\n1049 274 1955\n1108 228 2111\n1160 176 2258\n1229 93 2415\n1295 22 2572\n1384 3 2722\n1445 3 2851\n1555 10 3020\n1639 3 3159\n1732 3 3319\n1828 11 3475\n1942 12 3609\n2053 0 3741\n2171 3 3921\n712 386 405\n726 399 431\n729 404 438\n727 417 487\n740 418 567\n744 418 613\n756 418 692\n778 418 765\n768 408 815\n815 432 925\n830 409 1011\n844 405 1110\n867 396 1204\n898 393 1328\n920 379 1425\n938 374 1555\n989 349 1690\n1012 351 1826\n1057 319 1949\n1102 264 2099\n1165 228 2259\n1219 144 2425\n1286 61 2567\n1352 9 2725\n1432 1 2875\n1529 3 3010\n1638 3 3172\n1730 0 3316\n1831 0 3499\n1941 12 3609\n2031 3 3762\n2171 3 3921\n715 422 392\n729 436 438\n713 450 496\n729 465 519\n731 456 582\n732 467 645\n747 478 696\n801 462 774\n774 450 822\n830 449 942\n843 450 1010\n857 452 1107\n880 446 1225\n902 433 1327\n924 405 1446\n974 412 1591\n988 382 1684\n1015 385 1821\n1066 368 1969\n1110 326 2125\n1174 276 2277\n1237 223 2430\n1302 119 2576\n1369 20 2732\n1437 10 2885\n1532 13 3046\n1620 15 3177\n1716 2 3307\n1831 15 3479\n1941 14 3610\n2054 0 3772\n2156 14 3919\n717 469 416\n729 468 462\n731 473 486\n748 498 552\n746 502 611\n731 516 663\n777 517 727\n791 512 780\n795 501 861\n838 518 961\n846 499 1021\n864 495 1140\n871 483 1216\n916 473 1355\n929 469 1453\n947 466 1583\n978 450 1719\n1011 428 1854\n1061 408 1982\n1110 380 2127\n1167 332 2282\n1218 282 2432\n1296 216 2607\n1363 122 2730\n1428 14 2878\n1523 0 3042\n1617 13 3174\n1704 12 3345\n1828 11 3475\n1900 3 3623\n2042 0 3759\n2155 14 3921\n718 548 406\n760 549 451\n730 550 515\n746 551 576\n746 552 617\n760 581 710\n791 564 773\n792 567 815\n806 566 878\n825 565 989\n840 563 1047\n872 551 1148\n880 534 1248\n910 525 1377\n939 527 1491\n944 506 1599\n992 503 1746\n1033 478 1851\n1070 467 1991\n1115 438 2137\n1152 410 2266\n1210 367 2447\n1288 320 2606\n1370 233 2748\n1440 146 2890\n1519 38 3051\n1626 0 3192\n1695 2 3339\n1811 0 3490\n1927 0 3625\n2051 3 3799\n2126 14 3920\n739 629 463\n745 631 498\n716 633 532\n736 646 597\n737 633 633\n777 631 685\n766 645 764\n791 622 840\n812 633 908\n834 631 1020\n864 631 1079\n873 626 1173\n878 612 1264\n903 614 1370\n929 590 1514\n946 583 1622\n986 567 1736\n1021 553 1874\n1072 535 2028\n1098 509 2159\n1151 485 2298\n1211 436 2450\n1284 392 2600\n1345 349 2751\n1413 287 2896\n1513 173 3046\n1599 53 3188\n1691 0 3337\n1782 3 3468\n1881 1 3614\n2022 1 3781\n2112 0 3921\n681 684 479\n711 686 489\n724 685 533\n742 698 581\n742 688 632\n771 716 697\n787 716 809\n797 716 830\n809 712 939\n814 697 1003\n830 700 1110\n868 691 1210\n870 668 1293\n889 677 1408\n935 661 1515\n949 655 1643\n976 643 1762\n1000 627 1892\n1063 613 2048\n1082 600 2175\n1140 554 2319\n1202 523 2470\n1260 497 2622\n1328 459 2764\n1415 414 2921\n1481 340 3062\n1582 262 3189\n1680 143 3334\n1757 23 3483\n1868 0 3643\n2018 3 3790\n2107 3 3928\n689 766 514\n693 768 538\n705 765 578\n723 783 627\n744 794 679\n754 797 744\n780 800 822\n793 785 878\n793 794 957\n784 805 1053\n825 783 1132\n844 779 1203\n851 765 1313\n868 749 1434\n908 740 1554\n938 733 1667\n962 722 1792\n985 717 1914\n1030 699 2061\n1074 685 2195\n1105 653 2342\n1173 630 2495\n1246 604 2636\n1302 568 2781\n1383 529 2926\n1459 492 3071\n1562 425 3229\n1645 345 3335\n1750 268 3479\n1843 166 3625\n1970 51 3781\n2090 25 3946\n649 859 561\n674 863 597\n668 878 602\n696 875 644\n712 881 700\n725 894 745\n747 896 813\n765 911 896\n792 886 972\n764 875 1044\n766 849 1157\n784 846 1254\n825 851 1346\n849 851 1466\n883 844 1579\n880 836 1702\n909 829 1812\n930 804 1938\n1006 799 2087\n1032 777 2210\n1080 739 2366\n1155 735 2513\n1200 708 2651\n1259 675 2773\n1342 646 2933\n1420 586 3071\n1507 578 3219\n1621 508 3361\n1725 457 3499\n1832 407 3643\n1959 348 3789\n2058 307 3927\n631 947 581\n645 947 594\n673 963 646\n676 965 692\n687 980 714\n688 992 761\n727 994 831\n747 995 911\n740 1013 993\n745 989 1072\n751 983 1162\n763 965 1276\n763 955 1390\n758 935 1496\n807 935 1621\n856 932 1730\n894 925 1855\n926 916 1976\n962 902 2114\n1009 886 2244\n1058 871 2402\n1098 844 2521\n1162 831 2665\n1230 794 2807\n1302 769 2945\n1386 737 3081\n1464 691 3213\n1580 663 3362\n1675 619 3499\n1790 586 3665\n1900 568 3800\n2025 529 3938\n571 1072 609\n565 1067 631\n599 1089 692\n614 1089 723\n620 1092 735\n631 1113 809\n679 1127 870\n701 1127 948\n702 1131 1026\n692 1127 1104\n716 1114 1193\n725 1097 1303\n702 1088 1421\n706 1064 1512\n703 1045 1628\n732 1016 1748\n799 1036 1901\n841 1029 2015\n884 1018 2147\n929 1013 2291\n970 990 2416\n1049 973 2577\n1104 954 2697\n1183 913 2814\n1253 894 2947\n1336 867 3084\n1429 839 3237\n1518 826 3374\n1612 782 3528\n1724 752 3640\n1846 733 3808\n1963 718 3950\n512 1189 629\n517 1191 661\n532 1204 683\n544 1198 715\n573 1211 773\n589 1224 809\n635 1227 898\n636 1241 965\n642 1251 1049\n659 1244 1130\n628 1265 1244\n672 1233 1307\n670 1233 1438\n652 1216 1530\n628 1176 1686\n627 1160 1788\n633 1160 1915\n660 1110 2040\n734 1131 2170\n814 1130 2312\n896 1114 2458\n948 1099 2583\n1016 1070 2712\n1092 1045 2837\n1173 1035 2975\n1271 995 3104\n1360 981 3228\n1456 954 3375\n1560 929 3515\n1684 907 3681\n1804 903 3816\n1932 901 3958\n389 1316 658\n402 1315 700\n412 1320 694\n421 1335 755\n445 1352 786\n452 1340 838\n514 1358 931\n556 1374 1009\n588 1379 1081\n585 1379 1180\n570 1393 1273\n563 1388 1348\n594 1374 1480\n582 1370 1577\n577 1332 1680\n556 1311 1814\n563 1294 1949\n551 1266 2073\n566 1242 2202\n587 1223 2327\n737 1252 2494\n833 1239 2597\n911 1213 2724\n1004 1199 2862\n1097 1159 3014\n1173 1149 3099\n1271 1122 3253\n1363 1093 3372\n1489 1090 3530\n1602 1066 3671\n1725 1058 3800\n1847 1059 3947\n170 1460 661\n166 1458 692\n187 1477 714\n197 1472 771\n210 1495 802\n243 1488 858\n338 1502 951\n410 1507 1017\n441 1518 1112\n448 1510 1192\n439 1531 1291\n423 1528 1389\n462 1528 1497\n480 1527 1601\n451 1494 1713\n438 1478 1846\n436 1463 1962\n400 1439 2082\n385 1399 2218\n382 1370 2349\n443 1356 2499\n528 1331 2631\n723 1341 2764\n857 1328 2885\n960 1315 3005\n1046 1286 3113\n1159 1273 3263\n1272 1232 3406\n1393 1227 3538\n1504 1220 3673\n1662 1215 3831\n1781 1225 3956\n14 1604 693\n4 1597 707\n16 1603 730\n10 1611 766\n2 1611 796\n18 1631 867\n24 1642 933\n186 1642 1067\n208 1667 1143\n238 1665 1232\n241 1666 1328\n212 1677 1420\n172 1698 1527\n312 1684 1626\n287 1658 1725\n240 1642 1850\n217 1630 1976\n185 1595 2093\n134 1591 2227\n107 1555 2354\n113 1535 2498\n180 1499 2630\n259 1466 2770\n470 1438 2904\n770 1467 3028\n900 1449 3143\n1010 1433 3270\n1144 1398 3406\n1272 1375 3559\n1407 1370 3675\n1551 1369 3822\n1684 1382 3950\n13 1746 727\n8 1748 748\n2 1762 773\n8 1757 794\n0 1781 858\n0 1778 908\n0 1781 974\n12 1792 1095\n1 1814 1158\n3 1814 1238\n3 1818 1332\n3 1815 1429\n0 1828 1545\n0 1857 1699\n61 1829 1764\n23 1810 1857\n20 1800 1987\n13 1765 2125\n3 1769 2267\n0 1750 2382\n8 1704 2511\n6 1669 2634\n11 1649 2777\n48 1608 2881\n164 1570 3021\n509 1560 3147\n845 1584 3302\n999 1560 3423\n1107 1538 3545\n1244 1518 3690\n1416 1524 3820\n1560 1544 3972\n0 1888 755\n13 1901 769\n0 1910 790\n1 1906 818\n8 1919 879\n0 1928 908\n10 1944 1026\n8 1948 1114\n4 1957 1217\n0 1957 1283\n0 1956 1393\n0 1961 1489\n10 1969 1579\n2 1985 1707\n8 1991 1827\n3 1977 1915\n0 1969 2048\n0 1944 2164\n1 1915 2288\n3 1899 2411\n3 1875 2530\n0 1845 2672\n0 1813 2805\n0 1784 2909\n6 1755 3043\n15 1702 3140\n186 1674 3278\n656 1705 3445\n979 1728 3556\n1140 1725 3698\n1277 1712 3831\n1456 1692 3958\n9 2059 764\n26 2050 784\n17 2044 799\n7 2047 834\n0 2061 877\n6 2075 945\n3 2081 1034\n15 2091 1164\n0 2101 1255\n0 2111 1332\n9 2103 1431\n13 2102 1528\n12 2110 1629\n4 2113 1742\n14 2124 1858\n1 2133 1977\n0 2119 2080\n14 2100 2194\n0 2100 2310\n16 2074 2463\n7 2063 2560\n0 2020 2685\n0 1992 2803\n4 1967 2938\n7 1935 3062\n7 1891 3170\n12 1865 3297\n32 1832 3412\n394 1832 3546\n914 1887 3691\n1224 1925 3839\n1409 1923 3983\n7 2202 803\n6 2190 816\n13 2213 845\n7 2207 864\n9 2222 909\n9 2230 981\n7 2234 1079\n12 2253 1192\n7 2252 1286\n6 2260 1373\n18 2261 1458\n7 2255 1564\n3 2253 1676\n3 2271 1773\n20 2274 1891\n5 2279 2006\n8 2297 2143\n13 2264 2230\n7 2253 2360\n0 2249 2490\n0 2220 2599\n10 2199 2716\n13 2157 2817\n14 2133 2952\n7 2106 3062\n13 2070 3187\n3 2041 3310\n5 2013 3430\n10 1998 3555\n355 1997 3716\n861 2018 3849\n1337 2125 3973\n0 2362 815\n0 2371 839\n0 2353 850\n0 2363 880\n8 2378 953\n0 2375 1011\n10 2381 1104\n13 2393 1222\n12 2395 1326\n21 2404 1429\n30 2405 1525\n0 2417 1601\n13 2406 1715\n13 2410 1806\n13 2400 1916\n12 2416 2032\n8 2421 2168\n22 2452 2290\n29 2391 2384\n19 2371 2500\n29 2384 2643\n17 2351 2746\n19 2325 2844\n5 2296 2956\n9 2276 3078\n10 2249 3220\n9 2213 3308\n10 2185 3452\n6 2169 3581\n19 2171 3681\n585 2160 3840\n1039 2211 3986\n6 2495 841\n6 2509 872\n0 2503 867\n6 2515 902\n8 2517 974\n0 2528 1056\n0 2531 1180\n12 2534 1275\n4 2540 1354\n20 2545 1451\n6 2547 1552\n0 2551 1650\n10 2545 1743\n4 2552 1858\n0 2552 1962\n11 2556 2081\n8 2552 2180\n13 2569 2308\n7 2589 2441\n0 2537 2529\n6 2523 2641\n0 2491 2734\n0 2484 2856\n7 2457 2969\n0 2432 3115\n3 2407 3206\n3 2377 3329\n4 2360 3443\n0 2334 3589\n15 2331 3721\n229 2340 3854\n916 2389 3991\n22 2640 897\n11 2645 931\n10 2641 954\n23 2652 973\n7 2658 1033\n0 2656 1102\n18 2664 1211\n0 2682 1324\n7 2677 1409\n10 2677 1507\n2 2693 1586\n11 2682 1676\n0 2685 1792\n0 2682 1878\n8 2689 1991\n24 2685 2096\n3 2678 2201\n0 2695 2313\n16 2698 2447\n0 2732 2590\n3 2665 2658\n0 2643 2773\n20 2618 2888\n8 2597 2965\n14 2594 3106\n3 2554 3224\n11 2544 3349\n3 2497 3457\n22 2492 3598\n19 2495 3704\n8 2507 3870\n794 2549 4010\n5 2776 948\n8 2779 973\n8 2778 985\n0 2796 1022\n1 2797 1105\n8 2789 1184\n5 2816 1284\n8 2807 1383\n20 2803 1488\n9 2803 1556\n0 2813 1636\n6 2805 1743\n13 2809 1822\n0 2812 1928\n4 2820 2022\n0 2811 2130\n8 2808 2235\n23 2815 2364\n14 2815 2470\n8 2825 2567\n16 2825 2697\n5 2776 2791\n0 2761 2906\n0 2744 3002\n17 2727 3112\n1 2710 3243\n8 2702 3366\n5 2663 3479\n20 2649 3609\n5 2648 3728\n0 2683 3861\n693 2707 4026\n0 2913 1011\n4 2922 1045\n0 2918 1063\n4 2933 1113\n4 2926 1168\n4 2925 1244\n3 2929 1334\n4 2941 1454\n4 2926 1562\n4 2936 1628\n6 2936 1714\n3 2946 1787\n0 2953 1882\n0 2942 1964\n7 2931 2048\n0 2941 2163\n12 2939 2269\n6 2940 2375\n5 2941 2474\n7 2934 2582\n0 2960 2732\n6 2943 2842\n5 2894 2922\n18 2881 3039\n19 2861 3155\n15 2843 3235\n5 2839 3366\n0 2824 3495\n0 2823 3613\n4 2799 3732\n6 2834 3841\n734 2859 4016\n0 3049 1113\n3 3051 1117\n7 3039 1170\n18 3051 1215\n0 3056 1264\n4 3045 1317\n3 3056 1409\n16 3068 1536\n20 3054 1632\n12 3064 1709\n10 3062 1768\n13 3062 1847\n3 3060 1927\n10 3060 1996\n12 3065 2094\n7 3072 2196\n0 3065 2294\n0 3065 2407\n0 3075 2517\n12 3053 2602\n23 3065 2736\n10 3085 2868\n9 3057 2975\n0 3025 3037\n4 3001 3145\n9 2967 3257\n4 2966 3393\n13 2961 3479\n11 2962 3631\n5 2964 3761\n25 2963 3869\n840 3014 4030\n0 3174 1201\n0 3171 1225\n4 3181 1269\n5 3179 1306\n15 3182 1367\n13 3177 1432\n6 3173 1516\n6 3181 1611\n3 3182 1726\n0 3192 1792\n5 3185 1869\n9 3183 1922\n6 3199 1990\n13 3189 2060\n20 3180 2138\n0 3192 2217\n13 3191 2318\n10 3182 2430\n6 3190 2536\n17 3173 2638\n0 3191 2748\n11 3173 2873\n3 3206 2984\n0 3173 3085\n0 3129 3159\n13 3125 3280\n14 3115 3394\n23 3092 3512\n1 3090 3629\n6 3090 3785\n73 3124 3885\n915 3164 4041\n3 3311 1325\n18 3301 1355\n13 3316 1396\n6 3306 1410\n17 3314 1462\n29 3314 1539\n13 3290 1610\n3 3304 1705\n4 3302 1812\n22 3305 1854\n15 3308 1926\n0 3320 1992\n3 3327 2078\n16 3316 2121\n3 3317 2198\n11 3308 2280\n8 3303 2357\n17 3314 2443\n25 3303 2561\n6 3303 2667\n9 3308 2767\n19 3314 2864\n12 3330 2997\n14 3330 3137\n0 3288 3204\n23 3252 3286\n0 3250 3392\n0 3235 3522\n27 3223 3654\n25 3239 3770\n318 3276 3918\n1027 3298 4047\n0 3444 1487\n0 3444 1499\n13 3431 1525\n13 3443 1573\n2 3453 1611\n0 3444 1662\n14 3444 1768\n10 3432 1828\n0 3435 1909\n5 3429 1983\n30 3418 2017\n5 3450 2096\n16 3446 2145\n3 3436 2195\n13 3438 2266\n3 3448 2341\n8 3436 2395\n2 3429 2495\n11 3433 2607\n14 3442 2711\n6 3452 2794\n10 3444 2909\n17 3436 3050\n10 3454 3146\n0 3459 3245\n15 3413 3333\n0 3380 3425\n0 3380 3555\n0 3380 3657\n2 3382 3787\n499 3424 3945\n1122 3448 4072\n0 3575 1659\n0 3573 1660\n0 3575 1694\n0 3585 1735\n1 3563 1752\n0 3575 1851\n5 3564 1884\n2 3574 1988\n3 3564 2045\n5 3562 2108\n11 3562 2152\n20 3566 2182\n1 3573 2253\n4 3558 2288\n0 3582 2354\n16 3578 2429\n16 3575 2468\n20 3578 2543\n6 3592 2647\n0 3582 2747\n16 3589 2853\n6 3580 2941\n14 3578 3063\n4 3577 3182\n0 3577 3281\n14 3591 3405\n14 3544 3473\n1 3511 3566\n1 3511 3671\n7 3535 3787\n652 3545 3923\n1240 3578 4076\n16 3705 1864\n1 3708 1866\n17 3692 1901\n2 3719 1923\n0 3704 1966\n7 3714 2007\n12 3701 2081\n0 3705 2139\n11 3689 2205\n4 3693 2254\n1 3704 2297\n15 3690 2335\n8 3711 2365\n15 3705 2396\n6 3717 2444\n0 3720 2508\n8 3728 2551\n4 3730 2619\n16 3737 2689\n14 3729 2806\n0 3726 2899\n9 3714 2994\n16 3718 3097\n7 3724 3229\n3 3710 3313\n1 3724 3427\n1 3738 3556\n14 3660 3621\n18 3642 3702\n121 3657 3833\n823 3664 3951\n1387 3721 4095\n15 3820 2053\n3 3839 2087\n13 3834 2129\n14 3838 2161\n0 3842 2182\n4 3834 2212\n0 3833 2251\n47 3824 2325\n374 3847 2378\n589 3822 2441\n371 3836 2477\n84 3839 2494\n13 3851 2518\n14 3845 2551\n20 3856 2578\n3 3857 2608\n11 3858 2647\n0 3868 2714\n0 3884 2757\n7 3881 2849\n16 3873 2969\n3 3873 3052\n5 3872 3165\n12 3872 3260\n0 3856 3352\n0 3868 3475\n23 3882 3600\n14 3884 3731\n16 3835 3754\n470 3785 3856\n1029 3816 3993\n1561 3852 4095\n597 3996 2361\n646 3967 2361\n683 3981 2375\n748 3968 2396\n828 3982 2424\n926 3982 2457\n1024 3980 2492\n1106 3957 2538\n1196 3970 2581\n1294 3970 2653\n1198 3985 2666\n1101 3986 2655\n923 3986 2675\n644 3974 2711\n62 3994 2728\n11 4003 2738\n16 4015 2794\n25 4006 2812\n0 4031 2875\n19 4027 2946\n29 4044 3048\n13 4023 3113\n14 4023 3228\n3 4034 3331\n0 4018 3428\n16 4034 3543\n10 4041 3661\n30 4031 3766\n0 4031 3867\n625 3961 3926\n1212 3934 4013\n1737 3980 4095\n778 369 437\n776 369 431\n782 370 435\n792 358 474\n794 375 521\n810 385 600\n810 376 649\n830 373 733\n818 385 824\n833 400 882\n878 389 981\n910 374 1077\n939 382 1195\n959 369 1306\n991 357 1419\n1023 333 1545\n1047 320 1684\n1074 293 1811\n1134 258 1947\n1167 225 2112\n1255 152 2262\n1317 67 2415\n1372 0 2567\n1429 12 2721\n1533 4 2873\n1610 3 3029\n1698 4 3179\n1800 0 3334\n1883 12 3464\n1984 11 3624\n2089 0 3748\n2236 12 3950\n787 402 433\n803 386 434\n790 392 455\n791 435 516\n798 418 553\n801 409 616\n813 418 677\n832 421 740\n866 434 839\n889 418 906\n897 410 996\n909 404 1083\n945 417 1217\n966 393 1315\n989 382 1418\n1030 370 1546\n1066 354 1691\n1092 337 1818\n1131 303 1954\n1186 266 2112\n1251 209 2274\n1313 120 2416\n1371 35 2575\n1440 8 2725\n1526 4 2876\n1603 12 3023\n1696 0 3168\n1797 0 3330\n1908 1 3486\n2010 0 3626\n2097 15 3760\n2235 0 3934\n794 441 424\n782 429 419\n782 448 481\n792 454 534\n824 452 577\n795 468 645\n811 482 683\n831 454 754\n859 467 830\n857 456 923\n882 464 996\n910 443 1076\n935 451 1213\n978 435 1338\n1009 419 1468\n1042 390 1566\n1075 395 1699\n1098 367 1816\n1120 344 1943\n1192 303 2121\n1237 264 2261\n1305 185 2425\n1367 92 2578\n1436 19 2751\n1523 5 2880\n1615 0 3036\n1704 3 3185\n1775 13 3337\n1881 0 3483\n2005 3 3627\n2073 1 3773\n2222 3 3905\n794 481 418\n807 467 446\n795 469 488\n810 485 519\n824 516 608\n800 515 647\n802 505 701\n817 517 753\n874 517 861\n892 527 937\n907 498 1013\n925 500 1138\n961 509 1245\n974 487 1351\n993 464 1458\n1031 455 1577\n1064 447 1713\n1107 419 1835\n1129 377 1981\n1179 361 2121\n1263 331 2291\n1287 270 2448\n1344 192 2574\n1437 85 2750\n1526 7 2905\n1607 0 3034\n1672 3 3184\n1788 0 3353\n1881 11 3466\n1985 11 3625\n2093 12 3759\n2218 0 3930\n810 536 404\n825 536 466\n802 535 527\n821 568 579\n809 566 639\n830 550 679\n838 566 731\n857 570 802\n874 568 875\n913 565 950\n921 551 1041\n953 559 1147\n980 544 1259\n981 523 1368\n1001 515 1481\n1024 523 1587\n1052 501 1734\n1098 488 1842\n1129 461 1970\n1193 426 2138\n1243 397 2296\n1287 350 2445\n1351 291 2601\n1448 200 2746\n1513 122 2897\n1589 7 3028\n1692 0 3187\n1790 0 3336\n1876 2 3509\n1973 4 3647\n2073 2 3771\n2190 12 3933\n813 618 426\n793 633 481\n808 606 505\n833 618 592\n853 631 636\n809 641 666\n827 647 750\n855 647 811\n873 644 914\n878 633 979\n903 630 1064\n949 637 1168\n966 612 1259\n985 609 1369\n1000 577 1504\n1021 578 1614\n1061 566 1741\n1091 544 1871\n1129 525 2016\n1173 505 2158\n1245 473 2302\n1297 427 2468\n1348 378 2607\n1424 324 2764\n1491 246 2889\n1589 154 3052\n1662 33 3193\n1757 0 3354\n1850 0 3456\n1951 5 3610\n2066 3 3764\n2164 13 3915\n794 697 491\n813 708 513\n812 697 534\n829 715 579\n846 724 636\n846 709 681\n857 712 760\n870 722 839\n893 722 923\n896 714 992\n914 688 1075\n941 699 1209\n954 691 1294\n965 677 1404\n988 661 1507\n1007 660 1640\n1057 636 1768\n1075 631 1890\n1104 604 2022\n1157 596 2162\n1219 557 2316\n1275 518 2480\n1344 483 2611\n1413 429 2770\n1468 388 2913\n1546 316 3048\n1644 229 3189\n1745 114 3337\n1839 8 3500\n1941 0 3645\n2055 0 3771\n2166 0 3934\n780 773 514\n775 791 559\n775 779 579\n789 796 623\n792 794 663\n834 783 754\n852 797 777\n871 801 869\n891 794 956\n906 797 1048\n921 782 1122\n955 769 1217\n974 762 1335\n977 759 1459\n987 737 1531\n1024 737 1677\n1052 722 1788\n1067 723 1925\n1114 696 2027\n1152 681 2188\n1188 658 2350\n1260 623 2492\n1327 605 2619\n1388 553 2769\n1465 509 2921\n1517 471 3049\n1628 395 3225\n1721 321 3317\n1808 248 3491\n1880 128 3609\n2026 23 3753\n2152 14 3931\n729 864 526\n745 867 573\n760 877 618\n764 864 633\n804 866 688\n817 879 728\n811 892 792\n854 896 878\n883 888 972\n859 868 1060\n891 849 1142\n893 867 1246\n938 867 1357\n949 852 1450\n969 836 1570\n996 832 1695\n1009 819 1808\n1064 807 1954\n1083 787 2075\n1133 773 2215\n1180 755 2377\n1224 731 2508\n1291 703 2655\n1345 679 2805\n1434 630 2933\n1511 598 3072\n1587 553 3208\n1685 509 3370\n1783 447 3502\n1872 393 3649\n1979 324 3769\n2115 302 3930\n713 949 568\n733 959 589\n746 961 628\n762 976 684\n765 977 702\n776 976 748\n806 986 823\n837 996 907\n834 1007 986\n841 998 1073\n835 988 1156\n855 978 1289\n859 960 1394\n885 951 1503\n912 970 1603\n962 947 1742\n987 918 1857\n1012 909 1970\n1056 889 2107\n1088 898 2249\n1122 864 2387\n1192 847 2520\n1249 817 2657\n1315 791 2806\n1404 761 2940\n1454 728 3068\n1541 689 3224\n1666 650 3348\n1721 609 3500\n1858 585 3649\n1953 543 3786\n2075 511 3928\n673 1048 585\n682 1057 627\n696 1065 650\n709 1078 697\n727 1083 754\n740 1081 796\n761 1109 853\n786 1125 928\n820 1109 1011\n825 1118 1102\n796 1115 1206\n829 1098 1306\n810 1091 1394\n801 1061 1502\n821 1046 1624\n878 1033 1773\n911 1037 1887\n959 1029 2016\n1013 1018 2136\n1053 1007 2288\n1099 979 2422\n1135 956 2558\n1199 939 2676\n1267 904 2825\n1333 904 2951\n1420 864 3089\n1507 837 3229\n1597 799 3368\n1678 776 3499\n1807 746 3647\n1908 722 3798\n2031 716 3938\n620 1181 622\n636 1178 661\n644 1189 674\n651 1195 719\n685 1193 768\n678 1207 808\n718 1212 877\n726 1243 974\n752 1253 1025\n764 1258 1136\n751 1263 1219\n778 1253 1299\n756 1232 1438\n761 1208 1549\n766 1190 1680\n776 1164 1779\n791 1147 1921\n838 1139 2051\n921 1140 2181\n967 1133 2314\n1024 1104 2450\n1067 1096 2567\n1135 1076 2716\n1200 1044 2841\n1284 1024 2978\n1364 993 3098\n1447 971 3229\n1547 949 3374\n1647 924 3516\n1757 908 3662\n1837 898 3799\n1994 894 3953\n551 1306 672\n560 1302 680\n569 1311 699\n570 1319 729\n577 1330 774\n573 1350 855\n597 1346 889\n644 1374 988\n685 1388 1063\n695 1389 1164\n684 1385 1241\n692 1397 1367\n724 1380 1484\n708 1358 1565\n701 1343 1690\n688 1321 1823\n689 1282 1938\n677 1265 2055\n725 1251 2202\n792 1246 2354\n904 1247 2477\n965 1238 2593\n1029 1208 2726\n1107 1189 2868\n1186 1185 2998\n1290 1145 3120\n1356 1119 3239\n1458 1096 3389\n1576 1083 3527\n1680 1056 3680\n1788 1054 3794\n1938 1059 3956\n427 1440 688\n411 1444 717\n423 1452 741\n434 1461 751\n453 1471 814\n443 1478 855\n463 1501 899\n550 1511 990\n608 1525 1099\n613 1515 1175\n629 1532 1299\n591 1527 1391\n609 1547 1509\n633 1524 1598\n629 1503 1734\n617 1485 1841\n605 1461 1966\n572 1438 2083\n587 1413 2233\n620 1376 2362\n653 1345 2490\n756 1350 2639\n905 1361 2755\n982 1335 2882\n1072 1325 3015\n1147 1293 3126\n1257 1279 3257\n1362 1258 3397\n1480 1212 3528\n1589 1215 3662\n1703 1221 3827\n1856 1218 3950\n131 1581 714\n149 1598 730\n177 1591 756\n181 1596 764\n189 1608 816\n194 1628 887\n202 1621 929\n340 1654 1017\n442 1671 1131\n466 1682 1237\n469 1681 1335\n467 1681 1400\n461 1683 1522\n509 1687 1654\n526 1667 1758\n506 1650 1865\n499 1626 1991\n473 1597 2116\n435 1592 2262\n418 1555 2402\n424 1532 2532\n505 1487 2641\n576 1458 2785\n754 1468 2900\n940 1476 3030\n1032 1446 3152\n1124 1425 3267\n1227 1390 3402\n1362 1365 3536\n1492 1369 3682\n1595 1374 3824\n1768 1373 3938\n8 1742 723\n17 1741 749\n20 1745 770\n20 1753 798\n17 1766 836\n3 1785 875\n0 1799 944\n12 1805 1034\n153 1817 1169\n192 1834 1256\n237 1819 1371\n232 1823 1452\n194 1830 1564\n176 1836 1679\n349 1858 1765\n320 1821 1917\n302 1797 2028\n266 1784 2154\n201 1767 2294\n168 1734 2407\n126 1707 2522\n151 1673 2661\n281 1630 2811\n384 1597 2937\n535 1577 3055\n816 1590 3160\n991 1588 3302\n1100 1568 3426\n1219 1546 3553\n1350 1523 3684\n1508 1512 3831\n1650 1532 3967\n0 1888 755\n0 1888 756\n1 1903 797\n7 1890 820\n11 1914 859\n8 1934 895\n8 1936 963\n8 1948 1082\n12 1969 1205\n0 1973 1295\n28 1969 1402\n17 1972 1476\n19 1974 1578\n17 1977 1700\n15 2007 1828\n116 1978 1931\n42 1972 2044\n30 1943 2175\n29 1943 2317\n19 1913 2424\n10 1888 2537\n6 1849 2686\n14 1814 2813\n19 1776 2918\n146 1746 3048\n321 1701 3181\n568 1683 3330\n904 1733 3435\n1114 1724 3555\n1220 1712 3695\n1373 1689 3827\n1532 1708 3968\n7 2043 755\n7 2043 769\n12 2049 780\n0 2060 840\n0 2067 871\n8 2085 945\n0 2086 1007\n9 2091 1131\n7 2110 1255\n0 2111 1332\n12 2121 1439\n9 2113 1524\n22 2120 1632\n0 2116 1759\n2 2126 1838\n0 2139 1982\n4 2128 2102\n25 2110 2223\n0 2092 2325\n6 2082 2462\n14 2066 2569\n6 2025 2690\n13 2005 2809\n8 1964 2946\n7 1919 3056\n19 1890 3174\n117 1864 3325\n363 1828 3453\n739 1836 3560\n1100 1896 3705\n1329 1901 3844\n1474 1914 3999\n11 2193 800\n6 2187 815\n0 2209 832\n0 2214 844\n0 2218 879\n12 2226 942\n0 2248 1021\n6 2250 1155\n10 2259 1270\n9 2280 1354\n5 2272 1440\n10 2279 1578\n7 2273 1683\n13 2266 1803\n7 2279 1882\n0 2284 2006\n14 2305 2138\n7 2264 2243\n7 2262 2366\n0 2246 2467\n0 2223 2600\n0 2193 2710\n0 2159 2812\n28 2134 2941\n11 2106 3091\n16 2070 3196\n13 2028 3319\n30 2006 3454\n278 1990 3572\n666 1989 3714\n1086 2034 3841\n1467 2134 3980\n6 2356 829\n6 2355 830\n0 2358 855\n0 2363 880\n30 2368 934\n4 2374 979\n10 2385 1065\n10 2396 1183\n12 2415 1311\n10 2415 1414\n16 2413 1489\n0 2416 1585\n10 2426 1701\n12 2420 1796\n26 2420 1935\n0 2436 2023\n0 2425 2148\n6 2461 2260\n10 2411 2374\n4 2380 2484\n13 2362 2612\n10 2361 2713\n11 2329 2827\n6 2304 2951\n10 2265 3071\n0 2223 3212\n20 2210 3316\n10 2185 3452\n5 2167 3580\n332 2149 3715\n781 2173 3857\n1172 2226 4005\n6 2499 835\n0 2499 862\n0 2510 872\n0 2521 901\n12 2517 959\n21 2522 1022\n1 2515 1107\n9 2534 1215\n16 2546 1341\n16 2542 1432\n4 2552 1530\n0 2551 1632\n7 2552 1750\n7 2563 1855\n3 2563 1973\n6 2556 2066\n10 2554 2179\n15 2579 2287\n10 2604 2429\n4 2557 2511\n0 2531 2629\n4 2502 2734\n1 2482 2854\n11 2454 2969\n0 2425 3093\n10 2403 3206\n0 2377 3335\n13 2350 3468\n8 2332 3602\n6 2335 3697\n575 2332 3852\n1053 2380 4003\n20 2649 885\n8 2642 892\n2 2650 951\n17 2645 964\n19 2651 975\n6 2671 1061\n15 2668 1149\n14 2677 1258\n15 2676 1392\n11 2679 1486\n0 2697 1575\n0 2704 1677\n0 2700 1780\n5 2695 1871\n12 2693 1988\n15 2695 2091\n0 2688 2195\n5 2700 2318\n12 2698 2429\n20 2715 2570\n4 2666 2651\n0 2657 2755\n4 2633 2869\n22 2611 2982\n18 2565 3092\n4 2549 3224\n7 2530 3339\n13 2518 3468\n10 2506 3598\n11 2488 3728\n236 2492 3854\n934 2544 3985\n5 2776 948\n16 2787 959\n16 2789 987\n31 2777 1007\n22 2790 1073\n1 2797 1150\n13 2799 1229\n12 2799 1315\n12 2807 1456\n7 2814 1553\n14 2809 1657\n7 2814 1758\n11 2817 1828\n7 2818 1919\n15 2825 2008\n4 2819 2114\n11 2806 2232\n10 2821 2347\n28 2824 2444\n5 2836 2572\n5 2840 2697\n4 2790 2768\n0 2764 2888\n8 2743 2987\n9 2726 3101\n5 2710 3237\n13 2680 3359\n11 2661 3477\n4 2674 3600\n16 2654 3731\n180 2667 3867\n857 2697 4015\n32 2918 1020\n17 2914 1031\n4 2923 1066\n12 2931 1079\n0 2932 1146\n12 2933 1212\n11 2934 1314\n15 2934 1412\n16 2927 1538\n13 2946 1625\n8 2940 1712\n22 2944 1782\n29 2936 1871\n4 2946 1976\n0 2937 2060\n11 2939 2151\n15 2934 2260\n19 2931 2373\n0 2935 2452\n4 2950 2589\n14 2946 2721\n18 2946 2844\n4 2911 2909\n16 2890 3031\n1 2866 3129\n6 2858 3235\n3 2840 3361\n4 2822 3495\n4 2811 3630\n8 2806 3739\n216 2822 3863\n877 2841 4002\n16 3040 1104\n9 3061 1118\n12 3040 1142\n12 3031 1172\n6 3049 1226\n20 3053 1275\n4 3053 1389\n12 3049 1490\n12 3049 1599\n24 3057 1692\n12 3056 1750\n0 3069 1844\n6 3063 1930\n23 3072 2002\n25 3072 2102\n11 3065 2160\n0 3065 2283\n0 3080 2394\n9 3065 2500\n13 3050 2599\n22 3060 2734\n5 3085 2868\n1 3057 2967\n0 3033 3032\n0 3021 3121\n3 2997 3270\n32 2964 3382\n14 2960 3477\n14 2958 3634\n17 2944 3737\n320 2967 3884\n976 2997 4034\n10 3180 1202\n3 3180 1237\n21 3181 1233\n3 3180 1274\n5 3178 1324\n0 3194 1377\n6 3183 1477\n3 3180 1572\n3 3195 1680\n5 3192 1776\n8 3188 1872\n2 3180 1911\n6 3192 1974\n12 3196 2063\n0 3205 2130\n0 3195 2220\n9 3187 2315\n17 3181 2434\n13 3194 2544\n3 3187 2641\n0 3190 2733\n16 3181 2881\n14 3202 2989\n2 3172 3061\n13 3139 3165\n13 3125 3264\n9 3102 3383\n1 3118 3508\n1 3099 3634\n1 3116 3767\n440 3122 3884\n1003 3155 4018\n15 3324 1338\n28 3311 1357\n0 3311 1357\n12 3314 1400\n2 3325 1426\n16 3306 1496\n24 3298 1585\n16 3314 1693\n22 3313 1791\n14 3314 1874\n5 3322 1925\n13 3316 1998\n13 3307 2070\n7 3314 2119\n3 3321 2190\n3 3308 2275\n19 3330 2343\n13 3316 2443\n20 3311 2558\n6 3313 2663\n10 3327 2777\n3 3314 2859\n0 3331 2990\n5 3315 3143\n1 3287 3204\n1 3245 3266\n0 3252 3367\n0 3238 3514\n5 3225 3645\n1 3249 3769\n556 3247 3889\n1121 3298 4053\n2 3436 1466\n0 3444 1483\n13 3444 1488\n1 3443 1524\n6 3452 1578\n14 3447 1646\n4 3445 1704\n0 3446 1801\n4 3441 1897\n4 3441 1966\n12 3448 2029\n4 3441 2082\n10 3450 2152\n5 3443 2208\n7 3441 2280\n6 3432 2332\n0 3432 2389\n4 3443 2494\n14 3435 2607\n4 3438 2697\n7 3450 2804\n0 3443 2893\n10 3440 3021\n6 3451 3141\n2 3461 3240\n9 3413 3344\n5 3377 3426\n2 3380 3523\n0 3380 3653\n22 3379 3786\n696 3384 3934\n1207 3432 4057\n4 3560 1616\n0 3574 1662\n0 3578 1686\n0 3573 1693\n2 3565 1736\n11 3586 1826\n1 3573 1859\n12 3575 1934\n12 3559 2010\n1 3570 2110\n0 3573 2162\n22 3566 2200\n3 3567 2246\n8 3577 2301\n4 3580 2348\n14 3568 2408\n14 3583 2461\n20 3582 2536\n10 3575 2634\n0 3577 2741\n4 3577 2841\n16 3575 2933\n26 3572 3037\n26 3575 3162\n23 3584 3302\n7 3580 3368\n1 3531 3460\n1 3509 3544\n1 3496 3657\n213 3514 3809\n819 3546 3955\n1326 3568 4073\n16 3706 1839\n1 3722 1843\n1 3716 1883\n1 3706 1901\n4 3706 1940\n3 3703 1975\n3 3705 2042\n1 3690 2092\n1 3674 2158\n11 3701 2265\n1 3704 2302\n10 3695 2335\n18 3684 2370\n23 3697 2403\n16 3709 2445\n8 3717 2502\n8 3714 2559\n2 3728 2617\n12 3722 2680\n14 3719 2784\n5 3731 2896\n4 3725 2994\n12 3714 3093\n13 3712 3196\n12 3719 3322\n8 3724 3427\n5 3734 3543\n20 3670 3593\n14 3629 3692\n467 3665 3804\n973 3676 3978\n1468 3706 4095\n0 3836 2052\n13 3852 2101\n4 3838 2090\n4 3824 2120\n20 3835 2165\n15 3835 2180\n0 3839 2222\n71 3837 2300\n422 3832 2324\n713 3831 2426\n746 3820 2442\n537 3823 2503\n180 3840 2505\n7 3845 2551\n17 3844 2587\n19 3844 2623\n24 3853 2669\n0 3864 2703\n0 3877 2769\n1 3864 2824\n22 3868 2948\n15 3865 3059\n19 3868 3164\n12 3872 3235\n25 3868 3364\n3 3870 3478\n2 3882 3600\n10 3880 3727\n5 3806 3729\n660 3776 3823\n1109 3804 3980\n1610 3837 4083\n630 3970 2332\n679 3985 2364\n714 3975 2362\n783 3981 2396\n883 3983 2418\n939 3970 2436\n1044 3957 2467\n1122 3967 2521\n1217 3975 2558\n1350 3973 2636\n1388 3968 2683\n1257 3972 2675\n1111 3973 2688\n936 3980 2721\n586 3981 2734\n37 3994 2738\n0 4006 2763\n5 4033 2819\n7 4031 2875\n11 4025 2908\n16 4034 3027\n11 4031 3106\n5 4042 3209\n12 4034 3336\n4 4031 3451\n25 4017 3539\n3 4033 3654\n16 4017 3752\n0 4032 3864\n765 3945 3906\n1272 3941 4004\n1790 3967 4091\n803 374 426\n819 385 407\n832 403 456\n836 385 470\n859 371 506\n885 400 594\n863 400 644\n883 405 730\n899 381 779\n901 385 898\n956 380 989\n971 376 1074\n984 385 1179\n1032 381 1268\n1045 358 1394\n1087 358 1537\n1116 317 1662\n1164 308 1786\n1215 248 1927\n1253 211 2090\n1307 137 2268\n1363 49 2420\n1458 5 2571\n1506 16 2709\n1595 0 2848\n1651 0 3009\n1790 9 3173\n1849 0 3342\n1974 1 3454\n2076 0 3603\n2160 0 3768\n2268 28 3934\n832 398 419\n847 378 410\n863 392 459\n869 409 492\n883 403 538\n876 422 615\n894 437 679\n904 437 757\n888 431 811\n916 423 887\n968 422 1008\n991 419 1097\n1009 418 1179\n1056 411 1283\n1054 386 1379\n1113 382 1536\n1132 338 1667\n1153 329 1798\n1207 291 1956\n1248 236 2098\n1306 193 2268\n1360 105 2420\n1447 17 2589\n1529 0 2740\n1603 8 2885\n1673 9 3030\n1777 7 3186\n1843 10 3320\n1952 14 3455\n2042 0 3597\n2161 4 3774\n2277 0 3946\n838 409 393\n848 422 429\n843 450 478\n818 454 502\n872 455 589\n875 453 626\n900 458 681\n918 456 743\n881 467 823\n923 479 920\n954 466 993\n980 456 1089\n1020 440 1192\n1039 454 1297\n1073 411 1421\n1096 417 1558\n1128 386 1683\n1145 365 1830\n1208 330 1942\n1242 290 2104\n1327 229 2249\n1393 167 2420\n1453 67 2589\n1513 7 2740\n1590 3 2887\n1687 0 3033\n1746 3 3185\n1841 0 3338\n1959 4 3477\n2051 0 3630\n2162 4 3772\n2258 15 3889\n849 460 418\n858 466 434\n836 486 466\n844 488 531\n858 517 590\n888 527 619\n885 518 713\n887 531 777\n906 515 845\n929 503 913\n968 492 989\n1000 513 1081\n1023 505 1200\n1040 500 1310\n1067 476 1438\n1118 467 1560\n1128 437 1683\n1161 412 1828\n1204 382 1942\n1251 360 2117\n1306 295 2265\n1370 248 2420\n1450 159 2583\n1530 56 2731\n1591 0 2864\n1681 1 3054\n1764 3 3184\n1837 14 3322\n1946 16 3457\n2043 22 3620\n2162 4 3773\n2255 14 3921\n910 532 406\n864 548 473\n880 537 485\n865 566 566\n880 568 602\n892 582 677\n909 580 758\n925 570 812\n938 572 892\n945 557 916\n974 579 1012\n1002 570 1135\n1042 540 1229\n1061 545 1354\n1062 526 1471\n1102 501 1615\n1165 486 1750\n1173 458 1866\n1203 455 1980\n1255 422 2136\n1326 379 2306\n1388 332 2464\n1428 254 2595\n1494 185 2757\n1552 91 2919\n1674 3 3071\n1741 0 3194\n1827 0 3326\n1904 21 3483\n2034 0 3625\n2149 2 3769\n2254 18 3923\n892 623 415\n882 602 470\n873 615 504\n884 630 551\n899 641 599\n930 638 665\n910 633 731\n914 650 825\n939 650 907\n947 636 959\n967 646 1024\n981 628 1133\n1045 620 1267\n1045 614 1378\n1083 592 1503\n1110 570 1614\n1126 567 1745\n1175 539 1876\n1205 523 2013\n1249 504 2136\n1303 463 2299\n1386 424 2461\n1439 368 2605\n1492 308 2763\n1586 227 2909\n1665 114 3043\n1727 17 3204\n1812 0 3334\n1920 0 3467\n2030 0 3599\n2152 0 3777\n2224 1 3935\n870 711 469\n896 694 474\n861 713 536\n874 709 592\n901 710 647\n915 724 699\n939 698 772\n952 704 861\n951 716 926\n991 711 1004\n991 701 1064\n988 710 1174\n1042 703 1308\n1062 681 1432\n1096 655 1539\n1119 648 1657\n1146 643 1748\n1187 614 1870\n1221 599 2032\n1253 578 2176\n1290 558 2341\n1351 521 2492\n1424 465 2622\n1497 409 2749\n1555 384 2919\n1620 289 3055\n1712 198 3172\n1805 53 3320\n1894 16 3471\n2008 0 3626\n2122 3 3783\n2224 0 3955\n867 794 464\n856 770 509\n859 771 540\n885 796 599\n883 810 664\n927 792 741\n955 794 765\n944 798 854\n975 813 946\n989 798 1003\n1005 771 1105\n1018 783 1240\n1040 775 1345\n1055 765 1449\n1083 750 1529\n1096 714 1661\n1145 725 1791\n1150 699 1905\n1178 698 2062\n1241 670 2211\n1297 648 2347\n1344 623 2505\n1398 578 2627\n1456 549 2786\n1543 495 2928\n1615 455 3061\n1671 379 3183\n1788 309 3325\n1876 202 3508\n1990 62 3661\n2078 29 3814\n2196 16 3931\n827 864 526\n840 875 539\n844 860 573\n871 853 611\n871 892 669\n864 898 727\n902 897 811\n915 911 878\n944 912 960\n946 907 1046\n996 883 1145\n1008 880 1240\n1028 871 1360\n1053 833 1456\n1091 847 1569\n1072 848 1718\n1116 827 1796\n1148 796 1919\n1162 798 2098\n1224 766 2205\n1284 739 2353\n1319 722 2490\n1361 696 2658\n1445 655 2814\n1502 626 2944\n1595 574 3058\n1672 544 3219\n1744 503 3338\n1838 418 3491\n1950 376 3654\n2053 304 3791\n2204 258 3934\n791 966 539\n802 977 578\n841 955 616\n817 963 651\n856 980 712\n864 989 750\n887 994 825\n924 1005 896\n973 1002 993\n967 994 1063\n937 994 1176\n938 985 1270\n996 998 1381\n1012 978 1492\n1030 959 1602\n1062 934 1722\n1081 929 1841\n1092 906 1952\n1149 902 2087\n1171 892 2223\n1236 859 2365\n1303 845 2537\n1324 820 2661\n1399 804 2816\n1446 769 2936\n1533 704 3079\n1623 681 3225\n1706 660 3358\n1824 606 3502\n1911 574 3630\n2006 531 3788\n2139 510 3945\n786 1046 594\n801 1053 611\n767 1060 644\n809 1067 683\n798 1106 742\n824 1087 770\n865 1112 883\n885 1112 940\n928 1136 1008\n895 1148 1084\n967 1106 1203\n929 1091 1292\n889 1104 1414\n938 1053 1519\n971 1065 1669\n1013 1073 1761\n1032 1059 1889\n1034 1029 2020\n1104 1017 2148\n1145 1001 2289\n1174 985 2396\n1240 968 2527\n1297 941 2711\n1361 927 2828\n1440 887 2962\n1517 869 3076\n1574 827 3235\n1682 781 3354\n1763 753 3493\n1869 741 3665\n1976 703 3783\n2102 700 3949\n745 1164 635\n734 1168 633\n759 1199 680\n752 1204 687\n775 1212 755\n776 1219 779\n813 1226 882\n831 1220 942\n869 1265 1044\n871 1258 1125\n864 1275 1217\n897 1254 1332\n879 1253 1451\n892 1207 1557\n885 1198 1680\n902 1168 1807\n932 1180 1919\n987 1165 2054\n1025 1147 2159\n1096 1119 2296\n1133 1120 2438\n1189 1086 2566\n1257 1071 2711\n1316 1052 2814\n1377 1026 2982\n1444 992 3111\n1540 964 3234\n1618 936 3366\n1715 925 3516\n1829 897 3678\n1917 888 3783\n2055 890 3933\n668 1305 658\n670 1315 666\n701 1339 724\n692 1320 734\n707 1310 763\n743 1331 823\n753 1360 894\n783 1368 971\n805 1390 1060\n839 1391 1178\n837 1402 1247\n813 1416 1366\n863 1394 1470\n823 1384 1582\n828 1358 1692\n827 1330 1803\n839 1296 1962\n847 1269 2097\n898 1282 2209\n980 1290 2338\n1022 1253 2465\n1095 1249 2608\n1176 1220 2758\n1210 1205 2846\n1297 1169 2984\n1372 1157 3116\n1453 1109 3258\n1561 1089 3386\n1657 1073 3503\n1747 1055 3664\n1860 1058 3795\n1993 1069 3968\n591 1440 693\n594 1444 697\n591 1451 729\n597 1476 755\n614 1484 800\n610 1491 832\n635 1507 899\n630 1517 973\n684 1546 1077\n735 1544 1179\n780 1548 1287\n739 1550 1392\n734 1565 1502\n763 1531 1611\n776 1519 1708\n744 1506 1837\n761 1478 1972\n750 1436 2069\n766 1408 2214\n774 1383 2354\n830 1382 2488\n964 1394 2606\n1066 1374 2748\n1127 1334 2885\n1206 1319 3006\n1299 1289 3166\n1391 1257 3259\n1485 1236 3401\n1570 1226 3552\n1687 1205 3683\n1814 1211 3809\n1941 1227 3949\n425 1595 705\n452 1581 736\n459 1587 757\n448 1611 775\n449 1617 817\n462 1607 880\n474 1653 918\n489 1648 1024\n578 1676 1105\n644 1678 1227\n662 1705 1305\n663 1692 1422\n651 1699 1545\n643 1720 1627\n681 1697 1733\n694 1650 1867\n658 1647 1979\n663 1617 2115\n629 1595 2237\n641 1562 2361\n673 1526 2500\n695 1495 2656\n816 1496 2778\n975 1493 2904\n1093 1465 3041\n1170 1450 3183\n1256 1422 3271\n1356 1402 3414\n1483 1375 3537\n1588 1363 3673\n1706 1361 3811\n1860 1373 3949\n123 1734 703\n137 1749 733\n149 1749 751\n131 1769 781\n161 1785 842\n172 1778 872\n203 1793 923\n198 1801 1009\n373 1822 1129\n480 1843 1222\n505 1842 1330\n501 1829 1462\n492 1856 1559\n500 1857 1672\n557 1871 1793\n572 1822 1906\n579 1803 2035\n530 1790 2138\n519 1777 2290\n505 1731 2412\n493 1703 2506\n508 1672 2664\n585 1653 2783\n641 1604 2930\n835 1598 3053\n1010 1616 3158\n1133 1583 3296\n1242 1550 3426\n1331 1536 3542\n1480 1514 3682\n1612 1521 3824\n1756 1525 3963\n0 1884 739\n0 1889 767\n0 1896 784\n0 1902 825\n0 1920 876\n0 1955 910\n0 1928 958\n0 1957 1043\n8 1965 1157\n243 1981 1278\n248 1976 1357\n319 1993 1468\n280 1981 1589\n294 1983 1694\n234 2004 1795\n428 1990 1943\n373 1985 2064\n352 1967 2176\n327 1932 2316\n301 1915 2415\n254 1892 2539\n266 1864 2663\n267 1817 2772\n416 1781 2910\n510 1755 3034\n625 1711 3165\n867 1724 3277\n1103 1744 3411\n1228 1716 3556\n1344 1676 3707\n1472 1675 3831\n1637 1676 3963\n19 2031 767\n13 2043 795\n8 2040 809\n9 2051 844\n0 2051 892\n20 2052 919\n7 2051 981\n23 2077 1081\n9 2111 1194\n23 2117 1320\n18 2139 1401\n31 2132 1520\n9 2132 1646\n8 2150 1748\n23 2134 1858\n14 2152 1986\n194 2145 2086\n114 2139 2224\n69 2111 2324\n56 2067 2478\n35 2067 2546\n23 2029 2687\n25 1978 2817\n43 1963 2917\n108 1931 3059\n292 1893 3184\n482 1863 3299\n683 1843 3429\n1012 1856 3543\n1259 1894 3693\n1396 1868 3840\n1541 1869 3984\n7 2197 778\n0 2192 785\n7 2204 823\n0 2212 850\n7 2218 880\n7 2225 938\n8 2238 1015\n5 2251 1051\n11 2270 1199\n22 2268 1339\n34 2265 1458\n9 2268 1568\n3 2285 1679\n25 2283 1794\n15 2286 1882\n4 2297 2014\n1 2306 2153\n0 2290 2215\n0 2266 2382\n23 2231 2482\n16 2225 2618\n5 2198 2738\n0 2167 2834\n9 2125 2982\n4 2100 3057\n8 2077 3179\n67 2049 3291\n319 2025 3414\n610 1993 3576\n887 2008 3708\n1259 2071 3824\n1569 2125 3981\n22 2339 829\n34 2351 829\n29 2343 868\n26 2340 907\n18 2372 945\n3 2392 969\n9 2391 1046\n13 2389 1129\n0 2417 1255\n7 2417 1403\n7 2408 1491\n6 2430 1592\n10 2428 1682\n17 2433 1811\n14 2428 1918\n12 2424 2014\n10 2442 2156\n31 2452 2280\n18 2421 2393\n0 2404 2508\n18 2376 2648\n12 2365 2720\n5 2327 2851\n10 2294 2947\n18 2267 3093\n15 2233 3225\n10 2211 3317\n0 2187 3420\n256 2178 3574\n644 2159 3710\n931 2178 3820\n1330 2246 3992\n6 2505 847\n12 2495 868\n10 2517 902\n1 2506 933\n4 2509 968\n18 2507 1031\n3 2525 1092\n15 2540 1167\n21 2559 1280\n0 2575 1422\n4 2558 1557\n1 2557 1644\n13 2575 1744\n4 2563 1851\n6 2561 1952\n0 2572 2054\n20 2563 2163\n7 2581 2277\n15 2598 2436\n28 2542 2561\n31 2513 2657\n19 2498 2754\n4 2481 2882\n9 2458 2976\n21 2417 3087\n24 2402 3213\n11 2353 3343\n6 2352 3465\n0 2331 3579\n306 2316 3703\n793 2351 3857\n1182 2378 4009\n0 2629 873\n14 2635 908\n26 2640 931\n21 2648 971\n9 2647 995\n3 2656 1064\n6 2676 1136\n7 2675 1212\n9 2701 1355\n11 2689 1494\n21 2687 1581\n16 2681 1664\n13 2684 1778\n5 2688 1861\n14 2695 1973\n22 2692 2085\n3 2705 2207\n14 2688 2295\n27 2696 2443\n9 2730 2572\n17 2677 2684\n22 2657 2764\n13 2633 2848\n3 2616 2986\n11 2585 3099\n16 2561 3204\n0 2533 3314\n7 2496 3483\n13 2499 3606\n54 2500 3714\n623 2504 3847\n1088 2544 3987\n8 2792 931\n12 2783 956\n6 2787 991\n10 2792 1008\n19 2794 1067\n18 2793 1126\n19 2802 1168\n4 2814 1287\n0 2820 1425\n13 2817 1554\n2 2816 1649\n19 2817 1728\n8 2836 1794\n16 2829 1881\n28 2814 2015\n17 2821 2098\n17 2825 2223\n11 2831 2366\n32 2817 2472\n17 2830 2604\n1 2845 2732\n9 2804 2783\n5 2764 2896\n4 2754 2990\n6 2727 3114\n7 2697 3221\n9 2678 3349\n10 2661 3503\n18 2651 3636\n41 2647 3732\n552 2660 3860\n997 2699 4022\n0 2926 1024\n0 2915 1032\n0 2927 1077\n0 2919 1091\n0 2931 1120\n4 2925 1175\n5 2937 1235\n8 2954 1340\n0 2946 1466\n8 2947 1601\n8 2949 1717\n21 2934 1765\n0 2954 1869\n16 2948 1937\n18 2938 2041\n16 2958 2154\n8 2947 2252\n8 2938 2377\n40 2938 2464\n4 2952 2585\n16 2937 2724\n8 2939 2865\n21 2910 2904\n20 2898 2999\n12 2874 3128\n24 2859 3232\n11 2835 3359\n4 2816 3490\n8 2807 3603\n37 2798 3743\n587 2822 3879\n1032 2866 4035\n29 3028 1113\n8 3045 1113\n11 3045 1143\n6 3063 1172\n18 3053 1211\n0 3073 1263\n17 3054 1328\n8 3061 1425\n8 3057 1530\n17 3064 1686\n17 3064 1767\n10 3075 1863\n28 3054 1942\n7 3070 2013\n10 3064 2107\n23 3061 2220\n0 3057 2310\n8 3053 2407\n7 3069 2515\n7 3060 2614\n12 3059 2715\n4 3094 2861\n0 3068 2950\n19 3025 3050\n8 2992 3169\n22 2980 3289\n4 2985 3370\n22 2968 3498\n0 2951 3649\n55 2976 3755\n610 2956 3858\n1073 3005 4003\n18 3183 1207\n18 3177 1204\n2 3174 1234\n0 3183 1258\n2 3182 1310\n0 3196 1342\n3 3180 1404\n0 3202 1528\n32 3166 1608\n0 3198 1749\n19 3188 1876\n9 3198 1929\n11 3194 2005\n10 3192 2050\n6 3202 2155\n13 3195 2222\n15 3179 2327\n4 3199 2416\n3 3204 2506\n18 3182 2642\n4 3180 2723\n2 3185 2876\n13 3196 2988\n22 3183 3078\n14 3119 3157\n26 3114 3271\n18 3106 3406\n38 3118 3504\n10 3095 3630\n108 3122 3767\n672 3120 3872\n1139 3161 4056\n0 3300 1367\n0 3304 1379\n20 3301 1407\n9 3312 1412\n25 3307 1446\n14 3314 1467\n11 3320 1562\n3 3317 1627\n4 3322 1746\n9 3315 1837\n17 3301 1946\n0 3324 1997\n3 3300 2066\n7 3316 2131\n0 3319 2205\n8 3328 2291\n9 3309 2360\n9 3305 2435\n0 3322 2563\n5 3325 2676\n14 3317 2754\n16 3309 2859\n15 3321 2989\n3 3343 3131\n10 3280 3210\n22 3242 3282\n0 3242 3377\n7 3236 3523\n17 3235 3641\n229 3235 3740\n762 3268 3913\n1225 3293 4040\n0 3458 1453\n0 3444 1484\n0 3444 1490\n24 3442 1523\n4 3446 1546\n11 3449 1612\n7 3443 1665\n27 3431 1771\n20 3426 1835\n14 3438 1962\n7 3451 2061\n7 3443 2102\n10 3442 2134\n3 3429 2216\n6 3458 2266\n0 3452 2338\n0 3454 2383\n2 3453 2500\n19 3459 2596\n28 3449 2725\n4 3446 2786\n28 3437 2863\n14 3442 2995\n2 3449 3135\n0 3460 3271\n7 3407 3327\n26 3378 3457\n2 3364 3533\n12 3381 3681\n378 3407 3774\n855 3392 3910\n1331 3430 4051\n28 3556 1655\n12 3582 1643\n5 3575 1664\n10 3585 1705\n12 3573 1739\n14 3573 1764\n12 3566 1828\n4 3563 1884\n10 3565 1988\n20 3565 2092\n8 3579 2197\n26 3569 2215\n8 3571 2235\n0 3577 2311\n9 3572 2366\n4 3600 2419\n10 3572 2463\n0 3586 2533\n10 3575 2629\n11 3592 2739\n14 3587 2838\n17 3579 2948\n10 3584 3036\n4 3573 3176\n12 3584 3280\n3 3608 3414\n11 3542 3472\n12 3521 3565\n74 3507 3665\n561 3510 3822\n967 3554 3935\n1421 3565 4089\n0 3715 1835\n1 3702 1869\n0 3725 1882\n4 3715 1916\n2 3707 1911\n7 3707 1965\n4 3710 2033\n6 3692 2074\n1 3704 2169\n17 3714 2227\n191 3700 2302\n55 3692 2336\n13 3714 2404\n5 3719 2419\n12 3713 2456\n5 3725 2522\n5 3715 2548\n13 3723 2616\n30 3727 2704\n0 3738 2795\n0 3717 2904\n9 3715 2977\n5 3706 3101\n12 3722 3223\n9 3719 3331\n8 3725 3435\n6 3735 3553\n4 3684 3601\n278 3644 3667\n703 3656 3814\n1094 3696 3978\n1546 3716 4090\n9 3837 2057\n17 3844 2073\n22 3847 2101\n6 3848 2106\n7 3857 2136\n4 3847 2175\n13 3837 2189\n70 3847 2261\n492 3825 2337\n731 3842 2415\n926 3846 2479\n879 3836 2498\n663 3841 2541\n311 3845 2566\n0 3849 2573\n27 3844 2627\n9 3859 2664\n13 3868 2722\n8 3869 2761\n10 3889 2843\n11 3874 2943\n7 3870 3047\n8 3861 3168\n19 3871 3270\n4 3872 3343\n0 3874 3480\n2 3868 3610\n20 3858 3719\n151 3820 3738\n827 3787 3858\n1209 3808 3968\n1691 3852 4084\n828 3983 2337\n824 3982 2336\n839 3970 2336\n813 3995 2373\n872 3988 2389\n985 3959 2412\n1060 3978 2438\n1167 3955 2508\n1277 3967 2565\n1363 3971 2602\n1457 3967 2672\n1426 3972 2724\n1316 3967 2714\n1137 3992 2730\n906 3981 2753\n502 3995 2779\n16 3991 2823\n24 4015 2839\n0 4027 2890\n10 4041 2933\n4 4030 3024\n14 4023 3142\n5 4035 3247\n0 4035 3328\n12 4030 3402\n25 4025 3543\n4 4039 3621\n4 4037 3758\n12 4049 3874\n912 3964 3904\n1341 3946 3992\n1807 3950 4095\n893 369 408\n909 385 403\n906 412 452\n922 398 482\n918 377 518\n941 404 588\n941 418 663\n952 406 713\n969 406 799\n987 418 870\n999 413 969\n1017 406 1047\n1061 376 1148\n1108 385 1282\n1166 361 1399\n1166 353 1517\n1203 321 1652\n1252 299 1790\n1278 264 1932\n1340 184 2068\n1401 109 2246\n1455 22 2399\n1556 0 2588\n1610 0 2726\n1675 0 2865\n1770 8 3023\n1832 0 3171\n1907 7 3304\n2032 14 3461\n2130 1 3625\n2224 0 3775\n2342 0 3907\n894 402 406\n893 407 397\n921 431 460\n913 435 497\n936 438 560\n941 423 595\n955 441 679\n960 453 744\n958 435 808\n994 438 885\n1035 431 996\n1048 439 1067\n1071 422 1158\n1100 407 1267\n1156 402 1419\n1178 381 1541\n1206 357 1667\n1255 329 1797\n1311 301 1925\n1340 244 2074\n1389 171 2243\n1450 71 2404\n1529 0 2563\n1589 0 2726\n1664 5 2874\n1765 0 3031\n1841 0 3176\n1935 9 3306\n2026 6 3471\n2121 0 3625\n2223 0 3774\n2338 0 3926\n939 431 403\n928 431 399\n936 451 443\n935 468 532\n930 470 551\n928 480 600\n922 482 670\n939 486 737\n995 471 821\n1012 471 909\n1022 460 984\n1039 472 1086\n1082 466 1196\n1105 454 1281\n1128 447 1433\n1189 430 1551\n1197 399 1688\n1262 374 1825\n1294 345 1956\n1329 280 2090\n1389 235 2257\n1460 120 2411\n1518 29 2577\n1607 4 2734\n1678 4 2884\n1741 8 3047\n1828 0 3178\n1931 9 3314\n2006 11 3466\n2130 5 3605\n2213 4 3758\n2339 0 3903\n958 454 405\n953 457 420\n942 483 463\n954 485 511\n947 504 580\n963 514 631\n960 522 671\n987 533 759\n980 528 839\n1000 528 912\n1025 524 1000\n1083 507 1084\n1090 508 1210\n1127 492 1339\n1153 472 1436\n1204 460 1560\n1225 442 1680\n1253 425 1835\n1297 381 1951\n1360 337 2101\n1399 299 2261\n1470 212 2427\n1538 117 2588\n1615 10 2732\n1669 0 2881\n1737 8 3047\n1833 1 3182\n1924 0 3307\n2012 6 3464\n2122 1 3609\n2222 0 3774\n2342 0 3907\n959 493 393\n970 520 461\n958 545 484\n948 551 544\n956 566 600\n959 591 668\n991 566 709\n968 570 794\n1005 570 867\n1024 569 929\n1051 572 1001\n1078 566 1106\n1103 564 1211\n1135 555 1340\n1170 539 1479\n1194 525 1572\n1234 502 1720\n1256 487 1850\n1308 452 1981\n1340 406 2120\n1415 373 2294\n1471 306 2453\n1528 242 2596\n1619 137 2744\n1675 21 2888\n1763 3 3051\n1836 3 3207\n1907 13 3332\n2015 0 3497\n2108 2 3626\n2205 13 3773\n2320 14 3905\n973 581 418\n978 586 455\n974 600 503\n969 610 557\n973 628 610\n961 636 666\n977 633 738\n981 647 828\n1016 636 889\n1024 645 971\n1069 616 1011\n1077 642 1137\n1131 643 1266\n1159 613 1360\n1163 602 1482\n1214 579 1600\n1221 567 1712\n1255 532 1849\n1281 537 2023\n1352 489 2149\n1387 452 2290\n1460 406 2457\n1521 345 2622\n1594 295 2741\n1663 186 2903\n1725 80 3046\n1812 9 3203\n1897 14 3336\n2002 1 3493\n2081 11 3625\n2203 0 3761\n2319 2 3932\n960 666 435\n986 668 483\n992 682 554\n976 674 555\n987 695 629\n1005 688 696\n1010 697 753\n1017 714 814\n1011 730 895\n1069 703 997\n1062 704 1048\n1107 703 1175\n1117 687 1258\n1175 687 1373\n1182 681 1494\n1211 666 1637\n1270 634 1777\n1255 627 1869\n1305 604 2035\n1339 557 2170\n1406 536 2328\n1467 506 2490\n1526 455 2621\n1585 409 2748\n1650 341 2898\n1741 258 3055\n1818 151 3188\n1873 36 3338\n1993 0 3487\n2090 0 3616\n2191 0 3773\n2290 11 3957\n943 789 462\n974 780 513\n987 768 548\n964 796 596\n1000 792 647\n985 797 699\n996 808 784\n1032 800 871\n1036 802 914\n1045 823 997\n1058 816 1114\n1117 785 1194\n1117 793 1322\n1159 774 1437\n1189 742 1532\n1202 761 1661\n1213 730 1784\n1255 718 1925\n1300 685 2061\n1338 661 2204\n1372 653 2360\n1446 609 2505\n1500 578 2652\n1554 536 2774\n1617 489 2907\n1712 421 3072\n1817 356 3204\n1873 263 3343\n1959 163 3492\n2070 42 3651\n2158 8 3774\n2267 0 3948\n906 879 518\n939 868 527\n949 879 564\n969 868 608\n986 894 672\n1010 885 722\n1024 904 809\n1029 899 867\n1046 900 947\n1039 911 1029\n1099 908 1135\n1100 884 1222\n1126 884 1357\n1173 856 1453\n1147 857 1575\n1186 836 1685\n1203 839 1804\n1263 814 1937\n1296 789 2077\n1325 763 2202\n1368 737 2364\n1411 715 2504\n1460 680 2651\n1516 651 2801\n1601 610 2920\n1692 574 3084\n1748 524 3197\n1849 450 3342\n1936 416 3483\n2025 325 3643\n2121 258 3775\n2258 212 3923\n909 973 562\n925 966 587\n925 978 626\n951 953 653\n936 980 704\n961 992 781\n978 1007 831\n986 995 877\n1014 1010 976\n1051 1019 1067\n1092 1010 1177\n1083 988 1241\n1120 991 1398\n1105 985 1484\n1130 975 1604\n1160 944 1712\n1189 938 1848\n1225 932 1966\n1255 888 2109\n1293 871 2250\n1342 855 2396\n1406 833 2559\n1436 806 2663\n1513 770 2782\n1572 738 2939\n1668 704 3081\n1728 670 3225\n1813 626 3348\n1909 582 3511\n1991 544 3625\n2084 505 3787\n2209 482 3939\n860 1075 579\n880 1096 599\n884 1087 627\n883 1093 647\n931 1103 705\n950 1093 772\n954 1113 830\n965 1131 907\n1004 1117 989\n1036 1149 1111\n1035 1150 1198\n1031 1109 1292\n1061 1113 1383\n1092 1111 1538\n1119 1089 1648\n1119 1082 1751\n1171 1068 1873\n1196 1040 2011\n1233 1036 2148\n1275 1010 2268\n1320 984 2418\n1367 968 2554\n1390 952 2696\n1466 908 2824\n1539 885 2961\n1606 854 3068\n1680 816 3236\n1777 778 3405\n1863 752 3521\n1949 718 3647\n2047 689 3791\n2177 700 3946\n833 1178 622\n852 1190 648\n858 1205 680\n876 1193 697\n894 1195 757\n888 1215 796\n918 1231 883\n923 1234 923\n951 1260 1015\n996 1276 1133\n1002 1265 1236\n1005 1271 1344\n1014 1245 1403\n1019 1224 1550\n1010 1204 1657\n1061 1177 1795\n1112 1189 1918\n1154 1175 2034\n1170 1171 2176\n1180 1155 2292\n1282 1105 2457\n1310 1093 2572\n1348 1084 2703\n1429 1040 2830\n1483 1014 2977\n1561 1000 3119\n1626 985 3234\n1693 945 3375\n1803 904 3510\n1879 890 3641\n2020 865 3778\n2137 865 3945\n814 1318 653\n787 1304 671\n801 1335 715\n814 1314 722\n840 1330 784\n844 1332 824\n867 1368 870\n884 1372 951\n916 1392 1031\n946 1404 1154\n974 1422 1248\n953 1431 1360\n997 1399 1483\n953 1378 1581\n959 1362 1708\n956 1326 1825\n994 1301 1951\n1029 1297 2087\n1114 1290 2210\n1129 1282 2353\n1196 1272 2482\n1226 1239 2598\n1301 1225 2753\n1358 1190 2857\n1437 1170 2995\n1499 1147 3118\n1564 1124 3261\n1659 1091 3406\n1751 1079 3528\n1850 1058 3653\n1955 1044 3802\n2059 1043 3945\n714 1459 702\n730 1447 700\n736 1453 717\n725 1462 745\n771 1468 808\n782 1467 846\n797 1481 888\n812 1510 972\n817 1534 1074\n860 1543 1172\n922 1559 1276\n924 1553 1368\n904 1565 1510\n939 1546 1614\n923 1536 1721\n921 1501 1849\n907 1463 1960\n893 1453 2108\n928 1424 2249\n1005 1403 2377\n1094 1417 2512\n1143 1386 2633\n1217 1367 2746\n1294 1329 2884\n1354 1315 3021\n1411 1302 3135\n1489 1282 3245\n1598 1247 3404\n1655 1244 3521\n1770 1202 3677\n1900 1192 3810\n2015 1215 3950\n619 1573 718\n610 1596 727\n624 1604 739\n632 1610 783\n650 1616 826\n658 1621 854\n686 1637 931\n711 1662 1006\n728 1676 1072\n785 1701 1184\n829 1695 1314\n842 1695 1415\n835 1708 1514\n819 1715 1652\n828 1699 1765\n839 1682 1868\n844 1658 2007\n824 1625 2127\n848 1585 2265\n841 1563 2400\n874 1538 2530\n930 1504 2654\n1075 1511 2776\n1146 1513 2906\n1243 1464 3024\n1296 1441 3158\n1390 1416 3270\n1479 1411 3394\n1589 1372 3533\n1688 1354 3674\n1817 1349 3808\n1940 1369 3946\n454 1728 737\n472 1744 754\n491 1752 792\n488 1746 816\n498 1774 853\n521 1769 900\n534 1781 946\n538 1802 1006\n550 1827 1111\n648 1850 1226\n722 1848 1334\n731 1862 1429\n734 1871 1576\n726 1862 1687\n750 1876 1826\n760 1854 1910\n783 1818 2031\n757 1801 2175\n741 1768 2287\n744 1728 2429\n717 1715 2534\n758 1673 2677\n820 1634 2781\n924 1606 2941\n1096 1630 3053\n1187 1601 3141\n1259 1577 3284\n1385 1549 3428\n1465 1537 3541\n1588 1522 3670\n1712 1517 3815\n1854 1529 3954\n144 1885 727\n181 1884 752\n188 1885 775\n190 1887 798\n186 1908 840\n197 1915 875\n209 1940 959\n227 1945 1028\n243 1969 1120\n440 1981 1247\n591 1989 1384\n600 2011 1468\n607 2013 1607\n586 2008 1685\n616 2010 1806\n676 2012 1946\n683 1997 2076\n676 1961 2181\n633 1934 2307\n615 1922 2445\n603 1883 2552\n612 1853 2682\n628 1816 2809\n721 1768 2941\n787 1735 3056\n910 1719 3190\n1115 1743 3300\n1224 1744 3413\n1327 1696 3555\n1453 1677 3687\n1596 1661 3828\n1752 1679 3962\n0 2027 761\n0 2035 779\n0 2051 796\n7 2048 828\n5 2061 866\n9 2080 909\n8 2088 991\n27 2095 1058\n25 2111 1132\n111 2128 1252\n342 2136 1413\n360 2151 1526\n405 2147 1622\n413 2165 1719\n393 2152 1847\n411 2159 1974\n577 2145 2104\n542 2123 2219\n510 2110 2355\n483 2098 2462\n454 2061 2608\n434 2048 2702\n431 2002 2838\n442 1968 2946\n549 1911 3056\n673 1886 3220\n768 1841 3321\n955 1851 3452\n1215 1878 3561\n1373 1885 3691\n1517 1854 3847\n1646 1863 3989\n9 2180 801\n18 2190 801\n14 2189 830\n6 2202 859\n24 2212 913\n21 2210 964\n19 2226 1025\n20 2235 1100\n9 2258 1176\n9 2270 1326\n32 2295 1433\n46 2281 1523\n85 2293 1637\n92 2302 1763\n76 2307 1878\n63 2303 1986\n104 2322 2127\n403 2305 2259\n316 2270 2371\n305 2269 2495\n240 2223 2596\n235 2188 2712\n215 2171 2826\n216 2127 2942\n230 2096 3058\n323 2061 3199\n541 2027 3343\n693 1995 3454\n860 1990 3569\n1141 2003 3693\n1438 2085 3850\n1634 2103 3976\n0 2342 797\n0 2361 829\n2 2362 849\n5 2342 888\n17 2357 931\n3 2365 973\n6 2391 1061\n19 2394 1115\n17 2409 1206\n11 2420 1341\n32 2416 1499\n1 2431 1596\n7 2429 1699\n3 2436 1799\n10 2444 1913\n0 2442 2014\n0 2444 2163\n14 2463 2270\n154 2433 2411\n144 2427 2491\n74 2410 2620\n58 2363 2725\n76 2336 2855\n70 2305 2950\n55 2266 3054\n76 2228 3179\n137 2209 3322\n357 2199 3451\n630 2154 3582\n888 2158 3725\n1140 2174 3826\n1509 2268 3993\n6 2487 829\n6 2489 862\n7 2500 893\n3 2493 920\n10 2503 968\n11 2521 1023\n20 2514 1062\n1 2531 1141\n14 2539 1232\n23 2557 1389\n5 2567 1531\n7 2578 1637\n5 2566 1722\n6 2572 1860\n0 2574 1933\n12 2580 2071\n9 2575 2200\n11 2585 2323\n6 2610 2476\n39 2568 2514\n15 2546 2621\n5 2529 2736\n15 2486 2857\n0 2469 2967\n5 2440 3092\n14 2415 3217\n17 2388 3340\n91 2346 3450\n283 2322 3575\n698 2320 3720\n989 2342 3846\n1325 2380 4020\n11 2645 894\n18 2651 901\n14 2642 932\n6 2646 962\n27 2650 1005\n6 2653 1046\n8 2673 1120\n11 2675 1203\n0 2671 1292\n10 2687 1433\n22 2698 1573\n7 2703 1677\n19 2694 1756\n22 2711 1883\n25 2708 1999\n0 2712 2108\n5 2684 2222\n10 2705 2310\n14 2721 2450\n5 2741 2604\n14 2684 2671\n15 2656 2757\n9 2640 2899\n5 2613 2991\n5 2593 3121\n9 2565 3211\n15 2539 3345\n17 2520 3470\n108 2495 3578\n463 2486 3720\n855 2502 3864\n1228 2544 4009\n7 2776 927\n5 2771 966\n21 2781 993\n21 2771 1017\n3 2787 1060\n7 2785 1105\n6 2811 1174\n27 2803 1242\n9 2820 1349\n32 2814 1500\n0 2826 1622\n5 2827 1725\n6 2832 1835\n13 2822 1933\n5 2828 2025\n8 2826 2112\n13 2828 2225\n13 2839 2350\n0 2835 2450\n9 2845 2595\n20 2856 2719\n0 2796 2792\n11 2774 2920\n13 2762 3031\n11 2741 3140\n0 2721 3244\n3 2689 3333\n9 2677 3467\n105 2652 3577\n428 2653 3759\n784 2667 3873\n1129 2691 4008\n13 2913 1015\n4 2926 1035\n7 2914 1063\n0 2937 1091\n2 2936 1116\n21 2925 1172\n11 2928 1243\n20 2935 1316\n8 2938 1413\n7 2950 1550\n0 2953 1684\n6 2949 1785\n4 2954 1879\n7 2960 1962\n13 2955 2045\n0 2954 2159\n8 2958 2260\n5 2949 2376\n5 2943 2503\n9 2940 2576\n23 2946 2723\n4 2964 2859\n9 2914 2920\n0 2897 3031\n5 2878 3136\n19 2847 3241\n1 2843 3369\n0 2831 3485\n87 2812 3584\n432 2806 3762\n793 2822 3899\n1150 2858 4022\n8 3064 1121\n0 3057 1123\n8 3053 1148\n13 3044 1165\n0 3070 1206\n2 3068 1255\n10 3053 1324\n4 3065 1406\n8 3069 1498\n0 3061 1620\n0 3077 1733\n3 3078 1844\n5 3091 1930\n12 3083 1990\n9 3069 2094\n5 3076 2165\n4 3073 2281\n7 3073 2384\n17 3072 2500\n5 3077 2603\n21 3064 2716\n5 3093 2862\n0 3065 2977\n0 3044 3067\n0 3022 3157\n0 2992 3282\n7 2969 3372\n19 2963 3477\n96 2956 3595\n470 2955 3749\n833 2962 3884\n1203 2996 4019\n0 3193 1208\n3 3188 1220\n20 3180 1236\n1 3173 1269\n0 3194 1318\n8 3198 1348\n18 3188 1415\n4 3196 1482\n17 3203 1588\n11 3192 1697\n5 3201 1834\n14 3184 1930\n13 3196 2000\n4 3183 2056\n9 3194 2130\n6 3202 2210\n12 3202 2307\n4 3218 2390\n8 3191 2495\n3 3201 2620\n6 3187 2737\n8 3197 2865\n14 3206 2984\n7 3185 3097\n10 3152 3167\n5 3143 3283\n9 3135 3391\n9 3117 3496\n125 3097 3609\n539 3107 3799\n871 3118 3877\n1255 3164 4055\n10 3309 1323\n9 3310 1340\n5 3318 1357\n5 3320 1391\n0 3336 1425\n0 3325 1470\n9 3308 1489\n0 3315 1569\n4 3325 1669\n3 3332 1800\n13 3306 1932\n0 3314 2008\n22 3315 2059\n34 3318 2135\n6 3303 2197\n9 3316 2280\n16 3335 2361\n16 3325 2442\n20 3312 2560\n19 3314 2663\n9 3311 2741\n22 3314 2884\n4 3319 2989\n19 3336 3127\n5 3290 3239\n24 3256 3279\n14 3261 3389\n55 3241 3503\n218 3247 3645\n596 3250 3794\n964 3265 3912\n1330 3298 4040\n11 3444 1446\n15 3442 1488\n1 3441 1490\n6 3443 1509\n2 3450 1551\n11 3447 1609\n2 3441 1635\n9 3459 1712\n3 3449 1804\n9 3440 1909\n20 3425 2035\n18 3429 2109\n17 3438 2177\n0 3472 2237\n24 3438 2289\n2 3448 2345\n8 3462 2402\n4 3458 2487\n2 3454 2575\n14 3442 2702\n19 3437 2810\n11 3452 2914\n14 3455 2991\n9 3459 3156\n24 3468 3264\n8 3421 3347\n51 3377 3421\n104 3385 3518\n348 3366 3677\n692 3393 3792\n1034 3396 3914\n1432 3428 4052\n0 3565 1649\n3 3574 1639\n3 3573 1662\n1 3577 1693\n2 3571 1729\n1 3565 1748\n3 3575 1817\n3 3574 1861\n8 3581 1953\n22 3570 2057\n24 3559 2160\n1 3565 2212\n1 3569 2277\n27 3575 2315\n9 3572 2351\n14 3579 2422\n18 3586 2466\n18 3575 2559\n5 3585 2615\n1 3589 2737\n0 3588 2826\n13 3583 2948\n13 3564 3036\n5 3586 3158\n11 3596 3280\n8 3589 3393\n7 3554 3497\n213 3516 3549\n502 3486 3686\n796 3530 3801\n1120 3531 3934\n1519 3575 4084\n16 3705 1841\n20 3710 1845\n17 3706 1846\n28 3719 1889\n6 3704 1911\n23 3707 1946\n3 3702 1987\n5 3709 2039\n12 3705 2108\n1 3700 2204\n330 3713 2297\n618 3710 2377\n363 3715 2406\n31 3700 2418\n4 3703 2462\n14 3720 2537\n7 3737 2579\n23 3699 2622\n7 3731 2688\n15 3720 2783\n0 3720 2870\n0 3716 2969\n0 3714 3080\n24 3707 3167\n13 3720 3298\n5 3719 3409\n9 3728 3539\n70 3676 3627\n617 3637 3692\n893 3647 3809\n1219 3647 3948\n1632 3711 4094\n11 3852 2087\n11 3829 2089\n22 3845 2093\n11 3846 2134\n15 3838 2132\n47 3832 2171\n14 3836 2184\n177 3850 2258\n567 3862 2324\n798 3820 2365\n975 3829 2444\n1134 3834 2543\n997 3838 2529\n794 3833 2566\n463 3837 2609\n28 3861 2626\n14 3849 2700\n12 3863 2720\n14 3868 2753\n11 3863 2828\n27 3868 2937\n0 3874 3053\n0 3875 3132\n0 3862 3224\n9 3881 3349\n13 3874 3472\n13 3868 3584\n0 3879 3714\n546 3802 3763\n1002 3773 3830\n1324 3793 3959\n1746 3841 4090\n1019 3978 2361\n1008 3967 2349\n1030 3957 2350\n1064 3980 2377\n1044 3973 2391\n1035 3999 2384\n1090 3981 2428\n1192 3985 2487\n1290 3987 2521\n1372 3987 2563\n1482 3982 2650\n1588 3983 2707\n1488 3996 2732\n1361 3983 2705\n1180 3985 2741\n957 3987 2781\n466 4011 2820\n16 4015 2844\n18 4001 2870\n10 4047 2920\n6 4025 3018\n17 4031 3106\n11 4024 3198\n0 4031 3292\n5 4047 3427\n5 4031 3525\n22 4035 3632\n21 4021 3756\n23 4040 3829\n1074 3969 3915\n1433 3919 3976\n1909 3955 4090\n963 375 396\n980 390 413\n989 398 437\n983 418 508\n987 414 532\n1000 399 572\n1027 423 665\n1034 430 724\n1061 428 815\n1063 407 854\n1097 423 974\n1114 412 1066\n1127 403 1145\n1178 408 1263\n1211 383 1374\n1249 345 1511\n1292 337 1637\n1329 289 1789\n1375 275 1942\n1416 220 2082\n1476 119 2236\n1563 37 2405\n1641 0 2564\n1672 11 2723\n1746 4 2876\n1854 5 3031\n1957 0 3180\n2024 0 3327\n2121 1 3482\n2219 10 3612\n2311 0 3760\n2403 0 3913\n958 402 391\n995 407 403\n991 435 448\n984 451 497\n989 462 546\n1006 423 578\n1001 439 663\n1017 455 732\n1077 450 822\n1066 455 872\n1069 450 999\n1114 445 1051\n1156 439 1159\n1186 421 1276\n1233 416 1402\n1262 383 1533\n1302 359 1663\n1332 333 1785\n1382 307 1943\n1435 249 2088\n1502 172 2256\n1562 53 2410\n1643 5 2576\n1686 11 2723\n1784 0 2891\n1835 12 3025\n1943 8 3183\n1995 9 3327\n2108 0 3513\n2232 0 3633\n2301 10 3772\n2403 0 3913\n983 398 392\n1008 413 393\n980 465 441\n1010 448 511\n1010 477 567\n1009 464 617\n1062 482 703\n1046 482 759\n1059 483 816\n1053 495 901\n1097 493 995\n1144 457 1072\n1161 458 1170\n1193 461 1294\n1224 443 1406\n1268 427 1530\n1307 399 1645\n1330 374 1810\n1396 345 1951\n1416 290 2092\n1502 221 2278\n1564 135 2428\n1618 18 2580\n1687 7 2734\n1767 0 2883\n1826 8 3041\n1923 12 3187\n2006 0 3320\n2116 5 3485\n2193 1 3600\n2309 10 3772\n2403 0 3913\n982 471 392\n972 482 414\n1002 481 457\n1000 501 506\n1007 537 595\n1009 520 644\n1054 519 674\n1059 535 755\n1058 522 828\n1075 521 912\n1111 544 997\n1135 517 1104\n1188 509 1205\n1202 498 1288\n1240 498 1423\n1264 472 1558\n1321 436 1687\n1332 405 1814\n1383 394 1966\n1424 353 2113\n1499 295 2262\n1552 209 2421\n1617 106 2578\n1676 0 2743\n1766 9 2898\n1812 16 3023\n1931 4 3174\n2016 5 3327\n2115 22 3492\n2184 5 3630\n2268 10 3761\n2402 1 3895\n1022 531 402\n1011 509 418\n1027 545 478\n1025 561 517\n1038 571 591\n1014 571 647\n1070 566 694\n1050 582 775\n1086 586 844\n1104 585 956\n1093 584 1016\n1149 571 1127\n1174 554 1196\n1209 556 1312\n1240 554 1437\n1279 528 1581\n1321 499 1697\n1353 480 1832\n1376 444 1959\n1433 419 2128\n1487 354 2278\n1571 284 2448\n1609 234 2600\n1713 76 2731\n1770 4 2900\n1824 11 3024\n1908 3 3198\n1993 3 3331\n2078 2 3504\n2174 6 3629\n2289 0 3781\n2386 3 3924\n1065 581 420\n1041 573 444\n1042 599 494\n1036 615 551\n1044 615 598\n1046 621 666\n1060 652 742\n1070 630 779\n1088 663 877\n1110 632 961\n1153 637 1019\n1156 638 1142\n1194 630 1239\n1228 614 1324\n1262 616 1479\n1268 581 1573\n1343 585 1730\n1356 556 1864\n1397 516 2002\n1448 490 2157\n1509 434 2304\n1549 385 2447\n1629 316 2619\n1683 243 2742\n1756 138 2906\n1835 17 3050\n1875 13 3194\n2009 3 3337\n2054 16 3467\n2155 13 3632\n2260 3 3789\n2384 3 3926\n1062 663 459\n1068 670 496\n1054 667 532\n1070 680 557\n1089 671 638\n1099 682 686\n1114 718 772\n1058 705 786\n1074 719 908\n1118 740 990\n1134 727 1068\n1147 726 1162\n1203 706 1252\n1246 701 1387\n1277 687 1510\n1292 660 1613\n1329 654 1746\n1346 625 1886\n1403 607 2037\n1448 561 2180\n1481 543 2317\n1544 507 2466\n1611 453 2618\n1659 387 2752\n1736 315 2909\n1800 229 3050\n1911 81 3208\n1985 3 3322\n2072 5 3481\n2175 2 3634\n2258 0 3787\n2357 13 3920\n1056 773 468\n1056 779 505\n1060 771 530\n1076 761 565\n1077 785 623\n1104 771 684\n1118 768 793\n1108 772 848\n1138 820 924\n1139 791 982\n1165 788 1084\n1167 800 1181\n1236 789 1305\n1234 787 1408\n1264 774 1516\n1284 751 1635\n1327 741 1798\n1336 715 1918\n1399 677 2036\n1432 672 2190\n1502 616 2350\n1545 609 2497\n1585 560 2649\n1648 522 2766\n1729 464 2908\n1800 407 3063\n1844 321 3188\n1953 232 3363\n2049 93 3496\n2143 21 3644\n2226 0 3777\n2344 0 3932\n1055 868 493\n1057 877 536\n1074 869 551\n1058 869 595\n1091 894 665\n1091 875 717\n1104 898 797\n1124 873 866\n1127 885 933\n1136 915 1029\n1146 917 1127\n1179 900 1211\n1209 906 1335\n1221 881 1420\n1283 852 1561\n1299 841 1688\n1329 830 1814\n1371 814 1945\n1388 805 2091\n1437 747 2212\n1486 740 2368\n1524 709 2508\n1590 659 2645\n1637 649 2800\n1696 594 2920\n1776 558 3090\n1848 514 3212\n1953 416 3355\n2020 383 3489\n2114 290 3647\n2221 193 3795\n2311 144 3925\n1027 961 517\n1009 978 561\n1044 968 598\n1056 961 618\n1067 999 679\n1088 994 752\n1106 986 801\n1139 1002 883\n1126 1020 965\n1143 1034 1058\n1191 1021 1170\n1193 1014 1274\n1224 1021 1381\n1224 992 1458\n1244 979 1595\n1282 963 1730\n1324 941 1868\n1334 926 1982\n1357 902 2104\n1402 872 2262\n1456 854 2402\n1495 838 2542\n1542 821 2673\n1606 793 2823\n1690 733 2964\n1763 688 3082\n1841 663 3225\n1893 603 3351\n2013 566 3509\n2071 531 3647\n2189 478 3803\n2279 454 3934\n979 1091 556\n986 1090 584\n1002 1082 625\n1006 1084 656\n1027 1102 700\n1041 1097 744\n1047 1109 824\n1070 1113 897\n1110 1132 1010\n1146 1145 1075\n1166 1166 1188\n1172 1134 1297\n1203 1138 1416\n1211 1119 1530\n1228 1105 1646\n1268 1086 1769\n1303 1069 1882\n1311 1040 1996\n1359 1017 2124\n1382 1016 2254\n1444 979 2408\n1483 952 2570\n1521 941 2680\n1603 908 2830\n1636 872 2955\n1706 851 3098\n1779 829 3234\n1878 765 3366\n1953 766 3511\n2026 705 3660\n2135 689 3788\n2237 673 3950\n972 1190 611\n968 1174 632\n963 1191 649\n973 1195 697\n992 1213 750\n1035 1206 802\n1021 1230 859\n1083 1232 927\n1069 1248 988\n1139 1258 1116\n1114 1291 1215\n1134 1280 1313\n1162 1273 1436\n1140 1248 1534\n1220 1245 1673\n1235 1225 1795\n1243 1224 1918\n1291 1186 2025\n1304 1163 2165\n1341 1142 2299\n1360 1137 2425\n1429 1104 2555\n1485 1071 2681\n1544 1059 2844\n1613 1027 2989\n1685 998 3120\n1722 978 3256\n1800 923 3354\n1888 920 3533\n1983 875 3667\n2096 864 3793\n2210 858 3941\n921 1332 640\n928 1315 656\n927 1345 695\n924 1334 728\n934 1336 760\n960 1359 822\n974 1358 867\n999 1358 950\n1037 1367 1032\n1071 1385 1119\n1085 1413 1227\n1107 1427 1357\n1142 1418 1465\n1132 1376 1587\n1093 1369 1702\n1140 1325 1816\n1172 1338 1959\n1202 1335 2058\n1256 1312 2222\n1286 1301 2354\n1334 1260 2472\n1383 1246 2598\n1424 1223 2743\n1488 1190 2860\n1560 1172 2990\n1620 1147 3125\n1689 1115 3241\n1759 1083 3381\n1859 1058 3521\n1950 1048 3664\n2037 1042 3799\n2154 1043 3940\n849 1447 676\n857 1454 685\n870 1444 721\n881 1455 745\n882 1459 773\n889 1471 814\n931 1485 900\n952 1512 982\n985 1535 1077\n1006 1543 1163\n1044 1566 1262\n1054 1575 1361\n1097 1565 1490\n1093 1559 1623\n1060 1550 1745\n1081 1506 1865\n1075 1482 1989\n1110 1439 2127\n1143 1441 2251\n1193 1439 2376\n1246 1411 2485\n1312 1390 2636\n1370 1367 2743\n1421 1329 2869\n1490 1327 3013\n1544 1298 3116\n1610 1272 3260\n1707 1251 3396\n1766 1228 3535\n1886 1208 3664\n1986 1195 3814\n2091 1214 3961\n782 1583 699\n796 1587 721\n806 1588 731\n800 1596 778\n817 1607 813\n806 1616 848\n843 1635 922\n875 1637 991\n882 1661 1063\n918 1687 1154\n955 1705 1286\n984 1731 1407\n997 1716 1531\n991 1752 1645\n1014 1703 1740\n1018 1693 1868\n1009 1666 2011\n1034 1614 2165\n1020 1585 2281\n1036 1570 2415\n1066 1531 2531\n1192 1545 2647\n1248 1535 2776\n1296 1502 2879\n1379 1479 3033\n1442 1458 3148\n1540 1428 3262\n1591 1401 3417\n1700 1377 3543\n1814 1372 3682\n1911 1354 3798\n2030 1378 3950\n669 1736 720\n674 1751 739\n680 1750 776\n693 1735 784\n715 1765 823\n723 1765 869\n741 1790 935\n763 1795 1011\n779 1809 1096\n782 1845 1194\n896 1853 1323\n914 1871 1444\n912 1872 1569\n923 1873 1702\n920 1883 1817\n957 1853 1902\n961 1837 2036\n971 1809 2176\n913 1783 2288\n922 1754 2420\n952 1715 2554\n977 1674 2675\n1028 1654 2803\n1137 1666 2925\n1246 1647 3026\n1325 1614 3148\n1411 1575 3273\n1517 1535 3419\n1595 1528 3543\n1699 1520 3673\n1811 1508 3813\n1954 1530 3961\n510 1875 758\n519 1875 762\n524 1872 772\n540 1881 799\n553 1901 858\n575 1923 908\n584 1931 976\n618 1933 1062\n607 1947 1125\n639 1981 1188\n746 1998 1350\n815 2010 1485\n816 2016 1581\n833 2032 1700\n828 2025 1818\n859 2056 1956\n882 2009 2073\n867 2000 2186\n850 1965 2309\n842 1930 2445\n829 1899 2556\n840 1845 2679\n880 1821 2807\n951 1784 2938\n995 1768 3044\n1188 1761 3175\n1299 1766 3289\n1396 1724 3421\n1460 1691 3558\n1574 1679 3690\n1704 1675 3808\n1843 1680 3959\n222 2027 748\n227 2031 781\n213 2035 792\n240 2041 818\n235 2059 856\n278 2062 920\n294 2074 985\n309 2096 1063\n341 2104 1119\n378 2139 1231\n559 2144 1384\n695 2159 1511\n683 2172 1606\n716 2155 1754\n723 2173 1854\n699 2196 1973\n802 2178 2094\n782 2159 2219\n763 2135 2340\n766 2094 2449\n746 2065 2581\n759 2037 2685\n764 2003 2817\n748 1958 2922\n829 1930 3062\n925 1876 3181\n1028 1875 3301\n1238 1884 3443\n1408 1883 3565\n1473 1871 3688\n1591 1845 3831\n1748 1846 3977\n7 2188 772\n0 2195 786\n7 2202 812\n4 2201 822\n12 2209 860\n5 2215 940\n27 2220 994\n29 2237 1081\n45 2268 1154\n35 2278 1267\n278 2289 1403\n492 2294 1548\n526 2314 1665\n560 2307 1773\n565 2302 1889\n576 2301 2028\n544 2338 2141\n713 2301 2246\n670 2297 2385\n672 2272 2482\n663 2229 2599\n644 2197 2728\n628 2168 2824\n633 2133 2952\n642 2098 3075\n724 2060 3194\n813 2032 3321\n944 1999 3450\n1105 2002 3585\n1378 2042 3698\n1555 2077 3845\n1711 2077 3983\n16 2346 807\n6 2342 835\n0 2349 838\n19 2352 889\n0 2365 929\n19 2364 971\n16 2370 1052\n11 2387 1113\n0 2426 1177\n5 2427 1267\n9 2442 1433\n213 2439 1590\n239 2453 1708\n292 2447 1829\n292 2453 1932\n302 2445 2045\n279 2451 2153\n340 2462 2285\n610 2455 2407\n612 2410 2523\n586 2398 2621\n548 2362 2748\n514 2349 2865\n526 2298 2992\n517 2260 3115\n534 2229 3209\n612 2188 3349\n739 2174 3451\n937 2162 3589\n1073 2149 3686\n1340 2191 3820\n1680 2284 3994\n6 2499 835\n0 2503 866\n0 2504 888\n11 2502 924\n2 2508 959\n10 2512 1023\n0 2522 1074\n5 2538 1146\n11 2542 1223\n15 2557 1339\n0 2579 1477\n37 2589 1618\n51 2580 1731\n52 2586 1829\n59 2578 1945\n48 2595 2041\n64 2594 2174\n64 2584 2294\n140 2610 2455\n494 2580 2540\n464 2547 2659\n416 2525 2757\n405 2487 2874\n356 2463 3007\n380 2435 3122\n390 2417 3242\n451 2360 3346\n541 2338 3471\n730 2337 3598\n949 2313 3721\n1190 2332 3847\n1461 2370 3982\n0 2634 883\n15 2644 932\n6 2645 943\n0 2650 974\n0 2648 1000\n5 2640 1062\n5 2662 1119\n14 2675 1205\n13 2691 1288\n11 2687 1389\n26 2693 1525\n10 2725 1688\n0 2710 1771\n20 2711 1882\n18 2710 1992\n15 2700 2125\n6 2722 2198\n14 2722 2306\n1 2727 2412\n15 2750 2560\n351 2698 2681\n343 2671 2783\n312 2639 2907\n279 2621 3003\n272 2592 3126\n290 2561 3229\n326 2544 3368\n434 2535 3464\n582 2499 3613\n782 2479 3723\n1070 2505 3851\n1374 2538 4010\n0 2777 943\n11 2787 992\n5 2768 1014\n0 2790 1052\n20 2782 1075\n11 2787 1113\n8 2787 1167\n22 2798 1246\n7 2812 1327\n27 2812 1429\n0 2823 1578\n11 2844 1726\n11 2840 1831\n31 2826 1942\n17 2838 2004\n0 2828 2105\n6 2827 2239\n15 2832 2325\n14 2839 2430\n5 2847 2571\n6 2870 2704\n277 2819 2795\n268 2803 2931\n199 2780 3028\n190 2737 3126\n204 2727 3234\n258 2697 3332\n401 2668 3485\n558 2654 3594\n765 2640 3734\n981 2663 3873\n1288 2690 4005\n24 2898 1020\n24 2910 1041\n35 2905 1067\n19 2916 1108\n20 2919 1124\n16 2926 1172\n14 2924 1252\n8 2940 1323\n27 2936 1407\n15 2961 1490\n21 2952 1623\n0 2947 1778\n17 2944 1882\n34 2955 1994\n0 2964 2060\n10 2960 2172\n7 2960 2239\n24 2955 2371\n0 2960 2473\n21 2964 2593\n0 2965 2723\n8 2975 2855\n249 2927 2956\n231 2898 3023\n203 2887 3135\n191 2871 3257\n243 2846 3355\n371 2825 3491\n544 2822 3615\n770 2792 3737\n997 2830 3874\n1290 2849 4022\n5 3040 1110\n22 3032 1114\n24 3035 1151\n18 3044 1193\n16 3047 1213\n18 3044 1263\n14 3060 1322\n4 3058 1380\n11 3062 1462\n5 3058 1569\n14 3080 1705\n16 3076 1845\n4 3072 1926\n20 3072 2007\n17 3064 2118\n4 3083 2169\n0 3076 2273\n9 3069 2384\n3 3085 2507\n10 3073 2620\n20 3069 2736\n14 3083 2855\n7 3105 2985\n299 3029 3066\n266 3024 3149\n245 3012 3261\n281 2988 3362\n390 2966 3501\n567 2948 3618\n803 2954 3766\n1013 2972 3888\n1321 3001 4015\n6 3172 1205\n9 3168 1225\n3 3173 1261\n7 3184 1305\n6 3178 1313\n14 3173 1358\n11 3180 1410\n11 3185 1457\n6 3204 1554\n8 3185 1635\n0 3191 1778\n7 3192 1940\n16 3194 2020\n22 3208 2086\n22 3197 2162\n3 3186 2231\n18 3209 2317\n24 3203 2423\n32 3196 2523\n3 3189 2628\n19 3173 2758\n19 3184 2884\n24 3209 2991\n10 3200 3086\n357 3151 3179\n339 3122 3309\n364 3126 3411\n449 3110 3508\n609 3094 3626\n813 3108 3778\n1071 3124 3916\n1370 3148 4044\n27 3300 1320\n11 3293 1321\n6 3315 1361\n31 3297 1392\n15 3308 1416\n27 3320 1465\n3 3317 1508\n3 3316 1574\n12 3316 1664\n10 3318 1754\n13 3309 1876\n6 3320 2001\n11 3316 2073\n12 3314 2136\n17 3324 2210\n15 3330 2291\n8 3319 2375\n25 3323 2464\n8 3327 2569\n14 3332 2670\n15 3319 2753\n11 3303 2881\n3 3316 3010\n33 3316 3127\n28 3308 3209\n409 3271 3307\n421 3246 3448\n518 3247 3549\n654 3240 3635\n873 3242 3764\n1122 3257 3906\n1429 3298 4039\n2 3442 1483\n3 3442 1488\n16 3428 1503\n6 3439 1514\n8 3430 1568\n13 3439 1618\n7 3454 1632\n11 3444 1684\n28 3437 1785\n31 3426 1869\n12 3430 1995\n11 3466 2108\n14 3445 2161\n6 3452 2194\n13 3439 2289\n0 3447 2363\n10 3444 2408\n7 3467 2494\n18 3442 2578\n7 3452 2697\n10 3446 2792\n25 3446 2913\n2 3453 2989\n19 3448 3152\n25 3448 3244\n113 3428 3351\n527 3375 3451\n595 3363 3564\n718 3367 3675\n914 3389 3773\n1174 3401 3920\n1519 3437 4080\n19 3564 1658\n3 3573 1662\n0 3575 1664\n0 3566 1685\n0 3559 1727\n9 3574 1763\n3 3560 1786\n11 3560 1859\n9 3568 1917\n11 3564 1988\n5 3566 2103\n232 3573 2222\n386 3570 2297\n111 3578 2332\n10 3589 2381\n30 3579 2463\n26 3582 2496\n18 3582 2563\n0 3580 2629\n14 3581 2742\n17 3579 2845\n18 3577 2934\n17 3570 3057\n21 3568 3150\n20 3571 3278\n24 3584 3407\n237 3535 3473\n681 3513 3552\n795 3520 3677\n984 3535 3835\n1260 3543 3928\n1604 3575 4092\n17 3704 1841\n25 3697 1851\n16 3705 1853\n20 3707 1889\n17 3690 1911\n15 3697 1945\n3 3709 1980\n0 3702 2040\n12 3701 2082\n20 3706 2156\n420 3690 2255\n780 3703 2343\n866 3704 2398\n696 3690 2447\n295 3716 2498\n14 3718 2508\n26 3712 2568\n5 3709 2644\n11 3730 2712\n12 3722 2807\n11 3720 2871\n1 3718 2970\n1 3720 3073\n21 3727 3208\n17 3718 3293\n29 3719 3408\n18 3720 3547\n491 3675 3638\n886 3638 3697\n1057 3671 3813\n1340 3688 3978\n1703 3716 4092\n145 3836 2059\n156 3837 2085\n158 3834 2084\n185 3848 2103\n236 3849 2128\n296 3849 2147\n379 3823 2196\n409 3841 2212\n604 3836 2254\n834 3847 2346\n1033 3826 2422\n1186 3831 2489\n1245 3849 2567\n1115 3847 2592\n913 3849 2612\n639 3844 2675\n59 3852 2652\n9 3857 2709\n0 3869 2776\n6 3879 2851\n0 3873 2953\n27 3863 3060\n26 3850 3130\n0 3892 3239\n0 3862 3343\n0 3868 3453\n28 3884 3599\n32 3888 3698\n798 3814 3752\n1152 3788 3824\n1443 3810 3976\n1822 3852 4095\n1155 3983 2345\n1176 3983 2355\n1150 3988 2345\n1178 3984 2386\n1185 3981 2391\n1217 3972 2401\n1211 3971 2419\n1232 3972 2457\n1299 3995 2503\n1384 3998 2563\n1503 3972 2618\n1601 3982 2677\n1670 3962 2747\n1552 3974 2778\n1421 4002 2775\n1224 4004 2783\n961 4008 2800\n446 4009 2886\n12 4017 2897\n18 4025 2938\n11 4031 3024\n16 4036 3111\n26 4019 3208\n13 4043 3301\n0 4020 3437\n0 4021 3521\n5 4031 3627\n24 4027 3748\n424 4049 3873\n1187 3988 3916\n1531 3950 4002\n1970 3988 4095\n1055 369 396\n1061 395 412\n1055 402 425\n1059 418 495\n1064 420 541\n1079 392 560\n1113 399 649\n1106 429 728\n1140 423 805\n1141 434 871\n1161 428 941\n1178 428 1060\n1232 407 1148\n1267 400 1235\n1299 377 1365\n1335 376 1495\n1387 348 1630\n1412 298 1755\n1485 270 1911\n1511 193 2063\n1590 91 2219\n1650 15 2378\n1709 6 2552\n1775 6 2709\n1866 0 2879\n1919 3 3038\n2030 3 3156\n2107 6 3317\n2196 0 3487\n2299 1 3599\n2381 0 3756\n2506 0 3924\n1061 396 402\n1055 402 407\n1072 420 436\n1083 439 488\n1082 449 537\n1069 453 573\n1122 432 657\n1120 446 743\n1150 464 823\n1142 444 877\n1168 456 958\n1180 435 1067\n1227 424 1163\n1250 419 1261\n1297 419 1384\n1340 410 1495\n1361 378 1644\n1421 346 1762\n1478 292 1917\n1517 244 2079\n1579 147 2241\n1645 48 2420\n1705 10 2562\n1792 4 2712\n1871 0 2851\n1940 4 3017\n2022 5 3175\n2100 6 3315\n2189 3 3477\n2284 6 3629\n2381 1 3746\n2484 6 3913\n1071 455 428\n1082 440 433\n1077 448 453\n1072 494 484\n1068 486 550\n1077 479 597\n1099 478 649\n1106 487 732\n1141 496 814\n1144 484 884\n1164 486 980\n1196 488 1062\n1220 473 1177\n1256 481 1261\n1317 462 1389\n1340 450 1525\n1390 401 1656\n1442 363 1781\n1487 328 1921\n1524 276 2079\n1575 195 2237\n1655 92 2384\n1720 9 2547\n1803 1 2715\n1863 14 2863\n1926 0 3001\n2034 0 3172\n2103 13 3330\n2196 10 3475\n2291 2 3628\n2382 1 3757\n2503 0 3923\n1094 467 387\n1097 466 409\n1106 496 470\n1099 501 526\n1096 528 557\n1103 532 634\n1113 512 679\n1123 527 732\n1156 542 819\n1163 530 914\n1189 527 976\n1223 521 1093\n1247 513 1190\n1271 502 1278\n1318 494 1400\n1343 482 1536\n1389 458 1669\n1432 418 1796\n1470 400 1964\n1529 337 2102\n1588 275 2263\n1642 197 2421\n1718 71 2566\n1796 1 2706\n1858 4 2869\n1942 10 3030\n1994 1 3167\n2096 4 3299\n2166 6 3486\n2278 0 3624\n2370 11 3757\n2483 14 3893\n1100 506 405\n1117 513 411\n1110 531 475\n1123 550 513\n1127 562 552\n1137 572 636\n1104 585 668\n1157 563 736\n1174 585 853\n1167 580 948\n1222 591 1031\n1216 584 1106\n1251 568 1225\n1299 551 1334\n1325 549 1453\n1355 530 1550\n1392 513 1684\n1427 481 1818\n1481 454 1950\n1531 410 2091\n1590 356 2264\n1656 282 2440\n1710 176 2582\n1775 43 2721\n1852 7 2901\n1931 9 3041\n1998 13 3196\n2084 8 3330\n2167 20 3461\n2284 0 3634\n2354 0 3769\n2448 0 3912\n1126 567 414\n1139 571 474\n1135 599 495\n1146 600 567\n1140 626 599\n1136 618 667\n1125 657 726\n1140 610 755\n1169 649 840\n1201 666 959\n1229 650 1034\n1235 646 1106\n1263 644 1236\n1318 620 1330\n1333 623 1433\n1379 595 1574\n1401 588 1696\n1448 545 1837\n1469 522 1974\n1546 470 2130\n1599 443 2295\n1658 392 2444\n1714 296 2582\n1779 219 2777\n1834 79 2911\n1910 6 3035\n1992 3 3167\n2088 3 3347\n2168 9 3467\n2256 2 3640\n2354 0 3766\n2475 0 3913\n1142 639 420\n1136 675 464\n1144 680 493\n1154 678 568\n1141 706 623\n1159 700 681\n1143 713 715\n1129 715 784\n1191 700 870\n1199 731 980\n1237 718 1061\n1254 710 1161\n1279 724 1247\n1328 704 1351\n1329 689 1474\n1395 665 1605\n1406 654 1729\n1454 625 1847\n1511 609 2004\n1552 564 2162\n1593 538 2320\n1655 486 2461\n1700 422 2617\n1767 358 2771\n1843 274 2927\n1902 173 3039\n1973 37 3205\n2049 11 3330\n2139 9 3497\n2231 0 3622\n2331 3 3777\n2442 3 3903\n1135 766 454\n1147 763 495\n1164 774 527\n1164 764 559\n1186 784 651\n1188 781 689\n1181 800 723\n1162 776 819\n1192 804 887\n1197 817 983\n1231 824 1092\n1268 816 1153\n1271 815 1281\n1359 790 1421\n1347 779 1496\n1393 753 1624\n1419 720 1753\n1442 717 1887\n1502 705 2025\n1551 661 2177\n1573 639 2344\n1660 582 2488\n1692 552 2641\n1757 491 2793\n1832 441 2933\n1900 372 3061\n1991 273 3196\n2067 162 3372\n2145 35 3486\n2218 11 3644\n2327 0 3773\n2436 0 3927\n1150 864 470\n1154 894 517\n1166 881 549\n1155 881 597\n1162 869 637\n1200 880 720\n1193 882 768\n1226 889 868\n1236 912 944\n1239 896 988\n1258 923 1118\n1281 896 1203\n1324 887 1308\n1364 885 1423\n1365 882 1519\n1404 868 1671\n1449 833 1804\n1464 814 1924\n1485 797 2085\n1551 759 2225\n1593 748 2366\n1655 716 2514\n1687 668 2637\n1739 627 2792\n1821 584 2909\n1893 513 3069\n1950 486 3228\n2016 402 3362\n2129 321 3503\n2191 245 3641\n2298 141 3778\n2398 74 3922\n1148 994 489\n1147 989 518\n1148 998 554\n1172 1003 591\n1176 1013 673\n1176 1001 714\n1218 1001 767\n1234 1009 869\n1253 1011 956\n1256 1019 1053\n1276 1041 1156\n1292 1030 1241\n1326 1014 1344\n1380 1008 1496\n1389 977 1592\n1419 955 1737\n1432 939 1860\n1462 931 1975\n1501 892 2093\n1511 886 2246\n1574 864 2389\n1614 843 2506\n1665 791 2664\n1726 767 2821\n1779 737 2939\n1818 698 3067\n1937 655 3221\n1994 602 3367\n2073 551 3505\n2183 495 3649\n2265 447 3774\n2357 432 3918\n1135 1065 546\n1136 1066 578\n1114 1097 610\n1153 1082 654\n1156 1084 714\n1161 1118 765\n1161 1113 808\n1223 1109 888\n1248 1133 979\n1278 1135 1053\n1296 1155 1161\n1297 1150 1276\n1313 1150 1385\n1365 1130 1504\n1368 1116 1605\n1383 1103 1738\n1418 1077 1881\n1434 1062 2003\n1455 1040 2142\n1508 1020 2282\n1549 990 2430\n1613 958 2591\n1642 936 2676\n1697 905 2818\n1746 868 2965\n1834 831 3096\n1902 810 3250\n1963 762 3358\n2062 732 3515\n2130 693 3646\n2207 658 3794\n2351 652 3940\n1082 1189 594\n1076 1206 612\n1078 1226 635\n1060 1219 671\n1115 1227 722\n1136 1225 792\n1158 1228 842\n1159 1246 912\n1201 1256 1002\n1221 1264 1106\n1281 1287 1195\n1302 1297 1372\n1332 1285 1440\n1362 1274 1543\n1379 1231 1676\n1380 1234 1793\n1387 1217 1915\n1414 1192 2047\n1474 1170 2186\n1484 1143 2301\n1505 1142 2440\n1575 1115 2613\n1596 1083 2705\n1667 1044 2846\n1726 1010 2962\n1780 963 3103\n1864 949 3250\n1920 943 3371\n2013 883 3495\n2100 881 3648\n2182 832 3783\n2313 853 3968\n1033 1320 601\n1049 1316 657\n1051 1338 690\n1073 1337 727\n1090 1354 759\n1084 1352 801\n1121 1351 854\n1124 1373 925\n1157 1388 1015\n1174 1406 1120\n1232 1427 1242\n1281 1453 1345\n1280 1448 1469\n1266 1426 1609\n1291 1386 1721\n1317 1396 1831\n1349 1368 1933\n1368 1357 2080\n1423 1322 2218\n1443 1305 2330\n1478 1285 2477\n1510 1257 2594\n1586 1208 2750\n1619 1186 2864\n1676 1168 3012\n1713 1145 3124\n1814 1103 3253\n1870 1085 3381\n1963 1060 3520\n2061 1043 3672\n2130 1027 3783\n2273 1032 3947\n981 1464 661\n1004 1471 675\n1000 1477 693\n999 1473 699\n1030 1477 762\n1032 1486 815\n1051 1494 876\n1089 1502 971\n1106 1522 1044\n1144 1533 1147\n1192 1539 1258\n1231 1573 1374\n1252 1600 1529\n1247 1596 1609\n1257 1534 1752\n1236 1520 1847\n1256 1503 1972\n1283 1487 2099\n1335 1483 2246\n1374 1463 2360\n1419 1424 2517\n1456 1424 2645\n1489 1379 2756\n1565 1343 2866\n1617 1319 2997\n1664 1284 3130\n1741 1279 3282\n1828 1258 3401\n1902 1217 3549\n1986 1205 3657\n2094 1195 3811\n2209 1200 3959\n931 1595 680\n941 1586 695\n931 1610 719\n968 1608 749\n995 1608 786\n986 1636 872\n1010 1626 910\n1018 1630 973\n1055 1666 1078\n1068 1678 1164\n1096 1714 1284\n1173 1728 1392\n1161 1746 1537\n1163 1739 1655\n1218 1717 1785\n1182 1705 1914\n1212 1652 2037\n1166 1633 2128\n1231 1608 2278\n1225 1589 2416\n1328 1590 2518\n1364 1563 2639\n1429 1530 2792\n1497 1512 2906\n1552 1466 3032\n1578 1450 3135\n1670 1428 3271\n1769 1398 3431\n1820 1378 3519\n1916 1362 3669\n2031 1353 3810\n2122 1374 3946\n857 1739 682\n869 1737 723\n856 1742 744\n874 1740 764\n903 1752 823\n899 1792 868\n904 1762 917\n938 1791 1000\n977 1815 1108\n969 1830 1179\n998 1846 1297\n1085 1890 1418\n1141 1888 1576\n1125 1891 1687\n1137 1896 1803\n1150 1878 1922\n1142 1861 2052\n1124 1811 2149\n1155 1778 2302\n1127 1749 2422\n1143 1721 2560\n1207 1691 2677\n1305 1686 2792\n1396 1670 2908\n1451 1644 3044\n1506 1595 3176\n1567 1581 3288\n1654 1560 3404\n1727 1527 3563\n1856 1514 3684\n1932 1521 3820\n2053 1534 3963\n726 1886 739\n753 1885 733\n763 1878 759\n771 1895 798\n786 1883 832\n804 1906 900\n817 1912 945\n861 1934 1044\n874 1948 1124\n881 1981 1210\n887 1997 1276\n996 2027 1458\n1050 2031 1594\n1065 2015 1698\n1041 2044 1835\n1059 2055 1975\n1093 2020 2094\n1088 1986 2201\n1067 1968 2332\n1080 1929 2449\n1051 1905 2572\n1065 1870 2727\n1105 1818 2808\n1167 1798 2943\n1282 1798 3051\n1398 1774 3152\n1444 1749 3282\n1529 1708 3426\n1617 1699 3563\n1731 1681 3676\n1834 1695 3819\n1971 1693 3975\n610 2028 736\n604 2028 774\n613 2035 811\n619 2041 831\n634 2046 868\n676 2041 926\n680 2061 977\n703 2076 1058\n734 2100 1147\n742 2117 1223\n739 2138 1317\n874 2171 1478\n959 2166 1604\n971 2199 1750\n949 2190 1852\n971 2194 1984\n1014 2205 2115\n1031 2150 2216\n1028 2135 2349\n1014 2100 2487\n962 2088 2592\n961 2043 2740\n976 2000 2830\n1008 1963 2960\n1082 1918 3073\n1144 1891 3186\n1305 1905 3297\n1444 1896 3427\n1522 1872 3553\n1608 1841 3705\n1716 1848 3834\n1890 1850 3963\n326 2189 778\n345 2174 786\n358 2185 812\n391 2177 835\n413 2193 888\n423 2209 939\n445 2218 1010\n473 2241 1096\n501 2241 1164\n522 2278 1260\n546 2294 1343\n717 2310 1508\n844 2321 1626\n860 2329 1765\n853 2323 1885\n864 2317 1995\n835 2349 2118\n976 2324 2245\n970 2304 2372\n944 2284 2481\n918 2252 2613\n931 2216 2721\n901 2185 2844\n909 2152 2956\n895 2115 3052\n984 2065 3179\n1081 2030 3336\n1194 2013 3458\n1406 2032 3587\n1572 2047 3700\n1667 2041 3840\n1801 2035 3989\n35 2346 803\n27 2341 798\n46 2352 847\n38 2348 862\n54 2344 917\n87 2362 971\n95 2378 1014\n127 2396 1116\n163 2393 1175\n204 2415 1288\n249 2431 1405\n546 2448 1543\n707 2455 1656\n719 2466 1773\n706 2479 1915\n733 2476 2068\n728 2477 2141\n766 2476 2295\n905 2465 2399\n889 2450 2528\n856 2415 2641\n854 2374 2741\n854 2346 2836\n841 2308 2975\n830 2263 3079\n841 2236 3183\n914 2214 3343\n1031 2177 3434\n1149 2166 3585\n1308 2159 3728\n1580 2214 3845\n1839 2271 3984\n21 2471 824\n0 2488 845\n5 2495 868\n12 2501 905\n6 2501 953\n18 2516 1019\n0 2528 1067\n0 2533 1144\n6 2551 1223\n7 2557 1316\n34 2562 1444\n271 2590 1559\n569 2589 1706\n578 2595 1842\n582 2595 1943\n579 2598 2073\n575 2587 2181\n564 2613 2307\n642 2611 2415\n826 2595 2532\n844 2547 2622\n816 2524 2731\n781 2503 2856\n791 2478 2973\n785 2428 3077\n799 2410 3202\n815 2364 3330\n860 2348 3458\n1023 2318 3579\n1192 2332 3726\n1401 2327 3857\n1626 2381 3994\n5 2639 888\n11 2640 911\n10 2639 953\n10 2649 979\n0 2656 981\n3 2669 1066\n11 2645 1128\n7 2676 1196\n13 2681 1256\n9 2693 1355\n6 2699 1450\n79 2708 1613\n384 2725 1767\n393 2717 1853\n346 2725 1964\n285 2725 2085\n317 2720 2194\n315 2727 2325\n345 2736 2444\n501 2746 2593\n787 2694 2665\n774 2683 2758\n758 2655 2861\n737 2612 2981\n743 2591 3125\n740 2561 3227\n758 2536 3327\n803 2528 3456\n892 2495 3573\n1079 2490 3737\n1303 2490 3856\n1537 2528 3993\n11 2760 943\n11 2781 977\n5 2785 986\n9 2775 1041\n2 2782 1069\n31 2780 1134\n17 2794 1171\n9 2793 1248\n18 2791 1347\n9 2816 1394\n0 2831 1505\n10 2834 1688\n222 2835 1818\n187 2850 1908\n147 2856 2002\n107 2846 2113\n86 2836 2206\n117 2850 2332\n141 2840 2454\n161 2853 2577\n426 2855 2707\n776 2814 2796\n768 2780 2877\n733 2764 3009\n711 2742 3122\n724 2708 3256\n753 2682 3354\n773 2691 3473\n858 2665 3602\n994 2665 3735\n1195 2642 3857\n1472 2679 4009\n6 2906 1021\n23 2907 1040\n0 2918 1051\n7 2910 1100\n12 2906 1125\n0 2922 1165\n9 2933 1252\n9 2920 1305\n18 2927 1376\n2 2953 1450\n23 2949 1560\n0 2961 1726\n153 2975 1885\n138 2970 1945\n64 2965 2053\n18 2972 2123\n9 2966 2226\n0 2966 2345\n15 2971 2482\n8 2956 2569\n110 2963 2715\n329 2991 2855\n757 2928 2935\n734 2918 3051\n735 2883 3122\n740 2857 3254\n767 2833 3365\n785 2826 3477\n873 2804 3596\n1010 2807 3734\n1196 2827 3848\n1425 2842 4007\n7 3042 1113\n16 3037 1113\n16 3038 1150\n26 3025 1208\n6 3037 1217\n15 3027 1269\n13 3056 1327\n4 3070 1386\n0 3061 1459\n11 3074 1551\n10 3059 1629\n17 3078 1808\n128 3085 1934\n113 3091 2011\n14 3094 2111\n0 3084 2176\n0 3081 2261\n7 3084 2386\n12 3076 2475\n6 3082 2625\n11 3074 2729\n26 3085 2872\n283 3085 2986\n758 3042 3025\n772 3024 3165\n747 2997 3269\n745 2992 3371\n800 2978 3487\n894 2964 3606\n1041 2959 3729\n1216 2963 3880\n1459 3003 4025\n20 3178 1231\n13 3164 1211\n2 3164 1230\n3 3174 1268\n25 3173 1306\n3 3175 1329\n3 3189 1402\n23 3182 1478\n14 3188 1528\n0 3196 1626\n8 3191 1717\n6 3215 1890\n171 3219 2023\n120 3198 2092\n40 3192 2151\n10 3198 2213\n0 3202 2314\n10 3203 2422\n6 3187 2524\n0 3208 2647\n13 3198 2762\n11 3176 2876\n3 3208 2976\n374 3198 3100\n822 3152 3170\n787 3140 3285\n770 3108 3388\n847 3098 3508\n906 3113 3617\n1053 3106 3758\n1249 3118 3892\n1500 3148 4041\n24 3298 1330\n13 3295 1328\n19 3292 1357\n11 3316 1401\n8 3317 1423\n8 3301 1456\n8 3308 1527\n0 3312 1563\n7 3314 1656\n9 3314 1722\n11 3313 1838\n17 3308 1955\n276 3324 2112\n182 3327 2133\n52 3332 2214\n14 3327 2286\n22 3322 2369\n0 3326 2444\n10 3315 2545\n7 3320 2667\n5 3321 2760\n5 3333 2875\n0 3316 3009\n6 3307 3139\n428 3316 3242\n808 3287 3285\n800 3250 3394\n853 3263 3498\n947 3243 3653\n1081 3242 3754\n1283 3259 3917\n1540 3303 4053\n8 3434 1475\n4 3438 1486\n0 3449 1501\n6 3424 1525\n0 3434 1563\n6 3434 1579\n8 3439 1647\n14 3432 1694\n4 3446 1759\n0 3454 1838\n2 3439 1914\n42 3437 2048\n524 3450 2191\n451 3440 2242\n154 3462 2279\n12 3439 2339\n16 3439 2447\n6 3455 2489\n10 3456 2573\n8 3464 2676\n0 3458 2794\n11 3445 2905\n6 3447 3020\n8 3438 3132\n0 3446 3274\n535 3443 3369\n852 3393 3424\n885 3382 3524\n969 3391 3662\n1122 3400 3784\n1337 3399 3910\n1619 3440 4081\n0 3579 1658\n0 3575 1662\n0 3580 1664\n0 3566 1686\n2 3561 1729\n0 3565 1735\n9 3572 1794\n21 3574 1865\n10 3569 1894\n9 3561 1952\n0 3569 2046\n357 3556 2170\n786 3571 2279\n759 3573 2350\n507 3577 2379\n133 3578 2408\n22 3581 2506\n3 3584 2564\n1 3582 2649\n4 3577 2723\n10 3584 2807\n5 3579 2933\n20 3584 3043\n5 3585 3159\n7 3587 3292\n10 3593 3408\n679 3553 3483\n924 3509 3553\n1043 3524 3673\n1182 3520 3838\n1387 3549 3914\n1700 3584 4079\n10 3711 1841\n10 3706 1873\n7 3696 1863\n18 3691 1905\n11 3696 1930\n9 3695 1943\n2 3704 1977\n0 3707 2017\n36 3697 2072\n131 3700 2115\n498 3704 2204\n837 3681 2309\n1075 3688 2392\n1049 3699 2466\n893 3686 2489\n599 3714 2554\n122 3734 2574\n6 3712 2625\n10 3742 2694\n22 3722 2763\n5 3737 2865\n0 3716 2968\n6 3715 3073\n3 3721 3218\n7 3712 3315\n13 3719 3423\n6 3728 3554\n798 3689 3620\n1093 3638 3705\n1236 3656 3826\n1467 3664 3960\n1776 3721 4088\n633 3852 2108\n644 3840 2107\n673 3851 2119\n702 3834 2130\n717 3851 2144\n742 3839 2160\n755 3860 2185\n789 3843 2220\n801 3856 2236\n894 3850 2311\n1056 3857 2404\n1221 3852 2462\n1374 3826 2549\n1363 3840 2611\n1245 3836 2644\n1063 3855 2669\n782 3857 2702\n257 3874 2751\n19 3870 2782\n12 3879 2850\n10 3873 2936\n16 3857 3030\n0 3868 3137\n6 3875 3215\n16 3871 3361\n21 3858 3465\n16 3891 3575\n161 3872 3701\n1035 3819 3745\n1321 3782 3856\n1549 3810 3976\n1910 3842 4095\n1345 3988 2345\n1345 3977 2340\n1346 3978 2351\n1340 3983 2371\n1368 3969 2380\n1376 3983 2419\n1377 4006 2441\n1384 3972 2462\n1411 3978 2479\n1452 3979 2512\n1536 3982 2611\n1633 3977 2682\n1711 3987 2732\n1731 3977 2781\n1625 3986 2788\n1498 3997 2843\n1286 3994 2862\n1025 4004 2872\n494 4008 2932\n11 4021 2931\n10 4037 3001\n5 4025 3110\n6 4040 3197\n6 4037 3310\n9 4049 3419\n12 4012 3524\n11 4031 3630\n189 4047 3738\n768 4045 3861\n1342 3955 3914\n1640 3919 3976\n2041 3999 4085\n1127 369 388\n1143 412 422\n1121 403 414\n1149 429 462\n1139 446 520\n1151 448 565\n1158 402 616\n1210 402 715\n1217 413 783\n1258 430 880\n1260 441 976\n1276 423 1050\n1300 427 1129\n1348 396 1254\n1375 393 1363\n1432 379 1501\n1446 343 1611\n1511 322 1756\n1579 254 1898\n1616 186 2064\n1658 81 2213\n1727 5 2376\n1809 5 2530\n1887 0 2697\n1942 0 2844\n2043 10 3020\n2117 13 3174\n2204 0 3324\n2281 6 3470\n2363 6 3622\n2475 0 3764\n2566 0 3909\n1136 388 382\n1148 418 377\n1153 435 426\n1148 441 460\n1157 480 534\n1136 465 567\n1169 422 603\n1184 456 705\n1231 454 806\n1245 466 899\n1278 456 962\n1280 466 1045\n1320 453 1138\n1355 427 1267\n1379 409 1386\n1418 411 1512\n1443 378 1629\n1518 350 1783\n1545 311 1914\n1610 243 2059\n1674 146 2220\n1742 27 2358\n1813 0 2551\n1892 4 2703\n1955 12 2863\n2051 12 3012\n2115 16 3177\n2191 0 3324\n2284 0 3466\n2363 6 3622\n2464 0 3747\n2576 10 3918\n1138 425 375\n1168 440 422\n1170 451 441\n1174 456 495\n1149 495 519\n1154 509 595\n1173 455 622\n1208 485 705\n1241 483 806\n1263 480 939\n1285 488 1003\n1286 474 1081\n1333 487 1169\n1337 461 1269\n1391 441 1381\n1443 443 1539\n1466 423 1613\n1521 389 1769\n1555 339 1926\n1630 277 2065\n1703 191 2230\n1733 85 2404\n1818 1 2557\n1906 1 2724\n1940 0 2845\n2024 3 3012\n2122 12 3177\n2171 15 3323\n2285 1 3481\n2366 0 3604\n2472 0 3766\n2566 0 3909\n1183 477 384\n1189 464 436\n1160 483 448\n1195 481 517\n1180 529 573\n1185 520 639\n1189 510 686\n1226 505 740\n1232 520 827\n1263 549 925\n1304 530 993\n1294 531 1085\n1324 530 1178\n1351 519 1299\n1390 499 1396\n1445 493 1521\n1458 474 1630\n1531 435 1771\n1565 397 1936\n1633 343 2079\n1684 276 2241\n1736 175 2410\n1806 45 2566\n1876 1 2723\n1931 9 2869\n2031 1 3011\n2118 3 3193\n2182 2 3327\n2280 6 3482\n2353 0 3634\n2455 0 3756\n2566 0 3928\n1190 510 378\n1188 526 444\n1187 522 460\n1201 564 525\n1189 566 568\n1199 586 635\n1232 597 714\n1243 566 750\n1251 586 822\n1283 601 948\n1286 601 998\n1286 614 1103\n1330 586 1201\n1392 561 1307\n1416 560 1423\n1460 528 1532\n1485 524 1661\n1551 499 1806\n1579 442 1944\n1640 411 2085\n1690 356 2239\n1767 272 2421\n1824 159 2586\n1889 41 2733\n1955 4 2909\n2044 0 3039\n2115 12 3185\n2184 0 3336\n2254 2 3448\n2358 16 3629\n2451 0 3766\n2554 0 3913\n1233 582 427\n1228 584 456\n1218 597 492\n1223 610 568\n1238 606 603\n1223 625 687\n1231 634 742\n1234 637 764\n1225 651 843\n1281 672 918\n1308 654 1042\n1322 650 1131\n1338 631 1230\n1403 629 1324\n1432 623 1432\n1471 591 1544\n1503 581 1704\n1559 562 1834\n1566 541 1954\n1625 490 2134\n1706 440 2296\n1773 373 2463\n1805 310 2579\n1878 208 2749\n1945 56 2903\n1998 15 3048\n2104 3 3188\n2173 10 3340\n2267 12 3483\n2352 3 3609\n2426 12 3767\n2557 13 3916\n1248 652 427\n1232 661 469\n1243 678 503\n1248 678 542\n1251 686 614\n1264 684 673\n1268 710 726\n1246 711 815\n1267 725 842\n1295 740 936\n1306 747 1026\n1363 739 1151\n1377 710 1256\n1417 703 1369\n1451 693 1474\n1483 691 1594\n1493 659 1730\n1546 668 1861\n1621 613 1993\n1644 578 2155\n1688 526 2297\n1754 495 2470\n1824 415 2622\n1881 356 2755\n1945 242 2921\n2013 114 3068\n2091 19 3204\n2185 0 3351\n2232 23 3488\n2344 7 3621\n2414 13 3769\n2518 10 3928\n1238 747 456\n1250 768 495\n1240 756 517\n1257 774 569\n1273 773 586\n1278 788 683\n1281 791 735\n1298 792 793\n1289 810 885\n1324 802 962\n1338 826 1091\n1359 819 1169\n1406 804 1275\n1453 792 1386\n1445 794 1516\n1488 769 1629\n1530 768 1743\n1536 732 1897\n1597 696 2032\n1643 682 2156\n1713 629 2313\n1772 597 2475\n1829 544 2620\n1881 486 2782\n1937 415 2919\n1993 337 3074\n2066 236 3199\n2149 95 3368\n2242 12 3486\n2316 16 3641\n2388 3 3770\n2510 10 3937\n1247 873 483\n1274 842 495\n1247 874 536\n1280 848 595\n1296 868 630\n1313 865 686\n1311 859 778\n1333 895 862\n1313 898 920\n1323 892 996\n1343 937 1113\n1374 902 1204\n1421 892 1292\n1423 900 1439\n1477 880 1520\n1490 884 1659\n1521 865 1777\n1575 829 1916\n1591 811 2039\n1646 795 2202\n1680 739 2367\n1768 701 2488\n1803 675 2642\n1845 623 2782\n1906 579 2912\n1975 522 3079\n2050 441 3210\n2132 374 3348\n2218 285 3486\n2300 185 3648\n2387 58 3771\n2486 41 3948\n1246 974 498\n1243 992 512\n1274 969 560\n1274 1002 593\n1281 993 652\n1290 1013 710\n1297 1011 741\n1318 998 870\n1354 992 946\n1345 997 1066\n1363 999 1178\n1406 1035 1241\n1401 1014 1325\n1441 1019 1457\n1458 987 1552\n1505 986 1713\n1542 956 1802\n1586 957 1947\n1613 912 2074\n1647 907 2258\n1690 864 2348\n1746 832 2535\n1803 797 2676\n1847 754 2810\n1908 729 2961\n1973 660 3078\n2032 627 3224\n2115 579 3365\n2187 514 3513\n2283 466 3652\n2355 415 3777\n2478 384 3934\n1265 1101 534\n1245 1102 530\n1273 1110 568\n1276 1122 620\n1303 1107 672\n1287 1119 742\n1321 1117 801\n1325 1127 861\n1353 1126 967\n1378 1134 1073\n1385 1140 1187\n1406 1171 1311\n1433 1146 1384\n1443 1147 1502\n1474 1124 1615\n1519 1111 1756\n1556 1083 1850\n1571 1073 1989\n1599 1058 2136\n1625 1021 2266\n1701 989 2425\n1732 964 2534\n1789 924 2690\n1825 918 2843\n1869 873 2964\n1926 842 3104\n2020 788 3230\n2066 751 3380\n2167 698 3508\n2233 667 3638\n2320 641 3798\n2433 624 3948\n1172 1225 561\n1171 1220 567\n1178 1226 635\n1208 1227 652\n1231 1210 691\n1269 1214 779\n1269 1223 800\n1301 1262 902\n1327 1274 997\n1381 1295 1098\n1371 1286 1210\n1406 1306 1307\n1443 1282 1428\n1482 1291 1557\n1485 1258 1665\n1510 1250 1796\n1542 1240 1928\n1551 1218 2027\n1557 1191 2166\n1601 1156 2308\n1662 1132 2442\n1709 1103 2561\n1718 1082 2676\n1802 1054 2844\n1860 1025 2979\n1895 987 3115\n1966 960 3224\n2038 908 3349\n2122 888 3514\n2203 864 3663\n2286 837 3782\n2410 831 3945\n1181 1326 610\n1153 1336 615\n1195 1358 649\n1156 1342 658\n1199 1357 713\n1223 1361 786\n1213 1374 822\n1250 1392 907\n1297 1396 996\n1339 1414 1114\n1374 1406 1196\n1404 1444 1340\n1454 1460 1492\n1454 1453 1603\n1476 1419 1696\n1479 1411 1834\n1522 1356 1949\n1553 1350 2075\n1536 1342 2205\n1605 1300 2354\n1631 1293 2495\n1637 1267 2624\n1701 1235 2709\n1756 1201 2877\n1810 1169 2982\n1876 1145 3125\n1927 1110 3267\n2016 1085 3392\n2087 1059 3525\n2146 1028 3657\n2269 1011 3813\n2361 1021 3941\n1119 1462 610\n1137 1456 652\n1149 1463 690\n1164 1449 715\n1183 1483 770\n1193 1482 820\n1199 1492 883\n1220 1511 941\n1250 1525 1043\n1295 1535 1123\n1307 1583 1243\n1367 1584 1364\n1421 1594 1499\n1412 1591 1622\n1418 1581 1745\n1421 1543 1877\n1447 1530 2015\n1480 1509 2127\n1520 1492 2252\n1540 1454 2350\n1586 1440 2520\n1605 1410 2647\n1644 1390 2766\n1704 1344 2876\n1750 1336 3025\n1813 1295 3132\n1894 1272 3280\n1936 1240 3404\n2023 1216 3542\n2114 1207 3666\n2203 1197 3820\n2308 1199 3992\n1084 1612 635\n1081 1605 642\n1087 1608 671\n1122 1610 710\n1126 1616 763\n1146 1625 794\n1148 1648 880\n1184 1661 955\n1199 1683 1057\n1207 1691 1154\n1258 1703 1260\n1279 1731 1369\n1357 1765 1533\n1375 1763 1648\n1390 1753 1763\n1357 1715 1894\n1345 1691 2032\n1357 1671 2166\n1425 1639 2288\n1473 1611 2424\n1521 1588 2537\n1535 1573 2665\n1603 1542 2773\n1641 1514 2906\n1702 1482 3039\n1749 1440 3145\n1821 1425 3294\n1860 1401 3398\n1958 1372 3528\n2048 1352 3678\n2123 1345 3810\n2244 1361 3944\n1027 1731 665\n1037 1736 700\n1045 1740 744\n1044 1738 753\n1052 1780 817\n1049 1770 874\n1085 1778 952\n1090 1789 1002\n1125 1802 1072\n1159 1834 1193\n1216 1839 1284\n1220 1879 1399\n1300 1887 1555\n1326 1902 1674\n1326 1908 1795\n1348 1900 1934\n1317 1855 2046\n1309 1836 2192\n1334 1803 2321\n1332 1749 2429\n1373 1738 2550\n1455 1725 2696\n1510 1696 2820\n1533 1686 2938\n1602 1642 3031\n1679 1625 3173\n1721 1569 3272\n1779 1566 3418\n1881 1540 3566\n1949 1531 3667\n2058 1513 3804\n2188 1539 3975\n933 1886 725\n933 1886 722\n953 1887 768\n962 1884 778\n953 1902 827\n965 1912 903\n1001 1919 971\n1036 1938 1060\n1023 1948 1123\n1056 1971 1219\n1103 1988 1317\n1135 2030 1433\n1211 2054 1552\n1272 2051 1707\n1255 2056 1858\n1248 2080 1965\n1300 2035 2083\n1257 2013 2221\n1285 1969 2344\n1238 1961 2438\n1251 1907 2557\n1298 1872 2693\n1340 1824 2822\n1412 1832 2942\n1514 1804 3071\n1551 1774 3180\n1613 1747 3311\n1683 1716 3425\n1774 1695 3549\n1853 1687 3673\n1962 1673 3812\n2097 1695 3964\n852 2016 738\n841 2033 750\n855 2043 802\n850 2042 797\n874 2041 862\n895 2060 888\n908 2048 967\n928 2087 1033\n955 2095 1102\n971 2122 1216\n1007 2135 1318\n1034 2163 1449\n1120 2189 1592\n1171 2211 1735\n1188 2201 1860\n1198 2203 1995\n1204 2212 2129\n1246 2193 2239\n1241 2147 2356\n1207 2124 2492\n1193 2095 2595\n1180 2050 2696\n1206 2008 2816\n1264 1959 2973\n1315 1933 3063\n1430 1939 3207\n1520 1921 3312\n1575 1888 3432\n1652 1860 3559\n1755 1843 3693\n1878 1829 3819\n2000 1863 3972\n692 2176 793\n709 2179 813\n712 2194 827\n732 2178 869\n738 2190 892\n760 2206 960\n790 2216 1004\n773 2246 1080\n817 2251 1139\n856 2261 1245\n879 2283 1354\n905 2326 1477\n1021 2324 1612\n1101 2357 1765\n1119 2344 1878\n1099 2367 2008\n1097 2351 2145\n1148 2372 2277\n1186 2315 2378\n1174 2291 2505\n1138 2255 2589\n1143 2231 2723\n1124 2184 2832\n1122 2152 2933\n1175 2103 3091\n1236 2079 3189\n1294 2035 3312\n1453 2054 3428\n1602 2060 3573\n1674 2030 3706\n1790 2016 3826\n1918 2012 3976\n513 2332 793\n511 2330 817\n537 2355 844\n544 2345 877\n565 2348 913\n591 2355 950\n594 2375 1015\n660 2374 1112\n635 2404 1177\n690 2407 1284\n691 2424 1364\n770 2449 1499\n902 2467 1634\n1018 2483 1793\n1026 2478 1907\n998 2494 2031\n1006 2470 2153\n1011 2498 2291\n1136 2472 2408\n1148 2446 2534\n1105 2418 2642\n1093 2399 2740\n1091 2365 2854\n1105 2308 2971\n1080 2270 3076\n1092 2240 3193\n1179 2213 3345\n1256 2189 3456\n1358 2159 3546\n1579 2194 3706\n1781 2245 3845\n1917 2241 3986\n229 2487 840\n223 2499 843\n235 2493 865\n262 2494 899\n291 2495 955\n308 2503 999\n348 2506 1061\n377 2518 1137\n410 2543 1210\n462 2551 1297\n514 2563 1414\n557 2578 1513\n793 2598 1700\n927 2610 1836\n924 2603 1958\n920 2609 2072\n912 2605 2191\n911 2617 2305\n951 2629 2442\n1123 2589 2569\n1109 2569 2677\n1070 2545 2763\n1057 2492 2861\n1038 2476 2992\n1042 2442 3083\n1071 2398 3222\n1077 2380 3340\n1136 2340 3440\n1241 2342 3579\n1374 2322 3701\n1551 2332 3830\n1817 2421 3971\n16 2625 862\n16 2621 905\n7 2637 925\n8 2637 953\n26 2640 1000\n58 2647 1072\n93 2662 1117\n110 2661 1194\n110 2670 1254\n161 2677 1361\n216 2709 1450\n293 2711 1531\n670 2725 1719\n856 2715 1872\n819 2736 1969\n788 2730 2081\n797 2720 2190\n808 2719 2338\n804 2732 2435\n897 2737 2573\n1091 2710 2704\n1069 2671 2775\n1040 2665 2904\n1015 2624 2991\n1009 2595 3110\n1047 2558 3217\n1046 2536 3353\n1075 2513 3466\n1142 2499 3607\n1280 2488 3699\n1461 2501 3861\n1683 2544 4019\n15 2765 965\n10 2770 954\n0 2765 1008\n14 2783 1042\n0 2789 1072\n14 2786 1105\n29 2788 1187\n19 2794 1256\n27 2803 1321\n8 2829 1397\n48 2828 1494\n116 2840 1605\n537 2861 1761\n804 2841 1925\n759 2852 2010\n702 2854 2136\n653 2848 2219\n692 2841 2324\n688 2856 2475\n715 2856 2586\n877 2872 2735\n1048 2841 2805\n1056 2791 2927\n1058 2760 3043\n997 2756 3106\n1019 2720 3229\n1036 2682 3359\n1064 2678 3470\n1126 2652 3588\n1207 2643 3732\n1368 2654 3852\n1634 2679 3992\n25 2908 1022\n4 2892 1039\n12 2908 1058\n12 2911 1092\n19 2916 1142\n0 2917 1181\n20 2924 1240\n11 2929 1306\n8 2938 1397\n18 2950 1462\n16 2949 1572\n34 2949 1672\n432 2964 1809\n765 2962 1967\n664 2981 2065\n629 2970 2148\n497 2967 2250\n496 2963 2363\n509 2978 2467\n563 2953 2581\n667 2970 2708\n836 2980 2823\n1056 2947 2932\n1047 2926 3047\n1026 2886 3140\n1025 2856 3252\n1032 2828 3373\n1051 2810 3478\n1129 2813 3613\n1193 2800 3734\n1353 2803 3862\n1582 2838 4016\n4 3044 1107\n10 3044 1109\n17 3040 1140\n18 3045 1175\n12 3045 1213\n13 3034 1252\n16 3040 1322\n3 3054 1370\n18 3061 1486\n17 3064 1552\n11 3080 1649\n24 3073 1721\n301 3095 1906\n740 3090 2018\n677 3095 2094\n538 3101 2173\n362 3089 2266\n199 3095 2380\n236 3098 2471\n293 3079 2583\n370 3082 2699\n579 3096 2818\n818 3113 2964\n1077 3050 3042\n1071 3043 3181\n1023 3013 3267\n1038 2990 3382\n1056 2961 3470\n1128 2958 3644\n1230 2965 3731\n1387 2963 3896\n1615 2979 4033\n7 3164 1224\n31 3160 1231\n9 3186 1229\n17 3170 1287\n36 3173 1326\n6 3180 1353\n22 3180 1421\n13 3177 1439\n0 3202 1537\n13 3185 1591\n24 3193 1721\n12 3200 1810\n293 3196 1962\n746 3218 2094\n667 3221 2156\n528 3214 2220\n256 3211 2328\n117 3208 2392\n87 3205 2514\n146 3200 2598\n147 3205 2715\n162 3212 2831\n513 3195 2983\n781 3213 3094\n1089 3162 3152\n1056 3144 3306\n1036 3115 3396\n1088 3113 3512\n1136 3098 3631\n1238 3114 3758\n1418 3110 3887\n1637 3135 4024\n13 3300 1320\n26 3287 1357\n19 3309 1368\n15 3295 1390\n27 3288 1442\n16 3292 1481\n9 3309 1531\n14 3312 1580\n17 3323 1669\n7 3309 1712\n10 3314 1810\n37 3316 1885\n415 3330 2042\n810 3332 2181\n727 3332 2227\n558 3336 2304\n277 3316 2371\n55 3338 2439\n16 3319 2545\n28 3327 2649\n14 3323 2753\n9 3332 2874\n105 3316 2975\n411 3340 3117\n839 3337 3218\n1101 3268 3296\n1052 3259 3408\n1099 3254 3547\n1177 3255 3641\n1270 3248 3767\n1440 3265 3909\n1659 3305 4044\n8 3440 1483\n19 3422 1495\n6 3440 1529\n12 3438 1522\n30 3436 1566\n16 3430 1630\n8 3442 1649\n16 3441 1713\n18 3441 1790\n16 3439 1837\n12 3466 1919\n99 3459 1994\n610 3446 2122\n943 3453 2246\n847 3452 2324\n670 3456 2373\n366 3447 2440\n74 3454 2479\n3 3457 2585\n12 3448 2688\n22 3449 2798\n10 3465 2920\n19 3446 2994\n25 3446 3097\n338 3487 3253\n861 3452 3352\n1109 3393 3438\n1149 3374 3537\n1189 3405 3650\n1321 3387 3798\n1481 3401 3906\n1729 3442 4039\n20 3559 1685\n0 3569 1685\n0 3573 1687\n0 3575 1707\n1 3565 1744\n10 3575 1778\n1 3569 1826\n6 3568 1855\n31 3567 1878\n99 3573 1948\n144 3571 2023\n427 3574 2120\n847 3557 2247\n1085 3575 2372\n997 3569 2416\n838 3585 2468\n569 3581 2511\n156 3570 2559\n0 3589 2669\n1 3591 2737\n10 3578 2836\n17 3571 2957\n20 3574 3070\n12 3580 3178\n35 3576 3269\n309 3581 3356\n945 3559 3471\n1177 3520 3550\n1208 3512 3648\n1357 3549 3808\n1533 3543 3937\n1792 3589 4070\n170 3706 1852\n185 3701 1873\n188 3698 1875\n238 3719 1911\n290 3696 1918\n393 3684 1973\n436 3710 1989\n494 3700 2047\n551 3704 2086\n603 3704 2128\n648 3710 2175\n869 3692 2274\n1094 3698 2357\n1276 3699 2469\n1256 3683 2525\n1077 3714 2580\n874 3704 2620\n466 3719 2628\n30 3732 2709\n10 3727 2807\n12 3716 2874\n6 3726 3002\n1 3710 3094\n19 3709 3225\n13 3712 3344\n27 3722 3400\n412 3725 3511\n1043 3686 3615\n1262 3634 3687\n1400 3675 3826\n1587 3672 3969\n1872 3727 4089\n948 3845 2102\n956 3851 2090\n948 3831 2082\n967 3855 2125\n973 3838 2125\n1013 3845 2151\n1024 3845 2190\n1051 3852 2239\n1093 3829 2269\n1115 3842 2304\n1117 3833 2333\n1250 3852 2453\n1401 3836 2509\n1523 3843 2613\n1499 3829 2663\n1366 3851 2695\n1164 3859 2717\n899 3855 2756\n426 3871 2799\n10 3870 2865\n5 3869 2948\n5 3868 3030\n19 3869 3147\n10 3869 3245\n0 3858 3383\n10 3863 3473\n132 3875 3558\n655 3881 3689\n1221 3811 3756\n1479 3789 3841\n1683 3813 3964\n2001 3846 4095\n1483 3983 2357\n1477 3976 2333\n1469 3976 2351\n1503 3991 2372\n1479 3986 2367\n1524 3999 2391\n1537 3992 2454\n1525 3976 2447\n1552 3997 2474\n1540 3992 2527\n1575 3972 2549\n1686 3973 2643\n1763 3973 2720\n1822 3985 2769\n1831 3976 2833\n1703 3991 2865\n1555 3995 2875\n1338 4002 2902\n1047 4018 2919\n522 4015 2972\n6 4025 3018\n16 4047 3093\n20 4019 3211\n24 4031 3324\n16 4025 3433\n25 4034 3508\n132 4042 3629\n673 4037 3741\n1025 4026 3847\n1488 3986 3923\n1767 3951 4006\n2106 3967 4095\n1211 363 413\n1237 386 383\n1255 418 410\n1260 419 499\n1252 424 511\n1246 440 585\n1259 399 601\n1313 405 668\n1301 418 782\n1314 452 872\n1357 441 966\n1370 438 1056\n1373 424 1130\n1408 418 1250\n1466 388 1373\n1488 377 1476\n1560 350 1615\n1609 321 1740\n1641 277 1873\n1694 192 2024\n1769 81 2227\n1854 12 2380\n1922 7 2537\n1978 12 2688\n2045 4 2831\n2134 10 3007\n2212 9 3156\n2302 9 3314\n2384 9 3469\n2489 0 3622\n2572 0 3772\n2660 16 3912\n1208 418 391\n1203 425 380\n1227 438 450\n1220 465 489\n1225 463 524\n1259 474 584\n1283 441 627\n1303 443 696\n1310 456 786\n1337 475 886\n1372 452 944\n1393 465 1064\n1387 455 1144\n1408 431 1250\n1450 421 1389\n1506 396 1475\n1562 385 1614\n1595 356 1757\n1654 297 1904\n1701 235 2034\n1771 136 2202\n1824 25 2374\n1926 6 2550\n1982 6 2694\n2055 6 2856\n2134 6 3013\n2215 7 3153\n2288 8 3307\n2400 8 3456\n2466 0 3609\n2572 0 3763\n2660 0 3916\n1246 429 375\n1227 435 377\n1246 461 434\n1272 483 480\n1248 484 533\n1261 491 584\n1268 497 656\n1265 464 671\n1331 469 789\n1343 485 875\n1346 511 985\n1406 499 1083\n1387 486 1158\n1412 467 1258\n1460 461 1358\n1506 442 1487\n1559 413 1614\n1606 394 1761\n1645 351 1908\n1727 275 2036\n1770 207 2224\n1843 64 2386\n1902 1 2540\n1987 7 2692\n2054 6 2857\n2131 7 3010\n2204 4 3163\n2280 23 3316\n2392 1 3476\n2468 8 3617\n2572 0 3771\n2670 0 3925\n1246 469 362\n1254 464 393\n1260 503 464\n1265 510 471\n1257 521 536\n1241 535 594\n1249 531 643\n1289 503 694\n1331 512 810\n1344 527 877\n1369 549 992\n1386 547 1065\n1406 512 1175\n1441 503 1287\n1485 510 1400\n1548 485 1507\n1573 459 1644\n1614 433 1776\n1665 404 1899\n1706 348 2052\n1783 277 2219\n1852 172 2384\n1909 24 2549\n1975 14 2706\n2041 16 2860\n2137 7 3013\n2207 1 3175\n2294 2 3324\n2375 13 3466\n2461 0 3609\n2554 0 3762\n2650 14 3925\n1287 513 408\n1291 530 413\n1291 552 462\n1277 564 534\n1284 564 573\n1298 569 617\n1281 587 684\n1287 566 723\n1337 566 786\n1375 596 921\n1406 603 1011\n1441 584 1095\n1435 586 1196\n1466 575 1279\n1502 568 1407\n1534 535 1524\n1597 521 1671\n1625 500 1781\n1684 465 1940\n1737 421 2103\n1797 349 2233\n1851 259 2409\n1934 155 2576\n1988 28 2726\n2068 0 2889\n2140 6 3039\n2204 16 3169\n2288 4 3332\n2370 8 3463\n2464 0 3618\n2549 7 3762\n2638 11 3918\n1309 571 388\n1306 584 425\n1307 599 487\n1322 615 509\n1313 611 552\n1305 641 639\n1301 660 704\n1322 647 767\n1342 634 807\n1381 639 907\n1396 668 1011\n1426 667 1129\n1430 647 1210\n1493 646 1309\n1513 620 1422\n1554 614 1535\n1602 587 1697\n1660 574 1828\n1698 538 1967\n1734 497 2114\n1796 438 2259\n1852 371 2427\n1941 297 2581\n1976 173 2727\n2072 30 2890\n2124 3 3043\n2206 11 3203\n2270 12 3331\n2375 9 3464\n2451 8 3612\n2549 4 3774\n2616 4 3908\n1330 655 413\n1333 652 449\n1343 665 495\n1330 677 535\n1329 681 586\n1339 696 647\n1346 722 713\n1328 703 778\n1362 699 848\n1383 711 942\n1431 732 1050\n1454 733 1121\n1449 738 1236\n1504 712 1346\n1539 706 1458\n1571 677 1582\n1634 669 1739\n1665 645 1855\n1709 616 1981\n1758 585 2136\n1802 545 2296\n1883 479 2432\n1932 429 2603\n1986 339 2760\n2057 242 2917\n2124 92 3062\n2211 13 3205\n2288 2 3337\n2336 4 3473\n2432 12 3612\n2530 9 3764\n2609 3 3918\n1350 756 450\n1360 763 466\n1374 750 483\n1364 773 549\n1386 760 587\n1394 775 654\n1375 791 751\n1383 787 772\n1377 798 867\n1402 797 931\n1442 831 1101\n1465 819 1167\n1471 813 1258\n1517 798 1373\n1559 798 1497\n1570 774 1596\n1619 776 1717\n1676 733 1866\n1713 717 2003\n1758 675 2172\n1814 639 2316\n1863 596 2494\n1950 533 2614\n1987 472 2777\n2051 415 2914\n2114 333 3070\n2176 216 3203\n2249 66 3339\n2321 12 3467\n2431 11 3620\n2509 9 3772\n2615 12 3931\n1357 869 433\n1362 865 470\n1369 867 529\n1395 863 570\n1394 882 643\n1371 872 662\n1412 866 741\n1390 892 823\n1416 885 908\n1403 896 979\n1458 888 1086\n1486 940 1215\n1503 916 1291\n1522 921 1417\n1564 899 1511\n1599 885 1654\n1633 882 1780\n1665 852 1919\n1702 811 2019\n1757 780 2176\n1808 754 2347\n1879 714 2497\n1918 672 2633\n1970 627 2784\n2040 563 2903\n2082 512 3071\n2168 437 3201\n2228 340 3331\n2316 241 3488\n2389 107 3626\n2479 36 3758\n2580 12 3945\n1372 968 480\n1377 973 520\n1399 977 561\n1388 988 609\n1398 975 645\n1411 989 696\n1428 994 758\n1458 1006 830\n1463 1002 926\n1466 998 1014\n1470 995 1097\n1487 1031 1225\n1518 1046 1339\n1569 1047 1441\n1597 1014 1573\n1615 992 1701\n1638 994 1800\n1668 957 1930\n1720 922 2074\n1778 908 2226\n1837 875 2395\n1856 845 2512\n1904 806 2649\n1968 768 2806\n2017 720 2932\n2081 661 3082\n2136 614 3218\n2209 564 3343\n2311 497 3509\n2384 439 3637\n2455 382 3765\n2578 338 3937\n1341 1119 496\n1384 1113 520\n1368 1111 550\n1397 1108 579\n1405 1129 660\n1413 1119 703\n1411 1121 769\n1463 1121 862\n1461 1134 940\n1496 1131 1040\n1487 1130 1159\n1502 1147 1267\n1534 1177 1377\n1579 1154 1501\n1591 1143 1606\n1640 1112 1745\n1652 1110 1848\n1698 1091 1977\n1716 1056 2113\n1753 1031 2256\n1814 1002 2407\n1855 973 2556\n1898 931 2688\n1943 908 2822\n2005 866 2956\n2049 824 3076\n2086 787 3223\n2180 742 3350\n2283 696 3514\n2351 673 3655\n2444 624 3805\n2544 608 3931\n1354 1219 521\n1347 1228 551\n1362 1233 599\n1387 1236 639\n1396 1255 675\n1405 1268 730\n1410 1244 802\n1438 1263 887\n1465 1273 964\n1498 1272 1076\n1507 1269 1167\n1523 1278 1310\n1526 1313 1427\n1575 1311 1525\n1607 1297 1657\n1645 1274 1766\n1670 1250 1904\n1681 1230 2005\n1715 1198 2162\n1763 1176 2299\n1801 1148 2438\n1828 1120 2568\n1884 1092 2716\n1939 1049 2856\n1962 1028 2974\n2024 983 3098\n2090 940 3236\n2163 913 3377\n2230 865 3507\n2324 861 3654\n2405 826 3796\n2504 820 3934\n1315 1317 552\n1306 1327 588\n1321 1343 616\n1312 1329 643\n1354 1349 708\n1369 1372 759\n1379 1387 827\n1414 1390 899\n1410 1390 964\n1465 1418 1089\n1494 1444 1188\n1528 1435 1324\n1564 1454 1454\n1575 1461 1584\n1624 1444 1705\n1649 1404 1820\n1658 1397 1956\n1679 1385 2070\n1714 1361 2214\n1732 1322 2342\n1781 1287 2480\n1804 1267 2606\n1869 1235 2722\n1891 1207 2874\n1945 1177 2969\n2003 1136 3116\n2048 1109 3249\n2131 1074 3388\n2209 1050 3532\n2300 1021 3672\n2367 1001 3797\n2455 994 3931\n1289 1456 599\n1273 1482 610\n1289 1461 615\n1269 1470 650\n1318 1477 727\n1321 1514 803\n1331 1501 847\n1353 1524 939\n1373 1534 1011\n1413 1548 1125\n1435 1568 1225\n1508 1576 1339\n1533 1614 1499\n1601 1623 1635\n1617 1598 1769\n1624 1574 1869\n1660 1547 1992\n1658 1523 2128\n1670 1513 2251\n1725 1476 2368\n1732 1447 2482\n1781 1411 2642\n1819 1399 2769\n1853 1364 2873\n1901 1344 3022\n1954 1312 3142\n2020 1279 3277\n2080 1240 3394\n2146 1215 3532\n2227 1199 3666\n2317 1199 3828\n2413 1192 3950\n1223 1619 637\n1233 1620 662\n1226 1616 685\n1247 1621 710\n1251 1623 746\n1272 1639 831\n1286 1660 888\n1317 1663 952\n1347 1679 1047\n1407 1708 1161\n1416 1706 1244\n1469 1733 1367\n1478 1753 1495\n1566 1779 1647\n1563 1777 1786\n1573 1738 1894\n1579 1697 2025\n1615 1688 2161\n1638 1669 2300\n1663 1649 2434\n1708 1610 2560\n1730 1582 2650\n1764 1558 2794\n1805 1521 2890\n1823 1491 3032\n1887 1463 3143\n1945 1440 3272\n2025 1397 3406\n2076 1378 3522\n2172 1361 3675\n2267 1359 3819\n2348 1355 3944\n1145 1765 660\n1180 1755 714\n1181 1760 719\n1195 1758 752\n1207 1781 819\n1224 1771 832\n1219 1788 911\n1271 1799 992\n1287 1803 1063\n1326 1821 1175\n1355 1836 1269\n1405 1865 1394\n1436 1909 1531\n1488 1926 1682\n1508 1939 1794\n1543 1909 1920\n1525 1883 2079\n1513 1849 2193\n1514 1805 2311\n1546 1791 2479\n1615 1766 2550\n1648 1750 2698\n1689 1735 2822\n1717 1685 2906\n1775 1657 3046\n1820 1622 3157\n1882 1585 3298\n1948 1564 3424\n2010 1546 3526\n2104 1534 3680\n2194 1524 3805\n2293 1534 3960\n1106 1891 671\n1100 1895 716\n1101 1899 732\n1111 1917 754\n1129 1914 825\n1152 1922 866\n1186 1922 936\n1176 1930 1029\n1226 1945 1114\n1255 1959 1192\n1257 1987 1304\n1357 2013 1425\n1331 2033 1540\n1445 2065 1692\n1462 2079 1835\n1446 2096 1949\n1470 2064 2089\n1461 2038 2209\n1472 1997 2352\n1466 1944 2464\n1479 1904 2586\n1509 1896 2696\n1587 1901 2864\n1637 1865 2951\n1683 1810 3052\n1724 1793 3172\n1787 1755 3295\n1846 1728 3417\n1937 1696 3546\n2007 1682 3684\n2097 1679 3814\n2226 1689 3973\n1048 2027 743\n1033 2035 750\n1028 2038 758\n1039 2032 806\n1062 2051 855\n1065 2063 920\n1084 2075 990\n1112 2084 1046\n1149 2097 1145\n1167 2111 1235\n1207 2139 1333\n1247 2157 1450\n1265 2178 1560\n1385 2209 1722\n1408 2212 1855\n1405 2234 1992\n1390 2242 2106\n1429 2225 2251\n1410 2176 2361\n1427 2129 2504\n1415 2087 2616\n1420 2038 2724\n1427 2017 2855\n1475 1989 2955\n1572 1969 3078\n1645 1956 3187\n1692 1919 3304\n1756 1893 3436\n1830 1858 3552\n1929 1846 3698\n2029 1849 3822\n2145 1861 3979\n941 2184 773\n944 2174 803\n952 2184 824\n952 2181 829\n967 2198 908\n981 2200 947\n1007 2218 1033\n1029 2221 1090\n1056 2231 1161\n1103 2253 1248\n1131 2280 1358\n1172 2296 1475\n1193 2319 1593\n1274 2350 1734\n1326 2363 1882\n1330 2379 1994\n1330 2372 2132\n1375 2375 2265\n1376 2363 2375\n1400 2303 2507\n1356 2265 2652\n1350 2229 2744\n1380 2176 2861\n1368 2145 2979\n1387 2109 3079\n1459 2077 3187\n1565 2072 3327\n1676 2074 3446\n1758 2058 3569\n1823 2027 3694\n1938 2013 3826\n2057 2022 3980\n843 2333 787\n833 2330 801\n831 2331 849\n854 2346 870\n867 2338 915\n896 2359 996\n914 2371 1044\n914 2382 1116\n941 2391 1195\n986 2402 1296\n991 2448 1395\n1048 2433 1480\n1065 2468 1612\n1203 2480 1774\n1280 2487 1906\n1266 2504 2018\n1270 2495 2157\n1290 2483 2294\n1351 2498 2446\n1352 2461 2513\n1359 2420 2638\n1330 2391 2738\n1309 2355 2865\n1313 2325 2966\n1310 2275 3094\n1335 2259 3219\n1421 2204 3320\n1486 2193 3457\n1613 2197 3570\n1788 2225 3718\n1907 2224 3846\n2012 2214 3986\n694 2469 839\n692 2499 876\n731 2487 883\n718 2489 926\n762 2491 969\n763 2505 1006\n754 2517 1076\n804 2534 1156\n839 2521 1227\n868 2552 1338\n905 2554 1403\n947 2563 1521\n970 2579 1657\n1117 2621 1804\n1219 2623 1951\n1223 2618 2065\n1190 2619 2174\n1214 2618 2278\n1214 2624 2419\n1322 2621 2545\n1328 2573 2655\n1320 2543 2778\n1312 2514 2882\n1318 2484 3016\n1283 2451 3106\n1283 2410 3216\n1315 2377 3329\n1373 2348 3458\n1474 2332 3577\n1589 2329 3716\n1772 2367 3840\n2016 2441 3982\n540 2621 883\n552 2622 908\n582 2623 941\n588 2617 951\n596 2620 995\n607 2640 1061\n611 2641 1101\n649 2665 1179\n679 2666 1260\n734 2677 1357\n791 2679 1455\n843 2708 1579\n860 2704 1680\n1057 2721 1834\n1172 2735 1992\n1135 2752 2119\n1133 2737 2168\n1133 2748 2305\n1132 2747 2416\n1174 2755 2572\n1320 2730 2691\n1320 2698 2790\n1291 2692 2887\n1309 2632 3020\n1293 2595 3118\n1275 2582 3230\n1289 2542 3346\n1293 2521 3453\n1360 2497 3586\n1500 2497 3731\n1638 2495 3852\n1834 2529 3992\n256 2760 920\n285 2765 922\n289 2759 969\n300 2781 995\n353 2790 1041\n370 2794 1094\n413 2794 1172\n476 2806 1251\n517 2798 1325\n569 2815 1448\n594 2824 1533\n691 2824 1631\n744 2846 1729\n1003 2851 1888\n1142 2851 2042\n1096 2867 2145\n1050 2850 2211\n1053 2860 2343\n1061 2861 2469\n1080 2857 2587\n1135 2871 2697\n1327 2865 2813\n1277 2817 2907\n1302 2794 3040\n1295 2747 3153\n1295 2724 3270\n1268 2698 3362\n1302 2676 3463\n1333 2659 3587\n1419 2652 3738\n1551 2648 3856\n1777 2684 4010\n115 2906 1000\n114 2904 1027\n127 2909 1040\n132 2906 1069\n152 2917 1106\n153 2911 1135\n187 2920 1224\n246 2935 1300\n279 2926 1360\n361 2936 1451\n468 2946 1582\n519 2955 1684\n616 2967 1778\n931 2986 1930\n1093 2975 2089\n1065 2974 2183\n1021 2976 2238\n959 2978 2362\n966 2964 2494\n997 2978 2563\n1019 2962 2724\n1145 3003 2871\n1328 2950 2960\n1327 2933 3060\n1288 2895 3146\n1288 2856 3262\n1267 2853 3374\n1293 2824 3486\n1322 2807 3615\n1398 2814 3729\n1518 2818 3861\n1724 2847 4028\n7 3035 1097\n19 3025 1119\n6 3044 1126\n0 3043 1158\n6 3061 1206\n51 3040 1252\n100 3040 1290\n142 3053 1370\n167 3055 1425\n203 3068 1498\n267 3067 1604\n397 3095 1701\n535 3079 1836\n900 3086 1979\n1075 3096 2125\n1020 3093 2200\n950 3087 2289\n853 3088 2389\n859 3082 2521\n886 3098 2618\n919 3079 2738\n993 3087 2863\n1123 3117 2998\n1302 3058 3067\n1326 3035 3162\n1297 3010 3255\n1274 2990 3377\n1292 2981 3498\n1353 2954 3626\n1421 2963 3748\n1543 2956 3895\n1719 2985 4033\n13 3167 1208\n13 3160 1215\n12 3179 1255\n5 3176 1253\n18 3178 1303\n19 3185 1336\n30 3179 1384\n48 3177 1453\n122 3186 1531\n157 3180 1617\n193 3187 1686\n292 3199 1793\n485 3200 1885\n894 3215 2051\n1104 3210 2181\n1026 3210 2269\n940 3206 2359\n797 3215 2436\n707 3215 2516\n753 3203 2667\n781 3202 2752\n801 3211 2858\n943 3212 2992\n1088 3223 3122\n1296 3171 3181\n1319 3145 3293\n1320 3122 3399\n1303 3119 3508\n1348 3106 3626\n1435 3108 3761\n1561 3116 3901\n1767 3148 4038\n13 3300 1333\n7 3308 1339\n6 3308 1348\n7 3305 1379\n18 3307 1412\n18 3303 1441\n20 3304 1497\n52 3309 1553\n113 3310 1627\n165 3332 1687\n216 3337 1765\n315 3346 1863\n569 3315 1983\n939 3332 2128\n1132 3330 2262\n1052 3327 2328\n948 3314 2403\n765 3330 2495\n554 3340 2539\n537 3333 2647\n609 3329 2786\n656 3319 2891\n681 3314 2987\n894 3344 3124\n1077 3338 3234\n1284 3282 3295\n1322 3268 3406\n1331 3241 3517\n1362 3255 3652\n1464 3262 3772\n1586 3271 3920\n1788 3302 4054\n34 3423 1495\n20 3431 1511\n6 3441 1508\n13 3433 1541\n31 3435 1557\n77 3431 1577\n121 3426 1636\n166 3437 1694\n203 3447 1772\n278 3447 1816\n398 3453 1910\n514 3446 1980\n692 3443 2069\n1018 3437 2205\n1212 3452 2335\n1121 3444 2409\n963 3449 2437\n783 3460 2519\n491 3456 2580\n244 3466 2662\n291 3457 2775\n392 3444 2928\n440 3446 3016\n552 3442 3124\n854 3444 3275\n1136 3437 3354\n1306 3405 3405\n1369 3380 3525\n1390 3411 3648\n1474 3388 3766\n1612 3396 3908\n1839 3444 4056\n161 3577 1647\n177 3573 1659\n191 3561 1677\n212 3538 1697\n250 3567 1732\n317 3569 1763\n383 3581 1823\n461 3555 1850\n528 3566 1923\n610 3566 1985\n687 3567 2036\n704 3577 2093\n886 3583 2175\n1150 3560 2284\n1336 3574 2441\n1229 3572 2483\n1088 3593 2524\n910 3585 2576\n572 3600 2647\n121 3581 2681\n123 3591 2804\n160 3581 2886\n183 3587 2996\n222 3566 3103\n459 3590 3264\n825 3584 3400\n1162 3553 3475\n1384 3511 3559\n1438 3517 3671\n1530 3541 3809\n1662 3557 3941\n1894 3573 4081\n734 3689 1850\n725 3704 1873\n757 3698 1882\n786 3692 1913\n772 3702 1939\n835 3697 1968\n851 3701 1987\n898 3699 2028\n924 3700 2074\n971 3692 2122\n1003 3701 2172\n1002 3707 2215\n1131 3703 2312\n1319 3690 2404\n1465 3705 2516\n1393 3697 2566\n1244 3713 2602\n1094 3708 2648\n783 3720 2729\n245 3732 2739\n20 3724 2852\n27 3727 2955\n80 3743 3040\n119 3718 3152\n168 3727 3269\n475 3714 3416\n828 3736 3529\n1261 3697 3607\n1450 3657 3674\n1555 3648 3804\n1731 3664 3963\n1984 3720 4086\n1209 3843 2108\n1191 3835 2113\n1201 3826 2138\n1221 3820 2131\n1249 3843 2159\n1245 3834 2174\n1278 3845 2199\n1273 3857 2233\n1297 3853 2248\n1310 3841 2316\n1332 3831 2351\n1318 3833 2407\n1411 3855 2466\n1571 3836 2564\n1685 3835 2663\n1635 3834 2680\n1464 3852 2689\n1320 3860 2777\n1059 3865 2826\n666 3865 2883\n21 3876 2888\n18 3876 3023\n20 3870 3102\n87 3863 3200\n151 3885 3323\n176 3871 3427\n656 3875 3596\n974 3884 3691\n1388 3824 3761\n1619 3779 3841\n1798 3811 3963\n2074 3852 4086\n1626 3969 2363\n1615 3986 2352\n1640 3977 2352\n1626 3985 2384\n1653 3955 2400\n1651 3985 2437\n1675 3976 2450\n1706 3973 2467\n1688 3973 2521\n1706 3973 2521\n1688 3973 2553\n1711 3974 2577\n1760 3998 2661\n1860 3987 2746\n1977 3989 2825\n1930 3988 2881\n1796 4005 2886\n1623 4001 2901\n1434 4000 2943\n1159 4002 2988\n539 4010 3054\n74 4031 3053\n160 4024 3182\n207 4029 3274\n299 4056 3384\n452 4028 3514\n630 4038 3635\n979 4038 3738\n1227 4039 3848\n1617 3991 3915\n1870 3951 3988\n2188 3983 4095\n1306 378 387\n1315 394 418\n1302 418 456\n1315 439 450\n1312 450 511\n1330 463 549\n1332 440 632\n1362 378 671\n1391 410 777\n1431 428 870\n1474 434 974\n1502 428 1065\n1489 419 1145\n1510 419 1237\n1554 378 1339\n1604 363 1471\n1627 353 1600\n1686 312 1738\n1722 280 1887\n1794 189 2015\n1886 55 2202\n1931 5 2352\n2013 4 2511\n2110 5 2683\n2165 4 2839\n2237 3 3002\n2339 0 3151\n2411 0 3293\n2481 0 3454\n2564 0 3614\n2654 16 3762\n2759 16 3911\n1346 379 416\n1363 418 394\n1330 421 422\n1330 444 479\n1358 452 538\n1340 483 598\n1352 476 645\n1374 431 685\n1400 431 768\n1430 452 853\n1463 455 967\n1492 456 1064\n1516 445 1169\n1525 437 1248\n1557 433 1371\n1613 394 1490\n1667 379 1615\n1687 359 1743\n1734 312 1877\n1795 235 2028\n1876 121 2191\n1957 6 2387\n2017 5 2535\n2092 0 2695\n2177 7 2856\n2220 9 2995\n2313 0 3131\n2417 0 3307\n2481 8 3454\n2572 8 3625\n2646 7 3754\n2751 9 3918\n1331 429 388\n1354 457 386\n1351 458 420\n1336 469 469\n1338 507 553\n1339 511 592\n1352 514 659\n1385 468 688\n1388 481 753\n1458 470 884\n1478 478 977\n1505 499 1077\n1527 469 1163\n1533 485 1268\n1564 460 1370\n1600 457 1493\n1671 411 1638\n1709 388 1755\n1741 340 1876\n1814 291 2050\n1853 194 2199\n1966 42 2378\n2033 6 2533\n2092 0 2717\n2175 6 2859\n2256 6 3018\n2304 15 3155\n2402 0 3302\n2468 7 3449\n2565 1 3618\n2655 7 3780\n2730 0 3907\n1343 467 365\n1361 485 402\n1358 492 473\n1367 504 491\n1355 508 543\n1369 526 583\n1380 542 687\n1410 508 720\n1412 514 778\n1440 526 883\n1482 535 986\n1502 527 1086\n1540 523 1199\n1542 517 1288\n1569 505 1385\n1615 477 1513\n1668 462 1642\n1724 424 1778\n1742 397 1898\n1829 344 2054\n1884 259 2195\n1987 139 2374\n2052 17 2550\n2106 8 2701\n2172 6 2855\n2249 9 3021\n2306 3 3159\n2402 1 3314\n2473 0 3454\n2563 13 3623\n2644 6 3753\n2728 0 3910\n1375 521 394\n1361 534 414\n1369 541 455\n1362 550 479\n1380 573 541\n1384 576 613\n1409 584 682\n1402 584 753\n1414 550 772\n1454 572 881\n1477 603 1003\n1505 596 1103\n1555 579 1207\n1559 569 1280\n1585 561 1400\n1646 529 1529\n1679 526 1657\n1731 494 1781\n1766 461 1927\n1844 419 2088\n1889 344 2216\n1977 257 2406\n2042 123 2557\n2098 6 2706\n2168 7 2889\n2267 2 3042\n2309 2 3172\n2399 2 3335\n2469 0 3457\n2557 0 3633\n2640 2 3766\n2720 9 3910\n1390 576 383\n1378 580 412\n1390 614 461\n1385 603 498\n1392 613 566\n1428 624 631\n1408 638 692\n1418 646 743\n1440 617 797\n1470 613 922\n1516 641 1011\n1520 662 1124\n1566 651 1227\n1560 638 1299\n1596 618 1415\n1654 612 1561\n1702 579 1683\n1733 570 1820\n1775 538 1935\n1840 498 2109\n1899 437 2278\n1972 369 2402\n2029 278 2560\n2112 162 2718\n2162 28 2860\n2242 3 3038\n2316 3 3189\n2404 0 3337\n2467 0 3471\n2544 0 3611\n2624 0 3778\n2726 20 3913\n1419 653 410\n1422 667 446\n1429 682 473\n1410 666 523\n1450 683 569\n1445 696 646\n1445 684 688\n1454 716 772\n1450 704 858\n1469 701 920\n1512 721 1055\n1537 745 1142\n1558 721 1231\n1580 725 1349\n1622 704 1448\n1664 686 1581\n1720 659 1701\n1749 659 1824\n1783 628 1971\n1845 586 2116\n1903 542 2280\n1963 481 2425\n2034 400 2574\n2110 317 2741\n2167 231 2895\n2224 74 3046\n2307 0 3192\n2388 0 3334\n2441 11 3478\n2538 0 3634\n2627 4 3774\n2720 0 3935\n1467 733 410\n1461 735 458\n1493 752 497\n1464 746 546\n1469 768 606\n1461 774 663\n1474 772 738\n1471 782 801\n1467 807 867\n1471 766 928\n1528 788 1043\n1573 807 1161\n1584 821 1278\n1594 811 1372\n1651 801 1474\n1672 785 1605\n1732 769 1716\n1759 746 1859\n1806 728 1996\n1854 690 2131\n1925 639 2302\n1970 603 2481\n2033 550 2616\n2105 476 2770\n2159 404 2905\n2222 314 3039\n2281 210 3181\n2383 42 3351\n2435 7 3477\n2535 0 3638\n2606 8 3796\n2712 0 3931\n1467 857 442\n1462 861 470\n1474 855 494\n1498 862 545\n1492 863 579\n1515 867 656\n1513 888 728\n1518 877 794\n1527 889 897\n1512 911 984\n1527 886 1060\n1586 915 1186\n1604 922 1295\n1632 903 1408\n1667 904 1532\n1704 875 1650\n1748 871 1759\n1785 850 1896\n1810 840 2013\n1874 799 2192\n1930 765 2320\n1983 719 2482\n2037 675 2640\n2096 623 2770\n2150 568 2921\n2223 501 3064\n2280 418 3199\n2343 335 3329\n2419 202 3492\n2481 59 3635\n2581 20 3783\n2671 0 3926\n1463 972 457\n1484 960 498\n1508 971 554\n1505 981 599\n1506 983 607\n1523 982 688\n1565 986 742\n1554 991 838\n1553 982 918\n1540 1005 982\n1570 991 1132\n1589 1024 1200\n1649 1047 1343\n1649 1027 1434\n1688 1022 1558\n1702 1010 1679\n1759 1000 1803\n1786 975 1906\n1843 948 2060\n1907 920 2208\n1933 884 2364\n1974 844 2494\n2041 808 2651\n2089 764 2811\n2140 722 2938\n2199 656 3071\n2258 595 3211\n2329 541 3357\n2396 473 3496\n2480 400 3633\n2560 345 3786\n2648 278 3948\n1485 1119 497\n1490 1119 504\n1502 1102 539\n1519 1125 597\n1503 1113 636\n1533 1118 691\n1554 1118 784\n1569 1121 835\n1624 1119 945\n1603 1102 1015\n1574 1136 1118\n1621 1115 1237\n1651 1166 1363\n1676 1170 1468\n1713 1168 1608\n1735 1147 1721\n1784 1124 1838\n1815 1109 1973\n1845 1077 2089\n1888 1052 2256\n1955 1013 2400\n1979 970 2544\n2022 958 2686\n2067 916 2808\n2141 859 2951\n2170 826 3075\n2243 770 3222\n2302 732 3357\n2387 684 3511\n2444 643 3663\n2543 608 3798\n2620 582 3915\n1474 1243 496\n1488 1256 526\n1481 1249 543\n1500 1261 609\n1503 1244 639\n1526 1234 704\n1557 1261 762\n1582 1258 853\n1608 1261 954\n1600 1274 1041\n1613 1285 1158\n1608 1275 1278\n1642 1292 1393\n1692 1314 1535\n1706 1297 1639\n1754 1281 1771\n1778 1261 1875\n1807 1247 2006\n1848 1211 2158\n1892 1182 2304\n1922 1171 2437\n1992 1107 2558\n2031 1090 2713\n2050 1050 2849\n2122 1009 2967\n2165 986 3117\n2213 929 3232\n2280 903 3398\n2345 867 3520\n2421 836 3656\n2509 813 3803\n2607 799 3926\n1406 1354 521\n1435 1359 567\n1428 1360 588\n1468 1370 639\n1474 1388 696\n1517 1396 770\n1533 1402 806\n1559 1415 870\n1579 1418 970\n1611 1422 1077\n1635 1422 1175\n1672 1431 1305\n1681 1440 1446\n1706 1461 1575\n1747 1468 1689\n1773 1435 1804\n1798 1415 1937\n1836 1393 2064\n1855 1364 2212\n1892 1338 2341\n1922 1306 2472\n1946 1280 2592\n1981 1255 2719\n2046 1207 2857\n2071 1174 2980\n2134 1126 3109\n2185 1107 3258\n2258 1083 3391\n2302 1044 3527\n2397 1017 3651\n2472 1001 3798\n2554 995 3937\n1398 1479 579\n1413 1494 602\n1409 1488 614\n1420 1511 663\n1446 1515 740\n1463 1496 755\n1496 1517 844\n1501 1512 916\n1536 1544 990\n1562 1560 1076\n1635 1583 1191\n1659 1620 1354\n1705 1592 1461\n1729 1616 1616\n1765 1623 1746\n1786 1590 1859\n1802 1577 1999\n1826 1538 2115\n1842 1530 2244\n1860 1496 2368\n1906 1462 2502\n1933 1444 2640\n1965 1410 2770\n2010 1366 2885\n2044 1350 3006\n2091 1299 3135\n2139 1271 3277\n2218 1237 3408\n2259 1208 3531\n2319 1191 3664\n2423 1175 3819\n2511 1180 3928\n1385 1617 626\n1372 1619 643\n1403 1631 689\n1400 1616 712\n1418 1615 725\n1416 1636 805\n1469 1645 853\n1439 1674 926\n1474 1674 985\n1529 1713 1142\n1568 1707 1236\n1584 1743 1344\n1653 1747 1494\n1694 1762 1633\n1749 1795 1794\n1771 1770 1901\n1786 1752 2055\n1803 1737 2164\n1809 1688 2288\n1829 1658 2427\n1847 1632 2515\n1865 1598 2627\n1924 1552 2771\n1939 1526 2869\n2004 1485 3026\n2055 1467 3157\n2115 1432 3295\n2162 1411 3407\n2204 1355 3528\n2293 1354 3683\n2367 1360 3819\n2455 1344 3942\n1329 1741 628\n1348 1742 660\n1320 1762 668\n1370 1756 746\n1361 1795 784\n1386 1783 823\n1413 1792 906\n1413 1798 971\n1430 1825 1048\n1484 1839 1152\n1502 1848 1257\n1553 1865 1384\n1600 1894 1517\n1648 1923 1663\n1715 1942 1827\n1745 1940 1940\n1715 1923 2075\n1757 1885 2216\n1762 1847 2332\n1779 1825 2449\n1803 1795 2597\n1832 1766 2681\n1853 1733 2787\n1886 1705 2898\n1930 1672 3033\n2009 1627 3174\n2037 1605 3317\n2098 1566 3414\n2148 1541 3528\n2213 1517 3667\n2309 1517 3829\n2406 1516 3960\n1288 1889 691\n1322 1896 692\n1300 1890 715\n1307 1897 758\n1299 1919 786\n1330 1931 852\n1341 1927 928\n1367 1943 989\n1377 1971 1080\n1397 1972 1168\n1461 1977 1294\n1483 2008 1407\n1535 2024 1527\n1598 2068 1686\n1664 2080 1811\n1665 2103 1973\n1696 2102 2111\n1680 2040 2250\n1655 2009 2364\n1669 1985 2496\n1722 1937 2613\n1779 1935 2722\n1825 1886 2826\n1819 1872 2942\n1868 1831 3051\n1924 1794 3194\n1953 1755 3301\n2010 1730 3424\n2081 1696 3559\n2160 1688 3691\n2243 1674 3819\n2340 1696 3968\n1189 2066 691\n1185 2051 724\n1212 2055 769\n1239 2045 783\n1231 2062 831\n1264 2042 874\n1269 2083 951\n1301 2098 1010\n1326 2096 1108\n1372 2112 1236\n1392 2123 1326\n1424 2148 1427\n1479 2163 1555\n1506 2217 1680\n1580 2237 1851\n1632 2236 1998\n1645 2236 2130\n1664 2228 2260\n1619 2193 2376\n1635 2158 2515\n1597 2124 2611\n1642 2053 2742\n1663 2034 2848\n1773 2041 2979\n1792 2002 3087\n1835 1960 3191\n1875 1915 3301\n1923 1893 3435\n1991 1873 3563\n2077 1854 3691\n2177 1852 3829\n2274 1868 3971\n1135 2180 707\n1149 2196 750\n1135 2191 773\n1157 2204 798\n1181 2205 885\n1188 2213 916\n1222 2212 997\n1245 2232 1084\n1269 2235 1151\n1291 2257 1237\n1318 2275 1349\n1355 2299 1467\n1405 2319 1581\n1435 2342 1690\n1535 2380 1878\n1560 2382 2025\n1571 2382 2146\n1570 2399 2285\n1640 2355 2405\n1607 2327 2506\n1618 2262 2647\n1587 2234 2740\n1583 2199 2884\n1610 2166 3008\n1634 2133 3069\n1736 2124 3204\n1812 2089 3340\n1855 2065 3456\n1900 2037 3559\n1975 2020 3704\n2093 2020 3826\n2188 2031 3978\n1081 2336 787\n1089 2336 787\n1084 2316 812\n1097 2349 852\n1115 2325 891\n1126 2341 944\n1142 2349 1011\n1164 2378 1103\n1199 2391 1191\n1204 2403 1276\n1253 2407 1378\n1288 2442 1496\n1328 2445 1608\n1370 2477 1729\n1459 2497 1898\n1520 2510 2046\n1506 2511 2187\n1515 2511 2308\n1531 2538 2418\n1619 2472 2535\n1571 2450 2650\n1569 2401 2752\n1562 2375 2895\n1556 2320 3003\n1543 2287 3116\n1594 2253 3211\n1616 2225 3309\n1741 2223 3467\n1865 2238 3604\n1960 2201 3715\n2008 2192 3844\n2133 2195 3970\n990 2468 816\n1001 2477 851\n1038 2477 888\n1034 2482 901\n1057 2486 947\n1065 2496 1023\n1082 2495 1041\n1088 2520 1126\n1097 2532 1209\n1140 2542 1301\n1177 2552 1423\n1185 2559 1514\n1262 2584 1644\n1284 2608 1778\n1401 2618 1933\n1477 2624 2072\n1458 2626 2178\n1463 2628 2316\n1499 2638 2453\n1556 2654 2572\n1567 2609 2662\n1558 2545 2789\n1528 2537 2878\n1514 2510 2997\n1513 2448 3108\n1502 2419 3230\n1556 2383 3340\n1605 2347 3457\n1685 2336 3584\n1821 2347 3704\n2002 2399 3869\n2146 2410 3977\n871 2618 853\n901 2622 888\n899 2640 923\n910 2641 940\n922 2640 999\n969 2647 1045\n968 2636 1098\n1005 2644 1202\n1014 2653 1256\n1053 2663 1357\n1079 2684 1469\n1100 2697 1544\n1168 2704 1669\n1195 2719 1791\n1363 2736 1961\n1451 2741 2105\n1411 2749 2207\n1408 2752 2317\n1432 2757 2440\n1455 2765 2563\n1572 2747 2705\n1556 2718 2800\n1548 2677 2897\n1523 2648 3024\n1525 2609 3126\n1483 2596 3245\n1505 2557 3352\n1524 2514 3459\n1591 2492 3589\n1674 2490 3711\n1824 2496 3841\n2034 2550 3981\n807 2741 926\n831 2760 957\n825 2764 980\n823 2757 1010\n820 2759 1041\n854 2776 1105\n870 2788 1166\n873 2786 1216\n896 2789 1303\n951 2805 1422\n993 2815 1501\n1023 2824 1603\n1083 2836 1731\n1126 2847 1826\n1313 2859 1988\n1409 2867 2158\n1355 2868 2230\n1345 2862 2352\n1366 2867 2457\n1348 2862 2574\n1420 2877 2695\n1545 2862 2806\n1544 2824 2903\n1526 2803 3027\n1514 2759 3142\n1503 2736 3239\n1489 2720 3366\n1500 2681 3471\n1541 2644 3608\n1600 2642 3707\n1757 2642 3849\n1936 2679 4003\n667 2895 1001\n685 2901 1027\n707 2899 1046\n720 2905 1088\n734 2900 1101\n735 2924 1166\n782 2904 1232\n811 2915 1305\n831 2924 1371\n881 2929 1476\n925 2925 1562\n948 2943 1646\n985 2965 1774\n1048 2975 1883\n1271 2970 2037\n1383 2990 2194\n1345 2991 2250\n1271 2996 2348\n1305 2981 2492\n1284 2964 2604\n1298 2986 2718\n1401 2993 2845\n1541 2963 2945\n1540 2922 3047\n1500 2918 3147\n1513 2884 3270\n1488 2877 3387\n1486 2830 3486\n1536 2815 3596\n1580 2810 3715\n1674 2798 3869\n1871 2831 4002\n559 3032 1124\n551 3037 1119\n571 3028 1156\n585 3025 1175\n614 3039 1209\n655 3049 1273\n665 3042 1349\n703 3049 1390\n734 3058 1470\n803 3048 1544\n854 3062 1624\n915 3071 1713\n949 3072 1829\n1017 3101 1947\n1256 3092 2097\n1395 3100 2244\n1311 3112 2314\n1258 3102 2410\n1203 3091 2506\n1226 3090 2603\n1231 3088 2718\n1274 3112 2861\n1371 3108 2985\n1545 3063 3069\n1528 3053 3160\n1516 3022 3271\n1501 2992 3382\n1499 2980 3502\n1523 2956 3624\n1583 2965 3739\n1701 2956 3881\n1844 2985 4011\n478 3161 1242\n491 3152 1253\n502 3155 1253\n499 3161 1303\n532 3156 1320\n563 3172 1390\n605 3164 1446\n631 3173 1486\n677 3182 1555\n745 3186 1619\n806 3189 1703\n872 3191 1806\n896 3209 1901\n1019 3216 2005\n1235 3212 2150\n1398 3213 2278\n1275 3211 2351\n1237 3215 2442\n1155 3212 2527\n1129 3200 2640\n1172 3214 2730\n1186 3220 2831\n1229 3217 2976\n1374 3233 3112\n1552 3176 3187\n1523 3154 3290\n1534 3122 3396\n1513 3126 3504\n1530 3112 3632\n1592 3107 3746\n1696 3102 3874\n1886 3144 4054\n414 3299 1331\n457 3291 1360\n467 3289 1367\n485 3298 1400\n505 3298 1445\n569 3303 1509\n578 3289 1540\n645 3303 1615\n683 3300 1656\n759 3300 1733\n799 3318 1782\n888 3301 1878\n903 3324 1969\n1014 3343 2066\n1257 3330 2214\n1390 3330 2352\n1303 3336 2427\n1228 3328 2486\n1075 3333 2560\n1006 3329 2655\n1033 3340 2777\n1046 3346 2852\n1081 3333 2987\n1206 3320 3097\n1368 3335 3250\n1543 3289 3322\n1500 3275 3394\n1516 3258 3524\n1571 3245 3659\n1619 3249 3783\n1730 3267 3914\n1903 3282 4028\n515 3437 1487\n524 3428 1502\n555 3425 1518\n562 3428 1548\n613 3430 1568\n644 3427 1614\n685 3440 1648\n733 3426 1708\n776 3437 1778\n838 3436 1855\n881 3441 1901\n938 3448 1972\n984 3439 2069\n1080 3440 2158\n1299 3453 2277\n1428 3458 2416\n1358 3451 2477\n1235 3448 2515\n1088 3458 2602\n927 3458 2669\n907 3469 2784\n935 3460 2908\n969 3439 3000\n990 3460 3110\n1177 3467 3267\n1370 3470 3362\n1537 3407 3427\n1539 3389 3525\n1569 3396 3634\n1643 3388 3780\n1765 3396 3930\n1968 3435 4058\n776 3560 1664\n789 3552 1648\n795 3563 1681\n797 3588 1673\n831 3568 1720\n853 3571 1764\n912 3558 1805\n918 3559 1867\n976 3565 1917\n1014 3567 1976\n1043 3584 2050\n1079 3566 2102\n1100 3598 2174\n1190 3584 2271\n1379 3597 2378\n1515 3575 2501\n1429 3576 2534\n1312 3582 2610\n1146 3583 2676\n911 3603 2731\n771 3575 2853\n801 3582 2938\n840 3580 3047\n869 3561 3142\n949 3582 3269\n1155 3577 3385\n1377 3585 3490\n1571 3529 3559\n1589 3520 3664\n1670 3528 3817\n1807 3543 3923\n2016 3577 4085\n1074 3704 1872\n1082 3697 1873\n1100 3712 1888\n1099 3705 1912\n1128 3706 1926\n1126 3716 1956\n1163 3709 1976\n1189 3697 2044\n1206 3704 2077\n1227 3701 2133\n1257 3702 2182\n1267 3704 2233\n1303 3714 2302\n1359 3713 2378\n1531 3719 2492\n1629 3698 2604\n1546 3705 2654\n1405 3720 2694\n1247 3719 2736\n1006 3724 2788\n643 3730 2897\n636 3734 3004\n688 3732 3109\n735 3711 3186\n776 3719 3282\n914 3716 3400\n1157 3727 3516\n1447 3715 3621\n1622 3665 3680\n1711 3673 3827\n1841 3688 3970\n2059 3712 4077\n1441 3821 2115\n1402 3844 2131\n1411 3850 2138\n1428 3830 2133\n1438 3838 2143\n1439 3849 2189\n1447 3847 2198\n1474 3826 2229\n1503 3833 2268\n1505 3842 2330\n1528 3837 2354\n1520 3852 2423\n1540 3843 2463\n1587 3860 2534\n1713 3852 2622\n1830 3836 2726\n1735 3836 2758\n1593 3863 2778\n1443 3846 2828\n1192 3875 2890\n850 3870 2963\n577 3872 3045\n636 3873 3160\n681 3863 3254\n742 3874 3341\n790 3870 3451\n1003 3876 3564\n1242 3877 3676\n1545 3861 3771\n1735 3811 3835\n1919 3827 3972\n2163 3860 4086\n1772 3974 2345\n1796 3967 2367\n1792 3983 2397\n1823 3984 2405\n1804 3965 2425\n1819 3975 2434\n1807 3989 2463\n1819 3983 2468\n1812 3991 2492\n1817 3991 2544\n1841 3991 2571\n1838 3988 2602\n1844 3984 2647\n1904 3998 2710\n1997 3999 2818\n2075 3976 2882\n1995 3982 2930\n1877 4006 2930\n1716 4017 2974\n1484 4018 3015\n1202 4015 3031\n738 4045 3087\n730 4043 3210\n823 4030 3309\n875 4029 3413\n910 4040 3512\n1015 4025 3636\n1218 4033 3733\n1443 4045 3854\n1751 3986 3925\n1977 3958 3982\n2247 3983 4088\n1413 369 409\n1397 385 384\n1420 409 405\n1425 427 457\n1440 436 510\n1431 453 572\n1433 474 625\n1460 410 662\n1494 385 748\n1514 390 834\n1525 428 928\n1582 426 1054\n1621 411 1160\n1629 403 1247\n1637 408 1346\n1652 378 1476\n1742 329 1614\n1804 289 1754\n1821 247 1858\n1878 189 1997\n1960 79 2185\n2042 3 2351\n2126 4 2515\n2195 8 2669\n2280 0 2843\n2330 11 2985\n2435 10 3147\n2510 14 3294\n2590 0 3450\n2679 0 3600\n2752 15 3747\n2858 0 3903\n1404 408 401\n1431 410 386\n1431 450 418\n1438 442 458\n1430 455 517\n1442 487 575\n1458 490 640\n1471 430 681\n1518 410 739\n1549 416 833\n1573 448 963\n1599 467 1074\n1628 450 1151\n1660 443 1249\n1652 441 1347\n1685 418 1469\n1742 369 1607\n1797 322 1738\n1835 294 1862\n1918 236 2015\n1964 136 2184\n2050 15 2359\n2130 4 2531\n2213 4 2685\n2261 4 2843\n2356 0 2993\n2425 15 3140\n2502 10 3300\n2590 0 3422\n2668 7 3598\n2752 8 3740\n2866 8 3925\n1421 433 386\n1429 450 380\n1453 453 411\n1436 462 460\n1454 485 524\n1445 506 586\n1453 523 630\n1468 482 678\n1506 455 741\n1518 469 849\n1565 478 949\n1604 493 1069\n1625 495 1181\n1627 475 1259\n1669 462 1365\n1721 435 1476\n1743 425 1638\n1785 378 1754\n1848 337 1885\n1898 282 2027\n1971 192 2188\n2058 42 2366\n2133 1 2534\n2203 11 2676\n2271 15 2847\n2340 11 2998\n2419 11 3144\n2505 7 3303\n2581 3 3451\n2678 1 3614\n2758 8 3762\n2841 0 3908\n1441 471 360\n1442 484 369\n1437 507 429\n1439 509 454\n1440 525 526\n1468 526 585\n1479 542 644\n1472 547 703\n1504 477 747\n1537 496 849\n1562 514 961\n1616 539 1103\n1651 525 1183\n1653 523 1273\n1662 503 1388\n1714 485 1511\n1743 474 1628\n1808 434 1768\n1852 381 1897\n1916 355 2059\n1982 270 2187\n2059 143 2367\n2145 21 2546\n2202 1 2714\n2279 8 2847\n2347 0 3012\n2430 0 3169\n2494 10 3304\n2591 1 3455\n2668 9 3598\n2750 1 3755\n2847 8 3906\n1443 540 343\n1475 527 378\n1478 547 440\n1490 555 483\n1456 566 525\n1471 590 602\n1477 606 670\n1498 595 717\n1506 554 780\n1564 563 861\n1611 567 968\n1646 574 1091\n1656 588 1189\n1681 581 1299\n1696 561 1408\n1747 526 1518\n1783 524 1661\n1813 501 1778\n1869 462 1921\n1932 424 2078\n1993 369 2229\n2061 251 2394\n2141 114 2539\n2216 4 2706\n2287 0 2858\n2366 0 3012\n2421 6 3170\n2489 14 3332\n2577 11 3463\n2660 1 3609\n2748 0 3754\n2855 14 3941\n1499 589 373\n1513 586 395\n1494 611 447\n1506 624 514\n1499 617 523\n1479 634 610\n1520 641 676\n1504 652 740\n1529 637 817\n1570 604 883\n1596 629 1020\n1642 644 1098\n1664 667 1206\n1689 656 1310\n1715 629 1418\n1757 610 1557\n1788 588 1678\n1831 553 1813\n1889 540 1940\n1949 500 2079\n2016 448 2238\n2088 366 2388\n2135 278 2567\n2230 141 2709\n2278 14 2856\n2350 6 3015\n2408 8 3167\n2488 0 3318\n2586 5 3477\n2656 8 3613\n2746 0 3774\n2832 8 3916\n1544 643 404\n1529 653 432\n1545 660 478\n1537 679 499\n1531 693 581\n1545 703 621\n1542 700 701\n1535 716 772\n1540 726 827\n1561 679 883\n1631 693 980\n1653 715 1118\n1681 732 1254\n1688 741 1333\n1729 719 1438\n1752 697 1571\n1795 678 1690\n1830 671 1803\n1908 628 1962\n1950 603 2106\n2014 560 2273\n2073 500 2419\n2165 410 2570\n2218 330 2721\n2289 212 2878\n2354 43 3020\n2410 3 3164\n2472 10 3329\n2560 0 3482\n2638 12 3628\n2747 0 3791\n2835 0 3936\n1568 729 393\n1573 745 461\n1583 747 498\n1561 757 529\n1571 756 567\n1571 783 644\n1549 799 692\n1557 786 753\n1575 789 847\n1576 791 941\n1655 775 1036\n1677 806 1139\n1709 830 1278\n1733 823 1367\n1748 811 1458\n1809 778 1600\n1833 774 1734\n1867 765 1862\n1917 730 1963\n1974 701 2138\n2029 661 2289\n2084 607 2460\n2154 545 2594\n2239 488 2736\n2271 411 2908\n2348 316 3034\n2409 178 3171\n2470 39 3331\n2545 4 3481\n2632 0 3632\n2728 0 3772\n2822 4 3927\n1601 852 449\n1589 844 475\n1593 847 486\n1601 865 536\n1615 861 588\n1625 869 633\n1610 872 729\n1637 860 785\n1634 880 875\n1634 884 968\n1651 873 1029\n1676 894 1138\n1715 920 1271\n1757 928 1416\n1778 909 1535\n1801 903 1633\n1862 883 1759\n1872 868 1873\n1964 836 2018\n1978 810 2161\n2052 769 2308\n2122 726 2487\n2175 675 2628\n2219 635 2774\n2256 570 2915\n2338 501 3042\n2407 422 3206\n2471 318 3336\n2541 190 3502\n2622 54 3659\n2712 12 3800\n2777 8 3921\n1607 962 453\n1597 970 494\n1621 963 530\n1630 966 566\n1643 964 635\n1642 968 675\n1648 987 751\n1679 974 818\n1665 981 891\n1652 1002 1001\n1639 1018 1042\n1690 993 1160\n1740 1024 1328\n1768 1047 1456\n1784 1055 1560\n1832 1020 1677\n1872 1012 1781\n1919 978 1917\n1953 979 2044\n1983 944 2197\n2055 900 2347\n2109 856 2484\n2174 815 2646\n2203 782 2790\n2272 721 2921\n2324 672 3063\n2395 607 3198\n2443 546 3356\n2509 466 3492\n2598 394 3637\n2699 309 3794\n2766 236 3950\n1600 1102 468\n1619 1091 509\n1632 1105 544\n1627 1097 555\n1644 1099 625\n1656 1099 685\n1679 1106 761\n1698 1098 805\n1715 1115 912\n1724 1113 1007\n1717 1118 1113\n1685 1136 1203\n1739 1150 1333\n1819 1168 1469\n1784 1177 1582\n1845 1158 1703\n1886 1142 1844\n1939 1115 1964\n1955 1101 2085\n2023 1067 2225\n2078 1025 2394\n2113 995 2540\n2164 958 2673\n2198 922 2823\n2255 880 2943\n2332 830 3084\n2360 772 3228\n2436 733 3353\n2494 660 3494\n2569 627 3639\n2666 577 3785\n2740 574 3926\n1605 1227 484\n1612 1243 506\n1603 1235 545\n1623 1243 575\n1642 1237 643\n1655 1233 705\n1675 1258 769\n1706 1243 838\n1738 1245 913\n1750 1273 1036\n1754 1264 1132\n1763 1282 1241\n1766 1271 1357\n1795 1322 1518\n1844 1322 1624\n1870 1302 1745\n1890 1289 1877\n1917 1271 2008\n1970 1239 2143\n2028 1219 2272\n2086 1163 2388\n2112 1131 2550\n2159 1105 2707\n2189 1075 2842\n2231 1041 2971\n2295 990 3105\n2349 936 3239\n2382 898 3382\n2472 853 3517\n2534 824 3648\n2627 798 3798\n2718 783 3948\n1585 1370 476\n1616 1375 503\n1609 1385 548\n1631 1370 589\n1629 1388 643\n1642 1404 714\n1654 1414 764\n1702 1414 872\n1711 1407 957\n1735 1414 1053\n1773 1410 1164\n1814 1408 1270\n1786 1441 1408\n1810 1450 1535\n1843 1470 1689\n1870 1460 1790\n1910 1430 1907\n1939 1412 2018\n1993 1368 2171\n2018 1360 2318\n2068 1332 2458\n2113 1303 2587\n2127 1250 2713\n2180 1225 2866\n2221 1181 2970\n2265 1150 3109\n2293 1114 3245\n2365 1077 3380\n2418 1034 3493\n2520 1018 3633\n2584 987 3781\n2668 989 3962\n1541 1504 533\n1558 1476 540\n1550 1501 578\n1550 1509 606\n1573 1519 666\n1610 1536 743\n1646 1558 802\n1680 1551 883\n1711 1556 973\n1760 1562 1068\n1772 1580 1187\n1793 1583 1307\n1846 1591 1453\n1846 1598 1590\n1886 1625 1716\n1902 1623 1842\n1928 1614 1960\n1945 1574 2089\n2002 1555 2224\n2026 1499 2371\n2055 1470 2496\n2106 1448 2625\n2105 1427 2725\n2138 1372 2885\n2194 1332 3002\n2230 1305 3119\n2274 1289 3264\n2328 1241 3392\n2390 1216 3534\n2450 1189 3673\n2544 1159 3800\n2634 1175 3953\n1511 1634 561\n1533 1633 601\n1534 1628 635\n1537 1640 671\n1553 1639 700\n1586 1658 757\n1568 1678 817\n1630 1662 920\n1646 1691 1025\n1692 1696 1110\n1714 1726 1217\n1767 1725 1322\n1805 1767 1468\n1875 1785 1647\n1878 1788 1762\n1909 1794 1908\n1958 1763 2031\n1966 1745 2181\n1988 1726 2292\n2017 1657 2405\n2019 1654 2514\n2045 1619 2646\n2092 1579 2768\n2129 1543 2878\n2131 1511 3009\n2171 1471 3143\n2234 1444 3279\n2287 1410 3402\n2350 1371 3526\n2415 1368 3665\n2489 1345 3804\n2585 1346 3951\n1453 1781 595\n1463 1780 613\n1484 1782 653\n1508 1767 672\n1520 1778 726\n1530 1800 792\n1538 1808 857\n1570 1809 930\n1602 1829 1040\n1626 1841 1137\n1672 1845 1268\n1709 1867 1369\n1746 1890 1492\n1797 1940 1663\n1877 1943 1827\n1918 1966 1950\n1927 1942 2065\n1941 1909 2181\n1973 1890 2340\n1950 1853 2424\n1993 1818 2573\n2019 1791 2688\n2021 1755 2777\n2075 1713 2903\n2070 1664 3016\n2137 1645 3148\n2186 1612 3294\n2227 1574 3387\n2307 1558 3548\n2357 1532 3682\n2448 1517 3804\n2529 1532 3959\n1444 1904 651\n1437 1913 675\n1459 1911 682\n1447 1912 702\n1476 1915 767\n1489 1926 807\n1496 1940 904\n1528 1957 987\n1571 1973 1064\n1577 1986 1160\n1622 1974 1258\n1664 2009 1400\n1712 2039 1538\n1749 2055 1642\n1833 2066 1788\n1884 2120 1967\n1893 2121 2113\n1878 2072 2266\n1878 2032 2360\n1925 2009 2495\n1940 1988 2601\n1965 1965 2704\n1993 1912 2824\n1993 1885 2935\n2062 1843 3052\n2064 1806 3174\n2134 1753 3281\n2172 1730 3413\n2237 1697 3543\n2317 1688 3695\n2389 1680 3813\n2471 1688 3943\n1381 2043 659\n1410 2051 708\n1421 2059 737\n1427 2053 746\n1439 2064 806\n1456 2084 861\n1475 2076 926\n1459 2091 993\n1498 2102 1102\n1511 2128 1196\n1544 2132 1314\n1611 2151 1435\n1660 2170 1571\n1705 2209 1672\n1762 2211 1835\n1811 2259 2012\n1829 2252 2146\n1854 2258 2284\n1843 2203 2399\n1830 2176 2533\n1837 2129 2619\n1869 2103 2736\n1934 2079 2859\n1945 2035 2937\n1975 2007 3077\n2016 1978 3179\n2069 1934 3300\n2114 1897 3438\n2167 1878 3552\n2241 1851 3696\n2324 1852 3837\n2406 1844 3965\n1326 2183 702\n1323 2199 727\n1355 2212 749\n1342 2209 795\n1355 2226 853\n1370 2217 905\n1393 2218 986\n1423 2230 1047\n1445 2241 1103\n1482 2255 1202\n1503 2283 1343\n1547 2300 1461\n1575 2323 1575\n1618 2346 1697\n1703 2357 1828\n1778 2397 2025\n1802 2376 2147\n1805 2405 2300\n1834 2367 2400\n1814 2357 2509\n1789 2304 2636\n1767 2257 2741\n1799 2207 2871\n1831 2188 2985\n1900 2179 3088\n1959 2162 3219\n1973 2099 3299\n2035 2073 3445\n2093 2034 3561\n2141 2023 3694\n2244 2028 3832\n2333 2022 3959\n1283 2330 776\n1284 2346 789\n1305 2334 802\n1297 2353 844\n1306 2363 901\n1329 2365 941\n1349 2374 1000\n1363 2378 1070\n1378 2391 1171\n1418 2407 1269\n1455 2414 1379\n1488 2436 1490\n1525 2462 1589\n1598 2465 1711\n1605 2505 1870\n1736 2515 2038\n1754 2514 2173\n1778 2526 2292\n1758 2519 2430\n1794 2515 2545\n1808 2456 2645\n1771 2430 2758\n1768 2378 2903\n1727 2325 3002\n1777 2295 3128\n1814 2276 3204\n1893 2271 3327\n1982 2256 3464\n2035 2213 3586\n2083 2188 3683\n2177 2187 3834\n2270 2185 3972\n1202 2485 797\n1213 2479 796\n1237 2501 843\n1230 2503 883\n1249 2501 920\n1257 2501 984\n1292 2504 1033\n1322 2510 1128\n1335 2537 1201\n1366 2541 1303\n1399 2568 1419\n1431 2555 1540\n1458 2589 1621\n1505 2588 1749\n1549 2614 1892\n1684 2640 2080\n1717 2646 2189\n1722 2651 2303\n1737 2658 2431\n1785 2649 2569\n1795 2614 2667\n1776 2573 2799\n1742 2552 2899\n1757 2510 3013\n1737 2448 3129\n1735 2431 3242\n1792 2402 3361\n1844 2361 3478\n1908 2350 3587\n2048 2378 3706\n2152 2372 3828\n2220 2361 3992\n1189 2615 892\n1157 2603 883\n1182 2608 926\n1178 2624 956\n1160 2624 1012\n1209 2621 1044\n1204 2658 1117\n1253 2645 1198\n1290 2654 1283\n1297 2674 1350\n1342 2682 1443\n1372 2695 1537\n1385 2709 1660\n1471 2720 1809\n1490 2741 1932\n1630 2750 2078\n1686 2763 2205\n1644 2772 2308\n1686 2770 2453\n1667 2773 2562\n1763 2758 2707\n1762 2723 2790\n1746 2690 2875\n1723 2675 3028\n1725 2626 3127\n1723 2584 3251\n1710 2567 3369\n1731 2528 3468\n1804 2496 3602\n1885 2500 3719\n2018 2497 3844\n2233 2572 3988\n1096 2768 944\n1082 2767 959\n1109 2761 1002\n1119 2756 1003\n1121 2766 1040\n1146 2768 1093\n1144 2777 1154\n1190 2795 1246\n1211 2790 1332\n1234 2806 1413\n1283 2814 1493\n1305 2822 1603\n1347 2819 1700\n1382 2837 1825\n1433 2868 1968\n1589 2867 2113\n1648 2889 2252\n1638 2883 2367\n1631 2888 2469\n1637 2876 2586\n1667 2873 2706\n1808 2877 2847\n1776 2841 2944\n1752 2811 3041\n1728 2773 3142\n1702 2750 3220\n1719 2715 3367\n1697 2677 3468\n1741 2639 3604\n1808 2643 3710\n1930 2646 3844\n2095 2668 3983\n1006 2918 1007\n1006 2902 1027\n1021 2918 1043\n1054 2894 1077\n1041 2898 1111\n1085 2893 1167\n1079 2911 1234\n1114 2911 1307\n1151 2926 1369\n1170 2926 1456\n1199 2960 1546\n1254 2946 1637\n1288 2954 1759\n1349 2954 1879\n1385 2982 1993\n1548 2986 2139\n1603 2986 2280\n1585 2999 2389\n1564 3005 2490\n1570 2981 2603\n1592 2972 2710\n1638 3007 2849\n1769 2972 2957\n1765 2954 3071\n1721 2926 3145\n1715 2890 3279\n1710 2863 3362\n1695 2830 3473\n1723 2814 3612\n1748 2806 3727\n1861 2802 3860\n2019 2822 4015\n973 3029 1085\n976 3038 1137\n983 3035 1139\n1004 3028 1169\n996 3041 1205\n1009 3045 1253\n1031 3050 1316\n1072 3046 1373\n1093 3041 1474\n1131 3052 1552\n1168 3054 1635\n1197 3081 1696\n1252 3074 1799\n1278 3086 1937\n1353 3094 2054\n1503 3101 2188\n1617 3101 2322\n1566 3103 2419\n1495 3136 2515\n1503 3105 2633\n1511 3097 2747\n1528 3110 2843\n1626 3113 2977\n1756 3082 3089\n1725 3077 3178\n1729 3028 3276\n1719 3008 3386\n1715 2987 3500\n1730 2971 3631\n1772 2960 3746\n1863 2953 3884\n1995 2993 4010\n934 3159 1187\n962 3163 1228\n959 3172 1240\n950 3171 1255\n954 3186 1294\n985 3165 1337\n1013 3174 1415\n1019 3172 1461\n1059 3193 1491\n1081 3190 1602\n1132 3188 1697\n1175 3186 1796\n1223 3206 1883\n1294 3197 2007\n1313 3206 2080\n1483 3224 2222\n1618 3228 2340\n1551 3223 2446\n1481 3213 2539\n1420 3232 2646\n1459 3210 2754\n1468 3215 2876\n1491 3214 2984\n1591 3239 3092\n1731 3206 3200\n1762 3154 3307\n1716 3151 3417\n1720 3117 3520\n1730 3116 3630\n1793 3100 3755\n1852 3115 3871\n2012 3140 4026\n940 3295 1317\n935 3296 1340\n947 3289 1345\n962 3298 1385\n966 3287 1415\n966 3309 1449\n1009 3309 1490\n1026 3301 1561\n1060 3307 1647\n1093 3307 1715\n1143 3327 1787\n1196 3325 1878\n1230 3330 1986\n1269 3329 2065\n1322 3332 2169\n1497 3330 2269\n1616 3345 2405\n1524 3353 2491\n1466 3333 2570\n1370 3332 2665\n1375 3328 2790\n1382 3325 2885\n1363 3326 3017\n1472 3327 3115\n1573 3335 3231\n1745 3283 3317\n1759 3271 3408\n1709 3287 3535\n1739 3247 3651\n1802 3234 3767\n1879 3263 3905\n2031 3280 4031\n1001 3412 1493\n990 3429 1504\n1014 3421 1532\n1024 3432 1569\n1028 3424 1587\n1028 3437 1647\n1059 3445 1687\n1094 3430 1746\n1131 3419 1771\n1165 3448 1850\n1195 3442 1905\n1256 3464 1990\n1297 3443 2085\n1285 3451 2145\n1338 3458 2232\n1520 3460 2358\n1661 3446 2506\n1558 3459 2570\n1473 3465 2621\n1350 3463 2675\n1252 3456 2797\n1286 3462 2873\n1301 3452 2989\n1297 3461 3078\n1435 3446 3231\n1552 3477 3345\n1746 3421 3448\n1723 3404 3527\n1765 3396 3664\n1800 3395 3784\n1923 3396 3951\n2091 3428 4069\n1103 3557 1676\n1099 3572 1670\n1122 3556 1698\n1146 3550 1725\n1154 3566 1756\n1175 3558 1779\n1222 3577 1842\n1219 3565 1853\n1253 3568 1901\n1285 3566 1971\n1327 3563 2025\n1335 3582 2130\n1360 3568 2193\n1388 3588 2230\n1420 3590 2311\n1585 3561 2441\n1709 3585 2572\n1619 3589 2625\n1499 3575 2665\n1354 3606 2726\n1153 3597 2789\n1178 3580 2914\n1200 3595 3016\n1202 3592 3145\n1258 3589 3240\n1408 3592 3376\n1569 3586 3497\n1760 3541 3573\n1778 3518 3657\n1856 3542 3823\n1932 3551 3923\n2119 3577 4087\n1308 3697 1895\n1317 3690 1894\n1308 3704 1881\n1348 3688 1904\n1373 3688 1929\n1375 3694 1971\n1397 3709 1994\n1410 3690 2036\n1426 3701 2100\n1453 3707 2141\n1455 3701 2166\n1506 3723 2264\n1504 3707 2322\n1504 3725 2360\n1557 3706 2459\n1682 3697 2547\n1800 3706 2663\n1721 3713 2718\n1564 3728 2752\n1439 3726 2808\n1184 3733 2819\n1082 3737 2935\n1112 3734 3066\n1132 3713 3177\n1167 3719 3287\n1214 3742 3386\n1391 3729 3501\n1611 3714 3630\n1793 3657 3678\n1851 3672 3818\n1987 3689 3971\n2189 3738 4094\n1591 3843 2138\n1599 3835 2138\n1585 3835 2147\n1603 3851 2164\n1617 3836 2180\n1638 3833 2207\n1640 3848 2226\n1637 3831 2256\n1673 3824 2284\n1682 3824 2325\n1678 3833 2365\n1707 3854 2425\n1706 3829 2475\n1690 3851 2509\n1737 3852 2573\n1851 3836 2680\n1954 3845 2793\n1871 3838 2815\n1725 3840 2826\n1547 3876 2882\n1313 3868 2931\n1049 3891 2999\n1080 3879 3093\n1078 3888 3216\n1111 3884 3325\n1148 3874 3432\n1260 3866 3546\n1480 3877 3690\n1690 3846 3748\n1898 3819 3842\n2043 3827 3988\n2254 3868 4095\n1918 3991 2384\n1918 3975 2386\n1903 3983 2368\n1902 3983 2416\n1925 3993 2420\n1948 3969 2419\n1980 3970 2455\n1946 3979 2489\n1950 3986 2517\n1976 3990 2558\n1982 3967 2588\n1960 3983 2633\n1974 3983 2670\n1966 4004 2680\n2021 3984 2777\n2086 3975 2842\n2221 3977 2948\n2100 3997 2961\n1968 4001 2973\n1804 4015 3021\n1582 4018 3050\n1262 4026 3097\n1116 4028 3189\n1170 4035 3287\n1199 4052 3415\n1265 4031 3492\n1253 4044 3611\n1453 4034 3738\n1611 4032 3841\n1896 4001 3925\n2084 3959 3981\n2352 3983 4071\n1502 362 402\n1503 386 378\n1518 410 410\n1525 434 461\n1527 442 502\n1518 458 578\n1543 457 606\n1533 439 654\n1595 362 711\n1616 374 821\n1655 396 923\n1696 402 1045\n1724 415 1161\n1749 411 1258\n1768 378 1371\n1784 361 1469\n1808 345 1599\n1882 287 1722\n1951 222 1865\n2002 159 2013\n2065 41 2166\n2153 8 2335\n2229 0 2508\n2309 8 2669\n2383 8 2840\n2460 11 2995\n2536 0 3142\n2596 0 3278\n2681 6 3439\n2774 8 3584\n2866 8 3748\n2955 0 3895\n1503 394 385\n1511 411 363\n1526 450 411\n1535 458 451\n1549 473 494\n1521 490 569\n1532 472 622\n1562 467 678\n1607 394 715\n1616 403 838\n1662 424 922\n1701 421 1053\n1739 450 1163\n1752 434 1273\n1768 410 1366\n1784 409 1469\n1817 369 1584\n1883 329 1723\n1947 264 1870\n1993 211 2029\n2073 98 2177\n2143 11 2348\n2249 5 2513\n2329 4 2681\n2382 16 2833\n2457 8 2986\n2542 0 3132\n2610 0 3296\n2680 8 3439\n2759 14 3585\n2858 16 3754\n2940 15 3879\n1504 427 384\n1521 458 363\n1530 460 404\n1536 475 459\n1549 489 502\n1529 500 545\n1549 506 631\n1535 496 674\n1594 420 727\n1632 420 822\n1654 452 944\n1688 467 1070\n1755 481 1178\n1762 474 1277\n1785 452 1379\n1791 437 1491\n1840 395 1608\n1873 384 1759\n1949 337 1881\n2006 272 2039\n2085 173 2194\n2157 43 2348\n2227 18 2529\n2320 5 2673\n2382 0 2832\n2468 3 2995\n2541 0 3142\n2594 8 3298\n2684 6 3439\n2774 1 3598\n2842 14 3748\n2940 0 3902\n1530 466 355\n1545 469 364\n1553 508 419\n1549 493 476\n1544 523 508\n1551 524 569\n1569 539 655\n1567 542 693\n1601 494 747\n1658 466 831\n1676 504 964\n1696 513 1052\n1743 534 1203\n1779 519 1305\n1807 494 1402\n1797 491 1495\n1839 454 1610\n1883 412 1759\n1963 379 1915\n2018 331 2048\n2091 253 2185\n2176 142 2370\n2236 11 2529\n2315 14 2683\n2373 15 2839\n2459 0 2986\n2541 0 3142\n2610 8 3320\n2681 0 3453\n2747 22 3600\n2842 14 3741\n2932 8 3902\n1578 534 357\n1582 534 384\n1600 550 412\n1586 558 454\n1608 572 540\n1598 594 571\n1593 588 641\n1589 568 696\n1605 572 747\n1650 525 827\n1692 540 970\n1722 566 1060\n1778 576 1199\n1819 564 1319\n1819 558 1414\n1817 540 1494\n1878 522 1631\n1909 491 1765\n1992 462 1909\n2032 414 2055\n2107 347 2202\n2189 262 2380\n2254 124 2544\n2313 10 2683\n2376 8 2868\n2469 5 3022\n2523 0 3164\n2608 0 3320\n2688 0 3463\n2763 0 3614\n2829 7 3749\n2934 6 3904\n1595 592 361\n1595 585 394\n1631 594 447\n1608 599 503\n1606 609 540\n1626 629 597\n1627 639 664\n1614 645 720\n1616 658 787\n1655 588 848\n1722 612 973\n1732 613 1083\n1778 638 1235\n1829 636 1335\n1848 629 1438\n1845 610 1526\n1885 599 1636\n1931 572 1816\n2004 542 1950\n2035 497 2080\n2117 447 2234\n2174 382 2389\n2253 281 2556\n2327 138 2714\n2409 5 2875\n2468 0 3028\n2536 0 3159\n2595 8 3298\n2670 3 3455\n2759 4 3614\n2834 0 3775\n2937 3 3926\n1626 652 380\n1620 668 419\n1645 665 467\n1638 681 499\n1635 683 562\n1662 694 618\n1650 697 672\n1670 708 761\n1654 721 815\n1646 701 879\n1725 675 963\n1751 697 1091\n1790 738 1219\n1843 736 1368\n1858 722 1465\n1859 700 1583\n1924 673 1693\n1972 643 1832\n2016 634 1957\n2066 597 2103\n2133 552 2250\n2200 489 2418\n2261 420 2567\n2320 333 2733\n2398 206 2883\n2461 50 3023\n2543 13 3185\n2595 8 3332\n2674 3 3472\n2730 0 3610\n2842 0 3763\n2928 5 3923\n1654 750 393\n1664 757 429\n1675 751 462\n1672 757 499\n1669 766 571\n1676 781 609\n1683 773 696\n1679 782 745\n1687 790 827\n1661 810 895\n1749 757 998\n1788 792 1100\n1839 809 1250\n1863 817 1373\n1866 830 1476\n1880 793 1584\n1928 774 1719\n1954 754 1843\n2027 736 1984\n2073 700 2123\n2150 671 2283\n2209 613 2422\n2270 551 2600\n2337 481 2729\n2398 407 2885\n2471 304 3043\n2514 162 3178\n2588 31 3305\n2669 5 3483\n2729 0 3632\n2820 4 3781\n2928 5 3910\n1692 836 406\n1707 863 438\n1704 849 493\n1711 851 533\n1719 873 582\n1722 866 650\n1715 870 695\n1735 875 782\n1715 868 875\n1716 904 961\n1730 894 1006\n1790 863 1104\n1821 919 1263\n1866 937 1411\n1903 931 1519\n1907 920 1621\n1953 880 1735\n1986 889 1885\n2060 855 2032\n2090 819 2148\n2170 793 2318\n2215 748 2445\n2285 701 2594\n2329 631 2761\n2400 578 2913\n2458 504 3047\n2506 422 3192\n2572 328 3330\n2655 198 3463\n2723 58 3606\n2802 28 3795\n2876 0 3918\n1719 962 435\n1731 967 475\n1745 978 525\n1740 966 537\n1758 975 608\n1763 978 667\n1768 983 730\n1771 978 790\n1768 982 864\n1785 994 962\n1762 1005 1054\n1789 975 1126\n1851 1009 1252\n1882 1060 1429\n1917 1051 1560\n1917 1050 1653\n1973 1015 1774\n2014 1005 1915\n2064 984 2048\n2112 942 2185\n2181 926 2335\n2228 877 2463\n2285 844 2613\n2313 790 2766\n2372 745 2925\n2439 694 3056\n2509 631 3209\n2566 551 3364\n2625 491 3492\n2714 408 3621\n2785 339 3778\n2887 271 3915\n1720 1086 461\n1732 1089 479\n1736 1096 513\n1744 1103 554\n1772 1097 615\n1773 1107 674\n1822 1102 744\n1840 1097 818\n1818 1097 904\n1833 1120 996\n1820 1111 1078\n1823 1124 1181\n1857 1129 1299\n1901 1170 1465\n1954 1192 1615\n1955 1177 1699\n1990 1150 1821\n2020 1136 1943\n2102 1110 2083\n2130 1096 2231\n2168 1054 2366\n2233 1016 2513\n2281 970 2673\n2329 928 2802\n2371 895 2950\n2445 848 3097\n2490 794 3225\n2557 743 3343\n2607 690 3488\n2669 651 3629\n2750 602 3777\n2846 553 3922\n1725 1225 482\n1749 1238 512\n1725 1238 517\n1756 1229 577\n1778 1242 650\n1781 1246 690\n1805 1246 763\n1825 1246 840\n1864 1241 921\n1880 1256 1026\n1866 1254 1126\n1859 1270 1241\n1833 1282 1338\n1906 1275 1472\n1971 1331 1643\n1978 1321 1745\n2021 1284 1864\n2065 1279 2007\n2106 1250 2131\n2139 1237 2261\n2200 1201 2389\n2237 1163 2550\n2281 1131 2695\n2318 1089 2831\n2375 1044 2966\n2431 1001 3092\n2482 959 3239\n2526 914 3383\n2600 875 3499\n2654 831 3633\n2727 802 3764\n2800 789 3917\n1743 1376 474\n1749 1388 539\n1751 1376 532\n1766 1386 578\n1777 1396 615\n1786 1402 686\n1800 1391 753\n1831 1378 836\n1870 1394 932\n1887 1396 1047\n1903 1410 1140\n1906 1406 1279\n1912 1418 1405\n1909 1420 1511\n1980 1479 1693\n1997 1491 1786\n2033 1472 1916\n2074 1442 2040\n2142 1397 2177\n2168 1376 2293\n2212 1345 2448\n2238 1310 2575\n2281 1284 2725\n2301 1242 2832\n2342 1189 2959\n2380 1167 3106\n2437 1120 3224\n2510 1083 3378\n2554 1037 3507\n2626 1004 3669\n2707 1000 3792\n2787 971 3935\n1713 1528 498\n1713 1529 499\n1724 1527 543\n1732 1543 581\n1770 1534 647\n1768 1557 694\n1788 1556 796\n1818 1546 876\n1861 1566 968\n1892 1579 1075\n1913 1575 1177\n1945 1571 1280\n1953 1591 1417\n1942 1596 1580\n1983 1615 1716\n2016 1625 1844\n2051 1622 1971\n2069 1614 2082\n2120 1566 2217\n2155 1548 2372\n2171 1520 2476\n2219 1477 2613\n2275 1429 2750\n2302 1395 2877\n2346 1359 2993\n2376 1315 3115\n2425 1274 3260\n2479 1247 3393\n2535 1210 3517\n2579 1197 3660\n2668 1158 3805\n2756 1158 3949\n1667 1660 521\n1658 1644 530\n1674 1658 570\n1684 1658 608\n1710 1665 657\n1720 1686 710\n1755 1688 790\n1778 1715 874\n1833 1711 987\n1861 1734 1080\n1882 1732 1191\n1905 1740 1318\n1983 1746 1461\n1999 1768 1620\n1998 1762 1730\n2041 1795 1877\n2080 1788 2014\n2098 1783 2130\n2137 1736 2260\n2155 1712 2415\n2201 1666 2530\n2202 1631 2644\n2226 1607 2769\n2259 1564 2890\n2296 1519 3015\n2354 1474 3150\n2385 1450 3269\n2443 1410 3407\n2490 1379 3551\n2562 1346 3667\n2619 1330 3797\n2722 1345 3965\n1632 1781 569\n1640 1782 612\n1658 1788 620\n1655 1796 654\n1660 1811 689\n1672 1813 759\n1704 1822 818\n1740 1822 898\n1760 1837 987\n1805 1846 1078\n1817 1886 1209\n1885 1887 1330\n1927 1917 1474\n1982 1935 1640\n2054 1941 1794\n2041 1958 1910\n2104 1965 2087\n2081 1949 2194\n2129 1901 2324\n2145 1883 2431\n2191 1827 2573\n2180 1806 2675\n2233 1762 2811\n2229 1733 2919\n2242 1696 3047\n2301 1663 3183\n2348 1612 3289\n2374 1578 3415\n2451 1550 3549\n2513 1532 3688\n2577 1509 3827\n2667 1516 3959\n1590 1920 603\n1591 1920 603\n1613 1914 643\n1614 1935 685\n1630 1936 742\n1626 1953 800\n1653 1950 860\n1676 1968 935\n1699 1988 1040\n1756 1985 1119\n1781 1993 1239\n1832 2035 1361\n1870 2049 1499\n1911 2065 1627\n1990 2080 1794\n2041 2113 1958\n2121 2137 2129\n2114 2113 2259\n2122 2074 2351\n2119 2038 2454\n2137 1998 2563\n2140 1958 2699\n2148 1930 2822\n2201 1889 2935\n2217 1856 3061\n2233 1803 3172\n2292 1773 3303\n2319 1746 3407\n2364 1720 3538\n2433 1703 3680\n2520 1688 3842\n2594 1688 3966\n1559 2059 642\n1559 2059 668\n1568 2066 678\n1570 2080 725\n1591 2075 777\n1607 2088 833\n1619 2087 887\n1637 2110 959\n1685 2111 1066\n1701 2130 1157\n1744 2141 1272\n1768 2161 1398\n1806 2184 1538\n1856 2194 1659\n1925 2235 1802\n1975 2252 1967\n2064 2261 2122\n2056 2268 2268\n2076 2222 2385\n2071 2202 2487\n2093 2167 2627\n2091 2153 2755\n2119 2104 2862\n2147 2060 2951\n2148 2028 3057\n2181 1983 3191\n2207 1950 3311\n2251 1917 3428\n2319 1876 3559\n2372 1861 3685\n2455 1867 3842\n2530 1859 3951\n1532 2195 681\n1542 2204 709\n1528 2207 729\n1560 2220 775\n1550 2223 815\n1559 2216 862\n1585 2231 939\n1611 2248 1025\n1613 2266 1101\n1674 2263 1212\n1698 2281 1326\n1720 2304 1433\n1756 2316 1540\n1811 2336 1699\n1891 2350 1844\n1933 2389 1999\n2020 2413 2184\n2009 2421 2300\n2042 2406 2416\n2039 2364 2513\n2007 2305 2650\n2024 2284 2750\n2053 2257 2858\n2099 2227 2975\n2121 2190 3064\n2130 2153 3192\n2153 2113 3315\n2200 2078 3425\n2277 2059 3573\n2303 2033 3688\n2391 2036 3832\n2487 2031 3970\n1469 2357 725\n1486 2345 739\n1484 2375 765\n1482 2362 777\n1518 2376 859\n1526 2370 909\n1531 2372 968\n1570 2377 1053\n1576 2386 1157\n1611 2407 1240\n1642 2417 1365\n1679 2419 1484\n1698 2451 1600\n1773 2453 1723\n1832 2474 1855\n1871 2504 2030\n1942 2534 2167\n1991 2531 2308\n1996 2530 2442\n2049 2537 2569\n1996 2486 2681\n2001 2420 2798\n1983 2392 2882\n1973 2366 2982\n2022 2340 3083\n2076 2320 3203\n2106 2283 3310\n2148 2245 3432\n2191 2229 3564\n2252 2209 3719\n2323 2203 3840\n2437 2209 3970\n1421 2493 770\n1436 2494 817\n1435 2495 834\n1431 2505 877\n1456 2501 924\n1458 2522 963\n1492 2520 1046\n1500 2515 1102\n1546 2527 1202\n1558 2539 1299\n1583 2549 1409\n1626 2571 1524\n1664 2579 1637\n1715 2580 1757\n1763 2611 1899\n1798 2642 2023\n1918 2649 2196\n1950 2663 2330\n1959 2659 2457\n1988 2675 2605\n2009 2629 2713\n1998 2599 2789\n1976 2561 2881\n1942 2515 3005\n1922 2487 3109\n1936 2440 3207\n2002 2402 3313\n2081 2410 3446\n2139 2402 3585\n2192 2372 3684\n2282 2349 3831\n2363 2354 3988\n1361 2629 841\n1371 2639 852\n1378 2639 882\n1404 2643 924\n1406 2631 970\n1428 2637 1020\n1434 2643 1102\n1447 2638 1164\n1483 2656 1255\n1510 2667 1343\n1539 2685 1456\n1584 2691 1567\n1617 2697 1695\n1674 2709 1800\n1717 2730 1918\n1754 2749 2049\n1878 2771 2215\n1914 2760 2350\n1900 2780 2466\n1905 2773 2578\n1964 2791 2719\n1998 2752 2827\n1958 2722 2932\n1949 2696 3035\n1924 2643 3121\n1902 2597 3224\n1934 2557 3354\n1964 2524 3451\n2014 2513 3569\n2131 2519 3713\n2250 2553 3830\n2362 2541 3988\n1323 2764 942\n1339 2764 954\n1336 2749 971\n1347 2773 1011\n1354 2769 1060\n1358 2778 1096\n1387 2777 1175\n1407 2779 1243\n1424 2784 1320\n1468 2799 1404\n1496 2803 1500\n1548 2813 1617\n1586 2819 1740\n1611 2843 1832\n1662 2863 1962\n1697 2869 2074\n1823 2885 2230\n1887 2898 2375\n1861 2889 2474\n1863 2893 2616\n1882 2899 2732\n1971 2888 2851\n1973 2864 2962\n1945 2821 3046\n1935 2779 3144\n1929 2742 3254\n1889 2720 3357\n1903 2690 3471\n1931 2663 3588\n2017 2640 3707\n2117 2648 3858\n2263 2681 3971\n1287 2895 1023\n1298 2894 1053\n1300 2892 1062\n1311 2894 1107\n1318 2903 1138\n1330 2912 1180\n1338 2897 1245\n1355 2901 1315\n1396 2918 1410\n1447 2914 1487\n1447 2936 1574\n1492 2950 1667\n1533 2949 1771\n1574 2954 1890\n1626 2975 2009\n1668 2978 2119\n1776 3007 2258\n1851 3002 2391\n1802 2998 2503\n1797 3023 2605\n1835 3005 2738\n1853 3006 2842\n1978 2983 2985\n1956 2947 3074\n1929 2943 3188\n1929 2898 3283\n1896 2856 3373\n1900 2840 3493\n1904 2818 3606\n1957 2803 3731\n2051 2787 3849\n2190 2830 4008\n1254 3021 1100\n1256 3029 1118\n1288 3024 1133\n1286 3028 1199\n1311 3024 1210\n1297 3031 1247\n1326 3027 1313\n1358 3037 1373\n1359 3045 1450\n1375 3045 1532\n1437 3052 1619\n1439 3066 1713\n1493 3065 1818\n1543 3081 1931\n1593 3085 2047\n1643 3100 2155\n1768 3096 2281\n1828 3116 2413\n1784 3132 2509\n1755 3115 2621\n1758 3119 2732\n1768 3109 2822\n1829 3129 2953\n1959 3090 3099\n1944 3045 3193\n1927 3035 3287\n1882 3020 3402\n1896 2985 3503\n1920 2954 3620\n1935 2952 3739\n2002 2957 3855\n2140 2969 3999\n1224 3155 1228\n1239 3165 1212\n1243 3166 1223\n1260 3164 1285\n1274 3156 1313\n1299 3167 1350\n1306 3163 1406\n1305 3173 1472\n1336 3169 1537\n1359 3187 1617\n1389 3183 1692\n1461 3193 1801\n1484 3196 1885\n1521 3198 1985\n1569 3221 2102\n1601 3215 2185\n1743 3214 2351\n1819 3228 2457\n1770 3231 2538\n1696 3227 2639\n1686 3238 2748\n1700 3232 2841\n1734 3227 2955\n1809 3239 3121\n1939 3199 3198\n1916 3180 3309\n1906 3155 3383\n1889 3129 3502\n1885 3103 3639\n1937 3106 3752\n2019 3098 3884\n2134 3135 4012\n1244 3290 1360\n1241 3293 1334\n1237 3305 1368\n1253 3297 1378\n1270 3301 1413\n1284 3293 1445\n1297 3303 1505\n1297 3307 1555\n1346 3295 1633\n1371 3314 1724\n1393 3317 1783\n1439 3314 1880\n1472 3324 1950\n1543 3321 2059\n1574 3325 2152\n1617 3340 2257\n1747 3330 2380\n1814 3349 2497\n1754 3335 2576\n1693 3341 2663\n1621 3352 2764\n1621 3343 2859\n1653 3340 2991\n1683 3350 3119\n1771 3356 3243\n1934 3310 3340\n1912 3289 3426\n1909 3281 3538\n1896 3262 3640\n1949 3244 3753\n2039 3269 3898\n2177 3295 4066\n1279 3428 1488\n1283 3419 1492\n1281 3426 1497\n1301 3426 1533\n1320 3433 1579\n1317 3417 1598\n1339 3430 1643\n1366 3426 1689\n1367 3440 1736\n1411 3444 1834\n1459 3423 1894\n1488 3440 1976\n1517 3439 2046\n1552 3445 2121\n1582 3460 2209\n1607 3465 2318\n1742 3457 2446\n1840 3451 2553\n1774 3454 2627\n1669 3459 2688\n1569 3463 2761\n1544 3474 2892\n1575 3466 3021\n1584 3467 3099\n1644 3464 3221\n1770 3463 3358\n1913 3421 3432\n1916 3393 3529\n1901 3406 3655\n1975 3391 3786\n2053 3405 3915\n2201 3434 4053\n1369 3560 1674\n1384 3567 1685\n1370 3561 1680\n1386 3566 1691\n1407 3560 1753\n1412 3571 1786\n1440 3552 1806\n1459 3566 1875\n1479 3558 1920\n1510 3565 1991\n1530 3558 2040\n1554 3571 2107\n1570 3560 2160\n1594 3567 2248\n1635 3576 2306\n1659 3599 2398\n1775 3578 2519\n1864 3575 2637\n1800 3586 2699\n1680 3588 2752\n1544 3590 2805\n1475 3591 2918\n1476 3596 3020\n1485 3590 3107\n1514 3598 3233\n1601 3591 3379\n1726 3600 3491\n1918 3551 3556\n1928 3527 3677\n1981 3530 3795\n2071 3540 3953\n2239 3583 4068\n1540 3692 1884\n1560 3700 1899\n1545 3700 1907\n1543 3704 1921\n1565 3712 1953\n1588 3709 1980\n1585 3693 2004\n1616 3705 2065\n1634 3704 2099\n1648 3695 2126\n1657 3700 2196\n1668 3706 2243\n1694 3712 2321\n1685 3707 2354\n1707 3712 2419\n1734 3714 2488\n1872 3713 2624\n1961 3714 2742\n1879 3716 2795\n1731 3730 2828\n1581 3729 2874\n1409 3712 2959\n1397 3729 3073\n1432 3740 3175\n1427 3736 3285\n1478 3720 3380\n1610 3734 3516\n1768 3734 3664\n1961 3674 3696\n1999 3672 3818\n2102 3688 3947\n2304 3728 4094\n1756 3843 2122\n1764 3851 2131\n1765 3836 2142\n1758 3844 2143\n1788 3856 2182\n1788 3843 2189\n1822 3836 2230\n1829 3832 2268\n1840 3845 2290\n1852 3843 2326\n1854 3841 2365\n1857 3838 2417\n1866 3846 2468\n1868 3845 2524\n1875 3843 2580\n1877 3852 2646\n2022 3853 2745\n2084 3850 2857\n1978 3854 2884\n1855 3857 2922\n1694 3866 2961\n1489 3852 3009\n1367 3879 3109\n1388 3884 3214\n1428 3880 3321\n1440 3878 3437\n1506 3873 3565\n1650 3882 3652\n1848 3847 3771\n2021 3804 3856\n2142 3829 3988\n2346 3861 4088\n2057 3974 2401\n2048 3990 2393\n2074 3998 2403\n2049 3983 2417\n2073 3983 2433\n2073 3983 2433\n2084 3985 2469\n2088 3982 2509\n2097 3974 2546\n2121 3983 2569\n2105 3999 2578\n2127 3980 2631\n2107 3979 2656\n2121 3990 2719\n2120 3982 2738\n2145 3998 2833\n2217 3991 2907\n2273 3991 2996\n2190 4002 3028\n2048 4002 3042\n1879 4015 3079\n1676 4023 3132\n1417 4030 3181\n1431 4040 3284\n1471 4044 3402\n1497 4039 3477\n1525 4044 3606\n1619 4053 3726\n1784 4053 3827\n2006 4001 3924\n2198 3959 3990\n2450 4006 4095\n1609 385 393\n1616 394 369\n1623 426 393\n1625 441 444\n1641 450 491\n1641 466 553\n1640 479 602\n1661 462 669\n1666 386 696\n1731 356 781\n1760 380 906\n1799 362 1015\n1861 395 1154\n1880 393 1266\n1929 377 1378\n1931 345 1478\n1916 352 1584\n1987 287 1730\n2051 222 1876\n2112 123 2009\n2181 24 2164\n2252 21 2332\n2325 5 2489\n2426 4 2670\n2501 0 2799\n2570 16 2966\n2648 0 3112\n2713 7 3266\n2802 6 3445\n2891 0 3592\n2980 7 3753\n3053 9 3877\n1626 402 377\n1641 426 361\n1640 451 380\n1632 473 428\n1643 454 488\n1641 475 540\n1666 475 611\n1653 484 675\n1682 417 711\n1710 389 773\n1766 402 908\n1801 404 1007\n1862 432 1143\n1890 421 1281\n1928 411 1386\n1932 387 1485\n1931 369 1584\n1979 328 1714\n2051 262 1869\n2118 173 2009\n2183 64 2165\n2268 11 2337\n2335 12 2488\n2420 16 2652\n2489 13 2800\n2559 0 2951\n2648 0 3131\n2742 0 3273\n2793 0 3429\n2863 1 3572\n2974 0 3717\n3053 8 3878\n1625 435 361\n1627 458 355\n1641 468 396\n1650 475 437\n1672 492 494\n1659 514 559\n1663 529 618\n1662 509 673\n1677 476 726\n1728 426 787\n1782 419 914\n1819 435 1040\n1886 451 1165\n1908 453 1281\n1924 437 1387\n1944 426 1484\n1946 411 1598\n1981 379 1731\n2059 312 1870\n2119 240 2012\n2179 139 2175\n2264 32 2337\n2345 8 2497\n2418 5 2644\n2496 7 2821\n2574 0 2989\n2647 1 3130\n2715 9 3285\n2796 0 3439\n2891 0 3592\n2964 9 3742\n3053 0 3895\n1650 469 339\n1637 492 349\n1663 500 394\n1670 515 437\n1672 517 508\n1686 531 550\n1691 556 634\n1689 542 696\n1694 534 748\n1740 463 794\n1780 480 915\n1819 481 1029\n1858 501 1161\n1919 508 1301\n1937 507 1417\n1938 472 1489\n1954 468 1606\n1996 421 1723\n2054 384 1886\n2142 299 2027\n2201 238 2194\n2259 107 2342\n2348 23 2523\n2420 7 2670\n2503 22 2822\n2571 0 2980\n2648 0 3139\n2723 11 3303\n2794 0 3439\n2882 9 3592\n2952 7 3734\n3031 0 3902\n1681 525 314\n1690 535 360\n1686 549 403\n1704 566 452\n1701 575 518\n1692 574 554\n1687 604 628\n1691 587 695\n1715 578 746\n1733 513 795\n1790 522 942\n1843 544 1049\n1892 561 1178\n1935 564 1298\n1957 530 1409\n1977 534 1516\n1979 536 1640\n2008 479 1756\n2087 453 1902\n2146 396 2036\n2214 324 2198\n2290 242 2374\n2364 112 2535\n2432 2 2676\n2514 4 2844\n2588 3 2995\n2661 13 3155\n2725 9 3303\n2807 0 3451\n2868 8 3604\n2954 7 3753\n3042 0 3914\n1703 597 340\n1712 592 384\n1709 608 414\n1714 614 479\n1711 618 512\n1731 618 576\n1719 640 632\n1722 646 702\n1727 643 775\n1743 613 827\n1809 582 922\n1842 607 1058\n1886 623 1203\n1933 641 1328\n1975 628 1426\n2003 618 1555\n1995 609 1648\n2035 574 1790\n2093 542 1919\n2158 496 2063\n2230 447 2232\n2288 376 2379\n2382 282 2555\n2450 138 2690\n2514 9 2847\n2590 4 3017\n2648 3 3142\n2720 14 3280\n2799 6 3442\n2889 4 3602\n2949 0 3765\n3029 0 3900\n1736 657 357\n1731 672 400\n1746 666 427\n1761 681 478\n1757 677 536\n1757 684 575\n1760 697 656\n1751 706 720\n1755 728 802\n1756 715 865\n1812 650 928\n1877 671 1057\n1903 694 1184\n1956 709 1329\n1984 721 1460\n2005 709 1577\n2011 707 1670\n2067 660 1818\n2118 632 1943\n2183 582 2082\n2245 550 2246\n2304 511 2407\n2388 423 2546\n2449 333 2705\n2508 209 2860\n2577 43 3001\n2658 8 3173\n2718 13 3315\n2791 0 3465\n2874 12 3613\n2955 0 3759\n3038 0 3916\n1768 744 373\n1776 754 408\n1788 752 449\n1791 762 480\n1789 764 541\n1799 773 593\n1804 781 687\n1804 771 739\n1799 800 800\n1791 787 881\n1827 759 951\n1881 756 1067\n1932 784 1215\n1979 815 1347\n2003 830 1482\n2018 811 1594\n2024 790 1700\n2084 766 1832\n2137 742 1975\n2199 710 2128\n2263 679 2277\n2319 621 2422\n2403 573 2583\n2446 501 2712\n2524 414 2873\n2575 314 3018\n2617 186 3159\n2713 44 3302\n2780 6 3461\n2851 0 3611\n2944 4 3777\n3019 0 3915\n1819 855 398\n1810 855 426\n1807 846 473\n1824 862 516\n1822 864 559\n1841 864 625\n1827 869 689\n1830 860 750\n1843 879 831\n1830 887 932\n1842 894 1012\n1888 849 1072\n1920 880 1200\n1994 924 1376\n2036 937 1529\n2051 923 1632\n2055 900 1728\n2095 880 1854\n2137 859 1995\n2205 825 2138\n2262 793 2290\n2333 762 2456\n2407 716 2592\n2452 652 2750\n2520 586 2892\n2573 512 3026\n2648 438 3190\n2704 339 3316\n2773 208 3458\n2833 73 3597\n2920 36 3767\n3002 16 3918\n1850 966 397\n1867 970 461\n1858 964 485\n1868 965 503\n1866 980 578\n1876 961 629\n1879 976 694\n1890 981 782\n1878 989 859\n1882 1001 934\n1867 1006 1036\n1909 981 1124\n1943 979 1220\n2008 1028 1392\n2059 1051 1560\n2073 1046 1663\n2099 1023 1776\n2139 996 1903\n2160 982 2029\n2236 950 2179\n2287 928 2318\n2355 896 2477\n2390 854 2602\n2445 807 2754\n2501 758 2908\n2557 704 3041\n2618 632 3193\n2688 562 3349\n2749 486 3475\n2829 424 3612\n2904 350 3762\n2981 312 3930\n1882 1091 434\n1890 1085 462\n1875 1092 486\n1892 1086 531\n1896 1089 579\n1909 1098 641\n1930 1089 712\n1927 1102 773\n1942 1100 880\n1926 1116 962\n1935 1109 1043\n1938 1121 1157\n1954 1106 1257\n2013 1135 1405\n2066 1182 1576\n2088 1177 1701\n2096 1178 1817\n2133 1152 1943\n2202 1123 2076\n2251 1092 2214\n2297 1069 2353\n2355 1044 2500\n2416 992 2650\n2457 946 2774\n2506 918 2933\n2556 856 3060\n2609 815 3198\n2684 761 3343\n2748 698 3500\n2810 662 3627\n2882 614 3765\n2964 579 3918\n1879 1217 435\n1873 1239 472\n1882 1243 500\n1898 1227 526\n1921 1241 606\n1930 1235 654\n1936 1235 726\n1957 1236 813\n1987 1252 897\n1999 1245 990\n1989 1254 1108\n1987 1252 1201\n1971 1266 1306\n2023 1258 1437\n2075 1306 1600\n2118 1330 1725\n2137 1319 1851\n2190 1294 1981\n2228 1281 2115\n2264 1248 2242\n2320 1227 2382\n2373 1188 2528\n2413 1166 2677\n2436 1099 2786\n2512 1063 2953\n2550 1024 3082\n2604 971 3217\n2654 925 3370\n2720 885 3502\n2786 853 3629\n2859 809 3772\n2932 790 3939\n1867 1370 463\n1882 1379 471\n1890 1372 519\n1901 1383 562\n1912 1387 609\n1929 1390 677\n1944 1393 756\n1971 1387 821\n2019 1394 911\n2040 1389 1013\n2027 1396 1109\n2038 1403 1249\n2049 1402 1376\n2044 1414 1492\n2094 1443 1622\n2159 1483 1796\n2153 1476 1906\n2193 1431 2017\n2227 1425 2160\n2294 1379 2293\n2341 1374 2451\n2375 1338 2565\n2411 1303 2704\n2461 1269 2837\n2491 1226 2969\n2527 1183 3100\n2581 1144 3226\n2649 1079 3361\n2697 1054 3516\n2763 1012 3657\n2829 1000 3776\n2906 987 3931\n1869 1536 464\n1868 1529 476\n1880 1536 509\n1888 1536 546\n1896 1536 606\n1914 1540 669\n1933 1546 749\n1957 1554 861\n1980 1568 938\n2019 1547 1030\n2057 1562 1160\n2101 1584 1284\n2091 1580 1405\n2081 1575 1536\n2078 1576 1654\n2168 1637 1834\n2171 1645 1949\n2207 1612 2073\n2259 1591 2203\n2313 1565 2352\n2337 1538 2461\n2365 1493 2604\n2405 1460 2723\n2445 1421 2861\n2489 1377 2992\n2515 1337 3105\n2565 1298 3243\n2619 1256 3378\n2669 1220 3506\n2725 1198 3656\n2792 1178 3782\n2869 1164 3925\n1850 1690 496\n1839 1689 498\n1861 1695 545\n1885 1683 594\n1900 1697 645\n1908 1699 697\n1919 1715 758\n1937 1721 852\n1990 1714 972\n1997 1716 1040\n2048 1735 1173\n2075 1730 1312\n2129 1739 1444\n2138 1745 1567\n2145 1760 1705\n2145 1763 1820\n2203 1811 2020\n2251 1785 2143\n2275 1756 2261\n2305 1731 2384\n2336 1689 2501\n2373 1656 2636\n2389 1623 2750\n2418 1579 2877\n2449 1538 3014\n2491 1504 3138\n2540 1455 3265\n2563 1427 3391\n2622 1387 3534\n2692 1361 3656\n2759 1346 3794\n2846 1344 3940\n1812 1782 504\n1810 1781 528\n1821 1791 557\n1822 1800 606\n1843 1803 653\n1870 1817 712\n1890 1827 788\n1911 1834 870\n1950 1866 968\n1982 1863 1087\n2006 1894 1201\n2061 1907 1317\n2097 1918 1459\n2131 1918 1614\n2172 1939 1761\n2179 1942 1892\n2229 1966 2056\n2253 1957 2187\n2291 1933 2309\n2308 1901 2424\n2324 1868 2542\n2341 1835 2653\n2365 1780 2790\n2404 1754 2906\n2426 1721 3040\n2438 1675 3164\n2487 1625 3278\n2538 1591 3414\n2593 1552 3536\n2634 1532 3667\n2709 1508 3819\n2798 1516 3958\n1747 1944 576\n1778 1929 586\n1770 1935 607\n1791 1931 644\n1803 1956 713\n1821 1940 761\n1845 1961 829\n1844 1969 899\n1880 1988 1008\n1924 2001 1109\n1968 2012 1221\n1999 2033 1342\n2057 2057 1470\n2099 2079 1625\n2178 2118 1788\n2226 2113 1950\n2219 2136 2088\n2283 2121 2250\n2276 2097 2339\n2294 2066 2461\n2308 2031 2585\n2314 2007 2697\n2335 1958 2821\n2372 1913 2927\n2393 1877 3045\n2401 1819 3167\n2447 1786 3292\n2491 1755 3405\n2526 1719 3530\n2587 1704 3680\n2660 1689 3827\n2734 1696 3975\n1738 2067 603\n1746 2076 626\n1761 2091 659\n1755 2073 678\n1764 2100 736\n1786 2084 813\n1805 2100 851\n1832 2110 948\n1854 2120 1040\n1868 2139 1131\n1905 2143 1234\n1945 2162 1385\n1987 2177 1527\n2045 2210 1648\n2096 2241 1801\n2178 2250 1950\n2227 2276 2112\n2285 2317 2301\n2292 2276 2407\n2277 2229 2506\n2296 2199 2624\n2290 2176 2727\n2313 2134 2842\n2331 2089 2964\n2344 2048 3065\n2373 2011 3198\n2387 1964 3300\n2436 1923 3437\n2488 1882 3559\n2530 1869 3692\n2611 1861 3827\n2694 1868 3975\n1729 2221 656\n1728 2206 667\n1721 2200 670\n1729 2215 718\n1736 2228 776\n1756 2240 828\n1779 2253 907\n1779 2261 980\n1817 2270 1066\n1843 2278 1185\n1871 2284 1306\n1906 2304 1417\n1935 2324 1547\n1991 2343 1689\n2054 2349 1830\n2107 2373 1989\n2154 2429 2169\n2236 2430 2293\n2260 2423 2439\n2237 2381 2536\n2243 2358 2653\n2259 2324 2765\n2296 2300 2882\n2296 2248 2984\n2320 2215 3079\n2315 2183 3181\n2342 2134 3320\n2378 2097 3426\n2436 2058 3560\n2475 2043 3693\n2549 2032 3821\n2651 2045 3969\n1670 2361 693\n1673 2362 710\n1669 2368 738\n1695 2375 767\n1698 2376 829\n1716 2369 881\n1740 2380 949\n1755 2393 1057\n1772 2398 1125\n1792 2427 1208\n1822 2422 1331\n1860 2427 1448\n1906 2454 1608\n1946 2464 1702\n1989 2491 1830\n2049 2505 1997\n2113 2542 2175\n2197 2552 2341\n2218 2561 2447\n2237 2545 2553\n2217 2512 2675\n2205 2461 2798\n2209 2438 2883\n2241 2402 3003\n2248 2383 3104\n2285 2333 3198\n2291 2296 3319\n2319 2251 3424\n2373 2230 3559\n2424 2216 3710\n2484 2196 3830\n2588 2217 3976\n1638 2496 749\n1640 2508 760\n1642 2500 810\n1654 2507 841\n1654 2499 881\n1680 2517 950\n1679 2519 1017\n1717 2534 1101\n1739 2530 1177\n1756 2542 1272\n1774 2543 1379\n1799 2560 1498\n1854 2575 1614\n1909 2591 1743\n1940 2602 1872\n2000 2632 2028\n2042 2650 2157\n2149 2652 2317\n2183 2666 2446\n2188 2675 2588\n2203 2657 2706\n2195 2633 2814\n2187 2565 2901\n2167 2525 3023\n2166 2511 3113\n2182 2466 3221\n2243 2458 3334\n2273 2439 3464\n2321 2395 3581\n2364 2371 3710\n2439 2349 3820\n2521 2363 3983\n1594 2643 805\n1600 2634 835\n1605 2638 861\n1613 2634 893\n1623 2638 949\n1640 2648 1009\n1650 2637 1076\n1665 2650 1146\n1685 2661 1240\n1708 2673 1321\n1747 2682 1440\n1768 2691 1548\n1803 2704 1661\n1874 2713 1795\n1913 2723 1919\n1961 2741 2051\n2014 2770 2187\n2110 2781 2352\n2151 2789 2482\n2153 2780 2608\n2178 2786 2724\n2210 2763 2838\n2167 2736 2936\n2148 2689 3028\n2137 2651 3126\n2116 2618 3238\n2141 2576 3366\n2173 2547 3469\n2233 2536 3580\n2335 2543 3738\n2403 2525 3827\n2473 2528 3980\n1555 2764 895\n1558 2767 925\n1558 2758 940\n1571 2764 988\n1574 2769 1016\n1587 2772 1074\n1610 2776 1156\n1621 2776 1214\n1649 2796 1309\n1661 2792 1377\n1692 2796 1484\n1732 2813 1596\n1764 2824 1711\n1812 2837 1839\n1856 2856 1954\n1905 2866 2078\n1953 2888 2204\n2078 2895 2369\n2102 2888 2494\n2092 2900 2594\n2107 2902 2711\n2160 2919 2843\n2177 2869 2946\n2153 2812 3019\n2120 2798 3132\n2107 2749 3250\n2098 2723 3360\n2107 2693 3477\n2131 2668 3594\n2196 2659 3715\n2306 2662 3854\n2453 2713 3996\n1523 2903 1010\n1522 2897 1034\n1530 2891 1050\n1528 2906 1080\n1540 2899 1120\n1553 2910 1153\n1567 2912 1237\n1573 2913 1290\n1612 2914 1381\n1631 2914 1457\n1653 2928 1565\n1684 2944 1641\n1729 2944 1753\n1773 2965 1902\n1802 2970 1992\n1875 2982 2120\n1928 2986 2241\n2050 3020 2399\n2063 3018 2499\n2056 3020 2622\n2064 3003 2735\n2073 3014 2839\n2157 3003 2965\n2173 2959 3068\n2143 2946 3172\n2096 2897 3257\n2095 2859 3381\n2090 2849 3482\n2095 2805 3609\n2128 2803 3719\n2218 2790 3847\n2340 2822 3999\n1491 3021 1102\n1495 3024 1113\n1498 3017 1145\n1522 3019 1175\n1520 3033 1190\n1544 3021 1254\n1547 3033 1303\n1561 3037 1369\n1587 3039 1449\n1605 3049 1520\n1641 3065 1628\n1661 3062 1723\n1714 3076 1829\n1743 3078 1931\n1788 3092 2042\n1847 3099 2167\n1888 3109 2253\n1992 3115 2403\n2046 3126 2544\n2025 3118 2652\n2000 3117 2739\n2002 3117 2838\n2056 3138 2976\n2148 3114 3091\n2165 3072 3194\n2115 3041 3258\n2095 3022 3393\n2094 3003 3507\n2096 2958 3611\n2101 2957 3750\n2158 2956 3868\n2298 2981 4016\n1466 3160 1221\n1496 3157 1236\n1499 3160 1239\n1503 3154 1266\n1511 3155 1294\n1516 3167 1345\n1529 3163 1395\n1546 3175 1462\n1568 3183 1541\n1600 3183 1606\n1621 3180 1713\n1657 3186 1787\n1687 3190 1888\n1717 3195 2009\n1777 3205 2099\n1799 3211 2197\n1851 3216 2301\n1976 3236 2445\n2031 3226 2562\n1990 3223 2647\n1933 3231 2755\n1949 3228 2865\n1962 3224 2970\n2034 3243 3102\n2137 3207 3214\n2121 3183 3321\n2090 3163 3399\n2078 3146 3508\n2078 3119 3634\n2120 3102 3751\n2176 3104 3884\n2279 3135 4025\n1486 3292 1353\n1475 3298 1348\n1481 3296 1369\n1503 3292 1387\n1500 3296 1426\n1523 3291 1468\n1531 3298 1501\n1550 3301 1577\n1571 3298 1643\n1596 3311 1729\n1630 3320 1815\n1659 3309 1875\n1671 3324 1964\n1729 3325 2050\n1771 3321 2160\n1804 3325 2255\n1837 3339 2346\n1959 3349 2499\n2018 3343 2604\n1948 3348 2679\n1891 3338 2754\n1868 3350 2852\n1887 3346 2982\n1911 3333 3093\n1971 3357 3233\n2099 3322 3311\n2090 3293 3411\n2079 3277 3523\n2079 3266 3651\n2112 3245 3753\n2186 3250 3873\n2297 3293 4040\n1496 3428 1471\n1499 3422 1500\n1528 3431 1519\n1519 3430 1549\n1540 3440 1573\n1546 3426 1609\n1575 3440 1661\n1583 3439 1708\n1599 3431 1744\n1621 3445 1835\n1667 3430 1909\n1691 3446 1989\n1712 3438 2055\n1732 3454 2125\n1775 3454 2234\n1802 3455 2331\n1833 3452 2413\n1973 3474 2549\n2032 3471 2662\n1954 3458 2737\n1849 3455 2781\n1797 3466 2880\n1802 3481 3010\n1823 3466 3114\n1853 3466 3223\n1959 3484 3358\n2109 3424 3442\n2103 3414 3534\n2091 3397 3671\n2131 3403 3783\n2186 3411 3914\n2330 3444 4052\n1603 3552 1683\n1613 3562 1696\n1619 3566 1701\n1620 3550 1698\n1620 3556 1731\n1644 3556 1803\n1654 3560 1828\n1664 3566 1878\n1696 3569 1926\n1727 3552 2000\n1723 3563 2031\n1763 3572 2119\n1792 3570 2186\n1806 3568 2262\n1807 3573 2305\n1846 3588 2389\n1871 3583 2482\n2002 3568 2623\n2056 3584 2715\n1969 3582 2774\n1841 3593 2837\n1744 3591 2909\n1745 3581 3032\n1741 3592 3120\n1749 3587 3230\n1814 3595 3371\n1935 3598 3468\n2095 3567 3567\n2098 3543 3680\n2124 3542 3785\n2207 3547 3943\n2357 3585 4082\n1746 3705 1895\n1759 3698 1898\n1765 3697 1933\n1758 3692 1930\n1766 3688 1962\n1782 3704 1988\n1777 3700 1995\n1804 3707 2057\n1820 3703 2110\n1839 3694 2144\n1868 3704 2205\n1849 3704 2246\n1878 3705 2307\n1883 3713 2384\n1896 3700 2424\n1926 3720 2501\n1933 3719 2572\n2063 3700 2696\n2130 3705 2815\n2004 3713 2839\n1882 3721 2902\n1745 3748 2988\n1670 3721 3072\n1683 3737 3172\n1696 3737 3276\n1700 3713 3371\n1804 3740 3514\n1943 3738 3651\n2112 3683 3674\n2153 3672 3795\n2248 3680 3925\n2411 3720 4094\n1949 3836 2117\n1943 3820 2118\n1944 3834 2147\n1944 3835 2165\n1957 3845 2181\n1977 3820 2186\n1979 3829 2232\n2006 3827 2275\n1996 3835 2291\n2027 3835 2332\n2029 3826 2380\n2032 3842 2429\n2021 3849 2466\n2048 3843 2523\n2041 3845 2585\n2054 3852 2648\n2055 3852 2703\n2164 3851 2812\n2225 3851 2901\n2113 3853 2935\n1990 3862 2983\n1829 3866 3026\n1649 3869 3089\n1639 3881 3206\n1671 3884 3316\n1675 3876 3434\n1725 3870 3540\n1821 3889 3660\n1987 3868 3760\n2177 3798 3851\n2273 3811 3947\n2466 3868 4086\n2180 3975 2393\n2188 3982 2418\n2205 3974 2402\n2194 3990 2439\n2201 3976 2446\n2235 3983 2466\n2229 3983 2476\n2210 3979 2504\n2247 3978 2548\n2251 3983 2562\n2255 3981 2591\n2253 3985 2623\n2274 3983 2677\n2263 3982 2727\n2237 3991 2761\n2260 3991 2826\n2266 3990 2866\n2348 3990 2948\n2392 3999 3045\n2302 4015 3077\n2138 4009 3094\n1970 4024 3139\n1745 4033 3178\n1695 4047 3296\n1692 4034 3381\n1719 4053 3488\n1747 4047 3605\n1797 4045 3717\n1952 4045 3832\n2109 4026 3901\n2320 3949 3981\n2555 3991 4095\n1705 376 369\n1724 402 376\n1740 433 370\n1748 426 404\n1739 442 485\n1756 459 526\n1769 456 597\n1762 453 646\n1777 414 701\n1829 323 755\n1871 333 890\n1925 340 1002\n1961 360 1124\n2003 364 1263\n2036 353 1403\n2067 328 1509\n2085 311 1615\n2083 302 1736\n2144 229 1864\n2215 90 2024\n2292 22 2173\n2366 0 2328\n2462 9 2498\n2525 0 2668\n2590 4 2793\n2678 9 2971\n2749 0 3121\n2830 11 3279\n2906 0 3436\n3020 1 3585\n3062 0 3733\n3150 9 3896\n1716 400 354\n1740 434 369\n1762 443 386\n1733 451 413\n1783 465 476\n1759 496 549\n1770 476 608\n1778 469 661\n1787 458 728\n1822 353 764\n1869 361 883\n1925 379 1002\n1977 378 1121\n2033 400 1284\n2052 384 1394\n2061 369 1499\n2080 344 1616\n2095 327 1727\n2153 269 1868\n2226 148 2016\n2307 29 2177\n2397 0 2337\n2457 0 2490\n2522 9 2643\n2600 4 2804\n2675 12 2970\n2758 9 3130\n2844 2 3284\n2902 0 3436\n2981 6 3589\n3078 6 3752\n3169 0 3896\n1732 426 360\n1762 458 368\n1771 467 403\n1757 476 421\n1764 491 486\n1787 494 536\n1794 503 595\n1773 500 660\n1783 498 731\n1839 403 783\n1876 394 876\n1907 392 1001\n1984 426 1146\n2030 434 1286\n2056 426 1403\n2078 410 1493\n2093 378 1630\n2112 377 1745\n2169 305 1870\n2218 220 2021\n2305 82 2176\n2382 8 2340\n2458 0 2507\n2529 4 2670\n2606 4 2821\n2692 1 2988\n2746 3 3130\n2841 2 3284\n2901 0 3452\n3002 1 3597\n3079 7 3753\n3143 16 3896\n1755 477 342\n1778 477 354\n1773 509 403\n1780 509 432\n1778 538 482\n1788 533 556\n1804 543 610\n1800 551 671\n1794 524 738\n1823 458 787\n1899 437 886\n1930 448 1016\n1981 463 1141\n2029 482 1300\n2063 484 1415\n2099 451 1516\n2109 437 1627\n2116 421 1751\n2182 370 1886\n2242 297 2046\n2319 196 2190\n2400 63 2347\n2459 18 2501\n2550 4 2659\n2613 11 2822\n2694 5 2982\n2757 0 3139\n2834 11 3302\n2901 0 3451\n2989 6 3598\n3063 0 3733\n3143 16 3896\n1785 518 331\n1802 541 368\n1797 536 394\n1809 557 450\n1811 571 493\n1813 559 549\n1822 580 629\n1825 590 697\n1818 582 749\n1852 541 803\n1896 489 893\n1933 505 1022\n1977 531 1150\n2049 547 1284\n2086 555 1435\n2102 534 1530\n2110 511 1657\n2128 493 1758\n2185 453 1910\n2257 380 2048\n2338 314 2190\n2418 206 2363\n2483 74 2539\n2555 0 2660\n2631 7 2843\n2681 9 2997\n2744 5 3139\n2827 14 3298\n2896 4 3459\n2980 15 3598\n3061 0 3733\n3165 2 3909\n1820 590 341\n1835 599 384\n1836 595 412\n1825 589 473\n1834 630 520\n1836 625 563\n1836 634 626\n1841 646 691\n1840 636 771\n1868 634 845\n1899 565 886\n1944 573 1001\n1983 593 1159\n2045 615 1309\n2101 627 1447\n2127 615 1561\n2117 596 1664\n2137 584 1790\n2201 532 1912\n2273 486 2076\n2338 414 2228\n2413 343 2381\n2492 258 2557\n2566 131 2689\n2622 9 2843\n2677 0 2981\n2761 7 3151\n2830 14 3297\n2907 11 3452\n2979 16 3603\n3036 10 3759\n3134 7 3900\n1849 665 347\n1854 671 393\n1860 669 423\n1865 682 462\n1852 697 522\n1881 684 583\n1878 693 655\n1870 696 720\n1874 715 780\n1888 710 872\n1890 664 917\n1950 645 1018\n2022 665 1168\n2059 697 1322\n2111 727 1478\n2135 708 1598\n2162 681 1700\n2163 685 1818\n2207 639 1938\n2299 594 2101\n2361 543 2258\n2414 477 2418\n2511 423 2551\n2566 346 2705\n2625 226 2869\n2681 66 3004\n2774 6 3160\n2821 11 3302\n2901 9 3469\n2965 15 3613\n3055 0 3758\n3130 6 3905\n1866 744 369\n1898 755 406\n1875 758 436\n1877 764 478\n1892 779 522\n1893 775 585\n1903 769 645\n1898 785 724\n1905 789 794\n1934 801 898\n1927 792 971\n1950 737 1048\n2009 758 1180\n2072 788 1322\n2110 821 1481\n2158 812 1628\n2172 790 1732\n2173 788 1841\n2236 744 1964\n2305 714 2121\n2377 674 2284\n2440 604 2422\n2512 563 2575\n2578 517 2724\n2625 434 2872\n2681 329 3023\n2762 200 3172\n2831 42 3295\n2878 14 3463\n2957 9 3615\n3036 9 3777\n3136 7 3924\n1926 853 387\n1932 847 432\n1948 864 461\n1922 855 485\n1936 872 561\n1946 866 602\n1946 864 658\n1930 870 724\n1950 886 814\n1948 891 908\n1967 896 993\n1962 858 1053\n2019 856 1170\n2096 896 1338\n2143 928 1512\n2169 937 1645\n2196 913 1746\n2205 902 1857\n2245 874 1991\n2305 835 2143\n2377 804 2293\n2446 763 2444\n2501 716 2589\n2568 668 2737\n2611 608 2881\n2692 537 3018\n2751 458 3178\n2804 365 3315\n2873 253 3456\n2962 120 3623\n3008 51 3761\n3115 47 3898\n1983 961 399\n1987 961 440\n1994 966 477\n1975 965 486\n1987 964 545\n1999 978 625\n1995 971 685\n1996 979 753\n2008 978 831\n2010 978 936\n1992 1000 1025\n1986 987 1113\n2049 969 1197\n2109 992 1366\n2166 1037 1518\n2183 1061 1654\n2246 1038 1807\n2243 1031 1900\n2295 1000 2024\n2332 966 2180\n2408 928 2320\n2473 906 2488\n2519 863 2613\n2570 831 2750\n2635 773 2898\n2685 719 3047\n2741 657 3203\n2800 589 3332\n2867 522 3482\n2948 456 3621\n2998 395 3751\n3091 370 3939\n2016 1092 409\n2016 1085 431\n2031 1101 474\n2011 1084 503\n2032 1101 576\n2050 1107 631\n2042 1101 694\n2044 1090 780\n2057 1097 855\n2056 1103 935\n2048 1107 1050\n2025 1113 1148\n2056 1106 1245\n2109 1115 1372\n2174 1154 1545\n2210 1198 1705\n2244 1182 1833\n2248 1167 1920\n2296 1125 2049\n2359 1106 2207\n2420 1070 2347\n2480 1062 2492\n2525 1014 2627\n2575 970 2751\n2635 938 2928\n2684 880 3051\n2734 836 3191\n2796 773 3339\n2861 734 3488\n2931 685 3625\n2985 646 3768\n3074 635 3923\n2013 1233 407\n2013 1233 436\n2021 1242 479\n2023 1227 508\n2039 1238 582\n2058 1243 633\n2072 1230 707\n2088 1240 788\n2101 1253 880\n2102 1238 970\n2105 1245 1094\n2084 1240 1176\n2083 1265 1300\n2126 1250 1400\n2177 1275 1564\n2231 1317 1725\n2268 1338 1877\n2282 1313 1974\n2327 1285 2099\n2386 1255 2245\n2445 1227 2392\n2494 1207 2528\n2534 1169 2656\n2580 1134 2797\n2619 1096 2946\n2669 1042 3067\n2725 1004 3213\n2767 963 3366\n2826 908 3488\n2905 879 3641\n2976 851 3784\n3058 840 3918\n2013 1383 447\n2002 1392 438\n2014 1368 482\n2032 1387 530\n2038 1376 591\n2057 1390 644\n2080 1377 713\n2118 1410 806\n2140 1385 893\n2146 1384 994\n2162 1386 1093\n2166 1396 1218\n2148 1386 1332\n2145 1409 1459\n2178 1391 1559\n2246 1462 1763\n2294 1492 1899\n2298 1463 2009\n2360 1450 2144\n2418 1418 2307\n2442 1395 2425\n2507 1366 2553\n2533 1339 2681\n2578 1299 2828\n2609 1248 2947\n2655 1203 3080\n2709 1180 3221\n2771 1127 3360\n2813 1087 3511\n2883 1057 3648\n2946 1036 3769\n3025 1026 3944\n2019 1536 434\n2013 1542 435\n2017 1536 478\n2029 1533 531\n2038 1525 566\n2063 1548 647\n2077 1540 720\n2096 1540 822\n2136 1566 918\n2171 1550 1014\n2210 1559 1146\n2208 1566 1251\n2199 1566 1374\n2184 1575 1497\n2178 1568 1606\n2261 1592 1766\n2327 1659 1952\n2331 1626 2063\n2375 1614 2203\n2441 1588 2337\n2474 1558 2461\n2509 1511 2598\n2526 1486 2714\n2570 1458 2856\n2611 1409 2990\n2633 1376 3106\n2695 1324 3243\n2752 1298 3382\n2783 1245 3497\n2849 1221 3651\n2910 1196 3774\n3002 1199 3925\n2014 1674 441\n2001 1688 465\n2006 1703 508\n2025 1695 556\n2029 1690 589\n2047 1702 664\n2068 1704 739\n2109 1708 815\n2138 1710 928\n2155 1714 1028\n2196 1725 1145\n2236 1723 1288\n2266 1728 1412\n2268 1732 1536\n2243 1736 1672\n2253 1747 1788\n2333 1795 1973\n2357 1804 2121\n2407 1771 2249\n2432 1758 2373\n2469 1720 2488\n2500 1684 2611\n2521 1647 2743\n2561 1617 2875\n2593 1573 2994\n2619 1525 3132\n2670 1493 3265\n2715 1454 3394\n2742 1416 3519\n2828 1377 3648\n2894 1355 3801\n2955 1354 3937\n2013 1839 462\n2014 1838 496\n2001 1846 511\n2017 1846 569\n2017 1846 605\n2037 1858 683\n2064 1863 758\n2087 1883 850\n2125 1879 942\n2150 1879 1076\n2189 1880 1175\n2221 1906 1294\n2259 1893 1428\n2278 1915 1561\n2310 1918 1722\n2316 1924 1852\n2332 1927 1992\n2381 1975 2185\n2415 1951 2308\n2432 1928 2432\n2464 1886 2539\n2492 1859 2664\n2513 1814 2776\n2532 1775 2888\n2573 1733 3028\n2598 1691 3149\n2639 1655 3264\n2685 1615 3411\n2711 1577 3527\n2776 1544 3669\n2847 1520 3807\n2929 1516 3949\n1921 1936 510\n1936 1946 559\n1937 1946 546\n1962 1955 601\n1987 1967 657\n1998 1967 726\n2015 1972 785\n2014 1975 872\n2059 2005 964\n2117 2035 1105\n2157 2046 1199\n2195 2061 1316\n2228 2075 1459\n2264 2078 1604\n2325 2104 1769\n2351 2096 1924\n2388 2096 2063\n2405 2144 2233\n2437 2121 2338\n2455 2097 2454\n2472 2064 2575\n2479 2023 2680\n2502 1988 2807\n2508 1948 2933\n2552 1897 3043\n2574 1864 3169\n2605 1800 3293\n2645 1789 3417\n2693 1745 3550\n2740 1714 3671\n2791 1704 3820\n2880 1712 3966\n1910 2092 561\n1917 2084 591\n1918 2085 596\n1934 2098 660\n1941 2100 696\n1958 2106 782\n1969 2110 818\n1994 2117 909\n2033 2116 1006\n2059 2148 1134\n2078 2160 1214\n2125 2170 1358\n2177 2194 1505\n2243 2222 1628\n2304 2243 1788\n2342 2260 1937\n2399 2276 2114\n2438 2308 2276\n2455 2292 2422\n2462 2276 2505\n2466 2236 2633\n2472 2195 2720\n2494 2152 2844\n2495 2105 2955\n2528 2069 3077\n2534 2025 3179\n2567 1972 3293\n2603 1955 3424\n2642 1915 3539\n2698 1876 3688\n2757 1875 3847\n2855 1884 3989\n1882 2231 575\n1891 2239 605\n1901 2232 637\n1895 2238 671\n1900 2245 728\n1936 2260 799\n1949 2257 867\n1968 2279 965\n1996 2268 1046\n2024 2284 1157\n2043 2300 1287\n2092 2318 1401\n2134 2331 1522\n2184 2340 1670\n2225 2364 1819\n2264 2366 1967\n2343 2391 2153\n2404 2438 2300\n2465 2465 2465\n2465 2429 2551\n2450 2390 2668\n2459 2363 2775\n2476 2316 2877\n2465 2280 2986\n2509 2244 3101\n2497 2205 3196\n2524 2153 3326\n2571 2118 3447\n2590 2077 3554\n2643 2061 3695\n2718 2039 3817\n2790 2047 3960\n1861 2384 659\n1855 2369 679\n1861 2374 704\n1869 2390 745\n1886 2377 801\n1896 2391 869\n1925 2394 929\n1928 2406 1002\n1958 2400 1095\n1974 2421 1180\n2012 2421 1318\n2043 2448 1446\n2082 2458 1564\n2129 2467 1704\n2161 2503 1833\n2224 2506 1982\n2286 2522 2145\n2350 2556 2300\n2408 2576 2447\n2439 2592 2589\n2413 2528 2690\n2428 2481 2821\n2450 2485 2935\n2451 2430 3024\n2443 2395 3103\n2475 2361 3218\n2478 2308 3323\n2507 2283 3454\n2551 2245 3573\n2614 2223 3720\n2645 2218 3831\n2732 2207 3983\n1824 2514 710\n1823 2509 736\n1823 2508 760\n1835 2519 805\n1841 2511 838\n1863 2530 925\n1870 2524 988\n1905 2545 1079\n1912 2541 1144\n1925 2550 1245\n1973 2557 1357\n2004 2575 1467\n2025 2577 1589\n2087 2602 1743\n2119 2595 1879\n2157 2625 2006\n2236 2655 2165\n2296 2667 2318\n2379 2683 2469\n2401 2691 2593\n2398 2690 2723\n2400 2648 2821\n2384 2609 2919\n2380 2560 3020\n2391 2535 3134\n2435 2516 3250\n2430 2479 3348\n2439 2421 3445\n2489 2400 3575\n2564 2381 3716\n2605 2369 3826\n2672 2370 3982\n1786 2643 774\n1790 2645 809\n1812 2641 837\n1801 2645 866\n1812 2649 917\n1828 2653 984\n1843 2664 1056\n1853 2656 1135\n1871 2662 1211\n1897 2677 1316\n1929 2677 1410\n1956 2699 1530\n1998 2708 1644\n2047 2719 1771\n2092 2724 1907\n2140 2740 2042\n2194 2760 2188\n2232 2771 2331\n2335 2788 2475\n2367 2804 2618\n2378 2819 2719\n2399 2788 2862\n2364 2755 2951\n2355 2708 3051\n2325 2667 3144\n2331 2631 3256\n2355 2594 3382\n2396 2583 3496\n2444 2570 3611\n2503 2546 3744\n2541 2528 3825\n2605 2506 3983\n1761 2764 863\n1766 2780 887\n1779 2776 926\n1778 2768 955\n1788 2776 990\n1805 2780 1058\n1820 2780 1127\n1818 2790 1212\n1842 2792 1290\n1855 2806 1363\n1897 2808 1469\n1900 2818 1584\n1968 2818 1703\n2004 2840 1827\n2045 2852 1947\n2083 2856 2078\n2159 2863 2200\n2205 2890 2334\n2300 2897 2496\n2334 2910 2627\n2323 2918 2733\n2348 2937 2867\n2359 2909 2957\n2362 2856 3073\n2316 2821 3165\n2315 2771 3262\n2270 2721 3372\n2307 2709 3488\n2339 2685 3612\n2427 2683 3740\n2504 2695 3872\n2591 2702 4003\n1744 2902 965\n1743 2899 985\n1740 2904 996\n1761 2898 1034\n1758 2901 1064\n1781 2913 1126\n1775 2922 1199\n1791 2914 1271\n1812 2924 1346\n1838 2916 1446\n1858 2918 1521\n1903 2935 1653\n1921 2944 1751\n1962 2961 1872\n2003 2959 1998\n2068 2968 2119\n2114 2967 2220\n2161 3008 2360\n2247 3028 2509\n2294 3026 2647\n2274 3012 2727\n2300 3023 2853\n2339 3038 2979\n2350 3000 3076\n2324 2954 3172\n2294 2917 3262\n2270 2877 3389\n2267 2858 3483\n2276 2811 3588\n2322 2810 3738\n2390 2800 3874\n2499 2830 4010\n1703 3037 1087\n1686 3049 1101\n1703 3033 1113\n1707 3034 1148\n1734 3028 1188\n1735 3049 1242\n1753 3034 1286\n1771 3040 1349\n1782 3040 1441\n1811 3041 1529\n1835 3053 1612\n1876 3055 1724\n1887 3065 1829\n1922 3072 1917\n1990 3076 2060\n2023 3096 2167\n2072 3106 2263\n2112 3121 2392\n2208 3133 2523\n2248 3121 2661\n2220 3130 2736\n2221 3139 2865\n2230 3134 2991\n2310 3134 3091\n2317 3088 3197\n2295 3071 3301\n2275 3023 3393\n2279 2998 3512\n2272 2974 3625\n2271 2957 3743\n2320 2956 3880\n2453 2973 4024\n1688 3164 1202\n1691 3167 1206\n1714 3163 1239\n1704 3158 1261\n1711 3162 1302\n1726 3153 1339\n1745 3174 1397\n1757 3176 1468\n1782 3171 1532\n1799 3175 1614\n1823 3183 1719\n1854 3174 1797\n1887 3184 1885\n1922 3189 1999\n1959 3196 2103\n1994 3210 2217\n2046 3218 2325\n2066 3240 2421\n2163 3238 2543\n2233 3244 2688\n2167 3224 2763\n2164 3229 2868\n2187 3249 2984\n2223 3234 3099\n2306 3232 3213\n2288 3214 3324\n2288 3164 3397\n2249 3154 3498\n2252 3115 3639\n2268 3112 3752\n2321 3103 3893\n2420 3119 4031\n1692 3295 1357\n1690 3298 1354\n1694 3291 1368\n1704 3295 1394\n1729 3288 1430\n1713 3298 1456\n1766 3308 1521\n1772 3298 1576\n1792 3294 1649\n1809 3307 1729\n1833 3314 1809\n1869 3312 1891\n1886 3308 1969\n1915 3321 2060\n1946 3323 2147\n1992 3322 2258\n2029 3343 2352\n2060 3348 2451\n2162 3346 2579\n2200 3358 2712\n2137 3345 2770\n2099 3351 2862\n2106 3369 3012\n2126 3351 3101\n2169 3361 3217\n2277 3330 3314\n2276 3315 3433\n2273 3293 3539\n2255 3266 3645\n2279 3255 3747\n2349 3267 3902\n2414 3263 4038\n1717 3428 1483\n1731 3424 1520\n1734 3428 1524\n1742 3428 1547\n1749 3429 1572\n1761 3426 1626\n1778 3439 1672\n1792 3430 1701\n1830 3418 1780\n1846 3433 1834\n1875 3431 1936\n1879 3431 1998\n1905 3444 2067\n1926 3449 2142\n1982 3442 2234\n1993 3442 2329\n1999 3463 2421\n2042 3469 2501\n2162 3465 2655\n2198 3456 2750\n2102 3474 2811\n2047 3473 2905\n2033 3483 3024\n2031 3472 3094\n2054 3465 3218\n2143 3474 3359\n2241 3443 3432\n2267 3419 3533\n2238 3402 3657\n2287 3406 3786\n2344 3415 3926\n2449 3424 4046\n1795 3555 1685\n1804 3558 1693\n1785 3547 1716\n1819 3568 1741\n1826 3550 1764\n1819 3557 1789\n1846 3568 1837\n1881 3566 1893\n1884 3559 1933\n1908 3573 2001\n1925 3555 2048\n1943 3564 2109\n1961 3572 2189\n1977 3574 2257\n1989 3560 2322\n2015 3589 2420\n2025 3583 2482\n2055 3584 2583\n2168 3589 2697\n2219 3597 2809\n2124 3597 2852\n2020 3589 2940\n1959 3596 3006\n1965 3586 3135\n1970 3593 3242\n2045 3603 3372\n2123 3607 3486\n2250 3558 3548\n2266 3548 3697\n2293 3549 3777\n2338 3548 3931\n2457 3584 4064\n1915 3699 1902\n1921 3705 1920\n1930 3702 1919\n1929 3695 1938\n1943 3689 1963\n1947 3692 1994\n1957 3701 2031\n1971 3692 2059\n1981 3700 2103\n2007 3715 2167\n2009 3701 2221\n2043 3706 2274\n2045 3704 2339\n2070 3708 2387\n2066 3708 2444\n2098 3707 2514\n2091 3706 2571\n2104 3720 2670\n2216 3721 2794\n2265 3730 2874\n2144 3714 2923\n2044 3738 2994\n1921 3733 3055\n1920 3728 3159\n1919 3726 3263\n1920 3743 3387\n1992 3720 3508\n2099 3727 3641\n2271 3675 3698\n2299 3673 3809\n2363 3705 3938\n2510 3731 4080\n2090 3835 2139\n2096 3843 2164\n2090 3836 2165\n2093 3838 2169\n2106 3842 2190\n2102 3832 2204\n2137 3830 2250\n2144 3855 2293\n2149 3841 2307\n2160 3851 2360\n2166 3841 2395\n2167 3840 2452\n2181 3839 2496\n2194 3845 2538\n2186 3835 2586\n2182 3845 2647\n2203 3860 2719\n2212 3852 2781\n2303 3852 2876\n2332 3853 2972\n2227 3858 3007\n2124 3868 3069\n1942 3863 3100\n1874 3876 3208\n1883 3874 3303\n1925 3872 3423\n1891 3877 3538\n2019 3869 3671\n2144 3892 3794\n2324 3815 3834\n2400 3835 3968\n2564 3887 4095\n2327 3983 2428\n2324 3967 2419\n2333 3988 2435\n2342 3981 2466\n2334 3983 2480\n2340 3976 2485\n2347 3996 2511\n2351 3977 2525\n2350 3976 2546\n2363 3992 2601\n2377 3988 2611\n2373 3983 2649\n2379 3983 2662\n2375 3983 2727\n2365 3994 2769\n2373 3994 2818\n2373 3990 2866\n2380 4005 2934\n2462 3999 3015\n2487 4008 3118\n2394 4005 3130\n2247 4021 3174\n2076 4033 3200\n1892 4038 3254\n1915 4047 3399\n1919 4031 3495\n1930 4044 3596\n1963 4033 3705\n2092 4052 3823\n2237 4035 3927\n2428 3968 3991\n2639 4017 4095\n1818 395 369\n1829 406 354\n1838 451 354\n1866 443 411\n1860 460 460\n1870 460 517\n1899 462 578\n1885 466 647\n1886 456 705\n1912 324 732\n1952 295 842\n2017 301 959\n2069 308 1085\n2111 314 1241\n2180 335 1408\n2231 313 1515\n2225 271 1613\n2232 237 1721\n2224 212 1827\n2317 73 2009\n2411 0 2173\n2475 10 2338\n2578 10 2490\n2647 0 2661\n2707 0 2809\n2792 3 2968\n2861 4 3121\n2950 10 3273\n3025 0 3423\n3126 1 3567\n3181 10 3744\n3267 6 3886\n1835 411 360\n1845 428 338\n1854 450 361\n1864 460 422\n1876 479 462\n1877 486 516\n1893 476 582\n1901 482 655\n1883 466 715\n1933 373 740\n1985 327 861\n2015 332 971\n2096 348 1131\n2128 354 1232\n2196 371 1399\n2206 348 1503\n2248 313 1617\n2240 295 1721\n2255 277 1843\n2323 135 1999\n2414 32 2181\n2503 14 2323\n2575 11 2490\n2650 6 2659\n2716 9 2819\n2795 3 2962\n2873 13 3125\n2944 2 3273\n3013 2 3422\n3115 1 3562\n3216 15 3729\n3280 0 3896\n1839 435 344\n1869 462 329\n1883 477 359\n1887 483 425\n1892 498 467\n1903 510 512\n1916 518 593\n1905 520 651\n1892 509 714\n1924 427 757\n1960 366 833\n2029 357 956\n2074 393 1100\n2148 383 1241\n2201 420 1411\n2239 389 1521\n2236 356 1633\n2242 343 1744\n2288 311 1854\n2348 196 2009\n2420 55 2163\n2508 11 2338\n2581 5 2508\n2635 9 2674\n2712 9 2821\n2790 3 2960\n2869 12 3130\n2952 12 3258\n3023 1 3430\n3094 1 3560\n3189 9 3721\n3267 6 3895\n1877 470 324\n1882 494 333\n1896 508 370\n1917 515 424\n1910 528 484\n1917 531 541\n1922 541 610\n1910 544 651\n1904 536 727\n1928 502 783\n1983 406 843\n2052 413 971\n2106 425 1096\n2140 437 1244\n2208 465 1418\n2234 449 1520\n2271 429 1650\n2257 411 1739\n2273 380 1856\n2348 295 2026\n2410 174 2180\n2507 30 2343\n2590 0 2507\n2655 0 2665\n2745 11 2823\n2797 6 2975\n2859 1 3119\n2944 16 3281\n3023 0 3432\n3099 9 3569\n3170 0 3714\n3267 6 3886\n1902 534 333\n1910 545 366\n1918 544 389\n1918 552 427\n1927 582 472\n1931 573 555\n1914 588 600\n1930 584 668\n1941 590 737\n1930 569 798\n1989 457 849\n2041 476 979\n2085 489 1115\n2141 510 1263\n2230 529 1439\n2255 532 1540\n2265 504 1673\n2303 466 1770\n2304 448 1884\n2372 380 2036\n2459 296 2193\n2513 163 2357\n2580 39 2519\n2659 0 2667\n2741 10 2824\n2793 8 2982\n2886 13 3138\n2938 12 3280\n3013 0 3435\n3082 17 3581\n3181 0 3718\n3278 2 3886\n1942 609 319\n1933 611 360\n1938 609 395\n1941 603 448\n1933 626 500\n1938 623 544\n1942 638 604\n1950 644 685\n1978 634 743\n1949 643 820\n2015 545 855\n2048 535 950\n2096 564 1148\n2154 583 1286\n2217 616 1435\n2266 610 1570\n2274 594 1679\n2293 570 1799\n2325 557 1913\n2372 479 2054\n2452 424 2235\n2515 339 2365\n2597 229 2526\n2660 100 2659\n2742 21 2833\n2788 10 2980\n2888 11 3141\n2939 16 3288\n3023 3 3414\n3091 17 3572\n3152 13 3726\n3251 10 3880\n1954 668 311\n1956 668 370\n1970 668 382\n1979 684 443\n1975 692 494\n1996 697 570\n1976 700 632\n1994 710 710\n2008 716 772\n1986 711 844\n2002 681 912\n2074 615 989\n2123 641 1138\n2173 667 1280\n2234 697 1440\n2289 700 1601\n2313 684 1722\n2300 674 1819\n2319 652 1932\n2385 590 2073\n2472 545 2260\n2534 476 2392\n2606 415 2517\n2676 334 2680\n2727 244 2843\n2805 82 2988\n2893 10 3144\n2938 13 3285\n3031 14 3463\n3082 12 3594\n3159 10 3744\n3255 9 3886\n1999 750 369\n2002 765 380\n2002 756 412\n1998 764 445\n2020 772 505\n2023 775 569\n2015 775 626\n2018 782 698\n2034 782 789\n2029 782 868\n2018 788 942\n2061 714 998\n2120 731 1149\n2178 762 1290\n2248 795 1460\n2285 820 1622\n2316 799 1731\n2321 785 1841\n2345 763 1942\n2421 717 2100\n2494 668 2283\n2565 612 2421\n2621 569 2566\n2671 527 2709\n2726 454 2847\n2811 371 3029\n2880 223 3153\n2956 62 3292\n2990 20 3439\n3079 11 3593\n3153 15 3763\n3238 4 3916\n2041 847 329\n2058 854 368\n2055 852 401\n2038 862 432\n2067 855 500\n2067 864 573\n2071 868 643\n2067 873 708\n2053 900 792\n2059 890 883\n2067 897 988\n2086 871 1054\n2132 832 1155\n2209 853 1288\n2266 897 1485\n2332 946 1635\n2329 928 1770\n2355 908 1876\n2365 886 1982\n2436 836 2139\n2497 793 2284\n2554 767 2455\n2641 716 2590\n2691 695 2725\n2752 640 2877\n2808 567 2999\n2890 486 3172\n2936 398 3324\n2994 282 3461\n3093 167 3628\n3153 75 3754\n3233 64 3902\n2099 968 365\n2100 966 422\n2107 966 440\n2101 968 455\n2103 973 529\n2105 969 583\n2110 982 662\n2107 976 728\n2116 983 810\n2121 983 902\n2111 994 996\n2117 998 1098\n2144 933 1146\n2220 951 1311\n2282 1003 1492\n2329 1068 1660\n2375 1052 1798\n2385 1027 1910\n2409 1003 2020\n2462 971 2168\n2522 939 2310\n2578 901 2470\n2643 881 2607\n2701 837 2751\n2763 800 2893\n2820 743 3040\n2871 680 3182\n2930 620 3320\n2986 539 3472\n3077 488 3626\n3159 438 3782\n3221 426 3934\n2132 1087 370\n2139 1081 391\n2164 1100 430\n2142 1085 483\n2162 1087 526\n2158 1103 595\n2160 1103 665\n2146 1111 758\n2176 1097 832\n2164 1107 918\n2148 1107 1017\n2161 1113 1120\n2153 1112 1237\n2216 1088 1325\n2273 1129 1491\n2333 1180 1676\n2378 1200 1822\n2398 1168 1935\n2426 1161 2053\n2490 1134 2213\n2555 1075 2348\n2613 1059 2484\n2643 1026 2620\n2719 999 2755\n2747 961 2883\n2811 906 3036\n2872 866 3194\n2921 808 3331\n2987 749 3466\n3067 712 3634\n3133 688 3782\n3202 678 3940\n2149 1238 361\n2158 1237 423\n2171 1233 455\n2177 1225 493\n2191 1233 530\n2207 1239 616\n2222 1240 679\n2237 1232 770\n2227 1235 840\n2230 1243 948\n2208 1227 1059\n2230 1231 1163\n2222 1249 1268\n2223 1225 1359\n2311 1248 1533\n2352 1307 1697\n2399 1353 1868\n2424 1342 1985\n2454 1302 2094\n2524 1255 2222\n2570 1240 2372\n2611 1215 2511\n2662 1195 2644\n2718 1169 2802\n2743 1130 2910\n2797 1075 3049\n2840 1037 3173\n2898 989 3348\n2962 941 3493\n3039 909 3655\n3116 875 3783\n3193 873 3929\n2155 1364 376\n2159 1393 416\n2173 1378 456\n2171 1375 480\n2197 1388 554\n2206 1390 618\n2229 1396 663\n2248 1389 755\n2282 1384 867\n2277 1369 942\n2288 1381 1078\n2290 1388 1198\n2281 1376 1296\n2246 1397 1427\n2309 1372 1537\n2367 1432 1711\n2419 1499 1908\n2456 1484 2025\n2482 1471 2160\n2545 1441 2303\n2570 1396 2428\n2622 1373 2521\n2663 1359 2680\n2705 1321 2804\n2749 1278 2943\n2804 1239 3083\n2826 1177 3207\n2897 1141 3350\n2946 1105 3506\n2997 1067 3627\n3086 1065 3782\n3142 1049 3941\n2153 1530 392\n2150 1540 397\n2163 1542 432\n2193 1542 500\n2196 1538 552\n2205 1546 608\n2220 1546 687\n2243 1549 791\n2273 1552 873\n2302 1547 980\n2349 1539 1112\n2334 1549 1208\n2334 1544 1333\n2320 1559 1450\n2309 1569 1594\n2389 1559 1731\n2423 1646 1925\n2488 1657 2070\n2501 1641 2195\n2551 1588 2327\n2610 1568 2445\n2635 1541 2569\n2683 1519 2716\n2701 1487 2845\n2744 1441 2961\n2779 1399 3091\n2817 1358 3216\n2876 1314 3371\n2927 1291 3501\n2978 1243 3644\n3057 1234 3782\n3132 1228 3922\n2139 1697 393\n2156 1699 434\n2157 1696 473\n2170 1686 504\n2188 1701 550\n2195 1704 634\n2215 1694 696\n2242 1704 799\n2260 1717 903\n2299 1709 1002\n2343 1720 1115\n2389 1725 1260\n2395 1720 1394\n2392 1726 1491\n2382 1734 1622\n2376 1722 1755\n2447 1762 1926\n2490 1817 2111\n2524 1787 2239\n2567 1780 2375\n2609 1744 2481\n2653 1719 2619\n2678 1687 2756\n2710 1643 2849\n2745 1597 2996\n2776 1559 3119\n2791 1513 3249\n2854 1463 3379\n2892 1438 3498\n2962 1404 3642\n3024 1385 3801\n3092 1389 3936\n2159 1837 384\n2157 1847 417\n2161 1847 442\n2176 1863 507\n2195 1842 565\n2205 1856 635\n2219 1881 724\n2251 1865 808\n2284 1874 915\n2302 1884 1046\n2345 1877 1142\n2372 1888 1267\n2415 1887 1417\n2461 1893 1551\n2454 1900 1701\n2424 1897 1817\n2424 1901 1950\n2491 1966 2146\n2547 1973 2293\n2584 1948 2422\n2616 1907 2536\n2646 1885 2634\n2670 1852 2768\n2693 1809 2900\n2737 1751 3000\n2756 1721 3151\n2787 1686 3268\n2825 1643 3402\n2871 1606 3532\n2915 1560 3650\n2993 1549 3800\n3074 1542 3952\n2132 1979 481\n2136 1986 502\n2152 1987 516\n2162 1992 551\n2177 2001 591\n2195 1995 696\n2215 2010 752\n2233 2017 872\n2261 2039 935\n2295 2049 1071\n2316 2043 1165\n2351 2053 1288\n2390 2069 1418\n2453 2079 1577\n2486 2078 1726\n2503 2073 1870\n2480 2088 2018\n2506 2098 2181\n2571 2145 2356\n2593 2119 2463\n2626 2073 2575\n2652 2046 2677\n2669 2007 2784\n2670 1983 2935\n2731 1935 3046\n2739 1880 3160\n2767 1841 3272\n2789 1790 3398\n2840 1758 3524\n2876 1728 3653\n2935 1712 3817\n3000 1697 3943\n2068 2108 513\n2069 2100 544\n2073 2115 564\n2102 2100 619\n2105 2101 669\n2135 2117 756\n2147 2119 800\n2180 2134 898\n2209 2147 992\n2223 2165 1094\n2269 2201 1198\n2319 2206 1348\n2359 2224 1471\n2427 2231 1629\n2458 2230 1755\n2495 2252 1924\n2546 2266 2083\n2521 2276 2227\n2569 2292 2391\n2623 2276 2506\n2633 2244 2622\n2643 2223 2733\n2659 2174 2835\n2670 2145 2944\n2687 2107 3081\n2719 2050 3185\n2737 2007 3299\n2764 1975 3423\n2797 1938 3539\n2860 1897 3693\n2913 1885 3840\n2967 1884 3949\n2047 2247 552\n2054 2229 563\n2077 2246 611\n2066 2254 647\n2081 2263 693\n2096 2270 765\n2111 2275 847\n2140 2276 945\n2169 2291 1018\n2190 2290 1147\n2218 2315 1251\n2262 2318 1383\n2298 2331 1505\n2348 2343 1662\n2411 2366 1825\n2461 2395 1973\n2513 2420 2137\n2578 2420 2295\n2593 2429 2414\n2625 2446 2557\n2635 2406 2672\n2646 2372 2777\n2648 2335 2889\n2657 2310 3014\n2687 2248 3095\n2680 2211 3196\n2709 2162 3326\n2727 2114 3417\n2767 2097 3546\n2792 2067 3674\n2850 2056 3811\n2921 2054 3963\n2015 2374 630\n2025 2384 652\n2046 2393 677\n2047 2384 726\n2049 2386 764\n2069 2405 840\n2102 2393 902\n2107 2416 988\n2117 2420 1080\n2154 2436 1169\n2185 2448 1278\n2207 2436 1428\n2253 2467 1547\n2314 2477 1685\n2324 2504 1819\n2366 2526 1974\n2461 2535 2143\n2495 2543 2293\n2576 2576 2447\n2625 2619 2606\n2660 2581 2695\n2641 2528 2822\n2649 2490 2927\n2641 2434 3014\n2635 2411 3117\n2657 2378 3225\n2669 2313 3335\n2683 2293 3446\n2729 2272 3573\n2769 2229 3704\n2819 2212 3820\n2888 2214 3960\n2029 2514 674\n2030 2514 695\n2029 2509 721\n2045 2523 750\n2053 2523 804\n2061 2522 873\n2055 2531 960\n2083 2535 1024\n2092 2561 1144\n2121 2558 1208\n2153 2558 1333\n2173 2580 1453\n2202 2581 1573\n2255 2610 1735\n2308 2611 1876\n2357 2617 2016\n2405 2652 2165\n2470 2649 2313\n2530 2680 2450\n2588 2723 2628\n2618 2702 2749\n2591 2674 2847\n2597 2647 2956\n2599 2597 3052\n2626 2579 3146\n2623 2528 3222\n2617 2489 3345\n2639 2448 3458\n2672 2414 3585\n2712 2395 3725\n2764 2375 3826\n2825 2374 3966\n1989 2635 728\n1992 2649 772\n1998 2644 802\n2013 2663 845\n2012 2653 887\n2020 2654 942\n2021 2654 1012\n2025 2671 1100\n2061 2680 1187\n2103 2688 1284\n2126 2682 1392\n2146 2704 1511\n2190 2709 1623\n2214 2723 1754\n2257 2724 1897\n2310 2731 2036\n2357 2765 2188\n2413 2761 2312\n2477 2788 2472\n2559 2821 2630\n2565 2832 2719\n2587 2821 2870\n2565 2772 2974\n2527 2738 3050\n2539 2685 3159\n2565 2647 3259\n2574 2640 3394\n2593 2607 3511\n2600 2564 3558\n2645 2543 3721\n2709 2522 3821\n2763 2537 4013\n1973 2789 856\n1968 2774 877\n1957 2776 888\n1975 2777 911\n1981 2758 970\n2002 2784 1031\n2002 2785 1103\n2007 2785 1175\n2034 2800 1252\n2054 2805 1338\n2088 2803 1450\n2098 2830 1564\n2129 2830 1683\n2171 2838 1816\n2220 2837 1935\n2252 2841 2059\n2332 2866 2193\n2369 2875 2334\n2417 2904 2482\n2532 2945 2633\n2536 2941 2739\n2527 2937 2869\n2561 2919 2983\n2553 2860 3051\n2513 2848 3193\n2503 2789 3277\n2493 2745 3395\n2497 2727 3486\n2535 2714 3625\n2622 2703 3758\n2649 2697 3859\n2710 2686 3973\n1936 2900 927\n1930 2906 926\n1936 2902 952\n1958 2903 999\n1960 2892 1034\n1967 2914 1084\n1963 2913 1166\n1988 2916 1245\n2001 2942 1333\n2018 2918 1425\n2046 2929 1525\n2076 2924 1627\n2105 2942 1735\n2137 2955 1877\n2186 2948 1996\n2225 2959 2095\n2305 2992 2242\n2324 2986 2366\n2396 3022 2482\n2476 3035 2643\n2496 3042 2763\n2505 3047 2863\n2510 3051 2974\n2531 3009 3067\n2533 2972 3202\n2482 2939 3277\n2471 2916 3403\n2434 2880 3491\n2465 2827 3601\n2492 2823 3729\n2571 2813 3877\n2681 2868 4024\n1900 3039 1048\n1898 3034 1077\n1909 3027 1082\n1916 3026 1120\n1928 3032 1160\n1942 3040 1217\n1954 3037 1280\n1958 3042 1344\n1982 3041 1404\n2006 3045 1506\n2021 3052 1614\n2076 3050 1716\n2075 3063 1816\n2128 3062 1921\n2160 3075 2048\n2196 3077 2156\n2228 3093 2267\n2297 3112 2376\n2336 3132 2498\n2436 3137 2669\n2460 3147 2784\n2442 3147 2869\n2442 3144 2991\n2480 3152 3089\n2509 3127 3178\n2478 3097 3304\n2448 3039 3392\n2453 2996 3501\n2432 2986 3614\n2435 2959 3748\n2492 2956 3892\n2588 2963 4033\n1906 3144 1195\n1915 3154 1204\n1907 3142 1202\n1922 3157 1259\n1920 3159 1268\n1932 3160 1340\n1948 3161 1397\n1954 3158 1447\n1977 3161 1529\n1980 3164 1598\n2023 3167 1703\n2046 3178 1788\n2072 3193 1891\n2102 3186 1996\n2134 3199 2093\n2156 3196 2209\n2210 3204 2314\n2269 3227 2410\n2294 3235 2528\n2401 3251 2696\n2405 3260 2776\n2376 3248 2886\n2385 3246 2994\n2406 3246 3098\n2481 3245 3210\n2484 3228 3309\n2452 3184 3393\n2422 3153 3500\n2431 3142 3626\n2422 3104 3732\n2457 3097 3892\n2538 3103 4015\n1900 3279 1340\n1897 3276 1337\n1902 3282 1342\n1923 3283 1385\n1917 3281 1413\n1935 3286 1467\n1946 3295 1512\n1984 3285 1575\n1973 3296 1644\n2014 3289 1719\n2012 3299 1793\n2063 3303 1878\n2073 3303 1974\n2099 3310 2061\n2129 3310 2155\n2149 3308 2264\n2179 3327 2346\n2226 3329 2461\n2259 3349 2557\n2362 3349 2716\n2377 3352 2820\n2323 3349 2880\n2313 3351 2995\n2336 3355 3108\n2360 3361 3228\n2443 3360 3313\n2471 3307 3416\n2433 3286 3517\n2440 3267 3637\n2448 3248 3745\n2475 3259 3902\n2555 3273 4037\n1930 3426 1481\n1921 3422 1476\n1936 3430 1519\n1946 3431 1554\n1940 3421 1564\n1968 3434 1623\n1980 3419 1664\n1986 3422 1710\n2012 3416 1780\n2039 3435 1829\n2034 3437 1915\n2054 3429 1999\n2073 3440 2067\n2100 3432 2163\n2159 3437 2244\n2157 3442 2327\n2181 3451 2430\n2225 3466 2537\n2251 3465 2623\n2362 3460 2753\n2364 3471 2843\n2310 3479 2925\n2254 3486 2999\n2263 3474 3103\n2264 3477 3225\n2314 3479 3348\n2443 3457 3442\n2444 3438 3529\n2440 3416 3663\n2420 3409 3760\n2481 3398 3904\n2565 3414 4023\n1999 3544 1690\n2006 3548 1695\n2003 3563 1714\n2018 3564 1730\n2021 3562 1763\n2029 3550 1798\n2038 3560 1837\n2043 3564 1872\n2076 3557 1947\n2078 3562 1987\n2119 3559 2053\n2112 3575 2110\n2145 3573 2194\n2145 3569 2270\n2178 3566 2316\n2177 3577 2400\n2216 3581 2493\n2232 3581 2601\n2252 3592 2649\n2369 3591 2793\n2387 3591 2891\n2302 3592 2942\n2203 3589 3026\n2190 3589 3137\n2222 3615 3242\n2217 3592 3350\n2284 3601 3463\n2410 3584 3553\n2432 3569 3691\n2433 3532 3781\n2475 3557 3909\n2593 3589 4068\n2096 3703 1907\n2087 3693 1908\n2102 3699 1936\n2118 3695 1951\n2110 3689 1953\n2119 3679 1975\n2141 3701 2027\n2153 3697 2063\n2149 3715 2111\n2171 3684 2151\n2178 3689 2210\n2203 3695 2281\n2201 3696 2335\n2237 3701 2390\n2227 3705 2441\n2236 3706 2516\n2262 3724 2594\n2282 3702 2643\n2275 3721 2746\n2398 3702 2869\n2413 3721 2956\n2288 3712 2981\n2189 3731 3055\n2140 3718 3155\n2163 3735 3273\n2138 3725 3385\n2179 3721 3492\n2264 3747 3628\n2414 3684 3687\n2463 3687 3792\n2495 3684 3911\n2629 3730 4084\n2262 3826 2142\n2263 3827 2154\n2248 3829 2149\n2267 3843 2190\n2253 3830 2188\n2261 3835 2201\n2269 3836 2232\n2272 3835 2291\n2301 3852 2317\n2294 3837 2346\n2313 3841 2410\n2314 3836 2445\n2329 3842 2497\n2339 3827 2538\n2329 3838 2582\n2359 3849 2654\n2359 3852 2715\n2359 3848 2787\n2360 3861 2843\n2462 3842 2950\n2457 3852 3047\n2364 3868 3096\n2250 3866 3120\n2116 3883 3200\n2122 3880 3316\n2126 3868 3408\n2115 3870 3531\n2206 3884 3655\n2284 3910 3755\n2457 3816 3824\n2532 3835 3954\n2671 3874 4088\n2454 3983 2447\n2445 3973 2438\n2463 3975 2447\n2458 3973 2467\n2457 3969 2481\n2471 3976 2494\n2484 3976 2515\n2471 3983 2535\n2489 3988 2563\n2482 3984 2575\n2487 3976 2605\n2509 3992 2651\n2513 3979 2688\n2509 3989 2740\n2483 3985 2769\n2494 3997 2814\n2515 3999 2862\n2528 3996 2923\n2528 4023 2992\n2603 4005 3077\n2617 3999 3152\n2509 4005 3180\n2347 4019 3228\n2171 4055 3287\n2133 4048 3387\n2131 4047 3492\n2141 4047 3599\n2141 4051 3705\n2254 4061 3817\n2363 4046 3906\n2549 3972 3991\n2743 4015 4079\n1953 375 364\n1958 396 354\n1980 434 349\n1982 435 412\n2001 448 468\n2001 457 509\n1985 456 577\n1975 469 612\n1990 439 694\n2000 389 738\n2077 231 787\n2120 236 928\n2179 236 1060\n2235 269 1199\n2272 276 1346\n2368 279 1525\n2378 238 1633\n2399 190 1770\n2415 136 1868\n2420 72 1995\n2509 6 2139\n2595 0 2350\n2689 11 2504\n2749 10 2629\n2828 4 2803\n2896 10 2965\n2975 3 3095\n3062 0 3241\n3131 0 3433\n3218 15 3576\n3290 10 3734\n3393 0 3870\n1958 402 358\n1964 418 357\n1980 435 329\n2006 451 409\n1996 474 460\n1999 463 510\n1998 469 575\n2005 473 621\n2006 480 711\n1999 432 758\n2076 279 817\n2119 286 939\n2184 285 1069\n2238 301 1214\n2304 308 1375\n2347 323 1519\n2393 290 1646\n2395 239 1740\n2421 196 1878\n2431 143 2004\n2503 16 2150\n2596 10 2331\n2677 0 2492\n2764 5 2635\n2831 4 2803\n2891 13 2967\n2965 12 3095\n3038 6 3249\n3123 0 3404\n3208 15 3586\n3291 10 3728\n3377 10 3892\n1975 440 350\n1985 451 332\n1996 478 337\n2003 489 399\n2001 497 462\n2001 487 522\n2010 501 577\n2018 511 647\n2018 483 705\n2015 472 764\n2091 328 801\n2118 324 918\n2180 344 1063\n2251 344 1215\n2300 366 1362\n2365 365 1531\n2378 353 1641\n2404 297 1750\n2418 269 1883\n2434 210 1983\n2514 57 2159\n2610 1 2338\n2697 1 2504\n2738 3 2623\n2840 9 2823\n2918 1 2942\n2975 6 3088\n3038 2 3243\n3126 0 3398\n3202 19 3570\n3280 0 3717\n3376 10 3892\n1999 472 350\n1998 485 336\n1990 507 349\n2002 508 399\n2018 531 465\n2024 538 511\n2030 537 592\n2032 547 653\n2028 539 731\n2034 515 799\n2077 407 813\n2126 373 927\n2184 393 1079\n2246 396 1217\n2303 428 1376\n2375 448 1547\n2391 405 1649\n2423 380 1773\n2428 338 1917\n2467 296 2031\n2531 169 2179\n2617 10 2350\n2696 10 2503\n2765 4 2659\n2836 4 2813\n2889 3 2952\n2984 0 3098\n3053 9 3282\n3125 1 3425\n3203 20 3571\n3277 0 3720\n3354 1 3895\n2015 544 305\n2013 554 313\n2019 536 373\n2021 566 395\n2033 574 448\n2051 570 539\n2048 567 589\n2044 584 645\n2048 578 730\n2074 575 821\n2066 499 846\n2138 422 931\n2193 443 1098\n2239 461 1218\n2315 489 1407\n2365 512 1565\n2401 496 1675\n2416 471 1771\n2447 436 1901\n2464 388 2023\n2544 298 2204\n2621 126 2366\n2720 12 2536\n2775 10 2697\n2848 16 2826\n2897 16 2971\n2990 11 3124\n3038 2 3271\n3136 10 3435\n3209 9 3592\n3280 0 3727\n3377 2 3914\n2051 607 302\n2065 626 343\n2057 617 369\n2036 624 430\n2046 618 472\n2067 637 522\n2063 639 587\n2079 644 660\n2070 631 745\n2094 646 832\n2083 608 880\n2144 493 935\n2202 525 1090\n2259 535 1244\n2318 568 1386\n2391 592 1546\n2410 594 1696\n2438 565 1819\n2447 529 1932\n2473 496 2052\n2562 415 2206\n2641 313 2373\n2705 180 2531\n2781 47 2671\n2847 6 2846\n2923 0 2977\n2987 0 3125\n3065 3 3285\n3144 8 3433\n3213 5 3586\n3277 3 3726\n3348 3 3905\n2091 678 295\n2080 672 363\n2077 681 379\n2086 689 398\n2083 689 462\n2094 704 537\n2100 706 595\n2097 700 663\n2119 704 741\n2125 717 840\n2113 700 908\n2168 594 957\n2235 601 1105\n2283 612 1246\n2329 665 1407\n2407 688 1588\n2446 687 1705\n2462 665 1838\n2481 639 1931\n2489 635 2083\n2585 538 2233\n2644 465 2395\n2734 377 2546\n2785 300 2708\n2853 202 2842\n2913 79 2999\n2967 17 3130\n3068 3 3300\n3123 0 3441\n3216 0 3595\n3273 0 3751\n3350 16 3918\n2108 766 318\n2134 772 366\n2120 762 412\n2127 774 431\n2134 767 476\n2143 779 541\n2142 792 613\n2158 794 659\n2148 788 750\n2151 795 848\n2162 771 931\n2152 743 971\n2250 694 1093\n2286 723 1249\n2338 766 1419\n2407 799 1600\n2462 803 1742\n2467 782 1848\n2523 760 1958\n2509 750 2091\n2597 685 2245\n2678 619 2419\n2758 551 2573\n2797 499 2700\n2874 433 2864\n2934 362 3001\n2991 281 3157\n3052 131 3278\n3134 29 3442\n3199 7 3597\n3263 7 3740\n3352 12 3901\n2161 864 335\n2162 875 374\n2171 859 406\n2153 875 439\n2170 873 490\n2159 871 566\n2163 868 610\n2175 881 691\n2181 884 765\n2192 880 870\n2191 869 949\n2182 884 1024\n2225 801 1097\n2286 810 1262\n2357 855 1427\n2416 889 1605\n2479 928 1770\n2507 901 1878\n2519 879 1985\n2562 874 2127\n2624 825 2286\n2689 756 2443\n2735 722 2575\n2803 675 2727\n2866 634 2872\n2923 584 2991\n2990 528 3148\n3033 441 3292\n3124 345 3444\n3192 237 3591\n3247 171 3764\n3329 160 3883\n2203 966 332\n2201 983 366\n2202 986 401\n2203 982 468\n2220 986 505\n2216 978 570\n2213 978 628\n2222 984 708\n2208 983 779\n2235 989 892\n2234 983 968\n2236 998 1083\n2207 978 1168\n2318 932 1272\n2379 958 1436\n2445 1009 1626\n2507 1051 1802\n2514 1048 1932\n2544 1026 2031\n2582 1005 2153\n2642 971 2304\n2708 916 2472\n2760 880 2592\n2808 851 2757\n2866 813 2884\n2916 768 3020\n2971 716 3154\n3040 660 3316\n3110 599 3455\n3174 537 3587\n3246 498 3739\n3317 508 3891\n2258 1097 332\n2258 1102 378\n2257 1101 420\n2262 1093 474\n2274 1094 524\n2263 1104 589\n2265 1100 656\n2282 1102 732\n2275 1109 811\n2301 1108 903\n2278 1107 969\n2274 1108 1098\n2291 1102 1204\n2307 1053 1279\n2390 1083 1445\n2461 1129 1645\n2515 1190 1832\n2543 1202 1969\n2568 1177 2054\n2599 1140 2212\n2669 1108 2337\n2719 1070 2485\n2787 1026 2631\n2814 1007 2769\n2870 971 2896\n2929 947 3043\n2976 898 3172\n3037 849 3316\n3101 804 3466\n3160 754 3607\n3226 727 3745\n3302 732 3902\n2301 1239 344\n2316 1242 365\n2307 1234 404\n2322 1243 448\n2324 1233 514\n2321 1233 573\n2320 1230 653\n2326 1233 739\n2341 1234 815\n2352 1238 928\n2337 1217 1027\n2348 1221 1125\n2311 1239 1245\n2335 1248 1339\n2407 1205 1479\n2462 1259 1664\n2532 1316 1843\n2572 1341 1989\n2580 1312 2104\n2609 1298 2231\n2685 1254 2375\n2729 1227 2518\n2778 1202 2648\n2824 1163 2781\n2871 1139 2927\n2919 1105 3056\n2964 1062 3182\n3024 1030 3331\n3073 978 3490\n3149 940 3594\n3215 932 3775\n3285 922 3907\n2318 1374 371\n2318 1379 377\n2324 1370 406\n2329 1389 473\n2340 1370 520\n2355 1370 590\n2393 1386 664\n2396 1386 757\n2394 1388 857\n2399 1385 931\n2393 1379 1033\n2411 1374 1171\n2376 1396 1263\n2379 1387 1390\n2380 1376 1492\n2479 1398 1668\n2549 1468 1866\n2608 1510 2041\n2607 1486 2159\n2643 1467 2260\n2713 1423 2399\n2750 1396 2547\n2809 1370 2679\n2819 1336 2812\n2880 1318 2945\n2926 1274 3067\n2969 1239 3210\n3030 1184 3338\n3061 1145 3489\n3130 1122 3643\n3192 1113 3767\n3264 1112 3913\n2322 1527 368\n2313 1534 411\n2329 1533 428\n2334 1534 476\n2354 1541 542\n2368 1536 602\n2382 1537 668\n2409 1537 766\n2434 1543 851\n2464 1536 963\n2461 1532 1075\n2464 1534 1196\n2466 1548 1321\n2454 1543 1446\n2441 1559 1558\n2480 1527 1681\n2544 1582 1874\n2622 1655 2074\n2637 1640 2185\n2666 1633 2313\n2711 1601 2451\n2771 1553 2583\n2821 1523 2713\n2845 1514 2827\n2871 1477 2970\n2897 1438 3071\n2939 1395 3216\n3005 1352 3358\n3067 1314 3501\n3104 1289 3644\n3161 1273 3785\n3241 1265 3922\n2312 1674 356\n2313 1681 383\n2329 1687 423\n2342 1697 489\n2333 1693 532\n2352 1697 618\n2377 1697 697\n2402 1710 792\n2431 1706 886\n2445 1711 1007\n2498 1714 1115\n2519 1724 1233\n2536 1703 1363\n2519 1719 1480\n2506 1706 1603\n2491 1722 1721\n2567 1734 1881\n2624 1797 2079\n2647 1829 2239\n2688 1797 2359\n2724 1754 2480\n2771 1726 2617\n2817 1703 2740\n2836 1667 2857\n2862 1652 2975\n2907 1601 3103\n2935 1551 3227\n2988 1507 3371\n3038 1472 3503\n3087 1444 3649\n3166 1427 3796\n3225 1425 3940\n2290 1853 361\n2320 1853 385\n2319 1859 424\n2347 1853 471\n2343 1854 531\n2370 1856 610\n2388 1856 695\n2421 1870 792\n2438 1877 890\n2463 1874 1004\n2479 1880 1121\n2531 1891 1252\n2570 1881 1393\n2577 1890 1529\n2568 1883 1654\n2562 1883 1779\n2541 1885 1904\n2612 1930 2083\n2672 1988 2294\n2685 1960 2396\n2724 1931 2528\n2765 1904 2653\n2823 1871 2755\n2824 1837 2888\n2853 1797 2993\n2887 1763 3124\n2911 1717 3263\n2968 1680 3394\n2995 1626 3509\n3044 1603 3657\n3116 1588 3776\n3193 1575 3948\n2314 2009 370\n2323 2014 407\n2324 2019 435\n2327 2019 494\n2354 2019 568\n2363 2022 624\n2381 2041 706\n2392 2035 808\n2430 2041 898\n2455 2045 1004\n2475 2054 1151\n2515 2058 1257\n2560 2047 1420\n2586 2063 1557\n2630 2066 1720\n2633 2064 1867\n2609 2071 1956\n2603 2058 2114\n2662 2128 2309\n2695 2144 2429\n2763 2127 2565\n2755 2072 2685\n2809 2048 2801\n2816 2007 2907\n2837 1954 3011\n2862 1912 3149\n2909 1883 3277\n2941 1831 3398\n2986 1816 3549\n3003 1764 3666\n3080 1732 3820\n3149 1740 3977\n2282 2148 384\n2275 2143 425\n2293 2150 453\n2302 2157 519\n2317 2163 573\n2339 2165 660\n2366 2181 748\n2377 2176 839\n2414 2203 932\n2444 2203 1045\n2476 2203 1171\n2498 2210 1297\n2546 2220 1429\n2589 2226 1572\n2602 2227 1727\n2655 2219 1892\n2666 2234 2037\n2665 2231 2175\n2667 2260 2326\n2732 2307 2489\n2793 2276 2618\n2779 2245 2718\n2798 2211 2823\n2799 2168 2937\n2832 2138 3028\n2857 2100 3166\n2886 2063 3287\n2891 2007 3410\n2943 1961 3545\n2971 1933 3670\n3047 1903 3819\n3127 1894 3956\n2227 2252 495\n2227 2248 528\n2244 2263 576\n2244 2256 604\n2251 2271 647\n2274 2270 706\n2282 2274 782\n2311 2281 866\n2347 2291 967\n2366 2302 1087\n2400 2324 1191\n2459 2358 1310\n2507 2388 1468\n2552 2381 1609\n2590 2392 1761\n2636 2389 1917\n2659 2413 2073\n2722 2411 2257\n2685 2438 2390\n2751 2462 2522\n2775 2450 2647\n2782 2393 2750\n2786 2367 2842\n2811 2322 2971\n2826 2282 3091\n2822 2250 3172\n2856 2208 3307\n2877 2162 3424\n2924 2135 3555\n2936 2082 3678\n3003 2066 3820\n3051 2077 3959\n2204 2384 537\n2223 2393 607\n2217 2386 620\n2211 2395 685\n2226 2400 720\n2229 2394 768\n2249 2406 858\n2278 2420 953\n2320 2417 1055\n2332 2433 1158\n2355 2453 1261\n2415 2453 1380\n2429 2482 1508\n2489 2477 1620\n2528 2510 1765\n2576 2529 1923\n2626 2535 2093\n2680 2537 2276\n2761 2570 2453\n2749 2566 2561\n2781 2582 2691\n2782 2564 2784\n2816 2521 2905\n2806 2495 2988\n2803 2453 3101\n2825 2393 3209\n2833 2349 3326\n2853 2314 3444\n2883 2282 3570\n2910 2245 3694\n2969 2244 3841\n3003 2228 3961\n2193 2531 625\n2198 2546 653\n2194 2525 650\n2190 2543 711\n2205 2541 780\n2239 2545 830\n2233 2547 899\n2263 2554 1007\n2279 2567 1120\n2296 2568 1214\n2343 2573 1304\n2376 2584 1451\n2390 2595 1578\n2443 2620 1706\n2465 2618 1831\n2525 2630 2001\n2565 2627 2136\n2625 2669 2304\n2663 2684 2456\n2732 2723 2622\n2830 2745 2771\n2793 2712 2858\n2807 2674 2944\n2786 2634 3028\n2814 2589 3146\n2804 2537 3237\n2820 2516 3349\n2807 2475 3467\n2856 2430 3612\n2869 2415 3674\n2916 2386 3810\n2981 2375 3950\n2161 2650 723\n2176 2675 728\n2162 2656 764\n2177 2661 809\n2191 2666 856\n2195 2664 913\n2191 2667 989\n2228 2680 1060\n2256 2693 1175\n2284 2687 1260\n2288 2693 1354\n2315 2704 1494\n2360 2731 1622\n2391 2722 1747\n2419 2743 1869\n2467 2731 2015\n2512 2755 2173\n2565 2779 2319\n2607 2799 2472\n2692 2806 2603\n2761 2842 2745\n2786 2853 2880\n2765 2805 2983\n2755 2770 3063\n2771 2728 3155\n2776 2705 3272\n2776 2653 3351\n2778 2620 3481\n2805 2579 3593\n2842 2555 3731\n2883 2544 3810\n2932 2543 3956\n2133 2786 804\n2138 2792 811\n2136 2787 838\n2142 2779 887\n2158 2793 951\n2173 2794 1001\n2172 2803 1074\n2192 2814 1147\n2211 2808 1245\n2224 2818 1326\n2248 2813 1436\n2279 2828 1550\n2315 2837 1669\n2347 2830 1808\n2373 2851 1934\n2420 2858 2068\n2480 2863 2205\n2524 2884 2357\n2563 2903 2468\n2637 2916 2617\n2737 2941 2778\n2743 2951 2854\n2763 2947 2979\n2742 2898 3066\n2718 2849 3189\n2709 2795 3278\n2726 2791 3389\n2732 2767 3502\n2761 2723 3588\n2771 2698 3704\n2821 2690 3841\n2876 2690 3985\n2095 2915 878\n2115 2923 917\n2111 2921 925\n2113 2922 960\n2133 2926 1038\n2136 2929 1081\n2148 2925 1143\n2162 2926 1215\n2188 2934 1320\n2196 2936 1386\n2237 2942 1506\n2243 2954 1614\n2275 2942 1761\n2318 2954 1864\n2331 2950 1976\n2360 2975 2108\n2411 2995 2242\n2478 3001 2362\n2539 3011 2491\n2599 3023 2648\n2678 3049 2771\n2693 3066 2892\n2707 3062 3015\n2724 3036 3110\n2692 3010 3195\n2678 2945 3308\n2622 2927 3380\n2653 2882 3488\n2662 2866 3602\n2716 2852 3736\n2783 2854 3871\n2840 2834 4009\n2121 3033 1026\n2123 3042 1042\n2117 3032 1066\n2136 3033 1109\n2126 3047 1131\n2148 3045 1195\n2129 3042 1253\n2156 3051 1345\n2179 3039 1415\n2190 3050 1501\n2205 3054 1578\n2213 3072 1686\n2237 3073 1788\n2282 3069 1911\n2309 3072 2019\n2345 3088 2149\n2392 3091 2267\n2448 3108 2383\n2493 3125 2519\n2553 3139 2639\n2633 3159 2784\n2647 3151 2906\n2656 3148 2983\n2672 3166 3123\n2681 3147 3213\n2647 3098 3316\n2642 3069 3416\n2635 3017 3512\n2605 2997 3597\n2635 2968 3735\n2689 2963 3849\n2772 2990 3993\n2094 3165 1167\n2095 3162 1194\n2092 3171 1182\n2107 3173 1213\n2113 3167 1246\n2116 3170 1301\n2118 3177 1348\n2144 3171 1428\n2163 3178 1509\n2179 3176 1603\n2198 3178 1671\n2216 3178 1779\n2245 3196 1880\n2268 3193 1987\n2297 3196 2097\n2338 3188 2206\n2358 3224 2332\n2414 3215 2435\n2470 3240 2553\n2515 3244 2667\n2591 3261 2805\n2622 3261 2914\n2581 3252 2989\n2572 3274 3109\n2623 3277 3258\n2633 3235 3334\n2611 3197 3425\n2597 3166 3501\n2614 3131 3634\n2597 3117 3756\n2608 3098 3873\n2694 3118 4054\n2094 3295 1296\n2088 3289 1317\n2092 3293 1328\n2095 3295 1368\n2103 3304 1409\n2120 3292 1488\n2125 3284 1504\n2166 3295 1572\n2176 3288 1630\n2191 3300 1696\n2180 3311 1788\n2211 3309 1878\n2250 3314 1983\n2279 3306 2078\n2303 3300 2161\n2324 3317 2258\n2351 3325 2367\n2393 3335 2466\n2433 3345 2589\n2483 3345 2683\n2551 3369 2804\n2562 3375 2905\n2553 3361 2996\n2514 3365 3117\n2529 3364 3218\n2611 3365 3334\n2629 3337 3463\n2595 3313 3527\n2593 3279 3642\n2608 3271 3767\n2610 3247 3884\n2676 3282 4026\n2113 3426 1497\n2121 3409 1504\n2135 3421 1512\n2137 3419 1544\n2143 3414 1596\n2159 3403 1627\n2157 3416 1677\n2167 3423 1729\n2192 3428 1789\n2192 3418 1850\n2209 3428 1940\n2243 3448 1990\n2262 3442 2082\n2296 3434 2159\n2293 3435 2253\n2331 3443 2339\n2374 3456 2425\n2378 3446 2503\n2421 3474 2611\n2446 3467 2699\n2546 3477 2839\n2561 3489 2946\n2453 3481 2978\n2465 3499 3115\n2461 3480 3231\n2493 3480 3342\n2618 3457 3472\n2616 3444 3561\n2561 3425 3655\n2604 3411 3787\n2636 3405 3900\n2707 3440 4067\n2168 3557 1683\n2176 3569 1694\n2157 3569 1722\n2160 3569 1723\n2178 3569 1788\n2199 3565 1794\n2199 3562 1833\n2213 3563 1889\n2227 3565 1941\n2264 3553 1984\n2266 3563 2060\n2291 3558 2115\n2304 3580 2215\n2317 3574 2262\n2322 3566 2344\n2347 3580 2412\n2385 3581 2489\n2394 3582 2561\n2427 3587 2673\n2412 3601 2745\n2540 3598 2872\n2526 3603 2986\n2453 3583 3040\n2402 3615 3131\n2403 3595 3254\n2413 3604 3332\n2448 3602 3474\n2562 3574 3562\n2607 3568 3694\n2591 3554 3786\n2623 3568 3931\n2722 3585 4088\n2260 3694 1899\n2262 3685 1913\n2271 3703 1942\n2257 3675 1958\n2282 3700 1989\n2282 3697 2013\n2278 3695 2037\n2306 3701 2093\n2334 3682 2125\n2314 3705 2157\n2330 3705 2231\n2359 3689 2269\n2368 3705 2336\n2374 3695 2384\n2389 3710 2446\n2401 3708 2508\n2428 3719 2599\n2430 3714 2657\n2430 3731 2734\n2454 3726 2826\n2546 3732 2959\n2550 3733 3042\n2457 3721 3093\n2357 3727 3167\n2349 3726 3264\n2360 3723 3382\n2365 3734 3475\n2428 3726 3625\n2567 3712 3696\n2583 3694 3808\n2627 3700 3933\n2753 3737 4084\n2394 3831 2164\n2404 3830 2164\n2406 3831 2199\n2417 3835 2209\n2418 3839 2213\n2410 3846 2218\n2411 3846 2246\n2436 3857 2308\n2440 3852 2327\n2432 3835 2378\n2458 3831 2422\n2474 3831 2453\n2471 3845 2504\n2492 3846 2555\n2472 3837 2586\n2504 3855 2649\n2514 3852 2725\n2511 3862 2770\n2500 3863 2831\n2502 3853 2903\n2604 3863 3049\n2616 3867 3111\n2478 3848 3143\n2390 3877 3209\n2301 3876 3278\n2316 3881 3413\n2298 3891 3523\n2347 3885 3627\n2432 3884 3775\n2586 3851 3855\n2632 3846 3953\n2792 3889 4095\n2568 3983 2419\n2574 3973 2436\n2589 3977 2457\n2579 3970 2448\n2595 3987 2469\n2592 3985 2468\n2586 3996 2523\n2611 3995 2550\n2609 3993 2592\n2611 3983 2596\n2622 3994 2650\n2634 3978 2655\n2643 3992 2721\n2637 3990 2745\n2630 4002 2771\n2651 4015 2839\n2635 4007 2905\n2629 3997 2940\n2646 3995 2995\n2637 4009 3046\n2712 3999 3152\n2717 4010 3249\n2606 3993 3267\n2472 4039 3316\n2309 4041 3367\n2303 4047 3459\n2319 4041 3557\n2342 4057 3684\n2412 4044 3830\n2475 4057 3945\n2663 3984 3993\n2820 4020 4095\n2078 364 369\n2088 412 348\n2114 419 329\n2099 434 371\n2101 438 431\n2123 447 487\n2120 455 546\n2136 467 628\n2126 440 667\n2124 418 738\n2163 243 760\n2233 154 879\n2287 160 1032\n2333 169 1147\n2403 181 1328\n2486 197 1510\n2528 190 1650\n2544 130 1773\n2553 67 1873\n2581 16 2015\n2602 10 2124\n2699 11 2308\n2790 5 2476\n2883 0 2632\n2957 1 2812\n3026 11 2945\n3081 0 3105\n3171 14 3237\n3254 0 3389\n3315 0 3569\n3404 5 3723\n3496 5 3859\n2078 402 338\n2125 419 363\n2110 445 313\n2109 460 356\n2121 457 419\n2115 467 492\n2129 471 559\n2149 485 610\n2120 478 688\n2136 434 750\n2183 309 787\n2239 193 875\n2303 215 1021\n2352 221 1185\n2414 233 1338\n2491 258 1490\n2533 252 1662\n2552 197 1764\n2576 137 1883\n2596 61 2011\n2603 21 2125\n2710 0 2308\n2801 10 2504\n2886 5 2635\n2944 0 2785\n3024 16 2948\n3077 0 3105\n3168 11 3255\n3252 1 3408\n3325 10 3577\n3399 0 3697\n3495 5 3880\n2095 446 338\n2110 463 321\n2115 488 327\n2131 483 377\n2125 496 437\n2134 491 514\n2148 505 560\n2137 509 641\n2140 499 689\n2145 478 747\n2179 375 798\n2254 258 886\n2283 258 1031\n2336 275 1168\n2419 291 1328\n2489 314 1505\n2549 327 1681\n2563 266 1785\n2586 206 1911\n2607 137 2025\n2625 57 2141\n2715 5 2314\n2812 5 2509\n2904 10 2644\n2966 1 2820\n3031 12 2945\n3103 0 3102\n3157 0 3244\n3232 10 3414\n3315 14 3571\n3398 1 3696\n3496 5 3881\n2115 469 293\n2125 511 290\n2131 516 327\n2144 525 374\n2124 533 438\n2139 532 481\n2146 529 567\n2170 545 628\n2156 552 699\n2152 528 771\n2177 461 817\n2247 309 894\n2302 320 1043\n2363 335 1172\n2424 354 1335\n2499 378 1503\n2550 404 1670\n2588 356 1793\n2594 306 1911\n2609 253 2032\n2633 178 2171\n2711 12 2315\n2817 0 2509\n2903 0 2667\n2955 11 2799\n3021 4 2963\n3087 3 3105\n3160 1 3255\n3262 14 3424\n3317 14 3569\n3399 0 3727\n3472 14 3881\n2147 538 308\n2144 564 307\n2161 550 327\n2160 575 376\n2165 575 424\n2168 581 487\n2174 583 554\n2180 595 630\n2179 582 718\n2178 571 770\n2187 541 856\n2242 396 900\n2307 385 1036\n2386 402 1188\n2438 429 1359\n2496 455 1519\n2558 477 1683\n2576 438 1804\n2610 406 1922\n2626 371 2051\n2648 302 2174\n2743 140 2342\n2819 2 2508\n2900 10 2678\n2961 5 2826\n3027 2 2969\n3108 5 3110\n3173 14 3268\n3248 2 3411\n3307 0 3563\n3395 13 3706\n3473 9 3886\n2176 608 276\n2182 624 320\n2169 600 341\n2169 632 380\n2171 618 446\n2187 637 497\n2203 639 562\n2221 647 673\n2214 645 720\n2205 636 797\n2200 626 871\n2255 509 914\n2303 464 1016\n2376 495 1196\n2432 530 1356\n2519 567 1534\n2557 580 1696\n2593 555 1822\n2619 520 1936\n2648 481 2080\n2667 431 2183\n2747 323 2351\n2837 174 2514\n2907 32 2676\n2966 4 2829\n3040 0 2956\n3113 3 3121\n3170 11 3262\n3245 3 3409\n3315 1 3570\n3396 3 3719\n3467 13 3889\n2209 697 281\n2210 694 319\n2209 692 359\n2221 690 387\n2231 697 445\n2234 713 524\n2228 700 584\n2243 700 654\n2241 716 730\n2236 705 823\n2232 698 876\n2255 653 965\n2342 538 1050\n2397 596 1200\n2453 621 1372\n2510 661 1539\n2592 689 1709\n2601 664 1836\n2634 636 1955\n2651 606 2097\n2683 565 2227\n2763 492 2386\n2847 397 2526\n2927 298 2717\n2975 178 2852\n3030 49 2988\n3090 15 3135\n3179 3 3286\n3252 0 3432\n3323 8 3583\n3399 0 3750\n3461 8 3883\n2251 771 310\n2251 762 323\n2265 777 371\n2267 776 410\n2250 773 450\n2251 778 509\n2259 782 584\n2272 794 660\n2281 793 738\n2276 793 817\n2266 783 913\n2265 767 989\n2337 664 1037\n2394 686 1199\n2460 717 1371\n2529 754 1550\n2601 802 1738\n2636 793 1875\n2661 764 1979\n2684 748 2106\n2685 705 2218\n2808 635 2403\n2857 566 2560\n2919 500 2706\n2980 431 2840\n3048 362 3003\n3110 280 3135\n3187 177 3286\n3236 61 3424\n3313 26 3600\n3384 27 3729\n3474 18 3924\n2280 864 306\n2298 881 353\n2294 877 358\n2300 868 422\n2302 868 451\n2309 890 539\n2297 889 594\n2293 880 659\n2301 880 742\n2313 880 842\n2325 873 924\n2320 878 1006\n2340 830 1093\n2420 795 1231\n2479 815 1374\n2540 856 1549\n2611 910 1743\n2654 927 1898\n2682 900 2012\n2704 873 2132\n2731 851 2276\n2797 781 2410\n2865 737 2580\n2920 682 2720\n2995 639 2859\n3041 593 2997\n3109 544 3156\n3167 484 3287\n3255 411 3439\n3317 329 3590\n3378 285 3758\n3452 294 3896\n2339 977 288\n2350 988 313\n2332 986 352\n2338 982 414\n2340 984 472\n2352 980 538\n2359 972 612\n2348 986 661\n2349 989 760\n2345 982 838\n2355 977 941\n2346 1003 1028\n2357 985 1135\n2415 897 1211\n2489 936 1388\n2560 979 1579\n2630 1029 1767\n2677 1062 1935\n2688 1041 2044\n2723 1014 2168\n2751 987 2289\n2811 928 2446\n2893 896 2605\n2947 845 2750\n2991 814 2869\n3055 780 3025\n3103 743 3156\n3167 698 3304\n3234 647 3430\n3306 587 3591\n3372 569 3742\n3437 590 3896\n2382 1097 300\n2379 1107 327\n2380 1107 370\n2393 1102 419\n2403 1113 484\n2399 1097 540\n2396 1097 609\n2406 1093 683\n2400 1107 772\n2414 1092 853\n2425 1118 952\n2409 1107 1050\n2396 1102 1163\n2420 1072 1267\n2504 1050 1404\n2559 1088 1575\n2644 1156 1784\n2704 1202 1965\n2725 1198 2075\n2741 1161 2203\n2768 1140 2322\n2833 1091 2463\n2903 1049 2616\n2942 1010 2759\n3001 982 2905\n3054 955 3028\n3113 925 3185\n3168 882 3313\n3235 836 3459\n3287 809 3588\n3351 807 3740\n3443 802 3897\n2452 1233 310\n2427 1248 328\n2443 1238 382\n2444 1233 423\n2441 1242 482\n2445 1246 553\n2448 1233 617\n2460 1231 710\n2460 1226 780\n2460 1233 876\n2469 1227 985\n2437 1228 1093\n2468 1233 1213\n2474 1242 1297\n2504 1181 1408\n2584 1218 1588\n2651 1289 1787\n2725 1335 1990\n2746 1345 2126\n2766 1326 2234\n2780 1297 2349\n2854 1254 2501\n2907 1222 2637\n2954 1173 2765\n3006 1163 2926\n3063 1124 3062\n3119 1093 3183\n3162 1065 3319\n3203 1026 3473\n3271 983 3603\n3347 975 3766\n3389 981 3897\n2458 1392 312\n2471 1390 337\n2471 1385 377\n2482 1391 427\n2493 1390 493\n2528 1393 572\n2533 1382 647\n2532 1384 730\n2535 1380 827\n2529 1396 901\n2537 1384 1012\n2525 1380 1142\n2525 1384 1247\n2519 1371 1367\n2518 1378 1466\n2585 1355 1605\n2641 1414 1797\n2712 1484 1992\n2767 1512 2157\n2775 1484 2280\n2800 1456 2400\n2878 1417 2539\n2924 1391 2679\n2967 1357 2810\n3011 1320 2935\n3055 1295 3064\n3098 1269 3207\n3140 1229 3333\n3194 1187 3479\n3255 1162 3613\n3324 1158 3757\n3395 1156 3901\n2474 1543 304\n2479 1548 332\n2484 1541 387\n2501 1543 427\n2502 1544 480\n2521 1547 544\n2536 1546 629\n2563 1529 725\n2582 1534 821\n2599 1534 939\n2597 1535 1053\n2605 1542 1180\n2580 1523 1274\n2597 1532 1394\n2578 1534 1520\n2592 1528 1658\n2655 1545 1821\n2736 1621 2031\n2799 1670 2210\n2790 1655 2305\n2811 1614 2417\n2893 1586 2578\n2937 1547 2702\n2963 1506 2812\n3005 1499 2954\n3044 1466 3076\n3096 1428 3217\n3137 1384 3339\n3185 1356 3491\n3227 1315 3622\n3302 1311 3778\n3368 1317 3928\n2479 1701 301\n2480 1704 334\n2490 1701 374\n2490 1695 413\n2501 1692 490\n2523 1700 575\n2537 1701 648\n2578 1706 735\n2597 1706 847\n2626 1719 963\n2652 1708 1089\n2668 1708 1203\n2646 1703 1321\n2653 1704 1435\n2649 1687 1565\n2624 1693 1692\n2664 1676 1827\n2743 1754 2031\n2803 1822 2241\n2805 1808 2347\n2817 1803 2474\n2890 1747 2597\n2934 1726 2737\n2971 1701 2872\n3000 1662 2962\n3030 1622 3096\n3069 1592 3231\n3131 1549 3358\n3161 1506 3487\n3211 1485 3632\n3292 1479 3772\n3350 1468 3918\n2485 1877 284\n2495 1864 338\n2491 1860 386\n2513 1863 434\n2526 1859 511\n2535 1859 588\n2552 1870 665\n2572 1865 759\n2596 1873 860\n2612 1874 966\n2647 1878 1101\n2689 1875 1220\n2710 1864 1351\n2701 1854 1491\n2709 1861 1631\n2707 1859 1754\n2669 1853 1869\n2721 1889 2035\n2799 1969 2261\n2840 1992 2402\n2848 1963 2519\n2892 1922 2641\n2933 1896 2763\n2968 1860 2875\n2999 1828 3012\n3037 1789 3134\n3055 1754 3246\n3101 1703 3362\n3143 1673 3488\n3198 1644 3654\n3251 1634 3792\n3310 1627 3929\n2466 2009 291\n2480 2017 340\n2493 2019 385\n2497 2018 436\n2520 2030 529\n2514 2014 586\n2541 2025 667\n2556 2033 763\n2588 2036 880\n2620 2043 1000\n2629 2049 1118\n2676 2046 1232\n2713 2040 1385\n2753 2057 1534\n2768 2039 1676\n2764 2041 1802\n2734 2033 1915\n2707 2039 2064\n2787 2087 2250\n2848 2145 2437\n2849 2146 2549\n2910 2097 2667\n2927 2061 2796\n2959 2032 2907\n2981 1998 3016\n3006 1956 3135\n3031 1907 3246\n3074 1867 3382\n3113 1836 3506\n3144 1788 3644\n3220 1783 3796\n3279 1789 3950\n2474 2166 310\n2488 2172 358\n2505 2186 404\n2502 2171 456\n2522 2180 535\n2520 2174 605\n2552 2185 711\n2549 2189 791\n2577 2196 896\n2602 2212 1019\n2638 2201 1138\n2672 2203 1254\n2702 2211 1396\n2729 2207 1536\n2783 2228 1726\n2798 2197 1882\n2801 2210 2015\n2775 2205 2138\n2740 2218 2266\n2833 2293 2463\n2873 2317 2596\n2904 2265 2700\n2931 2233 2835\n2965 2199 2948\n2978 2166 3035\n3007 2116 3172\n3019 2067 3274\n3056 2040 3397\n3095 1998 3529\n3128 1967 3662\n3199 1941 3803\n3259 1945 3938\n2418 2279 393\n2435 2289 444\n2436 2285 471\n2450 2295 511\n2476 2305 589\n2484 2311 635\n2506 2319 737\n2542 2321 837\n2560 2339 943\n2603 2343 1065\n2631 2340 1166\n2665 2359 1290\n2694 2381 1438\n2711 2378 1568\n2752 2375 1736\n2786 2380 1892\n2816 2374 2046\n2845 2399 2218\n2827 2388 2335\n2830 2413 2470\n2879 2457 2636\n2917 2414 2751\n2936 2394 2852\n2960 2361 2950\n2977 2304 3066\n2993 2289 3173\n3024 2228 3295\n3041 2195 3412\n3066 2155 3554\n3091 2128 3673\n3157 2104 3806\n3209 2104 3945\n2399 2399 488\n2388 2411 522\n2406 2391 548\n2415 2392 585\n2418 2408 647\n2434 2412 690\n2458 2414 802\n2472 2421 897\n2496 2426 984\n2527 2449 1103\n2555 2456 1223\n2596 2465 1349\n2641 2494 1482\n2677 2509 1618\n2718 2524 1776\n2753 2524 1920\n2796 2541 2094\n2832 2523 2244\n2860 2545 2416\n2869 2544 2537\n2901 2608 2669\n2929 2581 2779\n2939 2544 2903\n2947 2520 2997\n2969 2472 3110\n2975 2436 3204\n2994 2375 3315\n3004 2352 3429\n3025 2299 3539\n3072 2272 3663\n3108 2261 3820\n3181 2243 3978\n2357 2542 562\n2373 2536 589\n2374 2536 603\n2384 2534 670\n2381 2538 718\n2408 2542 786\n2431 2547 867\n2444 2550 969\n2469 2573 1076\n2490 2583 1169\n2512 2579 1267\n2540 2590 1393\n2576 2589 1537\n2608 2611 1667\n2649 2618 1815\n2694 2625 1959\n2727 2651 2110\n2783 2685 2292\n2832 2696 2445\n2879 2702 2602\n2907 2723 2718\n2960 2728 2842\n2949 2691 2944\n2951 2657 3029\n2961 2621 3127\n2974 2577 3229\n2963 2536 3336\n2969 2495 3445\n2991 2447 3567\n3016 2419 3670\n3063 2413 3825\n3132 2402 3951\n2351 2661 674\n2330 2651 654\n2341 2657 727\n2363 2679 756\n2372 2672 810\n2375 2682 864\n2383 2674 936\n2410 2677 1032\n2422 2689 1125\n2459 2686 1244\n2463 2698 1332\n2495 2704 1457\n2528 2719 1580\n2550 2724 1719\n2592 2743 1847\n2629 2757 1990\n2691 2757 2153\n2727 2777 2303\n2765 2797 2456\n2839 2826 2609\n2887 2853 2734\n2961 2875 2902\n2950 2822 2999\n2930 2785 3061\n2928 2752 3177\n2950 2721 3264\n2948 2685 3335\n2939 2637 3465\n2947 2606 3571\n2986 2571 3700\n3041 2554 3825\n3079 2560 3967\n2319 2792 756\n2318 2792 757\n2323 2785 806\n2334 2792 853\n2329 2783 883\n2352 2796 973\n2358 2800 1033\n2370 2811 1119\n2388 2814 1197\n2410 2830 1305\n2437 2819 1388\n2462 2839 1523\n2475 2836 1628\n2518 2858 1787\n2533 2845 1901\n2588 2861 2042\n2643 2872 2170\n2659 2885 2321\n2720 2899 2455\n2795 2914 2616\n2822 2951 2741\n2924 2973 2887\n2950 2968 3000\n2922 2916 3084\n2912 2898 3194\n2911 2865 3303\n2902 2819 3366\n2906 2787 3477\n2913 2751 3605\n2949 2722 3716\n2970 2696 3837\n3034 2696 3983\n2286 2922 867\n2290 2922 891\n2300 2932 911\n2306 2922 955\n2309 2925 995\n2318 2926 1066\n2325 2918 1115\n2343 2927 1201\n2359 2936 1278\n2376 2936 1384\n2394 2937 1458\n2418 2952 1589\n2442 2939 1705\n2475 2953 1842\n2523 2966 1964\n2553 2978 2083\n2601 2980 2227\n2648 2991 2359\n2663 3002 2465\n2722 3026 2619\n2773 3050 2756\n2872 3071 2906\n2895 3073 3021\n2916 3059 3103\n2884 3018 3204\n2867 2971 3321\n2834 2945 3402\n2854 2922 3514\n2870 2893 3637\n2901 2859 3723\n2906 2835 3838\n2995 2842 3980\n2290 3037 996\n2299 3045 1008\n2302 3045 1031\n2306 3046 1072\n2305 3037 1105\n2312 3053 1163\n2314 3040 1228\n2333 3044 1308\n2357 3052 1378\n2370 3056 1476\n2367 3069 1572\n2383 3069 1669\n2426 3072 1773\n2442 3062 1899\n2490 3091 2028\n2509 3077 2124\n2542 3098 2260\n2588 3099 2377\n2643 3115 2494\n2712 3131 2621\n2752 3174 2768\n2817 3164 2917\n2852 3180 3002\n2863 3184 3138\n2863 3164 3229\n2845 3112 3323\n2815 3071 3410\n2805 3035 3510\n2797 3016 3597\n2810 2986 3729\n2871 2987 3867\n2949 3019 4015\n2268 3168 1100\n2282 3180 1146\n2279 3176 1149\n2281 3167 1180\n2291 3171 1227\n2290 3165 1265\n2309 3188 1330\n2311 3187 1395\n2324 3183 1472\n2346 3183 1583\n2373 3192 1663\n2376 3180 1767\n2404 3188 1853\n2419 3186 1974\n2466 3203 2094\n2495 3199 2196\n2531 3202 2318\n2562 3218 2409\n2615 3231 2530\n2656 3240 2659\n2699 3273 2781\n2777 3256 2891\n2795 3267 3019\n2788 3280 3115\n2792 3282 3250\n2827 3251 3328\n2785 3215 3439\n2795 3169 3514\n2769 3146 3647\n2750 3114 3748\n2803 3103 3884\n2856 3135 4018\n2246 3300 1258\n2267 3319 1303\n2261 3299 1324\n2273 3311 1345\n2271 3307 1369\n2292 3298 1430\n2311 3298 1475\n2332 3298 1538\n2336 3295 1608\n2349 3307 1675\n2370 3295 1761\n2386 3311 1864\n2410 3312 1964\n2417 3300 2045\n2463 3311 2145\n2487 3323 2250\n2509 3316 2359\n2539 3339 2456\n2581 3340 2584\n2626 3340 2682\n2654 3375 2773\n2731 3389 2940\n2750 3367 3032\n2707 3378 3115\n2720 3378 3228\n2786 3381 3353\n2803 3343 3431\n2782 3316 3525\n2752 3285 3631\n2752 3267 3762\n2766 3266 3882\n2819 3282 4034\n2289 3428 1472\n2285 3449 1456\n2290 3429 1480\n2303 3423 1518\n2304 3428 1556\n2317 3434 1591\n2320 3422 1644\n2333 3436 1703\n2342 3435 1751\n2360 3433 1839\n2384 3423 1921\n2391 3434 1986\n2427 3436 2055\n2439 3436 2160\n2485 3439 2233\n2501 3439 2328\n2521 3439 2417\n2545 3452 2508\n2564 3464 2606\n2599 3477 2692\n2626 3476 2810\n2713 3489 2951\n2703 3503 3034\n2674 3478 3115\n2680 3480 3220\n2672 3492 3322\n2766 3488 3473\n2754 3457 3557\n2749 3443 3669\n2739 3401 3771\n2757 3395 3903\n2836 3414 4036\n2321 3584 1664\n2322 3572 1677\n2332 3546 1695\n2346 3561 1709\n2348 3563 1747\n2355 3571 1788\n2367 3559 1826\n2373 3564 1877\n2392 3567 1940\n2401 3574 1981\n2411 3556 2065\n2452 3552 2119\n2451 3557 2192\n2471 3572 2273\n2478 3563 2337\n2497 3571 2415\n2523 3585 2503\n2542 3584 2596\n2567 3569 2678\n2605 3586 2756\n2620 3590 2835\n2693 3611 2977\n2687 3621 3080\n2626 3609 3149\n2618 3598 3236\n2603 3607 3354\n2623 3606 3473\n2738 3589 3563\n2747 3563 3678\n2744 3557 3781\n2765 3561 3915\n2851 3589 4067\n2429 3700 1903\n2415 3690 1919\n2418 3678 1932\n2418 3677 1941\n2425 3681 1979\n2445 3703 2008\n2455 3709 2051\n2462 3687 2082\n2465 3696 2128\n2471 3698 2161\n2476 3699 2209\n2487 3698 2270\n2514 3685 2321\n2521 3699 2394\n2536 3690 2433\n2543 3703 2521\n2567 3711 2604\n2589 3702 2676\n2581 3721 2740\n2586 3715 2813\n2612 3725 2917\n2692 3723 3012\n2677 3726 3123\n2596 3727 3181\n2542 3739 3266\n2555 3735 3374\n2545 3739 3466\n2609 3737 3619\n2709 3721 3701\n2737 3701 3802\n2788 3701 3940\n2868 3721 4064\n2557 3835 2185\n2536 3846 2164\n2556 3832 2190\n2524 3840 2187\n2568 3842 2204\n2571 3845 2226\n2578 3836 2266\n2566 3824 2293\n2569 3837 2330\n2581 3835 2379\n2595 3836 2405\n2611 3840 2464\n2611 3835 2497\n2627 3844 2552\n2619 3839 2594\n2617 3847 2650\n2638 3847 2728\n2639 3862 2799\n2644 3857 2855\n2659 3857 2934\n2660 3852 2995\n2740 3873 3108\n2715 3869 3180\n2625 3874 3249\n2512 3886 3294\n2506 3886 3417\n2508 3871 3509\n2512 3886 3621\n2587 3878 3768\n2705 3848 3831\n2761 3851 3953\n2906 3872 4095\n2709 3967 2452\n2678 3972 2452\n2706 3983 2468\n2702 3981 2481\n2726 3988 2475\n2712 3991 2492\n2698 3988 2521\n2741 3983 2550\n2714 3977 2569\n2737 3981 2601\n2736 3994 2650\n2752 3988 2688\n2747 3994 2716\n2741 3992 2765\n2759 3990 2785\n2761 4002 2840\n2777 4007 2905\n2768 4002 2962\n2757 3999 2995\n2774 3999 3076\n2753 4010 3121\n2822 3999 3223\n2825 4015 3287\n2691 4017 3321\n2564 4043 3374\n2505 4052 3465\n2506 4055 3573\n2509 4058 3671\n2544 4047 3802\n2635 4063 3942\n2773 3984 3992\n2950 4015 4084\n2197 369 353\n2203 398 342\n2225 429 337\n2233 437 348\n2246 434 418\n2239 452 482\n2242 445 552\n2243 442 614\n2262 446 691\n2246 424 732\n2261 329 787\n2315 61 835\n2380 62 999\n2450 62 1114\n2499 67 1294\n2579 58 1453\n2655 104 1657\n2695 63 1788\n2727 16 1914\n2764 1 2042\n2771 11 2178\n2788 11 2281\n2895 0 2475\n2992 0 2637\n3070 16 2812\n3126 11 2949\n3204 0 3107\n3271 16 3261\n3351 1 3385\n3433 1 3558\n3529 0 3719\n3583 5 3847\n2209 413 353\n2215 419 304\n2230 435 311\n2249 458 365\n2236 468 412\n2237 466 463\n2261 477 552\n2246 475 603\n2253 459 668\n2267 446 753\n2288 376 797\n2341 134 852\n2411 109 1004\n2456 98 1139\n2538 116 1318\n2595 121 1470\n2680 162 1673\n2716 137 1807\n2730 54 1916\n2748 20 2042\n2771 17 2174\n2789 0 2303\n2895 0 2476\n2997 0 2639\n3076 15 2811\n3123 13 2955\n3204 0 3107\n3299 5 3261\n3351 1 3411\n3425 14 3547\n3498 5 3697\n3584 5 3870\n2230 434 340\n2246 452 324\n2246 457 317\n2237 484 346\n2259 492 434\n2265 496 481\n2266 484 530\n2267 504 626\n2275 502 686\n2267 483 743\n2281 437 820\n2341 195 853\n2409 164 1008\n2474 159 1160\n2523 178 1313\n2616 195 1487\n2680 230 1665\n2727 227 1817\n2738 141 1904\n2754 79 2046\n2799 21 2188\n2804 5 2308\n2916 11 2487\n2996 0 2638\n3077 12 2819\n3139 0 2957\n3204 0 3107\n3271 12 3258\n3350 1 3410\n3446 4 3571\n3497 5 3719\n3580 0 3846\n2236 490 307\n2252 515 304\n2261 525 317\n2259 523 348\n2280 530 426\n2287 541 498\n2279 531 536\n2280 531 603\n2289 534 662\n2294 515 745\n2306 494 809\n2350 304 867\n2424 249 1004\n2479 248 1148\n2549 271 1321\n2608 288 1479\n2691 332 1684\n2732 322 1809\n2741 259 1931\n2765 199 2070\n2796 115 2186\n2823 23 2311\n2943 0 2491\n2996 4 2665\n3073 1 2820\n3127 11 2959\n3187 12 3110\n3271 16 3265\n3352 6 3411\n3429 0 3555\n3506 0 3728\n3593 6 3852\n2278 552 271\n2266 552 300\n2271 571 317\n2290 578 375\n2296 584 426\n2291 592 473\n2311 591 547\n2300 587 613\n2310 580 687\n2305 568 755\n2299 568 857\n2354 432 893\n2423 321 992\n2498 334 1154\n2539 367 1316\n2621 389 1494\n2698 427 1679\n2746 433 1822\n2764 384 1949\n2775 354 2068\n2806 290 2195\n2837 170 2322\n2932 9 2512\n3012 16 2678\n3079 10 2821\n3126 1 2970\n3206 2 3128\n3269 14 3268\n3351 1 3408\n3426 13 3550\n3488 13 3700\n3581 0 3877\n2319 640 279\n2313 633 293\n2299 631 328\n2310 646 376\n2314 632 426\n2321 643 476\n2329 650 559\n2320 651 643\n2330 644 697\n2329 634 774\n2318 626 855\n2367 558 940\n2431 419 1000\n2483 432 1160\n2557 456 1315\n2619 498 1497\n2689 530 1672\n2770 542 1835\n2778 524 1983\n2803 472 2092\n2840 425 2214\n2854 357 2352\n2930 188 2507\n3009 33 2681\n3090 0 2833\n3146 0 2976\n3209 3 3115\n3274 13 3263\n3339 13 3408\n3409 0 3565\n3506 0 3728\n3579 3 3877\n2344 695 251\n2337 695 289\n2350 707 314\n2332 713 389\n2343 708 437\n2348 713 492\n2357 711 552\n2357 721 641\n2376 713 710\n2360 701 786\n2357 692 879\n2373 668 958\n2421 524 998\n2491 534 1153\n2558 559 1337\n2638 591 1496\n2707 645 1700\n2754 675 1845\n2794 632 1990\n2814 606 2107\n2830 564 2247\n2872 503 2371\n2951 400 2514\n3027 291 2692\n3099 151 2842\n3150 34 2989\n3182 8 3132\n3271 8 3287\n3342 16 3421\n3413 0 3568\n3494 3 3727\n3556 3 3875\n2378 786 271\n2377 777 289\n2369 793 313\n2396 798 379\n2389 777 423\n2388 788 500\n2406 797 573\n2406 794 645\n2389 782 723\n2386 771 815\n2395 789 914\n2411 773 975\n2424 690 1020\n2512 633 1167\n2574 670 1339\n2644 702 1522\n2719 739 1699\n2786 791 1883\n2818 776 2003\n2835 739 2127\n2857 705 2259\n2892 646 2380\n2971 577 2553\n3026 519 2697\n3113 430 2852\n3147 353 2979\n3213 277 3135\n3284 207 3289\n3367 136 3445\n3420 82 3585\n3473 47 3684\n3555 93 3888\n2418 875 265\n2429 886 305\n2429 878 329\n2422 893 387\n2421 881 442\n2414 891 499\n2422 884 580\n2430 896 642\n2431 880 740\n2435 892 814\n2442 886 906\n2459 862 997\n2445 850 1094\n2513 744 1169\n2584 787 1321\n2668 816 1529\n2728 865 1701\n2800 922 1907\n2819 910 2035\n2833 880 2158\n2880 847 2286\n2892 816 2411\n2991 748 2570\n3052 691 2722\n3104 641 2852\n3171 589 3005\n3197 543 3144\n3277 499 3288\n3357 471 3458\n3412 435 3587\n3481 409 3751\n3553 452 3876\n2466 989 254\n2464 1002 294\n2467 1002 331\n2483 995 380\n2477 996 431\n2489 1001 519\n2491 987 592\n2475 1005 674\n2469 994 733\n2480 989 833\n2480 973 915\n2486 993 1016\n2483 984 1115\n2528 910 1195\n2602 893 1337\n2675 935 1522\n2741 979 1702\n2818 1048 1902\n2826 1058 2045\n2857 1038 2162\n2901 992 2295\n2921 966 2436\n2987 916 2578\n3066 869 2750\n3116 817 2879\n3164 781 3022\n3204 755 3157\n3271 723 3302\n3351 693 3440\n3389 669 3600\n3479 665 3736\n3540 682 3882\n2519 1113 266\n2521 1124 288\n2518 1115 342\n2515 1120 383\n2510 1110 438\n2529 1115 524\n2535 1116 596\n2529 1118 667\n2526 1102 744\n2541 1101 844\n2546 1098 936\n2545 1108 1049\n2534 1106 1146\n2539 1077 1240\n2613 1018 1349\n2692 1065 1542\n2735 1104 1721\n2834 1181 1930\n2851 1216 2088\n2888 1188 2214\n2919 1171 2337\n2941 1134 2447\n3017 1075 2609\n3075 1042 2761\n3114 1002 2898\n3159 969 3027\n3218 939 3164\n3271 932 3316\n3354 896 3474\n3407 861 3599\n3464 857 3749\n3524 879 3896\n2567 1233 256\n2583 1259 316\n2571 1244 334\n2572 1244 386\n2577 1239 444\n2596 1244 528\n2586 1246 609\n2603 1247 680\n2599 1233 757\n2609 1234 857\n2601 1234 947\n2589 1238 1067\n2591 1227 1185\n2589 1236 1278\n2612 1196 1386\n2701 1182 1528\n2747 1247 1721\n2835 1292 1941\n2881 1361 2129\n2899 1354 2236\n2931 1322 2354\n2947 1287 2469\n3022 1254 2636\n3088 1211 2784\n3109 1166 2921\n3172 1145 3052\n3209 1116 3177\n3267 1092 3316\n3324 1085 3452\n3373 1042 3578\n3452 1035 3754\n3519 1053 3897\n2615 1412 245\n2633 1407 288\n2611 1397 322\n2629 1399 396\n2632 1392 451\n2654 1385 542\n2669 1383 614\n2665 1383 698\n2660 1376 780\n2665 1380 880\n2660 1375 993\n2653 1384 1102\n2650 1369 1209\n2642 1369 1320\n2641 1366 1444\n2679 1324 1561\n2772 1381 1771\n2819 1440 1956\n2899 1510 2163\n2904 1504 2272\n2928 1477 2391\n2943 1440 2490\n3036 1413 2654\n3088 1374 2800\n3122 1348 2935\n3172 1306 3065\n3214 1285 3193\n3254 1279 3325\n3314 1239 3461\n3365 1211 3611\n3437 1210 3748\n3510 1216 3898\n2628 1559 229\n2629 1548 299\n2633 1552 316\n2663 1553 375\n2661 1545 447\n2683 1557 524\n2698 1546 608\n2715 1547 711\n2732 1547 813\n2736 1534 909\n2724 1534 1009\n2715 1527 1143\n2697 1516 1250\n2702 1518 1381\n2699 1520 1492\n2699 1532 1638\n2765 1500 1758\n2821 1574 1957\n2895 1640 2162\n2928 1686 2325\n2934 1644 2428\n2974 1629 2542\n3035 1587 2693\n3078 1543 2817\n3114 1514 2962\n3159 1489 3083\n3206 1458 3222\n3255 1435 3352\n3306 1407 3484\n3339 1382 3606\n3409 1362 3759\n3473 1378 3914\n2644 1710 215\n2645 1720 267\n2654 1713 319\n2657 1715 364\n2651 1703 424\n2681 1727 528\n2691 1702 601\n2719 1718 712\n2757 1709 805\n2756 1711 912\n2786 1692 1047\n2779 1699 1162\n2775 1689 1282\n2770 1695 1416\n2763 1674 1538\n2750 1675 1675\n2756 1660 1806\n2833 1695 1981\n2897 1787 2194\n2936 1842 2351\n2961 1819 2457\n2969 1783 2573\n3047 1762 2727\n3085 1722 2856\n3111 1679 2966\n3164 1659 3094\n3193 1633 3222\n3248 1588 3357\n3286 1574 3490\n3337 1537 3622\n3382 1522 3752\n3457 1544 3894\n2630 1866 215\n2658 1876 271\n2648 1879 326\n2670 1884 372\n2681 1865 450\n2702 1873 542\n2705 1877 621\n2735 1873 741\n2738 1878 836\n2779 1868 960\n2809 1880 1073\n2841 1870 1186\n2832 1849 1312\n2838 1848 1447\n2812 1849 1587\n2819 1853 1721\n2802 1830 1845\n2823 1836 1969\n2891 1911 2185\n2951 1993 2393\n2966 1983 2514\n3007 1956 2633\n3047 1914 2759\n3089 1881 2878\n3100 1842 2986\n3147 1820 3097\n3165 1791 3231\n3225 1754 3370\n3264 1724 3481\n3308 1689 3621\n3353 1680 3761\n3443 1692 3914\n2634 2020 203\n2646 2027 258\n2666 2035 335\n2665 2028 373\n2675 2031 455\n2686 2028 536\n2697 2038 629\n2722 2046 726\n2739 2038 840\n2771 2033 955\n2792 2046 1090\n2828 2026 1215\n2855 2040 1365\n2889 2030 1505\n2893 2026 1633\n2890 2026 1765\n2860 2010 1883\n2832 2017 2026\n2882 2046 2194\n2958 2128 2389\n2981 2164 2537\n3001 2137 2646\n3049 2102 2792\n3073 2057 2902\n3093 2023 3004\n3148 1999 3145\n3166 1951 3250\n3208 1916 3400\n3242 1886 3499\n3280 1847 3633\n3344 1831 3758\n3403 1836 3932\n2653 2171 215\n2644 2180 284\n2669 2189 331\n2667 2185 391\n2691 2178 471\n2683 2177 553\n2711 2193 657\n2728 2184 770\n2745 2182 864\n2757 2196 975\n2789 2193 1105\n2838 2191 1229\n2851 2203 1371\n2888 2201 1513\n2914 2195 1679\n2932 2194 1830\n2909 2179 1964\n2881 2180 2081\n2859 2182 2212\n2931 2245 2408\n3007 2309 2605\n2995 2277 2686\n3033 2260 2817\n3069 2218 2931\n3102 2186 3024\n3124 2149 3137\n3150 2111 3274\n3189 2070 3392\n3225 2033 3526\n3267 2009 3652\n3327 1985 3794\n3374 1983 3923\n2638 2329 255\n2652 2336 310\n2650 2316 354\n2663 2330 437\n2691 2343 518\n2686 2327 579\n2707 2344 675\n2717 2343 780\n2746 2355 900\n2776 2338 1017\n2804 2350 1139\n2825 2364 1279\n2853 2350 1417\n2858 2348 1541\n2899 2366 1697\n2936 2354 1878\n2952 2349 2038\n2958 2373 2176\n2960 2343 2293\n2914 2363 2421\n2999 2460 2640\n3010 2449 2733\n3071 2428 2852\n3086 2383 2951\n3112 2346 3069\n3128 2309 3175\n3148 2268 3282\n3163 2233 3403\n3207 2192 3545\n3237 2152 3667\n3290 2143 3803\n3358 2143 3950\n2586 2429 376\n2607 2429 415\n2604 2426 445\n2607 2445 492\n2634 2444 561\n2646 2451 632\n2655 2458 728\n2684 2461 831\n2704 2472 948\n2742 2483 1051\n2769 2493 1181\n2809 2490 1313\n2825 2499 1440\n2847 2520 1585\n2881 2518 1730\n2922 2523 1901\n2936 2527 2057\n2979 2508 2213\n2994 2529 2377\n2967 2527 2494\n3029 2558 2642\n3037 2582 2788\n3040 2567 2894\n3075 2539 3000\n3095 2493 3097\n3113 2471 3195\n3140 2417 3310\n3151 2388 3434\n3169 2343 3540\n3215 2305 3674\n3273 2273 3820\n3319 2267 3968\n2547 2552 515\n2542 2547 522\n2557 2551 569\n2553 2542 605\n2572 2552 667\n2588 2558 728\n2595 2549 807\n2622 2563 909\n2626 2575 1006\n2661 2581 1123\n2697 2579 1239\n2726 2602 1356\n2752 2618 1502\n2790 2629 1633\n2826 2643 1781\n2873 2655 1937\n2916 2682 2110\n2938 2675 2254\n2983 2675 2412\n2999 2690 2574\n3024 2691 2675\n3053 2734 2805\n3074 2719 2931\n3070 2684 3023\n3082 2651 3137\n3109 2617 3237\n3116 2570 3341\n3129 2516 3444\n3138 2469 3568\n3185 2460 3717\n3214 2429 3802\n3285 2409 3957\n2553 2673 620\n2525 2666 614\n2520 2667 649\n2540 2676 693\n2543 2674 754\n2553 2669 826\n2578 2690 904\n2587 2690 1003\n2603 2683 1074\n2629 2697 1180\n2642 2709 1314\n2675 2715 1425\n2702 2720 1571\n2730 2742 1695\n2756 2734 1818\n2805 2748 1958\n2844 2771 2135\n2895 2797 2274\n2926 2797 2419\n3004 2827 2591\n3039 2837 2739\n3048 2853 2854\n3087 2843 2999\n3086 2811 3069\n3084 2790 3170\n3104 2755 3265\n3110 2705 3349\n3102 2669 3465\n3101 2626 3573\n3129 2609 3701\n3166 2561 3826\n3246 2554 3989\n2521 2803 702\n2510 2792 714\n2530 2811 768\n2521 2792 786\n2509 2794 844\n2548 2806 929\n2533 2811 979\n2558 2820 1089\n2567 2822 1164\n2585 2824 1262\n2609 2830 1366\n2631 2839 1485\n2654 2846 1610\n2691 2863 1757\n2698 2859 1883\n2748 2861 2026\n2794 2896 2165\n2824 2891 2306\n2856 2906 2432\n2930 2916 2588\n2997 2935 2754\n3064 2984 2886\n3120 2989 3033\n3089 2953 3130\n3076 2932 3207\n3084 2875 3310\n3067 2842 3379\n3067 2821 3490\n3081 2760 3592\n3113 2724 3705\n3121 2707 3833\n3209 2707 3983\n2477 2922 831\n2486 2917 855\n2489 2933 868\n2484 2913 894\n2502 2917 960\n2521 2925 1028\n2513 2914 1087\n2550 2934 1175\n2558 2938 1254\n2566 2935 1325\n2575 2959 1450\n2592 2959 1551\n2610 2954 1664\n2641 2970 1792\n2654 2975 1920\n2699 2978 2075\n2739 2992 2214\n2787 2994 2336\n2831 3012 2461\n2871 3012 2595\n2923 3039 2765\n3017 3070 2921\n3060 3071 3033\n3080 3098 3139\n3052 3053 3224\n3048 3032 3328\n3045 2984 3403\n3048 2944 3498\n3032 2894 3594\n3068 2862 3722\n3080 2854 3848\n3117 2842 3959\n2467 3052 939\n2462 3038 956\n2476 3047 1002\n2479 3052 1040\n2475 3057 1072\n2483 3049 1128\n2484 3055 1203\n2494 3057 1262\n2517 3053 1350\n2538 3076 1439\n2557 3068 1552\n2554 3064 1642\n2580 3079 1743\n2613 3077 1877\n2647 3095 1999\n2666 3097 2106\n2703 3105 2225\n2743 3104 2356\n2806 3116 2497\n2845 3123 2640\n2896 3143 2767\n2938 3165 2887\n3026 3200 3048\n3031 3189 3128\n3032 3196 3229\n3014 3146 3327\n2998 3114 3439\n2980 3054 3524\n2982 3035 3614\n3028 3017 3740\n3048 3004 3869\n3092 2989 4003\n2431 3169 1065\n2448 3186 1112\n2446 3182 1120\n2442 3180 1161\n2450 3195 1205\n2458 3185 1247\n2471 3190 1320\n2469 3185 1384\n2487 3191 1442\n2506 3177 1555\n2532 3204 1647\n2549 3185 1741\n2571 3197 1842\n2588 3204 1946\n2617 3208 2083\n2639 3196 2170\n2678 3202 2275\n2717 3215 2404\n2766 3226 2521\n2802 3231 2629\n2851 3258 2758\n2900 3266 2911\n2974 3283 3018\n2968 3295 3117\n2984 3298 3263\n3017 3267 3353\n2970 3231 3443\n2949 3198 3514\n2933 3164 3638\n2920 3115 3738\n2984 3122 3882\n3024 3137 4016\n2423 3307 1228\n2422 3314 1275\n2426 3310 1275\n2436 3313 1319\n2436 3312 1336\n2438 3307 1396\n2480 3306 1456\n2491 3311 1513\n2505 3314 1574\n2514 3321 1685\n2531 3300 1774\n2536 3314 1850\n2568 3307 1953\n2587 3316 2027\n2622 3315 2148\n2631 3320 2233\n2667 3325 2351\n2693 3330 2445\n2727 3342 2575\n2758 3341 2656\n2807 3362 2787\n2839 3378 2902\n2930 3394 3037\n2932 3392 3148\n2926 3380 3230\n2935 3408 3372\n2969 3373 3443\n2948 3339 3542\n2903 3310 3642\n2911 3267 3761\n2908 3262 3895\n2978 3279 4023\n2459 3438 1445\n2452 3431 1440\n2450 3452 1457\n2444 3431 1480\n2468 3431 1513\n2466 3436 1549\n2488 3434 1620\n2493 3436 1667\n2505 3440 1732\n2514 3428 1816\n2543 3442 1902\n2555 3444 1963\n2560 3441 2045\n2590 3433 2143\n2616 3437 2236\n2624 3437 2319\n2656 3444 2423\n2677 3455 2512\n2728 3463 2606\n2720 3469 2701\n2782 3471 2815\n2807 3479 2921\n2894 3497 3040\n2871 3483 3150\n2850 3484 3233\n2841 3497 3323\n2896 3520 3477\n2922 3463 3545\n2902 3454 3654\n2899 3424 3768\n2914 3425 3900\n2964 3426 4056\n2471 3575 1633\n2471 3572 1661\n2485 3582 1684\n2472 3560 1696\n2482 3564 1719\n2495 3572 1763\n2525 3560 1815\n2515 3584 1866\n2545 3564 1916\n2561 3573 1998\n2572 3564 2052\n2587 3565 2132\n2604 3572 2201\n2597 3562 2245\n2635 3568 2341\n2650 3577 2419\n2673 3572 2488\n2689 3575 2589\n2708 3596 2677\n2724 3580 2768\n2767 3603 2865\n2775 3603 2945\n2876 3620 3105\n2846 3611 3152\n2804 3607 3250\n2777 3605 3362\n2805 3621 3478\n2875 3618 3591\n2890 3588 3689\n2885 3571 3801\n2899 3558 3929\n2967 3577 4052\n2563 3704 1906\n2559 3700 1882\n2561 3687 1937\n2565 3691 1941\n2579 3704 1961\n2571 3697 1987\n2586 3708 2019\n2595 3704 2083\n2596 3701 2117\n2622 3699 2173\n2631 3697 2232\n2639 3699 2272\n2661 3703 2345\n2660 3698 2412\n2670 3713 2478\n2698 3709 2526\n2691 3709 2606\n2710 3712 2684\n2728 3717 2760\n2747 3720 2841\n2784 3735 2920\n2776 3732 2990\n2851 3746 3116\n2831 3738 3216\n2769 3740 3280\n2731 3734 3365\n2736 3738 3477\n2767 3750 3617\n2882 3735 3704\n2884 3705 3811\n2904 3705 3932\n2968 3737 4066\n2661 3852 2167\n2666 3847 2169\n2666 3846 2170\n2677 3837 2205\n2668 3842 2230\n2667 3837 2232\n2693 3839 2274\n2685 3843 2311\n2689 3847 2349\n2710 3840 2382\n2711 3843 2417\n2731 3842 2460\n2729 3852 2526\n2740 3852 2564\n2749 3863 2633\n2759 3852 2694\n2763 3851 2732\n2774 3847 2800\n2783 3854 2873\n2800 3867 2946\n2821 3867 3026\n2802 3868 3084\n2863 3868 3192\n2852 3868 3263\n2752 3882 3340\n2689 3881 3408\n2687 3883 3543\n2690 3895 3651\n2753 3887 3770\n2866 3849 3851\n2911 3852 3964\n2995 3864 4095\n2824 3983 2478\n2819 3978 2496\n2832 3993 2511\n2821 3973 2515\n2828 3991 2511\n2831 3978 2524\n2827 3970 2552\n2840 3983 2581\n2852 3995 2609\n2863 4001 2638\n2845 4005 2689\n2843 3993 2704\n2877 3992 2746\n2869 3994 2771\n2868 4011 2829\n2865 4003 2867\n2877 4006 2912\n2888 4001 2989\n2893 4013 3019\n2907 4003 3110\n2898 4015 3148\n2888 4025 3186\n2952 4015 3294\n2922 4030 3368\n2812 4034 3403\n2679 4044 3463\n2674 4046 3586\n2693 4047 3690\n2705 4074 3811\n2773 4074 3931\n2930 4011 4010\n3049 4015 4084\n2328 357 325\n2352 402 289\n2376 419 308\n2360 446 306\n2366 436 392\n2383 450 467\n2400 453 511\n2389 433 594\n2389 429 655\n2392 409 716\n2382 382 775\n2452 108 855\n2522 4 963\n2582 4 1111\n2664 0 1277\n2717 4 1460\n2778 17 1640\n2855 11 1799\n2901 7 1938\n2926 0 2057\n2922 0 2187\n2965 16 2336\n3001 0 2450\n3110 0 2613\n3184 0 2800\n3257 12 2927\n3334 13 3088\n3376 16 3240\n3454 12 3380\n3546 15 3548\n3631 0 3719\n3681 28 3866\n2317 402 278\n2360 446 311\n2365 466 278\n2377 462 319\n2372 468 376\n2397 489 439\n2388 469 489\n2392 478 557\n2389 451 630\n2404 441 735\n2408 417 786\n2454 171 833\n2495 10 951\n2576 15 1103\n2660 15 1288\n2720 9 1435\n2770 17 1611\n2862 60 1812\n2908 21 1944\n2903 0 2053\n2933 10 2179\n2971 1 2321\n3026 17 2444\n3100 0 2641\n3179 12 2804\n3250 4 2951\n3333 13 3094\n3412 0 3259\n3480 0 3410\n3539 1 3528\n3627 1 3680\n3686 0 3855\n2371 436 288\n2376 464 314\n2385 495 304\n2392 490 313\n2400 486 376\n2395 503 444\n2414 499 520\n2416 504 582\n2396 502 639\n2420 466 709\n2403 450 791\n2457 269 861\n2504 30 923\n2586 51 1100\n2641 61 1249\n2705 60 1429\n2790 80 1604\n2861 154 1809\n2899 117 1927\n2911 36 2070\n2952 1 2189\n2966 15 2334\n3017 1 2456\n3097 0 2637\n3172 12 2785\n3268 1 2951\n3338 1 3111\n3414 0 3259\n3459 1 3411\n3552 0 3571\n3607 12 3709\n3689 0 3858\n2392 494 302\n2400 517 288\n2394 531 294\n2406 527 339\n2406 532 394\n2419 538 444\n2436 542 518\n2430 531 571\n2437 537 648\n2433 523 706\n2427 494 785\n2455 370 870\n2510 116 923\n2589 134 1100\n2645 153 1251\n2704 163 1430\n2795 198 1611\n2880 279 1807\n2897 256 1946\n2904 158 2071\n2942 64 2199\n2967 18 2334\n3026 2 2436\n3113 10 2651\n3192 0 2812\n3268 10 2970\n3325 12 3122\n3402 2 3264\n3463 25 3401\n3544 16 3548\n3593 22 3683\n3684 1 3829\n2410 550 255\n2418 566 267\n2430 591 290\n2424 593 323\n2429 582 382\n2443 589 435\n2431 583 496\n2436 592 583\n2447 596 659\n2436 574 716\n2441 549 815\n2461 489 879\n2547 249 930\n2583 255 1084\n2654 277 1247\n2731 299 1428\n2797 334 1626\n2903 373 1822\n2925 380 1953\n2926 338 2065\n2952 267 2193\n2986 153 2345\n3046 21 2488\n3139 0 2671\n3196 0 2812\n3257 0 2964\n3326 5 3103\n3404 12 3240\n3475 12 3419\n3525 15 3539\n3610 25 3694\n3687 14 3876\n2440 634 237\n2442 633 242\n2460 638 303\n2443 647 355\n2445 647 393\n2455 641 464\n2462 647 525\n2481 654 623\n2467 642 660\n2473 634 734\n2486 613 863\n2480 597 912\n2572 390 965\n2597 369 1110\n2678 373 1263\n2726 421 1440\n2810 444 1631\n2890 495 1820\n2929 506 1971\n2956 468 2108\n2986 421 2223\n3001 345 2359\n3058 264 2510\n3113 37 2655\n3188 15 2819\n3269 3 2967\n3336 4 3117\n3400 12 3240\n3460 24 3396\n3544 8 3567\n3623 3 3718\n3692 3 3863\n2463 704 209\n2462 697 233\n2477 722 259\n2480 704 349\n2493 713 390\n2501 706 457\n2497 725 529\n2501 709 624\n2502 705 686\n2506 698 774\n2507 685 856\n2513 684 929\n2549 559 1023\n2631 463 1119\n2691 498 1276\n2760 521 1459\n2821 571 1630\n2892 638 1838\n2950 637 2009\n2973 602 2124\n2994 575 2258\n3021 516 2387\n3066 451 2509\n3126 298 2686\n3233 137 2847\n3275 34 2965\n3324 14 3140\n3394 5 3270\n3463 13 3413\n3534 27 3548\n3622 3 3707\n3674 15 3866\n2512 794 213\n2516 798 242\n2509 810 270\n2531 808 324\n2533 802 394\n2544 798 482\n2525 794 551\n2537 794 621\n2548 786 723\n2528 778 800\n2544 794 906\n2534 765 959\n2555 720 1023\n2631 577 1127\n2699 604 1272\n2773 652 1460\n2854 682 1646\n2913 740 1856\n2957 766 2021\n3005 755 2143\n3014 711 2261\n3068 670 2413\n3074 625 2543\n3151 519 2693\n3216 434 2843\n3258 356 2981\n3335 260 3121\n3378 184 3263\n3454 132 3417\n3528 142 3580\n3620 195 3740\n3676 289 3902\n2565 896 233\n2561 892 254\n2570 904 278\n2573 892 344\n2567 892 394\n2567 900 452\n2577 904 547\n2576 908 613\n2573 892 695\n2593 891 799\n2596 876 866\n2575 865 972\n2563 843 1072\n2645 744 1133\n2700 740 1269\n2773 763 1464\n2851 812 1656\n2911 862 1850\n2976 913 2030\n2998 906 2179\n3035 857 2310\n3035 828 2417\n3088 776 2543\n3175 700 2722\n3236 659 2870\n3289 600 3005\n3337 559 3143\n3410 505 3272\n3457 492 3437\n3522 495 3566\n3596 507 3734\n3661 562 3882\n2619 1007 214\n2618 1005 242\n2623 995 294\n2624 1003 342\n2616 994 384\n2628 1001 480\n2638 989 555\n2614 993 623\n2615 987 712\n2627 996 789\n2630 971 902\n2646 981 975\n2610 972 1081\n2653 931 1178\n2719 842 1277\n2803 886 1461\n2888 939 1672\n2937 996 1855\n2984 1072 2047\n3003 1055 2171\n3047 1021 2311\n3063 993 2441\n3079 955 2563\n3187 872 2746\n3224 833 2865\n3282 792 3012\n3323 760 3143\n3384 739 3303\n3468 723 3430\n3514 715 3607\n3568 741 3710\n3658 770 3886\n2655 1130 228\n2655 1124 248\n2663 1140 304\n2669 1122 342\n2660 1128 410\n2673 1115 478\n2675 1130 565\n2681 1123 643\n2682 1113 737\n2693 1107 826\n2693 1101 913\n2689 1101 1011\n2677 1092 1104\n2685 1083 1232\n2757 1000 1319\n2805 1013 1485\n2882 1053 1679\n2939 1126 1860\n2984 1213 2070\n3039 1225 2215\n3041 1189 2323\n3080 1144 2459\n3110 1109 2590\n3196 1058 2746\n3238 1010 2903\n3285 983 3019\n3339 951 3153\n3390 944 3296\n3469 917 3448\n3517 910 3571\n3580 917 3724\n3639 947 3903\n2731 1277 186\n2716 1259 235\n2716 1270 270\n2719 1265 352\n2725 1255 403\n2721 1256 493\n2738 1249 557\n2735 1251 635\n2736 1244 728\n2748 1243 827\n2751 1223 925\n2746 1231 1033\n2731 1222 1163\n2725 1205 1255\n2735 1198 1353\n2823 1147 1488\n2878 1191 1678\n2942 1253 1901\n3006 1342 2096\n3051 1363 2233\n3063 1340 2358\n3071 1315 2485\n3121 1276 2615\n3207 1233 2790\n3261 1190 2924\n3280 1157 3039\n3335 1123 3164\n3399 1111 3315\n3441 1116 3444\n3493 1105 3571\n3562 1096 3726\n3633 1112 3888\n2762 1402 163\n2773 1416 208\n2768 1406 278\n2784 1416 329\n2784 1406 388\n2809 1388 500\n2796 1374 568\n2803 1380 664\n2800 1380 750\n2800 1379 861\n2799 1380 967\n2789 1381 1061\n2800 1358 1159\n2784 1359 1304\n2770 1347 1414\n2804 1303 1529\n2865 1311 1712\n2932 1382 1904\n2991 1461 2098\n3067 1528 2281\n3051 1513 2404\n3103 1483 2530\n3122 1445 2642\n3203 1394 2800\n3247 1370 2928\n3305 1332 3071\n3333 1307 3182\n3372 1303 3304\n3425 1285 3457\n3499 1261 3600\n3552 1254 3760\n3619 1271 3888\n2779 1568 140\n2791 1570 189\n2791 1564 252\n2820 1565 334\n2813 1563 396\n2830 1572 476\n2858 1556 566\n2862 1543 661\n2871 1538 779\n2875 1525 889\n2861 1536 987\n2850 1528 1111\n2849 1496 1218\n2821 1515 1344\n2848 1499 1450\n2822 1498 1582\n2887 1454 1711\n2953 1517 1923\n2998 1595 2114\n3078 1693 2326\n3072 1672 2439\n3106 1656 2536\n3128 1604 2670\n3223 1581 2822\n3255 1532 2963\n3277 1497 3072\n3328 1477 3208\n3393 1464 3339\n3427 1443 3475\n3480 1435 3592\n3530 1422 3748\n3585 1440 3910\n2794 1722 146\n2794 1706 197\n2799 1729 251\n2826 1722 332\n2816 1720 385\n2840 1722 490\n2854 1711 587\n2870 1715 682\n2912 1714 792\n2896 1699 883\n2903 1699 1019\n2904 1696 1145\n2908 1678 1242\n2915 1678 1402\n2909 1658 1502\n2884 1647 1616\n2879 1651 1765\n2959 1645 1923\n3012 1733 2127\n3054 1832 2324\n3085 1839 2458\n3102 1821 2584\n3143 1787 2703\n3211 1741 2856\n3234 1714 2980\n3278 1673 3096\n3316 1648 3225\n3372 1626 3357\n3411 1596 3463\n3470 1575 3602\n3512 1586 3738\n3576 1606 3886\n2802 1874 105\n2818 1885 177\n2795 1874 231\n2836 1879 321\n2838 1888 390\n2852 1889 486\n2870 1874 575\n2882 1878 690\n2902 1881 804\n2923 1862 921\n2948 1855 1029\n2968 1874 1155\n2962 1847 1287\n2983 1845 1433\n2940 1814 1551\n2938 1830 1681\n2937 1798 1807\n2929 1804 1919\n2990 1862 2115\n3053 1972 2346\n3083 2015 2488\n3099 1979 2617\n3139 1947 2719\n3207 1918 2866\n3224 1885 2980\n3262 1830 3107\n3309 1821 3233\n3354 1797 3374\n3396 1751 3478\n3446 1743 3621\n3492 1730 3759\n3557 1757 3894\n2794 2041 108\n2825 2033 194\n2814 2038 246\n2827 2042 299\n2832 2026 394\n2852 2031 482\n2863 2045 580\n2877 2035 688\n2907 2033 812\n2922 2040 917\n2950 2040 1053\n2998 2026 1192\n3011 2015 1320\n3021 2008 1464\n3038 2000 1592\n2994 1997 1713\n2999 1973 1832\n2960 1982 1972\n2998 1998 2133\n3046 2082 2335\n3091 2174 2537\n3123 2142 2663\n3142 2117 2766\n3199 2081 2894\n3236 2041 3008\n3253 2016 3115\n3306 1980 3238\n3341 1950 3364\n3373 1930 3513\n3423 1904 3622\n3479 1884 3779\n3524 1892 3914\n2819 2181 121\n2825 2175 207\n2838 2176 260\n2823 2191 336\n2858 2175 405\n2869 2189 518\n2880 2177 612\n2887 2199 722\n2895 2199 824\n2902 2203 934\n2963 2195 1100\n2969 2188 1218\n3002 2191 1351\n3041 2180 1492\n3060 2169 1655\n3073 2180 1795\n3054 2173 1934\n3027 2164 2064\n2998 2168 2190\n3034 2210 2374\n3111 2300 2567\n3114 2314 2679\n3155 2292 2792\n3195 2248 2932\n3231 2218 3024\n3263 2174 3155\n3299 2142 3286\n3324 2112 3385\n3381 2081 3516\n3406 2050 3650\n3450 2044 3770\n3500 2042 3902\n2806 2352 123\n2819 2343 207\n2824 2351 256\n2836 2336 341\n2837 2338 432\n2858 2343 530\n2867 2336 627\n2884 2333 731\n2909 2337 849\n2932 2343 973\n2943 2346 1094\n2975 2343 1228\n2993 2340 1372\n3014 2339 1516\n3051 2352 1670\n3073 2336 1814\n3100 2331 2004\n3090 2343 2130\n3067 2329 2267\n3015 2352 2376\n3082 2402 2557\n3149 2465 2756\n3170 2439 2826\n3207 2407 2932\n3226 2362 3046\n3271 2329 3164\n3298 2304 3286\n3321 2270 3408\n3348 2221 3522\n3375 2186 3647\n3426 2185 3813\n3491 2174 3934\n2796 2496 203\n2797 2479 273\n2809 2481 370\n2822 2487 408\n2828 2489 488\n2833 2487 578\n2854 2497 683\n2866 2492 777\n2890 2500 892\n2918 2500 1008\n2931 2506 1137\n2950 2499 1271\n2978 2497 1431\n2978 2490 1550\n3025 2490 1717\n3062 2508 1867\n3073 2492 2003\n3111 2505 2199\n3111 2509 2335\n3079 2508 2462\n3081 2500 2581\n3126 2606 2756\n3149 2593 2873\n3211 2578 3006\n3232 2516 3091\n3258 2487 3207\n3298 2453 3302\n3306 2418 3436\n3317 2373 3540\n3351 2343 3657\n3398 2302 3818\n3450 2322 3964\n2721 2554 416\n2731 2568 471\n2726 2566 496\n2735 2571 549\n2740 2574 629\n2771 2574 697\n2779 2577 763\n2813 2585 873\n2827 2608 978\n2858 2617 1098\n2903 2618 1224\n2923 2643 1322\n2956 2642 1472\n2981 2662 1597\n3008 2656 1762\n3026 2656 1895\n3065 2647 2058\n3085 2654 2235\n3126 2663 2387\n3140 2669 2536\n3133 2657 2650\n3155 2685 2763\n3178 2724 2928\n3225 2712 3024\n3231 2669 3122\n3244 2638 3221\n3264 2593 3312\n3277 2550 3442\n3302 2514 3564\n3327 2475 3704\n3366 2453 3828\n3422 2433 3958\n2703 2661 522\n2725 2683 555\n2710 2674 576\n2705 2681 648\n2724 2670 709\n2726 2688 770\n2740 2693 862\n2757 2697 950\n2778 2704 1052\n2793 2713 1147\n2821 2716 1279\n2832 2731 1396\n2878 2732 1531\n2910 2735 1672\n2941 2759 1802\n2981 2767 1949\n3021 2798 2110\n3047 2798 2254\n3099 2807 2416\n3128 2820 2552\n3158 2832 2718\n3146 2821 2836\n3190 2880 2978\n3224 2834 3063\n3220 2802 3158\n3238 2777 3262\n3242 2726 3339\n3253 2701 3473\n3280 2657 3582\n3286 2626 3700\n3315 2592 3829\n3397 2577 3999\n2670 2792 638\n2692 2792 671\n2698 2805 724\n2698 2787 750\n2684 2802 803\n2702 2802 871\n2714 2808 963\n2714 2816 1033\n2735 2819 1147\n2739 2840 1232\n2763 2846 1335\n2787 2851 1464\n2822 2845 1589\n2842 2847 1727\n2883 2868 1868\n2926 2864 1993\n2957 2883 2144\n2982 2891 2298\n3018 2913 2433\n3065 2922 2573\n3146 2951 2733\n3206 2972 2885\n3202 2984 2984\n3239 2984 3134\n3229 2956 3202\n3238 2932 3291\n3215 2870 3378\n3209 2835 3479\n3245 2788 3588\n3266 2756 3717\n3269 2735 3840\n3329 2712 3967\n2641 2922 751\n2666 2927 772\n2665 2934 814\n2659 2924 849\n2681 2938 933\n2684 2941 963\n2697 2934 1046\n2709 2934 1128\n2722 2931 1217\n2730 2935 1311\n2727 2970 1418\n2755 2947 1527\n2778 2971 1631\n2813 2981 1769\n2822 2979 1895\n2858 2986 2035\n2887 2991 2193\n2926 3020 2330\n2988 3007 2472\n3035 3033 2603\n3067 3049 2746\n3129 3067 2888\n3182 3102 3036\n3236 3127 3163\n3215 3102 3232\n3218 3041 3317\n3223 3005 3412\n3223 2956 3505\n3211 2921 3606\n3220 2910 3733\n3236 2870 3876\n3268 2882 3963\n2645 3065 897\n2628 3053 917\n2633 3040 942\n2648 3053 999\n2648 3061 1037\n2639 3056 1089\n2649 3053 1145\n2668 3060 1226\n2693 3077 1318\n2698 3081 1385\n2717 3076 1510\n2738 3072 1622\n2767 3091 1726\n2788 3084 1868\n2809 3085 1943\n2837 3096 2083\n2878 3113 2238\n2898 3098 2345\n2934 3108 2487\n2974 3123 2615\n3017 3132 2733\n3080 3153 2896\n3129 3181 3000\n3198 3216 3136\n3226 3228 3261\n3197 3180 3321\n3167 3121 3424\n3164 3101 3536\n3179 3066 3623\n3181 3042 3721\n3177 3007 3855\n3242 3001 4011\n2589 3195 1009\n2589 3184 1075\n2589 3187 1082\n2601 3199 1123\n2611 3193 1175\n2612 3183 1200\n2623 3186 1267\n2636 3193 1351\n2655 3208 1424\n2672 3191 1517\n2680 3193 1620\n2709 3186 1712\n2747 3208 1821\n2754 3194 1927\n2766 3199 2035\n2806 3217 2161\n2853 3217 2286\n2872 3218 2385\n2908 3230 2498\n2952 3230 2635\n2996 3246 2768\n3032 3260 2886\n3075 3294 3017\n3146 3311 3132\n3163 3311 3261\n3154 3286 3335\n3135 3262 3439\n3116 3231 3528\n3098 3182 3649\n3120 3149 3775\n3178 3150 3904\n3183 3133 4001\n2583 3314 1210\n2587 3314 1236\n2584 3313 1243\n2594 3318 1277\n2612 3319 1319\n2599 3304 1344\n2619 3310 1422\n2640 3326 1492\n2642 3328 1550\n2651 3321 1650\n2694 3309 1745\n2688 3336 1836\n2731 3314 1937\n2744 3321 2016\n2775 3310 2118\n2780 3318 2217\n2824 3332 2342\n2852 3327 2450\n2855 3331 2552\n2904 3351 2651\n2944 3369 2745\n2978 3364 2896\n3018 3378 3032\n3068 3409 3134\n3111 3399 3239\n3085 3412 3378\n3123 3403 3465\n3114 3346 3527\n3070 3313 3630\n3054 3296 3764\n3062 3275 3886\n3111 3279 4022\n2617 3444 1389\n2602 3444 1395\n2602 3442 1389\n2613 3457 1443\n2615 3456 1469\n2613 3433 1499\n2617 3441 1556\n2633 3450 1626\n2649 3444 1696\n2658 3449 1778\n2685 3430 1862\n2704 3442 1950\n2691 3439 2018\n2729 3432 2120\n2774 3433 2223\n2771 3446 2304\n2800 3458 2425\n2815 3446 2506\n2865 3444 2609\n2868 3474 2694\n2902 3472 2813\n2960 3480 2933\n2999 3488 3031\n3037 3511 3151\n3054 3509 3266\n3054 3498 3347\n3035 3536 3459\n3083 3488 3555\n3078 3468 3667\n3025 3429 3757\n3042 3423 3886\n3071 3428 4033\n2632 3571 1601\n2626 3573 1631\n2634 3572 1649\n2646 3581 1669\n2646 3569 1698\n2658 3573 1758\n2673 3563 1771\n2664 3571 1830\n2701 3573 1914\n2687 3573 1968\n2712 3573 2023\n2715 3582 2116\n2752 3562 2189\n2742 3580 2238\n2782 3566 2331\n2802 3569 2413\n2822 3563 2502\n2847 3572 2603\n2833 3584 2680\n2881 3598 2769\n2888 3591 2857\n2943 3610 2987\n2953 3605 3051\n3032 3623 3171\n3011 3635 3266\n2972 3632 3373\n2987 3632 3488\n3023 3648 3604\n3027 3592 3659\n3045 3599 3797\n3036 3558 3903\n3085 3591 4045\n2692 3716 1874\n2684 3696 1902\n2685 3695 1881\n2720 3689 1920\n2696 3704 1947\n2727 3696 1966\n2734 3710 2020\n2742 3689 2038\n2752 3698 2115\n2754 3699 2165\n2769 3710 2203\n2769 3705 2280\n2762 3705 2321\n2800 3702 2390\n2823 3705 2469\n2838 3709 2534\n2849 3699 2617\n2848 3722 2676\n2856 3722 2771\n2900 3721 2853\n2901 3718 2895\n2906 3740 3002\n2963 3723 3089\n3000 3739 3202\n2970 3761 3292\n2898 3738 3375\n2904 3762 3477\n2921 3749 3602\n3028 3728 3705\n3026 3719 3820\n3036 3721 3920\n3077 3738 4070\n2795 3860 2160\n2791 3851 2171\n2797 3858 2161\n2811 3836 2182\n2784 3830 2204\n2800 3835 2247\n2812 3849 2285\n2816 3848 2296\n2816 3844 2340\n2832 3852 2369\n2828 3851 2404\n2872 3838 2458\n2869 3832 2511\n2869 3839 2578\n2868 3837 2619\n2900 3840 2691\n2906 3855 2748\n2902 3861 2814\n2921 3845 2883\n2921 3864 2929\n2922 3848 3022\n2932 3879 3072\n2950 3861 3164\n3018 3868 3254\n2977 3892 3364\n2880 3893 3424\n2864 3894 3540\n2854 3894 3637\n2890 3887 3753\n3005 3893 3820\n3047 3849 3945\n3118 3868 4082\n2934 3995 2489\n2946 3983 2490\n2935 3987 2483\n2942 3990 2518\n2933 3981 2511\n2947 3995 2525\n2943 3980 2550\n2971 3979 2586\n2970 3978 2609\n2971 4003 2630\n2954 3997 2659\n2976 3993 2702\n2977 3981 2736\n3001 3992 2780\n2975 3999 2840\n2991 3987 2863\n3011 4014 2923\n3010 4008 2975\n3023 4012 3039\n3028 3997 3107\n3031 4015 3139\n3050 4030 3206\n3018 4019 3293\n3087 4019 3340\n3034 4042 3437\n2913 4038 3493\n2843 4059 3570\n2838 4057 3683\n2840 4047 3773\n2910 4062 3902\n3039 4015 4010\n3147 4015 4095\n2462 366 305\n2503 390 305\n2499 422 295\n2510 437 281\n2509 452 365\n2519 462 418\n2523 450 492\n2526 437 552\n2526 433 614\n2523 413 697\n2551 352 785\n2565 208 843\n2632 0 906\n2695 4 1036\n2767 4 1221\n2845 20 1384\n2909 0 1579\n2983 4 1771\n3039 0 1936\n3079 10 2097\n3095 0 2195\n3097 18 2317\n3144 15 2462\n3197 12 2609\n3265 12 2760\n3368 3 2929\n3407 13 3078\n3482 0 3236\n3582 1 3398\n3643 15 3559\n3710 12 3700\n3786 4 3854\n2479 402 306\n2495 419 293\n2493 451 284\n2520 479 306\n2521 493 361\n2523 463 429\n2527 480 477\n2539 466 537\n2524 450 630\n2536 430 710\n2531 400 772\n2571 271 834\n2645 0 892\n2688 10 1043\n2772 0 1228\n2848 5 1388\n2901 4 1560\n2970 15 1760\n3037 12 1939\n3070 13 2102\n3085 10 2195\n3106 6 2322\n3166 4 2461\n3189 5 2602\n3307 4 2773\n3368 3 2955\n3439 4 3080\n3501 14 3262\n3553 12 3397\n3634 0 3545\n3710 15 3709\n3783 27 3873\n2507 432 274\n2512 453 247\n2535 488 258\n2522 510 291\n2550 509 368\n2550 505 422\n2553 486 491\n2546 484 575\n2549 479 639\n2551 458 685\n2545 416 767\n2552 350 842\n2642 22 910\n2706 1 1044\n2773 0 1205\n2860 8 1407\n2903 1 1572\n2977 13 1767\n3069 53 1967\n3081 2 2094\n3091 1 2220\n3108 5 2327\n3145 15 2470\n3197 12 2609\n3282 5 2768\n3368 3 2931\n3437 0 3069\n3497 13 3249\n3580 0 3397\n3640 12 3554\n3712 14 3702\n3798 11 3862\n2514 499 258\n2538 514 244\n2545 545 260\n2542 537 292\n2538 572 350\n2556 536 403\n2569 533 490\n2554 544 569\n2577 528 644\n2565 501 720\n2591 472 794\n2564 435 869\n2640 101 917\n2712 7 1029\n2782 11 1218\n2842 23 1395\n2911 25 1571\n2994 106 1775\n3069 202 1978\n3082 140 2087\n3102 53 2211\n3121 11 2339\n3157 23 2479\n3220 5 2613\n3276 5 2769\n3377 14 2943\n3441 3 3073\n3497 13 3250\n3573 0 3395\n3630 1 3544\n3702 5 3693\n3791 16 3863\n2557 563 235\n2569 579 254\n2565 609 241\n2580 603 308\n2582 614 360\n2574 595 440\n2600 581 499\n2596 580 600\n2575 564 638\n2599 574 731\n2604 538 805\n2603 504 870\n2653 278 938\n2728 69 1060\n2791 100 1215\n2873 136 1411\n2928 196 1589\n3016 288 1809\n3065 350 1985\n3086 324 2105\n3109 263 2231\n3131 158 2351\n3168 30 2469\n3231 10 2647\n3298 10 2812\n3360 4 2962\n3453 12 3120\n3517 2 3269\n3579 2 3409\n3647 12 3559\n3714 16 3704\n3785 2 3885\n2574 650 211\n2583 660 213\n2588 662 231\n2595 651 282\n2615 673 369\n2618 663 423\n2609 663 514\n2628 647 583\n2621 622 645\n2636 624 743\n2630 599 817\n2620 579 904\n2654 480 966\n2752 229 1058\n2803 252 1225\n2868 297 1410\n2919 364 1603\n3020 417 1798\n3065 493 1983\n3108 471 2114\n3127 436 2250\n3148 389 2372\n3182 288 2505\n3226 127 2636\n3319 8 2792\n3414 3 2975\n3464 0 3121\n3505 11 3270\n3577 1 3411\n3629 0 3555\n3724 3 3730\n3780 0 3863\n2606 725 141\n2616 736 213\n2627 743 280\n2635 741 292\n2635 732 345\n2648 728 429\n2636 732 485\n2646 726 582\n2643 723 637\n2672 707 763\n2660 693 844\n2642 659 936\n2677 624 979\n2730 396 1061\n2793 411 1204\n2876 441 1400\n2937 484 1573\n3015 556 1798\n3059 627 1990\n3102 642 2136\n3142 585 2249\n3151 543 2381\n3185 484 2497\n3231 388 2659\n3316 197 2811\n3394 34 3000\n3458 15 3128\n3520 0 3271\n3584 9 3423\n3635 0 3565\n3714 13 3729\n3791 123 3850\n2646 807 177\n2662 819 214\n2661 823 239\n2664 815 258\n2678 812 376\n2660 811 419\n2680 807 520\n2683 815 589\n2683 806 667\n2687 794 743\n2687 777 827\n2687 760 924\n2687 751 1014\n2734 574 1107\n2814 527 1241\n2875 575 1436\n2955 612 1599\n3019 691 1811\n3085 751 1998\n3116 782 2153\n3147 748 2274\n3161 699 2395\n3190 649 2538\n3237 601 2677\n3336 457 2826\n3409 369 3025\n3440 272 3140\n3520 194 3294\n3572 154 3427\n3623 158 3569\n3704 278 3705\n3768 455 3872\n2703 908 164\n2704 908 190\n2707 903 257\n2703 900 288\n2704 915 357\n2711 916 428\n2721 908 491\n2728 908 578\n2732 896 654\n2736 884 749\n2719 864 831\n2724 874 935\n2734 847 1034\n2725 797 1118\n2818 649 1232\n2899 702 1410\n2976 747 1611\n3026 816 1790\n3098 883 1992\n3137 906 2149\n3161 894 2285\n3169 854 2431\n3211 822 2554\n3253 765 2679\n3334 674 2828\n3391 610 3004\n3454 550 3136\n3492 517 3274\n3567 499 3427\n3615 511 3538\n3686 570 3716\n3740 684 3862\n2760 1038 156\n2741 1042 196\n2737 1033 220\n2768 1014 287\n2753 1022 360\n2773 1020 413\n2768 1017 513\n2766 999 597\n2777 1006 678\n2785 994 772\n2760 985 833\n2774 970 960\n2757 968 1067\n2774 950 1152\n2835 814 1231\n2907 821 1424\n2964 878 1617\n3035 947 1804\n3083 1009 2000\n3137 1063 2179\n3179 1043 2316\n3184 1018 2431\n3206 982 2568\n3262 927 2713\n3335 855 2862\n3403 810 3010\n3448 773 3144\n3501 727 3273\n3567 737 3439\n3637 748 3573\n3685 784 3717\n3755 863 3857\n2801 1129 126\n2809 1145 155\n2794 1156 204\n2810 1148 294\n2818 1139 366\n2813 1135 435\n2802 1129 498\n2803 1125 600\n2822 1125 702\n2845 1110 779\n2811 1102 843\n2820 1095 954\n2820 1073 1105\n2812 1085 1192\n2826 1029 1305\n2937 943 1421\n2984 1006 1634\n3058 1068 1823\n3105 1146 2011\n3164 1208 2199\n3184 1213 2337\n3203 1178 2456\n3232 1145 2588\n3264 1102 2743\n3348 1039 2873\n3399 998 3031\n3433 971 3153\n3495 940 3283\n3546 943 3434\n3597 938 3585\n3673 967 3704\n3731 1038 3894\n2850 1283 92\n2858 1275 142\n2847 1283 197\n2852 1272 290\n2849 1270 350\n2865 1283 433\n2871 1262 508\n2877 1268 591\n2870 1259 680\n2893 1253 778\n2873 1229 879\n2879 1240 997\n2897 1217 1131\n2877 1219 1223\n2850 1199 1322\n2919 1101 1422\n3000 1139 1648\n3054 1211 1826\n3114 1276 2034\n3162 1365 2228\n3174 1386 2368\n3207 1350 2475\n3240 1304 2605\n3267 1266 2752\n3350 1226 2895\n3412 1184 3058\n3440 1147 3191\n3502 1120 3312\n3554 1117 3463\n3608 1129 3579\n3663 1135 3740\n3747 1190 3900\n2911 1425 90\n2908 1422 116\n2913 1433 191\n2928 1422 283\n2937 1413 351\n2902 1418 425\n2908 1403 521\n2911 1412 612\n2905 1400 709\n2923 1410 830\n2936 1389 936\n2924 1368 1044\n2913 1360 1149\n2920 1357 1256\n2917 1340 1367\n2906 1327 1500\n2990 1259 1635\n3048 1349 1834\n3127 1419 2045\n3175 1505 2249\n3212 1527 2392\n3223 1511 2511\n3236 1487 2631\n3282 1451 2763\n3357 1390 2937\n3426 1348 3083\n3453 1330 3205\n3509 1298 3317\n3536 1282 3457\n3595 1299 3596\n3662 1312 3736\n3733 1367 3899\n2954 1559 40\n2957 1565 118\n2964 1571 179\n2968 1569 266\n2971 1568 334\n2974 1563 439\n2973 1568 523\n2990 1568 631\n2981 1549 729\n2986 1548 838\n2992 1549 942\n2980 1521 1065\n2989 1511 1178\n2977 1512 1284\n2963 1479 1396\n2948 1486 1503\n2976 1441 1631\n3056 1477 1818\n3130 1552 2045\n3154 1641 2250\n3206 1693 2420\n3207 1683 2527\n3255 1635 2646\n3283 1608 2788\n3368 1557 2924\n3410 1520 3071\n3464 1506 3223\n3485 1478 3316\n3530 1465 3467\n3591 1462 3601\n3653 1481 3739\n3704 1493 3892\n2973 1715 25\n2976 1730 108\n2977 1727 152\n2982 1728 247\n2991 1724 340\n3006 1717 436\n3025 1715 544\n3023 1715 641\n3033 1706 740\n3035 1707 871\n3051 1699 997\n3034 1690 1080\n3038 1677 1192\n3042 1662 1334\n3014 1662 1478\n3025 1635 1589\n2995 1630 1683\n3046 1581 1835\n3112 1690 2038\n3165 1767 2283\n3204 1863 2482\n3235 1846 2570\n3240 1816 2688\n3304 1785 2805\n3372 1746 2961\n3405 1695 3083\n3444 1675 3227\n3461 1644 3336\n3521 1622 3472\n3578 1624 3620\n3622 1631 3743\n3702 1663 3900\n2969 1871 27\n2989 1886 75\n2990 1871 147\n2998 1879 245\n3001 1880 327\n3007 1885 436\n3017 1873 532\n3045 1874 648\n3048 1870 771\n3086 1861 896\n3101 1845 1028\n3092 1864 1138\n3100 1851 1243\n3079 1841 1372\n3069 1814 1502\n3084 1805 1632\n3055 1788 1743\n3032 1778 1887\n3114 1807 2040\n3170 1881 2279\n3222 1988 2487\n3228 2016 2621\n3257 1991 2699\n3305 1950 2849\n3350 1902 2973\n3400 1878 3104\n3443 1844 3202\n3453 1828 3337\n3501 1791 3472\n3565 1802 3631\n3590 1809 3747\n3651 1814 3906\n2984 2049 20\n2985 2044 60\n2985 2022 129\n2990 2020 246\n2981 2043 345\n3005 2030 441\n3034 2029 553\n3040 2033 665\n3065 2025 783\n3086 2020 893\n3098 2020 1021\n3134 2017 1159\n3161 2011 1289\n3140 2004 1429\n3132 1985 1541\n3102 1992 1650\n3097 1964 1812\n3083 1952 1928\n3086 1934 2095\n3143 2014 2279\n3222 2111 2495\n3239 2192 2636\n3256 2161 2753\n3297 2118 2879\n3346 2089 3017\n3382 2043 3121\n3383 2023 3241\n3443 1981 3358\n3493 1959 3487\n3543 1938 3624\n3604 1938 3771\n3639 1953 3902\n2969 2184 28\n2977 2184 66\n2970 2195 151\n2988 2180 258\n2997 2187 370\n3000 2180 466\n3013 2174 565\n3028 2189 674\n3062 2172 812\n3082 2176 922\n3102 2180 1050\n3137 2176 1191\n3160 2171 1343\n3175 2166 1489\n3188 2153 1620\n3179 2140 1755\n3159 2144 1870\n3145 2119 2021\n3109 2125 2146\n3150 2143 2281\n3190 2228 2482\n3239 2323 2701\n3255 2306 2792\n3293 2284 2887\n3349 2235 3037\n3372 2195 3129\n3407 2179 3257\n3435 2141 3377\n3481 2114 3505\n3511 2092 3623\n3573 2090 3785\n3618 2080 3925\n2943 2343 19\n2963 2325 86\n2973 2339 196\n2981 2338 272\n2985 2345 369\n2998 2347 493\n3017 2327 590\n3043 2342 714\n3056 2343 818\n3070 2340 948\n3092 2323 1081\n3109 2337 1216\n3146 2334 1361\n3160 2337 1509\n3183 2312 1648\n3215 2321 1822\n3223 2311 1953\n3200 2309 2088\n3155 2302 2199\n3132 2312 2330\n3179 2359 2505\n3228 2443 2705\n3254 2463 2825\n3300 2436 2932\n3332 2404 3053\n3345 2352 3177\n3388 2326 3255\n3421 2295 3393\n3462 2255 3513\n3508 2235 3641\n3543 2215 3772\n3601 2227 3915\n2953 2490 56\n2966 2482 170\n2957 2490 229\n2971 2490 330\n2989 2488 423\n2994 2484 498\n2997 2484 632\n3024 2490 756\n3035 2485 859\n3059 2486 958\n3094 2473 1118\n3102 2490 1251\n3133 2494 1379\n3157 2481 1531\n3169 2474 1679\n3177 2473 1847\n3220 2492 2007\n3246 2480 2189\n3206 2471 2297\n3174 2484 2381\n3148 2494 2531\n3234 2547 2696\n3280 2593 2884\n3293 2577 2952\n3355 2556 3080\n3352 2509 3189\n3402 2479 3292\n3410 2445 3392\n3419 2412 3528\n3475 2385 3658\n3514 2357 3794\n3569 2358 3932\n2959 2613 182\n2964 2626 260\n2970 2622 334\n2977 2622 377\n2966 2613 494\n2984 2621 586\n2988 2611 675\n3012 2623 788\n3030 2627 898\n3042 2627 1025\n3055 2646 1160\n3080 2632 1286\n3113 2647 1425\n3142 2640 1592\n3142 2631 1715\n3170 2623 1885\n3206 2625 2027\n3219 2637 2185\n3249 2648 2347\n3265 2653 2481\n3242 2641 2617\n3227 2648 2749\n3272 2730 2923\n3280 2724 3003\n3336 2688 3113\n3362 2650 3221\n3379 2616 3301\n3384 2591 3414\n3433 2559 3539\n3437 2536 3661\n3496 2495 3774\n3550 2486 3940\n2892 2678 419\n2883 2696 449\n2898 2697 507\n2897 2693 567\n2923 2712 648\n2921 2708 715\n2921 2718 780\n2947 2720 877\n2967 2743 965\n3008 2742 1102\n3017 2753 1215\n3047 2763 1340\n3074 2785 1470\n3109 2786 1613\n3129 2779 1770\n3163 2781 1906\n3183 2786 2056\n3197 2783 2205\n3224 2785 2372\n3255 2805 2556\n3276 2800 2690\n3262 2808 2790\n3269 2817 2913\n3302 2870 3084\n3356 2838 3180\n3339 2798 3239\n3359 2762 3341\n3395 2713 3460\n3408 2702 3566\n3415 2660 3671\n3460 2642 3802\n3504 2609 3963\n2829 2804 567\n2845 2807 610\n2846 2808 622\n2855 2803 699\n2873 2809 770\n2876 2815 820\n2879 2805 898\n2879 2812 984\n2890 2836 1094\n2930 2836 1184\n2935 2829 1313\n2977 2841 1436\n2997 2857 1566\n3038 2868 1694\n3053 2873 1808\n3083 2894 1934\n3126 2908 2092\n3172 2927 2249\n3195 2926 2415\n3237 2935 2568\n3270 2947 2702\n3297 2946 2865\n3282 2948 2979\n3306 3005 3101\n3342 2983 3196\n3340 2940 3271\n3386 2891 3391\n3379 2855 3463\n3379 2833 3575\n3405 2788 3716\n3426 2757 3828\n3473 2741 3971\n2828 2938 706\n2828 2934 723\n2828 2925 764\n2840 2939 810\n2838 2936 872\n2839 2941 935\n2852 2938 1001\n2877 2947 1094\n2884 2939 1179\n2880 2951 1286\n2897 2966 1385\n2933 2973 1507\n2978 2962 1651\n2967 2975 1780\n2984 2975 1872\n3037 2983 2014\n3054 3008 2174\n3069 3010 2288\n3145 3031 2443\n3153 3039 2577\n3229 3052 2722\n3252 3082 2877\n3290 3094 3008\n3313 3107 3118\n3338 3127 3249\n3358 3072 3299\n3346 3038 3398\n3332 2990 3493\n3363 2951 3595\n3363 2929 3719\n3384 2895 3854\n3417 2887 3989\n2803 3065 828\n2809 3077 850\n2818 3061 929\n2834 3058 945\n2812 3053 981\n2828 3066 1034\n2840 3072 1107\n2839 3072 1180\n2860 3077 1261\n2873 3065 1356\n2892 3085 1475\n2890 3078 1574\n2909 3094 1716\n2908 3108 1811\n2953 3092 1949\n2975 3109 2066\n2988 3116 2181\n3049 3115 2346\n3072 3133 2481\n3127 3121 2616\n3159 3162 2747\n3199 3176 2855\n3268 3194 3017\n3309 3229 3162\n3383 3249 3294\n3339 3233 3358\n3360 3177 3440\n3342 3144 3536\n3326 3095 3628\n3329 3050 3733\n3357 3033 3868\n3365 3013 3983\n2761 3187 999\n2764 3184 1019\n2800 3179 1040\n2796 3169 1082\n2792 3180 1132\n2812 3174 1162\n2821 3189 1249\n2811 3183 1309\n2828 3186 1403\n2848 3199 1479\n2854 3199 1583\n2852 3212 1666\n2885 3202 1795\n2898 3215 1905\n2942 3217 2010\n2950 3218 2139\n2968 3212 2257\n3013 3218 2390\n3040 3228 2517\n3095 3245 2640\n3126 3261 2744\n3176 3260 2870\n3220 3297 3022\n3260 3310 3181\n3329 3327 3287\n3355 3334 3410\n3297 3297 3435\n3287 3262 3528\n3280 3243 3634\n3297 3184 3736\n3315 3164 3867\n3358 3144 4008\n2775 3316 1180\n2776 3315 1208\n2774 3315 1223\n2785 3307 1224\n2794 3308 1272\n2798 3316 1320\n2810 3315 1378\n2811 3309 1449\n2827 3309 1518\n2825 3344 1607\n2825 3325 1683\n2850 3330 1791\n2875 3329 1903\n2883 3330 1996\n2890 3337 2107\n2939 3330 2210\n2967 3337 2305\n2987 3350 2428\n2994 3348 2544\n3040 3357 2628\n3074 3362 2767\n3111 3373 2896\n3140 3378 3011\n3196 3409 3134\n3268 3424 3296\n3277 3457 3392\n3281 3410 3469\n3265 3367 3557\n3245 3329 3663\n3235 3298 3762\n3253 3306 3906\n3284 3295 4016\n2776 3441 1383\n2792 3455 1404\n2778 3441 1390\n2781 3432 1434\n2778 3455 1451\n2787 3444 1494\n2808 3444 1567\n2799 3440 1607\n2812 3440 1664\n2826 3458 1756\n2840 3457 1861\n2850 3450 1914\n2864 3441 1998\n2883 3458 2086\n2896 3446 2210\n2921 3454 2302\n2939 3456 2390\n2968 3460 2515\n2979 3460 2578\n3003 3477 2695\n3036 3473 2797\n3068 3487 2917\n3103 3504 3033\n3149 3508 3163\n3226 3523 3292\n3218 3539 3389\n3216 3524 3492\n3239 3520 3591\n3201 3472 3643\n3200 3443 3759\n3203 3426 3871\n3235 3437 4015\n2776 3577 1571\n2777 3587 1615\n2793 3573 1611\n2791 3579 1650\n2782 3579 1681\n2786 3573 1730\n2810 3584 1792\n2810 3586 1827\n2819 3565 1878\n2831 3572 1960\n2833 3580 2007\n2856 3566 2080\n2869 3569 2153\n2891 3571 2228\n2910 3591 2310\n2914 3581 2415\n2926 3583 2503\n2946 3589 2579\n2975 3591 2657\n3005 3585 2756\n3027 3581 2850\n3064 3592 2953\n3094 3602 3064\n3118 3609 3154\n3165 3627 3266\n3184 3634 3395\n3150 3638 3506\n3182 3654 3594\n3213 3617 3697\n3170 3588 3812\n3185 3583 3944\n3204 3577 4077\n2827 3718 1847\n2842 3730 1855\n2826 3706 1875\n2850 3707 1912\n2832 3712 1918\n2855 3711 1947\n2855 3718 1989\n2867 3731 2061\n2867 3701 2088\n2877 3713 2147\n2897 3712 2207\n2898 3705 2257\n2907 3699 2310\n2927 3700 2395\n2940 3717 2446\n2949 3713 2543\n2953 3720 2608\n2975 3706 2681\n2999 3717 2756\n2995 3715 2831\n3019 3728 2938\n3036 3734 3005\n3069 3726 3113\n3098 3751 3196\n3150 3741 3313\n3111 3777 3417\n3101 3762 3530\n3071 3754 3591\n3149 3780 3737\n3166 3731 3802\n3179 3720 3958\n3212 3737 4078\n2892 3852 2144\n2905 3864 2164\n2910 3863 2169\n2911 3863 2169\n2908 3849 2198\n2909 3855 2211\n2923 3842 2245\n2929 3852 2296\n2930 3856 2326\n2957 3849 2370\n2957 3848 2403\n2959 3845 2468\n2981 3846 2492\n2979 3861 2583\n3002 3839 2623\n3004 3853 2682\n3020 3852 2763\n3036 3855 2805\n3026 3864 2868\n3047 3851 2959\n3053 3857 3015\n3064 3866 3092\n3085 3866 3176\n3098 3878 3245\n3121 3884 3329\n3132 3881 3452\n3034 3890 3509\n3009 3889 3620\n3037 3895 3735\n3106 3897 3854\n3152 3855 3955\n3245 3900 4067\n3008 3999 2457\n3033 4014 2474\n3036 4000 2493\n3035 4000 2493\n3027 3983 2483\n3037 4004 2527\n3037 4008 2559\n3051 4002 2571\n3053 3999 2601\n3062 4010 2638\n3072 4002 2676\n3072 3995 2709\n3069 3999 2746\n3117 3992 2804\n3096 4002 2826\n3121 4012 2898\n3120 3998 2939\n3131 3999 2985\n3140 4005 3027\n3143 4004 3096\n3133 4009 3166\n3145 4010 3219\n3153 4015 3272\n3153 4043 3364\n3185 4018 3442\n3162 4040 3492\n3039 4064 3563\n3006 4048 3662\n3017 4061 3785\n3038 4060 3914\n3154 4031 4001\n3253 4047 4095\n2647 372 276\n2636 398 257\n2650 421 275\n2668 476 260\n2682 453 308\n2685 465 388\n2679 447 437\n2682 443 518\n2698 421 589\n2691 397 671\n2704 338 744\n2690 261 833\n2772 10 870\n2818 13 997\n2907 13 1171\n2989 0 1354\n3031 0 1533\n3097 0 1726\n3177 0 1903\n3215 6 2078\n3229 3 2196\n3260 14 2337\n3304 14 2484\n3324 0 2600\n3384 0 2737\n3511 13 2923\n3548 0 3083\n3627 3 3246\n3680 1 3394\n3774 15 3556\n3812 3 3690\n3893 13 3825\n2638 402 261\n2651 422 256\n2658 467 251\n2680 496 270\n2683 496 285\n2681 484 367\n2695 479 434\n2693 469 525\n2680 459 597\n2699 429 675\n2689 379 759\n2684 324 821\n2753 26 866\n2844 0 992\n2909 0 1165\n2967 15 1357\n3045 8 1536\n3104 8 1722\n3154 4 1906\n3225 7 2086\n3243 6 2200\n3271 0 2340\n3288 1 2469\n3322 3 2614\n3385 0 2745\n3479 15 2949\n3535 0 3084\n3632 0 3253\n3680 0 3397\n3749 14 3555\n3797 0 3662\n3890 4 3850\n2664 436 269\n2667 480 256\n2686 499 219\n2697 519 261\n2697 517 300\n2681 510 358\n2725 509 464\n2717 488 543\n2717 470 609\n2692 462 665\n2709 425 760\n2721 378 831\n2773 86 891\n2853 6 988\n2918 9 1184\n2971 1 1334\n3048 8 1525\n3111 16 1729\n3172 6 1912\n3226 11 2086\n3254 4 2209\n3271 0 2342\n3289 3 2452\n3336 12 2613\n3352 15 2744\n3498 0 2942\n3537 3 3086\n3631 0 3253\n3684 1 3398\n3739 15 3518\n3812 3 3691\n3893 12 3827\n2689 512 222\n2694 517 223\n2676 535 226\n2706 564 236\n2698 563 298\n2707 547 367\n2726 556 464\n2714 533 514\n2724 517 609\n2703 506 683\n2733 455 762\n2732 430 846\n2754 212 915\n2840 7 1000\n2919 9 1171\n2980 8 1341\n3046 6 1520\n3122 10 1712\n3174 63 1914\n3246 131 2087\n3257 56 2220\n3271 5 2344\n3291 1 2471\n3359 0 2626\n3367 11 2747\n3510 11 2954\n3550 17 3106\n3629 0 3251\n3696 1 3398\n3758 4 3542\n3812 14 3703\n3890 3 3851\n2705 568 224\n2690 585 213\n2717 600 199\n2720 615 246\n2722 614 275\n2746 602 383\n2748 606 468\n2747 582 527\n2747 575 621\n2752 564 701\n2741 531 786\n2733 487 852\n2761 372 928\n2890 5 1010\n2914 6 1146\n2975 13 1336\n3036 42 1529\n3122 92 1718\n3196 221 1926\n3234 319 2135\n3243 267 2239\n3265 190 2355\n3307 72 2470\n3353 0 2622\n3404 5 2772\n3477 0 2955\n3566 0 3107\n3643 0 3257\n3680 0 3400\n3752 14 3561\n3812 3 3669\n3893 0 3857\n2733 644 155\n2751 677 160\n2752 677 172\n2761 676 255\n2765 669 312\n2755 664 378\n2763 664 462\n2768 645 538\n2772 639 604\n2778 635 708\n2784 603 787\n2763 575 873\n2771 505 936\n2863 174 1006\n2938 86 1156\n2993 129 1346\n3059 211 1549\n3139 285 1745\n3193 391 1943\n3256 473 2115\n3272 444 2234\n3280 398 2365\n3314 311 2507\n3346 183 2629\n3379 28 2760\n3501 3 2946\n3569 3 3121\n3633 0 3258\n3695 1 3401\n3733 2 3549\n3828 0 3707\n3898 3 3851\n2773 748 106\n2756 760 122\n2760 749 186\n2792 748 234\n2774 751 293\n2791 748 383\n2788 745 449\n2792 729 515\n2794 716 604\n2796 703 711\n2801 695 800\n2816 665 911\n2787 636 972\n2864 423 1055\n2950 264 1177\n3010 322 1373\n3072 377 1544\n3124 465 1756\n3208 535 1947\n3261 629 2127\n3271 606 2251\n3309 564 2383\n3322 511 2504\n3357 442 2649\n3411 332 2820\n3479 79 2933\n3563 7 3121\n3632 0 3253\n3680 0 3400\n3758 5 3552\n3812 3 3694\n3880 176 3857\n2814 853 73\n2818 843 125\n2822 843 170\n2831 846 241\n2818 839 298\n2821 831 380\n2834 823 453\n2831 811 537\n2838 802 626\n2838 809 719\n2837 773 800\n2848 760 903\n2817 730 974\n2860 646 1099\n2961 439 1167\n3010 473 1375\n3074 539 1557\n3151 602 1762\n3205 676 1945\n3270 773 2149\n3303 759 2266\n3314 736 2389\n3330 694 2524\n3353 629 2650\n3415 552 2805\n3514 424 2975\n3563 298 3130\n3617 220 3272\n3685 172 3414\n3734 187 3548\n3799 306 3701\n3873 513 3854\n2854 932 42\n2851 950 82\n2856 945 147\n2860 937 236\n2863 929 299\n2878 938 381\n2852 923 457\n2885 924 529\n2891 909 618\n2888 899 714\n2869 871 813\n2882 864 916\n2863 838 1002\n2869 820 1109\n2929 621 1181\n3034 620 1351\n3066 685 1551\n3141 745 1748\n3212 828 1963\n3254 909 2153\n3296 920 2296\n3316 890 2416\n3334 850 2523\n3379 802 2669\n3411 739 2808\n3493 654 2967\n3572 585 3132\n3604 537 3252\n3678 518 3405\n3728 525 3551\n3783 583 3706\n3868 728 3861\n2917 1055 66\n2896 1050 78\n2904 1052 135\n2909 1052 205\n2909 1044 316\n2904 1044 377\n2909 1037 464\n2913 1026 542\n2915 1014 626\n2914 1023 737\n2909 1006 818\n2913 977 903\n2922 956 1024\n2912 935 1114\n2923 850 1214\n3045 755 1353\n3086 808 1545\n3148 898 1749\n3213 957 1956\n3273 1042 2158\n3312 1066 2312\n3328 1056 2438\n3345 1018 2553\n3382 976 2690\n3421 932 2828\n3501 851 2979\n3555 812 3122\n3623 766 3279\n3676 756 3424\n3739 760 3574\n3783 802 3701\n3864 919 3857\n2948 1174 18\n2948 1166 38\n2953 1162 116\n2955 1157 194\n2961 1159 295\n2951 1155 376\n2953 1145 443\n2968 1142 552\n2958 1134 643\n2979 1124 733\n2974 1118 829\n2969 1096 932\n2960 1071 1076\n2961 1062 1139\n2946 1039 1260\n3023 907 1348\n3087 945 1557\n3172 1009 1745\n3222 1088 1972\n3291 1181 2178\n3325 1236 2333\n3331 1213 2452\n3355 1183 2562\n3385 1149 2711\n3424 1090 2835\n3501 1022 3016\n3571 995 3161\n3621 962 3285\n3656 946 3416\n3711 961 3573\n3772 989 3696\n3856 1093 3876\n2999 1310 6\n2994 1296 32\n3002 1296 98\n3003 1300 166\n3000 1295 288\n3014 1289 361\n3012 1275 455\n3023 1270 549\n3027 1258 639\n3020 1266 740\n3007 1232 850\n3025 1234 964\n3020 1204 1068\n3003 1195 1182\n3000 1164 1291\n3032 1125 1405\n3114 1068 1548\n3164 1139 1756\n3226 1222 1966\n3271 1311 2172\n3341 1391 2365\n3344 1367 2482\n3355 1344 2610\n3403 1315 2741\n3427 1278 2869\n3515 1215 3037\n3570 1168 3172\n3615 1136 3306\n3656 1141 3446\n3708 1133 3559\n3769 1178 3718\n3851 1243 3877\n3048 1448 25\n3035 1428 27\n3051 1438 76\n3056 1431 146\n3071 1430 264\n3062 1422 364\n3041 1422 468\n3068 1413 558\n3061 1413 667\n3056 1396 762\n3067 1382 876\n3065 1374 995\n3076 1348 1107\n3061 1332 1215\n3057 1315 1326\n3053 1316 1473\n3112 1205 1574\n3171 1284 1766\n3231 1353 1976\n3281 1442 2189\n3347 1541 2387\n3341 1549 2518\n3352 1512 2621\n3393 1488 2746\n3443 1436 2879\n3534 1392 3045\n3580 1347 3190\n3608 1321 3316\n3657 1312 3456\n3706 1320 3578\n3769 1350 3718\n3845 1425 3889\n3116 1575 0\n3095 1588 10\n3113 1572 63\n3103 1571 165\n3112 1575 255\n3116 1573 367\n3120 1565 472\n3119 1565 586\n3114 1549 666\n3116 1540 785\n3127 1535 878\n3108 1520 990\n3129 1517 1139\n3107 1491 1247\n3109 1479 1378\n3095 1466 1492\n3078 1444 1612\n3166 1406 1756\n3215 1490 1974\n3277 1588 2198\n3339 1677 2401\n3351 1715 2528\n3376 1673 2649\n3397 1654 2781\n3443 1603 2899\n3508 1559 3062\n3563 1520 3199\n3601 1499 3324\n3650 1490 3453\n3701 1484 3587\n3758 1514 3725\n3829 1569 3880\n3141 1728 7\n3111 1742 6\n3133 1737 42\n3132 1730 130\n3149 1738 265\n3160 1729 371\n3161 1728 476\n3162 1706 580\n3167 1696 697\n3160 1699 812\n3166 1692 923\n3168 1673 1042\n3178 1677 1153\n3177 1645 1298\n3129 1638 1388\n3148 1620 1515\n3125 1609 1642\n3137 1579 1771\n3224 1614 1971\n3263 1708 2195\n3335 1804 2410\n3371 1855 2583\n3363 1844 2685\n3391 1807 2792\n3444 1777 2938\n3509 1730 3085\n3563 1692 3208\n3592 1666 3336\n3640 1649 3463\n3687 1642 3589\n3734 1671 3734\n3814 1719 3899\n3140 1891 16\n3141 1891 4\n3140 1894 32\n3143 1892 94\n3153 1883 263\n3166 1899 372\n3159 1875 478\n3186 1876 604\n3192 1871 723\n3211 1866 854\n3234 1851 968\n3228 1837 1087\n3219 1831 1206\n3210 1821 1344\n3204 1815 1470\n3194 1797 1583\n3168 1765 1698\n3131 1769 1826\n3215 1734 1942\n3281 1817 2220\n3322 1936 2421\n3369 2029 2612\n3363 2007 2697\n3392 1979 2829\n3432 1955 2943\n3501 1918 3095\n3548 1861 3214\n3568 1835 3333\n3638 1828 3485\n3670 1818 3601\n3721 1834 3747\n3788 1862 3897\n3127 2054 0\n3137 2048 3\n3137 2046 27\n3136 2047 126\n3151 2028 243\n3167 2029 370\n3180 2034 499\n3193 2026 619\n3208 2017 729\n3229 2017 858\n3261 2012 989\n3263 1999 1107\n3256 2004 1242\n3263 1976 1378\n3249 1967 1492\n3240 1945 1598\n3216 1928 1744\n3215 1919 1876\n3200 1926 2023\n3264 1944 2196\n3290 2052 2412\n3352 2140 2616\n3380 2174 2756\n3402 2147 2866\n3417 2110 2977\n3507 2073 3111\n3534 2038 3231\n3561 2000 3340\n3607 1983 3472\n3662 1962 3616\n3709 1973 3754\n3761 1998 3899\n3132 2193 0\n3140 2191 4\n3145 2190 32\n3144 2177 133\n3160 2199 257\n3157 2197 391\n3176 2181 493\n3185 2184 632\n3218 2192 751\n3221 2185 886\n3260 2176 1016\n3281 2167 1140\n3302 2149 1299\n3308 2157 1436\n3292 2144 1561\n3291 2120 1701\n3273 2116 1814\n3252 2112 1971\n3215 2099 2067\n3230 2100 2215\n3280 2165 2419\n3343 2274 2636\n3376 2335 2787\n3382 2305 2872\n3410 2274 2999\n3505 2228 3134\n3522 2189 3261\n3557 2167 3387\n3588 2133 3478\n3642 2130 3618\n3697 2126 3764\n3720 2133 3879\n3126 2339 0\n3122 2339 13\n3128 2342 45\n3139 2335 168\n3147 2336 300\n3154 2334 412\n3173 2330 535\n3200 2330 669\n3197 2323 773\n3228 2335 909\n3250 2324 1042\n3263 2320 1165\n3293 2317 1316\n3303 2305 1462\n3340 2306 1608\n3350 2290 1767\n3318 2295 1887\n3321 2295 2026\n3266 2260 2119\n3246 2263 2265\n3273 2286 2420\n3315 2380 2627\n3377 2469 2817\n3417 2453 2944\n3418 2418 3018\n3485 2375 3177\n3508 2346 3278\n3538 2317 3377\n3582 2284 3506\n3620 2257 3635\n3673 2263 3766\n3707 2266 3913\n3122 2484 0\n3120 2487 18\n3129 2473 92\n3125 2477 235\n3159 2479 353\n3149 2474 456\n3160 2471 584\n3180 2474 705\n3199 2476 822\n3217 2477 928\n3244 2466 1093\n3262 2470 1218\n3264 2468 1346\n3286 2471 1508\n3324 2471 1649\n3331 2465 1813\n3352 2458 1970\n3363 2457 2121\n3328 2446 2245\n3302 2448 2346\n3261 2446 2460\n3320 2490 2636\n3396 2578 2845\n3408 2607 2968\n3419 2561 3049\n3475 2529 3193\n3505 2492 3294\n3549 2460 3387\n3564 2441 3527\n3587 2411 3622\n3647 2407 3768\n3687 2397 3912\n3118 2634 37\n3122 2632 93\n3122 2618 194\n3141 2641 300\n3144 2623 409\n3164 2632 525\n3164 2626 627\n3181 2611 729\n3194 2632 868\n3194 2626 995\n3212 2619 1126\n3237 2627 1254\n3259 2634 1393\n3281 2608 1527\n3286 2632 1681\n3317 2619 1840\n3347 2624 1986\n3370 2632 2155\n3390 2623 2315\n3339 2621 2429\n3322 2603 2552\n3295 2608 2664\n3370 2673 2837\n3436 2738 3015\n3414 2716 3087\n3486 2686 3210\n3504 2655 3323\n3533 2620 3420\n3548 2593 3536\n3569 2558 3653\n3622 2542 3785\n3676 2528 3938\n3119 2746 235\n3125 2763 275\n3107 2743 358\n3105 2767 408\n3121 2749 491\n3129 2762 593\n3134 2757 704\n3161 2768 822\n3159 2776 946\n3174 2780 1051\n3211 2779 1177\n3226 2774 1318\n3250 2767 1438\n3257 2781 1585\n3278 2784 1722\n3292 2774 1870\n3317 2768 2031\n3335 2768 2173\n3347 2762 2338\n3391 2785 2514\n3395 2785 2647\n3364 2761 2737\n3346 2767 2842\n3409 2867 3046\n3416 2868 3141\n3469 2823 3254\n3489 2779 3339\n3510 2742 3440\n3526 2706 3549\n3568 2688 3670\n3587 2680 3799\n3652 2661 3948\n3024 2827 482\n3031 2819 531\n3028 2821 555\n3042 2833 586\n3051 2832 663\n3068 2840 730\n3068 2856 821\n3076 2846 912\n3083 2863 1030\n3138 2866 1139\n3156 2870 1261\n3186 2869 1395\n3217 2896 1522\n3242 2909 1662\n3267 2904 1787\n3271 2920 1930\n3307 2925 2093\n3303 2924 2228\n3330 2920 2397\n3353 2919 2540\n3391 2919 2689\n3400 2920 2824\n3387 2922 2938\n3379 2939 3021\n3440 2993 3185\n3474 2959 3288\n3469 2934 3374\n3491 2888 3460\n3521 2851 3572\n3526 2822 3690\n3546 2791 3804\n3625 2777 3980\n2989 2947 645\n2994 2938 704\n3016 2925 715\n2994 2924 762\n3008 2941 783\n3018 2942 868\n3020 2941 929\n3024 2958 1018\n3049 2955 1114\n3077 2967 1234\n3082 2965 1322\n3108 2968 1468\n3113 2988 1590\n3143 2982 1720\n3185 2986 1838\n3216 2998 1979\n3225 3023 2131\n3268 3033 2264\n3291 3049 2409\n3336 3061 2569\n3362 3070 2709\n3377 3068 2839\n3424 3094 2988\n3407 3082 3097\n3455 3123 3208\n3492 3103 3331\n3471 3066 3408\n3489 3019 3501\n3506 2986 3596\n3498 2952 3695\n3536 2930 3825\n3570 2919 3957\n2963 3063 793\n2983 3056 823\n2982 3056 838\n2967 3058 880\n2976 3069 917\n2991 3079 976\n3000 3085 1048\n2991 3078 1132\n3014 3081 1224\n3028 3085 1317\n3045 3082 1430\n3060 3097 1547\n3093 3085 1665\n3084 3085 1803\n3128 3097 1939\n3150 3102 2051\n3171 3101 2189\n3210 3121 2324\n3238 3131 2448\n3245 3150 2586\n3293 3164 2710\n3355 3183 2852\n3409 3185 3003\n3440 3225 3138\n3424 3229 3254\n3497 3261 3375\n3487 3222 3438\n3473 3166 3526\n3460 3129 3606\n3479 3071 3706\n3501 3053 3852\n3537 3037 3988\n2949 3183 948\n2962 3186 962\n2963 3187 964\n2975 3199 1031\n2964 3205 1087\n2964 3197 1133\n2991 3189 1198\n3004 3187 1292\n2991 3203 1353\n2991 3202 1459\n3007 3204 1537\n3023 3210 1633\n3048 3212 1763\n3068 3219 1880\n3083 3214 1993\n3111 3228 2099\n3130 3227 2238\n3145 3243 2360\n3172 3235 2485\n3222 3235 2615\n3261 3254 2740\n3294 3264 2856\n3341 3296 2992\n3374 3316 3135\n3430 3344 3271\n3508 3363 3411\n3456 3343 3462\n3445 3307 3555\n3456 3262 3651\n3458 3215 3749\n3456 3184 3864\n3492 3167 4002\n2939 3327 1117\n2942 3313 1162\n2930 3301 1156\n2942 3314 1227\n2955 3326 1240\n2957 3314 1290\n2954 3327 1346\n2960 3336 1419\n2993 3318 1481\n2974 3330 1584\n2987 3332 1659\n3003 3332 1757\n3020 3344 1871\n3041 3339 1973\n3052 3359 2078\n3078 3337 2175\n3098 3350 2292\n3130 3349 2419\n3154 3342 2526\n3166 3349 2640\n3194 3365 2748\n3248 3375 2867\n3300 3392 3005\n3340 3408 3131\n3374 3426 3252\n3429 3457 3384\n3440 3471 3465\n3424 3412 3543\n3422 3377 3655\n3409 3347 3752\n3410 3326 3869\n3427 3311 3999\n2924 3443 1311\n2925 3458 1326\n2927 3434 1359\n2927 3455 1376\n2953 3450 1422\n2944 3454 1483\n2955 3459 1541\n2962 3451 1589\n2976 3462 1645\n2984 3460 1734\n2990 3453 1823\n3008 3452 1905\n2993 3460 1988\n3027 3466 2081\n3033 3479 2192\n3044 3457 2276\n3083 3465 2382\n3093 3443 2475\n3107 3473 2568\n3141 3467 2680\n3182 3477 2788\n3210 3478 2888\n3245 3490 3018\n3292 3521 3144\n3325 3538 3261\n3363 3553 3394\n3377 3557 3493\n3393 3554 3589\n3360 3493 3673\n3346 3462 3758\n3357 3455 3882\n3397 3446 4018\n2938 3588 1576\n2926 3577 1564\n2939 3588 1595\n2941 3589 1601\n2939 3586 1631\n2956 3584 1706\n2955 3585 1741\n2969 3586 1783\n2975 3585 1852\n2984 3589 1927\n2996 3580 1986\n3020 3597 2071\n3021 3583 2138\n3036 3588 2208\n3032 3584 2279\n3055 3577 2374\n3078 3588 2466\n3091 3585 2562\n3114 3591 2640\n3143 3594 2756\n3165 3608 2847\n3186 3614 2955\n3214 3604 3053\n3233 3607 3154\n3266 3651 3286\n3316 3652 3408\n3311 3641 3492\n3329 3641 3577\n3387 3634 3716\n3344 3620 3788\n3329 3574 3892\n3344 3602 4034\n2988 3718 1812\n2988 3720 1837\n2981 3707 1855\n2960 3720 1886\n2988 3710 1892\n2974 3732 1911\n2997 3710 1969\n3006 3721 2007\n3008 3706 2063\n3002 3726 2120\n3027 3724 2184\n3038 3718 2254\n3052 3718 2307\n3048 3728 2363\n3070 3719 2426\n3065 3729 2509\n3100 3720 2598\n3090 3720 2666\n3105 3724 2734\n3139 3729 2841\n3168 3730 2920\n3194 3734 3025\n3194 3721 3088\n3229 3739 3198\n3258 3751 3291\n3295 3766 3408\n3266 3769 3507\n3260 3755 3590\n3294 3768 3704\n3328 3738 3803\n3299 3721 3946\n3330 3737 4064\n3022 3868 2133\n3022 3868 2133\n3022 3868 2134\n3034 3877 2149\n3022 3852 2170\n3038 3868 2214\n3043 3865 2241\n3038 3852 2263\n3072 3878 2324\n3076 3852 2353\n3092 3844 2384\n3100 3862 2461\n3088 3862 2498\n3124 3858 2544\n3103 3859 2594\n3124 3858 2670\n3141 3860 2739\n3144 3869 2816\n3175 3853 2866\n3185 3856 2946\n3186 3870 3022\n3204 3876 3105\n3202 3868 3155\n3203 3860 3250\n3236 3884 3329\n3270 3887 3459\n3247 3899 3513\n3196 3898 3593\n3211 3899 3734\n3273 3916 3865\n3311 3884 3950\n3359 3884 4092\n3122 3999 2428\n3138 4014 2469\n3128 4002 2457\n3148 4025 2489\n3138 4009 2477\n3144 4001 2521\n3151 4009 2540\n3169 3999 2560\n3175 4003 2598\n3167 3994 2630\n3186 4004 2652\n3199 3999 2701\n3193 3998 2745\n3196 4012 2801\n3210 3997 2823\n3195 4015 2887\n3214 4007 2935\n3222 4013 3017\n3235 4012 3064\n3238 4002 3106\n3251 4015 3165\n3278 4029 3236\n3280 4028 3284\n3282 4040 3363\n3286 4043 3454\n3299 4037 3527\n3278 4032 3578\n3183 4061 3672\n3193 4063 3768\n3198 4063 3900\n3294 4047 4016\n3376 4047 4082\n2808 369 270\n2824 399 257\n2802 422 237\n2831 449 223\n2843 489 264\n2846 479 329\n2838 455 400\n2849 443 479\n2855 423 564\n2832 378 621\n2856 319 716\n2829 248 802\n2877 52 874\n2955 13 952\n3026 14 1101\n3088 8 1296\n3162 5 1484\n3233 5 1673\n3275 0 1873\n3342 16 2052\n3389 0 2215\n3419 0 2356\n3431 5 2480\n3454 0 2599\n3499 0 2747\n3536 13 2894\n3659 16 3097\n3727 14 3249\n3807 0 3397\n3859 0 3542\n3924 14 3703\n3977 0 3838\n2795 416 231\n2811 433 245\n2818 465 232\n2846 502 213\n2858 513 244\n2864 499 323\n2865 482 405\n2862 463 483\n2862 440 574\n2871 422 649\n2870 351 740\n2856 294 799\n2878 108 881\n2974 0 955\n3029 16 1104\n3099 0 1296\n3162 0 1489\n3225 8 1680\n3284 18 1873\n3361 7 2069\n3383 6 2211\n3421 0 2363\n3409 15 2469\n3468 13 2613\n3503 0 2747\n3575 12 2906\n3654 3 3085\n3728 13 3248\n3781 13 3397\n3860 1 3543\n3911 0 3690\n3991 13 3851\n2831 451 232\n2843 468 214\n2843 496 204\n2858 528 196\n2851 543 249\n2887 528 343\n2857 514 400\n2879 499 484\n2876 476 567\n2878 456 657\n2882 396 740\n2870 346 802\n2894 179 893\n2964 10 949\n3047 1 1110\n3096 1 1294\n3163 6 1485\n3229 1 1678\n3277 9 1866\n3354 1 2065\n3402 9 2234\n3411 0 2354\n3407 0 2463\n3450 1 2603\n3505 2 2749\n3560 1 2894\n3658 12 3101\n3743 2 3222\n3781 14 3398\n3859 0 3542\n3911 1 3690\n3992 12 3852\n2841 501 210\n2834 531 194\n2841 553 171\n2859 580 170\n2875 580 251\n2888 578 346\n2871 551 391\n2877 541 480\n2865 513 554\n2882 506 660\n2885 452 747\n2878 402 814\n2894 299 907\n2967 7 957\n3035 1 1110\n3096 13 1293\n3166 1 1486\n3237 5 1684\n3297 14 1893\n3343 47 2060\n3398 98 2245\n3414 17 2364\n3427 4 2461\n3465 10 2631\n3502 1 2748\n3563 1 2918\n3646 0 3089\n3742 1 3251\n3807 1 3393\n3857 0 3543\n3926 16 3709\n3992 12 3852\n2853 570 178\n2850 598 163\n2880 628 173\n2883 632 191\n2884 658 234\n2898 612 332\n2900 609 406\n2910 605 483\n2905 585 587\n2900 559 669\n2900 524 767\n2892 471 817\n2914 420 930\n2983 47 956\n3063 0 1116\n3110 3 1304\n3184 6 1496\n3247 11 1687\n3305 55 1875\n3384 218 2096\n3410 291 2256\n3427 248 2363\n3414 152 2500\n3453 22 2605\n3508 6 2752\n3577 0 2928\n3665 13 3080\n3745 0 3252\n3783 13 3395\n3858 0 3543\n3922 14 3680\n3977 5 3840\n2907 682 134\n2897 672 101\n2907 711 109\n2898 696 156\n2905 694 251\n2931 693 329\n2903 692 415\n2928 663 484\n2938 650 593\n2931 627 650\n2939 594 765\n2925 561 859\n2920 516 934\n2979 261 1005\n3064 14 1117\n3107 10 1286\n3167 45 1473\n3242 103 1688\n3312 252 1896\n3384 393 2103\n3418 479 2279\n3413 433 2377\n3442 378 2508\n3469 286 2623\n3506 122 2763\n3574 21 2904\n3665 11 3102\n3731 11 3257\n3802 3 3399\n3843 1 3546\n3913 2 3696\n3986 13 3852\n2915 780 77\n2929 790 64\n2929 791 97\n2933 782 141\n2938 780 238\n2957 774 334\n2945 761 387\n2961 754 485\n2946 720 565\n2949 701 650\n2953 693 764\n2945 663 856\n2947 610 937\n2976 511 1025\n3039 131 1094\n3123 123 1309\n3205 223 1503\n3257 331 1706\n3312 421 1902\n3355 560 2097\n3416 647 2289\n3424 604 2400\n3438 564 2500\n3466 504 2643\n3506 401 2774\n3570 261 2923\n3656 56 3105\n3729 14 3252\n3788 25 3410\n3855 0 3546\n3906 19 3697\n3986 225 3858\n2958 875 32\n2965 870 36\n2971 873 82\n2974 871 142\n2966 873 253\n2966 856 328\n2970 843 415\n2970 833 500\n2977 823 599\n3002 802 679\n2998 777 760\n2988 750 859\n2982 727 967\n2997 669 1063\n3054 424 1114\n3134 346 1308\n3199 423 1510\n3260 517 1700\n3307 597 1900\n3361 685 2104\n3437 786 2306\n3427 768 2409\n3434 726 2525\n3482 671 2660\n3507 619 2793\n3578 541 2946\n3646 379 3094\n3725 266 3265\n3794 203 3411\n3844 232 3577\n3908 350 3720\n3959 534 3868\n2997 973 0\n3004 968 26\n2989 976 49\n3015 979 143\n2999 962 235\n3001 943 311\n3014 945 417\n3026 940 504\n3026 921 602\n3029 908 700\n3017 879 773\n3029 860 887\n3017 836 971\n3004 799 1068\n3065 682 1168\n3133 532 1277\n3202 596 1491\n3269 671 1702\n3315 735 1900\n3375 851 2095\n3451 942 2317\n3456 936 2404\n3456 901 2537\n3493 859 2677\n3519 802 2796\n3568 744 2936\n3653 632 3112\n3729 574 3286\n3792 541 3420\n3854 561 3559\n3909 617 3726\n3961 736 3841\n3036 1071 3\n3047 1083 24\n3019 1087 40\n3057 1077 165\n3032 1072 232\n3042 1057 327\n3050 1061 411\n3063 1058 500\n3062 1040 601\n3057 1019 680\n3039 1001 780\n3068 987 895\n3072 950 1002\n3053 934 1094\n3050 898 1216\n3150 695 1286\n3218 727 1487\n3277 806 1706\n3335 878 1904\n3382 983 2126\n3442 1087 2316\n3454 1089 2442\n3451 1064 2537\n3501 1022 2671\n3526 973 2809\n3584 928 2962\n3656 850 3115\n3736 800 3304\n3794 775 3429\n3842 788 3569\n3888 832 3706\n3952 927 3857\n3086 1193 0\n3089 1190 0\n3094 1184 37\n3099 1202 109\n3097 1183 205\n3099 1177 310\n3102 1166 406\n3106 1171 505\n3110 1167 610\n3119 1129 692\n3118 1120 805\n3110 1107 918\n3103 1072 1014\n3091 1059 1097\n3094 1027 1227\n3126 935 1324\n3207 877 1484\n3295 951 1700\n3323 1029 1911\n3407 1113 2128\n3436 1218 2326\n3456 1249 2463\n3472 1232 2572\n3496 1206 2714\n3532 1149 2819\n3591 1118 2979\n3665 1019 3137\n3737 995 3285\n3775 987 3425\n3830 986 3572\n3904 1033 3717\n3948 1120 3854\n3148 1334 8\n3137 1324 0\n3143 1324 26\n3151 1319 71\n3146 1307 192\n3141 1298 310\n3149 1291 419\n3152 1279 513\n3152 1271 605\n3163 1260 695\n3156 1249 818\n3153 1238 929\n3153 1202 1018\n3144 1183 1147\n3150 1169 1270\n3137 1152 1367\n3221 1018 1482\n3293 1087 1705\n3335 1164 1924\n3391 1249 2124\n3450 1361 2329\n3467 1407 2488\n3472 1402 2595\n3481 1364 2716\n3529 1318 2836\n3592 1284 3001\n3657 1206 3135\n3724 1174 3306\n3748 1166 3426\n3829 1178 3572\n3872 1203 3707\n3943 1278 3864\n3195 1461 0\n3193 1452 0\n3186 1439 25\n3201 1444 63\n3192 1438 163\n3202 1431 289\n3200 1438 403\n3200 1422 511\n3204 1418 625\n3199 1406 728\n3188 1375 813\n3203 1374 938\n3213 1349 1061\n3185 1325 1160\n3186 1319 1286\n3169 1296 1408\n3213 1226 1534\n3292 1202 1696\n3335 1288 1908\n3384 1384 2126\n3430 1490 2340\n3466 1572 2541\n3495 1561 2637\n3493 1523 2738\n3538 1497 2869\n3594 1454 3009\n3655 1386 3153\n3710 1356 3312\n3764 1340 3449\n3818 1336 3595\n3865 1379 3731\n3928 1428 3858\n3247 1601 12\n3232 1604 9\n3247 1579 0\n3247 1598 36\n3233 1585 149\n3254 1585 291\n3256 1572 420\n3259 1566 523\n3247 1564 635\n3256 1557 759\n3243 1534 858\n3251 1522 970\n3240 1507 1077\n3233 1475 1191\n3227 1463 1340\n3218 1427 1438\n3204 1441 1580\n3274 1339 1683\n3327 1422 1899\n3384 1519 2135\n3433 1624 2329\n3490 1714 2538\n3472 1722 2656\n3500 1696 2762\n3554 1660 2900\n3568 1615 3029\n3651 1558 3174\n3707 1533 3327\n3750 1517 3455\n3811 1522 3597\n3852 1533 3703\n3911 1582 3884\n3273 1757 22\n3275 1761 3\n3273 1746 6\n3282 1744 41\n3271 1733 134\n3289 1731 271\n3283 1731 411\n3295 1729 524\n3309 1709 642\n3296 1710 755\n3287 1695 886\n3312 1683 999\n3289 1677 1111\n3283 1652 1247\n3289 1642 1364\n3267 1596 1458\n3269 1575 1612\n3247 1570 1744\n3331 1542 1916\n3375 1637 2132\n3439 1744 2348\n3461 1858 2561\n3491 1882 2704\n3491 1851 2795\n3539 1817 2917\n3569 1793 3039\n3666 1725 3198\n3710 1690 3326\n3740 1668 3465\n3780 1672 3593\n3837 1698 3746\n3906 1737 3873\n3287 1900 13\n3301 1894 6\n3290 1895 7\n3289 1887 19\n3306 1878 153\n3306 1888 288\n3312 1890 435\n3322 1878 541\n3335 1872 670\n3327 1858 789\n3345 1864 911\n3335 1832 1033\n3326 1823 1152\n3319 1808 1269\n3327 1805 1407\n3308 1768 1503\n3295 1754 1644\n3266 1748 1769\n3314 1696 1904\n3377 1766 2138\n3413 1861 2348\n3456 1975 2570\n3491 2051 2734\n3493 2020 2845\n3539 1988 2936\n3570 1958 3061\n3651 1888 3215\n3684 1870 3348\n3738 1844 3476\n3779 1846 3612\n3824 1858 3749\n3881 1902 3878\n3287 2051 8\n3298 2038 0\n3301 2049 0\n3302 2038 28\n3307 2027 156\n3311 2036 302\n3335 2038 429\n3343 2032 564\n3364 2024 686\n3375 2000 807\n3396 2014 962\n3386 1992 1067\n3386 1987 1212\n3373 1965 1323\n3366 1960 1454\n3365 1936 1573\n3357 1931 1708\n3339 1892 1807\n3298 1898 1951\n3372 1896 2106\n3413 1999 2347\n3464 2100 2562\n3475 2194 2755\n3507 2175 2866\n3520 2146 2977\n3556 2105 3065\n3643 2076 3226\n3678 2024 3369\n3709 2006 3470\n3755 2004 3608\n3817 2006 3752\n3857 2041 3889\n3286 2199 3\n3295 2193 0\n3295 2191 9\n3299 2168 27\n3312 2194 161\n3318 2177 313\n3337 2188 458\n3340 2175 581\n3364 2166 704\n3387 2173 846\n3397 2163 980\n3424 2151 1121\n3438 2144 1270\n3442 2130 1390\n3408 2117 1497\n3407 2110 1639\n3387 2093 1767\n3362 2076 1891\n3362 2076 2014\n3326 2069 2160\n3392 2113 2358\n3439 2218 2569\n3488 2316 2780\n3488 2326 2883\n3527 2306 2992\n3546 2265 3093\n3632 2223 3254\n3654 2185 3364\n3698 2161 3479\n3741 2154 3603\n3788 2154 3755\n3844 2176 3886\n3282 2343 0\n3288 2349 0\n3283 2343 2\n3297 2328 67\n3307 2331 191\n3318 2336 355\n3330 2334 480\n3349 2332 631\n3369 2335 754\n3379 2316 880\n3387 2319 1017\n3414 2314 1155\n3436 2298 1295\n3441 2303 1437\n3470 2292 1590\n3464 2265 1729\n3440 2281 1839\n3429 2259 1970\n3402 2243 2078\n3373 2233 2231\n3347 2236 2353\n3411 2313 2589\n3469 2423 2774\n3517 2481 2941\n3530 2447 3018\n3548 2427 3135\n3617 2391 3290\n3649 2343 3373\n3673 2316 3495\n3723 2300 3627\n3773 2299 3755\n3836 2315 3921\n3285 2477 0\n3292 2489 4\n3286 2478 5\n3301 2474 125\n3311 2480 262\n3310 2465 408\n3330 2470 535\n3342 2468 657\n3348 2461 772\n3372 2471 904\n3381 2472 1047\n3398 2464 1180\n3420 2467 1319\n3430 2461 1478\n3456 2448 1630\n3481 2447 1768\n3491 2450 1918\n3466 2427 2020\n3449 2413 2195\n3407 2410 2284\n3377 2400 2399\n3405 2416 2547\n3463 2528 2793\n3505 2609 2956\n3516 2601 3071\n3541 2561 3151\n3599 2525 3298\n3642 2492 3396\n3671 2452 3511\n3703 2450 3633\n3755 2420 3783\n3798 2446 3918\n3292 2627 3\n3269 2624 11\n3279 2627 87\n3289 2617 194\n3308 2629 334\n3316 2624 469\n3330 2618 576\n3314 2625 689\n3336 2623 844\n3346 2617 966\n3367 2616 1096\n3375 2619 1226\n3394 2621 1369\n3419 2602 1507\n3436 2616 1658\n3453 2608 1810\n3473 2590 1962\n3480 2595 2116\n3498 2593 2281\n3457 2581 2382\n3437 2581 2490\n3392 2575 2622\n3454 2625 2770\n3538 2722 2994\n3529 2743 3102\n3539 2720 3195\n3590 2675 3314\n3628 2647 3438\n3661 2610 3530\n3706 2588 3654\n3739 2563 3774\n3787 2560 3918\n3295 2774 49\n3274 2774 89\n3271 2776 197\n3279 2780 295\n3284 2771 398\n3300 2760 519\n3303 2769 630\n3317 2768 761\n3322 2762 870\n3353 2755 1003\n3359 2763 1151\n3372 2757 1284\n3403 2761 1411\n3394 2757 1542\n3430 2754 1709\n3439 2752 1840\n3451 2761 2019\n3475 2754 2178\n3500 2752 2353\n3503 2767 2471\n3481 2750 2575\n3453 2723 2672\n3426 2734 2793\n3493 2804 2989\n3537 2873 3162\n3541 2852 3236\n3579 2808 3352\n3606 2773 3444\n3653 2740 3548\n3686 2724 3669\n3717 2707 3801\n3782 2707 3948\n3242 2876 286\n3254 2874 354\n3270 2889 395\n3257 2876 446\n3252 2890 535\n3288 2884 649\n3279 2888 743\n3280 2896 835\n3302 2902 949\n3337 2897 1079\n3342 2904 1181\n3362 2898 1340\n3384 2917 1466\n3380 2916 1606\n3412 2892 1754\n3412 2908 1898\n3437 2902 2052\n3454 2896 2194\n3463 2890 2352\n3489 2904 2510\n3517 2919 2656\n3507 2900 2770\n3481 2877 2865\n3480 2887 2994\n3534 2996 3178\n3543 2987 3264\n3555 2978 3381\n3605 2928 3465\n3621 2889 3564\n3641 2852 3679\n3703 2824 3806\n3743 2819 3946\n3188 2956 543\n3180 2955 587\n3199 2955 624\n3193 2956 666\n3188 2972 722\n3190 2963 793\n3214 2977 871\n3210 2985 961\n3228 2987 1055\n3254 2975 1165\n3274 3002 1280\n3295 3002 1422\n3310 3016 1536\n3338 3020 1663\n3364 3026 1797\n3391 3031 1936\n3411 3044 2081\n3421 3048 2231\n3449 3049 2383\n3459 3048 2539\n3497 3051 2684\n3504 3049 2821\n3520 3057 2953\n3519 3057 3052\n3539 3068 3152\n3558 3130 3337\n3572 3097 3422\n3595 3052 3491\n3619 3019 3600\n3627 2985 3702\n3657 2956 3818\n3704 2952 3986\n3127 3081 728\n3151 3067 755\n3148 3071 771\n3152 3057 836\n3138 3069 886\n3148 3087 952\n3157 3075 1023\n3163 3095 1117\n3175 3089 1201\n3192 3089 1305\n3202 3086 1398\n3228 3095 1508\n3245 3097 1620\n3253 3117 1778\n3272 3113 1873\n3300 3127 2031\n3326 3123 2148\n3364 3144 2296\n3389 3163 2425\n3420 3182 2552\n3452 3179 2711\n3486 3196 2835\n3506 3196 2967\n3529 3212 3124\n3534 3184 3216\n3570 3259 3358\n3573 3218 3430\n3589 3184 3540\n3621 3148 3638\n3610 3115 3712\n3623 3085 3853\n3670 3056 3978\n3100 3186 870\n3122 3196 925\n3132 3207 939\n3131 3202 980\n3115 3197 1019\n3122 3199 1090\n3125 3202 1153\n3143 3199 1250\n3142 3206 1308\n3145 3207 1400\n3149 3205 1507\n3197 3216 1617\n3204 3212 1737\n3227 3238 1864\n3226 3218 1970\n3253 3224 2104\n3262 3242 2195\n3297 3245 2342\n3324 3262 2471\n3338 3264 2597\n3376 3280 2723\n3417 3294 2845\n3489 3310 3000\n3520 3328 3131\n3528 3344 3270\n3538 3343 3375\n3584 3373 3493\n3586 3313 3571\n3577 3282 3642\n3587 3249 3748\n3619 3213 3868\n3625 3196 3985\n3089 3330 1049\n3102 3327 1126\n3115 3340 1145\n3105 3328 1165\n3118 3327 1208\n3097 3341 1244\n3110 3330 1339\n3126 3340 1410\n3153 3314 1471\n3139 3332 1552\n3135 3343 1646\n3151 3332 1717\n3177 3346 1834\n3189 3350 1946\n3203 3353 2060\n3220 3349 2165\n3253 3365 2279\n3270 3349 2398\n3268 3367 2510\n3310 3358 2628\n3340 3380 2769\n3375 3392 2873\n3422 3399 2994\n3441 3425 3129\n3488 3426 3245\n3529 3468 3391\n3589 3493 3525\n3571 3458 3588\n3584 3414 3686\n3544 3377 3767\n3584 3345 3882\n3603 3330 4012\n3073 3446 1291\n3073 3445 1294\n3086 3458 1312\n3077 3448 1333\n3102 3458 1418\n3099 3460 1442\n3077 3460 1498\n3089 3472 1554\n3093 3465 1616\n3108 3458 1727\n3118 3458 1787\n3135 3470 1874\n3136 3463 1972\n3169 3469 2061\n3165 3474 2150\n3209 3474 2267\n3225 3476 2362\n3228 3460 2449\n3250 3484 2580\n3273 3477 2662\n3289 3471 2781\n3349 3482 2916\n3361 3504 3028\n3400 3521 3142\n3452 3522 3272\n3460 3555 3366\n3526 3556 3510\n3556 3572 3605\n3540 3542 3704\n3522 3507 3770\n3538 3502 3899\n3554 3460 4043\n3086 3578 1546\n3074 3604 1522\n3075 3588 1555\n3103 3590 1570\n3076 3592 1618\n3092 3588 1656\n3094 3589 1692\n3112 3591 1772\n3109 3582 1820\n3126 3591 1883\n3125 3576 1951\n3131 3586 2035\n3140 3589 2118\n3145 3601 2213\n3151 3590 2269\n3179 3614 2366\n3217 3592 2450\n3215 3589 2538\n3246 3592 2631\n3267 3595 2732\n3277 3600 2840\n3310 3604 2953\n3327 3607 3049\n3362 3620 3164\n3380 3622 3278\n3453 3665 3395\n3477 3673 3510\n3489 3670 3605\n3519 3684 3717\n3489 3622 3787\n3475 3590 3916\n3491 3604 4060\n3089 3735 1779\n3088 3722 1807\n3090 3724 1841\n3116 3720 1859\n3102 3721 1900\n3119 3723 1913\n3110 3726 1949\n3121 3734 1994\n3129 3721 2048\n3151 3735 2099\n3139 3723 2159\n3146 3727 2223\n3158 3723 2294\n3170 3723 2342\n3186 3719 2417\n3200 3722 2501\n3211 3721 2579\n3217 3730 2648\n3250 3732 2728\n3250 3721 2813\n3276 3736 2925\n3282 3726 3014\n3302 3725 3093\n3329 3751 3187\n3373 3741 3323\n3402 3767 3421\n3456 3756 3524\n3427 3756 3579\n3441 3770 3734\n3461 3755 3790\n3443 3738 3932\n3474 3753 4077\n3111 3853 2102\n3152 3853 2116\n3153 3852 2116\n3164 3864 2146\n3168 3868 2154\n3166 3862 2184\n3147 3863 2220\n3184 3868 2262\n3166 3868 2293\n3189 3857 2325\n3201 3868 2370\n3208 3860 2435\n3197 3860 2498\n3210 3865 2554\n3210 3873 2600\n3237 3874 2664\n3248 3868 2731\n3239 3870 2780\n3255 3872 2882\n3296 3868 2958\n3281 3878 3035\n3314 3857 3112\n3314 3882 3194\n3341 3872 3262\n3370 3884 3372\n3391 3884 3454\n3412 3883 3528\n3376 3913 3637\n3362 3900 3721\n3407 3914 3835\n3442 3898 3960\n3474 3913 4095\n3234 3999 2460\n3253 4013 2476\n3252 4015 2471\n3252 4012 2479\n3250 4015 2508\n3263 4015 2548\n3253 4004 2540\n3278 4002 2572\n3268 4012 2599\n3282 4017 2647\n3279 4010 2657\n3300 4028 2711\n3298 4012 2758\n3298 4015 2794\n3295 4017 2837\n3316 4015 2866\n3330 4007 2934\n3312 4015 2996\n3354 4001 3068\n3358 4027 3125\n3378 4025 3182\n3373 4020 3252\n3367 4026 3308\n3386 4045 3370\n3385 4031 3446\n3412 4044 3537\n3415 4033 3605\n3377 4062 3673\n3356 4061 3783\n3331 4078 3898\n3420 4090 4027\n3507 4063 4095\n2979 369 259\n2961 416 209\n2978 433 208\n2994 455 193\n2997 498 161\n2999 484 257\n2996 466 343\n3012 458 429\n3011 413 514\n3013 390 615\n3018 311 679\n3026 231 769\n3013 89 872\n3104 0 920\n3154 9 1048\n3229 6 1243\n3290 2 1425\n3373 9 1627\n3406 16 1832\n3478 0 2048\n3542 0 2213\n3538 11 2368\n3554 28 2475\n3559 14 2571\n3616 12 2760\n3640 13 2892\n3728 14 3051\n3828 16 3222\n3909 0 3382\n3973 14 3543\n4024 0 3676\n4091 14 3840\n2961 417 195\n2975 435 205\n2993 454 194\n3009 512 163\n3014 517 167\n3026 512 285\n3038 501 376\n3023 478 447\n3023 450 534\n3024 414 614\n3027 349 701\n3032 269 777\n3026 153 886\n3113 8 946\n3166 13 1054\n3232 0 1235\n3277 14 1430\n3362 0 1638\n3426 0 1854\n3469 13 2026\n3519 4 2235\n3550 0 2352\n3543 11 2468\n3558 11 2572\n3603 3 2720\n3664 3 2890\n3753 1 3056\n3828 15 3222\n3909 0 3396\n3987 1 3530\n4039 15 3690\n4077 0 3827\n2968 452 177\n2991 497 175\n2995 501 176\n2999 547 158\n3027 537 171\n3042 537 270\n3014 528 355\n3051 513 457\n3043 478 550\n3028 441 629\n3031 392 693\n3032 318 784\n3014 230 876\n3103 1 941\n3163 14 1042\n3209 9 1231\n3327 0 1440\n3372 0 1639\n3414 4 1831\n3487 0 2045\n3520 0 2234\n3549 7 2359\n3549 14 2479\n3572 15 2610\n3642 0 2754\n3668 2 2870\n3727 12 3037\n3846 2 3217\n3906 1 3383\n3957 0 3530\n4024 0 3674\n4091 13 3841\n3011 518 165\n3012 562 170\n3012 578 117\n3014 599 135\n3034 586 175\n3055 593 279\n3039 568 347\n3025 551 438\n3032 519 518\n3026 497 604\n3032 469 718\n3054 402 808\n3044 319 875\n3080 33 956\n3159 6 1037\n3250 4 1254\n3297 0 1425\n3373 0 1650\n3425 7 1847\n3488 8 2046\n3526 77 2236\n3571 59 2390\n3572 17 2486\n3565 6 2607\n3632 0 2747\n3683 11 2908\n3751 0 3030\n3842 2 3222\n3907 1 3382\n3974 15 3543\n4036 14 3691\n4091 0 3865\n3017 586 114\n3024 627 95\n3044 646 124\n3055 663 99\n3039 660 155\n3073 656 268\n3072 638 352\n3077 625 439\n3061 588 521\n3059 559 629\n3068 526 757\n3065 464 813\n3072 404 880\n3097 173 988\n3181 16 1068\n3238 0 1223\n3282 6 1431\n3355 12 1658\n3427 2 1851\n3468 42 2011\n3548 261 2243\n3579 299 2397\n3559 214 2514\n3605 107 2641\n3641 17 2737\n3691 4 2922\n3719 28 3042\n3844 0 3220\n3881 14 3382\n3957 0 3531\n4035 18 3691\n4077 4 3828\n3062 669 85\n3073 694 72\n3060 715 46\n3073 713 97\n3086 724 176\n3075 726 272\n3060 691 346\n3088 680 433\n3094 651 554\n3087 629 633\n3080 601 715\n3075 547 814\n3081 498 900\n3097 388 1007\n3170 3 1059\n3251 5 1266\n3314 0 1441\n3364 10 1652\n3394 91 1804\n3470 267 2025\n3532 446 2239\n3584 485 2410\n3589 420 2528\n3610 376 2644\n3653 249 2792\n3678 75 2902\n3730 17 3052\n3841 25 3232\n3902 4 3394\n3944 15 3530\n4025 1 3688\n4080 5 3859\n3076 781 40\n3074 784 13\n3088 808 6\n3078 811 68\n3075 794 153\n3114 793 269\n3093 775 347\n3112 774 441\n3093 742 522\n3094 725 614\n3117 701 729\n3106 657 827\n3131 602 930\n3093 554 1022\n3183 173 1082\n3260 8 1242\n3277 49 1412\n3346 164 1608\n3420 319 1829\n3452 466 2027\n3523 616 2241\n3573 649 2407\n3606 615 2523\n3581 574 2639\n3620 484 2770\n3707 394 2929\n3751 216 3085\n3828 22 3246\n3901 5 3396\n3959 0 3545\n4014 50 3704\n4089 284 3868\n3114 873 0\n3116 903 13\n3116 910 12\n3114 902 37\n3113 900 162\n3126 877 262\n3123 863 347\n3139 856 441\n3130 829 527\n3151 800 638\n3144 800 731\n3123 742 821\n3143 709 924\n3147 662 1024\n3169 511 1118\n3251 187 1190\n3298 282 1423\n3342 394 1607\n3433 511 1831\n3474 626 2050\n3527 757 2252\n3581 818 2424\n3590 770 2533\n3636 734 2655\n3641 680 2785\n3699 614 2923\n3745 523 3085\n3845 336 3270\n3928 262 3430\n3969 274 3569\n4020 387 3703\n4083 564 3868\n3147 982 4\n3155 1006 0\n3147 994 2\n3158 995 29\n3165 988 149\n3171 969 238\n3171 974 376\n3156 944 446\n3169 942 570\n3168 911 642\n3187 891 752\n3164 862 846\n3171 827 952\n3171 797 1054\n3178 736 1149\n3253 450 1218\n3331 477 1421\n3378 562 1616\n3435 656 1843\n3508 761 2047\n3541 887 2262\n3598 963 2403\n3603 943 2534\n3609 916 2661\n3633 859 2796\n3685 798 2951\n3758 716 3119\n3842 603 3280\n3903 575 3427\n3969 578 3564\n4014 630 3709\n4075 752 3856\n3211 1097 0\n3171 1087 0\n3169 1107 37\n3188 1112 22\n3195 1104 110\n3201 1085 249\n3188 1091 339\n3197 1060 443\n3192 1047 558\n3197 1026 640\n3188 1009 751\n3210 996 847\n3222 946 957\n3187 913 1057\n3198 886 1174\n3265 714 1269\n3321 649 1393\n3382 717 1617\n3447 794 1857\n3483 914 2066\n3525 1035 2246\n3586 1115 2438\n3601 1118 2553\n3621 1076 2682\n3645 1028 2815\n3689 976 2944\n3744 921 3102\n3846 817 3296\n3890 797 3430\n3947 797 3556\n4008 851 3707\n4059 953 3880\n3239 1223 0\n3249 1205 13\n3232 1197 1\n3230 1229 27\n3233 1219 108\n3232 1198 240\n3246 1189 344\n3237 1184 459\n3235 1170 546\n3248 1145 663\n3243 1118 772\n3235 1100 894\n3268 1074 956\n3243 1053 1067\n3244 1032 1218\n3231 969 1320\n3324 796 1395\n3377 853 1619\n3427 954 1855\n3497 1041 2062\n3522 1169 2256\n3591 1276 2444\n3610 1276 2580\n3614 1232 2678\n3655 1194 2824\n3688 1156 2947\n3732 1114 3100\n3828 1022 3282\n3891 996 3432\n3946 1004 3581\n3987 1056 3698\n4038 1137 3835\n3271 1340 24\n3282 1343 5\n3279 1340 0\n3283 1344 4\n3297 1338 84\n3295 1319 212\n3301 1315 355\n3303 1310 448\n3289 1287 558\n3312 1266 663\n3298 1247 760\n3289 1238 882\n3274 1205 965\n3264 1188 1096\n3271 1165 1232\n3283 1133 1354\n3331 1012 1441\n3412 998 1642\n3434 1102 1854\n3488 1195 2061\n3549 1297 2265\n3586 1401 2458\n3607 1438 2606\n3605 1407 2701\n3662 1377 2844\n3697 1327 2979\n3723 1293 3097\n3836 1208 3293\n3870 1214 3429\n3918 1199 3554\n3990 1228 3689\n4033 1295 3849\n3332 1476 2\n3338 1465 0\n3341 1462 10\n3348 1461 4\n3332 1468 63\n3344 1452 201\n3350 1443 325\n3339 1426 445\n3344 1418 565\n3354 1418 690\n3336 1396 774\n3342 1377 891\n3324 1354 999\n3330 1346 1112\n3320 1316 1225\n3321 1274 1358\n3296 1255 1473\n3390 1137 1623\n3422 1231 1843\n3487 1335 2089\n3544 1444 2290\n3565 1558 2489\n3627 1597 2645\n3618 1572 2746\n3646 1540 2854\n3697 1498 3000\n3746 1453 3135\n3827 1400 3312\n3872 1377 3446\n3927 1361 3585\n3983 1402 3732\n4023 1450 3853\n3378 1607 7\n3357 1614 19\n3392 1603 0\n3381 1608 0\n3387 1613 49\n3397 1593 199\n3381 1588 351\n3381 1561 470\n3381 1560 589\n3394 1550 700\n3390 1539 828\n3386 1521 933\n3370 1521 1036\n3369 1479 1160\n3356 1464 1289\n3350 1426 1389\n3341 1404 1536\n3402 1336 1648\n3453 1358 1845\n3498 1444 2061\n3542 1566 2287\n3579 1676 2488\n3623 1752 2684\n3625 1721 2776\n3634 1701 2878\n3687 1667 2998\n3730 1611 3138\n3826 1561 3321\n3856 1541 3449\n3911 1540 3575\n3961 1557 3725\n4015 1628 3886\n3404 1754 7\n3402 1746 14\n3429 1752 13\n3426 1754 0\n3434 1747 38\n3431 1732 205\n3417 1733 339\n3420 1725 463\n3430 1714 583\n3435 1708 709\n3424 1694 823\n3436 1682 949\n3415 1675 1068\n3422 1628 1204\n3403 1620 1299\n3409 1586 1411\n3406 1542 1553\n3371 1559 1691\n3449 1458 1825\n3481 1577 2051\n3534 1686 2270\n3569 1804 2493\n3614 1910 2710\n3616 1899 2810\n3630 1858 2915\n3670 1841 3046\n3721 1781 3159\n3829 1730 3330\n3862 1706 3464\n3896 1703 3586\n3953 1721 3738\n3995 1761 3875\n3428 1910 0\n3445 1896 11\n3444 1901 2\n3455 1893 14\n3463 1902 32\n3446 1893 201\n3444 1887 322\n3454 1876 481\n3461 1873 604\n3460 1868 754\n3465 1855 866\n3465 1824 974\n3466 1825 1127\n3452 1805 1221\n3474 1768 1348\n3458 1751 1490\n3436 1728 1587\n3404 1712 1726\n3407 1681 1871\n3468 1695 2060\n3512 1811 2287\n3540 1921 2504\n3598 2033 2703\n3615 2046 2849\n3631 2011 2929\n3669 1994 3061\n3736 1944 3196\n3788 1894 3338\n3855 1878 3471\n3889 1875 3594\n3931 1862 3742\n3992 1916 3867\n3442 2049 14\n3451 2047 0\n3456 2045 1\n3467 2051 1\n3465 2039 27\n3460 2039 207\n3480 2038 354\n3502 2034 505\n3509 2021 629\n3520 2019 756\n3525 1984 897\n3511 1990 1029\n3529 1973 1159\n3499 1953 1285\n3521 1939 1412\n3480 1930 1513\n3482 1890 1631\n3469 1877 1782\n3419 1868 1885\n3470 1841 2031\n3505 1911 2273\n3563 2038 2514\n3570 2149 2710\n3623 2207 2879\n3633 2179 2948\n3686 2151 3071\n3712 2095 3194\n3798 2051 3354\n3838 2039 3473\n3873 2018 3587\n3905 2033 3723\n3969 2077 3892\n3434 2203 9\n3429 2193 1\n3443 2198 8\n3462 2194 15\n3460 2182 58\n3460 2182 222\n3480 2176 392\n3484 2189 541\n3513 2171 668\n3532 2162 801\n3546 2153 925\n3556 2140 1088\n3549 2134 1225\n3554 2118 1329\n3548 2132 1448\n3539 2099 1570\n3511 2078 1714\n3498 2057 1844\n3471 2021 1941\n3431 2036 2106\n3491 2042 2306\n3524 2158 2517\n3568 2265 2732\n3606 2349 2878\n3623 2331 2978\n3652 2308 3095\n3685 2270 3210\n3768 2212 3354\n3804 2202 3476\n3847 2185 3593\n3902 2185 3741\n3949 2217 3875\n3454 2320 5\n3431 2343 0\n3441 2329 25\n3452 2346 0\n3449 2327 85\n3463 2325 265\n3464 2332 419\n3487 2327 571\n3495 2330 698\n3523 2318 845\n3518 2304 978\n3546 2305 1124\n3568 2286 1272\n3587 2281 1410\n3593 2277 1543\n3570 2252 1667\n3555 2256 1779\n3555 2231 1910\n3521 2203 2024\n3489 2187 2168\n3460 2200 2298\n3521 2248 2512\n3548 2370 2695\n3619 2471 2932\n3633 2473 3024\n3667 2453 3122\n3675 2418 3215\n3761 2375 3373\n3774 2348 3479\n3837 2322 3620\n3871 2320 3760\n3933 2344 3912\n3449 2472 0\n3454 2488 2\n3453 2486 9\n3473 2482 34\n3465 2476 141\n3469 2481 326\n3474 2462 464\n3500 2467 606\n3503 2473 733\n3512 2466 866\n3524 2462 1005\n3547 2470 1159\n3559 2438 1285\n3572 2437 1454\n3583 2448 1581\n3607 2436 1743\n3605 2428 1876\n3586 2421 1999\n3559 2380 2142\n3535 2382 2241\n3494 2354 2352\n3513 2377 2497\n3525 2458 2724\n3593 2567 2914\n3607 2624 3073\n3651 2594 3149\n3666 2547 3282\n3740 2522 3379\n3768 2494 3510\n3804 2475 3622\n3859 2452 3772\n3928 2488 3914\n3453 2631 0\n3426 2623 12\n3427 2626 9\n3442 2625 91\n3454 2633 230\n3463 2621 383\n3479 2620 529\n3475 2616 657\n3484 2619 792\n3497 2611 908\n3496 2607 1033\n3518 2609 1185\n3537 2615 1324\n3555 2602 1471\n3591 2594 1640\n3608 2585 1793\n3614 2587 1971\n3628 2591 2099\n3581 2553 2227\n3599 2556 2359\n3537 2549 2448\n3489 2527 2558\n3543 2560 2695\n3577 2651 2895\n3624 2752 3082\n3631 2736 3196\n3670 2700 3287\n3730 2655 3409\n3774 2638 3525\n3791 2606 3633\n3851 2594 3771\n3910 2593 3916\n3444 2752 8\n3415 2758 3\n3408 2760 92\n3431 2773 217\n3436 2756 358\n3458 2760 490\n3450 2752 574\n3440 2770 701\n3475 2761 821\n3495 2750 969\n3514 2738 1097\n3517 2755 1235\n3536 2764 1375\n3532 2755 1537\n3573 2723 1672\n3573 2738 1817\n3595 2746 1986\n3592 2733 2132\n3635 2725 2313\n3620 2735 2420\n3610 2719 2529\n3581 2717 2618\n3516 2690 2733\n3577 2751 2940\n3635 2866 3126\n3622 2870 3218\n3627 2852 3324\n3706 2813 3441\n3780 2768 3548\n3789 2748 3654\n3826 2736 3789\n3880 2737 3924\n3414 2906 75\n3424 2902 151\n3417 2904 212\n3430 2921 327\n3423 2921 429\n3449 2911 551\n3450 2910 653\n3447 2923 758\n3456 2920 874\n3491 2906 1007\n3493 2890 1129\n3494 2902 1277\n3503 2904 1430\n3520 2895 1573\n3525 2896 1725\n3545 2893 1862\n3579 2891 2025\n3586 2888 2170\n3589 2872 2320\n3611 2891 2482\n3633 2888 2623\n3631 2870 2727\n3593 2861 2842\n3563 2831 2911\n3568 2953 3117\n3674 3014 3280\n3668 2962 3343\n3692 2950 3460\n3738 2917 3564\n3768 2879 3687\n3818 2879 3790\n3857 2859 3941\n3372 2995 420\n3368 3000 455\n3369 2996 480\n3394 3009 558\n3379 3011 636\n3393 3009 721\n3404 3026 815\n3402 3021 922\n3435 3037 1026\n3451 3029 1129\n3465 3037 1249\n3486 3039 1373\n3500 3045 1477\n3490 3042 1620\n3507 3030 1743\n3513 3035 1901\n3547 3041 2057\n3555 3027 2218\n3584 3019 2357\n3591 3023 2494\n3619 3035 2641\n3634 3041 2781\n3627 3037 2901\n3595 3005 3005\n3589 3016 3090\n3637 3141 3302\n3671 3115 3379\n3693 3100 3500\n3720 3050 3599\n3754 3014 3685\n3783 2998 3816\n3836 2992 3962\n3277 3086 642\n3288 3102 670\n3295 3090 731\n3322 3099 731\n3299 3078 814\n3305 3093 879\n3315 3092 962\n3321 3102 1056\n3346 3104 1161\n3350 3112 1275\n3378 3116 1398\n3401 3110 1484\n3396 3133 1600\n3433 3143 1717\n3453 3139 1852\n3482 3146 1985\n3497 3175 2107\n3526 3176 2265\n3557 3171 2382\n3590 3155 2507\n3585 3174 2680\n3604 3179 2803\n3617 3167 2934\n3640 3196 3091\n3634 3151 3182\n3627 3210 3281\n3642 3259 3426\n3714 3204 3540\n3734 3179 3621\n3753 3147 3720\n3778 3115 3831\n3805 3104 3979\n3270 3202 809\n3285 3195 882\n3271 3225 913\n3282 3187 959\n3275 3214 960\n3288 3221 1012\n3287 3203 1124\n3287 3215 1195\n3292 3215 1269\n3316 3224 1376\n3314 3221 1476\n3322 3217 1571\n3357 3218 1713\n3370 3216 1820\n3371 3231 1933\n3394 3238 2063\n3426 3244 2179\n3444 3253 2303\n3473 3258 2448\n3511 3285 2598\n3538 3302 2711\n3573 3324 2845\n3589 3296 2967\n3623 3316 3087\n3665 3331 3243\n3646 3323 3340\n3656 3389 3449\n3687 3362 3559\n3716 3311 3653\n3737 3267 3752\n3738 3246 3867\n3761 3230 4000\n3252 3330 1044\n3241 3344 1089\n3241 3343 1097\n3231 3329 1101\n3242 3332 1147\n3252 3345 1226\n3259 3330 1284\n3263 3340 1362\n3288 3340 1436\n3291 3344 1533\n3281 3345 1624\n3293 3348 1705\n3325 3346 1800\n3341 3346 1907\n3348 3336 2009\n3359 3341 2132\n3393 3349 2265\n3406 3362 2373\n3413 3389 2505\n3446 3374 2614\n3473 3391 2763\n3503 3410 2856\n3523 3409 2957\n3549 3425 3104\n3621 3471 3229\n3643 3458 3367\n3673 3474 3501\n3692 3477 3591\n3717 3457 3671\n3703 3409 3767\n3717 3377 3880\n3713 3346 3982\n3220 3486 1240\n3222 3474 1297\n3222 3487 1276\n3220 3477 1309\n3254 3463 1343\n3245 3452 1397\n3239 3466 1468\n3239 3464 1496\n3242 3479 1582\n3266 3477 1688\n3277 3472 1760\n3275 3468 1842\n3298 3467 1923\n3323 3475 2040\n3330 3468 2121\n3329 3477 2243\n3354 3479 2344\n3367 3475 2443\n3401 3481 2550\n3416 3491 2657\n3423 3513 2790\n3459 3492 2891\n3492 3504 3004\n3525 3525 3127\n3570 3550 3256\n3605 3570 3367\n3656 3577 3511\n3717 3621 3653\n3687 3602 3718\n3674 3540 3784\n3673 3521 3869\n3705 3477 4043\n3248 3603 1454\n3233 3604 1512\n3235 3602 1520\n3251 3605 1576\n3246 3601 1565\n3236 3588 1602\n3253 3592 1656\n3266 3601 1719\n3269 3593 1784\n3278 3596 1829\n3279 3596 1921\n3280 3620 2017\n3283 3600 2106\n3291 3605 2188\n3308 3614 2258\n3311 3615 2332\n3342 3587 2427\n3348 3591 2522\n3354 3600 2606\n3380 3601 2735\n3403 3609 2816\n3435 3619 2968\n3448 3633 3054\n3479 3622 3172\n3511 3642 3265\n3530 3639 3380\n3605 3657 3505\n3642 3716 3649\n3656 3674 3707\n3624 3668 3787\n3611 3623 3914\n3627 3621 4016\n3236 3749 1772\n3249 3721 1790\n3236 3707 1776\n3250 3738 1783\n3260 3732 1866\n3261 3725 1907\n3252 3737 1907\n3256 3726 1966\n3269 3728 2006\n3281 3727 2078\n3274 3715 2125\n3280 3730 2212\n3307 3729 2267\n3316 3737 2358\n3295 3743 2394\n3338 3730 2491\n3330 3737 2566\n3360 3735 2632\n3376 3737 2727\n3388 3742 2823\n3408 3738 2894\n3428 3739 2992\n3417 3747 3086\n3462 3740 3182\n3493 3726 3282\n3511 3755 3407\n3555 3769 3493\n3607 3800 3637\n3589 3785 3720\n3621 3786 3803\n3577 3782 3931\n3578 3754 4063\n3282 3867 2099\n3282 3867 2098\n3283 3867 2100\n3299 3882 2144\n3273 3880 2137\n3284 3868 2163\n3274 3869 2191\n3297 3872 2230\n3302 3882 2277\n3302 3882 2301\n3308 3871 2346\n3327 3868 2446\n3330 3870 2483\n3323 3861 2540\n3345 3868 2604\n3358 3860 2648\n3370 3874 2712\n3368 3884 2773\n3380 3868 2860\n3399 3873 2931\n3410 3882 3006\n3432 3879 3104\n3431 3893 3185\n3446 3873 3262\n3466 3872 3349\n3508 3886 3427\n3510 3898 3512\n3559 3929 3641\n3498 3916 3706\n3513 3915 3820\n3574 3914 3961\n3591 3914 4066\n3382 4027 2471\n3378 4028 2471\n3361 4012 2471\n3380 4031 2486\n3364 4027 2487\n3369 4031 2491\n3380 4026 2502\n3386 4015 2558\n3380 4015 2564\n3375 4005 2595\n3391 4020 2630\n3407 4031 2700\n3410 4015 2732\n3405 4022 2762\n3424 4043 2836\n3412 4023 2876\n3412 4037 2913\n3434 4027 2980\n3463 4021 3038\n3463 4031 3121\n3470 4018 3179\n3482 4026 3226\n3474 4045 3333\n3505 4029 3366\n3487 4030 3458\n3526 4035 3528\n3526 4060 3614\n3559 4077 3703\n3508 4061 3783\n3475 4091 3881\n3510 4076 4009\n3607 4063 4081\n3140 384 193\n3139 432 192\n3141 450 165\n3156 496 145\n3169 516 130\n3173 512 172\n3185 493 317\n3189 461 397\n3192 424 481\n3177 391 567\n3183 324 648\n3177 177 747\n3180 55 836\n3211 8 931\n3284 1 1000\n3350 16 1184\n3417 16 1390\n3466 1 1562\n3520 7 1778\n3595 10 1994\n3648 1 2198\n3695 11 2387\n3693 11 2490\n3714 3 2596\n3719 14 2736\n3768 13 2877\n3842 3 3052\n3891 14 3216\n3996 29 3350\n4058 15 3496\n4077 0 3662\n4094 14 3837\n3140 448 161\n3128 465 145\n3143 483 132\n3172 514 129\n3161 549 119\n3173 556 200\n3172 525 309\n3192 495 383\n3188 476 477\n3181 409 572\n3191 345 657\n3189 255 758\n3173 131 839\n3209 6 931\n3300 0 985\n3353 9 1174\n3420 0 1381\n3466 9 1590\n3532 1 1786\n3595 0 1972\n3653 6 2178\n3686 15 2361\n3691 14 2497\n3715 0 2594\n3729 0 2734\n3783 0 2878\n3814 14 3027\n3890 2 3168\n4006 14 3382\n4058 0 3529\n4077 0 3662\n4079 0 3822\n3126 470 119\n3170 514 159\n3142 530 126\n3161 550 113\n3188 593 101\n3185 578 191\n3176 569 272\n3169 529 375\n3215 506 477\n3191 461 564\n3194 393 682\n3200 306 762\n3185 189 850\n3202 26 938\n3286 1 1001\n3341 8 1179\n3424 0 1397\n3473 13 1593\n3550 1 1791\n3586 1 1975\n3648 1 2196\n3695 3 2385\n3701 1 2487\n3718 0 2622\n3721 12 2736\n3768 16 2854\n3815 13 3024\n3893 13 3187\n4010 15 3382\n4042 15 3526\n4078 0 3689\n4094 15 3837\n3144 531 127\n3164 552 116\n3176 582 109\n3177 615 66\n3192 628 88\n3188 610 178\n3212 617 302\n3197 565 396\n3217 554 475\n3194 512 569\n3206 451 661\n3195 379 741\n3201 291 857\n3198 99 943\n3293 6 1023\n3359 13 1177\n3417 6 1382\n3480 9 1574\n3523 1 1790\n3598 13 2001\n3644 1 2191\n3714 131 2397\n3692 91 2491\n3719 38 2607\n3729 4 2742\n3785 0 2881\n3827 13 3062\n3905 12 3183\n3983 1 3398\n4058 0 3529\n4064 14 3660\n4092 16 3840\n3194 601 94\n3190 628 81\n3206 650 58\n3221 679 52\n3222 703 73\n3222 680 207\n3231 671 297\n3222 639 373\n3222 619 478\n3224 574 583\n3222 540 693\n3224 455 775\n3242 385 861\n3228 261 960\n3291 1 1021\n3370 9 1168\n3409 8 1382\n3501 0 1603\n3548 9 1801\n3604 4 1996\n3673 93 2185\n3686 346 2386\n3719 318 2509\n3728 259 2644\n3740 152 2748\n3777 40 2885\n3818 11 3033\n3896 2 3170\n4015 12 3417\n4055 2 3557\n4092 14 3705\n4091 17 3864\n3221 709 52\n3220 713 45\n3250 743 43\n3223 773 5\n3224 762 54\n3239 757 190\n3236 725 293\n3229 695 380\n3227 678 481\n3230 651 580\n3255 617 687\n3237 554 782\n3233 496 874\n3252 412 985\n3296 48 1044\n3390 0 1180\n3428 3 1366\n3496 6 1593\n3530 12 1791\n3588 65 2006\n3658 299 2205\n3708 515 2389\n3723 508 2504\n3725 478 2636\n3726 410 2729\n3783 292 2889\n3821 90 3045\n3894 6 3208\n3991 13 3385\n4056 6 3529\n4069 4 3695\n4092 26 3868\n3242 798 0\n3254 811 0\n3255 843 13\n3255 841 18\n3254 828 72\n3268 830 168\n3257 821 324\n3269 791 391\n3246 774 492\n3252 726 568\n3283 705 694\n3257 656 765\n3264 607 880\n3265 547 993\n3284 328 1085\n3390 3 1158\n3411 9 1368\n3484 12 1577\n3550 119 1777\n3589 320 1987\n3645 505 2188\n3698 667 2381\n3700 680 2529\n3729 636 2643\n3737 587 2777\n3774 525 2885\n3850 401 3048\n3908 235 3209\n4002 49 3395\n4076 30 3580\n4081 47 3668\n4095 364 3853\n3277 912 4\n3271 940 15\n3271 940 0\n3259 928 4\n3289 922 49\n3291 895 167\n3305 892 275\n3288 866 376\n3301 851 497\n3296 817 606\n3304 802 689\n3277 761 800\n3287 713 895\n3289 663 992\n3288 581 1108\n3371 123 1172\n3443 71 1357\n3494 186 1591\n3546 357 1803\n3591 515 1996\n3643 671 2193\n3706 816 2396\n3735 846 2535\n3752 799 2681\n3752 759 2782\n3777 726 2922\n3853 625 3035\n3888 523 3208\n3996 366 3375\n4077 354 3580\n4093 437 3722\n4095 600 3859\n3316 1028 10\n3311 1037 0\n3316 1037 1\n3309 1015 1\n3322 1019 33\n3337 994 129\n3331 989 279\n3336 975 385\n3312 965 485\n3338 928 596\n3319 895 692\n3335 862 801\n3320 827 887\n3309 790 999\n3297 745 1134\n3367 509 1193\n3432 315 1327\n3486 448 1558\n3522 559 1772\n3602 678 1999\n3631 815 2204\n3700 942 2412\n3718 987 2552\n3743 960 2682\n3738 941 2785\n3773 895 2914\n3845 817 3046\n3876 748 3226\n3999 643 3388\n4060 642 3549\n4085 691 3693\n4094 809 3836\n3343 1133 0\n3338 1139 0\n3332 1136 0\n3324 1114 14\n3353 1118 31\n3369 1118 112\n3355 1100 281\n3362 1077 368\n3351 1059 470\n3356 1040 587\n3366 1032 712\n3348 979 792\n3348 955 902\n3334 921 1017\n3351 878 1134\n3358 790 1233\n3430 540 1356\n3476 626 1560\n3570 723 1774\n3599 831 1985\n3658 957 2205\n3685 1087 2403\n3723 1154 2574\n3745 1120 2701\n3758 1096 2826\n3784 1051 2932\n3829 999 3057\n3895 938 3225\n3976 863 3397\n4059 841 3578\n4072 891 3708\n4082 997 3857\n3362 1238 0\n3370 1250 20\n3374 1250 21\n3365 1238 11\n3378 1225 15\n3406 1218 94\n3392 1210 272\n3387 1200 372\n3388 1174 507\n3402 1170 607\n3402 1149 727\n3387 1104 813\n3379 1076 939\n3382 1043 1031\n3383 1018 1147\n3370 979 1276\n3441 794 1349\n3488 781 1549\n3555 878 1773\n3596 963 2005\n3651 1088 2207\n3698 1213 2420\n3726 1315 2588\n3734 1296 2708\n3757 1260 2844\n3781 1219 2955\n3836 1181 3109\n3880 1131 3238\n3986 1052 3403\n4050 1056 3551\n4063 1069 3693\n4077 1164 3885\n3411 1376 10\n3424 1371 0\n3434 1360 15\n3418 1345 3\n3429 1354 18\n3408 1351 92\n3412 1338 250\n3424 1324 364\n3423 1305 491\n3420 1297 601\n3425 1279 738\n3424 1242 799\n3426 1220 920\n3416 1175 1025\n3422 1141 1172\n3395 1109 1290\n3415 1046 1391\n3487 936 1533\n3556 1016 1790\n3609 1119 1997\n3649 1231 2222\n3690 1361 2422\n3728 1458 2615\n3744 1458 2724\n3762 1417 2827\n3777 1392 2982\n3818 1346 3111\n3903 1288 3251\n3959 1237 3413\n4037 1241 3571\n4080 1252 3703\n4095 1323 3874\n3435 1492 0\n3449 1495 1\n3471 1501 0\n3463 1489 11\n3457 1483 10\n3474 1476 84\n3459 1474 226\n3471 1465 382\n3464 1448 510\n3467 1420 614\n3468 1415 736\n3460 1386 853\n3459 1366 966\n3464 1325 1090\n3444 1301 1190\n3453 1252 1334\n3424 1246 1447\n3489 1121 1555\n3567 1156 1777\n3584 1253 1990\n3639 1358 2231\n3657 1498 2409\n3706 1602 2629\n3745 1610 2760\n3752 1581 2866\n3784 1544 2996\n3816 1518 3120\n3873 1463 3260\n3954 1420 3419\n4039 1410 3585\n4072 1418 3714\n4094 1491 3868\n3512 1631 7\n3495 1628 14\n3506 1627 1\n3488 1617 9\n3485 1615 0\n3507 1617 56\n3499 1603 204\n3500 1597 381\n3498 1575 524\n3506 1565 643\n3524 1562 781\n3503 1535 864\n3496 1512 997\n3503 1488 1103\n3502 1447 1217\n3499 1422 1352\n3490 1378 1469\n3483 1363 1606\n3556 1281 1757\n3607 1363 1997\n3651 1480 2238\n3683 1604 2419\n3718 1715 2612\n3744 1769 2772\n3748 1746 2883\n3756 1724 2981\n3830 1667 3140\n3865 1632 3268\n3967 1582 3448\n4030 1574 3605\n4066 1573 3735\n4079 1646 3871\n3540 1762 7\n3551 1757 7\n3554 1768 12\n3543 1760 7\n3542 1761 5\n3551 1747 70\n3549 1751 213\n3552 1733 380\n3552 1731 508\n3562 1721 636\n3557 1715 758\n3549 1676 892\n3531 1653 1005\n3550 1628 1140\n3541 1603 1260\n3510 1586 1388\n3503 1531 1516\n3495 1522 1639\n3543 1466 1774\n3605 1499 1975\n3633 1605 2184\n3669 1741 2424\n3709 1856 2653\n3736 1931 2809\n3740 1903 2906\n3772 1886 3036\n3821 1852 3157\n3856 1792 3278\n3952 1762 3430\n3999 1730 3586\n4048 1744 3715\n4069 1803 3869\n3575 1902 1\n3568 1910 0\n3568 1910 7\n3587 1902 1\n3588 1902 6\n3596 1892 59\n3603 1879 242\n3593 1881 436\n3587 1865 553\n3592 1870 681\n3608 1854 795\n3595 1840 926\n3580 1815 1065\n3597 1796 1176\n3574 1782 1291\n3592 1735 1438\n3551 1709 1521\n3554 1664 1668\n3528 1682 1825\n3592 1606 1949\n3633 1717 2197\n3672 1844 2442\n3689 1963 2641\n3727 2075 2834\n3747 2064 2927\n3768 2045 3025\n3793 2005 3161\n3853 1957 3306\n3929 1903 3449\n3991 1902 3602\n4041 1906 3732\n4076 1934 3888\n3591 2063 3\n3584 2057 3\n3599 2057 6\n3600 2053 8\n3603 2049 10\n3601 2041 64\n3612 2033 279\n3628 2023 428\n3628 2025 580\n3615 2015 698\n3626 1999 834\n3629 1984 959\n3617 1969 1085\n3617 1946 1220\n3618 1922 1349\n3602 1920 1455\n3582 1880 1572\n3581 1840 1709\n3560 1826 1840\n3569 1813 2004\n3634 1857 2195\n3667 1966 2443\n3685 2078 2657\n3717 2201 2852\n3740 2217 2975\n3742 2189 3055\n3774 2158 3163\n3836 2121 3296\n3933 2075 3455\n3955 2049 3580\n4024 2053 3731\n4058 2089 3896\n3585 2181 0\n3591 2193 0\n3593 2195 0\n3600 2202 14\n3600 2190 24\n3604 2186 105\n3633 2177 315\n3629 2175 464\n3639 2176 602\n3654 2165 753\n3666 2164 893\n3664 2151 1013\n3671 2142 1152\n3667 2103 1275\n3655 2094 1408\n3655 2070 1527\n3630 2061 1651\n3619 2024 1774\n3606 1997 1905\n3555 1990 2028\n3603 1987 2169\n3634 2093 2429\n3663 2182 2649\n3708 2301 2860\n3753 2362 3005\n3744 2330 3099\n3777 2300 3191\n3843 2278 3325\n3889 2219 3443\n3937 2215 3610\n3998 2204 3740\n4053 2232 3892\n3591 2343 1\n3575 2327 0\n3591 2342 0\n3585 2340 1\n3584 2336 11\n3617 2332 145\n3622 2335 342\n3621 2327 511\n3640 2319 641\n3665 2316 792\n3677 2307 928\n3691 2304 1089\n3704 2286 1217\n3687 2280 1349\n3701 2256 1475\n3702 2248 1611\n3682 2215 1721\n3666 2195 1840\n3632 2180 1983\n3619 2158 2114\n3579 2168 2251\n3631 2184 2435\n3658 2309 2645\n3710 2407 2873\n3739 2503 3048\n3738 2489 3123\n3766 2452 3235\n3812 2406 3351\n3900 2374 3479\n3933 2344 3622\n3973 2342 3742\n4027 2363 3885\n3560 2476 21\n3583 2479 0\n3586 2483 1\n3591 2479 8\n3596 2481 24\n3589 2477 224\n3594 2467 387\n3628 2471 546\n3643 2474 669\n3645 2470 830\n3662 2465 974\n3666 2453 1098\n3686 2446 1240\n3715 2440 1376\n3721 2424 1528\n3723 2410 1674\n3723 2391 1804\n3702 2373 1936\n3655 2356 2051\n3676 2337 2189\n3638 2330 2305\n3601 2347 2451\n3663 2397 2648\n3701 2498 2865\n3717 2598 3064\n3732 2625 3185\n3759 2602 3240\n3800 2564 3364\n3875 2517 3517\n3939 2494 3614\n3961 2494 3785\n4026 2495 3914\n3579 2641 14\n3573 2636 10\n3565 2627 0\n3588 2628 6\n3597 2613 119\n3611 2612 321\n3602 2618 448\n3618 2602 598\n3622 2621 731\n3639 2616 876\n3652 2609 1024\n3674 2598 1166\n3669 2597 1297\n3699 2584 1427\n3700 2580 1590\n3724 2572 1760\n3745 2561 1923\n3729 2562 2031\n3711 2543 2153\n3657 2531 2288\n3654 2521 2413\n3639 2491 2500\n3641 2483 2641\n3662 2610 2869\n3721 2711 3073\n3735 2754 3208\n3774 2732 3300\n3781 2706 3371\n3852 2663 3527\n3905 2616 3641\n3952 2616 3773\n3997 2631 3901\n3584 2755 0\n3570 2763 0\n3556 2759 12\n3568 2776 78\n3568 2768 247\n3586 2768 383\n3602 2760 544\n3598 2750 652\n3600 2757 797\n3617 2751 924\n3633 2752 1060\n3644 2760 1195\n3658 2736 1343\n3671 2735 1498\n3684 2733 1637\n3696 2735 1787\n3731 2722 1965\n3752 2729 2118\n3751 2715 2272\n3716 2694 2349\n3709 2691 2481\n3658 2664 2580\n3643 2660 2684\n3671 2669 2836\n3683 2789 3054\n3747 2882 3242\n3755 2878 3337\n3771 2834 3409\n3833 2799 3541\n3885 2770 3647\n3934 2736 3779\n4001 2762 3907\n3556 2897 11\n3564 2915 53\n3565 2916 138\n3585 2911 248\n3565 2897 381\n3572 2914 490\n3594 2899 618\n3589 2890 738\n3582 2897 869\n3599 2899 1013\n3606 2893 1134\n3629 2894 1269\n3647 2887 1401\n3645 2885 1533\n3658 2876 1681\n3692 2868 1836\n3692 2872 1987\n3706 2881 2160\n3732 2869 2297\n3729 2882 2448\n3746 2853 2557\n3703 2859 2671\n3664 2824 2743\n3640 2821 2861\n3689 2874 3020\n3748 2984 3270\n3735 3020 3354\n3783 2978 3451\n3838 2949 3572\n3854 2911 3655\n3906 2865 3775\n3950 2903 3936\n3551 3039 153\n3545 3048 271\n3559 3025 326\n3576 3046 431\n3547 3047 490\n3565 3047 606\n3569 3035 716\n3571 3048 830\n3582 3041 932\n3601 3037 1075\n3619 3037 1203\n3610 3041 1343\n3617 3035 1462\n3639 3028 1619\n3648 3016 1729\n3663 3019 1887\n3684 3018 2038\n3684 3030 2192\n3714 3010 2335\n3720 3012 2483\n3742 3025 2625\n3758 3018 2769\n3713 2989 2864\n3713 2972 2962\n3644 2984 3037\n3734 3050 3215\n3762 3143 3393\n3761 3100 3481\n3804 3065 3575\n3868 3034 3703\n3885 3006 3797\n3919 3021 3918\n3511 3121 525\n3504 3127 556\n3506 3125 573\n3518 3134 641\n3516 3126 691\n3510 3143 763\n3523 3140 884\n3557 3148 972\n3563 3155 1079\n3571 3170 1190\n3582 3167 1301\n3606 3169 1421\n3590 3169 1541\n3601 3169 1664\n3625 3173 1798\n3636 3171 1938\n3641 3171 2081\n3664 3156 2210\n3671 3152 2366\n3705 3164 2494\n3705 3161 2644\n3721 3151 2790\n3741 3165 2957\n3752 3154 3045\n3745 3131 3131\n3705 3136 3231\n3746 3232 3410\n3769 3241 3499\n3819 3199 3607\n3820 3176 3689\n3877 3151 3844\n3899 3149 3949\n3435 3201 765\n3439 3203 797\n3423 3217 831\n3446 3207 872\n3458 3217 920\n3445 3216 969\n3448 3218 1057\n3464 3218 1145\n3482 3227 1221\n3482 3238 1313\n3495 3228 1416\n3521 3252 1517\n3513 3257 1629\n3538 3258 1745\n3561 3264 1877\n3581 3289 2015\n3615 3291 2155\n3626 3295 2265\n3642 3294 2388\n3667 3313 2545\n3682 3301 2675\n3706 3317 2817\n3714 3297 2956\n3745 3300 3076\n3767 3309 3234\n3715 3294 3304\n3712 3334 3422\n3753 3364 3567\n3801 3331 3625\n3788 3297 3718\n3838 3277 3850\n3895 3264 3994\n3412 3329 981\n3412 3331 1009\n3411 3331 1012\n3428 3331 1071\n3393 3334 1075\n3405 3332 1150\n3396 3339 1203\n3418 3334 1299\n3436 3335 1379\n3438 3339 1476\n3453 3347 1588\n3466 3344 1655\n3470 3347 1787\n3470 3349 1888\n3503 3358 1985\n3492 3370 2106\n3531 3377 2234\n3551 3384 2351\n3559 3401 2479\n3603 3410 2614\n3634 3398 2709\n3656 3423 2825\n3688 3440 2970\n3708 3426 3104\n3733 3441 3241\n3766 3431 3347\n3738 3428 3460\n3797 3491 3588\n3803 3478 3672\n3804 3429 3755\n3808 3409 3839\n3839 3380 3996\n3368 3473 1225\n3370 3477 1219\n3368 3474 1223\n3373 3464 1276\n3385 3474 1323\n3385 3472 1357\n3390 3465 1407\n3399 3462 1488\n3416 3469 1564\n3416 3458 1651\n3425 3468 1734\n3440 3476 1835\n3433 3468 1931\n3463 3470 2010\n3440 3483 2121\n3460 3468 2220\n3469 3493 2303\n3532 3479 2415\n3515 3495 2545\n3533 3493 2651\n3571 3507 2776\n3579 3518 2858\n3610 3511 2982\n3630 3530 3103\n3689 3554 3233\n3706 3578 3361\n3737 3587 3474\n3770 3604 3623\n3786 3608 3709\n3771 3573 3771\n3830 3525 3884\n3838 3493 4030\n3349 3605 1467\n3354 3607 1469\n3352 3609 1484\n3368 3618 1503\n3364 3606 1559\n3365 3596 1600\n3372 3592 1614\n3397 3607 1715\n3389 3593 1759\n3387 3604 1834\n3403 3612 1915\n3414 3607 1992\n3430 3609 2076\n3437 3605 2153\n3432 3607 2240\n3470 3615 2333\n3466 3613 2419\n3460 3607 2509\n3482 3621 2601\n3507 3607 2718\n3521 3620 2802\n3542 3634 2911\n3572 3641 3033\n3601 3638 3139\n3647 3653 3262\n3641 3654 3365\n3704 3672 3478\n3739 3688 3610\n3801 3737 3753\n3785 3704 3817\n3787 3682 3917\n3800 3639 4029\n3379 3738 1743\n3351 3737 1744\n3353 3738 1747\n3365 3753 1816\n3367 3751 1823\n3372 3737 1842\n3383 3752 1916\n3392 3748 1969\n3381 3737 2000\n3384 3753 2080\n3384 3738 2121\n3397 3746 2190\n3407 3743 2264\n3429 3738 2345\n3444 3744 2394\n3446 3751 2469\n3455 3739 2549\n3484 3752 2634\n3485 3737 2715\n3495 3742 2799\n3513 3743 2882\n3531 3738 2991\n3554 3766 3074\n3561 3753 3172\n3592 3762 3285\n3634 3769 3393\n3654 3770 3506\n3691 3784 3624\n3724 3803 3709\n3739 3803 3852\n3735 3785 3932\n3739 3782 4060\n3383 3870 2067\n3397 3884 2081\n3396 3885 2083\n3397 3881 2084\n3386 3895 2118\n3400 3872 2162\n3415 3868 2211\n3397 3885 2221\n3390 3885 2240\n3403 3889 2292\n3404 3890 2348\n3413 3883 2395\n3424 3887 2442\n3440 3868 2509\n3449 3891 2582\n3486 3876 2647\n3462 3894 2719\n3477 3888 2780\n3502 3888 2844\n3506 3894 2919\n3511 3884 3007\n3548 3878 3109\n3559 3902 3195\n3570 3886 3263\n3581 3881 3362\n3595 3881 3457\n3611 3898 3541\n3669 3902 3652\n3701 3916 3754\n3689 3930 3851\n3735 3915 3980\n3704 3931 4077\n3446 4031 2426\n3464 4017 2455\n3460 4044 2472\n3451 4032 2431\n3460 4045 2473\n3451 4035 2493\n3480 4016 2529\n3477 4045 2573\n3467 4035 2567\n3467 4035 2592\n3488 4021 2639\n3496 4029 2695\n3495 4032 2712\n3508 4031 2767\n3514 4031 2810\n3533 4038 2890\n3530 4029 2939\n3536 4031 2983\n3560 4033 3065\n3569 4037 3093\n3572 4031 3159\n3583 4032 3244\n3609 4045 3324\n3616 4032 3379\n3621 4049 3472\n3651 4061 3553\n3656 4045 3620\n3668 4060 3701\n3687 4050 3798\n3639 4063 3853\n3672 4078 4013\n3735 4077 4095\n3317 417 146\n3287 433 115\n3305 451 100\n3319 470 113\n3350 518 94\n3350 546 87\n3351 513 228\n3352 491 347\n3348 446 417\n3350 386 504\n3346 316 601\n3342 196 709\n3353 32 806\n3343 0 888\n3415 0 956\n3496 16 1093\n3538 0 1321\n3599 24 1522\n3645 10 1707\n3700 1 1925\n3750 15 2147\n3814 0 2347\n3830 1 2477\n3862 16 2614\n3864 1 2708\n3889 3 2872\n3928 3 2979\n3976 16 3140\n4026 45 3299\n4092 1 3527\n4080 0 3689\n4095 16 3838\n3302 451 128\n3318 467 114\n3320 484 98\n3321 516 79\n3353 551 53\n3366 563 77\n3338 558 182\n3363 512 328\n3356 478 429\n3345 414 507\n3352 334 589\n3344 252 704\n3363 92 814\n3352 8 898\n3414 9 961\n3496 15 1091\n3538 0 1321\n3597 0 1524\n3659 7 1731\n3699 0 1924\n3754 10 2120\n3813 0 2346\n3837 20 2483\n3860 0 2634\n3877 1 2745\n3863 16 2846\n3927 14 2992\n3991 0 3166\n4056 0 3317\n4066 16 3498\n4080 0 3658\n4080 0 3823\n3319 501 111\n3320 516 83\n3292 533 52\n3319 567 50\n3351 610 45\n3354 623 77\n3350 576 196\n3352 559 303\n3378 524 413\n3356 462 498\n3345 397 613\n3361 302 728\n3366 175 804\n3362 21 906\n3412 1 968\n3509 8 1113\n3539 1 1322\n3597 9 1533\n3660 7 1743\n3726 9 1956\n3757 7 2136\n3813 11 2336\n3827 60 2477\n3855 23 2608\n3856 11 2745\n3865 13 2874\n3916 3 2982\n3974 15 3139\n4053 3 3316\n4094 0 3525\n4064 0 3688\n4081 2 3824\n3324 567 79\n3323 582 21\n3336 598 34\n3339 629 29\n3369 659 32\n3368 656 48\n3369 628 192\n3381 620 338\n3357 562 403\n3355 515 505\n3372 463 626\n3369 369 702\n3367 270 816\n3373 100 929\n3406 0 988\n3502 0 1104\n3538 0 1318\n3610 8 1531\n3645 10 1719\n3716 12 1930\n3776 1 2144\n3783 34 2309\n3832 257 2502\n3857 170 2607\n3862 70 2714\n3855 10 2835\n3920 0 3008\n3992 0 3170\n4059 2 3319\n4092 1 3528\n4067 16 3664\n4095 15 3838\n3352 645 18\n3382 676 18\n3369 668 3\n3367 697 1\n3381 713 2\n3356 723 47\n3380 679 191\n3392 670 341\n3375 628 408\n3394 594 528\n3385 552 638\n3380 484 719\n3398 369 817\n3382 257 930\n3426 8 985\n3503 3 1107\n3564 2 1304\n3625 9 1510\n3664 7 1727\n3709 10 1934\n3768 3 2136\n3801 197 2333\n3835 434 2522\n3864 383 2635\n3856 330 2752\n3896 216 2882\n3914 75 3017\n4018 4 3169\n4076 2 3347\n4069 0 3529\n4082 3 3689\n4091 16 3838\n3394 739 3\n3370 741 3\n3385 772 1\n3398 791 1\n3387 775 3\n3388 790 43\n3395 755 180\n3394 728 318\n3402 708 419\n3404 672 535\n3400 613 647\n3406 561 737\n3418 487 839\n3399 403 934\n3398 196 1039\n3487 8 1104\n3557 9 1302\n3620 6 1507\n3662 9 1728\n3711 10 1925\n3759 107 2171\n3806 410 2344\n3844 573 2530\n3853 553 2637\n3895 515 2769\n3847 450 2893\n3948 345 3042\n3992 143 3164\n4056 20 3321\n4095 0 3529\n4082 0 3690\n4095 77 3823\n3400 828 2\n3403 831 0\n3416 846 1\n3442 875 26\n3428 859 13\n3408 858 56\n3408 837 177\n3419 820 333\n3411 794 431\n3426 754 514\n3439 724 628\n3424 658 742\n3420 591 823\n3410 526 943\n3417 419 1053\n3496 5 1099\n3568 1 1274\n3626 0 1497\n3660 13 1740\n3706 102 1924\n3759 355 2141\n3816 579 2351\n3848 710 2533\n3854 708 2657\n3895 675 2802\n3866 633 2894\n3929 562 3054\n4005 442 3196\n4046 277 3355\n4068 68 3499\n4092 163 3676\n4095 424 3835\n3435 941 4\n3437 943 4\n3439 970 0\n3446 983 11\n3448 954 0\n3442 940 14\n3451 937 156\n3451 906 290\n3452 878 430\n3456 853 552\n3441 818 631\n3451 773 761\n3434 700 839\n3439 651 951\n3423 583 1069\n3466 270 1143\n3568 0 1279\n3622 23 1500\n3677 133 1723\n3706 370 1952\n3754 549 2126\n3802 712 2351\n3845 893 2538\n3839 879 2660\n3898 830 2793\n3885 809 2909\n3939 756 3038\n3977 676 3202\n4044 574 3346\n4094 455 3524\n4080 504 3691\n4091 658 3866\n3453 1040 13\n3468 1059 0\n3479 1077 0\n3467 1054 1\n3460 1052 0\n3480 1034 11\n3496 1021 159\n3493 1000 300\n3473 991 425\n3496 943 535\n3492 917 645\n3479 871 737\n3482 837 844\n3465 768 959\n3460 729 1090\n3500 611 1190\n3546 132 1264\n3632 223 1519\n3685 414 1730\n3729 572 1961\n3763 729 2144\n3813 850 2368\n3842 1015 2547\n3849 1045 2647\n3873 1000 2784\n3884 975 2899\n3934 922 3043\n3969 872 3205\n4035 795 3349\n4075 686 3522\n4084 738 3684\n4095 858 3846\n3476 1149 1\n3485 1169 0\n3489 1155 10\n3510 1155 0\n3511 1153 10\n3507 1143 22\n3513 1121 144\n3521 1107 311\n3516 1078 417\n3528 1068 533\n3513 1035 632\n3492 983 730\n3504 962 845\n3493 907 966\n3503 864 1091\n3508 818 1209\n3559 547 1289\n3635 481 1501\n3639 611 1721\n3725 751 1943\n3754 877 2124\n3803 997 2350\n3843 1150 2562\n3855 1206 2690\n3882 1160 2808\n3869 1135 2919\n3925 1111 3061\n3960 1049 3195\n4040 995 3353\n4094 910 3545\n4095 945 3713\n4095 1023 3837\n3518 1273 0\n3529 1283 5\n3520 1270 4\n3519 1272 5\n3536 1257 0\n3543 1261 31\n3533 1240 101\n3541 1224 279\n3547 1203 407\n3550 1168 536\n3545 1160 655\n3540 1113 754\n3534 1083 862\n3531 1046 985\n3533 1002 1096\n3520 972 1225\n3537 855 1338\n3635 660 1468\n3680 780 1703\n3721 898 1948\n3748 1016 2151\n3802 1142 2369\n3838 1296 2544\n3855 1363 2702\n3863 1326 2790\n3887 1300 2921\n3898 1261 3053\n3975 1213 3202\n4049 1154 3367\n4084 1081 3544\n4095 1121 3718\n4094 1181 3850\n3551 1393 0\n3581 1397 0\n3582 1397 0\n3572 1388 0\n3572 1375 15\n3569 1374 11\n3569 1377 107\n3564 1355 267\n3567 1343 422\n3570 1312 542\n3572 1293 674\n3567 1260 768\n3572 1230 879\n3567 1183 996\n3577 1144 1114\n3549 1111 1231\n3531 1075 1378\n3628 877 1464\n3671 926 1685\n3726 1041 1930\n3764 1153 2155\n3803 1279 2363\n3835 1413 2584\n3869 1514 2731\n3873 1484 2850\n3886 1442 2947\n3902 1429 3048\n3957 1393 3217\n4044 1321 3369\n4088 1264 3538\n4086 1286 3703\n4080 1360 3864\n3589 1518 0\n3595 1524 0\n3606 1502 0\n3609 1517 0\n3605 1501 0\n3606 1502 8\n3615 1497 93\n3604 1472 288\n3610 1454 413\n3610 1437 541\n3614 1418 661\n3611 1399 804\n3614 1369 920\n3599 1329 1018\n3598 1292 1130\n3580 1239 1247\n3573 1221 1400\n3592 1152 1520\n3692 1056 1675\n3732 1174 1914\n3771 1297 2149\n3791 1425 2336\n3832 1521 2570\n3865 1653 2761\n3873 1643 2851\n3889 1612 2980\n3928 1574 3093\n3967 1526 3221\n4025 1487 3359\n4087 1450 3562\n4095 1450 3699\n4095 1501 3853\n3646 1656 7\n3631 1642 9\n3641 1633 0\n3638 1641 0\n3636 1617 0\n3654 1628 13\n3651 1632 86\n3632 1613 262\n3639 1589 418\n3643 1572 557\n3647 1558 665\n3648 1547 817\n3647 1519 933\n3641 1491 1042\n3644 1455 1146\n3635 1406 1273\n3607 1368 1409\n3586 1351 1553\n3663 1233 1670\n3734 1290 1900\n3756 1414 2157\n3808 1535 2361\n3842 1659 2571\n3852 1797 2759\n3867 1802 2879\n3900 1779 2985\n3921 1742 3113\n3949 1690 3237\n4034 1669 3400\n4071 1622 3553\n4086 1621 3702\n4087 1664 3847\n3673 1779 0\n3674 1778 0\n3688 1772 0\n3689 1771 0\n3688 1755 13\n3669 1776 0\n3673 1759 75\n3688 1742 266\n3679 1733 428\n3685 1708 575\n3681 1702 696\n3690 1682 833\n3689 1659 967\n3683 1629 1075\n3687 1610 1225\n3656 1570 1316\n3663 1507 1426\n3640 1498 1588\n3638 1476 1718\n3729 1400 1875\n3752 1548 2114\n3805 1667 2371\n3814 1790 2571\n3830 1920 2751\n3849 1958 2894\n3883 1922 2992\n3885 1893 3105\n3943 1855 3246\n4015 1820 3391\n4094 1771 3546\n4086 1771 3730\n4095 1810 3853\n3729 1910 8\n3698 1918 7\n3721 1919 8\n3725 1915 0\n3720 1902 0\n3721 1892 0\n3725 1897 94\n3717 1884 298\n3718 1861 465\n3732 1853 598\n3719 1858 715\n3737 1824 869\n3721 1812 986\n3719 1783 1121\n3713 1765 1243\n3697 1725 1343\n3696 1692 1492\n3686 1651 1584\n3649 1638 1729\n3711 1582 1905\n3743 1651 2131\n3785 1775 2370\n3825 1909 2587\n3826 2035 2804\n3870 2102 2926\n3871 2079 3030\n3901 2048 3141\n3945 2015 3268\n3991 1966 3405\n4092 1933 3579\n4094 1933 3739\n4087 1964 3871\n3746 2048 8\n3738 2048 8\n3746 2041 17\n3738 2036 0\n3738 2039 7\n3747 2041 8\n3753 2046 100\n3751 2030 338\n3755 2018 487\n3754 2012 639\n3754 1996 766\n3768 1976 908\n3755 1955 1031\n3755 1953 1159\n3746 1928 1306\n3730 1904 1414\n3722 1858 1530\n3715 1831 1649\n3679 1804 1756\n3659 1816 1935\n3742 1765 2101\n3775 1891 2358\n3782 2026 2569\n3839 2136 2806\n3846 2245 2959\n3851 2222 3049\n3880 2181 3160\n3919 2164 3278\n3962 2116 3424\n4091 2100 3598\n4085 2087 3740\n4095 2110 3887\n3725 2191 0\n3737 2202 0\n3753 2194 0\n3756 2197 15\n3762 2200 7\n3761 2194 6\n3773 2174 150\n3775 2181 390\n3786 2160 552\n3793 2174 694\n3786 2143 830\n3791 2132 938\n3800 2117 1075\n3800 2095 1199\n3774 2082 1341\n3785 2066 1473\n3755 2044 1570\n3751 1993 1705\n3736 1978 1814\n3730 1954 2006\n3677 1967 2130\n3743 2015 2362\n3774 2141 2585\n3802 2249 2803\n3842 2361 2962\n3849 2361 3089\n3872 2339 3180\n3915 2310 3291\n3971 2258 3439\n4059 2234 3626\n4092 2236 3749\n4079 2257 3885\n3743 2333 6\n3742 2334 1\n3733 2339 7\n3754 2343 9\n3740 2329 2\n3754 2327 10\n3760 2327 222\n3770 2328 410\n3785 2312 578\n3807 2307 737\n3822 2299 885\n3831 2296 1024\n3818 2277 1151\n3825 2263 1289\n3818 2245 1412\n3827 2216 1540\n3795 2215 1653\n3783 2175 1789\n3763 2150 1910\n3753 2133 2044\n3705 2149 2181\n3723 2127 2336\n3787 2236 2583\n3818 2346 2798\n3850 2466 3021\n3840 2523 3135\n3882 2491 3221\n3887 2457 3327\n3962 2424 3457\n4053 2375 3603\n4074 2365 3755\n4095 2375 3888\n3726 2480 0\n3740 2465 0\n3727 2479 5\n3729 2482 1\n3743 2473 5\n3755 2472 75\n3751 2479 280\n3769 2470 467\n3786 2463 626\n3781 2464 772\n3798 2452 925\n3825 2438 1079\n3845 2437 1214\n3831 2432 1345\n3852 2410 1492\n3841 2413 1643\n3835 2373 1736\n3818 2349 1867\n3801 2350 2013\n3792 2323 2121\n3744 2314 2228\n3709 2310 2396\n3766 2323 2555\n3792 2456 2783\n3831 2547 3018\n3843 2639 3176\n3862 2628 3248\n3898 2593 3337\n3936 2558 3485\n4011 2528 3619\n4056 2501 3761\n4068 2511 3885\n3723 2622 0\n3728 2627 5\n3727 2627 0\n3734 2617 9\n3740 2612 10\n3754 2623 166\n3761 2611 392\n3758 2613 523\n3763 2605 673\n3785 2595 811\n3786 2590 962\n3792 2590 1100\n3807 2579 1242\n3841 2573 1391\n3852 2574 1560\n3873 2552 1709\n3889 2540 1850\n3835 2528 1948\n3834 2515 2098\n3813 2494 2204\n3771 2488 2329\n3749 2457 2409\n3727 2463 2564\n3797 2528 2783\n3819 2645 2997\n3841 2754 3193\n3844 2755 3292\n3886 2738 3381\n3929 2691 3483\n4002 2644 3642\n4045 2652 3756\n4068 2658 3886\n3710 2773 4\n3720 2752 4\n3718 2756 11\n3731 2756 12\n3712 2750 86\n3750 2759 319\n3752 2761 462\n3753 2750 600\n3755 2747 753\n3762 2740 882\n3775 2736 1023\n3786 2738 1166\n3796 2728 1284\n3815 2726 1441\n3826 2732 1602\n3837 2711 1751\n3856 2703 1903\n3870 2703 2048\n3870 2685 2198\n3831 2683 2275\n3813 2668 2420\n3798 2653 2534\n3763 2606 2607\n3769 2615 2768\n3813 2722 2996\n3846 2836 3177\n3827 2898 3310\n3869 2867 3406\n3916 2848 3529\n3984 2805 3633\n4033 2774 3782\n4078 2789 3903\n3706 2920 1\n3713 2910 9\n3707 2900 6\n3705 2893 123\n3730 2891 287\n3729 2909 425\n3737 2885 574\n3753 2900 712\n3733 2896 846\n3738 2888 957\n3753 2881 1085\n3771 2879 1215\n3786 2866 1371\n3794 2871 1511\n3805 2883 1649\n3825 2860 1815\n3831 2849 1942\n3852 2866 2117\n3872 2856 2269\n3856 2842 2421\n3834 2836 2523\n3819 2824 2606\n3793 2792 2708\n3767 2760 2798\n3791 2782 2956\n3804 2918 3202\n3859 3018 3367\n3858 3000 3417\n3901 2968 3540\n3961 2936 3664\n4019 2904 3798\n4059 2916 3933\n3697 3048 32\n3704 3040 156\n3716 3035 232\n3711 3037 333\n3693 3048 433\n3713 3046 550\n3713 3040 675\n3721 3043 791\n3720 3035 904\n3740 3031 1040\n3731 3035 1177\n3744 3032 1290\n3764 3020 1437\n3774 3020 1576\n3802 3007 1712\n3795 3012 1866\n3818 2999 1994\n3821 3006 2153\n3842 3003 2296\n3826 2997 2454\n3838 2989 2593\n3851 2989 2717\n3835 2979 2803\n3786 2954 2876\n3757 2935 2985\n3816 2998 3153\n3826 3100 3376\n3865 3133 3501\n3887 3084 3558\n3924 3068 3688\n3984 3043 3785\n4053 3034 3931\n3688 3183 338\n3689 3180 353\n3706 3182 441\n3698 3183 515\n3701 3184 591\n3690 3178 706\n3695 3184 754\n3717 3193 903\n3730 3173 1023\n3725 3173 1128\n3730 3158 1251\n3746 3165 1369\n3739 3159 1499\n3745 3157 1622\n3761 3163 1761\n3785 3157 1915\n3781 3169 2034\n3798 3153 2188\n3806 3150 2319\n3821 3143 2482\n3841 3151 2620\n3867 3121 2777\n3853 3152 2892\n3835 3107 2982\n3782 3102 3071\n3775 3072 3172\n3836 3180 3364\n3867 3260 3537\n3884 3242 3588\n3920 3197 3730\n3976 3156 3814\n4018 3165 3948\n3602 3276 659\n3632 3266 673\n3628 3255 705\n3638 3268 748\n3659 3270 827\n3632 3277 859\n3640 3272 971\n3650 3277 1054\n3660 3271 1155\n3685 3289 1271\n3696 3285 1370\n3716 3290 1485\n3715 3306 1605\n3726 3302 1733\n3753 3302 1842\n3748 3298 1991\n3757 3299 2122\n3784 3303 2245\n3798 3296 2377\n3802 3284 2518\n3819 3288 2657\n3822 3267 2794\n3832 3270 2909\n3841 3297 3050\n3839 3267 3164\n3795 3276 3249\n3805 3236 3331\n3874 3363 3538\n3880 3364 3607\n3919 3344 3737\n3953 3295 3852\n4012 3280 3957\n3577 3349 915\n3563 3336 942\n3552 3348 964\n3551 3349 969\n3563 3358 1049\n3576 3359 1110\n3556 3351 1148\n3580 3372 1226\n3588 3364 1318\n3603 3365 1409\n3626 3373 1516\n3641 3378 1607\n3646 3379 1720\n3649 3387 1829\n3654 3384 1947\n3681 3405 2062\n3703 3412 2200\n3732 3417 2319\n3752 3434 2427\n3771 3427 2537\n3795 3429 2697\n3789 3406 2808\n3805 3424 2927\n3822 3413 3055\n3836 3441 3237\n3854 3452 3332\n3832 3409 3421\n3861 3426 3536\n3866 3489 3655\n3900 3457 3739\n3918 3427 3821\n3966 3412 3972\n3527 3491 1155\n3541 3464 1144\n3515 3477 1160\n3529 3477 1213\n3530 3473 1245\n3541 3478 1299\n3533 3483 1345\n3547 3477 1450\n3548 3471 1509\n3565 3478 1585\n3559 3485 1665\n3556 3475 1758\n3580 3483 1873\n3579 3472 1962\n3587 3492 2070\n3606 3494 2171\n3629 3495 2304\n3643 3495 2421\n3660 3495 2500\n3673 3501 2610\n3713 3528 2741\n3734 3531 2841\n3781 3552 2983\n3789 3554 3113\n3820 3544 3217\n3838 3545 3342\n3867 3585 3474\n3819 3555 3572\n3865 3621 3702\n3883 3590 3786\n3930 3558 3882\n3966 3539 4014\n3511 3621 1387\n3513 3607 1419\n3513 3607 1451\n3512 3606 1454\n3511 3595 1513\n3513 3618 1540\n3526 3619 1597\n3541 3612 1635\n3533 3612 1691\n3546 3617 1768\n3544 3604 1849\n3568 3613 1947\n3548 3615 2029\n3560 3623 2103\n3577 3638 2215\n3593 3615 2306\n3597 3615 2392\n3611 3617 2493\n3626 3600 2588\n3643 3628 2698\n3664 3625 2818\n3680 3632 2894\n3710 3640 3034\n3734 3653 3131\n3756 3658 3234\n3800 3661 3379\n3821 3688 3505\n3863 3718 3605\n3866 3704 3719\n3885 3734 3819\n3915 3687 3901\n3947 3656 4015\n3482 3754 1694\n3512 3753 1711\n3513 3753 1714\n3525 3751 1761\n3512 3737 1790\n3498 3738 1828\n3501 3738 1861\n3529 3753 1910\n3518 3742 1955\n3534 3743 2013\n3545 3748 2067\n3552 3744 2129\n3561 3747 2186\n3570 3740 2281\n3562 3760 2363\n3563 3753 2420\n3578 3753 2516\n3593 3754 2601\n3609 3754 2696\n3622 3754 2784\n3628 3764 2870\n3653 3758 2975\n3673 3757 3081\n3675 3767 3175\n3706 3757 3281\n3777 3784 3399\n3787 3760 3508\n3790 3788 3596\n3834 3818 3751\n3885 3851 3867\n3869 3833 3917\n3898 3785 4047\n3512 3884 2020\n3527 3899 2036\n3527 3898 2064\n3527 3900 2070\n3526 3882 2097\n3528 3884 2106\n3529 3881 2155\n3544 3884 2204\n3540 3884 2237\n3545 3900 2281\n3550 3895 2335\n3551 3891 2376\n3561 3888 2437\n3585 3900 2486\n3585 3899 2557\n3593 3899 2615\n3593 3885 2693\n3616 3884 2746\n3614 3896 2847\n3635 3884 2918\n3621 3885 2990\n3653 3893 3060\n3639 3896 3165\n3683 3889 3236\n3719 3899 3347\n3749 3902 3456\n3754 3915 3527\n3786 3915 3668\n3788 3916 3709\n3835 3933 3866\n3866 3932 3978\n3851 3916 4063\n3577 4031 2424\n3579 4030 2426\n3592 4032 2469\n3592 4044 2444\n3593 4032 2472\n3593 4031 2504\n3605 4043 2518\n3609 4047 2553\n3601 4036 2568\n3624 4046 2595\n3589 4041 2653\n3632 4038 2694\n3626 4032 2712\n3604 4054 2761\n3634 4038 2824\n3634 4032 2866\n3652 4046 2917\n3673 4038 2974\n3659 4053 3039\n3670 4042 3102\n3671 4052 3167\n3691 4051 3249\n3725 4055 3320\n3723 4065 3388\n3733 4059 3459\n3756 4058 3537\n3741 4034 3607\n3772 4062 3706\n3789 4063 3801\n3818 4079 3901\n3816 4094 3997\n3851 4080 4080\n3466 418 65\n3466 465 95\n3468 467 67\n3496 499 65\n3498 545 33\n3522 578 27\n3530 571 88\n3502 550 225\n3514 485 367\n3525 408 459\n3504 326 557\n3514 180 670\n3521 26 781\n3499 0 879\n3513 1 971\n3618 0 1035\n3675 7 1231\n3717 0 1436\n3759 9 1656\n3818 6 1869\n3873 11 2082\n3907 11 2294\n3940 11 2478\n3956 4 2604\n3982 0 2728\n3994 13 2847\n4027 14 2991\n4061 1 3138\n4080 0 3316\n4095 0 3465\n4079 0 3690\n4080 0 3823\n3482 482 81\n3497 498 65\n3499 530 79\n3496 548 31\n3525 579 31\n3515 610 47\n3511 604 62\n3536 558 240\n3527 506 375\n3534 452 457\n3541 375 572\n3524 241 676\n3514 70 783\n3505 0 854\n3537 8 963\n3611 0 1035\n3660 9 1225\n3717 1 1437\n3768 1 1667\n3828 1 1869\n3873 10 2081\n3911 5 2287\n3938 6 2465\n3976 68 2600\n3957 31 2718\n3996 0 2877\n4011 0 2977\n4061 1 3140\n4095 0 3300\n4095 0 3464\n4078 1 3690\n4080 31 3838\n3485 517 35\n3497 547 33\n3483 579 15\n3484 583 17\n3500 627 15\n3515 643 4\n3514 626 75\n3517 603 228\n3518 537 366\n3541 496 477\n3524 425 572\n3520 312 651\n3521 160 784\n3523 0 881\n3538 9 981\n3611 0 1030\n3669 15 1246\n3715 1 1436\n3768 15 1663\n3829 0 1889\n3864 1 2073\n3910 14 2296\n3948 62 2489\n3983 207 2656\n3985 113 2724\n3996 28 2849\n4020 19 2987\n4057 1 3134\n4093 0 3302\n4095 14 3451\n4095 0 3703\n4080 1 3823\n3484 583 15\n3497 599 0\n3500 629 15\n3515 647 1\n3517 677 17\n3532 692 18\n3516 658 66\n3530 650 225\n3529 593 349\n3524 549 476\n3546 485 574\n3547 397 674\n3533 264 788\n3522 75 874\n3532 9 987\n3613 1 1041\n3675 9 1232\n3717 14 1443\n3777 0 1656\n3826 0 1862\n3863 16 2084\n3900 5 2286\n3965 188 2500\n3997 365 2656\n3996 317 2757\n4005 236 2869\n3999 112 3003\n4056 8 3135\n4079 0 3285\n4089 0 3463\n4094 0 3687\n4095 14 3866\n3514 680 0\n3514 680 3\n3530 697 2\n3516 728 0\n3530 742 14\n3517 756 14\n3530 726 77\n3532 705 222\n3521 658 353\n3549 623 471\n3535 554 581\n3549 470 669\n3558 373 795\n3530 248 884\n3533 57 980\n3614 8 1069\n3681 9 1215\n3731 0 1435\n3800 9 1674\n3820 14 1877\n3885 6 2089\n3899 35 2278\n3949 359 2489\n3989 502 2655\n3968 485 2781\n4012 428 2903\n4025 315 3024\n4072 182 3145\n4078 43 3283\n4082 2 3429\n4079 0 3659\n4066 19 3820\n3546 775 0\n3536 792 0\n3532 796 0\n3546 809 1\n3518 811 0\n3534 821 3\n3546 791 62\n3545 769 187\n3546 724 353\n3551 684 462\n3572 639 585\n3575 579 702\n3559 480 769\n3565 392 882\n3545 255 1011\n3600 8 1075\n3683 6 1222\n3732 3 1438\n3784 7 1663\n3830 0 1872\n3860 5 2092\n3910 224 2294\n3959 512 2501\n3970 654 2655\n4000 623 2797\n4012 576 2908\n4032 541 3003\n4076 427 3145\n4094 271 3317\n4082 119 3470\n4077 15 3631\n4092 229 3834\n3553 863 3\n3539 863 3\n3567 878 3\n3579 905 26\n3580 918 17\n3563 902 3\n3553 872 47\n3565 853 212\n3566 820 374\n3568 780 479\n3579 729 558\n3573 670 674\n3582 600 768\n3569 525 911\n3559 439 1017\n3608 99 1107\n3677 8 1200\n3743 0 1436\n3803 6 1689\n3832 6 1884\n3878 132 2093\n3921 433 2304\n3941 662 2487\n3975 797 2678\n4006 757 2792\n4001 724 2923\n4026 694 3020\n4065 618 3170\n4087 550 3319\n4091 426 3476\n4067 315 3648\n4082 515 3819\n3582 950 27\n3569 974 12\n3570 994 0\n3583 1007 0\n3609 988 3\n3582 998 3\n3595 970 30\n3595 938 180\n3591 902 324\n3592 873 454\n3602 846 577\n3602 781 687\n3583 727 794\n3601 656 898\n3590 579 1030\n3598 420 1140\n3686 7 1237\n3756 7 1437\n3781 7 1658\n3815 143 1869\n3869 401 2086\n3935 612 2319\n3940 802 2478\n3953 957 2656\n3977 947 2783\n4007 900 2916\n4011 860 3027\n4090 781 3179\n4094 741 3336\n4084 664 3490\n4078 600 3671\n4091 720 3831\n3584 1087 12\n3591 1088 15\n3597 1101 13\n3603 1100 15\n3624 1085 13\n3623 1083 11\n3617 1068 32\n3623 1029 177\n3623 1008 324\n3620 983 447\n3619 942 572\n3633 903 676\n3627 853 791\n3619 779 924\n3599 712 1038\n3590 660 1141\n3688 245 1258\n3738 30 1413\n3787 177 1641\n3849 395 1902\n3896 613 2107\n3920 780 2333\n3947 954 2505\n3980 1085 2670\n3988 1082 2814\n3993 1046 2913\n3998 1034 3032\n4041 981 3174\n4083 910 3335\n4084 859 3473\n4084 817 3680\n4095 899 3839\n3626 1186 6\n3640 1206 5\n3636 1203 2\n3638 1201 0\n3658 1201 24\n3645 1183 11\n3637 1155 14\n3648 1133 162\n3647 1132 344\n3658 1095 475\n3648 1052 568\n3642 1019 701\n3657 976 804\n3645 905 917\n3649 854 1033\n3641 817 1176\n3656 636 1282\n3755 272 1402\n3802 441 1673\n3830 615 1886\n3889 784 2106\n3933 921 2317\n3949 1077 2521\n3970 1227 2678\n3977 1229 2808\n3997 1208 2956\n3999 1185 3046\n4029 1135 3158\n4074 1086 3320\n4084 1018 3475\n4095 986 3686\n4084 1071 3839\n3658 1321 31\n3660 1321 16\n3648 1310 5\n3646 1314 0\n3664 1297 6\n3686 1284 21\n3677 1272 24\n3675 1243 154\n3664 1231 302\n3669 1219 453\n3664 1182 584\n3691 1149 698\n3675 1105 798\n3681 1051 926\n3654 978 1021\n3663 950 1168\n3650 887 1308\n3733 634 1406\n3811 649 1636\n3847 775 1865\n3879 926 2114\n3923 1072 2309\n3933 1216 2520\n3979 1368 2692\n3969 1397 2823\n3996 1360 2931\n4008 1333 3042\n4069 1292 3191\n4072 1256 3309\n4074 1214 3487\n4095 1154 3696\n4085 1240 3854\n3686 1435 6\n3703 1420 6\n3698 1415 1\n3711 1428 4\n3693 1417 12\n3694 1411 10\n3704 1385 10\n3707 1373 145\n3701 1365 304\n3704 1335 464\n3717 1291 603\n3707 1290 720\n3694 1237 833\n3697 1194 950\n3718 1129 1060\n3702 1083 1185\n3677 1056 1322\n3726 946 1462\n3797 811 1617\n3861 926 1857\n3882 1081 2101\n3916 1212 2320\n3938 1350 2526\n3980 1485 2712\n3970 1538 2860\n4000 1521 2969\n4013 1492 3063\n4046 1450 3194\n4094 1403 3352\n4095 1362 3512\n4089 1333 3685\n4085 1388 3848\n3723 1553 0\n3721 1550 10\n3744 1539 28\n3740 1549 0\n3739 1532 12\n3730 1520 22\n3743 1515 4\n3742 1491 133\n3744 1480 304\n3738 1454 460\n3754 1443 594\n3750 1417 731\n3745 1384 845\n3730 1341 954\n3744 1286 1067\n3715 1238 1189\n3713 1205 1340\n3716 1164 1492\n3775 995 1594\n3830 1077 1818\n3869 1192 2078\n3909 1344 2298\n3947 1464 2528\n3943 1617 2719\n3987 1697 2879\n3975 1675 2971\n3997 1638 3061\n4042 1599 3197\n4079 1557 3350\n4082 1524 3497\n4089 1498 3694\n4086 1556 3832\n3755 1682 0\n3753 1659 9\n3771 1671 22\n3776 1663 10\n3771 1649 25\n3771 1649 23\n3765 1633 13\n3763 1620 126\n3772 1612 312\n3756 1582 472\n3769 1578 612\n3765 1548 733\n3769 1529 870\n3770 1504 999\n3770 1440 1102\n3755 1391 1211\n3740 1342 1325\n3742 1337 1509\n3762 1247 1634\n3837 1198 1803\n3869 1323 2085\n3915 1456 2279\n3924 1583 2511\n3954 1726 2702\n3977 1832 2903\n3994 1819 3001\n3983 1788 3095\n4034 1764 3228\n4085 1735 3357\n4094 1694 3519\n4077 1679 3689\n4086 1697 3836\n3788 1803 8\n3788 1789 0\n3803 1795 0\n3811 1793 9\n3811 1777 18\n3802 1775 0\n3802 1767 0\n3813 1772 137\n3811 1759 333\n3806 1720 504\n3805 1718 631\n3797 1693 748\n3802 1676 877\n3819 1651 1015\n3817 1603 1145\n3796 1576 1243\n3787 1504 1365\n3769 1473 1500\n3736 1462 1660\n3801 1350 1795\n3880 1440 2044\n3898 1586 2296\n3924 1728 2532\n3937 1858 2723\n3966 1971 2918\n3969 1970 3028\n3994 1951 3114\n4019 1911 3245\n4065 1884 3380\n4094 1851 3513\n4095 1810 3690\n4095 1851 3863\n3835 1925 8\n3820 1926 1\n3828 1931 0\n3834 1924 8\n3827 1902 7\n3839 1913 0\n3831 1909 10\n3840 1886 148\n3855 1885 355\n3856 1870 517\n3844 1848 648\n3853 1840 787\n3840 1814 932\n3828 1783 1053\n3835 1773 1163\n3827 1725 1293\n3813 1676 1424\n3812 1626 1515\n3801 1605 1698\n3794 1592 1850\n3853 1557 2023\n3887 1695 2291\n3932 1836 2514\n3941 1963 2734\n3953 2090 2918\n3981 2113 3044\n3986 2104 3171\n4009 2057 3252\n4067 2030 3383\n4086 2006 3521\n4095 1965 3715\n4095 1997 3863\n3853 2064 15\n3875 2064 17\n3860 2057 8\n3868 2064 10\n3863 2054 9\n3883 2053 7\n3862 2041 18\n3870 2032 194\n3881 2017 408\n3884 2004 562\n3885 2003 715\n3882 1979 843\n3879 1960 975\n3871 1940 1102\n3853 1921 1218\n3876 1904 1348\n3868 1864 1479\n3860 1815 1609\n3829 1761 1688\n3795 1763 1861\n3853 1731 2020\n3887 1812 2294\n3924 1963 2523\n3929 2078 2739\n3941 2196 2921\n3981 2249 3060\n3965 2243 3172\n4001 2212 3277\n4045 2184 3424\n4092 2137 3554\n4095 2112 3724\n4087 2136 3893\n3871 2196 9\n3876 2188 0\n3900 2203 8\n3884 2196 2\n3906 2191 7\n3896 2181 3\n3879 2173 31\n3910 2183 247\n3916 2176 458\n3915 2164 600\n3911 2153 750\n3909 2135 908\n3909 2109 1023\n3907 2100 1148\n3901 2076 1262\n3902 2059 1407\n3891 2018 1529\n3877 1988 1645\n3867 1945 1749\n3829 1915 1898\n3810 1944 2080\n3855 1927 2267\n3899 2056 2509\n3912 2188 2731\n3938 2306 2924\n3955 2388 3095\n3960 2373 3198\n3991 2340 3290\n4039 2316 3415\n4092 2293 3566\n4077 2240 3742\n4079 2276 3877\n3878 2343 0\n3878 2343 1\n3878 2355 16\n3886 2351 2\n3877 2343 2\n3898 2324 13\n3894 2327 99\n3920 2311 310\n3925 2298 500\n3921 2302 668\n3942 2299 831\n3933 2271 959\n3942 2263 1095\n3942 2249 1221\n3934 2247 1342\n3948 2207 1478\n3910 2194 1593\n3894 2169 1703\n3900 2125 1847\n3883 2092 1963\n3860 2091 2095\n3838 2103 2284\n3874 2145 2495\n3921 2293 2744\n3926 2394 2947\n3965 2512 3130\n3965 2510 3221\n3970 2485 3325\n4026 2472 3455\n4083 2430 3577\n4095 2376 3724\n4089 2407 3890\n3874 2490 21\n3880 2490 15\n3880 2472 9\n3868 2490 1\n3884 2475 13\n3900 2488 25\n3903 2464 152\n3904 2459 375\n3916 2465 583\n3925 2453 729\n3940 2432 887\n3942 2431 1029\n3957 2420 1173\n3968 2415 1306\n3952 2390 1430\n3955 2382 1562\n3943 2361 1663\n3925 2346 1786\n3917 2326 1936\n3895 2282 2031\n3878 2256 2156\n3843 2287 2320\n3866 2267 2481\n3911 2385 2731\n3933 2477 2934\n3937 2605 3150\n3977 2641 3260\n3970 2632 3345\n4011 2594 3453\n4060 2561 3586\n4095 2533 3744\n4095 2544 3906\n3868 2626 22\n3852 2621 17\n3851 2626 9\n3876 2625 19\n3882 2617 10\n3887 2611 49\n3880 2613 269\n3885 2611 448\n3894 2609 615\n3916 2584 773\n3912 2590 915\n3938 2590 1078\n3937 2579 1214\n3960 2563 1360\n3983 2557 1522\n3986 2534 1656\n3970 2520 1763\n3956 2509 1893\n3959 2499 2031\n3927 2477 2143\n3900 2456 2263\n3882 2434 2367\n3843 2434 2519\n3900 2461 2711\n3926 2577 2924\n3932 2689 3124\n3960 2765 3287\n3944 2755 3374\n3995 2736 3486\n4054 2697 3605\n4084 2675 3745\n4085 2675 3902\n3867 2773 9\n3867 2764 5\n3848 2759 0\n3868 2768 0\n3857 2746 19\n3871 2758 216\n3888 2741 364\n3882 2737 535\n3900 2741 709\n3889 2737 828\n3911 2731 996\n3927 2730 1131\n3929 2724 1270\n3944 2716 1394\n3956 2709 1563\n3964 2703 1717\n3968 2688 1868\n3969 2677 1997\n3971 2678 2127\n3934 2655 2227\n3942 2646 2386\n3901 2597 2428\n3894 2576 2558\n3877 2578 2721\n3926 2660 2918\n3938 2770 3127\n3955 2884 3290\n3952 2911 3415\n3970 2880 3484\n4027 2834 3626\n4094 2811 3761\n4095 2794 3909\n3829 2904 0\n3853 2888 0\n3866 2913 4\n3864 2898 38\n3863 2909 179\n3859 2899 361\n3875 2895 496\n3887 2889 648\n3876 2892 799\n3884 2889 916\n3887 2878 1046\n3910 2888 1201\n3920 2870 1339\n3928 2852 1453\n3944 2867 1621\n3961 2852 1774\n3960 2843 1911\n3962 2839 2070\n3962 2842 2205\n3978 2826 2356\n3953 2799 2468\n3917 2793 2550\n3912 2767 2659\n3891 2728 2750\n3898 2739 2903\n3899 2853 3123\n3955 2955 3298\n3935 3019 3429\n3969 3000 3526\n4009 2958 3642\n4082 2936 3809\n4090 2936 3948\n3840 3035 0\n3851 3047 37\n3851 3046 118\n3829 3050 241\n3842 3044 382\n3849 3035 494\n3853 3044 630\n3840 3031 750\n3853 3031 865\n3875 3038 1002\n3873 3023 1126\n3887 3019 1263\n3895 3019 1402\n3907 3015 1531\n3912 2996 1672\n3932 3003 1829\n3924 3010 1968\n3941 2995 2124\n3955 2996 2265\n3966 2991 2427\n3979 2977 2557\n3954 2953 2654\n3936 2963 2747\n3913 2919 2835\n3900 2890 2937\n3890 2945 3099\n3925 3062 3317\n3945 3145 3495\n3977 3117 3566\n3999 3088 3650\n4077 3055 3788\n4095 3063 3939\n3824 3197 197\n3836 3194 275\n3830 3178 350\n3811 3184 431\n3822 3183 535\n3839 3184 649\n3848 3181 753\n3834 3190 877\n3852 3165 986\n3870 3177 1109\n3866 3172 1225\n3874 3171 1352\n3881 3181 1479\n3894 3169 1613\n3903 3158 1754\n3916 3149 1884\n3917 3157 2034\n3935 3137 2177\n3917 3142 2308\n3933 3137 2462\n3969 3123 2614\n3963 3120 2744\n3968 3129 2855\n3961 3101 2956\n3919 3079 3006\n3887 3066 3116\n3935 3117 3297\n3961 3242 3519\n3966 3260 3586\n4034 3231 3696\n4077 3197 3820\n4082 3206 3962\n3806 3312 507\n3816 3327 559\n3814 3315 605\n3804 3325 654\n3809 3325 718\n3810 3317 783\n3804 3325 883\n3825 3324 994\n3840 3328 1089\n3826 3325 1215\n3841 3325 1318\n3845 3312 1451\n3848 3318 1574\n3862 3303 1701\n3881 3298 1830\n3900 3304 1973\n3899 3304 2098\n3902 3288 2238\n3914 3279 2373\n3904 3281 2509\n3923 3279 2643\n3944 3278 2781\n3946 3264 2902\n3949 3277 3010\n3936 3273 3130\n3907 3229 3191\n3899 3212 3283\n3959 3313 3489\n3952 3393 3653\n3983 3375 3705\n4043 3314 3820\n4092 3312 3964\n3714 3401 786\n3730 3399 831\n3741 3413 876\n3745 3412 887\n3757 3404 1004\n3745 3409 1028\n3748 3400 1102\n3739 3415 1179\n3753 3418 1273\n3764 3415 1344\n3781 3422 1465\n3798 3420 1567\n3822 3435 1694\n3829 3446 1784\n3836 3433 1913\n3876 3456 2040\n3868 3440 2160\n3869 3434 2277\n3886 3428 2399\n3898 3416 2527\n3909 3414 2669\n3936 3413 2830\n3941 3408 2904\n3953 3422 3076\n3946 3423 3208\n3952 3411 3264\n3931 3379 3349\n3915 3391 3476\n3975 3491 3679\n3994 3491 3753\n4003 3445 3835\n4062 3469 3969\n3659 3494 1060\n3674 3496 1067\n3661 3496 1097\n3652 3509 1148\n3667 3482 1195\n3692 3506 1243\n3692 3494 1311\n3681 3506 1386\n3687 3499 1457\n3696 3494 1541\n3700 3505 1620\n3703 3502 1712\n3735 3518 1825\n3755 3517 1921\n3760 3533 2020\n3785 3534 2128\n3796 3536 2258\n3826 3545 2389\n3849 3556 2481\n3863 3562 2608\n3892 3555 2728\n3897 3555 2847\n3878 3543 2942\n3907 3555 3085\n3941 3541 3212\n3935 3555 3315\n3949 3542 3457\n3934 3539 3508\n3934 3572 3623\n3977 3634 3786\n4012 3575 3854\n4048 3585 3997\n3630 3606 1326\n3658 3635 1383\n3645 3620 1372\n3646 3609 1404\n3648 3610 1457\n3636 3620 1481\n3641 3619 1575\n3646 3617 1604\n3661 3623 1683\n3659 3608 1735\n3661 3623 1842\n3668 3614 1905\n3684 3623 1994\n3693 3618 2078\n3709 3614 2174\n3716 3625 2273\n3724 3631 2374\n3742 3618 2454\n3757 3621 2562\n3784 3642 2666\n3812 3652 2790\n3821 3645 2885\n3856 3654 2996\n3895 3689 3131\n3891 3698 3242\n3933 3687 3346\n3944 3686 3474\n3937 3687 3575\n3977 3687 3688\n3951 3751 3818\n3969 3704 3886\n4046 3703 4014\n3643 3753 1674\n3643 3754 1676\n3641 3753 1677\n3616 3752 1713\n3615 3756 1718\n3629 3753 1789\n3632 3756 1817\n3644 3763 1862\n3642 3753 1923\n3640 3755 1959\n3649 3748 2059\n3650 3758 2104\n3667 3760 2166\n3675 3754 2258\n3691 3753 2353\n3707 3777 2426\n3699 3754 2501\n3716 3754 2599\n3743 3770 2682\n3740 3749 2762\n3756 3760 2871\n3774 3770 2958\n3793 3770 3049\n3823 3782 3172\n3835 3783 3274\n3855 3787 3350\n3901 3789 3466\n3931 3831 3634\n3963 3848 3750\n3964 3834 3803\n3967 3865 3932\n4030 3833 4061\n3658 3884 2034\n3658 3899 2019\n3628 3900 2034\n3630 3898 2066\n3634 3900 2074\n3628 3898 2104\n3665 3884 2144\n3643 3897 2183\n3654 3896 2217\n3659 3896 2284\n3660 3884 2324\n3665 3884 2374\n3681 3890 2424\n3676 3887 2485\n3683 3892 2548\n3699 3900 2598\n3707 3899 2678\n3707 3899 2729\n3724 3899 2826\n3740 3900 2908\n3756 3905 2994\n3772 3915 3065\n3780 3900 3141\n3804 3912 3243\n3819 3916 3331\n3849 3903 3403\n3853 3916 3516\n3897 3944 3637\n3929 3932 3737\n3949 3933 3852\n3981 3949 3965\n3998 3948 4063\n3691 4047 2440\n3692 4047 2425\n3690 4046 2440\n3691 4047 2445\n3691 4047 2474\n3691 4044 2479\n3692 4034 2500\n3707 4047 2529\n3707 4047 2585\n3713 4037 2615\n3714 4046 2661\n3704 4042 2694\n3699 4053 2726\n3724 4062 2793\n3717 4055 2820\n3732 4055 2882\n3732 4055 2914\n3741 4054 2973\n3741 4037 3028\n3767 4056 3113\n3777 4063 3173\n3789 4062 3228\n3793 4052 3288\n3816 4063 3388\n3821 4050 3461\n3863 4049 3527\n3851 4065 3609\n3911 4064 3716\n3901 4080 3802\n3931 4064 3885\n3964 4063 3997\n3997 4080 4095\n3613 450 32\n3630 466 33\n3645 500 15\n3647 531 1\n3673 564 28\n3675 567 0\n3674 607 3\n3674 587 111\n3677 506 257\n3673 456 404\n3667 354 503\n3688 201 627\n3677 30 735\n3675 9 827\n3692 7 940\n3766 8 1035\n3806 8 1150\n3863 7 1411\n3905 16 1607\n3950 6 1835\n4008 0 2058\n4020 11 2249\n4035 16 2457\n4095 119 2629\n4095 123 2783\n4095 67 2897\n4095 19 2993\n4095 0 3107\n4077 32 3252\n4050 32 3444\n4078 16 3594\n4095 0 3822\n3630 498 48\n3645 530 0\n3631 548 17\n3631 550 14\n3661 595 14\n3662 600 0\n3690 650 19\n3690 603 119\n3666 546 272\n3693 477 396\n3688 387 524\n3667 262 621\n3676 80 725\n3677 25 836\n3685 7 952\n3759 0 1028\n3814 0 1173\n3839 8 1386\n3913 7 1626\n3963 0 1829\n4008 0 2066\n4021 10 2260\n4064 11 2472\n4091 208 2633\n4095 250 2787\n4095 175 2926\n4095 78 3025\n4081 29 3095\n4080 30 3253\n4094 15 3448\n4094 1 3564\n4080 0 3823\n3660 548 15\n3646 580 0\n3646 581 0\n3662 627 14\n3662 629 0\n3680 649 29\n3682 675 0\n3692 637 109\n3681 566 257\n3680 533 404\n3672 433 522\n3692 327 622\n3668 164 753\n3687 16 830\n3685 7 957\n3750 15 1005\n3814 8 1158\n3855 0 1388\n3905 7 1615\n3944 12 1846\n3980 9 2045\n4033 10 2260\n4056 5 2434\n4069 309 2625\n4084 376 2767\n4095 315 2895\n4095 219 3023\n4095 84 3130\n4066 13 3243\n4094 2 3445\n4078 17 3552\n4079 0 3822\n3647 615 3\n3660 631 15\n3664 632 15\n3661 663 0\n3677 680 0\n3681 728 13\n3710 721 0\n3706 692 107\n3686 628 263\n3693 572 419\n3686 499 515\n3691 410 622\n3685 264 740\n3681 80 838\n3693 16 960\n3741 14 1052\n3814 8 1158\n3864 9 1377\n3908 8 1600\n3939 8 1832\n4009 0 2048\n4031 11 2254\n4032 24 2438\n4095 425 2632\n4091 476 2802\n4095 448 2886\n4094 370 2999\n4095 278 3155\n4094 128 3315\n4095 20 3421\n4064 30 3580\n4064 18 3824\n3647 697 14\n3663 712 0\n3664 714 33\n3666 745 14\n3677 761 0\n3690 774 14\n3697 773 13\n3681 737 109\n3696 693 271\n3682 651 377\n3683 577 492\n3693 503 613\n3692 379 727\n3691 236 825\n3663 49 966\n3746 10 1066\n3814 8 1166\n3870 11 1391\n3936 0 1609\n3944 0 1829\n3980 8 2027\n4017 5 2250\n4066 197 2452\n4061 559 2613\n4085 621 2762\n4087 575 2870\n4090 527 3004\n4093 468 3119\n4095 329 3311\n4093 190 3468\n4082 68 3599\n4081 19 3826\n3693 779 0\n3664 795 0\n3680 811 27\n3682 839 0\n3682 847 0\n3693 856 5\n3710 853 6\n3696 817 73\n3686 758 253\n3724 732 391\n3696 661 486\n3712 587 633\n3709 498 738\n3724 385 838\n3722 252 963\n3725 16 1059\n3825 0 1148\n3879 3 1372\n3889 3 1593\n3944 0 1824\n3985 19 2019\n4017 42 2224\n4073 406 2431\n4066 684 2618\n4084 730 2765\n4092 713 2868\n4095 682 2987\n4095 602 3136\n4088 550 3294\n4095 463 3443\n4082 360 3660\n4095 342 3811\n3703 883 0\n3699 906 0\n3717 897 2\n3732 938 3\n3725 925 30\n3723 938 0\n3706 918 6\n3701 886 63\n3717 844 222\n3727 819 393\n3713 759 493\n3729 688 638\n3732 614 709\n3722 528 856\n3727 408 959\n3734 213 1082\n3814 8 1149\n3869 0 1359\n3908 3 1582\n3938 13 1803\n3990 9 2046\n4015 281 2215\n4068 587 2452\n4072 810 2635\n4088 876 2779\n4082 870 2894\n4082 831 2991\n4087 790 3134\n4084 701 3297\n4095 657 3439\n4094 579 3660\n4082 565 3819\n3733 982 25\n3728 991 0\n3711 995 0\n3740 1036 14\n3758 1024 20\n3738 1035 12\n3742 1003 0\n3754 974 47\n3749 953 241\n3767 914 385\n3743 879 519\n3758 816 627\n3732 728 729\n3752 640 845\n3749 573 989\n3741 488 1107\n3796 15 1185\n3854 9 1354\n3910 17 1598\n3969 11 1815\n3963 213 2002\n4013 498 2235\n4057 725 2444\n4062 942 2621\n4095 1026 2780\n4095 1007 2893\n4095 962 3001\n4085 950 3105\n4090 887 3270\n4083 818 3474\n4095 770 3651\n4091 776 3813\n3734 1109 0\n3754 1121 0\n3749 1124 0\n3762 1133 0\n3768 1136 14\n3775 1118 19\n3752 1088 0\n3754 1056 42\n3770 1040 225\n3785 1015 383\n3774 975 518\n3763 908 604\n3754 853 731\n3786 778 859\n3759 716 989\n3739 638 1095\n3808 406 1222\n3876 5 1344\n3918 22 1558\n3946 200 1799\n3991 462 2015\n4014 679 2260\n4066 859 2452\n4074 1052 2640\n4067 1165 2799\n4095 1132 2931\n4095 1102 3053\n4095 1072 3157\n4073 1031 3286\n4073 1001 3463\n4091 945 3649\n4095 936 3850\n3776 1223 14\n3772 1228 5\n3778 1234 0\n3803 1225 26\n3776 1232 0\n3790 1207 0\n3785 1185 0\n3791 1163 14\n3778 1155 213\n3799 1106 399\n3805 1096 508\n3784 1042 633\n3785 989 741\n3809 911 876\n3806 840 982\n3757 795 1141\n3773 731 1274\n3856 235 1385\n3926 227 1539\n3927 473 1781\n3998 652 2032\n4013 839 2280\n4060 1009 2468\n4044 1176 2646\n4090 1304 2797\n4092 1276 2928\n4095 1271 3061\n4090 1232 3160\n4095 1174 3325\n4085 1163 3470\n4083 1105 3608\n4095 1115 3833\n3800 1343 22\n3800 1342 0\n3796 1338 23\n3810 1350 11\n3795 1334 0\n3825 1327 0\n3812 1291 0\n3819 1270 11\n3816 1253 181\n3817 1232 359\n3816 1199 518\n3811 1150 649\n3806 1115 753\n3825 1056 882\n3806 977 990\n3800 939 1136\n3788 901 1260\n3848 688 1384\n3906 511 1538\n3981 658 1787\n3976 838 2010\n4025 990 2255\n4066 1153 2472\n4070 1285 2657\n4086 1439 2838\n4076 1426 2932\n4095 1404 3041\n4088 1386 3175\n4095 1361 3314\n4090 1306 3449\n4090 1283 3652\n4095 1278 3827\n3838 1462 0\n3849 1458 0\n3844 1465 5\n3828 1442 10\n3826 1440 10\n3838 1428 21\n3846 1401 3\n3840 1402 21\n3838 1388 194\n3838 1356 366\n3855 1319 519\n3844 1281 649\n3849 1253 768\n3829 1203 886\n3849 1131 987\n3820 1067 1119\n3831 1036 1267\n3821 985 1426\n3916 719 1529\n3960 819 1762\n4003 965 1999\n4026 1127 2238\n4032 1280 2461\n4064 1415 2651\n4082 1567 2854\n4066 1592 2986\n4087 1554 3060\n4089 1543 3171\n4088 1516 3309\n4083 1470 3491\n4068 1442 3633\n4095 1430 3828\n3860 1566 0\n3864 1582 22\n3869 1576 10\n3869 1572 5\n3861 1554 10\n3867 1537 13\n3883 1544 6\n3879 1517 4\n3867 1498 196\n3866 1483 369\n3885 1455 525\n3896 1416 650\n3867 1384 786\n3886 1356 901\n3892 1285 1029\n3876 1237 1169\n3858 1175 1272\n3843 1152 1437\n3896 1013 1547\n3938 980 1720\n3983 1104 2014\n4013 1257 2233\n4031 1408 2457\n4060 1539 2685\n4082 1687 2837\n4075 1740 2958\n4089 1706 3093\n4095 1667 3209\n4086 1653 3323\n4086 1613 3478\n4073 1593 3633\n4085 1589 3816\n3900 1688 0\n3909 1696 9\n3907 1696 16\n3896 1676 0\n3884 1665 0\n3900 1656 9\n3900 1649 9\n3897 1649 17\n3886 1619 182\n3909 1603 393\n3895 1574 541\n3909 1563 695\n3894 1525 815\n3893 1498 942\n3900 1442 1065\n3894 1383 1137\n3888 1312 1270\n3877 1303 1441\n3863 1253 1583\n3970 1113 1729\n3975 1241 1981\n4023 1382 2203\n4033 1521 2464\n4071 1648 2661\n4056 1807 2869\n4088 1877 2997\n4076 1853 3092\n4095 1828 3231\n4087 1795 3356\n4095 1746 3503\n4088 1745 3658\n4095 1729 3852\n3934 1835 9\n3923 1812 7\n3932 1810 0\n3936 1815 9\n3944 1792 2\n3943 1793 5\n3943 1795 9\n3924 1785 11\n3942 1753 217\n3924 1731 418\n3940 1726 563\n3943 1709 696\n3926 1668 818\n3928 1645 948\n3942 1597 1082\n3934 1553 1193\n3918 1504 1308\n3888 1435 1437\n3889 1428 1627\n3900 1358 1737\n3985 1353 1967\n4010 1493 2228\n4032 1641 2449\n4056 1776 2673\n4061 1917 2876\n4073 2017 3051\n4066 2002 3129\n4086 1981 3229\n4094 1942 3357\n4095 1909 3520\n4087 1900 3634\n4088 1876 3847\n3974 1942 17\n3952 1949 0\n3960 1935 17\n3981 1944 16\n3970 1935 0\n3958 1918 3\n3963 1928 8\n3975 1910 22\n3970 1893 233\n3986 1883 420\n3979 1859 588\n3982 1840 716\n3967 1830 875\n3981 1808 991\n3960 1759 1122\n3958 1718 1235\n3942 1652 1350\n3958 1596 1459\n3964 1571 1629\n3902 1584 1812\n3969 1483 1949\n3998 1632 2211\n4028 1774 2453\n4071 1889 2693\n4020 2032 2840\n4060 2148 3042\n4049 2148 3177\n4083 2119 3254\n4080 2088 3357\n4085 2064 3482\n4095 2031 3667\n4087 2014 3878\n3999 2073 8\n3991 2065 0\n4006 2065 7\n4008 2070 3\n3985 2057 8\n4009 2062 5\n4012 2050 19\n4006 2036 41\n4003 2025 298\n3999 2012 481\n3996 1992 640\n4012 1976 781\n4015 1962 924\n3990 1944 1053\n3971 1921 1140\n3991 1865 1277\n3967 1832 1374\n3960 1782 1508\n3952 1736 1638\n3960 1738 1837\n3962 1721 1957\n3991 1728 2186\n4031 1876 2451\n4059 2012 2661\n4058 2138 2868\n4064 2269 3060\n4066 2287 3188\n4087 2267 3258\n4095 2233 3371\n4086 2206 3504\n4088 2170 3668\n4087 2161 3870\n4018 2196 9\n3991 2196 17\n4017 2197 1\n4022 2209 10\n4016 2187 0\n4038 2187 0\n4033 2183 9\n4025 2180 86\n4024 2171 340\n4031 2155 517\n4032 2143 665\n4045 2123 836\n4048 2109 962\n4038 2086 1093\n4011 2071 1208\n4002 2037 1334\n4023 1997 1472\n4015 1962 1562\n3999 1922 1698\n3983 1902 1816\n3953 1903 2001\n3985 1875 2206\n4029 1978 2431\n4030 2106 2662\n4050 2230 2880\n4050 2385 3053\n4084 2417 3212\n4086 2398 3304\n4076 2365 3383\n4076 2354 3492\n4095 2317 3677\n4069 2285 3845\n4024 2340 0\n4021 2352 7\n4024 2342 8\n4024 2334 7\n4024 2334 7\n4040 2338 0\n4034 2334 6\n4039 2317 174\n4040 2307 403\n4054 2297 586\n4061 2283 754\n4069 2275 894\n4079 2257 1046\n4040 2247 1174\n4040 2229 1293\n4042 2222 1383\n4056 2160 1528\n4039 2150 1644\n4024 2102 1780\n4024 2070 1908\n3986 2026 2025\n3967 2068 2238\n3980 2088 2394\n4019 2207 2661\n4043 2336 2872\n4050 2449 3064\n4042 2543 3215\n4086 2517 3315\n4083 2501 3421\n4095 2473 3540\n4083 2441 3660\n4095 2421 3870\n3999 2480 6\n4012 2480 10\n4030 2479 25\n4010 2482 6\n4029 2488 6\n4027 2481 0\n4041 2471 55\n4041 2462 272\n4045 2442 484\n4037 2444 669\n4058 2426 810\n4075 2428 980\n4076 2406 1111\n4095 2397 1244\n4066 2373 1362\n4083 2370 1491\n4060 2346 1589\n4061 2321 1750\n4025 2282 1843\n4027 2259 1990\n4029 2207 2100\n4005 2217 2253\n3987 2223 2431\n4011 2295 2651\n4034 2427 2869\n4063 2545 3094\n4067 2646 3224\n4069 2667 3342\n4084 2641 3461\n4085 2614 3572\n4089 2588 3692\n4085 2561 3886\n4004 2627 0\n4004 2631 25\n3998 2627 7\n3999 2627 6\n4015 2637 0\n4004 2624 3\n4005 2624 123\n4024 2614 349\n4022 2605 543\n4041 2590 708\n4052 2590 861\n4051 2562 1012\n4063 2573 1165\n4082 2541 1304\n4085 2534 1450\n4082 2536 1598\n4087 2523 1704\n4079 2499 1819\n4073 2462 1928\n4033 2445 2052\n4042 2433 2188\n4015 2386 2286\n3982 2398 2494\n4004 2416 2594\n4027 2523 2890\n4022 2628 3064\n4049 2756 3271\n4047 2786 3377\n4064 2786 3475\n4095 2744 3571\n4095 2729 3691\n4095 2681 3886\n4004 2763 0\n4004 2757 0\n4010 2757 0\n4015 2756 0\n4004 2763 0\n4010 2750 72\n4010 2758 314\n4027 2750 476\n4024 2747 638\n4035 2738 802\n4036 2731 942\n4052 2725 1088\n4059 2719 1247\n4074 2697 1354\n4090 2686 1508\n4084 2683 1665\n4095 2688 1843\n4090 2647 1939\n4054 2638 2051\n4089 2614 2180\n4058 2608 2306\n4031 2576 2393\n4026 2544 2515\n3983 2561 2666\n4025 2591 2845\n4038 2699 3054\n4044 2813 3234\n4047 2924 3423\n4063 2904 3480\n4093 2872 3612\n4069 2849 3709\n4095 2816 3881\n3992 2904 0\n3989 2909 22\n3987 2895 0\n3997 2914 10\n3992 2899 67\n4001 2893 292\n4000 2911 421\n4002 2888 582\n4007 2895 723\n4015 2879 849\n4020 2867 988\n4040 2878 1147\n4042 2866 1296\n4058 2856 1445\n4082 2849 1574\n4072 2847 1719\n4092 2851 1881\n4086 2800 2027\n4095 2808 2154\n4051 2795 2265\n4087 2787 2408\n4043 2756 2507\n4031 2739 2622\n4006 2699 2681\n3976 2715 2812\n4011 2793 3036\n4021 2914 3246\n4053 3022 3435\n4035 3041 3509\n4069 3013 3617\n4095 2996 3751\n4095 2952 3920\n3995 3055 0\n3981 3051 4\n3973 3029 26\n3977 3045 148\n3987 3061 319\n3980 3044 435\n3993 3048 552\n3999 3042 705\n4011 3035 811\n3991 3023 950\n4012 3023 1070\n4031 3029 1223\n4035 3024 1361\n4051 3009 1487\n4041 3003 1631\n4047 2995 1785\n4055 2986 1936\n4063 2974 2088\n4067 2973 2238\n4095 2961 2392\n4091 2966 2524\n4088 2934 2614\n4082 2923 2716\n4035 2902 2794\n4021 2857 2887\n4019 2863 3020\n4023 2996 3244\n4047 3103 3450\n4060 3150 3583\n4051 3119 3635\n4095 3103 3771\n4091 3083 3923\n3950 3213 149\n3966 3173 227\n3966 3193 322\n3967 3185 415\n3969 3192 489\n3976 3187 612\n3986 3182 721\n3976 3172 839\n3998 3194 941\n4003 3186 1065\n3995 3181 1184\n4013 3166 1323\n4015 3171 1446\n4029 3151 1574\n4034 3162 1733\n4019 3144 1842\n4059 3137 2017\n4047 3133 2153\n4069 3142 2307\n4073 3110 2431\n4095 3103 2591\n4061 3135 2697\n4057 3086 2794\n4043 3082 2887\n4063 3021 2985\n4016 3022 3097\n4002 3053 3239\n4027 3155 3413\n4050 3276 3603\n4061 3276 3645\n4083 3242 3787\n4095 3201 3934\n3938 3341 412\n3925 3338 459\n3949 3341 523\n3938 3339 589\n3954 3341 697\n3962 3333 756\n3950 3315 851\n3955 3315 969\n3967 3337 1058\n3963 3325 1171\n3970 3320 1286\n3989 3322 1414\n3979 3312 1534\n3999 3302 1678\n4012 3303 1782\n4004 3288 1964\n4025 3281 2058\n4041 3271 2200\n4050 3273 2357\n4028 3260 2451\n4058 3264 2610\n4072 3253 2741\n4092 3277 2901\n4070 3259 3008\n4034 3244 3051\n4041 3215 3158\n3989 3183 3251\n4030 3258 3428\n4035 3362 3617\n4063 3393 3691\n4078 3353 3815\n4095 3328 3960\n3918 3461 729\n3921 3474 750\n3910 3463 796\n3921 3473 816\n3940 3488 883\n3918 3474 948\n3916 3467 1032\n3916 3471 1129\n3934 3461 1218\n3946 3474 1302\n3956 3480 1405\n3961 3469 1518\n3967 3477 1636\n3976 3463 1747\n3990 3458 1888\n3990 3437 2026\n4007 3437 2131\n4001 3435 2276\n4009 3412 2397\n4005 3424 2532\n4020 3413 2661\n4047 3394 2801\n4047 3408 2897\n4054 3394 2994\n4081 3392 3163\n4059 3369 3216\n4028 3359 3298\n4027 3326 3439\n4043 3442 3605\n4061 3509 3738\n4068 3502 3794\n4082 3485 3953\n3814 3545 1043\n3841 3531 1071\n3814 3529 1077\n3816 3530 1088\n3830 3529 1172\n3835 3534 1182\n3846 3540 1265\n3834 3535 1349\n3860 3555 1415\n3872 3552 1511\n3892 3556 1591\n3884 3561 1681\n3906 3551 1789\n3927 3563 1904\n3953 3580 2022\n3964 3575 2107\n3975 3577 2219\n3990 3578 2308\n3987 3559 2451\n3987 3563 2557\n3995 3557 2685\n4001 3557 2811\n4015 3554 2948\n4047 3541 3081\n4034 3530 3183\n4025 3543 3288\n4063 3525 3406\n4047 3493 3458\n4062 3491 3588\n4046 3620 3772\n4077 3623 3854\n4081 3605 3964\n3806 3625 1303\n3778 3640 1336\n3777 3637 1339\n3780 3623 1353\n3772 3637 1396\n3795 3627 1460\n3783 3639 1477\n3813 3650 1559\n3797 3629 1634\n3817 3646 1714\n3819 3641 1817\n3834 3638 1885\n3837 3649 1978\n3854 3634 2059\n3860 3642 2147\n3883 3648 2249\n3887 3667 2350\n3891 3664 2465\n3932 3673 2575\n3938 3677 2663\n3970 3703 2743\n3991 3690 2901\n3997 3699 2954\n4015 3690 3113\n4027 3690 3213\n4019 3684 3303\n4062 3673 3474\n4064 3686 3587\n4063 3639 3654\n4048 3685 3768\n4076 3738 3884\n4079 3706 4002\n3760 3754 1628\n3757 3755 1628\n3746 3755 1661\n3746 3755 1689\n3746 3757 1696\n3775 3778 1731\n3783 3754 1794\n3778 3761 1841\n3779 3756 1906\n3799 3764 1980\n3785 3754 2018\n3787 3756 2079\n3804 3755 2142\n3802 3775 2235\n3800 3748 2312\n3823 3771 2388\n3836 3770 2495\n3838 3770 2580\n3871 3770 2647\n3866 3770 2749\n3904 3785 2848\n3916 3787 2971\n3934 3799 3047\n3974 3815 3172\n3996 3829 3288\n4004 3816 3366\n4031 3820 3500\n4061 3803 3589\n4049 3803 3690\n4047 3786 3802\n4064 3865 3932\n4065 3834 4045\n3742 3885 1969\n3758 3900 2017\n3759 3901 1992\n3761 3901 2045\n3762 3900 2054\n3764 3903 2059\n3774 3901 2089\n3786 3913 2111\n3778 3900 2161\n3790 3900 2233\n3796 3889 2281\n3811 3905 2361\n3803 3900 2392\n3822 3916 2482\n3821 3900 2531\n3830 3908 2589\n3823 3907 2648\n3860 3922 2720\n3857 3922 2806\n3874 3904 2860\n3906 3900 2968\n3912 3911 3043\n3883 3912 3144\n3926 3904 3264\n3964 3916 3344\n3980 3917 3446\n3996 3917 3556\n4028 3931 3664\n4075 3976 3782\n4077 3964 3866\n4094 3964 3963\n4079 3964 4093\n3806 4047 2425\n3790 4062 2424\n3792 4063 2426\n3806 4034 2459\n3792 4049 2459\n3819 4076 2489\n3819 4047 2521\n3818 4047 2521\n3842 4063 2550\n3827 4058 2611\n3838 4052 2644\n3838 4063 2677\n3838 4057 2710\n3854 4063 2778\n3845 4054 2785\n3855 4063 2850\n3870 4055 2914\n3870 4070 2989\n3896 4063 3050\n3892 4063 3093\n3897 4073 3163\n3913 4074 3228\n3918 4079 3276\n3946 4067 3380\n3929 4091 3445\n3967 4082 3527\n4010 4076 3635\n4013 4067 3719\n4029 4066 3832\n4046 4095 3884\n4047 4095 3982\n4095 4079 4095\n"
  },
  {
    "path": "packages/sdk/public/resource/luts/Remy 24.CUBE",
    "content": "#Created by: Adobe Photoshop Export Color Lookup Plugin\n#Copyright: (C) Copyright 2017 RocketStock\nTITLE \"Untitled\"\n\n#LUT size\nLUT_3D_SIZE 32\n\n#data domain\nDOMAIN_MIN 0.0 0.0 0.0\nDOMAIN_MAX 1.0 1.0 1.0\n\n#LUT data points\n0.003937 0.002777 0.002625\n0.051483 0.003021 0.004120\n0.097351 0.003876 0.006683\n0.140625 0.005280 0.010284\n0.180695 0.007233 0.014618\n0.217010 0.009521 0.019287\n0.249329 0.012177 0.024536\n0.278473 0.014984 0.029755\n0.305328 0.017853 0.034912\n0.330780 0.020660 0.039734\n0.355591 0.023071 0.043640\n0.380402 0.023926 0.045380\n0.405792 0.024414 0.046509\n0.432526 0.024719 0.047455\n0.461151 0.024811 0.048279\n0.492096 0.024811 0.048950\n0.526733 0.024567 0.049316\n0.566315 0.024139 0.049530\n0.609894 0.023560 0.049469\n0.656128 0.022949 0.049347\n0.703369 0.022400 0.049225\n0.749847 0.021820 0.049042\n0.793732 0.021393 0.048767\n0.833496 0.021240 0.048859\n0.868866 0.021240 0.048889\n0.900177 0.021484 0.049225\n0.927979 0.021912 0.049591\n0.952576 0.022491 0.049927\n0.974548 0.023285 0.050354\n0.994293 0.024170 0.050812\n1.000000 0.043823 0.068878\n1.000000 0.070831 0.093903\n0.003754 0.041748 0.008911\n0.052643 0.044098 0.013550\n0.098419 0.045563 0.017456\n0.141571 0.047394 0.021973\n0.181519 0.049591 0.026825\n0.217621 0.051788 0.031708\n0.249664 0.054169 0.036591\n0.278595 0.056519 0.041046\n0.305328 0.058746 0.045074\n0.330536 0.059570 0.046814\n0.355072 0.060028 0.047943\n0.379608 0.060394 0.049072\n0.404907 0.060760 0.050110\n0.431519 0.060913 0.050934\n0.460175 0.060852 0.051636\n0.491302 0.060669 0.052094\n0.525848 0.060303 0.052429\n0.565369 0.059875 0.052429\n0.608917 0.059296 0.052277\n0.655151 0.058685 0.052063\n0.702332 0.058044 0.051819\n0.748810 0.057404 0.051514\n0.792694 0.057098 0.051300\n0.832642 0.056976 0.051270\n0.868225 0.057007 0.051270\n0.899689 0.057465 0.051514\n0.927490 0.057922 0.051788\n0.952087 0.058441 0.052094\n0.974060 0.059479 0.052460\n0.993744 0.060059 0.052551\n1.000000 0.078217 0.070282\n1.000000 0.104370 0.096222\n0.003967 0.081421 0.018524\n0.052856 0.084198 0.024139\n0.099823 0.087036 0.029877\n0.142914 0.088989 0.034668\n0.182678 0.090912 0.039154\n0.218567 0.092865 0.043549\n0.250458 0.094818 0.047394\n0.279144 0.095367 0.049011\n0.305542 0.095734 0.050140\n0.330475 0.096039 0.051270\n0.354858 0.096313 0.052368\n0.379272 0.096649 0.053406\n0.404633 0.096771 0.054321\n0.431366 0.096893 0.054993\n0.460052 0.096954 0.055664\n0.491150 0.096497 0.056030\n0.525726 0.096313 0.056183\n0.565247 0.095734 0.056152\n0.608795 0.095184 0.055908\n0.655029 0.094574 0.055664\n0.702209 0.094025 0.055298\n0.748871 0.093506 0.054932\n0.793182 0.093231 0.054688\n0.833221 0.093079 0.054565\n0.868866 0.093231 0.054535\n0.900238 0.093719 0.054657\n0.927979 0.094299 0.054810\n0.952454 0.094788 0.054810\n0.974274 0.095215 0.054932\n0.993896 0.096039 0.054993\n1.000000 0.112885 0.072754\n1.000000 0.137177 0.098450\n0.004578 0.120819 0.029877\n0.053070 0.123230 0.035309\n0.100433 0.126434 0.041351\n0.144318 0.129028 0.046478\n0.183899 0.130524 0.049988\n0.219360 0.130890 0.051575\n0.250763 0.130981 0.052521\n0.279083 0.131134 0.053497\n0.305267 0.131287 0.054535\n0.330139 0.131561 0.055603\n0.354553 0.131744 0.056549\n0.379120 0.131897 0.057526\n0.404510 0.131989 0.058319\n0.431244 0.132019 0.058960\n0.459961 0.131958 0.059479\n0.491028 0.131683 0.059814\n0.525635 0.131470 0.059875\n0.565125 0.130951 0.059723\n0.608673 0.130280 0.059448\n0.655090 0.129730 0.059052\n0.702850 0.129242 0.058685\n0.749847 0.128754 0.058197\n0.794220 0.128662 0.057892\n0.834320 0.128662 0.057678\n0.869812 0.128723 0.057587\n0.901031 0.129028 0.057312\n0.928558 0.129303 0.057220\n0.952942 0.129791 0.057190\n0.974609 0.130615 0.057251\n0.994080 0.131531 0.057373\n1.000000 0.147034 0.075104\n1.000000 0.169189 0.100555\n0.005310 0.159149 0.041260\n0.053314 0.160767 0.045532\n0.100616 0.163635 0.050751\n0.144684 0.165314 0.053772\n0.184296 0.165894 0.055237\n0.219299 0.165771 0.056061\n0.250488 0.165771 0.056946\n0.278687 0.165802 0.057831\n0.304962 0.165863 0.058777\n0.329987 0.166077 0.059723\n0.354431 0.166138 0.060577\n0.378998 0.166260 0.061432\n0.404388 0.166290 0.062073\n0.431122 0.166321 0.062683\n0.459839 0.166290 0.063171\n0.490936 0.166046 0.063385\n0.525513 0.165771 0.063416\n0.565155 0.165314 0.063232\n0.609344 0.164673 0.062744\n0.656311 0.164154 0.062317\n0.704376 0.163818 0.061798\n0.751556 0.163361 0.061310\n0.795837 0.163177 0.060913\n0.835693 0.162903 0.060303\n0.870941 0.163177 0.059998\n0.902008 0.163391 0.059692\n0.929352 0.163849 0.059570\n0.953522 0.164337 0.059509\n0.975037 0.164978 0.059509\n0.994354 0.165894 0.059570\n1.000000 0.180176 0.077423\n1.000000 0.200531 0.102539\n0.006165 0.195740 0.050964\n0.053436 0.195740 0.052368\n0.099915 0.196991 0.054688\n0.143402 0.198151 0.056885\n0.183411 0.199249 0.059021\n0.218842 0.199615 0.060394\n0.250153 0.199524 0.061157\n0.278534 0.199493 0.061920\n0.304840 0.199524 0.062805\n0.329865 0.199615 0.063599\n0.354279 0.199615 0.064362\n0.378876 0.199799 0.065155\n0.404266 0.199829 0.065765\n0.431000 0.199860 0.066284\n0.459747 0.199768 0.066620\n0.490967 0.199615 0.066772\n0.526154 0.199249 0.066711\n0.566498 0.198822 0.066467\n0.611084 0.198364 0.065918\n0.658386 0.197906 0.065369\n0.706635 0.197449 0.064819\n0.753601 0.196930 0.063934\n0.797760 0.196625 0.063263\n0.837341 0.196594 0.062653\n0.872345 0.196533 0.062286\n0.903168 0.196869 0.061981\n0.930267 0.197388 0.061798\n0.954193 0.198059 0.061737\n0.975525 0.198547 0.061707\n0.994598 0.199463 0.061707\n1.000000 0.212830 0.079651\n1.000000 0.230896 0.104492\n0.005646 0.228485 0.055206\n0.052185 0.227966 0.055634\n0.098175 0.228851 0.057678\n0.141449 0.229950 0.059845\n0.181702 0.230927 0.061890\n0.218140 0.231964 0.063843\n0.249969 0.232330 0.065125\n0.278381 0.232178 0.065826\n0.304657 0.232239 0.066589\n0.329712 0.232239 0.067322\n0.354156 0.232330 0.068024\n0.378754 0.232452 0.068726\n0.404144 0.232452 0.069275\n0.431061 0.232513 0.069702\n0.460266 0.232483 0.069946\n0.492065 0.232330 0.070007\n0.527771 0.232025 0.069855\n0.568665 0.231720 0.069458\n0.613678 0.231201 0.068878\n0.661102 0.230682 0.067993\n0.709229 0.230072 0.067108\n0.756226 0.229645 0.066284\n0.800110 0.229279 0.065552\n0.839355 0.229218 0.064911\n0.873993 0.229431 0.064514\n0.904419 0.229553 0.064148\n0.931244 0.230164 0.063934\n0.954926 0.230835 0.063812\n0.975983 0.231384 0.063751\n0.994873 0.232025 0.063721\n1.000000 0.244141 0.081757\n1.000000 0.260559 0.106232\n0.004089 0.259796 0.058350\n0.050446 0.259186 0.058777\n0.096313 0.259888 0.060577\n0.139984 0.260834 0.062592\n0.180328 0.261780 0.064575\n0.216766 0.262756 0.066498\n0.249268 0.263702 0.068329\n0.278259 0.264160 0.069580\n0.304535 0.264160 0.070221\n0.329590 0.264160 0.070892\n0.354034 0.264282 0.071564\n0.378754 0.264374 0.072113\n0.404633 0.264435 0.072571\n0.432098 0.264496 0.072968\n0.461731 0.264465 0.073120\n0.493988 0.264404 0.073059\n0.530273 0.264160 0.072815\n0.571503 0.263641 0.072052\n0.616699 0.263062 0.071198\n0.664307 0.262421 0.070282\n0.712463 0.261993 0.069366\n0.759277 0.261475 0.068451\n0.802765 0.261383 0.067719\n0.841553 0.261261 0.067078\n0.875793 0.261475 0.066589\n0.905853 0.261627 0.066223\n0.932312 0.262085 0.065979\n0.955688 0.262665 0.065826\n0.976501 0.263245 0.065704\n0.995178 0.264069 0.065613\n1.000000 0.275024 0.083740\n1.000000 0.289581 0.107941\n0.002289 0.290344 0.061432\n0.048950 0.289673 0.061707\n0.094818 0.290192 0.063232\n0.138550 0.291016 0.065186\n0.178894 0.291931 0.067047\n0.215393 0.292908 0.068878\n0.247925 0.293854 0.070648\n0.277496 0.294800 0.072388\n0.304413 0.295471 0.073730\n0.329590 0.295532 0.074341\n0.354553 0.295654 0.074860\n0.379791 0.295807 0.075378\n0.406006 0.295898 0.075745\n0.433899 0.296021 0.076050\n0.463959 0.296112 0.076080\n0.496460 0.295837 0.075684\n0.533112 0.295441 0.075134\n0.574860 0.294983 0.074371\n0.620392 0.294403 0.073425\n0.668213 0.294037 0.072479\n0.716248 0.293365 0.071442\n0.762726 0.293091 0.070526\n0.805725 0.292786 0.069733\n0.843964 0.292877 0.069061\n0.877686 0.293091 0.068542\n0.907349 0.293304 0.068237\n0.933411 0.293762 0.067902\n0.956482 0.294250 0.067719\n0.977020 0.294861 0.067535\n0.995483 0.295654 0.067413\n1.000000 0.305389 0.085663\n1.000000 0.318420 0.109528\n0.000916 0.320404 0.064270\n0.047607 0.319763 0.064484\n0.093323 0.320099 0.065735\n0.137085 0.320953 0.067535\n0.177460 0.321869 0.069366\n0.214020 0.322815 0.071136\n0.246613 0.323730 0.072815\n0.276245 0.324768 0.074493\n0.304199 0.325775 0.076111\n0.330719 0.326691 0.077576\n0.356018 0.326843 0.078064\n0.381592 0.327057 0.078461\n0.408234 0.327240 0.078735\n0.436279 0.327209 0.078644\n0.466522 0.327118 0.078430\n0.499512 0.326904 0.077972\n0.536743 0.326569 0.077332\n0.578949 0.326080 0.076508\n0.624756 0.325684 0.075531\n0.672607 0.325165 0.074493\n0.720398 0.324768 0.073486\n0.766479 0.324432 0.072510\n0.808899 0.324280 0.071686\n0.846527 0.324188 0.071014\n0.879730 0.324554 0.070465\n0.908905 0.324677 0.070038\n0.934570 0.325165 0.069672\n0.957275 0.325562 0.069519\n0.977570 0.326202 0.069244\n0.995789 0.326721 0.069092\n1.000000 0.335480 0.087494\n1.000000 0.346802 0.111084\n0.000000 0.350006 0.067261\n0.046204 0.349762 0.066956\n0.091858 0.349976 0.067963\n0.135620 0.350830 0.069733\n0.176025 0.351807 0.071472\n0.212769 0.352753 0.073212\n0.246094 0.353668 0.074738\n0.276489 0.354767 0.076416\n0.304718 0.355865 0.077972\n0.331635 0.356964 0.079498\n0.358215 0.358154 0.081055\n0.383942 0.358276 0.081085\n0.410706 0.358307 0.081085\n0.439117 0.358276 0.080933\n0.469757 0.358215 0.080597\n0.503143 0.358063 0.080139\n0.541016 0.357758 0.079376\n0.583618 0.357361 0.078491\n0.629639 0.356964 0.077484\n0.677429 0.356537 0.076385\n0.724854 0.356049 0.075317\n0.770447 0.355835 0.074371\n0.812164 0.355774 0.073578\n0.849213 0.355835 0.072784\n0.881744 0.355927 0.072235\n0.910431 0.356232 0.071808\n0.935699 0.356537 0.071381\n0.958099 0.357025 0.071106\n0.978088 0.357483 0.070862\n0.996094 0.358154 0.070648\n1.000000 0.365540 0.089142\n1.000000 0.375366 0.112427\n0.000000 0.379028 0.070496\n0.044800 0.379974 0.069366\n0.090363 0.380096 0.070160\n0.134186 0.380981 0.071747\n0.175690 0.381958 0.073456\n0.213287 0.382935 0.075073\n0.247009 0.383972 0.076660\n0.277557 0.385132 0.078186\n0.306061 0.386230 0.079742\n0.333099 0.387268 0.080872\n0.359711 0.388336 0.082092\n0.386719 0.389435 0.083282\n0.413818 0.389557 0.083313\n0.442627 0.389679 0.083099\n0.473602 0.389648 0.082672\n0.507385 0.389557 0.082123\n0.545868 0.389343 0.081329\n0.588745 0.388885 0.080353\n0.634888 0.388580 0.079285\n0.682495 0.388062 0.078278\n0.729584 0.387695 0.077087\n0.774445 0.387451 0.076111\n0.815491 0.387390 0.075226\n0.851807 0.387421 0.074493\n0.883820 0.387634 0.073883\n0.911926 0.387817 0.073364\n0.936829 0.388184 0.072968\n0.958893 0.388611 0.072693\n0.978607 0.389069 0.072327\n0.996368 0.389496 0.072052\n1.000000 0.395935 0.090698\n1.000000 0.403900 0.113647\n0.000000 0.408417 0.073669\n0.043427 0.410614 0.071411\n0.090179 0.410645 0.072052\n0.135345 0.411621 0.073608\n0.177246 0.412659 0.075226\n0.215118 0.413696 0.076752\n0.248901 0.414795 0.078278\n0.279419 0.415802 0.079468\n0.307831 0.416809 0.080688\n0.334961 0.417847 0.081848\n0.361816 0.419037 0.083038\n0.388947 0.420135 0.084137\n0.417358 0.421295 0.085205\n0.446594 0.421600 0.085114\n0.477905 0.421539 0.084686\n0.512115 0.421448 0.083984\n0.551056 0.421173 0.083130\n0.594330 0.420898 0.082184\n0.640442 0.420532 0.081055\n0.687744 0.420105 0.079895\n0.734314 0.419800 0.078766\n0.778564 0.419556 0.077759\n0.818817 0.419525 0.076874\n0.854401 0.419434 0.076050\n0.885803 0.419739 0.075378\n0.913422 0.419952 0.074921\n0.937866 0.420074 0.074432\n0.959595 0.420593 0.074066\n0.979034 0.420929 0.073700\n0.996674 0.421387 0.073364\n1.000000 0.426514 0.092041\n1.000000 0.432953 0.114716\n0.000000 0.439545 0.075775\n0.044952 0.441803 0.073242\n0.092377 0.441925 0.073792\n0.138092 0.442932 0.075317\n0.180267 0.444000 0.076813\n0.217896 0.445007 0.078064\n0.251373 0.445953 0.079224\n0.281830 0.447021 0.080444\n0.310211 0.448120 0.081635\n0.337372 0.449188 0.082642\n0.364349 0.450348 0.083771\n0.391785 0.451508 0.084808\n0.420380 0.452667 0.085876\n0.450897 0.453949 0.086914\n0.482574 0.453979 0.086487\n0.517242 0.453979 0.085815\n0.556702 0.453705 0.084869\n0.600098 0.453369 0.083771\n0.646210 0.453033 0.082642\n0.693115 0.452637 0.081482\n0.739136 0.452301 0.080322\n0.782562 0.452179 0.079224\n0.821991 0.452087 0.078308\n0.856842 0.451996 0.077545\n0.887634 0.452179 0.076874\n0.914795 0.452332 0.076233\n0.938812 0.452545 0.075806\n0.960236 0.452850 0.075378\n0.979431 0.453247 0.074982\n0.996887 0.453644 0.074493\n1.000000 0.457336 0.093109\n1.000000 0.462585 0.115356\n0.000000 0.473511 0.075653\n0.048279 0.473724 0.074738\n0.096436 0.474030 0.075348\n0.142029 0.474945 0.076538\n0.183929 0.475922 0.077759\n0.221283 0.476929 0.078949\n0.254486 0.477936 0.080078\n0.284821 0.479004 0.081146\n0.313110 0.480103 0.082275\n0.340363 0.481232 0.083374\n0.367340 0.482422 0.084351\n0.394897 0.483551 0.085388\n0.423889 0.484802 0.086365\n0.454529 0.485992 0.087341\n0.487579 0.487122 0.088196\n0.522644 0.487122 0.087433\n0.562469 0.486877 0.086456\n0.606049 0.486481 0.085358\n0.651917 0.486237 0.084137\n0.698395 0.485748 0.082886\n0.743744 0.485535 0.081726\n0.786438 0.485382 0.080658\n0.824982 0.485260 0.079651\n0.859161 0.485107 0.078888\n0.889374 0.485291 0.078186\n0.916046 0.485382 0.077515\n0.939728 0.485504 0.076996\n0.960876 0.485901 0.076416\n0.979858 0.485931 0.075836\n0.997101 0.486359 0.075195\n1.000000 0.489014 0.093750\n1.000000 0.492554 0.115723\n0.003815 0.506989 0.076385\n0.053253 0.506439 0.075745\n0.101288 0.506744 0.076141\n0.146881 0.507721 0.077301\n0.188416 0.508728 0.078461\n0.225494 0.509857 0.079620\n0.258362 0.510895 0.080658\n0.288330 0.511993 0.081757\n0.316467 0.513184 0.082764\n0.343658 0.514343 0.083771\n0.370758 0.515533 0.084778\n0.398315 0.516754 0.085724\n0.427429 0.517975 0.086670\n0.458405 0.519226 0.087585\n0.491730 0.520447 0.088440\n0.528229 0.521423 0.088959\n0.568451 0.521179 0.087952\n0.611938 0.520844 0.086731\n0.657532 0.520477 0.085480\n0.703461 0.520111 0.084259\n0.748138 0.519775 0.083069\n0.790009 0.519562 0.081970\n0.827820 0.519257 0.080933\n0.861267 0.519226 0.080109\n0.890930 0.519196 0.079376\n0.917206 0.519348 0.078644\n0.940552 0.519531 0.077911\n0.961487 0.519714 0.077148\n0.980286 0.519867 0.076294\n0.997375 0.520294 0.075500\n1.000000 0.521606 0.094116\n1.000000 0.524017 0.115784\n0.009430 0.541992 0.076996\n0.059204 0.541534 0.076202\n0.107605 0.542053 0.076782\n0.152954 0.543121 0.077911\n0.193939 0.544250 0.079010\n0.230194 0.545380 0.080109\n0.262634 0.546539 0.081116\n0.292267 0.547729 0.082092\n0.320099 0.548950 0.083069\n0.347107 0.550140 0.084076\n0.374237 0.551422 0.085022\n0.402008 0.552673 0.085907\n0.431183 0.553894 0.086761\n0.462311 0.555176 0.087646\n0.495880 0.556396 0.088440\n0.532959 0.557678 0.089264\n0.574310 0.558319 0.089264\n0.617706 0.557892 0.088074\n0.662964 0.557495 0.086792\n0.708344 0.557007 0.085541\n0.752258 0.556519 0.084290\n0.793335 0.556244 0.083130\n0.830292 0.555939 0.082123\n0.863190 0.555878 0.081116\n0.892395 0.555878 0.080231\n0.918304 0.555908 0.079285\n0.941406 0.555969 0.078339\n0.962067 0.556213 0.077423\n0.980682 0.556335 0.076508\n0.997620 0.556671 0.075592\n1.000000 0.556763 0.094299\n1.000000 0.557556 0.115662\n0.016724 0.579834 0.077362\n0.066498 0.579315 0.076538\n0.114990 0.580139 0.077271\n0.159729 0.581238 0.078369\n0.199890 0.582367 0.079407\n0.235504 0.583649 0.080383\n0.267120 0.584808 0.081360\n0.296387 0.586029 0.082367\n0.323883 0.587219 0.083282\n0.350769 0.588470 0.084229\n0.377808 0.589691 0.085052\n0.405579 0.590973 0.085907\n0.434967 0.592224 0.086731\n0.466278 0.593445 0.087555\n0.499908 0.594635 0.088257\n0.537415 0.595856 0.089081\n0.579346 0.597076 0.089752\n0.623230 0.597168 0.089264\n0.668030 0.596710 0.087952\n0.712677 0.596069 0.086670\n0.755951 0.595734 0.085388\n0.796295 0.595215 0.084137\n0.832672 0.594818 0.082947\n0.865051 0.594574 0.081787\n0.893829 0.594574 0.080658\n0.919434 0.594482 0.079590\n0.942230 0.594513 0.078491\n0.962646 0.594574 0.077484\n0.981079 0.594910 0.076447\n0.997864 0.594971 0.075470\n1.000000 0.593719 0.094299\n1.000000 0.593079 0.115540\n0.025360 0.619751 0.077423\n0.075012 0.619263 0.076691\n0.123138 0.620361 0.077606\n0.167175 0.621490 0.078644\n0.206421 0.622681 0.079620\n0.240875 0.623840 0.080597\n0.271973 0.625031 0.081573\n0.300598 0.626251 0.082458\n0.327820 0.627411 0.083313\n0.354523 0.628632 0.084167\n0.381592 0.629852 0.085022\n0.409302 0.630981 0.085815\n0.438690 0.632172 0.086548\n0.470184 0.633392 0.087341\n0.503754 0.634491 0.087982\n0.541443 0.635651 0.088654\n0.583344 0.636780 0.089355\n0.627991 0.637787 0.089935\n0.672577 0.637512 0.088989\n0.716766 0.636871 0.087585\n0.759399 0.636292 0.086182\n0.799194 0.635803 0.084747\n0.834991 0.635406 0.083374\n0.866943 0.635071 0.082062\n0.895325 0.634888 0.080811\n0.920502 0.634827 0.079620\n0.943085 0.634857 0.078461\n0.963257 0.634766 0.077332\n0.981476 0.634857 0.076294\n0.998108 0.635071 0.075317\n1.000000 0.632172 0.094360\n1.000000 0.629761 0.115479\n0.035095 0.661163 0.077301\n0.084473 0.660858 0.076813\n0.131989 0.661957 0.077820\n0.174835 0.663086 0.078827\n0.212982 0.664215 0.079803\n0.246368 0.665344 0.080627\n0.276733 0.666504 0.081543\n0.305023 0.667633 0.082397\n0.331757 0.668762 0.083221\n0.358276 0.669861 0.084015\n0.385193 0.671021 0.084808\n0.412994 0.672058 0.085571\n0.442444 0.673157 0.086273\n0.473755 0.674255 0.086914\n0.507568 0.675232 0.087616\n0.545258 0.676270 0.088196\n0.586853 0.677216 0.088776\n0.631134 0.678131 0.089294\n0.676758 0.679108 0.089722\n0.720642 0.678406 0.088165\n0.762817 0.677765 0.086548\n0.802032 0.677216 0.084961\n0.837280 0.676605 0.083466\n0.868744 0.676208 0.082062\n0.896759 0.676086 0.080719\n0.921600 0.675873 0.079498\n0.943878 0.675842 0.078308\n0.963806 0.675781 0.077179\n0.981873 0.675690 0.076172\n0.998352 0.675812 0.075226\n1.000000 0.671234 0.094513\n1.000000 0.667023 0.115509\n0.045654 0.703094 0.077271\n0.094788 0.703064 0.077026\n0.140961 0.704071 0.077942\n0.182831 0.705139 0.078888\n0.219513 0.706177 0.079773\n0.252014 0.707214 0.080597\n0.281586 0.708313 0.081482\n0.309143 0.709320 0.082306\n0.335541 0.710358 0.083038\n0.361908 0.711395 0.083801\n0.388672 0.712341 0.084503\n0.416412 0.713348 0.085175\n0.445770 0.714233 0.085846\n0.477020 0.715149 0.086456\n0.510803 0.716064 0.087036\n0.548615 0.716919 0.087555\n0.590179 0.717773 0.087982\n0.634430 0.718658 0.088226\n0.679688 0.719482 0.088440\n0.724579 0.720123 0.088379\n0.766205 0.719391 0.086639\n0.804871 0.718658 0.084961\n0.839569 0.717987 0.083374\n0.870575 0.717682 0.081940\n0.898102 0.717255 0.080566\n0.922668 0.717102 0.079254\n0.944672 0.716797 0.078156\n0.964386 0.716797 0.077087\n0.982239 0.716614 0.076111\n0.998566 0.716675 0.075256\n1.000000 0.710358 0.094757\n1.000000 0.704681 0.115784\n0.056702 0.744659 0.076874\n0.105194 0.744904 0.077087\n0.150238 0.745850 0.078003\n0.190582 0.746826 0.078857\n0.225952 0.747742 0.079742\n0.257355 0.748627 0.080505\n0.286102 0.749573 0.081299\n0.313202 0.750488 0.082092\n0.339325 0.751312 0.082764\n0.365387 0.752228 0.083466\n0.391937 0.753082 0.084167\n0.419525 0.753876 0.084747\n0.448700 0.754669 0.085358\n0.480072 0.755463 0.085876\n0.513916 0.756226 0.086273\n0.551849 0.757019 0.086548\n0.593414 0.757690 0.086761\n0.637451 0.758453 0.086853\n0.682648 0.759186 0.086914\n0.727203 0.759918 0.086945\n0.769531 0.760315 0.086456\n0.807526 0.759552 0.084747\n0.841736 0.758911 0.083160\n0.872223 0.758453 0.081696\n0.899384 0.757904 0.080353\n0.923676 0.757568 0.079163\n0.945404 0.757324 0.078094\n0.964905 0.757111 0.077087\n0.982605 0.756897 0.076202\n0.998749 0.756836 0.075531\n1.000000 0.749023 0.095306\n1.000000 0.741669 0.116333\n0.068024 0.785034 0.076660\n0.115631 0.785553 0.077148\n0.159241 0.786346 0.078003\n0.198059 0.787170 0.078827\n0.232117 0.787964 0.079590\n0.262451 0.788727 0.080322\n0.290558 0.789490 0.081085\n0.317078 0.790253 0.081757\n0.342712 0.790985 0.082458\n0.368408 0.791718 0.083099\n0.394806 0.792389 0.083710\n0.422302 0.793091 0.084167\n0.451508 0.793701 0.084625\n0.483032 0.794342 0.084900\n0.517151 0.795013 0.085114\n0.555176 0.795685 0.085236\n0.596893 0.796326 0.085327\n0.640625 0.796967 0.085327\n0.685364 0.797577 0.085236\n0.729492 0.798187 0.085175\n0.771637 0.798798 0.085052\n0.810242 0.798920 0.084473\n0.843842 0.798340 0.082916\n0.873901 0.797638 0.081512\n0.900635 0.797058 0.080261\n0.924591 0.796631 0.079132\n0.946045 0.796417 0.078156\n0.965363 0.795959 0.077301\n0.982910 0.795685 0.076691\n0.998932 0.795441 0.076080\n1.000000 0.786102 0.096191\n1.000000 0.777405 0.117371\n0.079224 0.823456 0.076324\n0.125824 0.824127 0.077148\n0.167969 0.824799 0.077911\n0.205139 0.825470 0.078705\n0.237701 0.826111 0.079437\n0.267334 0.826721 0.080109\n0.294525 0.827393 0.080811\n0.320496 0.827972 0.081482\n0.345795 0.828522 0.082062\n0.371246 0.829102 0.082581\n0.397430 0.829681 0.083008\n0.425140 0.830231 0.083313\n0.454498 0.830780 0.083588\n0.485931 0.831329 0.083649\n0.520294 0.831818 0.083710\n0.558716 0.832397 0.083740\n0.600342 0.832886 0.083679\n0.643799 0.833405 0.083618\n0.688202 0.833893 0.083527\n0.731781 0.834442 0.083405\n0.773468 0.834900 0.083313\n0.811829 0.835388 0.083252\n0.845795 0.835419 0.082794\n0.875427 0.834778 0.081482\n0.901855 0.834229 0.080322\n0.925476 0.833832 0.079315\n0.946686 0.833374 0.078552\n0.965790 0.832855 0.077850\n0.983124 0.832642 0.077454\n0.999084 0.832275 0.077179\n1.000000 0.821442 0.097595\n1.000000 0.811523 0.118896\n0.090637 0.859497 0.076294\n0.135559 0.860016 0.077087\n0.175903 0.860535 0.077820\n0.211517 0.861084 0.078552\n0.243011 0.861572 0.079224\n0.271576 0.862061 0.079895\n0.298096 0.862518 0.080536\n0.323578 0.863007 0.081055\n0.348572 0.863434 0.081512\n0.374023 0.863831 0.081787\n0.400330 0.864288 0.082031\n0.428101 0.864746 0.082123\n0.457581 0.865143 0.082214\n0.489227 0.865631 0.082245\n0.523621 0.866058 0.082184\n0.562103 0.866455 0.082092\n0.603546 0.866882 0.082031\n0.646942 0.867279 0.081909\n0.690979 0.867706 0.081909\n0.734100 0.868103 0.081787\n0.775146 0.868500 0.081757\n0.812836 0.868958 0.081787\n0.846802 0.869263 0.081818\n0.876831 0.869476 0.081696\n0.902924 0.868835 0.080688\n0.926270 0.868195 0.079895\n0.947235 0.867706 0.079315\n0.966156 0.867096 0.078949\n0.983368 0.866638 0.078735\n0.999207 0.866333 0.078766\n1.000000 0.854401 0.099518\n1.000000 0.843567 0.121948\n0.101227 0.892273 0.076324\n0.144592 0.892639 0.077057\n0.183197 0.893066 0.077759\n0.217316 0.893433 0.078400\n0.247650 0.893799 0.079010\n0.275208 0.894135 0.079590\n0.301422 0.894501 0.080048\n0.326508 0.894806 0.080353\n0.351410 0.895203 0.080597\n0.376831 0.895538 0.080688\n0.403107 0.895813 0.080780\n0.431000 0.896210 0.080811\n0.460663 0.896515 0.080719\n0.492401 0.896881 0.080688\n0.527039 0.897156 0.080597\n0.565613 0.897522 0.080536\n0.606903 0.897827 0.080444\n0.650055 0.898193 0.080383\n0.693390 0.898438 0.080353\n0.736237 0.898743 0.080383\n0.776672 0.899078 0.080444\n0.813965 0.899384 0.080597\n0.847290 0.899658 0.080841\n0.877167 0.899933 0.081146\n0.903870 0.900085 0.081482\n0.926941 0.899384 0.080902\n0.947693 0.898956 0.080627\n0.966461 0.898376 0.080505\n0.983582 0.897797 0.080658\n0.999298 0.897522 0.081909\n1.000000 0.885132 0.104065\n1.000000 0.873169 0.126862\n0.110992 0.921478 0.076324\n0.152832 0.921783 0.077026\n0.189606 0.921997 0.077606\n0.222412 0.922241 0.078186\n0.251984 0.922546 0.078674\n0.279022 0.922791 0.079010\n0.304657 0.923035 0.079193\n0.329498 0.923309 0.079315\n0.354401 0.923553 0.079437\n0.379822 0.923828 0.079468\n0.406189 0.924042 0.079407\n0.434052 0.924316 0.079376\n0.463776 0.924530 0.079285\n0.495453 0.924774 0.079193\n0.530426 0.925049 0.079163\n0.568939 0.925262 0.079041\n0.610077 0.925507 0.079041\n0.652985 0.925751 0.079102\n0.696106 0.925934 0.079163\n0.738159 0.926178 0.079285\n0.778107 0.926422 0.079498\n0.814819 0.926636 0.079834\n0.847809 0.926819 0.080353\n0.877319 0.927063 0.080872\n0.903809 0.927246 0.081573\n0.927582 0.927399 0.082489\n0.948120 0.926758 0.082520\n0.966766 0.926270 0.083618\n0.983734 0.925903 0.085236\n0.999298 0.925507 0.087158\n1.000000 0.912231 0.109650\n1.000000 0.899567 0.132874\n0.119873 0.947388 0.076355\n0.159698 0.947540 0.076935\n0.195435 0.947723 0.077423\n0.227203 0.947906 0.077759\n0.256104 0.948059 0.077972\n0.282715 0.948273 0.078125\n0.308044 0.948456 0.078186\n0.332733 0.948608 0.078217\n0.357452 0.948822 0.078186\n0.382843 0.949005 0.078156\n0.409180 0.949158 0.078064\n0.437042 0.949371 0.077972\n0.466766 0.949524 0.077942\n0.498657 0.949707 0.077820\n0.533569 0.949860 0.077820\n0.572083 0.950012 0.077850\n0.613037 0.950226 0.077911\n0.655548 0.950378 0.078125\n0.698334 0.950531 0.078339\n0.740021 0.950653 0.078644\n0.779480 0.950806 0.079132\n0.815582 0.950958 0.079681\n0.848145 0.951080 0.080383\n0.877472 0.951263 0.081268\n0.903564 0.951355 0.082275\n0.927185 0.951569 0.084351\n0.948395 0.951752 0.086761\n0.966980 0.951294 0.088776\n0.983765 0.950836 0.091003\n0.999207 0.950348 0.093414\n1.000000 0.936859 0.116119\n1.000000 0.923370 0.139679\n0.127655 0.970459 0.076172\n0.166626 0.970581 0.076538\n0.201233 0.970703 0.076782\n0.232086 0.970856 0.076935\n0.260101 0.970947 0.077026\n0.286499 0.971100 0.077057\n0.311554 0.971191 0.076996\n0.335785 0.971283 0.076965\n0.360535 0.971466 0.076904\n0.385773 0.971558 0.076813\n0.412231 0.971710 0.076752\n0.440094 0.971802 0.076691\n0.469818 0.971893 0.076691\n0.501678 0.972015 0.076721\n0.536743 0.972107 0.076752\n0.575134 0.972229 0.076935\n0.615936 0.972351 0.077179\n0.658234 0.972443 0.077484\n0.700378 0.972534 0.077972\n0.741486 0.972626 0.078552\n0.780518 0.972717 0.079224\n0.816315 0.972809 0.080078\n0.848480 0.972900 0.081116\n0.877472 0.973022 0.083160\n0.903534 0.973145 0.085632\n0.926941 0.973267 0.088440\n0.947845 0.973328 0.091431\n0.966797 0.973389 0.094788\n0.983673 0.973145 0.097870\n0.999054 0.972595 0.100677\n1.000000 0.958771 0.123444\n1.000000 0.945038 0.147156\n0.135437 0.991272 0.075653\n0.173218 0.991364 0.075806\n0.206818 0.991455 0.075897\n0.236908 0.991516 0.075928\n0.264374 0.991577 0.075897\n0.289978 0.991638 0.075836\n0.314758 0.991699 0.075775\n0.338959 0.991791 0.075684\n0.363495 0.991852 0.075653\n0.388702 0.991943 0.075592\n0.415009 0.992035 0.075562\n0.442993 0.992065 0.075592\n0.472717 0.992157 0.075623\n0.504639 0.992218 0.075806\n0.539642 0.992279 0.076080\n0.577942 0.992340 0.076385\n0.618439 0.992401 0.076874\n0.660400 0.992432 0.077423\n0.702118 0.992493 0.078125\n0.742950 0.992523 0.078979\n0.781464 0.992554 0.080017\n0.817017 0.992615 0.081970\n0.848999 0.992645 0.084473\n0.877563 0.992676 0.087219\n0.903198 0.992737 0.090302\n0.926086 0.992767 0.093628\n0.946960 0.992767 0.097137\n0.965942 0.992767 0.100922\n0.983124 0.992767 0.104858\n0.998871 0.992554 0.108582\n1.000000 0.978699 0.131287\n1.000000 0.964844 0.155121\n0.155670 1.000000 0.089996\n0.191010 1.000000 0.090057\n0.222504 1.000000 0.090088\n0.251099 1.000000 0.090118\n0.277069 1.000000 0.090057\n0.301575 1.000000 0.090057\n0.325012 1.000000 0.090057\n0.348328 1.000000 0.090027\n0.372040 1.000000 0.090088\n0.396271 1.000000 0.090179\n0.421722 1.000000 0.090210\n0.448792 1.000000 0.090454\n0.477692 1.000000 0.090698\n0.508514 1.000000 0.091095\n0.542542 1.000000 0.091583\n0.579559 1.000000 0.092133\n0.618835 1.000000 0.092834\n0.659119 1.000000 0.093750\n0.699280 1.000000 0.094788\n0.738800 1.000000 0.096680\n0.775970 1.000000 0.099152\n0.809845 1.000000 0.101837\n0.840454 1.000000 0.104858\n0.868134 1.000000 0.108002\n0.893005 1.000000 0.111511\n0.915405 1.000000 0.115234\n0.936066 1.000000 0.118958\n0.954712 1.000000 0.122986\n0.971893 1.000000 0.127106\n0.987946 1.000000 0.131256\n1.000000 0.997131 0.139496\n1.000000 0.983032 0.163361\n0.185028 1.000000 0.115753\n0.217224 1.000000 0.115723\n0.245819 1.000000 0.115631\n0.271912 1.000000 0.115570\n0.295868 1.000000 0.115540\n0.318573 1.000000 0.115479\n0.340576 1.000000 0.115479\n0.362274 1.000000 0.115509\n0.384552 1.000000 0.115540\n0.407410 1.000000 0.115723\n0.431366 1.000000 0.115906\n0.456970 1.000000 0.116211\n0.484344 1.000000 0.116669\n0.513672 1.000000 0.117188\n0.546082 1.000000 0.117828\n0.581299 1.000000 0.118622\n0.618225 1.000000 0.119629\n0.656677 1.000000 0.121429\n0.695068 1.000000 0.123718\n0.731934 1.000000 0.126312\n0.766663 1.000000 0.129242\n0.798676 1.000000 0.132294\n0.827576 1.000000 0.135651\n0.853973 1.000000 0.139099\n0.877869 1.000000 0.142883\n0.899689 1.000000 0.146759\n0.919800 1.000000 0.150665\n0.938110 1.000000 0.154816\n0.955139 1.000000 0.159027\n0.971039 1.000000 0.163147\n0.985870 1.000000 0.167725\n1.000000 1.000000 0.173401\n0.002838 0.002228 0.036438\n0.051697 0.003937 0.039429\n0.097565 0.005005 0.042297\n0.140869 0.006561 0.045837\n0.180939 0.008575 0.050110\n0.217163 0.010986 0.054901\n0.249481 0.013641 0.059814\n0.278595 0.016510 0.064911\n0.305481 0.019379 0.069855\n0.330872 0.021973 0.074127\n0.355682 0.023987 0.077454\n0.380402 0.024597 0.078705\n0.405792 0.024963 0.079742\n0.432465 0.025269 0.080597\n0.461090 0.025391 0.081360\n0.492065 0.025360 0.081970\n0.526703 0.025116 0.082367\n0.566284 0.024719 0.082458\n0.609863 0.024139 0.082367\n0.656097 0.023529 0.082245\n0.703339 0.022888 0.082031\n0.749817 0.022430 0.081940\n0.793701 0.022034 0.081909\n0.833466 0.021851 0.081848\n0.868866 0.021912 0.081787\n0.900238 0.022125 0.082092\n0.928009 0.022522 0.082489\n0.952637 0.023254 0.082855\n0.974609 0.023987 0.083069\n0.994324 0.024994 0.083618\n1.000000 0.044556 0.100464\n1.000000 0.071472 0.123566\n0.003876 0.042725 0.044281\n0.051788 0.044098 0.047882\n0.097656 0.045837 0.052002\n0.140930 0.047821 0.056366\n0.180939 0.050079 0.061218\n0.217102 0.052521 0.066071\n0.249237 0.054901 0.070679\n0.278259 0.057281 0.075043\n0.305023 0.059204 0.078369\n0.330139 0.059662 0.079468\n0.354645 0.060150 0.080688\n0.379211 0.060486 0.081726\n0.404541 0.060791 0.082764\n0.431152 0.061005 0.083679\n0.459900 0.061035 0.084259\n0.490997 0.060944 0.084808\n0.525604 0.060608 0.085022\n0.565125 0.060150 0.085022\n0.608673 0.059570 0.084869\n0.654907 0.058990 0.084778\n0.702118 0.058289 0.084320\n0.748596 0.057861 0.084229\n0.792480 0.057556 0.083923\n0.832520 0.057373 0.083893\n0.868103 0.057526 0.083923\n0.899567 0.057831 0.084137\n0.927399 0.058319 0.084320\n0.951965 0.059082 0.084625\n0.973907 0.059784 0.084717\n0.993561 0.060486 0.085052\n1.000000 0.078461 0.101318\n1.000000 0.104889 0.125916\n0.004272 0.082581 0.053986\n0.052155 0.084351 0.058441\n0.098938 0.087189 0.063995\n0.141998 0.089020 0.068390\n0.181763 0.091003 0.072754\n0.217651 0.092896 0.076813\n0.249512 0.094482 0.079895\n0.278107 0.094788 0.080933\n0.304413 0.095093 0.082062\n0.329376 0.095367 0.083130\n0.353699 0.095673 0.084198\n0.378204 0.095856 0.085114\n0.403595 0.096130 0.085999\n0.430328 0.096161 0.086761\n0.459076 0.096100 0.087280\n0.490204 0.095947 0.087708\n0.524750 0.095642 0.087830\n0.564240 0.095032 0.087769\n0.607758 0.094482 0.087524\n0.653900 0.093872 0.087219\n0.701111 0.093353 0.086823\n0.747925 0.092957 0.086517\n0.792267 0.092682 0.086212\n0.832336 0.092438 0.086029\n0.867950 0.092804 0.086090\n0.899384 0.093109 0.086121\n0.927124 0.093689 0.086212\n0.951630 0.094177 0.086212\n0.973480 0.094757 0.086273\n0.993073 0.095612 0.086426\n1.000000 0.112274 0.102692\n1.000000 0.137665 0.127930\n0.004913 0.122101 0.065094\n0.052765 0.123840 0.069611\n0.099487 0.126434 0.074890\n0.143433 0.128967 0.079590\n0.182953 0.130157 0.082642\n0.218262 0.130157 0.083466\n0.249603 0.130280 0.084412\n0.277924 0.130432 0.085358\n0.304108 0.130585 0.086304\n0.329041 0.130829 0.087341\n0.353455 0.131073 0.088257\n0.378082 0.131165 0.089111\n0.403473 0.131256 0.089905\n0.430206 0.131348 0.090576\n0.458954 0.131256 0.091003\n0.490082 0.131104 0.091309\n0.524628 0.130737 0.091370\n0.564117 0.130188 0.091248\n0.607635 0.129639 0.090973\n0.654205 0.129211 0.090607\n0.701996 0.128723 0.090088\n0.749054 0.128174 0.089722\n0.793396 0.127991 0.089325\n0.833466 0.127960 0.089142\n0.868958 0.128174 0.088928\n0.900208 0.128448 0.088684\n0.927734 0.128876 0.088593\n0.952118 0.129456 0.088593\n0.973785 0.129913 0.088623\n0.993317 0.130859 0.088684\n1.000000 0.146332 0.105042\n1.000000 0.169830 0.130035\n0.005737 0.160309 0.075928\n0.053436 0.161652 0.079803\n0.099579 0.163330 0.083405\n0.143524 0.164612 0.085602\n0.183167 0.165253 0.087128\n0.218109 0.165039 0.087830\n0.249268 0.165070 0.088654\n0.277557 0.165161 0.089539\n0.303864 0.165161 0.090393\n0.328888 0.165344 0.091278\n0.353333 0.165405 0.092163\n0.377930 0.165466 0.092926\n0.403351 0.165558 0.093628\n0.430115 0.165588 0.094269\n0.458832 0.165497 0.094574\n0.489990 0.165405 0.094849\n0.524506 0.165039 0.094849\n0.564331 0.164612 0.094574\n0.608551 0.164032 0.094177\n0.655579 0.163483 0.093658\n0.703644 0.163269 0.093170\n0.750793 0.162933 0.092773\n0.795074 0.162628 0.092163\n0.834930 0.162537 0.091675\n0.870178 0.162598 0.091278\n0.901184 0.162659 0.091003\n0.928558 0.163330 0.090912\n0.952728 0.163910 0.090820\n0.974213 0.164520 0.090820\n0.993530 0.165283 0.090881\n1.000000 0.179840 0.107239\n1.000000 0.201050 0.131958\n0.006439 0.196594 0.084900\n0.053467 0.196198 0.085480\n0.098633 0.196259 0.086487\n0.142029 0.197388 0.088623\n0.182129 0.198517 0.090729\n0.217651 0.198853 0.092010\n0.248993 0.198761 0.092712\n0.277405 0.198761 0.093506\n0.303711 0.198761 0.094299\n0.328766 0.198822 0.095123\n0.353210 0.198944 0.095917\n0.377808 0.199036 0.096558\n0.403229 0.199127 0.097229\n0.429993 0.199158 0.097687\n0.458710 0.199005 0.097992\n0.490173 0.198975 0.098145\n0.525421 0.198669 0.098083\n0.565826 0.198242 0.097717\n0.610443 0.197845 0.097290\n0.657776 0.197357 0.096710\n0.705963 0.196869 0.096039\n0.753021 0.196442 0.095276\n0.797058 0.196014 0.094513\n0.836639 0.196014 0.093964\n0.871613 0.196106 0.093536\n0.902344 0.196320 0.093231\n0.929474 0.196960 0.093079\n0.953430 0.197357 0.092957\n0.974731 0.198151 0.092926\n0.993805 0.198944 0.092957\n1.000000 0.212097 0.109406\n1.000000 0.231506 0.133850\n0.005676 0.228821 0.088257\n0.052155 0.228394 0.088715\n0.096771 0.228149 0.089447\n0.140198 0.229156 0.091431\n0.180481 0.230194 0.093475\n0.216949 0.231171 0.095398\n0.248871 0.231567 0.096588\n0.277283 0.231506 0.097382\n0.303589 0.231476 0.098053\n0.328644 0.231537 0.098785\n0.353088 0.231598 0.099487\n0.377716 0.231689 0.100067\n0.403107 0.231873 0.100677\n0.430206 0.231873 0.101044\n0.459503 0.231812 0.101257\n0.491486 0.231720 0.101288\n0.527161 0.231384 0.101044\n0.568146 0.231110 0.100739\n0.613129 0.230560 0.100128\n0.660522 0.229950 0.099213\n0.708679 0.229462 0.098358\n0.755646 0.228912 0.097534\n0.799469 0.228760 0.096710\n0.838715 0.228668 0.096161\n0.873291 0.228912 0.095673\n0.903717 0.229095 0.095367\n0.930481 0.229614 0.095154\n0.954132 0.230042 0.095032\n0.975189 0.230713 0.094940\n0.994110 0.231537 0.094910\n1.000000 0.243622 0.111511\n1.000000 0.261322 0.135620\n0.003967 0.260162 0.091309\n0.050293 0.259613 0.091736\n0.095062 0.259125 0.092224\n0.138763 0.260071 0.094116\n0.179138 0.261017 0.096039\n0.215576 0.261993 0.097931\n0.248169 0.262970 0.099731\n0.277161 0.263428 0.100983\n0.303467 0.263397 0.101593\n0.328522 0.263428 0.102295\n0.352966 0.263580 0.102905\n0.377869 0.263672 0.103394\n0.403839 0.263794 0.103882\n0.431396 0.263794 0.104156\n0.461151 0.263794 0.104309\n0.493469 0.263763 0.104309\n0.529724 0.263428 0.103912\n0.571045 0.262939 0.103210\n0.616333 0.262390 0.102356\n0.663910 0.261932 0.101471\n0.712036 0.261292 0.100494\n0.758789 0.260895 0.099640\n0.802216 0.260773 0.098816\n0.840973 0.260712 0.098206\n0.875092 0.260925 0.097778\n0.905121 0.261200 0.097382\n0.931580 0.261658 0.097137\n0.954926 0.262115 0.097015\n0.975677 0.262848 0.096863\n0.994415 0.263641 0.096771\n1.000000 0.274628 0.113464\n1.000000 0.290283 0.137329\n0.002289 0.290680 0.094299\n0.048950 0.290070 0.094574\n0.093628 0.289459 0.094788\n0.137329 0.290314 0.096649\n0.177704 0.291229 0.098480\n0.214203 0.292145 0.100281\n0.246857 0.293091 0.102020\n0.276306 0.294098 0.103729\n0.303345 0.294769 0.105072\n0.328705 0.294861 0.105591\n0.353729 0.294952 0.106110\n0.379059 0.295135 0.106567\n0.405396 0.295349 0.106964\n0.433319 0.295410 0.107117\n0.463409 0.295441 0.107178\n0.496063 0.295227 0.106812\n0.532745 0.294800 0.106201\n0.574554 0.294342 0.105438\n0.620178 0.293823 0.104523\n0.667877 0.293213 0.103516\n0.715942 0.292847 0.102600\n0.762329 0.292603 0.101685\n0.805206 0.292297 0.100861\n0.843414 0.292419 0.100189\n0.877014 0.292511 0.099701\n0.906616 0.292847 0.099304\n0.932709 0.293213 0.099030\n0.955719 0.293854 0.098816\n0.976257 0.294434 0.098663\n0.994720 0.294983 0.098511\n1.000000 0.304901 0.115326\n1.000000 0.318939 0.138855\n0.000916 0.320740 0.097046\n0.047607 0.320129 0.097260\n0.092316 0.319489 0.097382\n0.135834 0.320190 0.098969\n0.176300 0.321136 0.100739\n0.212860 0.322052 0.102417\n0.245422 0.323059 0.104095\n0.275391 0.324066 0.105743\n0.303375 0.325073 0.107300\n0.329987 0.326019 0.108734\n0.355316 0.326233 0.109222\n0.380981 0.326447 0.109528\n0.407623 0.326538 0.109802\n0.435760 0.326599 0.109680\n0.466125 0.326447 0.109436\n0.499207 0.326294 0.109009\n0.536499 0.325897 0.108368\n0.578766 0.325592 0.107513\n0.624634 0.325043 0.106567\n0.672363 0.324585 0.105560\n0.720154 0.324249 0.104553\n0.766113 0.323853 0.103577\n0.808411 0.323669 0.102753\n0.846008 0.323761 0.102112\n0.879059 0.323883 0.101562\n0.908173 0.324280 0.101166\n0.933838 0.324707 0.100830\n0.956482 0.325043 0.100555\n0.976776 0.325745 0.100372\n0.995026 0.326324 0.100189\n1.000000 0.335114 0.117126\n1.000000 0.347412 0.140350\n0.000000 0.350372 0.099792\n0.046204 0.350128 0.099701\n0.090942 0.349548 0.099731\n0.134399 0.350128 0.101135\n0.174835 0.351074 0.102814\n0.211792 0.352051 0.104431\n0.245331 0.353058 0.106018\n0.275696 0.354095 0.107605\n0.304016 0.355164 0.109131\n0.331085 0.356384 0.110657\n0.357605 0.357483 0.112030\n0.383392 0.357544 0.112091\n0.410217 0.357666 0.112061\n0.438751 0.357666 0.111908\n0.469513 0.357605 0.111664\n0.502991 0.357483 0.111115\n0.540833 0.357147 0.110352\n0.583527 0.356781 0.109467\n0.629578 0.356384 0.108459\n0.677246 0.355957 0.107391\n0.724670 0.355652 0.106354\n0.770020 0.355316 0.105377\n0.811707 0.355225 0.104553\n0.848633 0.355164 0.103882\n0.881134 0.355316 0.103241\n0.909729 0.355560 0.102814\n0.934967 0.356110 0.102478\n0.957275 0.356598 0.102142\n0.977295 0.356995 0.101959\n0.995300 0.357544 0.101715\n1.000000 0.365204 0.118744\n1.000000 0.375793 0.141602\n0.000000 0.379333 0.102844\n0.044769 0.380341 0.101868\n0.089569 0.379730 0.101837\n0.133362 0.380310 0.103088\n0.175049 0.381287 0.104736\n0.212677 0.382294 0.106232\n0.246368 0.383362 0.107788\n0.277039 0.384491 0.109314\n0.305542 0.385590 0.110718\n0.332581 0.386658 0.111938\n0.359192 0.387726 0.113068\n0.386261 0.388794 0.114197\n0.413483 0.389069 0.114258\n0.442322 0.389130 0.114014\n0.473419 0.389130 0.113617\n0.507324 0.389008 0.113068\n0.545746 0.388672 0.112274\n0.588806 0.388397 0.111328\n0.634918 0.388031 0.110291\n0.682343 0.387634 0.109192\n0.729401 0.387299 0.108063\n0.774139 0.386871 0.107056\n0.815033 0.386902 0.106201\n0.851227 0.386902 0.105469\n0.883148 0.387085 0.104889\n0.911255 0.387360 0.104431\n0.936066 0.387756 0.104004\n0.958069 0.388031 0.103668\n0.977783 0.388489 0.103363\n0.995605 0.389069 0.103088\n1.000000 0.395630 0.120239\n1.000000 0.404358 0.142853\n0.000000 0.408783 0.105804\n0.043854 0.410980 0.103943\n0.090027 0.410461 0.103760\n0.134918 0.410980 0.104889\n0.176849 0.412048 0.106445\n0.214691 0.413116 0.107880\n0.248474 0.414185 0.109314\n0.278900 0.415131 0.110535\n0.307434 0.416199 0.111694\n0.334595 0.417297 0.112854\n0.361389 0.418365 0.113983\n0.388672 0.419586 0.115082\n0.417145 0.420776 0.116119\n0.446411 0.420990 0.116028\n0.477814 0.421021 0.115540\n0.512085 0.420898 0.114899\n0.551086 0.420624 0.114014\n0.594360 0.420349 0.113068\n0.640472 0.420013 0.111969\n0.687683 0.419556 0.110840\n0.734131 0.419250 0.109741\n0.778198 0.418976 0.108643\n0.818298 0.418976 0.107758\n0.853790 0.419037 0.107056\n0.885101 0.419037 0.106415\n0.912720 0.419312 0.105865\n0.937134 0.419647 0.105438\n0.958771 0.419891 0.105042\n0.978241 0.420410 0.104706\n0.995850 0.420837 0.104370\n1.000000 0.426056 0.121552\n1.000000 0.433380 0.143829\n0.000000 0.440430 0.107361\n0.045746 0.442139 0.105621\n0.092529 0.441681 0.105438\n0.137909 0.442352 0.106506\n0.180054 0.443451 0.107910\n0.217529 0.444336 0.109100\n0.251068 0.445404 0.110291\n0.281525 0.446411 0.111420\n0.309906 0.447479 0.112549\n0.337158 0.448608 0.113678\n0.364044 0.449768 0.114716\n0.391541 0.450928 0.115753\n0.420288 0.452179 0.116760\n0.450745 0.453339 0.117737\n0.482574 0.453491 0.117310\n0.517273 0.453461 0.116638\n0.556671 0.453247 0.115723\n0.600189 0.452850 0.114655\n0.646149 0.452423 0.113525\n0.692963 0.452118 0.112305\n0.738892 0.451874 0.111206\n0.782196 0.451569 0.110138\n0.821442 0.451538 0.109253\n0.856262 0.451447 0.108459\n0.886932 0.451660 0.107788\n0.914032 0.451813 0.107239\n0.938049 0.452057 0.106750\n0.959442 0.452332 0.106293\n0.978668 0.452545 0.105896\n0.996063 0.452972 0.105408\n1.000000 0.457184 0.122498\n1.000000 0.462921 0.144440\n0.000122 0.474548 0.107452\n0.049530 0.474121 0.107208\n0.096680 0.473694 0.106781\n0.141998 0.474304 0.107605\n0.183716 0.475311 0.108734\n0.221039 0.476288 0.109955\n0.254395 0.477356 0.111084\n0.284637 0.478455 0.112183\n0.312866 0.479553 0.113281\n0.340179 0.480743 0.114258\n0.367218 0.481903 0.115265\n0.394775 0.483063 0.116272\n0.423706 0.484283 0.117188\n0.454529 0.485474 0.118134\n0.487610 0.486633 0.119049\n0.522675 0.486572 0.118195\n0.562531 0.486267 0.117249\n0.606140 0.486023 0.116119\n0.651825 0.485718 0.114929\n0.698242 0.485291 0.113739\n0.743500 0.484955 0.112610\n0.786011 0.484711 0.111542\n0.824493 0.484619 0.110596\n0.858551 0.484589 0.109833\n0.888672 0.484650 0.109039\n0.915283 0.484924 0.108490\n0.938904 0.485046 0.107880\n0.960052 0.485138 0.107330\n0.979065 0.485443 0.106659\n0.996307 0.485718 0.105988\n1.000000 0.488800 0.123169\n1.000000 0.492950 0.144684\n0.005188 0.507324 0.108612\n0.054565 0.506744 0.108002\n0.101685 0.506348 0.107452\n0.147125 0.507172 0.108368\n0.188507 0.508179 0.109467\n0.225372 0.509247 0.110596\n0.258331 0.510345 0.111694\n0.288269 0.511475 0.112732\n0.316284 0.512665 0.113678\n0.343567 0.513855 0.114716\n0.370514 0.515015 0.115631\n0.398254 0.516205 0.116577\n0.427399 0.517456 0.117554\n0.458374 0.518646 0.118378\n0.491760 0.519897 0.119232\n0.528290 0.520874 0.119690\n0.568481 0.520660 0.118652\n0.612000 0.520294 0.117493\n0.657501 0.519897 0.116333\n0.703369 0.519562 0.115082\n0.747864 0.519165 0.113922\n0.789581 0.518921 0.112823\n0.827240 0.518768 0.111816\n0.860626 0.518799 0.110992\n0.890198 0.518585 0.110260\n0.916412 0.518707 0.109436\n0.939789 0.518860 0.108673\n0.960663 0.519165 0.107880\n0.979462 0.519226 0.107117\n0.996582 0.519623 0.106262\n1.000000 0.521423 0.123444\n1.000000 0.524261 0.144714\n0.011108 0.542358 0.109161\n0.060822 0.541840 0.108459\n0.107910 0.541412 0.107819\n0.153259 0.542511 0.108948\n0.194031 0.543610 0.110016\n0.230377 0.544800 0.111084\n0.262695 0.545990 0.112061\n0.292145 0.547180 0.113068\n0.319977 0.548401 0.114014\n0.347107 0.549622 0.114990\n0.374084 0.550842 0.115875\n0.401917 0.552124 0.116730\n0.431152 0.553406 0.117645\n0.462311 0.554596 0.118469\n0.495941 0.555878 0.119202\n0.533051 0.557098 0.119995\n0.574280 0.557709 0.119995\n0.617767 0.557343 0.118835\n0.662842 0.556824 0.117554\n0.708099 0.556366 0.116302\n0.751862 0.555969 0.115082\n0.792755 0.555634 0.113953\n0.829712 0.555359 0.112915\n0.862549 0.555359 0.111969\n0.891663 0.555237 0.110992\n0.917542 0.555145 0.110077\n0.940582 0.555237 0.109131\n0.961304 0.555481 0.108154\n0.979889 0.555756 0.107208\n0.996796 0.555847 0.106262\n1.000000 0.556610 0.123566\n1.000000 0.557831 0.144592\n0.018555 0.580170 0.109406\n0.068451 0.579681 0.108826\n0.115509 0.579498 0.108337\n0.160187 0.580658 0.109375\n0.200317 0.581818 0.110382\n0.235565 0.583008 0.111389\n0.267334 0.584229 0.112335\n0.296356 0.585419 0.113251\n0.323883 0.586670 0.114197\n0.350677 0.587921 0.115082\n0.377777 0.589142 0.115936\n0.405640 0.590424 0.116760\n0.434967 0.591644 0.117523\n0.466217 0.592865 0.118317\n0.499939 0.594086 0.119110\n0.537445 0.595245 0.119781\n0.579315 0.596405 0.120453\n0.623199 0.596619 0.119995\n0.667786 0.596069 0.118683\n0.712463 0.595398 0.117432\n0.755524 0.594940 0.116150\n0.795746 0.594421 0.114899\n0.832031 0.594299 0.113678\n0.864410 0.594086 0.112518\n0.893097 0.593903 0.111420\n0.918640 0.593933 0.110291\n0.941437 0.593872 0.109192\n0.961823 0.593994 0.108154\n0.980316 0.594177 0.107178\n0.997101 0.594269 0.106171\n1.000000 0.593536 0.123596\n1.000000 0.593353 0.144501\n0.027496 0.620117 0.109619\n0.076965 0.619629 0.108734\n0.123871 0.619659 0.108612\n0.167694 0.620880 0.109650\n0.206696 0.622009 0.110596\n0.241150 0.623260 0.111542\n0.272095 0.624451 0.112488\n0.300598 0.625610 0.113373\n0.327850 0.626831 0.114197\n0.354523 0.628052 0.115051\n0.381409 0.629181 0.115845\n0.409393 0.630402 0.116638\n0.438690 0.631561 0.117371\n0.470062 0.632690 0.118073\n0.503845 0.633850 0.118805\n0.541412 0.635010 0.119446\n0.583313 0.636047 0.120026\n0.627808 0.637115 0.120697\n0.672333 0.636719 0.119690\n0.716400 0.636169 0.118286\n0.758942 0.635590 0.116821\n0.798615 0.635101 0.115448\n0.834381 0.634644 0.114014\n0.866211 0.634308 0.112732\n0.894531 0.634094 0.111450\n0.919769 0.634094 0.110291\n0.942261 0.634094 0.109131\n0.962433 0.633911 0.108032\n0.980652 0.634125 0.107025\n0.997314 0.634216 0.106018\n1.000000 0.631989 0.123627\n1.000000 0.630096 0.144440\n0.037445 0.661530 0.109528\n0.086304 0.660919 0.108643\n0.132751 0.661316 0.108826\n0.175476 0.662476 0.109772\n0.213226 0.663513 0.110687\n0.246765 0.664703 0.111633\n0.276917 0.665833 0.112457\n0.304993 0.666962 0.113312\n0.331726 0.668091 0.114105\n0.358246 0.669220 0.114899\n0.385071 0.670258 0.115631\n0.412933 0.671417 0.116364\n0.442230 0.672485 0.117004\n0.473724 0.673523 0.117737\n0.507446 0.674530 0.118347\n0.545105 0.675537 0.118958\n0.586731 0.676483 0.119507\n0.630981 0.677429 0.119965\n0.676514 0.678314 0.120300\n0.720306 0.677643 0.118774\n0.762421 0.676910 0.117188\n0.801483 0.676300 0.115601\n0.836700 0.675812 0.114105\n0.868042 0.675568 0.112701\n0.895966 0.675201 0.111359\n0.920868 0.675171 0.110107\n0.943085 0.674957 0.108978\n0.963013 0.674957 0.107880\n0.981079 0.674988 0.106842\n0.997559 0.675079 0.105957\n1.000000 0.671021 0.123779\n1.000000 0.667389 0.144501\n0.048126 0.703461 0.109375\n0.096191 0.702759 0.108459\n0.141876 0.703400 0.108917\n0.183380 0.704468 0.109894\n0.219818 0.705505 0.110687\n0.252289 0.706543 0.111542\n0.281647 0.707581 0.112427\n0.309143 0.708588 0.113159\n0.335571 0.709625 0.113922\n0.361755 0.710602 0.114624\n0.388519 0.711609 0.115326\n0.416321 0.712585 0.116058\n0.445587 0.713501 0.116638\n0.476990 0.714386 0.117279\n0.510681 0.715271 0.117798\n0.548492 0.716156 0.118286\n0.590027 0.716980 0.118622\n0.634186 0.717834 0.118866\n0.679413 0.718628 0.119080\n0.724213 0.719299 0.118927\n0.765808 0.718414 0.117188\n0.804260 0.717896 0.115509\n0.838928 0.717255 0.113953\n0.869812 0.716858 0.112488\n0.897339 0.716400 0.111176\n0.921875 0.716278 0.109985\n0.943787 0.716034 0.108765\n0.963562 0.715942 0.107788\n0.981445 0.715820 0.106842\n0.997772 0.715851 0.106018\n1.000000 0.710205 0.124084\n1.000000 0.704834 0.144806\n0.059235 0.744904 0.108978\n0.106293 0.744232 0.108215\n0.151062 0.745087 0.108978\n0.191071 0.746033 0.109833\n0.226257 0.746948 0.110626\n0.257599 0.747925 0.111450\n0.286255 0.748810 0.112244\n0.313141 0.749695 0.112915\n0.339142 0.750549 0.113617\n0.365204 0.751465 0.114288\n0.391693 0.752258 0.114929\n0.419373 0.753082 0.115570\n0.448517 0.753906 0.116119\n0.479858 0.754639 0.116608\n0.513824 0.755432 0.116974\n0.551697 0.756134 0.117218\n0.593292 0.756927 0.117432\n0.637329 0.757629 0.117493\n0.682281 0.758392 0.117493\n0.726715 0.759064 0.117462\n0.768982 0.759491 0.117004\n0.806976 0.758728 0.115265\n0.841064 0.758026 0.113739\n0.871521 0.757568 0.112305\n0.898682 0.757141 0.111053\n0.922852 0.756836 0.109833\n0.944550 0.756531 0.108734\n0.964050 0.756317 0.107849\n0.981750 0.755951 0.106995\n0.997955 0.755951 0.106354\n1.000000 0.748932 0.124695\n1.000000 0.741913 0.145477\n0.070465 0.785248 0.108826\n0.116669 0.784698 0.108093\n0.160004 0.785553 0.108948\n0.198547 0.786407 0.109741\n0.232330 0.787140 0.110504\n0.262543 0.787933 0.111237\n0.290527 0.788666 0.111938\n0.316772 0.789490 0.112640\n0.342529 0.790161 0.113312\n0.368195 0.790894 0.113922\n0.394501 0.791565 0.114471\n0.422058 0.792236 0.114990\n0.451355 0.792877 0.115356\n0.482819 0.793549 0.115601\n0.517059 0.794189 0.115814\n0.555084 0.794830 0.115845\n0.596771 0.795441 0.115875\n0.640442 0.796112 0.115845\n0.685120 0.796692 0.115814\n0.729095 0.797333 0.115723\n0.771149 0.797943 0.115662\n0.809570 0.798035 0.115051\n0.843170 0.797302 0.113556\n0.873169 0.796722 0.112183\n0.899872 0.796356 0.110931\n0.923798 0.795868 0.109863\n0.945221 0.795471 0.108887\n0.964539 0.795074 0.108124\n0.982086 0.794952 0.107483\n0.998138 0.794617 0.106995\n1.000000 0.786102 0.125671\n1.000000 0.777496 0.146545\n0.081635 0.823517 0.108215\n0.126709 0.823334 0.108063\n0.168701 0.823975 0.108887\n0.205414 0.824646 0.109650\n0.238007 0.825287 0.110352\n0.267334 0.825897 0.111084\n0.294342 0.826538 0.111664\n0.320251 0.827087 0.112335\n0.345459 0.827667 0.112854\n0.370819 0.828217 0.113373\n0.397217 0.828766 0.113800\n0.424896 0.829346 0.114075\n0.454224 0.829895 0.114227\n0.485931 0.830444 0.114288\n0.520294 0.830994 0.114349\n0.558502 0.831482 0.114288\n0.600128 0.832031 0.114258\n0.643524 0.832520 0.114197\n0.687897 0.833008 0.114136\n0.731445 0.833557 0.114014\n0.772949 0.834045 0.113953\n0.811096 0.834534 0.113892\n0.845093 0.834564 0.113403\n0.874634 0.833923 0.112183\n0.901001 0.833374 0.111084\n0.924622 0.832825 0.110138\n0.945831 0.832336 0.109314\n0.964935 0.832123 0.108734\n0.982330 0.831665 0.108337\n0.998230 0.831421 0.108124\n1.000000 0.821564 0.127106\n1.000000 0.811523 0.148132\n0.092346 0.859161 0.107788\n0.136383 0.859192 0.108032\n0.176514 0.859711 0.108734\n0.211639 0.860199 0.109436\n0.242981 0.860687 0.110107\n0.271515 0.861145 0.110779\n0.297821 0.861633 0.111359\n0.323120 0.862122 0.111816\n0.348297 0.862549 0.112244\n0.373779 0.863007 0.112518\n0.400024 0.863434 0.112732\n0.427826 0.863861 0.112793\n0.457275 0.864319 0.112854\n0.489044 0.864685 0.112823\n0.523438 0.865143 0.112823\n0.561920 0.865601 0.112732\n0.603424 0.865997 0.112640\n0.646606 0.866364 0.112579\n0.690491 0.866791 0.112488\n0.733643 0.867218 0.112457\n0.774536 0.867615 0.112427\n0.812225 0.868011 0.112488\n0.846130 0.868347 0.112549\n0.876038 0.868378 0.112366\n0.902100 0.867798 0.111481\n0.925415 0.867340 0.110779\n0.946381 0.866608 0.110229\n0.965332 0.866364 0.109894\n0.982544 0.865967 0.109741\n0.998383 0.865417 0.109833\n1.000000 0.854553 0.129547\n1.000000 0.843842 0.151703\n0.102478 0.891571 0.107483\n0.145294 0.891785 0.108002\n0.183746 0.892212 0.108643\n0.217377 0.892548 0.109283\n0.247467 0.892944 0.109894\n0.275055 0.893250 0.110413\n0.301117 0.893616 0.110840\n0.326141 0.893951 0.111115\n0.351135 0.894318 0.111328\n0.376587 0.894623 0.111389\n0.402893 0.894989 0.111450\n0.430847 0.895294 0.111420\n0.460480 0.895660 0.111420\n0.492096 0.895966 0.111328\n0.526825 0.896301 0.111267\n0.565216 0.896606 0.111176\n0.606598 0.896942 0.111115\n0.649597 0.897247 0.111053\n0.693054 0.897522 0.111053\n0.735657 0.897858 0.111115\n0.776093 0.898193 0.111176\n0.813263 0.898468 0.111359\n0.846619 0.898712 0.111603\n0.876495 0.899048 0.111969\n0.903076 0.899231 0.112274\n0.926086 0.898529 0.111816\n0.946869 0.897949 0.111603\n0.965607 0.897522 0.111603\n0.982727 0.897064 0.112061\n0.998444 0.896851 0.113525\n1.000000 0.885071 0.134247\n1.000000 0.873260 0.156769\n0.111755 0.920593 0.107269\n0.153107 0.920898 0.107941\n0.189789 0.921112 0.108551\n0.222290 0.921387 0.109009\n0.251678 0.921631 0.109467\n0.278870 0.921906 0.109772\n0.304474 0.922150 0.109985\n0.329285 0.922394 0.110077\n0.354309 0.922699 0.110138\n0.379456 0.922913 0.110107\n0.405945 0.923157 0.110107\n0.433807 0.923401 0.110046\n0.463440 0.923615 0.109985\n0.495361 0.923920 0.109894\n0.530212 0.924103 0.109802\n0.568573 0.924377 0.109772\n0.609741 0.924622 0.109772\n0.652618 0.924805 0.109772\n0.695526 0.925049 0.109894\n0.737640 0.925293 0.110077\n0.777496 0.925476 0.110321\n0.814026 0.925720 0.110687\n0.846985 0.925934 0.111176\n0.876526 0.926147 0.111816\n0.902924 0.926331 0.112549\n0.926727 0.926514 0.113464\n0.947266 0.926025 0.113861\n0.965942 0.925568 0.115234\n0.982880 0.925140 0.116852\n0.998444 0.924622 0.118896\n1.000000 0.912262 0.139984\n1.000000 0.899719 0.162872\n0.120270 0.946533 0.107269\n0.160156 0.946686 0.107788\n0.195587 0.946838 0.108185\n0.227264 0.947021 0.108551\n0.255859 0.947205 0.108704\n0.282471 0.947388 0.108826\n0.307800 0.947571 0.108887\n0.332520 0.947784 0.108887\n0.357300 0.947968 0.108887\n0.382599 0.948090 0.108765\n0.408936 0.948273 0.108734\n0.436707 0.948456 0.108673\n0.466553 0.948639 0.108582\n0.498383 0.948792 0.108551\n0.533295 0.949005 0.108551\n0.571747 0.949158 0.108582\n0.612823 0.949341 0.108704\n0.655151 0.949493 0.108826\n0.697876 0.949615 0.109131\n0.739532 0.949799 0.109497\n0.778809 0.949921 0.110016\n0.814819 0.950073 0.110626\n0.847351 0.950226 0.111359\n0.876556 0.950317 0.112274\n0.902863 0.950470 0.113617\n0.926331 0.950684 0.115845\n0.947510 0.950928 0.118408\n0.966095 0.950531 0.120575\n0.982880 0.950012 0.122772\n0.998352 0.949463 0.125397\n1.000000 0.936768 0.146606\n1.000000 0.923431 0.169830\n0.128113 0.969604 0.107056\n0.166779 0.969727 0.107330\n0.201202 0.969849 0.107574\n0.231964 0.970001 0.107666\n0.260193 0.970093 0.107758\n0.286133 0.970215 0.107727\n0.311096 0.970337 0.107727\n0.335663 0.970459 0.107635\n0.360321 0.970612 0.107605\n0.385529 0.970703 0.107513\n0.411804 0.970825 0.107452\n0.439819 0.970978 0.107391\n0.469604 0.971069 0.107391\n0.501434 0.971161 0.107452\n0.536407 0.971283 0.107574\n0.574799 0.971375 0.107727\n0.615601 0.971497 0.108002\n0.657623 0.971558 0.108337\n0.699768 0.971680 0.108887\n0.740936 0.971771 0.109436\n0.779877 0.971863 0.110229\n0.815460 0.971954 0.111176\n0.847687 0.972046 0.112427\n0.876648 0.972168 0.114685\n0.902771 0.972321 0.117249\n0.925842 0.972412 0.120117\n0.946899 0.972473 0.123260\n0.965820 0.972534 0.126678\n0.982758 0.972198 0.129700\n0.998199 0.971649 0.132721\n1.000000 0.958801 0.153961\n1.000000 0.945221 0.177368\n0.135712 0.990448 0.106476\n0.173523 0.990509 0.106567\n0.206787 0.990601 0.106659\n0.236633 0.990662 0.106628\n0.264221 0.990753 0.106628\n0.289948 0.990814 0.106537\n0.314453 0.990906 0.106506\n0.338776 0.990967 0.106445\n0.363220 0.991058 0.106384\n0.388306 0.991119 0.106293\n0.414673 0.991180 0.106293\n0.442657 0.991241 0.106354\n0.472321 0.991333 0.106476\n0.504211 0.991364 0.106628\n0.539368 0.991455 0.106903\n0.577606 0.991486 0.107269\n0.618134 0.991547 0.107758\n0.659943 0.991608 0.108337\n0.701538 0.991638 0.109131\n0.742310 0.991669 0.110046\n0.780792 0.991730 0.111328\n0.816467 0.991791 0.113556\n0.848145 0.991821 0.116089\n0.876526 0.991852 0.118958\n0.902222 0.991913 0.122162\n0.925201 0.991913 0.125458\n0.945984 0.991913 0.129059\n0.964996 0.991913 0.132965\n0.982239 0.991882 0.136871\n0.997986 0.991699 0.140717\n1.000000 0.978699 0.161804\n1.000000 0.964813 0.185364\n0.155640 1.000000 0.119324\n0.191162 1.000000 0.119385\n0.222504 1.000000 0.119415\n0.250732 1.000000 0.119415\n0.276703 1.000000 0.119415\n0.301178 1.000000 0.119415\n0.324829 1.000000 0.119354\n0.348175 1.000000 0.119385\n0.371674 1.000000 0.119446\n0.396057 1.000000 0.119507\n0.421692 1.000000 0.119659\n0.448578 1.000000 0.119873\n0.477509 1.000000 0.120178\n0.508484 1.000000 0.120575\n0.542572 1.000000 0.121063\n0.579620 1.000000 0.121704\n0.618713 1.000000 0.122498\n0.658905 1.000000 0.123352\n0.699158 1.000000 0.124664\n0.739014 1.000000 0.126770\n0.776062 1.000000 0.129333\n0.809875 1.000000 0.132172\n0.840271 1.000000 0.135223\n0.867828 1.000000 0.138489\n0.892822 1.000000 0.142090\n0.915405 1.000000 0.145660\n0.935822 1.000000 0.149597\n0.954712 1.000000 0.153687\n0.971924 1.000000 0.157745\n0.988007 1.000000 0.161987\n1.000000 0.997223 0.170013\n1.000000 0.983124 0.193634\n0.186432 1.000000 0.144714\n0.218323 1.000000 0.144653\n0.247009 1.000000 0.144592\n0.272797 1.000000 0.144531\n0.296661 1.000000 0.144470\n0.319153 1.000000 0.144440\n0.341125 1.000000 0.144440\n0.363068 1.000000 0.144470\n0.385132 1.000000 0.144562\n0.407928 1.000000 0.144714\n0.432037 1.000000 0.144989\n0.457520 1.000000 0.145325\n0.484894 1.000000 0.145813\n0.514160 1.000000 0.146362\n0.546661 1.000000 0.147034\n0.581787 1.000000 0.147949\n0.618744 1.000000 0.149048\n0.657318 1.000000 0.151184\n0.695526 1.000000 0.153595\n0.732208 1.000000 0.156189\n0.766876 1.000000 0.159180\n0.798828 1.000000 0.162384\n0.827759 1.000000 0.165741\n0.854034 1.000000 0.169342\n0.877838 1.000000 0.173187\n0.899780 1.000000 0.176971\n0.919739 1.000000 0.181030\n0.938202 1.000000 0.185028\n0.955078 1.000000 0.189240\n0.970978 1.000000 0.193512\n0.985840 1.000000 0.198364\n1.000000 1.000000 0.204315\n0.001678 0.001617 0.070221\n0.051025 0.004028 0.074005\n0.097809 0.006165 0.077759\n0.141083 0.007904 0.081512\n0.181183 0.010071 0.085846\n0.217377 0.012451 0.090454\n0.249664 0.015228 0.095428\n0.278748 0.018066 0.100342\n0.305573 0.020752 0.104828\n0.331024 0.023315 0.108887\n0.355682 0.024628 0.111145\n0.380371 0.025146 0.112274\n0.405762 0.025604 0.113403\n0.432465 0.025818 0.114227\n0.461029 0.026001 0.114990\n0.492065 0.025940 0.115540\n0.526672 0.025635 0.115936\n0.566254 0.025208 0.116058\n0.609863 0.024719 0.115997\n0.656097 0.024048 0.115753\n0.703339 0.023499 0.115631\n0.749786 0.022949 0.115356\n0.793701 0.022614 0.115265\n0.833466 0.022491 0.115234\n0.868866 0.022522 0.115387\n0.900299 0.022766 0.115570\n0.928070 0.023285 0.115936\n0.952667 0.023895 0.116180\n0.974609 0.024780 0.116638\n0.994354 0.025818 0.117157\n1.000000 0.045166 0.132477\n1.000000 0.072205 0.153809\n0.002869 0.042480 0.078583\n0.050842 0.044189 0.082367\n0.097931 0.047119 0.087555\n0.141205 0.049225 0.092102\n0.181213 0.051605 0.096771\n0.217316 0.053894 0.101288\n0.249451 0.056244 0.105743\n0.278381 0.058502 0.109680\n0.305054 0.059814 0.112000\n0.330170 0.060303 0.113159\n0.354645 0.060699 0.114349\n0.379150 0.061127 0.115387\n0.404449 0.061401 0.116394\n0.431152 0.061523 0.117157\n0.459869 0.061554 0.117767\n0.490967 0.061462 0.118256\n0.525574 0.061157 0.118469\n0.565094 0.060638 0.118591\n0.608643 0.060120 0.118469\n0.654877 0.059509 0.118256\n0.702087 0.058929 0.117828\n0.748566 0.058411 0.117554\n0.792572 0.058105 0.117523\n0.832642 0.058044 0.117249\n0.868195 0.058136 0.117432\n0.899689 0.058533 0.117645\n0.927460 0.059052 0.117828\n0.952026 0.059845 0.118195\n0.973938 0.060425 0.118103\n0.993561 0.061188 0.118225\n1.000000 0.079163 0.133514\n1.000000 0.105621 0.155945\n0.004425 0.083740 0.089478\n0.052185 0.085480 0.093750\n0.098389 0.087616 0.098450\n0.141510 0.089661 0.102936\n0.181366 0.091644 0.107178\n0.217255 0.093414 0.110870\n0.249023 0.094513 0.113068\n0.277618 0.094788 0.114075\n0.303986 0.095123 0.115234\n0.328918 0.095459 0.116302\n0.353271 0.095734 0.117310\n0.377838 0.096039 0.118286\n0.403290 0.096222 0.119171\n0.430054 0.096313 0.119873\n0.458771 0.096283 0.120453\n0.489929 0.096130 0.120819\n0.524475 0.095764 0.120972\n0.563965 0.095337 0.120972\n0.607483 0.094788 0.120758\n0.653656 0.094177 0.120331\n0.700928 0.093658 0.119995\n0.747894 0.093201 0.119751\n0.792236 0.092957 0.119354\n0.832336 0.092926 0.119171\n0.867889 0.093170 0.119202\n0.899323 0.093628 0.119385\n0.927002 0.093964 0.119324\n0.951477 0.094513 0.119202\n0.973297 0.095123 0.119324\n0.992859 0.095886 0.119446\n1.000000 0.112518 0.134277\n1.000000 0.138428 0.158173\n0.005310 0.123413 0.100586\n0.053101 0.125153 0.105011\n0.098816 0.126709 0.108887\n0.142487 0.128876 0.113098\n0.181854 0.129486 0.114990\n0.217072 0.129486 0.115814\n0.248413 0.129578 0.116699\n0.276733 0.129730 0.117645\n0.302887 0.129852 0.118622\n0.327911 0.130066 0.119598\n0.352386 0.130280 0.120514\n0.376984 0.130371 0.121338\n0.402405 0.130554 0.122131\n0.429169 0.130615 0.122711\n0.457916 0.130554 0.123199\n0.489075 0.130310 0.123474\n0.523590 0.130005 0.123535\n0.563049 0.129608 0.123444\n0.606537 0.128937 0.123047\n0.653229 0.128418 0.122711\n0.701080 0.127991 0.122253\n0.748108 0.127655 0.121826\n0.792572 0.127380 0.121521\n0.832703 0.127502 0.121277\n0.868073 0.127533 0.121002\n0.899323 0.127808 0.120758\n0.926880 0.128204 0.120697\n0.951294 0.128906 0.120667\n0.972931 0.129425 0.120697\n0.992432 0.130463 0.120758\n1.000000 0.145660 0.135620\n1.000000 0.170380 0.160217\n0.006104 0.161469 0.111053\n0.053833 0.162781 0.114502\n0.099182 0.163208 0.116394\n0.142303 0.163910 0.117950\n0.181915 0.164429 0.119385\n0.216888 0.164337 0.120117\n0.248047 0.164276 0.120880\n0.276398 0.164276 0.121796\n0.302704 0.164398 0.122650\n0.327789 0.164520 0.123505\n0.352234 0.164673 0.124298\n0.376862 0.164825 0.125122\n0.402283 0.164917 0.125793\n0.429047 0.164886 0.126251\n0.457794 0.164886 0.126678\n0.488983 0.164642 0.126862\n0.523529 0.164368 0.126862\n0.563538 0.163971 0.126709\n0.607788 0.163452 0.126251\n0.654816 0.163025 0.125824\n0.702881 0.162659 0.125275\n0.750092 0.162262 0.124817\n0.794281 0.161865 0.124176\n0.834137 0.161865 0.123688\n0.869324 0.161804 0.123291\n0.900360 0.162231 0.123138\n0.927734 0.162598 0.122894\n0.951904 0.163177 0.122864\n0.973389 0.163971 0.122894\n0.992706 0.164825 0.122894\n1.000000 0.179108 0.137909\n1.000000 0.201904 0.162201\n0.006653 0.197083 0.118561\n0.053497 0.196625 0.119049\n0.098175 0.196259 0.119568\n0.140747 0.196625 0.120880\n0.180817 0.197754 0.122925\n0.216431 0.198151 0.124237\n0.247803 0.198029 0.124939\n0.276245 0.197937 0.125671\n0.302551 0.198029 0.126434\n0.327637 0.198029 0.127258\n0.352112 0.198181 0.127930\n0.376770 0.198303 0.128662\n0.402191 0.198395 0.129242\n0.428925 0.198364 0.129730\n0.457733 0.198364 0.130066\n0.489380 0.198212 0.130157\n0.524689 0.197968 0.130096\n0.565155 0.197632 0.129791\n0.609772 0.197083 0.129272\n0.657227 0.196686 0.128754\n0.705292 0.196228 0.127960\n0.752319 0.195648 0.127167\n0.796387 0.195404 0.126465\n0.835938 0.195374 0.126007\n0.870789 0.195343 0.125519\n0.901581 0.195831 0.125336\n0.928619 0.196289 0.125092\n0.952576 0.196808 0.125000\n0.973846 0.197723 0.124969\n0.992981 0.198456 0.124939\n1.000000 0.211670 0.139984\n1.000000 0.232208 0.164032\n0.005676 0.229309 0.121796\n0.052063 0.228790 0.122131\n0.096436 0.228302 0.122650\n0.138947 0.228455 0.123718\n0.179260 0.229401 0.125641\n0.215759 0.230408 0.127563\n0.247681 0.230804 0.128723\n0.276123 0.230682 0.129364\n0.302429 0.230682 0.130096\n0.327515 0.230804 0.130829\n0.351990 0.230865 0.131470\n0.376648 0.231018 0.132080\n0.402069 0.231140 0.132599\n0.429321 0.231079 0.132996\n0.458710 0.231140 0.133270\n0.490753 0.231018 0.133240\n0.526611 0.230835 0.133087\n0.567627 0.230499 0.132721\n0.612549 0.229858 0.131958\n0.660004 0.229340 0.131134\n0.708191 0.228760 0.130249\n0.755066 0.228302 0.129425\n0.798828 0.228149 0.128693\n0.837982 0.228088 0.128082\n0.872559 0.228271 0.127655\n0.902893 0.228516 0.127350\n0.929626 0.229034 0.127136\n0.953278 0.229584 0.127014\n0.974335 0.230469 0.126953\n0.993286 0.231079 0.126892\n1.000000 0.243256 0.142029\n1.000000 0.261841 0.165771\n0.003845 0.260590 0.124847\n0.050232 0.259979 0.125122\n0.094910 0.259369 0.125519\n0.137451 0.259277 0.126251\n0.177856 0.260223 0.128113\n0.214386 0.261200 0.130005\n0.246979 0.262177 0.131775\n0.275970 0.262634 0.132904\n0.302307 0.262665 0.133606\n0.327393 0.262726 0.134186\n0.351868 0.262878 0.134827\n0.376953 0.262939 0.135376\n0.403015 0.263123 0.135773\n0.430664 0.263214 0.136078\n0.460480 0.263153 0.136261\n0.492981 0.263092 0.136169\n0.529297 0.262817 0.135742\n0.570587 0.262299 0.135071\n0.615845 0.261719 0.134186\n0.663483 0.261230 0.133301\n0.711639 0.260742 0.132416\n0.758301 0.260406 0.131500\n0.801605 0.260132 0.130798\n0.840332 0.260040 0.130127\n0.874390 0.260315 0.129730\n0.904358 0.260559 0.129364\n0.930756 0.261078 0.129089\n0.954071 0.261658 0.128937\n0.974915 0.262268 0.128815\n0.993561 0.262909 0.128723\n1.000000 0.274139 0.144012\n1.000000 0.290802 0.167450\n0.002258 0.291016 0.127686\n0.048950 0.290405 0.127899\n0.093628 0.289764 0.128143\n0.136017 0.289520 0.128693\n0.176453 0.290436 0.130524\n0.212982 0.291351 0.132233\n0.245605 0.292389 0.134003\n0.275177 0.293304 0.135651\n0.302185 0.294037 0.136963\n0.327759 0.294159 0.137451\n0.352905 0.294281 0.138031\n0.378326 0.294434 0.138489\n0.404694 0.294617 0.138794\n0.432770 0.294800 0.139038\n0.462891 0.294708 0.138947\n0.495575 0.294464 0.138550\n0.532379 0.294159 0.138000\n0.574249 0.293701 0.137207\n0.619812 0.293121 0.136322\n0.667572 0.292694 0.135376\n0.715515 0.292267 0.134430\n0.761841 0.291870 0.133514\n0.804718 0.291809 0.132751\n0.842743 0.291656 0.132080\n0.876343 0.291870 0.131592\n0.905884 0.292267 0.131226\n0.931885 0.292603 0.130951\n0.954865 0.293243 0.130798\n0.975403 0.293762 0.130615\n0.993896 0.294495 0.130463\n1.000000 0.304413 0.145844\n1.000000 0.319275 0.168945\n0.000885 0.321106 0.130310\n0.047546 0.320435 0.130463\n0.092285 0.319855 0.130676\n0.134613 0.319458 0.130981\n0.175049 0.320343 0.132690\n0.211609 0.321289 0.134399\n0.244263 0.322296 0.136017\n0.274445 0.323303 0.137634\n0.302551 0.324402 0.139221\n0.329163 0.325317 0.140594\n0.354614 0.325592 0.141052\n0.380371 0.325836 0.141418\n0.406982 0.325867 0.141479\n0.435272 0.325897 0.141418\n0.465698 0.325806 0.141235\n0.498840 0.325623 0.140717\n0.536285 0.325256 0.140076\n0.578552 0.324860 0.139252\n0.624359 0.324432 0.138336\n0.672119 0.324005 0.137360\n0.719849 0.323608 0.136292\n0.765747 0.323303 0.135437\n0.807922 0.323090 0.134613\n0.845367 0.323242 0.133942\n0.878387 0.323425 0.133423\n0.907410 0.323608 0.133026\n0.933044 0.324097 0.132721\n0.955688 0.324554 0.132477\n0.975952 0.325165 0.132263\n0.994171 0.325714 0.132050\n1.000000 0.334656 0.147552\n1.000000 0.347748 0.170349\n0.000000 0.350647 0.133026\n0.046173 0.350464 0.132843\n0.090912 0.349915 0.132965\n0.133179 0.349396 0.133118\n0.173584 0.350311 0.134735\n0.210938 0.351318 0.136353\n0.244476 0.352295 0.137909\n0.274963 0.353363 0.139496\n0.303345 0.354553 0.141022\n0.330444 0.355713 0.142426\n0.356995 0.356781 0.143738\n0.382874 0.356903 0.143799\n0.409729 0.356964 0.143768\n0.438354 0.357056 0.143646\n0.469177 0.356995 0.143311\n0.502716 0.356842 0.142792\n0.540741 0.356628 0.142090\n0.583435 0.356171 0.141205\n0.629425 0.355713 0.140198\n0.677032 0.355316 0.139160\n0.724396 0.354919 0.138153\n0.769684 0.354706 0.137177\n0.811188 0.354584 0.136383\n0.848022 0.354553 0.135681\n0.880463 0.354889 0.135162\n0.908997 0.355164 0.134705\n0.934174 0.355408 0.134369\n0.956482 0.355865 0.134003\n0.976471 0.356445 0.133789\n0.994476 0.357056 0.133545\n1.000000 0.364807 0.149200\n1.000000 0.376312 0.171661\n0.000000 0.379669 0.135742\n0.044769 0.380646 0.135071\n0.089569 0.380127 0.135193\n0.132721 0.379700 0.135101\n0.174316 0.380585 0.136597\n0.211975 0.381592 0.138184\n0.245758 0.382690 0.139679\n0.276459 0.383850 0.141205\n0.304932 0.384918 0.142426\n0.332001 0.385956 0.143616\n0.358704 0.387054 0.144775\n0.385864 0.388184 0.145905\n0.413086 0.388367 0.145905\n0.442017 0.388428 0.145660\n0.473175 0.388458 0.145294\n0.507111 0.388367 0.144714\n0.545685 0.388031 0.143921\n0.588684 0.387695 0.142975\n0.634796 0.387421 0.141937\n0.682220 0.387054 0.140930\n0.729065 0.386566 0.139832\n0.773712 0.386414 0.138855\n0.814545 0.386292 0.138031\n0.850586 0.386261 0.137329\n0.882446 0.386566 0.136719\n0.910492 0.386810 0.136261\n0.935242 0.387146 0.135803\n0.957275 0.387512 0.135529\n0.976959 0.387970 0.135223\n0.994751 0.388458 0.134949\n1.000000 0.395111 0.150604\n1.000000 0.404816 0.172852\n0.000000 0.409119 0.138367\n0.044403 0.411316 0.137115\n0.090607 0.410767 0.136993\n0.134399 0.410370 0.136871\n0.176300 0.411346 0.138306\n0.214233 0.412445 0.139801\n0.247894 0.413452 0.141052\n0.278473 0.414490 0.142242\n0.306946 0.415588 0.143433\n0.334106 0.416656 0.144531\n0.360992 0.417786 0.145660\n0.388397 0.418945 0.146698\n0.416840 0.420166 0.147797\n0.446198 0.420319 0.147644\n0.477631 0.420410 0.147156\n0.511993 0.420319 0.146545\n0.551056 0.420105 0.145691\n0.594360 0.419769 0.144684\n0.640381 0.419312 0.143646\n0.687500 0.418976 0.142517\n0.733917 0.418701 0.141418\n0.777863 0.418427 0.140442\n0.817810 0.418365 0.139557\n0.853180 0.418365 0.138824\n0.884369 0.418579 0.138214\n0.911926 0.418732 0.137695\n0.936279 0.418915 0.137238\n0.957977 0.419464 0.136841\n0.977386 0.419739 0.136505\n0.994995 0.420074 0.136169\n1.000000 0.425659 0.151886\n1.000000 0.433746 0.173767\n0.000000 0.441284 0.139923\n0.046509 0.442474 0.138794\n0.093475 0.442078 0.138580\n0.137634 0.441742 0.138458\n0.179688 0.442719 0.139679\n0.217255 0.443726 0.140900\n0.250671 0.444733 0.141998\n0.281128 0.445801 0.143158\n0.309540 0.446899 0.144226\n0.336761 0.447998 0.145325\n0.363800 0.449219 0.146393\n0.391357 0.450378 0.147400\n0.420105 0.451569 0.148376\n0.450623 0.452820 0.149353\n0.482452 0.452911 0.148926\n0.517242 0.452789 0.148193\n0.556793 0.452606 0.147308\n0.600159 0.452271 0.146271\n0.646149 0.451904 0.145203\n0.692871 0.451599 0.144012\n0.738617 0.451233 0.142914\n0.781799 0.451111 0.141876\n0.820953 0.450897 0.140991\n0.855621 0.450867 0.140198\n0.886230 0.451050 0.139557\n0.913269 0.451141 0.138977\n0.937225 0.451508 0.138519\n0.958618 0.451752 0.138092\n0.977814 0.451965 0.137634\n0.995239 0.452362 0.137146\n1.000000 0.456879 0.152802\n1.000000 0.463257 0.174286\n0.001160 0.474884 0.140533\n0.050690 0.474457 0.140198\n0.097839 0.473999 0.139801\n0.141815 0.473694 0.139374\n0.183655 0.474670 0.140533\n0.221008 0.475677 0.141663\n0.254150 0.476746 0.142761\n0.284424 0.477875 0.143860\n0.312714 0.479034 0.144928\n0.339874 0.480103 0.145935\n0.366943 0.481323 0.146942\n0.394592 0.482452 0.147919\n0.423523 0.483704 0.148834\n0.454437 0.484955 0.149811\n0.487549 0.486053 0.150604\n0.522736 0.485992 0.149841\n0.562622 0.485779 0.148834\n0.606110 0.485504 0.147736\n0.651794 0.485046 0.146606\n0.698090 0.484833 0.145416\n0.743103 0.484406 0.144257\n0.785553 0.484314 0.143250\n0.823883 0.484009 0.142303\n0.857880 0.484070 0.141510\n0.887909 0.484192 0.140808\n0.914459 0.484253 0.140198\n0.938080 0.484436 0.139618\n0.959198 0.484558 0.139008\n0.978241 0.484924 0.138367\n0.995483 0.485199 0.137665\n1.000000 0.488403 0.153320\n1.000000 0.493256 0.174469\n0.006378 0.507629 0.141693\n0.055878 0.507080 0.140991\n0.103088 0.506653 0.140381\n0.147156 0.506531 0.140106\n0.188690 0.507629 0.141235\n0.225433 0.508667 0.142334\n0.258148 0.509766 0.143372\n0.288086 0.510925 0.144409\n0.316162 0.512085 0.145386\n0.343262 0.513245 0.146362\n0.370361 0.514496 0.147308\n0.398193 0.515656 0.148193\n0.427277 0.516937 0.149139\n0.458435 0.518188 0.150024\n0.491760 0.519348 0.150818\n0.528381 0.520386 0.151306\n0.568512 0.520111 0.150238\n0.611938 0.519684 0.149109\n0.657379 0.519287 0.147949\n0.703125 0.518951 0.146698\n0.747498 0.518585 0.145569\n0.789093 0.518341 0.144470\n0.826599 0.518127 0.143494\n0.859863 0.518036 0.142670\n0.889404 0.518188 0.141876\n0.915588 0.518127 0.141174\n0.938904 0.518280 0.140350\n0.959808 0.518524 0.139557\n0.978607 0.518677 0.138702\n0.995728 0.518921 0.137878\n1.000000 0.521210 0.153534\n1.000000 0.524750 0.174469\n0.012665 0.542694 0.142059\n0.062378 0.542206 0.141418\n0.109497 0.541779 0.140778\n0.153534 0.541870 0.140717\n0.194427 0.543060 0.141754\n0.230438 0.544220 0.142792\n0.262634 0.545349 0.143768\n0.292114 0.546570 0.144745\n0.319885 0.547791 0.145752\n0.346954 0.549072 0.146606\n0.373962 0.550293 0.147522\n0.401794 0.551483 0.148346\n0.431091 0.552795 0.149261\n0.462372 0.554016 0.150055\n0.495911 0.555267 0.150818\n0.533142 0.556519 0.151581\n0.574371 0.557037 0.151550\n0.617645 0.556671 0.150360\n0.662689 0.556213 0.149139\n0.707825 0.555725 0.147949\n0.751404 0.555420 0.146698\n0.792236 0.555023 0.145630\n0.829010 0.554626 0.144531\n0.861725 0.554596 0.143616\n0.890869 0.554596 0.142609\n0.916718 0.554565 0.141602\n0.939758 0.554657 0.140686\n0.960419 0.554840 0.139709\n0.979034 0.555115 0.138794\n0.996033 0.555176 0.137909\n1.000000 0.556244 0.153656\n1.000000 0.558258 0.174377\n0.020477 0.580505 0.142334\n0.070160 0.580048 0.141663\n0.116974 0.579651 0.141052\n0.160675 0.579987 0.141083\n0.200562 0.581207 0.142120\n0.235779 0.582367 0.143097\n0.267303 0.583557 0.144012\n0.296356 0.584808 0.144958\n0.323761 0.586029 0.145874\n0.350555 0.587250 0.146698\n0.377716 0.588562 0.147583\n0.405487 0.589783 0.148376\n0.434875 0.591003 0.149170\n0.466278 0.592224 0.149963\n0.499969 0.593414 0.150665\n0.537476 0.594604 0.151337\n0.579285 0.595764 0.152039\n0.623016 0.595825 0.151550\n0.667572 0.595337 0.150238\n0.712067 0.594757 0.149017\n0.755005 0.594238 0.147736\n0.795166 0.593811 0.146454\n0.831360 0.593445 0.145264\n0.863617 0.593140 0.144012\n0.892334 0.593231 0.142914\n0.917816 0.593201 0.141785\n0.940582 0.593231 0.140747\n0.961029 0.593262 0.139709\n0.979462 0.593414 0.138702\n0.996216 0.593719 0.137726\n1.000000 0.593323 0.153687\n1.000000 0.593658 0.174255\n0.029541 0.620483 0.142517\n0.078979 0.619995 0.141724\n0.125183 0.619568 0.140961\n0.168182 0.620209 0.141357\n0.207001 0.621399 0.142334\n0.241364 0.622589 0.143311\n0.272034 0.623810 0.144135\n0.300690 0.624939 0.145050\n0.327667 0.626160 0.145874\n0.354370 0.627319 0.146698\n0.381348 0.628540 0.147491\n0.409241 0.629700 0.148254\n0.438660 0.630890 0.148987\n0.470093 0.632019 0.149689\n0.503723 0.633148 0.150391\n0.541473 0.634247 0.151001\n0.583191 0.635345 0.151642\n0.627563 0.636353 0.152222\n0.671997 0.636017 0.151245\n0.715942 0.635406 0.149841\n0.758453 0.634796 0.148346\n0.798035 0.634216 0.146912\n0.833679 0.633820 0.145538\n0.865448 0.633606 0.144196\n0.893768 0.633362 0.142944\n0.918915 0.633240 0.141785\n0.941467 0.633209 0.140656\n0.961609 0.633392 0.139557\n0.979828 0.633270 0.138550\n0.996490 0.633423 0.137604\n1.000000 0.631653 0.153778\n1.000000 0.630280 0.174194\n0.039642 0.661835 0.142487\n0.088501 0.661316 0.141663\n0.133881 0.660828 0.140869\n0.175995 0.661743 0.141541\n0.213562 0.662842 0.142395\n0.246887 0.664032 0.143341\n0.276825 0.665070 0.144165\n0.304932 0.666260 0.144989\n0.331573 0.667358 0.145782\n0.358063 0.668488 0.146576\n0.384918 0.669617 0.147278\n0.412781 0.670654 0.148010\n0.442169 0.671692 0.148651\n0.473602 0.672791 0.149353\n0.507355 0.673767 0.149963\n0.545135 0.674744 0.150543\n0.586578 0.675720 0.151031\n0.630737 0.676605 0.151489\n0.676239 0.677582 0.151794\n0.719910 0.676788 0.150208\n0.761841 0.676117 0.148560\n0.800873 0.675507 0.147003\n0.835968 0.675049 0.145538\n0.867310 0.674744 0.144165\n0.895172 0.674469 0.142822\n0.919983 0.674194 0.141571\n0.942200 0.674255 0.140472\n0.962189 0.674072 0.139374\n0.980225 0.674103 0.138489\n0.996704 0.674286 0.137512\n1.000000 0.670807 0.153900\n1.000000 0.667725 0.174316\n0.050446 0.703735 0.142303\n0.098450 0.703064 0.141479\n0.142853 0.702667 0.140686\n0.183960 0.703674 0.141571\n0.220215 0.704742 0.142426\n0.252258 0.705811 0.143250\n0.281647 0.706848 0.144043\n0.309113 0.707855 0.144836\n0.335388 0.708832 0.145569\n0.361572 0.709839 0.146271\n0.388306 0.710815 0.147003\n0.416107 0.711761 0.147675\n0.445404 0.712708 0.148254\n0.476837 0.713593 0.148865\n0.510529 0.714447 0.149384\n0.548279 0.715302 0.149841\n0.589874 0.716156 0.150116\n0.633972 0.716980 0.150330\n0.679077 0.717865 0.150421\n0.723724 0.718475 0.150269\n0.765228 0.717590 0.148560\n0.803650 0.716919 0.146942\n0.838196 0.716309 0.145355\n0.869049 0.715942 0.143921\n0.896515 0.715668 0.142609\n0.921051 0.715393 0.141418\n0.942993 0.715149 0.140350\n0.962708 0.715088 0.139313\n0.980621 0.715027 0.138458\n0.996918 0.715057 0.137634\n1.000000 0.710083 0.154236\n1.000000 0.705078 0.174652\n0.061554 0.745209 0.141937\n0.108551 0.744507 0.141174\n0.151947 0.744324 0.140747\n0.191589 0.745270 0.141541\n0.226471 0.746185 0.142365\n0.257629 0.747101 0.143127\n0.286224 0.747986 0.143890\n0.313019 0.748871 0.144653\n0.339050 0.749756 0.145325\n0.364960 0.750641 0.145966\n0.391449 0.751465 0.146637\n0.419128 0.752228 0.147186\n0.448334 0.753052 0.147736\n0.479645 0.753815 0.148193\n0.513611 0.754486 0.148499\n0.551605 0.755280 0.148712\n0.593140 0.756012 0.148834\n0.637146 0.756775 0.148895\n0.682068 0.757477 0.148895\n0.726440 0.758240 0.148865\n0.768463 0.758575 0.148346\n0.806366 0.757782 0.146698\n0.840363 0.757080 0.145142\n0.870728 0.756592 0.143738\n0.897827 0.756226 0.142517\n0.921997 0.755890 0.141327\n0.943695 0.755463 0.140320\n0.963196 0.755371 0.139404\n0.980896 0.755157 0.138641\n0.997101 0.754974 0.138000\n1.000000 0.748779 0.154968\n1.000000 0.742126 0.175446\n0.072784 0.785461 0.141571\n0.118561 0.784637 0.140778\n0.160797 0.784698 0.140717\n0.198975 0.785522 0.141479\n0.232513 0.786346 0.142242\n0.262634 0.787048 0.143036\n0.290375 0.787811 0.143677\n0.316742 0.788574 0.144318\n0.342224 0.789276 0.144989\n0.367889 0.790009 0.145599\n0.394165 0.790680 0.146149\n0.421692 0.791321 0.146545\n0.451233 0.791992 0.146912\n0.482635 0.792633 0.147125\n0.516815 0.793304 0.147247\n0.555023 0.793884 0.147308\n0.596436 0.794556 0.147308\n0.640289 0.795166 0.147278\n0.684753 0.795807 0.147217\n0.728790 0.796417 0.147156\n0.770721 0.797028 0.147003\n0.808929 0.797180 0.146423\n0.842407 0.796478 0.144989\n0.872345 0.795929 0.143646\n0.899048 0.795380 0.142426\n0.922913 0.794952 0.141388\n0.944366 0.794556 0.140503\n0.963684 0.794159 0.139771\n0.981232 0.793945 0.139160\n0.997284 0.793762 0.138794\n1.000000 0.785889 0.155945\n1.000000 0.777710 0.176605\n0.083923 0.823730 0.141266\n0.128174 0.822845 0.140320\n0.169067 0.823090 0.140656\n0.205780 0.823761 0.141388\n0.238190 0.824402 0.142090\n0.267151 0.825012 0.142761\n0.294189 0.825653 0.143433\n0.320007 0.826202 0.143982\n0.345093 0.826752 0.144562\n0.370544 0.827332 0.145020\n0.396942 0.827881 0.145355\n0.424622 0.828430 0.145599\n0.454163 0.828949 0.145691\n0.485687 0.829529 0.145813\n0.520081 0.830048 0.145813\n0.558289 0.830566 0.145782\n0.599854 0.831116 0.145691\n0.643372 0.831635 0.145630\n0.687469 0.832092 0.145508\n0.730865 0.832642 0.145416\n0.772400 0.833130 0.145386\n0.810577 0.833588 0.145325\n0.844330 0.833710 0.144867\n0.873840 0.833069 0.143677\n0.900208 0.832458 0.142609\n0.923737 0.831818 0.141693\n0.944977 0.831543 0.141022\n0.964081 0.831024 0.140533\n0.981476 0.830811 0.140167\n0.997406 0.830566 0.139984\n1.000000 0.821411 0.157501\n1.000000 0.811798 0.178314\n0.094513 0.859314 0.140778\n0.137268 0.858398 0.139832\n0.177002 0.858795 0.140533\n0.211884 0.859283 0.141205\n0.243011 0.859772 0.141876\n0.271332 0.860260 0.142487\n0.297577 0.860748 0.143097\n0.322937 0.861176 0.143524\n0.348022 0.861603 0.143860\n0.373352 0.862061 0.144104\n0.399689 0.862488 0.144226\n0.427429 0.862946 0.144287\n0.457092 0.863373 0.144318\n0.488922 0.863800 0.144287\n0.523346 0.864227 0.144226\n0.561798 0.864655 0.144165\n0.603058 0.865021 0.144012\n0.646393 0.865479 0.143982\n0.690216 0.865875 0.143921\n0.733124 0.866302 0.143890\n0.773956 0.866669 0.143890\n0.811615 0.867065 0.143951\n0.845337 0.867432 0.144043\n0.875244 0.867523 0.143921\n0.901245 0.866943 0.143127\n0.924530 0.866272 0.142426\n0.945496 0.865845 0.141998\n0.964447 0.865326 0.141693\n0.981689 0.864838 0.141663\n0.997498 0.864502 0.141785\n1.000000 0.854553 0.160309\n1.000000 0.844025 0.182312\n0.104462 0.891663 0.140442\n0.145935 0.890900 0.139801\n0.183777 0.891266 0.140442\n0.217560 0.891602 0.141052\n0.247314 0.891968 0.141602\n0.274780 0.892334 0.142059\n0.300842 0.892670 0.142426\n0.326019 0.893005 0.142670\n0.350800 0.893372 0.142853\n0.376190 0.893707 0.142914\n0.402588 0.894012 0.142944\n0.430603 0.894379 0.142944\n0.460205 0.894684 0.142853\n0.491882 0.895020 0.142822\n0.526611 0.895386 0.142670\n0.565033 0.895660 0.142639\n0.606262 0.895966 0.142578\n0.649353 0.896332 0.142548\n0.692719 0.896606 0.142548\n0.735260 0.896973 0.142578\n0.775513 0.897217 0.142700\n0.812500 0.897522 0.142914\n0.845795 0.897827 0.143219\n0.875610 0.898102 0.143707\n0.902161 0.898285 0.144012\n0.925201 0.897675 0.143646\n0.945953 0.897064 0.143463\n0.964722 0.896454 0.143463\n0.981873 0.896240 0.144440\n0.997589 0.895813 0.146027\n1.000000 0.885010 0.165283\n1.000000 0.873383 0.187622\n0.113464 0.920502 0.140045\n0.153534 0.919952 0.139709\n0.189941 0.920197 0.140259\n0.222351 0.920441 0.140778\n0.251678 0.920746 0.141144\n0.278625 0.920990 0.141388\n0.304077 0.921204 0.141479\n0.328979 0.921478 0.141571\n0.353882 0.921753 0.141663\n0.379272 0.921997 0.141663\n0.405670 0.922211 0.141571\n0.433411 0.922485 0.141510\n0.463287 0.922729 0.141418\n0.495117 0.922974 0.141357\n0.529938 0.923187 0.141327\n0.568359 0.923431 0.141266\n0.609528 0.923676 0.141296\n0.652252 0.923889 0.141327\n0.695190 0.924103 0.141449\n0.737000 0.924347 0.141663\n0.776855 0.924561 0.141998\n0.813263 0.924774 0.142395\n0.846222 0.925018 0.142914\n0.875641 0.925201 0.143616\n0.902069 0.925385 0.144409\n0.925781 0.925598 0.145386\n0.946411 0.925018 0.146179\n0.964996 0.924530 0.147583\n0.981995 0.924133 0.149445\n0.997528 0.923706 0.151611\n1.000000 0.912201 0.171173\n1.000000 0.899841 0.193878\n0.121399 0.946136 0.139771\n0.160431 0.945770 0.139526\n0.195679 0.945923 0.139893\n0.227264 0.946106 0.140167\n0.255890 0.946320 0.140320\n0.282196 0.946503 0.140411\n0.307465 0.946655 0.140442\n0.332123 0.946838 0.140442\n0.356812 0.947021 0.140411\n0.382233 0.947205 0.140320\n0.408569 0.947388 0.140228\n0.436523 0.947571 0.140167\n0.466278 0.947723 0.140137\n0.498291 0.947876 0.140076\n0.533020 0.948059 0.140106\n0.571472 0.948242 0.140137\n0.612488 0.948395 0.140259\n0.654816 0.948547 0.140503\n0.697296 0.948700 0.140778\n0.738678 0.948822 0.141235\n0.778076 0.949005 0.141754\n0.814117 0.949158 0.142395\n0.846527 0.949310 0.143219\n0.875732 0.949432 0.144196\n0.901978 0.949585 0.145905\n0.925568 0.949799 0.148285\n0.946686 0.950012 0.151031\n0.965149 0.949585 0.153168\n0.981934 0.948944 0.155548\n0.997406 0.948517 0.158173\n1.000000 0.936737 0.177917\n1.000000 0.923615 0.200928\n0.128906 0.969025 0.139069\n0.167145 0.968811 0.139008\n0.201233 0.968933 0.139130\n0.232056 0.969116 0.139252\n0.259796 0.969238 0.139313\n0.285950 0.969330 0.139313\n0.310883 0.969482 0.139252\n0.335236 0.969574 0.139160\n0.359833 0.969696 0.139099\n0.385254 0.969849 0.139038\n0.411438 0.969940 0.138977\n0.439484 0.970062 0.138947\n0.469238 0.970184 0.138977\n0.501099 0.970276 0.139008\n0.536224 0.970398 0.139130\n0.574493 0.970459 0.139343\n0.615112 0.970551 0.139648\n0.657257 0.970673 0.140137\n0.699219 0.970764 0.140625\n0.740326 0.970886 0.141296\n0.779022 0.970978 0.142090\n0.814636 0.971039 0.143066\n0.846954 0.971130 0.144745\n0.875763 0.971283 0.147156\n0.901764 0.971375 0.149750\n0.924866 0.971497 0.152802\n0.945923 0.971527 0.156036\n0.964935 0.971649 0.159454\n0.981812 0.971283 0.162659\n0.997284 0.970734 0.165619\n1.000000 0.958801 0.185425\n1.000000 0.945251 0.208588\n0.136261 0.989655 0.138184\n0.173645 0.989685 0.138184\n0.206787 0.989746 0.138245\n0.236572 0.989838 0.138245\n0.263885 0.989899 0.138214\n0.289398 0.989990 0.138092\n0.314178 0.990021 0.138031\n0.338379 0.990112 0.137970\n0.362854 0.990173 0.137939\n0.387970 0.990265 0.137909\n0.414337 0.990295 0.137939\n0.442383 0.990417 0.137939\n0.472046 0.990448 0.138092\n0.503937 0.990509 0.138306\n0.538910 0.990601 0.138611\n0.577087 0.990631 0.139008\n0.617584 0.990692 0.139526\n0.659332 0.990723 0.140228\n0.700836 0.990753 0.140991\n0.741394 0.990814 0.141968\n0.780060 0.990845 0.143677\n0.815399 0.990936 0.146027\n0.847137 0.990967 0.148651\n0.875641 0.990967 0.151642\n0.901093 0.990967 0.154846\n0.924194 0.991028 0.158325\n0.945038 0.991028 0.161957\n0.963989 0.991028 0.165863\n0.981323 0.990997 0.169952\n0.997040 0.990814 0.173706\n1.000000 0.978760 0.193390\n1.000000 0.964874 0.216644\n0.155853 1.000000 0.149536\n0.190948 1.000000 0.149567\n0.222260 1.000000 0.149597\n0.250488 1.000000 0.149567\n0.276367 1.000000 0.149567\n0.300751 1.000000 0.149536\n0.324371 1.000000 0.149536\n0.347687 1.000000 0.149536\n0.371307 1.000000 0.149628\n0.395782 1.000000 0.149689\n0.421295 1.000000 0.149872\n0.448395 1.000000 0.150116\n0.477264 1.000000 0.150452\n0.508240 1.000000 0.150909\n0.542542 1.000000 0.151459\n0.579468 1.000000 0.152100\n0.618622 1.000000 0.152893\n0.658783 1.000000 0.153931\n0.699432 1.000000 0.155518\n0.738770 1.000000 0.157837\n0.775848 1.000000 0.160522\n0.809723 1.000000 0.163330\n0.840057 1.000000 0.166504\n0.867645 1.000000 0.169891\n0.892639 1.000000 0.173462\n0.915131 1.000000 0.177246\n0.935669 1.000000 0.181122\n0.954498 1.000000 0.185211\n0.971863 1.000000 0.189423\n0.987885 1.000000 0.193634\n1.000000 0.997192 0.201721\n1.000000 0.983093 0.225067\n0.187744 1.000000 0.174469\n0.219513 1.000000 0.174408\n0.247925 1.000000 0.174347\n0.273773 1.000000 0.174286\n0.297333 1.000000 0.174255\n0.319946 1.000000 0.174194\n0.341919 1.000000 0.174255\n0.363556 1.000000 0.174286\n0.385590 1.000000 0.174408\n0.408508 1.000000 0.174591\n0.432648 1.000000 0.174866\n0.458130 1.000000 0.175262\n0.485413 1.000000 0.175720\n0.514740 1.000000 0.176392\n0.547058 1.000000 0.177124\n0.582123 1.000000 0.178040\n0.619568 1.000000 0.179565\n0.657837 1.000000 0.181763\n0.695740 1.000000 0.184204\n0.732635 1.000000 0.187042\n0.767090 1.000000 0.190063\n0.798889 1.000000 0.193329\n0.827789 1.000000 0.196838\n0.854034 1.000000 0.200378\n0.877869 1.000000 0.204224\n0.899719 1.000000 0.208191\n0.919769 1.000000 0.212189\n0.938171 1.000000 0.216339\n0.955170 1.000000 0.220612\n0.971039 1.000000 0.224792\n0.985870 1.000000 0.230286\n1.000000 1.000000 0.236481\n0.000519 0.001190 0.104431\n0.049957 0.003723 0.108337\n0.097412 0.006805 0.113129\n0.141357 0.009338 0.117645\n0.181396 0.011444 0.121857\n0.217621 0.013977 0.126556\n0.249817 0.016663 0.131287\n0.278900 0.019470 0.136078\n0.305725 0.022186 0.140503\n0.331116 0.024567 0.144165\n0.355743 0.025299 0.145630\n0.380371 0.025818 0.146698\n0.405731 0.026184 0.147736\n0.432404 0.026489 0.148712\n0.460968 0.026550 0.149414\n0.492065 0.026520 0.149872\n0.526672 0.026245 0.150238\n0.566254 0.025787 0.150391\n0.609833 0.025269 0.150360\n0.656067 0.024689 0.150208\n0.703308 0.024017 0.149902\n0.749786 0.023560 0.149841\n0.793671 0.023193 0.149689\n0.833435 0.023071 0.149658\n0.868927 0.023163 0.149841\n0.900391 0.023468 0.149963\n0.928101 0.023926 0.150177\n0.952728 0.024628 0.150787\n0.974640 0.025482 0.151062\n0.994354 0.026428 0.151550\n1.000000 0.045898 0.165344\n1.000000 0.072845 0.184998\n0.001770 0.042358 0.113190\n0.049805 0.044037 0.116943\n0.097290 0.047546 0.122711\n0.141479 0.050598 0.127991\n0.181458 0.052948 0.132629\n0.217560 0.055267 0.137177\n0.249603 0.057587 0.141327\n0.278534 0.059784 0.144989\n0.305115 0.060394 0.146484\n0.330139 0.060852 0.147552\n0.354614 0.061249 0.148712\n0.379089 0.061676 0.149811\n0.404388 0.061890 0.150696\n0.431122 0.062073 0.151520\n0.459869 0.062073 0.152130\n0.490967 0.061981 0.152557\n0.525574 0.061676 0.152893\n0.565094 0.061188 0.152802\n0.608643 0.060669 0.152771\n0.654877 0.060089 0.152557\n0.702087 0.059479 0.152252\n0.748535 0.058990 0.151947\n0.792633 0.058746 0.151794\n0.832703 0.058594 0.151825\n0.868317 0.058807 0.151733\n0.899780 0.059174 0.151886\n0.927521 0.059723 0.152069\n0.952087 0.060455 0.152435\n0.973969 0.061066 0.152588\n0.993591 0.061829 0.152588\n1.000000 0.079895 0.166626\n1.000000 0.106262 0.187164\n0.003418 0.083710 0.124237\n0.051208 0.085449 0.128387\n0.097321 0.087646 0.133118\n0.141785 0.090942 0.138672\n0.181610 0.092865 0.142670\n0.217438 0.094635 0.146210\n0.249115 0.095062 0.147461\n0.277588 0.095367 0.148529\n0.303925 0.095673 0.149628\n0.328827 0.095947 0.150604\n0.353180 0.096252 0.151703\n0.377808 0.096527 0.152588\n0.403259 0.096741 0.153473\n0.430023 0.096802 0.154175\n0.458771 0.096771 0.154755\n0.489899 0.096588 0.155060\n0.524475 0.096313 0.155273\n0.563934 0.095856 0.155212\n0.607483 0.095337 0.155060\n0.653656 0.094788 0.154755\n0.701080 0.094269 0.154419\n0.748016 0.093781 0.154053\n0.792389 0.093597 0.153870\n0.832520 0.093536 0.153656\n0.868073 0.093811 0.153656\n0.899414 0.094238 0.153687\n0.927094 0.094574 0.153687\n0.951538 0.095123 0.153503\n0.973358 0.095825 0.153717\n0.992889 0.096588 0.153778\n1.000000 0.113281 0.167419\n1.000000 0.139099 0.189331\n0.005219 0.124176 0.135895\n0.052948 0.125824 0.140076\n0.098602 0.127319 0.143890\n0.141876 0.129089 0.147522\n0.181396 0.129486 0.148834\n0.216583 0.129517 0.149719\n0.247925 0.129578 0.150543\n0.276276 0.129761 0.151581\n0.302429 0.129974 0.152588\n0.327545 0.130127 0.153473\n0.352020 0.130402 0.154449\n0.376678 0.130554 0.155273\n0.402130 0.130676 0.156036\n0.428894 0.130798 0.156738\n0.457703 0.130707 0.157166\n0.488861 0.130554 0.157440\n0.523407 0.130280 0.157654\n0.562836 0.129822 0.157440\n0.606537 0.129303 0.157166\n0.653320 0.128815 0.156860\n0.701202 0.128326 0.156342\n0.748291 0.127991 0.155914\n0.792664 0.127838 0.155518\n0.832703 0.127838 0.155273\n0.868042 0.127899 0.155090\n0.899261 0.128113 0.154785\n0.926758 0.128540 0.154724\n0.951111 0.129150 0.154572\n0.972778 0.129852 0.154663\n0.992218 0.130707 0.154724\n1.000000 0.145966 0.168274\n1.000000 0.171143 0.191467\n0.006470 0.162567 0.146362\n0.054169 0.163818 0.149719\n0.099274 0.163757 0.150757\n0.141418 0.163483 0.151306\n0.180634 0.163696 0.152435\n0.215576 0.163574 0.153137\n0.246765 0.163483 0.153900\n0.275208 0.163483 0.154785\n0.301514 0.163605 0.155640\n0.326599 0.163727 0.156464\n0.351074 0.163849 0.157288\n0.375702 0.164001 0.158020\n0.401184 0.164001 0.158691\n0.427948 0.164093 0.159241\n0.456726 0.164062 0.159637\n0.487915 0.163910 0.159851\n0.522644 0.163635 0.159882\n0.562653 0.163147 0.159637\n0.606964 0.162659 0.159241\n0.654022 0.162323 0.158783\n0.702148 0.161835 0.158295\n0.749268 0.161652 0.157776\n0.793457 0.161255 0.157104\n0.833252 0.161041 0.156647\n0.868469 0.161163 0.156342\n0.899445 0.161499 0.156067\n0.926788 0.162018 0.155914\n0.950989 0.162659 0.155914\n0.972534 0.163544 0.155914\n0.991821 0.164215 0.155945\n1.000000 0.178345 0.169464\n1.000000 0.202515 0.193329\n0.006805 0.197510 0.152863\n0.053558 0.197113 0.153412\n0.098083 0.196716 0.153900\n0.139923 0.196350 0.154419\n0.179443 0.196899 0.155884\n0.215210 0.197357 0.157166\n0.246582 0.197174 0.157837\n0.275055 0.197144 0.158569\n0.301392 0.197144 0.159363\n0.326477 0.197205 0.160126\n0.350952 0.197449 0.160919\n0.375610 0.197449 0.161530\n0.401031 0.197540 0.162201\n0.427856 0.197693 0.162628\n0.456787 0.197601 0.162933\n0.488556 0.197540 0.163086\n0.523926 0.197205 0.162994\n0.564392 0.196808 0.162720\n0.609161 0.196442 0.162262\n0.656494 0.196136 0.161682\n0.704590 0.195496 0.160858\n0.751587 0.194977 0.160095\n0.795593 0.194763 0.159424\n0.835114 0.194611 0.158844\n0.869995 0.194733 0.158478\n0.900726 0.195099 0.158234\n0.927765 0.195587 0.158081\n0.951691 0.196350 0.158020\n0.972961 0.197052 0.157959\n0.992096 0.197937 0.157990\n1.000000 0.210876 0.171509\n1.000000 0.232758 0.195099\n0.005615 0.229736 0.156036\n0.051971 0.229218 0.156464\n0.096252 0.228760 0.156891\n0.138336 0.228241 0.157288\n0.177979 0.228577 0.158508\n0.214478 0.229584 0.160431\n0.246460 0.229950 0.161591\n0.274902 0.229919 0.162323\n0.301239 0.229919 0.162933\n0.326355 0.229919 0.163635\n0.350830 0.230103 0.164368\n0.375488 0.230164 0.164948\n0.401093 0.230347 0.165497\n0.428467 0.230408 0.165863\n0.457947 0.230438 0.166107\n0.490082 0.230286 0.166138\n0.526001 0.230133 0.165985\n0.567047 0.229797 0.165497\n0.611969 0.229218 0.164734\n0.659424 0.228577 0.163940\n0.707550 0.228088 0.163086\n0.754456 0.227692 0.162292\n0.798187 0.227509 0.161560\n0.837219 0.227325 0.161011\n0.871765 0.227570 0.160614\n0.902130 0.227844 0.160309\n0.928802 0.228455 0.160126\n0.952423 0.229095 0.160004\n0.973511 0.229614 0.159943\n0.992401 0.230408 0.159912\n1.000000 0.242432 0.173523\n1.000000 0.262390 0.196899\n0.003662 0.260895 0.158966\n0.050232 0.260345 0.159363\n0.094910 0.259796 0.159698\n0.137054 0.259216 0.160004\n0.176605 0.259399 0.161041\n0.213104 0.260376 0.162811\n0.245728 0.261322 0.164612\n0.274780 0.261871 0.165833\n0.301117 0.261871 0.166443\n0.326233 0.261963 0.167053\n0.350861 0.262085 0.167694\n0.376038 0.262177 0.168182\n0.402222 0.262360 0.168640\n0.429932 0.262451 0.168945\n0.459808 0.262512 0.169067\n0.492401 0.262451 0.168976\n0.528717 0.262054 0.168457\n0.570038 0.261536 0.167786\n0.615387 0.261078 0.167023\n0.663025 0.260468 0.166077\n0.711121 0.259979 0.165222\n0.757782 0.259735 0.164368\n0.800995 0.259430 0.163666\n0.839630 0.259491 0.163086\n0.873627 0.259674 0.162628\n0.903564 0.260071 0.162292\n0.929932 0.260529 0.162048\n0.953217 0.260925 0.161865\n0.973999 0.261658 0.161774\n0.992706 0.262360 0.161743\n1.000000 0.273315 0.175507\n1.000000 0.291290 0.198456\n0.002258 0.291412 0.161865\n0.048889 0.290741 0.162079\n0.093597 0.290161 0.162354\n0.135742 0.289612 0.162628\n0.175171 0.289581 0.163330\n0.211731 0.290558 0.165070\n0.244354 0.291534 0.166809\n0.273926 0.292542 0.168427\n0.301147 0.293213 0.169739\n0.326813 0.293335 0.170258\n0.352020 0.293549 0.170837\n0.377502 0.293732 0.171265\n0.404022 0.293976 0.171600\n0.432129 0.294067 0.171783\n0.462280 0.293976 0.171631\n0.495148 0.293762 0.171265\n0.531982 0.293396 0.170685\n0.573883 0.292938 0.169922\n0.619507 0.292480 0.169067\n0.667175 0.292023 0.168152\n0.715149 0.291565 0.167236\n0.761414 0.291321 0.166382\n0.804108 0.291016 0.165558\n0.842102 0.291199 0.165009\n0.875641 0.291351 0.164520\n0.905060 0.291595 0.164124\n0.931030 0.292114 0.163879\n0.954010 0.292664 0.163666\n0.974548 0.293182 0.163544\n0.993011 0.293762 0.163422\n1.000000 0.303802 0.177307\n1.000000 0.319916 0.199982\n0.000885 0.321442 0.164490\n0.047546 0.320801 0.164673\n0.092285 0.320190 0.164795\n0.134460 0.319702 0.164978\n0.173767 0.319519 0.165527\n0.210358 0.320526 0.167175\n0.243195 0.321533 0.168823\n0.273499 0.322571 0.170410\n0.301636 0.323608 0.171967\n0.328369 0.324646 0.173370\n0.353882 0.324860 0.173828\n0.379700 0.325104 0.174133\n0.406403 0.325134 0.174194\n0.434662 0.325104 0.174072\n0.465302 0.325073 0.173859\n0.498535 0.324951 0.173431\n0.535950 0.324615 0.172760\n0.578278 0.324249 0.171967\n0.624207 0.323792 0.171082\n0.671783 0.323273 0.170044\n0.719513 0.323059 0.169159\n0.765259 0.322601 0.168213\n0.807312 0.322449 0.167419\n0.844696 0.322479 0.166809\n0.877655 0.322723 0.166290\n0.906616 0.323059 0.165894\n0.932190 0.323456 0.165588\n0.954834 0.323883 0.165344\n0.975067 0.324554 0.165161\n0.993317 0.325043 0.165009\n1.000000 0.334137 0.178955\n1.000000 0.348236 0.201355\n0.000000 0.350952 0.166962\n0.046173 0.350769 0.167023\n0.090912 0.350281 0.167084\n0.133118 0.349731 0.167175\n0.172546 0.349609 0.167603\n0.210022 0.350555 0.169159\n0.243622 0.351562 0.170715\n0.274139 0.352692 0.172272\n0.302612 0.353821 0.173737\n0.329803 0.355042 0.175201\n0.356323 0.356110 0.176392\n0.382263 0.356171 0.176422\n0.409241 0.356262 0.176453\n0.437897 0.356293 0.176208\n0.468842 0.356293 0.175934\n0.502502 0.356140 0.175446\n0.540497 0.355835 0.174713\n0.583282 0.355530 0.173889\n0.629272 0.355164 0.172943\n0.676758 0.354706 0.171906\n0.724091 0.354431 0.170929\n0.769287 0.354034 0.169983\n0.810608 0.353943 0.169159\n0.847351 0.354034 0.168518\n0.879700 0.354187 0.167969\n0.908142 0.354553 0.167572\n0.933350 0.355011 0.167206\n0.955627 0.355316 0.166901\n0.975586 0.355804 0.166656\n0.993591 0.356384 0.166473\n1.000000 0.364166 0.180542\n1.000000 0.376770 0.202667\n0.000000 0.379974 0.169464\n0.044739 0.381012 0.169189\n0.089783 0.380493 0.169189\n0.133118 0.380035 0.169189\n0.173553 0.379822 0.169434\n0.211304 0.380859 0.170929\n0.245148 0.382019 0.172424\n0.275909 0.383179 0.173889\n0.304260 0.384186 0.175110\n0.331360 0.385223 0.176239\n0.358124 0.386322 0.177368\n0.385284 0.387451 0.178467\n0.412689 0.387726 0.178497\n0.441681 0.387817 0.178314\n0.472931 0.387817 0.177917\n0.506989 0.387726 0.177368\n0.545593 0.387421 0.176605\n0.588593 0.387115 0.175659\n0.634705 0.386749 0.174652\n0.682037 0.386353 0.173584\n0.728851 0.385986 0.172546\n0.773376 0.385773 0.171661\n0.813965 0.385712 0.170837\n0.849945 0.385773 0.170105\n0.881714 0.385803 0.169525\n0.909668 0.386078 0.169067\n0.934387 0.386505 0.168701\n0.956390 0.386993 0.168365\n0.976074 0.387268 0.168091\n0.993896 0.387756 0.167847\n1.000000 0.394592 0.181915\n1.000000 0.405151 0.203857\n0.000000 0.409576 0.171906\n0.044952 0.411652 0.171143\n0.091217 0.411163 0.170959\n0.135101 0.410736 0.170929\n0.175934 0.410675 0.171143\n0.213928 0.411774 0.172546\n0.247437 0.412781 0.173767\n0.277985 0.413818 0.174927\n0.306427 0.414856 0.176056\n0.333649 0.416016 0.177124\n0.360535 0.417084 0.178253\n0.388000 0.418304 0.179352\n0.416534 0.419525 0.180389\n0.445892 0.419678 0.180206\n0.477509 0.419769 0.179779\n0.511932 0.419647 0.179138\n0.551025 0.419464 0.178314\n0.594299 0.419098 0.177338\n0.640289 0.418701 0.176300\n0.687317 0.418304 0.175201\n0.733612 0.418121 0.174164\n0.777374 0.417786 0.173187\n0.817230 0.417786 0.172333\n0.852509 0.417816 0.171631\n0.883606 0.417908 0.170990\n0.911072 0.418213 0.170502\n0.935394 0.418365 0.170074\n0.957092 0.418762 0.169708\n0.976532 0.419067 0.169342\n0.994141 0.419495 0.169037\n1.000000 0.425140 0.183197\n1.000000 0.434143 0.204651\n0.000000 0.442261 0.173370\n0.047455 0.442871 0.172821\n0.094391 0.442444 0.172577\n0.138763 0.442108 0.172485\n0.179382 0.442017 0.172394\n0.216827 0.443024 0.173523\n0.250275 0.444061 0.174652\n0.280762 0.445129 0.175751\n0.309143 0.446228 0.176849\n0.336487 0.447418 0.177979\n0.363403 0.448547 0.178955\n0.391022 0.449738 0.179993\n0.419861 0.450989 0.181000\n0.450470 0.452209 0.181976\n0.482361 0.452301 0.181519\n0.517242 0.452240 0.180817\n0.556702 0.451996 0.179901\n0.600189 0.451691 0.178925\n0.646088 0.451355 0.177826\n0.692627 0.450897 0.176697\n0.738281 0.450592 0.175598\n0.781311 0.450439 0.174622\n0.820312 0.450378 0.173767\n0.854889 0.450256 0.173004\n0.885406 0.450409 0.172333\n0.912415 0.450592 0.171783\n0.936371 0.450836 0.171326\n0.957703 0.450989 0.170898\n0.976898 0.451324 0.170441\n0.994385 0.451599 0.169891\n1.000000 0.456299 0.184021\n1.000000 0.463593 0.205109\n0.002319 0.475250 0.174438\n0.052063 0.474854 0.174194\n0.098938 0.474365 0.173706\n0.142944 0.473907 0.173248\n0.183655 0.473999 0.173248\n0.220734 0.475067 0.174347\n0.253998 0.476135 0.175446\n0.284149 0.477234 0.176514\n0.312317 0.478333 0.177521\n0.339630 0.479553 0.178589\n0.366638 0.480682 0.179565\n0.394379 0.481934 0.180511\n0.423431 0.483124 0.181458\n0.454285 0.484314 0.182312\n0.487518 0.485504 0.183167\n0.522766 0.485352 0.182373\n0.562592 0.485107 0.181427\n0.606079 0.484833 0.180359\n0.651642 0.484406 0.179199\n0.697845 0.484100 0.178101\n0.742798 0.483917 0.176971\n0.785034 0.483582 0.175934\n0.823212 0.483368 0.175049\n0.857086 0.483398 0.174286\n0.887054 0.483521 0.173553\n0.913605 0.483582 0.173004\n0.937195 0.483795 0.172424\n0.958313 0.484009 0.171722\n0.977356 0.484192 0.171112\n0.994568 0.484406 0.170349\n1.000000 0.488129 0.184509\n1.000000 0.493652 0.205292\n0.007782 0.507935 0.175598\n0.057312 0.507446 0.174866\n0.104462 0.506989 0.174316\n0.148346 0.506653 0.173798\n0.188690 0.506927 0.173889\n0.225281 0.507965 0.174957\n0.258057 0.509155 0.176056\n0.287842 0.510284 0.177032\n0.315979 0.511505 0.178070\n0.343048 0.512665 0.178986\n0.370209 0.513885 0.179932\n0.397949 0.515076 0.180847\n0.427124 0.516327 0.181732\n0.458221 0.517517 0.182617\n0.491760 0.518799 0.183411\n0.528320 0.519684 0.183838\n0.568481 0.519409 0.182800\n0.611908 0.519043 0.181732\n0.657196 0.518616 0.180511\n0.702789 0.518280 0.179352\n0.747070 0.517944 0.178284\n0.788483 0.517670 0.177185\n0.825897 0.517456 0.176239\n0.859100 0.517365 0.175415\n0.888550 0.517426 0.174622\n0.914703 0.517548 0.173828\n0.938049 0.517639 0.173004\n0.958954 0.517731 0.172241\n0.977722 0.517975 0.171387\n0.994873 0.518250 0.170532\n1.000000 0.520905 0.184723\n1.000000 0.524963 0.205261\n0.014313 0.543030 0.175995\n0.064117 0.542572 0.175415\n0.111115 0.542145 0.174683\n0.154663 0.541840 0.174133\n0.194580 0.542389 0.174469\n0.230408 0.543549 0.175476\n0.262604 0.544708 0.176483\n0.291931 0.545898 0.177429\n0.319733 0.547150 0.178375\n0.346741 0.548401 0.179260\n0.373718 0.549652 0.180176\n0.401611 0.550903 0.181030\n0.430969 0.552124 0.181885\n0.462250 0.553406 0.182648\n0.495850 0.554626 0.183411\n0.533142 0.555817 0.184174\n0.574249 0.556335 0.184082\n0.617554 0.556000 0.182953\n0.662384 0.555450 0.181763\n0.707397 0.555084 0.180511\n0.750946 0.554626 0.179382\n0.791595 0.554199 0.178314\n0.828278 0.553986 0.177246\n0.861023 0.553955 0.176239\n0.890015 0.553802 0.175232\n0.915833 0.553772 0.174316\n0.938873 0.554016 0.173309\n0.959503 0.554138 0.172363\n0.978180 0.554352 0.171417\n0.995117 0.554535 0.170532\n1.000000 0.555969 0.184814\n1.000000 0.558685 0.205139\n0.022430 0.580872 0.176270\n0.072174 0.580383 0.175537\n0.118744 0.579987 0.174835\n0.161591 0.579742 0.174286\n0.200745 0.580475 0.174805\n0.235809 0.581696 0.175751\n0.267273 0.582947 0.176727\n0.296143 0.584106 0.177612\n0.323608 0.585388 0.178528\n0.350525 0.586639 0.179413\n0.377472 0.587830 0.180206\n0.405396 0.589111 0.181030\n0.434784 0.590363 0.181793\n0.466095 0.591522 0.182556\n0.499908 0.592743 0.183289\n0.537415 0.593903 0.183960\n0.579193 0.595062 0.184631\n0.622833 0.595093 0.184113\n0.667206 0.594543 0.182831\n0.711578 0.594025 0.181580\n0.754425 0.593414 0.180328\n0.794464 0.592957 0.179047\n0.830627 0.592743 0.177795\n0.862854 0.592468 0.176666\n0.891449 0.592346 0.175507\n0.916931 0.592285 0.174408\n0.939697 0.592377 0.173340\n0.960114 0.592438 0.172333\n0.978577 0.592621 0.171326\n0.995361 0.592896 0.170349\n1.000000 0.593140 0.184784\n1.000000 0.594086 0.204987\n0.031769 0.620850 0.176422\n0.081116 0.620361 0.175659\n0.127045 0.619934 0.174957\n0.168945 0.619629 0.174255\n0.207306 0.620636 0.175049\n0.241425 0.621857 0.175964\n0.272095 0.623047 0.176819\n0.300476 0.624237 0.177704\n0.327545 0.625427 0.178558\n0.354218 0.626648 0.179413\n0.381134 0.627808 0.180145\n0.409058 0.628967 0.180908\n0.438507 0.630188 0.181641\n0.469849 0.631287 0.182281\n0.503693 0.632416 0.182983\n0.541290 0.633484 0.183624\n0.583008 0.634552 0.184174\n0.627258 0.635620 0.184814\n0.671539 0.635162 0.183746\n0.715454 0.634491 0.182312\n0.757874 0.634033 0.180847\n0.797333 0.633270 0.179413\n0.832977 0.632965 0.178070\n0.864685 0.632721 0.176758\n0.892914 0.632599 0.175507\n0.918060 0.632355 0.174377\n0.940552 0.632477 0.173248\n0.960693 0.632385 0.172180\n0.978943 0.632568 0.171143\n0.995605 0.632599 0.170166\n1.000000 0.631409 0.184845\n1.000000 0.630646 0.204956\n0.041992 0.662201 0.176331\n0.090607 0.661621 0.175537\n0.135742 0.661194 0.174835\n0.176605 0.660950 0.174255\n0.213959 0.662109 0.175140\n0.246979 0.663239 0.175995\n0.276947 0.664368 0.176849\n0.304810 0.665527 0.177643\n0.331421 0.666595 0.178436\n0.357880 0.667755 0.179260\n0.384705 0.668762 0.179932\n0.412567 0.669891 0.180664\n0.441925 0.670898 0.181335\n0.473450 0.671936 0.181976\n0.507172 0.672943 0.182556\n0.544800 0.673920 0.183167\n0.586334 0.674835 0.183624\n0.630432 0.675812 0.183990\n0.675842 0.676697 0.184235\n0.719452 0.676025 0.182648\n0.761353 0.675232 0.181091\n0.800201 0.674622 0.179535\n0.835205 0.674194 0.178040\n0.866455 0.673767 0.176666\n0.894318 0.673462 0.175385\n0.919128 0.673370 0.174164\n0.941315 0.673309 0.173035\n0.961304 0.673126 0.171967\n0.979340 0.673340 0.171051\n0.995819 0.673218 0.170105\n1.000000 0.670746 0.184998\n1.000000 0.667877 0.205139\n0.052826 0.703979 0.176147\n0.100616 0.703430 0.175323\n0.144592 0.702911 0.174500\n0.184448 0.702881 0.174316\n0.220337 0.703888 0.175171\n0.252411 0.704956 0.175995\n0.281586 0.705994 0.176788\n0.308807 0.707001 0.177521\n0.335236 0.708038 0.178314\n0.361450 0.709045 0.178955\n0.388000 0.709930 0.179657\n0.415863 0.710907 0.180328\n0.445160 0.711823 0.180908\n0.476562 0.712708 0.181519\n0.510284 0.713593 0.182007\n0.548065 0.714417 0.182343\n0.589630 0.715302 0.182617\n0.633575 0.716095 0.182800\n0.678741 0.716949 0.182922\n0.723297 0.717468 0.182709\n0.764679 0.716705 0.181030\n0.802979 0.716095 0.179413\n0.837463 0.715393 0.177856\n0.868225 0.715057 0.176483\n0.895660 0.714630 0.175140\n0.920166 0.714508 0.173920\n0.942047 0.714172 0.172852\n0.961792 0.714081 0.171906\n0.979675 0.714050 0.171082\n0.996033 0.713898 0.170319\n1.000000 0.709808 0.185486\n1.000000 0.705475 0.205566\n0.064026 0.745483 0.175751\n0.110687 0.744751 0.175110\n0.153412 0.744232 0.174194\n0.192108 0.744385 0.174316\n0.226654 0.745300 0.175110\n0.257751 0.746246 0.175903\n0.286102 0.747101 0.176636\n0.312836 0.747986 0.177307\n0.338776 0.748871 0.178040\n0.364685 0.749756 0.178650\n0.391174 0.750580 0.179260\n0.418732 0.751343 0.179871\n0.447968 0.752136 0.180359\n0.479462 0.752869 0.180725\n0.513306 0.753632 0.181030\n0.551361 0.754364 0.181213\n0.592896 0.755096 0.181335\n0.636841 0.755859 0.181396\n0.681549 0.756561 0.181366\n0.725861 0.757263 0.181335\n0.767944 0.757629 0.180786\n0.805634 0.756775 0.179169\n0.839600 0.756073 0.177582\n0.869873 0.755585 0.176239\n0.896973 0.755249 0.174957\n0.921112 0.754944 0.173859\n0.942749 0.754578 0.172913\n0.962311 0.754333 0.172119\n0.980042 0.754242 0.171356\n0.996216 0.754150 0.170776\n1.000000 0.748535 0.186157\n1.000000 0.742310 0.206360\n0.075317 0.785706 0.175568\n0.120575 0.784912 0.174591\n0.161835 0.784241 0.173981\n0.199280 0.784607 0.174286\n0.232544 0.785400 0.174988\n0.262665 0.786163 0.175690\n0.290283 0.786926 0.176422\n0.316467 0.787659 0.177032\n0.341949 0.788361 0.177643\n0.367493 0.789062 0.178284\n0.393829 0.789703 0.178802\n0.421539 0.790405 0.179169\n0.450775 0.791046 0.179474\n0.482361 0.791687 0.179626\n0.516571 0.792328 0.179779\n0.554626 0.792938 0.179840\n0.596283 0.793579 0.179779\n0.639893 0.794189 0.179749\n0.684265 0.794830 0.179657\n0.728149 0.795441 0.179596\n0.769989 0.796051 0.179474\n0.808228 0.796234 0.178894\n0.841644 0.795502 0.177399\n0.871490 0.794769 0.176117\n0.898193 0.794342 0.174988\n0.922058 0.793884 0.174042\n0.943420 0.793579 0.173218\n0.962769 0.793335 0.172485\n0.980316 0.792877 0.171967\n0.996399 0.792847 0.171570\n1.000000 0.785767 0.187347\n1.000000 0.777954 0.207611\n0.086243 0.823914 0.175201\n0.130157 0.823029 0.174194\n0.169861 0.822296 0.173553\n0.205994 0.822815 0.174133\n0.238037 0.823456 0.174835\n0.267090 0.824066 0.175507\n0.294067 0.824677 0.176147\n0.319611 0.825287 0.176727\n0.344818 0.825806 0.177246\n0.370209 0.826355 0.177612\n0.396515 0.826874 0.177887\n0.424316 0.827454 0.178131\n0.453766 0.828003 0.178284\n0.485474 0.828522 0.178345\n0.519928 0.829071 0.178314\n0.558075 0.829590 0.178284\n0.599640 0.830109 0.178192\n0.643005 0.830658 0.178131\n0.687103 0.831116 0.177979\n0.730347 0.831635 0.177887\n0.771637 0.832153 0.177826\n0.809845 0.832642 0.177795\n0.843567 0.832733 0.177399\n0.872955 0.831970 0.176239\n0.899292 0.831390 0.175232\n0.922852 0.831024 0.174408\n0.944031 0.830414 0.173767\n0.963196 0.830048 0.173309\n0.980560 0.829712 0.173035\n0.996490 0.829407 0.172852\n1.000000 0.821167 0.188965\n1.000000 0.812012 0.209564\n0.096741 0.859406 0.174774\n0.139069 0.858490 0.173889\n0.177399 0.857819 0.173370\n0.212128 0.858337 0.174011\n0.242981 0.858856 0.174622\n0.271027 0.859314 0.175262\n0.297150 0.859741 0.175751\n0.322449 0.860199 0.176178\n0.347626 0.860657 0.176453\n0.373016 0.861053 0.176666\n0.399445 0.861511 0.176819\n0.427246 0.861938 0.176849\n0.456879 0.862396 0.176849\n0.488586 0.862793 0.176819\n0.523071 0.863251 0.176758\n0.561462 0.863647 0.176697\n0.602783 0.864044 0.176544\n0.645966 0.864471 0.176514\n0.689697 0.864868 0.176453\n0.732513 0.865265 0.176422\n0.773224 0.865692 0.176422\n0.810699 0.866058 0.176544\n0.844452 0.866455 0.176666\n0.874329 0.866577 0.176575\n0.900330 0.865814 0.175781\n0.923584 0.865265 0.175171\n0.944550 0.864746 0.174805\n0.963501 0.864288 0.174591\n0.980743 0.863953 0.174591\n0.996613 0.863495 0.174896\n1.000000 0.854584 0.192352\n1.000000 0.844299 0.213989\n0.106537 0.891754 0.174530\n0.147278 0.890747 0.173615\n0.184174 0.890289 0.173218\n0.217346 0.890625 0.173828\n0.247070 0.890991 0.174377\n0.274506 0.891327 0.174774\n0.300385 0.891693 0.175079\n0.325592 0.892029 0.175262\n0.350586 0.892395 0.175446\n0.375824 0.892700 0.175507\n0.402313 0.893066 0.175507\n0.430176 0.893372 0.175507\n0.459808 0.893707 0.175446\n0.491791 0.894012 0.175385\n0.526489 0.894409 0.175201\n0.564819 0.894653 0.175140\n0.606049 0.895050 0.175110\n0.648895 0.895294 0.175079\n0.692139 0.895599 0.175079\n0.734436 0.895935 0.175201\n0.774750 0.896240 0.175385\n0.811737 0.896515 0.175598\n0.844940 0.896820 0.175964\n0.874664 0.897095 0.176422\n0.901215 0.897308 0.176788\n0.924255 0.896545 0.176483\n0.944977 0.895935 0.176392\n0.963806 0.895508 0.176605\n0.980957 0.895264 0.177856\n0.996643 0.894836 0.179596\n1.000000 0.885071 0.197418\n1.000000 0.873688 0.219452\n0.115326 0.920563 0.174011\n0.154480 0.919525 0.173126\n0.190094 0.919220 0.173065\n0.222168 0.919495 0.173462\n0.251282 0.919769 0.173767\n0.278351 0.919983 0.174011\n0.303802 0.920227 0.174164\n0.328613 0.920471 0.174255\n0.353577 0.920776 0.174255\n0.378876 0.921021 0.174255\n0.405334 0.921234 0.174164\n0.433258 0.921509 0.174103\n0.462921 0.921753 0.173920\n0.494873 0.921997 0.173889\n0.529633 0.922211 0.173859\n0.567963 0.922455 0.173798\n0.609161 0.922699 0.173828\n0.651703 0.922913 0.173981\n0.694489 0.923126 0.174133\n0.736420 0.923370 0.174377\n0.776093 0.923584 0.174683\n0.812592 0.923798 0.175140\n0.845398 0.924011 0.175720\n0.874786 0.924194 0.176453\n0.901093 0.924408 0.177338\n0.924774 0.924622 0.178375\n0.945465 0.924011 0.179596\n0.964050 0.923676 0.181244\n0.981018 0.923126 0.183136\n0.996613 0.922760 0.185364\n1.000000 0.912323 0.203461\n1.000000 0.900085 0.225891\n0.123077 0.946136 0.173767\n0.161011 0.945129 0.172699\n0.195618 0.944977 0.172546\n0.227051 0.945160 0.172791\n0.255402 0.945343 0.172974\n0.281952 0.945496 0.173065\n0.307190 0.945679 0.173035\n0.331879 0.945892 0.173035\n0.356567 0.946075 0.173004\n0.381775 0.946198 0.172943\n0.408203 0.946381 0.172760\n0.436218 0.946594 0.172729\n0.465942 0.946777 0.172699\n0.497925 0.946930 0.172638\n0.532745 0.947083 0.172668\n0.571075 0.947266 0.172791\n0.612000 0.947418 0.172974\n0.654266 0.947601 0.173218\n0.696533 0.947723 0.173523\n0.738190 0.947845 0.173981\n0.777313 0.948029 0.174561\n0.813141 0.948151 0.175323\n0.845520 0.948273 0.176147\n0.874603 0.948425 0.177216\n0.901001 0.948608 0.179413\n0.924500 0.948853 0.181793\n0.945679 0.949066 0.184631\n0.964142 0.948486 0.187012\n0.980957 0.947968 0.189392\n0.996460 0.947632 0.192169\n1.000000 0.936829 0.210449\n1.000000 0.923767 0.233093\n0.130432 0.968994 0.173065\n0.167389 0.968018 0.171722\n0.201263 0.967987 0.171844\n0.231842 0.968140 0.171936\n0.259735 0.968292 0.171936\n0.285583 0.968384 0.171936\n0.310394 0.968475 0.171906\n0.334839 0.968628 0.171783\n0.359528 0.968781 0.171722\n0.384766 0.968872 0.171631\n0.411163 0.969025 0.171570\n0.439056 0.969116 0.171509\n0.468872 0.969238 0.171570\n0.500702 0.969330 0.171692\n0.535797 0.969421 0.171844\n0.574005 0.969513 0.172119\n0.614716 0.969635 0.172424\n0.656494 0.969757 0.172852\n0.698608 0.969849 0.173462\n0.739380 0.969910 0.174164\n0.778137 0.970032 0.175049\n0.813690 0.970093 0.176056\n0.845947 0.970215 0.178253\n0.874908 0.970337 0.180695\n0.900757 0.970459 0.183472\n0.923828 0.970459 0.186554\n0.944885 0.970551 0.189850\n0.963867 0.970642 0.193451\n0.980835 0.970337 0.196594\n0.996277 0.969727 0.199799\n1.000000 0.958832 0.218048\n1.000000 0.945343 0.240845\n0.137756 0.989594 0.172150\n0.173767 0.988739 0.170868\n0.206757 0.988831 0.170868\n0.236359 0.988892 0.170868\n0.263550 0.988983 0.170837\n0.289215 0.989044 0.170715\n0.313721 0.989105 0.170654\n0.338074 0.989197 0.170563\n0.362488 0.989288 0.170532\n0.387543 0.989349 0.170502\n0.413971 0.989441 0.170532\n0.441864 0.989471 0.170654\n0.471802 0.989563 0.170807\n0.503510 0.989624 0.171051\n0.538513 0.989655 0.171356\n0.576538 0.989716 0.171844\n0.617004 0.989746 0.172394\n0.658508 0.989838 0.173096\n0.700256 0.989838 0.173981\n0.740631 0.989868 0.175049\n0.779327 0.989960 0.177094\n0.814514 0.989990 0.179596\n0.846161 0.990021 0.182312\n0.874481 0.990051 0.185425\n0.900024 0.990051 0.188751\n0.923035 0.990082 0.192261\n0.943939 0.990082 0.196045\n0.962799 0.990051 0.199982\n0.980225 0.990051 0.204071\n0.996063 0.989716 0.208008\n1.000000 0.978760 0.226135\n1.000000 0.964935 0.248993\n0.156830 1.000000 0.182007\n0.190582 1.000000 0.180756\n0.221741 1.000000 0.180786\n0.249695 1.000000 0.180725\n0.275818 1.000000 0.180725\n0.300232 1.000000 0.180664\n0.323944 1.000000 0.180695\n0.347290 1.000000 0.180695\n0.370758 1.000000 0.180786\n0.395264 1.000000 0.180847\n0.420990 1.000000 0.181122\n0.447998 1.000000 0.181427\n0.477112 1.000000 0.181793\n0.508179 1.000000 0.182220\n0.542114 1.000000 0.182831\n0.579254 1.000000 0.183502\n0.618378 1.000000 0.184448\n0.658661 1.000000 0.185455\n0.699402 1.000000 0.187500\n0.738800 1.000000 0.189972\n0.775696 1.000000 0.192657\n0.809326 1.000000 0.195648\n0.839935 1.000000 0.198853\n0.867432 1.000000 0.202332\n0.892395 1.000000 0.206024\n0.915070 1.000000 0.209808\n0.935638 1.000000 0.213867\n0.954346 1.000000 0.217987\n0.971771 1.000000 0.222107\n0.987885 1.000000 0.226440\n1.000000 0.997131 0.234497\n1.000000 0.983124 0.257721\n0.189026 1.000000 0.205322\n0.220612 1.000000 0.205170\n0.248871 1.000000 0.205109\n0.274414 1.000000 0.205017\n0.298218 1.000000 0.204987\n0.320679 1.000000 0.204956\n0.342499 1.000000 0.204987\n0.364227 1.000000 0.205048\n0.386322 1.000000 0.205261\n0.409058 1.000000 0.205475\n0.433167 1.000000 0.205780\n0.458557 1.000000 0.206177\n0.485870 1.000000 0.206757\n0.515167 1.000000 0.207397\n0.547546 1.000000 0.208191\n0.582642 1.000000 0.209167\n0.620270 1.000000 0.211151\n0.658295 1.000000 0.213409\n0.696259 1.000000 0.216003\n0.732727 1.000000 0.218842\n0.767303 1.000000 0.222015\n0.799103 1.000000 0.225372\n0.827789 1.000000 0.228882\n0.854126 1.000000 0.232605\n0.877930 1.000000 0.236511\n0.899750 1.000000 0.240417\n0.919800 1.000000 0.244568\n0.938263 1.000000 0.248749\n0.955170 1.000000 0.252930\n0.971100 1.000000 0.257599\n0.986023 1.000000 0.263214\n1.000000 1.000000 0.269592\n0.000000 0.001312 0.138611\n0.048767 0.003418 0.143494\n0.096252 0.006592 0.148315\n0.141052 0.010162 0.153870\n0.181580 0.012970 0.158752\n0.217773 0.015472 0.163361\n0.249969 0.018219 0.168182\n0.279083 0.020966 0.172760\n0.305847 0.023499 0.176941\n0.331177 0.025330 0.179779\n0.355743 0.025848 0.181000\n0.380341 0.026398 0.182068\n0.405670 0.026764 0.183167\n0.432343 0.027008 0.183990\n0.460938 0.027100 0.184814\n0.492035 0.027069 0.185303\n0.526642 0.026764 0.185638\n0.566223 0.026337 0.185791\n0.609802 0.025818 0.185822\n0.656036 0.025177 0.185638\n0.703278 0.024628 0.185516\n0.749756 0.024200 0.185364\n0.793640 0.023834 0.185059\n0.833405 0.023712 0.185181\n0.868988 0.023773 0.185364\n0.900421 0.024139 0.185516\n0.928192 0.024689 0.185822\n0.952789 0.025391 0.186249\n0.974701 0.026276 0.186676\n0.994385 0.027130 0.186890\n1.000000 0.046539 0.199585\n1.000000 0.073578 0.217407\n0.000671 0.042206 0.148468\n0.048645 0.043945 0.152405\n0.096130 0.047455 0.158112\n0.140930 0.051147 0.164062\n0.181732 0.054443 0.169495\n0.217712 0.056610 0.173737\n0.249786 0.058899 0.177856\n0.278625 0.060547 0.180695\n0.305115 0.060974 0.181824\n0.330109 0.061432 0.183044\n0.354553 0.061798 0.184113\n0.379059 0.062134 0.185089\n0.404388 0.062439 0.186066\n0.431122 0.062592 0.186829\n0.459839 0.062622 0.187469\n0.490967 0.062561 0.187958\n0.525543 0.062256 0.188263\n0.565063 0.061768 0.188354\n0.608612 0.061218 0.188141\n0.654846 0.060577 0.187897\n0.702057 0.060059 0.187683\n0.748535 0.059570 0.187408\n0.792786 0.059326 0.187317\n0.832886 0.059296 0.187317\n0.868439 0.059448 0.187286\n0.899872 0.059845 0.187500\n0.927612 0.060547 0.187683\n0.952179 0.061127 0.187805\n0.974030 0.061768 0.187958\n0.993591 0.062592 0.188110\n1.000000 0.080597 0.200653\n1.000000 0.106995 0.219513\n0.002350 0.083618 0.159607\n0.050140 0.085419 0.163971\n0.096222 0.087555 0.168457\n0.140869 0.090942 0.174103\n0.181854 0.094116 0.179169\n0.217621 0.095398 0.181793\n0.249146 0.095612 0.182831\n0.277588 0.095886 0.183838\n0.303864 0.096161 0.184906\n0.328796 0.096497 0.186035\n0.353180 0.096771 0.186951\n0.377808 0.097076 0.187988\n0.403229 0.097260 0.188873\n0.430023 0.097321 0.189484\n0.458740 0.097321 0.190063\n0.489899 0.097168 0.190521\n0.524445 0.096863 0.190674\n0.563934 0.096436 0.190674\n0.607452 0.095886 0.190491\n0.653625 0.095306 0.190186\n0.701263 0.094849 0.189819\n0.748230 0.094452 0.189545\n0.792603 0.094238 0.189240\n0.832703 0.094299 0.189117\n0.868256 0.094543 0.189117\n0.899597 0.094849 0.189026\n0.927216 0.095184 0.188965\n0.951630 0.095734 0.189026\n0.973419 0.096497 0.189087\n0.992920 0.097351 0.189331\n1.000000 0.113983 0.201843\n1.000000 0.139801 0.221588\n0.004211 0.124146 0.171356\n0.051910 0.125732 0.175446\n0.097565 0.127075 0.178864\n0.140778 0.128510 0.181915\n0.181335 0.129913 0.184143\n0.216553 0.130005 0.184998\n0.247894 0.130096 0.185974\n0.276184 0.130249 0.186829\n0.302429 0.130432 0.187897\n0.327515 0.130646 0.188812\n0.352020 0.130859 0.189789\n0.376678 0.131073 0.190643\n0.402130 0.131195 0.191406\n0.428894 0.131256 0.192047\n0.457672 0.131195 0.192535\n0.488831 0.131073 0.192902\n0.523376 0.130737 0.192963\n0.562805 0.130371 0.192871\n0.606750 0.129822 0.192535\n0.653534 0.129364 0.192139\n0.701447 0.128906 0.191864\n0.748596 0.128601 0.191406\n0.792969 0.128448 0.191162\n0.832947 0.128418 0.190674\n0.868256 0.128448 0.190460\n0.899414 0.128723 0.190277\n0.926910 0.129211 0.190277\n0.951233 0.129791 0.190186\n0.972839 0.130585 0.190216\n0.992249 0.131378 0.190247\n1.000000 0.146637 0.202515\n1.000000 0.171875 0.223602\n0.006165 0.162933 0.182129\n0.053619 0.163727 0.184723\n0.098480 0.163452 0.185211\n0.140533 0.163116 0.185822\n0.179871 0.163483 0.187103\n0.215118 0.163605 0.188080\n0.246368 0.163605 0.188904\n0.274841 0.163605 0.189728\n0.301208 0.163727 0.190613\n0.326355 0.163910 0.191559\n0.350830 0.164032 0.192383\n0.375519 0.164215 0.193146\n0.400970 0.164337 0.193817\n0.427795 0.164368 0.194366\n0.456604 0.164368 0.194794\n0.487762 0.164215 0.195038\n0.522705 0.164001 0.195038\n0.562805 0.163605 0.194855\n0.607178 0.163116 0.194489\n0.654266 0.162689 0.194092\n0.702484 0.162354 0.193573\n0.749542 0.161957 0.192963\n0.793701 0.161560 0.192352\n0.833435 0.161530 0.192047\n0.868561 0.161652 0.191650\n0.899506 0.161957 0.191284\n0.926788 0.162476 0.191284\n0.950897 0.163055 0.191132\n0.972382 0.163818 0.191193\n0.991638 0.164642 0.191193\n1.000000 0.178497 0.203278\n1.000000 0.203125 0.225616\n0.006897 0.197998 0.188171\n0.053558 0.197632 0.188690\n0.098053 0.197144 0.189178\n0.139801 0.196808 0.189728\n0.178497 0.196411 0.190277\n0.213898 0.196411 0.191101\n0.245300 0.196289 0.191833\n0.273773 0.196228 0.192535\n0.300140 0.196289 0.193359\n0.325256 0.196411 0.194153\n0.349762 0.196472 0.194824\n0.374420 0.196594 0.195526\n0.399872 0.196747 0.196167\n0.426697 0.196869 0.196625\n0.455902 0.196808 0.196991\n0.487701 0.196655 0.197113\n0.523132 0.196442 0.196991\n0.563721 0.196167 0.196747\n0.608459 0.195740 0.196289\n0.655792 0.195282 0.195618\n0.703888 0.194641 0.194885\n0.750824 0.194092 0.194092\n0.794800 0.193970 0.193481\n0.834290 0.194000 0.192993\n0.869110 0.194031 0.192596\n0.899811 0.194458 0.192383\n0.926819 0.194946 0.192200\n0.950745 0.195618 0.192169\n0.972046 0.196350 0.192169\n0.991211 0.197174 0.192200\n1.000000 0.209808 0.204224\n1.000000 0.233398 0.227417\n0.005524 0.230164 0.191284\n0.051849 0.229645 0.191742\n0.096222 0.229095 0.192139\n0.138336 0.228668 0.192627\n0.177246 0.228271 0.193054\n0.213135 0.228729 0.194336\n0.245178 0.229095 0.195557\n0.273651 0.229004 0.196198\n0.300018 0.229065 0.196930\n0.325134 0.229126 0.197662\n0.349640 0.229218 0.198273\n0.374298 0.229370 0.198914\n0.400116 0.229492 0.199432\n0.427521 0.229553 0.199829\n0.457153 0.229645 0.200043\n0.489380 0.229553 0.200073\n0.525391 0.229370 0.199951\n0.566437 0.228943 0.199463\n0.611328 0.228302 0.198700\n0.658813 0.227783 0.197906\n0.706970 0.227325 0.197113\n0.753784 0.226837 0.196320\n0.797394 0.226746 0.195618\n0.836426 0.226715 0.195129\n0.870880 0.226929 0.194672\n0.901215 0.227234 0.194458\n0.927887 0.227753 0.194244\n0.951508 0.228455 0.194153\n0.972565 0.229034 0.194061\n0.991455 0.229828 0.194061\n1.000000 0.241486 0.206177\n1.000000 0.263031 0.229065\n0.003632 0.261353 0.194305\n0.050232 0.260712 0.194611\n0.094910 0.260132 0.194946\n0.137054 0.259644 0.195312\n0.175964 0.259216 0.195679\n0.211761 0.259430 0.196716\n0.244385 0.260437 0.198486\n0.273499 0.260956 0.199707\n0.299896 0.260986 0.200348\n0.325012 0.261139 0.201019\n0.349854 0.261230 0.201538\n0.375092 0.261383 0.202118\n0.401337 0.261536 0.202515\n0.429138 0.261658 0.202850\n0.459167 0.261719 0.203033\n0.491821 0.261627 0.202850\n0.528168 0.261200 0.202362\n0.569611 0.260712 0.201691\n0.614868 0.260223 0.200897\n0.662506 0.259766 0.200073\n0.710602 0.259247 0.199219\n0.757141 0.258911 0.198395\n0.800354 0.258789 0.197662\n0.838837 0.258728 0.197113\n0.872772 0.258972 0.196716\n0.902649 0.259247 0.196350\n0.929016 0.259827 0.196167\n0.952301 0.260315 0.196045\n0.973083 0.260986 0.195923\n0.991791 0.261719 0.195862\n1.000000 0.272614 0.208099\n1.000000 0.291992 0.230682\n0.002258 0.291748 0.197052\n0.048889 0.291107 0.197327\n0.093597 0.290497 0.197540\n0.135742 0.290009 0.197815\n0.174683 0.289520 0.198151\n0.210388 0.289673 0.199005\n0.243042 0.290649 0.200684\n0.272644 0.291656 0.202271\n0.300171 0.292450 0.203583\n0.325836 0.292572 0.204193\n0.351105 0.292755 0.204651\n0.376709 0.292938 0.205139\n0.403259 0.293152 0.205475\n0.431458 0.293243 0.205597\n0.461700 0.293121 0.205475\n0.494629 0.292877 0.205109\n0.531555 0.292633 0.204559\n0.573517 0.292206 0.203857\n0.619049 0.291687 0.202972\n0.666748 0.291199 0.202087\n0.714691 0.290894 0.201202\n0.760803 0.290558 0.200348\n0.803467 0.290314 0.199646\n0.841309 0.290314 0.199005\n0.874817 0.290527 0.198578\n0.904236 0.290985 0.198242\n0.930145 0.291321 0.197937\n0.953094 0.291809 0.197784\n0.973633 0.292572 0.197662\n0.992065 0.293243 0.197510\n1.000000 0.303009 0.209930\n1.000000 0.320435 0.232178\n0.000854 0.321808 0.199707\n0.047516 0.321136 0.199829\n0.092255 0.320526 0.200012\n0.134460 0.320038 0.200256\n0.173431 0.319641 0.200439\n0.208984 0.319672 0.201080\n0.242157 0.320648 0.202698\n0.272552 0.321716 0.204285\n0.300720 0.322815 0.205841\n0.327515 0.323822 0.207184\n0.353088 0.324066 0.207611\n0.378967 0.324280 0.207916\n0.405701 0.324341 0.207947\n0.434143 0.324371 0.207916\n0.464783 0.324310 0.207642\n0.498138 0.324097 0.207245\n0.535645 0.323853 0.206635\n0.578064 0.323486 0.205841\n0.623840 0.322937 0.204895\n0.671509 0.322632 0.204041\n0.719025 0.322174 0.203064\n0.764740 0.321960 0.202179\n0.806702 0.321899 0.201447\n0.843964 0.321869 0.200836\n0.876831 0.322113 0.200348\n0.905792 0.322266 0.199982\n0.931274 0.322754 0.199707\n0.953918 0.323212 0.199463\n0.974121 0.323822 0.199280\n0.992401 0.324463 0.199127\n1.000000 0.333374 0.211578\n1.000000 0.348785 0.233551\n0.000000 0.351318 0.202057\n0.046173 0.351105 0.202209\n0.090912 0.350586 0.202332\n0.133118 0.350159 0.202454\n0.172699 0.349762 0.202576\n0.209167 0.349701 0.203003\n0.242798 0.350769 0.204620\n0.273376 0.351868 0.206085\n0.301880 0.353058 0.207611\n0.328979 0.354187 0.208893\n0.355591 0.355225 0.210083\n0.381592 0.355408 0.210205\n0.408691 0.355469 0.210144\n0.437469 0.355560 0.210052\n0.468506 0.355560 0.209747\n0.502167 0.355438 0.209259\n0.540344 0.355133 0.208557\n0.583069 0.354828 0.207733\n0.628998 0.354401 0.206787\n0.676514 0.354004 0.205841\n0.723663 0.353638 0.204834\n0.768768 0.353333 0.203979\n0.810089 0.353241 0.203186\n0.846619 0.353271 0.202545\n0.878876 0.353546 0.202026\n0.907288 0.353851 0.201599\n0.932404 0.354126 0.201263\n0.954712 0.354614 0.201019\n0.974640 0.355072 0.200775\n0.992706 0.355682 0.200592\n1.000000 0.363617 0.213135\n1.000000 0.377045 0.234802\n0.000000 0.380310 0.204285\n0.044739 0.381378 0.204376\n0.090179 0.380859 0.204376\n0.133667 0.380432 0.204437\n0.173889 0.380066 0.204468\n0.210602 0.380127 0.204803\n0.244507 0.381226 0.206299\n0.275177 0.382355 0.207642\n0.303619 0.383392 0.208832\n0.330719 0.384430 0.209991\n0.357605 0.385559 0.211151\n0.384888 0.386780 0.212280\n0.412231 0.386963 0.212250\n0.441284 0.387024 0.212036\n0.472687 0.387085 0.211700\n0.506775 0.386993 0.211151\n0.545441 0.386780 0.210419\n0.588501 0.386414 0.209503\n0.634491 0.386047 0.208527\n0.681732 0.385620 0.207520\n0.728424 0.385254 0.206543\n0.772858 0.385132 0.205597\n0.813354 0.385101 0.204773\n0.849243 0.385010 0.204132\n0.880859 0.385162 0.203583\n0.908813 0.385437 0.203156\n0.933472 0.385834 0.202698\n0.955444 0.386108 0.202423\n0.975159 0.386475 0.202118\n0.992950 0.387085 0.201904\n1.000000 0.393982 0.214508\n1.000000 0.405731 0.235931\n0.000000 0.410339 0.206482\n0.045441 0.411987 0.206329\n0.092041 0.411530 0.206177\n0.135986 0.411163 0.206116\n0.176575 0.410889 0.206146\n0.213379 0.411011 0.206360\n0.246887 0.411987 0.207520\n0.277435 0.413025 0.208710\n0.305908 0.414124 0.209839\n0.333130 0.415222 0.210907\n0.360138 0.416443 0.212036\n0.387543 0.417633 0.213074\n0.416168 0.418762 0.214081\n0.445618 0.419037 0.213959\n0.477356 0.419067 0.213531\n0.511780 0.419006 0.212921\n0.550934 0.418701 0.212128\n0.594208 0.418457 0.211182\n0.640137 0.417999 0.210114\n0.687103 0.417664 0.209076\n0.733215 0.417358 0.208069\n0.776855 0.417145 0.207123\n0.816620 0.417084 0.206299\n0.851715 0.417084 0.205566\n0.882751 0.417114 0.204987\n0.910217 0.417450 0.204559\n0.934509 0.417633 0.204071\n0.956146 0.417969 0.203766\n0.975555 0.418365 0.203369\n0.993164 0.418762 0.203033\n1.000000 0.424652 0.215698\n1.000000 0.434570 0.236664\n0.000000 0.443268 0.208252\n0.048401 0.443176 0.207977\n0.095551 0.442780 0.207733\n0.139648 0.442474 0.207458\n0.179993 0.442108 0.207245\n0.216492 0.442261 0.207336\n0.249878 0.443298 0.208466\n0.280334 0.444366 0.209564\n0.308716 0.445526 0.210663\n0.335938 0.446655 0.211700\n0.363068 0.447845 0.212738\n0.390686 0.449097 0.213776\n0.419495 0.450256 0.214752\n0.450287 0.451538 0.215729\n0.482208 0.451569 0.215271\n0.517059 0.451538 0.214600\n0.556671 0.451233 0.213715\n0.600037 0.450958 0.212708\n0.645874 0.450592 0.211639\n0.692413 0.450256 0.210571\n0.737915 0.449890 0.209534\n0.780792 0.449738 0.208557\n0.819641 0.449677 0.207672\n0.854095 0.449585 0.206940\n0.884552 0.449677 0.206329\n0.911499 0.449921 0.205811\n0.935394 0.449982 0.205353\n0.956726 0.450317 0.204865\n0.975983 0.450653 0.204437\n0.993439 0.450806 0.203857\n1.000000 0.455750 0.216431\n1.000000 0.464020 0.237061\n0.003632 0.475586 0.209595\n0.053101 0.475159 0.209259\n0.100189 0.474701 0.208801\n0.144043 0.474274 0.208313\n0.184265 0.474030 0.207977\n0.220612 0.474335 0.208160\n0.253693 0.475433 0.209259\n0.283783 0.476501 0.210297\n0.312103 0.477722 0.211365\n0.339264 0.478882 0.212341\n0.366394 0.480072 0.213348\n0.394135 0.481262 0.214264\n0.423218 0.482452 0.215240\n0.454163 0.483673 0.216095\n0.487335 0.484802 0.216858\n0.522644 0.484680 0.216095\n0.562500 0.484436 0.215210\n0.605957 0.484131 0.214142\n0.651489 0.483826 0.213104\n0.697540 0.483490 0.211914\n0.742401 0.483154 0.210846\n0.784485 0.482941 0.209869\n0.822540 0.482788 0.208954\n0.856293 0.482697 0.208191\n0.886169 0.482758 0.207581\n0.912659 0.482849 0.206909\n0.936279 0.483093 0.206360\n0.957336 0.483215 0.205658\n0.976410 0.483490 0.205017\n0.993683 0.483826 0.204254\n1.000000 0.487671 0.216797\n1.000000 0.493988 0.237183\n0.009155 0.508209 0.210510\n0.058746 0.507751 0.209930\n0.105957 0.507324 0.209412\n0.149658 0.507019 0.208893\n0.189453 0.506866 0.208496\n0.225281 0.507385 0.208801\n0.257843 0.508453 0.209869\n0.287689 0.509613 0.210846\n0.315674 0.510834 0.211853\n0.342743 0.511963 0.212830\n0.369904 0.513214 0.213715\n0.397675 0.514404 0.214661\n0.426910 0.515656 0.215515\n0.458130 0.516876 0.216370\n0.491638 0.518127 0.217194\n0.528259 0.518982 0.217560\n0.568451 0.518738 0.216553\n0.611755 0.518433 0.215485\n0.656982 0.517944 0.214294\n0.702484 0.517609 0.213226\n0.746521 0.517334 0.212067\n0.787903 0.517090 0.211090\n0.825104 0.516785 0.210114\n0.858215 0.516632 0.209290\n0.887665 0.516785 0.208557\n0.913757 0.516724 0.207703\n0.937073 0.516785 0.206879\n0.957977 0.517090 0.206055\n0.976776 0.517273 0.205231\n0.993927 0.517548 0.204346\n1.000000 0.520538 0.217041\n1.000000 0.525360 0.237122\n0.016144 0.543335 0.211090\n0.065796 0.542877 0.210419\n0.112823 0.542511 0.209778\n0.156097 0.542236 0.209259\n0.195160 0.542145 0.208801\n0.230469 0.542847 0.209259\n0.262451 0.544006 0.210297\n0.291718 0.545258 0.211243\n0.319550 0.546478 0.212219\n0.346405 0.547699 0.213074\n0.373535 0.548981 0.213989\n0.401489 0.550232 0.214844\n0.430786 0.551422 0.215607\n0.462158 0.552673 0.216461\n0.495758 0.553925 0.217194\n0.533020 0.555145 0.217926\n0.574158 0.555664 0.217834\n0.617310 0.555237 0.216736\n0.662140 0.554688 0.215515\n0.707001 0.554321 0.214325\n0.750305 0.553925 0.213196\n0.790863 0.553528 0.212158\n0.827515 0.553284 0.211151\n0.860107 0.553131 0.210052\n0.889099 0.553040 0.209076\n0.914917 0.553101 0.208099\n0.937958 0.553131 0.207123\n0.958557 0.553345 0.206146\n0.977234 0.553436 0.205261\n0.994202 0.553680 0.204285\n1.000000 0.555542 0.217072\n1.000000 0.558929 0.237030\n0.024323 0.581238 0.211273\n0.074066 0.580750 0.210663\n0.120605 0.580353 0.209961\n0.163208 0.580139 0.209442\n0.201324 0.580017 0.209015\n0.235931 0.580963 0.209625\n0.267212 0.582153 0.210602\n0.296021 0.583435 0.211456\n0.323486 0.584656 0.212341\n0.350250 0.585876 0.213196\n0.377258 0.587158 0.214020\n0.405151 0.588348 0.214783\n0.434540 0.589569 0.215576\n0.466003 0.590790 0.216339\n0.499756 0.591919 0.217072\n0.537292 0.593140 0.217743\n0.578979 0.594299 0.218353\n0.622559 0.594330 0.217834\n0.666840 0.593781 0.216614\n0.711090 0.593231 0.215393\n0.753845 0.592590 0.214142\n0.793793 0.592255 0.212860\n0.829865 0.591919 0.211609\n0.862000 0.591766 0.210419\n0.890564 0.591644 0.209259\n0.916016 0.591461 0.208160\n0.938751 0.591644 0.207123\n0.959167 0.591644 0.206055\n0.977600 0.591827 0.205109\n0.994446 0.592041 0.204163\n1.000000 0.592773 0.217102\n1.000000 0.594330 0.236938\n0.033844 0.621216 0.211426\n0.083099 0.620697 0.210663\n0.129028 0.620331 0.209961\n0.170624 0.620026 0.209503\n0.207611 0.619934 0.208954\n0.241516 0.621094 0.209839\n0.272064 0.622284 0.210724\n0.300293 0.623505 0.211548\n0.327393 0.624695 0.212402\n0.354034 0.625824 0.213165\n0.380920 0.627045 0.213989\n0.408813 0.628174 0.214722\n0.438263 0.629333 0.215424\n0.469788 0.630432 0.216125\n0.503510 0.631561 0.216736\n0.541168 0.632660 0.217407\n0.582703 0.633698 0.217987\n0.626831 0.634735 0.218506\n0.671173 0.634338 0.217560\n0.715027 0.633575 0.216064\n0.757263 0.632965 0.214600\n0.796661 0.632416 0.213165\n0.832153 0.632111 0.211761\n0.863831 0.631866 0.210480\n0.891968 0.631714 0.209229\n0.917114 0.631531 0.208099\n0.939575 0.631622 0.206970\n0.959747 0.631683 0.205933\n0.977997 0.631561 0.204956\n0.994720 0.631653 0.204071\n1.000000 0.631226 0.217163\n1.000000 0.630951 0.236938\n0.044220 0.662506 0.211395\n0.092804 0.661987 0.210541\n0.137787 0.661560 0.209930\n0.178253 0.661194 0.209320\n0.214142 0.661255 0.209045\n0.247162 0.662384 0.209930\n0.276825 0.663513 0.210754\n0.304657 0.664642 0.211548\n0.331146 0.665771 0.212311\n0.357574 0.666840 0.213104\n0.384430 0.667938 0.213776\n0.412354 0.669006 0.214508\n0.441772 0.670044 0.215118\n0.473145 0.671112 0.215820\n0.506897 0.671997 0.216370\n0.544464 0.673004 0.216919\n0.585968 0.673920 0.217346\n0.630005 0.674866 0.217682\n0.675415 0.675781 0.217957\n0.718933 0.675049 0.216339\n0.760651 0.674347 0.214722\n0.799500 0.673706 0.213165\n0.834412 0.673248 0.211731\n0.865601 0.672852 0.210358\n0.893372 0.672668 0.209076\n0.918182 0.672394 0.207916\n0.940369 0.672455 0.206818\n0.960297 0.672302 0.205811\n0.978424 0.672302 0.204865\n0.994904 0.672333 0.204041\n1.000000 0.670349 0.217377\n1.000000 0.668152 0.237091\n0.055206 0.704315 0.211243\n0.102844 0.703705 0.210510\n0.146637 0.703278 0.209747\n0.185760 0.702850 0.209076\n0.220703 0.703003 0.209076\n0.252533 0.704102 0.209900\n0.281403 0.705109 0.210632\n0.308716 0.706146 0.211426\n0.334930 0.707153 0.212158\n0.361084 0.708099 0.212860\n0.387787 0.709106 0.213501\n0.415466 0.709991 0.214172\n0.444855 0.710876 0.214752\n0.476166 0.711792 0.215332\n0.509949 0.712646 0.215759\n0.547821 0.713501 0.216095\n0.589264 0.714325 0.216370\n0.633209 0.715118 0.216461\n0.678223 0.715973 0.216522\n0.722717 0.716614 0.216339\n0.763977 0.715759 0.214661\n0.802277 0.715118 0.213043\n0.836609 0.714539 0.211548\n0.867340 0.714050 0.210144\n0.894714 0.713745 0.208893\n0.919220 0.713409 0.207733\n0.941101 0.713348 0.206696\n0.960846 0.713135 0.205780\n0.978699 0.712952 0.204956\n0.995087 0.713013 0.204193\n1.000000 0.709656 0.217834\n1.000000 0.705597 0.237579\n0.066345 0.745728 0.211029\n0.112915 0.745056 0.210266\n0.155365 0.744537 0.209442\n0.192963 0.744019 0.208893\n0.226807 0.744385 0.209045\n0.257629 0.745270 0.209808\n0.285950 0.746185 0.210510\n0.312653 0.747040 0.211273\n0.338440 0.747925 0.211884\n0.364227 0.748810 0.212494\n0.390778 0.749603 0.213165\n0.418274 0.750305 0.213684\n0.447662 0.751129 0.214142\n0.479126 0.751892 0.214539\n0.513153 0.752655 0.214783\n0.551025 0.753357 0.214905\n0.592590 0.754120 0.214966\n0.636353 0.754822 0.215027\n0.681061 0.755554 0.214996\n0.725342 0.756256 0.214935\n0.767242 0.756622 0.214417\n0.804901 0.755768 0.212769\n0.838776 0.755127 0.211304\n0.868988 0.754608 0.209961\n0.896027 0.754181 0.208740\n0.920135 0.753754 0.207672\n0.941803 0.753571 0.206757\n0.961334 0.753326 0.205933\n0.979034 0.753174 0.205261\n0.995300 0.753021 0.204712\n1.000000 0.748260 0.218628\n1.000000 0.742523 0.238464\n0.077576 0.785919 0.210571\n0.122772 0.785156 0.209747\n0.163727 0.784515 0.209076\n0.199860 0.783966 0.208435\n0.232666 0.784424 0.208954\n0.262451 0.785187 0.209625\n0.289978 0.785950 0.210297\n0.316010 0.786682 0.210938\n0.341492 0.787354 0.211578\n0.367126 0.788086 0.212158\n0.393341 0.788727 0.212616\n0.421082 0.789368 0.212952\n0.450531 0.790009 0.213226\n0.482178 0.790680 0.213379\n0.516388 0.791290 0.213470\n0.554474 0.791962 0.213501\n0.595856 0.792542 0.213470\n0.639526 0.793213 0.213409\n0.683899 0.793793 0.213287\n0.727631 0.794403 0.213226\n0.769440 0.795013 0.213165\n0.807465 0.795166 0.212585\n0.840759 0.794403 0.211151\n0.870605 0.793732 0.209869\n0.897247 0.793365 0.208771\n0.921051 0.792847 0.207855\n0.942444 0.792450 0.207062\n0.961792 0.792145 0.206421\n0.979340 0.791962 0.205933\n0.995453 0.791687 0.205597\n1.000000 0.785614 0.219849\n1.000000 0.778137 0.239868\n0.088470 0.824036 0.210388\n0.132202 0.823242 0.209442\n0.171478 0.822510 0.208679\n0.206177 0.821869 0.208160\n0.238068 0.822449 0.208771\n0.266846 0.823029 0.209412\n0.293640 0.823639 0.210052\n0.319122 0.824219 0.210602\n0.344360 0.824768 0.211121\n0.369843 0.825348 0.211456\n0.396179 0.825867 0.211731\n0.423859 0.826416 0.211884\n0.453522 0.826965 0.211945\n0.485229 0.827484 0.212036\n0.519623 0.828003 0.211975\n0.557861 0.828522 0.211914\n0.599121 0.829041 0.211853\n0.642670 0.829620 0.211761\n0.686493 0.830078 0.211700\n0.729706 0.830597 0.211609\n0.771027 0.831116 0.211578\n0.809052 0.831543 0.211548\n0.842651 0.831726 0.211151\n0.872009 0.830933 0.210022\n0.898315 0.830383 0.209045\n0.921844 0.829926 0.208252\n0.943054 0.829468 0.207733\n0.962158 0.828918 0.207275\n0.979584 0.828705 0.207092\n0.995544 0.828369 0.207092\n1.000000 0.821014 0.221619\n1.000000 0.812225 0.242249\n0.098877 0.859528 0.209930\n0.141052 0.858643 0.209229\n0.178650 0.857849 0.208374\n0.212067 0.857330 0.207947\n0.242706 0.857788 0.208557\n0.270599 0.858246 0.209137\n0.296875 0.858704 0.209625\n0.322144 0.859131 0.210022\n0.347076 0.859558 0.210266\n0.372559 0.860016 0.210449\n0.398956 0.860474 0.210541\n0.426819 0.860901 0.210571\n0.456573 0.861328 0.210571\n0.488251 0.861755 0.210510\n0.522858 0.862183 0.210449\n0.561127 0.862610 0.210358\n0.602386 0.862976 0.210297\n0.645630 0.863403 0.210236\n0.689117 0.863800 0.210144\n0.731842 0.864227 0.210144\n0.772461 0.864624 0.210205\n0.809967 0.865021 0.210327\n0.843567 0.865387 0.210480\n0.873352 0.865509 0.210419\n0.899323 0.864807 0.209717\n0.922638 0.864197 0.209137\n0.943512 0.863708 0.208893\n0.962494 0.863159 0.208740\n0.979736 0.862854 0.208801\n0.995636 0.862640 0.209595\n1.000000 0.854523 0.225403\n1.000000 0.844574 0.246887\n0.108398 0.891815 0.209564\n0.149017 0.890900 0.208801\n0.184998 0.890015 0.207947\n0.217163 0.889587 0.207764\n0.247009 0.889923 0.208282\n0.274292 0.890289 0.208649\n0.300140 0.890625 0.208893\n0.325134 0.890991 0.209106\n0.349976 0.891327 0.209198\n0.375427 0.891663 0.209259\n0.401825 0.891968 0.209229\n0.429718 0.892334 0.209198\n0.459564 0.892639 0.209106\n0.491394 0.892975 0.209045\n0.526093 0.893280 0.208984\n0.564423 0.893616 0.208923\n0.605560 0.893921 0.208832\n0.648438 0.894257 0.208832\n0.691498 0.894562 0.208893\n0.733826 0.894867 0.208984\n0.773956 0.895172 0.209167\n0.810852 0.895447 0.209473\n0.843994 0.895752 0.209869\n0.873779 0.896027 0.210358\n0.900208 0.896149 0.210815\n0.923248 0.895569 0.210541\n0.943970 0.894928 0.210541\n0.962799 0.894501 0.211151\n0.979950 0.894165 0.212616\n0.995636 0.893921 0.214447\n1.000000 0.884918 0.230713\n1.000000 0.873718 0.252563\n0.117004 0.920593 0.209198\n0.155945 0.919617 0.208588\n0.190582 0.918732 0.207672\n0.222076 0.918396 0.207367\n0.251038 0.918732 0.207642\n0.277863 0.918945 0.207886\n0.303467 0.919220 0.207977\n0.328247 0.919464 0.208008\n0.353027 0.919739 0.208008\n0.378448 0.919983 0.207977\n0.404755 0.920197 0.207886\n0.432800 0.920441 0.207794\n0.462585 0.920715 0.207733\n0.494415 0.920898 0.207672\n0.529297 0.921173 0.207642\n0.567657 0.921417 0.207611\n0.608582 0.921600 0.207672\n0.651123 0.921844 0.207764\n0.693909 0.922089 0.207977\n0.735687 0.922302 0.208252\n0.775269 0.922485 0.208618\n0.811493 0.922699 0.209106\n0.844391 0.922913 0.209808\n0.873779 0.923126 0.210541\n0.899994 0.923309 0.211456\n0.923798 0.923615 0.212921\n0.944427 0.923004 0.214294\n0.963013 0.922607 0.215973\n0.979980 0.922211 0.218109\n0.995605 0.921753 0.220490\n1.000000 0.912201 0.236969\n1.000000 0.900085 0.259216\n0.124664 0.946136 0.208923\n0.162476 0.945160 0.207916\n0.196045 0.944244 0.206848\n0.226837 0.944122 0.206665\n0.255188 0.944275 0.206787\n0.281525 0.944489 0.206848\n0.306671 0.944672 0.206848\n0.331238 0.944855 0.206787\n0.355988 0.945038 0.206726\n0.381439 0.945221 0.206665\n0.407867 0.945374 0.206604\n0.435730 0.945526 0.206543\n0.465607 0.945709 0.206482\n0.497498 0.945892 0.206451\n0.532349 0.946045 0.206543\n0.570648 0.946228 0.206635\n0.611481 0.946381 0.206787\n0.653687 0.946564 0.207092\n0.695953 0.946716 0.207489\n0.737213 0.946869 0.208008\n0.776428 0.946991 0.208618\n0.812286 0.947113 0.209412\n0.844482 0.947235 0.210327\n0.873718 0.947418 0.211761\n0.899963 0.947632 0.214050\n0.923492 0.947845 0.216644\n0.944611 0.947998 0.219604\n0.963135 0.947632 0.221985\n0.979919 0.946960 0.224609\n0.995453 0.946442 0.227478\n1.000000 0.936676 0.244049\n1.000000 0.923828 0.266510\n0.132050 0.968994 0.208221\n0.168793 0.968018 0.206909\n0.201324 0.967163 0.205872\n0.231506 0.967163 0.205750\n0.259277 0.967255 0.205750\n0.285248 0.967407 0.205688\n0.310028 0.967499 0.205627\n0.334473 0.967621 0.205566\n0.358917 0.967773 0.205505\n0.384308 0.967896 0.205444\n0.410736 0.967987 0.205414\n0.438660 0.968140 0.205383\n0.468506 0.968231 0.205444\n0.500427 0.968323 0.205536\n0.535309 0.968414 0.205688\n0.573486 0.968536 0.206024\n0.614044 0.968628 0.206390\n0.655884 0.968719 0.206879\n0.697723 0.968842 0.207520\n0.738647 0.968903 0.208313\n0.777252 0.969025 0.209259\n0.812836 0.969086 0.210602\n0.845001 0.969238 0.212952\n0.873749 0.969360 0.215546\n0.899658 0.969421 0.218414\n0.922729 0.969482 0.221588\n0.943634 0.969543 0.225067\n0.962677 0.969635 0.228607\n0.979736 0.969238 0.231934\n0.995239 0.968597 0.235107\n1.000000 0.958740 0.251709\n1.000000 0.945435 0.274353\n0.139282 0.989594 0.207275\n0.174927 0.988647 0.205780\n0.206604 0.987854 0.204681\n0.236267 0.987946 0.204651\n0.263428 0.988007 0.204590\n0.288757 0.988068 0.204559\n0.313293 0.988159 0.204468\n0.337494 0.988220 0.204376\n0.361969 0.988281 0.204346\n0.387207 0.988403 0.204346\n0.413391 0.988464 0.204437\n0.441498 0.988495 0.204529\n0.471161 0.988525 0.204681\n0.503143 0.988647 0.204987\n0.538086 0.988678 0.205383\n0.576111 0.988739 0.205872\n0.616394 0.988800 0.206543\n0.657867 0.988800 0.207275\n0.699432 0.988892 0.208191\n0.739990 0.988892 0.209564\n0.778442 0.988983 0.211853\n0.813507 0.989044 0.214447\n0.845123 0.989044 0.217316\n0.873352 0.989044 0.220551\n0.898834 0.989044 0.223877\n0.921844 0.989044 0.227539\n0.942780 0.989044 0.231384\n0.961761 0.989014 0.235321\n0.979126 0.989044 0.239471\n0.995056 0.988800 0.243378\n1.000000 0.978699 0.259857\n1.000000 0.964905 0.282440\n0.158295 1.000000 0.216064\n0.191315 1.000000 0.214264\n0.220947 1.000000 0.213104\n0.249176 1.000000 0.213074\n0.275024 1.000000 0.213074\n0.299347 1.000000 0.213013\n0.323059 1.000000 0.213043\n0.346436 1.000000 0.213104\n0.370239 1.000000 0.213196\n0.394684 1.000000 0.213348\n0.420441 1.000000 0.213562\n0.447632 1.000000 0.213867\n0.476654 1.000000 0.214264\n0.507751 1.000000 0.214813\n0.541962 1.000000 0.215454\n0.578918 1.000000 0.216156\n0.618042 1.000000 0.217133\n0.658600 1.000000 0.218475\n0.699219 1.000000 0.220703\n0.738434 1.000000 0.223267\n0.775513 1.000000 0.226105\n0.809143 1.000000 0.229126\n0.839691 1.000000 0.232513\n0.867157 1.000000 0.236053\n0.892151 1.000000 0.239746\n0.914734 1.000000 0.243683\n0.935394 1.000000 0.247620\n0.954285 1.000000 0.251801\n0.971680 1.000000 0.256042\n0.987762 1.000000 0.260315\n1.000000 0.997101 0.268250\n1.000000 0.983124 0.291595\n0.190369 1.000000 0.237152\n0.221863 1.000000 0.237061\n0.249786 1.000000 0.237000\n0.275421 1.000000 0.236938\n0.298920 1.000000 0.236908\n0.321381 1.000000 0.236908\n0.343170 1.000000 0.236969\n0.364868 1.000000 0.237030\n0.386902 1.000000 0.237244\n0.409729 1.000000 0.237488\n0.433746 1.000000 0.237854\n0.459137 1.000000 0.238281\n0.486359 1.000000 0.238892\n0.515656 1.000000 0.239624\n0.548004 1.000000 0.240509\n0.583221 1.000000 0.241699\n0.620941 1.000000 0.243835\n0.658875 1.000000 0.246307\n0.696472 1.000000 0.248993\n0.733063 1.000000 0.251984\n0.767365 1.000000 0.255219\n0.798950 1.000000 0.258545\n0.827789 1.000000 0.262207\n0.854126 1.000000 0.266022\n0.877930 1.000000 0.269867\n0.899841 1.000000 0.273895\n0.919769 1.000000 0.277893\n0.938202 1.000000 0.282166\n0.955231 1.000000 0.286377\n0.971130 1.000000 0.291321\n0.985870 1.000000 0.297241\n1.000000 1.000000 0.303650\n0.000000 0.002075 0.173492\n0.047516 0.003052 0.179596\n0.095123 0.006439 0.184753\n0.139893 0.010040 0.190338\n0.181305 0.013824 0.196106\n0.218048 0.017029 0.201385\n0.250183 0.019653 0.205994\n0.279205 0.022339 0.210480\n0.306000 0.024841 0.214508\n0.331238 0.025940 0.216370\n0.355774 0.026550 0.217621\n0.380310 0.026978 0.218750\n0.405640 0.027283 0.219757\n0.432251 0.027588 0.220703\n0.460938 0.027679 0.221497\n0.492035 0.027618 0.222015\n0.526642 0.027374 0.222321\n0.566193 0.026917 0.222534\n0.609802 0.026367 0.222504\n0.656036 0.025787 0.222351\n0.703278 0.025208 0.222290\n0.749725 0.024750 0.222015\n0.793640 0.024475 0.222015\n0.833496 0.024353 0.222137\n0.869049 0.024414 0.222198\n0.900482 0.024811 0.222412\n0.928253 0.025360 0.222748\n0.952820 0.026184 0.223145\n0.974762 0.027069 0.223572\n0.994385 0.027802 0.223816\n1.000000 0.047302 0.234985\n1.000000 0.074219 0.250854\n0.000000 0.042267 0.184418\n0.047485 0.043762 0.188873\n0.095032 0.047455 0.194702\n0.139709 0.051117 0.200684\n0.180969 0.054718 0.206329\n0.217926 0.058014 0.211578\n0.249939 0.060089 0.215271\n0.278717 0.061157 0.217316\n0.305145 0.061554 0.218445\n0.330109 0.061981 0.219543\n0.354523 0.062408 0.220734\n0.378998 0.062714 0.221802\n0.404358 0.062927 0.222717\n0.431091 0.063110 0.223572\n0.459839 0.063171 0.224213\n0.490936 0.063049 0.224670\n0.525513 0.062714 0.224976\n0.565033 0.062286 0.224945\n0.608612 0.061737 0.224915\n0.654816 0.061188 0.224792\n0.702057 0.060608 0.224426\n0.748596 0.060211 0.224274\n0.792908 0.059998 0.224243\n0.832977 0.059906 0.223969\n0.868561 0.060181 0.224274\n0.899963 0.060608 0.224457\n0.927734 0.061249 0.224487\n0.952240 0.061768 0.224792\n0.974060 0.062439 0.224762\n0.993622 0.063293 0.225128\n1.000000 0.081299 0.236115\n1.000000 0.107666 0.253113\n0.001160 0.083527 0.196228\n0.049011 0.085236 0.200439\n0.095093 0.087402 0.204987\n0.139679 0.090668 0.210327\n0.180725 0.093872 0.215302\n0.217682 0.095947 0.218414\n0.249176 0.096161 0.219421\n0.277557 0.096405 0.220490\n0.303833 0.096710 0.221588\n0.328705 0.097046 0.222595\n0.353149 0.097290 0.223602\n0.377808 0.097565 0.224548\n0.403229 0.097778 0.225372\n0.429993 0.097839 0.226166\n0.458710 0.097809 0.226715\n0.489868 0.097656 0.227112\n0.524414 0.097382 0.227356\n0.563904 0.096924 0.227295\n0.607422 0.096436 0.227203\n0.653687 0.095917 0.226929\n0.701416 0.095398 0.226532\n0.748444 0.095062 0.226349\n0.792786 0.094849 0.226105\n0.832916 0.094910 0.225922\n0.868439 0.095215 0.225922\n0.899719 0.095459 0.225800\n0.927368 0.095856 0.225769\n0.951721 0.096466 0.225922\n0.973450 0.097137 0.225983\n0.992950 0.098083 0.226105\n1.000000 0.114716 0.237427\n1.000000 0.140472 0.255219\n0.003082 0.124054 0.207916\n0.050781 0.125427 0.211700\n0.096405 0.126801 0.215057\n0.139526 0.127594 0.217133\n0.179962 0.128998 0.219269\n0.216339 0.130371 0.221436\n0.247803 0.130554 0.222534\n0.276154 0.130737 0.223511\n0.302399 0.130920 0.224457\n0.327515 0.131134 0.225403\n0.351990 0.131348 0.226379\n0.376648 0.131531 0.227234\n0.402100 0.131653 0.228058\n0.428864 0.131714 0.228699\n0.457672 0.131683 0.229156\n0.488800 0.131561 0.229492\n0.523346 0.131348 0.229553\n0.562866 0.130890 0.229492\n0.606964 0.130402 0.229279\n0.653839 0.129913 0.228943\n0.701752 0.129547 0.228546\n0.748932 0.129242 0.228210\n0.793335 0.129150 0.227936\n0.833191 0.128967 0.227448\n0.868530 0.129028 0.227295\n0.899628 0.129333 0.227142\n0.927094 0.129822 0.226990\n0.951294 0.130524 0.227112\n0.972931 0.131195 0.226990\n0.992310 0.132050 0.227142\n1.000000 0.147369 0.238342\n1.000000 0.172516 0.257202\n0.005005 0.162598 0.218201\n0.052277 0.162842 0.219879\n0.097107 0.162537 0.220459\n0.139069 0.162140 0.221008\n0.178406 0.162537 0.222260\n0.214600 0.163696 0.224274\n0.246368 0.164032 0.225433\n0.274841 0.164062 0.226318\n0.301178 0.164185 0.227264\n0.326324 0.164276 0.228119\n0.350830 0.164490 0.228973\n0.375519 0.164673 0.229675\n0.400940 0.164795 0.230438\n0.427765 0.164886 0.231018\n0.456573 0.164825 0.231445\n0.487854 0.164764 0.231720\n0.522919 0.164490 0.231750\n0.563141 0.164124 0.231598\n0.607544 0.163696 0.231201\n0.654755 0.163330 0.230835\n0.702942 0.162933 0.230408\n0.749939 0.162506 0.229675\n0.794067 0.162231 0.229095\n0.833740 0.162079 0.228668\n0.868835 0.162262 0.228333\n0.899719 0.162567 0.228088\n0.926971 0.163055 0.228058\n0.951019 0.163727 0.227966\n0.972443 0.164429 0.228027\n0.991638 0.165314 0.227936\n1.000000 0.179260 0.239105\n1.000000 0.203735 0.259125\n0.005829 0.197479 0.223633\n0.052368 0.196991 0.224182\n0.096771 0.196564 0.224640\n0.138550 0.196136 0.225159\n0.177338 0.195740 0.225739\n0.213135 0.196167 0.226990\n0.245117 0.196564 0.228180\n0.273621 0.196594 0.228973\n0.300018 0.196625 0.229828\n0.325165 0.196808 0.230621\n0.349670 0.196899 0.231445\n0.374359 0.197052 0.232117\n0.399841 0.197174 0.232727\n0.426758 0.197266 0.233246\n0.456024 0.197266 0.233582\n0.487946 0.197174 0.233734\n0.523499 0.196991 0.233673\n0.564148 0.196686 0.233490\n0.609039 0.196320 0.233002\n0.656311 0.195740 0.232361\n0.704407 0.195160 0.231567\n0.751343 0.194763 0.230865\n0.795258 0.194489 0.230133\n0.834625 0.194489 0.229675\n0.869354 0.194641 0.229431\n0.899963 0.195007 0.229156\n0.926941 0.195526 0.228912\n0.950806 0.196167 0.228912\n0.972015 0.196869 0.228943\n0.991089 0.197693 0.228760\n1.000000 0.210297 0.239685\n1.000000 0.234100 0.260895\n0.005432 0.230560 0.227722\n0.051697 0.230042 0.228180\n0.096191 0.229492 0.228668\n0.138306 0.229034 0.229065\n0.177185 0.228638 0.229553\n0.212341 0.228302 0.230103\n0.243896 0.228210 0.230804\n0.272400 0.228210 0.231537\n0.298828 0.228271 0.232239\n0.324005 0.228363 0.233032\n0.348511 0.228546 0.233673\n0.373291 0.228668 0.234283\n0.399231 0.228851 0.234863\n0.426788 0.228943 0.235352\n0.456482 0.228943 0.235535\n0.488892 0.228943 0.235596\n0.524963 0.228790 0.235413\n0.565887 0.228271 0.234863\n0.610962 0.227753 0.234222\n0.658417 0.227173 0.233398\n0.706451 0.226685 0.232666\n0.753265 0.226318 0.231903\n0.796783 0.226105 0.231201\n0.835785 0.226105 0.230774\n0.870148 0.226288 0.230347\n0.900330 0.226562 0.229950\n0.927032 0.227081 0.229858\n0.950592 0.227722 0.229614\n0.971588 0.228363 0.229553\n0.990509 0.229065 0.229492\n1.000000 0.240601 0.240204\n1.000000 0.263550 0.262543\n0.003601 0.261658 0.230682\n0.050201 0.261108 0.231079\n0.094879 0.260529 0.231415\n0.136993 0.260010 0.231812\n0.175964 0.259583 0.232208\n0.211182 0.259277 0.232666\n0.243011 0.259460 0.233643\n0.272156 0.260040 0.234955\n0.298553 0.260040 0.235474\n0.323700 0.260162 0.236115\n0.348755 0.260376 0.236786\n0.374084 0.260498 0.237274\n0.400391 0.260681 0.237762\n0.428345 0.260834 0.238098\n0.458466 0.260864 0.238220\n0.491150 0.260681 0.238007\n0.527527 0.260376 0.237579\n0.569031 0.259827 0.236908\n0.614349 0.259430 0.236206\n0.661987 0.258942 0.235291\n0.709991 0.258423 0.234497\n0.756470 0.258118 0.233704\n0.799561 0.257904 0.233032\n0.837982 0.257935 0.232513\n0.871887 0.258179 0.232147\n0.901733 0.258606 0.231842\n0.928040 0.258972 0.231598\n0.951324 0.259644 0.231476\n0.972107 0.260254 0.231384\n0.990814 0.261108 0.231354\n1.000000 0.271393 0.242004\n1.000000 0.292419 0.264160\n0.002228 0.292053 0.233490\n0.048859 0.291443 0.233765\n0.093536 0.290863 0.234039\n0.135712 0.290344 0.234283\n0.174683 0.289948 0.234711\n0.209930 0.289612 0.235077\n0.241669 0.289703 0.235809\n0.271301 0.290741 0.237457\n0.299042 0.291534 0.238739\n0.324829 0.291656 0.239319\n0.350159 0.291931 0.239868\n0.375793 0.292084 0.240295\n0.402527 0.292358 0.240662\n0.430664 0.292389 0.240692\n0.461029 0.292206 0.240540\n0.494141 0.292114 0.240265\n0.531097 0.291748 0.239777\n0.573059 0.291351 0.238953\n0.618713 0.290833 0.238190\n0.666321 0.290375 0.237366\n0.714142 0.290070 0.236450\n0.760223 0.289734 0.235626\n0.802734 0.289612 0.234955\n0.840576 0.289581 0.234436\n0.873932 0.289886 0.233978\n0.903290 0.290131 0.233643\n0.929199 0.290619 0.233429\n0.952148 0.291229 0.233246\n0.972626 0.291779 0.233093\n0.991089 0.292419 0.233002\n1.000000 0.302155 0.243805\n1.000000 0.320984 0.265656\n0.000854 0.322144 0.236084\n0.047516 0.321533 0.236267\n0.092255 0.320923 0.236511\n0.134430 0.320374 0.236664\n0.173401 0.320007 0.236969\n0.208679 0.319733 0.237305\n0.241089 0.319763 0.237823\n0.271515 0.320831 0.239441\n0.299744 0.321930 0.240936\n0.326691 0.323029 0.242310\n0.352356 0.323303 0.242767\n0.378143 0.323395 0.242920\n0.404968 0.323456 0.243011\n0.433533 0.323486 0.242950\n0.464264 0.323456 0.242737\n0.497742 0.323303 0.242340\n0.535248 0.322998 0.241730\n0.577667 0.322662 0.241028\n0.623505 0.322266 0.240143\n0.671051 0.321777 0.239227\n0.718597 0.321350 0.238312\n0.764130 0.321106 0.237549\n0.806000 0.320984 0.236786\n0.843170 0.321014 0.236145\n0.875977 0.321289 0.235748\n0.904816 0.321686 0.235352\n0.930298 0.322052 0.235077\n0.952942 0.322571 0.234863\n0.973145 0.323120 0.234711\n0.991425 0.323578 0.234558\n1.000000 0.332428 0.245422\n1.000000 0.349213 0.266968\n0.000000 0.351624 0.238342\n0.046143 0.351501 0.238647\n0.090881 0.350952 0.238800\n0.133087 0.350464 0.238922\n0.173035 0.350128 0.239075\n0.209290 0.349884 0.239319\n0.241913 0.349915 0.239746\n0.272614 0.351044 0.241241\n0.301117 0.352234 0.242706\n0.328247 0.353302 0.243988\n0.354919 0.354431 0.245148\n0.380951 0.354553 0.245209\n0.408112 0.354675 0.245209\n0.436920 0.354736 0.245087\n0.468018 0.354706 0.244812\n0.501862 0.354614 0.244385\n0.540009 0.354340 0.243683\n0.582764 0.353973 0.242859\n0.628693 0.353546 0.241974\n0.676117 0.353180 0.240997\n0.723267 0.352905 0.240112\n0.768250 0.352661 0.239258\n0.809326 0.352539 0.238464\n0.845825 0.352570 0.237885\n0.878021 0.352722 0.237396\n0.906372 0.353027 0.237000\n0.931458 0.353485 0.236664\n0.953674 0.353882 0.236389\n0.973663 0.354370 0.236145\n0.991699 0.354950 0.235992\n1.000000 0.362671 0.246918\n1.000000 0.377533 0.268250\n0.000000 0.380646 0.240387\n0.044708 0.381714 0.240875\n0.090607 0.381195 0.240845\n0.134186 0.380768 0.240906\n0.174591 0.380493 0.240997\n0.211029 0.380310 0.241119\n0.243835 0.380463 0.241486\n0.274445 0.381500 0.242737\n0.302826 0.382538 0.243896\n0.330109 0.383606 0.245056\n0.356995 0.384766 0.246185\n0.384277 0.385956 0.247253\n0.411743 0.386169 0.247284\n0.440887 0.386261 0.247101\n0.472351 0.386292 0.246765\n0.506531 0.386169 0.246277\n0.545197 0.385925 0.245514\n0.588287 0.385620 0.244659\n0.634277 0.385254 0.243744\n0.681366 0.384857 0.242737\n0.727997 0.384552 0.241730\n0.772339 0.384430 0.240875\n0.812622 0.384247 0.240112\n0.848450 0.384308 0.239410\n0.879944 0.384369 0.238892\n0.907837 0.384644 0.238464\n0.932526 0.384979 0.238098\n0.954437 0.385284 0.237793\n0.974121 0.385773 0.237518\n0.991974 0.386200 0.237305\n1.000000 0.393127 0.248352\n1.000000 0.406097 0.269287\n0.000000 0.411102 0.242554\n0.046143 0.412323 0.242798\n0.092712 0.411865 0.242676\n0.136810 0.411530 0.242584\n0.177460 0.411316 0.242584\n0.213745 0.411133 0.242493\n0.246277 0.411163 0.242645\n0.276825 0.412231 0.243805\n0.305298 0.413330 0.244904\n0.332611 0.414459 0.245972\n0.359589 0.415619 0.247101\n0.387024 0.416840 0.248138\n0.415833 0.418060 0.249115\n0.445282 0.418243 0.248962\n0.477020 0.418304 0.248566\n0.511627 0.418182 0.247986\n0.550720 0.417938 0.247223\n0.594025 0.417664 0.246307\n0.639893 0.417267 0.245331\n0.686676 0.416931 0.244263\n0.732788 0.416687 0.243286\n0.776306 0.416382 0.242340\n0.815826 0.416260 0.241547\n0.850891 0.416260 0.240906\n0.881866 0.416351 0.240326\n0.909210 0.416595 0.239838\n0.933472 0.416901 0.239441\n0.955109 0.417175 0.239136\n0.974579 0.417450 0.238770\n0.992188 0.417877 0.238403\n1.000000 0.423859 0.249420\n1.000000 0.434998 0.269958\n0.000305 0.444031 0.244629\n0.049469 0.443604 0.244354\n0.096649 0.443176 0.244171\n0.140686 0.442810 0.243958\n0.181030 0.442505 0.243683\n0.217072 0.442352 0.243408\n0.249451 0.442505 0.243561\n0.279938 0.443604 0.244690\n0.308228 0.444763 0.245789\n0.335571 0.445923 0.246826\n0.362579 0.447083 0.247803\n0.390320 0.448303 0.248840\n0.419220 0.449554 0.249786\n0.449982 0.450775 0.250763\n0.481995 0.450836 0.250305\n0.516968 0.450714 0.249634\n0.556519 0.450470 0.248810\n0.599915 0.450195 0.247803\n0.645660 0.449860 0.246826\n0.691986 0.449463 0.245728\n0.737396 0.449188 0.244720\n0.780151 0.448944 0.243774\n0.818878 0.448853 0.242920\n0.853302 0.448944 0.242218\n0.883606 0.448944 0.241638\n0.910522 0.449036 0.241119\n0.934387 0.449249 0.240662\n0.955750 0.449493 0.240234\n0.974945 0.449860 0.239685\n0.992432 0.450134 0.239105\n1.000000 0.455139 0.250031\n1.000000 0.464233 0.270264\n0.004883 0.475983 0.245972\n0.054413 0.475464 0.245605\n0.101410 0.475006 0.245178\n0.145386 0.474609 0.244690\n0.185547 0.474426 0.244446\n0.221161 0.474335 0.244110\n0.253265 0.474701 0.244354\n0.283417 0.475830 0.245422\n0.311646 0.476959 0.246429\n0.338898 0.478149 0.247437\n0.365967 0.479309 0.248413\n0.393738 0.480530 0.249390\n0.422943 0.481781 0.250275\n0.453857 0.483002 0.251129\n0.487183 0.484131 0.251923\n0.522522 0.484009 0.251190\n0.562378 0.483673 0.250214\n0.605804 0.483429 0.249237\n0.651245 0.483093 0.248199\n0.697113 0.482727 0.247070\n0.741852 0.482391 0.246063\n0.783813 0.482147 0.245056\n0.821716 0.482025 0.244141\n0.855377 0.481934 0.243500\n0.885162 0.481995 0.242828\n0.911652 0.482056 0.242188\n0.935211 0.482208 0.241547\n0.956329 0.482361 0.240875\n0.975372 0.482758 0.240173\n0.992676 0.482941 0.239410\n1.000000 0.487030 0.250397\n1.000000 0.494354 0.270355\n0.010651 0.508545 0.246887\n0.060303 0.508087 0.246338\n0.107361 0.507660 0.245789\n0.151184 0.507385 0.245209\n0.190796 0.507233 0.244965\n0.225800 0.507233 0.244690\n0.257660 0.507751 0.245026\n0.287354 0.508850 0.245941\n0.315308 0.510071 0.246979\n0.342407 0.511261 0.247894\n0.369568 0.512451 0.248840\n0.397400 0.513702 0.249695\n0.426666 0.514954 0.250549\n0.457886 0.516144 0.251434\n0.491486 0.517395 0.252228\n0.528168 0.518250 0.252563\n0.568207 0.517975 0.251648\n0.611511 0.517548 0.250549\n0.656677 0.517273 0.249481\n0.701996 0.516815 0.248322\n0.745972 0.516479 0.247223\n0.787048 0.516205 0.246277\n0.824249 0.515930 0.245361\n0.857330 0.515900 0.244507\n0.886627 0.515900 0.243713\n0.912750 0.515961 0.242859\n0.936066 0.516113 0.242065\n0.956940 0.516266 0.241180\n0.975800 0.516449 0.240387\n0.992920 0.516785 0.239502\n1.000000 0.519928 0.250549\n1.000000 0.525574 0.270264\n0.017822 0.543701 0.247375\n0.067627 0.543243 0.246826\n0.114471 0.542877 0.246155\n0.157776 0.542633 0.245697\n0.196655 0.542511 0.245300\n0.230896 0.542572 0.244965\n0.262238 0.543304 0.245483\n0.291504 0.544495 0.246399\n0.319183 0.545685 0.247284\n0.346130 0.546936 0.248199\n0.373199 0.548187 0.249054\n0.401123 0.549438 0.249878\n0.430542 0.550690 0.250702\n0.461884 0.551910 0.251495\n0.495636 0.553131 0.252289\n0.532959 0.554352 0.252991\n0.573883 0.554840 0.252899\n0.617065 0.554352 0.251770\n0.661804 0.553955 0.250610\n0.706390 0.553467 0.249512\n0.749695 0.553009 0.248383\n0.790070 0.552582 0.247253\n0.826599 0.552368 0.246246\n0.859192 0.552277 0.245178\n0.888153 0.552155 0.244171\n0.913910 0.552277 0.243195\n0.936951 0.552338 0.242249\n0.957550 0.552399 0.241272\n0.976227 0.552673 0.240356\n0.993195 0.552917 0.239380\n1.000000 0.555176 0.250610\n1.000000 0.559204 0.270172\n0.026489 0.581604 0.247742\n0.076050 0.581146 0.247040\n0.122375 0.580750 0.246399\n0.164948 0.580505 0.245819\n0.202850 0.580444 0.245514\n0.236206 0.580444 0.245148\n0.267059 0.581390 0.245758\n0.295776 0.582581 0.246613\n0.323090 0.583862 0.247437\n0.349945 0.585083 0.248322\n0.376862 0.586273 0.249115\n0.404938 0.587555 0.249939\n0.434387 0.588745 0.250732\n0.465729 0.589966 0.251404\n0.499695 0.591125 0.252167\n0.537079 0.592285 0.252808\n0.578735 0.593384 0.253418\n0.622162 0.593445 0.252899\n0.666321 0.592865 0.251678\n0.710449 0.592194 0.250458\n0.753143 0.591736 0.249176\n0.792969 0.591339 0.247894\n0.828979 0.591003 0.246643\n0.861084 0.590759 0.245483\n0.889587 0.590607 0.244324\n0.915009 0.590515 0.243225\n0.937744 0.590668 0.242188\n0.958160 0.590668 0.241180\n0.976624 0.590942 0.240234\n0.993439 0.591125 0.239288\n1.000000 0.592163 0.250610\n1.000000 0.594604 0.270050\n0.036163 0.621582 0.247864\n0.085327 0.621124 0.247131\n0.130890 0.620667 0.246460\n0.172394 0.620453 0.245880\n0.209167 0.620331 0.245422\n0.241577 0.620361 0.245117\n0.271942 0.621429 0.245880\n0.300110 0.622650 0.246704\n0.327087 0.623779 0.247559\n0.353699 0.625000 0.248352\n0.380585 0.626129 0.249084\n0.408508 0.627319 0.249817\n0.438049 0.628479 0.250549\n0.469482 0.629578 0.251190\n0.503265 0.630676 0.251831\n0.540894 0.631744 0.252441\n0.582306 0.632782 0.253021\n0.626526 0.633759 0.253571\n0.670593 0.633331 0.252472\n0.714325 0.632690 0.251038\n0.756561 0.632111 0.249603\n0.795837 0.631500 0.248169\n0.831299 0.631195 0.246826\n0.862915 0.630951 0.245514\n0.890991 0.630646 0.244263\n0.916138 0.630646 0.243103\n0.938538 0.630524 0.242035\n0.958740 0.630646 0.241028\n0.977020 0.630768 0.240021\n0.993683 0.630646 0.239136\n1.000000 0.630798 0.250702\n1.000000 0.631226 0.270081\n0.046661 0.662872 0.247864\n0.095093 0.662354 0.247131\n0.139648 0.661896 0.246338\n0.179962 0.661621 0.245789\n0.215393 0.661469 0.245331\n0.247009 0.661499 0.245117\n0.276642 0.662628 0.245911\n0.304321 0.663757 0.246704\n0.330902 0.664856 0.247437\n0.357330 0.665985 0.248230\n0.384125 0.667023 0.248901\n0.411957 0.668060 0.249603\n0.441406 0.669128 0.250275\n0.472809 0.670074 0.250885\n0.506592 0.671112 0.251465\n0.544098 0.671967 0.251984\n0.585571 0.672943 0.252380\n0.629700 0.673859 0.252686\n0.674866 0.674774 0.252838\n0.718231 0.674011 0.251251\n0.759918 0.673340 0.249695\n0.798676 0.672729 0.248138\n0.833557 0.672241 0.246704\n0.864685 0.671844 0.245331\n0.892395 0.671661 0.244080\n0.917175 0.671417 0.242920\n0.939362 0.671387 0.241821\n0.959290 0.671265 0.240875\n0.977386 0.671387 0.239960\n0.993927 0.671387 0.239166\n1.000000 0.669952 0.250946\n1.000000 0.668518 0.270355\n0.057678 0.704651 0.247711\n0.105133 0.704010 0.246918\n0.148529 0.703552 0.246185\n0.187469 0.703156 0.245605\n0.221619 0.702942 0.245209\n0.252441 0.703094 0.245087\n0.281372 0.704224 0.245880\n0.308411 0.705139 0.246643\n0.334595 0.706146 0.247314\n0.360779 0.707153 0.248047\n0.387360 0.708069 0.248627\n0.415070 0.709015 0.249268\n0.444519 0.709900 0.249878\n0.475800 0.710724 0.250397\n0.509705 0.711639 0.250824\n0.547424 0.712463 0.251099\n0.588867 0.713287 0.251251\n0.632843 0.714142 0.251434\n0.677826 0.714935 0.251495\n0.722137 0.715576 0.251190\n0.763306 0.714691 0.249573\n0.801422 0.713928 0.247955\n0.835754 0.713440 0.246490\n0.866394 0.713043 0.245148\n0.893738 0.712738 0.243866\n0.918182 0.712555 0.242767\n0.940094 0.712158 0.241760\n0.959808 0.712158 0.240875\n0.977722 0.712067 0.240112\n0.994110 0.711945 0.239380\n1.000000 0.709320 0.251495\n1.000000 0.705994 0.270905\n0.068878 0.746002 0.247467\n0.115021 0.745331 0.246704\n0.157196 0.744781 0.246033\n0.194672 0.744385 0.245483\n0.227509 0.743988 0.244965\n0.257446 0.744293 0.245026\n0.285614 0.745117 0.245728\n0.312195 0.746063 0.246429\n0.338043 0.746887 0.247070\n0.363861 0.747711 0.247711\n0.390198 0.748505 0.248291\n0.417877 0.749298 0.248840\n0.447144 0.750061 0.249237\n0.478760 0.750824 0.249573\n0.512848 0.751556 0.249725\n0.550751 0.752289 0.249847\n0.592255 0.753021 0.249969\n0.636078 0.753784 0.249939\n0.680573 0.754456 0.249908\n0.724640 0.755219 0.249817\n0.766510 0.755493 0.249329\n0.804047 0.754639 0.247711\n0.837830 0.754120 0.246246\n0.868042 0.753479 0.244904\n0.895020 0.753204 0.243774\n0.919128 0.752777 0.242737\n0.940765 0.752411 0.241882\n0.960266 0.752228 0.241058\n0.978058 0.752136 0.240509\n0.994293 0.751862 0.239990\n1.000000 0.747986 0.252380\n1.000000 0.742645 0.271881\n0.080017 0.786163 0.247070\n0.124817 0.785370 0.246338\n0.165497 0.784698 0.245697\n0.201385 0.784210 0.245087\n0.233002 0.783813 0.244568\n0.262299 0.784119 0.244843\n0.289642 0.784912 0.245544\n0.315582 0.785583 0.246155\n0.341064 0.786285 0.246796\n0.366516 0.786957 0.247284\n0.392883 0.787628 0.247681\n0.420624 0.788300 0.248077\n0.450012 0.788910 0.248230\n0.481720 0.789581 0.248383\n0.515991 0.790192 0.248474\n0.554108 0.790833 0.248444\n0.595581 0.791443 0.248413\n0.639008 0.792114 0.248322\n0.683319 0.792694 0.248260\n0.726898 0.793335 0.248169\n0.768585 0.793945 0.248047\n0.806580 0.793945 0.247467\n0.839844 0.793274 0.246094\n0.869598 0.792725 0.244873\n0.896179 0.792145 0.243866\n0.920013 0.791809 0.242920\n0.941437 0.791351 0.242218\n0.960754 0.791016 0.241638\n0.978302 0.790771 0.241241\n0.994415 0.790527 0.240967\n1.000000 0.785278 0.253693\n1.000000 0.778381 0.273346\n0.090851 0.824219 0.246948\n0.134155 0.823395 0.246063\n0.173218 0.822662 0.245270\n0.207611 0.822083 0.244781\n0.238037 0.821564 0.244293\n0.266479 0.821960 0.244690\n0.293243 0.822571 0.245300\n0.318665 0.823090 0.245819\n0.343750 0.823639 0.246185\n0.369263 0.824188 0.246552\n0.395691 0.824768 0.246796\n0.423492 0.825317 0.246918\n0.453003 0.825836 0.246979\n0.484772 0.826385 0.247009\n0.519226 0.826904 0.246979\n0.557404 0.827423 0.246918\n0.598816 0.827942 0.246826\n0.642059 0.828430 0.246704\n0.685913 0.828949 0.246643\n0.729126 0.829468 0.246552\n0.770325 0.829987 0.246521\n0.808167 0.830475 0.246521\n0.841705 0.830475 0.246155\n0.871033 0.829865 0.245087\n0.897278 0.829224 0.244202\n0.920807 0.828674 0.243500\n0.941986 0.828308 0.243011\n0.961121 0.827881 0.242645\n0.978546 0.827484 0.242493\n0.994568 0.827271 0.242493\n1.000000 0.820892 0.255554\n1.000000 0.812592 0.276184\n0.101105 0.859680 0.246490\n0.142822 0.858795 0.245697\n0.180237 0.857941 0.244995\n0.213165 0.857300 0.244476\n0.242462 0.856720 0.243927\n0.270172 0.857147 0.244385\n0.296417 0.857574 0.244812\n0.321594 0.858002 0.245148\n0.346588 0.858459 0.245361\n0.372070 0.858917 0.245544\n0.398529 0.859314 0.245575\n0.426453 0.859772 0.245636\n0.455994 0.860199 0.245605\n0.487885 0.860626 0.245544\n0.522461 0.861084 0.245422\n0.560699 0.861420 0.245331\n0.601990 0.861877 0.245300\n0.645050 0.862274 0.245178\n0.688538 0.862701 0.245178\n0.731079 0.863068 0.245178\n0.771729 0.863464 0.245270\n0.809082 0.863831 0.245361\n0.842621 0.864258 0.245636\n0.872345 0.864288 0.245605\n0.898254 0.863678 0.244995\n0.921539 0.863037 0.244446\n0.942444 0.862610 0.244202\n0.961426 0.862061 0.244141\n0.978699 0.861664 0.244324\n0.994598 0.861481 0.245483\n1.000000 0.854370 0.259827\n1.000000 0.844666 0.280975\n0.110443 0.891907 0.246124\n0.150604 0.890961 0.245392\n0.186401 0.890076 0.244720\n0.217987 0.889374 0.244110\n0.246490 0.888824 0.243439\n0.273773 0.889160 0.243835\n0.299500 0.889557 0.244019\n0.324554 0.889862 0.244202\n0.349548 0.890198 0.244232\n0.375000 0.890533 0.244293\n0.401367 0.890869 0.244263\n0.429382 0.891205 0.244202\n0.459076 0.891541 0.244110\n0.491058 0.891876 0.244049\n0.525665 0.892181 0.243988\n0.564056 0.892487 0.243896\n0.605042 0.892822 0.243866\n0.647888 0.893097 0.243896\n0.690826 0.893433 0.243988\n0.733063 0.893738 0.244110\n0.773071 0.894012 0.244324\n0.809845 0.894348 0.244629\n0.842957 0.894592 0.245087\n0.872772 0.894897 0.245605\n0.899170 0.894989 0.246155\n0.922150 0.894318 0.245941\n0.942902 0.893799 0.246033\n0.961731 0.893311 0.247070\n0.978882 0.893005 0.248688\n0.994598 0.892853 0.250519\n1.000000 0.884918 0.265289\n1.000000 0.873962 0.286743\n0.118805 0.920624 0.245819\n0.157349 0.919678 0.244965\n0.191895 0.918793 0.244141\n0.222626 0.918030 0.243286\n0.250763 0.917603 0.242798\n0.277466 0.917816 0.242950\n0.302826 0.918091 0.243011\n0.327698 0.918365 0.243073\n0.352448 0.918610 0.243042\n0.377930 0.918823 0.242981\n0.404327 0.919098 0.242920\n0.432312 0.919342 0.242828\n0.462097 0.919617 0.242798\n0.494080 0.919800 0.242676\n0.528839 0.920044 0.242676\n0.567139 0.920319 0.242706\n0.608154 0.920502 0.242798\n0.650452 0.920746 0.242859\n0.693146 0.920959 0.243103\n0.734894 0.921173 0.243439\n0.774353 0.921387 0.243866\n0.810638 0.921570 0.244385\n0.843353 0.921783 0.245117\n0.872681 0.921967 0.245911\n0.899017 0.922180 0.246918\n0.922760 0.922455 0.248871\n0.943329 0.921967 0.250244\n0.961914 0.921570 0.252106\n0.978912 0.921082 0.254242\n0.994537 0.920593 0.256653\n1.000000 0.912201 0.271637\n1.000000 0.900360 0.293365\n0.126282 0.946167 0.245514\n0.163818 0.945221 0.244476\n0.197235 0.944275 0.243347\n0.227112 0.943512 0.242401\n0.254761 0.943237 0.241913\n0.281158 0.943390 0.241943\n0.306213 0.943573 0.241943\n0.330902 0.943756 0.241882\n0.355560 0.943939 0.241791\n0.380829 0.944092 0.241699\n0.407288 0.944275 0.241669\n0.435333 0.944489 0.241547\n0.465149 0.944611 0.241547\n0.497162 0.944824 0.241547\n0.531952 0.944977 0.241669\n0.570099 0.945160 0.241760\n0.610870 0.945312 0.242035\n0.652893 0.945465 0.242340\n0.695129 0.945557 0.242737\n0.736420 0.945740 0.243317\n0.775299 0.945892 0.243958\n0.811188 0.946014 0.244781\n0.843506 0.946106 0.245789\n0.872742 0.946350 0.247620\n0.898804 0.946564 0.249969\n0.922241 0.946747 0.252747\n0.943359 0.946899 0.255676\n0.961945 0.946381 0.258179\n0.978821 0.945892 0.260803\n0.994385 0.945404 0.263702\n1.000000 0.936584 0.278748\n1.000000 0.923981 0.300690\n0.133698 0.969025 0.244568\n0.170074 0.968018 0.243347\n0.202576 0.967163 0.242401\n0.231567 0.966370 0.241272\n0.258972 0.966187 0.240875\n0.284668 0.966309 0.240753\n0.309540 0.966431 0.240723\n0.333954 0.966553 0.240631\n0.358459 0.966736 0.240601\n0.383698 0.966797 0.240479\n0.410217 0.966919 0.240479\n0.438141 0.967072 0.240479\n0.468048 0.967163 0.240570\n0.499939 0.967285 0.240692\n0.534790 0.967346 0.240967\n0.572968 0.967438 0.241241\n0.613434 0.967560 0.241699\n0.655243 0.967651 0.242218\n0.696899 0.967773 0.242920\n0.737732 0.967834 0.243774\n0.776337 0.967926 0.244720\n0.811829 0.968048 0.246552\n0.843994 0.968170 0.248932\n0.872589 0.968262 0.251587\n0.898438 0.968353 0.254578\n0.921509 0.968384 0.257751\n0.942444 0.968445 0.261230\n0.961609 0.968536 0.264954\n0.978668 0.968170 0.268219\n0.994202 0.967682 0.271393\n1.000000 0.958740 0.286407\n1.000000 0.945312 0.308411\n0.140808 0.989594 0.243622\n0.176208 0.988647 0.242188\n0.207672 0.987793 0.241180\n0.235931 0.987030 0.239929\n0.262787 0.986969 0.239716\n0.288177 0.987030 0.239655\n0.312653 0.987122 0.239594\n0.336945 0.987213 0.239471\n0.361328 0.987305 0.239471\n0.386566 0.987335 0.239441\n0.412933 0.987427 0.239563\n0.440796 0.987457 0.239716\n0.470703 0.987549 0.239960\n0.502625 0.987610 0.240265\n0.537476 0.987640 0.240631\n0.575531 0.987701 0.241211\n0.615753 0.987762 0.241913\n0.656982 0.987793 0.242706\n0.698547 0.987854 0.243713\n0.739288 0.987885 0.245544\n0.777618 0.987915 0.247803\n0.812561 0.987976 0.250519\n0.843811 0.987976 0.253510\n0.872131 0.988007 0.256683\n0.897644 0.988007 0.260162\n0.920715 0.988007 0.263763\n0.941559 0.988007 0.267609\n0.960571 0.988007 0.271667\n0.978088 0.987976 0.275665\n0.993988 0.987701 0.279572\n1.000000 0.978760 0.294312\n1.000000 0.965057 0.316345\n0.159668 1.000000 0.251373\n0.192444 1.000000 0.249725\n0.221649 1.000000 0.248230\n0.248108 1.000000 0.246674\n0.274048 1.000000 0.246643\n0.298492 1.000000 0.246613\n0.322052 1.000000 0.246643\n0.345612 1.000000 0.246674\n0.369293 1.000000 0.246826\n0.393799 1.000000 0.247009\n0.419708 1.000000 0.247284\n0.446960 1.000000 0.247650\n0.476044 1.000000 0.248047\n0.507202 1.000000 0.248596\n0.541443 1.000000 0.249268\n0.578461 1.000000 0.250122\n0.617798 1.000000 0.251099\n0.658478 1.000000 0.252838\n0.698944 1.000000 0.255157\n0.738251 1.000000 0.257843\n0.775055 1.000000 0.260681\n0.808777 1.000000 0.263824\n0.839233 1.000000 0.267120\n0.866913 1.000000 0.270782\n0.891846 1.000000 0.274506\n0.914551 1.000000 0.278320\n0.935242 1.000000 0.282349\n0.954132 1.000000 0.286469\n0.971558 1.000000 0.290527\n0.987701 1.000000 0.294739\n1.000000 0.997223 0.302612\n1.000000 0.983215 0.325714\n0.191650 1.000000 0.270172\n0.222900 1.000000 0.270264\n0.250854 1.000000 0.270203\n0.276215 1.000000 0.270081\n0.299713 1.000000 0.270050\n0.321991 1.000000 0.270050\n0.343689 1.000000 0.270142\n0.365448 1.000000 0.270264\n0.387329 1.000000 0.270447\n0.410187 1.000000 0.270782\n0.434143 1.000000 0.271179\n0.459564 1.000000 0.271667\n0.486786 1.000000 0.272308\n0.516266 1.000000 0.273071\n0.548615 1.000000 0.273987\n0.584076 1.000000 0.275604\n0.621490 1.000000 0.277832\n0.659241 1.000000 0.280334\n0.696747 1.000000 0.283142\n0.733246 1.000000 0.286194\n0.767487 1.000000 0.289398\n0.799194 1.000000 0.292877\n0.827911 1.000000 0.296417\n0.854065 1.000000 0.300201\n0.878143 1.000000 0.304108\n0.899933 1.000000 0.307983\n0.919891 1.000000 0.312042\n0.938324 1.000000 0.316162\n0.955231 1.000000 0.320282\n0.971069 1.000000 0.325562\n0.986023 1.000000 0.331482\n1.000000 1.000000 0.337677\n0.000000 0.002869 0.209534\n0.046295 0.002777 0.217163\n0.093781 0.006104 0.222321\n0.138641 0.009827 0.228088\n0.179993 0.013702 0.234039\n0.217377 0.017517 0.239777\n0.250336 0.021149 0.245270\n0.279327 0.023743 0.249634\n0.306061 0.026001 0.253174\n0.331268 0.026611 0.254486\n0.355743 0.027130 0.255676\n0.380310 0.027557 0.256775\n0.405579 0.027954 0.257843\n0.432220 0.028137 0.258698\n0.460907 0.028229 0.259491\n0.492004 0.028198 0.260162\n0.526611 0.027954 0.260406\n0.566193 0.027466 0.260620\n0.609772 0.026917 0.260590\n0.656006 0.026337 0.260620\n0.703247 0.025818 0.260406\n0.749725 0.025391 0.260315\n0.793610 0.025055 0.260193\n0.833557 0.024994 0.260345\n0.869171 0.025116 0.260437\n0.900574 0.025482 0.260742\n0.928345 0.026123 0.261078\n0.952881 0.026886 0.261322\n0.974762 0.027771 0.261749\n0.994385 0.028564 0.262024\n1.000000 0.048035 0.271820\n1.000000 0.074982 0.285797\n0.000000 0.042786 0.220917\n0.046234 0.043610 0.226715\n0.093719 0.047150 0.232513\n0.138519 0.050934 0.238403\n0.179749 0.054535 0.244141\n0.216888 0.057922 0.249329\n0.249969 0.061157 0.254028\n0.278717 0.061737 0.255310\n0.305145 0.062134 0.256470\n0.330078 0.062561 0.257599\n0.354462 0.062927 0.258789\n0.378937 0.063263 0.259766\n0.404327 0.063507 0.260773\n0.431091 0.063660 0.261536\n0.459808 0.063690 0.262268\n0.490936 0.063568 0.262726\n0.525513 0.063293 0.263031\n0.565033 0.062866 0.263123\n0.608582 0.062347 0.263031\n0.654816 0.061737 0.262817\n0.702026 0.061279 0.262726\n0.748779 0.060852 0.262512\n0.793091 0.060608 0.262268\n0.833160 0.060608 0.262360\n0.868744 0.060791 0.262268\n0.900146 0.061310 0.262543\n0.927856 0.061890 0.262726\n0.952332 0.062408 0.262787\n0.974121 0.063171 0.262909\n0.993683 0.063965 0.263214\n1.000000 0.082031 0.273041\n1.000000 0.108398 0.287872\n0.000000 0.083313 0.234039\n0.047821 0.085114 0.238373\n0.093872 0.087067 0.242706\n0.138458 0.090393 0.247986\n0.179535 0.093445 0.252777\n0.216278 0.094940 0.254944\n0.248871 0.096405 0.257111\n0.277557 0.096954 0.258484\n0.303772 0.097229 0.259583\n0.328674 0.097534 0.260620\n0.353149 0.097809 0.261627\n0.377808 0.098083 0.262604\n0.403198 0.098236 0.263458\n0.429962 0.098267 0.264252\n0.458710 0.098358 0.264740\n0.489868 0.098206 0.265259\n0.524414 0.097900 0.265381\n0.563904 0.097504 0.265411\n0.607422 0.097015 0.265320\n0.653900 0.096436 0.265076\n0.701660 0.096039 0.264771\n0.748718 0.095673 0.264404\n0.793091 0.095551 0.264221\n0.833191 0.095642 0.264130\n0.868652 0.095764 0.264008\n0.899872 0.096039 0.264038\n0.927429 0.096497 0.263916\n0.951782 0.097107 0.263916\n0.973541 0.097870 0.264008\n0.992981 0.098785 0.264191\n1.000000 0.115448 0.274078\n1.000000 0.141235 0.289764\n0.001831 0.123718 0.245605\n0.049591 0.125122 0.249390\n0.095184 0.126312 0.252411\n0.138031 0.126617 0.253723\n0.178467 0.127991 0.255920\n0.214844 0.129303 0.257935\n0.247223 0.130554 0.260071\n0.276062 0.131256 0.261505\n0.302399 0.131409 0.262482\n0.327484 0.131592 0.263458\n0.351990 0.131775 0.264404\n0.376648 0.131989 0.265259\n0.402069 0.132141 0.266052\n0.428864 0.132172 0.266693\n0.457642 0.132172 0.267212\n0.488800 0.132141 0.267609\n0.523346 0.131805 0.267639\n0.563049 0.131439 0.267609\n0.607208 0.131012 0.267334\n0.654144 0.130524 0.267029\n0.702179 0.130127 0.266632\n0.749268 0.129883 0.266296\n0.793610 0.129700 0.265991\n0.833466 0.129608 0.265656\n0.868744 0.129639 0.265320\n0.899811 0.130005 0.265167\n0.927216 0.130463 0.265015\n0.951416 0.131134 0.265045\n0.972961 0.131897 0.265015\n0.992371 0.132812 0.265106\n1.000000 0.148102 0.274963\n1.000000 0.173248 0.291870\n0.003815 0.162140 0.255585\n0.050812 0.161865 0.256409\n0.095612 0.161499 0.256958\n0.137543 0.161194 0.257629\n0.176819 0.161499 0.258881\n0.213104 0.162689 0.260834\n0.245697 0.163818 0.262817\n0.274811 0.164490 0.264282\n0.301178 0.164673 0.265198\n0.326324 0.164795 0.266113\n0.350800 0.164948 0.266968\n0.375488 0.165100 0.267731\n0.400940 0.165314 0.268494\n0.427765 0.165375 0.269012\n0.456543 0.165375 0.269470\n0.487976 0.165314 0.269806\n0.523132 0.165009 0.269745\n0.563416 0.164673 0.269531\n0.607971 0.164337 0.269226\n0.655212 0.163940 0.268951\n0.703400 0.163483 0.268372\n0.750336 0.162994 0.267761\n0.794434 0.162750 0.267151\n0.834076 0.162689 0.266663\n0.869110 0.162842 0.266296\n0.899902 0.163177 0.266205\n0.927155 0.163727 0.266052\n0.951141 0.164368 0.265991\n0.972534 0.165192 0.265991\n0.991730 0.165985 0.266022\n1.000000 0.179932 0.275757\n1.000000 0.204376 0.293640\n0.004272 0.196533 0.260132\n0.050751 0.195953 0.260651\n0.095184 0.195496 0.261169\n0.136932 0.195038 0.261658\n0.175842 0.194702 0.262268\n0.211670 0.195099 0.263519\n0.244293 0.196198 0.265381\n0.273621 0.196991 0.266968\n0.300018 0.197052 0.267792\n0.325134 0.197174 0.268616\n0.349670 0.197357 0.269348\n0.374359 0.197510 0.270111\n0.399811 0.197693 0.270752\n0.426941 0.197784 0.271210\n0.456268 0.197845 0.271606\n0.488251 0.197784 0.271820\n0.523865 0.197510 0.271667\n0.564636 0.197235 0.271393\n0.609528 0.196838 0.270935\n0.656799 0.196228 0.270294\n0.704956 0.195679 0.269470\n0.751862 0.195312 0.268890\n0.795685 0.195099 0.268127\n0.835022 0.195099 0.267792\n0.869659 0.195282 0.267487\n0.900238 0.195618 0.267090\n0.927155 0.196136 0.266968\n0.950867 0.196716 0.266846\n0.972076 0.197510 0.266937\n0.991119 0.198273 0.266907\n1.000000 0.210938 0.276398\n1.000000 0.234741 0.295410\n0.003845 0.229614 0.264343\n0.050079 0.229095 0.264771\n0.094666 0.228546 0.265167\n0.136780 0.228027 0.265656\n0.175659 0.227570 0.266083\n0.210876 0.227234 0.266663\n0.242920 0.227722 0.267822\n0.272400 0.228638 0.269501\n0.298798 0.228668 0.270203\n0.323975 0.228821 0.270966\n0.348511 0.228973 0.271698\n0.373444 0.229126 0.272308\n0.399445 0.229309 0.272858\n0.427032 0.229431 0.273254\n0.456848 0.229492 0.273529\n0.489258 0.229462 0.273560\n0.525452 0.229248 0.273407\n0.566498 0.228760 0.272858\n0.611542 0.228210 0.272125\n0.659058 0.227661 0.271301\n0.707153 0.227234 0.270508\n0.753876 0.226837 0.269775\n0.797333 0.226685 0.269135\n0.836212 0.226685 0.268738\n0.870453 0.226837 0.268250\n0.900635 0.227234 0.267944\n0.927216 0.227722 0.267731\n0.950714 0.228271 0.267639\n0.971710 0.228973 0.267670\n0.990570 0.229675 0.267487\n1.000000 0.241058 0.277069\n1.000000 0.264191 0.297028\n0.003296 0.261841 0.268372\n0.049896 0.261200 0.268707\n0.094543 0.260559 0.269012\n0.136627 0.260040 0.269379\n0.175537 0.259583 0.269775\n0.210754 0.259247 0.270233\n0.242218 0.259094 0.270813\n0.271179 0.259430 0.271851\n0.297638 0.259583 0.272522\n0.322998 0.259735 0.273193\n0.348145 0.259888 0.273773\n0.373566 0.260071 0.274353\n0.399963 0.260315 0.274811\n0.427948 0.260468 0.275146\n0.458160 0.260498 0.275269\n0.490845 0.260254 0.274933\n0.527405 0.259918 0.274506\n0.568939 0.259552 0.273895\n0.614258 0.259003 0.273102\n0.661896 0.258484 0.272278\n0.709869 0.258057 0.271576\n0.756226 0.257751 0.270752\n0.799225 0.257599 0.270111\n0.837585 0.257599 0.269470\n0.871338 0.257751 0.269043\n0.901123 0.258087 0.268768\n0.927307 0.258545 0.268463\n0.950592 0.259155 0.268341\n0.971283 0.259796 0.268341\n0.989990 0.260406 0.268250\n1.000000 0.270569 0.277283\n1.000000 0.292999 0.298492\n0.002228 0.292480 0.271393\n0.048859 0.291809 0.271698\n0.093536 0.291260 0.271942\n0.135712 0.290710 0.272278\n0.174652 0.290283 0.272583\n0.209930 0.290070 0.273041\n0.241455 0.289948 0.273529\n0.270233 0.289886 0.274048\n0.297913 0.290558 0.275238\n0.323761 0.290710 0.275757\n0.349152 0.290924 0.276306\n0.374908 0.291199 0.276764\n0.401611 0.291351 0.277069\n0.429871 0.291412 0.277100\n0.460388 0.291321 0.276917\n0.493469 0.291168 0.276611\n0.530579 0.290802 0.276093\n0.572601 0.290466 0.275421\n0.618164 0.289948 0.274567\n0.665833 0.289581 0.273804\n0.713593 0.289185 0.272919\n0.759491 0.288879 0.272125\n0.801971 0.288788 0.271423\n0.839722 0.288849 0.270874\n0.872986 0.289062 0.270477\n0.902283 0.289307 0.270142\n0.928131 0.289734 0.269928\n0.951080 0.290314 0.269745\n0.971619 0.290863 0.269562\n0.990082 0.291626 0.269470\n1.000000 0.300964 0.278656\n1.000000 0.321411 0.299988\n0.000824 0.322479 0.273956\n0.047516 0.321869 0.274139\n0.092255 0.321228 0.274384\n0.134430 0.320770 0.274658\n0.173401 0.320404 0.274902\n0.208984 0.320190 0.275269\n0.241241 0.320068 0.275665\n0.270630 0.320068 0.276093\n0.298798 0.320984 0.277405\n0.325775 0.322144 0.278748\n0.351440 0.322357 0.279144\n0.377319 0.322449 0.279297\n0.404205 0.322510 0.279327\n0.432861 0.322571 0.279297\n0.463715 0.322571 0.279083\n0.497192 0.322418 0.278625\n0.534851 0.322113 0.278076\n0.577301 0.321747 0.277374\n0.623077 0.321381 0.276520\n0.670593 0.320984 0.275604\n0.718109 0.320557 0.274719\n0.763458 0.320343 0.273895\n0.805267 0.320251 0.273193\n0.842285 0.320160 0.272644\n0.875031 0.320465 0.272156\n0.903839 0.320709 0.271820\n0.929291 0.321167 0.271515\n0.951874 0.321625 0.271271\n0.972107 0.322235 0.271118\n0.990356 0.322693 0.270935\n1.000000 0.331177 0.280212\n1.000000 0.349762 0.301331\n0.000000 0.351959 0.276154\n0.046143 0.351837 0.276489\n0.090881 0.351318 0.276672\n0.133423 0.350830 0.276764\n0.173431 0.350525 0.276947\n0.209778 0.350311 0.277191\n0.242310 0.350281 0.277527\n0.271942 0.350342 0.277924\n0.300293 0.351349 0.279114\n0.327393 0.352386 0.280273\n0.354065 0.353424 0.281403\n0.380219 0.353638 0.281494\n0.407410 0.353729 0.281494\n0.436371 0.353821 0.281372\n0.467590 0.353851 0.281097\n0.501495 0.353760 0.280640\n0.539703 0.353455 0.279999\n0.582458 0.353149 0.279175\n0.628357 0.352722 0.278290\n0.675751 0.352325 0.277344\n0.722778 0.352112 0.276459\n0.767578 0.351837 0.275604\n0.808594 0.351746 0.274841\n0.844940 0.351654 0.274170\n0.877045 0.351959 0.273712\n0.905396 0.352234 0.273376\n0.930389 0.352570 0.273010\n0.952667 0.353027 0.272766\n0.972656 0.353516 0.272552\n0.990631 0.353943 0.272308\n1.000000 0.361572 0.281708\n1.000000 0.378082 0.302521\n0.000000 0.380951 0.277924\n0.045074 0.382050 0.278656\n0.091156 0.381592 0.278687\n0.134796 0.381134 0.278717\n0.175201 0.380859 0.278839\n0.211761 0.380707 0.278931\n0.244385 0.380768 0.279236\n0.273834 0.380707 0.279266\n0.302124 0.381622 0.280243\n0.329407 0.382721 0.281372\n0.356323 0.383881 0.282471\n0.383667 0.385071 0.283508\n0.411194 0.385284 0.283478\n0.440430 0.385406 0.283325\n0.471954 0.385406 0.283020\n0.506226 0.385254 0.282440\n0.544922 0.385071 0.281708\n0.588013 0.384766 0.280914\n0.633850 0.384399 0.279938\n0.681030 0.384033 0.278961\n0.727509 0.383698 0.278046\n0.771637 0.383514 0.277161\n0.811890 0.383484 0.276398\n0.847565 0.383392 0.275757\n0.879028 0.383575 0.275269\n0.906860 0.383789 0.274811\n0.931458 0.384155 0.274414\n0.953400 0.384521 0.274139\n0.973083 0.384918 0.273865\n0.990936 0.385254 0.273560\n1.000000 0.392120 0.282959\n1.000000 0.406433 0.303497\n0.000000 0.411957 0.280212\n0.046875 0.412689 0.280518\n0.093597 0.412231 0.280457\n0.137726 0.411926 0.280396\n0.178375 0.411713 0.280426\n0.214539 0.411469 0.280243\n0.246857 0.411377 0.280182\n0.276276 0.411438 0.280273\n0.304657 0.412445 0.281189\n0.331940 0.413574 0.282257\n0.358978 0.414764 0.283325\n0.386566 0.415985 0.284363\n0.415314 0.417206 0.285339\n0.444916 0.417450 0.285187\n0.476715 0.417450 0.284760\n0.511322 0.417358 0.284180\n0.550537 0.417145 0.283417\n0.593811 0.416809 0.282501\n0.639587 0.416504 0.281525\n0.686340 0.416138 0.280487\n0.732178 0.415802 0.279510\n0.775665 0.415527 0.278625\n0.815063 0.415527 0.277802\n0.850006 0.415436 0.277161\n0.880890 0.415619 0.276581\n0.908203 0.415924 0.276123\n0.932465 0.416107 0.275726\n0.954041 0.416290 0.275360\n0.973511 0.416626 0.275055\n0.991150 0.416962 0.274628\n1.000000 0.422943 0.283936\n1.000000 0.435242 0.304077\n0.001312 0.444366 0.282318\n0.050537 0.443939 0.282135\n0.097870 0.443573 0.281982\n0.141754 0.443146 0.281647\n0.182007 0.442810 0.281311\n0.218048 0.442688 0.281189\n0.250153 0.442688 0.281067\n0.279388 0.442810 0.281067\n0.307709 0.443909 0.282043\n0.335022 0.445099 0.283020\n0.362091 0.446320 0.283997\n0.389832 0.447510 0.285034\n0.418762 0.448761 0.285919\n0.449707 0.449982 0.286865\n0.481750 0.450043 0.286438\n0.516724 0.449951 0.285767\n0.556335 0.449768 0.284912\n0.599640 0.449371 0.283936\n0.645294 0.449005 0.282928\n0.691589 0.448730 0.281952\n0.736816 0.448395 0.280884\n0.779449 0.448212 0.279999\n0.818085 0.448059 0.279144\n0.852295 0.447998 0.278442\n0.882599 0.448029 0.277863\n0.909454 0.448273 0.277313\n0.933319 0.448395 0.276855\n0.954651 0.448700 0.276428\n0.973907 0.448975 0.275818\n0.991394 0.449249 0.275269\n1.000000 0.454285 0.284546\n1.000000 0.464630 0.304321\n0.006348 0.476318 0.283722\n0.055634 0.475769 0.283234\n0.102692 0.475372 0.282776\n0.146667 0.475006 0.282379\n0.186676 0.474731 0.282074\n0.222260 0.474701 0.281891\n0.253998 0.474762 0.281677\n0.282990 0.475006 0.281677\n0.311188 0.476166 0.282684\n0.338379 0.477356 0.283661\n0.365509 0.478546 0.284607\n0.393402 0.479797 0.285522\n0.422485 0.480927 0.286438\n0.453674 0.482208 0.287292\n0.486938 0.483276 0.287964\n0.522308 0.483093 0.287231\n0.562225 0.482910 0.286377\n0.605499 0.482605 0.285309\n0.650909 0.482208 0.284302\n0.696686 0.481964 0.283173\n0.741241 0.481598 0.282166\n0.783051 0.481323 0.281219\n0.820862 0.481232 0.280365\n0.854431 0.481110 0.279602\n0.884155 0.481232 0.279022\n0.910583 0.481201 0.278320\n0.934143 0.481354 0.277679\n0.955261 0.481506 0.276978\n0.974304 0.481934 0.276245\n0.991638 0.482208 0.275513\n1.000000 0.486359 0.284851\n1.000000 0.494690 0.304382\n0.012177 0.508881 0.284454\n0.061798 0.508392 0.283905\n0.108948 0.507996 0.283356\n0.152557 0.507721 0.282928\n0.192108 0.507568 0.282532\n0.227081 0.507599 0.282288\n0.258179 0.507721 0.282135\n0.286987 0.508087 0.282257\n0.314941 0.509308 0.283203\n0.341980 0.510498 0.284088\n0.369171 0.511719 0.285004\n0.397064 0.512939 0.285858\n0.426331 0.514130 0.286713\n0.457642 0.515411 0.287537\n0.491241 0.516571 0.288300\n0.527893 0.517456 0.288605\n0.568054 0.517181 0.287659\n0.611206 0.516785 0.286621\n0.656250 0.516388 0.285522\n0.701447 0.515991 0.284424\n0.745300 0.515686 0.283325\n0.786285 0.515350 0.282349\n0.823364 0.515137 0.281464\n0.856323 0.515015 0.280609\n0.885651 0.515015 0.279724\n0.911682 0.514984 0.278900\n0.935028 0.515259 0.278076\n0.955872 0.515411 0.277252\n0.974731 0.515533 0.276398\n0.991913 0.515900 0.275543\n1.000000 0.519287 0.285004\n1.000000 0.525970 0.304291\n0.019714 0.544067 0.284912\n0.069397 0.543549 0.284363\n0.116272 0.543243 0.283813\n0.159302 0.543030 0.283325\n0.197998 0.542908 0.282928\n0.232208 0.542999 0.282654\n0.262756 0.543121 0.282471\n0.291290 0.543671 0.282593\n0.318817 0.544891 0.283478\n0.345734 0.546143 0.284363\n0.372864 0.547333 0.285248\n0.400818 0.548615 0.286011\n0.430206 0.549866 0.286835\n0.461670 0.551056 0.287598\n0.495361 0.552277 0.288269\n0.532715 0.553497 0.288971\n0.573639 0.553955 0.288879\n0.616669 0.553467 0.287781\n0.661224 0.553070 0.286652\n0.705841 0.552582 0.285522\n0.748932 0.552063 0.284393\n0.789276 0.551758 0.283295\n0.825714 0.551422 0.282227\n0.858185 0.551300 0.281158\n0.887085 0.551300 0.280151\n0.912842 0.551270 0.279175\n0.935852 0.551422 0.278229\n0.956512 0.551605 0.277283\n0.975159 0.551819 0.276367\n0.992188 0.552032 0.275452\n1.000000 0.554504 0.285004\n1.000000 0.559570 0.304169\n0.028534 0.581940 0.285309\n0.077942 0.581482 0.284668\n0.124298 0.581146 0.283997\n0.166534 0.580902 0.283539\n0.204254 0.580811 0.283020\n0.237549 0.580872 0.282776\n0.267365 0.581085 0.282471\n0.295502 0.581757 0.282806\n0.322845 0.583008 0.283691\n0.349548 0.584198 0.284515\n0.376617 0.585419 0.285339\n0.404633 0.586700 0.286041\n0.434021 0.587891 0.286774\n0.465546 0.589050 0.287506\n0.499329 0.590210 0.288147\n0.536774 0.591400 0.288788\n0.578430 0.592499 0.289429\n0.621643 0.592468 0.288849\n0.665771 0.591919 0.287659\n0.709808 0.591248 0.286407\n0.752350 0.590759 0.285156\n0.792145 0.590302 0.283813\n0.828033 0.590088 0.282562\n0.860046 0.589752 0.281403\n0.888550 0.589691 0.280273\n0.913971 0.589600 0.279205\n0.936707 0.589691 0.278168\n0.957092 0.589752 0.277161\n0.975555 0.589935 0.276215\n0.992401 0.590118 0.275299\n1.000000 0.591675 0.285095\n1.000000 0.594849 0.304108\n0.038300 0.621887 0.285309\n0.087341 0.621460 0.284668\n0.132843 0.621033 0.284119\n0.174072 0.620819 0.283478\n0.210602 0.620697 0.283020\n0.242889 0.620758 0.282684\n0.272034 0.620880 0.282501\n0.299805 0.621674 0.282928\n0.326752 0.622925 0.283752\n0.353302 0.624023 0.284485\n0.380280 0.625214 0.285217\n0.408142 0.626373 0.285919\n0.437622 0.627472 0.286621\n0.469208 0.628662 0.287262\n0.502930 0.629700 0.287872\n0.540436 0.630737 0.288422\n0.581940 0.631775 0.289032\n0.626007 0.632751 0.289459\n0.670013 0.632355 0.288330\n0.713715 0.631653 0.286896\n0.755829 0.631042 0.285461\n0.794983 0.630585 0.284027\n0.830353 0.630188 0.282684\n0.861877 0.629791 0.281403\n0.889984 0.629608 0.280182\n0.915009 0.629456 0.279083\n0.937469 0.629608 0.277954\n0.957703 0.629639 0.276978\n0.975952 0.629578 0.276093\n0.992645 0.629669 0.275238\n1.000000 0.630249 0.285187\n1.000000 0.631470 0.304138\n0.048950 0.663177 0.285431\n0.097229 0.662689 0.284668\n0.141693 0.662231 0.283936\n0.181641 0.661957 0.283386\n0.216888 0.661804 0.282990\n0.248230 0.661835 0.282562\n0.276642 0.661926 0.282318\n0.304016 0.662781 0.282867\n0.330627 0.663879 0.283661\n0.356903 0.664948 0.284332\n0.383667 0.666077 0.285004\n0.411499 0.667053 0.285675\n0.441010 0.668121 0.286285\n0.472473 0.669098 0.286896\n0.506226 0.670074 0.287476\n0.543762 0.670959 0.287903\n0.585205 0.671906 0.288269\n0.629120 0.672852 0.288513\n0.674347 0.673737 0.288666\n0.717621 0.672974 0.287079\n0.759155 0.672180 0.285522\n0.797791 0.671570 0.283966\n0.832581 0.671112 0.282562\n0.863647 0.670746 0.281250\n0.891357 0.670563 0.279999\n0.916107 0.670349 0.278900\n0.938263 0.670227 0.277832\n0.958221 0.670135 0.276886\n0.976288 0.670197 0.276062\n0.992859 0.670288 0.275238\n1.000000 0.669556 0.285431\n1.000000 0.668732 0.304413\n0.060028 0.704926 0.285278\n0.107269 0.704376 0.284424\n0.150513 0.703888 0.283783\n0.189087 0.703522 0.283264\n0.223083 0.703308 0.282745\n0.253418 0.703247 0.282440\n0.281036 0.703217 0.282135\n0.308044 0.704163 0.282776\n0.334198 0.705109 0.283417\n0.360229 0.706085 0.284119\n0.386993 0.707031 0.284760\n0.414581 0.707916 0.285339\n0.443939 0.708771 0.285919\n0.475372 0.709656 0.286407\n0.509186 0.710510 0.286743\n0.547058 0.711395 0.286957\n0.588470 0.712189 0.287140\n0.632263 0.713043 0.287262\n0.677277 0.713806 0.287292\n0.721405 0.714386 0.286987\n0.762512 0.713562 0.285370\n0.800507 0.712952 0.283813\n0.834778 0.712341 0.282349\n0.865356 0.711975 0.281036\n0.892700 0.711517 0.279846\n0.917084 0.711304 0.278748\n0.938995 0.711060 0.277771\n0.958740 0.710938 0.276886\n0.976624 0.710938 0.276154\n0.993042 0.710876 0.275543\n1.000000 0.708740 0.286011\n1.000000 0.706238 0.305054\n0.071198 0.746277 0.284912\n0.117249 0.745605 0.284149\n0.159119 0.745056 0.283569\n0.196167 0.744629 0.282928\n0.228882 0.744324 0.282410\n0.258270 0.744080 0.282135\n0.285278 0.744049 0.281921\n0.311768 0.744965 0.282562\n0.337494 0.745789 0.283203\n0.363281 0.746643 0.283813\n0.389709 0.747437 0.284363\n0.417297 0.748138 0.284821\n0.446747 0.748932 0.285248\n0.478241 0.749664 0.285461\n0.512360 0.750397 0.285675\n0.550415 0.751190 0.285767\n0.591858 0.751923 0.285797\n0.635468 0.752594 0.285767\n0.679901 0.753326 0.285706\n0.723969 0.754028 0.285645\n0.765717 0.754303 0.285095\n0.803131 0.753479 0.283539\n0.836853 0.752991 0.282166\n0.867004 0.752319 0.280914\n0.893921 0.751984 0.279755\n0.918060 0.751648 0.278748\n0.939667 0.751312 0.277863\n0.959229 0.751099 0.277191\n0.976959 0.750977 0.276611\n0.993225 0.750671 0.276184\n1.000000 0.747498 0.286926\n1.000000 0.742981 0.306091\n0.082306 0.786346 0.284698\n0.126984 0.785614 0.283936\n0.167328 0.784973 0.283203\n0.202881 0.784454 0.282562\n0.234344 0.784058 0.282227\n0.262726 0.783783 0.281891\n0.289185 0.783722 0.281677\n0.315094 0.784454 0.282288\n0.340485 0.785156 0.282837\n0.366028 0.785828 0.283356\n0.392426 0.786469 0.283722\n0.420044 0.787109 0.283966\n0.449615 0.787811 0.284149\n0.481323 0.788452 0.284302\n0.515503 0.789062 0.284332\n0.553711 0.789703 0.284302\n0.595093 0.790344 0.284271\n0.638458 0.790924 0.284210\n0.682739 0.791565 0.284088\n0.726318 0.792175 0.283966\n0.767822 0.792725 0.283905\n0.805634 0.792847 0.283386\n0.838837 0.792175 0.282043\n0.868530 0.791504 0.280884\n0.895111 0.791077 0.279846\n0.918915 0.790649 0.279022\n0.940277 0.790192 0.278351\n0.959625 0.789917 0.277771\n0.977234 0.789642 0.277466\n0.993347 0.789459 0.277252\n1.000000 0.785095 0.288300\n1.000000 0.778503 0.307617\n0.093048 0.824402 0.284271\n0.136139 0.823578 0.283600\n0.174927 0.822876 0.282806\n0.208954 0.822266 0.282227\n0.239197 0.821747 0.281738\n0.266632 0.821320 0.281372\n0.292603 0.821350 0.281372\n0.318024 0.821960 0.281921\n0.343231 0.822540 0.282288\n0.368744 0.823059 0.282532\n0.395081 0.823639 0.282715\n0.422882 0.824127 0.282867\n0.452606 0.824646 0.282898\n0.484406 0.825195 0.282867\n0.518829 0.825714 0.282837\n0.557068 0.826233 0.282776\n0.598297 0.826752 0.282654\n0.641571 0.827301 0.282562\n0.685333 0.827759 0.282532\n0.728424 0.828278 0.282471\n0.769348 0.828735 0.282440\n0.807190 0.829254 0.282471\n0.840668 0.829315 0.282104\n0.869934 0.828522 0.281097\n0.896179 0.827942 0.280243\n0.919708 0.827454 0.279602\n0.940826 0.827026 0.279144\n0.960022 0.826660 0.278839\n0.977448 0.826324 0.278748\n0.993469 0.826050 0.278900\n1.000000 0.820587 0.290466\n1.000000 0.812988 0.310822\n0.103058 0.859802 0.284027\n0.144684 0.858917 0.283112\n0.181763 0.858124 0.282593\n0.214325 0.857422 0.281891\n0.243500 0.856873 0.281433\n0.270111 0.856323 0.280853\n0.295776 0.856415 0.280914\n0.321045 0.856842 0.281189\n0.346069 0.857269 0.281372\n0.371460 0.857697 0.281494\n0.397980 0.858154 0.281555\n0.425842 0.858582 0.281525\n0.455597 0.859039 0.281464\n0.487488 0.859467 0.281433\n0.522003 0.859863 0.281311\n0.560333 0.860260 0.281250\n0.601440 0.860657 0.281189\n0.644409 0.861084 0.281128\n0.687775 0.861511 0.281128\n0.730286 0.861908 0.281128\n0.770844 0.862244 0.281219\n0.808136 0.862701 0.281403\n0.841492 0.863037 0.281647\n0.871246 0.863037 0.281616\n0.897156 0.862488 0.281067\n0.920410 0.861847 0.280609\n0.941315 0.861328 0.280426\n0.960297 0.860931 0.280396\n0.977631 0.860596 0.280853\n0.993561 0.860321 0.282257\n1.000000 0.854340 0.294922\n1.000000 0.845001 0.315704\n0.112274 0.891968 0.283630\n0.152222 0.891022 0.282837\n0.187653 0.890167 0.282135\n0.219025 0.889465 0.281403\n0.247406 0.888855 0.280762\n0.273560 0.888214 0.280060\n0.299011 0.888336 0.280060\n0.324036 0.888672 0.280212\n0.348907 0.889038 0.280243\n0.374420 0.889343 0.280243\n0.400940 0.889679 0.280212\n0.428864 0.890015 0.280151\n0.458649 0.890320 0.280060\n0.490540 0.890656 0.279968\n0.525177 0.890991 0.279938\n0.563477 0.891327 0.279877\n0.604614 0.891663 0.279877\n0.647247 0.891907 0.279907\n0.690186 0.892242 0.279968\n0.732208 0.892548 0.280121\n0.772247 0.892853 0.280396\n0.808929 0.893127 0.280701\n0.841827 0.893402 0.281158\n0.871613 0.893738 0.281738\n0.898010 0.893768 0.282318\n0.920990 0.893219 0.282196\n0.941772 0.892639 0.282471\n0.960632 0.892273 0.283722\n0.977814 0.892029 0.285400\n0.993500 0.891693 0.287384\n1.000000 0.884705 0.300385\n1.000000 0.874115 0.321533\n0.120422 0.920715 0.283417\n0.158844 0.919739 0.282562\n0.193054 0.918854 0.281647\n0.223633 0.918091 0.280731\n0.251373 0.917358 0.279999\n0.276978 0.916718 0.278992\n0.302368 0.916901 0.279053\n0.327148 0.917175 0.279053\n0.351898 0.917450 0.279022\n0.377350 0.917694 0.278992\n0.403839 0.917908 0.278870\n0.431885 0.918182 0.278809\n0.461578 0.918396 0.278717\n0.493561 0.918640 0.278687\n0.528381 0.918884 0.278687\n0.566589 0.919098 0.278687\n0.607483 0.919312 0.278748\n0.649750 0.919586 0.278961\n0.692352 0.919800 0.279236\n0.734009 0.919983 0.279541\n0.773438 0.920197 0.279999\n0.809509 0.920441 0.280579\n0.842133 0.920593 0.281281\n0.871429 0.920807 0.282166\n0.897858 0.921021 0.283295\n0.921600 0.921326 0.285431\n0.942200 0.920868 0.286987\n0.960815 0.920288 0.288818\n0.977783 0.919952 0.290985\n0.993439 0.919403 0.293518\n1.000000 0.912048 0.306641\n1.000000 0.900360 0.328064\n0.127838 0.946167 0.282776\n0.165253 0.945190 0.281860\n0.198395 0.944336 0.280670\n0.228210 0.943573 0.279694\n0.255280 0.942841 0.278870\n0.280518 0.942230 0.277924\n0.305634 0.942413 0.277863\n0.330261 0.942596 0.277832\n0.354858 0.942780 0.277740\n0.380157 0.942963 0.277649\n0.406708 0.943146 0.277618\n0.434692 0.943329 0.277588\n0.464600 0.943512 0.277588\n0.496521 0.943634 0.277588\n0.531311 0.943817 0.277649\n0.569641 0.943939 0.277832\n0.610138 0.944153 0.278076\n0.652283 0.944275 0.278442\n0.694336 0.944458 0.278931\n0.735382 0.944611 0.279449\n0.774445 0.944733 0.280212\n0.810120 0.944885 0.281097\n0.842377 0.945007 0.282166\n0.871674 0.945190 0.284332\n0.897644 0.945435 0.286713\n0.921143 0.945618 0.289429\n0.942200 0.945709 0.292450\n0.960785 0.945251 0.294891\n0.977631 0.944824 0.297546\n0.993286 0.944183 0.300415\n1.000000 0.936493 0.313629\n1.000000 0.924072 0.335175\n0.135223 0.969025 0.282104\n0.171478 0.968048 0.280914\n0.203674 0.967163 0.279724\n0.232635 0.966400 0.278534\n0.259155 0.965668 0.277557\n0.284119 0.965210 0.276794\n0.308929 0.965332 0.276703\n0.333252 0.965454 0.276642\n0.357758 0.965546 0.276581\n0.383057 0.965698 0.276550\n0.409454 0.965820 0.276550\n0.437531 0.965912 0.276581\n0.467438 0.966034 0.276611\n0.499420 0.966125 0.276825\n0.534332 0.966248 0.277069\n0.572327 0.966339 0.277405\n0.612640 0.966431 0.277832\n0.654388 0.966522 0.278442\n0.696167 0.966614 0.279144\n0.736664 0.966736 0.279968\n0.775269 0.966797 0.281128\n0.810852 0.966919 0.283203\n0.842804 0.967072 0.285645\n0.871399 0.967163 0.288391\n0.897095 0.967194 0.291290\n0.920410 0.967285 0.294495\n0.941284 0.967346 0.297943\n0.960358 0.967407 0.301544\n0.977478 0.967072 0.304810\n0.993073 0.966522 0.307953\n1.000000 0.958618 0.321045\n1.000000 0.945404 0.342621\n0.142365 0.989594 0.280945\n0.177521 0.988647 0.279694\n0.208740 0.987793 0.278473\n0.236938 0.987030 0.277344\n0.262878 0.986267 0.276306\n0.287689 0.985992 0.275665\n0.312073 0.986023 0.275574\n0.336182 0.986115 0.275543\n0.360687 0.986176 0.275543\n0.385864 0.986267 0.275574\n0.412201 0.986298 0.275635\n0.440308 0.986389 0.275818\n0.470154 0.986450 0.276062\n0.501953 0.986511 0.276428\n0.536804 0.986542 0.276855\n0.574799 0.986603 0.277435\n0.614929 0.986664 0.278168\n0.656036 0.986694 0.278992\n0.697540 0.986725 0.280121\n0.738342 0.986816 0.282166\n0.776489 0.986847 0.284576\n0.811249 0.986847 0.287262\n0.842712 0.986908 0.290283\n0.870941 0.986908 0.293488\n0.896454 0.986908 0.296844\n0.919464 0.986908 0.300446\n0.940277 0.986877 0.304260\n0.959442 0.986877 0.308075\n0.976868 0.986877 0.312042\n0.992889 0.986664 0.315826\n1.000000 0.978790 0.328674\n1.000000 0.965088 0.350250\n0.161133 1.000000 0.287659\n0.193726 1.000000 0.286194\n0.222656 1.000000 0.284607\n0.248993 1.000000 0.283142\n0.273285 1.000000 0.281616\n0.297241 1.000000 0.281158\n0.320892 1.000000 0.281189\n0.344482 1.000000 0.281281\n0.368225 1.000000 0.281372\n0.392914 1.000000 0.281555\n0.418671 1.000000 0.281891\n0.446136 1.000000 0.282227\n0.475281 1.000000 0.282684\n0.506653 1.000000 0.283325\n0.540771 1.000000 0.283966\n0.577972 1.000000 0.284851\n0.617065 1.000000 0.285889\n0.658051 1.000000 0.287964\n0.698700 1.000000 0.290344\n0.737671 1.000000 0.293030\n0.774445 1.000000 0.295929\n0.808228 1.000000 0.299011\n0.838867 1.000000 0.302368\n0.866425 1.000000 0.305908\n0.891479 1.000000 0.309509\n0.914398 1.000000 0.313293\n0.935150 1.000000 0.317200\n0.954071 1.000000 0.321075\n0.971649 1.000000 0.325104\n0.987732 1.000000 0.329010\n1.000000 0.997223 0.337006\n1.000000 0.983276 0.359802\n0.192993 1.000000 0.304230\n0.224091 1.000000 0.304260\n0.251770 1.000000 0.304108\n0.277039 1.000000 0.304077\n0.300415 1.000000 0.304016\n0.322723 1.000000 0.304138\n0.344330 1.000000 0.304199\n0.365875 1.000000 0.304352\n0.388031 1.000000 0.304565\n0.410767 1.000000 0.304932\n0.434692 1.000000 0.305328\n0.460205 1.000000 0.305878\n0.487396 1.000000 0.306549\n0.516754 1.000000 0.307343\n0.549042 1.000000 0.308289\n0.584778 1.000000 0.310242\n0.621857 1.000000 0.312531\n0.659668 1.000000 0.315094\n0.697144 1.000000 0.317871\n0.733368 1.000000 0.320892\n0.767578 1.000000 0.324127\n0.799133 1.000000 0.327454\n0.828003 1.000000 0.330994\n0.854218 1.000000 0.334717\n0.878021 1.000000 0.338379\n0.899994 1.000000 0.342224\n0.919830 1.000000 0.346161\n0.938293 1.000000 0.349945\n0.955353 1.000000 0.354370\n0.971130 1.000000 0.359497\n0.986023 1.000000 0.365295\n1.000000 1.000000 0.371399\n0.000000 0.003784 0.247253\n0.044830 0.002289 0.256104\n0.092407 0.005829 0.261597\n0.137238 0.009644 0.267456\n0.178680 0.013428 0.273254\n0.216034 0.017303 0.279144\n0.249146 0.021118 0.284607\n0.279114 0.024597 0.289551\n0.306152 0.026703 0.292572\n0.331268 0.027191 0.293793\n0.355713 0.027679 0.294952\n0.380249 0.028137 0.296143\n0.405518 0.028442 0.297180\n0.432190 0.028687 0.297974\n0.460907 0.028809 0.298828\n0.491974 0.028687 0.299316\n0.526581 0.028473 0.299652\n0.566162 0.028046 0.299835\n0.609741 0.027496 0.299805\n0.655975 0.026978 0.299622\n0.703217 0.026398 0.299591\n0.749695 0.026001 0.299469\n0.793610 0.025696 0.299286\n0.833649 0.025604 0.299438\n0.869232 0.025818 0.299438\n0.900665 0.026215 0.299774\n0.928406 0.026825 0.299988\n0.952942 0.027710 0.300323\n0.974792 0.028442 0.300507\n0.994385 0.029175 0.300659\n1.000000 0.048767 0.309021\n1.000000 0.075623 0.321075\n0.000000 0.043488 0.259094\n0.044800 0.043274 0.265991\n0.092438 0.046997 0.271942\n0.137177 0.050690 0.277802\n0.178436 0.054138 0.283264\n0.215576 0.057556 0.288300\n0.248535 0.060089 0.291870\n0.278168 0.061615 0.294067\n0.305115 0.062683 0.295776\n0.330017 0.063110 0.296906\n0.354370 0.063477 0.297974\n0.378906 0.063782 0.299011\n0.404327 0.064026 0.299927\n0.431091 0.064209 0.300751\n0.459808 0.064240 0.301361\n0.490906 0.064056 0.301819\n0.525482 0.063812 0.302124\n0.565033 0.063416 0.302216\n0.608551 0.062836 0.302094\n0.654785 0.062347 0.302002\n0.701996 0.061798 0.301758\n0.748901 0.061462 0.301575\n0.793274 0.061249 0.301239\n0.833282 0.061249 0.301270\n0.868896 0.061523 0.301270\n0.900269 0.062073 0.301422\n0.927948 0.062531 0.301575\n0.952362 0.063110 0.301544\n0.974182 0.063843 0.301819\n0.993683 0.064667 0.301880\n1.000000 0.082764 0.310272\n1.000000 0.109100 0.323212\n0.000000 0.083588 0.272247\n0.046478 0.084778 0.277649\n0.092499 0.086761 0.281952\n0.137115 0.089996 0.287048\n0.178070 0.092407 0.290680\n0.214722 0.093903 0.292847\n0.247284 0.095276 0.294861\n0.276703 0.096588 0.296967\n0.303680 0.097717 0.298767\n0.328674 0.098053 0.299835\n0.353119 0.098267 0.300812\n0.377777 0.098541 0.301758\n0.403198 0.098724 0.302612\n0.429962 0.098816 0.303284\n0.458679 0.098816 0.303833\n0.489838 0.098694 0.304199\n0.524384 0.098419 0.304382\n0.563873 0.097992 0.304352\n0.607391 0.097534 0.304291\n0.654114 0.097107 0.304016\n0.701874 0.096588 0.303711\n0.748993 0.096252 0.303375\n0.793365 0.096191 0.303162\n0.833405 0.096283 0.303009\n0.868866 0.096436 0.302856\n0.900024 0.096710 0.302643\n0.927551 0.097168 0.302673\n0.951935 0.097839 0.302643\n0.973602 0.098541 0.302704\n0.993011 0.099487 0.302917\n1.000000 0.116180 0.311340\n1.000000 0.141876 0.325012\n0.000580 0.123322 0.284821\n0.048218 0.124664 0.288239\n0.093750 0.125397 0.290588\n0.136505 0.125610 0.291656\n0.176849 0.126862 0.293732\n0.213226 0.128174 0.295807\n0.245667 0.129425 0.297760\n0.275085 0.130676 0.299713\n0.302368 0.131866 0.301666\n0.327484 0.132019 0.302551\n0.351959 0.132233 0.303467\n0.376617 0.132477 0.304321\n0.402069 0.132599 0.305054\n0.428833 0.132721 0.305725\n0.457611 0.132690 0.306091\n0.488800 0.132599 0.306458\n0.523315 0.132324 0.306519\n0.563232 0.131989 0.306458\n0.607483 0.131561 0.306274\n0.654480 0.131165 0.305908\n0.702515 0.130737 0.305450\n0.749756 0.130524 0.305115\n0.793945 0.130310 0.304596\n0.833740 0.130157 0.304321\n0.868988 0.130310 0.303955\n0.900024 0.130646 0.303711\n0.927399 0.131165 0.303802\n0.951538 0.131805 0.303650\n0.973083 0.132599 0.303680\n0.992401 0.133514 0.303619\n1.000000 0.148834 0.312317\n1.000000 0.173889 0.326782\n0.002319 0.161255 0.293701\n0.049255 0.160767 0.294250\n0.093964 0.160461 0.294861\n0.135864 0.160034 0.295410\n0.175171 0.160339 0.296600\n0.211548 0.161499 0.298553\n0.244141 0.162659 0.300446\n0.273712 0.163849 0.302368\n0.301025 0.164948 0.304169\n0.326294 0.165222 0.305145\n0.350769 0.165436 0.305969\n0.375488 0.165588 0.306793\n0.400909 0.165741 0.307404\n0.427734 0.165802 0.307983\n0.456543 0.165863 0.308350\n0.488159 0.165771 0.308594\n0.523438 0.165527 0.308594\n0.563751 0.165222 0.308350\n0.608398 0.164886 0.308014\n0.655762 0.164520 0.307587\n0.703796 0.164032 0.307007\n0.750793 0.163574 0.306366\n0.794891 0.163361 0.305725\n0.834412 0.163269 0.305328\n0.869385 0.163483 0.305054\n0.900177 0.163849 0.304749\n0.927307 0.164368 0.304535\n0.951294 0.165070 0.304596\n0.972626 0.165833 0.304474\n0.991791 0.166687 0.304535\n1.000000 0.180664 0.313141\n1.000000 0.205048 0.328583\n0.002594 0.195404 0.297943\n0.049072 0.194946 0.298462\n0.093414 0.194458 0.298950\n0.135345 0.193970 0.299438\n0.174286 0.193634 0.300018\n0.210083 0.193939 0.301178\n0.242767 0.195038 0.303009\n0.272308 0.196106 0.304749\n0.299713 0.197205 0.306519\n0.325134 0.197632 0.307556\n0.349640 0.197815 0.308289\n0.374329 0.197968 0.308960\n0.399811 0.198151 0.309601\n0.427063 0.198242 0.310059\n0.456482 0.198303 0.310303\n0.488556 0.198242 0.310486\n0.524261 0.198059 0.310394\n0.565125 0.197784 0.310059\n0.610046 0.197357 0.309540\n0.657440 0.196747 0.308838\n0.705536 0.196228 0.308105\n0.752411 0.195862 0.307404\n0.796204 0.195679 0.306854\n0.835419 0.195648 0.306274\n0.870056 0.195892 0.306000\n0.900452 0.196228 0.305725\n0.927307 0.196747 0.305481\n0.951050 0.197449 0.305420\n0.972137 0.198151 0.305389\n0.991180 0.198944 0.305237\n1.000000 0.211639 0.313690\n1.000000 0.235321 0.330261\n0.002014 0.228546 0.302032\n0.048370 0.227966 0.302429\n0.093048 0.227448 0.302826\n0.135193 0.226929 0.303284\n0.174103 0.226471 0.303680\n0.209320 0.226196 0.304260\n0.241425 0.226532 0.305359\n0.270996 0.227631 0.307098\n0.298431 0.228699 0.308746\n0.323975 0.229218 0.309814\n0.348480 0.229462 0.310486\n0.373596 0.229584 0.311035\n0.399689 0.229797 0.311615\n0.427399 0.229919 0.311951\n0.457214 0.230011 0.312164\n0.489716 0.230011 0.312164\n0.525940 0.229736 0.311890\n0.567078 0.229248 0.311371\n0.612213 0.228699 0.310547\n0.659760 0.228210 0.309814\n0.707825 0.227722 0.308960\n0.754517 0.227356 0.308258\n0.797852 0.227234 0.307617\n0.836578 0.227234 0.307129\n0.870789 0.227448 0.306793\n0.900879 0.227783 0.306366\n0.927399 0.228302 0.306305\n0.950867 0.228912 0.306152\n0.971771 0.229553 0.306000\n0.990601 0.230347 0.306000\n1.000000 0.241730 0.314301\n1.000000 0.264740 0.331940\n0.001617 0.260681 0.305939\n0.048187 0.260040 0.306244\n0.092865 0.259430 0.306549\n0.135010 0.258942 0.306915\n0.173981 0.258484 0.307281\n0.209167 0.258148 0.307739\n0.240692 0.257996 0.308228\n0.269653 0.258362 0.309235\n0.297119 0.259460 0.310822\n0.323181 0.260101 0.311920\n0.348358 0.260376 0.312531\n0.373810 0.260559 0.312988\n0.400269 0.260742 0.313416\n0.428406 0.260956 0.313751\n0.458588 0.260925 0.313721\n0.491425 0.260742 0.313446\n0.528015 0.260437 0.312958\n0.569641 0.259979 0.312347\n0.615051 0.259491 0.311523\n0.662689 0.259064 0.310760\n0.710571 0.258575 0.309937\n0.756927 0.258301 0.309143\n0.799805 0.258118 0.308441\n0.838013 0.258148 0.307922\n0.871735 0.258362 0.307495\n0.901367 0.258698 0.307129\n0.927521 0.259186 0.306915\n0.950714 0.259705 0.306671\n0.971405 0.260345 0.306458\n0.990082 0.260986 0.306427\n1.000000 0.271210 0.314484\n1.000000 0.293549 0.333252\n0.001434 0.292084 0.309662\n0.048035 0.291504 0.309875\n0.092712 0.290894 0.310150\n0.134888 0.290314 0.310364\n0.173798 0.289886 0.310669\n0.209045 0.289581 0.311035\n0.240570 0.289429 0.311493\n0.269592 0.289459 0.311981\n0.296997 0.289764 0.312744\n0.323517 0.290558 0.313843\n0.348969 0.290833 0.314392\n0.374817 0.291138 0.314819\n0.401550 0.291260 0.315002\n0.429901 0.291290 0.314972\n0.460419 0.291199 0.314789\n0.493652 0.291016 0.314453\n0.530853 0.290741 0.313904\n0.572845 0.290344 0.313141\n0.618500 0.289886 0.312347\n0.666107 0.289429 0.311523\n0.713776 0.289062 0.310699\n0.759613 0.288757 0.309845\n0.801880 0.288635 0.309174\n0.839508 0.288696 0.308563\n0.872681 0.288849 0.308136\n0.901917 0.289154 0.307709\n0.927704 0.289581 0.307343\n0.950592 0.290161 0.307220\n0.971008 0.290649 0.307098\n0.989471 0.291290 0.306976\n1.000000 0.300262 0.314697\n1.000000 0.321960 0.334717\n0.000824 0.322784 0.312805\n0.047485 0.322205 0.313019\n0.092224 0.321625 0.313171\n0.134399 0.321106 0.313385\n0.173370 0.320801 0.313629\n0.209229 0.320557 0.313965\n0.241608 0.320435 0.314331\n0.271027 0.320496 0.314758\n0.298370 0.320648 0.315155\n0.324829 0.321136 0.315857\n0.350494 0.321289 0.316132\n0.376404 0.321411 0.316193\n0.403412 0.321533 0.316254\n0.432159 0.321655 0.316193\n0.463043 0.321564 0.315948\n0.496765 0.321472 0.315552\n0.534485 0.321167 0.314941\n0.576874 0.320770 0.314209\n0.622681 0.320374 0.313324\n0.670105 0.319977 0.312439\n0.717499 0.319672 0.311584\n0.762817 0.319458 0.310730\n0.804443 0.319275 0.310028\n0.841400 0.319366 0.309448\n0.874054 0.319519 0.308960\n0.902771 0.319824 0.308563\n0.928253 0.320374 0.308289\n0.950836 0.320740 0.308014\n0.971008 0.321381 0.307861\n0.989288 0.321838 0.307709\n1.000000 0.329865 0.315369\n1.000000 0.350189 0.335907\n0.000000 0.352264 0.314758\n0.046112 0.352203 0.315216\n0.090851 0.351654 0.315369\n0.133820 0.351227 0.315460\n0.173920 0.350861 0.315582\n0.210236 0.350647 0.315765\n0.242859 0.350647 0.316101\n0.272491 0.350800 0.316498\n0.299988 0.350891 0.316711\n0.326508 0.351379 0.317200\n0.353241 0.352478 0.318329\n0.379425 0.352631 0.318359\n0.406769 0.352814 0.318359\n0.435822 0.352966 0.318176\n0.467072 0.352905 0.317902\n0.501068 0.352844 0.317413\n0.539368 0.352570 0.316742\n0.582123 0.352173 0.315948\n0.627991 0.351868 0.315063\n0.675201 0.351440 0.314087\n0.722198 0.351135 0.313171\n0.766907 0.350830 0.312347\n0.807770 0.350739 0.311615\n0.844025 0.350891 0.310944\n0.876068 0.351013 0.310486\n0.904327 0.351318 0.310028\n0.929352 0.351654 0.309753\n0.951538 0.352234 0.309479\n0.971527 0.352631 0.309204\n0.989594 0.353088 0.308929\n1.000000 0.360321 0.316711\n1.000000 0.378387 0.337067\n0.000000 0.381317 0.316193\n0.045532 0.382416 0.317322\n0.091797 0.381927 0.317383\n0.135468 0.381500 0.317261\n0.175934 0.381256 0.317352\n0.212433 0.381134 0.317474\n0.244995 0.381134 0.317596\n0.274536 0.381134 0.317688\n0.301941 0.381226 0.317749\n0.328613 0.381775 0.318237\n0.355621 0.382935 0.319305\n0.382996 0.384155 0.320282\n0.410614 0.384430 0.320251\n0.439972 0.384491 0.320007\n0.471558 0.384521 0.319672\n0.505920 0.384430 0.319153\n0.544617 0.384155 0.318390\n0.587677 0.383881 0.317566\n0.633575 0.383484 0.316589\n0.680542 0.383148 0.315674\n0.726929 0.382843 0.314697\n0.770935 0.382568 0.313812\n0.811035 0.382507 0.313049\n0.846619 0.382538 0.312408\n0.878021 0.382660 0.311859\n0.905823 0.382904 0.311432\n0.930359 0.383240 0.311035\n0.952301 0.383636 0.310730\n0.971954 0.384125 0.310455\n0.989838 0.384460 0.310181\n1.000000 0.390930 0.317963\n1.000000 0.406860 0.337921\n0.000000 0.412811 0.318695\n0.047699 0.413055 0.319031\n0.094482 0.412598 0.318970\n0.138672 0.412262 0.318878\n0.179199 0.412018 0.318787\n0.215332 0.411835 0.318604\n0.247681 0.411774 0.318573\n0.277100 0.411865 0.318542\n0.304504 0.412018 0.318542\n0.331360 0.412689 0.319092\n0.358459 0.413910 0.320129\n0.386017 0.415070 0.321014\n0.414856 0.416351 0.322021\n0.444397 0.416504 0.321808\n0.476318 0.416595 0.321381\n0.511078 0.416504 0.320740\n0.550262 0.416260 0.319977\n0.593475 0.415894 0.319061\n0.639221 0.415619 0.318115\n0.685913 0.415253 0.317078\n0.731689 0.414917 0.316071\n0.774963 0.414764 0.315186\n0.814209 0.414551 0.314392\n0.849060 0.414642 0.313721\n0.879883 0.414764 0.313202\n0.907135 0.414978 0.312683\n0.931335 0.415222 0.312286\n0.952911 0.415497 0.311890\n0.972382 0.415833 0.311554\n0.990082 0.416168 0.311066\n1.000000 0.421967 0.318787\n1.000000 0.435699 0.338409\n0.002319 0.444733 0.320770\n0.051788 0.444305 0.320587\n0.098816 0.443878 0.320190\n0.142792 0.443451 0.319885\n0.183105 0.443176 0.319641\n0.218964 0.443054 0.319427\n0.251068 0.443085 0.319305\n0.280273 0.443207 0.319244\n0.307587 0.443451 0.319214\n0.334473 0.444275 0.319763\n0.361633 0.445435 0.320740\n0.389343 0.446686 0.321686\n0.418396 0.447906 0.322571\n0.449280 0.449158 0.323456\n0.481415 0.449188 0.322968\n0.516541 0.449127 0.322296\n0.556091 0.448853 0.321442\n0.599426 0.448578 0.320465\n0.644958 0.448212 0.319458\n0.691101 0.447784 0.318390\n0.736267 0.447510 0.317413\n0.778748 0.447327 0.316467\n0.817169 0.447174 0.315674\n0.851349 0.447235 0.314972\n0.881592 0.447205 0.314362\n0.908325 0.447357 0.313812\n0.932159 0.447540 0.313354\n0.953552 0.447815 0.312805\n0.972778 0.448090 0.312225\n0.990295 0.448334 0.311615\n1.000000 0.453339 0.319336\n1.000000 0.464935 0.338654\n0.007568 0.476624 0.321991\n0.057007 0.476105 0.321564\n0.104065 0.475616 0.321014\n0.148010 0.475342 0.320587\n0.187927 0.475159 0.320221\n0.223297 0.475067 0.320007\n0.255035 0.475159 0.319916\n0.283905 0.475372 0.319824\n0.311005 0.475586 0.319733\n0.337921 0.476501 0.320343\n0.364990 0.477661 0.321228\n0.392883 0.478912 0.322113\n0.422150 0.480133 0.322968\n0.453278 0.481354 0.323792\n0.486694 0.482452 0.324402\n0.522095 0.482391 0.323700\n0.561951 0.482117 0.322784\n0.605225 0.481781 0.321777\n0.650482 0.481384 0.320679\n0.696136 0.481079 0.319641\n0.740601 0.480713 0.318604\n0.782257 0.480499 0.317657\n0.819885 0.480316 0.316803\n0.853363 0.480225 0.316101\n0.883087 0.480255 0.315369\n0.909515 0.480286 0.314728\n0.933044 0.480499 0.314026\n0.954132 0.480652 0.313293\n0.973206 0.480988 0.312561\n0.990570 0.481201 0.311829\n1.000000 0.485474 0.319550\n1.000000 0.495026 0.338654\n0.013763 0.509216 0.322632\n0.063507 0.508789 0.322144\n0.110535 0.508392 0.321625\n0.154114 0.508087 0.321106\n0.193481 0.507965 0.320740\n0.228210 0.507965 0.320496\n0.259338 0.508087 0.320251\n0.287872 0.508362 0.320190\n0.314697 0.508636 0.320038\n0.341553 0.509674 0.320709\n0.368683 0.510864 0.321594\n0.396637 0.512115 0.322418\n0.426025 0.513336 0.323181\n0.457336 0.514526 0.323975\n0.491028 0.515808 0.324707\n0.527710 0.516602 0.324951\n0.567749 0.516296 0.324005\n0.610870 0.515900 0.322968\n0.655823 0.515533 0.321869\n0.700836 0.515045 0.320740\n0.744568 0.514771 0.319733\n0.785431 0.514435 0.318726\n0.822357 0.514221 0.317810\n0.855286 0.514160 0.316925\n0.884552 0.514160 0.316040\n0.910614 0.514130 0.315186\n0.933899 0.514343 0.314362\n0.954742 0.514465 0.313477\n0.973602 0.514801 0.312653\n0.990814 0.515045 0.311829\n1.000000 0.518463 0.319672\n1.000000 0.526367 0.338531\n0.021545 0.544403 0.323151\n0.071289 0.543945 0.322510\n0.117981 0.543579 0.321991\n0.160980 0.543365 0.321411\n0.199493 0.543304 0.320923\n0.233429 0.543335 0.320648\n0.263916 0.543518 0.320557\n0.291962 0.543793 0.320343\n0.318481 0.544098 0.320190\n0.345367 0.545258 0.320923\n0.372437 0.546539 0.321747\n0.400421 0.547699 0.322540\n0.429932 0.548981 0.323273\n0.461334 0.550232 0.323975\n0.495178 0.551422 0.324677\n0.532410 0.552612 0.325317\n0.573303 0.553009 0.325134\n0.616272 0.552643 0.324066\n0.660767 0.552124 0.322937\n0.705109 0.551575 0.321777\n0.748138 0.551147 0.320679\n0.788330 0.550842 0.319580\n0.824677 0.550537 0.318451\n0.857147 0.550385 0.317413\n0.886017 0.550385 0.316376\n0.911774 0.550354 0.315399\n0.934753 0.550476 0.314453\n0.955383 0.550659 0.313507\n0.974060 0.550690 0.312592\n0.991089 0.551056 0.311707\n1.000000 0.553619 0.319702\n1.000000 0.560028 0.338409\n0.030609 0.582275 0.323334\n0.080048 0.581879 0.322662\n0.126099 0.581512 0.322052\n0.168274 0.581299 0.321503\n0.205780 0.581238 0.321075\n0.238800 0.581268 0.320801\n0.268585 0.581482 0.320526\n0.296143 0.581726 0.320374\n0.322388 0.582092 0.320251\n0.349121 0.583313 0.320984\n0.376129 0.584503 0.321777\n0.404144 0.585785 0.322510\n0.433716 0.587006 0.323181\n0.465179 0.588135 0.323853\n0.499023 0.589294 0.324493\n0.536469 0.590485 0.325104\n0.578033 0.591553 0.325623\n0.621185 0.591522 0.325043\n0.665161 0.590912 0.323853\n0.709106 0.590332 0.322571\n0.751617 0.589722 0.321289\n0.791229 0.589264 0.319977\n0.827087 0.588989 0.318756\n0.859009 0.588715 0.317566\n0.887482 0.588654 0.316437\n0.912842 0.588593 0.315369\n0.935547 0.588684 0.314362\n0.955994 0.588776 0.313385\n0.974457 0.588928 0.312469\n0.991364 0.589081 0.311554\n1.000000 0.590851 0.319702\n1.000000 0.595245 0.338348\n0.040619 0.622253 0.323425\n0.089539 0.621857 0.322632\n0.134766 0.621429 0.322052\n0.175842 0.621216 0.321503\n0.212158 0.621124 0.321106\n0.244202 0.621155 0.320740\n0.273254 0.621338 0.320465\n0.300201 0.621460 0.320221\n0.326324 0.621918 0.320221\n0.352875 0.623138 0.320984\n0.379791 0.624268 0.321686\n0.407776 0.625397 0.322296\n0.437317 0.626556 0.322968\n0.468719 0.627594 0.323578\n0.502625 0.628723 0.324158\n0.540100 0.629700 0.324707\n0.581360 0.630737 0.325195\n0.625427 0.631744 0.325592\n0.669495 0.631256 0.324463\n0.712982 0.630524 0.322998\n0.755005 0.630005 0.321564\n0.794067 0.629456 0.320129\n0.829376 0.629089 0.318787\n0.860840 0.628784 0.317535\n0.888885 0.628571 0.316345\n0.913940 0.628540 0.315247\n0.936401 0.628448 0.314209\n0.956543 0.628571 0.313202\n0.974884 0.628662 0.312317\n0.991547 0.628632 0.311462\n1.000000 0.629578 0.319824\n1.000000 0.631866 0.338470\n0.051361 0.663574 0.323303\n0.099457 0.663025 0.322540\n0.143616 0.662598 0.321930\n0.183380 0.662323 0.321350\n0.218445 0.662201 0.320984\n0.249481 0.662170 0.320557\n0.277771 0.662262 0.320312\n0.304230 0.662354 0.319946\n0.330170 0.662842 0.320129\n0.356445 0.663940 0.320770\n0.383148 0.664978 0.321442\n0.411102 0.666046 0.322021\n0.440582 0.667053 0.322662\n0.471954 0.667999 0.323181\n0.505707 0.669006 0.323700\n0.543335 0.669952 0.324097\n0.584656 0.670807 0.324371\n0.628601 0.671722 0.324585\n0.673706 0.672638 0.324677\n0.716919 0.671875 0.323120\n0.758392 0.671112 0.321564\n0.796875 0.670532 0.320038\n0.831635 0.670074 0.318665\n0.862640 0.669708 0.317383\n0.890289 0.669434 0.316162\n0.915009 0.669250 0.315033\n0.937164 0.669220 0.314056\n0.957092 0.669067 0.313110\n0.975189 0.669067 0.312286\n0.991791 0.669067 0.311584\n1.000000 0.668854 0.320129\n1.000000 0.669159 0.338806\n0.062439 0.705231 0.323120\n0.109497 0.704681 0.322327\n0.152374 0.704224 0.321686\n0.190796 0.703827 0.321136\n0.224426 0.703613 0.320709\n0.254547 0.703583 0.320343\n0.282166 0.703522 0.319916\n0.308014 0.703491 0.319672\n0.333679 0.704041 0.319885\n0.359741 0.705017 0.320496\n0.386322 0.705902 0.321106\n0.414093 0.706787 0.321686\n0.443512 0.707733 0.322205\n0.474854 0.708527 0.322571\n0.508850 0.709381 0.322906\n0.546600 0.710236 0.323090\n0.587982 0.711060 0.323242\n0.631683 0.711853 0.323303\n0.676483 0.712646 0.323303\n0.720642 0.713165 0.322998\n0.761658 0.712463 0.321411\n0.799622 0.711731 0.319855\n0.833740 0.711121 0.318451\n0.864319 0.710785 0.317108\n0.891602 0.710449 0.315979\n0.915955 0.710175 0.314941\n0.937866 0.710022 0.314026\n0.957611 0.709747 0.313202\n0.975555 0.709808 0.312469\n0.991943 0.709747 0.311920\n1.000000 0.708435 0.320770\n1.000000 0.706451 0.339447\n0.073700 0.746521 0.322784\n0.119476 0.745880 0.322083\n0.160950 0.745331 0.321381\n0.197845 0.744904 0.320831\n0.230194 0.744598 0.320312\n0.259338 0.744385 0.319916\n0.286194 0.744293 0.319611\n0.311584 0.744171 0.319275\n0.337036 0.744690 0.319611\n0.362732 0.745483 0.320160\n0.389099 0.746246 0.320648\n0.416840 0.747040 0.321075\n0.446228 0.747803 0.321411\n0.477875 0.748535 0.321625\n0.511932 0.749237 0.321777\n0.549896 0.749969 0.321838\n0.591278 0.750732 0.321838\n0.634949 0.751465 0.321808\n0.679321 0.752136 0.321777\n0.723206 0.752869 0.321686\n0.764862 0.753143 0.321106\n0.802155 0.752289 0.319580\n0.835815 0.751648 0.318237\n0.865967 0.751282 0.316986\n0.892822 0.750824 0.315918\n0.916901 0.750458 0.315002\n0.938538 0.750214 0.314178\n0.958099 0.749969 0.313538\n0.975830 0.749695 0.312958\n0.992157 0.749573 0.312561\n1.000000 0.747040 0.321777\n1.000000 0.743103 0.340546\n0.084717 0.786591 0.322601\n0.128967 0.785797 0.321716\n0.169006 0.785187 0.321014\n0.204346 0.784637 0.320404\n0.235504 0.784302 0.319977\n0.263733 0.783966 0.319611\n0.289856 0.783722 0.319275\n0.314697 0.783447 0.318848\n0.339905 0.783966 0.319214\n0.365448 0.784637 0.319641\n0.391815 0.785278 0.319946\n0.419617 0.785919 0.320160\n0.449127 0.786560 0.320282\n0.480804 0.787231 0.320374\n0.515198 0.787872 0.320404\n0.553131 0.788452 0.320374\n0.594604 0.789093 0.320312\n0.637970 0.789703 0.320221\n0.682068 0.790344 0.320129\n0.725433 0.790894 0.320099\n0.767029 0.791504 0.319977\n0.804688 0.791687 0.319427\n0.837769 0.790924 0.318176\n0.867432 0.790192 0.317047\n0.893982 0.789795 0.316071\n0.917755 0.789307 0.315308\n0.939178 0.789032 0.314667\n0.958527 0.788635 0.314178\n0.976135 0.788544 0.313843\n0.992249 0.788239 0.313660\n1.000000 0.784729 0.323151\n1.000000 0.778717 0.342072\n0.095337 0.824615 0.322174\n0.138031 0.823730 0.321411\n0.176483 0.823029 0.320709\n0.210297 0.822449 0.320099\n0.240326 0.821960 0.319580\n0.267578 0.821503 0.319122\n0.293060 0.821136 0.318787\n0.317474 0.820770 0.318237\n0.342590 0.821259 0.318542\n0.368103 0.821869 0.318756\n0.394653 0.822388 0.318909\n0.422485 0.822906 0.319000\n0.452087 0.823425 0.319000\n0.484009 0.824005 0.319000\n0.518372 0.824493 0.318939\n0.556519 0.824982 0.318848\n0.597839 0.825562 0.318787\n0.640991 0.826080 0.318726\n0.684631 0.826538 0.318604\n0.727600 0.827057 0.318542\n0.768524 0.827576 0.318573\n0.806213 0.828003 0.318634\n0.839630 0.828094 0.318298\n0.868835 0.827332 0.317352\n0.895050 0.826782 0.316528\n0.918549 0.826294 0.315918\n0.939667 0.825775 0.315491\n0.958862 0.825470 0.315277\n0.976288 0.825043 0.315216\n0.992401 0.824829 0.315308\n1.000000 0.820496 0.325592\n1.000000 0.813141 0.345642\n0.105194 0.859924 0.321716\n0.146332 0.859009 0.321014\n0.183167 0.858246 0.320312\n0.215546 0.857574 0.319672\n0.244476 0.856995 0.319214\n0.271027 0.856476 0.318573\n0.296082 0.856018 0.318085\n0.320404 0.855591 0.317444\n0.345398 0.856049 0.317566\n0.370941 0.856506 0.317688\n0.397430 0.856903 0.317688\n0.425385 0.857391 0.317688\n0.455139 0.857788 0.317627\n0.486969 0.858246 0.317535\n0.521515 0.858643 0.317474\n0.559753 0.859039 0.317413\n0.600891 0.859467 0.317322\n0.643738 0.859863 0.317261\n0.687042 0.860291 0.317261\n0.729584 0.860657 0.317352\n0.769928 0.861084 0.317444\n0.806946 0.861420 0.317627\n0.840515 0.861816 0.317902\n0.870117 0.861847 0.317932\n0.895996 0.861206 0.317383\n0.919220 0.860718 0.316986\n0.940155 0.860107 0.316803\n0.959137 0.859589 0.316864\n0.976532 0.859375 0.317657\n0.992432 0.859253 0.319000\n1.000000 0.854187 0.330139\n1.000000 0.845245 0.350525\n0.114227 0.892090 0.321442\n0.153717 0.891113 0.320526\n0.188934 0.890289 0.319855\n0.220184 0.889557 0.319244\n0.248352 0.888916 0.318481\n0.274475 0.888306 0.317749\n0.299164 0.887756 0.316895\n0.323456 0.887482 0.316406\n0.348358 0.887817 0.316406\n0.373749 0.888153 0.316406\n0.400360 0.888489 0.316345\n0.428253 0.888824 0.316284\n0.458099 0.889099 0.316193\n0.490112 0.889465 0.316162\n0.524719 0.889740 0.316040\n0.563049 0.890106 0.316010\n0.603973 0.890381 0.316040\n0.646576 0.890717 0.316101\n0.689453 0.891022 0.316193\n0.731384 0.891327 0.316406\n0.771118 0.891602 0.316650\n0.807800 0.891907 0.317017\n0.840820 0.892181 0.317535\n0.870392 0.892456 0.318085\n0.896790 0.892639 0.318665\n0.919830 0.891876 0.318604\n0.940613 0.891510 0.319183\n0.959442 0.891113 0.320526\n0.976624 0.890747 0.322235\n0.992432 0.890472 0.324127\n1.000000 0.884674 0.335480\n1.000000 0.874329 0.356079\n0.122131 0.920746 0.321136\n0.160187 0.919769 0.320221\n0.194305 0.918884 0.319244\n0.224762 0.918182 0.318420\n0.252289 0.917450 0.317535\n0.277893 0.916809 0.316650\n0.302307 0.916199 0.315704\n0.326447 0.915985 0.315247\n0.351410 0.916199 0.315216\n0.376709 0.916473 0.315125\n0.403198 0.916718 0.315063\n0.431213 0.916962 0.315002\n0.461182 0.917206 0.314911\n0.493134 0.917419 0.314880\n0.527893 0.917694 0.314880\n0.565948 0.917877 0.314972\n0.606903 0.918152 0.315063\n0.649048 0.918365 0.315277\n0.691559 0.918579 0.315521\n0.733093 0.918793 0.315887\n0.772339 0.918976 0.316315\n0.808441 0.919220 0.316956\n0.841034 0.919373 0.317688\n0.870239 0.919586 0.318542\n0.896759 0.919891 0.320068\n0.920441 0.920166 0.322235\n0.940979 0.919678 0.323700\n0.959595 0.919220 0.325562\n0.976593 0.918640 0.327759\n0.992310 0.918274 0.330078\n1.000000 0.911896 0.341583\n1.000000 0.900482 0.362396\n0.129517 0.946228 0.320496\n0.166565 0.945251 0.319427\n0.199707 0.944366 0.318359\n0.229279 0.943573 0.317352\n0.256195 0.942871 0.316467\n0.281372 0.942200 0.315460\n0.305389 0.941559 0.314453\n0.329559 0.941467 0.314056\n0.354187 0.941620 0.313965\n0.379578 0.941772 0.313904\n0.406189 0.941986 0.313812\n0.434113 0.942139 0.313782\n0.464050 0.942291 0.313782\n0.496124 0.942444 0.313812\n0.530792 0.942627 0.313995\n0.568939 0.942780 0.314148\n0.609558 0.942932 0.314453\n0.651306 0.943085 0.314789\n0.693573 0.943268 0.315277\n0.734558 0.943420 0.315887\n0.773254 0.943512 0.316559\n0.808960 0.943665 0.317474\n0.841339 0.943817 0.318939\n0.870392 0.944031 0.321045\n0.896576 0.944214 0.323517\n0.919891 0.944427 0.326202\n0.940948 0.944580 0.329071\n0.959595 0.944153 0.331543\n0.976471 0.943512 0.334015\n0.992157 0.943115 0.336792\n1.000000 0.936493 0.348297\n1.000000 0.924133 0.369202\n0.136810 0.968994 0.319580\n0.172791 0.968048 0.318420\n0.204834 0.967163 0.317230\n0.233704 0.966400 0.316193\n0.259979 0.965698 0.315063\n0.284760 0.964996 0.314056\n0.308472 0.964325 0.313171\n0.332672 0.964325 0.312897\n0.357147 0.964447 0.312805\n0.382446 0.964569 0.312744\n0.408936 0.964661 0.312775\n0.436951 0.964783 0.312805\n0.466888 0.964874 0.312927\n0.498810 0.964966 0.313110\n0.533569 0.965057 0.313416\n0.571625 0.965179 0.313782\n0.611908 0.965271 0.314240\n0.653534 0.965393 0.314880\n0.695129 0.965485 0.315582\n0.735779 0.965546 0.316467\n0.774323 0.965668 0.317871\n0.809875 0.965820 0.320038\n0.841583 0.965912 0.322449\n0.870300 0.965973 0.325073\n0.895813 0.966064 0.328003\n0.919006 0.966156 0.331177\n0.939941 0.966187 0.334412\n0.959167 0.966248 0.337921\n0.976288 0.966003 0.340973\n0.991943 0.965302 0.343964\n1.000000 0.958588 0.355347\n1.000000 0.945587 0.376312\n0.143860 0.989594 0.318359\n0.178802 0.988617 0.317047\n0.209869 0.987793 0.316071\n0.237854 0.987000 0.314941\n0.263702 0.986298 0.313782\n0.288025 0.985626 0.312805\n0.311462 0.984924 0.311798\n0.335571 0.985046 0.311798\n0.360077 0.985077 0.311829\n0.385132 0.985168 0.311859\n0.411530 0.985229 0.311981\n0.439667 0.985291 0.312164\n0.469360 0.985321 0.312439\n0.501434 0.985382 0.312775\n0.536102 0.985443 0.313263\n0.573975 0.985504 0.313843\n0.614075 0.985535 0.314606\n0.655243 0.985596 0.315460\n0.696869 0.985626 0.316833\n0.737305 0.985687 0.319031\n0.775299 0.985718 0.321411\n0.810059 0.985718 0.324036\n0.841309 0.985748 0.327026\n0.869659 0.985779 0.330078\n0.895050 0.985779 0.333374\n0.918152 0.985779 0.336823\n0.939148 0.985748 0.340424\n0.958221 0.985748 0.344177\n0.975739 0.985748 0.347900\n0.991760 0.985565 0.351440\n1.000000 0.978760 0.362610\n1.000000 0.965179 0.383484\n0.162567 1.000000 0.324097\n0.194824 1.000000 0.322723\n0.223694 1.000000 0.321136\n0.249847 1.000000 0.319855\n0.274078 1.000000 0.318451\n0.297028 1.000000 0.317108\n0.319458 1.000000 0.315948\n0.342987 1.000000 0.316010\n0.366943 1.000000 0.316162\n0.391632 1.000000 0.316406\n0.417542 1.000000 0.316711\n0.445129 1.000000 0.317047\n0.474457 1.000000 0.317596\n0.505798 1.000000 0.318207\n0.539948 1.000000 0.318909\n0.577148 1.000000 0.319794\n0.616699 1.000000 0.321167\n0.657623 1.000000 0.323242\n0.698059 1.000000 0.325653\n0.737091 1.000000 0.328278\n0.773956 1.000000 0.331085\n0.807587 1.000000 0.334137\n0.838196 1.000000 0.337433\n0.866058 1.000000 0.340759\n0.891083 1.000000 0.344299\n0.914062 1.000000 0.347839\n0.934906 1.000000 0.351562\n0.953979 1.000000 0.355255\n0.971405 1.000000 0.359009\n0.987701 1.000000 0.362854\n1.000000 0.997223 0.370850\n1.000000 0.983246 0.393005\n0.194214 1.000000 0.338623\n0.225128 1.000000 0.338562\n0.252747 1.000000 0.338440\n0.277802 1.000000 0.338348\n0.301178 1.000000 0.338379\n0.323395 1.000000 0.338379\n0.344879 1.000000 0.338531\n0.366455 1.000000 0.338715\n0.388550 1.000000 0.338928\n0.411255 1.000000 0.339294\n0.435181 1.000000 0.339752\n0.460632 1.000000 0.340302\n0.487793 1.000000 0.340973\n0.517181 1.000000 0.341766\n0.549774 1.000000 0.343048\n0.585419 1.000000 0.345062\n0.622345 1.000000 0.347321\n0.659943 1.000000 0.349823\n0.697296 1.000000 0.352600\n0.733521 1.000000 0.355530\n0.767670 1.000000 0.358643\n0.799286 1.000000 0.361908\n0.827942 1.000000 0.365234\n0.854218 1.000000 0.368805\n0.878174 1.000000 0.372345\n0.899994 1.000000 0.375916\n0.919922 1.000000 0.379608\n0.938354 1.000000 0.383301\n0.955414 1.000000 0.387726\n0.971130 1.000000 0.392853\n0.986023 1.000000 0.398407\n1.000000 1.000000 0.404022\n0.000000 0.004578 0.286438\n0.043396 0.001831 0.296722\n0.090973 0.005463 0.302307\n0.135803 0.009247 0.307922\n0.177216 0.013123 0.313721\n0.214539 0.016907 0.319214\n0.247742 0.020660 0.324432\n0.277710 0.024139 0.329102\n0.305206 0.026123 0.331604\n0.331207 0.027710 0.333679\n0.355713 0.028320 0.334869\n0.380188 0.028687 0.335846\n0.405487 0.029053 0.336823\n0.432190 0.029297 0.337677\n0.460876 0.029327 0.338348\n0.491974 0.029297 0.338776\n0.526581 0.029022 0.339081\n0.566162 0.028625 0.339233\n0.609741 0.028137 0.339050\n0.655975 0.027557 0.338989\n0.703217 0.027008 0.338806\n0.749664 0.026611 0.338562\n0.793732 0.026337 0.338562\n0.833771 0.026245 0.338409\n0.869324 0.026520 0.338531\n0.900726 0.026917 0.338654\n0.928528 0.027649 0.338959\n0.953003 0.028412 0.339203\n0.974854 0.029114 0.339264\n0.994476 0.029938 0.339478\n1.000000 0.049500 0.346283\n1.000000 0.076355 0.356323\n0.000000 0.044189 0.298462\n0.043396 0.042908 0.306641\n0.090973 0.046509 0.312317\n0.135712 0.050171 0.317963\n0.177002 0.053772 0.323212\n0.214111 0.056976 0.327759\n0.247040 0.058990 0.330444\n0.276581 0.060455 0.332489\n0.303894 0.061920 0.334442\n0.329712 0.063385 0.336456\n0.354340 0.064026 0.337738\n0.378906 0.064301 0.338623\n0.404297 0.064575 0.339508\n0.431061 0.064697 0.340210\n0.459808 0.064728 0.340790\n0.490906 0.064636 0.341156\n0.525482 0.064362 0.341309\n0.565002 0.063965 0.341400\n0.608551 0.063446 0.341309\n0.654785 0.062897 0.341064\n0.702148 0.062439 0.340759\n0.749084 0.062103 0.340515\n0.793457 0.061890 0.340363\n0.833496 0.061981 0.340149\n0.869080 0.062286 0.340332\n0.900452 0.062744 0.340179\n0.928040 0.063171 0.340118\n0.952454 0.063751 0.340179\n0.974213 0.064514 0.340393\n0.993744 0.065399 0.340363\n1.000000 0.083588 0.347382\n1.000000 0.109863 0.358215\n0.000000 0.083984 0.311493\n0.045135 0.084473 0.317993\n0.091095 0.086212 0.321808\n0.135681 0.089386 0.326538\n0.176544 0.091309 0.329285\n0.213165 0.092712 0.331299\n0.245758 0.094147 0.333313\n0.275146 0.095459 0.335297\n0.302277 0.096741 0.337189\n0.328217 0.098114 0.339050\n0.353088 0.098816 0.340424\n0.377777 0.099030 0.341187\n0.403168 0.099213 0.341949\n0.429932 0.099304 0.342590\n0.458679 0.099335 0.343109\n0.489838 0.099243 0.343506\n0.524384 0.098969 0.343597\n0.563873 0.098541 0.343475\n0.607544 0.098145 0.343292\n0.654297 0.097626 0.342987\n0.702179 0.097260 0.342651\n0.749237 0.096954 0.342255\n0.793640 0.096802 0.342010\n0.833679 0.097015 0.341766\n0.869019 0.097015 0.341431\n0.900238 0.097321 0.341309\n0.927734 0.097839 0.341309\n0.951996 0.098450 0.341217\n0.973633 0.099274 0.341125\n0.993042 0.100281 0.341217\n1.000000 0.116913 0.348480\n1.000000 0.142639 0.360168\n0.000000 0.123016 0.323944\n0.046875 0.124115 0.327850\n0.092224 0.124298 0.329132\n0.134888 0.124420 0.330139\n0.175232 0.125763 0.332184\n0.211639 0.126984 0.334137\n0.244019 0.128235 0.335999\n0.273560 0.129517 0.337921\n0.300903 0.130707 0.339722\n0.326904 0.131897 0.341461\n0.351959 0.132721 0.342834\n0.376617 0.132965 0.343658\n0.402039 0.133087 0.344360\n0.428802 0.133179 0.344818\n0.457611 0.133240 0.345215\n0.488800 0.133148 0.345490\n0.523438 0.132904 0.345551\n0.563507 0.132538 0.345367\n0.607819 0.132141 0.345062\n0.654816 0.131683 0.344696\n0.702911 0.131409 0.344238\n0.750153 0.131195 0.343811\n0.794281 0.130829 0.343201\n0.834076 0.130798 0.342865\n0.869232 0.130920 0.342377\n0.900238 0.131256 0.342285\n0.927490 0.131805 0.342224\n0.951660 0.132446 0.342072\n0.973145 0.133331 0.342010\n0.992432 0.134247 0.342133\n1.000000 0.149567 0.349365\n1.000000 0.174591 0.361786\n0.000671 0.160095 0.332184\n0.047546 0.159729 0.332733\n0.092285 0.159302 0.333221\n0.134155 0.158875 0.333771\n0.173401 0.159180 0.334869\n0.209900 0.160309 0.336700\n0.242554 0.161499 0.338593\n0.272156 0.162689 0.340332\n0.299500 0.163757 0.342041\n0.325592 0.164948 0.343781\n0.350769 0.165894 0.345123\n0.375458 0.166046 0.345886\n0.400909 0.166290 0.346466\n0.427734 0.166321 0.346924\n0.456635 0.166382 0.347321\n0.488342 0.166321 0.347443\n0.523682 0.166107 0.347412\n0.564178 0.165833 0.347137\n0.608826 0.165497 0.346741\n0.656219 0.165100 0.346252\n0.704315 0.164612 0.345581\n0.751251 0.164124 0.344788\n0.795288 0.163879 0.344269\n0.834778 0.163940 0.343811\n0.869659 0.164062 0.343506\n0.900421 0.164459 0.343140\n0.927460 0.165039 0.343079\n0.951355 0.165710 0.342804\n0.972687 0.166473 0.342834\n0.991791 0.167389 0.342896\n1.000000 0.181366 0.350006\n1.000000 0.205750 0.363373\n0.000763 0.194214 0.336273\n0.047180 0.193817 0.336761\n0.091583 0.193268 0.337128\n0.133667 0.192841 0.337616\n0.172638 0.192505 0.338074\n0.208496 0.192749 0.339203\n0.241180 0.193878 0.340942\n0.270813 0.194885 0.342590\n0.298187 0.196075 0.344238\n0.324280 0.197174 0.345856\n0.349640 0.198242 0.347351\n0.374329 0.198456 0.347992\n0.399902 0.198578 0.348511\n0.427246 0.198730 0.348846\n0.456757 0.198792 0.349152\n0.488922 0.198761 0.349213\n0.524750 0.198639 0.349091\n0.565735 0.198395 0.348694\n0.610596 0.197845 0.347992\n0.658020 0.197266 0.347260\n0.706085 0.196808 0.346527\n0.752960 0.196381 0.345825\n0.796692 0.196228 0.345154\n0.835815 0.196228 0.344696\n0.870361 0.196442 0.344238\n0.900726 0.196899 0.344025\n0.927490 0.197418 0.343811\n0.951141 0.198029 0.343506\n0.972260 0.198822 0.343567\n0.991211 0.199646 0.343506\n1.000000 0.212280 0.350677\n1.000000 0.235992 0.364960\n0.000122 0.227478 0.340210\n0.046631 0.226807 0.340576\n0.091309 0.226257 0.340851\n0.133514 0.225708 0.341217\n0.172455 0.225311 0.341644\n0.207733 0.224976 0.342072\n0.239838 0.225403 0.343140\n0.269470 0.226440 0.344757\n0.296906 0.227539 0.346344\n0.322998 0.228668 0.347870\n0.348541 0.229828 0.349365\n0.373779 0.230042 0.349915\n0.399963 0.230286 0.350372\n0.427673 0.230438 0.350647\n0.457611 0.230530 0.350830\n0.490295 0.230560 0.350800\n0.526428 0.230164 0.350372\n0.567688 0.229736 0.349670\n0.612885 0.229218 0.348938\n0.660461 0.228729 0.348206\n0.708527 0.228302 0.347382\n0.755096 0.227966 0.346619\n0.798401 0.227814 0.345947\n0.837067 0.227844 0.345398\n0.871124 0.228058 0.344910\n0.901154 0.228394 0.344635\n0.927612 0.228943 0.344391\n0.950989 0.229523 0.344269\n0.971863 0.230194 0.344025\n0.990662 0.230927 0.343903\n1.000000 0.242340 0.351135\n1.000000 0.265350 0.366486\n0.000000 0.259460 0.343781\n0.046478 0.258972 0.344208\n0.091187 0.258331 0.344421\n0.133362 0.257782 0.344727\n0.172333 0.257294 0.344971\n0.207611 0.256989 0.345367\n0.239136 0.256866 0.345825\n0.268127 0.257263 0.346741\n0.295685 0.258362 0.348267\n0.322388 0.259460 0.349731\n0.348511 0.260681 0.351105\n0.374146 0.261017 0.351685\n0.400696 0.261292 0.352020\n0.428864 0.261505 0.352264\n0.459076 0.261383 0.352112\n0.491943 0.261200 0.351807\n0.528687 0.260864 0.351257\n0.570374 0.260468 0.350586\n0.615845 0.259979 0.349884\n0.663513 0.259491 0.348999\n0.711395 0.259155 0.348114\n0.757599 0.258820 0.347412\n0.800385 0.258667 0.346588\n0.838531 0.258728 0.346039\n0.872070 0.258911 0.345612\n0.901703 0.259247 0.345154\n0.927765 0.259766 0.345032\n0.950867 0.260315 0.344696\n0.971497 0.260956 0.344666\n0.990082 0.261566 0.344421\n1.000000 0.271790 0.351471\n1.000000 0.294098 0.367889\n0.000000 0.290802 0.347168\n0.046295 0.290375 0.347626\n0.091003 0.289673 0.347778\n0.133179 0.289154 0.347992\n0.172211 0.288788 0.348206\n0.207458 0.288483 0.348541\n0.239075 0.288361 0.348938\n0.268311 0.288300 0.349335\n0.295807 0.288757 0.350037\n0.322754 0.289948 0.351471\n0.349243 0.291199 0.352844\n0.375336 0.291626 0.353302\n0.402039 0.291687 0.353363\n0.430420 0.291687 0.353302\n0.461060 0.291656 0.353058\n0.494324 0.291504 0.352692\n0.531586 0.291229 0.352112\n0.573730 0.290802 0.351379\n0.619354 0.290375 0.350586\n0.666931 0.289978 0.349640\n0.714600 0.289551 0.348724\n0.760345 0.289276 0.347931\n0.802521 0.289185 0.347137\n0.840027 0.289215 0.346558\n0.873047 0.289368 0.346161\n0.902161 0.289703 0.345642\n0.927887 0.290161 0.345306\n0.950714 0.290649 0.345062\n0.971100 0.291260 0.344910\n0.989532 0.291809 0.344818\n1.000000 0.300812 0.351593\n1.000000 0.322449 0.369049\n0.000000 0.321716 0.350403\n0.046173 0.321442 0.350922\n0.090881 0.320801 0.350922\n0.133057 0.320343 0.351135\n0.172180 0.319916 0.351257\n0.208282 0.319702 0.351501\n0.240692 0.319641 0.351807\n0.270142 0.319641 0.352112\n0.297577 0.319855 0.352539\n0.324036 0.320282 0.353027\n0.350616 0.321350 0.354126\n0.376770 0.321686 0.354340\n0.403839 0.321808 0.354340\n0.432587 0.321838 0.354218\n0.463593 0.321808 0.353912\n0.497284 0.321686 0.353455\n0.535095 0.321442 0.352875\n0.577606 0.321045 0.352020\n0.623322 0.320618 0.351105\n0.670776 0.320190 0.350128\n0.718018 0.319855 0.349274\n0.763214 0.319550 0.348419\n0.804718 0.319458 0.347656\n0.841553 0.319550 0.347046\n0.874023 0.319702 0.346527\n0.902679 0.319977 0.346039\n0.928009 0.320374 0.345764\n0.950531 0.320801 0.345459\n0.970673 0.321350 0.345215\n0.988892 0.321869 0.344971\n1.000000 0.329620 0.351349\n1.000000 0.350647 0.370178\n0.000000 0.352539 0.353455\n0.046021 0.352509 0.354004\n0.090820 0.351990 0.354065\n0.134155 0.351471 0.354095\n0.174316 0.351166 0.354126\n0.210632 0.350983 0.354279\n0.243286 0.350952 0.354492\n0.272919 0.351044 0.354797\n0.300354 0.351166 0.354889\n0.326569 0.351288 0.354980\n0.352448 0.351471 0.355133\n0.378815 0.351776 0.355225\n0.406158 0.351929 0.355133\n0.435272 0.352051 0.354950\n0.466675 0.352081 0.354614\n0.500732 0.351929 0.354065\n0.539032 0.351685 0.353333\n0.581818 0.351349 0.352539\n0.627563 0.350891 0.351532\n0.674805 0.350555 0.350647\n0.721619 0.350250 0.349670\n0.766174 0.349976 0.348816\n0.806946 0.349884 0.348083\n0.843079 0.349945 0.347382\n0.875061 0.350189 0.346924\n0.903290 0.350494 0.346497\n0.928223 0.350739 0.346130\n0.950470 0.351196 0.345795\n0.970398 0.351807 0.345551\n0.988464 0.352203 0.345245\n1.000000 0.358917 0.351440\n1.000000 0.378876 0.371277\n0.000000 0.381683 0.354614\n0.046021 0.382782 0.355896\n0.092377 0.382324 0.355896\n0.136169 0.381897 0.355865\n0.176697 0.381622 0.355835\n0.213287 0.381592 0.355957\n0.245728 0.381500 0.355896\n0.275146 0.381531 0.355896\n0.302612 0.381622 0.355927\n0.328918 0.381805 0.355957\n0.354919 0.382019 0.355988\n0.382385 0.383209 0.356934\n0.410004 0.383453 0.356812\n0.439392 0.383545 0.356598\n0.471130 0.383606 0.356201\n0.505524 0.383484 0.355621\n0.544342 0.383331 0.354858\n0.587402 0.382965 0.354004\n0.633118 0.382568 0.352997\n0.680115 0.382263 0.352051\n0.726379 0.381989 0.351074\n0.770203 0.381744 0.350189\n0.810211 0.381683 0.349457\n0.845642 0.381714 0.348724\n0.877014 0.381836 0.348175\n0.904694 0.382141 0.347748\n0.929260 0.382324 0.347321\n0.951172 0.382690 0.346985\n0.970856 0.383087 0.346649\n0.988708 0.383514 0.346344\n1.000000 0.389526 0.352570\n1.000000 0.407166 0.372040\n0.000000 0.413757 0.357605\n0.048492 0.413391 0.357574\n0.095428 0.412994 0.357422\n0.139771 0.412720 0.357300\n0.180054 0.412354 0.357056\n0.216217 0.412170 0.356842\n0.248505 0.412140 0.356720\n0.277863 0.412231 0.356720\n0.305267 0.412415 0.356689\n0.331573 0.412628 0.356689\n0.357788 0.412964 0.356659\n0.385437 0.414215 0.357605\n0.414307 0.415466 0.358459\n0.444000 0.415649 0.358215\n0.476044 0.415710 0.357758\n0.510742 0.415588 0.357086\n0.550018 0.415344 0.356323\n0.593201 0.415039 0.355347\n0.638885 0.414673 0.354401\n0.685394 0.414398 0.353394\n0.731018 0.414062 0.352417\n0.774231 0.413788 0.351440\n0.813354 0.413757 0.350647\n0.848083 0.413666 0.349976\n0.878815 0.413879 0.349396\n0.906067 0.414032 0.348907\n0.930237 0.414307 0.348450\n0.951813 0.414551 0.348083\n0.971283 0.414917 0.347656\n0.988983 0.415131 0.347168\n1.000000 0.420715 0.353302\n1.000000 0.436035 0.372437\n0.003448 0.445160 0.359222\n0.052979 0.444702 0.358948\n0.100067 0.444214 0.358521\n0.143982 0.443817 0.358124\n0.184143 0.443573 0.357819\n0.220001 0.443451 0.357513\n0.252075 0.443542 0.357422\n0.281189 0.443634 0.357269\n0.308411 0.443848 0.357239\n0.334747 0.444122 0.357178\n0.361023 0.444519 0.357239\n0.388855 0.445801 0.358124\n0.417938 0.447021 0.358948\n0.448944 0.448273 0.359741\n0.481171 0.448334 0.359222\n0.516205 0.448181 0.358490\n0.555817 0.447998 0.357605\n0.599091 0.447632 0.356689\n0.644531 0.447327 0.355621\n0.690613 0.446991 0.354614\n0.735565 0.446625 0.353577\n0.777954 0.446442 0.352661\n0.816254 0.446289 0.351807\n0.850281 0.446259 0.351105\n0.880493 0.446381 0.350494\n0.907227 0.446503 0.349976\n0.931030 0.446625 0.349426\n0.952393 0.446869 0.348846\n0.971710 0.447144 0.348206\n0.989227 0.447418 0.347595\n1.000000 0.452209 0.353729\n1.000000 0.465393 0.372589\n0.008911 0.476929 0.360229\n0.058319 0.476410 0.359680\n0.105469 0.476044 0.359161\n0.149384 0.475647 0.358734\n0.189148 0.475464 0.358276\n0.224457 0.475433 0.358002\n0.256042 0.475525 0.357880\n0.284851 0.475739 0.357758\n0.311951 0.476044 0.357666\n0.338135 0.476288 0.357544\n0.364594 0.476898 0.357666\n0.392487 0.478088 0.358490\n0.421722 0.479340 0.359283\n0.452972 0.480560 0.360046\n0.486420 0.481598 0.360535\n0.521851 0.481476 0.359802\n0.561676 0.481201 0.358887\n0.604950 0.480957 0.357910\n0.650055 0.480560 0.356812\n0.695587 0.480225 0.355743\n0.739838 0.479797 0.354675\n0.781433 0.479614 0.353760\n0.818970 0.479370 0.352905\n0.852356 0.479309 0.352142\n0.882019 0.479340 0.351379\n0.908356 0.479431 0.350708\n0.931915 0.479553 0.350006\n0.953033 0.479797 0.349243\n0.972107 0.480011 0.348511\n0.989502 0.480316 0.347778\n1.000000 0.484436 0.353943\n1.000000 0.495392 0.372589\n0.015472 0.509552 0.360809\n0.065063 0.509064 0.360168\n0.112183 0.508728 0.359650\n0.155670 0.508484 0.359070\n0.194794 0.508331 0.358704\n0.229462 0.508392 0.358398\n0.260437 0.508514 0.358215\n0.288879 0.508759 0.358063\n0.315674 0.509064 0.357880\n0.341705 0.509369 0.357758\n0.368286 0.510040 0.357941\n0.396240 0.511261 0.358673\n0.425659 0.512451 0.359406\n0.457062 0.513733 0.360138\n0.490784 0.514923 0.360809\n0.527435 0.515686 0.360992\n0.567444 0.515381 0.360046\n0.610535 0.515015 0.358978\n0.655334 0.514648 0.357880\n0.700256 0.514252 0.356781\n0.743744 0.513885 0.355713\n0.784546 0.513641 0.354736\n0.821350 0.513336 0.353760\n0.854218 0.513245 0.352875\n0.883453 0.513245 0.351990\n0.909485 0.513306 0.351105\n0.932739 0.513306 0.350281\n0.953644 0.513611 0.349426\n0.972534 0.513763 0.348541\n0.989716 0.514069 0.347717\n1.000000 0.517456 0.354034\n1.000000 0.526642 0.372467\n0.023529 0.544739 0.361115\n0.073059 0.544281 0.360413\n0.119843 0.543976 0.359863\n0.162659 0.543793 0.359314\n0.200867 0.543671 0.358826\n0.234711 0.543762 0.358551\n0.265015 0.543945 0.358276\n0.292999 0.544220 0.358154\n0.319489 0.544525 0.357971\n0.345337 0.544800 0.357697\n0.372040 0.545624 0.357971\n0.400055 0.546906 0.358734\n0.429504 0.548096 0.359406\n0.461029 0.549286 0.360077\n0.494904 0.550537 0.360687\n0.532196 0.551727 0.361328\n0.572968 0.552094 0.361084\n0.615784 0.551636 0.359985\n0.660095 0.551147 0.358856\n0.704437 0.550720 0.357727\n0.747314 0.550201 0.356598\n0.787445 0.549866 0.355438\n0.823730 0.549530 0.354340\n0.856110 0.549438 0.353271\n0.884949 0.549408 0.352264\n0.910645 0.549469 0.351257\n0.933624 0.549438 0.350311\n0.954285 0.549591 0.349365\n0.972931 0.549866 0.348480\n0.989990 0.550079 0.347595\n1.000000 0.552856 0.354065\n1.000000 0.560211 0.372345\n0.032806 0.582642 0.361267\n0.082031 0.582214 0.360596\n0.128082 0.581909 0.359863\n0.170044 0.581726 0.359314\n0.207214 0.581604 0.358887\n0.240143 0.581696 0.358612\n0.269653 0.581909 0.358276\n0.297119 0.582153 0.358032\n0.323334 0.582397 0.357849\n0.349030 0.582703 0.357574\n0.375763 0.583588 0.357971\n0.403778 0.584839 0.358643\n0.433228 0.585968 0.359253\n0.464844 0.587158 0.359863\n0.498749 0.588348 0.360443\n0.536072 0.589417 0.360992\n0.577606 0.590515 0.361511\n0.620605 0.590454 0.360931\n0.664459 0.589874 0.359680\n0.708344 0.589264 0.358429\n0.750732 0.588684 0.357056\n0.790375 0.588287 0.355804\n0.826111 0.587982 0.354584\n0.857941 0.587799 0.353333\n0.886414 0.587708 0.352264\n0.911743 0.587738 0.351166\n0.934448 0.587585 0.350189\n0.954865 0.587860 0.349213\n0.973358 0.587891 0.348328\n0.990234 0.588135 0.347504\n1.000000 0.590179 0.354095\n1.000000 0.595612 0.372314\n0.042999 0.622681 0.361206\n0.091614 0.622162 0.360443\n0.136810 0.621857 0.359833\n0.177490 0.621582 0.359222\n0.213593 0.621521 0.358765\n0.245544 0.621582 0.358368\n0.274384 0.621704 0.358093\n0.301270 0.621857 0.357849\n0.327148 0.622131 0.357605\n0.352600 0.622284 0.357269\n0.379333 0.623291 0.357758\n0.407349 0.624451 0.358398\n0.436859 0.625519 0.358917\n0.468384 0.626617 0.359558\n0.502197 0.627655 0.360077\n0.539673 0.628662 0.360565\n0.580963 0.629700 0.361023\n0.624878 0.630676 0.361389\n0.668762 0.630188 0.360168\n0.712311 0.629517 0.358734\n0.754150 0.628876 0.357269\n0.793182 0.628418 0.355835\n0.828339 0.627991 0.354553\n0.859772 0.627655 0.353271\n0.887817 0.627594 0.352142\n0.912811 0.627319 0.351044\n0.935242 0.627441 0.350037\n0.955444 0.627533 0.349121\n0.973724 0.627441 0.348175\n0.990448 0.627655 0.347412\n1.000000 0.628784 0.354279\n1.000000 0.632141 0.372467\n0.053833 0.663940 0.361115\n0.101532 0.663361 0.360321\n0.145630 0.662994 0.359650\n0.185059 0.662720 0.359039\n0.219849 0.662567 0.358490\n0.250763 0.662537 0.358185\n0.278900 0.662628 0.357880\n0.305267 0.662750 0.357513\n0.330719 0.662842 0.357300\n0.355957 0.662903 0.356903\n0.382721 0.663971 0.357452\n0.410614 0.664948 0.358032\n0.440063 0.665985 0.358582\n0.471436 0.666931 0.359100\n0.505249 0.667877 0.359528\n0.542877 0.668793 0.359924\n0.584167 0.669708 0.360138\n0.628052 0.670593 0.360291\n0.673065 0.671417 0.360352\n0.716125 0.670776 0.358734\n0.757538 0.670013 0.357208\n0.795990 0.669403 0.355743\n0.830627 0.668915 0.354401\n0.861542 0.668518 0.353119\n0.889160 0.668396 0.351959\n0.913849 0.668091 0.350891\n0.936035 0.668030 0.349915\n0.955994 0.668030 0.348999\n0.974091 0.667908 0.348206\n0.990662 0.668091 0.347565\n1.000000 0.668182 0.354645\n1.000000 0.669403 0.372833\n0.064819 0.705536 0.360779\n0.111664 0.704956 0.360077\n0.154388 0.704559 0.359253\n0.192352 0.704163 0.358704\n0.225891 0.703979 0.358215\n0.255798 0.703888 0.357880\n0.283173 0.703857 0.357544\n0.309052 0.703796 0.357147\n0.334106 0.703857 0.356873\n0.359222 0.703857 0.356537\n0.385864 0.704834 0.357086\n0.413513 0.705658 0.357605\n0.442841 0.706573 0.358063\n0.474426 0.707397 0.358398\n0.508362 0.708252 0.358704\n0.546082 0.709106 0.358826\n0.587494 0.709930 0.358948\n0.631165 0.710724 0.358948\n0.675934 0.711548 0.358948\n0.719971 0.712006 0.358612\n0.760773 0.711243 0.357056\n0.798645 0.710571 0.355530\n0.832764 0.710114 0.354187\n0.863190 0.709534 0.352966\n0.890472 0.709229 0.351807\n0.914856 0.709015 0.350769\n0.936707 0.708710 0.349884\n0.956451 0.708618 0.349121\n0.974396 0.708557 0.348450\n0.990875 0.708527 0.347961\n1.000000 0.707672 0.355225\n1.000000 0.706665 0.373505\n0.075958 0.746826 0.360413\n0.121552 0.746124 0.359619\n0.162842 0.745636 0.358887\n0.199310 0.745178 0.358368\n0.231537 0.744873 0.357880\n0.260529 0.744690 0.357422\n0.287140 0.744537 0.357025\n0.312469 0.744446 0.356720\n0.337189 0.744293 0.356354\n0.362061 0.744324 0.356171\n0.388519 0.745087 0.356628\n0.416168 0.745789 0.356964\n0.445709 0.746582 0.357178\n0.477356 0.747375 0.357391\n0.511475 0.748047 0.357452\n0.549500 0.748810 0.357513\n0.590790 0.749542 0.357513\n0.634277 0.750244 0.357452\n0.678680 0.750946 0.357391\n0.722504 0.751678 0.357330\n0.763916 0.751862 0.356812\n0.801270 0.751190 0.355347\n0.834747 0.750519 0.354004\n0.864838 0.750031 0.352814\n0.891693 0.749573 0.351746\n0.915741 0.749176 0.350891\n0.937378 0.748932 0.350128\n0.956909 0.748657 0.349457\n0.974731 0.748444 0.348969\n0.991058 0.748444 0.348572\n1.000000 0.746674 0.356232\n1.000000 0.743378 0.374603\n0.086945 0.786774 0.359985\n0.131104 0.786011 0.359161\n0.170837 0.785461 0.358521\n0.205750 0.784882 0.357910\n0.236755 0.784485 0.357361\n0.264801 0.784210 0.357025\n0.290710 0.783936 0.356628\n0.315521 0.783691 0.356201\n0.339813 0.783356 0.355682\n0.364746 0.783417 0.355530\n0.391235 0.784088 0.355774\n0.419006 0.784698 0.355988\n0.448608 0.785400 0.356049\n0.480377 0.786011 0.356110\n0.514740 0.786621 0.356140\n0.552765 0.787231 0.356110\n0.594147 0.787872 0.356018\n0.637360 0.788452 0.355927\n0.681274 0.789124 0.355835\n0.724762 0.789703 0.355804\n0.766022 0.790344 0.355713\n0.803680 0.790375 0.355164\n0.836700 0.789673 0.353943\n0.866302 0.789093 0.352875\n0.892822 0.788483 0.351959\n0.916595 0.788086 0.351196\n0.938049 0.787811 0.350586\n0.957336 0.787384 0.350159\n0.974945 0.787140 0.349915\n0.991180 0.786987 0.349762\n1.000000 0.784271 0.357635\n1.000000 0.779053 0.376160\n0.097382 0.824738 0.359528\n0.139984 0.823914 0.358734\n0.178131 0.823242 0.358154\n0.211578 0.822601 0.357513\n0.241455 0.822144 0.357025\n0.268555 0.821686 0.356537\n0.293823 0.821289 0.356110\n0.318298 0.820953 0.355499\n0.342407 0.820526 0.354858\n0.367462 0.820618 0.354614\n0.393921 0.821167 0.354706\n0.421844 0.821686 0.354767\n0.451538 0.822235 0.354797\n0.483490 0.822754 0.354767\n0.517883 0.823273 0.354675\n0.556030 0.823792 0.354584\n0.597290 0.824310 0.354523\n0.640289 0.824799 0.354462\n0.683929 0.825317 0.354370\n0.726746 0.825806 0.354340\n0.767578 0.826324 0.354340\n0.805206 0.826782 0.354401\n0.838531 0.826813 0.354126\n0.867737 0.826111 0.353180\n0.893890 0.825592 0.352448\n0.917358 0.825043 0.351868\n0.938507 0.824554 0.351471\n0.957703 0.824219 0.351288\n0.975189 0.823853 0.351196\n0.991272 0.823486 0.351318\n1.000000 0.820099 0.360352\n1.000000 0.813385 0.379913\n0.107178 0.860077 0.359131\n0.148102 0.859161 0.358368\n0.184631 0.858368 0.357635\n0.216644 0.857697 0.357056\n0.245483 0.857147 0.356506\n0.271881 0.856628 0.355896\n0.296875 0.856110 0.355225\n0.321075 0.855621 0.354614\n0.345123 0.855133 0.353699\n0.370331 0.855286 0.353455\n0.396851 0.855713 0.353455\n0.424805 0.856140 0.353455\n0.454529 0.856567 0.353363\n0.486603 0.856995 0.353271\n0.521118 0.857391 0.353210\n0.559204 0.857788 0.353149\n0.600433 0.858246 0.353088\n0.643127 0.858612 0.353027\n0.686340 0.859009 0.353058\n0.728668 0.859375 0.353119\n0.768921 0.859802 0.353271\n0.806030 0.860199 0.353485\n0.839417 0.860565 0.353790\n0.868958 0.860596 0.353821\n0.894775 0.859894 0.353302\n0.917999 0.859283 0.352966\n0.938965 0.858917 0.352814\n0.957977 0.858368 0.352905\n0.975403 0.858185 0.353943\n0.991333 0.858063 0.355316\n1.000000 0.853851 0.364746\n1.000000 0.845398 0.384613\n0.115936 0.892151 0.358612\n0.155304 0.891174 0.358002\n0.190216 0.890350 0.357147\n0.221222 0.889679 0.356567\n0.249390 0.889008 0.355774\n0.275299 0.888428 0.355042\n0.299957 0.887848 0.354218\n0.323944 0.887299 0.353363\n0.347900 0.886719 0.352417\n0.373199 0.886871 0.352234\n0.399780 0.887268 0.352173\n0.427765 0.887512 0.352081\n0.457611 0.887909 0.351990\n0.489655 0.888184 0.351959\n0.524231 0.888519 0.351898\n0.562469 0.888855 0.351837\n0.603271 0.889160 0.351868\n0.645844 0.889465 0.351929\n0.688629 0.889740 0.352081\n0.730499 0.890045 0.352264\n0.770203 0.890381 0.352570\n0.806702 0.890656 0.352966\n0.839600 0.890930 0.353424\n0.869232 0.891205 0.354034\n0.895599 0.891327 0.354614\n0.918579 0.890717 0.354553\n0.939423 0.890289 0.355499\n0.958313 0.889862 0.356750\n0.975464 0.889557 0.358398\n0.991272 0.889252 0.360291\n1.000000 0.884491 0.369904\n1.000000 0.874481 0.390076\n0.123688 0.920807 0.358398\n0.161713 0.919800 0.357391\n0.195496 0.918976 0.356384\n0.225769 0.918213 0.355591\n0.253265 0.917480 0.354675\n0.278717 0.916840 0.353790\n0.303101 0.916260 0.352997\n0.326843 0.915680 0.352081\n0.350677 0.915009 0.350952\n0.376129 0.915222 0.350922\n0.402679 0.915527 0.350861\n0.430634 0.915741 0.350800\n0.460632 0.915955 0.350739\n0.492584 0.916199 0.350708\n0.527252 0.916473 0.350708\n0.565430 0.916656 0.350800\n0.606079 0.916870 0.350952\n0.648224 0.917114 0.351135\n0.690643 0.917328 0.351440\n0.732025 0.917542 0.351807\n0.771332 0.917755 0.352325\n0.807251 0.917969 0.352936\n0.839874 0.918182 0.353638\n0.869141 0.918365 0.354553\n0.895599 0.918671 0.356354\n0.919250 0.918976 0.358398\n0.939758 0.918457 0.359894\n0.958405 0.917969 0.361633\n0.975403 0.917450 0.363708\n0.991150 0.916992 0.366058\n1.000000 0.911804 0.375671\n1.000000 0.900696 0.396027\n0.131073 0.946228 0.357727\n0.167999 0.945251 0.356506\n0.200836 0.944397 0.355499\n0.230255 0.943604 0.354492\n0.257141 0.942902 0.353516\n0.282166 0.942230 0.352661\n0.306152 0.941589 0.351624\n0.329773 0.940918 0.350677\n0.353607 0.940430 0.349823\n0.378967 0.940582 0.349762\n0.405487 0.940735 0.349701\n0.433502 0.940918 0.349670\n0.463470 0.941101 0.349701\n0.495514 0.941254 0.349762\n0.530151 0.941467 0.349884\n0.568237 0.941589 0.350098\n0.608704 0.941772 0.350433\n0.650574 0.941895 0.350769\n0.692505 0.942047 0.351257\n0.733429 0.942200 0.351868\n0.772217 0.942322 0.352631\n0.807861 0.942444 0.353455\n0.840179 0.942627 0.355194\n0.869293 0.942871 0.357330\n0.895172 0.943085 0.359650\n0.918610 0.943237 0.362213\n0.939789 0.943420 0.365082\n0.958374 0.943054 0.367371\n0.975281 0.942383 0.369781\n0.990997 0.941864 0.372345\n1.000000 0.936371 0.382019\n1.000000 0.924194 0.402435\n0.138306 0.969025 0.356689\n0.174194 0.968048 0.355438\n0.205994 0.967194 0.354492\n0.234650 0.966370 0.353302\n0.260895 0.965698 0.352417\n0.285522 0.965027 0.351257\n0.309235 0.964355 0.350342\n0.332611 0.963684 0.349396\n0.356506 0.963287 0.348694\n0.381744 0.963379 0.348663\n0.408295 0.963470 0.348694\n0.436249 0.963593 0.348785\n0.466278 0.963684 0.348907\n0.498169 0.963806 0.349121\n0.532898 0.963898 0.349365\n0.570923 0.964020 0.349792\n0.611115 0.964111 0.350281\n0.652588 0.964203 0.350861\n0.694122 0.964294 0.351593\n0.734558 0.964355 0.352478\n0.773346 0.964478 0.354187\n0.808685 0.964661 0.356293\n0.840393 0.964722 0.358612\n0.868958 0.964813 0.361267\n0.894562 0.964905 0.363983\n0.917725 0.964966 0.367004\n0.938782 0.965027 0.370209\n0.958038 0.965088 0.373383\n0.975128 0.964752 0.376343\n0.990814 0.964172 0.379089\n1.000000 0.958496 0.388672\n1.000000 0.945526 0.409027\n0.145355 0.989563 0.355621\n0.180145 0.988617 0.354370\n0.210999 0.987762 0.353119\n0.238831 0.987000 0.352051\n0.264587 0.986298 0.351135\n0.288788 0.985626 0.350128\n0.312164 0.984955 0.349121\n0.335358 0.984283 0.348267\n0.359192 0.983948 0.347748\n0.384430 0.984039 0.347839\n0.410950 0.984100 0.347961\n0.438843 0.984131 0.348145\n0.468750 0.984222 0.348419\n0.500610 0.984253 0.348785\n0.535400 0.984314 0.349335\n0.573212 0.984375 0.349915\n0.613220 0.984406 0.350616\n0.654266 0.984436 0.351501\n0.696045 0.984497 0.353180\n0.736298 0.984558 0.355286\n0.774261 0.984589 0.357635\n0.808838 0.984619 0.360199\n0.840057 0.984619 0.363007\n0.868195 0.984680 0.365997\n0.893768 0.984680 0.369110\n0.916809 0.984680 0.372406\n0.937866 0.984680 0.375824\n0.957062 0.984680 0.379211\n0.974579 0.984680 0.382751\n0.990662 0.984436 0.386078\n1.000000 0.978729 0.395416\n1.000000 0.965179 0.415924\n0.163879 1.000000 0.360168\n0.196075 1.000000 0.358765\n0.224701 1.000000 0.357544\n0.250763 1.000000 0.356262\n0.274841 1.000000 0.355011\n0.297668 1.000000 0.353668\n0.319916 1.000000 0.352509\n0.341919 1.000000 0.351044\n0.365326 1.000000 0.350677\n0.390106 1.000000 0.350922\n0.416260 1.000000 0.351227\n0.443817 1.000000 0.351624\n0.473175 1.000000 0.352173\n0.504669 1.000000 0.352722\n0.538910 1.000000 0.353516\n0.576294 1.000000 0.354401\n0.616058 1.000000 0.355988\n0.656891 1.000000 0.358093\n0.697296 1.000000 0.360443\n0.736420 1.000000 0.362946\n0.773224 1.000000 0.365662\n0.807068 1.000000 0.368561\n0.837677 1.000000 0.371643\n0.865479 1.000000 0.374908\n0.890717 1.000000 0.378143\n0.913727 1.000000 0.381592\n0.934570 1.000000 0.385040\n0.953705 1.000000 0.388458\n0.971313 1.000000 0.391998\n0.987610 1.000000 0.395721\n1.000000 0.997131 0.403473\n1.000000 0.983185 0.425079\n0.195557 1.000000 0.372467\n0.226227 1.000000 0.372498\n0.253632 1.000000 0.372284\n0.278656 1.000000 0.372223\n0.301941 1.000000 0.372406\n0.324036 1.000000 0.372375\n0.345581 1.000000 0.372589\n0.367065 1.000000 0.372711\n0.389069 1.000000 0.372955\n0.411865 1.000000 0.373322\n0.435730 1.000000 0.373779\n0.461151 1.000000 0.374359\n0.488251 1.000000 0.375061\n0.517548 1.000000 0.375854\n0.550537 1.000000 0.377380\n0.586029 1.000000 0.379364\n0.622772 1.000000 0.381592\n0.660339 1.000000 0.384033\n0.697479 1.000000 0.386627\n0.733521 1.000000 0.389435\n0.767822 1.000000 0.392426\n0.799255 1.000000 0.395477\n0.828064 1.000000 0.398712\n0.854248 1.000000 0.402008\n0.878204 1.000000 0.405273\n0.899933 1.000000 0.408691\n0.919983 1.000000 0.412109\n0.938446 1.000000 0.415619\n0.955475 1.000000 0.420044\n0.971222 1.000000 0.424805\n0.985962 1.000000 0.429993\n1.000000 1.000000 0.435303\n0.000000 0.005432 0.326599\n0.041870 0.001282 0.337860\n0.089508 0.005005 0.343292\n0.134369 0.008911 0.348816\n0.175690 0.012726 0.354187\n0.213074 0.016541 0.359436\n0.246338 0.020233 0.364197\n0.276215 0.023315 0.367981\n0.303650 0.024933 0.369995\n0.329590 0.026550 0.371918\n0.354980 0.028046 0.373749\n0.380157 0.029297 0.375427\n0.405426 0.029572 0.376190\n0.432159 0.029877 0.376892\n0.460846 0.029907 0.377502\n0.491943 0.029785 0.377838\n0.526550 0.029541 0.378052\n0.566132 0.029144 0.378052\n0.609711 0.028625 0.377899\n0.655945 0.028076 0.377777\n0.703156 0.027618 0.377502\n0.749664 0.027222 0.377167\n0.793823 0.027008 0.376862\n0.833862 0.026917 0.376801\n0.869446 0.027191 0.376862\n0.900879 0.027710 0.377045\n0.928558 0.028412 0.377075\n0.953064 0.029083 0.377106\n0.974915 0.029785 0.377258\n0.994476 0.030640 0.377228\n1.000000 0.050293 0.382874\n1.000000 0.077148 0.390991\n0.000000 0.045074 0.338470\n0.041931 0.042511 0.347473\n0.089508 0.046143 0.352966\n0.134338 0.049805 0.358215\n0.175507 0.053131 0.362885\n0.212616 0.056213 0.366882\n0.245483 0.057831 0.368896\n0.274963 0.059265 0.370728\n0.302277 0.060760 0.372589\n0.328125 0.062134 0.374420\n0.353424 0.063507 0.376190\n0.378876 0.064850 0.377899\n0.404297 0.065063 0.378693\n0.431061 0.065247 0.379272\n0.459778 0.065277 0.379730\n0.490875 0.065155 0.380035\n0.525482 0.064941 0.380157\n0.565002 0.064514 0.380096\n0.608521 0.063965 0.379822\n0.654755 0.063538 0.379608\n0.702301 0.063049 0.379211\n0.749268 0.062683 0.378784\n0.793640 0.062592 0.378510\n0.833679 0.062592 0.378296\n0.869232 0.062958 0.378387\n0.900543 0.063385 0.378265\n0.928162 0.063782 0.378113\n0.952576 0.064484 0.378113\n0.974243 0.065216 0.378021\n0.993744 0.066193 0.378052\n1.000000 0.084290 0.383942\n1.000000 0.110596 0.392578\n0.000000 0.084473 0.350983\n0.043640 0.083923 0.358154\n0.089661 0.085693 0.361694\n0.134247 0.088654 0.365753\n0.174927 0.090088 0.367645\n0.211517 0.091522 0.369598\n0.244049 0.092896 0.371490\n0.273499 0.094238 0.373322\n0.300690 0.095581 0.375092\n0.326721 0.096863 0.376801\n0.352081 0.098145 0.378479\n0.377625 0.099457 0.380127\n0.403168 0.099731 0.380859\n0.429932 0.099823 0.381470\n0.458679 0.099854 0.381805\n0.489807 0.099762 0.382080\n0.524353 0.099548 0.382141\n0.563873 0.099182 0.382050\n0.607727 0.098694 0.381653\n0.654541 0.098267 0.381226\n0.702454 0.097870 0.380890\n0.749573 0.097595 0.380463\n0.793976 0.097565 0.380157\n0.833923 0.097565 0.379791\n0.869232 0.097687 0.379395\n0.900391 0.097992 0.379242\n0.927856 0.098511 0.379028\n0.952118 0.099182 0.378876\n0.973724 0.100067 0.378815\n0.993103 0.100952 0.378967\n1.000000 0.117737 0.384613\n1.000000 0.143372 0.394470\n0.000000 0.123077 0.362610\n0.045410 0.123413 0.367065\n0.090576 0.123077 0.367615\n0.133118 0.123230 0.368500\n0.173492 0.124573 0.370300\n0.209900 0.125824 0.372162\n0.242340 0.127014 0.373901\n0.271973 0.128265 0.375671\n0.299316 0.129486 0.377411\n0.325348 0.130676 0.378998\n0.350769 0.131927 0.380646\n0.376343 0.133179 0.382233\n0.402039 0.133575 0.382996\n0.428802 0.133698 0.383484\n0.457581 0.133728 0.383728\n0.488770 0.133606 0.383942\n0.523621 0.133423 0.383820\n0.563782 0.133118 0.383698\n0.608124 0.132690 0.383331\n0.655243 0.132324 0.382843\n0.703369 0.131989 0.382355\n0.750458 0.131683 0.381683\n0.794678 0.131470 0.381134\n0.834381 0.131378 0.380585\n0.869507 0.131561 0.380280\n0.900452 0.131927 0.379913\n0.927704 0.132477 0.379883\n0.951752 0.133179 0.379639\n0.973206 0.134094 0.379639\n0.992493 0.134949 0.379669\n1.000000 0.150269 0.385529\n1.000000 0.175323 0.395935\n0.000000 0.159088 0.369751\n0.045807 0.158508 0.370972\n0.090454 0.158112 0.371429\n0.132355 0.157776 0.371887\n0.171631 0.157990 0.372803\n0.208282 0.159119 0.374603\n0.240967 0.160248 0.376251\n0.270569 0.161438 0.377869\n0.297943 0.162598 0.379547\n0.324066 0.163757 0.381042\n0.349518 0.164917 0.382629\n0.375092 0.166138 0.384094\n0.400879 0.166656 0.384949\n0.427704 0.166840 0.385345\n0.456787 0.166931 0.385559\n0.488586 0.166840 0.385620\n0.524017 0.166656 0.385529\n0.564545 0.166382 0.385132\n0.609375 0.166046 0.384705\n0.656708 0.165619 0.384125\n0.704773 0.165070 0.383331\n0.751770 0.164734 0.382629\n0.795715 0.164490 0.381927\n0.835175 0.164520 0.381500\n0.869965 0.164734 0.381073\n0.900635 0.165161 0.380768\n0.927673 0.165680 0.380463\n0.951508 0.166412 0.380341\n0.972778 0.167145 0.380249\n0.991852 0.168030 0.380127\n1.000000 0.182068 0.386169\n1.000000 0.206360 0.397491\n0.000000 0.193176 0.373535\n0.045349 0.192596 0.374756\n0.089783 0.192047 0.375092\n0.131958 0.191589 0.375427\n0.170990 0.191254 0.375824\n0.206879 0.191589 0.376831\n0.239594 0.192596 0.378418\n0.269226 0.193726 0.379944\n0.296661 0.194824 0.381561\n0.322784 0.196014 0.382996\n0.348206 0.197174 0.384460\n0.373840 0.198425 0.385925\n0.400055 0.199066 0.386780\n0.427460 0.199280 0.387054\n0.457031 0.199280 0.387207\n0.489227 0.199310 0.387146\n0.525208 0.199188 0.386993\n0.566193 0.198853 0.386505\n0.611115 0.198334 0.385742\n0.658600 0.197784 0.384949\n0.706665 0.197327 0.384155\n0.753540 0.197021 0.383453\n0.797180 0.196869 0.382782\n0.836212 0.196869 0.382172\n0.870667 0.197083 0.381744\n0.901001 0.197510 0.381348\n0.927734 0.198029 0.381165\n0.951324 0.198700 0.380859\n0.972321 0.199432 0.380676\n0.991302 0.200287 0.380707\n1.000000 0.212982 0.386810\n1.000000 0.236572 0.398834\n0.000000 0.225952 0.376617\n0.044891 0.225616 0.378326\n0.089630 0.224976 0.378601\n0.131805 0.224548 0.378784\n0.170837 0.224121 0.379120\n0.206116 0.223846 0.379486\n0.238220 0.224182 0.380432\n0.267853 0.225250 0.381866\n0.295380 0.226410 0.383423\n0.321503 0.227539 0.384766\n0.347229 0.228729 0.386200\n0.373505 0.229950 0.387573\n0.400177 0.230774 0.388428\n0.428009 0.230957 0.388672\n0.458008 0.231049 0.388672\n0.490692 0.231018 0.388519\n0.527008 0.230621 0.388062\n0.568329 0.230164 0.387360\n0.613617 0.229675 0.386627\n0.661163 0.229279 0.385742\n0.709198 0.228821 0.384949\n0.755737 0.228546 0.384064\n0.798950 0.228394 0.383423\n0.837463 0.228394 0.382721\n0.871521 0.228638 0.382446\n0.901459 0.228973 0.381897\n0.927826 0.229492 0.381744\n0.951141 0.230133 0.381439\n0.971954 0.230804 0.381256\n0.990723 0.231537 0.381104\n1.000000 0.242981 0.387115\n1.000000 0.265930 0.400208\n0.000000 0.257812 0.379852\n0.044708 0.257690 0.381653\n0.089478 0.257080 0.381866\n0.131683 0.256622 0.381989\n0.170685 0.256165 0.382294\n0.205994 0.255890 0.382538\n0.237549 0.255676 0.382904\n0.266571 0.256134 0.383698\n0.294373 0.257263 0.385132\n0.321075 0.258392 0.386444\n0.347351 0.259644 0.387756\n0.373901 0.260864 0.389038\n0.401093 0.261749 0.389923\n0.429321 0.261963 0.390015\n0.459564 0.261841 0.389771\n0.492523 0.261658 0.389374\n0.529388 0.261383 0.388855\n0.571167 0.260956 0.388092\n0.616699 0.260498 0.387268\n0.664307 0.260040 0.386444\n0.712128 0.259644 0.385559\n0.758301 0.259338 0.384705\n0.800995 0.259247 0.384003\n0.838989 0.259277 0.383423\n0.872467 0.259491 0.382721\n0.901947 0.259827 0.382477\n0.927948 0.260345 0.382080\n0.951019 0.260864 0.381866\n0.971588 0.261475 0.381592\n0.990143 0.262177 0.381470\n1.000000 0.272369 0.387421\n1.000000 0.294647 0.401428\n0.000000 0.288971 0.383026\n0.044556 0.289185 0.384857\n0.089325 0.288544 0.385010\n0.131531 0.288025 0.385071\n0.170563 0.287689 0.385254\n0.205872 0.287415 0.385468\n0.237762 0.287231 0.385773\n0.267059 0.287231 0.386078\n0.294617 0.287689 0.386719\n0.321655 0.288879 0.387970\n0.348236 0.290161 0.389313\n0.375153 0.291412 0.390442\n0.402496 0.292084 0.390961\n0.431000 0.292145 0.390869\n0.461639 0.292114 0.390594\n0.495056 0.291962 0.390137\n0.532410 0.291718 0.389557\n0.574585 0.291321 0.388763\n0.620331 0.290863 0.387878\n0.667847 0.290466 0.386963\n0.715363 0.290100 0.386017\n0.761078 0.289856 0.385132\n0.803101 0.289703 0.384338\n0.840515 0.289734 0.383789\n0.873444 0.289948 0.383301\n0.902466 0.290222 0.382782\n0.928101 0.290710 0.382538\n0.950867 0.291260 0.382233\n0.971161 0.291748 0.381897\n0.989563 0.292419 0.381622\n1.000000 0.301361 0.387543\n1.000000 0.322968 0.402618\n0.000000 0.319672 0.386078\n0.044434 0.320282 0.387909\n0.089172 0.319733 0.387970\n0.131439 0.319275 0.387970\n0.170898 0.318909 0.388092\n0.207092 0.318634 0.388245\n0.239502 0.318573 0.388428\n0.269104 0.318634 0.388672\n0.296539 0.318848 0.388977\n0.322968 0.319214 0.389343\n0.349701 0.320312 0.390350\n0.376709 0.321503 0.391327\n0.404419 0.322174 0.391785\n0.433258 0.322327 0.391632\n0.464264 0.322296 0.391266\n0.498077 0.322144 0.390778\n0.536041 0.321930 0.390106\n0.578491 0.321564 0.389313\n0.624359 0.321106 0.388306\n0.671783 0.320740 0.387299\n0.718872 0.320374 0.386383\n0.763977 0.320129 0.385468\n0.805298 0.320007 0.384674\n0.842010 0.320038 0.384033\n0.874390 0.320221 0.383484\n0.902985 0.320496 0.383026\n0.928223 0.320892 0.382629\n0.950684 0.321381 0.382416\n0.970764 0.321869 0.382141\n0.988983 0.322388 0.381744\n1.000000 0.330139 0.387268\n1.000000 0.351105 0.403748\n0.000000 0.350433 0.388916\n0.044281 0.351440 0.390839\n0.089630 0.350922 0.390839\n0.132965 0.350433 0.390747\n0.173248 0.350128 0.390778\n0.209747 0.349915 0.390808\n0.242340 0.349945 0.390930\n0.272034 0.350067 0.391083\n0.299408 0.350159 0.391083\n0.325653 0.350281 0.391144\n0.351685 0.350525 0.391174\n0.378937 0.351685 0.392120\n0.406891 0.352386 0.392517\n0.436066 0.352539 0.392242\n0.467468 0.352539 0.391846\n0.501617 0.352448 0.391235\n0.540009 0.352173 0.390533\n0.582764 0.351807 0.389587\n0.628662 0.351410 0.388672\n0.675751 0.351013 0.387665\n0.722443 0.350677 0.386658\n0.766907 0.350464 0.385742\n0.807434 0.350342 0.384979\n0.843445 0.350403 0.384308\n0.875305 0.350555 0.383636\n0.903351 0.350769 0.383240\n0.928253 0.351135 0.382843\n0.950439 0.351532 0.382477\n0.970306 0.351959 0.382050\n0.988312 0.352386 0.381714\n1.000000 0.358887 0.386902\n1.000000 0.379242 0.404633\n0.000000 0.381775 0.392090\n0.046143 0.382690 0.393555\n0.092621 0.382294 0.393402\n0.136414 0.381836 0.393250\n0.177032 0.381592 0.393158\n0.213501 0.381500 0.393127\n0.245880 0.381409 0.393036\n0.275391 0.381500 0.393005\n0.302826 0.381592 0.392944\n0.329163 0.381805 0.392975\n0.355255 0.382050 0.392914\n0.381683 0.382263 0.392822\n0.409821 0.382904 0.393036\n0.439270 0.382996 0.392700\n0.471008 0.383026 0.392273\n0.505524 0.382935 0.391602\n0.544342 0.382690 0.390778\n0.587311 0.382355 0.389893\n0.633087 0.381989 0.388855\n0.679871 0.381592 0.387848\n0.726044 0.381287 0.386902\n0.769745 0.381042 0.385895\n0.809509 0.380859 0.385040\n0.844849 0.380920 0.384308\n0.876068 0.381073 0.383698\n0.903687 0.381226 0.383118\n0.928223 0.381561 0.382721\n0.950104 0.381866 0.382294\n0.969727 0.382263 0.381958\n0.987610 0.382538 0.381622\n1.000000 0.387939 0.386292\n1.000000 0.407593 0.405273\n0.000519 0.414276 0.395599\n0.049500 0.413818 0.395416\n0.096527 0.413391 0.395142\n0.140686 0.413055 0.394897\n0.181000 0.412750 0.394592\n0.217102 0.412567 0.394287\n0.249359 0.412537 0.394165\n0.278687 0.412659 0.394043\n0.306030 0.412842 0.393982\n0.332428 0.413086 0.393951\n0.358551 0.413361 0.393829\n0.385193 0.413605 0.393677\n0.413849 0.414551 0.394165\n0.443604 0.414764 0.393829\n0.475586 0.414795 0.393311\n0.510498 0.414734 0.392639\n0.549713 0.414459 0.391815\n0.592926 0.414154 0.390900\n0.638550 0.413818 0.389832\n0.684906 0.413422 0.388763\n0.730469 0.413177 0.387787\n0.773468 0.412933 0.386841\n0.812469 0.412842 0.386017\n0.847137 0.412872 0.385315\n0.877777 0.412933 0.384735\n0.904938 0.413116 0.384155\n0.929077 0.413330 0.383698\n0.950653 0.413605 0.383270\n0.970154 0.413940 0.382782\n0.987854 0.414246 0.382294\n1.000000 0.419159 0.386932\n1.000000 0.436401 0.405548\n0.004639 0.445465 0.396820\n0.054260 0.445068 0.396515\n0.101257 0.444580 0.396057\n0.145111 0.444183 0.395569\n0.185333 0.443909 0.395203\n0.221039 0.443817 0.394867\n0.252991 0.443848 0.394684\n0.282104 0.444031 0.394531\n0.309296 0.444275 0.394409\n0.335571 0.444550 0.394348\n0.361816 0.444855 0.394226\n0.388580 0.445129 0.393921\n0.417542 0.446228 0.394562\n0.448547 0.447388 0.395203\n0.480835 0.447449 0.394653\n0.515930 0.447327 0.393921\n0.555542 0.447083 0.393005\n0.598816 0.446777 0.391998\n0.644196 0.446472 0.390991\n0.690094 0.446106 0.389893\n0.734985 0.445801 0.388885\n0.777161 0.445587 0.387939\n0.815338 0.445404 0.387085\n0.849335 0.445404 0.386322\n0.879395 0.445465 0.385681\n0.906128 0.445465 0.385132\n0.929932 0.445801 0.384521\n0.951294 0.445984 0.383942\n0.970581 0.446259 0.383301\n0.988098 0.446533 0.382599\n1.000000 0.450836 0.387268\n1.000000 0.465759 0.405670\n0.010223 0.477264 0.397614\n0.059814 0.476776 0.397095\n0.106842 0.476318 0.396576\n0.150696 0.476044 0.395966\n0.190460 0.475861 0.395599\n0.225616 0.475830 0.395264\n0.257080 0.475983 0.395050\n0.285858 0.476166 0.394867\n0.312866 0.476440 0.394745\n0.339050 0.476776 0.394592\n0.365234 0.477051 0.394379\n0.392090 0.477295 0.394043\n0.421356 0.478455 0.394745\n0.452576 0.479706 0.395416\n0.486084 0.480713 0.395874\n0.521576 0.480652 0.395081\n0.561371 0.480377 0.394135\n0.604614 0.480072 0.393097\n0.649689 0.479736 0.392059\n0.695068 0.479340 0.390961\n0.739197 0.478943 0.389862\n0.780640 0.478699 0.388916\n0.817993 0.478546 0.388031\n0.851288 0.478455 0.387268\n0.880890 0.478455 0.386505\n0.907227 0.478516 0.385773\n0.930817 0.478760 0.385040\n0.951935 0.478882 0.384247\n0.971008 0.479187 0.383484\n0.988403 0.479431 0.382721\n1.000000 0.483154 0.387451\n1.000000 0.495667 0.405640\n0.017059 0.509918 0.398071\n0.066864 0.509430 0.397430\n0.113739 0.509064 0.396759\n0.157166 0.508820 0.396271\n0.196228 0.508728 0.395844\n0.230652 0.508759 0.395477\n0.261566 0.508942 0.395264\n0.289917 0.509155 0.395020\n0.316620 0.509460 0.394806\n0.342651 0.509796 0.394623\n0.368866 0.510132 0.394348\n0.395844 0.510437 0.394073\n0.425293 0.511658 0.394775\n0.456665 0.512848 0.395416\n0.490540 0.514099 0.396057\n0.527161 0.514862 0.396179\n0.567139 0.514526 0.395203\n0.610138 0.514160 0.394073\n0.654846 0.513763 0.392975\n0.699585 0.513306 0.391846\n0.743011 0.513031 0.390808\n0.783661 0.512634 0.389801\n0.820343 0.512421 0.388794\n0.853210 0.512360 0.387848\n0.882355 0.512268 0.386963\n0.908356 0.512360 0.386078\n0.931641 0.512482 0.385193\n0.952515 0.512665 0.384369\n0.971405 0.512848 0.383484\n0.988647 0.513245 0.382660\n1.000000 0.516418 0.387543\n1.000000 0.527039 0.405518\n0.025421 0.545105 0.398224\n0.075104 0.544708 0.397583\n0.121552 0.544312 0.396942\n0.164215 0.544189 0.396393\n0.202454 0.544098 0.395874\n0.235992 0.544189 0.395508\n0.266205 0.544342 0.395264\n0.294067 0.544647 0.394989\n0.320435 0.544922 0.394775\n0.346344 0.545227 0.394531\n0.372467 0.545593 0.394226\n0.399628 0.545990 0.394043\n0.429199 0.547211 0.394714\n0.460663 0.548401 0.395264\n0.494568 0.549652 0.395844\n0.531891 0.550842 0.396423\n0.572571 0.551178 0.396118\n0.615295 0.550720 0.395020\n0.659576 0.550201 0.393860\n0.703705 0.549713 0.392731\n0.746521 0.549255 0.391541\n0.786560 0.548920 0.390381\n0.822754 0.548553 0.389252\n0.855042 0.548492 0.388153\n0.883850 0.548309 0.387115\n0.909515 0.548492 0.386139\n0.932526 0.548584 0.385193\n0.953125 0.548706 0.384308\n0.971832 0.548859 0.383453\n0.988892 0.549072 0.382538\n1.000000 0.551849 0.387543\n1.000000 0.560638 0.405457\n0.034912 0.583038 0.398315\n0.084167 0.582611 0.397583\n0.129913 0.582306 0.396912\n0.171692 0.582092 0.396240\n0.208740 0.582031 0.395844\n0.241394 0.582123 0.395416\n0.270874 0.582306 0.395111\n0.298248 0.582611 0.394836\n0.324310 0.582855 0.394562\n0.350006 0.583130 0.394257\n0.375946 0.583344 0.393921\n0.403351 0.583862 0.393829\n0.432922 0.585052 0.394470\n0.464417 0.586212 0.394989\n0.498383 0.587402 0.395508\n0.535736 0.588470 0.396027\n0.577148 0.589539 0.396484\n0.620026 0.589417 0.395844\n0.663849 0.588867 0.394592\n0.707611 0.588257 0.393280\n0.749969 0.587769 0.391937\n0.789459 0.587250 0.390625\n0.825043 0.586914 0.389374\n0.856903 0.586761 0.388214\n0.885284 0.586578 0.387115\n0.910614 0.586639 0.386078\n0.933319 0.586670 0.385101\n0.953705 0.586700 0.384186\n0.972229 0.586975 0.383301\n0.989166 0.587006 0.382477\n1.000000 0.589081 0.387634\n1.000000 0.595886 0.405426\n0.045258 0.622986 0.398041\n0.093811 0.622528 0.397400\n0.138641 0.622162 0.396729\n0.179260 0.621948 0.396088\n0.215057 0.621918 0.395599\n0.246796 0.621948 0.395172\n0.275543 0.622101 0.394836\n0.302338 0.622345 0.394623\n0.328033 0.622467 0.394196\n0.353577 0.622711 0.393890\n0.379364 0.622833 0.393463\n0.406830 0.623383 0.393555\n0.436432 0.624512 0.394073\n0.467896 0.625580 0.394592\n0.501831 0.626648 0.395081\n0.539246 0.627655 0.395508\n0.580414 0.628601 0.395905\n0.624420 0.629608 0.396179\n0.668152 0.629150 0.394958\n0.711517 0.628387 0.393463\n0.753387 0.627808 0.392059\n0.792267 0.627319 0.390656\n0.827362 0.626892 0.389343\n0.858765 0.626648 0.388123\n0.886688 0.626434 0.387024\n0.911682 0.626343 0.385956\n0.934082 0.626312 0.384949\n0.954285 0.626404 0.384064\n0.972626 0.626465 0.383209\n0.989410 0.626465 0.382446\n1.000000 0.627869 0.387787\n1.000000 0.632355 0.405609\n0.056122 0.664215 0.397858\n0.103790 0.663727 0.397125\n0.147491 0.663330 0.396301\n0.186768 0.663025 0.395782\n0.221313 0.662933 0.395325\n0.251984 0.662903 0.394836\n0.280060 0.662964 0.394562\n0.306213 0.663055 0.394104\n0.331604 0.663208 0.393829\n0.356903 0.663300 0.393402\n0.382599 0.663330 0.393005\n0.410156 0.663910 0.393127\n0.439545 0.664886 0.393616\n0.470947 0.665833 0.394073\n0.504883 0.666809 0.394470\n0.542511 0.667725 0.394775\n0.583740 0.668579 0.394928\n0.627533 0.669495 0.395020\n0.672424 0.670288 0.395050\n0.715393 0.669525 0.393463\n0.756744 0.668854 0.391968\n0.795013 0.668213 0.390503\n0.829590 0.667816 0.389191\n0.860474 0.667450 0.387939\n0.888092 0.667175 0.386841\n0.912720 0.667023 0.385803\n0.934875 0.666931 0.384857\n0.954834 0.666809 0.384003\n0.972931 0.666840 0.383270\n0.989594 0.666809 0.382599\n1.000000 0.667511 0.388214\n1.000000 0.669678 0.405975\n0.067352 0.705872 0.397491\n0.113892 0.705322 0.396698\n0.156281 0.704834 0.395996\n0.194031 0.704498 0.395386\n0.227295 0.704346 0.394867\n0.256989 0.704224 0.394470\n0.284302 0.704224 0.394073\n0.309967 0.704163 0.393738\n0.334961 0.704163 0.393280\n0.359924 0.704041 0.392914\n0.385498 0.703918 0.392456\n0.412903 0.704529 0.392578\n0.442383 0.705475 0.393036\n0.473877 0.706238 0.393250\n0.507935 0.707123 0.393524\n0.545746 0.707947 0.393616\n0.587067 0.708771 0.393707\n0.630676 0.709595 0.393707\n0.675232 0.710419 0.393677\n0.719177 0.710876 0.393311\n0.759949 0.710083 0.391785\n0.797699 0.709442 0.390320\n0.831726 0.708771 0.388977\n0.862152 0.708374 0.387787\n0.889343 0.708069 0.386719\n0.913696 0.707794 0.385742\n0.935577 0.707733 0.384888\n0.955322 0.707489 0.384094\n0.973297 0.707336 0.383514\n0.989777 0.707367 0.382965\n1.000000 0.707092 0.388824\n1.000000 0.706940 0.406677\n0.078461 0.747070 0.397095\n0.123718 0.746429 0.396301\n0.164642 0.745880 0.395569\n0.200928 0.745483 0.394958\n0.232910 0.745239 0.394440\n0.261627 0.744965 0.393982\n0.288177 0.744812 0.393616\n0.313293 0.744690 0.393219\n0.337952 0.744537 0.392761\n0.362640 0.744354 0.392303\n0.388000 0.744019 0.391724\n0.415649 0.744659 0.391846\n0.445190 0.745422 0.392090\n0.476929 0.746124 0.392212\n0.511078 0.746918 0.392303\n0.548981 0.747650 0.392303\n0.590271 0.748352 0.392273\n0.633698 0.749054 0.392212\n0.677979 0.749786 0.392151\n0.721710 0.750488 0.392059\n0.763062 0.750732 0.391541\n0.800262 0.749878 0.390137\n0.833740 0.749268 0.388855\n0.863770 0.748779 0.387726\n0.890533 0.748352 0.386719\n0.914612 0.747986 0.385803\n0.936249 0.747742 0.385132\n0.955780 0.747589 0.384491\n0.973602 0.747284 0.384064\n0.989929 0.747192 0.383698\n1.000000 0.746033 0.389801\n1.000000 0.743591 0.407776\n0.089325 0.787018 0.396576\n0.133118 0.786285 0.395721\n0.172424 0.785645 0.395111\n0.207245 0.785156 0.394501\n0.237946 0.784729 0.393860\n0.265808 0.784424 0.393433\n0.291626 0.784210 0.393036\n0.316223 0.783875 0.392548\n0.340576 0.783630 0.392090\n0.365143 0.783264 0.391510\n0.390594 0.782867 0.390686\n0.418427 0.783508 0.390839\n0.448151 0.784180 0.390930\n0.479950 0.784821 0.390930\n0.514221 0.785431 0.390930\n0.552277 0.786072 0.390900\n0.593475 0.786713 0.390808\n0.636749 0.787262 0.390717\n0.680542 0.787872 0.390625\n0.723816 0.788452 0.390564\n0.765137 0.789124 0.390533\n0.802673 0.789124 0.390015\n0.835632 0.788452 0.388824\n0.865173 0.787842 0.387756\n0.891663 0.787292 0.386963\n0.915436 0.786926 0.386200\n0.936829 0.786499 0.385651\n0.956207 0.786194 0.385223\n0.973816 0.785919 0.384979\n0.990082 0.785706 0.384827\n1.000000 0.783722 0.391205\n1.000000 0.779297 0.409576\n0.099609 0.824921 0.396179\n0.141876 0.824097 0.395203\n0.179596 0.823395 0.394470\n0.212891 0.822815 0.393860\n0.242462 0.822327 0.393402\n0.269409 0.821899 0.392975\n0.294678 0.821472 0.392426\n0.319031 0.821106 0.391754\n0.343231 0.820709 0.391052\n0.367737 0.820282 0.390289\n0.393311 0.819916 0.389587\n0.421265 0.820465 0.389587\n0.451141 0.820984 0.389557\n0.483002 0.821533 0.389557\n0.517456 0.822052 0.389465\n0.555511 0.822540 0.389374\n0.596680 0.823090 0.389343\n0.639709 0.823578 0.389282\n0.683105 0.824066 0.389221\n0.725922 0.824554 0.389221\n0.766693 0.825073 0.389252\n0.804169 0.825531 0.389282\n0.837433 0.825623 0.389038\n0.866577 0.824860 0.388153\n0.892700 0.824280 0.387421\n0.916199 0.823761 0.386902\n0.937347 0.823334 0.386505\n0.956512 0.822876 0.386292\n0.973999 0.822540 0.386292\n0.990143 0.822357 0.386688\n1.000000 0.819946 0.394135\n1.000000 0.813782 0.413239\n0.109192 0.860168 0.395569\n0.149750 0.859253 0.394775\n0.185944 0.858490 0.393982\n0.217834 0.857849 0.393494\n0.246429 0.857300 0.392822\n0.272797 0.856750 0.392151\n0.297729 0.856262 0.391541\n0.321869 0.855774 0.390808\n0.345917 0.855286 0.389984\n0.370422 0.854767 0.389008\n0.396240 0.854431 0.388306\n0.424225 0.854919 0.388306\n0.454071 0.855316 0.388245\n0.486053 0.855743 0.388123\n0.520569 0.856171 0.388062\n0.558777 0.856537 0.388000\n0.599731 0.856964 0.387970\n0.642456 0.857391 0.387939\n0.685547 0.857788 0.387970\n0.727844 0.858124 0.388031\n0.767975 0.858582 0.388184\n0.804932 0.858917 0.388458\n0.838257 0.859314 0.388733\n0.867798 0.859283 0.388794\n0.893616 0.858704 0.388275\n0.916809 0.858154 0.387970\n0.937805 0.857605 0.387848\n0.956848 0.857147 0.388153\n0.974213 0.856964 0.389221\n0.990204 0.856903 0.390472\n1.000000 0.853577 0.398315\n1.000000 0.845642 0.417694\n0.117737 0.892242 0.395020\n0.156677 0.891327 0.394196\n0.191467 0.890442 0.393433\n0.222351 0.889740 0.392792\n0.250305 0.889099 0.392059\n0.276184 0.888519 0.391113\n0.300781 0.887939 0.390350\n0.324677 0.887421 0.389557\n0.348633 0.886810 0.388611\n0.373169 0.886230 0.387604\n0.399170 0.885986 0.387054\n0.427124 0.886292 0.386963\n0.457062 0.886627 0.386902\n0.489075 0.886963 0.386841\n0.523682 0.887329 0.386810\n0.561920 0.887573 0.386780\n0.602722 0.887909 0.386810\n0.645020 0.888214 0.386871\n0.687775 0.888519 0.387024\n0.729584 0.888824 0.387238\n0.769196 0.889099 0.387573\n0.805573 0.889404 0.387939\n0.838440 0.889679 0.388428\n0.868103 0.889984 0.389038\n0.894409 0.890045 0.389557\n0.917419 0.889587 0.389771\n0.938263 0.889160 0.390686\n0.957123 0.888672 0.391937\n0.974304 0.888336 0.393463\n0.990143 0.888092 0.395203\n1.000000 0.884216 0.403229\n1.000000 0.874725 0.422821\n0.125366 0.920837 0.394501\n0.163055 0.919891 0.393677\n0.196747 0.919006 0.392761\n0.226898 0.918243 0.391846\n0.254181 0.917542 0.390961\n0.279633 0.916901 0.390045\n0.303894 0.916321 0.389099\n0.327606 0.915710 0.388275\n0.351410 0.915039 0.387238\n0.375824 0.914429 0.386292\n0.402069 0.914276 0.385773\n0.430084 0.914520 0.385742\n0.460022 0.914734 0.385681\n0.492004 0.915009 0.385681\n0.526764 0.915222 0.385712\n0.564789 0.915436 0.385773\n0.605438 0.915680 0.385925\n0.647552 0.915894 0.386139\n0.689819 0.916107 0.386414\n0.731079 0.916321 0.386871\n0.770325 0.916565 0.387329\n0.806152 0.916718 0.387939\n0.838684 0.916901 0.388672\n0.867859 0.917175 0.389679\n0.894409 0.917511 0.391510\n0.918091 0.917816 0.393555\n0.938568 0.917236 0.394928\n0.957245 0.916748 0.396637\n0.974243 0.916260 0.398560\n0.990051 0.915924 0.400574\n1.000000 0.911621 0.408691\n1.000000 0.900696 0.428314\n0.132629 0.946228 0.393799\n0.169342 0.945312 0.392731\n0.202026 0.944427 0.391724\n0.231354 0.943665 0.390778\n0.257996 0.942963 0.389771\n0.282990 0.942291 0.388763\n0.307007 0.941650 0.387939\n0.330475 0.940979 0.386993\n0.354187 0.940308 0.385956\n0.378571 0.939575 0.384979\n0.404846 0.939575 0.384644\n0.432922 0.939728 0.384644\n0.462891 0.939880 0.384674\n0.494873 0.940094 0.384766\n0.529663 0.940247 0.384918\n0.567535 0.940399 0.385132\n0.608093 0.940552 0.385406\n0.649658 0.940674 0.385834\n0.691589 0.940857 0.386261\n0.732452 0.940948 0.386932\n0.771088 0.941101 0.387634\n0.806793 0.941284 0.388672\n0.839172 0.941528 0.390411\n0.868042 0.941711 0.392426\n0.893951 0.941895 0.394775\n0.917297 0.942047 0.397186\n0.938416 0.942200 0.399780\n0.957153 0.941833 0.402008\n0.974121 0.941193 0.404205\n0.989868 0.940674 0.406433\n1.000000 0.936310 0.414520\n1.000000 0.924347 0.434174\n0.139893 0.969025 0.392822\n0.175476 0.968048 0.391632\n0.207153 0.967224 0.390625\n0.235626 0.966400 0.389587\n0.261749 0.965698 0.388611\n0.286377 0.965057 0.387482\n0.309937 0.964386 0.386536\n0.333282 0.963684 0.385742\n0.356934 0.963043 0.384796\n0.381226 0.962311 0.383759\n0.407654 0.962341 0.383698\n0.435669 0.962433 0.383789\n0.465576 0.962524 0.383942\n0.497620 0.962646 0.384186\n0.532318 0.962738 0.384430\n0.570129 0.962830 0.384796\n0.610352 0.962982 0.385315\n0.651672 0.963043 0.385925\n0.693024 0.963135 0.386627\n0.733673 0.963226 0.387695\n0.772339 0.963348 0.389404\n0.807526 0.963440 0.391449\n0.839233 0.963593 0.393738\n0.867676 0.963654 0.396179\n0.893219 0.963745 0.398804\n0.916443 0.963837 0.401611\n0.937561 0.963898 0.404480\n0.956696 0.963989 0.407532\n0.973969 0.963684 0.410278\n0.989685 0.963043 0.412720\n1.000000 0.958496 0.420593\n1.000000 0.945709 0.440247\n0.146881 0.989532 0.391724\n0.181335 0.988617 0.390381\n0.212097 0.987762 0.389435\n0.239838 0.987000 0.388245\n0.265411 0.986298 0.387299\n0.289520 0.985626 0.386322\n0.312836 0.984955 0.385468\n0.336029 0.984283 0.384552\n0.359528 0.983612 0.383728\n0.383850 0.982880 0.382812\n0.410248 0.982941 0.382965\n0.438263 0.983032 0.383240\n0.468048 0.983063 0.383484\n0.500092 0.983124 0.383881\n0.534698 0.983185 0.384430\n0.572388 0.983215 0.385010\n0.612274 0.983276 0.385712\n0.653381 0.983307 0.386688\n0.695038 0.983398 0.388428\n0.735291 0.983459 0.390503\n0.772980 0.983490 0.392700\n0.807495 0.983490 0.395172\n0.838715 0.983521 0.397888\n0.866974 0.983521 0.400574\n0.892426 0.983551 0.403534\n0.915497 0.983551 0.406586\n0.936554 0.983551 0.409698\n0.955750 0.983582 0.412903\n0.973389 0.983551 0.416077\n0.989563 0.983276 0.419067\n1.000000 0.978668 0.426758\n1.000000 0.965210 0.446808\n0.165283 1.000000 0.395416\n0.197174 1.000000 0.394073\n0.225769 1.000000 0.392914\n0.251617 1.000000 0.391754\n0.275635 1.000000 0.390533\n0.298431 1.000000 0.389404\n0.320526 1.000000 0.388123\n0.342590 1.000000 0.387024\n0.364990 1.000000 0.385620\n0.388550 1.000000 0.384583\n0.414581 1.000000 0.384888\n0.442322 1.000000 0.385284\n0.471985 1.000000 0.385834\n0.503448 1.000000 0.386383\n0.537811 1.000000 0.387115\n0.575165 1.000000 0.388092\n0.615356 1.000000 0.389862\n0.656036 1.000000 0.391846\n0.696472 1.000000 0.394073\n0.735626 1.000000 0.396515\n0.772461 1.000000 0.399078\n0.806244 1.000000 0.401855\n0.836975 1.000000 0.404694\n0.865021 1.000000 0.407715\n0.890289 1.000000 0.410797\n0.913300 1.000000 0.413910\n0.934296 1.000000 0.417023\n0.953552 1.000000 0.420288\n0.971283 1.000000 0.423370\n0.987549 1.000000 0.427094\n1.000000 0.997192 0.434601\n1.000000 0.983307 0.455353\n0.196869 1.000000 0.405426\n0.227264 1.000000 0.405518\n0.254578 1.000000 0.405334\n0.279449 1.000000 0.405396\n0.302612 1.000000 0.405396\n0.324677 1.000000 0.405518\n0.346161 1.000000 0.405731\n0.367645 1.000000 0.405945\n0.389557 1.000000 0.406097\n0.412231 1.000000 0.406494\n0.436310 1.000000 0.406952\n0.461578 1.000000 0.407562\n0.488678 1.000000 0.408234\n0.518158 1.000000 0.409088\n0.551178 1.000000 0.410706\n0.586517 1.000000 0.412659\n0.623230 1.000000 0.414795\n0.660492 1.000000 0.417053\n0.697754 1.000000 0.419617\n0.733673 1.000000 0.422241\n0.767944 1.000000 0.424988\n0.799408 1.000000 0.427887\n0.828064 1.000000 0.430847\n0.854309 1.000000 0.433838\n0.878296 1.000000 0.436890\n0.900116 1.000000 0.439941\n0.920135 1.000000 0.443024\n0.938477 1.000000 0.446594\n0.955444 1.000000 0.450684\n0.971191 1.000000 0.455231\n0.986053 1.000000 0.459961\n1.000000 1.000000 0.464691\n0.000000 0.006378 0.366394\n0.040253 0.000824 0.378754\n0.087921 0.004608 0.383942\n0.132782 0.008484 0.388977\n0.174194 0.012390 0.394012\n0.211548 0.016083 0.398621\n0.244720 0.019623 0.402832\n0.274689 0.022125 0.405670\n0.302155 0.023743 0.407440\n0.328094 0.025330 0.409180\n0.353394 0.026794 0.410919\n0.378784 0.028259 0.412567\n0.405090 0.029724 0.414154\n0.432129 0.030426 0.415131\n0.460846 0.030487 0.415527\n0.491943 0.030426 0.415802\n0.526550 0.030151 0.415894\n0.566101 0.029724 0.415771\n0.609711 0.029205 0.415558\n0.655914 0.028687 0.415253\n0.703125 0.028259 0.414856\n0.749695 0.027924 0.414490\n0.793976 0.027588 0.414154\n0.834045 0.027649 0.414093\n0.869568 0.027954 0.413818\n0.900970 0.028412 0.413788\n0.928680 0.029175 0.413849\n0.953156 0.029785 0.413849\n0.974945 0.030518 0.413879\n0.994476 0.031403 0.413879\n1.000000 0.050995 0.417877\n1.000000 0.077820 0.424286\n0.000000 0.045837 0.377808\n0.040497 0.042053 0.387787\n0.088074 0.045776 0.392792\n0.132782 0.049255 0.397461\n0.174072 0.052673 0.401703\n0.211151 0.055023 0.404510\n0.243866 0.056610 0.406342\n0.273376 0.058105 0.408112\n0.300720 0.059540 0.409790\n0.326569 0.060944 0.411499\n0.351868 0.062317 0.413086\n0.377441 0.063690 0.414642\n0.403778 0.065063 0.416168\n0.431030 0.065765 0.417114\n0.459778 0.065826 0.417480\n0.490845 0.065735 0.417694\n0.525452 0.065430 0.417694\n0.564972 0.065002 0.417572\n0.608490 0.064606 0.417236\n0.654785 0.064087 0.416809\n0.702515 0.063690 0.416412\n0.749512 0.063416 0.416016\n0.793854 0.063232 0.415527\n0.833923 0.063385 0.415253\n0.869446 0.063751 0.415131\n0.900696 0.064026 0.414856\n0.928253 0.064514 0.414795\n0.952606 0.065125 0.414612\n0.974335 0.065979 0.414551\n0.993774 0.066925 0.414581\n1.000000 0.085052 0.418976\n1.000000 0.111328 0.425934\n0.000000 0.085052 0.389618\n0.042236 0.083466 0.397552\n0.088165 0.085114 0.400513\n0.132568 0.087433 0.403412\n0.173340 0.088898 0.405273\n0.209808 0.090332 0.406952\n0.242432 0.091675 0.408691\n0.271790 0.093048 0.410370\n0.299103 0.094360 0.411987\n0.325226 0.095673 0.413544\n0.350555 0.096924 0.415100\n0.376160 0.098206 0.416626\n0.402496 0.099518 0.418060\n0.429901 0.100342 0.419037\n0.458679 0.100403 0.419312\n0.489777 0.100342 0.419434\n0.524353 0.100067 0.419403\n0.563843 0.099701 0.419159\n0.607941 0.099304 0.418701\n0.654816 0.098877 0.418304\n0.702759 0.098480 0.417786\n0.749939 0.098267 0.417297\n0.794281 0.098206 0.416779\n0.834167 0.098175 0.416229\n0.869476 0.098328 0.415955\n0.900574 0.098633 0.415649\n0.928009 0.099213 0.415405\n0.952209 0.099854 0.415192\n0.973755 0.100769 0.415131\n0.993134 0.101685 0.415131\n1.000000 0.118408 0.419800\n1.000000 0.144043 0.427521\n0.000000 0.123169 0.400177\n0.043762 0.122223 0.404785\n0.088806 0.121887 0.405151\n0.131439 0.122070 0.405884\n0.171753 0.123291 0.407593\n0.208160 0.124573 0.409241\n0.240723 0.125824 0.410889\n0.270325 0.127075 0.412476\n0.297729 0.128235 0.414001\n0.323883 0.129517 0.415497\n0.349243 0.130737 0.416992\n0.374908 0.131989 0.418396\n0.401276 0.133240 0.419800\n0.428802 0.134186 0.420776\n0.457581 0.134277 0.421051\n0.488770 0.134186 0.421051\n0.523773 0.133972 0.420959\n0.564026 0.133698 0.420685\n0.608459 0.133301 0.420197\n0.655670 0.132904 0.419678\n0.703857 0.132629 0.419006\n0.750885 0.132263 0.418274\n0.795013 0.131989 0.417603\n0.834686 0.131989 0.417084\n0.869751 0.132172 0.416626\n0.900635 0.132568 0.416412\n0.927856 0.133148 0.416046\n0.951904 0.133881 0.415802\n0.973328 0.134735 0.415833\n0.992493 0.135712 0.415649\n1.000000 0.150970 0.420349\n1.000000 0.175995 0.428864\n0.000000 0.158417 0.405914\n0.044037 0.157288 0.408386\n0.088654 0.156921 0.408661\n0.130585 0.156586 0.408997\n0.169983 0.156769 0.409821\n0.206635 0.157898 0.411377\n0.239349 0.159058 0.412933\n0.269012 0.160187 0.414429\n0.296417 0.161377 0.415863\n0.322571 0.162598 0.417328\n0.348022 0.163757 0.418732\n0.373627 0.165009 0.420044\n0.400085 0.166290 0.421387\n0.427704 0.167358 0.422485\n0.457001 0.167419 0.422638\n0.488831 0.167389 0.422577\n0.524353 0.167175 0.422272\n0.565033 0.166962 0.421936\n0.609894 0.166656 0.421356\n0.657227 0.166138 0.420563\n0.705261 0.165680 0.419830\n0.752258 0.165344 0.419006\n0.796173 0.165070 0.418335\n0.835541 0.165100 0.417755\n0.870270 0.165375 0.417206\n0.900879 0.165771 0.416901\n0.927856 0.166351 0.416718\n0.951660 0.167023 0.416473\n0.972870 0.167877 0.416199\n0.991913 0.168793 0.416046\n1.000000 0.182770 0.421051\n1.000000 0.207062 0.430237\n0.000000 0.192169 0.409210\n0.043457 0.191376 0.411804\n0.088074 0.190887 0.411987\n0.130310 0.190491 0.412262\n0.169312 0.190002 0.412506\n0.205231 0.190338 0.413330\n0.237946 0.191437 0.414825\n0.267639 0.192596 0.416260\n0.295135 0.193695 0.417633\n0.321259 0.194855 0.419006\n0.346771 0.196014 0.420319\n0.372375 0.197266 0.421600\n0.399323 0.198578 0.422852\n0.427704 0.199738 0.423920\n0.457336 0.199860 0.424011\n0.489655 0.199890 0.423859\n0.525696 0.199768 0.423584\n0.566711 0.199310 0.422913\n0.611755 0.198822 0.422211\n0.659180 0.198334 0.421295\n0.707367 0.197876 0.420441\n0.754089 0.197540 0.419647\n0.797729 0.197418 0.418884\n0.836639 0.197510 0.418304\n0.871002 0.197723 0.417725\n0.901245 0.198120 0.417389\n0.927887 0.198700 0.417084\n0.951447 0.199310 0.416748\n0.972443 0.200104 0.416626\n0.991364 0.200928 0.416473\n1.000000 0.213623 0.421417\n1.000000 0.237244 0.431549\n0.000000 0.224915 0.412018\n0.043121 0.224426 0.415070\n0.087891 0.223816 0.415161\n0.130157 0.223358 0.415344\n0.169189 0.222900 0.415527\n0.204529 0.222595 0.415771\n0.236633 0.223083 0.416595\n0.266296 0.224152 0.417938\n0.293823 0.225250 0.419250\n0.319977 0.226410 0.420532\n0.345947 0.227631 0.421753\n0.372284 0.228882 0.423035\n0.399567 0.230194 0.424255\n0.428375 0.231445 0.425262\n0.458496 0.231598 0.425262\n0.491180 0.231476 0.424957\n0.527527 0.231140 0.424316\n0.569031 0.230682 0.423676\n0.614319 0.230286 0.422852\n0.661896 0.229767 0.421844\n0.709900 0.229370 0.421082\n0.756348 0.229034 0.420197\n0.799530 0.228943 0.419373\n0.837952 0.229004 0.418732\n0.871857 0.229218 0.418243\n0.901703 0.229584 0.417786\n0.928040 0.230164 0.417480\n0.951294 0.230713 0.417114\n0.972015 0.231445 0.417053\n0.990784 0.232239 0.416687\n1.000000 0.243591 0.421783\n1.000000 0.266510 0.432770\n0.000000 0.256622 0.415070\n0.042969 0.256531 0.418121\n0.087769 0.255920 0.418182\n0.130035 0.255402 0.418274\n0.169037 0.255035 0.418396\n0.204376 0.254730 0.418549\n0.235992 0.254608 0.418854\n0.265015 0.254974 0.419495\n0.293091 0.256134 0.420746\n0.319916 0.257324 0.422028\n0.346222 0.258575 0.423187\n0.372925 0.259888 0.424377\n0.400635 0.261261 0.425537\n0.429718 0.262329 0.426361\n0.460083 0.262299 0.426086\n0.493164 0.262146 0.425598\n0.530029 0.261841 0.424957\n0.571960 0.261475 0.424225\n0.617584 0.261017 0.423340\n0.665131 0.260590 0.422455\n0.712952 0.260193 0.421448\n0.758942 0.259918 0.420654\n0.801575 0.259827 0.419769\n0.839447 0.259857 0.419159\n0.872833 0.260071 0.418640\n0.902222 0.260468 0.418121\n0.928192 0.260925 0.417786\n0.951141 0.261475 0.417542\n0.971710 0.262115 0.417236\n0.990173 0.262787 0.416870\n1.000000 0.272949 0.421936\n1.000000 0.295197 0.433807\n0.000000 0.287537 0.417938\n0.042816 0.288025 0.421112\n0.087616 0.287445 0.421051\n0.129883 0.286926 0.421051\n0.168915 0.286499 0.421143\n0.204285 0.286255 0.421234\n0.236511 0.286163 0.421387\n0.265869 0.286163 0.421661\n0.293488 0.286652 0.422150\n0.320557 0.287872 0.423340\n0.347290 0.289154 0.424500\n0.374207 0.290375 0.425446\n0.402069 0.291534 0.426361\n0.431549 0.292603 0.427032\n0.462280 0.292603 0.426697\n0.495758 0.292480 0.426208\n0.533203 0.292145 0.425507\n0.575500 0.291779 0.424652\n0.621185 0.291382 0.423767\n0.668762 0.290955 0.422791\n0.716278 0.290619 0.421844\n0.761780 0.290344 0.420898\n0.803711 0.290222 0.420135\n0.840973 0.290314 0.419464\n0.873779 0.290497 0.418945\n0.902740 0.290863 0.418365\n0.928314 0.291290 0.418030\n0.950989 0.291748 0.417633\n0.971283 0.292358 0.417389\n0.989594 0.292908 0.417114\n1.000000 0.301910 0.421967\n1.000000 0.323486 0.434906\n0.000000 0.318237 0.420715\n0.042694 0.319122 0.423859\n0.087524 0.318604 0.423767\n0.129761 0.318176 0.423737\n0.169586 0.317810 0.423706\n0.205902 0.317566 0.423737\n0.238434 0.317505 0.423798\n0.268036 0.317657 0.423950\n0.295654 0.317841 0.424225\n0.322083 0.318176 0.424408\n0.348816 0.319336 0.425293\n0.375916 0.320496 0.426178\n0.404175 0.321747 0.427032\n0.433868 0.322723 0.427673\n0.465057 0.322754 0.427246\n0.498871 0.322632 0.426666\n0.536865 0.322357 0.425964\n0.579468 0.322021 0.425049\n0.625275 0.321625 0.424164\n0.672729 0.321228 0.423096\n0.719788 0.320862 0.422089\n0.764740 0.320618 0.421173\n0.805908 0.320496 0.420349\n0.842529 0.320587 0.419708\n0.874756 0.320709 0.419006\n0.903259 0.321045 0.418457\n0.928436 0.321472 0.418182\n0.950806 0.321869 0.417786\n0.970856 0.322388 0.417328\n0.989014 0.322845 0.417053\n1.000000 0.330627 0.421783\n1.000000 0.351562 0.435791\n0.000000 0.348755 0.423309\n0.042572 0.350403 0.426514\n0.088348 0.349792 0.426300\n0.131897 0.349304 0.426147\n0.172272 0.349060 0.426056\n0.208771 0.348938 0.426025\n0.241486 0.348969 0.426086\n0.271057 0.348999 0.426056\n0.298553 0.349121 0.426025\n0.324860 0.349304 0.425995\n0.350830 0.349518 0.425995\n0.378296 0.350769 0.426819\n0.406799 0.352020 0.427643\n0.436798 0.352966 0.428070\n0.468292 0.352966 0.427643\n0.502441 0.352844 0.426971\n0.540985 0.352631 0.426208\n0.583862 0.352295 0.425323\n0.629608 0.351898 0.424255\n0.676727 0.351501 0.423279\n0.723358 0.351196 0.422180\n0.767609 0.350922 0.421265\n0.808105 0.350830 0.420380\n0.843964 0.350891 0.419800\n0.875610 0.351013 0.419067\n0.903625 0.351257 0.418579\n0.928436 0.351593 0.418152\n0.950531 0.351990 0.417755\n0.970367 0.352417 0.417389\n0.988342 0.352844 0.417023\n1.000000 0.359406 0.421478\n1.000000 0.379669 0.436523\n0.000000 0.380219 0.426636\n0.045074 0.381653 0.428894\n0.091675 0.381226 0.428711\n0.135681 0.380859 0.428436\n0.176300 0.380646 0.428314\n0.212708 0.380493 0.428070\n0.245148 0.380402 0.427887\n0.274567 0.380493 0.427795\n0.302063 0.380615 0.427704\n0.328491 0.380859 0.427643\n0.354523 0.381104 0.427521\n0.381104 0.381348 0.427368\n0.409912 0.382599 0.428101\n0.440125 0.383484 0.428436\n0.471924 0.383484 0.427917\n0.506439 0.383392 0.427216\n0.545410 0.383148 0.426392\n0.588440 0.382812 0.425415\n0.634094 0.382446 0.424286\n0.680878 0.382080 0.423340\n0.726898 0.381714 0.422241\n0.770447 0.381531 0.421234\n0.810089 0.381378 0.420441\n0.845306 0.381409 0.419708\n0.876434 0.381531 0.419037\n0.903931 0.381714 0.418488\n0.928345 0.381958 0.418030\n0.950195 0.382294 0.417572\n0.969818 0.382629 0.417114\n0.987610 0.382935 0.416718\n1.000000 0.388336 0.420624\n1.000000 0.407990 0.437103\n0.000580 0.413940 0.431549\n0.049652 0.413452 0.431183\n0.096771 0.413055 0.430847\n0.140900 0.412689 0.430511\n0.181213 0.412384 0.430084\n0.217285 0.412262 0.429779\n0.249512 0.412292 0.429565\n0.278809 0.412384 0.429382\n0.306183 0.412598 0.429260\n0.332550 0.412933 0.429169\n0.358734 0.413177 0.428986\n0.385437 0.413483 0.428802\n0.413391 0.413696 0.428497\n0.443726 0.414429 0.428589\n0.475830 0.414429 0.428040\n0.510681 0.414337 0.427307\n0.549988 0.414093 0.426392\n0.593109 0.413727 0.425354\n0.638611 0.413391 0.424316\n0.684906 0.412994 0.423218\n0.730286 0.412659 0.422119\n0.773071 0.412415 0.421112\n0.811951 0.412262 0.420319\n0.846405 0.412231 0.419525\n0.877014 0.412323 0.418823\n0.904083 0.412476 0.418274\n0.928131 0.412659 0.417694\n0.949738 0.412933 0.417236\n0.969177 0.413177 0.416626\n0.986908 0.413452 0.416107\n1.000000 0.417694 0.419342\n1.000000 0.436798 0.437347\n0.005981 0.445862 0.433289\n0.055389 0.445374 0.432709\n0.102386 0.444916 0.432129\n0.146362 0.444519 0.431671\n0.186432 0.444275 0.431152\n0.222137 0.444214 0.430878\n0.253998 0.444275 0.430603\n0.282990 0.444458 0.430389\n0.310181 0.444733 0.430176\n0.336426 0.444977 0.430023\n0.362610 0.445282 0.429810\n0.389465 0.445587 0.429535\n0.417511 0.445770 0.429169\n0.448181 0.446564 0.429291\n0.480560 0.446594 0.428711\n0.515717 0.446503 0.427887\n0.555328 0.446259 0.427002\n0.598572 0.445984 0.425995\n0.643799 0.445557 0.424896\n0.689606 0.445251 0.423767\n0.734406 0.444946 0.422760\n0.776398 0.444702 0.421753\n0.814484 0.444580 0.420898\n0.848328 0.444519 0.420135\n0.878357 0.444550 0.419464\n0.904999 0.444641 0.418823\n0.928833 0.444824 0.418243\n0.950195 0.445007 0.417572\n0.969482 0.445312 0.416962\n0.987061 0.445679 0.416229\n1.000000 0.449463 0.419464\n1.000000 0.466125 0.437439\n0.011719 0.477570 0.433807\n0.061249 0.477081 0.433044\n0.108368 0.476685 0.432465\n0.152130 0.476379 0.431915\n0.191742 0.476227 0.431488\n0.226837 0.476257 0.431091\n0.258209 0.476349 0.430786\n0.286835 0.476562 0.430542\n0.313782 0.476868 0.430328\n0.339935 0.477142 0.430115\n0.366150 0.477478 0.429871\n0.393066 0.477783 0.429504\n0.421234 0.477966 0.429077\n0.452332 0.478912 0.429413\n0.485870 0.479919 0.429810\n0.521301 0.479797 0.428955\n0.561157 0.479553 0.427979\n0.604279 0.479248 0.426941\n0.649200 0.478851 0.425781\n0.694489 0.478455 0.424713\n0.738464 0.478119 0.423645\n0.779755 0.477936 0.422668\n0.817047 0.477722 0.421722\n0.850220 0.477570 0.420929\n0.879822 0.477600 0.420166\n0.906189 0.477722 0.419342\n0.929688 0.477753 0.418579\n0.950806 0.478058 0.417847\n0.969879 0.478241 0.417053\n0.987305 0.478607 0.416290\n1.000000 0.481903 0.419647\n1.000000 0.496063 0.437378\n0.018890 0.510193 0.434021\n0.068542 0.509796 0.433350\n0.115509 0.509399 0.432617\n0.158752 0.509216 0.432037\n0.197601 0.509094 0.431549\n0.231934 0.509155 0.431091\n0.262634 0.509277 0.430817\n0.290894 0.509613 0.430603\n0.317627 0.509918 0.430267\n0.343597 0.510223 0.430054\n0.369751 0.510529 0.429749\n0.396759 0.510834 0.429352\n0.425079 0.510986 0.428894\n0.456451 0.512054 0.429321\n0.490326 0.513275 0.429871\n0.526855 0.513916 0.429871\n0.566833 0.513702 0.428864\n0.609802 0.513306 0.427826\n0.654297 0.512939 0.426666\n0.698975 0.512512 0.425537\n0.742249 0.512085 0.424469\n0.782745 0.511810 0.423401\n0.819427 0.511536 0.422394\n0.852142 0.511475 0.421417\n0.881317 0.511475 0.420471\n0.907288 0.511505 0.419617\n0.930573 0.511597 0.418701\n0.951416 0.511841 0.417877\n0.970306 0.511993 0.417053\n0.987610 0.512268 0.416229\n1.000000 0.515228 0.419708\n1.000000 0.527313 0.437317\n0.027466 0.545502 0.434052\n0.076935 0.545044 0.433350\n0.123444 0.544739 0.432587\n0.165955 0.544556 0.432007\n0.203827 0.544464 0.431458\n0.237335 0.544617 0.431091\n0.267365 0.544769 0.430695\n0.295105 0.545044 0.430420\n0.321472 0.545380 0.430176\n0.347290 0.545654 0.429810\n0.373383 0.545959 0.429443\n0.400360 0.546204 0.429047\n0.428802 0.546356 0.428528\n0.460388 0.547546 0.429047\n0.494354 0.548767 0.429596\n0.531586 0.549927 0.430084\n0.572235 0.550293 0.429718\n0.614899 0.549835 0.428619\n0.658966 0.549316 0.427429\n0.703003 0.548798 0.426239\n0.745697 0.548309 0.425079\n0.785675 0.547974 0.423859\n0.821777 0.547668 0.422729\n0.854034 0.547516 0.421631\n0.882782 0.547455 0.420593\n0.908447 0.547455 0.419647\n0.931396 0.547485 0.418701\n0.952057 0.547699 0.417786\n0.970734 0.547852 0.416962\n0.987823 0.548126 0.416168\n1.000000 0.550659 0.419708\n1.000000 0.560913 0.437195\n0.037140 0.583405 0.433990\n0.086182 0.583008 0.433136\n0.131897 0.582703 0.432434\n0.173431 0.582489 0.431763\n0.210205 0.582428 0.431244\n0.242737 0.582520 0.430847\n0.271973 0.582733 0.430481\n0.299255 0.583008 0.430145\n0.325287 0.583252 0.429779\n0.350891 0.583527 0.429504\n0.376923 0.583771 0.429108\n0.403900 0.583923 0.428558\n0.432495 0.584137 0.428192\n0.464111 0.585297 0.428711\n0.498108 0.586426 0.429138\n0.535400 0.587494 0.429565\n0.576752 0.588623 0.430054\n0.619568 0.588470 0.429291\n0.663300 0.587860 0.428009\n0.706940 0.587250 0.426697\n0.749115 0.586700 0.425323\n0.788544 0.586273 0.424042\n0.824127 0.585999 0.422821\n0.855896 0.585754 0.421661\n0.884216 0.585663 0.420593\n0.909515 0.585632 0.419525\n0.932190 0.585663 0.418579\n0.952606 0.585754 0.417725\n0.971130 0.585907 0.416809\n0.988068 0.586029 0.416046\n1.000000 0.588043 0.419830\n1.000000 0.596252 0.437225\n0.047638 0.623383 0.433624\n0.095917 0.622894 0.432800\n0.140717 0.622559 0.432098\n0.181061 0.622406 0.431488\n0.216522 0.622314 0.431000\n0.248108 0.622375 0.430511\n0.276611 0.622498 0.430145\n0.303406 0.622742 0.429779\n0.329041 0.622955 0.429443\n0.354431 0.623077 0.428986\n0.380310 0.623230 0.428558\n0.407227 0.623322 0.428040\n0.435974 0.623535 0.427765\n0.467590 0.624603 0.428192\n0.501434 0.625610 0.428650\n0.538757 0.626617 0.428986\n0.580017 0.627655 0.429321\n0.623810 0.628601 0.429535\n0.667511 0.628052 0.428284\n0.710846 0.627441 0.426849\n0.752533 0.626770 0.425385\n0.791382 0.626282 0.424042\n0.826385 0.625824 0.422760\n0.857697 0.625549 0.421539\n0.885651 0.625366 0.420441\n0.910583 0.625305 0.419434\n0.932983 0.625244 0.418427\n0.953217 0.625305 0.417572\n0.971497 0.625366 0.416748\n0.988281 0.625366 0.416046\n1.000000 0.627014 0.420013\n1.000000 0.632751 0.437408\n0.058594 0.664581 0.433228\n0.105927 0.664062 0.432465\n0.149567 0.663696 0.431641\n0.188416 0.663422 0.431030\n0.222717 0.663330 0.430420\n0.253235 0.663330 0.430054\n0.281128 0.663391 0.429657\n0.307281 0.663483 0.429260\n0.332581 0.663574 0.428894\n0.357758 0.663635 0.428436\n0.383453 0.663635 0.427979\n0.410278 0.663605 0.427368\n0.439056 0.663788 0.427216\n0.470520 0.664764 0.427612\n0.504395 0.665710 0.427917\n0.541962 0.666595 0.428131\n0.583191 0.667542 0.428284\n0.626984 0.668427 0.428345\n0.671783 0.669250 0.428314\n0.714722 0.668549 0.426788\n0.755890 0.667755 0.425293\n0.794128 0.667084 0.423859\n0.828583 0.666718 0.422577\n0.859406 0.666382 0.421387\n0.886963 0.666107 0.420288\n0.911652 0.665955 0.419250\n0.933716 0.665710 0.418365\n0.953674 0.665802 0.417572\n0.971863 0.665771 0.416840\n0.988464 0.665710 0.416168\n1.000000 0.666626 0.420410\n1.000000 0.669983 0.437836\n0.069794 0.706207 0.432770\n0.115997 0.705627 0.432007\n0.158203 0.705170 0.431152\n0.195587 0.704834 0.430481\n0.228638 0.704651 0.430023\n0.258179 0.704559 0.429535\n0.285309 0.704529 0.429138\n0.310944 0.704529 0.428741\n0.335815 0.704498 0.428284\n0.360687 0.704407 0.427826\n0.386261 0.704285 0.427307\n0.412964 0.704010 0.426697\n0.441833 0.704315 0.426514\n0.473480 0.705139 0.426727\n0.507477 0.705994 0.426849\n0.545227 0.706818 0.426971\n0.586548 0.707642 0.427002\n0.630096 0.708435 0.427002\n0.674713 0.709290 0.426971\n0.718445 0.709656 0.426605\n0.759094 0.708923 0.425110\n0.796783 0.708313 0.423737\n0.830719 0.707672 0.422363\n0.861084 0.707184 0.421234\n0.888275 0.706909 0.420197\n0.912598 0.706604 0.419250\n0.934448 0.706512 0.418427\n0.954193 0.706360 0.417725\n0.972168 0.706238 0.417084\n0.988678 0.706177 0.416595\n1.000000 0.706146 0.421082\n1.000000 0.707184 0.438477\n0.080780 0.747406 0.432190\n0.125763 0.746674 0.431458\n0.166473 0.746185 0.430573\n0.202362 0.745758 0.430054\n0.234131 0.745483 0.429413\n0.262756 0.745300 0.429016\n0.289093 0.745087 0.428497\n0.314240 0.744995 0.428131\n0.338745 0.744812 0.427643\n0.363373 0.744568 0.427124\n0.388794 0.744293 0.426483\n0.415497 0.743927 0.425751\n0.444733 0.744293 0.425476\n0.476471 0.744995 0.425598\n0.510651 0.745758 0.425629\n0.548553 0.746460 0.425629\n0.589844 0.747223 0.425598\n0.633118 0.747894 0.425568\n0.677277 0.748596 0.425476\n0.720947 0.749268 0.425415\n0.762177 0.749512 0.424927\n0.799316 0.748749 0.423492\n0.832733 0.748108 0.422272\n0.862671 0.747559 0.421204\n0.889465 0.747131 0.420227\n0.913483 0.746826 0.419373\n0.935120 0.746552 0.418701\n0.954681 0.746368 0.418091\n0.972473 0.746124 0.417664\n0.988831 0.745972 0.417328\n1.000000 0.745361 0.421997\n1.000000 0.743927 0.439514\n0.091522 0.787201 0.431671\n0.135040 0.786499 0.430817\n0.174194 0.785889 0.430084\n0.208557 0.785370 0.429382\n0.239136 0.784973 0.428864\n0.266815 0.784668 0.428345\n0.292511 0.784393 0.427979\n0.317078 0.784119 0.427460\n0.341339 0.783813 0.426941\n0.365906 0.783478 0.426239\n0.391357 0.783112 0.425385\n0.418182 0.782593 0.424561\n0.447662 0.782959 0.424286\n0.479553 0.783661 0.424286\n0.513824 0.784241 0.424286\n0.551788 0.784882 0.424225\n0.593079 0.785522 0.424194\n0.636108 0.786102 0.424103\n0.679993 0.786682 0.424042\n0.723114 0.787292 0.423920\n0.764221 0.787872 0.423920\n0.801697 0.787964 0.423401\n0.834595 0.787231 0.422272\n0.864105 0.786652 0.421265\n0.890533 0.786072 0.420441\n0.914276 0.785706 0.419769\n0.935669 0.785400 0.419189\n0.955048 0.785095 0.418823\n0.972717 0.784729 0.418549\n0.988953 0.784546 0.418427\n1.000000 0.783081 0.423401\n1.000000 0.779633 0.441528\n0.101715 0.825073 0.431152\n0.143707 0.824280 0.430237\n0.181213 0.823608 0.429565\n0.214111 0.823029 0.428894\n0.243530 0.822510 0.428314\n0.270325 0.822113 0.427765\n0.295471 0.821686 0.427155\n0.319794 0.821289 0.426514\n0.343933 0.820862 0.425873\n0.368469 0.820435 0.425049\n0.393982 0.819946 0.424133\n0.420837 0.819366 0.423096\n0.450592 0.819794 0.423004\n0.482544 0.820312 0.422943\n0.516937 0.820801 0.422882\n0.555054 0.821320 0.422821\n0.596161 0.821899 0.422791\n0.639008 0.822357 0.422668\n0.682465 0.822876 0.422638\n0.725098 0.823364 0.422638\n0.765686 0.823822 0.422699\n0.803131 0.824310 0.422791\n0.836334 0.824280 0.422485\n0.865448 0.823700 0.421661\n0.891571 0.823151 0.420990\n0.915009 0.822510 0.420441\n0.936218 0.822205 0.420105\n0.955383 0.821655 0.419891\n0.972931 0.821381 0.419861\n0.989075 0.821350 0.420502\n1.000000 0.819489 0.426422\n1.000000 0.814087 0.444977\n0.111115 0.860321 0.430573\n0.151459 0.859406 0.429718\n0.187317 0.858673 0.428955\n0.218872 0.857971 0.428314\n0.247406 0.857422 0.427643\n0.273712 0.856873 0.426941\n0.298462 0.856384 0.426239\n0.322662 0.855927 0.425446\n0.346588 0.855408 0.424622\n0.371155 0.854889 0.423767\n0.396667 0.854279 0.422760\n0.423645 0.853668 0.421692\n0.453522 0.854095 0.421661\n0.485565 0.854492 0.421600\n0.520172 0.854950 0.421539\n0.558228 0.855347 0.421417\n0.599213 0.855774 0.421417\n0.641724 0.856171 0.421387\n0.684875 0.856537 0.421478\n0.726929 0.856934 0.421539\n0.767029 0.857300 0.421692\n0.803925 0.857727 0.421906\n0.837189 0.858093 0.422180\n0.866638 0.858124 0.422302\n0.892456 0.857452 0.421783\n0.915680 0.856903 0.421509\n0.936646 0.856354 0.421356\n0.955719 0.856079 0.421875\n0.973145 0.856018 0.422852\n0.989105 0.855865 0.424103\n1.000000 0.853302 0.430267\n1.000000 0.845825 0.449127\n0.119446 0.892303 0.429840\n0.158203 0.891388 0.429169\n0.192719 0.890594 0.428314\n0.223389 0.889832 0.427551\n0.251251 0.889191 0.426636\n0.277100 0.888611 0.425842\n0.301605 0.888062 0.425140\n0.325470 0.887512 0.424225\n0.349335 0.886902 0.423309\n0.373840 0.886322 0.422333\n0.399414 0.885620 0.421326\n0.426514 0.885132 0.420410\n0.456482 0.885437 0.420380\n0.488617 0.885742 0.420319\n0.523285 0.886078 0.420288\n0.561279 0.886383 0.420258\n0.602173 0.886719 0.420319\n0.644379 0.887024 0.420410\n0.687042 0.887329 0.420532\n0.728607 0.887573 0.420776\n0.768219 0.887909 0.421051\n0.804565 0.888184 0.421478\n0.837280 0.888489 0.421936\n0.866821 0.888763 0.422546\n0.893188 0.888824 0.423096\n0.916290 0.888275 0.423431\n0.937134 0.887909 0.424316\n0.955963 0.887512 0.425507\n0.973145 0.887268 0.426880\n0.989044 0.886963 0.428467\n1.000000 0.884064 0.434784\n1.000000 0.874847 0.453827\n0.126892 0.920898 0.429230\n0.164490 0.919922 0.428314\n0.198029 0.919067 0.427338\n0.227875 0.918304 0.426453\n0.255127 0.917633 0.425537\n0.280426 0.916962 0.424683\n0.304626 0.916382 0.423767\n0.328339 0.915741 0.422943\n0.352142 0.915131 0.422058\n0.376556 0.914490 0.421051\n0.402130 0.913757 0.419983\n0.429474 0.913300 0.419220\n0.459442 0.913544 0.419159\n0.491638 0.913818 0.419159\n0.526184 0.914032 0.419250\n0.564240 0.914246 0.419342\n0.604797 0.914490 0.419495\n0.646698 0.914703 0.419739\n0.689026 0.914917 0.420013\n0.730194 0.915131 0.420410\n0.769135 0.915314 0.420868\n0.805115 0.915527 0.421478\n0.837494 0.915710 0.422150\n0.866821 0.916016 0.423431\n0.893280 0.916351 0.425140\n0.916840 0.916626 0.427002\n0.937378 0.916107 0.428345\n0.956055 0.915680 0.429779\n0.973145 0.915131 0.431549\n0.988922 0.914703 0.433441\n1.000000 0.911377 0.439789\n1.000000 0.900940 0.458923\n0.134186 0.946289 0.428497\n0.170776 0.945312 0.427277\n0.203247 0.944458 0.426331\n0.232361 0.943665 0.425354\n0.258972 0.942993 0.424469\n0.283783 0.942322 0.423462\n0.307739 0.941681 0.422668\n0.331207 0.941010 0.421631\n0.354858 0.940338 0.420776\n0.379242 0.939636 0.419800\n0.404755 0.938873 0.418762\n0.432281 0.938507 0.418182\n0.462341 0.938690 0.418243\n0.494446 0.938904 0.418335\n0.528992 0.939056 0.418488\n0.567047 0.939209 0.418701\n0.607269 0.939331 0.418976\n0.648956 0.939514 0.419342\n0.690765 0.939667 0.419891\n0.731445 0.939789 0.420441\n0.770050 0.939911 0.421173\n0.805725 0.940125 0.422424\n0.838043 0.940338 0.424072\n0.866821 0.940552 0.426025\n0.892761 0.940735 0.428162\n0.916138 0.940918 0.430359\n0.937286 0.941071 0.432861\n0.955994 0.940674 0.434753\n0.972992 0.940155 0.436737\n0.988800 0.939636 0.438843\n1.000000 0.936096 0.445129\n1.000000 0.924438 0.464233\n0.141327 0.969025 0.427368\n0.176788 0.968079 0.426300\n0.208221 0.967194 0.425201\n0.236603 0.966431 0.424194\n0.262695 0.965698 0.423248\n0.287079 0.965057 0.422302\n0.310699 0.964417 0.421387\n0.334015 0.963745 0.420471\n0.357513 0.963043 0.419495\n0.381866 0.962311 0.418579\n0.407379 0.961517 0.417725\n0.435028 0.961273 0.417389\n0.465027 0.961365 0.417542\n0.496979 0.961487 0.417755\n0.531586 0.961609 0.418030\n0.569458 0.961700 0.418427\n0.609558 0.961792 0.418884\n0.650757 0.961853 0.419525\n0.692139 0.961945 0.420227\n0.732788 0.962097 0.421356\n0.771301 0.962219 0.423126\n0.806366 0.962341 0.425079\n0.837830 0.962433 0.427094\n0.866364 0.962555 0.429413\n0.892059 0.962616 0.431793\n0.915283 0.962738 0.434387\n0.936310 0.962830 0.437073\n0.955597 0.962921 0.439789\n0.972839 0.962585 0.442230\n0.988647 0.961975 0.444427\n1.000000 0.958374 0.450623\n1.000000 0.945740 0.469666\n0.148254 0.989532 0.426208\n0.182617 0.988617 0.425140\n0.213104 0.987793 0.424011\n0.240723 0.987000 0.423035\n0.266235 0.986298 0.422058\n0.290283 0.985626 0.421143\n0.313568 0.984955 0.420166\n0.336700 0.984283 0.419312\n0.360107 0.983612 0.418579\n0.384369 0.982880 0.417725\n0.409821 0.982086 0.416962\n0.437531 0.981903 0.416840\n0.467499 0.981964 0.417114\n0.499390 0.982056 0.417511\n0.534027 0.982086 0.417969\n0.571564 0.982117 0.418579\n0.611359 0.982178 0.419281\n0.652832 0.982239 0.420441\n0.694275 0.982269 0.422150\n0.734222 0.982330 0.424072\n0.771851 0.982361 0.426208\n0.806274 0.982391 0.428467\n0.837463 0.982452 0.430878\n0.865662 0.982452 0.433441\n0.891144 0.982483 0.436096\n0.914368 0.982483 0.438873\n0.935364 0.982483 0.441711\n0.954651 0.982513 0.444550\n0.972412 0.982544 0.447479\n0.988495 0.982269 0.450134\n1.000000 0.978699 0.456207\n1.000000 0.965271 0.475830\n0.166565 1.000000 0.429047\n0.198364 1.000000 0.427948\n0.226715 1.000000 0.426727\n0.252502 1.000000 0.425629\n0.276428 1.000000 0.424652\n0.299103 1.000000 0.423523\n0.321198 1.000000 0.422607\n0.343201 1.000000 0.421356\n0.365570 1.000000 0.420288\n0.388794 1.000000 0.418976\n0.413116 1.000000 0.417511\n0.440704 1.000000 0.417603\n0.470490 1.000000 0.418091\n0.502136 1.000000 0.418671\n0.536621 1.000000 0.419434\n0.574310 1.000000 0.420593\n0.614288 1.000000 0.422241\n0.655090 1.000000 0.424164\n0.695343 1.000000 0.426239\n0.734528 1.000000 0.428436\n0.771484 1.000000 0.430878\n0.805420 1.000000 0.433441\n0.836304 1.000000 0.436005\n0.864349 1.000000 0.438782\n0.889832 1.000000 0.441498\n0.912994 1.000000 0.444336\n0.934082 1.000000 0.447235\n0.953430 1.000000 0.450043\n0.971191 1.000000 0.452911\n0.987549 1.000000 0.456604\n1.000000 0.997223 0.463562\n1.000000 0.983276 0.483673\n0.198029 1.000000 0.437347\n0.228363 1.000000 0.437256\n0.255463 1.000000 0.437195\n0.280273 1.000000 0.437134\n0.303345 1.000000 0.437317\n0.325287 1.000000 0.437408\n0.346771 1.000000 0.437439\n0.368225 1.000000 0.437683\n0.390076 1.000000 0.437927\n0.412811 1.000000 0.438385\n0.436707 1.000000 0.438843\n0.462128 1.000000 0.439331\n0.489136 1.000000 0.440002\n0.518799 1.000000 0.441071\n0.551727 1.000000 0.442657\n0.587036 1.000000 0.444489\n0.623566 1.000000 0.446442\n0.660736 1.000000 0.448608\n0.697876 1.000000 0.450958\n0.733826 1.000000 0.453308\n0.767883 1.000000 0.455872\n0.799347 1.000000 0.458466\n0.828125 1.000000 0.461151\n0.854340 1.000000 0.463898\n0.878326 1.000000 0.466583\n0.900146 1.000000 0.469391\n0.920105 1.000000 0.472168\n0.938568 1.000000 0.475555\n0.955475 1.000000 0.479431\n0.971283 1.000000 0.483521\n0.985992 1.000000 0.487701\n1.000000 1.000000 0.491943\n0.000000 0.007355 0.405365\n0.038696 0.000275 0.418243\n0.086365 0.004211 0.423004\n0.131378 0.008148 0.427734\n0.172760 0.011932 0.432129\n0.210144 0.015656 0.436279\n0.243317 0.019135 0.439972\n0.273132 0.020966 0.441772\n0.300568 0.022583 0.443420\n0.326538 0.024139 0.444977\n0.351898 0.025604 0.446503\n0.377258 0.027100 0.447968\n0.403595 0.028503 0.449402\n0.431396 0.029999 0.450806\n0.460815 0.031067 0.451874\n0.491913 0.030945 0.451965\n0.526520 0.030731 0.451904\n0.566101 0.030334 0.451721\n0.609680 0.029846 0.451355\n0.655914 0.029327 0.450897\n0.703125 0.028870 0.450470\n0.749817 0.028503 0.449982\n0.794098 0.028290 0.449493\n0.834198 0.028320 0.449249\n0.869751 0.028625 0.449066\n0.901093 0.029175 0.448822\n0.928772 0.029846 0.448792\n0.953217 0.030487 0.448578\n0.974976 0.031281 0.448517\n0.994507 0.032166 0.448456\n1.000000 0.051819 0.451416\n1.000000 0.078613 0.456024\n0.000000 0.046814 0.416168\n0.038971 0.041718 0.426514\n0.086487 0.045197 0.431000\n0.131378 0.048828 0.435150\n0.172577 0.052063 0.438751\n0.209564 0.053925 0.440735\n0.242310 0.055450 0.442322\n0.271851 0.056946 0.443848\n0.299103 0.058350 0.445404\n0.325012 0.059784 0.446930\n0.350433 0.061127 0.448364\n0.375946 0.062531 0.449738\n0.402374 0.063843 0.451080\n0.430176 0.065216 0.452423\n0.459747 0.066376 0.453522\n0.490845 0.066284 0.453522\n0.525452 0.066040 0.453400\n0.564972 0.065643 0.453186\n0.608490 0.065186 0.452820\n0.654938 0.064728 0.452179\n0.702667 0.064331 0.451752\n0.749725 0.063995 0.451141\n0.794098 0.063873 0.450592\n0.834167 0.064026 0.450348\n0.869598 0.064331 0.449951\n0.900848 0.064667 0.449585\n0.928375 0.065155 0.449341\n0.952728 0.065826 0.449249\n0.974365 0.066742 0.449097\n0.993805 0.067657 0.448914\n1.000000 0.085846 0.452087\n1.000000 0.112091 0.457306\n0.000000 0.085693 0.426910\n0.040802 0.082947 0.435150\n0.086700 0.084503 0.437622\n0.131104 0.086304 0.439575\n0.171661 0.087769 0.441223\n0.208221 0.089172 0.442780\n0.240692 0.090485 0.444366\n0.270203 0.091858 0.445862\n0.297546 0.093140 0.447327\n0.323700 0.094482 0.448669\n0.349091 0.095764 0.450043\n0.374725 0.097076 0.451416\n0.401123 0.098389 0.452667\n0.428955 0.099731 0.453979\n0.458649 0.100952 0.455048\n0.489777 0.100861 0.455048\n0.524353 0.100647 0.454834\n0.563995 0.100342 0.454559\n0.608185 0.099854 0.453979\n0.655151 0.099487 0.453369\n0.703125 0.099152 0.452820\n0.750244 0.098938 0.452271\n0.794617 0.098877 0.451721\n0.834442 0.098755 0.451080\n0.869690 0.098938 0.450531\n0.900787 0.099304 0.450226\n0.928101 0.099823 0.449860\n0.952301 0.100616 0.449615\n0.973846 0.101501 0.449524\n0.993164 0.102386 0.449371\n1.000000 0.119232 0.452698\n1.000000 0.144775 0.458801\n0.000000 0.123505 0.436340\n0.042236 0.121033 0.440918\n0.087219 0.120789 0.441162\n0.129700 0.120850 0.441742\n0.170044 0.122131 0.443268\n0.206421 0.123413 0.444733\n0.239136 0.124634 0.446228\n0.268799 0.125916 0.447632\n0.296234 0.127075 0.449005\n0.322357 0.128357 0.450348\n0.347809 0.129608 0.451660\n0.373444 0.130859 0.452911\n0.399872 0.132080 0.454102\n0.427734 0.133453 0.455322\n0.457550 0.134796 0.456482\n0.488892 0.134705 0.456451\n0.524078 0.134613 0.456146\n0.564362 0.134247 0.455719\n0.608826 0.133911 0.455139\n0.656158 0.133606 0.454529\n0.704315 0.133240 0.453766\n0.751282 0.132843 0.452972\n0.795410 0.132599 0.452271\n0.834991 0.132568 0.451660\n0.870026 0.132843 0.451111\n0.900848 0.133270 0.450775\n0.928040 0.133850 0.450409\n0.951996 0.134613 0.450134\n0.973389 0.135468 0.449799\n0.992523 0.136353 0.449677\n1.000000 0.151794 0.453400\n1.000000 0.176666 0.460022\n0.000000 0.158020 0.440552\n0.042267 0.156128 0.444183\n0.086823 0.155731 0.444336\n0.128784 0.155365 0.444550\n0.168304 0.155518 0.445160\n0.205017 0.156738 0.446564\n0.237793 0.157898 0.447937\n0.267517 0.159027 0.449310\n0.294861 0.160217 0.450592\n0.321045 0.161407 0.451874\n0.346558 0.162659 0.453125\n0.372192 0.163910 0.454315\n0.398682 0.165192 0.455475\n0.426666 0.166534 0.456635\n0.457123 0.167908 0.457733\n0.489105 0.167908 0.457550\n0.524719 0.167786 0.457275\n0.565521 0.167603 0.456787\n0.610382 0.167206 0.456024\n0.657745 0.166687 0.455261\n0.705841 0.166229 0.454254\n0.752777 0.165863 0.453491\n0.796631 0.165710 0.452728\n0.835907 0.165741 0.452026\n0.870636 0.165985 0.451630\n0.901123 0.166473 0.451172\n0.928040 0.167023 0.450653\n0.951782 0.167755 0.450500\n0.972931 0.168549 0.450256\n0.991943 0.169495 0.450073\n1.000000 0.183502 0.453735\n1.000000 0.207703 0.461273\n0.000000 0.191589 0.443420\n0.041626 0.190186 0.447266\n0.086365 0.189758 0.447357\n0.128632 0.189301 0.447449\n0.167725 0.188904 0.447601\n0.203583 0.189178 0.448273\n0.236420 0.190277 0.449585\n0.266113 0.191406 0.450867\n0.293640 0.192596 0.452057\n0.319794 0.193756 0.453308\n0.345276 0.194977 0.454468\n0.371124 0.196198 0.455627\n0.398132 0.197540 0.456665\n0.426819 0.198944 0.457794\n0.457733 0.200348 0.458862\n0.490112 0.200409 0.458649\n0.526184 0.200317 0.458282\n0.567291 0.199829 0.457489\n0.612366 0.199341 0.456665\n0.659912 0.198914 0.455688\n0.707977 0.198425 0.454773\n0.754730 0.198151 0.453918\n0.798218 0.197998 0.453186\n0.837036 0.198059 0.452454\n0.871368 0.198334 0.451996\n0.901550 0.198792 0.451508\n0.928070 0.199310 0.451080\n0.951569 0.200012 0.450714\n0.972534 0.200775 0.450531\n0.991364 0.201569 0.450195\n1.000000 0.214325 0.454132\n1.000000 0.237823 0.462341\n0.000000 0.224182 0.445984\n0.041412 0.223236 0.450165\n0.086212 0.222717 0.450226\n0.128479 0.222198 0.450226\n0.167603 0.221741 0.450287\n0.202942 0.221527 0.450378\n0.235107 0.221863 0.451050\n0.264771 0.223022 0.452240\n0.292297 0.224182 0.453430\n0.318665 0.225311 0.454590\n0.344757 0.226624 0.455688\n0.371185 0.227936 0.456787\n0.398560 0.229218 0.457825\n0.427612 0.230621 0.458862\n0.458923 0.232025 0.459839\n0.491638 0.231934 0.459412\n0.528137 0.231628 0.458832\n0.569672 0.231201 0.458008\n0.615021 0.230774 0.457092\n0.662689 0.230347 0.456177\n0.710632 0.229889 0.455139\n0.757080 0.229614 0.454285\n0.800079 0.229553 0.453461\n0.838409 0.229584 0.452759\n0.872223 0.229858 0.452179\n0.902008 0.230255 0.451721\n0.928192 0.230713 0.451233\n0.951447 0.231415 0.451019\n0.972137 0.232056 0.450714\n0.990814 0.232788 0.450378\n1.000000 0.244263 0.454437\n1.000000 0.267090 0.463379\n0.000000 0.255646 0.448730\n0.041260 0.255371 0.452942\n0.086090 0.254791 0.452850\n0.128387 0.254272 0.452850\n0.167450 0.253937 0.452850\n0.202850 0.253662 0.452911\n0.234467 0.253540 0.453003\n0.263672 0.253967 0.453552\n0.291901 0.255096 0.454681\n0.318726 0.256287 0.455750\n0.345154 0.257599 0.456818\n0.371979 0.258942 0.457886\n0.399689 0.260254 0.458862\n0.429047 0.261475 0.459686\n0.460632 0.262787 0.460480\n0.493713 0.262634 0.459961\n0.530823 0.262360 0.459259\n0.572723 0.261932 0.458435\n0.618347 0.261566 0.457428\n0.665985 0.261139 0.456451\n0.713715 0.260712 0.455505\n0.759705 0.260468 0.454590\n0.802155 0.260376 0.453735\n0.839874 0.260406 0.452972\n0.873199 0.260651 0.452362\n0.902496 0.260986 0.451935\n0.928345 0.261475 0.451538\n0.951294 0.262085 0.451141\n0.971771 0.262665 0.450745\n0.990234 0.263367 0.450531\n1.000000 0.273560 0.454590\n1.000000 0.295715 0.464386\n0.000000 0.286560 0.451324\n0.041107 0.286835 0.455536\n0.085968 0.286285 0.455444\n0.128235 0.285736 0.455292\n0.167358 0.285492 0.455231\n0.202942 0.285248 0.455292\n0.235291 0.285126 0.455322\n0.264740 0.285217 0.455414\n0.292480 0.285675 0.455841\n0.319611 0.286865 0.456848\n0.346405 0.288208 0.457886\n0.373291 0.289368 0.458679\n0.401276 0.290558 0.459473\n0.431000 0.291809 0.460236\n0.462921 0.293060 0.460907\n0.496460 0.292938 0.460358\n0.534058 0.292664 0.459595\n0.576385 0.292267 0.458679\n0.622162 0.291870 0.457764\n0.669678 0.291504 0.456726\n0.717102 0.291138 0.455719\n0.762573 0.290863 0.454742\n0.804382 0.290771 0.453918\n0.841431 0.290833 0.453094\n0.874207 0.291046 0.452515\n0.903015 0.291382 0.451965\n0.928528 0.291809 0.451477\n0.951141 0.292358 0.451080\n0.971344 0.292847 0.450806\n0.989655 0.293427 0.450439\n1.000000 0.302429 0.454376\n1.000000 0.323914 0.465240\n0.000000 0.316925 0.453766\n0.041016 0.318085 0.458008\n0.085846 0.317596 0.457855\n0.128326 0.317108 0.457642\n0.168457 0.316772 0.457489\n0.204834 0.316528 0.457458\n0.237427 0.316498 0.457458\n0.267120 0.316650 0.457520\n0.294800 0.316895 0.457611\n0.321136 0.317169 0.457672\n0.347992 0.318359 0.458466\n0.375153 0.319489 0.459229\n0.403473 0.320770 0.459991\n0.433594 0.322083 0.460724\n0.465759 0.323212 0.461243\n0.499695 0.323120 0.460632\n0.537842 0.322876 0.459900\n0.580444 0.322540 0.458923\n0.626282 0.322113 0.457855\n0.673645 0.321716 0.456879\n0.720612 0.321381 0.455750\n0.765442 0.321136 0.454803\n0.806519 0.321045 0.453979\n0.842957 0.321075 0.453247\n0.875153 0.321289 0.452545\n0.903503 0.321594 0.452026\n0.928619 0.321930 0.451508\n0.950928 0.322418 0.451080\n0.970947 0.322876 0.450714\n0.989044 0.323395 0.450409\n1.000000 0.331116 0.454193\n1.000000 0.351990 0.466125\n0.000000 0.347595 0.456085\n0.041077 0.349365 0.460388\n0.087219 0.348785 0.460083\n0.130890 0.348358 0.459869\n0.171356 0.348083 0.459656\n0.207977 0.347992 0.459534\n0.240692 0.348022 0.459412\n0.270233 0.348053 0.459290\n0.297760 0.348145 0.459167\n0.324097 0.348297 0.459045\n0.350220 0.348602 0.458954\n0.377594 0.349854 0.459717\n0.406219 0.351105 0.460419\n0.436676 0.352448 0.461151\n0.469116 0.353394 0.461517\n0.503387 0.353333 0.460815\n0.542023 0.353119 0.459961\n0.584900 0.352783 0.459015\n0.630676 0.352386 0.457947\n0.677765 0.352020 0.456787\n0.724243 0.351715 0.455841\n0.768402 0.351471 0.454803\n0.808655 0.351318 0.453918\n0.844421 0.351379 0.453125\n0.876007 0.351501 0.452545\n0.903900 0.351746 0.451904\n0.928650 0.352112 0.451385\n0.950653 0.352509 0.450958\n0.970459 0.352905 0.450592\n0.988403 0.353271 0.450104\n1.000000 0.359833 0.453735\n1.000000 0.380035 0.466736\n0.000000 0.378967 0.459503\n0.044189 0.380676 0.462555\n0.090881 0.380280 0.462219\n0.134949 0.379883 0.461884\n0.175720 0.379700 0.461578\n0.212036 0.379486 0.461273\n0.244354 0.379395 0.460999\n0.273895 0.379547 0.460815\n0.301392 0.379639 0.460602\n0.327759 0.379944 0.460480\n0.353943 0.380219 0.460327\n0.380554 0.380463 0.460052\n0.409424 0.381775 0.460724\n0.440186 0.383087 0.461395\n0.472809 0.383972 0.461670\n0.507416 0.383850 0.460846\n0.546478 0.383606 0.459961\n0.589478 0.383270 0.458893\n0.635223 0.382904 0.457886\n0.681793 0.382538 0.456726\n0.727722 0.382233 0.455688\n0.771179 0.381958 0.454681\n0.810669 0.381805 0.453766\n0.845764 0.381866 0.453064\n0.876740 0.381989 0.452393\n0.904175 0.382172 0.451721\n0.928528 0.382416 0.451172\n0.950317 0.382721 0.450623\n0.969879 0.383026 0.450348\n0.987671 0.383392 0.449829\n1.000000 0.388733 0.453094\n1.000000 0.408386 0.467255\n0.000000 0.412903 0.464844\n0.049042 0.412506 0.464539\n0.096436 0.412140 0.464142\n0.140320 0.411743 0.463593\n0.180695 0.411438 0.463104\n0.216797 0.411316 0.462738\n0.248901 0.411346 0.462463\n0.278229 0.411530 0.462250\n0.305573 0.411743 0.462036\n0.331970 0.412018 0.461823\n0.358185 0.412323 0.461609\n0.384918 0.412628 0.461334\n0.412964 0.412903 0.460968\n0.443970 0.414185 0.461578\n0.476746 0.414886 0.461639\n0.511688 0.414764 0.460754\n0.551086 0.414551 0.459869\n0.594177 0.414215 0.458801\n0.639648 0.413849 0.457672\n0.685852 0.413422 0.456543\n0.731110 0.413116 0.455475\n0.773804 0.412903 0.454407\n0.812439 0.412720 0.453522\n0.846863 0.412689 0.452759\n0.877289 0.412781 0.452057\n0.904297 0.412903 0.451385\n0.928314 0.413116 0.450806\n0.949829 0.413330 0.450317\n0.969238 0.413574 0.449707\n0.986908 0.413879 0.449127\n1.000000 0.418060 0.451721\n1.000000 0.437134 0.467438\n0.006317 0.445404 0.466888\n0.055634 0.444916 0.466278\n0.102692 0.444397 0.465607\n0.146637 0.444092 0.465027\n0.186737 0.443817 0.464508\n0.222290 0.443817 0.464111\n0.254120 0.443878 0.463776\n0.283142 0.444122 0.463531\n0.310272 0.444336 0.463318\n0.336578 0.444702 0.463074\n0.362823 0.445068 0.462830\n0.389618 0.445343 0.462494\n0.417816 0.445587 0.462067\n0.448029 0.445862 0.461609\n0.480835 0.446320 0.461456\n0.516113 0.446259 0.460602\n0.555695 0.445953 0.459595\n0.598785 0.445648 0.458496\n0.644012 0.445251 0.457367\n0.689636 0.444824 0.456207\n0.734192 0.444519 0.455139\n0.776093 0.444244 0.454071\n0.813995 0.444092 0.453247\n0.847748 0.444031 0.452301\n0.877625 0.444031 0.451630\n0.904236 0.444092 0.450897\n0.928009 0.444244 0.450165\n0.949310 0.444427 0.449615\n0.968567 0.444672 0.448792\n0.986115 0.444916 0.448090\n1.000000 0.447937 0.450012\n1.000000 0.466431 0.467438\n0.013184 0.477905 0.467926\n0.062836 0.477448 0.467285\n0.109955 0.477051 0.466553\n0.153534 0.476746 0.465942\n0.193115 0.476593 0.465393\n0.228027 0.476593 0.464935\n0.259247 0.476776 0.464600\n0.287842 0.476990 0.464264\n0.314728 0.477295 0.464050\n0.340851 0.477600 0.463715\n0.367035 0.477905 0.463379\n0.393890 0.478180 0.462952\n0.422241 0.478363 0.462463\n0.452454 0.478455 0.461914\n0.485596 0.479126 0.461823\n0.521179 0.479004 0.460938\n0.560913 0.478729 0.459900\n0.604004 0.478424 0.458832\n0.648834 0.478027 0.457703\n0.693970 0.477631 0.456573\n0.737885 0.477356 0.455444\n0.778961 0.477020 0.454468\n0.816132 0.476929 0.453552\n0.849304 0.476868 0.452698\n0.878815 0.476807 0.451843\n0.905151 0.476807 0.451050\n0.928650 0.477020 0.450256\n0.949768 0.477142 0.449524\n0.968842 0.477509 0.448761\n0.986267 0.477661 0.447998\n1.000000 0.480438 0.450043\n1.000000 0.496338 0.467407\n0.020691 0.510559 0.467987\n0.070404 0.510162 0.467255\n0.117157 0.509796 0.466522\n0.160309 0.509552 0.465851\n0.199097 0.509521 0.465363\n0.233154 0.509552 0.464874\n0.263824 0.509735 0.464478\n0.291992 0.510040 0.464142\n0.318573 0.510345 0.463806\n0.344574 0.510651 0.463501\n0.370697 0.510956 0.463104\n0.397583 0.511200 0.462708\n0.426056 0.511383 0.462158\n0.456360 0.511475 0.461487\n0.490112 0.512482 0.461823\n0.526703 0.513184 0.461761\n0.566528 0.512848 0.460693\n0.609406 0.512482 0.459595\n0.653839 0.512085 0.458435\n0.698334 0.511688 0.457275\n0.741547 0.511261 0.456207\n0.781952 0.510986 0.455109\n0.818481 0.510742 0.454071\n0.851196 0.510590 0.453094\n0.880310 0.510529 0.452148\n0.906250 0.510681 0.451263\n0.929504 0.510773 0.450378\n0.950348 0.510986 0.449524\n0.969269 0.511139 0.448730\n0.986511 0.511383 0.447937\n1.000000 0.513855 0.450043\n1.000000 0.527649 0.467285\n0.029419 0.545807 0.467865\n0.078979 0.545471 0.467072\n0.125336 0.545166 0.466339\n0.167603 0.544952 0.465637\n0.205353 0.544861 0.465088\n0.238556 0.544983 0.464630\n0.268494 0.545227 0.464233\n0.296173 0.545502 0.463867\n0.322449 0.545776 0.463501\n0.348206 0.546112 0.463135\n0.374359 0.546448 0.462738\n0.401245 0.546600 0.462250\n0.429749 0.546753 0.461670\n0.460144 0.546753 0.460968\n0.494049 0.547913 0.461395\n0.531372 0.549103 0.461853\n0.571838 0.549408 0.461365\n0.614441 0.548920 0.460297\n0.658386 0.548492 0.459137\n0.702362 0.547882 0.457855\n0.744995 0.547455 0.456665\n0.784882 0.547089 0.455444\n0.820831 0.546722 0.454285\n0.853088 0.546600 0.453278\n0.881775 0.546631 0.452209\n0.907349 0.546570 0.451233\n0.930298 0.546600 0.450348\n0.950958 0.546783 0.449463\n0.969666 0.546997 0.448578\n0.986816 0.547180 0.447815\n1.000000 0.549377 0.450165\n1.000000 0.561218 0.467224\n0.039276 0.583771 0.467560\n0.088348 0.583405 0.466797\n0.133728 0.583038 0.465942\n0.175140 0.582886 0.465302\n0.211700 0.582886 0.464813\n0.243988 0.582947 0.464294\n0.273163 0.583160 0.463806\n0.300385 0.583405 0.463470\n0.326233 0.583710 0.463043\n0.351898 0.583954 0.462646\n0.377838 0.584167 0.462250\n0.404785 0.584320 0.461700\n0.433289 0.584351 0.461121\n0.463806 0.584381 0.460480\n0.497772 0.585541 0.460876\n0.535065 0.586609 0.461273\n0.576263 0.587646 0.461670\n0.619019 0.587524 0.460846\n0.662689 0.586914 0.459564\n0.706268 0.586334 0.458221\n0.748444 0.585754 0.456848\n0.787720 0.585358 0.455566\n0.823181 0.585022 0.454346\n0.854889 0.584839 0.453217\n0.883209 0.584747 0.452179\n0.908508 0.584717 0.451172\n0.931183 0.584717 0.450195\n0.951538 0.584747 0.449310\n0.970093 0.584991 0.448547\n0.987030 0.585022 0.447723\n1.000000 0.586823 0.450256\n1.000000 0.596558 0.467255\n0.049896 0.623718 0.467163\n0.098175 0.623322 0.466278\n0.142609 0.622955 0.465485\n0.182678 0.622772 0.464813\n0.218048 0.622742 0.464264\n0.249329 0.622772 0.463776\n0.277802 0.622894 0.463348\n0.304382 0.623108 0.462952\n0.329956 0.623322 0.462555\n0.355347 0.623505 0.462097\n0.381226 0.623627 0.461639\n0.408081 0.623657 0.461090\n0.436493 0.623566 0.460419\n0.467163 0.623657 0.459930\n0.501007 0.624695 0.460266\n0.538361 0.625671 0.460602\n0.579529 0.626617 0.460815\n0.623413 0.627594 0.461029\n0.666992 0.627106 0.459747\n0.710175 0.626373 0.458344\n0.751801 0.625763 0.456879\n0.790558 0.625305 0.455536\n0.825470 0.624878 0.454254\n0.856689 0.624664 0.453125\n0.884583 0.624420 0.451996\n0.909515 0.624329 0.451019\n0.931915 0.624298 0.450104\n0.952118 0.624298 0.449249\n0.970459 0.624329 0.448486\n0.987274 0.624481 0.447754\n1.000000 0.625732 0.450439\n1.000000 0.633087 0.467468\n0.060944 0.664886 0.466614\n0.108185 0.664429 0.465851\n0.151428 0.664062 0.465027\n0.190125 0.663788 0.464264\n0.224213 0.663696 0.463776\n0.254456 0.663666 0.463257\n0.282227 0.663757 0.462769\n0.308319 0.663879 0.462341\n0.333466 0.663971 0.461914\n0.358643 0.664001 0.461426\n0.384277 0.663940 0.460968\n0.411072 0.663910 0.460358\n0.439392 0.663666 0.459686\n0.470123 0.663727 0.459229\n0.504028 0.664673 0.459442\n0.541595 0.665649 0.459625\n0.582825 0.666473 0.459778\n0.626526 0.667419 0.459839\n0.671265 0.668213 0.459747\n0.714050 0.667389 0.458221\n0.755127 0.666748 0.456757\n0.793274 0.666138 0.455383\n0.827637 0.665619 0.454071\n0.858429 0.665375 0.452911\n0.885895 0.664948 0.451874\n0.910553 0.664886 0.450928\n0.932678 0.664795 0.450043\n0.952606 0.664703 0.449249\n0.970825 0.664734 0.448578\n0.987457 0.664642 0.447968\n1.000000 0.665649 0.450836\n1.000000 0.670166 0.467834\n0.072113 0.706482 0.466064\n0.118225 0.705963 0.465149\n0.160034 0.705505 0.464386\n0.197235 0.705139 0.463654\n0.230011 0.704987 0.463104\n0.259308 0.704895 0.462677\n0.286346 0.704834 0.462158\n0.311890 0.704834 0.461761\n0.336639 0.704773 0.461304\n0.361542 0.704742 0.460785\n0.386993 0.704529 0.460175\n0.413635 0.704315 0.459564\n0.442017 0.703949 0.458710\n0.472961 0.704102 0.458282\n0.507141 0.704895 0.458405\n0.544861 0.705780 0.458466\n0.586121 0.706543 0.458466\n0.629608 0.707367 0.458466\n0.674133 0.708160 0.458435\n0.717712 0.708588 0.458038\n0.758331 0.707855 0.456543\n0.795868 0.707092 0.455200\n0.829773 0.706604 0.453979\n0.860077 0.706116 0.452820\n0.887207 0.705750 0.451782\n0.911499 0.705566 0.450897\n0.933380 0.705353 0.450104\n0.953125 0.705261 0.449402\n0.971130 0.705078 0.448822\n0.987610 0.705109 0.448364\n1.000000 0.705353 0.451508\n1.000000 0.707428 0.468506\n0.083160 0.747650 0.465393\n0.127899 0.746979 0.464508\n0.168213 0.746460 0.463715\n0.203918 0.746033 0.463074\n0.235413 0.745758 0.462555\n0.263794 0.745544 0.461914\n0.290100 0.745422 0.461487\n0.315033 0.745239 0.460999\n0.339478 0.745026 0.460541\n0.364075 0.744843 0.460022\n0.389465 0.744537 0.459290\n0.416260 0.744202 0.458466\n0.444763 0.743713 0.457489\n0.476044 0.743896 0.457092\n0.510345 0.744629 0.457123\n0.548218 0.745392 0.457123\n0.589386 0.746063 0.457123\n0.632660 0.746765 0.457062\n0.676819 0.747528 0.456970\n0.720337 0.748199 0.456879\n0.761383 0.748383 0.456390\n0.798401 0.747650 0.455017\n0.831757 0.746918 0.453857\n0.861603 0.746490 0.452789\n0.888397 0.746002 0.451843\n0.912384 0.745728 0.451050\n0.934021 0.745483 0.450378\n0.953552 0.745209 0.449799\n0.971405 0.744995 0.449402\n0.987793 0.744843 0.449066\n1.000000 0.744507 0.452393\n1.000000 0.744171 0.469513\n0.093872 0.787445 0.464783\n0.137085 0.786743 0.463837\n0.175781 0.786133 0.462982\n0.209961 0.785614 0.462341\n0.240295 0.785248 0.461823\n0.267731 0.784912 0.461304\n0.293335 0.784607 0.460754\n0.317810 0.784332 0.460266\n0.342041 0.783997 0.459656\n0.366638 0.783722 0.459045\n0.392059 0.783295 0.458099\n0.418915 0.782806 0.457153\n0.447540 0.782166 0.456116\n0.479126 0.782501 0.455811\n0.513489 0.783081 0.455780\n0.551453 0.783752 0.455719\n0.592560 0.784332 0.455627\n0.635651 0.784943 0.455566\n0.679260 0.785522 0.455536\n0.722351 0.786163 0.455475\n0.763519 0.786713 0.455444\n0.800781 0.786743 0.454987\n0.833588 0.786102 0.453888\n0.863037 0.785492 0.452911\n0.889496 0.784943 0.452087\n0.913208 0.784454 0.451447\n0.934540 0.784149 0.450867\n0.953949 0.783875 0.450500\n0.971649 0.783691 0.450226\n0.987885 0.783386 0.450073\n1.000000 0.782440 0.453766\n1.000000 0.780121 0.471619\n0.103912 0.825287 0.464081\n0.145569 0.824432 0.463104\n0.182617 0.823761 0.462433\n0.215393 0.823212 0.461761\n0.244507 0.822693 0.461151\n0.271210 0.822266 0.460571\n0.296295 0.821869 0.460022\n0.320557 0.821442 0.459351\n0.344696 0.821045 0.458618\n0.369263 0.820648 0.457794\n0.394714 0.820099 0.456879\n0.421631 0.819519 0.455811\n0.450348 0.818787 0.454651\n0.482117 0.819153 0.454468\n0.516602 0.819702 0.454407\n0.554657 0.820190 0.454315\n0.595673 0.820679 0.454254\n0.638489 0.821198 0.454193\n0.681732 0.821655 0.454193\n0.724335 0.822205 0.454193\n0.764893 0.822693 0.454254\n0.802155 0.823120 0.454346\n0.835327 0.823120 0.454071\n0.864380 0.822479 0.453278\n0.890442 0.821930 0.452576\n0.913910 0.821411 0.452118\n0.935089 0.820892 0.451721\n0.954285 0.820587 0.451508\n0.971832 0.820251 0.451508\n0.988037 0.820251 0.452179\n1.000000 0.819122 0.456726\n1.000000 0.814331 0.474762\n0.113098 0.860443 0.463440\n0.153076 0.859558 0.462555\n0.188599 0.858795 0.461731\n0.220001 0.858124 0.461090\n0.248352 0.857544 0.460388\n0.274567 0.856995 0.459686\n0.299316 0.856506 0.458893\n0.323364 0.856049 0.458099\n0.347382 0.855560 0.457367\n0.371918 0.855011 0.456482\n0.397400 0.854370 0.455444\n0.424347 0.853729 0.454376\n0.453156 0.852966 0.453247\n0.485199 0.853363 0.453125\n0.519714 0.853729 0.453094\n0.557831 0.854187 0.453033\n0.598633 0.854584 0.453003\n0.641174 0.855011 0.453033\n0.684113 0.855347 0.453094\n0.726166 0.855743 0.453186\n0.766144 0.856171 0.453308\n0.802917 0.856506 0.453522\n0.836029 0.856903 0.453857\n0.865570 0.856995 0.453949\n0.891296 0.856262 0.453400\n0.914551 0.855682 0.453094\n0.935516 0.855164 0.452972\n0.954620 0.854980 0.453583\n0.972046 0.854858 0.454468\n0.988037 0.854645 0.455536\n1.000000 0.852966 0.460358\n1.000000 0.846069 0.478546\n0.121216 0.892395 0.462708\n0.159576 0.891479 0.461761\n0.193909 0.890656 0.461060\n0.224579 0.889923 0.460236\n0.252228 0.889313 0.459320\n0.277893 0.888702 0.458496\n0.302368 0.888184 0.457794\n0.326202 0.887573 0.457001\n0.350128 0.886993 0.456024\n0.374634 0.886383 0.455078\n0.400116 0.885742 0.454132\n0.427063 0.884979 0.453003\n0.455994 0.884247 0.451935\n0.488129 0.884613 0.451904\n0.522797 0.884918 0.451874\n0.560760 0.885193 0.451904\n0.601593 0.885559 0.451935\n0.643707 0.885834 0.452057\n0.686188 0.886108 0.452179\n0.727753 0.886444 0.452393\n0.767212 0.886688 0.452698\n0.803467 0.886993 0.453094\n0.836243 0.887329 0.453552\n0.865784 0.887573 0.454102\n0.892090 0.887695 0.454620\n0.915192 0.887268 0.455139\n0.936035 0.886871 0.455902\n0.954834 0.886444 0.456940\n0.972107 0.886230 0.458191\n0.988007 0.885834 0.459564\n1.000000 0.883698 0.464447\n1.000000 0.875092 0.482819\n0.128510 0.920929 0.461945\n0.165894 0.919983 0.460999\n0.199219 0.919128 0.460114\n0.228943 0.918365 0.459106\n0.256042 0.917694 0.458282\n0.281311 0.917053 0.457428\n0.305450 0.916473 0.456512\n0.329041 0.915802 0.455597\n0.352875 0.915222 0.454651\n0.377319 0.914551 0.453705\n0.402771 0.913818 0.452728\n0.429779 0.912964 0.451691\n0.458984 0.912354 0.450836\n0.491028 0.912628 0.450867\n0.525696 0.912842 0.450867\n0.563660 0.913086 0.451019\n0.604156 0.913300 0.451141\n0.646057 0.913544 0.451385\n0.688141 0.913727 0.451660\n0.729218 0.913971 0.452087\n0.768311 0.914185 0.452484\n0.804077 0.914368 0.453033\n0.836365 0.914581 0.453705\n0.865784 0.914917 0.455048\n0.892120 0.915222 0.456665\n0.915710 0.915527 0.458466\n0.936249 0.915039 0.459564\n0.954895 0.914551 0.460907\n0.972015 0.914093 0.462433\n0.987885 0.913635 0.464020\n1.000000 0.911133 0.468933\n1.000000 0.901093 0.487366\n0.135834 0.946320 0.461060\n0.172058 0.945374 0.459991\n0.204376 0.944489 0.458954\n0.233398 0.943726 0.458069\n0.259827 0.943024 0.457123\n0.284668 0.942352 0.456268\n0.308502 0.941711 0.455322\n0.331879 0.941040 0.454346\n0.355591 0.940369 0.453461\n0.379883 0.939697 0.452515\n0.405426 0.938934 0.451538\n0.432465 0.938049 0.450592\n0.461823 0.937592 0.449921\n0.493805 0.937744 0.450043\n0.528564 0.937927 0.450195\n0.566345 0.938049 0.450378\n0.606567 0.938232 0.450684\n0.648193 0.938354 0.451050\n0.689880 0.938507 0.451508\n0.730408 0.938660 0.452087\n0.769043 0.938782 0.452759\n0.804688 0.939026 0.454041\n0.836884 0.939240 0.455658\n0.865753 0.939453 0.457428\n0.891663 0.939636 0.459351\n0.915009 0.939819 0.461456\n0.936188 0.940033 0.463593\n0.954865 0.939636 0.465363\n0.971924 0.939026 0.467072\n0.987762 0.938599 0.468811\n1.000000 0.935913 0.473663\n1.000000 0.924500 0.492065\n0.142914 0.968994 0.460083\n0.178070 0.968079 0.458954\n0.209412 0.967224 0.457916\n0.237610 0.966431 0.456879\n0.263519 0.965729 0.455933\n0.287903 0.965057 0.454895\n0.311462 0.964417 0.454132\n0.334686 0.963745 0.453247\n0.358246 0.963043 0.452393\n0.382507 0.962311 0.451508\n0.407990 0.961517 0.450500\n0.434967 0.960663 0.449615\n0.464325 0.960266 0.449249\n0.496429 0.960358 0.449463\n0.531097 0.960480 0.449738\n0.568787 0.960571 0.450165\n0.608826 0.960663 0.450592\n0.649933 0.960785 0.451172\n0.691193 0.960876 0.451813\n0.732056 0.960999 0.453125\n0.770294 0.961151 0.454681\n0.805237 0.961273 0.456451\n0.836761 0.961365 0.458466\n0.865143 0.961487 0.460480\n0.890778 0.961578 0.462708\n0.914093 0.961670 0.465027\n0.935211 0.961761 0.467346\n0.954437 0.961823 0.469849\n0.971832 0.961517 0.471954\n0.987640 0.960999 0.473785\n1.000000 0.958282 0.478455\n1.000000 0.945831 0.496796\n0.149811 0.989502 0.458893\n0.183838 0.988556 0.457794\n0.214172 0.987732 0.456604\n0.241730 0.987000 0.455627\n0.267029 0.986298 0.454865\n0.291046 0.985626 0.453918\n0.314331 0.984955 0.453003\n0.337372 0.984314 0.452271\n0.360748 0.983612 0.451416\n0.384979 0.982880 0.450562\n0.410400 0.982086 0.449738\n0.437378 0.981232 0.449005\n0.466766 0.980865 0.448853\n0.498749 0.980927 0.449249\n0.533386 0.980988 0.449707\n0.570801 0.981049 0.450226\n0.610626 0.981079 0.450928\n0.652039 0.981171 0.452209\n0.693329 0.981232 0.453796\n0.733124 0.981293 0.455566\n0.770691 0.981323 0.457489\n0.805115 0.981354 0.459595\n0.836243 0.981415 0.461823\n0.864380 0.981445 0.464081\n0.889984 0.981445 0.466461\n0.913177 0.981476 0.468933\n0.934296 0.981506 0.471436\n0.953522 0.981506 0.473969\n0.971344 0.981567 0.476532\n0.987518 0.981323 0.478851\n1.000000 0.978638 0.483582\n1.000000 0.965302 0.502502\n0.167938 1.000000 0.460693\n0.199493 1.000000 0.459808\n0.227692 1.000000 0.458801\n0.253357 1.000000 0.457794\n0.277191 1.000000 0.456848\n0.299896 1.000000 0.455841\n0.321808 1.000000 0.454865\n0.343811 1.000000 0.453949\n0.366180 1.000000 0.452850\n0.389343 1.000000 0.451569\n0.413666 1.000000 0.450317\n0.439545 1.000000 0.448822\n0.468903 0.999756 0.448822\n0.500763 0.999786 0.449371\n0.535248 0.999786 0.450073\n0.573273 0.999786 0.451324\n0.613220 0.999817 0.452911\n0.653870 0.999817 0.454651\n0.694244 0.999786 0.456573\n0.733337 0.999725 0.458679\n0.770416 0.999725 0.460846\n0.804474 0.999725 0.463165\n0.835358 0.999695 0.465607\n0.863464 0.999695 0.468018\n0.889130 0.999603 0.470551\n0.912262 0.999573 0.473114\n0.933472 0.999573 0.475616\n0.952789 0.999512 0.478241\n0.970520 0.999512 0.480927\n0.986938 0.999481 0.484314\n1.000000 0.997162 0.490295\n1.000000 0.983398 0.509552\n0.199280 1.000000 0.467194\n0.229370 1.000000 0.467285\n0.256378 1.000000 0.467285\n0.281067 1.000000 0.467255\n0.304016 1.000000 0.467316\n0.325928 1.000000 0.467468\n0.347321 1.000000 0.467621\n0.368774 1.000000 0.467804\n0.390625 1.000000 0.468048\n0.413300 1.000000 0.468353\n0.437164 1.000000 0.468719\n0.462524 1.000000 0.469269\n0.489502 1.000000 0.469940\n0.519501 1.000000 0.471161\n0.552368 1.000000 0.472687\n0.587341 1.000000 0.474274\n0.623932 1.000000 0.476135\n0.661041 1.000000 0.478027\n0.698059 1.000000 0.480164\n0.733856 1.000000 0.482361\n0.768036 1.000000 0.484589\n0.799530 1.000000 0.486938\n0.828186 1.000000 0.489349\n0.854462 1.000000 0.491730\n0.878296 1.000000 0.494171\n0.900177 1.000000 0.496613\n0.920258 1.000000 0.499146\n0.938660 1.000000 0.502350\n0.955536 1.000000 0.505768\n0.971313 1.000000 0.509430\n0.986053 1.000000 0.513245\n1.000000 1.000000 0.516968\n0.000000 0.008362 0.442413\n0.037231 0.000000 0.455841\n0.084961 0.003876 0.460175\n0.129822 0.007721 0.464233\n0.171356 0.011658 0.468140\n0.208771 0.015289 0.471710\n0.241943 0.018219 0.474335\n0.271667 0.019897 0.475800\n0.299133 0.021454 0.477173\n0.325073 0.022980 0.478577\n0.350342 0.024506 0.479919\n0.375793 0.025970 0.481201\n0.402252 0.027435 0.482483\n0.430054 0.028900 0.483765\n0.459808 0.030365 0.484924\n0.491882 0.031525 0.485840\n0.526489 0.031311 0.485626\n0.566071 0.030853 0.485291\n0.609650 0.030457 0.484772\n0.655884 0.029938 0.484192\n0.703094 0.029480 0.483643\n0.750000 0.029114 0.483093\n0.794281 0.028931 0.482544\n0.834351 0.029053 0.482117\n0.869904 0.029358 0.481750\n0.901245 0.029938 0.481476\n0.928864 0.030518 0.481293\n0.953278 0.031158 0.481018\n0.975037 0.031982 0.480774\n0.994568 0.032898 0.480652\n1.000000 0.052551 0.482361\n1.000000 0.079315 0.485535\n0.000000 0.047638 0.452301\n0.037567 0.041412 0.463165\n0.085114 0.044922 0.467010\n0.129913 0.048309 0.470490\n0.171204 0.051239 0.473328\n0.208008 0.052856 0.474762\n0.240723 0.054321 0.476135\n0.270294 0.055817 0.477570\n0.297546 0.057220 0.478882\n0.323486 0.058594 0.480164\n0.348969 0.060028 0.481445\n0.374603 0.061401 0.482727\n0.400970 0.062744 0.483887\n0.428802 0.064148 0.485077\n0.458649 0.065552 0.486176\n0.490814 0.066833 0.487091\n0.525421 0.066559 0.486908\n0.564941 0.066223 0.486481\n0.608459 0.065765 0.485931\n0.655090 0.065277 0.485352\n0.702881 0.064941 0.484650\n0.750000 0.064667 0.483917\n0.794342 0.064606 0.483337\n0.834412 0.064819 0.483032\n0.869812 0.065063 0.482513\n0.901001 0.065338 0.481964\n0.928528 0.065918 0.481720\n0.952789 0.066589 0.481415\n0.974426 0.067413 0.481110\n0.993866 0.068481 0.480957\n1.000000 0.086639 0.482941\n1.000000 0.112823 0.486664\n0.000000 0.086365 0.461945\n0.039490 0.082489 0.470703\n0.085266 0.083710 0.472260\n0.129486 0.085205 0.473663\n0.170074 0.086670 0.475128\n0.206543 0.087982 0.476471\n0.239136 0.089355 0.477844\n0.268646 0.090698 0.479126\n0.296112 0.092010 0.480377\n0.322235 0.093353 0.481659\n0.347717 0.094666 0.482880\n0.373352 0.095917 0.484009\n0.399780 0.097290 0.485168\n0.427612 0.098663 0.486237\n0.457489 0.100006 0.487305\n0.489746 0.101410 0.488342\n0.524323 0.101227 0.487976\n0.564178 0.100891 0.487518\n0.608459 0.100494 0.486908\n0.655457 0.100067 0.486145\n0.703491 0.099762 0.485443\n0.750671 0.099640 0.484833\n0.794952 0.099457 0.484039\n0.834747 0.099365 0.483459\n0.869965 0.099579 0.482788\n0.900970 0.099976 0.482330\n0.928284 0.100616 0.482025\n0.952393 0.101379 0.481628\n0.973938 0.102203 0.481415\n0.993225 0.103180 0.481140\n1.000000 0.119934 0.483521\n1.000000 0.145508 0.487793\n0.000000 0.123596 0.470001\n0.040588 0.120026 0.475006\n0.085571 0.119659 0.475128\n0.127930 0.119690 0.475403\n0.168365 0.121002 0.476837\n0.204895 0.122253 0.478088\n0.237610 0.123505 0.479340\n0.267334 0.124786 0.480652\n0.294769 0.126007 0.481812\n0.320923 0.127258 0.483002\n0.346436 0.128510 0.484161\n0.372070 0.129761 0.485199\n0.398499 0.131104 0.486328\n0.426392 0.132477 0.487366\n0.456299 0.133820 0.488342\n0.489044 0.135284 0.489349\n0.524323 0.135101 0.488953\n0.564636 0.134827 0.488373\n0.609314 0.134552 0.487793\n0.656616 0.134216 0.486969\n0.704742 0.133850 0.486145\n0.751740 0.133453 0.485321\n0.795807 0.133179 0.484467\n0.835388 0.133240 0.483734\n0.870331 0.133514 0.483124\n0.901093 0.133942 0.482758\n0.928162 0.134521 0.482269\n0.952148 0.135284 0.481964\n0.973450 0.136139 0.481567\n0.992584 0.137115 0.481323\n1.000000 0.152496 0.484039\n1.000000 0.177368 0.489014\n0.000000 0.157745 0.473175\n0.040527 0.155029 0.477844\n0.085083 0.154572 0.477875\n0.127136 0.154266 0.477905\n0.166687 0.154419 0.478333\n0.203461 0.155579 0.479614\n0.236237 0.156769 0.480804\n0.265961 0.157959 0.481995\n0.293427 0.159119 0.483093\n0.319672 0.160370 0.484222\n0.345154 0.161591 0.485291\n0.370850 0.162842 0.486359\n0.397339 0.164154 0.487396\n0.425598 0.165527 0.488342\n0.456116 0.166931 0.489288\n0.489410 0.168457 0.490265\n0.525055 0.168365 0.489868\n0.566010 0.168152 0.489258\n0.610870 0.167786 0.488342\n0.658234 0.167206 0.487488\n0.706390 0.166809 0.486511\n0.753326 0.166473 0.485626\n0.797058 0.166290 0.484680\n0.836304 0.166382 0.483978\n0.870941 0.166626 0.483337\n0.901398 0.167084 0.482910\n0.928192 0.167694 0.482422\n0.951904 0.168396 0.482025\n0.972992 0.169250 0.481812\n0.992004 0.170135 0.481537\n1.000000 0.184174 0.484283\n1.000000 0.208405 0.490021\n0.000000 0.191254 0.475586\n0.039886 0.189178 0.480591\n0.084717 0.188629 0.480469\n0.127045 0.188141 0.480469\n0.166138 0.187836 0.480438\n0.202087 0.188080 0.480988\n0.234863 0.189178 0.482086\n0.264679 0.190338 0.483215\n0.292145 0.191528 0.484314\n0.318390 0.192688 0.485382\n0.343903 0.193970 0.486389\n0.369965 0.195221 0.487366\n0.397034 0.196564 0.488312\n0.425751 0.197968 0.489227\n0.456818 0.199432 0.490204\n0.490540 0.200928 0.491089\n0.526703 0.200775 0.490509\n0.567841 0.200348 0.489685\n0.613037 0.199890 0.488770\n0.660522 0.199432 0.487732\n0.708649 0.199036 0.486816\n0.755310 0.198730 0.485779\n0.798737 0.198578 0.485016\n0.837524 0.198730 0.484192\n0.871674 0.198944 0.483582\n0.901794 0.199371 0.483093\n0.928284 0.199951 0.482605\n0.951721 0.200623 0.482269\n0.972626 0.201385 0.481812\n0.991425 0.202240 0.481628\n1.000000 0.214966 0.484528\n1.000000 0.238434 0.490906\n0.000000 0.223663 0.477905\n0.039734 0.222137 0.483185\n0.084564 0.221588 0.483002\n0.126892 0.221069 0.482880\n0.166046 0.220734 0.482849\n0.201416 0.220428 0.482819\n0.233582 0.220825 0.483307\n0.263367 0.222015 0.484344\n0.290833 0.223145 0.485352\n0.317474 0.224335 0.486389\n0.343628 0.225586 0.487335\n0.370148 0.226929 0.488281\n0.397614 0.228333 0.489227\n0.426727 0.229736 0.490082\n0.458160 0.231110 0.490906\n0.492157 0.232422 0.491608\n0.528748 0.232086 0.490845\n0.570374 0.231689 0.489990\n0.615875 0.231293 0.489044\n0.663452 0.230865 0.487976\n0.711426 0.230469 0.487030\n0.757782 0.230255 0.485962\n0.800629 0.230103 0.485138\n0.838928 0.230164 0.484406\n0.872589 0.230408 0.483765\n0.902252 0.230835 0.483124\n0.928436 0.231384 0.482666\n0.951569 0.231964 0.482300\n0.972229 0.232666 0.481873\n0.990875 0.233429 0.481537\n1.000000 0.244843 0.484619\n1.000000 0.267670 0.491913\n0.000000 0.255035 0.480255\n0.039642 0.254395 0.485535\n0.084473 0.253693 0.485321\n0.126801 0.253204 0.485168\n0.165955 0.252838 0.485077\n0.201324 0.252533 0.484985\n0.233002 0.252502 0.484985\n0.262421 0.252930 0.485382\n0.290710 0.254120 0.486359\n0.317719 0.255310 0.487305\n0.344177 0.256592 0.488220\n0.371063 0.258026 0.489136\n0.398895 0.259308 0.489929\n0.428284 0.260559 0.490631\n0.459991 0.261871 0.491333\n0.494415 0.263092 0.491882\n0.531464 0.262817 0.491089\n0.573547 0.262482 0.490204\n0.619232 0.262054 0.489166\n0.666809 0.261658 0.488129\n0.714600 0.261322 0.487091\n0.760437 0.260986 0.486145\n0.802765 0.260864 0.485199\n0.840393 0.260986 0.484436\n0.873535 0.261230 0.483887\n0.902771 0.261566 0.483185\n0.928558 0.262115 0.482788\n0.951447 0.262665 0.482361\n0.971863 0.263275 0.481873\n0.990295 0.263947 0.481537\n1.000000 0.274109 0.484711\n1.000000 0.296234 0.492706\n0.000000 0.285706 0.482544\n0.039490 0.285858 0.487823\n0.084351 0.285309 0.487610\n0.126709 0.284790 0.487366\n0.165833 0.284485 0.487152\n0.201721 0.284271 0.487030\n0.234161 0.284180 0.487000\n0.263702 0.284241 0.486938\n0.291443 0.284698 0.487213\n0.318756 0.286011 0.488129\n0.345490 0.287201 0.488953\n0.372467 0.288452 0.489655\n0.400604 0.289642 0.490356\n0.430389 0.290924 0.490967\n0.462494 0.292267 0.491669\n0.497223 0.293427 0.492126\n0.534851 0.293121 0.491241\n0.577332 0.292786 0.490326\n0.623169 0.292450 0.489227\n0.670624 0.291992 0.488190\n0.717987 0.291687 0.487122\n0.763275 0.291412 0.486176\n0.804932 0.291321 0.485260\n0.841919 0.291412 0.484467\n0.874512 0.291595 0.483795\n0.903320 0.291931 0.483154\n0.928741 0.292389 0.482635\n0.951263 0.292847 0.482208\n0.971466 0.293427 0.481781\n0.989685 0.294006 0.481354\n1.000000 0.302948 0.484558\n1.000000 0.324432 0.493530\n0.000000 0.316162 0.484711\n0.039368 0.317078 0.490021\n0.084259 0.316528 0.489685\n0.127167 0.316132 0.489380\n0.167450 0.315765 0.489136\n0.203857 0.315643 0.488953\n0.236542 0.315582 0.488831\n0.266266 0.315704 0.488770\n0.293945 0.315918 0.488708\n0.320343 0.316254 0.488708\n0.347198 0.317413 0.489349\n0.374512 0.318665 0.490021\n0.402863 0.319916 0.490692\n0.433014 0.321198 0.491333\n0.465576 0.322540 0.491913\n0.500580 0.323578 0.492218\n0.538727 0.323334 0.491364\n0.581451 0.323029 0.490326\n0.627258 0.322632 0.489258\n0.674622 0.322266 0.488129\n0.721558 0.321930 0.487061\n0.766205 0.321655 0.486023\n0.807129 0.321564 0.485107\n0.843445 0.321655 0.484344\n0.875488 0.321838 0.483582\n0.903778 0.322083 0.483063\n0.928802 0.322510 0.482544\n0.951050 0.322876 0.481995\n0.971039 0.323395 0.481659\n0.989075 0.323853 0.481232\n1.000000 0.331604 0.484314\n1.000000 0.352448 0.494171\n0.000000 0.346619 0.486755\n0.039948 0.348358 0.492065\n0.086212 0.347839 0.491638\n0.130035 0.347473 0.491302\n0.170563 0.347198 0.490967\n0.207214 0.347076 0.490692\n0.239929 0.347076 0.490540\n0.269440 0.347107 0.490295\n0.297028 0.347260 0.490082\n0.323456 0.347473 0.489807\n0.349518 0.347748 0.489655\n0.377014 0.348999 0.490326\n0.405762 0.350311 0.490906\n0.436249 0.351593 0.491516\n0.469116 0.352966 0.492126\n0.504242 0.353790 0.492188\n0.542999 0.353546 0.491302\n0.585968 0.353241 0.490295\n0.631714 0.352905 0.489166\n0.678741 0.352509 0.488007\n0.725098 0.352203 0.487000\n0.769135 0.351929 0.485962\n0.809265 0.351837 0.485016\n0.844879 0.351898 0.484161\n0.876343 0.351990 0.483429\n0.904175 0.352295 0.482849\n0.928802 0.352600 0.482208\n0.950775 0.352966 0.481750\n0.970490 0.353333 0.481384\n0.988434 0.353729 0.480896\n1.000000 0.360291 0.483948\n1.000000 0.380493 0.494720\n0.000000 0.378143 0.490356\n0.043365 0.379791 0.493927\n0.090179 0.379272 0.493439\n0.134460 0.378967 0.493042\n0.175110 0.378754 0.492584\n0.211365 0.378632 0.492157\n0.243805 0.378540 0.491821\n0.273285 0.378662 0.491547\n0.300781 0.378845 0.491302\n0.327209 0.379059 0.491058\n0.353333 0.379364 0.490753\n0.380096 0.379700 0.490509\n0.409058 0.380981 0.491089\n0.439850 0.382294 0.491669\n0.473022 0.383636 0.492218\n0.508362 0.384308 0.492065\n0.547485 0.384064 0.491180\n0.590576 0.383759 0.490112\n0.636169 0.383362 0.488953\n0.682831 0.382996 0.487823\n0.728638 0.382690 0.486725\n0.771881 0.382446 0.485626\n0.811218 0.382324 0.484680\n0.846191 0.382355 0.483948\n0.877045 0.382446 0.483093\n0.904419 0.382629 0.482483\n0.928711 0.382874 0.481934\n0.950409 0.383148 0.481476\n0.969940 0.383484 0.480988\n0.987701 0.383759 0.480377\n1.000000 0.389160 0.483093\n1.000000 0.408813 0.495087\n0.000000 0.411774 0.495667\n0.048737 0.411713 0.495636\n0.095947 0.411285 0.495056\n0.139984 0.410858 0.494476\n0.180267 0.410522 0.493866\n0.216309 0.410461 0.493408\n0.248474 0.410522 0.493073\n0.277710 0.410645 0.492767\n0.305145 0.410919 0.492462\n0.331543 0.411224 0.492188\n0.357697 0.411530 0.491882\n0.384552 0.411835 0.491547\n0.412659 0.412109 0.491119\n0.443665 0.413391 0.491638\n0.477142 0.414734 0.492188\n0.512695 0.415192 0.491882\n0.552094 0.414978 0.490906\n0.595306 0.414673 0.489807\n0.640656 0.414276 0.488647\n0.686829 0.413910 0.487488\n0.731964 0.413574 0.486359\n0.774414 0.413330 0.485291\n0.813019 0.413177 0.484344\n0.847260 0.413177 0.483521\n0.877594 0.413208 0.482819\n0.904510 0.413330 0.482147\n0.928497 0.413483 0.481537\n0.949951 0.413696 0.480804\n0.969330 0.414001 0.480255\n0.986938 0.414246 0.479614\n1.000000 0.418457 0.481812\n1.000000 0.437500 0.495148\n0.005981 0.444458 0.497742\n0.055328 0.443939 0.497009\n0.102539 0.443573 0.496307\n0.146484 0.443176 0.495636\n0.186493 0.443024 0.495056\n0.222046 0.442963 0.494629\n0.253784 0.443115 0.494232\n0.282684 0.443298 0.493866\n0.309875 0.443604 0.493561\n0.336212 0.443909 0.493256\n0.362396 0.444275 0.492950\n0.389343 0.444641 0.492554\n0.417511 0.444824 0.492065\n0.447693 0.445099 0.491577\n0.481445 0.446350 0.492065\n0.517059 0.446655 0.491547\n0.556763 0.446411 0.490540\n0.599884 0.446075 0.489410\n0.644958 0.445648 0.488190\n0.690582 0.445282 0.487030\n0.735016 0.444977 0.485931\n0.776703 0.444672 0.484833\n0.814514 0.444519 0.483948\n0.848083 0.444397 0.483002\n0.877869 0.444397 0.482208\n0.904449 0.444458 0.481476\n0.928131 0.444580 0.480743\n0.949402 0.444794 0.480011\n0.968597 0.445038 0.479309\n0.986145 0.445282 0.478485\n1.000000 0.448303 0.480255\n1.000000 0.466797 0.495148\n0.013794 0.477448 0.498993\n0.063324 0.476959 0.498199\n0.110535 0.476562 0.497498\n0.154144 0.476379 0.496796\n0.193481 0.476196 0.496185\n0.228363 0.476318 0.495697\n0.259583 0.476410 0.495270\n0.288055 0.476715 0.494904\n0.314972 0.477020 0.494598\n0.341095 0.477386 0.494263\n0.367310 0.477692 0.493896\n0.394257 0.478027 0.493469\n0.422607 0.478210 0.492950\n0.452850 0.478394 0.492279\n0.485718 0.478699 0.491821\n0.521454 0.478729 0.491089\n0.561279 0.478424 0.490021\n0.604218 0.478119 0.488861\n0.648956 0.477631 0.487671\n0.693939 0.477264 0.486481\n0.737640 0.476929 0.485321\n0.778564 0.476593 0.484192\n0.815613 0.476349 0.483276\n0.848633 0.476227 0.482300\n0.878082 0.476196 0.481476\n0.904297 0.476257 0.480560\n0.927765 0.476349 0.479797\n0.948822 0.476532 0.478912\n0.967896 0.476746 0.478210\n0.985291 0.476990 0.477356\n1.000000 0.478851 0.478241\n1.000000 0.496643 0.495178\n0.022552 0.510864 0.499695\n0.072174 0.510468 0.498871\n0.118927 0.510162 0.498077\n0.161987 0.509949 0.497345\n0.200500 0.509918 0.496674\n0.234497 0.509949 0.496185\n0.265015 0.510162 0.495728\n0.292999 0.510406 0.495300\n0.319580 0.510742 0.494934\n0.345428 0.511047 0.494537\n0.371582 0.511353 0.494141\n0.398590 0.511627 0.493591\n0.426941 0.511810 0.493011\n0.457306 0.511902 0.492310\n0.489990 0.511841 0.491486\n0.526489 0.512390 0.491272\n0.566406 0.512146 0.490234\n0.609161 0.511749 0.489075\n0.653442 0.511322 0.487915\n0.697845 0.510925 0.486694\n0.740814 0.510498 0.485565\n0.781158 0.510162 0.484467\n0.817688 0.509949 0.483429\n0.850281 0.509827 0.482391\n0.879364 0.509827 0.481445\n0.905304 0.509857 0.480530\n0.928528 0.509979 0.479706\n0.949371 0.510132 0.478882\n0.968292 0.510345 0.478027\n0.985565 0.510651 0.477295\n1.000000 0.512329 0.478241\n1.000000 0.528015 0.495117\n0.031586 0.546173 0.499451\n0.080902 0.545807 0.498535\n0.127136 0.545532 0.497711\n0.169342 0.545349 0.496918\n0.206757 0.545288 0.496307\n0.239868 0.545410 0.495758\n0.269745 0.545654 0.495300\n0.297241 0.545929 0.494904\n0.323456 0.546204 0.494476\n0.349182 0.546539 0.494080\n0.375244 0.546814 0.493622\n0.402252 0.546997 0.493073\n0.430634 0.547150 0.492432\n0.461090 0.547150 0.491669\n0.493927 0.547150 0.490906\n0.531097 0.548340 0.491272\n0.571625 0.548553 0.490814\n0.614075 0.548065 0.489624\n0.657898 0.547516 0.488403\n0.701782 0.547058 0.487152\n0.744324 0.546631 0.485931\n0.784088 0.546204 0.484680\n0.820068 0.546021 0.483551\n0.852142 0.545746 0.482483\n0.880829 0.545746 0.481476\n0.906403 0.545746 0.480499\n0.929352 0.545868 0.479614\n0.949982 0.546051 0.478790\n0.968689 0.546234 0.477966\n0.985779 0.546356 0.477173\n1.000000 0.547943 0.478333\n1.000000 0.561646 0.495087\n0.041687 0.584137 0.498901\n0.090424 0.583771 0.498077\n0.135773 0.583466 0.497223\n0.176849 0.583282 0.496460\n0.213135 0.583221 0.495819\n0.245270 0.583405 0.495331\n0.274384 0.583618 0.494812\n0.301392 0.583832 0.494385\n0.327271 0.584106 0.493988\n0.352783 0.584351 0.493469\n0.378754 0.584595 0.493042\n0.405731 0.584747 0.492432\n0.434113 0.584747 0.491699\n0.464600 0.584656 0.490967\n0.497528 0.584717 0.490326\n0.534790 0.585785 0.490601\n0.575928 0.586853 0.490967\n0.618622 0.586639 0.490082\n0.662201 0.586029 0.488800\n0.705780 0.585449 0.487427\n0.747742 0.584900 0.486053\n0.786987 0.584503 0.484772\n0.822357 0.584137 0.483551\n0.853943 0.583954 0.482422\n0.882233 0.583893 0.481384\n0.907532 0.583771 0.480438\n0.930115 0.583801 0.479492\n0.950562 0.583862 0.478668\n0.969055 0.584045 0.477875\n0.986053 0.584198 0.477142\n1.000000 0.585663 0.478455\n1.000000 0.596924 0.495117\n0.052368 0.624084 0.498413\n0.100311 0.623688 0.497467\n0.144592 0.623322 0.496643\n0.184509 0.623169 0.495880\n0.219452 0.623077 0.495209\n0.250641 0.623169 0.494690\n0.278961 0.623352 0.494232\n0.305420 0.623474 0.493774\n0.330933 0.623688 0.493317\n0.356232 0.623901 0.492798\n0.382050 0.623993 0.492279\n0.408966 0.624023 0.491638\n0.437347 0.623962 0.490967\n0.467712 0.623688 0.490112\n0.500702 0.623779 0.489624\n0.538055 0.624725 0.489838\n0.579254 0.625702 0.490051\n0.622986 0.626709 0.490143\n0.666473 0.626129 0.488861\n0.709595 0.625488 0.487457\n0.751129 0.624817 0.486023\n0.789764 0.624390 0.484680\n0.824585 0.623993 0.483459\n0.855774 0.623749 0.482330\n0.883606 0.623474 0.481262\n0.908569 0.623352 0.480286\n0.930939 0.623322 0.479401\n0.951111 0.623383 0.478607\n0.969421 0.623505 0.477875\n0.986267 0.623505 0.477142\n1.000000 0.624603 0.478668\n1.000000 0.633331 0.495300\n0.063477 0.665283 0.497742\n0.110352 0.664764 0.496765\n0.153442 0.664398 0.495941\n0.191895 0.664185 0.495148\n0.225586 0.664062 0.494568\n0.255737 0.664032 0.494019\n0.283264 0.664093 0.493500\n0.309265 0.664185 0.493073\n0.334412 0.664307 0.492645\n0.359436 0.664337 0.492065\n0.385132 0.664368 0.491486\n0.411865 0.664215 0.490906\n0.440094 0.663971 0.490112\n0.470490 0.663635 0.489197\n0.503754 0.663757 0.488739\n0.541290 0.664673 0.488831\n0.582489 0.665588 0.488922\n0.626068 0.666443 0.488953\n0.670685 0.667206 0.488800\n0.713440 0.666443 0.487335\n0.754425 0.665741 0.485901\n0.792450 0.665100 0.484558\n0.826813 0.664642 0.483307\n0.857452 0.664307 0.482208\n0.884949 0.664062 0.481140\n0.909546 0.663910 0.480225\n0.931671 0.663818 0.479370\n0.951599 0.663788 0.478607\n0.969788 0.663757 0.477966\n0.986450 0.663757 0.477356\n1.000000 0.664490 0.479095\n1.000000 0.670471 0.495697\n0.074615 0.706848 0.496979\n0.120300 0.706238 0.496094\n0.161957 0.705811 0.495270\n0.198914 0.705536 0.494507\n0.231323 0.705261 0.493835\n0.260559 0.705200 0.493256\n0.287354 0.705109 0.492798\n0.312744 0.705109 0.492279\n0.337524 0.705109 0.491821\n0.362274 0.705017 0.491272\n0.387726 0.704834 0.490692\n0.414429 0.704620 0.489990\n0.442749 0.704224 0.489044\n0.473297 0.703766 0.488037\n0.506866 0.703918 0.487579\n0.544556 0.704773 0.487610\n0.585815 0.705536 0.487610\n0.629150 0.706360 0.487579\n0.673584 0.707153 0.487518\n0.717133 0.707550 0.487152\n0.757599 0.706879 0.485718\n0.795105 0.706116 0.484406\n0.828857 0.705627 0.483185\n0.859100 0.705139 0.482086\n0.886200 0.704742 0.481110\n0.910492 0.704529 0.480225\n0.932312 0.704376 0.479462\n0.952118 0.704163 0.478821\n0.970123 0.704102 0.478210\n0.986664 0.704071 0.477753\n1.000000 0.704376 0.479675\n1.000000 0.707642 0.496338\n0.085632 0.747894 0.496155\n0.129883 0.747253 0.495300\n0.170044 0.746704 0.494476\n0.205353 0.746307 0.493713\n0.236603 0.746033 0.493164\n0.264893 0.745819 0.492584\n0.290955 0.745667 0.492065\n0.315857 0.745514 0.491516\n0.340271 0.745331 0.491058\n0.364807 0.745087 0.490387\n0.390228 0.744812 0.489685\n0.417023 0.744415 0.488800\n0.445496 0.743927 0.487793\n0.476135 0.743317 0.486694\n0.509979 0.743591 0.486328\n0.547852 0.744324 0.486298\n0.589020 0.745026 0.486237\n0.632202 0.745728 0.486176\n0.676270 0.746429 0.486115\n0.719696 0.747192 0.486023\n0.760651 0.747314 0.485535\n0.797577 0.746521 0.484253\n0.830811 0.745941 0.483093\n0.860626 0.745422 0.482056\n0.887360 0.744995 0.481171\n0.911346 0.744629 0.480408\n0.932983 0.744385 0.479736\n0.952545 0.744110 0.479187\n0.970367 0.743866 0.478729\n0.986786 0.743805 0.478394\n1.000000 0.743652 0.480560\n1.000000 0.744324 0.497253\n0.096161 0.787720 0.495361\n0.138947 0.786957 0.494415\n0.177460 0.786346 0.493683\n0.211304 0.785858 0.492950\n0.241425 0.785431 0.492310\n0.268707 0.785156 0.491821\n0.294098 0.784821 0.491211\n0.318573 0.784576 0.490692\n0.342834 0.784271 0.490021\n0.367340 0.783905 0.489319\n0.392822 0.783478 0.488434\n0.419708 0.782990 0.487518\n0.448242 0.782410 0.486481\n0.478973 0.781677 0.485229\n0.513062 0.782013 0.484955\n0.551056 0.782654 0.484894\n0.592194 0.783264 0.484863\n0.635193 0.783875 0.484772\n0.678833 0.784485 0.484711\n0.721741 0.785065 0.484680\n0.762634 0.785645 0.484650\n0.799896 0.785645 0.484192\n0.832672 0.785004 0.483154\n0.862061 0.784363 0.482208\n0.888428 0.783875 0.481384\n0.912140 0.783356 0.480743\n0.933533 0.783051 0.480225\n0.952881 0.782715 0.479828\n0.970612 0.782501 0.479553\n0.986908 0.782227 0.479340\n1.000000 0.781921 0.481995\n1.000000 0.780365 0.499329\n0.105927 0.825439 0.494568\n0.147247 0.824585 0.493805\n0.184143 0.823944 0.492889\n0.216522 0.823303 0.492249\n0.245544 0.822845 0.491638\n0.272125 0.822449 0.490967\n0.297089 0.822052 0.490387\n0.321381 0.821625 0.489655\n0.345428 0.821228 0.488922\n0.369995 0.820801 0.488098\n0.395477 0.820282 0.487091\n0.422333 0.819672 0.486084\n0.451050 0.819000 0.484985\n0.481873 0.818146 0.483734\n0.516235 0.818573 0.483612\n0.554260 0.819092 0.483521\n0.595276 0.819611 0.483490\n0.637939 0.820099 0.483490\n0.681183 0.820557 0.483459\n0.723724 0.821075 0.483490\n0.764038 0.821503 0.483521\n0.801300 0.822052 0.483612\n0.834320 0.822021 0.483337\n0.863373 0.821381 0.482544\n0.889435 0.820740 0.481873\n0.912811 0.820312 0.481354\n0.934082 0.819824 0.481049\n0.953217 0.819458 0.480804\n0.970856 0.819275 0.480927\n0.987030 0.819366 0.481506\n1.000000 0.818542 0.484741\n1.000000 0.814636 0.502197\n0.114838 0.860535 0.493835\n0.154572 0.859680 0.493042\n0.189880 0.858917 0.492096\n0.221100 0.858276 0.491425\n0.249390 0.857666 0.490692\n0.275482 0.857117 0.490082\n0.300110 0.856628 0.489258\n0.324158 0.856171 0.488464\n0.348145 0.855713 0.487610\n0.372589 0.855133 0.486755\n0.398163 0.854553 0.485748\n0.425079 0.853821 0.484711\n0.453827 0.853058 0.483551\n0.484863 0.852234 0.482391\n0.519318 0.852692 0.482330\n0.557373 0.853058 0.482300\n0.598206 0.853485 0.482300\n0.640594 0.853851 0.482300\n0.683502 0.854279 0.482361\n0.725433 0.854645 0.482422\n0.765259 0.855011 0.482605\n0.802002 0.855469 0.482849\n0.835144 0.855804 0.483093\n0.864502 0.855865 0.483154\n0.890259 0.855225 0.482666\n0.913483 0.854584 0.482300\n0.934479 0.854218 0.482330\n0.953583 0.854095 0.482880\n0.971008 0.853790 0.483612\n0.987061 0.853668 0.484528\n1.000000 0.852570 0.487946\n1.000000 0.846283 0.505585\n0.122772 0.892487 0.493103\n0.161041 0.891571 0.492249\n0.195251 0.890747 0.491333\n0.225586 0.890015 0.490540\n0.253174 0.889404 0.489716\n0.278839 0.888794 0.488861\n0.303192 0.888245 0.488007\n0.326996 0.887665 0.487213\n0.350830 0.887115 0.486359\n0.375275 0.886505 0.485382\n0.400848 0.885803 0.484406\n0.427795 0.885101 0.483398\n0.456665 0.884186 0.482208\n0.487823 0.883484 0.481201\n0.522369 0.883789 0.481201\n0.560364 0.884094 0.481201\n0.600952 0.884399 0.481262\n0.643066 0.884735 0.481354\n0.685455 0.885010 0.481506\n0.727020 0.885315 0.481750\n0.766327 0.885620 0.482025\n0.802551 0.885895 0.482391\n0.835266 0.886200 0.482819\n0.864716 0.886475 0.483307\n0.891052 0.886597 0.483978\n0.914154 0.886261 0.484375\n0.934967 0.885834 0.485077\n0.953796 0.885529 0.485901\n0.971039 0.885162 0.486938\n0.987000 0.884796 0.488098\n1.000000 0.883301 0.491608\n1.000000 0.875153 0.509369\n0.130096 0.920959 0.492371\n0.167328 0.920013 0.491333\n0.200439 0.919159 0.490295\n0.229980 0.918396 0.489441\n0.256989 0.917725 0.488586\n0.282196 0.917114 0.487671\n0.306213 0.916534 0.486816\n0.329803 0.915863 0.485901\n0.353546 0.915253 0.485046\n0.377960 0.914581 0.484131\n0.403473 0.913849 0.483124\n0.430481 0.913055 0.482117\n0.459351 0.912140 0.480988\n0.490662 0.911499 0.480194\n0.525238 0.911774 0.480225\n0.563232 0.911987 0.480347\n0.603638 0.912231 0.480469\n0.645416 0.912415 0.480743\n0.687408 0.912659 0.480988\n0.728424 0.912872 0.481323\n0.767303 0.913055 0.481781\n0.803009 0.913269 0.482300\n0.835480 0.913544 0.483063\n0.864807 0.913879 0.484375\n0.890991 0.914215 0.485809\n0.914642 0.914551 0.487366\n0.935150 0.914001 0.488342\n0.953857 0.913574 0.489441\n0.971039 0.913116 0.490662\n0.986908 0.912689 0.492035\n1.000000 0.910980 0.495453\n1.000000 0.901154 0.513458\n0.137268 0.946320 0.491364\n0.173431 0.945343 0.490326\n0.205566 0.944519 0.489227\n0.234344 0.943756 0.488342\n0.260742 0.943085 0.487427\n0.285461 0.942413 0.486542\n0.309204 0.941742 0.485626\n0.332611 0.941071 0.484772\n0.356262 0.940460 0.483948\n0.380615 0.939728 0.482910\n0.406128 0.938965 0.482025\n0.433136 0.938110 0.481018\n0.462006 0.937164 0.480011\n0.493378 0.936646 0.479370\n0.527954 0.936798 0.479523\n0.565796 0.936981 0.479767\n0.606018 0.937134 0.480011\n0.647400 0.937317 0.480408\n0.689026 0.937439 0.480804\n0.729614 0.937561 0.481323\n0.768188 0.937714 0.482086\n0.803894 0.937988 0.483398\n0.835815 0.938232 0.484802\n0.864563 0.938416 0.486389\n0.890503 0.938599 0.488159\n0.913849 0.938812 0.489960\n0.934967 0.938995 0.491913\n0.953796 0.938599 0.493347\n0.970917 0.938080 0.494720\n0.986816 0.937653 0.496216\n1.000000 0.935730 0.499603\n1.000000 0.924652 0.517670\n0.144379 0.969025 0.490265\n0.179443 0.968079 0.489227\n0.210541 0.967255 0.488068\n0.238586 0.966461 0.487061\n0.264404 0.965759 0.486237\n0.288666 0.965057 0.485291\n0.312195 0.964447 0.484558\n0.335388 0.963776 0.483582\n0.358856 0.963074 0.482758\n0.383179 0.962341 0.481903\n0.408661 0.961548 0.480988\n0.435577 0.960663 0.480103\n0.464447 0.959747 0.479126\n0.495941 0.959320 0.478882\n0.530518 0.959381 0.479126\n0.568176 0.959503 0.479462\n0.608124 0.959595 0.479919\n0.649200 0.959717 0.480408\n0.690643 0.959839 0.481171\n0.731201 0.959991 0.482422\n0.769379 0.960114 0.483887\n0.804138 0.960236 0.485474\n0.835602 0.960358 0.487183\n0.864014 0.960480 0.489044\n0.889740 0.960571 0.490997\n0.912994 0.960663 0.492981\n0.934143 0.960815 0.495087\n0.953430 0.960876 0.497192\n0.970825 0.960632 0.498993\n0.986664 0.960052 0.500519\n1.000000 0.958160 0.503754\n1.000000 0.945892 0.521942\n0.151184 0.989502 0.489166\n0.185089 0.988586 0.488068\n0.215271 0.987732 0.486969\n0.242584 0.987000 0.485931\n0.267914 0.986298 0.485077\n0.291809 0.985626 0.484253\n0.315002 0.984955 0.483429\n0.338013 0.984314 0.482605\n0.361389 0.983643 0.481842\n0.385590 0.982880 0.481079\n0.411011 0.982086 0.480286\n0.437927 0.981232 0.479553\n0.466736 0.980286 0.478729\n0.498199 0.979919 0.478607\n0.532654 0.979950 0.479004\n0.570129 0.980011 0.479553\n0.610046 0.980072 0.480255\n0.651459 0.980194 0.481537\n0.692505 0.980225 0.483032\n0.732300 0.980286 0.484558\n0.769592 0.980347 0.486328\n0.803955 0.980377 0.488129\n0.835083 0.980408 0.490082\n0.863281 0.980469 0.492096\n0.888885 0.980469 0.494232\n0.912079 0.980499 0.496338\n0.933228 0.980560 0.498535\n0.952545 0.980591 0.500671\n0.970398 0.980621 0.502899\n0.986603 0.980469 0.504883\n1.000000 0.978546 0.508392\n1.000000 0.965393 0.527435\n0.169250 1.000000 0.490265\n0.200684 1.000000 0.489227\n0.228668 1.000000 0.488312\n0.254211 1.000000 0.487427\n0.277985 1.000000 0.486633\n0.300507 1.000000 0.485657\n0.322479 1.000000 0.484802\n0.344421 1.000000 0.483887\n0.366699 1.000000 0.482880\n0.389893 1.000000 0.481842\n0.414246 1.000000 0.480682\n0.440094 1.000000 0.479340\n0.468719 0.999115 0.478485\n0.500122 0.998779 0.478699\n0.534790 0.998810 0.479401\n0.572754 0.998810 0.480713\n0.612427 0.998840 0.482147\n0.652985 0.998810 0.483704\n0.693146 0.998810 0.485443\n0.732269 0.998810 0.487274\n0.769226 0.998810 0.489227\n0.803284 0.998779 0.491241\n0.834229 0.998749 0.493286\n0.862427 0.998718 0.495453\n0.888031 0.998718 0.497620\n0.911224 0.998688 0.499817\n0.932434 0.998688 0.502075\n0.951843 0.998657 0.504242\n0.969574 0.998627 0.506836\n0.986053 0.998627 0.509918\n1.000000 0.997192 0.514435\n1.000000 0.983429 0.533783\n0.200439 1.000000 0.495056\n0.230438 1.000000 0.495056\n0.257233 1.000000 0.495087\n0.281769 1.000000 0.495148\n0.304718 1.000000 0.495178\n0.326538 1.000000 0.495239\n0.347931 1.000000 0.495422\n0.369324 1.000000 0.495605\n0.391113 1.000000 0.495911\n0.413818 1.000000 0.496155\n0.437622 1.000000 0.496521\n0.462952 1.000000 0.497101\n0.490234 1.000000 0.497742\n0.520050 1.000000 0.498932\n0.552887 1.000000 0.500305\n0.587830 1.000000 0.501801\n0.624115 1.000000 0.503418\n0.661255 1.000000 0.505188\n0.698120 1.000000 0.507080\n0.734070 1.000000 0.508972\n0.768036 1.000000 0.511017\n0.799561 1.000000 0.513123\n0.828247 1.000000 0.515228\n0.854431 1.000000 0.517395\n0.878387 1.000000 0.519531\n0.900238 1.000000 0.521729\n0.920319 1.000000 0.524292\n0.938690 1.000000 0.527161\n0.955597 1.000000 0.530426\n0.971405 1.000000 0.533722\n0.986115 1.000000 0.536987\n1.000000 1.000000 0.540344\n0.000000 0.009369 0.477081\n0.036041 0.000000 0.490631\n0.083496 0.003571 0.494476\n0.128510 0.007507 0.498047\n0.170044 0.011292 0.501282\n0.207397 0.014862 0.504211\n0.240509 0.017303 0.506012\n0.270233 0.018860 0.507294\n0.297668 0.020447 0.508514\n0.323639 0.021973 0.509735\n0.348938 0.023468 0.510834\n0.374481 0.024963 0.511993\n0.400970 0.026428 0.513092\n0.428711 0.027863 0.514160\n0.458649 0.029358 0.515228\n0.490967 0.030823 0.516205\n0.526489 0.031891 0.516907\n0.566040 0.031494 0.516327\n0.609650 0.030975 0.515747\n0.655853 0.030548 0.515015\n0.703247 0.030121 0.514252\n0.750153 0.029755 0.513489\n0.794434 0.029633 0.512848\n0.834503 0.029755 0.512268\n0.870056 0.030090 0.511810\n0.901398 0.030731 0.511353\n0.928986 0.031189 0.510986\n0.953369 0.031891 0.510590\n0.975067 0.032745 0.510315\n0.994568 0.033661 0.510071\n1.000000 0.053345 0.510651\n1.000000 0.080139 0.512543\n0.000000 0.048645 0.485931\n0.036255 0.041107 0.497101\n0.083801 0.044525 0.500183\n0.128662 0.047974 0.503143\n0.169769 0.050232 0.504974\n0.206543 0.051788 0.506256\n0.239288 0.053314 0.507507\n0.268768 0.054749 0.508636\n0.296021 0.056183 0.509827\n0.322144 0.057587 0.510986\n0.347595 0.058960 0.512054\n0.373291 0.060364 0.513153\n0.399658 0.061798 0.514191\n0.427551 0.063171 0.515198\n0.457397 0.064606 0.516174\n0.489716 0.066040 0.517151\n0.525391 0.067139 0.517822\n0.564911 0.066772 0.517273\n0.608521 0.066345 0.516571\n0.655334 0.065979 0.515839\n0.703217 0.065613 0.514984\n0.750244 0.065338 0.514130\n0.794647 0.065277 0.513458\n0.834686 0.065552 0.512787\n0.869995 0.065643 0.512146\n0.901154 0.066010 0.511688\n0.928619 0.066559 0.511322\n0.952911 0.067322 0.510834\n0.974518 0.068237 0.510498\n0.993896 0.069153 0.510223\n1.000000 0.087372 0.511139\n1.000000 0.113586 0.513641\n0.000000 0.087036 0.494476\n0.038147 0.082123 0.503296\n0.083862 0.082672 0.503937\n0.127991 0.084198 0.505219\n0.168488 0.085632 0.506439\n0.205048 0.086975 0.507629\n0.237579 0.088348 0.508820\n0.267242 0.089722 0.509949\n0.294708 0.090973 0.511047\n0.320831 0.092346 0.512146\n0.346375 0.093597 0.513153\n0.372040 0.095001 0.514160\n0.398468 0.096283 0.515167\n0.426361 0.097687 0.516113\n0.456268 0.099091 0.517090\n0.488647 0.100494 0.517975\n0.524353 0.101776 0.518707\n0.564453 0.101440 0.518005\n0.608734 0.101135 0.517242\n0.655792 0.100739 0.516510\n0.703918 0.100464 0.515625\n0.751099 0.100342 0.514709\n0.795258 0.100067 0.513824\n0.835022 0.099976 0.513123\n0.870178 0.100220 0.512482\n0.901184 0.100677 0.511932\n0.928436 0.101227 0.511322\n0.952545 0.102051 0.510986\n0.973999 0.102936 0.510620\n0.993256 0.103882 0.510254\n1.000000 0.120728 0.511719\n1.000000 0.146240 0.514679\n0.000000 0.123596 0.500610\n0.039062 0.118958 0.506531\n0.083984 0.118683 0.506439\n0.126404 0.118652 0.506622\n0.166809 0.119965 0.507751\n0.203369 0.121277 0.508911\n0.236145 0.122467 0.510040\n0.265930 0.123688 0.511047\n0.293427 0.124969 0.512146\n0.319611 0.126251 0.513153\n0.345032 0.127502 0.514130\n0.370728 0.128784 0.515106\n0.397247 0.130127 0.516052\n0.425140 0.131531 0.516998\n0.455109 0.132904 0.517883\n0.488068 0.134399 0.518707\n0.524536 0.135681 0.519409\n0.565033 0.135468 0.518707\n0.609711 0.135162 0.517822\n0.657135 0.134918 0.517029\n0.705200 0.134399 0.515900\n0.752197 0.134003 0.514984\n0.796204 0.133850 0.514099\n0.835724 0.133881 0.513214\n0.870605 0.134125 0.512543\n0.901306 0.134644 0.511932\n0.928375 0.135254 0.511475\n0.952271 0.136017 0.511017\n0.973541 0.136902 0.510742\n0.992645 0.137817 0.510254\n1.000000 0.153259 0.511871\n1.000000 0.178101 0.515594\n0.000000 0.157684 0.503326\n0.038788 0.154053 0.509003\n0.083435 0.153625 0.508850\n0.125671 0.153320 0.508759\n0.165222 0.153381 0.509003\n0.201965 0.154572 0.510071\n0.234802 0.155731 0.511108\n0.264557 0.156921 0.512115\n0.292053 0.158173 0.513123\n0.318298 0.159332 0.514069\n0.343811 0.160645 0.515015\n0.369537 0.161926 0.515961\n0.396088 0.163269 0.516846\n0.424591 0.164612 0.517700\n0.455231 0.166077 0.518585\n0.488556 0.167603 0.519379\n0.525513 0.168945 0.519928\n0.566559 0.168793 0.519196\n0.611420 0.168274 0.518250\n0.658875 0.167786 0.517242\n0.706970 0.167358 0.516052\n0.753876 0.167084 0.515015\n0.797638 0.166901 0.514130\n0.836731 0.167023 0.513336\n0.871277 0.167328 0.512604\n0.901672 0.167755 0.511963\n0.928406 0.168304 0.511536\n0.952026 0.169098 0.511047\n0.973114 0.169983 0.510651\n0.992035 0.170868 0.510376\n1.000000 0.184906 0.512115\n1.000000 0.209015 0.516571\n0.000000 0.191010 0.505280\n0.038269 0.188019 0.511383\n0.083160 0.187622 0.511200\n0.125549 0.187134 0.510986\n0.164703 0.186798 0.510834\n0.200653 0.187073 0.511139\n0.233521 0.188232 0.512146\n0.263306 0.189331 0.513062\n0.290802 0.190582 0.514038\n0.317047 0.191772 0.514954\n0.342682 0.193024 0.515869\n0.368927 0.194305 0.516724\n0.396118 0.195648 0.517578\n0.424957 0.197144 0.518372\n0.455994 0.198669 0.519226\n0.489868 0.200226 0.519958\n0.527252 0.201263 0.520386\n0.568542 0.200897 0.519470\n0.613708 0.200409 0.518402\n0.661316 0.199951 0.517303\n0.709290 0.199585 0.516205\n0.755981 0.199280 0.515137\n0.799286 0.199219 0.514191\n0.837952 0.199280 0.513245\n0.872040 0.199615 0.512634\n0.902069 0.200043 0.511932\n0.928497 0.200653 0.511444\n0.951874 0.201294 0.510925\n0.972717 0.202087 0.510620\n0.991455 0.202942 0.510162\n1.000000 0.215637 0.512299\n1.000000 0.239044 0.517426\n0.000000 0.223236 0.507385\n0.038147 0.221161 0.513641\n0.083069 0.220642 0.513367\n0.125458 0.220123 0.513092\n0.164612 0.219757 0.512848\n0.200012 0.219482 0.512726\n0.232178 0.219849 0.513031\n0.261932 0.221039 0.513977\n0.289551 0.222198 0.514862\n0.316345 0.223389 0.515686\n0.342621 0.224731 0.516571\n0.369171 0.226044 0.517395\n0.396790 0.227478 0.518188\n0.426056 0.228943 0.518982\n0.457489 0.230316 0.519623\n0.491638 0.231598 0.520264\n0.529419 0.232605 0.520508\n0.571167 0.232239 0.519562\n0.616608 0.231842 0.518433\n0.664246 0.231384 0.517303\n0.712128 0.231018 0.516144\n0.758453 0.230804 0.515106\n0.801239 0.230682 0.514191\n0.839355 0.230774 0.513245\n0.872986 0.231018 0.512573\n0.902557 0.231476 0.511932\n0.928619 0.231995 0.511444\n0.951721 0.232605 0.510986\n0.972321 0.233276 0.510406\n0.990906 0.234070 0.510071\n1.000000 0.245514 0.512299\n1.000000 0.268219 0.518158\n0.000000 0.254517 0.509460\n0.038055 0.253265 0.515747\n0.082947 0.252838 0.515411\n0.125366 0.252258 0.515106\n0.164490 0.251831 0.514832\n0.199951 0.251678 0.514648\n0.231628 0.251617 0.514496\n0.261322 0.252014 0.514740\n0.289673 0.253204 0.515625\n0.316742 0.254486 0.516418\n0.343323 0.255798 0.517212\n0.370270 0.257233 0.517975\n0.398132 0.258453 0.518616\n0.427643 0.259735 0.519257\n0.459503 0.261078 0.519897\n0.494019 0.262390 0.520447\n0.532288 0.263367 0.520569\n0.574402 0.262970 0.519501\n0.620117 0.262604 0.518402\n0.667725 0.262146 0.517273\n0.715332 0.261780 0.516144\n0.761139 0.261566 0.515015\n0.803345 0.261475 0.514008\n0.840851 0.261536 0.513275\n0.873962 0.261780 0.512512\n0.903076 0.262207 0.511780\n0.928741 0.262665 0.511261\n0.951538 0.263214 0.510803\n0.971954 0.263794 0.510376\n0.990326 0.264496 0.509949\n1.000000 0.274719 0.512390\n1.000000 0.296783 0.518982\n0.000000 0.285126 0.511414\n0.037933 0.284851 0.517761\n0.082855 0.284302 0.517426\n0.125244 0.283844 0.517029\n0.164398 0.283508 0.516693\n0.200684 0.283356 0.516449\n0.233185 0.283295 0.516174\n0.262787 0.283386 0.516083\n0.290619 0.283844 0.516205\n0.318024 0.285217 0.516998\n0.344757 0.286377 0.517670\n0.371826 0.287598 0.518341\n0.399902 0.288849 0.518921\n0.429871 0.290131 0.519470\n0.462036 0.291473 0.520020\n0.497070 0.292847 0.520569\n0.535797 0.293671 0.520599\n0.578217 0.293274 0.519501\n0.624054 0.292908 0.518341\n0.671509 0.292542 0.517181\n0.718781 0.292175 0.515961\n0.764038 0.291962 0.514862\n0.805542 0.291870 0.513916\n0.842407 0.291931 0.513062\n0.874939 0.292145 0.512329\n0.903595 0.292511 0.511719\n0.928894 0.292908 0.511047\n0.951416 0.293396 0.510498\n0.971527 0.293945 0.510071\n0.989746 0.294525 0.509735\n1.000000 0.303558 0.512146\n1.000000 0.324890 0.519592\n0.000000 0.315491 0.513306\n0.037842 0.316071 0.519714\n0.082764 0.315643 0.519226\n0.126190 0.315186 0.518799\n0.166473 0.314880 0.518372\n0.203033 0.314789 0.518097\n0.235748 0.314819 0.517822\n0.265564 0.314941 0.517639\n0.293152 0.315094 0.517426\n0.319611 0.315399 0.517273\n0.346558 0.316620 0.517914\n0.373962 0.317902 0.518463\n0.402374 0.319153 0.519012\n0.432648 0.320465 0.519623\n0.465271 0.321808 0.520111\n0.500641 0.323181 0.520660\n0.539703 0.323822 0.520477\n0.582428 0.323456 0.519287\n0.628296 0.323120 0.518158\n0.675598 0.322723 0.516937\n0.722351 0.322388 0.515839\n0.766968 0.322174 0.514648\n0.807800 0.322113 0.513733\n0.843903 0.322144 0.512817\n0.875885 0.322327 0.512115\n0.904053 0.322632 0.511322\n0.928955 0.322968 0.510773\n0.951202 0.323456 0.510223\n0.971100 0.323883 0.509796\n0.989105 0.324371 0.509338\n1.000000 0.332092 0.511871\n1.000000 0.352875 0.520233\n0.000000 0.345825 0.515076\n0.038971 0.347473 0.521515\n0.085419 0.346924 0.520966\n0.129272 0.346527 0.520477\n0.169922 0.346344 0.520020\n0.206665 0.346252 0.519653\n0.239227 0.346222 0.519226\n0.268829 0.346252 0.518921\n0.296387 0.346436 0.518585\n0.322815 0.346649 0.518250\n0.349030 0.346954 0.518036\n0.376556 0.348236 0.518555\n0.405334 0.349579 0.519104\n0.435913 0.350891 0.519653\n0.468811 0.352264 0.520142\n0.504608 0.353607 0.520630\n0.544037 0.354065 0.520233\n0.586975 0.353699 0.519073\n0.632751 0.353333 0.517944\n0.679688 0.352966 0.516663\n0.725983 0.352692 0.515472\n0.769897 0.352448 0.514374\n0.809906 0.352386 0.513336\n0.845337 0.352386 0.512512\n0.876709 0.352539 0.511719\n0.904419 0.352753 0.511017\n0.928955 0.353027 0.510376\n0.950897 0.353455 0.509888\n0.970581 0.353790 0.509338\n0.988464 0.354156 0.508850\n1.000000 0.360748 0.511261\n1.000000 0.380859 0.520691\n0.000000 0.377411 0.519012\n0.042694 0.378906 0.523163\n0.089722 0.378479 0.522552\n0.134064 0.378143 0.521973\n0.174591 0.377869 0.521362\n0.210938 0.377777 0.520844\n0.243286 0.377747 0.520386\n0.272797 0.377808 0.520020\n0.300323 0.378082 0.519684\n0.326721 0.378296 0.519318\n0.352966 0.378662 0.519012\n0.379700 0.378937 0.518555\n0.408722 0.380249 0.519104\n0.439575 0.381592 0.519592\n0.472809 0.382935 0.520081\n0.508942 0.384308 0.520569\n0.548553 0.384552 0.519897\n0.591644 0.384216 0.518738\n0.637299 0.383850 0.517517\n0.683868 0.383484 0.516327\n0.729462 0.383118 0.515076\n0.772644 0.382935 0.514008\n0.811859 0.382751 0.513000\n0.846588 0.382782 0.512085\n0.877380 0.382904 0.511292\n0.904663 0.383087 0.510559\n0.928864 0.383331 0.509979\n0.950500 0.383606 0.509430\n0.970032 0.383881 0.508881\n0.987732 0.384216 0.508301\n1.000000 0.389587 0.510437\n1.000000 0.409149 0.520813\n0.000000 0.410797 0.524414\n0.048431 0.410858 0.524628\n0.095673 0.410431 0.523895\n0.139679 0.409973 0.523163\n0.179993 0.409821 0.522522\n0.216034 0.409668 0.521912\n0.248077 0.409729 0.521454\n0.277405 0.409943 0.521057\n0.304718 0.410156 0.520691\n0.331116 0.410492 0.520325\n0.357391 0.410828 0.519958\n0.384216 0.411133 0.519501\n0.412415 0.411438 0.519012\n0.443573 0.412781 0.519470\n0.477020 0.414093 0.519928\n0.513428 0.415375 0.520325\n0.553253 0.415405 0.519470\n0.596344 0.415070 0.518311\n0.641785 0.414734 0.517029\n0.687775 0.414368 0.515839\n0.732758 0.414001 0.514618\n0.775146 0.413788 0.513519\n0.813507 0.413574 0.512421\n0.847656 0.413574 0.511627\n0.877899 0.413605 0.510803\n0.904694 0.413727 0.510071\n0.928619 0.413910 0.509460\n0.950043 0.414124 0.508820\n0.969391 0.414368 0.508057\n0.987000 0.414642 0.507385\n1.000000 0.418884 0.509216\n1.000000 0.437897 0.520966\n0.005768 0.443634 0.526642\n0.055328 0.443146 0.525848\n0.102539 0.442719 0.524994\n0.146423 0.442474 0.524200\n0.186401 0.442230 0.523529\n0.221893 0.442261 0.522949\n0.253479 0.442413 0.522430\n0.282471 0.442657 0.522034\n0.309540 0.442871 0.521606\n0.335846 0.443237 0.521240\n0.362122 0.443604 0.520813\n0.389038 0.443909 0.520325\n0.417297 0.444183 0.519775\n0.447632 0.444458 0.519196\n0.481323 0.445709 0.519623\n0.518127 0.447021 0.520050\n0.557861 0.446869 0.518982\n0.600861 0.446503 0.517731\n0.646027 0.446106 0.516479\n0.691437 0.445679 0.515198\n0.735779 0.445343 0.513977\n0.777374 0.445099 0.512939\n0.814972 0.444885 0.511932\n0.848419 0.444794 0.511017\n0.878174 0.444763 0.510162\n0.904633 0.444855 0.509338\n0.928314 0.445038 0.508636\n0.949554 0.445190 0.507782\n0.968689 0.445374 0.507019\n0.986206 0.445679 0.506348\n1.000000 0.448700 0.507629\n1.000000 0.467133 0.520905\n0.013855 0.476532 0.527710\n0.063599 0.476196 0.526825\n0.110718 0.475861 0.525970\n0.154236 0.475586 0.525146\n0.193573 0.475525 0.524445\n0.228271 0.475555 0.523865\n0.259338 0.475708 0.523376\n0.287872 0.476044 0.522949\n0.314667 0.476349 0.522491\n0.340790 0.476715 0.522095\n0.367065 0.477112 0.521667\n0.393982 0.477356 0.521088\n0.422394 0.477570 0.520508\n0.452789 0.477753 0.519806\n0.485626 0.478027 0.519226\n0.522522 0.479156 0.519501\n0.562347 0.478882 0.518311\n0.605194 0.478485 0.517090\n0.649933 0.478058 0.515808\n0.694733 0.477661 0.514557\n0.738312 0.477264 0.513306\n0.779144 0.476959 0.512177\n0.815979 0.476776 0.511169\n0.848969 0.476624 0.510162\n0.878357 0.476562 0.509216\n0.904510 0.476562 0.508331\n0.927887 0.476715 0.507507\n0.948944 0.476929 0.506683\n0.967987 0.477112 0.505920\n0.985321 0.477356 0.505035\n1.000000 0.479156 0.505676\n1.000000 0.497040 0.520844\n0.023529 0.510559 0.528656\n0.073242 0.510162 0.527710\n0.119995 0.509949 0.526855\n0.162811 0.509735 0.526062\n0.201202 0.509674 0.525360\n0.235077 0.509827 0.524780\n0.265472 0.510071 0.524200\n0.293518 0.510376 0.523743\n0.319977 0.510712 0.523346\n0.345978 0.511078 0.522858\n0.372131 0.511414 0.522369\n0.399078 0.511688 0.521851\n0.427551 0.511871 0.521179\n0.458008 0.511993 0.520447\n0.490662 0.511932 0.519531\n0.526733 0.512024 0.518738\n0.566467 0.511688 0.517548\n0.609100 0.511261 0.516266\n0.653320 0.510834 0.515015\n0.697540 0.510345 0.513763\n0.740387 0.509918 0.512512\n0.780548 0.509552 0.511353\n0.816956 0.509247 0.510132\n0.849487 0.509094 0.509094\n0.878510 0.509186 0.508118\n0.904358 0.509155 0.507233\n0.927582 0.509308 0.506348\n0.948456 0.509460 0.505524\n0.967377 0.509735 0.504730\n0.984650 0.509949 0.503967\n1.000000 0.510803 0.503906\n1.000000 0.528381 0.520813\n0.033661 0.546570 0.528839\n0.083008 0.546173 0.527893\n0.129059 0.545898 0.526978\n0.170990 0.545715 0.526123\n0.208252 0.545685 0.525330\n0.241089 0.545837 0.524780\n0.270813 0.546082 0.524200\n0.298309 0.546356 0.523682\n0.324402 0.546661 0.523224\n0.350159 0.546967 0.522705\n0.376190 0.547272 0.522125\n0.403107 0.547455 0.521515\n0.431580 0.547577 0.520782\n0.462036 0.547546 0.519958\n0.494690 0.547455 0.518982\n0.531006 0.547607 0.518341\n0.571381 0.547852 0.517822\n0.613800 0.547394 0.516571\n0.657532 0.546844 0.515289\n0.701263 0.546326 0.513977\n0.743774 0.545868 0.512665\n0.783417 0.545471 0.511414\n0.819275 0.545197 0.510223\n0.851318 0.545105 0.509155\n0.879913 0.545013 0.508118\n0.905487 0.544983 0.507202\n0.928436 0.545166 0.506287\n0.949036 0.545227 0.505432\n0.967743 0.545441 0.504639\n0.984924 0.545624 0.503845\n1.000000 0.546570 0.504028\n1.000000 0.561890 0.520782\n0.043854 0.584534 0.528168\n0.092590 0.584137 0.527191\n0.137817 0.583862 0.526306\n0.178589 0.583679 0.525452\n0.214691 0.583679 0.524719\n0.246552 0.583771 0.524109\n0.275513 0.584015 0.523499\n0.302429 0.584290 0.523010\n0.328186 0.584503 0.522430\n0.353729 0.584808 0.521973\n0.379669 0.585022 0.521362\n0.406555 0.585114 0.520721\n0.435028 0.585175 0.519958\n0.465454 0.585052 0.519104\n0.498108 0.584747 0.518127\n0.534607 0.585022 0.517609\n0.575623 0.586029 0.517853\n0.618256 0.585876 0.516907\n0.661835 0.585266 0.515503\n0.705200 0.584686 0.514130\n0.747192 0.584137 0.512756\n0.786316 0.583710 0.511444\n0.821533 0.583344 0.510193\n0.853149 0.583130 0.509064\n0.881378 0.583069 0.508026\n0.906616 0.583038 0.507080\n0.929199 0.583038 0.506165\n0.949615 0.583038 0.505341\n0.968170 0.583191 0.504578\n0.985107 0.583344 0.503815\n1.000000 0.584290 0.504120\n1.000000 0.597137 0.520874\n0.054657 0.624451 0.527435\n0.102570 0.624054 0.526428\n0.146484 0.623718 0.525482\n0.186127 0.623505 0.524689\n0.220978 0.623505 0.523956\n0.251892 0.623566 0.523346\n0.280060 0.623718 0.522766\n0.306458 0.623962 0.522186\n0.331879 0.624084 0.521606\n0.357147 0.624268 0.521118\n0.382935 0.624420 0.520477\n0.409760 0.624390 0.519836\n0.438171 0.624298 0.519073\n0.468475 0.624054 0.518188\n0.501007 0.623627 0.517120\n0.537781 0.623962 0.516693\n0.578949 0.624878 0.516785\n0.622681 0.625854 0.516907\n0.666107 0.625336 0.515564\n0.709106 0.624664 0.514130\n0.750580 0.624054 0.512695\n0.789093 0.623566 0.511322\n0.823822 0.623138 0.510101\n0.854950 0.622864 0.508972\n0.882751 0.622650 0.507935\n0.907654 0.622559 0.506958\n0.929993 0.622528 0.506104\n0.950165 0.622528 0.505280\n0.968506 0.622650 0.504578\n0.985352 0.622681 0.503906\n1.000000 0.623413 0.504364\n1.000000 0.633606 0.521088\n0.065796 0.665619 0.526611\n0.112610 0.665100 0.525543\n0.155304 0.664703 0.524597\n0.193451 0.664551 0.523804\n0.227051 0.664459 0.523071\n0.256897 0.664398 0.522430\n0.284363 0.664490 0.521942\n0.310211 0.664551 0.521362\n0.335236 0.664612 0.520782\n0.360321 0.664703 0.520233\n0.385895 0.664673 0.519653\n0.412567 0.664520 0.518890\n0.440887 0.664307 0.518097\n0.471191 0.663940 0.517090\n0.503967 0.663391 0.515900\n0.541077 0.663818 0.515564\n0.582214 0.664673 0.515625\n0.625793 0.665588 0.515656\n0.670319 0.666321 0.515472\n0.712891 0.665558 0.513977\n0.753845 0.664795 0.512543\n0.791809 0.664307 0.511200\n0.825958 0.663788 0.509949\n0.856628 0.663483 0.508850\n0.884064 0.663086 0.507812\n0.908600 0.662964 0.506866\n0.930725 0.662903 0.506073\n0.950653 0.662750 0.505341\n0.968842 0.662781 0.504700\n0.985565 0.662842 0.504089\n1.000000 0.663361 0.504761\n1.000000 0.670837 0.521454\n0.076904 0.707123 0.525696\n0.122498 0.706573 0.524750\n0.163757 0.706116 0.523682\n0.200409 0.705841 0.522949\n0.232697 0.705627 0.522278\n0.261627 0.705536 0.521545\n0.288361 0.705566 0.521027\n0.313660 0.705475 0.520477\n0.338318 0.705414 0.519897\n0.363098 0.705322 0.519287\n0.388428 0.705139 0.518616\n0.415100 0.704865 0.517822\n0.443542 0.704529 0.516876\n0.473999 0.703979 0.515778\n0.506897 0.703369 0.514587\n0.544281 0.703827 0.514282\n0.585480 0.704620 0.514252\n0.628876 0.705475 0.514221\n0.673187 0.706238 0.514160\n0.716614 0.706635 0.513794\n0.756989 0.705841 0.512360\n0.794373 0.705200 0.511047\n0.828033 0.704620 0.509857\n0.858276 0.704224 0.508728\n0.885315 0.703766 0.507782\n0.909546 0.703674 0.506897\n0.931396 0.703491 0.506165\n0.951141 0.703278 0.505524\n0.969177 0.703156 0.504944\n0.985718 0.703125 0.504456\n1.000000 0.703430 0.505310\n1.000000 0.707977 0.522064\n0.087860 0.748199 0.524811\n0.131989 0.747528 0.523743\n0.171722 0.746948 0.522797\n0.206848 0.746582 0.522064\n0.237915 0.746338 0.521301\n0.265900 0.746124 0.520752\n0.291901 0.745941 0.520111\n0.316681 0.745789 0.519653\n0.340942 0.745575 0.518982\n0.365570 0.745392 0.518280\n0.390930 0.745026 0.517456\n0.417755 0.744690 0.516602\n0.446289 0.744202 0.515594\n0.476898 0.743561 0.514404\n0.509857 0.742798 0.513062\n0.547607 0.743408 0.512939\n0.588715 0.744049 0.512878\n0.631836 0.744812 0.512817\n0.675842 0.745514 0.512787\n0.719116 0.746185 0.512726\n0.760040 0.746307 0.512207\n0.796783 0.745605 0.510895\n0.830017 0.744934 0.509766\n0.859741 0.744476 0.508759\n0.886475 0.743988 0.507843\n0.910431 0.743744 0.507111\n0.932007 0.743317 0.506439\n0.951569 0.743164 0.505890\n0.969421 0.742981 0.505432\n0.985870 0.742828 0.505096\n1.000000 0.742798 0.506134\n1.000000 0.744537 0.522980\n0.098328 0.787903 0.523712\n0.140930 0.787170 0.522766\n0.179047 0.786591 0.521942\n0.212646 0.786102 0.521118\n0.242493 0.785675 0.520538\n0.269623 0.785370 0.519867\n0.294952 0.785095 0.519287\n0.319336 0.784760 0.518555\n0.343536 0.784485 0.517944\n0.368103 0.784149 0.517120\n0.393524 0.783722 0.516144\n0.420410 0.783203 0.515228\n0.449066 0.782623 0.514130\n0.479767 0.781860 0.512878\n0.512848 0.781067 0.511597\n0.550873 0.781677 0.511566\n0.591858 0.782257 0.511505\n0.634827 0.782837 0.511444\n0.678284 0.783447 0.511383\n0.721130 0.784058 0.511322\n0.761993 0.784637 0.511353\n0.799133 0.784637 0.510864\n0.831818 0.783936 0.509827\n0.861176 0.783386 0.508881\n0.887512 0.782867 0.508087\n0.911194 0.782471 0.507446\n0.932587 0.782135 0.506897\n0.951935 0.781738 0.506439\n0.969635 0.781555 0.506195\n0.986023 0.781281 0.506012\n1.000000 0.781372 0.507629\n1.000000 0.780670 0.525055\n0.108002 0.825653 0.522827\n0.149017 0.824799 0.521881\n0.185486 0.824097 0.520966\n0.217743 0.823486 0.520233\n0.246552 0.823029 0.519623\n0.272980 0.822601 0.518890\n0.297913 0.822205 0.518158\n0.322113 0.821777 0.517456\n0.346191 0.821411 0.516663\n0.370697 0.820923 0.515808\n0.396179 0.820435 0.514801\n0.423126 0.819824 0.513855\n0.451843 0.819183 0.512665\n0.482605 0.818298 0.511383\n0.516052 0.817566 0.510254\n0.554047 0.818085 0.510193\n0.594849 0.818573 0.510162\n0.637543 0.819122 0.510132\n0.680603 0.819580 0.510132\n0.723083 0.820068 0.510162\n0.763306 0.820526 0.510193\n0.800446 0.821045 0.510315\n0.833466 0.820984 0.510040\n0.862457 0.820404 0.509216\n0.888489 0.819794 0.508575\n0.911865 0.819275 0.507996\n0.933075 0.818909 0.507629\n0.952240 0.818481 0.507355\n0.969879 0.818390 0.507599\n0.986115 0.818359 0.508057\n1.000000 0.818085 0.510071\n1.000000 0.814880 0.527710\n0.116760 0.860687 0.521942\n0.156189 0.859802 0.521088\n0.191101 0.859009 0.520081\n0.222229 0.858368 0.519409\n0.250336 0.857788 0.518555\n0.276276 0.857269 0.517761\n0.300934 0.856781 0.517029\n0.324890 0.856323 0.516205\n0.348846 0.855804 0.515320\n0.373383 0.855255 0.514404\n0.398834 0.854645 0.513428\n0.425812 0.854004 0.512421\n0.454620 0.853180 0.511230\n0.485504 0.852264 0.509949\n0.519104 0.851624 0.509003\n0.557129 0.852081 0.508972\n0.597748 0.852448 0.508972\n0.640198 0.852844 0.509003\n0.682861 0.853241 0.509064\n0.724701 0.853607 0.509155\n0.764587 0.854004 0.509308\n0.801147 0.854401 0.509491\n0.834167 0.854767 0.509766\n0.863556 0.854828 0.509796\n0.889313 0.854126 0.509277\n0.912476 0.853546 0.508911\n0.933563 0.853302 0.509033\n0.952606 0.853180 0.509399\n0.970062 0.852966 0.510040\n0.986115 0.852753 0.510773\n1.000000 0.852142 0.512939\n1.000000 0.846466 0.530823\n0.124420 0.892548 0.521179\n0.162537 0.891663 0.520142\n0.196381 0.890839 0.519135\n0.226654 0.890106 0.518372\n0.254089 0.889496 0.517456\n0.279633 0.888885 0.516571\n0.303955 0.888336 0.515686\n0.327698 0.887756 0.514862\n0.351593 0.887238 0.513977\n0.376038 0.886566 0.513031\n0.401520 0.885895 0.512054\n0.428528 0.885132 0.511047\n0.457336 0.884247 0.509918\n0.488251 0.883270 0.508636\n0.522064 0.882751 0.507874\n0.560028 0.883118 0.507904\n0.600586 0.883362 0.507965\n0.642578 0.883667 0.508057\n0.684906 0.884033 0.508209\n0.726227 0.884308 0.508423\n0.765625 0.884583 0.508698\n0.801697 0.884918 0.509003\n0.834320 0.885162 0.509399\n0.863708 0.885437 0.509888\n0.890167 0.885681 0.510590\n0.913208 0.885284 0.510956\n0.933990 0.884827 0.511444\n0.952820 0.884552 0.512146\n0.970093 0.884216 0.513000\n0.986084 0.883942 0.513916\n1.000000 0.883087 0.516144\n1.000000 0.875397 0.534241\n0.131714 0.921051 0.520264\n0.168793 0.920074 0.519135\n0.201569 0.919220 0.518127\n0.231079 0.918457 0.517181\n0.257874 0.917786 0.516174\n0.282959 0.917206 0.515381\n0.307007 0.916565 0.514465\n0.330566 0.915955 0.513611\n0.354279 0.915314 0.512726\n0.378693 0.914673 0.511810\n0.404144 0.913910 0.510834\n0.431183 0.913116 0.509796\n0.460052 0.912201 0.508667\n0.490967 0.911133 0.507507\n0.524902 0.910736 0.506927\n0.562744 0.910950 0.507050\n0.603058 0.911194 0.507233\n0.644836 0.911377 0.507385\n0.686707 0.911621 0.507660\n0.727661 0.911835 0.507965\n0.766479 0.912048 0.508423\n0.802155 0.912262 0.508850\n0.834656 0.912567 0.509766\n0.863892 0.912933 0.510925\n0.890045 0.913239 0.512207\n0.913635 0.913544 0.513672\n0.934143 0.913055 0.514343\n0.952881 0.912598 0.515228\n0.970062 0.912109 0.516296\n0.986023 0.911774 0.517365\n1.000000 0.910706 0.519653\n1.000000 0.901306 0.537842\n0.138885 0.946350 0.519073\n0.174713 0.945404 0.518005\n0.206696 0.944550 0.516937\n0.235352 0.943756 0.515930\n0.261627 0.943085 0.515045\n0.286285 0.942413 0.514130\n0.309998 0.941772 0.513245\n0.333344 0.941101 0.512421\n0.356995 0.940460 0.511597\n0.381317 0.939758 0.510712\n0.406769 0.938995 0.509705\n0.433807 0.938141 0.508759\n0.462585 0.937225 0.507751\n0.493500 0.936157 0.506653\n0.527618 0.935822 0.506287\n0.565308 0.935974 0.506439\n0.605438 0.936127 0.506714\n0.646820 0.936310 0.507050\n0.688293 0.936432 0.507446\n0.728729 0.936584 0.507935\n0.767487 0.936829 0.508789\n0.803009 0.937042 0.509949\n0.834869 0.937256 0.511261\n0.863586 0.937439 0.512634\n0.889496 0.937683 0.514160\n0.912781 0.937897 0.515808\n0.934082 0.938080 0.517517\n0.952850 0.937744 0.518738\n0.970001 0.937195 0.519897\n0.985901 0.936646 0.521088\n1.000000 0.935608 0.523254\n1.000000 0.924713 0.541565\n0.145935 0.969025 0.518036\n0.180634 0.968079 0.516846\n0.211609 0.967285 0.515839\n0.239594 0.966492 0.514862\n0.265198 0.965759 0.513916\n0.289490 0.965088 0.513031\n0.312927 0.964447 0.512177\n0.336029 0.963776 0.511353\n0.359558 0.963135 0.510498\n0.383820 0.962341 0.509705\n0.409241 0.961609 0.508759\n0.436279 0.960724 0.507874\n0.465027 0.959717 0.506897\n0.495880 0.958740 0.505981\n0.529999 0.958435 0.505829\n0.567657 0.958557 0.506195\n0.607544 0.958679 0.506531\n0.648376 0.958771 0.506989\n0.690033 0.958893 0.507874\n0.730469 0.959045 0.509033\n0.768463 0.959167 0.510315\n0.803192 0.959290 0.511719\n0.834625 0.959381 0.513245\n0.862976 0.959534 0.514862\n0.888672 0.959656 0.516602\n0.911896 0.959808 0.518402\n0.933075 0.959900 0.520203\n0.952515 0.960022 0.522125\n0.969910 0.959717 0.523651\n0.985870 0.959229 0.524841\n1.000000 0.958069 0.526947\n1.000000 0.945984 0.545349\n0.152618 0.989471 0.516754\n0.186279 0.988586 0.515656\n0.216339 0.987732 0.514587\n0.243561 0.987000 0.513672\n0.268707 0.986298 0.512787\n0.292542 0.985626 0.511993\n0.315704 0.984985 0.511200\n0.338623 0.984314 0.510376\n0.362030 0.983643 0.509674\n0.386169 0.982880 0.508881\n0.411560 0.982117 0.508057\n0.438538 0.981232 0.507294\n0.467255 0.980316 0.506470\n0.497986 0.979248 0.505524\n0.532166 0.979034 0.505676\n0.569550 0.979095 0.506134\n0.609619 0.979126 0.507019\n0.650848 0.979248 0.508118\n0.691711 0.979279 0.509430\n0.731232 0.979340 0.510864\n0.768555 0.979431 0.512390\n0.802856 0.979492 0.514008\n0.833954 0.979553 0.515717\n0.862183 0.979584 0.517456\n0.887787 0.979614 0.519318\n0.910980 0.979645 0.521240\n0.932220 0.979706 0.523132\n0.951599 0.979736 0.525055\n0.969482 0.979828 0.527039\n0.985779 0.979675 0.528687\n1.000000 0.978577 0.531281\n1.000000 0.965485 0.550262\n0.170593 1.000000 0.517365\n0.201691 1.000000 0.516388\n0.229614 1.000000 0.515472\n0.255096 1.000000 0.514587\n0.278687 1.000000 0.513916\n0.301178 1.000000 0.512939\n0.323151 1.000000 0.512207\n0.344971 1.000000 0.511292\n0.367340 1.000000 0.510437\n0.390381 1.000000 0.509369\n0.414734 1.000000 0.508331\n0.440582 1.000000 0.506897\n0.469208 0.999115 0.506226\n0.499817 0.998077 0.505554\n0.534485 0.997925 0.506195\n0.572205 0.997925 0.507294\n0.611786 0.997955 0.508575\n0.652161 0.997955 0.510010\n0.692261 0.997955 0.511505\n0.731262 0.997925 0.513123\n0.768127 0.997955 0.514801\n0.802307 0.997925 0.516632\n0.833130 0.997925 0.518463\n0.861298 0.997894 0.520355\n0.886932 0.997894 0.522278\n0.910217 0.997864 0.524200\n0.931519 0.997894 0.526123\n0.950989 0.997864 0.528107\n0.968842 0.997864 0.530579\n0.985260 0.997864 0.533295\n1.000000 0.997253 0.536682\n1.000000 0.983459 0.555908\n0.201691 1.000000 0.520782\n0.231415 1.000000 0.520844\n0.258148 1.000000 0.520782\n0.282593 1.000000 0.520813\n0.305389 1.000000 0.520996\n0.327179 1.000000 0.521057\n0.348450 1.000000 0.521210\n0.369843 1.000000 0.521423\n0.391632 1.000000 0.521545\n0.414246 1.000000 0.521912\n0.438080 1.000000 0.522308\n0.463379 1.000000 0.522827\n0.490845 1.000000 0.523590\n0.520721 1.000000 0.524719\n0.553375 1.000000 0.525970\n0.588135 1.000000 0.527344\n0.624451 1.000000 0.528839\n0.661469 1.000000 0.530457\n0.698151 1.000000 0.532104\n0.734131 1.000000 0.533875\n0.768158 1.000000 0.535614\n0.799652 1.000000 0.537537\n0.828339 1.000000 0.539429\n0.854614 1.000000 0.541260\n0.878571 1.000000 0.543182\n0.900360 1.000000 0.545135\n0.920349 1.000000 0.547455\n0.938721 1.000000 0.550171\n0.955688 1.000000 0.552979\n0.971313 1.000000 0.555847\n0.986084 1.000000 0.558777\n1.000000 1.000000 0.561371\n0.000000 0.010376 0.508606\n0.035034 0.000000 0.522614\n0.082336 0.003479 0.526276\n0.127289 0.007355 0.529297\n0.168854 0.011139 0.532196\n0.206146 0.014679 0.534668\n0.239136 0.016357 0.535797\n0.268860 0.018005 0.536896\n0.296265 0.019531 0.537994\n0.322357 0.021088 0.539062\n0.347687 0.022583 0.540070\n0.373260 0.024017 0.541016\n0.399750 0.025482 0.542053\n0.427551 0.027008 0.542969\n0.457489 0.028442 0.543884\n0.489807 0.029938 0.544739\n0.525726 0.031494 0.545624\n0.566040 0.032043 0.545746\n0.609619 0.031677 0.544861\n0.655853 0.031189 0.544006\n0.703369 0.030731 0.542999\n0.750305 0.030426 0.542114\n0.794647 0.030334 0.541229\n0.834717 0.030487 0.540497\n0.870270 0.030914 0.539856\n0.901550 0.031372 0.539429\n0.929077 0.031921 0.538788\n0.953430 0.032654 0.538391\n0.975159 0.033447 0.537964\n0.994598 0.034424 0.537537\n1.000000 0.054138 0.537201\n1.000000 0.080872 0.537659\n0.000000 0.049652 0.516602\n0.035126 0.040894 0.528381\n0.082611 0.044342 0.531097\n0.127502 0.047607 0.533508\n0.168427 0.049316 0.534729\n0.205231 0.050934 0.535858\n0.237854 0.052429 0.536926\n0.267456 0.053864 0.537994\n0.294678 0.055237 0.539001\n0.320892 0.056671 0.539978\n0.346344 0.058075 0.540985\n0.372101 0.059479 0.541901\n0.398529 0.060913 0.542847\n0.426392 0.062317 0.543701\n0.456329 0.063721 0.544556\n0.488708 0.065186 0.545380\n0.524597 0.066711 0.546204\n0.564911 0.067383 0.546295\n0.608704 0.067047 0.545471\n0.655579 0.066589 0.544495\n0.703430 0.066223 0.543457\n0.750580 0.066010 0.542450\n0.794952 0.065979 0.541595\n0.834930 0.066132 0.540802\n0.870209 0.066315 0.540009\n0.901337 0.066681 0.539307\n0.928772 0.067261 0.538788\n0.953033 0.068024 0.538300\n0.974579 0.068909 0.537872\n0.993927 0.070007 0.537506\n1.000000 0.088196 0.537567\n1.000000 0.114288 0.538574\n0.000000 0.087769 0.524170\n0.037048 0.081787 0.533783\n0.082458 0.081818 0.533691\n0.126495 0.083252 0.534760\n0.167084 0.084686 0.535889\n0.203583 0.086090 0.536926\n0.236237 0.087402 0.537933\n0.265900 0.088745 0.538940\n0.293396 0.090057 0.539917\n0.319641 0.091431 0.540833\n0.345154 0.092712 0.541779\n0.370758 0.094025 0.542664\n0.397308 0.095398 0.543518\n0.425171 0.096893 0.544342\n0.455139 0.098267 0.545135\n0.487549 0.099731 0.545959\n0.523651 0.101288 0.546722\n0.564697 0.102051 0.546814\n0.609070 0.101746 0.545868\n0.656158 0.101318 0.544830\n0.704346 0.101135 0.543762\n0.751404 0.100922 0.542664\n0.795593 0.100647 0.541748\n0.835327 0.100677 0.540833\n0.870483 0.100922 0.540070\n0.901337 0.101318 0.539276\n0.928589 0.101990 0.538788\n0.952667 0.102783 0.538300\n0.974091 0.103638 0.537872\n0.993317 0.104706 0.537445\n1.000000 0.121490 0.537872\n1.000000 0.146942 0.539673\n0.000000 0.123566 0.529175\n0.037598 0.118134 0.536194\n0.082458 0.117737 0.535919\n0.124878 0.117737 0.535858\n0.165222 0.119049 0.536896\n0.202026 0.120270 0.537872\n0.234802 0.121582 0.538849\n0.264587 0.122864 0.539795\n0.292084 0.124084 0.540710\n0.318329 0.125397 0.541626\n0.343842 0.126587 0.542480\n0.369568 0.127960 0.543274\n0.396118 0.129303 0.544128\n0.424072 0.130707 0.544922\n0.454193 0.132141 0.545654\n0.487274 0.133667 0.546417\n0.524017 0.135223 0.547150\n0.565430 0.136017 0.547150\n0.610260 0.135803 0.546173\n0.657623 0.135468 0.545074\n0.705688 0.134979 0.543915\n0.752716 0.134644 0.542816\n0.796631 0.134430 0.541687\n0.836090 0.134521 0.540771\n0.870911 0.134827 0.539948\n0.901581 0.135284 0.539368\n0.928528 0.135895 0.538635\n0.952362 0.136719 0.538086\n0.973633 0.137604 0.537659\n0.992676 0.138611 0.537262\n1.000000 0.153961 0.537933\n1.000000 0.178772 0.540344\n0.000000 0.157654 0.531433\n0.037262 0.153107 0.538391\n0.081848 0.152802 0.538086\n0.124268 0.152344 0.537720\n0.163849 0.152496 0.537811\n0.200653 0.153687 0.538757\n0.233521 0.154846 0.539673\n0.263306 0.156067 0.540558\n0.290833 0.157227 0.541412\n0.317047 0.158508 0.542236\n0.342621 0.159821 0.543091\n0.368408 0.161072 0.543854\n0.395111 0.162476 0.544647\n0.423706 0.163910 0.545410\n0.454407 0.165375 0.546112\n0.487915 0.166870 0.546814\n0.525116 0.168518 0.547485\n0.567078 0.169312 0.547455\n0.612030 0.168823 0.546326\n0.659454 0.168365 0.545013\n0.707550 0.167908 0.543915\n0.754425 0.167694 0.542725\n0.798065 0.167572 0.541565\n0.837128 0.167633 0.540710\n0.871582 0.167969 0.539886\n0.901886 0.168396 0.539032\n0.928589 0.169006 0.538574\n0.952179 0.169800 0.537903\n0.973175 0.170624 0.537506\n0.992096 0.171600 0.537048\n1.000000 0.185638 0.538147\n1.000000 0.209717 0.541260\n0.000000 0.190918 0.533051\n0.036804 0.187134 0.540466\n0.081757 0.186676 0.540070\n0.124146 0.186279 0.539703\n0.163330 0.185852 0.539368\n0.199310 0.186127 0.539490\n0.232208 0.187317 0.540375\n0.261993 0.188507 0.541229\n0.289551 0.189697 0.542053\n0.315796 0.190948 0.542816\n0.341583 0.192230 0.543610\n0.367950 0.193542 0.544312\n0.395233 0.194977 0.545105\n0.424194 0.196411 0.545746\n0.455383 0.197937 0.546478\n0.489288 0.199493 0.547119\n0.526886 0.200867 0.547668\n0.569122 0.201385 0.547363\n0.614380 0.201019 0.546173\n0.661987 0.200531 0.544952\n0.710052 0.200134 0.543762\n0.756622 0.199921 0.542542\n0.799805 0.199799 0.541443\n0.838379 0.199921 0.540375\n0.872406 0.200256 0.539734\n0.902313 0.200684 0.538910\n0.928680 0.201263 0.538300\n0.951996 0.201935 0.537781\n0.972778 0.202667 0.537201\n0.991516 0.203552 0.536743\n1.000000 0.216278 0.538147\n1.000000 0.239685 0.542023\n0.000000 0.223022 0.535004\n0.036743 0.220215 0.542480\n0.081665 0.219635 0.541992\n0.124084 0.219269 0.541565\n0.163269 0.218811 0.541199\n0.198730 0.218628 0.540833\n0.230865 0.219025 0.541016\n0.260712 0.220184 0.541809\n0.288605 0.221436 0.542603\n0.315399 0.222656 0.543335\n0.341766 0.223969 0.544067\n0.368408 0.225311 0.544739\n0.396149 0.226776 0.545471\n0.425415 0.228241 0.546112\n0.456940 0.229523 0.546661\n0.491241 0.230927 0.547180\n0.529358 0.232330 0.547699\n0.571899 0.232758 0.547241\n0.617432 0.232361 0.546021\n0.665039 0.231964 0.544800\n0.712952 0.231598 0.543457\n0.759155 0.231354 0.542297\n0.801788 0.231293 0.541290\n0.839844 0.231384 0.540344\n0.873291 0.231628 0.539429\n0.902802 0.232025 0.538727\n0.928802 0.232605 0.538025\n0.951843 0.233185 0.537476\n0.972443 0.233917 0.537048\n0.990967 0.234680 0.536530\n1.000000 0.246124 0.537964\n1.000000 0.268799 0.542603\n0.000000 0.254211 0.536804\n0.036621 0.252380 0.544312\n0.081573 0.251831 0.543793\n0.123993 0.251404 0.543304\n0.163147 0.251099 0.542908\n0.198639 0.250793 0.542511\n0.230591 0.250793 0.542236\n0.260376 0.251221 0.542328\n0.288818 0.252472 0.543060\n0.315918 0.253754 0.543762\n0.342590 0.255157 0.544464\n0.369629 0.256500 0.545135\n0.397491 0.257721 0.545624\n0.427124 0.259003 0.546143\n0.459106 0.260376 0.546692\n0.493774 0.261749 0.547150\n0.532471 0.263153 0.547638\n0.575256 0.263519 0.547058\n0.621033 0.263092 0.545837\n0.668579 0.262695 0.544586\n0.716187 0.262360 0.543335\n0.761902 0.262146 0.542084\n0.803925 0.262054 0.540955\n0.841339 0.262146 0.539978\n0.874298 0.262360 0.539215\n0.903320 0.262756 0.538483\n0.928955 0.263214 0.537659\n0.951721 0.263794 0.537201\n0.971985 0.264404 0.536621\n0.990387 0.265076 0.536072\n1.000000 0.275269 0.537964\n1.000000 0.297272 0.543304\n0.000000 0.284790 0.538544\n0.036560 0.283966 0.546082\n0.081512 0.283447 0.545532\n0.123901 0.282990 0.544983\n0.163422 0.282715 0.544525\n0.199768 0.282471 0.544067\n0.232391 0.282501 0.543701\n0.262054 0.282654 0.543457\n0.289948 0.283142 0.543396\n0.317352 0.284454 0.544098\n0.344055 0.285645 0.544617\n0.371216 0.286865 0.545166\n0.399445 0.288177 0.545685\n0.429443 0.289490 0.546173\n0.461823 0.290863 0.546661\n0.496948 0.292236 0.547150\n0.536194 0.293671 0.547607\n0.579224 0.293823 0.546783\n0.625031 0.293457 0.545563\n0.672485 0.293030 0.544220\n0.719666 0.292755 0.542969\n0.764771 0.292480 0.541718\n0.806152 0.292389 0.540619\n0.842896 0.292480 0.539764\n0.875275 0.292694 0.538849\n0.903870 0.293030 0.538086\n0.929108 0.293457 0.537384\n0.951508 0.293976 0.536835\n0.971649 0.294495 0.536316\n0.989807 0.295044 0.535614\n1.000000 0.304047 0.537598\n1.000000 0.325378 0.543823\n0.000000 0.315125 0.540222\n0.036438 0.315399 0.547791\n0.081787 0.314850 0.547150\n0.125366 0.314453 0.546539\n0.165741 0.314087 0.545959\n0.202393 0.313995 0.545502\n0.235168 0.314087 0.545105\n0.265015 0.314240 0.544739\n0.292542 0.314362 0.544373\n0.319061 0.314697 0.544159\n0.346008 0.315887 0.544647\n0.373505 0.317200 0.545166\n0.402039 0.318542 0.545624\n0.432404 0.319824 0.546112\n0.465088 0.321198 0.546539\n0.500549 0.322632 0.546997\n0.540375 0.324005 0.547455\n0.583496 0.324005 0.546509\n0.629333 0.323608 0.545166\n0.676544 0.323273 0.543854\n0.723297 0.322968 0.542572\n0.767700 0.322693 0.541351\n0.808350 0.322601 0.540253\n0.844391 0.322693 0.539246\n0.876221 0.322845 0.538391\n0.904297 0.323120 0.537659\n0.929169 0.323486 0.536987\n0.951294 0.323883 0.536346\n0.971161 0.324371 0.535797\n0.989166 0.324860 0.535217\n1.000000 0.332581 0.537231\n1.000000 0.353271 0.544250\n0.000000 0.345551 0.542053\n0.038147 0.346710 0.549377\n0.084717 0.346130 0.548615\n0.128754 0.345795 0.547913\n0.169556 0.345581 0.547333\n0.206177 0.345551 0.546783\n0.238739 0.345490 0.546234\n0.268311 0.345520 0.545776\n0.295929 0.345734 0.545380\n0.322418 0.345947 0.544952\n0.348602 0.346313 0.544586\n0.376282 0.347626 0.545105\n0.405090 0.348938 0.545532\n0.435730 0.350281 0.545959\n0.468781 0.351654 0.546387\n0.504669 0.353058 0.546814\n0.544952 0.354462 0.547211\n0.588074 0.354187 0.546051\n0.633881 0.353851 0.544739\n0.680695 0.353455 0.543365\n0.726868 0.353149 0.542084\n0.770599 0.352936 0.540833\n0.810455 0.352875 0.539734\n0.845825 0.352875 0.538879\n0.877045 0.352997 0.537903\n0.904663 0.353210 0.537201\n0.929169 0.353546 0.536407\n0.951050 0.353882 0.535919\n0.970642 0.354248 0.535156\n0.988495 0.354614 0.534607\n1.000000 0.361145 0.536560\n1.000000 0.381287 0.544647\n0.000000 0.376953 0.546173\n0.042297 0.378143 0.550751\n0.089447 0.377716 0.549988\n0.133881 0.377472 0.549225\n0.174347 0.377228 0.548492\n0.210541 0.377014 0.547791\n0.242950 0.377045 0.547241\n0.272369 0.377106 0.546722\n0.299927 0.377411 0.546265\n0.326416 0.377716 0.545868\n0.352661 0.377991 0.545380\n0.379456 0.378357 0.544861\n0.408569 0.379700 0.545319\n0.439423 0.380981 0.545715\n0.472839 0.382385 0.546143\n0.509033 0.383759 0.546539\n0.549591 0.384979 0.546814\n0.592743 0.384674 0.545502\n0.638336 0.384308 0.544189\n0.684753 0.383911 0.542847\n0.730347 0.383636 0.541565\n0.773285 0.383392 0.540344\n0.812408 0.383270 0.539185\n0.847046 0.383270 0.538269\n0.877686 0.383331 0.537384\n0.904877 0.383484 0.536591\n0.929016 0.383728 0.535858\n0.950623 0.384003 0.535156\n0.970062 0.384308 0.534637\n0.987793 0.384613 0.533936\n1.000000 0.390015 0.535675\n1.000000 0.409515 0.544922\n0.000000 0.410126 0.551819\n0.048492 0.410187 0.552002\n0.095551 0.409698 0.551056\n0.139587 0.409271 0.550171\n0.179901 0.409027 0.549408\n0.215820 0.408997 0.548706\n0.247864 0.409058 0.548096\n0.277100 0.409271 0.547638\n0.304474 0.409576 0.547119\n0.330872 0.409943 0.546661\n0.357086 0.410217 0.546143\n0.384033 0.410553 0.545624\n0.412323 0.410889 0.545013\n0.443451 0.412201 0.545410\n0.477020 0.413483 0.545776\n0.513550 0.414825 0.546143\n0.554230 0.415863 0.546173\n0.597412 0.415558 0.544891\n0.642761 0.415131 0.543579\n0.688721 0.414795 0.542206\n0.733551 0.414490 0.540894\n0.775757 0.414185 0.539703\n0.814056 0.414093 0.538574\n0.848053 0.414032 0.537659\n0.878174 0.414062 0.536743\n0.904907 0.414124 0.535919\n0.928772 0.414276 0.535156\n0.950134 0.414520 0.534454\n0.969452 0.414764 0.533691\n0.987030 0.415039 0.532990\n1.000000 0.419250 0.534546\n1.000000 0.438232 0.544952\n0.005829 0.442993 0.553925\n0.055481 0.442474 0.552948\n0.102631 0.442047 0.551971\n0.146606 0.441803 0.551056\n0.186432 0.441589 0.550201\n0.221802 0.441620 0.549561\n0.253418 0.441803 0.548981\n0.282227 0.441956 0.548401\n0.309418 0.442383 0.547913\n0.335663 0.442688 0.547455\n0.361938 0.443024 0.546906\n0.388916 0.443359 0.546326\n0.417236 0.443634 0.545624\n0.447601 0.443909 0.545013\n0.481384 0.445190 0.545319\n0.518127 0.446472 0.545654\n0.558929 0.447266 0.545532\n0.601959 0.446930 0.544189\n0.646942 0.446533 0.542816\n0.692383 0.446136 0.541473\n0.736542 0.445801 0.540161\n0.777924 0.445435 0.538940\n0.815399 0.445343 0.537842\n0.848785 0.445190 0.536865\n0.878418 0.445190 0.535919\n0.904816 0.445251 0.535065\n0.928436 0.445343 0.534271\n0.949615 0.445557 0.533356\n0.968781 0.445801 0.532623\n0.986237 0.446014 0.531799\n1.000000 0.449066 0.533020\n1.000000 0.467499 0.544922\n0.014252 0.475891 0.554779\n0.063934 0.475555 0.553741\n0.111053 0.475189 0.552734\n0.154602 0.475006 0.551880\n0.193726 0.474884 0.550995\n0.228333 0.475006 0.550323\n0.259338 0.475159 0.549713\n0.287720 0.475464 0.549194\n0.314575 0.475769 0.548615\n0.340698 0.476166 0.548096\n0.366882 0.476501 0.547546\n0.393890 0.476807 0.546936\n0.422302 0.476990 0.546234\n0.452698 0.477173 0.545410\n0.485718 0.477509 0.544800\n0.522644 0.478699 0.545135\n0.563354 0.479279 0.544708\n0.606232 0.478912 0.543335\n0.650787 0.478455 0.541962\n0.695557 0.478027 0.540649\n0.738983 0.477661 0.539337\n0.779633 0.477356 0.538116\n0.816467 0.477112 0.536926\n0.849365 0.476990 0.535919\n0.878632 0.476959 0.534943\n0.904694 0.476990 0.534027\n0.928070 0.477112 0.533020\n0.949066 0.477264 0.532166\n0.968048 0.477417 0.531311\n0.985382 0.477631 0.530487\n1.000000 0.479553 0.531067\n1.000000 0.497375 0.544830\n0.024200 0.509888 0.555511\n0.073792 0.509491 0.554504\n0.120453 0.509247 0.553467\n0.163300 0.509094 0.552521\n0.201447 0.509064 0.551697\n0.235229 0.509216 0.551025\n0.265503 0.509491 0.550415\n0.293396 0.509796 0.549835\n0.319916 0.510162 0.549316\n0.345856 0.510529 0.548767\n0.371979 0.510834 0.548157\n0.398987 0.511139 0.547516\n0.427429 0.511292 0.546783\n0.457886 0.511414 0.545929\n0.490692 0.511383 0.544952\n0.526978 0.511780 0.544403\n0.567474 0.512085 0.543793\n0.610077 0.511688 0.542419\n0.654114 0.511200 0.541046\n0.698273 0.510712 0.539703\n0.741058 0.510284 0.538391\n0.781158 0.509918 0.537109\n0.817383 0.509674 0.535828\n0.849762 0.509491 0.534698\n0.878723 0.509399 0.533661\n0.904480 0.509460 0.532715\n0.927612 0.509491 0.531738\n0.948395 0.509705 0.530823\n0.967255 0.509827 0.529999\n0.984467 0.510010 0.529236\n1.000000 0.510742 0.528748\n1.000000 0.528687 0.544800\n0.035431 0.546539 0.556213\n0.084564 0.546234 0.555084\n0.130585 0.545929 0.554108\n0.172394 0.545868 0.553192\n0.209442 0.545898 0.552399\n0.242218 0.546021 0.551636\n0.271820 0.546295 0.550995\n0.299133 0.546600 0.550446\n0.325317 0.546997 0.549927\n0.351044 0.547333 0.549377\n0.377014 0.547607 0.548737\n0.404083 0.547882 0.548035\n0.432495 0.547974 0.547241\n0.462921 0.547943 0.546356\n0.495605 0.547852 0.545258\n0.531433 0.547455 0.544067\n0.571259 0.547211 0.542938\n0.613556 0.546753 0.541626\n0.657196 0.546204 0.540222\n0.700958 0.545685 0.538818\n0.743347 0.545227 0.537476\n0.782867 0.544861 0.536102\n0.818604 0.544647 0.534912\n0.850616 0.544373 0.533752\n0.879181 0.544373 0.532745\n0.904694 0.544373 0.531738\n0.927582 0.544495 0.530792\n0.948212 0.544556 0.529968\n0.966949 0.544800 0.529144\n0.984070 0.544983 0.528351\n0.999939 0.545197 0.527618\n1.000000 0.562225 0.544769\n0.046173 0.584930 0.555695\n0.094666 0.584473 0.554596\n0.139648 0.584229 0.553467\n0.180328 0.584076 0.552582\n0.216095 0.584076 0.551727\n0.247864 0.584229 0.550995\n0.276703 0.584442 0.550354\n0.303467 0.584686 0.549774\n0.329193 0.584961 0.549133\n0.354736 0.585205 0.548523\n0.380554 0.585388 0.547821\n0.407501 0.585541 0.547119\n0.435883 0.585510 0.546265\n0.466278 0.585419 0.545258\n0.498901 0.585144 0.544250\n0.534698 0.584686 0.542999\n0.575562 0.585358 0.542877\n0.618073 0.585175 0.541840\n0.661499 0.584595 0.540375\n0.704865 0.584015 0.538879\n0.746765 0.583435 0.537506\n0.785736 0.583008 0.536102\n0.820923 0.582642 0.534851\n0.852417 0.582520 0.533691\n0.880615 0.582367 0.532623\n0.905823 0.582336 0.531647\n0.928375 0.582275 0.530701\n0.948792 0.582397 0.529877\n0.967316 0.582581 0.529053\n0.984314 0.582642 0.528320\n1.000000 0.582977 0.527649\n1.000000 0.597534 0.544861\n0.057098 0.624817 0.554810\n0.104706 0.624420 0.553680\n0.148560 0.624146 0.552582\n0.187897 0.623962 0.551636\n0.222382 0.623901 0.550781\n0.253143 0.623962 0.550140\n0.281219 0.624146 0.549438\n0.307434 0.624298 0.548828\n0.332825 0.624542 0.548218\n0.358032 0.624634 0.547546\n0.383759 0.624756 0.546844\n0.410614 0.624756 0.546051\n0.438904 0.624603 0.545197\n0.469238 0.624390 0.544220\n0.501862 0.623962 0.543121\n0.537781 0.623413 0.541809\n0.578827 0.624237 0.541748\n0.622528 0.625153 0.541779\n0.665802 0.624573 0.540375\n0.708710 0.623901 0.538849\n0.750092 0.623291 0.537415\n0.788483 0.622803 0.536041\n0.823181 0.622345 0.534698\n0.854187 0.622070 0.533569\n0.881989 0.621918 0.532501\n0.906830 0.621796 0.531525\n0.929169 0.621765 0.530640\n0.949371 0.621796 0.529816\n0.967682 0.621918 0.529083\n0.984528 0.621948 0.528412\n1.000000 0.622253 0.527954\n1.000000 0.633972 0.545074\n0.068268 0.665985 0.553772\n0.114716 0.665466 0.552551\n0.157227 0.665100 0.551544\n0.195129 0.664886 0.550629\n0.228333 0.664764 0.549744\n0.258118 0.664764 0.549103\n0.285492 0.664856 0.548492\n0.311127 0.664917 0.547791\n0.336182 0.665039 0.547150\n0.361084 0.665009 0.546478\n0.386658 0.665009 0.545807\n0.413361 0.664886 0.544983\n0.441589 0.664581 0.544067\n0.471985 0.664246 0.543030\n0.504791 0.663727 0.541809\n0.540894 0.663025 0.540375\n0.582092 0.663910 0.540405\n0.625549 0.664825 0.540405\n0.669983 0.665527 0.540283\n0.712585 0.664764 0.538727\n0.753296 0.664093 0.537231\n0.791168 0.663422 0.535858\n0.825348 0.663025 0.534607\n0.855865 0.662628 0.533447\n0.883270 0.662415 0.532410\n0.907806 0.662262 0.531464\n0.929901 0.662079 0.530640\n0.949829 0.662018 0.529877\n0.967987 0.661987 0.529236\n0.984711 0.662018 0.528625\n1.000000 0.662262 0.528259\n1.000000 0.671082 0.545410\n0.079407 0.707428 0.552551\n0.124542 0.706909 0.551514\n0.165619 0.706421 0.550415\n0.201996 0.706116 0.549530\n0.233978 0.705994 0.548828\n0.262787 0.705872 0.548004\n0.289307 0.705841 0.547394\n0.314545 0.705750 0.546692\n0.339172 0.705719 0.546112\n0.363770 0.705566 0.545441\n0.389221 0.705475 0.544678\n0.415894 0.705139 0.543762\n0.444275 0.704773 0.542786\n0.474823 0.704285 0.541656\n0.507751 0.703644 0.540344\n0.544189 0.703033 0.539062\n0.585327 0.703888 0.539062\n0.628693 0.704681 0.539001\n0.672882 0.705475 0.538940\n0.716156 0.705811 0.538513\n0.756470 0.705048 0.537079\n0.793762 0.704407 0.535706\n0.827393 0.703857 0.534485\n0.857513 0.703400 0.533356\n0.884491 0.703033 0.532379\n0.908722 0.702789 0.531525\n0.930542 0.702606 0.530731\n0.950317 0.702484 0.530060\n0.968323 0.702423 0.529449\n0.984894 0.702271 0.528931\n1.000000 0.702393 0.528839\n1.000000 0.708160 0.546021\n0.090271 0.748413 0.551514\n0.133972 0.747803 0.550293\n0.173492 0.747314 0.549377\n0.208313 0.746857 0.548462\n0.239105 0.746643 0.547638\n0.266968 0.746429 0.547028\n0.292755 0.746216 0.546356\n0.317474 0.746033 0.545654\n0.341736 0.745880 0.544983\n0.366272 0.745575 0.544250\n0.391724 0.745300 0.543365\n0.418549 0.744934 0.542480\n0.446991 0.744385 0.541382\n0.477631 0.743774 0.540100\n0.510681 0.742981 0.538788\n0.547394 0.742554 0.537659\n0.588501 0.743256 0.537598\n0.631622 0.743927 0.537537\n0.675476 0.744629 0.537506\n0.718689 0.745361 0.537445\n0.759460 0.745514 0.536896\n0.796204 0.744751 0.535614\n0.829254 0.744110 0.534454\n0.858948 0.743561 0.533386\n0.885651 0.743225 0.532471\n0.909546 0.742828 0.531708\n0.931183 0.742493 0.531006\n0.950714 0.742279 0.530426\n0.968597 0.742096 0.529907\n0.985016 0.742035 0.529510\n1.000000 0.741913 0.529602\n1.000000 0.744873 0.546936\n0.100555 0.788147 0.550415\n0.142700 0.787415 0.549194\n0.180634 0.786774 0.548279\n0.213898 0.786285 0.547455\n0.243561 0.785919 0.546692\n0.270569 0.785583 0.545990\n0.295776 0.785309 0.545288\n0.320160 0.785004 0.544617\n0.344330 0.784668 0.543762\n0.368866 0.784302 0.542938\n0.394318 0.783936 0.542023\n0.421143 0.783386 0.540985\n0.449768 0.782806 0.539825\n0.480499 0.782043 0.538574\n0.513611 0.781219 0.537201\n0.550659 0.780762 0.536224\n0.591675 0.781403 0.536163\n0.634491 0.782013 0.536133\n0.677917 0.782623 0.536072\n0.720673 0.783203 0.536072\n0.761414 0.783752 0.536072\n0.798462 0.783813 0.535614\n0.831055 0.783081 0.534485\n0.860352 0.782471 0.533569\n0.886688 0.781921 0.532715\n0.910370 0.781616 0.531982\n0.931702 0.781250 0.531433\n0.951111 0.780853 0.530975\n0.968811 0.780579 0.530609\n0.985168 0.780487 0.530426\n1.000000 0.780762 0.531128\n1.000000 0.781128 0.548859\n0.110077 0.825806 0.549225\n0.150665 0.824982 0.548187\n0.186951 0.824280 0.547272\n0.218781 0.823700 0.546448\n0.247437 0.823242 0.545624\n0.273865 0.822784 0.544922\n0.298737 0.822418 0.544159\n0.322906 0.821991 0.543335\n0.346985 0.821564 0.542480\n0.371429 0.821075 0.541534\n0.396912 0.820618 0.540619\n0.423859 0.820007 0.539551\n0.452576 0.819275 0.538330\n0.483398 0.818451 0.537079\n0.516571 0.817474 0.535614\n0.553772 0.817200 0.534851\n0.594666 0.817719 0.534790\n0.637207 0.818207 0.534790\n0.680267 0.818665 0.534790\n0.722534 0.819183 0.534851\n0.762726 0.819641 0.534912\n0.799774 0.820129 0.535034\n0.832733 0.820160 0.534698\n0.861603 0.819397 0.533813\n0.887604 0.818939 0.533142\n0.911011 0.818390 0.532532\n0.932159 0.817963 0.532135\n0.951416 0.817627 0.531860\n0.969086 0.817627 0.532043\n0.985291 0.817627 0.532410\n1.000000 0.817535 0.533356\n1.000000 0.815125 0.551239\n0.118469 0.860809 0.548187\n0.157562 0.859924 0.547089\n0.192413 0.859161 0.546265\n0.223236 0.858521 0.545380\n0.251282 0.857941 0.544556\n0.277191 0.857391 0.543610\n0.301727 0.856903 0.542908\n0.325684 0.856445 0.542023\n0.349609 0.855957 0.541138\n0.374054 0.855408 0.540131\n0.399536 0.854797 0.539185\n0.426514 0.854095 0.538025\n0.455322 0.853302 0.536835\n0.486176 0.852386 0.535614\n0.519409 0.851349 0.534180\n0.556763 0.851135 0.533569\n0.597534 0.851562 0.533600\n0.639709 0.851929 0.533630\n0.682434 0.852356 0.533722\n0.724213 0.852722 0.533813\n0.763885 0.853119 0.533966\n0.800415 0.853485 0.534119\n0.833374 0.853851 0.534393\n0.862732 0.853943 0.534393\n0.888397 0.853210 0.533783\n0.911621 0.852753 0.533386\n0.932739 0.852509 0.533508\n0.951782 0.852295 0.533813\n0.969238 0.852173 0.534210\n0.985291 0.851990 0.534790\n1.000000 0.851746 0.535858\n1.000000 0.846710 0.553955\n0.126007 0.892639 0.547211\n0.163849 0.891724 0.546112\n0.197662 0.890900 0.545197\n0.227692 0.890228 0.544250\n0.255066 0.889587 0.543304\n0.280548 0.888977 0.542389\n0.304718 0.888428 0.541504\n0.328461 0.887848 0.540710\n0.352325 0.887299 0.539795\n0.376709 0.886658 0.538788\n0.402252 0.885986 0.537781\n0.429230 0.885223 0.536713\n0.458008 0.884369 0.535522\n0.488983 0.883392 0.534241\n0.522217 0.882294 0.532898\n0.559723 0.882172 0.532501\n0.600220 0.882477 0.532593\n0.642212 0.882782 0.532684\n0.684448 0.883118 0.532837\n0.725708 0.883362 0.533020\n0.764832 0.883667 0.533295\n0.800934 0.884003 0.533569\n0.833496 0.884247 0.533936\n0.862946 0.884583 0.534424\n0.889404 0.884918 0.535156\n0.912354 0.884460 0.535339\n0.933105 0.884125 0.535675\n0.951965 0.883698 0.536255\n0.969269 0.883423 0.536835\n0.985260 0.883179 0.537628\n1.000000 0.882690 0.538696\n1.000000 0.875488 0.556915\n0.133270 0.921082 0.546143\n0.170044 0.920105 0.545013\n0.202789 0.919312 0.543976\n0.232056 0.918549 0.542999\n0.258850 0.917877 0.541992\n0.283813 0.917267 0.541229\n0.307739 0.916626 0.540283\n0.331299 0.916046 0.539337\n0.354980 0.915375 0.538422\n0.379364 0.914734 0.537506\n0.404877 0.913971 0.536469\n0.431885 0.913177 0.535431\n0.460693 0.912262 0.534271\n0.491638 0.911224 0.533051\n0.524902 0.910065 0.531769\n0.562469 0.910065 0.531647\n0.602783 0.910278 0.531769\n0.644287 0.910492 0.531952\n0.686127 0.910736 0.532227\n0.727020 0.910919 0.532532\n0.765686 0.911133 0.532898\n0.801331 0.911377 0.533356\n0.833862 0.911713 0.534271\n0.863007 0.912079 0.535309\n0.889160 0.912384 0.536469\n0.912720 0.912720 0.537750\n0.933258 0.912231 0.538330\n0.951996 0.911774 0.539001\n0.969238 0.911346 0.539764\n0.985199 0.910950 0.540649\n1.000000 0.910492 0.541748\n1.000000 0.901489 0.560059\n0.140381 0.946411 0.545074\n0.176117 0.945435 0.543793\n0.207886 0.944611 0.542877\n0.236328 0.943817 0.541809\n0.262512 0.943115 0.540771\n0.287109 0.942444 0.539917\n0.310730 0.941772 0.538971\n0.334076 0.941162 0.538086\n0.357605 0.940521 0.537231\n0.381927 0.939789 0.536285\n0.407440 0.939026 0.535339\n0.434418 0.938202 0.534302\n0.463257 0.937225 0.533295\n0.494171 0.936188 0.532196\n0.527374 0.935059 0.530884\n0.564911 0.935059 0.530975\n0.604950 0.935242 0.531219\n0.646271 0.935394 0.531555\n0.687653 0.935577 0.531921\n0.728088 0.935669 0.532349\n0.766846 0.935913 0.533295\n0.802155 0.936218 0.534332\n0.834015 0.936432 0.535461\n0.862732 0.936615 0.536743\n0.888519 0.936890 0.538086\n0.911865 0.937073 0.539551\n0.933167 0.937286 0.541077\n0.951965 0.936951 0.542053\n0.969147 0.936371 0.542908\n0.985107 0.935974 0.543823\n1.000000 0.935455 0.544861\n1.000000 0.924835 0.563293\n0.147308 0.969025 0.543823\n0.181976 0.968079 0.542725\n0.212738 0.967255 0.541565\n0.240479 0.966522 0.540619\n0.266113 0.965790 0.539642\n0.290253 0.965088 0.538696\n0.313599 0.964478 0.537872\n0.336761 0.963806 0.537048\n0.360199 0.963135 0.536133\n0.384460 0.962372 0.535217\n0.409912 0.961609 0.534454\n0.436829 0.960724 0.533508\n0.465637 0.959778 0.532440\n0.496490 0.958771 0.531433\n0.529602 0.957611 0.530304\n0.567139 0.957672 0.530640\n0.606934 0.957794 0.531036\n0.647858 0.957916 0.531433\n0.689514 0.958069 0.532349\n0.729767 0.958191 0.533356\n0.767639 0.958344 0.534515\n0.802368 0.958496 0.535797\n0.833740 0.958618 0.537170\n0.862030 0.958740 0.538605\n0.887756 0.958862 0.540131\n0.910980 0.958984 0.541687\n0.932190 0.959106 0.543274\n0.951599 0.959229 0.544952\n0.969116 0.958954 0.546143\n0.985077 0.958466 0.547180\n0.999969 0.958008 0.548126\n1.000000 0.946045 0.566711\n0.153992 0.989471 0.542694\n0.187531 0.988525 0.541504\n0.217407 0.987732 0.540375\n0.244446 0.987000 0.539337\n0.269501 0.986298 0.538422\n0.293243 0.985626 0.537628\n0.316376 0.984985 0.536896\n0.339325 0.984283 0.535980\n0.362610 0.983643 0.535248\n0.386780 0.982880 0.534485\n0.412170 0.982086 0.533569\n0.439056 0.981232 0.532837\n0.467834 0.980286 0.531952\n0.498566 0.979248 0.531036\n0.531677 0.978180 0.530121\n0.569061 0.978210 0.530548\n0.609314 0.978302 0.531403\n0.650238 0.978424 0.532440\n0.691132 0.978485 0.533630\n0.730499 0.978546 0.534882\n0.767731 0.978607 0.536255\n0.801910 0.978668 0.537720\n0.833038 0.978760 0.539215\n0.861267 0.978790 0.540771\n0.886841 0.978851 0.542419\n0.910217 0.978882 0.544006\n0.931427 0.978943 0.545685\n0.950867 0.979004 0.547333\n0.968750 0.979095 0.549042\n0.985077 0.978912 0.550659\n0.999939 0.978394 0.552155\n1.000000 0.965637 0.571228\n0.171844 1.000000 0.542450\n0.202850 1.000000 0.541534\n0.230621 1.000000 0.540833\n0.255890 1.000000 0.539948\n0.279480 1.000000 0.539215\n0.301819 1.000000 0.538361\n0.323730 1.000000 0.537537\n0.345612 1.000000 0.536743\n0.367828 1.000000 0.535889\n0.390991 1.000000 0.534790\n0.415253 1.000000 0.533630\n0.441071 1.000000 0.532379\n0.469696 0.999115 0.531647\n0.500305 0.998047 0.530884\n0.534119 0.997070 0.530548\n0.571838 0.997131 0.531616\n0.611206 0.997131 0.532745\n0.651428 0.997162 0.534027\n0.691406 0.997162 0.535400\n0.730377 0.997162 0.536774\n0.767273 0.997162 0.538330\n0.801270 0.997162 0.539917\n0.832336 0.997192 0.541473\n0.860535 0.997192 0.543152\n0.886108 0.997131 0.544830\n0.909424 0.997162 0.546478\n0.930756 0.997162 0.548157\n0.950226 0.997192 0.549988\n0.968109 0.997192 0.552246\n0.984650 0.997162 0.554688\n0.999847 0.997040 0.557098\n1.000000 0.983459 0.576172\n0.202850 1.000000 0.544708\n0.232422 1.000000 0.544830\n0.259003 1.000000 0.544800\n0.283295 1.000000 0.544769\n0.306061 1.000000 0.544891\n0.327728 1.000000 0.544983\n0.349030 1.000000 0.545197\n0.370331 1.000000 0.545380\n0.392090 1.000000 0.545593\n0.414703 1.000000 0.545898\n0.438538 1.000000 0.546265\n0.463806 1.000000 0.546692\n0.491516 1.000000 0.547516\n0.521240 1.000000 0.548553\n0.553711 1.000000 0.549652\n0.588379 1.000000 0.550903\n0.624664 1.000000 0.552216\n0.661560 1.000000 0.553619\n0.698273 1.000000 0.555084\n0.734192 1.000000 0.556610\n0.768188 1.000000 0.558197\n0.799652 1.000000 0.559845\n0.828400 1.000000 0.561432\n0.854675 1.000000 0.563080\n0.878601 1.000000 0.564667\n0.900513 1.000000 0.566498\n0.920532 1.000000 0.568695\n0.938812 1.000000 0.571045\n0.955719 1.000000 0.573517\n0.971466 1.000000 0.576111\n0.986115 1.000000 0.578613\n1.000000 1.000000 0.580780\n0.000000 0.011505 0.537964\n0.033844 0.000000 0.552795\n0.081329 0.003479 0.555908\n0.126221 0.007385 0.558502\n0.167755 0.011108 0.560852\n0.205078 0.013916 0.562469\n0.238068 0.015656 0.563416\n0.267609 0.017242 0.564331\n0.295105 0.018738 0.565277\n0.321045 0.020294 0.566162\n0.346527 0.021820 0.567017\n0.372223 0.023315 0.567841\n0.398682 0.024811 0.568665\n0.426514 0.026245 0.569427\n0.456451 0.027771 0.570190\n0.488800 0.029205 0.570953\n0.524750 0.030762 0.571625\n0.565735 0.032379 0.572357\n0.609589 0.032196 0.571564\n0.655823 0.031769 0.570496\n0.703552 0.031403 0.569519\n0.750549 0.031097 0.568329\n0.794861 0.031006 0.567444\n0.834930 0.031189 0.566437\n0.870422 0.031647 0.565735\n0.901703 0.032043 0.564911\n0.929199 0.032593 0.564240\n0.953522 0.033356 0.563568\n0.975189 0.034210 0.563171\n0.994629 0.035187 0.562622\n1.000000 0.054932 0.561371\n1.000000 0.081696 0.560852\n0.000000 0.050568 0.545197\n0.034119 0.041046 0.557587\n0.081665 0.044220 0.559662\n0.126312 0.047028 0.561371\n0.167236 0.048584 0.562347\n0.203857 0.050110 0.563293\n0.236572 0.051636 0.564209\n0.266144 0.053009 0.565063\n0.293610 0.054504 0.565918\n0.319763 0.055908 0.566772\n0.345215 0.057312 0.567596\n0.370941 0.058716 0.568359\n0.397400 0.060181 0.569153\n0.425354 0.061554 0.569855\n0.455261 0.063049 0.570587\n0.487701 0.064484 0.571259\n0.523560 0.066010 0.571960\n0.564606 0.067627 0.572601\n0.608917 0.067596 0.571838\n0.655823 0.067200 0.570709\n0.703766 0.066925 0.569672\n0.750885 0.066711 0.568451\n0.795319 0.066742 0.567413\n0.835205 0.066833 0.566467\n0.870483 0.066956 0.565582\n0.901520 0.067383 0.564697\n0.928894 0.067993 0.564026\n0.953094 0.068787 0.563446\n0.974670 0.069702 0.562927\n0.993958 0.070709 0.562439\n1.000000 0.088959 0.561646\n1.000000 0.115082 0.561493\n0.000000 0.088440 0.551880\n0.035919 0.081299 0.561737\n0.081146 0.080994 0.561279\n0.125244 0.082520 0.562225\n0.165741 0.083893 0.563080\n0.202271 0.085266 0.563995\n0.235016 0.086670 0.564850\n0.264709 0.087982 0.565674\n0.292267 0.089355 0.566498\n0.318512 0.090698 0.567291\n0.343994 0.092010 0.568024\n0.369751 0.093353 0.568787\n0.396240 0.094788 0.569489\n0.424225 0.096161 0.570190\n0.454132 0.097626 0.570923\n0.486603 0.099091 0.571533\n0.522888 0.100677 0.572174\n0.564636 0.102325 0.572784\n0.609375 0.102295 0.572052\n0.656555 0.102020 0.570770\n0.704803 0.101807 0.569702\n0.751831 0.101471 0.568481\n0.795990 0.101257 0.567291\n0.835663 0.101318 0.566223\n0.870667 0.101562 0.565186\n0.901611 0.102051 0.564545\n0.928741 0.102631 0.563751\n0.952789 0.103455 0.563171\n0.974121 0.104462 0.562653\n0.993317 0.105438 0.562195\n1.000000 0.122253 0.561829\n1.000000 0.147736 0.562286\n0.000000 0.123810 0.555603\n0.036255 0.117371 0.563660\n0.081116 0.116943 0.563171\n0.123505 0.116974 0.562927\n0.164032 0.118256 0.563782\n0.200745 0.119568 0.564575\n0.233673 0.120819 0.565430\n0.263428 0.122040 0.566223\n0.290985 0.123322 0.566956\n0.317261 0.124664 0.567749\n0.342743 0.125916 0.568451\n0.368500 0.127289 0.569183\n0.395081 0.128601 0.569855\n0.423004 0.130035 0.570465\n0.453430 0.131531 0.571106\n0.486603 0.133057 0.571747\n0.523468 0.134644 0.572357\n0.565613 0.136322 0.572937\n0.610779 0.136383 0.572083\n0.658112 0.135986 0.570831\n0.706207 0.135590 0.569458\n0.753143 0.135223 0.568237\n0.797058 0.135162 0.566986\n0.836456 0.135193 0.566010\n0.871185 0.135498 0.565002\n0.901794 0.135986 0.564209\n0.928741 0.136627 0.563446\n0.952515 0.137421 0.562897\n0.973694 0.138336 0.562317\n0.992737 0.139282 0.561798\n1.000000 0.154755 0.561798\n1.000000 0.179474 0.562988\n0.000000 0.157745 0.557434\n0.035858 0.152252 0.565521\n0.080566 0.151947 0.564972\n0.122986 0.151550 0.564423\n0.162628 0.151703 0.564331\n0.199463 0.152893 0.565125\n0.232391 0.154114 0.565887\n0.262115 0.155334 0.566620\n0.289734 0.156555 0.567383\n0.315979 0.157806 0.568085\n0.341553 0.159088 0.568787\n0.367279 0.160461 0.569427\n0.394257 0.161804 0.570038\n0.422882 0.163300 0.570648\n0.453796 0.164795 0.571289\n0.487335 0.166382 0.571869\n0.524780 0.167999 0.572479\n0.567383 0.169586 0.572968\n0.612579 0.169342 0.571838\n0.660065 0.168884 0.570618\n0.708221 0.168488 0.569214\n0.755005 0.168213 0.567902\n0.798584 0.168182 0.566711\n0.837524 0.168243 0.565735\n0.871887 0.168579 0.564789\n0.902161 0.169098 0.563995\n0.928741 0.169739 0.563171\n0.952301 0.170441 0.562500\n0.973297 0.171356 0.561920\n0.992157 0.172211 0.561432\n1.000000 0.186310 0.561920\n1.000000 0.210358 0.563721\n0.000000 0.190918 0.558807\n0.035522 0.186371 0.567322\n0.080505 0.185883 0.566681\n0.122925 0.185547 0.566132\n0.162109 0.185028 0.565613\n0.198059 0.185425 0.565613\n0.231018 0.186584 0.566315\n0.260803 0.187744 0.567047\n0.288391 0.188995 0.567719\n0.314758 0.190277 0.568390\n0.340698 0.191620 0.569000\n0.367126 0.192932 0.569641\n0.394501 0.194336 0.570221\n0.423492 0.195831 0.570801\n0.454865 0.197449 0.571411\n0.488831 0.198853 0.571899\n0.526550 0.200287 0.572357\n0.569672 0.201813 0.572784\n0.615051 0.201447 0.571625\n0.662720 0.201111 0.570251\n0.710754 0.200745 0.568939\n0.757263 0.200531 0.567535\n0.800415 0.200409 0.566437\n0.838867 0.200562 0.565277\n0.872742 0.200836 0.564423\n0.902588 0.201324 0.563538\n0.928864 0.201935 0.562775\n0.952118 0.202576 0.562195\n0.972900 0.203400 0.561646\n0.991547 0.204193 0.561035\n1.000000 0.216949 0.561707\n1.000000 0.240326 0.564270\n0.000000 0.222900 0.560425\n0.035400 0.219513 0.568970\n0.080414 0.218903 0.568329\n0.122864 0.218475 0.567719\n0.162048 0.218170 0.567139\n0.197540 0.217926 0.566650\n0.229767 0.218353 0.566650\n0.259552 0.219482 0.567291\n0.287689 0.220764 0.567963\n0.314636 0.222015 0.568604\n0.340942 0.223328 0.569214\n0.367767 0.224792 0.569824\n0.395508 0.226257 0.570404\n0.424927 0.227631 0.570892\n0.456543 0.228973 0.571350\n0.490906 0.230347 0.571777\n0.529144 0.231750 0.572174\n0.572662 0.233276 0.572662\n0.618225 0.232880 0.571259\n0.665924 0.232513 0.569885\n0.713684 0.232117 0.568542\n0.759827 0.231903 0.567139\n0.802399 0.231903 0.565918\n0.840271 0.231934 0.564850\n0.873688 0.232208 0.564026\n0.903137 0.232697 0.563171\n0.929016 0.233185 0.562378\n0.951996 0.233826 0.561829\n0.972534 0.234558 0.561249\n0.990997 0.235229 0.560638\n1.000000 0.246704 0.561584\n1.000000 0.269318 0.564911\n0.000000 0.254089 0.561981\n0.035339 0.251648 0.570557\n0.080322 0.251068 0.569885\n0.122772 0.250763 0.569214\n0.161987 0.250305 0.568573\n0.197510 0.250183 0.568085\n0.229767 0.250153 0.567627\n0.259613 0.250549 0.567566\n0.288116 0.251831 0.568207\n0.315277 0.253143 0.568787\n0.342041 0.254578 0.569366\n0.369080 0.255890 0.569855\n0.397034 0.257111 0.570312\n0.426697 0.258453 0.570740\n0.458740 0.259796 0.571198\n0.493561 0.261261 0.571594\n0.532440 0.262695 0.572021\n0.576233 0.264008 0.572235\n0.621918 0.263641 0.570831\n0.669525 0.263214 0.569519\n0.717010 0.262878 0.568085\n0.762634 0.262665 0.566650\n0.804565 0.262634 0.565521\n0.841797 0.262695 0.564514\n0.874695 0.262939 0.563477\n0.903656 0.263367 0.562653\n0.929169 0.263794 0.561981\n0.951843 0.264374 0.561340\n0.972107 0.265015 0.560760\n0.990417 0.265656 0.560120\n1.000000 0.275879 0.561310\n1.000000 0.297760 0.565369\n0.000000 0.284576 0.563446\n0.035278 0.283356 0.572052\n0.080261 0.282715 0.571350\n0.122711 0.282379 0.570648\n0.162598 0.282043 0.569946\n0.199036 0.281921 0.569366\n0.231659 0.281860 0.568878\n0.261414 0.282074 0.568481\n0.289337 0.282562 0.568329\n0.316742 0.283844 0.568817\n0.343567 0.285034 0.569275\n0.370850 0.286285 0.569733\n0.399139 0.287628 0.570129\n0.429230 0.288971 0.570587\n0.461700 0.290344 0.570984\n0.496826 0.291718 0.571350\n0.536224 0.293182 0.571747\n0.580139 0.294281 0.571747\n0.626007 0.293945 0.570435\n0.673431 0.293610 0.568970\n0.720520 0.293243 0.567596\n0.765564 0.292999 0.566193\n0.806763 0.292969 0.565063\n0.843323 0.292999 0.563904\n0.875641 0.293274 0.563019\n0.904144 0.293610 0.562164\n0.929352 0.294006 0.561371\n0.951691 0.294495 0.560822\n0.971710 0.294983 0.560211\n0.989838 0.295593 0.559540\n1.000000 0.304565 0.561005\n1.000000 0.325867 0.565887\n0.000000 0.314789 0.564850\n0.035187 0.314636 0.573456\n0.080994 0.314240 0.572693\n0.124695 0.313812 0.571899\n0.165222 0.313538 0.571198\n0.201904 0.313416 0.570557\n0.234680 0.313477 0.569977\n0.264465 0.313629 0.569489\n0.292053 0.313751 0.569000\n0.318634 0.314117 0.568665\n0.345734 0.315369 0.569122\n0.373169 0.316650 0.569519\n0.401794 0.317963 0.569946\n0.432251 0.319336 0.570312\n0.464966 0.320679 0.570679\n0.500580 0.322113 0.571075\n0.540466 0.323547 0.571411\n0.584503 0.324493 0.571320\n0.630341 0.324127 0.569885\n0.677490 0.323761 0.568451\n0.724121 0.323395 0.567078\n0.768463 0.323212 0.565704\n0.808960 0.323120 0.564545\n0.844849 0.323181 0.563446\n0.876587 0.323364 0.562500\n0.904572 0.323639 0.561737\n0.929382 0.323975 0.560883\n0.951447 0.324432 0.560303\n0.971252 0.324860 0.559570\n0.989197 0.325317 0.558929\n1.000000 0.333069 0.560547\n1.000000 0.353699 0.566406\n0.000000 0.345215 0.566864\n0.037506 0.345947 0.574738\n0.084290 0.345520 0.573883\n0.128387 0.345123 0.573029\n0.169250 0.345001 0.572296\n0.205872 0.344940 0.571594\n0.238342 0.344879 0.570923\n0.267975 0.344971 0.570374\n0.295624 0.345123 0.569855\n0.322083 0.345367 0.569275\n0.348389 0.345795 0.568848\n0.376099 0.347137 0.569244\n0.404968 0.348450 0.569641\n0.435699 0.349823 0.569977\n0.468719 0.351166 0.570343\n0.504730 0.352600 0.570709\n0.545135 0.354004 0.571045\n0.589081 0.354706 0.570648\n0.634888 0.354340 0.569244\n0.681702 0.353973 0.567810\n0.727692 0.353638 0.566406\n0.771362 0.353394 0.565063\n0.811035 0.353302 0.563843\n0.846222 0.353333 0.562775\n0.877411 0.353485 0.561920\n0.904907 0.353668 0.561035\n0.929321 0.353973 0.560333\n0.951111 0.354340 0.559479\n0.970703 0.354706 0.558868\n0.988525 0.355042 0.558289\n1.000000 0.361633 0.559845\n1.000000 0.381653 0.566559\n0.000000 0.376587 0.571075\n0.042084 0.377533 0.575928\n0.089386 0.377228 0.575012\n0.133667 0.376831 0.574066\n0.174133 0.376617 0.573181\n0.210419 0.376465 0.572418\n0.242706 0.376434 0.571716\n0.272186 0.376617 0.571136\n0.299744 0.376862 0.570587\n0.326202 0.377197 0.570007\n0.352509 0.377502 0.569458\n0.379395 0.377869 0.568909\n0.408447 0.379211 0.569244\n0.439484 0.380585 0.569611\n0.472900 0.381897 0.569946\n0.509125 0.383301 0.570251\n0.549896 0.384674 0.570587\n0.593811 0.385132 0.569946\n0.639435 0.384796 0.568542\n0.685791 0.384430 0.567078\n0.731171 0.384064 0.565704\n0.774048 0.383850 0.564362\n0.812958 0.383728 0.563202\n0.847443 0.383698 0.562164\n0.878021 0.383820 0.561188\n0.905090 0.383972 0.560394\n0.929169 0.384186 0.559570\n0.950714 0.384430 0.558807\n0.970154 0.384705 0.558136\n0.987823 0.385040 0.557373\n1.000000 0.390442 0.558929\n1.000000 0.409912 0.566742\n0.000000 0.409576 0.576874\n0.048431 0.409515 0.576874\n0.095581 0.409088 0.575867\n0.139648 0.408630 0.574829\n0.179962 0.408478 0.573944\n0.215881 0.408478 0.573151\n0.247833 0.408539 0.572449\n0.276978 0.408813 0.571838\n0.304382 0.409088 0.571289\n0.330719 0.409424 0.570679\n0.357056 0.409729 0.570099\n0.383972 0.410095 0.569427\n0.412231 0.410431 0.568787\n0.443542 0.411774 0.569122\n0.477142 0.413055 0.569427\n0.513733 0.414398 0.569733\n0.554810 0.415771 0.570038\n0.598511 0.416016 0.569244\n0.643829 0.415619 0.567749\n0.689636 0.415222 0.566345\n0.734375 0.414886 0.564972\n0.776459 0.414612 0.563568\n0.814575 0.414490 0.562408\n0.848419 0.414429 0.561401\n0.878479 0.414459 0.560425\n0.905121 0.414520 0.559509\n0.928925 0.414703 0.558716\n0.950226 0.414948 0.557892\n0.969482 0.415161 0.557129\n0.987061 0.415405 0.556366\n1.000000 0.419678 0.557648\n1.000000 0.438599 0.566803\n0.006012 0.442322 0.578735\n0.055786 0.441864 0.577667\n0.103058 0.441467 0.576538\n0.146851 0.441162 0.575531\n0.186737 0.441101 0.574615\n0.222015 0.441071 0.573792\n0.253418 0.441254 0.573120\n0.282288 0.441528 0.572510\n0.309357 0.441864 0.571930\n0.335602 0.442230 0.571320\n0.361877 0.442566 0.570679\n0.388855 0.442871 0.570007\n0.417236 0.443176 0.569244\n0.447693 0.443512 0.568542\n0.481506 0.444763 0.568848\n0.518341 0.446045 0.569122\n0.559631 0.447327 0.569336\n0.602997 0.447327 0.568329\n0.647949 0.446960 0.566895\n0.693207 0.446533 0.565430\n0.737244 0.446198 0.564026\n0.778564 0.445862 0.562775\n0.815826 0.445709 0.561584\n0.849091 0.445557 0.560486\n0.878723 0.445557 0.559448\n0.905029 0.445587 0.558594\n0.928589 0.445740 0.557709\n0.949768 0.445923 0.556793\n0.968811 0.446136 0.555969\n0.986267 0.446411 0.555176\n1.000000 0.449493 0.556091\n1.000000 0.467834 0.566742\n0.014740 0.475342 0.579376\n0.064636 0.474945 0.578308\n0.111694 0.474670 0.577179\n0.155029 0.474457 0.576141\n0.194061 0.474335 0.575195\n0.228607 0.474457 0.574432\n0.259399 0.474701 0.573730\n0.287811 0.475006 0.573090\n0.314545 0.475342 0.572479\n0.340637 0.475708 0.571838\n0.366913 0.476105 0.571228\n0.393890 0.476379 0.570526\n0.422363 0.476593 0.569763\n0.452850 0.476776 0.568817\n0.485809 0.477081 0.568115\n0.522858 0.478302 0.568420\n0.564270 0.479492 0.568604\n0.607178 0.479279 0.567383\n0.651703 0.478912 0.565918\n0.696350 0.478455 0.564484\n0.739655 0.478027 0.563110\n0.780182 0.477753 0.561829\n0.816864 0.477417 0.560547\n0.849640 0.477356 0.559418\n0.878876 0.477295 0.558411\n0.904907 0.477356 0.557373\n0.928223 0.477448 0.556488\n0.949158 0.477570 0.555511\n0.968109 0.477783 0.554688\n0.985443 0.478027 0.553802\n1.000000 0.479858 0.554169\n1.000000 0.497711 0.566711\n0.024963 0.509277 0.580017\n0.074677 0.509064 0.578827\n0.121246 0.508789 0.577698\n0.163818 0.508636 0.576691\n0.201935 0.508636 0.575775\n0.235535 0.508759 0.574982\n0.265594 0.509033 0.574280\n0.293518 0.509338 0.573608\n0.319916 0.509674 0.573029\n0.345825 0.510071 0.572388\n0.371979 0.510376 0.571716\n0.398987 0.510742 0.570984\n0.427521 0.510864 0.570129\n0.458008 0.511017 0.569214\n0.490753 0.510895 0.568146\n0.527130 0.511322 0.567535\n0.568481 0.512451 0.567749\n0.610931 0.512024 0.566315\n0.654968 0.511536 0.564880\n0.698944 0.511047 0.563416\n0.741669 0.510651 0.562012\n0.781677 0.510254 0.560608\n0.817780 0.509949 0.559357\n0.850128 0.509857 0.558197\n0.878967 0.509827 0.557098\n0.904694 0.509796 0.556061\n0.927765 0.509888 0.555054\n0.948486 0.510010 0.554138\n0.967285 0.510162 0.553223\n0.984497 0.510376 0.552460\n1.000000 0.511047 0.552094\n1.000000 0.528992 0.566711\n0.036407 0.546021 0.580505\n0.085632 0.545624 0.579346\n0.131439 0.545471 0.578217\n0.173004 0.545319 0.577179\n0.209930 0.545380 0.576263\n0.242493 0.545563 0.575470\n0.271912 0.545776 0.574768\n0.299255 0.546112 0.574097\n0.325317 0.546509 0.573486\n0.351013 0.546875 0.572815\n0.377045 0.547180 0.572144\n0.404053 0.547394 0.571381\n0.432526 0.547516 0.570526\n0.462982 0.547546 0.569550\n0.495697 0.547424 0.568481\n0.531647 0.547119 0.567230\n0.572021 0.547455 0.566620\n0.614105 0.546875 0.565155\n0.657806 0.546356 0.563660\n0.701385 0.545776 0.562164\n0.743591 0.545258 0.560699\n0.783051 0.544861 0.559235\n0.818634 0.544556 0.557983\n0.850525 0.544373 0.556702\n0.878967 0.544250 0.555573\n0.904388 0.544250 0.554596\n0.927216 0.544250 0.553528\n0.947784 0.544403 0.552734\n0.966400 0.544495 0.551788\n0.983582 0.544678 0.550934\n0.999359 0.544830 0.550201\n1.000000 0.562500 0.566711\n0.048431 0.585236 0.580719\n0.096893 0.584900 0.579559\n0.141724 0.584625 0.578369\n0.182037 0.584473 0.577362\n0.217621 0.584503 0.576447\n0.249237 0.584656 0.575562\n0.277771 0.584839 0.574860\n0.304504 0.585083 0.574188\n0.330139 0.585358 0.573456\n0.355560 0.585602 0.572723\n0.381470 0.585846 0.572021\n0.408325 0.585907 0.571198\n0.436768 0.585968 0.570282\n0.467133 0.585785 0.569275\n0.499695 0.585480 0.568085\n0.535583 0.585022 0.566803\n0.575531 0.584839 0.565735\n0.617950 0.584564 0.564606\n0.661377 0.584045 0.563080\n0.704620 0.583435 0.561554\n0.746368 0.582886 0.560089\n0.785309 0.582428 0.558655\n0.820404 0.582184 0.557373\n0.851837 0.581879 0.556213\n0.879944 0.581787 0.555084\n0.905090 0.581696 0.554108\n0.927704 0.581787 0.553162\n0.948059 0.581879 0.552307\n0.966553 0.582001 0.551483\n0.983582 0.582184 0.550751\n0.999298 0.582275 0.550079\n1.000000 0.597809 0.566772\n0.059418 0.625183 0.579529\n0.106934 0.624786 0.578339\n0.150543 0.624481 0.577271\n0.189484 0.624329 0.576111\n0.223846 0.624298 0.575317\n0.254364 0.624359 0.574463\n0.282288 0.624512 0.573700\n0.308441 0.624695 0.573059\n0.333679 0.624847 0.572388\n0.358917 0.625031 0.571625\n0.384613 0.625122 0.570862\n0.411377 0.625092 0.570007\n0.439728 0.624969 0.569122\n0.470062 0.624725 0.568054\n0.502625 0.624298 0.566833\n0.538666 0.623749 0.565430\n0.578735 0.623657 0.564484\n0.622345 0.624603 0.564484\n0.665649 0.624023 0.563049\n0.708466 0.623291 0.561462\n0.749725 0.622650 0.559967\n0.788055 0.622223 0.558563\n0.822571 0.621704 0.557281\n0.853577 0.621521 0.556091\n0.881317 0.621277 0.554993\n0.906158 0.621185 0.554016\n0.928467 0.621124 0.553101\n0.948578 0.621124 0.552277\n0.966949 0.621277 0.551544\n0.983765 0.621368 0.550842\n0.999390 0.621429 0.550232\n1.000000 0.634216 0.566986\n0.070557 0.666229 0.578308\n0.116943 0.665833 0.577179\n0.159271 0.665497 0.576050\n0.196686 0.665283 0.575012\n0.229767 0.665131 0.574127\n0.259277 0.665100 0.573273\n0.286499 0.665192 0.572601\n0.312134 0.665314 0.571899\n0.336975 0.665375 0.571198\n0.361938 0.665405 0.570496\n0.387421 0.665375 0.569672\n0.414062 0.665161 0.568848\n0.442383 0.664917 0.567841\n0.472809 0.664551 0.566711\n0.505554 0.664001 0.565399\n0.541748 0.663361 0.563934\n0.582031 0.663300 0.563141\n0.625488 0.664215 0.563110\n0.669800 0.664856 0.562897\n0.712189 0.664062 0.561310\n0.752899 0.663422 0.559814\n0.790710 0.662811 0.558380\n0.824707 0.662354 0.557129\n0.855255 0.662018 0.555969\n0.882599 0.661743 0.554932\n0.907074 0.661560 0.553986\n0.929169 0.661438 0.553131\n0.949097 0.661407 0.552338\n0.967285 0.661469 0.551666\n0.984009 0.661407 0.551025\n0.999481 0.661438 0.550446\n1.000000 0.671356 0.567322\n0.081696 0.707764 0.577118\n0.126709 0.707214 0.575928\n0.167389 0.706787 0.574768\n0.203461 0.706451 0.573761\n0.235291 0.706299 0.572998\n0.263855 0.706177 0.572174\n0.290344 0.706146 0.571381\n0.315430 0.706085 0.570740\n0.339935 0.706024 0.570038\n0.364532 0.705933 0.569305\n0.389954 0.705750 0.568481\n0.416626 0.705414 0.567505\n0.445068 0.705078 0.566467\n0.475555 0.704559 0.565216\n0.508484 0.703888 0.563873\n0.544830 0.703064 0.562347\n0.585266 0.703156 0.561646\n0.628540 0.703979 0.561615\n0.672699 0.704742 0.561554\n0.715851 0.705109 0.561127\n0.756104 0.704376 0.559631\n0.793274 0.703644 0.558289\n0.826752 0.703125 0.557037\n0.856842 0.702667 0.555908\n0.883789 0.702393 0.554932\n0.908020 0.702057 0.554016\n0.929779 0.701965 0.553223\n0.949585 0.701782 0.552521\n0.967560 0.701630 0.551910\n0.984161 0.701660 0.551361\n0.999512 0.701569 0.550903\n1.000000 0.708496 0.567841\n0.092438 0.748688 0.575745\n0.136017 0.748047 0.574615\n0.175171 0.747498 0.573547\n0.209686 0.747131 0.572571\n0.240295 0.746857 0.571777\n0.267914 0.746674 0.571045\n0.293701 0.746521 0.570374\n0.318268 0.746307 0.569611\n0.342468 0.746063 0.568817\n0.367035 0.745850 0.567993\n0.392487 0.745575 0.567139\n0.419189 0.745117 0.566101\n0.447815 0.744659 0.564941\n0.478455 0.743988 0.563629\n0.511475 0.743256 0.562256\n0.547913 0.742340 0.560760\n0.588409 0.742493 0.560181\n0.631470 0.743225 0.560150\n0.675232 0.743896 0.560089\n0.718353 0.744598 0.560059\n0.759033 0.744751 0.559479\n0.795624 0.743958 0.558167\n0.828644 0.743317 0.557007\n0.858337 0.742889 0.555939\n0.884918 0.742432 0.555023\n0.908844 0.742096 0.554169\n0.930420 0.741760 0.553467\n0.949982 0.741577 0.552856\n0.967804 0.741364 0.552307\n0.984283 0.741333 0.551880\n0.999573 0.741180 0.551544\n1.000000 0.745392 0.568787\n0.102570 0.788330 0.574524\n0.144592 0.787628 0.573486\n0.182129 0.787018 0.572357\n0.215179 0.786530 0.571503\n0.244629 0.786133 0.570648\n0.271423 0.785797 0.569885\n0.296600 0.785492 0.569122\n0.320953 0.785187 0.568268\n0.345032 0.784912 0.567474\n0.369568 0.784546 0.566528\n0.395020 0.784119 0.565552\n0.421875 0.783630 0.564545\n0.450562 0.782990 0.563385\n0.481293 0.782257 0.562073\n0.514404 0.781403 0.560638\n0.550903 0.780365 0.559082\n0.591522 0.780609 0.558746\n0.634338 0.781250 0.558716\n0.677704 0.781860 0.558685\n0.720337 0.782440 0.558655\n0.760925 0.782990 0.558685\n0.797913 0.783020 0.558167\n0.830414 0.782257 0.557068\n0.859680 0.781738 0.556091\n0.885925 0.781250 0.555237\n0.909607 0.780823 0.554504\n0.930939 0.780365 0.553864\n0.950348 0.780121 0.553375\n0.968079 0.779938 0.552979\n0.984436 0.779938 0.552856\n0.999634 0.780151 0.552979\n1.000000 0.781372 0.570557\n0.111969 0.825958 0.573303\n0.152313 0.825134 0.572235\n0.188263 0.824432 0.571259\n0.219910 0.823883 0.570282\n0.248444 0.823425 0.569489\n0.274719 0.822937 0.568542\n0.299591 0.822540 0.567749\n0.323700 0.822174 0.566956\n0.347687 0.821716 0.566071\n0.372192 0.821289 0.565125\n0.397644 0.820740 0.564148\n0.424591 0.820160 0.563049\n0.453308 0.819458 0.561798\n0.484100 0.818604 0.560486\n0.517365 0.817657 0.559113\n0.553833 0.816589 0.557556\n0.594482 0.816925 0.557373\n0.636993 0.817383 0.557373\n0.680023 0.817932 0.557373\n0.722137 0.818390 0.557404\n0.762299 0.818909 0.557495\n0.799194 0.819336 0.557587\n0.832062 0.819336 0.557251\n0.860931 0.818634 0.556366\n0.886871 0.818085 0.555573\n0.910248 0.817596 0.554993\n0.931396 0.817261 0.554535\n0.950653 0.816956 0.554321\n0.968353 0.817017 0.554352\n0.984528 0.817047 0.554657\n0.999603 0.817047 0.554993\n1.000000 0.815430 0.572693\n0.120270 0.860901 0.572083\n0.159088 0.860046 0.571136\n0.193634 0.859283 0.570068\n0.224365 0.858643 0.569031\n0.252289 0.858063 0.568176\n0.278046 0.857544 0.567322\n0.302582 0.857025 0.566437\n0.326385 0.856567 0.565613\n0.350372 0.856079 0.564667\n0.374817 0.855530 0.563721\n0.400269 0.854889 0.562592\n0.427246 0.854187 0.561554\n0.456055 0.853363 0.560333\n0.486877 0.852509 0.559021\n0.520172 0.851440 0.557648\n0.556671 0.850342 0.556152\n0.597290 0.850739 0.556183\n0.639526 0.851135 0.556183\n0.682129 0.851532 0.556274\n0.723785 0.851898 0.556335\n0.763275 0.852325 0.556488\n0.799835 0.852692 0.556671\n0.832733 0.853088 0.556885\n0.862000 0.853180 0.556824\n0.887665 0.852478 0.556213\n0.910919 0.851990 0.555908\n0.931976 0.851898 0.555908\n0.951019 0.851624 0.556061\n0.968445 0.851440 0.556366\n0.984558 0.851288 0.556793\n0.999573 0.851105 0.557343\n1.000000 0.846954 0.575104\n0.127655 0.892731 0.571045\n0.165344 0.891785 0.569855\n0.198792 0.890991 0.568787\n0.228790 0.890289 0.567810\n0.256042 0.889648 0.566895\n0.281342 0.889099 0.566040\n0.305542 0.888489 0.565033\n0.329193 0.888000 0.564240\n0.352997 0.887390 0.563171\n0.377441 0.886719 0.562225\n0.402924 0.886047 0.561249\n0.429901 0.885315 0.560120\n0.458771 0.884460 0.558899\n0.489655 0.883453 0.557678\n0.522919 0.882385 0.556244\n0.559509 0.881378 0.555023\n0.599976 0.881653 0.555115\n0.641876 0.881958 0.555206\n0.684021 0.882294 0.555359\n0.725189 0.882568 0.555511\n0.764282 0.882904 0.555725\n0.800293 0.883179 0.556000\n0.832825 0.883453 0.556366\n0.862244 0.883850 0.556946\n0.888641 0.884155 0.557556\n0.911560 0.883728 0.557648\n0.932343 0.883392 0.557892\n0.951233 0.883057 0.558228\n0.968506 0.882660 0.558716\n0.984528 0.882416 0.559235\n0.999481 0.882141 0.559875\n1.000000 0.875671 0.577698\n0.134888 0.921112 0.569946\n0.171478 0.920166 0.568787\n0.203949 0.919342 0.567688\n0.233124 0.918610 0.566589\n0.259705 0.917938 0.565552\n0.284637 0.917297 0.564789\n0.308563 0.916687 0.563751\n0.331970 0.916107 0.562927\n0.355682 0.915466 0.561920\n0.380066 0.914795 0.560944\n0.405548 0.914062 0.559967\n0.432526 0.913208 0.558838\n0.461365 0.912262 0.557709\n0.492249 0.911255 0.556427\n0.525574 0.910126 0.555206\n0.562195 0.909271 0.554138\n0.602448 0.909485 0.554260\n0.643951 0.909698 0.554474\n0.685699 0.909943 0.554688\n0.726440 0.910126 0.554962\n0.765137 0.910370 0.555328\n0.800812 0.910614 0.555847\n0.833282 0.910980 0.556671\n0.862335 0.911346 0.557678\n0.888397 0.911682 0.558655\n0.911896 0.911987 0.559814\n0.932465 0.911499 0.560211\n0.951233 0.911072 0.560669\n0.968445 0.910583 0.561279\n0.984497 0.910278 0.561920\n0.999451 0.909912 0.562653\n1.000000 0.901611 0.580414\n0.141998 0.946381 0.568695\n0.177460 0.945465 0.567474\n0.208954 0.944611 0.566406\n0.237366 0.943848 0.565308\n0.263397 0.943146 0.564331\n0.287842 0.942474 0.563385\n0.311493 0.941833 0.562500\n0.334747 0.941193 0.561584\n0.358307 0.940521 0.560699\n0.382599 0.939819 0.559814\n0.408051 0.939056 0.558838\n0.435059 0.938263 0.557770\n0.463928 0.937286 0.556671\n0.494720 0.936249 0.555511\n0.527985 0.935089 0.554291\n0.564636 0.934296 0.553436\n0.604584 0.934448 0.553680\n0.645874 0.934601 0.553986\n0.687103 0.934753 0.554321\n0.727783 0.934967 0.554840\n0.766388 0.935211 0.555664\n0.801544 0.935455 0.556610\n0.833252 0.935669 0.557678\n0.861908 0.935883 0.558807\n0.887695 0.936127 0.559998\n0.911041 0.936340 0.561279\n0.932312 0.936523 0.562561\n0.951202 0.936218 0.563354\n0.968445 0.935699 0.564026\n0.984436 0.935272 0.564758\n0.999390 0.934814 0.565521\n1.000000 0.924896 0.583252\n0.148865 0.969025 0.567413\n0.183167 0.968109 0.566193\n0.213745 0.967285 0.565155\n0.241455 0.966522 0.564056\n0.266907 0.965820 0.563202\n0.290985 0.965118 0.562286\n0.314301 0.964508 0.561401\n0.337402 0.963806 0.560486\n0.360840 0.963165 0.559570\n0.385071 0.962402 0.558777\n0.410461 0.961609 0.557892\n0.437439 0.960754 0.556824\n0.466217 0.959808 0.555878\n0.497040 0.958771 0.554688\n0.530212 0.957642 0.553650\n0.566772 0.956848 0.553009\n0.606445 0.957001 0.553375\n0.647736 0.957153 0.553894\n0.689148 0.957306 0.554718\n0.729279 0.957489 0.555664\n0.766998 0.957611 0.556702\n0.801514 0.957733 0.557831\n0.832855 0.957886 0.559052\n0.861237 0.958008 0.560303\n0.886902 0.958160 0.561646\n0.910156 0.958282 0.562988\n0.931427 0.958435 0.564392\n0.950867 0.958557 0.565826\n0.968414 0.958344 0.566925\n0.984406 0.957825 0.567657\n0.999329 0.957336 0.568420\n1.000000 0.946136 0.586426\n0.155457 0.989441 0.566162\n0.188660 0.988525 0.565094\n0.218353 0.987732 0.564026\n0.245331 0.987000 0.563080\n0.270294 0.986298 0.562012\n0.294006 0.985626 0.561249\n0.317017 0.984985 0.560333\n0.339935 0.984314 0.559540\n0.363220 0.983612 0.558685\n0.387390 0.982880 0.557831\n0.412689 0.982086 0.557129\n0.439606 0.981232 0.556152\n0.468323 0.980286 0.555237\n0.499023 0.979248 0.554352\n0.532135 0.978119 0.553253\n0.568970 0.977478 0.552979\n0.609039 0.977600 0.553802\n0.649811 0.977661 0.554749\n0.690430 0.977722 0.555756\n0.729797 0.977844 0.556915\n0.766937 0.977875 0.558105\n0.801056 0.977966 0.559357\n0.832123 0.978027 0.560730\n0.860443 0.978088 0.562042\n0.886047 0.978149 0.563507\n0.909363 0.978210 0.565002\n0.930634 0.978271 0.566406\n0.950165 0.978333 0.567841\n0.968018 0.978455 0.569366\n0.984436 0.978302 0.570862\n0.999298 0.977783 0.572205\n1.000000 0.965668 0.590485\n0.173187 1.000000 0.565582\n0.203857 1.000000 0.564728\n0.231537 1.000000 0.563843\n0.256775 1.000000 0.563141\n0.280182 1.000000 0.562286\n0.302521 1.000000 0.561493\n0.324371 1.000000 0.560730\n0.346130 1.000000 0.559967\n0.368408 1.000000 0.559113\n0.391479 1.000000 0.558167\n0.415771 1.000000 0.557098\n0.441559 1.000000 0.555695\n0.470154 0.999115 0.554932\n0.500977 0.998047 0.554138\n0.534668 0.996979 0.553589\n0.571411 0.996399 0.553833\n0.610748 0.996399 0.554901\n0.650726 0.996429 0.556030\n0.690704 0.996429 0.557220\n0.729553 0.996460 0.558472\n0.766357 0.996460 0.559845\n0.800385 0.996460 0.561218\n0.831451 0.996460 0.562622\n0.859589 0.996460 0.564026\n0.885345 0.996460 0.565521\n0.908661 0.996490 0.566986\n0.929993 0.996490 0.568451\n0.949524 0.996521 0.570221\n0.967407 0.996552 0.572296\n0.983948 0.996582 0.574432\n0.999207 0.996460 0.576630\n1.000000 0.983521 0.594910\n0.204041 1.000000 0.566711\n0.233368 1.000000 0.566589\n0.259857 1.000000 0.566742\n0.284088 1.000000 0.566711\n0.306671 1.000000 0.566803\n0.328339 1.000000 0.566925\n0.349579 1.000000 0.567078\n0.370850 1.000000 0.567169\n0.392578 1.000000 0.567383\n0.415161 1.000000 0.567749\n0.438965 1.000000 0.568024\n0.464478 1.000000 0.568604\n0.492065 1.000000 0.569305\n0.521698 1.000000 0.570221\n0.554108 1.000000 0.571320\n0.588684 1.000000 0.572357\n0.624847 1.000000 0.573517\n0.661621 1.000000 0.574768\n0.698395 1.000000 0.576050\n0.734222 1.000000 0.577423\n0.768280 1.000000 0.578766\n0.799744 1.000000 0.580231\n0.828491 1.000000 0.581635\n0.854797 1.000000 0.583069\n0.878723 1.000000 0.584503\n0.900604 1.000000 0.586243\n0.920593 1.000000 0.588196\n0.938995 1.000000 0.590332\n0.955841 1.000000 0.592590\n0.971497 1.000000 0.594788\n0.986145 1.000000 0.597015\n1.000000 1.000000 0.598755\n0.000000 0.012634 0.564667\n0.032715 0.000000 0.580109\n0.080383 0.003723 0.582642\n0.125427 0.007538 0.584717\n0.166779 0.011139 0.586548\n0.204102 0.013397 0.587616\n0.236969 0.015045 0.588409\n0.266571 0.016663 0.589203\n0.294037 0.018188 0.589966\n0.320007 0.019684 0.590698\n0.345520 0.021179 0.591431\n0.371246 0.022675 0.592102\n0.397766 0.024170 0.592804\n0.425598 0.025665 0.593445\n0.455505 0.027100 0.594086\n0.487915 0.028656 0.594666\n0.523834 0.030243 0.595276\n0.564819 0.031799 0.595825\n0.609589 0.032837 0.595886\n0.655975 0.032501 0.594757\n0.703735 0.032013 0.593445\n0.750763 0.031799 0.592255\n0.795105 0.031769 0.591034\n0.835144 0.031952 0.590149\n0.870636 0.032379 0.589111\n0.901825 0.032745 0.588287\n0.929321 0.033356 0.587585\n0.953644 0.034088 0.586945\n0.975250 0.034912 0.586212\n0.994629 0.036011 0.585571\n1.000000 0.055756 0.583618\n1.000000 0.082458 0.581848\n0.000000 0.051361 0.571014\n0.033234 0.041138 0.583801\n0.080658 0.044281 0.585449\n0.125336 0.046417 0.586517\n0.166107 0.048004 0.587280\n0.202698 0.049530 0.588135\n0.235474 0.051025 0.588837\n0.265015 0.052460 0.589600\n0.292511 0.053894 0.590332\n0.318695 0.055267 0.591003\n0.344360 0.056732 0.591736\n0.369965 0.058105 0.592316\n0.396484 0.059540 0.592987\n0.424438 0.061005 0.593597\n0.454376 0.062469 0.594177\n0.486786 0.063965 0.594788\n0.522644 0.065552 0.595398\n0.563812 0.067139 0.595856\n0.609161 0.068237 0.595947\n0.656128 0.067902 0.594635\n0.704071 0.067596 0.593353\n0.751251 0.067413 0.592102\n0.795593 0.067444 0.590942\n0.835419 0.067383 0.589752\n0.870667 0.067627 0.588837\n0.901703 0.068085 0.587891\n0.929047 0.068726 0.587189\n0.953217 0.069519 0.586456\n0.974731 0.070435 0.585876\n0.993988 0.071472 0.585266\n1.000000 0.089813 0.583649\n1.000000 0.115814 0.582489\n0.000000 0.089172 0.576782\n0.034882 0.080627 0.586884\n0.080078 0.080505 0.586212\n0.124023 0.081848 0.587006\n0.164520 0.083252 0.587738\n0.201050 0.084686 0.588501\n0.233948 0.085999 0.589233\n0.263641 0.087372 0.589905\n0.291199 0.088715 0.590607\n0.317474 0.090057 0.591248\n0.343018 0.091370 0.591919\n0.368744 0.092773 0.592529\n0.395386 0.094177 0.593109\n0.423218 0.095642 0.593719\n0.453186 0.097046 0.594269\n0.485870 0.098602 0.594788\n0.522308 0.100220 0.595367\n0.564026 0.101837 0.595856\n0.609772 0.102936 0.595825\n0.657074 0.102692 0.594574\n0.705231 0.102417 0.593231\n0.752258 0.102081 0.591797\n0.796326 0.101929 0.590546\n0.835968 0.101959 0.589355\n0.870972 0.102264 0.588379\n0.901794 0.102692 0.587463\n0.928955 0.103394 0.586700\n0.952881 0.104279 0.586029\n0.974213 0.105164 0.585510\n0.993378 0.106201 0.584747\n1.000000 0.123077 0.583801\n1.000000 0.148376 0.583221\n0.000000 0.124084 0.579529\n0.035065 0.116669 0.588531\n0.079895 0.116455 0.587860\n0.122192 0.116333 0.587372\n0.162811 0.117645 0.588135\n0.199707 0.118896 0.588837\n0.232574 0.120178 0.589478\n0.262360 0.121399 0.590179\n0.290009 0.122711 0.590759\n0.316223 0.124054 0.591431\n0.341827 0.125336 0.592010\n0.367554 0.126678 0.592590\n0.394135 0.128113 0.593170\n0.422211 0.129547 0.593750\n0.452759 0.131073 0.594299\n0.485962 0.132599 0.594788\n0.522919 0.134247 0.595306\n0.565186 0.135956 0.595764\n0.611267 0.137054 0.595703\n0.658630 0.136597 0.594238\n0.706726 0.136078 0.592773\n0.753723 0.135834 0.591522\n0.797546 0.135712 0.590149\n0.836823 0.135834 0.588989\n0.871521 0.136139 0.588013\n0.902039 0.136658 0.587036\n0.928925 0.137329 0.586334\n0.952637 0.138184 0.585510\n0.973785 0.139038 0.584991\n0.992767 0.140045 0.584381\n1.000000 0.155518 0.583649\n1.000000 0.180145 0.583862\n0.000000 0.158020 0.580963\n0.034515 0.151764 0.590118\n0.079407 0.151337 0.589355\n0.121887 0.150970 0.588684\n0.161499 0.151093 0.588409\n0.198334 0.152252 0.589081\n0.231232 0.153503 0.589722\n0.261108 0.154694 0.590363\n0.288757 0.155914 0.590942\n0.314941 0.157227 0.591522\n0.340546 0.158508 0.592102\n0.366425 0.159912 0.592651\n0.393524 0.161346 0.593170\n0.422241 0.162811 0.593719\n0.453278 0.164337 0.594238\n0.486938 0.165955 0.594727\n0.524445 0.167694 0.595245\n0.567108 0.169098 0.595612\n0.613220 0.169922 0.595276\n0.660675 0.169434 0.593872\n0.708801 0.169067 0.592407\n0.755585 0.168884 0.591034\n0.799103 0.168762 0.589691\n0.837952 0.168915 0.588440\n0.872284 0.169281 0.587616\n0.902374 0.169769 0.586639\n0.928955 0.170410 0.585938\n0.952454 0.171234 0.585114\n0.973358 0.172028 0.584503\n0.992188 0.172943 0.583862\n1.000000 0.187012 0.583618\n1.000000 0.210999 0.584473\n0.000000 0.191040 0.582123\n0.034332 0.185822 0.591614\n0.079315 0.185272 0.590851\n0.121826 0.184906 0.590118\n0.161072 0.184509 0.589447\n0.197021 0.184845 0.589294\n0.229950 0.185974 0.589844\n0.259888 0.187195 0.590485\n0.287506 0.188416 0.591064\n0.313843 0.189697 0.591583\n0.340057 0.191071 0.592133\n0.366425 0.192444 0.592621\n0.393921 0.193909 0.593170\n0.423096 0.195435 0.593689\n0.454590 0.197052 0.594177\n0.488556 0.198395 0.594543\n0.526367 0.199890 0.594910\n0.569458 0.201355 0.595276\n0.615814 0.202057 0.594818\n0.663452 0.201630 0.593384\n0.711487 0.201294 0.591919\n0.757904 0.201141 0.590454\n0.800934 0.201019 0.589264\n0.839294 0.201202 0.588135\n0.873138 0.201477 0.587158\n0.902863 0.201965 0.586151\n0.929047 0.202576 0.585358\n0.952301 0.203308 0.584656\n0.972961 0.204071 0.583984\n0.991608 0.204865 0.583405\n1.000000 0.217590 0.583405\n1.000000 0.240875 0.584869\n0.000000 0.222931 0.583466\n0.034271 0.218781 0.593018\n0.079285 0.218384 0.592224\n0.121765 0.217834 0.591461\n0.161011 0.217590 0.590729\n0.196533 0.217316 0.590088\n0.228760 0.217743 0.589996\n0.258667 0.218964 0.590485\n0.286987 0.220215 0.591064\n0.313904 0.221527 0.591583\n0.340424 0.222900 0.592102\n0.367249 0.224304 0.592621\n0.395172 0.225800 0.593109\n0.424530 0.227142 0.593506\n0.456177 0.228485 0.593872\n0.490692 0.229919 0.594269\n0.529083 0.231384 0.594574\n0.572601 0.232880 0.594910\n0.619110 0.233429 0.594299\n0.666687 0.233032 0.592865\n0.714539 0.232697 0.591400\n0.760498 0.232513 0.589996\n0.803009 0.232422 0.588623\n0.840759 0.232574 0.587463\n0.874115 0.232910 0.586609\n0.903381 0.233246 0.585663\n0.929230 0.233826 0.584778\n0.952118 0.234436 0.584045\n0.972626 0.235168 0.583435\n0.991058 0.235901 0.582733\n1.000000 0.247345 0.583130\n1.000000 0.269928 0.585358\n0.000000 0.253998 0.584808\n0.034241 0.251068 0.594360\n0.079224 0.250519 0.593506\n0.121674 0.250092 0.592712\n0.160950 0.249817 0.591949\n0.196594 0.249664 0.591309\n0.229034 0.249634 0.590698\n0.258942 0.250031 0.590546\n0.287506 0.251312 0.591064\n0.314758 0.252716 0.591583\n0.341675 0.254150 0.592072\n0.368683 0.255341 0.592468\n0.396667 0.256683 0.592865\n0.426453 0.257996 0.593170\n0.458618 0.259369 0.593536\n0.493561 0.260834 0.593903\n0.532379 0.262268 0.594269\n0.576416 0.263763 0.594513\n0.622864 0.264160 0.593719\n0.670380 0.263763 0.592163\n0.717865 0.263489 0.590790\n0.763397 0.263245 0.589325\n0.805145 0.263153 0.588074\n0.842316 0.263275 0.587006\n0.875061 0.263550 0.585938\n0.903900 0.263916 0.585022\n0.929413 0.264374 0.584229\n0.951965 0.264954 0.583527\n0.972198 0.265533 0.582916\n0.990448 0.266205 0.582214\n1.000000 0.276398 0.582916\n1.000000 0.298309 0.585938\n0.000000 0.284454 0.585999\n0.034149 0.282745 0.595642\n0.079163 0.282135 0.594727\n0.121704 0.281891 0.593933\n0.161957 0.281494 0.593109\n0.198456 0.281342 0.592377\n0.231171 0.281403 0.591797\n0.260986 0.281616 0.591248\n0.289001 0.282166 0.591003\n0.316315 0.283386 0.591400\n0.343201 0.284576 0.591797\n0.370544 0.285828 0.592163\n0.398926 0.287170 0.592529\n0.428986 0.288513 0.592865\n0.461639 0.289886 0.593170\n0.496857 0.291382 0.593506\n0.536285 0.292786 0.593811\n0.580688 0.294312 0.594116\n0.627014 0.294464 0.593170\n0.674347 0.294098 0.591644\n0.721405 0.293793 0.590240\n0.766327 0.293610 0.588745\n0.807373 0.293457 0.587524\n0.843842 0.293610 0.586243\n0.876038 0.293823 0.585419\n0.904419 0.294098 0.584412\n0.929504 0.294525 0.583588\n0.951782 0.294983 0.582825\n0.971832 0.295563 0.582184\n0.989868 0.296082 0.581604\n1.000000 0.305084 0.582489\n1.000000 0.326294 0.586304\n0.000000 0.314636 0.587219\n0.034149 0.314117 0.596832\n0.080414 0.313538 0.595856\n0.124176 0.313263 0.594971\n0.164886 0.313049 0.594147\n0.201538 0.312927 0.593384\n0.234467 0.312988 0.592773\n0.264160 0.313110 0.592102\n0.291748 0.313232 0.591492\n0.318359 0.313629 0.591095\n0.345428 0.314911 0.591431\n0.372986 0.316193 0.591797\n0.401703 0.317566 0.592133\n0.432190 0.318939 0.592468\n0.465027 0.320312 0.592773\n0.500702 0.321747 0.593079\n0.540619 0.323181 0.593384\n0.585236 0.324615 0.593658\n0.631439 0.324615 0.592529\n0.678497 0.324219 0.590912\n0.725037 0.323975 0.589508\n0.769287 0.323730 0.588074\n0.809540 0.323608 0.586792\n0.845337 0.323700 0.585663\n0.876923 0.323853 0.584625\n0.904846 0.324127 0.583771\n0.929535 0.324524 0.583008\n0.951569 0.324860 0.582245\n0.971313 0.325317 0.581482\n0.989258 0.325806 0.580872\n1.000000 0.333527 0.581848\n1.000000 0.354156 0.586670\n0.000000 0.344971 0.589508\n0.037140 0.345398 0.597900\n0.084015 0.344971 0.596893\n0.128265 0.344727 0.595947\n0.169220 0.344543 0.595062\n0.205597 0.344360 0.594238\n0.238159 0.344391 0.593445\n0.267792 0.344513 0.592804\n0.295380 0.344666 0.592163\n0.321930 0.344971 0.591583\n0.348206 0.345367 0.591034\n0.376007 0.346710 0.591370\n0.404938 0.348083 0.591736\n0.435699 0.349396 0.591980\n0.468903 0.350800 0.592316\n0.504913 0.352234 0.592560\n0.545349 0.353607 0.592865\n0.590149 0.355072 0.593109\n0.636017 0.354828 0.591736\n0.682587 0.354431 0.590179\n0.728607 0.354126 0.588715\n0.772034 0.353882 0.587280\n0.811584 0.353790 0.586121\n0.846680 0.353851 0.584991\n0.877686 0.353973 0.583984\n0.905151 0.354187 0.583069\n0.929504 0.354492 0.582184\n0.951263 0.354797 0.581421\n0.970764 0.355133 0.580780\n0.988586 0.355499 0.580048\n1.000000 0.362091 0.581207\n1.000000 0.382080 0.586914\n0.000000 0.376373 0.593842\n0.042084 0.377045 0.598846\n0.089508 0.376801 0.597778\n0.133698 0.376373 0.596741\n0.174164 0.376099 0.595734\n0.210358 0.375977 0.594910\n0.242737 0.375977 0.594116\n0.272156 0.376160 0.593414\n0.299652 0.376434 0.592773\n0.326141 0.376770 0.592133\n0.352417 0.377106 0.591522\n0.379333 0.377502 0.590881\n0.408600 0.378876 0.591187\n0.439575 0.380188 0.591461\n0.473053 0.381592 0.591766\n0.509460 0.382965 0.592010\n0.550171 0.384308 0.592255\n0.594940 0.385620 0.592407\n0.640442 0.385223 0.590851\n0.686707 0.384857 0.589355\n0.732025 0.384552 0.587952\n0.774689 0.384308 0.586517\n0.813446 0.384216 0.585236\n0.847870 0.384155 0.584137\n0.878326 0.384247 0.583160\n0.905365 0.384399 0.582306\n0.929352 0.384583 0.581421\n0.950836 0.384857 0.580688\n0.970215 0.385132 0.579834\n0.987854 0.385437 0.579193\n1.000000 0.390839 0.580200\n1.000000 0.410309 0.586914\n0.000000 0.409363 0.599976\n0.048615 0.408997 0.599609\n0.095825 0.408569 0.598450\n0.139954 0.408234 0.597351\n0.180237 0.408020 0.596344\n0.215942 0.407990 0.595490\n0.247894 0.408112 0.594666\n0.276978 0.408325 0.594025\n0.304352 0.408691 0.593353\n0.330750 0.408997 0.592682\n0.357056 0.409393 0.592041\n0.384003 0.409729 0.591278\n0.412384 0.410126 0.590576\n0.443634 0.411407 0.590851\n0.477356 0.412750 0.591125\n0.514008 0.414093 0.591370\n0.555054 0.415436 0.591614\n0.599579 0.416443 0.591522\n0.644775 0.416046 0.590027\n0.690552 0.415680 0.588409\n0.735199 0.415344 0.587006\n0.777069 0.415039 0.585663\n0.815094 0.414917 0.584381\n0.848816 0.414856 0.583282\n0.878723 0.414856 0.582245\n0.905334 0.414948 0.581299\n0.929016 0.415070 0.580505\n0.950378 0.415283 0.579620\n0.969574 0.415588 0.578888\n0.987122 0.415833 0.577942\n1.000000 0.420074 0.578918\n1.000000 0.438965 0.586945\n0.006439 0.441895 0.601410\n0.056305 0.441437 0.600220\n0.103455 0.440918 0.598969\n0.147400 0.440796 0.597900\n0.187103 0.440735 0.596893\n0.222168 0.440704 0.595978\n0.253601 0.440887 0.595215\n0.282349 0.441101 0.594513\n0.309387 0.441467 0.593842\n0.335693 0.441925 0.593170\n0.361908 0.442169 0.592499\n0.388977 0.442535 0.591766\n0.417419 0.442810 0.590912\n0.447876 0.443146 0.590149\n0.481781 0.444427 0.590393\n0.518616 0.445740 0.590576\n0.559875 0.446991 0.590820\n0.604095 0.447754 0.590485\n0.648895 0.447327 0.589020\n0.694092 0.446991 0.587463\n0.738007 0.446564 0.586029\n0.779053 0.446289 0.584747\n0.816254 0.446075 0.583496\n0.849487 0.445953 0.582306\n0.878937 0.445923 0.581238\n0.905273 0.446014 0.580292\n0.928741 0.446136 0.579437\n0.949829 0.446289 0.578491\n0.968903 0.446533 0.577606\n0.986267 0.446747 0.576752\n1.000000 0.449829 0.577545\n1.000000 0.468170 0.586884\n0.015503 0.474884 0.601929\n0.065399 0.474579 0.600677\n0.112335 0.474274 0.599487\n0.155640 0.473969 0.598358\n0.194519 0.473999 0.597321\n0.228912 0.474152 0.596497\n0.259705 0.474365 0.595734\n0.287903 0.474640 0.594971\n0.314667 0.475006 0.594299\n0.340759 0.475372 0.593628\n0.366943 0.475677 0.592926\n0.394012 0.476044 0.592163\n0.422577 0.476288 0.591278\n0.452942 0.476379 0.590302\n0.486053 0.476776 0.589569\n0.523102 0.477936 0.589783\n0.564423 0.479156 0.589966\n0.608215 0.479706 0.589478\n0.652588 0.479218 0.587952\n0.697113 0.478851 0.586426\n0.740295 0.478455 0.585022\n0.780670 0.478058 0.583618\n0.817322 0.477814 0.582306\n0.850006 0.477722 0.581207\n0.879120 0.477631 0.580139\n0.905121 0.477692 0.579010\n0.928345 0.477814 0.578064\n0.949249 0.477966 0.577118\n0.968201 0.478180 0.576294\n0.985474 0.478363 0.575378\n1.000000 0.480225 0.575684\n1.000000 0.498016 0.586914\n0.026031 0.508942 0.602356\n0.075623 0.508606 0.601105\n0.122070 0.508270 0.599884\n0.164612 0.508179 0.598785\n0.202362 0.508148 0.597748\n0.235840 0.508392 0.596893\n0.265930 0.508667 0.596161\n0.293640 0.508911 0.595398\n0.320038 0.509308 0.594727\n0.345947 0.509705 0.594025\n0.372070 0.510010 0.593292\n0.399109 0.510376 0.592499\n0.427704 0.510529 0.591644\n0.458130 0.510620 0.590607\n0.490936 0.510529 0.589447\n0.527283 0.510956 0.588867\n0.568604 0.512115 0.589020\n0.611877 0.512390 0.588318\n0.655762 0.511902 0.586761\n0.699738 0.511383 0.585266\n0.742340 0.510956 0.583771\n0.782166 0.510590 0.582397\n0.818237 0.510345 0.581085\n0.850464 0.510193 0.579834\n0.879242 0.510162 0.578674\n0.904877 0.510162 0.577637\n0.927887 0.510223 0.576630\n0.948578 0.510345 0.575745\n0.967346 0.510529 0.574799\n0.984528 0.510681 0.573944\n1.000000 0.511383 0.573608\n1.000000 0.529327 0.586823\n0.037659 0.545532 0.602722\n0.086761 0.545227 0.601440\n0.132294 0.545074 0.600250\n0.173828 0.544922 0.599121\n0.210419 0.545044 0.598175\n0.242889 0.545166 0.597290\n0.272217 0.545471 0.596558\n0.299377 0.545746 0.595795\n0.325439 0.546143 0.595123\n0.351105 0.546539 0.594391\n0.377106 0.546783 0.593628\n0.404114 0.546997 0.592834\n0.432678 0.547150 0.591919\n0.463104 0.547119 0.590851\n0.495880 0.546997 0.589722\n0.531708 0.546661 0.588409\n0.572205 0.547241 0.587982\n0.615021 0.547272 0.587067\n0.658539 0.546661 0.585480\n0.702118 0.546112 0.583984\n0.744263 0.545624 0.582428\n0.783508 0.545197 0.580963\n0.819061 0.544891 0.579620\n0.850861 0.544708 0.578339\n0.879242 0.544617 0.577240\n0.904602 0.544586 0.576172\n0.927338 0.544586 0.575165\n0.947845 0.544708 0.574310\n0.966492 0.544800 0.573425\n0.983612 0.544983 0.572571\n0.999390 0.545197 0.571808\n1.000000 0.562866 0.586914\n0.050018 0.584961 0.603027\n0.098389 0.584625 0.601746\n0.142883 0.584381 0.600525\n0.183136 0.584381 0.599426\n0.218445 0.584351 0.598511\n0.249878 0.584595 0.597626\n0.278473 0.584839 0.596924\n0.305115 0.585083 0.596130\n0.330750 0.585419 0.595459\n0.356171 0.585693 0.594727\n0.382019 0.585907 0.593964\n0.408936 0.586029 0.593109\n0.437408 0.586090 0.592194\n0.467743 0.585968 0.591095\n0.500397 0.585693 0.589935\n0.536224 0.585236 0.588593\n0.575867 0.584717 0.587158\n0.618073 0.584198 0.585693\n0.661255 0.583557 0.584076\n0.704498 0.582977 0.582458\n0.746124 0.582428 0.580963\n0.784912 0.581970 0.579498\n0.819946 0.581604 0.578186\n0.851349 0.581421 0.576996\n0.879364 0.581238 0.575867\n0.904480 0.581207 0.574860\n0.927063 0.581268 0.573944\n0.947418 0.581299 0.573059\n0.965912 0.581451 0.572235\n0.982910 0.581573 0.571472\n0.998657 0.581757 0.570770\n1.000000 0.598114 0.586975\n0.061890 0.625549 0.602356\n0.109039 0.625122 0.601013\n0.152405 0.624817 0.599884\n0.191193 0.624695 0.598724\n0.225220 0.624664 0.597809\n0.255676 0.624756 0.596954\n0.283417 0.624939 0.596100\n0.309418 0.625061 0.595337\n0.334656 0.625275 0.594635\n0.359802 0.625397 0.593842\n0.385437 0.625488 0.593048\n0.412231 0.625488 0.592102\n0.440430 0.625305 0.591125\n0.470795 0.625061 0.590027\n0.503418 0.624664 0.588715\n0.539459 0.624054 0.587250\n0.579071 0.623413 0.585754\n0.622437 0.624115 0.585480\n0.665558 0.623474 0.583954\n0.708282 0.622772 0.582336\n0.749481 0.622131 0.580811\n0.787659 0.621643 0.579376\n0.822174 0.621216 0.578033\n0.853058 0.620941 0.576874\n0.880676 0.620728 0.575806\n0.905518 0.620636 0.574799\n0.927826 0.620636 0.573883\n0.947937 0.620697 0.573029\n0.966278 0.620758 0.572266\n0.983124 0.620880 0.571564\n0.998718 0.620850 0.570892\n1.000000 0.634583 0.587158\n0.073059 0.666626 0.601044\n0.119049 0.666168 0.599640\n0.161072 0.665802 0.598511\n0.198334 0.665619 0.597473\n0.231049 0.665527 0.596527\n0.260529 0.665527 0.595642\n0.287537 0.665588 0.594849\n0.313019 0.665649 0.594086\n0.337860 0.665680 0.593384\n0.362732 0.665771 0.592529\n0.388184 0.665680 0.591797\n0.414825 0.665558 0.590790\n0.443146 0.665222 0.589783\n0.473541 0.664856 0.588593\n0.506348 0.664276 0.587189\n0.542542 0.663635 0.585724\n0.582184 0.662811 0.584106\n0.625519 0.663666 0.584015\n0.669708 0.664337 0.583801\n0.712036 0.663513 0.582184\n0.752686 0.662842 0.580658\n0.790344 0.662231 0.579254\n0.824249 0.661774 0.577972\n0.854706 0.661407 0.576752\n0.881989 0.661102 0.575714\n0.906433 0.660950 0.574738\n0.928497 0.660828 0.573883\n0.948395 0.660797 0.573090\n0.966614 0.660828 0.572357\n0.983307 0.660797 0.571777\n0.998810 0.660889 0.571198\n1.000000 0.671600 0.587494\n0.084076 0.708099 0.599579\n0.128754 0.707489 0.598389\n0.169250 0.707092 0.597137\n0.205017 0.706848 0.596161\n0.236511 0.706604 0.595245\n0.265015 0.706512 0.594391\n0.291290 0.706421 0.593628\n0.316223 0.706421 0.592834\n0.340668 0.706299 0.592072\n0.365234 0.706177 0.591248\n0.390625 0.705994 0.590363\n0.417358 0.705750 0.589386\n0.445831 0.705322 0.588318\n0.476410 0.704834 0.587067\n0.509308 0.704132 0.585602\n0.545654 0.703339 0.584076\n0.585297 0.702606 0.582550\n0.628448 0.703369 0.582520\n0.672546 0.704163 0.582458\n0.715698 0.704529 0.582031\n0.755737 0.703705 0.580505\n0.792786 0.703064 0.579132\n0.826294 0.702515 0.577850\n0.856293 0.702057 0.576721\n0.883209 0.701721 0.575714\n0.907379 0.701508 0.574799\n0.929108 0.701263 0.573975\n0.948883 0.701172 0.573273\n0.966888 0.701080 0.572632\n0.983490 0.701019 0.572052\n0.998871 0.700958 0.571564\n1.000000 0.708679 0.587982\n0.094757 0.748932 0.598145\n0.137939 0.748352 0.597015\n0.176819 0.747803 0.595856\n0.211090 0.747467 0.594757\n0.241394 0.747131 0.593964\n0.268951 0.746948 0.593140\n0.294556 0.746765 0.592285\n0.319000 0.746552 0.591553\n0.343201 0.746338 0.590729\n0.367706 0.746094 0.589905\n0.393158 0.745758 0.588898\n0.420013 0.745422 0.587860\n0.448547 0.744904 0.586700\n0.479218 0.744263 0.585419\n0.512268 0.743469 0.583984\n0.548706 0.742584 0.582428\n0.588440 0.741943 0.581085\n0.631470 0.742615 0.581024\n0.675049 0.743256 0.580994\n0.718140 0.743958 0.580933\n0.758636 0.744080 0.580383\n0.795227 0.743347 0.579041\n0.828156 0.742706 0.577820\n0.857727 0.742218 0.576752\n0.884308 0.741760 0.575806\n0.908173 0.741394 0.574951\n0.929718 0.741119 0.574249\n0.949310 0.740936 0.573578\n0.967163 0.740723 0.573029\n0.983643 0.740662 0.572571\n0.998932 0.740509 0.572174\n1.000000 0.745697 0.588959\n0.104767 0.788513 0.596771\n0.146332 0.787842 0.595551\n0.183655 0.787201 0.594482\n0.216461 0.786774 0.593475\n0.245605 0.786377 0.592682\n0.272308 0.786072 0.591858\n0.297424 0.785675 0.591064\n0.321686 0.785400 0.590179\n0.345825 0.785095 0.589355\n0.370300 0.784698 0.588440\n0.395752 0.784302 0.587433\n0.422699 0.783844 0.586273\n0.451294 0.783173 0.585114\n0.482056 0.782471 0.583771\n0.515228 0.781586 0.582336\n0.551697 0.780609 0.580780\n0.591553 0.780029 0.579620\n0.634277 0.780579 0.579559\n0.677429 0.781189 0.579529\n0.720032 0.781769 0.579529\n0.760559 0.782318 0.579529\n0.797363 0.782318 0.579041\n0.829926 0.781708 0.577881\n0.859039 0.781006 0.576874\n0.885315 0.780518 0.576050\n0.908936 0.780212 0.575256\n0.930267 0.779755 0.574585\n0.949646 0.779541 0.574066\n0.967377 0.779205 0.573608\n0.983765 0.779419 0.573517\n0.998962 0.779633 0.573639\n1.000000 0.781677 0.590515\n0.113922 0.826141 0.595428\n0.153900 0.825348 0.594299\n0.189545 0.824615 0.593201\n0.221069 0.824066 0.592346\n0.249420 0.823547 0.591339\n0.275635 0.823120 0.590546\n0.300323 0.822723 0.589600\n0.324432 0.822327 0.588806\n0.348450 0.821960 0.587860\n0.372864 0.821442 0.586945\n0.398376 0.820923 0.585876\n0.425354 0.820343 0.584808\n0.454010 0.819580 0.583527\n0.484863 0.818726 0.582184\n0.518127 0.817810 0.580780\n0.554596 0.816742 0.579224\n0.594452 0.816193 0.578247\n0.636810 0.816742 0.578217\n0.679749 0.817200 0.578247\n0.721802 0.817657 0.578278\n0.761871 0.818176 0.578339\n0.798645 0.818634 0.578400\n0.831482 0.818604 0.578094\n0.860321 0.817993 0.577179\n0.886230 0.817413 0.576385\n0.909576 0.816925 0.575745\n0.930756 0.816437 0.575165\n0.950012 0.816345 0.575012\n0.967621 0.816467 0.575043\n0.983887 0.816437 0.575134\n0.998962 0.816467 0.575439\n1.000000 0.815582 0.592468\n0.122070 0.861053 0.594299\n0.160431 0.860199 0.593018\n0.194824 0.859375 0.592010\n0.225403 0.858734 0.591034\n0.253204 0.858185 0.590149\n0.278931 0.857635 0.589233\n0.303345 0.857178 0.588226\n0.327179 0.856659 0.587372\n0.351105 0.856232 0.586456\n0.375488 0.855621 0.585388\n0.401001 0.855072 0.584412\n0.428009 0.854340 0.583191\n0.456757 0.853516 0.582031\n0.487701 0.852600 0.580627\n0.520844 0.851562 0.579254\n0.557404 0.850433 0.577789\n0.597229 0.850037 0.576996\n0.639282 0.850403 0.577026\n0.681854 0.850830 0.577087\n0.723419 0.851227 0.577179\n0.762848 0.851593 0.577301\n0.799316 0.851990 0.577515\n0.832123 0.852356 0.577698\n0.861328 0.852417 0.577606\n0.886993 0.851746 0.576965\n0.910278 0.851501 0.576691\n0.931244 0.851227 0.576630\n0.950317 0.851044 0.576630\n0.967773 0.850800 0.576782\n0.983917 0.850739 0.577148\n0.998901 0.850525 0.577545\n1.000000 0.847168 0.594574\n0.129272 0.892822 0.593048\n0.166656 0.891876 0.591827\n0.200073 0.891083 0.590668\n0.229797 0.890350 0.589630\n0.256958 0.889740 0.588806\n0.282227 0.889191 0.587830\n0.306305 0.888611 0.586823\n0.329956 0.888092 0.585938\n0.353729 0.887482 0.584991\n0.378113 0.886871 0.584015\n0.403656 0.886169 0.582977\n0.430634 0.885376 0.581787\n0.459412 0.884521 0.580597\n0.490356 0.883545 0.579346\n0.523590 0.882477 0.577881\n0.560059 0.881287 0.576477\n0.599884 0.880920 0.575897\n0.641632 0.881287 0.576019\n0.683716 0.881592 0.576141\n0.724762 0.881836 0.576324\n0.763855 0.882172 0.576538\n0.799683 0.882477 0.576752\n0.832184 0.882721 0.577087\n0.861633 0.883240 0.577698\n0.887970 0.883484 0.578339\n0.910889 0.883087 0.578247\n0.931610 0.882721 0.578369\n0.950470 0.882416 0.578583\n0.967773 0.882080 0.578918\n0.983887 0.881836 0.579346\n0.998871 0.881592 0.579834\n1.000000 0.875854 0.596924\n0.136353 0.921173 0.591827\n0.172791 0.920197 0.590546\n0.205109 0.919373 0.589386\n0.234100 0.918671 0.588409\n0.260620 0.917999 0.587341\n0.285492 0.917358 0.586517\n0.309265 0.916748 0.585510\n0.332733 0.916138 0.584595\n0.356415 0.915527 0.583649\n0.380707 0.914856 0.582733\n0.406219 0.914093 0.581665\n0.433197 0.913269 0.580505\n0.462036 0.912323 0.579407\n0.492950 0.911316 0.578156\n0.526184 0.910217 0.576721\n0.562531 0.909027 0.575409\n0.602234 0.908752 0.575073\n0.643677 0.908997 0.575226\n0.685333 0.909210 0.575470\n0.725983 0.909424 0.575714\n0.764465 0.909637 0.576050\n0.800415 0.909973 0.576630\n0.832703 0.910339 0.577423\n0.861603 0.910706 0.578247\n0.887634 0.911011 0.579193\n0.911224 0.911346 0.580200\n0.931763 0.910889 0.580444\n0.950500 0.910370 0.580811\n0.967804 0.910065 0.581238\n0.983856 0.909698 0.581757\n0.998810 0.909302 0.582275\n1.000000 0.901703 0.599396\n0.143433 0.946411 0.590515\n0.178711 0.945465 0.589294\n0.210083 0.944641 0.588104\n0.238281 0.943878 0.587158\n0.264252 0.943176 0.586182\n0.288696 0.942535 0.585114\n0.312195 0.941895 0.584351\n0.335449 0.941254 0.583374\n0.359009 0.940582 0.582489\n0.383270 0.939850 0.581451\n0.408722 0.939148 0.580536\n0.435699 0.938263 0.579468\n0.464508 0.937347 0.578339\n0.495361 0.936279 0.577118\n0.528625 0.935120 0.575836\n0.564850 0.933929 0.574554\n0.604309 0.933746 0.574402\n0.645416 0.933899 0.574677\n0.686737 0.934082 0.575043\n0.727509 0.934296 0.575623\n0.765900 0.934540 0.576385\n0.800964 0.934784 0.577240\n0.832520 0.935028 0.578125\n0.861084 0.935242 0.579163\n0.886932 0.935455 0.580261\n0.910370 0.935669 0.581390\n0.931641 0.935944 0.582550\n0.950500 0.935608 0.583160\n0.967743 0.935089 0.583679\n0.983765 0.934631 0.584229\n0.998749 0.934204 0.584869\n1.000000 0.924988 0.601898\n0.150208 0.969025 0.589172\n0.184418 0.968109 0.588043\n0.214905 0.967285 0.586914\n0.242340 0.966522 0.585846\n0.267761 0.965851 0.584961\n0.291779 0.965179 0.583923\n0.315002 0.964508 0.583069\n0.338074 0.963837 0.582275\n0.361450 0.963135 0.581360\n0.385681 0.962402 0.580383\n0.411102 0.961639 0.579529\n0.438019 0.960754 0.578430\n0.466827 0.959808 0.577454\n0.497589 0.958771 0.576324\n0.530731 0.957642 0.575165\n0.566803 0.956421 0.574005\n0.606110 0.956268 0.574066\n0.647522 0.956451 0.574615\n0.688782 0.956635 0.575409\n0.728790 0.956787 0.576233\n0.766357 0.956940 0.577179\n0.800842 0.957062 0.578217\n0.832062 0.957214 0.579285\n0.860413 0.957336 0.580383\n0.886169 0.957489 0.581604\n0.909485 0.957672 0.582825\n0.930756 0.957794 0.584076\n0.950226 0.957916 0.585419\n0.967773 0.957703 0.586182\n0.983765 0.957184 0.586792\n0.998718 0.956726 0.587494\n1.000000 0.946289 0.604858\n0.156769 0.989441 0.587952\n0.189850 0.988525 0.586670\n0.219421 0.987701 0.585724\n0.246246 0.987000 0.584686\n0.271088 0.986328 0.583801\n0.294708 0.985626 0.582977\n0.317657 0.984985 0.582123\n0.340576 0.984344 0.581238\n0.363800 0.983643 0.580353\n0.387909 0.982910 0.579620\n0.413300 0.982086 0.578674\n0.440155 0.981262 0.577789\n0.468842 0.980316 0.576782\n0.499542 0.979248 0.575775\n0.532593 0.978149 0.574707\n0.569092 0.976990 0.573853\n0.608826 0.976898 0.574463\n0.649445 0.977020 0.575287\n0.689941 0.977081 0.576263\n0.729004 0.977142 0.577271\n0.766113 0.977234 0.578339\n0.800323 0.977325 0.579468\n0.831360 0.977386 0.580627\n0.859650 0.977478 0.581909\n0.885345 0.977509 0.583160\n0.908600 0.977600 0.584442\n0.929932 0.977661 0.585724\n0.949463 0.977783 0.587097\n0.967407 0.977844 0.588409\n0.983795 0.977722 0.589844\n0.998688 0.977234 0.590973\n1.000000 0.965698 0.608551\n0.174377 1.000000 0.586884\n0.204987 1.000000 0.585907\n0.232483 1.000000 0.585175\n0.257538 1.000000 0.584503\n0.280914 1.000000 0.583740\n0.303162 1.000000 0.582977\n0.324951 1.000000 0.582184\n0.346771 1.000000 0.581451\n0.368927 1.000000 0.580597\n0.391998 1.000000 0.579651\n0.416260 1.000000 0.578552\n0.442017 1.000000 0.577271\n0.470642 0.999115 0.576416\n0.501740 0.998047 0.575684\n0.535278 0.996979 0.575073\n0.571259 0.995880 0.574524\n0.610168 0.995758 0.575348\n0.650146 0.995758 0.576355\n0.690002 0.995819 0.577454\n0.728729 0.995819 0.578552\n0.765686 0.995850 0.579773\n0.799683 0.995850 0.580994\n0.830719 0.995880 0.582245\n0.858917 0.995880 0.583557\n0.884644 0.995880 0.584869\n0.908051 0.995911 0.586121\n0.929443 0.995911 0.587524\n0.948914 0.995941 0.589264\n0.966766 0.995941 0.591064\n0.983368 0.996002 0.593109\n0.998657 0.995941 0.595032\n1.000000 0.983521 0.612549\n0.205139 1.000000 0.586945\n0.234406 1.000000 0.586884\n0.260712 1.000000 0.586884\n0.284729 1.000000 0.586884\n0.307373 1.000000 0.587067\n0.328918 1.000000 0.587036\n0.350098 1.000000 0.587189\n0.371368 1.000000 0.587463\n0.393036 1.000000 0.587555\n0.415649 1.000000 0.587799\n0.439392 1.000000 0.588257\n0.465088 1.000000 0.588715\n0.492615 1.000000 0.589447\n0.522125 1.000000 0.590240\n0.554443 1.000000 0.591187\n0.588959 1.000000 0.592163\n0.625061 1.000000 0.593231\n0.661774 1.000000 0.594330\n0.698608 1.000000 0.595520\n0.734344 1.000000 0.596680\n0.768341 1.000000 0.597931\n0.799866 1.000000 0.599182\n0.828522 1.000000 0.600433\n0.854858 1.000000 0.601746\n0.878845 1.000000 0.603058\n0.900757 1.000000 0.604645\n0.920715 1.000000 0.606476\n0.938995 1.000000 0.608429\n0.955872 1.000000 0.610474\n0.971497 1.000000 0.612518\n0.986115 1.000000 0.614288\n1.000000 1.000000 0.615906\n0.000000 0.013489 0.588623\n0.031647 0.000031 0.604828\n0.079529 0.003967 0.606659\n0.124695 0.007782 0.608429\n0.166046 0.011230 0.609863\n0.203156 0.012909 0.610535\n0.235931 0.014557 0.611206\n0.265656 0.016144 0.611877\n0.293091 0.017670 0.612488\n0.319092 0.019226 0.613098\n0.344574 0.020691 0.613739\n0.370300 0.022217 0.614319\n0.396881 0.023712 0.614899\n0.424774 0.025177 0.615417\n0.454712 0.026703 0.615967\n0.487122 0.028259 0.616516\n0.523010 0.029785 0.617035\n0.564026 0.031403 0.617493\n0.609192 0.033112 0.617981\n0.656128 0.033051 0.617035\n0.703949 0.032715 0.615570\n0.751007 0.032440 0.614197\n0.795349 0.032440 0.613068\n0.835388 0.032715 0.611938\n0.870758 0.033020 0.610809\n0.901978 0.033417 0.609985\n0.929413 0.034058 0.609131\n0.953705 0.034790 0.608459\n0.975311 0.035736 0.607666\n0.994720 0.036835 0.607086\n1.000000 0.056549 0.604126\n1.000000 0.083221 0.601410\n0.000000 0.052460 0.594360\n0.032562 0.041290 0.607544\n0.079956 0.044281 0.608673\n0.124329 0.045959 0.609375\n0.165039 0.047516 0.610107\n0.201691 0.049042 0.610748\n0.234344 0.050507 0.611359\n0.264130 0.051910 0.612000\n0.291656 0.053345 0.612640\n0.317841 0.054810 0.613220\n0.343414 0.056213 0.613800\n0.369110 0.057617 0.614319\n0.395569 0.059082 0.614868\n0.423645 0.060547 0.615387\n0.453552 0.062042 0.615906\n0.485992 0.063568 0.616394\n0.521851 0.065125 0.616882\n0.563202 0.066772 0.617371\n0.609070 0.068451 0.617828\n0.656433 0.068512 0.616669\n0.704468 0.068237 0.615356\n0.751617 0.068085 0.614014\n0.795898 0.068024 0.612640\n0.835724 0.068115 0.611542\n0.870911 0.068329 0.610413\n0.901886 0.068787 0.609467\n0.929230 0.069489 0.608704\n0.953339 0.070251 0.607941\n0.974792 0.071259 0.607056\n0.994049 0.072266 0.606506\n1.000000 0.090576 0.604187\n1.000000 0.116608 0.602112\n0.000000 0.090027 0.599457\n0.033905 0.080261 0.609802\n0.079102 0.079987 0.608978\n0.123016 0.081360 0.609650\n0.163574 0.082794 0.610291\n0.200012 0.084137 0.610870\n0.232941 0.085541 0.611481\n0.262756 0.086853 0.612091\n0.290283 0.088226 0.612671\n0.316498 0.089569 0.613220\n0.342133 0.090881 0.613770\n0.367950 0.092316 0.614288\n0.394501 0.093719 0.614807\n0.422394 0.095154 0.615295\n0.452423 0.096649 0.615814\n0.485168 0.098236 0.616302\n0.521729 0.099792 0.616699\n0.563568 0.101532 0.617157\n0.609955 0.103241 0.617584\n0.657532 0.103333 0.616486\n0.705719 0.103088 0.614899\n0.752686 0.102631 0.613586\n0.796753 0.102539 0.612152\n0.836304 0.102692 0.610870\n0.871246 0.102905 0.609894\n0.902039 0.103424 0.608856\n0.929077 0.104218 0.608063\n0.953003 0.104980 0.607391\n0.974304 0.105927 0.606598\n0.993408 0.106964 0.605927\n1.000000 0.123810 0.604126\n1.000000 0.149170 0.602631\n0.000000 0.124329 0.601379\n0.033936 0.116333 0.611176\n0.078766 0.115906 0.610382\n0.121124 0.115814 0.609802\n0.161957 0.117096 0.610382\n0.198730 0.118378 0.610992\n0.231598 0.119659 0.611572\n0.261414 0.120941 0.612091\n0.289062 0.122223 0.612671\n0.315369 0.123566 0.613190\n0.340912 0.124847 0.613739\n0.366669 0.126251 0.614197\n0.393250 0.127655 0.614685\n0.421600 0.129089 0.615143\n0.452179 0.130646 0.615631\n0.485535 0.132233 0.616089\n0.522491 0.133911 0.616486\n0.564972 0.135681 0.616913\n0.611511 0.137360 0.617310\n0.659149 0.137115 0.616058\n0.707306 0.136719 0.614502\n0.754181 0.136444 0.613037\n0.798035 0.136353 0.611694\n0.837250 0.136536 0.610535\n0.871857 0.136841 0.609283\n0.902252 0.137390 0.608429\n0.929077 0.138000 0.607452\n0.952759 0.138824 0.606689\n0.973846 0.139801 0.605957\n0.992798 0.140747 0.605469\n1.000000 0.156281 0.603973\n1.000000 0.180847 0.603271\n0.000000 0.158356 0.602386\n0.033386 0.151276 0.612579\n0.078400 0.150757 0.611694\n0.120880 0.150482 0.610870\n0.160461 0.150513 0.610443\n0.197357 0.151764 0.611023\n0.230286 0.152954 0.611572\n0.260162 0.154175 0.612091\n0.287811 0.155457 0.612640\n0.314178 0.156830 0.613129\n0.339752 0.158081 0.613617\n0.365814 0.159546 0.614075\n0.392975 0.160950 0.614563\n0.421783 0.162476 0.614990\n0.452850 0.164032 0.615387\n0.486633 0.165619 0.615845\n0.524170 0.167297 0.616211\n0.566772 0.168762 0.616516\n0.613678 0.170288 0.616882\n0.661377 0.170013 0.615479\n0.709503 0.169739 0.613861\n0.756195 0.169464 0.612366\n0.799652 0.169434 0.610962\n0.838379 0.169617 0.609772\n0.872589 0.169922 0.608704\n0.902649 0.170441 0.607758\n0.929169 0.171082 0.606842\n0.952576 0.171844 0.606079\n0.973450 0.172729 0.605499\n0.992249 0.173615 0.604797\n1.000000 0.187714 0.603882\n1.000000 0.211670 0.603607\n0.000000 0.191101 0.603424\n0.033295 0.185272 0.613831\n0.078339 0.184784 0.612946\n0.120819 0.184387 0.612061\n0.160095 0.184052 0.611298\n0.196136 0.184296 0.610992\n0.229004 0.185516 0.611542\n0.258911 0.186676 0.612030\n0.286591 0.187988 0.612549\n0.313141 0.189270 0.613007\n0.339417 0.190674 0.613495\n0.365936 0.192078 0.613922\n0.393463 0.193512 0.614319\n0.422729 0.195068 0.614746\n0.454224 0.196655 0.615143\n0.488281 0.198029 0.615479\n0.526184 0.199493 0.615784\n0.569397 0.201080 0.616089\n0.616577 0.202576 0.616364\n0.664246 0.202209 0.614838\n0.712280 0.201935 0.613312\n0.758575 0.201691 0.611786\n0.801514 0.201691 0.610413\n0.839783 0.201843 0.609192\n0.873474 0.202148 0.608093\n0.903168 0.202606 0.607147\n0.929260 0.203186 0.606354\n0.952393 0.203918 0.605591\n0.973083 0.204681 0.604767\n0.991638 0.205475 0.604126\n1.000000 0.218292 0.603577\n1.000000 0.241486 0.604126\n0.000000 0.223053 0.604614\n0.033234 0.218231 0.615051\n0.078308 0.217804 0.614105\n0.120789 0.217438 0.613251\n0.160034 0.217072 0.612427\n0.195587 0.216919 0.611694\n0.227753 0.217285 0.611450\n0.257996 0.218475 0.611938\n0.286255 0.219788 0.612396\n0.313324 0.221161 0.612854\n0.339966 0.222534 0.613281\n0.366852 0.223969 0.613678\n0.394745 0.225372 0.614075\n0.424225 0.226715 0.614410\n0.456055 0.228149 0.614746\n0.490662 0.229523 0.615021\n0.529022 0.231049 0.615326\n0.572662 0.232605 0.615631\n0.619904 0.233978 0.615723\n0.667603 0.233643 0.614197\n0.715332 0.233276 0.612671\n0.761261 0.233093 0.611084\n0.803589 0.233032 0.609802\n0.841217 0.233124 0.608521\n0.874451 0.233459 0.607574\n0.903687 0.233917 0.606598\n0.929413 0.234436 0.605621\n0.952271 0.235077 0.604889\n0.972687 0.235748 0.604156\n0.991058 0.236450 0.603455\n1.000000 0.247955 0.603333\n1.000000 0.270477 0.604462\n0.000000 0.253937 0.605743\n0.033203 0.250549 0.616211\n0.078217 0.250092 0.615265\n0.120728 0.249664 0.614319\n0.160004 0.249268 0.613464\n0.195923 0.249176 0.612732\n0.228485 0.249146 0.612061\n0.258484 0.249634 0.611786\n0.287048 0.250946 0.612213\n0.314392 0.252350 0.612640\n0.341248 0.253723 0.613037\n0.368286 0.254974 0.613403\n0.396454 0.256256 0.613678\n0.426361 0.257660 0.613983\n0.458557 0.259064 0.614288\n0.493530 0.260498 0.614563\n0.532501 0.261963 0.614868\n0.576569 0.263519 0.615143\n0.623810 0.264679 0.615051\n0.671326 0.264343 0.613495\n0.718781 0.264038 0.611938\n0.764099 0.263794 0.610474\n0.805756 0.263733 0.609039\n0.842743 0.263855 0.607941\n0.875427 0.264130 0.606934\n0.904175 0.264496 0.605835\n0.929596 0.264984 0.605072\n0.952118 0.265503 0.604187\n0.972290 0.266144 0.603546\n0.990540 0.266754 0.602875\n1.000000 0.276978 0.602936\n1.000000 0.298828 0.604858\n0.000000 0.284515 0.606812\n0.033142 0.282288 0.617310\n0.078186 0.281738 0.616302\n0.121124 0.281372 0.615356\n0.161438 0.281067 0.614441\n0.198059 0.280945 0.613647\n0.230835 0.281067 0.612915\n0.260681 0.281219 0.612305\n0.288727 0.281738 0.611969\n0.316040 0.282928 0.612305\n0.342987 0.284180 0.612640\n0.370300 0.285461 0.612915\n0.398773 0.286774 0.613220\n0.429047 0.288208 0.613556\n0.461670 0.289612 0.613800\n0.496948 0.291016 0.614075\n0.536560 0.292542 0.614349\n0.580902 0.294006 0.614563\n0.627991 0.294983 0.614319\n0.675323 0.294617 0.612762\n0.722260 0.294281 0.611206\n0.767059 0.294098 0.609741\n0.808044 0.294067 0.608429\n0.844299 0.294128 0.607178\n0.876373 0.294342 0.606140\n0.904694 0.294678 0.605255\n0.929688 0.295105 0.604309\n0.951935 0.295593 0.603485\n0.971863 0.296082 0.602753\n0.989929 0.296600 0.602142\n1.000000 0.305634 0.602631\n1.000000 0.326721 0.605347\n0.000000 0.314606 0.607819\n0.033630 0.313599 0.618286\n0.080017 0.313141 0.617310\n0.123901 0.312775 0.616241\n0.164612 0.312592 0.615326\n0.201385 0.312592 0.614471\n0.234192 0.312622 0.613708\n0.263855 0.312714 0.613007\n0.291534 0.312805 0.612335\n0.318207 0.313232 0.611816\n0.345306 0.314545 0.612152\n0.372986 0.315887 0.612488\n0.401611 0.317230 0.612732\n0.432251 0.318604 0.613007\n0.465210 0.320038 0.613312\n0.500885 0.321472 0.613525\n0.540985 0.322937 0.613800\n0.585541 0.324402 0.614014\n0.632416 0.325104 0.613525\n0.679474 0.324768 0.611969\n0.725891 0.324463 0.610474\n0.769928 0.324219 0.608978\n0.810150 0.324188 0.607666\n0.845795 0.324188 0.606415\n0.877289 0.324371 0.605469\n0.905121 0.324677 0.604492\n0.929718 0.324982 0.603638\n0.951691 0.325378 0.602722\n0.971405 0.325836 0.602020\n0.989288 0.326233 0.601318\n1.000000 0.333984 0.601990\n1.000000 0.354553 0.605621\n0.000000 0.345001 0.610474\n0.036896 0.345001 0.619202\n0.083954 0.344666 0.618103\n0.128326 0.344238 0.617065\n0.169098 0.344147 0.616058\n0.205566 0.343933 0.615173\n0.238037 0.343964 0.614319\n0.267700 0.344116 0.613586\n0.295349 0.344330 0.612885\n0.321808 0.344635 0.612213\n0.348206 0.345062 0.611603\n0.375977 0.346405 0.611908\n0.404999 0.347778 0.612183\n0.435852 0.349152 0.612427\n0.469177 0.350555 0.612701\n0.505157 0.351929 0.612915\n0.545654 0.353333 0.613190\n0.590363 0.354797 0.613403\n0.636963 0.355255 0.612701\n0.683655 0.354980 0.611053\n0.729462 0.354645 0.609589\n0.772827 0.354401 0.608124\n0.812195 0.354309 0.606781\n0.847107 0.354309 0.605713\n0.878021 0.354462 0.604614\n0.905396 0.354675 0.603638\n0.929688 0.354919 0.602814\n0.951324 0.355225 0.601959\n0.970856 0.355560 0.601257\n0.988586 0.355896 0.600525\n1.000000 0.362488 0.601288\n1.000000 0.382477 0.605835\n0.000000 0.376190 0.615082\n0.042236 0.376740 0.619995\n0.089722 0.376251 0.618835\n0.133789 0.375824 0.617706\n0.174286 0.375671 0.616638\n0.210480 0.375519 0.615692\n0.242737 0.375671 0.614838\n0.272186 0.375763 0.614075\n0.299713 0.376068 0.613403\n0.326111 0.376404 0.612671\n0.352478 0.376770 0.612000\n0.379456 0.377197 0.611298\n0.408661 0.378540 0.611572\n0.439850 0.379913 0.611816\n0.473328 0.381287 0.612030\n0.509735 0.382660 0.612305\n0.550537 0.384064 0.612488\n0.595337 0.385406 0.612671\n0.641510 0.385681 0.611755\n0.687683 0.385376 0.610168\n0.732819 0.385040 0.608673\n0.775391 0.384796 0.607269\n0.814056 0.384644 0.605896\n0.848267 0.384583 0.604767\n0.878632 0.384705 0.603760\n0.905548 0.384827 0.602783\n0.929474 0.385010 0.601898\n0.950928 0.385254 0.601166\n0.970276 0.385559 0.600342\n0.987885 0.385864 0.599457\n1.000000 0.391266 0.600189\n1.000000 0.410645 0.605865\n0.000000 0.409027 0.621429\n0.048889 0.408508 0.620575\n0.096222 0.408142 0.619354\n0.140320 0.407806 0.618134\n0.180511 0.407623 0.617126\n0.216217 0.407623 0.616180\n0.248047 0.407806 0.615295\n0.277161 0.408020 0.614532\n0.304443 0.408356 0.613892\n0.330811 0.408630 0.613129\n0.357147 0.409058 0.612427\n0.384186 0.409454 0.611633\n0.412598 0.409790 0.610870\n0.443909 0.411133 0.611084\n0.477661 0.412445 0.611298\n0.514343 0.413818 0.611481\n0.555481 0.415131 0.611725\n0.600189 0.416443 0.611877\n0.645844 0.416473 0.610779\n0.691528 0.416138 0.609192\n0.735962 0.415741 0.607697\n0.777771 0.415527 0.606293\n0.815552 0.415344 0.605042\n0.849182 0.415253 0.603851\n0.878967 0.415253 0.602753\n0.905548 0.415344 0.601898\n0.929199 0.415466 0.600800\n0.950439 0.415710 0.599976\n0.969604 0.415924 0.599182\n0.987122 0.416199 0.598267\n1.000000 0.420471 0.599060\n1.000000 0.439301 0.605835\n0.007019 0.441467 0.622345\n0.056915 0.440979 0.621033\n0.104156 0.440582 0.619781\n0.147949 0.440308 0.618591\n0.187500 0.440308 0.617523\n0.222595 0.440308 0.616608\n0.253845 0.440521 0.615784\n0.282532 0.440857 0.614990\n0.309570 0.441193 0.614288\n0.335754 0.441589 0.613525\n0.362091 0.441956 0.612823\n0.389069 0.442200 0.612000\n0.417603 0.442505 0.611084\n0.448120 0.442871 0.610291\n0.482025 0.444153 0.610535\n0.518951 0.445404 0.610687\n0.560211 0.446716 0.610870\n0.604828 0.447937 0.611023\n0.649902 0.447754 0.609680\n0.694946 0.447388 0.608154\n0.738678 0.446991 0.606628\n0.779663 0.446686 0.605255\n0.816742 0.446503 0.604004\n0.849762 0.446350 0.602783\n0.879211 0.446320 0.601715\n0.905426 0.446381 0.600677\n0.928864 0.446503 0.599731\n0.949921 0.446686 0.598785\n0.968964 0.446869 0.597839\n0.986328 0.447113 0.597015\n1.000000 0.450256 0.597626\n1.000000 0.468506 0.605804\n0.016388 0.474518 0.622742\n0.066223 0.474152 0.621460\n0.113251 0.473816 0.620148\n0.156342 0.473694 0.618988\n0.195099 0.473633 0.617889\n0.229309 0.473755 0.616974\n0.259918 0.474060 0.616150\n0.288177 0.474335 0.615356\n0.314880 0.474701 0.614624\n0.340881 0.475128 0.613922\n0.367157 0.475403 0.613129\n0.394165 0.475739 0.612305\n0.422729 0.476013 0.611359\n0.453217 0.476105 0.610352\n0.486359 0.476440 0.609619\n0.523407 0.477661 0.609772\n0.564697 0.478912 0.609924\n0.609161 0.480011 0.610138\n0.653503 0.479675 0.608521\n0.697937 0.479218 0.607056\n0.740936 0.478760 0.605530\n0.781250 0.478424 0.604126\n0.817719 0.478180 0.602753\n0.850342 0.478058 0.601593\n0.879425 0.478027 0.600464\n0.905334 0.478027 0.599365\n0.928528 0.478180 0.598358\n0.949371 0.478302 0.597473\n0.968231 0.478455 0.596558\n0.985504 0.478729 0.595734\n1.000000 0.480621 0.595734\n1.000000 0.498322 0.605835\n0.027069 0.508606 0.623077\n0.076721 0.508179 0.621735\n0.123047 0.507965 0.620483\n0.165314 0.507904 0.619293\n0.203033 0.507965 0.618195\n0.236328 0.508118 0.617310\n0.266235 0.508301 0.616486\n0.293945 0.508698 0.615723\n0.320282 0.509064 0.614960\n0.346100 0.509430 0.614197\n0.372284 0.509766 0.613434\n0.399292 0.510040 0.612610\n0.427887 0.510254 0.611664\n0.458374 0.510315 0.610626\n0.491119 0.510254 0.609375\n0.527588 0.510651 0.608734\n0.568848 0.511810 0.608887\n0.612732 0.512756 0.608856\n0.656525 0.512268 0.607300\n0.700409 0.511810 0.605774\n0.742889 0.511322 0.604218\n0.782715 0.510986 0.602783\n0.818634 0.510712 0.601349\n0.850800 0.510529 0.600098\n0.879486 0.510437 0.598999\n0.905090 0.510468 0.597961\n0.928009 0.510529 0.596985\n0.948700 0.510712 0.595917\n0.967407 0.510834 0.595093\n0.984589 0.511047 0.594269\n1.000000 0.511749 0.593719\n1.000000 0.529633 0.605835\n0.038818 0.545166 0.623322\n0.087921 0.544861 0.621979\n0.133392 0.544708 0.620697\n0.174591 0.544586 0.619537\n0.211090 0.544647 0.618500\n0.243378 0.544861 0.617645\n0.272552 0.545135 0.616821\n0.299744 0.545502 0.615997\n0.325653 0.545807 0.615265\n0.351257 0.546143 0.614471\n0.377289 0.546509 0.613739\n0.404236 0.546692 0.612854\n0.432831 0.546814 0.611877\n0.463318 0.546783 0.610809\n0.496002 0.546631 0.609589\n0.531860 0.546356 0.608246\n0.572357 0.546875 0.607758\n0.615814 0.547577 0.607544\n0.659363 0.546997 0.605988\n0.702881 0.546509 0.604340\n0.744843 0.545990 0.602753\n0.784058 0.545563 0.601318\n0.819519 0.545227 0.599945\n0.851166 0.545013 0.598633\n0.879486 0.544922 0.597504\n0.904755 0.544891 0.596405\n0.927490 0.544952 0.595428\n0.947968 0.545044 0.594452\n0.966553 0.545166 0.593536\n0.983643 0.545349 0.592773\n0.999390 0.545563 0.591919\n1.000000 0.563171 0.605835\n0.051361 0.584473 0.623535\n0.099579 0.584229 0.622162\n0.144012 0.584015 0.620941\n0.183899 0.583984 0.619751\n0.219116 0.584015 0.618744\n0.250397 0.584229 0.617889\n0.278748 0.584473 0.617096\n0.305359 0.584717 0.616272\n0.330872 0.585052 0.615540\n0.356293 0.585297 0.614746\n0.382141 0.585571 0.613953\n0.408997 0.585663 0.613068\n0.437469 0.585693 0.612091\n0.467865 0.585602 0.610962\n0.500427 0.585266 0.609741\n0.536407 0.584839 0.608368\n0.575989 0.584320 0.606842\n0.618805 0.584503 0.606079\n0.662079 0.583893 0.604401\n0.705231 0.583252 0.602783\n0.746674 0.582642 0.601196\n0.785339 0.582184 0.599701\n0.820221 0.581818 0.598389\n0.851471 0.581604 0.597076\n0.879395 0.581421 0.595856\n0.904419 0.581329 0.594849\n0.926880 0.581329 0.593903\n0.947205 0.581360 0.593018\n0.965668 0.581421 0.592041\n0.982605 0.581573 0.591278\n0.998322 0.581696 0.590515\n1.000000 0.598389 0.605835\n0.064209 0.625916 0.623627\n0.111359 0.625519 0.622253\n0.154419 0.625275 0.620972\n0.192841 0.625092 0.619812\n0.226685 0.625031 0.618713\n0.256927 0.625153 0.617828\n0.284424 0.625275 0.617065\n0.310425 0.625519 0.616180\n0.335541 0.625641 0.615356\n0.360626 0.625793 0.614563\n0.386230 0.625885 0.613739\n0.412933 0.625793 0.612732\n0.441223 0.625702 0.611725\n0.471588 0.625366 0.610565\n0.504211 0.624908 0.609222\n0.540344 0.624420 0.607758\n0.579926 0.623718 0.606110\n0.622467 0.623657 0.605133\n0.665558 0.622986 0.603546\n0.708130 0.622284 0.601929\n0.749237 0.621704 0.600403\n0.787354 0.621185 0.598907\n0.821747 0.620758 0.597565\n0.852570 0.620483 0.596375\n0.880219 0.620331 0.595276\n0.904907 0.620209 0.594269\n0.927185 0.620148 0.593323\n0.947327 0.620178 0.592529\n0.965668 0.620239 0.591736\n0.982483 0.620300 0.591003\n0.998138 0.620514 0.590363\n1.000000 0.634857 0.606049\n0.075348 0.666962 0.622131\n0.121277 0.666534 0.620758\n0.162933 0.666199 0.619537\n0.199921 0.665955 0.618317\n0.232483 0.665894 0.617371\n0.261597 0.665833 0.616425\n0.288513 0.665924 0.615631\n0.313965 0.665985 0.614807\n0.338684 0.666046 0.614075\n0.363495 0.666077 0.613220\n0.388885 0.666016 0.612366\n0.415527 0.665833 0.611359\n0.443848 0.665558 0.610321\n0.474335 0.665131 0.609039\n0.507111 0.664581 0.607635\n0.543427 0.663910 0.606079\n0.583069 0.663116 0.604462\n0.625519 0.663116 0.603638\n0.669678 0.663818 0.603394\n0.711884 0.663055 0.601746\n0.752411 0.662323 0.600189\n0.789978 0.661774 0.598785\n0.823853 0.661255 0.597443\n0.854248 0.660919 0.596283\n0.881439 0.660675 0.595215\n0.905853 0.660492 0.594269\n0.927887 0.660370 0.593353\n0.947815 0.660309 0.592560\n0.965973 0.660370 0.591858\n0.982727 0.660339 0.591217\n0.998199 0.660400 0.590607\n1.000000 0.671906 0.606384\n0.086365 0.708344 0.620636\n0.130890 0.707825 0.619293\n0.171112 0.707397 0.618042\n0.206421 0.707092 0.616943\n0.237793 0.706940 0.615936\n0.266052 0.706818 0.615082\n0.292145 0.706757 0.614319\n0.317108 0.706726 0.613495\n0.341400 0.706604 0.612701\n0.366028 0.706451 0.611816\n0.391418 0.706299 0.610870\n0.418091 0.706024 0.609924\n0.446564 0.705627 0.608704\n0.477173 0.705109 0.607422\n0.510101 0.704437 0.605988\n0.546539 0.703613 0.604401\n0.585968 0.702728 0.602753\n0.628540 0.702850 0.602112\n0.672546 0.703674 0.602051\n0.715515 0.703949 0.601593\n0.755493 0.703217 0.600067\n0.792480 0.702545 0.598663\n0.825836 0.701996 0.597382\n0.855743 0.701538 0.596252\n0.882629 0.701172 0.595215\n0.906769 0.700989 0.594299\n0.928528 0.700775 0.593475\n0.948273 0.700592 0.592743\n0.966248 0.700500 0.592102\n0.982849 0.700470 0.591553\n0.998291 0.700439 0.590973\n1.000000 0.708984 0.606873\n0.096924 0.749176 0.619019\n0.139923 0.748596 0.617859\n0.178528 0.748077 0.616638\n0.212372 0.747711 0.615631\n0.242554 0.747437 0.614594\n0.269867 0.747192 0.613739\n0.295349 0.746979 0.612946\n0.319794 0.746796 0.612183\n0.343964 0.746613 0.611267\n0.368500 0.746368 0.610382\n0.393921 0.746002 0.609406\n0.420746 0.745636 0.608307\n0.449310 0.745087 0.607086\n0.479980 0.744507 0.605835\n0.513062 0.743683 0.604309\n0.549561 0.742798 0.602722\n0.588928 0.741760 0.601044\n0.631409 0.742065 0.600555\n0.675049 0.742737 0.600525\n0.717987 0.743408 0.600525\n0.758392 0.743530 0.599945\n0.794800 0.742767 0.598602\n0.827667 0.742157 0.597321\n0.857178 0.741638 0.596252\n0.883728 0.741241 0.595306\n0.907562 0.740845 0.594421\n0.929108 0.740601 0.593689\n0.948669 0.740387 0.593048\n0.966522 0.740173 0.592468\n0.983002 0.740051 0.591980\n0.998352 0.740204 0.591644\n1.000000 0.746094 0.607849\n0.106781 0.788727 0.617615\n0.148193 0.788055 0.616302\n0.185089 0.787445 0.615295\n0.217651 0.786987 0.614136\n0.246643 0.786560 0.613281\n0.273193 0.786255 0.612427\n0.298248 0.785919 0.611572\n0.322510 0.785675 0.610779\n0.346527 0.785309 0.609833\n0.371063 0.784973 0.608826\n0.396515 0.784546 0.607849\n0.423370 0.784027 0.606689\n0.452087 0.783386 0.605499\n0.482819 0.782684 0.604126\n0.515961 0.781738 0.602600\n0.552521 0.780762 0.601074\n0.591827 0.779694 0.599426\n0.634216 0.779999 0.599121\n0.677399 0.780548 0.599091\n0.719818 0.781158 0.599060\n0.760315 0.781769 0.599091\n0.796997 0.781708 0.598572\n0.829376 0.781006 0.597412\n0.858551 0.780457 0.596405\n0.884735 0.779907 0.595520\n0.908295 0.779541 0.594757\n0.929626 0.779144 0.594086\n0.949005 0.778931 0.593536\n0.966766 0.778839 0.593109\n0.983124 0.778992 0.593018\n0.998383 0.779144 0.593018\n1.000000 0.781982 0.609344\n0.115723 0.826263 0.616180\n0.155548 0.825500 0.614990\n0.190796 0.824799 0.613922\n0.222107 0.824219 0.612946\n0.250397 0.823730 0.612000\n0.276459 0.823303 0.611053\n0.301178 0.822906 0.610199\n0.325195 0.822510 0.609253\n0.349182 0.822083 0.608368\n0.373627 0.821594 0.607330\n0.399170 0.821075 0.606232\n0.426056 0.820465 0.605072\n0.454803 0.819733 0.603851\n0.485596 0.818939 0.602509\n0.518829 0.817963 0.601044\n0.555420 0.816895 0.599518\n0.594543 0.815735 0.597870\n0.636780 0.816071 0.597748\n0.679657 0.816589 0.597778\n0.721558 0.817078 0.597809\n0.761475 0.817535 0.597900\n0.798248 0.818054 0.597961\n0.830963 0.818024 0.597626\n0.859711 0.817352 0.596710\n0.885620 0.816803 0.595856\n0.908936 0.816284 0.595184\n0.930115 0.815979 0.594666\n0.949402 0.815918 0.594482\n0.967041 0.815948 0.594421\n0.983276 0.815948 0.594513\n0.998383 0.815979 0.594666\n1.000000 0.815918 0.611084\n0.123627 0.861145 0.614960\n0.161926 0.860291 0.613678\n0.196045 0.859528 0.612518\n0.226501 0.858887 0.611572\n0.254181 0.858307 0.610504\n0.279755 0.857819 0.609619\n0.304138 0.857269 0.608643\n0.327972 0.856812 0.607819\n0.351776 0.856354 0.606750\n0.376221 0.855774 0.605865\n0.401703 0.855164 0.604736\n0.428711 0.854431 0.603607\n0.457520 0.853668 0.602295\n0.488373 0.852722 0.600983\n0.521667 0.851685 0.599548\n0.558197 0.850555 0.598053\n0.597168 0.849396 0.596497\n0.639191 0.849792 0.596558\n0.681610 0.850189 0.596588\n0.723145 0.850586 0.596710\n0.762482 0.850952 0.596863\n0.798737 0.851318 0.597015\n0.831543 0.851715 0.597168\n0.860779 0.851807 0.597137\n0.886414 0.851166 0.596466\n0.909668 0.850922 0.596161\n0.930664 0.850677 0.595978\n0.949707 0.850525 0.595978\n0.967163 0.850250 0.596100\n0.983276 0.850159 0.596313\n0.998352 0.850006 0.596588\n1.000000 0.847443 0.613037\n0.130859 0.892914 0.613678\n0.168121 0.891937 0.612366\n0.201202 0.891174 0.611267\n0.230865 0.890442 0.610229\n0.257904 0.889862 0.609161\n0.283020 0.889252 0.608246\n0.307129 0.888702 0.607330\n0.330750 0.888184 0.606293\n0.354431 0.887573 0.605377\n0.378845 0.886963 0.604340\n0.404297 0.886261 0.603302\n0.431305 0.885498 0.602203\n0.460144 0.884644 0.600922\n0.491028 0.883606 0.599640\n0.524353 0.882538 0.598206\n0.560791 0.881378 0.596771\n0.599731 0.880310 0.595428\n0.641510 0.880646 0.595551\n0.683380 0.880890 0.595673\n0.724396 0.881226 0.595795\n0.763306 0.881500 0.596008\n0.799164 0.881775 0.596283\n0.831665 0.882111 0.596619\n0.861084 0.882629 0.597198\n0.887390 0.882935 0.597778\n0.910248 0.882568 0.597656\n0.930969 0.882141 0.597656\n0.949829 0.881775 0.597778\n0.967163 0.881531 0.598022\n0.983276 0.881226 0.598358\n0.998291 0.880951 0.598694\n1.000000 0.876068 0.615173\n0.138031 0.921204 0.612305\n0.174194 0.920288 0.611053\n0.206268 0.919464 0.609894\n0.235168 0.918701 0.608734\n0.261566 0.918060 0.607880\n0.286255 0.917419 0.606842\n0.310028 0.916809 0.605865\n0.333405 0.916199 0.604980\n0.357056 0.915588 0.604034\n0.381409 0.914917 0.602997\n0.406860 0.914154 0.601959\n0.433868 0.913300 0.600861\n0.462708 0.912384 0.599701\n0.493561 0.911377 0.598419\n0.526886 0.910278 0.597015\n0.563202 0.909058 0.595734\n0.602051 0.908081 0.594574\n0.643494 0.908325 0.594696\n0.684998 0.908539 0.594910\n0.725616 0.908752 0.595215\n0.764160 0.909027 0.595520\n0.799957 0.909393 0.596130\n0.832062 0.909729 0.596832\n0.860962 0.910095 0.597626\n0.886963 0.910431 0.598450\n0.910522 0.910736 0.599426\n0.931030 0.910248 0.599579\n0.949860 0.909821 0.599792\n0.967163 0.909485 0.600128\n0.983215 0.909058 0.600525\n0.998260 0.908691 0.600922\n1.000000 0.901764 0.617401\n0.144989 0.946442 0.610962\n0.180054 0.945496 0.609619\n0.211212 0.944702 0.608459\n0.239319 0.943909 0.607452\n0.265167 0.943207 0.606415\n0.289429 0.942535 0.605530\n0.312927 0.941956 0.604706\n0.336121 0.941284 0.603699\n0.359650 0.940643 0.602844\n0.383942 0.939911 0.601837\n0.409332 0.939148 0.600800\n0.436310 0.938293 0.599792\n0.465179 0.937378 0.598602\n0.495972 0.936310 0.597412\n0.529236 0.935181 0.596130\n0.565399 0.933990 0.594818\n0.604126 0.933075 0.593903\n0.645081 0.933228 0.594147\n0.686401 0.933411 0.594452\n0.727234 0.933655 0.595093\n0.765411 0.933929 0.595795\n0.800323 0.934174 0.596558\n0.831970 0.934418 0.597443\n0.860443 0.934662 0.598419\n0.886261 0.934906 0.599365\n0.909668 0.935089 0.600433\n0.930969 0.935333 0.601532\n0.949860 0.934967 0.601990\n0.967163 0.934509 0.602356\n0.983185 0.934082 0.602783\n0.998199 0.933624 0.603241\n1.000000 0.925171 0.619629\n0.151764 0.969025 0.609680\n0.185760 0.968109 0.608459\n0.215912 0.967316 0.607239\n0.243317 0.966522 0.606140\n0.268585 0.965820 0.605225\n0.292542 0.965210 0.604340\n0.315704 0.964508 0.603394\n0.338745 0.963837 0.602509\n0.362091 0.963165 0.601776\n0.386292 0.962433 0.600800\n0.411682 0.961670 0.599823\n0.438629 0.960815 0.598877\n0.467407 0.959808 0.597778\n0.498138 0.958801 0.596588\n0.531281 0.957642 0.595398\n0.567291 0.956451 0.594238\n0.606018 0.955627 0.593475\n0.647430 0.955841 0.594116\n0.688507 0.955994 0.594788\n0.728180 0.956177 0.595612\n0.765808 0.956329 0.596466\n0.800171 0.956451 0.597382\n0.831451 0.956635 0.598389\n0.859711 0.956757 0.599457\n0.885376 0.956879 0.600525\n0.908722 0.957062 0.601624\n0.930084 0.957214 0.602783\n0.949585 0.957336 0.603943\n0.967163 0.957123 0.604675\n0.983185 0.956635 0.605072\n0.998169 0.956207 0.605743\n1.000000 0.946350 0.622528\n0.158234 0.989410 0.608276\n0.191071 0.988525 0.607147\n0.220428 0.987701 0.606018\n0.247101 0.987030 0.605011\n0.271820 0.986298 0.604095\n0.295410 0.985657 0.603302\n0.318329 0.984955 0.602417\n0.341095 0.984314 0.601624\n0.364410 0.983643 0.600800\n0.388519 0.982880 0.599854\n0.413818 0.982117 0.598969\n0.440704 0.981232 0.598053\n0.469391 0.980316 0.597076\n0.500000 0.979248 0.596039\n0.533203 0.978119 0.594879\n0.569763 0.977020 0.594086\n0.608551 0.976288 0.593903\n0.649017 0.976410 0.594666\n0.689331 0.976471 0.595520\n0.728424 0.976562 0.596436\n0.765533 0.976624 0.597443\n0.799561 0.976746 0.598511\n0.830688 0.976776 0.599579\n0.858948 0.976868 0.600677\n0.884705 0.976959 0.601837\n0.908020 0.976990 0.602997\n0.929291 0.977081 0.604126\n0.948853 0.977203 0.605347\n0.966827 0.977295 0.606720\n0.983215 0.977203 0.608063\n0.998169 0.976685 0.609100\n1.000000 0.965820 0.626007\n0.175659 1.000000 0.606689\n0.206024 1.000000 0.605957\n0.233398 1.000000 0.605133\n0.258362 1.000000 0.604370\n0.281586 1.000000 0.603699\n0.303802 1.000000 0.603027\n0.325592 1.000000 0.602325\n0.347290 1.000000 0.601562\n0.369476 1.000000 0.600708\n0.392517 1.000000 0.599792\n0.416718 1.000000 0.598755\n0.442505 1.000000 0.597534\n0.471100 0.999115 0.596619\n0.502319 0.998047 0.595947\n0.535797 0.996979 0.595276\n0.571625 0.995850 0.594635\n0.609741 0.995148 0.594604\n0.649506 0.995178 0.595551\n0.689331 0.995209 0.596497\n0.728119 0.995209 0.597565\n0.764893 0.995270 0.598694\n0.798859 0.995270 0.599762\n0.830017 0.995300 0.600952\n0.858246 0.995300 0.602112\n0.883972 0.995300 0.603302\n0.907410 0.995331 0.604431\n0.928772 0.995392 0.605804\n0.948303 0.995392 0.607422\n0.966278 0.995453 0.609192\n0.982819 0.995453 0.611023\n0.998108 0.995361 0.612854\n1.000000 0.983551 0.629639\n0.206329 1.000000 0.605682\n0.235321 1.000000 0.605682\n0.261505 1.000000 0.605774\n0.285522 1.000000 0.605957\n0.307983 1.000000 0.605835\n0.329498 1.000000 0.605957\n0.350616 1.000000 0.606171\n0.371796 1.000000 0.606262\n0.393494 1.000000 0.606506\n0.416046 1.000000 0.606750\n0.439819 1.000000 0.607025\n0.465729 1.000000 0.607635\n0.493073 1.000000 0.608276\n0.522491 1.000000 0.609009\n0.554749 1.000000 0.609985\n0.589172 1.000000 0.610870\n0.625153 1.000000 0.611755\n0.661896 1.000000 0.612823\n0.698547 1.000000 0.613861\n0.734406 1.000000 0.614929\n0.768463 1.000000 0.616058\n0.799957 1.000000 0.617218\n0.828705 1.000000 0.618317\n0.854980 1.000000 0.619446\n0.878998 1.000000 0.620789\n0.900879 1.000000 0.622345\n0.920868 1.000000 0.624054\n0.939117 1.000000 0.625854\n0.955933 1.000000 0.627747\n0.971497 1.000000 0.629578\n0.986206 1.000000 0.631134\n1.000000 1.000000 0.632568\n0.000000 0.014709 0.610748\n0.030975 0.000488 0.627350\n0.078857 0.004456 0.628876\n0.123993 0.008087 0.630280\n0.165344 0.010864 0.631256\n0.202148 0.012543 0.631866\n0.234985 0.014160 0.632446\n0.264740 0.015717 0.632996\n0.291992 0.017303 0.633545\n0.318237 0.018738 0.634125\n0.343719 0.020264 0.634613\n0.369476 0.021759 0.635162\n0.395966 0.023254 0.635651\n0.424042 0.024780 0.636108\n0.453918 0.026276 0.636597\n0.486359 0.027863 0.637024\n0.522278 0.029480 0.637482\n0.563202 0.031097 0.637909\n0.608429 0.032776 0.638275\n0.656342 0.033722 0.638000\n0.704163 0.033356 0.636505\n0.751251 0.033142 0.635071\n0.795654 0.033234 0.633728\n0.835663 0.033478 0.632538\n0.870972 0.033722 0.631409\n0.902161 0.034149 0.630554\n0.929535 0.034790 0.629700\n0.953796 0.035553 0.628693\n0.975403 0.036499 0.627991\n0.994720 0.037628 0.627411\n1.000000 0.057404 0.623779\n1.000000 0.083984 0.620300\n0.000000 0.053345 0.615967\n0.031891 0.041656 0.629425\n0.079193 0.043945 0.630127\n0.123444 0.045532 0.630737\n0.164093 0.047089 0.631348\n0.200775 0.048615 0.631866\n0.233459 0.050079 0.632446\n0.263123 0.051514 0.632965\n0.290741 0.052948 0.633484\n0.317017 0.054352 0.634003\n0.342529 0.055786 0.634521\n0.368286 0.057220 0.635010\n0.394867 0.058685 0.635468\n0.422791 0.060181 0.635925\n0.452759 0.061615 0.636383\n0.485260 0.063202 0.636780\n0.521118 0.064819 0.637207\n0.562683 0.066467 0.637634\n0.608551 0.068176 0.638000\n0.656738 0.069214 0.637573\n0.704865 0.068878 0.636169\n0.752075 0.068848 0.634705\n0.796234 0.068726 0.633362\n0.835968 0.068726 0.632019\n0.871124 0.069031 0.630859\n0.902100 0.069458 0.629913\n0.929352 0.070160 0.628937\n0.953430 0.071075 0.628204\n0.974884 0.072021 0.627380\n0.994110 0.073059 0.626678\n1.000000 0.091431 0.623718\n1.000000 0.117371 0.620636\n0.000000 0.090271 0.620117\n0.033020 0.079865 0.631134\n0.078156 0.079681 0.630249\n0.121979 0.080902 0.630707\n0.162537 0.082336 0.631317\n0.199188 0.083740 0.631866\n0.232025 0.085052 0.632355\n0.261902 0.086426 0.632874\n0.289398 0.087799 0.633392\n0.315674 0.089111 0.633850\n0.341248 0.090485 0.634369\n0.367157 0.091888 0.634827\n0.393707 0.093353 0.635284\n0.421692 0.094818 0.635681\n0.451721 0.096283 0.636078\n0.484741 0.097900 0.636505\n0.521362 0.099548 0.636902\n0.563171 0.101227 0.637268\n0.609558 0.103058 0.637665\n0.658051 0.104065 0.637207\n0.706146 0.103638 0.635651\n0.753143 0.103333 0.634155\n0.797180 0.103180 0.632660\n0.836639 0.103302 0.631531\n0.871552 0.103607 0.630402\n0.902222 0.104156 0.629181\n0.929260 0.104858 0.628418\n0.953125 0.105743 0.627594\n0.974365 0.106689 0.626892\n0.993469 0.107727 0.626038\n1.000000 0.124664 0.623688\n1.000000 0.149902 0.621216\n0.000000 0.124664 0.621674\n0.032898 0.115845 0.632355\n0.077698 0.115479 0.631439\n0.120209 0.115356 0.630737\n0.160950 0.116669 0.631226\n0.197815 0.117920 0.631775\n0.230713 0.119202 0.632263\n0.260590 0.120514 0.632751\n0.288208 0.121826 0.633240\n0.314575 0.123138 0.633698\n0.340057 0.124512 0.634155\n0.365845 0.125916 0.634613\n0.392426 0.127319 0.635010\n0.420990 0.128784 0.635437\n0.451721 0.130341 0.635773\n0.485107 0.131927 0.636169\n0.522278 0.133667 0.636566\n0.564667 0.135437 0.636902\n0.611328 0.137085 0.637238\n0.659729 0.137756 0.636688\n0.707855 0.137329 0.635071\n0.754791 0.137115 0.633545\n0.798462 0.136993 0.631989\n0.837616 0.137177 0.630737\n0.872162 0.137512 0.629761\n0.902527 0.138031 0.628723\n0.929260 0.138763 0.627747\n0.952881 0.139587 0.626984\n0.973938 0.140503 0.626129\n0.992859 0.141510 0.625549\n1.000000 0.156982 0.623474\n1.000000 0.181519 0.621643\n0.000000 0.158478 0.622467\n0.032379 0.150726 0.633575\n0.077454 0.150391 0.632599\n0.119965 0.150055 0.631683\n0.159668 0.150055 0.631165\n0.196533 0.151306 0.631653\n0.229492 0.152527 0.632111\n0.259338 0.153778 0.632568\n0.286926 0.155060 0.633026\n0.313324 0.156372 0.633484\n0.338867 0.157745 0.633850\n0.365082 0.159119 0.634338\n0.392426 0.160614 0.634705\n0.421356 0.162109 0.635101\n0.452484 0.163727 0.635498\n0.486450 0.165405 0.635834\n0.523895 0.166962 0.636139\n0.566681 0.168457 0.636475\n0.613647 0.170044 0.636719\n0.662109 0.170654 0.635956\n0.710175 0.170288 0.634338\n0.756836 0.170105 0.632751\n0.800110 0.170013 0.631378\n0.838867 0.170227 0.630219\n0.872925 0.170593 0.629059\n0.902893 0.171112 0.628021\n0.929352 0.171783 0.627106\n0.952698 0.172546 0.626190\n0.973541 0.173401 0.625580\n0.992279 0.174347 0.624756\n1.000000 0.188477 0.623383\n1.000000 0.212280 0.622162\n0.000000 0.191345 0.623413\n0.032349 0.184723 0.634705\n0.077423 0.184418 0.633698\n0.119904 0.183868 0.632721\n0.159180 0.183624 0.631866\n0.195160 0.183899 0.631500\n0.228180 0.185059 0.631927\n0.258026 0.186279 0.632355\n0.285706 0.187561 0.632782\n0.312531 0.188904 0.633209\n0.338837 0.190277 0.633606\n0.365417 0.191711 0.634033\n0.393127 0.193298 0.634430\n0.422516 0.194824 0.634766\n0.453979 0.196320 0.635040\n0.488159 0.197784 0.635376\n0.526154 0.199219 0.635651\n0.569397 0.200775 0.635895\n0.616577 0.202393 0.636139\n0.664978 0.202789 0.635193\n0.712952 0.202515 0.633698\n0.759277 0.202271 0.632111\n0.802063 0.202271 0.630737\n0.840240 0.202423 0.629425\n0.873871 0.202789 0.628326\n0.903381 0.203247 0.627289\n0.929474 0.203857 0.626404\n0.952576 0.204590 0.625519\n0.973175 0.205353 0.624878\n0.991730 0.206177 0.624084\n1.000000 0.218903 0.622986\n1.000000 0.242096 0.622620\n0.000000 0.223022 0.624481\n0.032288 0.217926 0.635773\n0.077332 0.217377 0.634735\n0.119873 0.217010 0.633759\n0.159149 0.216644 0.632874\n0.194702 0.216492 0.632050\n0.226929 0.216888 0.631683\n0.257324 0.218140 0.632111\n0.285797 0.219391 0.632507\n0.312897 0.220764 0.632904\n0.339539 0.222229 0.633301\n0.366516 0.223694 0.633667\n0.394501 0.225067 0.633972\n0.424103 0.226410 0.634308\n0.455872 0.227814 0.634583\n0.490540 0.229279 0.634857\n0.529175 0.230804 0.635071\n0.572754 0.232330 0.635345\n0.620270 0.233887 0.635590\n0.668427 0.234131 0.634613\n0.716125 0.233826 0.632843\n0.761963 0.233704 0.631409\n0.804199 0.233612 0.629974\n0.841675 0.233734 0.628662\n0.874786 0.234100 0.627594\n0.903931 0.234528 0.626648\n0.929626 0.235046 0.625702\n0.952393 0.235687 0.624756\n0.972778 0.236359 0.624084\n0.991150 0.237061 0.623352\n1.000000 0.248535 0.622620\n1.000000 0.270996 0.622864\n0.000000 0.254028 0.625397\n0.032227 0.250153 0.636780\n0.077301 0.249603 0.635742\n0.119843 0.249207 0.634766\n0.159119 0.248962 0.633789\n0.195343 0.248718 0.632965\n0.228027 0.248810 0.632202\n0.258026 0.249329 0.631805\n0.286713 0.250641 0.632202\n0.314178 0.252075 0.632599\n0.340942 0.253357 0.632904\n0.368073 0.254608 0.633209\n0.396271 0.255920 0.633453\n0.426270 0.257294 0.633728\n0.458527 0.258789 0.634033\n0.493652 0.260223 0.634277\n0.532654 0.261688 0.634521\n0.576782 0.263214 0.634766\n0.624359 0.264801 0.635010\n0.672241 0.264832 0.633728\n0.719543 0.264526 0.632111\n0.764862 0.264404 0.630585\n0.806396 0.264282 0.629242\n0.843262 0.264404 0.627899\n0.875793 0.264709 0.626862\n0.904480 0.265045 0.625824\n0.929779 0.265533 0.625000\n0.952240 0.266052 0.624146\n0.972382 0.266693 0.623383\n0.990570 0.267334 0.622772\n1.000000 0.277496 0.622223\n1.000000 0.299286 0.623291\n0.000000 0.284454 0.626343\n0.032196 0.281738 0.637726\n0.077271 0.281342 0.636658\n0.120667 0.280914 0.635651\n0.161133 0.280670 0.634674\n0.197723 0.280518 0.633728\n0.230560 0.280609 0.632965\n0.260468 0.280945 0.632294\n0.288361 0.281372 0.631836\n0.315826 0.282593 0.632141\n0.342804 0.283844 0.632416\n0.370178 0.285156 0.632660\n0.398773 0.286530 0.632935\n0.429077 0.287964 0.633179\n0.461670 0.289307 0.633423\n0.497223 0.290802 0.633698\n0.536774 0.292236 0.633911\n0.581146 0.293793 0.634155\n0.628784 0.295288 0.634369\n0.676270 0.295166 0.632904\n0.723175 0.294861 0.631378\n0.767822 0.294617 0.629761\n0.808624 0.294586 0.628510\n0.844788 0.294647 0.627167\n0.876740 0.294891 0.626038\n0.904938 0.295197 0.625092\n0.929871 0.295624 0.624176\n0.952087 0.296051 0.623383\n0.971954 0.296600 0.622650\n0.989960 0.297119 0.621857\n1.000000 0.306091 0.621918\n1.000000 0.327179 0.623627\n0.000000 0.314545 0.627258\n0.033203 0.313202 0.638611\n0.079651 0.312775 0.637482\n0.123688 0.312378 0.636414\n0.164490 0.312225 0.635406\n0.201294 0.312225 0.634491\n0.234039 0.312225 0.633575\n0.263733 0.312286 0.632843\n0.291382 0.312500 0.632111\n0.318085 0.312958 0.631592\n0.345306 0.314301 0.631866\n0.372925 0.315582 0.632111\n0.401733 0.316956 0.632355\n0.432373 0.318329 0.632599\n0.465363 0.319763 0.632812\n0.501160 0.321198 0.633057\n0.541260 0.322662 0.633240\n0.585938 0.324158 0.633484\n0.633514 0.325592 0.633667\n0.680420 0.325256 0.632050\n0.726776 0.324982 0.630463\n0.770721 0.324799 0.628967\n0.810730 0.324646 0.627655\n0.846252 0.324738 0.626312\n0.877625 0.324921 0.625214\n0.905365 0.325134 0.624268\n0.929962 0.325531 0.623413\n0.951813 0.325897 0.622559\n0.971466 0.326263 0.621796\n0.989319 0.326752 0.621094\n1.000000 0.334442 0.621368\n1.000000 0.355011 0.623810\n0.000000 0.344849 0.630341\n0.036835 0.344635 0.639343\n0.083954 0.344238 0.638184\n0.128418 0.343933 0.637054\n0.169159 0.343689 0.635986\n0.205536 0.343536 0.635010\n0.238068 0.343628 0.634155\n0.267670 0.343750 0.633331\n0.295258 0.343964 0.632568\n0.321869 0.344330 0.631866\n0.348267 0.344757 0.631226\n0.376068 0.346130 0.631500\n0.405151 0.347504 0.631744\n0.436005 0.348846 0.631927\n0.469391 0.350311 0.632172\n0.505554 0.351746 0.632355\n0.546082 0.353088 0.632599\n0.590790 0.354584 0.632782\n0.638092 0.355804 0.632721\n0.684601 0.355408 0.631165\n0.730347 0.355103 0.629547\n0.773499 0.354919 0.628082\n0.812714 0.354797 0.626678\n0.847534 0.354828 0.625488\n0.878357 0.354919 0.624390\n0.905640 0.355133 0.623413\n0.929840 0.355377 0.622589\n0.951477 0.355682 0.621735\n0.970947 0.355988 0.620941\n0.988647 0.356354 0.620178\n1.000000 0.362946 0.620514\n1.000000 0.382874 0.623901\n0.000000 0.375977 0.635254\n0.042542 0.376373 0.640015\n0.089844 0.375916 0.638794\n0.134064 0.375458 0.637604\n0.174530 0.375275 0.636475\n0.210602 0.375244 0.635468\n0.242859 0.375336 0.634583\n0.272247 0.375549 0.633759\n0.299713 0.375763 0.632996\n0.326233 0.376099 0.632294\n0.352539 0.376556 0.631500\n0.379578 0.376923 0.630798\n0.408905 0.378326 0.631042\n0.440002 0.379669 0.631226\n0.473633 0.381073 0.631470\n0.510071 0.382446 0.631653\n0.550903 0.383789 0.631836\n0.595734 0.385193 0.631989\n0.642609 0.386169 0.631775\n0.688629 0.385803 0.630188\n0.733673 0.385468 0.628510\n0.776123 0.385254 0.627136\n0.814514 0.385101 0.625793\n0.848694 0.385071 0.624573\n0.878876 0.385132 0.623566\n0.905762 0.385254 0.622498\n0.929626 0.385437 0.621674\n0.951019 0.385651 0.620728\n0.970367 0.385956 0.619904\n0.987915 0.386261 0.619049\n1.000000 0.391693 0.619476\n1.000000 0.411072 0.624023\n0.000000 0.408661 0.641663\n0.049377 0.408203 0.640472\n0.096680 0.407837 0.639221\n0.140808 0.407440 0.638000\n0.180939 0.407318 0.636871\n0.216492 0.407318 0.635864\n0.248291 0.407471 0.634979\n0.277374 0.407745 0.634216\n0.304565 0.408081 0.633392\n0.330963 0.408447 0.632629\n0.357239 0.408813 0.631836\n0.384338 0.409149 0.631012\n0.412842 0.409546 0.630249\n0.444183 0.410858 0.630463\n0.477997 0.412231 0.630646\n0.514740 0.413574 0.630829\n0.555786 0.414886 0.630981\n0.600616 0.416199 0.631165\n0.646912 0.416901 0.630646\n0.692383 0.416534 0.629059\n0.736694 0.416168 0.627533\n0.778351 0.415924 0.626068\n0.816010 0.415771 0.624756\n0.849487 0.415680 0.623566\n0.879242 0.415649 0.622498\n0.905731 0.415741 0.621490\n0.929382 0.415924 0.620544\n0.950562 0.416107 0.619568\n0.969696 0.416321 0.618683\n0.987183 0.416626 0.617889\n1.000000 0.420837 0.618286\n1.000000 0.439667 0.624084\n0.007751 0.441071 0.642273\n0.057648 0.440643 0.640869\n0.104828 0.440247 0.639526\n0.148560 0.440002 0.638306\n0.188110 0.439972 0.637207\n0.222900 0.440033 0.636230\n0.254181 0.440247 0.635345\n0.282745 0.440552 0.634552\n0.309723 0.440887 0.633728\n0.335968 0.441284 0.632935\n0.362244 0.441650 0.632141\n0.389343 0.441986 0.631348\n0.417847 0.442291 0.630432\n0.448456 0.442627 0.629578\n0.482422 0.443909 0.629761\n0.519348 0.445190 0.629913\n0.560577 0.446472 0.630066\n0.605194 0.447693 0.630219\n0.650818 0.448181 0.629517\n0.695770 0.447754 0.627991\n0.739380 0.447418 0.626465\n0.780243 0.447083 0.625031\n0.817139 0.446869 0.623718\n0.850128 0.446747 0.622498\n0.879486 0.446686 0.621338\n0.905640 0.446716 0.620239\n0.929016 0.446869 0.619232\n0.950043 0.446991 0.618347\n0.969025 0.447235 0.617523\n0.986389 0.447510 0.616577\n1.000000 0.450562 0.616943\n1.000000 0.468842 0.624023\n0.017426 0.474182 0.642548\n0.067230 0.473816 0.641144\n0.114075 0.473511 0.639801\n0.157166 0.473389 0.638611\n0.195770 0.473389 0.637512\n0.229767 0.473450 0.636536\n0.260345 0.473785 0.635651\n0.288391 0.474060 0.634827\n0.315063 0.474457 0.634064\n0.341095 0.474854 0.633270\n0.367340 0.475128 0.632446\n0.394440 0.475555 0.631592\n0.422974 0.475647 0.630615\n0.453430 0.475830 0.629547\n0.486664 0.476227 0.628754\n0.523804 0.477448 0.628937\n0.565033 0.478607 0.629059\n0.609406 0.479797 0.629211\n0.654327 0.480011 0.628357\n0.698669 0.479553 0.626770\n0.741577 0.479156 0.625244\n0.781738 0.478821 0.623779\n0.818146 0.478546 0.622467\n0.850677 0.478424 0.621216\n0.879669 0.478363 0.620026\n0.905518 0.478455 0.618896\n0.928650 0.478485 0.617889\n0.949463 0.478668 0.616974\n0.968323 0.478882 0.616028\n0.985504 0.479065 0.615143\n1.000000 0.480957 0.615234\n1.000000 0.498688 0.623932\n0.028351 0.508209 0.642792\n0.077911 0.507843 0.641388\n0.124054 0.507660 0.640045\n0.166290 0.507599 0.638824\n0.203674 0.507690 0.637756\n0.236786 0.507843 0.636780\n0.266663 0.508148 0.635925\n0.294189 0.508392 0.635101\n0.320465 0.508850 0.634338\n0.346344 0.509186 0.633514\n0.372437 0.509491 0.632690\n0.399475 0.509796 0.631805\n0.428101 0.509979 0.630798\n0.458588 0.509979 0.629730\n0.491425 0.509979 0.628510\n0.527832 0.510376 0.627869\n0.569000 0.511505 0.627991\n0.613037 0.512604 0.628113\n0.657318 0.512634 0.627075\n0.701141 0.512146 0.625427\n0.743591 0.511719 0.623932\n0.783173 0.511261 0.622375\n0.819092 0.511047 0.621033\n0.851135 0.510895 0.619690\n0.879761 0.510803 0.618591\n0.905304 0.510834 0.617493\n0.928162 0.510895 0.616425\n0.948761 0.511047 0.615509\n0.967468 0.511169 0.614563\n0.984619 0.511353 0.613739\n1.000000 0.512146 0.613251\n1.000000 0.529999 0.624023\n0.040283 0.544861 0.642944\n0.089264 0.544556 0.641571\n0.134460 0.544281 0.640198\n0.175568 0.544281 0.639038\n0.211853 0.544434 0.637970\n0.243866 0.544525 0.637024\n0.272949 0.544861 0.636169\n0.299957 0.545166 0.635376\n0.325897 0.545532 0.634583\n0.351532 0.545898 0.633759\n0.377441 0.546173 0.632904\n0.404449 0.546387 0.632019\n0.432983 0.546539 0.630981\n0.463470 0.546478 0.629883\n0.496216 0.546356 0.628662\n0.532043 0.546021 0.627258\n0.572479 0.546539 0.626801\n0.616272 0.547577 0.626862\n0.660126 0.547363 0.625610\n0.703583 0.546783 0.623993\n0.745453 0.546326 0.622406\n0.784546 0.545898 0.620880\n0.819916 0.545624 0.619476\n0.851501 0.545410 0.618256\n0.879700 0.545288 0.617065\n0.904968 0.545258 0.615997\n0.927643 0.545319 0.614899\n0.948059 0.545349 0.613953\n0.966614 0.545502 0.613098\n0.983643 0.545654 0.612305\n0.999390 0.545868 0.611420\n1.000000 0.563507 0.623993\n0.052979 0.584106 0.643066\n0.101013 0.583954 0.641663\n0.145111 0.583740 0.640381\n0.184845 0.583649 0.639191\n0.219757 0.583710 0.638153\n0.250854 0.583893 0.637238\n0.279175 0.584167 0.636383\n0.305573 0.584412 0.635590\n0.331116 0.584717 0.634796\n0.356506 0.585022 0.633972\n0.382263 0.585175 0.633087\n0.409149 0.585358 0.632172\n0.437592 0.585358 0.631195\n0.467926 0.585175 0.630066\n0.500580 0.584930 0.628784\n0.536499 0.584412 0.627319\n0.576080 0.583923 0.625793\n0.619446 0.584656 0.625488\n0.662872 0.584198 0.624084\n0.705872 0.583588 0.622406\n0.747314 0.583038 0.620789\n0.785828 0.582550 0.619293\n0.820618 0.582184 0.617889\n0.851776 0.581940 0.616669\n0.879639 0.581726 0.615417\n0.904633 0.581696 0.614349\n0.927032 0.581635 0.613373\n0.947296 0.581665 0.612457\n0.965698 0.581818 0.611542\n0.982635 0.581909 0.610840\n0.998352 0.582031 0.610077\n1.000000 0.598755 0.624115\n0.065918 0.625702 0.643158\n0.112885 0.625336 0.641785\n0.155640 0.625031 0.640472\n0.193939 0.624939 0.639343\n0.227509 0.624939 0.638336\n0.257599 0.625061 0.637421\n0.285126 0.625244 0.636566\n0.310974 0.625488 0.635773\n0.336121 0.625702 0.634979\n0.361176 0.625854 0.634155\n0.386780 0.625977 0.633331\n0.413483 0.625946 0.632385\n0.441833 0.625824 0.631348\n0.472137 0.625549 0.630127\n0.504913 0.625092 0.628784\n0.541016 0.624573 0.627289\n0.580719 0.623932 0.625732\n0.622650 0.623291 0.624084\n0.665527 0.622589 0.622437\n0.708130 0.621918 0.620789\n0.749054 0.621246 0.619171\n0.787048 0.620728 0.617767\n0.821350 0.620331 0.616394\n0.852142 0.620117 0.615143\n0.879700 0.619843 0.614044\n0.904388 0.619781 0.613068\n0.926636 0.619720 0.612122\n0.946747 0.619751 0.611267\n0.965057 0.619781 0.610504\n0.981903 0.619873 0.609772\n0.997559 0.620026 0.609100\n1.000000 0.635162 0.624268\n0.077820 0.667328 0.642303\n0.123322 0.666809 0.640808\n0.164795 0.666534 0.639557\n0.201477 0.666351 0.638367\n0.233765 0.666260 0.637421\n0.262787 0.666260 0.636414\n0.289551 0.666260 0.635559\n0.314850 0.666351 0.634796\n0.339508 0.666412 0.633881\n0.364288 0.666382 0.633118\n0.389618 0.666290 0.632172\n0.416260 0.666168 0.631165\n0.444611 0.665833 0.630005\n0.475128 0.665466 0.628754\n0.507965 0.664886 0.627319\n0.544250 0.664185 0.625732\n0.583832 0.663422 0.624115\n0.625671 0.662689 0.622528\n0.669617 0.663361 0.622223\n0.711792 0.662537 0.620605\n0.752258 0.661865 0.619019\n0.789673 0.661255 0.617584\n0.823456 0.660797 0.616272\n0.853790 0.660431 0.615082\n0.880951 0.660217 0.614014\n0.905396 0.660034 0.613068\n0.927338 0.659912 0.612152\n0.947235 0.659882 0.611359\n0.965393 0.659851 0.610657\n0.982086 0.659851 0.609955\n0.997620 0.659912 0.609375\n1.000000 0.672272 0.624573\n0.088745 0.708649 0.640564\n0.132843 0.708130 0.639343\n0.172760 0.707733 0.638031\n0.207947 0.707458 0.636932\n0.238983 0.707245 0.635986\n0.267059 0.707123 0.635010\n0.293121 0.707092 0.634216\n0.317871 0.707001 0.633331\n0.342163 0.706940 0.632538\n0.366760 0.706787 0.631653\n0.392120 0.706512 0.630646\n0.418884 0.706299 0.629608\n0.447357 0.705902 0.628418\n0.477936 0.705353 0.627075\n0.510895 0.704651 0.625641\n0.547302 0.703888 0.624084\n0.586853 0.702972 0.622375\n0.628601 0.702393 0.620972\n0.672485 0.703094 0.620911\n0.715363 0.703461 0.620422\n0.755280 0.702667 0.618896\n0.792145 0.702057 0.617493\n0.825439 0.701508 0.616211\n0.855286 0.701050 0.615051\n0.882141 0.700653 0.614014\n0.906219 0.700439 0.613098\n0.927948 0.700256 0.612274\n0.947662 0.700134 0.611511\n0.965698 0.700043 0.610870\n0.982269 0.699982 0.610260\n0.997711 0.699951 0.609741\n1.000000 0.709320 0.625000\n0.099243 0.749512 0.639008\n0.141754 0.748840 0.637756\n0.180115 0.748352 0.636505\n0.213715 0.747986 0.635498\n0.243622 0.747681 0.634521\n0.270813 0.747467 0.633575\n0.296143 0.747253 0.632782\n0.320526 0.747040 0.631958\n0.344696 0.746857 0.631104\n0.369232 0.746582 0.630157\n0.394714 0.746307 0.629059\n0.421478 0.745850 0.627960\n0.450043 0.745392 0.626740\n0.480804 0.744690 0.625427\n0.513824 0.743927 0.623901\n0.550385 0.743011 0.622345\n0.589783 0.742065 0.620667\n0.631500 0.741516 0.619415\n0.674927 0.742157 0.619385\n0.717834 0.742859 0.619354\n0.758148 0.743011 0.618774\n0.794464 0.742249 0.617432\n0.827240 0.741577 0.616211\n0.856689 0.741119 0.615082\n0.883240 0.740692 0.614136\n0.907013 0.740295 0.613281\n0.928528 0.740082 0.612488\n0.948059 0.739899 0.611816\n0.965942 0.739716 0.611237\n0.982422 0.739532 0.610748\n0.997772 0.739807 0.610504\n1.000000 0.746521 0.626068\n0.108887 0.789001 0.637482\n0.149872 0.788269 0.636292\n0.186554 0.787689 0.635101\n0.218811 0.787201 0.634064\n0.247620 0.786774 0.633087\n0.274109 0.786438 0.632233\n0.299103 0.786163 0.631317\n0.323273 0.785858 0.630463\n0.347321 0.785522 0.629547\n0.371765 0.785156 0.628571\n0.397247 0.784698 0.627533\n0.424164 0.784210 0.626373\n0.452789 0.783600 0.625092\n0.483582 0.782806 0.623749\n0.516785 0.781952 0.622223\n0.553284 0.780945 0.620667\n0.592621 0.779907 0.619019\n0.634216 0.779419 0.617950\n0.677277 0.780060 0.617920\n0.719696 0.780579 0.617950\n0.760010 0.781189 0.617950\n0.796631 0.781219 0.617432\n0.828949 0.780426 0.616302\n0.858002 0.779846 0.615234\n0.884186 0.779419 0.614319\n0.907715 0.778992 0.613556\n0.929016 0.778687 0.612885\n0.948395 0.778320 0.612274\n0.966187 0.778381 0.611938\n0.982605 0.778564 0.611786\n0.997803 0.778717 0.611725\n1.000000 0.782318 0.627441\n0.117676 0.826477 0.636017\n0.157043 0.825653 0.634857\n0.192108 0.824982 0.633728\n0.223236 0.824402 0.632690\n0.251373 0.823914 0.631714\n0.277374 0.823486 0.630768\n0.301971 0.823029 0.629852\n0.325928 0.822693 0.628967\n0.349915 0.822266 0.627930\n0.374359 0.821777 0.627014\n0.399811 0.821228 0.625916\n0.426819 0.820618 0.624786\n0.455505 0.819916 0.623505\n0.486389 0.819061 0.622162\n0.519653 0.818054 0.620605\n0.556152 0.817047 0.619080\n0.595276 0.815887 0.617432\n0.636841 0.815521 0.616638\n0.679443 0.816010 0.616638\n0.721313 0.816498 0.616638\n0.761139 0.816986 0.616730\n0.797821 0.817474 0.616821\n0.830505 0.817474 0.616455\n0.859131 0.816772 0.615509\n0.885040 0.816132 0.614655\n0.908356 0.815735 0.613983\n0.929565 0.815521 0.613556\n0.948792 0.815460 0.613342\n0.966431 0.815491 0.613251\n0.982635 0.815430 0.613190\n0.997772 0.815430 0.613342\n1.000000 0.816162 0.629089\n0.125336 0.861237 0.634735\n0.163330 0.860443 0.633484\n0.197357 0.859650 0.632233\n0.227661 0.858978 0.631195\n0.255096 0.858459 0.630188\n0.280640 0.857910 0.629333\n0.304932 0.857452 0.628418\n0.328674 0.856964 0.627472\n0.352539 0.856445 0.626434\n0.376953 0.855927 0.625427\n0.402435 0.855255 0.624390\n0.429413 0.854584 0.623260\n0.458191 0.853760 0.621979\n0.489075 0.852905 0.620636\n0.522369 0.851807 0.619080\n0.558838 0.850677 0.617615\n0.597839 0.849487 0.616058\n0.639069 0.849182 0.615356\n0.681396 0.849609 0.615448\n0.722809 0.849976 0.615570\n0.762085 0.850311 0.615662\n0.798370 0.850739 0.615814\n0.831085 0.851135 0.616028\n0.860199 0.851135 0.615906\n0.885925 0.850677 0.615356\n0.909149 0.850403 0.614990\n0.930084 0.850128 0.614777\n0.949066 0.849976 0.614716\n0.966492 0.849792 0.614746\n0.982666 0.849640 0.614899\n0.997772 0.849518 0.615112\n1.000000 0.847595 0.630920\n0.132477 0.892975 0.633331\n0.169434 0.892029 0.631989\n0.202454 0.891235 0.630920\n0.231934 0.890533 0.629852\n0.258820 0.889954 0.628784\n0.283905 0.889343 0.627838\n0.307861 0.888824 0.626862\n0.331421 0.888214 0.626007\n0.355164 0.887695 0.624969\n0.379517 0.887024 0.624023\n0.404999 0.886353 0.622955\n0.432007 0.885620 0.621735\n0.460846 0.884705 0.620483\n0.491699 0.883728 0.619232\n0.524994 0.882629 0.617859\n0.561401 0.881470 0.616302\n0.600220 0.880249 0.614807\n0.641266 0.879974 0.614319\n0.683197 0.880310 0.614441\n0.724152 0.880615 0.614624\n0.762970 0.880890 0.614838\n0.798706 0.881195 0.615021\n0.831299 0.881592 0.615479\n0.860626 0.882111 0.616089\n0.886780 0.882385 0.616577\n0.909576 0.882019 0.616394\n0.930298 0.881592 0.616333\n0.949188 0.881317 0.616394\n0.966522 0.880951 0.616547\n0.982666 0.880707 0.616791\n0.997711 0.880432 0.617065\n1.000000 0.876190 0.632874\n0.139557 0.921234 0.631989\n0.175507 0.920349 0.630798\n0.207458 0.919525 0.629517\n0.236084 0.918793 0.628387\n0.262451 0.918091 0.627441\n0.287140 0.917480 0.626526\n0.310760 0.916870 0.625488\n0.334198 0.916290 0.624664\n0.357788 0.915619 0.623688\n0.382050 0.914978 0.622589\n0.407532 0.914215 0.621613\n0.434540 0.913391 0.620514\n0.463379 0.912476 0.619293\n0.494263 0.911438 0.617950\n0.527496 0.910339 0.616638\n0.563812 0.909088 0.615234\n0.602356 0.907867 0.613800\n0.643219 0.907684 0.613525\n0.684692 0.907928 0.613708\n0.725189 0.908142 0.613953\n0.763947 0.908447 0.614380\n0.799530 0.908813 0.614960\n0.831604 0.909180 0.615631\n0.860352 0.909515 0.616364\n0.886322 0.909851 0.617218\n0.909851 0.910187 0.618011\n0.930389 0.909668 0.618073\n0.949249 0.909332 0.618317\n0.966522 0.908844 0.618500\n0.982635 0.908508 0.618805\n0.997681 0.908142 0.619171\n1.000000 0.902008 0.634979\n0.146545 0.946442 0.630585\n0.181335 0.945496 0.629303\n0.212311 0.944733 0.628143\n0.240265 0.943939 0.627075\n0.265991 0.943268 0.626129\n0.290253 0.942596 0.625244\n0.313660 0.941986 0.624329\n0.336823 0.941315 0.623352\n0.360352 0.940674 0.622467\n0.384521 0.939941 0.621399\n0.410034 0.939209 0.620483\n0.436981 0.938324 0.619293\n0.465759 0.937378 0.618225\n0.496582 0.936310 0.617035\n0.529724 0.935181 0.615601\n0.565948 0.934052 0.614258\n0.604279 0.932739 0.613007\n0.644867 0.932617 0.612915\n0.686340 0.932800 0.613342\n0.726868 0.933105 0.613922\n0.764954 0.933350 0.614594\n0.799744 0.933594 0.615295\n0.831299 0.933807 0.616150\n0.859741 0.934082 0.617004\n0.885651 0.934296 0.617920\n0.908997 0.934509 0.618896\n0.930298 0.934753 0.619904\n0.949219 0.934418 0.620300\n0.966522 0.933960 0.620605\n0.982605 0.933472 0.620911\n0.997620 0.933136 0.621277\n1.000000 0.925293 0.637085\n0.153137 0.969025 0.629333\n0.186890 0.968109 0.628082\n0.217010 0.967285 0.626862\n0.244171 0.966522 0.625977\n0.269409 0.965851 0.624878\n0.293274 0.965210 0.624023\n0.316376 0.964569 0.623047\n0.339355 0.963867 0.622223\n0.362762 0.963196 0.621368\n0.386902 0.962463 0.620422\n0.412262 0.961670 0.619385\n0.439148 0.960846 0.618469\n0.467926 0.959839 0.617310\n0.498657 0.958832 0.616211\n0.531769 0.957703 0.614990\n0.567810 0.956482 0.613708\n0.606293 0.955292 0.612579\n0.647278 0.955261 0.612915\n0.688141 0.955444 0.613617\n0.727783 0.955566 0.614349\n0.765137 0.955719 0.615143\n0.799500 0.955872 0.615997\n0.830719 0.956024 0.616913\n0.859039 0.956177 0.617889\n0.884705 0.956329 0.618896\n0.908112 0.956482 0.619934\n0.929443 0.956635 0.621002\n0.948975 0.956787 0.622131\n0.966522 0.956573 0.622711\n0.982635 0.956116 0.623108\n0.997620 0.955597 0.623810\n1.000000 0.946503 0.639923\n0.159515 0.989410 0.627899\n0.192200 0.988525 0.626831\n0.221466 0.987701 0.625732\n0.247955 0.987030 0.624786\n0.272705 0.986298 0.623840\n0.296143 0.985657 0.622864\n0.318939 0.985016 0.622009\n0.341766 0.984314 0.621185\n0.364960 0.983643 0.620392\n0.389038 0.982880 0.619537\n0.414368 0.982147 0.618561\n0.441162 0.981262 0.617584\n0.469879 0.980316 0.616638\n0.500458 0.979248 0.615540\n0.533936 0.978149 0.614563\n0.570404 0.977020 0.613617\n0.608459 0.975861 0.612793\n0.648651 0.975800 0.613373\n0.688843 0.975891 0.614197\n0.727875 0.976013 0.615082\n0.764832 0.976074 0.615967\n0.798920 0.976166 0.617004\n0.829956 0.976196 0.617950\n0.858215 0.976257 0.618988\n0.883942 0.976379 0.620117\n0.907410 0.976440 0.621155\n0.928711 0.976562 0.622253\n0.948334 0.976624 0.623383\n0.966278 0.976776 0.624725\n0.982697 0.976654 0.626007\n0.997620 0.976196 0.626984\n1.000000 0.965881 0.643219\n0.176819 1.000000 0.625793\n0.207123 1.000000 0.625214\n0.234314 1.000000 0.624359\n0.259125 1.000000 0.623718\n0.282318 1.000000 0.623016\n0.304474 1.000000 0.622314\n0.326172 1.000000 0.621704\n0.347870 1.000000 0.620972\n0.369995 1.000000 0.620087\n0.393005 1.000000 0.619232\n0.417236 1.000000 0.618347\n0.442932 1.000000 0.617065\n0.471832 0.999115 0.616241\n0.502991 0.998077 0.615540\n0.536255 0.997009 0.614746\n0.572021 0.995880 0.614044\n0.609436 0.994720 0.613464\n0.648987 0.994598 0.614105\n0.688721 0.994629 0.615051\n0.727509 0.994659 0.616058\n0.764252 0.994720 0.617065\n0.798309 0.994690 0.618073\n0.829285 0.994720 0.619141\n0.857635 0.994720 0.620239\n0.883331 0.994751 0.621338\n0.906769 0.994781 0.622437\n0.928253 0.994843 0.623840\n0.947815 0.994873 0.625397\n0.965698 0.994904 0.627045\n0.982300 0.994934 0.628845\n0.997620 0.994843 0.630493\n1.000000 0.983582 0.646606\n0.207397 1.000000 0.623962\n0.236267 1.000000 0.623901\n0.262329 1.000000 0.623993\n0.286194 1.000000 0.624084\n0.308563 1.000000 0.624115\n0.330109 1.000000 0.624207\n0.351135 1.000000 0.624390\n0.372314 1.000000 0.624542\n0.393921 1.000000 0.624634\n0.416443 1.000000 0.624908\n0.440491 1.000000 0.625366\n0.466278 1.000000 0.625824\n0.493561 1.000000 0.626526\n0.522888 1.000000 0.627197\n0.555023 1.000000 0.628021\n0.589355 1.000000 0.628937\n0.625305 1.000000 0.629730\n0.662048 1.000000 0.630707\n0.698700 1.000000 0.631683\n0.734528 1.000000 0.632660\n0.768524 1.000000 0.633728\n0.800018 1.000000 0.634827\n0.828796 1.000000 0.635834\n0.855103 1.000000 0.636932\n0.879150 1.000000 0.638245\n0.900970 1.000000 0.639771\n0.920898 1.000000 0.641418\n0.939148 1.000000 0.643127\n0.956024 1.000000 0.644836\n0.971619 1.000000 0.646576\n0.986145 1.000000 0.647919\n1.000000 1.000000 0.649292\n0.000000 0.015778 0.631622\n0.030304 0.000977 0.648651\n0.078308 0.004791 0.649994\n0.123260 0.008484 0.651184\n0.164520 0.010529 0.651855\n0.201324 0.012177 0.652405\n0.234222 0.013824 0.652863\n0.263855 0.015350 0.653381\n0.291168 0.016907 0.653839\n0.317383 0.018433 0.654327\n0.343048 0.019897 0.654816\n0.368713 0.021393 0.655273\n0.395203 0.022919 0.655701\n0.423309 0.024384 0.656128\n0.453308 0.025940 0.656525\n0.485718 0.027588 0.656952\n0.521576 0.029144 0.657379\n0.562469 0.030792 0.657715\n0.607910 0.032532 0.658112\n0.656464 0.034241 0.658447\n0.704468 0.034088 0.657074\n0.751617 0.033905 0.655518\n0.795868 0.033936 0.654205\n0.835876 0.034210 0.652893\n0.871155 0.034363 0.651794\n0.902252 0.034882 0.650635\n0.929657 0.035553 0.649841\n0.953888 0.036285 0.648987\n0.975433 0.037354 0.648071\n0.994751 0.038422 0.647491\n1.000000 0.058197 0.643127\n1.000000 0.084808 0.638489\n0.000000 0.054260 0.636505\n0.031372 0.042053 0.650391\n0.078400 0.043579 0.650696\n0.122528 0.045197 0.651215\n0.163116 0.046753 0.651733\n0.199921 0.048218 0.652252\n0.232452 0.049652 0.652710\n0.262238 0.051117 0.653229\n0.289948 0.052551 0.653687\n0.316193 0.053955 0.654144\n0.341705 0.055389 0.654572\n0.367493 0.056885 0.654999\n0.394135 0.058319 0.655426\n0.421997 0.059814 0.655823\n0.452087 0.061279 0.656219\n0.484558 0.062897 0.656616\n0.520599 0.064514 0.657013\n0.562195 0.066223 0.657349\n0.608154 0.067993 0.657715\n0.657166 0.069794 0.658020\n0.705261 0.069672 0.656525\n0.752411 0.069519 0.654938\n0.796539 0.069366 0.653625\n0.836304 0.069427 0.652283\n0.871399 0.069672 0.651154\n0.902283 0.070190 0.649994\n0.929504 0.070984 0.649078\n0.953522 0.071747 0.648193\n0.974945 0.072754 0.647491\n0.994141 0.073883 0.646820\n1.000000 0.092224 0.642914\n1.000000 0.118103 0.639130\n0.000000 0.090546 0.639893\n0.032135 0.079437 0.651672\n0.077148 0.079224 0.650665\n0.120972 0.080536 0.651123\n0.161377 0.081940 0.651581\n0.198334 0.083313 0.652069\n0.231201 0.084686 0.652557\n0.260956 0.086029 0.652985\n0.288544 0.087341 0.653473\n0.314880 0.088745 0.653900\n0.340546 0.090118 0.654297\n0.366272 0.091583 0.654694\n0.392975 0.092987 0.655121\n0.420929 0.094482 0.655518\n0.451050 0.096008 0.655884\n0.484314 0.097656 0.656250\n0.520782 0.099274 0.656555\n0.562866 0.101044 0.656952\n0.609314 0.102875 0.657257\n0.658508 0.104706 0.657562\n0.706604 0.104248 0.655884\n0.753571 0.103912 0.654388\n0.797577 0.103851 0.652832\n0.837006 0.103943 0.651550\n0.871826 0.104340 0.650360\n0.902496 0.104919 0.649384\n0.929443 0.105621 0.648468\n0.953247 0.106445 0.647552\n0.974487 0.107452 0.646790\n0.993500 0.108490 0.645966\n1.000000 0.125397 0.642914\n1.000000 0.150635 0.639557\n0.000000 0.125122 0.641174\n0.031891 0.115387 0.652771\n0.076599 0.115021 0.651733\n0.119232 0.114960 0.650940\n0.160065 0.116211 0.651428\n0.196960 0.117493 0.651917\n0.229858 0.118805 0.652344\n0.259766 0.120117 0.652771\n0.287354 0.121399 0.653198\n0.313629 0.122772 0.653595\n0.339325 0.124115 0.654022\n0.365173 0.125549 0.654388\n0.391937 0.126984 0.654816\n0.420563 0.128479 0.655121\n0.451324 0.130066 0.655487\n0.484802 0.131744 0.655853\n0.522064 0.133453 0.656158\n0.564484 0.135254 0.656433\n0.611023 0.136780 0.656708\n0.660309 0.138275 0.656921\n0.708435 0.137939 0.655212\n0.755310 0.137665 0.653625\n0.798981 0.137665 0.652130\n0.838013 0.137817 0.650848\n0.872498 0.138184 0.649719\n0.902802 0.138733 0.648560\n0.929443 0.139496 0.647644\n0.953003 0.140259 0.646851\n0.974030 0.141235 0.645966\n0.992889 0.142212 0.645355\n1.000000 0.157745 0.642761\n1.000000 0.182220 0.639984\n0.000000 0.158875 0.641754\n0.031494 0.150421 0.653809\n0.076538 0.150024 0.652802\n0.119080 0.149658 0.651825\n0.158722 0.149658 0.651215\n0.195648 0.150879 0.651642\n0.228668 0.152069 0.652100\n0.258423 0.153381 0.652466\n0.286102 0.154694 0.652893\n0.312439 0.156036 0.653290\n0.338257 0.157379 0.653656\n0.364594 0.158783 0.654022\n0.391968 0.160370 0.654388\n0.421021 0.161835 0.654755\n0.452148 0.163544 0.655060\n0.486267 0.165192 0.655365\n0.523773 0.166626 0.655640\n0.566559 0.168243 0.655914\n0.613586 0.169800 0.656128\n0.662781 0.171234 0.656097\n0.710876 0.170929 0.654419\n0.757416 0.170715 0.652893\n0.800659 0.170685 0.651489\n0.839325 0.170898 0.650085\n0.873291 0.171265 0.648987\n0.903229 0.171753 0.647827\n0.929535 0.172485 0.646851\n0.952850 0.173279 0.646179\n0.973633 0.174133 0.645294\n0.992310 0.174988 0.644531\n1.000000 0.189117 0.642426\n1.000000 0.212952 0.640289\n0.000000 0.191620 0.642700\n0.031403 0.184418 0.654877\n0.076508 0.183960 0.653809\n0.119049 0.183563 0.652771\n0.158356 0.183167 0.651794\n0.194336 0.183441 0.651367\n0.227295 0.184692 0.651794\n0.257263 0.185913 0.652191\n0.285034 0.187286 0.652557\n0.311951 0.188629 0.652954\n0.338318 0.189972 0.653290\n0.365021 0.191467 0.653656\n0.392853 0.193024 0.653961\n0.422211 0.194611 0.654266\n0.453735 0.196014 0.654541\n0.488098 0.197418 0.654816\n0.526215 0.199005 0.655060\n0.569427 0.200562 0.655304\n0.616699 0.202118 0.655548\n0.665863 0.203369 0.655304\n0.713776 0.203064 0.653687\n0.759888 0.202881 0.652069\n0.802673 0.202942 0.650574\n0.840759 0.203125 0.649353\n0.874207 0.203400 0.648071\n0.903717 0.203949 0.647247\n0.929657 0.204529 0.646301\n0.952698 0.205231 0.645264\n0.973267 0.206024 0.644623\n0.991730 0.206787 0.643860\n1.000000 0.219543 0.642181\n1.000000 0.242706 0.640686\n0.000000 0.223175 0.643646\n0.031372 0.217407 0.655762\n0.076447 0.217072 0.654724\n0.118958 0.216492 0.653687\n0.158295 0.216248 0.652710\n0.193878 0.216064 0.651917\n0.226196 0.216522 0.651459\n0.256775 0.217804 0.651825\n0.285309 0.219116 0.652191\n0.312500 0.220490 0.652557\n0.339203 0.221893 0.652863\n0.366272 0.223389 0.653198\n0.394226 0.224731 0.653473\n0.423859 0.226135 0.653748\n0.455902 0.227570 0.653961\n0.490601 0.229004 0.654205\n0.529205 0.230530 0.654449\n0.572998 0.232117 0.654694\n0.620422 0.233673 0.654877\n0.669373 0.234741 0.654572\n0.717010 0.234467 0.652924\n0.762665 0.234253 0.651276\n0.804779 0.234222 0.649811\n0.842224 0.234406 0.648621\n0.875183 0.234650 0.647369\n0.904205 0.235138 0.646423\n0.929840 0.235687 0.645538\n0.952576 0.236298 0.644684\n0.972839 0.236969 0.643799\n0.991180 0.237640 0.643005\n1.000000 0.249176 0.641937\n1.000000 0.271576 0.641022\n0.000000 0.254150 0.644531\n0.031342 0.249756 0.656708\n0.076385 0.249207 0.655609\n0.118927 0.248749 0.654572\n0.158447 0.248505 0.653564\n0.194885 0.248383 0.652679\n0.227600 0.248474 0.651825\n0.257629 0.248993 0.651459\n0.286346 0.250366 0.651794\n0.313843 0.251770 0.652130\n0.340637 0.252991 0.652374\n0.367859 0.254364 0.652679\n0.396179 0.255646 0.652924\n0.426178 0.257050 0.653137\n0.458618 0.258514 0.653381\n0.493774 0.259979 0.653595\n0.532928 0.261505 0.653809\n0.576996 0.263031 0.654022\n0.624542 0.264557 0.654236\n0.673218 0.265442 0.653717\n0.720490 0.265137 0.652008\n0.765625 0.264923 0.650421\n0.807007 0.264923 0.649048\n0.843750 0.265015 0.647827\n0.876160 0.265259 0.646667\n0.904755 0.265686 0.645630\n0.929993 0.266144 0.644653\n0.952362 0.266663 0.643768\n0.972504 0.267242 0.643066\n0.990601 0.267822 0.642212\n1.000000 0.278107 0.641418\n1.000000 0.299835 0.641388\n0.000000 0.284637 0.645386\n0.031311 0.281494 0.657623\n0.076599 0.280914 0.656464\n0.120239 0.280548 0.655365\n0.160736 0.280304 0.654297\n0.197449 0.280212 0.653351\n0.230347 0.280334 0.652557\n0.260254 0.280640 0.651764\n0.288208 0.281036 0.651276\n0.315613 0.282227 0.651550\n0.342621 0.283539 0.651825\n0.370209 0.284882 0.652100\n0.398712 0.286224 0.652313\n0.429108 0.287689 0.652557\n0.461823 0.289093 0.652740\n0.497406 0.290558 0.652954\n0.537109 0.292023 0.653137\n0.581512 0.293549 0.653351\n0.629150 0.295044 0.653534\n0.677277 0.295685 0.652802\n0.724060 0.295380 0.651215\n0.768555 0.295166 0.649689\n0.809204 0.295166 0.648193\n0.845245 0.295197 0.646973\n0.877136 0.295410 0.645874\n0.905212 0.295746 0.644714\n0.930084 0.296143 0.643921\n0.952209 0.296600 0.643005\n0.972046 0.297119 0.642212\n0.990021 0.297607 0.641479\n1.000000 0.306580 0.641083\n1.000000 0.327667 0.641724\n0.000000 0.314728 0.646393\n0.032806 0.312805 0.658386\n0.079468 0.312378 0.657196\n0.123627 0.312073 0.656036\n0.164459 0.311890 0.654968\n0.201324 0.311859 0.653992\n0.233948 0.311859 0.653107\n0.263611 0.312012 0.652283\n0.291321 0.312164 0.651520\n0.317993 0.312653 0.651001\n0.345245 0.313965 0.651184\n0.372955 0.315338 0.651428\n0.401733 0.316681 0.651642\n0.432526 0.318146 0.651855\n0.465637 0.319550 0.652069\n0.501526 0.320953 0.652283\n0.541687 0.322449 0.652466\n0.586334 0.323914 0.652679\n0.633789 0.325378 0.652832\n0.681458 0.325775 0.651917\n0.727631 0.325470 0.650269\n0.771454 0.325256 0.648773\n0.811371 0.325195 0.647339\n0.846710 0.325195 0.646027\n0.877960 0.325378 0.644867\n0.905609 0.325684 0.643860\n0.930084 0.325958 0.642944\n0.951935 0.326355 0.642090\n0.971527 0.326782 0.641357\n0.989349 0.327148 0.640625\n1.000000 0.334900 0.640411\n1.000000 0.355347 0.641968\n0.000000 0.344818 0.649902\n0.036835 0.344330 0.659027\n0.084137 0.343903 0.657806\n0.128723 0.343750 0.656616\n0.169220 0.343384 0.655457\n0.205627 0.343262 0.654449\n0.238129 0.343292 0.653534\n0.267670 0.343445 0.652740\n0.295349 0.343750 0.651947\n0.321869 0.344055 0.651154\n0.348328 0.344543 0.650513\n0.376190 0.345917 0.650757\n0.405273 0.347260 0.650970\n0.436279 0.348633 0.651154\n0.469696 0.350098 0.651337\n0.505890 0.351501 0.651520\n0.546417 0.352905 0.651703\n0.591187 0.354370 0.651917\n0.638519 0.355743 0.652069\n0.685547 0.355927 0.650879\n0.731140 0.355560 0.649323\n0.774231 0.355377 0.647797\n0.813293 0.355255 0.646393\n0.847992 0.355255 0.645111\n0.878693 0.355408 0.643951\n0.905884 0.355591 0.642975\n0.930023 0.355835 0.642090\n0.951508 0.356110 0.641205\n0.971008 0.356415 0.640472\n0.988678 0.356750 0.639679\n1.000000 0.363403 0.639618\n1.000000 0.383270 0.641968\n0.000000 0.375824 0.655090\n0.042969 0.376038 0.659607\n0.090210 0.375488 0.658264\n0.134399 0.375214 0.657074\n0.174805 0.374969 0.655884\n0.210876 0.374908 0.654877\n0.243011 0.374969 0.653931\n0.272369 0.375244 0.653076\n0.299866 0.375519 0.652313\n0.326263 0.375854 0.651489\n0.352692 0.376282 0.650696\n0.379730 0.376740 0.650024\n0.409058 0.378052 0.650208\n0.440308 0.379456 0.650391\n0.473999 0.380829 0.650574\n0.510406 0.382233 0.650757\n0.551392 0.383606 0.650909\n0.596100 0.384979 0.651062\n0.643250 0.386322 0.651184\n0.689545 0.386230 0.649872\n0.734497 0.385925 0.648254\n0.776733 0.385681 0.646790\n0.815033 0.385559 0.645416\n0.849060 0.385468 0.644135\n0.879211 0.385529 0.643005\n0.905945 0.385681 0.641998\n0.929749 0.385864 0.641113\n0.951141 0.386078 0.640259\n0.970398 0.386322 0.639343\n0.987946 0.386658 0.638550\n1.000000 0.392059 0.638641\n1.000000 0.411407 0.641998\n0.000244 0.408386 0.661377\n0.049927 0.407776 0.660004\n0.097321 0.407349 0.658661\n0.141418 0.407135 0.657410\n0.181335 0.406952 0.656219\n0.216858 0.407013 0.655182\n0.248535 0.407196 0.654266\n0.277527 0.407471 0.653412\n0.304749 0.407837 0.652618\n0.331085 0.408142 0.651825\n0.357483 0.408569 0.651031\n0.384521 0.408966 0.650177\n0.413055 0.409302 0.649384\n0.444489 0.410645 0.649597\n0.478394 0.412018 0.649750\n0.515137 0.413361 0.649872\n0.556274 0.414673 0.650024\n0.600922 0.415955 0.650177\n0.647736 0.417297 0.650299\n0.693298 0.416992 0.648773\n0.737488 0.416626 0.647156\n0.778992 0.416321 0.645691\n0.816528 0.416168 0.644318\n0.849823 0.416077 0.643066\n0.879547 0.416077 0.641998\n0.905914 0.416138 0.640930\n0.929474 0.416260 0.639984\n0.950684 0.416473 0.639069\n0.969757 0.416687 0.638245\n0.987213 0.416962 0.637360\n1.000000 0.421234 0.637451\n1.000000 0.440002 0.642059\n0.008636 0.440674 0.661743\n0.058380 0.440338 0.660278\n0.105682 0.439972 0.658905\n0.149261 0.439728 0.657654\n0.188629 0.439636 0.656494\n0.223450 0.439758 0.655487\n0.254486 0.439972 0.654541\n0.283081 0.440308 0.653717\n0.309998 0.440704 0.652893\n0.336151 0.441101 0.652130\n0.362488 0.441437 0.651306\n0.389587 0.441711 0.650421\n0.418060 0.442017 0.649475\n0.448761 0.442444 0.648621\n0.482727 0.443695 0.648773\n0.519745 0.444977 0.648895\n0.560974 0.446259 0.649078\n0.605469 0.447449 0.649200\n0.651764 0.448578 0.649231\n0.696594 0.448181 0.647552\n0.740051 0.447754 0.645996\n0.780762 0.447479 0.644531\n0.817596 0.447266 0.643219\n0.850464 0.447083 0.641968\n0.879761 0.447052 0.640778\n0.905853 0.447144 0.639832\n0.929169 0.447266 0.638702\n0.950134 0.447449 0.637848\n0.969116 0.447632 0.636871\n0.986420 0.447845 0.636078\n1.000000 0.451019 0.636108\n1.000000 0.469177 0.641998\n0.018524 0.473846 0.661957\n0.068268 0.473572 0.660522\n0.115082 0.473267 0.659149\n0.157959 0.473175 0.657898\n0.196381 0.473053 0.656738\n0.230316 0.473236 0.655731\n0.260681 0.473541 0.654816\n0.288757 0.473785 0.653961\n0.315369 0.474274 0.653198\n0.341339 0.474609 0.652405\n0.367584 0.474976 0.651550\n0.394714 0.475250 0.650635\n0.423218 0.475464 0.649658\n0.453766 0.475586 0.648529\n0.486969 0.476013 0.647766\n0.524109 0.477203 0.647888\n0.565369 0.478394 0.648010\n0.609558 0.479523 0.648102\n0.655243 0.480377 0.647980\n0.699402 0.479950 0.646332\n0.742218 0.479492 0.644745\n0.782349 0.479156 0.643311\n0.818573 0.478912 0.641937\n0.851013 0.478760 0.640625\n0.879913 0.478729 0.639465\n0.905701 0.478790 0.638367\n0.928741 0.478882 0.637329\n0.949585 0.479034 0.636414\n0.968353 0.479187 0.635559\n0.985565 0.479431 0.634613\n1.000000 0.481323 0.634460\n1.000000 0.498993 0.641968\n0.029541 0.507904 0.662109\n0.079010 0.507568 0.660645\n0.125153 0.507385 0.659332\n0.167084 0.507324 0.658051\n0.204376 0.507416 0.656952\n0.237366 0.507568 0.655945\n0.267029 0.507812 0.655090\n0.294495 0.508179 0.654236\n0.320770 0.508606 0.653442\n0.346527 0.508911 0.652588\n0.372650 0.509216 0.651733\n0.399719 0.509491 0.650818\n0.428314 0.509735 0.649841\n0.458832 0.509827 0.648682\n0.491669 0.509735 0.647430\n0.528137 0.510162 0.646759\n0.569305 0.511261 0.646881\n0.613159 0.512299 0.647003\n0.658112 0.512970 0.646606\n0.701874 0.512451 0.644958\n0.744171 0.511993 0.643402\n0.783752 0.511658 0.641937\n0.819519 0.511383 0.640472\n0.851471 0.511230 0.639130\n0.879974 0.511139 0.638031\n0.905426 0.511169 0.636871\n0.928314 0.511261 0.635895\n0.948853 0.511322 0.634857\n0.967560 0.511536 0.633972\n0.984650 0.511719 0.633087\n1.000000 0.512451 0.632660\n1.000000 0.530334 0.641968\n0.041840 0.544586 0.662201\n0.090485 0.544312 0.660767\n0.135681 0.544128 0.659454\n0.176422 0.543945 0.658203\n0.212463 0.544128 0.657166\n0.244476 0.544342 0.656158\n0.273315 0.544617 0.655304\n0.300293 0.544922 0.654419\n0.326111 0.545258 0.653625\n0.351654 0.545624 0.652802\n0.377655 0.545929 0.651947\n0.404663 0.546112 0.650970\n0.433167 0.546173 0.649963\n0.463684 0.546173 0.648804\n0.496399 0.546021 0.647522\n0.532196 0.545685 0.646149\n0.572662 0.546234 0.645660\n0.616364 0.547272 0.645721\n0.660919 0.547729 0.645142\n0.704285 0.547180 0.643494\n0.746094 0.546631 0.641907\n0.785095 0.546234 0.640289\n0.820343 0.545959 0.638916\n0.851807 0.545715 0.637665\n0.879974 0.545624 0.636475\n0.905151 0.545593 0.635315\n0.927795 0.545624 0.634369\n0.948181 0.545715 0.633362\n0.966705 0.545807 0.632416\n0.983673 0.546051 0.631683\n0.999390 0.546143 0.630859\n1.000000 0.563812 0.642059\n0.054443 0.583801 0.662292\n0.102295 0.583527 0.660858\n0.146332 0.583435 0.659576\n0.185730 0.583313 0.658356\n0.220490 0.583405 0.657288\n0.251404 0.583649 0.656311\n0.279449 0.583893 0.655426\n0.305878 0.584198 0.654572\n0.331329 0.584442 0.653809\n0.356598 0.584717 0.652954\n0.382446 0.584930 0.652100\n0.409271 0.585022 0.651123\n0.437744 0.585022 0.650085\n0.468048 0.584869 0.648895\n0.500702 0.584503 0.647614\n0.536713 0.584076 0.646149\n0.576263 0.583618 0.644592\n0.619537 0.584259 0.644287\n0.663666 0.584534 0.643555\n0.706573 0.583923 0.641846\n0.747894 0.583344 0.640228\n0.786316 0.582855 0.638672\n0.820984 0.582489 0.637329\n0.852081 0.582214 0.635986\n0.879883 0.582062 0.634888\n0.904785 0.582001 0.633728\n0.927155 0.582001 0.632751\n0.947357 0.582001 0.631775\n0.965759 0.582123 0.630920\n0.982666 0.582214 0.630188\n0.998352 0.582367 0.629425\n1.000000 0.599030 0.642181\n0.067413 0.625305 0.662323\n0.114136 0.624908 0.660889\n0.156860 0.624695 0.659607\n0.194733 0.624634 0.658447\n0.228180 0.624695 0.657410\n0.258057 0.624756 0.656433\n0.285370 0.624939 0.655579\n0.311279 0.625153 0.654785\n0.336304 0.625397 0.653931\n0.361267 0.625458 0.653137\n0.386902 0.625549 0.652252\n0.413544 0.625580 0.651245\n0.441833 0.625397 0.650208\n0.472290 0.625153 0.648987\n0.504974 0.624695 0.647583\n0.541199 0.624176 0.646088\n0.580841 0.623566 0.644501\n0.622711 0.622833 0.642822\n0.666260 0.622864 0.641846\n0.708771 0.622162 0.640167\n0.749573 0.621490 0.638580\n0.787415 0.620941 0.637024\n0.821594 0.620483 0.635681\n0.852264 0.620209 0.634399\n0.879730 0.619934 0.633240\n0.904297 0.619781 0.632141\n0.926514 0.619781 0.631165\n0.946533 0.619720 0.630341\n0.964813 0.619751 0.629517\n0.981628 0.619812 0.628784\n0.997223 0.619904 0.628021\n1.000000 0.635437 0.642365\n0.080170 0.667694 0.662170\n0.125519 0.667175 0.660675\n0.166687 0.666870 0.659332\n0.202972 0.666656 0.658173\n0.235138 0.666626 0.657166\n0.263947 0.666626 0.656158\n0.290527 0.666626 0.655273\n0.315765 0.666687 0.654388\n0.340332 0.666718 0.653564\n0.364990 0.666718 0.652710\n0.390381 0.666626 0.651764\n0.417023 0.666443 0.650726\n0.445404 0.666168 0.649597\n0.475861 0.665741 0.648224\n0.508698 0.665161 0.646851\n0.545105 0.664520 0.645203\n0.584717 0.663696 0.643555\n0.626312 0.662872 0.641846\n0.669678 0.662811 0.640961\n0.711761 0.662109 0.639282\n0.752045 0.661438 0.637756\n0.789398 0.660828 0.636292\n0.823059 0.660370 0.634979\n0.853363 0.660004 0.633759\n0.880463 0.659729 0.632660\n0.904816 0.659576 0.631714\n0.926727 0.659424 0.630798\n0.946716 0.659454 0.630005\n0.964844 0.659363 0.629272\n0.981537 0.659424 0.628571\n0.997040 0.659485 0.627991\n1.000000 0.672516 0.642639\n0.090942 0.708923 0.660370\n0.134949 0.708435 0.659088\n0.174561 0.708038 0.657745\n0.209290 0.707764 0.656647\n0.240234 0.707550 0.655579\n0.268097 0.707458 0.654663\n0.294006 0.707367 0.653870\n0.318695 0.707306 0.653046\n0.342896 0.707184 0.652130\n0.367462 0.707031 0.651184\n0.392883 0.706848 0.650177\n0.419586 0.706512 0.649109\n0.448120 0.706146 0.647949\n0.478729 0.705627 0.646606\n0.511688 0.704895 0.645081\n0.548187 0.704132 0.643494\n0.587677 0.703278 0.641846\n0.629028 0.702301 0.640076\n0.672516 0.702667 0.639648\n0.715271 0.702942 0.639130\n0.755035 0.702209 0.637604\n0.791870 0.701508 0.636200\n0.825012 0.700989 0.634918\n0.854828 0.700562 0.633728\n0.881622 0.700226 0.632690\n0.905701 0.699982 0.631744\n0.927399 0.699799 0.630920\n0.947113 0.699585 0.630157\n0.965088 0.699554 0.629517\n0.981689 0.699463 0.628906\n0.997101 0.699463 0.628357\n1.000000 0.709625 0.643097\n0.101257 0.749756 0.658844\n0.143707 0.749084 0.657532\n0.181732 0.748657 0.656281\n0.214996 0.748260 0.655212\n0.244751 0.747955 0.654114\n0.271698 0.747742 0.653259\n0.296967 0.747528 0.652374\n0.321381 0.747345 0.651520\n0.345459 0.747070 0.650574\n0.369965 0.746826 0.649628\n0.395416 0.746552 0.648590\n0.422180 0.746094 0.647491\n0.450836 0.745575 0.646271\n0.481537 0.744934 0.644836\n0.514618 0.744110 0.643372\n0.551147 0.743225 0.641754\n0.590607 0.742279 0.640076\n0.631714 0.741272 0.638367\n0.674957 0.741699 0.638123\n0.717651 0.742340 0.638092\n0.757874 0.742432 0.637512\n0.794128 0.741699 0.636139\n0.826813 0.741058 0.634888\n0.856262 0.740540 0.633759\n0.882660 0.740173 0.632812\n0.906494 0.739777 0.631927\n0.927979 0.739532 0.631165\n0.947479 0.739319 0.630463\n0.965363 0.739166 0.629883\n0.981842 0.739136 0.629364\n0.997192 0.739502 0.629150\n1.000000 0.746918 0.644165\n0.110870 0.789215 0.657257\n0.151611 0.788452 0.655884\n0.187988 0.787903 0.654724\n0.219910 0.787415 0.653778\n0.248596 0.787018 0.652740\n0.274933 0.786652 0.651794\n0.299866 0.786346 0.650940\n0.324036 0.786072 0.649994\n0.348053 0.785736 0.649109\n0.372528 0.785339 0.648071\n0.397980 0.784943 0.646942\n0.424866 0.784393 0.645874\n0.453522 0.783813 0.644592\n0.484344 0.782990 0.643158\n0.517517 0.782104 0.641693\n0.554108 0.781128 0.640045\n0.593292 0.780090 0.638458\n0.634308 0.778961 0.636780\n0.677216 0.779480 0.636658\n0.719452 0.780090 0.636688\n0.759735 0.780579 0.636688\n0.796265 0.780609 0.636139\n0.828491 0.779907 0.634979\n0.857544 0.779358 0.633911\n0.883636 0.778900 0.633026\n0.907135 0.778412 0.632202\n0.928467 0.778076 0.631531\n0.947815 0.777832 0.630920\n0.965637 0.778015 0.630615\n0.981964 0.778168 0.630493\n0.997223 0.778351 0.630402\n1.000000 0.782684 0.645538\n0.119385 0.826599 0.655823\n0.158569 0.825836 0.654510\n0.193329 0.825134 0.653351\n0.224335 0.824554 0.652313\n0.252319 0.824036 0.651276\n0.278229 0.823639 0.650299\n0.302765 0.823273 0.649414\n0.326752 0.822845 0.648468\n0.350616 0.822388 0.647430\n0.375092 0.821930 0.646545\n0.400574 0.821381 0.645416\n0.427490 0.820770 0.644165\n0.456299 0.820068 0.643005\n0.487061 0.819244 0.641602\n0.520325 0.818207 0.640045\n0.556885 0.817169 0.638489\n0.596008 0.816040 0.636871\n0.636719 0.814972 0.635345\n0.679352 0.815460 0.635345\n0.721100 0.815918 0.635376\n0.760864 0.816406 0.635468\n0.797424 0.816864 0.635529\n0.830017 0.816864 0.635193\n0.858673 0.816193 0.634216\n0.884430 0.815582 0.633362\n0.907745 0.815155 0.632660\n0.928986 0.815033 0.632263\n0.948212 0.815033 0.632019\n0.965820 0.815002 0.631897\n0.982086 0.815063 0.631897\n0.997192 0.815033 0.631927\n1.000000 0.816467 0.647095\n0.126862 0.861389 0.654419\n0.164764 0.860565 0.652954\n0.198486 0.859772 0.651947\n0.228668 0.859131 0.650818\n0.256104 0.858612 0.649780\n0.281464 0.858063 0.648773\n0.305756 0.857605 0.647949\n0.329468 0.857086 0.646973\n0.353241 0.856598 0.645966\n0.377716 0.856049 0.644928\n0.403168 0.855408 0.643860\n0.430145 0.854675 0.642700\n0.458954 0.853882 0.641388\n0.489807 0.852997 0.640015\n0.523041 0.851898 0.638580\n0.559570 0.850769 0.637054\n0.598511 0.849579 0.635498\n0.639038 0.848602 0.634094\n0.681274 0.849030 0.634186\n0.722595 0.849396 0.634277\n0.761780 0.849731 0.634369\n0.797943 0.850128 0.634552\n0.830566 0.850555 0.634735\n0.859650 0.850525 0.634613\n0.885437 0.850189 0.634094\n0.908539 0.849854 0.633728\n0.929443 0.849640 0.633514\n0.948456 0.849487 0.633362\n0.965912 0.849304 0.633392\n0.982086 0.849121 0.633514\n0.997192 0.849060 0.633636\n1.000000 0.847839 0.648834\n0.134003 0.893036 0.652954\n0.170898 0.892151 0.651672\n0.203552 0.891327 0.650543\n0.232941 0.890625 0.649323\n0.259766 0.890045 0.648438\n0.284698 0.889435 0.647308\n0.308624 0.888885 0.646484\n0.332184 0.888306 0.645538\n0.355865 0.887756 0.644440\n0.380219 0.887115 0.643494\n0.405701 0.886414 0.642395\n0.432709 0.885681 0.641296\n0.461517 0.884796 0.640015\n0.492371 0.883820 0.638702\n0.525696 0.882721 0.637207\n0.562073 0.881531 0.635773\n0.600830 0.880341 0.634277\n0.641144 0.879395 0.633026\n0.682983 0.879700 0.633148\n0.723785 0.880005 0.633331\n0.762543 0.880310 0.633514\n0.798248 0.880585 0.633759\n0.830841 0.881104 0.634247\n0.860107 0.881592 0.634888\n0.886169 0.881897 0.635315\n0.908997 0.881470 0.635101\n0.929657 0.881042 0.635040\n0.948547 0.880737 0.635010\n0.965942 0.880463 0.635162\n0.982086 0.880219 0.635315\n0.997162 0.879944 0.635559\n1.000000 0.876373 0.650726\n0.141083 0.921295 0.651428\n0.176819 0.920380 0.650299\n0.208557 0.919586 0.649109\n0.237122 0.918854 0.647919\n0.263367 0.918182 0.647034\n0.287872 0.917542 0.645996\n0.311554 0.916931 0.645020\n0.334900 0.916351 0.644165\n0.358429 0.915680 0.643066\n0.382721 0.915039 0.642120\n0.408203 0.914307 0.641083\n0.435181 0.913452 0.639954\n0.464020 0.912537 0.638733\n0.494812 0.911499 0.637451\n0.528137 0.910400 0.636078\n0.564392 0.909180 0.634674\n0.602905 0.907928 0.633179\n0.642975 0.907104 0.632202\n0.684479 0.907288 0.632385\n0.724762 0.907532 0.632629\n0.763641 0.907867 0.633087\n0.799133 0.908264 0.633667\n0.831055 0.908630 0.634369\n0.859772 0.908966 0.635071\n0.885681 0.909302 0.635864\n0.909210 0.909637 0.636688\n0.929749 0.909119 0.636719\n0.948578 0.908783 0.636780\n0.965912 0.908325 0.636993\n0.982025 0.908020 0.637268\n0.997101 0.907684 0.637512\n1.000000 0.902161 0.652710\n0.147980 0.946472 0.650146\n0.182617 0.945557 0.648834\n0.213379 0.944733 0.647736\n0.241211 0.943970 0.646698\n0.266876 0.943298 0.645599\n0.290985 0.942627 0.644623\n0.314392 0.942017 0.643799\n0.337463 0.941376 0.642853\n0.360931 0.940674 0.641937\n0.385193 0.940002 0.640930\n0.410583 0.939240 0.639954\n0.437531 0.938354 0.638885\n0.466339 0.937408 0.637726\n0.497131 0.936340 0.636444\n0.530365 0.935242 0.635071\n0.566498 0.934082 0.633698\n0.604736 0.932770 0.632355\n0.644623 0.932007 0.631592\n0.686249 0.932251 0.632050\n0.726562 0.932526 0.632660\n0.764557 0.932770 0.633270\n0.799194 0.933044 0.634033\n0.830658 0.933258 0.634796\n0.859161 0.933502 0.635620\n0.884918 0.933716 0.636536\n0.908356 0.933960 0.637451\n0.929596 0.934204 0.638397\n0.948608 0.933838 0.638763\n0.965912 0.933411 0.639008\n0.982056 0.932983 0.639282\n0.997040 0.932556 0.639557\n1.000000 0.925385 0.654816\n0.154572 0.969025 0.648743\n0.188141 0.968140 0.647522\n0.217957 0.967316 0.646484\n0.245148 0.966553 0.645447\n0.270233 0.965912 0.644379\n0.293976 0.965210 0.643463\n0.317078 0.964569 0.642517\n0.340027 0.963867 0.641663\n0.363342 0.963196 0.640778\n0.387482 0.962494 0.639801\n0.412872 0.961700 0.638885\n0.439728 0.960846 0.637878\n0.468506 0.959869 0.636841\n0.499146 0.958832 0.635620\n0.532318 0.957703 0.634399\n0.568329 0.956512 0.633057\n0.606964 0.955322 0.632019\n0.647003 0.954681 0.631653\n0.687744 0.954865 0.632294\n0.727264 0.954987 0.632996\n0.764557 0.955139 0.633789\n0.798798 0.955292 0.634613\n0.830078 0.955414 0.635529\n0.858368 0.955566 0.636444\n0.884064 0.955780 0.637390\n0.907410 0.955902 0.638397\n0.928741 0.956055 0.639404\n0.948334 0.956207 0.640411\n0.966003 0.955994 0.641022\n0.982086 0.955536 0.641418\n0.997040 0.955139 0.642090\n1.000000 0.946625 0.657623\n0.160919 0.989410 0.647552\n0.193359 0.988495 0.646271\n0.222351 0.987732 0.645233\n0.248840 0.987000 0.644196\n0.273376 0.986298 0.643250\n0.296844 0.985657 0.642395\n0.319611 0.985016 0.641602\n0.342346 0.984344 0.640717\n0.365540 0.983643 0.639862\n0.389618 0.982941 0.639038\n0.414886 0.982117 0.638031\n0.441711 0.981293 0.637085\n0.470398 0.980316 0.636047\n0.500916 0.979279 0.634979\n0.534698 0.978210 0.634033\n0.570892 0.977020 0.633057\n0.608887 0.975861 0.632172\n0.648254 0.975220 0.632050\n0.688293 0.975342 0.632812\n0.727234 0.975433 0.633667\n0.764160 0.975525 0.634613\n0.798279 0.975586 0.635468\n0.829315 0.975647 0.636444\n0.857605 0.975769 0.637451\n0.883331 0.975800 0.638458\n0.906769 0.975891 0.639465\n0.928101 0.976013 0.640503\n0.947662 0.976105 0.641663\n0.965698 0.976196 0.643066\n0.982147 0.976135 0.644287\n0.997040 0.975647 0.645233\n1.000000 0.965912 0.660828\n0.178070 1.000000 0.644928\n0.208191 1.000000 0.644287\n0.235199 1.000000 0.643524\n0.259918 1.000000 0.642883\n0.282990 1.000000 0.642303\n0.305115 1.000000 0.641571\n0.326721 1.000000 0.640839\n0.348328 1.000000 0.640198\n0.370483 1.000000 0.639496\n0.393494 1.000000 0.638580\n0.417725 1.000000 0.637665\n0.443420 1.000000 0.636536\n0.472595 0.999084 0.635803\n0.503510 0.998047 0.635071\n0.536743 0.997009 0.634277\n0.572327 0.995880 0.633423\n0.609680 0.994720 0.632812\n0.648407 0.994049 0.632721\n0.688019 0.994080 0.633606\n0.726776 0.994110 0.634552\n0.763550 0.994141 0.635559\n0.797607 0.994141 0.636536\n0.828583 0.994141 0.637543\n0.857025 0.994202 0.638580\n0.882812 0.994232 0.639618\n0.906281 0.994293 0.640717\n0.927673 0.994293 0.642120\n0.947266 0.994293 0.643677\n0.965118 0.994385 0.645325\n0.981720 0.994385 0.647003\n0.997040 0.994324 0.648651\n1.000000 0.983612 0.663940\n0.208557 1.000000 0.642029\n0.237274 1.000000 0.642120\n0.263092 1.000000 0.642090\n0.286896 1.000000 0.642212\n0.309204 1.000000 0.642212\n0.330597 1.000000 0.642242\n0.351654 1.000000 0.642395\n0.372772 1.000000 0.642639\n0.394379 1.000000 0.642700\n0.416870 1.000000 0.642944\n0.441101 1.000000 0.643372\n0.466797 1.000000 0.644043\n0.493896 1.000000 0.644562\n0.523193 1.000000 0.645325\n0.555237 1.000000 0.646088\n0.589569 1.000000 0.646851\n0.625427 1.000000 0.647766\n0.662201 1.000000 0.648621\n0.698853 1.000000 0.649567\n0.734680 1.000000 0.650543\n0.768677 1.000000 0.651520\n0.800140 1.000000 0.652496\n0.828949 1.000000 0.653534\n0.855316 1.000000 0.654633\n0.879303 1.000000 0.655975\n0.901093 1.000000 0.657471\n0.921082 1.000000 0.659027\n0.939301 1.000000 0.660706\n0.956055 1.000000 0.662445\n0.971649 1.000000 0.663910\n0.986206 1.000000 0.665222\n1.000000 1.000000 0.666504\n0.000000 0.016846 0.652283\n0.029877 0.001495 0.669678\n0.077759 0.005280 0.670837\n0.122589 0.008514 0.671783\n0.163635 0.010223 0.672302\n0.200409 0.011902 0.672791\n0.233246 0.013428 0.673248\n0.262817 0.015015 0.673706\n0.290344 0.016510 0.674194\n0.316559 0.018066 0.674622\n0.342224 0.019531 0.674988\n0.367920 0.021057 0.675415\n0.394501 0.022522 0.675842\n0.422455 0.024048 0.676239\n0.452545 0.025665 0.676605\n0.485016 0.027222 0.677032\n0.520844 0.028870 0.677368\n0.561768 0.030487 0.677704\n0.607361 0.032257 0.678040\n0.655914 0.033997 0.678375\n0.704742 0.034729 0.677734\n0.751862 0.034637 0.676178\n0.796295 0.034698 0.674774\n0.836121 0.034851 0.673401\n0.871399 0.035126 0.672241\n0.902466 0.035583 0.671173\n0.929840 0.036194 0.670135\n0.954010 0.037109 0.669434\n0.975525 0.038055 0.668549\n0.994781 0.039185 0.667725\n1.000000 0.059082 0.662628\n1.000000 0.085602 0.657257\n0.000000 0.055267 0.656799\n0.030762 0.042145 0.671051\n0.077545 0.043304 0.671173\n0.121582 0.044891 0.671661\n0.162323 0.046387 0.672089\n0.198975 0.047852 0.672577\n0.231628 0.049286 0.673065\n0.261414 0.050751 0.673431\n0.289093 0.052185 0.673859\n0.315308 0.053589 0.674316\n0.340942 0.055054 0.674713\n0.366669 0.056519 0.675110\n0.393311 0.057922 0.675507\n0.421265 0.059448 0.675873\n0.451294 0.061035 0.676270\n0.483917 0.062592 0.676605\n0.520020 0.064240 0.676910\n0.561676 0.065979 0.677307\n0.607635 0.067749 0.677582\n0.656799 0.069641 0.677887\n0.705719 0.070312 0.677094\n0.752808 0.070160 0.675568\n0.796936 0.070007 0.674133\n0.836609 0.070068 0.672638\n0.871643 0.070404 0.671448\n0.902527 0.070984 0.670441\n0.929657 0.071625 0.669525\n0.953674 0.072571 0.668640\n0.975006 0.073517 0.667755\n0.994141 0.074646 0.667053\n1.000000 0.092987 0.662720\n1.000000 0.118866 0.657776\n0.000000 0.090912 0.659576\n0.031219 0.079102 0.672089\n0.076172 0.078857 0.671051\n0.119904 0.080139 0.671387\n0.160461 0.081543 0.671875\n0.197449 0.082916 0.672333\n0.230377 0.084259 0.672729\n0.260132 0.085663 0.673218\n0.287811 0.086975 0.673615\n0.314148 0.088348 0.674011\n0.339691 0.089783 0.674377\n0.365479 0.091187 0.674744\n0.392151 0.092651 0.675110\n0.420166 0.094177 0.675476\n0.450562 0.095703 0.675812\n0.483826 0.097382 0.676147\n0.520508 0.099091 0.676483\n0.562500 0.100830 0.676758\n0.609009 0.102661 0.677124\n0.658234 0.104462 0.677368\n0.707092 0.104828 0.676422\n0.754089 0.104584 0.674896\n0.798004 0.104553 0.673370\n0.837372 0.104614 0.671906\n0.872101 0.105072 0.670898\n0.902679 0.105591 0.669647\n0.929626 0.106354 0.668640\n0.953400 0.107239 0.667938\n0.974579 0.108185 0.666992\n0.993530 0.109253 0.666229\n1.000000 0.126221 0.662598\n1.000000 0.151337 0.658234\n0.000000 0.125458 0.660645\n0.030853 0.114960 0.673096\n0.075684 0.114716 0.672058\n0.118378 0.114532 0.671173\n0.159180 0.115845 0.671631\n0.196106 0.117126 0.672058\n0.229004 0.118378 0.672485\n0.258911 0.119720 0.672852\n0.286530 0.121033 0.673279\n0.312927 0.122375 0.673615\n0.338501 0.123779 0.674042\n0.364380 0.125214 0.674377\n0.391296 0.126617 0.674683\n0.420013 0.128235 0.675049\n0.450897 0.129791 0.675354\n0.484497 0.131500 0.675690\n0.521881 0.133270 0.676025\n0.564331 0.134918 0.676239\n0.610931 0.136566 0.676483\n0.660370 0.138245 0.676727\n0.709045 0.138580 0.675659\n0.755859 0.138336 0.674072\n0.799469 0.138336 0.672546\n0.838409 0.138519 0.671173\n0.872864 0.138885 0.670044\n0.903046 0.139435 0.668884\n0.929657 0.140167 0.668091\n0.953186 0.141052 0.667114\n0.974121 0.141968 0.666321\n0.992920 0.142975 0.665649\n1.000000 0.158478 0.662415\n1.000000 0.182922 0.658478\n0.000000 0.159149 0.661133\n0.030548 0.149994 0.674133\n0.075623 0.149658 0.673004\n0.118195 0.149170 0.671997\n0.157837 0.149292 0.671326\n0.194763 0.150452 0.671722\n0.227814 0.151703 0.672119\n0.257690 0.152985 0.672516\n0.285278 0.154297 0.672882\n0.311676 0.155640 0.673248\n0.337646 0.157104 0.673584\n0.364075 0.158508 0.673920\n0.391541 0.160065 0.674255\n0.420532 0.161591 0.674591\n0.451904 0.163269 0.674896\n0.486053 0.164886 0.675140\n0.523682 0.166412 0.675385\n0.566498 0.167938 0.675659\n0.613586 0.169617 0.675873\n0.663055 0.171326 0.676086\n0.711578 0.171478 0.674957\n0.758057 0.171356 0.673340\n0.801239 0.171356 0.671753\n0.839722 0.171570 0.670380\n0.873657 0.171967 0.669250\n0.903473 0.172424 0.668152\n0.929749 0.173126 0.667084\n0.953003 0.173920 0.666260\n0.973694 0.174774 0.665527\n0.992371 0.175690 0.664703\n1.000000 0.189850 0.662048\n1.000000 0.213593 0.658966\n0.000000 0.191650 0.662048\n0.030518 0.183960 0.675049\n0.075592 0.183472 0.673920\n0.118134 0.183044 0.672852\n0.157471 0.182770 0.671906\n0.193512 0.183105 0.671417\n0.226501 0.184296 0.671783\n0.256439 0.185577 0.672119\n0.284485 0.186920 0.672516\n0.311493 0.188293 0.672852\n0.337860 0.189728 0.673157\n0.364685 0.191162 0.673462\n0.392517 0.192749 0.673798\n0.421906 0.194275 0.674072\n0.453613 0.195679 0.674286\n0.488007 0.197174 0.674530\n0.526154 0.198761 0.674774\n0.569458 0.200317 0.674957\n0.616791 0.201965 0.675201\n0.666260 0.203583 0.675385\n0.714447 0.203674 0.674042\n0.760651 0.203522 0.672455\n0.803223 0.203491 0.671021\n0.841095 0.203705 0.669739\n0.874573 0.204041 0.668365\n0.903931 0.204559 0.667450\n0.929871 0.205139 0.666504\n0.952850 0.205872 0.665588\n0.973358 0.206635 0.664703\n0.991791 0.207428 0.664093\n1.000000 0.220276 0.661743\n1.000000 0.243256 0.659271\n0.000000 0.223419 0.662903\n0.030457 0.217010 0.675934\n0.075562 0.216492 0.674805\n0.118103 0.216095 0.673737\n0.157440 0.215851 0.672760\n0.193054 0.215820 0.671844\n0.225647 0.216125 0.671387\n0.256348 0.217438 0.671753\n0.284821 0.218781 0.672028\n0.312073 0.220184 0.672363\n0.338989 0.221710 0.672729\n0.365997 0.223083 0.673004\n0.393982 0.224426 0.673187\n0.423737 0.225800 0.673462\n0.455811 0.227234 0.673676\n0.490662 0.228760 0.673889\n0.529419 0.230316 0.674164\n0.573151 0.231842 0.674347\n0.620697 0.233459 0.674530\n0.670105 0.235138 0.674744\n0.717773 0.235016 0.673279\n0.763428 0.234833 0.671661\n0.805359 0.234772 0.670074\n0.842682 0.234985 0.668823\n0.875549 0.235291 0.667664\n0.904510 0.235718 0.666687\n0.930023 0.236267 0.665619\n0.952698 0.236877 0.664734\n0.972931 0.237549 0.663879\n0.991211 0.238251 0.663239\n1.000000 0.249786 0.661560\n1.000000 0.272095 0.659760\n0.000000 0.254272 0.663757\n0.030426 0.249237 0.676758\n0.075531 0.248871 0.675629\n0.118073 0.248535 0.674561\n0.157959 0.248199 0.673492\n0.194489 0.248077 0.672577\n0.227203 0.248108 0.671692\n0.257385 0.248657 0.671265\n0.286072 0.250031 0.671600\n0.313477 0.251404 0.671906\n0.340424 0.252716 0.672119\n0.367676 0.253998 0.672394\n0.396057 0.255371 0.672607\n0.426208 0.256836 0.672821\n0.458588 0.258209 0.673035\n0.493927 0.259766 0.673279\n0.533264 0.261292 0.673431\n0.577301 0.262787 0.673645\n0.624878 0.264374 0.673828\n0.674103 0.265930 0.674011\n0.721313 0.265686 0.672333\n0.766296 0.265472 0.670807\n0.807587 0.265442 0.669342\n0.844238 0.265564 0.668060\n0.876556 0.265839 0.666840\n0.904999 0.266205 0.665802\n0.930176 0.266663 0.664795\n0.952545 0.267181 0.663910\n0.972534 0.267792 0.663025\n0.990662 0.268402 0.662415\n1.000000 0.278625 0.661072\n1.000000 0.300293 0.659943\n0.000000 0.284668 0.664551\n0.030365 0.281006 0.677612\n0.076172 0.280548 0.676422\n0.119904 0.280151 0.675293\n0.160492 0.280029 0.674194\n0.197205 0.279968 0.673218\n0.230133 0.280090 0.672394\n0.260040 0.280243 0.671539\n0.288025 0.280670 0.671051\n0.315430 0.281952 0.671295\n0.342590 0.283264 0.671509\n0.370026 0.284576 0.671722\n0.398712 0.286011 0.671967\n0.429199 0.287415 0.672150\n0.461975 0.288849 0.672394\n0.497681 0.290314 0.672577\n0.537445 0.291840 0.672760\n0.581787 0.293335 0.672943\n0.629425 0.294830 0.673096\n0.678192 0.296204 0.673157\n0.724915 0.295929 0.671387\n0.769318 0.295715 0.669800\n0.809814 0.295654 0.668457\n0.845764 0.295746 0.667084\n0.877502 0.295990 0.666016\n0.905457 0.296265 0.664978\n0.930267 0.296692 0.664032\n0.952332 0.297180 0.663116\n0.972107 0.297607 0.662415\n0.990051 0.298157 0.661591\n1.000000 0.307098 0.660522\n1.000000 0.328094 0.660248\n0.000000 0.314636 0.665894\n0.032532 0.312531 0.678314\n0.079376 0.312042 0.677094\n0.123566 0.311768 0.675873\n0.164459 0.311646 0.674774\n0.201202 0.311493 0.673737\n0.233826 0.311523 0.672852\n0.263550 0.311646 0.671997\n0.291229 0.311890 0.671204\n0.318054 0.312408 0.670624\n0.345306 0.313721 0.670898\n0.372894 0.315033 0.671082\n0.401886 0.316467 0.671265\n0.432678 0.317871 0.671448\n0.465820 0.319305 0.671661\n0.501770 0.320770 0.671844\n0.542023 0.322235 0.671967\n0.586670 0.323730 0.672180\n0.634216 0.325165 0.672363\n0.682404 0.326233 0.672089\n0.728516 0.325958 0.670380\n0.772186 0.325775 0.668945\n0.811920 0.325684 0.667511\n0.847168 0.325714 0.666168\n0.878326 0.325897 0.665009\n0.905853 0.326141 0.664032\n0.930298 0.326447 0.663025\n0.952057 0.326843 0.662262\n0.971588 0.327209 0.661499\n0.989410 0.327637 0.660614\n1.000000 0.335358 0.660004\n1.000000 0.355804 0.660461\n0.000000 0.344727 0.669678\n0.036926 0.343933 0.678925\n0.084259 0.343567 0.677643\n0.128754 0.343231 0.676392\n0.169342 0.342987 0.675201\n0.205658 0.342896 0.674194\n0.238159 0.342896 0.673248\n0.267731 0.343079 0.672394\n0.295349 0.343384 0.671600\n0.321899 0.343811 0.670776\n0.348419 0.344299 0.670135\n0.376282 0.345642 0.670319\n0.405457 0.347046 0.670532\n0.436462 0.348389 0.670685\n0.470001 0.349823 0.670898\n0.506226 0.351257 0.671082\n0.546814 0.352692 0.671265\n0.591553 0.354126 0.671387\n0.638916 0.355530 0.671509\n0.686554 0.356384 0.671143\n0.732025 0.356079 0.669434\n0.774963 0.355865 0.667938\n0.813812 0.355743 0.666565\n0.848419 0.355743 0.665314\n0.879028 0.355896 0.664124\n0.906097 0.356049 0.663086\n0.930176 0.356293 0.662231\n0.951630 0.356537 0.661316\n0.971069 0.356873 0.660522\n0.988708 0.357178 0.659729\n1.000000 0.363770 0.659149\n1.000000 0.383636 0.660431\n0.000000 0.375824 0.675140\n0.043304 0.375671 0.679413\n0.090454 0.375214 0.678040\n0.134735 0.374756 0.676758\n0.175171 0.374634 0.675598\n0.211151 0.374573 0.674500\n0.243256 0.374695 0.673584\n0.272583 0.374908 0.672729\n0.299957 0.375305 0.671906\n0.326447 0.375641 0.671112\n0.352844 0.376038 0.670288\n0.379913 0.376495 0.669556\n0.409332 0.377869 0.669739\n0.440552 0.379181 0.669922\n0.474304 0.380615 0.670074\n0.510864 0.381989 0.670227\n0.551758 0.383392 0.670349\n0.596497 0.384766 0.670532\n0.643677 0.386078 0.670654\n0.690491 0.386719 0.669983\n0.735291 0.386383 0.668365\n0.777435 0.386108 0.666870\n0.815552 0.385986 0.665466\n0.849457 0.385986 0.664215\n0.879456 0.385986 0.663177\n0.906128 0.386078 0.662048\n0.929932 0.386230 0.661102\n0.951233 0.386444 0.660187\n0.970490 0.386780 0.659363\n0.988007 0.387054 0.658569\n1.000000 0.392456 0.658295\n1.000000 0.411774 0.660583\n0.000702 0.407898 0.681122\n0.050537 0.407410 0.679718\n0.097870 0.407013 0.678345\n0.141876 0.406830 0.677063\n0.181885 0.406708 0.675903\n0.217224 0.406647 0.674835\n0.248871 0.406860 0.673859\n0.277802 0.407196 0.673035\n0.304993 0.407562 0.672241\n0.331268 0.407928 0.671417\n0.357605 0.408325 0.670563\n0.384705 0.408691 0.669678\n0.413361 0.409088 0.668854\n0.444794 0.410431 0.669067\n0.478668 0.411774 0.669189\n0.515503 0.413147 0.669342\n0.556641 0.414429 0.669464\n0.601288 0.415741 0.669586\n0.648071 0.417084 0.669708\n0.694122 0.417389 0.668854\n0.738251 0.417084 0.667297\n0.779602 0.416748 0.665741\n0.816925 0.416565 0.664429\n0.850189 0.416473 0.663177\n0.879761 0.416473 0.662018\n0.906128 0.416565 0.660950\n0.929626 0.416626 0.660034\n0.950745 0.416809 0.658966\n0.969849 0.417084 0.658112\n0.987244 0.417358 0.657227\n1.000000 0.421631 0.657196\n1.000000 0.440369 0.660583\n0.009369 0.440308 0.681396\n0.059296 0.439972 0.679993\n0.106476 0.439636 0.678589\n0.150024 0.439423 0.677307\n0.189270 0.439423 0.676117\n0.223846 0.439514 0.675079\n0.254883 0.439697 0.674164\n0.283356 0.440063 0.673309\n0.310211 0.440430 0.672485\n0.336395 0.440796 0.671631\n0.362640 0.441132 0.670807\n0.389771 0.441559 0.669922\n0.418335 0.441803 0.668884\n0.449066 0.442169 0.668091\n0.483124 0.443512 0.668213\n0.520081 0.444733 0.668335\n0.561310 0.445984 0.668457\n0.605774 0.447235 0.668579\n0.652130 0.448456 0.668701\n0.697418 0.448578 0.667694\n0.740692 0.448181 0.666107\n0.781250 0.447815 0.664581\n0.818024 0.447601 0.663300\n0.850830 0.447479 0.661987\n0.880005 0.447449 0.660828\n0.906067 0.447479 0.659790\n0.929352 0.447632 0.658722\n0.950226 0.447754 0.657715\n0.969177 0.447998 0.656738\n0.986450 0.448242 0.655884\n1.000000 0.451324 0.655762\n1.000000 0.469513 0.660492\n0.019531 0.473602 0.681641\n0.069397 0.473267 0.680206\n0.115997 0.472961 0.678772\n0.158844 0.472809 0.677490\n0.197083 0.472870 0.676331\n0.230713 0.472931 0.675262\n0.261108 0.473267 0.674408\n0.289093 0.473602 0.673523\n0.315582 0.473938 0.672729\n0.341583 0.474396 0.671875\n0.367737 0.474701 0.670990\n0.394897 0.475067 0.670074\n0.423492 0.475250 0.669098\n0.453979 0.475342 0.667969\n0.487335 0.475800 0.667145\n0.524414 0.476959 0.667297\n0.565643 0.478088 0.667419\n0.609833 0.479248 0.667542\n0.655640 0.480377 0.667603\n0.700134 0.480316 0.666412\n0.742859 0.479889 0.664795\n0.782837 0.479523 0.663330\n0.819031 0.479279 0.661926\n0.851349 0.479126 0.660583\n0.880188 0.479126 0.659424\n0.905884 0.479126 0.658325\n0.928925 0.479187 0.657288\n0.949677 0.479340 0.656342\n0.968414 0.479523 0.655365\n0.985565 0.479797 0.654541\n1.000000 0.481659 0.654358\n1.000000 0.499329 0.660400\n0.030975 0.507538 0.681763\n0.080353 0.507324 0.680298\n0.126221 0.507172 0.678925\n0.168030 0.507019 0.677612\n0.205170 0.507202 0.676514\n0.237854 0.507263 0.675507\n0.267426 0.507629 0.674591\n0.294769 0.507965 0.673706\n0.320984 0.508331 0.672882\n0.346802 0.508728 0.672058\n0.372864 0.509033 0.671204\n0.399963 0.509308 0.670258\n0.428528 0.509430 0.669220\n0.459106 0.509521 0.668060\n0.491913 0.509430 0.666779\n0.528412 0.509918 0.666138\n0.569427 0.510956 0.666229\n0.613312 0.512024 0.666321\n0.658569 0.513031 0.666382\n0.702576 0.512817 0.665009\n0.744812 0.512360 0.663391\n0.784241 0.511963 0.661865\n0.819916 0.511749 0.660431\n0.851807 0.511597 0.659119\n0.880219 0.511475 0.657898\n0.905640 0.511505 0.656860\n0.928467 0.511597 0.655792\n0.948975 0.511719 0.654846\n0.967590 0.511871 0.653931\n0.984680 0.512024 0.653076\n1.000000 0.512787 0.652527\n1.000000 0.530640 0.660400\n0.043213 0.544281 0.681854\n0.091858 0.543976 0.680359\n0.136719 0.543793 0.678986\n0.177368 0.543793 0.677765\n0.213196 0.543793 0.676666\n0.244873 0.544037 0.675659\n0.273712 0.544281 0.674744\n0.300507 0.544708 0.673889\n0.326324 0.545013 0.673065\n0.351898 0.545288 0.672241\n0.377808 0.545624 0.671356\n0.404816 0.545868 0.670380\n0.433380 0.545929 0.669373\n0.463806 0.545898 0.668182\n0.496582 0.545715 0.666870\n0.532379 0.545380 0.665436\n0.572754 0.545898 0.664948\n0.616486 0.546906 0.665009\n0.661621 0.547913 0.665039\n0.704956 0.547516 0.663483\n0.746735 0.546997 0.661835\n0.785553 0.546539 0.660309\n0.820709 0.546265 0.658875\n0.852173 0.546082 0.657562\n0.880219 0.545959 0.656342\n0.905365 0.545898 0.655273\n0.927887 0.545990 0.654205\n0.948242 0.546051 0.653229\n0.966766 0.546173 0.652405\n0.983734 0.546387 0.651581\n0.999390 0.546539 0.650787\n1.000000 0.564178 0.660431\n0.056061 0.583527 0.681854\n0.103668 0.583282 0.680450\n0.147400 0.583099 0.679077\n0.186676 0.582977 0.677826\n0.221161 0.583038 0.676727\n0.251801 0.583282 0.675812\n0.279877 0.583588 0.674896\n0.306091 0.583862 0.674072\n0.331482 0.584167 0.673218\n0.356812 0.584381 0.672394\n0.382538 0.584595 0.671509\n0.409454 0.584686 0.670502\n0.437836 0.584656 0.669434\n0.468140 0.584534 0.668274\n0.500854 0.584198 0.666901\n0.536865 0.583710 0.665466\n0.576385 0.583160 0.663849\n0.619690 0.583923 0.663574\n0.664398 0.584900 0.663544\n0.707245 0.584229 0.661835\n0.748505 0.583679 0.660156\n0.786804 0.583160 0.658630\n0.821381 0.582825 0.657227\n0.852417 0.582550 0.655945\n0.880096 0.582367 0.654785\n0.904938 0.582306 0.653595\n0.927277 0.582306 0.652679\n0.947449 0.582306 0.651672\n0.965820 0.582397 0.650848\n0.982697 0.582550 0.650055\n0.998352 0.582703 0.649353\n1.000000 0.599335 0.660675\n0.069000 0.624878 0.681854\n0.115601 0.624603 0.680389\n0.157898 0.624329 0.679108\n0.195618 0.624298 0.677917\n0.228760 0.624207 0.676849\n0.258423 0.624390 0.675934\n0.285736 0.624634 0.675018\n0.311371 0.624725 0.674164\n0.336395 0.624969 0.673370\n0.361389 0.625092 0.672516\n0.386902 0.625153 0.671570\n0.413605 0.625153 0.670624\n0.441956 0.625031 0.669525\n0.472382 0.624756 0.668274\n0.505157 0.624390 0.666901\n0.541321 0.623810 0.665375\n0.580963 0.623108 0.663727\n0.622803 0.622437 0.662048\n0.667023 0.623169 0.661804\n0.709412 0.622437 0.660095\n0.750153 0.621796 0.658447\n0.787903 0.621277 0.656952\n0.822021 0.620789 0.655548\n0.852570 0.620514 0.654266\n0.879944 0.620300 0.653137\n0.904480 0.620178 0.652100\n0.926636 0.620087 0.651093\n0.946594 0.620026 0.650238\n0.964874 0.620056 0.649353\n0.981659 0.620148 0.648651\n0.997253 0.620239 0.647949\n1.000000 0.635773 0.660767\n0.082001 0.667511 0.681824\n0.127136 0.667084 0.680420\n0.167908 0.666687 0.679108\n0.204132 0.666595 0.677948\n0.235931 0.666504 0.676910\n0.264679 0.666565 0.675995\n0.291199 0.666687 0.675140\n0.316284 0.666779 0.674347\n0.340851 0.666779 0.673462\n0.365509 0.666840 0.672638\n0.390900 0.666718 0.671661\n0.417633 0.666595 0.670624\n0.446045 0.666321 0.669495\n0.476532 0.665985 0.668213\n0.509491 0.665436 0.666779\n0.545868 0.664764 0.665192\n0.585510 0.663971 0.663544\n0.627106 0.663116 0.661804\n0.669617 0.662384 0.660156\n0.711609 0.661621 0.658478\n0.751862 0.660980 0.656952\n0.789124 0.660400 0.655457\n0.822693 0.659912 0.654114\n0.852905 0.659576 0.652924\n0.879974 0.659241 0.651855\n0.904297 0.659088 0.650848\n0.926208 0.658966 0.649933\n0.946106 0.658875 0.649170\n0.964233 0.658905 0.648407\n0.980957 0.658997 0.647736\n0.996460 0.658936 0.647125\n1.000000 0.672729 0.661133\n0.093384 0.709290 0.680603\n0.136993 0.708740 0.679169\n0.176178 0.708374 0.677917\n0.210785 0.708038 0.676849\n0.241394 0.707916 0.675873\n0.269135 0.707764 0.674774\n0.294861 0.707672 0.674011\n0.319427 0.707581 0.673096\n0.343689 0.707489 0.672241\n0.368225 0.707336 0.671326\n0.393585 0.707123 0.670258\n0.420349 0.706848 0.669220\n0.448883 0.706421 0.667938\n0.479462 0.705872 0.666595\n0.512482 0.705200 0.665039\n0.548950 0.704376 0.663483\n0.588501 0.703522 0.661774\n0.629883 0.702606 0.660065\n0.672455 0.702179 0.658844\n0.715149 0.702423 0.658325\n0.754852 0.701691 0.656769\n0.791504 0.701050 0.655365\n0.824615 0.700531 0.654083\n0.854370 0.700073 0.652893\n0.881073 0.699707 0.651825\n0.905151 0.699402 0.650940\n0.926819 0.699249 0.650085\n0.946564 0.699127 0.649353\n0.964478 0.699036 0.648651\n0.981079 0.699036 0.648071\n0.996552 0.699005 0.647522\n1.000000 0.710022 0.661743\n0.103516 0.750000 0.678955\n0.145538 0.749359 0.677643\n0.183167 0.748932 0.676392\n0.216339 0.748535 0.675293\n0.245728 0.748230 0.674286\n0.272614 0.747986 0.673370\n0.297791 0.747772 0.672516\n0.322144 0.747559 0.671600\n0.346222 0.747375 0.670746\n0.370728 0.747070 0.669739\n0.396149 0.746735 0.668640\n0.423004 0.746368 0.667480\n0.451569 0.745789 0.666199\n0.482300 0.745117 0.664856\n0.515411 0.744385 0.663391\n0.551941 0.743439 0.661682\n0.591339 0.742462 0.660034\n0.632507 0.741455 0.658295\n0.674805 0.741180 0.657318\n0.717499 0.741821 0.657288\n0.757629 0.741943 0.656677\n0.793793 0.741211 0.655304\n0.826416 0.740570 0.654053\n0.855743 0.740051 0.652985\n0.882172 0.739563 0.651978\n0.905884 0.739288 0.651093\n0.927368 0.738953 0.650330\n0.946899 0.738800 0.649689\n0.964752 0.738586 0.649048\n0.981262 0.738708 0.648621\n0.996613 0.739136 0.648407\n1.000000 0.747284 0.662781\n0.112854 0.789398 0.677399\n0.153229 0.788696 0.676086\n0.189270 0.788116 0.674835\n0.221069 0.787628 0.673859\n0.249573 0.787201 0.672821\n0.275848 0.786896 0.671936\n0.300720 0.786560 0.670990\n0.324799 0.786255 0.670074\n0.348785 0.785919 0.669098\n0.373291 0.785553 0.668030\n0.398712 0.785126 0.667023\n0.425598 0.784607 0.665833\n0.454285 0.783997 0.664581\n0.485077 0.783203 0.663177\n0.518311 0.782318 0.661621\n0.554840 0.781311 0.660034\n0.594147 0.780273 0.658325\n0.635010 0.779205 0.656708\n0.677124 0.778900 0.655884\n0.719299 0.779480 0.655853\n0.759460 0.780090 0.655853\n0.795837 0.780029 0.655304\n0.828033 0.779358 0.654144\n0.856995 0.778778 0.653107\n0.883087 0.778259 0.652222\n0.906586 0.777863 0.651428\n0.927856 0.777527 0.650696\n0.947266 0.777405 0.650208\n0.965027 0.777588 0.649902\n0.981384 0.777832 0.649750\n0.996613 0.777924 0.649689\n1.000000 0.782990 0.664154\n0.121216 0.826782 0.675812\n0.159973 0.825958 0.674561\n0.194580 0.825317 0.673401\n0.225403 0.824738 0.672363\n0.253265 0.824219 0.671295\n0.279083 0.823822 0.670410\n0.303650 0.823425 0.669403\n0.327454 0.822998 0.668427\n0.351379 0.822571 0.667480\n0.375793 0.822113 0.666412\n0.401306 0.821564 0.665375\n0.428253 0.820923 0.664185\n0.456970 0.820221 0.662903\n0.487854 0.819397 0.661530\n0.521118 0.818390 0.660004\n0.557648 0.817322 0.658417\n0.596771 0.816193 0.656860\n0.637360 0.815063 0.655151\n0.679169 0.814850 0.654480\n0.720886 0.815308 0.654541\n0.760468 0.815796 0.654633\n0.797058 0.816284 0.654755\n0.829498 0.816223 0.654327\n0.858093 0.815582 0.653412\n0.883881 0.815063 0.652557\n0.907227 0.814728 0.651947\n0.928436 0.814606 0.651489\n0.947632 0.814606 0.651306\n0.965179 0.814606 0.651154\n0.981476 0.814484 0.651123\n0.996613 0.814575 0.651154\n1.000000 0.816742 0.665680\n0.128510 0.861511 0.674438\n0.166138 0.860657 0.673157\n0.199799 0.859863 0.671875\n0.229736 0.859222 0.670868\n0.256989 0.858704 0.669861\n0.282349 0.858215 0.668823\n0.306549 0.857697 0.667847\n0.330170 0.857208 0.666931\n0.354004 0.856689 0.665924\n0.378326 0.856140 0.664886\n0.403870 0.855499 0.663818\n0.430817 0.854828 0.662598\n0.459595 0.853973 0.661407\n0.490509 0.853119 0.660034\n0.523804 0.852081 0.658508\n0.560242 0.850891 0.656982\n0.599182 0.849701 0.655334\n0.639496 0.848541 0.653778\n0.681061 0.848419 0.653320\n0.722229 0.848755 0.653442\n0.761444 0.849152 0.653564\n0.797424 0.849518 0.653717\n0.830017 0.849915 0.653931\n0.859161 0.850067 0.653900\n0.884888 0.849762 0.653351\n0.907990 0.849426 0.653015\n0.928833 0.849213 0.652771\n0.947845 0.848999 0.652679\n0.965271 0.848816 0.652649\n0.981476 0.848694 0.652710\n0.996582 0.848541 0.652863\n1.000000 0.848053 0.667389\n0.135651 0.893097 0.672882\n0.172211 0.892212 0.671753\n0.204773 0.891418 0.670441\n0.234039 0.890747 0.669434\n0.260620 0.890137 0.668335\n0.285522 0.889557 0.667389\n0.309387 0.888947 0.666473\n0.332886 0.888428 0.665466\n0.356567 0.887848 0.664459\n0.380890 0.887207 0.663483\n0.406372 0.886536 0.662354\n0.433380 0.885773 0.661194\n0.462128 0.884888 0.659973\n0.493073 0.883881 0.658569\n0.526367 0.882782 0.657135\n0.562744 0.881592 0.655670\n0.601440 0.880402 0.654114\n0.641449 0.879181 0.652679\n0.682648 0.879089 0.652344\n0.723480 0.879364 0.652527\n0.762054 0.879669 0.652710\n0.797913 0.880005 0.653046\n0.830383 0.880585 0.653534\n0.859558 0.881012 0.654083\n0.885620 0.881378 0.654572\n0.908325 0.880920 0.654358\n0.929016 0.880554 0.654236\n0.947906 0.880249 0.654236\n0.965271 0.879913 0.654297\n0.981445 0.879669 0.654510\n0.996552 0.879395 0.654694\n1.000000 0.876587 0.669220\n0.142639 0.921356 0.671600\n0.178131 0.920441 0.670319\n0.209747 0.919617 0.669006\n0.238159 0.918884 0.667908\n0.264221 0.918213 0.666901\n0.288696 0.917603 0.665924\n0.312256 0.917023 0.664978\n0.335571 0.916382 0.664062\n0.359131 0.915741 0.663086\n0.383423 0.915100 0.662170\n0.408875 0.914337 0.661011\n0.435852 0.913513 0.659912\n0.464630 0.912598 0.658661\n0.495453 0.911560 0.657379\n0.528778 0.910431 0.656036\n0.565002 0.909210 0.654572\n0.603485 0.907990 0.653137\n0.643097 0.906738 0.651703\n0.684113 0.906677 0.651581\n0.724640 0.906952 0.651917\n0.763336 0.907318 0.652405\n0.798645 0.907715 0.652985\n0.830414 0.908051 0.653625\n0.859131 0.908386 0.654327\n0.885071 0.908722 0.655121\n0.908508 0.909058 0.655914\n0.929108 0.908600 0.655914\n0.947937 0.908173 0.656006\n0.965271 0.907745 0.656158\n0.981445 0.907471 0.656372\n0.996521 0.907166 0.656616\n1.000000 0.902222 0.671112\n0.149475 0.946503 0.670044\n0.183868 0.945587 0.668823\n0.214508 0.944763 0.667725\n0.242126 0.944000 0.666565\n0.267670 0.943329 0.665619\n0.291779 0.942688 0.664642\n0.315033 0.942047 0.663727\n0.338196 0.941437 0.662842\n0.361633 0.940704 0.661865\n0.385803 0.940063 0.660858\n0.411224 0.939240 0.659882\n0.438171 0.938416 0.658783\n0.466919 0.937469 0.657593\n0.497742 0.936432 0.656433\n0.530914 0.935303 0.654999\n0.567017 0.934082 0.653717\n0.605286 0.932831 0.652344\n0.644745 0.931641 0.651031\n0.686066 0.931671 0.651337\n0.726166 0.931946 0.651917\n0.763977 0.932159 0.652557\n0.798584 0.932404 0.653259\n0.830048 0.932709 0.654053\n0.858429 0.932922 0.654846\n0.884186 0.933136 0.655731\n0.907654 0.933380 0.656647\n0.928955 0.933624 0.657593\n0.947937 0.933258 0.657898\n0.965271 0.932800 0.658112\n0.981415 0.932373 0.658325\n0.996490 0.932007 0.658630\n1.000000 0.925507 0.673248\n0.156036 0.969025 0.668884\n0.189301 0.968170 0.667664\n0.219025 0.967316 0.666412\n0.245972 0.966553 0.665375\n0.270996 0.965912 0.664337\n0.294708 0.965240 0.663483\n0.317749 0.964600 0.662628\n0.340637 0.963928 0.661713\n0.363953 0.963226 0.660706\n0.388062 0.962524 0.659790\n0.413391 0.961700 0.658875\n0.440308 0.960846 0.657837\n0.468964 0.959900 0.656677\n0.499695 0.958862 0.655518\n0.532806 0.957733 0.654297\n0.568970 0.956543 0.653076\n0.607666 0.955383 0.651978\n0.646912 0.954254 0.651031\n0.687378 0.954285 0.651550\n0.726746 0.954376 0.652252\n0.763947 0.954559 0.653046\n0.798187 0.954712 0.653870\n0.829346 0.954865 0.654755\n0.857635 0.955017 0.655609\n0.883392 0.955170 0.656555\n0.906769 0.955353 0.657532\n0.928131 0.955475 0.658508\n0.947754 0.955627 0.659515\n0.965363 0.955414 0.660095\n0.981476 0.954987 0.660583\n0.996490 0.954590 0.661255\n1.000000 0.946686 0.676117\n0.162140 0.989380 0.667450\n0.194458 0.988495 0.666260\n0.223358 0.987701 0.665100\n0.249664 0.986969 0.664276\n0.274139 0.986298 0.663239\n0.297485 0.985657 0.662415\n0.320190 0.984985 0.661469\n0.342957 0.984344 0.660767\n0.366119 0.983643 0.659821\n0.390106 0.982941 0.658936\n0.415405 0.982147 0.658081\n0.442200 0.981262 0.657104\n0.470856 0.980316 0.656067\n0.501587 0.979279 0.654968\n0.535278 0.978210 0.653992\n0.571442 0.977081 0.653076\n0.609314 0.975922 0.652222\n0.647858 0.974762 0.651367\n0.687622 0.974731 0.652130\n0.726593 0.974823 0.652893\n0.763397 0.974915 0.653748\n0.797546 0.974976 0.654694\n0.828552 0.975037 0.655609\n0.856934 0.975159 0.656555\n0.882629 0.975220 0.657593\n0.906128 0.975311 0.658569\n0.927551 0.975433 0.659607\n0.947113 0.975555 0.660797\n0.965149 0.975647 0.662231\n0.981537 0.975555 0.663513\n0.996460 0.975128 0.664429\n1.000000 0.966034 0.679291\n0.179260 1.000000 0.664368\n0.209167 1.000000 0.663849\n0.236084 1.000000 0.663025\n0.260651 1.000000 0.662506\n0.283661 1.000000 0.661926\n0.305725 1.000000 0.661316\n0.327271 1.000000 0.660706\n0.348907 1.000000 0.659973\n0.371063 1.000000 0.659271\n0.393951 1.000000 0.658539\n0.418152 1.000000 0.657562\n0.443939 1.000000 0.656464\n0.473175 0.999115 0.655762\n0.503998 0.998047 0.654999\n0.537109 0.996979 0.654236\n0.572632 0.995880 0.653473\n0.609894 0.994720 0.652771\n0.647980 0.993591 0.652130\n0.687439 0.993500 0.652832\n0.726105 0.993500 0.653748\n0.762817 0.993530 0.654663\n0.796906 0.993561 0.655670\n0.828033 0.993591 0.656647\n0.856354 0.993622 0.657654\n0.882202 0.993652 0.658661\n0.905640 0.993683 0.659851\n0.927155 0.993744 0.661255\n0.946716 0.993744 0.662842\n0.964630 0.993774 0.664459\n0.981140 0.993866 0.666168\n0.996460 0.993774 0.667786\n1.000000 0.983673 0.682220\n0.209595 1.000000 0.660553\n0.238129 1.000000 0.660583\n0.263916 1.000000 0.660553\n0.287567 1.000000 0.660614\n0.309814 1.000000 0.660614\n0.331177 1.000000 0.660767\n0.352142 1.000000 0.660828\n0.373230 1.000000 0.661133\n0.394806 1.000000 0.661224\n0.417389 1.000000 0.661469\n0.441711 1.000000 0.662048\n0.467224 1.000000 0.662598\n0.494324 1.000000 0.663177\n0.523499 1.000000 0.663971\n0.555481 1.000000 0.664642\n0.589722 1.000000 0.665497\n0.625580 1.000000 0.666351\n0.662262 1.000000 0.667114\n0.698883 1.000000 0.668060\n0.734711 1.000000 0.669067\n0.768738 1.000000 0.669983\n0.800232 1.000000 0.670990\n0.829102 1.000000 0.671906\n0.855438 1.000000 0.673096\n0.879425 1.000000 0.674469\n0.901306 1.000000 0.675934\n0.921143 1.000000 0.677551\n0.939362 1.000000 0.679199\n0.956116 1.000000 0.680817\n0.971680 1.000000 0.682159\n0.986206 1.000000 0.683502\n1.000000 1.000000 0.684692\n0.000000 0.017792 0.673309\n0.029083 0.001984 0.691223\n0.077087 0.005585 0.692261\n0.121796 0.008179 0.692963\n0.162842 0.009918 0.693451\n0.199493 0.011505 0.693909\n0.232330 0.013062 0.694336\n0.261993 0.014648 0.694824\n0.289490 0.016144 0.695221\n0.315674 0.017639 0.695587\n0.341278 0.019165 0.696045\n0.367126 0.020660 0.696411\n0.393768 0.022186 0.696808\n0.421692 0.023712 0.697144\n0.451691 0.025299 0.697540\n0.484192 0.026886 0.697876\n0.519989 0.028473 0.698212\n0.561005 0.030243 0.698578\n0.606781 0.031952 0.698883\n0.655457 0.033752 0.699188\n0.705078 0.035400 0.699280\n0.752228 0.035370 0.697815\n0.796600 0.035492 0.696350\n0.836395 0.035522 0.695068\n0.871613 0.035767 0.693756\n0.902649 0.036285 0.692688\n0.930023 0.037018 0.691711\n0.954071 0.037842 0.690826\n0.975555 0.038910 0.689880\n0.994873 0.040039 0.689087\n1.000000 0.059875 0.683441\n1.000000 0.086365 0.677063\n0.000000 0.056061 0.677643\n0.029968 0.041748 0.692230\n0.076538 0.042938 0.692322\n0.120758 0.044495 0.692749\n0.161285 0.046021 0.693176\n0.197937 0.047455 0.693634\n0.230682 0.048889 0.694061\n0.260651 0.050354 0.694458\n0.288269 0.051788 0.694885\n0.314575 0.053192 0.695251\n0.340118 0.054657 0.695648\n0.365906 0.056091 0.696045\n0.392578 0.057617 0.696411\n0.420471 0.059052 0.696777\n0.450592 0.060638 0.697113\n0.483185 0.062286 0.697449\n0.519623 0.063934 0.697784\n0.561157 0.065704 0.698059\n0.607391 0.067535 0.698395\n0.656219 0.069366 0.698700\n0.706207 0.071075 0.698761\n0.753204 0.070801 0.697144\n0.797302 0.070648 0.695587\n0.836884 0.070801 0.694244\n0.871887 0.071106 0.693054\n0.902710 0.071655 0.691833\n0.929871 0.072449 0.690796\n0.953796 0.073303 0.690063\n0.975098 0.074341 0.689270\n0.994171 0.075500 0.688385\n1.000000 0.093811 0.683380\n1.000000 0.119659 0.677429\n0.000000 0.091431 0.679871\n0.030243 0.078827 0.693207\n0.075256 0.078552 0.692139\n0.118896 0.079773 0.692474\n0.159576 0.081146 0.692902\n0.196442 0.082489 0.693298\n0.229431 0.083862 0.693726\n0.259308 0.085236 0.694122\n0.287018 0.086548 0.694489\n0.313232 0.087982 0.694916\n0.338928 0.089355 0.695251\n0.364746 0.090759 0.695618\n0.391357 0.092285 0.695984\n0.419373 0.093781 0.696320\n0.450043 0.095398 0.696625\n0.483307 0.097107 0.696960\n0.520172 0.098724 0.697266\n0.562256 0.100616 0.697571\n0.608795 0.102509 0.697845\n0.658051 0.104156 0.698090\n0.707642 0.105469 0.697968\n0.754578 0.105255 0.696350\n0.798462 0.105164 0.694794\n0.837769 0.105377 0.693359\n0.872437 0.105743 0.692322\n0.902954 0.106354 0.691132\n0.929810 0.107086 0.690186\n0.953491 0.107941 0.689240\n0.974609 0.108948 0.688446\n0.993591 0.110107 0.687561\n1.000000 0.126984 0.683228\n1.000000 0.152100 0.677917\n0.000000 0.125885 0.680756\n0.029785 0.114716 0.694214\n0.074738 0.114288 0.693115\n0.117493 0.114136 0.692200\n0.158356 0.115387 0.692627\n0.195221 0.116669 0.693024\n0.228149 0.117981 0.693390\n0.258087 0.119354 0.693787\n0.285645 0.120575 0.694153\n0.312103 0.121979 0.694519\n0.337738 0.123413 0.694855\n0.363556 0.124817 0.695190\n0.390778 0.126343 0.695526\n0.419464 0.127899 0.695862\n0.450439 0.129547 0.696167\n0.484192 0.131287 0.696472\n0.521667 0.132996 0.696747\n0.564056 0.134644 0.696991\n0.610901 0.136230 0.697235\n0.660126 0.137939 0.697418\n0.709686 0.139221 0.697113\n0.756439 0.138977 0.695587\n0.799957 0.138977 0.693939\n0.838928 0.139160 0.692719\n0.873169 0.139587 0.691406\n0.903320 0.140198 0.690338\n0.929840 0.140930 0.689240\n0.953308 0.141724 0.688538\n0.974182 0.142670 0.687653\n0.993011 0.143738 0.686859\n1.000000 0.159271 0.683044\n1.000000 0.183624 0.678345\n0.000000 0.159546 0.681274\n0.029572 0.149628 0.695160\n0.074707 0.149200 0.694061\n0.117279 0.148834 0.692963\n0.157013 0.148834 0.692291\n0.193787 0.150055 0.692657\n0.226959 0.151276 0.693024\n0.256866 0.152588 0.693359\n0.284485 0.153870 0.693756\n0.310760 0.155334 0.694092\n0.337036 0.156708 0.694397\n0.363525 0.158234 0.694733\n0.390991 0.159729 0.695068\n0.420258 0.161346 0.695374\n0.451660 0.163025 0.695648\n0.485809 0.164612 0.695892\n0.523468 0.166077 0.696106\n0.566498 0.167725 0.696320\n0.613525 0.169342 0.696533\n0.662872 0.171051 0.696716\n0.712311 0.172211 0.696350\n0.758698 0.171936 0.694763\n0.801788 0.171997 0.693237\n0.840179 0.172211 0.691864\n0.873962 0.172577 0.690613\n0.903778 0.173126 0.689514\n0.929932 0.173828 0.688629\n0.953125 0.174591 0.687653\n0.973816 0.175476 0.686951\n0.992432 0.176422 0.686035\n1.000000 0.190552 0.682800\n1.000000 0.214264 0.678619\n0.000000 0.191864 0.682159\n0.029541 0.183624 0.696045\n0.074677 0.183105 0.694916\n0.117249 0.182770 0.693848\n0.156616 0.182343 0.692810\n0.192566 0.182648 0.692291\n0.225586 0.183929 0.692657\n0.255524 0.185181 0.692963\n0.283905 0.186554 0.693268\n0.310883 0.187927 0.693634\n0.337372 0.189423 0.693939\n0.364227 0.190918 0.694275\n0.392212 0.192505 0.694550\n0.421692 0.193909 0.694824\n0.453339 0.195404 0.695007\n0.487915 0.196930 0.695221\n0.526154 0.198395 0.695435\n0.569641 0.200043 0.695648\n0.616882 0.201660 0.695831\n0.666382 0.203369 0.696045\n0.715332 0.204315 0.695465\n0.761322 0.204132 0.693878\n0.803833 0.204193 0.692444\n0.841614 0.204346 0.691040\n0.874939 0.204681 0.689789\n0.904236 0.205231 0.688721\n0.930084 0.205872 0.687805\n0.953003 0.206543 0.686768\n0.973450 0.207306 0.686127\n0.991852 0.208099 0.685242\n1.000000 0.220917 0.682404\n1.000000 0.243896 0.679016\n0.000000 0.223572 0.683014\n0.029510 0.216583 0.696899\n0.074646 0.216125 0.695740\n0.117188 0.215698 0.694641\n0.156586 0.215485 0.693634\n0.192169 0.215393 0.692688\n0.225067 0.215790 0.692200\n0.255798 0.217072 0.692505\n0.284424 0.218414 0.692841\n0.311707 0.219879 0.693146\n0.338623 0.221344 0.693451\n0.365631 0.222717 0.693695\n0.393768 0.224121 0.693939\n0.423553 0.225494 0.694122\n0.455658 0.226990 0.694366\n0.490692 0.228485 0.694580\n0.529449 0.230042 0.694794\n0.573334 0.231628 0.694977\n0.620758 0.233215 0.695190\n0.670166 0.234863 0.695343\n0.718597 0.235565 0.694611\n0.764099 0.235413 0.692902\n0.806000 0.235413 0.691559\n0.843170 0.235596 0.690155\n0.875916 0.235901 0.688995\n0.904755 0.236328 0.687897\n0.930237 0.236816 0.686951\n0.952820 0.237488 0.686005\n0.973022 0.238159 0.685211\n0.991302 0.238831 0.684448\n1.000000 0.250336 0.682068\n1.000000 0.272644 0.679321\n0.000000 0.254425 0.683807\n0.029480 0.248871 0.697723\n0.074615 0.248505 0.696533\n0.117188 0.248169 0.695435\n0.157410 0.247833 0.694336\n0.194031 0.247681 0.693359\n0.226837 0.247833 0.692505\n0.256958 0.248291 0.692017\n0.285858 0.249756 0.692352\n0.313263 0.251068 0.692627\n0.340149 0.252319 0.692841\n0.367523 0.253662 0.693054\n0.396057 0.255096 0.693268\n0.426117 0.256470 0.693512\n0.458710 0.257965 0.693726\n0.493988 0.259430 0.693878\n0.533356 0.260986 0.694122\n0.577576 0.262604 0.694244\n0.625000 0.264130 0.694427\n0.674255 0.265747 0.694611\n0.722198 0.266235 0.693665\n0.767120 0.266052 0.692200\n0.808258 0.266022 0.690674\n0.844757 0.266144 0.689331\n0.876892 0.266418 0.688202\n0.905304 0.266785 0.687134\n0.930359 0.267212 0.686096\n0.952667 0.267761 0.685211\n0.972656 0.268372 0.684479\n0.990692 0.268890 0.683655\n1.000000 0.279175 0.681793\n1.000000 0.300781 0.679504\n0.000000 0.284668 0.684570\n0.029419 0.280640 0.698517\n0.075653 0.280121 0.697296\n0.119568 0.279816 0.696106\n0.160217 0.279541 0.694977\n0.197021 0.279602 0.693970\n0.230011 0.279724 0.693085\n0.259827 0.279877 0.692291\n0.287811 0.280304 0.691742\n0.315308 0.281586 0.691956\n0.342468 0.282928 0.692200\n0.369965 0.284302 0.692444\n0.398712 0.285675 0.692596\n0.429230 0.287109 0.692810\n0.462189 0.288544 0.692993\n0.497894 0.290070 0.693176\n0.537659 0.291565 0.693359\n0.582184 0.293091 0.693542\n0.629669 0.294617 0.693726\n0.678680 0.296143 0.693848\n0.725800 0.296417 0.692719\n0.770050 0.296265 0.691162\n0.810425 0.296234 0.689697\n0.846252 0.296265 0.688507\n0.877838 0.296478 0.687286\n0.905762 0.296844 0.686157\n0.930450 0.297180 0.685181\n0.952423 0.297607 0.684357\n0.972198 0.298096 0.683472\n0.990082 0.298584 0.682831\n1.000000 0.307587 0.681366\n1.000000 0.328522 0.679779\n0.000000 0.314697 0.686310\n0.032227 0.312042 0.699127\n0.079193 0.311615 0.697876\n0.123535 0.311432 0.696655\n0.164459 0.311157 0.695526\n0.201141 0.311127 0.694458\n0.233765 0.311096 0.693542\n0.263428 0.311279 0.692657\n0.291168 0.311554 0.691864\n0.318024 0.312073 0.691315\n0.345154 0.313385 0.691498\n0.373016 0.314819 0.691711\n0.401947 0.316132 0.691895\n0.432861 0.317596 0.692078\n0.466125 0.319092 0.692261\n0.502075 0.320465 0.692413\n0.542328 0.321991 0.692596\n0.587036 0.323425 0.692749\n0.634399 0.324921 0.692902\n0.683044 0.326416 0.693054\n0.729431 0.326508 0.691772\n0.772949 0.326263 0.690186\n0.812531 0.326202 0.688751\n0.847595 0.326202 0.687531\n0.878662 0.326385 0.686249\n0.906097 0.326630 0.685242\n0.930420 0.326935 0.684357\n0.952148 0.327301 0.683350\n0.971710 0.327667 0.682617\n0.989410 0.328033 0.681824\n1.000000 0.335876 0.680756\n1.000000 0.356232 0.679901\n0.000000 0.344727 0.690430\n0.037018 0.343628 0.699738\n0.084534 0.343170 0.698395\n0.128937 0.342957 0.697113\n0.169464 0.342651 0.695892\n0.205811 0.342468 0.694855\n0.238251 0.342651 0.693909\n0.267761 0.342804 0.693024\n0.295380 0.343140 0.692230\n0.321899 0.343414 0.691406\n0.348450 0.343994 0.690735\n0.376373 0.345367 0.690979\n0.405609 0.346741 0.691132\n0.436737 0.348145 0.691315\n0.470215 0.349579 0.691467\n0.506561 0.350952 0.691650\n0.547211 0.352448 0.691772\n0.591949 0.353851 0.691895\n0.639191 0.355255 0.692078\n0.687317 0.356720 0.692230\n0.732910 0.356598 0.690704\n0.775635 0.356293 0.689148\n0.814423 0.356201 0.687775\n0.848816 0.356201 0.686493\n0.879333 0.356323 0.685394\n0.906311 0.356506 0.684357\n0.930298 0.356720 0.683319\n0.951752 0.356995 0.682495\n0.971130 0.357269 0.681641\n0.988739 0.357605 0.680847\n1.000000 0.364258 0.680084\n1.000000 0.384064 0.680054\n0.000000 0.375671 0.696259\n0.043549 0.375275 0.700134\n0.090881 0.374725 0.698761\n0.135162 0.374512 0.697479\n0.175476 0.374207 0.696289\n0.211365 0.374237 0.695190\n0.243469 0.374359 0.694183\n0.272644 0.374634 0.693359\n0.300079 0.374969 0.692535\n0.326477 0.375366 0.691711\n0.352875 0.375671 0.690857\n0.380127 0.376221 0.690155\n0.409485 0.377594 0.690308\n0.440857 0.378967 0.690460\n0.474609 0.380402 0.690613\n0.511169 0.381714 0.690735\n0.552185 0.383118 0.690948\n0.596893 0.384491 0.691071\n0.643860 0.385834 0.691193\n0.691406 0.387146 0.691315\n0.736084 0.386841 0.689728\n0.778076 0.386597 0.688202\n0.816071 0.386444 0.686737\n0.849792 0.386383 0.685425\n0.879761 0.386414 0.684357\n0.906342 0.386505 0.683228\n0.930084 0.386688 0.682281\n0.951324 0.386902 0.681488\n0.970520 0.387177 0.680450\n0.988037 0.387421 0.679596\n1.000000 0.392914 0.679047\n1.000000 0.412170 0.680084\n0.001312 0.407593 0.701843\n0.051086 0.407135 0.700439\n0.098511 0.406708 0.699036\n0.142548 0.406464 0.697723\n0.182312 0.406311 0.696503\n0.217621 0.406433 0.695465\n0.249084 0.406525 0.694489\n0.277954 0.406921 0.693665\n0.305115 0.407318 0.692810\n0.331390 0.407623 0.691956\n0.357788 0.408051 0.691132\n0.384918 0.408447 0.690216\n0.413544 0.408844 0.689423\n0.445099 0.410156 0.689545\n0.479095 0.411560 0.689728\n0.515808 0.412872 0.689880\n0.557007 0.414154 0.689972\n0.601654 0.415497 0.690125\n0.648224 0.416718 0.690216\n0.695068 0.417816 0.690186\n0.738953 0.417450 0.688538\n0.780121 0.417175 0.687012\n0.817383 0.416992 0.685638\n0.850494 0.416840 0.684326\n0.880005 0.416840 0.683197\n0.906311 0.416931 0.682220\n0.929779 0.417053 0.681152\n0.950867 0.417236 0.680237\n0.969910 0.417511 0.679291\n0.987244 0.417755 0.678314\n1.000000 0.422028 0.677979\n1.000000 0.440735 0.680145\n0.010223 0.439972 0.702118\n0.060150 0.439514 0.700623\n0.107300 0.439301 0.699219\n0.150818 0.439117 0.697937\n0.189789 0.439117 0.696747\n0.224304 0.439178 0.695679\n0.255157 0.439392 0.694763\n0.283539 0.439728 0.693878\n0.310394 0.440186 0.693024\n0.336517 0.440552 0.692200\n0.362854 0.440948 0.691315\n0.390015 0.441223 0.690399\n0.418549 0.441498 0.689392\n0.449371 0.441956 0.688629\n0.483429 0.443237 0.688721\n0.520416 0.444489 0.688873\n0.561646 0.445709 0.688965\n0.606018 0.446960 0.689087\n0.652161 0.448120 0.689178\n0.698181 0.448944 0.688934\n0.741394 0.448578 0.687378\n0.781830 0.448181 0.685852\n0.818451 0.447998 0.684448\n0.851135 0.447845 0.683197\n0.880310 0.447845 0.681946\n0.906250 0.447876 0.680817\n0.929443 0.447968 0.679810\n0.950348 0.448181 0.678833\n0.969238 0.448364 0.677979\n0.986481 0.448578 0.677032\n1.000000 0.451691 0.676727\n1.000000 0.469849 0.680115\n0.020721 0.473145 0.702240\n0.070404 0.472809 0.700836\n0.117035 0.472595 0.699402\n0.159607 0.472534 0.698090\n0.197693 0.472565 0.696899\n0.231293 0.472717 0.695892\n0.261383 0.472931 0.694946\n0.289307 0.473389 0.694092\n0.315796 0.473724 0.693207\n0.341705 0.474091 0.692413\n0.367950 0.474487 0.691528\n0.395172 0.474701 0.690613\n0.423676 0.474976 0.689545\n0.454224 0.475067 0.688446\n0.487518 0.475464 0.687622\n0.524719 0.476654 0.687775\n0.565887 0.477844 0.687866\n0.609955 0.478943 0.687958\n0.655640 0.480042 0.688080\n0.700867 0.480652 0.687592\n0.743439 0.480225 0.686035\n0.783325 0.479889 0.684479\n0.819458 0.479645 0.683105\n0.851685 0.479492 0.681793\n0.880463 0.479462 0.680573\n0.906097 0.479462 0.679443\n0.929047 0.479584 0.678406\n0.949768 0.479706 0.677399\n0.968475 0.479889 0.676483\n0.985626 0.480072 0.675568\n1.000000 0.482056 0.675201\n1.000000 0.499634 0.680023\n0.032288 0.507233 0.702393\n0.081482 0.506958 0.700897\n0.127319 0.506866 0.699493\n0.168854 0.506683 0.698212\n0.205780 0.506836 0.697021\n0.238342 0.507080 0.696075\n0.267761 0.507294 0.695129\n0.295105 0.507721 0.694275\n0.321228 0.508148 0.693451\n0.346954 0.508392 0.692596\n0.373047 0.508728 0.691711\n0.400146 0.509003 0.690765\n0.428741 0.509186 0.689697\n0.459259 0.509186 0.688538\n0.492065 0.509125 0.687256\n0.528625 0.509583 0.686584\n0.569611 0.510681 0.686676\n0.613312 0.511688 0.686737\n0.658630 0.512756 0.686798\n0.703308 0.513153 0.686188\n0.745392 0.512726 0.684601\n0.784851 0.512360 0.683014\n0.820343 0.512054 0.681549\n0.852112 0.511932 0.680298\n0.880524 0.511902 0.679016\n0.905853 0.511871 0.677979\n0.928558 0.511932 0.676880\n0.949066 0.512024 0.675842\n0.967682 0.512177 0.675018\n0.984711 0.512390 0.674103\n1.000000 0.513123 0.673523\n1.000000 0.530975 0.680054\n0.044678 0.543854 0.702423\n0.093079 0.543610 0.700958\n0.137939 0.543457 0.699524\n0.178192 0.543457 0.698303\n0.213776 0.543488 0.697205\n0.245422 0.543671 0.696228\n0.274017 0.544006 0.695251\n0.300842 0.544342 0.694427\n0.326538 0.544708 0.693604\n0.352020 0.545044 0.692749\n0.377960 0.545319 0.691803\n0.404968 0.545502 0.690826\n0.433472 0.545624 0.689819\n0.463959 0.545563 0.688629\n0.496643 0.545349 0.687317\n0.532440 0.544983 0.685852\n0.572937 0.545563 0.685364\n0.616516 0.546539 0.685394\n0.661591 0.547546 0.685425\n0.705688 0.547852 0.684631\n0.747284 0.547302 0.682953\n0.786163 0.546936 0.681396\n0.821136 0.546631 0.680023\n0.852478 0.546417 0.678711\n0.880493 0.546265 0.677521\n0.905518 0.546265 0.676361\n0.928040 0.546265 0.675323\n0.948303 0.546356 0.674347\n0.966797 0.546539 0.673431\n0.983734 0.546631 0.672638\n0.999390 0.546844 0.671753\n1.000000 0.564453 0.680115\n0.057617 0.583252 0.702393\n0.104980 0.582825 0.700989\n0.148529 0.582764 0.699585\n0.187439 0.582733 0.698364\n0.221741 0.582764 0.697296\n0.252289 0.583038 0.696350\n0.280151 0.583252 0.695404\n0.306335 0.583466 0.694550\n0.331635 0.583771 0.693726\n0.356873 0.584045 0.692871\n0.382629 0.584290 0.691956\n0.409485 0.584351 0.691010\n0.437866 0.584259 0.689911\n0.468201 0.584106 0.688721\n0.500946 0.583771 0.687347\n0.536957 0.583344 0.685852\n0.576508 0.582794 0.684204\n0.619720 0.583527 0.683929\n0.664490 0.584473 0.683899\n0.708008 0.584534 0.682892\n0.749084 0.583984 0.681274\n0.787262 0.583496 0.679718\n0.821777 0.583130 0.678284\n0.852692 0.582886 0.677032\n0.880341 0.582733 0.675903\n0.905121 0.582611 0.674744\n0.927399 0.582642 0.673706\n0.947540 0.582703 0.672791\n0.965881 0.582733 0.671997\n0.982727 0.582855 0.671143\n0.998352 0.583038 0.670349\n1.000000 0.599670 0.680237\n0.070465 0.624481 0.702393\n0.116730 0.624207 0.700958\n0.158966 0.623932 0.699585\n0.196320 0.623871 0.698486\n0.229340 0.623871 0.697388\n0.258881 0.624023 0.696442\n0.285919 0.624176 0.695526\n0.311584 0.624451 0.694702\n0.336487 0.624634 0.693848\n0.361420 0.624725 0.692993\n0.386932 0.624695 0.692047\n0.413544 0.624695 0.691071\n0.441986 0.624573 0.689941\n0.472473 0.624329 0.688721\n0.505249 0.623871 0.687286\n0.541473 0.623322 0.685730\n0.581116 0.622681 0.684052\n0.622864 0.622009 0.682373\n0.667267 0.622925 0.682343\n0.710144 0.622803 0.681213\n0.750702 0.622101 0.679596\n0.788361 0.621582 0.678040\n0.822388 0.621155 0.676666\n0.852875 0.620819 0.675385\n0.880188 0.620605 0.674194\n0.904694 0.620422 0.673157\n0.926727 0.620361 0.672150\n0.946716 0.620392 0.671265\n0.964905 0.620392 0.670471\n0.981659 0.620483 0.669708\n0.997253 0.620544 0.669006\n1.000000 0.636047 0.680389\n0.083374 0.666962 0.702301\n0.128265 0.666656 0.700928\n0.168915 0.666290 0.699615\n0.204742 0.666107 0.698486\n0.236420 0.666138 0.697479\n0.265015 0.666168 0.696533\n0.291321 0.666260 0.695648\n0.316376 0.666290 0.694794\n0.340881 0.666382 0.693970\n0.365479 0.666321 0.693085\n0.390900 0.666290 0.692108\n0.417603 0.666138 0.691101\n0.446106 0.665863 0.689911\n0.476685 0.665497 0.688629\n0.509583 0.664886 0.687134\n0.545990 0.664246 0.685516\n0.585632 0.663513 0.683868\n0.627167 0.662659 0.682159\n0.669861 0.662170 0.680756\n0.712158 0.661835 0.679474\n0.752228 0.661041 0.677856\n0.789337 0.660461 0.676331\n0.822815 0.659943 0.674988\n0.852936 0.659576 0.673706\n0.879913 0.659271 0.672668\n0.904144 0.659058 0.671600\n0.926025 0.658936 0.670685\n0.945862 0.658844 0.669861\n0.963959 0.658813 0.669128\n0.980621 0.658783 0.668427\n0.996124 0.658844 0.667755\n1.000000 0.673035 0.680725\n0.095581 0.709595 0.702057\n0.138885 0.709045 0.700500\n0.177887 0.708649 0.699310\n0.212128 0.708374 0.698059\n0.242554 0.708160 0.697113\n0.270142 0.708069 0.696167\n0.295715 0.707977 0.695343\n0.320221 0.707947 0.694397\n0.344360 0.707794 0.693451\n0.368927 0.707581 0.692535\n0.394348 0.707397 0.691498\n0.421051 0.707123 0.690338\n0.449646 0.706665 0.689117\n0.480255 0.706116 0.687744\n0.513245 0.705475 0.686249\n0.549774 0.704651 0.684601\n0.589294 0.703766 0.682892\n0.630615 0.702820 0.681122\n0.672668 0.701904 0.679443\n0.714966 0.701904 0.678650\n0.754517 0.701141 0.677094\n0.791138 0.700470 0.675659\n0.824158 0.699951 0.674377\n0.853851 0.699463 0.673218\n0.880554 0.699158 0.672180\n0.904541 0.698944 0.671234\n0.926178 0.698792 0.670410\n0.945892 0.698608 0.669678\n0.963867 0.698486 0.669006\n0.980499 0.698486 0.668396\n0.995941 0.698395 0.667877\n1.000000 0.710419 0.681396\n0.105621 0.750244 0.700348\n0.147400 0.749664 0.698883\n0.184723 0.749176 0.697693\n0.217560 0.748779 0.696655\n0.246826 0.748505 0.695557\n0.273560 0.748260 0.694702\n0.298615 0.747986 0.693756\n0.322876 0.747803 0.692871\n0.346893 0.747589 0.691833\n0.371460 0.747345 0.690979\n0.396881 0.747009 0.689880\n0.423706 0.746552 0.688629\n0.452332 0.746033 0.687378\n0.483093 0.745422 0.686005\n0.516174 0.744568 0.684509\n0.552734 0.743713 0.682831\n0.592163 0.742706 0.681122\n0.633209 0.741699 0.679413\n0.674866 0.740692 0.677734\n0.717346 0.741272 0.677612\n0.757324 0.741364 0.677032\n0.793396 0.740601 0.675629\n0.825897 0.739990 0.674408\n0.855194 0.739471 0.673279\n0.881592 0.739044 0.672333\n0.905304 0.738647 0.671448\n0.926727 0.738373 0.670654\n0.946228 0.738220 0.669983\n0.964111 0.738007 0.669403\n0.980621 0.738373 0.669037\n0.996002 0.738708 0.668823\n1.000000 0.747589 0.682526\n0.114746 0.789612 0.698608\n0.154938 0.788940 0.697418\n0.190674 0.788330 0.696136\n0.222137 0.787842 0.695099\n0.250549 0.787445 0.694153\n0.276703 0.787048 0.693115\n0.301514 0.786774 0.692230\n0.325562 0.786499 0.691284\n0.349487 0.786163 0.690277\n0.373962 0.785767 0.689240\n0.399445 0.785339 0.688110\n0.426331 0.784760 0.686951\n0.455048 0.784180 0.685760\n0.485870 0.783386 0.684296\n0.519043 0.782501 0.682770\n0.555603 0.781525 0.681091\n0.594910 0.780426 0.679474\n0.635681 0.779358 0.677795\n0.677002 0.778320 0.676178\n0.719055 0.778900 0.676208\n0.759125 0.779480 0.676239\n0.795410 0.779449 0.675690\n0.827515 0.778748 0.674500\n0.856476 0.778168 0.673462\n0.882538 0.777649 0.672577\n0.905945 0.777222 0.671722\n0.927216 0.776886 0.671051\n0.946655 0.777008 0.670624\n0.964417 0.777130 0.670349\n0.980743 0.777374 0.670197\n0.996033 0.777496 0.670074\n1.000000 0.783295 0.683868\n0.122864 0.826904 0.697144\n0.161407 0.826141 0.695862\n0.195862 0.825500 0.694641\n0.226440 0.824890 0.693665\n0.254272 0.824402 0.692566\n0.279968 0.823975 0.691559\n0.304382 0.823547 0.690643\n0.328247 0.823181 0.689697\n0.352051 0.822754 0.688629\n0.376526 0.822235 0.687622\n0.402039 0.821686 0.686523\n0.428925 0.821106 0.685364\n0.457733 0.820374 0.684052\n0.488556 0.819550 0.682617\n0.521851 0.818542 0.681091\n0.558380 0.817474 0.679504\n0.597412 0.816315 0.677887\n0.637939 0.815186 0.676270\n0.679016 0.814240 0.674866\n0.720581 0.814697 0.674896\n0.760162 0.815216 0.674988\n0.796600 0.815674 0.675079\n0.828918 0.815643 0.674744\n0.857544 0.815033 0.673737\n0.883240 0.814423 0.672913\n0.906647 0.814178 0.672394\n0.927826 0.814117 0.671997\n0.946991 0.814087 0.671753\n0.964569 0.814026 0.671600\n0.980804 0.813995 0.671570\n0.995972 0.814056 0.671631\n1.000000 0.817017 0.685425\n0.130066 0.861603 0.695709\n0.167572 0.860748 0.694336\n0.200958 0.859985 0.693085\n0.230774 0.859375 0.692108\n0.257965 0.858856 0.691010\n0.283173 0.858307 0.690094\n0.307312 0.857819 0.689056\n0.330933 0.857330 0.688080\n0.354675 0.856842 0.687073\n0.379059 0.856262 0.686096\n0.404572 0.855652 0.684998\n0.431519 0.854919 0.683746\n0.460327 0.854156 0.682495\n0.491150 0.853210 0.681091\n0.524506 0.852173 0.679596\n0.560974 0.851013 0.678070\n0.599823 0.849823 0.676453\n0.640076 0.848694 0.674927\n0.680786 0.847748 0.673676\n0.721924 0.848145 0.673767\n0.760986 0.848541 0.673889\n0.796936 0.848907 0.674103\n0.829468 0.849304 0.674316\n0.858673 0.849518 0.674347\n0.884247 0.849152 0.673828\n0.907318 0.848907 0.673492\n0.928131 0.848602 0.673248\n0.947205 0.848389 0.673126\n0.964630 0.848175 0.673126\n0.980804 0.848114 0.673187\n0.995972 0.847931 0.673309\n1.000000 0.848267 0.687134\n0.137177 0.893158 0.694183\n0.173584 0.892303 0.692841\n0.205902 0.891510 0.691650\n0.235016 0.890839 0.690582\n0.261536 0.890228 0.689453\n0.286346 0.889618 0.688477\n0.310181 0.889038 0.687622\n0.333649 0.888550 0.686615\n0.357239 0.887939 0.685638\n0.381592 0.887299 0.684631\n0.407104 0.886627 0.683533\n0.434021 0.885834 0.682373\n0.462860 0.884979 0.681030\n0.493683 0.884003 0.679688\n0.527008 0.882874 0.678223\n0.563416 0.881683 0.676819\n0.602051 0.880524 0.675262\n0.641968 0.879272 0.673767\n0.682434 0.878418 0.672699\n0.723053 0.878754 0.672852\n0.761658 0.879028 0.673096\n0.797485 0.879456 0.673462\n0.829865 0.879974 0.674011\n0.858917 0.880463 0.674591\n0.884918 0.880737 0.675079\n0.907684 0.880371 0.674835\n0.928345 0.879944 0.674744\n0.947235 0.879639 0.674713\n0.964630 0.879303 0.674805\n0.980804 0.879059 0.674957\n0.995911 0.878754 0.675110\n1.000000 0.876740 0.688934\n0.144135 0.921387 0.692780\n0.179474 0.920471 0.691345\n0.210785 0.919708 0.690247\n0.239105 0.918915 0.689148\n0.265076 0.918274 0.688049\n0.289429 0.917664 0.687073\n0.313019 0.917084 0.686157\n0.336273 0.916443 0.685150\n0.359802 0.915802 0.684326\n0.384094 0.915161 0.683289\n0.409515 0.914398 0.682129\n0.436432 0.913574 0.681030\n0.465271 0.912659 0.679810\n0.496063 0.911652 0.678528\n0.529327 0.910461 0.677185\n0.565643 0.909302 0.675720\n0.604034 0.908081 0.674286\n0.643585 0.906799 0.672852\n0.683746 0.906006 0.671936\n0.724426 0.906311 0.672302\n0.762909 0.906738 0.672852\n0.798096 0.907135 0.673462\n0.829803 0.907440 0.674103\n0.858398 0.907745 0.674835\n0.884308 0.908112 0.675598\n0.907806 0.908447 0.676422\n0.928406 0.908051 0.676422\n0.947266 0.907562 0.676483\n0.964630 0.907196 0.676605\n0.980774 0.906860 0.676849\n0.995880 0.906525 0.677063\n1.000000 0.902466 0.690826\n0.150879 0.946533 0.691376\n0.185150 0.945587 0.690094\n0.215485 0.944824 0.688873\n0.243103 0.944031 0.687866\n0.268555 0.943329 0.686798\n0.292511 0.942719 0.685913\n0.315765 0.942078 0.684875\n0.338867 0.941437 0.683990\n0.362213 0.940796 0.683105\n0.386444 0.940094 0.682068\n0.411804 0.939331 0.681030\n0.438782 0.938446 0.679962\n0.467560 0.937500 0.678802\n0.498291 0.936462 0.677551\n0.531464 0.935333 0.676178\n0.567596 0.934143 0.674805\n0.605682 0.932861 0.673462\n0.645416 0.931702 0.672272\n0.685822 0.931061 0.671783\n0.725677 0.931274 0.672394\n0.763367 0.931580 0.673004\n0.797943 0.931793 0.673737\n0.829254 0.932037 0.674530\n0.857697 0.932281 0.675323\n0.883514 0.932526 0.676208\n0.906860 0.932739 0.677155\n0.928223 0.933014 0.678040\n0.947266 0.932678 0.678314\n0.964661 0.932220 0.678589\n0.980774 0.931763 0.678802\n0.995880 0.931396 0.679047\n1.000000 0.925720 0.693054\n0.157379 0.969025 0.689911\n0.190521 0.968140 0.688629\n0.220032 0.967346 0.687592\n0.246918 0.966583 0.686554\n0.271820 0.965912 0.685486\n0.295410 0.965271 0.684570\n0.318390 0.964600 0.683685\n0.341278 0.963959 0.682831\n0.364532 0.963257 0.681946\n0.388672 0.962524 0.681030\n0.413971 0.961761 0.680084\n0.440887 0.960876 0.678986\n0.469543 0.959961 0.677856\n0.500183 0.958893 0.676727\n0.533325 0.957733 0.675415\n0.569763 0.956604 0.674286\n0.608185 0.955414 0.673248\n0.647339 0.954285 0.672333\n0.686829 0.953613 0.672028\n0.726074 0.953766 0.672729\n0.763214 0.953949 0.673492\n0.797424 0.954071 0.674316\n0.828583 0.954254 0.675201\n0.856842 0.954407 0.676117\n0.882660 0.954559 0.677032\n0.906067 0.954712 0.677979\n0.927490 0.954865 0.678986\n0.947021 0.955017 0.679962\n0.964752 0.954865 0.680542\n0.980835 0.954407 0.681122\n0.995880 0.954071 0.681824\n1.000000 0.946777 0.695984\n0.163544 0.989380 0.688751\n0.195618 0.988495 0.687378\n0.224274 0.987701 0.686401\n0.250488 0.986969 0.685425\n0.274933 0.986328 0.684509\n0.298157 0.985657 0.683624\n0.320831 0.984985 0.682648\n0.343506 0.984344 0.681885\n0.366608 0.983673 0.680969\n0.390686 0.982941 0.680084\n0.415894 0.982147 0.679138\n0.442688 0.981262 0.678192\n0.471283 0.980347 0.677185\n0.502289 0.979309 0.676208\n0.535919 0.978241 0.675232\n0.571960 0.977081 0.674377\n0.609650 0.975922 0.673462\n0.648102 0.974792 0.672668\n0.687042 0.974121 0.672546\n0.725861 0.974182 0.673340\n0.762726 0.974274 0.674225\n0.796722 0.974365 0.675110\n0.827820 0.974426 0.676086\n0.856201 0.974518 0.677032\n0.881989 0.974609 0.677979\n0.905396 0.974701 0.678986\n0.926849 0.974792 0.680054\n0.946503 0.974945 0.681305\n0.964478 0.975037 0.682800\n0.980927 0.974945 0.684052\n0.995850 0.974548 0.684998\n1.000000 0.966064 0.699158\n0.180450 1.000000 0.685150\n0.210205 1.000000 0.684509\n0.236908 1.000000 0.683807\n0.261414 1.000000 0.683228\n0.284393 1.000000 0.682587\n0.306335 1.000000 0.682068\n0.327820 1.000000 0.681549\n0.349426 1.000000 0.680817\n0.371490 1.000000 0.680267\n0.394440 1.000000 0.679565\n0.418579 1.000000 0.678650\n0.444733 1.000000 0.677856\n0.473785 0.999115 0.677124\n0.504456 0.998077 0.676270\n0.537506 0.997009 0.675507\n0.572906 0.995880 0.674774\n0.610077 0.994751 0.674103\n0.648102 0.993622 0.673401\n0.686676 0.992889 0.673279\n0.725403 0.992920 0.674225\n0.762146 0.992920 0.675140\n0.796112 0.992950 0.676086\n0.827301 0.992981 0.677094\n0.855713 0.993011 0.678070\n0.881531 0.993011 0.679108\n0.905121 0.993073 0.680420\n0.926514 0.993103 0.681854\n0.946045 0.993164 0.683411\n0.963989 0.993195 0.685059\n0.980530 0.993256 0.686737\n0.995880 0.993164 0.688171\n1.000000 0.983643 0.701904\n0.210663 1.000000 0.680023\n0.239105 1.000000 0.679993\n0.264648 1.000000 0.680054\n0.288239 1.000000 0.680237\n0.310394 1.000000 0.680176\n0.331665 1.000000 0.680450\n0.352631 1.000000 0.680603\n0.373627 1.000000 0.680725\n0.395233 1.000000 0.680939\n0.418060 1.000000 0.681213\n0.442200 1.000000 0.681793\n0.467682 1.000000 0.682373\n0.494659 1.000000 0.683044\n0.523743 1.000000 0.683624\n0.555664 1.000000 0.684418\n0.589844 1.000000 0.685150\n0.625702 1.000000 0.686005\n0.662354 1.000000 0.686890\n0.698944 1.000000 0.687805\n0.734833 1.000000 0.688751\n0.768951 1.000000 0.689697\n0.800446 1.000000 0.690643\n0.829254 1.000000 0.691650\n0.855713 1.000000 0.692902\n0.879669 1.000000 0.694275\n0.901428 1.000000 0.695831\n0.921295 1.000000 0.697418\n0.939453 1.000000 0.699036\n0.956146 1.000000 0.700562\n0.971710 1.000000 0.701843\n0.986237 1.000000 0.703125\n1.000000 1.000000 0.704315\n0.000000 0.018951 0.695770\n0.028442 0.002258 0.714111\n0.076355 0.005890 0.715088\n0.120972 0.007843 0.715637\n0.161926 0.009460 0.716064\n0.198456 0.011078 0.716553\n0.231354 0.012665 0.716949\n0.261017 0.014160 0.717346\n0.288635 0.015686 0.717773\n0.314819 0.017151 0.718170\n0.340546 0.018677 0.718536\n0.366302 0.020264 0.718933\n0.392822 0.021729 0.719330\n0.420898 0.023285 0.719696\n0.450958 0.024841 0.720032\n0.483459 0.026428 0.720337\n0.519287 0.028137 0.720703\n0.560425 0.029846 0.721039\n0.606110 0.031586 0.721344\n0.654938 0.033478 0.721649\n0.704773 0.035400 0.721954\n0.752625 0.036133 0.720917\n0.796875 0.036163 0.719452\n0.836670 0.036194 0.718170\n0.871857 0.036530 0.716888\n0.902832 0.037048 0.715759\n0.930115 0.037689 0.714844\n0.954224 0.038635 0.714020\n0.975647 0.039734 0.713165\n0.994873 0.040863 0.712402\n1.000000 0.060760 0.705780\n1.000000 0.087128 0.698334\n0.000000 0.056915 0.699982\n0.029083 0.041473 0.714874\n0.075592 0.042511 0.714935\n0.119629 0.044037 0.715332\n0.160248 0.045532 0.715759\n0.196838 0.046997 0.716217\n0.229797 0.048401 0.716614\n0.259644 0.049866 0.717041\n0.287384 0.051300 0.717407\n0.313538 0.052704 0.717804\n0.339203 0.054199 0.718170\n0.364990 0.055695 0.718567\n0.391663 0.057159 0.718933\n0.419739 0.058685 0.719208\n0.449738 0.060272 0.719543\n0.482635 0.061890 0.719910\n0.519012 0.063568 0.720215\n0.560730 0.065369 0.720551\n0.606812 0.067200 0.720795\n0.655975 0.069122 0.721100\n0.706085 0.071045 0.721375\n0.753601 0.071411 0.720367\n0.797729 0.071350 0.718842\n0.837250 0.071411 0.717346\n0.872192 0.071808 0.716156\n0.902954 0.072449 0.714996\n0.930023 0.073212 0.714050\n0.953888 0.074097 0.713074\n0.975189 0.075195 0.712280\n0.994263 0.076294 0.711700\n1.000000 0.094635 0.705719\n1.000000 0.120392 0.698914\n0.000000 0.091797 0.701599\n0.029205 0.078369 0.715851\n0.074127 0.078064 0.714752\n0.117798 0.079285 0.715057\n0.158600 0.080627 0.715454\n0.195587 0.082031 0.715881\n0.228607 0.083374 0.716278\n0.258362 0.084717 0.716675\n0.285980 0.086090 0.717041\n0.312347 0.087494 0.717407\n0.338104 0.088928 0.717773\n0.363800 0.090393 0.718109\n0.390503 0.091827 0.718445\n0.418854 0.093414 0.718781\n0.449402 0.095062 0.719116\n0.482880 0.096710 0.719391\n0.519806 0.098480 0.719696\n0.561981 0.100281 0.720001\n0.608459 0.102142 0.720276\n0.657684 0.103790 0.720459\n0.707642 0.105530 0.720642\n0.755096 0.105896 0.719482\n0.798950 0.105865 0.718048\n0.838135 0.106018 0.716705\n0.872772 0.106476 0.715363\n0.903229 0.107086 0.714264\n0.929993 0.107819 0.713257\n0.953644 0.108704 0.712372\n0.974670 0.109741 0.711487\n0.993591 0.110809 0.710907\n1.000000 0.127808 0.705566\n1.000000 0.152802 0.699158\n0.000000 0.126282 0.702362\n0.028625 0.114258 0.716858\n0.073792 0.113739 0.715729\n0.116425 0.113617 0.714752\n0.157379 0.114899 0.715118\n0.194214 0.116180 0.715546\n0.227295 0.117493 0.715881\n0.257111 0.118805 0.716248\n0.284851 0.120148 0.716644\n0.311096 0.121552 0.716980\n0.336853 0.122955 0.717316\n0.362885 0.124451 0.717651\n0.390076 0.125977 0.717987\n0.418915 0.127533 0.718292\n0.450043 0.129181 0.718567\n0.483948 0.130920 0.718903\n0.521271 0.132690 0.719147\n0.563782 0.134277 0.719330\n0.610657 0.135895 0.719543\n0.659973 0.137665 0.719818\n0.709930 0.139374 0.719971\n0.757050 0.139648 0.718597\n0.800507 0.139618 0.717133\n0.839264 0.139893 0.715820\n0.873474 0.140350 0.714539\n0.903564 0.140930 0.713593\n0.930084 0.141602 0.712524\n0.953430 0.142487 0.711639\n0.974304 0.143433 0.710785\n0.993042 0.144440 0.709900\n1.000000 0.159973 0.705475\n1.000000 0.184296 0.699554\n0.000000 0.159729 0.702911\n0.028564 0.149048 0.717712\n0.073700 0.148651 0.716614\n0.116302 0.148285 0.715515\n0.155884 0.148315 0.714783\n0.192993 0.149597 0.715149\n0.225952 0.150787 0.715546\n0.255890 0.152130 0.715881\n0.283508 0.153473 0.716217\n0.310089 0.154877 0.716522\n0.336456 0.156311 0.716858\n0.363068 0.157837 0.717163\n0.390564 0.159363 0.717468\n0.419861 0.161041 0.717773\n0.451355 0.162659 0.718048\n0.485504 0.164154 0.718231\n0.523407 0.165741 0.718475\n0.566437 0.167328 0.718658\n0.613495 0.169006 0.718872\n0.662903 0.170776 0.719086\n0.712708 0.172485 0.719269\n0.759369 0.172577 0.717896\n0.802368 0.172668 0.716278\n0.840637 0.172821 0.714996\n0.874359 0.173309 0.713776\n0.904022 0.173828 0.712646\n0.930145 0.174530 0.711823\n0.953278 0.175323 0.710754\n0.973907 0.176147 0.710052\n0.992462 0.177063 0.709106\n1.000000 0.191254 0.705139\n1.000000 0.214874 0.700073\n0.000000 0.192139 0.703766\n0.028534 0.183136 0.718567\n0.073669 0.182587 0.717438\n0.116272 0.182220 0.716309\n0.155609 0.181854 0.715302\n0.191650 0.182159 0.714722\n0.224609 0.183411 0.715057\n0.254883 0.184723 0.715393\n0.283264 0.186096 0.715759\n0.310303 0.187531 0.716034\n0.336975 0.188995 0.716370\n0.363800 0.190552 0.716675\n0.391815 0.192139 0.716949\n0.421417 0.193512 0.717133\n0.453125 0.195007 0.717377\n0.487823 0.196533 0.717560\n0.526123 0.198120 0.717804\n0.569611 0.199707 0.717987\n0.616943 0.201355 0.718201\n0.666443 0.203064 0.718353\n0.716003 0.204742 0.718506\n0.762054 0.204773 0.717072\n0.804474 0.204803 0.715607\n0.842072 0.204956 0.714172\n0.875305 0.205353 0.713013\n0.904510 0.205841 0.711975\n0.930298 0.206451 0.710815\n0.953094 0.207184 0.709900\n0.973511 0.207886 0.709137\n0.991913 0.208740 0.708313\n1.000000 0.221558 0.704956\n1.000000 0.244446 0.700348\n0.000000 0.223724 0.704590\n0.028503 0.216125 0.719421\n0.073639 0.215698 0.718262\n0.116211 0.215363 0.717102\n0.155579 0.215027 0.716095\n0.191559 0.214966 0.715149\n0.224487 0.215332 0.714630\n0.255249 0.216675 0.714935\n0.283844 0.218109 0.715271\n0.311249 0.219452 0.715576\n0.338287 0.221008 0.715820\n0.365234 0.222290 0.716064\n0.393524 0.223663 0.716248\n0.423462 0.225189 0.716461\n0.455627 0.226624 0.716675\n0.490631 0.228180 0.716919\n0.529572 0.229736 0.717072\n0.573364 0.231323 0.717285\n0.620941 0.232971 0.717438\n0.670319 0.234619 0.717651\n0.719482 0.236206 0.717712\n0.764923 0.236023 0.716187\n0.806580 0.235992 0.714569\n0.843628 0.236206 0.713409\n0.876282 0.236511 0.712067\n0.905029 0.236938 0.711121\n0.930450 0.237488 0.710175\n0.952972 0.238098 0.709229\n0.973145 0.238739 0.708374\n0.991333 0.239410 0.707581\n1.000000 0.250946 0.704651\n1.000000 0.273163 0.700653\n0.000000 0.254456 0.705353\n0.028473 0.248444 0.720215\n0.073608 0.247894 0.719025\n0.116547 0.247620 0.717896\n0.156921 0.247314 0.716766\n0.193573 0.247345 0.715820\n0.226379 0.247314 0.714935\n0.256683 0.247955 0.714447\n0.285553 0.249390 0.714722\n0.312927 0.250549 0.714935\n0.339905 0.251953 0.715179\n0.367310 0.253265 0.715363\n0.395782 0.254639 0.715607\n0.426056 0.256165 0.715851\n0.458710 0.257629 0.716003\n0.494110 0.259155 0.716217\n0.533600 0.260712 0.716370\n0.577728 0.262207 0.716583\n0.625305 0.263824 0.716766\n0.674530 0.265442 0.716919\n0.723053 0.266754 0.716888\n0.767853 0.266663 0.715271\n0.808838 0.266571 0.713745\n0.845184 0.266724 0.712433\n0.877289 0.266968 0.711273\n0.905579 0.267334 0.710205\n0.930573 0.267792 0.709167\n0.952789 0.268341 0.708374\n0.972717 0.268860 0.707397\n0.990723 0.269470 0.706726\n1.000000 0.279724 0.704315\n1.000000 0.301239 0.700836\n0.000000 0.284729 0.706085\n0.028778 0.280090 0.720917\n0.075256 0.279694 0.719696\n0.119171 0.279388 0.718536\n0.160004 0.279205 0.717407\n0.196869 0.279205 0.716400\n0.229797 0.279297 0.715454\n0.259552 0.279358 0.714600\n0.287537 0.279877 0.714050\n0.315094 0.281189 0.714264\n0.342285 0.282532 0.714508\n0.369904 0.283875 0.714722\n0.398712 0.285339 0.714935\n0.429321 0.286774 0.715118\n0.462219 0.288208 0.715302\n0.498016 0.289734 0.715515\n0.537903 0.291260 0.715668\n0.582367 0.292755 0.715851\n0.629974 0.294281 0.716003\n0.678772 0.295837 0.716125\n0.726685 0.296967 0.715973\n0.770813 0.296814 0.714233\n0.811005 0.296722 0.712830\n0.846710 0.296814 0.711517\n0.878235 0.297058 0.710358\n0.905975 0.297333 0.709290\n0.930634 0.297699 0.708252\n0.952576 0.298187 0.707397\n0.972290 0.298584 0.706512\n0.990112 0.299072 0.705872\n1.000000 0.308044 0.703918\n1.000000 0.328949 0.701172\n0.000000 0.314636 0.708344\n0.031982 0.311584 0.721619\n0.079102 0.311188 0.720337\n0.123474 0.311005 0.719086\n0.164490 0.310760 0.717926\n0.201019 0.310699 0.716827\n0.233582 0.310638 0.715851\n0.263275 0.310791 0.714966\n0.290985 0.311127 0.714172\n0.317871 0.311707 0.713623\n0.345154 0.313019 0.713776\n0.372955 0.314392 0.713989\n0.401947 0.315857 0.714142\n0.432922 0.317322 0.714386\n0.466217 0.318726 0.714569\n0.502350 0.320160 0.714752\n0.542694 0.321686 0.714905\n0.587280 0.323151 0.715057\n0.634705 0.324646 0.715210\n0.683136 0.326050 0.715332\n0.730255 0.326965 0.714813\n0.773682 0.326782 0.713318\n0.813049 0.326691 0.711884\n0.848083 0.326782 0.710510\n0.878967 0.326904 0.709442\n0.906311 0.327118 0.708313\n0.930603 0.327393 0.707428\n0.952271 0.327789 0.706512\n0.971771 0.328094 0.705719\n0.989471 0.328522 0.704956\n1.000000 0.336243 0.703278\n1.000000 0.356659 0.701294\n0.000000 0.344604 0.712738\n0.037201 0.343048 0.722137\n0.084808 0.342804 0.720795\n0.128998 0.342407 0.719452\n0.169617 0.342163 0.718262\n0.205841 0.342102 0.717163\n0.238251 0.342102 0.716217\n0.267731 0.342377 0.715332\n0.295349 0.342743 0.714508\n0.321899 0.343048 0.713684\n0.348480 0.343658 0.713043\n0.376404 0.344971 0.713287\n0.405640 0.346436 0.713470\n0.436859 0.347900 0.713593\n0.470367 0.349243 0.713745\n0.506805 0.350677 0.713928\n0.547455 0.352081 0.714050\n0.592255 0.353546 0.714203\n0.639496 0.354980 0.714325\n0.687439 0.356354 0.714447\n0.733704 0.357025 0.713837\n0.776337 0.356812 0.712280\n0.814972 0.356689 0.710846\n0.849243 0.356689 0.709595\n0.879608 0.356812 0.708435\n0.906525 0.356934 0.707367\n0.930450 0.357178 0.706482\n0.951874 0.357361 0.705475\n0.971191 0.357697 0.704773\n0.988800 0.358063 0.703918\n1.000000 0.364624 0.702667\n1.000000 0.384430 0.701324\n0.000000 0.375366 0.718964\n0.043854 0.374817 0.722473\n0.091248 0.374268 0.721069\n0.135468 0.373932 0.719788\n0.175751 0.373779 0.718536\n0.211548 0.373749 0.717468\n0.243530 0.373932 0.716522\n0.272766 0.374207 0.715668\n0.300110 0.374603 0.714783\n0.326599 0.374939 0.713989\n0.352966 0.375427 0.713165\n0.380188 0.375854 0.712433\n0.409668 0.377258 0.712616\n0.441101 0.378693 0.712769\n0.474823 0.380035 0.712891\n0.511475 0.381439 0.713043\n0.552399 0.382751 0.713165\n0.597168 0.384186 0.713348\n0.644043 0.385529 0.713440\n0.691559 0.386841 0.713531\n0.736877 0.387299 0.712769\n0.778717 0.387024 0.711212\n0.816559 0.386841 0.709747\n0.850189 0.386841 0.708557\n0.880035 0.386841 0.707458\n0.906555 0.386932 0.706329\n0.930206 0.387085 0.705322\n0.951447 0.387299 0.704468\n0.970612 0.387573 0.703522\n0.988098 0.387848 0.702667\n1.000000 0.393250 0.701721\n1.000000 0.412537 0.701294\n0.001770 0.407135 0.724213\n0.051727 0.406555 0.722748\n0.099030 0.406250 0.721344\n0.143066 0.406097 0.720032\n0.182800 0.405975 0.718842\n0.217896 0.406036 0.717712\n0.249359 0.406281 0.716797\n0.278137 0.406494 0.715912\n0.305206 0.406860 0.715088\n0.331512 0.407257 0.714233\n0.357910 0.407715 0.713409\n0.385010 0.408051 0.712463\n0.413727 0.408508 0.711700\n0.445251 0.409882 0.711823\n0.479279 0.411224 0.711975\n0.516113 0.412537 0.712067\n0.557343 0.413849 0.712250\n0.601807 0.415131 0.712341\n0.648376 0.416412 0.712463\n0.695190 0.417664 0.712555\n0.739685 0.417877 0.711578\n0.780701 0.417603 0.710052\n0.817780 0.417389 0.708679\n0.850861 0.417206 0.707458\n0.880310 0.417236 0.706299\n0.906494 0.417297 0.705170\n0.929932 0.417450 0.704224\n0.950958 0.417603 0.703125\n0.969971 0.417847 0.702240\n0.987305 0.418121 0.701385\n1.000000 0.422363 0.700653\n1.000000 0.441071 0.701355\n0.011017 0.439514 0.724426\n0.061035 0.439240 0.722900\n0.108032 0.438965 0.721558\n0.151459 0.438751 0.720215\n0.190338 0.438660 0.719025\n0.224640 0.438843 0.717987\n0.255463 0.439056 0.717041\n0.283783 0.439423 0.716156\n0.310516 0.439758 0.715271\n0.336639 0.440277 0.714447\n0.363007 0.440643 0.713623\n0.390076 0.440887 0.712677\n0.418701 0.441223 0.711639\n0.449524 0.441559 0.710815\n0.483612 0.442871 0.710938\n0.520691 0.444153 0.711090\n0.561890 0.445374 0.711212\n0.606171 0.446533 0.711304\n0.652313 0.447754 0.711426\n0.698364 0.448914 0.711487\n0.742065 0.448914 0.710388\n0.782410 0.448578 0.708832\n0.818878 0.448364 0.707489\n0.851501 0.448242 0.706146\n0.880524 0.448181 0.704956\n0.906433 0.448212 0.703827\n0.929626 0.448364 0.702820\n0.950439 0.448517 0.701874\n0.969299 0.448730 0.700836\n0.986511 0.448975 0.700043\n1.000000 0.452026 0.699524\n1.000000 0.470215 0.701294\n0.021729 0.472778 0.724579\n0.071442 0.472443 0.723083\n0.117920 0.472260 0.721680\n0.160431 0.472107 0.720367\n0.198303 0.472168 0.719208\n0.231628 0.472382 0.718170\n0.261749 0.472656 0.717224\n0.289520 0.472992 0.716339\n0.315948 0.473358 0.715515\n0.341888 0.473755 0.714661\n0.368073 0.474121 0.713776\n0.395233 0.474457 0.712830\n0.423859 0.474670 0.711761\n0.454407 0.474701 0.710632\n0.487854 0.475159 0.709869\n0.524933 0.476318 0.709991\n0.566010 0.477448 0.710114\n0.610046 0.478546 0.710144\n0.655548 0.479706 0.710266\n0.701233 0.480713 0.710358\n0.744080 0.480591 0.709045\n0.783905 0.480225 0.707520\n0.819855 0.480011 0.706116\n0.852020 0.479889 0.704712\n0.880676 0.479797 0.703552\n0.906311 0.479828 0.702423\n0.929199 0.479950 0.701385\n0.949829 0.480042 0.700378\n0.968536 0.480225 0.699432\n0.985657 0.480438 0.698547\n1.000000 0.482391 0.698029\n1.000000 0.500000 0.701294\n0.033508 0.506866 0.724640\n0.082672 0.506622 0.723175\n0.128235 0.506439 0.721771\n0.169739 0.506439 0.720520\n0.206360 0.506561 0.719330\n0.238739 0.506653 0.718323\n0.268066 0.506989 0.717377\n0.295349 0.507385 0.716522\n0.321350 0.507751 0.715698\n0.347076 0.508057 0.714813\n0.373108 0.508362 0.713898\n0.400177 0.508667 0.712952\n0.428833 0.508820 0.711914\n0.459351 0.508850 0.710693\n0.492218 0.508728 0.709412\n0.528717 0.509186 0.708740\n0.569641 0.510223 0.708862\n0.613373 0.511292 0.708923\n0.658569 0.512329 0.709015\n0.703827 0.513306 0.709045\n0.746063 0.513062 0.707581\n0.785309 0.512695 0.706024\n0.820740 0.512360 0.704559\n0.852448 0.512268 0.703308\n0.880707 0.512146 0.702057\n0.906036 0.512177 0.700928\n0.928741 0.512268 0.699860\n0.949158 0.512360 0.698883\n0.967743 0.512512 0.697937\n0.984741 0.512726 0.697113\n1.000000 0.513458 0.696411\n1.000000 0.531281 0.701355\n0.046021 0.543457 0.724701\n0.094391 0.543243 0.723236\n0.138855 0.543060 0.721832\n0.179108 0.543030 0.720551\n0.214447 0.543182 0.719452\n0.245758 0.543304 0.718445\n0.274353 0.543732 0.717529\n0.300995 0.544067 0.716675\n0.326630 0.544281 0.715820\n0.352112 0.544678 0.714966\n0.377991 0.544922 0.714020\n0.404999 0.545105 0.713043\n0.433533 0.545166 0.711975\n0.464050 0.545166 0.710785\n0.496704 0.544891 0.709473\n0.532471 0.544556 0.708008\n0.572937 0.545105 0.707550\n0.616608 0.546143 0.707581\n0.661530 0.547150 0.707581\n0.706329 0.548096 0.707550\n0.747894 0.547699 0.705902\n0.786591 0.547211 0.704437\n0.821533 0.546967 0.702942\n0.852783 0.546753 0.701630\n0.880676 0.546600 0.700439\n0.905731 0.546600 0.699280\n0.928162 0.546600 0.698303\n0.948425 0.546722 0.697357\n0.966858 0.546875 0.696411\n0.983765 0.546997 0.695587\n0.999420 0.547180 0.694855\n1.000000 0.564789 0.701324\n0.058960 0.582794 0.724701\n0.106262 0.582489 0.723236\n0.149475 0.582275 0.721832\n0.188232 0.582275 0.720612\n0.222321 0.582367 0.719543\n0.252563 0.582520 0.718536\n0.280396 0.582825 0.717651\n0.306458 0.583069 0.716827\n0.331726 0.583344 0.715942\n0.356934 0.583588 0.715057\n0.382599 0.583801 0.714172\n0.409454 0.583862 0.713165\n0.437866 0.583832 0.712097\n0.468231 0.583618 0.710846\n0.500977 0.583282 0.709503\n0.537018 0.582855 0.707977\n0.576508 0.582306 0.706360\n0.619781 0.583069 0.706085\n0.664429 0.584045 0.706055\n0.708649 0.584869 0.705933\n0.749725 0.584351 0.704285\n0.787811 0.583801 0.702698\n0.822205 0.583466 0.701294\n0.853027 0.583160 0.700012\n0.880585 0.583069 0.698792\n0.905304 0.582947 0.697693\n0.927551 0.582947 0.696716\n0.947632 0.583008 0.695740\n0.965912 0.583069 0.694946\n0.982727 0.583160 0.694092\n0.998352 0.583313 0.693298\n1.000000 0.599976 0.701508\n0.072021 0.623962 0.724640\n0.118103 0.623749 0.723175\n0.159851 0.623566 0.721832\n0.197083 0.623444 0.720642\n0.229797 0.623444 0.719604\n0.259125 0.623657 0.718658\n0.286102 0.623749 0.717773\n0.311646 0.623962 0.716919\n0.336456 0.624084 0.716064\n0.361389 0.624237 0.715179\n0.386841 0.624237 0.714233\n0.413513 0.624237 0.713257\n0.441956 0.624146 0.712128\n0.472443 0.623810 0.710876\n0.505310 0.623352 0.709442\n0.541534 0.622772 0.707855\n0.581085 0.622131 0.706177\n0.622833 0.621521 0.704529\n0.667145 0.622406 0.704468\n0.710785 0.623077 0.704163\n0.751312 0.622437 0.702576\n0.788849 0.621857 0.701050\n0.822754 0.621460 0.699615\n0.853180 0.621124 0.698364\n0.880402 0.620880 0.697235\n0.904846 0.620758 0.696106\n0.926849 0.620697 0.695129\n0.946808 0.620667 0.694244\n0.964966 0.620667 0.693512\n0.981720 0.620728 0.692719\n0.997253 0.620850 0.692047\n1.000000 0.636353 0.701752\n0.084839 0.666443 0.724579\n0.129547 0.666077 0.723175\n0.169739 0.665741 0.721863\n0.205414 0.665741 0.720703\n0.236847 0.665680 0.719666\n0.265137 0.665680 0.718719\n0.291443 0.665741 0.717896\n0.316345 0.665771 0.717010\n0.340790 0.665894 0.716156\n0.365387 0.665863 0.715271\n0.390808 0.665741 0.714325\n0.417572 0.665619 0.713287\n0.446106 0.665344 0.712097\n0.476685 0.664886 0.710754\n0.509644 0.664368 0.709259\n0.546082 0.663727 0.707672\n0.585602 0.662933 0.705994\n0.627136 0.662140 0.704285\n0.669769 0.661652 0.702881\n0.712799 0.662079 0.702454\n0.752808 0.661377 0.700836\n0.789795 0.660706 0.699310\n0.823181 0.660217 0.697968\n0.853180 0.659851 0.696716\n0.880096 0.659607 0.695618\n0.904266 0.659363 0.694580\n0.926086 0.659241 0.693665\n0.945892 0.659149 0.692902\n0.963989 0.659088 0.692108\n0.980621 0.659058 0.691406\n0.996155 0.659119 0.690735\n1.000000 0.673309 0.702118\n0.097229 0.709229 0.724518\n0.140350 0.708801 0.723145\n0.178925 0.708435 0.721863\n0.213013 0.708252 0.720734\n0.243225 0.708069 0.719727\n0.270660 0.707916 0.718842\n0.296173 0.707886 0.717957\n0.320587 0.707825 0.717102\n0.344849 0.707733 0.716248\n0.369415 0.707611 0.715302\n0.394775 0.707428 0.714294\n0.421661 0.707153 0.713165\n0.450256 0.706726 0.711914\n0.480896 0.706238 0.710602\n0.513977 0.705627 0.709076\n0.550476 0.704742 0.707458\n0.590027 0.703918 0.705811\n0.631409 0.703033 0.704102\n0.673370 0.702118 0.702393\n0.714722 0.701324 0.700775\n0.754211 0.700500 0.699188\n0.790710 0.699860 0.697754\n0.823639 0.699341 0.696503\n0.853302 0.698914 0.695312\n0.879883 0.698547 0.694275\n0.903870 0.698334 0.693359\n0.925507 0.698120 0.692535\n0.945221 0.697968 0.691772\n0.963196 0.697906 0.691132\n0.979797 0.697876 0.690521\n0.995300 0.697968 0.690063\n1.000000 0.710938 0.702850\n0.107727 0.750519 0.723328\n0.149170 0.749908 0.722046\n0.186157 0.749390 0.720795\n0.218750 0.749054 0.719666\n0.247772 0.748749 0.718658\n0.274353 0.748474 0.717682\n0.299408 0.748291 0.716858\n0.323608 0.748077 0.715881\n0.347717 0.747803 0.714996\n0.372192 0.747559 0.713898\n0.397583 0.747223 0.712860\n0.424469 0.746796 0.711639\n0.453125 0.746307 0.710419\n0.483856 0.745636 0.708984\n0.516998 0.744812 0.707458\n0.553528 0.743896 0.705841\n0.592926 0.742920 0.704132\n0.634003 0.741913 0.702423\n0.675568 0.740967 0.700745\n0.717102 0.740631 0.699738\n0.756958 0.740723 0.699127\n0.792908 0.739990 0.697754\n0.825378 0.739349 0.696533\n0.854645 0.738800 0.695435\n0.880920 0.738403 0.694427\n0.904633 0.738037 0.693542\n0.926056 0.737762 0.692810\n0.945557 0.737610 0.692108\n0.963440 0.737579 0.691559\n0.979980 0.737885 0.691315\n0.995331 0.738220 0.691101\n1.000000 0.748016 0.704010\n0.116699 0.789825 0.721680\n0.156464 0.789093 0.720459\n0.191925 0.788483 0.719177\n0.223236 0.788055 0.718231\n0.251495 0.787659 0.717133\n0.277588 0.787292 0.716125\n0.302338 0.786957 0.715240\n0.326263 0.786682 0.714233\n0.350281 0.786346 0.713257\n0.374725 0.785950 0.712311\n0.400146 0.785522 0.711151\n0.427063 0.785004 0.710022\n0.455750 0.784332 0.708649\n0.486603 0.783600 0.707275\n0.519836 0.782684 0.705750\n0.556366 0.781708 0.704132\n0.595642 0.780640 0.702454\n0.636414 0.779572 0.700775\n0.677582 0.778473 0.699158\n0.718719 0.778229 0.698303\n0.758759 0.778809 0.698364\n0.794922 0.778778 0.697784\n0.826965 0.778076 0.696655\n0.855804 0.777496 0.695587\n0.881805 0.777008 0.694733\n0.905273 0.776581 0.693909\n0.926544 0.776367 0.693237\n0.945953 0.776489 0.692902\n0.963715 0.776642 0.692627\n0.980072 0.776733 0.692474\n0.995331 0.776886 0.692383\n1.000000 0.783691 0.705353\n0.124573 0.827057 0.720184\n0.162811 0.826324 0.718933\n0.197052 0.825653 0.717834\n0.227600 0.825043 0.716705\n0.255157 0.824554 0.715576\n0.280853 0.824127 0.714569\n0.305237 0.823730 0.713623\n0.328979 0.823334 0.712738\n0.352844 0.822906 0.711700\n0.377289 0.822449 0.710693\n0.402710 0.821899 0.709503\n0.429688 0.821259 0.708344\n0.458405 0.820526 0.707092\n0.489258 0.819672 0.705658\n0.522614 0.818695 0.704132\n0.559052 0.817627 0.702515\n0.598145 0.816498 0.700928\n0.638672 0.815338 0.699280\n0.679443 0.814240 0.697723\n0.720245 0.814026 0.697021\n0.759705 0.814514 0.697144\n0.795959 0.815002 0.697235\n0.828339 0.814911 0.696869\n0.856873 0.814301 0.695892\n0.882629 0.813782 0.695099\n0.906036 0.813660 0.694611\n0.927124 0.813507 0.694244\n0.946289 0.813446 0.694061\n0.963837 0.813446 0.693909\n0.980133 0.813446 0.693878\n0.995300 0.813477 0.693939\n1.000000 0.817291 0.706940\n0.131714 0.861755 0.718781\n0.168945 0.860870 0.717468\n0.202148 0.860138 0.716187\n0.231842 0.859528 0.715027\n0.258850 0.858917 0.713989\n0.283997 0.858459 0.713074\n0.308105 0.857941 0.712067\n0.331665 0.857483 0.711121\n0.355377 0.856934 0.710175\n0.379761 0.856415 0.709106\n0.405243 0.855774 0.708008\n0.432220 0.855072 0.706757\n0.461029 0.854248 0.705536\n0.491882 0.853333 0.704102\n0.525177 0.852264 0.702606\n0.561615 0.851105 0.701050\n0.600525 0.849976 0.699463\n0.640656 0.848785 0.697937\n0.681061 0.847595 0.696381\n0.721527 0.847412 0.695953\n0.760468 0.847839 0.696075\n0.796356 0.848236 0.696259\n0.828857 0.848602 0.696503\n0.858093 0.848938 0.696594\n0.883606 0.848541 0.696136\n0.906616 0.848267 0.695770\n0.927429 0.847992 0.695526\n0.946442 0.847778 0.695435\n0.963867 0.847595 0.695435\n0.980133 0.847504 0.695496\n0.995300 0.847351 0.695618\n1.000000 0.848450 0.708649\n0.138733 0.893250 0.717255\n0.174896 0.892365 0.715912\n0.207092 0.891602 0.714661\n0.236023 0.890930 0.713654\n0.262421 0.890289 0.712555\n0.287140 0.889709 0.711487\n0.310944 0.889160 0.710632\n0.334290 0.888611 0.709656\n0.357971 0.888031 0.708557\n0.382263 0.887421 0.707642\n0.407776 0.886688 0.706543\n0.434692 0.885895 0.705353\n0.463470 0.885101 0.704071\n0.494385 0.884094 0.702698\n0.527679 0.882965 0.701294\n0.564056 0.881805 0.699799\n0.602631 0.880615 0.698242\n0.642517 0.879364 0.696747\n0.682465 0.878174 0.695343\n0.722626 0.878021 0.695038\n0.761169 0.878296 0.695251\n0.796997 0.878815 0.695740\n0.829224 0.879333 0.696289\n0.858215 0.879791 0.696899\n0.884186 0.880127 0.697418\n0.906921 0.879700 0.697144\n0.927551 0.879333 0.697052\n0.946503 0.878937 0.697052\n0.963898 0.878693 0.697113\n0.980103 0.878418 0.697296\n0.995270 0.878204 0.697510\n1.000000 0.876923 0.710480\n0.145691 0.921448 0.715790\n0.180725 0.920532 0.714447\n0.211975 0.919769 0.713165\n0.240112 0.919006 0.712250\n0.265930 0.918365 0.711121\n0.290283 0.917725 0.710114\n0.313690 0.917145 0.709229\n0.336975 0.916504 0.708252\n0.360413 0.915863 0.707306\n0.384674 0.915222 0.706207\n0.410126 0.914459 0.705231\n0.437073 0.913635 0.703979\n0.465851 0.912720 0.702881\n0.496704 0.911713 0.701538\n0.529968 0.910522 0.700165\n0.566162 0.909363 0.698700\n0.604553 0.908142 0.697266\n0.644104 0.906860 0.695801\n0.683685 0.905670 0.694458\n0.724121 0.905701 0.694580\n0.762421 0.906067 0.695099\n0.797424 0.906403 0.695740\n0.829041 0.906769 0.696411\n0.857635 0.907104 0.697144\n0.883484 0.907440 0.697937\n0.907013 0.907776 0.698761\n0.927612 0.907288 0.698761\n0.946503 0.906860 0.698822\n0.963898 0.906555 0.699005\n0.980103 0.906158 0.699158\n0.995178 0.905853 0.699402\n1.000000 0.902527 0.712341\n0.152374 0.946564 0.714386\n0.186310 0.945618 0.713074\n0.216614 0.944824 0.711914\n0.244049 0.944061 0.710785\n0.269318 0.943420 0.709808\n0.293304 0.942749 0.708771\n0.316437 0.942139 0.707916\n0.339478 0.941498 0.706940\n0.362885 0.940826 0.706055\n0.387024 0.940125 0.704987\n0.412384 0.939362 0.703979\n0.439331 0.938477 0.702942\n0.468048 0.937531 0.701813\n0.498810 0.936493 0.700470\n0.532013 0.935364 0.699219\n0.568024 0.934174 0.697815\n0.606171 0.932953 0.696503\n0.646088 0.931763 0.695374\n0.685699 0.930695 0.694336\n0.725189 0.930664 0.694641\n0.762726 0.930878 0.695282\n0.797211 0.931122 0.696075\n0.828522 0.931366 0.696869\n0.856873 0.931610 0.697662\n0.882690 0.931824 0.698547\n0.906128 0.932068 0.699432\n0.927490 0.932312 0.700409\n0.946564 0.931946 0.700745\n0.963959 0.931549 0.700897\n0.980103 0.931122 0.701111\n0.995209 0.930817 0.701538\n1.000000 0.925842 0.714722\n0.158813 0.969055 0.712891\n0.191681 0.968140 0.711639\n0.221100 0.967346 0.710571\n0.247742 0.966614 0.709625\n0.272583 0.965912 0.708649\n0.296143 0.965271 0.707642\n0.319031 0.964600 0.706818\n0.341858 0.963928 0.705750\n0.365112 0.963287 0.704987\n0.389221 0.962555 0.704041\n0.414551 0.961761 0.703003\n0.441376 0.960907 0.702087\n0.470062 0.959930 0.700958\n0.500671 0.958923 0.699646\n0.533752 0.957764 0.698456\n0.570404 0.956635 0.697418\n0.608734 0.955505 0.696350\n0.647766 0.954315 0.695496\n0.686554 0.953186 0.694580\n0.725403 0.953064 0.695038\n0.762543 0.953247 0.695801\n0.796661 0.953400 0.696686\n0.827759 0.953552 0.697540\n0.856110 0.953705 0.698395\n0.881836 0.953857 0.699371\n0.905365 0.954041 0.700378\n0.926697 0.954163 0.701294\n0.946320 0.954346 0.702301\n0.964020 0.954163 0.702942\n0.980164 0.953735 0.703552\n0.995178 0.953430 0.704346\n1.000000 0.946899 0.717651\n0.164886 0.989349 0.711578\n0.196686 0.988495 0.710541\n0.225250 0.987701 0.709381\n0.251312 0.987030 0.708435\n0.275635 0.986298 0.707397\n0.298828 0.985657 0.706543\n0.321472 0.985016 0.705719\n0.344116 0.984375 0.704834\n0.367218 0.983673 0.704010\n0.391144 0.982941 0.703247\n0.416412 0.982147 0.702209\n0.443176 0.981293 0.701263\n0.471741 0.980347 0.700195\n0.502960 0.979340 0.699310\n0.536438 0.978241 0.698456\n0.572388 0.977142 0.697510\n0.609924 0.975983 0.696655\n0.648315 0.974823 0.695831\n0.686646 0.973694 0.695160\n0.725067 0.973541 0.695679\n0.761902 0.973602 0.696564\n0.795959 0.973694 0.697479\n0.826996 0.973755 0.698395\n0.855438 0.973846 0.699402\n0.881165 0.973969 0.700378\n0.904694 0.974030 0.701355\n0.926178 0.974152 0.702454\n0.945831 0.974243 0.703827\n0.963806 0.974396 0.705292\n0.980255 0.974365 0.706604\n0.995209 0.973907 0.707550\n1.000000 0.966125 0.720825\n0.181702 1.000000 0.707489\n0.211182 1.000000 0.707062\n0.237793 1.000000 0.706421\n0.262177 1.000000 0.705780\n0.285034 1.000000 0.705353\n0.306946 1.000000 0.704712\n0.328369 1.000000 0.704224\n0.349945 1.000000 0.703644\n0.371979 1.000000 0.703125\n0.394867 1.000000 0.702423\n0.419037 1.000000 0.701691\n0.445374 1.000000 0.700989\n0.474274 0.999115 0.700226\n0.504883 0.998077 0.699402\n0.537811 0.997040 0.698700\n0.573181 0.995880 0.697968\n0.610291 0.994751 0.697266\n0.648224 0.993591 0.696594\n0.686279 0.992493 0.696045\n0.724518 0.992249 0.696533\n0.761322 0.992249 0.697479\n0.795410 0.992279 0.698456\n0.826569 0.992340 0.699432\n0.854980 0.992340 0.700409\n0.880859 0.992401 0.701508\n0.904419 0.992432 0.702850\n0.925842 0.992432 0.704346\n0.945404 0.992493 0.705963\n0.963348 0.992523 0.707611\n0.979858 0.992554 0.709290\n0.995209 0.992523 0.710632\n1.000000 0.983734 0.723450\n0.211700 1.000000 0.701355\n0.239899 1.000000 0.701324\n0.265442 1.000000 0.701324\n0.288910 1.000000 0.701416\n0.310944 1.000000 0.701599\n0.332214 1.000000 0.701599\n0.353088 1.000000 0.701752\n0.374115 1.000000 0.701904\n0.395630 1.000000 0.702209\n0.418640 1.000000 0.702667\n0.442688 1.000000 0.703217\n0.468048 1.000000 0.703796\n0.494934 1.000000 0.704498\n0.523987 1.000000 0.705109\n0.555817 1.000000 0.705963\n0.589966 1.000000 0.706665\n0.625763 1.000000 0.707581\n0.662415 1.000000 0.708405\n0.699127 1.000000 0.709351\n0.734955 1.000000 0.710297\n0.768982 1.000000 0.711212\n0.800568 1.000000 0.712189\n0.829498 1.000000 0.713196\n0.855896 1.000000 0.714539\n0.879791 1.000000 0.715973\n0.901581 1.000000 0.717499\n0.921417 1.000000 0.719116\n0.939575 1.000000 0.720734\n0.956207 1.000000 0.722137\n0.971710 1.000000 0.723450\n0.986267 1.000000 0.724640\n1.000000 1.000000 0.725769\n0.000000 0.019836 0.720276\n0.027802 0.002594 0.739227\n0.075500 0.005615 0.740051\n0.119965 0.007263 0.740509\n0.160858 0.008942 0.740936\n0.197479 0.010498 0.741364\n0.230164 0.012054 0.741791\n0.260040 0.013641 0.742218\n0.287659 0.015106 0.742615\n0.313873 0.016632 0.743011\n0.339478 0.018158 0.743408\n0.365265 0.019653 0.743774\n0.391907 0.021179 0.744110\n0.420013 0.022736 0.744476\n0.450012 0.024323 0.744812\n0.482483 0.025970 0.745209\n0.518311 0.027618 0.745453\n0.559601 0.029388 0.745819\n0.605438 0.031189 0.746094\n0.654236 0.033051 0.746368\n0.704132 0.035095 0.746704\n0.752991 0.036896 0.746765\n0.797180 0.036774 0.745300\n0.836945 0.036896 0.743713\n0.872131 0.037231 0.742737\n0.903076 0.037750 0.741516\n0.930298 0.038513 0.740540\n0.954315 0.039429 0.739502\n0.975739 0.040527 0.738800\n0.994934 0.041718 0.737976\n1.000000 0.061554 0.730499\n1.000000 0.087952 0.722046\n0.000000 0.057404 0.724182\n0.028137 0.040924 0.739746\n0.074463 0.041901 0.739777\n0.118469 0.043488 0.740234\n0.159058 0.044952 0.740662\n0.195831 0.046417 0.741089\n0.228790 0.047882 0.741455\n0.258606 0.049286 0.741852\n0.286377 0.050751 0.742279\n0.312683 0.052155 0.742645\n0.338226 0.053619 0.742950\n0.364136 0.055084 0.743317\n0.390686 0.056580 0.743683\n0.418732 0.058136 0.744019\n0.448944 0.059723 0.744354\n0.481903 0.061432 0.744659\n0.518463 0.063110 0.744995\n0.560120 0.064941 0.745270\n0.606354 0.066833 0.745544\n0.655609 0.068787 0.745850\n0.705597 0.070618 0.746063\n0.754059 0.072052 0.746033\n0.798065 0.071960 0.744415\n0.837616 0.072174 0.742981\n0.872467 0.072571 0.741913\n0.903168 0.073120 0.740631\n0.930145 0.073975 0.739685\n0.954041 0.074860 0.738831\n0.975220 0.075897 0.737976\n0.994293 0.077087 0.737122\n1.000000 0.095428 0.730621\n1.000000 0.121216 0.722565\n0.000000 0.092255 0.725525\n0.028076 0.077850 0.740723\n0.072937 0.077362 0.739655\n0.116699 0.078705 0.739960\n0.157532 0.080109 0.740326\n0.194489 0.081451 0.740723\n0.227570 0.082794 0.741119\n0.257446 0.084167 0.741486\n0.284973 0.085541 0.741852\n0.311432 0.086945 0.742218\n0.337036 0.088409 0.742554\n0.362946 0.089844 0.742859\n0.389618 0.091309 0.743225\n0.418030 0.092926 0.743530\n0.448853 0.094574 0.743835\n0.482239 0.096252 0.744171\n0.519318 0.098053 0.744446\n0.561523 0.099945 0.744690\n0.608185 0.101715 0.744965\n0.657288 0.103333 0.745178\n0.707245 0.105164 0.745422\n0.755615 0.106537 0.745209\n0.799377 0.106506 0.743713\n0.838593 0.106750 0.742340\n0.873077 0.107117 0.740967\n0.903442 0.107819 0.739838\n0.930145 0.108582 0.739075\n0.953766 0.109467 0.738098\n0.974792 0.110565 0.737305\n0.993652 0.111633 0.736420\n1.000000 0.128540 0.730530\n1.000000 0.153595 0.722900\n0.000000 0.126709 0.726105\n0.027496 0.113586 0.741699\n0.072662 0.113312 0.740570\n0.115448 0.113037 0.739563\n0.156158 0.114349 0.739990\n0.193176 0.115601 0.740356\n0.226288 0.116943 0.740692\n0.256165 0.118256 0.741089\n0.283752 0.119598 0.741425\n0.310120 0.121002 0.741760\n0.335846 0.122406 0.742126\n0.362183 0.123901 0.742401\n0.389374 0.125488 0.742737\n0.418335 0.127075 0.742981\n0.449554 0.128784 0.743347\n0.483521 0.130554 0.743591\n0.520935 0.132202 0.743835\n0.563507 0.133820 0.744019\n0.610352 0.135529 0.744293\n0.659729 0.137207 0.744476\n0.709595 0.139008 0.744690\n0.757660 0.140350 0.744415\n0.801025 0.140350 0.742828\n0.839752 0.140594 0.741394\n0.873810 0.140991 0.740265\n0.903839 0.141602 0.739044\n0.930237 0.142365 0.738220\n0.953583 0.143188 0.737305\n0.974365 0.144165 0.736298\n0.993073 0.145203 0.735626\n1.000000 0.160706 0.730316\n1.000000 0.184967 0.723328\n0.000000 0.160095 0.726807\n0.027466 0.148499 0.742584\n0.072601 0.148010 0.741425\n0.115234 0.147736 0.740326\n0.154816 0.147736 0.739563\n0.191864 0.148987 0.739960\n0.224854 0.150208 0.740295\n0.254852 0.151581 0.740631\n0.282562 0.152893 0.740997\n0.309326 0.154388 0.741302\n0.335754 0.155792 0.741608\n0.362335 0.157349 0.741913\n0.389984 0.158966 0.742249\n0.419373 0.160583 0.742462\n0.451050 0.162231 0.742737\n0.485229 0.163696 0.742920\n0.523102 0.165314 0.743195\n0.566284 0.166901 0.743378\n0.613403 0.168640 0.743622\n0.662811 0.170349 0.743774\n0.712524 0.172119 0.743958\n0.760040 0.173248 0.743469\n0.802917 0.173309 0.741974\n0.841095 0.173553 0.740570\n0.874695 0.173920 0.739441\n0.904236 0.174500 0.738373\n0.930328 0.175201 0.737335\n0.953430 0.175995 0.736481\n0.973969 0.176849 0.735443\n0.992493 0.177795 0.734741\n1.000000 0.191925 0.730011\n1.000000 0.215515 0.723663\n0.000000 0.192444 0.727631\n0.027435 0.182495 0.743439\n0.072571 0.182007 0.742279\n0.115204 0.181549 0.741150\n0.154572 0.181335 0.740112\n0.190613 0.181580 0.739502\n0.223633 0.182922 0.739838\n0.254059 0.184174 0.740173\n0.282562 0.185608 0.740509\n0.309692 0.187042 0.740784\n0.336304 0.188507 0.741119\n0.363403 0.190094 0.741364\n0.391449 0.191650 0.741638\n0.420990 0.193024 0.741852\n0.452850 0.194519 0.742096\n0.487701 0.196106 0.742310\n0.526031 0.197693 0.742493\n0.569519 0.199310 0.742676\n0.616943 0.201050 0.742889\n0.666290 0.202698 0.743011\n0.715912 0.204437 0.743225\n0.762756 0.205383 0.742676\n0.805023 0.205414 0.741089\n0.842560 0.205627 0.739838\n0.875641 0.205963 0.738495\n0.904785 0.206482 0.737457\n0.930511 0.207092 0.736481\n0.953247 0.207794 0.735657\n0.973602 0.208557 0.734833\n0.991943 0.209351 0.734070\n1.000000 0.222198 0.729828\n1.000000 0.245056 0.723907\n0.000000 0.223938 0.728455\n0.027405 0.215607 0.744263\n0.072540 0.215118 0.743042\n0.115173 0.214752 0.741943\n0.154541 0.214447 0.740906\n0.190796 0.214417 0.739929\n0.223816 0.214783 0.739380\n0.254608 0.216095 0.739685\n0.283356 0.217560 0.740021\n0.310822 0.219086 0.740295\n0.337738 0.220490 0.740509\n0.364838 0.221802 0.740753\n0.393250 0.223236 0.740997\n0.423096 0.224670 0.741180\n0.455444 0.226166 0.741425\n0.490692 0.227692 0.741608\n0.529602 0.229279 0.741791\n0.573456 0.230896 0.741974\n0.620911 0.232483 0.742157\n0.670288 0.234161 0.742340\n0.719421 0.235870 0.742493\n0.765625 0.236603 0.741699\n0.807190 0.236572 0.740295\n0.844147 0.236816 0.738953\n0.876648 0.237061 0.737671\n0.905365 0.237549 0.736633\n0.930664 0.238098 0.735718\n0.953125 0.238678 0.734711\n0.973206 0.239349 0.734009\n0.991364 0.239990 0.733154\n1.000000 0.251556 0.729614\n1.000000 0.273682 0.724365\n0.000000 0.254578 0.729187\n0.027374 0.247803 0.744995\n0.072510 0.247375 0.743805\n0.115845 0.247131 0.742645\n0.156311 0.246826 0.741547\n0.193024 0.246826 0.740540\n0.225983 0.246887 0.739685\n0.256256 0.247467 0.739166\n0.285126 0.248871 0.739441\n0.312531 0.250122 0.739655\n0.339539 0.251404 0.739899\n0.367035 0.252838 0.740112\n0.395569 0.254242 0.740326\n0.425873 0.255707 0.740540\n0.458618 0.257172 0.740692\n0.494141 0.258698 0.740906\n0.533630 0.260254 0.741089\n0.577881 0.261871 0.741211\n0.625366 0.263428 0.741394\n0.674438 0.265045 0.741577\n0.723297 0.266632 0.741699\n0.768555 0.267120 0.740784\n0.809448 0.267151 0.739319\n0.845673 0.267242 0.737976\n0.877594 0.267517 0.736816\n0.905853 0.267883 0.735779\n0.930756 0.268402 0.734741\n0.952881 0.268890 0.733856\n0.972809 0.269409 0.733002\n0.990784 0.269958 0.732239\n1.000000 0.280243 0.729279\n1.000000 0.301758 0.724548\n0.000000 0.284912 0.729919\n0.028168 0.279663 0.745758\n0.074738 0.279114 0.744507\n0.118835 0.278839 0.743286\n0.159637 0.278625 0.742157\n0.196594 0.278717 0.741119\n0.229431 0.278839 0.740173\n0.259186 0.278931 0.739288\n0.287231 0.279388 0.738800\n0.314819 0.280701 0.739014\n0.341980 0.282074 0.739227\n0.369720 0.283478 0.739410\n0.398621 0.284912 0.739624\n0.429260 0.286346 0.739777\n0.462280 0.287842 0.740021\n0.498138 0.289276 0.740143\n0.538116 0.290802 0.740326\n0.582581 0.292419 0.740479\n0.630066 0.293884 0.740631\n0.678925 0.295441 0.740784\n0.727081 0.296997 0.740936\n0.771515 0.297333 0.739777\n0.811584 0.297272 0.738434\n0.847198 0.297333 0.737183\n0.878510 0.297546 0.735931\n0.906281 0.297852 0.734863\n0.930786 0.298248 0.733826\n0.952698 0.298645 0.733032\n0.972321 0.299103 0.732239\n0.990143 0.299530 0.731445\n1.000000 0.308563 0.728760\n1.000000 0.329407 0.724701\n0.000000 0.314545 0.732697\n0.031708 0.310974 0.746338\n0.078918 0.310730 0.745056\n0.123474 0.310425 0.743774\n0.164276 0.310272 0.742615\n0.200775 0.310211 0.741516\n0.233429 0.310211 0.740570\n0.263062 0.310364 0.739655\n0.290771 0.310669 0.738892\n0.317657 0.311249 0.738312\n0.344971 0.312561 0.738495\n0.372803 0.313995 0.738678\n0.401947 0.315399 0.738892\n0.432892 0.316833 0.739044\n0.466278 0.318329 0.739227\n0.502472 0.319763 0.739380\n0.542847 0.321228 0.739532\n0.587524 0.322754 0.739685\n0.634827 0.324158 0.739807\n0.683258 0.325714 0.739960\n0.730896 0.327148 0.740143\n0.774384 0.327240 0.738831\n0.813660 0.327209 0.737488\n0.848511 0.327271 0.736206\n0.879303 0.327393 0.734985\n0.906586 0.327637 0.733887\n0.930786 0.327881 0.732971\n0.952362 0.328217 0.732117\n0.971832 0.328552 0.731171\n0.989502 0.328918 0.730316\n1.000000 0.336731 0.728363\n1.000000 0.357056 0.724915\n0.000000 0.344330 0.737427\n0.037231 0.342682 0.746857\n0.084778 0.342255 0.745514\n0.129059 0.341858 0.744202\n0.169617 0.341644 0.742950\n0.205872 0.341644 0.741852\n0.238220 0.341766 0.740936\n0.267639 0.341858 0.740051\n0.295258 0.342224 0.739197\n0.321808 0.342621 0.738342\n0.348358 0.343231 0.737732\n0.376373 0.344604 0.737915\n0.405701 0.345978 0.738098\n0.436890 0.347412 0.738251\n0.470551 0.348846 0.738434\n0.507019 0.350250 0.738556\n0.547668 0.351715 0.738678\n0.592529 0.353149 0.738831\n0.639496 0.354553 0.739014\n0.687561 0.355957 0.739136\n0.734436 0.357330 0.739227\n0.776978 0.357239 0.737823\n0.815491 0.357147 0.736450\n0.849609 0.357147 0.735138\n0.879913 0.357208 0.734009\n0.906738 0.357391 0.733032\n0.930603 0.357574 0.731903\n0.951965 0.357849 0.730988\n0.971252 0.358124 0.730194\n0.988800 0.358429 0.729279\n1.000000 0.365051 0.727692\n1.000000 0.384827 0.724915\n0.000000 0.374969 0.743805\n0.044098 0.374146 0.747223\n0.091492 0.373749 0.745789\n0.135742 0.373413 0.744476\n0.175964 0.373291 0.743256\n0.211700 0.373352 0.742218\n0.243622 0.373535 0.741211\n0.272705 0.373810 0.740295\n0.300079 0.374084 0.739471\n0.326538 0.374603 0.738647\n0.352966 0.374908 0.737762\n0.380219 0.375519 0.737091\n0.409668 0.376862 0.737244\n0.441101 0.378235 0.737396\n0.475067 0.379639 0.737549\n0.511719 0.381012 0.737671\n0.552673 0.382385 0.737793\n0.597351 0.383759 0.737976\n0.644135 0.385101 0.738037\n0.691498 0.386414 0.738190\n0.737640 0.387726 0.738281\n0.779297 0.387482 0.736755\n0.817017 0.387299 0.735413\n0.850525 0.387207 0.734100\n0.880280 0.387238 0.732910\n0.906769 0.387329 0.731934\n0.930328 0.387451 0.730957\n0.951538 0.387695 0.729980\n0.970673 0.387939 0.729034\n0.988098 0.388245 0.728119\n1.000000 0.393677 0.726776\n1.000000 0.412933 0.724915\n0.002289 0.406586 0.748871\n0.052185 0.406097 0.747406\n0.099579 0.405853 0.746002\n0.143524 0.405487 0.744720\n0.183075 0.405457 0.743469\n0.218140 0.405518 0.742401\n0.249512 0.405853 0.741425\n0.278168 0.406067 0.740570\n0.305267 0.406494 0.739685\n0.331512 0.406921 0.738892\n0.357880 0.407257 0.738037\n0.385071 0.407684 0.737122\n0.413727 0.408112 0.736298\n0.445404 0.409485 0.736481\n0.479492 0.410797 0.736603\n0.516357 0.412109 0.736755\n0.557526 0.413422 0.736816\n0.602020 0.414734 0.736938\n0.648376 0.415985 0.737091\n0.695160 0.417206 0.737183\n0.740356 0.418304 0.737152\n0.781281 0.417969 0.735626\n0.818237 0.417786 0.734222\n0.851196 0.417664 0.732941\n0.880585 0.417633 0.731781\n0.906708 0.417755 0.730682\n0.930084 0.417786 0.729706\n0.951080 0.417969 0.728638\n0.970062 0.418213 0.727692\n0.987335 0.418488 0.726837\n1.000000 0.422821 0.725739\n1.000000 0.441437 0.724823\n0.011871 0.439026 0.749084\n0.061737 0.438660 0.747620\n0.108826 0.438416 0.746185\n0.152100 0.438293 0.744873\n0.190765 0.438202 0.743683\n0.224945 0.438385 0.742645\n0.255646 0.438721 0.741638\n0.283844 0.439026 0.740784\n0.310577 0.439423 0.739960\n0.336670 0.439728 0.739105\n0.363007 0.440186 0.738220\n0.390198 0.440521 0.737305\n0.418762 0.440704 0.736267\n0.449707 0.441193 0.735504\n0.483826 0.442474 0.735565\n0.520752 0.443695 0.735687\n0.562042 0.444977 0.735840\n0.606262 0.446167 0.735931\n0.652252 0.447357 0.736023\n0.698273 0.448456 0.736115\n0.742615 0.449310 0.735931\n0.782867 0.448944 0.734344\n0.819305 0.448730 0.732941\n0.851837 0.448578 0.731720\n0.880798 0.448578 0.730438\n0.906647 0.448608 0.729401\n0.929749 0.448730 0.728333\n0.950531 0.448883 0.727264\n0.969391 0.449066 0.726410\n0.986511 0.449280 0.725433\n1.000000 0.452423 0.724579\n1.000000 0.470490 0.724884\n0.022797 0.472229 0.749207\n0.072327 0.471924 0.747742\n0.118774 0.471802 0.746338\n0.161194 0.471741 0.744995\n0.198730 0.471710 0.743835\n0.232025 0.471985 0.742798\n0.261902 0.472229 0.741852\n0.289642 0.472595 0.740997\n0.316010 0.472931 0.740143\n0.341888 0.473328 0.739288\n0.368103 0.473755 0.738403\n0.395294 0.474060 0.737427\n0.423920 0.474152 0.736389\n0.454498 0.474304 0.735199\n0.487976 0.474731 0.734497\n0.524963 0.475891 0.734650\n0.566101 0.477081 0.734711\n0.609985 0.478119 0.734802\n0.655426 0.479187 0.734863\n0.701019 0.480255 0.734924\n0.744690 0.480927 0.734558\n0.784393 0.480560 0.733032\n0.820282 0.480316 0.731598\n0.852325 0.480225 0.730255\n0.880951 0.480164 0.729095\n0.906494 0.480194 0.727936\n0.929321 0.480225 0.726898\n0.949921 0.480408 0.725830\n0.968597 0.480530 0.724854\n0.985687 0.480804 0.724091\n1.000000 0.482758 0.723389\n1.000000 0.500305 0.724915\n0.034729 0.506500 0.749268\n0.083710 0.506165 0.747803\n0.129211 0.505981 0.746368\n0.170441 0.505981 0.745056\n0.206818 0.506073 0.743927\n0.239105 0.506287 0.742920\n0.268280 0.506653 0.742035\n0.295410 0.506958 0.741180\n0.321442 0.507324 0.740295\n0.347046 0.507629 0.739441\n0.373138 0.507965 0.738525\n0.400269 0.508240 0.737549\n0.428802 0.508392 0.736511\n0.459412 0.508392 0.735352\n0.492279 0.508301 0.734009\n0.528687 0.508759 0.733368\n0.569611 0.509796 0.733459\n0.613312 0.510834 0.733521\n0.658447 0.511871 0.733521\n0.703613 0.512848 0.733612\n0.746674 0.513367 0.733063\n0.785828 0.513031 0.731506\n0.821167 0.512787 0.730042\n0.852753 0.512604 0.728760\n0.881012 0.512543 0.727539\n0.906219 0.512543 0.726410\n0.928864 0.512604 0.725311\n0.949280 0.512726 0.724335\n0.967773 0.512848 0.723389\n0.984772 0.513031 0.722534\n1.000000 0.513824 0.721771\n1.000000 0.531586 0.724884\n0.047363 0.543060 0.749268\n0.095428 0.542694 0.747803\n0.139862 0.542633 0.746429\n0.179840 0.542633 0.745209\n0.214844 0.542694 0.744049\n0.246094 0.542908 0.743042\n0.274475 0.543182 0.742188\n0.301056 0.543518 0.741302\n0.326721 0.543945 0.740417\n0.352112 0.544220 0.739532\n0.378021 0.544495 0.738647\n0.405029 0.544708 0.737671\n0.433502 0.544708 0.736603\n0.463959 0.544678 0.735413\n0.496643 0.544434 0.734070\n0.532440 0.544067 0.732544\n0.572998 0.544617 0.732086\n0.616486 0.545624 0.732117\n0.661407 0.546631 0.732147\n0.706116 0.547638 0.732117\n0.748566 0.548004 0.731445\n0.787079 0.547577 0.729889\n0.821960 0.547302 0.728455\n0.853088 0.547058 0.727081\n0.880951 0.546967 0.725861\n0.905884 0.546967 0.724823\n0.928314 0.546967 0.723785\n0.948486 0.547028 0.722748\n0.966919 0.547180 0.721893\n0.983795 0.547302 0.720978\n0.999390 0.547485 0.720184\n1.000000 0.565094 0.724945\n0.060364 0.582306 0.749268\n0.107300 0.581970 0.747833\n0.150452 0.581909 0.746490\n0.188965 0.581848 0.745239\n0.222656 0.581879 0.744171\n0.252899 0.582031 0.743225\n0.280457 0.582336 0.742249\n0.306488 0.582581 0.741394\n0.331726 0.582886 0.740570\n0.356842 0.583038 0.739685\n0.382538 0.583252 0.738739\n0.409363 0.583374 0.737762\n0.437714 0.583282 0.736664\n0.468170 0.583069 0.735443\n0.500885 0.582703 0.734039\n0.536926 0.582306 0.732483\n0.576447 0.581696 0.730865\n0.619629 0.582458 0.730652\n0.664246 0.583405 0.730621\n0.708496 0.584442 0.730591\n0.750244 0.584625 0.729736\n0.788300 0.584167 0.728180\n0.822601 0.583801 0.726776\n0.853302 0.583557 0.725494\n0.880798 0.583344 0.724304\n0.905457 0.583282 0.723206\n0.927643 0.583282 0.722168\n0.947693 0.583313 0.721222\n0.966003 0.583344 0.720367\n0.982758 0.583527 0.719513\n0.998383 0.583679 0.718872\n1.000000 0.600281 0.725098\n0.073425 0.623566 0.749237\n0.119080 0.623169 0.747803\n0.160797 0.623047 0.746490\n0.197632 0.622803 0.745331\n0.230103 0.622986 0.744232\n0.259338 0.623077 0.743256\n0.286163 0.623230 0.742401\n0.311615 0.623383 0.741547\n0.336426 0.623566 0.740662\n0.361206 0.623688 0.739777\n0.386688 0.623749 0.738831\n0.413391 0.623657 0.737823\n0.441833 0.623444 0.736664\n0.472382 0.623169 0.735382\n0.505219 0.622711 0.733978\n0.541504 0.622223 0.732391\n0.581055 0.621521 0.730713\n0.622711 0.620850 0.729065\n0.666992 0.621796 0.729034\n0.710754 0.622711 0.728943\n0.751862 0.622711 0.727997\n0.789307 0.622162 0.726471\n0.823120 0.621765 0.725067\n0.853424 0.621429 0.723846\n0.880615 0.621216 0.722626\n0.904968 0.621033 0.721558\n0.926971 0.621002 0.720673\n0.946869 0.620972 0.719696\n0.965027 0.621002 0.718933\n0.981720 0.621063 0.718170\n0.997284 0.621185 0.717468\n1.000000 0.636658 0.725403\n0.086212 0.665894 0.749176\n0.130432 0.665527 0.747742\n0.170563 0.665283 0.746460\n0.205780 0.665070 0.745300\n0.237061 0.665009 0.744324\n0.265289 0.665100 0.743378\n0.291351 0.665131 0.742493\n0.316223 0.665161 0.741608\n0.340637 0.665283 0.740753\n0.365204 0.665192 0.739899\n0.390686 0.665070 0.738892\n0.417480 0.664948 0.737793\n0.445953 0.664612 0.736633\n0.476624 0.664215 0.735291\n0.509583 0.663666 0.733826\n0.546021 0.663025 0.732208\n0.585510 0.662292 0.730499\n0.626984 0.661499 0.728790\n0.669586 0.660980 0.727417\n0.712891 0.661835 0.727356\n0.753326 0.661682 0.726318\n0.790222 0.661011 0.724762\n0.823547 0.660553 0.723419\n0.853424 0.660126 0.722198\n0.880310 0.659882 0.721069\n0.904419 0.659637 0.720062\n0.926208 0.659546 0.719147\n0.945984 0.659424 0.718353\n0.964020 0.659393 0.717590\n0.980652 0.659424 0.716919\n0.996155 0.659454 0.716309\n1.000000 0.673584 0.725739\n0.098328 0.708527 0.749054\n0.141174 0.708069 0.747681\n0.179596 0.707794 0.746490\n0.213287 0.707581 0.745361\n0.243378 0.707336 0.744354\n0.270630 0.707397 0.743439\n0.296021 0.707245 0.742554\n0.320465 0.707092 0.741699\n0.344727 0.707062 0.740784\n0.369202 0.706970 0.739838\n0.394714 0.706787 0.738831\n0.421448 0.706451 0.737701\n0.450104 0.706055 0.736481\n0.480865 0.705566 0.735107\n0.513885 0.704834 0.733643\n0.550446 0.704041 0.731995\n0.589935 0.703217 0.730286\n0.631195 0.702332 0.728577\n0.673126 0.701416 0.726898\n0.714905 0.701172 0.725769\n0.754639 0.700775 0.724640\n0.791046 0.700073 0.723175\n0.823822 0.699463 0.721802\n0.853394 0.699005 0.720642\n0.879944 0.698669 0.719604\n0.903839 0.698364 0.718628\n0.925415 0.698151 0.717804\n0.945038 0.697998 0.717072\n0.963013 0.697968 0.716431\n0.979614 0.697845 0.715790\n0.995056 0.698120 0.715363\n1.000000 0.711365 0.726593\n0.109680 0.750763 0.748993\n0.150909 0.750183 0.747620\n0.187622 0.749664 0.746368\n0.219879 0.749268 0.745209\n0.248749 0.748962 0.744202\n0.275299 0.748718 0.743347\n0.300201 0.748535 0.742371\n0.324402 0.748352 0.741394\n0.348480 0.748077 0.740479\n0.372894 0.747833 0.739441\n0.398346 0.747467 0.738342\n0.425171 0.747009 0.737213\n0.453857 0.746521 0.735901\n0.484619 0.745819 0.734436\n0.517670 0.744995 0.732941\n0.554321 0.744110 0.731262\n0.593689 0.743164 0.729584\n0.634705 0.742126 0.727844\n0.676208 0.741150 0.726166\n0.717010 0.740204 0.724548\n0.756439 0.739929 0.723633\n0.792297 0.739227 0.722260\n0.824738 0.738586 0.721039\n0.853912 0.738037 0.719971\n0.880188 0.737640 0.718994\n0.903839 0.737335 0.718140\n0.925293 0.737061 0.717407\n0.944794 0.736816 0.716736\n0.962708 0.736969 0.716217\n0.979218 0.737366 0.716003\n0.994598 0.737671 0.715851\n1.000000 0.748413 0.727783\n0.118500 0.790039 0.747253\n0.158051 0.789337 0.745941\n0.193176 0.788727 0.744690\n0.224304 0.788269 0.743774\n0.252472 0.787842 0.742706\n0.278503 0.787476 0.741699\n0.303131 0.787140 0.740753\n0.327057 0.786865 0.739716\n0.350983 0.786499 0.738739\n0.375458 0.786194 0.737701\n0.400909 0.785675 0.736603\n0.427795 0.785187 0.735443\n0.456512 0.784515 0.734161\n0.487335 0.783752 0.732758\n0.520569 0.782867 0.731201\n0.557159 0.781860 0.729584\n0.596375 0.780792 0.727905\n0.637085 0.779724 0.726227\n0.678192 0.778687 0.724609\n0.718445 0.777649 0.722992\n0.758179 0.778046 0.722870\n0.794312 0.777985 0.722382\n0.826263 0.777313 0.721191\n0.855072 0.776703 0.720184\n0.881042 0.776276 0.719269\n0.904510 0.775848 0.718506\n0.925842 0.775726 0.717926\n0.945221 0.775879 0.717590\n0.962952 0.775940 0.717316\n0.979309 0.776184 0.717194\n0.994568 0.776306 0.717133\n1.000000 0.783966 0.729187\n0.126129 0.827240 0.745789\n0.164246 0.826447 0.744385\n0.198334 0.825836 0.743256\n0.228638 0.825195 0.742157\n0.256165 0.824738 0.741119\n0.281708 0.824341 0.740143\n0.306000 0.823914 0.739136\n0.329742 0.823486 0.738220\n0.353546 0.823090 0.737213\n0.377960 0.822601 0.736115\n0.403442 0.822021 0.735046\n0.430359 0.821411 0.733826\n0.459137 0.820679 0.732544\n0.490021 0.819794 0.731140\n0.523285 0.818787 0.729584\n0.559814 0.817780 0.727997\n0.598877 0.816650 0.726410\n0.639282 0.815521 0.724731\n0.680023 0.814423 0.723175\n0.719879 0.813293 0.721680\n0.759155 0.813690 0.721680\n0.795410 0.814209 0.721832\n0.827637 0.814178 0.721466\n0.856140 0.813477 0.720520\n0.881927 0.813110 0.719788\n0.905273 0.812988 0.719330\n0.926331 0.812897 0.718994\n0.945465 0.812805 0.718781\n0.963043 0.812836 0.718658\n0.979340 0.812775 0.718658\n0.994568 0.812744 0.718689\n1.000000 0.817474 0.730804\n0.133270 0.861847 0.744263\n0.170349 0.860992 0.742859\n0.203400 0.860291 0.741638\n0.232849 0.859619 0.740601\n0.259766 0.859070 0.739471\n0.284851 0.858551 0.738525\n0.308807 0.858093 0.737640\n0.332428 0.857605 0.736542\n0.356079 0.857056 0.735626\n0.380493 0.856506 0.734497\n0.405975 0.855896 0.733429\n0.432922 0.855194 0.732239\n0.461700 0.854370 0.730957\n0.492584 0.853455 0.729614\n0.525848 0.852386 0.728088\n0.562378 0.851227 0.726562\n0.601196 0.850067 0.724976\n0.641296 0.848938 0.723419\n0.681610 0.847717 0.721924\n0.720947 0.846619 0.720490\n0.759857 0.847046 0.720673\n0.795685 0.847412 0.720856\n0.828247 0.847900 0.721161\n0.857391 0.848236 0.721313\n0.882874 0.847839 0.720825\n0.905792 0.847534 0.720520\n0.926605 0.847290 0.720276\n0.945618 0.847076 0.720245\n0.963104 0.846893 0.720215\n0.979340 0.846771 0.720367\n0.994537 0.846619 0.720459\n1.000000 0.848694 0.732513\n0.140259 0.893341 0.742767\n0.176331 0.892426 0.741394\n0.208252 0.891693 0.740265\n0.237000 0.890991 0.739044\n0.263367 0.890381 0.738129\n0.287964 0.889771 0.737091\n0.311707 0.889252 0.736053\n0.335022 0.888702 0.735046\n0.358643 0.888123 0.734100\n0.382935 0.887482 0.733032\n0.408386 0.886780 0.731995\n0.435364 0.886047 0.730835\n0.464172 0.885132 0.729614\n0.494995 0.884155 0.728210\n0.528290 0.883057 0.726746\n0.564667 0.881897 0.725311\n0.603241 0.880646 0.723724\n0.643005 0.879486 0.722321\n0.682983 0.878296 0.720886\n0.722046 0.877197 0.719635\n0.760712 0.877563 0.719910\n0.796417 0.878082 0.720428\n0.828522 0.878571 0.720978\n0.857422 0.879059 0.721649\n0.883331 0.879395 0.722168\n0.906067 0.878937 0.721924\n0.926697 0.878571 0.721863\n0.945679 0.878235 0.721863\n0.963104 0.877869 0.721924\n0.979309 0.877686 0.722137\n0.994507 0.877441 0.722290\n1.000000 0.877075 0.734314\n0.147125 0.921478 0.741272\n0.182068 0.920563 0.740021\n0.213043 0.919800 0.738770\n0.241028 0.919067 0.737549\n0.266815 0.918396 0.736664\n0.291016 0.917816 0.735565\n0.314484 0.917175 0.734680\n0.337646 0.916595 0.733795\n0.361084 0.915955 0.732819\n0.385345 0.915222 0.731781\n0.410767 0.914520 0.730743\n0.437714 0.913696 0.729553\n0.466492 0.912781 0.728394\n0.497284 0.911743 0.727051\n0.530548 0.910614 0.725677\n0.566772 0.909424 0.724274\n0.605103 0.908173 0.722809\n0.644562 0.906952 0.721405\n0.684418 0.905853 0.720154\n0.723633 0.904907 0.719269\n0.761749 0.905334 0.719879\n0.796631 0.905670 0.720490\n0.828217 0.905975 0.721191\n0.856812 0.906342 0.721893\n0.882660 0.906677 0.722748\n0.906128 0.907013 0.723572\n0.926758 0.906525 0.723602\n0.945679 0.906158 0.723633\n0.963135 0.905792 0.723785\n0.979279 0.905426 0.723969\n0.994476 0.905090 0.724213\n1.000000 0.902710 0.736206\n0.153748 0.946564 0.739777\n0.187561 0.945648 0.738434\n0.217651 0.944855 0.737427\n0.244965 0.944122 0.736267\n0.270203 0.943451 0.735260\n0.294006 0.942780 0.734314\n0.317200 0.942169 0.733368\n0.340149 0.941528 0.732391\n0.363464 0.940857 0.731537\n0.387634 0.940155 0.730591\n0.413025 0.939362 0.729492\n0.439911 0.938538 0.728516\n0.468658 0.937561 0.727325\n0.499359 0.936554 0.726044\n0.532532 0.935394 0.724792\n0.568573 0.934204 0.723450\n0.606964 0.933014 0.722137\n0.646729 0.931854 0.721039\n0.686127 0.930786 0.720093\n0.724548 0.929871 0.719391\n0.761902 0.930115 0.720093\n0.796387 0.930389 0.720825\n0.827637 0.930603 0.721649\n0.856018 0.930817 0.722473\n0.881775 0.931030 0.723358\n0.905273 0.931335 0.724274\n0.926666 0.931580 0.725220\n0.945709 0.931183 0.725525\n0.963165 0.930786 0.725739\n0.979309 0.930359 0.725922\n0.994476 0.930054 0.726440\n1.000000 0.925934 0.738708\n0.160065 0.969025 0.738464\n0.192841 0.968201 0.737122\n0.222046 0.967346 0.735992\n0.248657 0.966614 0.734955\n0.273407 0.965942 0.734039\n0.296844 0.965271 0.733215\n0.319702 0.964661 0.732208\n0.342529 0.963959 0.731354\n0.365662 0.963318 0.730530\n0.389740 0.962555 0.729584\n0.415009 0.961761 0.728638\n0.441895 0.960907 0.727600\n0.470551 0.959961 0.726532\n0.501129 0.958984 0.725372\n0.534515 0.957825 0.724121\n0.571075 0.956696 0.723053\n0.609192 0.955536 0.722137\n0.648102 0.954376 0.721130\n0.686798 0.953217 0.720306\n0.724609 0.952332 0.719818\n0.761597 0.952484 0.720642\n0.795776 0.952637 0.721497\n0.826874 0.952789 0.722351\n0.855164 0.952972 0.723297\n0.880981 0.953125 0.724182\n0.904419 0.953247 0.725128\n0.925903 0.953430 0.726135\n0.945557 0.953613 0.727112\n0.963287 0.953461 0.727875\n0.979401 0.953064 0.728546\n0.994476 0.952637 0.729279\n1.000000 0.947021 0.741699\n0.166107 0.989349 0.737152\n0.197784 0.988495 0.735962\n0.226166 0.987701 0.734894\n0.252167 0.987030 0.733887\n0.276367 0.986328 0.732971\n0.299438 0.985657 0.732147\n0.322083 0.985016 0.731171\n0.344727 0.984375 0.730438\n0.367737 0.983704 0.729553\n0.391724 0.982941 0.728668\n0.416870 0.982147 0.727783\n0.443604 0.981323 0.726837\n0.472473 0.980377 0.725952\n0.503540 0.979370 0.725006\n0.536957 0.978271 0.724091\n0.572754 0.977142 0.723297\n0.610229 0.976013 0.722412\n0.648529 0.974854 0.721649\n0.686768 0.973724 0.720947\n0.724213 0.972748 0.720490\n0.761017 0.972809 0.721375\n0.795044 0.972931 0.722260\n0.826202 0.972992 0.723236\n0.854523 0.973083 0.724213\n0.880371 0.973175 0.725159\n0.903839 0.973328 0.726196\n0.925385 0.973419 0.727386\n0.945038 0.973541 0.728760\n0.963074 0.973663 0.730286\n0.979492 0.973602 0.731659\n0.994476 0.973114 0.732513\n1.000000 0.966156 0.744843\n0.182831 1.000000 0.732544\n0.212189 1.000000 0.731934\n0.238586 1.000000 0.731476\n0.262878 1.000000 0.730804\n0.285706 1.000000 0.730438\n0.307495 1.000000 0.729950\n0.328918 1.000000 0.729431\n0.350464 1.000000 0.728912\n0.372467 1.000000 0.728424\n0.395325 1.000000 0.727875\n0.419678 1.000000 0.727142\n0.445953 1.000000 0.726593\n0.474762 0.999115 0.725891\n0.505249 0.998047 0.725159\n0.538055 0.997040 0.724396\n0.573364 0.995880 0.723724\n0.610413 0.994781 0.723053\n0.648315 0.993622 0.722382\n0.686371 0.992523 0.721771\n0.723663 0.991486 0.721344\n0.760468 0.991516 0.722260\n0.794556 0.991547 0.723236\n0.825714 0.991577 0.724243\n0.854187 0.991608 0.725250\n0.880035 0.991638 0.726440\n0.903625 0.991669 0.727844\n0.925049 0.991730 0.729401\n0.944641 0.991760 0.730988\n0.962555 0.991791 0.732635\n0.979126 0.991821 0.734283\n0.994476 0.991760 0.735443\n1.000000 0.983734 0.747345\n0.212769 1.000000 0.724976\n0.240845 1.000000 0.724945\n0.266174 1.000000 0.724915\n0.289551 1.000000 0.725037\n0.311584 1.000000 0.725067\n0.332703 1.000000 0.725220\n0.353577 1.000000 0.725403\n0.374512 1.000000 0.725586\n0.396179 1.000000 0.725922\n0.419189 1.000000 0.726471\n0.443146 1.000000 0.726929\n0.468414 1.000000 0.727539\n0.495178 1.000000 0.728180\n0.524170 1.000000 0.728943\n0.555969 1.000000 0.729736\n0.590118 1.000000 0.730591\n0.625854 1.000000 0.731415\n0.662537 1.000000 0.732300\n0.699188 1.000000 0.733215\n0.735077 1.000000 0.734100\n0.769287 1.000000 0.735107\n0.800812 1.000000 0.736053\n0.829803 1.000000 0.737213\n0.856079 1.000000 0.738525\n0.880005 1.000000 0.740021\n0.901733 1.000000 0.741547\n0.921539 1.000000 0.743164\n0.939667 1.000000 0.744751\n0.956299 1.000000 0.746033\n0.971741 1.000000 0.747284\n0.986267 1.000000 0.748474\n1.000000 1.000000 0.749573\n0.000000 0.020966 0.747772\n0.026794 0.002594 0.767303\n0.074524 0.004913 0.767944\n0.118866 0.006653 0.768402\n0.159637 0.008301 0.768799\n0.196259 0.009857 0.769257\n0.229034 0.011383 0.769653\n0.258850 0.012909 0.770020\n0.286407 0.014435 0.770447\n0.312714 0.015930 0.770844\n0.338379 0.017426 0.771210\n0.364288 0.018951 0.771606\n0.390900 0.020477 0.771912\n0.418884 0.022064 0.772247\n0.448914 0.023682 0.772614\n0.481506 0.025330 0.772949\n0.517456 0.027039 0.773224\n0.558960 0.028809 0.773529\n0.604797 0.030579 0.773834\n0.653595 0.032593 0.774109\n0.703613 0.034637 0.774414\n0.752563 0.036652 0.774658\n0.797546 0.037506 0.773926\n0.837219 0.037567 0.772614\n0.872345 0.037933 0.771423\n0.903259 0.038513 0.770172\n0.930389 0.039307 0.769226\n0.954437 0.040253 0.768372\n0.975800 0.041351 0.767487\n0.994965 0.042511 0.766815\n1.000000 0.062408 0.758362\n1.000000 0.088776 0.748749\n0.000000 0.057617 0.751099\n0.026886 0.040253 0.767670\n0.073334 0.041290 0.767639\n0.117218 0.042816 0.768097\n0.157806 0.044220 0.768494\n0.194733 0.045685 0.768890\n0.227692 0.047150 0.769318\n0.257599 0.048523 0.769684\n0.285217 0.050079 0.770050\n0.311523 0.051453 0.770447\n0.337219 0.052948 0.770782\n0.362976 0.054443 0.771149\n0.389740 0.055908 0.771484\n0.417786 0.057465 0.771790\n0.447998 0.059174 0.772125\n0.481110 0.060791 0.772400\n0.517792 0.062592 0.772736\n0.559509 0.064423 0.772980\n0.605835 0.066284 0.773254\n0.655060 0.068329 0.773560\n0.704926 0.070007 0.773743\n0.753815 0.071869 0.773956\n0.798492 0.072693 0.773102\n0.837921 0.072845 0.771790\n0.872772 0.073303 0.770630\n0.903412 0.073944 0.769440\n0.930328 0.074677 0.768555\n0.954132 0.075684 0.767639\n0.975342 0.076782 0.766663\n0.994324 0.077850 0.765991\n1.000000 0.096283 0.758301\n1.000000 0.121948 0.749084\n0.000000 0.092682 0.752289\n0.026703 0.077057 0.768616\n0.071564 0.076782 0.767548\n0.115509 0.078003 0.767731\n0.156342 0.079315 0.768158\n0.193390 0.080719 0.768555\n0.226379 0.082062 0.768921\n0.256317 0.083435 0.769318\n0.283966 0.084839 0.769623\n0.310272 0.086243 0.769989\n0.335968 0.087708 0.770355\n0.361877 0.089172 0.770691\n0.388672 0.090698 0.770966\n0.417206 0.092346 0.771332\n0.448120 0.093994 0.771576\n0.481720 0.095703 0.771881\n0.518768 0.097534 0.772156\n0.561096 0.099487 0.772400\n0.607574 0.101105 0.772675\n0.656860 0.102814 0.772858\n0.706787 0.104614 0.773071\n0.755524 0.106445 0.773254\n0.799896 0.107239 0.772400\n0.838959 0.107483 0.770996\n0.873413 0.107880 0.769806\n0.903717 0.108582 0.768585\n0.930328 0.109253 0.767731\n0.953888 0.110291 0.766785\n0.974884 0.111359 0.765869\n0.993713 0.112366 0.765228\n1.000000 0.129333 0.758240\n1.000000 0.154266 0.749481\n0.000000 0.127136 0.752838\n0.026245 0.112915 0.769562\n0.071411 0.112457 0.768433\n0.114105 0.112305 0.767395\n0.154999 0.113586 0.767792\n0.191986 0.114899 0.768158\n0.224976 0.116180 0.768494\n0.255035 0.117523 0.768860\n0.282715 0.118896 0.769226\n0.309082 0.120270 0.769562\n0.334839 0.121765 0.769867\n0.361237 0.123291 0.770142\n0.388672 0.124878 0.770477\n0.417664 0.126495 0.770782\n0.448883 0.128235 0.771057\n0.483124 0.130035 0.771332\n0.520599 0.131622 0.771576\n0.563171 0.133179 0.771759\n0.609924 0.134949 0.771942\n0.659393 0.136719 0.772156\n0.709290 0.138489 0.772339\n0.757660 0.140350 0.772491\n0.801575 0.141052 0.771576\n0.840179 0.141235 0.770203\n0.874176 0.141724 0.768951\n0.904083 0.142334 0.767883\n0.930389 0.143097 0.766846\n0.953705 0.143921 0.766022\n0.974457 0.144836 0.765137\n0.993134 0.145905 0.764313\n1.000000 0.161438 0.758209\n1.000000 0.185699 0.749878\n0.000000 0.160339 0.753540\n0.026215 0.147827 0.770447\n0.071381 0.147278 0.769287\n0.114014 0.147095 0.768188\n0.153778 0.147003 0.767365\n0.190735 0.148285 0.767792\n0.223724 0.149567 0.768097\n0.253784 0.150909 0.768433\n0.281555 0.152283 0.768738\n0.308502 0.153687 0.769073\n0.334869 0.155243 0.769348\n0.361633 0.156738 0.769684\n0.389465 0.158356 0.769958\n0.418884 0.160095 0.770203\n0.450531 0.161560 0.770477\n0.484833 0.163116 0.770630\n0.522858 0.164734 0.770844\n0.565979 0.166351 0.771057\n0.613129 0.168030 0.771301\n0.662537 0.169861 0.771454\n0.712189 0.171600 0.771637\n0.760254 0.173431 0.771790\n0.803497 0.173920 0.770660\n0.841553 0.174194 0.769318\n0.875061 0.174622 0.768097\n0.904602 0.175232 0.766968\n0.930542 0.175903 0.766083\n0.953522 0.176697 0.765106\n0.974121 0.177521 0.764343\n0.992554 0.178467 0.763519\n1.000000 0.192657 0.758026\n1.000000 0.216095 0.750092\n0.000000 0.192657 0.754364\n0.026184 0.181824 0.771240\n0.071350 0.181274 0.770050\n0.113983 0.180908 0.768951\n0.153412 0.180634 0.767944\n0.189423 0.180908 0.767303\n0.222565 0.182159 0.767609\n0.253265 0.183502 0.767975\n0.281830 0.184967 0.768250\n0.308929 0.186432 0.768555\n0.335663 0.187927 0.768829\n0.362854 0.189575 0.769135\n0.390747 0.190948 0.769348\n0.420563 0.192474 0.769562\n0.452484 0.193909 0.769745\n0.487366 0.195496 0.769958\n0.525787 0.197113 0.770172\n0.569336 0.198761 0.770386\n0.616791 0.200500 0.770569\n0.666229 0.202209 0.770721\n0.715607 0.203918 0.770874\n0.763245 0.205688 0.771027\n0.805634 0.206055 0.769806\n0.843079 0.206268 0.768585\n0.876038 0.206665 0.767242\n0.905090 0.207092 0.766144\n0.930756 0.207764 0.765289\n0.953400 0.208466 0.764374\n0.973663 0.209198 0.763397\n0.992004 0.209961 0.762787\n1.000000 0.222809 0.757843\n1.000000 0.245605 0.750641\n0.000000 0.224121 0.755157\n0.026154 0.214874 0.772064\n0.071320 0.214325 0.770874\n0.113953 0.213989 0.769714\n0.153442 0.213715 0.768677\n0.189972 0.213715 0.767700\n0.223114 0.214142 0.767151\n0.253998 0.215515 0.767456\n0.282745 0.216949 0.767731\n0.310303 0.218475 0.768036\n0.337158 0.219818 0.768280\n0.364441 0.221222 0.768463\n0.392731 0.222626 0.768677\n0.422852 0.224091 0.768860\n0.455200 0.225616 0.769104\n0.490448 0.227173 0.769287\n0.529480 0.228760 0.769501\n0.573334 0.230377 0.769623\n0.620819 0.232025 0.769806\n0.670227 0.233673 0.769989\n0.719238 0.235352 0.770111\n0.766174 0.237061 0.770294\n0.807861 0.237244 0.768951\n0.844635 0.237366 0.767670\n0.877045 0.237762 0.766388\n0.905609 0.238129 0.765320\n0.930878 0.238678 0.764435\n0.953247 0.239258 0.763428\n0.973297 0.239899 0.762665\n0.991425 0.240601 0.761841\n1.000000 0.252106 0.757446\n1.000000 0.274200 0.750885\n0.000000 0.254730 0.755920\n0.026123 0.247223 0.772827\n0.071381 0.246796 0.771606\n0.115082 0.246460 0.770447\n0.155670 0.246185 0.769287\n0.192474 0.246185 0.768311\n0.225372 0.246185 0.767395\n0.255737 0.246887 0.766907\n0.284546 0.248169 0.767181\n0.312012 0.249481 0.767395\n0.339050 0.250824 0.767578\n0.366577 0.252167 0.767822\n0.395355 0.253662 0.768036\n0.425690 0.255157 0.768188\n0.458466 0.256622 0.768372\n0.494080 0.258179 0.768555\n0.533691 0.259766 0.768738\n0.577881 0.261292 0.768921\n0.625397 0.262909 0.769073\n0.674530 0.264496 0.769226\n0.722961 0.266113 0.769379\n0.769379 0.267731 0.769501\n0.810089 0.267761 0.768066\n0.846100 0.267822 0.766724\n0.877991 0.268097 0.765594\n0.906097 0.268433 0.764374\n0.930969 0.268951 0.763428\n0.953033 0.269409 0.762726\n0.972870 0.269958 0.761810\n0.990814 0.270538 0.760925\n1.000000 0.280762 0.757294\n1.000000 0.302185 0.751007\n0.000000 0.285004 0.756622\n0.027405 0.278931 0.773499\n0.074188 0.278534 0.772217\n0.118347 0.278168 0.771027\n0.159271 0.278046 0.769867\n0.196289 0.278137 0.768829\n0.228973 0.278168 0.767883\n0.258728 0.278259 0.767029\n0.286865 0.278839 0.766510\n0.314362 0.280121 0.766693\n0.341614 0.281525 0.766937\n0.369324 0.282867 0.767090\n0.398315 0.284302 0.767303\n0.429169 0.285797 0.767456\n0.462158 0.287262 0.767639\n0.498230 0.288818 0.767853\n0.538147 0.290344 0.768005\n0.582611 0.291840 0.768158\n0.630127 0.293365 0.768311\n0.678864 0.294922 0.768402\n0.726868 0.296478 0.768585\n0.772308 0.297852 0.768524\n0.812195 0.297760 0.767090\n0.847595 0.297882 0.765869\n0.878876 0.298096 0.764587\n0.906525 0.298370 0.763672\n0.930969 0.298737 0.762665\n0.952820 0.299164 0.761688\n0.972412 0.299622 0.760956\n0.990173 0.300018 0.760101\n1.000000 0.309052 0.756805\n1.000000 0.329834 0.751221\n0.000000 0.314362 0.759949\n0.031342 0.310364 0.774078\n0.078674 0.310028 0.772766\n0.123291 0.309814 0.771515\n0.164032 0.309570 0.770325\n0.200562 0.309509 0.769226\n0.233093 0.309509 0.768280\n0.262848 0.309784 0.767365\n0.290466 0.310059 0.766571\n0.317383 0.310638 0.765991\n0.344757 0.312073 0.766205\n0.372650 0.313416 0.766357\n0.401855 0.314880 0.766541\n0.432861 0.316315 0.766724\n0.466309 0.317780 0.766907\n0.502563 0.319214 0.767059\n0.542969 0.320740 0.767181\n0.587585 0.322235 0.767334\n0.634827 0.323700 0.767456\n0.683228 0.325165 0.767609\n0.730530 0.326599 0.767700\n0.775085 0.327789 0.767548\n0.814209 0.327698 0.766113\n0.848938 0.327728 0.764832\n0.879608 0.327850 0.763611\n0.906799 0.328094 0.762665\n0.930939 0.328339 0.761688\n0.952454 0.328674 0.760803\n0.971893 0.329010 0.760010\n0.989563 0.329376 0.759186\n1.000000 0.337219 0.756348\n1.000000 0.357422 0.751373\n0.000000 0.344116 0.765045\n0.037354 0.342010 0.774506\n0.084747 0.341522 0.773163\n0.128998 0.341125 0.771851\n0.169556 0.340912 0.770660\n0.205780 0.341064 0.769531\n0.238068 0.341095 0.768585\n0.267487 0.341400 0.767700\n0.294983 0.341675 0.766876\n0.321625 0.342072 0.766052\n0.348297 0.342712 0.765411\n0.376221 0.344086 0.765594\n0.405640 0.345490 0.765778\n0.436981 0.346924 0.765900\n0.470612 0.348328 0.766083\n0.507080 0.349762 0.766205\n0.547882 0.351227 0.766327\n0.592590 0.352631 0.766479\n0.639526 0.354034 0.766571\n0.687378 0.355408 0.766724\n0.734070 0.356781 0.766876\n0.777710 0.357758 0.766510\n0.815979 0.357605 0.765137\n0.850006 0.357635 0.763855\n0.880188 0.357697 0.762726\n0.906921 0.357788 0.761627\n0.930756 0.358002 0.760742\n0.952057 0.358276 0.759705\n0.971313 0.358551 0.758820\n0.988861 0.358856 0.758057\n1.000000 0.365479 0.755676\n1.000000 0.385162 0.751404\n0.000000 0.374481 0.771515\n0.044312 0.373505 0.774872\n0.091766 0.373138 0.773438\n0.135956 0.372925 0.772125\n0.176117 0.372742 0.770905\n0.211700 0.372742 0.769836\n0.243530 0.372894 0.768860\n0.272675 0.373230 0.768005\n0.299927 0.373566 0.767151\n0.326385 0.373993 0.766296\n0.352844 0.374451 0.765411\n0.380096 0.374939 0.764740\n0.409637 0.376373 0.764923\n0.441162 0.377777 0.765045\n0.475098 0.379120 0.765198\n0.511902 0.380524 0.765320\n0.552826 0.381866 0.765411\n0.597351 0.383240 0.765594\n0.644135 0.384552 0.765717\n0.691345 0.385864 0.765839\n0.737366 0.387146 0.765900\n0.779968 0.387878 0.765442\n0.817474 0.387695 0.764069\n0.850891 0.387634 0.762787\n0.880585 0.387665 0.761597\n0.906921 0.387726 0.760590\n0.930511 0.387878 0.759583\n0.951660 0.388123 0.758575\n0.970734 0.388367 0.757629\n0.988159 0.388672 0.756775\n1.000000 0.394073 0.755005\n1.000000 0.413269 0.751465\n0.002686 0.406006 0.776550\n0.052734 0.405457 0.775055\n0.100128 0.405212 0.773651\n0.143829 0.404907 0.772339\n0.183350 0.404907 0.771118\n0.218231 0.404938 0.770081\n0.249512 0.405243 0.769104\n0.278168 0.405518 0.768250\n0.305145 0.405975 0.767365\n0.331421 0.406311 0.766510\n0.357819 0.406799 0.765686\n0.384979 0.407043 0.764740\n0.413818 0.407593 0.763977\n0.445465 0.408997 0.764130\n0.479492 0.410278 0.764221\n0.516449 0.411621 0.764374\n0.557495 0.412872 0.764465\n0.601959 0.414185 0.764587\n0.648376 0.415466 0.764709\n0.694855 0.416626 0.764771\n0.740112 0.417847 0.764893\n0.781860 0.418365 0.764313\n0.818634 0.418182 0.762909\n0.851532 0.418060 0.761658\n0.880829 0.418060 0.760437\n0.906891 0.418091 0.759399\n0.930237 0.418243 0.758301\n0.951172 0.418365 0.757324\n0.970123 0.418610 0.756470\n0.987366 0.418854 0.755432\n1.000000 0.423157 0.754089\n1.000000 0.441772 0.751373\n0.012512 0.438507 0.776733\n0.062469 0.438080 0.775269\n0.109375 0.437897 0.773834\n0.152527 0.437714 0.772552\n0.191101 0.437653 0.771301\n0.225098 0.437805 0.770233\n0.255707 0.438110 0.769318\n0.283875 0.438538 0.768433\n0.310486 0.438843 0.767609\n0.336609 0.439240 0.766693\n0.362915 0.439606 0.765869\n0.390076 0.439941 0.764923\n0.418732 0.440277 0.763885\n0.449646 0.440704 0.763123\n0.483887 0.441986 0.763214\n0.520874 0.443176 0.763306\n0.561951 0.444427 0.763397\n0.606201 0.445587 0.763519\n0.652039 0.446808 0.763641\n0.697968 0.447876 0.763733\n0.742493 0.448944 0.763763\n0.783386 0.449341 0.763031\n0.819733 0.449097 0.761658\n0.852142 0.448975 0.760284\n0.881073 0.448914 0.759155\n0.906830 0.448975 0.758026\n0.929901 0.449097 0.756958\n0.950653 0.449249 0.756012\n0.969452 0.449432 0.755005\n0.986572 0.449707 0.754120\n1.000000 0.452789 0.753052\n1.000000 0.470886 0.751282\n0.023651 0.471741 0.776825\n0.073273 0.471497 0.775330\n0.119446 0.471222 0.773926\n0.161652 0.471161 0.772644\n0.199158 0.471191 0.771454\n0.232178 0.471375 0.770447\n0.261993 0.471619 0.769470\n0.289612 0.472107 0.768585\n0.315887 0.472473 0.767731\n0.341827 0.472900 0.766937\n0.368073 0.473175 0.766022\n0.395172 0.473480 0.765045\n0.423889 0.473694 0.764008\n0.454437 0.473755 0.762848\n0.487915 0.474213 0.762085\n0.524994 0.475372 0.762177\n0.566010 0.476471 0.762329\n0.609894 0.477570 0.762421\n0.655212 0.478638 0.762451\n0.700592 0.479706 0.762512\n0.744659 0.480713 0.762543\n0.784973 0.480957 0.761597\n0.820709 0.480682 0.760223\n0.852661 0.480530 0.758850\n0.881165 0.480469 0.757660\n0.906677 0.480530 0.756500\n0.929474 0.480591 0.755463\n0.950012 0.480743 0.754456\n0.968658 0.480927 0.753601\n0.985718 0.481140 0.752655\n1.000000 0.483093 0.751709\n1.000000 0.500580 0.751251\n0.035736 0.505768 0.776855\n0.084686 0.505615 0.775391\n0.129974 0.505524 0.773987\n0.170990 0.505371 0.772705\n0.207245 0.505493 0.771576\n0.239288 0.505798 0.770569\n0.268311 0.506073 0.769623\n0.295410 0.506439 0.768738\n0.321350 0.506805 0.767914\n0.347015 0.507202 0.767059\n0.373016 0.507507 0.766174\n0.400146 0.507721 0.765167\n0.428802 0.507904 0.764099\n0.459320 0.507812 0.762909\n0.492188 0.507690 0.761627\n0.528625 0.508179 0.761017\n0.569458 0.509216 0.761047\n0.613129 0.510254 0.761108\n0.658234 0.511261 0.761108\n0.703278 0.512238 0.761139\n0.746796 0.513275 0.761139\n0.786346 0.513336 0.760101\n0.821533 0.513062 0.758667\n0.853088 0.512939 0.757355\n0.881256 0.512848 0.756134\n0.906372 0.512817 0.754974\n0.928955 0.512939 0.753906\n0.949371 0.513031 0.752960\n0.967865 0.513214 0.752014\n0.984802 0.513397 0.751160\n1.000000 0.514130 0.750458\n1.000000 0.531921 0.751343\n0.048492 0.542358 0.776855\n0.096527 0.542236 0.775391\n0.140656 0.541962 0.774048\n0.180328 0.541992 0.772797\n0.215240 0.542145 0.771667\n0.246246 0.542389 0.770691\n0.274567 0.542725 0.769745\n0.301056 0.543091 0.768890\n0.326538 0.543304 0.768036\n0.351990 0.543610 0.767181\n0.377899 0.543915 0.766235\n0.404816 0.544037 0.765259\n0.433380 0.544159 0.764221\n0.463745 0.543976 0.763000\n0.496521 0.543762 0.761658\n0.532318 0.543335 0.760162\n0.572784 0.543976 0.759705\n0.616302 0.544983 0.759705\n0.661133 0.546051 0.759705\n0.705719 0.546997 0.759644\n0.748718 0.547943 0.759644\n0.787659 0.547913 0.758484\n0.822327 0.547638 0.757050\n0.853394 0.547424 0.755676\n0.881165 0.547272 0.754486\n0.906036 0.547241 0.753387\n0.928436 0.547302 0.752350\n0.948578 0.547363 0.751404\n0.966949 0.547485 0.750549\n0.983826 0.547699 0.749664\n0.999420 0.547882 0.748901\n1.000000 0.565460 0.751404\n0.061493 0.581604 0.776855\n0.108398 0.581451 0.775360\n0.151184 0.581238 0.774048\n0.189392 0.581207 0.772827\n0.222992 0.581299 0.771729\n0.252991 0.581482 0.770782\n0.280487 0.581787 0.769867\n0.306427 0.582031 0.769043\n0.331512 0.582245 0.768158\n0.356689 0.582458 0.767303\n0.382324 0.582581 0.766357\n0.409088 0.582611 0.765381\n0.437500 0.582642 0.764252\n0.467987 0.582428 0.763031\n0.500793 0.582092 0.761627\n0.536835 0.581604 0.760071\n0.576263 0.581055 0.758423\n0.619446 0.581848 0.758179\n0.663971 0.582794 0.758179\n0.708130 0.583771 0.758118\n0.750610 0.584686 0.758087\n0.788757 0.584503 0.756836\n0.822937 0.584076 0.755341\n0.853577 0.583893 0.754059\n0.881042 0.583710 0.752899\n0.905670 0.583588 0.751801\n0.927765 0.583588 0.750854\n0.947815 0.583649 0.749847\n0.966064 0.583740 0.749054\n0.982788 0.583862 0.748230\n0.998352 0.583984 0.747589\n1.000000 0.600616 0.751648\n0.074493 0.622803 0.776794\n0.120148 0.622498 0.775360\n0.161407 0.622284 0.774048\n0.198059 0.622223 0.772858\n0.230377 0.622223 0.771820\n0.259308 0.622437 0.770844\n0.286072 0.622559 0.769958\n0.311493 0.622772 0.769135\n0.336151 0.622925 0.768280\n0.360931 0.622955 0.767395\n0.386383 0.623016 0.766449\n0.413147 0.622955 0.765411\n0.441650 0.622711 0.764252\n0.472198 0.622498 0.762970\n0.505127 0.622009 0.761505\n0.541351 0.621429 0.759888\n0.580841 0.620819 0.758270\n0.622559 0.620178 0.756592\n0.666718 0.621094 0.756561\n0.710388 0.621979 0.756531\n0.752258 0.622864 0.756439\n0.789764 0.622467 0.755096\n0.823456 0.622040 0.753662\n0.853699 0.621765 0.752411\n0.880829 0.621490 0.751282\n0.905151 0.621368 0.750214\n0.927094 0.621307 0.749298\n0.946960 0.621277 0.748444\n0.965057 0.621338 0.747620\n0.981781 0.621368 0.746887\n0.997253 0.621429 0.746185\n1.000000 0.636932 0.751892\n0.087280 0.665131 0.776703\n0.131409 0.664795 0.775299\n0.171082 0.664551 0.774048\n0.206116 0.664337 0.772888\n0.237183 0.664368 0.771881\n0.265198 0.664307 0.770905\n0.291199 0.664368 0.770050\n0.315948 0.664368 0.769226\n0.340332 0.664459 0.768311\n0.364960 0.664459 0.767426\n0.390350 0.664337 0.766449\n0.417206 0.664185 0.765350\n0.445831 0.663940 0.764160\n0.476440 0.663544 0.762817\n0.509430 0.662903 0.761353\n0.545837 0.662231 0.759705\n0.585297 0.661499 0.758057\n0.626709 0.660706 0.756317\n0.669281 0.660248 0.754944\n0.712463 0.661041 0.754913\n0.753876 0.661896 0.754852\n0.790649 0.661316 0.753387\n0.823914 0.660828 0.752075\n0.853699 0.660400 0.750824\n0.880493 0.660156 0.749695\n0.904602 0.659943 0.748749\n0.926331 0.659790 0.747864\n0.946045 0.659729 0.747040\n0.964050 0.659668 0.746338\n0.980682 0.659729 0.745575\n0.996124 0.659729 0.744995\n1.000000 0.673859 0.752258\n0.099335 0.707855 0.776642\n0.141937 0.707428 0.775269\n0.179962 0.707092 0.773987\n0.213531 0.706879 0.772919\n0.243378 0.706635 0.771912\n0.270447 0.706512 0.770996\n0.295776 0.706512 0.770111\n0.320160 0.706360 0.769287\n0.344360 0.706207 0.768341\n0.368927 0.706146 0.767395\n0.394379 0.705963 0.766357\n0.421265 0.705719 0.765228\n0.449921 0.705200 0.764008\n0.480652 0.704681 0.762634\n0.513733 0.704041 0.761108\n0.550323 0.703339 0.759521\n0.589691 0.702423 0.757812\n0.630859 0.701508 0.756134\n0.672729 0.700623 0.754425\n0.714386 0.700317 0.753326\n0.755188 0.700989 0.753235\n0.791412 0.700317 0.751801\n0.824188 0.699768 0.750488\n0.853638 0.699280 0.749298\n0.880157 0.698975 0.748291\n0.903992 0.698639 0.747345\n0.925537 0.698395 0.746552\n0.945099 0.698273 0.745758\n0.963074 0.698181 0.745117\n0.979614 0.698120 0.744507\n0.995056 0.698578 0.744110\n1.000000 0.711792 0.753296\n0.110657 0.749939 0.776520\n0.151611 0.749512 0.775208\n0.187988 0.748962 0.774017\n0.220154 0.748627 0.772949\n0.248810 0.748322 0.771942\n0.275269 0.748138 0.770996\n0.300232 0.747894 0.770111\n0.324371 0.747681 0.769226\n0.348389 0.747589 0.768280\n0.372925 0.747314 0.767273\n0.398376 0.746948 0.766235\n0.425293 0.746552 0.765045\n0.454010 0.746002 0.763794\n0.484772 0.745422 0.762451\n0.518005 0.744598 0.760895\n0.554565 0.743713 0.759308\n0.593903 0.742798 0.757599\n0.634918 0.741791 0.755951\n0.676300 0.740845 0.754303\n0.717072 0.739960 0.752716\n0.756348 0.739594 0.751678\n0.792053 0.738770 0.750275\n0.824371 0.738159 0.749023\n0.853485 0.737610 0.747955\n0.879669 0.737213 0.746948\n0.903320 0.736877 0.746124\n0.924713 0.736572 0.745361\n0.944153 0.736359 0.744690\n0.962097 0.736633 0.744324\n0.978607 0.736908 0.743988\n0.993958 0.737244 0.743866\n1.000000 0.748779 0.754425\n0.120331 0.790222 0.775970\n0.159607 0.789520 0.774597\n0.194366 0.788940 0.773407\n0.225403 0.788452 0.772247\n0.253418 0.788055 0.771240\n0.279358 0.787720 0.770386\n0.303925 0.787384 0.769379\n0.327789 0.787048 0.768372\n0.351715 0.786743 0.767426\n0.376190 0.786377 0.766357\n0.401581 0.785919 0.765289\n0.428528 0.785370 0.764130\n0.457275 0.784729 0.762726\n0.488037 0.783936 0.761322\n0.521301 0.783051 0.759796\n0.557831 0.782043 0.758179\n0.597107 0.780975 0.756531\n0.637787 0.779907 0.754852\n0.678833 0.778870 0.753235\n0.719055 0.777893 0.751709\n0.757568 0.777161 0.750519\n0.793579 0.777100 0.749939\n0.825500 0.776459 0.748810\n0.854248 0.775879 0.747772\n0.880188 0.775421 0.746887\n0.903595 0.774933 0.746124\n0.924927 0.774994 0.745636\n0.944305 0.775116 0.745331\n0.962067 0.775269 0.745087\n0.978455 0.775391 0.744965\n0.993744 0.775513 0.744934\n1.000000 0.784271 0.755890\n0.127808 0.827393 0.774261\n0.165771 0.826630 0.772980\n0.199493 0.825958 0.771851\n0.229736 0.825439 0.770752\n0.257050 0.824890 0.769714\n0.282532 0.824463 0.768768\n0.306824 0.824066 0.767731\n0.330444 0.823639 0.766693\n0.354309 0.823242 0.765808\n0.378723 0.822754 0.764709\n0.404114 0.822205 0.763611\n0.431091 0.821564 0.762390\n0.459808 0.820831 0.761169\n0.490692 0.819977 0.759705\n0.523987 0.819031 0.758179\n0.560547 0.817871 0.756592\n0.599548 0.816772 0.754974\n0.639893 0.815674 0.753387\n0.680511 0.814514 0.751801\n0.720306 0.813477 0.750336\n0.758484 0.812836 0.749298\n0.794617 0.813293 0.749390\n0.826813 0.813263 0.749054\n0.855286 0.812653 0.748138\n0.881104 0.812347 0.747528\n0.904388 0.812225 0.747040\n0.925415 0.812103 0.746735\n0.944611 0.812012 0.746552\n0.962128 0.811981 0.746460\n0.978455 0.812012 0.746429\n0.993713 0.812012 0.746490\n1.000000 0.817749 0.757477\n0.134888 0.861938 0.772797\n0.171661 0.861084 0.771454\n0.204529 0.860352 0.770233\n0.233917 0.859772 0.769226\n0.260651 0.859161 0.768219\n0.285706 0.858734 0.767090\n0.309662 0.858215 0.766144\n0.333130 0.857727 0.765167\n0.356842 0.857178 0.764221\n0.381165 0.856628 0.763092\n0.406586 0.855988 0.762024\n0.433594 0.855316 0.760834\n0.462341 0.854462 0.759644\n0.493256 0.853546 0.758209\n0.526581 0.852478 0.756744\n0.562958 0.851349 0.755188\n0.601807 0.850220 0.753632\n0.641846 0.849030 0.752075\n0.682068 0.847839 0.750610\n0.721436 0.846741 0.749115\n0.759155 0.846130 0.748291\n0.794861 0.846466 0.748505\n0.827576 0.847107 0.748932\n0.856506 0.847382 0.749023\n0.881927 0.847046 0.748596\n0.904846 0.846710 0.748322\n0.925659 0.846436 0.748077\n0.944733 0.846283 0.747986\n0.962158 0.846069 0.748016\n0.978455 0.845917 0.748077\n0.993683 0.845734 0.748199\n1.000000 0.848938 0.759186\n0.141846 0.893433 0.771210\n0.177582 0.892487 0.769958\n0.209442 0.891754 0.768707\n0.238037 0.891052 0.767670\n0.264191 0.890472 0.766632\n0.288818 0.889893 0.765656\n0.312439 0.889343 0.764648\n0.335754 0.888763 0.763763\n0.359314 0.888184 0.762695\n0.383606 0.887573 0.761627\n0.409058 0.886841 0.760651\n0.436035 0.886108 0.759460\n0.464752 0.885223 0.758209\n0.495605 0.884216 0.756927\n0.528931 0.883148 0.755432\n0.565247 0.881989 0.753967\n0.603851 0.880768 0.752502\n0.643555 0.879578 0.750946\n0.683411 0.878357 0.749573\n0.722290 0.877228 0.748260\n0.760162 0.876770 0.747681\n0.795654 0.877258 0.748199\n0.827667 0.877747 0.748749\n0.856506 0.878204 0.749390\n0.882385 0.878540 0.749908\n0.905090 0.878143 0.749756\n0.925751 0.877686 0.749664\n0.944763 0.877380 0.749664\n0.962158 0.877075 0.749725\n0.978455 0.876801 0.749878\n0.993652 0.876617 0.750061\n1.000000 0.877258 0.760956\n0.148651 0.921539 0.769806\n0.183258 0.920624 0.768463\n0.214142 0.919800 0.767334\n0.242065 0.919128 0.766296\n0.267639 0.918457 0.765198\n0.291840 0.917877 0.764191\n0.315216 0.917236 0.763306\n0.338318 0.916626 0.762390\n0.361786 0.916046 0.761444\n0.385986 0.915314 0.760345\n0.411377 0.914581 0.759308\n0.438324 0.913757 0.758209\n0.467041 0.912842 0.756989\n0.497864 0.911804 0.755737\n0.531128 0.910675 0.754364\n0.567322 0.909515 0.752930\n0.605621 0.908234 0.751526\n0.644989 0.907013 0.750153\n0.684998 0.905914 0.748932\n0.723877 0.904938 0.747925\n0.760925 0.904480 0.747589\n0.795685 0.904785 0.748260\n0.827271 0.905151 0.748962\n0.855804 0.905457 0.749695\n0.881683 0.905823 0.750519\n0.905151 0.906158 0.751312\n0.925842 0.905762 0.751312\n0.944763 0.905304 0.751404\n0.962189 0.904938 0.751556\n0.978455 0.904572 0.751709\n0.993622 0.904266 0.751923\n1.000000 0.902832 0.762817\n0.155243 0.946564 0.768311\n0.188721 0.945679 0.767181\n0.218719 0.944855 0.766022\n0.245880 0.944153 0.764923\n0.270966 0.943512 0.763947\n0.294739 0.942810 0.763000\n0.317871 0.942200 0.762024\n0.340790 0.941559 0.761108\n0.364105 0.940887 0.760223\n0.388214 0.940216 0.759277\n0.413574 0.939423 0.758179\n0.440491 0.938538 0.757172\n0.469177 0.937622 0.756073\n0.499878 0.936584 0.754669\n0.533081 0.935455 0.753387\n0.569061 0.934265 0.752136\n0.607727 0.933105 0.750916\n0.647278 0.931946 0.749878\n0.686493 0.930878 0.748901\n0.724579 0.929779 0.748077\n0.761017 0.929230 0.747864\n0.795380 0.929504 0.748627\n0.826569 0.929718 0.749451\n0.854980 0.929962 0.750244\n0.880768 0.930206 0.751129\n0.904266 0.930450 0.752045\n0.925720 0.930695 0.752960\n0.944824 0.930328 0.753265\n0.962250 0.929932 0.753448\n0.978455 0.929535 0.753662\n0.993622 0.929291 0.754211\n1.000000 0.926086 0.765350\n0.161499 0.969025 0.766907\n0.193939 0.968170 0.765808\n0.223053 0.967346 0.764648\n0.249542 0.966614 0.763733\n0.274139 0.965973 0.762756\n0.297546 0.965271 0.761841\n0.320312 0.964661 0.760864\n0.343109 0.964020 0.760040\n0.366302 0.963318 0.759186\n0.390289 0.962585 0.758270\n0.415588 0.961792 0.757294\n0.442444 0.960968 0.756256\n0.471039 0.960022 0.755219\n0.501617 0.958984 0.754059\n0.535309 0.957855 0.752960\n0.571655 0.956726 0.751892\n0.609711 0.955566 0.750916\n0.648407 0.954437 0.750000\n0.687042 0.953278 0.749207\n0.724548 0.952209 0.748474\n0.760559 0.951630 0.748413\n0.794769 0.951782 0.749237\n0.825836 0.951935 0.750092\n0.854156 0.952087 0.751007\n0.879944 0.952240 0.751953\n0.903473 0.952393 0.752899\n0.925018 0.952576 0.753845\n0.944672 0.952759 0.754883\n0.962372 0.952606 0.755646\n0.978577 0.952179 0.756317\n0.993591 0.951813 0.757111\n1.000000 0.947144 0.768311\n0.167419 0.989319 0.765808\n0.198792 0.988495 0.764587\n0.227112 0.987701 0.763550\n0.252960 0.987030 0.762543\n0.277069 0.986328 0.761597\n0.300140 0.985687 0.760803\n0.322632 0.985046 0.759918\n0.345184 0.984375 0.759033\n0.368256 0.983704 0.758209\n0.392181 0.982941 0.757416\n0.417328 0.982178 0.756500\n0.444061 0.981323 0.755524\n0.473114 0.980377 0.754639\n0.504120 0.979370 0.753876\n0.537415 0.978302 0.752930\n0.573120 0.977203 0.752106\n0.610535 0.976013 0.751221\n0.648682 0.974915 0.750519\n0.686829 0.973755 0.749786\n0.724152 0.972687 0.749207\n0.759949 0.971954 0.749115\n0.794037 0.972046 0.750031\n0.825104 0.972137 0.750977\n0.853546 0.972229 0.751892\n0.879425 0.972321 0.752869\n0.902954 0.972443 0.753906\n0.924500 0.972565 0.755157\n0.944153 0.972687 0.756531\n0.962189 0.972839 0.758087\n0.978668 0.972748 0.759369\n0.993622 0.972321 0.760254\n1.000000 0.966248 0.771210\n0.183990 1.000000 0.760529\n0.213104 1.000000 0.759949\n0.239471 1.000000 0.759491\n0.263611 1.000000 0.758881\n0.286346 1.000000 0.758636\n0.308075 1.000000 0.758240\n0.329437 1.000000 0.757751\n0.350922 1.000000 0.757233\n0.372894 1.000000 0.756958\n0.395782 1.000000 0.756378\n0.420349 1.000000 0.755829\n0.446503 1.000000 0.755341\n0.475220 0.999115 0.754669\n0.505554 0.998077 0.753998\n0.538330 0.997040 0.753326\n0.573547 0.995911 0.752594\n0.610535 0.994812 0.751923\n0.648468 0.993622 0.751160\n0.686493 0.992523 0.750641\n0.723663 0.991455 0.750092\n0.759491 0.990662 0.750031\n0.793579 0.990692 0.750977\n0.824707 0.990753 0.751953\n0.853241 0.990784 0.752960\n0.879150 0.990814 0.754211\n0.902740 0.990845 0.755615\n0.924164 0.990906 0.757141\n0.943726 0.990967 0.758698\n0.961670 0.990967 0.760284\n0.978302 0.991028 0.761780\n0.993622 0.990967 0.762909\n1.000000 0.983765 0.773560\n0.213806 1.000000 0.751404\n0.241638 1.000000 0.751495\n0.266907 1.000000 0.751373\n0.290192 1.000000 0.751648\n0.312134 1.000000 0.751617\n0.333191 1.000000 0.751831\n0.354004 1.000000 0.752014\n0.374939 1.000000 0.752197\n0.396881 1.000000 0.752594\n0.419708 1.000000 0.753082\n0.443573 1.000000 0.753571\n0.468719 1.000000 0.754303\n0.495392 1.000000 0.754944\n0.524353 1.000000 0.755646\n0.556152 1.000000 0.756409\n0.590240 1.000000 0.757294\n0.625977 1.000000 0.758087\n0.662628 1.000000 0.758911\n0.699371 1.000000 0.759857\n0.735229 1.000000 0.760773\n0.769379 1.000000 0.761688\n0.801025 1.000000 0.762665\n0.829956 1.000000 0.763885\n0.856323 1.000000 0.765198\n0.880188 1.000000 0.766663\n0.901886 1.000000 0.768158\n0.921600 1.000000 0.769714\n0.939697 1.000000 0.771149\n0.956299 1.000000 0.772339\n0.971832 1.000000 0.773529\n0.986267 1.000000 0.774628\n1.000000 1.000000 0.775635\n0.000000 0.021851 0.778687\n0.025848 0.002441 0.798828\n0.073151 0.004211 0.799316\n0.117493 0.005829 0.799713\n0.158264 0.007416 0.800110\n0.194885 0.008942 0.800446\n0.227631 0.010498 0.800903\n0.257446 0.012054 0.801270\n0.285187 0.013580 0.801605\n0.311646 0.015076 0.802002\n0.337219 0.016571 0.802368\n0.363068 0.018097 0.802673\n0.389740 0.019653 0.803009\n0.417816 0.021271 0.803314\n0.447937 0.022888 0.803650\n0.480469 0.024536 0.803925\n0.516632 0.026337 0.804230\n0.557922 0.028046 0.804535\n0.603882 0.029907 0.804810\n0.652832 0.031891 0.805023\n0.702850 0.033966 0.805298\n0.751770 0.035950 0.805511\n0.797577 0.037781 0.805664\n0.837585 0.038269 0.804718\n0.872620 0.038727 0.803436\n0.903442 0.039307 0.802338\n0.930573 0.040070 0.801331\n0.954498 0.041107 0.800446\n0.975830 0.042145 0.799500\n0.994995 0.043365 0.798859\n1.000000 0.063202 0.789368\n1.000000 0.089569 0.778351\n0.000000 0.058167 0.781494\n0.025482 0.039429 0.798981\n0.071838 0.040497 0.798950\n0.115845 0.041931 0.799347\n0.156433 0.043396 0.799744\n0.193298 0.044800 0.800110\n0.226318 0.046295 0.800476\n0.256378 0.047729 0.800873\n0.283966 0.049164 0.801208\n0.310364 0.050659 0.801575\n0.336060 0.052094 0.801880\n0.361877 0.053589 0.802185\n0.388641 0.055115 0.802551\n0.416687 0.056732 0.802856\n0.446991 0.058350 0.803101\n0.480347 0.060120 0.803406\n0.516968 0.061829 0.803650\n0.558838 0.063721 0.803894\n0.605103 0.065704 0.804230\n0.654236 0.067535 0.804443\n0.704132 0.069305 0.804596\n0.753052 0.071198 0.804810\n0.798645 0.073059 0.804993\n0.838318 0.073608 0.803864\n0.873077 0.074066 0.802734\n0.903656 0.074646 0.801514\n0.930511 0.075500 0.800415\n0.954254 0.076416 0.799561\n0.975403 0.077545 0.798737\n0.994385 0.078674 0.797943\n1.000000 0.097107 0.789276\n1.000000 0.122742 0.778687\n0.000000 0.093079 0.782471\n0.025177 0.076233 0.799927\n0.070068 0.075958 0.798798\n0.114227 0.077179 0.798981\n0.155090 0.078491 0.799377\n0.192078 0.079865 0.799744\n0.225006 0.081177 0.800079\n0.255066 0.082611 0.800446\n0.282654 0.083984 0.800781\n0.309113 0.085419 0.801056\n0.334747 0.086914 0.801392\n0.360596 0.088379 0.801697\n0.387665 0.089935 0.802002\n0.416290 0.091522 0.802307\n0.447235 0.093262 0.802582\n0.480957 0.095032 0.802826\n0.518158 0.096863 0.803131\n0.560577 0.098694 0.803314\n0.606995 0.100372 0.803497\n0.656128 0.102112 0.803680\n0.706299 0.103943 0.803894\n0.754883 0.105865 0.804077\n0.800262 0.107758 0.804260\n0.839386 0.108185 0.803009\n0.873749 0.108643 0.801727\n0.903931 0.109283 0.800720\n0.930542 0.110107 0.799774\n0.954041 0.110992 0.798676\n0.974945 0.112000 0.797943\n0.993774 0.113190 0.797058\n1.000000 0.130096 0.789337\n1.000000 0.155060 0.779205\n0.000000 0.127411 0.782837\n0.024811 0.112061 0.800781\n0.070038 0.111755 0.799622\n0.112701 0.111389 0.798584\n0.153687 0.112732 0.798950\n0.190643 0.114075 0.799286\n0.223694 0.115295 0.799652\n0.253784 0.116730 0.799957\n0.281372 0.118073 0.800293\n0.307800 0.119476 0.800598\n0.333771 0.121002 0.800903\n0.360291 0.122528 0.801178\n0.387726 0.124115 0.801483\n0.416962 0.125824 0.801697\n0.448273 0.127533 0.801971\n0.482513 0.129272 0.802216\n0.519928 0.130859 0.802429\n0.562744 0.132507 0.802643\n0.609528 0.134277 0.802826\n0.658875 0.135986 0.802979\n0.708710 0.137878 0.803162\n0.757141 0.139709 0.803314\n0.802002 0.141602 0.803497\n0.840607 0.141968 0.802216\n0.874512 0.142426 0.800995\n0.904358 0.143097 0.799835\n0.930634 0.143768 0.798889\n0.953857 0.144653 0.798004\n0.974548 0.145630 0.797180\n0.993195 0.146667 0.796356\n1.000000 0.162231 0.789185\n1.000000 0.186371 0.779449\n0.000000 0.160675 0.783661\n0.024780 0.147003 0.801605\n0.070007 0.146423 0.800415\n0.112701 0.146088 0.799347\n0.152344 0.146149 0.798523\n0.189301 0.147430 0.798828\n0.222504 0.148743 0.799194\n0.252502 0.150085 0.799500\n0.280487 0.151520 0.799774\n0.307495 0.152924 0.800079\n0.333984 0.154449 0.800323\n0.360840 0.156036 0.800598\n0.388702 0.157684 0.800903\n0.418152 0.159302 0.801147\n0.449890 0.160797 0.801331\n0.484406 0.162415 0.801544\n0.522461 0.164001 0.801697\n0.565704 0.165710 0.801910\n0.612793 0.167450 0.802094\n0.662170 0.169159 0.802277\n0.711792 0.170990 0.802399\n0.759796 0.172821 0.802582\n0.804077 0.174561 0.802643\n0.841980 0.174866 0.801361\n0.875427 0.175262 0.800140\n0.904816 0.175903 0.798950\n0.930756 0.176605 0.797913\n0.953674 0.177368 0.796967\n0.974152 0.178253 0.796265\n0.992615 0.179199 0.795441\n1.000000 0.193329 0.788971\n1.000000 0.216797 0.779694\n0.000000 0.192780 0.784424\n0.024750 0.180817 0.802399\n0.069977 0.180389 0.801208\n0.112640 0.179993 0.800049\n0.152069 0.179840 0.799072\n0.188019 0.180054 0.798370\n0.221497 0.181427 0.798676\n0.252197 0.182831 0.798981\n0.280853 0.184174 0.799255\n0.308136 0.185730 0.799530\n0.334900 0.187225 0.799774\n0.362152 0.188751 0.800049\n0.390259 0.190216 0.800232\n0.420013 0.191681 0.800446\n0.452179 0.193268 0.800629\n0.487061 0.194855 0.800842\n0.525604 0.196411 0.800995\n0.569244 0.198151 0.801178\n0.616516 0.199829 0.801331\n0.665802 0.201477 0.801514\n0.715210 0.203308 0.801636\n0.762726 0.205017 0.801758\n0.806244 0.206635 0.801697\n0.843567 0.206879 0.800354\n0.876434 0.207245 0.799225\n0.905396 0.207764 0.798187\n0.930908 0.208405 0.797180\n0.953552 0.209045 0.796234\n0.973755 0.209839 0.795380\n0.992035 0.210632 0.794617\n1.000000 0.223389 0.788757\n1.000000 0.246155 0.780182\n0.000000 0.224274 0.785187\n0.024719 0.213898 0.803131\n0.069946 0.213623 0.801941\n0.112610 0.213257 0.800812\n0.152496 0.213074 0.799713\n0.189026 0.212921 0.798737\n0.222229 0.213409 0.798157\n0.253235 0.214813 0.798431\n0.282074 0.216278 0.798706\n0.309540 0.217712 0.798920\n0.336395 0.219086 0.799164\n0.363861 0.220459 0.799377\n0.392181 0.221863 0.799561\n0.422333 0.223389 0.799744\n0.454865 0.224915 0.799927\n0.490295 0.226501 0.800079\n0.529388 0.228119 0.800262\n0.573303 0.229736 0.800446\n0.620789 0.231415 0.800568\n0.669983 0.233063 0.800720\n0.718903 0.234741 0.800873\n0.765808 0.236389 0.801025\n0.808411 0.237823 0.800903\n0.845062 0.238007 0.799469\n0.877411 0.238281 0.798309\n0.905884 0.238739 0.797272\n0.931030 0.239288 0.796326\n0.953400 0.239868 0.795319\n0.973389 0.240509 0.794586\n0.991455 0.241180 0.793823\n1.000000 0.252686 0.788666\n1.000000 0.274719 0.780334\n0.000000 0.254852 0.785889\n0.024719 0.246460 0.803864\n0.070404 0.245911 0.802643\n0.114227 0.245667 0.801392\n0.154968 0.245392 0.800323\n0.191772 0.245300 0.799286\n0.224792 0.245422 0.798370\n0.255035 0.246094 0.797882\n0.283875 0.247375 0.798065\n0.311371 0.248688 0.798279\n0.338623 0.250092 0.798492\n0.366119 0.251495 0.798645\n0.394775 0.252960 0.798859\n0.425323 0.254425 0.799042\n0.458252 0.255981 0.799225\n0.493988 0.257538 0.799347\n0.533569 0.259064 0.799530\n0.577850 0.260681 0.799683\n0.625275 0.262268 0.799805\n0.674225 0.263824 0.799957\n0.722809 0.265472 0.800079\n0.768860 0.267059 0.800201\n0.810638 0.268280 0.799896\n0.846619 0.268402 0.798523\n0.878357 0.268677 0.797363\n0.906342 0.269043 0.796326\n0.931152 0.269501 0.795441\n0.953217 0.269958 0.794586\n0.972961 0.270508 0.793579\n0.990845 0.271057 0.792847\n1.000000 0.281250 0.788330\n1.000000 0.302643 0.780670\n0.000000 0.284851 0.786957\n0.026642 0.278107 0.804474\n0.073456 0.277710 0.803192\n0.117798 0.277405 0.801941\n0.158844 0.277344 0.800842\n0.195679 0.277344 0.799774\n0.228485 0.277283 0.798798\n0.258179 0.277496 0.797913\n0.286346 0.278046 0.797363\n0.313965 0.279419 0.797607\n0.341187 0.280762 0.797791\n0.368988 0.282196 0.797974\n0.398010 0.283630 0.798126\n0.428864 0.285126 0.798279\n0.462128 0.286652 0.798462\n0.498077 0.288147 0.798584\n0.538147 0.289642 0.798737\n0.582642 0.291260 0.798889\n0.629974 0.292725 0.798981\n0.678650 0.294250 0.799164\n0.726562 0.295837 0.799316\n0.772003 0.297333 0.799408\n0.812805 0.298309 0.798920\n0.848083 0.298431 0.797729\n0.879211 0.298615 0.796417\n0.906769 0.298889 0.795410\n0.931183 0.299255 0.794403\n0.952911 0.299652 0.793549\n0.972473 0.300079 0.792786\n0.990173 0.300476 0.791962\n1.000000 0.309479 0.788116\n1.000000 0.330261 0.780640\n0.000000 0.314270 0.790588\n0.030945 0.309692 0.804993\n0.078369 0.309357 0.803650\n0.123047 0.309143 0.802429\n0.163666 0.308838 0.801178\n0.200134 0.308685 0.800110\n0.232788 0.308807 0.799133\n0.262390 0.308960 0.798218\n0.290100 0.309387 0.797424\n0.316986 0.309967 0.796844\n0.344391 0.311340 0.796997\n0.372345 0.312775 0.797180\n0.401611 0.314270 0.797333\n0.432648 0.315674 0.797485\n0.466187 0.317169 0.797668\n0.502441 0.318604 0.797760\n0.542969 0.320068 0.797913\n0.587555 0.321594 0.798065\n0.634796 0.323029 0.798187\n0.682953 0.324524 0.798279\n0.730225 0.325989 0.798401\n0.774933 0.327362 0.798492\n0.814758 0.328156 0.798035\n0.849396 0.328217 0.796692\n0.879913 0.328308 0.795471\n0.907013 0.328552 0.794403\n0.931061 0.328796 0.793518\n0.952576 0.329102 0.792694\n0.971954 0.329437 0.791809\n0.989594 0.329803 0.790924\n1.000000 0.337616 0.787476\n1.000000 0.357849 0.780823\n0.000000 0.343628 0.795868\n0.037262 0.341278 0.805420\n0.084503 0.340790 0.804016\n0.128937 0.340454 0.802734\n0.169434 0.340271 0.801483\n0.205505 0.340271 0.800354\n0.237823 0.340363 0.799408\n0.267120 0.340607 0.798492\n0.294678 0.341003 0.797668\n0.321289 0.341461 0.796844\n0.347870 0.341980 0.796234\n0.376038 0.343414 0.796387\n0.405365 0.344818 0.796539\n0.436798 0.346222 0.796631\n0.470520 0.347717 0.796814\n0.507019 0.349091 0.796936\n0.547852 0.350555 0.797058\n0.592499 0.351990 0.797180\n0.639496 0.353333 0.797272\n0.687164 0.354767 0.797394\n0.733856 0.356171 0.797485\n0.777588 0.357452 0.797607\n0.816528 0.358093 0.796997\n0.850433 0.358093 0.795746\n0.880463 0.358124 0.794556\n0.907104 0.358246 0.793488\n0.930908 0.358429 0.792542\n0.952148 0.358673 0.791656\n0.971375 0.358948 0.790619\n0.988892 0.359253 0.789856\n1.000000 0.365936 0.786926\n1.000000 0.385590 0.780884\n0.000000 0.373688 0.802368\n0.044281 0.372742 0.805634\n0.091827 0.372345 0.804260\n0.136017 0.372070 0.802917\n0.176117 0.371979 0.801727\n0.211639 0.372009 0.800598\n0.243408 0.372223 0.799652\n0.272369 0.372528 0.798706\n0.299713 0.372925 0.797913\n0.326172 0.373352 0.797058\n0.352600 0.373779 0.796204\n0.379974 0.374329 0.795471\n0.409485 0.375702 0.795654\n0.441101 0.377075 0.795776\n0.474976 0.378510 0.795929\n0.511749 0.379791 0.796051\n0.552765 0.381226 0.796143\n0.597412 0.382568 0.796265\n0.643982 0.383881 0.796356\n0.691132 0.385193 0.796478\n0.736969 0.386475 0.796570\n0.779938 0.387726 0.796631\n0.817963 0.388123 0.795807\n0.851257 0.388062 0.794678\n0.880798 0.388062 0.793488\n0.907166 0.388153 0.792358\n0.930664 0.388275 0.791351\n0.951721 0.388489 0.790375\n0.970825 0.388763 0.789581\n0.988159 0.389008 0.788605\n1.000000 0.394501 0.786255\n1.000000 0.413605 0.780792\n0.003021 0.405151 0.807281\n0.053009 0.404785 0.805817\n0.100403 0.404388 0.804443\n0.144165 0.404205 0.803101\n0.183441 0.404205 0.801849\n0.218262 0.404297 0.800812\n0.249420 0.404541 0.799866\n0.277893 0.404816 0.798950\n0.304932 0.405273 0.798096\n0.331238 0.405701 0.797241\n0.357605 0.406067 0.796417\n0.384827 0.406403 0.795441\n0.413635 0.406982 0.794739\n0.445343 0.408325 0.794861\n0.479492 0.409637 0.794952\n0.516418 0.410950 0.795074\n0.557526 0.412262 0.795166\n0.601868 0.413513 0.795258\n0.648071 0.414764 0.795349\n0.694489 0.415985 0.795410\n0.739624 0.417175 0.795502\n0.781769 0.418274 0.795624\n0.819122 0.418579 0.794769\n0.851898 0.418396 0.793457\n0.881104 0.418396 0.792267\n0.907135 0.418457 0.791168\n0.930389 0.418579 0.790131\n0.951263 0.418732 0.789154\n0.970184 0.418976 0.788269\n0.987457 0.419220 0.787354\n1.000000 0.423523 0.785370\n1.000000 0.442139 0.780792\n0.013184 0.437653 0.807465\n0.063019 0.437317 0.806000\n0.109955 0.437164 0.804535\n0.152924 0.437012 0.803223\n0.191284 0.437012 0.802032\n0.225159 0.437256 0.800995\n0.255646 0.437408 0.800018\n0.283691 0.437775 0.799133\n0.310364 0.438263 0.798309\n0.336395 0.438690 0.797424\n0.362732 0.438995 0.796600\n0.389954 0.439362 0.795624\n0.418610 0.439545 0.794586\n0.449615 0.440063 0.793823\n0.483826 0.441345 0.793915\n0.520782 0.442535 0.794037\n0.562012 0.443787 0.794098\n0.606049 0.444946 0.794159\n0.651611 0.446075 0.794250\n0.697540 0.447205 0.794373\n0.741974 0.448303 0.794403\n0.783600 0.449341 0.794434\n0.820160 0.449463 0.793488\n0.852478 0.449341 0.792145\n0.881348 0.449249 0.790894\n0.907013 0.449341 0.789764\n0.930054 0.449402 0.788727\n0.950745 0.449615 0.787750\n0.969482 0.449799 0.786804\n0.986603 0.449982 0.785980\n1.000000 0.453156 0.784546\n1.000000 0.471191 0.780731\n0.024506 0.471069 0.807495\n0.073944 0.470703 0.806030\n0.120117 0.470490 0.804626\n0.162109 0.470490 0.803314\n0.199310 0.470551 0.802124\n0.232269 0.470764 0.801117\n0.261993 0.471100 0.800201\n0.289459 0.471375 0.799316\n0.315765 0.471832 0.798401\n0.341614 0.472137 0.797577\n0.367798 0.472534 0.796692\n0.394989 0.472839 0.795715\n0.423676 0.473022 0.794647\n0.454285 0.473114 0.793518\n0.487823 0.473572 0.792786\n0.524811 0.474701 0.792877\n0.565796 0.475830 0.792938\n0.609589 0.476929 0.793091\n0.654785 0.477966 0.793121\n0.700195 0.479004 0.793152\n0.744080 0.480011 0.793182\n0.785126 0.481018 0.793152\n0.821075 0.481079 0.791992\n0.853027 0.480896 0.790710\n0.881470 0.480835 0.789429\n0.906860 0.480896 0.788361\n0.929626 0.480957 0.787354\n0.950134 0.481110 0.786346\n0.968719 0.481262 0.785370\n0.985748 0.481476 0.784454\n1.000000 0.483429 0.783417\n1.000000 0.500916 0.780792\n0.036774 0.505249 0.807526\n0.085449 0.504974 0.806061\n0.130676 0.504791 0.804626\n0.171509 0.504761 0.803375\n0.207397 0.504913 0.802216\n0.239349 0.505157 0.801239\n0.268250 0.505371 0.800262\n0.295258 0.505798 0.799438\n0.321167 0.506165 0.798584\n0.346741 0.506531 0.797699\n0.372833 0.506805 0.796783\n0.399933 0.507050 0.795837\n0.428497 0.507172 0.794769\n0.459137 0.507233 0.793579\n0.492004 0.507050 0.792236\n0.528381 0.507538 0.791718\n0.569214 0.508575 0.791748\n0.612823 0.509583 0.791779\n0.657837 0.510590 0.791809\n0.702759 0.511566 0.791779\n0.746185 0.512512 0.791779\n0.786682 0.513519 0.791718\n0.822021 0.513428 0.790497\n0.853363 0.513245 0.789154\n0.881500 0.513184 0.787964\n0.906586 0.513214 0.786865\n0.929108 0.513245 0.785767\n0.949463 0.513336 0.784729\n0.967926 0.513550 0.783905\n0.984833 0.513702 0.783081\n1.000000 0.514496 0.782166\n1.000000 0.532227 0.780853\n0.049622 0.541748 0.807465\n0.097382 0.541504 0.806000\n0.141327 0.541290 0.804657\n0.180817 0.541290 0.803406\n0.215424 0.541443 0.802307\n0.246338 0.541718 0.801331\n0.274475 0.541992 0.800415\n0.300812 0.542297 0.799530\n0.326355 0.542664 0.798676\n0.351685 0.542938 0.797791\n0.377563 0.543243 0.796906\n0.404572 0.543396 0.795898\n0.433014 0.543335 0.794830\n0.463470 0.543274 0.793610\n0.496277 0.543060 0.792297\n0.532074 0.542633 0.790771\n0.572571 0.543274 0.790375\n0.616028 0.544250 0.790344\n0.660736 0.545258 0.790344\n0.705261 0.546234 0.790314\n0.748138 0.547180 0.790222\n0.787994 0.548218 0.790192\n0.822723 0.547943 0.788849\n0.853699 0.547729 0.787598\n0.881439 0.547638 0.786346\n0.906250 0.547577 0.785248\n0.928528 0.547577 0.784241\n0.948700 0.547699 0.783234\n0.967010 0.547852 0.782410\n0.983856 0.547974 0.781616\n0.999481 0.548187 0.780853\n1.000000 0.565765 0.780884\n0.062653 0.580811 0.807434\n0.109192 0.580566 0.805939\n0.151886 0.580505 0.804626\n0.189850 0.580475 0.803436\n0.223114 0.580536 0.802368\n0.253021 0.580780 0.801392\n0.280334 0.580963 0.800476\n0.306183 0.581299 0.799622\n0.331268 0.581604 0.798798\n0.356293 0.581696 0.797913\n0.381989 0.581879 0.796967\n0.408752 0.581909 0.795959\n0.437164 0.581818 0.794891\n0.467682 0.581573 0.793640\n0.500580 0.581329 0.792236\n0.536560 0.580811 0.790680\n0.576019 0.580231 0.789032\n0.619171 0.581055 0.788818\n0.663574 0.581970 0.788757\n0.707672 0.582977 0.788727\n0.749939 0.583893 0.788666\n0.789215 0.584778 0.788605\n0.823334 0.584442 0.787201\n0.853882 0.584167 0.785889\n0.881256 0.584015 0.784760\n0.905823 0.583954 0.783630\n0.927856 0.583923 0.782684\n0.947876 0.583954 0.781738\n0.966064 0.584045 0.780914\n0.982819 0.584137 0.780182\n0.998383 0.584290 0.779449\n1.000000 0.600861 0.781189\n0.075684 0.621979 0.807343\n0.120880 0.621674 0.805939\n0.161987 0.621582 0.804626\n0.198364 0.621460 0.803436\n0.230377 0.621460 0.802429\n0.259277 0.621582 0.801422\n0.285828 0.621704 0.800568\n0.311127 0.621948 0.799744\n0.335815 0.622131 0.798859\n0.360474 0.622162 0.797974\n0.386017 0.622101 0.797028\n0.412811 0.622162 0.795990\n0.441284 0.621887 0.794861\n0.471893 0.621643 0.793549\n0.504913 0.621216 0.792114\n0.541077 0.620575 0.790527\n0.580566 0.619934 0.788849\n0.622192 0.619293 0.787231\n0.666260 0.620239 0.787170\n0.709869 0.621155 0.787140\n0.751709 0.622009 0.787109\n0.790222 0.622803 0.786865\n0.823853 0.622345 0.785522\n0.853973 0.622070 0.784302\n0.881012 0.621826 0.783173\n0.905334 0.621674 0.782104\n0.927185 0.621582 0.781189\n0.947021 0.621582 0.780304\n0.965118 0.621613 0.779480\n0.981750 0.621674 0.778839\n0.997284 0.621765 0.778137\n1.000000 0.637268 0.781372\n0.088318 0.664246 0.807251\n0.132019 0.663910 0.805847\n0.171509 0.663696 0.804596\n0.206329 0.663483 0.803436\n0.237122 0.663483 0.802460\n0.265045 0.663452 0.801544\n0.290863 0.663544 0.800598\n0.315582 0.663574 0.799774\n0.339935 0.663574 0.798920\n0.364502 0.663574 0.798035\n0.390015 0.663452 0.797028\n0.416901 0.663391 0.795929\n0.445404 0.662994 0.794769\n0.476166 0.662628 0.793396\n0.509155 0.662048 0.791931\n0.545593 0.661346 0.790314\n0.585022 0.660583 0.788605\n0.626373 0.659790 0.786926\n0.668762 0.659363 0.785614\n0.711914 0.660187 0.785553\n0.753143 0.660980 0.785492\n0.791107 0.661591 0.785278\n0.824219 0.661102 0.783966\n0.853943 0.660675 0.782715\n0.880676 0.660400 0.781586\n0.904724 0.660217 0.780640\n0.926453 0.660095 0.779724\n0.946106 0.660004 0.778992\n0.964111 0.659973 0.778198\n0.980682 0.660004 0.777588\n0.996155 0.660004 0.776947\n1.000000 0.674347 0.781860\n0.100311 0.707092 0.807129\n0.142426 0.706543 0.805756\n0.180298 0.706177 0.804565\n0.213531 0.705872 0.803467\n0.243225 0.705719 0.802490\n0.270172 0.705658 0.801575\n0.295410 0.705505 0.800690\n0.319794 0.705475 0.799835\n0.343964 0.705353 0.798920\n0.368530 0.705231 0.797974\n0.394012 0.705048 0.796936\n0.420929 0.704712 0.795776\n0.449585 0.704315 0.794586\n0.480347 0.703796 0.793213\n0.513428 0.703094 0.791748\n0.549957 0.702332 0.790070\n0.589355 0.701447 0.788422\n0.630493 0.700531 0.786743\n0.672241 0.699707 0.785065\n0.713898 0.699402 0.783997\n0.754547 0.700104 0.783997\n0.791870 0.700562 0.783661\n0.824524 0.700012 0.782379\n0.853882 0.699524 0.781219\n0.880341 0.699188 0.780182\n0.904114 0.698944 0.779266\n0.925629 0.698700 0.778412\n0.945190 0.698578 0.777679\n0.963074 0.698486 0.777008\n0.979645 0.698578 0.776520\n0.995056 0.699097 0.776184\n1.000000 0.712189 0.782806\n0.111267 0.749115 0.807068\n0.151947 0.748474 0.805725\n0.188141 0.748016 0.804535\n0.219940 0.747681 0.803467\n0.248566 0.747345 0.802521\n0.274963 0.747253 0.801605\n0.299866 0.746918 0.800659\n0.324005 0.746765 0.799774\n0.348053 0.746552 0.798828\n0.372528 0.746307 0.797852\n0.398010 0.745972 0.796783\n0.424927 0.745605 0.795624\n0.453613 0.745056 0.794373\n0.484467 0.744415 0.792969\n0.517670 0.743622 0.791473\n0.554260 0.742737 0.789856\n0.593597 0.741821 0.788239\n0.634460 0.740814 0.786560\n0.675842 0.739899 0.784973\n0.716461 0.738953 0.783356\n0.755798 0.738739 0.782532\n0.792450 0.739044 0.782135\n0.824677 0.738373 0.780914\n0.853699 0.737823 0.779877\n0.879822 0.737427 0.778931\n0.903412 0.737091 0.777985\n0.924774 0.736786 0.777252\n0.944214 0.736725 0.776642\n0.962128 0.737030 0.776215\n0.978607 0.737305 0.775970\n0.993927 0.737640 0.775757\n1.000000 0.749115 0.783966\n0.121338 0.789856 0.806946\n0.160309 0.789001 0.805664\n0.195038 0.788544 0.804535\n0.225861 0.788116 0.803467\n0.253815 0.787659 0.802460\n0.279663 0.787384 0.801514\n0.304169 0.787079 0.800537\n0.328125 0.786713 0.799652\n0.352051 0.786530 0.798676\n0.376434 0.786102 0.797668\n0.401947 0.785645 0.796600\n0.428864 0.785187 0.795410\n0.457672 0.784546 0.794159\n0.488464 0.783813 0.792755\n0.521790 0.782928 0.791290\n0.558350 0.781891 0.789703\n0.597534 0.780884 0.788116\n0.638214 0.779907 0.786469\n0.679199 0.778809 0.784851\n0.719330 0.777832 0.783325\n0.757477 0.776886 0.781891\n0.792908 0.776306 0.780823\n0.824707 0.775604 0.779663\n0.853394 0.774994 0.778625\n0.879303 0.774475 0.777740\n0.902710 0.774170 0.777008\n0.924072 0.774231 0.776520\n0.943390 0.774353 0.776184\n0.961121 0.774445 0.775879\n0.977509 0.774597 0.775757\n0.992828 0.774719 0.775757\n1.000000 0.784576 0.785278\n0.129364 0.827576 0.806152\n0.167114 0.826752 0.804718\n0.200745 0.826141 0.803589\n0.230682 0.825562 0.802521\n0.257996 0.825073 0.801483\n0.283417 0.824615 0.800385\n0.307526 0.824219 0.799469\n0.331207 0.823792 0.798492\n0.354980 0.823364 0.797485\n0.379364 0.822937 0.796509\n0.404877 0.822357 0.795349\n0.431763 0.821686 0.794159\n0.460510 0.820984 0.792877\n0.491425 0.820129 0.791473\n0.524719 0.819153 0.790009\n0.561249 0.818054 0.788483\n0.600220 0.816925 0.786835\n0.640533 0.815796 0.785248\n0.681091 0.814728 0.783722\n0.720795 0.813599 0.782227\n0.758484 0.812683 0.780853\n0.793762 0.812317 0.780151\n0.825867 0.812225 0.779816\n0.854309 0.811646 0.778900\n0.880157 0.811493 0.778290\n0.903412 0.811279 0.777832\n0.924438 0.811157 0.777496\n0.943573 0.811157 0.777313\n0.961182 0.811096 0.777161\n0.977509 0.811096 0.777130\n0.992767 0.811127 0.777161\n1.000000 0.818085 0.786804\n0.136414 0.862061 0.804504\n0.173096 0.861206 0.803253\n0.205750 0.860504 0.802002\n0.234924 0.859833 0.800842\n0.261597 0.859314 0.799866\n0.286530 0.858826 0.798859\n0.310364 0.858337 0.797913\n0.333893 0.857819 0.796936\n0.357483 0.857300 0.795990\n0.381836 0.856720 0.794891\n0.407318 0.856171 0.793884\n0.434204 0.855408 0.792603\n0.463043 0.854614 0.791473\n0.493927 0.853638 0.790039\n0.527222 0.852631 0.788574\n0.563660 0.851501 0.787018\n0.602417 0.850311 0.785492\n0.642426 0.849121 0.783966\n0.682617 0.847961 0.782501\n0.721802 0.846893 0.781067\n0.759094 0.845856 0.779816\n0.794037 0.845520 0.779236\n0.826660 0.846161 0.779633\n0.855591 0.846436 0.779816\n0.880920 0.846130 0.779327\n0.903809 0.845795 0.779022\n0.924622 0.845520 0.778839\n0.943665 0.845337 0.778717\n0.961212 0.845154 0.778687\n0.977478 0.845001 0.778717\n0.992767 0.844818 0.778778\n1.000000 0.849152 0.788422\n0.143341 0.893463 0.802917\n0.178925 0.892609 0.801636\n0.210602 0.891846 0.800415\n0.238983 0.891144 0.799438\n0.265106 0.890564 0.798462\n0.289581 0.889984 0.797302\n0.313141 0.889435 0.796448\n0.336487 0.888885 0.795471\n0.359955 0.888275 0.794495\n0.384277 0.887665 0.793518\n0.409729 0.886963 0.792389\n0.436646 0.886200 0.791229\n0.465454 0.885315 0.790039\n0.496277 0.884308 0.788727\n0.529541 0.883240 0.787231\n0.565857 0.882080 0.785858\n0.604431 0.880829 0.784363\n0.644012 0.879669 0.782867\n0.683868 0.878479 0.781464\n0.722748 0.877319 0.780182\n0.760101 0.876495 0.779144\n0.794739 0.876282 0.778931\n0.826630 0.876770 0.779480\n0.855408 0.877258 0.780090\n0.881317 0.877563 0.780640\n0.903992 0.877106 0.780396\n0.924713 0.876770 0.780334\n0.943695 0.876404 0.780243\n0.961212 0.876160 0.780304\n0.977478 0.875854 0.780365\n0.992737 0.875610 0.780487\n1.000000 0.877472 0.790100\n0.150085 0.921570 0.801422\n0.184570 0.920715 0.800293\n0.215302 0.919861 0.799133\n0.242950 0.919189 0.797943\n0.268494 0.918518 0.796997\n0.292572 0.917938 0.795959\n0.315887 0.917297 0.795044\n0.338989 0.916687 0.794067\n0.362396 0.916077 0.793243\n0.386597 0.915375 0.792114\n0.412018 0.914642 0.791077\n0.438904 0.913818 0.789978\n0.467682 0.912872 0.788879\n0.498413 0.911865 0.787628\n0.531677 0.910736 0.786163\n0.567841 0.909515 0.784851\n0.606079 0.908325 0.783356\n0.645569 0.907135 0.782043\n0.685608 0.906067 0.780884\n0.724304 0.905029 0.779877\n0.760712 0.904114 0.779022\n0.794769 0.903839 0.778992\n0.826202 0.904144 0.779602\n0.854736 0.904480 0.780396\n0.880615 0.904846 0.781158\n0.904083 0.905182 0.781891\n0.924744 0.904755 0.781891\n0.943726 0.904297 0.781891\n0.961212 0.903931 0.781982\n0.977478 0.903595 0.782104\n0.992737 0.903320 0.782227\n1.000000 0.903076 0.791931\n0.156616 0.946594 0.800018\n0.189972 0.945679 0.798767\n0.219788 0.944885 0.797729\n0.246765 0.944153 0.796753\n0.271790 0.943512 0.795715\n0.295471 0.942871 0.794708\n0.318512 0.942200 0.793854\n0.341431 0.941620 0.792877\n0.364716 0.940918 0.791931\n0.388824 0.940247 0.791107\n0.414185 0.939453 0.790070\n0.441010 0.938599 0.789032\n0.469696 0.937653 0.787842\n0.500336 0.936584 0.786591\n0.533569 0.935486 0.785278\n0.569611 0.934296 0.784027\n0.608337 0.933167 0.782837\n0.647766 0.932068 0.781830\n0.686829 0.930939 0.780823\n0.724792 0.929871 0.779999\n0.760651 0.928894 0.779266\n0.794281 0.928528 0.779297\n0.825500 0.928741 0.780090\n0.853821 0.928955 0.780823\n0.879669 0.929230 0.781708\n0.903229 0.929504 0.782562\n0.924683 0.929718 0.783386\n0.943787 0.929413 0.783661\n0.961304 0.928955 0.783783\n0.977509 0.928650 0.783997\n0.992737 0.928375 0.784485\n1.000000 0.926239 0.794373\n0.162750 0.969025 0.798767\n0.195129 0.968170 0.797455\n0.223969 0.967377 0.796356\n0.250366 0.966644 0.795441\n0.274872 0.965973 0.794464\n0.298218 0.965302 0.793579\n0.320923 0.964661 0.792664\n0.343719 0.964020 0.791870\n0.366821 0.963348 0.790924\n0.390869 0.962616 0.790009\n0.416138 0.961823 0.789185\n0.442902 0.960968 0.788055\n0.471558 0.960022 0.787048\n0.502075 0.958984 0.785889\n0.535950 0.957916 0.784821\n0.572174 0.956787 0.783813\n0.610107 0.955627 0.782806\n0.648712 0.954498 0.781952\n0.687225 0.953369 0.781067\n0.724670 0.952271 0.780365\n0.760254 0.951294 0.779846\n0.793610 0.950836 0.779877\n0.824677 0.950989 0.780670\n0.853058 0.951111 0.781555\n0.878876 0.951294 0.782410\n0.902466 0.951447 0.783264\n0.923950 0.951599 0.784180\n0.943695 0.951843 0.785156\n0.961456 0.951721 0.785950\n0.977631 0.951324 0.786560\n0.992737 0.950928 0.787201\n1.000000 0.947296 0.797119\n0.168579 0.989319 0.797577\n0.199921 0.988495 0.796295\n0.227966 0.987701 0.795288\n0.253723 0.987000 0.794342\n0.277802 0.986328 0.793396\n0.300720 0.985687 0.792450\n0.323242 0.985046 0.791779\n0.345764 0.984375 0.790802\n0.368744 0.983673 0.790070\n0.392670 0.982971 0.789307\n0.417816 0.982208 0.788452\n0.444550 0.981323 0.787506\n0.473816 0.980438 0.786560\n0.504669 0.979431 0.785736\n0.537842 0.978333 0.784912\n0.573425 0.977203 0.783966\n0.610718 0.976074 0.783142\n0.648804 0.974945 0.782349\n0.686981 0.973816 0.781708\n0.724243 0.972687 0.781067\n0.759613 0.971710 0.780518\n0.792908 0.971130 0.780579\n0.824097 0.971191 0.781433\n0.852509 0.971283 0.782349\n0.878387 0.971405 0.783203\n0.902008 0.971527 0.784210\n0.923553 0.971649 0.785461\n0.943207 0.971802 0.786774\n0.961304 0.971954 0.788208\n0.977753 0.971863 0.789368\n0.992737 0.971405 0.790070\n1.000000 0.966309 0.799683\n0.185059 1.000000 0.791443\n0.214111 1.000000 0.791107\n0.240265 1.000000 0.790619\n0.264374 1.000000 0.790314\n0.286957 1.000000 0.789856\n0.308624 1.000000 0.789459\n0.329956 1.000000 0.789276\n0.351410 1.000000 0.788818\n0.373352 1.000000 0.788452\n0.396179 1.000000 0.788025\n0.420929 1.000000 0.787659\n0.446991 1.000000 0.787262\n0.475586 0.999115 0.786682\n0.505920 0.998108 0.785980\n0.538605 0.997040 0.785248\n0.573700 0.995941 0.784454\n0.610687 0.994812 0.783783\n0.648529 0.993652 0.783020\n0.686554 0.992554 0.782379\n0.723755 0.991455 0.781769\n0.759247 0.990417 0.781372\n0.792511 0.989807 0.781372\n0.823792 0.989838 0.782318\n0.852325 0.989868 0.783295\n0.878296 0.989899 0.784485\n0.901886 0.989960 0.785858\n0.923279 0.989990 0.787262\n0.942841 0.990082 0.788696\n0.960754 0.990112 0.790192\n0.977386 0.990112 0.791443\n0.992737 0.990082 0.792419\n1.000000 0.983795 0.801788\n0.214783 1.000000 0.780762\n0.242493 1.000000 0.780853\n0.267639 1.000000 0.780975\n0.290802 1.000000 0.781097\n0.312683 1.000000 0.781281\n0.333679 1.000000 0.781311\n0.354462 1.000000 0.781464\n0.375336 1.000000 0.781677\n0.397430 1.000000 0.782166\n0.420197 1.000000 0.782654\n0.443878 1.000000 0.783173\n0.468964 1.000000 0.783722\n0.495605 1.000000 0.784332\n0.524506 1.000000 0.785065\n0.556244 1.000000 0.785828\n0.590302 1.000000 0.786621\n0.626068 1.000000 0.787415\n0.662750 1.000000 0.788239\n0.699493 1.000000 0.789154\n0.735443 1.000000 0.789917\n0.769592 1.000000 0.790833\n0.801270 1.000000 0.791748\n0.830231 1.000000 0.792908\n0.856537 1.000000 0.794189\n0.880402 1.000000 0.795532\n0.902069 1.000000 0.796967\n0.921783 1.000000 0.798401\n0.939789 1.000000 0.799591\n0.956329 1.000000 0.800690\n0.971832 1.000000 0.801758\n0.986267 1.000000 0.802704\n1.000000 1.000000 0.803589\n0.000000 0.022552 0.812561\n0.024536 0.001465 0.833099\n0.071594 0.003235 0.833466\n0.115814 0.004852 0.833832\n0.156738 0.006409 0.834229\n0.193329 0.007965 0.834534\n0.226166 0.009521 0.834869\n0.256073 0.011017 0.835236\n0.283783 0.012604 0.835541\n0.310150 0.014099 0.835815\n0.335846 0.015594 0.836151\n0.361725 0.017151 0.836426\n0.388367 0.018677 0.836700\n0.416595 0.020294 0.836975\n0.446716 0.021942 0.837250\n0.479340 0.023651 0.837494\n0.515625 0.025360 0.837738\n0.557098 0.027222 0.838013\n0.602966 0.029114 0.838257\n0.651978 0.031128 0.838470\n0.702026 0.033234 0.838715\n0.750854 0.035126 0.838867\n0.796600 0.036987 0.839020\n0.837830 0.038971 0.839203\n0.872864 0.039398 0.838043\n0.903656 0.040039 0.836761\n0.930756 0.040863 0.835846\n0.954681 0.041901 0.834869\n0.975983 0.043060 0.834137\n0.994995 0.044189 0.833282\n1.000000 0.064087 0.822876\n1.000000 0.090424 0.810516\n0.000000 0.058563 0.814697\n0.023956 0.038544 0.833191\n0.070068 0.039490 0.833069\n0.114166 0.040924 0.833435\n0.154846 0.042419 0.833740\n0.191956 0.043854 0.834106\n0.224823 0.045319 0.834442\n0.254822 0.046692 0.834747\n0.282532 0.048187 0.835052\n0.308929 0.049652 0.835327\n0.334686 0.051117 0.835602\n0.360504 0.052643 0.835876\n0.387146 0.054138 0.836121\n0.415314 0.055817 0.836395\n0.445953 0.057465 0.836639\n0.479431 0.059204 0.836884\n0.516113 0.061035 0.837158\n0.557953 0.062927 0.837372\n0.604492 0.064911 0.837616\n0.653595 0.066742 0.837769\n0.703369 0.068542 0.837921\n0.752197 0.070343 0.838074\n0.797882 0.072327 0.838226\n0.838684 0.074280 0.838287\n0.873352 0.074829 0.837128\n0.903870 0.075500 0.836029\n0.930725 0.076233 0.835052\n0.954407 0.077240 0.834137\n0.975494 0.078400 0.833313\n0.994385 0.079468 0.832428\n1.000000 0.097931 0.822876\n1.000000 0.123566 0.810944\n0.000000 0.093597 0.815430\n0.023499 0.075348 0.833984\n0.068573 0.074982 0.832855\n0.112732 0.076141 0.833008\n0.153473 0.077484 0.833313\n0.190582 0.078857 0.833649\n0.223602 0.080231 0.833984\n0.253601 0.081573 0.834198\n0.281250 0.083008 0.834503\n0.307800 0.084442 0.834778\n0.333374 0.085938 0.835052\n0.359375 0.087433 0.835297\n0.386505 0.089020 0.835571\n0.415314 0.090668 0.835785\n0.446381 0.092407 0.836090\n0.480225 0.094177 0.836304\n0.517609 0.096130 0.836517\n0.559784 0.097870 0.836670\n0.606323 0.099487 0.836853\n0.655518 0.101318 0.837006\n0.705536 0.103149 0.837189\n0.754242 0.105042 0.837311\n0.799500 0.107025 0.837463\n0.839752 0.108856 0.837585\n0.874084 0.109314 0.836243\n0.904205 0.110077 0.835205\n0.930725 0.110840 0.834167\n0.954132 0.111816 0.833313\n0.975037 0.112854 0.832489\n0.993805 0.113953 0.831726\n1.000000 0.130920 0.822754\n1.000000 0.155792 0.811249\n0.000000 0.127808 0.815765\n0.023285 0.111206 0.834747\n0.068542 0.110626 0.833618\n0.111206 0.110413 0.832520\n0.152161 0.111725 0.832825\n0.189240 0.113068 0.833130\n0.222290 0.114380 0.833435\n0.252319 0.115753 0.833679\n0.280029 0.117157 0.833954\n0.306458 0.118561 0.834229\n0.332672 0.120056 0.834473\n0.359314 0.121643 0.834717\n0.386749 0.123260 0.834961\n0.415985 0.125000 0.835175\n0.447601 0.126770 0.835449\n0.481873 0.128387 0.835602\n0.519318 0.130035 0.835785\n0.562134 0.131683 0.835968\n0.609039 0.133423 0.836121\n0.658325 0.135284 0.836243\n0.708191 0.137085 0.836395\n0.756470 0.138977 0.836548\n0.801392 0.140930 0.836700\n0.841064 0.142639 0.836609\n0.874878 0.143127 0.835480\n0.904633 0.143799 0.834381\n0.930847 0.144501 0.833313\n0.953979 0.145416 0.832458\n0.974640 0.146393 0.831573\n0.993225 0.147400 0.830719\n1.000000 0.162903 0.822754\n1.000000 0.187042 0.811462\n0.000000 0.160919 0.816528\n0.023254 0.146027 0.835480\n0.068512 0.145508 0.834320\n0.111206 0.145294 0.833191\n0.150940 0.145142 0.832306\n0.188019 0.146454 0.832611\n0.221008 0.147736 0.832855\n0.251007 0.149139 0.833099\n0.279388 0.150543 0.833374\n0.306396 0.152039 0.833649\n0.332947 0.153595 0.833862\n0.360046 0.155243 0.834106\n0.387848 0.156891 0.834320\n0.417542 0.158447 0.834534\n0.449219 0.159973 0.834717\n0.483856 0.161530 0.834900\n0.522003 0.163177 0.835052\n0.565247 0.164917 0.835175\n0.612244 0.166626 0.835358\n0.661804 0.168427 0.835510\n0.711395 0.170227 0.835663\n0.759247 0.172119 0.835754\n0.803467 0.173981 0.835907\n0.842438 0.175537 0.835693\n0.875824 0.175995 0.834564\n0.905121 0.176575 0.833496\n0.930969 0.177277 0.832367\n0.953857 0.178101 0.831604\n0.974243 0.178955 0.830627\n0.992615 0.179840 0.829865\n1.000000 0.193970 0.822693\n1.000000 0.217377 0.811859\n0.000000 0.192871 0.817200\n0.023193 0.179840 0.836151\n0.068481 0.179443 0.834991\n0.111176 0.179230 0.833832\n0.150635 0.178955 0.832733\n0.186676 0.179138 0.832031\n0.220306 0.180450 0.832306\n0.251282 0.181854 0.832550\n0.279907 0.183350 0.832794\n0.307129 0.184814 0.833038\n0.334045 0.186401 0.833252\n0.361359 0.187897 0.833466\n0.389374 0.189331 0.833649\n0.419250 0.190857 0.833832\n0.451508 0.192413 0.834015\n0.486603 0.194000 0.834137\n0.525269 0.195648 0.834259\n0.568878 0.197327 0.834442\n0.616211 0.199066 0.834625\n0.665497 0.200806 0.834717\n0.714813 0.202545 0.834839\n0.762115 0.204285 0.834991\n0.805695 0.206116 0.835083\n0.843994 0.207489 0.834869\n0.876740 0.207916 0.833557\n0.905670 0.208466 0.832458\n0.931122 0.209015 0.831635\n0.953674 0.209747 0.830658\n0.973877 0.210449 0.829865\n0.992035 0.211243 0.828949\n1.000000 0.224091 0.822388\n1.000000 0.246765 0.812012\n0.000000 0.224335 0.817841\n0.023163 0.212921 0.836823\n0.068451 0.212646 0.835602\n0.111145 0.212250 0.834442\n0.151367 0.212067 0.833344\n0.188080 0.212067 0.832306\n0.221283 0.212433 0.831726\n0.252319 0.213928 0.831970\n0.281219 0.215454 0.832214\n0.308685 0.216797 0.832397\n0.335693 0.218170 0.832581\n0.363098 0.219604 0.832764\n0.391541 0.221039 0.832916\n0.421906 0.222565 0.833038\n0.454529 0.224121 0.833221\n0.489868 0.225677 0.833405\n0.529053 0.227325 0.833496\n0.572937 0.228943 0.833679\n0.620361 0.230560 0.833801\n0.669556 0.232269 0.833893\n0.718567 0.233978 0.834015\n0.765198 0.235626 0.834167\n0.808075 0.237396 0.834259\n0.845520 0.238586 0.833923\n0.877777 0.238892 0.832794\n0.906158 0.239349 0.831696\n0.931244 0.239868 0.830658\n0.953491 0.240448 0.829712\n0.973480 0.241028 0.828857\n0.991516 0.241730 0.828125\n1.000000 0.253235 0.822266\n1.000000 0.275208 0.812347\n0.000000 0.255096 0.818451\n0.023163 0.245483 0.837463\n0.069366 0.245026 0.836182\n0.113342 0.244629 0.834991\n0.154144 0.244507 0.833832\n0.191040 0.244507 0.832825\n0.224060 0.244629 0.831848\n0.254395 0.245239 0.831360\n0.283142 0.246521 0.831512\n0.310699 0.247833 0.831696\n0.337982 0.249237 0.831879\n0.365509 0.250671 0.832001\n0.394348 0.252136 0.832184\n0.424957 0.253632 0.832367\n0.457947 0.255157 0.832458\n0.493774 0.256775 0.832642\n0.533417 0.258362 0.832764\n0.577637 0.259888 0.832855\n0.625031 0.261536 0.832977\n0.673920 0.263123 0.833130\n0.722351 0.264709 0.833221\n0.768372 0.266327 0.833313\n0.810364 0.267944 0.833405\n0.847076 0.268982 0.832977\n0.878723 0.269226 0.831757\n0.906616 0.269562 0.830780\n0.931305 0.270020 0.829712\n0.953308 0.270477 0.828796\n0.973022 0.270996 0.827972\n0.990875 0.271576 0.827148\n1.000000 0.281830 0.821838\n1.000000 0.303101 0.812439\n0.000000 0.284821 0.819855\n0.025757 0.277252 0.837952\n0.072784 0.276917 0.836670\n0.117188 0.276550 0.835419\n0.158295 0.276398 0.834259\n0.195068 0.276398 0.833160\n0.227783 0.276489 0.832214\n0.257599 0.276581 0.831329\n0.285706 0.277191 0.830811\n0.313324 0.278564 0.830963\n0.340759 0.279968 0.831116\n0.368500 0.281372 0.831268\n0.397614 0.282867 0.831421\n0.428497 0.284363 0.831573\n0.461823 0.285828 0.831726\n0.497955 0.287415 0.831818\n0.537964 0.288910 0.831940\n0.582458 0.290436 0.832092\n0.629822 0.291962 0.832184\n0.678314 0.293518 0.832275\n0.726044 0.295044 0.832367\n0.771484 0.296600 0.832489\n0.812622 0.298126 0.832550\n0.848511 0.298950 0.832062\n0.879578 0.299133 0.830872\n0.906952 0.299408 0.829865\n0.931305 0.299744 0.828796\n0.953033 0.300171 0.827881\n0.972534 0.300537 0.827057\n0.990265 0.300964 0.826233\n1.000000 0.309967 0.821625\n1.000000 0.330658 0.812592\n0.000000 0.314026 0.823639\n0.030426 0.308746 0.838379\n0.078064 0.308441 0.837067\n0.122498 0.308136 0.835754\n0.163269 0.307861 0.834534\n0.199738 0.307892 0.833466\n0.232239 0.307922 0.832489\n0.261902 0.308105 0.831573\n0.289612 0.308472 0.830750\n0.316498 0.309143 0.830170\n0.344025 0.310547 0.830353\n0.371948 0.311951 0.830475\n0.401184 0.313446 0.830658\n0.432434 0.314880 0.830750\n0.465912 0.316345 0.830872\n0.502380 0.317871 0.831024\n0.542908 0.319336 0.831116\n0.587341 0.320801 0.831207\n0.634552 0.322327 0.831329\n0.682648 0.323792 0.831421\n0.729797 0.325195 0.831482\n0.774261 0.326630 0.831604\n0.814636 0.328003 0.831665\n0.849731 0.328705 0.830994\n0.880249 0.328827 0.829834\n0.907227 0.329041 0.828735\n0.931213 0.329285 0.827789\n0.952667 0.329559 0.826965\n0.972015 0.329895 0.826080\n0.989624 0.330231 0.825287\n1.000000 0.338074 0.821075\n1.000000 0.358276 0.812683\n0.000000 0.343201 0.829132\n0.036865 0.340393 0.838745\n0.084320 0.339874 0.837311\n0.128662 0.339478 0.835999\n0.169220 0.339417 0.834808\n0.205292 0.339447 0.833679\n0.237427 0.339600 0.832703\n0.266815 0.339813 0.831818\n0.294312 0.340149 0.830994\n0.320831 0.340485 0.830139\n0.347534 0.341217 0.829559\n0.375702 0.342651 0.829651\n0.405121 0.344086 0.829803\n0.436615 0.345490 0.829926\n0.470428 0.346924 0.829987\n0.507080 0.348358 0.830139\n0.547791 0.349792 0.830231\n0.592346 0.351196 0.830322\n0.639221 0.352631 0.830414\n0.686737 0.354004 0.830505\n0.733215 0.355347 0.830597\n0.776917 0.356750 0.830658\n0.816498 0.358002 0.830719\n0.850800 0.358521 0.830017\n0.880707 0.358582 0.828766\n0.907288 0.358673 0.827759\n0.931030 0.358826 0.826874\n0.952301 0.359100 0.825867\n0.971466 0.359344 0.824921\n0.988922 0.359711 0.824158\n1.000000 0.366364 0.820618\n1.000000 0.385956 0.812683\n0.000000 0.372986 0.835602\n0.044342 0.371857 0.838928\n0.091888 0.371460 0.837463\n0.136017 0.371216 0.836151\n0.176025 0.371094 0.834930\n0.211456 0.371307 0.833862\n0.243073 0.371460 0.832916\n0.272095 0.371826 0.832031\n0.299286 0.372162 0.831177\n0.325745 0.372589 0.830292\n0.352234 0.372955 0.829468\n0.379547 0.373535 0.828735\n0.409302 0.374939 0.828857\n0.440948 0.376373 0.828979\n0.474823 0.377747 0.829041\n0.511688 0.379120 0.829163\n0.552704 0.380524 0.829254\n0.597137 0.381805 0.829346\n0.643677 0.383148 0.829468\n0.690613 0.384430 0.829529\n0.736359 0.385712 0.829620\n0.779236 0.386963 0.829681\n0.817902 0.388153 0.829742\n0.851532 0.388489 0.828949\n0.881104 0.388489 0.827698\n0.907318 0.388550 0.826630\n0.930786 0.388672 0.825623\n0.951843 0.388885 0.824707\n0.970886 0.389130 0.823822\n0.988220 0.389404 0.822998\n1.000000 0.394897 0.820038\n1.000000 0.414001 0.812683\n0.003235 0.404297 0.840515\n0.053345 0.403931 0.839050\n0.100708 0.403687 0.837616\n0.144226 0.403412 0.836304\n0.183472 0.403412 0.835083\n0.218201 0.403534 0.834045\n0.249146 0.403717 0.833069\n0.277649 0.404114 0.832153\n0.304565 0.404541 0.831299\n0.330841 0.404999 0.830475\n0.357300 0.405304 0.829590\n0.384430 0.405701 0.828644\n0.413483 0.406281 0.827881\n0.445251 0.407623 0.827972\n0.479340 0.408936 0.828064\n0.516266 0.410187 0.828186\n0.557434 0.411530 0.828247\n0.601685 0.412781 0.828339\n0.647675 0.414032 0.828400\n0.694061 0.415222 0.828491\n0.739044 0.416351 0.828552\n0.781128 0.417480 0.828583\n0.819244 0.418610 0.828644\n0.852234 0.418823 0.827759\n0.881378 0.418793 0.826508\n0.907257 0.418793 0.825409\n0.930511 0.418976 0.824371\n0.951355 0.419159 0.823395\n0.970245 0.419373 0.822601\n0.987457 0.419617 0.821686\n1.000000 0.423889 0.819336\n1.000000 0.442474 0.812683\n0.013611 0.436920 0.840607\n0.063568 0.436523 0.839142\n0.110382 0.436340 0.837677\n0.153137 0.436279 0.836395\n0.191406 0.436279 0.835205\n0.225098 0.436493 0.834137\n0.255493 0.436707 0.833191\n0.283478 0.437012 0.832306\n0.309967 0.437469 0.831451\n0.336121 0.437927 0.830597\n0.362427 0.438293 0.829681\n0.389618 0.438599 0.828735\n0.418335 0.438812 0.827667\n0.449402 0.439362 0.826935\n0.483521 0.440582 0.827026\n0.520721 0.441833 0.827118\n0.561584 0.443024 0.827148\n0.605621 0.444153 0.827271\n0.651276 0.445343 0.827332\n0.696930 0.446381 0.827362\n0.741241 0.447479 0.827423\n0.782776 0.448578 0.827423\n0.820312 0.449615 0.827423\n0.852844 0.449707 0.826355\n0.881592 0.449677 0.825134\n0.907227 0.449707 0.824127\n0.930176 0.449829 0.823059\n0.950836 0.449921 0.822083\n0.969513 0.450165 0.821198\n0.986664 0.450378 0.820221\n1.000000 0.453491 0.818420\n1.000000 0.471558 0.812714\n0.025146 0.470215 0.840637\n0.074615 0.469940 0.839172\n0.120667 0.469818 0.837738\n0.162415 0.469727 0.836426\n0.199524 0.469849 0.835266\n0.232178 0.470032 0.834259\n0.261780 0.470276 0.833313\n0.289276 0.470764 0.832397\n0.315460 0.471069 0.831543\n0.341309 0.471527 0.830688\n0.367554 0.471832 0.829773\n0.394653 0.472107 0.828796\n0.423401 0.472290 0.827728\n0.454102 0.472351 0.826599\n0.487610 0.472809 0.825897\n0.524658 0.473938 0.825989\n0.565399 0.475067 0.826050\n0.609100 0.476135 0.826080\n0.654327 0.477203 0.826141\n0.699524 0.478210 0.826141\n0.743469 0.479218 0.826141\n0.784393 0.480225 0.826141\n0.821320 0.481232 0.826080\n0.853363 0.481232 0.824982\n0.881714 0.481201 0.823700\n0.907043 0.481171 0.822632\n0.929749 0.481262 0.821594\n0.950195 0.481415 0.820587\n0.968811 0.481598 0.819824\n0.985779 0.481842 0.818878\n1.000000 0.483765 0.817627\n1.000000 0.501251 0.812653\n0.037506 0.504364 0.840637\n0.086243 0.504150 0.839111\n0.131134 0.503998 0.837708\n0.171753 0.504059 0.836456\n0.207611 0.504150 0.835327\n0.239288 0.504456 0.834290\n0.268097 0.504730 0.833374\n0.295013 0.505096 0.832520\n0.320831 0.505493 0.831635\n0.346436 0.505798 0.830780\n0.372528 0.506104 0.829865\n0.399536 0.506287 0.828888\n0.428223 0.506500 0.827789\n0.458771 0.506409 0.826630\n0.491638 0.506256 0.825317\n0.528076 0.506714 0.824707\n0.568878 0.507751 0.824768\n0.612396 0.508789 0.824768\n0.657410 0.509827 0.824768\n0.702148 0.510773 0.824768\n0.745483 0.511749 0.824707\n0.785919 0.512756 0.824707\n0.822327 0.513702 0.824615\n0.853729 0.513641 0.823486\n0.881683 0.513519 0.822296\n0.906769 0.513519 0.821167\n0.929260 0.513611 0.820160\n0.949585 0.513702 0.819244\n0.967987 0.513824 0.818329\n0.984863 0.514069 0.817474\n1.000000 0.514832 0.816467\n1.000000 0.532562 0.812653\n0.050476 0.540924 0.840546\n0.098175 0.540741 0.839081\n0.141968 0.540558 0.837646\n0.181061 0.540558 0.836456\n0.215546 0.540649 0.835327\n0.246185 0.540863 0.834351\n0.274292 0.541260 0.833435\n0.300598 0.541534 0.832581\n0.325958 0.541901 0.831726\n0.351349 0.542145 0.830872\n0.377228 0.542419 0.829926\n0.404114 0.542542 0.828918\n0.432648 0.542603 0.827850\n0.463074 0.542480 0.826630\n0.495941 0.542236 0.825317\n0.531769 0.541870 0.823792\n0.572144 0.542389 0.823364\n0.615601 0.543427 0.823364\n0.660278 0.544403 0.823303\n0.704681 0.545441 0.823303\n0.747467 0.546356 0.823242\n0.787231 0.547363 0.823181\n0.823090 0.548248 0.823151\n0.854004 0.548065 0.821838\n0.881653 0.547974 0.820679\n0.906433 0.547913 0.819641\n0.928680 0.547974 0.818634\n0.948730 0.548035 0.817657\n0.967072 0.548157 0.816803\n0.983856 0.548309 0.815948\n0.999451 0.548492 0.815155\n1.000000 0.566101 0.812805\n0.063507 0.579987 0.840424\n0.110046 0.579834 0.838989\n0.152313 0.579620 0.837616\n0.190002 0.579651 0.836426\n0.223206 0.579742 0.835358\n0.252808 0.579987 0.834412\n0.280121 0.580261 0.833496\n0.305847 0.580475 0.832672\n0.330841 0.580658 0.831787\n0.355865 0.580933 0.830902\n0.381561 0.580994 0.829987\n0.408295 0.581055 0.828949\n0.436798 0.580963 0.827881\n0.467316 0.580750 0.826630\n0.500244 0.580383 0.825195\n0.536255 0.579987 0.823669\n0.575653 0.579346 0.822021\n0.618744 0.580170 0.821869\n0.663055 0.581146 0.821777\n0.707001 0.582062 0.821716\n0.749237 0.582977 0.821686\n0.788422 0.583923 0.821655\n0.823669 0.584747 0.821503\n0.854156 0.584503 0.820251\n0.881500 0.584320 0.819153\n0.905945 0.584259 0.818054\n0.928009 0.584229 0.817108\n0.947937 0.584229 0.816162\n0.966125 0.584320 0.815369\n0.982880 0.584473 0.814606\n0.998413 0.584595 0.813873\n1.000000 0.601257 0.812927\n0.076508 0.621063 0.840271\n0.121582 0.620789 0.838898\n0.162354 0.620514 0.837555\n0.198486 0.620544 0.836426\n0.230377 0.620575 0.835358\n0.259003 0.620697 0.834412\n0.285553 0.620941 0.833527\n0.310699 0.621124 0.832703\n0.335297 0.621124 0.831818\n0.360016 0.621185 0.830933\n0.385529 0.621216 0.830017\n0.412292 0.621124 0.828949\n0.440887 0.621033 0.827789\n0.471527 0.620667 0.826508\n0.504547 0.620270 0.825043\n0.540771 0.619598 0.823486\n0.580170 0.618988 0.821838\n0.621796 0.618408 0.820282\n0.665741 0.619263 0.820221\n0.709167 0.620178 0.820190\n0.750916 0.621063 0.820129\n0.789520 0.621979 0.820099\n0.824188 0.622650 0.819916\n0.854279 0.622375 0.818665\n0.881226 0.622131 0.817505\n0.905457 0.621979 0.816559\n0.927307 0.621887 0.815521\n0.947083 0.621918 0.814758\n0.965149 0.621918 0.813965\n0.981812 0.622009 0.813232\n0.997253 0.622070 0.812561\n1.000000 0.637573 0.813232\n0.089020 0.663422 0.840149\n0.132690 0.662994 0.838806\n0.171753 0.662750 0.837494\n0.206360 0.662537 0.836365\n0.237000 0.662476 0.835358\n0.264679 0.662659 0.834473\n0.290466 0.662567 0.833557\n0.315094 0.662659 0.832703\n0.339355 0.662659 0.831879\n0.364014 0.662598 0.830963\n0.389496 0.662476 0.829956\n0.416412 0.662292 0.828857\n0.445068 0.661957 0.827637\n0.475800 0.661621 0.826324\n0.508850 0.661011 0.824829\n0.545197 0.660339 0.823273\n0.584595 0.659607 0.821625\n0.625885 0.658752 0.819977\n0.668213 0.658356 0.818634\n0.711212 0.659180 0.818604\n0.752411 0.660004 0.818573\n0.790436 0.660767 0.818542\n0.824585 0.661377 0.818298\n0.854218 0.660980 0.817108\n0.880859 0.660706 0.815979\n0.904877 0.660492 0.815063\n0.926544 0.660370 0.814209\n0.946167 0.660309 0.813416\n0.964142 0.660248 0.812653\n0.980713 0.660278 0.812012\n0.996185 0.660309 0.811401\n1.000000 0.674866 0.813721\n0.100891 0.706055 0.840027\n0.142914 0.705475 0.838684\n0.180389 0.705170 0.837463\n0.213470 0.704834 0.836365\n0.242920 0.704681 0.835358\n0.269745 0.704651 0.834473\n0.294922 0.704529 0.833618\n0.319275 0.704437 0.832703\n0.343475 0.704376 0.831818\n0.368042 0.704163 0.830872\n0.393555 0.703918 0.829834\n0.420441 0.703705 0.828674\n0.449188 0.703278 0.827484\n0.480011 0.702728 0.826141\n0.513123 0.701996 0.824646\n0.549591 0.701263 0.823090\n0.588898 0.700439 0.821411\n0.629944 0.699493 0.819794\n0.671631 0.698639 0.818115\n0.713135 0.698303 0.817108\n0.753784 0.699097 0.817078\n0.791229 0.699829 0.817078\n0.824799 0.700256 0.816772\n0.854126 0.699829 0.815643\n0.880493 0.699432 0.814667\n0.904236 0.699158 0.813690\n0.925720 0.698975 0.812897\n0.945251 0.698822 0.812164\n0.963165 0.698700 0.811493\n0.979675 0.699005 0.811005\n0.995056 0.699493 0.810669\n1.000000 0.712646 0.814606\n0.111908 0.747955 0.839905\n0.152252 0.747437 0.838623\n0.188080 0.746918 0.837402\n0.219757 0.746613 0.836334\n0.248230 0.746368 0.835388\n0.274536 0.746185 0.834442\n0.299347 0.745850 0.833557\n0.323486 0.745636 0.832642\n0.347504 0.745514 0.831696\n0.372009 0.745270 0.830719\n0.397522 0.744934 0.829651\n0.424500 0.744507 0.828522\n0.453278 0.743958 0.827301\n0.484070 0.743378 0.825958\n0.517334 0.742584 0.824432\n0.553864 0.741669 0.822876\n0.593079 0.740692 0.821259\n0.633850 0.739777 0.819641\n0.675171 0.738800 0.817993\n0.715698 0.737915 0.816467\n0.754913 0.737671 0.815613\n0.791901 0.738312 0.815704\n0.824951 0.738617 0.815369\n0.853912 0.738098 0.814270\n0.880005 0.737671 0.813324\n0.903534 0.737335 0.812469\n0.924835 0.737061 0.811737\n0.944336 0.737152 0.811157\n0.962158 0.737396 0.810791\n0.978607 0.737701 0.810455\n0.993927 0.738037 0.810242\n1.000000 0.749512 0.815704\n0.121704 0.788757 0.839783\n0.160400 0.788025 0.838531\n0.194824 0.787354 0.837372\n0.225616 0.787018 0.836273\n0.253479 0.786591 0.835297\n0.279236 0.786346 0.834351\n0.303711 0.785980 0.833405\n0.327576 0.785675 0.832489\n0.351501 0.785400 0.831543\n0.375946 0.785065 0.830536\n0.401459 0.784607 0.829498\n0.428406 0.784058 0.828339\n0.457214 0.783356 0.827087\n0.488068 0.782715 0.825745\n0.521362 0.781769 0.824249\n0.557922 0.780823 0.822723\n0.596985 0.779755 0.821106\n0.637573 0.778748 0.819519\n0.678497 0.777740 0.817932\n0.718536 0.776672 0.816467\n0.756622 0.775818 0.815063\n0.792358 0.775635 0.814392\n0.824951 0.775757 0.814117\n0.853607 0.775208 0.813049\n0.879456 0.774658 0.812195\n0.902893 0.774567 0.811493\n0.924164 0.774597 0.811005\n0.943451 0.774658 0.810638\n0.961121 0.774811 0.810364\n0.977509 0.774902 0.810150\n0.992798 0.775055 0.810028\n1.000000 0.784882 0.816895\n0.130463 0.827301 0.839691\n0.168091 0.826477 0.838379\n0.201447 0.825867 0.837219\n0.231354 0.825317 0.836151\n0.258514 0.824890 0.835144\n0.283844 0.824371 0.834167\n0.308014 0.824005 0.833252\n0.331635 0.823608 0.832306\n0.355408 0.823181 0.831360\n0.379822 0.822754 0.830383\n0.405273 0.822235 0.829285\n0.432251 0.821564 0.828156\n0.461090 0.820953 0.826935\n0.491913 0.820099 0.825592\n0.525269 0.819092 0.824097\n0.561737 0.818054 0.822601\n0.600708 0.816956 0.821014\n0.640991 0.815826 0.819519\n0.681488 0.814728 0.817963\n0.721161 0.813660 0.816498\n0.758759 0.812744 0.815186\n0.793427 0.811859 0.813995\n0.824890 0.811188 0.812988\n0.853394 0.810730 0.812164\n0.879120 0.810516 0.811523\n0.902313 0.810333 0.811005\n0.923340 0.810211 0.810669\n0.942474 0.810150 0.810364\n0.960083 0.810120 0.810242\n0.976440 0.810089 0.810089\n0.991760 0.810059 0.810059\n1.000000 0.818329 0.818237\n0.138000 0.862152 0.838562\n0.174500 0.861328 0.837311\n0.206848 0.860596 0.836151\n0.235931 0.859985 0.835022\n0.262451 0.859406 0.833984\n0.287354 0.858917 0.832947\n0.311157 0.858490 0.832062\n0.334564 0.857971 0.831085\n0.358215 0.857391 0.830139\n0.382538 0.856873 0.829163\n0.407990 0.856262 0.828064\n0.434937 0.855560 0.826935\n0.463745 0.854736 0.825653\n0.494568 0.853760 0.824280\n0.527893 0.852753 0.822845\n0.564331 0.851624 0.821411\n0.602997 0.850433 0.819855\n0.643005 0.849243 0.818329\n0.683075 0.848083 0.816895\n0.722260 0.847015 0.815491\n0.759430 0.845978 0.814209\n0.793915 0.845215 0.813141\n0.825684 0.845154 0.812836\n0.854462 0.845398 0.812958\n0.879761 0.845032 0.812469\n0.902649 0.844757 0.812103\n0.923462 0.844452 0.811859\n0.942535 0.844269 0.811615\n0.960083 0.844086 0.811523\n0.976440 0.843933 0.811462\n0.991730 0.843811 0.811493\n1.000000 0.849365 0.819702\n0.144867 0.893555 0.836945\n0.180206 0.892700 0.835785\n0.211670 0.891937 0.834534\n0.239990 0.891266 0.833557\n0.265930 0.890656 0.832520\n0.290375 0.890076 0.831635\n0.313904 0.889526 0.830627\n0.337158 0.888947 0.829681\n0.360657 0.888397 0.828766\n0.384949 0.887756 0.827667\n0.410339 0.887054 0.826721\n0.437286 0.886261 0.825562\n0.466034 0.885406 0.824341\n0.496857 0.884399 0.823059\n0.530212 0.883331 0.821655\n0.566437 0.882141 0.820160\n0.604919 0.880951 0.818665\n0.644562 0.879730 0.817291\n0.684265 0.878540 0.815826\n0.723358 0.877502 0.814636\n0.760529 0.876648 0.813629\n0.794403 0.875885 0.812805\n0.825531 0.875702 0.812622\n0.854248 0.876160 0.813171\n0.880127 0.876556 0.813629\n0.902863 0.876099 0.813354\n0.923553 0.875671 0.813141\n0.942566 0.875397 0.813049\n0.960083 0.875122 0.812958\n0.976410 0.874817 0.812988\n0.991730 0.874634 0.813019\n1.000000 0.877625 0.821136\n0.151581 0.921600 0.835571\n0.185822 0.920715 0.834290\n0.216339 0.919952 0.833130\n0.243927 0.919250 0.832184\n0.269318 0.918579 0.831177\n0.293365 0.917969 0.830170\n0.316620 0.917358 0.829224\n0.339661 0.916748 0.828278\n0.363007 0.916138 0.827454\n0.387238 0.915436 0.826477\n0.412598 0.914703 0.825378\n0.439514 0.913910 0.824402\n0.468231 0.912964 0.823181\n0.498993 0.911926 0.821899\n0.532257 0.910828 0.820496\n0.568359 0.909607 0.819214\n0.606567 0.908386 0.817749\n0.646271 0.907227 0.816467\n0.686096 0.906189 0.815308\n0.724670 0.905182 0.814362\n0.760925 0.904236 0.813416\n0.794281 0.903381 0.812744\n0.824951 0.903107 0.812683\n0.853485 0.903412 0.813293\n0.879395 0.903778 0.813995\n0.902893 0.904144 0.814697\n0.923615 0.903748 0.814575\n0.942627 0.903320 0.814545\n0.960144 0.902924 0.814514\n0.976471 0.902618 0.814514\n0.991730 0.902313 0.814606\n1.000000 0.903320 0.822876\n0.158020 0.946625 0.834198\n0.191132 0.945679 0.832916\n0.220734 0.944916 0.831909\n0.247681 0.944214 0.830811\n0.272552 0.943512 0.829926\n0.296204 0.942932 0.828949\n0.319214 0.942261 0.828033\n0.342010 0.941650 0.827179\n0.365295 0.940979 0.826233\n0.389374 0.940247 0.825317\n0.414703 0.939484 0.824280\n0.441559 0.938629 0.823303\n0.470215 0.937683 0.822113\n0.500885 0.936676 0.820953\n0.534058 0.935516 0.819733\n0.570374 0.934357 0.818420\n0.608978 0.933228 0.817322\n0.648163 0.932098 0.816162\n0.687164 0.931000 0.815155\n0.725006 0.929993 0.814331\n0.760803 0.928986 0.813599\n0.793762 0.928070 0.812958\n0.824249 0.927673 0.812927\n0.852661 0.927917 0.813599\n0.878479 0.928162 0.814362\n0.902008 0.928467 0.815125\n0.923523 0.928680 0.815857\n0.942688 0.928375 0.816040\n0.960236 0.928009 0.816071\n0.976501 0.927643 0.816254\n0.991730 0.927338 0.816681\n1.000000 0.926483 0.825073\n0.164124 0.969055 0.832886\n0.196198 0.968201 0.831665\n0.224945 0.967407 0.830658\n0.251221 0.966675 0.829681\n0.275604 0.966003 0.828644\n0.298859 0.965332 0.827789\n0.321625 0.964691 0.826935\n0.344269 0.964020 0.826019\n0.367371 0.963348 0.825348\n0.391388 0.962616 0.824310\n0.416626 0.961853 0.823456\n0.443420 0.960999 0.822449\n0.471954 0.960022 0.821320\n0.502838 0.959045 0.820282\n0.536591 0.957977 0.819275\n0.572693 0.956848 0.818237\n0.610474 0.955688 0.817200\n0.648987 0.954559 0.816254\n0.687378 0.953430 0.815369\n0.724792 0.952362 0.814606\n0.760254 0.951355 0.813965\n0.793121 0.950439 0.813416\n0.823486 0.949982 0.813354\n0.851868 0.950104 0.814178\n0.877716 0.950256 0.814911\n0.901306 0.950439 0.815674\n0.922882 0.950653 0.816467\n0.942627 0.950867 0.817474\n0.960449 0.950745 0.818146\n0.976654 0.950317 0.818573\n0.991730 0.950012 0.819122\n1.000000 0.947388 0.827484\n0.169861 0.989288 0.831604\n0.200897 0.988495 0.830505\n0.228882 0.987701 0.829346\n0.254517 0.987000 0.828461\n0.278442 0.986328 0.827667\n0.301361 0.985687 0.826752\n0.323792 0.985046 0.825958\n0.346313 0.984406 0.825165\n0.369293 0.983704 0.824310\n0.393097 0.982971 0.823517\n0.418243 0.982208 0.822632\n0.445282 0.981323 0.821777\n0.474365 0.980438 0.820923\n0.505127 0.979462 0.820007\n0.538208 0.978333 0.819183\n0.573639 0.977234 0.818237\n0.610901 0.976135 0.817383\n0.648956 0.974976 0.816589\n0.687103 0.973846 0.815796\n0.724335 0.972748 0.815063\n0.759705 0.971710 0.814423\n0.792511 0.970764 0.813995\n0.822906 0.970215 0.813995\n0.851318 0.970276 0.814728\n0.877289 0.970398 0.815491\n0.900970 0.970520 0.816528\n0.922516 0.970673 0.817596\n0.942200 0.970856 0.818787\n0.960266 0.971008 0.820099\n0.976776 0.970917 0.821106\n0.991791 0.970428 0.821564\n1.000000 0.966309 0.829620\n0.186218 1.000000 0.824890\n0.214996 1.000000 0.824463\n0.241058 1.000000 0.824127\n0.265076 1.000000 0.823975\n0.287567 1.000000 0.823669\n0.309265 1.000000 0.823395\n0.330475 1.000000 0.823059\n0.351898 1.000000 0.822754\n0.373779 1.000000 0.822418\n0.396912 1.000000 0.822113\n0.421539 1.000000 0.821960\n0.447479 1.000000 0.821686\n0.476013 0.999115 0.820953\n0.506195 0.998108 0.820160\n0.538788 0.997040 0.819489\n0.573883 0.995941 0.818604\n0.610809 0.994843 0.817902\n0.648651 0.993683 0.817047\n0.686646 0.992554 0.816345\n0.723877 0.991486 0.815643\n0.759369 0.990417 0.815125\n0.792267 0.989471 0.814697\n0.822693 0.988831 0.814606\n0.851288 0.988892 0.815613\n0.877228 0.988953 0.816711\n0.900818 0.988983 0.817902\n0.922272 0.989044 0.819183\n0.941803 0.989075 0.820465\n0.959808 0.989136 0.821686\n0.976410 0.989197 0.822723\n0.991791 0.989136 0.823608\n1.000000 0.983795 0.831421\n0.215790 1.000000 0.812683\n0.243317 1.000000 0.812683\n0.268341 1.000000 0.812775\n0.291382 1.000000 0.812988\n0.313171 1.000000 0.812958\n0.334167 1.000000 0.813110\n0.354889 1.000000 0.813293\n0.375977 1.000000 0.813568\n0.397949 1.000000 0.814056\n0.420593 1.000000 0.814453\n0.444275 1.000000 0.814941\n0.469269 1.000000 0.815460\n0.495850 1.000000 0.816071\n0.524658 1.000000 0.816650\n0.556366 1.000000 0.817383\n0.590454 1.000000 0.818024\n0.626190 1.000000 0.818726\n0.662872 1.000000 0.819458\n0.699646 1.000000 0.820282\n0.735657 1.000000 0.821014\n0.769836 1.000000 0.821747\n0.801575 1.000000 0.822662\n0.830536 1.000000 0.823761\n0.856750 1.000000 0.824890\n0.880585 1.000000 0.826111\n0.902191 1.000000 0.827393\n0.921844 1.000000 0.828552\n0.939819 1.000000 0.829590\n0.956421 1.000000 0.830475\n0.971832 1.000000 0.831390\n0.986267 1.000000 0.832214\n1.000000 1.000000 0.832886\n0.000000 0.023560 0.848358\n0.022827 0.000458 0.869293\n0.069977 0.002106 0.869568\n0.114288 0.003754 0.869904\n0.155060 0.005310 0.870209\n0.191681 0.006897 0.870453\n0.224640 0.008392 0.870728\n0.254578 0.009949 0.871002\n0.282440 0.011444 0.871246\n0.308716 0.012970 0.871490\n0.334351 0.014496 0.871735\n0.360382 0.016052 0.871979\n0.387024 0.017639 0.872162\n0.415161 0.019257 0.872437\n0.445312 0.020874 0.872620\n0.478149 0.022614 0.872833\n0.514618 0.024384 0.873047\n0.556000 0.026215 0.873260\n0.601929 0.028229 0.873383\n0.650879 0.030243 0.873596\n0.700928 0.032288 0.873749\n0.749695 0.034119 0.873871\n0.795685 0.036041 0.873993\n0.836792 0.038086 0.874115\n0.873047 0.040161 0.874237\n0.903839 0.040833 0.873199\n0.930908 0.041718 0.872162\n0.954773 0.042694 0.871155\n0.976044 0.043823 0.870239\n0.995056 0.045044 0.869568\n1.000000 0.064941 0.858276\n1.000000 0.091217 0.844421\n0.000000 0.058990 0.849854\n0.022247 0.037506 0.869263\n0.068359 0.038361 0.869110\n0.112427 0.039795 0.869354\n0.153229 0.041260 0.869629\n0.190338 0.042725 0.869934\n0.223450 0.044189 0.870178\n0.253357 0.045593 0.870422\n0.281097 0.047058 0.870667\n0.307556 0.048523 0.870911\n0.333313 0.050079 0.871124\n0.359161 0.051514 0.871368\n0.385956 0.053131 0.871582\n0.414246 0.054779 0.871765\n0.444916 0.056519 0.871979\n0.478363 0.058289 0.872131\n0.515259 0.060120 0.872314\n0.557281 0.062042 0.872559\n0.603668 0.063995 0.872711\n0.652496 0.065765 0.872833\n0.702606 0.067596 0.872955\n0.751190 0.069489 0.873077\n0.796844 0.071411 0.873169\n0.837738 0.073456 0.873291\n0.873657 0.075562 0.873291\n0.904114 0.076141 0.872162\n0.930908 0.077087 0.871216\n0.954498 0.078094 0.870300\n0.975555 0.079132 0.869324\n0.994446 0.080353 0.868652\n1.000000 0.098755 0.858063\n1.000000 0.124298 0.844849\n0.000000 0.093872 0.850342\n0.021698 0.074158 0.869934\n0.066925 0.073853 0.868805\n0.110962 0.075012 0.868805\n0.152039 0.076355 0.869110\n0.189026 0.077698 0.869354\n0.222168 0.079041 0.869568\n0.252075 0.080505 0.869843\n0.279846 0.081940 0.870056\n0.306335 0.083405 0.870300\n0.331970 0.084839 0.870514\n0.358154 0.086426 0.870697\n0.385468 0.088074 0.870850\n0.414276 0.089783 0.871094\n0.445374 0.091431 0.871277\n0.479340 0.093323 0.871429\n0.516785 0.095184 0.871613\n0.559052 0.096802 0.871796\n0.605743 0.098602 0.871887\n0.654846 0.100372 0.872009\n0.704803 0.102264 0.872101\n0.753265 0.104218 0.872223\n0.798462 0.106140 0.872314\n0.838867 0.108124 0.872406\n0.874451 0.110168 0.872437\n0.904449 0.110809 0.871246\n0.930908 0.111633 0.870270\n0.954285 0.112549 0.869476\n0.975128 0.113586 0.868561\n0.993866 0.114685 0.867828\n1.000000 0.131683 0.858124\n1.000000 0.156464 0.845123\n0.000000 0.128174 0.850677\n0.021606 0.109955 0.870575\n0.066895 0.109497 0.869385\n0.109680 0.109253 0.868286\n0.150726 0.110626 0.868500\n0.187714 0.111908 0.868713\n0.220917 0.113251 0.868988\n0.250916 0.114655 0.869232\n0.278656 0.116089 0.869415\n0.305176 0.117523 0.869598\n0.331604 0.119110 0.869812\n0.358093 0.120605 0.870056\n0.385895 0.122345 0.870239\n0.415161 0.124084 0.870392\n0.446808 0.125824 0.870575\n0.481049 0.127441 0.870697\n0.518738 0.129028 0.870850\n0.561462 0.130798 0.870941\n0.608368 0.132538 0.871094\n0.657806 0.134369 0.871216\n0.707642 0.136230 0.871307\n0.755829 0.138184 0.871399\n0.800476 0.140045 0.871521\n0.840332 0.142029 0.871613\n0.875244 0.143860 0.871582\n0.904877 0.144440 0.870422\n0.931000 0.145264 0.869446\n0.954132 0.146118 0.868561\n0.974762 0.147034 0.867676\n0.993286 0.148132 0.866882\n1.000000 0.163666 0.857819\n1.000000 0.187683 0.845245\n0.000000 0.161133 0.851257\n0.021606 0.144775 0.871155\n0.066864 0.144379 0.869965\n0.109589 0.144012 0.868805\n0.149384 0.144043 0.867920\n0.186493 0.145386 0.868164\n0.219482 0.146667 0.868347\n0.249725 0.148102 0.868561\n0.278137 0.149567 0.868774\n0.305328 0.151031 0.868988\n0.332001 0.152618 0.869171\n0.358917 0.154236 0.869324\n0.387024 0.155945 0.869507\n0.416565 0.157471 0.869659\n0.448456 0.158997 0.869781\n0.483185 0.160645 0.869934\n0.521484 0.162323 0.870056\n0.564575 0.164001 0.870178\n0.611847 0.165771 0.870270\n0.661041 0.167603 0.870361\n0.710663 0.169373 0.870483\n0.758453 0.171265 0.870575\n0.802643 0.173126 0.870667\n0.841766 0.175049 0.870728\n0.876160 0.176697 0.870636\n0.905426 0.177277 0.869507\n0.931152 0.177979 0.868500\n0.953949 0.178711 0.867706\n0.974365 0.179596 0.866821\n0.992706 0.180511 0.866028\n1.000000 0.194672 0.857819\n1.000000 0.218048 0.845490\n0.000000 0.193054 0.851837\n0.021545 0.178833 0.871765\n0.066864 0.178314 0.870544\n0.109589 0.178131 0.869385\n0.149078 0.178009 0.868286\n0.185272 0.178070 0.867523\n0.219177 0.179474 0.867737\n0.250000 0.180847 0.867920\n0.278809 0.182343 0.868103\n0.306152 0.183929 0.868286\n0.333221 0.185547 0.868500\n0.360413 0.186890 0.868622\n0.388702 0.188416 0.868774\n0.418579 0.189880 0.868896\n0.450928 0.191528 0.869019\n0.486145 0.193146 0.869171\n0.524811 0.194763 0.869232\n0.568512 0.196442 0.869324\n0.615814 0.198212 0.869415\n0.665039 0.199951 0.869537\n0.714264 0.201721 0.869629\n0.761536 0.203491 0.869751\n0.804932 0.205292 0.869843\n0.843536 0.207092 0.869934\n0.877136 0.208527 0.869720\n0.905884 0.209076 0.868561\n0.931274 0.209686 0.867645\n0.953827 0.210358 0.866730\n0.973938 0.211060 0.865845\n0.992126 0.211853 0.865021\n1.000000 0.224670 0.857666\n1.000000 0.247284 0.845825\n0.000000 0.224548 0.852386\n0.021515 0.211884 0.872253\n0.066833 0.211456 0.871094\n0.109680 0.211151 0.869873\n0.150238 0.210999 0.868744\n0.187012 0.211121 0.867706\n0.220215 0.211548 0.867065\n0.251404 0.212982 0.867218\n0.280396 0.214508 0.867462\n0.307922 0.215820 0.867615\n0.334808 0.217194 0.867737\n0.362366 0.218658 0.867859\n0.390869 0.220123 0.867981\n0.421295 0.221619 0.868103\n0.454010 0.223206 0.868195\n0.489532 0.224823 0.868317\n0.528656 0.226410 0.868408\n0.572815 0.228119 0.868500\n0.620117 0.229797 0.868652\n0.669189 0.231445 0.868744\n0.718018 0.233154 0.868835\n0.764648 0.234833 0.868927\n0.807281 0.236511 0.868958\n0.845062 0.238220 0.869049\n0.878113 0.239471 0.868683\n0.906403 0.239929 0.867706\n0.931427 0.240448 0.866638\n0.953644 0.241028 0.865845\n0.973541 0.241638 0.865021\n0.991547 0.242279 0.864166\n1.000000 0.253784 0.857452\n1.000000 0.275757 0.845886\n0.000000 0.255066 0.852905\n0.021698 0.244324 0.872833\n0.068237 0.243866 0.871521\n0.112366 0.243713 0.870300\n0.153259 0.243530 0.869141\n0.190216 0.243469 0.868042\n0.223297 0.243744 0.867126\n0.253510 0.244232 0.866547\n0.282349 0.245575 0.866699\n0.309998 0.246918 0.866821\n0.337158 0.248291 0.866974\n0.364960 0.249695 0.867035\n0.393768 0.251251 0.867157\n0.424469 0.252777 0.867310\n0.457581 0.254272 0.867401\n0.493500 0.255859 0.867493\n0.533051 0.257416 0.867584\n0.577454 0.259064 0.867737\n0.624725 0.260651 0.867798\n0.673553 0.262268 0.867828\n0.721893 0.263885 0.867920\n0.767731 0.265472 0.868042\n0.809631 0.267090 0.868073\n0.846802 0.268707 0.868164\n0.879059 0.269775 0.867798\n0.906860 0.270142 0.866699\n0.931519 0.270569 0.865753\n0.953430 0.271027 0.864899\n0.973145 0.271576 0.864014\n0.990967 0.272095 0.863342\n1.000000 0.282227 0.857239\n1.000000 0.303558 0.846191\n0.000000 0.284668 0.854645\n0.024780 0.276154 0.873230\n0.071899 0.275757 0.871857\n0.116547 0.275635 0.870636\n0.157715 0.275574 0.869415\n0.194336 0.275330 0.868347\n0.227112 0.275360 0.867371\n0.256897 0.275635 0.866455\n0.285004 0.276245 0.865936\n0.312714 0.277649 0.865997\n0.340118 0.279053 0.866150\n0.367950 0.280487 0.866241\n0.397064 0.281982 0.866364\n0.428070 0.283447 0.866455\n0.461487 0.284973 0.866516\n0.497742 0.286530 0.866699\n0.537811 0.288055 0.866791\n0.582245 0.289581 0.866821\n0.629547 0.291168 0.866913\n0.677887 0.292694 0.867035\n0.725616 0.294220 0.867065\n0.770660 0.295715 0.867157\n0.811798 0.297211 0.867218\n0.848267 0.298737 0.867310\n0.879852 0.299622 0.866852\n0.907227 0.299927 0.865753\n0.931519 0.300262 0.864746\n0.953156 0.300598 0.863953\n0.972595 0.300995 0.863098\n0.990265 0.301453 0.862335\n1.000000 0.310455 0.856812\n1.000000 0.331116 0.846130\n0.000000 0.313599 0.858582\n0.029877 0.307770 0.873505\n0.077576 0.307587 0.872162\n0.122040 0.307098 0.870880\n0.162781 0.307037 0.869659\n0.199188 0.306885 0.868500\n0.231720 0.307007 0.867554\n0.261322 0.307159 0.866608\n0.289032 0.307526 0.865753\n0.316010 0.308258 0.865173\n0.343353 0.309692 0.865326\n0.371460 0.311066 0.865417\n0.400848 0.312561 0.865479\n0.432098 0.314026 0.865601\n0.465668 0.315491 0.865692\n0.502197 0.316986 0.865784\n0.542633 0.318512 0.865906\n0.587189 0.319977 0.865997\n0.634338 0.321442 0.866028\n0.682312 0.322906 0.866119\n0.729279 0.324371 0.866211\n0.773621 0.325745 0.866272\n0.813782 0.327179 0.866302\n0.849487 0.328552 0.866364\n0.880554 0.329315 0.865906\n0.907471 0.329498 0.864868\n0.931335 0.329742 0.863861\n0.952789 0.330017 0.862946\n0.972076 0.330322 0.862091\n0.989655 0.330658 0.861237\n1.000000 0.338501 0.856445\n1.000000 0.358673 0.846191\n0.000000 0.342773 0.864288\n0.036560 0.339233 0.873718\n0.084015 0.338898 0.872345\n0.128418 0.338562 0.870972\n0.168823 0.338409 0.869781\n0.204834 0.338409 0.868683\n0.237030 0.338684 0.867706\n0.266266 0.338959 0.866760\n0.293823 0.339325 0.865936\n0.320374 0.339722 0.865051\n0.347137 0.340393 0.864441\n0.375336 0.341797 0.864532\n0.404755 0.343262 0.864624\n0.436279 0.344696 0.864716\n0.470245 0.346130 0.864807\n0.506866 0.347504 0.864868\n0.547516 0.348969 0.864929\n0.592194 0.350403 0.865021\n0.638916 0.351746 0.865112\n0.686401 0.353149 0.865204\n0.732727 0.354553 0.865234\n0.776123 0.355835 0.865295\n0.815674 0.357117 0.865326\n0.850586 0.358398 0.865387\n0.881012 0.358948 0.864807\n0.907532 0.359070 0.863861\n0.931183 0.359253 0.862732\n0.952362 0.359497 0.861877\n0.971527 0.359802 0.861053\n0.988953 0.360077 0.860168\n1.000000 0.366730 0.856110\n1.000000 0.386322 0.846161\n0.000000 0.372406 0.870575\n0.044342 0.370850 0.873810\n0.091827 0.370544 0.872437\n0.135986 0.370239 0.871094\n0.175842 0.370209 0.869843\n0.211182 0.370361 0.868774\n0.242798 0.370605 0.867798\n0.271667 0.370941 0.866913\n0.298889 0.371307 0.866028\n0.325317 0.371765 0.865143\n0.351776 0.372162 0.864288\n0.379303 0.372742 0.863617\n0.408997 0.374115 0.863708\n0.440582 0.375549 0.863770\n0.474701 0.376923 0.863861\n0.511536 0.378235 0.863922\n0.552460 0.379639 0.864014\n0.596863 0.380981 0.864105\n0.643250 0.382294 0.864136\n0.690216 0.383545 0.864227\n0.735718 0.384857 0.864227\n0.778290 0.386047 0.864319\n0.816986 0.387207 0.864319\n0.851471 0.388428 0.864410\n0.881348 0.388855 0.863678\n0.907562 0.388947 0.862640\n0.930969 0.389069 0.861633\n0.951935 0.389313 0.860687\n0.970947 0.389526 0.859802\n0.988251 0.389771 0.858948\n1.000000 0.395325 0.855530\n1.000000 0.414368 0.846313\n0.003448 0.403412 0.875366\n0.053467 0.402985 0.873871\n0.100830 0.402649 0.872437\n0.144379 0.402496 0.871124\n0.183411 0.402588 0.869934\n0.217926 0.402740 0.868896\n0.248932 0.402863 0.867859\n0.277283 0.403229 0.866974\n0.304199 0.403687 0.866119\n0.330505 0.404175 0.865265\n0.356903 0.404480 0.864410\n0.384155 0.404846 0.863434\n0.413025 0.405426 0.862701\n0.444885 0.406769 0.862793\n0.479126 0.408081 0.862885\n0.516022 0.409393 0.862976\n0.557068 0.410675 0.863007\n0.601288 0.411926 0.863037\n0.647278 0.413147 0.863068\n0.693451 0.414337 0.863129\n0.738312 0.415527 0.863159\n0.780243 0.416595 0.863220\n0.818207 0.417694 0.863220\n0.852173 0.418793 0.863220\n0.881622 0.419159 0.862457\n0.907501 0.419189 0.861450\n0.930695 0.419312 0.860413\n0.951477 0.419525 0.859528\n0.970306 0.419739 0.858612\n0.987488 0.419952 0.857697\n1.000000 0.424255 0.854889\n1.000000 0.442841 0.846222\n0.014099 0.436096 0.875336\n0.063843 0.435608 0.873871\n0.110626 0.435455 0.872467\n0.153381 0.435333 0.871155\n0.191376 0.435364 0.869965\n0.224976 0.435577 0.868927\n0.255219 0.435913 0.867950\n0.283112 0.436279 0.867065\n0.309692 0.436615 0.866211\n0.335724 0.437134 0.865356\n0.362030 0.437378 0.864441\n0.389282 0.437805 0.863464\n0.417969 0.437958 0.862457\n0.449066 0.438507 0.861664\n0.483368 0.439789 0.861786\n0.520386 0.440979 0.861816\n0.561310 0.442169 0.861877\n0.605255 0.443329 0.861938\n0.650726 0.444427 0.861969\n0.696289 0.445526 0.862061\n0.740570 0.446594 0.862030\n0.781952 0.447662 0.862030\n0.819366 0.448700 0.862000\n0.852814 0.449707 0.862030\n0.881866 0.450012 0.861176\n0.907410 0.450073 0.860107\n0.930328 0.450134 0.859100\n0.950928 0.450317 0.858154\n0.969574 0.450500 0.857208\n0.986664 0.450745 0.856384\n1.000000 0.453918 0.854248\n1.000000 0.471863 0.846191\n0.025848 0.469391 0.875305\n0.075073 0.469147 0.873810\n0.121002 0.468994 0.872375\n0.162720 0.468872 0.871124\n0.199493 0.468933 0.869965\n0.232086 0.469299 0.868958\n0.261566 0.469604 0.867981\n0.288910 0.469879 0.867126\n0.315094 0.470306 0.866272\n0.340881 0.470703 0.865387\n0.367126 0.471100 0.864502\n0.394348 0.471313 0.863495\n0.423004 0.471527 0.862457\n0.453735 0.471558 0.861298\n0.487335 0.472015 0.860626\n0.524231 0.473145 0.860687\n0.565094 0.474274 0.860718\n0.608704 0.475281 0.860748\n0.653748 0.476288 0.860779\n0.699005 0.477356 0.860779\n0.742676 0.478363 0.860748\n0.783508 0.479370 0.860779\n0.820496 0.480377 0.860748\n0.853363 0.481323 0.860687\n0.881927 0.481537 0.859741\n0.907227 0.481537 0.858765\n0.929901 0.481598 0.857605\n0.950287 0.481750 0.856689\n0.968811 0.481995 0.855804\n0.985840 0.482147 0.855042\n1.000000 0.484161 0.853455\n1.000000 0.501587 0.846161\n0.038330 0.503601 0.875153\n0.086823 0.503296 0.873718\n0.131653 0.503326 0.872345\n0.172058 0.503235 0.871094\n0.207520 0.503326 0.869965\n0.239166 0.503571 0.868988\n0.267883 0.503906 0.868011\n0.294617 0.504333 0.867157\n0.320465 0.504639 0.866333\n0.345978 0.504913 0.865417\n0.372040 0.505310 0.864532\n0.399139 0.505463 0.863556\n0.427765 0.505585 0.862488\n0.458405 0.505585 0.861298\n0.491241 0.505432 0.859985\n0.527618 0.505890 0.859375\n0.568390 0.506897 0.859436\n0.611908 0.507935 0.859436\n0.656677 0.508911 0.859406\n0.701538 0.509918 0.859436\n0.744751 0.510895 0.859406\n0.785004 0.511841 0.859344\n0.821381 0.512817 0.859314\n0.853821 0.513763 0.859253\n0.881958 0.513855 0.858307\n0.906982 0.513916 0.857178\n0.929413 0.513916 0.856201\n0.949615 0.514038 0.855286\n0.968048 0.514160 0.854462\n0.984924 0.514343 0.853577\n1.000000 0.515198 0.852600\n1.000000 0.532898 0.846313\n0.051300 0.539978 0.875061\n0.098724 0.539795 0.873596\n0.142334 0.539673 0.872253\n0.181335 0.539703 0.871063\n0.215485 0.539856 0.869934\n0.246033 0.540161 0.868988\n0.273987 0.540375 0.868042\n0.300171 0.540680 0.867188\n0.325562 0.540985 0.866333\n0.350830 0.541321 0.865479\n0.376709 0.541595 0.864563\n0.403656 0.541687 0.863556\n0.432129 0.541687 0.862488\n0.462646 0.541565 0.861237\n0.495544 0.541290 0.859955\n0.531281 0.540894 0.858459\n0.571716 0.541534 0.858032\n0.615112 0.542511 0.858063\n0.659698 0.543518 0.858032\n0.704041 0.544464 0.857971\n0.746674 0.545471 0.857941\n0.786346 0.546417 0.857910\n0.822144 0.547333 0.857788\n0.854095 0.548248 0.857758\n0.881866 0.548279 0.856781\n0.906586 0.548279 0.855743\n0.928802 0.548279 0.854736\n0.948822 0.548340 0.853821\n0.967163 0.548492 0.853027\n0.983887 0.548645 0.852234\n0.999451 0.548859 0.851501\n1.000000 0.566437 0.846313\n0.064362 0.579193 0.874908\n0.110626 0.578857 0.873505\n0.152771 0.578644 0.872131\n0.190186 0.578735 0.870972\n0.223053 0.578796 0.869934\n0.252563 0.579010 0.868958\n0.279755 0.579346 0.868073\n0.305389 0.579407 0.867218\n0.330353 0.579712 0.866364\n0.355286 0.579865 0.865479\n0.380920 0.580078 0.864563\n0.407776 0.580109 0.863525\n0.436249 0.579987 0.862488\n0.466888 0.579803 0.861206\n0.499878 0.579376 0.859802\n0.535767 0.578949 0.858337\n0.575134 0.578369 0.856720\n0.618195 0.579163 0.856537\n0.662354 0.580109 0.856506\n0.706329 0.581116 0.856506\n0.748413 0.581970 0.856384\n0.787476 0.582886 0.856354\n0.822815 0.583862 0.856323\n0.854401 0.584747 0.856293\n0.881683 0.584625 0.855194\n0.906128 0.584564 0.854187\n0.928070 0.584534 0.853271\n0.948059 0.584595 0.852386\n0.966187 0.584717 0.851562\n0.982880 0.584778 0.850769\n0.998383 0.584930 0.850098\n1.000000 0.601562 0.846527\n0.077362 0.620148 0.874725\n0.122101 0.619873 0.873322\n0.162720 0.619659 0.872070\n0.198547 0.619537 0.870911\n0.230133 0.619629 0.869904\n0.258728 0.619781 0.868988\n0.285034 0.619812 0.868073\n0.310181 0.620087 0.867249\n0.334686 0.620148 0.866364\n0.359375 0.620239 0.865479\n0.384918 0.620270 0.864563\n0.411774 0.620148 0.863495\n0.440399 0.619995 0.862366\n0.471100 0.619659 0.861115\n0.504150 0.619141 0.859680\n0.540283 0.618561 0.858154\n0.579651 0.617889 0.856537\n0.621246 0.617401 0.855042\n0.665039 0.618225 0.854950\n0.708557 0.619141 0.854919\n0.750031 0.620026 0.854858\n0.788574 0.620911 0.854828\n0.823364 0.621765 0.854797\n0.854492 0.622620 0.854767\n0.881439 0.622437 0.853668\n0.905609 0.622314 0.852722\n0.927399 0.622223 0.851807\n0.947174 0.622223 0.850922\n0.965210 0.622253 0.850189\n0.981812 0.622284 0.849487\n0.997284 0.622375 0.848816\n1.000000 0.637817 0.846680\n0.089813 0.662292 0.874573\n0.133026 0.662079 0.873230\n0.172028 0.661713 0.871948\n0.206329 0.661499 0.870880\n0.236633 0.661438 0.869873\n0.264252 0.661499 0.868958\n0.289917 0.661499 0.868073\n0.314453 0.661591 0.867218\n0.338776 0.661530 0.866364\n0.363434 0.661560 0.865448\n0.388916 0.661407 0.864471\n0.415894 0.661255 0.863434\n0.444489 0.660919 0.862244\n0.475372 0.660553 0.860962\n0.508423 0.659912 0.859497\n0.544708 0.659210 0.857971\n0.584076 0.658447 0.856323\n0.625275 0.657684 0.854675\n0.667542 0.657257 0.853424\n0.710480 0.658081 0.853394\n0.751526 0.658875 0.853363\n0.789459 0.659729 0.853333\n0.823761 0.660522 0.853302\n0.854462 0.661316 0.853302\n0.881104 0.660980 0.852234\n0.905029 0.660797 0.851227\n0.926605 0.660675 0.850342\n0.946259 0.660553 0.849640\n0.964172 0.660522 0.848907\n0.980743 0.660553 0.848267\n0.996185 0.660614 0.847656\n1.000000 0.675293 0.847229\n0.101532 0.704803 0.874420\n0.143158 0.704468 0.873108\n0.180450 0.703979 0.871857\n0.213257 0.703857 0.870819\n0.242462 0.703644 0.869843\n0.269196 0.703522 0.868927\n0.294342 0.703369 0.868073\n0.318665 0.703308 0.867188\n0.342896 0.703156 0.866302\n0.367432 0.703094 0.865387\n0.392975 0.702850 0.864380\n0.419922 0.702545 0.863251\n0.448639 0.702148 0.862061\n0.479553 0.701660 0.860779\n0.512665 0.700897 0.859253\n0.549072 0.700134 0.857727\n0.588379 0.699280 0.856140\n0.629303 0.698395 0.854492\n0.670868 0.697479 0.852905\n0.712372 0.697205 0.851898\n0.752838 0.697968 0.851868\n0.790222 0.698700 0.851898\n0.824036 0.699432 0.851898\n0.854340 0.700073 0.851807\n0.880646 0.699707 0.850769\n0.904358 0.699432 0.849915\n0.925781 0.699188 0.849121\n0.945282 0.699097 0.848358\n0.963196 0.699005 0.847748\n0.979706 0.699463 0.847260\n0.995056 0.699951 0.846863\n1.000000 0.713043 0.847931\n0.112274 0.746979 0.874237\n0.152222 0.746338 0.872986\n0.187897 0.745880 0.871826\n0.219330 0.745392 0.870728\n0.247772 0.745178 0.869812\n0.273987 0.744965 0.868866\n0.298767 0.744690 0.867950\n0.322876 0.744507 0.867126\n0.346924 0.744324 0.866211\n0.371399 0.744110 0.865204\n0.396942 0.743805 0.864197\n0.423950 0.743347 0.863098\n0.452728 0.742767 0.861847\n0.483612 0.742126 0.860535\n0.516815 0.741455 0.859070\n0.553284 0.740540 0.857544\n0.592499 0.739532 0.855988\n0.633209 0.738525 0.854340\n0.674408 0.737610 0.852783\n0.714844 0.736694 0.851288\n0.753967 0.736511 0.850494\n0.790833 0.737122 0.850494\n0.824219 0.737793 0.850525\n0.854095 0.738281 0.850494\n0.880157 0.737915 0.849487\n0.903687 0.737549 0.848694\n0.924957 0.737274 0.847900\n0.944427 0.737549 0.847412\n0.962219 0.737793 0.846954\n0.978607 0.738129 0.846588\n0.993927 0.738403 0.846222\n1.000000 0.749847 0.848907\n0.121887 0.787415 0.874115\n0.160309 0.786926 0.872864\n0.194672 0.786316 0.871735\n0.225189 0.785858 0.870667\n0.252991 0.785461 0.869690\n0.278717 0.785156 0.868805\n0.303131 0.784821 0.867859\n0.326996 0.784515 0.866943\n0.350922 0.784210 0.866028\n0.375336 0.783783 0.865051\n0.400879 0.783386 0.863983\n0.427856 0.782898 0.862885\n0.456665 0.782166 0.861664\n0.487610 0.781433 0.860352\n0.520813 0.780579 0.858917\n0.557373 0.779572 0.857391\n0.596375 0.778595 0.855804\n0.636871 0.777496 0.854279\n0.677673 0.776520 0.852753\n0.717651 0.775482 0.851257\n0.755646 0.774628 0.849854\n0.791290 0.774445 0.849243\n0.824280 0.775024 0.849335\n0.853790 0.775391 0.849304\n0.879608 0.774933 0.848389\n0.903076 0.774933 0.847717\n0.924255 0.774963 0.847229\n0.943512 0.775024 0.846771\n0.961151 0.775116 0.846375\n0.977539 0.775269 0.846191\n0.992828 0.775421 0.845947\n1.000000 0.785217 0.849884\n0.130524 0.826111 0.873962\n0.167938 0.825165 0.872711\n0.201233 0.824615 0.871552\n0.230927 0.824127 0.870514\n0.258026 0.823547 0.869537\n0.283325 0.823181 0.868622\n0.307404 0.822876 0.867737\n0.331024 0.822357 0.866791\n0.354828 0.821991 0.865814\n0.379150 0.821442 0.864838\n0.404694 0.820984 0.863831\n0.431641 0.820404 0.862732\n0.460480 0.819733 0.861511\n0.491425 0.818939 0.860199\n0.524658 0.817841 0.858765\n0.561188 0.816833 0.857300\n0.600098 0.815704 0.855774\n0.640198 0.814636 0.854218\n0.680634 0.813477 0.852722\n0.720215 0.812469 0.851318\n0.757690 0.811462 0.849976\n0.792297 0.810638 0.848816\n0.824158 0.810425 0.848297\n0.853607 0.811005 0.848358\n0.879272 0.810791 0.847656\n0.902405 0.810638 0.847137\n0.923370 0.810486 0.846680\n0.942474 0.810455 0.846375\n0.960083 0.810394 0.846130\n0.976440 0.810364 0.845947\n0.991791 0.810394 0.845825\n1.000000 0.818573 0.851013\n0.139008 0.861938 0.873749\n0.175354 0.861023 0.872467\n0.207611 0.860291 0.871399\n0.236481 0.859680 0.870361\n0.262970 0.859131 0.869354\n0.287781 0.858765 0.868439\n0.311523 0.858215 0.867493\n0.334961 0.857697 0.866577\n0.358612 0.857269 0.865662\n0.382874 0.856598 0.864685\n0.408386 0.856049 0.863678\n0.435333 0.855438 0.862579\n0.464111 0.854553 0.861359\n0.494995 0.853577 0.860077\n0.528351 0.852631 0.858704\n0.564728 0.851532 0.857208\n0.603455 0.850342 0.855713\n0.643311 0.849213 0.854248\n0.683380 0.848053 0.852814\n0.722504 0.846985 0.851471\n0.759552 0.845947 0.850220\n0.794128 0.845276 0.849243\n0.825226 0.844727 0.848358\n0.853363 0.844452 0.847839\n0.878662 0.844025 0.847260\n0.901550 0.843750 0.846832\n0.922363 0.843475 0.846466\n0.941498 0.843292 0.846222\n0.959076 0.843109 0.846039\n0.975433 0.842987 0.845886\n0.990784 0.842896 0.845734\n1.000000 0.849579 0.852264\n0.146332 0.893616 0.872711\n0.181519 0.892761 0.871399\n0.212830 0.891998 0.870361\n0.240936 0.891357 0.869293\n0.266815 0.890717 0.868286\n0.291199 0.890198 0.867279\n0.314636 0.889618 0.866455\n0.337860 0.889038 0.865479\n0.361328 0.888458 0.864624\n0.385529 0.887817 0.863617\n0.411011 0.887146 0.862579\n0.437927 0.886383 0.861511\n0.466705 0.885498 0.860352\n0.497498 0.884491 0.859070\n0.530792 0.883392 0.857635\n0.567078 0.882263 0.856262\n0.605499 0.881042 0.854797\n0.644989 0.879822 0.853363\n0.684692 0.878632 0.852020\n0.723907 0.877655 0.850769\n0.760864 0.876831 0.849731\n0.794647 0.876099 0.848938\n0.825134 0.875427 0.848145\n0.852997 0.875031 0.847778\n0.878876 0.875397 0.848145\n0.901611 0.874939 0.847778\n0.922333 0.874542 0.847473\n0.941406 0.874268 0.847260\n0.958984 0.873993 0.847107\n0.975342 0.873718 0.846985\n0.990662 0.873535 0.846924\n1.000000 0.877838 0.853455\n0.152985 0.921661 0.871216\n0.187103 0.920776 0.870117\n0.217438 0.919983 0.868958\n0.244812 0.919312 0.867828\n0.270172 0.918640 0.867004\n0.294128 0.918030 0.865997\n0.317322 0.917419 0.865082\n0.340332 0.916809 0.864258\n0.363647 0.916168 0.863342\n0.387848 0.915527 0.862518\n0.413239 0.914795 0.861359\n0.440094 0.913971 0.860382\n0.468842 0.913025 0.859100\n0.499542 0.911987 0.857910\n0.532776 0.910889 0.856537\n0.568909 0.909668 0.855194\n0.607086 0.908478 0.853851\n0.646912 0.907349 0.852631\n0.686584 0.906311 0.851410\n0.724976 0.905334 0.850372\n0.761139 0.904358 0.849457\n0.794434 0.903534 0.848694\n0.824615 0.902802 0.848083\n0.852203 0.902252 0.847748\n0.878082 0.902618 0.848297\n0.901672 0.902985 0.848907\n0.922424 0.902557 0.848724\n0.941467 0.902161 0.848511\n0.959015 0.901764 0.848358\n0.975372 0.901489 0.848297\n0.990662 0.901215 0.848267\n1.000000 0.903473 0.854980\n0.159363 0.946625 0.869873\n0.192383 0.945740 0.868774\n0.221832 0.944977 0.867706\n0.248505 0.944244 0.866699\n0.273346 0.943573 0.865784\n0.296906 0.942932 0.864838\n0.319824 0.942322 0.863983\n0.342651 0.941742 0.863190\n0.365875 0.941010 0.862244\n0.389954 0.940308 0.861328\n0.415253 0.939545 0.860321\n0.442108 0.938690 0.859253\n0.470764 0.937775 0.858215\n0.501434 0.936707 0.856964\n0.534485 0.935577 0.855682\n0.571136 0.934448 0.854492\n0.609528 0.933350 0.853333\n0.648590 0.932190 0.852234\n0.687469 0.931122 0.851196\n0.725159 0.930084 0.850220\n0.760895 0.929047 0.849426\n0.793823 0.928192 0.848755\n0.823853 0.927399 0.848175\n0.851349 0.926788 0.847870\n0.877197 0.927094 0.848480\n0.900787 0.927338 0.849091\n0.922333 0.927582 0.849731\n0.941589 0.927307 0.849792\n0.959167 0.926880 0.849701\n0.975433 0.926544 0.849823\n0.990692 0.926270 0.850006\n1.000000 0.926605 0.856812\n0.165375 0.969055 0.868713\n0.197327 0.968201 0.867523\n0.225922 0.967407 0.866364\n0.252045 0.966675 0.865479\n0.276367 0.966003 0.864685\n0.299500 0.965332 0.863831\n0.322205 0.964722 0.862915\n0.344849 0.964020 0.862122\n0.367920 0.963379 0.861145\n0.391907 0.962677 0.860321\n0.417114 0.961884 0.859436\n0.443848 0.961060 0.858398\n0.472473 0.960052 0.857330\n0.503571 0.959076 0.856354\n0.537140 0.958008 0.855255\n0.573090 0.956879 0.854156\n0.610748 0.955780 0.853119\n0.649200 0.954590 0.852112\n0.687531 0.953461 0.851166\n0.724854 0.952393 0.850342\n0.760345 0.951416 0.849609\n0.793182 0.950500 0.848999\n0.823120 0.949677 0.848480\n0.850586 0.948975 0.848114\n0.876526 0.949158 0.848816\n0.900146 0.949341 0.849396\n0.921783 0.949585 0.850128\n0.941559 0.949799 0.850983\n0.959351 0.949677 0.851501\n0.975586 0.949310 0.851776\n0.990723 0.948975 0.852081\n1.000000 0.947449 0.858856\n0.171051 0.989319 0.867371\n0.201965 0.988464 0.866364\n0.229736 0.987701 0.865356\n0.255280 0.987030 0.864441\n0.279175 0.986328 0.863556\n0.301971 0.985718 0.862762\n0.324341 0.985046 0.861969\n0.346832 0.984406 0.861084\n0.369720 0.983734 0.860382\n0.393585 0.982971 0.859497\n0.418701 0.982239 0.858643\n0.445892 0.981354 0.857758\n0.474945 0.980469 0.856995\n0.505524 0.979462 0.856110\n0.538544 0.978394 0.855164\n0.573975 0.977264 0.854126\n0.611084 0.976166 0.853210\n0.649109 0.975037 0.852264\n0.687195 0.973907 0.851410\n0.724396 0.972778 0.850616\n0.759766 0.971771 0.849915\n0.792633 0.970825 0.849335\n0.822662 0.969971 0.848877\n0.850159 0.969238 0.848511\n0.876129 0.969360 0.849182\n0.899841 0.969482 0.850006\n0.921417 0.969635 0.850983\n0.941101 0.969788 0.851959\n0.959198 0.969940 0.853027\n0.975739 0.969910 0.853851\n0.990784 0.969421 0.854034\n1.000000 0.966400 0.860535\n0.187286 1.000000 0.860138\n0.215942 1.000000 0.859772\n0.241821 1.000000 0.859497\n0.265778 1.000000 0.859222\n0.288177 1.000000 0.858978\n0.309753 1.000000 0.858765\n0.330994 1.000000 0.858612\n0.352356 1.000000 0.858337\n0.374237 1.000000 0.858093\n0.397583 1.000000 0.857941\n0.422119 1.000000 0.857788\n0.447906 1.000000 0.857574\n0.476288 0.999115 0.856781\n0.506439 0.998108 0.856079\n0.538971 0.997070 0.855133\n0.574005 0.995972 0.854309\n0.610870 0.994873 0.853455\n0.648773 0.993713 0.852600\n0.686768 0.992584 0.851776\n0.723999 0.991486 0.850983\n0.759521 0.990448 0.850311\n0.792419 0.989502 0.849701\n0.822601 0.988617 0.849304\n0.850189 0.987854 0.849182\n0.876190 0.987885 0.850067\n0.899750 0.987976 0.851074\n0.921173 0.988007 0.852142\n0.940735 0.988068 0.853241\n0.958771 0.988098 0.854126\n0.975403 0.988190 0.854980\n0.990784 0.988098 0.855621\n1.000000 0.983826 0.861908\n0.216736 1.000000 0.846222\n0.244171 1.000000 0.846313\n0.269012 1.000000 0.846466\n0.292023 1.000000 0.846405\n0.313690 1.000000 0.846619\n0.334625 1.000000 0.846649\n0.355286 1.000000 0.846802\n0.376617 1.000000 0.847015\n0.398438 1.000000 0.847351\n0.420959 1.000000 0.847809\n0.444550 1.000000 0.848328\n0.469452 1.000000 0.848724\n0.496002 1.000000 0.849213\n0.524811 1.000000 0.849792\n0.556488 1.000000 0.850220\n0.590485 1.000000 0.850891\n0.626282 1.000000 0.851440\n0.663055 1.000000 0.852081\n0.699860 1.000000 0.852783\n0.735870 1.000000 0.853363\n0.770142 1.000000 0.853943\n0.801849 1.000000 0.854828\n0.830780 1.000000 0.855713\n0.857025 1.000000 0.856689\n0.880798 1.000000 0.857697\n0.902344 1.000000 0.858765\n0.921967 1.000000 0.859650\n0.939880 1.000000 0.860443\n0.956451 1.000000 0.861176\n0.971863 1.000000 0.861908\n0.986298 1.000000 0.862549\n1.000000 1.000000 0.863068\n0.000000 0.024353 0.885132\n0.021881 0.000000 0.905823\n0.068451 0.000916 0.906586\n0.112518 0.002502 0.906799\n0.153137 0.004089 0.906982\n0.190002 0.005646 0.907196\n0.223114 0.007202 0.907410\n0.252991 0.008698 0.907593\n0.280762 0.010193 0.907745\n0.307190 0.011749 0.907928\n0.332855 0.013275 0.908112\n0.358765 0.014893 0.908234\n0.385651 0.016449 0.908447\n0.413818 0.018066 0.908600\n0.443970 0.019806 0.908691\n0.476929 0.021515 0.908875\n0.513519 0.023315 0.908997\n0.554932 0.025269 0.909088\n0.600861 0.027191 0.909210\n0.649933 0.029266 0.909363\n0.699799 0.031219 0.909454\n0.748657 0.033081 0.909515\n0.794403 0.035126 0.909607\n0.835541 0.037109 0.909698\n0.872009 0.039185 0.909729\n0.903870 0.041351 0.909821\n0.931061 0.042480 0.908936\n0.954895 0.043488 0.908142\n0.976105 0.044617 0.907288\n0.995117 0.045837 0.906464\n1.000000 0.065826 0.894226\n1.000000 0.092041 0.879303\n0.000000 0.059326 0.886108\n0.020416 0.036194 0.906219\n0.066620 0.037109 0.905914\n0.110626 0.038574 0.906158\n0.151764 0.040039 0.906342\n0.188721 0.041473 0.906555\n0.221832 0.042969 0.906738\n0.251831 0.044403 0.906891\n0.279572 0.045837 0.907104\n0.305969 0.047363 0.907227\n0.331696 0.048859 0.907410\n0.357574 0.050446 0.907562\n0.384399 0.051971 0.907684\n0.412872 0.053650 0.907837\n0.443817 0.055420 0.907990\n0.477356 0.057220 0.908112\n0.514343 0.059082 0.908203\n0.556366 0.061127 0.908356\n0.602661 0.062927 0.908447\n0.651550 0.064728 0.908539\n0.701569 0.066589 0.908600\n0.750305 0.068512 0.908630\n0.795898 0.070496 0.908722\n0.836548 0.072571 0.908813\n0.872528 0.074646 0.908875\n0.904175 0.076782 0.908936\n0.931030 0.077820 0.908142\n0.954620 0.078857 0.907288\n0.975616 0.079987 0.906311\n0.994476 0.081116 0.905457\n1.000000 0.099609 0.894196\n1.000000 0.125122 0.879700\n0.000000 0.094543 0.886322\n0.019867 0.072876 0.906738\n0.065186 0.072723 0.905548\n0.109253 0.073822 0.905457\n0.150269 0.075134 0.905670\n0.187347 0.076508 0.905853\n0.220612 0.077911 0.906036\n0.250458 0.079285 0.906189\n0.278351 0.080780 0.906372\n0.304688 0.082275 0.906525\n0.330536 0.083710 0.906677\n0.356842 0.085358 0.906830\n0.384094 0.086914 0.906952\n0.413177 0.088684 0.907074\n0.444550 0.090454 0.907227\n0.478546 0.092346 0.907349\n0.516022 0.094177 0.907440\n0.558289 0.095825 0.907532\n0.604889 0.097595 0.907623\n0.654022 0.099426 0.907654\n0.703857 0.101318 0.907745\n0.752533 0.103210 0.907837\n0.797546 0.105255 0.907867\n0.837799 0.107208 0.907928\n0.873352 0.109283 0.907990\n0.904602 0.111389 0.908081\n0.931122 0.112366 0.907166\n0.954468 0.113312 0.906311\n0.975189 0.114410 0.905334\n0.993896 0.115448 0.904694\n1.000000 0.132507 0.893951\n1.000000 0.157196 0.879852\n0.000000 0.128418 0.886597\n0.019836 0.108704 0.907196\n0.065155 0.108490 0.905975\n0.107910 0.108124 0.904785\n0.148987 0.109375 0.904999\n0.186035 0.110779 0.905182\n0.219208 0.112091 0.905396\n0.249237 0.113464 0.905487\n0.277039 0.114960 0.905640\n0.303894 0.116425 0.905823\n0.330261 0.117981 0.905945\n0.356995 0.119598 0.906067\n0.384644 0.121277 0.906219\n0.414185 0.123047 0.906342\n0.445801 0.124817 0.906433\n0.480164 0.126343 0.906525\n0.518097 0.128052 0.906586\n0.560852 0.129822 0.906677\n0.607697 0.131561 0.906769\n0.656982 0.133423 0.906799\n0.706909 0.135345 0.906891\n0.755035 0.137207 0.906952\n0.799683 0.139160 0.907013\n0.839325 0.141083 0.907043\n0.874390 0.143127 0.907104\n0.905029 0.145111 0.907166\n0.931213 0.145966 0.906311\n0.954285 0.146881 0.905426\n0.974823 0.147827 0.904358\n0.993317 0.148804 0.903748\n1.000000 0.164398 0.893921\n1.000000 0.188416 0.880035\n0.000000 0.161316 0.887054\n0.019836 0.143585 0.907654\n0.065125 0.143341 0.906433\n0.107880 0.142853 0.905273\n0.147675 0.142883 0.904266\n0.184845 0.144226 0.904480\n0.217865 0.145599 0.904602\n0.248444 0.146942 0.904785\n0.276794 0.148438 0.904938\n0.304077 0.149963 0.905060\n0.330872 0.151550 0.905182\n0.357971 0.153259 0.905304\n0.386017 0.154846 0.905426\n0.415680 0.156372 0.905518\n0.447754 0.158020 0.905579\n0.482605 0.159576 0.905670\n0.520782 0.161316 0.905762\n0.564117 0.163055 0.905823\n0.611206 0.164795 0.905884\n0.660492 0.166656 0.905945\n0.709930 0.168457 0.906006\n0.757843 0.170319 0.906036\n0.801849 0.172241 0.906128\n0.840820 0.174103 0.906189\n0.875336 0.175995 0.906250\n0.905609 0.177917 0.906311\n0.931366 0.178650 0.905334\n0.954102 0.179443 0.904358\n0.974426 0.180298 0.903595\n0.992737 0.181183 0.902740\n1.000000 0.195374 0.893707\n1.000000 0.218597 0.880066\n0.000000 0.193481 0.887482\n0.019806 0.177551 0.908112\n0.065125 0.177338 0.906830\n0.107880 0.177002 0.905701\n0.147430 0.176697 0.904541\n0.183990 0.176971 0.903748\n0.217957 0.178375 0.903900\n0.248840 0.179779 0.904022\n0.277649 0.181305 0.904175\n0.305267 0.182892 0.904266\n0.332245 0.184418 0.904419\n0.359558 0.185883 0.904541\n0.387756 0.187317 0.904572\n0.417847 0.188934 0.904663\n0.450317 0.190521 0.904755\n0.485535 0.192139 0.904816\n0.524323 0.193787 0.904907\n0.568054 0.195526 0.904968\n0.615234 0.197205 0.905029\n0.664551 0.199036 0.905060\n0.713684 0.200745 0.905151\n0.760742 0.202576 0.905212\n0.804138 0.204346 0.905273\n0.842590 0.206116 0.905273\n0.876373 0.207977 0.905334\n0.906189 0.209717 0.905396\n0.931488 0.210327 0.904419\n0.953918 0.210999 0.903473\n0.974030 0.211761 0.902618\n0.992157 0.212463 0.901825\n1.000000 0.225281 0.893677\n1.000000 0.247833 0.880310\n0.000000 0.224670 0.887878\n0.019745 0.210754 0.908478\n0.065094 0.210327 0.907227\n0.108459 0.210236 0.906006\n0.149078 0.210022 0.904877\n0.185913 0.210022 0.903809\n0.219269 0.210449 0.903168\n0.250427 0.211914 0.903290\n0.279358 0.213409 0.903442\n0.306885 0.214722 0.903473\n0.333954 0.216125 0.903595\n0.361572 0.217651 0.903687\n0.390137 0.219086 0.903748\n0.420654 0.220673 0.903839\n0.453491 0.222260 0.903931\n0.489014 0.223816 0.903992\n0.528442 0.225464 0.904053\n0.572235 0.227142 0.904083\n0.619629 0.228821 0.904205\n0.668671 0.230530 0.904236\n0.717438 0.232178 0.904266\n0.763885 0.233917 0.904297\n0.806427 0.235626 0.904358\n0.844116 0.237244 0.904419\n0.877502 0.238922 0.904419\n0.906738 0.240540 0.904388\n0.931641 0.241058 0.903351\n0.953766 0.241638 0.902618\n0.973602 0.242188 0.901703\n0.991577 0.242828 0.900970\n1.000000 0.254364 0.893341\n1.000000 0.276245 0.880463\n0.000000 0.255127 0.888275\n0.020416 0.243195 0.908844\n0.067139 0.242798 0.907562\n0.111389 0.242645 0.906311\n0.152283 0.242432 0.905151\n0.189331 0.242401 0.904053\n0.222382 0.242584 0.903076\n0.252594 0.243164 0.902496\n0.281433 0.244476 0.902588\n0.309113 0.245850 0.902679\n0.336426 0.247314 0.902740\n0.364288 0.248749 0.902832\n0.393127 0.250244 0.902924\n0.423981 0.251770 0.903015\n0.457062 0.253357 0.903076\n0.493042 0.254913 0.903107\n0.532806 0.256531 0.903198\n0.577057 0.258118 0.903259\n0.624420 0.259766 0.903320\n0.673157 0.261383 0.903320\n0.721191 0.262970 0.903381\n0.767029 0.264557 0.903442\n0.808777 0.266174 0.903442\n0.845734 0.267731 0.903534\n0.878418 0.269318 0.903564\n0.907166 0.270721 0.903412\n0.931671 0.271088 0.902588\n0.953522 0.271576 0.901550\n0.973145 0.272034 0.900757\n0.990967 0.272583 0.899933\n1.000000 0.282745 0.893250\n1.000000 0.303986 0.880554\n0.000000 0.284576 0.890411\n0.023895 0.275085 0.909119\n0.071198 0.274719 0.907776\n0.115784 0.274445 0.906525\n0.156952 0.274445 0.905334\n0.193634 0.274323 0.904205\n0.226288 0.274384 0.903229\n0.256165 0.274567 0.902313\n0.284302 0.275269 0.901733\n0.312042 0.276642 0.901855\n0.339417 0.278076 0.901917\n0.367340 0.279541 0.902039\n0.396576 0.281036 0.902100\n0.427582 0.282501 0.902130\n0.461121 0.284027 0.902161\n0.497375 0.285583 0.902252\n0.537628 0.287140 0.902313\n0.581909 0.288635 0.902344\n0.629059 0.290192 0.902405\n0.677429 0.291779 0.902466\n0.724945 0.293274 0.902496\n0.770081 0.294800 0.902557\n0.810974 0.296326 0.902588\n0.847198 0.297729 0.902588\n0.879272 0.299225 0.902649\n0.907440 0.300415 0.902435\n0.931641 0.300751 0.901581\n0.953247 0.301086 0.900696\n0.972687 0.301514 0.899780\n0.990326 0.301880 0.899109\n1.000000 0.310913 0.892883\n1.000000 0.331512 0.880646\n0.000000 0.313202 0.894440\n0.029297 0.306702 0.909302\n0.077057 0.306335 0.907928\n0.121490 0.306061 0.906647\n0.162231 0.305847 0.905426\n0.198639 0.305786 0.904297\n0.231079 0.305908 0.903320\n0.260712 0.306244 0.902435\n0.288391 0.306519 0.901550\n0.315399 0.307281 0.901001\n0.342896 0.308716 0.901062\n0.370941 0.310181 0.901093\n0.400360 0.311646 0.901154\n0.431732 0.313141 0.901245\n0.465363 0.314606 0.901306\n0.501862 0.316071 0.901337\n0.542389 0.317596 0.901398\n0.586884 0.319031 0.901459\n0.633881 0.320526 0.901489\n0.681702 0.321991 0.901520\n0.728607 0.323425 0.901581\n0.772858 0.324860 0.901611\n0.812988 0.326233 0.901642\n0.848450 0.327576 0.901672\n0.880005 0.328949 0.901703\n0.907654 0.329926 0.901520\n0.931519 0.330170 0.900543\n0.952850 0.330444 0.899689\n0.972137 0.330780 0.898773\n0.989685 0.331116 0.897949\n1.000000 0.338959 0.892578\n1.000000 0.359039 0.880646\n0.000000 0.342163 0.899902\n0.036072 0.338257 0.909393\n0.083740 0.337799 0.908020\n0.128052 0.337555 0.906708\n0.168518 0.337433 0.905487\n0.204437 0.337433 0.904388\n0.236481 0.337677 0.903412\n0.265778 0.337921 0.902496\n0.293243 0.338318 0.901642\n0.319794 0.338715 0.900757\n0.346558 0.339478 0.900146\n0.374725 0.340851 0.900208\n0.404388 0.342285 0.900269\n0.435974 0.343750 0.900330\n0.469849 0.345154 0.900391\n0.506592 0.346619 0.900421\n0.547394 0.348083 0.900452\n0.591766 0.349457 0.900513\n0.638519 0.350861 0.900543\n0.685852 0.352234 0.900543\n0.731995 0.353577 0.900604\n0.775299 0.354919 0.900635\n0.814728 0.356201 0.900665\n0.849609 0.357422 0.900665\n0.880554 0.358643 0.900696\n0.907684 0.359497 0.900452\n0.931335 0.359711 0.899414\n0.952484 0.359955 0.898621\n0.971558 0.360168 0.897675\n0.989014 0.360443 0.896851\n1.000000 0.367188 0.892212\n1.000000 0.386719 0.880707\n0.000000 0.371429 0.906158\n0.044220 0.369965 0.909393\n0.091827 0.369629 0.908020\n0.135773 0.369324 0.906708\n0.175659 0.369293 0.905518\n0.210907 0.369415 0.904419\n0.242340 0.369568 0.903473\n0.271210 0.369995 0.902527\n0.298431 0.370270 0.901672\n0.324799 0.370697 0.900818\n0.351318 0.371277 0.899902\n0.378754 0.371826 0.899261\n0.408600 0.373260 0.899323\n0.440216 0.374634 0.899353\n0.474304 0.375977 0.899384\n0.511230 0.377380 0.899414\n0.552277 0.378754 0.899475\n0.596405 0.380066 0.899475\n0.642853 0.381378 0.899536\n0.689545 0.382629 0.899567\n0.734985 0.383911 0.899628\n0.777496 0.385101 0.899597\n0.815948 0.386261 0.899658\n0.850372 0.387390 0.899658\n0.880890 0.388580 0.899658\n0.907715 0.389343 0.899384\n0.931122 0.389465 0.898315\n0.952057 0.389679 0.897369\n0.971008 0.389893 0.896576\n0.988251 0.390198 0.895660\n1.000000 0.395691 0.891815\n1.000000 0.414703 0.880615\n0.003510 0.402405 0.910828\n0.053711 0.402069 0.909363\n0.100952 0.401672 0.907990\n0.144318 0.401550 0.906708\n0.183350 0.401550 0.905457\n0.217743 0.401642 0.904419\n0.248505 0.402008 0.903442\n0.276917 0.402344 0.902557\n0.303741 0.402832 0.901703\n0.329956 0.403259 0.900818\n0.356415 0.403595 0.899902\n0.383636 0.403961 0.898987\n0.412750 0.404541 0.898254\n0.444550 0.405914 0.898285\n0.478882 0.407166 0.898376\n0.515839 0.408478 0.898376\n0.556824 0.409790 0.898438\n0.600922 0.411041 0.898438\n0.646759 0.412231 0.898468\n0.692841 0.413422 0.898499\n0.737396 0.414551 0.898529\n0.779266 0.415680 0.898560\n0.817261 0.416718 0.898560\n0.851074 0.417786 0.898560\n0.881287 0.418915 0.898529\n0.907684 0.419586 0.898132\n0.930847 0.419739 0.897156\n0.951569 0.419861 0.896179\n0.970337 0.420074 0.895294\n0.987518 0.420319 0.894501\n1.000000 0.424683 0.891327\n1.000000 0.443146 0.880646\n0.014404 0.434967 0.910767\n0.064301 0.434631 0.909302\n0.110931 0.434601 0.907867\n0.153442 0.434387 0.906616\n0.191345 0.434479 0.905457\n0.224792 0.434784 0.904419\n0.254822 0.435028 0.903473\n0.282715 0.435364 0.902557\n0.309174 0.435822 0.901703\n0.335236 0.436157 0.900848\n0.361572 0.436615 0.899933\n0.388794 0.436829 0.898987\n0.417603 0.437073 0.897980\n0.448792 0.437622 0.897217\n0.483063 0.438843 0.897278\n0.520050 0.440094 0.897278\n0.560944 0.441254 0.897308\n0.604706 0.442444 0.897339\n0.649994 0.443542 0.897400\n0.695557 0.444580 0.897369\n0.739655 0.445679 0.897400\n0.781067 0.446716 0.897400\n0.818298 0.447754 0.897369\n0.851746 0.448792 0.897308\n0.881439 0.449829 0.897278\n0.907623 0.450409 0.896820\n0.930450 0.450531 0.895844\n0.951050 0.450653 0.894928\n0.969635 0.450806 0.894104\n0.986694 0.451050 0.893341\n1.000000 0.454193 0.890808\n1.000000 0.472198 0.880707\n0.026367 0.468414 0.910583\n0.075653 0.468231 0.909149\n0.121429 0.468018 0.907776\n0.162781 0.468048 0.906555\n0.199493 0.468048 0.905396\n0.231842 0.468414 0.904327\n0.261230 0.468597 0.903412\n0.288544 0.468933 0.902557\n0.314636 0.469452 0.901672\n0.340454 0.469788 0.900818\n0.366638 0.470062 0.899933\n0.393829 0.470428 0.898956\n0.422546 0.470551 0.897919\n0.453339 0.470612 0.896759\n0.486938 0.471130 0.896118\n0.523804 0.472198 0.896118\n0.564575 0.473358 0.896179\n0.608032 0.474365 0.896149\n0.653168 0.475403 0.896179\n0.698151 0.476379 0.896179\n0.741821 0.477417 0.896149\n0.782562 0.478455 0.896088\n0.819427 0.479401 0.896057\n0.852325 0.480408 0.896027\n0.881653 0.481384 0.895966\n0.907440 0.481903 0.895447\n0.930054 0.481995 0.894531\n0.950409 0.482147 0.893646\n0.968903 0.482269 0.892792\n0.985870 0.482452 0.891937\n1.000000 0.484436 0.890228\n1.000000 0.501862 0.880615\n0.038940 0.502655 0.910431\n0.087494 0.502502 0.909027\n0.132080 0.502411 0.907684\n0.172180 0.502350 0.906403\n0.207520 0.502502 0.905334\n0.238892 0.502747 0.904327\n0.267517 0.503021 0.903381\n0.294250 0.503418 0.902527\n0.319946 0.503754 0.901672\n0.345520 0.504150 0.900818\n0.371552 0.504456 0.899902\n0.398621 0.504639 0.898926\n0.427277 0.504700 0.897888\n0.457916 0.504700 0.896698\n0.490753 0.504486 0.895447\n0.527191 0.505005 0.894867\n0.567871 0.506012 0.894897\n0.611328 0.506958 0.894897\n0.656128 0.507996 0.894867\n0.700836 0.508942 0.894836\n0.743958 0.509918 0.894775\n0.784058 0.510925 0.894745\n0.820312 0.511841 0.894684\n0.852722 0.512817 0.894653\n0.881775 0.513733 0.894623\n0.907135 0.514160 0.894104\n0.929504 0.514252 0.893158\n0.949707 0.514343 0.892242\n0.968048 0.514496 0.891388\n0.984924 0.514679 0.890533\n1.000000 0.515503 0.889496\n1.000000 0.533234 0.880646\n0.052002 0.539124 0.910217\n0.099335 0.538910 0.908813\n0.142761 0.538788 0.907501\n0.181366 0.538849 0.906311\n0.215424 0.538879 0.905243\n0.245728 0.539124 0.904266\n0.273529 0.539520 0.903351\n0.299744 0.539856 0.902527\n0.325012 0.540039 0.901703\n0.350342 0.540375 0.900787\n0.376129 0.540680 0.899872\n0.403046 0.540680 0.898895\n0.431549 0.540649 0.897858\n0.462128 0.540588 0.896637\n0.495026 0.540283 0.895355\n0.530823 0.539886 0.893890\n0.571350 0.540588 0.893524\n0.614471 0.541534 0.893494\n0.659027 0.542542 0.893433\n0.703217 0.543488 0.893402\n0.745758 0.544434 0.893372\n0.785400 0.545380 0.893311\n0.821045 0.546295 0.893280\n0.853088 0.547272 0.893250\n0.881622 0.548187 0.893188\n0.906769 0.548615 0.892639\n0.928894 0.548615 0.891693\n0.948944 0.548706 0.890808\n0.967194 0.548798 0.890015\n0.983917 0.548981 0.889160\n0.999451 0.549133 0.888489\n1.000000 0.566681 0.880768\n0.065125 0.578186 0.910034\n0.111237 0.577789 0.908661\n0.153107 0.577789 0.907349\n0.190125 0.577728 0.906219\n0.222931 0.577850 0.905151\n0.252228 0.578003 0.904236\n0.279266 0.578247 0.903351\n0.304871 0.578491 0.902466\n0.329712 0.578796 0.901672\n0.354706 0.578857 0.900757\n0.380310 0.579010 0.899872\n0.407135 0.579071 0.898865\n0.435699 0.578979 0.897797\n0.466370 0.578735 0.896545\n0.499329 0.578400 0.895203\n0.535339 0.577881 0.893738\n0.574615 0.577301 0.892181\n0.617615 0.578156 0.892029\n0.661774 0.579132 0.891998\n0.705475 0.580017 0.891937\n0.747528 0.580933 0.891907\n0.786560 0.581879 0.891876\n0.821747 0.582764 0.891846\n0.853241 0.583679 0.891785\n0.881531 0.584595 0.891754\n0.906311 0.584930 0.891144\n0.928223 0.584900 0.890259\n0.948090 0.584900 0.889465\n0.966217 0.585022 0.888641\n0.982910 0.585144 0.887878\n0.998383 0.585266 0.887207\n1.000000 0.601868 0.880890\n0.077972 0.619080 0.909821\n0.122681 0.618774 0.908478\n0.162811 0.618591 0.907196\n0.198456 0.618469 0.906097\n0.229919 0.618622 0.905121\n0.258270 0.618713 0.904175\n0.284515 0.618896 0.903320\n0.309570 0.618988 0.902466\n0.334015 0.619110 0.901642\n0.358734 0.619080 0.900726\n0.384338 0.619141 0.899811\n0.411194 0.619080 0.898743\n0.439850 0.618835 0.897675\n0.470551 0.618561 0.896423\n0.503601 0.618073 0.895050\n0.539764 0.617493 0.893555\n0.579071 0.616852 0.891998\n0.620605 0.616272 0.890564\n0.664368 0.617157 0.890503\n0.707611 0.618011 0.890472\n0.749176 0.618896 0.890442\n0.787567 0.619781 0.890411\n0.822235 0.620667 0.890381\n0.853394 0.621521 0.890350\n0.881317 0.622406 0.890320\n0.905762 0.622620 0.889679\n0.927490 0.622559 0.888885\n0.947235 0.622498 0.888000\n0.965240 0.622528 0.887299\n0.981842 0.622589 0.886505\n0.997284 0.622711 0.885834\n1.000000 0.638123 0.881073\n0.090332 0.661224 0.909576\n0.133423 0.660919 0.908264\n0.172028 0.660553 0.907104\n0.206024 0.660370 0.905975\n0.236328 0.660492 0.905029\n0.263672 0.660370 0.904114\n0.289246 0.660400 0.903290\n0.313812 0.660400 0.902405\n0.338074 0.660431 0.901550\n0.362793 0.660370 0.900635\n0.388336 0.660278 0.899719\n0.415253 0.660095 0.898682\n0.443970 0.659821 0.897522\n0.474792 0.659424 0.896271\n0.507935 0.658752 0.894867\n0.544250 0.658081 0.893372\n0.583466 0.657318 0.891815\n0.624664 0.656464 0.890259\n0.666840 0.656128 0.889038\n0.709656 0.656921 0.889008\n0.750580 0.657745 0.888977\n0.788452 0.658539 0.888947\n0.822601 0.659363 0.888916\n0.853363 0.660156 0.888916\n0.880920 0.660950 0.888916\n0.905151 0.661072 0.888245\n0.926727 0.660919 0.887451\n0.946289 0.660858 0.886597\n0.964233 0.660828 0.885986\n0.980743 0.660828 0.885315\n0.996185 0.661102 0.884735\n1.000000 0.675842 0.881531\n0.101868 0.703735 0.909424\n0.143372 0.703217 0.908112\n0.180298 0.702759 0.906952\n0.212891 0.702545 0.905884\n0.241974 0.702454 0.904968\n0.268585 0.702393 0.904053\n0.293732 0.702301 0.903198\n0.318054 0.702179 0.902313\n0.342133 0.702026 0.901489\n0.366791 0.701843 0.900543\n0.392334 0.701660 0.899567\n0.419281 0.701324 0.898499\n0.448120 0.700928 0.897339\n0.478973 0.700317 0.896088\n0.512146 0.699768 0.894684\n0.548584 0.698944 0.893188\n0.587677 0.697998 0.891663\n0.628601 0.697205 0.890106\n0.670105 0.696259 0.888550\n0.711456 0.696045 0.887573\n0.751862 0.696777 0.887543\n0.789246 0.697540 0.887543\n0.822876 0.698181 0.887543\n0.853241 0.698975 0.887543\n0.880554 0.699646 0.887573\n0.904449 0.699646 0.886932\n0.925903 0.699493 0.886169\n0.945343 0.699310 0.885437\n0.963196 0.699463 0.884857\n0.979706 0.700012 0.884338\n0.995056 0.700378 0.883820\n1.000000 0.713470 0.882141\n0.112488 0.745544 0.909210\n0.152283 0.745056 0.907959\n0.187592 0.744476 0.906860\n0.218903 0.744293 0.905823\n0.247253 0.743958 0.904846\n0.273376 0.743744 0.903961\n0.298157 0.743469 0.903107\n0.322235 0.743408 0.902222\n0.346222 0.743103 0.901337\n0.370789 0.742828 0.900391\n0.396271 0.742523 0.899384\n0.423309 0.742096 0.898346\n0.452179 0.741608 0.897186\n0.483063 0.740967 0.895905\n0.516266 0.740112 0.894501\n0.552734 0.739227 0.893036\n0.591797 0.738312 0.891510\n0.632477 0.737274 0.889954\n0.673584 0.736328 0.888397\n0.713867 0.735474 0.886932\n0.752930 0.735291 0.886200\n0.789764 0.735931 0.886200\n0.823059 0.736542 0.886230\n0.853058 0.737213 0.886261\n0.880066 0.737885 0.886383\n0.903748 0.737793 0.885773\n0.925079 0.737732 0.885101\n0.944458 0.737976 0.884430\n0.962219 0.738220 0.883942\n0.978638 0.738525 0.883514\n0.993927 0.738800 0.883148\n1.000000 0.750214 0.882874\n0.121857 0.786194 0.909058\n0.160156 0.785492 0.907806\n0.194305 0.785034 0.906708\n0.224792 0.784546 0.905670\n0.252472 0.784149 0.904724\n0.278076 0.783813 0.903839\n0.302490 0.783478 0.902954\n0.326263 0.783295 0.902100\n0.350220 0.782867 0.901184\n0.374695 0.782593 0.900238\n0.400146 0.782074 0.899261\n0.427246 0.781555 0.898193\n0.456085 0.780914 0.897034\n0.486969 0.780212 0.895721\n0.520264 0.779358 0.894348\n0.556702 0.778351 0.892883\n0.595673 0.777344 0.891357\n0.636078 0.776245 0.889832\n0.676788 0.775177 0.888336\n0.716705 0.774231 0.886902\n0.754547 0.773285 0.885590\n0.790161 0.773193 0.884949\n0.823059 0.773743 0.885040\n0.852753 0.774323 0.885132\n0.879578 0.775055 0.885223\n0.903168 0.775269 0.884796\n0.924347 0.775269 0.884186\n0.943542 0.775360 0.883698\n0.961182 0.775452 0.883270\n0.977509 0.775604 0.882904\n0.992828 0.775696 0.882629\n1.000000 0.785522 0.883636\n0.130585 0.824677 0.908844\n0.167786 0.823914 0.907623\n0.200836 0.823242 0.906555\n0.230499 0.822723 0.905518\n0.257538 0.822266 0.904572\n0.282684 0.821899 0.903687\n0.306732 0.821625 0.902802\n0.330292 0.821106 0.901917\n0.354095 0.820648 0.901001\n0.378510 0.820312 0.900085\n0.403961 0.819733 0.899109\n0.431030 0.819153 0.898041\n0.459900 0.818451 0.896881\n0.490753 0.817535 0.895599\n0.524109 0.816620 0.894196\n0.560516 0.815582 0.892761\n0.599304 0.814392 0.891235\n0.639404 0.813263 0.889771\n0.679688 0.812256 0.888336\n0.719147 0.811157 0.886932\n0.756592 0.810211 0.885651\n0.791107 0.809357 0.884491\n0.823090 0.809235 0.883972\n0.852661 0.810089 0.884186\n0.879211 0.810852 0.884491\n0.902496 0.810913 0.884064\n0.923370 0.810791 0.883606\n0.942505 0.810699 0.883148\n0.960083 0.810638 0.882782\n0.976440 0.810608 0.882507\n0.991760 0.810638 0.882141\n1.000000 0.818878 0.884491\n0.138977 0.860565 0.908630\n0.175171 0.859680 0.907440\n0.207153 0.859009 0.906342\n0.236023 0.858429 0.905365\n0.262329 0.857849 0.904388\n0.287079 0.857330 0.903503\n0.310852 0.856934 0.902618\n0.334198 0.856506 0.901764\n0.357880 0.855927 0.900879\n0.382233 0.855408 0.899933\n0.407654 0.854797 0.898956\n0.434631 0.854034 0.897888\n0.463501 0.853241 0.896729\n0.494324 0.852356 0.895477\n0.527679 0.851318 0.894073\n0.563934 0.850189 0.892670\n0.602600 0.849060 0.891235\n0.642426 0.847900 0.889771\n0.682343 0.846741 0.888367\n0.721375 0.845642 0.887085\n0.758575 0.844727 0.885834\n0.792999 0.844086 0.884857\n0.824036 0.843567 0.884003\n0.852325 0.843475 0.883545\n0.878540 0.844055 0.883881\n0.901611 0.843964 0.883575\n0.922363 0.843719 0.883118\n0.941498 0.843475 0.882751\n0.959045 0.843323 0.882416\n0.975433 0.843170 0.882141\n0.990784 0.843109 0.881897\n1.000000 0.849823 0.885437\n0.147247 0.893097 0.908356\n0.182220 0.892242 0.907196\n0.213257 0.891449 0.906128\n0.241302 0.890869 0.905151\n0.267090 0.890289 0.904236\n0.291412 0.889648 0.903351\n0.314850 0.889191 0.902496\n0.338013 0.888702 0.901642\n0.361511 0.888123 0.900757\n0.385773 0.887421 0.899841\n0.411163 0.886780 0.898804\n0.438080 0.886017 0.897766\n0.466919 0.885132 0.896606\n0.497681 0.884186 0.895386\n0.530975 0.883057 0.894043\n0.567200 0.881958 0.892670\n0.605621 0.880768 0.891266\n0.645081 0.879547 0.889893\n0.684875 0.878448 0.888580\n0.724060 0.877533 0.887421\n0.760803 0.876617 0.886322\n0.794403 0.875916 0.885406\n0.824921 0.875244 0.884613\n0.852539 0.874664 0.883972\n0.877655 0.874329 0.883545\n0.900635 0.874084 0.883240\n0.921417 0.873688 0.882812\n0.940460 0.873413 0.882507\n0.958099 0.873169 0.882233\n0.974487 0.872925 0.881989\n0.989838 0.872711 0.881805\n1.000000 0.878082 0.886353\n0.154449 0.921722 0.907654\n0.188354 0.920807 0.906403\n0.218445 0.920044 0.905396\n0.245758 0.919342 0.904449\n0.270996 0.918701 0.903412\n0.294830 0.918091 0.902618\n0.317993 0.917480 0.901703\n0.340942 0.916840 0.900879\n0.364288 0.916260 0.899994\n0.388458 0.915588 0.899048\n0.413788 0.914856 0.898071\n0.440674 0.914001 0.897064\n0.469360 0.913086 0.895874\n0.500061 0.912079 0.894775\n0.533325 0.910889 0.893402\n0.569366 0.909729 0.892059\n0.607758 0.908569 0.890778\n0.647583 0.907471 0.889526\n0.687042 0.906433 0.888306\n0.725250 0.905426 0.887238\n0.761383 0.904480 0.886230\n0.794556 0.903687 0.885437\n0.824677 0.902924 0.884644\n0.852112 0.902252 0.884094\n0.876984 0.901703 0.883545\n0.900330 0.901794 0.883728\n0.921143 0.901398 0.883392\n0.940247 0.901001 0.883148\n0.957855 0.900665 0.882904\n0.974213 0.900360 0.882629\n0.989594 0.900116 0.882538\n1.000000 0.903687 0.887543\n0.160767 0.946655 0.906281\n0.193481 0.945740 0.905182\n0.222778 0.945007 0.904205\n0.249451 0.944305 0.903168\n0.274109 0.943604 0.902283\n0.297607 0.942993 0.901398\n0.320465 0.942352 0.900574\n0.343262 0.941742 0.899811\n0.366486 0.941071 0.898865\n0.390533 0.940369 0.898041\n0.415833 0.939575 0.897064\n0.442657 0.938721 0.896088\n0.471222 0.937775 0.894958\n0.501862 0.936737 0.893799\n0.535156 0.935608 0.892548\n0.571747 0.934509 0.891327\n0.610016 0.933411 0.890198\n0.648987 0.932312 0.889008\n0.687744 0.931183 0.887909\n0.725372 0.930176 0.886932\n0.760986 0.929169 0.885986\n0.793884 0.928253 0.885193\n0.823914 0.927490 0.884552\n0.851227 0.926788 0.884003\n0.876190 0.926117 0.883484\n0.899506 0.926117 0.883728\n0.921112 0.926422 0.884186\n0.940399 0.926147 0.884125\n0.958008 0.925812 0.883911\n0.974365 0.925507 0.883881\n0.989655 0.925262 0.883942\n1.000000 0.926727 0.888977\n0.166687 0.969055 0.905121\n0.198395 0.968201 0.903900\n0.226837 0.967407 0.902954\n0.252869 0.966675 0.902039\n0.277069 0.966034 0.901215\n0.300201 0.965363 0.900360\n0.322845 0.964752 0.899506\n0.345367 0.964081 0.898804\n0.368500 0.963409 0.897949\n0.392456 0.962708 0.897034\n0.417572 0.961884 0.896149\n0.444336 0.961060 0.895233\n0.472961 0.960083 0.894196\n0.504150 0.959137 0.893097\n0.537659 0.958069 0.891968\n0.573517 0.956970 0.890961\n0.611023 0.955780 0.889740\n0.649384 0.954681 0.888763\n0.687653 0.953552 0.887756\n0.724945 0.952484 0.886810\n0.760406 0.951508 0.885986\n0.793274 0.950562 0.885193\n0.823181 0.949738 0.884552\n0.850555 0.948944 0.884033\n0.875519 0.948273 0.883575\n0.898926 0.948181 0.883789\n0.920563 0.948456 0.884277\n0.940399 0.948669 0.884979\n0.958221 0.948547 0.885345\n0.974487 0.948212 0.885406\n0.989685 0.947906 0.885468\n1.000000 0.947632 0.890503\n0.172302 0.989288 0.903870\n0.202942 0.988464 0.902924\n0.230652 0.987701 0.901855\n0.256073 0.987000 0.901001\n0.279816 0.986359 0.900269\n0.302582 0.985687 0.899445\n0.324921 0.985046 0.898682\n0.347321 0.984436 0.897827\n0.370239 0.983734 0.897156\n0.394012 0.983002 0.896332\n0.419220 0.982239 0.895477\n0.446533 0.981384 0.894501\n0.475403 0.980499 0.893738\n0.505951 0.979492 0.892670\n0.538818 0.978455 0.891724\n0.574188 0.977325 0.890717\n0.611267 0.976166 0.889618\n0.649261 0.975037 0.888672\n0.687256 0.973938 0.887695\n0.724487 0.972809 0.886749\n0.759888 0.971832 0.885986\n0.792725 0.970856 0.885315\n0.822784 0.970001 0.884705\n0.850220 0.969238 0.884125\n0.875305 0.968536 0.883728\n0.898682 0.968353 0.884125\n0.920258 0.968567 0.884827\n0.939972 0.968719 0.885590\n0.958130 0.968903 0.886414\n0.974640 0.968811 0.886932\n0.989716 0.968384 0.886902\n1.000000 0.966461 0.891693\n0.188324 1.000000 0.896088\n0.216827 1.000000 0.895721\n0.242645 1.000000 0.895508\n0.266449 1.000000 0.895416\n0.288757 1.000000 0.895203\n0.310333 1.000000 0.894989\n0.331482 1.000000 0.894897\n0.352814 1.000000 0.894623\n0.374725 1.000000 0.894501\n0.398132 1.000000 0.894501\n0.422577 1.000000 0.894287\n0.448303 1.000000 0.894165\n0.476593 0.999115 0.893433\n0.506622 0.998138 0.892548\n0.539154 0.997101 0.891602\n0.574127 0.995972 0.890594\n0.610962 0.994873 0.889709\n0.648865 0.993744 0.888733\n0.686859 0.992615 0.887756\n0.724182 0.991516 0.886932\n0.759674 0.990448 0.886108\n0.792603 0.989502 0.885437\n0.822815 0.988647 0.884888\n0.850342 0.987823 0.884491\n0.875397 0.987122 0.884308\n0.898621 0.986877 0.884735\n0.920074 0.986969 0.885529\n0.939636 0.987030 0.886383\n0.957672 0.987091 0.887024\n0.974304 0.987122 0.887604\n0.989746 0.987061 0.888062\n1.000000 0.983826 0.892731\n0.217682 1.000000 0.880676\n0.244904 1.000000 0.880768\n0.269714 1.000000 0.880768\n0.292633 1.000000 0.880768\n0.314209 1.000000 0.880981\n0.335083 1.000000 0.881012\n0.355713 1.000000 0.881256\n0.377167 1.000000 0.881500\n0.398926 1.000000 0.881653\n0.421295 1.000000 0.881958\n0.444794 1.000000 0.882416\n0.469666 1.000000 0.882660\n0.496155 1.000000 0.883057\n0.524902 1.000000 0.883545\n0.556610 1.000000 0.883972\n0.590607 1.000000 0.884430\n0.626465 1.000000 0.884857\n0.663177 1.000000 0.885315\n0.700073 1.000000 0.885834\n0.736115 1.000000 0.886261\n0.770477 1.000000 0.886810\n0.802155 1.000000 0.887421\n0.831055 1.000000 0.888184\n0.857239 1.000000 0.888885\n0.880981 1.000000 0.889618\n0.902527 1.000000 0.890411\n0.922058 1.000000 0.891052\n0.939972 1.000000 0.891663\n0.956512 1.000000 0.892212\n0.971893 1.000000 0.892731\n0.986298 1.000000 0.893158\n1.000000 1.000000 0.893585\n0.000000 0.024628 0.921783\n0.021240 0.000000 0.941711\n0.066895 0.000000 0.943085\n0.110626 0.001282 0.943451\n0.151306 0.002838 0.943512\n0.188385 0.004425 0.943695\n0.221466 0.005890 0.943787\n0.251495 0.007416 0.943909\n0.279144 0.008972 0.944000\n0.305542 0.010437 0.944092\n0.331268 0.012054 0.944183\n0.357422 0.013580 0.944275\n0.384003 0.015228 0.944366\n0.412201 0.016907 0.944458\n0.442474 0.018555 0.944550\n0.475891 0.020325 0.944611\n0.512329 0.022217 0.944702\n0.553925 0.024139 0.944763\n0.599976 0.026154 0.944824\n0.648987 0.028290 0.944824\n0.698822 0.030121 0.944916\n0.747620 0.032043 0.944946\n0.793427 0.034058 0.944946\n0.834412 0.036072 0.944977\n0.870697 0.038239 0.945038\n0.902618 0.040375 0.945038\n0.930603 0.042603 0.945038\n0.955017 0.044403 0.944672\n0.976166 0.045410 0.943726\n0.995148 0.046753 0.942932\n1.000000 0.066742 0.930237\n1.000000 0.092834 0.914459\n0.000000 0.059906 0.922424\n0.018433 0.035004 0.942932\n0.064697 0.035797 0.942535\n0.108826 0.037354 0.942627\n0.149902 0.038757 0.942780\n0.186890 0.040192 0.942932\n0.220154 0.041687 0.943054\n0.250183 0.043121 0.943115\n0.277832 0.044586 0.943237\n0.304321 0.046112 0.943298\n0.330139 0.047638 0.943390\n0.356171 0.049164 0.943481\n0.382996 0.050842 0.943573\n0.411774 0.052551 0.943634\n0.442505 0.054291 0.943695\n0.476257 0.056122 0.943756\n0.513245 0.058044 0.943817\n0.555328 0.060028 0.943878\n0.601715 0.061798 0.943939\n0.650726 0.063690 0.943939\n0.700653 0.065552 0.943970\n0.749329 0.067505 0.944000\n0.794861 0.069489 0.944000\n0.835541 0.071564 0.944061\n0.871399 0.073700 0.944092\n0.902954 0.075806 0.944092\n0.930786 0.077972 0.944122\n0.954742 0.079681 0.943787\n0.975708 0.080719 0.942780\n0.994537 0.081940 0.942047\n1.000000 0.100433 0.930145\n1.000000 0.125824 0.914551\n0.000000 0.095062 0.922394\n0.018005 0.071716 0.943237\n0.063385 0.071533 0.942047\n0.107544 0.072479 0.941956\n0.148438 0.073853 0.942047\n0.185699 0.075256 0.942139\n0.218719 0.076599 0.942230\n0.248932 0.078094 0.942291\n0.276581 0.079498 0.942413\n0.303162 0.080994 0.942505\n0.329010 0.082550 0.942566\n0.355469 0.084137 0.942657\n0.382935 0.085876 0.942719\n0.412201 0.087616 0.942810\n0.443481 0.089386 0.942871\n0.477600 0.091278 0.942932\n0.515167 0.093048 0.942993\n0.557343 0.094727 0.943054\n0.604004 0.096527 0.943085\n0.653229 0.098389 0.943085\n0.703094 0.100311 0.943085\n0.751617 0.102264 0.943115\n0.796570 0.104218 0.943146\n0.836761 0.106262 0.943146\n0.872314 0.108368 0.943207\n0.903351 0.110413 0.943237\n0.930756 0.112579 0.943237\n0.954590 0.114105 0.942719\n0.975311 0.115173 0.941986\n0.993958 0.116272 0.941101\n1.000000 0.133270 0.929962\n1.000000 0.157928 0.914581\n0.000000 0.128906 0.922577\n0.018005 0.107513 0.943604\n0.063385 0.107178 0.942383\n0.106171 0.106842 0.941162\n0.147278 0.108154 0.941254\n0.184357 0.109467 0.941315\n0.217682 0.110870 0.941467\n0.247528 0.112274 0.941559\n0.275360 0.113708 0.941620\n0.302521 0.115234 0.941711\n0.329071 0.116882 0.941772\n0.355865 0.118469 0.941864\n0.383575 0.120239 0.941925\n0.413239 0.122040 0.941986\n0.444824 0.123596 0.942017\n0.479492 0.125275 0.942078\n0.517365 0.127014 0.942108\n0.560181 0.128754 0.942139\n0.607025 0.130585 0.942139\n0.656403 0.132416 0.942200\n0.705994 0.134338 0.942200\n0.754089 0.136230 0.942200\n0.798584 0.138184 0.942200\n0.838348 0.140167 0.942261\n0.873322 0.142212 0.942291\n0.903900 0.144165 0.942291\n0.930969 0.146179 0.942291\n0.954407 0.147675 0.941742\n0.974945 0.148560 0.940948\n0.993378 0.149597 0.940125\n1.000000 0.165161 0.929718\n1.000000 0.189087 0.914795\n0.000000 0.161469 0.922913\n0.018005 0.142487 0.943878\n0.063385 0.142029 0.942627\n0.106171 0.141754 0.941437\n0.145813 0.141602 0.940460\n0.182983 0.142975 0.940582\n0.216248 0.144379 0.940643\n0.247009 0.145813 0.940735\n0.275574 0.147278 0.940796\n0.302887 0.148865 0.940887\n0.329712 0.150513 0.940948\n0.356995 0.152161 0.941010\n0.385132 0.153748 0.941071\n0.414856 0.155304 0.941101\n0.446960 0.156921 0.941101\n0.481903 0.158539 0.941162\n0.520294 0.160217 0.941162\n0.563538 0.162018 0.941223\n0.610657 0.163849 0.941254\n0.659973 0.165588 0.941254\n0.709320 0.167480 0.941284\n0.757050 0.169373 0.941315\n0.800842 0.171295 0.941315\n0.839813 0.173187 0.941376\n0.874329 0.175110 0.941376\n0.904633 0.176941 0.941376\n0.931152 0.178894 0.941376\n0.954224 0.180115 0.940796\n0.974487 0.180969 0.939972\n0.992767 0.181824 0.939240\n1.000000 0.196014 0.929626\n1.000000 0.219238 0.914978\n0.000000 0.193512 0.923126\n0.017944 0.176300 0.944092\n0.063324 0.176025 0.942902\n0.106140 0.175629 0.941711\n0.145752 0.175507 0.940613\n0.182556 0.175751 0.939789\n0.216736 0.177185 0.939819\n0.247711 0.178680 0.939911\n0.276520 0.180237 0.940002\n0.304199 0.181824 0.940063\n0.331268 0.183289 0.940155\n0.358521 0.184723 0.940186\n0.386871 0.186249 0.940186\n0.417084 0.187805 0.940247\n0.449585 0.189453 0.940247\n0.485077 0.191132 0.940308\n0.523895 0.192749 0.940338\n0.567566 0.194519 0.940338\n0.614807 0.196289 0.940369\n0.663849 0.197998 0.940399\n0.712982 0.199829 0.940399\n0.760040 0.201630 0.940460\n0.803192 0.203369 0.940460\n0.841461 0.205261 0.940460\n0.875366 0.207062 0.940460\n0.905151 0.208740 0.940460\n0.931305 0.210541 0.940491\n0.954071 0.211609 0.940002\n0.974121 0.212341 0.939026\n0.992188 0.213104 0.938293\n1.000000 0.225922 0.929352\n1.000000 0.248413 0.914917\n0.000000 0.224854 0.923431\n0.017944 0.209625 0.944397\n0.063324 0.209259 0.943176\n0.107117 0.208923 0.941925\n0.147858 0.208893 0.940796\n0.184753 0.208771 0.939697\n0.218231 0.209290 0.938995\n0.249481 0.210876 0.939148\n0.278412 0.212280 0.939148\n0.305817 0.213623 0.939209\n0.333160 0.215088 0.939240\n0.360596 0.216492 0.939301\n0.389465 0.218079 0.939301\n0.419891 0.219604 0.939362\n0.452911 0.221222 0.939392\n0.488739 0.222870 0.939392\n0.527893 0.224457 0.939423\n0.571899 0.226166 0.939453\n0.619293 0.227844 0.939453\n0.668091 0.229523 0.939484\n0.716797 0.231232 0.939514\n0.763153 0.232971 0.939514\n0.805481 0.234650 0.939545\n0.843048 0.236359 0.939545\n0.876465 0.237976 0.939575\n0.905640 0.239624 0.939575\n0.931549 0.241241 0.939575\n0.953888 0.242157 0.939087\n0.973724 0.242798 0.938110\n0.991608 0.243439 0.937347\n1.000000 0.254883 0.929199\n1.000000 0.276703 0.915039\n0.000000 0.255402 0.923676\n0.019104 0.241974 0.944611\n0.065979 0.241638 0.943329\n0.110321 0.241302 0.942078\n0.151428 0.241241 0.940887\n0.188446 0.241455 0.939819\n0.221466 0.241516 0.938843\n0.251709 0.242065 0.938263\n0.280579 0.243378 0.938263\n0.308228 0.244781 0.938354\n0.335510 0.246185 0.938354\n0.363495 0.247681 0.938385\n0.392578 0.249237 0.938477\n0.423370 0.250763 0.938477\n0.456573 0.252319 0.938477\n0.492737 0.253937 0.938507\n0.532440 0.255493 0.938507\n0.576752 0.257141 0.938538\n0.623932 0.258789 0.938599\n0.672485 0.260376 0.938599\n0.720581 0.262024 0.938629\n0.766235 0.263641 0.938629\n0.807770 0.265198 0.938599\n0.844757 0.266754 0.938629\n0.877350 0.268280 0.938629\n0.906128 0.269867 0.938629\n0.931580 0.271332 0.938660\n0.953674 0.272095 0.938049\n0.973236 0.272614 0.937286\n0.991028 0.273071 0.936371\n1.000000 0.283264 0.929047\n1.000000 0.304443 0.915222\n0.000000 0.284363 0.926147\n0.022949 0.274048 0.944763\n0.070343 0.273621 0.943390\n0.115204 0.273438 0.942169\n0.156158 0.273254 0.940979\n0.192780 0.273254 0.939880\n0.225525 0.273285 0.938873\n0.255371 0.273499 0.938019\n0.283417 0.274170 0.937408\n0.311340 0.275604 0.937439\n0.338654 0.276978 0.937500\n0.366638 0.278503 0.937500\n0.396088 0.280029 0.937561\n0.427124 0.281525 0.937592\n0.460693 0.283020 0.937592\n0.497101 0.284607 0.937592\n0.537140 0.286133 0.937622\n0.581573 0.287720 0.937653\n0.628754 0.289276 0.937683\n0.676971 0.290802 0.937683\n0.724304 0.292358 0.937653\n0.769135 0.293793 0.937683\n0.809967 0.295319 0.937683\n0.846161 0.296783 0.937714\n0.878204 0.298248 0.937714\n0.906616 0.299622 0.937683\n0.931641 0.300964 0.937714\n0.953339 0.301575 0.937042\n0.972748 0.301941 0.936279\n0.990356 0.302338 0.935547\n1.000000 0.311371 0.928833\n1.000000 0.331940 0.915192\n0.000000 0.312805 0.930115\n0.028839 0.305725 0.944824\n0.076355 0.305237 0.943481\n0.120880 0.305084 0.942200\n0.161652 0.304688 0.940948\n0.197968 0.304657 0.939850\n0.230438 0.304840 0.938873\n0.260040 0.305206 0.937988\n0.287720 0.305481 0.937164\n0.314758 0.306274 0.936523\n0.342194 0.307709 0.936584\n0.370300 0.309174 0.936615\n0.399780 0.310638 0.936615\n0.431183 0.312103 0.936646\n0.465088 0.313599 0.936707\n0.501617 0.315125 0.936707\n0.542175 0.316589 0.936737\n0.586517 0.318085 0.936737\n0.633514 0.319580 0.936707\n0.681183 0.321014 0.936768\n0.727997 0.322479 0.936768\n0.771973 0.323822 0.936768\n0.811859 0.325226 0.936768\n0.847412 0.326630 0.936768\n0.878815 0.327850 0.936768\n0.906677 0.329163 0.936768\n0.931427 0.330383 0.936798\n0.953003 0.330872 0.936127\n0.972198 0.331177 0.935242\n0.989685 0.331543 0.934509\n1.000000 0.339386 0.928589\n1.000000 0.359436 0.915192\n0.000000 0.341522 0.935486\n0.035797 0.337128 0.944824\n0.083374 0.336700 0.943420\n0.127808 0.336365 0.942139\n0.168182 0.336395 0.940918\n0.203949 0.336334 0.939850\n0.235992 0.336548 0.938843\n0.265137 0.336853 0.937988\n0.292633 0.337280 0.937134\n0.319214 0.337677 0.936279\n0.345917 0.338470 0.935608\n0.374329 0.339905 0.935669\n0.403961 0.341339 0.935699\n0.435486 0.342773 0.935699\n0.469604 0.344238 0.935730\n0.506439 0.345673 0.935730\n0.547089 0.347076 0.935730\n0.591400 0.348480 0.935760\n0.637970 0.349884 0.935760\n0.685303 0.351257 0.935791\n0.731323 0.352631 0.935791\n0.774475 0.353882 0.935760\n0.813568 0.355164 0.935791\n0.848480 0.356415 0.935760\n0.879395 0.357574 0.935822\n0.906738 0.358734 0.935760\n0.931305 0.359955 0.935760\n0.952606 0.360352 0.935089\n0.971680 0.360596 0.934326\n0.989044 0.360870 0.933472\n1.000000 0.367584 0.928375\n1.000000 0.387085 0.915131\n0.000000 0.370605 0.941559\n0.044189 0.368774 0.944702\n0.091644 0.368408 0.943329\n0.135712 0.368286 0.942047\n0.175446 0.368286 0.940857\n0.210480 0.368347 0.939789\n0.241913 0.368591 0.938843\n0.270660 0.368927 0.937958\n0.297821 0.369293 0.937073\n0.324280 0.369873 0.936249\n0.350708 0.370178 0.935394\n0.378326 0.370880 0.934692\n0.408081 0.372314 0.934753\n0.439911 0.373657 0.934723\n0.474152 0.375092 0.934723\n0.510986 0.376434 0.934753\n0.551849 0.377808 0.934723\n0.596069 0.379089 0.934784\n0.642242 0.380371 0.934753\n0.688843 0.381683 0.934784\n0.734161 0.382935 0.934784\n0.776550 0.384094 0.934753\n0.814941 0.385254 0.934784\n0.849213 0.386414 0.934753\n0.879730 0.387512 0.934753\n0.906891 0.388672 0.934784\n0.931122 0.389740 0.934723\n0.952148 0.390076 0.933960\n0.971069 0.390320 0.933197\n0.988342 0.390564 0.932343\n1.000000 0.396057 0.927979\n1.000000 0.415070 0.915161\n0.003784 0.401367 0.945984\n0.053925 0.400879 0.944611\n0.101013 0.400604 0.943207\n0.144379 0.400513 0.941956\n0.183105 0.400635 0.940796\n0.217377 0.400696 0.939758\n0.248138 0.401062 0.938751\n0.276398 0.401459 0.937927\n0.303253 0.401764 0.937073\n0.329498 0.402313 0.936188\n0.355865 0.402710 0.935333\n0.383179 0.402985 0.934357\n0.412354 0.403625 0.933655\n0.444092 0.404907 0.933685\n0.478455 0.406250 0.933655\n0.515503 0.407532 0.933716\n0.556427 0.408813 0.933685\n0.600342 0.410065 0.933685\n0.646057 0.411285 0.933716\n0.691925 0.412384 0.933685\n0.736542 0.413544 0.933716\n0.778351 0.414642 0.933685\n0.816193 0.415741 0.933685\n0.849915 0.416840 0.933685\n0.880035 0.417877 0.933655\n0.906891 0.418945 0.933624\n0.930786 0.419952 0.933594\n0.951691 0.420288 0.932800\n0.970428 0.420471 0.931976\n0.987579 0.420685 0.931183\n1.000000 0.425049 0.927704\n1.000000 0.443542 0.915222\n0.014862 0.434052 0.945801\n0.064667 0.433716 0.944427\n0.111115 0.433533 0.943085\n0.153534 0.433472 0.941833\n0.191132 0.433411 0.940674\n0.224457 0.433838 0.939636\n0.254517 0.433990 0.938721\n0.282257 0.434448 0.937836\n0.308685 0.434906 0.937012\n0.334747 0.435303 0.936127\n0.361023 0.435699 0.935242\n0.388336 0.435883 0.934296\n0.417114 0.436218 0.933258\n0.448334 0.436707 0.932617\n0.482758 0.437927 0.932587\n0.519592 0.439087 0.932587\n0.560425 0.440308 0.932617\n0.604126 0.441437 0.932587\n0.649384 0.442535 0.932617\n0.694794 0.443604 0.932587\n0.738770 0.444702 0.932587\n0.779999 0.445709 0.932617\n0.817352 0.446747 0.932556\n0.850677 0.447784 0.932526\n0.880249 0.448792 0.932495\n0.906769 0.449829 0.932465\n0.930573 0.450775 0.932434\n0.951080 0.451019 0.931671\n0.969727 0.451233 0.930878\n0.986755 0.451477 0.930084\n1.000000 0.454620 0.927216\n1.000000 0.472534 0.915222\n0.026978 0.467529 0.945648\n0.075958 0.467224 0.944244\n0.121643 0.467010 0.942902\n0.162933 0.467163 0.941681\n0.199310 0.467194 0.940582\n0.231628 0.467529 0.939575\n0.260864 0.467804 0.938660\n0.288025 0.468079 0.937744\n0.314148 0.468506 0.936920\n0.339966 0.468933 0.936066\n0.366119 0.469177 0.935181\n0.393311 0.469543 0.934265\n0.422058 0.469604 0.933197\n0.452789 0.469666 0.932068\n0.486420 0.470215 0.931458\n0.523315 0.471252 0.931427\n0.563995 0.472382 0.931458\n0.607422 0.473389 0.931427\n0.652374 0.474426 0.931427\n0.697418 0.475433 0.931458\n0.740906 0.476471 0.931396\n0.781555 0.477478 0.931366\n0.818268 0.478424 0.931305\n0.851105 0.479401 0.931274\n0.880463 0.480377 0.931244\n0.906647 0.481323 0.931183\n0.930145 0.482269 0.931183\n0.950500 0.482452 0.930389\n0.968994 0.482605 0.929596\n0.985870 0.482849 0.928772\n1.000000 0.484802 0.926880\n1.000000 0.502197 0.915222\n0.039673 0.501740 0.945404\n0.087860 0.501587 0.944000\n0.132324 0.501434 0.942719\n0.172302 0.501434 0.941528\n0.207336 0.501587 0.940399\n0.238647 0.501923 0.939453\n0.267120 0.502136 0.938538\n0.293701 0.502533 0.937683\n0.319458 0.502899 0.936859\n0.344971 0.503265 0.936035\n0.370941 0.503479 0.935120\n0.398071 0.503662 0.934174\n0.426666 0.503815 0.933167\n0.457306 0.503754 0.931976\n0.490234 0.503510 0.930756\n0.526642 0.503998 0.930206\n0.567383 0.505066 0.930206\n0.610809 0.506073 0.930237\n0.655396 0.506989 0.930176\n0.699951 0.507965 0.930145\n0.742950 0.508972 0.930084\n0.783020 0.509918 0.930084\n0.819153 0.510895 0.930054\n0.851562 0.511810 0.929993\n0.880463 0.512726 0.929962\n0.906464 0.513672 0.929932\n0.929596 0.514557 0.929871\n0.949799 0.514709 0.928955\n0.968140 0.514862 0.928284\n0.984924 0.515015 0.927460\n1.000000 0.515839 0.926361\n1.000000 0.533569 0.915192\n0.052795 0.538025 0.945190\n0.099792 0.537903 0.943787\n0.142944 0.537842 0.942444\n0.181458 0.537781 0.941315\n0.215210 0.537872 0.940277\n0.245422 0.538147 0.939331\n0.273102 0.538544 0.938446\n0.299164 0.538788 0.937622\n0.324432 0.539093 0.936768\n0.349731 0.539429 0.935913\n0.375488 0.539673 0.935059\n0.402405 0.539703 0.934082\n0.430939 0.539703 0.933075\n0.461517 0.539551 0.931885\n0.494507 0.539307 0.930634\n0.530243 0.538879 0.929260\n0.570648 0.539551 0.928894\n0.613983 0.540527 0.928864\n0.658264 0.541473 0.928833\n0.702362 0.542450 0.928772\n0.744843 0.543427 0.928741\n0.784363 0.544312 0.928741\n0.819977 0.545258 0.928680\n0.851807 0.546173 0.928650\n0.880463 0.547119 0.928619\n0.906067 0.548035 0.928528\n0.929016 0.548920 0.928528\n0.949036 0.549011 0.927734\n0.967224 0.549164 0.926910\n0.983948 0.549316 0.926086\n0.999481 0.549530 0.925446\n1.000000 0.567078 0.915253\n0.065857 0.577118 0.944855\n0.111603 0.576813 0.943542\n0.153320 0.576752 0.942291\n0.190125 0.576660 0.941132\n0.222595 0.576782 0.940155\n0.251892 0.577057 0.939270\n0.278809 0.577271 0.938354\n0.304230 0.577454 0.937500\n0.329071 0.577759 0.936737\n0.354034 0.577789 0.935852\n0.379608 0.577881 0.934998\n0.406464 0.577942 0.934021\n0.435028 0.577759 0.932953\n0.465790 0.577698 0.931824\n0.498810 0.577271 0.930511\n0.534729 0.576752 0.929077\n0.574036 0.576202 0.927582\n0.616974 0.577057 0.927460\n0.661041 0.578003 0.927429\n0.704742 0.578918 0.927399\n0.746674 0.579834 0.927399\n0.785492 0.580780 0.927338\n0.820557 0.581665 0.927307\n0.852142 0.582550 0.927216\n0.880280 0.583466 0.927246\n0.905640 0.584351 0.927185\n0.928345 0.585205 0.927124\n0.948181 0.585205 0.926239\n0.966278 0.585297 0.925476\n0.982941 0.585449 0.924774\n0.998383 0.585571 0.924103\n1.000000 0.602203 0.915405\n0.078644 0.618042 0.944611\n0.122955 0.617615 0.943298\n0.163025 0.617554 0.942078\n0.198364 0.617554 0.941040\n0.229492 0.617523 0.940033\n0.257782 0.617523 0.939117\n0.283966 0.617767 0.938293\n0.308807 0.617889 0.937469\n0.333313 0.617950 0.936646\n0.357971 0.617950 0.935791\n0.383575 0.617950 0.934906\n0.410522 0.617889 0.933960\n0.439209 0.617767 0.932861\n0.470062 0.617401 0.931641\n0.503174 0.616943 0.930328\n0.539246 0.616364 0.928925\n0.578461 0.615631 0.927399\n0.619904 0.615082 0.926056\n0.663574 0.615997 0.926056\n0.706787 0.616913 0.926025\n0.748199 0.617767 0.925995\n0.786469 0.618622 0.925873\n0.821106 0.619476 0.925903\n0.852112 0.620331 0.925873\n0.880005 0.621185 0.925842\n0.905121 0.622040 0.925842\n0.927582 0.622833 0.925751\n0.947296 0.622803 0.924957\n0.965271 0.622864 0.924194\n0.981873 0.622925 0.923523\n0.997284 0.623016 0.922852\n1.000000 0.638428 0.915466\n0.090942 0.660156 0.944336\n0.133636 0.659668 0.943085\n0.172058 0.659515 0.941925\n0.205841 0.659271 0.940857\n0.235809 0.659241 0.939941\n0.263153 0.659210 0.939056\n0.288605 0.659210 0.938232\n0.313080 0.659210 0.937378\n0.337372 0.659332 0.936554\n0.362061 0.659241 0.935730\n0.387665 0.659088 0.934814\n0.414612 0.658936 0.933777\n0.443359 0.658600 0.932709\n0.474274 0.658173 0.931488\n0.507416 0.657593 0.930176\n0.543610 0.656891 0.928741\n0.582825 0.656128 0.927277\n0.623901 0.655273 0.925781\n0.666046 0.654938 0.924652\n0.708710 0.655731 0.924561\n0.749573 0.656525 0.924591\n0.787354 0.657349 0.924561\n0.821442 0.658173 0.924530\n0.852173 0.658936 0.924500\n0.879700 0.659729 0.924500\n0.904572 0.660553 0.924500\n0.926788 0.661224 0.924438\n0.946381 0.661133 0.923615\n0.964233 0.661133 0.922943\n0.980774 0.661163 0.922272\n0.996185 0.661682 0.921753\n1.000000 0.676239 0.915802\n0.102325 0.702606 0.944122\n0.143433 0.702087 0.942841\n0.180176 0.701630 0.941772\n0.212494 0.701355 0.940735\n0.241394 0.701141 0.939819\n0.267944 0.700989 0.938965\n0.292999 0.700958 0.938141\n0.317352 0.700928 0.937347\n0.341461 0.700836 0.936493\n0.366058 0.700714 0.935608\n0.391663 0.700470 0.934662\n0.418701 0.700012 0.933624\n0.447479 0.699646 0.932526\n0.478424 0.699036 0.931305\n0.511627 0.698395 0.930023\n0.547913 0.697632 0.928589\n0.587097 0.696777 0.927124\n0.627869 0.695831 0.925537\n0.669220 0.694977 0.924133\n0.710541 0.694763 0.923218\n0.750824 0.695496 0.923187\n0.788055 0.696228 0.923157\n0.821686 0.696991 0.923187\n0.851990 0.697693 0.923187\n0.879272 0.698456 0.923218\n0.903870 0.699127 0.923218\n0.925964 0.699768 0.923126\n0.945404 0.699615 0.922424\n0.963287 0.699951 0.921783\n0.979736 0.700378 0.921234\n0.995056 0.700867 0.920715\n1.000000 0.713898 0.916229\n0.112762 0.744415 0.943909\n0.152130 0.743713 0.942657\n0.187286 0.743256 0.941620\n0.218475 0.742859 0.940643\n0.246613 0.742645 0.939728\n0.272736 0.742462 0.938812\n0.297394 0.742279 0.938049\n0.321472 0.742157 0.937195\n0.345490 0.741852 0.936340\n0.370026 0.741577 0.935425\n0.395599 0.741150 0.934509\n0.422668 0.740845 0.933472\n0.451508 0.740265 0.932373\n0.482452 0.739655 0.931183\n0.515686 0.738800 0.929840\n0.552063 0.737946 0.928375\n0.591095 0.737030 0.926971\n0.631653 0.735992 0.925476\n0.672668 0.735046 0.924011\n0.712921 0.734131 0.922577\n0.751862 0.733978 0.921844\n0.788574 0.734619 0.921844\n0.821838 0.735260 0.921906\n0.851776 0.735931 0.921906\n0.878754 0.736542 0.921936\n0.903137 0.737244 0.921997\n0.925171 0.738159 0.921997\n0.944550 0.738342 0.921387\n0.962280 0.738586 0.920837\n0.978607 0.738922 0.920319\n0.993896 0.739197 0.919800\n1.000000 0.750580 0.916748\n0.121887 0.784912 0.943726\n0.159943 0.784180 0.942505\n0.193939 0.783691 0.941467\n0.224243 0.783295 0.940460\n0.251801 0.782776 0.939575\n0.277405 0.782532 0.938690\n0.301758 0.782135 0.937897\n0.325562 0.781952 0.937042\n0.349457 0.781555 0.936188\n0.373901 0.781311 0.935303\n0.399506 0.780762 0.934357\n0.426544 0.780212 0.933350\n0.455383 0.779602 0.932220\n0.486420 0.778809 0.930969\n0.519653 0.778015 0.929657\n0.556030 0.777039 0.928284\n0.594940 0.775940 0.926788\n0.635162 0.774902 0.925354\n0.675842 0.773895 0.923920\n0.715637 0.772919 0.922546\n0.753448 0.772003 0.921265\n0.789001 0.771881 0.920654\n0.821838 0.772430 0.920685\n0.851440 0.773010 0.920776\n0.878387 0.773865 0.920898\n0.902618 0.774841 0.921021\n0.924408 0.775604 0.921021\n0.943542 0.775696 0.920441\n0.961182 0.775757 0.919952\n0.977509 0.775879 0.919525\n0.992798 0.776062 0.919037\n1.000000 0.785797 0.917236\n0.130554 0.823486 0.943512\n0.167511 0.822693 0.942322\n0.200531 0.822144 0.941315\n0.229889 0.821472 0.940338\n0.256836 0.821075 0.939423\n0.282013 0.820618 0.938568\n0.305939 0.820160 0.937744\n0.329590 0.819824 0.936920\n0.353333 0.819336 0.936066\n0.377747 0.818970 0.935181\n0.403290 0.818329 0.934235\n0.430359 0.817780 0.933167\n0.459198 0.816986 0.932068\n0.490143 0.816132 0.930878\n0.523407 0.815216 0.929535\n0.559723 0.814117 0.928131\n0.598511 0.813049 0.926727\n0.638489 0.812012 0.925293\n0.678741 0.810822 0.923920\n0.718048 0.809845 0.922546\n0.755432 0.808807 0.921265\n0.789886 0.808044 0.920135\n0.821930 0.808044 0.919647\n0.851440 0.808868 0.919800\n0.877930 0.809662 0.919952\n0.901825 0.810394 0.920166\n0.923431 0.811066 0.920258\n0.942535 0.810944 0.919739\n0.960083 0.810883 0.919250\n0.976440 0.810913 0.918854\n0.991760 0.810913 0.918457\n1.000000 0.819122 0.917816\n0.138824 0.859253 0.943298\n0.174774 0.858490 0.942139\n0.206726 0.857697 0.941101\n0.235382 0.857117 0.940155\n0.261719 0.856598 0.939270\n0.286407 0.856049 0.938416\n0.310059 0.855560 0.937592\n0.333466 0.855164 0.936768\n0.357086 0.854614 0.935913\n0.381439 0.854095 0.934967\n0.406921 0.853394 0.934082\n0.433868 0.852692 0.933075\n0.462738 0.851898 0.931946\n0.493683 0.850983 0.930725\n0.526886 0.849945 0.929413\n0.563202 0.848846 0.928070\n0.601746 0.847656 0.926697\n0.641418 0.846527 0.925262\n0.681305 0.845398 0.923920\n0.720215 0.844330 0.922638\n0.757538 0.843475 0.921417\n0.791840 0.842834 0.920410\n0.822784 0.842316 0.919464\n0.850983 0.842194 0.918976\n0.877167 0.842834 0.919220\n0.900940 0.843414 0.919464\n0.922394 0.843964 0.919647\n0.941498 0.843719 0.919128\n0.959045 0.843536 0.918640\n0.975403 0.843414 0.918243\n0.990784 0.843353 0.917908\n1.000000 0.850037 0.918427\n0.147034 0.891693 0.943054\n0.181854 0.890869 0.941925\n0.212860 0.890289 0.940887\n0.240692 0.889526 0.939972\n0.266418 0.888977 0.939117\n0.290680 0.888367 0.938263\n0.314056 0.887848 0.937439\n0.337219 0.887390 0.936554\n0.360718 0.886780 0.935791\n0.384918 0.886169 0.934937\n0.410370 0.885468 0.933960\n0.437317 0.884613 0.932922\n0.466156 0.883850 0.931854\n0.496979 0.882812 0.930664\n0.530151 0.881744 0.929413\n0.566376 0.880585 0.928040\n0.604675 0.879395 0.926666\n0.644012 0.878174 0.925323\n0.684021 0.877106 0.924011\n0.722961 0.876251 0.922852\n0.759583 0.875366 0.921722\n0.793121 0.874603 0.920776\n0.823578 0.873993 0.919891\n0.851135 0.873413 0.919189\n0.876282 0.873077 0.918640\n0.899933 0.873535 0.918884\n0.921417 0.873901 0.919098\n0.940491 0.873596 0.918610\n0.958099 0.873322 0.918182\n0.974518 0.873108 0.917816\n0.989838 0.872925 0.917419\n1.000000 0.878265 0.919037\n0.154816 0.920868 0.942780\n0.188507 0.920105 0.941711\n0.218597 0.919281 0.940704\n0.245728 0.918640 0.939789\n0.270905 0.917908 0.938965\n0.294708 0.917267 0.938080\n0.317810 0.916809 0.937317\n0.340759 0.916107 0.936493\n0.364075 0.915497 0.935638\n0.388214 0.914856 0.934784\n0.413605 0.914154 0.933868\n0.440491 0.913330 0.932861\n0.469208 0.912445 0.931824\n0.499908 0.911377 0.930634\n0.533081 0.910248 0.929382\n0.569153 0.909088 0.928070\n0.607697 0.907990 0.926727\n0.647339 0.906860 0.925507\n0.686676 0.905884 0.924316\n0.724792 0.904877 0.923187\n0.760742 0.903900 0.922119\n0.793884 0.903137 0.921234\n0.824005 0.902344 0.920441\n0.851410 0.901733 0.919739\n0.876312 0.901123 0.919098\n0.899048 0.900635 0.918549\n0.920532 0.900879 0.918701\n0.939575 0.900482 0.918274\n0.957275 0.900146 0.917847\n0.973663 0.899841 0.917480\n0.989044 0.899689 0.917236\n1.000000 0.903870 0.919922\n0.162079 0.946686 0.942352\n0.194672 0.945770 0.941284\n0.223816 0.945038 0.940399\n0.250244 0.944305 0.939362\n0.274902 0.943634 0.938538\n0.298340 0.943024 0.937775\n0.321075 0.942413 0.936951\n0.343872 0.941772 0.936218\n0.367065 0.941101 0.935394\n0.391052 0.940369 0.934509\n0.416321 0.939606 0.933563\n0.443146 0.938782 0.932617\n0.471771 0.937805 0.931488\n0.502319 0.936798 0.930450\n0.535919 0.935669 0.929169\n0.572357 0.934601 0.927917\n0.610535 0.933502 0.926727\n0.649261 0.932373 0.925537\n0.687958 0.931305 0.924408\n0.725525 0.930267 0.923370\n0.761078 0.929260 0.922394\n0.793976 0.928375 0.921509\n0.823944 0.927582 0.920715\n0.851288 0.926880 0.920074\n0.876221 0.926239 0.919434\n0.898926 0.925659 0.918854\n0.919861 0.925201 0.918457\n0.939148 0.924988 0.918213\n0.956818 0.924652 0.917908\n0.973206 0.924377 0.917664\n0.988495 0.924164 0.917480\n1.000000 0.926910 0.920868\n0.167908 0.969025 0.941254\n0.199493 0.968201 0.940247\n0.227814 0.967407 0.939240\n0.253632 0.966736 0.938324\n0.277802 0.966064 0.937622\n0.300842 0.965393 0.936707\n0.323395 0.964752 0.936005\n0.345947 0.964111 0.935242\n0.368958 0.963409 0.934387\n0.392914 0.962708 0.933594\n0.418121 0.961914 0.932648\n0.444763 0.961090 0.931671\n0.473724 0.960175 0.930725\n0.504791 0.959198 0.929657\n0.538116 0.958130 0.928558\n0.573883 0.957001 0.927368\n0.611267 0.955872 0.926178\n0.649536 0.954712 0.925171\n0.687775 0.953644 0.924072\n0.725037 0.952576 0.922943\n0.760498 0.951538 0.922058\n0.793335 0.950653 0.921173\n0.823242 0.949799 0.920410\n0.850647 0.949036 0.919769\n0.875641 0.948364 0.919220\n0.898438 0.947754 0.918610\n0.919342 0.947266 0.918304\n0.939209 0.947571 0.918732\n0.957092 0.947479 0.918854\n0.973358 0.947113 0.918671\n0.988586 0.946808 0.918488\n1.000000 0.947693 0.921783\n0.173401 0.989288 0.940216\n0.203949 0.988464 0.939148\n0.231537 0.987701 0.938171\n0.256775 0.987000 0.937378\n0.280426 0.986359 0.936493\n0.303162 0.985687 0.935883\n0.325439 0.985077 0.935089\n0.347839 0.984436 0.934357\n0.370697 0.983734 0.933533\n0.394470 0.983002 0.932678\n0.419952 0.982239 0.931885\n0.447113 0.981415 0.931000\n0.475891 0.980499 0.930084\n0.506287 0.979523 0.929077\n0.539124 0.978455 0.928040\n0.574402 0.977356 0.926971\n0.611389 0.976227 0.925873\n0.649353 0.975067 0.924744\n0.687347 0.973969 0.923737\n0.724548 0.972839 0.922760\n0.760010 0.971863 0.921783\n0.792816 0.970886 0.920990\n0.822906 0.970062 0.920227\n0.850372 0.969238 0.919556\n0.875427 0.968567 0.919098\n0.898254 0.967957 0.918671\n0.919067 0.967407 0.918396\n0.938812 0.967621 0.918884\n0.956970 0.967773 0.919403\n0.973541 0.967712 0.919678\n0.988617 0.967255 0.919403\n1.000000 0.966522 0.922577\n0.189331 1.000000 0.931854\n0.217743 1.000000 0.931671\n0.243439 1.000000 0.931427\n0.267029 1.000000 0.931335\n0.289368 1.000000 0.931305\n0.310760 1.000000 0.931183\n0.331940 1.000000 0.931000\n0.353241 1.000000 0.930878\n0.375427 1.000000 0.930756\n0.398743 1.000000 0.930725\n0.423065 1.000000 0.930664\n0.448639 1.000000 0.930450\n0.476868 0.999146 0.929688\n0.506775 0.998138 0.928741\n0.539276 0.997101 0.927673\n0.574249 0.996002 0.926697\n0.611084 0.994873 0.925659\n0.648987 0.993744 0.924561\n0.687042 0.992615 0.923523\n0.724335 0.991547 0.922546\n0.759857 0.990479 0.921600\n0.792786 0.989532 0.920807\n0.823059 0.988647 0.920105\n0.850555 0.987854 0.919586\n0.875549 0.987122 0.919159\n0.898224 0.986481 0.918854\n0.918915 0.985870 0.918610\n0.938507 0.985931 0.919128\n0.956482 0.986023 0.919525\n0.973175 0.986053 0.919922\n0.988678 0.986023 0.920197\n1.000000 0.983856 0.923279\n0.218628 1.000000 0.915253\n0.245728 1.000000 0.915314\n0.270325 1.000000 0.915314\n0.293152 1.000000 0.915314\n0.314728 1.000000 0.915344\n0.335541 1.000000 0.915497\n0.356415 1.000000 0.915527\n0.377747 1.000000 0.915833\n0.399292 1.000000 0.915955\n0.421661 1.000000 0.916199\n0.445068 1.000000 0.916412\n0.469818 1.000000 0.916595\n0.496277 1.000000 0.916840\n0.525024 1.000000 0.917114\n0.556671 1.000000 0.917480\n0.590759 1.000000 0.917725\n0.626587 1.000000 0.918030\n0.663422 1.000000 0.918335\n0.700317 1.000000 0.918701\n0.736389 1.000000 0.918976\n0.770813 1.000000 0.919403\n0.802521 1.000000 0.919830\n0.831360 1.000000 0.920288\n0.857483 1.000000 0.920807\n0.881195 1.000000 0.921295\n0.902649 1.000000 0.921783\n0.922180 1.000000 0.922180\n0.940063 1.000000 0.922577\n0.956543 1.000000 0.922913\n0.971893 1.000000 0.923248\n0.986298 1.000000 0.923523\n1.000000 1.000000 0.923767\n0.000000 0.025177 0.957458\n0.020752 0.000000 0.976349\n0.065857 0.000000 0.977509\n0.108826 0.000000 0.978668\n0.149414 0.001495 0.978760\n0.186554 0.003021 0.978821\n0.219604 0.004578 0.978821\n0.249725 0.006073 0.978851\n0.277557 0.007599 0.978851\n0.303986 0.009216 0.978912\n0.329620 0.010712 0.978943\n0.355804 0.012329 0.978973\n0.382629 0.013977 0.978973\n0.410675 0.015625 0.978973\n0.441223 0.017365 0.979004\n0.474670 0.019165 0.979004\n0.511230 0.021057 0.979004\n0.552917 0.023041 0.979004\n0.598907 0.025055 0.979004\n0.647736 0.027069 0.979004\n0.697662 0.029022 0.979004\n0.746521 0.030975 0.979004\n0.792267 0.032990 0.979004\n0.833252 0.035065 0.978973\n0.869537 0.037140 0.978912\n0.901428 0.039398 0.978912\n0.929504 0.041626 0.978882\n0.954102 0.043915 0.978851\n0.976166 0.046204 0.978851\n0.995178 0.047546 0.978180\n1.000000 0.067535 0.965057\n1.000000 0.093658 0.948578\n0.000000 0.060577 0.957733\n0.016449 0.033752 0.978241\n0.062592 0.034485 0.977844\n0.107117 0.035980 0.977905\n0.148041 0.037415 0.977905\n0.185272 0.038849 0.977966\n0.218323 0.040375 0.977966\n0.248505 0.041840 0.977997\n0.276215 0.043304 0.978027\n0.302795 0.044830 0.978058\n0.328583 0.046295 0.978058\n0.354462 0.047943 0.978058\n0.381653 0.049652 0.978088\n0.410431 0.051331 0.978088\n0.441345 0.053131 0.978088\n0.475189 0.054993 0.978088\n0.512451 0.056946 0.978119\n0.554535 0.058929 0.978088\n0.600769 0.060669 0.978088\n0.649811 0.062561 0.978088\n0.699768 0.064484 0.978088\n0.748383 0.066406 0.978088\n0.793701 0.068481 0.978027\n0.834503 0.070557 0.978027\n0.870300 0.072662 0.978027\n0.901886 0.074860 0.977997\n0.929413 0.076996 0.977997\n0.954010 0.079224 0.977966\n0.975677 0.081482 0.977905\n0.994568 0.082733 0.977142\n1.000000 0.101227 0.964905\n1.000000 0.126587 0.948578\n0.000000 0.095367 0.957489\n0.016144 0.070465 0.978455\n0.061523 0.070068 0.977234\n0.105713 0.071198 0.977020\n0.146698 0.072479 0.977051\n0.183777 0.073914 0.977081\n0.217010 0.075348 0.977081\n0.247192 0.076752 0.977112\n0.275085 0.078308 0.977142\n0.301514 0.079803 0.977173\n0.327454 0.081299 0.977203\n0.354095 0.082947 0.977173\n0.381775 0.084717 0.977234\n0.410919 0.086426 0.977234\n0.442322 0.088318 0.977234\n0.476624 0.090149 0.977234\n0.514160 0.091858 0.977234\n0.556671 0.093628 0.977234\n0.603180 0.095428 0.977234\n0.652374 0.097321 0.977203\n0.702240 0.099243 0.977173\n0.750580 0.101227 0.977142\n0.795502 0.103210 0.977142\n0.835724 0.105347 0.977112\n0.871094 0.107361 0.977112\n0.902191 0.109467 0.977051\n0.929565 0.111603 0.977020\n0.953857 0.113678 0.977020\n0.975403 0.115845 0.976990\n0.993988 0.117004 0.976227\n1.000000 0.134003 0.964783\n1.000000 0.158691 0.948700\n0.000000 0.129059 0.957642\n0.016144 0.106293 0.978546\n0.061523 0.105957 0.977386\n0.104370 0.105591 0.976227\n0.145508 0.106812 0.976166\n0.182587 0.108185 0.976196\n0.215912 0.109619 0.976257\n0.245850 0.111053 0.976257\n0.273956 0.112518 0.976288\n0.301117 0.114075 0.976257\n0.327606 0.115631 0.976288\n0.354523 0.117371 0.976288\n0.382538 0.119110 0.976288\n0.412170 0.120850 0.976318\n0.443970 0.122498 0.976318\n0.478546 0.124084 0.976318\n0.516571 0.125885 0.976318\n0.559509 0.127625 0.976288\n0.606384 0.129517 0.976257\n0.655670 0.131378 0.976257\n0.705139 0.133301 0.976257\n0.753296 0.135223 0.976227\n0.797729 0.137207 0.976227\n0.837311 0.139221 0.976196\n0.872009 0.141205 0.976166\n0.902771 0.143219 0.976135\n0.929749 0.145203 0.976135\n0.953705 0.147217 0.976074\n0.975037 0.149261 0.976044\n0.993408 0.150238 0.975372\n1.000000 0.165863 0.964539\n1.000000 0.189789 0.948669\n0.000000 0.161743 0.957764\n0.016083 0.140991 0.978668\n0.061493 0.140686 0.977478\n0.104370 0.140350 0.976318\n0.144012 0.140381 0.975342\n0.181335 0.141754 0.975372\n0.214722 0.143158 0.975403\n0.245728 0.144592 0.975403\n0.274261 0.146149 0.975403\n0.301636 0.147736 0.975403\n0.328522 0.149384 0.975403\n0.355988 0.151062 0.975433\n0.384094 0.152588 0.975433\n0.413971 0.154144 0.975433\n0.446198 0.155792 0.975433\n0.481232 0.157440 0.975403\n0.519592 0.159180 0.975403\n0.562897 0.160980 0.975403\n0.610016 0.162781 0.975372\n0.659210 0.164612 0.975342\n0.708618 0.166473 0.975372\n0.756134 0.168396 0.975342\n0.799927 0.170319 0.975311\n0.838867 0.172180 0.975281\n0.873077 0.174072 0.975250\n0.903290 0.175995 0.975189\n0.929962 0.177826 0.975189\n0.953613 0.179718 0.975189\n0.974487 0.181610 0.975159\n0.992828 0.182526 0.974365\n1.000000 0.196686 0.964386\n1.000000 0.219879 0.948761\n0.000000 0.193878 0.957886\n0.016083 0.175140 0.978821\n0.061493 0.174866 0.977631\n0.104340 0.174469 0.976440\n0.144226 0.174438 0.975372\n0.181335 0.174591 0.974487\n0.215363 0.176025 0.974518\n0.246399 0.177490 0.974518\n0.275482 0.179108 0.974518\n0.303162 0.180664 0.974548\n0.330139 0.182068 0.974548\n0.357544 0.183624 0.974579\n0.386047 0.185150 0.974579\n0.416351 0.186737 0.974548\n0.448853 0.188354 0.974518\n0.484406 0.189972 0.974518\n0.523376 0.191742 0.974487\n0.567139 0.193481 0.974457\n0.614166 0.195251 0.974487\n0.663300 0.197052 0.974457\n0.712280 0.198822 0.974426\n0.759186 0.200653 0.974396\n0.802338 0.202423 0.974396\n0.840576 0.204224 0.974365\n0.874176 0.205963 0.974304\n0.903992 0.207764 0.974304\n0.930237 0.209503 0.974274\n0.953461 0.211243 0.974243\n0.974121 0.212952 0.974243\n0.992279 0.213684 0.973511\n1.000000 0.226471 0.964294\n1.000000 0.248962 0.948944\n0.000000 0.224976 0.958038\n0.016083 0.208435 0.978973\n0.061829 0.208038 0.977753\n0.105865 0.207703 0.976501\n0.146637 0.207672 0.975403\n0.183685 0.207520 0.974335\n0.217285 0.208252 0.973602\n0.248413 0.209717 0.973633\n0.277283 0.211090 0.973663\n0.304871 0.212463 0.973633\n0.332062 0.213928 0.973663\n0.359802 0.215454 0.973663\n0.388702 0.216949 0.973633\n0.419342 0.218567 0.973633\n0.452393 0.220184 0.973602\n0.488068 0.221771 0.973602\n0.527557 0.223450 0.973602\n0.571442 0.225159 0.973602\n0.618683 0.226837 0.973541\n0.667542 0.228546 0.973541\n0.716034 0.230194 0.973541\n0.762329 0.231995 0.973511\n0.804535 0.233673 0.973480\n0.842010 0.235291 0.973480\n0.875275 0.236969 0.973450\n0.904449 0.238647 0.973419\n0.930328 0.240234 0.973419\n0.953186 0.241821 0.973358\n0.973785 0.243347 0.973358\n0.991638 0.243927 0.972595\n1.000000 0.255463 0.963959\n1.000000 0.277191 0.948883\n0.000000 0.255402 0.958374\n0.017853 0.240875 0.979004\n0.064850 0.240417 0.977783\n0.109314 0.240295 0.976562\n0.150452 0.240112 0.975372\n0.187592 0.240295 0.974335\n0.220459 0.240234 0.973358\n0.250732 0.240875 0.972748\n0.279724 0.242279 0.972778\n0.307373 0.243622 0.972778\n0.334900 0.245117 0.972748\n0.362671 0.246643 0.972778\n0.391724 0.248169 0.972748\n0.422760 0.249725 0.972717\n0.456146 0.251282 0.972687\n0.492188 0.252899 0.972717\n0.532043 0.254486 0.972687\n0.576294 0.256134 0.972687\n0.623505 0.257751 0.972687\n0.672089 0.259338 0.972626\n0.719849 0.260956 0.972595\n0.765411 0.262543 0.972626\n0.806854 0.264191 0.972595\n0.843719 0.265747 0.972565\n0.876160 0.267303 0.972565\n0.904968 0.268799 0.972534\n0.930298 0.270264 0.972504\n0.953064 0.271729 0.972473\n0.973328 0.273102 0.972412\n0.991028 0.273529 0.971771\n1.000000 0.283722 0.963867\n1.000000 0.304901 0.948975\n0.000000 0.284149 0.960907\n0.021973 0.272797 0.979004\n0.069672 0.272430 0.977722\n0.114532 0.272247 0.976501\n0.155365 0.272125 0.975372\n0.192047 0.272034 0.974243\n0.224701 0.272125 0.973297\n0.254517 0.272339 0.972443\n0.282745 0.273132 0.971863\n0.310394 0.274475 0.971863\n0.337952 0.275940 0.971863\n0.365997 0.277466 0.971863\n0.395447 0.278992 0.971832\n0.426666 0.280518 0.971863\n0.460266 0.282074 0.971802\n0.496643 0.283569 0.971771\n0.536957 0.285156 0.971802\n0.581207 0.286652 0.971741\n0.628296 0.288239 0.971710\n0.676483 0.289795 0.971741\n0.723663 0.291290 0.971710\n0.768402 0.292816 0.971710\n0.808990 0.294281 0.971710\n0.845123 0.295715 0.971649\n0.877014 0.297180 0.971619\n0.905334 0.298553 0.971619\n0.930359 0.299927 0.971558\n0.952637 0.301178 0.971558\n0.972809 0.302399 0.971527\n0.990417 0.302795 0.970703\n1.000000 0.311829 0.963623\n1.000000 0.332367 0.948883\n0.000000 0.312561 0.964813\n0.028290 0.304565 0.978973\n0.075836 0.304108 0.977661\n0.120300 0.303772 0.976410\n0.161041 0.303528 0.975220\n0.197388 0.303711 0.974213\n0.229767 0.303680 0.973236\n0.259308 0.303955 0.972351\n0.286987 0.304413 0.971497\n0.313904 0.305267 0.970947\n0.341492 0.306671 0.970917\n0.369843 0.308136 0.970947\n0.399292 0.309601 0.970886\n0.430725 0.311096 0.970886\n0.464691 0.312592 0.970856\n0.501373 0.314117 0.970886\n0.541840 0.315613 0.970856\n0.586121 0.317047 0.970856\n0.632935 0.318542 0.970825\n0.680573 0.319977 0.970795\n0.727142 0.321442 0.970795\n0.771088 0.322845 0.970764\n0.810852 0.324249 0.970734\n0.846222 0.325531 0.970703\n0.877625 0.326843 0.970673\n0.905487 0.328064 0.970673\n0.930237 0.329285 0.970673\n0.952362 0.330505 0.970642\n0.972290 0.331604 0.970490\n0.989746 0.332001 0.969727\n1.000000 0.339844 0.963531\n1.000000 0.359833 0.948883\n0.000000 0.340729 0.969910\n0.035309 0.335876 0.978851\n0.083069 0.335510 0.977509\n0.127380 0.335266 0.976288\n0.167725 0.335327 0.975128\n0.203430 0.335175 0.974121\n0.235352 0.335480 0.973145\n0.264587 0.335785 0.972260\n0.292023 0.336273 0.971375\n0.318573 0.336700 0.970581\n0.345398 0.337463 0.969971\n0.373718 0.338928 0.969971\n0.403412 0.340363 0.969940\n0.435028 0.341827 0.969940\n0.469238 0.343201 0.969910\n0.506012 0.344666 0.969910\n0.546753 0.346100 0.969879\n0.591003 0.347473 0.969879\n0.637543 0.348877 0.969879\n0.684631 0.350250 0.969849\n0.730438 0.351562 0.969818\n0.773499 0.352905 0.969818\n0.812469 0.354126 0.969757\n0.847321 0.355316 0.969788\n0.878174 0.356506 0.969757\n0.905579 0.357666 0.969727\n0.930115 0.358826 0.969666\n0.952118 0.359985 0.969635\n0.971710 0.360992 0.969482\n0.989044 0.361298 0.968842\n1.000000 0.367981 0.963318\n1.000000 0.387482 0.948975\n0.000000 0.369507 0.975647\n0.043976 0.367615 0.978699\n0.091583 0.367401 0.977386\n0.135498 0.367065 0.976166\n0.175140 0.367218 0.975006\n0.210083 0.367249 0.973969\n0.241364 0.367523 0.972992\n0.270142 0.367889 0.972137\n0.297302 0.368378 0.971283\n0.323639 0.368744 0.970459\n0.350189 0.369232 0.969604\n0.377808 0.369873 0.968994\n0.407654 0.371307 0.968964\n0.439392 0.372681 0.968964\n0.473663 0.374054 0.968964\n0.510651 0.375427 0.968933\n0.551483 0.376770 0.968872\n0.595642 0.378082 0.968872\n0.641754 0.379395 0.968872\n0.688171 0.380646 0.968842\n0.733276 0.381836 0.968811\n0.775543 0.383026 0.968811\n0.813751 0.384247 0.968781\n0.848022 0.385345 0.968781\n0.878448 0.386475 0.968719\n0.905579 0.387543 0.968689\n0.929901 0.388672 0.968658\n0.951538 0.389709 0.968597\n0.971130 0.390686 0.968536\n0.988373 0.390961 0.967682\n1.000000 0.396484 0.963043\n1.000000 0.415436 0.948944\n0.003815 0.400269 0.979858\n0.053986 0.399902 0.978516\n0.101135 0.399597 0.977203\n0.144257 0.399384 0.975952\n0.182953 0.399597 0.974823\n0.217102 0.399750 0.973816\n0.247650 0.399963 0.972900\n0.275909 0.400482 0.972015\n0.302734 0.400818 0.971161\n0.328918 0.401337 0.970367\n0.355316 0.401672 0.969482\n0.382629 0.402008 0.968597\n0.411865 0.402649 0.967957\n0.443787 0.403992 0.967957\n0.478119 0.405273 0.967896\n0.515106 0.406525 0.967896\n0.555969 0.407837 0.967896\n0.599762 0.409027 0.967865\n0.645416 0.410217 0.967804\n0.691193 0.411407 0.967834\n0.735565 0.412476 0.967773\n0.777405 0.413605 0.967773\n0.815094 0.414673 0.967743\n0.848846 0.415771 0.967712\n0.878815 0.416840 0.967651\n0.905701 0.417877 0.967621\n0.929565 0.418915 0.967590\n0.951141 0.419952 0.967560\n0.970459 0.420807 0.967407\n0.987610 0.421082 0.966644\n1.000000 0.425446 0.962769\n1.000000 0.443817 0.949005\n0.015137 0.432892 0.979614\n0.064911 0.432678 0.978241\n0.111328 0.432556 0.976929\n0.153503 0.432312 0.975739\n0.191040 0.432465 0.974640\n0.224213 0.432770 0.973633\n0.254059 0.432983 0.972748\n0.281738 0.433411 0.971924\n0.308197 0.433868 0.971069\n0.334137 0.434357 0.970276\n0.360504 0.434601 0.969421\n0.387756 0.434967 0.968475\n0.416626 0.435150 0.967468\n0.447906 0.435730 0.966858\n0.482147 0.436951 0.966858\n0.519226 0.438171 0.966827\n0.559875 0.439301 0.966766\n0.603455 0.440430 0.966797\n0.648560 0.441528 0.966736\n0.693939 0.442596 0.966736\n0.737915 0.443634 0.966705\n0.778992 0.444733 0.966675\n0.816162 0.445740 0.966644\n0.849457 0.446747 0.966583\n0.879089 0.447754 0.966553\n0.905548 0.448761 0.966522\n0.929352 0.449768 0.966492\n0.950592 0.450714 0.966461\n0.969788 0.451538 0.966217\n0.986786 0.451752 0.965515\n1.000000 0.454956 0.962555\n1.000000 0.472839 0.948975\n0.027374 0.466461 0.979309\n0.076508 0.466309 0.977997\n0.121979 0.466217 0.976715\n0.162903 0.466064 0.975525\n0.199188 0.466248 0.974426\n0.231354 0.466400 0.973511\n0.260406 0.466766 0.972626\n0.287567 0.467194 0.971802\n0.313538 0.467499 0.970978\n0.339355 0.467926 0.970154\n0.365509 0.468262 0.969269\n0.392731 0.468536 0.968384\n0.421539 0.468628 0.967407\n0.452271 0.468750 0.966309\n0.485870 0.469177 0.965698\n0.522827 0.470276 0.965698\n0.563354 0.471375 0.965668\n0.606750 0.472351 0.965668\n0.651703 0.473450 0.965607\n0.696594 0.474396 0.965576\n0.740021 0.475433 0.965546\n0.780640 0.476440 0.965485\n0.817108 0.477417 0.965485\n0.849884 0.478424 0.965424\n0.879242 0.479340 0.965393\n0.905457 0.480316 0.965363\n0.928894 0.481232 0.965302\n0.950043 0.482208 0.965271\n0.969025 0.482971 0.965057\n0.985870 0.483154 0.964355\n1.000000 0.485107 0.962341\n1.000000 0.502502 0.949005\n0.040222 0.500732 0.979034\n0.088409 0.500580 0.977692\n0.132690 0.500488 0.976440\n0.172302 0.500397 0.975342\n0.207275 0.500671 0.974274\n0.238312 0.500946 0.973358\n0.266632 0.501221 0.972534\n0.293182 0.501556 0.971680\n0.318817 0.501953 0.970856\n0.344360 0.502289 0.970062\n0.370361 0.502533 0.969208\n0.397430 0.502655 0.968262\n0.426056 0.502716 0.967285\n0.456696 0.502655 0.966187\n0.489655 0.502502 0.964966\n0.526093 0.503052 0.964508\n0.566864 0.504028 0.964447\n0.610016 0.505005 0.964447\n0.654755 0.506012 0.964417\n0.699066 0.506927 0.964355\n0.742126 0.507965 0.964325\n0.781921 0.508881 0.964264\n0.817993 0.509796 0.964233\n0.850433 0.510773 0.964233\n0.879333 0.511719 0.964172\n0.905121 0.512604 0.964142\n0.928406 0.513580 0.964111\n0.949371 0.514435 0.964050\n0.968170 0.515167 0.963898\n0.984955 0.515320 0.963165\n1.000000 0.516174 0.961945\n1.000000 0.533875 0.948975\n0.053345 0.537079 0.978729\n0.100403 0.536774 0.977448\n0.143311 0.536865 0.976227\n0.181396 0.536835 0.975128\n0.214996 0.536957 0.974121\n0.245087 0.537201 0.973206\n0.272583 0.537476 0.972321\n0.298584 0.537720 0.971558\n0.323792 0.537994 0.970734\n0.348999 0.538330 0.969910\n0.374817 0.538574 0.969055\n0.401703 0.538696 0.968201\n0.430267 0.538696 0.967163\n0.460938 0.538513 0.966064\n0.493927 0.538177 0.964844\n0.529694 0.537872 0.963501\n0.570160 0.538483 0.963196\n0.613190 0.539429 0.963165\n0.657562 0.540375 0.963135\n0.701538 0.541351 0.963104\n0.743896 0.542297 0.963043\n0.783264 0.543243 0.963013\n0.818787 0.544220 0.962982\n0.850677 0.545105 0.962982\n0.879211 0.546021 0.962921\n0.904724 0.546936 0.962891\n0.927826 0.547882 0.962860\n0.948608 0.548767 0.962830\n0.967285 0.549469 0.962555\n0.984009 0.549652 0.961914\n0.999451 0.549805 0.961212\n1.000000 0.567352 0.949036\n0.066406 0.576019 0.978455\n0.112091 0.575806 0.977203\n0.153503 0.575623 0.976013\n0.190033 0.575531 0.974915\n0.222351 0.575714 0.973938\n0.251312 0.576050 0.973083\n0.278198 0.576141 0.972229\n0.303619 0.576385 0.971405\n0.328369 0.576630 0.970642\n0.353241 0.576813 0.969849\n0.378845 0.576843 0.968994\n0.405731 0.576782 0.968079\n0.434418 0.576752 0.967041\n0.465179 0.576538 0.965912\n0.498260 0.576080 0.964691\n0.534210 0.575592 0.963348\n0.573425 0.575104 0.961914\n0.616241 0.575958 0.961853\n0.660248 0.576843 0.961792\n0.703796 0.577759 0.961761\n0.745667 0.578705 0.961761\n0.784393 0.579620 0.961731\n0.819427 0.580505 0.961700\n0.850891 0.581421 0.961670\n0.879028 0.582306 0.961639\n0.904327 0.583191 0.961609\n0.927185 0.584076 0.961578\n0.947754 0.584991 0.961578\n0.966309 0.585632 0.961334\n0.982941 0.585754 0.960663\n0.998383 0.585907 0.959991\n1.000000 0.602478 0.949097\n0.079132 0.616791 0.978149\n0.123322 0.616547 0.976868\n0.163147 0.616394 0.975708\n0.198120 0.616333 0.974731\n0.229156 0.616364 0.973785\n0.257172 0.616394 0.972900\n0.283295 0.616669 0.972107\n0.308136 0.616730 0.971344\n0.332520 0.616730 0.970520\n0.357239 0.616882 0.969727\n0.382904 0.616913 0.968842\n0.409851 0.616760 0.967926\n0.438599 0.616486 0.966888\n0.469452 0.616150 0.965759\n0.502502 0.615723 0.964539\n0.538635 0.615112 0.963196\n0.577789 0.614441 0.961761\n0.619171 0.613922 0.960541\n0.662811 0.614777 0.960480\n0.705841 0.615692 0.960449\n0.747192 0.616547 0.960449\n0.785461 0.617462 0.960419\n0.819885 0.618286 0.960388\n0.850922 0.619141 0.960358\n0.878784 0.620026 0.960327\n0.903778 0.620850 0.960327\n0.926361 0.621704 0.960266\n0.946869 0.622498 0.960266\n0.965332 0.623108 0.960022\n0.981873 0.623260 0.959381\n0.997284 0.623322 0.958771\n1.000000 0.638885 0.949158\n0.091248 0.658813 0.977844\n0.133881 0.658508 0.976654\n0.171997 0.658173 0.975555\n0.205444 0.658081 0.974518\n0.235291 0.657990 0.973602\n0.262390 0.658051 0.972809\n0.287842 0.657959 0.971985\n0.312347 0.658020 0.971222\n0.336609 0.657959 0.970428\n0.361328 0.658051 0.969604\n0.386963 0.657837 0.968719\n0.413940 0.657684 0.967773\n0.442719 0.657257 0.966736\n0.473602 0.656799 0.965607\n0.506775 0.656311 0.964355\n0.543030 0.655579 0.963013\n0.582153 0.654877 0.961639\n0.623138 0.654022 0.960236\n0.665192 0.653656 0.959167\n0.707825 0.654449 0.959137\n0.748596 0.655304 0.959137\n0.786255 0.656067 0.959106\n0.820251 0.656921 0.959076\n0.850891 0.657684 0.959076\n0.878448 0.658478 0.959045\n0.903259 0.659271 0.959045\n0.925598 0.660065 0.959015\n0.945892 0.660858 0.959045\n0.964294 0.661377 0.958801\n0.980804 0.661560 0.958191\n0.996185 0.662140 0.957489\n1.000000 0.676727 0.949341\n0.102570 0.701111 0.977600\n0.143494 0.700714 0.976410\n0.179871 0.700378 0.975342\n0.211945 0.700073 0.974396\n0.240753 0.699951 0.973511\n0.267212 0.699860 0.972687\n0.292297 0.699738 0.971893\n0.316559 0.699738 0.971100\n0.340668 0.699493 0.970306\n0.365326 0.699310 0.969482\n0.390961 0.699127 0.968567\n0.417969 0.698822 0.967621\n0.446869 0.698456 0.966583\n0.477753 0.697845 0.965454\n0.510986 0.697113 0.964203\n0.547272 0.696289 0.962891\n0.586334 0.695404 0.961517\n0.627075 0.694580 0.960052\n0.668365 0.693726 0.958710\n0.709564 0.693512 0.957855\n0.749786 0.694244 0.957825\n0.786865 0.694946 0.957825\n0.820496 0.695648 0.957794\n0.850769 0.696411 0.957794\n0.877930 0.697083 0.957764\n0.902557 0.697845 0.957825\n0.924744 0.698608 0.957825\n0.944977 0.699371 0.957825\n0.963348 0.700378 0.957642\n0.979736 0.700836 0.957031\n0.995056 0.701263 0.956421\n1.000000 0.714325 0.949524\n0.112732 0.742950 0.977325\n0.151978 0.742554 0.976227\n0.186829 0.742004 0.975189\n0.217896 0.741699 0.974243\n0.246002 0.741364 0.973358\n0.271973 0.741089 0.972534\n0.296692 0.740936 0.971741\n0.320740 0.740723 0.970978\n0.344727 0.740509 0.970184\n0.369293 0.740234 0.969330\n0.394897 0.739929 0.968445\n0.421967 0.739502 0.967468\n0.450836 0.738953 0.966431\n0.481812 0.738220 0.965302\n0.515045 0.737518 0.964050\n0.551392 0.736603 0.962738\n0.590332 0.735657 0.961365\n0.630798 0.734619 0.959961\n0.671722 0.733765 0.958557\n0.711853 0.732819 0.957275\n0.750763 0.732666 0.956573\n0.787415 0.733307 0.956573\n0.820557 0.733948 0.956543\n0.850433 0.734619 0.956573\n0.877411 0.735260 0.956604\n0.901794 0.735992 0.956604\n0.923981 0.737122 0.956635\n0.944061 0.738190 0.956696\n0.962280 0.738983 0.956573\n0.978638 0.739319 0.955994\n0.993896 0.739532 0.955414\n1.000000 0.750946 0.949677\n0.121765 0.783569 0.977112\n0.159729 0.782837 0.976013\n0.193481 0.782196 0.975006\n0.223724 0.781891 0.974060\n0.251190 0.781433 0.973206\n0.276672 0.781219 0.972382\n0.301025 0.780884 0.971619\n0.324829 0.780640 0.970825\n0.348663 0.780334 0.970032\n0.373169 0.779938 0.969208\n0.398712 0.779480 0.968323\n0.425842 0.778839 0.967346\n0.454773 0.778259 0.966309\n0.485718 0.777527 0.965149\n0.518951 0.776550 0.963898\n0.555328 0.775635 0.962585\n0.594116 0.774567 0.961243\n0.634338 0.773468 0.959839\n0.674835 0.772491 0.958496\n0.714508 0.771545 0.957214\n0.752258 0.770630 0.955933\n0.787720 0.770508 0.955353\n0.820526 0.771088 0.955383\n0.850189 0.771698 0.955383\n0.877106 0.772675 0.955444\n0.901306 0.773621 0.955536\n0.923187 0.774567 0.955597\n0.943146 0.775482 0.955688\n0.961212 0.776123 0.955566\n0.977509 0.776245 0.954926\n0.992798 0.776398 0.954437\n1.000000 0.786163 0.950012\n0.130402 0.822083 0.976868\n0.167236 0.821350 0.975800\n0.199982 0.820618 0.974792\n0.229401 0.820038 0.973907\n0.256226 0.819672 0.973053\n0.281219 0.819214 0.972260\n0.305237 0.818756 0.971466\n0.328796 0.818359 0.970673\n0.352539 0.817993 0.969879\n0.376984 0.817566 0.969055\n0.402527 0.817017 0.968201\n0.429626 0.816437 0.967224\n0.458496 0.815643 0.966156\n0.489441 0.814819 0.965027\n0.522705 0.813843 0.963776\n0.558960 0.812775 0.962494\n0.597595 0.811646 0.961121\n0.637512 0.810577 0.959778\n0.677704 0.809509 0.958435\n0.716949 0.808441 0.957184\n0.754242 0.807495 0.955963\n0.788635 0.806671 0.954834\n0.820709 0.806824 0.954285\n0.850128 0.807617 0.954376\n0.876617 0.808441 0.954437\n0.900482 0.809174 0.954498\n0.922180 0.809967 0.954620\n0.942017 0.810730 0.954681\n0.960114 0.811188 0.954651\n0.976440 0.811188 0.954071\n0.991760 0.811188 0.953552\n1.000000 0.819458 0.950256\n0.138733 0.857727 0.976624\n0.174500 0.856964 0.975555\n0.206268 0.856445 0.974609\n0.234863 0.855652 0.973724\n0.261078 0.855286 0.972900\n0.285614 0.854645 0.972107\n0.309326 0.854218 0.971313\n0.332642 0.853729 0.970551\n0.356293 0.853210 0.969757\n0.380615 0.852722 0.968933\n0.406067 0.852081 0.968048\n0.433167 0.851288 0.967102\n0.462036 0.850555 0.966064\n0.492920 0.849670 0.964905\n0.526154 0.848572 0.963654\n0.562378 0.847504 0.962372\n0.600769 0.846344 0.961060\n0.640381 0.845154 0.959717\n0.680206 0.844055 0.958435\n0.719025 0.842896 0.957153\n0.756470 0.842194 0.955994\n0.790588 0.841553 0.954926\n0.821411 0.841034 0.953979\n0.849579 0.840973 0.953430\n0.875763 0.841583 0.953552\n0.899506 0.842163 0.953613\n0.921143 0.842804 0.953766\n0.940979 0.843384 0.953857\n0.959045 0.843811 0.953796\n0.975403 0.843689 0.953247\n0.990753 0.843597 0.952759\n1.000000 0.850281 0.950562\n0.146851 0.890442 0.976410\n0.181458 0.889587 0.975372\n0.212219 0.888885 0.974396\n0.240082 0.888092 0.973572\n0.265747 0.887634 0.972748\n0.289856 0.886963 0.971954\n0.313232 0.886566 0.971191\n0.336365 0.885925 0.970428\n0.359833 0.885284 0.969635\n0.384125 0.884735 0.968811\n0.409485 0.884094 0.967926\n0.436523 0.883331 0.966980\n0.465363 0.882416 0.965942\n0.496185 0.881439 0.964813\n0.529327 0.880371 0.963593\n0.565491 0.879181 0.962341\n0.603638 0.877960 0.961029\n0.642975 0.876770 0.959686\n0.683014 0.875854 0.958435\n0.721802 0.874908 0.957245\n0.758301 0.874115 0.956116\n0.791779 0.873352 0.955109\n0.822174 0.872711 0.954224\n0.849701 0.872131 0.953339\n0.874878 0.871796 0.952759\n0.898560 0.872223 0.952820\n0.920105 0.872772 0.953003\n0.939972 0.873260 0.953094\n0.958099 0.873505 0.953064\n0.974487 0.873291 0.952545\n0.989838 0.873169 0.951996\n1.000000 0.878510 0.950867\n0.154602 0.919647 0.976166\n0.188141 0.918579 0.975159\n0.217896 0.917938 0.974243\n0.245056 0.917145 0.973389\n0.270081 0.916595 0.972626\n0.293884 0.915955 0.971863\n0.316956 0.915375 0.971069\n0.339905 0.914856 0.970306\n0.363220 0.914124 0.969513\n0.387360 0.913605 0.968719\n0.412689 0.912750 0.967834\n0.439606 0.911957 0.966888\n0.468414 0.911102 0.965881\n0.499084 0.910034 0.964783\n0.532227 0.908966 0.963562\n0.568146 0.907745 0.962280\n0.606842 0.906677 0.961029\n0.646332 0.905579 0.959747\n0.685455 0.904572 0.958557\n0.723450 0.903534 0.957397\n0.759369 0.902618 0.956268\n0.792450 0.901855 0.955322\n0.822571 0.901093 0.954437\n0.849915 0.900452 0.953644\n0.874908 0.899902 0.952881\n0.897705 0.899384 0.952240\n0.919250 0.899689 0.952332\n0.939148 0.900085 0.952454\n0.957275 0.900269 0.952362\n0.973694 0.899994 0.951935\n0.989044 0.899902 0.951477\n1.000000 0.904083 0.951294\n0.161957 0.945557 0.975952\n0.194427 0.944672 0.974976\n0.223328 0.943787 0.974091\n0.249725 0.943176 0.973267\n0.274292 0.942566 0.972473\n0.297668 0.941895 0.971710\n0.320465 0.941223 0.970978\n0.343201 0.940674 0.970245\n0.366364 0.940033 0.969452\n0.390381 0.939240 0.968597\n0.415649 0.938568 0.967773\n0.442474 0.937622 0.966858\n0.471161 0.936798 0.965851\n0.501648 0.935669 0.964722\n0.535461 0.934662 0.963531\n0.571747 0.933563 0.962341\n0.609680 0.932495 0.961121\n0.648346 0.931366 0.959900\n0.686859 0.930267 0.958710\n0.724396 0.929260 0.957581\n0.759949 0.928314 0.956543\n0.792786 0.927399 0.955566\n0.822815 0.926605 0.954712\n0.850128 0.925903 0.953888\n0.875122 0.925232 0.953186\n0.897919 0.924713 0.952545\n0.918732 0.924194 0.951904\n0.938446 0.924347 0.951904\n0.956635 0.924530 0.951904\n0.972992 0.924255 0.951416\n0.988312 0.924072 0.951080\n1.000000 0.927124 0.951752\n0.168915 0.968811 0.975739\n0.200165 0.967957 0.974792\n0.228363 0.967163 0.973938\n0.254150 0.966370 0.973114\n0.278198 0.965820 0.972321\n0.301178 0.965179 0.971649\n0.323730 0.964508 0.970886\n0.346191 0.963806 0.970154\n0.369232 0.963165 0.969391\n0.393127 0.962524 0.968597\n0.418274 0.961700 0.967773\n0.445007 0.960876 0.966827\n0.474213 0.960022 0.965851\n0.505066 0.959015 0.964752\n0.538330 0.958008 0.963623\n0.573944 0.956818 0.962463\n0.611328 0.955719 0.961273\n0.649506 0.954559 0.960083\n0.687653 0.953491 0.958984\n0.724915 0.952423 0.957855\n0.760345 0.951416 0.956818\n0.793121 0.950500 0.955841\n0.823151 0.949677 0.954987\n0.850525 0.948883 0.954224\n0.875488 0.948212 0.953461\n0.898346 0.947632 0.952789\n0.919189 0.947174 0.952271\n0.938293 0.946777 0.951752\n0.956085 0.946533 0.951508\n0.972382 0.946167 0.951111\n0.987640 0.945892 0.950775\n1.000000 0.947784 0.952209\n0.174622 0.989288 0.975037\n0.204895 0.988464 0.974060\n0.232391 0.987701 0.973145\n0.257507 0.987000 0.972412\n0.281097 0.986359 0.971741\n0.303741 0.985718 0.971008\n0.325989 0.985077 0.970215\n0.348297 0.984436 0.969482\n0.371155 0.983734 0.968811\n0.394958 0.983032 0.968048\n0.420563 0.982269 0.967133\n0.447662 0.981445 0.966248\n0.476257 0.980530 0.965332\n0.506592 0.979553 0.964233\n0.539337 0.978485 0.963135\n0.574524 0.977386 0.962036\n0.611511 0.976257 0.960876\n0.649445 0.975128 0.959747\n0.687439 0.973999 0.958618\n0.724640 0.972931 0.957489\n0.760132 0.971893 0.956482\n0.792938 0.970947 0.955566\n0.823059 0.970093 0.954681\n0.850494 0.969299 0.953857\n0.875580 0.968597 0.953247\n0.898407 0.967987 0.952606\n0.919159 0.967468 0.952148\n0.938202 0.966980 0.951691\n0.955841 0.966705 0.951447\n0.972412 0.966614 0.951385\n0.987518 0.966156 0.950958\n1.000000 0.966553 0.952576\n0.190460 1.000000 0.966370\n0.218597 1.000000 0.966309\n0.244171 1.000000 0.966217\n0.267761 1.000000 0.966125\n0.289917 1.000000 0.966064\n0.311340 1.000000 0.966003\n0.332428 1.000000 0.965912\n0.353638 1.000000 0.965851\n0.376038 1.000000 0.965851\n0.399170 1.000000 0.965698\n0.423431 1.000000 0.965668\n0.448975 1.000000 0.965607\n0.477051 0.999115 0.964691\n0.506989 0.998169 0.963684\n0.539398 0.997131 0.962585\n0.574371 0.996033 0.961517\n0.611176 0.994873 0.960358\n0.649109 0.993744 0.959259\n0.687195 0.992615 0.958160\n0.724487 0.991547 0.957001\n0.760101 0.990509 0.956024\n0.793091 0.989594 0.955048\n0.823303 0.988678 0.954285\n0.850800 0.987854 0.953522\n0.875732 0.987183 0.952911\n0.898407 0.986511 0.952332\n0.919037 0.985901 0.951843\n0.937836 0.985321 0.951355\n0.955353 0.984924 0.951080\n0.972046 0.984955 0.951263\n0.987610 0.984924 0.951324\n1.000000 0.983887 0.952881\n0.219513 1.000000 0.948914\n0.246460 1.000000 0.948944\n0.271027 1.000000 0.948944\n0.293732 1.000000 0.949127\n0.315186 1.000000 0.949127\n0.335938 1.000000 0.949036\n0.357056 1.000000 0.949249\n0.378204 1.000000 0.949310\n0.399658 1.000000 0.949371\n0.421936 1.000000 0.949554\n0.445251 1.000000 0.949524\n0.470032 1.000000 0.949615\n0.496399 1.000000 0.949860\n0.525085 1.000000 0.949921\n0.556763 1.000000 0.950134\n0.590881 1.000000 0.950226\n0.626770 1.000000 0.950378\n0.663635 1.000000 0.950562\n0.700562 1.000000 0.950684\n0.736755 1.000000 0.950836\n0.771118 1.000000 0.951019\n0.802826 1.000000 0.951233\n0.831635 1.000000 0.951477\n0.857758 1.000000 0.951721\n0.881378 1.000000 0.951965\n0.902802 1.000000 0.952179\n0.922241 1.000000 0.952362\n0.940125 1.000000 0.952576\n0.956604 1.000000 0.952728\n0.971924 1.000000 0.952881\n0.986328 1.000000 0.953003\n1.000000 1.000000 0.953094\n0.000000 0.025665 0.991028\n0.032837 0.013245 1.000000\n0.077942 0.014771 1.000000\n0.120575 0.016296 1.000000\n0.159882 0.017822 1.000000\n0.195618 0.019287 1.000000\n0.227875 0.020752 1.000000\n0.256744 0.022247 1.000000\n0.283783 0.023712 1.000000\n0.309387 0.025146 1.000000\n0.334351 0.026703 1.000000\n0.359558 0.028198 1.000000\n0.385498 0.029785 1.000000\n0.412750 0.031433 1.000000\n0.442505 0.033081 1.000000\n0.475037 0.034821 1.000000\n0.510620 0.036713 1.000000\n0.551270 0.038544 1.000000\n0.596008 0.040588 1.000000\n0.643524 0.042480 1.000000\n0.691895 0.044250 1.000000\n0.739258 0.046173 1.000000\n0.783783 0.048096 1.000000\n0.823669 0.050079 1.000000\n0.859192 0.052155 1.000000\n0.890533 0.054260 1.000000\n0.918182 0.056396 1.000000\n0.942627 0.058594 1.000000\n0.964661 0.060791 1.000000\n0.984283 0.063019 1.000000\n1.000000 0.068451 0.997650\n1.000000 0.094452 0.981079\n0.000000 0.061127 0.991028\n0.031494 0.048676 1.000000\n0.075775 0.049286 1.000000\n0.118774 0.050690 1.000000\n0.158478 0.052094 1.000000\n0.194275 0.053467 1.000000\n0.226349 0.054901 1.000000\n0.255615 0.056305 1.000000\n0.282440 0.057770 1.000000\n0.308289 0.059143 1.000000\n0.333282 0.060669 1.000000\n0.358551 0.062195 1.000000\n0.384918 0.063812 1.000000\n0.412781 0.065491 1.000000\n0.443054 0.067230 1.000000\n0.476135 0.069031 1.000000\n0.512360 0.070984 1.000000\n0.553345 0.072723 1.000000\n0.598328 0.074463 1.000000\n0.646027 0.076233 1.000000\n0.694397 0.078094 1.000000\n0.741760 0.080017 1.000000\n0.786163 0.081970 1.000000\n0.825775 0.084015 1.000000\n0.860870 0.086029 1.000000\n0.891846 0.088104 1.000000\n0.919250 0.090210 1.000000\n0.943542 0.092346 1.000000\n0.965027 0.094482 1.000000\n0.984589 0.096588 1.000000\n1.000000 0.102051 0.997559\n1.000000 0.127350 0.981140\n0.000000 0.095947 0.990692\n0.031219 0.084045 1.000000\n0.074554 0.083496 1.000000\n0.117157 0.084259 1.000000\n0.156952 0.085571 1.000000\n0.192993 0.086945 1.000000\n0.225128 0.088257 1.000000\n0.254303 0.089661 1.000000\n0.281342 0.091125 1.000000\n0.306976 0.092560 1.000000\n0.332428 0.094086 1.000000\n0.358368 0.095673 1.000000\n0.385101 0.097321 1.000000\n0.413666 0.099030 1.000000\n0.444336 0.100861 1.000000\n0.477814 0.102570 1.000000\n0.514435 0.104218 1.000000\n0.555908 0.105865 1.000000\n0.601379 0.107666 1.000000\n0.649292 0.109467 1.000000\n0.697601 0.111328 1.000000\n0.744904 0.113281 1.000000\n0.788818 0.115173 1.000000\n0.828033 0.117188 1.000000\n0.862640 0.119171 1.000000\n0.893250 0.121155 1.000000\n0.920166 0.123199 1.000000\n0.944275 0.125244 1.000000\n0.965637 0.127258 1.000000\n0.984924 0.129303 1.000000\n1.000000 0.134796 0.997467\n1.000000 0.159363 0.981079\n0.000000 0.129425 0.990692\n0.031219 0.118561 1.000000\n0.074554 0.117981 1.000000\n0.115509 0.117218 1.000000\n0.155212 0.118317 1.000000\n0.191406 0.119659 1.000000\n0.223633 0.121033 1.000000\n0.252899 0.122406 1.000000\n0.280334 0.123840 1.000000\n0.306641 0.125397 1.000000\n0.332733 0.126892 1.000000\n0.358978 0.128510 1.000000\n0.386261 0.130249 1.000000\n0.415192 0.131897 1.000000\n0.446198 0.133423 1.000000\n0.479950 0.135040 1.000000\n0.517242 0.136719 1.000000\n0.558960 0.138428 1.000000\n0.604828 0.140228 1.000000\n0.652802 0.141968 1.000000\n0.701447 0.143860 1.000000\n0.748108 0.145752 1.000000\n0.791473 0.147583 1.000000\n0.830292 0.149567 1.000000\n0.864594 0.151489 1.000000\n0.894592 0.153381 1.000000\n0.921387 0.155334 1.000000\n0.945038 0.157227 1.000000\n0.966248 0.159119 1.000000\n0.985229 0.161041 1.000000\n1.000000 0.166534 0.997223\n1.000000 0.190369 0.981049\n0.000000 0.162079 0.990692\n0.031219 0.152222 1.000000\n0.074554 0.151611 1.000000\n0.115509 0.150818 1.000000\n0.153442 0.150391 1.000000\n0.189789 0.151764 1.000000\n0.222473 0.153107 1.000000\n0.252472 0.154510 1.000000\n0.280457 0.155945 1.000000\n0.307159 0.157532 1.000000\n0.333557 0.159149 1.000000\n0.360229 0.160675 1.000000\n0.387726 0.162140 1.000000\n0.416901 0.163696 1.000000\n0.448486 0.165253 1.000000\n0.482697 0.166901 1.000000\n0.520569 0.168579 1.000000\n0.562866 0.170288 1.000000\n0.608978 0.172028 1.000000\n0.657043 0.173798 1.000000\n0.705383 0.175598 1.000000\n0.751648 0.177429 1.000000\n0.794617 0.179199 1.000000\n0.832703 0.181030 1.000000\n0.866455 0.182922 1.000000\n0.896027 0.184692 1.000000\n0.922485 0.186523 1.000000\n0.945679 0.188293 1.000000\n0.966736 0.190033 1.000000\n0.985565 0.191803 1.000000\n1.000000 0.197266 0.997162\n1.000000 0.220459 0.981079\n0.000000 0.193939 0.990692\n0.031219 0.185333 1.000000\n0.074554 0.184723 1.000000\n0.115509 0.184113 1.000000\n0.153961 0.183411 1.000000\n0.189606 0.183167 1.000000\n0.222839 0.184540 1.000000\n0.253113 0.186005 1.000000\n0.281555 0.187500 1.000000\n0.308380 0.188995 1.000000\n0.334869 0.190369 1.000000\n0.361633 0.191803 1.000000\n0.389679 0.193298 1.000000\n0.419281 0.194855 1.000000\n0.451355 0.196411 1.000000\n0.485992 0.198029 1.000000\n0.524323 0.199646 1.000000\n0.567139 0.201355 1.000000\n0.613495 0.203064 1.000000\n0.661438 0.204742 1.000000\n0.709473 0.206482 1.000000\n0.755402 0.208221 1.000000\n0.797546 0.209930 1.000000\n0.835114 0.211670 1.000000\n0.868256 0.213379 1.000000\n0.897552 0.215057 1.000000\n0.923462 0.216736 1.000000\n0.946594 0.218353 1.000000\n0.967194 0.219971 1.000000\n0.985901 0.221619 1.000000\n1.000000 0.227112 0.996918\n1.000000 0.249512 0.981079\n0.000000 0.225250 0.990692\n0.031219 0.217346 1.000000\n0.075348 0.216888 1.000000\n0.117432 0.216339 1.000000\n0.156555 0.215851 1.000000\n0.191925 0.215302 1.000000\n0.224213 0.215363 1.000000\n0.254730 0.216766 1.000000\n0.282898 0.218048 1.000000\n0.310028 0.219391 1.000000\n0.336670 0.220825 1.000000\n0.363739 0.222260 1.000000\n0.392059 0.223785 1.000000\n0.422119 0.225311 1.000000\n0.454529 0.226837 1.000000\n0.489746 0.228455 1.000000\n0.528473 0.230011 1.000000\n0.571869 0.231628 1.000000\n0.618286 0.233276 1.000000\n0.666077 0.234924 1.000000\n0.713715 0.236511 1.000000\n0.759094 0.238190 1.000000\n0.800476 0.239777 1.000000\n0.837494 0.241394 1.000000\n0.870056 0.242981 1.000000\n0.898834 0.244537 1.000000\n0.924530 0.246094 1.000000\n0.947174 0.247589 1.000000\n0.967712 0.249084 1.000000\n0.986237 0.250488 1.000000\n1.000000 0.255981 0.996735\n1.000000 0.277679 0.981018\n0.000000 0.255188 0.991241\n0.033478 0.248657 1.000000\n0.078491 0.248352 1.000000\n0.121063 0.247681 1.000000\n0.160461 0.247406 1.000000\n0.195801 0.246857 1.000000\n0.227264 0.246429 1.000000\n0.256592 0.246613 1.000000\n0.284882 0.247925 1.000000\n0.312103 0.249329 1.000000\n0.338989 0.250732 1.000000\n0.366333 0.252167 1.000000\n0.394928 0.253662 1.000000\n0.425354 0.255127 1.000000\n0.458160 0.256653 1.000000\n0.493805 0.258179 1.000000\n0.532990 0.259735 1.000000\n0.576691 0.261322 1.000000\n0.623138 0.262909 1.000000\n0.670807 0.264404 1.000000\n0.717957 0.265961 1.000000\n0.762695 0.267548 1.000000\n0.803345 0.269012 1.000000\n0.839600 0.270508 1.000000\n0.871674 0.271973 1.000000\n0.900116 0.273407 1.000000\n0.925385 0.274811 1.000000\n0.947845 0.276184 1.000000\n0.968140 0.277527 1.000000\n0.986420 0.278809 1.000000\n1.000000 0.284241 0.996582\n1.000000 0.305359 0.981140\n0.000000 0.283844 0.993713\n0.037903 0.279633 1.000000\n0.083374 0.279388 1.000000\n0.126190 0.279022 1.000000\n0.165253 0.278503 1.000000\n0.200226 0.277863 1.000000\n0.231537 0.277588 1.000000\n0.260071 0.277191 1.000000\n0.287262 0.277466 1.000000\n0.314514 0.278870 1.000000\n0.341614 0.280304 1.000000\n0.369202 0.281677 1.000000\n0.398224 0.283173 1.000000\n0.428864 0.284607 1.000000\n0.462158 0.286102 1.000000\n0.498077 0.287628 1.000000\n0.537842 0.289093 1.000000\n0.581665 0.290588 1.000000\n0.628143 0.292084 1.000000\n0.675476 0.293518 1.000000\n0.722046 0.294983 1.000000\n0.766022 0.296448 1.000000\n0.806091 0.297821 1.000000\n0.841644 0.299225 1.000000\n0.873199 0.300537 1.000000\n0.901245 0.301910 1.000000\n0.926178 0.303192 1.000000\n0.948456 0.304382 1.000000\n0.968445 0.305603 1.000000\n0.986786 0.306824 1.000000\n1.000000 0.312286 0.996429\n1.000000 0.332794 0.981018\n0.000000 0.311920 0.997467\n0.044037 0.310425 1.000000\n0.089386 0.309784 1.000000\n0.131958 0.309540 1.000000\n0.170898 0.309052 1.000000\n0.205475 0.308777 1.000000\n0.236450 0.308502 1.000000\n0.264740 0.308167 1.000000\n0.291168 0.308014 1.000000\n0.317413 0.308319 1.000000\n0.344543 0.309723 1.000000\n0.372375 0.311127 1.000000\n0.401550 0.312561 1.000000\n0.432739 0.313995 1.000000\n0.466278 0.315430 1.000000\n0.502594 0.316864 1.000000\n0.542511 0.318298 1.000000\n0.586487 0.319702 1.000000\n0.632843 0.321075 1.000000\n0.679657 0.322510 1.000000\n0.725891 0.323853 1.000000\n0.769257 0.325226 1.000000\n0.808594 0.326477 1.000000\n0.843597 0.327759 1.000000\n0.874542 0.328979 1.000000\n0.902161 0.330200 1.000000\n0.926910 0.331360 1.000000\n0.948883 0.332489 1.000000\n0.968811 0.333649 1.000000\n0.987030 0.334747 1.000000\n1.000000 0.340210 0.996307\n1.000000 0.360260 0.981110\n0.003235 0.341125 1.000000\n0.051086 0.340759 1.000000\n0.096558 0.340576 1.000000\n0.138947 0.340057 1.000000\n0.177429 0.339996 1.000000\n0.211426 0.339630 1.000000\n0.241943 0.339600 1.000000\n0.269836 0.339355 1.000000\n0.296021 0.339294 1.000000\n0.321533 0.338959 1.000000\n0.347565 0.339203 1.000000\n0.375488 0.340637 1.000000\n0.404968 0.342010 1.000000\n0.436401 0.343384 1.000000\n0.470245 0.344757 1.000000\n0.506866 0.346161 1.000000\n0.547180 0.347534 1.000000\n0.591125 0.348846 1.000000\n0.637390 0.350189 1.000000\n0.683868 0.351471 1.000000\n0.729248 0.352783 1.000000\n0.771973 0.353973 1.000000\n0.810547 0.355133 1.000000\n0.845093 0.356354 1.000000\n0.875702 0.357452 1.000000\n0.903107 0.358582 1.000000\n0.927582 0.359680 1.000000\n0.949402 0.360748 1.000000\n0.969208 0.361847 1.000000\n0.987183 0.362915 1.000000\n1.000000 0.368408 0.996216\n1.000000 0.387848 0.981049\n0.011658 0.371643 1.000000\n0.059662 0.371521 1.000000\n0.104919 0.371368 1.000000\n0.146851 0.371124 1.000000\n0.184570 0.371033 1.000000\n0.217865 0.371033 1.000000\n0.247742 0.370789 1.000000\n0.275146 0.370911 1.000000\n0.301117 0.370850 1.000000\n0.326447 0.370514 1.000000\n0.351868 0.370331 1.000000\n0.378784 0.370361 1.000000\n0.408447 0.371735 1.000000\n0.439972 0.373047 1.000000\n0.474213 0.374359 1.000000\n0.510925 0.375671 1.000000\n0.551605 0.376953 1.000000\n0.595520 0.378235 1.000000\n0.641296 0.379486 1.000000\n0.687408 0.380646 1.000000\n0.732239 0.381805 1.000000\n0.774231 0.382935 1.000000\n0.812378 0.384033 1.000000\n0.846466 0.385132 1.000000\n0.876801 0.386200 1.000000\n0.903870 0.387238 1.000000\n0.928131 0.388336 1.000000\n0.949829 0.389343 1.000000\n0.969543 0.390350 1.000000\n0.987366 0.391388 1.000000\n1.000000 0.396851 0.996124\n1.000000 0.415802 0.981079\n0.021515 0.402893 1.000000\n0.069397 0.402832 1.000000\n0.114166 0.402710 1.000000\n0.155365 0.402740 1.000000\n0.192139 0.402710 1.000000\n0.224579 0.402710 1.000000\n0.253784 0.402771 1.000000\n0.280701 0.402710 1.000000\n0.306366 0.402710 1.000000\n0.331482 0.402679 1.000000\n0.356842 0.402435 1.000000\n0.383087 0.401825 1.000000\n0.411560 0.401825 1.000000\n0.443481 0.403076 1.000000\n0.477722 0.404358 1.000000\n0.514801 0.405579 1.000000\n0.555420 0.406799 0.999969\n0.599274 0.408051 0.999939\n0.644745 0.409180 0.999878\n0.690277 0.410339 0.999878\n0.734711 0.411438 0.999817\n0.776245 0.412567 0.999786\n0.813843 0.413605 0.999725\n0.847656 0.414703 0.999725\n0.877625 0.415741 0.999664\n0.904327 0.416809 0.999634\n0.928375 0.417847 0.999603\n0.949860 0.418823 0.999573\n0.969391 0.419891 0.999542\n0.987122 0.420868 0.999481\n1.000000 0.425781 0.995972\n1.000000 0.444214 0.981110\n0.032562 0.434753 1.000000\n0.079987 0.434784 1.000000\n0.123993 0.434753 1.000000\n0.164215 0.434906 1.000000\n0.199829 0.434875 1.000000\n0.231415 0.435089 1.000000\n0.259918 0.434967 1.000000\n0.286285 0.435211 1.000000\n0.311646 0.435181 1.000000\n0.336548 0.435333 1.000000\n0.361755 0.435059 1.000000\n0.387970 0.434631 1.000000\n0.416138 0.434143 0.999664\n0.447449 0.434723 0.999054\n0.481720 0.435944 0.999023\n0.518677 0.437073 0.998962\n0.559418 0.438263 0.998932\n0.602783 0.439392 0.998901\n0.647827 0.440460 0.998840\n0.693054 0.441559 0.998810\n0.736938 0.442627 0.998779\n0.777863 0.443604 0.998749\n0.815033 0.444702 0.998718\n0.848328 0.445679 0.998688\n0.877899 0.446686 0.998657\n0.904297 0.447693 0.998627\n0.928040 0.448700 0.998596\n0.949371 0.449677 0.998566\n0.968597 0.450623 0.998535\n0.986359 0.451569 0.998505\n1.000000 0.455322 0.995850\n1.000000 0.473206 0.981079\n0.044403 0.467285 1.000000\n0.091095 0.467468 1.000000\n0.134186 0.467590 1.000000\n0.173279 0.467621 1.000000\n0.207611 0.467804 1.000000\n0.238220 0.468048 1.000000\n0.266022 0.468262 1.000000\n0.291870 0.468353 1.000000\n0.316772 0.468506 1.000000\n0.341461 0.468414 1.000000\n0.366547 0.468262 1.000000\n0.392700 0.467957 1.000000\n0.420959 0.467712 0.999481\n0.451721 0.467651 0.998505\n0.485382 0.468201 0.997925\n0.522186 0.469269 0.997894\n0.562836 0.470306 0.997864\n0.606171 0.471405 0.997833\n0.650940 0.472382 0.997803\n0.695770 0.473389 0.997772\n0.739075 0.474457 0.997742\n0.779510 0.475372 0.997681\n0.816010 0.476379 0.997650\n0.848724 0.477356 0.997620\n0.877991 0.478241 0.997589\n0.904205 0.479279 0.997559\n0.927521 0.480194 0.997498\n0.948700 0.481110 0.997467\n0.967987 0.482086 0.997467\n0.985474 0.483002 0.997406\n1.000000 0.485504 0.995667\n1.000000 0.502808 0.981079\n0.056702 0.500763 1.000000\n0.102356 0.501038 1.000000\n0.144470 0.501221 1.000000\n0.182190 0.501404 1.000000\n0.215302 0.501465 1.000000\n0.244873 0.501862 1.000000\n0.271912 0.502014 1.000000\n0.297241 0.502197 1.000000\n0.321808 0.502380 1.000000\n0.346222 0.502411 1.000000\n0.371124 0.502319 1.000000\n0.397156 0.502014 1.000000\n0.425415 0.501740 0.999359\n0.456055 0.501678 0.998352\n0.489105 0.501526 0.997223\n0.525513 0.502014 0.996765\n0.566162 0.503021 0.996704\n0.609344 0.503998 0.996704\n0.653961 0.505005 0.996674\n0.698273 0.505951 0.996613\n0.741058 0.506866 0.996613\n0.780914 0.507843 0.996552\n0.816925 0.508789 0.996521\n0.849243 0.509735 0.996490\n0.878052 0.510651 0.996460\n0.903839 0.511566 0.996429\n0.927124 0.512451 0.996399\n0.948059 0.513367 0.996368\n0.967041 0.514282 0.996307\n0.984497 0.515198 0.996307\n1.000000 0.516571 0.995575\n1.000000 0.534210 0.981140\n0.069244 0.536255 1.000000\n0.113922 0.536560 1.000000\n0.154510 0.536652 1.000000\n0.190857 0.537109 1.000000\n0.222656 0.537201 1.000000\n0.251282 0.537628 1.000000\n0.277588 0.537781 1.000000\n0.302338 0.538025 1.000000\n0.326477 0.538116 1.000000\n0.350647 0.538239 1.000000\n0.375336 0.538086 1.000000\n0.401184 0.537720 1.000000\n0.429626 0.537628 0.999207\n0.460327 0.537384 0.998199\n0.493378 0.537079 0.997040\n0.529083 0.536682 0.995819\n0.569489 0.537415 0.995544\n0.612488 0.538391 0.995514\n0.656708 0.539307 0.995483\n0.700745 0.540314 0.995453\n0.742920 0.541229 0.995422\n0.782135 0.542175 0.995392\n0.817596 0.543121 0.995361\n0.849487 0.544006 0.995331\n0.877899 0.544891 0.995300\n0.903473 0.545837 0.995270\n0.926514 0.546753 0.995239\n0.947327 0.547638 0.995209\n0.966217 0.548584 0.995148\n0.983612 0.549438 0.995148\n0.999481 0.550110 0.994934\n1.000000 0.567688 0.981110\n0.081696 0.574097 1.000000\n0.124908 0.574432 1.000000\n0.164215 0.574677 1.000000\n0.199005 0.575104 1.000000\n0.229584 0.575287 1.000000\n0.257263 0.575653 1.000000\n0.282837 0.576019 1.000000\n0.307068 0.576141 1.000000\n0.330811 0.576263 1.000000\n0.354645 0.576294 1.000000\n0.379181 0.576111 1.000000\n0.405121 0.575775 1.000000\n0.433746 0.575562 0.999115\n0.464539 0.575317 0.998047\n0.497742 0.574951 0.996887\n0.533569 0.574402 0.995667\n0.572754 0.573853 0.994385\n0.615631 0.574799 0.994324\n0.659485 0.575714 0.994293\n0.702881 0.576630 0.994263\n0.744629 0.577576 0.994232\n0.783325 0.578461 0.994202\n0.818237 0.579346 0.994171\n0.849609 0.580261 0.994141\n0.877777 0.581146 0.994110\n0.903107 0.582031 0.994080\n0.925751 0.582916 0.994049\n0.946503 0.583801 0.994019\n0.965271 0.584686 0.993988\n0.982513 0.585541 0.993958\n0.998413 0.586182 0.993805\n1.000000 0.602783 0.981049\n0.093750 0.614075 1.000000\n0.135590 0.614380 1.000000\n0.173340 0.614685 1.000000\n0.206635 0.614868 1.000000\n0.236023 0.615173 1.000000\n0.262787 0.615448 1.000000\n0.287628 0.615814 1.000000\n0.311371 0.615997 1.000000\n0.334778 0.615997 1.000000\n0.358551 0.616119 1.000000\n0.383087 0.615875 1.000000\n0.409149 0.615509 0.999878\n0.437927 0.615417 0.998962\n0.468811 0.614899 0.997925\n0.501984 0.614532 0.996765\n0.538025 0.613983 0.995544\n0.577148 0.613251 0.994263\n0.618500 0.612762 0.993103\n0.661896 0.613586 0.993073\n0.704956 0.614471 0.993011\n0.746185 0.615356 0.993011\n0.784210 0.616211 0.992981\n0.818634 0.617096 0.992950\n0.849670 0.617889 0.992920\n0.877502 0.618805 0.992920\n0.902527 0.619659 0.992889\n0.925079 0.620453 0.992859\n0.945557 0.621338 0.992798\n0.964233 0.622192 0.992767\n0.981476 0.623016 0.992767\n0.997284 0.623627 0.992584\n1.000000 0.639435 0.981079\n0.105255 0.654968 1.000000\n0.145477 0.655396 1.000000\n0.181641 0.655701 1.000000\n0.213501 0.655945 1.000000\n0.241791 0.656128 1.000000\n0.267700 0.656433 1.000000\n0.291962 0.656647 1.000000\n0.315399 0.656799 1.000000\n0.338684 0.656952 1.000000\n0.362335 0.656921 1.000000\n0.386993 0.656647 1.000000\n0.413239 0.656342 0.999756\n0.442047 0.656036 0.998810\n0.472992 0.655579 0.997772\n0.506226 0.655060 0.996613\n0.542389 0.654327 0.995392\n0.581451 0.653564 0.994110\n0.622345 0.652740 0.992767\n0.664307 0.652405 0.991821\n0.706848 0.653198 0.991791\n0.747498 0.654022 0.991791\n0.785095 0.654816 0.991760\n0.819061 0.655609 0.991730\n0.849609 0.656403 0.991699\n0.877045 0.657227 0.991669\n0.901947 0.658020 0.991638\n0.924225 0.658783 0.991638\n0.944611 0.659576 0.991608\n0.963226 0.660400 0.991577\n0.980408 0.661530 0.991547\n0.996185 0.662628 0.991364\n1.000000 0.677277 0.981079\n0.115814 0.696350 1.000000\n0.154480 0.696716 1.000000\n0.189087 0.696838 1.000000\n0.219513 0.697144 1.000000\n0.246979 0.697449 1.000000\n0.272308 0.697479 1.000000\n0.296204 0.697723 1.000000\n0.319427 0.697876 1.000000\n0.342590 0.697937 1.000000\n0.366211 0.697968 1.000000\n0.390839 0.697754 1.000000\n0.417267 0.697418 0.999603\n0.446167 0.697021 0.998657\n0.477142 0.696533 0.997620\n0.510376 0.695770 0.996460\n0.546570 0.694977 0.995239\n0.585632 0.694092 0.993958\n0.626251 0.693268 0.992645\n0.667419 0.692383 0.991364\n0.708496 0.692200 0.990601\n0.748627 0.692871 0.990570\n0.785675 0.693634 0.990570\n0.819183 0.694366 0.990540\n0.849426 0.695068 0.990509\n0.876617 0.695801 0.990479\n0.901154 0.696564 0.990479\n0.923462 0.697296 0.990448\n0.943665 0.698273 0.990417\n0.962250 0.699585 0.990387\n0.979340 0.700775 0.990326\n0.995026 0.701721 0.990082\n1.000000 0.714722 0.981079\n0.125336 0.737457 1.000000\n0.162415 0.737549 1.000000\n0.195648 0.737671 1.000000\n0.225250 0.737915 1.000000\n0.252014 0.738129 1.000000\n0.276825 0.738373 1.000000\n0.300385 0.738464 1.000000\n0.323425 0.738647 1.000000\n0.346466 0.738678 1.000000\n0.369995 0.738678 1.000000\n0.394653 0.738525 1.000000\n0.421234 0.738098 0.999481\n0.450165 0.737579 0.998535\n0.481201 0.736969 0.997467\n0.514374 0.736053 0.996307\n0.550659 0.735199 0.995087\n0.589569 0.734222 0.993835\n0.629944 0.733307 0.992523\n0.670746 0.732300 0.991272\n0.710815 0.731415 0.990051\n0.749573 0.731293 0.989410\n0.786194 0.731934 0.989380\n0.819244 0.732605 0.989349\n0.849152 0.733246 0.989319\n0.876129 0.733917 0.989319\n0.900543 0.734833 0.989288\n0.922699 0.735901 0.989258\n0.942780 0.737030 0.989227\n0.961151 0.738098 0.989197\n0.978241 0.739136 0.989166\n0.993896 0.739960 0.988922\n1.000000 0.751282 0.981110\n0.133728 0.777130 1.000000\n0.169800 0.777161 1.000000\n0.201996 0.777466 1.000000\n0.230774 0.777466 1.000000\n0.256927 0.777740 1.000000\n0.281311 0.777893 1.000000\n0.304504 0.778015 1.000000\n0.327301 0.778046 1.000000\n0.350250 0.778229 1.000000\n0.373718 0.778137 1.000000\n0.398315 0.777985 1.000000\n0.425140 0.777466 0.999390\n0.453979 0.776886 0.998444\n0.485077 0.776123 0.997345\n0.518280 0.775208 0.996216\n0.554504 0.774139 0.994965\n0.593262 0.773132 0.993713\n0.633362 0.772156 0.992432\n0.673798 0.771088 0.991180\n0.713409 0.770172 0.989960\n0.751038 0.769257 0.988800\n0.786530 0.769135 0.988220\n0.819244 0.769714 0.988220\n0.848907 0.770477 0.988190\n0.875732 0.771454 0.988159\n0.899933 0.772400 0.988098\n0.921875 0.773315 0.988098\n0.941833 0.774261 0.988068\n0.960144 0.775146 0.988037\n0.977112 0.776062 0.988007\n0.992767 0.776703 0.987793\n1.000000 0.786469 0.981110\n0.141998 0.814789 1.000000\n0.176941 0.815033 1.000000\n0.208160 0.815094 1.000000\n0.236084 0.815186 1.000000\n0.261688 0.815399 1.000000\n0.285614 0.815460 1.000000\n0.308533 0.815552 1.000000\n0.331146 0.815674 1.000000\n0.353943 0.815674 1.000000\n0.377350 0.815613 1.000000\n0.401917 0.815521 1.000000\n0.428802 0.814972 0.999268\n0.457733 0.814301 0.998291\n0.488739 0.813385 0.997223\n0.521942 0.812408 0.996063\n0.558136 0.811340 0.994873\n0.596741 0.810303 0.993591\n0.636505 0.809143 0.992340\n0.676636 0.808044 0.991089\n0.715790 0.807037 0.989868\n0.752960 0.806152 0.988739\n0.787476 0.805420 0.987640\n0.819489 0.805542 0.987091\n0.848755 0.806366 0.987061\n0.875183 0.807159 0.987030\n0.899109 0.807953 0.987000\n0.920837 0.808685 0.987000\n0.940735 0.809418 0.986969\n0.959045 0.810211 0.986938\n0.976074 0.810974 0.986908\n0.991730 0.811462 0.986664\n1.000000 0.819702 0.981079\n0.149963 0.850067 1.000000\n0.183868 0.850220 1.000000\n0.214142 0.850250 1.000000\n0.241272 0.850464 1.000000\n0.266296 0.850494 1.000000\n0.289795 0.850586 1.000000\n0.312439 0.850647 1.000000\n0.334808 0.850708 1.000000\n0.357483 0.850769 1.000000\n0.380829 0.850800 1.000000\n0.405334 0.850647 1.000000\n0.432404 0.849945 0.999146\n0.461212 0.849152 0.998169\n0.492157 0.848145 0.997101\n0.525360 0.847229 0.995972\n0.561493 0.845978 0.994751\n0.599884 0.844940 0.993500\n0.639343 0.843689 0.992249\n0.679077 0.842651 0.991028\n0.718109 0.841644 0.989807\n0.755310 0.840973 0.988647\n0.789307 0.840271 0.987610\n0.820038 0.839813 0.986633\n0.848236 0.839661 0.986023\n0.874329 0.840302 0.985992\n0.898102 0.840912 0.985962\n0.919769 0.841492 0.985931\n0.939606 0.842133 0.985931\n0.957977 0.842773 0.985901\n0.975006 0.843384 0.985870\n0.990753 0.843842 0.985687\n1.000000 0.850525 0.981079\n0.157654 0.882385 1.000000\n0.190460 0.882538 1.000000\n0.219788 0.882538 1.000000\n0.246277 0.882629 1.000000\n0.270721 0.882721 1.000000\n0.293854 0.882721 1.000000\n0.316132 0.882843 1.000000\n0.338379 0.882935 1.000000\n0.360870 0.882904 1.000000\n0.384125 0.882751 1.000000\n0.408691 0.882660 0.999908\n0.435730 0.881927 0.999023\n0.464508 0.880981 0.998047\n0.495331 0.879974 0.997009\n0.528473 0.878998 0.995850\n0.564484 0.877808 0.994659\n0.602661 0.876587 0.993408\n0.642151 0.875427 0.992188\n0.682037 0.874512 0.990936\n0.720642 0.873566 0.989716\n0.757019 0.872803 0.988617\n0.790436 0.872040 0.987579\n0.820709 0.871429 0.986603\n0.848297 0.870850 0.985718\n0.873474 0.870514 0.985016\n0.897125 0.870941 0.984985\n0.918762 0.871490 0.984955\n0.938660 0.871979 0.984955\n0.957031 0.872467 0.984924\n0.974091 0.873016 0.984924\n0.989838 0.873322 0.984680\n1.000000 0.878754 0.981079\n0.164917 0.911346 1.000000\n0.196747 0.911407 1.000000\n0.225220 0.911377 1.000000\n0.250977 0.911469 1.000000\n0.274902 0.911560 1.000000\n0.297638 0.911530 1.000000\n0.319702 0.911652 1.000000\n0.341675 0.911621 1.000000\n0.364075 0.911743 1.000000\n0.387268 0.911652 1.000000\n0.411835 0.911346 0.999817\n0.438751 0.910522 0.998932\n0.467529 0.909607 0.997955\n0.498199 0.908661 0.996887\n0.531281 0.907532 0.995728\n0.567474 0.906403 0.994568\n0.606049 0.905365 0.993317\n0.645233 0.904327 0.992065\n0.684265 0.903259 0.990845\n0.722168 0.902191 0.989685\n0.757996 0.901367 0.988556\n0.790985 0.900543 0.987549\n0.821075 0.899811 0.986603\n0.848480 0.899170 0.985718\n0.873505 0.898621 0.984924\n0.896301 0.898071 0.984131\n0.917908 0.898407 0.984070\n0.937866 0.898834 0.984070\n0.956207 0.899231 0.984039\n0.973297 0.899780 0.984039\n0.989044 0.900116 0.983826\n1.000000 0.904297 0.981079\n0.171875 0.937225 1.000000\n0.202637 0.937317 1.000000\n0.230286 0.937317 1.000000\n0.255402 0.937439 1.000000\n0.278900 0.937408 1.000000\n0.301239 0.937439 1.000000\n0.322998 0.937561 1.000000\n0.344788 0.937500 1.000000\n0.367065 0.937531 1.000000\n0.390106 0.937531 1.000000\n0.414734 0.937134 0.999725\n0.441559 0.936401 0.998810\n0.470184 0.935394 0.997864\n0.500977 0.934387 0.996796\n0.534668 0.933350 0.995636\n0.570801 0.932312 0.994446\n0.608582 0.931183 0.993225\n0.647064 0.930084 0.992004\n0.685547 0.928955 0.990814\n0.722961 0.928009 0.989655\n0.758484 0.927002 0.988556\n0.791321 0.926086 0.987549\n0.821320 0.925385 0.986572\n0.848724 0.924622 0.985718\n0.873749 0.924011 0.984894\n0.896545 0.923462 0.984131\n0.917450 0.922943 0.983429\n0.937195 0.923126 0.983215\n0.955597 0.923523 0.983215\n0.972626 0.924011 0.983185\n0.988281 0.924225 0.982971\n1.000000 0.927246 0.981079\n0.178406 0.960632 1.000000\n0.208221 0.960571 1.000000\n0.235077 0.960663 1.000000\n0.259613 0.960632 1.000000\n0.282562 0.960693 1.000000\n0.304535 0.960663 1.000000\n0.326080 0.960693 1.000000\n0.347687 0.960815 1.000000\n0.369751 0.960785 1.000000\n0.392670 0.960785 1.000000\n0.417297 0.960419 0.999603\n0.444214 0.959595 0.998718\n0.473389 0.958710 0.997772\n0.504211 0.957703 0.996704\n0.537262 0.956665 0.995544\n0.572754 0.955597 0.994385\n0.610016 0.954407 0.993164\n0.648102 0.953308 0.991974\n0.686218 0.952240 0.990814\n0.723450 0.951172 0.989655\n0.758820 0.950165 0.988525\n0.791656 0.949280 0.987518\n0.821716 0.948395 0.986572\n0.849182 0.947662 0.985718\n0.874237 0.947021 0.984894\n0.897064 0.946472 0.984131\n0.917969 0.945984 0.983398\n0.937134 0.945557 0.982727\n0.955078 0.945557 0.982422\n0.972015 0.945892 0.982422\n0.987671 0.945984 0.982208\n1.000000 0.947845 0.981079\n0.184448 0.981750 1.000000\n0.213379 0.981720 1.000000\n0.239441 0.981781 1.000000\n0.263428 0.981720 1.000000\n0.285950 0.981812 1.000000\n0.307617 0.981903 1.000000\n0.328857 0.981873 1.000000\n0.350281 0.981903 1.000000\n0.372192 0.982025 1.000000\n0.395172 0.981903 1.000000\n0.420380 0.981598 0.999512\n0.447357 0.980743 0.998627\n0.475922 0.979919 0.997681\n0.506165 0.978973 0.996613\n0.538788 0.977875 0.995514\n0.573883 0.976746 0.994354\n0.610840 0.975616 0.993164\n0.648682 0.974426 0.991943\n0.686737 0.973358 0.990784\n0.723907 0.972260 0.989624\n0.759430 0.971252 0.988525\n0.792267 0.970306 0.987488\n0.822418 0.969482 0.986542\n0.849945 0.968719 0.985687\n0.875031 0.968048 0.984863\n0.897797 0.967438 0.984100\n0.918610 0.966919 0.983398\n0.937592 0.966431 0.982727\n0.955078 0.965942 0.982086\n0.971497 0.965698 0.981659\n0.987030 0.965668 0.981476\n1.000000 0.966614 0.981079\n0.191406 1.000000 0.998871\n0.219452 1.000000 0.998932\n0.244904 1.000000 0.998962\n0.268341 1.000000 0.998810\n0.290497 1.000000 0.998871\n0.311829 1.000000 0.998749\n0.332855 1.000000 0.998810\n0.354248 1.000000 0.998718\n0.376648 1.000000 0.998627\n0.399689 1.000000 0.998566\n0.423798 1.000000 0.998505\n0.449249 1.000000 0.998474\n0.477295 0.999146 0.997589\n0.507141 0.998199 0.996521\n0.539551 0.997101 0.995361\n0.574463 0.996033 0.994293\n0.611298 0.994904 0.993042\n0.649231 0.993744 0.991882\n0.687347 0.992615 0.990662\n0.724670 0.991547 0.989563\n0.760315 0.990540 0.988434\n0.793365 0.989594 0.987366\n0.823578 0.988708 0.986420\n0.851044 0.987915 0.985535\n0.875946 0.987213 0.984711\n0.898590 0.986542 0.983978\n0.919189 0.985931 0.983276\n0.937927 0.985321 0.982605\n0.955200 0.984772 0.981934\n0.971283 0.984253 0.981323\n0.986481 0.983826 0.980865\n1.000000 0.983887 0.981079\n0.220398 1.000000 0.981079\n0.247253 1.000000 0.981049\n0.271667 1.000000 0.981018\n0.294281 1.000000 0.981140\n0.315674 1.000000 0.981110\n0.336487 1.000000 0.981110\n0.357605 1.000000 0.981049\n0.378662 1.000000 0.981140\n0.400024 1.000000 0.981079\n0.422180 1.000000 0.981049\n0.445465 1.000000 0.981049\n0.470154 1.000000 0.981079\n0.496521 1.000000 0.981140\n0.525208 1.000000 0.981140\n0.556885 1.000000 0.981079\n0.591003 1.000000 0.981079\n0.626953 1.000000 0.981110\n0.663849 1.000000 0.981079\n0.700897 1.000000 0.981079\n0.737152 1.000000 0.981110\n0.771545 1.000000 0.981079\n0.803192 1.000000 0.981079\n0.831909 1.000000 0.981079\n0.858002 1.000000 0.981079\n0.881592 1.000000 0.981079\n0.902924 1.000000 0.981079\n0.922363 1.000000 0.981079\n0.940186 1.000000 0.981079\n0.956635 1.000000 0.981079\n0.971954 1.000000 0.981079\n0.986328 1.000000 0.981079\n1.000000 1.000000 0.981079\n"
  },
  {
    "path": "packages/sdk/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n\t\t\"target\": \"ES2020\",\n\t\t\"useDefineForClassFields\": true,\n\t\t\"module\": \"esnext\",\n\t\t\"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n\t\t\"skipLibCheck\": true,\n\t\t\"noImplicitAny\": false,\n\n\t\t/* Bundler mode */\n\t\t\"moduleResolution\": \"Bundler\",\n\t\t\"allowImportingTsExtensions\": true,\n\t\t\"resolveJsonModule\": true,\n\t\t\"isolatedModules\": true,\n\t\t\"noEmit\": true,\n\n\t\t/* Linting */\n\t\t\"strict\": true,\n\t\t\"noUnusedLocals\": true,\n\t\t\"noUnusedParameters\": true,\n\t\t\"noFallthroughCasesInSwitch\": true,\n\n\t\t\"baseUrl\": \".\",\n\t\t\"types\": [\"node\"],\n\t\t\"typeRoots\": [\"./node_modules/@types/\", \"./types/\"],\n\t\t\"paths\": {\n\t\t\t\"@/*\": [\"./lib/*\"]\n\t\t},\n\t\t\"emitDeclarationOnly\": true, // 只输出声明文件(ts 产物)\n\t\t\"declaration\": true, // 自动生成声明文件\n\t\t\"declarationDir\": \"types\", // 声明文件生成的目录\n\t\t\"allowUmdGlobalAccess\": true\n  },\n  \"include\": [\"lib\",\"types\"],\n  \"exclude\": [\"node_modules\",  \"dist\"]\n}\n"
  },
  {
    "path": "packages/sdk/types/Scene.d.ts",
    "content": "declare namespace ITHREEScene {\n    interface SceneJSON extends import(\"three\").SceneJSON {\n        object: Object3DJSONObject,\n        images?: Array<ImageJSON | string>;\n        geometries?: import(\"three\").BufferGeometryJSON[];\n        textures?: import(\"three\").TextureJSON[];\n        materials?: import(\"three\").MaterialJSON[];\n        skeletons?: import(\"three\").SkeletonJSON[];\n        animations?: import(\"three\").AnimationClipJSON[];\n    }\n\n    interface Object3DJSONObject{\n        \"uuid\": string,\n        \"type\": \"Scene\",\n        \"name\": string,\n        \"layers\": number,\n        \"matrix\": number[],\n        \"up\": [0 | 1, 0 | 1, 0 | 1],\n        \"background\"?: string,\n        \"environment\"?: string,\n        \"environmentType\"?: \"ModelViewer\";\n        \"backgroundRotation\"?: [number, number, number, string],\n        \"environmentRotation\"?: [number, number, number, string],\n        \"children\"?: Array<string | import(\"three\").Object3DJSONObject>\n    }\n\n    interface ImageJSON {\n        uuid: string;\n        url: import(\"three\").SerializedImage;\n    }\n\n    interface MeshJSON extends import(\"three\").MeshJSON {\n        images: ImageJSON[];\n        geometries: import(\"three\").BufferGeometryJSON[];\n        textures: import(\"three\").TextureJSON[];\n        materials: import(\"three\").MaterialJSON[];\n        skeletons?: import(\"three\").SkeletonJSON[];\n        animations?: import(\"three\").AnimationClipJSON[];\n    }\n}\n\ndeclare interface ISceneScript {\n    \"name\": string,\n    \"source\": string\n}\n\ndeclare interface ISceneJson {\n    metadata: {},\n    camera: {\n        \"metadata\": {\n            \"version\": number,\n            \"type\": \"Object\",\n            \"generator\": \"Object3D.toJSON\"\n        },\n        \"object\": {\n            \"uuid\": string,\n            \"type\": \"PerspectiveCamera\",\n            \"name\": string,\n            \"layers\": number,\n            \"matrix\": number[],\n            \"up\": [0 | 1, 0 | 1, 0 | 1],\n            \"fov\": number,\n            \"zoom\": number,\n            \"near\": number,\n            \"far\": number,\n            \"focus\": number,\n            \"aspect\": number,\n            \"filmGauge\": number,\n            \"filmOffset\": number\n        }\n    },\n    scene: {\n        \"uuid\": string,\n        \"metadata\": {\n            \"version\": number,\n            \"type\": \"Object\",\n            \"generator\": \"Object3D.toJSON\"\n        },\n        \"textures\": Array<import('three').Texture>,\n        \"images\": string[],\n        \"object\": ITHREEScene.Object3DJSONObject,\n        \"geometries\"?: Array<any>,\n        //groupChildren?: Array<string>\n    },\n    scripts: {\n        [uuid: string]: ISceneScript[]\n    },\n    controls: {\n        state: string\n    },\n    totalZipNumber: number,\n    sceneInfo: IAppProject.SceneInfo,\n}"
  },
  {
    "path": "packages/sdk/types/Script.d.ts",
    "content": "declare namespace IScript {\n    interface IStruct {\n        name: string;\n        source: string;\n    }\n}"
  },
  {
    "path": "packages/sdk/types/Three.d.ts",
    "content": "/**\n * 扩展three.js类型声明\n */\nimport * as THREE from 'three';\n\ndeclare module 'three' {\n    interface Object3D extends THREE.Object3D{\n        // 是否被忽略，仅用于显示（选中、场景树、打包等都会忽略）\n        ignore?: boolean;\n\n        // 元数据\n        metaData: {\n            material?: string | Array<string> | THREE.Material\n        };\n\n        // 是否为粒子发射器代理对象\n        isEmitterProxy?: boolean;\n\n        // 此Object3D被操控时的代理对象\n        proxy?: THREE.Object3D;\n\n        // 粒子发射器\n        emitter?:any;\n\n        // 广告牌配置\n        options?:any;\n\n        // html面板\n        isHtmlPanel?: boolean;\n        isHtmlSprite?: boolean;\n\n        //IFC模型\n        isIFC?: boolean;\n\n        // CSS3D/CSS2D\n        element:HTMLElement;\n\n        // 当前所处模型树层级\n        groupLayer?:number;\n\n        // 在对象以及后代中执行的回调函数,仅对满足条件的对象执行\n        traverseByCondition(callback: (Object3D) => void, condition: (Object3D) => boolean):void;\n\n        // 判断 parentObj 是否是 当前对象 的任意层级祖先（包括祖父、曾祖父等）\n        isAncestor(parentObj:Object3D):boolean;\n\n        /* 变更的声明 */\n        animations: Array<THREE.AnimationAction>;\n\n        // /* 以下补充THREE.Object3D自身缺少的声明 */\n        // isInstancedMesh?: boolean;\n        // count?:number;\n        // instanceMatrix?: THREE.InstancedBufferAttribute;\n        // instanceColor?:THREE.Color;\n        // isBatchedMesh?:boolean;\n        // perObjectFrustumCulled?:boolean;\n        // sortObjects?:boolean;\n        // _drawRanges?:any;\n        // _reservedRanges?:any;\n        // _visibility?: boolean;\n        // _active?: boolean;\n        // _bounds?: any;\n        // _maxInstanceCount?: number;\n        // _maxVertexCount?: number;\n        // _maxIndexCount?: number;\n        // _geometryInitialized?: boolean;\n        // _geometryCount?: number;\n        // _matricesTexture?: THREE.Texture;\n        // _colorsTexture?: THREE.Texture;\n        // boundingSphere?: THREE.Sphere;\n        // boundingBox?: THREE.Box3;\n        // isScene?: boolean;\n        // material:THREE.Material | THREE.Material[];\n\n        /* 强制解决three本身类型声明产生的各种问题 */\n        [key:string]:any;\n    }\n\n    interface Camera{\n        isPerspectiveCamera?:boolean;\n\n        updateProjectionMatrix:() => void;\n    }\n\n    interface Material {\n        // 从另一个材质中复制相同的属性（材质类型可能不同）\n        copyAttr(source:THREE.Material):void;\n    }\n\n    interface Object3DJSONObject{\n        environmentType?: \"ModelViewer\";\n        environment?: string;\n        options?: {\n            [key: string]: any\n        }\n    }\n\n    interface BufferGeometry {\n        //BVH boundsTree 屬性\n        boundsTree: any;\n    }\n}\n"
  },
  {
    "path": "packages/sdk/types/app/Config.d.ts",
    "content": "declare namespace IAppConfig {\n    interface Shortcuts {\n        translate: string;\n        rotate: string;\n        scale: string;\n        undo: string;\n        focus: string;\n    }\n\n    interface Config {\n        theme: 'os' | 'dark' | 'light';\n        mainColor: string;\n        history: boolean;\n        shortcuts: Shortcuts;\n        roamingCharacter: string;\n    }\n}"
  },
  {
    "path": "packages/sdk/types/app/Project.d.ts",
    "content": "declare namespace IAppProject {\n    interface Renderer {\n        fps: number;\n        antialias: boolean;\n        toneMapping: import(\"three\").ToneMapping; //number;\n        toneMappingExposure: number;\n        shadow: {\n            enabled: boolean;\n            type: import(\"three\").ShadowMapType; //number;\n        };\n    }\n\n    interface CSM{\n        enabled: boolean;\n        fade: boolean;\n        maxFar: number;\n        mode: \"practical\" | \"logarithmic\" | \"uniform\";\n        shadowMapSize: 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384;\n        lightDirectionX: number;\n        lightDirectionY: number;\n        lightDirectionZ: number;\n        lightIntensity: number;\n        lightColor: string;\n    }\n\n    interface Effect {\n        enabled: boolean;\n        Outline: {\n            enabled: boolean;\n            edgeStrength: number;\n            edgeGlow: number;\n            edgeThickness: number;\n            pulsePeriod: number;\n            usePatternTexture: boolean;\n            visibleEdgeColor: string;\n            hiddenEdgeColor: string;\n        };\n        FXAA: {\n            enabled: boolean;\n        };\n        UnrealBloom: {\n            enabled: boolean;\n            threshold: number;\n            strength: number;\n            radius: number;\n        };\n        Bokeh: {\n            enabled: boolean;\n            focus: number;\n            aperture: number;\n            maxblur: number;\n        };\n        Pixelate: {\n            enabled: boolean;\n            pixelSize: number;\n            normalEdgeStrength: number;\n            depthEdgeStrength: number;\n        };\n        Halftone: {\n            enabled: boolean;\n            shape: number;\n            radius: number;\n            rotateR: number;\n            rotateG: number;\n            rotateB: number;\n            scatter: number;\n            blending: number;\n            blendingMode: number;\n            greyscale: boolean;\n        };\n        LUT:{\n            enabled: boolean;\n            lut:string;\n            intensity: number;\n        };\n        Afterimage:{\n            enabled: boolean;\n            damp: number;\n        }\n    }\n\n    interface Weather {\n        fog: {\n            enabled: boolean;\n            type: 'Fog' | 'FogExp2',\n            color: string;\n            near: number;\n            far: number;\n            density: number;\n        };\n        rain: {\n            enabled: boolean;\n            speed: number;\n            color: string;\n            size: number;\n            radian: number;\n            alpha: number;\n        };\n        snow: {\n            enabled: boolean;\n            size: number;\n            density: number;\n            speed: number;\n            alpha: number;\n            accumulation: boolean;\n        };\n    }\n\n    interface SceneInfo {\n        id: string;\n        sceneType: string;\n        sceneName: string;\n        sceneIntroduction: string;\n        sceneVersion: number;\n        projectType: number;\n        coverPicture: string;\n        hasDrawing: boolean;\n        zip: string,\n        zipSize: string,\n        cesiumConfig?: {\n            token: \"\",\n            mapType: 'satellite' | 'vector',\n            map: \"Amap\" | \"Tianditu\",\n            // 是否需要标记图\n            markMap: boolean,\n            // 底图是天地图时的天地图密匙\n            tiandituTk: string\n        };\n    }\n\n    interface DrawingMark {\n        x: number,\n        y: number,\n        w: number,\n        h: number,\n        color?:string,\n        modelUuid?: string,\n        modelPath?: string\n    }\n\n    interface DrawingImgInfo {\n        width: number,\n        height: number\n    }\n\n    interface Drawing {\n        isUploaded: boolean;\n        imgSrc:string;\n        isCad: boolean;\n        layers: ICad.DxfLayers;\n        isDrawingRect:boolean;\n        selectedRectIndex: number;\n        markList: DrawingMark[];\n        imgInfo: DrawingImgInfo;\n    }\n\n    interface Config {\n        xr: boolean;\n        renderer: Renderer;\n        csm: CSM;\n        effect: Effect;\n        weather: Weather;\n    }\n\n    interface Info extends Config{\n        sceneInfo: SceneInfo;\n        drawing: Drawing;\n    }\n}"
  },
  {
    "path": "packages/sdk/types/astral-zip.d.ts",
    "content": "declare namespace IAstralZip {\n\ttype Input = Uint8Array | ArrayBuffer | string;\n\n\ttype OutputType = \"uint8array\" | \"arraybuffer\" | \"blob\" | \"string\";\n\n\tinterface GenerateOptions {\n\t\ttype?: IAstralZip.OutputType;\n\t\tcompression?: \"STORE\" | \"DEFLATE\";\n\t\tcompressionOptions?: {\n\t\t\tlevel?: number;\n\t\t};\n\t\tworkers?: number;\n\t\tcomment?: string;\n\t}\n\n\tinterface FileOptions {\n\t\tcompression?: \"STORE\" | \"DEFLATE\";\n\t\tcompressionOptions?: {\n\t\t\tlevel?: number;\n\t\t};\n\t}\n\n\tinterface FileMeta {\n\t\tname: string;\n\t\tdir: boolean;\n\t\tsize?: number;\n\t\tcompressedSize?: number;\n\t}\n\n\tinterface File {\n\t\tname: string;\n\t\tdir: boolean;\n\t\tasync(type: \"uint8array\"): Promise<Uint8Array>;\n\t\tasync(type: \"arraybuffer\"): Promise<ArrayBuffer>;\n\t\tasync(type: \"blob\"): Promise<Blob>;\n\t\tasync(type: \"string\"): Promise<string>;\n\t}\n\n\tinterface Constructor {\n\t\tnew (): IAstralZip;\n\t\tcreate(): IAstralZip;\n\t\tloadAsync(data: Uint8Array | ArrayBuffer | Blob): Promise<IAstralZip>;\n\t\tgenerateAsync(\n\t\t\tfiles: Array<{ name: string; data?: AstralZipInput; dir?: boolean }>,\n\t\t\toptions?: IAstralZip.GenerateOptions\n\t\t): Promise<Uint8Array | ArrayBuffer | Blob | string>;\n\t}\n\n\tinterface Zip {\n\t\tfile(name: string): IAstralZip.File | null;\n\t\tfile(name: string, data: IAstralZip.Input, options?: IAstralZip.FileOptions): IAstralZip;\n\t\tfolder(name: string): IAstralZip;\n\t\tfiles(): IAstralZip.FileMeta[];\n\t\tgenerateAsync(options?: IAstralZip.GenerateOptions): Promise<Uint8Array | ArrayBuffer | Blob | string>;\n\t\tdispose(): void;\n\t}\n}"
  },
  {
    "path": "packages/sdk/types/core/Cad.d.ts",
    "content": "declare interface IDrawingMark {\n    x: number,\n    y: number,\n    w: number,\n    h: number,\n    color?:string,\n    modelUuid?: string,\n    modelPath?: string\n}\n\ndeclare interface IDrawingImgInfo {\n    width: number,\n    height: number\n}\n\ndeclare interface IDrawingInfo {\n    imgSrc:string;\n    markList:IDrawingMark[];\n    imgInfo:IDrawingImgInfo;\n}\n\ndeclare namespace ICad{\n    interface DxfLayer{\n        name: string,\n        color: number,\n        colorIndex: number,\n        frozen: boolean, // 冻结\n        visible: boolean,\n        //entities: any[]\n    }\n\n    interface DxfLayers{\n        [name:string]: DxfLayer\n    }\n\n    interface Data {\n        id:number,\n        fileName :string,\n        thumbnail:string,\n        filePath:string,\n        converterFilePath:string,\n        conversionStatus :number,\n        createTime :string,\n    }\n}"
  },
  {
    "path": "packages/sdk/types/core/Plugin.d.ts",
    "content": "declare namespace IPlugin{\n    interface Item {\n        // 插件名称\n        name:string;\n        // 插件icon\n        icon:string;\n        // 插件ems js地址\n        src?:string;\n    }\n\n    // 内置插件相关声明...\n\n}"
  },
  {
    "path": "packages/sdk/types/global.d.ts",
    "content": "declare global {\n\tinterface Window {\n\t\tAstralZip?: IAstralZip.Constructor;\n\t}\n}"
  },
  {
    "path": "packages/sdk/types/objects/Billboard.d.ts",
    "content": "declare namespace IBillboard {\n    interface options {\n        name: string;\n        position: number[],\n        image:{\n            url?:string,\n            visible:boolean,\n            width:number,\n            height:number,\n            rotate:number,\n            margin:number,\n            position:string,\n            top:boolean,\n        },\n        text:{\n            value:string,\n            visible:boolean,\n            fontSize:number,\n            fontColor:string,\n            fontFamily?:string,\n            fontWeight:string | number,\n            fontStyle:string,\n            lineGap:number,\n            padding:number,\n            align:string,\n            baseline:string,\n            strokeWidth:number,\n            strokeColor:string,\n            fill:boolean,\n            fillColor:string,\n        }\n    }\n}"
  },
  {
    "path": "packages/sdk/types/objects/Particle.d.ts",
    "content": "declare namespace IParticle {\n  interface Config {\n    attr: {\n      position: { x: number, y: number, z: number },\n      rotation: { x: number, y: number, z: number },\n      scale: number,\n      // 总发射次数\n      totalEmitTimes: number;\n      // 发射器的阻尼系数\n      damping: number;\n      // 发射器的寿命(ms)\n      life: number;\n      // 发射粒子的数量范围\n      numPan: {\n        min: number;\n        max: number;\n      },\n      // 每次粒子发射之间的时间间隔(s)\n      timePan: {\n        a: number;\n        b: number;\n      }\n    },\n    init: {\n      // 粒子质量\n      mass: {\n        min: number;\n        max: number;\n        // 确定是否对质量值进行平均\n        center: boolean;\n        isEnabled: boolean;\n      },\n      // 粒子的生命值属性\n      life: {\n        min: number;\n        max: number;\n        center: boolean;\n        isEnabled: boolean;\n      },\n      // 粒子的半径属性\n      radius: {\n        width: number;\n        height: number;\n        center: boolean;\n        isEnabled: boolean;\n      },\n      // 粒子的旋转属性\n      rotation: {\n        x: number;\n        y: number;\n        z: number;\n        useEmitterRotation: boolean;\n        isEnabled: boolean;\n      },\n      // 粒子起始区域（从此区域中随机设置初始化粒子的起始位置属性）\n      position: {\n        isEnabled: boolean;\n        // 可生成起始粒子的区域\n        zone: BoxZone | LineZone | MeshZone | PointZone | SphereZone | null\n      },\n      // 粒子的速度属性\n      velocity: {\n        isEnabled: boolean;\n        velocity: RadialVelocity | PolarVelocity | VectorVelocity | null\n      }\n      // 粒子主体\n      body: {\n        isEnabled: boolean;\n        body: {\n          // 粒子的形状,Sprite | Mesh | Point\n          type: 'Sprite' | 'Mesh' | 'Point';\n          uuid: string;\n        } | null;\n      }\n    },\n    // 行为类（behaviours）负责管理粒子在被发射之后的行为。也就是说，粒子在被发射出来之后，它的运动轨迹、速度变化、颜色变化等行为特征是由这些行为类来控制和管理的\n    behaviour: {\n      // 随时间改变粒子颜色的行为。\n      color: {\n        colorA: number | string;\n        colorB: number | string;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 缩放粒子的行为\n      scale: {\n        scaleA: number;\n        scaleB: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 对粒子应用阿尔法转换效果的行为\n      alpha: {\n        alphaA: number;\n        alphaB: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 迫使粒子沿特定轴线运动的行为,fx，fy，fz在计算时会 * 100\n      force: {\n        fx: number;\n        fy: number;\n        fz: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 旋转粒子的行为\n      rotate: {\n        x: number;\n        y: number;\n        z: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 导致粒子在三维空间中随机坐标漂移的行为\n      randomDrift: {\n        driftX: number;\n        driftY: number;\n        driftZ: number;\n        delay: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 使粒子弹起的行为\n      spring: {\n        x: number;\n        y: number;\n        z: number;\n        // 弹跳系数\n        spring: number;\n        // 弹跳摩擦\n        friction: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 使粒子被吸引到目标位置的行为\n      attraction:{\n        x: number;\n        y: number;\n        z: number;\n        force: number;\n        radius: number;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      },\n      // 使粒子远离与其碰撞的其他粒子的行为\n      collision:{\n        useMass: boolean;\n        life: number;\n        easing: string;\n        isEnabled: boolean;\n      }\n    },\n  }\n\n  interface Object3DJSON {\n    uuid: string;\n    type: string;\n    name: string;\n    // 粒子发射器JSON\n    emitter: {\n      // 粒子发射器配置\n      config: Config;\n      // 粒子发射器系统名称\n      system: string;\n      // 粒子发射器用到的初始化器类型\n      useInitializers: string[];\n      // 粒子发射器初始化器对象中用到的Sprite或Mesh JSON\n      bodyObjectJSON: import('three').Object3DJSON | null;\n      // 粒子发射器用到的行为类型\n      useBehaviours: string[];\n    };\n    children: [];\n  }\n\n  // 盒型区域\n  interface BoxZone {\n    type: 'BoxZone';\n    depth: number;\n    height: number;\n    width: number;\n    x: number;\n    y: number;\n    z: number;\n  }\n\n  // 线性区域\n  interface LineZone {\n    type: 'LineZone';\n    x1: number;\n    x2: number;\n    y1: number;\n    y2: number;\n    z1: number;\n    z2: number;\n  }\n\n  // 网格(Mesh)区域\n  interface MeshZone {\n    type: 'MeshZone';\n    mesh: any;\n    scale: number;\n  }\n\n  // 点区域\n  interface PointZone {\n    type: 'PointZone';\n    x: number;\n    y: number;\n    z: number;\n  }\n\n  // 球区域\n  interface SphereZone {\n    type: 'SphereZone';\n    radius: number;\n    x: number;\n    y: number;\n    z: number;\n  }\n\n  // 径向速度：物体在其半径矢量方向上的速度分量\n  interface RadialVelocity {\n    type: 'RadialVelocity';\n    radius: number;\n    x: number;\n    y: number;\n    z: number;\n    theta: number;\n  }\n\n  // 极坐标速度\n  interface PolarVelocity {\n    type: 'PolarVelocity';\n    radius: number;\n    theta: number;\n    phi: number;\n    tha: number;\n  }\n\n  // 矢量速度\n  interface VectorVelocity {\n    type: 'VectorVelocity';\n    x: number;\n    y: number;\n    z: number;\n    theta: number;\n  }\n}"
  },
  {
    "path": "packages/sdk/types/setting/PreviewSetting.d.ts",
    "content": "declare interface IPreviewSetting {\n    container?: HTMLElement;\n    hdr?: string;\n    request?:IViewerRequest;\n    control:IViewerControl\n}"
  },
  {
    "path": "packages/sdk/types/setting/ViewerSetting.d.ts",
    "content": "declare interface IViewerEdit {\n    enabled:boolean;\n    helpers: boolean;\n    gizmo:boolean;\n}\n\ndeclare interface IViewerGrid {\n    enabled:boolean;\n    color: number | string;\n    row:number;\n    column:number;\n}\n\ndeclare interface IViewerControl {\n    minAzimuthAngle:number;\n    maxAzimuthAngle: number;\n    minDistance: number;\n    maxDistance:number;\n    maxPolarAngle:number;\n    minPolarAngle:number;\n    maxZoom:number;\n    minZoom:number;\n    dollySpeed:number;\n    dollyToCursor:boolean;\n}\n\ndeclare  interface IViewerRequest {\n    baseUrl?:string;\n}\n\ndeclare interface IViewerSetting {\n    container?: HTMLElement;\n    hdr?: string;\n    edit?: IViewerEdit;\n    enableScript?: boolean;\n    request?:IViewerRequest;\n    grid:IViewerGrid;\n    control:IViewerControl\n }"
  },
  {
    "path": "packages/sdk/types/vite-env.d.ts",
    "content": "/// <reference types=\"vite/client\" />\n"
  },
  {
    "path": "packages/sdk/vite.config.ts",
    "content": "import {defineConfig, loadEnv} from 'vite';\nimport {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport dts from 'vite-plugin-dts';\nimport {wrapperEnv, createPlugins} from \"@astral3d/build-vite-plugins\";\n\n// @ts-ignore\nconst __dirname = dirname(fileURLToPath(import.meta.url))\n\n// @ts-ignore\nexport default defineConfig(async ({mode, command}) => {\n    const root = process.cwd();\n    const env = loadEnv(mode, root);\n    //LoadEnv读取的布尔类型是一个字符串。此函数可以转换为布尔类型\n    const viteEnv = wrapperEnv(env);\n    const {\n        VITE_PORT,\n        VITE_PUBLIC_PATH,\n        VITE_BUILD_COMPRESS,\n        VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,\n        VITE_ENABLE_ANALYZE,\n        VITE_ENABLE_CONFIG_GENERATE\n    } = viteEnv;\n\n    const isBuild = command === 'build';\n    const plugins = await createPlugins({\n        isBuild,\n        root,\n        compress: {\n            compress: VITE_BUILD_COMPRESS,\n            deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,\n        },\n        enableAnalyze: VITE_ENABLE_ANALYZE,\n        enableConfig:VITE_ENABLE_CONFIG_GENERATE\n    });\n\n    return {\n        base: VITE_PUBLIC_PATH,\n        build: {\n            lib: {\n                entry: resolve(__dirname, 'lib/index.ts'),\n                name: 'Astral3D', // 打包后全局变量的名称\n                fileName: (format) => `astral3d.${format}.js`,\n                formats: ['es', 'umd']\n            },\n            outDir: \"dist\",\n            sourcemap: false,\n            // 规定触发警告的 chunk 大小。（以 kbs 为单位）\n            chunkSizeWarningLimit: 1024 * 6,\n        },\n        plugins: [\n            dts({\n                // 指定生成的类型文件存放的目录\n                outDir: './dist/types',\n                // 指定tsconfig.json位置\n                tsconfigPath: './tsconfig.json',\n                // 覆盖tsconfig.json对应配置\n                include: [\"lib\", \"types\"],\n                // 是否生成类型入口文件.会基于 package.json 的 `types` 字段生成\n                insertTypesEntry: true,\n                // 是否将所有的类型合并到一个文件中\n                rollupTypes: false,\n            }),\n            ...plugins\n        ],\n        // 路径别名\n        resolve: {\n            alias: {\n                '@': resolve(__dirname, './lib')\n            },\n            extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json']\n        },\n        server: {\n            port: Number(VITE_PORT)\n        }\n    }\n})\n"
  },
  {
    "path": "pnpm-workspace.yaml",
    "content": "packages:\n  - packages/*\n  - common/*\n\ncatalog:\n  '@types/node': ^24.6.0\n  '@types/three': 0.176.0\n  '@vitejs/plugin-vue': ^6.0.1\n  'three': 0.176.0\n  'rollup-plugin-visualizer': ^6.0.1\n  'vue': ^3.5.22\n  \"vite-plugin-static-copy\": ^3.1.0\n  'vite': ^6.2.5 #npm:rolldown-vite@7.1.14\n  'typescript': ^5.4.5\n  'naive-ui': ^2.43.1\n\nautoInstallPeers: true\n"
  }
]